Contract 0xe27c0965e4C58EBA534Db8C8A2a4c3822599C942

 

Contract Overview

Balance:
0.00331252 Ether

EtherValue:
$0.41 (@ $124.15/ETH)
TxHash Block Age From To Value [TxFee]
0x15609e77129e08633218b6160ca589fad35bf88847d74eb94aaf533d1e2beea772223401 day 23 hrs ago0x9984774918a1e1134bea2842066dffc1f6897d68  IN  0xe27c0965e4c58eba534db8c8a2a4c3822599c9420.000111 Ether0.00135608
0x52c93e948cac9b9c61ee237b0cbfd3d20bfd9f555d649cbb8b498a66997bfdb172223371 day 23 hrs ago0x9984774918a1e1134bea2842066dffc1f6897d68  IN  0xe27c0965e4c58eba534db8c8a2a4c3822599c9420.001268 Ether0.00061278
0x8d63599dfea73f325427359d5d0be90a36d733e3d022cf4814fc1cace24ddfeb72043506 days 6 hrs ago0xfae527d62324842bf84c52319d6f883bf6be85e3  IN  0xe27c0965e4c58eba534db8c8a2a4c3822599c9420 Ether0.00030137
0xd642d59da1c3abc5cf63ec6a11e28edf8b6998a3290022ec8005c93410e8221872030136 days 14 hrs ago0xfae527d62324842bf84c52319d6f883bf6be85e3  IN  0xe27c0965e4c58eba534db8c8a2a4c3822599c9420.000111 Ether0.0003712
0xbfb7a66af98a652e0ed4860071d8b5e0839695753c1695f0d89a24e17690a3bc72030036 days 14 hrs ago0xfae527d62324842bf84c52319d6f883bf6be85e3  IN  0xe27c0965e4c58eba534db8c8a2a4c3822599c9420 Ether0.00099307
0xdb95a6185776e4f83bdf02f1bae9fe7819b431f2048c1b63474be4435820c8d772013226 days 23 hrs ago0xfae527d62324842bf84c52319d6f883bf6be85e3  IN  0xe27c0965e4c58eba534db8c8a2a4c3822599c9420 Ether0.000301096
0x530a167f5fa52034d2e7d7e15a72d54e3e9de2b7285e1958faa3b318097b8de671993767 days 9 hrs ago0x6c305e3a6086de9a8f1c305736cd9d0332f1e59f  IN  0xe27c0965e4c58eba534db8c8a2a4c3822599c9420.00001 Ether0.000045087
0xc23ee2ca451c3b1bd76edadb7e043116f486a949b2c4c1112939bc6f9c0b644171993687 days 9 hrs ago0x6c305e3a6086de9a8f1c305736cd9d0332f1e59f  IN  0xe27c0965e4c58eba534db8c8a2a4c3822599c9420.00001 Ether0.000045087
0x1ca494fafcbf0c8db8d523e79a19f394fd8f608721b86aa4627e1d376ab09b8d71993637 days 9 hrs ago0x6c305e3a6086de9a8f1c305736cd9d0332f1e59f  IN  0xe27c0965e4c58eba534db8c8a2a4c3822599c9420.00001 Ether0.000023617
0x64cbf866d412ec2d83f51f101d44b2a6e780592c729a9c6c7da51cbae4967a2371988367 days 12 hrs ago0x021cba46b56da9cd8ac9d3159f1ec7177072a254  IN  0xe27c0965e4c58eba534db8c8a2a4c3822599c9420 Ether0.00011124
0xb8ddf2e5158dc6d89fec19dda38920bce808708c7c42802dc300294641f34a3571977147 days 17 hrs ago0x3465774132f4f021b88a1fc8fdf7df55ab715331  IN  0xe27c0965e4c58eba534db8c8a2a4c3822599c9420 Ether0.000241096
0x8a5a2b5f1fbd2d3b8ec2c4a5f0ea6742a16ae6fa6e8e3610eff56eeb287ddab171977127 days 17 hrs ago0x3f6fffb7c6993c9a5281a58cace6b5d76552cfe8  IN  0xe27c0965e4c58eba534db8c8a2a4c3822599c9420 Ether0.000181096
0x10f651e8dda76d90efb5a71ee094f3010c601ffc301764087be795b1f57025ab71977127 days 17 hrs ago0x264f356d8034c84aa476509c9cb74fd71bf2d14c  IN  0xe27c0965e4c58eba534db8c8a2a4c3822599c9420 Ether0.000241096
0x09e9ba0a9089275ed3747d9a4ebefc980086b857aa9896e0147f31cdb5b2065b71977097 days 17 hrs ago0x53a29beff40ce323c2cbfc62fcbbbaf401d0aef8  IN  0xe27c0965e4c58eba534db8c8a2a4c3822599c9420 Ether0.000241096
0xefa0b82c9e1111fdbe911a8e123fa168750c6d3cde5e9278e885f88c644fc5d271977067 days 17 hrs ago0x0139cbe3b2e5ccf3c667ebd237197cdeec26f30f  IN  0xe27c0965e4c58eba534db8c8a2a4c3822599c9420 Ether0.000180822
0x6f9224ac1745d51d6454efedddffadafe5402731d3e77cd60785208f8ac2f4d971976997 days 17 hrs ago0xfae527d62324842bf84c52319d6f883bf6be85e3  IN  0xe27c0965e4c58eba534db8c8a2a4c3822599c9420 Ether0.000361644
0xb003cd43e6f936231428900b038998bbd10e48b58becd3f158a637c9e54d716f71975637 days 18 hrs ago0xd1ce969c209e63137d6ec9946de49f5c45d630a1  IN  0xe27c0965e4c58eba534db8c8a2a4c3822599c9420 Ether0.00011124
0x37904ace5d09fc9667a93ac187fe5222b5c6e91ac3ad7ae0aa5b27984019769671971977 days 20 hrs ago0x93cf35c14093d818ff1f78665397480aed8430f1  IN  0xe27c0965e4c58eba534db8c8a2a4c3822599c9420 Ether0.00011124
0x906daf93472979b0482e5ae523babe048dd95f1d5952fb8f599113aa8def558571971977 days 20 hrs ago0x9d74bd4aec453e198633764e7cb21f5d7573fb55  IN  0xe27c0965e4c58eba534db8c8a2a4c3822599c9420 Ether0.00011124
0x2cb98814f28cc2e4247163e33aa02641fbbe5028be5dcb1c10e7c495e7e739c271921248 days 21 hrs ago0x6c305e3a6086de9a8f1c305736cd9d0332f1e59f  IN  0xe27c0965e4c58eba534db8c8a2a4c3822599c9420.000712362699404 Ether0.00006441
0xf817afd64b114c9e637a90c0ab9e9a3e9539ea6ed1e84a2e69aeb68a3790a26b71920608 days 21 hrs ago0x3525b6a6ec81973c195d2e63534319550bce0988  IN  0xe27c0965e4c58eba534db8c8a2a4c3822599c9420 Ether0.00011124
0x2d18efd7c92d85f13a20afe265933954421a7f43906c932c3456c450a04019c971920488 days 21 hrs ago0x70f281c0e927d769b9b9ac2dd1c7abcde7279cc4  IN  0xe27c0965e4c58eba534db8c8a2a4c3822599c9420 Ether0.000241096
0x25eafb495ada570e8c78370b6195e639e5bc219aca9f5ed5e2fd6ede70528e5d71891819 days 11 hrs ago0x6c305e3a6086de9a8f1c305736cd9d0332f1e59f  IN  0xe27c0965e4c58eba534db8c8a2a4c3822599c9420.000111 Ether0.00008558
0x0ac4f9f81bb0059096e7667fe12a05df66db6fb14dd5cea44ef007500680097871887549 days 13 hrs ago0xe1856314f364e7a2d87b19a4f00af58d21a3e545  IN  0xe27c0965e4c58eba534db8c8a2a4c3822599c9420 Ether0.000103004
0xa048d0a7342f11509e992836ca1656ed9ecca46940edc51392c3465318b448a271887399 days 13 hrs ago0xe1856314f364e7a2d87b19a4f00af58d21a3e545  IN  0xe27c0965e4c58eba534db8c8a2a4c3822599c9420.000111 Ether0.000278424
[ 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
0x52c93e948cac9b9c61ee237b0cbfd3d20bfd9f555d649cbb8b498a66997bfdb172223371 day 23 hrs ago0xe27c0965e4c58eba534db8c8a2a4c3822599c9420x43bb21d0a700a9c8fef4fa86993591c3fe1274a40.0000634 Ether
0x8d63599dfea73f325427359d5d0be90a36d733e3d022cf4814fc1cace24ddfeb72043506 days 6 hrs ago0xe27c0965e4c58eba534db8c8a2a4c3822599c9420xfae527d62324842bf84c52319d6f883bf6be85e30.1016136 Ether
0xbfb7a66af98a652e0ed4860071d8b5e0839695753c1695f0d89a24e17690a3bc72030036 days 14 hrs ago0xe27c0965e4c58eba534db8c8a2a4c3822599c942  Contract Creation0 Ether
0xbfb7a66af98a652e0ed4860071d8b5e0839695753c1695f0d89a24e17690a3bc72030036 days 14 hrs ago0xe27c0965e4c58eba534db8c8a2a4c3822599c9420xfae527d62324842bf84c52319d6f883bf6be85e30.10349952 Ether
0xdb95a6185776e4f83bdf02f1bae9fe7819b431f2048c1b63474be4435820c8d772013226 days 23 hrs ago0xe27c0965e4c58eba534db8c8a2a4c3822599c9420xfae527d62324842bf84c52319d6f883bf6be85e30.22350559 Ether
0x64cbf866d412ec2d83f51f101d44b2a6e780592c729a9c6c7da51cbae4967a2371988367 days 12 hrs ago0xe27c0965e4c58eba534db8c8a2a4c3822599c9420x021cba46b56da9cd8ac9d3159f1ec7177072a2540.0109 Ether
0xb8ddf2e5158dc6d89fec19dda38920bce808708c7c42802dc300294641f34a3571977147 days 17 hrs ago0xe27c0965e4c58eba534db8c8a2a4c3822599c9420x3465774132f4f021b88a1fc8fdf7df55ab7153310.0121824 Ether
0x8a5a2b5f1fbd2d3b8ec2c4a5f0ea6742a16ae6fa6e8e3610eff56eeb287ddab171977127 days 17 hrs ago0xe27c0965e4c58eba534db8c8a2a4c3822599c9420x3f6fffb7c6993c9a5281a58cace6b5d76552cfe80.01190376 Ether
0x10f651e8dda76d90efb5a71ee094f3010c601ffc301764087be795b1f57025ab71977127 days 17 hrs ago0xe27c0965e4c58eba534db8c8a2a4c3822599c9420x264f356d8034c84aa476509c9cb74fd71bf2d14c0.01520964 Ether
0x09e9ba0a9089275ed3747d9a4ebefc980086b857aa9896e0147f31cdb5b2065b71977097 days 17 hrs ago0xe27c0965e4c58eba534db8c8a2a4c3822599c9420x53a29beff40ce323c2cbfc62fcbbbaf401d0aef80.01521828 Ether
0xefa0b82c9e1111fdbe911a8e123fa168750c6d3cde5e9278e885f88c644fc5d271977067 days 17 hrs ago0xe27c0965e4c58eba534db8c8a2a4c3822599c9420x0139cbe3b2e5ccf3c667ebd237197cdeec26f30f0.00114156 Ether
0x6f9224ac1745d51d6454efedddffadafe5402731d3e77cd60785208f8ac2f4d971976997 days 17 hrs ago0xe27c0965e4c58eba534db8c8a2a4c3822599c9420xfae527d62324842bf84c52319d6f883bf6be85e32.45652804 Ether
0xb003cd43e6f936231428900b038998bbd10e48b58becd3f158a637c9e54d716f71975637 days 18 hrs ago0xe27c0965e4c58eba534db8c8a2a4c3822599c9420xd1ce969c209e63137d6ec9946de49f5c45d630a10.0216 Ether
0x37904ace5d09fc9667a93ac187fe5222b5c6e91ac3ad7ae0aa5b27984019769671971977 days 20 hrs ago0xe27c0965e4c58eba534db8c8a2a4c3822599c9420x93cf35c14093d818ff1f78665397480aed8430f10.0972 Ether
0x906daf93472979b0482e5ae523babe048dd95f1d5952fb8f599113aa8def558571971977 days 20 hrs ago0xe27c0965e4c58eba534db8c8a2a4c3822599c9420x9d74bd4aec453e198633764e7cb21f5d7573fb550.08640108 Ether
0xf817afd64b114c9e637a90c0ab9e9a3e9539ea6ed1e84a2e69aeb68a3790a26b71920608 days 21 hrs ago0xe27c0965e4c58eba534db8c8a2a4c3822599c9420x3525b6a6ec81973c195d2e63534319550bce09880.42800107 Ether
0x2d18efd7c92d85f13a20afe265933954421a7f43906c932c3456c450a04019c971920488 days 21 hrs ago0xe27c0965e4c58eba534db8c8a2a4c3822599c9420x70f281c0e927d769b9b9ac2dd1c7abcde7279cc40.00108284 Ether
0x13253a05dcdc2f5ba2c4e0c4270fc99adef86ef4997a2632fac70655154a5d1c71887279 days 13 hrs ago0xe27c0965e4c58eba534db8c8a2a4c3822599c9420x43bb21d0a700a9c8fef4fa86993591c3fe1274a40.0005945 Ether
0x515013ffe19478f4e5c140d272f3a5a41652361976ca65ff32caaa8d6049851e717786511 days 19 hrs ago0xe27c0965e4c58eba534db8c8a2a4c3822599c9420x43bb21d0a700a9c8fef4fa86993591c3fe1274a40.00057785 Ether
0xc7f821499e6e9d9da09edba501344a08a207dbd4d5d124d41ed423c2ef81dcad717785711 days 19 hrs ago0xe27c0965e4c58eba534db8c8a2a4c3822599c9420x43bb21d0a700a9c8fef4fa86993591c3fe1274a40.00052005 Ether
0xc529c78a3c2d0b656a1fb951d6119dae0e380eb6e7ef0879439f203fe72980a5717719711 days 22 hrs ago0xe27c0965e4c58eba534db8c8a2a4c3822599c9420x43bb21d0a700a9c8fef4fa86993591c3fe1274a40.0004045 Ether
0xe3144a4ba0ea6079f9fcf70d17350d212aa7528831446da2b91dd64b9ad8adaf717718711 days 22 hrs ago0xe27c0965e4c58eba534db8c8a2a4c3822599c9420x43bb21d0a700a9c8fef4fa86993591c3fe1274a40.00057785 Ether
0x02aebf3e20a31d308a5b77fd8df23bf8925b9a1a4984363afcc84bb283873bf3717333512 days 17 hrs ago0xe27c0965e4c58eba534db8c8a2a4c3822599c9420x43bb21d0a700a9c8fef4fa86993591c3fe1274a40.0000573 Ether
0x3b77259bd6d2da1f6b2149b62892f2052f6cfb2c0c29bdb78c4ded7ae84a86b8715875815 days 16 hrs ago0xe27c0965e4c58eba534db8c8a2a4c3822599c9420x86fa8d64f65113d65b38cda8228115a6a7e1dba60.01500557 Ether
0x816fc1d14eeb0857385a3a0008611cb65bed6f5c2b4bd8bbb4b448f45912339e715872615 days 16 hrs ago0xe27c0965e4c58eba534db8c8a2a4c3822599c9420x43bb21d0a700a9c8fef4fa86993591c3fe1274a40.0044445 Ether
[ Download CSV Export 
Contract Source Code Verified (Exact Match)
Contract Name: GreenRabbitKingdom
Compiler Version: v0.4.25+commit.59dbf8f1
Optimization Enabled: No
Runs (Optimizer):  200


Contract Source Code
/**
 * https://GreenRabbit.site
 *
 * Welcome to Green Rabbit's smart Kingdom.
 *
 * Here you can collect or earn GRC tokens (Green Rabbit's Coins) and sell it for Ethereum.
 * Send Ethereum to the contract address for buying GRC tokens.
 * Attention: purchase price more than sale price by 11.1%
 *
 * The price of GRC tokens will be increased by 1% per day.
 * 
 * For create the kingdom, you should to spend GRC tokens for increasing the number of citizens or warriors of your kingdom. 
 *
 * If you want to be just an investor, don't add citizens or warriors and your kingdom won't be created.
 * 
 * Each citizen of your Kingdom will pay tribute to you. One citizen pays tribute equal kingdom prosperity, per 7 days.
 * Your warriors can attack random kingdoms and can pick up their coins. One warrior can pick up number of GRC equal (100 - attacked kingdom defence).
 * After attack, number of your warriors will be reduced by percent of defence of attacked kingdom.
 * Send 0.01 ether to the contract 0x76d7aed5ab1c4a5e210d0ccac747d097f9d58966 for attack random kingdom.
 * Attention: You won't lose warriors, if attacked kingdom have GRC number less than 10000.
 *
 * Each kingdom have prosperity and defence levels. Sum of prosperity and defence levels always will be equal 100.
 * You can increase prosperity and reduce defence level by 10 sending 0.000333 ether to the contract address. Maximum prosperity is 100.
 * You can increase defence and reduce prosperity level by 10 sending 0.000444 ether to the contract address. Maximum defence is 90.
 *
 * Citizens will pay GRC tokens depending on their level of prosperity, the more it is, the more they will pay.
 * Attention! You can lost part of your coins, if your defence is not high and your kingdom would be under attack.
 *
 * Send from 0 to 0.00001 ether to this contract address for sell all your GRC tokens.
 * Send 0.000111 ether to spend your tokens to add citizens to your kingdom. 
 * Send 0.000222 ether to spend your tokens to add warriors to your kingdom. 
 * Send 0.000333 ether to set +10 prosperity and -10 defence level of your kingdom. 
 * Send 0.000444 ether to set +10 defence and -10 prosperity level of your kingdom. 
 *
 * Use 200000 of Gas limit for your transactions.
 *
 * Admin commissions: 5% from GRC tokens buying.
 *
 * Game will be paused for 3 days when balance is null and will be auto restarted, all kingdoms and tokens will be burnt.
 * 
 */

pragma solidity ^0.4.25;


/**
 * @title SafeMath
 * @dev Math operations with safety checks that revert on error
 */
library SafeMath {

    function mul(uint256 _a, uint256 _b) internal pure returns (uint256) {
        if (_a == 0) {
            return 0;
        }

        uint256 c = _a * _b;
        require(c / _a == _b);

        return c;
    }

    function div(uint256 _a, uint256 _b) internal pure returns (uint256) {
        require(_b > 0);
        uint256 c = _a / _b;

        return c;
    }

    function sub(uint256 _a, uint256 _b) internal pure returns (uint256) {
        require(_b <= _a);
        uint256 c = _a - _b;

        return c;
    }

    function add(uint256 _a, uint256 _b) internal pure returns (uint256) {
        uint256 c = _a + _b;
        require(c >= _a);

        return c;
    }
}

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address who) external view returns (uint256);
    function transfer(address to, uint256 value) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);

}

