Feature Tip: Add private address tag to any address under My Name Tag !
Latest 25 from a total of 5,610 transactions
| Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer | 12149682 | 1682 days ago | IN | 0.05173 ETH | 0.004683 | ||||
| Transfer | 12149653 | 1682 days ago | IN | 0.07118 ETH | 0.004452 | ||||
| Transfer | 12148739 | 1682 days ago | IN | 0.07763502 ETH | 0.005502 | ||||
| Transfer | 12100756 | 1690 days ago | IN | 0.03759585 ETH | 0.00334631 | ||||
| Transfer | 12099242 | 1690 days ago | IN | 0.03759585 ETH | 0.0033884 | ||||
| Transfer | 7887508 | 2349 days ago | IN | 0 ETH | 0.00021 | ||||
| Enable Transfers | 5344582 | 2780 days ago | IN | 0 ETH | 0.00012809 | ||||
| Transfer | 5303418 | 2787 days ago | IN | 1 ETH | 0.00044196 | ||||
| Buy Tokens | 5303276 | 2787 days ago | IN | 1 ETH | 0.00081679 | ||||
| Finalize | 5303213 | 2787 days ago | IN | 0 ETH | 0.0001576 | ||||
| Buy Tokens | 5302804 | 2787 days ago | IN | 0.107079 ETH | 0.00004099 | ||||
| Transfer | 5302744 | 2787 days ago | IN | 0.107079 ETH | 0.0010523 | ||||
| Buy Tokens | 5302732 | 2787 days ago | IN | 1.5 ETH | 0.00160105 | ||||
| Buy Tokens | 5302726 | 2787 days ago | IN | 0.5 ETH | 0.0003672 | ||||
| Transfer | 5302717 | 2787 days ago | IN | 0.107079 ETH | 0.0010523 | ||||
| Buy Tokens | 5302705 | 2787 days ago | IN | 1 ETH | 0.0045988 | ||||
| Buy Tokens | 5302652 | 2787 days ago | IN | 2 ETH | 0.00437884 | ||||
| Buy Tokens | 5302639 | 2787 days ago | IN | 0.3 ETH | 0.00010694 | ||||
| Buy Tokens | 5302632 | 2787 days ago | IN | 1.6135 ETH | 0.00018385 | ||||
| Buy Tokens | 5302621 | 2787 days ago | IN | 0.15 ETH | 0.00160297 | ||||
| Buy Tokens | 5302610 | 2787 days ago | IN | 0.11 ETH | 0.00438146 | ||||
| Transfer | 5302602 | 2787 days ago | IN | 0.107079 ETH | 0.0010523 | ||||
| Buy Tokens | 5302591 | 2787 days ago | IN | 1 ETH | 0.00556134 | ||||
| Transfer | 5302588 | 2787 days ago | IN | 0.107079 ETH | 0.00105 | ||||
| Transfer | 5302579 | 2787 days ago | IN | 0.107079 ETH | 0.00008418 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
To
|
|||
|---|---|---|---|---|---|---|---|
| Transfer | 5302732 | 2787 days ago | 1.5 ETH | ||||
| Transfer | 5302726 | 2787 days ago | 0.5 ETH | ||||
| Transfer | 5302705 | 2787 days ago | 1 ETH | ||||
| Transfer | 5302652 | 2787 days ago | 2 ETH | ||||
| Transfer | 5302639 | 2787 days ago | 0.3 ETH | ||||
| Transfer | 5302632 | 2787 days ago | 1.6135 ETH | ||||
| Transfer | 5302621 | 2787 days ago | 0.15 ETH | ||||
| Transfer | 5302610 | 2787 days ago | 0.11 ETH | ||||
| Transfer | 5302591 | 2787 days ago | 1 ETH | ||||
| Transfer | 5302547 | 2787 days ago | 0.4992 ETH | ||||
| Transfer | 5302476 | 2787 days ago | 0.1388 ETH | ||||
| Transfer | 5302448 | 2787 days ago | 0.29 ETH | ||||
| Transfer | 5302418 | 2787 days ago | 1.1 ETH | ||||
| Transfer | 5302410 | 2787 days ago | 0.11 ETH | ||||
| Transfer | 5302358 | 2787 days ago | 0.107079 ETH | ||||
| Transfer | 5302349 | 2787 days ago | 0.2007063 ETH | ||||
| Transfer | 5302344 | 2787 days ago | 1.151 ETH | ||||
| Transfer | 5302333 | 2787 days ago | 0.2 ETH | ||||
| Transfer | 5302200 | 2787 days ago | 0.30659 ETH | ||||
| Transfer | 5302197 | 2787 days ago | 2 ETH | ||||
| Transfer | 5302185 | 2787 days ago | 0.10708 ETH | ||||
| Transfer | 5302181 | 2787 days ago | 3 ETH | ||||
| Transfer | 5302179 | 2787 days ago | 0.3 ETH | ||||
| Transfer | 5302120 | 2787 days ago | 0.15 ETH | ||||
| Transfer | 5302096 | 2787 days ago | 1 ETH |
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
This contract contains unverified libraries: ECRecovery
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
NectarCrowdsale
Compiler Version
v0.4.19+commit.c4cbbb05
Optimization Enabled:
No with 0 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2018-02-26
*/
pragma solidity ^0.4.13;
contract ERC20Basic {
function totalSupply() public view returns (uint256);
function balanceOf(address who) public view returns (uint256);
function transfer(address to, uint256 value) public returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
}
contract ERC20 is ERC20Basic {
function allowance(address owner, address spender) public view returns (uint256);
function transferFrom(address from, address to, uint256 value) public returns (bool);
function approve(address spender, uint256 value) public returns (bool);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
contract BasicToken is ERC20Basic {
using SafeMath for uint256;
mapping(address => uint256) balances;
uint256 totalSupply_;
/**
* @dev total number of tokens in existence
*/
function totalSupply() public view returns (uint256) {
return totalSupply_;
}
/**
* @dev transfer token for a specified address
* @param _to The address to transfer to.
* @param _value The amount to be transferred.
*/
function transfer(address _to, uint256 _value) public returns (bool) {
require(_to != address(0));
require(_value <= balances[msg.sender]);
// SafeMath.sub will throw if there is not enough balance.
balances[msg.sender] = balances[msg.sender].sub(_value);
balances[_to] = balances[_to].add(_value);
Transfer(msg.sender, _to, _value);
return true;
}
/**
* @dev Gets the balance of the specified address.
* @param _owner The address to query the the balance of.
* @return An uint256 representing the amount owned by the passed address.
*/
function balanceOf(address _owner) public view returns (uint256 balance) {
return balances[_owner];
}
}
contract StandardToken is ERC20, BasicToken {
mapping (address => mapping (address => uint256)) internal allowed;
/**
* @dev Transfer tokens from one address to another
* @param _from address The address which you want to send tokens from
* @param _to address The address which you want to transfer to
* @param _value uint256 the amount of tokens to be transferred
*/
function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
require(_to != address(0));
require(_value <= balances[_from]);
require(_value <= allowed[_from][msg.sender]);
balances[_from] = balances[_from].sub(_value);
balances[_to] = balances[_to].add(_value);
allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
Transfer(_from, _to, _value);
return true;
}
/**
* @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
*
* Beware that changing an allowance with this method brings the risk that someone may use both the old
* and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
* race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
* @param _spender The address which will spend the funds.
* @param _value The amount of tokens to be spent.
*/
function approve(address _spender, uint256 _value) public returns (bool) {
allowed[msg.sender][_spender] = _value;
Approval(msg.sender, _spender, _value);
return true;
}
/**
* @dev Function to check the amount of tokens that an owner allowed to a spender.
* @param _owner address The address which owns the funds.
* @param _spender address The address which will spend the funds.
* @return A uint256 specifying the amount of tokens still available for the spender.
*/
function allowance(address _owner, address _spender) public view returns (uint256) {
return allowed[_owner][_spender];
}
/**
* @dev Increase the amount of tokens that an owner allowed to a spender.
*
* approve should be called when allowed[_spender] == 0. To increment
* allowed value is better to use this function to avoid 2 calls (and wait until
* the first transaction is mined)
* From MonolithDAO Token.sol
* @param _spender The address which will spend the funds.
* @param _addedValue The amount of tokens to increase the allowance by.
*/
function increaseApproval(address _spender, uint _addedValue) public returns (bool) {
allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
return true;
}
/**
* @dev Decrease the amount of tokens that an owner allowed to a spender.
*
* approve should be called when allowed[_spender] == 0. To decrement
* allowed value is better to use this function to avoid 2 calls (and wait until
* the first transaction is mined)
* From MonolithDAO Token.sol
* @param _spender The address which will spend the funds.
* @param _subtractedValue The amount of tokens to decrease the allowance by.
*/
function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) {
uint oldValue = allowed[msg.sender][_spender];
if (_subtractedValue > oldValue) {
allowed[msg.sender][_spender] = 0;
} else {
allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
}
Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
return true;
}
}
library SafeMath {
/**
* @dev Multiplies two numbers, throws on overflow.
*/
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
assert(c / a == b);
return c;
}
/**
* @dev Integer division of two numbers, truncating the quotient.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
// assert(b > 0); // Solidity automatically throws when dividing by 0
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
/**
* @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
assert(b <= a);
return a - b;
}
/**
* @dev Adds two numbers, throws on overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
assert(c >= a);
return c;
}
}
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.
*/
function Ownable() 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));
OwnershipTransferred(owner, newOwner);
owner = newOwner;
}
}
contract MintableToken is StandardToken, Ownable {
event Mint(address indexed to, uint256 amount);
event MintFinished();
bool public mintingFinished = false;
modifier canMint() {
require(!mintingFinished);
_;
}
/**
* @dev Function to mint tokens
* @param _to The address that will receive the minted tokens.
* @param _amount The amount of tokens to mint.
* @return A boolean that indicates if the operation was successful.
*/
function mint(address _to, uint256 _amount) onlyOwner canMint public returns (bool) {
totalSupply_ = totalSupply_.add(_amount);
balances[_to] = balances[_to].add(_amount);
Mint(_to, _amount);
Transfer(address(0), _to, _amount);
return true;
}
/**
* @dev Function to stop minting new tokens.
* @return True if the operation was successful.
*/
function finishMinting() onlyOwner canMint public returns (bool) {
mintingFinished = true;
MintFinished();
return true;
}
}
contract NectarToken is MintableToken {
string public name = "Nectar";
string public symbol = "NCT";
uint8 public decimals = 18;
bool public transfersEnabled = false;
event TransfersEnabled();
// Disable transfers until after the sale
modifier whenTransfersEnabled() {
require(transfersEnabled);
_;
}
modifier whenTransfersNotEnabled() {
require(!transfersEnabled);
_;
}
function enableTransfers() onlyOwner whenTransfersNotEnabled public {
transfersEnabled = true;
TransfersEnabled();
}
function transfer(address to, uint256 value) public whenTransfersEnabled returns (bool) {
return super.transfer(to, value);
}
function transferFrom(address from, address to, uint256 value) public whenTransfersEnabled returns (bool) {
return super.transferFrom(from, to, value);
}
// Approves and then calls the receiving contract
function approveAndCall(address _spender, uint256 _value, bytes _extraData) public returns (bool success) {
allowed[msg.sender][_spender] = _value;
Approval(msg.sender, _spender, _value);
// call the receiveApproval function on the contract you want to be notified. This crafts the function signature manually so one doesn't have to include a contract in here just for this.
// receiveApproval(address _from, uint256 _value, address _tokenContract, bytes _extraData)
// it is assumed that when does this that the call *should* succeed, otherwise one would use vanilla approve instead.
// solium-disable-next-line security/no-low-level-calls
require(_spender.call(bytes4(bytes32(keccak256("receiveApproval(address,uint256,address,bytes)"))), msg.sender, _value, this, _extraData));
return true;
}
}
contract Pausable is Ownable {
event Pause();
event Unpause();
bool public paused = false;
/**
* @dev Modifier to make a function callable only when the contract is not paused.
*/
modifier whenNotPaused() {
require(!paused);
_;
}
/**
* @dev Modifier to make a function callable only when the contract is paused.
*/
modifier whenPaused() {
require(paused);
_;
}
/**
* @dev called by the owner to pause, triggers stopped state
*/
function pause() onlyOwner whenNotPaused public {
paused = true;
Pause();
}
/**
* @dev called by the owner to unpause, returns to normal state
*/
function unpause() onlyOwner whenPaused public {
paused = false;
Unpause();
}
}
contract NectarCrowdsale is Ownable, Pausable {
using SafeMath for uint256;
/** Maximum amount to raise in USD based on initial exchange rate */
uint256 constant maxCapUsd = 50000000;
/** Minumum amount per purchase in USD based on initial exchange rate*/
uint256 constant minimumPurchaseUsd = 100;
/** Tranche parameters */
uint256 constant tranche1ThresholdUsd = 5000000;
uint256 constant tranche1Rate = 37604;
uint256 constant tranche2ThresholdUsd = 10000000;
uint256 constant tranche2Rate = 36038;
uint256 constant tranche3ThresholdUsd = 15000000;
uint256 constant tranche3Rate = 34471;
uint256 constant tranche4ThresholdUsd = 20000000;
uint256 constant tranche4Rate = 32904;
uint256 constant standardTrancheRate= 31337;
/** The token being sold */
NectarToken public token;
/** Start timestamp when token purchases are allowed, inclusive */
uint256 public startTime;
/** End timestamp when token purchases are allowed, inclusive */
uint256 public endTime;
/** Set value of wei/usd used in cap and minimum purchase calculation */
uint256 public weiUsdExchangeRate;
/** Address where funds are collected */
address public wallet;
/** Address used to sign purchase authorizations */
address public purchaseAuthorizer;
/** Total amount of raised money in wei */
uint256 public weiRaised;
/** Cap in USD */
uint256 public capUsd;
/** Maximum amount of raised money in wei */
uint256 public cap;
/** Minumum amount of wei per purchase */
uint256 public minimumPurchase;
/** Have we canceled the sale? */
bool public isCanceled;
/** have we finalized the sale? */
bool public isFinalized;
/** Record of nonces -> purchases */
mapping (uint256 => bool) public purchases;
/**
* Event triggered on presale minting
* @param purchaser who paid for the tokens
* @param amount amount of tokens minted
*/
event PreSaleMinting(address indexed purchaser, uint256 amount);
/**
* Event triggered on token purchase
* @param purchaser who paid for the tokens
* @param value wei paid for purchase
* @param amount amount of tokens purchased
*/
event TokenPurchase(address indexed purchaser, uint256 value, uint256 amount);
/** Event triggered on sale cancelation */
event Canceled();
/** Event triggered on sale finalization */
event Finalized();
/**
* NectarCrowdsale constructor
* @param _startTime start timestamp when purchases are allowed, inclusive
* @param _endTime end timestamp when purchases are allowed, inclusive
* @param _initialWeiUsdExchangeRate initial rate of wei/usd used in cap and minimum purchase calculation
* @param _wallet wallet in which to collect the funds
* @param _purchaseAuthorizer address to verify purchase authorizations from
*/
function NectarCrowdsale(
uint256 _startTime,
uint256 _endTime,
uint256 _initialWeiUsdExchangeRate,
address _wallet,
address _purchaseAuthorizer
)
public
{
require(_startTime >= now);
require(_endTime >= _startTime);
require(_initialWeiUsdExchangeRate > 0);
require(_wallet != address(0));
require(_purchaseAuthorizer != address(0));
token = createTokenContract();
startTime = _startTime;
endTime = _endTime;
weiUsdExchangeRate = _initialWeiUsdExchangeRate;
wallet = _wallet;
purchaseAuthorizer = _purchaseAuthorizer;
capUsd = maxCapUsd;
// Updates cap and minimumPurchase based on capUsd and weiUsdExchangeRate
updateCapAndExchangeRate();
isCanceled = false;
isFinalized = false;
}
/** Disable usage of the fallback function, only accept eth from buyTokens */
function () external payable {
revert();
}
/** Only allow before the sale period */
modifier onlyPreSale() {
require(now < startTime);
_;
}
/**
* Directly mint tokens and assign to presale buyers
* @param purchaser Address to assign to
* @param tokenAmount amount of tokens to mint
*/
function mintPreSale(address purchaser, uint256 tokenAmount) public onlyOwner onlyPreSale {
require(purchaser != address(0));
require(tokenAmount > 0);
token.mint(purchaser, tokenAmount);
PreSaleMinting(purchaser, tokenAmount);
}
/**
* Buy tokens once authorized by the frontend
* @param nonce nonce parameter generated by the frontend
* @param authorizedAmount maximum purchase amount authorized for this transaction
* @param sig the signature generated by the frontned
*/
function buyTokens(uint256 authorizedAmount, uint256 nonce, bytes sig) public payable whenNotPaused {
require(msg.sender != address(0));
require(validPurchase(authorizedAmount, nonce, sig));
uint256 weiAmount = msg.value;
// calculate token amount to be created
uint256 rate = currentTranche();
uint256 tokens = weiAmount.mul(rate);
// update state
weiRaised = weiRaised.add(weiAmount);
purchases[nonce] = true;
token.mint(msg.sender, tokens);
TokenPurchase(msg.sender, weiAmount, tokens);
forwardFunds();
}
/** Cancel the sale */
function cancel() public onlyOwner {
require(!isCanceled);
require(!hasEnded());
Canceled();
isCanceled = true;
}
/** Finalize the sale */
function finalize() public onlyOwner {
require(!isFinalized);
require(hasEnded());
finalization();
Finalized();
isFinalized = true;
}
/**
* Set exchange rate before sale
* @param _weiUsdExchangeRate rate of wei/usd used in cap and minimum purchase calculation
*/
function setExchangeRate(uint256 _weiUsdExchangeRate) public onlyOwner onlyPreSale {
require(_weiUsdExchangeRate > 0);
weiUsdExchangeRate = _weiUsdExchangeRate;
updateCapAndExchangeRate();
}
/**
* Set exchange rate before sale
* @param _capUsd new cap in USD
*/
function setCapUsd(uint256 _capUsd) public onlyOwner onlyPreSale {
require(_capUsd <= maxCapUsd);
capUsd = _capUsd;
updateCapAndExchangeRate();
}
/** Enable token sales once sale is completed */
function enableTransfers() public onlyOwner {
require(isFinalized);
require(hasEnded());
token.enableTransfers();
}
/**
* Get the rate of tokens/wei in the current tranche
* @return the current tokens/wei rate
*/
function currentTranche() public view returns (uint256) {
uint256 currentFundingUsd = weiRaised.div(weiUsdExchangeRate);
if (currentFundingUsd <= tranche1ThresholdUsd) {
return tranche1Rate;
} else if (currentFundingUsd <= tranche2ThresholdUsd) {
return tranche2Rate;
} else if (currentFundingUsd <= tranche3ThresholdUsd) {
return tranche3Rate;
} else if (currentFundingUsd <= tranche4ThresholdUsd) {
return tranche4Rate;
} else {
return standardTrancheRate;
}
}
/** @return true if crowdsale event has ended */
function hasEnded() public view returns (bool) {
bool afterEnd = now > endTime;
bool capMet = weiRaised >= cap;
return afterEnd || capMet || isCanceled;
}
/** Get the amount collected in USD, needed for WINGS calculation. */
function totalCollected() public view returns (uint256) {
uint256 presale = maxCapUsd.sub(capUsd);
uint256 crowdsale = weiRaised.div(weiUsdExchangeRate);
return presale.add(crowdsale);
}
/** Creates the token to be sold. */
function createTokenContract() internal returns (NectarToken) {
return new NectarToken();
}
/** Create the 30% extra token supply at the end of the sale */
function finalization() internal {
// Create 30% NCT for company use
uint256 tokens = token.totalSupply().mul(3).div(10);
token.mint(wallet, tokens);
}
/** Forward ether to the fund collection wallet */
function forwardFunds() internal {
wallet.transfer(msg.value);
}
/** Update parameters dependant on capUsd and eiUsdEchangeRate */
function updateCapAndExchangeRate() internal {
cap = capUsd.mul(weiUsdExchangeRate);
minimumPurchase = minimumPurchaseUsd.mul(weiUsdExchangeRate);
}
/**
* Is a purchase transaction valid?
* @return true if the transaction can buy tokens
*/
function validPurchase(uint256 authorizedAmount, uint256 nonce, bytes sig) internal view returns (bool) {
// 84 = 20 byte address + 32 byte authorized amount + 32 byte nonce
bytes memory prefix = "\x19Ethereum Signed Message:\n84";
bytes32 hash = keccak256(prefix, msg.sender, authorizedAmount, nonce);
bool validAuthorization = ECRecovery.recover(hash, sig) == purchaseAuthorizer;
bool validNonce = !purchases[nonce];
bool withinPeriod = now >= startTime && now <= endTime;
bool aboveMinimum = msg.value >= minimumPurchase;
bool belowAuthorized = msg.value <= authorizedAmount;
bool belowCap = weiRaised.add(msg.value) <= cap;
return validAuthorization && validNonce && withinPeriod && aboveMinimum && belowAuthorized && belowCap;
}
}
library ECRecovery {
/**
* @dev Recover signer address from a message by using his signature
* @param hash bytes32 message, the hash is the signed message. What is recovered is the signer address.
* @param sig bytes signature, the signature is generated using web3.eth.sign()
*/
function recover(bytes32 hash, bytes sig) public pure returns (address) {
bytes32 r;
bytes32 s;
uint8 v;
//Check the signature length
if (sig.length != 65) {
return (address(0));
}
// Divide the signature in r, s and v variables
assembly {
r := mload(add(sig, 32))
s := mload(add(sig, 64))
v := byte(0, mload(add(sig, 96)))
}
// Version of signature should be 27 or 28, but 0 and 1 are also possible versions
if (v < 27) {
v += 27;
}
// If the version is correct return the signer address
if (v != 27 && v != 28) {
return (address(0));
} else {
return ecrecover(hash, v, r, s);
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[],"name":"capUsd","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isCanceled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"weiUsdExchangeRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"endTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"cap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"authorizedAmount","type":"uint256"},{"name":"nonce","type":"uint256"},{"name":"sig","type":"bytes"}],"name":"buyTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"weiRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"purchaseAuthorizer","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finalize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"wallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_capUsd","type":"uint256"}],"name":"setCapUsd","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"startTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"purchases","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"purchaser","type":"address"},{"name":"tokenAmount","type":"uint256"}],"name":"mintPreSale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isFinalized","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minimumPurchase","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"enableTransfers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currentTranche","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_weiUsdExchangeRate","type":"uint256"}],"name":"setExchangeRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalCollected","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"cancel","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"hasEnded","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":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_startTime","type":"uint256"},{"name":"_endTime","type":"uint256"},{"name":"_initialWeiUsdExchangeRate","type":"uint256"},{"name":"_wallet","type":"address"},{"name":"_purchaseAuthorizer","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"purchaser","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"PreSaleMinting","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"purchaser","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokenPurchase","type":"event"},{"anonymous":false,"inputs":[],"name":"Canceled","type":"event"},{"anonymous":false,"inputs":[],"name":"Finalized","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]Contract Creation Code
606060405260008060146101000a81548160ff02191690831515021790555034156200002a57600080fd5b60405160a08062005d0483398101604052808051906020019091908051906020019091908051906020019091908051906020019091908051906020019091905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550428510151515620000bb57600080fd5b848410151515620000cb57600080fd5b600083111515620000db57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156200011857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156200015557600080fd5b62000173620002b46401000000000262001ab4176401000000009004565b600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600281905550836003819055508260048190555081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506302faf08060088190555062000273620002dc6401000000000262001a2b176401000000009004565b6000600b60006101000a81548160ff0219169083151502179055506000600b60016101000a81548160ff021916908315150217905550505050505062000387565b6000620002c062000376565b604051809103906000f0801515620002d757600080fd5b905090565b6200030360045460085462000337640100000000026200177f179091906401000000009004565b6009819055506200032f600454606462000337640100000000026200177f179091906401000000009004565b600a81905550565b60008060008414156200034e57600091506200036f565b82840290508284828115156200036057fe5b041415156200036b57fe5b8091505b5092915050565b604051611f2a8062003dda83390190565b613a4380620003976000396000f30060606040526004361062000187576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806304659819146200018c5780630ed5a93314620001b857806311fa3f4f14620001e85780633197cbb61462000214578063355274ea14620002405780633d00b8e3146200026c5780633f4ba83a14620002d25780634042b66f14620002ea57806344c9e83d14620003165780634bb278f3146200036e578063521eb27314620003865780635c975abb14620003de5780636e0dd984146200040e57806378e9792514620004345780638392fe3114620004605780638456cb59146200049e5780638c25466a14620004b65780638d4e408314620004fb5780638da5cb5b146200052b578063aa2de6c31462000583578063af35c6c714620005af578063c404b3f614620005c7578063db068e0e14620005f3578063e29eb8361462000619578063ea8a1af01462000645578063ecb70fb7146200065d578063f2fde38b146200068d578063fc0c546a14620006c9575b600080fd5b34156200019857600080fd5b620001a262000721565b6040518082815260200191505060405180910390f35b3415620001c457600080fd5b620001ce62000727565b604051808215151515815260200191505060405180910390f35b3415620001f457600080fd5b620001fe6200073a565b6040518082815260200191505060405180910390f35b34156200022057600080fd5b6200022a62000740565b6040518082815260200191505060405180910390f35b34156200024c57600080fd5b6200025662000746565b6040518082815260200191505060405180910390f35b620002d0600480803590602001909190803590602001909190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506200074c565b005b3415620002de57600080fd5b620002e862000985565b005b3415620002f657600080fd5b6200030062000a45565b6040518082815260200191505060405180910390f35b34156200032257600080fd5b6200032c62000a4b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156200037a57600080fd5b6200038462000a71565b005b34156200039257600080fd5b6200039c62000b53565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415620003ea57600080fd5b620003f462000b79565b604051808215151515815260200191505060405180910390f35b34156200041a57600080fd5b62000432600480803590602001909190505062000b8c565b005b34156200044057600080fd5b6200044a62000c21565b6040518082815260200191505060405180910390f35b34156200046c57600080fd5b62000484600480803590602001909190505062000c27565b604051808215151515815260200191505060405180910390f35b3415620004aa57600080fd5b620004b462000c47565b005b3415620004c257600080fd5b620004f9600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505062000d09565b005b34156200050757600080fd5b6200051162000f00565b604051808215151515815260200191505060405180910390f35b34156200053757600080fd5b6200054162000f13565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156200058f57600080fd5b6200059962000f38565b6040518082815260200191505060405180910390f35b3415620005bb57600080fd5b620005c562000f3e565b005b3415620005d357600080fd5b620005dd62001069565b6040518082815260200191505060405180910390f35b3415620005ff57600080fd5b620006176004808035906020019091905050620010f2565b005b34156200062557600080fd5b6200062f62001183565b6040518082815260200191505060405180910390f35b34156200065157600080fd5b6200065b620011dc565b005b34156200066957600080fd5b62000673620012b5565b604051808215151515815260200191505060405180910390f35b34156200069957600080fd5b620006c7600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050620012f4565b005b3415620006d557600080fd5b620006df6200144b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60085481565b600b60009054906101000a900460ff1681565b60045481565b60035481565b60095481565b60008060008060149054906101000a900460ff161515156200076d57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515620007aa57600080fd5b620007b786868662001471565b1515620007c357600080fd5b349250620007d062001069565b9150620007e782846200177f90919063ffffffff16565b90506200080083600754620017be90919063ffffffff16565b6007819055506001600c600087815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1933836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156200090057600080fd5b6102c65a03f115156200091257600080fd5b50505060405180519050503373ffffffffffffffffffffffffffffffffffffffff167fcd60aa75dea3072fbc07ae6d7d856b5dc5f4eee88854f5b4abf7b680ef8bc50f8483604051808381526020018281526020019250505060405180910390a26200097d620017dd565b505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515620009e157600080fd5b600060149054906101000a900460ff161515620009fd57600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60075481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151562000acd57600080fd5b600b60019054906101000a900460ff1615151562000aea57600080fd5b62000af4620012b5565b151562000b0057600080fd5b62000b0a62001842565b7f6823b073d48d6e3a7d385eeb601452d680e74bb46afe3255a7d778f3a9b1768160405160405180910390a16001600b60016101000a81548160ff021916908315150217905550565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060149054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151562000be857600080fd5b6002544210151562000bf957600080fd5b6302faf080811115151562000c0d57600080fd5b8060088190555062000c1e62001a2b565b50565b60025481565b600c6020528060005260406000206000915054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151562000ca357600080fd5b600060149054906101000a900460ff1615151562000cc057600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151562000d6557600080fd5b6002544210151562000d7657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151562000db357600080fd5b60008111151562000dc357600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1983836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151562000e9157600080fd5b6102c65a03f1151562000ea357600080fd5b50505060405180519050508173ffffffffffffffffffffffffffffffffffffffff167f28a9aadb9d294b12744252591cec8238837beaa79898f4b9d64f9e0eca60a3aa826040518082815260200191505060405180910390a25050565b600b60019054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151562000f9a57600080fd5b600b60019054906101000a900460ff16151562000fb657600080fd5b62000fc0620012b5565b151562000fcc57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663af35c6c76040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15156200105257600080fd5b6102c65a03f115156200106457600080fd5b505050565b6000806200108560045460075462001a6a90919063ffffffff16565b9050624c4b40811115156200109f576192e49150620010ee565b6298968081111515620010b757618cc69150620010ee565b62e4e1c081111515620010cf576186a79150620010ee565b6301312d0081111515620010e8576180889150620010ee565b617a6991505b5090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156200114e57600080fd5b600254421015156200115f57600080fd5b6000811115156200116f57600080fd5b806004819055506200118062001a2b565b50565b6000806000620011a36008546302faf08062001a8690919063ffffffff16565b9150620011be60045460075462001a6a90919063ffffffff16565b9050620011d58183620017be90919063ffffffff16565b9250505090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156200123857600080fd5b600b60009054906101000a900460ff161515156200125557600080fd5b6200125f620012b5565b1515156200126c57600080fd5b7f1afb0ae590df277bcb3a37f88612725bf1f7df4755792b1548a7efe77985ff7760405160405180910390a16001600b60006101000a81548160ff021916908315150217905550565b600080600060035442119150600954600754101590508180620012d55750805b80620012ed5750600b60009054906101000a900460ff165b9250505090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156200135057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156200138d57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006200147d62001aa0565b60008060008060008060006040805190810160405280601c81526020017f19457468657265756d205369676e6564204d6573736167653a0a383400000000815250975087338d8d6040518085805190602001908083835b602083101515620014fb5780518252602082019150602081019050602083039250620014d4565b6001836020036101000a0380198251168184511680821785525050505050509050018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140183815260200182815260200194505050505060405180910390209650600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673c104e1b762e0e01bfcdee5a040573a9d36688c636319045a25898d6000604051602001526040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200180602001828103825283818151815260200191508051906020019080838360005b838110156200165357808201518184015260208101905062001636565b50505050905090810190601f168015620016815780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b15156200169f57600080fd5b6102c65a03f41515620016b157600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff16149550600c60008c815260200190815260200160002060009054906101000a900460ff1615945060025442101580156200170d57506003544211155b9350600a5434101592508b34111591506009546200173734600754620017be90919063ffffffff16565b11159050858015620017465750845b8015620017505750835b80156200175a5750825b8015620017645750815b80156200176e5750805b985050505050505050509392505050565b6000806000841415620017965760009150620017b7565b8284029050828482811515620017a857fe5b04141515620017b357fe5b8091505b5092915050565b6000808284019050838110151515620017d357fe5b8091505092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f1935050505015156200184057600080fd5b565b600062001919600a6200190a6003600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515620018df57600080fd5b6102c65a03f11515620018f157600080fd5b505050604051805190506200177f90919063ffffffff16565b62001a6a90919063ffffffff16565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f19600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151562001a0b57600080fd5b6102c65a03f1151562001a1d57600080fd5b505050604051805190505050565b62001a446004546008546200177f90919063ffffffff16565b60098190555062001a6260045460646200177f90919063ffffffff16565b600a81905550565b600080828481151562001a7957fe5b0490508091505092915050565b600082821115151562001a9557fe5b818303905092915050565b602060405190810160405280600081525090565b600062001ac062001adc565b604051809103906000f080151562001ad757600080fd5b905090565b604051611f2a8062001aee83390190560060606040526000600360146101000a81548160ff0219169083151502179055506040805190810160405280600681526020017f4e65637461720000000000000000000000000000000000000000000000000000815250600490805190602001906200006c92919062000139565b506040805190810160405280600381526020017f4e4354000000000000000000000000000000000000000000000000000000000081525060059080519060200190620000ba92919062000139565b506012600660006101000a81548160ff021916908360ff1602179055506000600660016101000a81548160ff02191690831515021790555033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001e8565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200017c57805160ff1916838001178555620001ad565b82800160010185558215620001ad579182015b82811115620001ac5782518255916020019190600101906200018f565b5b509050620001bc9190620001c0565b5090565b620001e591905b80821115620001e1576000816000905550600101620001c7565b5090565b90565b611d3280620001f86000396000f300606060405260043610610107576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305d2035b1461010c57806306fdde0314610139578063095ea7b3146101c757806318160ddd1461022157806323b872dd1461024a578063313ce567146102c357806340c10f19146102f2578063661884631461034c57806370a08231146103a65780637d64bcb4146103f35780638da5cb5b1461042057806395d89b4114610475578063a9059cbb14610503578063af35c6c71461055d578063bef97c8714610572578063cae9ca511461059f578063d73dd6231461063c578063dd62ed3e14610696578063f2fde38b14610702575b600080fd5b341561011757600080fd5b61011f61073b565b604051808215151515815260200191505060405180910390f35b341561014457600080fd5b61014c61074e565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018c578082015181840152602081019050610171565b50505050905090810190601f1680156101b95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101d257600080fd5b610207600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506107ec565b604051808215151515815260200191505060405180910390f35b341561022c57600080fd5b6102346108de565b6040518082815260200191505060405180910390f35b341561025557600080fd5b6102a9600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506108e8565b604051808215151515815260200191505060405180910390f35b34156102ce57600080fd5b6102d6610919565b604051808260ff1660ff16815260200191505060405180910390f35b34156102fd57600080fd5b610332600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061092c565b604051808215151515815260200191505060405180910390f35b341561035757600080fd5b61038c600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610b12565b604051808215151515815260200191505060405180910390f35b34156103b157600080fd5b6103dd600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610da3565b6040518082815260200191505060405180910390f35b34156103fe57600080fd5b610406610deb565b604051808215151515815260200191505060405180910390f35b341561042b57600080fd5b610433610eb3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561048057600080fd5b610488610ed9565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104c85780820151818401526020810190506104ad565b50505050905090810190601f1680156104f55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561050e57600080fd5b610543600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610f77565b604051808215151515815260200191505060405180910390f35b341561056857600080fd5b610570610fa6565b005b341561057d57600080fd5b610585611067565b604051808215151515815260200191505060405180910390f35b34156105aa57600080fd5b610622600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061107a565b604051808215151515815260200191505060405180910390f35b341561064757600080fd5b61067c600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061131b565b604051808215151515815260200191505060405180910390f35b34156106a157600080fd5b6106ec600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611517565b6040518082815260200191505060405180910390f35b341561070d57600080fd5b610739600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061159e565b005b600360149054906101000a900460ff1681565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107e45780601f106107b9576101008083540402835291602001916107e4565b820191906000526020600020905b8154815290600101906020018083116107c757829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b6000600660019054906101000a900460ff16151561090557600080fd5b6109108484846116f6565b90509392505050565b600660009054906101000a900460ff1681565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561098a57600080fd5b600360149054906101000a900460ff161515156109a657600080fd5b6109bb82600154611ab090919063ffffffff16565b600181905550610a12826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ab090919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610c23576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610cb7565b610c368382611ace90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e4957600080fd5b600360149054906101000a900460ff16151515610e6557600080fd5b6001600360146101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f6f5780601f10610f4457610100808354040283529160200191610f6f565b820191906000526020600020905b815481529060010190602001808311610f5257829003601f168201915b505050505081565b6000600660019054906101000a900460ff161515610f9457600080fd5b610f9e8383611ae7565b905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561100257600080fd5b600660019054906101000a900460ff1615151561101e57600080fd5b6001600660016101000a81548160ff0219169083151502179055507feadb24812ab3c9a55c774958184293ebdb6c7f6a2dbab11f397d80c86feb65d360405160405180910390a1565b600660019054906101000a900460ff1681565b600082600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff1660405180807f72656365697665417070726f76616c28616464726573732c75696e743235362c81526020017f616464726573732c627974657329000000000000000000000000000000000000815250602e01905060405180910390207c01000000000000000000000000000000000000000000000000000000009004338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828051906020019080838360005b838110156112bb5780820151818401526020810190506112a0565b50505050905090810190601f1680156112e85780820380516001836020036101000a031916815260200191505b5094505050505060006040518083038160008761646e5a03f192505050151561131057600080fd5b600190509392505050565b60006113ac82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ab090919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115fa57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561163657600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561173357600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561178057600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561180b57600080fd5b61185c826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ace90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118ef826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ab090919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119c082600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ace90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000808284019050838110151515611ac457fe5b8091505092915050565b6000828211151515611adc57fe5b818303905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611b2457600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611b7157600080fd5b611bc2826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ace90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c55826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ab090919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050929150505600a165627a7a72305820fe54c2a9c594ff01b9af5425b8f2dc854e61440a959c8e59f10636f311c5f52c0029a165627a7a72305820d21685f51a43e53038e82421389c49eb52391a12d48c7ac97bfb66db550d679a002960606040526000600360146101000a81548160ff0219169083151502179055506040805190810160405280600681526020017f4e65637461720000000000000000000000000000000000000000000000000000815250600490805190602001906200006c92919062000139565b506040805190810160405280600381526020017f4e4354000000000000000000000000000000000000000000000000000000000081525060059080519060200190620000ba92919062000139565b506012600660006101000a81548160ff021916908360ff1602179055506000600660016101000a81548160ff02191690831515021790555033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001e8565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200017c57805160ff1916838001178555620001ad565b82800160010185558215620001ad579182015b82811115620001ac5782518255916020019190600101906200018f565b5b509050620001bc9190620001c0565b5090565b620001e591905b80821115620001e1576000816000905550600101620001c7565b5090565b90565b611d3280620001f86000396000f300606060405260043610610107576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305d2035b1461010c57806306fdde0314610139578063095ea7b3146101c757806318160ddd1461022157806323b872dd1461024a578063313ce567146102c357806340c10f19146102f2578063661884631461034c57806370a08231146103a65780637d64bcb4146103f35780638da5cb5b1461042057806395d89b4114610475578063a9059cbb14610503578063af35c6c71461055d578063bef97c8714610572578063cae9ca511461059f578063d73dd6231461063c578063dd62ed3e14610696578063f2fde38b14610702575b600080fd5b341561011757600080fd5b61011f61073b565b604051808215151515815260200191505060405180910390f35b341561014457600080fd5b61014c61074e565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018c578082015181840152602081019050610171565b50505050905090810190601f1680156101b95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101d257600080fd5b610207600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506107ec565b604051808215151515815260200191505060405180910390f35b341561022c57600080fd5b6102346108de565b6040518082815260200191505060405180910390f35b341561025557600080fd5b6102a9600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506108e8565b604051808215151515815260200191505060405180910390f35b34156102ce57600080fd5b6102d6610919565b604051808260ff1660ff16815260200191505060405180910390f35b34156102fd57600080fd5b610332600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061092c565b604051808215151515815260200191505060405180910390f35b341561035757600080fd5b61038c600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610b12565b604051808215151515815260200191505060405180910390f35b34156103b157600080fd5b6103dd600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610da3565b6040518082815260200191505060405180910390f35b34156103fe57600080fd5b610406610deb565b604051808215151515815260200191505060405180910390f35b341561042b57600080fd5b610433610eb3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561048057600080fd5b610488610ed9565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104c85780820151818401526020810190506104ad565b50505050905090810190601f1680156104f55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561050e57600080fd5b610543600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610f77565b604051808215151515815260200191505060405180910390f35b341561056857600080fd5b610570610fa6565b005b341561057d57600080fd5b610585611067565b604051808215151515815260200191505060405180910390f35b34156105aa57600080fd5b610622600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061107a565b604051808215151515815260200191505060405180910390f35b341561064757600080fd5b61067c600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061131b565b604051808215151515815260200191505060405180910390f35b34156106a157600080fd5b6106ec600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611517565b6040518082815260200191505060405180910390f35b341561070d57600080fd5b610739600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061159e565b005b600360149054906101000a900460ff1681565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107e45780601f106107b9576101008083540402835291602001916107e4565b820191906000526020600020905b8154815290600101906020018083116107c757829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b6000600660019054906101000a900460ff16151561090557600080fd5b6109108484846116f6565b90509392505050565b600660009054906101000a900460ff1681565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561098a57600080fd5b600360149054906101000a900460ff161515156109a657600080fd5b6109bb82600154611ab090919063ffffffff16565b600181905550610a12826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ab090919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610c23576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610cb7565b610c368382611ace90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e4957600080fd5b600360149054906101000a900460ff16151515610e6557600080fd5b6001600360146101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f6f5780601f10610f4457610100808354040283529160200191610f6f565b820191906000526020600020905b815481529060010190602001808311610f5257829003601f168201915b505050505081565b6000600660019054906101000a900460ff161515610f9457600080fd5b610f9e8383611ae7565b905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561100257600080fd5b600660019054906101000a900460ff1615151561101e57600080fd5b6001600660016101000a81548160ff0219169083151502179055507feadb24812ab3c9a55c774958184293ebdb6c7f6a2dbab11f397d80c86feb65d360405160405180910390a1565b600660019054906101000a900460ff1681565b600082600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff1660405180807f72656365697665417070726f76616c28616464726573732c75696e743235362c81526020017f616464726573732c627974657329000000000000000000000000000000000000815250602e01905060405180910390207c01000000000000000000000000000000000000000000000000000000009004338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828051906020019080838360005b838110156112bb5780820151818401526020810190506112a0565b50505050905090810190601f1680156112e85780820380516001836020036101000a031916815260200191505b5094505050505060006040518083038160008761646e5a03f192505050151561131057600080fd5b600190509392505050565b60006113ac82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ab090919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115fa57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561163657600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561173357600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561178057600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561180b57600080fd5b61185c826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ace90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118ef826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ab090919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119c082600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ace90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000808284019050838110151515611ac457fe5b8091505092915050565b6000828211151515611adc57fe5b818303905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611b2457600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611b7157600080fd5b611bc2826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ace90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c55826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ab090919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050929150505600a165627a7a72305820fe54c2a9c594ff01b9af5425b8f2dc854e61440a959c8e59f10636f311c5f52c0029000000000000000000000000000000000000000000000000000000005a8c7030000000000000000000000000000000000000000000000000000000005ab3fd3000000000000000000000000000000000000000000000000000038d7ea4c68000000000000000000000000000afa1c92a27215d1d1dad4fa89972e7c8d91218f9000000000000000000000000471f62713fc13c554467abae55913415501e20c2
Deployed Bytecode
0x60606040526004361062000187576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806304659819146200018c5780630ed5a93314620001b857806311fa3f4f14620001e85780633197cbb61462000214578063355274ea14620002405780633d00b8e3146200026c5780633f4ba83a14620002d25780634042b66f14620002ea57806344c9e83d14620003165780634bb278f3146200036e578063521eb27314620003865780635c975abb14620003de5780636e0dd984146200040e57806378e9792514620004345780638392fe3114620004605780638456cb59146200049e5780638c25466a14620004b65780638d4e408314620004fb5780638da5cb5b146200052b578063aa2de6c31462000583578063af35c6c714620005af578063c404b3f614620005c7578063db068e0e14620005f3578063e29eb8361462000619578063ea8a1af01462000645578063ecb70fb7146200065d578063f2fde38b146200068d578063fc0c546a14620006c9575b600080fd5b34156200019857600080fd5b620001a262000721565b6040518082815260200191505060405180910390f35b3415620001c457600080fd5b620001ce62000727565b604051808215151515815260200191505060405180910390f35b3415620001f457600080fd5b620001fe6200073a565b6040518082815260200191505060405180910390f35b34156200022057600080fd5b6200022a62000740565b6040518082815260200191505060405180910390f35b34156200024c57600080fd5b6200025662000746565b6040518082815260200191505060405180910390f35b620002d0600480803590602001909190803590602001909190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506200074c565b005b3415620002de57600080fd5b620002e862000985565b005b3415620002f657600080fd5b6200030062000a45565b6040518082815260200191505060405180910390f35b34156200032257600080fd5b6200032c62000a4b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156200037a57600080fd5b6200038462000a71565b005b34156200039257600080fd5b6200039c62000b53565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415620003ea57600080fd5b620003f462000b79565b604051808215151515815260200191505060405180910390f35b34156200041a57600080fd5b62000432600480803590602001909190505062000b8c565b005b34156200044057600080fd5b6200044a62000c21565b6040518082815260200191505060405180910390f35b34156200046c57600080fd5b62000484600480803590602001909190505062000c27565b604051808215151515815260200191505060405180910390f35b3415620004aa57600080fd5b620004b462000c47565b005b3415620004c257600080fd5b620004f9600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505062000d09565b005b34156200050757600080fd5b6200051162000f00565b604051808215151515815260200191505060405180910390f35b34156200053757600080fd5b6200054162000f13565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156200058f57600080fd5b6200059962000f38565b6040518082815260200191505060405180910390f35b3415620005bb57600080fd5b620005c562000f3e565b005b3415620005d357600080fd5b620005dd62001069565b6040518082815260200191505060405180910390f35b3415620005ff57600080fd5b620006176004808035906020019091905050620010f2565b005b34156200062557600080fd5b6200062f62001183565b6040518082815260200191505060405180910390f35b34156200065157600080fd5b6200065b620011dc565b005b34156200066957600080fd5b62000673620012b5565b604051808215151515815260200191505060405180910390f35b34156200069957600080fd5b620006c7600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050620012f4565b005b3415620006d557600080fd5b620006df6200144b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60085481565b600b60009054906101000a900460ff1681565b60045481565b60035481565b60095481565b60008060008060149054906101000a900460ff161515156200076d57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515620007aa57600080fd5b620007b786868662001471565b1515620007c357600080fd5b349250620007d062001069565b9150620007e782846200177f90919063ffffffff16565b90506200080083600754620017be90919063ffffffff16565b6007819055506001600c600087815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1933836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156200090057600080fd5b6102c65a03f115156200091257600080fd5b50505060405180519050503373ffffffffffffffffffffffffffffffffffffffff167fcd60aa75dea3072fbc07ae6d7d856b5dc5f4eee88854f5b4abf7b680ef8bc50f8483604051808381526020018281526020019250505060405180910390a26200097d620017dd565b505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515620009e157600080fd5b600060149054906101000a900460ff161515620009fd57600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60075481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151562000acd57600080fd5b600b60019054906101000a900460ff1615151562000aea57600080fd5b62000af4620012b5565b151562000b0057600080fd5b62000b0a62001842565b7f6823b073d48d6e3a7d385eeb601452d680e74bb46afe3255a7d778f3a9b1768160405160405180910390a16001600b60016101000a81548160ff021916908315150217905550565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060149054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151562000be857600080fd5b6002544210151562000bf957600080fd5b6302faf080811115151562000c0d57600080fd5b8060088190555062000c1e62001a2b565b50565b60025481565b600c6020528060005260406000206000915054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151562000ca357600080fd5b600060149054906101000a900460ff1615151562000cc057600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151562000d6557600080fd5b6002544210151562000d7657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151562000db357600080fd5b60008111151562000dc357600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1983836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151562000e9157600080fd5b6102c65a03f1151562000ea357600080fd5b50505060405180519050508173ffffffffffffffffffffffffffffffffffffffff167f28a9aadb9d294b12744252591cec8238837beaa79898f4b9d64f9e0eca60a3aa826040518082815260200191505060405180910390a25050565b600b60019054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151562000f9a57600080fd5b600b60019054906101000a900460ff16151562000fb657600080fd5b62000fc0620012b5565b151562000fcc57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663af35c6c76040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401600060405180830381600087803b15156200105257600080fd5b6102c65a03f115156200106457600080fd5b505050565b6000806200108560045460075462001a6a90919063ffffffff16565b9050624c4b40811115156200109f576192e49150620010ee565b6298968081111515620010b757618cc69150620010ee565b62e4e1c081111515620010cf576186a79150620010ee565b6301312d0081111515620010e8576180889150620010ee565b617a6991505b5090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156200114e57600080fd5b600254421015156200115f57600080fd5b6000811115156200116f57600080fd5b806004819055506200118062001a2b565b50565b6000806000620011a36008546302faf08062001a8690919063ffffffff16565b9150620011be60045460075462001a6a90919063ffffffff16565b9050620011d58183620017be90919063ffffffff16565b9250505090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156200123857600080fd5b600b60009054906101000a900460ff161515156200125557600080fd5b6200125f620012b5565b1515156200126c57600080fd5b7f1afb0ae590df277bcb3a37f88612725bf1f7df4755792b1548a7efe77985ff7760405160405180910390a16001600b60006101000a81548160ff021916908315150217905550565b600080600060035442119150600954600754101590508180620012d55750805b80620012ed5750600b60009054906101000a900460ff165b9250505090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156200135057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156200138d57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006200147d62001aa0565b60008060008060008060006040805190810160405280601c81526020017f19457468657265756d205369676e6564204d6573736167653a0a383400000000815250975087338d8d6040518085805190602001908083835b602083101515620014fb5780518252602082019150602081019050602083039250620014d4565b6001836020036101000a0380198251168184511680821785525050505050509050018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140183815260200182815260200194505050505060405180910390209650600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673c104e1b762e0e01bfcdee5a040573a9d36688c636319045a25898d6000604051602001526040518363ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180836000191660001916815260200180602001828103825283818151815260200191508051906020019080838360005b838110156200165357808201518184015260208101905062001636565b50505050905090810190601f168015620016815780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b15156200169f57600080fd5b6102c65a03f41515620016b157600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff16149550600c60008c815260200190815260200160002060009054906101000a900460ff1615945060025442101580156200170d57506003544211155b9350600a5434101592508b34111591506009546200173734600754620017be90919063ffffffff16565b11159050858015620017465750845b8015620017505750835b80156200175a5750825b8015620017645750815b80156200176e5750805b985050505050505050509392505050565b6000806000841415620017965760009150620017b7565b8284029050828482811515620017a857fe5b04141515620017b357fe5b8091505b5092915050565b6000808284019050838110151515620017d357fe5b8091505092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f1935050505015156200184057600080fd5b565b600062001919600a6200190a6003600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515620018df57600080fd5b6102c65a03f11515620018f157600080fd5b505050604051805190506200177f90919063ffffffff16565b62001a6a90919063ffffffff16565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f19600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151562001a0b57600080fd5b6102c65a03f1151562001a1d57600080fd5b505050604051805190505050565b62001a446004546008546200177f90919063ffffffff16565b60098190555062001a6260045460646200177f90919063ffffffff16565b600a81905550565b600080828481151562001a7957fe5b0490508091505092915050565b600082821115151562001a9557fe5b818303905092915050565b602060405190810160405280600081525090565b600062001ac062001adc565b604051809103906000f080151562001ad757600080fd5b905090565b604051611f2a8062001aee83390190560060606040526000600360146101000a81548160ff0219169083151502179055506040805190810160405280600681526020017f4e65637461720000000000000000000000000000000000000000000000000000815250600490805190602001906200006c92919062000139565b506040805190810160405280600381526020017f4e4354000000000000000000000000000000000000000000000000000000000081525060059080519060200190620000ba92919062000139565b506012600660006101000a81548160ff021916908360ff1602179055506000600660016101000a81548160ff02191690831515021790555033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001e8565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200017c57805160ff1916838001178555620001ad565b82800160010185558215620001ad579182015b82811115620001ac5782518255916020019190600101906200018f565b5b509050620001bc9190620001c0565b5090565b620001e591905b80821115620001e1576000816000905550600101620001c7565b5090565b90565b611d3280620001f86000396000f300606060405260043610610107576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305d2035b1461010c57806306fdde0314610139578063095ea7b3146101c757806318160ddd1461022157806323b872dd1461024a578063313ce567146102c357806340c10f19146102f2578063661884631461034c57806370a08231146103a65780637d64bcb4146103f35780638da5cb5b1461042057806395d89b4114610475578063a9059cbb14610503578063af35c6c71461055d578063bef97c8714610572578063cae9ca511461059f578063d73dd6231461063c578063dd62ed3e14610696578063f2fde38b14610702575b600080fd5b341561011757600080fd5b61011f61073b565b604051808215151515815260200191505060405180910390f35b341561014457600080fd5b61014c61074e565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018c578082015181840152602081019050610171565b50505050905090810190601f1680156101b95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101d257600080fd5b610207600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506107ec565b604051808215151515815260200191505060405180910390f35b341561022c57600080fd5b6102346108de565b6040518082815260200191505060405180910390f35b341561025557600080fd5b6102a9600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506108e8565b604051808215151515815260200191505060405180910390f35b34156102ce57600080fd5b6102d6610919565b604051808260ff1660ff16815260200191505060405180910390f35b34156102fd57600080fd5b610332600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061092c565b604051808215151515815260200191505060405180910390f35b341561035757600080fd5b61038c600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610b12565b604051808215151515815260200191505060405180910390f35b34156103b157600080fd5b6103dd600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610da3565b6040518082815260200191505060405180910390f35b34156103fe57600080fd5b610406610deb565b604051808215151515815260200191505060405180910390f35b341561042b57600080fd5b610433610eb3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561048057600080fd5b610488610ed9565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104c85780820151818401526020810190506104ad565b50505050905090810190601f1680156104f55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561050e57600080fd5b610543600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610f77565b604051808215151515815260200191505060405180910390f35b341561056857600080fd5b610570610fa6565b005b341561057d57600080fd5b610585611067565b604051808215151515815260200191505060405180910390f35b34156105aa57600080fd5b610622600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061107a565b604051808215151515815260200191505060405180910390f35b341561064757600080fd5b61067c600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061131b565b604051808215151515815260200191505060405180910390f35b34156106a157600080fd5b6106ec600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611517565b6040518082815260200191505060405180910390f35b341561070d57600080fd5b610739600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061159e565b005b600360149054906101000a900460ff1681565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107e45780601f106107b9576101008083540402835291602001916107e4565b820191906000526020600020905b8154815290600101906020018083116107c757829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b6000600660019054906101000a900460ff16151561090557600080fd5b6109108484846116f6565b90509392505050565b600660009054906101000a900460ff1681565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561098a57600080fd5b600360149054906101000a900460ff161515156109a657600080fd5b6109bb82600154611ab090919063ffffffff16565b600181905550610a12826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ab090919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115610c23576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610cb7565b610c368382611ace90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e4957600080fd5b600360149054906101000a900460ff16151515610e6557600080fd5b6001600360146101000a81548160ff0219169083151502179055507fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a16001905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f6f5780601f10610f4457610100808354040283529160200191610f6f565b820191906000526020600020905b815481529060010190602001808311610f5257829003601f168201915b505050505081565b6000600660019054906101000a900460ff161515610f9457600080fd5b610f9e8383611ae7565b905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561100257600080fd5b600660019054906101000a900460ff1615151561101e57600080fd5b6001600660016101000a81548160ff0219169083151502179055507feadb24812ab3c9a55c774958184293ebdb6c7f6a2dbab11f397d80c86feb65d360405160405180910390a1565b600660019054906101000a900460ff1681565b600082600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff1660405180807f72656365697665417070726f76616c28616464726573732c75696e743235362c81526020017f616464726573732c627974657329000000000000000000000000000000000000815250602e01905060405180910390207c01000000000000000000000000000000000000000000000000000000009004338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828051906020019080838360005b838110156112bb5780820151818401526020810190506112a0565b50505050905090810190601f1680156112e85780820380516001836020036101000a031916815260200191505b5094505050505060006040518083038160008761646e5a03f192505050151561131057600080fd5b600190509392505050565b60006113ac82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ab090919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115fa57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561163657600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561173357600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561178057600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561180b57600080fd5b61185c826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ace90919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118ef826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ab090919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119c082600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ace90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000808284019050838110151515611ac457fe5b8091505092915050565b6000828211151515611adc57fe5b818303905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611b2457600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515611b7157600080fd5b611bc2826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ace90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c55826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ab090919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050929150505600a165627a7a72305820fe54c2a9c594ff01b9af5425b8f2dc854e61440a959c8e59f10636f311c5f52c0029a165627a7a72305820d21685f51a43e53038e82421389c49eb52391a12d48c7ac97bfb66db550d679a0029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000005a8c7030000000000000000000000000000000000000000000000000000000005ab3fd3000000000000000000000000000000000000000000000000000038d7ea4c68000000000000000000000000000afa1c92a27215d1d1dad4fa89972e7c8d91218f9000000000000000000000000471f62713fc13c554467abae55913415501e20c2
-----Decoded View---------------
Arg [0] : _startTime (uint256): 1519153200
Arg [1] : _endTime (uint256): 1521745200
Arg [2] : _initialWeiUsdExchangeRate (uint256): 1000000000000000
Arg [3] : _wallet (address): 0xAFa1C92a27215D1D1dad4Fa89972e7c8d91218f9
Arg [4] : _purchaseAuthorizer (address): 0x471F62713Fc13C554467AbAE55913415501e20c2
-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 000000000000000000000000000000000000000000000000000000005a8c7030
Arg [1] : 000000000000000000000000000000000000000000000000000000005ab3fd30
Arg [2] : 00000000000000000000000000000000000000000000000000038d7ea4c68000
Arg [3] : 000000000000000000000000afa1c92a27215d1d1dad4fa89972e7c8d91218f9
Arg [4] : 000000000000000000000000471f62713fc13c554467abae55913415501e20c2
Swarm Source
bzzr://fe54c2a9c594ff01b9af5425b8f2dc854e61440a959c8e59f10636f311c5f52c
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.