Sponsored:   Color Platform: Decentralized App Store - Special Airdrop For Everyone (~17 Sep), Register NOW!
Contract Overview
Balance: 1.273230000000000003 Ether
Ether Value: $303.44 (@ $238.32/ETH)
Transactions: 605 txns
Token Tracker: CityCoin (CITY)
 Latest 25 txns From a total of 605 Transactions

TxHash Age From To Value [TxFee]
0xf93b208cb28683dc28b1818ccd79446e0d97c6f6b3e08ea5d3779bd71f45a48e41 days 8 hrs ago0x9bd2a277fb111cc0f0155e7b50ba7ef0e5c348f5  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100 Ether0.000088134
0x5b080c796e9a0ed8a15b62035bad17e6a4fab6bd2cf8ce28ae9e8bb5fe07e3b141 days 8 hrs ago0x9bd2a277fb111cc0f0155e7b50ba7ef0e5c348f5  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100 Ether0.000102823
0xe948887837f01edadcba042b0042c7895e7a9957a6e2004c5d45afc55a67b14541 days 8 hrs ago0x9bd2a277fb111cc0f0155e7b50ba7ef0e5c348f5  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100 Ether0.0000514115
0x602c7f0fd5282d8316de8e424ca95e9157da72e8a17ecd31dde68f97575d24e053 days 16 hrs ago0x702c4f24bd11c3851d4e2409628be7032f3b43c3  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100.002 Ether0.0001088527
0x5343ba3e21b80ec98db4c362d905a1060da2113859bbef935d59886105f3cb5855 days 10 hrs ago0x702c4f24bd11c3851d4e2409628be7032f3b43c3  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100 Ether0.000050479
0x3e0cc727ebd412a96e4b0a6fa2a1f21edfe16ca6077b73390959e4798676963d56 days 23 hrs ago0x02444b241a6f7dc4d0131bf499a6656d136ac494  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100 Ether0.000112929344
0xe4bed036206c5db54fff5ada43d7f2b75a0db81fe2b769a401499df96888611063 days 9 hrs ago0x702c4f24bd11c3851d4e2409628be7032f3b43c3  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100 Ether0.000151437
0x2e28aa6482cae78b4abea464bb67caed0fcb8de9fe9a26f7534ee49f0de2d47b68 days 8 hrs ago0x702c4f24bd11c3851d4e2409628be7032f3b43c3  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100.001 Ether0.000495105
0xe87647467ed28d95e33ff3d6583be1bf52b518b9fdb473e568069ad27e632ce768 days 8 hrs ago0x702c4f24bd11c3851d4e2409628be7032f3b43c3  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100.001 Ether0.0004455945
0x139ff0182b3c3941afe6da22d32de1832afca92a554496a9533f1b4c1bedd9ee68 days 8 hrs ago0x702c4f24bd11c3851d4e2409628be7032f3b43c3  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100 Ether0.000107992
0xf64fb315895a097486b4dd071f40a2aff3ddceab837daa3c36c74309a3b864ec68 days 8 hrs ago0x702c4f24bd11c3851d4e2409628be7032f3b43c3  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100.004 Ether0.000494785
0xc739922602034c3f7afef7d9c88ef3939162fa2fd33094f07b85ac2ece9fc56c68 days 8 hrs ago0x702c4f24bd11c3851d4e2409628be7032f3b43c3  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100.01 Ether0.00026542
0x82582a2218eebd6ea39103499ea3ce945875aa81889f8fc0efde13cf82d878d868 days 8 hrs ago0x702c4f24bd11c3851d4e2409628be7032f3b43c3  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100.001 Ether0.000485821781
0xb3be49e44d5603caa3ce18137b314f8e4977706abc44ff81aefdbe80114992f686 days 18 hrs ago0x709329dcc370898d0de55e9fc0160a0a4b971719  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100.001 Ether0.000138976
0x00bf7d5492eaafc39b85c7134024cb17a3b6e2532f0a0552f909a7f5d9ee77e488 days 18 hrs ago0x2e933dd349f63fa9f71163f4a2d0a1f00abed643  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100 Ether0.00028353
0x93082d331c4753c4066f74ac08ff5dc3a054de1ce52f8cb33a3ddaaff7017cdc91 days 8 hrs ago0x02444b241a6f7dc4d0131bf499a6656d136ac494  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100 Ether0.000050415
0x37ad122287d9729084ac4c7538510b2988a8bd62fef93dcb9763d1b8be83f697100 days 1 hr ago0x95096780efd48fa66483bc197677e89f37ca0cb5  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100 Ether0.000080994
0x16b0e804b439e3c4c577b265b1efeff67ef795de1eb2b0e79ef2f5edee99f35d100 days 1 hr ago0x02444b241a6f7dc4d0131bf499a6656d136ac494  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100.008 Ether0.000212336
0x5470fb29fcef9a5219fbe2556cb7eb46c42516936c0f165816d8a06183d2ca60100 days 1 hr ago0x02444b241a6f7dc4d0131bf499a6656d136ac494  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100.02 Ether0.000395828
0x87feaa6f1644949606e242c9160ce194eb6bd853c64ac5c01d7a5a23e1940c8b100 days 13 hrs ago0x709329dcc370898d0de55e9fc0160a0a4b971719  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100 Ether0.00050415
0x5691b87339e13983b1b1e2428c971008ce82d7f30b281874875e6974affda8f6100 days 23 hrs ago0x95096780efd48fa66483bc197677e89f37ca0cb5  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100.008 Ether0.000593742
0xc1983da77606eca14e09a7d5effd59e0c3c5cf7eeaf6b51def34ed654c517e66104 days 3 hrs ago0x02444b241a6f7dc4d0131bf499a6656d136ac494  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100.001 Ether0.0002987984
0x0e5d955d367dafbd46d666910b2828e0840ed1fe2163c09953ac6566183590ad104 days 3 hrs ago0x02444b241a6f7dc4d0131bf499a6656d136ac494  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100.001 Ether0.000414606
0x77324eaad3d8c1394f8c4799b7aeacf22481043ce23692087389487317dc0f93104 days 3 hrs ago0x02444b241a6f7dc4d0131bf499a6656d136ac494  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100 Ether0.0002122806
0xbc48adbadb350fe32d7085859de57dc55fcb6221fb8a0ff719f8f2653cfb01e3106 days 5 hrs ago0x401f5248dd9f71d2bb5566147a2abdecc78a3585  IN   0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100 Ether0.000252075
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 25 Internal Txns, Click Here To View More View All
ParentTxHash Block Age From To Value
0x3e0cc727ebd412a96e4b0a6fa2a1f21edfe16ca6077b73390959e4798676963d604311856 days 23 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100x02444b241a6f7dc4d0131bf499a6656d136ac4940.00097 Ether
0x139ff0182b3c3941afe6da22d32de1832afca92a554496a9533f1b4c1bedd9ee597613668 days 8 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100x702c4f24bd11c3851d4e2409628be7032f3b43c30.001 Ether
0xc739922602034c3f7afef7d9c88ef3939162fa2fd33094f07b85ac2ece9fc56c597608168 days 8 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100x02444b241a6f7dc4d0131bf499a6656d136ac4940.0097 Ether
0x37ad122287d9729084ac4c7538510b2988a8bd62fef93dcb9763d1b8be83f6975790695100 days 1 hr ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100x95096780efd48fa66483bc197677e89f37ca0cb50.008 Ether
0x16b0e804b439e3c4c577b265b1efeff67ef795de1eb2b0e79ef2f5edee99f35d5790527100 days 1 hr ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100x401f5248dd9f71d2bb5566147a2abdecc78a35850.00776 Ether
0x97cfaece3400f153845e515fa81071a157c7eebf29ae0b8b98acc7dc23e9d3075693265117 days 6 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100xe1811ec49f493afb1f4b42e3ef4a3b9d62d9a01b0.500996666666666666 Ether
0x97cfaece3400f153845e515fa81071a157c7eebf29ae0b8b98acc7dc23e9d3075693265117 days 6 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100x1e4f1275bb041586d7bec44d2e3e4f30e0da7ba40.500996666666666666 Ether
0x97cfaece3400f153845e515fa81071a157c7eebf29ae0b8b98acc7dc23e9d3075693265117 days 6 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100xd5d6301de62d82f461dc29824fc597d38d80c4240.500996666666666666 Ether
0x0954f30bd194a1c3626ce6894b63a6dd2704df0a3c03fef2e32b88f4b1f325545686091118 days 12 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100xa1349cde05c534e747dca402eab1c901121890d01 Ether
0xcea7938a90caf55982d0a642d29f15daea6b9a1a8a55810ecf95ccc827d8a79f5600167133 days 17 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100x41b818bc8edfba76ec66a21478e018f31c2a6e460.01 Ether
0xb0d8d8dc3637da3ecf7e667aa7d63d4a9038ae20a1a8f8bd3c0ed52a0278d3a15600167133 days 17 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100x41b818bc8edfba76ec66a21478e018f31c2a6e460.01 Ether
0x302f0c11eece0c4da3ece35d070ba99bfb2d4fd1487ef7d035bc31627a5f2fc95580770137 days 2 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100x2e6236591bfa37c683ce60d6cfde40396a114ff10.00388 Ether
0xc7abf8762d31a0455a5bbf84cfb32a8bfc4c9456063cc5e3490e64768391a8925556755141 days 6 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100xb7674eb5586c8f9997399fb6e0752e096998fc9a0.04753 Ether
0xf5ff7e2ffbca1ec9b96e74aac0c4f77d8076c0b907c93752965b98707e9b14555471012156 days 3 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100x8d0815976f89615041b699100b5b36370f34c60f0.0194 Ether
0x0e29a4d0d809902f69d4894338df0373afadc3d9c5f61ea1a993d456727157975457063158 days 13 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100x28d7050edbf47bd1650b76151581f36821df453d0.0097 Ether
0xa6bb7a12a6afafc84074835d2860a83d0d6743561601be762149443fae82ea575456879158 days 14 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100x91e89565a4623bef6bd37e88c97e8177ade9590d0.0025 Ether
0x08ae5ef090553418a6d632f51b56f4daeca4fb053997943bf32a908847493cdb5456542158 days 15 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100x1eb695d7575eda1f2c8a0aa6edf871b5fc73ea6d0.00776 Ether
0x7180a5ec3b778f1efd11bde78b43eded15c8a7ec9970e9727e5461d78bfdc5fc5364946173 days 22 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100xb327d112a560f832765a12c72451de40af3c2be20.0485 Ether
0x20b1517333ed47c0db0250fc9c7cff6947a85d2f7b7efc812a3535e13bc7f17b5309215183 days 6 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100x9efb8e49f97f36d6ecfd831286832b1eb91eaeb90.01 Ether
0xb23a347b9434580ae399f29de5f3f4190cf5c808b24c1a27b72834226188499a5309213183 days 6 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100x9efb8e49f97f36d6ecfd831286832b1eb91eaeb90.01 Ether
0xef0c3d3474c6342b7439c04fbd52af5e5125c449c21e1006b930e4ee117c98c75271720189 days 13 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100xe44d6941c70130881561ac96ab8113b06b3136450.007 Ether
0xac178f995a24d53fae4fc68ea10911bc5fe7f33a25f7401d0e7263985eb5a6285271710189 days 13 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100xe44d6941c70130881561ac96ab8113b06b3136450.005 Ether
0x81f0ba97eb51e89b0d85ee3104901cecb25d543a5b7f9d44c7a4bb2c6b7b21325271702189 days 13 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100xe44d6941c70130881561ac96ab8113b06b3136450.005 Ether
0xd112f6797bfa398399aa33344bf3733d1b58572253e777eb6a1108164b8f0acf5264220190 days 19 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100x3130259deedb3052e24fad9d5e1f490cb8cccaa00.0388 Ether
0xa2f1519702de46aa1a19692314e252a2bc1c5e1d930aca8a9a0d50a0822736775264215190 days 19 hrs ago0x4bdde1e9fbaef2579dd63e2abbf0be445ab93f100x3130259deedb3052e24fad9d5e1f490cb8cccaa00.03395 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: CityMayor
Compiler Text: v0.4.20+commit.3155dd80
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.19;

