ETH Price: $2,492.81 (-1.04%)

Token

Cajutel (CAJ)
 

Overview

Max Total Supply

1,780,000 CAJ

Holders

2,421

Market

Price

$0.61 @ 0.000244 ETH (+17.25%)

Onchain Market Cap

$1,084,361.76

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.000000000000000002 CAJ

Value
$0.00 ( ~0 Eth) [0.0000%]
0x1938b42fede0702734c365a1bfce206dea264d40
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Solar powered high speed internet for West Africa

Market

Volume (24H):$90,677.00
Market Capitalization:$0.00
Circulating Supply:0.00 CAJ
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Cajutel

Compiler Version
v0.4.15+commit.bbb8e64f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2017-12-14
*/

pragma solidity 0.4.15;

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

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

    function sub(uint256 a, uint256 b) internal constant returns (uint256) {
        assert(b <= a);
        return a - b;
    }

    function add(uint256 a, uint256 b) internal constant returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
}

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

    address public newOwner;

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

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

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

    }

    function acceptOwnership() public {
        if (msg.sender == newOwner) {
            owner = newOwner;
        }
    }
}

contract ERC20 is Ownable {
    using SafeMath for uint256;

    /* Public variables of the token */
    string public standard;

    string public name;

    string public symbol;

    uint8 public decimals;

    uint256 public totalSupply;

    bool public locked;

    uint256 public creationBlock;

    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);

    modifier onlyPayloadSize(uint numwords) {
        assert(msg.data.length == numwords * 32 + 4);
        _;
    }

    /* Initializes contract with initial supply tokens to the creator of the contract */
    function ERC20(
        uint256 _totalSupply,
        string tokenName,
        uint8 decimalUnits,
        string tokenSymbol,
        bool transferAllSupplyToOwner,
        bool _locked
    ) public {
        standard = "ERC20 0.1";

        totalSupply = _totalSupply;

        if (transferAllSupplyToOwner) {
            setBalance(msg.sender, totalSupply);

            Transfer(0, msg.sender, totalSupply);
        } else {
            setBalance(this, totalSupply);

            Transfer(0, this, totalSupply);
        }

        name = tokenName;
        // Set the name for display purposes
        symbol = tokenSymbol;
        // Set the symbol for display purposes
        decimals = decimalUnits;
        // Amount of decimals for display purposes
        locked = _locked;
        creationBlock = block.number;
    }

    function transfer(address _to, uint256 _value) public onlyPayloadSize(2) {
        require(locked == false);

        bool status = transferInternal(msg.sender, _to, _value);

        require(status == true);
    }

    function approve(address _spender, uint256 _value) public returns (bool success) {
        if (locked) {
            return false;
        }

        allowance[msg.sender][_spender] = _value;

        return true;
    }

    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {
        if (locked) {
            return false;
        }

        if (allowance[_from][msg.sender] < _value) {
            return false;
        }

        bool _success = transferInternal(_from, _to, _value);

        if (_success) {
            allowance[_from][msg.sender] -= _value;
        }

        return _success;
    }
    /* internal balances */

    function setBalance(address holder, uint256 amount) internal {
        balanceOf[holder] = amount;
    }

    function transferInternal(address _from, address _to, uint256 value) internal returns (bool success) {
        if (value == 0) {
            return false;
        }

        if (balanceOf[_from] < value) {
            return false;
        }

        setBalance(_from, balanceOf[_from].sub(value));
        setBalance(_to, balanceOf[_to].add(value));

        Transfer(_from, _to, value);

        return true;
    }
}

contract LoggedERC20 is ERC20 {
    /* Structures */
    struct LogValueBlock {
        uint256 value;
        uint256 block;
    }

    LogValueBlock[] public loggedTotalSupply;

    /* This creates an array with all balances */
    mapping (address => LogValueBlock[]) public loggedBalances;

    /* Initializes contract with initial supply tokens to the creator of the contract */
    function LoggedERC20(
        uint256 initialSupply,
        string tokenName,
        uint8 decimalUnits,
        string tokenSymbol,
        bool transferAllSupplyToOwner,
        bool _locked
    )	public
        ERC20(initialSupply, tokenName, decimalUnits, tokenSymbol, transferAllSupplyToOwner, _locked)
    {
        standard = "LogValueBlockToken 0.1";
    }

    function valueAt(LogValueBlock[] storage valueBlocks, uint256 _block) internal returns (uint256) {
        if (valueBlocks.length == 0) {
            return 0;
        }

        if (valueBlocks[0].block > _block) {
            return 0;
        }

        if (valueBlocks[valueBlocks.length.sub(1)].block <= _block) {
            return valueBlocks[valueBlocks.length.sub(1)].value;
        }

        uint256 first = 0;
        uint256 last = valueBlocks.length.sub(1);

        uint256 middle = (first.add(last).add(1)).div(2);

        while (last > first) {
            if (valueBlocks[middle].block <= _block) {
                first = middle;
            } else {
                last = middle.sub(1);
            }

            middle = (first.add(last).add(1)).div(2);
        }

        return valueBlocks[first].value;
    }

    function setBalance(address _address, uint256 value) internal {
        loggedBalances[_address].push(LogValueBlock(value, block.number));

        balanceOf[_address] = value;
    }
}

contract LoggedDividend is Ownable, LoggedERC20 {
    /* Structs */
    struct Dividend {
        uint256 id;

        uint256 block;
        uint256 time;
        uint256 amount;

        uint256 claimedAmount;
        uint256 transferedBack;

        uint256 totalSupply;
        uint256 recycleTime;

        bool recycled;

        mapping (address => bool) claimed;
    }

    /* variables */
    Dividend[] public dividends;

    mapping (address => uint256) dividendsClaimed;

    /* Events */
    event DividendTransfered(
        uint256 id,
        address indexed _address,
        uint256 _block,
        uint256 _amount,
        uint256 _totalSupply
    );

    event DividendClaimed(uint256 id, address indexed _address, uint256 _claim);

    event UnclaimedDividendTransfer(uint256 id, uint256 _value);

    event DividendRecycled(
        uint256 id,
        address indexed _recycler,
        uint256 _blockNumber,
        uint256 _amount,
        uint256 _totalSupply
    );
    
    function LoggedDividend(
        uint256 initialSupply,
        string tokenName,
        uint8 decimalUnits,
        string tokenSymbol,
        bool transferAllSupplyToOwner,
        bool _locked
    ) 
		public
		LoggedERC20(initialSupply, tokenName, decimalUnits, tokenSymbol, transferAllSupplyToOwner, _locked) {
        
    }

    function addDividend(uint256 recycleTime) public payable onlyOwner {
        require(msg.value > 0);

        uint256 id = dividends.length;
        uint256 _totalSupply = totalSupply;

        dividends.push(
            Dividend(
                id,
                block.number,
                now,
                msg.value,
                0,
                0,
                _totalSupply,
                recycleTime,
                false
            )
        );

        DividendTransfered(id, msg.sender, block.number, msg.value, _totalSupply);
    }

    function claimDividend(uint256 dividendId) public returns (bool) {
        if ((dividends.length).sub(1) < dividendId) {
            return false;
        }

        Dividend storage dividend = dividends[dividendId];

        if (dividend.claimed[msg.sender] == true) {
            return false;
        }

        if (dividend.recycled == true) {
            return false;
        }

        if (now >= dividend.time.add(dividend.recycleTime)) {
            return false;
        }

        uint256 balance = valueAt(loggedBalances[msg.sender], dividend.block);

        if (balance == 0) {
            return false;
        }

        uint256 claim = balance.mul(dividend.amount).div(dividend.totalSupply);

        dividend.claimed[msg.sender] = true;

        dividend.claimedAmount = dividend.claimedAmount.add(claim);

        if (claim > 0) {
            msg.sender.transfer(claim);
            DividendClaimed(dividendId, msg.sender, claim);

            return true;
        }

        return false;
    }

    function claimDividends() public {
        require(dividendsClaimed[msg.sender] < dividends.length);
        for (uint i = dividendsClaimed[msg.sender]; i < dividends.length; i++) {
            if ((dividends[i].claimed[msg.sender] == false) && (dividends[i].recycled == false)) {
                dividendsClaimed[msg.sender] = i.add(1);
                claimDividend(i);
            }
        }
    }

    function recycleDividend(uint256 dividendId) public onlyOwner returns (bool success) {
        if (dividends.length.sub(1) < dividendId) {
            return false;
        }

        Dividend storage dividend = dividends[dividendId];

        if (dividend.recycled) {
            return false;
        }

        dividend.recycled = true;

        return true;
    }

    function refundUnclaimedEthers(uint256 dividendId) public onlyOwner returns (bool success) {
        if ((dividends.length).sub(1) < dividendId) {
            return false;
        }

        Dividend storage dividend = dividends[dividendId];

        if (dividend.recycled == false) {
            if (now < (dividend.time).add(dividend.recycleTime)) {
                return false;
            }
        }

        uint256 claimedBackAmount = (dividend.amount).sub(dividend.claimedAmount);

        dividend.transferedBack = claimedBackAmount;

        if (claimedBackAmount > 0) {
            owner.transfer(claimedBackAmount);

            UnclaimedDividendTransfer(dividendId, claimedBackAmount);

            return true;
        }

        return false;
    }
}

contract PhaseICO is LoggedDividend {
    uint256 public icoSince;
    uint256 public icoTill;

    uint256 public collectedEthers;

    Phase[] public phases;

    struct Phase {
        uint256 price;
        uint256 maxAmount;
    }
    
    function PhaseICO(
        uint256 _icoSince,
        uint256 _icoTill,
        uint256 initialSupply,
        string tokenName,
        string tokenSymbol,
        uint8 precision,
        bool transferAllSupplyToOwner,
        bool _locked
    ) 
		public
		LoggedDividend(initialSupply, tokenName, precision, tokenSymbol, transferAllSupplyToOwner, _locked) {
        standard = "PhaseICO 0.1";

        icoSince = _icoSince;
        icoTill = _icoTill;
    }

    function() public payable {
        bool status = buy(msg.sender, now, msg.value);

        require(status == true);
    }

    function getIcoTokensAmount(uint256 _collectedEthers, uint256 value) public  constant returns (uint256) {
        uint256 amount;

        uint256 newCollectedEthers = _collectedEthers;
        uint256 remainingValue = value;
        
        for (uint i = 0; i < phases.length; i++) {
            Phase storage phase = phases[i];

            if (phase.maxAmount > newCollectedEthers) {
                if (newCollectedEthers.add(remainingValue) > phase.maxAmount) {
                    uint256 diff = phase.maxAmount.sub(newCollectedEthers);

                    amount = amount.add(diff.mul(1 ether).div(phase.price));

                    remainingValue = remainingValue.sub(diff);
                    newCollectedEthers = newCollectedEthers.add(diff);
                } else {
                    amount += remainingValue * 1 ether / phase.price;

                    newCollectedEthers += remainingValue;

                    remainingValue = 0;
                }
            }

            if (remainingValue == 0) {
                break;
            }
        }
        
        if (remainingValue > 0) {
            return 0;
        }

        return amount;
    }

    function buy(address _address, uint256 time, uint256 value) internal returns (bool) {
        if (locked == true) {
            return false;
        }

        if (time < icoSince || time > icoTill) {
            return false;
        }

        if (value == 0) {
            return false;
        }

        uint256 amount = getIcoTokensAmount(collectedEthers, value);

        if (amount == 0) {
            return false;
        }

        uint256 selfBalance = valueAt(loggedBalances[this], block.number);
        uint256 holderBalance = valueAt(loggedBalances[_address], block.number);

        if (selfBalance < amount) {
            return false;
        }

        setBalance(_address, holderBalance.add(amount));
        setBalance(this, selfBalance.sub(amount));

        collectedEthers = collectedEthers.add(value);

        Transfer(this, _address, amount);

        return true;
    }
}

