ETH Price: $1,940.43 (-1.88%)

Contract

0xb965a5f98b69CF4c421cf587942DeE10C3734f74
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer49035532018-01-13 21:36:392975 days ago1515879399IN
0xb965a5f9...0C3734f74
0.04 ETH0.0004365220
Transfer49033532018-01-13 20:44:212975 days ago1515876261IN
0xb965a5f9...0C3734f74
0.04 ETH0.0008948641
Transfer49032022018-01-13 20:02:042975 days ago1515873724IN
0xb965a5f9...0C3734f74
0.04 ETH0.00086141

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer48483512018-01-03 17:04:042986 days ago1514999044
0xb965a5f9...0C3734f74
 Contract Creation0 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Crowdsale

Compiler Version
v0.4.19+commit.c4cbbb05

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-01-03
*/

/**
 * Developer Team: 
 * Hira Siddiqui
 * connect on: https://www.linkedin.com/in/hira-siddiqui-96b60a74/
 * 
 * Mujtaba Idrees
 * connect on: https://www.linkedin.com/in/mujtabaidrees94/
 **/

pragma solidity ^0.4.11;

/**
 * @title Crowdsale
 * @dev Crowdsale is a base contract for managing a token crowdsale.
 * Crowdsales have a start and end timestamps, where investors can make
 * token purchases and the crowdsale will assign them tokens based
 * on a token per ETH rate. Funds collected are forwarded to a wallet
 * as they arrive.
 */
 
 
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;
  }
}

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.
   */
  function Ownable() 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));
    OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }

}

