ETH Price: $2,593.98 (+0.01%)
Gas: 2 Gwei

Contract

0x6Ed680055bD5a04C194c954f71019ee90145001c
 

Overview

ETH Balance

0.017128193081571672 ETH

Eth Value

$44.43 (@ $2,593.98/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Divs90853002019-12-10 21:42:211704 days ago1576014141IN
0x6Ed68005...90145001c
0 ETH0.000059911
Expand81563812019-07-15 15:26:511853 days ago1563204411IN
0x6Ed68005...90145001c
0 ETH0.000031
Supporthill81560952019-07-15 14:23:511853 days ago1563200631IN
0x6Ed68005...90145001c
0.001 ETH0.000041592
Buysoldiers81560872019-07-15 14:22:281853 days ago1563200548IN
0x6Ed68005...90145001c
0.001 ETH0.000202283
Attackhill81197982019-07-09 22:43:481858 days ago1562712228IN
0x6Ed68005...90145001c
0.001 ETH0.000070041
Divs81164782019-07-09 10:19:031859 days ago1562667543IN
0x6Ed68005...90145001c
0 ETH0.000231724.1
Attackhill81164672019-07-09 10:15:411859 days ago1562667341IN
0x6Ed68005...90145001c
0.001 ETH0.000299953
Buysoldiers81164462019-07-09 10:12:091859 days ago1562667129IN
0x6Ed68005...90145001c
0.001 ETH0.00020193
Expand81164392019-07-09 10:09:451859 days ago1562666985IN
0x6Ed68005...90145001c
0 ETH0.000204463
Attack81164382019-07-09 10:09:411859 days ago1562666981IN
0x6Ed68005...90145001c
0.001 ETH0.000438163
Attack81164362019-07-09 10:09:301859 days ago1562666970IN
0x6Ed68005...90145001c
0.001 ETH0.000438163
Attack81164172019-07-09 10:05:041859 days ago1562666704IN
0x6Ed68005...90145001c
0.001 ETH0.000437973
Attack81164112019-07-09 10:03:531859 days ago1562666633IN
0x6Ed68005...90145001c
0.001 ETH0.000437973
Buysoldiers81164032019-07-09 10:02:211859 days ago1562666541IN
0x6Ed68005...90145001c
0.001 ETH0.000134722
Attack81163962019-07-09 10:00:101859 days ago1562666410IN
0x6Ed68005...90145001c
0.001 ETH0.000157651
Attack81163962019-07-09 10:00:101859 days ago1562666410IN
0x6Ed68005...90145001c
0.001 ETH0.000157651
Attack81163872019-07-09 9:57:541859 days ago1562666274IN
0x6Ed68005...90145001c
0.001 ETH0.000173421.1
Attack81163872019-07-09 9:57:541859 days ago1562666274IN
0x6Ed68005...90145001c
0.001 ETH0.000173491.1
Collecttaxes81163792019-07-09 9:55:231859 days ago1562666123IN
0x6Ed68005...90145001c
0.001 ETH0.000177312.2
Divs81052302019-07-07 16:21:591860 days ago1562516519IN
0x6Ed68005...90145001c
0 ETH0.000056511
Divs80176522019-06-24 1:00:071874 days ago1561338007IN
0x6Ed68005...90145001c
0 ETH0.000056511
Collecttaxes79827342019-06-18 14:10:281880 days ago1560867028IN
0x6Ed68005...90145001c
0.001 ETH0.000369054
Collecttaxes79825692019-06-18 13:32:411880 days ago1560864761IN
0x6Ed68005...90145001c
0.001 ETH0.000369054
Batchcollecttaxe...79823672019-06-18 12:44:551880 days ago1560861895IN
0x6Ed68005...90145001c
0.01 ETH0.000476222
Batchcollecttaxe...79823652019-06-18 12:44:441880 days ago1560861884IN
0x6Ed68005...90145001c
0.01 ETH0.000452892
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
203979272024-07-27 12:36:4714 days ago1722083807
0x6Ed68005...90145001c
0.04069205 ETH
203979272024-07-27 12:36:4714 days ago1722083807
0x6Ed68005...90145001c
0.04069205 ETH
203979272024-07-27 12:36:4714 days ago1722083807
0x6Ed68005...90145001c
0.00138057 ETH
90853002019-12-10 21:42:211704 days ago1576014141
0x6Ed68005...90145001c
0.00031507 ETH
90853002019-12-10 21:42:211704 days ago1576014141
0x6Ed68005...90145001c
0.01143144 ETH
81197982019-07-09 22:43:481858 days ago1562712228
0x6Ed68005...90145001c
0.00255589 ETH
81197982019-07-09 22:43:481858 days ago1562712228
0x6Ed68005...90145001c
0.00005163 ETH
81164782019-07-09 10:19:031859 days ago1562667543
0x6Ed68005...90145001c
0.00031507 ETH
81164782019-07-09 10:19:031859 days ago1562667543
0x6Ed68005...90145001c
0.00339398 ETH
81164672019-07-09 10:15:411859 days ago1562667341
0x6Ed68005...90145001c
0.00113666 ETH
81164672019-07-09 10:15:411859 days ago1562667341
0x6Ed68005...90145001c
0.00002296 ETH
81164392019-07-09 10:09:451859 days ago1562666985
0x6Ed68005...90145001c
0.00153102 ETH
81164382019-07-09 10:09:411859 days ago1562666981
0x6Ed68005...90145001c
0.00031948 ETH
81164382019-07-09 10:09:411859 days ago1562666981
0x6Ed68005...90145001c
0.00000645 ETH
81164382019-07-09 10:09:411859 days ago1562666981
0x6Ed68005...90145001c
0.00065193 ETH
81164382019-07-09 10:09:411859 days ago1562666981
0x6Ed68005...90145001c
0.00001317 ETH
81164362019-07-09 10:09:301859 days ago1562666970
0x6Ed68005...90145001c
0.00033034 ETH
81164362019-07-09 10:09:301859 days ago1562666970
0x6Ed68005...90145001c
0.00000667 ETH
81164362019-07-09 10:09:301859 days ago1562666970
0x6Ed68005...90145001c
0.00067411 ETH
81164362019-07-09 10:09:301859 days ago1562666970
0x6Ed68005...90145001c
0.00001361 ETH
81164172019-07-09 10:05:041859 days ago1562666704
0x6Ed68005...90145001c
0.00037559 ETH
81164172019-07-09 10:05:041859 days ago1562666704
0x6Ed68005...90145001c
0.00000758 ETH
81164172019-07-09 10:05:041859 days ago1562666704
0x6Ed68005...90145001c
0.00076645 ETH
81164172019-07-09 10:05:041859 days ago1562666704
0x6Ed68005...90145001c
0.00001548 ETH
81164112019-07-09 10:03:531859 days ago1562666633
0x6Ed68005...90145001c
0.00056402 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Game

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-08-15
*/

pragma solidity ^0.4.24;
// King of the Crypto Hill contract by Spielley
// P3D contract designed by TEAM JUST and here integrated for dividend payout purpose, not active in testnet version.
// See P3D proof of concept at : https://divgarden.dvx.me/
// Or look at it's code at: https://etherscan.io/address/0xdaa282aba7f4aa757fac94024dfb89f8654582d3#code
// any derivative of KOTCH is allowed if:
// - 1% additional on payouts happen to original KOTCH contract creator's eth account: 0x0B0eFad4aE088a88fFDC50BCe5Fb63c6936b9220
// - contracts are not designed or used to scam people or mallpractices
// This game is intended for fun, Spielley is not liable for any bugs the contract may contain. 
// Don't play with crypto you can't afford to lose



// ----------------------------------------------------------------------------
// Safe maths
// ----------------------------------------------------------------------------
library SafeMath {
    function add(uint a, uint b) internal pure returns (uint c) {
        c = a + b;
        require(c >= a);
    }
    function sub(uint a, uint b) internal pure returns (uint c) {
        require(b <= a);
        c = a - b;
    }
    function mul(uint a, uint b) internal pure returns (uint c) {
        c = a * b;
        require(a == 0 || c / a == b);
    }
    function div(uint a, uint b) internal pure returns (uint c) {
        require(b > 0);
        c = a / b;
    }
}


// ----------------------------------------------------------------------------
// ERC Token Standard #20 Interface
// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md
// ----------------------------------------------------------------------------
contract ERC20Interface {
    function totalSupply() public constant returns (uint);
    function balanceOf(address tokenOwner) public constant returns (uint balance);
    function allowance(address tokenOwner, address spender) public constant returns (uint remaining);
    function transfer(address to, uint tokens) public returns (bool success);
    function approve(address spender, uint tokens) public returns (bool success);
    function transferFrom(address from, address to, uint tokens) public returns (bool success);

    event Transfer(address indexed from, address indexed to, uint tokens);
    event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
}


// ----------------------------------------------------------------------------
// Contract function to receive approval and execute function in one call
//
// Borrowed from MiniMeToken
// ----------------------------------------------------------------------------
contract ApproveAndCallFallBack {
    function receiveApproval(address from, uint256 tokens, address token, bytes data) public;
}


// ----------------------------------------------------------------------------
// Owned contract
// ----------------------------------------------------------------------------
contract Owned {
    address public owner;
    address public newOwner;

    event OwnershipTransferred(address indexed _from, address indexed _to);

    constructor() public {
        owner = 0x0B0eFad4aE088a88fFDC50BCe5Fb63c6936b9220;
    }

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

    function transferOwnership(address _newOwner) public onlyOwner {
        newOwner = _newOwner;
    }
    function acceptOwnership() public {
        require(msg.sender == newOwner);
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
        newOwner = address(0);
    }
}


// ----------------------------------------------------------------------------
// ERC20 Token, with the addition of symbol, name and decimals and a
// fixed supply
// ----------------------------------------------------------------------------
contract FixedSupplyToken is ERC20Interface, Owned {
    using SafeMath for uint;

    string public symbol;
    string public  name;
    uint8 public decimals;
    uint _totalSupply;

    mapping(address => uint) balances;
    mapping(address => mapping(address => uint)) allowed;


    // ------------------------------------------------------------------------
    // Constructor
    // ------------------------------------------------------------------------
    constructor() public {
        symbol = "DOTCH";
        name = "Diamond Of The Crypto Hill";
        decimals = 0;
        _totalSupply = 10000000000;
        balances[this] = _totalSupply;
        emit Transfer(address(0),this, _totalSupply);
    }


    // ------------------------------------------------------------------------
    // Total supply
    // ------------------------------------------------------------------------
    function totalSupply() public view returns (uint) {
        return _totalSupply.sub(balances[address(0)]);
    }


    // ------------------------------------------------------------------------
    // Get the token balance for account `tokenOwner`
    // ------------------------------------------------------------------------
    function balanceOf(address tokenOwner) public view returns (uint balance) {
        return balances[tokenOwner];
    }


    // ------------------------------------------------------------------------
    // Transfer the balance from token owner's account to `to` account
    // - Owner's account must have sufficient balance to transfer
    // - 0 value transfers are allowed
    // ------------------------------------------------------------------------
    function transfer(address to, uint tokens) public returns (bool success) {
        balances[msg.sender] = balances[msg.sender].sub(tokens);
        balances[to] = balances[to].add(tokens);
        emit Transfer(msg.sender, to, tokens);
        return true;
    }


    // ------------------------------------------------------------------------
    // Token owner can approve for `spender` to transferFrom(...) `tokens`
    // from the token owner's account
    //
    // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md
    // recommends that there are no checks for the approval double-spend attack
    // as this should be implemented in user interfaces 
    // ------------------------------------------------------------------------
    function approve(address spender, uint tokens) public returns (bool success) {
        allowed[msg.sender][spender] = tokens;
        emit Approval(msg.sender, spender, tokens);
        return true;
    }


    // ------------------------------------------------------------------------
    // Transfer `tokens` from the `from` account to the `to` account
    // 
    // The calling account must already have sufficient tokens approve(...)-d
    // for spending from the `from` account and
    // - From account must have sufficient balance to transfer
    // - Spender must have sufficient allowance to transfer
    // - 0 value transfers are allowed
    // ------------------------------------------------------------------------
    function transferFrom(address from, address to, uint tokens) public returns (bool success) {
        balances[from] = balances[from].sub(tokens);
        allowed[from][msg.sender] = allowed[from][msg.sender].sub(tokens);
        balances[to] = balances[to].add(tokens);
        emit Transfer(from, to, tokens);
        return true;
    }


    // ------------------------------------------------------------------------
    // Returns the amount of tokens approved by the owner that can be
    // transferred to the spender's account
    // ------------------------------------------------------------------------
    function allowance(address tokenOwner, address spender) public view returns (uint remaining) {
        return allowed[tokenOwner][spender];
    }


    // ------------------------------------------------------------------------
    // Token owner can approve for `spender` to transferFrom(...) `tokens`
    // from the token owner's account. The `spender` contract function
    // `receiveApproval(...)` is then executed
    // ------------------------------------------------------------------------
    function approveAndCall(address spender, uint tokens, bytes data) public returns (bool success) {
        allowed[msg.sender][spender] = tokens;
        emit Approval(msg.sender, spender, tokens);
        ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, this, data);
        return true;
    }





    // ------------------------------------------------------------------------
    // Owner can transfer out any accidentally sent ERC20 tokens
    // ------------------------------------------------------------------------
    function transferAnyERC20Token(address tokenAddress, uint tokens) public onlyOwner returns (bool success) {
        return ERC20Interface(tokenAddress).transfer(owner, tokens);
    }
}
interface HourglassInterface  {
    function() payable external;
    function buy(address _playerAddress) payable external returns(uint256);
    function sell(uint256 _amountOfTokens) external;
    function reinvest() external;
    function withdraw() external;
    function exit() external;
    function dividendsOf(address _playerAddress) external view returns(uint256);
    function balanceOf(address _playerAddress) external view returns(uint256);
    function transfer(address _toAddress, uint256 _amountOfTokens) external returns(bool);
    function stakingRequirement() external view returns(uint256);
}
contract Game is FixedSupplyToken {
    
HourglassInterface constant P3Dcontract_ = HourglassInterface(0xB3775fB83F7D12A36E0475aBdD1FCA35c091efBe);    
struct Village {
    address owner;
    uint defending;
    uint lastcollect;
    uint beginnerprotection;
}
struct Variables {
    uint nextVillageId;
    uint bpamount;
    
    uint totalsupplyGOTCH;
    uint GOTCHatcontract;
    uint previousethamount;
    uint solsforhire;
    uint solslastupdate;
    uint soldierreplenishrate;
    uint soldierprice;
    uint lastblockpayout;
    uint blocksbeforenewpay;
    uint ATPO;
    uint nextpayamount;
    uint nextowneramount;
    
    
}
struct Ownables {
    address hillowner;
    uint soldiersdefendinghill; 
    mapping(address => uint256) soldiers;
    mapping(uint256 => Village) villages;
    mapping(address => uint256)  GOTCH;
    mapping(address => uint256)  redeemedvils;
    bool ERCtradeactive;
    uint roundlength;
    
}
struct Marketoffer{
    address placedby;
    uint256 amountdotch;
    uint256 wantsthisamtweiperdotch;
}

event villtakeover(address from, address to, uint villageint);
event hilltakeover(address from, address to);
event battle(address attacker, uint pointsattacker,  address defender, uint pointsdefender);
event dotchsale( address seller,uint price,  address taker , uint256 amount);
uint256 public ethforp3dbuy;
uint256 public round;
uint256 public nextmarketoffer;
uint256 public nextroundlength = 10000000000000000000000;
uint256 public nextroundtotalsupplyGOTCH = 10000;
uint256 public nextroundGOTCHatcontract = 10000;
uint256 public nextroundsolsforhire = 100;
uint256 public nextroundsoldierreplenishrate = 50;
uint256 public nextroundblocksbeforenewpay = 250;
bool public divsforall;
bool public nextroundERCtradeactive = true;
mapping(uint256 => Variables) public roundvars;
mapping(uint256 => Ownables) public roundownables; 
 mapping(address => uint256) public Redeemable;
 mapping(uint256 => Marketoffer) public marketplace;

function harvestabledivs()
        view
        public
        returns(uint256)
    {
        return ( P3Dcontract_.dividendsOf(address(this)))  ;
    }

function villageinfo(uint256 lookup)
        view
        public
        returns(address owner, uint256 soldiersdefending,uint256 lastcollect,uint256 beginnersprotection)
    {
        return ( roundownables[round].villages[lookup].owner,roundownables[round].villages[lookup].defending,roundownables[round].villages[lookup].lastcollect,roundownables[round].villages[lookup].beginnerprotection)  ;
    }
function gotchinfo(address lookup)
        view
        public
        returns(uint256 Gold)
    {
        return ( roundownables[round].GOTCH[lookup])  ;
    }
function soldiersinfo(address lookup)
        view
        public
        returns(uint256 soldiers)
    {
        return ( roundownables[round].soldiers[lookup])  ;
    } 
function redeemablevilsinfo(address lookup)
        view
        public
        returns(uint256 redeemedvils)
    {
        return ( roundownables[round].redeemedvils[lookup])  ;
    }
function playerinfo(address lookup)
        view
        public
        returns(uint256 redeemedvils,uint256 redeemablevils , uint256 soldiers, uint256 GOTCH)
    {
        return ( 
            roundownables[round].redeemedvils[lookup],
            Redeemable[lookup],
            roundownables[round].soldiers[lookup],
            roundownables[round].GOTCH[lookup]
            )  ;
    } 
uint256 private div;
uint256 private ethtosend; 
 
function () external payable{} // needed to receive p3d divs

constructor () public {
    round++;
    roundvars[round].totalsupplyGOTCH = 10000;
       roundvars[round].GOTCHatcontract = 10000;
       roundvars[round].solsforhire = 100;
       roundvars[round].soldierreplenishrate = 50;
       roundvars[round].solslastupdate = block.number;
       updatesolbuyrate();
       roundvars[round].lastblockpayout = block.number;
       roundownables[round].hillowner = msg.sender;
       roundvars[round].nextpayamount = 0;
       roundvars[round].nextowneramount = 0;
       roundvars[round].previousethamount = 0;
       roundvars[round].blocksbeforenewpay = 250;
       roundvars[round].bpamount = 30000;
       roundownables[round].ERCtradeactive = true;
       roundownables[round].roundlength = 10000000000000000000000;
       divsforall = false;
    }
function hillpayout() internal  {
    require(block.number > roundvars[round].lastblockpayout.add(roundvars[round].blocksbeforenewpay));
    // new payout method
    roundvars[round].lastblockpayout = roundvars[round].lastblockpayout.add(roundvars[round].blocksbeforenewpay);
    ethforp3dbuy = ethforp3dbuy.add((address(this).balance.sub(ethforp3dbuy)).div(100));
    owner.transfer((address(this).balance.sub(ethforp3dbuy)).div(100));
    roundvars[round].ATPO = roundvars[round].ATPO.add((address(this).balance.sub(ethforp3dbuy)).div(2));
    roundownables[round].hillowner.transfer((address(this).balance.sub(ethforp3dbuy)).div(2));

}
function attackhill(uint256 amtsoldiers) public payable returns(bool, uint){
    require(msg.value >= 1 finney);
    if(block.number > roundvars[round].lastblockpayout.add(roundvars[round].blocksbeforenewpay))
    {
    hillpayout();
    }
    
    require(amtsoldiers <= roundownables[round].soldiers[msg.sender]);
    require(amtsoldiers >= 1);
    if(msg.sender == roundownables[round].hillowner)
{
   roundownables[round].soldiersdefendinghill = roundownables[round].soldiersdefendinghill.add(amtsoldiers);
    roundownables[round].soldiers[msg.sender] = roundownables[round].soldiers[msg.sender].sub(amtsoldiers);
    return (false, 0);
}
if(msg.sender != roundownables[round].hillowner)
{
   if(roundownables[round].soldiersdefendinghill < amtsoldiers)
    {
        emit hilltakeover(roundownables[round].hillowner,msg.sender);
        emit battle(msg.sender,roundownables[round].soldiersdefendinghill,roundownables[round].hillowner,roundownables[round].soldiersdefendinghill);
        roundownables[round].hillowner = msg.sender;
        roundownables[round].soldiersdefendinghill = amtsoldiers.sub(roundownables[round].soldiersdefendinghill);
        roundownables[round].soldiers[msg.sender] = roundownables[round].soldiers[msg.sender].sub(amtsoldiers);
        return (true, roundownables[round].soldiersdefendinghill);
    }
    if(roundownables[round].soldiersdefendinghill >= amtsoldiers)
    {
        roundownables[round].soldiersdefendinghill = roundownables[round].soldiersdefendinghill.sub(amtsoldiers);
        roundownables[round].soldiers[msg.sender] = roundownables[round].soldiers[msg.sender].sub(amtsoldiers);
        emit battle(msg.sender,amtsoldiers,roundownables[round].hillowner,amtsoldiers);
        return (false, amtsoldiers);
    }
}

}
function supporthill(uint256 amtsoldiers) public payable {
    require(msg.value >= 1 finney);
    require(roundownables[round].hillowner == msg.sender);
    require(amtsoldiers <= roundownables[round].soldiers[msg.sender]);
    require(amtsoldiers >= 1);
   roundownables[round].soldiersdefendinghill = roundownables[round].soldiersdefendinghill.add(amtsoldiers);
   roundownables[round].soldiers[msg.sender] = roundownables[round].soldiers[msg.sender].sub(amtsoldiers);  
}

function changetradestatus(bool active) public onlyOwner  {
   //move all eth from contract to owners address
   roundownables[round].ERCtradeactive = active;
   
}
function setdivsforall(bool active) public onlyOwner  {
   //move all eth from contract to owners address
   divsforall = active;
   
}
function changebeginnerprotection(uint256 blockcount) public onlyOwner  {
   roundvars[round].bpamount = blockcount;
}
function changesoldierreplenishrate(uint256 rate) public onlyOwner  {
   roundvars[round].soldierreplenishrate = rate;
}
function updatesolsforhire() internal  {
   roundvars[round].solsforhire = roundvars[round].solsforhire.add((block.number.sub(roundvars[round].solslastupdate)).mul(roundvars[round].nextVillageId).mul(roundvars[round].soldierreplenishrate));
   roundvars[round].solslastupdate = block.number;
}
function updatesolbuyrate() internal  {
if(roundvars[round].solsforhire > roundvars[round].totalsupplyGOTCH)
   {
        roundvars[round].solsforhire = roundvars[round].totalsupplyGOTCH;
   }
   roundvars[round].soldierprice = roundvars[round].totalsupplyGOTCH.div(roundvars[round].solsforhire);
   if(roundvars[round].soldierprice < 1)
   {
       roundvars[round].soldierprice = 1;
   }
}
function buysoldiers(uint256 amount) public payable {
    require(msg.value >= 1 finney);
   updatesolsforhire();
   updatesolbuyrate() ;
   require(amount <= roundvars[round].solsforhire);
   
   roundownables[round].soldiers[msg.sender] = roundownables[round].soldiers[msg.sender].add(amount);
   roundvars[round].solsforhire = roundvars[round].solsforhire.sub(amount);
   roundownables[round].GOTCH[msg.sender] = roundownables[round].GOTCH[msg.sender].sub( amount.mul(roundvars[round].soldierprice));
   roundvars[round].GOTCHatcontract = roundvars[round].GOTCHatcontract.add(amount.mul(roundvars[round].soldierprice));
   
}
// found new villgage 
function createvillage() public  payable  {
    require(msg.value >= 10 finney);
    if(block.number > roundvars[round].lastblockpayout.add(roundvars[round].blocksbeforenewpay))
    {
    hillpayout();
    }
    
    roundownables[round].villages[roundvars[round].nextVillageId].owner = msg.sender;
    
   roundownables[round].villages[roundvars[round].nextVillageId].lastcollect = block.number;
    roundownables[round].villages[roundvars[round].nextVillageId].beginnerprotection = block.number;
    roundvars[round].nextVillageId ++;
   
    roundownables[round].villages[roundvars[round].nextVillageId].defending = roundvars[round].nextVillageId;
    Redeemable[msg.sender]++;
    roundownables[round].redeemedvils[msg.sender]++;
}
function batchcreatevillage(uint256 amt) public  payable  {
    require(msg.value >= 10 finney * amt);
    require(amt >= 1);
    require(amt <= 40);
    if(block.number > roundvars[round].lastblockpayout.add(roundvars[round].blocksbeforenewpay))
    {
    hillpayout();
    }
    for(uint i=0; i< amt; i++)
        {
    roundownables[round].villages[roundvars[round].nextVillageId].owner = msg.sender;
   roundownables[round].villages[roundvars[round].nextVillageId].lastcollect = block.number;
    roundownables[round].villages[roundvars[round].nextVillageId].beginnerprotection = block.number;
    roundvars[round].nextVillageId ++;
   
    roundownables[round].villages[roundvars[round].nextVillageId].defending = roundvars[round].nextVillageId;
        } 
        Redeemable[msg.sender] = Redeemable[msg.sender].add(amt);
        roundownables[round].redeemedvils[msg.sender] = roundownables[round].redeemedvils[msg.sender].add(amt);
}
function cheapredeemvillage() public  payable  {
    require(msg.value >= 1 finney);
    require(roundownables[round].redeemedvils[msg.sender] < Redeemable[msg.sender]);
    roundownables[round].villages[roundvars[round].nextVillageId].owner = msg.sender;
    roundownables[round].villages[roundvars[round].nextVillageId].lastcollect = block.number;
    roundownables[round].villages[roundvars[round].nextVillageId].beginnerprotection = block.number;
    roundvars[round].nextVillageId ++;
    roundownables[round].villages[roundvars[round].nextVillageId].defending = roundvars[round].nextVillageId;
    roundownables[round].redeemedvils[msg.sender]++;
}
function preregvills(address reg) public onlyOwner  {

    roundownables[round].villages[roundvars[round].nextVillageId].owner = reg;
    roundownables[round].villages[roundvars[round].nextVillageId].lastcollect = block.number;
    roundownables[round].villages[roundvars[round].nextVillageId].beginnerprotection = block.number;
    roundvars[round].nextVillageId ++;
    roundownables[round].villages[roundvars[round].nextVillageId].defending = roundvars[round].nextVillageId;
}
function attack(uint256 village, uint256 amtsoldiers) public payable returns(bool, uint){
    require(msg.value >= 1 finney);
    if(block.number > roundvars[round].lastblockpayout + roundvars[round].blocksbeforenewpay)
    {
    hillpayout();
    }
   
    uint bpcheck = roundownables[round].villages[village].beginnerprotection.add(roundvars[round].bpamount);
    require(block.number > bpcheck);
    require(roundownables[round].villages[village].owner != 0);// prevent from attacking a non-created village to create a village
    require(amtsoldiers <= roundownables[round].soldiers[msg.sender]);
    require(amtsoldiers >= 1);
    
if(msg.sender == roundownables[round].villages[village].owner)
{
    roundownables[round].villages[village].defending = roundownables[round].villages[village].defending.add(amtsoldiers);
    roundownables[round].soldiers[msg.sender] = roundownables[round].soldiers[msg.sender].sub(amtsoldiers);
    return (false, 0);
}
if(msg.sender != roundownables[round].villages[village].owner)
{
   if(roundownables[round].villages[village].defending < amtsoldiers)
    {
        emit battle(msg.sender,roundownables[round].villages[village].defending,roundownables[round].villages[village].owner,roundownables[round].villages[village].defending);
        emit villtakeover(roundownables[round].villages[village].owner,msg.sender,village);
        roundownables[round].villages[village].owner = msg.sender;
        roundownables[round].villages[village].defending = amtsoldiers.sub(roundownables[round].villages[village].defending);
        roundownables[round].soldiers[msg.sender] = roundownables[round].soldiers[msg.sender].sub(amtsoldiers);
        collecttaxes(village);
        return (true, roundownables[round].villages[village].defending);
        
    }
    if(roundownables[round].villages[village].defending >= amtsoldiers)
    {
        emit battle(msg.sender,amtsoldiers,roundownables[round].villages[village].owner,amtsoldiers);
        roundownables[round].villages[village].defending = roundownables[round].villages[village].defending.sub(amtsoldiers);
        roundownables[round].soldiers[msg.sender] = roundownables[round].soldiers[msg.sender].sub(amtsoldiers);
        return (false, amtsoldiers);
    }
}

}
function support(uint256 village, uint256 amtsoldiers) public payable {
    require(msg.value >= 1 finney);
    require(roundownables[round].villages[village].owner == msg.sender);
    require(roundownables[round].villages[village].owner != 0);// prevent from supporting a non-created village to create a village
    require(amtsoldiers <= roundownables[round].soldiers[msg.sender]);
    require(amtsoldiers >= 1);
    roundownables[round].villages[village].defending = roundownables[round].villages[village].defending.add(amtsoldiers);
    roundownables[round].soldiers[msg.sender] = roundownables[round].soldiers[msg.sender].sub(amtsoldiers);  
}
function renewbeginnerprotection(uint256 village) public payable {
    require(msg.value >= (roundvars[round].nextVillageId.sub(village)).mul(1 finney) );//
    roundownables[round].villages[village].beginnerprotection = block.number;
   
}
function batchcollecttaxes(uint256 a, uint256 b , uint256 c , uint256 d , uint256 e , uint256 f , uint256 g, uint256 h, uint256 i, uint256 j) public payable {// payed transaction
    // a
   require(msg.value >= 10 finney);
   require(roundownables[round].villages[a].owner == msg.sender);
   require(roundownables[round].villages[b].owner == msg.sender);
   require(roundownables[round].villages[c].owner == msg.sender);
   require(roundownables[round].villages[d].owner == msg.sender);
   require(roundownables[round].villages[e].owner == msg.sender);
   require(roundownables[round].villages[f].owner == msg.sender);
   require(roundownables[round].villages[g].owner == msg.sender);
   require(roundownables[round].villages[h].owner == msg.sender);
   require(roundownables[round].villages[i].owner == msg.sender);
   require(roundownables[round].villages[j].owner == msg.sender);
    require(block.number >  roundownables[round].villages[a].lastcollect);
    require(block.number >  roundownables[round].villages[b].lastcollect);
    require(block.number >  roundownables[round].villages[c].lastcollect);
    require(block.number >  roundownables[round].villages[d].lastcollect);
    require(block.number >  roundownables[round].villages[e].lastcollect);
    require(block.number >  roundownables[round].villages[f].lastcollect);
    require(block.number >  roundownables[round].villages[g].lastcollect);
    require(block.number >  roundownables[round].villages[h].lastcollect);
    require(block.number >  roundownables[round].villages[i].lastcollect);
    require(block.number >  roundownables[round].villages[j].lastcollect);
    
    uint256 test = (block.number.sub(roundownables[round].villages[a].lastcollect)).mul((roundvars[round].nextVillageId.sub(a)));
    if(roundvars[round].GOTCHatcontract < test ) 
    {
     roundvars[round].GOTCHatcontract =  roundvars[round].GOTCHatcontract.add(test);
     roundvars[round].totalsupplyGOTCH = roundvars[round].totalsupplyGOTCH.add(test);
    }   
   roundownables[round].GOTCH[msg.sender] = roundownables[round].GOTCH[msg.sender].add(test);
    roundvars[round].GOTCHatcontract = roundvars[round].GOTCHatcontract.sub(test);
    
    roundownables[round].villages[a].lastcollect = block.number;
    //b
   
    test = (block.number.sub(roundownables[round].villages[b].lastcollect)).mul((roundvars[round].nextVillageId.sub(b)));
    if(roundvars[round].GOTCHatcontract < test ) 
    {
     roundvars[round].GOTCHatcontract =  roundvars[round].GOTCHatcontract.add(test);
     roundvars[round].totalsupplyGOTCH = roundvars[round].totalsupplyGOTCH.add(test);
    }   
    roundownables[round].GOTCH[msg.sender] = roundownables[round].GOTCH[msg.sender].add(test);
    roundvars[round].GOTCHatcontract = roundvars[round].GOTCHatcontract.sub(test);
    
    roundownables[round].villages[b].lastcollect = block.number;
    //c
   
    test = (block.number.sub(roundownables[round].villages[c].lastcollect)).mul((roundvars[round].nextVillageId.sub(c)));
    if(roundvars[round].GOTCHatcontract < test ) 
    {
     roundvars[round].GOTCHatcontract =  roundvars[round].GOTCHatcontract.add(test);
     roundvars[round].totalsupplyGOTCH = roundvars[round].totalsupplyGOTCH.add(test);
    }   
    roundownables[round].GOTCH[msg.sender] = roundownables[round].GOTCH[msg.sender].add(test);
    roundvars[round].GOTCHatcontract = roundvars[round].GOTCHatcontract.sub(test);
    
    roundownables[round].villages[c].lastcollect = block.number;
    //j
    
    test = (block.number.sub(roundownables[round].villages[j].lastcollect)).mul((roundvars[round].nextVillageId.sub(j)));
    if(roundvars[round].GOTCHatcontract < test ) 
    {
     roundvars[round].GOTCHatcontract =  roundvars[round].GOTCHatcontract.add(test);
     roundvars[round].totalsupplyGOTCH = roundvars[round].totalsupplyGOTCH.add(test);
    }   
    roundownables[round].GOTCH[msg.sender] = roundownables[round].GOTCH[msg.sender].add(test);
    roundvars[round].GOTCHatcontract = roundvars[round].GOTCHatcontract.sub(test);
    
    roundownables[round].villages[j].lastcollect = block.number;
    //d
    
    test = (block.number.sub(roundownables[round].villages[d].lastcollect)).mul((roundvars[round].nextVillageId.sub(d)));
    if(roundvars[round].GOTCHatcontract < test ) 
    {
     roundvars[round].GOTCHatcontract =  roundvars[round].GOTCHatcontract.add(test);
     roundvars[round].totalsupplyGOTCH = roundvars[round].totalsupplyGOTCH.add(test);
    }   
    roundownables[round].GOTCH[msg.sender] = roundownables[round].GOTCH[msg.sender].add(test);
    roundvars[round].GOTCHatcontract = roundvars[round].GOTCHatcontract.sub(test);
    
    roundownables[round].villages[d].lastcollect = block.number;
    //e
   
    test = (block.number.sub(roundownables[round].villages[e].lastcollect)).mul((roundvars[round].nextVillageId.sub(e)));
    if(roundvars[round].GOTCHatcontract < test ) 
    {
     roundvars[round].GOTCHatcontract =  roundvars[round].GOTCHatcontract.add(test);
     roundvars[round].totalsupplyGOTCH = roundvars[round].totalsupplyGOTCH.add(test);
    }   
    roundownables[round].GOTCH[msg.sender] = roundownables[round].GOTCH[msg.sender].add(test);
    roundvars[round].GOTCHatcontract = roundvars[round].GOTCHatcontract.sub(test);
    
    roundownables[round].villages[e].lastcollect = block.number;
    //f
    
    test = (block.number.sub(roundownables[round].villages[f].lastcollect)).mul((roundvars[round].nextVillageId.sub(f)));
    if(roundvars[round].GOTCHatcontract < test ) 
    {
     roundvars[round].GOTCHatcontract =  roundvars[round].GOTCHatcontract.add(test);
     roundvars[round].totalsupplyGOTCH = roundvars[round].totalsupplyGOTCH.add(test);
    }   
    roundownables[round].GOTCH[msg.sender] = roundownables[round].GOTCH[msg.sender].add(test);
    roundvars[round].GOTCHatcontract = roundvars[round].GOTCHatcontract.sub(test);
    
    roundownables[round].villages[f].lastcollect = block.number;
    //g
   
    test = (block.number.sub(roundownables[round].villages[g].lastcollect)).mul((roundvars[round].nextVillageId.sub(g)));
    if(roundvars[round].GOTCHatcontract < test ) 
    {
     roundvars[round].GOTCHatcontract =  roundvars[round].GOTCHatcontract.add(test);
     roundvars[round].totalsupplyGOTCH = roundvars[round].totalsupplyGOTCH.add(test);
    }   
    roundownables[round].GOTCH[msg.sender] = roundownables[round].GOTCH[msg.sender].add(test);
    roundvars[round].GOTCHatcontract = roundvars[round].GOTCHatcontract.sub(test);
    
    roundownables[round].villages[g].lastcollect = block.number;
    //h
    
    test = (block.number.sub(roundownables[round].villages[h].lastcollect)).mul((roundvars[round].nextVillageId.sub(h)));
    if(roundvars[round].GOTCHatcontract < test ) 
    {
     roundvars[round].GOTCHatcontract =  roundvars[round].GOTCHatcontract.add(test);
     roundvars[round].totalsupplyGOTCH = roundvars[round].totalsupplyGOTCH.add(test);
    }   
    roundownables[round].GOTCH[msg.sender] = roundownables[round].GOTCH[msg.sender].add(test);
    roundvars[round].GOTCHatcontract = roundvars[round].GOTCHatcontract.sub(test);
    
    roundownables[round].villages[h].lastcollect = block.number;
    //i
    
    test = (block.number.sub(roundownables[round].villages[i].lastcollect)).mul((roundvars[round].nextVillageId.sub(i)));
    if(roundvars[round].GOTCHatcontract < test ) 
    {
     roundvars[round].GOTCHatcontract =  roundvars[round].GOTCHatcontract.add(test);
     roundvars[round].totalsupplyGOTCH = roundvars[round].totalsupplyGOTCH.add(test);
    }   
    roundownables[round].GOTCH[msg.sender] = roundownables[round].GOTCH[msg.sender].add(test);
    roundvars[round].GOTCHatcontract = roundvars[round].GOTCHatcontract.sub(test);
    
    roundownables[round].villages[i].lastcollect = block.number;

        
}
function collecttaxes(uint256 village) public payable returns (uint){// payed transaction
    // 
   require(msg.value >= 1 finney);
    if(block.number > roundvars[round].lastblockpayout.add(roundvars[round].blocksbeforenewpay))
    {
    hillpayout();
    }
    
    require(roundownables[round].villages[village].owner == msg.sender);
    require(block.number >  roundownables[round].villages[village].lastcollect);
    uint256 test = (block.number.sub(roundownables[round].villages[village].lastcollect)).mul((roundvars[round].nextVillageId.sub(village)));
    if(roundvars[round].GOTCHatcontract < test ) 
    {
     roundvars[round].GOTCHatcontract =  roundvars[round].GOTCHatcontract.add(test);
     roundvars[round].totalsupplyGOTCH = roundvars[round].totalsupplyGOTCH.add(test);
    }   
    roundownables[round].GOTCH[msg.sender] = roundownables[round].GOTCH[msg.sender].add(test);
    roundvars[round].GOTCHatcontract = roundvars[round].GOTCHatcontract.sub(test);
    
    roundownables[round].villages[village].lastcollect = block.number;
    // if contract doesnt have the amount, create new
    return test;
}
function sellDOTCH(uint amt) payable public {
    require(msg.value >= 1 finney);
    require(roundownables[round].ERCtradeactive == true);
    require(roundownables[round].GOTCH[this]>= amt.mul(10000));
    require(balances[msg.sender] >=  amt);
    require(amt >= 1);
    balances[this] = balances[this].add(amt);
    balances[msg.sender] = balances[msg.sender].sub(amt);
    emit Transfer(msg.sender,this, amt);
    roundownables[round].GOTCH[this] =  roundownables[round].GOTCH[this].sub(amt.mul(10000));
    roundownables[round].GOTCH[msg.sender] =  roundownables[round].GOTCH[msg.sender].add(amt.mul(10000));
}
function buyDOTCH(uint amt) payable public {
    require(msg.value >= 1 finney);
    require(roundownables[round].ERCtradeactive == true);
    require(balances[this]>= amt);
    require(roundownables[round].GOTCH[msg.sender] >= amt.mul(10000));
    require(amt >= 1);
    balances[this] = balances[this].sub(amt);
    balances[msg.sender] = balances[msg.sender].add(amt);
    emit Transfer(this,msg.sender, amt);
   roundownables[round].GOTCH[msg.sender] = roundownables[round].GOTCH[msg.sender].sub(amt.mul(10000));
  roundownables[round].GOTCH[this] = roundownables[round].GOTCH[this].add(amt.mul(10000));
}
//p3d 

function buyp3d(uint256 amt) internal{
P3Dcontract_.buy.value(amt)(this);
}
function claimdivs() internal{
P3Dcontract_.withdraw();
}
event onHarvest(
        address customerAddress,
        uint256 amount
    );

function Divs() public payable{
    
    require(msg.sender == roundownables[round].hillowner);
    claimdivs();
    msg.sender.transfer(div);
    emit onHarvest(msg.sender,div);
}
function Divsforall() public payable{
    
    require(divsforall = true);
    require(msg.value >= 1 finney);
    div = harvestabledivs();
    require(div > 0);
    claimdivs();
    msg.sender.transfer(div);
    emit onHarvest(msg.sender,div);
}
function Expand() public {
    buyp3d(ethforp3dbuy);
    ethforp3dbuy = 0;
}

//marketplace functions
function placeoffer(uint256 dotchamount, uint256 askingpriceinwei) payable public{
    require(dotchamount > 0);
    require(askingpriceinwei > 0);
    require(balances[msg.sender] >=  dotchamount);
    require(msg.value >= 1 finney);
    balances[msg.sender] = balances[msg.sender].sub(dotchamount);
    balances[this] = balances[this].add(dotchamount);
    emit Transfer(msg.sender,this, dotchamount);
    marketplace[nextmarketoffer].placedby = msg.sender;
     marketplace[nextmarketoffer].amountdotch = dotchamount;
      marketplace[nextmarketoffer].wantsthisamtweiperdotch = askingpriceinwei;
      nextmarketoffer++;
}
function adddotchtooffer(uint256 ordernumber , uint256 dotchamount) public
{
    require(dotchamount > 0);
    require(msg.sender == marketplace[ordernumber].placedby);
    require(balances[msg.sender] >=  dotchamount);
 
    balances[msg.sender] = balances[msg.sender].sub(dotchamount);
    balances[this] = balances[this].add(dotchamount);
    emit Transfer(msg.sender,this, dotchamount);
     marketplace[ordernumber].amountdotch = marketplace[ordernumber].amountdotch.add(dotchamount);
}
function removedotchtooffer(uint256 ordernumber , uint256 dotchamount) public
{
    require(dotchamount > 0);
    require(msg.sender == marketplace[ordernumber].placedby);
    require(balances[this] >=  dotchamount);
 
    balances[msg.sender] = balances[msg.sender].add(dotchamount);
    balances[this] = balances[this].sub(dotchamount);
    emit Transfer(this,msg.sender, dotchamount);
     marketplace[ordernumber].amountdotch = marketplace[ordernumber].amountdotch.sub(dotchamount);
}
function offerchangeprice(uint256 ordernumber ,uint256 price ) public
{
    require(price > 0);
    require(msg.sender == marketplace[ordernumber].placedby);
     marketplace[ordernumber].wantsthisamtweiperdotch = price;
}
function takeoffer(uint256 ordernumber ,uint256 amtdotch ) public payable
{
    require(msg.value >= marketplace[ordernumber].wantsthisamtweiperdotch.mul(amtdotch));
    require(amtdotch > 0);
    require(marketplace[ordernumber].amountdotch >= amtdotch);
    require(msg.sender != marketplace[ordernumber].placedby);
    require(balances[this] >=  amtdotch);
     marketplace[ordernumber].amountdotch = marketplace[ordernumber].amountdotch.sub(amtdotch);
     balances[msg.sender] = balances[msg.sender].add(amtdotch);
    balances[this] = balances[this].sub(amtdotch);
    emit Transfer(this,msg.sender, amtdotch);
    emit dotchsale(marketplace[ordernumber].placedby,marketplace[ordernumber].wantsthisamtweiperdotch, msg.sender, amtdotch);
    marketplace[ordernumber].placedby.transfer(marketplace[ordernumber].wantsthisamtweiperdotch.mul(amtdotch));
}
// new round function
function startnewround() public {
    require(roundvars[round].ATPO > roundownables[round].roundlength);
    round++;
    roundvars[round].totalsupplyGOTCH = nextroundtotalsupplyGOTCH;
       roundvars[round].GOTCHatcontract = nextroundtotalsupplyGOTCH;
       roundvars[round].solsforhire = nextroundsolsforhire;
       roundvars[round].soldierreplenishrate = nextroundsoldierreplenishrate;
       roundvars[round].solslastupdate = block.number;
       updatesolbuyrate();
       roundvars[round].lastblockpayout = block.number;
       roundownables[round].hillowner = msg.sender;
       roundvars[round].nextpayamount = roundvars[round-1].nextpayamount;
       roundvars[round].nextowneramount = roundvars[round-1].nextowneramount;
       roundvars[round].previousethamount = roundvars[round-1].previousethamount;
       roundvars[round].blocksbeforenewpay = nextroundblocksbeforenewpay;
       roundownables[round].ERCtradeactive = nextroundERCtradeactive;
       roundvars[round].bpamount = 30000;
    
}

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"nextroundGOTCHatcontract","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"tokens","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"divsforall","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"active","type":"bool"}],"name":"setdivsforall","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amt","type":"uint256"}],"name":"sellDOTCH","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"lookup","type":"address"}],"name":"soldiersinfo","outputs":[{"name":"soldiers","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"round","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"reg","type":"address"}],"name":"preregvills","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"ordernumber","type":"uint256"},{"name":"price","type":"uint256"}],"name":"offerchangeprice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"nextroundtotalsupplyGOTCH","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amt","type":"uint256"}],"name":"buyDOTCH","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"cheapredeemvillage","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amt","type":"uint256"}],"name":"batchcreatevillage","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"Redeemable","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"nextmarketoffer","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"nextroundsolsforhire","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"rate","type":"uint256"}],"name":"changesoldierreplenishrate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"dotchamount","type":"uint256"},{"name":"askingpriceinwei","type":"uint256"}],"name":"placeoffer","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"buysoldiers","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"createvillage","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"uint256"},{"name":"b","type":"uint256"},{"name":"c","type":"uint256"},{"name":"d","type":"uint256"},{"name":"e","type":"uint256"},{"name":"f","type":"uint256"},{"name":"g","type":"uint256"},{"name":"h","type":"uint256"},{"name":"i","type":"uint256"},{"name":"j","type":"uint256"}],"name":"batchcollecttaxes","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"blockcount","type":"uint256"}],"name":"changebeginnerprotection","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"lookup","type":"uint256"}],"name":"villageinfo","outputs":[{"name":"owner","type":"address"},{"name":"soldiersdefending","type":"uint256"},{"name":"lastcollect","type":"uint256"},{"name":"beginnersprotection","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"harvestabledivs","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"Divsforall","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"roundvars","outputs":[{"name":"nextVillageId","type":"uint256"},{"name":"bpamount","type":"uint256"},{"name":"totalsupplyGOTCH","type":"uint256"},{"name":"GOTCHatcontract","type":"uint256"},{"name":"previousethamount","type":"uint256"},{"name":"solsforhire","type":"uint256"},{"name":"solslastupdate","type":"uint256"},{"name":"soldierreplenishrate","type":"uint256"},{"name":"soldierprice","type":"uint256"},{"name":"lastblockpayout","type":"uint256"},{"name":"blocksbeforenewpay","type":"uint256"},{"name":"ATPO","type":"uint256"},{"name":"nextpayamount","type":"uint256"},{"name":"nextowneramount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"nextroundlength","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ethforp3dbuy","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amtsoldiers","type":"uint256"}],"name":"attackhill","outputs":[{"name":"","type":"bool"},{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"village","type":"uint256"},{"name":"amtsoldiers","type":"uint256"}],"name":"support","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"startnewround","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"Expand","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"active","type":"bool"}],"name":"changetradestatus","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"ordernumber","type":"uint256"},{"name":"amtdotch","type":"uint256"}],"name":"takeoffer","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"ordernumber","type":"uint256"},{"name":"dotchamount","type":"uint256"}],"name":"removedotchtooffer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amtsoldiers","type":"uint256"}],"name":"supporthill","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"nextroundsoldierreplenishrate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"lookup","type":"address"}],"name":"playerinfo","outputs":[{"name":"redeemedvils","type":"uint256"},{"name":"redeemablevils","type":"uint256"},{"name":"soldiers","type":"uint256"},{"name":"GOTCH","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"village","type":"uint256"}],"name":"collecttaxes","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"tokens","type":"uint256"},{"name":"data","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"lookup","type":"address"}],"name":"gotchinfo","outputs":[{"name":"Gold","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"roundownables","outputs":[{"name":"hillowner","type":"address"},{"name":"soldiersdefendinghill","type":"uint256"},{"name":"ERCtradeactive","type":"bool"},{"name":"roundlength","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"village","type":"uint256"}],"name":"renewbeginnerprotection","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"marketplace","outputs":[{"name":"placedby","type":"address"},{"name":"amountdotch","type":"uint256"},{"name":"wantsthisamtweiperdotch","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenAddress","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transferAnyERC20Token","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"village","type":"uint256"},{"name":"amtsoldiers","type":"uint256"}],"name":"attack","outputs":[{"name":"","type":"bool"},{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"Divs","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"ordernumber","type":"uint256"},{"name":"dotchamount","type":"uint256"}],"name":"adddotchtooffer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"lookup","type":"address"}],"name":"redeemablevilsinfo","outputs":[{"name":"redeemedvils","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"nextroundblocksbeforenewpay","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"nextroundERCtradeactive","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"from","type":"address"},{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"villageint","type":"uint256"}],"name":"villtakeover","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"from","type":"address"},{"indexed":false,"name":"to","type":"address"}],"name":"hilltakeover","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"attacker","type":"address"},{"indexed":false,"name":"pointsattacker","type":"uint256"},{"indexed":false,"name":"defender","type":"address"},{"indexed":false,"name":"pointsdefender","type":"uint256"}],"name":"battle","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"seller","type":"address"},{"indexed":false,"name":"price","type":"uint256"},{"indexed":false,"name":"taker","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"dotchsale","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"customerAddress","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"onHarvest","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tokenOwner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Approval","type":"event"}]

