Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Funded By
N/A
Latest 25 from a total of 206 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Destroy And Send | 5574076 | 2817 days ago | IN | 0 ETH | 0.00004311 | ||||
| Force Withdraw P... | 5568899 | 2818 days ago | IN | 0 ETH | 0.00006302 | ||||
| Force Withdraw P... | 5568885 | 2818 days ago | IN | 0 ETH | 0.00008104 | ||||
| Force Withdraw P... | 5568879 | 2818 days ago | IN | 0 ETH | 0.00007095 | ||||
| Force Withdraw P... | 5568877 | 2818 days ago | IN | 0 ETH | 0.00008104 | ||||
| Force Withdraw P... | 5568871 | 2818 days ago | IN | 0 ETH | 0.00008104 | ||||
| Withdraw Payment... | 5568736 | 2818 days ago | IN | 0 ETH | 0.00007596 | ||||
| Withdraw Payment... | 5568613 | 2818 days ago | IN | 0 ETH | 0.00012661 | ||||
| Purchase Kingdom | 5568551 | 2818 days ago | IN | 0.81 ETH | 0.00009476 | ||||
| Set Lock | 5568550 | 2818 days ago | IN | 0.02 ETH | 0.00012837 | ||||
| Set Lock | 5568548 | 2818 days ago | IN | 0.02 ETH | 0.00012837 | ||||
| Set Lock | 5568546 | 2818 days ago | IN | 0.02 ETH | 0.00007554 | ||||
| Purchase Kingdom | 5568546 | 2818 days ago | IN | 0.27 ETH | 0.00083725 | ||||
| Purchase Kingdom | 5568543 | 2818 days ago | IN | 0.09 ETH | 0.00083694 | ||||
| Purchase Kingdom | 5568542 | 2818 days ago | IN | 0.27 ETH | 0.00079225 | ||||
| Purchase Kingdom | 5568538 | 2818 days ago | IN | 0.09 ETH | 0.00101732 | ||||
| Set Lock | 5568485 | 2818 days ago | IN | 0.02 ETH | 0.00012837 | ||||
| Set Lock | 5568484 | 2818 days ago | IN | 0.02 ETH | 0.00012837 | ||||
| Set Lock | 5568475 | 2818 days ago | IN | 0.02 ETH | 0.00012837 | ||||
| Set Lock | 5568475 | 2818 days ago | IN | 0.02 ETH | 0.00012837 | ||||
| Set Lock | 5568473 | 2818 days ago | IN | 0.02 ETH | 0.00012837 | ||||
| Set Lock | 5568470 | 2818 days ago | IN | 0.02 ETH | 0.00017337 | ||||
| Withdraw Payment... | 5568419 | 2818 days ago | IN | 0 ETH | 0.00005064 | ||||
| Withdraw Payment... | 5568315 | 2818 days ago | IN | 0 ETH | 0.00004391 | ||||
| Withdraw Payment... | 5568301 | 2818 days ago | IN | 0 ETH | 0.00004391 |
Latest 14 internal transactions
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 5574076 | 2817 days ago | 4.23 ETH | ||||
| Transfer | 5568899 | 2818 days ago | 0.0375 ETH | ||||
| Transfer | 5568885 | 2818 days ago | 0.525 ETH | ||||
| Transfer | 5568877 | 2818 days ago | 0.3 ETH | ||||
| Transfer | 5568871 | 2818 days ago | 0.0375 ETH | ||||
| Transfer | 5568736 | 2818 days ago | 0.1975 ETH | ||||
| Transfer | 5568613 | 2818 days ago | 0.1125 ETH | ||||
| Transfer | 5568419 | 2818 days ago | 0.0375 ETH | ||||
| Transfer | 5568300 | 2818 days ago | 0.66 ETH | ||||
| Transfer | 5568298 | 2818 days ago | 0.4125 ETH | ||||
| Transfer | 5568152 | 2818 days ago | 0.0375 ETH | ||||
| Transfer | 5568150 | 2818 days ago | 0.1 ETH | ||||
| Transfer | 5568126 | 2818 days ago | 0.175 ETH | ||||
| Transfer | 5565507 | 2818 days ago | 0.0375 ETH |
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Self Destruct called at Txn Hash 0x6a1fdc1abe0c844091ebdbd86a46a0edf687ad7f0a96d6c2ee27eee199ea6ee7
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-30
*/
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 ERC20Basic {
function totalSupply() public view returns (uint256);
function balanceOf(address who) public view returns (uint256);
function transfer(address to, uint256 value) public returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
function resetTimer(string _kingdomKey);
}
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;
uint date;
}
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 RoundPoints {
// mapping(address => uint) points;
// }
struct Round {
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;
mapping(address => uint) scores;
}
Kingdom[] public kingdoms;
Transaction[] public kingdomTransactions;
uint public currentRound;
address public bookerAddress;
mapping(uint => Round) rounds;
mapping(address => uint) lastTransaction;
uint constant public ACTION_TAX = 0.02 ether;
uint constant public STARTING_CLAIM_PRICE_WEI = 0.03 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 checkKingdomCap(address _owner, uint _kingdomType) {
if (_kingdomType == 1) {
require((rounds[currentRound].nbKingdomsType1[_owner] + 1) < 9);
} else if (_kingdomType == 2) {
require((rounds[currentRound].nbKingdomsType2[_owner] + 1) < 9);
} else if (_kingdomType == 3) {
require((rounds[currentRound].nbKingdomsType3[_owner] + 1) < 9);
} else if (_kingdomType == 4) {
require((rounds[currentRound].nbKingdomsType4[_owner] + 1) < 9);
} else if (_kingdomType == 5) {
require((rounds[currentRound].nbKingdomsType5[_owner] + 1) < 9);
}
_;
}
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);
_;
}
// ERC20
address public woodAddress;
ERC20Basic woodInterface;
// ERC20Basic rock;
// ERC20Basic
// EVENTS
event LandCreatedEvent(string kingdomKey, address monarchAddress);
event LandPurchasedEvent(string kingdomKey, address monarchAddress);
//
// CONTRACT CONSTRUCTOR
//
function Map(address _bookerAddress, address _woodAddress, uint _startTime, uint _endTime) {
bookerAddress = _bookerAddress;
woodAddress = _woodAddress;
woodInterface = ERC20Basic(_woodAddress);
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), 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 = _startTime;
rounds[currentRound].endTime = _endTime;
}
function () { }
function setWoodAddress (address _woodAddress) public onlyOwner {
woodAddress = _woodAddress;
woodInterface = ERC20Basic(_woodAddress);
}
function getRemainingKingdoms() public view returns (uint nb) {
for (uint i = 1; i < 8; i++) {
if (now < rounds[currentRound].startTime + (i * 12 hours)) {
uint result = (10 * i);
if (result > 100) {
return 100;
} else {
return result;
}
}
}
}
//
// 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);
}
// woodInterface.resetTimer(_key);
kingdom.kingdomTier++;
kingdom.title = _title;
if (kingdom.kingdomTier == 5) {
kingdom.returnPrice = 0;
kingdom.minimumPrice = 5 ether;
} else if (kingdom.kingdomTier == 2) {
kingdom.returnPrice = 0.1125 ether;
kingdom.minimumPrice = 0.27 ether;
} else if (kingdom.kingdomTier == 3) {
kingdom.returnPrice = 0.3375 ether;
kingdom.minimumPrice = 0.81 ether;
} else if (kingdom.kingdomTier == 4) {
kingdom.returnPrice = 1.0125 ether;
kingdom.minimumPrice = 2.43 ether;
}
kingdom.owner = msg.sender;
kingdom.locked = _locked;
uint transactionId = kingdomTransactions.push(Transaction("", msg.sender, msg.value, 0, jackpotCommission, now)) - 1;
kingdomTransactions[transactionId].kingdomKey = _key;
kingdom.transactionCount++;
kingdom.lastTransaction = transactionId;
lastTransaction[msg.sender] = now;
setNewJackpot(kingdom.kingdomType, jackpotCommission, 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);
}
}
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, now)) - 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(string _key, string _title, uint _type, bool _locked) checkKingdomCap(msg.sender, _type) 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);
Round storage round = rounds[currentRound];
require(round.kingdomsCreated[_key] == false);
uint refundPrice = 0.0375 ether; // (STARTING_CLAIM_PRICE_WEI.mul(125)).div(100);
uint nextMinimumPrice = 0.09 ether; // STARTING_CLAIM_PRICE_WEI.add(STARTING_CLAIM_PRICE_WEI.mul(2));
uint kingdomId = kingdoms.push(Kingdom("", "", 1, 0, 0, 0, 1, refundPrice, address(0), false)) - 1;
kingdoms[kingdomId].kingdomType = _type;
kingdoms[kingdomId].title = _title;
kingdoms[kingdomId].owner = msg.sender;
kingdoms[kingdomId].key = _key;
kingdoms[kingdomId].minimumPrice = nextMinimumPrice;
kingdoms[kingdomId].locked = _locked;
round.kingdomsKeys[_key] = kingdomId;
round.kingdomsCreated[_key] = true;
if(_locked == true) {
asyncSend(bookerAddress, ACTION_TAX);
}
uint transactionId = kingdomTransactions.push(Transaction("", msg.sender, msg.value, 0, basePrice, now)) - 1;
kingdomTransactions[transactionId].kingdomKey = _key;
kingdoms[kingdomId].lastTransaction = transactionId;
lastTransaction[msg.sender] = now;
setNewJackpot(_type, basePrice, 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 payJackpot1() internal checkIsClosed() {
address winner = getWinner(1);
if (rounds[currentRound].jackpot1.balance > 0 && winner != address(0)) {
require(this.balance >= rounds[currentRound].jackpot1.balance);
rounds[currentRound].jackpot1.winner = winner;
uint teamComission = (rounds[currentRound].jackpot1.balance.mul(TEAM_COMMISSION_RATIO)).div(100);
bookerAddress.transfer(teamComission);
uint jackpot = rounds[currentRound].jackpot1.balance.sub(teamComission);
asyncSend(winner, jackpot);
rounds[currentRound].jackpot1.balance = 0;
}
}
function payJackpot2() internal checkIsClosed() {
address winner = getWinner(2);
if (rounds[currentRound].jackpot2.balance > 0 && winner != address(0)) {
require(this.balance >= rounds[currentRound].jackpot2.balance);
rounds[currentRound].jackpot2.winner = winner;
uint teamComission = (rounds[currentRound].jackpot2.balance.mul(TEAM_COMMISSION_RATIO)).div(100);
bookerAddress.transfer(teamComission);
uint jackpot = rounds[currentRound].jackpot2.balance.sub(teamComission);
asyncSend(winner, jackpot);
rounds[currentRound].jackpot2.balance = 0;
}
}
function payJackpot3() internal checkIsClosed() {
address winner = getWinner(3);
if (rounds[currentRound].jackpot3.balance > 0 && winner != address(0)) {
require(this.balance >= rounds[currentRound].jackpot3.balance);
rounds[currentRound].jackpot3.winner = winner;
uint teamComission = (rounds[currentRound].jackpot3.balance.mul(TEAM_COMMISSION_RATIO)).div(100);
bookerAddress.transfer(teamComission);
uint jackpot = rounds[currentRound].jackpot3.balance.sub(teamComission);
asyncSend(winner, jackpot);
rounds[currentRound].jackpot3.balance = 0;
}
}
function payJackpot4() internal checkIsClosed() {
address winner = getWinner(4);
if (rounds[currentRound].jackpot4.balance > 0 && winner != address(0)) {
require(this.balance >= rounds[currentRound].jackpot4.balance);
rounds[currentRound].jackpot4.winner = winner;
uint teamComission = (rounds[currentRound].jackpot4.balance.mul(TEAM_COMMISSION_RATIO)).div(100);
bookerAddress.transfer(teamComission);
uint jackpot = rounds[currentRound].jackpot4.balance.sub(teamComission);
asyncSend(winner, jackpot);
rounds[currentRound].jackpot4.balance = 0;
}
}
function payJackpot5() internal checkIsClosed() {
address winner = getWinner(5);
if (rounds[currentRound].jackpot5.balance > 0 && winner != address(0)) {
require(this.balance >= rounds[currentRound].jackpot5.balance);
rounds[currentRound].jackpot5.winner = winner;
uint teamComission = (rounds[currentRound].jackpot5.balance.mul(TEAM_COMMISSION_RATIO)).div(100);
bookerAddress.transfer(teamComission);
uint jackpot = rounds[currentRound].jackpot5.balance.sub(teamComission);
asyncSend(winner, jackpot);
rounds[currentRound].jackpot5.balance = 0;
}
}
//
// After time expiration, owner can call this function to activate the next round of the game
//
function activateNextRound(uint _startTime) public checkIsClosed() {
payJackpot1();
payJackpot2();
payJackpot3();
payJackpot4();
payJackpot5();
currentRound++;
rounds[currentRound] = Round(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 getKingdomCount() public view returns (uint kingdomCount) {
return kingdoms.length;
}
function getJackpot(uint _nb) public view returns (address winner, uint balance) {
if (_nb == 1) {
return (getWinner(1), rounds[currentRound].jackpot1.balance);
} else if (_nb == 2) {
return (getWinner(2), rounds[currentRound].jackpot2.balance);
} else if (_nb == 3) {
return (getWinner(3), rounds[currentRound].jackpot3.balance);
} else if (_nb == 4) {
return (getWinner(4), rounds[currentRound].jackpot4.balance);
} else if (_nb == 5) {
return (getWinner(5), rounds[currentRound].jackpot5.balance);
}
}
function getKingdomType(string _kingdomKey) public view returns (uint kingdomType) {
return kingdoms[rounds[currentRound].kingdomsKeys[_kingdomKey]].kingdomType;
}
function getKingdomOwner(string _kingdomKey) public view returns (address owner) {
return kingdoms[rounds[currentRound].kingdomsKeys[_kingdomKey]].owner;
}
function getKingdomInformations(string _kingdomKey) public view returns (string title, uint minimumPrice, uint lastTransaction, uint transactionCount, address currentOwner, uint kingdomType, 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.kingdomType, kingdom.locked);
}
// function upgradeTier(string _key) public {
// // require(now < rounds[currentRound].endTime);
// Round storage round = rounds[currentRound];
// uint kingdomId = round.kingdomsKeys[_key];
// Kingdom storage kingdom = kingdoms[kingdomId];
// uint wood = woodInterface.balanceOf(kingdom.owner);
// require(wood >= 1);
// kingdom.kingdomTier++;
// }
function getWinner(uint _type) public returns (address winner) {
require(_type > 0);
require(_type < 6);
address addr;
uint maxPoints = 0;
Round storage round = rounds[currentRound];
for (uint index = 0; index < kingdoms.length; index++) {
if (_type == kingdoms[index].kingdomType) {
address userAddress = kingdoms[index].owner;
if(kingdoms[index].kingdomTier == 1) {
round.scores[msg.sender] = round.scores[msg.sender] + 1;
} else if(kingdoms[index].kingdomTier == 2) {
round.scores[msg.sender] = round.scores[msg.sender] + 3;
} else if (kingdoms[index].kingdomTier == 3) {
round.scores[msg.sender] = round.scores[msg.sender] + 5;
} else if (kingdoms[index].kingdomTier == 4) {
round.scores[msg.sender] = round.scores[msg.sender] + 8;
} else if (kingdoms[index].kingdomTier == 5) {
round.scores[msg.sender] = round.scores[msg.sender] + 13;
}
if(round.scores[msg.sender] == maxPoints) {
if(lastTransaction[userAddress] < lastTransaction[winner]) {
addr = userAddress;
}
} else if (round.scores[msg.sender] > maxPoints) {
maxPoints = round.scores[msg.sender];
addr = userAddress;
}
}
}
return addr;
}
}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":"_kingdomKey","type":"string"}],"name":"getKingdomType","outputs":[{"name":"kingdomType","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_type","type":"uint256"}],"name":"getWinner","outputs":[{"name":"winner","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_kingdomKey","type":"string"}],"name":"getKingdomOwner","outputs":[{"name":"owner","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":false,"inputs":[{"name":"_woodAddress","type":"address"}],"name":"setWoodAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_nb","type":"uint256"}],"name":"getJackpot","outputs":[{"name":"winner","type":"address"},{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","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":true,"inputs":[],"name":"woodAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","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"},{"name":"date","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"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":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":"kingdomType","type":"uint256"},{"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"},{"name":"_woodAddress","type":"address"},{"name":"_startTime","type":"uint256"},{"name":"_endTime","type":"uint256"}],"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
60606040526000600260146101000a81548160ff021916908315150217905550341561002a57600080fd5b60405160808062005e048339810160405280805190602001909190805190602001909190805190602001909190805190602001909190505033600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160058190555060e0604051908101604052806040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525081526020016040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525081526020016040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525081526020016040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525081526020016040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815250815260200160008152602001600081525060076000600554815260200190815260200160002060008201518160000160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505060208201518160020160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505060408201518160040160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505060608201518160060160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505060808201518160080160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505060a0820151816012015560c082015181601301559050506040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525060076000600554815260200190815260200160002060000160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101559050506040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525060076000600554815260200190815260200160002060020160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101559050506040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525060076000600554815260200190815260200160002060040160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101559050506040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525060076000600554815260200190815260200160002060060160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101559050506040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525060076000600554815260200190815260200160002060080160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155905050816007600060055481526020019081526020016000206012018190555080600760006005548152602001908152602001600020601301819055505050505061564180620007c36000396000f30060606040526004361061017f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680625b44871461018c5780630203596d146101b557806308cad05c14610255578063228ce144146102aa5780634129b2c91461031b578063434d185c1461037e578063439f5ac21461041b578063453dc243146104445780634ce4f9271461047d5780635d760b45146104e75780636103d70b146105205780636e5390d214610535578063765207131461058a5780637720295a146105e757806383197ef01461061057806384c615e2146106255780638a19c8bc146106ed5780638da5cb5b146107165780638e4060721461076b5780639133210a14610794578063981ae4011461093e578063c828371e14610967578063ca907e7914610990578063ccce645814610a98578063d2bf779f14610b41578063d9d8453114610c71578063e2982c2114610c9a578063f2fde38b14610ce7578063f5074f4114610d20578063fa4125f714610d59575b341561018a57600080fd5b005b341561019757600080fd5b61019f610d7c565b6040518082815260200191505060405180910390f35b610253600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919080351515906020019091905050610d82565b005b341561026057600080fd5b6102686117a2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156102b557600080fd5b610305600480803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506117c8565b6040518082815260200191505060405180910390f35b341561032657600080fd5b61033c6004808035906020019091905050611873565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561038957600080fd5b6103d9600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611e4e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561042657600080fd5b61042e611f19565b6040518082815260200191505060405180910390f35b341561044f57600080fd5b61047b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611f39565b005b341561048857600080fd5b61049e600480803590602001909190505061201a565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b34156104f257600080fd5b61051e600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061213b565b005b341561052b57600080fd5b6105336122b0565b005b341561054057600080fd5b6105486123cd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105e5600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803515159060200190919050506123f3565b005b34156105f257600080fd5b6105fa6126ac565b6040518082815260200191505060405180910390f35b341561061b57600080fd5b6106236126b7565b005b341561063057600080fd5b6106eb600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001909190505061274e565b005b34156106f857600080fd5b610700612dd0565b6040518082815260200191505060405180910390f35b341561072157600080fd5b610729612dd6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561077657600080fd5b61077e612dfc565b6040518082815260200191505060405180910390f35b341561079f57600080fd5b6107b56004808035906020019091905050612e09565b6040518080602001806020018b81526020018a81526020018981526020018881526020018781526020018681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018415151515815260200183810383528d8181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156108a25780601f10610877576101008083540402835291602001916108a2565b820191906000526020600020905b81548152906001019060200180831161088557829003601f168201915b505083810382528c8181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156109255780601f106108fa57610100808354040283529160200191610925565b820191906000526020600020905b81548152906001019060200180831161090857829003601f168201915b50509c5050505050505050505050505060405180910390f35b341561094957600080fd5b610951612e97565b6040518082815260200191505060405180910390f35b341561097257600080fd5b61097a612ea2565b6040518082815260200191505060405180910390f35b341561099b57600080fd5b6109b16004808035906020019091905050612ec2565b60405180806020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001868152602001858152602001848152602001838152602001828103825288818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015610a845780601f10610a5957610100808354040283529160200191610a84565b820191906000526020600020905b815481529060010190602001808311610a6757829003601f168201915b505097505050505050505060405180910390f35b610b3f600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919080359060200190919080351515906020019091905050612f2c565b005b3415610b4c57600080fd5b610b9c600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050613997565b60405180806020018881526020018781526020018681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183151515158152602001828103825289818151815260200191508051906020019080838360005b83811015610c30578082015181840152602081019050610c15565b50505050905090810190601f168015610c5d5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b3415610c7c57600080fd5b610c84613b54565b6040518082815260200191505060405180910390f35b3415610ca557600080fd5b610cd1600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613bc0565b6040518082815260200191505060405180910390f35b3415610cf257600080fd5b610d1e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613bd8565b005b3415610d2b57600080fd5b610d57600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613d30565b005b3415610d6457600080fd5b610d7a6004808035906020019091905050613da5565b005b60015481565b600080600080600080600260149054906101000a900460ff16151515610da757600080fd5b6001600260146101000a81548160ff0219169083151502179055508860011515600760006005548152602001908152602001600020600a01826040518082805190602001908083835b602083101515610e155780518252602082019150602081019050602083039250610df0565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900460ff161515141515610e6457600080fd5b89600115156003600760006005548152602001908152602001600020601401836040518082805190602001908083835b602083101515610eb95780518252602082019150602081019050602083039250610e94565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902054815481101515610ef957fe5b906000526020600020906009020160080160149054906101000a900460ff16151514151515610f2757600080fd5b6007600060055481526020019081526020016000206013015442101515610f4d57600080fd5b6007600060055481526020019081526020016000209750876014018b6040518082805190602001908083835b602083101515610f9e5780518252602082019150602081019050602083039250610f79565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020549650600387815481101515610fe357fe5b906000526020600020906009020195506006600187600201540110151561100957600080fd5b8560040154945060011515891515141561103a5761103766470de4df8200008661416e90919063ffffffff16565b94505b84341015151561104957600080fd5b61106086600701543461418c90919063ffffffff16565b93506000866007015411156113a05787600b0160008760080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060019003919050555060018660030154141561116d5787600d0160008760080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060019003919050555061138d565b6002866003015414156111f55787600e0160008760080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060019003919050555061138c565b60038660030154141561127d5787600f0160008760080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060019003919050555061138b565b600486600301541415611305578760100160008760080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060019003919050555061138a565b600586600301541415611389578760110160008760080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001900391905055505b5b5b5b5b61139f866005015487600701546141a5565b5b8560020160008154809291906001019190505550898660000190805190602001906113cc9291906152c8565b506005866002015414156113fa5760008660070181905550674563918244f400008660040181905550611495565b60028660020154141561142e5767018fae27693b400086600701819055506703bf3b91c95b00008660040181905550611494565b600386600201541415611462576704af0a763bb1c0008660070181905550670b3db2b55c1100008660040181905550611493565b60048660020154141561149257670e0d1f62b315400086600701819055506721b918201433000086600401819055505b5b5b5b338660080160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550888660080160146101000a81548160ff02191690831515021790555060016004805480600101828161150a9190615348565b9160005260206000209060060201600060c060405190810160405280602060405190810160405280600081525081526020013373ffffffffffffffffffffffffffffffffffffffff16815260200134815260200160008152602001898152602001428152509091909150600082015181600001908051906020019061159092919061537a565b5060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020155606082015181600301556080820151816004015560a0820151816005015550500392508a60048481548110151561161557fe5b906000526020600020906006020160000190805190602001906116399291906152c8565b50856006016000815480929190600101919050555082866005018190555042600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506116aa8660030154853361421e565b7f33ad373ff55ff0131d5dc1caa21daa4a081eb0707eb9efe075d2200bd2eecf438b3360405180806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561173f578082015181840152602081019050611724565b50505050905090810190601f16801561176c5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a150506000600260146101000a81548160ff021916908315150217905550505050505050505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006003600760006005548152602001908152602001600020601401836040518082805190602001908083835b60208310151561181a57805182526020820191506020810190506020830392506117f5565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390205481548110151561185a57fe5b9060005260206000209060090201600301549050919050565b60008060008060008060008711151561188b57600080fd5b60068710151561189a57600080fd5b600093506007600060055481526020019081526020016000209250600091505b600380549050821015611e41576003828154811015156118d657fe5b906000526020600020906009020160030154871415611e34576003828154811015156118fe57fe5b906000526020600020906009020160080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600160038381548110151561194357fe5b90600052602060002090600902016002015414156119ea5760018360150160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054018360150160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611cc9565b60026003838154811015156119fb57fe5b9060005260206000209060090201600201541415611aa25760038360150160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054018360150160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611cc8565b60038083815481101515611ab257fe5b9060005260206000209060090201600201541415611b595760058360150160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054018360150160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611cc7565b6004600383815481101515611b6a57fe5b9060005260206000209060090201600201541415611c115760088360150160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054018360150160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611cc6565b6005600383815481101515611c2257fe5b9060005260206000209060090201600201541415611cc557600d8360150160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054018360150160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5b5b5b838360150160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415611da157600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611d9c578094505b611e33565b838360150160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611e32578260150160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205493508094505b5b5b81806001019250506118ba565b8495505050505050919050565b60006003600760006005548152602001908152602001600020601401836040518082805190602001908083835b602083101515611ea05780518252602082019150602081019050602083039250611e7b565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902054815481101515611ee057fe5b906000526020600020906009020160080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600060076000600554815260200190815260200160002060130154905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f9557600080fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000806001831415612055576120306001611873565b6007600060055481526020019081526020016000206000016001015491509150612136565b600283141561208d576120686002611873565b6007600060055481526020019081526020016000206002016001015491509150612136565b60038314156120c5576120a06003611873565b6007600060055481526020019081526020016000206004016001015491509150612136565b60048314156120fd576120d86004611873565b6007600060055481526020019081526020016000206006016001015491509150612136565b6005831415612135576121106005611873565b6007600060055481526020019081526020016000206008016001015491509150612136565b5b915091565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561219957600080fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081141515156121ea57600080fd5b803073ffffffffffffffffffffffffffffffffffffffff16311015151561221057600080fd5b6122258160015461418c90919063ffffffff16565b60018190555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156122ac57fe5b5050565b6000803391506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811415151561230757600080fd5b803073ffffffffffffffffffffffffffffffffffffffff16311015151561232d57600080fd5b6123428160015461418c90919063ffffffff16565b60018190555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156123c957fe5b5050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b8160011515600760006005548152602001908152602001600020600a01826040518082805190602001908083835b6020831015156124465780518252602082019150602081019050602083039250612421565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900460ff16151514151561249557600080fd5b82338073ffffffffffffffffffffffffffffffffffffffff166003600760006005548152602001908152602001600020601401846040518082805190602001908083835b6020831015156124fe57805182526020820191506020810190506020830392506124d9565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390205481548110151561253e57fe5b906000526020600020906009020160080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561259257600080fd5b6001151584151514156125b65766470de4df82000034101515156125b557600080fd5b5b836003600760006005548152602001908152602001600020601401876040518082805190602001908083835b60208310151561260757805182526020820191506020810190506020830392506125e2565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390205481548110151561264757fe5b906000526020600020906009020160080160146101000a81548160ff02191690831515021790555060003411156126a5576126a4600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16346146ad565b5b5050505050565b666a94d74f43000081565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561271357600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156127ad57600080fd5b6000831115156127bc57600080fd5b6006831015156127cb57600080fd5b60001515600760006005548152602001908152602001600020600a01866040518082805190602001908083835b60208310151561281d57805182526020820191506020810190506020830392506127f8565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900460ff16151514151561286c57600080fd5b60016003805480600101828161288291906153fa565b916000526020600020906009020160006101406040519081016040528060206040519081016040528060008152508152602001602060405190810160405280600081525081526020016001815260200188815260200160008152602001600081526020016001815260200166470de4df8200008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600015158152509091909150600082015181600001908051906020019061293f92919061537a565b50602082015181600101908051906020019061295c92919061537a565b5060408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e082015181600701556101008201518160080160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101208201518160080160146101000a81548160ff021916908315150217905550505003915083600383815481101515612a1757fe5b90600052602060002090600902016000019080519060200190612a3b9291906152c8565b5085600383815481101515612a4c57fe5b906000526020600020906009020160080160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600383815481101515612aab57fe5b90600052602060002090600902016001019080519060200190612acf9291906152c8565b50666a94d74f430000600383815481101515612ae757fe5b9060005260206000209060090201600401819055506000600383815481101515612b0d57fe5b906000526020600020906009020160080160146101000a81548160ff02191690831515021790555081600760006005548152602001908152602001600020601401866040518082805190602001908083835b602083101515612b845780518252602082019150602081019050602083039250612b5f565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020819055506001600760006005548152602001908152602001600020600a01866040518082805190602001908083835b602083101515612c0b5780518252602082019150602081019050602083039250612be6565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff021916908315150217905550600160048054806001018281612c6b9190615348565b9160005260206000209060060201600060c060405190810160405280602060405190810160405280600081525081526020013373ffffffffffffffffffffffffffffffffffffffff168152602001662386f26fc10000815260200160008152602001600081526020014281525090919091506000820151816000019080519060200190612cf992919061537a565b5060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020155606082015181600301556080820151816004015560a08201518160050155505003905084600482815481101515612d7e57fe5b90600052602060002090600602016000019080519060200190612da29291906152c8565b5080600383815481101515612db357fe5b906000526020600020906009020160050181905550505050505050565b60055481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600380549050905090565b600381815481101515612e1857fe5b9060005260206000209060090201600091509050806000019080600101908060020154908060030154908060040154908060050154908060060154908060070154908060080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060080160149054906101000a900460ff1690508a565b66470de4df82000081565b600060076000600554815260200190815260200160002060120154905090565b600481815481101515612ed157fe5b906000526020600020906006020160009150905080600001908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154908060030154908060040154908060050154905086565b600080600080600080600033896001811415612fae5760096001600760006005548152602001908152602001600020600d0160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401101515612fa957600080fd5b613182565b60028114156130235760096001600760006005548152602001908152602001600020600e0160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540110151561301e57600080fd5b613181565b60038114156130985760096001600760006005548152602001908152602001600020600f0160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540110151561309357600080fd5b613180565b600481141561310d576009600160076000600554815260200190815260200160002060100160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540110151561310857600080fd5b61317f565b600581141561317e576009600160076000600554815260200190815260200160002060110160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540110151561317d57600080fd5b5b5b5b5b5b600061318c613b54565b9050600380549050811115156131a157600080fd5b60076000600554815260200190815260200160002060130154421015156131c757600080fd5b60008c1115156131d657600080fd5b60068c1015156131e557600080fd5b666a94d74f4300009950899850600115158b1515141561321c5761321966470de4df8200008a61416e90919063ffffffff16565b98505b88341015151561322b57600080fd5b60076000600554815260200190815260200160002097506000151588600a018f6040518082805190602001908083835b602083101515613280578051825260208201915060208101905060208303925061325b565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900460ff1615151415156132cf57600080fd5b66853a0d2313c000965067013fbe85edc9000095506001600380548060010182816132fa91906153fa565b9160005260206000209060090201600061014060405190810160405280602060405190810160405280600081525081526020016020604051908101604052806000815250815260200160018152602001600081526020016000815260200160008152602001600181526020018c8152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160001515815250909190915060008201518160000190805190602001906133b192919061537a565b5060208201518160010190805190602001906133ce92919061537a565b5060408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e082015181600701556101008201518160080160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101208201518160080160146101000a81548160ff02191690831515021790555050500394508b60038681548110151561348957fe5b9060005260206000209060090201600301819055508c6003868154811015156134ae57fe5b906000526020600020906009020160000190805190602001906134d29291906152c8565b50336003868154811015156134e357fe5b906000526020600020906009020160080160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508d60038681548110151561354257fe5b906000526020600020906009020160010190805190602001906135669291906152c8565b508560038681548110151561357757fe5b9060005260206000209060090201600401819055508a60038681548110151561359c57fe5b906000526020600020906009020160080160146101000a81548160ff02191690831515021790555084886014018f6040518082805190602001908083835b6020831015156135ff57805182526020820191506020810190506020830392506135da565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902081905550600188600a018f6040518082805190602001908083835b602083101515613672578051825260208201915060208101905060208303925061364d565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff021916908315150217905550600115158b151514156136fd576136fc600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1666470de4df8200006146ad565b5b6001600480548060010182816137139190615348565b9160005260206000209060060201600060c060405190810160405280602060405190810160405280600081525081526020013373ffffffffffffffffffffffffffffffffffffffff168152602001348152602001600081526020018f8152602001428152509091909150600082015181600001908051906020019061379992919061537a565b5060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020155606082015181600301556080820151816004015560a0820151816005015550500393508d60048581548110151561381e57fe5b906000526020600020906006020160000190805190602001906138429291906152c8565b508360038681548110151561385357fe5b90600052602060002090600902016005018190555042600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506138b78c8b3361421e565b7f28852447a61cd7468288ee09e688ab82ac6561117c6abc695290ade7479086a18e3360405180806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561394c578082015181840152602081019050613931565b50505050905090810190601f1680156139795780820380516001836020036101000a031916815260200191505b50935050505060405180910390a15050505050505050505050505050565b61399f61542c565b6000806000806000806000806007600060055481526020019081526020016000206014018a6040518082805190602001908083835b6020831015156139f957805182526020820191506020810190506020830392506139d4565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020549150600382815481101515613a3e57fe5b90600052602060002090600902019050806000018160040154826005015483600601548460080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685600301548660080160149054906101000a900460ff16868054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613b325780601f10613b0757610100808354040283529160200191613b32565b820191906000526020600020905b815481529060010190602001808311613b1557829003601f168201915b5050505050965098509850985098509850985098505050919395979092949650565b6000806000600191505b6008821015613bba5761a8c082026007600060055481526020019081526020016000206012015401421015613bad5781600a0290506064811115613ba55760649250613bbb565b809250613bbb565b8180600101925050613b5e565b5b505090565b60006020528060005260406000206000915090505481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613c3457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515613c7057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613d8c57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16ff5b600760006005548152602001908152602001600020601301544210151515613dcc57600080fd5b613dd461475f565b613ddc614996565b613de4614bcd565b613dec614e04565b613df461503b565b60056000815480929190600101919050555060e0604051908101604052806040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525081526020016040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525081526020016040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525081526020016040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525081526020016040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815250815260200160008152602001600081525060076000600554815260200190815260200160002060008201518160000160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505060208201518160020160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505060408201518160040160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505060608201518160060160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505060808201518160080160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505060a0820151816012015560c08201518160130155905050806007600060055481526020019081526020016000206012018190555062093a808101600760006005548152602001908152602001600020601301819055506003600061415d9190615440565b6004600061416b9190615464565b50565b600080828401905083811015151561418257fe5b8091505092915050565b600082821115151561419a57fe5b818303905092915050565b60006004838154811015156141b657fe5b906000526020600020906006020160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816004848154811015156141fa57fe5b90600052602060002090600602016003018190555061421981836146ad565b505050565b600760006005548152602001908152602001600020600c0160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550600760006005548152602001908152602001600020600b0160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050555060018314156143a857600760006005548152602001908152602001600020600d0160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550614384826007600060055481526020019081526020016000206000016001015461416e90919063ffffffff16565b600760006005548152602001908152602001600020600001600101819055506146a8565b600283141561446857600760006005548152602001908152602001600020600e0160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550614444826007600060055481526020019081526020016000206002016001015461416e90919063ffffffff16565b600760006005548152602001908152602001600020600201600101819055506146a7565b600383141561452857600760006005548152602001908152602001600020600f0160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550614504826007600060055481526020019081526020016000206004016001015461416e90919063ffffffff16565b600760006005548152602001908152602001600020600401600101819055506146a6565b60048314156145e85760076000600554815260200190815260200160002060100160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060010191905055506145c4826007600060055481526020019081526020016000206006016001015461416e90919063ffffffff16565b600760006005548152602001908152602001600020600601600101819055506146a5565b60058314156146a45760076000600554815260200190815260200160002060110160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550614684826007600060055481526020019081526020016000206008016001015461416e90919063ffffffff16565b600760006005548152602001908152602001600020600801600101819055505b5b5b5b5b505050565b6146fe816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461416e90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506147558160015461416e90919063ffffffff16565b6001819055505050565b600080600060076000600554815260200190815260200160002060130154421015151561478b57600080fd5b6147956001611873565b92506000600760006005548152602001908152602001600020600001600101541180156147ef5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561499157600760006005548152602001908152602001600020600001600101543073ffffffffffffffffffffffffffffffffffffffff16311015151561483557600080fd5b8260076000600554815260200190815260200160002060000160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506148d160646148c3600a6007600060055481526020019081526020016000206000016001015461527290919063ffffffff16565b6152ad90919063ffffffff16565b9150600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050151561493557600080fd5b614963826007600060055481526020019081526020016000206000016001015461418c90919063ffffffff16565b905061496f83826146ad565b6000600760006005548152602001908152602001600020600001600101819055505b505050565b60008060006007600060055481526020019081526020016000206013015442101515156149c257600080fd5b6149cc6002611873565b9250600060076000600554815260200190815260200160002060020160010154118015614a265750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15614bc857600760006005548152602001908152602001600020600201600101543073ffffffffffffffffffffffffffffffffffffffff163110151515614a6c57600080fd5b8260076000600554815260200190815260200160002060020160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550614b086064614afa600a6007600060055481526020019081526020016000206002016001015461527290919063ffffffff16565b6152ad90919063ffffffff16565b9150600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501515614b6c57600080fd5b614b9a826007600060055481526020019081526020016000206002016001015461418c90919063ffffffff16565b9050614ba683826146ad565b6000600760006005548152602001908152602001600020600201600101819055505b505050565b6000806000600760006005548152602001908152602001600020601301544210151515614bf957600080fd5b614c036003611873565b9250600060076000600554815260200190815260200160002060040160010154118015614c5d5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15614dff57600760006005548152602001908152602001600020600401600101543073ffffffffffffffffffffffffffffffffffffffff163110151515614ca357600080fd5b8260076000600554815260200190815260200160002060040160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550614d3f6064614d31600a6007600060055481526020019081526020016000206004016001015461527290919063ffffffff16565b6152ad90919063ffffffff16565b9150600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501515614da357600080fd5b614dd1826007600060055481526020019081526020016000206004016001015461418c90919063ffffffff16565b9050614ddd83826146ad565b6000600760006005548152602001908152602001600020600401600101819055505b505050565b6000806000600760006005548152602001908152602001600020601301544210151515614e3057600080fd5b614e3a6004611873565b9250600060076000600554815260200190815260200160002060060160010154118015614e945750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561503657600760006005548152602001908152602001600020600601600101543073ffffffffffffffffffffffffffffffffffffffff163110151515614eda57600080fd5b8260076000600554815260200190815260200160002060060160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550614f766064614f68600a6007600060055481526020019081526020016000206006016001015461527290919063ffffffff16565b6152ad90919063ffffffff16565b9150600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501515614fda57600080fd5b615008826007600060055481526020019081526020016000206006016001015461418c90919063ffffffff16565b905061501483826146ad565b6000600760006005548152602001908152602001600020600601600101819055505b505050565b600080600060076000600554815260200190815260200160002060130154421015151561506757600080fd5b6150716005611873565b92506000600760006005548152602001908152602001600020600801600101541180156150cb5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561526d57600760006005548152602001908152602001600020600801600101543073ffffffffffffffffffffffffffffffffffffffff16311015151561511157600080fd5b8260076000600554815260200190815260200160002060080160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506151ad606461519f600a6007600060055481526020019081526020016000206008016001015461527290919063ffffffff16565b6152ad90919063ffffffff16565b9150600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050151561521157600080fd5b61523f826007600060055481526020019081526020016000206008016001015461418c90919063ffffffff16565b905061524b83826146ad565b6000600760006005548152602001908152602001600020600801600101819055505b505050565b600080600084141561528757600091506152a6565b828402905082848281151561529857fe5b041415156152a257fe5b8091505b5092915050565b60008082848115156152bb57fe5b0490508091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061530957805160ff1916838001178555615337565b82800160010185558215615337579182015b8281111561533657825182559160200191906001019061531b565b5b5090506153449190615488565b5090565b8154818355818115116153755760060281600602836000526020600020918201910161537491906154ad565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106153bb57805160ff19168380011785556153e9565b828001600101855582156153e9579182015b828111156153e85782518255916020019190600101906153cd565b5b5090506153f69190615488565b5090565b815481835581811511615427576009028160090283600052602060002091820191016154269190615523565b5b505050565b602060405190810160405280600081525090565b50805460008255600902906000526020600020908101906154619190615523565b50565b508054600082556006029060005260206000209081019061548591906154ad565b50565b6154aa91905b808211156154a657600081600090555060010161548e565b5090565b90565b61552091905b8082111561551c57600080820160006154cc91906155cd565b6001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556002820160009055600382016000905560048201600090556005820160009055506006016154b3565b5090565b90565b6155ca91905b808211156155c6576000808201600061554291906155cd565b60018201600061555291906155cd565b6002820160009055600382016000905560048201600090556005820160009055600682016000905560078201600090556008820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556008820160146101000a81549060ff021916905550600901615529565b5090565b90565b50805460018160011615610100020316600290046000825580601f106155f35750615612565b601f0160209004906000526020600020908101906156119190615488565b5b505600a165627a7a723058200e471c605bbbcd96fee611a3461addb1d35e79e0cccdfcdcf30ef10499c92f560029000000000000000000000000e867c7f9dae26439c62c5ce9e3659da98d0cdca10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005ae81e80000000000000000000000000000000000000000000000000000000005aef7adf
Deployed Bytecode
0x60606040526004361061017f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680625b44871461018c5780630203596d146101b557806308cad05c14610255578063228ce144146102aa5780634129b2c91461031b578063434d185c1461037e578063439f5ac21461041b578063453dc243146104445780634ce4f9271461047d5780635d760b45146104e75780636103d70b146105205780636e5390d214610535578063765207131461058a5780637720295a146105e757806383197ef01461061057806384c615e2146106255780638a19c8bc146106ed5780638da5cb5b146107165780638e4060721461076b5780639133210a14610794578063981ae4011461093e578063c828371e14610967578063ca907e7914610990578063ccce645814610a98578063d2bf779f14610b41578063d9d8453114610c71578063e2982c2114610c9a578063f2fde38b14610ce7578063f5074f4114610d20578063fa4125f714610d59575b341561018a57600080fd5b005b341561019757600080fd5b61019f610d7c565b6040518082815260200191505060405180910390f35b610253600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919080351515906020019091905050610d82565b005b341561026057600080fd5b6102686117a2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156102b557600080fd5b610305600480803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506117c8565b6040518082815260200191505060405180910390f35b341561032657600080fd5b61033c6004808035906020019091905050611873565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561038957600080fd5b6103d9600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611e4e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561042657600080fd5b61042e611f19565b6040518082815260200191505060405180910390f35b341561044f57600080fd5b61047b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611f39565b005b341561048857600080fd5b61049e600480803590602001909190505061201a565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b34156104f257600080fd5b61051e600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061213b565b005b341561052b57600080fd5b6105336122b0565b005b341561054057600080fd5b6105486123cd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105e5600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803515159060200190919050506123f3565b005b34156105f257600080fd5b6105fa6126ac565b6040518082815260200191505060405180910390f35b341561061b57600080fd5b6106236126b7565b005b341561063057600080fd5b6106eb600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001909190505061274e565b005b34156106f857600080fd5b610700612dd0565b6040518082815260200191505060405180910390f35b341561072157600080fd5b610729612dd6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561077657600080fd5b61077e612dfc565b6040518082815260200191505060405180910390f35b341561079f57600080fd5b6107b56004808035906020019091905050612e09565b6040518080602001806020018b81526020018a81526020018981526020018881526020018781526020018681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018415151515815260200183810383528d8181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156108a25780601f10610877576101008083540402835291602001916108a2565b820191906000526020600020905b81548152906001019060200180831161088557829003601f168201915b505083810382528c8181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156109255780601f106108fa57610100808354040283529160200191610925565b820191906000526020600020905b81548152906001019060200180831161090857829003601f168201915b50509c5050505050505050505050505060405180910390f35b341561094957600080fd5b610951612e97565b6040518082815260200191505060405180910390f35b341561097257600080fd5b61097a612ea2565b6040518082815260200191505060405180910390f35b341561099b57600080fd5b6109b16004808035906020019091905050612ec2565b60405180806020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001868152602001858152602001848152602001838152602001828103825288818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015610a845780601f10610a5957610100808354040283529160200191610a84565b820191906000526020600020905b815481529060010190602001808311610a6757829003601f168201915b505097505050505050505060405180910390f35b610b3f600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919080359060200190919080351515906020019091905050612f2c565b005b3415610b4c57600080fd5b610b9c600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050613997565b60405180806020018881526020018781526020018681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183151515158152602001828103825289818151815260200191508051906020019080838360005b83811015610c30578082015181840152602081019050610c15565b50505050905090810190601f168015610c5d5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b3415610c7c57600080fd5b610c84613b54565b6040518082815260200191505060405180910390f35b3415610ca557600080fd5b610cd1600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613bc0565b6040518082815260200191505060405180910390f35b3415610cf257600080fd5b610d1e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613bd8565b005b3415610d2b57600080fd5b610d57600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613d30565b005b3415610d6457600080fd5b610d7a6004808035906020019091905050613da5565b005b60015481565b600080600080600080600260149054906101000a900460ff16151515610da757600080fd5b6001600260146101000a81548160ff0219169083151502179055508860011515600760006005548152602001908152602001600020600a01826040518082805190602001908083835b602083101515610e155780518252602082019150602081019050602083039250610df0565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900460ff161515141515610e6457600080fd5b89600115156003600760006005548152602001908152602001600020601401836040518082805190602001908083835b602083101515610eb95780518252602082019150602081019050602083039250610e94565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902054815481101515610ef957fe5b906000526020600020906009020160080160149054906101000a900460ff16151514151515610f2757600080fd5b6007600060055481526020019081526020016000206013015442101515610f4d57600080fd5b6007600060055481526020019081526020016000209750876014018b6040518082805190602001908083835b602083101515610f9e5780518252602082019150602081019050602083039250610f79565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020549650600387815481101515610fe357fe5b906000526020600020906009020195506006600187600201540110151561100957600080fd5b8560040154945060011515891515141561103a5761103766470de4df8200008661416e90919063ffffffff16565b94505b84341015151561104957600080fd5b61106086600701543461418c90919063ffffffff16565b93506000866007015411156113a05787600b0160008760080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060019003919050555060018660030154141561116d5787600d0160008760080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060019003919050555061138d565b6002866003015414156111f55787600e0160008760080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060019003919050555061138c565b60038660030154141561127d5787600f0160008760080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060019003919050555061138b565b600486600301541415611305578760100160008760080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060019003919050555061138a565b600586600301541415611389578760110160008760080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001900391905055505b5b5b5b5b61139f866005015487600701546141a5565b5b8560020160008154809291906001019190505550898660000190805190602001906113cc9291906152c8565b506005866002015414156113fa5760008660070181905550674563918244f400008660040181905550611495565b60028660020154141561142e5767018fae27693b400086600701819055506703bf3b91c95b00008660040181905550611494565b600386600201541415611462576704af0a763bb1c0008660070181905550670b3db2b55c1100008660040181905550611493565b60048660020154141561149257670e0d1f62b315400086600701819055506721b918201433000086600401819055505b5b5b5b338660080160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550888660080160146101000a81548160ff02191690831515021790555060016004805480600101828161150a9190615348565b9160005260206000209060060201600060c060405190810160405280602060405190810160405280600081525081526020013373ffffffffffffffffffffffffffffffffffffffff16815260200134815260200160008152602001898152602001428152509091909150600082015181600001908051906020019061159092919061537a565b5060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020155606082015181600301556080820151816004015560a0820151816005015550500392508a60048481548110151561161557fe5b906000526020600020906006020160000190805190602001906116399291906152c8565b50856006016000815480929190600101919050555082866005018190555042600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506116aa8660030154853361421e565b7f33ad373ff55ff0131d5dc1caa21daa4a081eb0707eb9efe075d2200bd2eecf438b3360405180806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561173f578082015181840152602081019050611724565b50505050905090810190601f16801561176c5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a150506000600260146101000a81548160ff021916908315150217905550505050505050505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006003600760006005548152602001908152602001600020601401836040518082805190602001908083835b60208310151561181a57805182526020820191506020810190506020830392506117f5565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390205481548110151561185a57fe5b9060005260206000209060090201600301549050919050565b60008060008060008060008711151561188b57600080fd5b60068710151561189a57600080fd5b600093506007600060055481526020019081526020016000209250600091505b600380549050821015611e41576003828154811015156118d657fe5b906000526020600020906009020160030154871415611e34576003828154811015156118fe57fe5b906000526020600020906009020160080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600160038381548110151561194357fe5b90600052602060002090600902016002015414156119ea5760018360150160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054018360150160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611cc9565b60026003838154811015156119fb57fe5b9060005260206000209060090201600201541415611aa25760038360150160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054018360150160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611cc8565b60038083815481101515611ab257fe5b9060005260206000209060090201600201541415611b595760058360150160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054018360150160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611cc7565b6004600383815481101515611b6a57fe5b9060005260206000209060090201600201541415611c115760088360150160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054018360150160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611cc6565b6005600383815481101515611c2257fe5b9060005260206000209060090201600201541415611cc557600d8360150160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054018360150160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5b5b5b838360150160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415611da157600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611d9c578094505b611e33565b838360150160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611e32578260150160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205493508094505b5b5b81806001019250506118ba565b8495505050505050919050565b60006003600760006005548152602001908152602001600020601401836040518082805190602001908083835b602083101515611ea05780518252602082019150602081019050602083039250611e7b565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902054815481101515611ee057fe5b906000526020600020906009020160080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600060076000600554815260200190815260200160002060130154905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f9557600080fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000806001831415612055576120306001611873565b6007600060055481526020019081526020016000206000016001015491509150612136565b600283141561208d576120686002611873565b6007600060055481526020019081526020016000206002016001015491509150612136565b60038314156120c5576120a06003611873565b6007600060055481526020019081526020016000206004016001015491509150612136565b60048314156120fd576120d86004611873565b6007600060055481526020019081526020016000206006016001015491509150612136565b6005831415612135576121106005611873565b6007600060055481526020019081526020016000206008016001015491509150612136565b5b915091565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561219957600080fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081141515156121ea57600080fd5b803073ffffffffffffffffffffffffffffffffffffffff16311015151561221057600080fd5b6122258160015461418c90919063ffffffff16565b60018190555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156122ac57fe5b5050565b6000803391506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811415151561230757600080fd5b803073ffffffffffffffffffffffffffffffffffffffff16311015151561232d57600080fd5b6123428160015461418c90919063ffffffff16565b60018190555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156123c957fe5b5050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b8160011515600760006005548152602001908152602001600020600a01826040518082805190602001908083835b6020831015156124465780518252602082019150602081019050602083039250612421565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900460ff16151514151561249557600080fd5b82338073ffffffffffffffffffffffffffffffffffffffff166003600760006005548152602001908152602001600020601401846040518082805190602001908083835b6020831015156124fe57805182526020820191506020810190506020830392506124d9565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390205481548110151561253e57fe5b906000526020600020906009020160080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561259257600080fd5b6001151584151514156125b65766470de4df82000034101515156125b557600080fd5b5b836003600760006005548152602001908152602001600020601401876040518082805190602001908083835b60208310151561260757805182526020820191506020810190506020830392506125e2565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390205481548110151561264757fe5b906000526020600020906009020160080160146101000a81548160ff02191690831515021790555060003411156126a5576126a4600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16346146ad565b5b5050505050565b666a94d74f43000081565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561271357600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156127ad57600080fd5b6000831115156127bc57600080fd5b6006831015156127cb57600080fd5b60001515600760006005548152602001908152602001600020600a01866040518082805190602001908083835b60208310151561281d57805182526020820191506020810190506020830392506127f8565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900460ff16151514151561286c57600080fd5b60016003805480600101828161288291906153fa565b916000526020600020906009020160006101406040519081016040528060206040519081016040528060008152508152602001602060405190810160405280600081525081526020016001815260200188815260200160008152602001600081526020016001815260200166470de4df8200008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600015158152509091909150600082015181600001908051906020019061293f92919061537a565b50602082015181600101908051906020019061295c92919061537a565b5060408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e082015181600701556101008201518160080160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101208201518160080160146101000a81548160ff021916908315150217905550505003915083600383815481101515612a1757fe5b90600052602060002090600902016000019080519060200190612a3b9291906152c8565b5085600383815481101515612a4c57fe5b906000526020600020906009020160080160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600383815481101515612aab57fe5b90600052602060002090600902016001019080519060200190612acf9291906152c8565b50666a94d74f430000600383815481101515612ae757fe5b9060005260206000209060090201600401819055506000600383815481101515612b0d57fe5b906000526020600020906009020160080160146101000a81548160ff02191690831515021790555081600760006005548152602001908152602001600020601401866040518082805190602001908083835b602083101515612b845780518252602082019150602081019050602083039250612b5f565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020819055506001600760006005548152602001908152602001600020600a01866040518082805190602001908083835b602083101515612c0b5780518252602082019150602081019050602083039250612be6565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff021916908315150217905550600160048054806001018281612c6b9190615348565b9160005260206000209060060201600060c060405190810160405280602060405190810160405280600081525081526020013373ffffffffffffffffffffffffffffffffffffffff168152602001662386f26fc10000815260200160008152602001600081526020014281525090919091506000820151816000019080519060200190612cf992919061537a565b5060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020155606082015181600301556080820151816004015560a08201518160050155505003905084600482815481101515612d7e57fe5b90600052602060002090600602016000019080519060200190612da29291906152c8565b5080600383815481101515612db357fe5b906000526020600020906009020160050181905550505050505050565b60055481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600380549050905090565b600381815481101515612e1857fe5b9060005260206000209060090201600091509050806000019080600101908060020154908060030154908060040154908060050154908060060154908060070154908060080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060080160149054906101000a900460ff1690508a565b66470de4df82000081565b600060076000600554815260200190815260200160002060120154905090565b600481815481101515612ed157fe5b906000526020600020906006020160009150905080600001908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154908060030154908060040154908060050154905086565b600080600080600080600033896001811415612fae5760096001600760006005548152602001908152602001600020600d0160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401101515612fa957600080fd5b613182565b60028114156130235760096001600760006005548152602001908152602001600020600e0160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540110151561301e57600080fd5b613181565b60038114156130985760096001600760006005548152602001908152602001600020600f0160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540110151561309357600080fd5b613180565b600481141561310d576009600160076000600554815260200190815260200160002060100160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540110151561310857600080fd5b61317f565b600581141561317e576009600160076000600554815260200190815260200160002060110160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540110151561317d57600080fd5b5b5b5b5b5b600061318c613b54565b9050600380549050811115156131a157600080fd5b60076000600554815260200190815260200160002060130154421015156131c757600080fd5b60008c1115156131d657600080fd5b60068c1015156131e557600080fd5b666a94d74f4300009950899850600115158b1515141561321c5761321966470de4df8200008a61416e90919063ffffffff16565b98505b88341015151561322b57600080fd5b60076000600554815260200190815260200160002097506000151588600a018f6040518082805190602001908083835b602083101515613280578051825260208201915060208101905060208303925061325b565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060009054906101000a900460ff1615151415156132cf57600080fd5b66853a0d2313c000965067013fbe85edc9000095506001600380548060010182816132fa91906153fa565b9160005260206000209060090201600061014060405190810160405280602060405190810160405280600081525081526020016020604051908101604052806000815250815260200160018152602001600081526020016000815260200160008152602001600181526020018c8152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160001515815250909190915060008201518160000190805190602001906133b192919061537a565b5060208201518160010190805190602001906133ce92919061537a565b5060408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e082015181600701556101008201518160080160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101208201518160080160146101000a81548160ff02191690831515021790555050500394508b60038681548110151561348957fe5b9060005260206000209060090201600301819055508c6003868154811015156134ae57fe5b906000526020600020906009020160000190805190602001906134d29291906152c8565b50336003868154811015156134e357fe5b906000526020600020906009020160080160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508d60038681548110151561354257fe5b906000526020600020906009020160010190805190602001906135669291906152c8565b508560038681548110151561357757fe5b9060005260206000209060090201600401819055508a60038681548110151561359c57fe5b906000526020600020906009020160080160146101000a81548160ff02191690831515021790555084886014018f6040518082805190602001908083835b6020831015156135ff57805182526020820191506020810190506020830392506135da565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902081905550600188600a018f6040518082805190602001908083835b602083101515613672578051825260208201915060208101905060208303925061364d565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060006101000a81548160ff021916908315150217905550600115158b151514156136fd576136fc600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1666470de4df8200006146ad565b5b6001600480548060010182816137139190615348565b9160005260206000209060060201600060c060405190810160405280602060405190810160405280600081525081526020013373ffffffffffffffffffffffffffffffffffffffff168152602001348152602001600081526020018f8152602001428152509091909150600082015181600001908051906020019061379992919061537a565b5060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020155606082015181600301556080820151816004015560a0820151816005015550500393508d60048581548110151561381e57fe5b906000526020600020906006020160000190805190602001906138429291906152c8565b508360038681548110151561385357fe5b90600052602060002090600902016005018190555042600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506138b78c8b3361421e565b7f28852447a61cd7468288ee09e688ab82ac6561117c6abc695290ade7479086a18e3360405180806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b8381101561394c578082015181840152602081019050613931565b50505050905090810190601f1680156139795780820380516001836020036101000a031916815260200191505b50935050505060405180910390a15050505050505050505050505050565b61399f61542c565b6000806000806000806000806007600060055481526020019081526020016000206014018a6040518082805190602001908083835b6020831015156139f957805182526020820191506020810190506020830392506139d4565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020549150600382815481101515613a3e57fe5b90600052602060002090600902019050806000018160040154826005015483600601548460080160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685600301548660080160149054906101000a900460ff16868054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015613b325780601f10613b0757610100808354040283529160200191613b32565b820191906000526020600020905b815481529060010190602001808311613b1557829003601f168201915b5050505050965098509850985098509850985098505050919395979092949650565b6000806000600191505b6008821015613bba5761a8c082026007600060055481526020019081526020016000206012015401421015613bad5781600a0290506064811115613ba55760649250613bbb565b809250613bbb565b8180600101925050613b5e565b5b505090565b60006020528060005260406000206000915090505481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613c3457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515613c7057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613d8c57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16ff5b600760006005548152602001908152602001600020601301544210151515613dcc57600080fd5b613dd461475f565b613ddc614996565b613de4614bcd565b613dec614e04565b613df461503b565b60056000815480929190600101919050555060e0604051908101604052806040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525081526020016040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525081526020016040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525081526020016040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525081526020016040805190810160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815250815260200160008152602001600081525060076000600554815260200190815260200160002060008201518160000160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505060208201518160020160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505060408201518160040160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505060608201518160060160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505060808201518160080160008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010155505060a0820151816012015560c08201518160130155905050806007600060055481526020019081526020016000206012018190555062093a808101600760006005548152602001908152602001600020601301819055506003600061415d9190615440565b6004600061416b9190615464565b50565b600080828401905083811015151561418257fe5b8091505092915050565b600082821115151561419a57fe5b818303905092915050565b60006004838154811015156141b657fe5b906000526020600020906006020160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816004848154811015156141fa57fe5b90600052602060002090600602016003018190555061421981836146ad565b505050565b600760006005548152602001908152602001600020600c0160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550600760006005548152602001908152602001600020600b0160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050555060018314156143a857600760006005548152602001908152602001600020600d0160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550614384826007600060055481526020019081526020016000206000016001015461416e90919063ffffffff16565b600760006005548152602001908152602001600020600001600101819055506146a8565b600283141561446857600760006005548152602001908152602001600020600e0160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550614444826007600060055481526020019081526020016000206002016001015461416e90919063ffffffff16565b600760006005548152602001908152602001600020600201600101819055506146a7565b600383141561452857600760006005548152602001908152602001600020600f0160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550614504826007600060055481526020019081526020016000206004016001015461416e90919063ffffffff16565b600760006005548152602001908152602001600020600401600101819055506146a6565b60048314156145e85760076000600554815260200190815260200160002060100160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060010191905055506145c4826007600060055481526020019081526020016000206006016001015461416e90919063ffffffff16565b600760006005548152602001908152602001600020600601600101819055506146a5565b60058314156146a45760076000600554815260200190815260200160002060110160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550614684826007600060055481526020019081526020016000206008016001015461416e90919063ffffffff16565b600760006005548152602001908152602001600020600801600101819055505b5b5b5b5b505050565b6146fe816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461416e90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506147558160015461416e90919063ffffffff16565b6001819055505050565b600080600060076000600554815260200190815260200160002060130154421015151561478b57600080fd5b6147956001611873565b92506000600760006005548152602001908152602001600020600001600101541180156147ef5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561499157600760006005548152602001908152602001600020600001600101543073ffffffffffffffffffffffffffffffffffffffff16311015151561483557600080fd5b8260076000600554815260200190815260200160002060000160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506148d160646148c3600a6007600060055481526020019081526020016000206000016001015461527290919063ffffffff16565b6152ad90919063ffffffff16565b9150600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050151561493557600080fd5b614963826007600060055481526020019081526020016000206000016001015461418c90919063ffffffff16565b905061496f83826146ad565b6000600760006005548152602001908152602001600020600001600101819055505b505050565b60008060006007600060055481526020019081526020016000206013015442101515156149c257600080fd5b6149cc6002611873565b9250600060076000600554815260200190815260200160002060020160010154118015614a265750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15614bc857600760006005548152602001908152602001600020600201600101543073ffffffffffffffffffffffffffffffffffffffff163110151515614a6c57600080fd5b8260076000600554815260200190815260200160002060020160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550614b086064614afa600a6007600060055481526020019081526020016000206002016001015461527290919063ffffffff16565b6152ad90919063ffffffff16565b9150600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501515614b6c57600080fd5b614b9a826007600060055481526020019081526020016000206002016001015461418c90919063ffffffff16565b9050614ba683826146ad565b6000600760006005548152602001908152602001600020600201600101819055505b505050565b6000806000600760006005548152602001908152602001600020601301544210151515614bf957600080fd5b614c036003611873565b9250600060076000600554815260200190815260200160002060040160010154118015614c5d5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15614dff57600760006005548152602001908152602001600020600401600101543073ffffffffffffffffffffffffffffffffffffffff163110151515614ca357600080fd5b8260076000600554815260200190815260200160002060040160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550614d3f6064614d31600a6007600060055481526020019081526020016000206004016001015461527290919063ffffffff16565b6152ad90919063ffffffff16565b9150600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501515614da357600080fd5b614dd1826007600060055481526020019081526020016000206004016001015461418c90919063ffffffff16565b9050614ddd83826146ad565b6000600760006005548152602001908152602001600020600401600101819055505b505050565b6000806000600760006005548152602001908152602001600020601301544210151515614e3057600080fd5b614e3a6004611873565b9250600060076000600554815260200190815260200160002060060160010154118015614e945750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561503657600760006005548152602001908152602001600020600601600101543073ffffffffffffffffffffffffffffffffffffffff163110151515614eda57600080fd5b8260076000600554815260200190815260200160002060060160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550614f766064614f68600a6007600060055481526020019081526020016000206006016001015461527290919063ffffffff16565b6152ad90919063ffffffff16565b9150600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501515614fda57600080fd5b615008826007600060055481526020019081526020016000206006016001015461418c90919063ffffffff16565b905061501483826146ad565b6000600760006005548152602001908152602001600020600601600101819055505b505050565b600080600060076000600554815260200190815260200160002060130154421015151561506757600080fd5b6150716005611873565b92506000600760006005548152602001908152602001600020600801600101541180156150cb5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561526d57600760006005548152602001908152602001600020600801600101543073ffffffffffffffffffffffffffffffffffffffff16311015151561511157600080fd5b8260076000600554815260200190815260200160002060080160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506151ad606461519f600a6007600060055481526020019081526020016000206008016001015461527290919063ffffffff16565b6152ad90919063ffffffff16565b9150600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050151561521157600080fd5b61523f826007600060055481526020019081526020016000206008016001015461418c90919063ffffffff16565b905061524b83826146ad565b6000600760006005548152602001908152602001600020600801600101819055505b505050565b600080600084141561528757600091506152a6565b828402905082848281151561529857fe5b041415156152a257fe5b8091505b5092915050565b60008082848115156152bb57fe5b0490508091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061530957805160ff1916838001178555615337565b82800160010185558215615337579182015b8281111561533657825182559160200191906001019061531b565b5b5090506153449190615488565b5090565b8154818355818115116153755760060281600602836000526020600020918201910161537491906154ad565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106153bb57805160ff19168380011785556153e9565b828001600101855582156153e9579182015b828111156153e85782518255916020019190600101906153cd565b5b5090506153f69190615488565b5090565b815481835581811511615427576009028160090283600052602060002091820191016154269190615523565b5b505050565b602060405190810160405280600081525090565b50805460008255600902906000526020600020908101906154619190615523565b50565b508054600082556006029060005260206000209081019061548591906154ad565b50565b6154aa91905b808211156154a657600081600090555060010161548e565b5090565b90565b61552091905b8082111561551c57600080820160006154cc91906155cd565b6001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556002820160009055600382016000905560048201600090556005820160009055506006016154b3565b5090565b90565b6155ca91905b808211156155c6576000808201600061554291906155cd565b60018201600061555291906155cd565b6002820160009055600382016000905560048201600090556005820160009055600682016000905560078201600090556008820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556008820160146101000a81549060ff021916905550600901615529565b5090565b90565b50805460018160011615610100020316600290046000825580601f106155f35750615612565b601f0160209004906000526020600020908101906156119190615488565b5b505600a165627a7a723058200e471c605bbbcd96fee611a3461addb1d35e79e0cccdfcdcf30ef10499c92f560029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000e867c7f9dae26439c62c5ce9e3659da98d0cdca10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005ae81e80000000000000000000000000000000000000000000000000000000005aef7adf
-----Decoded View---------------
Arg [0] : _bookerAddress (address): 0xe867C7f9dAe26439c62c5cE9e3659da98d0cdcA1
Arg [1] : _woodAddress (address): 0x0000000000000000000000000000000000000000
Arg [2] : _startTime (uint256): 1525161600
Arg [3] : _endTime (uint256): 1525643999
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000e867c7f9dae26439c62c5ce9e3659da98d0cdca1
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [2] : 000000000000000000000000000000000000000000000000000000005ae81e80
Arg [3] : 000000000000000000000000000000000000000000000000000000005aef7adf
Swarm Source
bzzr://0e471c605bbbcd96fee611a3461addb1d35e79e0cccdfcdcf30ef10499c92f56
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.