/**
 * @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) constant internal returns (uint256);
  function transfer(address to, uint256 value) internal returns (bool);
  event Transfer(address indexed from, address indexed to, uint256 value);
}

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

  mapping(address => uint256) tokenBalances;

  /**
  * @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) internal returns (bool) {
    require(tokenBalances[msg.sender]>=_value);
    tokenBalances[msg.sender] = tokenBalances[msg.sender].sub(_value);
    tokenBalances[_to] = tokenBalances[_to].add(_value);
    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) constant internal returns (uint256 balance) {
    return tokenBalances[_owner];
  }

}
contract EtheeraToken is BasicToken,Ownable {

   using SafeMath for uint256;
   
   //TODO: Change the name and the symbol
   string public constant name = "ETHEERA";
   string public constant symbol = "ETA";
   uint256 public constant decimals = 18;

   uint256 public constant INITIAL_SUPPLY = 300000000;
   event Debug(string message, address addr, uint256 number);
   /**
   * @dev Contructor that gives msg.sender all of existing tokens.
   */
    function EtheeraToken(address wallet) public {
        owner = msg.sender;
        totalSupply = INITIAL_SUPPLY;
        tokenBalances[wallet] = INITIAL_SUPPLY * 10 ** 18;   //Since we divided the token into 10^18 parts
    }

    function mint(address wallet, address buyer, uint256 tokenAmount) public onlyOwner {
      require(tokenBalances[wallet] >= tokenAmount);               // checks if it has enough to sell
      tokenBalances[buyer] = tokenBalances[buyer].add(tokenAmount);                  // adds the amount to buyer's balance
      tokenBalances[wallet] = tokenBalances[wallet].sub(tokenAmount);                        // subtracts amount from seller's balance
      Transfer(wallet, buyer, tokenAmount); 
    }
    
    function showMyTokenBalance(address addr) public view onlyOwner returns (uint tokenBalance) {
        tokenBalance = tokenBalances[addr];
        return tokenBalance;
    }
    
    function showMyEtherBalance(address addr) public view onlyOwner returns (uint etherBalance) {
        etherBalance = addr.balance;
    }
}
contract Crowdsale {
  using SafeMath for uint256;
 
  // The token being sold
  EtheeraToken public token;

  // start and end timestamps where investments are allowed (both inclusive)
  uint256 public startTime;
  uint256 public endTime;

  // address where funds are collected
  // address where tokens are deposited and from where we send tokens to buyers
  address public wallet;

  // how many token units a buyer gets per wei
  uint256 public ratePerWei = 2000;

  // amount of raised money in wei
  uint256 public weiRaised;

  // flags to show whether soft cap / hard cap is reached
  bool public isSoftCapReached = false;
  bool public isHardCapReached = false;
    
  //this flag is set to true when ICO duration is over and soft cap is not reached  
  bool public refundToBuyers = false;
    
  // Soft cap of the ICO in ethers  
  uint256 public softCap = 6000;
    
  //Hard cap of the ICO in ethers
  uint256 public hardCap = 100000;
  
  //total tokens that have been sold  
  uint256 tokens_sold = 0;

  //total tokens that are to be sold - this is 70% of the total supply i.e. 300000000
  uint maxTokensForSale = 210000000;
  
  //tokens that are reserved for the etheera team - this is 30% of the total supply  
  uint256 tokensForReservedFund = 0;
  uint256 tokensForAdvisors = 0;
  uint256 tokensForFoundersAndTeam = 0;
  uint256 tokensForMarketing = 0;
  uint256 tokensForTournament = 0;

  bool ethersSentForRefund = false;
  uint256 public amountForRefundIfSoftCapNotReached = 0;
  // whitelisted addresses are those that have registered on the website
  mapping(address=>bool) whiteListedAddresses;

  // the buyers of tokens and the amount of ethers they sent in
  mapping(address=>uint) usersThatBoughtETA;
 
  /**
   * event for token purchase logging
   * @param purchaser who paid for the tokens
   * @param beneficiary who got the tokens
   * @param value weis paid for purchase
   * @param amount amount of tokens purchased
   */
  event TokenPurchase(address indexed purchaser, address indexed beneficiary, uint256 value, uint256 amount);


  function Crowdsale(uint256 _startTime, address _wallet) public {
    
    require(_startTime >= now);
    startTime = _startTime;
    endTime = startTime + 60 days;
    
    require(endTime >= startTime);
    require(_wallet != 0x0);

    wallet = _wallet;
    token = createTokenContract(wallet);
  }

  function createTokenContract(address wall) internal returns (EtheeraToken) {
    return new EtheeraToken(wall);
  }

  // fallback function can be used to buy tokens
  function () public payable {
    buyTokens(msg.sender);
  }

  //determine the bonus with respect to time elapsed
  function determineBonus(uint tokens) internal view returns (uint256 bonus) {
    
    uint256 timeElapsed = now - startTime;
    uint256 timeElapsedInWeeks = timeElapsed.div(7 days);
    
    if (timeElapsedInWeeks <=1)
    {
        //early sale
        //valid for 7 days (1st week)
        //30000+ TOKEN PURCHASE AMOUNT / 33% BONUS
        if (tokens>30000 * 10 ** 18)
        {
            //33% bonus
            bonus = tokens.mul(33);
            bonus = bonus.div(100);
        }
        //10000+ TOKEN PURCHASE AMOUNT / 26% BONUS
        else if (tokens>10000 *10 ** 18 && tokens<= 30000 * 10 ** 18)
        {
            //26% bonus
            bonus = tokens.mul(26);
            bonus = bonus.div(100);
        }
        //3000+ TOKEN PURCHASE AMOUNT / 23% BONUS
        else if (tokens>3000 *10 ** 18 && tokens<= 10000 * 10 ** 18)
        {
            //23% bonus
            bonus = tokens.mul(23);
            bonus = bonus.div(100);
        }
        
        //75+ TOKEN PURCHASE AMOUNT / 20% BONUS
        else if (tokens>=75 *10 ** 18 && tokens<= 3000 * 10 ** 18)
        {
            //20% bonus
            bonus = tokens.mul(20);
            bonus = bonus.div(100);
        }
    }
    else if (timeElapsedInWeeks>1 && timeElapsedInWeeks <=6)
    {
        //sale
        //from 7th day till 49th day (total 42 days or 6 weeks)
        //30000+ TOKEN PURCHASE AMOUNT / 15% BONUS
        if (tokens>30000 * 10 ** 18)
        {
            //15% bonus
            bonus = tokens.mul(15);
            bonus = bonus.div(100);
        }
        //10000+ TOKEN PURCHASE AMOUNT / 10% BONUS
        else if (tokens>10000 *10 ** 18 && tokens<= 30000 * 10 ** 18)
        {
            //10% bonus
            bonus = tokens.mul(10);
            bonus = bonus.div(100);
        }
        //3000+ TOKEN PURCHASE AMOUNT / 5% BONUS
        else if (tokens>3000 *10 ** 18 && tokens<= 10000 * 10 ** 18)
        {
            //5% bonus
            bonus = tokens.mul(5);
            bonus = bonus.div(100);
        }
        
        //75+ TOKEN PURCHASE AMOUNT / 3% BONUS
        else if (tokens>=75 *10 ** 18 && tokens<= 3000 * 10 ** 18)
        {
            //3% bonus
            bonus = tokens.mul(3);
            bonus = bonus.div(100);
        }
    }
    else if (timeElapsedInWeeks>6)
    {
        //no bonuses after 7th week i.e. 49 days
        bonus = 0;
    }
  }

  // low level token purchase function
  // Minimum purchase can be of 1 ETH
  
  function buyTokens(address beneficiary) public payable {
    
  //tokens not to be sent to 0x0
  require(beneficiary != 0x0);
  
  bool hasICOended = hasEnded();
  
  if(hasICOended && weiRaised < softCap * 10 ** 18)
      refundToBuyers = true;
        
  if(hasICOended && weiRaised < hardCap * 10 ** 18)
  {
      burnRemainingTokens();
      beneficiary.transfer(msg.value);
  }
  else
  {
  
    //the purchase should be within duration and non zero
    require(validPurchase());
  
    //the ICO is over if hard cap has been reached even if time is still left
    require(isHardCapReached == false);
    
    // amount sent by the user
    uint256 weiAmount = msg.value;
    
    // calculate token amount to be sold
    uint256 tokens = weiAmount.mul(ratePerWei);
  
    //Determine bonus
    uint bonus = determineBonus(tokens);
    tokens = tokens.add(bonus);

    require (tokens>=75 * 10 ** 18);
  
    //can't sale tokens more than 21000000000
    require(tokens_sold + tokens <= maxTokensForSale * 10 ** 18);
  
    //30% of the tokens being sold are being accumulated for the etheera team
    updateTokensForEtheeraTeam(tokens);
  
    // update state
    require(weiRaised.add(weiAmount) <= hardCap * 10 ** 18);

    weiRaised = weiRaised.add(weiAmount);
    amountForRefundIfSoftCapNotReached = amountForRefundIfSoftCapNotReached.add(weiAmount);
    
    if (weiRaised >= softCap * 10 ** 18)
    {
      isSoftCapReached = true;
      amountForRefundIfSoftCapNotReached = 0;
    }
  
    if (weiRaised == hardCap * 10 ** 18)
      isHardCapReached = true;
    
    token.mint(wallet, beneficiary, tokens); 
    usersThatBoughtETA[beneficiary] = weiAmount;
    TokenPurchase(msg.sender, beneficiary, weiAmount, tokens);
    
    tokens_sold = tokens_sold.add(tokens);
    
    forwardFunds();
  }
 }

  // send ether to the fund collection wallet
  // override to create custom fund forwarding mechanisms
  function forwardFunds() internal {
    wallet.transfer(msg.value);
  }

  // @return true if the transaction can buy tokens
  function validPurchase() internal returns (bool) {
    bool withinPeriod = now >= startTime && now <= endTime;
    bool nonZeroPurchase = msg.value != 0;
    return withinPeriod && nonZeroPurchase;
  }

  // @return true if crowdsale event has ended
  function hasEnded() public constant returns (bool) {
    return now > endTime;
  }
  
   function showMyTokenBalance() public constant returns (uint256 tokenBalance) {
        tokenBalance = token.showMyTokenBalance(msg.sender);
    }
    
    function showMyEtherBalance() public constant returns (uint256 etherBalance) {
        etherBalance = token.showMyEtherBalance(msg.sender);
    }
    
    function burnRemainingTokens() internal
    {
        //burn all the unsold tokens as soon as the ICO is ended
        uint balance = token.showMyTokenBalance(wallet);
        uint tokensIssued = tokensForReservedFund + tokensForFoundersAndTeam + tokensForAdvisors +tokensForMarketing + tokensForTournament;
        uint tokensToBurn = balance.sub(tokensIssued);
        require (balance >=tokensToBurn);
        address burnAddress = 0x0;
        token.mint(wallet,burnAddress,tokensToBurn);
    }
    
    function addAddressToWhiteList(address whitelistaddress) public 
    {
        require(msg.sender == wallet);
        whiteListedAddresses[whitelistaddress] = true;
    } 
    
    function getRefund() public 
    {
        require(refundToBuyers == true && ethersSentForRefund == true);
        require(usersThatBoughtETA[msg.sender]>0);
        uint256 ethersSent = usersThatBoughtETA[msg.sender];
        require (wallet.balance >= ethersSent);
        msg.sender.transfer(ethersSent);
    }
    
    function debitAmountToRefund() public payable {
        require(hasEnded()==true);
        require(msg.sender == wallet);
        require(msg.value >=amountForRefundIfSoftCapNotReached);
        ethersSentForRefund = true;
    }
    
    function updateTokensForEtheeraTeam(uint256 tokens) internal {
        
        uint256 reservedFundTokens;
        uint256 foundersAndTeamTokens;
        uint256 advisorsTokens;
        uint256 marketingTokens;
        uint256 tournamentTokens;
        
        //10% of tokens for reserved fund
        reservedFundTokens = tokens.mul(10);
        reservedFundTokens = reservedFundTokens.div(100);
        tokensForReservedFund = tokensForReservedFund.add(reservedFundTokens);
    
        //15% of tokens for founders and team    
        foundersAndTeamTokens=tokens.mul(15);
        foundersAndTeamTokens= foundersAndTeamTokens.div(100);
        tokensForFoundersAndTeam = tokensForFoundersAndTeam.add(foundersAndTeamTokens);
    
        //3% of tokens for advisors
        advisorsTokens=tokens.mul(3);
        advisorsTokens= advisorsTokens.div(100);
        tokensForAdvisors= tokensForAdvisors.add(advisorsTokens);
    
        //1% of tokens for marketing
        marketingTokens = tokens.mul(1);
        marketingTokens= marketingTokens.div(100);
        tokensForMarketing= tokensForMarketing.add(marketingTokens);
        
        //1% of tokens for tournament 
        tournamentTokens=tokens.mul(1);
        tournamentTokens= tournamentTokens.div(100);
        tokensForTournament= tokensForTournament.add(tournamentTokens);
    }
    
    function withdrawTokensForEtheeraTeam(uint256 whoseTokensToWithdraw,address[] whereToSendTokens) public {
        //1 reserved fund, 2 for founders and team, 3 for advisors, 4 for marketing, 5 for tournament
        require(msg.sender == wallet);
        require(now>=endTime);
        uint256 lockPeriod = 0;
        uint256 timePassed = now - endTime;
        uint256 tokensToSend = 0;
        uint256 i = 0;
        if (whoseTokensToWithdraw == 1)
        {
          //15 months lockup period
          lockPeriod = 15 days * 30;
          require(timePassed >= lockPeriod);
          //allow withdrawal
          tokensToSend = tokensForReservedFund.div(whereToSendTokens.length);
                
          for (i=0;i<whereToSendTokens.length;i++)
          {
            token.mint(wallet,whereToSendTokens[i],tokensToSend);
          }
          tokensForReservedFund = 0;
        }
        else if (whoseTokensToWithdraw == 2)
        {
          //10 months lockup period
          lockPeriod = 10 days * 30;
          require(timePassed >= lockPeriod);
          //allow withdrawal
          tokensToSend = tokensForFoundersAndTeam.div(whereToSendTokens.length);
                
          for (i=0;i<whereToSendTokens.length;i++)
          {
            token.mint(wallet,whereToSendTokens[i],tokensToSend);
          }            
          tokensForFoundersAndTeam = 0;
        }
        else if (whoseTokensToWithdraw == 3)
        {
          //allow withdrawal
          tokensToSend = tokensForAdvisors.div(whereToSendTokens.length);        
          for (i=0;i<whereToSendTokens.length;i++)
          {
            token.mint(wallet,whereToSendTokens[i],tokensToSend);
          }
          tokensForAdvisors = 0;
        }
        else if (whoseTokensToWithdraw == 4)
        {
          //allow withdrawal
          tokensToSend = tokensForMarketing.div(whereToSendTokens.length);
                
          for (i=0;i<whereToSendTokens.length;i++)
          {
            token.mint(wallet,whereToSendTokens[i],tokensToSend);
          }
          tokensForMarketing = 0;
        }
        else if (whoseTokensToWithdraw == 5)
        {
          //allow withdrawal
          tokensToSend = tokensForTournament.div(whereToSendTokens.length);
                
          for (i=0;i<whereToSendTokens.length;i++)
          {
            token.mint(wallet,whereToSendTokens[i],tokensToSend);
          }
          tokensForTournament = 0;
        }
        else 
        {
          //wrong input
          require (1!=1);
        }
    }
    
    /**
     * function to set the new price 
     * can only be called from owner wallet
     **/ 
    function setPriceRate(uint256 newPrice) public returns (bool) {
        ratePerWei = newPrice;
    }
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[],"name":"amountForRefundIfSoftCapNotReached","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"endTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"whoseTokensToWithdraw","type":"uint256"},{"name":"whereToSendTokens","type":"address[]"}],"name":"withdrawTokensForEtheeraTeam","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"weiRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"showMyEtherBalance","outputs":[{"name":"etherBalance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"wallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"debitAmountToRefund","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"newPrice","type":"uint256"}],"name":"setPriceRate","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isHardCapReached","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"startTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isSoftCapReached","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"softCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"whitelistaddress","type":"address"}],"name":"addAddressToWhiteList","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"getRefund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ratePerWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"refundToBuyers","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"showMyTokenBalance","outputs":[{"name":"tokenBalance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"beneficiary","type":"address"}],"name":"buyTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"hasEnded","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"hardCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_startTime","type":"uint256"},{"name":"_wallet","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"purchaser","type":"address"},{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokenPurchase","type":"event"}]