contract Cajutel is PhaseICO {

    address public migrateAddress;

    modifier onlyMigrate() {
        require(migrateAddress == msg.sender);
        _;
    }

    function Cajutel(
        uint256 initialSupply,
        string tokenName,
        string tokenSymbol,
        uint256 icoSince,
        uint256 icoTill
    ) PhaseICO(icoSince, icoTill, initialSupply, tokenName, tokenSymbol, 18, false, false) {
        standard = "Cajutel 0.1";

        phases.push(Phase(0.05 ether, 500 ether));
        phases.push(Phase(0.075 ether, 750 ether + 500 ether));
        phases.push(Phase(0.1 ether, 10000 ether + 750 ether + 500 ether));
        phases.push(Phase(0.15 ether, 30000 ether + 10000 ether + 750 ether + 500 ether));
        phases.push(Phase(0.2 ether, 80000 ether + 30000 ether + 10000 ether + 750 ether + 500 ether));
    
    }

    /* public methods */
    function setMigrateAddress(address _address) public onlyOwner {
        migrateAddress = _address;
    }

    function transferEthers() public onlyOwner {
        owner.transfer(this.balance);
    }

    function setLocked(bool _locked) public onlyOwner {
        locked = _locked;
    }

    function setIcoDates(uint256 _icoSince, uint256 _icoTill) public onlyOwner {
        icoSince = _icoSince;
        icoTill = _icoTill;
    }

    function setMigratedBalance(address _holderAddress, uint256 _value) public onlyMigrate {
        require(balanceOf[this].sub(_value) >= 0);
        setBalance(_holderAddress, _value);
        setBalance(this, balanceOf[this].sub(_value));
        Transfer(this, _holderAddress, _value);
    }
}

