Contract Overview
Balance: 0 Ether
Ether Value: $0
Transactions: 114 txns
 Latest 25 txns From a total of 114 Transactions

TxHash Age From To Value [TxFee]
0x1017816edb955c074e5a6ef3641285d74ff2f9e995cf7d0ba5e7d2db70dc009d119 days 19 hrs ago0x93c6fd1a795a137994d87b81d757b616e4255470  IN   0xcda342715528b24eb5e840b847e83900b71dc0f10 Ether0.001003762
0x0bc2c932b524a0470aebe8a7f2873c4c493ea8c7670b83dc325c378ad59f40a2181 days 18 hrs ago0xc91815bfffa8e82ea39a3a7043c1e8baad1c57a8  IN   0xcda342715528b24eb5e840b847e83900b71dc0f10 Ether0.00024482
0x0cd7cd22275f694ac44a0a1df10904f8669f8f8107787a98478d1437362400d4196 days 5 hrs ago0x705e41659e998f9f018c25c9121ad4bb5488363d  IN   0xcda342715528b24eb5e840b847e83900b71dc0f10 Ether0.001344062
0xeb82bc1669a3fcab37e290b2b16649c384d08615cec46a6c3b47f271a21abdab237 days 14 hrs ago0x1f2bdb898049f1dcd208f7053c806999b09b6dd4  IN   0xcda342715528b24eb5e840b847e83900b71dc0f10 Ether0.001003762
0xd95dbba1c8d5e925c26e79eb9e26d87bf959b3bde2d992927bb0f18b8cda69c5237 days 19 hrs ago0x8136c2eb9569e016bb4f86a89109077d4948b32a  IN   0xcda342715528b24eb5e840b847e83900b71dc0f10 Ether0.001344062
0x4ecf44fecc89311fd6b9ac466bcf2b716004ce90170df73619da06d1421a2e1d237 days 19 hrs ago0x8136c2eb9569e016bb4f86a89109077d4948b32a  IN   0xcda342715528b24eb5e840b847e83900b71dc0f10 Ether0.001003762
0xe0eebf1574b5b20571516a9d586333e8447578f2e2baf4c5c4426c2c58a8785b240 days 2 hrs ago0xa039aff9e49de043c371a1b4b031beab62d352cf  IN   0xcda342715528b24eb5e840b847e83900b71dc0f10 Ether0.000514122
0x4ac59d0fae1597f24388b5ca5813d5209cb174f179fec42936d794d1bc71184b265 days 9 hrs ago0x2db1a5a21fb24bfc18a8571f865d47dc03bb9bf0  IN   0xcda342715528b24eb5e840b847e83900b71dc0f10 Ether0.001077208
0x84640c8be1b236e0d5aec6250fc4de8bd0edb8badbf4b937a0fef498437754a3265 days 14 hrs ago0xc235bb4f3876ae386341b31c854eb637fa4b1990  IN   0xcda342715528b24eb5e840b847e83900b71dc0f10 Ether0.000032782
0xa9ad27143c12b1774cd1ab89efacd3bd2b03bfc8bfdebd932d14ee04554696c9267 days 13 hrs ago0x0b1ae337a9d0f62c9026effcfdcee442e3ce31e6  IN   0xcda342715528b24eb5e840b847e83900b71dc0f10 Ether0.000514122
0x5015c0d300d8b6a4a7870293c53e8efe3d62bef1085d12000e98040fe2886fd0267 days 14 hrs ago0xde4db11e5d580b28dbbf027263cb1df66ace087c  IN   0xcda342715528b24eb5e840b847e83900b71dc0f10 Ether0.000073446
0xf8fa4fcb6db487526eb9f5459c185e70afd767af03bbe70f2393ce1a8e5f1228267 days 14 hrs ago0xbbd8a2ccaf2a5c33ced674a0f3b6332b8e863b75  IN   0xcda342715528b24eb5e840b847e83900b71dc0f10 Ether0.000587568
0x7518acfe5ed374801b090831c495669995e84dad740a7327315bf30b0647d0fd267 days 15 hrs ago0xa070be42df0147a2bc3102bab48ac716736c2dcd  IN   0xcda342715528b24eb5e840b847e83900b71dc0f10 Ether0.000514122
0xd01e7fb063084d8eaecf386583aa207c6e81b1036d91c8132ee16cbb45a29c2d267 days 15 hrs ago0xa03ec04f873833f17c51a072f6388c5e51cf2eae  IN   0xcda342715528b24eb5e840b847e83900b71dc0f10 Ether0.00073446
0x894d5b9c46a2d57db6fac94d3965d18a901e6d5bad802fbff92e28545f9a7b4f268 days 2 hrs ago0x8a91ac199440da0b45b2e278f3fe616b1bccc494  IN   0xcda342715528b24eb5e840b847e83900b71dc0f10 Ether0.0024676
0xb0c992c9db8773b6a3b393e8e8bbf6332cc1ff1417eef4d8fccaa6add6b2596d273 days 6 hrs ago0x99a280dc34a996474e5140f34434ce59b5e65879  IN   0xcda342715528b24eb5e840b847e83900b71dc0f10 Ether0.000065564
0xf343ce45476dc5c034798d06dd8592e8d7519b4cd14da1d120c37fd503d2b5d0273 days 6 hrs ago0x99a280dc34a996474e5140f34434ce59b5e65879  IN   0xcda342715528b24eb5e840b847e83900b71dc0f10 Ether0.000197035
0x7c496769a6651f2af93cacbd57a79da29c70a55221c705cbc6c73cbef0403ec4277 days 16 hrs ago0x8136c2eb9569e016bb4f86a89109077d4948b32a  IN   0xcda342715528b24eb5e840b847e83900b71dc0f10.087297895 Ether0.002702105
0x1b15960bd33401575b6988df53f474dcd6c7e7c47db47398fdb63a83c8c8758b277 days 16 hrs ago0x8136c2eb9569e016bb4f86a89109077d4948b32a  IN   0xcda342715528b24eb5e840b847e83900b71dc0f10.895206895 Ether0.002702105
0xa9fa47004fa40d331d2d56ea3bcf7e0bb202adf66fffcf8f090ea60eb4c17ca9277 days 16 hrs ago0x8136c2eb9569e016bb4f86a89109077d4948b32a  IN   0xcda342715528b24eb5e840b847e83900b71dc0f12.08126252 Ether0.003932105
0x1b122fad9f66b32cebc62c1d253a618cfc47ae9c8b448e5d0fc7ca815d700d00277 days 19 hrs ago0xb546ad747f2e26fb4c90889b2f55691fe54172ac  IN   0xcda342715528b24eb5e840b847e83900b71dc0f10.1 Ether0.002014005
0x07be33f4206597ff203c9be215c9b895f8e1701916e8195f8e997a17039491fb277 days 20 hrs ago0x2ede6d90a6ab65156161af12bfa590ba54ede818  IN   0xcda342715528b24eb5e840b847e83900b71dc0f10.1 Ether0.01131679
0x6f432e0eeef7e5136ae97b4947fed549c0e0089b762d11962f74ad6a2d7cb897277 days 22 hrs ago0xba468a08bbf90f12320f036cbf4469704a0b0a08  IN   0xcda342715528b24eb5e840b847e83900b71dc0f10.11 Ether0.001092
0x01d264ed7fe9acd85aacf676c39aba77b2938496b6bf50a14d36e8656acc718b278 days 2 hrs ago0xc6899f47e0a3f3de99a91cb24e031480708bc4e2  IN   0xcda342715528b24eb5e840b847e83900b71dc0f10.195 Ether0.001647625
0x4731c0c54ad006a417ffa1dfdb59882b7c07b1a9afe29831370264b4df96d681278 days 4 hrs ago0x3816ee98457b8c0feb8023e86ca5a9edaea3a9d3  IN   0xcda342715528b24eb5e840b847e83900b71dc0f10.1 Ether0.0076724
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 25 Internal Txns, Click Here To View More View All
ParentTxHash Block Age From To Value
0x7c496769a6651f2af93cacbd57a79da29c70a55221c705cbc6c73cbef0403ec44917264277 days 16 hrs ago0xcda342715528b24eb5e840b847e83900b71dc0f10xfc8a3228844577d0b70845341c8a9c66cb8858be0.087297895 Ether
0x1b15960bd33401575b6988df53f474dcd6c7e7c47db47398fdb63a83c8c8758b4917175277 days 16 hrs ago0xcda342715528b24eb5e840b847e83900b71dc0f10xfc8a3228844577d0b70845341c8a9c66cb8858be0.895206895 Ether
0xa9fa47004fa40d331d2d56ea3bcf7e0bb202adf66fffcf8f090ea60eb4c17ca94917154277 days 16 hrs ago0xcda342715528b24eb5e840b847e83900b71dc0f10xfc8a3228844577d0b70845341c8a9c66cb8858be2.08126252 Ether
0x1b122fad9f66b32cebc62c1d253a618cfc47ae9c8b448e5d0fc7ca815d700d004916393277 days 19 hrs ago0xcda342715528b24eb5e840b847e83900b71dc0f10xfc8a3228844577d0b70845341c8a9c66cb8858be0.1 Ether
0x07be33f4206597ff203c9be215c9b895f8e1701916e8195f8e997a17039491fb4916178277 days 20 hrs ago0xcda342715528b24eb5e840b847e83900b71dc0f10xfc8a3228844577d0b70845341c8a9c66cb8858be0.1 Ether
0x01d264ed7fe9acd85aacf676c39aba77b2938496b6bf50a14d36e8656acc718b4914834278 days 2 hrs ago0xcda342715528b24eb5e840b847e83900b71dc0f10xfc8a3228844577d0b70845341c8a9c66cb8858be0.195 Ether
0x4731c0c54ad006a417ffa1dfdb59882b7c07b1a9afe29831370264b4df96d6814914351278 days 4 hrs ago0xcda342715528b24eb5e840b847e83900b71dc0f10xfc8a3228844577d0b70845341c8a9c66cb8858be0.1 Ether
0xc66450ffd59550318d828d3e1f464f5799a9aca209327f4817f48a01cb3943ee4913336278 days 9 hrs ago0xcda342715528b24eb5e840b847e83900b71dc0f10xfc8a3228844577d0b70845341c8a9c66cb8858be0.13 Ether
0xf9f76a770676ceecf03fdf5fe3fa9171fcce7723348da66c464e0c8d7785907b4912839278 days 11 hrs ago0xcda342715528b24eb5e840b847e83900b71dc0f10xfc8a3228844577d0b70845341c8a9c66cb8858be0.462 Ether
0x8d20d522a58e9b71d75ef70fc956c1f9d5117c911951ca679e82d9a69dc8e7e04911059278 days 19 hrs ago0xcda342715528b24eb5e840b847e83900b71dc0f10xfc8a3228844577d0b70845341c8a9c66cb8858be0.10095 Ether
0x5b0e3131cc054690198e228cace6fd85dd326daf9b3c479e4419db61329305894906381279 days 15 hrs ago0xcda342715528b24eb5e840b847e83900b71dc0f10xfc8a3228844577d0b70845341c8a9c66cb8858be0.15 Ether
0x2a84e14253951f961056f6e0a47acaa68f7694b79fbad4307013c70021dddebd4903986280 days 1 hr ago0xcda342715528b24eb5e840b847e83900b71dc0f10xfc8a3228844577d0b70845341c8a9c66cb8858be0.64 Ether
0x72660e124ce55c2277d3336d8e7ec5a870e8a0e08c00747f97d1093b59c331454893620281 days 23 hrs ago0xcda342715528b24eb5e840b847e83900b71dc0f10xfc8a3228844577d0b70845341c8a9c66cb8858be2 Ether
0x0eda69ec4ff6842a96604bb354436b8a41e67491c2cec160776fefb37a7685e64892734282 days 3 hrs ago0xcda342715528b24eb5e840b847e83900b71dc0f10xfc8a3228844577d0b70845341c8a9c66cb8858be0.1 Ether
0x50398d9c75701867df2b0247abdff987ecc07fe7306e0d0b2cb1ec3e112246964892097282 days 6 hrs ago0xcda342715528b24eb5e840b847e83900b71dc0f10xfc8a3228844577d0b70845341c8a9c66cb8858be0.4 Ether
0x62a089399940489d002bf45b7f96a969ae6edf0c1300460fd924578007529ebb4890100282 days 15 hrs ago0xcda342715528b24eb5e840b847e83900b71dc0f10xfc8a3228844577d0b70845341c8a9c66cb8858be0.18 Ether
0x4355a7b5cd001b5589eea89e824ec9b6ff7986ba8551feb8bc39c04a6b5165d54879484284 days 14 hrs ago0xcda342715528b24eb5e840b847e83900b71dc0f10xfc8a3228844577d0b70845341c8a9c66cb8858be0.10060737 Ether
0x3573f7e72c814c0fd002a23fc81ae9b4a47d0ed1ce8d2c34c5f2f4f7cc7d3f4c4870850286 days 4 hrs ago0xcda342715528b24eb5e840b847e83900b71dc0f10xfc8a3228844577d0b70845341c8a9c66cb8858be0.25 Ether
0x1732668da71355e3f685e8f032d90dc399d8014f57b6748b3a8910da0ae9348f4864429287 days 8 hrs ago0xcda342715528b24eb5e840b847e83900b71dc0f10xfc8a3228844577d0b70845341c8a9c66cb8858be0.2 Ether
0x845eb848d0cc8c8387850101d6190a945d1b9da84f1469724306957ebb960a214858656288 days 10 hrs ago0xcda342715528b24eb5e840b847e83900b71dc0f10xfc8a3228844577d0b70845341c8a9c66cb8858be0.24623847625 Ether
0x5d95b51a949e0f94141e23e8722dbcf5af32221456f763160d1b588e5bc002344858471288 days 11 hrs ago0xcda342715528b24eb5e840b847e83900b71dc0f10xfc8a3228844577d0b70845341c8a9c66cb8858be0.2 Ether
0xc9fe4c227b490df6ed61e059334d9ef6cfb5a3370076644f43b826faadbca5c34847734290 days 11 hrs ago0xcda342715528b24eb5e840b847e83900b71dc0f10xfc8a3228844577d0b70845341c8a9c66cb8858be1.7 Ether
0x397348243ca34ae4822754189c3714b97b9d282b10dd3dc351536c484122549b4833757292 days 21 hrs ago0xcda342715528b24eb5e840b847e83900b71dc0f10xfc8a3228844577d0b70845341c8a9c66cb8858be0.1 Ether
0x15ad6289dbdeff8beeb3b56d3da0a42f2ee4f016feeed0c4c1768d4e0211982f4817112295 days 17 hrs ago0xcda342715528b24eb5e840b847e83900b71dc0f10xfc8a3228844577d0b70845341c8a9c66cb8858be1 Ether
0x3ecadcb83029110f79cea2725eef5ecc4e88b4144e2acd4bf500a73c705bb4144802713298 days 4 hrs ago0xcda342715528b24eb5e840b847e83900b71dc0f10xfc8a3228844577d0b70845341c8a9c66cb8858be0.10267296 Ether
[ Download CSV Export  ] 
Contract Name: Crowdsale
Compiler Text: v0.4.11+commit.68ef5810
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.11;

