ETH Price: $3,013.20 (+1.24%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Destroy And Send55347662018-04-30 23:30:532823 days ago1525131053IN
0xe9894593...8e9ba6AcC
0 ETH0.000042973
Withdraw Payment...54973652018-04-24 12:19:512829 days ago1524572391IN
0xe9894593...8e9ba6AcC
0 ETH0.000075763
Pay Jackpot54959292018-04-24 6:08:142829 days ago1524550094IN
0xe9894593...8e9ba6AcC
0 ETH0.000037891
Withdraw Payment...54955842018-04-24 4:40:242829 days ago1524544824IN
0xe9894593...8e9ba6AcC
0 ETH0.000025251
Purchase Kingdom54950052018-04-24 2:11:382830 days ago1524535898IN
0xe9894593...8e9ba6AcC
0.09 ETH0.000032351
Purchase Kingdom54945662018-04-24 0:18:242830 days ago1524529104IN
0xe9894593...8e9ba6AcC
0.09 ETH0.000032351
Purchase Kingdom54945602018-04-24 0:16:082830 days ago1524528968IN
0xe9894593...8e9ba6AcC
0.09 ETH0.000032351
Pay Jackpot54943962018-04-23 23:39:502830 days ago1524526790IN
0xe9894593...8e9ba6AcC
0 ETH0.000037831
Pay Jackpot54942752018-04-23 23:13:572830 days ago1524525237IN
0xe9894593...8e9ba6AcC
0 ETH0.000037761
Pay Jackpot54942402018-04-23 23:04:302830 days ago1524524670IN
0xe9894593...8e9ba6AcC
0 ETH0.000037691
Pay Jackpot54942342018-04-23 23:02:362830 days ago1524524556IN
0xe9894593...8e9ba6AcC
0 ETH0.000051661
Purchase Kingdom54942152018-04-23 22:56:412830 days ago1524524201IN
0xe9894593...8e9ba6AcC
0.09 ETH0.000032351
Purchase Kingdom54941032018-04-23 22:30:292830 days ago1524522629IN
0xe9894593...8e9ba6AcC
0.09 ETH0.000032351
Withdraw Payment...54940222018-04-23 22:08:282830 days ago1524521308IN
0xe9894593...8e9ba6AcC
0 ETH0.000025251
Purchase Kingdom54940032018-04-23 22:02:572830 days ago1524520977IN
0xe9894593...8e9ba6AcC
0.09 ETH0.000032351
Purchase Kingdom54940012018-04-23 22:02:372830 days ago1524520957IN
0xe9894593...8e9ba6AcC
0.09 ETH0.0003210310
Purchase Kingdom54939932018-04-23 22:00:422830 days ago1524520842IN
0xe9894593...8e9ba6AcC
0.09 ETH0.000162115
Purchase Kingdom54939892018-04-23 21:59:272830 days ago1524520767IN
0xe9894593...8e9ba6AcC
0.09 ETH0.002137988
Purchase Kingdom54939642018-04-23 21:53:212830 days ago1524520401IN
0xe9894593...8e9ba6AcC
0.09 ETH0.000271951
Purchase Kingdom54939402018-04-23 21:47:172830 days ago1524520037IN
0xe9894593...8e9ba6AcC
0.09 ETH0.000281391
Purchase Kingdom54938122018-04-23 21:17:552830 days ago1524518275IN
0xe9894593...8e9ba6AcC
0.09 ETH0.000271691
Purchase Kingdom54938042018-04-23 21:16:012830 days ago1524518161IN
0xe9894593...8e9ba6AcC
0.09 ETH0.000271691
Withdraw Payment...54937192018-04-23 20:55:432830 days ago1524516943IN
0xe9894593...8e9ba6AcC
0 ETH0.000025251
Purchase Kingdom54937072018-04-23 20:52:122830 days ago1524516732IN
0xe9894593...8e9ba6AcC
0.09 ETH0.000273071
Purchase Kingdom54936812018-04-23 20:46:532830 days ago1524516413IN
0xe9894593...8e9ba6AcC
0.09 ETH0.000288071
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer55347662018-04-30 23:30:532823 days ago1525131053
0xe9894593...8e9ba6AcC
0.346 ETH
Transfer54973652018-04-24 12:19:512829 days ago1524572391
0xe9894593...8e9ba6AcC
2.619 ETH
Transfer54955842018-04-24 4:40:242829 days ago1524544824
0xe9894593...8e9ba6AcC
0.255 ETH
Transfer54940222018-04-23 22:08:282830 days ago1524521308
0xe9894593...8e9ba6AcC
0.12 ETH
Transfer54937192018-04-23 20:55:432830 days ago1524516943
0xe9894593...8e9ba6AcC
0.12 ETH
Transfer54936252018-04-23 20:29:382830 days ago1524515378
0xe9894593...8e9ba6AcC
0.02 ETH
Transfer54928702018-04-23 17:20:252830 days ago1524504025
0xe9894593...8e9ba6AcC
0.08 ETH
Transfer54870542018-04-22 17:20:312831 days ago1524417631
0xe9894593...8e9ba6AcC
0.02 ETH
Transfer54820882018-04-21 21:02:552832 days ago1524344575
0xe9894593...8e9ba6AcC
0.08 ETH
Transfer54820332018-04-21 20:49:042832 days ago1524343744
0xe9894593...8e9ba6AcC
0.04 ETH
Transfer54814412018-04-21 18:27:562832 days ago1524335276
0xe9894593...8e9ba6AcC
0.02 ETH
Transfer54794632018-04-21 10:27:312832 days ago1524306451
0xe9894593...8e9ba6AcC
0.04 ETH
Transfer54794482018-04-21 10:24:152832 days ago1524306255
0xe9894593...8e9ba6AcC
0.06 ETH
Transfer54784932018-04-21 6:24:392832 days ago1524291879
0xe9894593...8e9ba6AcC
0.04 ETH
Transfer54782102018-04-21 5:16:382832 days ago1524287798
0xe9894593...8e9ba6AcC
0.12 ETH
Transfer54781262018-04-21 4:54:222832 days ago1524286462
0xe9894593...8e9ba6AcC
0.1 ETH
Transfer54779622018-04-21 4:11:592833 days ago1524283919
0xe9894593...8e9ba6AcC
0.04 ETH
Transfer54779622018-04-21 4:11:592833 days ago1524283919
0xe9894593...8e9ba6AcC
0.06 ETH
Transfer54777222018-04-21 3:13:402833 days ago1524280420
0xe9894593...8e9ba6AcC
0.08 ETH
Transfer54777172018-04-21 3:12:102833 days ago1524280330
0xe9894593...8e9ba6AcC
0.04 ETH
Transfer54777022018-04-21 3:08:312833 days ago1524280111
0xe9894593...8e9ba6AcC
0.1 ETH
Transfer54769292018-04-21 0:03:202833 days ago1524269000
0xe9894593...8e9ba6AcC
0.08 ETH
Transfer54768722018-04-20 23:48:432833 days ago1524268123
0xe9894593...8e9ba6AcC
0.04 ETH
Transfer54767772018-04-20 23:22:412833 days ago1524266561
0xe9894593...8e9ba6AcC
0.04 ETH
Transfer54766542018-04-20 22:52:032833 days ago1524264723
0xe9894593...8e9ba6AcC
0.1 ETH
View All Internal Transactions
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
Contract Self Destruct called at Txn Hash 0x9f3b2528edc36d536d866ed1ba0d0f9b2bbcc5858a6518143d1cc6ec8cdfeae8


Contract Source Code Verified (Exact Match)

Contract Name:
Map

Compiler Version
v0.4.18+commit.9cf6e910

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-04-16
*/

pragma solidity ^0.4.18;

library SafeMath {
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    if (a == 0) { return 0; }
    uint256 c = a * b;
    assert(c / a == b);
    return c;
  }
  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a / b;
    return c;
  }
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }
  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
}

contract PullPayment {
  using SafeMath for uint256;
  mapping(address => uint256) public payments;
  uint256 public totalPayments;
  function withdrawPayments() public {
    address payee = msg.sender;
    uint256 payment = payments[payee];
    require(payment != 0);
    require(this.balance >= payment);
    totalPayments = totalPayments.sub(payment);
    payments[payee] = 0;
    assert(payee.send(payment));
  }
  function asyncSend(address dest, uint256 amount) internal {
    payments[dest] = payments[dest].add(amount);
    totalPayments = totalPayments.add(amount);
  }
}

contract Ownable {
  address public owner;
  event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
  function Ownable() public {
    owner = msg.sender;
  }
  modifier onlyOwner() {
    require(msg.sender == owner);
    _;
  }
  function transferOwnership(address newOwner) public onlyOwner {
    require(newOwner != address(0));
    OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }
}

contract Destructible is Ownable {
  function Destructible() public payable { }
  function destroy() onlyOwner public {
    selfdestruct(owner);
  }
  function destroyAndSend(address _recipient) onlyOwner public {
    selfdestruct(_recipient);
  }
}

contract ReentrancyGuard {
  bool private reentrancy_lock = false;
  modifier nonReentrant() {
    require(!reentrancy_lock);
    reentrancy_lock = true;
    _;
    reentrancy_lock = false;
  }
}

