ETH Price: $3,345.85 (-0.79%)
Gas: 14 Gwei

Contract

0x9B0F6a5a667CB92aF0cd15DbE90E764e32f69e77
 
Transaction Hash
Method
Block
From
To
Approve83319272019-08-11 22:24:491984 days ago1565562289IN
0x9B0F6a5a...e32f69e77
0 ETH0.0004554310
Transfer81316152019-07-11 18:49:422015 days ago1562870982IN
0x9B0F6a5a...e32f69e77
0 ETH0.000780421
Approve74062622019-03-20 14:31:482129 days ago1553092308IN
0x9B0F6a5a...e32f69e77
0 ETH0.000272876
Approve71198842019-01-24 17:09:192184 days ago1548349759IN
0x9B0F6a5a...e32f69e77
0 ETH0.000090952
Approve71096112019-01-22 16:17:002186 days ago1548173820IN
0x9B0F6a5a...e32f69e77
0 ETH0.0018646341
Approve71082932019-01-22 10:01:282186 days ago1548151288IN
0x9B0F6a5a...e32f69e77
0 ETH0.0005002611
Approve70653292019-01-14 14:56:552194 days ago1547477815IN
0x9B0F6a5a...e32f69e77
0 ETH0.000364348
Approve70496422019-01-11 19:35:402196 days ago1547235340IN
0x9B0F6a5a...e32f69e77
0 ETH0.0031835370
Approve70433702019-01-10 16:38:012198 days ago1547138281IN
0x9B0F6a5a...e32f69e77
0 ETH0.000181914
Transfer70391792019-01-09 22:32:242198 days ago1547073144IN
0x9B0F6a5a...e32f69e77
0 ETH0.0007419620
Approve70233052019-01-07 2:24:382201 days ago1546827878IN
0x9B0F6a5a...e32f69e77
0 ETH0.00018144
Approve69988052019-01-02 17:31:392206 days ago1546450299IN
0x9B0F6a5a...e32f69e77
0 ETH0.000181914
Transfer69987922019-01-02 17:28:082206 days ago1546450088IN
0x9B0F6a5a...e32f69e77
0 ETH0.000111293
Approve69264692018-12-21 11:47:542218 days ago1545392874IN
0x9B0F6a5a...e32f69e77
0 ETH0.000227395
Transfer69264302018-12-21 11:39:482218 days ago1545392388IN
0x9B0F6a5a...e32f69e77
0 ETH0.000148644
Transfer69263942018-12-21 11:31:392218 days ago1545391899IN
0x9B0F6a5a...e32f69e77
0 ETH0.0002044
Approve69155862018-12-19 15:24:462220 days ago1545233086IN
0x9B0F6a5a...e32f69e77
0 ETH0.0009108620
Transfer69154152018-12-19 14:43:462220 days ago1545230626IN
0x9B0F6a5a...e32f69e77
0 ETH0.000199459
Transfer69154012018-12-19 14:39:112220 days ago1545230351IN
0x9B0F6a5a...e32f69e77
0 ETH0.000333889
Approve69046062018-12-17 18:21:142221 days ago1545070874IN
0x9B0F6a5a...e32f69e77
0 ETH0.0018217240
Approve68740102018-12-12 16:43:342227 days ago1544633014IN
0x9B0F6a5a...e32f69e77
0 ETH0.000181664
Approve68678042018-12-11 16:18:082228 days ago1544545088IN
0x9B0F6a5a...e32f69e77
0 ETH0.0031835370
Transfer68677952018-12-11 16:15:472228 days ago1544544947IN
0x9B0F6a5a...e32f69e77
0 ETH0.0013749937
Approve68677712018-12-11 16:08:262228 days ago1544544506IN
0x9B0F6a5a...e32f69e77
0 ETH0.0031835370
Transfer68677652018-12-11 16:06:362228 days ago1544544396IN
0x9B0F6a5a...e32f69e77
0 ETH0.0019299937
View all transactions

Latest 4 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
59501502018-07-12 10:06:042380 days ago1531389964
0x9B0F6a5a...e32f69e77
168.91253082 ETH
40951062017-07-30 13:36:262727 days ago1501421786
0x9B0F6a5a...e32f69e77
2,450.13252215 ETH
32205702017-02-20 22:34:172886 days ago1487630057
0x9B0F6a5a...e32f69e77
22.168 ETH
29721252017-01-10 19:59:162927 days ago1484078356
0x9B0F6a5a...e32f69e77
0.01 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DSTContract

Compiler Version
v0.4.7+commit.822622cf

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2017-01-17
*/

pragma solidity ^0.4.0;

/*
 * Token - is a smart contract interface 
 * for managing common functionality of 
 * a token.
 *
 * ERC.20 Token standard: https://github.com/eth ereum/EIPs/issues/20
 */
contract TokenInterface {

        
    // total amount of tokens
    uint totalSupplyVar;

    
    /**
     *
     * balanceOf() - constant function check concrete tokens balance  
     *
     *  @param owner - account owner
     *  
     *  @return the value of balance 
     */                               
    function balanceOf(address owner) constant returns (uint256 balance);
    
    function transfer(address to, uint256 value) returns (bool success);

    function transferFrom(address from, address to, uint256 value) returns (bool success);

    /**
     *
     * approve() - function approves to a person to spend some tokens from 
     *           owner balance. 
     *
     *  @param spender - person whom this right been granted.
     *  @param value   - value to spend.
     * 
     *  @return true in case of succes, otherwise failure
     * 
     */
    function approve(address spender, uint256 value) returns (bool success);

    /**
     *
     * allowance() - constant function to check how much is 
     *               permitted to spend to 3rd person from owner balance
     *
     *  @param owner   - owner of the balance
     *  @param spender - permitted to spend from this balance person 
     *  
     *  @return - remaining right to spend 
     * 
     */
    function allowance(address owner, address spender) constant returns (uint256 remaining);
    
    function totalSupply() constant returns (uint256 totalSupply){
        return totalSupplyVar;    
    }

    // events notifications
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}


/*
 * StandardToken - is a smart contract  
 * for managing common functionality of 
 * a token.
 *
 * ERC.20 Token standard: 
 *         https://github.com/eth ereum/EIPs/issues/20
 */
contract StandardToken is TokenInterface {


    // token ownership
    mapping (address => uint256) balances;

    // spending permision management
    mapping (address => mapping (address => uint256)) allowed;
    
    
    
    function StandardToken(){
    }
    
    
    /**
     * transfer() - transfer tokens from msg.sender balance 
     *              to requested account
     *
     *  @param to    - target address to transfer tokens
     *  @param value - ammount of tokens to transfer
     *
     *  @return - success / failure of the transaction
     */    
    function transfer(address to, uint256 value) returns (bool success) {
        
        
        if (balances[msg.sender] >= value && value > 0) {

            // do actual tokens transfer       
            balances[msg.sender] -= value;
            balances[to]         += value;
            
            // rise the Transfer event
            Transfer(msg.sender, to, value);
            return true;
        } else {
            
            return false; 
        }
    }
    
    

    
    /**
     * transferFrom() - used to move allowed funds from other owner
     *                  account 
     *
     *  @param from  - move funds from account
     *  @param to    - move funds to account
     *  @param value - move the value 
     *
     *  @return - return true on success false otherwise 
     */
    function transferFrom(address from, address to, uint256 value) returns (bool success) {
    
        if ( balances[from] >= value && 
             allowed[from][msg.sender] >= value && 
             value > 0) {
                                          
    
            // do the actual transfer
            balances[from] -= value;    
            balances[to]   += value;            
            

            // addjust the permision, after part of 
            // permited to spend value was used
            allowed[from][msg.sender] -= value;
            
            // rise the Transfer event
            Transfer(from, to, value);
            return true;
        } else { 
            
            return false; 
        }
    }

    

    
    /**
     *
     * balanceOf() - constant function check concrete tokens balance  
     *
     *  @param owner - account owner
     *  
     *  @return the value of balance 
     */                               
    function balanceOf(address owner) constant returns (uint256 balance) {
        return balances[owner];
    }

    
    
    /**
     *
     * approve() - function approves to a person to spend some tokens from 
     *           owner balance. 
     *
     *  @param spender - person whom this right been granted.
     *  @param value   - value to spend.
     * 
     *  @return true in case of succes, otherwise failure
     * 
     */
    function approve(address spender, uint256 value) returns (bool success) {
        
        
        
        // now spender can use balance in 
        // ammount of value from owner balance
        allowed[msg.sender][spender] = value;
        
        // rise event about the transaction
        Approval(msg.sender, spender, value);
        
        return true;
    }
    

    /**
     *
     * allowance() - constant function to check how mouch is 
     *               permited to spend to 3rd person from owner balance
     *
     *  @param owner   - owner of the balance
     *  @param spender - permited to spend from this balance person 
     *  
     *  @return - remaining right to spend 
     * 
     */
    function allowance(address owner, address spender) constant returns (uint256 remaining) {
      return allowed[owner][spender];
    }

}


/**
 *
 * @title Hacker Gold
 * 
 * The official token powering the hack.ether.camp virtual accelerator.
 * This is the only way to acquire tokens from startups during the event.
 *
 * Whitepaper https://hack.ether.camp/whitepaper
 *
 */
contract HackerGold is StandardToken {

    // Name of the token    
    string public name = "HackerGold";

    // Decimal places
    uint8  public decimals = 3;
    // Token abbreviation        
    string public symbol = "HKG";
    
    // 1 ether = 200 hkg
    uint BASE_PRICE = 200;
    // 1 ether = 150 hkg
    uint MID_PRICE = 150;
    // 1 ether = 100 hkg
    uint FIN_PRICE = 100;
    // Safety cap
    uint SAFETY_LIMIT = 4000000 ether;
    // Zeros after the point
    uint DECIMAL_ZEROS = 1000;
    
    // Total value in wei
    uint totalValue;
    
    // Address of multisig wallet holding ether from sale
    address wallet;

    // Structure of sale increase milestones
    struct milestones_struct {
      uint p1;
      uint p2; 
      uint p3;
      uint p4;
      uint p5;
      uint p6;
    }
    // Milestones instance
    milestones_struct milestones;
    
    /**
     * Constructor of the contract.
     * 
     * Passes address of the account holding the value.
     * HackerGold contract itself does not hold any value
     * 
     * @param multisig address of MultiSig wallet which will hold the value
     */
    function HackerGold(address multisig) {
        
        wallet = multisig;

        // set time periods for sale
        milestones = milestones_struct(
        
          1476972000,  // P1: GMT: 20-Oct-2016 14:00  => The Sale Starts
          1478181600,  // P2: GMT: 03-Nov-2016 14:00  => 1st Price Ladder 
          1479391200,  // P3: GMT: 17-Nov-2016 14:00  => Price Stable, 
                       //                                Hackathon Starts
          1480600800,  // P4: GMT: 01-Dec-2016 14:00  => 2nd Price Ladder
          1481810400,  // P5: GMT: 15-Dec-2016 14:00  => Price Stable
          1482415200   // P6: GMT: 22-Dec-2016 14:00  => Sale Ends, Hackathon Ends
        );
        
        // assign recovery balance
        totalSupplyVar   = 16110893000;
        balances[0x342e62732b76875da9305083ea8ae63125a4e667] = 16110893000;
        totalValue    = 85362 ether;        
    }
    
    
    /**
     * Fallback function: called on ether sent.
     * 
     * It calls to createHKG function with msg.sender 
     * as a value for holder argument
     */
    function () payable {
        createHKG(msg.sender);
    }
    
    /**
     * Creates HKG tokens.
     * 
     * Runs sanity checks including safety cap
     * Then calculates current price by getPrice() function, creates HKG tokens
     * Finally sends a value of transaction to the wallet
     * 
     * Note: due to lack of floating point types in Solidity,
     * contract assumes that last 3 digits in tokens amount are stood after the point.
     * It means that if stored HKG balance is 100000, then its real value is 100 HKG
     * 
     * @param holder token holder
     */
    function createHKG(address holder) payable {
        
        if (now < milestones.p1) throw;
        if (now >= milestones.p6) throw;
        if (msg.value == 0) throw;
    
        // safety cap
        if (getTotalValue() + msg.value > SAFETY_LIMIT) throw; 
    
        uint tokens = msg.value * getPrice() * DECIMAL_ZEROS / 1 ether;

        totalSupplyVar += tokens;
        balances[holder] += tokens;
        totalValue += msg.value;
        
        if (!wallet.send(msg.value)) throw;
    }
    
    /**
     * Denotes complete price structure during the sale.
     *
     * @return HKG amount per 1 ETH for the current moment in time
     */
    function getPrice() constant returns (uint result) {
        
        if (now < milestones.p1) return 0;
        
        if (now >= milestones.p1 && now < milestones.p2) {
        
            return BASE_PRICE;
        }
        
        if (now >= milestones.p2 && now < milestones.p3) {
            
            uint days_in = 1 + (now - milestones.p2) / 1 days; 
            return BASE_PRICE - days_in * 25 / 7;  // daily decrease 3.5
        }

        if (now >= milestones.p3 && now < milestones.p4) {
        
            return MID_PRICE;
        }
        
        if (now >= milestones.p4 && now < milestones.p5) {
            
            days_in = 1 + (now - milestones.p4) / 1 days; 
            return MID_PRICE - days_in * 25 / 7;  // daily decrease 3.5
        }

        if (now >= milestones.p5 && now < milestones.p6) {
        
            return FIN_PRICE;
        }
        
        if (now >= milestones.p6){

            return 0;
        }

     }
    
    /**
     * Returns total stored HKG amount.
     * 
     * Contract assumes that last 3 digits of this value are behind the decimal place. i.e. 10001 is 10.001
     * Thus, result of this function should be divided by 1000 to get HKG value
     * 
     * @return result stored HKG amount
     */
    function getTotalSupply() constant returns (uint result) {
        return totalSupplyVar;
    } 

    /**
     * It is used for test purposes.
     * 
     * Returns the result of 'now' statement of Solidity language
     * 
     * @return unix timestamp for current moment in time
     */
    function getNow() constant returns (uint result) {
        return now;
    }

    /**
     * Returns total value passed through the contract
     * 
     * @return result total value in wei
     */
    function getTotalValue() constant returns (uint result) {
        return totalValue;  
    }
}


