ETH Price: $2,465.81 (+1.19%)

Contract

0xcf0010AF06eDfF540AF798d06e866D95cBDc8488
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer61659162018-08-17 21:32:572242 days ago1534541577IN
0xcf0010AF...5cBDc8488
0 ETH0.000071973
Transfer61659072018-08-17 21:30:512242 days ago1534541451IN
0xcf0010AF...5cBDc8488
0 ETH0.000071973
Transfer61474702018-08-14 18:43:202245 days ago1534272200IN
0xcf0010AF...5cBDc8488
0 ETH0.00009574
Transfer61474092018-08-14 18:28:102245 days ago1534271290IN
0xcf0010AF...5cBDc8488
0 ETH0.00009574
Set Name60708972018-08-01 20:24:552258 days ago1533155095IN
0xcf0010AF...5cBDc8488
0 ETH0.000025321
Set Name60708952018-08-01 20:24:192258 days ago1533155059IN
0xcf0010AF...5cBDc8488
0 ETH0.000025321
Set Name60702972018-08-01 17:47:232258 days ago1533145643IN
0xcf0010AF...5cBDc8488
0 ETH0.000025321
Set Name60702632018-08-01 17:37:042258 days ago1533145024IN
0xcf0010AF...5cBDc8488
0 ETH0.000045771
Transfer60658822018-07-31 23:35:432259 days ago1533080143IN
0xcf0010AF...5cBDc8488
0 ETH0.000021051
Transfer60529062018-07-29 19:10:592261 days ago1532891459IN
0xcf0010AF...5cBDc8488
0 ETH0.000065283.1
Transfer59439542018-07-11 9:23:072280 days ago1531300987IN
0xcf0010AF...5cBDc8488
0 ETH0.001142369
Transfer59405422018-07-10 19:07:282280 days ago1531249648IN
0xcf0010AF...5cBDc8488
0 ETH0.0052040841
Set Name58426842018-06-23 22:56:192297 days ago1529794579IN
0xcf0010AF...5cBDc8488
0 ETH0.000046351
Set Name58426702018-06-23 22:52:192297 days ago1529794339IN
0xcf0010AF...5cBDc8488
0 ETH0.000092962
Transfer58334802018-06-22 9:29:522299 days ago1529659792IN
0xcf0010AF...5cBDc8488
0 ETH0.000761576
Set Name58272992018-06-21 7:57:162300 days ago1529567836IN
0xcf0010AF...5cBDc8488
0 ETH0.000229845
Transfer58217132018-06-20 9:08:482301 days ago1529485728IN
0xcf0010AF...5cBDc8488
0 ETH0.000761576
Transfer58192072018-06-19 22:46:502301 days ago1529448410IN
0xcf0010AF...5cBDc8488
0 ETH0.000380783
Transfer58190072018-06-19 22:01:592301 days ago1529445719IN
0xcf0010AF...5cBDc8488
0 ETH0.000253852
Transfer58177912018-06-19 16:44:512301 days ago1529426691IN
0xcf0010AF...5cBDc8488
0 ETH0.000253852
Transfer58177642018-06-19 16:37:542301 days ago1529426274IN
0xcf0010AF...5cBDc8488
0 ETH0.000317322.5
Transfer58176462018-06-19 16:08:152302 days ago1529424495IN
0xcf0010AF...5cBDc8488
0 ETH0.000507714
Transfer58176332018-06-19 16:05:432302 days ago1529424343IN
0xcf0010AF...5cBDc8488
0 ETH0.000453
Transfer58176192018-06-19 16:02:152302 days ago1529424135IN
0xcf0010AF...5cBDc8488
0 ETH0.000096214
Transfer58176072018-06-19 16:00:142302 days ago1529424014IN
0xcf0010AF...5cBDc8488
0 ETH0.000761576
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
UnicornToken

Compiler Version
v0.4.21+commit.dfe3193c

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-03-13
*/

pragma solidity ^0.4.21;

library SafeMath {
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        assert(c / a == b);
        return c;
    }

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

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

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

contract UnicornManagementInterface {

    function ownerAddress() external view returns (address);
    function managerAddress() external view returns (address);
    function communityAddress() external view returns (address);
    function dividendManagerAddress() external view returns (address);
    function walletAddress() external view returns (address);
    function blackBoxAddress() external view returns (address);
    function unicornBreedingAddress() external view returns (address);
    function geneLabAddress() external view returns (address);
    function unicornTokenAddress() external view returns (address);
    function candyToken() external view returns (address);
    function candyPowerToken() external view returns (address);

    function createDividendPercent() external view returns (uint);
    function sellDividendPercent() external view returns (uint);
    function subFreezingPrice() external view returns (uint);
    function subFreezingTime() external view returns (uint64);
    function subTourFreezingPrice() external view returns (uint);
    function subTourFreezingTime() external view returns (uint64);
    function createUnicornPrice() external view returns (uint);
    function createUnicornPriceInCandy() external view returns (uint);
    function oraclizeFee() external view returns (uint);

    function paused() external view returns (bool);
    //    function locked() external view returns (bool);

    function isTournament(address _tournamentAddress) external view returns (bool);

    function getCreateUnicornFullPrice() external view returns (uint);
    function getHybridizationFullPrice(uint _price) external view returns (uint);
    function getSellUnicornFullPrice(uint _price) external view returns (uint);
    function getCreateUnicornFullPriceInCandy() external view returns (uint);


    //service
    function registerInit(address _contract) external;

}

contract UnicornAccessControl {

    UnicornManagementInterface public unicornManagement;

    function UnicornAccessControl(address _unicornManagementAddress) public {
        unicornManagement = UnicornManagementInterface(_unicornManagementAddress);
        unicornManagement.registerInit(this);
    }

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

    modifier onlyManager() {
        require(msg.sender == unicornManagement.managerAddress());
        _;
    }

    modifier onlyCommunity() {
        require(msg.sender == unicornManagement.communityAddress());
        _;
    }

    modifier onlyTournament() {
        require(unicornManagement.isTournament(msg.sender));
        _;
    }

    modifier whenNotPaused() {
        require(!unicornManagement.paused());
        _;
    }

    modifier whenPaused {
        require(unicornManagement.paused());
        _;
    }


    modifier onlyManagement() {
        require(msg.sender == address(unicornManagement));
        _;
    }

    modifier onlyBreeding() {
        require(msg.sender == unicornManagement.unicornBreedingAddress());
        _;
    }

    modifier onlyGeneLab() {
        require(msg.sender == unicornManagement.geneLabAddress());
        _;
    }

    modifier onlyBlackBox() {
        require(msg.sender == unicornManagement.blackBoxAddress());
        _;
    }

    modifier onlyUnicornToken() {
        require(msg.sender == unicornManagement.unicornTokenAddress());
        _;
    }

    function isGamePaused() external view returns (bool) {
        return unicornManagement.paused();
    }
}

contract UnicornBreedingInterface {
    function deleteOffer(uint _unicornId) external;
    function deleteHybridization(uint _unicornId) external;
}


