Sponsored Link:   Ambrosus Main-Net Launching: Stake AMB in Masternodes and get regular rewards for maintaining network integrity.
 Latest 25 txns from a total Of 11103 transactions
(+6 PendingTxns)

TxHash Age From To Value [TxFee]
0x278f7b2a0dd3204299bd22d2edd9acdf90a4fecfe7830fe599f13275c6c52e6e(pending)0x8f060df4e927f1bdfbaf057dd973aa161b22032d  IN  0x93b7fa538913201066a262c03179c342262a7c760 Ether(pending)
0xee4ad54ca17544ede44ac9b2bd4f0877d4ba8dc6aba335e53ca76c0eaf4874f9(pending)0x8c8db10d7d1a71acc68a1425f6d648a4b5686f90  IN  0x93b7fa538913201066a262c03179c342262a7c760 Ether(pending)
0xb9c0c2b12696b8a0fbbdb89b3c2cd24ba9b9418ac8b17ba5f6a2084dbffd1d79(pending)0xb495bad698a3557d5d366b624efaca0592524e7c  IN  0x93b7fa538913201066a262c03179c342262a7c760.003 Ether(pending)
0xff45bb3e91e7fa7ee593fa172495a99a5a7e8a6d7d8eba3248a4266704dff3de(pending)0x1dbba0def45ba314c35cdbe1a35c5840f98329c3  IN  0x93b7fa538913201066a262c03179c342262a7c760 Ether(pending)
0xf64a3c5e4f3a6381c93864ff63a3654f96c0d63436f630b03cdf6b8390329cf4(pending)0x1dbba0def45ba314c35cdbe1a35c5840f98329c3  IN  0x93b7fa538913201066a262c03179c342262a7c760 Ether(pending)
0x3f667567557bb7324d98450dc8d95e3a4bb399e47165f58e81ef9ee8e7eddfbf(pending)0x1dbba0def45ba314c35cdbe1a35c5840f98329c3  IN  0x93b7fa538913201066a262c03179c342262a7c760 Ether(pending)
0xe438fa32b7b47d689da17f983ff8b837d03264d128b6ee34117a1803ff6066d623 days 13 hrs ago0x45e044ed9bf130eafafa8095115eda69fc3b0d20  IN   0x93b7fa538913201066a262c03179c342262a7c760 Ether0.001059972
0xddd00fb4ffd6ba37a63c75cae12f0b3184f4dd9badbec68191a98898e24cb62c25 days 23 hrs ago0x9d8ff49eda6e00b5e66ae75dcfe15dad8d04eea2  IN   0x93b7fa538913201066a262c03179c342262a7c760 Ether0.000058594
0x0096e5e07a0ffbd881d49562efe7807fef19097f56b170c74391792b0774aee425 days 23 hrs ago0x9d8ff49eda6e00b5e66ae75dcfe15dad8d04eea2  IN   0x93b7fa538913201066a262c03179c342262a7c760 Ether0.00000732425
0x2ea9ba9d74bd46704dde01914148a09e2264ac3e915ad041a953c778d57ab03f25 days 23 hrs ago0x9d8ff49eda6e00b5e66ae75dcfe15dad8d04eea2  IN   0x93b7fa538913201066a262c03179c342262a7c760 Ether0.00002918925
0x9c8f8b660befc8ce946bf6141e52037291a02f02a713119fd1f3b0eed313ef4d26 days 1 min ago0x9d8ff49eda6e00b5e66ae75dcfe15dad8d04eea2  IN   0x93b7fa538913201066a262c03179c342262a7c760 Ether0.00002918925
0x50aa8150ba47d299fd811ee01f6d2636ae40036b1945cd045aa3db746bcca53226 days 8 mins ago0x9d8ff49eda6e00b5e66ae75dcfe15dad8d04eea2  IN   0x93b7fa538913201066a262c03179c342262a7c760 Ether0.00003356675
0x6833b90888b2f281a31ae382b5490f2ac11caab342e99bf9729ecb9dca23e4d826 days 3 hrs ago0x06b889377e74f2f7db576ce95bc26330c2ccc1e6  IN   0x93b7fa538913201066a262c03179c342262a7c760.003 Ether0.000131976
0xc3f3309595945906c5b8d734aef4212cdca9eed546146bd24de9e4204f36c45926 days 3 hrs ago0x06b889377e74f2f7db576ce95bc26330c2ccc1e6  IN   0x93b7fa538913201066a262c03179c342262a7c760 Ether0.000087891
0x9098435ddab656379c1995b8cfca77dbdac2578b27edf6a845afffcd787c432426 days 3 hrs ago0x06b889377e74f2f7db576ce95bc26330c2ccc1e6  IN   0x93b7fa538913201066a262c03179c342262a7c760.003 Ether0.0000098982
0x5b2c30650810c140cbe436b54e13469b039b175c1b12e0e96363dcf5cc46a45826 days 4 hrs ago0x06b889377e74f2f7db576ce95bc26330c2ccc1e6  IN   0x93b7fa538913201066a262c03179c342262a7c760 Ether0.0000350271
0xd8e93dcf5de58fad9e7f1acd5b784ff0522e878d234d7ac4876789ee8f9317a737 days 6 hrs ago0x3c96c55e3163f62bde37e2113d8bcc5c0d5dba59  IN   0x93b7fa538913201066a262c03179c342262a7c760 Ether0.000116757
0xe526e5a565f12748ae0fa5c977601cae6df9566c430b1f33f126bcdb4886ab8838 days 23 hrs ago0x9d8ff49eda6e00b5e66ae75dcfe15dad8d04eea2  IN   0x93b7fa538913201066a262c03179c342262a7c760 Ether0.00003356675
0x6dfd18651e8919f9e9c40c109bb151185be9f7e479b5ea4177730ec4617ef5c673 days 2 hrs ago0xfd3341edb0af607223e3ed1e02139ac676e4ed19  IN   0x93b7fa538913201066a262c03179c342262a7c760 Ether0.0000583785
0x0365018769abc309cb40b841464e58add76469d34ea9f00c0879ec1b764d9c5174 days 2 hrs ago0x5a352dd30586856c3b42a71e8c894c3ceaabafbd  IN   0x93b7fa538913201066a262c03179c342262a7c760 Ether0.000116757
0x89d02c3ba6a77d718958a567e95bfb3d2fc03cf1a8aa3f95d99f8eb44fc1a33874 days 4 hrs ago0x5a352dd30586856c3b42a71e8c894c3ceaabafbd  IN   0x93b7fa538913201066a262c03179c342262a7c760 Ether0.000116757
0xe86374176334b15873fd42bf2b54ff9b8a96646d292b66e805e45f7b520148ea74 days 8 hrs ago0xf7e810c542c06148407976ebb1017f60e2b2fc2c  IN   0x93b7fa538913201066a262c03179c342262a7c760 Ether0.0001985957
0x32c2e525aa0a99cf333102f2633b26e2aa665ddf0cb39f6e87911eed85a7e06376 days 21 hrs ago0x491c61d60af497d61a20c3cd1f286ed3ea9c6fa4  IN   0x93b7fa538913201066a262c03179c342262a7c760 Ether0.0000934056
0x83f7bfcdf93a7023ea645eb8cf41673a19d8be868862ebb3322a46c679188cb177 days 23 hrs ago0xae0f67080ea33437a2495f56109566722cc63b36  IN   0x93b7fa538913201066a262c03179c342262a7c760 Ether0.000134203
0x7a6e94c39b0f7153ee0493ff5ade23dd6f6fdc316ad714ced43926736f8b662378 days 19 mins ago0xed17a7b049f8edc48adeb1b8f15fec3865ad5aab  IN   0x93b7fa538913201066a262c03179c342262a7c760 Ether0.000116757
[ 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
0xe438fa32b7b47d689da17f983ff8b837d03264d128b6ee34117a1803ff6066d6585724623 days 13 hrs ago0x93b7fa538913201066a262c03179c342262a7c760xb58f5f3adcbe928ea343c12d047656c59b3c1f2a0.17276 Ether
0xd9aeffd61caa24576dc4ef8f1304358a52100938e50e28e982b24368c7b91d89553335580 days 7 hrs ago0x93b7fa538913201066a262c03179c342262a7c760x47fa9c2ce5deb5be391b9afe79a704e32c608fa20.0079 Ether
0xee8cbb2a6539f5be0103ad843037e3abc46e41565de23ffb91951cbb754217fb553315080 days 8 hrs ago0x93b7fa538913201066a262c03179c342262a7c760x5fde9da6056f8a651ae148c9c3a5364885f355480.003 Ether
0x461b547c945ae1c8f0705d6d17fdb10f4f71beac61c3d86b1da7964e78291e40553307880 days 8 hrs ago0x93b7fa538913201066a262c03179c342262a7c760x5fde9da6056f8a651ae148c9c3a5364885f355480.003 Ether
0xa087d90409efba5849163fb172954b00eb8f11e3321de0b66e9efe64a8481ddf553293780 days 9 hrs ago0x93b7fa538913201066a262c03179c342262a7c760x5fde9da6056f8a651ae148c9c3a5364885f355480.003 Ether
0x48f54f60748e117328c024fca1849e089b2cce4aea7129c58ca7e68bb69b743f553199280 days 13 hrs ago0x93b7fa538913201066a262c03179c342262a7c760x5fde9da6056f8a651ae148c9c3a5364885f355480.003 Ether
0x22fa28100f9a08d610e8794494451f1f64f97f23b9be32aa16570627a6ee9780553171280 days 14 hrs ago0x93b7fa538913201066a262c03179c342262a7c760x5fde9da6056f8a651ae148c9c3a5364885f355480.003 Ether
0x7c6af0a4b60e0ae8255d4b5e3c3b5e32f41ff2b1104a4694d7f2c49827151a6a553170680 days 14 hrs ago0x93b7fa538913201066a262c03179c342262a7c760x5cdbb0dc1342bf5710aa231f08856c892b44d6df0.008 Ether
0xd345e34f0fc65bd847ada21aed45d988662b490b599c44da643206b7efda635b553089180 days 17 hrs ago0x93b7fa538913201066a262c03179c342262a7c760x5fde9da6056f8a651ae148c9c3a5364885f355480.003 Ether
0x5715c3102b2d01e0e987efdca2ab112c84c24c63299399fc5c930569bb3dfe6a553041680 days 19 hrs ago0x93b7fa538913201066a262c03179c342262a7c760x5fde9da6056f8a651ae148c9c3a5364885f355480.003 Ether
0xb86040d7bc8d93f9f58c21eb761d74d2dfdd8eed29f607607753d7fef47ec5c7553035280 days 20 hrs ago0x93b7fa538913201066a262c03179c342262a7c760x5fde9da6056f8a651ae148c9c3a5364885f355480.003 Ether
0x96872752df6eacf56162c6984e817b4fc7e982c7be0d49212d5b5334de8daae8553034480 days 20 hrs ago0x93b7fa538913201066a262c03179c342262a7c760x5fde9da6056f8a651ae148c9c3a5364885f355480.003 Ether
0xa3a55f42fc69b2f79929c7e5b4895640a431f77c45079f95bbd1ef8124602a93552934581 days 15 mins ago0x93b7fa538913201066a262c03179c342262a7c760x5fde9da6056f8a651ae148c9c3a5364885f355480.003 Ether
0x272d7b3c8349144dfc838d68164747cf5d9bd8398df8a875e4473ab0191b590d552929581 days 28 mins ago0x93b7fa538913201066a262c03179c342262a7c760x5fde9da6056f8a651ae148c9c3a5364885f355480.003 Ether
0x0c6999a1e761d278a73cc4398e42edb372de3b221f0d3d736c6d32b83bfe05db552922381 days 47 mins ago0x93b7fa538913201066a262c03179c342262a7c760x5fde9da6056f8a651ae148c9c3a5364885f355480.003 Ether
0xfbc3d6b9f96c6b5a7fff3d5f7853ecb02caa6271f439cbe1d18a4fb3814d2d81552909581 days 1 hr ago0x93b7fa538913201066a262c03179c342262a7c760x5fde9da6056f8a651ae148c9c3a5364885f355480.003 Ether
0xffdcdb058abaf6ca07721b89c03600b7236b9bd6741a6fc16b62fc95714935b7552905781 days 1 hr ago0x93b7fa538913201066a262c03179c342262a7c760x5fde9da6056f8a651ae148c9c3a5364885f355480.003 Ether
0x85cb9c1fb0936a9fe32c375fd562894524df6247ef97bebf8a14776c13268442552904381 days 1 hr ago0x93b7fa538913201066a262c03179c342262a7c760x5fde9da6056f8a651ae148c9c3a5364885f355480.003 Ether
0x827e9ca2a4abe780ae7e1a90e69aad1bb512eae49921619a3d8c05d03cb38be6552901481 days 1 hr ago0x93b7fa538913201066a262c03179c342262a7c760x5fde9da6056f8a651ae148c9c3a5364885f355480.003 Ether
0xf914ae3574b07f015509b56e78b40f499f4b664898ab6416323dedb49b256c8e552901181 days 1 hr ago0x93b7fa538913201066a262c03179c342262a7c760x5fde9da6056f8a651ae148c9c3a5364885f355480.003 Ether
0x55c16b67567bd0ab73c9ec1d12424ccbadfbf4d0c1a9331675500917ffcc69d1552900181 days 1 hr ago0x93b7fa538913201066a262c03179c342262a7c760x5fde9da6056f8a651ae148c9c3a5364885f355480.003 Ether
0x023725e85587de7af6747275a2ec6d6ab09db7c3b660cbb998e698541a685a87552899881 days 1 hr ago0x93b7fa538913201066a262c03179c342262a7c760x5fde9da6056f8a651ae148c9c3a5364885f355480.003 Ether
0xb27f85f0e07d0b21eefced9048afbcdfc249a72de0bc79f10122e27e3fcb18c1552899581 days 1 hr ago0x93b7fa538913201066a262c03179c342262a7c760x5fde9da6056f8a651ae148c9c3a5364885f355480.003 Ether
0x83e28403e4c59f084e9b02aa9b236293723be47a5681b8c2e4639e6a19603cae552898981 days 1 hr ago0x93b7fa538913201066a262c03179c342262a7c760x5fde9da6056f8a651ae148c9c3a5364885f355480.003 Ether
0x65f28d0c7abec92a63ae11ad1588503a160f1e93f19dd314b2f059aae6f07bea552898681 days 1 hr ago0x93b7fa538913201066a262c03179c342262a7c760x5fde9da6056f8a651ae148c9c3a5364885f355480.003 Ether
[ Download CSV Export  ] 
Contract Source Code Verified (Exact match)
Contract Name: UnicornBreeding
Compiler Version: v0.4.21+commit.dfe3193c
Optimization Enabled: No
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

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 ERC20 {
    function balanceOf(address who) public view returns (uint256);
    function transfer(address to, uint256 value) public returns (bool);
    function allowance(address owner, address spender) public view returns (uint256);
    function transferFrom(address from, address to, uint256 value) public returns (bool);
    function approve(address spender, uint256 value) public returns (bool);
}

contract megaCandyInterface is ERC20 {
    function transferFromSystem(address _from, address _to, uint256 _value) public returns (bool);
    function burn(address _from, uint256 _value) public returns (bool);
    function mint(address _to, uint256 _amount) public returns (bool);
}

contract DividendManagerInterface {
    function payDividend() external payable;
}

contract BlackBoxInterface {
    function createGen0(uint _unicornId) public payable;
    function geneCore(uint _childUnicornId, uint _parent1UnicornId, uint _parent2UnicornId) public payable;
}

contract UnicornTokenInterface {

    //ERC721
    function balanceOf(address _owner) public view returns (uint256 _balance);
    function ownerOf(uint256 _unicornId) public view returns (address _owner);
    function transfer(address _to, uint256 _unicornId) public;
    function approve(address _to, uint256 _unicornId) public;
    function takeOwnership(uint256 _unicornId) public;
    function totalSupply() public constant returns (uint);
    function owns(address _claimant, uint256 _unicornId) public view returns (bool);
    function allowance(address _claimant, uint256 _unicornId) public view returns (bool);
    function transferFrom(address _from, address _to, uint256 _unicornId) public;

    //specific
    function createUnicorn(address _owner) external returns (uint);
    //    function burnUnicorn(uint256 _unicornId) external;
    function getGen(uint _unicornId) external view returns (bytes);
    function setGene(uint _unicornId, bytes _gene) external;
    function updateGene(uint _unicornId, bytes _gene) external;
    function getUnicornGenByte(uint _unicornId, uint _byteNo) external view returns (uint8);

    function setName(uint256 _unicornId, string _name ) external returns (bool);
    function plusFreezingTime(uint _unicornId) external;
    function plusTourFreezingTime(uint _unicornId) external;
    function minusFreezingTime(uint _unicornId, uint64 _time) external;
    function minusTourFreezingTime(uint _unicornId, uint64 _time) external;
    function isUnfreezed(uint _unicornId) external view returns (bool);
    function isTourUnfreezed(uint _unicornId) external view returns (bool);

    function marketTransfer(address _from, address _to, uint256 _unicornId) 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 UnicornBreeding is UnicornAccessControl {
    using SafeMath for uint;
    //onlyOwner
    UnicornTokenInterface public unicornToken; //only on deploy
    BlackBoxInterface public blackBox;

    event HybridizationAdd(uint indexed unicornId, uint price);
    event HybridizationAccept(uint indexed firstUnicornId, uint indexed secondUnicornId, uint newUnicornId);
    event HybridizationDelete(uint indexed unicornId);
    event FundsTransferred(address dividendManager, uint value);
    event CreateUnicorn(address indexed owner, uint indexed unicornId, uint parent1, uint  parent2);
    event NewGen0Limit(uint limit);
    event NewGen0Step(uint step);


    event OfferAdd(uint256 indexed unicornId, uint priceEth, uint priceCandy);
    event OfferDelete(uint256 indexed unicornId);
    event UnicornSold(uint256 indexed unicornId);

    event NewSellDividendPercent(uint percentCandy, uint percentCandyEth);

    ERC20 public candyToken;
    megaCandyInterface public megaCandyToken;

    uint public sellDividendPercentCandy = 375; //OnlyManager 4 digits. 10.5% = 1050
    uint public sellDividendPercentEth = 375; //OnlyManager 4 digits. 10.5% = 1050

    //counter for gen0
    uint public gen0Limit = 30000;
    uint public gen0Count = 1805;
    uint public gen0Step = 1000;

    //counter for presale gen0
    uint public gen0PresaleLimit = 1000;
    uint public gen0PresaleCount = 0;

    struct Hybridization{
        uint listIndex;
        uint price;
        //        uint second_unicorn_id;
        //        bool accepted;
        bool exists;
    }

    // Mapping from unicorn ID to Hybridization struct
    mapping (uint => Hybridization) public hybridizations;
    mapping(uint => uint) public hybridizationList;
    uint public hybridizationListSize = 0;


    function() public payable {

    }

    function UnicornBreeding(address _unicornManagementAddress) UnicornAccessControl(_unicornManagementAddress) public {
        candyToken = ERC20(unicornManagement.candyToken());

    }

    function init() onlyManagement whenPaused external {
        unicornToken = UnicornTokenInterface(unicornManagement.unicornTokenAddress());
        blackBox = BlackBoxInterface(unicornManagement.blackBoxAddress());
        megaCandyToken = megaCandyInterface(unicornManagement.candyPowerToken());
    }

    function makeHybridization(uint _unicornId, uint _price) public {
        require(unicornToken.owns(msg.sender, _unicornId));
        require(unicornToken.isUnfreezed(_unicornId));
        require(!hybridizations[_unicornId].exists);

        hybridizations[_unicornId] = Hybridization({
            price: _price,
            exists: true,
            listIndex: hybridizationListSize
            });
        hybridizationList[hybridizationListSize++] = _unicornId;

        emit HybridizationAdd(_unicornId, _price);
    }


    function acceptHybridization(uint _firstUnicornId, uint _secondUnicornId) whenNotPaused public payable {
        require(unicornToken.owns(msg.sender, _secondUnicornId));
        require(_secondUnicornId != _firstUnicornId);
        require(unicornToken.isUnfreezed(_firstUnicornId) && unicornToken.isUnfreezed(_secondUnicornId));
        require(hybridizations[_firstUnicornId].exists);
        require(msg.value == unicornManagement.oraclizeFee());
        if (hybridizations[_firstUnicornId].price > 0) {
            require(candyToken.transferFrom(msg.sender, this, getHybridizationPrice(_firstUnicornId)));
        }

        plusFreezingTime(_firstUnicornId);
        plusFreezingTime(_secondUnicornId);
        uint256 newUnicornId = unicornToken.createUnicorn(msg.sender);
        //        BlackBoxInterface blackBox = BlackBoxInterface(unicornManagement.blackBoxAddress());
        blackBox.geneCore.value(unicornManagement.oraclizeFee())(newUnicornId, _firstUnicornId, _secondUnicornId);
        emit CreateUnicorn(msg.sender, newUnicornId, _firstUnicornId, _secondUnicornId);
        if (hybridizations[_firstUnicornId].price > 0) {
            candyToken.transfer(unicornToken.ownerOf(_firstUnicornId), hybridizations[_firstUnicornId].price);
        }
        emit HybridizationAccept(_firstUnicornId, _secondUnicornId, newUnicornId);
        _deleteHybridization(_firstUnicornId);
    }


    function cancelHybridization (uint _unicornId) public {
        require(unicornToken.owns(msg.sender,_unicornId));
        require(hybridizations[_unicornId].exists);
        _deleteHybridization(_unicornId);
    }

    function deleteHybridization(uint _unicornId) onlyUnicornToken external {
        _deleteHybridization(_unicornId);
    }

    function _deleteHybridization(uint _unicornId) internal {
        if (hybridizations[_unicornId].exists) {
            hybridizations[hybridizationList[--hybridizationListSize]].listIndex = hybridizations[_unicornId].listIndex;
            hybridizationList[hybridizations[_unicornId].listIndex] = hybridizationList[hybridizationListSize];
            delete hybridizationList[hybridizationListSize];
            delete hybridizations[_unicornId];
            emit HybridizationDelete(_unicornId);
        }
    }

    //Create new 0 gen
    function createUnicorn() public payable whenNotPaused returns(uint256)   {
        require(msg.value == getCreateUnicornPrice());
        return _createUnicorn(msg.sender);
    }

    function createUnicornForCandy() public payable whenNotPaused returns(uint256)   {
        require(msg.value == unicornManagement.oraclizeFee());
        require(candyToken.transferFrom(msg.sender, this, getCreateUnicornPriceInCandy()));
        return _createUnicorn(msg.sender);
    }

    function createPresaleUnicorns(uint _count, address _owner) public payable onlyManager whenPaused returns(bool) {
        require(gen0PresaleCount.add(_count) <= gen0PresaleLimit);
        uint256 newUnicornId;
        address owner = _owner == address(0) ? msg.sender : _owner;
        for (uint i = 0; i < _count; i++){
            newUnicornId = unicornToken.createUnicorn(owner);
            blackBox.createGen0(newUnicornId);
            emit CreateUnicorn(owner, newUnicornId, 0, 0);
            gen0Count = gen0Count.add(1);
            gen0PresaleCount = gen0PresaleCount.add(1);
        }
        return true;
    }

    function _createUnicorn(address _owner) private returns(uint256) {
        require(gen0Count < gen0Limit);
        uint256 newUnicornId = unicornToken.createUnicorn(_owner);
        //        BlackBoxInterface blackBox = BlackBoxInterface(unicornManagement.blackBoxAddress());
        blackBox.createGen0.value(unicornManagement.oraclizeFee())(newUnicornId);
        emit CreateUnicorn(_owner, newUnicornId, 0, 0);
        gen0Count = gen0Count.add(1);
        return newUnicornId;
    }

    function plusFreezingTime(uint _unicornId) private {
        unicornToken.plusFreezingTime(_unicornId);
    }

    function plusTourFreezingTime(uint _unicornId) onlyTournament public {
        unicornToken.plusTourFreezingTime(_unicornId);
    }

    //change freezing time for megacandy
    function minusFreezingTime(uint _unicornId, uint _count) public { 
        require(megaCandyToken.burn(msg.sender,   unicornManagement.subFreezingPrice().mul(_count)));
        unicornToken.minusFreezingTime(_unicornId,  unicornManagement.subFreezingTime() * uint64(_count));
    }

    //change tour freezing time for megacandy
    function minusTourFreezingTime(uint _unicornId, uint _count) public { 
        require(megaCandyToken.burn(msg.sender, unicornManagement.subTourFreezingPrice().mul(_count)));
        unicornToken.minusTourFreezingTime(_unicornId, unicornManagement.subTourFreezingTime() * uint64(_count));
    }

    function getHybridizationPrice(uint _unicornId) public view returns (uint) {
        return unicornManagement.getHybridizationFullPrice(hybridizations[_unicornId].price);
    }

    function getEtherFeeForPriceInCandy() public view returns (uint) {
        return unicornManagement.oraclizeFee();
    }

    function getCreateUnicornPriceInCandy() public view returns (uint) {
        return unicornManagement.getCreateUnicornFullPriceInCandy();
    }


    function getCreateUnicornPrice() public view returns (uint) {
        return unicornManagement.getCreateUnicornFullPrice();
    }


    function withdrawTokens() onlyManager public {
        require(candyToken.balanceOf(this) > 0); 
        candyToken.transfer(unicornManagement.walletAddress(), candyToken.balanceOf(this)); 
    }


    function transferEthersToDividendManager(uint _value) onlyManager public {
        require(address(this).balance >= _value);
        DividendManagerInterface dividendManager = DividendManagerInterface(unicornManagement.dividendManagerAddress());
        dividendManager.payDividend.value(_value)();
        emit FundsTransferred(unicornManagement.dividendManagerAddress(), _value);
    }


    function setGen0Limit() external onlyCommunity {
        require(gen0Count == gen0Limit);
        gen0Limit = gen0Limit.add(gen0Step);
        emit NewGen0Limit(gen0Limit);
    }
 

    ////MARKET
    struct Offer{
        uint marketIndex;
        uint priceEth;
        uint priceCandy;
        bool exists;
    }

    // Mapping from unicorn ID to Offer struct
    mapping (uint => Offer) public offers;
    // Mapping from unicorn ID to offer ID
    //    mapping (uint => uint) public unicornOffer;
    // market index => offerId
    mapping(uint => uint) public market;
    uint public marketSize = 0;


    function sellUnicorn(uint _unicornId, uint _priceEth, uint _priceCandy) public {
        require(unicornToken.owns(msg.sender, _unicornId));
        require(!offers[_unicornId].exists);

        offers[_unicornId] = Offer({
            priceEth: _priceEth,
            priceCandy: _priceCandy,
            exists: true,
            marketIndex: marketSize
            });

        market[marketSize++] = _unicornId;

        emit OfferAdd(_unicornId, _priceEth, _priceCandy);
    }


    function buyUnicornWithEth(uint _unicornId) public payable {
        require(offers[_unicornId].exists);
        uint price = offers[_unicornId].priceEth;
        //Выставлять на продажу за 0 можно. Но нужно проверить чтобы и вторая цена также была 0
        if (price == 0) {
            require(offers[_unicornId].priceCandy == 0);
        }
        require(msg.value == getOfferPriceEth(_unicornId));

        address owner = unicornToken.ownerOf(_unicornId);

        emit UnicornSold(_unicornId);
        //deleteoffer вызовется внутри transfer
        unicornToken.marketTransfer(owner, msg.sender, _unicornId);
        owner.transfer(price);
    }


    function buyUnicornWithCandy(uint _unicornId) public {
        require(offers[_unicornId].exists);
        uint price = offers[_unicornId].priceCandy;
        //Выставлять на продажу за 0 можно. Но нужно проверить чтобы и вторая цена также была 0
        if (price == 0) {
            require(offers[_unicornId].priceEth == 0);
        }

        address owner = unicornToken.ownerOf(_unicornId);

        if (price > 0) {
            require(candyToken.transferFrom(msg.sender, this, getOfferPriceCandy(_unicornId)));
            candyToken.transfer(owner, price);
        }

        emit UnicornSold(_unicornId);
        //deleteoffer вызовется внутри transfer
        unicornToken.marketTransfer(owner, msg.sender, _unicornId);
    }


    function revokeUnicorn(uint _unicornId) public {
        require(unicornToken.owns(msg.sender, _unicornId));
        require(offers[_unicornId].exists);
        _deleteOffer(_unicornId);
    }


    function deleteOffer(uint _unicornId) onlyUnicornToken external {
        _deleteOffer(_unicornId);
    }


    function _deleteOffer(uint _unicornId) internal {
        if (offers[_unicornId].exists) {
            offers[market[--marketSize]].marketIndex = offers[_unicornId].marketIndex;
            market[offers[_unicornId].marketIndex] = market[marketSize];
            delete market[marketSize];
            delete offers[_unicornId];
            emit OfferDelete(_unicornId);
        }
    }


    function getOfferPriceEth(uint _unicornId) public view returns (uint) {
        return offers[_unicornId].priceEth.add(valueFromPercent(offers[_unicornId].priceEth, sellDividendPercentEth));
    }


    function getOfferPriceCandy(uint _unicornId) public view returns (uint) {
        return offers[_unicornId].priceCandy.add(valueFromPercent(offers[_unicornId].priceCandy, sellDividendPercentCandy));
    }


    function setSellDividendPercent(uint _percentCandy, uint _percentEth) public onlyManager {
        //no more then 25%
        require(_percentCandy < 2500 && _percentEth < 2500);

        sellDividendPercentCandy = _percentCandy;
        sellDividendPercentEth = _percentEth;
        emit NewSellDividendPercent(_percentCandy, _percentEth);
    }


    //1% - 100, 10% - 1000 50% - 5000
    function valueFromPercent(uint _value, uint _percent) internal pure returns (uint amount)    {
        uint _amount = _value.mul(_percent).div(10000);
        return (_amount);
    }

}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"isGamePaused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"hybridizations","outputs":[{"name":"listIndex","type":"uint256"},{"name":"price","type":"uint256"},{"name":"exists","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_unicornId","type":"uint256"}],"name":"getHybridizationPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_unicornId","type":"uint256"},{"name":"_price","type":"uint256"}],"name":"makeHybridization","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_unicornId","type":"uint256"}],"name":"getOfferPriceCandy","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"market","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_unicornId","type":"uint256"},{"name":"_priceEth","type":"uint256"},{"name":"_priceCandy","type":"uint256"}],"name":"sellUnicorn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_unicornId","type":"uint256"}],"name":"cancelHybridization","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getCreateUnicornPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_unicornId","type":"uint256"}],"name":"buyUnicornWithEth","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_unicornId","type":"uint256"},{"name":"_count","type":"uint256"}],"name":"minusFreezingTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_unicornId","type":"uint256"},{"name":"_count","type":"uint256"}],"name":"minusTourFreezingTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_count","type":"uint256"},{"name":"_owner","type":"address"}],"name":"createPresaleUnicorns","outputs":[{"name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"createUnicornForCandy","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"unicornToken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"hybridizationList","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_unicornId","type":"uint256"}],"name":"getOfferPriceEth","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_unicornId","type":"uint256"}],"name":"deleteOffer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"gen0PresaleLimit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"gen0PresaleCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"offers","outputs":[{"name":"marketIndex","type":"uint256"},{"name":"priceEth","type":"uint256"},{"name":"priceCandy","type":"uint256"},{"name":"exists","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"createUnicorn","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"unicornManagement","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_percentCandy","type":"uint256"},{"name":"_percentEth","type":"uint256"}],"name":"setSellDividendPercent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"candyToken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_unicornId","type":"uint256"}],"name":"revokeUnicorn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"gen0Count","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"sellDividendPercentCandy","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"blackBox","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_unicornId","type":"uint256"}],"name":"deleteHybridization","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_unicornId","type":"uint256"}],"name":"buyUnicornWithCandy","outputs":[],"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":"gen0Step","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_firstUnicornId","type":"uint256"},{"name":"_secondUnicornId","type":"uint256"}],"name":"acceptHybridization","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"getEtherFeeForPriceInCandy","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"init","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"gen0Limit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"sellDividendPercentEth","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"hybridizationListSize","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"marketSize","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"setGen0Limit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getCreateUnicornPriceInCandy","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"transferEthersToDividendManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"megaCandyToken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_unicornManagementAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"unicornId","type":"uint256"},{"indexed":false,"name":"price","type":"uint256"}],"name":"HybridizationAdd","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"firstUnicornId","type":"uint256"},{"indexed":true,"name":"secondUnicornId","type":"uint256"},{"indexed":false,"name":"newUnicornId","type":"uint256"}],"name":"HybridizationAccept","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"unicornId","type":"uint256"}],"name":"HybridizationDelete","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"dividendManager","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"FundsTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"unicornId","type":"uint256"},{"indexed":false,"name":"parent1","type":"uint256"},{"indexed":false,"name":"parent2","type":"uint256"}],"name":"CreateUnicorn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"limit","type":"uint256"}],"name":"NewGen0Limit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"step","type":"uint256"}],"name":"NewGen0Step","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"unicornId","type":"uint256"},{"indexed":false,"name":"priceEth","type":"uint256"},{"indexed":false,"name":"priceCandy","type":"uint256"}],"name":"OfferAdd","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"unicornId","type":"uint256"}],"name":"OfferDelete","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"unicornId","type":"uint256"}],"name":"UnicornSold","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"percentCandy","type":"uint256"},{"indexed":false,"name":"percentCandyEth","type":"uint256"}],"name":"NewSellDividendPercent","type":"event"}]

  Contract Creation Code Switch To Opcodes View