library SafeMath {

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
  	if (a == 0) {
  		return 0;
  	}
  	uint256 c = a * b;
  	assert(c / a == b);
  	return c;
  }

  /**
  * @dev Integer division of two numbers, truncating the quotient.
  */
 // we don't need "div"
/*  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;
  }
*/
  /**
  * @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
  	assert(b <= a);
  	return a - b;
  }

  /**
  * @dev Adds two numbers, throws on overflow.
  */
  function add(uint256 a, uint256 b) internal pure returns (uint256) {
  	uint256 c = a + b;
  	assert(c >= a);
  	return c;
  }
}


contract CityMayor {

	using SafeMath for uint256;

	//
	// ERC-20
	//

   	string public name = "CityCoin";
   	string public symbol = "CITY";
   	uint8 public decimals = 0;

	mapping(address => uint256) balances;

	event Approval(address indexed owner, address indexed spender, uint256 value);
	event Transfer(address indexed from, address indexed to, uint256 value);

	/**
	* @dev total number of tokens in existence
	*/
	uint256 totalSupply_;
	function totalSupply() public view returns (uint256) {
		return totalSupply_;
	}

	/**
	* @dev transfer token for a specified address
	* @param _to The address to transfer to.
	* @param _value The amount to be transferred.
	*/
	function transfer(address _to, uint256 _value) public returns (bool) {
		require(_to != address(0));
		require(_value <= balances[msg.sender]);

		// SafeMath.sub will throw if there is not enough balance.
		balances[msg.sender] = balances[msg.sender].sub(_value);
		balances[_to] = balances[_to].add(_value);
		Transfer(msg.sender, _to, _value);
		return true;
	}

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

	mapping (address => mapping (address => uint256)) internal allowed;


	/**
	* @dev Transfer tokens from one address to another
	* @param _from address The address which you want to send tokens from
	* @param _to address The address which you want to transfer to
	* @param _value uint256 the amount of tokens to be transferred
	*/
	function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
		require(_to != address(0));
		require(_value <= balances[_from]);
		require(_value <= allowed[_from][msg.sender]);

		balances[_from] = balances[_from].sub(_value);
		balances[_to] = balances[_to].add(_value);
		allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
		Transfer(_from, _to, _value);
		return true;
	}

	/**
	* @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
	*
	* Beware that changing an allowance with this method brings the risk that someone may use both the old
	* and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
	* race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
	* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
	* @param _spender The address which will spend the funds.
	* @param _value The amount of tokens to be spent.
	*/
	function approve(address _spender, uint256 _value) public returns (bool) {
		allowed[msg.sender][_spender] = _value;
		Approval(msg.sender, _spender, _value);
		return true;
	}

	/**
	* @dev Function to check the amount of tokens that an owner allowed to a spender.
	* @param _owner address The address which owns the funds.
	* @param _spender address The address which will spend the funds.
	* @return A uint256 specifying the amount of tokens still available for the spender.
	*/
	function allowance(address _owner, address _spender) public view returns (uint256) {
		return allowed[_owner][_spender];
	}

	/**
	* @dev Increase the amount of tokens that an owner allowed to a spender.
	*
	* approve should be called when allowed[_spender] == 0. To increment
	* allowed value is better to use this function to avoid 2 calls (and wait until
	* the first transaction is mined)
	* From MonolithDAO Token.sol
	* @param _spender The address which will spend the funds.
	* @param _addedValue The amount of tokens to increase the allowance by.
	*/
	function increaseApproval(address _spender, uint _addedValue) public returns (bool) {
		allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
		Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
		return true;
	}

	/**
	* @dev Decrease the amount of tokens that an owner allowed to a spender.
	*
	* approve should be called when allowed[_spender] == 0. To decrement
	* allowed value is better to use this function to avoid 2 calls (and wait until
	* the first transaction is mined)
	* From MonolithDAO Token.sol
	* @param _spender The address which will spend the funds.
	* @param _subtractedValue The amount of tokens to decrease the allowance by.
	*/
	function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) {
		uint oldValue = allowed[msg.sender][_spender];
		if (_subtractedValue > oldValue) {
			allowed[msg.sender][_spender] = 0;
			} else {
				allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
			}
			Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
			return true;
		}

   	//
   	// Game Meta values
   	//

   	address public unitedNations; // the UN organisation

   	uint16 public MAX_CITIES = 5000; // maximum amount of cities in our world
   	uint256 public UNITED_NATIONS_FUND = 5000000; // initial funding for the UN
   	uint256 public ECONOMY_BOOST = 5000; // minted CITYs when a new city is being bought 

   	uint256 public BUY_CITY_FEE = 3; // UN fee (% of ether) to buy a city from someon / 100e
   	uint256 public ECONOMY_BOOST_TRADE = 100; // _immutable_ gift (in CITY) from the UN when a city is traded (shared among the cities of the relevant country)

   	uint256 public MONUMENT_UN_FEE = 3; // UN fee (CITY) to buy a monument
   	uint256 public MONUMENT_CITY_FEE = 3; // additional fee (CITY) to buy a monument (shared to the monument's city)

   	//
   	// Game structures
   	//

   	struct country {
   		string name;
   		uint16[] cities;
   	}

   	struct city {
   		string name;
   		uint256 price;
   		address owner;

   		uint16 countryId;
   		uint256[] monuments;

   		bool buyable; // set to true when it can be bought

   		uint256 last_purchase_price;
   	}

   	struct monument {
   		string name;
   		uint256 price;
   		address owner;

   		uint16 cityId;
   	}

   	city[] public cities; // cityId -> city
   	country[] public countries; // countryId -> country
   	monument[] public monuments; // monumentId -> monument

   	// total amount of offers (escrowed money)
	uint256 public totalOffer;

   	//
   	// Game events
   	//


	event NewCity(uint256 cityId, string name, uint256 price, uint16 countryId);
	event NewMonument(uint256 monumentId, string name, uint256 price, uint16 cityId);

	event CityForSale(uint16 cityId, uint256 price);
	event CitySold(uint16 cityId, uint256 price, address previousOwner, address newOwner, uint256 offerId);

	event MonumentSold(uint256 monumentId, uint256 price);

   	// 
   	// Admin stuff
   	//

   	// constructor
   	function CityMayor() public {
   		unitedNations = msg.sender;
   		balances[unitedNations] = UNITED_NATIONS_FUND; // initial funding for the united nations
   		uint256 perFounder = 500000;
   		balances[address(0xe1811eC49f493afb1F4B42E3Ef4a3B9d62d9A01b)] = perFounder; // david
   		balances[address(0x1E4F1275bB041586D7Bec44D2E3e4F30e0dA7Ba4)] = perFounder; // simon
   		balances[address(0xD5d6301dE62D82F461dC29824FC597D38d80c424)] = perFounder; // eric
   		// total supply updated
   		totalSupply_ = UNITED_NATIONS_FUND + 3 * perFounder;
   	}

   	// this function is used to let admins give cities back to owners of previous contracts
   	function AdminBuyForSomeone(uint16 _cityId, address _owner) public {
   		// admin only
   		require(msg.sender == unitedNations);
	   	// fetch
	   	city memory fetchedCity = cities[_cityId];
	   	// requires
		require(fetchedCity.buyable == true);
		require(fetchedCity.owner == 0x0); 
	   	// transfer ownership
	   	cities[_cityId].owner = _owner;
	   	// update city metadata
	   	cities[_cityId].buyable = false;
	   	cities[_cityId].last_purchase_price = fetchedCity.price;
	   	// increase economy of region according to ECONOMY_BOOST
	   	uint16[] memory fetchedCities = countries[fetchedCity.countryId].cities;
	   	uint256 perCityBoost = ECONOMY_BOOST / fetchedCities.length;
	   	for(uint16 ii = 0; ii < fetchedCities.length; ii++){
	   		address _to = cities[fetchedCities[ii]].owner;
	   		if(_to != 0x0) { // MINT only if address exists
	   			balances[_to] = balances[_to].add(perCityBoost);
	   			totalSupply_ += perCityBoost; // update the total supply
	   		}
	   	}
	   	// event
	   	CitySold(_cityId, fetchedCity.price, 0x0, _owner, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff);	
   	}

   	// this function allows to make an offer from someone else
	function makeOfferForCityForSomeone(uint16 _cityId, uint256 _price, address from) public payable {
		// only for admins
		require(msg.sender == unitedNations);
		// requires
		require(cities[_cityId].owner != 0x0);
		require(_price > 0);
		require(msg.value >= _price);
		require(cities[_cityId].owner != from);
		// add the offer
		uint256 lastId = offers.push(offer(_cityId, _price, from)) - 1;
		// increment totalOffer
		totalOffer = totalOffer.add(_price);
		// event
		OfferForCity(lastId, _cityId, _price, from, cities[_cityId].owner);
	}

	// withdrawing funds
	function adminWithdraw(uint256 _amount) public {
		require(msg.sender == 0xD5d6301dE62D82F461dC29824FC597D38d80c424 || msg.sender == 0x1E4F1275bB041586D7Bec44D2E3e4F30e0dA7Ba4 || msg.sender == 0xe1811eC49f493afb1F4B42E3Ef4a3B9d62d9A01b || msg.sender == unitedNations);
		// do not touch the escrowed money
		uint256 totalAvailable = this.balance.sub(totalOffer);
		if(_amount > totalAvailable) {
			_amount = totalAvailable;
		}
		// divide the amount for founders
		uint256 perFounder = _amount / 3;
		address(0xD5d6301dE62D82F461dC29824FC597D38d80c424).transfer(perFounder); // eric
		address(0x1E4F1275bB041586D7Bec44D2E3e4F30e0dA7Ba4).transfer(perFounder); // simon
		address(0xe1811eC49f493afb1F4B42E3Ef4a3B9d62d9A01b).transfer(perFounder); // david
	}

	//
	// Admin adding stuff
	//

	// we need to add a country before we can add a city
	function adminAddCountry(string _name) public returns (uint256) {
		// requires
		require(msg.sender == unitedNations);
		// add country
		uint256 lastId = countries.push(country(_name, new uint16[](0))) - 1; 
		//
		return lastId;
	}
	// adding a city will mint ECONOMY_BOOST citycoins (country must exist)
	function adminAddCity(string _name, uint256 _price, uint16 _countryId) public returns (uint256) {
		// requires
		require(msg.sender == unitedNations);
		require(cities.length < MAX_CITIES);
		// add city
		uint256 lastId = cities.push(city(_name, _price, 0, _countryId, new uint256[](0), true, 0)) - 1;
		countries[_countryId].cities.push(uint16(lastId));
		// event
		NewCity(lastId, _name, _price, _countryId);
		//
		return lastId;
	}

	// adding a monument (city must exist)
	function adminAddMonument(string _name, uint256 _price, uint16 _cityId) public returns (uint256) {
		// requires
		require(msg.sender == unitedNations);
		require(_price > 0);
		// add monument
		uint256 lastId = monuments.push(monument(_name, _price, 0, _cityId)) - 1;
		cities[_cityId].monuments.push(lastId);
		// event
		NewMonument(lastId, _name, _price, _cityId);
		//
		return lastId;
	}

	// Edit a city if it hasn't been bought yet
	function adminEditCity(uint16 _cityId, string _name, uint256 _price, address _owner) public {
		// requires
		require(msg.sender == unitedNations);
		require(cities[_cityId].owner == 0x0);
		//
		cities[_cityId].name = _name;
		cities[_cityId].price = _price;
		cities[_cityId].owner = _owner;
	}

	// 
	// Buy and manage a city
	//

	function buyCity(uint16 _cityId) public payable {
		// fetch
		city memory fetchedCity = cities[_cityId];
		// requires
		require(fetchedCity.buyable == true);
		require(fetchedCity.owner == 0x0); 
		require(msg.value >= fetchedCity.price);
		// transfer ownership
		cities[_cityId].owner = msg.sender;
		// update city metadata
		cities[_cityId].buyable = false;
		cities[_cityId].last_purchase_price = fetchedCity.price;
		// increase economy of region according to ECONOMY_BOOST
		uint16[] memory fetchedCities = countries[fetchedCity.countryId].cities;
		uint256 perCityBoost = ECONOMY_BOOST / fetchedCities.length;
		for(uint16 ii = 0; ii < fetchedCities.length; ii++){
			address _to = cities[fetchedCities[ii]].owner;
			if(_to != 0x0) { // MINT only if address exists
				balances[_to] = balances[_to].add(perCityBoost);
				totalSupply_ += perCityBoost; // update the total supply
			}
		}
		// event
		CitySold(_cityId, fetchedCity.price, 0x0, msg.sender, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff);
	}

	//
	// Economy boost:
	// this is called by functions below that will "buy a city from someone else"
	// it will draw ECONOMY_BOOST_TRADE CITYs from the UN funds and split them in the relevant country
	//

	function economyBoost(uint16 _countryId, uint16 _excludeCityId) private {
		if(balances[unitedNations] < ECONOMY_BOOST_TRADE) {
			return; // unless the UN has no more funds
		}
		uint16[] memory fetchedCities = countries[_countryId].cities;
		if(fetchedCities.length == 1) {
			return;
		}
		uint256 perCityBoost = ECONOMY_BOOST_TRADE / (fetchedCities.length - 1); // excluding the bought city
		for(uint16 ii = 0; ii < fetchedCities.length; ii++){
			address _to = cities[fetchedCities[ii]].owner;
			if(_to != 0x0 && fetchedCities[ii] != _excludeCityId) { // only if address exists AND not the current city
				balances[_to] = balances[_to].add(perCityBoost);
				balances[unitedNations] -= perCityBoost;
			}
		}
	}

	//
	// Sell a city
	//

	// step 1: owner sets buyable = true
	function sellCityForEther(uint16 _cityId, uint256 _price) public {
		// requires
		require(cities[_cityId].owner == msg.sender);
		// for sale
		cities[_cityId].price = _price;
		cities[_cityId].buyable = true;
		// event
		CityForSale(_cityId, _price);
	}

	event CityNotForSale(uint16 cityId);

	// step 2: owner can always cancel 
	function cancelSellCityForEther(uint16 _cityId) public {
		// requires
		require(cities[_cityId].owner == msg.sender);
		//
		cities[_cityId].buyable = false;
		// event
		CityNotForSale(_cityId);
	}

	// step 3: someone else accepts the offer
	function resolveSellCityForEther(uint16 _cityId) public payable {
		// fetch
		city memory fetchedCity = cities[_cityId];
		// requires
		require(fetchedCity.buyable == true);
		require(msg.value >= fetchedCity.price);
		require(fetchedCity.owner != msg.sender);
		// calculate the fee
		uint256 fee = BUY_CITY_FEE.mul(fetchedCity.price) / 100;
		// pay the price
		address previousOwner =	fetchedCity.owner;
		previousOwner.transfer(fetchedCity.price.sub(fee));
		// transfer of ownership
		cities[_cityId].owner = msg.sender;
		// update metadata
		cities[_cityId].buyable = false;
		cities[_cityId].last_purchase_price = fetchedCity.price;
		// increase economy of region
		economyBoost(fetchedCity.countryId, _cityId);
		// event
		CitySold(_cityId, fetchedCity.price, previousOwner, msg.sender, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff);
	}

	//
	// Make an offer for a city
	//

	struct offer {
		uint16 cityId;
		uint256 price;
		address from;
	}

	offer[] public offers;

	event OfferForCity(uint256 offerId, uint16 cityId, uint256 price, address offererAddress, address owner);
	event CancelOfferForCity(uint256 offerId);

	// 1. we make an offer for some cityId that we don't own yet (we deposit money in escrow)
	function makeOfferForCity(uint16 _cityId, uint256 _price) public payable {
		// requires
		require(cities[_cityId].owner != 0x0);
		require(_price > 0);
		require(msg.value >= _price);
		require(cities[_cityId].owner != msg.sender);
		// add the offer
		uint256 lastId = offers.push(offer(_cityId, _price, msg.sender)) - 1;
		// increment totalOffer
		totalOffer = totalOffer.add(_price);
		// event
		OfferForCity(lastId, _cityId, _price, msg.sender, cities[_cityId].owner);
	}

	// 2. we cancel it (getting back our money)
	function cancelOfferForCity(uint256 _offerId) public {
		// fetch
		offer memory offerFetched = offers[_offerId];
		// requires
		require(offerFetched.from == msg.sender);
		// refund
		msg.sender.transfer(offerFetched.price);
		// decrement totaloffer
		totalOffer = totalOffer.sub(offerFetched.price);
		// remove offer
		offers[_offerId].cityId = 0;
		offers[_offerId].price = 0;
		offers[_offerId].from = 0x0;
		// event
		CancelOfferForCity(_offerId);
	}

	// 3. the city owner can accept the offer
	function acceptOfferForCity(uint256 _offerId, uint16 _cityId, uint256 _price) public {
		// fetch
		city memory fetchedCity = cities[_cityId];
		offer memory offerFetched = offers[_offerId];
		// requires
		require(offerFetched.cityId == _cityId);
		require(offerFetched.from != 0x0);
		require(offerFetched.from != msg.sender);
		require(offerFetched.price == _price);
		require(fetchedCity.owner == msg.sender);
		// compute the fee
		uint256 fee = BUY_CITY_FEE.mul(_price) / 100;
		// transfer the escrowed money
		uint256 priceSubFee = _price.sub(fee);
		cities[_cityId].owner.transfer(priceSubFee);
		// decrement tracked amount of escrowed ethers
		totalOffer = totalOffer.sub(priceSubFee);
		// transfer of ownership
		cities[_cityId].owner = offerFetched.from;
		// update metadata
		cities[_cityId].last_purchase_price = _price;
		cities[_cityId].buyable = false; // in case it was also set to be purchasable
		// increase economy of region 
		economyBoost(fetchedCity.countryId, _cityId);
		// event
		CitySold(_cityId, _price, msg.sender, offerFetched.from, _offerId);
		// remove offer
		offers[_offerId].cityId = 0;
		offers[_offerId].price = 0;
		offers[_offerId].from = 0x0;
	}

	//
	// in-game use of CITYs
	//

	/* 
   	uint256 public MONUMENT_UN_FEE = 3; // UN fee (CITY) to buy a monument
   	uint256 public MONUMENT_CITY_FEE = 3; // additional fee (CITY) to buy a monument (shared to the monument's city)
   	*/

	// anyone can buy a monument from someone else (with CITYs)
	function buyMonument(uint256 _monumentId, uint256 _price) public {
		// fetch
		monument memory fetchedMonument = monuments[_monumentId];
		// requires
		require(fetchedMonument.price > 0);
		require(fetchedMonument.price == _price);
		require(balances[msg.sender] >= _price);
		require(fetchedMonument.owner != msg.sender);
		// pay first!
		balances[msg.sender] = balances[msg.sender].sub(_price);
		// compute fee
		uint256 UN_fee = MONUMENT_UN_FEE.mul(_price) / 100;
		uint256 city_fee = MONUMENT_CITY_FEE.mul(_price) / 100;
		// previous owner gets paid
		uint256 toBePaid = _price.sub(UN_fee);
		toBePaid = toBePaid.sub(city_fee);
		balances[fetchedMonument.owner] = balances[fetchedMonument.owner].add(toBePaid);
		// UN gets a fee
		balances[unitedNations] = balances[unitedNations].add(UN_fee);
		// city gets a fee
		address cityOwner = cities[fetchedMonument.cityId].owner;
		balances[cityOwner] = balances[cityOwner].add(city_fee);
		// transfer of ownership
		monuments[_monumentId].owner = msg.sender;
		// price increase of the monument
		monuments[_monumentId].price = monuments[_monumentId].price.mul(2);
		// event
		MonumentSold(_monumentId, _price);
	}

}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"countries","outputs":[{"name":"name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"monuments","outputs":[{"name":"name","type":"string"},{"name":"price","type":"uint256"},{"name":"owner","type":"address"},{"name":"cityId","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"BUY_CITY_FEE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"UNITED_NATIONS_FUND","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ECONOMY_BOOST_TRADE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"cities","outputs":[{"name":"name","type":"string"},{"name":"price","type":"uint256"},{"name":"owner","type":"address"},{"name":"countryId","type":"uint16"},{"name":"buyable","type":"bool"},{"name":"last_purchase_price","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"unitedNations","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"adminWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"MONUMENT_UN_FEE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_monumentId","type":"uint256"},{"name":"_price","type":"uint256"}],"name":"buyMonument","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_cityId","type":"uint16"}],"name":"resolveSellCityForEther","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"offers","outputs":[{"name":"cityId","type":"uint16"},{"name":"price","type":"uint256"},{"name":"from","type":"address"}],"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":"_cityId","type":"uint16"},{"name":"_price","type":"uint256"}],"name":"sellCityForEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_cityId","type":"uint16"}],"name":"cancelSellCityForEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_cityId","type":"uint16"}],"name":"buyCity","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"},{"name":"_price","type":"uint256"},{"name":"_countryId","type":"uint16"}],"name":"adminAddCity","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"MAX_CITIES","outputs":[{"name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ECONOMY_BOOST","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","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":"_offerId","type":"uint256"}],"name":"cancelOfferForCity","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"},{"name":"_price","type":"uint256"},{"name":"_cityId","type":"uint16"}],"name":"adminAddMonument","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalOffer","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MONUMENT_CITY_FEE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"}],"name":"adminAddCountry","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_offerId","type":"uint256"},{"name":"_cityId","type":"uint16"},{"name":"_price","type":"uint256"}],"name":"acceptOfferForCity","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_cityId","type":"uint16"},{"name":"_owner","type":"address"}],"name":"AdminBuyForSomeone","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_cityId","type":"uint16"},{"name":"_price","type":"uint256"},{"name":"from","type":"address"}],"name":"makeOfferForCityForSomeone","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_cityId","type":"uint16"},{"name":"_price","type":"uint256"}],"name":"makeOfferForCity","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_cityId","type":"uint16"},{"name":"_name","type":"string"},{"name":"_price","type":"uint256"},{"name":"_owner","type":"address"}],"name":"adminEditCity","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","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"},{"anonymous":false,"inputs":[{"indexed":false,"name":"cityId","type":"uint256"},{"indexed":false,"name":"name","type":"string"},{"indexed":false,"name":"price","type":"uint256"},{"indexed":false,"name":"countryId","type":"uint16"}],"name":"NewCity","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"monumentId","type":"uint256"},{"indexed":false,"name":"name","type":"string"},{"indexed":false,"name":"price","type":"uint256"},{"indexed":false,"name":"cityId","type":"uint16"}],"name":"NewMonument","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"cityId","type":"uint16"},{"indexed":false,"name":"price","type":"uint256"}],"name":"CityForSale","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"cityId","type":"uint16"},{"indexed":false,"name":"price","type":"uint256"},{"indexed":false,"name":"previousOwner","type":"address"},{"indexed":false,"name":"newOwner","type":"address"},{"indexed":false,"name":"offerId","type":"uint256"}],"name":"CitySold","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"monumentId","type":"uint256"},{"indexed":false,"name":"price","type":"uint256"}],"name":"MonumentSold","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"cityId","type":"uint16"}],"name":"CityNotForSale","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"offerId","type":"uint256"},{"indexed":false,"name":"cityId","type":"uint16"},{"indexed":false,"name":"price","type":"uint256"},{"indexed":false,"name":"offererAddress","type":"address"},{"indexed":false,"name":"owner","type":"address"}],"name":"OfferForCity","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"offerId","type":"uint256"}],"name":"CancelOfferForCity","type":"event"}]

  Contract Creation Code Switch To Opcodes View