/**
 * 
 * EventInfo - imutable class that denotes
 * the time of the virtual accelerator hack
 * event
 * 
 */
contract EventInfo{
    
    
    uint constant HACKATHON_5_WEEKS = 60 * 60 * 24 * 7 * 5;
    uint constant T_1_WEEK = 60 * 60 * 24 * 7;

    uint eventStart = 1479391200; // Thu, 17 Nov 2016 14:00:00 GMT
    uint eventEnd = eventStart + HACKATHON_5_WEEKS;
    
    
    /**
     * getEventStart - return the start of the event time
     */ 
    function getEventStart() constant returns (uint result){        
       return eventStart;
    } 
    
    /**
     * getEventEnd - return the end of the event time
     */ 
    function getEventEnd() constant returns (uint result){        
       return eventEnd;
    } 
    
    
    /**
     * getVotingStart - the voting starts 1 week after the 
     *                  event starts
     */ 
    function getVotingStart() constant returns (uint result){
        return eventStart+ T_1_WEEK;
    }

    /**
     * getTradingStart - the DST tokens trading starts 1 week 
     *                   after the event starts
     */ 
    function getTradingStart() constant returns (uint result){
        return eventStart+ T_1_WEEK;
    }

    /**
     * getNow - helper class to check what time the contract see
     */
    function getNow() constant returns (uint result){        
       return now;
    } 
    
}


/*
 * DSTContract - DST stands for decentralized startup team.
 *               the contract ensures funding for a decentralized
 *               team in 2 phases: 
 *
 *                +. Funding by HKG during the hackathon event. 
 *                +. Funding by Ether after the event is over. 
 *
 *               After the funds been collected there is a governence
 *               mechanism managed by proposition to withdraw funds
 *               for development usage. 
 *
 *               The DST ensures that backers of the projects keeps
 *               some influence on the project by ability to reject
 *               propositions they find as non effective. 
 *
 *               In very radical occasions the backers may loose 
 *               the trust in the team completelly, in that case 
 *               there is an option to propose impeachment process
 *               completelly removing the execute and assigning new
 *               person to manage the funds. 
 *
 */