contract UnicornBase is UnicornAccessControl {
    using SafeMath for uint;
    UnicornBreedingInterface public unicornBreeding; //set on deploy

    event Transfer(address indexed from, address indexed to, uint256 unicornId);
    event Approval(address indexed owner, address indexed approved, uint256 unicornId);
    event UnicornGeneSet(uint indexed unicornId);
    event UnicornGeneUpdate(uint indexed unicornId);
    event UnicornFreezingTimeSet(uint indexed unicornId, uint time);
    event UnicornTourFreezingTimeSet(uint indexed unicornId, uint time);


    struct Unicorn {
        bytes gene;
        uint64 birthTime;
        uint64 freezingEndTime;
        uint64 freezingTourEndTime;
        string name;
    }

    uint8 maxFreezingIndex = 7;
    uint32[8] internal freezing = [
    uint32(1 hours),    //1 hour
    uint32(2 hours),    //2 - 4 hours
    uint32(8 hours),    //8 - 12 hours
    uint32(16 hours),   //16 - 24 hours
    uint32(36 hours),   //36 - 48 hours
    uint32(72 hours),   //72 - 96 hours
    uint32(120 hours),  //120 - 144 hours
    uint32(168 hours)   //168 hours
    ];

    //count for random plus from 0 to ..
    uint32[8] internal freezingPlusCount = [
    0, 3, 5, 9, 13, 25, 25, 0
    ];

    // Total amount of unicorns
    uint256 private totalUnicorns;

    // Incremental counter of unicorns Id
    uint256 private lastUnicornId;

    //Mapping from unicorn ID to Unicorn struct
    mapping(uint256 => Unicorn) public unicorns;

    // Mapping from unicorn ID to owner
    mapping(uint256 => address) private unicornOwner;

    // Mapping from unicorn ID to approved address
    mapping(uint256 => address) private unicornApprovals;

    // Mapping from owner to list of owned unicorn IDs
    mapping(address => uint256[]) private ownedUnicorns;

    // Mapping from unicorn ID to index of the owner unicorns list
    // т.е. ID уникорна => порядковый номер в списке владельца
    mapping(uint256 => uint256) private ownedUnicornsIndex;

    // Mapping from unicorn ID to approval for GeneLab
    mapping(uint256 => bool) private unicornApprovalsForGeneLab;

    modifier onlyOwnerOf(uint256 _unicornId) {
        require(owns(msg.sender, _unicornId));
        _;
    }

    /**
    * @dev Gets the owner of the specified unicorn ID
    * @param _unicornId uint256 ID of the unicorn to query the owner of
    * @return owner address currently marked as the owner of the given unicorn ID
    */
    function ownerOf(uint256 _unicornId) public view returns (address) {
        return unicornOwner[_unicornId];
        //        address owner = unicornOwner[_unicornId];
        //        require(owner != address(0));
        //        return owner;
    }

    function totalSupply() public view returns (uint256) {
        return totalUnicorns;
    }

    /**
    * @dev Gets the balance of the specified address
    * @param _owner address to query the balance of
    * @return uint256 representing the amount owned by the passed address
    */
    function balanceOf(address _owner) public view returns (uint256) {
        return ownedUnicorns[_owner].length;
    }

    /**
    * @dev Gets the list of unicorns owned by a given address
    * @param _owner address to query the unicorns of
    * @return uint256[] representing the list of unicorns owned by the passed address
    */
    function unicornsOf(address _owner) public view returns (uint256[]) {
        return ownedUnicorns[_owner];
    }

    /**
    * @dev Gets the approved address to take ownership of a given unicorn ID
    * @param _unicornId uint256 ID of the unicorn to query the approval of
    * @return address currently approved to take ownership of the given unicorn ID
    */
    function approvedFor(uint256 _unicornId) public view returns (address) {
        return unicornApprovals[_unicornId];
    }

    /**
    * @dev Tells whether the msg.sender is approved for the given unicorn ID or not
    * This function is not private so it can be extended in further implementations like the operatable ERC721
    * @param _owner address of the owner to query the approval of
    * @param _unicornId uint256 ID of the unicorn to query the approval of
    * @return bool whether the msg.sender is approved for the given unicorn ID or not
    */
    function allowance(address _owner, uint256 _unicornId) public view returns (bool) {
        return approvedFor(_unicornId) == _owner;
    }

    /**
    * @dev Approves another address to claim for the ownership of the given unicorn ID
    * @param _to address to be approved for the given unicorn ID
    * @param _unicornId uint256 ID of the unicorn to be approved
    */
    function approve(address _to, uint256 _unicornId) public onlyOwnerOf(_unicornId) {
        //модификатор onlyOwnerOf гарантирует, что owner = msg.sender
        //        address owner = ownerOf(_unicornId);
        require(_to != msg.sender);
        if (approvedFor(_unicornId) != address(0) || _to != address(0)) {
            unicornApprovals[_unicornId] = _to;
            emit Approval(msg.sender, _to, _unicornId);
        }
    }

    /**
    * @dev Claims the ownership of a given unicorn ID
    * @param _unicornId uint256 ID of the unicorn being claimed by the msg.sender
    */
    function takeOwnership(uint256 _unicornId) public {
        require(allowance(msg.sender, _unicornId));
        clearApprovalAndTransfer(ownerOf(_unicornId), msg.sender, _unicornId);
    }

    /**
    * @dev Transfers the ownership of a given unicorn ID to another address
    * @param _to address to receive the ownership of the given unicorn ID
    * @param _unicornId uint256 ID of the unicorn to be transferred
    */
    function transfer(address _to, uint256 _unicornId) public onlyOwnerOf(_unicornId) {
        clearApprovalAndTransfer(msg.sender, _to, _unicornId);
    }


    /**
    * @dev Internal function to clear current approval and transfer the ownership of a given unicorn ID
    * @param _from address which you want to send unicorns from
    * @param _to address which you want to transfer the unicorn to
    * @param _unicornId uint256 ID of the unicorn to be transferred
    */
    function clearApprovalAndTransfer(address _from, address _to, uint256 _unicornId) internal {
        require(owns(_from, _unicornId));
        require(_to != address(0));
        require(_to != ownerOf(_unicornId));

        clearApproval(_from, _unicornId);
        removeUnicorn(_from, _unicornId);
        addUnicorn(_to, _unicornId);
        emit Transfer(_from, _to, _unicornId);
    }

    /**
    * @dev Internal function to clear current approval of a given unicorn ID
    * @param _unicornId uint256 ID of the unicorn to be transferred
    */
    function clearApproval(address _owner, uint256 _unicornId) private {
        require(owns(_owner, _unicornId));
        unicornApprovals[_unicornId] = 0;
        emit Approval(_owner, 0, _unicornId);
    }

    /**
    * @dev Internal function to add a unicorn ID to the list of a given address
    * @param _to address representing the new owner of the given unicorn ID
    * @param _unicornId uint256 ID of the unicorn to be added to the unicorns list of the given address
    */
    function addUnicorn(address _to, uint256 _unicornId) private {
        require(unicornOwner[_unicornId] == address(0));
        unicornOwner[_unicornId] = _to;
        //        uint256 length = balanceOf(_to);
        uint256 length = ownedUnicorns[_to].length;
        ownedUnicorns[_to].push(_unicornId);
        ownedUnicornsIndex[_unicornId] = length;
        totalUnicorns = totalUnicorns.add(1);
    }

    /**
    * @dev Internal function to remove a unicorn ID from the list of a given address
    * @param _from address representing the previous owner of the given unicorn ID
    * @param _unicornId uint256 ID of the unicorn to be removed from the unicorns list of the given address
    */
    function removeUnicorn(address _from, uint256 _unicornId) private {
        require(owns(_from, _unicornId));

        uint256 unicornIndex = ownedUnicornsIndex[_unicornId];
        //        uint256 lastUnicornIndex = balanceOf(_from).sub(1);
        uint256 lastUnicornIndex = ownedUnicorns[_from].length.sub(1);
        uint256 lastUnicorn = ownedUnicorns[_from][lastUnicornIndex];

        unicornOwner[_unicornId] = 0;
        ownedUnicorns[_from][unicornIndex] = lastUnicorn;
        ownedUnicorns[_from][lastUnicornIndex] = 0;
        // Note that this will handle single-element arrays. In that case, both unicornIndex and lastUnicornIndex are going to
        // be zero. Then we can make sure that we will remove _unicornId from the ownedUnicorns list since we are first swapping
        // the lastUnicorn to the first position, and then dropping the element placed in the last position of the list

        ownedUnicorns[_from].length--;
        ownedUnicornsIndex[_unicornId] = 0;
        ownedUnicornsIndex[lastUnicorn] = unicornIndex;
        totalUnicorns = totalUnicorns.sub(1);

        //deleting sale offer, if exists
        //TODO check if contract exists?
        //        if (address(unicornBreeding) != address(0)) {
        unicornBreeding.deleteOffer(_unicornId);
        unicornBreeding.deleteHybridization(_unicornId);
        //        }
    }

    //specific
    //    function burnUnicorn(uint256 _unicornId) onlyOwnerOf(_unicornId) public  {
    //        if (approvedFor(_unicornId) != 0) {
    //            clearApproval(msg.sender, _unicornId);
    //        }
    //        removeUnicorn(msg.sender, _unicornId);
    //        //destroy unicorn data
    //        delete unicorns[_unicornId];
    //        emit Transfer(msg.sender, 0x0, _unicornId);
    //    }


    function createUnicorn(address _owner) onlyBreeding external returns (uint) {
        require(_owner != address(0));
        uint256 _unicornId = lastUnicornId++;
        addUnicorn(_owner, _unicornId);
        //store new unicorn data
        unicorns[_unicornId] = Unicorn({
            gene : new bytes(0),
            birthTime : uint64(now),
            freezingEndTime : 0,
            freezingTourEndTime: 0,
            name: ''
            });
        emit Transfer(0x0, _owner, _unicornId);
        return _unicornId;
    }


    function owns(address _claimant, uint256 _unicornId) public view returns (bool) {
        return ownerOf(_unicornId) == _claimant && ownerOf(_unicornId) != address(0);
    }


    function transferFrom(address _from, address _to, uint256 _unicornId) public {
        require(_to != address(this));
        require(allowance(msg.sender, _unicornId));
        clearApprovalAndTransfer(_from, _to, _unicornId);
    }


    function fromHexChar(uint8 _c) internal pure returns (uint8) {
        return _c - (_c < 58 ? 48 : (_c < 97 ? 55 : 87));
    }


    function getUnicornGenByte(uint _unicornId, uint _byteNo) public view returns (uint8) {
        uint n = _byteNo << 1; // = _byteNo * 2
        //        require(unicorns[_unicornId].gene.length >= n + 1);
        if (unicorns[_unicornId].gene.length < n + 1) {
            return 0;
        }
        return fromHexChar(uint8(unicorns[_unicornId].gene[n])) << 4 | fromHexChar(uint8(unicorns[_unicornId].gene[n + 1]));
    }


    function setName(uint256 _unicornId, string _name ) public onlyOwnerOf(_unicornId) returns (bool) {
        bytes memory tmp = bytes(unicorns[_unicornId].name);
        require(tmp.length == 0);

        unicorns[_unicornId].name = _name;
        return true;
    }


    function getGen(uint _unicornId) external view returns (bytes){
        return unicorns[_unicornId].gene;
    }

    function setGene(uint _unicornId, bytes _gene) onlyBlackBox external  {
        if (unicorns[_unicornId].gene.length == 0) {
            unicorns[_unicornId].gene = _gene;
            emit UnicornGeneSet(_unicornId);
        }
    }

    function updateGene(uint _unicornId, bytes _gene) onlyGeneLab public {
        require(unicornApprovalsForGeneLab[_unicornId]);
        delete unicornApprovalsForGeneLab[_unicornId];
        unicorns[_unicornId].gene = _gene;
        emit UnicornGeneUpdate(_unicornId);
    }

    function approveForGeneLab(uint256 _unicornId) public onlyOwnerOf(_unicornId) {
        unicornApprovalsForGeneLab[_unicornId] = true;
    }

    function clearApprovalForGeneLab(uint256 _unicornId) public onlyOwnerOf(_unicornId) {
        delete unicornApprovalsForGeneLab[_unicornId];
    }

    //transfer by market
    function marketTransfer(address _from, address _to, uint256 _unicornId) onlyBreeding external {
        clearApprovalAndTransfer(_from, _to, _unicornId);
    }

    function plusFreezingTime(uint _unicornId) onlyBreeding external  {
        unicorns[_unicornId].freezingEndTime = uint64(_getFreezeTime(getUnicornGenByte(_unicornId, 163)) + now);
        emit UnicornFreezingTimeSet(_unicornId, unicorns[_unicornId].freezingEndTime);
    }

    function plusTourFreezingTime(uint _unicornId) onlyBreeding external {
        unicorns[_unicornId].freezingTourEndTime = uint64(_getFreezeTime(getUnicornGenByte(_unicornId, 168)) + now);
        emit UnicornTourFreezingTimeSet(_unicornId, unicorns[_unicornId].freezingTourEndTime);
    }

    function _getFreezeTime(uint8 freezingIndex) internal view returns (uint time) {
        freezingIndex %= maxFreezingIndex;
        time = freezing[freezingIndex];
        if (freezingPlusCount[freezingIndex] != 0) {
            time += (uint(block.blockhash(block.number - 1)) % freezingPlusCount[freezingIndex]) * 1 hours;
        }
    }


    //change freezing time for candy
    function minusFreezingTime(uint _unicornId, uint64 _time) onlyBreeding public {
        //не минусуем на уже размороженных конях
        require(unicorns[_unicornId].freezingEndTime > now);
        //не используем safeMath, т.к. subFreezingTime в теории не должен быть больше now %)
        unicorns[_unicornId].freezingEndTime -= _time;
    }

    //change tour freezing time for candy
    function minusTourFreezingTime(uint _unicornId, uint64 _time) onlyBreeding public {
        //не минусуем на уже размороженных конях
        require(unicorns[_unicornId].freezingTourEndTime > now);
        //не используем safeMath, т.к. subTourFreezingTime в теории не должен быть больше now %)
        unicorns[_unicornId].freezingTourEndTime -= _time;
    }

    function isUnfreezed(uint _unicornId) public view returns (bool) {
        return (unicorns[_unicornId].birthTime > 0 && unicorns[_unicornId].freezingEndTime <= uint64(now));
    }

    function isTourUnfreezed(uint _unicornId) public view returns (bool) {
        return (unicorns[_unicornId].birthTime > 0 && unicorns[_unicornId].freezingTourEndTime <= uint64(now));
    }

}