// Created for conduction of Zaber ICO - http://www.zabercoin.io/
// Copying in whole or in part is prohibited.
// This code is the property of ICORating and ICOmachine - http://ICORating.com
// Authors: Ivan Fedorov and Dmitry Borodin

/**
 * @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 does not 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 {
    address public owner;
    
    
    /**
     * @dev The Ownable constructor sets the original `owner` of the contract to the sender
     * account.
     */
    function Ownable() public {
        owner = msg.sender;
    }
    
    
    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }
    
    
    /**
     * @dev Allows the current owner to transfer control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     */
    function transferOwnership(address newOwner) onlyOwner public{
        require(newOwner != address(0));
        owner = newOwner;
    }
    
}

/**
 * @title Pausable
 * @dev Base contract which allows children to implement an emergency stop mechanism.
 */
contract Pausable is Ownable {
    event Pause();
    event Unpause();
    
    bool _paused = false;
    
    function paused() public constant returns(bool)
    {
        return _paused;
    }
    
    
    /**
     * @dev modifier to allow actions only when the contract IS paused
     */
    modifier whenNotPaused() {
        require(!paused());
        _;
    }
    
    /**
     * @dev called by the owner to pause, triggers stopped state
     */
    function pause() onlyOwner public {
        require(!_paused);
        _paused = true;
        Pause();
    }
    
    /**
     * @dev called by the owner to unpause, returns to normal state
     */
    function unpause() onlyOwner public {
        require(_paused);
        _paused = false;
        Unpause();
    }
}


// Contract interface for transferring current tokens to another
contract MigrationAgent
{
    function migrateFrom(address _from, uint256 _value) public;
}


// (A2)
// Contract token
contract Token is Pausable{
    using SafeMath for uint256;
    
    string public constant name = "ZABERcoin";
    string public constant symbol = "ZAB";
    uint8 public constant decimals = 18;
    
    uint256 public totalSupply;
    
    mapping(address => uint256) balances;
    mapping (address => mapping (address => uint256)) allowed;
    
    mapping (address => bool) public unpausedWallet;
    
    bool public mintingFinished = false;
    
    uint256 public totalMigrated;
    address public migrationAgent;
    
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    
    event Mint(address indexed to, uint256 amount);
    event MintFinished();
    
    event Migrate(address indexed _from, address indexed _to, uint256 _value);
    
    modifier canMint() {
        require(!mintingFinished);
        _;
    }
    
    function Token(){
        owner = 0x0;
    }    
    
    function setOwner() public{
        require(owner == 0x0);
        owner = msg.sender;
    }    
    
    // Balance of the specified address
    function balanceOf(address _owner) public constant returns (uint256 balance) {
        return balances[_owner];
    }
    
    // Transfer of tokens from one account to another
    function transfer(address _to, uint256 _value) public whenNotPaused returns (bool) {
        require (_value > 0);
        balances[msg.sender] = balances[msg.sender].sub(_value);
        balances[_to] = balances[_to].add(_value);
        Transfer(msg.sender, _to, _value);
        return true;
    }
    
    // Returns the number of tokens that _owner trusted to spend from his account _spender
    function allowance(address _owner, address _spender) public constant returns (uint256 remaining) {
        return allowed[_owner][_spender];
    }
    
    // Trust _sender and spend _value tokens from your account
    function approve(address _spender, uint256 _value) public returns (bool) {
      
        // To change the approve amount you first have to reduce the addresses
        //  allowance to zero by calling `approve(_spender, 0)` if it is not
        //  already 0 to mitigate the race condition described here:
        //  https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
        require((_value == 0) || (allowed[msg.sender][_spender] == 0));
      
        allowed[msg.sender][_spender] = _value;
        Approval(msg.sender, _spender, _value);
        return true;
    }
    
    // Transfer of tokens from the trusted address _from to the address _to in the number _value
    function transferFrom(address _from, address _to, uint256 _value) public whenNotPaused returns (bool) {
        var _allowance = allowed[_from][msg.sender];
      
        // Check is not needed because sub(_allowance, _value) will already throw if this condition is not met
        // require (_value <= _allowance);
      
        require (_value > 0);
      
        balances[_from] = balances[_from].sub(_value);
        balances[_to] = balances[_to].add(_value);
        allowed[_from][msg.sender] = _allowance.sub(_value);
        Transfer(_from, _to, _value);
        return true;
    }
    
    // Issue new tokens to the address _to in the amount _amount. Available to the owner of the contract (contract Crowdsale)
    function mint(address _to, uint256 _amount) public onlyOwner canMint returns (bool) {
        totalSupply = totalSupply.add(_amount);
        balances[_to] = balances[_to].add(_amount);
        Mint(_to, _amount);
        Transfer(0x0, _to, _amount);
        return true;
    }
    
    // Stop the release of tokens. This is not possible to cancel. Available to the owner of the contract.
	//    function finishMinting() public onlyOwner returns (bool) {
	//        mintingFinished = true;
	//        MintFinished();
	//        return true;
	//    }
    
    // Redefinition of the method of the returning status of the "Exchange pause". 
    // Never for the owner of an unpaused wallet.
    function paused() public constant returns(bool) {
        return super.paused() && !unpausedWallet[msg.sender];
    }
    
    
    // Add a wallet ignoring the "Exchange pause". Available to the owner of the contract.
    function addUnpausedWallet(address _wallet) public onlyOwner {
        unpausedWallet[_wallet] = true;
    }
    
    // Remove the wallet ignoring the "Exchange pause". Available to the owner of the contract.
    function delUnpausedWallet(address _wallet) public onlyOwner {
         unpausedWallet[_wallet] = false;
    }
    
    // Enable the transfer of current tokens to others. Only 1 time. Disabling this is not possible. 
    // Available to the owner of the contract.
    function setMigrationAgent(address _migrationAgent) public onlyOwner {
        require(migrationAgent == 0x0);
        migrationAgent = _migrationAgent;
    }
    
    // Reissue your tokens.
    function migrate() public
    {
        uint256 value = balances[msg.sender];
        require(value > 0);
    
        totalSupply = totalSupply.sub(value);
        totalMigrated = totalMigrated.add(value);
        MigrationAgent(migrationAgent).migrateFrom(msg.sender, value);
        Migrate(msg.sender,migrationAgent,value);
        balances[msg.sender] = 0;
    }
}


