Contract 0x121c6e0613317a98cc14a9d379e2abe546ba980c

 

TxHash Block Age From To Value [TxFee]
0x76785b7cd6c6821f58dfdae8175fbe881bfc5cea417f0f69a2eca662b0f2bf26740852210 hrs 59 mins ago0xcbef881fb59357d6e458aa487ac1e9a0b4f3aeb9 IN  0x121c6e0613317a98cc14a9d379e2abe546ba980c0 Ether0.00110974
0xee364fcdb30f662c33dba044a6961c7916a310709aad5963ec92ea9fd27b8f1d73999731 day 18 hrs ago0xf25fd12eb70fdbbfab53ebe72709da98ce0785b5 IN  0x121c6e0613317a98cc14a9d379e2abe546ba980c0 Ether0.00227056
0x10f921b4333aadc2e025fa0223dc26f835fcf0254102701f25cda68ffe62a5b273999441 day 18 hrs ago0xf25fd12eb70fdbbfab53ebe72709da98ce0785b5 IN  0x121c6e0613317a98cc14a9d379e2abe546ba980c0 Ether0.00080718
0xfeaa08419609d738927a50c83e643ad4ba610e104b61afa5056068fc6f66238f73999371 day 18 hrs ago0xf25fd12eb70fdbbfab53ebe72709da98ce0785b5 IN  0x121c6e0613317a98cc14a9d379e2abe546ba980c0 Ether0.00110718
0x2817ae96badf0abe1a9a5d326e8b19276a33f9c8f00c6361a28086755b15cc7273909183 days 4 hrs ago0x58416bcdddaee2d971ab3806337c392c8049a59e IN  0x121c6e0613317a98cc14a9d379e2abe546ba980c0 Ether0.0002061573
0x9cb810849bba8604d2afe23921e99baec161aa9a2867a6925eeb60838f049db173908773 days 4 hrs ago0x58416bcdddaee2d971ab3806337c392c8049a59e IN  0x121c6e0613317a98cc14a9d379e2abe546ba980c0 Ether0.0002823309
0xe98073328844e0b9ecd0b525296c20697788c9f0cd595ce2ab470e1dc8a2cb4f73491049 days 16 hrs ago0xf25fd12eb70fdbbfab53ebe72709da98ce0785b5 IN  0x121c6e0613317a98cc14a9d379e2abe546ba980c0 Ether0.00080846
0x2c120993e89ae907feea5d0e331cb43fb1e8d78af9872b8f4e95ae69dc639ab973491049 days 16 hrs ago0xf25fd12eb70fdbbfab53ebe72709da98ce0785b5 IN  0x121c6e0613317a98cc14a9d379e2abe546ba980c0 Ether0.00080846
0xe393fb71c10ced74ca59085ef45b01e6392ae52cdeda064fac62a3b18a443c3c73491049 days 16 hrs ago0xf25fd12eb70fdbbfab53ebe72709da98ce0785b5 IN  0x121c6e0613317a98cc14a9d379e2abe546ba980c0 Ether0.00080846
0x6e8922baab3970e8039a32b653107d64bd3331d8a8c685b3f216ba06cd9bb450726228324 days 17 hrs ago0xf25fd12eb70fdbbfab53ebe72709da98ce0785b5 IN  0x121c6e0613317a98cc14a9d379e2abe546ba980c0 Ether0.001053037
0x9a2c7a568567bd1ea509ce21acb6d1ccddeb2c3630ba3d3e95cd6c4a8435521a726227624 days 17 hrs ago0xf25fd12eb70fdbbfab53ebe72709da98ce0785b5 IN  0x121c6e0613317a98cc14a9d379e2abe546ba980c0 Ether0.001862323
0xe5b2e6b83738c41a3ab10bb16dd51690077e9e6f6c23783cc8eff105765df31f726221524 days 18 hrs ago0xf25fd12eb70fdbbfab53ebe72709da98ce0785b5 IN  0x121c6e0613317a98cc14a9d379e2abe546ba980c0 Ether0.001797876857
0xf580d8bdd1bbf073e6be7c24cad2734e0e0bbfcc2f3db17ff7a347d6584c2bcb725346526 days 19 hrs ago0x5b7ef49035078859402028efb0a0e13df202460c IN  0x121c6e0613317a98cc14a9d379e2abe546ba980c0 Ether0.000127115
0xa598d236bd4ed4181cae771d55e1eb75cf4215aaf3ef99cd1bdd740a393e833a725322426 days 20 hrs ago0xcbef881fb59357d6e458aa487ac1e9a0b4f3aeb9 IN  0x121c6e0613317a98cc14a9d379e2abe546ba980c0 Ether0.00080718
0xf172e145bec3b17476d6ac03b675c66eca0d7e63ccc92b1a8054253bc4e1b4de725319126 days 20 hrs ago0xcbef881fb59357d6e458aa487ac1e9a0b4f3aeb9 IN  0x121c6e0613317a98cc14a9d379e2abe546ba980c0 Ether0.00110718
0x2b678d15da8340687ada1dfddab10936e020c99eb0d9e0b9e85c4534daa64465725300526 days 21 hrs ago0x2763f657be60000111a30623893382621cdc8d72 IN  0x121c6e0613317a98cc14a9d379e2abe546ba980c0 Ether0.000126795
0x38890ba76c9b54e571c0aea3595796957f1ed78340c3c52417814e4fee76ba3a725201927 days 3 hrs ago0xcbef881fb59357d6e458aa487ac1e9a0b4f3aeb9 IN  0x121c6e0613317a98cc14a9d379e2abe546ba980c0 Ether0.00080974
0xa66d7a5b8ec2c887c5321372d393757468df8159a7d240b8edcaf251cf97abd8725115527 days 8 hrs ago0xcbef881fb59357d6e458aa487ac1e9a0b4f3aeb9 IN  0x121c6e0613317a98cc14a9d379e2abe546ba980c0 Ether0.00110846
0x89dc4c566c288edef966e5b048246978993b666902428f2054f493762f7325eb722138834 days 9 hrs ago0xcbef881fb59357d6e458aa487ac1e9a0b4f3aeb9 IN  0x121c6e0613317a98cc14a9d379e2abe546ba980c0 Ether0.00080718
0x86cc3bf049ceed766bbb1cc74cb5c99411193f5e346ef1f0f2dd732fd8affdae720474538 days 8 hrs ago0xcbef881fb59357d6e458aa487ac1e9a0b4f3aeb9 IN  0x121c6e0613317a98cc14a9d379e2abe546ba980c0 Ether0.00080718
0x83b61ef535214b640229a0c2cb2ed54421b568ce35ef91f4976f5b322abbd902720279638 days 19 hrs ago0xcbef881fb59357d6e458aa487ac1e9a0b4f3aeb9 IN  0x121c6e0613317a98cc14a9d379e2abe546ba980c0 Ether0.00110846
0x3278521be3663acc464f9029bcf79ba5232d57f7891c36eb8cf38901e4fcabbd720273738 days 20 hrs ago0xcbef881fb59357d6e458aa487ac1e9a0b4f3aeb9 IN  0x121c6e0613317a98cc14a9d379e2abe546ba980c0 Ether0.00080846
0x4a63f75f898dad8a9ab8340304128f6384ebb71e2f2ee797737ea0297c2df0ab719902539 days 15 hrs ago0x0751a4053468a1f1580e3ea0aa26362fcd846b94 IN  0x121c6e0613317a98cc14a9d379e2abe546ba980c0 Ether0.000025423
0xa2553258ff326f64b93408c1f856552a80150873934f33f6b76f545ffd9880e0719792539 days 21 hrs ago0xcbef881fb59357d6e458aa487ac1e9a0b4f3aeb9 IN  0x121c6e0613317a98cc14a9d379e2abe546ba980c0 Ether0.00080718
0xb77c2549178b8dbc4920b519986759e2bd00f87e1794aa6b10a18d49575184b4719302140 days 21 hrs ago0xcbef881fb59357d6e458aa487ac1e9a0b4f3aeb9 IN  0x121c6e0613317a98cc14a9d379e2abe546ba980c0 Ether0.00080846
[ Download CSV Export 

Internal Transactions as a result of Contract Execution

Parent TxHash Block Age From To Value

Contract Source Code Verified (Exact Match)

Contract Name:
PELOCoinToken

Compiler Version
v0.4.19+commit.c4cbbb05

Optimization Enabled:
Yes

Runs (Optimizer):
200

Contract Source Code

pragma solidity ^0.4.19;

contract Multiownable {

    // VARIABLES

    uint256 public howManyOwnersDecide;
    address[] public owners;
    bytes32[] public allOperations;
    address insideOnlyManyOwners;
    
    // Reverse lookup tables for owners and allOperations
    mapping(address => uint) ownersIndices; // Starts from 1
    mapping(bytes32 => uint) allOperationsIndicies;
    
    // Owners voting mask per operations
    mapping(bytes32 => uint256) public votesMaskByOperation;
    mapping(bytes32 => uint256) public votesCountByOperation;
    
    // EVENTS

    event OwnershipTransferred(address[] previousOwners, address[] newOwners);

    // ACCESSORS

    function isOwner(address wallet) public constant returns(bool) {
        return ownersIndices[wallet] > 0;
    }

    function ownersCount() public constant returns(uint) {
        return owners.length;
    }

    function allOperationsCount() public constant returns(uint) {
        return allOperations.length;
    }

    // MODIFIERS

    /**
    * @dev Allows to perform method by any of the owners
    */
    modifier onlyAnyOwner {
        require(isOwner(msg.sender));
        _;
    }

    /**
    * @dev Allows to perform method only after all owners call it with the same arguments
    */
    modifier onlyManyOwners {
        if (insideOnlyManyOwners == msg.sender) {
            _;
            return;
        }
        require(isOwner(msg.sender));

        uint ownerIndex = ownersIndices[msg.sender] - 1;
        bytes32 operation = keccak256(msg.data);
        
        if (votesMaskByOperation[operation] == 0) {
            allOperationsIndicies[operation] = allOperations.length;
            allOperations.push(operation);
        }
        require((votesMaskByOperation[operation] & (2 ** ownerIndex)) == 0);
        votesMaskByOperation[operation] |= (2 ** ownerIndex);
        votesCountByOperation[operation] += 1;

        // If all owners confirm same operation
        if (votesCountByOperation[operation] == howManyOwnersDecide) {
            deleteOperation(operation);
            insideOnlyManyOwners = msg.sender;
            _;
            insideOnlyManyOwners = address(0);
        }
    }

    // CONSTRUCTOR

    function Multiownable() public {
        owners.push(msg.sender);
        ownersIndices[msg.sender] = 1;
        howManyOwnersDecide = 1;
    }

    // INTERNAL METHODS

    /**
    * @dev Used to delete cancelled or performed operation
    * @param operation defines which operation to delete
    */
    function deleteOperation(bytes32 operation) internal {
        uint index = allOperationsIndicies[operation];
        if (allOperations.length > 1) {
            allOperations[index] = allOperations[allOperations.length - 1];
            allOperationsIndicies[allOperations[index]] = index;
        }
        allOperations.length--;
        
        delete votesMaskByOperation[operation];
        delete votesCountByOperation[operation];
        delete allOperationsIndicies[operation];
    }

    // PUBLIC METHODS

    /**
    * @dev Allows owners to change their mind by cacnelling votesMaskByOperation operations
    * @param operation defines which operation to delete
    */
    function cancelPending(bytes32 operation) public onlyAnyOwner {
        uint ownerIndex = ownersIndices[msg.sender] - 1;
        require((votesMaskByOperation[operation] & (2 ** ownerIndex)) != 0);
        
        votesMaskByOperation[operation] &= ~(2 ** ownerIndex);
        votesCountByOperation[operation]--;
        if (votesCountByOperation[operation] == 0) {
            deleteOperation(operation);
        }
    }

    /**
    * @dev Allows owners to change ownership
    * @param newOwners defines array of addresses of new owners
    */
    function transferOwnership(address[] newOwners) public {
        transferOwnershipWithHowMany(newOwners, newOwners.length);
    }

    /**
    * @dev Allows owners to change ownership
    * @param newOwners defines array of addresses of new owners
    * @param newHowManyOwnersDecide defines how many owners can decide
    */
    function transferOwnershipWithHowMany(address[] newOwners, uint256 newHowManyOwnersDecide) public onlyManyOwners {
        require(newOwners.length > 0);
        require(newOwners.length <= 256);
        require(newHowManyOwnersDecide > 0);
        require(newHowManyOwnersDecide <= newOwners.length);
        for (uint i = 0; i < newOwners.length; i++) {
            require(newOwners[i] != address(0));
        }

        OwnershipTransferred(owners, newOwners);

        // Reset owners array and index reverse lookup table
        for (i = 0; i < owners.length; i++) {
            delete ownersIndices[owners[i]];
        }
        for (i = 0; i < newOwners.length; i++) {
            require(ownersIndices[newOwners[i]] == 0);
            ownersIndices[newOwners[i]] = i + 1;
        }
        owners = newOwners;
        howManyOwnersDecide = newHowManyOwnersDecide;

        // Discard all pendign operations
        for (i = 0; i < allOperations.length; i++) {
            delete votesMaskByOperation[allOperations[i]];
            delete votesCountByOperation[allOperations[i]];
            delete allOperationsIndicies[allOperations[i]];
        }
        allOperations.length = 0;
    }

}

contract owned {
    address public owner;

    function owned() public {
        owner = msg.sender;
    }

    modifier onlyOwner {
        require(msg.sender == owner);
        _;
    }

    function transferOwnership(address newOwner) onlyOwner public {
        owner = newOwner;
    }
}


contract PELOExtensionInterface is owned {

    event ExtensionCalled(bytes32[8] params);

    address public ownerContract;

    function PELOExtensionInterface(address _ownerContract) public {
        ownerContract = _ownerContract;
    }
    
    function ChangeOwnerContract(address _ownerContract) onlyOwner public {
        ownerContract = _ownerContract;
    }
    
    function Operation(uint8 opCode, bytes32[8] params) public returns (bytes32[8] result) {}
}

contract PELOExtension1 is PELOExtensionInterface {

    function PELOExtension1(address _ownerContract) PELOExtensionInterface(_ownerContract) public {} 
    
    function Operation(uint8 opCode, bytes32[8] params) public returns (bytes32[8] result) {
        if(opCode == 1) {
            ExtensionCalled(params);
            return result;
        }
        else if(opCode == 2) {
            ExtensionCalled(params);
            return result;
        }
        else {
            return result;
        }
    }
}


interface tokenRecipient { function receiveApproval(address _from, uint256 _value, address _token, bytes _extraData) public; }

contract TokenERC20 {
    // Public variables of the token
    string public name;
    string public symbol;
    uint8 public decimals = 18;
    // 18 decimals is the strongly suggested default, avoid changing it
    uint256 public totalSupply;

    // This creates an array with all balances
    mapping (address => uint256) public balanceOf;
    mapping (address => mapping (address => uint256)) public allowance;

    // This generates a public event on the blockchain that will notify clients
    event Transfer(address indexed from, address indexed to, uint256 value);

    // This notifies clients about the amount burnt
    event Burn(address indexed from, uint256 value);

    /**
     * Constrctor function
     *
     * Initializes contract with initial supply tokens to the creator of the contract
     */
    function TokenERC20(
        uint256 initialSupply,
        string tokenName,
        string tokenSymbol
    ) public {
        totalSupply = initialSupply * 10 ** uint256(decimals);  // Update total supply with the decimal amount
        balanceOf[msg.sender] = totalSupply;                // Give the creator all initial tokens
        name = tokenName;                                   // Set the name for display purposes
        symbol = tokenSymbol;                               // Set the symbol for display purposes
    }

    /**
     * Internal transfer, only can be called by this contract
     */
    function _transfer(address _from, address _to, uint _value) internal {
        // Prevent transfer to 0x0 address. Use burn() instead
        require(_to != 0x0);
        // Check if the sender has enough
        require(balanceOf[_from] >= _value);
        // Check for overflows
        require(balanceOf[_to] + _value > balanceOf[_to]);
        // Save this for an assertion in the future
        uint previousBalances = balanceOf[_from] + balanceOf[_to];
        // Subtract from the sender
        balanceOf[_from] -= _value;
        // Add the same to the recipient
        balanceOf[_to] += _value;
        Transfer(_from, _to, _value);
        // Asserts are used to use static analysis to find bugs in your code. They should never fail
        assert(balanceOf[_from] + balanceOf[_to] == previousBalances);
    }

    /**
     * Transfer tokens
     *
     * Send `_value` tokens to `_to` from your account
     *
     * @param _to The address of the recipient
     * @param _value the amount to send
     */
    function transfer(address _to, uint256 _value) public {
        _transfer(msg.sender, _to, _value);
    }

    /**
     * Transfer tokens from other address
     *
     * Send `_value` tokens to `_to` in behalf of `_from`
     *
     * @param _from The address of the sender
     * @param _to The address of the recipient
     * @param _value the amount to send
     */
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {
        require(_value <= allowance[_from][msg.sender]);     // Check allowance
        allowance[_from][msg.sender] -= _value;
        _transfer(_from, _to, _value);
        return true;
    }

    /**
     * Set allowance for other address
     *
     * Allows `_spender` to spend no more than `_value` tokens in your behalf
     *
     * @param _spender The address authorized to spend
     * @param _value the max amount they can spend
     */
    function approve(address _spender, uint256 _value) public
        returns (bool success) {
        allowance[msg.sender][_spender] = _value;
        return true;
    }

    /**
     * Set allowance for other address and notify
     *
     * Allows `_spender` to spend no more than `_value` tokens in your behalf, and then ping the contract about it
     *
     * @param _spender The address authorized to spend
     * @param _value the max amount they can spend
     * @param _extraData some extra information to send to the approved contract
     */
    function approveAndCall(address _spender, uint256 _value, bytes _extraData)
        public
        returns (bool success) {
        tokenRecipient spender = tokenRecipient(_spender);
        if (approve(_spender, _value)) {
            spender.receiveApproval(msg.sender, _value, this, _extraData);
            return true;
        }
    }

    /**
     * Destroy tokens
     *
     * Remove `_value` tokens from the system irreversibly
     *
     * @param _value the amount of money to burn
     */
    function burn(uint256 _value) public returns (bool success) {
        require(balanceOf[msg.sender] >= _value);   // Check if the sender has enough
        balanceOf[msg.sender] -= _value;            // Subtract from the sender
        totalSupply -= _value;                      // Updates totalSupply
        Burn(msg.sender, _value);
        return true;
    }

    /**
     * Destroy tokens from other account
     *
     * Remove `_value` tokens from the system irreversibly on behalf of `_from`.
     *
     * @param _from the address of the sender
     * @param _value the amount of money to burn
     */
    function burnFrom(address _from, uint256 _value) public returns (bool success) {
        require(balanceOf[_from] >= _value);                // Check if the targeted balance is enough
        require(_value <= allowance[_from][msg.sender]);    // Check allowance
        balanceOf[_from] -= _value;                         // Subtract from the targeted balance
        allowance[_from][msg.sender] -= _value;             // Subtract from the sender's allowance
        totalSupply -= _value;                              // Update totalSupply
        Burn(_from, _value);
        return true;
    }
}

/******************************************/
/*       ADVANCED TOKEN STARTS HERE       */
/******************************************/

contract PELOCoinToken is Multiownable, TokenERC20 {

    uint256 public sellPrice;
    uint256 public buyPrice;
    
    bool public userInitialized = false;
    
    PELOExtensionInterface public peloExtenstion;
    
    struct PELOMember {
        uint32 id;
        bytes32 nickname;
        address ethAddr;

        /* peloAmount should be specified without decimals. ex: 10000PELO should be specified as 10000 not 10000 * 10^18 */
        uint peloAmount;

        /* peloBonus should be specified without decimals. ex: 10000PELO should be specified as 10000 not 10000 * 10^18 */
        uint peloBonus;

        /* 1: infinite members, 2: limited member(has expairation date), 4: xxx, 8: xxx, 16: xxx, 32 ... 65536 ... 2^255 */
        uint bitFlag;

        uint32 expire;
        bytes32 extraData1;
        bytes32 extraData2;
        bytes32 extraData3;
    }
    
    uint8 public numMembers;

    mapping (address => bool) public frozenAccount;

    mapping (address => PELOMember) public PELOMemberMap;
    mapping (uint32 => address) public PELOMemberIDMap;

    /* This generates a public event on the blockchain that will notify clients */
    event FrozenFunds(address target, bool frozen);

    /* Initializes contract with initial supply tokens to the creator of the contract */
    function PELOCoinToken(
        uint256 initialSupply,
        string tokenName,
        string tokenSymbol
    ) TokenERC20(initialSupply, tokenName, tokenSymbol) public {}

    function GetUserNickName(address _addr) constant public returns(bytes32) {
        require(PELOMemberMap[_addr].id > 0);
        PELOMember memory data = PELOMemberMap[_addr]; 
        
        return data.nickname;
    }

    function GetUserID(address _addr) constant public returns(uint32) {
        require(PELOMemberMap[_addr].id > 0);
        PELOMember memory data = PELOMemberMap[_addr]; 
        
        return data.id;
    }

    function GetUserPELOAmount(address _addr) constant public returns(uint) {
        require(PELOMemberMap[_addr].id > 0);
        PELOMember memory data = PELOMemberMap[_addr]; 
        
        return data.peloAmount;
    }

    function GetUserPELOBonus(address _addr) constant public returns(uint) {
        require(PELOMemberMap[_addr].id > 0);
        PELOMember memory data = PELOMemberMap[_addr]; 
        
        return data.peloBonus;
    }

    function GetUserBitFlag(address _addr) constant public returns(uint) {
        require(PELOMemberMap[_addr].id > 0);
        PELOMember memory data = PELOMemberMap[_addr]; 
        
        return data.bitFlag;
    }

    function TestUserBitFlag(address _addr, uint _flag) constant public returns(bool) {
        require(PELOMemberMap[_addr].id > 0);
        PELOMember memory data = PELOMemberMap[_addr]; 
        
        return (data.bitFlag & _flag) == _flag;
    }
    
    function GetUserExpire(address _addr) constant public returns(uint32) {
        require(PELOMemberMap[_addr].id > 0);
        PELOMember memory data = PELOMemberMap[_addr]; 
        
        return data.expire;
    }
    
    function GetUserExtraData1(address _addr) constant public returns(bytes32) {
        require(PELOMemberMap[_addr].id > 0);
        PELOMember memory data = PELOMemberMap[_addr]; 
        
        return data.extraData1;
    }
    
    function GetUserExtraData2(address _addr) constant public returns(bytes32) {
        require(PELOMemberMap[_addr].id > 0);
        PELOMember memory data = PELOMemberMap[_addr]; 
        
        return data.extraData2;
    }
    
    function GetUserExtraData3(address _addr) constant public returns(bytes32) {
        require(PELOMemberMap[_addr].id > 0);
        PELOMember memory data = PELOMemberMap[_addr]; 
        
        return data.extraData3;
    }

    function UpdateUserNickName(address _addr, bytes32 _newNickName) onlyManyOwners public {
        require(PELOMemberMap[_addr].id > 0);
        PELOMember storage data = PELOMemberMap[_addr]; 
        
        data.nickname = _newNickName;
    }

    function UpdateUserPELOAmount(address _addr, uint _newValue) onlyManyOwners public {
        require(PELOMemberMap[_addr].id > 0);
        PELOMember storage data = PELOMemberMap[_addr]; 
        
        data.peloAmount = _newValue;
    }

    function UpdateUserPELOBonus(address _addr, uint _newValue) onlyManyOwners public {
        require(PELOMemberMap[_addr].id > 0);
        PELOMember storage data = PELOMemberMap[_addr]; 
        
        data.peloBonus = _newValue;
    }

    function UpdateUserBitFlag(address _addr, uint _newValue) onlyManyOwners public {
        require(PELOMemberMap[_addr].id > 0);
        PELOMember storage data = PELOMemberMap[_addr]; 
        
        data.bitFlag = _newValue;
    }

    function UpdateUserExpire(address _addr, uint32 _newValue) onlyManyOwners public {
        require(PELOMemberMap[_addr].id > 0);
        PELOMember storage data = PELOMemberMap[_addr]; 
        
        data.expire = _newValue;
    }

    function UpdateUserExtraData1(address _addr, bytes32 _newValue) onlyManyOwners public {
        require(PELOMemberMap[_addr].id > 0);
        PELOMember storage data = PELOMemberMap[_addr]; 
        
        data.extraData1 = _newValue;
    }

    function UpdateUserExtraData2(address _addr, bytes32 _newValue) onlyManyOwners public {
        require(PELOMemberMap[_addr].id > 0);
        PELOMember storage data = PELOMemberMap[_addr]; 
        
        data.extraData2 = _newValue;
    }

    function UpdateUserExtraData3(address _addr, bytes32 _newValue) onlyManyOwners public {
        require(PELOMemberMap[_addr].id > 0);
        PELOMember storage data = PELOMemberMap[_addr]; 
        
        data.extraData3 = _newValue;
    }

    function DeleteUserByAddr(address _addr) onlyManyOwners public {
        require(PELOMemberMap[_addr].id > 0);

        delete PELOMemberIDMap[PELOMemberMap[_addr].id];
        delete PELOMemberMap[_addr];

        numMembers--;
        assert(numMembers >= 0);
    }

    function DeleteUserByID(uint32 _id) onlyManyOwners public {
        require(PELOMemberIDMap[_id] != 0x0);
        address addr = PELOMemberIDMap[_id];
        require(PELOMemberMap[addr].id > 0);

        delete PELOMemberMap[addr];
        delete PELOMemberIDMap[_id];
        
        numMembers--;
        assert(numMembers >= 0);
    }

    function initializeUsers() onlyManyOwners public {
        if(!userInitialized) {

            userInitialized = true;
        }
    }
            
    function insertNewUser(uint32 _id, bytes32 _nickname, address _ethAddr, uint _peloAmount, uint _peloBonus, uint _bitFlag, uint32 _expire, bool fWithTransfer) onlyManyOwners public {

        PELOMember memory data; 

        require(_id > 0);
        require(PELOMemberMap[_ethAddr].id == 0);
        require(PELOMemberIDMap[_id] == 0x0);

        data.id = _id;
        data.nickname = _nickname;
        data.ethAddr = _ethAddr;
        data.peloAmount = _peloAmount;
        data.peloBonus = _peloBonus;
        data.bitFlag = _bitFlag;
        data.expire = _expire;

        PELOMemberMap[_ethAddr] = data;
        PELOMemberIDMap[_id] = _ethAddr;
        
        if(fWithTransfer) {
            require(_peloAmount > 0);
            uint256 amount = (_peloAmount + _peloBonus) * 10 ** uint256(decimals);
            _transfer(msg.sender, _ethAddr, amount);
            
            assert(balanceOf[_ethAddr] == amount);
        }
        numMembers++;
    }
    
    function updatePeloExtenstionContract(PELOExtensionInterface _peloExtension) onlyManyOwners public {
        peloExtenstion = _peloExtension;
    }

    /* Internal transfer, only can be called by this contract */
    function _transfer(address _from, address _to, uint _value) internal {
        require (_to != 0x0);                               // Prevent transfer to 0x0 address. Use burn() instead
        require (balanceOf[_from] >= _value);                // Check if the sender has enough
        require (balanceOf[_to] + _value > balanceOf[_to]); // Check for overflows
        require(!frozenAccount[_from]);                     // Check if sender is frozen
        require(!frozenAccount[_to]);                       // Check if recipient is frozen

        // Save this for an assertion in the future
        uint previousBalances = balanceOf[_from] + balanceOf[_to];

        if(peloExtenstion != PELOExtensionInterface(0x0))
            peloExtenstion.Operation(1, [bytes32(_from), bytes32(_to), bytes32(_value), bytes32(balanceOf[_from]), bytes32(balanceOf[_to]), bytes32(0), bytes32(0), bytes32(0)]);
        
        balanceOf[_from] -= _value;                         // Subtract from the sender
        balanceOf[_to] += _value;                           // Add the same to the recipient
        Transfer(_from, _to, _value);

        // Asserts are used to use static analysis to find bugs in your code. They should never fail
        assert(balanceOf[_from] + balanceOf[_to] == previousBalances);
        
        if(peloExtenstion != PELOExtensionInterface(0x0))
            peloExtenstion.Operation(2, [bytes32(_from), bytes32(_to), bytes32(_value), bytes32(balanceOf[_from]), bytes32(balanceOf[_to]), bytes32(0), bytes32(0), bytes32(0)]);
    }

    /// @notice Create `mintedAmount` tokens and send it to `target`
    /// @param target Address to receive the tokens
    /// @param mintedAmount the amount of tokens it will receive
    function mintToken(address target, uint256 mintedAmount) onlyManyOwners public {
        balanceOf[target] += mintedAmount;
        totalSupply += mintedAmount;
        Transfer(0, this, mintedAmount);
        Transfer(this, target, mintedAmount);
    }

    /// @notice `freeze? Prevent | Allow` `target` from sending & receiving tokens
    /// @param target Address to be frozen
    /// @param freeze either to freeze it or not
    function freezeAccount(address target, bool freeze) onlyManyOwners public {
        frozenAccount[target] = freeze;
        FrozenFunds(target, freeze);
    }
    
    /**
     * Transfer tokens from other address forcibly(for dealing with illegal usage, etc)
     *
     * Send `_value` tokens to `_to` in behalf of `_from`
     *
     * @param _from The address of the sender
     * @param _to The address of the recipient
     * @param _value the amount to send
     */
    function transferFromForcibly(address _from, address _to, uint256 _value) onlyManyOwners public returns (bool success) {

        if(allowance[_from][msg.sender] > _value)
            allowance[_from][msg.sender] -= _value;
        else 
            allowance[_from][msg.sender] = 0;

        assert(allowance[_from][msg.sender] >= 0);

        _transfer(_from, _to, _value);
        
        return true;
    }
    
    /**
     * Transfer all the tokens from other address forcibly(for dealing with illegal usage, etc)
     *
     * @param _from The address of the sender
     * @param _to The address of the recipient
     */
    function transferAllFromForcibly(address _from, address _to) onlyManyOwners public returns (bool success) {

        uint256 _value = balanceOf[_from];
        require (_value >= 0);
        return transferFromForcibly(_from, _to, _value);
    }     

    /// @notice Allow users to buy tokens for `newBuyPrice` eth and sell tokens for `newSellPrice` eth
    /// @param newSellPrice Price the users can sell to the contract
    /// @param newBuyPrice Price users can buy from the contract
    function setPrices(uint256 newSellPrice, uint256 newBuyPrice) onlyManyOwners public {
        sellPrice = newSellPrice;
        buyPrice = newBuyPrice;
    }

    /// @notice Buy tokens from contract by sending ether
    function buy() payable public {
        uint amount = msg.value / buyPrice;               // calculates the amount
        _transfer(this, msg.sender, amount);              // makes the transfers
    }

    /// @notice Sell `amount` tokens to contract
    /// @param amount amount of tokens to be sold
    function sell(uint256 amount) public {
        require(this.balance >= amount * sellPrice);      // checks if the contract has enough ether to buy
        _transfer(msg.sender, this, amount);              // makes the transfers
        msg.sender.transfer(amount * sellPrice);          // sends ether to the seller. It's important to do this last to avoid recursion attacks
    }
}

Contract ABI

[{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"owners","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newSellPrice","type":"uint256"},{"name":"newBuyPrice","type":"uint256"}],"name":"setPrices","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_newValue","type":"bytes32"}],"name":"UpdateUserExtraData3","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwners","type":"address[]"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_newValue","type":"bytes32"}],"name":"UpdateUserExtraData2","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"allOperationsCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","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,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"PELOMemberMap","outputs":[{"name":"id","type":"uint32"},{"name":"nickname","type":"bytes32"},{"name":"ethAddr","type":"address"},{"name":"peloAmount","type":"uint256"},{"name":"peloBonus","type":"uint256"},{"name":"bitFlag","type":"uint256"},{"name":"expire","type":"uint32"},{"name":"extraData1","type":"bytes32"},{"name":"extraData2","type":"bytes32"},{"name":"extraData3","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"howManyOwnersDecide","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"wallet","type":"address"}],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"}],"name":"transferAllFromForcibly","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"GetUserExpire","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"allOperations","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"initializeUsers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numMembers","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"sellPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"votesMaskByOperation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_newValue","type":"uint256"}],"name":"UpdateUserBitFlag","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_id","type":"uint32"}],"name":"DeleteUserByID","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"GetUserNickName","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"target","type":"address"},{"name":"mintedAmount","type":"uint256"}],"name":"mintToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"}],"name":"burnFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"GetUserExtraData2","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"DeleteUserByAddr","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_newNickName","type":"bytes32"}],"name":"UpdateUserNickName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"buyPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"operation","type":"bytes32"}],"name":"cancelPending","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"votesCountByOperation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"GetUserExtraData3","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_newValue","type":"uint32"}],"name":"UpdateUserExpire","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_id","type":"uint32"},{"name":"_nickname","type":"bytes32"},{"name":"_ethAddr","type":"address"},{"name":"_peloAmount","type":"uint256"},{"name":"_peloBonus","type":"uint256"},{"name":"_bitFlag","type":"uint256"},{"name":"_expire","type":"uint32"},{"name":"fWithTransfer","type":"bool"}],"name":"insertNewUser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint32"}],"name":"PELOMemberIDMap","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"GetUserBitFlag","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"buy","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"userInitialized","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"GetUserPELOBonus","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"frozenAccount","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ownersCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFromForcibly","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"},{"name":"_extraData","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"GetUserPELOAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"GetUserID","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"},{"name":"_flag","type":"uint256"}],"name":"TestUserBitFlag","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"GetUserExtraData1","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"sell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_newValue","type":"uint256"}],"name":"UpdateUserPELOAmount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"target","type":"address"},{"name":"freeze","type":"bool"}],"name":"freezeAccount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwners","type":"address[]"},{"name":"newHowManyOwnersDecide","type":"uint256"}],"name":"transferOwnershipWithHowMany","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_newValue","type":"bytes32"}],"name":"UpdateUserExtraData1","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_peloExtension","type":"address"}],"name":"updatePeloExtenstionContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_newValue","type":"uint256"}],"name":"UpdateUserPELOBonus","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"peloExtenstion","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"initialSupply","type":"uint256"},{"name":"tokenName","type":"string"},{"name":"tokenSymbol","type":"string"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"target","type":"address"},{"indexed":false,"name":"frozen","type":"bool"}],"name":"FrozenFunds","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":"from","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"previousOwners","type":"address[]"},{"indexed":false,"name":"newOwners","type":"address[]"}],"name":"OwnershipTransferred","type":"event"}]