606060405261017760055561017760065561753060075561070d6008556103e86009556103e8600a556000600b556000600e55600060115534156200004357600080fd5b60405160208062004e318339810160405280805190602001909190505080806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632a70d1e7306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15156200015d57600080fd5b5af115156200016b57600080fd5b505050506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a63f5e2a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515620001f457600080fd5b5af115156200020257600080fd5b50505060405180519050600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050614bd4806200025d6000396000f300606060405260043610610225576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630422ddf3146102275780631327d383146102545780631ed378a11461029d5780632394a797146102d457806323d9ea801461030057806328861d221461033757806329cf90f31461036e5780632cf42a6c146103a3578063317ffcf2146103c6578063383a194c146103ef5780633900f8f61461040757806339dad8f5146104335780633ae50ce71461045f57806352fa1ac2146104ae578063544447bb146104cc57806367ae9e8f14610521578063699f0c721461055857806374268ff21461058f5780637cd022d4146105b25780638091fbe1146105db5780638a72ea6a146106045780638d8d50d0146106545780638d8f2adb146106725780638dca7a01146106875780638fe2eb9e146106dc578063a63f5e2a14610708578063af40ce201461075d578063b30387a414610780578063b93c7d42146107a9578063bd1723e5146107d2578063c7024b9814610827578063d029a5301461084a578063d03e9fff1461086d578063d224c3e014610890578063da9287d1146108b9578063de763a40146108da578063e1c7392a14610903578063e515a4d114610918578063e5a0741914610941578063eb1bb9d91461096a578063eb56105d14610993578063ec7bb2ac146109bc578063ee81f57c146109d1578063ff394153146109fa578063ff8028b314610a1d575b005b341561023257600080fd5b61023a610a72565b604051808215151515815260200191505060405180910390f35b341561025f57600080fd5b6102756004808035906020019091905050610b14565b6040518084815260200183815260200182151515158152602001935050505060405180910390f35b34156102a857600080fd5b6102be6004808035906020019091905050610b4b565b6040518082815260200191505060405180910390f35b34156102df57600080fd5b6102fe6004808035906020019091908035906020019091905050610c10565b005b341561030b57600080fd5b6103216004808035906020019091905050610ea7565b6040518082815260200191505060405180910390f35b341561034257600080fd5b6103586004808035906020019091905050610efa565b6040518082815260200191505060405180910390f35b341561037957600080fd5b6103a16004808035906020019091908035906020019091908035906020019091905050610f12565b005b34156103ae57600080fd5b6103c46004808035906020019091905050611110565b005b34156103d157600080fd5b6103d9611231565b6040518082815260200191505060405180910390f35b61040560048080359060200190919050506112d3565b005b341561041257600080fd5b6104316004808035906020019091908035906020019091905050611586565b005b341561043e57600080fd5b61045d6004808035906020019091908035906020019091905050611874565b005b610494600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611b62565b604051808215151515815260200191505060405180910390f35b6104b6611f71565b6040518082815260200191505060405180910390f35b34156104d757600080fd5b6104df6121f1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561052c57600080fd5b6105426004808035906020019091905050612217565b6040518082815260200191505060405180910390f35b341561056357600080fd5b610579600480803590602001909190505061222f565b6040518082815260200191505060405180910390f35b341561059a57600080fd5b6105b06004808035906020019091905050612282565b005b34156105bd57600080fd5b6105c5612362565b6040518082815260200191505060405180910390f35b34156105e657600080fd5b6105ee612368565b6040518082815260200191505060405180910390f35b341561060f57600080fd5b610625600480803590602001909190505061236e565b604051808581526020018481526020018381526020018215151515815260200194505050505060405180910390f35b61065c6123ab565b6040518082815260200191505060405180910390f35b341561067d57600080fd5b610685612477565b005b341561069257600080fd5b61069a612876565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106e757600080fd5b610706600480803590602001909190803590602001909190505061289b565b005b341561071357600080fd5b61071b6129dd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561076857600080fd5b61077e6004808035906020019091905050612a03565b005b341561078b57600080fd5b610793612b24565b6040518082815260200191505060405180910390f35b34156107b457600080fd5b6107bc612b2a565b6040518082815260200191505060405180910390f35b34156107dd57600080fd5b6107e5612b30565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561083257600080fd5b6108486004808035906020019091905050612b56565b005b341561085557600080fd5b61086b6004808035906020019091905050612c36565b005b341561087857600080fd5b61088e600480803590602001909190505061309b565b005b341561089b57600080fd5b6108a361321b565b6040518082815260200191505060405180910390f35b6108d86004808035906020019091908035906020019091905050613221565b005b34156108e557600080fd5b6108ed613bc1565b6040518082815260200191505060405180910390f35b341561090e57600080fd5b610916613c63565b005b341561092357600080fd5b61092b613ff7565b6040518082815260200191505060405180910390f35b341561094c57600080fd5b610954613ffd565b6040518082815260200191505060405180910390f35b341561097557600080fd5b61097d614003565b6040518082815260200191505060405180910390f35b341561099e57600080fd5b6109a6614009565b6040518082815260200191505060405180910390f35b34156109c757600080fd5b6109cf61400f565b005b34156109dc57600080fd5b6109e461414d565b6040518082815260200191505060405180910390f35b3415610a0557600080fd5b610a1b60048080359060200190919050506141ef565b005b3415610a2857600080fd5b610a30614505565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515610af857600080fd5b5af11515610b0557600080fd5b50505060405180519050905090565b600c6020528060005260406000206000915090508060000154908060010154908060020160009054906101000a900460ff16905083565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e8474230600c6000858152602001908152602001600020600101546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1515610bf257600080fd5b5af11515610bff57600080fd5b505050604051805190509050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663818d4b5d33846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610cd457600080fd5b5af11515610ce157600080fd5b505050604051805190501515610cf657600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cbde2ff0836040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1515610d8657600080fd5b5af11515610d9357600080fd5b505050604051805190501515610da857600080fd5b600c600083815260200190815260200160002060020160009054906101000a900460ff16151515610dd857600080fd5b606060405190810160405280600e54815260200182815260200160011515815250600c6000848152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548160ff02191690831515021790555090505081600d6000600e600081548092919060010191905055815260200190815260200160002081905550817f84abd4d356237b35dfca5b88dc4e394c7e9f4cb3b214adcabfabdc6fe1f5f76c826040518082815260200191505060405180910390a25050565b6000610ef3610ece600f60008581526020019081526020016000206002015460055461452b565b600f60008581526020019081526020016000206002015461456190919063ffffffff16565b9050919050565b60106020528060005260406000206000915090505481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663818d4b5d33856040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610fd657600080fd5b5af11515610fe357600080fd5b505050604051805190501515610ff857600080fd5b600f600084815260200190815260200160002060030160009054906101000a900460ff1615151561102857600080fd5b608060405190810160405280601154815260200183815260200182815260200160011515815250600f600085815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548160ff02191690831515021790555090505082601060006011600081548092919060010191905055815260200190815260200160002081905550827f13e4d00e26244f0e870ff787588c0980bf9d98eb39577648b77788542f19292a8383604051808381526020018281526020019250505060405180910390a2505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663818d4b5d33836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156111d457600080fd5b5af115156111e157600080fd5b5050506040518051905015156111f657600080fd5b600c600082815260200190815260200160002060020160009054906101000a900460ff16151561122557600080fd5b61122e8161457f565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636a96c63e6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156112b757600080fd5b5af115156112c457600080fd5b50505060405180519050905090565b600080600f600084815260200190815260200160002060030160009054906101000a900460ff16151561130557600080fd5b600f6000848152602001908152602001600020600101549150600082141561134d576000600f60008581526020019081526020016000206002015414151561134c57600080fd5b5b6113568361222f565b3414151561136357600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e846040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15156113f357600080fd5b5af1151561140057600080fd5b505050604051805190509050827f4061e21996e5679778d872d5b99ef37970aa24194d370815ff0e224e58dff1a460405160405180910390a2600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bcf0dd8e8233866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b151561153157600080fd5b5af1151561153e57600080fd5b5050508073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050151561158157600080fd5b505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac33611672846000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166373def2b76040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561164d57600080fd5b5af1151561165a57600080fd5b505050604051805190506146c290919063ffffffff16565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156116f657600080fd5b5af1151561170357600080fd5b50505060405180519050151561171857600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634a3a92f683836000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639ea764756040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156117dc57600080fd5b5af115156117e957600080fd5b50505060405180519050026040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018267ffffffffffffffff1667ffffffffffffffff16815260200192505050600060405180830381600087803b151561186057600080fd5b5af1151561186d57600080fd5b5050505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac33611960846000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636b308ee76040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561193b57600080fd5b5af1151561194857600080fd5b505050604051805190506146c290919063ffffffff16565b6040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156119e457600080fd5b5af115156119f157600080fd5b505050604051805190501515611a0657600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a60b8aa983836000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166392491f216040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515611aca57600080fd5b5af11515611ad757600080fd5b50505060405180519050026040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018267ffffffffffffffff1667ffffffffffffffff16815260200192505050600060405180830381600087803b1515611b4e57600080fd5b5af11515611b5b57600080fd5b5050505050565b6000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cf73a1bc6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515611bec57600080fd5b5af11515611bf957600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c3c57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515611cc057600080fd5b5af11515611ccd57600080fd5b505050604051805190501515611ce257600080fd5b600a54611cfa87600b5461456190919063ffffffff16565b11151515611d0757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614611d415784611d43565b335b9150600090505b85811015611f6457600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ce5a5df7836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515611e0e57600080fd5b5af11515611e1b57600080fd5b505050604051805190509250600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631a9caab9846040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b1515611eb757600080fd5b5af11515611ec457600080fd5b505050828273ffffffffffffffffffffffffffffffffffffffff167f51b6670023a2e348a2cb6b181f6ceed38b9ca16e2a416c7f437722cda97264d0600080604051808381526020018281526020019250505060405180910390a3611f35600160085461456190919063ffffffff16565b600881905550611f516001600b5461456190919063ffffffff16565b600b819055508080600101915050611d4a565b6001935050505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515611ff757600080fd5b5af1151561200457600080fd5b5050506040518051905015151561201a57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634c6226fc6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561209e57600080fd5b5af115156120ab57600080fd5b50505060405180519050341415156120c257600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd333061210a61414d565b6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15156121c157600080fd5b5af115156121ce57600080fd5b5050506040518051905015156121e357600080fd5b6121ec336146fd565b905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d6020528060005260406000206000915090505481565b600061227b612256600f60008581526020019081526020016000206001015460065461452b565b600f60008581526020019081526020016000206001015461456190919063ffffffff16565b9050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635abaaa016040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561230657600080fd5b5af1151561231357600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561235657600080fd5b61235f8161499f565b50565b600a5481565b600b5481565b600f6020528060005260406000206000915090508060000154908060010154908060020154908060030160009054906101000a900460ff16905084565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561243157600080fd5b5af1151561243e57600080fd5b5050506040518051905015151561245457600080fd5b61245c611231565b3414151561246957600080fd5b612472336146fd565b905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cf73a1bc6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156124fb57600080fd5b5af1151561250857600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561254b57600080fd5b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561260957600080fd5b5af1151561261657600080fd5b5050506040518051905011151561262c57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636ad5b3ea6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156126ee57600080fd5b5af115156126fb57600080fd5b50505060405180519050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15156127c157600080fd5b5af115156127ce57600080fd5b505050604051805190506040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561285c57600080fd5b5af1151561286957600080fd5b5050506040518051905050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cf73a1bc6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561291f57600080fd5b5af1151561292c57600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561296f57600080fd5b6109c48210801561298157506109c481105b151561298c57600080fd5b81600581905550806006819055507f30c8ebfc35cc822986e28f932b0a3ec7ddeb7d22b2e2069c8418b8f6bb2be6648282604051808381526020018281526020019250505060405180910390a15050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663818d4b5d33836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515612ac757600080fd5b5af11515612ad457600080fd5b505050604051805190501515612ae957600080fd5b600f600082815260200190815260200160002060030160009054906101000a900460ff161515612b1857600080fd5b612b218161499f565b50565b60085481565b60055481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635abaaa016040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515612bda57600080fd5b5af11515612be757600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612c2a57600080fd5b612c338161457f565b50565b600080600f600084815260200190815260200160002060030160009054906101000a900460ff161515612c6857600080fd5b600f60008481526020019081526020016000206002015491506000821415612cb0576000600f600085815260200190815260200160002060010154141515612caf57600080fd5b5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e846040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1515612d4057600080fd5b5af11515612d4d57600080fd5b5050506040518051905090506000821115612f6157600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330612dab87610ea7565b6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1515612e6257600080fd5b5af11515612e6f57600080fd5b505050604051805190501515612e8457600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515612f4857600080fd5b5af11515612f5557600080fd5b50505060405180519050505b827f4061e21996e5679778d872d5b99ef37970aa24194d370815ff0e224e58dff1a460405160405180910390a2600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bcf0dd8e8233866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b151561308657600080fd5b5af1151561309357600080fd5b505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e10f1b06336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561315657600080fd5b5af1151561316357600080fd5b50505060405180519050151561317857600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d03e9fff826040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b151561320857600080fd5b5af1151561321557600080fd5b50505050565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156132a757600080fd5b5af115156132b457600080fd5b505050604051805190501515156132ca57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663818d4b5d33846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561338e57600080fd5b5af1151561339b57600080fd5b5050506040518051905015156133b057600080fd5b8282141515156133bf57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cbde2ff0846040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b151561344f57600080fd5b5af1151561345c57600080fd5b5050506040518051905080156135155750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cbde2ff0836040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15156134fd57600080fd5b5af1151561350a57600080fd5b505050604051805190505b151561352057600080fd5b600c600084815260200190815260200160002060020160009054906101000a900460ff16151561354f57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634c6226fc6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156135d357600080fd5b5af115156135e057600080fd5b50505060405180519050341415156135f757600080fd5b6000600c600085815260200190815260200160002060010154111561373957600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd333061365f87610b4b565b6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b151561371657600080fd5b5af1151561372357600080fd5b50505060405180519050151561373857600080fd5b5b61374283614aea565b61374b82614aea565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ce5a5df7336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561380757600080fd5b5af1151561381457600080fd5b505050604051805190509050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631e5d2e416000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634c6226fc6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156138e257600080fd5b5af115156138ef57600080fd5b505050604051805190508386866040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018084815260200183815260200182815260200193505050506000604051808303818588803b151561395a57600080fd5b5af1151561396757600080fd5b50505050803373ffffffffffffffffffffffffffffffffffffffff167f51b6670023a2e348a2cb6b181f6ceed38b9ca16e2a416c7f437722cda97264d08585604051808381526020018281526020019250505060405180910390a36000600c6000858152602001908152602001600020600101541115613b7a57600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e866040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b1515613aaf57600080fd5b5af11515613abc57600080fd5b50505060405180519050600c6000878152602001908152602001600020600101546040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515613b6157600080fd5b5af11515613b6e57600080fd5b50505060405180519050505b81837f5b4cde6dd262ac8adc9c9dc9abd965f7fdc5f1b7e3a97db5fd06aa922540cfbf836040518082815260200191505060405180910390a3613bbc8361457f565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634c6226fc6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515613c4757600080fd5b5af11515613c5457600080fd5b50505060405180519050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613cbe57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515613d4257600080fd5b5af11515613d4f57600080fd5b505050604051805190501515613d6457600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635abaaa016040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515613de857600080fd5b5af11515613df557600080fd5b50505060405180519050600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635550e4f36040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515613ec357600080fd5b5af11515613ed057600080fd5b50505060405180519050600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a76d368a6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515613f9e57600080fd5b5af11515613fab57600080fd5b50505060405180519050600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60075481565b60065481565b600e5481565b60115481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166386e476dd6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561409357600080fd5b5af115156140a057600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156140e357600080fd5b6007546008541415156140f557600080fd5b61410c60095460075461456190919063ffffffff16565b6007819055507f82a435bab9dac7abe42e365cda0c3cb0f64bf2b839af282f9e312d2d66145c846007546040518082815260200191505060405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a2c174596040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156141d357600080fd5b5af115156141e057600080fd5b50505060405180519050905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cf73a1bc6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561427557600080fd5b5af1151561428257600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156142c557600080fd5b813073ffffffffffffffffffffffffffffffffffffffff1631101515156142eb57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166349b7a9c26040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561436f57600080fd5b5af1151561437c57600080fd5b5050506040518051905090508073ffffffffffffffffffffffffffffffffffffffff16630b6826ca836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016000604051808303818588803b15156143eb57600080fd5b5af115156143f857600080fd5b505050507f8c9a4f13b67cb64d7c6aa1ae0c9bf07694af521a28b93e7060020810ab4bc59f6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166349b7a9c26040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156144a157600080fd5b5af115156144ae57600080fd5b5050506040518051905083604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008061455561271061454785876146c290919063ffffffff16565b614b8d90919063ffffffff16565b90508091505092915050565b600080828401905083811015151561457557fe5b8091505092915050565b600c600082815260200190815260200160002060020160009054906101000a900460ff16156146bf57600c600082815260200190815260200160002060000154600c6000600d6000600e6000815460019003919050819055815260200190815260200160002054815260200190815260200160002060000181905550600d6000600e54815260200190815260200160002054600d6000600c600085815260200190815260200160002060000154815260200190815260200160002081905550600d6000600e54815260200190815260200160002060009055600c600082815260200190815260200160002060008082016000905560018201600090556002820160006101000a81549060ff02191690555050807f868a9e71dfb115bed3ee872d882e85e6054c40386de4fbb9b016f78717d7b9ed60405160405180910390a25b50565b60008060008414156146d757600091506146f6565b82840290508284828115156146e857fe5b041415156146f257fe5b8091505b5092915050565b60008060075460085410151561471257600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ce5a5df7846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15156147ce57600080fd5b5af115156147db57600080fd5b505050604051805190509050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631a9caab96000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634c6226fc6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156148a957600080fd5b5af115156148b657600080fd5b50505060405180519050836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808281526020019150506000604051808303818588803b151561491157600080fd5b5af1151561491e57600080fd5b50505050808373ffffffffffffffffffffffffffffffffffffffff167f51b6670023a2e348a2cb6b181f6ceed38b9ca16e2a416c7f437722cda97264d0600080604051808381526020018281526020019250505060405180910390a3614990600160085461456190919063ffffffff16565b60088190555080915050919050565b600f600082815260200190815260200160002060030160009054906101000a900460ff1615614ae757600f600082815260200190815260200160002060000154600f600060106000601160008154600190039190508190558152602001908152602001600020548152602001908152602001600020600001819055506010600060115481526020019081526020016000205460106000600f60008581526020019081526020016000206000015481526020019081526020016000208190555060106000601154815260200190815260200160002060009055600f6000828152602001908152602001600020600080820160009055600182016000905560028201600090556003820160006101000a81549060ff02191690555050807f5ea1bcce7d1009a8f5578c7ae0fb858880637a891d4e67851c12e37b35f59c6360405160405180910390a25b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633e8eca23826040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b1515614b7a57600080fd5b5af11515614b8757600080fd5b50505050565b6000808284811515614b9b57fe5b04905080915050929150505600a165627a7a7230582002fbaec93aa6785fe1ba1594dd1f9e6ec59a1d479aeff95bac55bd7183d68cf6002900000000000000000000000010cc060f6f9b2e5dcdb23f1361e4b368a7daec73

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

-----Decoded View---------------
Found 1 constructor arguments :
Arg [0] : 00000000000000000000000010cc060f6f9b2e5dcdb23f1361e4b368a7daec73


   Swarm Source:
bzzr://02fbaec93aa6785fe1ba1594dd1f9e6ec59a1d479aeff95bac55bd7183d68cf6

 

View All
Block Age txn Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "downvote" button for any spammy posts, and the "upvote" for interesting conversations.