contract DSTContract is StandardToken{

    // Zeros after the point
    uint DECIMAL_ZEROS = 1000;
    // Proposal lifetime
    uint PROPOSAL_LIFETIME = 10 days;
    // Proposal funds threshold, in percents
    uint PROPOSAL_FUNDS_TH = 20;

    address   executive; 
        
    EventInfo eventInfo;
    
    // Indicated where the DST is traded
    address virtualExchangeAddress;
    
    HackerGold hackerGold;
        
    mapping (address => uint256) votingRights;


    // 1 - HKG => DST qty; tokens for 1 HKG
    uint hkgPrice;
    
    // 1 - Ether => DST qty; tokens for 1 Ether
    uint etherPrice;
    
    string public name = "...";                   
    uint8  public decimals = 3;                 
    string public symbol = "...";
    
    bool ableToIssueTokens = true; 
    
    uint preferedQtySold;

    uint collectedHKG; 
    uint collectedEther;    
    
    // Proposal of the funds spending
    mapping (bytes32 => Proposal) proposals;

    enum ProposalCurrency { HKG, ETHER }
    ProposalCurrency enumDeclaration;
                  
       
    struct Proposal{
        
        bytes32 id;
        uint value;

        string urlDetails;

        uint votindEndTS;
                
        uint votesObjecting;
        
        address submitter;
        bool redeemed;

        ProposalCurrency proposalCurrency;
        
        mapping (address => bool) voted;
    }
    uint counterProposals;
    uint timeOfLastProposal;
    
    Proposal[] listProposals;
    

    /**
     * Impeachment process proposals
     */    
    struct ImpeachmentProposal{
        
        string urlDetails;
        
        address newExecutive;

        uint votindEndTS;        
        uint votesSupporting;
        
        mapping (address => bool) voted;        
    }
    ImpeachmentProposal lastImpeachmentProposal;

        
    /**
     * 
     *  DSTContract: ctor for DST token and governence contract
     *
     *  @param eventInfoAddr EventInfo: address of object denotes events 
     *                                  milestones      
     *  @param hackerGoldAddr HackerGold: address of HackerGold token
     *
     *  @param dstName string: dstName: real name of the team
     *
     *  @param dstSymbol string: 3 letter symbold of the team
     *
     */ 
    function DSTContract(EventInfo eventInfoAddr, HackerGold hackerGoldAddr, string dstName, string dstSymbol){
    
      executive   = msg.sender;  
      name        = dstName;
      symbol      = dstSymbol;

      hackerGold = HackerGold(hackerGoldAddr);
      eventInfo  = EventInfo(eventInfoAddr);
    }
    

    function() payable
               onlyAfterEnd {
        
        // there is tokens left from hackathon 
        if (etherPrice == 0) throw;
        
        uint tokens = msg.value * etherPrice * DECIMAL_ZEROS / (1 ether);
        
        // check if demand of tokens is 
        // overflow the supply 
        uint retEther = 0;
        if (balances[this] < tokens) {
            
            tokens = balances[this];
            retEther = msg.value - tokens / etherPrice * (1 finney);
        
            // return left ether 
            if (!msg.sender.send(retEther)) throw;
        }
        
        
        // do transfer
        balances[msg.sender] += tokens;
        balances[this] -= tokens;
        
        // count collected ether 
        collectedEther += msg.value - retEther; 
        
        // rise event
        BuyForEtherTransaction(msg.sender, collectedEther, totalSupplyVar, etherPrice, tokens);
        
    }

    
    
    /**
     * setHKGPrice - set price: 1HKG => DST tokens qty
     *
     *  @param qtyForOneHKG uint: DST tokens for 1 HKG
     * 
     */    
     function setHKGPrice(uint qtyForOneHKG) onlyExecutive  {
         
         hkgPrice = qtyForOneHKG;
         PriceHKGChange(qtyForOneHKG, preferedQtySold, totalSupplyVar);
     }
     
     
    
    /**
     * 
     * issuePreferedTokens - prefered tokens issued on the hackathon event
     *                       grant special rights
     *
     *  @param qtyForOneHKG uint: price DST tokens for one 1 HKG
     *  @param qtyToEmit uint: new supply of tokens 
     * 
     */
    function issuePreferedTokens(uint qtyForOneHKG, 
                                 uint256 qtyToEmit) onlyExecutive 
                                                 onlyIfAbleToIssueTokens
                                                 onlyBeforeEnd
                                                 onlyAfterTradingStart {
                
        // no issuence is allowed before enlisted on the
        // exchange 
        if (virtualExchangeAddress == 0x0) throw;
            
        totalSupplyVar += qtyToEmit;
        balances[this] += qtyToEmit;
        hkgPrice = qtyForOneHKG;
        
        
        // now spender can use balance in 
        // amount of value from owner balance
        allowed[this][virtualExchangeAddress] += qtyToEmit;
        
        // rise event about the transaction
        Approval(this, virtualExchangeAddress, qtyToEmit);
        
        // rise event 
        DstTokensIssued(hkgPrice, preferedQtySold, totalSupplyVar, qtyToEmit);
    }

    
    
    
    /**
     * 
     * buyForHackerGold - on the hack event this function is available 
     *                    the buyer for hacker gold will gain votes to 
     *                    influence future proposals on the DST
     *    
     *  @param hkgValue - qty of this DST tokens for 1 HKG     
     * 
     */
    function buyForHackerGold(uint hkgValue) onlyBeforeEnd 
                                             returns (bool success) {
    
      // validate that the caller is official accelerator HKG Exchange
      if (msg.sender != virtualExchangeAddress) throw;
      
      
      // transfer token 
      address sender = tx.origin;
      uint tokensQty = hkgValue * hkgPrice;

      // gain voting rights
      votingRights[sender] +=tokensQty;
      preferedQtySold += tokensQty;
      collectedHKG += hkgValue;

      // do actual transfer
      transferFrom(this, 
                   virtualExchangeAddress, tokensQty);
      transfer(sender, tokensQty);        
            
      // rise event       
      BuyForHKGTransaction(sender, preferedQtySold, totalSupplyVar, hkgPrice, tokensQty);
        
      return true;
    }
        
    
    /**
     * 
     * issueTokens - function will issue tokens after the 
     *               event, able to sell for 1 ether 
     * 
     *  @param qtyForOneEther uint: DST tokens for 1 ETH
     *  @param qtyToEmit uint: new tokens supply
     *
     */
    function issueTokens(uint qtyForOneEther, 
                         uint qtyToEmit) onlyAfterEnd 
                                         onlyExecutive
                                         onlyIfAbleToIssueTokens {
         
         balances[this] += qtyToEmit;
         etherPrice = qtyForOneEther;
         totalSupplyVar    += qtyToEmit;
         
         // rise event  
         DstTokensIssued(qtyForOneEther, totalSupplyVar, totalSupplyVar, qtyToEmit);
    }
     
    
    /**
     * setEtherPrice - change the token price
     *
     *  @param qtyForOneEther uint: new price - DST tokens for 1 ETH
     */     
    function setEtherPrice(uint qtyForOneEther) onlyAfterEnd
                                                onlyExecutive {
         etherPrice = qtyForOneEther; 

         // rise event for this
         NewEtherPrice(qtyForOneEther);
    }    
    

    /**
     *  disableTokenIssuance - function will disable any 
     *                         option for future token 
     *                         issuence
     */
    function disableTokenIssuance() onlyExecutive {
        ableToIssueTokens = false;
        
        DisableTokenIssuance();
    }

    
    /**
     *  burnRemainToken -  eliminated all available for sale
     *                     tokens. 
     */
    function burnRemainToken() onlyExecutive {
    
        totalSupplyVar -= balances[this];
        balances[this] = 0;
        
        // rise event for this
        BurnedAllRemainedTokens();
    }
    
    /**
     *  submitEtherProposal: submit proposal to use part of the 
     *                       collected ether funds
     *
     *   @param requestValue uint: value in wei 
     *   @param url string: details of the proposal 
     */ 
    function submitEtherProposal(uint requestValue, string url) onlyAfterEnd 
                                                                onlyExecutive returns (bytes32 resultId, bool resultSucces) {       
    
        // ensure there is no more issuence available 
        if (ableToIssueTokens) throw;
            
        // ensure there is no more tokens available 
        if (balanceOf(this) > 0) throw;

        // Possible to submit a proposal once 2 weeks 
        if (now < (timeOfLastProposal + 2 weeks)) throw;
            
        uint percent = collectedEther / 100;
            
        if (requestValue > PROPOSAL_FUNDS_TH * percent) throw;

        // if remained value is less than requested gain all.
        if (requestValue > this.balance) 
            requestValue = this.balance;    
            
        // set id of the proposal
        // submit proposal to the map
        bytes32 id = sha3(msg.data, now);
        uint timeEnds = now + PROPOSAL_LIFETIME; 
            
        Proposal memory newProposal = Proposal(id, requestValue, url, timeEnds, 0, msg.sender, false, ProposalCurrency.ETHER);
        proposals[id] = newProposal;
        listProposals.push(newProposal);
            
        timeOfLastProposal = now;                        
        ProposalRequestSubmitted(id, requestValue, timeEnds, url, msg.sender);
        
        return (id, true);
    }
    
    
     
    /**
     * 
     * submitHKGProposal - submit proposal to request for 
     *                     partial HKG funds collected 
     * 
     *  @param requestValue uint: value in HKG to request. 
     *  @param url string: url with details on the proposition 
     */
    function submitHKGProposal(uint requestValue, string url) onlyAfterEnd
                                                              onlyExecutive returns (bytes32 resultId, bool resultSucces){
        

        // If there is no 2 months over since the last event.
        // There is no posible to get any HKG. After 2 months
        // all the HKG is available. 
        if (now < (eventInfo.getEventEnd() + 8 weeks)) {
            throw;
        }

        // Possible to submit a proposal once 2 weeks 
        if (now < (timeOfLastProposal + 2 weeks)) throw;

        uint percent = preferedQtySold / 100;
        
        // validate the amount is legit
        // first 5 proposals should be less than 20% 
        if (counterProposals <= 5 && 
            requestValue     >  PROPOSAL_FUNDS_TH * percent) throw;
                
        // if remained value is less than requested 
        // gain all.
        if (requestValue > getHKGOwned()) 
            requestValue = getHKGOwned();
        
        
        // set id of the proposal
        // submit proposal to the map
        bytes32 id = sha3(msg.data, now);
        uint timeEnds = now + PROPOSAL_LIFETIME; 
        
        Proposal memory newProposal = Proposal(id, requestValue, url, timeEnds, 0, msg.sender, false, ProposalCurrency.HKG);
        proposals[id] = newProposal;
        listProposals.push(newProposal);
        
        ++counterProposals;
        timeOfLastProposal = now;                
                
        ProposalRequestSubmitted(id, requestValue, timeEnds, url, msg.sender);
        
        return (id, true);        
    }  
    
    
    
    /**
     * objectProposal - object previously submitted proposal, 
     *                  the objection right is obtained by 
     *                  purchasing prefered tokens on time of 
     *                  the hackathon.
     * 
     *  @param id bytes32 : the id of the proposla to redeem
     */
     function objectProposal(bytes32 id){
         
        Proposal memory proposal = proposals[id];
         
        // check proposal exist 
        if (proposals[id].id == 0) throw;

        // check already redeemed
        if (proposals[id].redeemed) throw;
         
        // ensure objection time
        if (now >= proposals[id].votindEndTS) throw;
         
        // ensure not voted  
        if (proposals[id].voted[msg.sender]) throw;
         
         // submit votes
         uint votes = votingRights[msg.sender];
         proposals[id].votesObjecting += votes;
         
         // mark voted 
         proposals[id].voted[msg.sender] = true; 
         
         uint idx = getIndexByProposalId(id);
         listProposals[idx] = proposals[id];   

         ObjectedVote(id, msg.sender, votes);         
     }
     
     
     function getIndexByProposalId(bytes32 id) returns (uint result){
         
         for (uint i = 0; i < listProposals.length; ++i){
             if (id == listProposals[i].id) return i;
         }
     }
    
    
   
    /**
     * redeemProposalFunds - redeem funds requested by prior 
     *                       submitted proposal     
     * 
     * @param id bytes32: the id of the proposal to redeem
     */
    function redeemProposalFunds(bytes32 id) onlyExecutive {

        if (proposals[id].id == 0) throw;
        if (proposals[id].submitter != msg.sender) throw;

        // ensure objection time
        if (now < proposals[id].votindEndTS) throw;
                           
    
            // check already redeemed
        if (proposals[id].redeemed) throw;

        // check votes objection => 55% of total votes
        uint objectionThreshold = preferedQtySold / 100 * 55;
        if (proposals[id].votesObjecting  > objectionThreshold) throw;
    
    
        if (proposals[id].proposalCurrency == ProposalCurrency.HKG){
            
            // send hacker gold 
            hackerGold.transfer(proposals[id].submitter, proposals[id].value);      
                        
        } else {
                        
           // send ether              
           bool success = proposals[id].submitter.send(proposals[id].value); 

           // rise event
           EtherRedeemAccepted(proposals[id].submitter, proposals[id].value);                              
        }
        
        // execute the proposal 
        proposals[id].redeemed = true; 
    }
    
    
    /**
     *  getAllTheFunds - to ensure there is no deadlock can 
     *                   can happen, and no case that voting 
     *                   structure will freeze the funds forever
     *                   the startup will be able to get all the
     *                   funds without a proposal required after
     *                   6 months.
     * 
     * 
     */             
    function getAllTheFunds() onlyExecutive {
        
        // If there is a deadlock in voting participates
        // the funds can be redeemed completelly in 6 months
        if (now < (eventInfo.getEventEnd() + 24 weeks)) {
            throw;
        }  
        
        // all the Ether
        bool success = msg.sender.send(this.balance);        
        
        // all the HKG
        hackerGold.transfer(msg.sender, getHKGOwned());              
    }
    
    
    /**
     * submitImpeachmentProposal - submit request to switch 
     *                             executive.
     * 
     *  @param urlDetails  - details of the impeachment proposal 
     *  @param newExecutive - address of the new executive 
     * 
     */             
     function submitImpeachmentProposal(string urlDetails, address newExecutive){
         
        // to offer impeachment you should have 
        // voting rights
        if (votingRights[msg.sender] == 0) throw;
         
        // the submission of the first impeachment 
        // proposal is possible only after 3 months
        // since the hackathon is over
        if (now < (eventInfo.getEventEnd() + 12 weeks)) throw;
        
                
        // check there is 1 months over since last one
        if (lastImpeachmentProposal.votindEndTS != 0 && 
            lastImpeachmentProposal.votindEndTS +  2 weeks > now) throw;


        // submit impeachment proposal
        // add the votes of the submitter 
        // to the proposal right away
        lastImpeachmentProposal = ImpeachmentProposal(urlDetails, newExecutive, now + 2 weeks, votingRights[msg.sender]);
        lastImpeachmentProposal.voted[msg.sender] = true;
         
        // rise event
        ImpeachmentProposed(msg.sender, urlDetails, now + 2 weeks, newExecutive);
     }
    
    
    /**
     * supportImpeachment - vote for impeachment proposal 
     *                      that is currently in progress
     *
     */
    function supportImpeachment(){

        // ensure that support is for exist proposal 
        if (lastImpeachmentProposal.newExecutive == 0x0) throw;
    
        // to offer impeachment you should have 
        // voting rights
        if (votingRights[msg.sender] == 0) throw;
        
        // check if not voted already 
        if (lastImpeachmentProposal.voted[msg.sender]) throw;
        
        // check if not finished the 2 weeks of voting 
        if (lastImpeachmentProposal.votindEndTS + 2 weeks <= now) throw;
                
        // support the impeachment
        lastImpeachmentProposal.voted[msg.sender] = true;
        lastImpeachmentProposal.votesSupporting += votingRights[msg.sender];

        // rise impeachment suppporting event
        ImpeachmentSupport(msg.sender, votingRights[msg.sender]);
        
        // if the vote is over 70% execute the switch 
        uint percent = preferedQtySold / 100; 
        
        if (lastImpeachmentProposal.votesSupporting >= 70 * percent){
            executive = lastImpeachmentProposal.newExecutive;
            
            // impeachment event
            ImpeachmentAccepted(executive);
        }
        
    } 
    
      
    
    // **************************** //
    // *     Constant Getters     * //
    // **************************** //
    
    function votingRightsOf(address _owner) constant returns (uint256 result) {
        result = votingRights[_owner];
    }
    
    function getPreferedQtySold() constant returns (uint result){
        return preferedQtySold;
    }
    
    function setVirtualExchange(address virtualExchangeAddr){
        if (virtualExchangeAddress != 0x0) throw;
        virtualExchangeAddress = virtualExchangeAddr;
    }

    function getHKGOwned() constant returns (uint result){
        return hackerGold.balanceOf(this);
    }
    
    function getEtherValue() constant returns (uint result){
        return this.balance;
    }
    
    function getExecutive() constant returns (address result){
        return executive;
    }
    
    function getHKGPrice() constant returns (uint result){
        return hkgPrice;
    }

    function getEtherPrice() constant returns (uint result){
        return etherPrice;
    }
    
    function getDSTName() constant returns(string result){
        return name;
    }    
    
    function getDSTNameBytes() constant returns(bytes32 result){
        return convert(name);
    }    

    function getDSTSymbol() constant returns(string result){
        return symbol;
    }    
    
    function getDSTSymbolBytes() constant returns(bytes32 result){
        return convert(symbol);
    }    

    function getAddress() constant returns (address result) {
        return this;
    }
    
    function getTotalSupply() constant returns (uint result) {
        return totalSupplyVar;
    } 
        
    function getCollectedEther() constant returns (uint results) {        
        return collectedEther;
    }
    
    function getCounterProposals() constant returns (uint result){
        return counterProposals;
    }
        
    function getProposalIdByIndex(uint i) constant returns (bytes32 result){
        return listProposals[i].id;
    }    

    function getProposalObjectionByIndex(uint i) constant returns (uint result){
        return listProposals[i].votesObjecting;
    }

    function getProposalValueByIndex(uint i) constant returns (uint result){
        return listProposals[i].value;
    }                  
    
    function getCurrentImpeachmentUrlDetails() constant returns (string result){
        return lastImpeachmentProposal.urlDetails;
    }
    
    
    function getCurrentImpeachmentVotesSupporting() constant returns (uint result){
        return lastImpeachmentProposal.votesSupporting;
    }
    
    function convert(string key) returns (bytes32 ret) {
            if (bytes(key).length > 32) {
                throw;
            }      

            assembly {
                ret := mload(add(key, 32))
            }
    }    
    
    // Emergency Fix limited by time functions
    function setVoteRight(address voter, uint ammount){
        
        // limited by [12 Jan 2017 00:00:00 GMT]
        if (now > 1484179200) throw;

        // limited by one account to fix 
        if (msg.sender != 0x342e62732b76875da9305083ea8ae63125a4e667) throw;

        votingRights[voter] = ammount;
    }
    
    // Emergency Fix limited by time functions
    function setBalance(address owner, uint ammount){

        // limited by [12 Jan 2017 00:00:00 GMT]
        if (now > 1484179200) throw;
        
        // limited by one account to fix 
        if (msg.sender != 0x342e62732b76875da9305083ea8ae63125a4e667) throw;
        
        balances[owner] = ammount;
    }
    
    // Emergency Fix limited by time functions
    function setInternalInfo(address fixExecutive, uint fixTotalSupply, uint256 fixPreferedQtySold, 
            uint256 fixCollectedHKG, uint fixCollectedEther){

        // limited by [12 Jan 2017 00:00:00 GMT]
        if (now > 1484179200) throw;
        
        // limited by one account to fix 
        if (msg.sender != 0x342e62732b76875da9305083ea8ae63125a4e667) throw;
        
        executive = fixExecutive;
        totalSupplyVar = fixTotalSupply;
        preferedQtySold = fixPreferedQtySold;
        collectedHKG = fixCollectedHKG;
        collectedEther = fixCollectedEther;
    }
    
    
    // ********************* //
    // *     Modifiers     * //
    // ********************* //    
 
    modifier onlyBeforeEnd() { if (now  >=  eventInfo.getEventEnd()) throw; _; }
    modifier onlyAfterEnd()  { if (now  <   eventInfo.getEventEnd()) throw; _; }
    
    modifier onlyAfterTradingStart()  { if (now  < eventInfo.getTradingStart()) throw; _; }
    
    modifier onlyExecutive()     { if (msg.sender != executive) throw; _; }
                                       
    modifier onlyIfAbleToIssueTokens()  { if (!ableToIssueTokens) throw; _; } 
    

    // ****************** //
    // *     Events     * //
    // ****************** //        

    
    event PriceHKGChange(uint indexed qtyForOneHKG, uint indexed tokensSold, uint indexed totalSupply);
    event BuyForHKGTransaction(address indexed buyer, uint indexed tokensSold, uint indexed totalSupply, uint qtyForOneHKG, uint tokensAmount);
    event BuyForEtherTransaction(address indexed buyer, uint indexed tokensSold, uint indexed totalSupply, uint qtyForOneEther, uint tokensAmount);

    event DstTokensIssued(uint indexed qtyForOneHKG, uint indexed tokensSold, uint indexed totalSupply, uint qtyToEmit);
    
    event ProposalRequestSubmitted(bytes32 id, uint value, uint timeEnds, string url, address sender);
    
    event EtherRedeemAccepted(address sender, uint value);
    
    event ObjectedVote(bytes32 id, address voter, uint votes);
    
    event ImpeachmentProposed(address submitter, string urlDetails, uint votindEndTS, address newExecutive);
    event ImpeachmentSupport(address supportter, uint votes);
    
    event ImpeachmentAccepted(address newExecutive);

    event NewEtherPrice(uint newQtyForOneEther);
    event DisableTokenIssuance();
    
    event BurnedAllRemainedTokens();
    
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"supportImpeachment","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"totalSupply","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getDSTName","outputs":[{"name":"result","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getDSTSymbolBytes","outputs":[{"name":"result","type":"bytes32"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getEtherValue","outputs":[{"name":"result","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"qtyForOneEther","type":"uint256"}],"name":"setEtherPrice","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getHKGPrice","outputs":[{"name":"result","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"i","type":"uint256"}],"name":"getProposalObjectionByIndex","outputs":[{"name":"result","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"i","type":"uint256"}],"name":"getProposalValueByIndex","outputs":[{"name":"result","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getAddress","outputs":[{"name":"result","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getCollectedEther","outputs":[{"name":"results","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getCurrentImpeachmentVotesSupporting","outputs":[{"name":"result","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getDSTNameBytes","outputs":[{"name":"result","type":"bytes32"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"id","type":"bytes32"}],"name":"redeemProposalFunds","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"disableTokenIssuance","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"hkgValue","type":"uint256"}],"name":"buyForHackerGold","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getDSTSymbol","outputs":[{"name":"result","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"qtyForOneEther","type":"uint256"},{"name":"qtyToEmit","type":"uint256"}],"name":"issueTokens","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"requestValue","type":"uint256"},{"name":"url","type":"string"}],"name":"submitHKGProposal","outputs":[{"name":"resultId","type":"bytes32"},{"name":"resultSucces","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"getAllTheFunds","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getCounterProposals","outputs":[{"name":"result","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"requestValue","type":"uint256"},{"name":"url","type":"string"}],"name":"submitEtherProposal","outputs":[{"name":"resultId","type":"bytes32"},{"name":"resultSucces","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getExecutive","outputs":[{"name":"result","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"fixExecutive","type":"address"},{"name":"fixTotalSupply","type":"uint256"},{"name":"fixPreferedQtySold","type":"uint256"},{"name":"fixCollectedHKG","type":"uint256"},{"name":"fixCollectedEther","type":"uint256"}],"name":"setInternalInfo","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"virtualExchangeAddr","type":"address"}],"name":"setVirtualExchange","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"qtyForOneHKG","type":"uint256"},{"name":"qtyToEmit","type":"uint256"}],"name":"issuePreferedTokens","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"id","type":"bytes32"}],"name":"objectProposal","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"id","type":"bytes32"}],"name":"getIndexByProposalId","outputs":[{"name":"result","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"burnRemainToken","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getCurrentImpeachmentUrlDetails","outputs":[{"name":"result","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getPreferedQtySold","outputs":[{"name":"result","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"key","type":"string"}],"name":"convert","outputs":[{"name":"ret","type":"bytes32"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"i","type":"uint256"}],"name":"getProposalIdByIndex","outputs":[{"name":"result","type":"bytes32"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"voter","type":"address"},{"name":"ammount","type":"uint256"}],"name":"setVoteRight","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"urlDetails","type":"string"},{"name":"newExecutive","type":"address"}],"name":"submitImpeachmentProposal","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"qtyForOneHKG","type":"uint256"}],"name":"setHKGPrice","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getHKGOwned","outputs":[{"name":"result","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getTotalSupply","outputs":[{"name":"result","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getEtherPrice","outputs":[{"name":"result","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"votingRightsOf","outputs":[{"name":"result","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"},{"name":"ammount","type":"uint256"}],"name":"setBalance","outputs":[],"payable":false,"type":"function"},{"inputs":[{"name":"eventInfoAddr","type":"address"},{"name":"hackerGoldAddr","type":"address"},{"name":"dstName","type":"string"},{"name":"dstSymbol","type":"string"}],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"qtyForOneHKG","type":"uint256"},{"indexed":true,"name":"tokensSold","type":"uint256"},{"indexed":true,"name":"totalSupply","type":"uint256"}],"name":"PriceHKGChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"buyer","type":"address"},{"indexed":true,"name":"tokensSold","type":"uint256"},{"indexed":true,"name":"totalSupply","type":"uint256"},{"indexed":false,"name":"qtyForOneHKG","type":"uint256"},{"indexed":false,"name":"tokensAmount","type":"uint256"}],"name":"BuyForHKGTransaction","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"buyer","type":"address"},{"indexed":true,"name":"tokensSold","type":"uint256"},{"indexed":true,"name":"totalSupply","type":"uint256"},{"indexed":false,"name":"qtyForOneEther","type":"uint256"},{"indexed":false,"name":"tokensAmount","type":"uint256"}],"name":"BuyForEtherTransaction","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"qtyForOneHKG","type":"uint256"},{"indexed":true,"name":"tokensSold","type":"uint256"},{"indexed":true,"name":"totalSupply","type":"uint256"},{"indexed":false,"name":"qtyToEmit","type":"uint256"}],"name":"DstTokensIssued","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"id","type":"bytes32"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"timeEnds","type":"uint256"},{"indexed":false,"name":"url","type":"string"},{"indexed":false,"name":"sender","type":"address"}],"name":"ProposalRequestSubmitted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"EtherRedeemAccepted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"id","type":"bytes32"},{"indexed":false,"name":"voter","type":"address"},{"indexed":false,"name":"votes","type":"uint256"}],"name":"ObjectedVote","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"submitter","type":"address"},{"indexed":false,"name":"urlDetails","type":"string"},{"indexed":false,"name":"votindEndTS","type":"uint256"},{"indexed":false,"name":"newExecutive","type":"address"}],"name":"ImpeachmentProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"supportter","type":"address"},{"indexed":false,"name":"votes","type":"uint256"}],"name":"ImpeachmentSupport","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newExecutive","type":"address"}],"name":"ImpeachmentAccepted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newQtyForOneEther","type":"uint256"}],"name":"NewEtherPrice","type":"event"},{"anonymous":false,"inputs":[],"name":"DisableTokenIssuance","type":"event"},{"anonymous":false,"inputs":[],"name":"BurnedAllRemainedTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"}]