606060405260408051908101604052600881527f43697479436f696e000000000000000000000000000000000000000000000000602082015260009080516200004d929160200190620001c4565b5060408051908101604052600481527f43495459000000000000000000000000000000000000000000000000000000006020820152600190805162000097929160200190620001c4565b506002805460ff191690556006805460a060020a61ffff0219167513880000000000000000000000000000000000000000179055624c4b40600755611388600855600360098190556064600a55600b819055600c553415620000f857600080fd5b60068054600160a060020a03191633600160a060020a039081169190911791829055600754911660009081526003602052604081208290556207a1207f2a63bad538ddfd395ab8dde62aff1acbfa309d3fb83ed3c9561e48c9de00f0188190557fa15da8895dd182a72e987ecbc3bb37499548bcf2a89927ee3bec9d96511d77e581905573d5d6301de62d82f461dc29824fc597d38d80c4249091527f51ab90ea3a05b09d43d4d4be3921347ba395ef247be34b90afb47cc8332a5b00556216e3600160045562000269565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200020757805160ff191683800117855562000237565b8280016001018555821562000237579182015b82811115620002375782518255916020019190600101906200021a565b506200024592915062000249565b5090565b6200026691905b8082111562000245576000815560010162000250565b90565b613be180620002796000396000f3006060604052600436106101e25763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146101e757806308e9daa514610271578063095ea7b31461030f57806318160ddd1461034557806323b872dd1461036a578063313ce5671461039257806337f83291146103bb5780634a87e08a1461047c5780634c34d7e91461048f5780635a768e4a146104a257806366188463146104b55780636a51b918146104d75780636e2c10a1146105a957806370a08231146105d85780637c5b4a37146105f757806382b57b961461060f578063839acf14146106225780638973e3161461063b5780638a72ea6a1461064a57806395d89b411461069257806396dbad1e146106a55780639e65a03a146106c2578063a0bde945146106dc578063a25fc8dc146106eb578063a2741bdb14610747578063a27c175614610771578063a9059cbb14610784578063ae93e513146107a6578063b2bdc6b3146107bc578063bd1de90014610818578063d02e8f701461082b578063d73dd6231461083e578063db5a277814610860578063dc1c1389146108b1578063dd62ed3e146108d1578063e3b55276146108f6578063e6c89d4a1461091c578063ee5845cc1461093a578063f93e2d311461094c575b600080fd5b34156101f257600080fd5b6101fa6109b6565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561023657808201518382015260200161021e565b50505050905090810190601f1680156102635780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561027c57600080fd5b610287600435610a54565b604051602080825282546002600019610100600184161502019091160490820181905281906040820190849080156103005780601f106102d557610100808354040283529160200191610300565b820191906000526020600020905b8154815290600101906020018083116102e357829003601f168201915b50509250505060405180910390f35b341561031a57600080fd5b610331600160a060020a0360043516602435610a77565b604051901515815260200160405180910390f35b341561035057600080fd5b610358610ae3565b60405190815260200160405180910390f35b341561037557600080fd5b610331600160a060020a0360043581169060243516604435610aea565b341561039d57600080fd5b6103a5610c6c565b60405160ff909116815260200160405180910390f35b34156103c657600080fd5b6103d1600435610c75565b60405160208101849052600160a060020a038316604082015261ffff821660608201526080808252855460026000196101006001841615020190911604908201819052819060a08201908790801561046a5780601f1061043f5761010080835404028352916020019161046a565b820191906000526020600020905b81548152906001019060200180831161044d57829003601f168201915b50509550505050505060405180910390f35b341561048757600080fd5b610358610cba565b341561049a57600080fd5b610358610cc0565b34156104ad57600080fd5b610358610cc6565b34156104c057600080fd5b610331600160a060020a0360043516602435610ccc565b34156104e257600080fd5b6104ed600435610dc8565b60405160208101869052600160a060020a038516604082015261ffff84166060820152821515608082015260a0810182905260c0808252875460026000196101006001841615020190911604908201819052819060e0820190899080156105955780601f1061056a57610100808354040283529160200191610595565b820191906000526020600020905b81548152906001019060200180831161057857829003601f168201915b505097505050505050505060405180910390f35b34156105b457600080fd5b6105bc610e1e565b604051600160a060020a03909116815260200160405180910390f35b34156105e357600080fd5b610358600160a060020a0360043516610e2d565b341561060257600080fd5b61060d600435610e48565b005b341561061a57600080fd5b610358610fc7565b341561062d57600080fd5b61060d600435602435610fcd565b61060d61ffff600435166113da565b341561065557600080fd5b61066060043561173b565b60405161ffff90931683526020830191909152600160a060020a03166040808301919091526060909101905180910390f35b341561069d57600080fd5b6101fa61177a565b34156106b057600080fd5b61060d61ffff600435166024356117e5565b34156106cd57600080fd5b61060d61ffff600435166118cc565b61060d61ffff60043516611982565b34156106f657600080fd5b61035860046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650508435946020013561ffff169350611dcf92505050565b341561075257600080fd5b61075a61206b565b60405161ffff909116815260200160405180910390f35b341561077c57600080fd5b61035861207c565b341561078f57600080fd5b610331600160a060020a0360043516602435612082565b34156107b157600080fd5b61060d60043561217d565b34156107c757600080fd5b61035860046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650508435946020013561ffff16935061231992505050565b341561082357600080fd5b6103586124c0565b341561083657600080fd5b6103586124c6565b341561084957600080fd5b610331600160a060020a03600435166024356124cc565b341561086b57600080fd5b61035860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061257095505050505050565b34156108bc57600080fd5b61060d60043561ffff60243516604435612626565b34156108dc57600080fd5b610358600160a060020a0360043581169060243516612aea565b341561090157600080fd5b61060d61ffff60043516600160a060020a0360243516612b15565b61060d61ffff60043516602435600160a060020a0360443516612f6e565b61060d61ffff60043516602435613170565b341561095757600080fd5b61060d6004803561ffff169060446024803590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505084359460200135600160a060020a0316935061335692505050565b60008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a4c5780601f10610a2157610100808354040283529160200191610a4c565b820191906000526020600020905b815481529060010190602001808311610a2f57829003601f168201915b505050505081565b600e805482908110610a6257fe5b60009182526020909120600290910201905081565b600160a060020a03338116600081815260056020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b6004545b90565b6000600160a060020a0383161515610b0157600080fd5b600160a060020a038416600090815260036020526040902054821115610b2657600080fd5b600160a060020a0380851660009081526005602090815260408083203390941683529290522054821115610b5957600080fd5b600160a060020a038416600090815260036020526040902054610b82908363ffffffff61345916565b600160a060020a038086166000908152600360205260408082209390935590851681522054610bb7908363ffffffff61346b16565b600160a060020a03808516600090815260036020908152604080832094909455878316825260058152838220339093168252919091522054610bff908363ffffffff61345916565b600160a060020a03808616600081815260056020908152604080832033861684529091529081902093909355908516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b60025460ff1681565b600f805482908110610c8357fe5b600091825260209091206003909102016001810154600282015491925090600160a060020a0381169060a060020a900461ffff1684565b60095481565b60075481565b600a5481565b600160a060020a03338116600090815260056020908152604080832093861683529290529081205480831115610d2957600160a060020a033381166000908152600560209081526040808320938816835292905290812055610d60565b610d39818463ffffffff61345916565b600160a060020a033381166000908152600560209081526040808320938916835292905220555b600160a060020a0333811660008181526005602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a3600191505b5092915050565b600d805482908110610dd657fe5b6000918252602090912060069091020160018101546002820154600483015460058401549394509192600160a060020a0382169260a060020a90920461ffff169160ff169086565b600654600160a060020a031681565b600160a060020a031660009081526003602052604090205490565b60008073d5d6301de62d82f461dc29824fc597d38d80c424600160a060020a0333161480610e925750731e4f1275bb041586d7bec44d2e3e4f30e0da7ba4600160a060020a033316145b80610eb9575073e1811ec49f493afb1f4b42e3ef4a3b9d62d9a01b600160a060020a033316145b80610ed2575060065433600160a060020a039081169116145b1515610edd57600080fd5b601054610efb90600160a060020a033016319063ffffffff61345916565b915081831115610f09578192505b506003820473d5d6301de62d82f461dc29824fc597d38d80c4246108fc82150282604051600060405180830381858888f193505050501515610f4a57600080fd5b731e4f1275bb041586d7bec44d2e3e4f30e0da7ba481156108fc0282604051600060405180830381858888f193505050501515610f8657600080fd5b73e1811ec49f493afb1f4b42e3ef4a3b9d62d9a01b81156108fc0282604051600060405180830381858888f193505050501515610fc257600080fd5b505050565b600b5481565b610fd56136a0565b600080600080600f87815481101515610fea57fe5b906000526020600020906003020160806040519081016040529081600082018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561109d5780601f106110725761010080835404028352916020019161109d565b820191906000526020600020905b81548152906001019060200180831161108057829003601f168201915b50505091835250506001820154602080830191909152600290920154600160a060020a038116604083015260a060020a900461ffff16606090910152909550600090860151116110ec57600080fd5b858560200151146110fc57600080fd5b600160a060020a0333166000908152600360205260409020548690101561112257600080fd5b33600160a060020a03168560400151600160a060020a0316141561114557600080fd5b600160a060020a03331660009081526003602052604090205461116e908763ffffffff61345916565b600160a060020a033316600090815260036020526040902055600b5460649061119d908863ffffffff61348116565b8115156111a657fe5b04935060646111c087600c5461348190919063ffffffff16565b8115156111c957fe5b0492506111dc868563ffffffff61345916565b91506111ee828463ffffffff61345916565b915061122382600360008860400151600160a060020a031681526020810191909152604001600020549063ffffffff61346b16565b600360008760400151600160a060020a0390811682526020808301939093526040918201600090812094909455600654168352600390915290205461126e908563ffffffff61346b16565b600654600160a060020a0316600090815260036020526040902055600d606086015161ffff168154811015156112a057fe5b6000918252602080832060026006909302019190910154600160a060020a031680835260039091526040909120549091506112e1908463ffffffff61346b16565b600160a060020a038216600090815260036020526040902055600f80543391908990811061130b57fe5b906000526020600020906003020160020160006101000a815481600160a060020a030219169083600160a060020a031602179055506113746002600f8981548110151561135457fe5b90600052602060002090600302016001015461348190919063ffffffff16565b600f80548990811061138257fe5b9060005260206000209060030201600101819055507f7c9ad11aa27b57eb5eea52d3d9a74277b8454eeef2c3aa9e999d882267674e99878760405191825260208201526040908101905180910390a150505050505050565b6113e26136cf565b600080600d8461ffff168154811015156113f857fe5b906000526020600020906006020160e06040519081016040529081600082018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114ab5780601f10611480576101008083540402835291602001916114ab565b820191906000526020600020905b81548152906001019060200180831161148e57829003601f168201915b505050918352505060018201546020808301919091526002830154600160a060020a03811660408085019190915260a060020a90910461ffff16606084015260038401805460809094019390929091828202909101905190810160405280929190818152602001828054801561154057602002820191906000526020600020905b81548152602001906001019080831161152c575b5050509183525050600482015460ff1615156020820152600590910154604090910152925060a0830151151560011461157857600080fd5b826020015134101561158957600080fd5b33600160a060020a03168360400151600160a060020a031614156115ac57600080fd5b60646115c584602001516009549063ffffffff61348116565b8115156115ce57fe5b0491508260400151905080600160a060020a03166108fc6115fa8486602001519063ffffffff61345916565b9081150290604051600060405180830381858888f19350505050151561161f57600080fd5b33600d8561ffff1681548110151561163357fe5b600091825260208220600691909102016002018054600160a060020a031916600160a060020a039390931692909217909155600d805461ffff871690811061167757fe5b906000526020600020906006020160040160006101000a81548160ff0219169083151502179055508260200151600d805461ffff87169081106116b657fe5b9060005260206000209060060201600501819055506116d98360600151856134ac565b600080516020613b96833981519152848460200151833360001960405161ffff90951685526020850193909352600160a060020a0391821660408086019190915291166060840152608083019190915260a0909101905180910390a150505050565b601180548290811061174957fe5b600091825260209091206003909102018054600182015460029092015461ffff9091169250600160a060020a031683565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a4c5780601f10610a2157610100808354040283529160200191610a4c565b33600160a060020a0316600d8361ffff1681548110151561180257fe5b6000918252602090912060026006909202010154600160a060020a03161461182957600080fd5b80600d8361ffff1681548110151561183d57fe5b9060005260206000209060060201600101819055506001600d8361ffff1681548110151561186757fe5b60009182526020909120600690910201600401805460ff19169115159190911790557f0b986d5d004281c772a464f4eacd47239e3226bb5d8d17e69f5e37f5ddb7e654828260405161ffff909216825260208201526040908101905180910390a15050565b33600160a060020a0316600d8261ffff168154811015156118e957fe5b6000918252602090912060026006909202010154600160a060020a03161461191057600080fd5b6000600d8261ffff1681548110151561192557fe5b60009182526020909120600690910201600401805460ff19169115159190911790557f3c0759c341f371c2750cb2ceeeb6ec99ea2f1c90c2334b005ed637525c7afc5c8160405161ffff909116815260200160405180910390a150565b61198a6136cf565b611992613719565b6000806000600d8661ffff168154811015156119aa57fe5b906000526020600020906006020160e06040519081016040529081600082018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a5d5780601f10611a3257610100808354040283529160200191611a5d565b820191906000526020600020905b815481529060010190602001808311611a4057829003601f168201915b505050918352505060018201546020808301919091526002830154600160a060020a03811660408085019190915260a060020a90910461ffff166060840152600384018054608090940193909290918282029091019051908101604052809291908181526020018280548015611af257602002820191906000526020600020905b815481526020019060010190808311611ade575b5050509183525050600482015460ff1615156020820152600590910154604090910152945060a08501511515600114611b2a57600080fd5b8460400151600160a060020a031615611b4257600080fd5b8460200151341015611b5357600080fd5b33600d8761ffff16815481101515611b6757fe5b600091825260208220600691909102016002018054600160a060020a031916600160a060020a039390931692909217909155600d805461ffff8916908110611bab57fe5b906000526020600020906006020160040160006101000a81548160ff0219169083151502179055508460200151600d805461ffff8916908110611bea57fe5b906000526020600020906006020160050181905550600e856060015161ffff16815481101515611c1657fe5b9060005260206000209060020201600101805480602002602001604051908101604052809291908181526020018280548015611c9957602002820191906000526020600020906000905b82829054906101000a900461ffff1661ffff1681526020019060020190602082600101049283019260010382029150808411611c605790505b505050505093508351600854811515611cae57fe5b049250600091505b83518261ffff161015611d6a57600d848361ffff1681518110611cd557fe5b9060200190602002015161ffff16815481101515611cef57fe5b6000918252602090912060026006909202010154600160a060020a031690508015611d5f57600160a060020a038116600090815260036020526040902054611d3d908463ffffffff61346b16565b600160a060020a03821660009081526003602052604090205560048054840190555b600190910190611cb6565b600080516020613b9683398151915286866020015160003360001960405161ffff90951685526020850193909352600160a060020a0391821660408086019190915291166060840152608083019190915260a0909101905180910390a1505050505050565b600654600090819033600160a060020a03908116911614611def57600080fd5b600654600d5460a060020a90910461ffff169010611e0c57600080fd5b6001600d8054806001018281611e22919061372b565b9160005260206000209060060201600060e0604051908101604052808a81526020018981526020016000600160a060020a031681526020018861ffff1681526020016000604051805910611e735750595b90808252806020026020018201604052508152600160208201526000604090910152919050815181908051611eac929160200190613757565b50602082015181600101556040820151600282018054600160a060020a031916600160a060020a039290921691909117905560608201518160020160146101000a81548161ffff021916908361ffff160217905550608082015181600301908051611f1b9291602001906137d5565b5060a082015160048201805460ff191691151591909117905560c082015181600501555050039050600e8361ffff16815481101515611f5657fe5b90600052602060002090600202016001018054806001018281611f79919061380f565b916000526020600020906010918282040191900660020283909190916101000a81548161ffff021916908361ffff160217905550507f6aea3abde5fe13332dca1abdda86999b40570d7328d1ff22df39b639ef7930d6818686866040518481526040810183905261ffff8216606082015260806020820181815290820185818151815260200191508051906020019080838360005b8381101561202657808201518382015260200161200e565b50505050905090810190601f1680156120535780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a1949350505050565b60065460a060020a900461ffff1681565b60085481565b6000600160a060020a038316151561209957600080fd5b600160a060020a0333166000908152600360205260409020548211156120be57600080fd5b600160a060020a0333166000908152600360205260409020546120e7908363ffffffff61345916565b600160a060020a03338116600090815260036020526040808220939093559085168152205461211c908363ffffffff61346b16565b600160a060020a0380851660008181526003602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b612185613843565b601180548390811061219357fe5b906000526020600020906003020160606040519081016040908152825461ffff16825260018301546020830152600290920154600160a060020a0390811692820192835290925033169051600160a060020a0316146121f157600080fd5b33600160a060020a03166108fc82602001519081150290604051600060405180830381858888f19350505050151561222857600080fd5b61223f81602001516010549063ffffffff61345916565b60105560118054600091908490811061225457fe5b60009182526020822060039190910201805461ffff191661ffff9390931692909217909155601180548490811061228757fe5b90600052602060002090600302016001018190555060006011838154811015156122ad57fe5b906000526020600020906003020160020160006101000a815481600160a060020a030219169083600160a060020a031602179055507fb0afb0649ace03a89dfaef4e0ec1b57a8147430a37de1d0bd938cf0e1ba1d4cc8260405190815260200160405180910390a15050565b600654600090819033600160a060020a0390811691161461233957600080fd5b6000841161234657600080fd5b6001600f805480600101828161235c9190613863565b91600052602060002090600302016000608060405190810160409081528a8252602082018a905260009082015261ffff881660608201529190508151819080516123aa929160200190613757565b50602082015181600101556040820151600282018054600160a060020a031916600160a060020a039290921691909117905560608201518160020160146101000a81548161ffff021916908361ffff1602179055505050039050600d8361ffff1681548110151561241757fe5b9060005260206000209060060201600301805480600101828161243a919061388f565b5060009182526020909120018190557f3d9d17a8fce809f94f985369b4789ce434e54d263e670183cad99a99d83300a1818686866040518481526040810183905261ffff8216606082015260806020820181815290820185818151815260200191508051906020019080838360008381101561202657808201518382015260200161200e565b60105481565b600c5481565b600160a060020a033381166000908152600560209081526040808320938616835292905290812054612504908363ffffffff61346b16565b600160a060020a0333811660008181526005602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b600654600090819033600160a060020a0390811691161461259057600080fd5b6001600e80548060010182816125a691906138b3565b91600052602060002090600202016000604080519081016040528088815260200160006040518059106125d65750595b90808252806020026020018201604052509052919050815181908051612600929160200190613757565b5060208201518160010190805161261b9291602001906138df565b505050039392505050565b61262e6136cf565b612636613843565b600080600d8661ffff1681548110151561264c57fe5b906000526020600020906006020160e06040519081016040529081600082018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156126ff5780601f106126d4576101008083540402835291602001916126ff565b820191906000526020600020905b8154815290600101906020018083116126e257829003601f168201915b505050918352505060018201546020808301919091526002830154600160a060020a03811660408085019190915260a060020a90910461ffff16606084015260038401805460809094019390929091828202909101905190810160405280929190818152602001828054801561279457602002820191906000526020600020905b815481526020019060010190808311612780575b5050509183525050600482015460ff16151560208201526005909101546040909101526011805491955090889081106127c957fe5b906000526020600020906003020160606040519081016040908152825461ffff908116835260018401546020840152600290930154600160a060020a03169082015293508616835161ffff161461281f57600080fd5b8260400151600160a060020a0316151561283857600080fd5b33600160a060020a03168360400151600160a060020a0316141561285b57600080fd5b8483602001511461286b57600080fd5b33600160a060020a03168460400151600160a060020a03161461288d57600080fd5b6009546064906128a3908763ffffffff61348116565b8115156128ac57fe5b0491506128bf858363ffffffff61345916565b9050600d8661ffff168154811015156128d457fe5b6000918252602090912060026006909202010154600160a060020a031681156108fc0282604051600060405180830381858888f19350505050151561291857600080fd5b60105461292b908263ffffffff61345916565b6010556040830151600d805461ffff891690811061294557fe5b906000526020600020906006020160020160006101000a815481600160a060020a030219169083600160a060020a0316021790555084600d8761ffff1681548110151561298e57fe5b9060005260206000209060060201600501819055506000600d8761ffff168154811015156129b857fe5b60009182526020909120600690910201600401805460ff19169115159190911790556129e86060850151876134ac565b600080516020613b9683398151915286863386604001518b60405161ffff90951685526020850193909352600160a060020a0391821660408086019190915291166060840152608083019190915260a0909101905180910390a16000601188815481101515612a5357fe5b60009182526020822060039190910201805461ffff191661ffff93909316929092179091556011805489908110612a8657fe5b9060005260206000209060030201600101819055506000601188815481101515612aac57fe5b906000526020600020906003020160020160006101000a815481600160a060020a030219169083600160a060020a0316021790555050505050505050565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b612b1d6136cf565b612b25613719565b6006546000908190819033600160a060020a03908116911614612b4757600080fd5b600d805461ffff8916908110612b5957fe5b906000526020600020906006020160e06040519081016040529081600082018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612c0c5780601f10612be157610100808354040283529160200191612c0c565b820191906000526020600020905b815481529060010190602001808311612bef57829003601f168201915b505050918352505060018201546020808301919091526002830154600160a060020a03811660408085019190915260a060020a90910461ffff166060840152600384018054608090940193909290918282029091019051908101604052809291908181526020018280548015612ca157602002820191906000526020600020905b815481526020019060010190808311612c8d575b5050509183525050600482015460ff1615156020820152600590910154604090910152945060a08501511515600114612cd957600080fd5b8460400151600160a060020a031615612cf157600080fd5b85600d8861ffff16815481101515612d0557fe5b600091825260208220600691909102016002018054600160a060020a031916600160a060020a039390931692909217909155600d805461ffff8a16908110612d4957fe5b906000526020600020906006020160040160006101000a81548160ff0219169083151502179055508460200151600d805461ffff8a16908110612d8857fe5b906000526020600020906006020160050181905550600e856060015161ffff16815481101515612db457fe5b9060005260206000209060020201600101805480602002602001604051908101604052809291908181526020018280548015612e3757602002820191906000526020600020906000905b82829054906101000a900461ffff1661ffff1681526020019060020190602082600101049283019260010382029150808411612dfe5790505b505050505093508351600854811515612e4c57fe5b049250600091505b83518261ffff161015612f0857600d848361ffff1681518110612e7357fe5b9060200190602002015161ffff16815481101515612e8d57fe5b6000918252602090912060026006909202010154600160a060020a031690508015612efd57600160a060020a038116600090815260036020526040902054612edb908463ffffffff61346b16565b600160a060020a03821660009081526003602052604090205560048054840190555b600190910190612e54565b600080516020613b9683398151915287866020015160008960001960405161ffff90951685526020850193909352600160a060020a0391821660408086019190915291166060840152608083019190915260a0909101905180910390a150505050505050565b60065460009033600160a060020a03908116911614612f8c57600080fd5b600d805461ffff8616908110612f9e57fe5b6000918252602090912060026006909202010154600160a060020a03161515612fc657600080fd5b60008311612fd357600080fd5b3483901015612fe157600080fd5b81600160a060020a0316600d8561ffff16815481101515612ffe57fe5b6000918252602090912060026006909202010154600160a060020a0316141561302657600080fd5b60016011805480600101828161303c9190613984565b916000526020600020906003020160006060604051908101604090815261ffff8a16825260208201899052600160a060020a038816908201529190508151815461ffff191661ffff919091161781556020820151816001015560408201516002919091018054600160a060020a031916600160a060020a039092169190911790555060105491900391506130d0908461346b565b6010819055507f5aae35e7071630e315bae14b34295052ec312a6cbaf5e75894549df1e4f25f9f81858585600d8961ffff1681548110151561310e57fe5b6000918252602090912060026006909202010154600160a060020a031660405194855261ffff9093166020850152604080850192909252600160a060020a03908116606085015291909116608083015260a0909101905180910390a150505050565b6000600d8361ffff1681548110151561318557fe5b6000918252602090912060026006909202010154600160a060020a031615156131ad57600080fd5b600082116131ba57600080fd5b34829010156131c857600080fd5b33600160a060020a0316600d8461ffff168154811015156131e557fe5b6000918252602090912060026006909202010154600160a060020a0316141561320d57600080fd5b6001601180548060010182816132239190613984565b916000526020600020906003020160006060604051908101604090815261ffff8916825260208201889052600160a060020a033316908201529190508151815461ffff191661ffff919091161781556020820151816001015560408201516002919091018054600160a060020a031916600160a060020a039092169190911790555060105491900391506132b7908361346b565b6010819055507f5aae35e7071630e315bae14b34295052ec312a6cbaf5e75894549df1e4f25f9f81848433600d8861ffff168154811015156132f557fe5b6000918252602090912060026006909202010154600160a060020a031660405194855261ffff9093166020850152604080850192909252600160a060020a03908116606085015291909116608083015260a0909101905180910390a1505050565b60065433600160a060020a0390811691161461337157600080fd5b600d805461ffff861690811061338357fe5b6000918252602090912060026006909202010154600160a060020a0316156133aa57600080fd5b82600d8561ffff168154811015156133be57fe5b90600052602060002090600602016000019080516133e0929160200190613757565b5081600d8561ffff168154811015156133f557fe5b90600052602060002090600602016001018190555080600d8561ffff1681548110151561341e57fe5b906000526020600020906006020160020160006101000a815481600160a060020a030219169083600160a060020a0316021790555050505050565b60008282111561346557fe5b50900390565b60008282018381101561347a57fe5b9392505050565b6000808315156134945760009150610dc1565b508282028284828115156134a457fe5b041461347a57fe5b6134b4613719565b600a54600654600160a060020a03166000908152600360205260408120549091829182919010156134e457613698565b600e805461ffff88169081106134f657fe5b906000526020600020906002020160010180548060200260200160405190810160405280929190818152602001828054801561357957602002820191906000526020600020906000905b82829054906101000a900461ffff1661ffff16815260200190600201906020826001010492830192600103820291508084116135405790505b5050505050935083516001141561358f57613698565b6001845103600a548115156135a057fe5b049250600091505b83518261ffff16101561369857600d848361ffff16815181106135c757fe5b9060200190602002015161ffff168154811015156135e157fe5b6000918252602090912060026006909202010154600160a060020a03169050801580159061363057508461ffff16848361ffff168151811061361f57fe5b9060200190602002015161ffff1614155b1561368d57600160a060020a03811660009081526003602052604090205461365e908463ffffffff61346b16565b600160a060020a0380831660009081526003602052604080822093909355600654909116815220805484900390555b6001909101906135a8565b505050505050565b6080604051908101604052806136b4613719565b81526000602082018190526040820181905260609091015290565b60e0604051908101604052806136e3613719565b8152600060208201819052604082018190526060820152608001613705613719565b815260006020820181905260409091015290565b60206040519081016040526000815290565b815481835581811511610fc257600602816006028360005260206000209182019101610fc291906139b0565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061379857805160ff19168380011785556137c5565b828001600101855582156137c5579182015b828111156137c55782518255916020019190600101906137aa565b506137d1929150613a1e565b5090565b8280548282559060005260206000209081019282156137c557916020028201828111156137c55782518255916020019190600101906137aa565b815481835581811511610fc257600f016010900481600f01601090048360005260206000209182019101610fc29190613a1e565b606060405190810160409081526000808352602083018190529082015290565b815481835581811511610fc257600302816003028360005260206000209182019101610fc29190613a38565b815481835581811511610fc257600083815260209020610fc2918101908301613a1e565b815481835581811511610fc257600202816002028360005260206000209182019101610fc29190613a83565b82805482825590600052602060002090600f016010900481019282156139785791602002820160005b8382111561394857835183826101000a81548161ffff021916908361ffff1602179055509260200192600201602081600101049283019260010302613908565b80156139765782816101000a81549061ffff0219169055600201602081600101049283019260010302613948565b505b506137d1929150613ab4565b815481835581811511610fc257600302816003028360005260206000209182019101610fc29190613ad3565b610ae791905b808211156137d15760006139ca8282613b0b565b60006001830181905560028301805475ffffffffffffffffffffffffffffffffffffffffffff19169055613a02906003840190613b52565b5060048101805460ff19169055600060058201556006016139b6565b610ae791905b808211156137d15760008155600101613a24565b610ae791905b808211156137d1576000613a528282613b0b565b506000600182015560028101805475ffffffffffffffffffffffffffffffffffffffffffff19169055600301613a3e565b610ae791905b808211156137d1576000613a9d8282613b0b565b613aab600183016000613b70565b50600201613a89565b610ae791905b808211156137d157805461ffff19168155600101613aba565b610ae791905b808211156137d157805461ffff1916815560006001820155600281018054600160a060020a0319169055600301613ad9565b50805460018160011615610100020316600290046000825580601f10613b315750613b4f565b601f016020900490600052602060002090810190613b4f9190613a1e565b50565b5080546000825590600052602060002090810190613b4f9190613a1e565b50805460008255600f016010900490600052602060002090810190613b4f9190613a1e56005efb38ad30f497e82c51ea3ed01f9afe1195fb15ebceb0ad2b2c64eaacf19c78a165627a7a723058205e08dd01ca0acf6b581fa8bda2e0e898353ee44bc5a6f3b73e96fea34d80f7be0029

   Swarm Source:
bzzr://5e08dd01ca0acf6b581fa8bda2e0e898353ee44bc5a6f3b73e96fea34d80f7be

 

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