contract UnicornToken is UnicornBase {
    string public constant name = "UnicornGO";
    string public constant symbol = "UNG";

    function UnicornToken(address _unicornManagementAddress) UnicornAccessControl(_unicornManagementAddress) public {

    }

    function init() onlyManagement whenPaused external {
        unicornBreeding = UnicornBreedingInterface(unicornManagement.unicornBreedingAddress());
    }

    function() public {

    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"isGamePaused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_unicornId","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_unicornId","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_unicornId","type":"uint256"}],"name":"approvedFor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_unicornId","type":"uint256"}],"name":"getGen","outputs":[{"name":"","type":"bytes"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_unicornId","type":"uint256"},{"name":"_gene","type":"bytes"}],"name":"setGene","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_unicornId","type":"uint256"}],"name":"plusFreezingTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_unicornId","type":"uint256"},{"name":"_time","type":"uint64"}],"name":"minusFreezingTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_unicornId","type":"uint256"},{"name":"_gene","type":"bytes"}],"name":"updateGene","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_unicornId","type":"uint256"},{"name":"_byteNo","type":"uint256"}],"name":"getUnicornGenByte","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_unicornId","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"unicorns","outputs":[{"name":"gene","type":"bytes"},{"name":"birthTime","type":"uint64"},{"name":"freezingEndTime","type":"uint64"},{"name":"freezingTourEndTime","type":"uint64"},{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_claimant","type":"address"},{"name":"_unicornId","type":"uint256"}],"name":"owns","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_unicornId","type":"uint256"}],"name":"approveForGeneLab","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"unicornManagement","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"unicornsOf","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_unicornId","type":"uint256"},{"name":"_time","type":"uint64"}],"name":"minusTourFreezingTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_unicornId","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_unicornId","type":"uint256"}],"name":"takeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_unicornId","type":"uint256"}],"name":"clearApprovalForGeneLab","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_unicornId","type":"uint256"}],"name":"marketTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"unicornBreeding","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_unicornId","type":"uint256"}],"name":"isTourUnfreezed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_unicornId","type":"uint256"}],"name":"isUnfreezed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"createUnicorn","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_unicornId","type":"uint256"}],"name":"plusTourFreezingTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_unicornId","type":"uint256"}],"name":"allowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"init","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_unicornId","type":"uint256"},{"name":"_name","type":"string"}],"name":"setName","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_unicornManagementAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":false,"stateMutability":"nonpayable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"unicornId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"approved","type":"address"},{"indexed":false,"name":"unicornId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"unicornId","type":"uint256"}],"name":"UnicornGeneSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"unicornId","type":"uint256"}],"name":"UnicornGeneUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"unicornId","type":"uint256"},{"indexed":false,"name":"time","type":"uint256"}],"name":"UnicornFreezingTimeSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"unicornId","type":"uint256"},{"indexed":false,"name":"time","type":"uint256"}],"name":"UnicornTourFreezingTimeSet","type":"event"}]