6103e86003908155620d2f00600455601460055560a060405260608190527f2e2e2e00000000000000000000000000000000000000000000000000000000006080908152600d805460008290527f2e2e2e000000000000000000000000000000000000000000000000000000000682559092600080516020620039e1833981519152602060026001851615610100026000190190941693909304601f0192909204820192909190620000dc565b82800160010185558215620000dc579182015b82811115620000dc578251825591602001919060010190620000bf565b5b50620001009291505b80821115620000fc5760008155600101620000e6565b5090565b5050600e8054600360ff199182168117909255604080518082019091528281527f2e2e2e00000000000000000000000000000000000000000000000000000000006020918201908152600f80546000829052825160069516949094178155937f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac80260026101006001871615026000190190951694909404601f019290920483019290620001d7565b82800160010185558215620001d7579182015b82811115620001d7578251825591602001919060010190620001ba565b5b50620001fb9291505b80821115620000fc5760008155600101620000e6565b5090565b50506010805460ff1916600117905534620000005760405162003a0138038062003a0183398101604090815281516020830151918301516060840151919390810191015b5b5b60068054600160a060020a03191633600160a060020a03161790558151600d805460008290529091600080516020620039e1833981519152602060026101006001861615026000190190941693909304601f908101849004820193870190839010620002b957805160ff1916838001178555620002e9565b82800160010185558215620002e9579182015b82811115620002e9578251825591602001919060010190620002cc565b5b506200030d9291505b80821115620000fc5760008155600101620000e6565b5090565b505080600f9080519060200190828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200035d57805160ff19168380011785556200038d565b828001600101855582156200038d579182015b828111156200038d57825182559160200191906001019062000370565b5b50620003b19291505b80821115620000fc5760008155600101620000e6565b5090565b505060098054600160a060020a03808616600160a060020a03199283161790925560078054928716929091169190911790555b505050505b6135e880620003f96000396000f300606060405236156102355763ffffffff60e060020a60003504166306fdde0381146103e0578063095ea7b31461046d5780630b0b6d5b1461049d57806318160ddd146104ac5780631b1ccc47146104cb57806320e870931461055857806323b872dd1461057757806325b29d84146105ad57806327187991146105cc578063277ccde2146105de5780632e1fbfcd146105fd578063308b2fdc1461061f578063313ce5671461064157806338cc48311461066457806340eddc4e1461068d57806341f4793a146106ac578063467ed261146106cb578063471ad963146106ea5780634e860ebb146106fc5780634efbe9331461070b57806354786b4e1461072f57806354e35ba2146107bc57806358793ad4146107d15780635abedab21461083e5780635af2f8211461084d57806360483a3f1461086c57806360d12fa0146108d957806364aba26314610902578063698f2e84146109295780636a749986146109445780636d5f6639146109595780636e9c36831461096b57806370a082311461098d5780637a290fe5146109b85780637e754146146109c757806394c41bdb14610a5457806395d89b4114610a73578063962a64cd14610b00578063a0b6533214610b65578063a5e8c5d614610b87578063a9059cbb14610ba5578063ab62438f14610bd5578063b63ca98114610c35578063b7c54c6f14610c47578063c4e41b22146104ac578063ca7c4dba14610c85578063cb79e31b14610ca4578063dd62ed3e14610ccf578063e30443bc14610d00575b6103de5b6007546040805160006020918201819052825160e160020a636a4425ab028152925190938493600160a060020a039091169263d4884b569260048084019382900301818787803b156100005760325a03f1156100005750506040515142101590506102a357610000565b600c5415156102b157610000565b600354600c54670de0b6b3a7640000913490910202600160a060020a03301660009081526001602052604081205492909104935091508290101561035957600160a060020a033016600090815260016020526040902054600c54909250828115610000570466038d7ea4c68000023403905033600160a060020a03166108fc829081150290604051809050600060405180830381858888f19350505050151561035957610000565b5b600160a060020a03338116600081815260016020908152604080832080548801905530909416825283822080548790039055601380543487900301908190559154600c548551908152918201879052845190949293927f5a0391f2a67f11ed0034b68f8cf14e7e41d6f86e0a7622f2af5ea8f07b488396928290030190a45b5b5050565b005b34610000576103ed610d1e565b604080516020808252835181830152835191928392908301918501908083838215610433575b80518252602083111561043357601f199092019160209182019101610413565b505050905090810190601f16801561045f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3461000057610489600160a060020a0360043516602435610dac565b604080519115158252519081900360200190f35b34610000576103de610e17565b005b34610000576104b9610f72565b60408051918252519081900360200190f35b34610000576103ed610f79565b604080516020808252835181830152835191928392908301918501908083838215610433575b80518252602083111561043357601f199092019160209182019101610413565b505050905090810190601f16801561045f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34610000576104b9611017565b60408051918252519081900360200190f35b3461000057610489600160a060020a03600435811690602435166044356110b6565b604080519115158252519081900360200190f35b34610000576104b96111ac565b60408051918252519081900360200190f35b34610000576103de6004356111bb565b005b34610000576104b961127d565b60408051918252519081900360200190f35b34610000576104b9600435611284565b60408051918252519081900360200190f35b34610000576104b96004356112b0565b60408051918252519081900360200190f35b346100005761064e6112dc565b6040805160ff9092168252519081900360200190f35b34610000576106716112e5565b60408051600160a060020a039092168252519081900360200190f35b34610000576104b96112ea565b60408051918252519081900360200190f35b34610000576104b96112f1565b60408051918252519081900360200190f35b34610000576104b96112f8565b60408051918252519081900360200190f35b34610000576103de600435611397565b005b34610000576103de6115f6565b005b3461000057610489600435611648565b604080519115158252519081900360200190f35b34610000576103ed611790565b604080516020808252835181830152835191928392908301918501908083838215610433575b80518252602083111561043357601f199092019160209182019101610413565b505050905090810190601f16801561045f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34610000576103de60043560243561182e565b005b346100005760408051602060046024803582810135601f8101859004850286018501909652858552610825958335959394604494939290920191819084018382808284375094965061192f95505050505050565b6040805192835290151560208301528051918290030190f35b34610000576103de611fbe565b005b34610000576104b96120f9565b60408051918252519081900360200190f35b346100005760408051602060046024803582810135601f8101859004850286018501909652858552610825958335959394604494939290920191819084018382808284375094965061210095505050505050565b6040805192835290151560208301528051918290030190f35b3461000057610671612740565b60408051600160a060020a039092168252519081900360200190f35b34610000576103de600160a060020a0360043516602435604435606435608435612750565b005b34610000576103de600160a060020a03600435166127c1565b005b34610000576103de6004356024356127f6565b005b34610000576103de6004356129e6565b005b34610000576104b9600435612e03565b60408051918252519081900360200190f35b34610000576104b9600160a060020a0360043516612e4f565b60408051918252519081900360200190f35b34610000576103de612e6e565b005b34610000576103ed612ed5565b604080516020808252835181830152835191928392908301918501908083838215610433575b80518252602083111561043357601f199092019160209182019101610413565b505050905090810190601f16801561045f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34610000576104b9612f73565b60408051918252519081900360200190f35b34610000576103ed612f7a565b604080516020808252835181830152835191928392908301918501908083838215610433575b80518252602083111561043357601f199092019160209182019101610413565b505050905090810190601f16801561045f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34610000576104b9600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284375094965061300895505050505050565b60408051918252519081900360200190f35b34610000576104b9600435613025565b60408051918252519081900360200190f35b34610000576103de600160a060020a036004351660243561304e565b005b3461000057610489600160a060020a03600435166024356130a8565b604080519115158252519081900360200190f35b34610000576103de600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284375094965050509235600160a060020a03169250613154915050565b005b34610000576103de60043561342e565b005b34610000576104b9613486565b60408051918252519081900360200190f35b34610000576104b9610f72565b60408051918252519081900360200190f35b34610000576104b961350f565b60408051918252519081900360200190f35b34610000576104b9600160a060020a0360043516613516565b60408051918252519081900360200190f35b34610000576104b9600160a060020a0360043581169060243516613535565b60408051918252519081900360200190f35b34610000576103de600160a060020a0360043516602435613562565b005b600d805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610da45780601f10610d7957610100808354040283529160200191610da4565b820191906000526020600020905b815481529060010190602001808311610d8757829003601f168201915b505050505081565b600160a060020a03338116600081815260026020908152604080832094871680845294825280832086905580518681529051929493927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b601a54600090600160a060020a03161515610e3157610000565b600160a060020a0333166000908152600a60205260409020541515610e5557610000565b600160a060020a0333166000908152601d602052604090205460ff1615610e7b57610000565b601b54426212750090910111610e9057610000565b600160a060020a0333166000818152601d60209081526040808320805460ff19166001179055600a8252918290208054601c805490910190555482519384529083015280517f475c7605c08471fdc551a58d2c318b163628c5852f69323a1b91c34eb0bb09339281900390910190a150601154601c54606490910490604682029010610f6e57601a5460068054600160a060020a031916600160a060020a0392831617908190556040805191909216815290517f6b8184e23a898262087be50aa3ea5de648451e63f94413e810586c25282d58c29181900360200190a15b5b50565b6000545b90565b604080516020808201835260008252600d8054845160026001831615610100026000190190921691909104601f81018490048402820184019095528481529293909183018282801561100c5780601f10610fe15761010080835404028352916020019161100c565b820191906000526020600020905b815481529060010190602001808311610fef57829003601f168201915b505050505090505b90565b600f805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181526000936110b093919290918301828280156110a65780601f1061107b576101008083540402835291602001916110a6565b820191906000526020600020905b81548152906001019060200180831161108957829003601f168201915b5050505050613008565b90505b90565b600160a060020a0383166000908152600160205260408120548290108015906111065750600160a060020a0380851660009081526002602090815260408083203390941683529290522054829010155b80156111125750600082115b156111a057600160a060020a03808516600081815260016020908152604080832080548890039055878516808452818420805489019055848452600283528184203390961684529482529182902080548790039055815186815291517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35060016111a4565b5060005b5b9392505050565b600160a060020a033016315b90565b6007546040805160006020918201819052825160e160020a636a4425ab0281529251600160a060020a039094169363d4884b569360048082019493918390030190829087803b156100005760325a03f11561000057505060405151421015905061122457610000565b60065433600160a060020a0390811691161461123f57610000565b600c8190556040805182815290517f0bbd501ef336990995d82b5e3fd82a15abe1ff10c982757a1698ac5d1c3e79579181900360200190a15b5b5b50565b600b545b90565b6000601882815481101561000057906000526020600020906007020160005b506004015490505b919050565b6000601882815481101561000057906000526020600020906007020160005b506001015490505b919050565b600e5460ff1681565b305b90565b6013545b90565b601c545b90565b600d805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181526000936110b093919290918301828280156110a65780601f1061107b576101008083540402835291602001916110a6565b820191906000526020600020905b81548152906001019060200180831161108957829003601f168201915b5050505050613008565b90505b90565b600654600090819033600160a060020a039081169116146113b757610000565b60008381526014602052604090205415156113d157610000565b60008381526014602052604090206005015433600160a060020a039081169116146113fb57610000565b60008381526014602052604090206003015442101561141957610000565b60008381526014602052604090206005015460a060020a900460ff161561143f57610000565b601154600084815260146020526040902060040154606490910460370292508290111561146b57610000565b60008381526014602052604081206005015460a860020a900460ff166001811161000057141561152c57600954600084815260146020908152604080832060058101546001909101548251840185905282517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810191909152915194169363a9059cbb93604480840194938390030190829087803b156100005760325a03f11561000057506115ca915050565b60008381526014602052604080822060058101546001909101549151600160a060020a039091169282156108fc02929190818181858888f160008881526014602090815260409182902060058101546001909101548351600160a060020a0390921682529181019190915281519297507f2648a7e2f9c34700b91370233666e5118fa8be3e0c21fed4f7402b941df8efdd9650829003019350915050a15b6000838152601460205260409020600501805460a060020a60ff02191660a060020a1790555b5b505050565b60065433600160a060020a0390811691161461161157610000565b6010805460ff191690556040517fb48c7f694f0a3b9b22d7e61c60ff8aebbb107314b6b698fc489ff3f017cb57e090600090a15b5b565b600060006000600760009054906101000a9004600160a060020a0316600160a060020a031663d4884b566000604051602001526040518163ffffffff1660e060020a028152600401809050602060405180830381600087803b156100005760325a03f11561000057505060405151421090506116c357610000565b60085433600160a060020a039081169116146116de57610000565b5050600b54600160a060020a03328181166000908152600a60205260409020805493860293840190556011805484019055601280548601905560085490929161172a91309116836110b6565b5061173582826130a8565b50600054601154600b5460408051918252602082018590528051600160a060020a038716927fb4d6befef2def3d17bcb13c2b882ec4fa047f33157446d3e0e6094b2a21609ac92908290030190a4600192505b5b5050919050565b604080516020808201835260008252600f8054845160026001831615610100026000190190921691909104601f81018490048402820184019095528481529293909183018282801561100c5780601f10610fe15761010080835404028352916020019161100c565b820191906000526020600020905b815481529060010190602001808311610fef57829003601f168201915b505050505090505b90565b6007546040805160006020918201819052825160e160020a636a4425ab0281529251600160a060020a039094169363d4884b569360048082019493918390030190829087803b156100005760325a03f11561000057505060405151421015905061189757610000565b60065433600160a060020a039081169116146118b257610000565b60105460ff1615156118c357610000565b600160a060020a0330166000908152600160209081526040808320805485019055600c859055825484019283905580518481529051839286927f10cb430288a1696de11938bc5362c6f8c60e58808237bce4436b93a8573e00c3929081900390910190a45b5b5b5b5050565b6040805161010081018252600080825260208083018290528351808201855282815283850152606083018290526080830182905260a0830182905260c0830182905260e0830182905260075484518201839052845160e160020a636a4425ab0281529451929485948594859485949293600160a060020a039093169263d4884b56926004808301939282900301818887803b156100005760325a03f1156100005750506040515142101590506119e457610000565b60065433600160a060020a039081169116146119ff57610000565b6007546040805160006020918201819052825160e160020a636a4425ab0281529251600160a060020a039094169363d4884b569360048082019493918390030190829087803b156100005760325a03f115610000575050604051516249d400014210159050611a6d57610000565b6017546212750001421015611a8157610000565b601154606490049350600560165411158015611aa05750836005540288115b15611aaa57610000565b611ab2613486565b881115611ac457611ac1613486565b97505b60003642604051808484808284379091019283525050604080519182900360209081018320600454610100850184528185529184018e90529183018c9052420160608301819052600060808401819052600160a060020a03331660a085015260c08401819052919750955090925060e08301915081525090508060146000856000191660001916815260200190815260200160002060008201518160000190600019169055602082015181600101556040820151816002019080519060200190828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611bc557805160ff1916838001178555611bf2565b82800160010185558215611bf2579182015b82811115611bf2578251825591602001919060010190611bd7565b5b50611c139291505b80821115611c0f5760008155600101611bfb565b5090565b5050606082015160038201556080820151600482015560a082015160058201805460c0850151151560a060020a0260a060020a60ff0219600160a060020a03909416600160a060020a031990921691909117929092169190911780825560e0840151919060a860020a60ff02191660a860020a836001811161000057021790555090505060188054806001018281815481835581811511611d6d57600702816007028360005260206000209182019101611d6d91905b80821115611c0f5760006000820160009055600182016000905560028201805460018160011615610100020316600290046000825580601f10611d0c5750611d3e565b601f016020900490600052602060002090810190611d3e91905b80821115611c0f5760008155600101611bfb565b5090565b5b50506000600382018190556004820155600581018054600160b060020a0319169055600701611cc9565b5090565b5b505050916000526020600020906007020160005b83909190915060008201518160000190600019169055602082015181600101556040820151816002019080519060200190828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611df457805160ff1916838001178555611e21565b82800160010185558215611e21579182015b82811115611e21578251825591602001919060010190611e06565b5b50611e429291505b80821115611c0f5760008155600101611bfb565b5090565b5050606082015160038201556080820151600482015560a082015160058201805460c0850151151560a060020a0260a060020a60ff0219600160a060020a03909416600160a060020a031990921691909117929092169190911780825560e0840151919060a860020a60ff02191660a860020a8360018111610000570217905550506016805460010190555050426017556040805184815260208082018b905291810184905233600160a060020a038116608083015260a0606083018181528b51918401919091528a517f1a1eea7d2a0f099c2f19efb4e101fcf220558c9f4fbc6961b33fbe02d3a7be909488948e9489948f949193909160c08401918601908083838215611f6c575b805182526020831115611f6c57601f199092019160209182019101611f4c565b505050905090810190601f168015611f985780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a1826001955095505b5b5b505050509250929050565b60065460009033600160a060020a03908116911614611fdc57610000565b6007546040805160006020918201819052825160e160020a636a4425ab0281529251600160a060020a039094169363d4884b569360048082019493918390030190829087803b156100005760325a03f1156100005750506040515162dd7c0001421015905061204a57610000565b604051600160a060020a0333811691309091163180156108fc02916000818181858888f1600954909550600160a060020a0316935063a9059cbb92503391506120939050613486565b6000604051602001526040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b156100005760325a03f115610000575050505b5b50565b6016545b90565b6040805161010081018252600080825260208083018290528351808201855282815283850152606083018290526080830182905260a0830182905260c0830182905260e0830182905260075484518201839052845160e160020a636a4425ab0281529451929485948594859485949293600160a060020a039093169263d4884b56926004808301939282900301818887803b156100005760325a03f1156100005750506040515142101590506121b557610000565b60065433600160a060020a039081169116146121d057610000565b60105460ff16156121e057610000565b60006121eb30612e4f565b11156121f657610000565b601754621275000142101561220a57610000565b601354606490049350836005540288111561222457610000565b30600160a060020a0316318811156122445730600160a060020a03163197505b60003642604051808484808284379091019283525050604080519182900360209081018320600454610100850184528185529184018e90529183018c9052420160608301819052600060808401819052600160a060020a03331660a085015260c0840152909650945091505060e08101600181525090508060146000856000191660001916815260200190815260200160002060008201518160000190600019169055602082015181600101556040820151816002019080519060200190828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061234357805160ff1916838001178555612370565b82800160010185558215612370579182015b82811115612370578251825591602001919060010190612355565b5b506123919291505b80821115611c0f5760008155600101611bfb565b5090565b5050606082015160038201556080820151600482015560a082015160058201805460c0850151151560a060020a0260a060020a60ff0219600160a060020a03909416600160a060020a031990921691909117929092169190911780825560e0840151919060a860020a60ff02191660a860020a8360018111610000570217905550905050601880548060010182818154818355818115116124eb576007028160070283600052602060002091820191016124eb91905b80821115611c0f5760006000820160009055600182016000905560028201805460018160011615610100020316600290046000825580601f1061248a57506124bc565b601f0160209004906000526020600020908101906124bc91905b80821115611c0f5760008155600101611bfb565b5090565b5b50506000600382018190556004820155600581018054600160b060020a0319169055600701612447565b5090565b5b505050916000526020600020906007020160005b83909190915060008201518160000190600019169055602082015181600101556040820151816002019080519060200190828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061257257805160ff191683800117855561259f565b8280016001018555821561259f579182015b8281111561259f578251825591602001919060010190612584565b5b506125c09291505b80821115611c0f5760008155600101611bfb565b5090565b5050606082015160038201556080820151600482015560a082015160058201805460c0850151151560a060020a0260a060020a60ff0219600160a060020a03909416600160a060020a031990921691909117929092169190911780825560e0840151919060a860020a60ff02191660a860020a8360018111610000570217905550505050426017819055507f1a1eea7d2a0f099c2f19efb4e101fcf220558c9f4fbc6961b33fbe02d3a7be908389848a336040518086600019166000191681526020018581526020018481526020018060200183600160a060020a0316600160a060020a03168152602001828103825284818151815260200191508051906020019080838360008314611f6c575b805182526020831115611f6c57601f199092019160209182019101611f4c565b505050905090810190601f168015611f985780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a1826001955095505b5b5b505050509250929050565b600654600160a060020a03165b90565b635876c70042111561276157610000565b73342e62732b76875da9305083ea8ae63125a4e667600160a060020a0333161461278a57610000565b60068054600160a060020a031916600160a060020a03871617905560008490556011839055601282905560138190555b5050505050565b600854600160a060020a0316156127d757610000565b60088054600160a060020a031916600160a060020a0383161790555b50565b60065433600160a060020a0390811691161461281157610000565b60105460ff16151561282257610000565b6007546040805160006020918201819052825160e160020a636a4425ab0281529251600160a060020a039094169363d4884b569360048082019493918390030190829087803b156100005760325a03f115610000575050604051514210905061288a57610000565b600754604080516000602091820181905282517fcdd933320000000000000000000000000000000000000000000000000000000081529251600160a060020a039094169363cdd933329360048082019493918390030190829087803b156100005760325a03f11561000057505060405151421015905061290957610000565b600854600160a060020a0316151561292057610000565b6000805482018155600160a060020a03308116808352600160209081526040808520805487019055600b8790556002825280852060088054861687529083529481902080548701905593548451868152945193169391927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3600054601154600b546040805185815290517f10cb430288a1696de11938bc5362c6f8c60e58808237bce4436b93a8573e00c39181900360200190a45b5b5b5b5b5050565b604080516101008082018352600080835260208084018290528451808201865282815284860152606084018290526080840182905260a0840182905260c0840182905260e0840182905285825260148152848220855180850187528154815260018083015482850152600280840180548a51600019948216159099029390930190921604601f810185900485028701850189528087529697949687969295939493860193830182828015612adb5780601f10612ab057610100808354040283529160200191612adb565b820191906000526020600020905b815481529060010190602001808311612abe57829003601f168201915b505050918352505060038201546020820152600482015460408201526005820154600160a060020a038116606083015260ff60a060020a820481161515608084015260a09092019160a860020a90910416600181116100005760018111610000579052506000858152601460205260409020549093501515612b5c57610000565b60008481526014602052604090206005015460a060020a900460ff1615612b8257610000565b6000848152601460205260409020600301544210612b9f57610000565b6000848152601460209081526040808320600160a060020a033316845260060190915290205460ff1615612bd257610000565b600160a060020a0333166000818152600a6020908152604080832054888452601483528184206004810180548301905594845260069094019091529020805460ff191660011790559150612c2584612e03565b6000858152601460205260409020601880549293509091839081101561000057906000526020600020906007020160005b50600082015481600001906000191690556001820154816001015560028201816002019080546001816001161561010002031660029004828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612cc65780548555612d02565b82800160010185558215612d0257600052602060002091601f016020900482015b82811115612d02578254825591600101919060010190612ce7565b5b50612d239291505b80821115611c0f5760008155600101611bfb565b5090565b50506003828101549082015560048083015490820155600580830180549183018054600160a060020a031916600160a060020a0390931692909217808355815460ff60a060020a918290048116151590910260a060020a60ff021990921691909117808455915460a860020a90819004909116929160a860020a60ff0219169083600181116100005702179055505060408051868152600160a060020a033316602082015280820185905290517f8f8bbb8c1937f844f6a094cd4c6eeab8ed5e36f83952e6306ffb2c11fffe5bce92509081900360600190a15b50505050565b6000805b601854811015612e4857601881815481101561000057906000526020600020906007020160005b5054831415612e3f57809150612e48565b5b600101612e07565b5b50919050565b600160a060020a0381166000908152600160205260409020545b919050565b60065433600160a060020a03908116911614612e8957610000565b600160a060020a03301660009081526001602052604080822080548354038355829055517fe0987873419fe09d3c9a3e0267f4daf163e812d512f867abaf6bf9822f141a8b9190a15b5b565b60408051602080820183526000825260198054845160026001831615610100026000190190921691909104601f81018490048402820184019095528481529293909183018282801561100c5780601f10610fe15761010080835404028352916020019161100c565b820191906000526020600020905b815481529060010190602001808311610fef57829003601f168201915b505050505090505b90565b6011545b90565b600f805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610da45780601f10610d7957610100808354040283529160200191610da4565b820191906000526020600020905b815481529060010190602001808311610d8757829003601f168201915b505050505081565b600060208251111561301957610000565b5060208101515b919050565b6000601882815481101561000057906000526020600020906007020160005b505490505b919050565b635876c70042111561305f57610000565b73342e62732b76875da9305083ea8ae63125a4e667600160a060020a0333161461308857610000565b600160a060020a0382166000908152600a602052604090208190555b5050565b600160a060020a0333166000908152600160205260408120548290108015906130d15750600082115b1561314557600160a060020a03338116600081815260016020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3506001610e11565b506000610e11565b5b92915050565b600160a060020a0333166000908152600a6020526040902054151561317857610000565b6007546040805160006020918201819052825160e160020a636a4425ab0281529251600160a060020a039094169363d4884b569360048082019493918390030190829087803b156100005760325a03f11561000057505060405151626ebe000142101590506131e657610000565b601b54158015906132005750426019600201546212750001115b1561320a57610000565b60806040519081016040528083815260200182600160a060020a031681526020014262127500018152602001600a600033600160a060020a0316600160a060020a031681526020019081526020016000205481525060196000820151816000019080519060200190828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106132b357805160ff19168380011785556132e0565b828001600101855582156132e0579182015b828111156132e05782518255916020019190600101906132c5565b5b506133019291505b80821115611c0f5760008155600101611bfb565b5090565b505060208281015160018381018054600160a060020a031916600160a060020a039384161790556040808601516002860155606095860151600390950194909455338083166000818152601d8652869020805460ff1916909317909255845191825242621275000194820185905291861694810194909452608084830181815287519186019190915286517f854a9cc4d907d23cd8dcc72af48dc0e6a87e6f76376a309a0ffa3231ce8e13369592948894909388939092909160a08401919087019080838382156133ed575b8051825260208311156133ed57601f1990920191602091820191016133cd565b505050905090810190601f1680156134195780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a15b5050565b60065433600160a060020a0390811691161461344957610000565b600b819055600080546011546040519192909184917f17a7f53ef43da32c3936b4ac2b060caff5c4b03cd24b1c8e96a191eb1ec48d1591a45b5b50565b600954604080516000602091820181905282517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a0330811660048301529351919493909316926370a0823192602480830193919282900301818787803b156100005760325a03f115610000575050604051519150505b90565b6000545b90565b600c545b90565b600160a060020a0381166000908152600a60205260409020545b919050565b600160a060020a038083166000908152600260209081526040808320938516835292905220545b92915050565b635876c70042111561357357610000565b73342e62732b76875da9305083ea8ae63125a4e667600160a060020a0333161461359c57610000565b600160a060020a03821660009081526001602052604090208190555b50505600a165627a7a723058209e2efb647affe4b121be69dfe47f519312f512075279019ffe2fb874a2ae95880029d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5