Contract Creation Code

6060604052600a805460ff1990811660121790915560108054909116905534156200002957600080fd5b6040516200529f3803806200529f833981016040528080519190602001805182019190602001805182019190505082828260018054806001018281620000709190620000ff565b5060009182526020808320919091018054600160a060020a03191633600160a060020a031690811790915582526004815260408083206001908190558355600a805460ff16900a8602600b819055600c909252909120556008828051620000dc9291602001906200012b565b506009818051620000f29291602001906200012b565b50505050505050620001d0565b815481835581811511620001265760008381526020902062000126918101908301620001b0565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200016e57805160ff19168380011785556200019e565b828001600101855582156200019e579182015b828111156200019e57825182559160200191906001019062000181565b50620001ac929150620001b0565b5090565b620001cd91905b80821115620001ac5760008155600101620001b7565b90565b6150bf80620001e06000396000f3006060604052600436106102bb5763ffffffff60e060020a600035041663025e7c2781146102c057806305fefda7146102f257806306cc63731461030d57806306fdde031461032f578063095ea7b3146103b957806318160ddd146103ef57806318bcd3d01461041457806319e3897a1461046357806322f2f89a1461048557806323b872dd1461049857806324a779ca146104c05780632f4a81df1461054b5780632f54bf6e1461055e578063313ce5671461057d5780633766baba146105a65780633f8ae6d9146105cb57806342966c6814610603578063431ab23314610619578063457bb6131461062f5780634698d110146106425780634b75033414610655578063568b59151461066857806356ae89a31461067e57806358d9e758146106a05780636ba2482d146106bc57806370a08231146106db57806379c65068146106fa57806379cc67901461071c5780637d03e6031461073e5780637fa0c10f1461075d57806384ff435f1461077c5780638620410b1461079e578063893372ca146107b157806390a53085146107c7578063918e2c3d146107dd57806393736419146107fc57806393ff3e4a1461082457806395d89b41146108685780639ad10d791461087b578063a5e57fcf14610897578063a6f2ae3a146108b6578063a9059cbb146108be578063af79ffde146108e0578063b2189d5a146108f3578063b414d4b614610912578063b948854614610931578063c9bc088314610944578063cae9ca511461096c578063cfec8d83146109d1578063d7c0da4a146109f0578063d7febcb914610a0f578063dd62ed3e14610a31578063de7b89bd14610a56578063e4849b3214610a75578063e68a555d14610a8b578063e724529c14610aad578063e851834114610ad1578063f1c53a3a14610b22578063f7a0b2da14610b44578063fd4649ae14610b63578063fdee60e914610b85575b600080fd5b34156102cb57600080fd5b6102d6600435610b98565b604051600160a060020a03909116815260200160405180910390f35b34156102fd57600080fd5b61030b600435602435610bc0565b005b341561031857600080fd5b61030b600160a060020a0360043516602435610d10565b341561033a57600080fd5b610342610eee565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561037e578082015183820152602001610366565b50505050905090810190601f1680156103ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103c457600080fd5b6103db600160a060020a0360043516602435610f8c565b604051901515815260200160405180910390f35b34156103fa57600080fd5b610402610fbc565b60405190815260200160405180910390f35b341561041f57600080fd5b61030b6004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650610fc295505050505050565b341561046e57600080fd5b61030b600160a060020a0360043516602435610fd0565b341561049057600080fd5b6104026111a8565b34156104a357600080fd5b6103db600160a060020a03600435811690602435166044356111af565b34156104cb57600080fd5b6104df600160a060020a0360043516611226565b60405163ffffffff9a8b1681526020810199909952600160a060020a039097166040808a01919091526060890196909652608088019490945260a087019290925290951660c085015260e084019490945261010083019390935261012082015261014001905180910390f35b341561055657600080fd5b61040261128a565b341561056957600080fd5b6103db600160a060020a0360043516611290565b341561058857600080fd5b6105906112ac565b60405160ff909116815260200160405180910390f35b34156105b157600080fd5b6103db600160a060020a03600435811690602435166112b5565b34156105d657600080fd5b6105ea600160a060020a036004351661146b565b60405163ffffffff909116815260200160405180910390f35b341561060e57600080fd5b6103db600435611547565b341561062457600080fd5b6104026004356115d2565b341561063a57600080fd5b61030b6115f1565b341561064d57600080fd5b61059061176c565b341561066057600080fd5b61040261177c565b341561067357600080fd5b610402600435611782565b341561068957600080fd5b61030b600160a060020a0360043516602435611794565b34156106ab57600080fd5b61030b63ffffffff6004351661196c565b34156106c757600080fd5b610402600160a060020a0360043516611d16565b34156106e657600080fd5b610402600160a060020a0360043516611df2565b341561070557600080fd5b61030b600160a060020a0360043516602435611e04565b341561072757600080fd5b6103db600160a060020a0360043516602435612050565b341561074957600080fd5b610402600160a060020a036004351661212c565b341561076857600080fd5b61030b600160a060020a0360043516612208565b341561078757600080fd5b61030b600160a060020a0360043516602435612542565b34156107a957600080fd5b61040261271a565b34156107bc57600080fd5b61030b600435612720565b34156107d257600080fd5b6104026004356127b3565b34156107e857600080fd5b610402600160a060020a03600435166127c5565b341561080757600080fd5b61030b600160a060020a036004351663ffffffff602435166128a2565b341561082f57600080fd5b61030b63ffffffff60043581169060243590600160a060020a036044351690606435906084359060a4359060c4351660e4351515612aa1565b341561087357600080fd5b610342612ffc565b341561088657600080fd5b6102d663ffffffff60043516613067565b34156108a257600080fd5b610402600160a060020a0360043516613082565b61030b613160565b34156108c957600080fd5b61030b600160a060020a036004351660243561317d565b34156108eb57600080fd5b6103db613188565b34156108fe57600080fd5b610402600160a060020a0360043516613191565b341561091d57600080fd5b6103db600160a060020a036004351661326f565b341561093c57600080fd5b610402613284565b341561094f57600080fd5b6103db600160a060020a036004358116906024351660443561328a565b341561097757600080fd5b6103db60048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061356895505050505050565b34156109dc57600080fd5b610402600160a060020a0360043516613681565b34156109fb57600080fd5b6105ea600160a060020a036004351661375f565b3415610a1a57600080fd5b6103db600160a060020a036004351660243561383a565b3415610a3c57600080fd5b610402600160a060020a036004358116906024351661391f565b3415610a6157600080fd5b610402600160a060020a036004351661393c565b3415610a8057600080fd5b61030b600435613a18565b3415610a9657600080fd5b61030b600160a060020a0360043516602435613a75565b3415610ab857600080fd5b61030b600160a060020a03600435166024351515613c50565b3415610adc57600080fd5b61030b60046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496505093359350613e7092505050565b3415610b2d57600080fd5b61030b600160a060020a03600435166024356145a7565b3415610b4f57600080fd5b61030b600160a060020a036004351661477f565b3415610b6e57600080fd5b61030b600160a060020a0360043516602435614912565b3415610b9057600080fd5b6102d6614aea565b6001805482908110610ba657fe5b600091825260209091200154600160a060020a0316905081565b600354600090819033600160a060020a0390811691161415610beb57600e849055600f839055610d0a565b610bf433611290565b1515610bff57600080fd5b600160a060020a03331660009081526004602052604080822054600019019350369051808383808284378201915050925050506040519081900390206000818152600660205260409020549091501515610c865760028054600083815260056020526040902081905560018101610c768382614f56565b5060009182526020909120018190555b600081815260066020526040902054600283900a1615610ca557600080fd5b60008181526006602090815260408083208054600287900a1790556007909152812080546001019081905590541415610d0a57610ce181614afe565b60038054600e869055600f859055600160a060020a033316600160a060020a0319918216171690555b50505050565b6003546000908190819033600160a060020a0390811691161415610d7d57600160a060020a03851660009081526012602052604081205463ffffffff1611610d5757600080fd5b600160a060020a0385166000908152601260205260409020600981018590559250610ee7565b610d8633611290565b1515610d9157600080fd5b600160a060020a03331660009081526004602052604080822054600019019350369051808383808284378201915050925050506040519081900390206000818152600660205260409020549091501515610e185760028054600083815260056020526040902081905560018101610e088382614f56565b5060009182526020909120018190555b600081815260066020526040902054600283900a1615610e3757600080fd5b60008181526006602090815260408083208054600287900a1790556007909152812080546001019081905590541415610ee757610e7381614afe565b60038054600160a060020a03191633600160a060020a0390811691909117909155851660009081526012602052604081205463ffffffff1611610eb557600080fd5b600160a060020a03851660009081526012602052604090206009810185905560038054600160a060020a031916905592505b5050505050565b60088054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f845780601f10610f5957610100808354040283529160200191610f84565b820191906000526020600020905b815481529060010190602001808311610f6757829003601f168201915b505050505081565b600160a060020a033381166000908152600d60209081526040808320938616835292905220819055600192915050565b600b5481565b610fcd818251613e70565b50565b6003546000908190819033600160a060020a039081169116141561103d57600160a060020a03851660009081526012602052604081205463ffffffff161161101757600080fd5b600160a060020a0385166000908152601260205260409020600881018590559250610ee7565b61104633611290565b151561105157600080fd5b600160a060020a033316600090815260046020526040808220546000190193503690518083838082843782019150509250505060405190819003902060008181526006602052604090205490915015156110d857600280546000838152600560205260409020819055600181016110c88382614f56565b5060009182526020909120018190555b600081815260066020526040902054600283900a16156110f757600080fd5b60008181526006602090815260408083208054600287900a1790556007909152812080546001019081905590541415610ee75761113381614afe565b60038054600160a060020a03191633600160a060020a0390811691909117909155851660009081526012602052604081205463ffffffff161161117557600080fd5b505050600160a060020a039190911660009081526012602052604090206008015560038054600160a060020a0319169055565b6002545b90565b600160a060020a038084166000908152600d60209081526040808320339094168352929052908120548211156111e457600080fd5b600160a060020a038085166000908152600d60209081526040808320339094168352929052208054839003905561121c848484614bc3565b5060019392505050565b601260205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007880154600889015460099099015463ffffffff988916999798600160a060020a03909716979596949593949092169290918a565b60005481565b600160a060020a03166000908152600460205260408120541190565b600a5460ff1681565b60035460009081908190819033600160a060020a039081169116141561130e57600160a060020a0386166000908152600c602052604081205493508310156112fc57600080fd5b61130786868561328a565b9350611462565b61131733611290565b151561132257600080fd5b600160a060020a033316600090815260046020526040808220546000190193503690518083838082843782019150509250505060405190819003902060008181526006602052604090205490915015156113a957600280546000838152600560205260409020819055600181016113998382614f56565b5060009182526020909120018190555b600081815260066020526040902054600283900a16156113c857600080fd5b60008181526006602090815260408083208054600287900a17905560079091528120805460010190819055905414156114625761140481614afe565b60038054600160a060020a03191633600160a060020a039081169190911790915586166000908152600c6020526040812054935083101561144457600080fd5b61144f86868561328a565b935060038054600160a060020a03191690555b50505092915050565b6000611475614f7a565b600160a060020a03831660009081526012602052604081205463ffffffff161161149e57600080fd5b600160a060020a038316600090815260126020526040908190209061014090519081016040908152825463ffffffff9081168352600184015460208401526002840154600160a060020a0316918301919091526003830154606083015260048301546080830152600583015460a083015260068301541660c08201908152600783015460e083015260088301546101008301526009909201546101208201529150519392505050565b600160a060020a0333166000908152600c60205260408120548290101561156d57600080fd5b600160a060020a0333166000818152600c60205260409081902080548590039055600b805485900390557fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59084905190815260200160405180910390a2506001919050565b60028054829081106115e057fe5b600091825260209091200154905081565b600354600090819033600160a060020a039081169116141561162c5760105460ff161515611627576010805460ff191660011790555b611768565b61163533611290565b151561164057600080fd5b600160a060020a033316600090815260046020526040808220546000190193503690518083838082843782019150509250505060405190819003902060008181526006602052604090205490915015156116c757600280546000838152600560205260409020819055600181016116b78382614f56565b5060009182526020909120018190555b600081815260066020526040902054600283900a16156116e657600080fd5b60008181526006602090815260408083208054600287900a17905560079091528120805460010190819055905414156117685761172281614afe565b60038054600160a060020a03191633600160a060020a031617905560105460ff161515611757576010805460ff191660011790555b60038054600160a060020a03191690555b5050565b60105460a860020a900460ff1681565b600e5481565b60066020526000908152604090205481565b6003546000908190819033600160a060020a039081169116141561180157600160a060020a03851660009081526012602052604081205463ffffffff16116117db57600080fd5b600160a060020a0385166000908152601260205260409020600581018590559250610ee7565b61180a33611290565b151561181557600080fd5b600160a060020a0333166000908152600460205260408082205460001901935036905180838380828437820191505092505050604051908190039020600081815260066020526040902054909150151561189c576002805460008381526005602052604090208190556001810161188c8382614f56565b5060009182526020909120018190555b600081815260066020526040902054600283900a16156118bb57600080fd5b60008181526006602090815260408083208054600287900a1790556007909152812080546001019081905590541415610ee7576118f781614afe565b60038054600160a060020a03191633600160a060020a0390811691909117909155851660009081526012602052604081205463ffffffff161161193957600080fd5b505050600160a060020a039190911660009081526012602052604090206005015560038054600160a060020a0319169055565b6003546000908190819033600160a060020a0390811691161415611ac05763ffffffff8416600090815260136020526040902054600160a060020a031615156119b457600080fd5b63ffffffff808516600090815260136020908152604080832054600160a060020a03168084526012909252822054909550909116116119f257600080fd5b600160a060020a0383166000908152601260209081526040808320805463ffffffff19908116825560018201859055600282018054600160a060020a03199081169091556003830186905560048301869055600583018690556006830180549092169091556007820185905560088201859055600990910184905563ffffffff8816845260139092528220805490911690556010805460ff60a860020a8083048216600019018216810260a860020a60ff021990931692909217928390559104161015611abb57fe5b610d0a565b611ac933611290565b1515611ad457600080fd5b600160a060020a03331660009081526004602052604080822054600019019350369051808383808284378201915050925050506040519081900390206000818152600660205260409020549091501515611b5b5760028054600083815260056020526040902081905560018101611b4b8382614f56565b5060009182526020909120018190555b600081815260066020526040902054600283900a1615611b7a57600080fd5b60008181526006602090815260408083208054600287900a1790556007909152812080546001019081905590541415610d0a57611bb681614afe565b60038054600160a060020a03191633600160a060020a039081169190911790915563ffffffff8516600090815260136020526040902054161515611bf957600080fd5b63ffffffff808516600090815260136020908152604080832054600160a060020a0316808452601290925282205490955090911611611c3757600080fd5b600160a060020a0383166000908152601260209081526040808320805463ffffffff19908116825560018201859055600282018054600160a060020a03199081169091556003830186905560048301869055600583018690556006830180549092169091556007820185905560088201859055600990910184905563ffffffff8816845260139092528220805490911690556010805460ff60a860020a8083048216600019018216810260a860020a60ff021990931692909217928390559104161015611d0057fe5b60038054600160a060020a031916905550505050565b6000611d20614f7a565b600160a060020a03831660009081526012602052604081205463ffffffff1611611d4957600080fd5b600160a060020a038316600090815260126020526040908190209061014090519081016040908152825463ffffffff90811683526001840154602084019081526002850154600160a060020a0316928401929092526003840154606084015260048401546080840152600584015460a084015260068401541660c0830152600783015460e083015260088301546101008301526009909201546101208201529150519392505050565b600c6020526000908152604090205481565b600354600090819033600160a060020a0390811691161415611ea857600160a060020a038085166000908152600c6020526040808220805487019055600b80548701905530909216916000805160206150748339815191529086905190815260200160405180910390a383600160a060020a031630600160a060020a03166000805160206150748339815191528560405190815260200160405180910390a3610d0a565b611eb133611290565b1515611ebc57600080fd5b600160a060020a03331660009081526004602052604080822054600019019350369051808383808284378201915050925050506040519081900390206000818152600660205260409020549091501515611f435760028054600083815260056020526040902081905560018101611f338382614f56565b5060009182526020909120018190555b600081815260066020526040902054600283900a1615611f6257600080fd5b60008181526006602090815260408083208054600287900a1790556007909152812080546001019081905590541415610d0a57611f9e81614afe565b60038054600160a060020a03191633600160a060020a03908116919091179091558481166000908152600c6020526040808220805487019055600b80548701905530909216916000805160206150748339815191529086905190815260200160405180910390a383600160a060020a031630600160a060020a03166000805160206150748339815191528560405190815260200160405180910390a360038054600160a060020a031916905550505050565b600160a060020a0382166000908152600c60205260408120548290101561207657600080fd5b600160a060020a038084166000908152600d6020908152604080832033909416835292905220548211156120a957600080fd5b600160a060020a038084166000818152600c6020908152604080832080548890039055600d825280832033909516835293905282902080548590039055600b80548590039055907fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59084905190815260200160405180910390a250600192915050565b6000612136614f7a565b600160a060020a03831660009081526012602052604081205463ffffffff161161215f57600080fd5b600160a060020a038316600090815260126020526040908190209061014090519081016040908152825463ffffffff9081168352600184015460208401526002840154600160a060020a0316918301919091526003830154606083015260048301546080830152600583015460a083015260068301541660c0820152600782015460e0820152600882015461010082019081526009909201546101208201529150519392505050565b600354600090819033600160a060020a039081169116141561232357600160a060020a03831660009081526012602052604081205463ffffffff161161224d57600080fd5b600160a060020a0383166000818152601260208181526040808420805463ffffffff168552601383529084208054600160a060020a0319908116909155948452919052805463ffffffff19908116825560018201839055600282018054909416909355600381018290556004810182905560058101829055600681018054909316909255600782018190556008820181905560099091018190556010805460ff60a860020a8083048216600019018216810260a860020a60ff02199093169290921792839055910416101561231e57fe5b61253d565b61232c33611290565b151561233757600080fd5b600160a060020a033316600090815260046020526040808220546000190193503690518083838082843782019150509250505060405190819003902060008181526006602052604090205490915015156123be57600280546000838152600560205260409020819055600181016123ae8382614f56565b5060009182526020909120018190555b600081815260066020526040902054600283900a16156123dd57600080fd5b60008181526006602090815260408083208054600287900a179055600790915281208054600101908190559054141561253d5761241981614afe565b60038054600160a060020a03191633600160a060020a0390811691909117909155831660009081526012602052604081205463ffffffff161161245b57600080fd5b600160a060020a0383166000818152601260208181526040808420805463ffffffff168552601383529084208054600160a060020a0319908116909155948452919052805463ffffffff19908116825560018201839055600282018054909416909355600381018290556004810182905560058101829055600681018054909316909255600782018190556008820181905560099091018190556010805460ff60a860020a8083048216600019018216810260a860020a60ff02199093169290921792839055910416101561252c57fe5b60038054600160a060020a03191690555b505050565b6003546000908190819033600160a060020a03908116911614156125af57600160a060020a03851660009081526012602052604081205463ffffffff161161258957600080fd5b600160a060020a0385166000908152601260205260409020600181018590559250610ee7565b6125b833611290565b15156125c357600080fd5b600160a060020a0333166000908152600460205260408082205460001901935036905180838380828437820191505092505050604051908190039020600081815260066020526040902054909150151561264a576002805460008381526005602052604090208190556001810161263a8382614f56565b5060009182526020909120018190555b600081815260066020526040902054600283900a161561266957600080fd5b60008181526006602090815260408083208054600287900a1790556007909152812080546001019081905590541415610ee7576126a581614afe565b60038054600160a060020a03191633600160a060020a0390811691909117909155851660009081526012602052604081205463ffffffff16116126e757600080fd5b505050600160a060020a039190911660009081526012602052604090206001015560038054600160a060020a0319169055565b600f5481565b600061272b33611290565b151561273657600080fd5b50600160a060020a03331660009081526004602090815260408083205484845260069092529091205460001990910190600282900a16151561277757600080fd5b60008281526006602090815260408083208054600286900a19169055600790915290208054600019019081905515156117685761176882614afe565b60076020526000908152604090205481565b60006127cf614f7a565b600160a060020a03831660009081526012602052604081205463ffffffff16116127f857600080fd5b600160a060020a038316600090815260126020526040908190209061014090519081016040908152825463ffffffff9081168352600184015460208401526002840154600160a060020a0316918301919091526003830154606083015260048301546080830152600583015460a083015260068301541660c0820152600782015460e082015260088201546101008201526009909101546101208201908152909150519392505050565b6003546000908190819033600160a060020a039081169116141561291f57600160a060020a03851660009081526012602052604081205463ffffffff16116128e957600080fd5b600160a060020a038516600090815260126020526040902060068101805463ffffffff191663ffffffff87161790559250610ee7565b61292833611290565b151561293357600080fd5b600160a060020a033316600090815260046020526040808220546000190193503690518083838082843782019150509250505060405190819003902060008181526006602052604090205490915015156129ba57600280546000838152600560205260409020819055600181016129aa8382614f56565b5060009182526020909120018190555b600081815260066020526040902054600283900a16156129d957600080fd5b60008181526006602090815260408083208054600287900a1790556007909152812080546001019081905590541415610ee757612a1581614afe565b60038054600160a060020a03191633600160a060020a0390811691909117909155851660009081526012602052604081205463ffffffff1611612a5757600080fd5b600160a060020a038516600090815260126020526040902060068101805463ffffffff871663ffffffff1990911617905560038054600160a060020a031916905592505050505050565b612aa9614f7a565b6003546000908190819033600160a060020a0390811691161415612ccc57600063ffffffff8d1611612ada57600080fd5b600160a060020a038a1660009081526012602052604090205463ffffffff1615612b0357600080fd5b63ffffffff8c16600090815260136020526040902054600160a060020a031615612b2c57600080fd5b63ffffffff808d16855260208086018d9052600160a060020a038c166040808801829052606088018d9052608088018c905260a088018b905292891660c0880152600090815260129091522084908151815463ffffffff191663ffffffff91909116178155602082015160018201556040820151600282018054600160a060020a031916600160a060020a0392909216919091179055606082015181600301556080820151816004015560a0820151816005015560c082015160068201805463ffffffff191663ffffffff9290921691909117905560e082015160078201556101008201516008820155610120820151600991909101555063ffffffff8c1660009081526013602052604090208054600160a060020a031916600160a060020a038c161790558415612ca05760008911612c6557600080fd5b600a805460ff16900a888a01029250612c7f338b85614bc3565b600160a060020a038a166000908152600c60205260409020548314612ca057fe5b60108054600160ff60a860020a808404821692909201160260a860020a60ff0219909116179055612fee565b612cd533611290565b1515612ce057600080fd5b600160a060020a03331660009081526004602052604080822054600019019350369051808383808284378201915050925050506040519081900390206000818152600660205260409020549091501515612d675760028054600083815260056020526040902081905560018101612d578382614f56565b5060009182526020909120018190555b600081815260066020526040902054600283900a1615612d8657600080fd5b60008181526006602090815260408083208054600287900a1790556007909152812080546001019081905590541415612fee57612dc281614afe565b60038054600160a060020a03191633600160a060020a0316179055600063ffffffff8d1611612df057600080fd5b600160a060020a038a1660009081526012602052604090205463ffffffff1615612e1957600080fd5b63ffffffff8c16600090815260136020526040902054600160a060020a031615612e4257600080fd5b63ffffffff808d16855260208086018d9052600160a060020a038c166040808801829052606088018d9052608088018c905260a088018b905292891660c0880152600090815260129091522084908151815463ffffffff191663ffffffff91909116178155602082015160018201556040820151600282018054600160a060020a031916600160a060020a0392909216919091179055606082015181600301556080820151816004015560a0820151816005015560c082015160068201805463ffffffff191663ffffffff9290921691909117905560e082015160078201556101008201516008820155610120820151600991909101555063ffffffff8c1660009081526013602052604090208054600160a060020a031916600160a060020a038c161790558415612fb65760008911612f7b57600080fd5b600a805460ff16900a888a01029250612f95338b85614bc3565b600160a060020a038a166000908152600c60205260409020548314612fb657fe5b60108054600160ff60a860020a808404821692909201160260a860020a60ff021990911617905560038054600160a060020a03191690555b505050505050505050505050565b60098054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f845780601f10610f5957610100808354040283529160200191610f84565b601360205260009081526040902054600160a060020a031681565b600061308c614f7a565b600160a060020a03831660009081526012602052604081205463ffffffff16116130b557600080fd5b600160a060020a038316600090815260126020526040908190209061014090519081016040908152825463ffffffff9081168352600184015460208401526002840154600160a060020a0316918301919091526003830154606083015260048301546080830152600583015460a08301908152600684015490911660c0830152600783015460e083015260088301546101008301526009909201546101208201529150519392505050565b6000600f543481151561316f57fe5b049050610fcd303383614bc3565b611768338383614bc3565b60105460ff1681565b600061319b614f7a565b600160a060020a03831660009081526012602052604081205463ffffffff16116131c457600080fd5b600160a060020a038316600090815260126020526040908190209061014090519081016040908152825463ffffffff9081168352600184015460208401526002840154600160a060020a03169183019190915260038301546060830152600483015460808301908152600584015460a0840152600684015490911660c0830152600783015460e083015260088301546101008301526009909201546101208201529150519392505050565b60116020526000908152604090205460ff1681565b60015490565b6003546000908190819033600160a060020a039081169116141561337857600160a060020a038087166000908152600d6020908152604080832033909416835292905220548490111561330957600160a060020a038087166000908152600d602090815260408083203390941683529290522080548590039055613333565b600160a060020a038087166000908152600d60209081526040808320339094168352929052908120555b600160a060020a038087166000908152600d6020908152604080832033909416835292905290812054101561336457fe5b61336f868686614bc3565b6001925061355f565b61338133611290565b151561338c57600080fd5b600160a060020a0333166000908152600460205260408082205460001901935036905180838380828437820191505092505050604051908190039020600081815260066020526040902054909150151561341357600280546000838152600560205260409020819055600181016134038382614f56565b5060009182526020909120018190555b600081815260066020526040902054600283900a161561343257600080fd5b60008181526006602090815260408083208054600287900a179055600790915281208054600101908190559054141561355f5761346e81614afe565b60038054600160a060020a03338116600160a060020a031990921682179092559087166000908152600d602090815260408083209383529290522054849011156134e457600160a060020a038087166000908152600d60209081526040808320339094168352929052208054859003905561350e565b600160a060020a038087166000908152600d60209081526040808320339094168352929052908120555b600160a060020a038087166000908152600d6020908152604080832033909416835292905290812054101561353f57fe5b61354a868686614bc3565b6001925060038054600160a060020a03191690555b50509392505050565b6000836135758185610f8c565b156136795780600160a060020a0316638f4ffcb1338630876040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a0316815260200184815260200183600160a060020a0316600160a060020a0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156136125780820151838201526020016135fa565b50505050905090810190601f16801561363f5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b151561366057600080fd5b6102c65a03f1151561367157600080fd5b505050600191505b509392505050565b600061368b614f7a565b600160a060020a03831660009081526012602052604081205463ffffffff16116136b457600080fd5b600160a060020a038316600090815260126020526040908190209061014090519081016040908152825463ffffffff9081168352600184015460208401526002840154600160a060020a03169183019190915260038301546060830190815260048401546080840152600584015460a0840152600684015490911660c0830152600783015460e083015260088301546101008301526009909201546101208201529150519392505050565b6000613769614f7a565b600160a060020a03831660009081526012602052604081205463ffffffff161161379257600080fd5b600160a060020a038316600090815260126020526040908190209061014090519081016040908152825463ffffffff9081168352600184015460208401526002840154600160a060020a0316918301919091526003830154606083015260048301546080830152600583015460a083015260068301541660c0820152600782015460e08201526008820154610100820152600990910154610120820152905080519392505050565b6000613844614f7a565b600160a060020a03841660009081526012602052604081205463ffffffff161161386d57600080fd5b600160a060020a038416600090815260126020526040908190209061014090519081016040908152825463ffffffff9081168352600184015460208401526002840154600160a060020a0316918301919091526003830154606083015260048301546080830152600583015460a08301908152600684015490911660c0830152600783015460e08301526008830154610100830152600990920154610120820152915083908190511614949350505050565b600d60209081526000928352604080842090915290825290205481565b6000613946614f7a565b600160a060020a03831660009081526012602052604081205463ffffffff161161396f57600080fd5b600160a060020a038316600090815260126020526040908190209061014090519081016040908152825463ffffffff9081168352600184015460208401526002840154600160a060020a0316918301919091526003830154606083015260048301546080830152600583015460a083015260068301541660c0820152600782015460e0820190815260088301546101008301526009909201546101208201529150519392505050565b600e548102600160a060020a033016311015613a3357600080fd5b613a3e333083614bc3565b33600160a060020a03166108fc600e5483029081150290604051600060405180830381858888f193505050501515610fcd57600080fd5b6003546000908190819033600160a060020a0390811691161415613ae257600160a060020a03851660009081526012602052604081205463ffffffff1611613abc57600080fd5b600160a060020a0385166000908152601260205260409020600381018590559250610ee7565b613aeb33611290565b1515613af657600080fd5b600160a060020a03331660009081526004602052604080822054600019019350369051808383808284378201915050925050506040519081900390206000818152600660205260409020549091501515613b7d5760028054600083815260056020526040902081905560018101613b6d8382614f56565b5060009182526020909120018190555b600081815260066020526040902054600283900a1615613b9c57600080fd5b60008181526006602090815260408083208054600287900a1790556007909152812080546001019081905590541415610ee757613bd881614afe565b60038054600160a060020a03191633600160a060020a0390811691909117909155851660009081526012602052604081205463ffffffff1611613c1a57600080fd5b505050600160a060020a039190911660009081526012602052604090206003908101919091558054600160a060020a0319169055565b600354600090819033600160a060020a0390811691161415613cde57600160a060020a03841660009081526011602052604090819020805460ff19168515151790557f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a5908590859051600160a060020a039092168252151560208201526040908101905180910390a1610d0a565b613ce733611290565b1515613cf257600080fd5b600160a060020a03331660009081526004602052604080822054600019019350369051808383808284378201915050925050506040519081900390206000818152600660205260409020549091501515613d795760028054600083815260056020526040902081905560018101613d698382614f56565b5060009182526020909120018190555b600081815260066020526040902054600283900a1615613d9857600080fd5b60008181526006602090815260408083208054600287900a1790556007909152812080546001019081905590541415610d0a57613dd481614afe565b60038054600160a060020a03191633600160a060020a0390811691909117909155841660009081526011602052604090819020805460ff19168515151790557f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a5908590859051600160a060020a039092168252151560208201526040908101905180910390a160038054600160a060020a031916905550505050565b6003546000908190819033600160a060020a0390811691161415614189576000855111613e9c57600080fd5b61010085511115613eac57600080fd5b60008411613eb957600080fd5b8451841115613ec757600080fd5b600092505b8451831015613f0c576000858481518110613ee357fe5b90602001906020020151600160a060020a03161415613f0157600080fd5b600190920191613ecc565b7fe62c04bb3499d4f432a50e07318d42861c4865afb22ee4cfe403d4f9455070906001866040518080602001806020018381038352858181548152602001915080548015613f8357602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311613f65575b5050838103825284818151815260200191508051906020019060200280838360005b83811015613fbd578082015183820152602001613fa5565b5050505090500194505050505060405180910390a1600092505b6001548310156140255760046000600185815481101515613ff457fe5b6000918252602080832090910154600160a060020a0316835282019290925260400181205560019290920191613fd7565b600092505b84518310156140b4576004600086858151811061404357fe5b90602001906020020151600160a060020a031681526020810191909152604001600020541561407157600080fd5b826001016004600087868151811061408557fe5b90602001906020020151600160a060020a0316815260208101919091526040016000205560019092019161402a565b60018580516140c7929160200190614fce565b50600084815592505b60025483101561417657600660006002858154811015156140ed57fe5b6000918252602080832090910154835282019290925260400181208190556002805460079291908690811061411e57fe5b6000918252602080832090910154835282019290925260400181208190556002805460059291908690811061414f57fe5b600091825260208083209091015483528201929092526040018120556001909201916140d0565b6000614183600282614f56565b50610ee7565b61419233611290565b151561419d57600080fd5b600160a060020a0333166000908152600460205260408082205460001901935036905180838380828437820191505092505050604051908190039020600081815260066020526040902054909150151561422457600280546000838152600560205260409020819055600181016142148382614f56565b5060009182526020909120018190555b600081815260066020526040902054600283900a161561424357600080fd5b60008181526006602090815260408083208054600287900a1790556007909152812080546001019081905590541415610ee75761427f81614afe565b60038054600160a060020a03191633600160a060020a031617905560008551116142a857600080fd5b610100855111156142b857600080fd5b600084116142c557600080fd5b84518411156142d357600080fd5b600092505b84518310156143185760008584815181106142ef57fe5b90602001906020020151600160a060020a0316141561430d57600080fd5b6001909201916142d8565b7fe62c04bb3499d4f432a50e07318d42861c4865afb22ee4cfe403d4f945507090600186604051808060200180602001838103835285818154815260200191508054801561438f57602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311614371575b5050838103825284818151815260200191508051906020019060200280838360005b838110156143c95780820151838201526020016143b1565b5050505090500194505050505060405180910390a1600092505b600154831015614431576004600060018581548110151561440057fe5b6000918252602080832090910154600160a060020a03168352820192909252604001812055600192909201916143e3565b600092505b84518310156144c0576004600086858151811061444f57fe5b90602001906020020151600160a060020a031681526020810191909152604001600020541561447d57600080fd5b826001016004600087868151811061449157fe5b90602001906020020151600160a060020a03168152602081019190915260400160002055600190920191614436565b60018580516144d3929160200190614fce565b50600084815592505b60025483101561458257600660006002858154811015156144f957fe5b6000918252602080832090910154835282019290925260400181208190556002805460079291908690811061452a57fe5b6000918252602080832090910154835282019290925260400181208190556002805460059291908690811061455b57fe5b600091825260208083209091015483528201929092526040018120556001909201916144dc565b600061458f600282614f56565b5060038054600160a060020a03191690555050505050565b6003546000908190819033600160a060020a039081169116141561461457600160a060020a03851660009081526012602052604081205463ffffffff16116145ee57600080fd5b600160a060020a0385166000908152601260205260409020600781018590559250610ee7565b61461d33611290565b151561462857600080fd5b600160a060020a033316600090815260046020526040808220546000190193503690518083838082843782019150509250505060405190819003902060008181526006602052604090205490915015156146af576002805460008381526005602052604090208190556001810161469f8382614f56565b5060009182526020909120018190555b600081815260066020526040902054600283900a16156146ce57600080fd5b60008181526006602090815260408083208054600287900a1790556007909152812080546001019081905590541415610ee75761470a81614afe565b60038054600160a060020a03191633600160a060020a0390811691909117909155851660009081526012602052604081205463ffffffff161161474c57600080fd5b505050600160a060020a039190911660009081526012602052604090206007015560038054600160a060020a0319169055565b600354600090819033600160a060020a03908116911614156147cd576010805474ffffffffffffffffffffffffffffffffffffffff001916610100600160a060020a0386160217905561253d565b6147d633611290565b15156147e157600080fd5b600160a060020a0333166000908152600460205260408082205460001901935036905180838380828437820191505092505050604051908190039020600081815260066020526040902054909150151561486857600280546000838152600560205260409020819055600181016148588382614f56565b5060009182526020909120018190555b600081815260066020526040902054600283900a161561488757600080fd5b60008181526006602090815260408083208054600287900a179055600790915281208054600101908190559054141561253d576148c381614afe565b6003805460108054600160a060020a038781166101000274ffffffffffffffffffffffffffffffffffffffff0019909216919091179091553316600160a060020a031991821617169055505050565b6003546000908190819033600160a060020a039081169116141561497f57600160a060020a03851660009081526012602052604081205463ffffffff161161495957600080fd5b600160a060020a0385166000908152601260205260409020600481018590559250610ee7565b61498833611290565b151561499357600080fd5b600160a060020a03331660009081526004602052604080822054600019019350369051808383808284378201915050925050506040519081900390206000818152600660205260409020549091501515614a1a5760028054600083815260056020526040902081905560018101614a0a8382614f56565b5060009182526020909120018190555b600081815260066020526040902054600283900a1615614a3957600080fd5b60008181526006602090815260408083208054600287900a1790556007909152812080546001019081905590541415610ee757614a7581614afe565b60038054600160a060020a03191633600160a060020a0390811691909117909155851660009081526012602052604081205463ffffffff1611614ab757600080fd5b505050600160a060020a039190911660009081526012602052604090206004015560038054600160a060020a0319169055565b6010546101009004600160a060020a031681565b6000818152600560205260409020546002546001901115614b8657600280546000198101908110614b2b57fe5b906000526020600020900154600282815481101515614b4657fe5b6000918252602082200191909155600280548392600592909184908110614b6957fe5b600091825260208083209091015483528201929092526040019020555b6002805490614b99906000198301614f56565b50506000908152600660209081526040808320839055600782528083208390556005909152812055565b6000600160a060020a0383161515614bda57600080fd5b600160a060020a0384166000908152600c602052604090205482901015614c0057600080fd5b600160a060020a0383166000908152600c602052604090205482810111614c2657600080fd5b600160a060020a03841660009081526011602052604090205460ff1615614c4c57600080fd5b600160a060020a03831660009081526011602052604090205460ff1615614c7257600080fd5b50600160a060020a038083166000908152600c60205260408082205486841683529120546010549101916101009091041615614db257601054600160a060020a03610100918290041690637a4fb678906001906040519081016040908152600160a060020a03808a1680845290891660208085018290528385018a90526000928352600c8082528484205460608701529183525281812054608084015260a0830181905260c0830181905260e08301819052905161010001526040518363ffffffff1660e060020a028152600401808360ff16815260200182600860200280838360005b83811015614d6e578082015183820152602001614d56565b505050509050019250505061010060405180830381600087803b1515614d9357600080fd5b6102c65a03f11515614da457600080fd5b505050604051610100016040525b600160a060020a038085166000818152600c60205260408082208054879003905592861680825290839020805486019055916000805160206150748339815191529085905190815260200160405180910390a3600160a060020a038084166000908152600c6020526040808220549287168252902054018114614e3157fe5b6010546101009004600160a060020a031615610d0a57601054600160a060020a03610100918290041690637a4fb678906002906040519081016040908152600160a060020a03808a1680845290891660208085018290528385018a90526000928352600c8082528484205460608701529183525281812054608084015260a0830181905260c0830181905260e08301819052905161010001526040518363ffffffff1660e060020a028152600401808360ff16815260200182600860200280838360005b83811015614f0d578082015183820152602001614ef5565b505050509050019250505061010060405180830381600087803b1515614f3257600080fd5b6102c65a03f11515614f4357600080fd5b5050506040516101000160405250505050565b81548183558181151161253d5760008381526020902061253d918101908301615035565b6101406040519081016040908152600080835260208301819052908201819052606082018190526080820181905260a0820181905260c0820181905260e08201819052610100820181905261012082015290565b828054828255906000526020600020908101928215615025579160200282015b828111156150255782518254600160a060020a031916600160a060020a039190911617825560209290920191600190910190614fee565b5061503192915061504f565b5090565b6111ac91905b80821115615031576000815560010161503b565b6111ac91905b80821115615031578054600160a060020a03191681556001016150555600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582062fbd8c381bb81890396f0aebea60d11cbad9fc9f87f6600d6590023a3129c560029000000000000000000000000000000000000000000000000000000000c845880000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000950454c4f20436f696e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000450454c4f00000000000000000000000000000000000000000000000000000000

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

000000000000000000000000000000000000000000000000000000000c845880000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000950454c4f20436f696e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000450454c4f00000000000000000000000000000000000000000000000000000000

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 000000000000000000000000000000000000000000000000000000000c845880
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [2] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000009
Arg [4] : 50454c4f20436f696e0000000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [6] : 50454c4f00000000000000000000000000000000000000000000000000000000

Swarm Source

bzzr://62fbd8c381bb81890396f0aebea60d11cbad9fc9f87f6600d6590023a3129c56
Block Age Transaction Difficulty GasUsed Reward
Block Age Uncle Number Difficulty GasUsed Reward
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.