contract Ownable {
	address private owner;
	
    constructor() public {
        owner = msg.sender;
    }

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

contract ERC20 is Ownable {
    using SafeMath for uint256;

    mapping (address => uint256) private _balances;

	uint256 private _totalSupply;
	
	 
    /**
    * @dev Total number of tokens in existence
    */
    function totalSupply() external view returns (uint256) {
        return _totalSupply;
    }

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

    /**
    * @dev Transfer token for a specified address
    * @param from The address to transfer from.
    * @param to The address to transfer to.
    * @param value The amount to be transferred.
    */
    function transfer(address from, address to, uint256 value) public onlyOwner returns (bool) {
        _transfer(from, to, value);
        return true;
    }

    /**
    * @dev Mint token for a specified address
    * @param account The address to mint to.
    * @param value The amount to be minted.
    */
    function mint(address account, uint256 value) public onlyOwner returns (bool) {
        _mint(account, value);
        return true;
    }
	
    /**
    * @dev Burn token for a specified address
    * @param account The address to burn from.
    * @param value The amount to be burnt.
    */
    function burn(address account, uint256 value) public onlyOwner returns (bool) {
        _burn(account, value);
        return true;
    }	
	
    /**
    * @dev Transfer token for a specified addresses
    * @param from The address to transfer from.
    * @param to The address to transfer to.
    * @param value The amount to be transferred.
    */
    function _transfer(address from, address to, uint256 value) internal {
        require(to != address(0));

        _balances[from] = _balances[from].sub(value);
        _balances[to] = _balances[to].add(value);
    }

    /**
     * @dev Internal function that mints an amount of the token and assigns it to
     * an account. This encapsulates the modification of balances such that the
     * proper events are emitted.
     * @param account The account that will receive the created tokens.
     * @param value The amount that will be created.
     */
    function _mint(address account, uint256 value) internal {
        require(account != address(0));

        _totalSupply = _totalSupply.add(value);
        _balances[account] = _balances[account].add(value);
    }

    /**
     * @dev Internal function that burns an amount of the token of a given
     * account.
     * @param account The account whose tokens will be burnt.
     * @param value The amount that will be burnt.
     */
    function _burn(address account, uint256 value) internal {
        require(account != address(0));

        _totalSupply = _totalSupply.sub(value);
        _balances[account] = _balances[account].sub(value);
    }


}

contract KingdomStorage is ERC20 {
    using SafeMath for uint256;

    uint private _kingdomsCount;

    struct Kingdom {
        uint numberOfCitizens;
		uint numberOfWarriors;
		uint prosperity;
		uint defence;
		uint lostCoins; //lost tokens in wars
        uint tributeCheckpoint;
    }

	mapping (uint => address) private kingdomAddress;
    mapping (address => Kingdom) private kingdoms;
	
	event War(address indexed _attacked, address indexed _invader, uint _lostCoins, uint _slayedWarriors);

    function addCitizens(address _address, uint _number, bool _are_warriors) external onlyOwner {
		if (kingdoms[_address].prosperity == 0) {
			// create the new kingdom
			kingdomAddress[_kingdomsCount] = _address;
			kingdoms[_address].prosperity = 50;
			kingdoms[_address].defence = 50;	
			_kingdomsCount++;
		}
		
        if (_are_warriors) {
			// add warriors	
			kingdoms[_address].numberOfWarriors = kingdoms[_address].numberOfWarriors.add(_number);
		} else {
			// add citizens
			kingdoms[_address].numberOfCitizens = kingdoms[_address].numberOfCitizens.add(_number);
			kingdoms[_address].tributeCheckpoint = block.timestamp;
		}

    }
	
    function getTribute(address _address) external onlyOwner {
		uint tributeValue = getTributeValue(_address);
		if (tributeValue > 0) {
			mint(_address, tributeValue);
			kingdoms[_address].tributeCheckpoint = block.timestamp;
			kingdoms[_address].lostCoins = 0;
		}
    }
	
	function startWar(address _invader, address _attacked) external onlyOwner {
		uint invaderWarriorsNumber = getWarriorsNumber(_invader);
		require (invaderWarriorsNumber >0);
		
		uint attackedKingdomBalance = balanceOf(_attacked);		
		uint attackedKingdomWealth = getTributeValue(_attacked).add(attackedKingdomBalance);
		uint attackedKingdomDefence = getDefence(_attacked); 
		
		// one warrior picks up number of GRC equal (100 - attacked kingdom defence)
		uint attackPower = invaderWarriorsNumber.mul(100 - attackedKingdomDefence); 
		if (attackPower > attackedKingdomWealth)
			attackPower = attackedKingdomWealth;
		
		// defence action: slay warriors
		uint slayedWarriors;
		// dont slay, if attackedKingdomWealth <= 10000 GRC
		if (attackedKingdomWealth > 10000) {
			slayedWarriors = invaderWarriorsNumber.mul(attackedKingdomDefence).div(100);	
			kingdoms[_invader].numberOfWarriors -= slayedWarriors;
		}
		
		// invader action: pick up tokens
		uint lostCoins;
		
		if (attackedKingdomBalance >= attackPower) {
			transfer(_attacked, _invader, attackPower);
			lostCoins += attackPower;
			attackPower = 0;
		} else if (attackedKingdomBalance > 0) {
			transfer(_attacked, _invader, attackedKingdomBalance);
			lostCoins += attackedKingdomBalance;
			attackPower -= attackedKingdomBalance;
		} 

		if (attackPower > 0) {
			kingdoms[_attacked].lostCoins += attackPower;
			mint(_invader, attackPower);
			lostCoins += attackPower;
		}
		
		emit War(_attacked, _invader, lostCoins, slayedWarriors);
	}
	
	function warFailed(address _invader) external onlyOwner {
		emit War(address(0), _invader, 0, 0);
	}
	
    function increaseProsperity(address _address) external onlyOwner {
		// minimum defence = 0%, maximum prosperity = 100%
		if (kingdoms[_address].prosperity <= 90) {
			kingdoms[_address].prosperity += 10;
			kingdoms[_address].defence -= 10;
		}
    }	
	
    function increaseDefence(address _address) external onlyOwner {
		// maximum defence = 90%, minimum prosperity = 10%
		if (kingdoms[_address].defence <= 80) {
			kingdoms[_address].defence += 10;
			kingdoms[_address].prosperity -= 10;
		}
    }	

    function getTributeValue(address _address) public view returns(uint) {
		uint numberOfCitizens = getCitizensNumber(_address);
		if (numberOfCitizens > 0) {
			// one citizen gives tribute equal kingdom prosperity, per 7 days;
			return numberOfCitizens.mul(getProsperity(_address)).mul(block.timestamp.sub(getTributeCheckpoint(_address))).div(7 days).sub(getLostCoins(_address)); 
		}
		return 0;
    }	

    function getProsperity(address _address) public view returns(uint) {
		return kingdoms[_address].prosperity;
    }
	
    function getDefence(address _address) public view returns(uint) {
		return kingdoms[_address].defence;
    }	
    function getLostCoins(address _address) public view returns(uint) {
		return kingdoms[_address].lostCoins;
    }	

    function getCitizensNumber(address _address) public view returns(uint) {
        return kingdoms[_address].numberOfCitizens;
    }

    function getWarriorsNumber(address _address) public view returns(uint) {
        return kingdoms[_address].numberOfWarriors;
    }
	
    function getTributeCheckpoint(address _address) public view returns(uint) {
        return kingdoms[_address].tributeCheckpoint;
    }

    function getKingdomAddress(uint _kingdomId) external view returns(address) {
        return kingdomAddress[_kingdomId];
    }
	
	function kingdomsCount() external view returns(uint) {
        return _kingdomsCount;
    }
}

contract GreenRabbitKingdom is IERC20 {
    using SafeMath for uint;

    address admin;

    uint invested;
    uint payed;
    uint startTime;
	uint tokenStartPrice;
	
	string public name = 'GreenRabbitCoin';
	string public symbol = 'GRC';
	uint public decimals = 0;
	
    event LogNewGame(uint _startTime);
	
    KingdomStorage private kingdom;

    modifier notOnPause() {
        require(startTime <= block.timestamp, "Game paused");
        _;
    }

    constructor() public {
        admin = msg.sender;
        kingdom = new KingdomStorage();
        startTime = now;
		tokenStartPrice = 1 szabo; //0.000001 ETH
    }
 
    function() external payable {
        if (msg.value == 0 && msg.value <= 0.00001 ether) {
            sellTokens();
        } else if (msg.value == 0.000111 ether) {
			//add citizens, not warriors
            addCitizens(false);
        } else if (msg.value == 0.000222 ether) {
			//add warriors
            addCitizens(true);
        } else if (msg.value == 0.000333 ether) {
            increaseProsperity();
        } else if (msg.value == 0.000444 ether) {
            increaseDefence();
		} else {            
			buyTokens();
        }
    }

    /**
     * @dev ERC20 function
     */
    function totalSupply() external view returns (uint256) {
        return kingdom.totalSupply();
    }

    /**
     * @dev ERC20 function
     */
    function transfer(address to, uint256 value) external returns (bool) {
		// get tribute from your citizens before
		kingdom.getTribute(msg.sender);
        return kingdom.transfer(msg.sender, to, value);
    }	

    /**
     * @dev ERC20 function
     */
	function balanceOf(address owner) public view returns (uint256) {
        return kingdom.balanceOf(owner);
    }
	
    function buyTokens() notOnPause public payable {
		require (msg.value >= 0.001 ether);
		uint tokensValue = msg.value.div(getTokenSellPrice()).mul(90).div(100);
		kingdom.mint(msg.sender, tokensValue);
		admin.send(msg.value / 20); //5%
		emit Transfer(address(0), msg.sender, tokensValue);
    }

    function sellTokens() notOnPause public {
		// get tribute from your citizens before
		kingdom.getTribute(msg.sender);
		
        uint tokensValue = balanceOf(msg.sender); 
		uint payout = tokensValue.mul(getTokenSellPrice());

        if (payout > 0) {

            if (payout > address(this).balance) {
				msg.sender.transfer(address(this).balance);
                nextGame();
                return;
            }

            msg.sender.transfer(payout);
			
			kingdom.burn(msg.sender, tokensValue);
			emit Transfer(msg.sender, address(0), tokensValue);
        }		
    }
	
	function addCitizens(bool _are_warriors) notOnPause public {
		// get tribute from your citizens before adding new citizens
		kingdom.getTribute(msg.sender);
		
		uint CitizensNumber = balanceOf(msg.sender).div(100);
		if (CitizensNumber > 0) {
			kingdom.addCitizens(msg.sender,CitizensNumber,_are_warriors);
			kingdom.burn(msg.sender, CitizensNumber * 100);
		}
	}
	
    function attackKingdom(address _invader, uint _random) notOnPause public returns(bool) {
		// Only for invader's smart contract:
		// https://etherscan.io/address/0x76d7aed5ab1c4a5e210d0ccac747d097f9d58966
		require (msg.sender == 0x76d7aed5ab1c4a5e210d0ccac747d097f9d58966); 
		
		uint attackedKingdomId = _random % (kingdom.kingdomsCount());
		address attackedKingdomAddress = kingdom.getKingdomAddress(attackedKingdomId);
		
		if (_invader != attackedKingdomAddress) {
			kingdom.startWar(_invader, attackedKingdomAddress);
		} else {
			// you can't attack youself
			kingdom.warFailed(_invader);
		}
			
        return true;
    }	
	
	function increaseProsperity() notOnPause public {
		// get tribute from your citizens before
		kingdom.getTribute(msg.sender);
		kingdom.increaseProsperity(msg.sender);
	}
	
	function increaseDefence() notOnPause public {
		// get tribute from your citizens before
		kingdom.getTribute(msg.sender);		
		kingdom.increaseDefence(msg.sender);
	}
	
	function synchronizeTokensBalance() notOnPause public {
		// get tribute from your citizens 
		// for release real tokens that you can see them in your ERC-20 wallet 
		kingdom.getTribute(msg.sender);		
	}	
	
	function getTokenSellPrice() public view returns(uint) {
		//each day +1% to token price
		return tokenStartPrice.add( tokenStartPrice.div(100).mul(block.timestamp.sub(startTime).div(1 days)) );
	}

    function getGameAge() external view returns(uint) {
		if (block.timestamp > startTime)
			return block.timestamp.sub(startTime).div(1 days).add(1);
		else 
			return 0;
    }
	
    function getKingdomsCount() external view returns(uint) {
        return kingdom.kingdomsCount();
    }
	
    function getKingdomData(address _address) external view returns(uint numberOfCitizens, uint numberOfWarriors, uint prosperity, uint defence, uint balance) {
		numberOfCitizens = kingdom.getCitizensNumber(_address);
		numberOfWarriors = kingdom.getWarriorsNumber(_address);
		prosperity = kingdom.getProsperity(_address);
		defence = kingdom.getDefence(_address);
		balance = kingdom.getTributeValue(_address) + balanceOf(_address);
    }	

    function getBalance() external view returns(uint) {
        return address(this).balance;
    }

    function nextGame() private {
        kingdom = new KingdomStorage();
        startTime = block.timestamp + 3 days;
        emit LogNewGame(startTime);
    }
	
}

Contract ABI
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_are_warriors","type":"bool"}],"name":"addCitizens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"getKingdomData","outputs":[{"name":"numberOfCitizens","type":"uint256"},{"name":"numberOfWarriors","type":"uint256"},{"name":"prosperity","type":"uint256"},{"name":"defence","type":"uint256"},{"name":"balance","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":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"sellTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"increaseDefence","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_invader","type":"address"},{"name":"_random","type":"uint256"}],"name":"attackKingdom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getTokenSellPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getKingdomsCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"buyTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"getGameAge","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"increaseProsperity","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"synchronizeTokensBalance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_startTime","type":"uint256"}],"name":"LogNewGame","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]

Contract Creation Code
60806040526040805190810160405280600f81526020017f477265656e526162626974436f696e0000000000000000000000000000000000815250600590805190602001906200005192919062000174565b506040805190810160405280600381526020017f4752430000000000000000000000000000000000000000000000000000000000815250600690805190602001906200009f92919062000174565b506000600755348015620000b257600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000fd620001fb565b604051809103906000f0801580156200011a573d6000803e3d6000fd5b50600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260038190555064e8d4a5100060048190555062000234565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001b757805160ff1916838001178555620001e8565b82800160010185558215620001e8579182015b82811115620001e7578251825591602001919060010190620001ca565b5b509050620001f791906200020c565b5090565b604051611a95806200440183390190565b6200023191905b808211156200022d57600081600090555060010162000213565b5090565b90565b6141bd80620002446000396000f3006080604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146101a557806312065fe01461023557806318160ddd14610260578063313ce5671461028b57806344439040146102b657806370234abf146102e557806370a082311461035857806395d89b41146103af5780639904e1741461043f578063a513b73b14610456578063a9059cbb1461046d578063bde7e1d2146104d2578063c9b3e73614610537578063d021afee14610562578063d0febe4c1461058d578063d9c5042d14610597578063eaf45310146105c2578063f119ebe8146105d9575b60003414801561011257506509184e72a0003411155b156101245761011f6105f0565b6101a3565b6564f43391f0003414156101415761013c60006109b0565b6101a2565b65c9e86723e00034141561015e5761015960016109b0565b6101a1565b66012edc9ab5d00034141561017a57610175610d1a565b6101a0565b660193d0ce47c00034141561019657610191610f40565b61019f565b61019e611166565b5b5b5b5b5b005b3480156101b157600080fd5b506101ba611407565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101fa5780820151818401526020810190506101df565b50505050905090810190601f1680156102275780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561024157600080fd5b5061024a6114a5565b6040518082815260200191505060405180910390f35b34801561026c57600080fd5b506102756114c4565b6040518082815260200191505060405180910390f35b34801561029757600080fd5b506102a061158c565b6040518082815260200191505060405180910390f35b3480156102c257600080fd5b506102e36004803603810190808035151590602001909291905050506109b0565b005b3480156102f157600080fd5b50610326600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611592565b604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390f35b34801561036457600080fd5b50610399600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a8f565b6040518082815260200191505060405180910390f35b3480156103bb57600080fd5b506103c4611b90565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104045780820151818401526020810190506103e9565b50505050905090810190601f1680156104315780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561044b57600080fd5b506104546105f0565b005b34801561046257600080fd5b5061046b610f40565b005b34801561047957600080fd5b506104b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611c2e565b604051808215151515815260200191505060405180910390f35b3480156104de57600080fd5b5061051d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e41565b604051808215151515815260200191505060405180910390f35b34801561054357600080fd5b5061054c6122b9565b6040518082815260200191505060405180910390f35b34801561056e57600080fd5b50610577612325565b6040518082815260200191505060405180910390f35b610595611166565b005b3480156105a357600080fd5b506105ac6123ed565b6040518082815260200191505060405180910390f35b3480156105ce57600080fd5b506105d7610d1a565b005b3480156105e557600080fd5b506105ee612445565b005b600080426003541115151561066d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f47616d652070617573656400000000000000000000000000000000000000000081525060200191505060405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f794e123336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561072a57600080fd5b505af115801561073e573d6000803e3d6000fd5b5050505061074b33611a8f565b91506107676107586122b9565b8361259690919063ffffffff16565b905060008111156109ab573073ffffffffffffffffffffffffffffffffffffffff16318111156107fc573373ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501580156107ee573d6000803e3d6000fd5b506107f76125d4565b6109ac565b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610842573d6000803e3d6000fd5b50600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac33846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561090857600080fd5b505af115801561091c573d6000803e3d6000fd5b505050506040513d602081101561093257600080fd5b810190808051906020019092919050505050600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35b5b5050565b60004260035411151515610a2c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f47616d652070617573656400000000000000000000000000000000000000000081525060200191505060405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f794e123336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015610ae957600080fd5b505af1158015610afd573d6000803e3d6000fd5b50505050610b1d6064610b0f33611a8f565b61268090919063ffffffff16565b90506000811115610d1657600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663babf87bc3383856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001821515151581526020019350505050600060405180830381600087803b158015610bf957600080fd5b505af1158015610c0d573d6000803e3d6000fd5b50505050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac33606484026040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610cd957600080fd5b505af1158015610ced573d6000803e3d6000fd5b505050506040513d6020811015610d0357600080fd5b8101908080519060200190929190505050505b5050565b4260035411151515610d94576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f47616d652070617573656400000000000000000000000000000000000000000081525060200191505060405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f794e123336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015610e5157600080fd5b505af1158015610e65573d6000803e3d6000fd5b50505050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632a4907b7336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015610f2657600080fd5b505af1158015610f3a573d6000803e3d6000fd5b50505050565b4260035411151515610fba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f47616d652070617573656400000000000000000000000000000000000000000081525060200191505060405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f794e123336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561107757600080fd5b505af115801561108b573d6000803e3d6000fd5b50505050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e7d61952336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561114c57600080fd5b505af1158015611160573d6000803e3d6000fd5b50505050565b600042600354111515156111e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f47616d652070617573656400000000000000000000000000000000000000000081525060200191505060405180910390fd5b66038d7ea4c6800034101515156111f857600080fd5b611238606461122a605a61121c61120d6122b9565b3461268090919063ffffffff16565b61259690919063ffffffff16565b61268090919063ffffffff16565b9050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1933836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156112ff57600080fd5b505af1158015611313573d6000803e3d6000fd5b505050506040513d602081101561132957600080fd5b8101908080519060200190929190505050506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60143481151561138257fe5b049081150290604051600060405180830381858888f19350505050503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350565b60058054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561149d5780601f106114725761010080835404028352916020019161149d565b820191906000526020600020905b81548152906001019060200180831161148057829003601f168201915b505050505081565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561154c57600080fd5b505af1158015611560573d6000803e3d6000fd5b505050506040513d602081101561157657600080fd5b8101908080519060200190929190505050905090565b60075481565b6000806000806000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166351d655f4876040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561165757600080fd5b505af115801561166b573d6000803e3d6000fd5b505050506040513d602081101561168157600080fd5b81019080805190602001909291905050509450600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f53002ab876040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561175157600080fd5b505af1158015611765573d6000803e3d6000fd5b505050506040513d602081101561177b57600080fd5b81019080805190602001909291905050509350600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dcadc7e1876040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561184b57600080fd5b505af115801561185f573d6000803e3d6000fd5b505050506040513d602081101561187557600080fd5b81019080805190602001909291905050509250600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635af9c59b876040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561194557600080fd5b505af1158015611959573d6000803e3d6000fd5b505050506040513d602081101561196f57600080fd5b8101908080519060200190929190505050915061198b86611a8f565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c97ea350886040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611a4857600080fd5b505af1158015611a5c573d6000803e3d6000fd5b505050506040513d6020811015611a7257600080fd5b810190808051906020019092919050505001905091939590929450565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611b4e57600080fd5b505af1158015611b62573d6000803e3d6000fd5b505050506040513d6020811015611b7857600080fd5b81019080805190602001909291905050509050919050565b60068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c265780601f10611bfb57610100808354040283529160200191611c26565b820191906000526020600020905b815481529060010190602001808311611c0957829003601f168201915b505050505081565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f794e123336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015611ced57600080fd5b505af1158015611d01573d6000803e3d6000fd5b50505050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663beabacc83385856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611dfe57600080fd5b505af1158015611e12573d6000803e3d6000fd5b505050506040513d6020811015611e2857600080fd5b8101908080519060200190929190505050905092915050565b60008060004260035411151515611ec0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f47616d652070617573656400000000000000000000000000000000000000000081525060200191505060405180910390fd5b7376d7aed5ab1c4a5e210d0ccac747d097f9d589663373ffffffffffffffffffffffffffffffffffffffff16141515611ef857600080fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dc6b5fdb6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611f7e57600080fd5b505af1158015611f92573d6000803e3d6000fd5b505050506040513d6020811015611fa857600080fd5b810190808051906020019092919050505084811515611fc357fe5b069150600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663992c462f836040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15801561205757600080fd5b505af115801561206b573d6000803e3d6000fd5b505050506040513d602081101561208157600080fd5b810190808051906020019092919050505090508073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415156121d757600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636125158386836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b1580156121ba57600080fd5b505af11580156121ce573d6000803e3d6000fd5b505050506122ad565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d6c7584b866040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561229457600080fd5b505af11580156122a8573d6000803e3d6000fd5b505050505b60019250505092915050565b600061232061230f6122eb620151806122dd600354426126aa90919063ffffffff16565b61268090919063ffffffff16565b612301606460045461268090919063ffffffff16565b61259690919063ffffffff16565b6004546126cb90919063ffffffff16565b905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dc6b5fdb6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156123ad57600080fd5b505af11580156123c1573d6000803e3d6000fd5b505050506040513d60208110156123d757600080fd5b8101908080519060200190929190505050905090565b600060035442111561243d5761243660016124286201518061241a600354426126aa90919063ffffffff16565b61268090919063ffffffff16565b6126cb90919063ffffffff16565b9050612442565b600090505b90565b42600354111515156124bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f47616d652070617573656400000000000000000000000000000000000000000081525060200191505060405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f794e123336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561257c57600080fd5b505af1158015612590573d6000803e3d6000fd5b50505050565b60008060008414156125ab57600091506125cd565b82840290508284828115156125bc57fe5b041415156125c957600080fd5b8091505b5092915050565b6125dc6126ec565b604051809103906000f0801580156125f8573d6000803e3d6000fd5b50600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506203f48042016003819055507ffede2690a3b21945c3b745bb5671536d62624318ca0e50ef2ac1d5dc03e4f54e6003546040518082815260200191505060405180910390a1565b60008060008311151561269257600080fd5b828481151561269d57fe5b0490508091505092915050565b6000808383111515156126bc57600080fd5b82840390508091505092915050565b60008082840190508381101515156126e257600080fd5b8091505092915050565b604051611a95806126fd8339019056006080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611a42806100536000396000f300608060405260043610610112576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806318160ddd146101175780632a4907b71461014257806340c10f191461018557806351d655f4146101ea5780635af9c59b14610241578063612515831461029857806370a08231146102fb57806391c169f014610352578063992c462f146103a95780639a74f4b5146104165780639dc29fac1461046d578063babf87bc146104d2578063beabacc81461052b578063c97ea350146105b0578063d6c7584b14610607578063dc6b5fdb1461064a578063dcadc7e114610675578063e7d61952146106cc578063f53002ab1461070f578063f794e12314610766575b600080fd5b34801561012357600080fd5b5061012c6107a9565b6040518082815260200191505060405180910390f35b34801561014e57600080fd5b50610183600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107b3565b005b34801561019157600080fd5b506101d0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610900565b604051808215151515815260200191505060405180910390f35b3480156101f657600080fd5b5061022b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610971565b6040518082815260200191505060405180910390f35b34801561024d57600080fd5b50610282600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109bd565b6040518082815260200191505060405180910390f35b3480156102a457600080fd5b506102f9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a09565b005b34801561030757600080fd5b5061033c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c89565b6040518082815260200191505060405180910390f35b34801561035e57600080fd5b50610393600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cd2565b6040518082815260200191505060405180910390f35b3480156103b557600080fd5b506103d460048036038101908080359060200190929190505050610d1e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561042257600080fd5b50610457600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d5b565b6040518082815260200191505060405180910390f35b34801561047957600080fd5b506104b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610da7565b604051808215151515815260200191505060405180910390f35b3480156104de57600080fd5b50610529600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803515159060200190929190505050610e18565b005b34801561053757600080fd5b50610596600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611143565b604051808215151515815260200191505060405180910390f35b3480156105bc57600080fd5b506105f1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111b6565b6040518082815260200191505060405180910390f35b34801561061357600080fd5b50610648600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611255565b005b34801561065657600080fd5b5061065f611322565b6040518082815260200191505060405180910390f35b34801561068157600080fd5b506106b6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061132c565b6040518082815260200191505060405180910390f35b3480156106d857600080fd5b5061070d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611378565b005b34801561071b57600080fd5b50610750600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114c5565b6040518082815260200191505060405180910390f35b34801561077257600080fd5b506107a7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611511565b005b6000600254905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561080e57600080fd5b605a600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201541115156108fd57600a600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008282540192505081905550600a600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301600082825403925050819055505b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561095d57600080fd5b6109678383611621565b6001905092915050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301549050919050565b60008060008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a6f57600080fd5b610a78896114c5565b9650600087111515610a8957600080fd5b610a9288610c89565b9550610aaf86610aa18a6111b6565b61171190919063ffffffff16565b9450610aba886109bd565b9350610ad2846064038861173290919063ffffffff16565b925084831115610ae0578492505b612710851115610b6357610b106064610b02868a61173290919063ffffffff16565b61177090919063ffffffff16565b915081600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825403925050819055505b8286101515610b8657610b77888a85611143565b50828101905060009250610ba7565b6000861115610ba657610b9a888a88611143565b50858101905085830392505b5b6000831115610c115782600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160008282540192505081905550610c0a8984610900565b5082810190505b8873ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f91f1b5a7a91fbc70a39ec01d78327a29a5377b10b6304785f0fb6baca03bb38e8385604051808381526020018281526020019250505060405180910390a3505050505050505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401549050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600501549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e0457600080fd5b610e0e838361179a565b6001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e7357600080fd5b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201541415610fb5578260046000600354815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506032600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055506032600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301819055506003600081548092919060010191905055505b801561105b5761101082600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015461171190919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555061113e565b6110b082600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461171190919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555042600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600501819055505b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111a057600080fd5b6111ab84848461188a565b600190509392505050565b6000806111c283610971565b9050600081111561124a576112436111d984610cd2565b61123562093a806112276111fe6111ef89610d5b565b426119f590919063ffffffff16565b61121961120a8a61132c565b8861173290919063ffffffff16565b61173290919063ffffffff16565b61177090919063ffffffff16565b6119f590919063ffffffff16565b915061124f565b600091505b50919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112b057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f91f1b5a7a91fbc70a39ec01d78327a29a5377b10b6304785f0fb6baca03bb38e600080604051808381526020018281526020019250505060405180910390a350565b6000600354905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113d357600080fd5b6050600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301541115156114c257600a600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008282540192505081905550600a600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201600082825403925050819055505b50565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561156e57600080fd5b611577826111b6565b9050600081111561161d5761158c8282610900565b5042600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600501819055506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401819055505b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561165d57600080fd5b6116728160025461171190919063ffffffff16565b6002819055506116ca81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461171190919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600080828401905083811015151561172857600080fd5b8091505092915050565b60008060008414156117475760009150611769565b828402905082848281151561175857fe5b0414151561176557600080fd5b8091505b5092915050565b60008060008311151561178257600080fd5b828481151561178d57fe5b0490508091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156117d657600080fd5b6117eb816002546119f590919063ffffffff16565b60028190555061184381600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119f590919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156118c657600080fd5b61191881600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119f590919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119ad81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461171190919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600080838311151515611a0757600080fd5b828403905080915050929150505600a165627a7a7230582009526377769d0d37f80c2a4c0e700e5e35b5f2ff179c33cb3a3e94e4304f16940029a165627a7a72305820f4094996d03ffa81455208058ef1bbbab3fd1202be9c25dd0dbcd86cf8eae83500296080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611a42806100536000396000f300608060405260043610610112576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806318160ddd146101175780632a4907b71461014257806340c10f191461018557806351d655f4146101ea5780635af9c59b14610241578063612515831461029857806370a08231146102fb57806391c169f014610352578063992c462f146103a95780639a74f4b5146104165780639dc29fac1461046d578063babf87bc146104d2578063beabacc81461052b578063c97ea350146105b0578063d6c7584b14610607578063dc6b5fdb1461064a578063dcadc7e114610675578063e7d61952146106cc578063f53002ab1461070f578063f794e12314610766575b600080fd5b34801561012357600080fd5b5061012c6107a9565b6040518082815260200191505060405180910390f35b34801561014e57600080fd5b50610183600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107b3565b005b34801561019157600080fd5b506101d0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610900565b604051808215151515815260200191505060405180910390f35b3480156101f657600080fd5b5061022b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610971565b6040518082815260200191505060405180910390f35b34801561024d57600080fd5b50610282600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109bd565b6040518082815260200191505060405180910390f35b3480156102a457600080fd5b506102f9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a09565b005b34801561030757600080fd5b5061033c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c89565b6040518082815260200191505060405180910390f35b34801561035e57600080fd5b50610393600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cd2565b6040518082815260200191505060405180910390f35b3480156103b557600080fd5b506103d460048036038101908080359060200190929190505050610d1e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561042257600080fd5b50610457600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d5b565b6040518082815260200191505060405180910390f35b34801561047957600080fd5b506104b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610da7565b604051808215151515815260200191505060405180910390f35b3480156104de57600080fd5b50610529600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803515159060200190929190505050610e18565b005b34801561053757600080fd5b50610596600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611143565b604051808215151515815260200191505060405180910390f35b3480156105bc57600080fd5b506105f1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111b6565b6040518082815260200191505060405180910390f35b34801561061357600080fd5b50610648600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611255565b005b34801561065657600080fd5b5061065f611322565b6040518082815260200191505060405180910390f35b34801561068157600080fd5b506106b6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061132c565b6040518082815260200191505060405180910390f35b3480156106d857600080fd5b5061070d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611378565b005b34801561071b57600080fd5b50610750600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114c5565b6040518082815260200191505060405180910390f35b34801561077257600080fd5b506107a7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611511565b005b6000600254905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561080e57600080fd5b605a600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201541115156108fd57600a600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008282540192505081905550600a600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301600082825403925050819055505b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561095d57600080fd5b6109678383611621565b6001905092915050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301549050919050565b60008060008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a6f57600080fd5b610a78896114c5565b9650600087111515610a8957600080fd5b610a9288610c89565b9550610aaf86610aa18a6111b6565b61171190919063ffffffff16565b9450610aba886109bd565b9350610ad2846064038861173290919063ffffffff16565b925084831115610ae0578492505b612710851115610b6357610b106064610b02868a61173290919063ffffffff16565b61177090919063ffffffff16565b915081600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825403925050819055505b8286101515610b8657610b77888a85611143565b50828101905060009250610ba7565b6000861115610ba657610b9a888a88611143565b50858101905085830392505b5b6000831115610c115782600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160008282540192505081905550610c0a8984610900565b5082810190505b8873ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f91f1b5a7a91fbc70a39ec01d78327a29a5377b10b6304785f0fb6baca03bb38e8385604051808381526020018281526020019250505060405180910390a3505050505050505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401549050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600501549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e0457600080fd5b610e0e838361179a565b6001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e7357600080fd5b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201541415610fb5578260046000600354815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506032600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055506032600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301819055506003600081548092919060010191905055505b801561105b5761101082600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015461171190919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555061113e565b6110b082600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461171190919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555042600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600501819055505b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111a057600080fd5b6111ab84848461188a565b600190509392505050565b6000806111c283610971565b9050600081111561124a576112436111d984610cd2565b61123562093a806112276111fe6111ef89610d5b565b426119f590919063ffffffff16565b61121961120a8a61132c565b8861173290919063ffffffff16565b61173290919063ffffffff16565b61177090919063ffffffff16565b6119f590919063ffffffff16565b915061124f565b600091505b50919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112b057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f91f1b5a7a91fbc70a39ec01d78327a29a5377b10b6304785f0fb6baca03bb38e600080604051808381526020018281526020019250505060405180910390a350565b6000600354905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113d357600080fd5b6050600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301541115156114c257600a600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008282540192505081905550600a600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201600082825403925050819055505b50565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561156e57600080fd5b611577826111b6565b9050600081111561161d5761158c8282610900565b5042600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600501819055506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401819055505b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561165d57600080fd5b6116728160025461171190919063ffffffff16565b6002819055506116ca81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461171190919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600080828401905083811015151561172857600080fd5b8091505092915050565b60008060008414156117475760009150611769565b828402905082848281151561175857fe5b0414151561176557600080fd5b8091505b5092915050565b60008060008311151561178257600080fd5b828481151561178d57fe5b0490508091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156117d657600080fd5b6117eb816002546119f590919063ffffffff16565b60028190555061184381600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119f590919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156118c657600080fd5b61191881600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119f590919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119ad81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461171190919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600080838311151515611a0757600080fd5b828403905080915050929150505600a165627a7a7230582009526377769d0d37f80c2a4c0e700e5e35b5f2ff179c33cb3a3e94e4304f16940029


   Swarm Source:
bzzr://09526377769d0d37f80c2a4c0e700e5e35b5f2ff179c33cb3a3e94e4304f1694
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.