Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Funded By
Latest 25 from a total of 591 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Destroy And Send | 5534766 | 2823 days ago | IN | 0 ETH | 0.00004297 | ||||
| Withdraw Payment... | 5497365 | 2829 days ago | IN | 0 ETH | 0.00007576 | ||||
| Pay Jackpot | 5495929 | 2829 days ago | IN | 0 ETH | 0.00003789 | ||||
| Withdraw Payment... | 5495584 | 2829 days ago | IN | 0 ETH | 0.00002525 | ||||
| Purchase Kingdom | 5495005 | 2830 days ago | IN | 0.09 ETH | 0.00003235 | ||||
| Purchase Kingdom | 5494566 | 2830 days ago | IN | 0.09 ETH | 0.00003235 | ||||
| Purchase Kingdom | 5494560 | 2830 days ago | IN | 0.09 ETH | 0.00003235 | ||||
| Pay Jackpot | 5494396 | 2830 days ago | IN | 0 ETH | 0.00003783 | ||||
| Pay Jackpot | 5494275 | 2830 days ago | IN | 0 ETH | 0.00003776 | ||||
| Pay Jackpot | 5494240 | 2830 days ago | IN | 0 ETH | 0.00003769 | ||||
| Pay Jackpot | 5494234 | 2830 days ago | IN | 0 ETH | 0.00005166 | ||||
| Purchase Kingdom | 5494215 | 2830 days ago | IN | 0.09 ETH | 0.00003235 | ||||
| Purchase Kingdom | 5494103 | 2830 days ago | IN | 0.09 ETH | 0.00003235 | ||||
| Withdraw Payment... | 5494022 | 2830 days ago | IN | 0 ETH | 0.00002525 | ||||
| Purchase Kingdom | 5494003 | 2830 days ago | IN | 0.09 ETH | 0.00003235 | ||||
| Purchase Kingdom | 5494001 | 2830 days ago | IN | 0.09 ETH | 0.00032103 | ||||
| Purchase Kingdom | 5493993 | 2830 days ago | IN | 0.09 ETH | 0.00016211 | ||||
| Purchase Kingdom | 5493989 | 2830 days ago | IN | 0.09 ETH | 0.00213798 | ||||
| Purchase Kingdom | 5493964 | 2830 days ago | IN | 0.09 ETH | 0.00027195 | ||||
| Purchase Kingdom | 5493940 | 2830 days ago | IN | 0.09 ETH | 0.00028139 | ||||
| Purchase Kingdom | 5493812 | 2830 days ago | IN | 0.09 ETH | 0.00027169 | ||||
| Purchase Kingdom | 5493804 | 2830 days ago | IN | 0.09 ETH | 0.00027169 | ||||
| Withdraw Payment... | 5493719 | 2830 days ago | IN | 0 ETH | 0.00002525 | ||||
| Purchase Kingdom | 5493707 | 2830 days ago | IN | 0.09 ETH | 0.00027307 | ||||
| Purchase Kingdom | 5493681 | 2830 days ago | IN | 0.09 ETH | 0.00028807 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 5534766 | 2823 days ago | 0.346 ETH | ||||
| Transfer | 5497365 | 2829 days ago | 2.619 ETH | ||||
| Transfer | 5495584 | 2829 days ago | 0.255 ETH | ||||
| Transfer | 5494022 | 2830 days ago | 0.12 ETH | ||||
| Transfer | 5493719 | 2830 days ago | 0.12 ETH | ||||
| Transfer | 5493625 | 2830 days ago | 0.02 ETH | ||||
| Transfer | 5492870 | 2830 days ago | 0.08 ETH | ||||
| Transfer | 5487054 | 2831 days ago | 0.02 ETH | ||||
| Transfer | 5482088 | 2832 days ago | 0.08 ETH | ||||
| Transfer | 5482033 | 2832 days ago | 0.04 ETH | ||||
| Transfer | 5481441 | 2832 days ago | 0.02 ETH | ||||
| Transfer | 5479463 | 2832 days ago | 0.04 ETH | ||||
| Transfer | 5479448 | 2832 days ago | 0.06 ETH | ||||
| Transfer | 5478493 | 2832 days ago | 0.04 ETH | ||||
| Transfer | 5478210 | 2832 days ago | 0.12 ETH | ||||
| Transfer | 5478126 | 2832 days ago | 0.1 ETH | ||||
| Transfer | 5477962 | 2833 days ago | 0.04 ETH | ||||
| Transfer | 5477962 | 2833 days ago | 0.06 ETH | ||||
| Transfer | 5477722 | 2833 days ago | 0.08 ETH | ||||
| Transfer | 5477717 | 2833 days ago | 0.04 ETH | ||||
| Transfer | 5477702 | 2833 days ago | 0.1 ETH | ||||
| Transfer | 5476929 | 2833 days ago | 0.08 ETH | ||||
| Transfer | 5476872 | 2833 days ago | 0.04 ETH | ||||
| Transfer | 5476777 | 2833 days ago | 0.04 ETH | ||||
| Transfer | 5476654 | 2833 days ago | 0.1 ETH |
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Self Destruct called at Txn Hash 0x9f3b2528edc36d536d866ed1ba0d0f9b2bbcc5858a6518143d1cc6ec8cdfeae8
Contract Name:
Map
Compiler Version
v0.4.18+commit.9cf6e910
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*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
- No Contract Security Audit Submitted- Submit Audit Here
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"}]Contract Creation Code
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
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
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.