Contract 0x1ed3d2c916cab00631cce4b08a7f880d4badae94

 

TxHash Block Age From To Value [TxFee]
0xc50319e0ce6f5e281c60a47b42b443951ff530aba9a659df9839bf240c5ca818(pending)2 hrs 24 mins ago0xd2a58c88c60593b5af1ec177b7cea838d261fd0d IN 0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether(Pending)
0x67b3ec5f2f5923ddc7cbaae690c7131e7c219c8325080cd520ac507bfa96bffd72389825 hrs 37 mins ago0x778f7434956b899303708fa3c5fad85bf9d93e06 IN  0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.000360545
0x6e90d647a5e7a7391cace70e5444df4b262a538b801fb3d9c98c85fe36f0233072388206 hrs 25 mins ago0x345b5f88720e136af1d8c4fd49d38f554b843e7b IN  0x1ed3d2c916cab00631cce4b08a7f880d4badae940.00014 Ether0.00076305
0x844faafd2246b7fe907ffc6d26cbd61eeb6ae173db4111640d839e601ce0555672384678 hrs 19 mins ago0x65e039daba0f010a4a9a3271a33a47097d2b88a5 IN  0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.0000738912
0xdfec4c39c3f0df02ea5ad3b23fbdcaa1794fa7e7aee0f032e8c53c43e70e096072382179 hrs 46 mins ago0x345b5f88720e136af1d8c4fd49d38f554b843e7b IN  0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.00132044
0x57b21d7b99610b9745c0959ce015f2ae723990d9f9782fd3826124aee15d3afa723816010 hrs 6 mins ago0xd2a58c88c60593b5af1ec177b7cea838d261fd0d IN  0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.000123152
0xb5554a2ea27fc03f236bdd9afd2c97f19f40dd806699636861172b14485b1f66723812910 hrs 19 mins ago0xd2a58c88c60593b5af1ec177b7cea838d261fd0d IN  0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.000123152
0xe20aa6c9e77c6cf8a55b3711d3024aed7cb1bfe5e0f5217aaff53ced95acc6e8723809010 hrs 31 mins ago0xd2a58c88c60593b5af1ec177b7cea838d261fd0d IN  0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.000123152
0x6142f80396970a8ad1b59bb617bb37f6532a37b24e0329e4826791a8ec6ba426723804910 hrs 45 mins ago0xd2a58c88c60593b5af1ec177b7cea838d261fd0d IN  0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.000123152
0x4442b43524533cb044d8b0798f6f099751b0961ba5c54f26290325766ae5847b723802710 hrs 55 mins ago0xd2a58c88c60593b5af1ec177b7cea838d261fd0d IN  0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.000106446
0xd648ed15bbaf5dc4504c83ed5e5831e5321ccaac29a94ec68b2a347a58d82573723802310 hrs 57 mins ago0xd2a58c88c60593b5af1ec177b7cea838d261fd0d IN  0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.000122896
0xb96bc9611ce8bc68452da50c4908ca90ebed862febd9a86585f4059dde89a6fe723777912 hrs 21 mins ago0xd2a58c88c60593b5af1ec177b7cea838d261fd0d IN  0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.000123152
0xcd42c731e99866906f7da49da0c19ec54709d444e375119905be01220c956d8d723761413 hrs 16 mins ago0xd2a58c88c60593b5af1ec177b7cea838d261fd0d IN  0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.000123152
0x05242f3f8cac0315d6686b5a9aeee6de578299c2f52596b07e8fe4d1e275dd5f723754113 hrs 39 mins ago0xd2a58c88c60593b5af1ec177b7cea838d261fd0d IN  0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.000123152
0x37a08ad31605ed45ff00c9582965e30fe84f51f7423410e94942e9b5da2b6e58723748813 hrs 57 mins ago0xd2a58c88c60593b5af1ec177b7cea838d261fd0d IN  0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.000039068
0x1334985b8fcdce2ade81060e35f17b11ad3d847f3e08c764b116dc876ffd7f42723746714 hrs 3 mins ago0xd2a58c88c60593b5af1ec177b7cea838d261fd0d IN  0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.000123152
0x895dda62850fdcb6acdbb503d34f052b70a32b460caad19ae929d18ba5528dc8723746714 hrs 3 mins ago0xd2a58c88c60593b5af1ec177b7cea838d261fd0d IN  0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.00017409
0xcdab7a195d014352a04aae74bf914f44f843ee9e65872483bd9d24d08a9024fa723737814 hrs 33 mins ago0xd2a58c88c60593b5af1ec177b7cea838d261fd0d IN  0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.000123152
0x18689bea0e44aec92f2cb89ac4e5eaf1cfc8127bb78a175655fe4ad6c998324f723731314 hrs 57 mins ago0xd2a58c88c60593b5af1ec177b7cea838d261fd0d IN  0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.0001354672
0xd13442dae869e46815aac6ebafa0b44d31b7a3b784c181925305b972790f0e60723707216 hrs 19 mins ago0x4a4c35280bc7e7f426453db48e5faf66f47398b6 IN  0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.0002688661
0xe94d8f193d5f120b0580db7158242a2383d98070d68a8afb09c8383941de3660723695117 hrs 1 min ago0x1c2890768064a657ffcaf9c0c92d2b99ed7c18e2 IN  0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.00030788
0xa23de6499a6e7cfe73ddd91a8b815a34d8a4e18692aad2843ea47ff236d12973723688517 hrs 23 mins ago0x1c2890768064a657ffcaf9c0c92d2b99ed7c18e2 IN  0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.000168336
0xd4d7d78d2a58c09725d5d78f1f3044e944f4617f35e5206c0f84516b29ccf4fa723687417 hrs 26 mins ago0x1c2890768064a657ffcaf9c0c92d2b99ed7c18e2 IN  0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.00113886
0xb2df25db7636f1996943da5dc54ed23ec59221100c31bbec0ecf8b10b9476ed1723585723 hrs 20 mins ago0xd2a58c88c60593b5af1ec177b7cea838d261fd0d IN  0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.0002319995
0xaaa621d386b0e752288c6854387eec75353e3fdcd8b3a4b4799241d2af573d1d723585723 hrs 20 mins ago0xd2a58c88c60593b5af1ec177b7cea838d261fd0d IN  0x1ed3d2c916cab00631cce4b08a7f880d4badae940 Ether0.000106446
[ 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
0x37a08ad31605ed45ff00c9582965e30fe84f51f7423410e94942e9b5da2b6e58723748813 hrs 57 mins ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940xd2a58c88c60593b5af1ec177b7cea838d261fd0d0.00840876277217635 Ether
0x5e05750830268d24a86216c17ed4169b73097bcf0027e824db9d89a1df56b68472340151 day 9 hrs ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940x4a4c35280bc7e7f426453db48e5faf66f47398b60.013749923730987924 Ether
0x23ea7dd03be9025225ed40fe993ae3c89987b8447d2349e688019b4bb2bd547972327221 day 17 hrs ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940xd2a58c88c60593b5af1ec177b7cea838d261fd0d0.004704529613598387 Ether
0x8c97370c7ddddac4b731ccc72816d6428bc91ac32ef2180b823276de0ffdefb072323111 day 19 hrs ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940xd2a58c88c60593b5af1ec177b7cea838d261fd0d0.003244540957780254 Ether
0xcf11340ba195c048414b3af9cc98e291c597a12d0b7ca4177235611022e7818272207664 days 13 hrs ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940xd2a58c88c60593b5af1ec177b7cea838d261fd0d0.008493075759297017 Ether
0x6307c8af512bb61795e974e6b52d23a300ad7623f037defc6ca5d11edb6c1b1f72168955 days 12 hrs ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940xd2a58c88c60593b5af1ec177b7cea838d261fd0d0.004578176735637002 Ether
0x63c58593c8a8dbd238c658e3f77e9bd41c832c736c5ca55cb2caf3456076832372118796 days 16 hrs ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940xd2a58c88c60593b5af1ec177b7cea838d261fd0d0.005466472567015867 Ether
0xdd3009fb19cf4b881d41f34b7c1e834862598cd3471183c5d36e4016c9d9da8b72117966 days 17 hrs ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940xa5181d2a5c198e8f34f8862e017061f88a33965e0.007929914523150093 Ether
0xc100c60e90c92f9eb0275ce5ce69bb6d452289cf1c97bd845d15511638150c0372101087 days 3 hrs ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940x1d6b89f46200fb4a6e15c3624db7323845e912330.000738534471699694 Ether
0x2d83a2a31355630834fcc59790e54f3bc5cc311dd133f407899b80fae3bbecb372085287 days 11 hrs ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940xc89aae58fd4d9b69a26595615703595aa782734b0.003382864972694668 Ether
0xd2c9f00b198697dbcfae86bad6014df5ff6c354b4c828f4badf948b1df423edb72074607 days 17 hrs ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940x3ac362c27f9490de4ad0f3c8f903713d5ad0d75b0.000612745598289546 Ether
0x4105842e8176bf7e9057956d33c8f02e0d714b55bb528f457b74ae41be04937d72074287 days 18 hrs ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940xd2a58c88c60593b5af1ec177b7cea838d261fd0d0.004560012365566398 Ether
0xeba9a74e0202273e7d45c8e91a815c51a7440a8a943507a04e9e106f309fbb4172031198 days 19 hrs ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940xd2a58c88c60593b5af1ec177b7cea838d261fd0d0.007627414929019188 Ether
0xad9910f7da030fc2f0b0b697c277120c4db6dc4cc0863e56267d015cd0c3242a719714910 days 1 hr ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940xd2a58c88c60593b5af1ec177b7cea838d261fd0d0.00519788438006934 Ether
0xb2c1c90aed865dd9d79176eedf3c8b37888538bfd2f69e16a25a4993e0479b49719703010 days 2 hrs ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940xde67adf51408acca6bee2abe20dbfff2dddfed330.005958290949976701 Ether
0x72fb48660ae39f96337fab420933a9543fd83636ab18b0c09a056dd6b45a6e9a718243513 days 1 hr ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940x4a4c35280bc7e7f426453db48e5faf66f47398b60.018051656376689845 Ether
0x049b8e9212f6befcc8f8fad38f14410a9d7cb3cd5475d9ca9335d60fad6dd26c716445516 days 17 hrs ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940x1d6b89f46200fb4a6e15c3624db7323845e912330.001891234631895042 Ether
0x0ff9c3d429be43ddb6ff5438c571b22a14ea26b620dd73a0396c29946a8b31e1714462920 days 18 hrs ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940x4a4c35280bc7e7f426453db48e5faf66f47398b60.011151055529430534 Ether
0x4f3e9199e62281f94f47ba894c79b88dfbf3bc5cc576e45d4670f57008cfef78714144821 days 10 hrs ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940x58e90f6e19563ce82c4a0010cece699b3e1a67230.004337973962737622 Ether
0xfe85d4df32e98c04318038e9d459d8131461c890534e535ef8edb769de7dab0a714035421 days 15 hrs ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940xfa07e41935ae3412a4c2aae8e710cf84a67395250.006362632230696747 Ether
0x173be7b8d1caa950a0df09caedc92e8d4ac97f0d41d5089913174905ebd90236712864023 days 23 hrs ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940xd2a58c88c60593b5af1ec177b7cea838d261fd0d0.001190912688743295 Ether
0x74addd03852dd81bcdc4129c9ce6c93ac78849b75ff1daa8f152fd949ce66fd5711555826 days 13 hrs ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940x4a4c35280bc7e7f426453db48e5faf66f47398b60.016327943921475714 Ether
0x18e03d13e6f8d84c790d633f64841fa882c0114286b693e9b9d938334bf53743711283327 days 2 hrs ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940x9a14607407fca133a9fa354ec588b08b48a2d5e40.002069180293103442 Ether
0xb096be339936a3aa34785905b88bc662978230c3da3649ea5e40db07ff87b312709698030 days 4 hrs ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940x4a4c35280bc7e7f426453db48e5faf66f47398b60.010679227274511438 Ether
0x596cb228fb262ae2d05292fd10fa1792a0d805d330b5ec90a07e0beb1938ff98709546330 days 10 hrs ago0x1ed3d2c916cab00631cce4b08a7f880d4badae940x86561ae3ea34fd9e80b706a754078bb4b7de9a480.000099308934239242 Ether
[ Download CSV Export 
Warning: The compiled contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity) Solidity Compiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: ChickenHunt
Compiler Version: v0.4.24+commit.e67f0147
Optimization Enabled: Yes
Runs (Optimizer):  200


Contract Source Code
pragma solidity 0.4.24;


library SafeMath {

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

  function square(uint256 a) internal pure returns (uint256) {
    return mul(a, a);
  }

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

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

}


contract ERC20Interface {

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

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

  function totalSupply() public view returns (uint256);
  function balanceOf(address _owner) public view returns (uint256);
  function transfer(address _to, uint256 _value) public returns (bool);
  function transferFrom(address _from, address _to, uint256 _value) public returns (bool);
  function approve(address _spender, uint256 _value) public returns (bool);
  function allowance( address _owner, address _spender) public view returns (uint256);

}


/**
 * @title CHStock
 * @author M.H. Kang
 */
contract CHStock is ERC20Interface {

  using SafeMath for uint256;

  /* EVENT */

  event RedeemShares(
    address indexed user,
    uint256 shares,
    uint256 dividends
  );

  /* STORAGE */

  string public name = "ChickenHuntStock";
  string public symbol = "CHS";
  uint8 public decimals = 18;
  uint256 public totalShares;
  uint256 public dividendsPerShare;
  uint256 public constant CORRECTION = 1 << 64;
  mapping (address => uint256) public ethereumBalance;
  mapping (address => uint256) internal shares;
  mapping (address => uint256) internal refund;
  mapping (address => uint256) internal deduction;
  mapping (address => mapping (address => uint256)) internal allowed;

  /* FUNCTION */

  function redeemShares() public {
    uint256 _shares = shares[msg.sender];
    uint256 _dividends = dividendsOf(msg.sender);

    delete shares[msg.sender];
    delete refund[msg.sender];
    delete deduction[msg.sender];
    totalShares = totalShares.sub(_shares);
    ethereumBalance[msg.sender] = ethereumBalance[msg.sender].add(_dividends);

    emit RedeemShares(msg.sender, _shares, _dividends);
  }

  function transfer(address _to, uint256 _value) public returns (bool) {
    _transfer(msg.sender, _to, _value);
    return true;
  }

  function transferFrom(address _from, address _to, uint256 _value)
    public
    returns (bool)
  {
    require(_value <= allowed[_from][msg.sender]);
    allowed[_from][msg.sender] -= _value;
    _transfer(_from, _to, _value);
    return true;
  }

  function approve(address _spender, uint256 _value) public returns (bool) {
    allowed[msg.sender][_spender] = _value;
    emit Approval(msg.sender, _spender, _value);
    return true;
  }

  function dividendsOf(address _shareholder) public view returns (uint256) {
    return dividendsPerShare.mul(shares[_shareholder]).add(refund[_shareholder]).sub(deduction[_shareholder]) / CORRECTION;
  }

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

  function balanceOf(address _owner) public view returns (uint256) {
    return shares[_owner];
  }

  function allowance(address _owner, address _spender)
    public
    view
    returns (uint256)
  {
    return allowed[_owner][_spender];
  }

  /* INTERNAL FUNCTION */

  function _giveShares(address _user, uint256 _ethereum) internal {
    if (_ethereum > 0) {
      totalShares = totalShares.add(_ethereum);
      deduction[_user] = deduction[_user].add(dividendsPerShare.mul(_ethereum));
      shares[_user] = shares[_user].add(_ethereum);
      dividendsPerShare = dividendsPerShare.add(_ethereum.mul(CORRECTION) / totalShares);

      emit Transfer(address(0), _user, _ethereum);
    }
  }

  function _transfer(address _from, address _to, uint256 _value) internal {
    require(_to != address(0));
    require(_value <= shares[_from]);
    uint256 _rawProfit = dividendsPerShare.mul(_value);

    uint256 _refund = refund[_from].add(_rawProfit);
    uint256 _min = _refund < deduction[_from] ? _refund : deduction[_from];
    refund[_from] = _refund.sub(_min);
    deduction[_from] = deduction[_from].sub(_min);
    deduction[_to] = deduction[_to].add(_rawProfit);

    shares[_from] = shares[_from].sub(_value);
    shares[_to] = shares[_to].add(_value);

    emit Transfer(_from, _to, _value);
  }

}


/**
 * @title CHGameBase
 * @author M.H. Kang
 */
contract CHGameBase is CHStock {

  /* DATA STRUCT */

  struct House {
    Hunter hunter;
    uint256 huntingPower;
    uint256 offensePower;
    uint256 defensePower;
    uint256 huntingMultiplier;
    uint256 offenseMultiplier;
    uint256 defenseMultiplier;
    uint256 depots;
    uint256[] pets;
  }

  struct Hunter {
    uint256 strength;
    uint256 dexterity;
    uint256 constitution;
    uint256 resistance;
  }

  struct Store {
    address owner;
    uint256 cut;
    uint256 cost;
    uint256 balance;
  }

  /* STORAGE */

  Store public store;
  uint256 public devCut;
  uint256 public devFee;
  uint256 public altarCut;
  uint256 public altarFund;
  uint256 public dividendRate;
  uint256 public totalChicken;
  address public chickenTokenDelegator;
  mapping (address => uint256) public lastSaveTime;
  mapping (address => uint256) public savedChickenOf;
  mapping (address => House) internal houses;

  /* FUNCTION */

  function saveChickenOf(address _user) public returns (uint256) {
    uint256 _unclaimedChicken = _unclaimedChickenOf(_user);
    totalChicken = totalChicken.add(_unclaimedChicken);
    uint256 _chicken = savedChickenOf[_user].add(_unclaimedChicken);
    savedChickenOf[_user] = _chicken;
    lastSaveTime[_user] = block.timestamp;
    return _chicken;
  }

  function transferChickenFrom(address _from, address _to, uint256 _value)
    public
    returns (bool)
  {
    require(msg.sender == chickenTokenDelegator);
    require(saveChickenOf(_from) >= _value);
    savedChickenOf[_from] = savedChickenOf[_from] - _value;
    savedChickenOf[_to] = savedChickenOf[_to].add(_value);

    return true;
  }

  function chickenOf(address _user) public view returns (uint256) {
    return savedChickenOf[_user].add(_unclaimedChickenOf(_user));
  }

  /* INTERNAL FUNCTION */

  function _payChicken(address _user, uint256 _chicken) internal {
    uint256 _unclaimedChicken = _unclaimedChickenOf(_user);
    uint256 _extraChicken;

    if (_chicken > _unclaimedChicken) {
      _extraChicken = _chicken - _unclaimedChicken;
      require(savedChickenOf[_user] >= _extraChicken);
      savedChickenOf[_user] -= _extraChicken;
      totalChicken -= _extraChicken;
    } else {
      _extraChicken = _unclaimedChicken - _chicken;
      totalChicken = totalChicken.add(_extraChicken);
      savedChickenOf[_user] += _extraChicken;
    }

    lastSaveTime[_user] = block.timestamp;
  }

  function _payEthereumAndDistribute(uint256 _cost) internal {
    require(_cost * 100 / 100 == _cost);
    _payEthereum(_cost);

    uint256 _toShareholders = _cost * dividendRate / 100;
    uint256 _toAltar = _cost * altarCut / 100;
    uint256 _toStore = _cost * store.cut / 100;
    devFee = devFee.add(_cost - _toShareholders - _toAltar - _toStore);

    _giveShares(msg.sender, _toShareholders);
    altarFund = altarFund.add(_toAltar);
    store.balance = store.balance.add(_toStore);
  }

  function _payEthereum(uint256 _cost) internal {
    uint256 _extra;
    if (_cost > msg.value) {
      _extra = _cost - msg.value;
      require(ethereumBalance[msg.sender] >= _extra);
      ethereumBalance[msg.sender] -= _extra;
    } else {
      _extra = msg.value - _cost;
      ethereumBalance[msg.sender] = ethereumBalance[msg.sender].add(_extra);
    }
  }

  function _unclaimedChickenOf(address _user) internal view returns (uint256) {
    uint256 _timestamp = lastSaveTime[_user];
    if (_timestamp > 0 && _timestamp < block.timestamp) {
      return houses[_user].huntingPower.mul(
        houses[_user].huntingMultiplier
      ).mul(block.timestamp - _timestamp) / 100;
    } else {
      return 0;
    }
  }

  function _houseOf(address _user)
    internal
    view
    returns (House storage _house)
  {
    _house = houses[_user];
    require(_house.depots > 0);
  }

}


/**
 * @title CHHunter
 * @author M.H. Kang
 */
contract CHHunter is CHGameBase {

  /* EVENT */

  event UpgradeHunter(
    address indexed user,
    string attribute,
    uint256 to
  );

  /* DATA STRUCT */

  struct Config {
    uint256 chicken;
    uint256 ethereum;
    uint256 max;
  }

  /* STORAGE */

  Config public typeA;
  Config public typeB;

  /* FUNCTION */

  function upgradeStrength(uint256 _to) external payable {
    House storage _house = _houseOf(msg.sender);
    uint256 _from = _house.hunter.strength;
    require(typeA.max >= _to && _to > _from);
    _payForUpgrade(_from, _to, typeA);

    uint256 _increment = _house.hunter.dexterity.mul(2).add(8).mul(_to.square() - _from ** 2);
    _house.hunter.strength = _to;
    _house.huntingPower = _house.huntingPower.add(_increment);
    _house.offensePower = _house.offensePower.add(_increment);

    emit UpgradeHunter(msg.sender, "strength", _to);
  }

  function upgradeDexterity(uint256 _to) external payable {
    House storage _house = _houseOf(msg.sender);
    uint256 _from = _house.hunter.dexterity;
    require(typeB.max >= _to && _to > _from);
    _payForUpgrade(_from, _to, typeB);

    uint256 _increment = _house.hunter.strength.square().mul((_to - _from).mul(2));
    _house.hunter.dexterity = _to;
    _house.huntingPower = _house.huntingPower.add(_increment);
    _house.offensePower = _house.offensePower.add(_increment);

    emit UpgradeHunter(msg.sender, "dexterity", _to);
  }

  function upgradeConstitution(uint256 _to) external payable {
    House storage _house = _houseOf(msg.sender);
    uint256 _from = _house.hunter.constitution;
    require(typeA.max >= _to && _to > _from);
    _payForUpgrade(_from, _to, typeA);

    uint256 _increment = _house.hunter.resistance.mul(2).add(8).mul(_to.square() - _from ** 2);
    _house.hunter.constitution = _to;
    _house.defensePower = _house.defensePower.add(_increment);

    emit UpgradeHunter(msg.sender, "constitution", _to);
  }

  function upgradeResistance(uint256 _to) external payable {
    House storage _house = _houseOf(msg.sender);
    uint256 _from = _house.hunter.resistance;
    require(typeB.max >= _to && _to > _from);
    _payForUpgrade(_from, _to, typeB);

    uint256 _increment = _house.hunter.constitution.square().mul((_to - _from).mul(2));
    _house.hunter.resistance = _to;
    _house.defensePower = _house.defensePower.add(_increment);

    emit UpgradeHunter(msg.sender, "resistance", _to);
  }

  /* INTERNAL FUNCTION */

  function _payForUpgrade(uint256 _from, uint256 _to, Config _type) internal {
    uint256 _chickenCost = _type.chicken.mul(_gapOfCubeSum(_from, _to));
    _payChicken(msg.sender, _chickenCost);
    uint256 _ethereumCost = _type.ethereum.mul(_gapOfSquareSum(_from, _to));
    _payEthereumAndDistribute(_ethereumCost);
  }

  function _gapOfSquareSum(uint256 _before, uint256 _after)
    internal
    pure
    returns (uint256)
  {
    // max value is capped to uint32
    return (_after * (_after - 1) * (2 * _after - 1) - _before * (_before - 1) * (2 * _before - 1)) / 6;
  }

  function _gapOfCubeSum(uint256 _before, uint256 _after)
    internal
    pure
    returns (uint256)
  {
    // max value is capped to uint32
    return ((_after * (_after - 1)) ** 2 - (_before * (_before - 1)) ** 2) >> 2;
  }

}


/**
 * @title CHHouse
 * @author M.H. Kang
 */
contract CHHouse is CHHunter {

  /* EVENT */

  event UpgradePet(
    address indexed user,
    uint256 id,
    uint256 to
  );

  event UpgradeDepot(
    address indexed user,
    uint256 to
  );

  event BuyItem(
    address indexed from,
    address indexed to,
    uint256 indexed id,
    uint256 cost
  );

  event BuyStore(
    address indexed from,
    address indexed to,
    uint256 cost
  );

  /* DATA STRUCT */

  struct Pet {
    uint256 huntingPower;
    uint256 offensePower;
    uint256 defensePower;
    uint256 chicken;
    uint256 ethereum;
    uint256 max;
  }

  struct Item {
    address owner;
    uint256 huntingMultiplier;
    uint256 offenseMultiplier;
    uint256 defenseMultiplier;
    uint256 cost;
  }

  struct Depot {
    uint256 ethereum;
    uint256 max;
  }

  /* STORAGE */

  uint256 public constant INCREMENT_RATE = 12; // 120% for Item and Store
  Depot public depot;
  Pet[] public pets;
  Item[] public items;

  /* FUNCTION */

  function buyDepots(uint256 _amount) external payable {
    House storage _house = _houseOf(msg.sender);
    _house.depots = _house.depots.add(_amount);
    require(_house.depots <= depot.max);
    _payEthereumAndDistribute(_amount.mul(depot.ethereum));

    emit UpgradeDepot(msg.sender, _house.depots);
  }

  function buyPets(uint256 _id, uint256 _amount) external payable {
    require(_id < pets.length);
    Pet memory _pet = pets[_id];
    uint256 _chickenCost = _amount * _pet.chicken;
    _payChicken(msg.sender, _chickenCost);
    uint256 _ethereumCost = _amount * _pet.ethereum;
    _payEthereumAndDistribute(_ethereumCost);

    House storage _house = _houseOf(msg.sender);
    if (_house.pets.length < _id + 1) {
      _house.pets.length = _id + 1;
    }
    _house.pets[_id] = _house.pets[_id].add(_amount);
    require(_house.pets[_id] <= _pet.max);

    _house.huntingPower = _house.huntingPower.add(_pet.huntingPower * _amount);
    _house.offensePower = _house.offensePower.add(_pet.offensePower * _amount);
    _house.defensePower = _house.defensePower.add(_pet.defensePower * _amount);

    emit UpgradePet(msg.sender, _id, _house.pets[_id]);
  }

  // This is independent of Stock and Altar.
  function buyItem(uint256 _id) external payable {
    Item storage _item = items[_id];
    address _from = _item.owner;
    uint256 _price = _item.cost.mul(INCREMENT_RATE) / 10;
    _payEthereum(_price);

    saveChickenOf(_from);
    House storage _fromHouse = _houseOf(_from);
    _fromHouse.huntingMultiplier = _fromHouse.huntingMultiplier.sub(_item.huntingMultiplier);
    _fromHouse.offenseMultiplier = _fromHouse.offenseMultiplier.sub(_item.offenseMultiplier);
    _fromHouse.defenseMultiplier = _fromHouse.defenseMultiplier.sub(_item.defenseMultiplier);

    saveChickenOf(msg.sender);
    House storage _toHouse = _houseOf(msg.sender);
    _toHouse.huntingMultiplier = _toHouse.huntingMultiplier.add(_item.huntingMultiplier);
    _toHouse.offenseMultiplier = _toHouse.offenseMultiplier.add(_item.offenseMultiplier);
    _toHouse.defenseMultiplier = _toHouse.defenseMultiplier.add(_item.defenseMultiplier);

    uint256 _halfMargin = _price.sub(_item.cost) / 2;
    devFee = devFee.add(_halfMargin);
    ethereumBalance[_from] = ethereumBalance[_from].add(_price - _halfMargin);

    items[_id].cost = _price;
    items[_id].owner = msg.sender;

    emit BuyItem(_from, msg.sender, _id, _price);
  }

  // This is independent of Stock and Altar.
  function buyStore() external payable {
    address _from = store.owner;
    uint256 _price = store.cost.mul(INCREMENT_RATE) / 10;
    _payEthereum(_price);

    uint256 _halfMargin = (_price - store.cost) / 2;
    devFee = devFee.add(_halfMargin);
    ethereumBalance[_from] = ethereumBalance[_from].add(_price - _halfMargin).add(store.balance);

    store.cost = _price;
    store.owner = msg.sender;
    delete store.balance;

    emit BuyStore(_from, msg.sender, _price);
  }

  function withdrawStoreBalance() public {
    ethereumBalance[store.owner] = ethereumBalance[store.owner].add(store.balance);
    delete store.balance;
  }

}


/**
 * @title CHArena
 * @author M.H. Kang
 */
contract CHArena is CHHouse {

  /* EVENT */

  event Attack(
    address indexed attacker,
    address indexed defender,
    uint256 booty
  );

  /* STORAGE */

  mapping(address => uint256) public attackCooldown;
  uint256 public cooldownTime;

  /* FUNCTION */

  function attack(address _target) external {
    require(attackCooldown[msg.sender] < block.timestamp);
    House storage _attacker = houses[msg.sender];
    House storage _defender = houses[_target];
    if (_attacker.offensePower.mul(_attacker.offenseMultiplier)
        > _defender.defensePower.mul(_defender.defenseMultiplier)) {
      uint256 _chicken = saveChickenOf(_target);
      _chicken = _defender.depots > 0 ? _chicken / _defender.depots : _chicken;
      savedChickenOf[_target] = savedChickenOf[_target] - _chicken;
      savedChickenOf[msg.sender] = savedChickenOf[msg.sender].add(_chicken);
      attackCooldown[msg.sender] = block.timestamp + cooldownTime;

      emit Attack(msg.sender, _target, _chicken);
    }
  }

}


/**
 * @title CHAltar
 * @author M.H. Kang
 */
contract CHAltar is CHArena {

  /* EVENT */

  event NewAltarRecord(uint256 id, uint256 ethereum);
  event ChickenToAltar(address indexed user, uint256 id, uint256 chicken);
  event EthereumFromAltar(address indexed user, uint256 id, uint256 ethereum);

  /* DATA STRUCT */

  struct AltarRecord {
    uint256 ethereum;
    uint256 chicken;
  }

  struct TradeBook {
    uint256 altarRecordId;
    uint256 chicken;
  }

  /* STORAGE */

  uint256 public genesis;
  mapping (uint256 => AltarRecord) public altarRecords;
  mapping (address => TradeBook) public tradeBooks;

  /* FUNCTION */

  function chickenToAltar(uint256 _chicken) external {
    require(_chicken > 0);

    _payChicken(msg.sender, _chicken);
    uint256 _id = _getCurrentAltarRecordId();
    AltarRecord storage _altarRecord = _getAltarRecord(_id);
    require(_altarRecord.ethereum * _chicken / _chicken == _altarRecord.ethereum);
    TradeBook storage _tradeBook = tradeBooks[msg.sender];
    if (_tradeBook.altarRecordId < _id) {
      _resolveTradeBook(_tradeBook);
      _tradeBook.altarRecordId = _id;
    }
    _altarRecord.chicken = _altarRecord.chicken.add(_chicken);
    _tradeBook.chicken += _chicken;

    emit ChickenToAltar(msg.sender, _id, _chicken);
  }

  function ethereumFromAltar() external {
    uint256 _id = _getCurrentAltarRecordId();
    TradeBook storage _tradeBook = tradeBooks[msg.sender];
    require(_tradeBook.altarRecordId < _id);
    _resolveTradeBook(_tradeBook);
  }

  function tradeBookOf(address _user)
    public
    view
    returns (
      uint256 _id,
      uint256 _ethereum,
      uint256 _totalChicken,
      uint256 _chicken,
      uint256 _income
    )
  {
    TradeBook memory _tradeBook = tradeBooks[_user];
    _id = _tradeBook.altarRecordId;
    _chicken = _tradeBook.chicken;
    AltarRecord memory _altarRecord = altarRecords[_id];
    _totalChicken = _altarRecord.chicken;
    _ethereum = _altarRecord.ethereum;
    _income = _totalChicken > 0 ? _ethereum.mul(_chicken) / _totalChicken : 0;
  }

  /* INTERNAL FUNCTION */

  function _resolveTradeBook(TradeBook storage _tradeBook) internal {
    if (_tradeBook.chicken > 0) {
      AltarRecord memory _oldAltarRecord = altarRecords[_tradeBook.altarRecordId];
      uint256 _ethereum = _oldAltarRecord.ethereum.mul(_tradeBook.chicken) / _oldAltarRecord.chicken;
      delete _tradeBook.chicken;
      ethereumBalance[msg.sender] = ethereumBalance[msg.sender].add(_ethereum);

      emit EthereumFromAltar(msg.sender, _tradeBook.altarRecordId, _ethereum);
    }
  }

  function _getCurrentAltarRecordId() internal view returns (uint256) {
    return (block.timestamp - genesis) / 86400;
  }

  function _getAltarRecord(uint256 _id) internal returns (AltarRecord storage _altarRecord) {
    _altarRecord = altarRecords[_id];
    if (_altarRecord.ethereum == 0) {
      uint256 _ethereum = altarFund / 10;
      _altarRecord.ethereum = _ethereum;
      altarFund -= _ethereum;

      emit NewAltarRecord(_id, _ethereum);
    }
  }

}


/**
 * @title CHCommittee
 * @author M.H. Kang
 */
contract CHCommittee is CHAltar {

  /* EVENT */

  event NewPet(
    uint256 id,
    uint256 huntingPower,
    uint256 offensePower,
    uint256 defense,
    uint256 chicken,
    uint256 ethereum,
    uint256 max
  );

  event ChangePet(
    uint256 id,
    uint256 chicken,
    uint256 ethereum,
    uint256 max
  );

  event NewItem(
    uint256 id,
    uint256 huntingMultiplier,
    uint256 offenseMultiplier,
    uint256 defenseMultiplier,
    uint256 ethereum
  );

  event SetDepot(uint256 ethereum, uint256 max);

  event SetConfiguration(
    uint256 chickenA,
    uint256 ethereumA,
    uint256 maxA,
    uint256 chickenB,
    uint256 ethereumB,
    uint256 maxB
  );

  event SetDistribution(
    uint256 dividendRate,
    uint256 altarCut,
    uint256 storeCut,
    uint256 devCut
  );

  event SetCooldownTime(uint256 cooldownTime);
  event SetNameAndSymbol(string name, string symbol);
  event SetDeveloper(address developer);
  event SetCommittee(address committee);

  /* STORAGE */

  address public committee;
  address public developer;

  /* FUNCTION */

  function callFor(address _to, uint256 _value, uint256 _gas, bytes _code)
    external
    payable
    onlyCommittee
    returns (bool)
  {
    return _to.call.value(_value).gas(_gas)(_code);
  }

  function addPet(
    uint256 _huntingPower,
    uint256 _offensePower,
    uint256 _defense,
    uint256 _chicken,
    uint256 _ethereum,
    uint256 _max
  )
    public
    onlyCommittee
  {
    require(_max > 0);
    require(_max == uint256(uint32(_max)));
    uint256 _newLength = pets.push(
      Pet(_huntingPower, _offensePower, _defense, _chicken, _ethereum, _max)
    );

    emit NewPet(
      _newLength - 1,
      _huntingPower,
      _offensePower,
      _defense,
      _chicken,
      _ethereum,
      _max
    );
  }

  function changePet(
    uint256 _id,
    uint256 _chicken,
    uint256 _ethereum,
    uint256 _max
  )
    public
    onlyCommittee
  {
    require(_id < pets.length);
    Pet storage _pet = pets[_id];
    require(_max >= _pet.max && _max == uint256(uint32(_max)));

    _pet.chicken = _chicken;
    _pet.ethereum = _ethereum;
    _pet.max = _max;

    emit ChangePet(_id, _chicken, _ethereum, _max);
  }

  function addItem(
    uint256 _huntingMultiplier,
    uint256 _offenseMultiplier,
    uint256 _defenseMultiplier,
    uint256 _price
  )
    public
    onlyCommittee
  {
    uint256 _cap = 1 << 16;
    require(
      _huntingMultiplier < _cap &&
      _offenseMultiplier < _cap &&
      _defenseMultiplier < _cap
    );
    saveChickenOf(committee);
    House storage _house = _houseOf(committee);
    _house.huntingMultiplier = _house.huntingMultiplier.add(_huntingMultiplier);
    _house.offenseMultiplier = _house.offenseMultiplier.add(_offenseMultiplier);
    _house.defenseMultiplier = _house.defenseMultiplier.add(_defenseMultiplier);

    uint256 _newLength = items.push(
      Item(
        committee,
        _huntingMultiplier,
        _offenseMultiplier,
        _defenseMultiplier,
        _price
      )
    );

    emit NewItem(
      _newLength - 1,
      _huntingMultiplier,
      _offenseMultiplier,
      _defenseMultiplier,
      _price
    );
  }

  function setDepot(uint256 _price, uint256 _max) public onlyCommittee {
    require(_max >= depot.max);

    depot.ethereum = _price;
    depot.max = _max;

    emit SetDepot(_price, _max);
  }

  function setConfiguration(
    uint256 _chickenA,
    uint256 _ethereumA,
    uint256 _maxA,
    uint256 _chickenB,
    uint256 _ethereumB,
    uint256 _maxB
  )
    public
    onlyCommittee
  {
    require(_maxA >= typeA.max && (_maxA == uint256(uint32(_maxA))));
    require(_maxB >= typeB.max && (_maxB == uint256(uint32(_maxB))));

    typeA.chicken = _chickenA;
    typeA.ethereum = _ethereumA;
    typeA.max = _maxA;

    typeB.chicken = _chickenB;
    typeB.ethereum = _ethereumB;
    typeB.max = _maxB;

    emit SetConfiguration(_chickenA, _ethereumA, _maxA, _chickenB, _ethereumB, _maxB);
  }

  function setDistribution(
    uint256 _dividendRate,
    uint256 _altarCut,
    uint256 _storeCut,
    uint256 _devCut
  )
    public
    onlyCommittee
  {
    require(_storeCut > 0);
    require(
      _dividendRate.add(_altarCut).add(_storeCut).add(_devCut) == 100
    );

    dividendRate = _dividendRate;
    altarCut = _altarCut;
    store.cut = _storeCut;
    devCut = _devCut;

    emit SetDistribution(_dividendRate, _altarCut, _storeCut, _devCut);
  }

  function setCooldownTime(uint256 _cooldownTime) public onlyCommittee {
    cooldownTime = _cooldownTime;

    emit SetCooldownTime(_cooldownTime);
  }

  function setNameAndSymbol(string _name, string _symbol)
    public
    onlyCommittee
  {
    name = _name;
    symbol = _symbol;

    emit SetNameAndSymbol(_name, _symbol);
  }

  function setDeveloper(address _developer) public onlyCommittee {
    require(_developer != address(0));
    withdrawDevFee();
    developer = _developer;

    emit SetDeveloper(_developer);
  }

  function setCommittee(address _committee) public onlyCommittee {
    require(_committee != address(0));
    committee = _committee;

    emit SetCommittee(_committee);
  }

  function withdrawDevFee() public {
    ethereumBalance[developer] = ethereumBalance[developer].add(devFee);
    delete devFee;
  }

  /* MODIFIER */

  modifier onlyCommittee {
    require(msg.sender == committee);
    _;
  }

}


/**
 * @title ChickenHunt
 * @author M.H. Kang
 */
contract ChickenHunt is CHCommittee {

  /* EVENT */

  event Join(address user);

  /* CONSTRUCTOR */

  constructor() public {
    committee = msg.sender;
    developer = msg.sender;
  }

  /* FUNCTION */

  function init(address _chickenTokenDelegator) external onlyCommittee {
    require(chickenTokenDelegator == address(0));
    chickenTokenDelegator = _chickenTokenDelegator;
    genesis = 1525791600;
    join();
    store.owner = msg.sender;
    store.cost = 0.1 ether;
    setConfiguration(100, 0.00001 ether, 99, 100000, 0.001 ether, 9);
    setDistribution(20, 75, 1, 4);
    setCooldownTime(600);
    setDepot(0.05 ether, 9);
    addItem(5, 5, 0, 0.01 ether);
    addItem(0, 0, 5, 0.01 ether);
    addPet(1000, 0, 0, 100000, 0.01 ether, 9);
    addPet(0, 1000, 0, 100000, 0.01 ether, 9);
    addPet(0, 0, 1000, 202500, 0.01 ether, 9);
  }

  function withdraw() external {
    uint256 _ethereum = ethereumBalance[msg.sender];
    delete ethereumBalance[msg.sender];
    msg.sender.transfer(_ethereum);
  }

  function join() public {
    House storage _house = houses[msg.sender];
    require(_house.depots == 0);
    _house.hunter = Hunter(1, 1, 1, 1);
    _house.depots = 1;
    _house.huntingPower = 10;
    _house.offensePower = 10;
    _house.defensePower = 110;
    _house.huntingMultiplier = 10;
    _house.offenseMultiplier = 10;
    _house.defenseMultiplier = 10;
    lastSaveTime[msg.sender] = block.timestamp;

    emit Join(msg.sender);
  }

  function hunterOf(address _user)
    public
    view
    returns (
      uint256 _strength,
      uint256 _dexterity,
      uint256 _constitution,
      uint256 _resistance
    )
  {
    Hunter memory _hunter = houses[_user].hunter;
    return (
      _hunter.strength,
      _hunter.dexterity,
      _hunter.constitution,
      _hunter.resistance
    );
  }

  function detailsOf(address _user)
    public
    view
    returns (
      uint256[2] _hunting,
      uint256[2] _offense,
      uint256[2] _defense,
      uint256[4] _hunter,
      uint256[] _pets,
      uint256 _depots,
      uint256 _savedChicken,
      uint256 _lastSaveTime,
      uint256 _cooldown
    )
  {
    House memory _house = houses[_user];

    _hunting = [_house.huntingPower, _house.huntingMultiplier];
    _offense = [_house.offensePower, _house.offenseMultiplier];
    _defense = [_house.defensePower, _house.defenseMultiplier];
    _hunter = [
      _house.hunter.strength,
      _house.hunter.dexterity,
      _house.hunter.constitution,
      _house.hunter.resistance
    ];
    _pets = _house.pets;
    _depots = _house.depots;
    _savedChicken = savedChickenOf[_user];
    _lastSaveTime = lastSaveTime[_user];
    _cooldown = attackCooldown[_user];
  }

}

Contract ABI
[{"constant":true,"inputs":[{"name":"_shareholder","type":"address"}],"name":"dividendsOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"depot","outputs":[{"name":"ethereum","type":"uint256"},{"name":"max","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_id","type":"uint256"},{"name":"_amount","type":"uint256"}],"name":"buyPets","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"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":"_user","type":"address"}],"name":"detailsOf","outputs":[{"name":"_hunting","type":"uint256[2]"},{"name":"_offense","type":"uint256[2]"},{"name":"_defense","type":"uint256[2]"},{"name":"_hunter","type":"uint256[4]"},{"name":"_pets","type":"uint256[]"},{"name":"_depots","type":"uint256"},{"name":"_savedChicken","type":"uint256"},{"name":"_lastSaveTime","type":"uint256"},{"name":"_cooldown","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_dividendRate","type":"uint256"},{"name":"_altarCut","type":"uint256"},{"name":"_storeCut","type":"uint256"},{"name":"_devCut","type":"uint256"}],"name":"setDistribution","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_chickenTokenDelegator","type":"address"}],"name":"init","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"uint256"}],"name":"upgradeDexterity","outputs":[],"payable":true,"stateMutability":"payable","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":"altarCut","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawStoreBalance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"typeB","outputs":[{"name":"chicken","type":"uint256"},{"name":"ethereum","type":"uint256"},{"name":"max","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalShares","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_chicken","type":"uint256"}],"name":"chickenToAltar","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"buyStore","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"uint256"}],"name":"upgradeConstitution","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_huntingMultiplier","type":"uint256"},{"name":"_offenseMultiplier","type":"uint256"},{"name":"_defenseMultiplier","type":"uint256"},{"name":"_price","type":"uint256"}],"name":"addItem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"uint256"}],"name":"upgradeResistance","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"},{"name":"_symbol","type":"string"}],"name":"setNameAndSymbol","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"INCREMENT_RATE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"ethereumBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_user","type":"address"}],"name":"chickenOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"devFee","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_cooldownTime","type":"uint256"}],"name":"setCooldownTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"buyDepots","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"typeA","outputs":[{"name":"chicken","type":"uint256"},{"name":"ethereum","type":"uint256"},{"name":"max","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_price","type":"uint256"},{"name":"_max","type":"uint256"}],"name":"setDepot","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"savedChickenOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_huntingPower","type":"uint256"},{"name":"_offensePower","type":"uint256"},{"name":"_defense","type":"uint256"},{"name":"_chicken","type":"uint256"},{"name":"_ethereum","type":"uint256"},{"name":"_max","type":"uint256"}],"name":"addPet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"store","outputs":[{"name":"owner","type":"address"},{"name":"cut","type":"uint256"},{"name":"cost","type":"uint256"},{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"ethereumFromAltar","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"devCut","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"genesis","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":true,"inputs":[{"name":"_user","type":"address"}],"name":"hunterOf","outputs":[{"name":"_strength","type":"uint256"},{"name":"_dexterity","type":"uint256"},{"name":"_constitution","type":"uint256"},{"name":"_resistance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"altarRecords","outputs":[{"name":"ethereum","type":"uint256"},{"name":"chicken","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"cooldownTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"redeemShares","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_chickenA","type":"uint256"},{"name":"_ethereumA","type":"uint256"},{"name":"_maxA","type":"uint256"},{"name":"_chickenB","type":"uint256"},{"name":"_ethereumB","type":"uint256"},{"name":"_maxB","type":"uint256"}],"name":"setConfiguration","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"join","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"tradeBooks","outputs":[{"name":"altarRecordId","type":"uint256"},{"name":"chicken","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_committee","type":"address"}],"name":"setCommittee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"items","outputs":[{"name":"owner","type":"address"},{"name":"huntingMultiplier","type":"uint256"},{"name":"offenseMultiplier","type":"uint256"},{"name":"defenseMultiplier","type":"uint256"},{"name":"cost","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalChicken","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_gas","type":"uint256"},{"name":"_code","type":"bytes"}],"name":"callFor","outputs":[{"name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferChickenFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"developer","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawDevFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CORRECTION","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"pets","outputs":[{"name":"huntingPower","type":"uint256"},{"name":"offensePower","type":"uint256"},{"name":"defensePower","type":"uint256"},{"name":"chicken","type":"uint256"},{"name":"ethereum","type":"uint256"},{"name":"max","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_target","type":"address"}],"name":"attack","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_user","type":"address"}],"name":"tradeBookOf","outputs":[{"name":"_id","type":"uint256"},{"name":"_ethereum","type":"uint256"},{"name":"_totalChicken","type":"uint256"},{"name":"_chicken","type":"uint256"},{"name":"_income","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"uint256"}],"name":"upgradeStrength","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"dividendRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"committee","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"chickenTokenDelegator","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","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":"_user","type":"address"}],"name":"saveChickenOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"dividendsPerShare","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_id","type":"uint256"}],"name":"buyItem","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"altarFund","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"lastSaveTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"attackCooldown","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_id","type":"uint256"},{"name":"_chicken","type":"uint256"},{"name":"_ethereum","type":"uint256"},{"name":"_max","type":"uint256"}],"name":"changePet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_developer","type":"address"}],"name":"setDeveloper","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"user","type":"address"}],"name":"Join","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"id","type":"uint256"},{"indexed":false,"name":"huntingPower","type":"uint256"},{"indexed":false,"name":"offensePower","type":"uint256"},{"indexed":false,"name":"defense","type":"uint256"},{"indexed":false,"name":"chicken","type":"uint256"},{"indexed":false,"name":"ethereum","type":"uint256"},{"indexed":false,"name":"max","type":"uint256"}],"name":"NewPet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"id","type":"uint256"},{"indexed":false,"name":"chicken","type":"uint256"},{"indexed":false,"name":"ethereum","type":"uint256"},{"indexed":false,"name":"max","type":"uint256"}],"name":"ChangePet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"id","type":"uint256"},{"indexed":false,"name":"huntingMultiplier","type":"uint256"},{"indexed":false,"name":"offenseMultiplier","type":"uint256"},{"indexed":false,"name":"defenseMultiplier","type":"uint256"},{"indexed":false,"name":"ethereum","type":"uint256"}],"name":"NewItem","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"ethereum","type":"uint256"},{"indexed":false,"name":"max","type":"uint256"}],"name":"SetDepot","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"chickenA","type":"uint256"},{"indexed":false,"name":"ethereumA","type":"uint256"},{"indexed":false,"name":"maxA","type":"uint256"},{"indexed":false,"name":"chickenB","type":"uint256"},{"indexed":false,"name":"ethereumB","type":"uint256"},{"indexed":false,"name":"maxB","type":"uint256"}],"name":"SetConfiguration","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"dividendRate","type":"uint256"},{"indexed":false,"name":"altarCut","type":"uint256"},{"indexed":false,"name":"storeCut","type":"uint256"},{"indexed":false,"name":"devCut","type":"uint256"}],"name":"SetDistribution","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"cooldownTime","type":"uint256"}],"name":"SetCooldownTime","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"name","type":"string"},{"indexed":false,"name":"symbol","type":"string"}],"name":"SetNameAndSymbol","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"developer","type":"address"}],"name":"SetDeveloper","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"committee","type":"address"}],"name":"SetCommittee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"id","type":"uint256"},{"indexed":false,"name":"ethereum","type":"uint256"}],"name":"NewAltarRecord","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"user","type":"address"},{"indexed":false,"name":"id","type":"uint256"},{"indexed":false,"name":"chicken","type":"uint256"}],"name":"ChickenToAltar","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"user","type":"address"},{"indexed":false,"name":"id","type":"uint256"},{"indexed":false,"name":"ethereum","type":"uint256"}],"name":"EthereumFromAltar","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"attacker","type":"address"},{"indexed":true,"name":"defender","type":"address"},{"indexed":false,"name":"booty","type":"uint256"}],"name":"Attack","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"user","type":"address"},{"indexed":false,"name":"id","type":"uint256"},{"indexed":false,"name":"to","type":"uint256"}],"name":"UpgradePet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"user","type":"address"},{"indexed":false,"name":"to","type":"uint256"}],"name":"UpgradeDepot","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":true,"name":"id","type":"uint256"},{"indexed":false,"name":"cost","type":"uint256"}],"name":"BuyItem","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"cost","type":"uint256"}],"name":"BuyStore","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"user","type":"address"},{"indexed":false,"name":"attribute","type":"string"},{"indexed":false,"name":"to","type":"uint256"}],"name":"UpgradeHunter","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"user","type":"address"},{"indexed":false,"name":"shares","type":"uint256"},{"indexed":false,"name":"dividends","type":"uint256"}],"name":"RedeemShares","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":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"}]