60606040526007600160146101000a81548160ff021916908360ff16021790555061010060405190810160405280610e1063ffffffff1663ffffffff168152602001611c2063ffffffff1663ffffffff16815260200161708063ffffffff1663ffffffff16815260200161e10063ffffffff1663ffffffff1681526020016201fa4063ffffffff1663ffffffff1681526020016203f48063ffffffff1663ffffffff1681526020016206978063ffffffff1663ffffffff16815260200162093a8063ffffffff1663ffffffff168152506002906008620000e19291906200028f565b5061010060405190810160405280600060ff168152602001600360ff168152602001600560ff168152602001600960ff168152602001600d60ff168152602001601960ff168152602001601960ff168152602001600060ff1681525060039060086200014f92919062000339565b5034156200015c57600080fd5b604051602080620037d68339810160405280805190602001909190505080806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632a70d1e7306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15156200027657600080fd5b5af115156200028457600080fd5b505050505062000416565b826008600701600890048101928215620003265791602002820160005b83821115620002f257835183826101000a81548163ffffffff021916908363ffffffff1602179055509260200192600401602081600301049283019260010302620002ac565b8015620003245782816101000a81549063ffffffff0219169055600401602081600301049283019260010302620002f2565b505b509050620003359190620003e0565b5090565b826008600701600890048101928215620003cd5791602002820160005b838211156200039957835183826101000a81548163ffffffff021916908360ff160217905550926020019260040160208160030104928301926001030262000356565b8015620003cb5782816101000a81549063ffffffff021916905560040160208160030104928301926001030262000399565b505b509050620003dc9190620003e0565b5090565b6200041391905b808211156200040f57600081816101000a81549063ffffffff021916905550600101620003e7565b5090565b90565b6133b080620004266000396000f3006060604052600436106101a1576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630422ddf3146101ae57806306fdde03146101db578063095ea7b31461026957806318160ddd146102ab57806323b872dd146102d45780632a6dd48f146103355780632dcbac9714610398578063316524e5146104345780633e8eca231461046b5780634a3a92f61461048e5780634cba4ca4146104c4578063614984d11461052a5780636352211e1461057057806369f467c1146105d357806370a082311461072c578063818d4b5d146107795780638758ba8f146107d35780638dca7a01146107f657806395d89b411461084b57806396c81be5146108d9578063a60b8aa914610967578063a9059cbb1461099d578063b2e6ceeb146109df578063b536456014610a02578063bcf0dd8e14610a25578063c107227914610a86578063c4cbd65b14610adb578063cbde2ff014610b16578063ce5a5df714610b51578063d03e9fff14610b9e578063ddc6a17114610bc1578063e1c7392a14610c1b578063fe55932a14610c30575b34156101ac57600080fd5b005b34156101b957600080fd5b6101c1610cae565b604051808215151515815260200191505060405180910390f35b34156101e657600080fd5b6101ee610d50565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561022e578082015181840152602081019050610213565b50505050905090810190601f16801561025b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561027457600080fd5b6102a9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610d89565b005b34156102b657600080fd5b6102be610f0d565b6040518082815260200191505060405180910390f35b34156102df57600080fd5b610333600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610f17565b005b341561034057600080fd5b6103566004808035906020019091905050610f77565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156103a357600080fd5b6103b96004808035906020019091905050610fb4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103f95780820151818401526020810190506103de565b50505050905090810190601f1680156104265780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561043f57600080fd5b61046960048080359060200190919080359060200190820180359060200191909192905050611072565b005b341561047657600080fd5b61048c60048080359060200190919050506111d2565b005b341561049957600080fd5b6104c2600480803590602001909190803567ffffffffffffffff16906020019091905050611366565b005b34156104cf57600080fd5b610528600480803590602001909190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506114d6565b005b341561053557600080fd5b6105546004808035906020019091908035906020019091905050611655565b604051808260ff1660ff16815260200191505060405180910390f35b341561057b57600080fd5b6105916004808035906020019091905050611800565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105de57600080fd5b6105f4600480803590602001909190505061183d565b60405180806020018667ffffffffffffffff1667ffffffffffffffff1681526020018567ffffffffffffffff1667ffffffffffffffff1681526020018467ffffffffffffffff1667ffffffffffffffff16815260200180602001838103835288818151815260200191508051906020019080838360005b8381101561068657808201518184015260208101905061066b565b50505050905090810190601f1680156106b35780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156106ec5780820151818401526020810190506106d1565b50505050905090810190601f1680156107195780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b341561073757600080fd5b610763600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506119df565b6040518082815260200191505060405180910390f35b341561078457600080fd5b6107b9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611a2b565b604051808215151515815260200191505060405180910390f35b34156107de57600080fd5b6107f46004808035906020019091905050611aad565b005b341561080157600080fd5b610809611af3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561085657600080fd5b61085e611b18565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561089e578082015181840152602081019050610883565b50505050905090810190601f1680156108cb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156108e457600080fd5b610910600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611b51565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610953578082015181840152602081019050610938565b505050509050019250505060405180910390f35b341561097257600080fd5b61099b600480803590602001909190803567ffffffffffffffff16906020019091905050611bee565b005b34156109a857600080fd5b6109dd600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611d5e565b005b34156109ea57600080fd5b610a006004808035906020019091905050611d84565b005b3415610a0d57600080fd5b610a236004808035906020019091905050611daf565b005b3415610a3057600080fd5b610a84600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611dec565b005b3415610a9157600080fd5b610a99611ed0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610ae657600080fd5b610afc6004808035906020019091905050611ef6565b604051808215151515815260200191505060405180910390f35b3415610b2157600080fd5b610b376004808035906020019091905050611f80565b604051808215151515815260200191505060405180910390f35b3415610b5c57600080fd5b610b88600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061200a565b6040518082815260200191505060405180910390f35b3415610ba957600080fd5b610bbf60048080359060200190919050506122eb565b005b3415610bcc57600080fd5b610c01600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061247f565b604051808215151515815260200191505060405180910390f35b3415610c2657600080fd5b610c2e6124c0565b005b3415610c3b57600080fd5b610c94600480803590602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061269e565b604051808215151515815260200191505060405180910390f35b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515610d3457600080fd5b5af11515610d4157600080fd5b50505060405180519050905090565b6040805190810160405280600981526020017f556e69636f726e474f000000000000000000000000000000000000000000000081525081565b80610d943382611a2b565b1515610d9f57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610dda57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16610dfb83610f77565b73ffffffffffffffffffffffffffffffffffffffff16141580610e4b5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610f0857826008600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a35b505050565b6000600454905090565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610f5257600080fd5b610f5c338261247f565b1515610f6757600080fd5b610f728383836127b6565b505050565b60006008600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b610fbc61305f565b600660008381526020019081526020016000206000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110665780601f1061103b57610100808354040283529160200191611066565b820191906000526020600020905b81548152906001019060200180831161104957829003601f168201915b50505050509050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635550e4f36040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156110f657600080fd5b5af1151561110357600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561114657600080fd5b60006006600085815260200190815260200160002060000180546001816001161561010002031660029004905014156111cd57818160066000868152602001908152602001600020600001919061119e929190613073565b50827fa3f7f3e0b681e4fc9c86b91ffcc62caeb512735803bd4949c69aa08aab9af9ad60405160405180910390a25b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166307ec4b426040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561125657600080fd5b5af1151561126357600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112a657600080fd5b426112ba6112b58360a3611655565b6128d2565b016006600083815260200190815260200160002060010160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550807fdd9be30312ed220ed4ad7da78e6ee32d6652506b26c7de8d06e849fa224d1c5d6006600084815260200190815260200160002060010160089054906101000a900467ffffffffffffffff16604051808267ffffffffffffffff16815260200191505060405180910390a250565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166307ec4b426040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156113ea57600080fd5b5af115156113f757600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561143a57600080fd5b426006600084815260200190815260200160002060010160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1611151561147c57600080fd5b806006600084815260200190815260200160002060010160088282829054906101000a900467ffffffffffffffff160392506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631d296e8d6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561155a57600080fd5b5af1151561156757600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115aa57600080fd5b600b600083815260200190815260200160002060009054906101000a900460ff1615156115d657600080fd5b600b600083815260200190815260200160002060006101000a81549060ff0219169055806006600084815260200190815260200160002060000190805190602001906116239291906130f3565b50817f5bf9bb6f1e1bcdcd3365d65dd853dc3a3d9dfff3fc239f67430868ce7fed613d60405160405180910390a25050565b6000806001839060020a029050600181016006600086815260200190815260200160002060000180546001816001161561010002031660029004905010156116a057600091506117f9565b611747600660008681526020019081526020016000206000016001830181546001816001161561010002031660029004811015156116da57fe5b8154600116156116f95790600052602060002090602091828204019190065b9054901a7f0100000000000000000000000000000000000000000000000000000000000000027f010000000000000000000000000000000000000000000000000000000000000090046129bf565b60046117ed6006600088815260200190815260200160002060000184815460018160011615610100020316600290048110151561178057fe5b81546001161561179f5790600052602060002090602091828204019190065b9054901a7f0100000000000000000000000000000000000000000000000000000000000000027f010000000000000000000000000000000000000000000000000000000000000090046129bf565b60ff169060020a021791505b5092915050565b60006007600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6006602052806000526040600020600091509050806000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156118e95780601f106118be576101008083540402835291602001916118e9565b820191906000526020600020905b8154815290600101906020018083116118cc57829003601f168201915b5050505050908060010160009054906101000a900467ffffffffffffffff16908060010160089054906101000a900467ffffffffffffffff16908060010160109054906101000a900467ffffffffffffffff1690806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156119d55780601f106119aa576101008083540402835291602001916119d5565b820191906000526020600020905b8154815290600101906020018083116119b857829003601f168201915b5050505050905085565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b60008273ffffffffffffffffffffffffffffffffffffffff16611a4d83611800565b73ffffffffffffffffffffffffffffffffffffffff16148015611aa55750600073ffffffffffffffffffffffffffffffffffffffff16611a8c83611800565b73ffffffffffffffffffffffffffffffffffffffff1614155b905092915050565b80611ab83382611a2b565b1515611ac357600080fd5b6001600b600084815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600381526020017f554e47000000000000000000000000000000000000000000000000000000000081525081565b611b59613173565b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020018280548015611be257602002820191906000526020600020905b815481526020019060010190808311611bce575b50505050509050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166307ec4b426040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515611c7257600080fd5b5af11515611c7f57600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611cc257600080fd5b426006600084815260200190815260200160002060010160109054906101000a900467ffffffffffffffff1667ffffffffffffffff16111515611d0457600080fd5b806006600084815260200190815260200160002060010160108282829054906101000a900467ffffffffffffffff160392506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505050565b80611d693382611a2b565b1515611d7457600080fd5b611d7f3384846127b6565b505050565b611d8e338261247f565b1515611d9957600080fd5b611dac611da582611800565b33836127b6565b50565b80611dba3382611a2b565b1515611dc557600080fd5b600b600083815260200190815260200160002060006101000a81549060ff02191690555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166307ec4b426040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515611e7057600080fd5b5af11515611e7d57600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ec057600080fd5b611ecb8383836127b6565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806006600084815260200190815260200160002060010160009054906101000a900467ffffffffffffffff1667ffffffffffffffff16118015611f7957504267ffffffffffffffff166006600084815260200190815260200160002060010160109054906101000a900467ffffffffffffffff1667ffffffffffffffff1611155b9050919050565b6000806006600084815260200190815260200160002060010160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1611801561200357504267ffffffffffffffff166006600084815260200190815260200160002060010160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1611155b9050919050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166307ec4b426040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561209157600080fd5b5af1151561209e57600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120e157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561211d57600080fd5b6005600081548092919060010191905055905061213a83826129f2565b60a06040519081016040528060006040518059106121555750595b9080825280601f01601f191660200182016040525081526020014267ffffffffffffffff168152602001600067ffffffffffffffff168152602001600067ffffffffffffffff16815260200160206040519081016040528060008152508152506006600083815260200190815260200160002060008201518160000190805190602001906121e4929190613187565b5060208201518160010160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060408201518160010160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060608201518160010160106101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550608082015181600201908051906020019061228e929190613207565b509050508273ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a380915050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166307ec4b426040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561236f57600080fd5b5af1151561237c57600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156123bf57600080fd5b426123d36123ce8360a8611655565b6128d2565b016006600083815260200190815260200160002060010160106101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550807fc641324edb83f23049077dbec1d1a35ff314f92542ec5727609244b6dedc3fbb6006600084815260200190815260200160002060010160109054906101000a900467ffffffffffffffff16604051808267ffffffffffffffff16815260200191505060405180910390a250565b60008273ffffffffffffffffffffffffffffffffffffffff166124a183610f77565b73ffffffffffffffffffffffffffffffffffffffff1614905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561251b57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561259f57600080fd5b5af115156125ac57600080fd5b5050506040518051905015156125c157600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166307ec4b426040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561264557600080fd5b5af1151561265257600080fd5b50505060405180519050600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006126a861305f565b836126b33382611a2b565b15156126be57600080fd5b600660008681526020019081526020016000206002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127685780601f1061273d57610100808354040283529160200191612768565b820191906000526020600020905b81548152906001019060200180831161274b57829003601f168201915b505050505091506000825114151561277f57600080fd5b836006600087815260200190815260200160002060020190805190602001906127a9929190613287565b5060019250505092915050565b6127c08382611a2b565b15156127cb57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561280757600080fd5b61281081611800565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561284a57600080fd5b6128548382612b97565b61285e8382612c53565b61286882826129f2565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000600160149054906101000a900460ff1660ff168260ff168115156128f457fe5b06915060028260ff1660088110151561290957fe5b600891828204019190066004029054906101000a900463ffffffff1663ffffffff169050600060038360ff1660088110151561294157fe5b600891828204019190066004029054906101000a900463ffffffff1663ffffffff161415156129ba57610e1060038360ff1660088110151561297f57fe5b600891828204019190066004029054906101000a900463ffffffff1663ffffffff166001430340600190048115156129b357fe5b0602810190505b919050565b6000603a8260ff16106129e65760618260ff16106129de5760576129e1565b60375b6129e9565b60305b82039050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166007600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612a6157600080fd5b826007600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806001018281612b499190613307565b91600052602060002090016000849091909150555080600a600084815260200190815260200160002081905550612b8c600160045461302890919063ffffffff16565b600481905550505050565b612ba18282611a2b565b1515612bac57600080fd5b60006008600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35050565b6000806000612c628585611a2b565b1515612c6d57600080fd5b600a6000858152602001908152602001600020549250612cd96001600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905061304690919063ffffffff16565b9150600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515612d2757fe5b906000526020600020900154905060006007600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002084815481101515612dd557fe5b9060005260206000209001819055506000600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481101515612e3257fe5b906000526020600020900181905550600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480919060019003612e939190613333565b506000600a60008681526020019081526020016000208190555082600a600083815260200190815260200160002081905550612edb600160045461304690919063ffffffff16565b600481905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166374268ff2856040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b1515612f7157600080fd5b5af11515612f7e57600080fd5b505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c7024b98856040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b151561301157600080fd5b5af1151561301e57600080fd5b5050505050505050565b600080828401905083811015151561303c57fe5b8091505092915050565b600082821115151561305457fe5b818303905092915050565b602060405190810160405280600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106130b457803560ff19168380011785556130e2565b828001600101855582156130e2579182015b828111156130e15782358255916020019190600101906130c6565b5b5090506130ef919061335f565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061313457805160ff1916838001178555613162565b82800160010185558215613162579182015b82811115613161578251825591602001919060010190613146565b5b50905061316f919061335f565b5090565b602060405190810160405280600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106131c857805160ff19168380011785556131f6565b828001600101855582156131f6579182015b828111156131f55782518255916020019190600101906131da565b5b509050613203919061335f565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061324857805160ff1916838001178555613276565b82800160010185558215613276579182015b8281111561327557825182559160200191906001019061325a565b5b509050613283919061335f565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106132c857805160ff19168380011785556132f6565b828001600101855582156132f6579182015b828111156132f55782518255916020019190600101906132da565b5b509050613303919061335f565b5090565b81548183558181151161332e5781836000526020600020918201910161332d919061335f565b5b505050565b81548183558181151161335a57818360005260206000209182019101613359919061335f565b5b505050565b61338191905b8082111561337d576000816000905550600101613365565b5090565b905600a165627a7a7230582095cde313cfac7151c96a4d4d3bbdd3b35404888e39765c06d5c33e84a20ee7ca002900000000000000000000000010cc060f6f9b2e5dcdb23f1361e4b368a7daec73