608060405269021e19e0c9bab2400000600b55612710600c819055600d556064600e556032600f5560fa6010556011805461ff0019166101001790553480156200004857600080fd5b5060008054600160a060020a031916730b0efad4ae088a88ffdc50bce5fb63c6936b92201790556040805180820190915260058082527f444f5443480000000000000000000000000000000000000000000000000000006020909201918252620000b59160029162000368565b5060408051808201909152601a8082527f4469616d6f6e64204f66205468652043727970746f2048696c6c0000000000006020909201918252620000fc9160039162000368565b506004805460ff191690556402540be4006005819055306000818152600660209081526040808320859055805194855251929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a36009805460010180825560009081526012602052604080822061271060029091018190558354835281832060030155825482528082206064600590910155825482528082206032600790910155915481522043600690910155620001c764010000000062000288810204565b60098054600090815260126020818152604080842043908601558454845260138083528185208054600160a060020a0319163317905585548552928252808420600c0184905584548452808420600d01849055845484528084206004018490558454845280842060fa600a90910155845484528084206175306001918201558554855292909152808320600601805460ff1990811690931790559254825291902069021e19e0c9bab24000006007909101556011805490911690556200040d565b600954600090815260126020526040902060028101546005909101541115620002c857600954600090815260126020526040902060028101546005909101555b60095460009081526012602052604090206005810154600290910154620002fd9164010000000062004c766200034582021704565b6009805460009081526012602052604080822060089081019490945591548152200154600111156200034357600954600090815260126020526040902060016008909101555b565b60008082116200035457600080fd5b81838115156200036057fe5b049392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620003ab57805160ff1916838001178555620003db565b82800160010185558215620003db579182015b82811115620003db578251825591602001919060010190620003be565b50620003e9929150620003ed565b5090565b6200040a91905b80821115620003e95760008155600101620003f4565b90565b614d03806200041d6000396000f3006080604052600436106102ea5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146102ec57806307801b5c14610376578063095ea7b31461039d5780630c71614c146103d55780630d997dc3146103ea57806311a9c3c21461040457806312c3f7571461040f578063146ca531146104305780631522f1101461044557806315bd73f11461046657806318160ddd146104815780631a2a627c146104965780631c761245146104ab57806323b872dd146104b657806329713f86146104e0578063313ce567146104e8578063349a373b14610513578063393470fd1461051e5780634270d48a1461053f5780634c31df50146105545780634fe8b1a81461056957806350849c3b146105815780635fa458b71461058f57806370a082311461059a57806376b3131e146105bb57806379ba5097146105c35780637a5ced61146105d85780637fe9d39c1461060057806381c0ddc31461061857806381d6c8661461066057806385c653ba146106755780638aa6bb931461067d5780638da5cb5b146107035780639279011c1461073457806395d89b41146107495780639995bbf71461075e5780639a880848146107735780639be56c67146107995780639d41198e146107a75780639dfad52d146107bc578063a71ee0c6146107d1578063a9059cbb146107eb578063aa6578151461080f578063b0e16cce1461081d578063b17eb9dc14610838578063b5a7900e14610843578063be96031e14610858578063c04cc86b1461089f578063cae9ca51146108aa578063ce52242e14610913578063d31bc67e14610934578063d4ee1d901461097c578063d66cb9e114610991578063d900175f1461099c578063dc39d06d146109dc578063dd62ed3e14610a00578063e1fa763814610a27578063e39fff7214610a35578063e84a481b14610a3d578063f1522d5314610a58578063f2fde38b14610a79578063fb3f1fd614610a9a578063ffcc848414610aaf575b005b3480156102f857600080fd5b50610301610ac4565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561033b578181015183820152602001610323565b50505050905090810190601f1680156103685780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561038257600080fd5b5061038b610b52565b60408051918252519081900360200190f35b3480156103a957600080fd5b506103c1600160a060020a0360043516602435610b58565b604080519115158252519081900360200190f35b3480156103e157600080fd5b506103c1610bbf565b3480156103f657600080fd5b506102ea6004351515610bc8565b6102ea600435610bf2565b34801561041b57600080fd5b5061038b600160a060020a0360043516610dd7565b34801561043c57600080fd5b5061038b610e05565b34801561045157600080fd5b506102ea600160a060020a0360043516610e0b565b34801561047257600080fd5b506102ea600435602435610edc565b34801561048d57600080fd5b5061038b610f21565b3480156104a257600080fd5b5061038b610f64565b6102ea600435610f6a565b3480156104c257600080fd5b506103c1600160a060020a0360043581169060243516604435611153565b6102ea61124c565b3480156104f457600080fd5b506104fd611367565b6040805160ff9092168252519081900360200190f35b6102ea600435611370565b34801561052a57600080fd5b5061038b600160a060020a0360043516611519565b34801561054b57600080fd5b5061038b61152b565b34801561056057600080fd5b5061038b611531565b34801561057557600080fd5b506102ea600435611537565b6102ea600435602435611565565b6102ea60043561167b565b3480156105a657600080fd5b5061038b600160a060020a03600435166117ea565b6102ea611805565b3480156105cf57600080fd5b506102ea611931565b6102ea60043560243560443560643560843560a43560c43560e43561010435610124356119ac565b34801561060c57600080fd5b506102ea600435612d79565b34801561062457600080fd5b50610630600435612da7565b60408051600160a060020a0390951685526020850193909352838301919091526060830152519081900360800190f35b34801561066c57600080fd5b5061038b612de7565b6102ea612e85565b34801561068957600080fd5b50610695600435612f36565b604080519e8f5260208f019d909d528d8d019b909b5260608d019990995260808c019790975260a08b019590955260c08a019390935260e08901919091526101008801526101208701526101408601526101608501526101808401526101a083015251908190036101c00190f35b34801561070f57600080fd5b50610718612fa2565b60408051600160a060020a039092168252519081900360200190f35b34801561074057600080fd5b5061038b612fb1565b34801561075557600080fd5b50610301612fb7565b34801561076a57600080fd5b5061038b61300f565b61077e600435613015565b60408051921515835260208301919091528051918290030190f35b6102ea6004356024356133e6565b3480156107b357600080fd5b506102ea61353e565b3480156107c857600080fd5b506102ea61369c565b3480156107dd57600080fd5b506102ea60043515156136ae565b3480156107f757600080fd5b506103c1600160a060020a03600435166024356136ea565b6102ea600435602435613788565b34801561082957600080fd5b506102ea60043560243561399e565b6102ea600435613aa4565b34801561084f57600080fd5b5061038b613b9e565b34801561086457600080fd5b50610879600160a060020a0360043516613ba4565b604080519485526020850193909352838301919091526060830152519081900360800190f35b61038b600435613bf5565b3480156108b657600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526103c1948235600160a060020a0316946024803595369594606494920191908190840183828082843750949750613e0d9650505050505050565b34801561091f57600080fd5b5061038b600160a060020a0360043516613f6e565b34801561094057600080fd5b5061094c600435613f9c565b60408051600160a060020a0390951685526020850193909352901515838301526060830152519081900360800190f35b34801561098857600080fd5b50610718613fd3565b6102ea600435613fe2565b3480156109a857600080fd5b506109b4600435614044565b60408051600160a060020a039094168452602084019290925282820152519081900360600190f35b3480156109e857600080fd5b506103c1600160a060020a036004351660243561406f565b348015610a0c57600080fd5b5061038b600160a060020a036004358116906024351661412a565b61077e600435602435614155565b6102ea61467d565b348015610a4957600080fd5b506102ea6004356024356146a3565b348015610a6457600080fd5b5061038b600160a060020a0360043516614794565b348015610a8557600080fd5b506102ea600160a060020a03600435166147c2565b348015610aa657600080fd5b5061038b6147fb565b348015610abb57600080fd5b506103c1614801565b6003805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610b4a5780601f10610b1f57610100808354040283529160200191610b4a565b820191906000526020600020905b815481529060010190602001808311610b2d57829003601f168201915b505050505081565b600d5481565b336000818152600760209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b60115460ff1681565b600054600160a060020a03163314610bdf57600080fd5b6011805460ff1916911515919091179055565b66038d7ea4c68000341015610c0657600080fd5b60095460009081526013602052604090206006015460ff161515600114610c2c57600080fd5b610c3e8161271063ffffffff61480f16565b60095460009081526013602090815260408083203084526004019091529020541015610c6957600080fd5b33600090815260066020526040902054811115610c8557600080fd5b6001811015610c9357600080fd5b30600090815260066020526040902054610cb3908263ffffffff61483416565b30600090815260066020526040808220929092553381522054610cdc908263ffffffff61484416565b3360008181526006602090815260409182902093909355805184815290513093600080516020614cb8833981519152928290030190a3610d53610d278261271063ffffffff61480f16565b60095460009081526013602090815260408083203084526004019091529020549063ffffffff61484416565b6009546000908152601360209081526040808320308452600401909152902055610db4610d888261271063ffffffff61480f16565b60095460009081526013602090815260408083203384526004019091529020549063ffffffff61483416565b600954600090815260136020908152604080832033845260040190915290205550565b6009546000908152601360209081526040808320600160a060020a0385168452600201909152902054919050565b60095481565b600054600160a060020a03163314610e2257600080fd5b6009805460009081526013602081815260408084206012808452828620548652600391820184528286208054600160a060020a031916600160a060020a039990991698909817909755855485528383528185208784528286205486528101835281852043600290910181905586548652848452828620888552838720548752820184528286208201558554855295825280842080546001908101909155945484528084205492825280842083855290950190529290200155565b60008111610ee957600080fd5b600082815260156020526040902054600160a060020a03163314610f0c57600080fd5b60009182526015602052604090912060020155565b600080805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f854600554610f5f9163ffffffff61484416565b905090565b600c5481565b66038d7ea4c68000341015610f7e57600080fd5b60095460009081526013602052604090206006015460ff161515600114610fa457600080fd5b30600090815260066020526040902054811115610fc057600080fd5b610fd28161271063ffffffff61480f16565b60095460009081526013602090815260408083203384526004019091529020541015610ffd57600080fd5b600181101561100b57600080fd5b3060009081526006602052604090205461102b908263ffffffff61484416565b30600090815260066020526040808220929092553381522054611054908263ffffffff61483416565b33600081815260066020908152604091829020939093558051848152905191923092600080516020614cb88339815191529281900390910190a36110cf6110a38261271063ffffffff61480f16565b60095460009081526013602090815260408083203384526004019091529020549063ffffffff61484416565b60095460009081526013602090815260408083203384526004019091529020556111306111048261271063ffffffff61480f16565b60095460009081526013602090815260408083203084526004019091529020549063ffffffff61483416565b600954600090815260136020908152604080832030845260040190915290205550565b600160a060020a03831660009081526006602052604081205461117c908363ffffffff61484416565b600160a060020a03851660009081526006602090815260408083209390935560078152828220338352905220546111b9908363ffffffff61484416565b600160a060020a0380861660009081526007602090815260408083203384528252808320949094559186168152600690915220546111fd908363ffffffff61483416565b600160a060020a038085166000818152600660209081526040918290209490945580518681529051919392881692600080516020614cb883398151915292918290030190a35060019392505050565b66038d7ea4c6800034101561126057600080fd5b3360008181526014602090815260408083205460095484526013835281842094845260059094019091529020541061129757600080fd5b6009805460009081526013602081815260408084206012808452828620548652600391820184528286208054600160a060020a0319163390811790915587548752858552838720828652848820548852830185528387204360029091018190558854885286865284882083875285892054895284018652848820840155875487529084528286208054600190810190915587548752838720548686528488208189529093018552838720810192909255955485529282528084209484526005909401905291902080549091019055565b60045460ff1681565b6000662386f26fc10000820234101561138857600080fd5b600182101561139657600080fd5b60288211156113a457600080fd5b600980546000908152601260205260409020600a8101549101546113cd9163ffffffff61483416565b4311156113dc576113dc614859565b5060005b81811015611496576009805460009081526013602081815260408084206012808452828620548652600391820184528286208054600160a060020a031916331790558654865284845282862081855283872054875282018452828620436002909101819055875487528585528387208286528488205488528301855283872083015586548652835281852080546001908101909155955485528185205493835281852084865201909152909120820155016113e0565b336000908152601460205260409020546114b6908363ffffffff61483416565b33600081815260146020908152604080832094909455600954825260138152838220928252600590920190915220546114f5908363ffffffff61483416565b60095460009081526013602090815260408083203384526005019091529020555050565b60146020526000908152604090205481565b600a5481565b600e5481565b600054600160a060020a0316331461154e57600080fd5b600954600090815260126020526040902060070155565b6000821161157257600080fd5b6000811161157f57600080fd5b3360009081526006602052604090205482111561159b57600080fd5b66038d7ea4c680003410156115af57600080fd5b336000908152600660205260409020546115cf908363ffffffff61484416565b336000908152600660205260408082209290925530815220546115f8908363ffffffff61483416565b30600081815260066020908152604091829020939093558051858152905191923392600080516020614cb88339815191529281900390910190a3600a80546000908152601560205260408082208054600160a060020a03191633179055825482528082206001908101959095558254825290206002019190915580549091019055565b66038d7ea4c6800034101561168f57600080fd5b611697614a23565b61169f614aa7565b6009546000908152601260205260409020600501548111156116c057600080fd5b60095460009081526013602090815260408083203384526002019091529020546116f0908263ffffffff61483416565b6009805460009081526013602090815260408083203384526002018252808320949094559154815260129091522060050154611732908263ffffffff61484416565b600980546000908152601260205260408082206005019390935590548152206008015461176a906110a390839063ffffffff61480f16565b60098054600090815260136020908152604080832033845260040182528083209490945591548152601290915220600801546117d2906117b190839063ffffffff61480f16565b6009546000908152601260205260409020600301549063ffffffff61483416565b60095460009081526012602052604090206003015550565b600160a060020a031660009081526006602052604090205490565b662386f26fc1000034101561181957600080fd5b600980546000908152601260205260409020600a8101549101546118429163ffffffff61483416565b43111561185157611851614859565b6009805460009081526013602081815260408084206012808452828620548652600391820184528286208054600160a060020a031916339081179091558754875285855283872082865284882054885283018552838720436002909101819055885488528686528488208387528589205489528401865284882084015587548752908452828620805460019081019091558754875283872054868652848820818952909301855283872081019290925580865260148452828620805483019055955485529282528084209484526005909401905291902080549091019055565b600154600160a060020a0316331461194857600080fd5b60015460008054604051600160a060020a0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36001805460008054600160a060020a0319908116600160a060020a03841617909155169055565b6000662386f26fc100003410156119c257600080fd5b60095460009081526013602090815260408083208e8452600301909152902054600160a060020a031633146119f657600080fd5b60095460009081526013602090815260408083208d8452600301909152902054600160a060020a03163314611a2a57600080fd5b60095460009081526013602090815260408083208c8452600301909152902054600160a060020a03163314611a5e57600080fd5b60095460009081526013602090815260408083208b8452600301909152902054600160a060020a03163314611a9257600080fd5b60095460009081526013602090815260408083208a8452600301909152902054600160a060020a03163314611ac657600080fd5b6009546000908152601360209081526040808320898452600301909152902054600160a060020a03163314611afa57600080fd5b6009546000908152601360209081526040808320888452600301909152902054600160a060020a03163314611b2e57600080fd5b6009546000908152601360209081526040808320878452600301909152902054600160a060020a03163314611b6257600080fd5b6009546000908152601360209081526040808320868452600301909152902054600160a060020a03163314611b9657600080fd5b6009546000908152601360209081526040808320858452600301909152902054600160a060020a03163314611bca57600080fd5b60095460009081526013602090815260408083208e84526003019091529020600201544311611bf857600080fd5b60095460009081526013602090815260408083208d84526003019091529020600201544311611c2657600080fd5b60095460009081526013602090815260408083208c84526003019091529020600201544311611c5457600080fd5b60095460009081526013602090815260408083208b84526003019091529020600201544311611c8257600080fd5b60095460009081526013602090815260408083208a84526003019091529020600201544311611cb057600080fd5b60095460009081526013602090815260408083208984526003019091529020600201544311611cde57600080fd5b60095460009081526013602090815260408083208884526003019091529020600201544311611d0c57600080fd5b60095460009081526013602090815260408083208784526003019091529020600201544311611d3a57600080fd5b60095460009081526013602090815260408083208684526003019091529020600201544311611d6857600080fd5b60095460009081526013602090815260408083208584526003019091529020600201544311611d9657600080fd5b600954600090815260126020526040902054611e0790611dbc908d63ffffffff61484416565b611dfb60136000600954815260200190815260200160002060030160008f8152602001908152602001600020600201544361484490919063ffffffff16565b9063ffffffff61480f16565b600954600090815260126020526040902060030154909150811115611e9457600954600090815260126020526040902060030154611e4b908263ffffffff61483416565b6009805460009081526012602052604080822060030193909355905481522060020154611e7e908263ffffffff61483416565b6009546000908152601260205260409020600201555b6009546000908152601360209081526040808320338452600401909152902054611ec4908263ffffffff61483416565b6009805460009081526013602090815260408083203384526004018252808320949094559154815260129091522060030154611f06908263ffffffff61484416565b601260006009548152602001908152602001600020600301819055504360136000600954815260200190815260200160002060030160008d815260200190815260200160002060020181905550611fb5611f818b6012600060095481526020019081526020016000206000015461484490919063ffffffff16565b60095460009081526013602090815260408083208f8452600301909152902060020154611dfb90439063ffffffff61484416565b60095460009081526012602052604090206003015490915081111561204257600954600090815260126020526040902060030154611ff9908263ffffffff61483416565b600980546000908152601260205260408082206003019390935590548152206002015461202c908263ffffffff61483416565b6009546000908152601260205260409020600201555b6009546000908152601360209081526040808320338452600401909152902054612072908263ffffffff61483416565b60098054600090815260136020908152604080832033845260040182528083209490945591548152601290915220600301546120b4908263ffffffff61484416565b601260006009548152602001908152602001600020600301819055504360136000600954815260200190815260200160002060030160008c81526020019081526020016000206002018190555061216361212f8a6012600060095481526020019081526020016000206000015461484490919063ffffffff16565b60095460009081526013602090815260408083208e8452600301909152902060020154611dfb90439063ffffffff61484416565b6009546000908152601260205260409020600301549091508111156121f0576009546000908152601260205260409020600301546121a7908263ffffffff61483416565b60098054600090815260126020526040808220600301939093559054815220600201546121da908263ffffffff61483416565b6009546000908152601260205260409020600201555b6009546000908152601360209081526040808320338452600401909152902054612220908263ffffffff61483416565b6009805460009081526013602090815260408083203384526004018252808320949094559154815260129091522060030154612262908263ffffffff61484416565b60098054600090815260126020818152604080842060039081019690965584548452601382528084208f85529095018152848320436002909101559254825290915220546122ee906122ba908463ffffffff61484416565b6009546000908152601360209081526040808320878452600301909152902060020154611dfb90439063ffffffff61484416565b60095460009081526012602052604090206003015490915081111561237b57600954600090815260126020526040902060030154612332908263ffffffff61483416565b6009805460009081526012602052604080822060030193909355905481522060020154612365908263ffffffff61483416565b6009546000908152601260205260409020600201555b60095460009081526013602090815260408083203384526004019091529020546123ab908263ffffffff61483416565b60098054600090815260136020908152604080832033845260040182528083209490945591548152601290915220600301546123ed908263ffffffff61484416565b600980546000908152601260208181526040808420600390810196909655845484526013825280842088855290950181528483204360029091015592548252909152205461247990612445908a63ffffffff61484416565b60095460009081526013602090815260408083208d8452600301909152902060020154611dfb90439063ffffffff61484416565b600954600090815260126020526040902060030154909150811115612506576009546000908152601260205260409020600301546124bd908263ffffffff61483416565b60098054600090815260126020526040808220600301939093559054815220600201546124f0908263ffffffff61483416565b6009546000908152601260205260409020600201555b6009546000908152601360209081526040808320338452600401909152902054612536908263ffffffff61483416565b6009805460009081526013602090815260408083203384526004018252808320949094559154815260129091522060030154612578908263ffffffff61484416565b60098054600090815260126020818152604080842060039081019690965584548452601382528084208e8552909501815284832043600290910155925482529091522054612604906125d0908963ffffffff61484416565b60095460009081526013602090815260408083208c8452600301909152902060020154611dfb90439063ffffffff61484416565b60095460009081526012602052604090206003015490915081111561269157600954600090815260126020526040902060030154612648908263ffffffff61483416565b600980546000908152601260205260408082206003019390935590548152206002015461267b908263ffffffff61483416565b6009546000908152601260205260409020600201555b60095460009081526013602090815260408083203384526004019091529020546126c1908263ffffffff61483416565b6009805460009081526013602090815260408083203384526004018252808320949094559154815260129091522060030154612703908263ffffffff61484416565b60098054600090815260126020818152604080842060039081019690965584548452601382528084208d855290950181528483204360029091015592548252909152205461278f9061275b908863ffffffff61484416565b60095460009081526013602090815260408083208b8452600301909152902060020154611dfb90439063ffffffff61484416565b60095460009081526012602052604090206003015490915081111561281c576009546000908152601260205260409020600301546127d3908263ffffffff61483416565b6009805460009081526012602052604080822060030193909355905481522060020154612806908263ffffffff61483416565b6009546000908152601260205260409020600201555b600954600090815260136020908152604080832033845260040190915290205461284c908263ffffffff61483416565b600980546000908152601360209081526040808320338452600401825280832094909455915481526012909152206003015461288e908263ffffffff61484416565b60098054600090815260126020818152604080842060039081019690965584548452601382528084208c855290950181528483204360029091015592548252909152205461291a906128e6908763ffffffff61484416565b60095460009081526013602090815260408083208a8452600301909152902060020154611dfb90439063ffffffff61484416565b6009546000908152601260205260409020600301549091508111156129a75760095460009081526012602052604090206003015461295e908263ffffffff61483416565b6009805460009081526012602052604080822060030193909355905481522060020154612991908263ffffffff61483416565b6009546000908152601260205260409020600201555b60095460009081526013602090815260408083203384526004019091529020546129d7908263ffffffff61483416565b6009805460009081526013602090815260408083203384526004018252808320949094559154815260129091522060030154612a19908263ffffffff61484416565b60098054600090815260126020818152604080842060039081019690965584548452601382528084208b8552909501815284832043600290910155925482529091522054612aa590612a71908663ffffffff61484416565b6009546000908152601360209081526040808320898452600301909152902060020154611dfb90439063ffffffff61484416565b600954600090815260126020526040902060030154909150811115612b3257600954600090815260126020526040902060030154612ae9908263ffffffff61483416565b6009805460009081526012602052604080822060030193909355905481522060020154612b1c908263ffffffff61483416565b6009546000908152601260205260409020600201555b6009546000908152601360209081526040808320338452600401909152902054612b62908263ffffffff61483416565b6009805460009081526013602090815260408083203384526004018252808320949094559154815260129091522060030154612ba4908263ffffffff61484416565b60098054600090815260126020818152604080842060039081019690965584548452601382528084208a8552909501815284832043600290910155925482529091522054612c3090612bfc908563ffffffff61484416565b6009546000908152601360209081526040808320888452600301909152902060020154611dfb90439063ffffffff61484416565b600954600090815260126020526040902060030154909150811115612cbd57600954600090815260126020526040902060030154612c74908263ffffffff61483416565b6009805460009081526012602052604080822060030193909355905481522060020154612ca7908263ffffffff61483416565b6009546000908152601260205260409020600201555b6009546000908152601360209081526040808320338452600401909152902054612ced908263ffffffff61483416565b6009805460009081526013602090815260408083203384526004018252808320949094559154815260129091522060030154612d2f908263ffffffff61484416565b600980546000908152601260209081526040808320600390810195909555925482526013815282822096825295909201909452929092204360029091015550505050505050505050565b600054600160a060020a03163314612d9057600080fd5b600954600090815260126020526040902060010155565b6009546000908152601360209081526040808320938352600393840190915290208054600182015460028301549290930154600160a060020a0390911693565b604080517e65318b000000000000000000000000000000000000000000000000000000008152306004820152905160009173b3775fb83f7d12a36e0475abdd1fca35c091efbe916265318b9160248082019260209290919082900301818787803b158015612e5457600080fd5b505af1158015612e68573d6000803e3d6000fd5b505050506040513d6020811015612e7e57600080fd5b5051905090565b6011805460ff1916600117905566038d7ea4c68000341015612ea657600080fd5b612eae612de7565b6016819055600010612ebf57600080fd5b612ec7614b58565b601654604051339180156108fc02916000818181858888f19350505050158015612ef5573d6000803e3d6000fd5b5060165460408051338152602081019290925280517f6cb996505271b3d1e209a838bce3da507741e7d6456f9b7d511098ff37b7f5289281900390910190a1565b601260205280600052604060002060009150905080600001549080600101549080600201549080600301549080600401549080600501549080600601549080600701549080600801549080600901549080600a01549080600b01549080600c01549080600d015490508e565b600054600160a060020a031681565b600b5481565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015610b4a5780601f10610b1f57610100808354040283529160200191610b4a565b60085481565b60008066038d7ea4c6800034101561302c57600080fd5b600980546000908152601260205260409020600a8101549101546130559163ffffffff61483416565b43111561306457613064614859565b600954600090815260136020908152604080832033845260020190915290205483111561309057600080fd5b600183101561309e57600080fd5b600954600090815260136020526040902054600160a060020a0316331415613150576009546000908152601360205260409020600101546130e5908463ffffffff61483416565b60098054600090815260136020908152604080832060010194909455915481528281203382526002019091522054613123908463ffffffff61484416565b600954600090815260136020908152604080832033845260020190915281209190915591508190506133e1565b600954600090815260136020526040902054600160a060020a031633146133e1576009546000908152601360205260409020600101548311156132f157600954600090815260136020908152604091829020548251600160a060020a039091168152339181019190915281517fa475e0e386c2b565f0cacab74df66b164ec20db6ff736b34ed1384b4cb585985929181900390910190a1600954600090815260136020908152604091829020600181015490548351338152928301829052600160a060020a03168284015260608201529051600080516020614c988339815191529181900360800190a1600980546000908152601360205260408082208054600160a060020a0319163317905591548152206001015461327790849063ffffffff61484416565b600980546000908152601360209081526040808320600101949094559154815282812033825260020190915220546132b5908463ffffffff61484416565b600980546000908152601360208181526040808420338552600201825280842095909555925482529091522060019081015490925090506133e1565b60095460009081526013602052604090206001015483116133e157600954600090815260136020526040902060010154613331908463ffffffff61484416565b6009805460009081526013602090815260408083206001019490945591548152828120338252600201909152205461336f908463ffffffff61484416565b6009805460009081526013602081815260408084203380865260029091018352818520969096559354835290815290829020548251938452908301869052600160a060020a0316828201526060820185905251600080516020614c988339815191529181900360800190a15060009050815b915091565b66038d7ea4c680003410156133fa57600080fd5b6009546000908152601360209081526040808320858452600301909152902054600160a060020a0316331461342e57600080fd5b6009546000908152601360209081526040808320858452600301909152902054600160a060020a0316151561346257600080fd5b600954600090815260136020908152604080832033845260020190915290205481111561348e57600080fd5b600181101561349c57600080fd5b60095460009081526013602090815260408083208584526003019091529020600101546134cf908263ffffffff61483416565b600980546000908152601360208181526040808420888552600301825280842060010195909555925482528252828120338252600201909152205461351a908263ffffffff61484416565b60095460009081526013602090815260408083203384526002019091529020555050565b6009546000908152601360209081526040808320600701546012909252909120600b01541161356c57600080fd5b60098054600101808255600c546000918252601260205260408083206002018290558354835280832060030191909155600e548354835281832060050155600f5483548352818320600701559154815220436006909101556135cc614aa7565b6009805460009081526012602081815260408084204390860155845484526013808352818520805433600160a060020a031990911617905585546000198082018752858552838720600c90810154928852848820019190915586548082018752838720600d90810154918852848820015586549081018652828620600490810154918752838720015560105486548652828620600a015560115486548652908352818520600601805460ff191661010090920460ff16151591909117905593548352522061753060019190910155565b6136a7600854614bdd565b6000600855565b600054600160a060020a031633146136c557600080fd5b6009546000908152601360205260409020600601805460ff1916911515919091179055565b3360009081526006602052604081205461370a908363ffffffff61484416565b3360009081526006602052604080822092909255600160a060020a0385168152205461373c908363ffffffff61483416565b600160a060020a038416600081815260066020908152604091829020939093558051858152905191923392600080516020614cb88339815191529281900390910190a350600192915050565b6000828152601560205260409020600201546137aa908263ffffffff61480f16565b3410156137b657600080fd5b600081116137c357600080fd5b6000828152601560205260409020600101548111156137e157600080fd5b600082815260156020526040902054600160a060020a031633141561380557600080fd5b3060009081526006602052604090205481111561382157600080fd5b600082815260156020526040902060010154613843908263ffffffff61484416565b600083815260156020908152604080832060010193909355338252600690522054613874908263ffffffff61483416565b3360009081526006602052604080822092909255308152205461389d908263ffffffff61484416565b3060008181526006602090815260409182902093909355805184815290513393600080516020614cb8833981519152928290030190a360008281526015602090815260409182902080546002909101548351600160a060020a0390921682529181019190915233818301526060810183905290517f86dd97753ac184a702ff1c26dbba9dfd2c7fdf8858aef4cf9bb7d66f232ef7ab9181900360800190a160008281526015602052604090208054600290910154600160a060020a03909116906108fc90613971908463ffffffff61480f16565b6040518115909202916000818181858888f19350505050158015613999573d6000803e3d6000fd5b505050565b600081116139ab57600080fd5b600082815260156020526040902054600160a060020a031633146139ce57600080fd5b306000908152600660205260409020548111156139ea57600080fd5b33600090815260066020526040902054613a0a908263ffffffff61483416565b33600090815260066020526040808220929092553081522054613a33908263ffffffff61484416565b3060008181526006602090815260409182902093909355805184815290513393600080516020614cb8833981519152928290030190a3600082815260156020526040902060010154613a8b908263ffffffff61484416565b6000928352601560205260409092206001019190915550565b66038d7ea4c68000341015613ab857600080fd5b600954600090815260136020526040902054600160a060020a03163314613ade57600080fd5b6009546000908152601360209081526040808320338452600201909152902054811115613b0a57600080fd5b6001811015613b1857600080fd5b600954600090815260136020526040902060010154613b3d908263ffffffff61483416565b60098054600090815260136020908152604080832060010194909455915481528281203382526002019091522054613b7b908263ffffffff61484416565b600954600090815260136020908152604080832033845260020190915290205550565b600f5481565b6009546000908152601360209081526040808320600160a060020a03949094168352600584018252808320546014835281842054600286018452828520546004909601909352922054919390929190565b60008066038d7ea4c68000341015613c0c57600080fd5b600980546000908152601260205260409020600a810154910154613c359163ffffffff61483416565b431115613c4457613c44614859565b6009546000908152601360209081526040808320868452600301909152902054600160a060020a03163314613c7857600080fd5b60095460009081526013602090815260408083208684526003019091529020600201544311613ca657600080fd5b600954600090815260126020526040902054613ccc90612bfc908563ffffffff61484416565b600954600090815260126020526040902060030154909150811115613d5957600954600090815260126020526040902060030154613d10908263ffffffff61483416565b6009805460009081526012602052604080822060030193909355905481522060020154613d43908263ffffffff61483416565b6009546000908152601260205260409020600201555b6009546000908152601360209081526040808320338452600401909152902054613d89908263ffffffff61483416565b6009805460009081526013602090815260408083203384526004018252808320949094559154815260129091522060030154613dcb908263ffffffff61484416565b60098054600090815260126020908152604080832060039081019590955592548252601381528282208783529093019092529020436002909101559050919050565b336000818152600760209081526040808320600160a060020a038816808552908352818420879055815187815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a36040517f8f4ffcb10000000000000000000000000000000000000000000000000000000081523360048201818152602483018690523060448401819052608060648501908152865160848601528651600160a060020a038a1695638f4ffcb195948a94938a939192909160a490910190602085019080838360005b83811015613efd578181015183820152602001613ee5565b50505050905090810190601f168015613f2a5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015613f4c57600080fd5b505af1158015613f60573d6000803e3d6000fd5b506001979650505050505050565b6009546000908152601360209081526040808320600160a060020a0385168452600401909152902054919050565b6013602052600090815260409020805460018201546006830154600790930154600160a060020a0390921692909160ff9091169084565b600154600160a060020a031681565b6009546000908152601260205260409020546140119066038d7ea4c6800090611dfb908463ffffffff61484416565b34101561401d57600080fd5b60095460009081526013602090815260408083209383526003938401909152902043910155565b601560205260009081526040902080546001820154600290920154600160a060020a03909116919083565b60008054600160a060020a0316331461408757600080fd5b60008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810186905290519186169263a9059cbb926044808401936020939083900390910190829087803b1580156140f757600080fd5b505af115801561410b573d6000803e3d6000fd5b505050506040513d602081101561412157600080fd5b50519392505050565b600160a060020a03918216600090815260076020908152604080832093909416825291909152205490565b6000808066038d7ea4c6800034101561416d57600080fd5b600980546000908152601260205260409020600a8101549101540143111561419757614197614859565b600954600090815260126020908152604080832060010154601383528184208985526003908101909352922001546141d49163ffffffff61483416565b90504381106141e257600080fd5b6009546000908152601360209081526040808320888452600301909152902054600160a060020a0316151561421657600080fd5b600954600090815260136020908152604080832033845260020190915290205484111561424257600080fd5b600184101561425057600080fd5b6009546000908152601360209081526040808320888452600301909152902054600160a060020a031633141561432b5760095460009081526013602090815260408083208884526003019091529020600101546142b3908563ffffffff61483416565b6009805460009081526013602081815260408084208b855260030182528084206001019590955592548252825282812033825260020190915220546142fe908563ffffffff61484416565b60095460009081526013602090815260408083203384526002019091528120919091559250829150614675565b6009546000908152601360209081526040808320888452600301909152902054600160a060020a0316331461467557600954600090815260136020908152604080832088845260030190915290206001015484111561454b576009546000908152601360209081526040808320888452600301825291829020600181015490548351338152928301829052600160a060020a03168284015260608201529051600080516020614c988339815191529181900360800190a16009546000908152601360209081526040808320888452600301825291829020548251600160a060020a039091168152339181019190915280820187905290517f440aa0a8b32b3d78a1599a32e5e1d787f8ed2e218875cbf64efc169fe3c544649181900360600190a16009805460009081526013602081815260408084208a8552600390810183528185208054600160a060020a031916331790559454845291815281832089845290930190925220600101546144a790859063ffffffff61484416565b6009805460009081526013602081815260408084208b855260030182528084206001019590955592548252825282812033825260020190915220546144f2908563ffffffff61484416565b600954600090815260136020908152604080832033845260020190915290205561451b85613bf5565b50600954600090815260136020908152604080832088845260030190915290206001908101549093509150614675565b60095460009081526013602090815260408083208884526003019091529020600101548411614675576009546000908152601360209081526040808320888452600301825291829020548251338152918201879052600160a060020a031681830152606081018690529051600080516020614c988339815191529181900360800190a16009546000908152601360209081526040808320888452600301909152902060010154614601908563ffffffff61484416565b6009805460009081526013602081815260408084208b8552600301825280842060010195909555925482528252828120338252600201909152205461464c908563ffffffff61484416565b600954600090815260136020908152604080832033845260020190915281209190915592508391505b509250929050565b600954600090815260136020526040902054600160a060020a03163314612ebf57600080fd5b600081116146b057600080fd5b600082815260156020526040902054600160a060020a031633146146d357600080fd5b336000908152600660205260409020548111156146ef57600080fd5b3360009081526006602052604090205461470f908263ffffffff61484416565b33600090815260066020526040808220929092553081522054614738908263ffffffff61483416565b30600081815260066020908152604091829020939093558051848152905191923392600080516020614cb88339815191529281900390910190a3600082815260156020526040902060010154613a8b908263ffffffff61483416565b6009546000908152601360209081526040808320600160a060020a0385168452600501909152902054919050565b600054600160a060020a031633146147d957600080fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b60105481565b601154610100900460ff1681565b818102821580614829575081838281151561482657fe5b04145b1515610bb957600080fd5b81810182811015610bb957600080fd5b60008282111561485357600080fd5b50900390565b600980546000908152601260205260409020600a8101549101546148829163ffffffff61483416565b431161488d57600080fd5b600980546000908152601260205260409020600a8101549101546148b69163ffffffff61483416565b6009805460009081526012602052604090200155600854614905906148f6906064906148ea9030319063ffffffff61484416565b9063ffffffff614c7616565b6008549063ffffffff61483416565b6008819055600054600160a060020a0316906108fc90614934906064906148ea9030319063ffffffff61484416565b6040518115909202916000818181858888f1935050505015801561495c573d6000803e3d6000fd5b506149a561498460026148ea60085430600160a060020a03163161484490919063ffffffff16565b6009546000908152601260205260409020600b01549063ffffffff61483416565b600980546000908152601260209081526040808320600b01949094559154815260139091522054600854600160a060020a03909116906108fc906149f8906002906148ea9030319063ffffffff61484416565b6040518115909202916000818181858888f19350505050158015614a20573d6000803e3d6000fd5b50565b600954600090815260126020526040902060078101548154600690920154614a7f92614a5e9291611dfb91908290439063ffffffff61484416565b6009546000908152601260205260409020600501549063ffffffff61483416565b6009805460009081526012602052604080822060050193909355905481522043600690910155565b600954600090815260126020526040902060028101546005909101541115614ae657600954600090815260126020526040902060028101546005909101555b60095460009081526012602052604090206005810154600290910154614b119163ffffffff614c7616565b600980546000908152601260205260408082206008908101949094559154815220015460011115614b5657600954600090815260126020526040902060016008909101555b565b73b3775fb83f7d12a36e0475abdd1fca35c091efbe600160a060020a0316633ccfd60b6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b158015614bc357600080fd5b505af1158015614bd7573d6000803e3d6000fd5b50505050565b604080517ff088d547000000000000000000000000000000000000000000000000000000008152306004820152905173b3775fb83f7d12a36e0475abdd1fca35c091efbe9163f088d54791849160248082019260209290919082900301818588803b158015614c4b57600080fd5b505af1158015614c5f573d6000803e3d6000fd5b50505050506040513d602081101561399957600080fd5b6000808211614c8457600080fd5b8183811515614c8f57fe5b04939250505056009a6711bd12448549c8fdb9001f9e0681e5913c10562075129be867d61a0651d2ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820976828163af9e0335a750972a0474122db1986ce6bbf7a2f46beb3c38aeefa4b0029

