Contract 0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc

 

TxHash Block Age From To Value [TxFee]
0x3339fb4e2d6978dc47fa7b2effd287c0ddceb120c0e955983f01c4540ef2cca572254547 days 12 hrs ago0x507f7081892589df21482ca630d7cf841f4d57fa IN  0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0 Ether0.000288618
0x698b4549b4fdb232e1a174a35628fe0d00e0c3955acf6937941681084f0038ee72254527 days 12 hrs ago0x507f7081892589df21482ca630d7cf841f4d57fa IN  0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0 Ether0.000288618
0xbcfeee392f72e1a18a755786eb7a2347a6a7a678a7aae53fe536d3419200cd196660944107 days 20 hrs ago0x6d7f5f4997f098d33dc6b809edf33621ebd5a8fa IN  0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0 Ether0.00013055
0xd452fad4a6d617733cd200eec12c997f6a1548f9b9c19184ea93c6b52384ce2b6554710125 days 6 hrs ago0xf4ae2d9cfe55db1d69667f2805c328b67d7f87cf IN  0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0 Ether0.000104696
0x7e65150fb88c9b377b7021ffe2a6cfc921138bcc0d8ed0ce2d127386adf9f7176512418132 days 3 hrs ago0x18e3c1ac5dfa88442784492d3647a887a870b570 IN  0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0 Ether0.000471132
0x122bc2c25b07da99e60790893a53d5218c9ec0bee437f002545459b919cb0e526512260132 days 4 hrs ago0xd2d9b8eeedef54874a215be7100cf646a3683c9c IN  0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0.0065013 Ether0.0001308
0x66e8df00791c4c5cb98b625c63e101233fa7a4eb971846b72e2ad859f35ba5b96512258132 days 4 hrs ago0xd2d9b8eeedef54874a215be7100cf646a3683c9c IN  0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0.0078 Ether0.000026224
0x473fcf36b4558bf44f2404003a29db522b054160d4f4dbb4f0d8d4bc0d8b39096511827132 days 5 hrs ago0xf4ae2d9cfe55db1d69667f2805c328b67d7f87cf IN  0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0 Ether0.000107313402
0x0e1040925699b326300fdc7af88830a1a0f6a53b42b35284b25730d9319db7466511827132 days 5 hrs ago0xf4ae2d9cfe55db1d69667f2805c328b67d7f87cf IN  0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0 Ether0.00011280994
0x779ae8e0f4973b8e659df557d1115133fc94a601e97d3cf3aceec4b4ba7999876510675132 days 10 hrs ago0xb87ebff92e958373a9da8cde34c0e6b29bc8fe6e IN  0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0 Ether0.00005222
0x89f9ed8ed8541f7f18b3c4c0d6c99bfd8bf4161fc4140758093f77cc56a001896509747132 days 14 hrs ago0x4ece223a70f46056419957ebda1e31d5d79ff03a IN  0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0 Ether0.000128391
0x493475eea7b52e2e4e63e132303d3ebf1fcf1075de8f837bffe108a33a18cbac6509731132 days 14 hrs ago0x4ece223a70f46056419957ebda1e31d5d79ff03a IN  0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0 Ether0.000041697
0x2ef4c3472b88f2aab999afbfd296f823116ef63a519bf80f6834dd47537e97646509726132 days 14 hrs ago0x4ece223a70f46056419957ebda1e31d5d79ff03a IN  0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0 Ether0.000128391
0xd7d81c308a518fc3919fcd96d34c55ab764ccb7f3310b4b72ade17dd2f91a6056509711132 days 14 hrs ago0x4ece223a70f46056419957ebda1e31d5d79ff03a IN  0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0 Ether0.000055596
0x376a68edbbfb2e4f2e3761874391c2568596c17889fe7e769a5db02ffb0842be6509677132 days 14 hrs ago0x4ece223a70f46056419957ebda1e31d5d79ff03a IN  0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0 Ether0.000092988
0x3625d3646c586e23f22a4d7b30a4c4e606081f2775e086324f0e66ba4967e73b6509641132 days 14 hrs ago0x4ece223a70f46056419957ebda1e31d5d79ff03a IN  0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0 Ether0.000213985
0x591fc5be5945deadd89206ded9607fd776d7cbdc48051aa246eabca4c3dbcd276509275132 days 16 hrs ago0x01bd1c8dbc93082e78201b7d4eec7ea55617d5eb IN  0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0.00663 Ether0.0007873704
0x1826ccd2797e0faab93827cc8aa85e49f985503bdab9f01f7d5d7146c9ad03496509228132 days 16 hrs ago0x01bd1c8dbc93082e78201b7d4eec7ea55617d5eb IN  0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0.006500013 Ether0.000750768
0x355641d44b02fc8a650691458a8ed1fbb59627056a51f9487fe1f97fb275d4be6509228132 days 16 hrs ago0x01bd1c8dbc93082e78201b7d4eec7ea55617d5eb IN  0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0.006501013 Ether0.000462141
0x690e3cfebc4e70f8d44ea97dfaed73d651d827897e7e48310d3832f57edd6d766509163132 days 16 hrs ago0x01bd1c8dbc93082e78201b7d4eec7ea55617d5eb IN  0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0.006501013 Ether0.000462045
0x133c3f8e76abfcc2538cf4e98cff2fc83232cc23bc61690267df8ab3914af5ed6509081132 days 16 hrs ago0x9621daab4af549936ef1b4cc8909e29252780377 IN  0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0.006500013 Ether0.000462156
0x477af00438ca1050b88d3b2f98b9e65eacd909a93cd804e2158033620f97b8086509053132 days 16 hrs ago0x78ddc21f33e3e06e590555cf59622c509cb557aa IN  0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0.00715 Ether0.000615981592
0x9fad1a1b382318cae68c26272bfde9868ab11402073cb33cbee401b5eba3286e6509028132 days 17 hrs ago0xc04eee3e73f888bb31ba18ba1b3c0f1c8d089aba IN  0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0 Ether0.000288552
0x53d5bed3d1e7a9c8fd48c547098768ec1fc2bc81f30f378d482019979ff146376509009132 days 17 hrs ago0x78ddc21f33e3e06e590555cf59622c509cb557aa IN  0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0.00663 Ether0.0006160308
0x1ad3e08159040befbc495ba8099624d0f8aa2659415900e4af3bf6068c634add6508955132 days 17 hrs ago0x0020b47659c6bd24300017e1792a1c8713941bc6 IN  0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0 Ether0.0001787456
[ Download CSV Export 

Latest 25 Internal Transaction, Click here to view more Internal Transactions as a result of Contract Execution

Parent TxHash Block Age From To Value
0x376a68edbbfb2e4f2e3761874391c2568596c17889fe7e769a5db02ffb0842be6509677132 days 14 hrs ago0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0xeddb036a52a6d2c375e501be7c8c8cd45d07e7960.289247090274999955 Ether
0x591fc5be5945deadd89206ded9607fd776d7cbdc48051aa246eabca4c3dbcd276509275132 days 16 hrs ago0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0xeddb036a52a6d2c375e501be7c8c8cd45d07e7960.000255 Ether
0x591fc5be5945deadd89206ded9607fd776d7cbdc48051aa246eabca4c3dbcd276509275132 days 16 hrs ago0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0x01bd1c8dbc93082e78201b7d4eec7ea55617d5eb0.0051 Ether
0x591fc5be5945deadd89206ded9607fd776d7cbdc48051aa246eabca4c3dbcd276509275132 days 16 hrs ago0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0x01bd1c8dbc93082e78201b7d4eec7ea55617d5eb0.0006375 Ether
0x591fc5be5945deadd89206ded9607fd776d7cbdc48051aa246eabca4c3dbcd276509275132 days 16 hrs ago0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0x01bd1c8dbc93082e78201b7d4eec7ea55617d5eb0.0006375 Ether
0x1826ccd2797e0faab93827cc8aa85e49f985503bdab9f01f7d5d7146c9ad03496509228132 days 16 hrs ago0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0xeddb036a52a6d2c375e501be7c8c8cd45d07e7960.0002500005 Ether
0x1826ccd2797e0faab93827cc8aa85e49f985503bdab9f01f7d5d7146c9ad03496509228132 days 16 hrs ago0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0x01bd1c8dbc93082e78201b7d4eec7ea55617d5eb0.00500001 Ether
0x1826ccd2797e0faab93827cc8aa85e49f985503bdab9f01f7d5d7146c9ad03496509228132 days 16 hrs ago0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0x01bd1c8dbc93082e78201b7d4eec7ea55617d5eb0.0012500025 Ether
0x355641d44b02fc8a650691458a8ed1fbb59627056a51f9487fe1f97fb275d4be6509228132 days 16 hrs ago0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0xeddb036a52a6d2c375e501be7c8c8cd45d07e7960.0002500005 Ether
0x355641d44b02fc8a650691458a8ed1fbb59627056a51f9487fe1f97fb275d4be6509228132 days 16 hrs ago0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0x01bd1c8dbc93082e78201b7d4eec7ea55617d5eb0.00500001 Ether
0x690e3cfebc4e70f8d44ea97dfaed73d651d827897e7e48310d3832f57edd6d766509163132 days 16 hrs ago0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0xeddb036a52a6d2c375e501be7c8c8cd45d07e7960.0002500005 Ether
0x690e3cfebc4e70f8d44ea97dfaed73d651d827897e7e48310d3832f57edd6d766509163132 days 16 hrs ago0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0x01bd1c8dbc93082e78201b7d4eec7ea55617d5eb0.00500001 Ether
0x133c3f8e76abfcc2538cf4e98cff2fc83232cc23bc61690267df8ab3914af5ed6509081132 days 16 hrs ago0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0xeddb036a52a6d2c375e501be7c8c8cd45d07e7960.0002500005 Ether
0x133c3f8e76abfcc2538cf4e98cff2fc83232cc23bc61690267df8ab3914af5ed6509081132 days 16 hrs ago0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0x01bd1c8dbc93082e78201b7d4eec7ea55617d5eb0.00500001 Ether
0x477af00438ca1050b88d3b2f98b9e65eacd909a93cd804e2158033620f97b8086509053132 days 16 hrs ago0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0xeddb036a52a6d2c375e501be7c8c8cd45d07e7960.000275 Ether
0x477af00438ca1050b88d3b2f98b9e65eacd909a93cd804e2158033620f97b8086509053132 days 16 hrs ago0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0x78ddc21f33e3e06e590555cf59622c509cb557aa0.0055 Ether
0x53d5bed3d1e7a9c8fd48c547098768ec1fc2bc81f30f378d482019979ff146376509009132 days 17 hrs ago0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0xeddb036a52a6d2c375e501be7c8c8cd45d07e7960.000255 Ether
0x53d5bed3d1e7a9c8fd48c547098768ec1fc2bc81f30f378d482019979ff146376509009132 days 17 hrs ago0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0x78ddc21f33e3e06e590555cf59622c509cb557aa0.0051 Ether
0x6754f0e71bc920a6e78853816944975d543203f45fc876cdbfbad59d201dcb1e6508880132 days 17 hrs ago0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0xeddb036a52a6d2c375e501be7c8c8cd45d07e7960.000295 Ether
0x6754f0e71bc920a6e78853816944975d543203f45fc876cdbfbad59d201dcb1e6508880132 days 17 hrs ago0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0xfe57852379d3aa6d63a378c7d5b549ef26f5132f0.0059 Ether
0x3df48bf5455185f88b15f7b0e3f76c19028e8006d8d83363f79aee10a908b04d6508727132 days 18 hrs ago0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0xeddb036a52a6d2c375e501be7c8c8cd45d07e7960.000255 Ether
0x3df48bf5455185f88b15f7b0e3f76c19028e8006d8d83363f79aee10a908b04d6508727132 days 18 hrs ago0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0x65fe52bc0e28a679513bc2781d2aebac0ee2795a0.0051 Ether
0x3df48bf5455185f88b15f7b0e3f76c19028e8006d8d83363f79aee10a908b04d6508727132 days 18 hrs ago0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0x1ba5e93b342374e5dbc51a60dad588422747dacf0.0006375 Ether
0x3df48bf5455185f88b15f7b0e3f76c19028e8006d8d83363f79aee10a908b04d6508727132 days 18 hrs ago0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0x1ba5e93b342374e5dbc51a60dad588422747dacf0.0006375 Ether
0x17d2011b880296eaa3472b87a132ae1870f1b83d596a200a9cd443387304b4e86508677132 days 18 hrs ago0x35ea9df0b7e2e450b1d129a6f81276103b84f3dc0xeddb036a52a6d2c375e501be7c8c8cd45d07e7960.000255 Ether
[ Download CSV Export 
Warning: The compiled contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity) Solidity Compiler Bugs.

Contract Source Code Verified (Similar Match)
Note: This contract matches the deployed ByteCode of the Verified Source Code for Contract 0x05c848e3547bc3ccd977b84140fdc917bfff96a1
Contract Name: BunnyGame
Compiler Version: v0.4.24+commit.e67f0147
Optimization Enabled: No
Runs (Optimizer):  200


Contract Source Code
pragma solidity ^0.4.24;
/*
______ _   _ _   _  _   ___   __
| ___ \ | | | \ | || \ | \ \ / /
| |_/ / | | |  \| ||  \| |\ V / 
| ___ \ | | | . ` || . ` | \ /  
| |_/ / |_| | |\  || |\  | | |  
\____/ \___/\_| \_/\_| \_/ \_/   
 _____   ___  ___  ___ _____    
|  __ \ / _ \ |  \/  ||  ___|   
| |  \// /_\ \| .  . || |__     
| | __ |  _  || |\/| ||  __|    
| |_\ \| | | || |  | || |___    
 \____/\_| |_/\_|  |_/\____/ 
               
* Author:  Konstantin G...
* Telegram: @bunnygame (en)
* email: [email protected]
* site : http://bunnycoin.co 
*/

/**
* @title Ownable
* @dev The Ownable contract has an owner address, and provides basic authorization control
* functions, this simplifies the implementation of "user permissions".
*/
contract Ownable {
    
    address ownerCEO;
    address ownerMoney;  
     
    address privAddress; 
    address addressAdmixture;
    
    /**
    * @dev The Ownable constructor sets the original `owner` of the contract to the sender
    * account.
    */
    constructor() public { 
        ownerCEO = msg.sender; 
        ownerMoney = msg.sender;
    }
 
  /**
   * @dev Throws if called by any account other than the owner.
   */
    modifier onlyOwner() {
        require(msg.sender == ownerCEO);
        _;
    }
   
    function transferOwnership(address add) public onlyOwner {
        if (add != address(0)) {
            ownerCEO = add;
        }
    }
 
    function transferOwnerMoney(address _ownerMoney) public  onlyOwner {
        if (_ownerMoney != address(0)) {
            ownerMoney = _ownerMoney;
        }
    }
 
    function getOwnerMoney() public view onlyOwner returns(address) {
        return ownerMoney;
    } 
    /**
    *  @dev private contract
     */
    function getPrivAddress() public view onlyOwner returns(address) {
        return privAddress;
    }
    function getAddressAdmixture() public view onlyOwner returns(address) {
        return addressAdmixture;
    }
} 



/**
 * @title Whitelist
 * @dev The Whitelist contract has a whitelist of addresses, and provides basic authorization control functions.
 * @dev This simplifies the implementation of "user permissions".
 */
contract Whitelist is Ownable {
    mapping(address => bool) public whitelist;

    mapping(uint  => address)   whitelistCheck;
    uint public countAddress = 0;

    event WhitelistedAddressAdded(address addr);
    event WhitelistedAddressRemoved(address addr);
 
  /**
   * @dev Throws if called by any account that's not whitelisted.
   */
    modifier onlyWhitelisted() {
        require(whitelist[msg.sender]);
        _;
    }

    constructor() public {
            whitelist[msg.sender] = true;  
    }

  /**
   * @dev add an address to the whitelist
   * @param addr address
   * @return true if the address was added to the whitelist, false if the address was already in the whitelist
   */
    function addAddressToWhitelist(address addr) onlyWhitelisted public returns(bool success) {
        if (!whitelist[addr]) {
            whitelist[addr] = true;

            countAddress = countAddress + 1;
            whitelistCheck[countAddress] = addr;

            emit WhitelistedAddressAdded(addr);
            success = true;
        }
    }

    function getWhitelistCheck(uint key) onlyWhitelisted view public returns(address) {
        return whitelistCheck[key];
    }


    function getInWhitelist(address addr) public view returns(bool) {
        return whitelist[addr];
    }
    function getOwnerCEO() public onlyWhitelisted view returns(address) {
        return ownerCEO;
    }
 
    /**
    * @dev add addresses to the whitelist
    * @param addrs addresses
    * @return true if at least one address was added to the whitelist,
    * false if all addresses were already in the whitelist
    */
    function addAddressesToWhitelist(address[] addrs) onlyOwner public returns(bool success) {
        for (uint256 i = 0; i < addrs.length; i++) {
            if (addAddressToWhitelist(addrs[i])) {
                success = true;
            }
        }
    }

    /**
    * @dev remove an address from the whitelist
    * @param addr address
    * @return true if the address was removed from the whitelist,
    * false if the address wasn't in the whitelist in the first place
    */
    function removeAddressFromWhitelist(address addr) onlyOwner public returns(bool success) {
        if (whitelist[addr]) {
            whitelist[addr] = false;
            emit WhitelistedAddressRemoved(addr);
            success = true;
        }
    }

    /**
    * @dev remove addresses from the whitelist
    * @param addrs addresses
    * @return true if at least one address was removed from the whitelist,
    * false if all addresses weren't in the whitelist in the first place
    */
    function removeAddressesFromWhitelist(address[] addrs) onlyOwner public returns(bool success) {
        for (uint256 i = 0; i < addrs.length; i++) {
            if (removeAddressFromWhitelist(addrs[i])) {
                success = true;
            }
        }
    }
}

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
    
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint 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 BaseRabbit  is Whitelist {
       

 
    event EmotherCount(uint32 mother, uint summ);
    event NewBunny(uint32 bunnyId, uint dnk, uint256 blocknumber, uint breed, uint procentAdmixture, uint admixture);
    event ChengeSex(uint32 bunnyId, bool sex, uint256 price);
    event SalaryBunny(uint32 bunnyId, uint cost);
    event CreateChildren(uint32 matron, uint32 sire, uint32 child);
    event BunnyDescription(uint32 bunnyId, string name);
    event CoolduwnMother(uint32 bunnyId, uint num);


    event Referral(address from, uint32 matronID, uint32 childID, uint currentTime);
    event Approval(address owner, address approved, uint32 tokenId);
    event OwnerBunnies(address owner, uint32  tokenId);
    event Transfer(address from, address to, uint32 tokenId);

 

    using SafeMath for uint256;
    bool pauseSave = false;
    uint256 bigPrice = 0.005 ether;
    
    uint public commission_system = 5;
     
    // ID the last seal
    uint32 public lastIdGen0;
    uint public totalGen0 = 0;
    // ID the last seal
    uint public lastTimeGen0;
    
    // ID the last seal
  //  uint public timeRangeCreateGen0 = 1800; 

    uint public promoGen0 = 15000;
    uint public promoMoney = 1*bigPrice;
    bool public promoPause = false;


    function setPromoGen0(uint _promoGen0) public onlyWhitelisted() {
        promoGen0 = _promoGen0;
    }

    function setPromoPause() public onlyWhitelisted() {
        promoPause = !promoPause;
    }



    function setPromoMoney(uint _promoMoney) public onlyWhitelisted() {
        promoMoney = _promoMoney;
    }
 

    mapping(uint32 => uint) public totalSalaryBunny;
    mapping(uint32 => uint32[5]) public rabbitMother;
    
    mapping(uint32 => uint) public motherCount;
    
    // how many times did the rabbit cross
    mapping(uint32 => uint) public rabbitBreedCount;

    mapping(uint32 => uint)  public rabbitSirePrice;
    mapping(uint => uint32[]) public sireGenom;
    mapping (uint32 => uint) mapDNK;
   
    uint32[12] public cooldowns = [
        uint32(1 minutes),
        uint32(2 minutes),
        uint32(4 minutes),
        uint32(8 minutes),
        uint32(16 minutes),
        uint32(32 minutes),
        uint32(1 hours),
        uint32(2 hours),
        uint32(4 hours),
        uint32(8 hours),
        uint32(16 hours),
        uint32(1 days)
    ];


    struct Rabbit { 
         // parents
        uint32 mother;
        uint32 sire; 
        // block in which a rabbit was born
        uint birthblock;
         // number of births or how many times were offspring
        uint birthCount;
         // The time when Rabbit last gave birth
        uint birthLastTime;
        // the current role of the rabbit
        uint role;
        //indexGenome   
        uint genome;

        uint procentAdmixture;
        uint admixture;
    }

 
    /**
    * Where we will store information about rabbits
    */
    Rabbit[]  public rabbits;
     
    /**
    * who owns the rabbit
    */
    mapping (uint32 => address) public rabbitToOwner; 
    mapping (address => uint32[]) public ownerBunnies;
    //mapping (address => uint) ownerRabbitCount;
    mapping (uint32 => string) rabbitDescription;
    mapping (uint32 => string) rabbitName; 

    //giff 
    mapping (uint32 => bool) giffblock; 
    mapping (address => bool) ownerGennezise;

}


/// @title Interface for contracts conforming to ERC-721: Non-Fungible Tokens
/// @author Dieter Shirley <[email protected]> (https://github.com/dete)
contract ERC721 {
    // Required methods 

    function ownerOf(uint32 _tokenId) public view returns (address owner);
    function approve(address _to, uint32 _tokenId) public returns (bool success);
    function transfer(address _to, uint32 _tokenId) public;
    function transferFrom(address _from, address _to, uint32 _tokenId) public returns (bool);
    function totalSupply() public view returns (uint total);
    function balanceOf(address _owner) public view returns (uint balance);

}

/// @title Interface new rabbits address
contract PrivateRabbitInterface {
    function getNewRabbit(address from)  public view returns (uint);
    function mixDNK(uint dnkmother, uint dnksire, uint genome)  public view returns (uint);
    function isUIntPrivate() public pure returns (bool);
}

contract AdmixtureInterface {
    function getAdmixture(uint m, uint w)  public view returns (uint procentAdmixture, uint admixture);
}

 


contract BodyRabbit is BaseRabbit, ERC721 {
    uint public totalBunny = 0;
    string public constant name = "CryptoRabbits";
    string public constant symbol = "CRB";


    PrivateRabbitInterface privateContract;
    AdmixtureInterface AdmixtureContract;

    /**
    * @dev setting up a new address for a private contract
    */
    function setPriv(address _privAddress) public returns(bool) {
        privAddress = _privAddress;
        privateContract = PrivateRabbitInterface(_privAddress);
    } 
    function setAdmixture(address _addressAdmixture) public returns(bool) {
        addressAdmixture = _addressAdmixture;
        AdmixtureContract = AdmixtureInterface(_addressAdmixture);
    } 

    bool public fcontr = false;
 
    
    constructor() public { 
        fcontr = true;
    }

    function isPriv() public view returns(bool) {
        return privateContract.isUIntPrivate();
    }

    modifier checkPrivate() {
        require(isPriv());
        _;
    }

    function ownerOf(uint32 _tokenId) public view returns (address owner) {
        return rabbitToOwner[_tokenId];
    }

    function approve(address _to, uint32 _tokenId) public returns (bool) { 
        _to;
        _tokenId;
        return false;
    }


    function removeTokenList(address _owner, uint32 _tokenId) internal { 
        uint count = ownerBunnies[_owner].length;
        for (uint256 i = 0; i < count; i++) {
            if(ownerBunnies[_owner][i] == _tokenId)
            { 
                delete ownerBunnies[_owner][i];
                if(count > 0 && count != (i-1)){
                    ownerBunnies[_owner][i] = ownerBunnies[_owner][(count-1)];
                    delete ownerBunnies[_owner][(count-1)];
                } 
                ownerBunnies[_owner].length--;
                return;
            } 
        }
    }
    /**
    * Get the cost of the reward for pairing
    * @param _tokenId - rabbit that mates
     */
    function getSirePrice(uint32 _tokenId) public view returns(uint) {
        if(rabbits[(_tokenId-1)].role == 1){
            uint procent = (rabbitSirePrice[_tokenId] / 100);
            uint res = procent.mul(25);
            uint system  = procent.mul(commission_system);

            res = res.add(rabbitSirePrice[_tokenId]);
            return res.add(system); 
        } else {
            return 0;
        }
    }

    /**
    * @dev add a new bunny in the storage
     */
    function addTokenList(address owner,  uint32 _tokenId) internal {
        ownerBunnies[owner].push( _tokenId);
        emit OwnerBunnies(owner, _tokenId);
        rabbitToOwner[_tokenId] = owner; 
    }
 

    function transfer(address _to, uint32 _tokenId) public {
        address currentOwner = msg.sender;
        address oldOwner = rabbitToOwner[_tokenId];
        require(rabbitToOwner[_tokenId] == msg.sender);
        require(currentOwner != _to);
        require(_to != address(0));
        removeTokenList(oldOwner, _tokenId);
        addTokenList(_to, _tokenId);
        emit Transfer(oldOwner, _to, _tokenId);
    }

    function transferFrom(address _from, address _to, uint32 _tokenId) public returns(bool) {
        address oldOwner = rabbitToOwner[_tokenId];
        require(oldOwner == _from);
        require(getInWhitelist(msg.sender));
        require(oldOwner != _to);
        require(_to != address(0));

        removeTokenList(oldOwner, _tokenId);
        addTokenList(_to, _tokenId); 
        emit Transfer (oldOwner, _to, _tokenId);
        return true;
    }  
     

    function isPauseSave() public view returns(bool) {
        return !pauseSave;
    }
    
    function isPromoPause() public view returns(bool) {
        if (getInWhitelist(msg.sender)) {
            return true;
        } else {
            return !promoPause;
        } 
    }

    function setPauseSave() public onlyWhitelisted()  returns(bool) {
        return pauseSave = !pauseSave;
    }
 

    function getTokenOwner(address owner) public view returns(uint total, uint32[] list) {
        total = ownerBunnies[owner].length;
        list = ownerBunnies[owner];
    } 



    function setRabbitMother(uint32 children, uint32 mother) internal { 
        require(children != mother);
        uint32[11] memory pullMother;
        uint start = 0;
        for (uint i = 0; i < 5; i++) {
            if (rabbitMother[mother][i] != 0) {
              pullMother[start] = uint32(rabbitMother[mother][i]);
              rabbitMother[mother][i] = 0;
              start++;
            } 
        }
        pullMother[start] = mother;
        start++;
        for (uint m = 0; m < 5; m++) {
             if(start >  5){
                    rabbitMother[children][m] = pullMother[(m+1)];
             }else{
                    rabbitMother[children][m] = pullMother[m];
             }
        } 
        setMotherCount(mother);
    }

      

    function setMotherCount(uint32 _mother) internal returns(uint)  { //internal
        motherCount[_mother] = motherCount[_mother].add(1);
        emit EmotherCount(_mother, motherCount[_mother]);
        return motherCount[_mother];
    } 
     
    function bytes32ToString(bytes32 x) internal pure returns (string) {
        bytes memory bytesString = new bytes(32);
        uint charCount = 0;
        for (uint j = 0; j < 32; j++) {
            byte char = byte(bytes32(uint(x) * 2 ** (8 * j)));
            if (char != 0) {
                bytesString[charCount] = char;
                charCount++;
            }
        }
        bytes memory bytesStringTrimmed = new bytes(charCount);
        for (j = 0; j < charCount; j++) {
            bytesStringTrimmed[j] = bytesString[j];
        }
        return string(bytesStringTrimmed);
    }
    
    function uintToBytes(uint v) internal pure returns (bytes32 ret) {
        if (v == 0) {
            ret = '0';
        } else {
        while (v > 0) {
                ret = bytes32(uint(ret) / (2 ** 8));
                ret |= bytes32(((v % 10) + 48) * 2 ** (8 * 31));
                v /= 10;
            }
        }
        return ret;
    }

    function totalSupply() public view returns (uint total) {
        return totalBunny;
    }

    function balanceOf(address _owner) public view returns (uint) {
      //  _owner;
        return ownerBunnies[_owner].length;
    }

    function sendMoney(address _to, uint256 _money) internal { 
        _to.transfer((_money/100)*95);
        ownerMoney.transfer((_money/100)*5); 
    }

    function getGiffBlock(uint32 _bunnyid) public view returns(bool) { 
        return !giffblock[_bunnyid];
    }

    function getOwnerGennezise(address _to) public view returns(bool) { 
        return ownerGennezise[_to];
    }
    

    function getBunny(uint32 _bunny) public view returns(
        uint32 mother,
        uint32 sire,
        uint birthblock,
        uint birthCount,
        uint birthLastTime,
        uint role, 
        uint genome,
        bool interbreed,
        uint leftTime,
        uint lastTime,
        uint price,
        uint motherSumm
        )
        {
            price = getSirePrice(_bunny);
            _bunny = _bunny - 1;
            mother = rabbits[_bunny].mother;
            sire = rabbits[_bunny].sire;
            birthblock = rabbits[_bunny].birthblock;
            birthCount = rabbits[_bunny].birthCount;
            birthLastTime = rabbits[_bunny].birthLastTime;
            role = rabbits[_bunny].role;
            genome = rabbits[_bunny].genome;
                     
            if(birthCount > 11) {
                birthCount = 11;
            }

            motherSumm = motherCount[_bunny];

            lastTime = uint(cooldowns[birthCount]);
            lastTime = lastTime.add(birthLastTime);
            if(lastTime <= now) {
                interbreed = true;
            } else {
                leftTime = lastTime.sub(now);
            }
    }



    /**
    * We update the information on rabbits
     */
    function updateBunny(uint32 _bunny, uint types, uint data ) public onlyWhitelisted()
    { 
        if (types == 1) {
            rabbits[(_bunny - 1)].birthCount = data;
        } else if (types == 2) {
            rabbits[(_bunny - 1)].genome = data;
        } else if (types == 3) {
            rabbitSirePrice[_bunny] = data;
        } else if (types == 4) {
            motherCount[_bunny] = data;
            emit EmotherCount(_bunny, data);
        } 

            
    }

    /**
    * @param _bunny A rabbit on which we receive information
     */
    function getBreed(uint32 _bunny) public view returns(bool interbreed)
        {
      
        uint birtTime = rabbits[(_bunny - 1)].birthLastTime;
        uint birthCount = rabbits[(_bunny - 1)].birthCount;

        uint  lastTime = uint(cooldowns[birthCount]);
        lastTime = lastTime.add(birtTime);

        if(lastTime <= now && rabbits[(_bunny - 1)].role == 0 ) {
            interbreed = true;
        } 
    }

    /**
     *  we get cooldown
     */
    function getcoolduwn(uint32 _mother) public view returns(uint lastTime, uint cd, uint lefttime) {
        cd = rabbits[(_mother-1)].birthCount;
        if(cd > 11) {
            cd = 11;
        }
        // time when I can give birth
        lastTime = (cooldowns[cd] + rabbits[(_mother-1)].birthLastTime);
        if(lastTime > now) {
            // I can not give birth, it remains until delivery
            lefttime = lastTime.sub(now);
        }
    }



     function getMotherCount(uint32 _mother) public view returns(uint) { //internal
        return  motherCount[_mother];
    }


     function getTotalSalaryBunny(uint32 _bunny) public view returns(uint) { //internal
        return  totalSalaryBunny[_bunny];
    }
 
 
    function getRabbitMother( uint32 mother) public view returns(uint32[5]) {
        return rabbitMother[mother];
    }

     function getRabbitMotherSumm(uint32 mother) public view returns(uint count) { //internal
        for (uint m = 0; m < 5 ; m++) {
            if(rabbitMother[mother][m] != 0 ) { 
                count++;
            }
        }
    }

    function getRabbitDNK(uint32 bunnyid) public view returns(uint) { 
        return mapDNK[bunnyid];
    }

    function isUIntPublic() public view returns(bool) {
        require(isPauseSave());
        return true;
    }

}
/**
* Basic actions for the transfer of rights of rabbits
*/ 
 
contract BunnyGame is BodyRabbit{    
  
    function transferNewBunny(address _to, uint32 _bunnyid, uint localdnk, uint breed, uint32 matron, uint32 sire, uint procentAdmixture, uint admixture) internal {
        emit NewBunny(_bunnyid, localdnk, block.number, breed, procentAdmixture, admixture);
        emit CreateChildren(matron, sire, _bunnyid);
        addTokenList(_to, _bunnyid);
        totalSalaryBunny[_bunnyid] = 0;
        motherCount[_bunnyid] = 0;
        totalBunny++;
    }

         
    /***
    * @dev create a new gene and put it up for sale, this operation takes place on the server
    */
    function createGennezise(uint32 _matron) public {
         
        bool promo = false;
        require(isPriv());
        require(isPauseSave());
        require(isPromoPause());
 
        if (totalGen0 > promoGen0) { 
            require(getInWhitelist(msg.sender));
        } else if (!(getInWhitelist(msg.sender))) {
            // promo action
                require(!ownerGennezise[msg.sender]);
                ownerGennezise[msg.sender] = true;
                promo = true;
        }
        
        uint  localdnk = privateContract.getNewRabbit(msg.sender);
        Rabbit memory _Rabbit =  Rabbit( 0, 0, block.number, 0, 0, 0, 0, 0, 0);
        uint32 _bunnyid =  uint32(rabbits.push(_Rabbit));
        mapDNK[_bunnyid] = localdnk;
       
        transferNewBunny(msg.sender, _bunnyid, localdnk, 0, 0, 0, 4, 0);  
        
        lastTimeGen0 = now;
        lastIdGen0 = _bunnyid; 
        totalGen0++; 

        setRabbitMother(_bunnyid, _matron);

        emit Referral(msg.sender, _matron, _bunnyid, block.timestamp);

        if (promo) {
            giffblock[_bunnyid] = true;
        }
    }

    function getGenomeChildren(uint32 _matron, uint32 _sire) internal view returns(uint) {
        uint genome;
        if (rabbits[(_matron-1)].genome >= rabbits[(_sire-1)].genome) {
            genome = rabbits[(_matron-1)].genome;
        } else {
            genome = rabbits[(_sire-1)].genome;
        }
        return genome.add(1);
    }
    
    /**
    * create a new rabbit, according to the cooldown
    * @param _matron - mother who takes into account the cooldown
    * @param _sire - the father who is rewarded for mating for the fusion of genes
     */
    function createChildren(uint32 _matron, uint32 _sire) public  payable returns(uint32) {

        require(isPriv());
        require(isPauseSave());
        require(rabbitToOwner[_matron] == msg.sender);
        // Checking for the role
        require(rabbits[(_sire-1)].role == 1);
        require(_matron != _sire);

        require(getBreed(_matron));
        // Checking the money 
        
        require(msg.value >= getSirePrice(_sire));
        
        uint genome = getGenomeChildren(_matron, _sire);

        uint localdnk =  privateContract.mixDNK(mapDNK[_matron], mapDNK[_sire], genome);


        uint procentAdm; 
        uint admixture;
        (procentAdm, admixture) = AdmixtureContract.getAdmixture(rabbits[(_sire-1)].procentAdmixture, rabbits[(_matron-1)].procentAdmixture);
        Rabbit memory rabbit =  Rabbit(_matron, _sire, block.number, 0, 0, 0, genome, procentAdm, admixture);

        uint32 bunnyid =  uint32(rabbits.push(rabbit));
        mapDNK[bunnyid] = localdnk;

        uint _moneyMother = rabbitSirePrice[_sire].div(4);

        _transferMoneyMother(_matron, _moneyMother);

        rabbitToOwner[_sire].transfer(rabbitSirePrice[_sire]);

        uint system = rabbitSirePrice[_sire].div(100);
        system = system.mul(commission_system);
        ownerMoney.transfer(system); // refund previous bidder
  
        coolduwnUP(_matron);
        // we transfer the rabbit to the new owner
        transferNewBunny(rabbitToOwner[_matron], bunnyid, localdnk, genome, _matron, _sire, procentAdm, admixture );   
        // we establish parents for the child
        setRabbitMother(bunnyid, _matron);
        return bunnyid;
    } 
  
    /**
     *  Set the cooldown for childbirth
     * @param _mother - mother for which cooldown
     */
    function coolduwnUP(uint32 _mother) internal { 
        require(isPauseSave());
        rabbits[(_mother-1)].birthCount = rabbits[(_mother-1)].birthCount.add(1);
        rabbits[(_mother-1)].birthLastTime = now;
        emit CoolduwnMother(_mother, rabbits[(_mother-1)].birthCount);
    }


    /**
     * @param _mother - matron send money for parrent
     * @param _valueMoney - current sale
     */
    function _transferMoneyMother(uint32 _mother, uint _valueMoney) internal {
        require(isPauseSave());
        require(_valueMoney > 0);
        if (getRabbitMotherSumm(_mother) > 0) {
            uint pastMoney = _valueMoney/getRabbitMotherSumm(_mother);
            for (uint i=0; i < getRabbitMotherSumm(_mother); i++) {
                if (rabbitMother[_mother][i] != 0) { 
                    uint32 _parrentMother = rabbitMother[_mother][i];
                    address add = rabbitToOwner[_parrentMother];
                    // pay salaries
                    setMotherCount(_parrentMother);
                    totalSalaryBunny[_parrentMother] += pastMoney;
                    emit SalaryBunny(_parrentMother, totalSalaryBunny[_parrentMother]);
                    add.transfer(pastMoney); // refund previous bidder
                }
            } 
        }
    }
    
    /**
    * @dev We set the cost of renting our genes
    * @param price rent price
     */
    function setRabbitSirePrice(uint32 _rabbitid, uint price) public returns(bool) {
        require(isPauseSave());
        require(rabbitToOwner[_rabbitid] == msg.sender);
        require(price > bigPrice);

        uint lastTime;
        (lastTime,,) = getcoolduwn(_rabbitid);
        require(now >= lastTime);

        if (rabbits[(_rabbitid-1)].role == 1 && rabbitSirePrice[_rabbitid] == price) {
            return false;
        }

        rabbits[(_rabbitid-1)].role = 1;
        rabbitSirePrice[_rabbitid] = price;
        uint gen = rabbits[(_rabbitid-1)].genome;
        sireGenom[gen].push(_rabbitid);
        emit ChengeSex(_rabbitid, true, getSirePrice(_rabbitid));
        return true;
    }
 
    /**
    * @dev We set the cost of renting our genes
     */
    function setSireStop(uint32 _rabbitid) public returns(bool) {
        require(isPauseSave());
        require(rabbitToOwner[_rabbitid] == msg.sender);
     //   require(rabbits[(_rabbitid-1)].role == 0);
        rabbits[(_rabbitid-1)].role = 0;
        rabbitSirePrice[_rabbitid] = 0;
        deleteSire(_rabbitid);
        return true;
    }
    
      function deleteSire(uint32 _tokenId) internal { 
        uint gen = rabbits[(_tokenId-1)].genome;

        uint count = sireGenom[gen].length;
        for (uint i = 0; i < count; i++) {
            if(sireGenom[gen][i] == _tokenId)
            { 
                delete sireGenom[gen][i];
                if(count > 0 && count != (i-1)){
                    sireGenom[gen][i] = sireGenom[gen][(count-1)];
                    delete sireGenom[gen][(count-1)];
                } 
                sireGenom[gen].length--;
                emit ChengeSex(_tokenId, false, 0);
                return;
            } 
        }
    } 

    function getMoney(uint _value) public onlyOwner {
        require(address(this).balance >= _value);
        ownerMoney.transfer(_value);
    }

    /**
    * @dev give a rabbit to a specific user
    * @param add new address owner rabbits
    */
    function gift(uint32 bunnyid, address add) public {
        require(rabbitToOwner[bunnyid] == msg.sender);
        // a rabbit taken for free can not be given
        require(!(giffblock[bunnyid]));
        transferFrom(msg.sender, add, bunnyid);
    }
}

Contract ABI
[{"constant":true,"inputs":[],"name":"getPrivAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_mother","type":"uint32"}],"name":"getcoolduwn","outputs":[{"name":"lastTime","type":"uint256"},{"name":"cd","type":"uint256"},{"name":"lefttime","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint32"}],"name":"rabbitSirePrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"promoPause","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAddressAdmixture","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint32"},{"name":"","type":"uint256"}],"name":"rabbitMother","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint32"}],"name":"motherCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addressAdmixture","type":"address"}],"name":"setAdmixture","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_promoGen0","type":"uint256"}],"name":"setPromoGen0","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint32"}],"name":"rabbitToOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"total","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_bunnyid","type":"uint32"}],"name":"getGiffBlock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_mother","type":"uint32"}],"name":"getMotherCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint32"}],"name":"ownerOf","outputs":[{"name":"owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addrs","type":"address[]"}],"name":"removeAddressesFromWhitelist","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"name":"sireGenom","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"mother","type":"uint32"}],"name":"getRabbitMotherSumm","outputs":[{"name":"count","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeAddressFromWhitelist","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_bunny","type":"uint32"}],"name":"getTotalSalaryBunny","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"getMoney","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"setPauseSave","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getInWhitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"countAddress","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_bunny","type":"uint32"}],"name":"getBreed","outputs":[{"name":"interbreed","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_rabbitid","type":"uint32"},{"name":"price","type":"uint256"}],"name":"setRabbitSirePrice","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint32"}],"name":"getSirePrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_privAddress","type":"address"}],"name":"setPriv","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"bunnyid","type":"uint32"}],"name":"getRabbitDNK","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"rabbits","outputs":[{"name":"mother","type":"uint32"},{"name":"sire","type":"uint32"},{"name":"birthblock","type":"uint256"},{"name":"birthCount","type":"uint256"},{"name":"birthLastTime","type":"uint256"},{"name":"role","type":"uint256"},{"name":"genome","type":"uint256"},{"name":"procentAdmixture","type":"uint256"},{"name":"admixture","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isPromoPause","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getOwnerMoney","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint32"}],"name":"totalSalaryBunny","outputs":[{"name":"","type":"uint256"}],"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":"_bunny","type":"uint32"}],"name":"getBunny","outputs":[{"name":"mother","type":"uint32"},{"name":"sire","type":"uint32"},{"name":"birthblock","type":"uint256"},{"name":"birthCount","type":"uint256"},{"name":"birthLastTime","type":"uint256"},{"name":"role","type":"uint256"},{"name":"genome","type":"uint256"},{"name":"interbreed","type":"bool"},{"name":"leftTime","type":"uint256"},{"name":"lastTime","type":"uint256"},{"name":"price","type":"uint256"},{"name":"motherSumm","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"promoGen0","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isUIntPublic","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalGen0","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastIdGen0","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"fcontr","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint32"}],"name":"rabbitBreedCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isPauseSave","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addAddressToWhitelist","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isPriv","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_to","type":"address"}],"name":"getOwnerGennezise","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_bunny","type":"uint32"},{"name":"types","type":"uint256"},{"name":"data","type":"uint256"}],"name":"updateBunny","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint32"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"lastTimeGen0","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint32"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalBunny","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"key","type":"uint256"}],"name":"getWhitelistCheck","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"bunnyid","type":"uint32"},{"name":"add","type":"address"}],"name":"gift","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"cooldowns","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_matron","type":"uint32"},{"name":"_sire","type":"uint32"}],"name":"createChildren","outputs":[{"name":"","type":"uint32"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_rabbitid","type":"uint32"}],"name":"setSireStop","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint32"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"promoMoney","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"ownerBunnies","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getOwnerCEO","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"getTokenOwner","outputs":[{"name":"total","type":"uint256"},{"name":"list","type":"uint32[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"mother","type":"uint32"}],"name":"getRabbitMother","outputs":[{"name":"","type":"uint32[5]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addrs","type":"address[]"}],"name":"addAddressesToWhitelist","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_promoMoney","type":"uint256"}],"name":"setPromoMoney","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"add","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"commission_system","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"setPromoPause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_matron","type":"uint32"}],"name":"createGennezise","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_ownerMoney","type":"address"}],"name":"transferOwnerMoney","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"mother","type":"uint32"},{"indexed":false,"name":"summ","type":"uint256"}],"name":"EmotherCount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"bunnyId","type":"uint32"},{"indexed":false,"name":"dnk","type":"uint256"},{"indexed":false,"name":"blocknumber","type":"uint256"},{"indexed":false,"name":"breed","type":"uint256"},{"indexed":false,"name":"procentAdmixture","type":"uint256"},{"indexed":false,"name":"admixture","type":"uint256"}],"name":"NewBunny","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"bunnyId","type":"uint32"},{"indexed":false,"name":"sex","type":"bool"},{"indexed":false,"name":"price","type":"uint256"}],"name":"ChengeSex","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"bunnyId","type":"uint32"},{"indexed":false,"name":"cost","type":"uint256"}],"name":"SalaryBunny","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"matron","type":"uint32"},{"indexed":false,"name":"sire","type":"uint32"},{"indexed":false,"name":"child","type":"uint32"}],"name":"CreateChildren","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"bunnyId","type":"uint32"},{"indexed":false,"name":"name","type":"string"}],"name":"BunnyDescription","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"bunnyId","type":"uint32"},{"indexed":false,"name":"num","type":"uint256"}],"name":"CoolduwnMother","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"from","type":"address"},{"indexed":false,"name":"matronID","type":"uint32"},{"indexed":false,"name":"childID","type":"uint32"},{"indexed":false,"name":"currentTime","type":"uint256"}],"name":"Referral","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"owner","type":"address"},{"indexed":false,"name":"approved","type":"address"},{"indexed":false,"name":"tokenId","type":"uint32"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"owner","type":"address"},{"indexed":false,"name":"tokenId","type":"uint32"}],"name":"OwnerBunnies","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"from","type":"address"},{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"tokenId","type":"uint32"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"addr","type":"address"}],"name":"WhitelistedAddressAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"addr","type":"address"}],"name":"WhitelistedAddressRemoved","type":"event"}]

