Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 21,543 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer | 13468861 | 1605 days ago | IN | 0.016 ETH | 0.00163827 | ||||
| Transfer | 12776266 | 1713 days ago | IN | 0 ETH | 0.00126326 | ||||
| Transfer | 9526959 | 2215 days ago | IN | 0 ETH | 0.00014559 | ||||
| Transfer | 7789808 | 2493 days ago | IN | 0 ETH | 0.00010998 | ||||
| Buy Land | 7202279 | 2591 days ago | IN | 0.02335338 ETH | 0.0007478 | ||||
| Buy Land | 7202279 | 2591 days ago | IN | 0.0242649 ETH | 0.0006777 | ||||
| Buy Land | 7201887 | 2591 days ago | IN | 0.03605004 ETH | 0.00058422 | ||||
| Buy Land | 7140095 | 2603 days ago | IN | 0.065061 ETH | 0.0005113 | ||||
| Transfer | 7089330 | 2613 days ago | IN | 0 ETH | 0.0000585 | ||||
| Buy Land | 7035177 | 2623 days ago | IN | 0.026388 ETH | 0.00011652 | ||||
| Withdrawal | 6967092 | 2635 days ago | IN | 0 ETH | 0.00009304 | ||||
| Set Beneficiary | 6967082 | 2635 days ago | IN | 0 ETH | 0.00008545 | ||||
| Transfer | 6817928 | 2660 days ago | IN | 0 ETH | 0.00014626 | ||||
| Transfer | 6817714 | 2660 days ago | IN | 0 ETH | 0.00025231 | ||||
| Buy Land | 6693052 | 2680 days ago | IN | 0.16239242 ETH | 0.00004673 | ||||
| Buy Land | 6693019 | 2680 days ago | IN | 0.16239242 ETH | 0.00004673 | ||||
| Buy Land | 6693015 | 2680 days ago | IN | 0.16239242 ETH | 0.00004673 | ||||
| Buy Land | 6692991 | 2680 days ago | IN | 0.16239242 ETH | 0.00004673 | ||||
| Buy Land | 6692987 | 2680 days ago | IN | 0.16239242 ETH | 0.00004673 | ||||
| Buy Land | 6692928 | 2680 days ago | IN | 0.0930065 ETH | 0.00004648 | ||||
| Buy Land | 6692806 | 2680 days ago | IN | 0.09567531 ETH | 0.00035326 | ||||
| Buy Land | 6692806 | 2680 days ago | IN | 0.09567531 ETH | 0.00009761 | ||||
| Buy Land | 6692804 | 2680 days ago | IN | 0.09567531 ETH | 0.00100726 | ||||
| Buy Land | 6692802 | 2680 days ago | IN | 0.09567531 ETH | 0.00037185 | ||||
| Buy Land | 6692800 | 2680 days ago | IN | 0.09567531 ETH | 0.00009296 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| - | 6967092 | 2635 days ago | 30 ETH | ||||
| Transfer | 6519304 | 2709 days ago | 15.0394 ETH | ||||
| Transfer | 6490121 | 2713 days ago | 5 ETH | ||||
| Transfer | 6487631 | 2714 days ago | 0.02 ETH | ||||
| Transfer | 6486324 | 2714 days ago | 0.027496 ETH | ||||
| Transfer | 6486324 | 2714 days ago | 0.0025 ETH | ||||
| Transfer | 6486324 | 2714 days ago | 0.0025 ETH | ||||
| Transfer | 6486324 | 2714 days ago | 0.0032985 ETH | ||||
| Transfer | 6485054 | 2714 days ago | 0.0083608 ETH | ||||
| Transfer | 6485054 | 2714 days ago | 0.00439349 ETH | ||||
| Transfer | 6484159 | 2714 days ago | 29.3360664 ETH | ||||
| Transfer | 6484126 | 2714 days ago | 36.20226 ETH | ||||
| Transfer | 6483640 | 2715 days ago | 0.0107496 ETH | ||||
| Transfer | 6483640 | 2715 days ago | 0.002375 ETH | ||||
| Transfer | 6483627 | 2715 days ago | 0.02961124 ETH | ||||
| Transfer | 6483621 | 2715 days ago | 0.00871024 ETH | ||||
| Transfer | 6483621 | 2715 days ago | 0.0015625 ETH | ||||
| Transfer | 6483621 | 2715 days ago | 0.00206156 ETH | ||||
| Transfer | 6483556 | 2715 days ago | 0.01347304 ETH | ||||
| Transfer | 6483556 | 2715 days ago | 0.0015625 ETH | ||||
| Transfer | 6483556 | 2715 days ago | 0.00316812 ETH | ||||
| Transfer | 6483556 | 2715 days ago | 0.0015625 ETH | ||||
| Transfer | 6483437 | 2715 days ago | 0.022854 ETH | ||||
| Transfer | 6483437 | 2715 days ago | 0.0089543 ETH | ||||
| Transfer | 6483437 | 2715 days ago | 0.00808001 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
MCPSale
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2018-06-03
*/
pragma solidity ^0.4.24;
/**
* @title Ownable
* @dev The Ownable contract has an owner address, and provides basic authorization control
* functions, this simplifies the implementation of "user permissions".
*/
contract Ownable {
address public owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev The Ownable constructor sets the original `owner` of the contract to the sender
* account.
*/
constructor() public {
owner = msg.sender;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(msg.sender == owner);
_;
}
/**
* @dev Allows the current owner to transfer control of the contract to a newOwner.
* @param newOwner The address to transfer ownership to.
*/
function transferOwnership(address newOwner) public onlyOwner {
require(newOwner != address(0));
emit OwnershipTransferred(owner, newOwner);
owner = newOwner;
}
}
contract Beneficiary is Ownable {
address public beneficiary;
constructor() public {
beneficiary = msg.sender;
}
function setBeneficiary(address _beneficiary) onlyOwner public {
beneficiary = _beneficiary;
}
function withdrawal(uint256 amount) public onlyOwner {
if (amount > address(this).balance) {
revert();
}
beneficiary.transfer(amount);
}
function withdrawalAll() public onlyOwner {
beneficiary.transfer(address(this).balance);
}
}
contract MCPSale is Beneficiary {
mapping(address => uint256) public balances;
mapping(uint256 => address) public approved;
mapping(int32 => mapping(int32 => uint256)) public zone;
mapping(uint256 => Coordinates) public zone_reverse;
mapping(uint16 => Region) public regions;
mapping(uint16 => RegionBid) public region_bids;
bool public constant implementsERC721 = true;
uint256 constant MINIMAL_RAISE = 0.5 ether;
uint256 constant AUCTION_DURATION = 7 * 24 * 60 * 60; // 7 Days
bool public SaleActive = true;
struct MapLand {
uint8 resources;
uint16 region;
uint256 buyPrice;
address owner;
}
struct Coordinates {
int32 x;
int32 y;
}
struct RegionBid {
address currentBuyer;
uint256 bid;
uint256 activeTill;
}
struct Region {
address owner;
uint8 tax;
uint256 startPrice;
string regionName;
bool onSale;
bool allowSaleLands;
bool created;
}
uint256 public basePrice = 0.01 ether;
uint256 public minMargin = 0.001944 ether;
uint32 public divider = 8;
uint8 public defaultRegionTax = 10;
MapLand[] public tokens;
address public mapMaster;
modifier isTokenOwner(uint256 _tokenId) {
if (tokens[_tokenId].owner != msg.sender) {
if (msg.value > 0) {
msg.sender.transfer(msg.value);
}
return;
}
_;
}
modifier onlyRegionOwner(uint16 _regionId) {
if (regions[_regionId].owner != msg.sender) {
if (msg.value > 0) {
msg.sender.transfer(msg.value);
}
return;
}
_;
}
modifier isNotNullAddress(address _address) {
require(address(0) != _address);
_;
}
modifier isApproved(uint256 _tokenId, address _to) {
require(approved[_tokenId] == _to);
_;
}
modifier onlyMapMaster() {
require(mapMaster == msg.sender);
_;
}
modifier onlyOnActiveSale() {
require(SaleActive);
_;
}
modifier canMakeBid(uint16 regionId) {
if ((region_bids[regionId].activeTill != 0 && region_bids[regionId].activeTill < now)
|| regions[regionId].owner != address(0) || !regions[regionId].onSale
) {
if (msg.value > 0) {
msg.sender.transfer(msg.value);
}
return;
}
_;
}
constructor() public {
mapMaster = msg.sender;
tokens.length++;
//reserve 0 token - no binding, no sale
MapLand storage reserve = tokens[tokens.length - 1];
reserve.owner = msg.sender;
}
function setMapMaster(address _mapMaster) public onlyOwner {
mapMaster = _mapMaster;
}
function setMinMargin(uint256 _amount) public onlyOwner {
minMargin = _amount;
}
function setBasePrice(uint256 _amount) public onlyOwner {
basePrice = _amount;
}
function setRegionTax(uint16 regionId, uint8 tax) public onlyRegionOwner(regionId) onlyOnActiveSale {
require(tax <= 100 && tax >= 0);
regions[regionId].tax = tax;
emit TaxUpdate(regionId, regions[regionId].tax);
}
function setRegionName(uint16 regionId, string regionName) public onlyOwner {
regions[regionId].regionName = regionName;
emit ChangeRegionName(regionId, regionName);
}
function setRegionOnSale(uint16 regionId) public onlyMapMaster {
regions[regionId].onSale = true;
emit RegionOnSale(regionId);
}
function setAllowSellLands(uint16 regionId) public onlyMapMaster {
regions[regionId].allowSaleLands = true;
emit RegionAllowSaleLands(regionId);
}
function setRegionPrice(uint16 regionId, uint256 price) public onlyOwner {
if(regions[regionId].owner == address(0) && !regions[regionId].onSale) {
regions[regionId].startPrice = price;
emit UpdateRegionPrice(regionId, price);
}
}
function addRegion(uint16 _regionId, uint256 _startPrice, string _regionName) public onlyMapMaster onlyOnActiveSale {
if (regions[_regionId].created) {
return;
}
Region storage newRegion = regions[_regionId];
newRegion.startPrice = _startPrice;
newRegion.tax = defaultRegionTax;
newRegion.owner = address(0);
newRegion.regionName = _regionName;
newRegion.created = true;
emit AddRegion(_regionId);
}
function regionExists(uint16 _regionId) public view returns (bool) {
return regions[_regionId].created;
}
function makeBid(uint16 regionId) payable public
onlyOnActiveSale
canMakeBid(regionId) {
uint256 minimal_bid;
if (region_bids[regionId].currentBuyer != address(0)) {//If have bid already
minimal_bid = region_bids[regionId].bid + MINIMAL_RAISE;
} else {
minimal_bid = regions[regionId].startPrice;
}
if (minimal_bid > msg.value) {
if (msg.value > 0) {
msg.sender.transfer(msg.value);
}
return;
}
RegionBid storage bid = region_bids[regionId];
if (bid.currentBuyer != address(0)) {
//Return funds to old buyer
bid.currentBuyer.transfer(bid.bid);
} else {
emit AuctionStarts(regionId);
}
// Auction will be active for 7 days if no one make a new bid
bid.activeTill = now + AUCTION_DURATION;
bid.currentBuyer = msg.sender;
bid.bid = msg.value;
emit RegionNewBid(regionId, msg.sender, msg.value, region_bids[regionId].activeTill);
}
function completeRegionAuction(uint16 regionId) public onlyMapMaster {
if (region_bids[regionId].currentBuyer == address(0)) {
return;
}
if (region_bids[regionId].activeTill > now || region_bids[regionId].activeTill == 0) {
return;
}
transferRegion(regionId, region_bids[regionId].currentBuyer);
}
function takeRegion(uint16 regionId) public {
require(regions[regionId].owner == address(0));
require(region_bids[regionId].currentBuyer == msg.sender);
require(region_bids[regionId].activeTill < now);
transferRegion(regionId, region_bids[regionId].currentBuyer);
}
function transferRegion(uint16 regionId, address newOwner) internal {
regions[regionId].owner = newOwner;
regions[regionId].onSale = false;
emit RegionSold(regionId, regions[regionId].owner);
}
// returns next minimal bid or final bid on auctions that already end
function getRegionPrice(uint16 regionId) public view returns (uint256 next_bid) {
if(regions[regionId].owner != address(0)) {
return region_bids[regionId].bid;
}
if (region_bids[regionId].currentBuyer != address(0)) {//If have bid already
next_bid = region_bids[regionId].bid + MINIMAL_RAISE;
} else {
next_bid = regions[regionId].startPrice;
}
}
function _activateZoneLand(int32 x, int32 y, uint8 region, uint8 resources) internal {
tokens.length++;
MapLand storage tmp = tokens[tokens.length - 1];
tmp.region = region;
tmp.resources = resources;
tmp.buyPrice = 0;
zone[x][y] = tokens.length - 1;
zone_reverse[tokens.length - 1] = Coordinates(x, y);
emit ActivateMap(x, y, tokens.length - 1);
}
function activateZone(int32[] x, int32[] y, uint8[] region, uint8[] resources) public onlyMapMaster {
for (uint index = 0; index < x.length; index++) {
_activateZoneLand(x[index], y[index], region[index], resources[index]);
}
}
function buyLand(int32 x, int32 y) payable public onlyOnActiveSale {
MapLand storage token = tokens[zone[x][y]];
if (zone[x][y] == 0 || token.buyPrice > 0 || token.owner != address(0)
|| !regions[token.region].allowSaleLands) {
if (msg.value > 0) {
msg.sender.transfer(msg.value);
}
return;
}
uint256 buyPrice = getLandPrice(x, y);
if (buyPrice == 0) {
if (msg.value > 0) {
msg.sender.transfer(msg.value);
}
return;
}
uint256[49] memory payouts;
address[49] memory addresses;
uint8 tokenBought;
if (buyPrice > msg.value) {
if (msg.value > 0) {
msg.sender.transfer(msg.value);
}
return;
} else if (buyPrice < msg.value) {
msg.sender.transfer(msg.value - buyPrice);
}
(payouts, addresses, tokenBought) = getPayouts(x, y);
token.owner = msg.sender;
token.buyPrice = buyPrice;
balances[msg.sender]++;
doPayouts(payouts, addresses, buyPrice);
uint256 tax = getRegionTax(token.region);
if (regions[token.region].owner != address(0) && tax > 100) {
uint256 taxValue = ((basePrice * (tax - 100) + ((tokenBought ** 2) * minMargin * (tax - 100))) / 100);
regions[token.region].owner.transfer(taxValue);
emit RegionPayout(regions[token.region].owner, taxValue);
}
emit Transfer(address(0), msg.sender, zone[x][y]);
}
function doPayouts(uint256[49] payouts, address[49] addresses, uint256 fullValue) internal returns (uint256){
for (uint8 i = 0; i < addresses.length; i++) {
if (addresses[i] == address(0)) {
continue;
}
addresses[i].transfer(payouts[i]);
emit Payout(addresses[i], payouts[i]);
fullValue -= payouts[i];
}
return fullValue;
}
function getPayouts(int32 x, int32 y) public view returns (uint256[49] payouts, address[49] addresses, uint8 tokenBought) {
for (int32 xi = x - 3; xi <= x + 3; xi++) {
for (int32 yi = y - 3; yi <= y + 3; yi++) {
if (x == xi && y == yi) {
continue;
}
MapLand memory token = tokens[zone[xi][yi]];
if (token.buyPrice > 0) {
payouts[tokenBought] = (token.buyPrice / divider);
addresses[tokenBought] = (token.owner);
tokenBought++;
}
}
}
return (payouts, addresses, tokenBought);
}
function getLandPrice(int32 x, int32 y) public view returns (uint256 price){
if (zone[x][y] == 0) {
return;
}
MapLand memory token = tokens[zone[x][y]];
int256[2] memory start;
start[0] = x - 3;
start[1] = y - 3;
uint256[2] memory counters = [uint256(0), 0];
for (int32 xi = x - 3; xi <= x + 3; xi++) {
for (int32 yi = y - 3; yi <= y + 3; yi++) {
if (x == xi && y == yi) {
continue;
}
if (tokens[zone[xi][yi]].buyPrice > 0) {
counters[1] += tokens[zone[xi][yi]].buyPrice;
counters[0]++;
}
}
}
uint16 regionId = token.region;
uint8 taxValue = getRegionTax(regionId);
if (counters[0] == 0) {
price = ((basePrice * taxValue) / 100);
} else {
price = ((basePrice * taxValue) / 100) + (uint(counters[1]) / divider) + (((counters[0] ** 2) * minMargin * taxValue) / 100);
}
}
function getRegionTax(uint16 regionId) internal view returns (uint8) {
if (regions[regionId].owner != address(0)) {
return (100 + regions[regionId].tax);
}
return (100 + defaultRegionTax);
}
function approve(address _to, uint256 _tokenId) public isTokenOwner(_tokenId) isNotNullAddress(_to) {
approved[_tokenId] = _to;
emit Approval(msg.sender, _to, _tokenId);
}
function setRegionOwner(uint16 regionId, address owner, uint256 viewPrice) public onlyOwner {
require(regions[regionId].owner == address(0) && !regions[regionId].onSale);
regions[regionId].owner = owner;
RegionBid storage bid = region_bids[regionId];
bid.activeTill = now;
bid.currentBuyer = owner;
bid.bid = viewPrice;
emit RegionSold(regionId, owner);
}
function transfer(address _to, uint256 _tokenId) public isTokenOwner(_tokenId) isNotNullAddress(_to) isApproved(_tokenId, _to) {
tokens[_tokenId].owner = _to;
balances[msg.sender]--;
balances[_to]++;
emit Transfer(msg.sender, _to, _tokenId);
}
function transferFrom(address _from, address _to, uint256 _tokenId) public isTokenOwner(_tokenId) isApproved(_tokenId, _to) {
tokens[_tokenId].owner = _to;
emit Transfer(_from, _to, _tokenId);
}
function ownerOf(uint256 _tokenId) public view returns (address owner) {
owner = tokens[_tokenId].owner;
}
function totalSupply() public view returns (uint256) {
return tokens.length;
}
function balanceOf(address _owner) public view returns (uint256 balance) {
balance = balances[_owner];
}
function setSaleEnd() public onlyOwner {
SaleActive = false;
emit EndSale(true);
}
function isActive() public view returns (bool) {
return SaleActive;
}
// Events
event Transfer(address indexed from, address indexed to, uint256 tokenId);
event Approval(address indexed owner, address indexed approved, uint256 tokenId);
event RegionAllowSaleLands(uint16 regionId);
event ActivateMap(int256 x, int256 y, uint256 tokenId);
event AddRegion(uint16 indexed regionId);
event UpdateRegionPrice(uint16 indexed regionId, uint256 price);
event ChangeRegionName(uint16 indexed regionId, string regionName);
event TaxUpdate(uint16 indexed regionId, uint8 tax);
event RegionOnSale(uint16 indexed regionId);
event RegionNewBid(uint16 indexed regionId, address buyer, uint256 value, uint256 activeTill);
event AuctionStarts(uint16 indexed regionId);
event RegionSold(uint16 indexed regionId, address owner);
event Payout(address indexed to, uint256 value);
event RegionPayout(address indexed to, uint256 value);
event EndSale(bool isEnded);
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"implementsERC721","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"}],"name":"setBeneficiary","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isActive","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"setMinMargin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"regionId","type":"uint16"}],"name":"completeRegionAuction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"regionId","type":"uint16"}],"name":"getRegionPrice","outputs":[{"name":"next_bid","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"x","type":"int32"},{"name":"y","type":"int32"}],"name":"getPayouts","outputs":[{"name":"payouts","type":"uint256[49]"},{"name":"addresses","type":"address[49]"},{"name":"tokenBought","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"divider","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"beneficiary","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"x","type":"int32"},{"name":"y","type":"int32"}],"name":"buyLand","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"minMargin","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"tokens","outputs":[{"name":"resources","type":"uint8"},{"name":"region","type":"uint16"},{"name":"buyPrice","type":"uint256"},{"name":"owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"regionId","type":"uint16"}],"name":"makeBid","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"regionId","type":"uint16"}],"name":"setAllowSellLands","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"regionId","type":"uint16"},{"name":"regionName","type":"string"}],"name":"setRegionName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"x","type":"int32[]"},{"name":"y","type":"int32[]"},{"name":"region","type":"uint8[]"},{"name":"resources","type":"uint8[]"}],"name":"activateZone","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_regionId","type":"uint16"},{"name":"_startPrice","type":"uint256"},{"name":"_regionName","type":"string"}],"name":"addRegion","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"approved","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"withdrawal","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"int32"},{"name":"","type":"int32"}],"name":"zone","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":false,"inputs":[{"name":"regionId","type":"uint16"}],"name":"setRegionOnSale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint16"}],"name":"regions","outputs":[{"name":"owner","type":"address"},{"name":"tax","type":"uint8"},{"name":"startPrice","type":"uint256"},{"name":"regionName","type":"string"},{"name":"onSale","type":"bool"},{"name":"allowSaleLands","type":"bool"},{"name":"created","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint16"}],"name":"region_bids","outputs":[{"name":"currentBuyer","type":"address"},{"name":"bid","type":"uint256"},{"name":"activeTill","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"x","type":"int32"},{"name":"y","type":"int32"}],"name":"getLandPrice","outputs":[{"name":"price","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_mapMaster","type":"address"}],"name":"setMapMaster","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"regionId","type":"uint16"}],"name":"takeRegion","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"regionId","type":"uint16"},{"name":"owner","type":"address"},{"name":"viewPrice","type":"uint256"}],"name":"setRegionOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"basePrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"defaultRegionTax","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_regionId","type":"uint16"}],"name":"regionExists","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"setBasePrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"regionId","type":"uint16"},{"name":"tax","type":"uint8"}],"name":"setRegionTax","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"regionId","type":"uint16"},{"name":"price","type":"uint256"}],"name":"setRegionPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"SaleActive","outputs":[{"name":"","type":"bool"}],"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":"withdrawalAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"mapMaster","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"setSaleEnd","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"zone_reverse","outputs":[{"name":"x","type":"int32"},{"name":"y","type":"int32"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"approved","type":"address"},{"indexed":false,"name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"regionId","type":"uint16"}],"name":"RegionAllowSaleLands","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"x","type":"int256"},{"indexed":false,"name":"y","type":"int256"},{"indexed":false,"name":"tokenId","type":"uint256"}],"name":"ActivateMap","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"regionId","type":"uint16"}],"name":"AddRegion","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"regionId","type":"uint16"},{"indexed":false,"name":"price","type":"uint256"}],"name":"UpdateRegionPrice","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"regionId","type":"uint16"},{"indexed":false,"name":"regionName","type":"string"}],"name":"ChangeRegionName","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"regionId","type":"uint16"},{"indexed":false,"name":"tax","type":"uint8"}],"name":"TaxUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"regionId","type":"uint16"}],"name":"RegionOnSale","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"regionId","type":"uint16"},{"indexed":false,"name":"buyer","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"activeTill","type":"uint256"}],"name":"RegionNewBid","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"regionId","type":"uint16"}],"name":"AuctionStarts","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"regionId","type":"uint16"},{"indexed":false,"name":"owner","type":"address"}],"name":"RegionSold","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Payout","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"RegionPayout","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"isEnded","type":"bool"}],"name":"EndSale","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]Contract Creation Code
60806040526001600860006101000a81548160ff021916908315150217905550662386f26fc100006009556606e80ec5718000600a556008600b60006101000a81548163ffffffff021916908363ffffffff160217905550600a600b60046101000a81548160ff021916908360ff1602179055503480156200008057600080fd5b506000336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c80548091906001016200015b9190620001ce565b50600c6001600c80549050038154811015156200017457fe5b90600052602060002090600302019050338160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506200027d565b815481835581811115620001fe57600302816003028360005260206000209182019101620001fd919062000203565b5b505050565b6200027a91905b808211156200027657600080820160006101000a81549060ff02191690556000820160016101000a81549061ffff021916905560018201600090556002820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055506003016200020a565b5090565b90565b61499f806200028d6000396000f30060806040526004361061023b576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063095ea7b3146102405780631051db341461028d57806318160ddd146102bc5780631c31f710146102e757806322f3e2d41461032a57806323b872dd1461035957806327e235e3146103c65780632cc273411461041d5780632ce2d7c01461044a578063301f2dac1461047b578063301fdb54146104c0578063378efa371461057557806338af3eed146105ac57806338e998a71461060357806339c294be146106335780634f64b2be1461065e57806351c03b85146106ee57806360bd409e146107125780636352211e146107435780636b55264d146107b05780636eebb73f1461082757806370a0823114610956578063792a152d146109ad5780637d4061e614610a2e578063835fc6ca14610a9b5780638d3f1e4414610ac85780638da5cb5b14610b19578063969bece314610b705780639a877fb314610ba15780639fe0b36714610cb3578063a9059cbb14610d32578063ab07f05414610d7f578063b43d9ede14610dd0578063b5dcbb6914610e13578063b68e855214610e44578063c7876ea414610e9f578063cd9a27ba14610eca578063d5a506d014610efb578063de4b326214610f44578063e850efaf14610f71578063eb0bfa3814610faf578063f1d2165f14610fea578063f2fde38b14611019578063f44b79b31461105c578063f4d176e114611073578063f835a686146110ca578063fa5d174d146110e1575b600080fd5b34801561024c57600080fd5b5061028b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611135565b005b34801561029957600080fd5b506102a26112fc565b604051808215151515815260200191505060405180910390f35b3480156102c857600080fd5b506102d1611301565b6040518082815260200191505060405180910390f35b3480156102f357600080fd5b50610328600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061130e565b005b34801561033657600080fd5b5061033f6113ad565b604051808215151515815260200191505060405180910390f35b34801561036557600080fd5b506103c4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113c4565b005b3480156103d257600080fd5b50610407600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115cc565b6040518082815260200191505060405180910390f35b34801561042957600080fd5b50610448600480360381019080803590602001909291905050506115e4565b005b34801561045657600080fd5b50610479600480360381019080803561ffff169060200190929190505050611649565b005b34801561048757600080fd5b506104aa600480360381019080803561ffff1690602001909291905050506117bd565b6040518082815260200191505060405180910390f35b3480156104cc57600080fd5b506104fb600480360381019080803560030b9060200190929190803560030b9060200190929190505050611924565b6040518084603160200280838360005b8381101561052657808201518184015260208101905061050b565b5050505090500183603160200280838360005b83811015610554578082015181840152602081019050610539565b505050509050018260ff1660ff168152602001935050505060405180910390f35b34801561058157600080fd5b5061058a611b62565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b3480156105b857600080fd5b506105c1611b78565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610631600480360381019080803560030b9060200190929190803560030b9060200190929190505050611b9e565b005b34801561063f57600080fd5b506106486121e8565b6040518082815260200191505060405180910390f35b34801561066a57600080fd5b50610689600480360381019080803590602001909291905050506121ee565b604051808560ff1660ff1681526020018461ffff1661ffff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200194505050505060405180910390f35b610710600480360381019080803561ffff169060200190929190505050612268565b005b34801561071e57600080fd5b50610741600480360381019080803561ffff169060200190929190505050612711565b005b34801561074f57600080fd5b5061076e600480360381019080803590602001909291905050506127e6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107bc57600080fd5b50610825600480360381019080803561ffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050612830565b005b34801561083357600080fd5b5061095460048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050612963565b005b34801561096257600080fd5b50610997600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612a4b565b6040518082815260200191505060405180910390f35b3480156109b957600080fd5b50610a2c600480360381019080803561ffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050612a94565b005b348015610a3a57600080fd5b50610a5960048036038101908080359060200190929190505050612c47565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610aa757600080fd5b50610ac660048036038101908080359060200190929190505050612c7a565b005b348015610ad457600080fd5b50610b03600480360381019080803560030b9060200190929190803560030b9060200190929190505050612d65565b6040518082815260200191505060405180910390f35b348015610b2557600080fd5b50610b2e612d8a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b7c57600080fd5b50610b9f600480360381019080803561ffff169060200190929190505050612daf565b005b348015610bad57600080fd5b50610bd0600480360381019080803561ffff169060200190929190505050612e76565b604051808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018760ff1660ff16815260200186815260200180602001851515151581526020018415151515815260200183151515158152602001828103825286818151815260200191508051906020019080838360005b83811015610c72578082015181840152602081019050610c57565b50505050905090810190601f168015610c9f5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b348015610cbf57600080fd5b50610ce2600480360381019080803561ffff169060200190929190505050612fa4565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390f35b348015610d3e57600080fd5b50610d7d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612fee565b005b348015610d8b57600080fd5b50610dba600480360381019080803560030b9060200190929190803560030b90602001909291905050506132d2565b6040518082815260200191505060405180910390f35b348015610ddc57600080fd5b50610e11600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506136ab565b005b348015610e1f57600080fd5b50610e42600480360381019080803561ffff16906020019092919050505061374a565b005b348015610e5057600080fd5b50610e9d600480360381019080803561ffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506138b2565b005b348015610eab57600080fd5b50610eb4613afa565b6040518082815260200191505060405180910390f35b348015610ed657600080fd5b50610edf613b00565b604051808260ff1660ff16815260200191505060405180910390f35b348015610f0757600080fd5b50610f2a600480360381019080803561ffff169060200190929190505050613b13565b604051808215151515815260200191505060405180910390f35b348015610f5057600080fd5b50610f6f60048036038101908080359060200190929190505050613b48565b005b348015610f7d57600080fd5b50610fad600480360381019080803561ffff169060200190929190803560ff169060200190929190505050613bad565b005b348015610fbb57600080fd5b50610fe8600480360381019080803561ffff16906020019092919080359060200190929190505050613d5f565b005b348015610ff657600080fd5b50610fff613ec6565b604051808215151515815260200191505060405180910390f35b34801561102557600080fd5b5061105a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613ed9565b005b34801561106857600080fd5b5061107161402e565b005b34801561107f57600080fd5b5061108861410b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156110d657600080fd5b506110df614131565b005b3480156110ed57600080fd5b5061110c600480360381019080803590602001909291905050506141e5565b604051808360030b60030b81526020018260030b60030b81526020019250505060405180910390f35b803373ffffffffffffffffffffffffffffffffffffffff16600c8281548110151561115c57fe5b906000526020600020906003020160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156112015760003411156111fc573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156111fa573d6000803e3d6000fd5b505b6112f7565b828073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff161415151561123e57600080fd5b836003600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a3505b505050565b600181565b6000600c80549050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561136957600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600860009054906101000a900460ff16905090565b803373ffffffffffffffffffffffffffffffffffffffff16600c828154811015156113eb57fe5b906000526020600020906003020160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561149057600034111561148b573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015611489573d6000803e3d6000fd5b505b6115c6565b81838073ffffffffffffffffffffffffffffffffffffffff166003600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156114ff57600080fd5b84600c8581548110151561150f57fe5b906000526020600020906003020160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a350505b50505050565b60026020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561163f57600080fd5b80600a8190555050565b3373ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156116a557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600760008361ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561171d576117ba565b42600760008361ffff1661ffff16815260200190815260200160002060020154118061176757506000600760008361ffff1661ffff16815260200190815260200160002060020154145b15611771576117ba565b6117b981600760008461ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16614223565b5b50565b60008073ffffffffffffffffffffffffffffffffffffffff16600660008461ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561185857600760008361ffff1661ffff16815260200190815260200160002060010154905061191f565b600073ffffffffffffffffffffffffffffffffffffffff16600760008461ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156118fc576706f05b59d3b20000600760008461ffff1661ffff1681526020019081526020016000206001015401905061191e565b600660008361ffff1661ffff1681526020019081526020016000206001015490505b5b919050565b61192c614753565b611934614777565b600080600061194161479b565b6003880392505b6003880160030b8360030b131515611b4f576003870391505b6003870160030b8260030b131515611b42578260030b8860030b14801561198d57508160030b8760030b145b1561199757611b35565b600c600460008560030b60030b815260200190815260200160002060008460030b60030b8152602001908152602001600020548154811015156119d657fe5b9060005260206000209060030201608060405190810160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900461ffff1661ffff1661ffff168152602001600182015481526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050600081604001511115611b3457600b60009054906101000a900463ffffffff1663ffffffff168160400151811515611ac357fe5b04868560ff16603181101515611ad557fe5b6020020181815250508060600151858560ff16603181101515611af457fe5b602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083806001019450505b5b8180600101925050611961565b8280600101935050611948565b8585859550955095505050509250925092565b600b60009054906101000a900463ffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080611ba9614753565b611bb1614777565b6000806000600860009054906101000a900460ff161515611bd157600080fd5b600c600460008b60030b60030b815260200190815260200160002060008a60030b60030b815260200190815260200160002054815481101515611c1057fe5b906000526020600020906003020196506000600460008b60030b60030b815260200190815260200160002060008a60030b60030b8152602001908152602001600020541480611c63575060008760010154115b80611cbf5750600073ffffffffffffffffffffffffffffffffffffffff168760020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b80611d055750600660008860000160019054906101000a900461ffff1661ffff1661ffff16815260200190815260200160002060030160019054906101000a900460ff16155b15611d60576000341115611d5b573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015611d59573d6000803e3d6000fd5b505b6121dd565b611d6a89896132d2565b95506000861415611dcb576000341115611dc6573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015611dc4573d6000803e3d6000fd5b505b6121dd565b34861115611e29576000341115611e24573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015611e22573d6000803e3d6000fd5b505b6121dd565b34861015611e7b573373ffffffffffffffffffffffffffffffffffffffff166108fc8734039081150290604051600060405180830381858888f19350505050158015611e79573d6000803e3d6000fd5b505b611e858989611924565b809550819650829750505050338760020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550858760010181905550600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550611f37858588614361565b50611f538760000160019054906101000a900461ffff166144e0565b60ff169150600073ffffffffffffffffffffffffffffffffffffffff16600660008960000160019054906101000a900461ffff1661ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015611fe55750606482115b15612146576064808303600a546002860a60ff16020260648403600954020181151561200d57fe5b049050600660008860000160019054906101000a900461ffff1661ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156120a6573d6000803e3d6000fd5b50600660008860000160019054906101000a900461ffff1661ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7e20eee8794e3a490330b424b5875ba62ffefb32b4ae48090cb82edfc2d2ec89826040518082815260200191505060405180910390a25b3373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600460008d60030b60030b815260200190815260200160002060008c60030b60030b8152602001908152602001600020546040518082815260200191505060405180910390a35b505050505050505050565b600a5481565b600c818154811015156121fd57fe5b90600052602060002090600302016000915090508060000160009054906101000a900460ff16908060000160019054906101000a900461ffff16908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905084565b600080600860009054906101000a900460ff16151561228657600080fd5b826000600760008361ffff1661ffff16815260200190815260200160002060020154141580156122d3575042600760008361ffff1661ffff16815260200190815260200160002060020154105b806123495750600073ffffffffffffffffffffffffffffffffffffffff16600660008361ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b8061237d5750600660008261ffff1661ffff16815260200190815260200160002060030160009054906101000a900460ff16155b156123d85760003411156123d3573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156123d1573d6000803e3d6000fd5b505b61270b565b600073ffffffffffffffffffffffffffffffffffffffff16600760008661ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561247c576706f05b59d3b20000600760008661ffff1661ffff1681526020019081526020016000206001015401925061249e565b600660008561ffff1661ffff1681526020019081526020016000206001015492505b348311156124fc5760003411156124f7573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156124f5573d6000803e3d6000fd5b505b61270a565b600760008561ffff1661ffff1681526020019081526020016000209150600073ffffffffffffffffffffffffffffffffffffffff168260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156125e7578160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc83600101549081150290604051600060405180830381858888f193505050501580156125e1573d6000803e3d6000fd5b50612619565b8361ffff167ff6e8b71db70830e39e2c98f38b929b65c3521e6479cc5fa19b21567574f2b7a460405160405180910390a25b62093a8042018260020181905550338260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503482600101819055508361ffff167f29a276aafcd155473a77c82e5c2a4ccc84d83bac0fcd454d1e9ca6dacecf0c1f3334600760008961ffff1661ffff16815260200190815260200160002060020154604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a25b5b50505050565b3373ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561276d57600080fd5b6001600660008361ffff1661ffff16815260200190815260200160002060030160016101000a81548160ff0219169083151502179055507fb51fb8bbfa3da24418034519117a50979b837f70e121296bc026ee665ce79b2381604051808261ffff1661ffff16815260200191505060405180910390a150565b6000600c828154811015156127f757fe5b906000526020600020906003020160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561288b57600080fd5b80600660008461ffff1661ffff16815260200190815260200160002060020190805190602001906128bd9291906147e1565b508161ffff167fb06f576e825ec000eb0407092b3150b13f3c68cc964d0a5a8405c0b715e714ac826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561292557808201518184015260208101905061290a565b50505050905090810190601f1680156129525780820380516001836020036101000a031916815260200191505b509250505060405180910390a25050565b60003373ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156129c157600080fd5b600090505b8451811015612a4457612a3785828151811015156129e057fe5b9060200190602002015185838151811015156129f857fe5b906020019060200201518584815181101515612a1057fe5b906020019060200201518585815181101515612a2857fe5b906020019060200201516145a6565b80806001019150506129c6565b5050505050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60003373ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612af257600080fd5b600860009054906101000a900460ff161515612b0d57600080fd5b600660008561ffff1661ffff16815260200190815260200160002060030160029054906101000a900460ff1615612b4357612c41565b600660008561ffff1661ffff1681526020019081526020016000209050828160010181905550600b60049054906101000a900460ff168160000160146101000a81548160ff021916908360ff16021790555060008160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081816002019080519060200190612bf19291906147e1565b5060018160030160026101000a81548160ff0219169083151502179055508361ffff167f399f06325e5cc0f4ee1fb06491dbac3bb10e0b26fe872a831673a1b84e326c3560405160405180910390a25b50505050565b60036020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612cd557600080fd5b3073ffffffffffffffffffffffffffffffffffffffff1631811115612cf957600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612d61573d6000803e3d6000fd5b5050565b6004602052816000526040600020602052806000526040600020600091509150505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612e0b57600080fd5b6001600660008361ffff1661ffff16815260200190815260200160002060030160006101000a81548160ff0219169083151502179055508061ffff167f1f4df03e985a1c2625c2bb5c99d6baabdcf19970943fc02c21110cf810fe48ed60405160405180910390a250565b60066020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060000160149054906101000a900460ff1690806001015490806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612f615780601f10612f3657610100808354040283529160200191612f61565b820191906000526020600020905b815481529060010190602001808311612f4457829003601f168201915b5050505050908060030160009054906101000a900460ff16908060030160019054906101000a900460ff16908060030160029054906101000a900460ff16905087565b60076020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154905083565b803373ffffffffffffffffffffffffffffffffffffffff16600c8281548110151561301557fe5b906000526020600020906003020160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156130ba5760003411156130b5573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156130b3573d6000803e3d6000fd5b505b6132cd565b828073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff16141515156130f757600080fd5b82848073ffffffffffffffffffffffffffffffffffffffff166003600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561316657600080fd5b85600c8681548110151561317657fe5b906000526020600020906003020160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600190039190505550600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060010191905055508573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a35050505b505050565b60006132dc61479b565b6132e4614861565b6132ec614883565b6000806000806000600460008c60030b60030b815260200190815260200160002060008b60030b60030b81526020019081526020016000205414156133305761369e565b600c600460008c60030b60030b815260200190815260200160002060008b60030b60030b81526020019081526020016000205481548110151561336f57fe5b9060005260206000209060030201608060405190810160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900461ffff1661ffff1661ffff168152602001600182015481526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050965060038a0360030b86600060028110151561343e57fe5b6020020181815250506003890360030b86600160028110151561345d57fe5b6020020181815250506040805190810160405280600081526020016000815250945060038a0393505b60038a0160030b8460030b1315156135d8576003890392505b6003890160030b8360030b1315156135cb578360030b8a60030b1480156134cb57508260030b8960030b145b156134d5576135be565b6000600c600460008760030b60030b815260200190815260200160002060008660030b60030b81526020019081526020016000205481548110151561351657fe5b90600052602060002090600302016001015411156135bd57600c600460008660030b60030b815260200190815260200160002060008560030b60030b81526020019081526020016000205481548110151561356d57fe5b90600052602060002090600302016001015485600160028110151561358e57fe5b6020020181815101915081815250508460006002811015156135ac57fe5b602002018051809190600101815250505b5b828060010193505061349f565b8380600101945050613486565b866020015191506135e8826144e0565b905060008560006002811015156135fb57fe5b602002015114156136215760648160ff166009540281151561361957fe5b04975061369d565b60648160ff16600a54600288600060028110151561363b57fe5b60200201510a020281151561364c57fe5b04600b60009054906101000a900463ffffffff1663ffffffff1686600160028110151561367557fe5b602002015181151561368357fe5b0460648360ff166009540281151561369757fe5b04010197505b5b5050505050505092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561370657600080fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff16600660008361ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156137c357600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16600760008361ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561383b57600080fd5b42600760008361ffff1661ffff1681526020019081526020016000206002015410151561386757600080fd5b6138af81600760008461ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16614223565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561390f57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660008661ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156139b25750600660008561ffff1661ffff16815260200190815260200160002060030160009054906101000a900460ff16155b15156139bd57600080fd5b82600660008661ffff1661ffff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760008561ffff1661ffff1681526020019081526020016000209050428160020181905550828160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508181600101819055508361ffff167f31829e9d057f1095a6016bb319e553b5fa64419f5ad8b0147aeb1586b1dc3d0e84604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250505050565b60095481565b600b60049054906101000a900460ff1681565b6000600660008361ffff1661ffff16815260200190815260200160002060030160029054906101000a900460ff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613ba357600080fd5b8060098190555050565b813373ffffffffffffffffffffffffffffffffffffffff16600660008361ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613c77576000341115613c72573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015613c70573d6000803e3d6000fd5b505b613d5a565b600860009054906101000a900460ff161515613c9257600080fd5b60648260ff1611158015613caa575060008260ff1610155b1515613cb557600080fd5b81600660008561ffff1661ffff16815260200190815260200160002060000160146101000a81548160ff021916908360ff1602179055508261ffff167fc72bc3ebe54db6ad5d04be20eb76955c1fbdfc05fc89a45d3959eca9f75e77cb600660008661ffff1661ffff16815260200190815260200160002060000160149054906101000a900460ff16604051808260ff1660ff16815260200191505060405180910390a25b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613dba57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660008461ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015613e5d5750600660008361ffff1661ffff16815260200190815260200160002060030160009054906101000a900460ff16155b15613ec25780600660008461ffff1661ffff168152602001908152602001600020600101819055508161ffff167f334cd32957a0eb9f4c727ed73fab8a13424e9da07e864bd7beb3f84c7650b3e8826040518082815260200191505060405180910390a25b5050565b600860009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613f3457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515613f7057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561408957600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015614108573d6000803e3d6000fd5b50565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561418c57600080fd5b6000600860006101000a81548160ff0219169083151502179055507f75db2c8af3a77c8f79f1e5f6f7606c455d1d3d974acad372b8f4c38d0b541a396001604051808215151515815260200191505060405180910390a1565b60056020528060005260406000206000915090508060000160009054906101000a900460030b908060000160049054906101000a900460030b905082565b80600660008461ffff1661ffff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600660008461ffff1661ffff16815260200190815260200160002060030160006101000a81548160ff0219169083151502179055508161ffff167f31829e9d057f1095a6016bb319e553b5fa64419f5ad8b0147aeb1586b1dc3d0e600660008561ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a25050565b600080600090505b60318160ff1610156144d557600073ffffffffffffffffffffffffffffffffffffffff16848260ff1660318110151561439e57fe5b602002015173ffffffffffffffffffffffffffffffffffffffff1614156143c4576144c8565b838160ff166031811015156143d557fe5b602002015173ffffffffffffffffffffffffffffffffffffffff166108fc868360ff1660318110151561440457fe5b60200201519081150290604051600060405180830381858888f19350505050158015614434573d6000803e3d6000fd5b50838160ff1660318110151561444657fe5b602002015173ffffffffffffffffffffffffffffffffffffffff167f5afeca38b2064c23a692c4cf353015d80ab3ecc417b4f893f372690c11fbd9a6868360ff1660318110151561449357fe5b60200201516040518082815260200191505060405180910390a2848160ff166031811015156144be57fe5b6020020151830392505b8080600101915050614369565b829150509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff16600660008461ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561458b57600660008361ffff1661ffff16815260200190815260200160002060000160149054906101000a900460ff1660640190506145a1565b600b60049054906101000a900460ff1660640190505b919050565b6000600c80548091906001016145bc91906148a5565b50600c6001600c80549050038154811015156145d457fe5b906000526020600020906003020190508260ff168160000160016101000a81548161ffff021916908361ffff160217905550818160000160006101000a81548160ff021916908360ff160217905550600081600101819055506001600c8054905003600460008760030b60030b815260200190815260200160002060008660030b60030b81526020019081526020016000208190555060408051908101604052808660030b81526020018560030b815250600560006001600c8054905003815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908360030b63ffffffff16021790555060208201518160000160046101000a81548163ffffffff021916908360030b63ffffffff1602179055509050507f8f32e652c6806b682ac4685b78efed8695949d3dc61a1d22e96fedea32bab1f385856001600c8054905003604051808460030b81526020018360030b8152602001828152602001935050505060405180910390a15050505050565b61062060405190810160405280603190602082028038833980820191505090505090565b61062060405190810160405280603190602082028038833980820191505090505090565b608060405190810160405280600060ff168152602001600061ffff16815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061482257805160ff1916838001178555614850565b82800160010185558215614850579182015b8281111561484f578251825591602001919060010190614834565b5b50905061485d91906148d7565b5090565b6040805190810160405280600290602082028038833980820191505090505090565b6040805190810160405280600290602082028038833980820191505090505090565b8154818355818111156148d2576003028160030283600052602060002091820191016148d191906148fc565b5b505050565b6148f991905b808211156148f55760008160009055506001016148dd565b5090565b90565b61497091905b8082111561496c57600080820160006101000a81549060ff02191690556000820160016101000a81549061ffff021916905560018201600090556002820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600301614902565b5090565b905600a165627a7a72305820be3d31cf1b4ded27c2bcd792c5a6fae0969aad5c77f55fcd0f7ed783874846fd0029
Deployed Bytecode
0x60806040526004361061023b576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063095ea7b3146102405780631051db341461028d57806318160ddd146102bc5780631c31f710146102e757806322f3e2d41461032a57806323b872dd1461035957806327e235e3146103c65780632cc273411461041d5780632ce2d7c01461044a578063301f2dac1461047b578063301fdb54146104c0578063378efa371461057557806338af3eed146105ac57806338e998a71461060357806339c294be146106335780634f64b2be1461065e57806351c03b85146106ee57806360bd409e146107125780636352211e146107435780636b55264d146107b05780636eebb73f1461082757806370a0823114610956578063792a152d146109ad5780637d4061e614610a2e578063835fc6ca14610a9b5780638d3f1e4414610ac85780638da5cb5b14610b19578063969bece314610b705780639a877fb314610ba15780639fe0b36714610cb3578063a9059cbb14610d32578063ab07f05414610d7f578063b43d9ede14610dd0578063b5dcbb6914610e13578063b68e855214610e44578063c7876ea414610e9f578063cd9a27ba14610eca578063d5a506d014610efb578063de4b326214610f44578063e850efaf14610f71578063eb0bfa3814610faf578063f1d2165f14610fea578063f2fde38b14611019578063f44b79b31461105c578063f4d176e114611073578063f835a686146110ca578063fa5d174d146110e1575b600080fd5b34801561024c57600080fd5b5061028b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611135565b005b34801561029957600080fd5b506102a26112fc565b604051808215151515815260200191505060405180910390f35b3480156102c857600080fd5b506102d1611301565b6040518082815260200191505060405180910390f35b3480156102f357600080fd5b50610328600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061130e565b005b34801561033657600080fd5b5061033f6113ad565b604051808215151515815260200191505060405180910390f35b34801561036557600080fd5b506103c4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113c4565b005b3480156103d257600080fd5b50610407600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115cc565b6040518082815260200191505060405180910390f35b34801561042957600080fd5b50610448600480360381019080803590602001909291905050506115e4565b005b34801561045657600080fd5b50610479600480360381019080803561ffff169060200190929190505050611649565b005b34801561048757600080fd5b506104aa600480360381019080803561ffff1690602001909291905050506117bd565b6040518082815260200191505060405180910390f35b3480156104cc57600080fd5b506104fb600480360381019080803560030b9060200190929190803560030b9060200190929190505050611924565b6040518084603160200280838360005b8381101561052657808201518184015260208101905061050b565b5050505090500183603160200280838360005b83811015610554578082015181840152602081019050610539565b505050509050018260ff1660ff168152602001935050505060405180910390f35b34801561058157600080fd5b5061058a611b62565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b3480156105b857600080fd5b506105c1611b78565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610631600480360381019080803560030b9060200190929190803560030b9060200190929190505050611b9e565b005b34801561063f57600080fd5b506106486121e8565b6040518082815260200191505060405180910390f35b34801561066a57600080fd5b50610689600480360381019080803590602001909291905050506121ee565b604051808560ff1660ff1681526020018461ffff1661ffff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200194505050505060405180910390f35b610710600480360381019080803561ffff169060200190929190505050612268565b005b34801561071e57600080fd5b50610741600480360381019080803561ffff169060200190929190505050612711565b005b34801561074f57600080fd5b5061076e600480360381019080803590602001909291905050506127e6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107bc57600080fd5b50610825600480360381019080803561ffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050612830565b005b34801561083357600080fd5b5061095460048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050612963565b005b34801561096257600080fd5b50610997600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612a4b565b6040518082815260200191505060405180910390f35b3480156109b957600080fd5b50610a2c600480360381019080803561ffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050612a94565b005b348015610a3a57600080fd5b50610a5960048036038101908080359060200190929190505050612c47565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610aa757600080fd5b50610ac660048036038101908080359060200190929190505050612c7a565b005b348015610ad457600080fd5b50610b03600480360381019080803560030b9060200190929190803560030b9060200190929190505050612d65565b6040518082815260200191505060405180910390f35b348015610b2557600080fd5b50610b2e612d8a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b7c57600080fd5b50610b9f600480360381019080803561ffff169060200190929190505050612daf565b005b348015610bad57600080fd5b50610bd0600480360381019080803561ffff169060200190929190505050612e76565b604051808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018760ff1660ff16815260200186815260200180602001851515151581526020018415151515815260200183151515158152602001828103825286818151815260200191508051906020019080838360005b83811015610c72578082015181840152602081019050610c57565b50505050905090810190601f168015610c9f5780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390f35b348015610cbf57600080fd5b50610ce2600480360381019080803561ffff169060200190929190505050612fa4565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390f35b348015610d3e57600080fd5b50610d7d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612fee565b005b348015610d8b57600080fd5b50610dba600480360381019080803560030b9060200190929190803560030b90602001909291905050506132d2565b6040518082815260200191505060405180910390f35b348015610ddc57600080fd5b50610e11600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506136ab565b005b348015610e1f57600080fd5b50610e42600480360381019080803561ffff16906020019092919050505061374a565b005b348015610e5057600080fd5b50610e9d600480360381019080803561ffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506138b2565b005b348015610eab57600080fd5b50610eb4613afa565b6040518082815260200191505060405180910390f35b348015610ed657600080fd5b50610edf613b00565b604051808260ff1660ff16815260200191505060405180910390f35b348015610f0757600080fd5b50610f2a600480360381019080803561ffff169060200190929190505050613b13565b604051808215151515815260200191505060405180910390f35b348015610f5057600080fd5b50610f6f60048036038101908080359060200190929190505050613b48565b005b348015610f7d57600080fd5b50610fad600480360381019080803561ffff169060200190929190803560ff169060200190929190505050613bad565b005b348015610fbb57600080fd5b50610fe8600480360381019080803561ffff16906020019092919080359060200190929190505050613d5f565b005b348015610ff657600080fd5b50610fff613ec6565b604051808215151515815260200191505060405180910390f35b34801561102557600080fd5b5061105a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613ed9565b005b34801561106857600080fd5b5061107161402e565b005b34801561107f57600080fd5b5061108861410b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156110d657600080fd5b506110df614131565b005b3480156110ed57600080fd5b5061110c600480360381019080803590602001909291905050506141e5565b604051808360030b60030b81526020018260030b60030b81526020019250505060405180910390f35b803373ffffffffffffffffffffffffffffffffffffffff16600c8281548110151561115c57fe5b906000526020600020906003020160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156112015760003411156111fc573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156111fa573d6000803e3d6000fd5b505b6112f7565b828073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff161415151561123e57600080fd5b836003600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a3505b505050565b600181565b6000600c80549050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561136957600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600860009054906101000a900460ff16905090565b803373ffffffffffffffffffffffffffffffffffffffff16600c828154811015156113eb57fe5b906000526020600020906003020160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561149057600034111561148b573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015611489573d6000803e3d6000fd5b505b6115c6565b81838073ffffffffffffffffffffffffffffffffffffffff166003600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156114ff57600080fd5b84600c8581548110151561150f57fe5b906000526020600020906003020160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a350505b50505050565b60026020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561163f57600080fd5b80600a8190555050565b3373ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156116a557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600760008361ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561171d576117ba565b42600760008361ffff1661ffff16815260200190815260200160002060020154118061176757506000600760008361ffff1661ffff16815260200190815260200160002060020154145b15611771576117ba565b6117b981600760008461ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16614223565b5b50565b60008073ffffffffffffffffffffffffffffffffffffffff16600660008461ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561185857600760008361ffff1661ffff16815260200190815260200160002060010154905061191f565b600073ffffffffffffffffffffffffffffffffffffffff16600760008461ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156118fc576706f05b59d3b20000600760008461ffff1661ffff1681526020019081526020016000206001015401905061191e565b600660008361ffff1661ffff1681526020019081526020016000206001015490505b5b919050565b61192c614753565b611934614777565b600080600061194161479b565b6003880392505b6003880160030b8360030b131515611b4f576003870391505b6003870160030b8260030b131515611b42578260030b8860030b14801561198d57508160030b8760030b145b1561199757611b35565b600c600460008560030b60030b815260200190815260200160002060008460030b60030b8152602001908152602001600020548154811015156119d657fe5b9060005260206000209060030201608060405190810160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900461ffff1661ffff1661ffff168152602001600182015481526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250509050600081604001511115611b3457600b60009054906101000a900463ffffffff1663ffffffff168160400151811515611ac357fe5b04868560ff16603181101515611ad557fe5b6020020181815250508060600151858560ff16603181101515611af457fe5b602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505083806001019450505b5b8180600101925050611961565b8280600101935050611948565b8585859550955095505050509250925092565b600b60009054906101000a900463ffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080611ba9614753565b611bb1614777565b6000806000600860009054906101000a900460ff161515611bd157600080fd5b600c600460008b60030b60030b815260200190815260200160002060008a60030b60030b815260200190815260200160002054815481101515611c1057fe5b906000526020600020906003020196506000600460008b60030b60030b815260200190815260200160002060008a60030b60030b8152602001908152602001600020541480611c63575060008760010154115b80611cbf5750600073ffffffffffffffffffffffffffffffffffffffff168760020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b80611d055750600660008860000160019054906101000a900461ffff1661ffff1661ffff16815260200190815260200160002060030160019054906101000a900460ff16155b15611d60576000341115611d5b573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015611d59573d6000803e3d6000fd5b505b6121dd565b611d6a89896132d2565b95506000861415611dcb576000341115611dc6573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015611dc4573d6000803e3d6000fd5b505b6121dd565b34861115611e29576000341115611e24573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015611e22573d6000803e3d6000fd5b505b6121dd565b34861015611e7b573373ffffffffffffffffffffffffffffffffffffffff166108fc8734039081150290604051600060405180830381858888f19350505050158015611e79573d6000803e3d6000fd5b505b611e858989611924565b809550819650829750505050338760020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550858760010181905550600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550611f37858588614361565b50611f538760000160019054906101000a900461ffff166144e0565b60ff169150600073ffffffffffffffffffffffffffffffffffffffff16600660008960000160019054906101000a900461ffff1661ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015611fe55750606482115b15612146576064808303600a546002860a60ff16020260648403600954020181151561200d57fe5b049050600660008860000160019054906101000a900461ffff1661ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156120a6573d6000803e3d6000fd5b50600660008860000160019054906101000a900461ffff1661ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7e20eee8794e3a490330b424b5875ba62ffefb32b4ae48090cb82edfc2d2ec89826040518082815260200191505060405180910390a25b3373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600460008d60030b60030b815260200190815260200160002060008c60030b60030b8152602001908152602001600020546040518082815260200191505060405180910390a35b505050505050505050565b600a5481565b600c818154811015156121fd57fe5b90600052602060002090600302016000915090508060000160009054906101000a900460ff16908060000160019054906101000a900461ffff16908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905084565b600080600860009054906101000a900460ff16151561228657600080fd5b826000600760008361ffff1661ffff16815260200190815260200160002060020154141580156122d3575042600760008361ffff1661ffff16815260200190815260200160002060020154105b806123495750600073ffffffffffffffffffffffffffffffffffffffff16600660008361ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b8061237d5750600660008261ffff1661ffff16815260200190815260200160002060030160009054906101000a900460ff16155b156123d85760003411156123d3573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156123d1573d6000803e3d6000fd5b505b61270b565b600073ffffffffffffffffffffffffffffffffffffffff16600760008661ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561247c576706f05b59d3b20000600760008661ffff1661ffff1681526020019081526020016000206001015401925061249e565b600660008561ffff1661ffff1681526020019081526020016000206001015492505b348311156124fc5760003411156124f7573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156124f5573d6000803e3d6000fd5b505b61270a565b600760008561ffff1661ffff1681526020019081526020016000209150600073ffffffffffffffffffffffffffffffffffffffff168260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156125e7578160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc83600101549081150290604051600060405180830381858888f193505050501580156125e1573d6000803e3d6000fd5b50612619565b8361ffff167ff6e8b71db70830e39e2c98f38b929b65c3521e6479cc5fa19b21567574f2b7a460405160405180910390a25b62093a8042018260020181905550338260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503482600101819055508361ffff167f29a276aafcd155473a77c82e5c2a4ccc84d83bac0fcd454d1e9ca6dacecf0c1f3334600760008961ffff1661ffff16815260200190815260200160002060020154604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a25b5b50505050565b3373ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561276d57600080fd5b6001600660008361ffff1661ffff16815260200190815260200160002060030160016101000a81548160ff0219169083151502179055507fb51fb8bbfa3da24418034519117a50979b837f70e121296bc026ee665ce79b2381604051808261ffff1661ffff16815260200191505060405180910390a150565b6000600c828154811015156127f757fe5b906000526020600020906003020160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561288b57600080fd5b80600660008461ffff1661ffff16815260200190815260200160002060020190805190602001906128bd9291906147e1565b508161ffff167fb06f576e825ec000eb0407092b3150b13f3c68cc964d0a5a8405c0b715e714ac826040518080602001828103825283818151815260200191508051906020019080838360005b8381101561292557808201518184015260208101905061290a565b50505050905090810190601f1680156129525780820380516001836020036101000a031916815260200191505b509250505060405180910390a25050565b60003373ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156129c157600080fd5b600090505b8451811015612a4457612a3785828151811015156129e057fe5b9060200190602002015185838151811015156129f857fe5b906020019060200201518584815181101515612a1057fe5b906020019060200201518585815181101515612a2857fe5b906020019060200201516145a6565b80806001019150506129c6565b5050505050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60003373ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612af257600080fd5b600860009054906101000a900460ff161515612b0d57600080fd5b600660008561ffff1661ffff16815260200190815260200160002060030160029054906101000a900460ff1615612b4357612c41565b600660008561ffff1661ffff1681526020019081526020016000209050828160010181905550600b60049054906101000a900460ff168160000160146101000a81548160ff021916908360ff16021790555060008160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081816002019080519060200190612bf19291906147e1565b5060018160030160026101000a81548160ff0219169083151502179055508361ffff167f399f06325e5cc0f4ee1fb06491dbac3bb10e0b26fe872a831673a1b84e326c3560405160405180910390a25b50505050565b60036020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612cd557600080fd5b3073ffffffffffffffffffffffffffffffffffffffff1631811115612cf957600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612d61573d6000803e3d6000fd5b5050565b6004602052816000526040600020602052806000526040600020600091509150505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612e0b57600080fd5b6001600660008361ffff1661ffff16815260200190815260200160002060030160006101000a81548160ff0219169083151502179055508061ffff167f1f4df03e985a1c2625c2bb5c99d6baabdcf19970943fc02c21110cf810fe48ed60405160405180910390a250565b60066020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060000160149054906101000a900460ff1690806001015490806002018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612f615780601f10612f3657610100808354040283529160200191612f61565b820191906000526020600020905b815481529060010190602001808311612f4457829003601f168201915b5050505050908060030160009054906101000a900460ff16908060030160019054906101000a900460ff16908060030160029054906101000a900460ff16905087565b60076020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154905083565b803373ffffffffffffffffffffffffffffffffffffffff16600c8281548110151561301557fe5b906000526020600020906003020160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156130ba5760003411156130b5573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156130b3573d6000803e3d6000fd5b505b6132cd565b828073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff16141515156130f757600080fd5b82848073ffffffffffffffffffffffffffffffffffffffff166003600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561316657600080fd5b85600c8681548110151561317657fe5b906000526020600020906003020160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600190039190505550600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060010191905055508573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a35050505b505050565b60006132dc61479b565b6132e4614861565b6132ec614883565b6000806000806000600460008c60030b60030b815260200190815260200160002060008b60030b60030b81526020019081526020016000205414156133305761369e565b600c600460008c60030b60030b815260200190815260200160002060008b60030b60030b81526020019081526020016000205481548110151561336f57fe5b9060005260206000209060030201608060405190810160405290816000820160009054906101000a900460ff1660ff1660ff1681526020016000820160019054906101000a900461ffff1661ffff1661ffff168152602001600182015481526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050965060038a0360030b86600060028110151561343e57fe5b6020020181815250506003890360030b86600160028110151561345d57fe5b6020020181815250506040805190810160405280600081526020016000815250945060038a0393505b60038a0160030b8460030b1315156135d8576003890392505b6003890160030b8360030b1315156135cb578360030b8a60030b1480156134cb57508260030b8960030b145b156134d5576135be565b6000600c600460008760030b60030b815260200190815260200160002060008660030b60030b81526020019081526020016000205481548110151561351657fe5b90600052602060002090600302016001015411156135bd57600c600460008660030b60030b815260200190815260200160002060008560030b60030b81526020019081526020016000205481548110151561356d57fe5b90600052602060002090600302016001015485600160028110151561358e57fe5b6020020181815101915081815250508460006002811015156135ac57fe5b602002018051809190600101815250505b5b828060010193505061349f565b8380600101945050613486565b866020015191506135e8826144e0565b905060008560006002811015156135fb57fe5b602002015114156136215760648160ff166009540281151561361957fe5b04975061369d565b60648160ff16600a54600288600060028110151561363b57fe5b60200201510a020281151561364c57fe5b04600b60009054906101000a900463ffffffff1663ffffffff1686600160028110151561367557fe5b602002015181151561368357fe5b0460648360ff166009540281151561369757fe5b04010197505b5b5050505050505092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561370657600080fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff16600660008361ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156137c357600080fd5b3373ffffffffffffffffffffffffffffffffffffffff16600760008361ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561383b57600080fd5b42600760008361ffff1661ffff1681526020019081526020016000206002015410151561386757600080fd5b6138af81600760008461ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16614223565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561390f57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660008661ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156139b25750600660008561ffff1661ffff16815260200190815260200160002060030160009054906101000a900460ff16155b15156139bd57600080fd5b82600660008661ffff1661ffff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760008561ffff1661ffff1681526020019081526020016000209050428160020181905550828160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508181600101819055508361ffff167f31829e9d057f1095a6016bb319e553b5fa64419f5ad8b0147aeb1586b1dc3d0e84604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a250505050565b60095481565b600b60049054906101000a900460ff1681565b6000600660008361ffff1661ffff16815260200190815260200160002060030160029054906101000a900460ff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613ba357600080fd5b8060098190555050565b813373ffffffffffffffffffffffffffffffffffffffff16600660008361ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613c77576000341115613c72573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015613c70573d6000803e3d6000fd5b505b613d5a565b600860009054906101000a900460ff161515613c9257600080fd5b60648260ff1611158015613caa575060008260ff1610155b1515613cb557600080fd5b81600660008561ffff1661ffff16815260200190815260200160002060000160146101000a81548160ff021916908360ff1602179055508261ffff167fc72bc3ebe54db6ad5d04be20eb76955c1fbdfc05fc89a45d3959eca9f75e77cb600660008661ffff1661ffff16815260200190815260200160002060000160149054906101000a900460ff16604051808260ff1660ff16815260200191505060405180910390a25b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613dba57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660008461ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015613e5d5750600660008361ffff1661ffff16815260200190815260200160002060030160009054906101000a900460ff16155b15613ec25780600660008461ffff1661ffff168152602001908152602001600020600101819055508161ffff167f334cd32957a0eb9f4c727ed73fab8a13424e9da07e864bd7beb3f84c7650b3e8826040518082815260200191505060405180910390a25b5050565b600860009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613f3457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515613f7057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561408957600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015614108573d6000803e3d6000fd5b50565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561418c57600080fd5b6000600860006101000a81548160ff0219169083151502179055507f75db2c8af3a77c8f79f1e5f6f7606c455d1d3d974acad372b8f4c38d0b541a396001604051808215151515815260200191505060405180910390a1565b60056020528060005260406000206000915090508060000160009054906101000a900460030b908060000160049054906101000a900460030b905082565b80600660008461ffff1661ffff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600660008461ffff1661ffff16815260200190815260200160002060030160006101000a81548160ff0219169083151502179055508161ffff167f31829e9d057f1095a6016bb319e553b5fa64419f5ad8b0147aeb1586b1dc3d0e600660008561ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a25050565b600080600090505b60318160ff1610156144d557600073ffffffffffffffffffffffffffffffffffffffff16848260ff1660318110151561439e57fe5b602002015173ffffffffffffffffffffffffffffffffffffffff1614156143c4576144c8565b838160ff166031811015156143d557fe5b602002015173ffffffffffffffffffffffffffffffffffffffff166108fc868360ff1660318110151561440457fe5b60200201519081150290604051600060405180830381858888f19350505050158015614434573d6000803e3d6000fd5b50838160ff1660318110151561444657fe5b602002015173ffffffffffffffffffffffffffffffffffffffff167f5afeca38b2064c23a692c4cf353015d80ab3ecc417b4f893f372690c11fbd9a6868360ff1660318110151561449357fe5b60200201516040518082815260200191505060405180910390a2848160ff166031811015156144be57fe5b6020020151830392505b8080600101915050614369565b829150509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff16600660008461ffff1661ffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561458b57600660008361ffff1661ffff16815260200190815260200160002060000160149054906101000a900460ff1660640190506145a1565b600b60049054906101000a900460ff1660640190505b919050565b6000600c80548091906001016145bc91906148a5565b50600c6001600c80549050038154811015156145d457fe5b906000526020600020906003020190508260ff168160000160016101000a81548161ffff021916908361ffff160217905550818160000160006101000a81548160ff021916908360ff160217905550600081600101819055506001600c8054905003600460008760030b60030b815260200190815260200160002060008660030b60030b81526020019081526020016000208190555060408051908101604052808660030b81526020018560030b815250600560006001600c8054905003815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908360030b63ffffffff16021790555060208201518160000160046101000a81548163ffffffff021916908360030b63ffffffff1602179055509050507f8f32e652c6806b682ac4685b78efed8695949d3dc61a1d22e96fedea32bab1f385856001600c8054905003604051808460030b81526020018360030b8152602001828152602001935050505060405180910390a15050505050565b61062060405190810160405280603190602082028038833980820191505090505090565b61062060405190810160405280603190602082028038833980820191505090505090565b608060405190810160405280600060ff168152602001600061ffff16815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061482257805160ff1916838001178555614850565b82800160010185558215614850579182015b8281111561484f578251825591602001919060010190614834565b5b50905061485d91906148d7565b5090565b6040805190810160405280600290602082028038833980820191505090505090565b6040805190810160405280600290602082028038833980820191505090505090565b8154818355818111156148d2576003028160030283600052602060002091820191016148d191906148fc565b5b505050565b6148f991905b808211156148f55760008160009055506001016148dd565b5090565b90565b61497091905b8082111561496c57600080820160006101000a81549060ff02191690556000820160016101000a81549061ffff021916905560018201600090556002820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600301614902565b5090565b905600a165627a7a72305820be3d31cf1b4ded27c2bcd792c5a6fae0969aad5c77f55fcd0f7ed783874846fd0029
Swarm Source
bzzr://be3d31cf1b4ded27c2bcd792c5a6fae0969aad5c77f55fcd0f7ed783874846fd
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.09
Net Worth in ETH
0.00004
Token Allocations
ETH
100.00%
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| ETH | 100.00% | $2,284.9 | 0.00004 | $0.091396 |
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.