Contract Creation Code
60c0604052601060808190527f436869636b656e48756e7453746f636b0000000000000000000000000000000060a0908152620000409160009190620000cb565b506040805180820190915260038082527f434853000000000000000000000000000000000000000000000000000000000060209092019182526200008791600191620000cb565b506002805460ff19166012179055348015620000a257600080fd5b506027805433600160a060020a0319918216811790925560288054909116909117905562000170565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200010e57805160ff19168380011785556200013e565b828001600101855582156200013e579182015b828111156200013e57825182559160200191906001019062000121565b506200014c92915062000150565b5090565b6200016d91905b808211156200014c576000815560010162000157565b90565b613b8b80620001806000396000f3006080604052600436106103415763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166265318b8114610346578063016899de14610379578063045f955b146103a757806306fdde03146103b7578063095ea7b3146104415780630adae972146104795780630fc709e5146105ba57806318160ddd146105db57806319ab453c146105f05780631fa087551461061157806323b872dd1461061c57806327bb020a1461064657806328b8b1081461065b5780632b2e715914610670578063313ce567146106a35780633a98ef39146106ce5780633ccfd60b146106e357806341ad3f57146106f8578063463ac31b146107105780634c97c83614610718578063572b130f146107235780635996228e146107445780635a4462151461074f5780635baef4f3146107e65780635c5c1285146107fb57806363fd7eb01461081c5780636827e7641461083d5780636ff732011461085257806370a082311461086a578063765878471461088b5780637ebd02f8146108965780638e7a1697146108ab578063910ab259146108c6578063916a4b57146108e757806395d89b411461090e578063975057e71461092357806398d714ac146109685780639c2868371461097d578063a7f0b3de14610992578063a9059cbb146109a7578063a9782954146109cb578063aaa363c914610a12578063b319c6b714610a2a578063b460481d14610a3f578063b48fcdc014610a54578063b688a36314610a7b578063b92c404f14610a90578063bddae40e14610ab1578063bfb231d214610ad2578063c3ba65e714610b1f578063c60c3aca14610b34578063ca1a308614610b5c578063ca4b208b14610b86578063cb93f7ef14610bb7578063ce5e9ffb14610bcc578063cfb869bf14610be1578063d018db3e14610c2c578063d1a6102514610c4d578063d583644b14610c99578063d6a3f37414610ca4578063d864e74014610cb9578063dba8be6e14610cce578063dd62ed3e14610ce3578063de2f827e14610d0a578063e2d2e21914610d2b578063e7fb74c714610d40578063eb4eecec14610d4b578063efab37bf14610d60578063f0bb754014610d81578063f67501f714610da2578063ff70fa4914610dc3575b600080fd5b34801561035257600080fd5b50610367600160a060020a0360043516610de4565b60408051918252519081900360200190f35b34801561038557600080fd5b5061038e610e61565b6040805192835260208301919091528051918290030190f35b6103b5600435602435610e6a565b005b3480156103c357600080fd5b506103cc611074565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104065781810151838201526020016103ee565b50505050905090810190601f1680156104335780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561044d57600080fd5b50610465600160a060020a0360043516602435611102565b604080519115158252519081900360200190f35b34801561048557600080fd5b5061049a600160a060020a0360043516611169565b604051808a600260200280838360005b838110156104c25781810151838201526020016104aa565b5050505090500189600260200280838360005b838110156104ed5781810151838201526020016104d5565b5050505090500188600260200280838360005b83811015610518578181015183820152602001610500565b5050505090500187600460200280838360005b8381101561054357818101518382015260200161052b565b5050505090500180602001868152602001858152602001848152602001838152602001828103825287818151815260200191508051906020019060200280838360005b8381101561059e578181015183820152602001610586565b505050509050019a505050505050505050505060405180910390f35b3480156105c657600080fd5b506103b56004356024356044356064356113c0565b3480156105e757600080fd5b50610367611467565b3480156105fc57600080fd5b506103b5600160a060020a036004351661146e565b6103b56004356115b4565b34801561062857600080fd5b50610465600160a060020a03600435811690602435166044356116de565b34801561065257600080fd5b5061036761174d565b34801561066757600080fd5b506103b5611753565b34801561067c57600080fd5b506106856117a3565b60408051938452602084019290925282820152519081900360600190f35b3480156106af57600080fd5b506106b86117af565b6040805160ff9092168252519081900360200190f35b3480156106da57600080fd5b506103676117b8565b3480156106ef57600080fd5b506103b56117be565b34801561070457600080fd5b506103b5600435611803565b6103b56118d9565b6103b56004356119e5565b34801561072f57600080fd5b506103b5600435602435604435606435611af9565b6103b5600435611d36565b34801561075b57600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526103b594369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a999881019791965091820194509250829150840183828082843750949750611e3d9650505050505050565b3480156107f257600080fd5b50610367611f80565b34801561080757600080fd5b50610367600160a060020a0360043516611f85565b34801561082857600080fd5b50610367600160a060020a0360043516611f97565b34801561084957600080fd5b50610367611fca565b34801561085e57600080fd5b506103b5600435611fd0565b34801561087657600080fd5b50610367600160a060020a0360043516612022565b6103b560043561203d565b3480156108a257600080fd5b506106856120d0565b3480156108b757600080fd5b506103b56004356024356120dc565b3480156108d257600080fd5b50610367600160a060020a036004351661214b565b3480156108f357600080fd5b506103b560043560243560443560643560843560a43561215d565b34801561091a57600080fd5b506103cc612328565b34801561092f57600080fd5b50610938612382565b60408051600160a060020a0390951685526020850193909352838301919091526060830152519081900360800190f35b34801561097457600080fd5b506103b561239d565b34801561098957600080fd5b506103676123d2565b34801561099e57600080fd5b506103676123d8565b3480156109b357600080fd5b50610465600160a060020a03600435166024356123de565b3480156109d757600080fd5b506109ec600160a060020a03600435166123f4565b604080519485526020850193909352838301919091526060830152519081900360800190f35b348015610a1e57600080fd5b5061038e60043561245d565b348015610a3657600080fd5b50610367612476565b348015610a4b57600080fd5b506103b561247c565b348015610a6057600080fd5b506103b560043560243560443560643560843560a43561254b565b348015610a8757600080fd5b506103b5612621565b348015610a9c57600080fd5b5061038e600160a060020a03600435166126f0565b348015610abd57600080fd5b506103b5600160a060020a0360043516612709565b348015610ade57600080fd5b50610aea600435612789565b60408051600160a060020a03909616865260208601949094528484019290925260608401526080830152519081900360a00190f35b348015610b2b57600080fd5b506103676127d2565b61046560048035600160a060020a0316906024803591604435916064359081019101356127d8565b348015610b6857600080fd5b50610465600160a060020a036004358116906024351660443561282f565b348015610b9257600080fd5b50610b9b6128b9565b60408051600160a060020a039092168252519081900360200190f35b348015610bc357600080fd5b506103b56128c8565b348015610bd857600080fd5b50610367612918565b348015610bed57600080fd5b50610bf9600435612925565b604080519687526020870195909552858501939093526060850191909152608084015260a0830152519081900360c00190f35b348015610c3857600080fd5b506103b5600160a060020a0360043516612969565b348015610c5957600080fd5b50610c6e600160a060020a0360043516612ab6565b6040805195865260208601949094528484019290925260608401526080830152519081900360a00190f35b6103b5600435612b66565b348015610cb057600080fd5b50610367612c8d565b348015610cc557600080fd5b50610b9b612c93565b348015610cda57600080fd5b50610b9b612ca2565b348015610cef57600080fd5b50610367600160a060020a0360043581169060243516612cb1565b348015610d1657600080fd5b50610367600160a060020a0360043516612cdc565b348015610d3757600080fd5b50610367612d5e565b6103b5600435612d64565b348015610d5757600080fd5b50610367612fd4565b348015610d6c57600080fd5b50610367600160a060020a0360043516612fda565b348015610d8d57600080fd5b50610367600160a060020a0360043516612fec565b348015610dae57600080fd5b506103b5600435602435604435606435612ffe565b348015610dcf57600080fd5b506103b5600160a060020a03600435166130cb565b600160a060020a03811660009081526008602090815260408083205460078352818420546006909352908320546004546801000000000000000093610e4f9392610e4392610e379163ffffffff61315316565b9063ffffffff61317c16565b9063ffffffff61318916565b811515610e5857fe5b0490505b919050565b601e54601f5482565b610e7261397f565b602054600090819081908610610e8757600080fd5b6020805487908110610e9557fe5b906000526020600020906006020160c0604051908101604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482015481526020016005820154815250509350836060015185029250610f00338461319b565b836080015185029150610f1282613261565b610f1b336132fb565b600b810154909150600187011115610f405760018601610f3e600b8301826139b6565b505b610f6e8582600b0188815481101515610f5557fe5b906000526020600020015461317c90919063ffffffff16565b600b8201805488908110610f7e57fe5b60009182526020909120015560a0840151600b8201805488908110610f9f57fe5b906000526020600020015411151515610fb757600080fd5b83516004820154610fcf91870263ffffffff61317c16565b600482015560208401516005820154610fef91870263ffffffff61317c16565b60058201556040840151600682015461100f91870263ffffffff61317c16565b6006820155600b8101805433917f16ab5780b3810d9cdc9a1ed37ce0fa7ea98e877c6f8a257fb37b16833bcba471918991908290811061104b57fe5b6000918252602091829020015460408051938452918301528051918290030190a2505050505050565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156110fa5780601f106110cf576101008083540402835291602001916110fa565b820191906000526020600020905b8154815290600101906020018083116110dd57829003601f168201915b505050505081565b336000818152600960209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b6111716139da565b6111796139da565b6111816139da565b6111896139f5565b6060600080600080611199613a14565b600160a060020a038b1660009081526017602090815260409182902082516101a0810184528154610120820190815260018301546101408301526002830154610160830152600383015461018083015281526004820154818401526005820154818501526006820154606082015260078201546080820152600882015460a0820152600982015460c0820152600a82015460e0820152600b8201805485518186028101860190965280865291949293610100860193929083018282801561127f57602002820191906000526020600020905b81548152602001906001019080831161126b575b5050505050815250509050604080519081016040528082602001518152602001826080015181525099506040805190810160405280826040015181526020018260a0015181525098506040805190810160405280826060015181526020018260c001518152509750608060405190810160405280826000015160000151815260200182600001516020015181526020018260000151604001518152602001826000015160600151815250965080610100015195508060e001519450601660008c600160a060020a0316600160a060020a03168152602001908152602001600020549350601560008c600160a060020a0316600160a060020a03168152602001908152602001600020549250602260008c600160a060020a0316600160a060020a03168152602001908152602001600020549150509193959799909294969850565b602754600160a060020a031633146113d757600080fd5b600082116113e457600080fd5b6113fa81610e378481888863ffffffff61317c16565b60641461140657600080fd5b60128490556010839055600b829055600e81905560408051858152602081018590528082018490526060810183905290517f19b0c2b62f3fec0fb2a4ad13aa46c5627e326ae04dd8fba61a5b905cd53f7eb79181900360800190a150505050565b6003545b90565b602754600160a060020a0316331461148557600080fd5b601454600160a060020a03161561149b57600080fd5b60148054600160a060020a031916600160a060020a038316179055635af1bb706024556114c6612621565b600a8054600160a060020a0319163317905567016345785d8a0000600c5561150560646509184e72a0006063620186a066038d7ea4c68000600961254b565b6115156014604b600160046113c0565b611520610258611fd0565b61153266b1a2bc2ec5000060096120dc565b6115476005806000662386f26fc10000611af9565b61155c6000806005662386f26fc10000611af9565b6115786103e8600080620186a0662386f26fc10000600961215d565b61159560006103e86000620186a0662386f26fc10000600961215d565b6115b16000806103e862031704662386f26fc10000600961215d565b50565b60008060006115c2336132fb565b6001810154601d54919450925084118015906115dd57508184115b15156115e857600080fd5b60408051606081018252601b548152601c546020820152601d54918101919091526116169083908690613324565b61164361162c838603600263ffffffff61315316565b84546116379061337e565b9063ffffffff61315316565b600184018590556004840154909150611662908263ffffffff61317c16565b6004840155600583015461167c908263ffffffff61317c16565b600584015560408051602081018690528181526009818301527f6465787465726974790000000000000000000000000000000000000000000000606082015290513391600080516020613b40833981519152919081900360800190a250505050565b600160a060020a038316600090815260096020908152604080832033845290915281205482111561170e57600080fd5b600160a060020a038416600090815260096020908152604080832033845290915290208054839003905561174384848461338a565b5060019392505050565b60105481565b600d54600a54600160a060020a03166000908152600560205260409020546117809163ffffffff61317c16565b600a54600160a060020a0316600090815260056020526040812091909155600d55565b601b54601c54601d5483565b60025460ff1681565b60035481565b33600081815260056020526040808220805490839055905190929183156108fc02918491818181858888f193505050501580156117ff573d6000803e3d6000fd5b5050565b6000808080841161181357600080fd5b61181d338561319b565b611825613595565b9250611830836135a5565b80549092508480820281151561184257fe5b041461184d57600080fd5b5033600090815260266020526040902080548311156118735761186f81613614565b8281555b6001820154611888908563ffffffff61317c16565b60018084019190915581018054850190556040805184815260208101869052815133927f249d3c255987361d5d69f32914f89ba3b6617f290ed9e435126a39a7cff6d996928290030190a250505050565b600a8054600c8054600160a060020a03909216926000928392611902919063ffffffff61315316565b81151561190b57fe5b049150611917826136fd565b600c54600290830304905061193781600f5461317c90919063ffffffff16565b600f55600d54600160a060020a03841660009081526005602052604090205461196d9190610e379084860363ffffffff61317c16565b600160a060020a038416600081815260056020908152604080832094909455600c869055600a8054600160a060020a03191633908117909155600d929092558351868152935191937f0f24f9f79a489f214543721c774ce6b52901934b07e7da8c77642f1866f0e841929081900390910190a3505050565b60008060006119f3336132fb565b6002810154601a5491945092508411801590611a0e57508184115b1515611a1957600080fd5b6040805160608101825260185481526019546020820152601a5491810191909152611a479083908690613324565b611a786002830a611a578661337e565b036116376008610e376002886000016003015461315390919063ffffffff16565b600284018590556006840154909150611a97908263ffffffff61317c16565b60068401556040805160208101869052818152600c818301527f636f6e737469747574696f6e0000000000000000000000000000000000000000606082015290513391600080516020613b40833981519152919081900360800190a250505050565b60275460009081908190600160a060020a03163314611b1757600080fd5b6201000092508287108015611b2b57508286105b8015611b3657508285105b1515611b4157600080fd5b602754611b5690600160a060020a0316612cdc565b50602754611b6c90600160a060020a03166132fb565b6007810154909250611b84908863ffffffff61317c16565b60078301556008820154611b9e908763ffffffff61317c16565b60088301556009820154611bb8908663ffffffff61317c16565b6009830155506040805160a08082018352602754600160a060020a03908116835260208084018b81528486018b815260608087018c815260808089018d815260218054600181018083556000929092529a517f3a6357012c1a3ae0a17d304c9920310382d968ebcc4b1771f41c6b304205b57060058d029081018054600160a060020a03191692909b169190911790995595517f3a6357012c1a3ae0a17d304c9920310382d968ebcc4b1771f41c6b304205b57189015593517f3a6357012c1a3ae0a17d304c9920310382d968ebcc4b1771f41c6b304205b57288015590517f3a6357012c1a3ae0a17d304c9920310382d968ebcc4b1771f41c6b304205b57387015591517f3a6357012c1a3ae0a17d304c9920310382d968ebcc4b1771f41c6b304205b5749095019490945586519586529185018c90528486018b9052918401899052830187905292517f2f770e091da1eb4be223d793b34fcd1b5cbff2f4c74ad7f2d7d55c1eceda488d9281900390910190a150505050505050565b6000806000611d44336132fb565b6003810154601d5491945092508411801590611d5f57508184115b1515611d6a57600080fd5b60408051606081018252601b548152601c546020820152601d5491810191909152611d989083908690613324565b611dbc611dae838603600263ffffffff61315316565b60028501546116379061337e565b600384018590556006840154909150611ddb908263ffffffff61317c16565b60068401556040805160208101869052818152600a818301527f726573697374616e636500000000000000000000000000000000000000000000606082015290513391600080516020613b40833981519152919081900360800190a250505050565b602754600160a060020a03163314611e5457600080fd5b8151611e67906000906020850190613a67565b508051611e7b906001906020840190613a67565b507fd150542982eaa18f20ceb10f524c418899e6a331a81ee4a70daa921f976fab3b8282604051808060200180602001838103835285818151815260200191508051906020019080838360005b83811015611ee0578181015183820152602001611ec8565b50505050905090810190601f168015611f0d5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015611f40578181015183820152602001611f28565b50505050905090810190601f168015611f6d5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050565b600c81565b60056020526000908152604090205481565b6000611163611fa58361377d565b600160a060020a0384166000908152601660205260409020549063ffffffff61317c16565b600f5481565b602754600160a060020a03163314611fe757600080fd5b60238190556040805182815290517ff1f62fb53f063eeed657f6ed8c238c2e61ef9547b206dac91c836599fb8f7a339181900360200190a150565b600160a060020a031660009081526006602052604090205490565b6000612048336132fb565b600a810154909150612060908363ffffffff61317c16565b600a8201819055601f54101561207557600080fd5b601e546120929061208d90849063ffffffff61315316565b613261565b600a810154604080519182525133917f088f18ecb97af8211f9549cddf9227ee53f8fda22b969dab5621461c80fc7d50919081900360200190a25050565b601854601954601a5483565b602754600160a060020a031633146120f357600080fd5b601f5481101561210257600080fd5b601e829055601f819055604080518381526020810183905281517f25e5d03ea9004bbd99c954a40cefdb9a23e87966152ac725e8c44386f6e11798929181900390910190a15050565b60166020526000908152604090205481565b602754600090600160a060020a0316331461217757600080fd5b6000821161218457600080fd5b63ffffffff8216821461219657600080fd5b506040805160c08181018352888252602082810189815283850189815260608086018a815260808088018b815260a0808a018c8152885460018101808b5560008b90529b51600682027fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb81019190915598517fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bc8a015596517fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bd89015593517fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866be88015590517fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bf87015591517fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866c09095019490945587519283529382018d90528187018c905281018a9052908101889052908101869052908101849052915190917f825cf2439eaf73dfac2c09fd8f2d837fad3d41ae9997922036b523f11e6c1226919081900360e00190a150505050505050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156110fa5780601f106110cf576101008083540402835291602001916110fa565b600a54600b54600c54600d54600160a060020a039093169284565b6000806123a8613595565b3360009081526026602052604090208054919350915082116123c957600080fd5b6117ff81613614565b600e5481565b60245481565b60006123eb33848461338a565b50600192915050565b600080600080612402613ae5565b50505050600160a060020a039190911660009081526017602090815260409182902082516080810184528154808252600183015493820184905260028301549482018590526003909201546060909101819052909491935090565b6025602052600090815260409020805460019091015482565b60235481565b336000818152600660205260408120549161249690610de4565b3360009081526006602090815260408083208390556007825280832083905560089091528120556003549091506124d3908363ffffffff61318916565b600355336000908152600560205260409020546124f6908263ffffffff61317c16565b33600081815260056020908152604091829020939093558051858152928301849052805191927fef7fb21fed1701a6c82b78d78bad1ddab67e41025c2d5078a1be2a3a238b4e62929081900390910190a25050565b602754600160a060020a0316331461256257600080fd5b601a54841080159061257957508363ffffffff1684145b151561258457600080fd5b601d54811080159061259b57508063ffffffff1681145b15156125a657600080fd5b60188690556019859055601a849055601b839055601c829055601d8190556040805187815260208101879052808201869052606081018590526080810184905260a0810183905290517fdd7612d23bf1ba260c41948384c8a672815d6e6f03705f4ccb8db39d01bb49d09181900360c00190a1505050505050565b336000908152601760205260409020600a8101541561263f57600080fd5b604080516080810182526001808252602080830182905282840182905260609092018190528084558381018190556002840181905560038401819055600a808501919091556004840181905560058401819055606e60068501556007840181905560088401819055600984015533600081815260158352839020429055825190815291517f0764c80c4165f118547b301a0b4b91eac21bd2f2d9b61d0ac723ff0aab27bb799281900390910190a150565b6026602052600090815260409020805460019091015482565b602754600160a060020a0316331461272057600080fd5b600160a060020a038116151561273557600080fd5b60278054600160a060020a038316600160a060020a0319909116811790915560408051918252517f22a3400c609e52ea781540daed872a0ff7b79a428f634be082c24c2faf0684639181900360200190a150565b602180548290811061279757fe5b600091825260209091206005909102018054600182015460028301546003840154600490940154600160a060020a0390931694509092909185565b60135481565b602754600090600160a060020a031633146127f257600080fd5b85600160a060020a0316858590858560405180838380828437820191505092505050600060405180830381858888f19a9950505050505050505050565b601454600090600160a060020a0316331461284957600080fd5b8161285385612cdc565b101561285e57600080fd5b600160a060020a038085166000908152601660205260408082208054869003905591851681522054612896908363ffffffff61317c16565b600160a060020a0384166000908152601660205260409020555060019392505050565b602854600160a060020a031681565b600f54602854600160a060020a03166000908152600560205260409020546128f59163ffffffff61317c16565b602854600160a060020a0316600090815260056020526040812091909155600f55565b6801000000000000000081565b602080548290811061293357fe5b60009182526020909120600690910201805460018201546002830154600384015460048501546005909501549395509193909286565b3360009081526022602052604081205481908190421161298857600080fd5b33600090815260176020526040808220600160a060020a03871683529120600981015460068201549295509093506129c6919063ffffffff61315316565b600884015460058501546129df9163ffffffff61315316565b1115612ab0576129ee84612cdc565b9050600082600a015411612a025780612a13565b81600a015481811515612a1157fe5b045b600160a060020a03851660009081526016602052604080822080548490039055338252902054909150612a4c908263ffffffff61317c16565b3360008181526016602090815260408083209490945560235460228252918490204290920190915582518481529251600160a060020a038816937f07fc6d85ef6db5c911f925dd0be5e0b6139a4d732479327729330fcf4ab15e2d92908290030190a35b50505050565b6000806000806000612ac6613b0e565b612ace613b0e565b5050600160a060020a03861660009081526026602090815260408083208151808301835281548082526001928301548286018190528187526025865284872085518087019096528054808752940154958501869052909a50919850929650945090918511612b3d576000612b59565b84612b4e878663ffffffff61315316565b811515612b5757fe5b045b9250505091939590929450565b6000806000612b74336132fb565b8054601a5491945092508411801590612b8c57508184115b1515612b9757600080fd5b6040805160608101825260185481526019546020820152601a5491810191909152612bc59083908690613324565b612bf66002830a612bd58661337e565b036116376008610e376002886000016001015461315390919063ffffffff16565b8484556004840154909150612c11908263ffffffff61317c16565b60048401556005830154612c2b908263ffffffff61317c16565b600584015560408051602081018690528181526008818301527f737472656e677468000000000000000000000000000000000000000000000000606082015290513391600080516020613b40833981519152919081900360800190a250505050565b60125481565b602754600160a060020a031681565b601454600160a060020a031681565b600160a060020a03918216600090815260096020908152604080832093909416825291909152205490565b6000806000612cea8461377d565b601354909250612d00908363ffffffff61317c16565b601355600160a060020a038416600090815260166020526040902054612d2c908363ffffffff61317c16565b600160a060020a0394909416600090815260166020908152604080832087905560159091529020429055509192915050565b60045481565b600080600080600080602187815481101515612d7c57fe5b6000918252602090912060059091020180546004820154919750600160a060020a03169550600a90612db590600c63ffffffff61315316565b811515612dbe57fe5b049350612dca846136fd565b612dd385612cdc565b50612ddd856132fb565b9250612dfa8660010154846007015461318990919063ffffffff16565b600784015560028601546008840154612e189163ffffffff61318916565b600884015560038601546009840154612e369163ffffffff61318916565b6009840155612e4433612cdc565b50612e4e336132fb565b9150612e6b8660010154836007015461317c90919063ffffffff16565b600783015560028601546008830154612e899163ffffffff61317c16565b600883015560038601546009830154612ea79163ffffffff61317c16565b60098301556004860154600290612ec590869063ffffffff61318916565b811515612ece57fe5b049050612ee681600f5461317c90919063ffffffff16565b600f55600160a060020a038516600090815260056020526040902054612f149082860363ffffffff61317c16565b600160a060020a0386166000908152600560205260409020556021805485919089908110612f3e57fe5b90600052602060002090600502016004018190555033602188815481101515612f6357fe5b6000918252602091829020600591909102018054600160a060020a031916600160a060020a039384161790556040805187815290518a933393908a16927fc6d7a5e59f38ae48e0f1577ce4627ba9b270bfd4c2c0c7be609c429421bc3d68929081900390910190a450505050505050565b60115481565b60156020526000908152604090205481565b60226020526000908152604090205481565b602754600090600160a060020a0316331461301857600080fd5b602054851061302657600080fd5b602080548690811061303457fe5b906000526020600020906006020190508060050154821015801561305d57508163ffffffff1682145b151561306857600080fd5b60038101849055600481018390556005810182905560408051868152602081018690528082018590526060810184905290517f2c2e9072543dfe5f0b03fabc22ced8ddd4e6f976a64f2f4726c4ea72cf8d31c09181900360800190a15050505050565b602754600160a060020a031633146130e257600080fd5b600160a060020a03811615156130f757600080fd5b6130ff6128c8565b60288054600160a060020a038316600160a060020a0319909116811790915560408051918252517f8aaf3a0823afdd08e2480f3fac4af353fad0c1e1aeffae73284c2295e441fc939181900360200190a150565b600082151561316457506000611163565b5081810281838281151561317457fe5b041461116357fe5b8181018281101561116357fe5b60008282111561319557fe5b50900390565b6000806131a78461377d565b9150818311156132085750600160a060020a038316600090815260166020526040902054818303908111156131db57600080fd5b600160a060020a038416600090815260166020526040902080548290039055601380548290039055613242565b5060135482820390613220908263ffffffff61317c16565b601355600160a060020a03841660009081526016602052604090208054820190555b505050600160a060020a03166000908152601560205260409020429055565b60008080836064808202041461327657600080fd5b61327f846136fd565b601254601054606491860282900494508502600b54919004925060649085020490506132bc81838587030303600f5461317c90919063ffffffff16565b600f556132c93384613802565b6011546132dc908363ffffffff61317c16565b601155600d546132f2908263ffffffff61317c16565b600d5550505050565b600160a060020a0381166000908152601760205260408120600a810154909110610e5c57600080fd5b600080613342613334868661392d565b84519063ffffffff61315316565b915061334e338361319b565b61336c61335b868661394d565b60208501519063ffffffff61315316565b905061337781613261565b5050505050565b60006111638283613153565b60008080600160a060020a03851615156133a357600080fd5b600160a060020a0386166000908152600660205260409020548411156133c857600080fd5b6004546133db908563ffffffff61315316565b600160a060020a038716600090815260076020526040902054909350613407908463ffffffff61317c16565b600160a060020a038716600090815260086020526040902054909250821061344757600160a060020a038616600090815260086020526040902054613449565b815b905061345b828263ffffffff61318916565b600160a060020a038716600090815260076020908152604080832093909355600890522054613490908263ffffffff61318916565b600160a060020a0380881660009081526008602052604080822093909355908716815220546134c5908463ffffffff61317c16565b600160a060020a03808716600090815260086020908152604080832094909455918916815260069091522054613501908563ffffffff61318916565b600160a060020a038088166000908152600660205260408082209390935590871681522054613536908563ffffffff61317c16565b600160a060020a0380871660008181526006602090815260409182902094909455805188815290519193928a16927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050505050565b6024546201518042919091030490565b60008181526025602052604081208054909190151561360e575060118054600a90048083558154819003909155604080518481526020810183905281517f3d823e1b0137c31466d0d26831c5b359c4eab1d1237ead4a8ff564264d9a2c53929181900390910190a15b50919050565b61361c613b0e565b600080836001015411156136f857825460009081526025602090815260409182902082518084019093528054808452600191820154928401839052908601549294509091613670919063ffffffff61315316565b81151561367957fe5b6000600186018190553381526005602052604090205491900491506136a4908263ffffffff61317c16565b336000818152600560209081526040918290209390935585548151908152928301849052805191927f1999f960f6c1318254fc32602ac8ba7ebe18123b1bfe4d21cb9b5ac24761aae4929081900390910190a25b505050565b6000348211156137435750336000908152600560205260409020543482039081111561372857600080fd5b336000908152600560205260409020805482900390556117ff565b50336000908152600560205260409020543482900390613769908263ffffffff61317c16565b336000908152600560205260409020555050565b600160a060020a03811660009081526015602052604081205481811180156137a457504281105b156137f957600160a060020a038316600090815260176020526040902060078101546004909101546064916137e8914285900391611637919063ffffffff61315316565b8115156137f157fe5b04915061360e565b6000915061360e565b60008111156117ff5760035461381e908263ffffffff61317c16565b60035560045461385d90613838908363ffffffff61315316565b600160a060020a0384166000908152600860205260409020549063ffffffff61317c16565b600160a060020a038316600090815260086020908152604080832093909355600690522054613892908263ffffffff61317c16565b600160a060020a0383166000908152600660205260409020556003546138e5906138cb836801000000000000000063ffffffff61315316565b8115156138d457fe5b60045491900463ffffffff61317c16565b600455604080518281529051600160a060020a038416916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b60046002600019808501850282900a90840184029190910a030492915050565b60006006600184600202036001850385020260018460020203600185038502020381151561397757fe5b049392505050565b60c0604051908101604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b8154818355818111156136f8576000838152602090206136f8918101908301613b25565b60408051808201825290600290829080388339509192915050565b6080604051908101604052806004906020820280388339509192915050565b61018060405190810160405280613a29613ae5565b815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001606081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613aa857805160ff1916838001178555613ad5565b82800160010185558215613ad5579182015b82811115613ad5578251825591602001919060010190613aba565b50613ae1929150613b25565b5090565b608060405190810160405280600081526020016000815260200160008152602001600081525090565b604080518082019091526000808252602082015290565b61146b91905b80821115613ae15760008155600101613b2b56009a18b08f786ded2f49322290bcefb5a9ad611fae6a3c2cdf63c46a8a4573bf17a165627a7a72305820b6f087fe4031eb79d8bd609c9571aea4625e9f63c3da4813d397f2c390ef85cf0029


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