contract MigrateBalances is Ownable {

    Balance[] public balances;

    bool public balancesSet;

    struct Balance {
        address holderAddress;
        uint256 amount;
        bool migrated;
    }

    Cajutel public newCajutel;

    function MigrateBalances(address _newCajutel) public {
        require(_newCajutel != address(0));
        newCajutel = Cajutel(_newCajutel);


    }
    // 0-82
    //  1 function
    function setBalances() public onlyOwner {
        require(false == balancesSet);
        balancesSet = true;
        balances.push(Balance(0x15d9250358489Ceb509121963Ff80e747c7F981f, 900246000000000000000000, false));
        balances.push(Balance(0x21C5DfD6FccA838634D0039c9B15B7bA57Bd6298, 100000000000000000000000, false));
        balances.push(Balance(0x716134814fD704C3b7C2d829068d70962D942FdA, 49888300000000000000000, false));
        balances.push(Balance(0xb719f3A03293A71fB840b1e32C79EE6885A9C771, 8290600000000000000000, false));
        balances.push(Balance(0x9e1F7671149a6888DCf3882c6Ab1408aBdE6E102, 3000000000000000000000, false));
        balances.push(Balance(0xAF691ED473eBE4fbF90A7Ceaf0E29b2D82c293fC, 2000000000000000000000, false));
        balances.push(Balance(0x255e1dAB5bA7c575951E12286f7c3B6714CFeE92, 1000000000000000000000, false));
        balances.push(Balance(0x8d12A197cB00D4747a1fe03395095ce2A5CC6819, 1000000000000000000000, false));
        balances.push(Balance(0xBcEa2d09C05691B0797DeD95D07836aD5551Cb78, 500000000000000000000, false));
        balances.push(Balance(0x6270e2C43d89AcED92955b6D47b455627Ba75B57, 380000000000000000000, false));
        balances.push(Balance(0x2321A30FF9dFD1edE3718b11a2C74118Eb673f75, 200000000000000000000, false));
        balances.push(Balance(0x9BE1c7a1F118F61740f01e96d292c0bae90360aB, 171000000000000000000, false));
        balances.push(Balance(0x390bef0e73e51C4daaF70fDA390fa8da6EA07D88, 145000000000000000000, false));
        balances.push(Balance(0xA79dfeaE0D50d723fc333995C664Fcf3Ca8d7455, 113000000000000000000, false));
        balances.push(Balance(0x4aB7dA32F383e618522eD9724b1c19C63d409FbE, 111625924457445000000, false));
        balances.push(Balance(0xb00D6EDDF69dCcE079bd615196967CE596661951, 108000000000000000000, false));
        balances.push(Balance(0x9c60b97Cb5A10182fd69B5D022A75F1A74e598cF, 102359033442992000000, false));
        balances.push(Balance(0xbCf6e1fa53243f319788E63E91F89e9A43F5D8B4, 100000000000000000000, false));
        balances.push(Balance(0x5870d3b1e32721cAB6804e6497092f0f38804f14, 100000000000000000000, false));
        balances.push(Balance(0x00BC7d1910Bc4424AEd7EDDF5E5a008931625C28, 100000000000000000000, false));
        balances.push(Balance(0xcbFb05E6Ff8054663959dFD842f80BDAC06B40D7, 99000000000000000000, false));
        balances.push(Balance(0xFdF758e6c2dE14a056d96B06f2c55333FBB089c8, 80000000000000000000, false));
        balances.push(Balance(0xcE735a5c6FEB88DD7D13b5Faa7c27894eb4E5AE0, 80000000000000000000, false));
        balances.push(Balance(0x3B1D9FD8862AED71BC56fffE45a74F110ee4bB30, 76324349107581500000, false));
        balances.push(Balance(0xD649F8260C194bBC02302c6360398678482B484A, 76000000000000000000, false));
        balances.push(Balance(0xc3e53F02FEcdB6D1EfeDAA4e5bb504b74EDbDc2B, 64000000000000000000, false));
        balances.push(Balance(0x74a6Fd23EFEABd5C1ec6DB56A012124Bb8096326, 60000000000000000000, false));
        balances.push(Balance(0x15AD355116A4Ce684B26f67A9458924976a3A895, 60000000000000000000, false));
        balances.push(Balance(0x7B120968eEdd48865CA44b913A2437B876f5e295, 60000000000000000000, false));
        balances.push(Balance(0x4ECABB300a16Ec35AF215BDA39637F9993A3c7Ac, 58666666666666700000, false));
        balances.push(Balance(0x807D077060A71b9d84A6a53a67369177BdFc61DD, 52292213506666700000, false));
        balances.push(Balance(0x6D8864eEB5e292e49F9E65276296691f935d93F8, 51986666666666600000, false));
        balances.push(Balance(0x404C0d6424EF6A07843dF75fdeE528918387ca05, 50000000000000000000, false));
        balances.push(Balance(0x7D8679e2681B69F73D87DB4CD72477738D9CDB28, 50000000000000000000, false));
        balances.push(Balance(0x57B734d29122882570Ee2FcBD75F6c438CBD1c5F, 49078842800000000000, false));
        balances.push(Balance(0xf818d8a6588fdc5eF13c62D63Adb477f242F2225, 48000000000000000000, false));
        balances.push(Balance(0x3AA5F7CfeAc40495C8e89551B716DEa4a61BB6C1, 45200000000000000000, false));
        balances.push(Balance(0x70057E29C1c1166EB4f5625DDCf2AAC3AffAC682, 41666666666666700000, false));
        balances.push(Balance(0x623B56D702468AA253cF81383765A510998b3A3F, 41400000000000000000, false));
        balances.push(Balance(0xc2Fe74A950b7b657ddB8D23B143e02CB2806EC8D, 41000000000000000000, false));
        balances.push(Balance(0x433D67a103661159d6867e96867c18D2292B093B, 40060026820483100000, false));
        balances.push(Balance(0xeE526282ad8Ab39a43F3202DBBA380762A92667E, 40000000000000000000, false));
        balances.push(Balance(0xdbf9d1127AD20B14Df8f5b19719831bF0496d443, 40000000000000000000, false));
        balances.push(Balance(0xDBADecbb2e5d5e70a488830296a8918920a4D41F, 40000000000000000000, false));
        balances.push(Balance(0x82d2Edb5024A255bFdbCE618E7f341D1DEe14a4B, 40000000000000000000, false));
        balances.push(Balance(0x8cF84382DB1Ccf1ed1b32c0187db644b35cbc299, 40000000000000000000, false));
        balances.push(Balance(0x68C9D9912cd56E415Bfd3A31651f98006F89b410, 38666666666666700000, false));
        balances.push(Balance(0x0e9691088A658DDF416DB57d02ad7DeF173ef74C, 38000000000000000000, false));
        balances.push(Balance(0x078cfD085962f8dB8B3eaD10Ce9009f366CF51d8, 37000000000000000000, false));
        balances.push(Balance(0xe553D979278bDBc0927c1667C2314A5446315be8, 35000000000000000000, false));
        balances.push(Balance(0xa1D6A35d3B13Cca6d56cB7D07Da9a89F4c3C0C4a, 35000000000000000000, false));
        balances.push(Balance(0x5BE78822bb773112969Aac90BBfc837fAE8D2ac7, 32600000000000000000, false));
        balances.push(Balance(0x3e9719f94F7BFBcDD2F1D66a18236D942fF4a087, 30082572981493200000, false));
        balances.push(Balance(0xea9C95FB771De9e1E19aA25cA2E190aE96466CDD, 30000000000000000000, false));
        balances.push(Balance(0xfFFd54E22263F13447032E3941729884e03F4d58, 29280000000000000000, false));
        balances.push(Balance(0xC5E522c2aAbAcf8182EA97277f60Ef9E6787f03d, 29000000000000000000, false));
        balances.push(Balance(0x5105BA072ADCe7D7F993Eec00a1deEA82015422f, 27000000000000000000, false));
        balances.push(Balance(0xb7A4E02F126fbD35e9365a4D51c414697DceF063, 26666666666666700000, false));
        balances.push(Balance(0x909B749D2330c3b374FcDb4B9B599942583F4E1E, 26666666666666600000, false));
        balances.push(Balance(0x8FddF2D321A5F6d3DAc50c3Cfe0b773e78BBe79D, 26400000000000000000, false));
        balances.push(Balance(0xbFA4fA007b5B0C946e740334A4Ff7d977244e705, 26000000000000000000, false));
        balances.push(Balance(0x802e2a1CfdA97311009D9b0CC253CfB7f824c40c, 25333333333333300000, false));
        balances.push(Balance(0x5d8d29BEFe9eB053aF67D776b7E3cECdA07A9E10, 25000000000000000000, false));
        balances.push(Balance(0x51908426DE197677a73963581952dFf87E825480, 24000000000000000000, false));
        balances.push(Balance(0x893b6CF80B613A394220BEBe01Cd4C616470B0C7, 24000000000000000000, false));
        balances.push(Balance(0xC08A6c874E43B4AA42DE6591E8be593f2557fF8C, 23700000000000000000, false));
        balances.push(Balance(0xFD2CF1F76a931D441F67fB73D05E211E89b0d9C7, 22000000000000000000, false));
        balances.push(Balance(0xF828be1B6e274FfB28E1Ea948cBde24efE8948e9, 22000000000000000000, false));
        balances.push(Balance(0x8ecDd5B4bD04d3b33B6591D9083AFAA6EBf9171b, 20800000000000000000, false));
        balances.push(Balance(0x19d51226d74fbe6367601039235598745EC2907c, 20181333333333300000, false));
        balances.push(Balance(0xfC73413D8dCc28D271cdE376835EdF6690Fa91a8, 20000000000000000000, false));
        balances.push(Balance(0xD24D4B5f7Ea0ECF4664FE3E5efF357E4abAe9faA, 20000000000000000000, false));
        balances.push(Balance(0xC9e29bacE9f74baFff77919A803852C553BC89E5, 20000000000000000000, false));
        balances.push(Balance(0xbEADCd526616ffBF31A613Ca95AC0F665986C90A, 20000000000000000000, false));
        balances.push(Balance(0xa88c9a308B920090427B8814ae0E79ce294B2F6F, 20000000000000000000, false));
        balances.push(Balance(0x8630F7577dd24afD574f6ddB4A4c640d2abae482, 20000000000000000000, false));
        balances.push(Balance(0x787e6870754Cc306C1758db62DC6Cd334bA76345, 20000000000000000000, false));
        balances.push(Balance(0x146cA2f2b923517EabE39367B9bAb530ab6114B6, 20000000000000000000, false));
        balances.push(Balance(0x7Ff7c0630227442C1428d55aDca6A722e442c364, 20000000000000000000, false));
        balances.push(Balance(0x00CfbBb1609C6F183a4bc7061fA72c09F62d7691, 20000000000000000000, false));
        balances.push(Balance(0x1ABfAB721Ff6317F8bD3bc3BCDAED8F794B4b03e, 19800000000000000000, false));
        balances.push(Balance(0xC4f4361035d7E646E09F910e94a5D9F200D697d1, 19773874840000000000, false));
        balances.push(Balance(0x4AB9fC8553793cedC64b9562F41701eBF49d7Bb8, 19000000000000000000, false));
    }
    /*
        // 0-82
        //  2 function
        function setBalances() public onlyOwner {
            require(false == balancesSet);
            balancesSet = true;
            balances.push(Balance(0x2E7C4Eeffe28577752BeD70Afc7f947c47f2328b, 18400000000000000000, false));
            balances.push(Balance(0xD5C04965bc6bbED679f5FC0f0a26c28065fD8F9B, 18266666666666600000, false));
            balances.push(Balance(0x902B340Bba04327be29750AFA2cD1439E6D83a66, 18027999999999900000, false));
            balances.push(Balance(0x1Be09cAB2460e60b3A04F681C80c98FFA10623Bb, 18000000000000000000, false));
            balances.push(Balance(0xC885Bc9707B3634c2456000DFa5156c8D9A325A8, 17136353173333300000, false));
            balances.push(Balance(0xd62ef0997700d3a8f1f803f3e33B9E2398975c24, 17000000000000000000, false));
            balances.push(Balance(0x43A3Ba1EE0481252071ECAf83c0FA1a05b0fA80d, 17000000000000000000, false));
            balances.push(Balance(0x8dE91C8F86c74b5dDf5cD39153cB323329533A66, 16510128700706000000, false));
            balances.push(Balance(0x55E6ac8f44240379e7FD86E74fC7f7fD1925D877, 15733333333333300000, false));
            balances.push(Balance(0x9FAb44AAd10922100B5e4Ea6e347C01bC4A6e82f, 15000000000000000000, false));
            balances.push(Balance(0x6F45cf56760ED1A988d7D845687AdB01D6C42E86, 15000000000000000000, false));
            balances.push(Balance(0x1E8401E810236F08756868CE8b8bB6bF5Faf6F14, 15000000000000000000, false));
            balances.push(Balance(0xd1fd8a89ED8ce301A8058a9027110E0B3c204607, 14961634413333300000, false));
            balances.push(Balance(0x1b48c80B8BBD5Cb2a6dFfe0b0f73fEffeD85d287, 14875815053333300000, false));
            balances.push(Balance(0xcd71468FD73f68C3A519Dbab7cc745Aa61C8aEE9, 14666666666666600000, false));
            balances.push(Balance(0x5FAdadDA4b539BE9Ab11DA615264fe22a5BCbC9e, 14666666666666600000, false));
            balances.push(Balance(0x2E5F427293CD42a967C4A29809FaFCc526991977, 14533333333333300000, false));
            balances.push(Balance(0x5e029DEC60b608FdA9097D6A302a04F80EC6F082, 13400000000000000000, false));
            balances.push(Balance(0xfF383360Ab9a6112bee27e2D968877b5B206922a, 13333333333333300000, false));
            balances.push(Balance(0xFd21d911492889277C253Bc9Bd6B91BeC0d6a06B, 13333333333333300000, false));
            balances.push(Balance(0xF0D11121Ba96b5a44d6b25Aca5d84e70235510a1, 13333333333333300000, false));
            balances.push(Balance(0xAeEAAa501F50D217dcf2e65a044095E3e5b8b60E, 13333333333333300000, false));
            balances.push(Balance(0x22e627A19016F0a10226997F5961e79a3E400824, 13333333333333300000, false));
            balances.push(Balance(0x11f50fdFBB7B58558Af2628d4E0086B10ad6d2F4, 13333333333333300000, false));
            balances.push(Balance(0x3c1Affc2f98Fee9a919Fd9EF4BDC6B334Cf4d971, 13267234778933300000, false));
            balances.push(Balance(0xa5F7087a0c3164DdC4e4AcfBf2771aCdDbC23923, 13200000000000000000, false));
            balances.push(Balance(0x73A1e0e35BEe4F778Eea32db1982F62A8a3Ea7b7, 13173333333333300000, false));
            balances.push(Balance(0x691d3e097D9fcA5388771EcB5eC31a18dF6D7699, 12286799893333300000, false));
            balances.push(Balance(0xC04B58Ebb894E67c84bdE0d99dC2Ab150DAAD9B9, 12000000000000000000, false));
            balances.push(Balance(0x7Fe3239b89A39212ca944118c2f2E3d8B513d369, 12000000000000000000, false));
            balances.push(Balance(0x3ebeCe83E121086307cAD746E5C8e685B7f97f07, 12000000000000000000, false));
            balances.push(Balance(0x0d32975dF4F220f43DB58787F9c7416eb8D25531, 12000000000000000000, false));
            balances.push(Balance(0x92C5E9E40D2F4706fE40aC9E5d1a237C9e9b33d9, 11800000000000000000, false));
            balances.push(Balance(0x7eD1E469fCb3EE19C0366D829e291451bE638E59, 11782517834753000000, false));
            balances.push(Balance(0x4feF09dD155627CB5cAC5e339175C1c8E01446Da, 11518665901333300000, false));
            balances.push(Balance(0x5Ee5B9B4D4ED0C98fB96b54B4e4EDe7fa9ec505D, 11400000000000000000, false));
            balances.push(Balance(0xD421b473d29438fEff49aFAE6d71d7b33f40aa1F, 11333333333333300000, false));
            balances.push(Balance(0xe99C2E8552C9272e0665735Bd49E918D6359D81c, 11000000000000000000, false));
            balances.push(Balance(0xa7608a906aB12421Bfc28d8c0B19b47132Ee6a49, 10582756106666600000, false));
            balances.push(Balance(0x0f235e81D55372Bd50a12a6D67790fbc355774A2, 10133333333333300000, false));
            balances.push(Balance(0xE99Fd2ae593C26e9D6B82123833178eC8934bDf8, 10000000000000000000, false));
            balances.push(Balance(0xdC7e911178BBBdBB32c29fcAf8Fd01D611049371, 10000000000000000000, false));
            balances.push(Balance(0xd5c10eD5e93Bd7411cE9E5939E47a8c2A35bE703, 10000000000000000000, false));
            balances.push(Balance(0xACE457acDAC762E266284B2d8009eD5329929f13, 10000000000000000000, false));
            balances.push(Balance(0xa5a03220f753D0153330b70870dF298d0dF2DEaD, 10000000000000000000, false));
            balances.push(Balance(0x545edd24149bEDf3E1F9da318A919334182C3338, 10000000000000000000, false));
            balances.push(Balance(0x27F8d64A716a82132B21bFeEA122674A6F238E85, 10000000000000000000, false));
            balances.push(Balance(0x14e359817845Cf8167b58F9aBd2a8c50A1d90859, 10000000000000000000, false));
            balances.push(Balance(0x8bEFC3c5940Cf146d066810cf17C6D28f9141BEe, 10000000000000000000, false));
            balances.push(Balance(0x8A11D3d03629fBd5cAE5f8Ef0743BaE86868d040, 10000000000000000000, false));
            balances.push(Balance(0x6f81097A3584646ed9E75A60CCCD76AB76A8A97E, 10000000000000000000, false));
            balances.push(Balance(0x5BDc4BDCF5Dc447D01d0DF474D0D192a620068d2, 9654511980000000000, false));
            balances.push(Balance(0x5478423C0177C910DDea3e9Bc15C534009ef400F, 9491436740000000000, false));
            balances.push(Balance(0xFBB1ca1C13d78a9940Fe3c907039D7dD5B6fe383, 9000000000000000000, false));
            balances.push(Balance(0x0697F258FE4B0Fc4998c5CC1A04E5099b3423da2, 9000000000000000000, false));
            balances.push(Balance(0x10C7794aC7b7826743DC6A24CAAbCeDd29D63875, 9000000000000000000, false));
            balances.push(Balance(0xF77c1683B1E190c96247D981F445CA1c3C3785C4, 8666666666666670000, false));
            balances.push(Balance(0xf7b3c582E4CA9BFe54a617520840Ec5A95efa0A4, 8620106666666660000, false));
            balances.push(Balance(0xF234d0fe4197D5Fa698B778f04e5C9E4417E6717, 8333333333333330000, false));
            balances.push(Balance(0x8C7BD48e7721F9d4E2bB43dac7d1e0DF748366d8, 8319831560000000000, false));
            balances.push(Balance(0xA0Fea79Cb49C391EAc284bf2CEC7BE4f3c3Ca689, 8280354240000000000, false));
            balances.push(Balance(0xe80CcC716aC60d0FEc87e72C3d3946C893065bBd, 8000000000000000000, false));
            balances.push(Balance(0xA5B4fC1aF71356f2a6de00175FDE5150F4F720BA, 8000000000000000000, false));
            balances.push(Balance(0x360EaEfa7723B2219adAF46D046555b490dB4B16, 8000000000000000000, false));
            balances.push(Balance(0x1995f8Ec00BcF0Cb7C91274f1B5719e70CF60f79, 7960000000000000000, false));
            balances.push(Balance(0xfD2f23421d70df082b8b9A0E9dC216D4A75f49B7, 7866666666666670000, false));
            balances.push(Balance(0x007796e342A02667912164F0E92eA1B9996c6A77, 7866666666666670000, false));
            balances.push(Balance(0xBD9898a3c6b2eeD503741e2FBAF56fE20a2D3691, 7840000000000000000, false));
            balances.push(Balance(0xb807052d90fFBA5435cBf3861aEB7B5285058F06, 7600000000000000000, false));
            balances.push(Balance(0x6C813527d52EF56E0dCdFb2Aa95dDa103294ee33, 7466666666666670000, false));
            balances.push(Balance(0x33fe15c42a9b038C81652D95AA3482962CcAa065, 7333333333333330000, false));
            balances.push(Balance(0xE89688A255aCbA59F75D9C378c87E12CB8d5B6DD, 6867366653333330000, false));
            balances.push(Balance(0xF82cAC3c9Af16d15226638186F2B011813ed5446, 6762764640000000000, false));
            balances.push(Balance(0xD3a1653F3A4812C63594FA33ed15426FBc7fEC18, 6666666666666670000, false));
            balances.push(Balance(0x4979e620Dee9c45B3801151e305Cc637E5E53979, 6610636133333330000, false));
            balances.push(Balance(0x4644d6e363d354dB6DB5b98030b969B69f3B69FF, 6600000000000000000, false));
            balances.push(Balance(0xeE1b9C8b520e054bb669f6f8891E296339ebBEc8, 6570666666666670000, false));
            balances.push(Balance(0x0dA58317be9Fa1A114311A274D6366Cc4880a6fF, 6550878359999990000, false));
            balances.push(Balance(0x033263376caEDc85dFC72FB61625ef0dcB1f0cA6, 6519999999999990000, false));
            balances.push(Balance(0x83de37d7a7e870a405fc406492fcEF9deE3328b0, 6449576773333330000, false));
            balances.push(Balance(0x9B7a8b471ad9A43e36d69aB971c7A03c6F5b5b41, 6300000000000000000, false));
            balances.push(Balance(0xa0Bc54f4c7904F27A02c87211863a5ea7F685CC0, 6293333333333330000, false));
            balances.push(Balance(0x386a7389a64b32a68844127587b859591371Ea33, 6273905293333330000, false));
        }

        // 0-81
        //  3 function
        function setBalances() public onlyOwner {
            require(false == balancesSet);
            balancesSet = true;
            balances.push(Balance(0x371fF0d66bAf9CaD9369C63d45562986E2B8F90C, 6266666666666670000, false));
            balances.push(Balance(0x76f9164341d1C869d051EafDB807BF2BBdcc1AA9, 6266666666666670000, false));
            balances.push(Balance(0x79da4243A0021b27daa5996a2673d95557b8e157, 6236993226666660000, false));
            balances.push(Balance(0xfFcDf5Dd495c560EFB41B827abC8445a17b2d4D3, 6000000000000000000, false));
            balances.push(Balance(0xf79Dfbc147361C69AE88Ff855603F428b567369c, 6000000000000000000, false));
            balances.push(Balance(0xDAA8482d30f47c9a662f481D586E0065c38Ec1c1, 6000000000000000000, false));
            balances.push(Balance(0xc046b59484843B2Af6Ca105aFD88A3aB60E9B7cD, 6000000000000000000, false));
            balances.push(Balance(0x700dD0Fd005232eC67d2B42744D647c9cF8dc345, 6000000000000000000, false));
            balances.push(Balance(0x81a39131384D27E64cDA76B5F0769DC642Cfc1a3, 6000000000000000000, false));
            balances.push(Balance(0x4c19Ca7e6898D0E408cB3a314Fd9ea24eBc65dDd, 6000000000000000000, false));
            balances.push(Balance(0x4c46B3233ac7367fdf9f8B2bE60C50AAE432a5Eb, 5946666666666670000, false));
            balances.push(Balance(0x1F61Ffadbdb6Bb24A1423B1A1B51e26d54AEf5F1, 5820000000000000000, false));
            balances.push(Balance(0x2917D828c305e4272C318d21E8DA369d2D11A6bA, 5800000000000000000, false));
            balances.push(Balance(0x7F4924590beA483375fC8E3809E43FDc9c812CDb, 5733333333333330000, false));
            balances.push(Balance(0xF59E21AfeE56927Cd6a9911459980f6FBe4Fb523, 5653333333333330000, false));
            balances.push(Balance(0x811ba42d34f34904551CDBC8056a3E9feAFBCcDC, 5428478826666670000, false));
            balances.push(Balance(0xf19A0CaaD22455dF01962B9af0dD314967E062E0, 5333333333333330000, false));
            balances.push(Balance(0x4e117b659FdDD5fcf3eeA1179181658C5E17E11f, 5333333333333330000, false));
            balances.push(Balance(0x4B3aF3f0Cae89149995d61d723C9bFE3FDf5D061, 5333333333333330000, false));
            balances.push(Balance(0xFD390993E85Dbe665eBE8dCF04DD363984897010, 5200000000000000000, false));
            balances.push(Balance(0x056Bc3f2Cc058B92CBbBA2F7f4b6fB2A0f931566, 5187309836290610000, false));
            balances.push(Balance(0x0fa258b052d5314A86285ed2456c68CC80cd36B7, 5166482352266670000, false));
            balances.push(Balance(0xFC56A208df3F77A49E349c6D64d9132e36112a49, 5000000000000000000, false));
            balances.push(Balance(0xf414A478B1fA0fc3C15F7D570171e54A4c160Cf1, 5000000000000000000, false));
            balances.push(Balance(0xdB08F4D86f3f51B02f77C742d25754d495D5c02F, 5000000000000000000, false));
            balances.push(Balance(0xAFce3d722A5988a4e3F9eAC3A8f0Eacf05a1b7bF, 5000000000000000000, false));
            balances.push(Balance(0x55A70EaE30Be140B07B4c2285388eA696bdeAC12, 5000000000000000000, false));
            balances.push(Balance(0x2E062Cb1256B22B1Ef14FBB559db28D6b3312331, 5000000000000000000, false));
            balances.push(Balance(0x1ec102092FA2f76a00D275a593581BaBb4b0d35e, 5000000000000000000, false));
            balances.push(Balance(0xc5a4E2F35f58c95561373a11eBC91BaDde37b301, 4880403374552850000, false));
            balances.push(Balance(0x59BfD269A95A3746F41265f20d9D20260659852c, 4800000000000000000, false));
            balances.push(Balance(0xD2f4eA8929fcBefD47458C80cCFA33c4C6773C26, 4720000000000000000, false));
            balances.push(Balance(0x6838ee2f0aA44Bfa3a94a8dab2D0C694c6bD37B4, 4666666666666670000, false));
            balances.push(Balance(0x438899E2c698AA504C59b438cB0626ac0E7E364A, 4533333333333330000, false));
            balances.push(Balance(0x97AD9D9E2f7b58A0D8B5DAb4f7BCc6A47cDcA387, 4400000000000000000, false));
            balances.push(Balance(0x4F66366A17E1c74Ade6621A62b11450c08b42123, 4280000000000000000, false));
            balances.push(Balance(0x0A9847F217364b7A410A9b089ae774492C9Bfcc6, 4053333333333330000, false));
            balances.push(Balance(0xaC82E7efe5b69734773a8665dA9d789BB31036d6, 4048299813333330000, false));
            balances.push(Balance(0x7FBa95a19b855C89819c28803d9782e494B03db8, 4013333333333340000, false));
            balances.push(Balance(0xC8472Fb6F3D94AE2881F337dcE159D0cb6E3A9e5, 4000000000000000000, false));
            balances.push(Balance(0xc2f6f54c997ccFdB16EAbC9439C38E566b5D8e94, 4000000000000000000, false));
            balances.push(Balance(0x4958Ebe8A02d4e0DCc821D52F87fb6ab60f1888b, 4000000000000000000, false));
            balances.push(Balance(0x34B62809DF67CA50355E34C62035F0F349e001c7, 4000000000000000000, false));
            balances.push(Balance(0x05d8B374E90763AA1373A5963aCdac062dc816F7, 4000000000000000000, false));
            balances.push(Balance(0x5CeA4B49F353a5A1431f3241453e17d502c40Ab4, 4000000000000000000, false));
            balances.push(Balance(0x5c9BcBbB185359d7afeda7fC9096F2027EBf6CAF, 4000000000000000000, false));
            balances.push(Balance(0x2DAA8a3775bea2F5CC836cc790fEe4810E97b8FA, 4000000000000000000, false));
            balances.push(Balance(0x3D783ef5Eff9Ec76353615036c17F9556aCa380b, 3887711800000000000, false));
            balances.push(Balance(0x4E1BE9868134b9cd9432F82904518cD34cB9a3B9, 3773687573333330000, false));
            balances.push(Balance(0x036057B70CbC3dEDBC259D5c6A8Ed3382A225bCf, 3720000000000000000, false));
            balances.push(Balance(0x48A445976b2fb495c95Fb56d6131bbc9e0D09Fca, 3623200000000000000, false));
            balances.push(Balance(0x4eD37d7555313Ec22d1B400ba798fdF7d011a9B6, 3600000000000000000, false));
            balances.push(Balance(0x24a82ed86118152c4fd0e9dEb06b1ebeC6BB9E6D, 3589761466666670000, false));
            balances.push(Balance(0xBDDE70d2084aDFE855403A12889714715a8C1e56, 3481209466666670000, false));
            balances.push(Balance(0x5C2Ed36050C1e4391BE80052732e2B370C618305, 3466666666666660000, false));
            balances.push(Balance(0x3b438278922B59bcd75d77A7567b43Eb78502b3b, 3421383440000000000, false));
            balances.push(Balance(0xdF1b73ACf7868F62b8E039A2Bc06e710748cE78E, 3407565920000000000, false));
            balances.push(Balance(0xeF9012D6999f0F5eA80aDEc41a334C9980152485, 3333333333333330000, false));
            balances.push(Balance(0x144266894Be83727aE107F30C48750cb5d373F89, 3333333333333330000, false));
            balances.push(Balance(0x031B2508d64748cBd9269EBe6db984a5190094c9, 3333333333333330000, false));
            balances.push(Balance(0xC53b57486911fe29c2312D6Cc038EE6B4F342B50, 3327312586666670000, false));
            balances.push(Balance(0x85F6DE00E308D620A87C0f1BE7098527758E4bc2, 3232612814723720000, false));
            balances.push(Balance(0x96fC4553a00C117C5b0bED950Dd625d1c16Dc894, 3210160567733330000, false));
            balances.push(Balance(0xD1b00A899C4ef80C00f38eEDa27E5C2E4818aAE3, 3200000000000000000, false));
            balances.push(Balance(0x685476666d67186ddA207A7900fd3CE42a3F8319, 3200000000000000000, false));
            balances.push(Balance(0x2449AfBeC7e84e462bCA730797CC0F943B0fF1C9, 3200000000000000000, false));
            balances.push(Balance(0x945dEFa8C0AF4620C50CEE663782E7BFd04659f9, 3186666666666670000, false));
            balances.push(Balance(0xe9a43F38D79F06c2f819b8d2c071a6F0E0afEBdc, 3150467965333330000, false));
            balances.push(Balance(0x1E59894B31f446f6fE17D248e0E1E2DB00aC7750, 3129639200000000000, false));
            balances.push(Balance(0x961d2ac3B73F70C797A7fDa4314b619f21f79c45, 3125333333333330000, false));
            balances.push(Balance(0x6ebC927713F5DeecEb419e00E8e15133Ed297f02, 3066666666666670000, false));
            balances.push(Balance(0xEeFfd610258662932571798d4776Da840F71f48E, 3042306493333330000, false));
            balances.push(Balance(0xaAebf97e7151C4C2E7BD1dA5067b4eF3AA56A58F, 3000000000000000000, false));
            balances.push(Balance(0x6CDdA861D14190942ecbB9DC604698f54EF3fFAC, 3000000000000000000, false));
            balances.push(Balance(0x2cC6f276a0d97a4DA731392436139ea50798a7c4, 2981662066666670000, false));
            balances.push(Balance(0x194D433811500f92ce0703C623fcBD9D22f0D20d, 2901856317579730000, false));
            balances.push(Balance(0x61873f7D0AA20714e9be262FdeCE4D00302A537B, 2860000000000000000, false));
            balances.push(Balance(0x97a2E8Fa7140B3C07AA9622556541AA3d0cCce24, 2854321156798670000, false));
            balances.push(Balance(0xbBba52db669b98993391bC6987E8A6F016900063, 2813092680000000000, false));
            balances.push(Balance(0xa7c66D322E7FA00F6fF4443C7D4b313dF11b9eCf, 2800000000000000000, false));
            balances.push(Balance(0x5994D61758C7E4A2212e14182960951Ee7A37F17, 2800000000000000000, false));
            balances.push(Balance(0x3a0A22f0815d97A7aE2b132Fe0B7Be0cc74D6d8e, 2785551880000000000, false));
        }

        // 0-65
        //  4 function
        function setBalances() public onlyOwner {
            require(false == balancesSet);
            balancesSet = true;
            balances.push(Balance(0x8484BF8F6454600ECa054185F53174BD784a6490, 2783764133333330000, false));
            balances.push(Balance(0xa85c961c1Fba50f11F5e0ADd12A000Bc03b043f7, 2666666666666670000, false));
            balances.push(Balance(0x150a96971F1c4c042c5CE8298EE7E5C5610e7332, 2666666666666670000, false));
            balances.push(Balance(0x66d6B446BEFA2e22Ebfb433f38FAD6F01B188224, 2666666666666670000, false));
            balances.push(Balance(0x2A92BB77E42D6D67155c77f1123015bCEaF8657F, 2666666666666670000, false));
            balances.push(Balance(0xdC8bbeBECb9732c0504882105F3434E364ad44bb, 2607915053333330000, false));
            balances.push(Balance(0x119Ebd2F5c92eadA1DFfb451c10D220C7f24e53a, 2519999999999990000, false));
            balances.push(Balance(0x1c8901f0D6Cd36b35B6eA4EE8Dd113383E711725, 2500000000000000000, false));
            balances.push(Balance(0x8588eD5CE596E42747DF186b1D26D95E6fbA69eb, 2472599540000000000, false));
            balances.push(Balance(0xA55f8a37fEefBD727bB8A3C4D8C44d5B00DdC141, 2400000000000000000, false));
            balances.push(Balance(0x485f444bFd453A73EF5cE6923b4D2CCa86ba513E, 2400000000000000000, false));
            balances.push(Balance(0x90f3F20dfc60a364AD6A6a3C1aDdd81003F77c82, 2400000000000000000, false));
            balances.push(Balance(0x3A28a3B783e606b1a22BeC608F1d40b4C4beD5ce, 2380000000000000000, false));
            balances.push(Balance(0xCfDcdA60766966d0c1E1d76a8817ddE0332F6a0c, 2268000000000000000, false));
            balances.push(Balance(0x072e88436b90c075f0344971Db8AB75cb41b5764, 2266666666666670000, false));
            balances.push(Balance(0x882d0A7c619B884F3d73b5133C9635e05370Ab38, 2266666666666660000, false));
            balances.push(Balance(0xa41B7F17Be829D34e92ACa5BE6BE4355e00cC0eb, 2226666666666660000, false));
            balances.push(Balance(0xB04f047A03a0e4f5db546dA3F01CDf18fdC98d20, 2200000000000000000, false));
            balances.push(Balance(0x455Ad5b479A721E4D6ce30c219Aa92c323d89F52, 2200000000000000000, false));
            balances.push(Balance(0xE9dEF4E1a49a6C6063711fC5c7Ba6bA092Ac5C0F, 2199999999999990000, false));
            balances.push(Balance(0x480E401c0BF0fF20411b94C5EfB2c878B34A8c82, 2094619756266660000, false));
            balances.push(Balance(0xf43454711605563856aeE726C8e50798768c282E, 2000000000000000000, false));
            balances.push(Balance(0xe02Fda32aC0C4CB0B4d8a9B5d903Ab9225d168Cf, 2000000000000000000, false));
            balances.push(Balance(0xd0741a61CcF1CF3B3AA2f013738877492257D9dB, 2000000000000000000, false));
            balances.push(Balance(0xBD7290743348EEA8c0c21765031440afE27b29AE, 2000000000000000000, false));
            balances.push(Balance(0x220F2361A468152f1724D71368DC82cfB66d5572, 2000000000000000000, false));
            balances.push(Balance(0x186d5F47d59cD7Df01A3bb850E7fA5362941ef99, 2000000000000000000, false));
            balances.push(Balance(0x3c6006171DCB541c22d5Aad0D7E4952be832ca2a, 2000000000000000000, false));
            balances.push(Balance(0x1fE15AbA927e0deBE7E98Ba19DdD19928e8b2Bde, 2000000000000000000, false));
            balances.push(Balance(0x5CF8fa10d538CFB31Dfa420cBA9bb94df563544A, 1933333333333330000, false));
            balances.push(Balance(0xdf5eB859a29Cc5400B5eE7d1108DBF487dabC631, 1866666666666670000, false));
            balances.push(Balance(0x6b025AF153568DE895385f62C9A8B0AAc3fb9A4C, 1850165503200000000, false));
            balances.push(Balance(0xBa14D4e004e31354C70320216F655A805C1c0670, 1773333333333330000, false));
            balances.push(Balance(0x76b0229FE7fA0a599E75947B90AbeC1883178F3D, 1754666666666670000, false));
            balances.push(Balance(0x8e45f1cdC764b6ee7D7c9Ac81220eD6c28CD6260, 1665121893333330000, false));
            balances.push(Balance(0xF05281a2b7Ca2281FA0b1DA28Cbf42C8604396D1, 1600000000000000000, false));
            balances.push(Balance(0x77c0016feA4b7C41CB7867518f23A5Cde66F8cD4, 1538005980000020000, false));
            balances.push(Balance(0x831F88027c17a18EF041f5F0c320604456A244b1, 1413333333333330000, false));
            balances.push(Balance(0x17C71585B380a980089cF4CAb946097D29c0A288, 1401933333333330000, false));
            balances.push(Balance(0x4644253383a1D07a4F844273aE1e8Bc45176C7Ba, 1400000000000000000, false));
            balances.push(Balance(0xF298A211C9B13E49d02727093D8F9cEc4b372080, 1333333333333330000, false));
            balances.push(Balance(0x58c6A53ed6edCe4aE2E52f1608aedB48b3a10131, 1333333333333330000, false));
            balances.push(Balance(0x6f336b5AeA97Fd3Fd2AEa190271E8fBfafE1B566, 1333333333333330000, false));
            balances.push(Balance(0x6ef15707916E8744A7c77D7Ea1E95261Ac38ABFc, 1200000000000000000, false));
            balances.push(Balance(0xbc9106E6bDCbcCb48Da71bC67Bd75F55C4f2a117, 1146666666666660000, false));
            balances.push(Balance(0x6A7AA8cdf5983d4520E5773b503d329aB7e68a0c, 1133333333333330000, false));
            balances.push(Balance(0xcceE5Cb8512D3aDc26d5a5185a4d47B0D02f1455, 1066666666666670000, false));
            balances.push(Balance(0xB1Fedad00E869D114becfe4517a25f0EA80886D5, 1066666666666670000, false));
            balances.push(Balance(0xba47Fb3679D3F017AC6e3f98331fDAccEAc4Ffca, 1066666666666660000, false));
            balances.push(Balance(0xEFf9244D85980aE28664755CCcD3b85Aa73d6dA3, 1000000000000000000, false));
            balances.push(Balance(0x3175eB1D23526DcE5C87867CBE849CBa41f3C5a5, 1000000000000000000, false));
            balances.push(Balance(0xa34D3461Ae04953489E9AA464689C022836751d0, 1000000000000000000, false));
            balances.push(Balance(0x895378a947CA5ec14a823cc3e2E384733Ee93bee, 1000000000000000000, false));
            balances.push(Balance(0x376Bf213522B7dfD7D33D9c30e2Caa10837c23E0, 1000000000000000000, false));
            balances.push(Balance(0x57bdC4635415fa66EBd3C64C09F24318281984e4, 1000000000000000000, false));
            balances.push(Balance(0x5ed397aBA0a34a5Fe27F9f1d7309934b2Ca9dfD0, 1000000000000000000, false));
            balances.push(Balance(0x2f3Cf16dB02326fCbFB9AbDc3ADd26F2f547284A, 1000000000000000000, false));
            balances.push(Balance(0xe2BB8aFbff30A4BE03426cf3589bf5c4Cd3F4367, 973333333333333000, false));
            balances.push(Balance(0xa785c232573D89A06B5A2aE9bEcc67Ab09a5981e, 920000000000000000, false));
            balances.push(Balance(0xAEc80673d9Eb052977eA1fEB68cce33499d80BF0, 880000000000000000, false));
            balances.push(Balance(0x3BbCb294029B7eD76E5feC2fefc6cf02B8B2B326, 866666666666667000, false));
            balances.push(Balance(0x7e9cEac8cBAb21A25337724221423B8A1Cb32a0E, 809787013333333000, false));
            balances.push(Balance(0x30D53503D1AdB861A1B0Cca6d3Efa0585d2e085d, 800000000000000000, false));
            balances.push(Balance(0x1E7f70dD818A7928DaD446Ae50758f39657B563A, 779880760000000000, false));
            balances.push(Balance(0xAc57675316F497837403e7702a8322aa64ccb2De, 713268034400000000, false));
            balances.push(Balance(0x5c10109694c3abEF570E70B45992470e781Ba009, 681696080000000000, false));
        }

        // 0-21
        //  5 function
        function setBalances() public onlyOwner {
            require(false == balancesSet);
            balancesSet = true;
            balances.push(Balance(0xa1773Ec142D3a88d413dEbF81f4b5fF53284D4EA, 680531360000000000, false));
            balances.push(Balance(0xDcAE45a3755962d349341C0d5f679d5e1EC5778a, 666666666666666000, false));
            balances.push(Balance(0x238FCFd88C6A48D0Ec55D040b70Ddc534730fC57, 666666666666666000, false));
            balances.push(Balance(0xaD2C2b0488e5fFFfC8d04fC8610f0692C7636A77, 600000000000000000, false));
            balances.push(Balance(0x482E251Ab0738deEDcf2FEFbF1Dd73eFAf14F1C0, 600000000000000000, false));
            balances.push(Balance(0x430683a1871B11506c2e40dF82733f175F29742e, 560000000000000000, false));
            balances.push(Balance(0xA230D922a31F6C956100d3e674630ac812E7d887, 466666666666667000, false));
            balances.push(Balance(0xFBb1b73C4f0BDa4f67dcA266ce6Ef42f520fBB98, 448000000000000000, false));
            balances.push(Balance(0xF13E3f4fF2782f01aeECb846979AAEb1F0bC452E, 400000000000000000, false));
            balances.push(Balance(0x5Cc1d3e2996BdfDeB4CfC079689E39D58c80f763, 400000000000000000, false));
            balances.push(Balance(0x52AB19a3cd7e5dFCF5447eB14EBD6162ca76C3c9, 366666666666670000, false));
            balances.push(Balance(0xABd03B1C1F84468579047bd0BD5Df023e5fbbA7B, 326999999999999000, false));
            balances.push(Balance(0x7594C284898bcFca0C7475dbAfE5Eaf131Ede3ff, 266666666666666000, false));
            balances.push(Balance(0x238afBfE3E401ad2e41980306C701D1978cB9cB3, 240000000000000000, false));
            balances.push(Balance(0xb03A1ad4F138979319559A735877673379AaE5dB, 200000000000000000, false));
            balances.push(Balance(0x4d0Db0F1C043f5b53fE77153b39166a7Adf41707, 200000000000000000, false));
            balances.push(Balance(0xF769329A7fdaE282F1d0eA11E274E534BF0701aE, 133333333333333000, false));
            balances.push(Balance(0xa0D457a560bE0fFBCE524b582948E40eeE12fEB7, 133333333333333000, false));
            balances.push(Balance(0x31ab0770A38b97121f9f07E25a1E418010b8e3bE, 133333333333333000, false));
            balances.push(Balance(0x9c65Fc67acFADBb98498c1Fa07Cdb6E384fE94b5, 133333333333333000, false));
            balances.push(Balance(0x135c1CaC2138C2C34041E0a0978844FE2E03c8e5, 40000000000000000, false));
            balances.push(Balance(0xbe51b6Fa0110c007bC546dec21804C2bE542D1AE, 20000000000000000, false));
        }
    */

    function setNewCajutel(address _cajutel) public onlyOwner {
        require(_cajutel != address(0));
        newCajutel = Cajutel(_cajutel);
    }

    function getBalancesLength() public constant onlyOwner returns (uint256) {
        return balances.length;
    }

    function doMigration(uint256 _start, uint256 _finish) public onlyOwner {
        if (_finish == 0) {
            _finish = balances.length;
        }
        require(_finish < balances.length);
        for (uint i = _start; i <= _finish; i++) {
            Balance storage balance = balances[i];
            if (balance.migrated == true) {
                continue;
            }
            if (balance.amount > 0) {
                newCajutel.setMigratedBalance(balance.holderAddress, balance.amount);
                balance.migrated = true;
            }

        }
    }

    function doSingleMigration(uint256 _id) public onlyOwner {
        require(_id < balances.length);
        Balance storage balance = balances[_id];
        require(false == balance.migrated);
        if (balance.amount > 0) {
            newCajutel.setMigratedBalance(balance.holderAddress, balance.amount);
            balance.migrated = true;
        }

    }

    function checkStatus(uint256 _id) public constant onlyOwner returns (bool){
        require(_id < balances.length);
        Balance storage balance = balances[_id];
        return balance.migrated;
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"collectedEthers","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_collectedEthers","type":"uint256"},{"name":"value","type":"uint256"}],"name":"getIcoTokensAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"dividendId","type":"uint256"}],"name":"refundUnclaimedEthers","outputs":[{"name":"success","type":"bool"}],"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":true,"inputs":[],"name":"creationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"icoTill","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_locked","type":"bool"}],"name":"setLocked","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"dividendId","type":"uint256"}],"name":"recycleDividend","outputs":[{"name":"success","type":"bool"}],"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":"","type":"uint256"}],"name":"phases","outputs":[{"name":"price","type":"uint256"},{"name":"maxAmount","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"loggedBalances","outputs":[{"name":"value","type":"uint256"},{"name":"block","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"icoSince","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"migrateAddress","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"standard","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"claimDividends","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"setMigrateAddress","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"recycleTime","type":"uint256"}],"name":"addDividend","outputs":[],"payable":true,"type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_icoSince","type":"uint256"},{"name":"_icoTill","type":"uint256"}],"name":"setIcoDates","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"dividends","outputs":[{"name":"id","type":"uint256"},{"name":"block","type":"uint256"},{"name":"time","type":"uint256"},{"name":"amount","type":"uint256"},{"name":"claimedAmount","type":"uint256"},{"name":"transferedBack","type":"uint256"},{"name":"totalSupply","type":"uint256"},{"name":"recycleTime","type":"uint256"},{"name":"recycled","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"dividendId","type":"uint256"}],"name":"claimDividend","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"loggedTotalSupply","outputs":[{"name":"value","type":"uint256"},{"name":"block","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_holderAddress","type":"address"},{"name":"_value","type":"uint256"}],"name":"setMigratedBalance","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"locked","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"transferEthers","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"type":"function"},{"inputs":[{"name":"initialSupply","type":"uint256"},{"name":"tokenName","type":"string"},{"name":"tokenSymbol","type":"string"},{"name":"icoSince","type":"uint256"},{"name":"icoTill","type":"uint256"}],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"id","type":"uint256"},{"indexed":true,"name":"_address","type":"address"},{"indexed":false,"name":"_block","type":"uint256"},{"indexed":false,"name":"_amount","type":"uint256"},{"indexed":false,"name":"_totalSupply","type":"uint256"}],"name":"DividendTransfered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"id","type":"uint256"},{"indexed":true,"name":"_address","type":"address"},{"indexed":false,"name":"_claim","type":"uint256"}],"name":"DividendClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"id","type":"uint256"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"UnclaimedDividendTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"id","type":"uint256"},{"indexed":true,"name":"_recycler","type":"address"},{"indexed":false,"name":"_blockNumber","type":"uint256"},{"indexed":false,"name":"_amount","type":"uint256"},{"indexed":false,"name":"_totalSupply","type":"uint256"}],"name":"DividendRecycled","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"}]