60606040526107d06004556006805462ffffff19169055611770600755620186a060085560006009819055630c845880600a55600b819055600c819055600d819055600e819055600f8190556010805460ff19169055601155341561006357600080fd5b60405160408062001ff983398101604052808051919060200180519150504282101561008e57600080fd5b6001829055624f1a0082016002819055829010156100ab57600080fd5b600160a060020a03811615156100c057600080fd5b60038054600160a060020a031916600160a060020a0383811691909117918290556100f8911664010000000061012081026112c81704565b60008054600160a060020a031916600160a060020a0392909216919091179055506101689050565b60008161012b610157565b600160a060020a039091168152602001604051809103906000f080151561015157600080fd5b92915050565b6040516105a38062001a5683390190565b6118de80620001786000396000f3006060604052600436106101035763ffffffff60e060020a600035041663013953a6811461010e5780633197cbb6146101335780633a579abc146101465780634042b66f1461019a57806342a37176146101ad578063521eb273146101c057806360721b7c146101ef5780636786ed0e146101f7578063688d39221461022157806378e979251461023457806380d32f8514610247578063906a26e01461025a5780639244f4961461026d578063b2d5ae441461028c578063bc7c322c1461029f578063e1e87c28146102b2578063ea91f8c7146102c5578063ec8ac4d8146102d8578063ecb70fb7146102ec578063fb86a404146102ff578063fc0c546a14610312575b61010c33610325565b005b341561011957600080fd5b61012161061f565b60405190815260200160405180910390f35b341561013e57600080fd5b610121610625565b341561015157600080fd5b61010c6004803590604460248035908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061062b95505050505050565b34156101a557600080fd5b610121610abc565b34156101b857600080fd5b610121610ac2565b34156101cb57600080fd5b6101d3610b3a565b604051600160a060020a03909116815260200160405180910390f35b61010c610b49565b341561020257600080fd5b61020d600435610b98565b604051901515815260200160405180910390f35b341561022c57600080fd5b61020d610ba0565b341561023f57600080fd5b610121610bae565b341561025257600080fd5b61020d610bb4565b341561026557600080fd5b610121610bbd565b341561027857600080fd5b61010c600160a060020a0360043516610bc3565b341561029757600080fd5b61010c610c02565b34156102aa57600080fd5b610121610cba565b34156102bd57600080fd5b61020d610cc0565b34156102d057600080fd5b610121610ccf565b61010c600160a060020a0360043516610325565b34156102f757600080fd5b61020d610d28565b341561030a57600080fd5b610121610d30565b341561031d57600080fd5b6101d3610d36565b6000808080600160a060020a038516151561033f57600080fd5b610347610d28565b93508380156103635750600754670de0b6b3a764000002600554105b1561037a576006805462ff00001916620100001790555b8380156103945750600854670de0b6b3a764000002600554105b156103d8576103a1610d45565b600160a060020a0385163480156108fc0290604051600060405180830381858888f1935050505015156103d357600080fd5b610618565b6103e0610e85565b15156103eb57600080fd5b600654610100900460ff161561040057600080fd5b60045434935061041790849063ffffffff610eb516565b915061042282610ee0565b9050610434828263ffffffff6110fe16565b9150680410d586a20a4c000082101561044c57600080fd5b600a54670de0b6b3a76400000282600954011115151561046b57600080fd5b6104748261110d565b600854670de0b6b3a764000002610496846005546110fe90919063ffffffff16565b11156104a157600080fd5b6005546104b4908463ffffffff6110fe16565b6005556011546104ca908463ffffffff6110fe16565b601155600754600554670de0b6b3a764000090910290106104f8576006805460ff1916600117905560006011555b600854670de0b6b3a764000002600554141561051e576006805461ff0019166101001790555b600054600354600160a060020a039182169163c6c3bbe69116878560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561058857600080fd5b6102c65a03f1151561059957600080fd5b505050600160a060020a038086166000818152601360205260409081902086905590913316907f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad1890869086905191825260208201526040908101905180910390a360095461060d908363ffffffff6110fe16565b60095561061861124c565b5050505050565b60115481565b60025481565b60035460009081908190819033600160a060020a0390811691161461064f57600080fd5b60025442101561065e57600080fd5b505060025460009250420390508180600186141561075357630251430093508383101561068a57600080fd5b61069e8551600b549063ffffffff61128216565b9150600090505b845181101561074957600054600354600160a060020a039182169163c6c3bbe691168784815181106106d357fe5b906020019060200201518560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561072d57600080fd5b6102c65a03f1151561073e57600080fd5b5050506001016106a5565b6000600b55610ab4565b85600214156108395763018b820093508383101561077057600080fd5b6107848551600d549063ffffffff61128216565b9150600090505b845181101561082f57600054600354600160a060020a039182169163c6c3bbe691168784815181106107b957fe5b906020019060200201518560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561081357600080fd5b6102c65a03f1151561082457600080fd5b50505060010161078b565b6000600d55610ab4565b856003141561090b576108568551600c549063ffffffff61128216565b9150600090505b845181101561090157600054600354600160a060020a039182169163c6c3bbe6911687848151811061088b57fe5b906020019060200201518560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156108e557600080fd5b6102c65a03f115156108f657600080fd5b50505060010161085d565b6000600c55610ab4565b85600414156109dd576109288551600e549063ffffffff61128216565b9150600090505b84518110156109d357600054600354600160a060020a039182169163c6c3bbe6911687848151811061095d57fe5b906020019060200201518560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156109b757600080fd5b6102c65a03f115156109c857600080fd5b50505060010161092f565b6000600e55610ab4565b8560051415610aaf576109fa8551600f549063ffffffff61128216565b9150600090505b8451811015610aa557600054600354600160a060020a039182169163c6c3bbe69116878481518110610a2f57fe5b906020019060200201518560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b1515610a8957600080fd5b6102c65a03f11515610a9a57600080fd5b505050600101610a01565b6000600f55610ab4565b600080fd5b505050505050565b60055481565b60008054600160a060020a031663bd51654b33836040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610b1b57600080fd5b6102c65a03f11515610b2c57600080fd5b505050604051805192915050565b600354600160a060020a031681565b610b51610d28565b1515600114610b5f57600080fd5b60035433600160a060020a03908116911614610b7a57600080fd5b601154341015610b8957600080fd5b6010805460ff19166001179055565b600455600090565b600654610100900460ff1681565b60015481565b60065460ff1681565b60075481565b60035433600160a060020a03908116911614610bde57600080fd5b600160a060020a03166000908152601260205260409020805460ff19166001179055565b60065460009062010000900460ff1615156001148015610c29575060105460ff1615156001145b1515610c3457600080fd5b600160a060020a03331660009081526013602052604081205411610c5757600080fd5b50600160a060020a033381166000908152601360205260409020546003549091163181901015610c8657600080fd5b600160a060020a03331681156108fc0282604051600060405180830381858888f193505050501515610cb757600080fd5b50565b60045481565b60065462010000900460ff1681565b60008054600160a060020a0316638fe4762533836040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610b1b57600080fd5b600254421190565b60085481565b600054600160a060020a031681565b60008054600354829182918291600160a060020a0390811691638fe476259116836040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610dab57600080fd5b6102c65a03f11515610dbc57600080fd5b505050604051805190509350600f54600e54600c54600d54600b54010101019250610df083856112b690919063ffffffff16565b915081841015610dff57600080fd5b5060008054600354600160a060020a039182169163c6c3bbe69116838560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b1515610e6b57600080fd5b6102c65a03f11515610e7c57600080fd5b50505050505050565b60008060006001544210158015610e9e57506002544211155b915050341515818015610eae5750805b9250505090565b6000828202831580610ed15750828482811515610ece57fe5b04145b1515610ed957fe5b9392505050565b600154600090420381610efc8262093a8063ffffffff61128216565b9050600181116110075769065a4da25d3016c00000841115610f4357610f2984602163ffffffff610eb516565b9250610f3c83606463ffffffff61128216565b9250611002565b69021e19e0c9bab240000084118015610f66575069065a4da25d3016c000008411155b15610f7c57610f2984601a63ffffffff610eb516565b68a2a15d09519be0000084118015610f9e575069021e19e0c9bab24000008411155b15610fb457610f2984601763ffffffff610eb516565b680410d586a20a4c00008410158015610fd6575068a2a15d09519be000008411155b1561100257610fec84601463ffffffff610eb516565b9250610fff83606463ffffffff61128216565b92505b6110f7565b600181118015611018575060068111155b156110e95769065a4da25d3016c0000084111561104057610f2984600f63ffffffff610eb516565b69021e19e0c9bab240000084118015611063575069065a4da25d3016c000008411155b1561107957610f2984600a63ffffffff610eb516565b68a2a15d09519be000008411801561109b575069021e19e0c9bab24000008411155b156110b157610f2984600563ffffffff610eb516565b680410d586a20a4c000084101580156110d3575068a2a15d09519be000008411155b1561100257610fec84600363ffffffff610eb516565b60068111156110f757600092505b5050919050565b600082820183811015610ed957fe5b60008080808061112486600a63ffffffff610eb516565b945061113785606463ffffffff61128216565b600b5490955061114d908663ffffffff6110fe16565b600b5561116186600f63ffffffff610eb516565b935061117484606463ffffffff61128216565b600d5490945061118a908563ffffffff6110fe16565b600d5561119e86600363ffffffff610eb516565b92506111b183606463ffffffff61128216565b600c549093506111c7908463ffffffff6110fe16565b600c556111db86600163ffffffff610eb516565b91506111ee82606463ffffffff61128216565b600e54909250611204908363ffffffff6110fe16565b600e5561121886600163ffffffff610eb516565b905061122b81606463ffffffff61128216565b600f54909150611241908263ffffffff6110fe16565b600f55505050505050565b600354600160a060020a03163480156108fc0290604051600060405180830381858888f19350505050151561128057600080fd5b565b60008080831161128e57fe5b828481151561129957fe5b04905082848115156112a757fe5b068184020184141515610ed957fe5b6000828211156112c257fe5b50900390565b6000816112d36112ff565b600160a060020a039091168152602001604051809103906000f08015156112f957600080fd5b92915050565b6040516105a3806113108339019056006060604052341561000f57600080fd5b6040516020806105a38339810160405280805160028054600160a060020a03338116600160a060020a031992831681179092169091179091556311e1a3006000908155911681526001602052604090206af8277896582678ac000000905550506105258061007e6000396000f3006060604052600436106100a35763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100a857806318160ddd146101325780632ff2e9dc14610157578063313ce5671461016a5780638da5cb5b1461017d5780638fe47625146101ac57806395d89b41146101cb578063bd51654b146101de578063c6c3bbe6146101fd578063f2fde38b14610227575b600080fd5b34156100b357600080fd5b6100bb610246565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100f75780820151838201526020016100df565b50505050905090810190601f1680156101245780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561013d57600080fd5b61014561027d565b60405190815260200160405180910390f35b341561016257600080fd5b610145610283565b341561017557600080fd5b61014561028b565b341561018857600080fd5b610190610290565b604051600160a060020a03909116815260200160405180910390f35b34156101b757600080fd5b610145600160a060020a036004351661029f565b34156101d657600080fd5b6100bb6102d9565b34156101e957600080fd5b610145600160a060020a0360043516610310565b341561020857600080fd5b610225600160a060020a036004358116906024351660443561033c565b005b341561023257600080fd5b610225600160a060020a0360043516610436565b60408051908101604052600781527f4554484545524100000000000000000000000000000000000000000000000000602082015281565b60005481565b6311e1a30081565b601281565b600254600160a060020a031681565b60025460009033600160a060020a039081169116146102bd57600080fd5b50600160a060020a031660009081526001602052604090205490565b60408051908101604052600381527f4554410000000000000000000000000000000000000000000000000000000000602082015281565b60025460009033600160a060020a0390811691161461032e57600080fd5b50600160a060020a03163190565b60025433600160a060020a0390811691161461035757600080fd5b600160a060020a0383166000908152600160205260409020548190101561037d57600080fd5b600160a060020a0382166000908152600160205260409020546103a6908263ffffffff6104d116565b600160a060020a0380841660009081526001602052604080822093909355908516815220546103db908263ffffffff6104e716565b600160a060020a038085166000818152600160205260409081902093909355908416917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9084905190815260200160405180910390a3505050565b60025433600160a060020a0390811691161461045157600080fd5b600160a060020a038116151561046657600080fd5b600254600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000828201838110156104e057fe5b9392505050565b6000828211156104f357fe5b509003905600a165627a7a72305820b64d97dd4e7b82a3b59ecba2bb476f310bc8cba54903addccefff874c796d8860029a165627a7a72305820619a34d4beb874b3e169ad050fb053289c4573a707875f927bb9fa5a6e2c5e1a00296060604052341561000f57600080fd5b6040516020806105a38339810160405280805160028054600160a060020a03338116600160a060020a031992831681179092169091179091556311e1a3006000908155911681526001602052604090206af8277896582678ac000000905550506105258061007e6000396000f3006060604052600436106100a35763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100a857806318160ddd146101325780632ff2e9dc14610157578063313ce5671461016a5780638da5cb5b1461017d5780638fe47625146101ac57806395d89b41146101cb578063bd51654b146101de578063c6c3bbe6146101fd578063f2fde38b14610227575b600080fd5b34156100b357600080fd5b6100bb610246565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100f75780820151838201526020016100df565b50505050905090810190601f1680156101245780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561013d57600080fd5b61014561027d565b60405190815260200160405180910390f35b341561016257600080fd5b610145610283565b341561017557600080fd5b61014561028b565b341561018857600080fd5b610190610290565b604051600160a060020a03909116815260200160405180910390f35b34156101b757600080fd5b610145600160a060020a036004351661029f565b34156101d657600080fd5b6100bb6102d9565b34156101e957600080fd5b610145600160a060020a0360043516610310565b341561020857600080fd5b610225600160a060020a036004358116906024351660443561033c565b005b341561023257600080fd5b610225600160a060020a0360043516610436565b60408051908101604052600781527f4554484545524100000000000000000000000000000000000000000000000000602082015281565b60005481565b6311e1a30081565b601281565b600254600160a060020a031681565b60025460009033600160a060020a039081169116146102bd57600080fd5b50600160a060020a031660009081526001602052604090205490565b60408051908101604052600381527f4554410000000000000000000000000000000000000000000000000000000000602082015281565b60025460009033600160a060020a0390811691161461032e57600080fd5b50600160a060020a03163190565b60025433600160a060020a0390811691161461035757600080fd5b600160a060020a0383166000908152600160205260409020548190101561037d57600080fd5b600160a060020a0382166000908152600160205260409020546103a6908263ffffffff6104d116565b600160a060020a0380841660009081526001602052604080822093909355908516815220546103db908263ffffffff6104e716565b600160a060020a038085166000818152600160205260409081902093909355908416917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9084905190815260200160405180910390a3505050565b60025433600160a060020a0390811691161461045157600080fd5b600160a060020a038116151561046657600080fd5b600254600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000828201838110156104e057fe5b9392505050565b6000828211156104f357fe5b509003905600a165627a7a72305820b64d97dd4e7b82a3b59ecba2bb476f310bc8cba54903addccefff874c796d8860029000000000000000000000000000000000000000000000000000000005a5dbf10000000000000000000000000de54d403b16a3ebc9ed7860e3af94417889e19d7