Deployed Bytecode

0x606060405236156102355763ffffffff60e060020a60003504166306fdde0381146103e0578063095ea7b31461046d5780630b0b6d5b1461049d57806318160ddd146104ac5780631b1ccc47146104cb57806320e870931461055857806323b872dd1461057757806325b29d84146105ad57806327187991146105cc578063277ccde2146105de5780632e1fbfcd146105fd578063308b2fdc1461061f578063313ce5671461064157806338cc48311461066457806340eddc4e1461068d57806341f4793a146106ac578063467ed261146106cb578063471ad963146106ea5780634e860ebb146106fc5780634efbe9331461070b57806354786b4e1461072f57806354e35ba2146107bc57806358793ad4146107d15780635abedab21461083e5780635af2f8211461084d57806360483a3f1461086c57806360d12fa0146108d957806364aba26314610902578063698f2e84146109295780636a749986146109445780636d5f6639146109595780636e9c36831461096b57806370a082311461098d5780637a290fe5146109b85780637e754146146109c757806394c41bdb14610a5457806395d89b4114610a73578063962a64cd14610b00578063a0b6533214610b65578063a5e8c5d614610b87578063a9059cbb14610ba5578063ab62438f14610bd5578063b63ca98114610c35578063b7c54c6f14610c47578063c4e41b22146104ac578063ca7c4dba14610c85578063cb79e31b14610ca4578063dd62ed3e14610ccf578063e30443bc14610d00575b6103de5b6007546040805160006020918201819052825160e160020a636a4425ab028152925190938493600160a060020a039091169263d4884b569260048084019382900301818787803b156100005760325a03f1156100005750506040515142101590506102a357610000565b600c5415156102b157610000565b600354600c54670de0b6b3a7640000913490910202600160a060020a03301660009081526001602052604081205492909104935091508290101561035957600160a060020a033016600090815260016020526040902054600c54909250828115610000570466038d7ea4c68000023403905033600160a060020a03166108fc829081150290604051809050600060405180830381858888f19350505050151561035957610000565b5b600160a060020a03338116600081815260016020908152604080832080548801905530909416825283822080548790039055601380543487900301908190559154600c548551908152918201879052845190949293927f5a0391f2a67f11ed0034b68f8cf14e7e41d6f86e0a7622f2af5ea8f07b488396928290030190a45b5b5050565b005b34610000576103ed610d1e565b604080516020808252835181830152835191928392908301918501908083838215610433575b80518252602083111561043357601f199092019160209182019101610413565b505050905090810190601f16801561045f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3461000057610489600160a060020a0360043516602435610dac565b604080519115158252519081900360200190f35b34610000576103de610e17565b005b34610000576104b9610f72565b60408051918252519081900360200190f35b34610000576103ed610f79565b604080516020808252835181830152835191928392908301918501908083838215610433575b80518252602083111561043357601f199092019160209182019101610413565b505050905090810190601f16801561045f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34610000576104b9611017565b60408051918252519081900360200190f35b3461000057610489600160a060020a03600435811690602435166044356110b6565b604080519115158252519081900360200190f35b34610000576104b96111ac565b60408051918252519081900360200190f35b34610000576103de6004356111bb565b005b34610000576104b961127d565b60408051918252519081900360200190f35b34610000576104b9600435611284565b60408051918252519081900360200190f35b34610000576104b96004356112b0565b60408051918252519081900360200190f35b346100005761064e6112dc565b6040805160ff9092168252519081900360200190f35b34610000576106716112e5565b60408051600160a060020a039092168252519081900360200190f35b34610000576104b96112ea565b60408051918252519081900360200190f35b34610000576104b96112f1565b60408051918252519081900360200190f35b34610000576104b96112f8565b60408051918252519081900360200190f35b34610000576103de600435611397565b005b34610000576103de6115f6565b005b3461000057610489600435611648565b604080519115158252519081900360200190f35b34610000576103ed611790565b604080516020808252835181830152835191928392908301918501908083838215610433575b80518252602083111561043357601f199092019160209182019101610413565b505050905090810190601f16801561045f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34610000576103de60043560243561182e565b005b346100005760408051602060046024803582810135601f8101859004850286018501909652858552610825958335959394604494939290920191819084018382808284375094965061192f95505050505050565b6040805192835290151560208301528051918290030190f35b34610000576103de611fbe565b005b34610000576104b96120f9565b60408051918252519081900360200190f35b346100005760408051602060046024803582810135601f8101859004850286018501909652858552610825958335959394604494939290920191819084018382808284375094965061210095505050505050565b6040805192835290151560208301528051918290030190f35b3461000057610671612740565b60408051600160a060020a039092168252519081900360200190f35b34610000576103de600160a060020a0360043516602435604435606435608435612750565b005b34610000576103de600160a060020a03600435166127c1565b005b34610000576103de6004356024356127f6565b005b34610000576103de6004356129e6565b005b34610000576104b9600435612e03565b60408051918252519081900360200190f35b34610000576104b9600160a060020a0360043516612e4f565b60408051918252519081900360200190f35b34610000576103de612e6e565b005b34610000576103ed612ed5565b604080516020808252835181830152835191928392908301918501908083838215610433575b80518252602083111561043357601f199092019160209182019101610413565b505050905090810190601f16801561045f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34610000576104b9612f73565b60408051918252519081900360200190f35b34610000576103ed612f7a565b604080516020808252835181830152835191928392908301918501908083838215610433575b80518252602083111561043357601f199092019160209182019101610413565b505050905090810190601f16801561045f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34610000576104b9600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284375094965061300895505050505050565b60408051918252519081900360200190f35b34610000576104b9600435613025565b60408051918252519081900360200190f35b34610000576103de600160a060020a036004351660243561304e565b005b3461000057610489600160a060020a03600435166024356130a8565b604080519115158252519081900360200190f35b34610000576103de600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284375094965050509235600160a060020a03169250613154915050565b005b34610000576103de60043561342e565b005b34610000576104b9613486565b60408051918252519081900360200190f35b34610000576104b9610f72565b60408051918252519081900360200190f35b34610000576104b961350f565b60408051918252519081900360200190f35b34610000576104b9600160a060020a0360043516613516565b60408051918252519081900360200190f35b34610000576104b9600160a060020a0360043581169060243516613535565b60408051918252519081900360200190f35b34610000576103de600160a060020a0360043516602435613562565b005b600d805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610da45780601f10610d7957610100808354040283529160200191610da4565b820191906000526020600020905b815481529060010190602001808311610d8757829003601f168201915b505050505081565b600160a060020a03338116600081815260026020908152604080832094871680845294825280832086905580518681529051929493927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b601a54600090600160a060020a03161515610e3157610000565b600160a060020a0333166000908152600a60205260409020541515610e5557610000565b600160a060020a0333166000908152601d602052604090205460ff1615610e7b57610000565b601b54426212750090910111610e9057610000565b600160a060020a0333166000818152601d60209081526040808320805460ff19166001179055600a8252918290208054601c805490910190555482519384529083015280517f475c7605c08471fdc551a58d2c318b163628c5852f69323a1b91c34eb0bb09339281900390910190a150601154601c54606490910490604682029010610f6e57601a5460068054600160a060020a031916600160a060020a0392831617908190556040805191909216815290517f6b8184e23a898262087be50aa3ea5de648451e63f94413e810586c25282d58c29181900360200190a15b5b50565b6000545b90565b604080516020808201835260008252600d8054845160026001831615610100026000190190921691909104601f81018490048402820184019095528481529293909183018282801561100c5780601f10610fe15761010080835404028352916020019161100c565b820191906000526020600020905b815481529060010190602001808311610fef57829003601f168201915b505050505090505b90565b600f805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181526000936110b093919290918301828280156110a65780601f1061107b576101008083540402835291602001916110a6565b820191906000526020600020905b81548152906001019060200180831161108957829003601f168201915b5050505050613008565b90505b90565b600160a060020a0383166000908152600160205260408120548290108015906111065750600160a060020a0380851660009081526002602090815260408083203390941683529290522054829010155b80156111125750600082115b156111a057600160a060020a03808516600081815260016020908152604080832080548890039055878516808452818420805489019055848452600283528184203390961684529482529182902080548790039055815186815291517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35060016111a4565b5060005b5b9392505050565b600160a060020a033016315b90565b6007546040805160006020918201819052825160e160020a636a4425ab0281529251600160a060020a039094169363d4884b569360048082019493918390030190829087803b156100005760325a03f11561000057505060405151421015905061122457610000565b60065433600160a060020a0390811691161461123f57610000565b600c8190556040805182815290517f0bbd501ef336990995d82b5e3fd82a15abe1ff10c982757a1698ac5d1c3e79579181900360200190a15b5b5b50565b600b545b90565b6000601882815481101561000057906000526020600020906007020160005b506004015490505b919050565b6000601882815481101561000057906000526020600020906007020160005b506001015490505b919050565b600e5460ff1681565b305b90565b6013545b90565b601c545b90565b600d805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181526000936110b093919290918301828280156110a65780601f1061107b576101008083540402835291602001916110a6565b820191906000526020600020905b81548152906001019060200180831161108957829003601f168201915b5050505050613008565b90505b90565b600654600090819033600160a060020a039081169116146113b757610000565b60008381526014602052604090205415156113d157610000565b60008381526014602052604090206005015433600160a060020a039081169116146113fb57610000565b60008381526014602052604090206003015442101561141957610000565b60008381526014602052604090206005015460a060020a900460ff161561143f57610000565b601154600084815260146020526040902060040154606490910460370292508290111561146b57610000565b60008381526014602052604081206005015460a860020a900460ff166001811161000057141561152c57600954600084815260146020908152604080832060058101546001909101548251840185905282517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810191909152915194169363a9059cbb93604480840194938390030190829087803b156100005760325a03f11561000057506115ca915050565b60008381526014602052604080822060058101546001909101549151600160a060020a039091169282156108fc02929190818181858888f160008881526014602090815260409182902060058101546001909101548351600160a060020a0390921682529181019190915281519297507f2648a7e2f9c34700b91370233666e5118fa8be3e0c21fed4f7402b941df8efdd9650829003019350915050a15b6000838152601460205260409020600501805460a060020a60ff02191660a060020a1790555b5b505050565b60065433600160a060020a0390811691161461161157610000565b6010805460ff191690556040517fb48c7f694f0a3b9b22d7e61c60ff8aebbb107314b6b698fc489ff3f017cb57e090600090a15b5b565b600060006000600760009054906101000a9004600160a060020a0316600160a060020a031663d4884b566000604051602001526040518163ffffffff1660e060020a028152600401809050602060405180830381600087803b156100005760325a03f11561000057505060405151421090506116c357610000565b60085433600160a060020a039081169116146116de57610000565b5050600b54600160a060020a03328181166000908152600a60205260409020805493860293840190556011805484019055601280548601905560085490929161172a91309116836110b6565b5061173582826130a8565b50600054601154600b5460408051918252602082018590528051600160a060020a038716927fb4d6befef2def3d17bcb13c2b882ec4fa047f33157446d3e0e6094b2a21609ac92908290030190a4600192505b5b5050919050565b604080516020808201835260008252600f8054845160026001831615610100026000190190921691909104601f81018490048402820184019095528481529293909183018282801561100c5780601f10610fe15761010080835404028352916020019161100c565b820191906000526020600020905b815481529060010190602001808311610fef57829003601f168201915b505050505090505b90565b6007546040805160006020918201819052825160e160020a636a4425ab0281529251600160a060020a039094169363d4884b569360048082019493918390030190829087803b156100005760325a03f11561000057505060405151421015905061189757610000565b60065433600160a060020a039081169116146118b257610000565b60105460ff1615156118c357610000565b600160a060020a0330166000908152600160209081526040808320805485019055600c859055825484019283905580518481529051839286927f10cb430288a1696de11938bc5362c6f8c60e58808237bce4436b93a8573e00c3929081900390910190a45b5b5b5b5050565b6040805161010081018252600080825260208083018290528351808201855282815283850152606083018290526080830182905260a0830182905260c0830182905260e0830182905260075484518201839052845160e160020a636a4425ab0281529451929485948594859485949293600160a060020a039093169263d4884b56926004808301939282900301818887803b156100005760325a03f1156100005750506040515142101590506119e457610000565b60065433600160a060020a039081169116146119ff57610000565b6007546040805160006020918201819052825160e160020a636a4425ab0281529251600160a060020a039094169363d4884b569360048082019493918390030190829087803b156100005760325a03f115610000575050604051516249d400014210159050611a6d57610000565b6017546212750001421015611a8157610000565b601154606490049350600560165411158015611aa05750836005540288115b15611aaa57610000565b611ab2613486565b881115611ac457611ac1613486565b97505b60003642604051808484808284379091019283525050604080519182900360209081018320600454610100850184528185529184018e90529183018c9052420160608301819052600060808401819052600160a060020a03331660a085015260c08401819052919750955090925060e08301915081525090508060146000856000191660001916815260200190815260200160002060008201518160000190600019169055602082015181600101556040820151816002019080519060200190828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611bc557805160ff1916838001178555611bf2565b82800160010185558215611bf2579182015b82811115611bf2578251825591602001919060010190611bd7565b5b50611c139291505b80821115611c0f5760008155600101611bfb565b5090565b5050606082015160038201556080820151600482015560a082015160058201805460c0850151151560a060020a0260a060020a60ff0219600160a060020a03909416600160a060020a031990921691909117929092169190911780825560e0840151919060a860020a60ff02191660a860020a836001811161000057021790555090505060188054806001018281815481835581811511611d6d57600702816007028360005260206000209182019101611d6d91905b80821115611c0f5760006000820160009055600182016000905560028201805460018160011615610100020316600290046000825580601f10611d0c5750611d3e565b601f016020900490600052602060002090810190611d3e91905b80821115611c0f5760008155600101611bfb565b5090565b5b50506000600382018190556004820155600581018054600160b060020a0319169055600701611cc9565b5090565b5b505050916000526020600020906007020160005b83909190915060008201518160000190600019169055602082015181600101556040820151816002019080519060200190828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611df457805160ff1916838001178555611e21565b82800160010185558215611e21579182015b82811115611e21578251825591602001919060010190611e06565b5b50611e429291505b80821115611c0f5760008155600101611bfb565b5090565b5050606082015160038201556080820151600482015560a082015160058201805460c0850151151560a060020a0260a060020a60ff0219600160a060020a03909416600160a060020a031990921691909117929092169190911780825560e0840151919060a860020a60ff02191660a860020a8360018111610000570217905550506016805460010190555050426017556040805184815260208082018b905291810184905233600160a060020a038116608083015260a0606083018181528b51918401919091528a517f1a1eea7d2a0f099c2f19efb4e101fcf220558c9f4fbc6961b33fbe02d3a7be909488948e9489948f949193909160c08401918601908083838215611f6c575b805182526020831115611f6c57601f199092019160209182019101611f4c565b505050905090810190601f168015611f985780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a1826001955095505b5b5b505050509250929050565b60065460009033600160a060020a03908116911614611fdc57610000565b6007546040805160006020918201819052825160e160020a636a4425ab0281529251600160a060020a039094169363d4884b569360048082019493918390030190829087803b156100005760325a03f1156100005750506040515162dd7c0001421015905061204a57610000565b604051600160a060020a0333811691309091163180156108fc02916000818181858888f1600954909550600160a060020a0316935063a9059cbb92503391506120939050613486565b6000604051602001526040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b156100005760325a03f115610000575050505b5b50565b6016545b90565b6040805161010081018252600080825260208083018290528351808201855282815283850152606083018290526080830182905260a0830182905260c0830182905260e0830182905260075484518201839052845160e160020a636a4425ab0281529451929485948594859485949293600160a060020a039093169263d4884b56926004808301939282900301818887803b156100005760325a03f1156100005750506040515142101590506121b557610000565b60065433600160a060020a039081169116146121d057610000565b60105460ff16156121e057610000565b60006121eb30612e4f565b11156121f657610000565b601754621275000142101561220a57610000565b601354606490049350836005540288111561222457610000565b30600160a060020a0316318811156122445730600160a060020a03163197505b60003642604051808484808284379091019283525050604080519182900360209081018320600454610100850184528185529184018e90529183018c9052420160608301819052600060808401819052600160a060020a03331660a085015260c0840152909650945091505060e08101600181525090508060146000856000191660001916815260200190815260200160002060008201518160000190600019169055602082015181600101556040820151816002019080519060200190828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061234357805160ff1916838001178555612370565b82800160010185558215612370579182015b82811115612370578251825591602001919060010190612355565b5b506123919291505b80821115611c0f5760008155600101611bfb565b5090565b5050606082015160038201556080820151600482015560a082015160058201805460c0850151151560a060020a0260a060020a60ff0219600160a060020a03909416600160a060020a031990921691909117929092169190911780825560e0840151919060a860020a60ff02191660a860020a8360018111610000570217905550905050601880548060010182818154818355818115116124eb576007028160070283600052602060002091820191016124eb91905b80821115611c0f5760006000820160009055600182016000905560028201805460018160011615610100020316600290046000825580601f1061248a57506124bc565b601f0160209004906000526020600020908101906124bc91905b80821115611c0f5760008155600101611bfb565b5090565b5b50506000600382018190556004820155600581018054600160b060020a0319169055600701612447565b5090565b5b505050916000526020600020906007020160005b83909190915060008201518160000190600019169055602082015181600101556040820151816002019080519060200190828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061257257805160ff191683800117855561259f565b8280016001018555821561259f579182015b8281111561259f578251825591602001919060010190612584565b5b506125c09291505b80821115611c0f5760008155600101611bfb565b5090565b5050606082015160038201556080820151600482015560a082015160058201805460c0850151151560a060020a0260a060020a60ff0219600160a060020a03909416600160a060020a031990921691909117929092169190911780825560e0840151919060a860020a60ff02191660a860020a8360018111610000570217905550505050426017819055507f1a1eea7d2a0f099c2f19efb4e101fcf220558c9f4fbc6961b33fbe02d3a7be908389848a336040518086600019166000191681526020018581526020018481526020018060200183600160a060020a0316600160a060020a03168152602001828103825284818151815260200191508051906020019080838360008314611f6c575b805182526020831115611f6c57601f199092019160209182019101611f4c565b505050905090810190601f168015611f985780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a1826001955095505b5b5b505050509250929050565b600654600160a060020a03165b90565b635876c70042111561276157610000565b73342e62732b76875da9305083ea8ae63125a4e667600160a060020a0333161461278a57610000565b60068054600160a060020a031916600160a060020a03871617905560008490556011839055601282905560138190555b5050505050565b600854600160a060020a0316156127d757610000565b60088054600160a060020a031916600160a060020a0383161790555b50565b60065433600160a060020a0390811691161461281157610000565b60105460ff16151561282257610000565b6007546040805160006020918201819052825160e160020a636a4425ab0281529251600160a060020a039094169363d4884b569360048082019493918390030190829087803b156100005760325a03f115610000575050604051514210905061288a57610000565b600754604080516000602091820181905282517fcdd933320000000000000000000000000000000000000000000000000000000081529251600160a060020a039094169363cdd933329360048082019493918390030190829087803b156100005760325a03f11561000057505060405151421015905061290957610000565b600854600160a060020a0316151561292057610000565b6000805482018155600160a060020a03308116808352600160209081526040808520805487019055600b8790556002825280852060088054861687529083529481902080548701905593548451868152945193169391927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3600054601154600b546040805185815290517f10cb430288a1696de11938bc5362c6f8c60e58808237bce4436b93a8573e00c39181900360200190a45b5b5b5b5b5050565b604080516101008082018352600080835260208084018290528451808201865282815284860152606084018290526080840182905260a0840182905260c0840182905260e0840182905285825260148152848220855180850187528154815260018083015482850152600280840180548a51600019948216159099029390930190921604601f810185900485028701850189528087529697949687969295939493860193830182828015612adb5780601f10612ab057610100808354040283529160200191612adb565b820191906000526020600020905b815481529060010190602001808311612abe57829003601f168201915b505050918352505060038201546020820152600482015460408201526005820154600160a060020a038116606083015260ff60a060020a820481161515608084015260a09092019160a860020a90910416600181116100005760018111610000579052506000858152601460205260409020549093501515612b5c57610000565b60008481526014602052604090206005015460a060020a900460ff1615612b8257610000565b6000848152601460205260409020600301544210612b9f57610000565b6000848152601460209081526040808320600160a060020a033316845260060190915290205460ff1615612bd257610000565b600160a060020a0333166000818152600a6020908152604080832054888452601483528184206004810180548301905594845260069094019091529020805460ff191660011790559150612c2584612e03565b6000858152601460205260409020601880549293509091839081101561000057906000526020600020906007020160005b50600082015481600001906000191690556001820154816001015560028201816002019080546001816001161561010002031660029004828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612cc65780548555612d02565b82800160010185558215612d0257600052602060002091601f016020900482015b82811115612d02578254825591600101919060010190612ce7565b5b50612d239291505b80821115611c0f5760008155600101611bfb565b5090565b50506003828101549082015560048083015490820155600580830180549183018054600160a060020a031916600160a060020a0390931692909217808355815460ff60a060020a918290048116151590910260a060020a60ff021990921691909117808455915460a860020a90819004909116929160a860020a60ff0219169083600181116100005702179055505060408051868152600160a060020a033316602082015280820185905290517f8f8bbb8c1937f844f6a094cd4c6eeab8ed5e36f83952e6306ffb2c11fffe5bce92509081900360600190a15b50505050565b6000805b601854811015612e4857601881815481101561000057906000526020600020906007020160005b5054831415612e3f57809150612e48565b5b600101612e07565b5b50919050565b600160a060020a0381166000908152600160205260409020545b919050565b60065433600160a060020a03908116911614612e8957610000565b600160a060020a03301660009081526001602052604080822080548354038355829055517fe0987873419fe09d3c9a3e0267f4daf163e812d512f867abaf6bf9822f141a8b9190a15b5b565b60408051602080820183526000825260198054845160026001831615610100026000190190921691909104601f81018490048402820184019095528481529293909183018282801561100c5780601f10610fe15761010080835404028352916020019161100c565b820191906000526020600020905b815481529060010190602001808311610fef57829003601f168201915b505050505090505b90565b6011545b90565b600f805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610da45780601f10610d7957610100808354040283529160200191610da4565b820191906000526020600020905b815481529060010190602001808311610d8757829003601f168201915b505050505081565b600060208251111561301957610000565b5060208101515b919050565b6000601882815481101561000057906000526020600020906007020160005b505490505b919050565b635876c70042111561305f57610000565b73342e62732b76875da9305083ea8ae63125a4e667600160a060020a0333161461308857610000565b600160a060020a0382166000908152600a602052604090208190555b5050565b600160a060020a0333166000908152600160205260408120548290108015906130d15750600082115b1561314557600160a060020a03338116600081815260016020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3506001610e11565b506000610e11565b5b92915050565b600160a060020a0333166000908152600a6020526040902054151561317857610000565b6007546040805160006020918201819052825160e160020a636a4425ab0281529251600160a060020a039094169363d4884b569360048082019493918390030190829087803b156100005760325a03f11561000057505060405151626ebe000142101590506131e657610000565b601b54158015906132005750426019600201546212750001115b1561320a57610000565b60806040519081016040528083815260200182600160a060020a031681526020014262127500018152602001600a600033600160a060020a0316600160a060020a031681526020019081526020016000205481525060196000820151816000019080519060200190828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106132b357805160ff19168380011785556132e0565b828001600101855582156132e0579182015b828111156132e05782518255916020019190600101906132c5565b5b506133019291505b80821115611c0f5760008155600101611bfb565b5090565b505060208281015160018381018054600160a060020a031916600160a060020a039384161790556040808601516002860155606095860151600390950194909455338083166000818152601d8652869020805460ff1916909317909255845191825242621275000194820185905291861694810194909452608084830181815287519186019190915286517f854a9cc4d907d23cd8dcc72af48dc0e6a87e6f76376a309a0ffa3231ce8e13369592948894909388939092909160a08401919087019080838382156133ed575b8051825260208311156133ed57601f1990920191602091820191016133cd565b505050905090810190601f1680156134195780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a15b5050565b60065433600160a060020a0390811691161461344957610000565b600b819055600080546011546040519192909184917f17a7f53ef43da32c3936b4ac2b060caff5c4b03cd24b1c8e96a191eb1ec48d1591a45b5b50565b600954604080516000602091820181905282517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a0330811660048301529351919493909316926370a0823192602480830193919282900301818787803b156100005760325a03f115610000575050604051519150505b90565b6000545b90565b600c545b90565b600160a060020a0381166000908152600a60205260409020545b919050565b600160a060020a038083166000908152600260209081526040808320938516835292905220545b92915050565b635876c70042111561357357610000565b73342e62732b76875da9305083ea8ae63125a4e667600160a060020a0333161461359c57610000565b600160a060020a03821660009081526001602052604090208190555b50505600a165627a7a723058209e2efb647affe4b121be69dfe47f519312f512075279019ffe2fb874a2ae95880029

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

0000000000000000000000001c3c643f49be262c3040e917e7d2299b9bc081a100000000000000000000000014f37b574242d366558db61f3335289a5035c506000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000008657468657269736300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035253430000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : eventInfoAddr (address): 0x1c3c643F49BE262c3040E917E7D2299b9bc081A1
Arg [1] : hackerGoldAddr (address): 0x14F37B574242D366558dB61f3335289a5035c506
Arg [2] : dstName (string): etherisc
Arg [3] : dstSymbol (string): RSC

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000001c3c643f49be262c3040e917e7d2299b9bc081a1
Arg [1] : 00000000000000000000000014f37b574242d366558db61f3335289a5035c506
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [3] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [5] : 6574686572697363000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [7] : 5253430000000000000000000000000000000000000000000000000000000000


Swarm Source

bzzr://9e2efb647affe4b121be69dfe47f519312f512075279019ffe2fb874a2ae9588

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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