606060405234156200001057600080fd5b60405162002427380380620024278339810160405280805191906020018051820191906020018051820191906020018051919060200180519150505b818186868660126000805b8585848685855b8585858585855b8585858585855b5b60008054600160a060020a03191633600160a060020a03161790555b60408051908101604052600981527f455243323020302e31000000000000000000000000000000000000000000000060208201526002908051620000d292916020019062000548565b506006869055811562000137576200010133600654620004c66401000000000262001a5d176401000000009004565b33600160a060020a031660006000805160206200240783398151915260065460405190815260200160405180910390a36200018a565b6200015930600654620004c66401000000000262001a5d176401000000009004565b30600160a060020a031660006000805160206200240783398151915260065460405190815260200160405180910390a35b60038580516200019f92916020019062000548565b506004838051620001b592916020019062000548565b506005805460ff1990811660ff87161790915560078054909116821515179055436008555b50505050505060408051908101604052601681527f4c6f6756616c7565426c6f636b546f6b656e20302e3100000000000000000000602082015260029080516200022992916020019062000548565b505b5050505050505b50505050505060408051908101604052600c81527f506861736549434f20302e310000000000000000000000000000000000000000602082015260029080516200028192916020019062000548565b50600f88905560108790555b505050505050505060408051908101604052600b81527f43616a7574656c20302e3100000000000000000000000000000000000000000060208201526002908051620002de92916020019062000548565b506012805460018101620002f38382620005ce565b916000526020600020906002020160005b6040805190810160405266b1a2bc2ec500008152681b1ae4d6e2ef5000006020820152919050815181556020820151816001015550505060128054806001018281620003519190620005ce565b916000526020600020906002020160005b6040805190810160405267010a741a4627800081526843c33c1937564800006020820152919050815181556020820151816001015550505060128054806001018281620003b09190620005ce565b916000526020600020906002020160005b6040805190810160405267016345785d8a00008152690261dd1ce2f2088800006020820152919050815181556020820151816001015550505060128054806001018281620004109190620005ce565b916000526020600020906002020160005b60408051908101604052670214e8348c4f000081526908bc2abf40221f4800006020820152919050815181556020820151816001015550505060128054806001018281620004709190620005ce565b916000526020600020906002020160005b604080519081016040526702c68af0bb14000081526919acf9c58df7b1480000602082015291905081518155602082015181600101555050505b5050505050620006b0565b600160a060020a0382166000908152600c60205260409020805460018101620004f08382620005ce565b916000526020600020906002020160005b604080519081016040528481524360208201529190508151815560208201516001909101555050600160a060020a03821660009081526009602052604090208190555b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200058b57805160ff1916838001178555620005bb565b82800160010185558215620005bb579182015b82811115620005bb5782518255916020019190600101906200059e565b5b50620005ca92915062000638565b5090565b815481835581811511620005fd57600202816002028360005260206000209182019101620005fd91906200065c565b5b505050565b815481835581811511620005fd57600202816002028360005260206000209182019101620005fd91906200065c565b5b505050565b6200065991905b80821115620005ca57600081556001016200063f565b5090565b90565b6200065991905b80821115620005ca576000808255600182015560020162000663565b5090565b90565b6200065991905b80821115620005ca576000808255600182015560020162000663565b5090565b90565b611d4780620006c06000396000f300606060405236156101b45763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630200b10d81146101d75780630655c58b146101fc57806306fdde031461022757806307a95e83146102b2578063095ea7b3146102dc578063176345141461031257806318160ddd146103375780631e7244471461035c578063211e28b61461038157806322c9427e1461039b57806323b872dd146103c55780632e37eef614610401578063313ce5671461042f57806337a366d8146104585780633f1b1267146104925780634b8d12f0146104b75780635a3b7e42146104e6578063668038e0146105715780636d5382641461058657806370a08231146105a7578063752d2bfb146105d857806379ba5097146105e55780637c871d31146105fa578063814b3fe0146106155780638da5cb5b1461067857806395d89b41146106a75780639abd357214610732578063a713a3f71461075c578063a9059cbb1461078a578063b17df316146107ae578063cf309012146107d2578063d271011d146107f9578063d4ee1d901461080e578063dd62ed3e1461083d578063f2fde38b14610874575b5b60006101c2334234610895565b90506001811515146101d357600080fd5b5b50005b34156101e257600080fd5b6101ea6109f6565b60405190815260200160405180910390f35b341561020757600080fd5b6101ea6004356024356109fc565b60405190815260200160405180910390f35b341561023257600080fd5b61023a610b36565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102775780820151818401525b60200161025e565b50505050905090810190601f1680156102a45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102bd57600080fd5b6102c8600435610bd4565b604051901515815260200160405180910390f35b34156102e757600080fd5b6102c8600160a060020a0360043516602435610d22565b604051901515815260200160405180910390f35b341561031d57600080fd5b6101ea610d6a565b60405190815260200160405180910390f35b341561034257600080fd5b6101ea610d70565b60405190815260200160405180910390f35b341561036757600080fd5b6101ea610d76565b60405190815260200160405180910390f35b341561038c57600080fd5b6103996004351515610d7c565b005b34156103a657600080fd5b6102c8600435610daa565b604051901515815260200160405180910390f35b34156103d057600080fd5b6102c8600160a060020a0360043581169060243516604435610e42565b604051901515815260200160405180910390f35b341561040c57600080fd5b610417600435610ee0565b60405191825260208201526040908101905180910390f35b341561043a57600080fd5b610442610f0e565b60405160ff909116815260200160405180910390f35b341561046357600080fd5b610417600160a060020a0360043516602435610f17565b60405191825260208201526040908101905180910390f35b341561049d57600080fd5b6101ea610f54565b60405190815260200160405180910390f35b34156104c257600080fd5b6104ca610f5a565b604051600160a060020a03909116815260200160405180910390f35b34156104f157600080fd5b61023a610f69565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102775780820151818401525b60200161025e565b50505050905090810190601f1680156102a45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561057c57600080fd5b610399611007565b005b341561059157600080fd5b610399600160a060020a036004351661110d565b005b34156105b257600080fd5b6101ea600160a060020a0360043516611155565b60405190815260200160405180910390f35b610399600435611167565b005b34156105f057600080fd5b6103996112cd565b005b341561060557600080fd5b610399600435602435611317565b005b341561062057600080fd5b61062b600435611342565b60405198895260208901979097526040808901969096526060880194909452608087019290925260a086015260c085015260e0840152901515610100830152610120909101905180910390f35b341561068357600080fd5b6104ca6113a0565b604051600160a060020a03909116815260200160405180910390f35b34156106b257600080fd5b61023a6113af565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102775780820151818401525b60200161025e565b50505050905090810190601f1680156102a45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561073d57600080fd5b6102c860043561144d565b604051901515815260200160405180910390f35b341561076757600080fd5b61041760043561164d565b60405191825260208201526040908101905180910390f35b341561079557600080fd5b610399600160a060020a036004351660243561167b565b005b34156107b957600080fd5b610399600160a060020a03600435166024356116bd565b005b34156107dd57600080fd5b6102c8611791565b604051901515815260200160405180910390f35b341561080457600080fd5b61039961179a565b005b341561081957600080fd5b6104ca6117f2565b604051600160a060020a03909116815260200160405180910390f35b341561084857600080fd5b6101ea600160a060020a0360043581169060243516611801565b60405190815260200160405180910390f35b341561087f57600080fd5b610399600160a060020a036004351661181e565b005b60075460009081908190819060ff161515600114156108b757600093506109ec565b600f548610806108c8575060105486115b156108d657600093506109ec565b8415156108e657600093506109ec565b6108f2601154866109fc565b925082151561090457600093506109ec565b600160a060020a0330166000908152600c60205260409020610926904361187b565b600160a060020a0388166000908152600c6020526040902090925061094b904361187b565b90508282101561095e57600093506109ec565b61097787610972838663ffffffff611a4316565b611a5d565b61099030610972848663ffffffff611add16565b611a5d565b6011546109a3908663ffffffff611a4316565b601155600160a060020a038088169030167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405190815260200160405180910390a3600193505b5050509392505050565b60115481565b60008083838280805b601254831015610b14576012805484908110610a1d57fe5b906000526020600020906002020160005b5091508482600101541115610afb576001820154610a52868663ffffffff611a4316565b1115610ad6576001820154610a6d908663ffffffff611add16565b8254909150610aab90610a9e90610a9284670de0b6b3a764000063ffffffff611af416565b9063ffffffff611b2316565b879063ffffffff611a4316565b9550610abd848263ffffffff611add16565b9350610acf858263ffffffff611a4316565b9450610afb565b8154670de0b6b3a76400008502811515610aec57fe5b04860195508385019450600093505b5b831515610b0857610b14565b5b600190920191610a05565b6000841115610b265760009650610b2a565b8596505b50505050505092915050565b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bcc5780601f10610ba157610100808354040283529160200191610bcc565b820191906000526020600020905b815481529060010190602001808311610baf57829003601f168201915b505050505081565b600080548190819033600160a060020a03908116911614610bf457600080fd5b600d548490610c0a90600163ffffffff611add16565b1015610c195760009250610d1a565b600d805485908110610c2757fe5b90600052602060002090600a020160005b50600881015490925060ff161515610c735760078201546002830154610c639163ffffffff611a4316565b421015610c735760009250610d1a565b5b60048201546003830154610c8d9163ffffffff611add16565b6005830181905590506000811115610d1557600054600160a060020a031681156108fc0282604051600060405180830381858888f193505050501515610cd257600080fd5b7ff8f6e080db19192fcb419f05354e903e76f8ef166e655114101e1f956b4c4cf5848260405191825260208201526040908101905180910390a160019250610d1a565b600092505b5b5050919050565b60075460009060ff1615610d3857506000610d64565b50600160a060020a033381166000908152600a6020908152604080832093861683529290522081905560015b92915050565b60085481565b60065481565b60105481565b60005433600160a060020a03908116911614610d9757600080fd5b6007805460ff19168215151790555b5b50565b60008054819033600160a060020a03908116911614610dc857600080fd5b600d548390610dde90600163ffffffff611add16565b1015610ded5760009150610e3b565b600d805484908110610dfb57fe5b90600052602060002090600a020160005b50600881015490915060ff1615610e265760009150610e3b565b60088101805460ff1916600190811790915591505b5b50919050565b600754600090819060ff1615610e5b5760009150610ed8565b600160a060020a038086166000908152600a60209081526040808320339094168352929052205483901015610e935760009150610ed8565b610e9e858585611b3f565b90508015610ed457600160a060020a038086166000908152600a6020908152604080832033909416835292905220805484900390555b8091505b509392505050565b6012805482908110610eee57fe5b906000526020600020906002020160005b50805460019091015490915082565b60055460ff1681565b600c60205281600052604060002081815481101515610f3257fe5b906000526020600020906002020160005b508054600190910154909250905082565b600f5481565b601354600160a060020a031681565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bcc5780601f10610ba157610100808354040283529160200191610bcc565b820191906000526020600020905b815481529060010190602001808311610baf57829003601f168201915b505050505081565b600d54600160a060020a0333166000908152600e60205260408120549091901061103057600080fd5b50600160a060020a0333166000908152600e60205260409020545b600d54811015610da657600d80548290811061106357fe5b90600052602060002090600a020160005b50600160a060020a0333166000908152600991909101602052604090205460ff161580156110c65750600d8054829081106110ab57fe5b90600052602060002090600a020160005b506008015460ff16155b15611100576110dc81600163ffffffff611a4316565b600160a060020a0333166000908152600e60205260409020556110fe8161144d565b505b5b60010161104b565b5b50565b60005433600160a060020a0390811691161461112857600080fd5b6013805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b60096020526000908152604090205481565b60008054819033600160a060020a0390811691161461118557600080fd5b6000341161119257600080fd5b5050600d8054600654909182600181016111ac8382611c33565b91600052602060002090600a020160005b6101206040519081016040908152868252436020830152429082015234606082015260006080820181905260a0820181905260c0820186905260e08201889052610100820152919050815181556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e08201518160070155610100820151600891909101805460ff1916911515919091179055505033600160a060020a03167f4ac365c2344819f39ac5cfcbf4b839a10fb791243db4797084e9ed0fbc917b8a834334856040518085815260200184815260200183815260200182815260200194505050505060405180910390a25b5b505050565b60015433600160a060020a0390811691161415611314576001546000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169190911790555b5b565b60005433600160a060020a0390811691161461133257600080fd5b600f82905560108190555b5b5050565b600d80548290811061135057fe5b90600052602060002090600a020160005b50805460018201546002830154600384015460048501546005860154600687015460078801546008909801549698509496939592949193909260ff1689565b600054600160a060020a031681565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bcc5780601f10610ba157610100808354040283529160200191610bcc565b820191906000526020600020905b815481529060010190602001808311610baf57829003601f168201915b505050505081565b6000806000808461146d6001600d80549050611add90919063ffffffff16565b101561147c5760009350611645565b600d80548690811061148a57fe5b90600052602060002090600a020160005b50600160a060020a033316600090815260098201602052604090205490935060ff161515600114156114d05760009350611645565b600883015460ff161515600114156114eb5760009350611645565b600783015460028401546115049163ffffffff611a4316565b42106115135760009350611645565b600160a060020a0333166000908152600c60205260409020600184015461153a919061187b565b915081151561154c5760009350611645565b6115778360060154610a92856003015485611af490919063ffffffff16565b9063ffffffff611b2316565b600160a060020a03331660009081526009850160205260409020805460ff1916600117905560048401549091506115b4908263ffffffff611a4316565b6004840155600081111561164057600160a060020a03331681156108fc0282604051600060405180830381858888f1935050505015156115f357600080fd5b33600160a060020a03167fa1594d215a577c1905bcb0b5b186a40a0104714277441d4b2ac428c89bf7f4b1868360405191825260208201526040908101905180910390a260019350611645565b600093505b505050919050565b600b805482908110610eee57fe5b906000526020600020906002020160005b50805460019091015490915082565b600060023660441461168957fe5b60075460ff161561169957600080fd5b6116a4338585611b3f565b91506001821515146116b557600080fd5b5b5b50505050565b60135433600160a060020a039081169116146116d857600080fd5b600160a060020a033016600090815260096020526040812054611701908363ffffffff611add16565b101561170c57600080fd5b6117168282611a5d565b30600160a060020a03811660009081526009602052604090205461174491906109729084611add565b611a5d565b81600160a060020a031630600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405190815260200160405180910390a35b5b5050565b60075460ff1681565b60005433600160a060020a039081169116146117b557600080fd5b600054600160a060020a039081169030163180156108fc0290604051600060405180830381858888f19350505050151561131457600080fd5b5b5b565b600154600160a060020a031681565b600a60209081526000928352604080842090915290825290205481565b60005433600160a060020a0390811691161461183957600080fd5b600160a060020a038116151561184e57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b6000806000808580549050600014156118975760009350611a3a565b848660008154811015156118a757fe5b906000526020600020906002020160005b506001015411156118cc5760009350611a3a565b8554859087906118e390600163ffffffff611add16565b815481106118ed57fe5b906000526020600020906002020160005b506001015411611941578554869061191d90600163ffffffff611add16565b8154811061192757fe5b906000526020600020906002020160005b50549350611a3a565b85546000935061195890600163ffffffff611add16565b915061198c6002610a926001611974878763ffffffff611a4316565b9063ffffffff611a4316565b9063ffffffff611b2316565b90505b82821115611a16578486828154811015156119a657fe5b906000526020600020906002020160005b5060010154116119c9578092506119dd565b6119da81600163ffffffff611add16565b91505b611a0f6002610a926001611974878763ffffffff611a4316565b9063ffffffff611a4316565b9063ffffffff611b2316565b905061198f565b8583815481101515611a2457fe5b906000526020600020906002020160005b505493505b50505092915050565b600082820183811015611a5257fe5b8091505b5092915050565b600160a060020a0382166000908152600c60205260409020805460018101611a858382611c65565b916000526020600020906002020160005b604080519081016040528481524360208201529190508151815560208201516001909101555050600160a060020a03821660009081526009602052604090208190555b5050565b600082821115611ae957fe5b508082035b92915050565b6000828202831580611b105750828482811515611b0d57fe5b04145b1515611a5257fe5b8091505b5092915050565b6000808284811515611b3157fe5b0490508091505b5092915050565b6000811515611b5057506000611c2c565b600160a060020a03841660009081526009602052604090205482901015611b7957506000611c2c565b600160a060020a038416600090815260096020526040902054611bad908590610972908563ffffffff611add16565b611a5d565b600160a060020a038316600090815260096020526040902054611be1908490610972908563ffffffff611a4316565b611a5d565b82600160a060020a031684600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a35060015b9392505050565b8154818355818115116112c757600a0281600a0283600052602060002091820191016112c79190611c97565b5b505050565b8154818355818115116112c7576002028160020283600052602060002091820191016112c79190611cf4565b5b505050565b611cf191905b80821115611ced576000808255600182018190556002820181905560038201819055600482018190556005820181905560068201819055600782015560088101805460ff19169055600a01611c9d565b5090565b90565b611cf191905b80821115611ced5760008082556001820155600201611cfa565b5090565b905600a165627a7a72305820ff7238ed97b32ceb7b041c8b3df9567055432e05a038dc010ace4d49ad1be2b00029ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef0000000000000000000000000000000000000000000178edfe4c43cff080000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000005996a588000000000000000000000000000000000000000000000000000000005a213630000000000000000000000000000000000000000000000000000000000000000743616a7574656c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000343414a0000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x606060405236156101b45763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630200b10d81146101d75780630655c58b146101fc57806306fdde031461022757806307a95e83146102b2578063095ea7b3146102dc578063176345141461031257806318160ddd146103375780631e7244471461035c578063211e28b61461038157806322c9427e1461039b57806323b872dd146103c55780632e37eef614610401578063313ce5671461042f57806337a366d8146104585780633f1b1267146104925780634b8d12f0146104b75780635a3b7e42146104e6578063668038e0146105715780636d5382641461058657806370a08231146105a7578063752d2bfb146105d857806379ba5097146105e55780637c871d31146105fa578063814b3fe0146106155780638da5cb5b1461067857806395d89b41146106a75780639abd357214610732578063a713a3f71461075c578063a9059cbb1461078a578063b17df316146107ae578063cf309012146107d2578063d271011d146107f9578063d4ee1d901461080e578063dd62ed3e1461083d578063f2fde38b14610874575b5b60006101c2334234610895565b90506001811515146101d357600080fd5b5b50005b34156101e257600080fd5b6101ea6109f6565b60405190815260200160405180910390f35b341561020757600080fd5b6101ea6004356024356109fc565b60405190815260200160405180910390f35b341561023257600080fd5b61023a610b36565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102775780820151818401525b60200161025e565b50505050905090810190601f1680156102a45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102bd57600080fd5b6102c8600435610bd4565b604051901515815260200160405180910390f35b34156102e757600080fd5b6102c8600160a060020a0360043516602435610d22565b604051901515815260200160405180910390f35b341561031d57600080fd5b6101ea610d6a565b60405190815260200160405180910390f35b341561034257600080fd5b6101ea610d70565b60405190815260200160405180910390f35b341561036757600080fd5b6101ea610d76565b60405190815260200160405180910390f35b341561038c57600080fd5b6103996004351515610d7c565b005b34156103a657600080fd5b6102c8600435610daa565b604051901515815260200160405180910390f35b34156103d057600080fd5b6102c8600160a060020a0360043581169060243516604435610e42565b604051901515815260200160405180910390f35b341561040c57600080fd5b610417600435610ee0565b60405191825260208201526040908101905180910390f35b341561043a57600080fd5b610442610f0e565b60405160ff909116815260200160405180910390f35b341561046357600080fd5b610417600160a060020a0360043516602435610f17565b60405191825260208201526040908101905180910390f35b341561049d57600080fd5b6101ea610f54565b60405190815260200160405180910390f35b34156104c257600080fd5b6104ca610f5a565b604051600160a060020a03909116815260200160405180910390f35b34156104f157600080fd5b61023a610f69565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102775780820151818401525b60200161025e565b50505050905090810190601f1680156102a45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561057c57600080fd5b610399611007565b005b341561059157600080fd5b610399600160a060020a036004351661110d565b005b34156105b257600080fd5b6101ea600160a060020a0360043516611155565b60405190815260200160405180910390f35b610399600435611167565b005b34156105f057600080fd5b6103996112cd565b005b341561060557600080fd5b610399600435602435611317565b005b341561062057600080fd5b61062b600435611342565b60405198895260208901979097526040808901969096526060880194909452608087019290925260a086015260c085015260e0840152901515610100830152610120909101905180910390f35b341561068357600080fd5b6104ca6113a0565b604051600160a060020a03909116815260200160405180910390f35b34156106b257600080fd5b61023a6113af565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102775780820151818401525b60200161025e565b50505050905090810190601f1680156102a45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561073d57600080fd5b6102c860043561144d565b604051901515815260200160405180910390f35b341561076757600080fd5b61041760043561164d565b60405191825260208201526040908101905180910390f35b341561079557600080fd5b610399600160a060020a036004351660243561167b565b005b34156107b957600080fd5b610399600160a060020a03600435166024356116bd565b005b34156107dd57600080fd5b6102c8611791565b604051901515815260200160405180910390f35b341561080457600080fd5b61039961179a565b005b341561081957600080fd5b6104ca6117f2565b604051600160a060020a03909116815260200160405180910390f35b341561084857600080fd5b6101ea600160a060020a0360043581169060243516611801565b60405190815260200160405180910390f35b341561087f57600080fd5b610399600160a060020a036004351661181e565b005b60075460009081908190819060ff161515600114156108b757600093506109ec565b600f548610806108c8575060105486115b156108d657600093506109ec565b8415156108e657600093506109ec565b6108f2601154866109fc565b925082151561090457600093506109ec565b600160a060020a0330166000908152600c60205260409020610926904361187b565b600160a060020a0388166000908152600c6020526040902090925061094b904361187b565b90508282101561095e57600093506109ec565b61097787610972838663ffffffff611a4316565b611a5d565b61099030610972848663ffffffff611add16565b611a5d565b6011546109a3908663ffffffff611a4316565b601155600160a060020a038088169030167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405190815260200160405180910390a3600193505b5050509392505050565b60115481565b60008083838280805b601254831015610b14576012805484908110610a1d57fe5b906000526020600020906002020160005b5091508482600101541115610afb576001820154610a52868663ffffffff611a4316565b1115610ad6576001820154610a6d908663ffffffff611add16565b8254909150610aab90610a9e90610a9284670de0b6b3a764000063ffffffff611af416565b9063ffffffff611b2316565b879063ffffffff611a4316565b9550610abd848263ffffffff611add16565b9350610acf858263ffffffff611a4316565b9450610afb565b8154670de0b6b3a76400008502811515610aec57fe5b04860195508385019450600093505b5b831515610b0857610b14565b5b600190920191610a05565b6000841115610b265760009650610b2a565b8596505b50505050505092915050565b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bcc5780601f10610ba157610100808354040283529160200191610bcc565b820191906000526020600020905b815481529060010190602001808311610baf57829003601f168201915b505050505081565b600080548190819033600160a060020a03908116911614610bf457600080fd5b600d548490610c0a90600163ffffffff611add16565b1015610c195760009250610d1a565b600d805485908110610c2757fe5b90600052602060002090600a020160005b50600881015490925060ff161515610c735760078201546002830154610c639163ffffffff611a4316565b421015610c735760009250610d1a565b5b60048201546003830154610c8d9163ffffffff611add16565b6005830181905590506000811115610d1557600054600160a060020a031681156108fc0282604051600060405180830381858888f193505050501515610cd257600080fd5b7ff8f6e080db19192fcb419f05354e903e76f8ef166e655114101e1f956b4c4cf5848260405191825260208201526040908101905180910390a160019250610d1a565b600092505b5b5050919050565b60075460009060ff1615610d3857506000610d64565b50600160a060020a033381166000908152600a6020908152604080832093861683529290522081905560015b92915050565b60085481565b60065481565b60105481565b60005433600160a060020a03908116911614610d9757600080fd5b6007805460ff19168215151790555b5b50565b60008054819033600160a060020a03908116911614610dc857600080fd5b600d548390610dde90600163ffffffff611add16565b1015610ded5760009150610e3b565b600d805484908110610dfb57fe5b90600052602060002090600a020160005b50600881015490915060ff1615610e265760009150610e3b565b60088101805460ff1916600190811790915591505b5b50919050565b600754600090819060ff1615610e5b5760009150610ed8565b600160a060020a038086166000908152600a60209081526040808320339094168352929052205483901015610e935760009150610ed8565b610e9e858585611b3f565b90508015610ed457600160a060020a038086166000908152600a6020908152604080832033909416835292905220805484900390555b8091505b509392505050565b6012805482908110610eee57fe5b906000526020600020906002020160005b50805460019091015490915082565b60055460ff1681565b600c60205281600052604060002081815481101515610f3257fe5b906000526020600020906002020160005b508054600190910154909250905082565b600f5481565b601354600160a060020a031681565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bcc5780601f10610ba157610100808354040283529160200191610bcc565b820191906000526020600020905b815481529060010190602001808311610baf57829003601f168201915b505050505081565b600d54600160a060020a0333166000908152600e60205260408120549091901061103057600080fd5b50600160a060020a0333166000908152600e60205260409020545b600d54811015610da657600d80548290811061106357fe5b90600052602060002090600a020160005b50600160a060020a0333166000908152600991909101602052604090205460ff161580156110c65750600d8054829081106110ab57fe5b90600052602060002090600a020160005b506008015460ff16155b15611100576110dc81600163ffffffff611a4316565b600160a060020a0333166000908152600e60205260409020556110fe8161144d565b505b5b60010161104b565b5b50565b60005433600160a060020a0390811691161461112857600080fd5b6013805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b60096020526000908152604090205481565b60008054819033600160a060020a0390811691161461118557600080fd5b6000341161119257600080fd5b5050600d8054600654909182600181016111ac8382611c33565b91600052602060002090600a020160005b6101206040519081016040908152868252436020830152429082015234606082015260006080820181905260a0820181905260c0820186905260e08201889052610100820152919050815181556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e08201518160070155610100820151600891909101805460ff1916911515919091179055505033600160a060020a03167f4ac365c2344819f39ac5cfcbf4b839a10fb791243db4797084e9ed0fbc917b8a834334856040518085815260200184815260200183815260200182815260200194505050505060405180910390a25b5b505050565b60015433600160a060020a0390811691161415611314576001546000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169190911790555b5b565b60005433600160a060020a0390811691161461133257600080fd5b600f82905560108190555b5b5050565b600d80548290811061135057fe5b90600052602060002090600a020160005b50805460018201546002830154600384015460048501546005860154600687015460078801546008909801549698509496939592949193909260ff1689565b600054600160a060020a031681565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bcc5780601f10610ba157610100808354040283529160200191610bcc565b820191906000526020600020905b815481529060010190602001808311610baf57829003601f168201915b505050505081565b6000806000808461146d6001600d80549050611add90919063ffffffff16565b101561147c5760009350611645565b600d80548690811061148a57fe5b90600052602060002090600a020160005b50600160a060020a033316600090815260098201602052604090205490935060ff161515600114156114d05760009350611645565b600883015460ff161515600114156114eb5760009350611645565b600783015460028401546115049163ffffffff611a4316565b42106115135760009350611645565b600160a060020a0333166000908152600c60205260409020600184015461153a919061187b565b915081151561154c5760009350611645565b6115778360060154610a92856003015485611af490919063ffffffff16565b9063ffffffff611b2316565b600160a060020a03331660009081526009850160205260409020805460ff1916600117905560048401549091506115b4908263ffffffff611a4316565b6004840155600081111561164057600160a060020a03331681156108fc0282604051600060405180830381858888f1935050505015156115f357600080fd5b33600160a060020a03167fa1594d215a577c1905bcb0b5b186a40a0104714277441d4b2ac428c89bf7f4b1868360405191825260208201526040908101905180910390a260019350611645565b600093505b505050919050565b600b805482908110610eee57fe5b906000526020600020906002020160005b50805460019091015490915082565b600060023660441461168957fe5b60075460ff161561169957600080fd5b6116a4338585611b3f565b91506001821515146116b557600080fd5b5b5b50505050565b60135433600160a060020a039081169116146116d857600080fd5b600160a060020a033016600090815260096020526040812054611701908363ffffffff611add16565b101561170c57600080fd5b6117168282611a5d565b30600160a060020a03811660009081526009602052604090205461174491906109729084611add565b611a5d565b81600160a060020a031630600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405190815260200160405180910390a35b5b5050565b60075460ff1681565b60005433600160a060020a039081169116146117b557600080fd5b600054600160a060020a039081169030163180156108fc0290604051600060405180830381858888f19350505050151561131457600080fd5b5b5b565b600154600160a060020a031681565b600a60209081526000928352604080842090915290825290205481565b60005433600160a060020a0390811691161461183957600080fd5b600160a060020a038116151561184e57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b6000806000808580549050600014156118975760009350611a3a565b848660008154811015156118a757fe5b906000526020600020906002020160005b506001015411156118cc5760009350611a3a565b8554859087906118e390600163ffffffff611add16565b815481106118ed57fe5b906000526020600020906002020160005b506001015411611941578554869061191d90600163ffffffff611add16565b8154811061192757fe5b906000526020600020906002020160005b50549350611a3a565b85546000935061195890600163ffffffff611add16565b915061198c6002610a926001611974878763ffffffff611a4316565b9063ffffffff611a4316565b9063ffffffff611b2316565b90505b82821115611a16578486828154811015156119a657fe5b906000526020600020906002020160005b5060010154116119c9578092506119dd565b6119da81600163ffffffff611add16565b91505b611a0f6002610a926001611974878763ffffffff611a4316565b9063ffffffff611a4316565b9063ffffffff611b2316565b905061198f565b8583815481101515611a2457fe5b906000526020600020906002020160005b505493505b50505092915050565b600082820183811015611a5257fe5b8091505b5092915050565b600160a060020a0382166000908152600c60205260409020805460018101611a858382611c65565b916000526020600020906002020160005b604080519081016040528481524360208201529190508151815560208201516001909101555050600160a060020a03821660009081526009602052604090208190555b5050565b600082821115611ae957fe5b508082035b92915050565b6000828202831580611b105750828482811515611b0d57fe5b04145b1515611a5257fe5b8091505b5092915050565b6000808284811515611b3157fe5b0490508091505b5092915050565b6000811515611b5057506000611c2c565b600160a060020a03841660009081526009602052604090205482901015611b7957506000611c2c565b600160a060020a038416600090815260096020526040902054611bad908590610972908563ffffffff611add16565b611a5d565b600160a060020a038316600090815260096020526040902054611be1908490610972908563ffffffff611a4316565b611a5d565b82600160a060020a031684600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a35060015b9392505050565b8154818355818115116112c757600a0281600a0283600052602060002091820191016112c79190611c97565b5b505050565b8154818355818115116112c7576002028160020283600052602060002091820191016112c79190611cf4565b5b505050565b611cf191905b80821115611ced576000808255600182018190556002820181905560038201819055600482018190556005820181905560068201819055600782015560088101805460ff19169055600a01611c9d565b5090565b90565b611cf191905b80821115611ced5760008082556001820155600201611cfa565b5090565b905600a165627a7a72305820ff7238ed97b32ceb7b041c8b3df9567055432e05a038dc010ace4d49ad1be2b00029

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

0000000000000000000000000000000000000000000178edfe4c43cff080000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000005996a588000000000000000000000000000000000000000000000000000000005a213630000000000000000000000000000000000000000000000000000000000000000743616a7574656c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000343414a0000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : initialSupply (uint256): 1780000000000000000000000
Arg [1] : tokenName (string): Cajutel
Arg [2] : tokenSymbol (string): CAJ
Arg [3] : icoSince (uint256): 1503045000
Arg [4] : icoTill (uint256): 1512126000

-----Encoded View---------------
9 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000178edfe4c43cff0800000
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [3] : 000000000000000000000000000000000000000000000000000000005996a588
Arg [4] : 000000000000000000000000000000000000000000000000000000005a213630
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [6] : 43616a7574656c00000000000000000000000000000000000000000000000000
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [8] : 43414a0000000000000000000000000000000000000000000000000000000000


Swarm Source

bzzr://ff7238ed97b32ceb7b041c8b3df9567055432e05a038dc010ace4d49ad1be2b0
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.