Deployed Bytecode

0x6080604052600436106102ea5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146102ec57806307801b5c14610376578063095ea7b31461039d5780630c71614c146103d55780630d997dc3146103ea57806311a9c3c21461040457806312c3f7571461040f578063146ca531146104305780631522f1101461044557806315bd73f11461046657806318160ddd146104815780631a2a627c146104965780631c761245146104ab57806323b872dd146104b657806329713f86146104e0578063313ce567146104e8578063349a373b14610513578063393470fd1461051e5780634270d48a1461053f5780634c31df50146105545780634fe8b1a81461056957806350849c3b146105815780635fa458b71461058f57806370a082311461059a57806376b3131e146105bb57806379ba5097146105c35780637a5ced61146105d85780637fe9d39c1461060057806381c0ddc31461061857806381d6c8661461066057806385c653ba146106755780638aa6bb931461067d5780638da5cb5b146107035780639279011c1461073457806395d89b41146107495780639995bbf71461075e5780639a880848146107735780639be56c67146107995780639d41198e146107a75780639dfad52d146107bc578063a71ee0c6146107d1578063a9059cbb146107eb578063aa6578151461080f578063b0e16cce1461081d578063b17eb9dc14610838578063b5a7900e14610843578063be96031e14610858578063c04cc86b1461089f578063cae9ca51146108aa578063ce52242e14610913578063d31bc67e14610934578063d4ee1d901461097c578063d66cb9e114610991578063d900175f1461099c578063dc39d06d146109dc578063dd62ed3e14610a00578063e1fa763814610a27578063e39fff7214610a35578063e84a481b14610a3d578063f1522d5314610a58578063f2fde38b14610a79578063fb3f1fd614610a9a578063ffcc848414610aaf575b005b3480156102f857600080fd5b50610301610ac4565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561033b578181015183820152602001610323565b50505050905090810190601f1680156103685780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561038257600080fd5b5061038b610b52565b60408051918252519081900360200190f35b3480156103a957600080fd5b506103c1600160a060020a0360043516602435610b58565b604080519115158252519081900360200190f35b3480156103e157600080fd5b506103c1610bbf565b3480156103f657600080fd5b506102ea6004351515610bc8565b6102ea600435610bf2565b34801561041b57600080fd5b5061038b600160a060020a0360043516610dd7565b34801561043c57600080fd5b5061038b610e05565b34801561045157600080fd5b506102ea600160a060020a0360043516610e0b565b34801561047257600080fd5b506102ea600435602435610edc565b34801561048d57600080fd5b5061038b610f21565b3480156104a257600080fd5b5061038b610f64565b6102ea600435610f6a565b3480156104c257600080fd5b506103c1600160a060020a0360043581169060243516604435611153565b6102ea61124c565b3480156104f457600080fd5b506104fd611367565b6040805160ff9092168252519081900360200190f35b6102ea600435611370565b34801561052a57600080fd5b5061038b600160a060020a0360043516611519565b34801561054b57600080fd5b5061038b61152b565b34801561056057600080fd5b5061038b611531565b34801561057557600080fd5b506102ea600435611537565b6102ea600435602435611565565b6102ea60043561167b565b3480156105a657600080fd5b5061038b600160a060020a03600435166117ea565b6102ea611805565b3480156105cf57600080fd5b506102ea611931565b6102ea60043560243560443560643560843560a43560c43560e43561010435610124356119ac565b34801561060c57600080fd5b506102ea600435612d79565b34801561062457600080fd5b50610630600435612da7565b60408051600160a060020a0390951685526020850193909352838301919091526060830152519081900360800190f35b34801561066c57600080fd5b5061038b612de7565b6102ea612e85565b34801561068957600080fd5b50610695600435612f36565b604080519e8f5260208f019d909d528d8d019b909b5260608d019990995260808c019790975260a08b019590955260c08a019390935260e08901919091526101008801526101208701526101408601526101608501526101808401526101a083015251908190036101c00190f35b34801561070f57600080fd5b50610718612fa2565b60408051600160a060020a039092168252519081900360200190f35b34801561074057600080fd5b5061038b612fb1565b34801561075557600080fd5b50610301612fb7565b34801561076a57600080fd5b5061038b61300f565b61077e600435613015565b60408051921515835260208301919091528051918290030190f35b6102ea6004356024356133e6565b3480156107b357600080fd5b506102ea61353e565b3480156107c857600080fd5b506102ea61369c565b3480156107dd57600080fd5b506102ea60043515156136ae565b3480156107f757600080fd5b506103c1600160a060020a03600435166024356136ea565b6102ea600435602435613788565b34801561082957600080fd5b506102ea60043560243561399e565b6102ea600435613aa4565b34801561084f57600080fd5b5061038b613b9e565b34801561086457600080fd5b50610879600160a060020a0360043516613ba4565b604080519485526020850193909352838301919091526060830152519081900360800190f35b61038b600435613bf5565b3480156108b657600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526103c1948235600160a060020a0316946024803595369594606494920191908190840183828082843750949750613e0d9650505050505050565b34801561091f57600080fd5b5061038b600160a060020a0360043516613f6e565b34801561094057600080fd5b5061094c600435613f9c565b60408051600160a060020a0390951685526020850193909352901515838301526060830152519081900360800190f35b34801561098857600080fd5b50610718613fd3565b6102ea600435613fe2565b3480156109a857600080fd5b506109b4600435614044565b60408051600160a060020a039094168452602084019290925282820152519081900360600190f35b3480156109e857600080fd5b506103c1600160a060020a036004351660243561406f565b348015610a0c57600080fd5b5061038b600160a060020a036004358116906024351661412a565b61077e600435602435614155565b6102ea61467d565b348015610a4957600080fd5b506102ea6004356024356146a3565b348015610a6457600080fd5b5061038b600160a060020a0360043516614794565b348015610a8557600080fd5b506102ea600160a060020a03600435166147c2565b348015610aa657600080fd5b5061038b6147fb565b348015610abb57600080fd5b506103c1614801565b6003805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610b4a5780601f10610b1f57610100808354040283529160200191610b4a565b820191906000526020600020905b815481529060010190602001808311610b2d57829003601f168201915b505050505081565b600d5481565b336000818152600760209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b60115460ff1681565b600054600160a060020a03163314610bdf57600080fd5b6011805460ff1916911515919091179055565b66038d7ea4c68000341015610c0657600080fd5b60095460009081526013602052604090206006015460ff161515600114610c2c57600080fd5b610c3e8161271063ffffffff61480f16565b60095460009081526013602090815260408083203084526004019091529020541015610c6957600080fd5b33600090815260066020526040902054811115610c8557600080fd5b6001811015610c9357600080fd5b30600090815260066020526040902054610cb3908263ffffffff61483416565b30600090815260066020526040808220929092553381522054610cdc908263ffffffff61484416565b3360008181526006602090815260409182902093909355805184815290513093600080516020614cb8833981519152928290030190a3610d53610d278261271063ffffffff61480f16565b60095460009081526013602090815260408083203084526004019091529020549063ffffffff61484416565b6009546000908152601360209081526040808320308452600401909152902055610db4610d888261271063ffffffff61480f16565b60095460009081526013602090815260408083203384526004019091529020549063ffffffff61483416565b600954600090815260136020908152604080832033845260040190915290205550565b6009546000908152601360209081526040808320600160a060020a0385168452600201909152902054919050565b60095481565b600054600160a060020a03163314610e2257600080fd5b6009805460009081526013602081815260408084206012808452828620548652600391820184528286208054600160a060020a031916600160a060020a039990991698909817909755855485528383528185208784528286205486528101835281852043600290910181905586548652848452828620888552838720548752820184528286208201558554855295825280842080546001908101909155945484528084205492825280842083855290950190529290200155565b60008111610ee957600080fd5b600082815260156020526040902054600160a060020a03163314610f0c57600080fd5b60009182526015602052604090912060020155565b600080805260066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f854600554610f5f9163ffffffff61484416565b905090565b600c5481565b66038d7ea4c68000341015610f7e57600080fd5b60095460009081526013602052604090206006015460ff161515600114610fa457600080fd5b30600090815260066020526040902054811115610fc057600080fd5b610fd28161271063ffffffff61480f16565b60095460009081526013602090815260408083203384526004019091529020541015610ffd57600080fd5b600181101561100b57600080fd5b3060009081526006602052604090205461102b908263ffffffff61484416565b30600090815260066020526040808220929092553381522054611054908263ffffffff61483416565b33600081815260066020908152604091829020939093558051848152905191923092600080516020614cb88339815191529281900390910190a36110cf6110a38261271063ffffffff61480f16565b60095460009081526013602090815260408083203384526004019091529020549063ffffffff61484416565b60095460009081526013602090815260408083203384526004019091529020556111306111048261271063ffffffff61480f16565b60095460009081526013602090815260408083203084526004019091529020549063ffffffff61483416565b600954600090815260136020908152604080832030845260040190915290205550565b600160a060020a03831660009081526006602052604081205461117c908363ffffffff61484416565b600160a060020a03851660009081526006602090815260408083209390935560078152828220338352905220546111b9908363ffffffff61484416565b600160a060020a0380861660009081526007602090815260408083203384528252808320949094559186168152600690915220546111fd908363ffffffff61483416565b600160a060020a038085166000818152600660209081526040918290209490945580518681529051919392881692600080516020614cb883398151915292918290030190a35060019392505050565b66038d7ea4c6800034101561126057600080fd5b3360008181526014602090815260408083205460095484526013835281842094845260059094019091529020541061129757600080fd5b6009805460009081526013602081815260408084206012808452828620548652600391820184528286208054600160a060020a0319163390811790915587548752858552838720828652848820548852830185528387204360029091018190558854885286865284882083875285892054895284018652848820840155875487529084528286208054600190810190915587548752838720548686528488208189529093018552838720810192909255955485529282528084209484526005909401905291902080549091019055565b60045460ff1681565b6000662386f26fc10000820234101561138857600080fd5b600182101561139657600080fd5b60288211156113a457600080fd5b600980546000908152601260205260409020600a8101549101546113cd9163ffffffff61483416565b4311156113dc576113dc614859565b5060005b81811015611496576009805460009081526013602081815260408084206012808452828620548652600391820184528286208054600160a060020a031916331790558654865284845282862081855283872054875282018452828620436002909101819055875487528585528387208286528488205488528301855283872083015586548652835281852080546001908101909155955485528185205493835281852084865201909152909120820155016113e0565b336000908152601460205260409020546114b6908363ffffffff61483416565b33600081815260146020908152604080832094909455600954825260138152838220928252600590920190915220546114f5908363ffffffff61483416565b60095460009081526013602090815260408083203384526005019091529020555050565b60146020526000908152604090205481565b600a5481565b600e5481565b600054600160a060020a0316331461154e57600080fd5b600954600090815260126020526040902060070155565b6000821161157257600080fd5b6000811161157f57600080fd5b3360009081526006602052604090205482111561159b57600080fd5b66038d7ea4c680003410156115af57600080fd5b336000908152600660205260409020546115cf908363ffffffff61484416565b336000908152600660205260408082209290925530815220546115f8908363ffffffff61483416565b30600081815260066020908152604091829020939093558051858152905191923392600080516020614cb88339815191529281900390910190a3600a80546000908152601560205260408082208054600160a060020a03191633179055825482528082206001908101959095558254825290206002019190915580549091019055565b66038d7ea4c6800034101561168f57600080fd5b611697614a23565b61169f614aa7565b6009546000908152601260205260409020600501548111156116c057600080fd5b60095460009081526013602090815260408083203384526002019091529020546116f0908263ffffffff61483416565b6009805460009081526013602090815260408083203384526002018252808320949094559154815260129091522060050154611732908263ffffffff61484416565b600980546000908152601260205260408082206005019390935590548152206008015461176a906110a390839063ffffffff61480f16565b60098054600090815260136020908152604080832033845260040182528083209490945591548152601290915220600801546117d2906117b190839063ffffffff61480f16565b6009546000908152601260205260409020600301549063ffffffff61483416565b60095460009081526012602052604090206003015550565b600160a060020a031660009081526006602052604090205490565b662386f26fc1000034101561181957600080fd5b600980546000908152601260205260409020600a8101549101546118429163ffffffff61483416565b43111561185157611851614859565b6009805460009081526013602081815260408084206012808452828620548652600391820184528286208054600160a060020a031916339081179091558754875285855283872082865284882054885283018552838720436002909101819055885488528686528488208387528589205489528401865284882084015587548752908452828620805460019081019091558754875283872054868652848820818952909301855283872081019290925580865260148452828620805483019055955485529282528084209484526005909401905291902080549091019055565b600154600160a060020a0316331461194857600080fd5b60015460008054604051600160a060020a0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36001805460008054600160a060020a0319908116600160a060020a03841617909155169055565b6000662386f26fc100003410156119c257600080fd5b60095460009081526013602090815260408083208e8452600301909152902054600160a060020a031633146119f657600080fd5b60095460009081526013602090815260408083208d8452600301909152902054600160a060020a03163314611a2a57600080fd5b60095460009081526013602090815260408083208c8452600301909152902054600160a060020a03163314611a5e57600080fd5b60095460009081526013602090815260408083208b8452600301909152902054600160a060020a03163314611a9257600080fd5b60095460009081526013602090815260408083208a8452600301909152902054600160a060020a03163314611ac657600080fd5b6009546000908152601360209081526040808320898452600301909152902054600160a060020a03163314611afa57600080fd5b6009546000908152601360209081526040808320888452600301909152902054600160a060020a03163314611b2e57600080fd5b6009546000908152601360209081526040808320878452600301909152902054600160a060020a03163314611b6257600080fd5b6009546000908152601360209081526040808320868452600301909152902054600160a060020a03163314611b9657600080fd5b6009546000908152601360209081526040808320858452600301909152902054600160a060020a03163314611bca57600080fd5b60095460009081526013602090815260408083208e84526003019091529020600201544311611bf857600080fd5b60095460009081526013602090815260408083208d84526003019091529020600201544311611c2657600080fd5b60095460009081526013602090815260408083208c84526003019091529020600201544311611c5457600080fd5b60095460009081526013602090815260408083208b84526003019091529020600201544311611c8257600080fd5b60095460009081526013602090815260408083208a84526003019091529020600201544311611cb057600080fd5b60095460009081526013602090815260408083208984526003019091529020600201544311611cde57600080fd5b60095460009081526013602090815260408083208884526003019091529020600201544311611d0c57600080fd5b60095460009081526013602090815260408083208784526003019091529020600201544311611d3a57600080fd5b60095460009081526013602090815260408083208684526003019091529020600201544311611d6857600080fd5b60095460009081526013602090815260408083208584526003019091529020600201544311611d9657600080fd5b600954600090815260126020526040902054611e0790611dbc908d63ffffffff61484416565b611dfb60136000600954815260200190815260200160002060030160008f8152602001908152602001600020600201544361484490919063ffffffff16565b9063ffffffff61480f16565b600954600090815260126020526040902060030154909150811115611e9457600954600090815260126020526040902060030154611e4b908263ffffffff61483416565b6009805460009081526012602052604080822060030193909355905481522060020154611e7e908263ffffffff61483416565b6009546000908152601260205260409020600201555b6009546000908152601360209081526040808320338452600401909152902054611ec4908263ffffffff61483416565b6009805460009081526013602090815260408083203384526004018252808320949094559154815260129091522060030154611f06908263ffffffff61484416565b601260006009548152602001908152602001600020600301819055504360136000600954815260200190815260200160002060030160008d815260200190815260200160002060020181905550611fb5611f818b6012600060095481526020019081526020016000206000015461484490919063ffffffff16565b60095460009081526013602090815260408083208f8452600301909152902060020154611dfb90439063ffffffff61484416565b60095460009081526012602052604090206003015490915081111561204257600954600090815260126020526040902060030154611ff9908263ffffffff61483416565b600980546000908152601260205260408082206003019390935590548152206002015461202c908263ffffffff61483416565b6009546000908152601260205260409020600201555b6009546000908152601360209081526040808320338452600401909152902054612072908263ffffffff61483416565b60098054600090815260136020908152604080832033845260040182528083209490945591548152601290915220600301546120b4908263ffffffff61484416565b601260006009548152602001908152602001600020600301819055504360136000600954815260200190815260200160002060030160008c81526020019081526020016000206002018190555061216361212f8a6012600060095481526020019081526020016000206000015461484490919063ffffffff16565b60095460009081526013602090815260408083208e8452600301909152902060020154611dfb90439063ffffffff61484416565b6009546000908152601260205260409020600301549091508111156121f0576009546000908152601260205260409020600301546121a7908263ffffffff61483416565b60098054600090815260126020526040808220600301939093559054815220600201546121da908263ffffffff61483416565b6009546000908152601260205260409020600201555b6009546000908152601360209081526040808320338452600401909152902054612220908263ffffffff61483416565b6009805460009081526013602090815260408083203384526004018252808320949094559154815260129091522060030154612262908263ffffffff61484416565b60098054600090815260126020818152604080842060039081019690965584548452601382528084208f85529095018152848320436002909101559254825290915220546122ee906122ba908463ffffffff61484416565b6009546000908152601360209081526040808320878452600301909152902060020154611dfb90439063ffffffff61484416565b60095460009081526012602052604090206003015490915081111561237b57600954600090815260126020526040902060030154612332908263ffffffff61483416565b6009805460009081526012602052604080822060030193909355905481522060020154612365908263ffffffff61483416565b6009546000908152601260205260409020600201555b60095460009081526013602090815260408083203384526004019091529020546123ab908263ffffffff61483416565b60098054600090815260136020908152604080832033845260040182528083209490945591548152601290915220600301546123ed908263ffffffff61484416565b600980546000908152601260208181526040808420600390810196909655845484526013825280842088855290950181528483204360029091015592548252909152205461247990612445908a63ffffffff61484416565b60095460009081526013602090815260408083208d8452600301909152902060020154611dfb90439063ffffffff61484416565b600954600090815260126020526040902060030154909150811115612506576009546000908152601260205260409020600301546124bd908263ffffffff61483416565b60098054600090815260126020526040808220600301939093559054815220600201546124f0908263ffffffff61483416565b6009546000908152601260205260409020600201555b6009546000908152601360209081526040808320338452600401909152902054612536908263ffffffff61483416565b6009805460009081526013602090815260408083203384526004018252808320949094559154815260129091522060030154612578908263ffffffff61484416565b60098054600090815260126020818152604080842060039081019690965584548452601382528084208e8552909501815284832043600290910155925482529091522054612604906125d0908963ffffffff61484416565b60095460009081526013602090815260408083208c8452600301909152902060020154611dfb90439063ffffffff61484416565b60095460009081526012602052604090206003015490915081111561269157600954600090815260126020526040902060030154612648908263ffffffff61483416565b600980546000908152601260205260408082206003019390935590548152206002015461267b908263ffffffff61483416565b6009546000908152601260205260409020600201555b60095460009081526013602090815260408083203384526004019091529020546126c1908263ffffffff61483416565b6009805460009081526013602090815260408083203384526004018252808320949094559154815260129091522060030154612703908263ffffffff61484416565b60098054600090815260126020818152604080842060039081019690965584548452601382528084208d855290950181528483204360029091015592548252909152205461278f9061275b908863ffffffff61484416565b60095460009081526013602090815260408083208b8452600301909152902060020154611dfb90439063ffffffff61484416565b60095460009081526012602052604090206003015490915081111561281c576009546000908152601260205260409020600301546127d3908263ffffffff61483416565b6009805460009081526012602052604080822060030193909355905481522060020154612806908263ffffffff61483416565b6009546000908152601260205260409020600201555b600954600090815260136020908152604080832033845260040190915290205461284c908263ffffffff61483416565b600980546000908152601360209081526040808320338452600401825280832094909455915481526012909152206003015461288e908263ffffffff61484416565b60098054600090815260126020818152604080842060039081019690965584548452601382528084208c855290950181528483204360029091015592548252909152205461291a906128e6908763ffffffff61484416565b60095460009081526013602090815260408083208a8452600301909152902060020154611dfb90439063ffffffff61484416565b6009546000908152601260205260409020600301549091508111156129a75760095460009081526012602052604090206003015461295e908263ffffffff61483416565b6009805460009081526012602052604080822060030193909355905481522060020154612991908263ffffffff61483416565b6009546000908152601260205260409020600201555b60095460009081526013602090815260408083203384526004019091529020546129d7908263ffffffff61483416565b6009805460009081526013602090815260408083203384526004018252808320949094559154815260129091522060030154612a19908263ffffffff61484416565b60098054600090815260126020818152604080842060039081019690965584548452601382528084208b8552909501815284832043600290910155925482529091522054612aa590612a71908663ffffffff61484416565b6009546000908152601360209081526040808320898452600301909152902060020154611dfb90439063ffffffff61484416565b600954600090815260126020526040902060030154909150811115612b3257600954600090815260126020526040902060030154612ae9908263ffffffff61483416565b6009805460009081526012602052604080822060030193909355905481522060020154612b1c908263ffffffff61483416565b6009546000908152601260205260409020600201555b6009546000908152601360209081526040808320338452600401909152902054612b62908263ffffffff61483416565b6009805460009081526013602090815260408083203384526004018252808320949094559154815260129091522060030154612ba4908263ffffffff61484416565b60098054600090815260126020818152604080842060039081019690965584548452601382528084208a8552909501815284832043600290910155925482529091522054612c3090612bfc908563ffffffff61484416565b6009546000908152601360209081526040808320888452600301909152902060020154611dfb90439063ffffffff61484416565b600954600090815260126020526040902060030154909150811115612cbd57600954600090815260126020526040902060030154612c74908263ffffffff61483416565b6009805460009081526012602052604080822060030193909355905481522060020154612ca7908263ffffffff61483416565b6009546000908152601260205260409020600201555b6009546000908152601360209081526040808320338452600401909152902054612ced908263ffffffff61483416565b6009805460009081526013602090815260408083203384526004018252808320949094559154815260129091522060030154612d2f908263ffffffff61484416565b600980546000908152601260209081526040808320600390810195909555925482526013815282822096825295909201909452929092204360029091015550505050505050505050565b600054600160a060020a03163314612d9057600080fd5b600954600090815260126020526040902060010155565b6009546000908152601360209081526040808320938352600393840190915290208054600182015460028301549290930154600160a060020a0390911693565b604080517e65318b000000000000000000000000000000000000000000000000000000008152306004820152905160009173b3775fb83f7d12a36e0475abdd1fca35c091efbe916265318b9160248082019260209290919082900301818787803b158015612e5457600080fd5b505af1158015612e68573d6000803e3d6000fd5b505050506040513d6020811015612e7e57600080fd5b5051905090565b6011805460ff1916600117905566038d7ea4c68000341015612ea657600080fd5b612eae612de7565b6016819055600010612ebf57600080fd5b612ec7614b58565b601654604051339180156108fc02916000818181858888f19350505050158015612ef5573d6000803e3d6000fd5b5060165460408051338152602081019290925280517f6cb996505271b3d1e209a838bce3da507741e7d6456f9b7d511098ff37b7f5289281900390910190a1565b601260205280600052604060002060009150905080600001549080600101549080600201549080600301549080600401549080600501549080600601549080600701549080600801549080600901549080600a01549080600b01549080600c01549080600d015490508e565b600054600160a060020a031681565b600b5481565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015610b4a5780601f10610b1f57610100808354040283529160200191610b4a565b60085481565b60008066038d7ea4c6800034101561302c57600080fd5b600980546000908152601260205260409020600a8101549101546130559163ffffffff61483416565b43111561306457613064614859565b600954600090815260136020908152604080832033845260020190915290205483111561309057600080fd5b600183101561309e57600080fd5b600954600090815260136020526040902054600160a060020a0316331415613150576009546000908152601360205260409020600101546130e5908463ffffffff61483416565b60098054600090815260136020908152604080832060010194909455915481528281203382526002019091522054613123908463ffffffff61484416565b600954600090815260136020908152604080832033845260020190915281209190915591508190506133e1565b600954600090815260136020526040902054600160a060020a031633146133e1576009546000908152601360205260409020600101548311156132f157600954600090815260136020908152604091829020548251600160a060020a039091168152339181019190915281517fa475e0e386c2b565f0cacab74df66b164ec20db6ff736b34ed1384b4cb585985929181900390910190a1600954600090815260136020908152604091829020600181015490548351338152928301829052600160a060020a03168284015260608201529051600080516020614c988339815191529181900360800190a1600980546000908152601360205260408082208054600160a060020a0319163317905591548152206001015461327790849063ffffffff61484416565b600980546000908152601360209081526040808320600101949094559154815282812033825260020190915220546132b5908463ffffffff61484416565b600980546000908152601360208181526040808420338552600201825280842095909555925482529091522060019081015490925090506133e1565b60095460009081526013602052604090206001015483116133e157600954600090815260136020526040902060010154613331908463ffffffff61484416565b6009805460009081526013602090815260408083206001019490945591548152828120338252600201909152205461336f908463ffffffff61484416565b6009805460009081526013602081815260408084203380865260029091018352818520969096559354835290815290829020548251938452908301869052600160a060020a0316828201526060820185905251600080516020614c988339815191529181900360800190a15060009050815b915091565b66038d7ea4c680003410156133fa57600080fd5b6009546000908152601360209081526040808320858452600301909152902054600160a060020a0316331461342e57600080fd5b6009546000908152601360209081526040808320858452600301909152902054600160a060020a0316151561346257600080fd5b600954600090815260136020908152604080832033845260020190915290205481111561348e57600080fd5b600181101561349c57600080fd5b60095460009081526013602090815260408083208584526003019091529020600101546134cf908263ffffffff61483416565b600980546000908152601360208181526040808420888552600301825280842060010195909555925482528252828120338252600201909152205461351a908263ffffffff61484416565b60095460009081526013602090815260408083203384526002019091529020555050565b6009546000908152601360209081526040808320600701546012909252909120600b01541161356c57600080fd5b60098054600101808255600c546000918252601260205260408083206002018290558354835280832060030191909155600e548354835281832060050155600f5483548352818320600701559154815220436006909101556135cc614aa7565b6009805460009081526012602081815260408084204390860155845484526013808352818520805433600160a060020a031990911617905585546000198082018752858552838720600c90810154928852848820019190915586548082018752838720600d90810154918852848820015586549081018652828620600490810154918752838720015560105486548652828620600a015560115486548652908352818520600601805460ff191661010090920460ff16151591909117905593548352522061753060019190910155565b6136a7600854614bdd565b6000600855565b600054600160a060020a031633146136c557600080fd5b6009546000908152601360205260409020600601805460ff1916911515919091179055565b3360009081526006602052604081205461370a908363ffffffff61484416565b3360009081526006602052604080822092909255600160a060020a0385168152205461373c908363ffffffff61483416565b600160a060020a038416600081815260066020908152604091829020939093558051858152905191923392600080516020614cb88339815191529281900390910190a350600192915050565b6000828152601560205260409020600201546137aa908263ffffffff61480f16565b3410156137b657600080fd5b600081116137c357600080fd5b6000828152601560205260409020600101548111156137e157600080fd5b600082815260156020526040902054600160a060020a031633141561380557600080fd5b3060009081526006602052604090205481111561382157600080fd5b600082815260156020526040902060010154613843908263ffffffff61484416565b600083815260156020908152604080832060010193909355338252600690522054613874908263ffffffff61483416565b3360009081526006602052604080822092909255308152205461389d908263ffffffff61484416565b3060008181526006602090815260409182902093909355805184815290513393600080516020614cb8833981519152928290030190a360008281526015602090815260409182902080546002909101548351600160a060020a0390921682529181019190915233818301526060810183905290517f86dd97753ac184a702ff1c26dbba9dfd2c7fdf8858aef4cf9bb7d66f232ef7ab9181900360800190a160008281526015602052604090208054600290910154600160a060020a03909116906108fc90613971908463ffffffff61480f16565b6040518115909202916000818181858888f19350505050158015613999573d6000803e3d6000fd5b505050565b600081116139ab57600080fd5b600082815260156020526040902054600160a060020a031633146139ce57600080fd5b306000908152600660205260409020548111156139ea57600080fd5b33600090815260066020526040902054613a0a908263ffffffff61483416565b33600090815260066020526040808220929092553081522054613a33908263ffffffff61484416565b3060008181526006602090815260409182902093909355805184815290513393600080516020614cb8833981519152928290030190a3600082815260156020526040902060010154613a8b908263ffffffff61484416565b6000928352601560205260409092206001019190915550565b66038d7ea4c68000341015613ab857600080fd5b600954600090815260136020526040902054600160a060020a03163314613ade57600080fd5b6009546000908152601360209081526040808320338452600201909152902054811115613b0a57600080fd5b6001811015613b1857600080fd5b600954600090815260136020526040902060010154613b3d908263ffffffff61483416565b60098054600090815260136020908152604080832060010194909455915481528281203382526002019091522054613b7b908263ffffffff61484416565b600954600090815260136020908152604080832033845260020190915290205550565b600f5481565b6009546000908152601360209081526040808320600160a060020a03949094168352600584018252808320546014835281842054600286018452828520546004909601909352922054919390929190565b60008066038d7ea4c68000341015613c0c57600080fd5b600980546000908152601260205260409020600a810154910154613c359163ffffffff61483416565b431115613c4457613c44614859565b6009546000908152601360209081526040808320868452600301909152902054600160a060020a03163314613c7857600080fd5b60095460009081526013602090815260408083208684526003019091529020600201544311613ca657600080fd5b600954600090815260126020526040902054613ccc90612bfc908563ffffffff61484416565b600954600090815260126020526040902060030154909150811115613d5957600954600090815260126020526040902060030154613d10908263ffffffff61483416565b6009805460009081526012602052604080822060030193909355905481522060020154613d43908263ffffffff61483416565b6009546000908152601260205260409020600201555b6009546000908152601360209081526040808320338452600401909152902054613d89908263ffffffff61483416565b6009805460009081526013602090815260408083203384526004018252808320949094559154815260129091522060030154613dcb908263ffffffff61484416565b60098054600090815260126020908152604080832060039081019590955592548252601381528282208783529093019092529020436002909101559050919050565b336000818152600760209081526040808320600160a060020a038816808552908352818420879055815187815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a36040517f8f4ffcb10000000000000000000000000000000000000000000000000000000081523360048201818152602483018690523060448401819052608060648501908152865160848601528651600160a060020a038a1695638f4ffcb195948a94938a939192909160a490910190602085019080838360005b83811015613efd578181015183820152602001613ee5565b50505050905090810190601f168015613f2a5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015613f4c57600080fd5b505af1158015613f60573d6000803e3d6000fd5b506001979650505050505050565b6009546000908152601360209081526040808320600160a060020a0385168452600401909152902054919050565b6013602052600090815260409020805460018201546006830154600790930154600160a060020a0390921692909160ff9091169084565b600154600160a060020a031681565b6009546000908152601260205260409020546140119066038d7ea4c6800090611dfb908463ffffffff61484416565b34101561401d57600080fd5b60095460009081526013602090815260408083209383526003938401909152902043910155565b601560205260009081526040902080546001820154600290920154600160a060020a03909116919083565b60008054600160a060020a0316331461408757600080fd5b60008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810186905290519186169263a9059cbb926044808401936020939083900390910190829087803b1580156140f757600080fd5b505af115801561410b573d6000803e3d6000fd5b505050506040513d602081101561412157600080fd5b50519392505050565b600160a060020a03918216600090815260076020908152604080832093909416825291909152205490565b6000808066038d7ea4c6800034101561416d57600080fd5b600980546000908152601260205260409020600a8101549101540143111561419757614197614859565b600954600090815260126020908152604080832060010154601383528184208985526003908101909352922001546141d49163ffffffff61483416565b90504381106141e257600080fd5b6009546000908152601360209081526040808320888452600301909152902054600160a060020a0316151561421657600080fd5b600954600090815260136020908152604080832033845260020190915290205484111561424257600080fd5b600184101561425057600080fd5b6009546000908152601360209081526040808320888452600301909152902054600160a060020a031633141561432b5760095460009081526013602090815260408083208884526003019091529020600101546142b3908563ffffffff61483416565b6009805460009081526013602081815260408084208b855260030182528084206001019590955592548252825282812033825260020190915220546142fe908563ffffffff61484416565b60095460009081526013602090815260408083203384526002019091528120919091559250829150614675565b6009546000908152601360209081526040808320888452600301909152902054600160a060020a0316331461467557600954600090815260136020908152604080832088845260030190915290206001015484111561454b576009546000908152601360209081526040808320888452600301825291829020600181015490548351338152928301829052600160a060020a03168284015260608201529051600080516020614c988339815191529181900360800190a16009546000908152601360209081526040808320888452600301825291829020548251600160a060020a039091168152339181019190915280820187905290517f440aa0a8b32b3d78a1599a32e5e1d787f8ed2e218875cbf64efc169fe3c544649181900360600190a16009805460009081526013602081815260408084208a8552600390810183528185208054600160a060020a031916331790559454845291815281832089845290930190925220600101546144a790859063ffffffff61484416565b6009805460009081526013602081815260408084208b855260030182528084206001019590955592548252825282812033825260020190915220546144f2908563ffffffff61484416565b600954600090815260136020908152604080832033845260020190915290205561451b85613bf5565b50600954600090815260136020908152604080832088845260030190915290206001908101549093509150614675565b60095460009081526013602090815260408083208884526003019091529020600101548411614675576009546000908152601360209081526040808320888452600301825291829020548251338152918201879052600160a060020a031681830152606081018690529051600080516020614c988339815191529181900360800190a16009546000908152601360209081526040808320888452600301909152902060010154614601908563ffffffff61484416565b6009805460009081526013602081815260408084208b8552600301825280842060010195909555925482528252828120338252600201909152205461464c908563ffffffff61484416565b600954600090815260136020908152604080832033845260020190915281209190915592508391505b509250929050565b600954600090815260136020526040902054600160a060020a03163314612ebf57600080fd5b600081116146b057600080fd5b600082815260156020526040902054600160a060020a031633146146d357600080fd5b336000908152600660205260409020548111156146ef57600080fd5b3360009081526006602052604090205461470f908263ffffffff61484416565b33600090815260066020526040808220929092553081522054614738908263ffffffff61483416565b30600081815260066020908152604091829020939093558051848152905191923392600080516020614cb88339815191529281900390910190a3600082815260156020526040902060010154613a8b908263ffffffff61483416565b6009546000908152601360209081526040808320600160a060020a0385168452600501909152902054919050565b600054600160a060020a031633146147d957600080fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b60105481565b601154610100900460ff1681565b818102821580614829575081838281151561482657fe5b04145b1515610bb957600080fd5b81810182811015610bb957600080fd5b60008282111561485357600080fd5b50900390565b600980546000908152601260205260409020600a8101549101546148829163ffffffff61483416565b431161488d57600080fd5b600980546000908152601260205260409020600a8101549101546148b69163ffffffff61483416565b6009805460009081526012602052604090200155600854614905906148f6906064906148ea9030319063ffffffff61484416565b9063ffffffff614c7616565b6008549063ffffffff61483416565b6008819055600054600160a060020a0316906108fc90614934906064906148ea9030319063ffffffff61484416565b6040518115909202916000818181858888f1935050505015801561495c573d6000803e3d6000fd5b506149a561498460026148ea60085430600160a060020a03163161484490919063ffffffff16565b6009546000908152601260205260409020600b01549063ffffffff61483416565b600980546000908152601260209081526040808320600b01949094559154815260139091522054600854600160a060020a03909116906108fc906149f8906002906148ea9030319063ffffffff61484416565b6040518115909202916000818181858888f19350505050158015614a20573d6000803e3d6000fd5b50565b600954600090815260126020526040902060078101548154600690920154614a7f92614a5e9291611dfb91908290439063ffffffff61484416565b6009546000908152601260205260409020600501549063ffffffff61483416565b6009805460009081526012602052604080822060050193909355905481522043600690910155565b600954600090815260126020526040902060028101546005909101541115614ae657600954600090815260126020526040902060028101546005909101555b60095460009081526012602052604090206005810154600290910154614b119163ffffffff614c7616565b600980546000908152601260205260408082206008908101949094559154815220015460011115614b5657600954600090815260126020526040902060016008909101555b565b73b3775fb83f7d12a36e0475abdd1fca35c091efbe600160a060020a0316633ccfd60b6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b158015614bc357600080fd5b505af1158015614bd7573d6000803e3d6000fd5b50505050565b604080517ff088d547000000000000000000000000000000000000000000000000000000008152306004820152905173b3775fb83f7d12a36e0475abdd1fca35c091efbe9163f088d54791849160248082019260209290919082900301818588803b158015614c4b57600080fd5b505af1158015614c5f573d6000803e3d6000fd5b50505050506040513d602081101561399957600080fd5b6000808211614c8457600080fd5b8183811515614c8f57fe5b04939250505056009a6711bd12448549c8fdb9001f9e0681e5913c10562075129be867d61a0651d2ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820976828163af9e0335a750972a0474122db1986ce6bbf7a2f46beb3c38aeefa4b0029

Swarm Source

bzzr://976828163af9e0335a750972a0474122db1986ce6bbf7a2f46beb3c38aeefa4b

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.