Contract Creation Code
608060405260006006556000600760006101000a81548160ff0219169083151502179055506611c37937e0800060085560056009556000600b55613a98600d55600854600102600e556000600f60006101000a81548160ff02191690831515021790555061018060405190810160405280603c63ffffffff1663ffffffff168152602001607863ffffffff1663ffffffff16815260200160f063ffffffff1663ffffffff1681526020016101e063ffffffff1663ffffffff1681526020016103c063ffffffff1663ffffffff16815260200161078063ffffffff1663ffffffff168152602001610e1063ffffffff1663ffffffff168152602001611c2063ffffffff1663ffffffff16815260200161384063ffffffff1663ffffffff16815260200161708063ffffffff1663ffffffff16815260200161e10063ffffffff1663ffffffff1681526020016201518063ffffffff1663ffffffff16815250601790600c6200016e92919062000289565b5060006020556000602260146101000a81548160ff021916908315150217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001602260146101000a81548160ff02191690831515021790555062000369565b82600c600701600890048101928215620003205791602002820160005b83821115620002ec57835183826101000a81548163ffffffff021916908363ffffffff1602179055509260200192600401602081600301049283019260010302620002a6565b80156200031e5782816101000a81549063ffffffff0219169055600401602081600301049283019260010302620002ec565b505b5090506200032f919062000333565b5090565b6200036691905b808211156200036257600081816101000a81549063ffffffff0219169055506001016200033a565b5090565b90565b6159cf80620003796000396000f300608060405260043610610338576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806303602e9e1461033d578063068734181461039457806306fdde03146103e95780630847c7a21461047957806309828a47146104c05780630e9aa208146104ef57806312448c3214610546578063146c1b5e146105a357806314a06ff6146105ea57806314c588de1461064557806314f1cf0c1461067257806318160ddd146106e5578063193d5b77146107105780631ee550801461075b57806323b7ec3b146107a257806324953eaa146108155780632573751f1461089357806327904ee0146108ea578063286dd3f5146109315780632a335c171461098c5780633262fd9a146109d35780633350611514610a00578063336968f114610a2f57806342154e9c14610a8a578063433bd92414610ab5578063462a8e0514610b005780634b72bbaf14610b555780634e2fd44e14610b9c5780634fd839c614610bf757806359dc2eec14610c3e5780635ceb8bc814610ccf578063625101d514610cfe5780636b53305714610d5557806370a0823114610d9c57806370a7e2dd14610df357806370d4d7b414610ea35780637214d6c314610ece5780637230ef7f14610efd578063731f49b714610f2857806374479db014610f5f5780637759187f14610f8e5780637878b66a14610fd55780637b9417c8146110045780637cbd54441461105f5780637ea2bbac1461108e5780637edb6923146110e957806380097484146111305780638231ee981461118357806384269ed9146111ae578063847ec2de1461123957806386c6c0111461126457806390eb1f9f146112d157806395d89b41146113245780639b19251a146113b45780639d6fac6f1461140f578063a13a7cee1461145c578063a22ec476146114b2578063a7e94542146114fd578063ad5a157d14611568578063d00dbcb014611593578063d3f73bd414611600578063dc17c9ca14611657578063df4b2970146116f6578063e2ec6ec314611765578063eea23d8a146117e3578063f2fde38b14611810578063f628842214611853578063fae8c29e1461187e578063fd5c669414611895578063fdaacf1b146118c8575b600080fd5b34801561034957600080fd5b5061035261190b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103a057600080fd5b506103c5600480360381019080803563ffffffff169060200190929190505050611990565b60405180848152602001838152602001828152602001935050505060405180910390f35b3480156103f557600080fd5b506103fe611a52565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561043e578082015181840152602081019050610423565b50505050905090810190601f16801561046b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561048557600080fd5b506104aa600480360381019080803563ffffffff169060200190929190505050611a8b565b6040518082815260200191505060405180910390f35b3480156104cc57600080fd5b506104d5611aa3565b604051808215151515815260200191505060405180910390f35b3480156104fb57600080fd5b50610504611ab6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561055257600080fd5b50610581600480360381019080803563ffffffff16906020019092919080359060200190929190505050611b3b565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b3480156105af57600080fd5b506105d4600480360381019080803563ffffffff169060200190929190505050611b79565b6040518082815260200191505060405180910390f35b3480156105f657600080fd5b5061062b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b91565b604051808215151515815260200191505060405180910390f35b34801561065157600080fd5b5061067060048036038101908080359060200190929190505050611c1a565b005b34801561067e57600080fd5b506106a3600480360381019080803563ffffffff169060200190929190505050611c7c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106f157600080fd5b506106fa611caf565b6040518082815260200191505060405180910390f35b34801561071c57600080fd5b50610741600480360381019080803563ffffffff169060200190929190505050611cb9565b604051808215151515815260200191505060405180910390f35b34801561076757600080fd5b5061078c600480360381019080803563ffffffff169060200190929190505050611cf0565b6040518082815260200191505060405180910390f35b3480156107ae57600080fd5b506107d3600480360381019080803563ffffffff169060200190929190505050611d19565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561082157600080fd5b5061087960048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050611d62565b604051808215151515815260200191505060405180910390f35b34801561089f57600080fd5b506108c86004803603810190808035906020019092919080359060200190929190505050611e0b565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b3480156108f657600080fd5b5061091b600480360381019080803563ffffffff169060200190929190505050611e53565b6040518082815260200191505060405180910390f35b34801561093d57600080fd5b50610972600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ed7565b604051808215151515815260200191505060405180910390f35b34801561099857600080fd5b506109bd600480360381019080803563ffffffff16906020019092919050505061204b565b6040518082815260200191505060405180910390f35b3480156109df57600080fd5b506109fe60048036038101908080359060200190929190505050612074565b005b348015610a0c57600080fd5b50610a15612161565b604051808215151515815260200191505060405180910390f35b348015610a3b57600080fd5b50610a70600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506121e9565b604051808215151515815260200191505060405180910390f35b348015610a9657600080fd5b50610a9f61223f565b6040518082815260200191505060405180910390f35b348015610ac157600080fd5b50610ae6600480360381019080803563ffffffff169060200190929190505050612245565b604051808215151515815260200191505060405180910390f35b348015610b0c57600080fd5b50610b3b600480360381019080803563ffffffff16906020019092919080359060200190929190505050612336565b604051808215151515815260200191505060405180910390f35b348015610b6157600080fd5b50610b86600480360381019080803563ffffffff1690602001909291905050506125a9565b6040518082815260200191505060405180910390f35b348015610ba857600080fd5b50610bdd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612697565b604051808215151515815260200191505060405180910390f35b348015610c0357600080fd5b50610c28600480360381019080803563ffffffff169060200190929190505050612720565b6040518082815260200191505060405180910390f35b348015610c4a57600080fd5b50610c6960048036038101908080359060200190929190505050612749565b604051808a63ffffffff1663ffffffff1681526020018963ffffffff1663ffffffff168152602001888152602001878152602001868152602001858152602001848152602001838152602001828152602001995050505050505050505060405180910390f35b348015610cdb57600080fd5b50610ce46127c6565b604051808215151515815260200191505060405180910390f35b348015610d0a57600080fd5b50610d136127f6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d6157600080fd5b50610d86600480360381019080803563ffffffff16906020019092919050505061287b565b6040518082815260200191505060405180910390f35b348015610da857600080fd5b50610ddd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612893565b6040518082815260200191505060405180910390f35b348015610dff57600080fd5b50610e24600480360381019080803563ffffffff1690602001909291905050506128df565b604051808d63ffffffff1663ffffffff1681526020018c63ffffffff1663ffffffff1681526020018b81526020018a8152602001898152602001888152602001878152602001861515151581526020018581526020018481526020018381526020018281526020019c5050505050505050505050505060405180910390f35b348015610eaf57600080fd5b50610eb8612af0565b6040518082815260200191505060405180910390f35b348015610eda57600080fd5b50610ee3612af6565b604051808215151515815260200191505060405180910390f35b348015610f0957600080fd5b50610f12612b12565b6040518082815260200191505060405180910390f35b348015610f3457600080fd5b50610f3d612b18565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b348015610f6b57600080fd5b50610f74612b2e565b604051808215151515815260200191505060405180910390f35b348015610f9a57600080fd5b50610fbf600480360381019080803563ffffffff169060200190929190505050612b41565b6040518082815260200191505060405180910390f35b348015610fe157600080fd5b50610fea612b59565b604051808215151515815260200191505060405180910390f35b34801561101057600080fd5b50611045600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b71565b604051808215151515815260200191505060405180910390f35b34801561106b57600080fd5b50611074612d43565b604051808215151515815260200191505060405180910390f35b34801561109a57600080fd5b506110cf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612e0b565b604051808215151515815260200191505060405180910390f35b3480156110f557600080fd5b5061112e600480360381019080803563ffffffff1690602001909291908035906020019092919080359060200190929190505050612e61565b005b34801561113c57600080fd5b50611181600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803563ffffffff169060200190929190505050612fe4565b005b34801561118f57600080fd5b506111986131e1565b6040518082815260200191505060405180910390f35b3480156111ba57600080fd5b5061121f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803563ffffffff1690602001909291905050506131e7565b604051808215151515815260200191505060405180910390f35b34801561124557600080fd5b5061124e6133bc565b6040518082815260200191505060405180910390f35b34801561127057600080fd5b5061128f600480360381019080803590602001909291905050506133c2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156112dd57600080fd5b50611322600480360381019080803563ffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613457565b005b34801561133057600080fd5b50611339613519565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561137957808201518184015260208101905061135e565b50505050905090810190601f1680156113a65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156113c057600080fd5b506113f5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613552565b604051808215151515815260200191505060405180910390f35b34801561141b57600080fd5b5061143a60048036038101908080359060200190929190505050613572565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b611490600480360381019080803563ffffffff169060200190929190803563ffffffff1690602001909291905050506135a1565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b3480156114be57600080fd5b506114e3600480360381019080803563ffffffff169060200190929190505050613c7b565b604051808215151515815260200191505060405180910390f35b34801561150957600080fd5b5061154e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803563ffffffff169060200190929190505050613d6f565b604051808215151515815260200191505060405180910390f35b34801561157457600080fd5b5061157d613d7a565b6040518082815260200191505060405180910390f35b34801561159f57600080fd5b506115de600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613d80565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b34801561160c57600080fd5b50611615613dc8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561166357600080fd5b50611698600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613e49565b6040518083815260200180602001828103825283818151815260200191508051906020019060200280838360005b838110156116e15780820151818401526020810190506116c6565b50505050905001935050505060405180910390f35b34801561170257600080fd5b50611727600480360381019080803563ffffffff169060200190929190505050613f53565b6040518082600560200280838360005b83811015611752578082015181840152602081019050611737565b5050505090500191505060405180910390f35b34801561177157600080fd5b506117c960048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050613fe9565b604051808215151515815260200191505060405180910390f35b3480156117ef57600080fd5b5061180e60048036038101908080359060200190929190505050614092565b005b34801561181c57600080fd5b50611851600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506140f4565b005b34801561185f57600080fd5b506118686141c9565b6040518082815260200191505060405180910390f35b34801561188a57600080fd5b506118936141cf565b005b3480156118a157600080fd5b506118c6600480360381019080803563ffffffff169060200190929190505050614253565b005b3480156118d457600080fd5b50611909600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506146f4565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561196857600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600060196001850363ffffffff168154811015156119ad57fe5b9060005260206000209060080201600201549150600b8211156119cf57600b91505b60196001850363ffffffff168154811015156119e757fe5b906000526020600020906008020160030154601783600c81101515611a0857fe5b600891828204019190066004029054906101000a900463ffffffff1663ffffffff1601925042831115611a4b57611a4842846147ca90919063ffffffff16565b90505b9193909250565b6040805190810160405280600d81526020017f43727970746f526162626974730000000000000000000000000000000000000081525081565b60146020528060005260406000206000915090505481565b600f60009054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b1357600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601160205281600052604060002081600581101515611b5657fe5b60089182820401919006600402915091509054906101000a900463ffffffff1681565b60126020528060005260406000206000915090505481565b600081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081602260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550919050565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611c7257600080fd5b80600d8190555050565b601a6020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000602054905090565b6000601e60008363ffffffff1663ffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b6000601260008363ffffffff1663ffffffff168152602001908152602001600020549050919050565b6000601a60008363ffffffff1663ffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611dc057600080fd5b600090505b8251811015611e0557611dee8382815181101515611ddf57fe5b90602001906020020151611ed7565b15611df857600191505b8080600101915050611dc5565b50919050565b601560205281600052604060002081815481101515611e2657fe5b9060005260206000209060089182820401919006600402915091509054906101000a900463ffffffff1681565b600080600090505b6005811015611ed1576000601160008563ffffffff1663ffffffff16815260200190815260200160002082600581101515611e9257fe5b600891828204019190066004029054906101000a900463ffffffff1663ffffffff16141515611ec45781806001019250505b8080600101915050611e5b565b50919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f3457600080fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612046576000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507ff1abf01a1043b7c244d128e8595cf0c1d10743b022b03a02dffd8ca3bf729f5a82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1600190505b919050565b6000601060008363ffffffff1663ffffffff168152602001908152602001600020549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120cf57600080fd5b803073ffffffffffffffffffffffffffffffffffffffff1631101515156120f557600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561215d573d6000803e3d6000fd5b5050565b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156121bb57600080fd5b600760009054906101000a900460ff1615600760006101000a81548160ff0219169083151502179055905090565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60065481565b60008060008060196001860363ffffffff1681548110151561226357fe5b906000526020600020906008020160030154925060196001860363ffffffff1681548110151561228f57fe5b9060005260206000209060080201600201549150601782600c811015156122b257fe5b600891828204019190066004029054906101000a900463ffffffff1663ffffffff1690506122e983826147e390919063ffffffff16565b90504281111580156123245750600060196001870363ffffffff1681548110151561231057fe5b906000526020600020906008020160040154145b1561232e57600193505b505050919050565b6000806000612343612b59565b151561234e57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16601a60008763ffffffff1663ffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156123c757600080fd5b600854841115156123d757600080fd5b6123e085611990565b905050809250508142101515156123f657600080fd5b600160196001870363ffffffff1681548110151561241057fe5b90600052602060002090600802016004015414801561244d575083601460008763ffffffff1663ffffffff16815260200190815260200160002054145b1561245b57600092506125a1565b600160196001870363ffffffff1681548110151561247557fe5b90600052602060002090600802016004018190555083601460008763ffffffff1663ffffffff1681526020019081526020016000208190555060196001860363ffffffff168154811015156124c657fe5b90600052602060002090600802016005015490506015600082815260200190815260200160002085908060018154018082558091505090600182039060005260206000209060089182820401919006600402909192909190916101000a81548163ffffffff021916908363ffffffff160217905550507f23c73fbe30b308411abb0e34d730de433c289c95d4f22ac36485d2d81299faf4856001612569886125a9565b604051808463ffffffff1663ffffffff16815260200183151515158152602001828152602001935050505060405180910390a1600192505b505092915050565b600080600080600160196001870363ffffffff168154811015156125c957fe5b906000526020600020906008020160040154141561268a576064601460008763ffffffff1663ffffffff1681526020019081526020016000205481151561260c57fe5b04925061262360198461480190919063ffffffff16565b915061263a6009548461480190919063ffffffff16565b905061266e601460008763ffffffff1663ffffffff16815260200190815260200160002054836147e390919063ffffffff16565b915061268381836147e390919063ffffffff16565b935061268f565b600093505b505050919050565b600081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550919050565b6000601660008363ffffffff1663ffffffff168152602001908152602001600020549050919050565b60198181548110151561275857fe5b90600052602060002090600802016000915090508060000160009054906101000a900463ffffffff16908060000160049054906101000a900463ffffffff16908060010154908060020154908060030154908060040154908060050154908060060154908060070154905089565b60006127d1336121e9565b156127df57600190506127f3565b600f60009054906101000a900460ff161590505b90565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561285357600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60106020528060005260406000206000915090505481565b6000601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b6000806000806000806000806000806000806128fa8d6125a9565b915060018d039c5060198d63ffffffff1681548110151561291757fe5b906000526020600020906008020160000160009054906101000a900463ffffffff169b5060198d63ffffffff1681548110151561295057fe5b906000526020600020906008020160000160049054906101000a900463ffffffff169a5060198d63ffffffff1681548110151561298957fe5b906000526020600020906008020160010154995060198d63ffffffff168154811015156129b257fe5b906000526020600020906008020160020154985060198d63ffffffff168154811015156129db57fe5b906000526020600020906008020160030154975060198d63ffffffff16815481101515612a0457fe5b906000526020600020906008020160040154965060198d63ffffffff16815481101515612a2d57fe5b9060005260206000209060080201600501549550600b891115612a4f57600b98505b601260008e63ffffffff1663ffffffff168152602001908152602001600020549050601789600c81101515612a8057fe5b600891828204019190066004029054906101000a900463ffffffff1663ffffffff169250612ab788846147e390919063ffffffff16565b92504283111515612acb5760019450612ae1565b612ade42846147ca90919063ffffffff16565b93505b91939597999b5091939597999b565b600d5481565b6000612b00612b59565b1515612b0b57600080fd5b6001905090565b600b5481565b600a60009054906101000a900463ffffffff1681565b602260149054906101000a900460ff1681565b60136020528060005260406000206000915090505481565b6000600760009054906101000a900460ff1615905090565b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515612bcb57600080fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515612d3e576001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600654016006819055508160056000600654815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd1bba68c128cc3f427e5831b3c6f99f480b6efa6b9e80c757768f6124158cc3f82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1600190505b919050565b6000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ccb0893d6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015612dcb57600080fd5b505af1158015612ddf573d6000803e3d6000fd5b505050506040513d6020811015612df557600080fd5b8101908080519060200190929190505050905090565b6000601f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515612eb957600080fd5b6001821415612ef5578060196001850363ffffffff16815481101515612edb57fe5b906000526020600020906008020160020181905550612fdf565b6002821415612f31578060196001850363ffffffff16815481101515612f1757fe5b906000526020600020906008020160050181905550612fde565b6003821415612f635780601460008563ffffffff1663ffffffff16815260200190815260200160002081905550612fdd565b6004821415612fdc5780601260008563ffffffff1663ffffffff168152602001908152602001600020819055507f6fae13a3fbf9a1fd5751233eb2e75ce60a5321dbc847bb3e1e2e257ef43caa488382604051808363ffffffff1663ffffffff1681526020018281526020019250505060405180910390a15b5b5b5b505050565b600080339150601a60008463ffffffff1663ffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690503373ffffffffffffffffffffffffffffffffffffffff16601a60008563ffffffff1663ffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156130a557600080fd5b8373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156130e057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561311c57600080fd5b613126818461483c565b6131308484614b7a565b7f0daf680c3f528a8760b5142fe1f6f80d5f4ea18bb76f347a7a44a2d565c2b7dc818585604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018263ffffffff1663ffffffff168152602001935050505060405180910390a150505050565b600c5481565b600080601a60008463ffffffff1663ffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561326657600080fd5b61326f336121e9565b151561327a57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156132b557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141515156132f157600080fd5b6132fb818461483c565b6133058484614b7a565b7f0daf680c3f528a8760b5142fe1f6f80d5f4ea18bb76f347a7a44a2d565c2b7dc818585604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018263ffffffff1663ffffffff168152602001935050505060405180910390a160019150509392505050565b60205481565b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561341c57600080fd5b6005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b3373ffffffffffffffffffffffffffffffffffffffff16601a60008463ffffffff1663ffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156134d057600080fd5b601e60008363ffffffff1663ffffffff16815260200190815260200160002060009054906101000a900460ff1615151561350957600080fd5b6135143382846131e7565b505050565b6040805190810160405280600381526020017f435242000000000000000000000000000000000000000000000000000000000081525081565b60046020528060005260406000206000915054906101000a900460ff1681565b601781600c8110151561358157fe5b60089182820401919006600402915054906101000a900463ffffffff1681565b60008060008060006135b16158a4565b60008060006135be612d43565b15156135c957600080fd5b6135d1612b59565b15156135dc57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16601a60008d63ffffffff1663ffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561365557600080fd5b6001601960018c0363ffffffff1681548110151561366f57fe5b90600052602060002090600802016004015414151561368d57600080fd5b8963ffffffff168b63ffffffff16141515156136a857600080fd5b6136b18b612245565b15156136bc57600080fd5b6136c58a6125a9565b34101515156136d357600080fd5b6136dd8b8b614ce1565b9750602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166327c5e534601660008e63ffffffff1663ffffffff16815260200190815260200160002054601660008e63ffffffff1663ffffffff168152602001908152602001600020548b6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808481526020018381526020018281526020019350505050602060405180830381600087803b1580156137be57600080fd5b505af11580156137d2573d6000803e3d6000fd5b505050506040513d60208110156137e857600080fd5b81019080805190602001909291905050509650602260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633dd5964f601960018d0363ffffffff1681548110151561385157fe5b906000526020600020906008020160060154601960018f0363ffffffff1681548110151561387b57fe5b9060005260206000209060080201600601546040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180838152602001828152602001925050506040805180830381600087803b1580156138e557600080fd5b505af11580156138f9573d6000803e3d6000fd5b505050506040513d604081101561390f57600080fd5b8101908080519060200190929190805190602001909291905050508096508197505050610120604051908101604052808c63ffffffff1681526020018b63ffffffff1681526020014381526020016000815260200160008152602001600081526020018981526020018781526020018681525093506019849080600181540180825580915050906001820390600052602060002090600802016000909192909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a81548163ffffffff021916908363ffffffff16021790555060408201518160010155606082015181600201556080820151816003015560a0820151816004015560c0820151816005015560e0820151816006015561010082015181600701555050925086601660008563ffffffff1663ffffffff16815260200190815260200160002081905550613aa26004601460008d63ffffffff1663ffffffff16815260200190815260200160002054614dba90919063ffffffff16565b9150613aae8b83614dd5565b601a60008b63ffffffff1663ffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc601460008d63ffffffff1663ffffffff168152602001908152602001600020549081150290604051600060405180830381858888f19350505050158015613b52573d6000803e3d6000fd5b50613b866064601460008d63ffffffff1663ffffffff16815260200190815260200160002054614dba90919063ffffffff16565b9050613b9d6009548261480190919063ffffffff16565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613c07573d6000803e3d6000fd5b50613c118b61501b565b613c60601a60008d63ffffffff1663ffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684898b8f8f8c8c61513d565b613c6a838c615283565b829850505050505050505092915050565b6000613c85612b59565b1515613c9057600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16601a60008463ffffffff1663ffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613d0957600080fd5b600060196001840363ffffffff16815481101515613d2357fe5b9060005260206000209060080201600401819055506000601460008463ffffffff1663ffffffff16815260200190815260200160002081905550613d668261552b565b60019050919050565b600080905092915050565b600e5481565b601b60205281600052604060002081815481101515613d9b57fe5b9060005260206000209060089182820401919006600402915091509054906101000a900463ffffffff1681565b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515613e2257600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006060601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509150601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020018280548015613f4757602002820191906000526020600020906000905b82829054906101000a900463ffffffff1663ffffffff1681526020019060040190602082600301049283019260010382029150808411613f0a5790505b50505050509050915091565b613f5b6158fd565b601160008363ffffffff1663ffffffff168152602001908152602001600020600580602002604051908101604052809291908260058015613fdd576020028201916000905b82829054906101000a900463ffffffff1663ffffffff1681526020019060040190602082600301049283019260010382029150808411613fa05790505b50505050509050919050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561404757600080fd5b600090505b825181101561408c57614075838281518110151561406657fe5b90602001906020020151612b71565b1561407f57600191505b808060010191505061404c565b50919050565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156140ea57600080fd5b80600e8190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561414f57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156141c657806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b60095481565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561422757600080fd5b600f60009054906101000a900460ff1615600f60006101000a81548160ff021916908315150217905550565b60008061425e6158a4565b600080935061426b612d43565b151561427657600080fd5b61427e612b59565b151561428957600080fd5b6142916127c6565b151561429c57600080fd5b600d54600b5411156142c1576142b1336121e9565b15156142bc57600080fd5b614387565b6142ca336121e9565b151561438657601f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561432957600080fd5b6001601f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600193505b5b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638f90f2bb336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561444457600080fd5b505af1158015614458573d6000803e3d6000fd5b505050506040513d602081101561446e57600080fd5b8101908080519060200190929190505050925061012060405190810160405280600063ffffffff168152602001600063ffffffff1681526020014381526020016000815260200160008152602001600081526020016000815260200160008152602001600081525091506019829080600181540180825580915050906001820390600052602060002090600802016000909192909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a81548163ffffffff021916908363ffffffff16021790555060408201518160010155606082015181600201556080820151816003015560a0820151816004015560c0820151816005015560e0820151816006015561010082015181600701555050905082601660008363ffffffff1663ffffffff168152602001908152602001600020819055506145d733828560008060006004600061513d565b42600c8190555080600a60006101000a81548163ffffffff021916908363ffffffff160217905550600b6000815480929190600101919050555061461b8186615283565b7f6e0c319a31fe9f53d1b28f06608bbc16136c7d76e852630c488a7abdd6c3d34033868342604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018463ffffffff1663ffffffff1681526020018363ffffffff1663ffffffff16815260200182815260200194505050505060405180910390a183156146ed576001601e60008363ffffffff1663ffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561474f57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156147c75780600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b60008282111515156147d857fe5b818303905092915050565b60008082840190508381101515156147f757fe5b8091505092915050565b60008060008414156148165760009150614835565b828402905082848281151561482757fe5b0414151561483157fe5b8091505b5092915050565b600080601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509150600090505b81811015614b73578263ffffffff16601b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811015156148e457fe5b90600052602060002090600891828204019190066004029054906101000a900463ffffffff1663ffffffff161415614b6657601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208181548110151561496257fe5b90600052602060002090600891828204019190066004026101000a81549063ffffffff021916905560008211801561499d5750600181038214155b15614b0e57601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600183038154811015156149f157fe5b90600052602060002090600891828204019190066004029054906101000a900463ffffffff16601b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515614a6357fe5b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908363ffffffff160217905550601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060018303815481101515614ae557fe5b90600052602060002090600891828204019190066004026101000a81549063ffffffff02191690555b601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480919060019003614b609190615920565b50614b74565b8080600101915050614889565b5b50505050565b601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081908060018154018082558091505090600182039060005260206000209060089182820401919006600402909192909190916101000a81548163ffffffff021916908363ffffffff160217905550507ffa8e2129ea92b2ced664f0497f946a9596ced2af4bd0950bfccd6c6e2078103a8282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018263ffffffff1663ffffffff1681526020019250505060405180910390a181601a60008363ffffffff1663ffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60008060196001840363ffffffff16815481101515614cfc57fe5b90600052602060002090600802016005015460196001860363ffffffff16815481101515614d2657fe5b906000526020600020906008020160050154101515614d705760196001850363ffffffff16815481101515614d5757fe5b9060005260206000209060080201600501549050614d9d565b60196001840363ffffffff16815481101515614d8857fe5b90600052602060002090600802016005015490505b614db16001826147e390919063ffffffff16565b91505092915050565b6000808284811515614dc857fe5b0490508091505092915050565b600080600080614de3612b59565b1515614dee57600080fd5b600085111515614dfd57600080fd5b6000614e0887611e53565b111561501357614e1786611e53565b85811515614e2157fe5b049350600092505b614e3286611e53565b831015615012576000601160008863ffffffff1663ffffffff16815260200190815260200160002084600581101515614e6757fe5b600891828204019190066004029054906101000a900463ffffffff1663ffffffff1614151561500557601160008763ffffffff1663ffffffff16815260200190815260200160002083600581101515614ebc57fe5b600891828204019190066004029054906101000a900463ffffffff169150601a60008363ffffffff1663ffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050614f25826157bb565b5083601060008463ffffffff1663ffffffff168152602001908152602001600020600082825401925050819055507f55ac5b34ed9f8bb24a85585c9449a48c9041c752861ed362c3c7fa3ae0028ec782601060008563ffffffff1663ffffffff16815260200190815260200160002054604051808363ffffffff1663ffffffff1681526020018281526020019250505060405180910390a18073ffffffffffffffffffffffffffffffffffffffff166108fc859081150290604051600060405180830381858888f19350505050158015615003573d6000803e3d6000fd5b505b8280600101935050614e29565b5b505050505050565b615023612b59565b151561502e57600080fd5b61506b600160196001840363ffffffff1681548110151561504b57fe5b9060005260206000209060080201600201546147e390919063ffffffff16565b60196001830363ffffffff1681548110151561508357fe5b9060005260206000209060080201600201819055504260196001830363ffffffff168154811015156150b157fe5b9060005260206000209060080201600301819055507f40a71d6481ae5c7839a4c9bb3fa0bb33a4b5816a610c6bc28a590c85e8db5ccc8160196001840363ffffffff1681548110151561510057fe5b906000526020600020906008020160020154604051808363ffffffff1663ffffffff1681526020018281526020019250505060405180910390a150565b7f9c4a4694f3a64b101eb0227609f5af1310a30e4c652a8525972646d443b4feef878743888686604051808763ffffffff1663ffffffff168152602001868152602001858152602001848152602001838152602001828152602001965050505050505060405180910390a17fe207bb77a36191c152d0b5aae045371d330a437a5bf5bd80e530f643c9dc3107848489604051808463ffffffff1663ffffffff1681526020018363ffffffff1663ffffffff1681526020018263ffffffff1663ffffffff168152602001935050505060405180910390a161521d8888614b7a565b6000601060008963ffffffff1663ffffffff168152602001908152602001600020819055506000601260008963ffffffff1663ffffffff168152602001908152602001600020819055506020600081548092919060010191905055505050505050505050565b61528b61595a565b60008060008463ffffffff168663ffffffff16141515156152ab57600080fd5b60009250600091505b60058210156153ee576000601160008763ffffffff1663ffffffff168152602001908152602001600020836005811015156152eb57fe5b600891828204019190066004029054906101000a900463ffffffff1663ffffffff161415156153e157601160008663ffffffff1663ffffffff1681526020019081526020016000208260058110151561534057fe5b600891828204019190066004029054906101000a900463ffffffff168484600b8110151561536a57fe5b602002019063ffffffff16908163ffffffff16815250506000601160008763ffffffff1663ffffffff168152602001908152602001600020836005811015156153af57fe5b600891828204019190066004026101000a81548163ffffffff021916908363ffffffff16021790555082806001019350505b81806001019250506152b4565b848484600b811015156153fd57fe5b602002019063ffffffff16908163ffffffff16815250508280600101935050600090505b60058110156155195760058311156154a3578360018201600b8110151561544457fe5b6020020151601160008863ffffffff1663ffffffff1681526020019081526020016000208260058110151561547557fe5b600891828204019190066004026101000a81548163ffffffff021916908363ffffffff16021790555061550c565b8381600b811015156154b157fe5b6020020151601160008863ffffffff1663ffffffff168152602001908152602001600020826005811015156154e257fe5b600891828204019190066004026101000a81548163ffffffff021916908363ffffffff1602179055505b8080600101915050615421565b615522856157bb565b50505050505050565b600080600060196001850363ffffffff1681548110151561554857fe5b906000526020600020906008020160050154925060156000848152602001908152602001600020805490509150600090505b818110156157b4578363ffffffff1660156000858152602001908152602001600020828154811015156155a957fe5b90600052602060002090600891828204019190066004029054906101000a900463ffffffff1663ffffffff1614156157a75760156000848152602001908152602001600020818154811015156155fb57fe5b90600052602060002090600891828204019190066004026101000a81549063ffffffff02191690556000821180156156365750600181038214155b1561572357601560008481526020019081526020016000206001830381548110151561565e57fe5b90600052602060002090600891828204019190066004029054906101000a900463ffffffff1660156000858152602001908152602001600020828154811015156156a457fe5b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908363ffffffff16021790555060156000848152602001908152602001600020600183038154811015156156fa57fe5b90600052602060002090600891828204019190066004026101000a81549063ffffffff02191690555b601560008481526020019081526020016000208054809190600190036157499190615920565b507f23c73fbe30b308411abb0e34d730de433c289c95d4f22ac36485d2d81299faf484600080604051808463ffffffff1663ffffffff16815260200183151515158152602001828152602001935050505060405180910390a16157b5565b808060010191505061557a565b5b50505050565b60006157f06001601260008563ffffffff1663ffffffff168152602001908152602001600020546147e390919063ffffffff16565b601260008463ffffffff1663ffffffff168152602001908152602001600020819055507f6fae13a3fbf9a1fd5751233eb2e75ce60a5321dbc847bb3e1e2e257ef43caa4882601260008563ffffffff1663ffffffff16815260200190815260200160002054604051808363ffffffff1663ffffffff1681526020018281526020019250505060405180910390a1601260008363ffffffff1663ffffffff168152602001908152602001600020549050919050565b61012060405190810160405280600063ffffffff168152602001600063ffffffff168152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60a060405190810160405280600590602082028038833980820191505090505090565b815481835581811115615955576007016008900481600701600890048360005260206000209182019101615954919061597e565b5b505050565b61016060405190810160405280600b90602082028038833980820191505090505090565b6159a091905b8082111561599c576000816000905550600101615984565b5090565b905600a165627a7a72305820ddc5732b897234942e84f2c8dce224aead990f05c6390258d01423560c1af0740029


   Swarm Source:
bzzr://ddc5732b897234942e84f2c8dce224aead990f05c6390258d01423560c1af074
Block Age transaction Difficulty GasUsed Reward
Block Age Uncle Number Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.