// (A3)
// Contract for freezing of investors' funds. Hence, investors will be able to withdraw money if the 
// round does not attain the softcap. From here the wallet of the beneficiary will receive all the 
// money (namely, the beneficiary, not the manager's wallet).
contract RefundVault is Ownable {
    using SafeMath for uint256;
  
	uint8 public round = 0;

	enum State { Active, Refunding, Closed }
  
    mapping (uint8 => mapping (address => uint256)) public deposited;

    State public state;
  
    event Closed();
    event RefundsEnabled();
    event Refunded(address indexed beneficiary, uint256 weiAmount);
  
    function RefundVault() public {
        state = State.Active;
    }
  
    // Depositing funds on behalf of an ICO investor. Available to the owner of the contract (Crowdsale Contract).
    function deposit(address investor) onlyOwner public payable {
        require(state == State.Active);
		deposited[round][investor] = deposited[round][investor].add(msg.value);
    }
  
    // Move the collected funds to a specified address. Available to the owner of the contract.
    function close(address _wallet) onlyOwner public {
        require(state == State.Active);
        require(_wallet != 0x0);
        state = State.Closed;
        Closed();
        _wallet.transfer(this.balance);
    }
  
    // Allow refund to investors. Available to the owner of the contract.
    function enableRefunds() onlyOwner public {
        require(state == State.Active);
        state = State.Refunding;
        RefundsEnabled();
    }
  
    // Return the funds to a specified investor. In case of failure of the round, the investor 
    // should call this method of this contract (RefundVault) or call the method claimRefund of Crowdsale 
    // contract. This function should be called either by the investor himself, or the company 
    // (or anyone) can call this function in the loop to return funds to all investors en masse.
    function refund(address investor) public {
        require(state == State.Refunding);
		uint256 depositedValue = deposited[round][investor];
		deposited[round][investor] = 0;
        investor.transfer(depositedValue);
        Refunded(investor, depositedValue);
    }

	function restart() onlyOwner public{
	    require(state == State.Closed);
	    round += 1;
	    state = State.Active;
	}
  
    // Destruction of the contract with return of funds to the specified address. Available to
    // the owner of the contract.
    function del(address _wallet) public onlyOwner {
        selfdestruct(_wallet);
    }
}


contract DistributorRefundVault is RefundVault{
 
    address public taxCollector;
    uint256 public taxValue;
    
    function DistributorRefundVault(address _taxCollector, uint256 _taxValue) RefundVault() public{
        taxCollector = _taxCollector;
        taxValue = _taxValue;
    }
   
    function close(address _wallet) onlyOwner public {
    
        require(state == State.Active);
        require(_wallet != 0x0);
        
        state = State.Closed;
        Closed();
        uint256 allPay = this.balance;
        uint256 forTarget1;
        uint256 forTarget2;
        if(taxValue <= allPay){
           forTarget1 = taxValue;
           forTarget2 = allPay.sub(taxValue);
           taxValue = 0;
        }else {
            taxValue = taxValue.sub(allPay);
            forTarget1 = allPay;
            forTarget2 = 0;
        }
        if(forTarget1 != 0){
            taxCollector.transfer(forTarget1);
        }
       
        if(forTarget2 != 0){
            _wallet.transfer(forTarget2);
        }

    }

}