Deployed Bytecode

0x6060604052600436106101035763ffffffff60e060020a600035041663013953a6811461010e5780633197cbb6146101335780633a579abc146101465780634042b66f1461019a57806342a37176146101ad578063521eb273146101c057806360721b7c146101ef5780636786ed0e146101f7578063688d39221461022157806378e979251461023457806380d32f8514610247578063906a26e01461025a5780639244f4961461026d578063b2d5ae441461028c578063bc7c322c1461029f578063e1e87c28146102b2578063ea91f8c7146102c5578063ec8ac4d8146102d8578063ecb70fb7146102ec578063fb86a404146102ff578063fc0c546a14610312575b61010c33610325565b005b341561011957600080fd5b61012161061f565b60405190815260200160405180910390f35b341561013e57600080fd5b610121610625565b341561015157600080fd5b61010c6004803590604460248035908101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061062b95505050505050565b34156101a557600080fd5b610121610abc565b34156101b857600080fd5b610121610ac2565b34156101cb57600080fd5b6101d3610b3a565b604051600160a060020a03909116815260200160405180910390f35b61010c610b49565b341561020257600080fd5b61020d600435610b98565b604051901515815260200160405180910390f35b341561022c57600080fd5b61020d610ba0565b341561023f57600080fd5b610121610bae565b341561025257600080fd5b61020d610bb4565b341561026557600080fd5b610121610bbd565b341561027857600080fd5b61010c600160a060020a0360043516610bc3565b341561029757600080fd5b61010c610c02565b34156102aa57600080fd5b610121610cba565b34156102bd57600080fd5b61020d610cc0565b34156102d057600080fd5b610121610ccf565b61010c600160a060020a0360043516610325565b34156102f757600080fd5b61020d610d28565b341561030a57600080fd5b610121610d30565b341561031d57600080fd5b6101d3610d36565b6000808080600160a060020a038516151561033f57600080fd5b610347610d28565b93508380156103635750600754670de0b6b3a764000002600554105b1561037a576006805462ff00001916620100001790555b8380156103945750600854670de0b6b3a764000002600554105b156103d8576103a1610d45565b600160a060020a0385163480156108fc0290604051600060405180830381858888f1935050505015156103d357600080fd5b610618565b6103e0610e85565b15156103eb57600080fd5b600654610100900460ff161561040057600080fd5b60045434935061041790849063ffffffff610eb516565b915061042282610ee0565b9050610434828263ffffffff6110fe16565b9150680410d586a20a4c000082101561044c57600080fd5b600a54670de0b6b3a76400000282600954011115151561046b57600080fd5b6104748261110d565b600854670de0b6b3a764000002610496846005546110fe90919063ffffffff16565b11156104a157600080fd5b6005546104b4908463ffffffff6110fe16565b6005556011546104ca908463ffffffff6110fe16565b601155600754600554670de0b6b3a764000090910290106104f8576006805460ff1916600117905560006011555b600854670de0b6b3a764000002600554141561051e576006805461ff0019166101001790555b600054600354600160a060020a039182169163c6c3bbe69116878560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561058857600080fd5b6102c65a03f1151561059957600080fd5b505050600160a060020a038086166000818152601360205260409081902086905590913316907f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad1890869086905191825260208201526040908101905180910390a360095461060d908363ffffffff6110fe16565b60095561061861124c565b5050505050565b60115481565b60025481565b60035460009081908190819033600160a060020a0390811691161461064f57600080fd5b60025442101561065e57600080fd5b505060025460009250420390508180600186141561075357630251430093508383101561068a57600080fd5b61069e8551600b549063ffffffff61128216565b9150600090505b845181101561074957600054600354600160a060020a039182169163c6c3bbe691168784815181106106d357fe5b906020019060200201518560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561072d57600080fd5b6102c65a03f1151561073e57600080fd5b5050506001016106a5565b6000600b55610ab4565b85600214156108395763018b820093508383101561077057600080fd5b6107848551600d549063ffffffff61128216565b9150600090505b845181101561082f57600054600354600160a060020a039182169163c6c3bbe691168784815181106107b957fe5b906020019060200201518560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561081357600080fd5b6102c65a03f1151561082457600080fd5b50505060010161078b565b6000600d55610ab4565b856003141561090b576108568551600c549063ffffffff61128216565b9150600090505b845181101561090157600054600354600160a060020a039182169163c6c3bbe6911687848151811061088b57fe5b906020019060200201518560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156108e557600080fd5b6102c65a03f115156108f657600080fd5b50505060010161085d565b6000600c55610ab4565b85600414156109dd576109288551600e549063ffffffff61128216565b9150600090505b84518110156109d357600054600354600160a060020a039182169163c6c3bbe6911687848151811061095d57fe5b906020019060200201518560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156109b757600080fd5b6102c65a03f115156109c857600080fd5b50505060010161092f565b6000600e55610ab4565b8560051415610aaf576109fa8551600f549063ffffffff61128216565b9150600090505b8451811015610aa557600054600354600160a060020a039182169163c6c3bbe69116878481518110610a2f57fe5b906020019060200201518560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b1515610a8957600080fd5b6102c65a03f11515610a9a57600080fd5b505050600101610a01565b6000600f55610ab4565b600080fd5b505050505050565b60055481565b60008054600160a060020a031663bd51654b33836040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610b1b57600080fd5b6102c65a03f11515610b2c57600080fd5b505050604051805192915050565b600354600160a060020a031681565b610b51610d28565b1515600114610b5f57600080fd5b60035433600160a060020a03908116911614610b7a57600080fd5b601154341015610b8957600080fd5b6010805460ff19166001179055565b600455600090565b600654610100900460ff1681565b60015481565b60065460ff1681565b60075481565b60035433600160a060020a03908116911614610bde57600080fd5b600160a060020a03166000908152601260205260409020805460ff19166001179055565b60065460009062010000900460ff1615156001148015610c29575060105460ff1615156001145b1515610c3457600080fd5b600160a060020a03331660009081526013602052604081205411610c5757600080fd5b50600160a060020a033381166000908152601360205260409020546003549091163181901015610c8657600080fd5b600160a060020a03331681156108fc0282604051600060405180830381858888f193505050501515610cb757600080fd5b50565b60045481565b60065462010000900460ff1681565b60008054600160a060020a0316638fe4762533836040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610b1b57600080fd5b600254421190565b60085481565b600054600160a060020a031681565b60008054600354829182918291600160a060020a0390811691638fe476259116836040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610dab57600080fd5b6102c65a03f11515610dbc57600080fd5b505050604051805190509350600f54600e54600c54600d54600b54010101019250610df083856112b690919063ffffffff16565b915081841015610dff57600080fd5b5060008054600354600160a060020a039182169163c6c3bbe69116838560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b1515610e6b57600080fd5b6102c65a03f11515610e7c57600080fd5b50505050505050565b60008060006001544210158015610e9e57506002544211155b915050341515818015610eae5750805b9250505090565b6000828202831580610ed15750828482811515610ece57fe5b04145b1515610ed957fe5b9392505050565b600154600090420381610efc8262093a8063ffffffff61128216565b9050600181116110075769065a4da25d3016c00000841115610f4357610f2984602163ffffffff610eb516565b9250610f3c83606463ffffffff61128216565b9250611002565b69021e19e0c9bab240000084118015610f66575069065a4da25d3016c000008411155b15610f7c57610f2984601a63ffffffff610eb516565b68a2a15d09519be0000084118015610f9e575069021e19e0c9bab24000008411155b15610fb457610f2984601763ffffffff610eb516565b680410d586a20a4c00008410158015610fd6575068a2a15d09519be000008411155b1561100257610fec84601463ffffffff610eb516565b9250610fff83606463ffffffff61128216565b92505b6110f7565b600181118015611018575060068111155b156110e95769065a4da25d3016c0000084111561104057610f2984600f63ffffffff610eb516565b69021e19e0c9bab240000084118015611063575069065a4da25d3016c000008411155b1561107957610f2984600a63ffffffff610eb516565b68a2a15d09519be000008411801561109b575069021e19e0c9bab24000008411155b156110b157610f2984600563ffffffff610eb516565b680410d586a20a4c000084101580156110d3575068a2a15d09519be000008411155b1561100257610fec84600363ffffffff610eb516565b60068111156110f757600092505b5050919050565b600082820183811015610ed957fe5b60008080808061112486600a63ffffffff610eb516565b945061113785606463ffffffff61128216565b600b5490955061114d908663ffffffff6110fe16565b600b5561116186600f63ffffffff610eb516565b935061117484606463ffffffff61128216565b600d5490945061118a908563ffffffff6110fe16565b600d5561119e86600363ffffffff610eb516565b92506111b183606463ffffffff61128216565b600c549093506111c7908463ffffffff6110fe16565b600c556111db86600163ffffffff610eb516565b91506111ee82606463ffffffff61128216565b600e54909250611204908363ffffffff6110fe16565b600e5561121886600163ffffffff610eb516565b905061122b81606463ffffffff61128216565b600f54909150611241908263ffffffff6110fe16565b600f55505050505050565b600354600160a060020a03163480156108fc0290604051600060405180830381858888f19350505050151561128057600080fd5b565b60008080831161128e57fe5b828481151561129957fe5b04905082848115156112a757fe5b068184020184141515610ed957fe5b6000828211156112c257fe5b50900390565b6000816112d36112ff565b600160a060020a039091168152602001604051809103906000f08015156112f957600080fd5b92915050565b6040516105a3806113108339019056006060604052341561000f57600080fd5b6040516020806105a38339810160405280805160028054600160a060020a03338116600160a060020a031992831681179092169091179091556311e1a3006000908155911681526001602052604090206af8277896582678ac000000905550506105258061007e6000396000f3006060604052600436106100a35763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100a857806318160ddd146101325780632ff2e9dc14610157578063313ce5671461016a5780638da5cb5b1461017d5780638fe47625146101ac57806395d89b41146101cb578063bd51654b146101de578063c6c3bbe6146101fd578063f2fde38b14610227575b600080fd5b34156100b357600080fd5b6100bb610246565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156100f75780820151838201526020016100df565b50505050905090810190601f1680156101245780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561013d57600080fd5b61014561027d565b60405190815260200160405180910390f35b341561016257600080fd5b610145610283565b341561017557600080fd5b61014561028b565b341561018857600080fd5b610190610290565b604051600160a060020a03909116815260200160405180910390f35b34156101b757600080fd5b610145600160a060020a036004351661029f565b34156101d657600080fd5b6100bb6102d9565b34156101e957600080fd5b610145600160a060020a0360043516610310565b341561020857600080fd5b610225600160a060020a036004358116906024351660443561033c565b005b341561023257600080fd5b610225600160a060020a0360043516610436565b60408051908101604052600781527f4554484545524100000000000000000000000000000000000000000000000000602082015281565b60005481565b6311e1a30081565b601281565b600254600160a060020a031681565b60025460009033600160a060020a039081169116146102bd57600080fd5b50600160a060020a031660009081526001602052604090205490565b60408051908101604052600381527f4554410000000000000000000000000000000000000000000000000000000000602082015281565b60025460009033600160a060020a0390811691161461032e57600080fd5b50600160a060020a03163190565b60025433600160a060020a0390811691161461035757600080fd5b600160a060020a0383166000908152600160205260409020548190101561037d57600080fd5b600160a060020a0382166000908152600160205260409020546103a6908263ffffffff6104d116565b600160a060020a0380841660009081526001602052604080822093909355908516815220546103db908263ffffffff6104e716565b600160a060020a038085166000818152600160205260409081902093909355908416917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9084905190815260200160405180910390a3505050565b60025433600160a060020a0390811691161461045157600080fd5b600160a060020a038116151561046657600080fd5b600254600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000828201838110156104e057fe5b9392505050565b6000828211156104f357fe5b509003905600a165627a7a72305820b64d97dd4e7b82a3b59ecba2bb476f310bc8cba54903addccefff874c796d8860029a165627a7a72305820619a34d4beb874b3e169ad050fb053289c4573a707875f927bb9fa5a6e2c5e1a0029

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000000000000000000000000000000000005a5dbf10000000000000000000000000de54d403b16a3ebc9ed7860e3af94417889e19d7

-----Decoded View---------------
Arg [0] : _startTime (uint256): 1516093200
Arg [1] : _wallet (address): 0xde54d403B16a3EBC9Ed7860E3AF94417889E19D7

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000000000000000000000000000000000005a5dbf10
Arg [1] : 000000000000000000000000de54d403b16a3ebc9ed7860e3af94417889e19d7


Swarm Source

bzzr://b64d97dd4e7b82a3b59ecba2bb476f310bc8cba54903addccefff874c796d886

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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