contract Map is PullPayment, Destructible, ReentrancyGuard {
    using SafeMath for uint256;
    
    // STRUCTS

    struct Transaction {
        string kingdomKey;
        address compensationAddress;
        uint buyingPrice;
        uint compensation;
        uint jackpotContribution;
    }

    struct Kingdom {
        string title;
        string key;
        uint kingdomTier;
        uint kingdomType;
        uint minimumPrice; 
        uint lastTransaction;
        uint transactionCount;
        uint returnPrice;
        address owner;
        bool locked;
    }

    struct Jackpot {
        address winner;
        uint balance;
    }

    struct Round {
        Jackpot globalJackpot;
        Jackpot jackpot1;
        Jackpot jackpot2;
        Jackpot jackpot3;
        Jackpot jackpot4;
        Jackpot jackpot5;

        mapping(string => bool) kingdomsCreated;
        mapping(address => uint) nbKingdoms;
        mapping(address => uint) nbTransactions;
        mapping(address => uint) nbKingdomsType1;
        mapping(address => uint) nbKingdomsType2;
        mapping(address => uint) nbKingdomsType3;
        mapping(address => uint) nbKingdomsType4;
        mapping(address => uint) nbKingdomsType5;

        uint startTime;
        uint endTime;

        mapping(string => uint) kingdomsKeys;
    }

    Kingdom[] public kingdoms;
    Transaction[] public kingdomTransactions;
    uint public currentRound;
    address public bookerAddress;
    
    mapping(uint => Round) rounds;

    uint constant public ACTION_TAX = 0.02 ether;
    uint constant public STARTING_CLAIM_PRICE_WEI = 0.01 ether;
    uint constant MAXIMUM_CLAIM_PRICE_WEI = 800 ether;
    uint constant KINGDOM_MULTIPLIER = 20;
    uint constant TEAM_COMMISSION_RATIO = 10;
    uint constant JACKPOT_COMMISSION_RATIO = 10;

    // MODIFIERS

    modifier onlyForRemainingKingdoms() {
        uint remainingKingdoms = getRemainingKingdoms();
        require(remainingKingdoms > kingdoms.length);
        _;
    }

    modifier checkKingdomExistence(string key) {
        require(rounds[currentRound].kingdomsCreated[key] == true);
        _;
    }

    modifier checkIsNotLocked(string kingdomKey) {
        require(kingdoms[rounds[currentRound].kingdomsKeys[kingdomKey]].locked != true);
        _;
    }

    modifier checkIsClosed() {
        require(now >= rounds[currentRound].endTime);
        _;
    }

    modifier onlyKingdomOwner(string _key, address _sender) {
        require (kingdoms[rounds[currentRound].kingdomsKeys[_key]].owner == _sender);
        _;
    }
    
    // EVENTS

    event LandCreatedEvent(string kingdomKey, address monarchAddress);
    event LandPurchasedEvent(string kingdomKey, address monarchAddress);

    //
    //  CONTRACT CONSTRUCTOR
    //
    function Map(address _bookerAddress) {
        bookerAddress = _bookerAddress;
        currentRound = 1;
        rounds[currentRound] = Round(Jackpot(address(0), 0), Jackpot(address(0), 0), Jackpot(address(0), 0), Jackpot(address(0), 0), Jackpot(address(0), 0), Jackpot(address(0), 0), 0, 0);
        rounds[currentRound].jackpot1 = Jackpot(address(0), 0);
        rounds[currentRound].jackpot2 = Jackpot(address(0), 0);
        rounds[currentRound].jackpot3 = Jackpot(address(0), 0);
        rounds[currentRound].jackpot4 = Jackpot(address(0), 0);
        rounds[currentRound].jackpot5 = Jackpot(address(0), 0);
        rounds[currentRound].startTime = 1523916000;
        rounds[currentRound].endTime = rounds[currentRound].startTime + 7 days;
        rounds[currentRound].globalJackpot = Jackpot(address(0), 0);
     }

    function () { }

    function getRemainingKingdoms() public view returns (uint nb) {
        for (uint i = 1; i < 8; i++) {
            if (now < rounds[currentRound].startTime + (i * 24 hours)) {
                uint result = (25 * i);
                if (result > 125) { 
                    return 125; 
                } else {
                    return result;
                }
            }
        }
    }

    function setTypedJackpotWinner(address _user, uint _type) internal {
        if (_type == 1) {
            if (rounds[currentRound].jackpot1.winner == address(0)) {
                rounds[currentRound].jackpot1.winner = _user;
            } else if (rounds[currentRound].nbKingdomsType1[_user] >= rounds[currentRound].nbKingdomsType1[rounds[currentRound].jackpot1.winner]) {
                rounds[currentRound].jackpot1.winner = _user;
            }
        } else if (_type == 2) {
            if (rounds[currentRound].jackpot2.winner == address(0)) {
                rounds[currentRound].jackpot2.winner = _user;
            } else if (rounds[currentRound].nbKingdomsType2[_user] >= rounds[currentRound].nbKingdomsType2[rounds[currentRound].jackpot2.winner]) {
                rounds[currentRound].jackpot2.winner = _user;
            }
        } else if (_type == 3) {
            if (rounds[currentRound].jackpot3.winner == address(0)) {
                rounds[currentRound].jackpot3.winner = _user;
            } else if (rounds[currentRound].nbKingdomsType3[_user] >= rounds[currentRound].nbKingdomsType3[rounds[currentRound].jackpot3.winner]) {
                rounds[currentRound].jackpot3.winner = _user;
            }
        } else if (_type == 4) {
            if (rounds[currentRound].jackpot4.winner == address(0)) {
                rounds[currentRound].jackpot4.winner = _user;
            } else if (rounds[currentRound].nbKingdomsType4[_user] >= rounds[currentRound].nbKingdomsType4[rounds[currentRound].jackpot4.winner]) {
                rounds[currentRound].jackpot4.winner = _user;
            }
        } else if (_type == 5) {
            if (rounds[currentRound].jackpot5.winner == address(0)) {
                rounds[currentRound].jackpot5.winner = _user;
            } else if (rounds[currentRound].nbKingdomsType5[_user] >= rounds[currentRound].nbKingdomsType5[rounds[currentRound].jackpot5.winner]) {
                rounds[currentRound].jackpot5.winner = _user;
            }
        }
    }

    //
    //  This is the main function. It is called to buy a kingdom
    //
    function purchaseKingdom(string _key, string _title, bool _locked) public 
    payable 
    nonReentrant()
    checkKingdomExistence(_key)
    checkIsNotLocked(_key)
    {
        require(now < rounds[currentRound].endTime);
        Round storage round = rounds[currentRound];
        uint kingdomId = round.kingdomsKeys[_key];
        Kingdom storage kingdom = kingdoms[kingdomId];
        require((kingdom.kingdomTier + 1) < 6);
        uint requiredPrice = kingdom.minimumPrice;
        if (_locked == true) {
            requiredPrice = requiredPrice.add(ACTION_TAX);
        }

        require (msg.value >= requiredPrice);
        uint jackpotCommission = (msg.value).sub(kingdom.returnPrice);

        if (kingdom.returnPrice > 0) {
            round.nbKingdoms[kingdom.owner]--;
            if (kingdom.kingdomType == 1) {
                round.nbKingdomsType1[kingdom.owner]--;
            } else if (kingdom.kingdomType == 2) {
                round.nbKingdomsType2[kingdom.owner]--;
            } else if (kingdom.kingdomType == 3) {
                round.nbKingdomsType3[kingdom.owner]--;
            } else if (kingdom.kingdomType == 4) {
                round.nbKingdomsType4[kingdom.owner]--;
            } else if (kingdom.kingdomType == 5) {
                round.nbKingdomsType5[kingdom.owner]--;
            }
            
            compensateLatestMonarch(kingdom.lastTransaction, kingdom.returnPrice);
        }
        
        uint jackpotSplitted = jackpotCommission.mul(50).div(100);
        round.globalJackpot.balance = round.globalJackpot.balance.add(jackpotSplitted);

        kingdom.kingdomTier++;
        kingdom.title = _title;

        if (kingdom.kingdomTier == 5) {
            kingdom.returnPrice = 0;
        } else {
            kingdom.returnPrice = kingdom.minimumPrice.mul(2);
            kingdom.minimumPrice = kingdom.minimumPrice.add(kingdom.minimumPrice.mul(2));
        }

        kingdom.owner = msg.sender;
        kingdom.locked = _locked;

        uint transactionId = kingdomTransactions.push(Transaction("", msg.sender, msg.value, 0, jackpotSplitted)) - 1;
        kingdomTransactions[transactionId].kingdomKey = _key;
        kingdom.transactionCount++;
        kingdom.lastTransaction = transactionId;
        
        setNewJackpot(kingdom.kingdomType, jackpotSplitted, msg.sender);
        LandPurchasedEvent(_key, msg.sender);
    }

    function setNewJackpot(uint kingdomType, uint jackpotSplitted, address sender) internal {
        rounds[currentRound].nbTransactions[sender]++;
        rounds[currentRound].nbKingdoms[sender]++;
        if (kingdomType == 1) {
            rounds[currentRound].nbKingdomsType1[sender]++;
            rounds[currentRound].jackpot1.balance = rounds[currentRound].jackpot1.balance.add(jackpotSplitted);
        } else if (kingdomType == 2) {
            rounds[currentRound].nbKingdomsType2[sender]++;
            rounds[currentRound].jackpot2.balance = rounds[currentRound].jackpot2.balance.add(jackpotSplitted);
        } else if (kingdomType == 3) {
            rounds[currentRound].nbKingdomsType3[sender]++;
            rounds[currentRound].jackpot3.balance = rounds[currentRound].jackpot3.balance.add(jackpotSplitted);
        } else if (kingdomType == 4) {
            rounds[currentRound].nbKingdomsType4[sender]++;
            rounds[currentRound].jackpot4.balance = rounds[currentRound].jackpot4.balance.add(jackpotSplitted);
        } else if (kingdomType == 5) {
            rounds[currentRound].nbKingdomsType5[sender]++;
            rounds[currentRound].jackpot5.balance = rounds[currentRound].jackpot5.balance.add(jackpotSplitted);
        }
        setNewWinner(msg.sender, kingdomType);
    }

    function setLock(string _key, bool _locked) public payable checkKingdomExistence(_key) onlyKingdomOwner(_key, msg.sender) {
        if (_locked == true) { require(msg.value >= ACTION_TAX); }
        kingdoms[rounds[currentRound].kingdomsKeys[_key]].locked = _locked;
        if (msg.value > 0) { asyncSend(bookerAddress, msg.value); }
    }

    function giveKingdom(address owner, string _key, string _title, uint _type) onlyOwner() public {
        require(_type > 0);
        require(_type < 6);
        require(rounds[currentRound].kingdomsCreated[_key] == false);
        uint kingdomId = kingdoms.push(Kingdom("", "", 1, _type, 0, 0, 1, 0.02 ether, address(0), false)) - 1;
        kingdoms[kingdomId].title = _title;
        kingdoms[kingdomId].owner = owner;
        kingdoms[kingdomId].key = _key;
        kingdoms[kingdomId].minimumPrice = 0.03 ether;
        kingdoms[kingdomId].locked = false;
        rounds[currentRound].kingdomsKeys[_key] = kingdomId;
        rounds[currentRound].kingdomsCreated[_key] = true;
        uint transactionId = kingdomTransactions.push(Transaction("", msg.sender, 0.01 ether, 0, 0)) - 1;
        kingdomTransactions[transactionId].kingdomKey = _key;
        kingdoms[kingdomId].lastTransaction = transactionId;
    }

    //
    //  User can call this function to generate new kingdoms (within the limits of available land)
    //
    function createKingdom(address owner, string _key, string _title, uint _type, bool _locked) onlyForRemainingKingdoms() public payable {
        require(now < rounds[currentRound].endTime);
        require(_type > 0);
        require(_type < 6);
        uint basePrice = STARTING_CLAIM_PRICE_WEI;
        uint requiredPrice = basePrice;
        if (_locked == true) { requiredPrice = requiredPrice.add(ACTION_TAX); }
        require(msg.value >= requiredPrice);
        require(rounds[currentRound].kingdomsCreated[_key] == false);
        uint refundPrice = STARTING_CLAIM_PRICE_WEI.mul(2);
        uint nextMinimumPrice = STARTING_CLAIM_PRICE_WEI.add(refundPrice);
        uint kingdomId = kingdoms.push(Kingdom("", "", 1, _type, 0, 0, 1, refundPrice, address(0), false)) - 1;
        
        kingdoms[kingdomId].title = _title;
        kingdoms[kingdomId].owner = owner;
        kingdoms[kingdomId].key = _key;
        kingdoms[kingdomId].minimumPrice = nextMinimumPrice;
        kingdoms[kingdomId].locked = _locked;

        rounds[currentRound].kingdomsKeys[_key] = kingdomId;
        rounds[currentRound].kingdomsCreated[_key] = true;
        
        asyncSend(bookerAddress, ACTION_TAX);

        uint jackpotSplitted = basePrice.mul(50).div(100);
        rounds[currentRound].globalJackpot.balance = rounds[currentRound].globalJackpot.balance.add(jackpotSplitted);

        uint transactionId = kingdomTransactions.push(Transaction("", msg.sender, msg.value, 0, jackpotSplitted)) - 1;
        kingdomTransactions[transactionId].kingdomKey = _key;
        kingdoms[kingdomId].lastTransaction = transactionId;
       
        setNewJackpot(_type, jackpotSplitted, msg.sender);
        LandCreatedEvent(_key, msg.sender);
    }

    //
    //  Send transaction to compensate the previous owner
    //
    function compensateLatestMonarch(uint lastTransaction, uint compensationWei) internal {
        address compensationAddress = kingdomTransactions[lastTransaction].compensationAddress;
        kingdomTransactions[lastTransaction].compensation = compensationWei;
        asyncSend(compensationAddress, compensationWei);
    }

    //
    //  This function may be useful to force withdraw if user never come back to get his money
    //
    function forceWithdrawPayments(address payee) public onlyOwner {
        uint256 payment = payments[payee];
        require(payment != 0);
        require(this.balance >= payment);
        totalPayments = totalPayments.sub(payment);
        payments[payee] = 0;
        assert(payee.send(payment));
    }

    function getStartTime() public view returns (uint startTime) {
        return rounds[currentRound].startTime;
    }

    function getEndTime() public view returns (uint endTime) {
        return rounds[currentRound].endTime;
    }
    
    function payJackpot(uint _type) public checkIsClosed() {
        Round storage finishedRound = rounds[currentRound];
        if (_type == 1 && finishedRound.jackpot1.winner != address(0) && finishedRound.jackpot1.balance > 0) {
            require(this.balance >= finishedRound.jackpot1.balance);
            uint jackpot1TeamComission = (finishedRound.jackpot1.balance.mul(TEAM_COMMISSION_RATIO)).div(100);
            asyncSend(bookerAddress, jackpot1TeamComission);
            asyncSend(finishedRound.jackpot1.winner, finishedRound.jackpot1.balance.sub(jackpot1TeamComission));
            finishedRound.jackpot1.balance = 0;
        } else if (_type == 2 && finishedRound.jackpot2.winner != address(0) && finishedRound.jackpot2.balance > 0) {
            require(this.balance >= finishedRound.jackpot2.balance);
            uint jackpot2TeamComission = (finishedRound.jackpot2.balance.mul(TEAM_COMMISSION_RATIO)).div(100);
            asyncSend(bookerAddress, jackpot2TeamComission);
            asyncSend(finishedRound.jackpot2.winner, finishedRound.jackpot2.balance.sub(jackpot2TeamComission));
            finishedRound.jackpot2.balance = 0;
        } else if (_type == 3 && finishedRound.jackpot3.winner != address(0) && finishedRound.jackpot3.balance > 0) {
            require(this.balance >= finishedRound.jackpot3.balance);
            uint jackpot3TeamComission = (finishedRound.jackpot3.balance.mul(TEAM_COMMISSION_RATIO)).div(100);
            asyncSend(bookerAddress, jackpot3TeamComission);
            asyncSend(finishedRound.jackpot3.winner, finishedRound.jackpot3.balance.sub(jackpot3TeamComission));
            finishedRound.jackpot3.balance = 0;
        } else if (_type == 4 && finishedRound.jackpot4.winner != address(0) && finishedRound.jackpot4.balance > 0) {
            require(this.balance >= finishedRound.jackpot4.balance);
            uint jackpot4TeamComission = (finishedRound.jackpot4.balance.mul(TEAM_COMMISSION_RATIO)).div(100);
            asyncSend(bookerAddress, jackpot4TeamComission);
            asyncSend(finishedRound.jackpot4.winner, finishedRound.jackpot4.balance.sub(jackpot4TeamComission));
            finishedRound.jackpot4.balance = 0;
        } else if (_type == 5 && finishedRound.jackpot5.winner != address(0) && finishedRound.jackpot5.balance > 0) {
            require(this.balance >= finishedRound.jackpot5.balance);
            uint jackpot5TeamComission = (finishedRound.jackpot5.balance.mul(TEAM_COMMISSION_RATIO)).div(100);
            asyncSend(bookerAddress, jackpot5TeamComission);
            asyncSend(finishedRound.jackpot5.winner, finishedRound.jackpot5.balance.sub(jackpot5TeamComission));
            finishedRound.jackpot5.balance = 0;
        }

        if (finishedRound.globalJackpot.winner != address(0) && finishedRound.globalJackpot.balance > 0) {
            require(this.balance >= finishedRound.globalJackpot.balance);
            uint globalTeamComission = (finishedRound.globalJackpot.balance.mul(TEAM_COMMISSION_RATIO)).div(100);
            asyncSend(bookerAddress, globalTeamComission);
            asyncSend(finishedRound.globalJackpot.winner, finishedRound.globalJackpot.balance.sub(globalTeamComission));
            finishedRound.globalJackpot.balance = 0;
        }
    }

    //
    //  After time expiration, owner can call this function to activate the next round of the game
    //
    function activateNextRound(uint _startTime) public checkIsClosed() {
        Round storage finishedRound = rounds[currentRound];
        require(finishedRound.globalJackpot.balance == 0);
        require(finishedRound.jackpot5.balance == 0);
        require(finishedRound.jackpot4.balance == 0);
        require(finishedRound.jackpot3.balance == 0);
        require(finishedRound.jackpot2.balance == 0);
        require(finishedRound.jackpot1.balance == 0);
        currentRound++;
        rounds[currentRound] = Round(Jackpot(address(0), 0), Jackpot(address(0), 0), Jackpot(address(0), 0), Jackpot(address(0), 0), Jackpot(address(0), 0), Jackpot(address(0), 0), 0, 0);
        rounds[currentRound].startTime = _startTime;
        rounds[currentRound].endTime = _startTime + 7 days;
        delete kingdoms;
        delete kingdomTransactions;
    }

    // GETTER AND SETTER FUNCTIONS

    function setNewWinner(address _sender, uint _type) internal {
        if (rounds[currentRound].globalJackpot.winner == address(0)) {
            rounds[currentRound].globalJackpot.winner = _sender;
        } else {
            if (rounds[currentRound].nbKingdoms[_sender] == rounds[currentRound].nbKingdoms[rounds[currentRound].globalJackpot.winner]) {
                if (rounds[currentRound].nbTransactions[_sender] > rounds[currentRound].nbTransactions[rounds[currentRound].globalJackpot.winner]) {
                    rounds[currentRound].globalJackpot.winner = _sender;
                }
            } else if (rounds[currentRound].nbKingdoms[_sender] > rounds[currentRound].nbKingdoms[rounds[currentRound].globalJackpot.winner]) {
                rounds[currentRound].globalJackpot.winner = _sender;
            }
        }
        setTypedJackpotWinner(_sender, _type);
    }

    function getJackpot(uint _nb) public view returns (address winner, uint balance, uint winnerCap) {
        Round storage round = rounds[currentRound];
        if (_nb == 1) {
            return (round.jackpot1.winner, round.jackpot1.balance, round.nbKingdomsType1[round.jackpot1.winner]);
        } else if (_nb == 2) {
            return (round.jackpot2.winner, round.jackpot2.balance, round.nbKingdomsType2[round.jackpot2.winner]);
        } else if (_nb == 3) {
            return (round.jackpot3.winner, round.jackpot3.balance, round.nbKingdomsType3[round.jackpot3.winner]);
        } else if (_nb == 4) {
            return (round.jackpot4.winner, round.jackpot4.balance, round.nbKingdomsType4[round.jackpot4.winner]);
        } else if (_nb == 5) {
            return (round.jackpot5.winner, round.jackpot5.balance, round.nbKingdomsType5[round.jackpot5.winner]);
        } else {
            return (round.globalJackpot.winner, round.globalJackpot.balance, round.nbKingdoms[round.globalJackpot.winner]);
        }
    }

    function getKingdomCount() public view returns (uint kingdomCount) {
        return kingdoms.length;
    }

    function getKingdomInformations(string kingdomKey) public view returns (string title, uint minimumPrice, uint lastTransaction, uint transactionCount, address currentOwner, bool locked) {
        uint kingdomId = rounds[currentRound].kingdomsKeys[kingdomKey];
        Kingdom storage kingdom = kingdoms[kingdomId];
        return (kingdom.title, kingdom.minimumPrice, kingdom.lastTransaction, kingdom.transactionCount, kingdom.owner, kingdom.locked);
    }

}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[],"name":"totalPayments","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_key","type":"string"},{"name":"_title","type":"string"},{"name":"_locked","type":"bool"}],"name":"purchaseKingdom","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"bookerAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getEndTime","outputs":[{"name":"endTime","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_nb","type":"uint256"}],"name":"getJackpot","outputs":[{"name":"winner","type":"address"},{"name":"balance","type":"uint256"},{"name":"winnerCap","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"},{"name":"_key","type":"string"},{"name":"_title","type":"string"},{"name":"_type","type":"uint256"},{"name":"_locked","type":"bool"}],"name":"createKingdom","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"payee","type":"address"}],"name":"forceWithdrawPayments","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawPayments","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_key","type":"string"},{"name":"_locked","type":"bool"}],"name":"setLock","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"STARTING_CLAIM_PRICE_WEI","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"destroy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"},{"name":"_key","type":"string"},{"name":"_title","type":"string"},{"name":"_type","type":"uint256"}],"name":"giveKingdom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currentRound","outputs":[{"name":"","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":"getKingdomCount","outputs":[{"name":"kingdomCount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"kingdoms","outputs":[{"name":"title","type":"string"},{"name":"key","type":"string"},{"name":"kingdomTier","type":"uint256"},{"name":"kingdomType","type":"uint256"},{"name":"minimumPrice","type":"uint256"},{"name":"lastTransaction","type":"uint256"},{"name":"transactionCount","type":"uint256"},{"name":"returnPrice","type":"uint256"},{"name":"owner","type":"address"},{"name":"locked","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ACTION_TAX","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getStartTime","outputs":[{"name":"startTime","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"kingdomTransactions","outputs":[{"name":"kingdomKey","type":"string"},{"name":"compensationAddress","type":"address"},{"name":"buyingPrice","type":"uint256"},{"name":"compensation","type":"uint256"},{"name":"jackpotContribution","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_type","type":"uint256"}],"name":"payJackpot","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"kingdomKey","type":"string"}],"name":"getKingdomInformations","outputs":[{"name":"title","type":"string"},{"name":"minimumPrice","type":"uint256"},{"name":"lastTransaction","type":"uint256"},{"name":"transactionCount","type":"uint256"},{"name":"currentOwner","type":"address"},{"name":"locked","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getRemainingKingdoms","outputs":[{"name":"nb","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"payments","outputs":[{"name":"","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":false,"inputs":[{"name":"_recipient","type":"address"}],"name":"destroyAndSend","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_startTime","type":"uint256"}],"name":"activateNextRound","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_bookerAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":false,"stateMutability":"nonpayable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"kingdomKey","type":"string"},{"indexed":false,"name":"monarchAddress","type":"address"}],"name":"LandCreatedEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"kingdomKey","type":"string"},{"indexed":false,"name":"monarchAddress","type":"address"}],"name":"LandPurchasedEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

60606040526000600260146101000a81548160ff021916908315150217905550341561002a57600080fd5b604051602080620062828339810160405280805190602001909190505033600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600581905550610100604051908101604052806040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525081526020016040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525081526020016040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525081526020016040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525081526020016040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525081526020016040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815250815260200160008152602001600081525060076000600554815260200190815260200160002060008201518160000160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505060208201518160020160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505060408201518160040160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505060608201518160060160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505060808201518160080160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505060a082015181600a0160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505060c0820151816014015560e082015181601501559050506040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525060076000600554815260200190815260200160002060020160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101559050506040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525060076000600554815260200190815260200160002060040160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101559050506040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525060076000600554815260200190815260200160002060060160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101559050506040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525060076000600554815260200190815260200160002060080160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101559050506040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815250600760006005548152602001908152602001600020600a0160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155905050635ad51ce06007600060055481526020019081526020016000206014018190555062093a806007600060055481526020019081526020016000206014015401600760006005548152602001908152602001600020601501819055506040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525060076000600554815260200190815260200160002060000160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015590505050615a16806200086c6000396000f300606060405260043610610153576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680625b4487146101605780630203596d1461018957806308cad05c14610229578063439f5ac21461027e5780634ce4f927146102a757806356247e6d146103185780635d760b45146103e05780636103d70b14610419578063765207131461042e5780637720295a1461048b57806383197ef0146104b457806384c615e2146104c95780638a19c8bc146105915780638da5cb5b146105ba5780638e4060721461060f5780639133210a14610638578063981ae401146107e2578063c828371e1461080b578063ca907e7914610834578063d093e04b14610935578063d2bf779f14610958578063d9d8453114610a81578063e2982c2114610aaa578063f2fde38b14610af7578063f5074f4114610b30578063fa4125f714610b69575b341561015e57600080fd5b005b341561016b57600080fd5b610173610b8c565b6040518082815260200191505060405180910390f35b610227600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919080351515906020019091905050610b92565b005b341561023457600080fd5b61023c61155a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561028957600080fd5b610291611580565b6040518082815260200191505060405180910390f35b34156102b257600080fd5b6102c860048080359060200190919050506115a0565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390f35b6103de600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001909190803515159060200190919050506119c6565b005b34156103eb57600080fd5b610417600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061221b565b005b341561042457600080fd5b61042c612390565b005b610489600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803515159060200190919050506124ad565b005b341561049657600080fd5b61049e612766565b6040518082815260200191505060405180910390f35b34156104bf57600080fd5b6104c7612771565b005b34156104d457600080fd5b61058f600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091908035906020019091905050612808565b005b341561059c57600080fd5b6105a4612e7a565b6040518082815260200191505060405180910390f35b34156105c557600080fd5b6105cd612e80565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561061a57600080fd5b610622612ea6565b6040518082815260200191505060405180910390f35b341561064357600080fd5b6106596004808035906020019091905050612eb3565b6040518080602001806020018b81526020018a81526020018981526020018881526020018781526020018681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018415151515815260200183810383528d8181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156107465780601f1061071b57610100808354040283529160200191610746565b820191906000526020600020905b81548152906001019060200180831161072957829003601f168201915b505083810382528c8181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156107c95780601f1061079e576101008083540402835291602001916107c9565b820191906000526020600020905b8154815290600101906020018083116107ac57829003601f168201915b50509c5050505050505050505050505060405180910390f35b34156107ed57600080fd5b6107f5612f41565b6040518082815260200191505060405180910390f35b341561081657600080fd5b61081e612f4c565b6040518082815260200191505060405180910390f35b341561083f57600080fd5b6108556004808035906020019091905050612f6c565b60405180806020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018481526020018381526020018281038252878181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156109225780601f106108f757610100808354040283529160200191610922565b820191906000526020600020905b81548152906001019060200180831161090557829003601f168201915b5050965050505050505060405180910390f35b341561094057600080fd5b6109566004808035906020019091905050612fd0565b005b341561096357600080fd5b6109b3600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050613859565b60405180806020018781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183151515158152602001828103825288818151815260200191508051906020019080838360005b83811015610a41578082015181840152602081019050610a26565b50505050905090810190601f168015610a6e5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b3415610a8c57600080fd5b610a94613a0c565b6040518082815260200191505060405180910390f35b3415610ab557600080fd5b610ae1600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613a79565b6040518082815260200191505060405180910390f35b3415610b0257600080fd5b610b2e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613a91565b005b3415610b3b57600080fd5b610b67600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613be9565b005b3415610b7457600080fd5b610b8a6004808035906020019091905050613c5e565b005b60015481565b6000806000806000806000600260149054906101000a900460ff16151515610bb957600080fd5b6001600260146101000a81548160ff0219169083151502179055508960011515600760006005548152602001908152602001600020600c01826040518082805190602001908083835b602083101515610c275780518252602082019150602081019050602083039250610c02565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900460ff161515141515610c7657600080fd5b8a600115156003600760006005548152602001908152602001600020601601836040518082805190602001908083835b602083101515610ccb5780518252602082019150602081019050602083039250610ca6565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902054815481101515610d0b57fe5b906000526020600020906009020160080160149054906101000a900460ff16151514151515610d3957600080fd5b6007600060055481526020019081526020016000206015015442101515610d5f57600080fd5b6007600060055481526020019081526020016000209850886016018c6040518082805190602001908083835b602083101515610db05780518252602082019150602081019050602083039250610d8b565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020549750600388815481101515610df557fe5b9060005260206000209060090201965060066001886002015401101515610e1b57600080fd5b86600401549550600115158a15151415610e4c57610e4966470de4df8200008761412c90919063ffffffff16565b95505b853410151515610e5b57600080fd5b610e7287600701543461414a90919063ffffffff16565b94506000876007015411156111b25788600d0160008860080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600190039190505550600187600301541415610f7f5788600f0160008860080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060019003919050555061119f565b600287600301541415611007578860100160008860080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060019003919050555061119e565b60038760030154141561108f578860110160008860080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060019003919050555061119d565b600487600301541415611117578860120160008860080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060019003919050555061119c565b60058760030154141561119b578860130160008860080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001900391905055505b5b5b5b5b6111b187600501548860070154614163565b5b6111d960646111cb6032886141dc90919063ffffffff16565b61421790919063ffffffff16565b93506111f5848a6000016001015461412c90919063ffffffff16565b896000016001018190555086600201600081548092919060010191905055508a87600001908051906020019061122c9291906156a5565b5060058760020154141561124957600087600701819055506112a0565b611261600288600401546141dc90919063ffffffff16565b8760070181905550611297611284600289600401546141dc90919063ffffffff16565b886004015461412c90919063ffffffff16565b87600401819055505b338760080160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550898760080160146101000a81548160ff0219169083151502179055506001600480548060010182816113159190615725565b9160005260206000209060050201600060a060405190810160405280602060405190810160405280600081525081526020013373ffffffffffffffffffffffffffffffffffffffff168152602001348152602001600081526020018981525090919091506000820151816000019080519060200190611395929190615757565b5060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020155606082015181600301556080820151816004015550500392508b60048481548110151561141057fe5b906000526020600020906005020160000190805190602001906114349291906156a5565b50866006016000815480929190600101919050555082876005018190555061146187600301548533614232565b7f33ad373ff55ff0131d5dc1caa21daa4a081eb0707eb9efe075d2200bd2eecf438c3360405180806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b838110156114f65780820151818401526020810190506114db565b50505050905090810190601f1680156115235780820380516001836020036101000a031916815260200191505b50935050505060405180910390a150506000600260146101000a81548160ff02191690831515021790555050505050505050505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060076000600554815260200190815260200160002060150154905090565b6000806000806007600060055481526020019081526020016000209050600185141561166a578060020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816002016001015482600f0160008460020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549350935093506119be565b6002851415611717578060040160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600401600101548260100160008460040160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549350935093506119be565b60038514156117c4578060060160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600601600101548260110160008460060160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549350935093506119be565b6004851415611871578060080160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600801600101548260120160008460080160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549350935093506119be565b600585141561191e5780600a0160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600a016001015482601301600084600a0160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549350935093506119be565b8060000160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816000016001015482600d0160008460000160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549350935093505b509193909250565b6000806000806000806000806119da613a0c565b9050600380549050811115156119ef57600080fd5b6007600060055481526020019081526020016000206015015442101515611a1557600080fd5b60008a111515611a2457600080fd5b60068a101515611a3357600080fd5b662386f26fc100009750879650600115158915151415611a6a57611a6766470de4df8200008861412c90919063ffffffff16565b96505b863410151515611a7957600080fd5b60001515600760006005548152602001908152602001600020600c018d6040518082805190602001908083835b602083101515611acb5780518252602082019150602081019050602083039250611aa6565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900460ff161515141515611b1a57600080fd5b611b356002662386f26fc100006141dc90919063ffffffff16565b9550611b5186662386f26fc1000061412c90919063ffffffff16565b9450600160038054806001018281611b6991906157d7565b91600052602060002090600902016000610140604051908101604052806020604051908101604052806000815250815260200160206040519081016040528060008152508152602001600181526020018f81526020016000815260200160008152602001600181526020018b8152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000151581525090919091506000820151816000019080519060200190611c1f929190615757565b506020820151816001019080519060200190611c3c929190615757565b5060408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e082015181600701556101008201518160080160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101208201518160080160146101000a81548160ff02191690831515021790555050500393508a600385815481101515611cf757fe5b90600052602060002090600902016000019080519060200190611d1b9291906156a5565b508c600385815481101515611d2c57fe5b906000526020600020906009020160080160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508b600385815481101515611d8b57fe5b90600052602060002090600902016001019080519060200190611daf9291906156a5565b5084600385815481101515611dc057fe5b90600052602060002090600902016004018190555088600385815481101515611de557fe5b906000526020600020906009020160080160146101000a81548160ff021916908315150217905550836007600060055481526020019081526020016000206016018d6040518082805190602001908083835b602083101515611e5c5780518252602082019150602081019050602083039250611e37565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020819055506001600760006005548152602001908152602001600020600c018d6040518082805190602001908083835b602083101515611ee35780518252602082019150602081019050602083039250611ebe565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff021916908315150217905550611f60600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1666470de4df8200006146cb565b611f876064611f7960328b6141dc90919063ffffffff16565b61421790919063ffffffff16565b9250611fb7836007600060055481526020019081526020016000206000016001015461412c90919063ffffffff16565b60076000600554815260200190815260200160002060000160010181905550600160048054806001018281611fec9190615725565b9160005260206000209060050201600060a060405190810160405280602060405190810160405280600081525081526020013373ffffffffffffffffffffffffffffffffffffffff16815260200134815260200160008152602001888152509091909150600082015181600001908051906020019061206c929190615757565b5060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020155606082015181600301556080820151816004015550500391508b6004838154811015156120e757fe5b9060005260206000209060050201600001908051906020019061210b9291906156a5565b508160038581548110151561211c57fe5b90600052602060002090600902016005018190555061213c8a8433614232565b7f28852447a61cd7468288ee09e688ab82ac6561117c6abc695290ade7479086a18c3360405180806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b838110156121d15780820151818401526020810190506121b6565b50505050905090810190601f1680156121fe5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a150505050505050505050505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561227957600080fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081141515156122ca57600080fd5b803073ffffffffffffffffffffffffffffffffffffffff1631101515156122f057600080fd5b6123058160015461414a90919063ffffffff16565b60018190555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561238c57fe5b5050565b6000803391506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081141515156123e757600080fd5b803073ffffffffffffffffffffffffffffffffffffffff16311015151561240d57600080fd5b6124228160015461414a90919063ffffffff16565b60018190555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156124a957fe5b5050565b8160011515600760006005548152602001908152602001600020600c01826040518082805190602001908083835b60208310151561250057805182526020820191506020810190506020830392506124db565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900460ff16151514151561254f57600080fd5b82338073ffffffffffffffffffffffffffffffffffffffff166003600760006005548152602001908152602001600020601601846040518082805190602001908083835b6020831015156125b85780518252602082019150602081019050602083039250612593565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020548154811015156125f857fe5b906000526020600020906009020160080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561264c57600080fd5b6001151584151514156126705766470de4df820000341015151561266f57600080fd5b5b836003600760006005548152602001908152602001600020601601876040518082805190602001908083835b6020831015156126c1578051825260208201915060208101905060208303925061269c565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390205481548110151561270157fe5b906000526020600020906009020160080160146101000a81548160ff021916908315150217905550600034111561275f5761275e600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16346146cb565b5b5050505050565b662386f26fc1000081565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156127cd57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561286757600080fd5b60008311151561287657600080fd5b60068310151561288557600080fd5b60001515600760006005548152602001908152602001600020600c01866040518082805190602001908083835b6020831015156128d757805182526020820191506020810190506020830392506128b2565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900460ff16151514151561292657600080fd5b60016003805480600101828161293c91906157d7565b916000526020600020906009020160006101406040519081016040528060206040519081016040528060008152508152602001602060405190810160405280600081525081526020016001815260200188815260200160008152602001600081526020016001815260200166470de4df8200008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160001515815250909190915060008201518160000190805190602001906129f9929190615757565b506020820151816001019080519060200190612a16929190615757565b5060408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e082015181600701556101008201518160080160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101208201518160080160146101000a81548160ff021916908315150217905550505003915083600383815481101515612ad157fe5b90600052602060002090600902016000019080519060200190612af59291906156a5565b5085600383815481101515612b0657fe5b906000526020600020906009020160080160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600383815481101515612b6557fe5b90600052602060002090600902016001019080519060200190612b899291906156a5565b50666a94d74f430000600383815481101515612ba157fe5b9060005260206000209060090201600401819055506000600383815481101515612bc757fe5b906000526020600020906009020160080160146101000a81548160ff02191690831515021790555081600760006005548152602001908152602001600020601601866040518082805190602001908083835b602083101515612c3e5780518252602082019150602081019050602083039250612c19565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020819055506001600760006005548152602001908152602001600020600c01866040518082805190602001908083835b602083101515612cc55780518252602082019150602081019050602083039250612ca0565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff021916908315150217905550600160048054806001018281612d259190615725565b9160005260206000209060050201600060a060405190810160405280602060405190810160405280600081525081526020013373ffffffffffffffffffffffffffffffffffffffff168152602001662386f26fc10000815260200160008152602001600081525090919091506000820151816000019080519060200190612dad929190615757565b5060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600201556060820151816003015560808201518160040155505003905084600482815481101515612e2857fe5b90600052602060002090600502016000019080519060200190612e4c9291906156a5565b5080600383815481101515612e5d57fe5b906000526020600020906009020160050181905550505050505050565b60055481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600380549050905090565b600381815481101515612ec257fe5b9060005260206000209060090201600091509050806000019080600101908060020154908060030154908060040154908060050154908060060154908060070154908060080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060080160149054906101000a900460ff1690508a565b66470de4df82000081565b600060076000600554815260200190815260200160002060140154905090565b600481815481101515612f7b57fe5b906000526020600020906005020160009150905080600001908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154908060030154908060040154905085565b600080600080600080600060076000600554815260200190815260200160002060150154421015151561300257600080fd5b600760006005548152602001908152602001600020965060018814801561307d5750600073ffffffffffffffffffffffffffffffffffffffff168760020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b8015613090575060008760020160010154115b1561317a5786600201600101543073ffffffffffffffffffffffffffffffffffffffff1631101515156130c257600080fd5b6130f060646130e2600a8a600201600101546141dc90919063ffffffff16565b61421790919063ffffffff16565b955061311e600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876146cb565b6131688760020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613163888a6002016001015461414a90919063ffffffff16565b6146cb565b600087600201600101819055506136fe565b6002881480156131de5750600073ffffffffffffffffffffffffffffffffffffffff168760040160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b80156131f1575060008760040160010154115b156132db5786600401600101543073ffffffffffffffffffffffffffffffffffffffff16311015151561322357600080fd5b6132516064613243600a8a600401600101546141dc90919063ffffffff16565b61421790919063ffffffff16565b945061327f600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866146cb565b6132c98760040160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166132c4878a6004016001015461414a90919063ffffffff16565b6146cb565b600087600401600101819055506136fd565b60038814801561333f5750600073ffffffffffffffffffffffffffffffffffffffff168760060160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b8015613352575060008760060160010154115b1561343c5786600601600101543073ffffffffffffffffffffffffffffffffffffffff16311015151561338457600080fd5b6133b260646133a4600a8a600601600101546141dc90919063ffffffff16565b61421790919063ffffffff16565b93506133e0600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856146cb565b61342a8760060160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613425868a6006016001015461414a90919063ffffffff16565b6146cb565b600087600601600101819055506136fc565b6004881480156134a05750600073ffffffffffffffffffffffffffffffffffffffff168760080160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b80156134b3575060008760080160010154115b1561359d5786600801600101543073ffffffffffffffffffffffffffffffffffffffff1631101515156134e557600080fd5b6135136064613505600a8a600801600101546141dc90919063ffffffff16565b61421790919063ffffffff16565b9250613541600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846146cb565b61358b8760080160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613586858a6008016001015461414a90919063ffffffff16565b6146cb565b600087600801600101819055506136fb565b6005881480156136015750600073ffffffffffffffffffffffffffffffffffffffff1687600a0160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b80156136145750600087600a0160010154115b156136fa5786600a01600101543073ffffffffffffffffffffffffffffffffffffffff16311015151561364657600080fd5b6136746064613666600a8a600a01600101546141dc90919063ffffffff16565b61421790919063ffffffff16565b91506136a2600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836146cb565b6136ec87600a0160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166136e7848a600a016001015461414a90919063ffffffff16565b6146cb565b600087600a01600101819055505b5b5b5b5b600073ffffffffffffffffffffffffffffffffffffffff168760000160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015613769575060008760000160010154115b1561384f5786600001600101543073ffffffffffffffffffffffffffffffffffffffff16311015151561379b57600080fd5b6137c960646137bb600a8a600001600101546141dc90919063ffffffff16565b61421790919063ffffffff16565b90506137f7600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826146cb565b6138418760000160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661383c838a6000016001015461414a90919063ffffffff16565b6146cb565b600087600001600101819055505b5050505050505050565b613861615809565b6000806000806000806000600760006005548152602001908152602001600020601601896040518082805190602001908083835b6020831015156138ba5780518252602082019150602081019050602083039250613895565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390205491506003828154811015156138ff57fe5b90600052602060002090600902019050806000018160040154826005015483600601548460080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168560080160149054906101000a900460ff16858054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156139ee5780601f106139c3576101008083540402835291602001916139ee565b820191906000526020600020905b8154815290600101906020018083116139d157829003601f168201915b50505050509550975097509750975097509750505091939550919395565b6000806000600191505b6008821015613a73576201518082026007600060055481526020019081526020016000206014015401421015613a6657816019029050607d811115613a5e57607d9250613a74565b809250613a74565b8180600101925050613a16565b5b505090565b60006020528060005260406000206000915090505481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613aed57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515613b2957600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613c4557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16ff5b6000600760006005548152602001908152602001600020601501544210151515613c8757600080fd5b600760006005548152602001908152602001600020905060008160000160010154141515613cb457600080fd5b600081600a0160010154141515613cca57600080fd5b60008160080160010154141515613ce057600080fd5b60008160060160010154141515613cf657600080fd5b60008160040160010154141515613d0c57600080fd5b60008160020160010154141515613d2257600080fd5b600560008154809291906001019190505550610100604051908101604052806040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525081526020016040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525081526020016040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525081526020016040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525081526020016040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525081526020016040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815250815260200160008152602001600081525060076000600554815260200190815260200160002060008201518160000160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505060208201518160020160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505060408201518160040160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505060608201518160060160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505060808201518160080160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505060a082015181600a0160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505060c0820151816014015560e08201518160150155905050816007600060055481526020019081526020016000206014018190555062093a808201600760006005548152602001908152602001600020601501819055506003600061411a919061581d565b600460006141289190615841565b5050565b600080828401905083811015151561414057fe5b8091505092915050565b600082821115151561415857fe5b818303905092915050565b600060048381548110151561417457fe5b906000526020600020906005020160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816004848154811015156141b857fe5b9060005260206000209060050201600301819055506141d781836146cb565b505050565b60008060008414156141f15760009150614210565b828402905082848281151561420257fe5b0414151561420c57fe5b8091505b5092915050565b600080828481151561422557fe5b0490508091505092915050565b600760006005548152602001908152602001600020600e0160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550600760006005548152602001908152602001600020600d0160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050555060018314156143bc57600760006005548152602001908152602001600020600f0160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550614398826007600060055481526020019081526020016000206002016001015461412c90919063ffffffff16565b600760006005548152602001908152602001600020600201600101819055506146bc565b600283141561447c5760076000600554815260200190815260200160002060100160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550614458826007600060055481526020019081526020016000206004016001015461412c90919063ffffffff16565b600760006005548152602001908152602001600020600401600101819055506146bb565b600383141561453c5760076000600554815260200190815260200160002060110160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550614518826007600060055481526020019081526020016000206006016001015461412c90919063ffffffff16565b600760006005548152602001908152602001600020600601600101819055506146ba565b60048314156145fc5760076000600554815260200190815260200160002060120160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060010191905055506145d8826007600060055481526020019081526020016000206008016001015461412c90919063ffffffff16565b600760006005548152602001908152602001600020600801600101819055506146b9565b60058314156146b85760076000600554815260200190815260200160002060130160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050555061469882600760006005548152602001908152602001600020600a016001015461412c90919063ffffffff16565b600760006005548152602001908152602001600020600a01600101819055505b5b5b5b5b6146c6338461477d565b505050565b61471c816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461412c90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506147738160015461412c90919063ffffffff16565b6001819055505050565b600073ffffffffffffffffffffffffffffffffffffffff1660076000600554815260200190815260200160002060000160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561484c578160076000600554815260200190815260200160002060000160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550614bd0565b600760006005548152602001908152602001600020600d01600060076000600554815260200190815260200160002060000160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600760006005548152602001908152602001600020600d0160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415614a8657600760006005548152602001908152602001600020600e01600060076000600554815260200190815260200160002060000160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600760006005548152602001908152602001600020600e0160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115614a81578160076000600554815260200190815260200160002060000160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b614bcf565b600760006005548152602001908152602001600020600d01600060076000600554815260200190815260200160002060000160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600760006005548152602001908152602001600020600d0160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115614bce578160076000600554815260200190815260200160002060000160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b5b614bda8282614bde565b5050565b6001811415614e0557600073ffffffffffffffffffffffffffffffffffffffff1660076000600554815260200190815260200160002060020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415614cb6578160076000600554815260200190815260200160002060020160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550614e00565b600760006005548152602001908152602001600020600f01600060076000600554815260200190815260200160002060020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600760006005548152602001908152602001600020600f0160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515614dff578160076000600554815260200190815260200160002060020160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b6156a1565b600281141561502c57600073ffffffffffffffffffffffffffffffffffffffff1660076000600554815260200190815260200160002060040160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415614edd578160076000600554815260200190815260200160002060040160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550615027565b600760006005548152602001908152602001600020601001600060076000600554815260200190815260200160002060040160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460076000600554815260200190815260200160002060100160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515615026578160076000600554815260200190815260200160002060040160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b6156a0565b600381141561525357600073ffffffffffffffffffffffffffffffffffffffff1660076000600554815260200190815260200160002060060160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415615104578160076000600554815260200190815260200160002060060160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061524e565b600760006005548152602001908152602001600020601101600060076000600554815260200190815260200160002060060160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460076000600554815260200190815260200160002060110160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151561524d578160076000600554815260200190815260200160002060060160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b61569f565b600481141561547a57600073ffffffffffffffffffffffffffffffffffffffff1660076000600554815260200190815260200160002060080160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561532b578160076000600554815260200190815260200160002060080160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550615475565b600760006005548152602001908152602001600020601201600060076000600554815260200190815260200160002060080160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460076000600554815260200190815260200160002060120160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515615474578160076000600554815260200190815260200160002060080160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b61569e565b600581141561569d57600073ffffffffffffffffffffffffffffffffffffffff16600760006005548152602001908152602001600020600a0160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156155525781600760006005548152602001908152602001600020600a0160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061569c565b6007600060055481526020019081526020016000206013016000600760006005548152602001908152602001600020600a0160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460076000600554815260200190815260200160002060130160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151561569b5781600760006005548152602001908152602001600020600a0160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b5b5b5b5b5b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106156e657805160ff1916838001178555615714565b82800160010185558215615714579182015b828111156157135782518255916020019190600101906156f8565b5b5090506157219190615865565b5090565b81548183558181151161575257600502816005028360005260206000209182019101615751919061588a565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061579857805160ff19168380011785556157c6565b828001600101855582156157c6579182015b828111156157c55782518255916020019190600101906157aa565b5b5090506157d39190615865565b5090565b8154818355818115116158045760090281600902836000526020600020918201910161580391906158f8565b5b505050565b602060405190810160405280600081525090565b508054600082556009029060005260206000209081019061583e91906158f8565b50565b5080546000825560050290600052602060002090810190615862919061588a565b50565b61588791905b8082111561588357600081600090555060010161586b565b5090565b90565b6158f591905b808211156158f157600080820160006158a991906159a2565b6001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560028201600090556003820160009055600482016000905550600501615890565b5090565b90565b61599f91905b8082111561599b576000808201600061591791906159a2565b60018201600061592791906159a2565b6002820160009055600382016000905560048201600090556005820160009055600682016000905560078201600090556008820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556008820160146101000a81549060ff0219169055506009016158fe565b5090565b90565b50805460018160011615610100020316600290046000825580601f106159c857506159e7565b601f0160209004906000526020600020908101906159e69190615865565b5b505600a165627a7a72305820fb432e692aa1db2c08e7b7a9835ea06a555c3f82f91f6718432fce84c4cfba8f00290000000000000000000000008c7d96da59d23b50b9eeefdacf58a5fce62b35b5

Deployed Bytecode

0x606060405260043610610153576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680625b4487146101605780630203596d1461018957806308cad05c14610229578063439f5ac21461027e5780634ce4f927146102a757806356247e6d146103185780635d760b45146103e05780636103d70b14610419578063765207131461042e5780637720295a1461048b57806383197ef0146104b457806384c615e2146104c95780638a19c8bc146105915780638da5cb5b146105ba5780638e4060721461060f5780639133210a14610638578063981ae401146107e2578063c828371e1461080b578063ca907e7914610834578063d093e04b14610935578063d2bf779f14610958578063d9d8453114610a81578063e2982c2114610aaa578063f2fde38b14610af7578063f5074f4114610b30578063fa4125f714610b69575b341561015e57600080fd5b005b341561016b57600080fd5b610173610b8c565b6040518082815260200191505060405180910390f35b610227600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919080351515906020019091905050610b92565b005b341561023457600080fd5b61023c61155a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561028957600080fd5b610291611580565b6040518082815260200191505060405180910390f35b34156102b257600080fd5b6102c860048080359060200190919050506115a0565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390f35b6103de600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001909190803515159060200190919050506119c6565b005b34156103eb57600080fd5b610417600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061221b565b005b341561042457600080fd5b61042c612390565b005b610489600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803515159060200190919050506124ad565b005b341561049657600080fd5b61049e612766565b6040518082815260200191505060405180910390f35b34156104bf57600080fd5b6104c7612771565b005b34156104d457600080fd5b61058f600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091908035906020019091905050612808565b005b341561059c57600080fd5b6105a4612e7a565b6040518082815260200191505060405180910390f35b34156105c557600080fd5b6105cd612e80565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561061a57600080fd5b610622612ea6565b6040518082815260200191505060405180910390f35b341561064357600080fd5b6106596004808035906020019091905050612eb3565b6040518080602001806020018b81526020018a81526020018981526020018881526020018781526020018681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018415151515815260200183810383528d8181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156107465780601f1061071b57610100808354040283529160200191610746565b820191906000526020600020905b81548152906001019060200180831161072957829003601f168201915b505083810382528c8181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156107c95780601f1061079e576101008083540402835291602001916107c9565b820191906000526020600020905b8154815290600101906020018083116107ac57829003601f168201915b50509c5050505050505050505050505060405180910390f35b34156107ed57600080fd5b6107f5612f41565b6040518082815260200191505060405180910390f35b341561081657600080fd5b61081e612f4c565b6040518082815260200191505060405180910390f35b341561083f57600080fd5b6108556004808035906020019091905050612f6c565b60405180806020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018481526020018381526020018281038252878181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156109225780601f106108f757610100808354040283529160200191610922565b820191906000526020600020905b81548152906001019060200180831161090557829003601f168201915b5050965050505050505060405180910390f35b341561094057600080fd5b6109566004808035906020019091905050612fd0565b005b341561096357600080fd5b6109b3600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050613859565b60405180806020018781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183151515158152602001828103825288818151815260200191508051906020019080838360005b83811015610a41578082015181840152602081019050610a26565b50505050905090810190601f168015610a6e5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b3415610a8c57600080fd5b610a94613a0c565b6040518082815260200191505060405180910390f35b3415610ab557600080fd5b610ae1600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613a79565b6040518082815260200191505060405180910390f35b3415610b0257600080fd5b610b2e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613a91565b005b3415610b3b57600080fd5b610b67600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613be9565b005b3415610b7457600080fd5b610b8a6004808035906020019091905050613c5e565b005b60015481565b6000806000806000806000600260149054906101000a900460ff16151515610bb957600080fd5b6001600260146101000a81548160ff0219169083151502179055508960011515600760006005548152602001908152602001600020600c01826040518082805190602001908083835b602083101515610c275780518252602082019150602081019050602083039250610c02565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900460ff161515141515610c7657600080fd5b8a600115156003600760006005548152602001908152602001600020601601836040518082805190602001908083835b602083101515610ccb5780518252602082019150602081019050602083039250610ca6565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902054815481101515610d0b57fe5b906000526020600020906009020160080160149054906101000a900460ff16151514151515610d3957600080fd5b6007600060055481526020019081526020016000206015015442101515610d5f57600080fd5b6007600060055481526020019081526020016000209850886016018c6040518082805190602001908083835b602083101515610db05780518252602082019150602081019050602083039250610d8b565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020549750600388815481101515610df557fe5b9060005260206000209060090201965060066001886002015401101515610e1b57600080fd5b86600401549550600115158a15151415610e4c57610e4966470de4df8200008761412c90919063ffffffff16565b95505b853410151515610e5b57600080fd5b610e7287600701543461414a90919063ffffffff16565b94506000876007015411156111b25788600d0160008860080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600190039190505550600187600301541415610f7f5788600f0160008860080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060019003919050555061119f565b600287600301541415611007578860100160008860080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060019003919050555061119e565b60038760030154141561108f578860110160008860080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060019003919050555061119d565b600487600301541415611117578860120160008860080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060019003919050555061119c565b60058760030154141561119b578860130160008860080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001900391905055505b5b5b5b5b6111b187600501548860070154614163565b5b6111d960646111cb6032886141dc90919063ffffffff16565b61421790919063ffffffff16565b93506111f5848a6000016001015461412c90919063ffffffff16565b896000016001018190555086600201600081548092919060010191905055508a87600001908051906020019061122c9291906156a5565b5060058760020154141561124957600087600701819055506112a0565b611261600288600401546141dc90919063ffffffff16565b8760070181905550611297611284600289600401546141dc90919063ffffffff16565b886004015461412c90919063ffffffff16565b87600401819055505b338760080160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550898760080160146101000a81548160ff0219169083151502179055506001600480548060010182816113159190615725565b9160005260206000209060050201600060a060405190810160405280602060405190810160405280600081525081526020013373ffffffffffffffffffffffffffffffffffffffff168152602001348152602001600081526020018981525090919091506000820151816000019080519060200190611395929190615757565b5060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020155606082015181600301556080820151816004015550500392508b60048481548110151561141057fe5b906000526020600020906005020160000190805190602001906114349291906156a5565b50866006016000815480929190600101919050555082876005018190555061146187600301548533614232565b7f33ad373ff55ff0131d5dc1caa21daa4a081eb0707eb9efe075d2200bd2eecf438c3360405180806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b838110156114f65780820151818401526020810190506114db565b50505050905090810190601f1680156115235780820380516001836020036101000a031916815260200191505b50935050505060405180910390a150506000600260146101000a81548160ff02191690831515021790555050505050505050505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060076000600554815260200190815260200160002060150154905090565b6000806000806007600060055481526020019081526020016000209050600185141561166a578060020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816002016001015482600f0160008460020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549350935093506119be565b6002851415611717578060040160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600401600101548260100160008460040160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549350935093506119be565b60038514156117c4578060060160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600601600101548260110160008460060160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549350935093506119be565b6004851415611871578060080160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600801600101548260120160008460080160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549350935093506119be565b600585141561191e5780600a0160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600a016001015482601301600084600a0160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549350935093506119be565b8060000160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816000016001015482600d0160008460000160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549350935093505b509193909250565b6000806000806000806000806119da613a0c565b9050600380549050811115156119ef57600080fd5b6007600060055481526020019081526020016000206015015442101515611a1557600080fd5b60008a111515611a2457600080fd5b60068a101515611a3357600080fd5b662386f26fc100009750879650600115158915151415611a6a57611a6766470de4df8200008861412c90919063ffffffff16565b96505b863410151515611a7957600080fd5b60001515600760006005548152602001908152602001600020600c018d6040518082805190602001908083835b602083101515611acb5780518252602082019150602081019050602083039250611aa6565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900460ff161515141515611b1a57600080fd5b611b356002662386f26fc100006141dc90919063ffffffff16565b9550611b5186662386f26fc1000061412c90919063ffffffff16565b9450600160038054806001018281611b6991906157d7565b91600052602060002090600902016000610140604051908101604052806020604051908101604052806000815250815260200160206040519081016040528060008152508152602001600181526020018f81526020016000815260200160008152602001600181526020018b8152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000151581525090919091506000820151816000019080519060200190611c1f929190615757565b506020820151816001019080519060200190611c3c929190615757565b5060408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e082015181600701556101008201518160080160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101208201518160080160146101000a81548160ff02191690831515021790555050500393508a600385815481101515611cf757fe5b90600052602060002090600902016000019080519060200190611d1b9291906156a5565b508c600385815481101515611d2c57fe5b906000526020600020906009020160080160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508b600385815481101515611d8b57fe5b90600052602060002090600902016001019080519060200190611daf9291906156a5565b5084600385815481101515611dc057fe5b90600052602060002090600902016004018190555088600385815481101515611de557fe5b906000526020600020906009020160080160146101000a81548160ff021916908315150217905550836007600060055481526020019081526020016000206016018d6040518082805190602001908083835b602083101515611e5c5780518252602082019150602081019050602083039250611e37565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020819055506001600760006005548152602001908152602001600020600c018d6040518082805190602001908083835b602083101515611ee35780518252602082019150602081019050602083039250611ebe565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff021916908315150217905550611f60600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1666470de4df8200006146cb565b611f876064611f7960328b6141dc90919063ffffffff16565b61421790919063ffffffff16565b9250611fb7836007600060055481526020019081526020016000206000016001015461412c90919063ffffffff16565b60076000600554815260200190815260200160002060000160010181905550600160048054806001018281611fec9190615725565b9160005260206000209060050201600060a060405190810160405280602060405190810160405280600081525081526020013373ffffffffffffffffffffffffffffffffffffffff16815260200134815260200160008152602001888152509091909150600082015181600001908051906020019061206c929190615757565b5060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020155606082015181600301556080820151816004015550500391508b6004838154811015156120e757fe5b9060005260206000209060050201600001908051906020019061210b9291906156a5565b508160038581548110151561211c57fe5b90600052602060002090600902016005018190555061213c8a8433614232565b7f28852447a61cd7468288ee09e688ab82ac6561117c6abc695290ade7479086a18c3360405180806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b838110156121d15780820151818401526020810190506121b6565b50505050905090810190601f1680156121fe5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a150505050505050505050505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561227957600080fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081141515156122ca57600080fd5b803073ffffffffffffffffffffffffffffffffffffffff1631101515156122f057600080fd5b6123058160015461414a90919063ffffffff16565b60018190555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561238c57fe5b5050565b6000803391506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081141515156123e757600080fd5b803073ffffffffffffffffffffffffffffffffffffffff16311015151561240d57600080fd5b6124228160015461414a90919063ffffffff16565b60018190555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156124a957fe5b5050565b8160011515600760006005548152602001908152602001600020600c01826040518082805190602001908083835b60208310151561250057805182526020820191506020810190506020830392506124db565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900460ff16151514151561254f57600080fd5b82338073ffffffffffffffffffffffffffffffffffffffff166003600760006005548152602001908152602001600020601601846040518082805190602001908083835b6020831015156125b85780518252602082019150602081019050602083039250612593565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020548154811015156125f857fe5b906000526020600020906009020160080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561264c57600080fd5b6001151584151514156126705766470de4df820000341015151561266f57600080fd5b5b836003600760006005548152602001908152602001600020601601876040518082805190602001908083835b6020831015156126c1578051825260208201915060208101905060208303925061269c565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390205481548110151561270157fe5b906000526020600020906009020160080160146101000a81548160ff021916908315150217905550600034111561275f5761275e600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16346146cb565b5b5050505050565b662386f26fc1000081565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156127cd57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561286757600080fd5b60008311151561287657600080fd5b60068310151561288557600080fd5b60001515600760006005548152602001908152602001600020600c01866040518082805190602001908083835b6020831015156128d757805182526020820191506020810190506020830392506128b2565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900460ff16151514151561292657600080fd5b60016003805480600101828161293c91906157d7565b916000526020600020906009020160006101406040519081016040528060206040519081016040528060008152508152602001602060405190810160405280600081525081526020016001815260200188815260200160008152602001600081526020016001815260200166470de4df8200008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160001515815250909190915060008201518160000190805190602001906129f9929190615757565b506020820151816001019080519060200190612a16929190615757565b5060408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e082015181600701556101008201518160080160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101208201518160080160146101000a81548160ff021916908315150217905550505003915083600383815481101515612ad157fe5b90600052602060002090600902016000019080519060200190612af59291906156a5565b5085600383815481101515612b0657fe5b906000526020600020906009020160080160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600383815481101515612b6557fe5b90600052602060002090600902016001019080519060200190612b899291906156a5565b50666a94d74f430000600383815481101515612ba157fe5b9060005260206000209060090201600401819055506000600383815481101515612bc757fe5b906000526020600020906009020160080160146101000a81548160ff02191690831515021790555081600760006005548152602001908152602001600020601601866040518082805190602001908083835b602083101515612c3e5780518252602082019150602081019050602083039250612c19565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020819055506001600760006005548152602001908152602001600020600c01866040518082805190602001908083835b602083101515612cc55780518252602082019150602081019050602083039250612ca0565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff021916908315150217905550600160048054806001018281612d259190615725565b9160005260206000209060050201600060a060405190810160405280602060405190810160405280600081525081526020013373ffffffffffffffffffffffffffffffffffffffff168152602001662386f26fc10000815260200160008152602001600081525090919091506000820151816000019080519060200190612dad929190615757565b5060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600201556060820151816003015560808201518160040155505003905084600482815481101515612e2857fe5b90600052602060002090600502016000019080519060200190612e4c9291906156a5565b5080600383815481101515612e5d57fe5b906000526020600020906009020160050181905550505050505050565b60055481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600380549050905090565b600381815481101515612ec257fe5b9060005260206000209060090201600091509050806000019080600101908060020154908060030154908060040154908060050154908060060154908060070154908060080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060080160149054906101000a900460ff1690508a565b66470de4df82000081565b600060076000600554815260200190815260200160002060140154905090565b600481815481101515612f7b57fe5b906000526020600020906005020160009150905080600001908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154908060030154908060040154905085565b600080600080600080600060076000600554815260200190815260200160002060150154421015151561300257600080fd5b600760006005548152602001908152602001600020965060018814801561307d5750600073ffffffffffffffffffffffffffffffffffffffff168760020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b8015613090575060008760020160010154115b1561317a5786600201600101543073ffffffffffffffffffffffffffffffffffffffff1631101515156130c257600080fd5b6130f060646130e2600a8a600201600101546141dc90919063ffffffff16565b61421790919063ffffffff16565b955061311e600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876146cb565b6131688760020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613163888a6002016001015461414a90919063ffffffff16565b6146cb565b600087600201600101819055506136fe565b6002881480156131de5750600073ffffffffffffffffffffffffffffffffffffffff168760040160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b80156131f1575060008760040160010154115b156132db5786600401600101543073ffffffffffffffffffffffffffffffffffffffff16311015151561322357600080fd5b6132516064613243600a8a600401600101546141dc90919063ffffffff16565b61421790919063ffffffff16565b945061327f600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866146cb565b6132c98760040160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166132c4878a6004016001015461414a90919063ffffffff16565b6146cb565b600087600401600101819055506136fd565b60038814801561333f5750600073ffffffffffffffffffffffffffffffffffffffff168760060160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b8015613352575060008760060160010154115b1561343c5786600601600101543073ffffffffffffffffffffffffffffffffffffffff16311015151561338457600080fd5b6133b260646133a4600a8a600601600101546141dc90919063ffffffff16565b61421790919063ffffffff16565b93506133e0600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856146cb565b61342a8760060160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613425868a6006016001015461414a90919063ffffffff16565b6146cb565b600087600601600101819055506136fc565b6004881480156134a05750600073ffffffffffffffffffffffffffffffffffffffff168760080160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b80156134b3575060008760080160010154115b1561359d5786600801600101543073ffffffffffffffffffffffffffffffffffffffff1631101515156134e557600080fd5b6135136064613505600a8a600801600101546141dc90919063ffffffff16565b61421790919063ffffffff16565b9250613541600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846146cb565b61358b8760080160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16613586858a6008016001015461414a90919063ffffffff16565b6146cb565b600087600801600101819055506136fb565b6005881480156136015750600073ffffffffffffffffffffffffffffffffffffffff1687600a0160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b80156136145750600087600a0160010154115b156136fa5786600a01600101543073ffffffffffffffffffffffffffffffffffffffff16311015151561364657600080fd5b6136746064613666600a8a600a01600101546141dc90919063ffffffff16565b61421790919063ffffffff16565b91506136a2600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836146cb565b6136ec87600a0160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166136e7848a600a016001015461414a90919063ffffffff16565b6146cb565b600087600a01600101819055505b5b5b5b5b600073ffffffffffffffffffffffffffffffffffffffff168760000160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015613769575060008760000160010154115b1561384f5786600001600101543073ffffffffffffffffffffffffffffffffffffffff16311015151561379b57600080fd5b6137c960646137bb600a8a600001600101546141dc90919063ffffffff16565b61421790919063ffffffff16565b90506137f7600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826146cb565b6138418760000160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661383c838a6000016001015461414a90919063ffffffff16565b6146cb565b600087600001600101819055505b5050505050505050565b613861615809565b6000806000806000806000600760006005548152602001908152602001600020601601896040518082805190602001908083835b6020831015156138ba5780518252602082019150602081019050602083039250613895565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390205491506003828154811015156138ff57fe5b90600052602060002090600902019050806000018160040154826005015483600601548460080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168560080160149054906101000a900460ff16858054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156139ee5780601f106139c3576101008083540402835291602001916139ee565b820191906000526020600020905b8154815290600101906020018083116139d157829003601f168201915b50505050509550975097509750975097509750505091939550919395565b6000806000600191505b6008821015613a73576201518082026007600060055481526020019081526020016000206014015401421015613a6657816019029050607d811115613a5e57607d9250613a74565b809250613a74565b8180600101925050613a16565b5b505090565b60006020528060005260406000206000915090505481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613aed57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515613b2957600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613c4557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16ff5b6000600760006005548152602001908152602001600020601501544210151515613c8757600080fd5b600760006005548152602001908152602001600020905060008160000160010154141515613cb457600080fd5b600081600a0160010154141515613cca57600080fd5b60008160080160010154141515613ce057600080fd5b60008160060160010154141515613cf657600080fd5b60008160040160010154141515613d0c57600080fd5b60008160020160010154141515613d2257600080fd5b600560008154809291906001019190505550610100604051908101604052806040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525081526020016040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525081526020016040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525081526020016040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525081526020016040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525081526020016040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815250815260200160008152602001600081525060076000600554815260200190815260200160002060008201518160000160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505060208201518160020160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505060408201518160040160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505060608201518160060160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505060808201518160080160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505060a082015181600a0160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505060c0820151816014015560e08201518160150155905050816007600060055481526020019081526020016000206014018190555062093a808201600760006005548152602001908152602001600020601501819055506003600061411a919061581d565b600460006141289190615841565b5050565b600080828401905083811015151561414057fe5b8091505092915050565b600082821115151561415857fe5b818303905092915050565b600060048381548110151561417457fe5b906000526020600020906005020160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816004848154811015156141b857fe5b9060005260206000209060050201600301819055506141d781836146cb565b505050565b60008060008414156141f15760009150614210565b828402905082848281151561420257fe5b0414151561420c57fe5b8091505b5092915050565b600080828481151561422557fe5b0490508091505092915050565b600760006005548152602001908152602001600020600e0160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550600760006005548152602001908152602001600020600d0160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050555060018314156143bc57600760006005548152602001908152602001600020600f0160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550614398826007600060055481526020019081526020016000206002016001015461412c90919063ffffffff16565b600760006005548152602001908152602001600020600201600101819055506146bc565b600283141561447c5760076000600554815260200190815260200160002060100160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550614458826007600060055481526020019081526020016000206004016001015461412c90919063ffffffff16565b600760006005548152602001908152602001600020600401600101819055506146bb565b600383141561453c5760076000600554815260200190815260200160002060110160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550614518826007600060055481526020019081526020016000206006016001015461412c90919063ffffffff16565b600760006005548152602001908152602001600020600601600101819055506146ba565b60048314156145fc5760076000600554815260200190815260200160002060120160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060010191905055506145d8826007600060055481526020019081526020016000206008016001015461412c90919063ffffffff16565b600760006005548152602001908152602001600020600801600101819055506146b9565b60058314156146b85760076000600554815260200190815260200160002060130160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050555061469882600760006005548152602001908152602001600020600a016001015461412c90919063ffffffff16565b600760006005548152602001908152602001600020600a01600101819055505b5b5b5b5b6146c6338461477d565b505050565b61471c816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461412c90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506147738160015461412c90919063ffffffff16565b6001819055505050565b600073ffffffffffffffffffffffffffffffffffffffff1660076000600554815260200190815260200160002060000160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561484c578160076000600554815260200190815260200160002060000160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550614bd0565b600760006005548152602001908152602001600020600d01600060076000600554815260200190815260200160002060000160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600760006005548152602001908152602001600020600d0160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415614a8657600760006005548152602001908152602001600020600e01600060076000600554815260200190815260200160002060000160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600760006005548152602001908152602001600020600e0160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115614a81578160076000600554815260200190815260200160002060000160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b614bcf565b600760006005548152602001908152602001600020600d01600060076000600554815260200190815260200160002060000160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600760006005548152602001908152602001600020600d0160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115614bce578160076000600554815260200190815260200160002060000160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b5b614bda8282614bde565b5050565b6001811415614e0557600073ffffffffffffffffffffffffffffffffffffffff1660076000600554815260200190815260200160002060020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415614cb6578160076000600554815260200190815260200160002060020160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550614e00565b600760006005548152602001908152602001600020600f01600060076000600554815260200190815260200160002060020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600760006005548152602001908152602001600020600f0160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515614dff578160076000600554815260200190815260200160002060020160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b6156a1565b600281141561502c57600073ffffffffffffffffffffffffffffffffffffffff1660076000600554815260200190815260200160002060040160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415614edd578160076000600554815260200190815260200160002060040160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550615027565b600760006005548152602001908152602001600020601001600060076000600554815260200190815260200160002060040160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460076000600554815260200190815260200160002060100160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515615026578160076000600554815260200190815260200160002060040160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b6156a0565b600381141561525357600073ffffffffffffffffffffffffffffffffffffffff1660076000600554815260200190815260200160002060060160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415615104578160076000600554815260200190815260200160002060060160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061524e565b600760006005548152602001908152602001600020601101600060076000600554815260200190815260200160002060060160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460076000600554815260200190815260200160002060110160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151561524d578160076000600554815260200190815260200160002060060160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b61569f565b600481141561547a57600073ffffffffffffffffffffffffffffffffffffffff1660076000600554815260200190815260200160002060080160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561532b578160076000600554815260200190815260200160002060080160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550615475565b600760006005548152602001908152602001600020601201600060076000600554815260200190815260200160002060080160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460076000600554815260200190815260200160002060120160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515615474578160076000600554815260200190815260200160002060080160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b61569e565b600581141561569d57600073ffffffffffffffffffffffffffffffffffffffff16600760006005548152602001908152602001600020600a0160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156155525781600760006005548152602001908152602001600020600a0160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061569c565b6007600060055481526020019081526020016000206013016000600760006005548152602001908152602001600020600a0160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460076000600554815260200190815260200160002060130160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151561569b5781600760006005548152602001908152602001600020600a0160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b5b5b5b5b5b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106156e657805160ff1916838001178555615714565b82800160010185558215615714579182015b828111156157135782518255916020019190600101906156f8565b5b5090506157219190615865565b5090565b81548183558181151161575257600502816005028360005260206000209182019101615751919061588a565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061579857805160ff19168380011785556157c6565b828001600101855582156157c6579182015b828111156157c55782518255916020019190600101906157aa565b5b5090506157d39190615865565b5090565b8154818355818115116158045760090281600902836000526020600020918201910161580391906158f8565b5b505050565b602060405190810160405280600081525090565b508054600082556009029060005260206000209081019061583e91906158f8565b50565b5080546000825560050290600052602060002090810190615862919061588a565b50565b61588791905b8082111561588357600081600090555060010161586b565b5090565b90565b6158f591905b808211156158f157600080820160006158a991906159a2565b6001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560028201600090556003820160009055600482016000905550600501615890565b5090565b90565b61599f91905b8082111561599b576000808201600061591791906159a2565b60018201600061592791906159a2565b6002820160009055600382016000905560048201600090556005820160009055600682016000905560078201600090556008820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556008820160146101000a81549060ff0219169055506009016158fe565b5090565b90565b50805460018160011615610100020316600290046000825580601f106159c857506159e7565b601f0160209004906000526020600020908101906159e69190615865565b5b505600a165627a7a72305820fb432e692aa1db2c08e7b7a9835ea06a555c3f82f91f6718432fce84c4cfba8f0029

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000008c7d96da59d23b50b9eeefdacf58a5fce62b35b5

-----Decoded View---------------
Arg [0] : _bookerAddress (address): 0x8C7D96DA59D23B50b9eEefdACf58A5fCe62B35b5

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000008c7d96da59d23b50b9eeefdacf58a5fce62b35b5


Swarm Source

bzzr://fb432e692aa1db2c08e7b7a9835ea06a555c3f82f91f6718432fce84c4cfba8f

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.