// (A1)
// The main contract for the sale and management of rounds.
contract Crowdsale{
    using SafeMath for uint256;

    enum ICOType {preSale, sale}
    enum Roles {beneficiary,accountant,manager,observer,team}

    Token public token;

    bool public isFinalized = false;
    bool public isInitialized = false;
    bool public isPausedCrowdsale = false;

    mapping (uint8 => address) public wallets;

    uint256 public maxProfit;   // percent from 0 to 90
    uint256 public minProfit;   // percent from 0 to 90
    uint256 public stepProfit;  // percent step, from 1 to 50 (please, read doc!)

    uint256 public startTime;        // unixtime
    uint256 public endDiscountTime;  // unixtime
    uint256 public endTime;          // unixtime

    // How many tokens (excluding the bonus) are transferred to the investor in exchange for 1 ETH
    // **THOUSANDS** 10^3 for human, 1**3 for Solidity, 1e3 for MyEtherWallet (MEW). 
    // Example: if 1ETH = 40.5 Token ==> use 40500
    uint256 public rate;        
      
    // If the round does not attain this value before the closing date, the round is recognized as a 
    // failure and investors take the money back (the founders will not interfere in any way).
    // **QUINTILLIONS** 10^18 / 1**18 / 1e18. Example: softcap=15ETH ==> use 15**18 (Solidity) or 15e18 (MEW)
    uint256 public softCap;

    // The maximum possible amount of income
    // **QUINTILLIONS** 10^18 / 1**18 / 1e18. Example: hardcap=123.45ETH ==> use 123450**15 (Solidity) or 12345e15 (MEW)
    uint256 public hardCap;

    // If the last payment is slightly higher than the hardcap, then the usual contracts do 
    // not accept it, because it goes beyond the hardcap. However it is more reasonable to accept the
    // last payment, very slightly raising the hardcap. The value indicates by how many ETH the 
    // last payment can exceed the hardcap to allow it to be paid. Immediately after this payment, the 
    // round closes. The funders should write here a small number, not more than 1% of the CAP.
    // Can be equal to zero, to cancel.
    // **QUINTILLIONS** 10^18 / 1**18 / 1e18
    uint256 public overLimit;

    // The minimum possible payment from an investor in ETH. Payments below this value will be rejected.
    // **QUINTILLIONS** 10^18 / 1**18 / 1e18. Example: minPay=0.1ETH ==> use 100**15 (Solidity) or 100e15 (MEW)
    uint256 public minPay;

    uint256 ethWeiRaised;
    uint256 nonEthWeiRaised;
    uint256 weiPreSale;
    uint256 public tokenReserved;

    DistributorRefundVault public vault;

    SVTAllocation public lockedAllocation;

    ICOType ICO = ICOType.preSale;

    uint256 allToken;

    bool public team = false;

    event TokenPurchase(address indexed purchaser, address indexed beneficiary, uint256 value, uint256 amount);

    event Finalized();
    event Initialized();

    function Crowdsale(Token _token) public
    {

        // Initially, all next 5-7 roles/wallets are given to the Manager. The Manager is an employee of the company 
        // with knowledge of IT, who publishes the contract and sets it up. However, money and tokens require 
        // a Beneficiary and other roles (Accountant, Team, etc.). The Manager will not have the right 
        // to receive them. To enable this, the Manager must either enter specific wallets here, or perform 
        // this via method changeWallet. In the finalization methods it is written which wallet and 
        // what percentage of tokens are received.

        // Receives all the money (when finalizing pre-ICO & ICO)
        wallets[uint8(Roles.beneficiary)] = 0x8d6b447f443ce7cAA12399B60BC9E601D03111f9; 

        // Receives all the tokens for non-ETH investors (when finalizing pre-ICO & ICO)
        wallets[uint8(Roles.accountant)] = 0x99a280Dc34A996474e5140f34434CE59b5e65879;

        // All rights except the rights to receive tokens or money. Has the right to change any other 
        // wallets (Beneficiary, Accountant, ...), but only if the round has not started. Once the 
        // round is initialized, the Manager has lost all rights to change the wallets.
        // If the ICO is conducted by one person, then nothing needs to be changed. Permit all 7 roles 
        // point to a single wallet.
        wallets[uint8(Roles.manager)] = msg.sender; 

        // Has only the right to call paymentsInOtherCurrency (please read the document)
        wallets[uint8(Roles.observer)] = 0x8baf8F18256952362E485fEF1D0909F21f9a886C;

        // When the round is finalized, all team tokens are transferred to a special freezing 
        // contract. As soon as defrosting is over, only the Team wallet will be able to 
        // collect all the tokens. It does not store the address of the freezing contract, 
        // but the final wallet of the project team.
        wallets[uint8(Roles.team)] = 0x25365d4B293Ec34c39C00bBac3e5C5Ff2dC81F4F;

        // startTime, endDiscountTime, endTime (then you can change it in the setup)
        changePeriod(1510311600, 1511607600, 1511607600);

        // softCap & hardCap (then you can change it in the setup)
        changeTargets(0 ether, 51195 ether); // $15 000 000 / $293

        // rate (10^3), overLimit (10^18), minPay (10^18) (then you can change it in the setup)
        changeRate(61250, 500 ether, 10 ether);

        // minProfit, maxProfit, stepProfit
        changeDiscount(0,0,0);
 
        token = _token;
        token.setOwner();

        token.pause(); // block exchange tokens

        token.addUnpausedWallet(msg.sender);

        // The return of funds to investors & pay fee for partner 
        vault = new DistributorRefundVault(0x793ADF4FB1E8a74Dfd548B5E2B5c55b6eeC9a3f8, 10 ether);
    }

    // Returns the name of the current round in plain text. Constant.
    function ICOSaleType()  public constant returns(string){
        return (ICO == ICOType.preSale)?'pre ICO':'ICO';
    }

    // Transfers the funds of the investor to the contract of return of funds. Internal.
    function forwardFunds() internal {
        vault.deposit.value(msg.value)(msg.sender);
    }

    // Check for the possibility of buying tokens. Inside. Constant.
    function validPurchase() internal constant returns (bool) {

        // The round started and did not end
        bool withinPeriod = (now > startTime && now < endTime);

        // Rate is greater than or equal to the minimum
        bool nonZeroPurchase = msg.value >= minPay;

        // hardCap is not reached, and in the event of a transaction, it will not be exceeded by more than OverLimit
        bool withinCap = msg.value <= hardCap.sub(weiRaised()).add(overLimit);

        // round is initialized and no "Pause of trading" is set
        return withinPeriod && nonZeroPurchase && withinCap && isInitialized && !isPausedCrowdsale;
    }

    // Check for the ability to finalize the round. Constant.
    function hasEnded() public constant returns (bool) {

        bool timeReached = now > endTime;

        bool capReached = weiRaised() >= hardCap;

        return (timeReached || capReached) && isInitialized;
    }

    // Finalize. Only available to the Manager and the Beneficiary. If the round failed, then 
    // anyone can call the finalization to unlock the return of funds to investors
    // You must call a function to finalize each round (after the pre-ICO & after the ICO)
    function finalize() public {

        require(wallets[uint8(Roles.manager)] == msg.sender || wallets[uint8(Roles.beneficiary)] == msg.sender || !goalReached());
        require(!isFinalized);
        require(hasEnded());

        isFinalized = true;
        finalization();
        Finalized();
    }

    // The logic of finalization. Internal
    function finalization() internal {

        // If the goal of the achievement
        if (goalReached()) {

            // Send ether to Beneficiary
	        vault.close(wallets[uint8(Roles.beneficiary)]);

            // if there is anything to give
            if (tokenReserved > 0) {

                // Issue tokens of non-eth investors to Accountant account
                token.mint(wallets[uint8(Roles.accountant)],tokenReserved);

                // Reset the counter
                tokenReserved = 0;
            }

            // If the finalization is Round 1 pre-ICO
            if (ICO == ICOType.preSale) {

                // Reset settings
                isInitialized = false;
                isFinalized = false;

                // Switch to the second round (to ICO)
                ICO = ICOType.sale;

                // Reset the collection counter
                weiPreSale = weiRaised();
                ethWeiRaised = 0;
                nonEthWeiRaised = 0;

                // Re-start a refund contract
                vault.restart();


            } 
            else // If the second round is finalized 
            { 

                // Record how many tokens we have issued
                allToken = token.totalSupply();

                // Permission to collect tokens to those who can pick them up
                team = true;
            }

        }
        else // If they failed round
        { 
            // Allow investors to withdraw their funds
            vault.enableRefunds();
        }
    }

    // The Manager freezes the tokens for the Team.
    // You must call a function to finalize Round 2 (only after the ICO)
    function finalize1()  public {
        require(wallets[uint8(Roles.manager)] == msg.sender);
        require(team);
        team = false;
        lockedAllocation = new SVTAllocation(token, wallets[uint8(Roles.team)]);
        token.addUnpausedWallet(lockedAllocation);
        // 20% - tokens to Team wallet after freeze (80% for investors)
        // *** CHECK THESE NUMBERS ***
        token.mint(lockedAllocation,allToken.mul(20).div(80));
    }

    // Initializing the round. Available to the manager. After calling the function, 
    // the Manager loses all rights: Manager can not change the settings (setup), change 
    // wallets, prevent the beginning of the round, etc. You must call a function after setup 
    // for the initial round (before the Pre-ICO and before the ICO)
    function initialize() public{

        // Only the Manager
        require(wallets[uint8(Roles.manager)] == msg.sender);

        // If not yet initialized
        require(!isInitialized);

        // And the specified start time has not yet come
        // If initialization return an error, check the start date!
        require(now <= startTime);

        initialization();

        Initialized();

        isInitialized = true;
    }

    function initialization() internal {
	    // no code
    }

    // At the request of the investor, we raise the funds (if the round has failed because of the hardcap)
    function claimRefund() public{
        vault.refund(msg.sender);
    }

    // We check whether we collected the necessary minimum funds. Constant.
    function goalReached() public constant returns (bool) {
        return weiRaised() >= softCap;
    }

    // Customize. The arguments are described in the constructor above.
    function setup(uint256 _startTime, uint256 _endDiscountTime, uint256 _endTime, uint256 _softCap, uint256 _hardCap, uint256 _rate, uint256 _overLimit, uint256 _minPay, uint256 _minProfit, uint256 _maxProfit, uint256 _stepProfit) public{
            changePeriod(_startTime, _endDiscountTime, _endTime);
            changeTargets(_softCap, _hardCap);
            changeRate(_rate, _overLimit, _minPay);
            changeDiscount(_minProfit, _maxProfit, _stepProfit);
    }  

	// Change the date and time: the beginning of the round, the end of the bonus, the end of the round. Available to Manager
    // Description in the Crowdsale constructor
    function changePeriod(uint256 _startTime, uint256 _endDiscountTime, uint256 _endTime) public{

        require(wallets[uint8(Roles.manager)] == msg.sender);

        require(!isInitialized);

        // Date and time are correct
        require(now <= _startTime);
        require(_endDiscountTime > _startTime && _endDiscountTime <= _endTime);

        startTime = _startTime;
        endTime = _endTime;
        endDiscountTime = _endDiscountTime;

    }

    // We change the purpose of raising funds. Available to the manager.
    // Description in the Crowdsale constructor.
    function changeTargets(uint256 _softCap, uint256 _hardCap) public {

        require(wallets[uint8(Roles.manager)] == msg.sender);

        require(!isInitialized);

        // The parameters are correct
        require(_softCap <= _hardCap);

        softCap = _softCap;
        hardCap = _hardCap;
    }

    // Change the price (the number of tokens per 1 eth), the maximum hardCap for the last bet, 
    // the minimum bet. Available to the Manager.
    // Description in the Crowdsale constructor
    function changeRate(uint256 _rate, uint256 _overLimit, uint256 _minPay) public {

         require(wallets[uint8(Roles.manager)] == msg.sender);

         require(!isInitialized);

         require(_rate > 0);

         rate = _rate;
         overLimit = _overLimit;
         minPay = _minPay;
    }

    // We change the parameters of the discount:% min bonus,% max bonus, number of steps. 
    // Available to the manager. Description in the Crowdsale constructor
    function changeDiscount(uint256 _minProfit, uint256 _maxProfit, uint256 _stepProfit) public {

        require(wallets[uint8(Roles.manager)] == msg.sender);

        require(!isInitialized);

        // The parameters are correct
        require(_stepProfit <= _maxProfit.sub(_minProfit));

        // If not zero steps
        if(_stepProfit > 0){
            // We will specify the maximum percentage at which it is possible to provide 
            // the specified number of steps without fractional parts
            maxProfit = _maxProfit.sub(_minProfit).div(_stepProfit).mul(_stepProfit).add(_minProfit);
        }else{
            // to avoid a divide to zero error, set the bonus as static
            maxProfit = _minProfit;
        }

        minProfit = _minProfit;
        stepProfit = _stepProfit;
    }

    // Collected funds for the current round. Constant.
    function weiRaised() public constant returns(uint256){
        return ethWeiRaised.add(nonEthWeiRaised);
    }

    // Returns the amount of fees for both phases. Constant.
    function weiTotalRaised() public constant returns(uint256){
        return weiPreSale.add(weiRaised());
    }

    // Returns the percentage of the bonus on the current date. Constant.
    function getProfitPercent() public constant returns (uint256){
        return getProfitPercentForData(now);
    }

    // Returns the percentage of the bonus on the given date. Constant.
    function getProfitPercentForData(uint256 timeNow) public constant returns (uint256)
    {
        // if the discount is 0 or zero steps, or the round does not start, we return the minimum discount
        if(maxProfit == 0 || stepProfit == 0 || timeNow > endDiscountTime) {
            return minProfit.add(100);
        }

        // if the round is over - the maximum
        if(timeNow<=startTime) {
            return maxProfit.add(100);
        }

        // bonus period
        uint256 range = endDiscountTime.sub(startTime);

        // delta bonus percentage
        uint256 profitRange = maxProfit.sub(minProfit);

        // Time left
        uint256 timeRest = endDiscountTime.sub(timeNow);

        // Divide the delta of time into
        uint256 profitProcent = profitRange.div(stepProfit).mul(timeRest.mul(stepProfit.add(1)).div(range));
        return profitProcent.add(minProfit).add(100);
    }

    // The ability to quickly check pre-ICO (only for Round 1, only 1 time). Completes the pre-ICO by 
    // transferring the specified number of tokens to the Accountant's wallet. Available to the Manager. 
    // Use only if this is provided by the script and white paper. In the normal scenario, it 
    // does not call and the funds are raised normally. We recommend that you delete this 
    // function entirely, so as not to confuse the auditors. Initialize & Finalize not needed. 
    // ** QUINTILIONS **  10^18 / 1**18 / 1e18
    function fastICO(uint256 _totalSupply) public {
      require(wallets[uint8(Roles.manager)] == msg.sender);
      require(ICO == ICOType.preSale && !isInitialized);
      token.mint(wallets[uint8(Roles.accountant)], _totalSupply);
      ICO = ICOType.sale;
    }
    
    // Remove the "Pause of exchange". Available to the manager at any time. If the 
    // manager refuses to remove the pause, then 120 days after the successful 
    // completion of the ICO, anyone can remove a pause and allow the exchange to continue. 
    // The manager does not interfere and will not be able to delay the term. 
    // He can only cancel the pause before the appointed time.
    function tokenUnpause() public {
        require(wallets[uint8(Roles.manager)] == msg.sender 
        	|| (now > endTime + 120 days && ICO == ICOType.sale && isFinalized && goalReached()));
        token.unpause();
    }

    // Enable the "Pause of exchange". Available to the manager until the ICO is completed.
    // The manager cannot turn on the pause, for example, 3 years after the end of the ICO.
    function tokenPause() public {
        require(wallets[uint8(Roles.manager)] == msg.sender && !isFinalized);
        token.pause();
    }
    
    // Pause of sale. Available to the manager.
    function crowdsalePause() public {
        require(wallets[uint8(Roles.manager)] == msg.sender);
        require(isPausedCrowdsale == false);
        isPausedCrowdsale = true;
    }

    // Withdrawal from the pause of sale. Available to the manager.
    function crowdsaleUnpause() public {
        require(wallets[uint8(Roles.manager)] == msg.sender);
        require(isPausedCrowdsale == true);
        isPausedCrowdsale = false;
    }

    // Checking whether the rights to address ignore the "Pause of exchange". If the 
    // wallet is included in this list, it can translate tokens, ignoring the pause. By default, 
    // only the following wallets are included: 
    //    - Accountant wallet (he should immediately transfer tokens, but not to non-ETH investors)
    //    - Contract for freezing the tokens for the Team (but Team wallet not included)
    // Inside. Constant.
    function unpausedWallet(address _wallet) internal constant returns(bool) {
        bool _accountant = wallets[uint8(Roles.accountant)] == _wallet;
        return _accountant;
    }

    // For example - After 5 years of the project's existence, all of us suddenly decided collectively 
    // (company + investors) that it would be more profitable for everyone to switch to another smart 
    // contract responsible for tokens. The company then prepares a new token, investors 
    // disassemble, study, discuss, etc. After a general agreement, the manager allows any investor:
	//      - to burn the tokens of the previous contract
	//      - generate new tokens for a new contract
	// It is understood that after a general solution through this function all investors 
	// will collectively (and voluntarily) move to a new token.
    function moveTokens(address _migrationAgent) public {
        require(wallets[uint8(Roles.manager)] == msg.sender);
        token.setMigrationAgent(_migrationAgent);
    }

	// Change the address for the specified role.
	// Available to any wallet owner except the observer.
	// Available to the manager until the round is initialized.
	// The Observer's wallet or his own manager can change at any time.
    function changeWallet(Roles _role, address _wallet) public
    {
        require(
        		(msg.sender == wallets[uint8(_role)] && _role != Roles.observer)
      		||
      			(msg.sender == wallets[uint8(Roles.manager)] && (!isInitialized || _role == Roles.observer))
      	);
        address oldWallet = wallets[uint8(_role)];
        wallets[uint8(_role)] = _wallet;
        if(!unpausedWallet(oldWallet))
            token.delUnpausedWallet(oldWallet);
        if(unpausedWallet(_wallet))
            token.addUnpausedWallet(_wallet);
    }

    // If a little more than a year has elapsed (ICO start date + 460 days), a smart contract 
    // will allow you to send all the money to the Beneficiary, if any money is present. This is 
    // possible if you mistakenly launch the ICO for 30 years (not 30 days), investors will transfer 
    // money there and you will not be able to pick them up within a reasonable time. It is also 
    // possible that in our checked script someone will make unforeseen mistakes, spoiling the 
    // finalization. Without finalization, money cannot be returned. This is a rescue option to 
    // get around this problem, but available only after a year (460 days).

	// Another reason - the ICO was a failure, but not all ETH investors took their money during the year after. 
	// Some investors may have lost a wallet key, for example.

	// The method works equally with the pre-ICO and ICO. When the pre-ICO starts, the time for unlocking 
	// the distructVault begins. If the ICO is then started, then the term starts anew from the first day of the ICO.

	// Next, act independently, in accordance with obligations to investors.

	// Within 400 days of the start of the Round, if it fails only investors can take money. After 
	// the deadline this can also include the company as well as investors, depending on who is the first to use the method.
    function distructVault() public {
        require(wallets[uint8(Roles.beneficiary)] == msg.sender);
        require(now > startTime + 400 days);
        vault.del(wallets[uint8(Roles.beneficiary)]);
    }


	// We accept payments other than Ethereum (ETH) and other currencies, for example, Bitcoin (BTC). 
	// Perhaps other types of cryptocurrency - see the original terms in the white paper and on the ICO website.

	// We release tokens on Ethereum. During the pre-ICO and ICO with a smart contract, you directly transfer 
	// the tokens there and immediately, with the same transaction, receive tokens in your wallet.

	// When paying in any other currency, for example in BTC, we accept your money via one common wallet. 
	// Our manager fixes the amount received for the bitcoin wallet and calls the method of the smart 
    // contract paymentsInOtherCurrency to inform him how much foreign currency has been received - on a daily basis. 
    // The smart contract pins the number of accepted ETH directly and the number of BTC. Smart contract 
    // monitors softcap and hardcap, so as not to go beyond this framework.
	
	// In theory, it is possible that when approaching hardcap, we will receive a transfer (one or several 
	// transfers) to the wallet of BTC, that together with previously received money will exceed the hardcap in total. 
	// In this case, we will refund all the amounts above, in order not to exceed the hardcap.

	// Collection of money in BTC will be carried out via one common wallet. The wallet's address will be published 
	// everywhere (in a white paper, on the ICO website, on Telegram, on Bitcointalk, in this code, etc.)
	// Anyone interested can check that the administrator of the smart contract writes down exactly the amount 
	// in ETH (in equivalent for BTC) there. In theory, the ability to bypass a smart contract to accept money in 
	// BTC and not register them in ETH creates a possibility for manipulation by the company. Thanks to 
	// paymentsInOtherCurrency however, this threat is leveled.
	
	// Any user can check the amounts in BTC and the variable of the smart contract that accounts for this 
	// (paymentsInOtherCurrency method). Any user can easily check the incoming transactions in a smart contract 
	// on a daily basis. Any hypothetical tricks on the part of the company can be exposed and panic during the ICO, 
	// simply pointing out the incompatibility of paymentsInOtherCurrency (ie, the amount of ETH + BTC collection) 
	// and the actual transactions in BTC. The company strictly adheres to the described principles of openness.
	
	// The company administrator is required to synchronize paymentsInOtherCurrency every working day (but you 
	// cannot synchronize if there are no new BTC payments). In the case of unforeseen problems, such as 
	// brakes on the Ethereum network, this operation may be difficult. You should only worry if the 
	// administrator does not synchronize the amount for more than 96 hours in a row, and the BTC wallet
	// receives significant amounts. 
	
	// This scenario ensures that for the sum of all fees in all currencies this value does not exceed hardcap.

    // Our BTC wallet for audit in this function: 1CAyLcES1tNuatRhnL1ooPViZ32vF5KQ4A

    // ** QUINTILLIONS ** 10^18 / 1**18 / 1e18
    function paymentsInOtherCurrency(uint256 _token, uint256 _value) public {
        require(wallets[uint8(Roles.observer)] == msg.sender);
        bool withinPeriod = (now >= startTime && now <= endTime);
        
        bool withinCap = _value.add(ethWeiRaised) <= hardCap.add(overLimit);
        require(withinPeriod && withinCap && isInitialized);

        nonEthWeiRaised = _value;
        tokenReserved = _token;

    }

    // The function for obtaining smart contract funds in ETH. If all the checks are true, the token is 
    // transferred to the buyer, taking into account the current bonus.
    function buyTokens(address beneficiary) public payable {
        require(beneficiary != 0x0);
        require(validPurchase());

        uint256 weiAmount = msg.value;

        uint256 ProfitProcent = getProfitPercent();
        // calculate token amount to be created
        uint256 tokens = weiAmount.mul(rate).mul(ProfitProcent).div(100000);

        // update state
        ethWeiRaised = ethWeiRaised.add(weiAmount);

        token.mint(beneficiary, tokens);
        TokenPurchase(msg.sender, beneficiary, weiAmount, tokens);

        forwardFunds();
    }

    // buyTokens alias 
    function () public payable {
        buyTokens(msg.sender);
    }

}