Deployed Bytecode

0x6060604052600436106101a1576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630422ddf3146101ae57806306fdde03146101db578063095ea7b31461026957806318160ddd146102ab57806323b872dd146102d45780632a6dd48f146103355780632dcbac9714610398578063316524e5146104345780633e8eca231461046b5780634a3a92f61461048e5780634cba4ca4146104c4578063614984d11461052a5780636352211e1461057057806369f467c1146105d357806370a082311461072c578063818d4b5d146107795780638758ba8f146107d35780638dca7a01146107f657806395d89b411461084b57806396c81be5146108d9578063a60b8aa914610967578063a9059cbb1461099d578063b2e6ceeb146109df578063b536456014610a02578063bcf0dd8e14610a25578063c107227914610a86578063c4cbd65b14610adb578063cbde2ff014610b16578063ce5a5df714610b51578063d03e9fff14610b9e578063ddc6a17114610bc1578063e1c7392a14610c1b578063fe55932a14610c30575b34156101ac57600080fd5b005b34156101b957600080fd5b6101c1610cae565b604051808215151515815260200191505060405180910390f35b34156101e657600080fd5b6101ee610d50565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561022e578082015181840152602081019050610213565b50505050905090810190601f16801561025b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561027457600080fd5b6102a9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610d89565b005b34156102b657600080fd5b6102be610f0d565b6040518082815260200191505060405180910390f35b34156102df57600080fd5b610333600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610f17565b005b341561034057600080fd5b6103566004808035906020019091905050610f77565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156103a357600080fd5b6103b96004808035906020019091905050610fb4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103f95780820151818401526020810190506103de565b50505050905090810190601f1680156104265780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561043f57600080fd5b61046960048080359060200190919080359060200190820180359060200191909192905050611072565b005b341561047657600080fd5b61048c60048080359060200190919050506111d2565b005b341561049957600080fd5b6104c2600480803590602001909190803567ffffffffffffffff16906020019091905050611366565b005b34156104cf57600080fd5b610528600480803590602001909190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506114d6565b005b341561053557600080fd5b6105546004808035906020019091908035906020019091905050611655565b604051808260ff1660ff16815260200191505060405180910390f35b341561057b57600080fd5b6105916004808035906020019091905050611800565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105de57600080fd5b6105f4600480803590602001909190505061183d565b60405180806020018667ffffffffffffffff1667ffffffffffffffff1681526020018567ffffffffffffffff1667ffffffffffffffff1681526020018467ffffffffffffffff1667ffffffffffffffff16815260200180602001838103835288818151815260200191508051906020019080838360005b8381101561068657808201518184015260208101905061066b565b50505050905090810190601f1680156106b35780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156106ec5780820151818401526020810190506106d1565b50505050905090810190601f1680156107195780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b341561073757600080fd5b610763600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506119df565b6040518082815260200191505060405180910390f35b341561078457600080fd5b6107b9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611a2b565b604051808215151515815260200191505060405180910390f35b34156107de57600080fd5b6107f46004808035906020019091905050611aad565b005b341561080157600080fd5b610809611af3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561085657600080fd5b61085e611b18565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561089e578082015181840152602081019050610883565b50505050905090810190601f1680156108cb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156108e457600080fd5b610910600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611b51565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610953578082015181840152602081019050610938565b505050509050019250505060405180910390f35b341561097257600080fd5b61099b600480803590602001909190803567ffffffffffffffff16906020019091905050611bee565b005b34156109a857600080fd5b6109dd600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611d5e565b005b34156109ea57600080fd5b610a006004808035906020019091905050611d84565b005b3415610a0d57600080fd5b610a236004808035906020019091905050611daf565b005b3415610a3057600080fd5b610a84600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611dec565b005b3415610a9157600080fd5b610a99611ed0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610ae657600080fd5b610afc6004808035906020019091905050611ef6565b604051808215151515815260200191505060405180910390f35b3415610b2157600080fd5b610b376004808035906020019091905050611f80565b604051808215151515815260200191505060405180910390f35b3415610b5c57600080fd5b610b88600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061200a565b6040518082815260200191505060405180910390f35b3415610ba957600080fd5b610bbf60048080359060200190919050506122eb565b005b3415610bcc57600080fd5b610c01600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061247f565b604051808215151515815260200191505060405180910390f35b3415610c2657600080fd5b610c2e6124c0565b005b3415610c3b57600080fd5b610c94600480803590602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061269e565b604051808215151515815260200191505060405180910390f35b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515610d3457600080fd5b5af11515610d4157600080fd5b50505060405180519050905090565b6040805190810160405280600981526020017f556e69636f726e474f000000000000000000000000000000000000000000000081525081565b80610d943382611a2b565b1515610d9f57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610dda57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16610dfb83610f77565b73ffffffffffffffffffffffffffffffffffffffff16141580610e4b5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610f0857826008600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a35b505050565b6000600454905090565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610f5257600080fd5b610f5c338261247f565b1515610f6757600080fd5b610f728383836127b6565b505050565b60006008600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b610fbc61305f565b600660008381526020019081526020016000206000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110665780601f1061103b57610100808354040283529160200191611066565b820191906000526020600020905b81548152906001019060200180831161104957829003601f168201915b50505050509050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635550e4f36040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156110f657600080fd5b5af1151561110357600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561114657600080fd5b60006006600085815260200190815260200160002060000180546001816001161561010002031660029004905014156111cd57818160066000868152602001908152602001600020600001919061119e929190613073565b50827fa3f7f3e0b681e4fc9c86b91ffcc62caeb512735803bd4949c69aa08aab9af9ad60405160405180910390a25b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166307ec4b426040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561125657600080fd5b5af1151561126357600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112a657600080fd5b426112ba6112b58360a3611655565b6128d2565b016006600083815260200190815260200160002060010160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550807fdd9be30312ed220ed4ad7da78e6ee32d6652506b26c7de8d06e849fa224d1c5d6006600084815260200190815260200160002060010160089054906101000a900467ffffffffffffffff16604051808267ffffffffffffffff16815260200191505060405180910390a250565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166307ec4b426040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156113ea57600080fd5b5af115156113f757600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561143a57600080fd5b426006600084815260200190815260200160002060010160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1611151561147c57600080fd5b806006600084815260200190815260200160002060010160088282829054906101000a900467ffffffffffffffff160392506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631d296e8d6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561155a57600080fd5b5af1151561156757600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115aa57600080fd5b600b600083815260200190815260200160002060009054906101000a900460ff1615156115d657600080fd5b600b600083815260200190815260200160002060006101000a81549060ff0219169055806006600084815260200190815260200160002060000190805190602001906116239291906130f3565b50817f5bf9bb6f1e1bcdcd3365d65dd853dc3a3d9dfff3fc239f67430868ce7fed613d60405160405180910390a25050565b6000806001839060020a029050600181016006600086815260200190815260200160002060000180546001816001161561010002031660029004905010156116a057600091506117f9565b611747600660008681526020019081526020016000206000016001830181546001816001161561010002031660029004811015156116da57fe5b8154600116156116f95790600052602060002090602091828204019190065b9054901a7f0100000000000000000000000000000000000000000000000000000000000000027f010000000000000000000000000000000000000000000000000000000000000090046129bf565b60046117ed6006600088815260200190815260200160002060000184815460018160011615610100020316600290048110151561178057fe5b81546001161561179f5790600052602060002090602091828204019190065b9054901a7f0100000000000000000000000000000000000000000000000000000000000000027f010000000000000000000000000000000000000000000000000000000000000090046129bf565b60ff169060020a021791505b5092915050565b60006007600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6006602052806000526040600020600091509050806000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156118e95780601f106118be576101008083540402835291602001916118e9565b820191906000526020600020905b8154815290600101906020018083116118cc57829003601f168201915b5050505050908060010160009054906101000a900467ffffffffffffffff16908060010160089054906101000a900467ffffffffffffffff16908060010160109054906101000a900467ffffffffffffffff1690806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156119d55780601f106119aa576101008083540402835291602001916119d5565b820191906000526020600020905b8154815290600101906020018083116119b857829003601f168201915b5050505050905085565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b60008273ffffffffffffffffffffffffffffffffffffffff16611a4d83611800565b73ffffffffffffffffffffffffffffffffffffffff16148015611aa55750600073ffffffffffffffffffffffffffffffffffffffff16611a8c83611800565b73ffffffffffffffffffffffffffffffffffffffff1614155b905092915050565b80611ab83382611a2b565b1515611ac357600080fd5b6001600b600084815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600381526020017f554e47000000000000000000000000000000000000000000000000000000000081525081565b611b59613173565b600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020018280548015611be257602002820191906000526020600020905b815481526020019060010190808311611bce575b50505050509050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166307ec4b426040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515611c7257600080fd5b5af11515611c7f57600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611cc257600080fd5b426006600084815260200190815260200160002060010160109054906101000a900467ffffffffffffffff1667ffffffffffffffff16111515611d0457600080fd5b806006600084815260200190815260200160002060010160108282829054906101000a900467ffffffffffffffff160392506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505050565b80611d693382611a2b565b1515611d7457600080fd5b611d7f3384846127b6565b505050565b611d8e338261247f565b1515611d9957600080fd5b611dac611da582611800565b33836127b6565b50565b80611dba3382611a2b565b1515611dc557600080fd5b600b600083815260200190815260200160002060006101000a81549060ff02191690555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166307ec4b426040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515611e7057600080fd5b5af11515611e7d57600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ec057600080fd5b611ecb8383836127b6565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806006600084815260200190815260200160002060010160009054906101000a900467ffffffffffffffff1667ffffffffffffffff16118015611f7957504267ffffffffffffffff166006600084815260200190815260200160002060010160109054906101000a900467ffffffffffffffff1667ffffffffffffffff1611155b9050919050565b6000806006600084815260200190815260200160002060010160009054906101000a900467ffffffffffffffff1667ffffffffffffffff1611801561200357504267ffffffffffffffff166006600084815260200190815260200160002060010160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1611155b9050919050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166307ec4b426040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561209157600080fd5b5af1151561209e57600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120e157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561211d57600080fd5b6005600081548092919060010191905055905061213a83826129f2565b60a06040519081016040528060006040518059106121555750595b9080825280601f01601f191660200182016040525081526020014267ffffffffffffffff168152602001600067ffffffffffffffff168152602001600067ffffffffffffffff16815260200160206040519081016040528060008152508152506006600083815260200190815260200160002060008201518160000190805190602001906121e4929190613187565b5060208201518160010160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060408201518160010160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060608201518160010160106101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550608082015181600201908051906020019061228e929190613207565b509050508273ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a380915050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166307ec4b426040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561236f57600080fd5b5af1151561237c57600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156123bf57600080fd5b426123d36123ce8360a8611655565b6128d2565b016006600083815260200190815260200160002060010160106101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550807fc641324edb83f23049077dbec1d1a35ff314f92542ec5727609244b6dedc3fbb6006600084815260200190815260200160002060010160109054906101000a900467ffffffffffffffff16604051808267ffffffffffffffff16815260200191505060405180910390a250565b60008273ffffffffffffffffffffffffffffffffffffffff166124a183610f77565b73ffffffffffffffffffffffffffffffffffffffff1614905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561251b57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561259f57600080fd5b5af115156125ac57600080fd5b5050506040518051905015156125c157600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166307ec4b426040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561264557600080fd5b5af1151561265257600080fd5b50505060405180519050600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006126a861305f565b836126b33382611a2b565b15156126be57600080fd5b600660008681526020019081526020016000206002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127685780601f1061273d57610100808354040283529160200191612768565b820191906000526020600020905b81548152906001019060200180831161274b57829003601f168201915b505050505091506000825114151561277f57600080fd5b836006600087815260200190815260200160002060020190805190602001906127a9929190613287565b5060019250505092915050565b6127c08382611a2b565b15156127cb57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561280757600080fd5b61281081611800565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561284a57600080fd5b6128548382612b97565b61285e8382612c53565b61286882826129f2565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000600160149054906101000a900460ff1660ff168260ff168115156128f457fe5b06915060028260ff1660088110151561290957fe5b600891828204019190066004029054906101000a900463ffffffff1663ffffffff169050600060038360ff1660088110151561294157fe5b600891828204019190066004029054906101000a900463ffffffff1663ffffffff161415156129ba57610e1060038360ff1660088110151561297f57fe5b600891828204019190066004029054906101000a900463ffffffff1663ffffffff166001430340600190048115156129b357fe5b0602810190505b919050565b6000603a8260ff16106129e65760618260ff16106129de5760576129e1565b60375b6129e9565b60305b82039050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166007600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612a6157600080fd5b826007600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806001018281612b499190613307565b91600052602060002090016000849091909150555080600a600084815260200190815260200160002081905550612b8c600160045461302890919063ffffffff16565b600481905550505050565b612ba18282611a2b565b1515612bac57600080fd5b60006008600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35050565b6000806000612c628585611a2b565b1515612c6d57600080fd5b600a6000858152602001908152602001600020549250612cd96001600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905061304690919063ffffffff16565b9150600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515612d2757fe5b906000526020600020900154905060006007600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002084815481101515612dd557fe5b9060005260206000209001819055506000600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481101515612e3257fe5b906000526020600020900181905550600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480919060019003612e939190613333565b506000600a60008681526020019081526020016000208190555082600a600083815260200190815260200160002081905550612edb600160045461304690919063ffffffff16565b600481905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166374268ff2856040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b1515612f7157600080fd5b5af11515612f7e57600080fd5b505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c7024b98856040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b151561301157600080fd5b5af1151561301e57600080fd5b5050505050505050565b600080828401905083811015151561303c57fe5b8091505092915050565b600082821115151561305457fe5b818303905092915050565b602060405190810160405280600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106130b457803560ff19168380011785556130e2565b828001600101855582156130e2579182015b828111156130e15782358255916020019190600101906130c6565b5b5090506130ef919061335f565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061313457805160ff1916838001178555613162565b82800160010185558215613162579182015b82811115613161578251825591602001919060010190613146565b5b50905061316f919061335f565b5090565b602060405190810160405280600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106131c857805160ff19168380011785556131f6565b828001600101855582156131f6579182015b828111156131f55782518255916020019190600101906131da565b5b509050613203919061335f565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061324857805160ff1916838001178555613276565b82800160010185558215613276579182015b8281111561327557825182559160200191906001019061325a565b5b509050613283919061335f565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106132c857805160ff19168380011785556132f6565b828001600101855582156132f6579182015b828111156132f55782518255916020019190600101906132da565b5b509050613303919061335f565b5090565b81548183558181151161332e5781836000526020600020918201910161332d919061335f565b5b505050565b81548183558181151161335a57818360005260206000209182019101613359919061335f565b5b505050565b61338191905b8082111561337d576000816000905550600101613365565b5090565b905600a165627a7a7230582095cde313cfac7151c96a4d4d3bbdd3b35404888e39765c06d5c33e84a20ee7ca0029

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

00000000000000000000000010cc060f6f9b2e5dcdb23f1361e4b368a7daec73

-----Decoded View---------------
Arg [0] : _unicornManagementAddress (address): 0x10CC060f6f9B2E5DCDB23F1361E4b368A7DAeC73

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000010cc060f6f9b2e5dcdb23f1361e4b368a7daec73


Swarm Source

bzzr://95cde313cfac7151c96a4d4d3bbdd3b35404888e39765c06d5c33e84a20ee7ca

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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