// (B)
// The contract for freezing tokens for the team..
contract SVTAllocation {
    using SafeMath for uint256;

    Token public token;

	address public owner;

    uint256 public unlockedAt;

    uint256 tokensCreated = 0;

    // The contract takes the ERC20 coin address from which this contract will work and from the 
    // owner (Team wallet) who owns the funds.
    function SVTAllocation(Token _token, address _owner) public{

    	// How many days to freeze from the moment of finalizing ICO
        unlockedAt = now + 365 days; // freeze TEAM tokens for 1 year
        token = _token;
        owner = _owner;
    }

    // If the time of freezing expired will return the funds to the owner.
    function unlock() public{
        require(now >= unlockedAt);
        require(token.transfer(owner,token.balanceOf(this)));
    }
}

    Contract ABI  
[{"constant":false,"inputs":[],"name":"tokenPause","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_startTime","type":"uint256"},{"name":"_endDiscountTime","type":"uint256"},{"name":"_endTime","type":"uint256"},{"name":"_softCap","type":"uint256"},{"name":"_hardCap","type":"uint256"},{"name":"_rate","type":"uint256"},{"name":"_overLimit","type":"uint256"},{"name":"_minPay","type":"uint256"},{"name":"_minProfit","type":"uint256"},{"name":"_maxProfit","type":"uint256"},{"name":"_stepProfit","type":"uint256"}],"name":"setup","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"tokenUnpause","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_rate","type":"uint256"},{"name":"_overLimit","type":"uint256"},{"name":"_minPay","type":"uint256"}],"name":"changeRate","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_minProfit","type":"uint256"},{"name":"_maxProfit","type":"uint256"},{"name":"_stepProfit","type":"uint256"}],"name":"changeDiscount","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"rate","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"weiTotalRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"ICOSaleType","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"endTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"uint256"},{"name":"_value","type":"uint256"}],"name":"paymentsInOtherCurrency","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"finalize1","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"isInitialized","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"crowdsalePause","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"weiRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"finalize","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getProfitPercent","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_migrationAgent","type":"address"}],"name":"moveTokens","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint8"}],"name":"wallets","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"minProfit","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"startTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"goalReached","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"initialize","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"minPay","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"team","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_role","type":"uint8"},{"name":"_wallet","type":"address"}],"name":"changeWallet","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"isFinalized","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"softCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"timeNow","type":"uint256"}],"name":"getProfitPercentForData","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"distructVault","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_startTime","type":"uint256"},{"name":"_endDiscountTime","type":"uint256"},{"name":"_endTime","type":"uint256"}],"name":"changePeriod","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"stepProfit","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"endDiscountTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"maxProfit","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"claimRefund","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_totalSupply","type":"uint256"}],"name":"fastICO","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"isPausedCrowdsale","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"lockedAllocation","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"overLimit","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"tokenReserved","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_softCap","type":"uint256"},{"name":"_hardCap","type":"uint256"}],"name":"changeTargets","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"beneficiary","type":"address"}],"name":"buyTokens","outputs":[],"payable":true,"type":"function"},{"constant":true,"inputs":[],"name":"hasEnded","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"hardCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"vault","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"crowdsaleUnpause","outputs":[],"payable":false,"type":"function"},{"inputs":[{"name":"_token","type":"address"}],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"purchaser","type":"address"},{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokenPurchase","type":"event"},{"anonymous":false,"inputs":[],"name":"Finalized","type":"event"},{"anonymous":false,"inputs":[],"name":"Initialized","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60606040526000805460a060020a62ffffff02191681556012805460a060020a60ff02191674010000000000000000000000000000000000000000835b02179055506014805460ff1916905534156200005457fe5b604051602080620033d883398101604052515b738d6b447f443ce7caa12399b60bc9e601d03111f960016000805b60ff168152602081019190915260400160009081208054600160a060020a031916600160a060020a0393909316929092179091557399a280dc34a996474e5140f34434ce59b5e6587990600190815b60ff168152602081019190915260400160009081208054600160a060020a031916600160a060020a039390931692909217909155339060019060025b60ff168152602081019190915260400160009081208054600160a060020a031916600160a060020a039390931692909217909155738baf8f18256952362e485fef1d0909f21f9a886c9060019060035b60ff168152602081019190915260400160009081208054600160a060020a031916600160a060020a0393909316929092179091557325365d4b293ec34c39c00bbac3e5c5ff2dc81f4f9060019060045b60ff16815260208101919091526040016000208054600160a060020a031916600160a060020a039290921691909117905562000201635a0586b0635a194d3080640100000000620004488102620018151704565b620002266000690ad74958c943db0c000064010000000062001a8f620004ef82021704565b6200025461ef42681b1ae4d6e2ef500000678ac7230489e8000064010000000062000b866200057282021704565b620002706000808064010000000062000bfa620005fb82021704565b60008054600160a060020a031916600160a060020a0383811691909117808355604080517f40caae06000000000000000000000000000000000000000000000000000000008152905191909216926340caae06926004808201939182900301818387803b1515620002dd57fe5b6102c65a03f11515620002ec57fe5b505060008054604080517f8456cb590000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169350638456cb5992600480830193919282900301818387803b15156200034857fe5b6102c65a03f115156200035757fe5b505060008054604080517fabb00601000000000000000000000000000000000000000000000000000000008152600160a060020a033381166004830152915191909216935063abb006019260248084019391929182900301818387803b1515620003bd57fe5b6102c65a03f11515620003cc57fe5b50505073793adf4fb1e8a74dfd548b5e2b5c55b6eec9a3f8678ac7230489e80000620003f76200079c565b600160a060020a0390921682526020820152604080519182900301906000f08015156200042057fe5b60118054600160a060020a031916600160a060020a03929092169190911790555b50620007ad565b600160a060020a0333166001600060025b60ff168152602081019190915260400160002054600160a060020a031614620004825760006000fd5b6000547501000000000000000000000000000000000000000000900460ff1615620004ad5760006000fd5b4283901115620004bd5760006000fd5b8282118015620004cd5750808211155b1515620004da5760006000fd5b6005839055600781905560068290555b505050565b600160a060020a0333166001600060025b60ff168152602081019190915260400160002054600160a060020a031614620005295760006000fd5b6000547501000000000000000000000000000000000000000000900460ff1615620005545760006000fd5b80821115620005635760006000fd5b6009829055600a8190555b5050565b600160a060020a0333166001600060025b60ff168152602081019190915260400160002054600160a060020a031614620005ac5760006000fd5b6000547501000000000000000000000000000000000000000000900460ff1615620005d75760006000fd5b60008311620005e65760006000fd5b6008839055600b829055600c8190555b505050565b600160a060020a0333166001600060025b60ff168152602081019190915260400160002054600160a060020a031614620006355760006000fd5b6000547501000000000000000000000000000000000000000000900460ff1615620006605760006000fd5b6200067a828464010000000062001d586200071982021704565b811115620006885760006000fd5b60008111156200070357620006fa83620006e583620006d081620006bb888664010000000062001d586200071982021704565b9064010000000062001ca66200073182021704565b9064010000000062001c776200074f82021704565b9064010000000062001cc36200078182021704565b60025562000709565b60028390555b600383905560048190555b505050565b6000828211156200072657fe5b508082035b92915050565b6000600082848115156200074157fe5b0490508091505b5092915050565b60008282028315806200076d57508284828115156200076a57fe5b04145b15156200077657fe5b8091505b5092915050565b6000828201838110156200077657fe5b8091505b5092915050565b60405161082b8062002bad83390190565b6123f080620007bd6000396000f300606060405236156102145763ffffffff60e060020a6000350416630abd2ba8811461022657806313e41971146102385780631b302a161461026e5780631e083cd3146102805780632ad8016e1461029b5780632c4e722e146102b65780632cde15d1146102d85780632eb44efc146102fa5780633197cbb61461038a578063333dbda8146103ac57806336c35f94146103c4578063392e53cd146103d65780633f174064146103fa5780634042b66f1461040c5780634bb278f31461042e578063566fc6de1461044057806363689b4a14610462578063733f28a81461048057806375c81ad0146104b257806378e97925146104d45780637d3d6522146104f65780638129fc1c1461051a57806382d186501461052c57806385f2aef21461054e5780638a0c47cd146105725780638d4e408314610596578063906a26e0146105ba57806391816981146105dc57806399554fb714610601578063a2e6547714610613578063a7b314ac1461062e578063b3f2ecfd14610650578063b539cd5514610672578063b5545a3c14610694578063c6cdc6f6146106a6578063c8b43c10146106bb578063db0834cf146106df578063e06e0e431461070b578063e195d0961461072d578063eb41fbca1461074f578063ec8ac4d814610767578063ecb70fb71461077d578063fb86a404146107a1578063fbfa77cf146107c3578063fc0c546a146107ef578063ffa67f6c1461081b575b6102245b6102213361082d565b5b565b005b341561022e57fe5b610224610993565b005b341561024057fe5b61022460043560243560443560643560843560a43560c43560e435610104356101243561014435610a4e565b005b341561027657fe5b610224610a87565b005b341561028857fe5b610224600435602435604435610b86565b005b34156102a357fe5b610224600435602435604435610bfa565b005b34156102be57fe5b6102c6610ccf565b60408051918252519081900360200190f35b34156102e057fe5b6102c6610cd5565b60408051918252519081900360200190f35b341561030257fe5b61030a610cf7565b604080516020808252835181830152835191928392908301918501908083838215610350575b80518252602083111561035057601f199092019160209182019101610330565b505050905090810190601f16801561037c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561039257fe5b6102c6610d93565b60408051918252519081900360200190f35b34156103b457fe5b610224600435602435610d99565b005b34156103cc57fe5b610224610e55565b005b34156103de57fe5b6103e6611047565b604080519115158252519081900360200190f35b341561040257fe5b610224611057565b005b341561041457fe5b6102c66110d1565b60408051918252519081900360200190f35b341561043657fe5b6102246110f0565b005b341561044857fe5b6102c66111f4565b60408051918252519081900360200190f35b341561046a57fe5b610224600160a060020a0360043516611205565b005b341561048857fe5b61049660ff600435166112b3565b60408051600160a060020a039092168252519081900360200190f35b34156104ba57fe5b6102c66112ce565b60408051918252519081900360200190f35b34156104dc57fe5b6102c66112d4565b60408051918252519081900360200190f35b34156104fe57fe5b6103e66112da565b604080519115158252519081900360200190f35b341561052257fe5b6102246112ef565b005b341561053457fe5b6102c66113a9565b60408051918252519081900360200190f35b341561055657fe5b6103e66113af565b604080519115158252519081900360200190f35b341561057a57fe5b61022460ff60043516600160a060020a03602435166113b8565b005b341561059e57fe5b6103e66115f7565b604080519115158252519081900360200190f35b34156105c257fe5b6102c6611607565b60408051918252519081900360200190f35b34156105e457fe5b6102c660043561160d565b60408051918252519081900360200190f35b341561060957fe5b61022461174b565b005b341561061b57fe5b610224600435602435604435611815565b005b341561063657fe5b6102c66118a5565b60408051918252519081900360200190f35b341561065857fe5b6102c66118ab565b60408051918252519081900360200190f35b341561067a57fe5b6102c66118b1565b60408051918252519081900360200190f35b341561069c57fe5b6102246118b7565b005b34156106ae57fe5b61022460043561192e565b005b34156106c357fe5b6103e6611a64565b604080519115158252519081900360200190f35b34156106e757fe5b610496611a74565b60408051600160a060020a039092168252519081900360200190f35b341561071357fe5b6102c6611a83565b60408051918252519081900360200190f35b341561073557fe5b6102c6611a89565b60408051918252519081900360200190f35b341561075757fe5b610224600435602435611a8f565b005b610224600160a060020a036004351661082d565b005b341561078557fe5b6103e6611afd565b604080519115158252519081900360200190f35b34156107a957fe5b6102c6611b3f565b60408051918252519081900360200190f35b34156107cb57fe5b610496611b45565b60408051600160a060020a039092168252519081900360200190f35b34156107f757fe5b610496611b54565b60408051600160a060020a039092168252519081900360200190f35b341561082357fe5b610224611b63565b005b60008080600160a060020a03841615156108475760006000fd5b61084f611bdb565b151561085b5760006000fd5b3492506108666111f4565b91506108a0620186a06108948461088860085488611c7790919063ffffffff16565b9063ffffffff611c7716565b9063ffffffff611ca616565b600d549091506108b6908463ffffffff611cc316565b600d556000805460408051602090810184905281517f40c10f19000000000000000000000000000000000000000000000000000000008152600160a060020a03898116600483015260248201879052925192909316936340c10f199360448082019492918390030190829087803b151561092c57fe5b6102c65a03f1151561093a57fe5b505060408051858152602081018490528151600160a060020a0380891694503316927f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad18928290030190a361098c611cdd565b5b50505050565b600160a060020a0333166001600060025b60ff168152602081019190915260400160002054600160a060020a03161480156109d8575060005460a060020a900460ff16155b15156109e45760006000fd5b60008054604080517f8456cb590000000000000000000000000000000000000000000000000000000081529051600160a060020a0390921692638456cb599260048084019382900301818387803b1515610a3a57fe5b6102c65a03f11515610a4857fe5b5050505b565b610a598b8b8b611815565b610a638888611a8f565b610a6e868686610b86565b610a79838383610bfa565b5b5050505050505050505050565b600160a060020a0333166001600060025b60ff168152602081019190915260400160002054600160a060020a03161480610b0e5750600754629e34000142118015610aea575060015b60125460a060020a900460ff166001811115610ae857fe5b145b8015610aff575060005460a060020a900460ff165b8015610b0e5750610b0e6112da565b5b5b1515610b1c5760006000fd5b60008054604080517f3f4ba83a0000000000000000000000000000000000000000000000000000000081529051600160a060020a0390921692633f4ba83a9260048084019382900301818387803b1515610a3a57fe5b6102c65a03f11515610a4857fe5b5050505b565b600160a060020a0333166001600060025b60ff168152602081019190915260400160002054600160a060020a031614610bbf5760006000fd5b60005460a860020a900460ff1615610bd75760006000fd5b60008311610be55760006000fd5b6008839055600b829055600c8190555b505050565b600160a060020a0333166001600060025b60ff168152602081019190915260400160002054600160a060020a031614610c335760006000fd5b60005460a860020a900460ff1615610c4b5760006000fd5b610c5b828463ffffffff611d5816565b811115610c685760006000fd5b6000811115610cb957610cb183610ca58361088881610894888663ffffffff611d5816565b9063ffffffff611ca616565b9063ffffffff611c7716565b9063ffffffff611cc316565b600255610cbf565b60028390555b600383905560048190555b505050565b60085481565b6000610cf1610ce26110d1565b600f549063ffffffff611cc316565b90505b90565b610cff6120bb565b60005b60125460a060020a900460ff166001811115610d1a57fe5b14610d585760408051808201909152600381527f49434f00000000000000000000000000000000000000000000000000000000006020820152610cf1565b60408051808201909152600781527f7072652049434f0000000000000000000000000000000000000000000000000060208201525b90505b90565b60075481565b600080600160a060020a03331660018260035b60ff168152602081019190915260400160002054600160a060020a031614610dd45760006000fd5b6005544210158015610de857506007544211155b9150610e01600b54600a54611cc390919063ffffffff16565b600d54610e1590859063ffffffff611cc316565b11159050818015610e235750805b8015610e38575060005460a860020a900460ff165b1515610e445760006000fd5b600e83905560108490555b50505050565b600160a060020a0333166001600060025b60ff168152602081019190915260400160002054600160a060020a031614610e8e5760006000fd5b60145460ff161515610ea05760006000fd5b6014805460ff1916905560008054600160a060020a03169060019060045b60ff168152602081019190915260400160002054600160a060020a0316610ee36120cd565b600160a060020a03928316815291166020820152604080519182900301906000f0801515610f0d57fe5b6012805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03928316179081905560008054604080517fabb0060100000000000000000000000000000000000000000000000000000000815293851660048501525193169263abb0060192602480820193929182900301818387803b1515610f8e57fe5b6102c65a03f11515610f9c57fe5b5050600054601254601354600160a060020a0392831693506340c10f199290911690610fdc90605090610894906014611c77565b9063ffffffff611ca616565b6000604051602001526040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1515610a3a57fe5b6102c65a03f11515610a4857fe5b5050505b565b60005460a860020a900460ff1681565b600160a060020a0333166001600060025b60ff168152602081019190915260400160002054600160a060020a0316146110905760006000fd5b60005460b060020a900460ff16156110a85760006000fd5b6000805476ff00000000000000000000000000000000000000000000191660b060020a1790555b565b6000610cf1600e54600d54611cc390919063ffffffff16565b90505b90565b600160a060020a0333166001600060025b60ff168152602081019190915260400160002054600160a060020a031614806111545750600160a060020a03331660016000805b60ff168152602081019190915260400160002054600160a060020a0316145b8061116457506111626112da565b155b15156111705760006000fd5b60005460a060020a900460ff16156111885760006000fd5b611190611afd565b151561119c5760006000fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1790556111c8611d6f565b6040517f6823b073d48d6e3a7d385eeb601452d680e74bb46afe3255a7d778f3a9b1768190600090a15b565b6000610cf14261160d565b90505b90565b600160a060020a0333166001600060025b60ff168152602081019190915260400160002054600160a060020a03161461123e5760006000fd5b60008054604080517f75e2ff65000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152915191909216926375e2ff65926024808201939182900301818387803b151561129e57fe5b6102c65a03f1151561098c57fe5b5050505b50565b600160205260009081526040902054600160a060020a031681565b60035481565b60055481565b60006009546112e76110d1565b101590505b90565b600160a060020a0333166001600060025b60ff168152602081019190915260400160002054600160a060020a0316146113285760006000fd5b60005460a860020a900460ff16156113405760006000fd5b6005544211156113505760006000fd5b611358610221565b6040517f5daa87a0e9463431830481fd4b6e3403442dfb9a12b9c07597e9f61d50b633c890600090a16000805475ff000000000000000000000000000000000000000000191660a860020a1790555b565b600c5481565b60145460ff1681565b6000600160008460048111156113ca57fe5b60ff16815260208101919091526040016000205433600160a060020a039081169116148015611406575060035b83600481111561140357fe5b14155b8061146257506001600060025b60ff16815260208101919091526040016000205433600160a060020a039081169116148015611462575060005460a860020a900460ff161580611462575060035b83600481111561146057fe5b145b5b5b15156114705760006000fd5b6001600084600481111561148057fe5b60ff1681526020810191909152604001600090812054600160a060020a0316915082906001908560048111156114b257fe5b60ff1681526020810191909152604001600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790556114f98161207f565b15156115715760008054604080517f06301ce8000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152915191909216926306301ce8926024808201939182900301818387803b151561155f57fe5b6102c65a03f1151561156d57fe5b5050505b61157a8261207f565b15610a485760008054604080517fabb00601000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301529151919092169263abb00601926024808201939182900301818387803b15156115df57fe5b6102c65a03f115156115ed57fe5b5050505b5b505050565b60005460a060020a900460ff1681565b60095481565b60006000600060006000600254600014806116285750600454155b80611634575060065486115b156116545760035461164d90606463ffffffff611cc316565b9450611742565b60055486116116785760025461164d90606463ffffffff611cc316565b9450611742565b60055460065461168d9163ffffffff611d5816565b93506116a6600354600254611d5890919063ffffffff16565b6006549093506116bc908763ffffffff611d5816565b91506117176116f7856108946116de6001600454611cc390919063ffffffff16565b869063ffffffff611c7716565b9063ffffffff611ca616565b60045461088890869063ffffffff611ca616565b9063ffffffff611c7716565b905061173f6064610ca560035484611cc390919063ffffffff16565b9063ffffffff611cc316565b94505b50505050919050565b600160a060020a03331660016000805b60ff168152602081019190915260400160002054600160a060020a0316146117835760006000fd5b60055463020f58000142116117985760006000fd5b601154600160a060020a031663b9caebf460016000805b60ff16815260208101919091526040908101600090812054825160e060020a63ffffffff8616028152600160a060020a039091166004820152915160248084019382900301818387803b1515610a3a57fe5b6102c65a03f11515610a4857fe5b5050505b565b600160a060020a0333166001600060025b60ff168152602081019190915260400160002054600160a060020a03161461184e5760006000fd5b60005460a860020a900460ff16156118665760006000fd5b42839011156118755760006000fd5b82821180156118845750808211155b15156118905760006000fd5b6005839055600781905560068290555b505050565b60045481565b60065481565b60025481565b601154604080517ffa89401a000000000000000000000000000000000000000000000000000000008152600160a060020a0333811660048301529151919092169163fa89401a91602480830192600092919082900301818387803b1515610a3a57fe5b6102c65a03f11515610a4857fe5b5050505b565b600160a060020a0333166001600060025b60ff168152602081019190915260400160002054600160a060020a0316146119675760006000fd5b60005b60125460a060020a900460ff16600181111561198257fe5b148015611999575060005460a860020a900460ff16155b15156119a55760006000fd5b60008054600160a060020a0316906340c10f1990600190815b60ff168152602080820192909252604090810160009081205482518401829052825160e060020a63ffffffff8716028152600160a060020a039091166004820152602481018790529151604480840194939192918390030190829087803b1515611a2457fe5b6102c65a03f11515611a3257fe5b5050601280546001925074ff0000000000000000000000000000000000000000191660a060020a835b02179055505b50565b60005460b060020a900460ff1681565b601254600160a060020a031681565b600b5481565b60105481565b600160a060020a0333166001600060025b60ff168152602081019190915260400160002054600160a060020a031614611ac85760006000fd5b60005460a860020a900460ff1615611ae05760006000fd5b80821115611aee5760006000fd5b6009829055600a8190555b5050565b60006000600060075442119150600a54611b156110d1565b101590508180611b225750805b8015611b37575060005460a860020a900460ff165b92505b505090565b600a5481565b601154600160a060020a031681565b600054600160a060020a031681565b600160a060020a0333166001600060025b60ff168152602081019190915260400160002054600160a060020a031614611b9c5760006000fd5b60005460b060020a900460ff161515600114611bb85760006000fd5b6000805476ff00000000000000000000000000000000000000000000191690555b565b600060006000600060055442118015611bf5575060075442105b9250600c543410159150611c2b600b54610ca5611c106110d1565b600a549063ffffffff611d5816565b9063ffffffff611cc316565b3411159050828015611c3a5750815b8015611c435750805b8015611c58575060005460a860020a900460ff165b8015611c6e575060005460b060020a900460ff16155b93505b50505090565b6000828202831580611c935750828482811515611c9057fe5b04145b1515611c9b57fe5b8091505b5092915050565b600060008284811515611cb557fe5b0490508091505b5092915050565b600082820183811015611c9b57fe5b8091505b5092915050565b601154604080517ff340fa01000000000000000000000000000000000000000000000000000000008152600160a060020a0333811660048301529151919092169163f340fa0191349160248082019260009290919082900301818588803b1515611d4357fe5b6125ee5a03f1151561098c57fe5b505050505b565b600082821115611d6457fe5b508082035b92915050565b611d776112da565b1561200c57601154600160a060020a031663c74073a160016000805b60ff16815260208101919091526040908101600090812054825160e060020a63ffffffff8616028152600160a060020a039091166004820152915160248084019382900301818387803b1515611de557fe5b6102c65a03f11515611df357fe5b50505060006010541115611e985760008054600160a060020a0316906340c10f1990600190815b60ff168152602080820192909252604090810160009081205460105483518501839052835160e060020a63ffffffff8816028152600160a060020a03909216600483015260248201529151604480840194939192918390030190829087803b1515611e8157fe5b6102c65a03f11515611e8f57fe5b50506000601055505b60005b60125460a060020a900460ff166001811115611eb357fe5b1415611f86576000805475ffff000000000000000000000000000000000000000019169055601280546001919074ff0000000000000000000000000000000000000000191660a060020a835b0217905550611f0c6110d1565b600f556000600d819055600e819055601154604080517f1ef3755d0000000000000000000000000000000000000000000000000000000081529051600160a060020a0390921692631ef3755d9260048084019382900301818387803b1515611f7057fe5b6102c65a03f11515611f7e57fe5b505050612007565b600060009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401809050602060405180830381600087803b1515611fe157fe5b6102c65a03f11515611fef57fe5b505060405151601355506014805460ff191660011790555b610221565b601154604080517f8c52dc410000000000000000000000000000000000000000000000000000000081529051600160a060020a0390921691638c52dc419160048082019260009290919082900301818387803b1515610a3a57fe5b6102c65a03f11515610a4857fe5b5050505b5b565b5b565b600080600160a060020a038316600182815b60ff168152602081019190915260400160002054600160a060020a03161491508190505b50919050565b60408051602081019091526000815290565b6040516102e7806120de83390190560060606040526000600355341561001157fe5b6040516040806102e78339810160405280516020909101515b6301e13380420160025560008054600160a060020a03808516600160a060020a03199283161790925560018054928416929091169190911790555b50505b610270806100776000396000f300606060405263ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416638cb1e9c1811461005b5780638da5cb5b1461007d578063a69df4b5146100a9578063fc0c546a146100bb575bfe5b341561006357fe5b61006b6100e7565b60408051918252519081900360200190f35b341561008557fe5b61008d6100ed565b60408051600160a060020a039092168252519081900360200190f35b34156100b157fe5b6100b96100fc565b005b34156100c357fe5b61008d610235565b60408051600160a060020a039092168252519081900360200190f35b60025481565b600154600160a060020a031681565b60025442101561010c5760006000fd5b6000805460015460408051602090810185905281517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a03308116600483015292519483169563a9059cbb95939094169386936370a08231936024808501949193918390030190829087803b151561018857fe5b6102c65a03f1151561019657fe5b505050604051805190506000604051602001526040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b151561021057fe5b6102c65a03f1151561021e57fe5b505060405151151590506102325760006000fd5b5b565b600054600160a060020a0316815600a165627a7a72305820036ed9be8bc9a18209c2477de871b2ddd7662429f48365f6459d4c5f97c4e27c0029a165627a7a723058208428a19e1e5584b78b0b59c2c2c8fd128c4103c0975e7070571bd36c02a06809002960606040526000805460a060020a60ff0219169055341561001c57fe5b60405160408061082b8339810160405280516020909101515b5b5b60008054600160a060020a03191633600160a060020a03161790555b600280546000919060ff19166001835b02179055505b6002805461010060a860020a031916610100600160a060020a0385160217905560038190555b50505b61078a806100a16000396000f300606060405236156100c25763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663146ca53181146100c45780631ef3755d146100ea57806347fa061e146100fc5780638c52dc41146101305780638da5cb5b14610142578063b9caebf41461016e578063bea1dcf81461018c578063c19d93fb146101b8578063c74073a1146101ec578063c9894b5c1461020a578063f2fde38b1461022c578063f340fa011461024a578063fa89401a14610260575bfe5b34156100cc57fe5b6100d461027e565b6040805160ff9092168252519081900360200190f35b34156100f257fe5b6100fa61028e565b005b341561010457fe5b61011e60ff60043516600160a060020a0360243516610317565b60408051918252519081900360200190f35b341561013857fe5b6100fa610334565b005b341561014a57fe5b6101526103b0565b60408051600160a060020a039092168252519081900360200190f35b341561017657fe5b6100fa600160a060020a03600435166103bf565b005b341561019457fe5b6101526103eb565b60408051600160a060020a039092168252519081900360200190f35b34156101c057fe5b6101c86103ff565b604051808260028111156101d857fe5b60ff16815260200191505060405180910390f35b34156101f457fe5b6100fa600160a060020a0360043516610408565b005b341561021257fe5b61011e610567565b60408051918252519081900360200190f35b341561023457fe5b6100fa600160a060020a036004351661056d565b005b6100fa600160a060020a03600435166105cc565b005b341561026857fe5b6100fa600160a060020a0360043516610672565b005b60005460a060020a900460ff1681565b60005433600160a060020a039081169116146102aa5760006000fd5b60025b6002805460ff16908111156102be57fe5b146102c95760006000fd5b6000805474ff0000000000000000000000000000000000000000198116600160a060020a9283900460ff90811682011690920217825560028054909160ff1990911690835b02179055505b5b565b600160209081526000928352604080842090915290825290205481565b60005433600160a060020a039081169116146103505760006000fd5b60005b6002805460ff169081111561036457fe5b1461036f5760006000fd5b600280546001919060ff191682805b02179055506040517f599d8e5a83cffb867d051598c4d70e805d59802d8081c1c7d6dffc5b6aca2b8990600090a15b5b565b600054600160a060020a031681565b60005433600160a060020a039081169116146103db5760006000fd5b80600160a060020a0316ff5b5b50565b6002546101009004600160a060020a031681565b60025460ff1681565b600080548190819033600160a060020a039081169116146104295760006000fd5b60005b6002805460ff169081111561043d57fe5b146104485760006000fd5b600160a060020a038416151561045e5760006000fd5b60028054819060ff19166001825b02179055506040517f1cdde67b72a90f19919ac732a437ac2f7a10fc128d28c2a6e525d89ce5cd9d3a90600090a1600354600160a060020a0330163193508390116104d25760035491506104c6838363ffffffff61072d16565b600060035590506104ef565b6003546104e5908463ffffffff61072d16565b6003555081905060005b811561052a57600254604051610100909104600160a060020a0316906108fc8415029084906000818181858888f19350505050151561052a57fe5b5b801561055e57604051600160a060020a0385169082156108fc029083906000818181858888f19350505050151561055e57fe5b5b5b5b50505050565b60035481565b60005433600160a060020a039081169116146105895760006000fd5b600160a060020a038116151561059f5760006000fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b60005433600160a060020a039081169116146105e85760006000fd5b60005b6002805460ff16908111156105fc57fe5b146106075760006000fd5b6000805460a060020a900460ff168152600160209081526040808320600160a060020a038516845290915290205461063f9034610744565b6000805460a060020a900460ff168152600160209081526040808320600160a060020a03861684529091529020555b5b50565b600060015b6002805460ff169081111561068857fe5b146106935760006000fd5b506000805460a060020a900460ff168152600160209081526040808320600160a060020a0385168085529252808320805490849055905190926108fc841502918491818181858888f1935050505015156106e957fe5b604080518281529051600160a060020a038416917fd7dee2702d63ad89917b6a4da9981c90c4d24f8c2bdfd64c604ecae57d8d0651919081900360200190a25b5050565b60008282111561073957fe5b508082035b92915050565b60008282018381101561075357fe5b8091505b50929150505600a165627a7a723058204d7e02a1ab4f91dac7fcb2fd0d6404e6f18069c0c292e2791095ec64de50ed910029000000000000000000000000bfab8188b4a0bdaa4da9bd900d9a6f32d08ad810

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

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000bfab8188b4a0bdaa4da9bd900d9a6f32d08ad810


   Swarm Source:
bzzr://4d7e02a1ab4f91dac7fcb2fd0d6404e6f18069c0c292e2791095ec64de50ed91

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.