ETH Price: $3,473.46 (+4.87%)

Token

Nexo (NEXO)
 

Overview

Max Total Supply

1,000,000,000 NEXO

Holders

81,271 ( -0.005%)

Market

Price

$1.40 @ 0.000402 ETH (+6.13%)

Onchain Market Cap

$1,396,254,737.00

Circulating Supply Market Cap

$902,184,189.30

Other Info

Token Contract (WITH 18 Decimals)

Balance
15 NEXO

Value
$20.94 ( ~0.00602856976947858 Eth) [0.0000%]
0x756b86fd69914db92229c07c7393d7d9948fed33
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Nexo is a premier digital assets wealth platform empowering clients to grow, manage, and preserve their crypto holdings. The company offers high yields on flexible & fixed-term savings, crypto-backed loans, advanced trading tools, and liquidity solutions including the first debit/credit crypto card.

Profitability / Loss

Since Initial Offer Price
:$0.10 1296.25%

Market

Volume (24H):$13,144,547.61
Market Capitalization:$902,184,189.30
Circulating Supply:646,145,840.00 NEXO
Market Data Source: Coinmarketcap

ICO Information

ICO Start Date : Mar 06, 2018  
ICO End Date : Apr 01, 2018
Soft Cap : $20,000,000
Raised : $52,500,000
ICO Price  : $0.10
Country : Switzerland

# Exchange Pair Price  24H Volume % Volume
1
Binance
NEXO-USDT$1.39
0.0004009 Eth
$4,061,396.00
3,020,509.990 NEXO
23.5939%
2
Binance
NEXO-BTC$1.40
0.0004033 Eth
$1,795,107.00
1,339,383.190 NEXO
10.4622%
3
XT.COM
NEXO-USDT$1.39
0.0004003 Eth
$1,631,230.00
1,212,374.400 NEXO
9.4701%
4
Ourbit
NEXO-USDT$1.40
0.0004030 Eth
$1,499,790.00
1,115,038.970 NEXO
8.7098%
5
bitcastle
NEXO-USDT$1.40
0.0004040 Eth
$1,120,818.00
833,139.380 NEXO
6.5078%
6
WhiteBIT
NEXO-USDT$1.40
0.0004032 Eth
$748,107.00
534,750.080 NEXO
4.1771%
7
Hotcoin
NEXO-USDT$1.40
0.0004035 Eth
$730,930.00
522,168.220 NEXO
4.0788%
8
Uniswap V3 (Ethereum)
0XB62132E35A6C13EE1EE0F84DC5D40BAD8D815206-0XC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2$1.39
0.0004010 Eth
$668,691.00
483,262.454 0XB62132E35A6C13EE1EE0F84DC5D40BAD8D815206
3.7749%
9
BYDFi
NEXO-USDT$1.40
0.0004032 Eth
$575,597.00
411,486.940 NEXO
3.2142%
10
MEXC
NEXO-USDT$1.40
0.0004036 Eth
$492,706.00
352,049.030 NEXO
2.7499%
11
HTX
NEXO-USDT$1.39
0.0004014 Eth
$484,591.00
362,579.978 NEXO
2.8322%
12
Byte Exchange
NEXO-USDT$1.40
0.0004024 Eth
$444,894.00
318,874.187 NEXO
2.4908%
13
Bitunix
NEXO-USDT$1.40
0.0004027 Eth
$427,755.00
305,802.740 NEXO
2.3887%
14
Phemex
NEXO-USDT$1.39
0.0004002 Eth
$376,843.00
271,075.780 NEXO
2.1174%
15
BVOX
NEXO-USDT$1.40
0.0004029 Eth
$356,242.00
265,290.840 NEXO
2.0722%
16
FameEX
NEXO-USDT$1.40
0.0004030 Eth
$294,269.00
219,337.004 NEXO
1.7133%
17
BitDelta
NEXO-USDT$1.40
0.0004035 Eth
$239,108.00
178,723.050 NEXO
1.3960%
18
DigiFinex
NEXO-USDT$1.39
0.0004020 Eth
$186,129.00
133,508.040 NEXO
1.0429%
19
Mercatox
NEXO-BTC$1.33
0.0003825 Eth
$163,168.00
122,927.477 NEXO
0.9602%
20
Dex-Trade
NEXO-USDT$1.40
0.0004032 Eth
$144,501.00
103,301.410 NEXO
0.8069%
21
CoinTR
NEXO-USDT$1.40
0.0004038 Eth
$141,147.00
105,477.520 NEXO
0.8239%
22
BitMart
NEXO-USDT$1.40
0.0004038 Eth
$95,715.00
68,323.680 NEXO
0.5337%
23
Bibox
NEXO-USDT$1.38
0.0003966 Eth
$89,733.00
65,231.000 NEXO
0.5095%
24
ProBit Global
NEXO-USDT$1.40
0.0004029 Eth
$75,590.00
54,099.025 NEXO
0.4226%
25
Pionex
NEXO-USDT$1.39
0.0003999 Eth
$63,020.00
47,130.980 NEXO
0.3682%
26
LATOKEN
NEXO-BTC$1.40
0.0004025 Eth
$61,837.00
44,286.965 NEXO
0.3459%
27
Dex-Trade
NEXO-BTC$1.39
0.0004015 Eth
$59,594.00
42,749.000 NEXO
0.3339%
28
WEEX
NEXO-USDT$1.40
0.0004039 Eth
$59,471.00
44,348.000 NEXO
0.3464%
29
P2B
NEXO-USDT$1.40
0.0004032 Eth
$59,106.00
42,254.670 NEXO
0.3301%
30
Bitget
NEXO-USDT$1.40
0.0004030 Eth
$58,508.00
43,573.180 NEXO
0.3404%
31
Koinpark
NEXO-USDT$1.40
0.0004036 Eth
$52,773.00
37,688.194 NEXO
0.2944%
32
Tapbit
NEXO-USDT$1.40
0.0004031 Eth
$44,760.00
33,522.840 NEXO
0.2619%
33
Gate.io
NEXO-USDT$1.38
0.0003988 Eth
$40,789.00
29,921.000 NEXO
0.2337%
34
Bybit
NEXO-USDT$1.40
0.0004040 Eth
$40,062.00
29,618.320 NEXO
0.2314%
35
BloFin
NEXO-USDT$1.39
0.0003997 Eth
$39,954.00
29,886.460 NEXO
0.2334%
36
Bitrue
NEXO-USDT$1.40
0.0004029 Eth
$36,503.00
26,114.690 NEXO
0.2040%
37
LATOKEN
NEXO-USDT$1.39
0.0004009 Eth
$31,568.00
22,640.945 NEXO
0.1769%
38
Koinpark
NEXO-INR$1.42
0.0004085 Eth
$17,591.77
12,414.038 NEXO
0.0970%
39
Cryptology
NEXO-USDT$1.39
0.0004023 Eth
$10,893.70
7,811.010 NEXO
0.0610%
40
Bitfinex
NEXO-USD$1.37
0.0003950 Eth
$9,603.39
7,011.313 NEXO
0.0548%
41
Bitexlive
NEXO-USDT$1.40
0.0004039 Eth
$8,324.06
5,943.892 NEXO
0.0464%
42
Bitfinex
NEXO-USDT$1.37
0.0003952 Eth
$6,968.69
5,084.788 NEXO
0.0397%
43
Bitfinex
NEXO-BTC$1.40
0.0004036 Eth
$3,770.49
2,694.117 NEXO
0.0210%
44
CoinEx
NEXO-USDT$1.39
0.0004020 Eth
$2,895.22
2,158.010 NEXO
0.0169%
45
Quickswap
0X41B3966B4FF7B427969DDF5DA3627D6AEAE9A48E-0X7CEB23FD6BC0ADD59E62AC25578270CFF1B9F619$1.39
0.0003997 Eth
$2,791.10
2,190.839 0X41B3966B4FF7B427969DDF5DA3627D6AEAE9A48E
0.0171%
46
CoinEx
NEXO-BTC$1.38
0.0003984 Eth
$2,546.17
1,905.595 NEXO
0.0149%
47
Bitstamp
NEXO-EUR$1.36
0.0003934 Eth
$2,337.44
1,712.710 NEXO
0.0134%
48
Bitstamp
NEXO-USD$1.35
0.0003892 Eth
$2,304.56
1,707.080 NEXO
0.0133%
49
Uniswap V2 (Ethereum)
0XB62132E35A6C13EE1EE0F84DC5D40BAD8D815206-0XC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2$1.38
0.0003973 Eth
$2,186.97
1,576.618 0XB62132E35A6C13EE1EE0F84DC5D40BAD8D815206
0.0123%
50
HitBTC
NEXO-USDT$1.36
0.0003908 Eth
$1,728.61
1,465.000 NEXO
0.0114%
51
Mercatox
NEXO-ETH$1.39
0.0004002 Eth
$1,570.96
1,131.474 NEXO
0.0088%
52
Mudrex
NEXO-USDT$1.40
0.0004032 Eth
$661.54
472.937 NEXO
0.0037%
53
Bittime
NEXO-IDR$1.39
0.0004005 Eth
$291.11
217.600 NEXO
0.0017%
54
Foxbit
NEXO-BRL$1.34
0.0003870 Eth
$193.88
146.256 NEXO
0.0011%
55
HitBTC
NEXO-BTC$1.36
0.0003920 Eth
$189.85
139.000 NEXO
0.0011%
56
Nominex
NEXO-USDT$1.34
0.0004013 Eth
$113.08
84.350 NEXO
0.0007%
57
TokoCrypto
NEXO-USDT$1.39
0.0004010 Eth
$104.90
75.460 NEXO
0.0006%
58
Matcha (Polygon)
0X41B3966B4FF7B427969DDF5DA3627D6AEAE9A48E-0XC2132D05D31C914A87C6611C10748AEB04B58E8F$1.32
0.0003914 Eth
$90.03
68.254 0X41B3966B4FF7B427969DDF5DA3627D6AEAE9A48E
0.0005%
59
Poloniex
NEXO-USDT$1.27
0.0003667 Eth
$70.26
55.213 NEXO
0.0004%
60
HitBTC
NEXO-ETH$1.53
0.0004568 Eth
$51.89
34.000 NEXO
0.0003%
61
Bancor (V2)
NEXO-BNT$1.35
0.0003878 Eth
$44.56
33.127 NEXO
0.0003%
62
Gate.io
NEXO-ETH$1.34
0.0003983 Eth
$36.65
27.266 NEXO
0.0002%
63
TokoCrypto
NEXO-BTC$1.40
0.0004030 Eth
$28.50
20.379 NEXO
0.0002%
64
BitBNS
NEXO-INR$1.31
0.0003782 Eth
$2.98
2.270 NEXO
0.0000%
65
Indodax
NEXO-IDR$1.38
0.0003975 Eth
$1.53
1.113 NEXO
0.0000%
66
Polkaswap
0X003005B2417B5046455E73F7FC39779A013F1A33B4518BCD83A790900DCA49FF-0X0200000000000000000000000000000000000000000000000000000000000000$0.00
0.0000000 Eth
$0.0001
15.000 0X003005B2417B5046455E73F7FC39779A013F1A33B4518BCD83A790900DCA49FF
0.0001%

Contract Source Code Verified (Exact Match)

Contract Name:
NexoToken

Compiler Version
v0.4.23+commit.124ca40d

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Audited

Contract Source Code (Solidity)Audit Report

/**
 *Submitted for verification at Etherscan.io on 2018-04-20
*/

pragma solidity 0.4.23;

//
// This source file is part of the current-contracts open source project
// Copyright 2018 Zerion LLC
// Licensed under Apache License v2.0
//


// @title Abstract ERC20 token interface
contract AbstractToken {
	function balanceOf(address owner) public view returns (uint256 balance);
	function transfer(address to, uint256 value) public returns (bool success);
	function transferFrom(address from, address to, uint256 value) public returns (bool success);
	function approve(address spender, uint256 value) public returns (bool success);
	function allowance(address owner, address spender) public view returns (uint256 remaining);

	event Transfer(address indexed from, address indexed to, uint256 value);
	event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract Owned {

	address public owner = msg.sender;
	address public potentialOwner;

	modifier onlyOwner {
		require(msg.sender == owner);
		_;
	}

	modifier onlyPotentialOwner {
		require(msg.sender == potentialOwner);
		_;
	}

	event NewOwner(address old, address current);
	event NewPotentialOwner(address old, address potential);

	function setOwner(address _new)
		public
		onlyOwner
	{
		emit NewPotentialOwner(owner, _new);
		potentialOwner = _new;
	}

	function confirmOwnership()
		public
		onlyPotentialOwner
	{
		emit NewOwner(owner, potentialOwner);
		owner = potentialOwner;
		potentialOwner = address(0);
	}
}

// @title SafeMath contract - Math operations with safety checks.
// @author OpenZeppelin: https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/math/SafeMath.sol
contract 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) {
		return a / b;
	}

	/**
	* @dev Subtracts 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;
	}

	/**
	* @dev Raises `a` to the `b`th power, throws on overflow.
	*/
	function pow(uint256 a, uint256 b) internal pure returns (uint256) {
		uint256 c = a ** b;
		assert(c >= a);
		return c;
	}
}

/// Implements ERC 20 Token standard: https://github.com/ethereum/EIPs/issues/20
contract StandardToken is AbstractToken, Owned, SafeMath {

	/*
	 *  Data structures
	 */
	mapping (address => uint256) internal balances;
	mapping (address => mapping (address => uint256)) internal allowed;
	uint256 public totalSupply;

	/*
	 *  Read and write storage functions
	 */
	/// @dev Transfers sender's tokens to a given address. Returns success.
	/// @param _to Address of token receiver.
	/// @param _value Number of tokens to transfer.
	function transfer(address _to, uint256 _value) public returns (bool success) {
		return _transfer(msg.sender, _to, _value);
	}

	/// @dev Allows allowed third party to transfer tokens from one address to another. Returns success.
	/// @param _from Address from where tokens are withdrawn.
	/// @param _to Address to where tokens are sent.
	/// @param _value Number of tokens to transfer.
	function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {
		require(allowed[_from][msg.sender] >= _value);
		allowed[_from][msg.sender] -= _value;

		return _transfer(_from, _to, _value);
	}

	/// @dev Returns number of tokens owned by given address.
	/// @param _owner Address of token owner.
	function balanceOf(address _owner) public view returns (uint256 balance) {
		return balances[_owner];
	}

	/// @dev Sets approved amount of tokens for spender. Returns success.
	/// @param _spender Address of allowed account.
	/// @param _value Number of approved tokens.
	function approve(address _spender, uint256 _value) public returns (bool success) {
		allowed[msg.sender][_spender] = _value;
		emit Approval(msg.sender, _spender, _value);
		return true;
	}

	/*
	 * Read storage functions
	 */
	/// @dev Returns number of allowed tokens for given address.
	/// @param _owner Address of token owner.
	/// @param _spender Address of token spender.
	function allowance(address _owner, address _spender) public view returns (uint256 remaining) {
		return allowed[_owner][_spender];
	}

	/**
	* @dev Private transfer, can only be called by this contract.
	* @param _from The address of the sender.
	* @param _to The address of the recipient.
	* @param _value The amount to send.
	* @return success True if the transfer was successful, or throws.
	*/
	function _transfer(address _from, address _to, uint256 _value) private returns (bool success) {
		require(_to != address(0));
		require(balances[_from] >= _value);
		balances[_from] -= _value;
		balances[_to] = add(balances[_to], _value);
		emit Transfer(_from, _to, _value);
		return true;
	}
}

/// @title Token contract - Implements Standard ERC20 with additional features.
/// @author Zerion - <[email protected]>
contract Token is StandardToken {

	// Time of the contract creation
	uint256 public creationTime;

	function Token() public {
		/* solium-disable-next-line security/no-block-members */
		creationTime = now;
	}

	/// @dev Owner can transfer out any accidentally sent ERC20 tokens
	function transferERC20Token(AbstractToken _token, address _to, uint256 _value)
		public
		onlyOwner
		returns (bool success)
	{
		require(_token.balanceOf(address(this)) >= _value);
		uint256 receiverBalance = _token.balanceOf(_to);
		require(_token.transfer(_to, _value));

		uint256 receiverNewBalance = _token.balanceOf(_to);
		assert(receiverNewBalance == add(receiverBalance, _value));

		return true;
	}

	/// @dev Increases approved amount of tokens for spender. Returns success.
	function increaseApproval(address _spender, uint256 _value) public returns (bool success) {
		allowed[msg.sender][_spender] = add(allowed[msg.sender][_spender], _value);
		emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
		return true;
	}

	/// @dev Decreases approved amount of tokens for spender. Returns success.
	function decreaseApproval(address _spender, uint256 _value) public returns (bool success) {
		uint256 oldValue = allowed[msg.sender][_spender];
		if (_value > oldValue) {
			allowed[msg.sender][_spender] = 0;
		} else {
			allowed[msg.sender][_spender] = sub(oldValue, _value);
		}
		emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
		return true;
	}
}

// @title Token contract - Implements Standard ERC20 Token for NEXO project.
/// @author Zerion - <[email protected]>
contract NexoToken is Token {

	/// TOKEN META DATA
	string constant public name = 'Nexo';
	string constant public symbol = 'NEXO';
	uint8  constant public decimals = 18;


	/// ALOCATIONS
	// To calculate vesting periods we assume that 1 month is always equal to 30 days 


	/*** Initial Investors' tokens ***/

	// 525,000,000 (52.50%) tokens are distributed among initial investors
	// These tokens will be distributed without vesting

	address public investorsAllocation = address(0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF);
	uint256 public investorsTotal = 525000000e18;


	/*** Overdraft Reserves ***/

	// 250,000,000 (25%) tokens will be eventually available for overdraft
	// These tokens will be distributed monthly with a 6 month cliff within a year
	// 41,666,666 tokens will be unlocked every month after the cliff
	// 4 tokens will be unlocked without vesting to ensure that total amount sums up to 250,000,000.

	address public overdraftAllocation = address(0x1111111111111111111111111111111111111111);
	uint256 public overdraftTotal = 250000000e18;
	uint256 public overdraftPeriodAmount = 41666666e18;
	uint256 public overdraftUnvested = 4e18;
	uint256 public overdraftCliff = 5 * 30 days;
	uint256 public overdraftPeriodLength = 30 days;
	uint8   public overdraftPeriodsNumber = 6;


	/*** Tokens reserved for Founders and Team ***/

	// 112,500,000 (11.25%) tokens will be eventually available for the team
	// These tokens will be distributed every 3 month without a cliff within 4 years
	// 7,031,250 tokens will be unlocked every 3 month

	address public teamAllocation  = address(0x2222222222222222222222222222222222222222);
	uint256 public teamTotal = 112500000e18;
	uint256 public teamPeriodAmount = 7031250e18;
	uint256 public teamUnvested = 0;
	uint256 public teamCliff = 0;
	uint256 public teamPeriodLength = 3 * 30 days;
	uint8   public teamPeriodsNumber = 16;



	/*** Tokens reserved for Community Building and Airdrop Campaigns ***/

	// 60,000,000 (6%) tokens will be eventually available for the community
	// 10,000,002 tokens will be available instantly without vesting
	// 49,999,998 tokens will be distributed every 3 month without a cliff within 18 months
	// 8,333,333 tokens will be unlocked every 3 month


	address public communityAllocation  = address(0x3333333333333333333333333333333333333333);
	uint256 public communityTotal = 60000000e18;
	uint256 public communityPeriodAmount = 8333333e18;
	uint256 public communityUnvested = 10000002e18;
	uint256 public communityCliff = 0;
	uint256 public communityPeriodLength = 3 * 30 days;
	uint8   public communityPeriodsNumber = 6;



	/*** Tokens reserved for Advisors, Legal and PR ***/

	// 52,500,000 (5.25%) tokens will be eventually available for advisers
	// 25,000,008 tokens will be available instantly without vesting
	// 27 499 992 tokens will be distributed monthly without a cliff within 12 months
	// 2,291,666 tokens will be unlocked every month

	address public advisersAllocation  = address(0x4444444444444444444444444444444444444444);
	uint256 public advisersTotal = 52500000e18;
	uint256 public advisersPeriodAmount = 2291666e18;
	uint256 public advisersUnvested = 25000008e18;
	uint256 public advisersCliff = 0;
	uint256 public advisersPeriodLength = 30 days;
	uint8   public advisersPeriodsNumber = 12;


	/// CONSTRUCTOR

	function NexoToken() public {
		//  Overall, 1,000,000,000 tokens exist
		totalSupply = 1000000000e18;

		balances[investorsAllocation] = investorsTotal;
		balances[overdraftAllocation] = overdraftTotal;
		balances[teamAllocation] = teamTotal;
		balances[communityAllocation] = communityTotal;
		balances[advisersAllocation] = advisersTotal;

		// Unlock some tokens without vesting
		allowed[investorsAllocation][msg.sender] = investorsTotal;
		allowed[overdraftAllocation][msg.sender] = overdraftUnvested;
		allowed[communityAllocation][msg.sender] = communityUnvested;
		allowed[advisersAllocation][msg.sender] = advisersUnvested;
	}

	/// DISTRIBUTION

	function distributeInvestorsTokens(address _to, uint256 _amountWithDecimals)
		public
		onlyOwner
	{
		require(transferFrom(investorsAllocation, _to, _amountWithDecimals));
	}

	/// VESTING

	function withdrawOverdraftTokens(address _to, uint256 _amountWithDecimals)
		public
		onlyOwner
	{
		allowed[overdraftAllocation][msg.sender] = allowance(overdraftAllocation, msg.sender);
		require(transferFrom(overdraftAllocation, _to, _amountWithDecimals));
	}

	function withdrawTeamTokens(address _to, uint256 _amountWithDecimals)
		public
		onlyOwner 
	{
		allowed[teamAllocation][msg.sender] = allowance(teamAllocation, msg.sender);
		require(transferFrom(teamAllocation, _to, _amountWithDecimals));
	}

	function withdrawCommunityTokens(address _to, uint256 _amountWithDecimals)
		public
		onlyOwner 
	{
		allowed[communityAllocation][msg.sender] = allowance(communityAllocation, msg.sender);
		require(transferFrom(communityAllocation, _to, _amountWithDecimals));
	}

	function withdrawAdvisersTokens(address _to, uint256 _amountWithDecimals)
		public
		onlyOwner 
	{
		allowed[advisersAllocation][msg.sender] = allowance(advisersAllocation, msg.sender);
		require(transferFrom(advisersAllocation, _to, _amountWithDecimals));
	}

	/// @dev Overrides StandardToken.sol function
	function allowance(address _owner, address _spender)
		public
		view
		returns (uint256 remaining)
	{   
		if (_spender != owner) {
			return allowed[_owner][_spender];
		}

		uint256 unlockedTokens;
		uint256 spentTokens;

		if (_owner == overdraftAllocation) {
			unlockedTokens = _calculateUnlockedTokens(
				overdraftCliff,
				overdraftPeriodLength,
				overdraftPeriodAmount,
				overdraftPeriodsNumber,
				overdraftUnvested
			);
			spentTokens = sub(overdraftTotal, balanceOf(overdraftAllocation));
		} else if (_owner == teamAllocation) {
			unlockedTokens = _calculateUnlockedTokens(
				teamCliff,
				teamPeriodLength,
				teamPeriodAmount,
				teamPeriodsNumber,
				teamUnvested
			);
			spentTokens = sub(teamTotal, balanceOf(teamAllocation));
		} else if (_owner == communityAllocation) {
			unlockedTokens = _calculateUnlockedTokens(
				communityCliff,
				communityPeriodLength,
				communityPeriodAmount,
				communityPeriodsNumber,
				communityUnvested
			);
			spentTokens = sub(communityTotal, balanceOf(communityAllocation));
		} else if (_owner == advisersAllocation) {
			unlockedTokens = _calculateUnlockedTokens(
				advisersCliff,
				advisersPeriodLength,
				advisersPeriodAmount,
				advisersPeriodsNumber,
				advisersUnvested
			);
			spentTokens = sub(advisersTotal, balanceOf(advisersAllocation));
		} else {
			return allowed[_owner][_spender];
		}

		return sub(unlockedTokens, spentTokens);
	}

	/// @dev Overrides Owned.sol function
	function confirmOwnership()
		public
		onlyPotentialOwner
	{   
		// Forbid the old owner to distribute investors' tokens
		allowed[investorsAllocation][owner] = 0;

		// Allow the new owner to distribute investors' tokens
		allowed[investorsAllocation][msg.sender] = balanceOf(investorsAllocation);

		// Forbid the old owner to withdraw any tokens from the reserves
		allowed[overdraftAllocation][owner] = 0;
		allowed[teamAllocation][owner] = 0;
		allowed[communityAllocation][owner] = 0;
		allowed[advisersAllocation][owner] = 0;

		super.confirmOwnership();
	}

	function _calculateUnlockedTokens(
		uint256 _cliff,
		uint256 _periodLength,
		uint256 _periodAmount,
		uint8 _periodsNumber,
		uint256 _unvestedAmount
	)
		private
		view
		returns (uint256) 
	{
		/* solium-disable-next-line security/no-block-members */
		if (now < add(creationTime, _cliff)) {
			return _unvestedAmount;
		}
		/* solium-disable-next-line security/no-block-members */
		uint256 periods = div(sub(now, add(creationTime, _cliff)), _periodLength);
		periods = periods > _periodsNumber ? _periodsNumber : periods;
		return add(_unvestedAmount, mul(periods, _periodAmount));
	}
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"overdraftAllocation","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamTotal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_new","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"advisersPeriodLength","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"investorsTotal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"advisersCliff","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamCliff","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"investorsAllocation","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"advisersPeriodsNumber","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amountWithDecimals","type":"uint256"}],"name":"withdrawAdvisersTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amountWithDecimals","type":"uint256"}],"name":"withdrawTeamTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"overdraftCliff","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"communityUnvested","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"overdraftPeriodLength","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"advisersPeriodAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"advisersTotal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amountWithDecimals","type":"uint256"}],"name":"distributeInvestorsTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"communityPeriodLength","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamUnvested","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"advisersAllocation","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"teamAllocation","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamPeriodAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"potentialOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"advisersUnvested","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"overdraftPeriodAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferERC20Token","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"communityPeriodAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amountWithDecimals","type":"uint256"}],"name":"withdrawOverdraftTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"communityCliff","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"overdraftUnvested","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"teamPeriodsNumber","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"overdraftPeriodsNumber","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"overdraftTotal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamPeriodLength","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"communityAllocation","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"confirmOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"creationTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"communityPeriodsNumber","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"communityTotal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amountWithDecimals","type":"uint256"}],"name":"withdrawCommunityTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"old","type":"address"},{"indexed":false,"name":"current","type":"address"}],"name":"NewOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"old","type":"address"},{"indexed":false,"name":"potential","type":"address"}],"name":"NewPotentialOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"}]

6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ffffffffffffffffffffffffffffffffffffffff600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506b01b24513071a43532d000000600755731111111111111111111111111111111111111111600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506acecb8f27f4200f3a0000006009556a2277427d6836356f680000600a55673782dace9d900000600b5562c5c100600c5562278d00600d556006600e60006101000a81548160ff021916908360ff160217905550732222222222222222222222222222222222222222600e60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506a5d0ecd38610e6d40800000600f556a05d0ecd38610e6d4080000601055600060115560006012556276a7006013556010601460006101000a81548160ff021916908360ff160217905550733333333333333333333333333333333333333333601460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506a31a17e847807b1bc0000006015556a06e4a6e31b19805b3400006016556a08459531d56eaf98c8000060175560006018556276a7006019556006601a60006101000a81548160ff021916908360ff160217905550734444444444444444444444444444444444444444601a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506a2b6d4eb3e906bb84800000601b556a01e54776797128cc080000601c556a14adf52637b8d1f4200000601d556000601e5562278d00601f55600c602060006101000a81548160ff021916908360ff16021790555034801561035257600080fd5b50426005819055506b033b2e3c9fd0803ce800000060048190555060075460026000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060095460026000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600f5460026000600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060155460026000601460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601b5460026000601a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060075460036000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600b5460036000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060175460036000601460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601d5460036000601a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613321806108186000396000f300608060405260043610610272576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806304b92b7d1461027757806306fdde03146102ce578063075bf7721461035e578063095ea7b31461038957806313af4035146103ee57806317031f9c1461043157806318160ddd1461045c5780631cb252fe14610487578063205e0e26146104b257806323b872dd146104dd578063313ce567146105625780633879c9f3146105935780633e4b2570146105be578063417d5fb4146106155780634a09d3cf146106465780634ad1cbad146106935780634ce02a33146106e05780634d16dd411461070b57806351eb5e93146107365780635ad1854b146107615780635b53d2911461078c5780635e8f6597146107b75780636078b87e1461080457806362b96a181461082f578063660ef82d1461085a57806366188463146108b15780636816521a1461091657806370a082311461096d57806375766294146109c45780637762df25146109ef57806377e5d8f814610a465780638c3c00aa14610a715780638da5cb5b14610a9c57806392940bf914610af35780639333cf5e14610b7857806395d89b4114610ba35780639649725814610c33578063a01729a414610c80578063a84f3e5a14610cab578063a9059cbb14610cd6578063abadeb0614610d3b578063af44e48714610d6c578063c14e61ba14610d9d578063c31051fe14610dc8578063d53b4ab414610df3578063d5d1e77014610e4a578063d73dd62314610e61578063d8270dce14610ec6578063d98b094c14610ef1578063dd62ed3e14610f22578063f05ad9f314610f99578063f854d74c14610fc4575b600080fd5b34801561028357600080fd5b5061028c611011565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102da57600080fd5b506102e3611037565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610323578082015181840152602081019050610308565b50505050905090810190601f1680156103505780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561036a57600080fd5b50610373611070565b6040518082815260200191505060405180910390f35b34801561039557600080fd5b506103d4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611076565b604051808215151515815260200191505060405180910390f35b3480156103fa57600080fd5b5061042f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611168565b005b34801561043d57600080fd5b506104466112bf565b6040518082815260200191505060405180910390f35b34801561046857600080fd5b506104716112c5565b6040518082815260200191505060405180910390f35b34801561049357600080fd5b5061049c6112cb565b6040518082815260200191505060405180910390f35b3480156104be57600080fd5b506104c76112d1565b6040518082815260200191505060405180910390f35b3480156104e957600080fd5b50610548600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112d7565b604051808215151515815260200191505060405180910390f35b34801561056e57600080fd5b50610577611402565b604051808260ff1660ff16815260200191505060405180910390f35b34801561059f57600080fd5b506105a8611407565b6040518082815260200191505060405180910390f35b3480156105ca57600080fd5b506105d361140d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561062157600080fd5b5061062a611433565b604051808260ff1660ff16815260200191505060405180910390f35b34801561065257600080fd5b50610691600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611446565b005b34801561069f57600080fd5b506106de600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115ab565b005b3480156106ec57600080fd5b506106f5611710565b6040518082815260200191505060405180910390f35b34801561071757600080fd5b50610720611716565b6040518082815260200191505060405180910390f35b34801561074257600080fd5b5061074b61171c565b6040518082815260200191505060405180910390f35b34801561076d57600080fd5b50610776611722565b6040518082815260200191505060405180910390f35b34801561079857600080fd5b506107a1611728565b6040518082815260200191505060405180910390f35b3480156107c357600080fd5b50610802600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061172e565b005b34801561081057600080fd5b506108196117c5565b6040518082815260200191505060405180910390f35b34801561083b57600080fd5b506108446117cb565b6040518082815260200191505060405180910390f35b34801561086657600080fd5b5061086f6117d1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108bd57600080fd5b506108fc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506117f7565b604051808215151515815260200191505060405180910390f35b34801561092257600080fd5b5061092b611a7f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561097957600080fd5b506109ae600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611aa5565b6040518082815260200191505060405180910390f35b3480156109d057600080fd5b506109d9611aee565b6040518082815260200191505060405180910390f35b3480156109fb57600080fd5b50610a04611af4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a5257600080fd5b50610a5b611b1a565b6040518082815260200191505060405180910390f35b348015610a7d57600080fd5b50610a86611b20565b6040518082815260200191505060405180910390f35b348015610aa857600080fd5b50610ab1611b26565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610aff57600080fd5b50610b5e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b4b565b604051808215151515815260200191505060405180910390f35b348015610b8457600080fd5b50610b8d611f49565b6040518082815260200191505060405180910390f35b348015610baf57600080fd5b50610bb8611f4f565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610bf8578082015181840152602081019050610bdd565b50505050905090810190601f168015610c255780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610c3f57600080fd5b50610c7e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611f88565b005b348015610c8c57600080fd5b50610c956120ed565b6040518082815260200191505060405180910390f35b348015610cb757600080fd5b50610cc06120f3565b6040518082815260200191505060405180910390f35b348015610ce257600080fd5b50610d21600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506120f9565b604051808215151515815260200191505060405180910390f35b348015610d4757600080fd5b50610d5061210e565b604051808260ff1660ff16815260200191505060405180910390f35b348015610d7857600080fd5b50610d81612121565b604051808260ff1660ff16815260200191505060405180910390f35b348015610da957600080fd5b50610db2612134565b6040518082815260200191505060405180910390f35b348015610dd457600080fd5b50610ddd61213a565b6040518082815260200191505060405180910390f35b348015610dff57600080fd5b50610e08612140565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610e5657600080fd5b50610e5f612166565b005b348015610e6d57600080fd5b50610eac600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612672565b604051808215151515815260200191505060405180910390f35b348015610ed257600080fd5b50610edb612865565b6040518082815260200191505060405180910390f35b348015610efd57600080fd5b50610f0661286b565b604051808260ff1660ff16815260200191505060405180910390f35b348015610f2e57600080fd5b50610f83600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061287e565b6040518082815260200191505060405180910390f35b348015610fa557600080fd5b50610fae612cdd565b6040518082815260200191505060405180910390f35b348015610fd057600080fd5b5061100f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612ce3565b005b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600481526020017f4e65786f0000000000000000000000000000000000000000000000000000000081525081565b600f5481565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111c357600080fd5b7f8a95addc59dddee94a894365b5c66c6c2473b7084d3fd1df9f503db4a2cd6dcc6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a180600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601f5481565b60045481565b60075481565b601e5481565b600081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561136457600080fd5b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506113f9848484612e48565b90509392505050565b601281565b60125481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602060009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114a157600080fd5b6114cd601a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff163361287e565b60036000601a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061159c601a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683836112d7565b15156115a757600080fd5b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561160657600080fd5b611632600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff163361287e565b60036000600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611701600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683836112d7565b151561170c57600080fd5b5050565b600c5481565b60175481565b600d5481565b601c5481565b601b5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561178957600080fd5b6117b6600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683836112d7565b15156117c157600080fd5b5050565b60195481565b60115481565b601a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115611908576000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611993565b611912818461301c565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60105481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601d5481565b600a5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bab57600080fd5b838673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611c4757600080fd5b505af1158015611c5b573d6000803e3d6000fd5b505050506040513d6020811015611c7157600080fd5b810190808051906020019092919050505010151515611c8f57600080fd5b8573ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611d2a57600080fd5b505af1158015611d3e573d6000803e3d6000fd5b505050506040513d6020811015611d5457600080fd5b810190808051906020019092919050505091508573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb86866040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611e0a57600080fd5b505af1158015611e1e573d6000803e3d6000fd5b505050506040513d6020811015611e3457600080fd5b81019080805190602001909291905050501515611e5057600080fd5b8573ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611eeb57600080fd5b505af1158015611eff573d6000803e3d6000fd5b505050506040513d6020811015611f1557600080fd5b81019080805190602001909291905050509050611f328285613035565b81141515611f3c57fe5b6001925050509392505050565b60165481565b6040805190810160405280600481526020017f4e45584f0000000000000000000000000000000000000000000000000000000081525081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611fe357600080fd5b61200f600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff163361287e565b60036000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120de600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683836112d7565b15156120e957600080fd5b5050565b60185481565b600b5481565b6000612106338484612e48565b905092915050565b601460009054906101000a900460ff1681565b600e60009054906101000a900460ff1681565b60095481565b60135481565b601460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156121c257600080fd5b600060036000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122b2600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611aa5565b60036000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600060036000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600060036000600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600060036000601460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600060036000601a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612670613053565b565b60006126fa600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613035565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60055481565b601a60009054906101000a900460ff1681565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151561295d57600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549250612cd5565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415612a16576129d7600c54600d54600a54600e60009054906101000a900460ff16600b5461322f565b9150612a0f600954612a0a600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611aa5565b61301c565b9050612cc8565b600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415612acf57612a90601254601354601054601460009054906101000a900460ff1660115461322f565b9150612ac8600f54612ac3600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611aa5565b61301c565b9050612cc7565b601460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415612b8857612b49601854601954601654601a60009054906101000a900460ff1660175461322f565b9150612b81601554612b7c601460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611aa5565b61301c565b9050612cc6565b601a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415612c4157612c02601e54601f54601c54602060009054906101000a900460ff16601d5461322f565b9150612c3a601b54612c35601a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611aa5565b61301c565b9050612cc5565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549250612cd5565b5b5b5b612cd2828261301c565b92505b505092915050565b60155481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612d3e57600080fd5b612d6a601460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff163361287e565b60036000601460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e39601460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683836112d7565b1515612e4457600080fd5b5050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515612e8557600080fd5b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515612ed357600080fd5b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550612f69600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613035565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600082821115151561302a57fe5b818303905092915050565b600080828401905083811015151561304957fe5b8091505092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156130af57600080fd5b7f70aea8d848e8a90fb7661b227dc522eb6395c3dac71b63cb59edd5c9899b23646000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008061323e60055488613035565b42101561324d5782915061329a565b61326b613265426132606005548b613035565b61301c565b876132a4565b90508360ff16811161327d5780613282565b8360ff165b90506132978361329283886132ba565b613035565b91505b5095945050505050565b600081838115156132b157fe5b04905092915050565b60008060008414156132cf57600091506132ee565b82840290508284828115156132e057fe5b041415156132ea57fe5b8091505b50929150505600a165627a7a7230582094a3070dda6dd42d6083ffd892817c0c4d2621761f9bedf1954adc1b35f4c5d30029

Deployed Bytecode

0x608060405260043610610272576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806304b92b7d1461027757806306fdde03146102ce578063075bf7721461035e578063095ea7b31461038957806313af4035146103ee57806317031f9c1461043157806318160ddd1461045c5780631cb252fe14610487578063205e0e26146104b257806323b872dd146104dd578063313ce567146105625780633879c9f3146105935780633e4b2570146105be578063417d5fb4146106155780634a09d3cf146106465780634ad1cbad146106935780634ce02a33146106e05780634d16dd411461070b57806351eb5e93146107365780635ad1854b146107615780635b53d2911461078c5780635e8f6597146107b75780636078b87e1461080457806362b96a181461082f578063660ef82d1461085a57806366188463146108b15780636816521a1461091657806370a082311461096d57806375766294146109c45780637762df25146109ef57806377e5d8f814610a465780638c3c00aa14610a715780638da5cb5b14610a9c57806392940bf914610af35780639333cf5e14610b7857806395d89b4114610ba35780639649725814610c33578063a01729a414610c80578063a84f3e5a14610cab578063a9059cbb14610cd6578063abadeb0614610d3b578063af44e48714610d6c578063c14e61ba14610d9d578063c31051fe14610dc8578063d53b4ab414610df3578063d5d1e77014610e4a578063d73dd62314610e61578063d8270dce14610ec6578063d98b094c14610ef1578063dd62ed3e14610f22578063f05ad9f314610f99578063f854d74c14610fc4575b600080fd5b34801561028357600080fd5b5061028c611011565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102da57600080fd5b506102e3611037565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610323578082015181840152602081019050610308565b50505050905090810190601f1680156103505780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561036a57600080fd5b50610373611070565b6040518082815260200191505060405180910390f35b34801561039557600080fd5b506103d4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611076565b604051808215151515815260200191505060405180910390f35b3480156103fa57600080fd5b5061042f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611168565b005b34801561043d57600080fd5b506104466112bf565b6040518082815260200191505060405180910390f35b34801561046857600080fd5b506104716112c5565b6040518082815260200191505060405180910390f35b34801561049357600080fd5b5061049c6112cb565b6040518082815260200191505060405180910390f35b3480156104be57600080fd5b506104c76112d1565b6040518082815260200191505060405180910390f35b3480156104e957600080fd5b50610548600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112d7565b604051808215151515815260200191505060405180910390f35b34801561056e57600080fd5b50610577611402565b604051808260ff1660ff16815260200191505060405180910390f35b34801561059f57600080fd5b506105a8611407565b6040518082815260200191505060405180910390f35b3480156105ca57600080fd5b506105d361140d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561062157600080fd5b5061062a611433565b604051808260ff1660ff16815260200191505060405180910390f35b34801561065257600080fd5b50610691600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611446565b005b34801561069f57600080fd5b506106de600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115ab565b005b3480156106ec57600080fd5b506106f5611710565b6040518082815260200191505060405180910390f35b34801561071757600080fd5b50610720611716565b6040518082815260200191505060405180910390f35b34801561074257600080fd5b5061074b61171c565b6040518082815260200191505060405180910390f35b34801561076d57600080fd5b50610776611722565b6040518082815260200191505060405180910390f35b34801561079857600080fd5b506107a1611728565b6040518082815260200191505060405180910390f35b3480156107c357600080fd5b50610802600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061172e565b005b34801561081057600080fd5b506108196117c5565b6040518082815260200191505060405180910390f35b34801561083b57600080fd5b506108446117cb565b6040518082815260200191505060405180910390f35b34801561086657600080fd5b5061086f6117d1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108bd57600080fd5b506108fc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506117f7565b604051808215151515815260200191505060405180910390f35b34801561092257600080fd5b5061092b611a7f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561097957600080fd5b506109ae600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611aa5565b6040518082815260200191505060405180910390f35b3480156109d057600080fd5b506109d9611aee565b6040518082815260200191505060405180910390f35b3480156109fb57600080fd5b50610a04611af4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a5257600080fd5b50610a5b611b1a565b6040518082815260200191505060405180910390f35b348015610a7d57600080fd5b50610a86611b20565b6040518082815260200191505060405180910390f35b348015610aa857600080fd5b50610ab1611b26565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610aff57600080fd5b50610b5e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b4b565b604051808215151515815260200191505060405180910390f35b348015610b8457600080fd5b50610b8d611f49565b6040518082815260200191505060405180910390f35b348015610baf57600080fd5b50610bb8611f4f565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610bf8578082015181840152602081019050610bdd565b50505050905090810190601f168015610c255780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610c3f57600080fd5b50610c7e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611f88565b005b348015610c8c57600080fd5b50610c956120ed565b6040518082815260200191505060405180910390f35b348015610cb757600080fd5b50610cc06120f3565b6040518082815260200191505060405180910390f35b348015610ce257600080fd5b50610d21600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506120f9565b604051808215151515815260200191505060405180910390f35b348015610d4757600080fd5b50610d5061210e565b604051808260ff1660ff16815260200191505060405180910390f35b348015610d7857600080fd5b50610d81612121565b604051808260ff1660ff16815260200191505060405180910390f35b348015610da957600080fd5b50610db2612134565b6040518082815260200191505060405180910390f35b348015610dd457600080fd5b50610ddd61213a565b6040518082815260200191505060405180910390f35b348015610dff57600080fd5b50610e08612140565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610e5657600080fd5b50610e5f612166565b005b348015610e6d57600080fd5b50610eac600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612672565b604051808215151515815260200191505060405180910390f35b348015610ed257600080fd5b50610edb612865565b6040518082815260200191505060405180910390f35b348015610efd57600080fd5b50610f0661286b565b604051808260ff1660ff16815260200191505060405180910390f35b348015610f2e57600080fd5b50610f83600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061287e565b6040518082815260200191505060405180910390f35b348015610fa557600080fd5b50610fae612cdd565b6040518082815260200191505060405180910390f35b348015610fd057600080fd5b5061100f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612ce3565b005b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600481526020017f4e65786f0000000000000000000000000000000000000000000000000000000081525081565b600f5481565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111c357600080fd5b7f8a95addc59dddee94a894365b5c66c6c2473b7084d3fd1df9f503db4a2cd6dcc6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a180600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601f5481565b60045481565b60075481565b601e5481565b600081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561136457600080fd5b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506113f9848484612e48565b90509392505050565b601281565b60125481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b602060009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114a157600080fd5b6114cd601a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff163361287e565b60036000601a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061159c601a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683836112d7565b15156115a757600080fd5b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561160657600080fd5b611632600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff163361287e565b60036000600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611701600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683836112d7565b151561170c57600080fd5b5050565b600c5481565b60175481565b600d5481565b601c5481565b601b5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561178957600080fd5b6117b6600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683836112d7565b15156117c157600080fd5b5050565b60195481565b60115481565b601a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115611908576000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611993565b611912818461301c565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60105481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601d5481565b600a5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bab57600080fd5b838673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611c4757600080fd5b505af1158015611c5b573d6000803e3d6000fd5b505050506040513d6020811015611c7157600080fd5b810190808051906020019092919050505010151515611c8f57600080fd5b8573ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611d2a57600080fd5b505af1158015611d3e573d6000803e3d6000fd5b505050506040513d6020811015611d5457600080fd5b810190808051906020019092919050505091508573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb86866040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611e0a57600080fd5b505af1158015611e1e573d6000803e3d6000fd5b505050506040513d6020811015611e3457600080fd5b81019080805190602001909291905050501515611e5057600080fd5b8573ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611eeb57600080fd5b505af1158015611eff573d6000803e3d6000fd5b505050506040513d6020811015611f1557600080fd5b81019080805190602001909291905050509050611f328285613035565b81141515611f3c57fe5b6001925050509392505050565b60165481565b6040805190810160405280600481526020017f4e45584f0000000000000000000000000000000000000000000000000000000081525081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611fe357600080fd5b61200f600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff163361287e565b60036000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120de600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683836112d7565b15156120e957600080fd5b5050565b60185481565b600b5481565b6000612106338484612e48565b905092915050565b601460009054906101000a900460ff1681565b600e60009054906101000a900460ff1681565b60095481565b60135481565b601460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156121c257600080fd5b600060036000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122b2600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611aa5565b60036000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600060036000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600060036000600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600060036000601460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600060036000601a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612670613053565b565b60006126fa600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613035565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60055481565b601a60009054906101000a900460ff1681565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151561295d57600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549250612cd5565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415612a16576129d7600c54600d54600a54600e60009054906101000a900460ff16600b5461322f565b9150612a0f600954612a0a600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611aa5565b61301c565b9050612cc8565b600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415612acf57612a90601254601354601054601460009054906101000a900460ff1660115461322f565b9150612ac8600f54612ac3600e60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611aa5565b61301c565b9050612cc7565b601460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415612b8857612b49601854601954601654601a60009054906101000a900460ff1660175461322f565b9150612b81601554612b7c601460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611aa5565b61301c565b9050612cc6565b601a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415612c4157612c02601e54601f54601c54602060009054906101000a900460ff16601d5461322f565b9150612c3a601b54612c35601a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611aa5565b61301c565b9050612cc5565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549250612cd5565b5b5b5b612cd2828261301c565b92505b505092915050565b60155481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612d3e57600080fd5b612d6a601460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff163361287e565b60036000601460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e39601460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683836112d7565b1515612e4457600080fd5b5050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515612e8557600080fd5b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410151515612ed357600080fd5b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550612f69600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613035565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600082821115151561302a57fe5b818303905092915050565b600080828401905083811015151561304957fe5b8091505092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156130af57600080fd5b7f70aea8d848e8a90fb7661b227dc522eb6395c3dac71b63cb59edd5c9899b23646000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008061323e60055488613035565b42101561324d5782915061329a565b61326b613265426132606005548b613035565b61301c565b876132a4565b90508360ff16811161327d5780613282565b8360ff165b90506132978361329283886132ba565b613035565b91505b5095945050505050565b600081838115156132b157fe5b04905092915050565b60008060008414156132cf57600091506132ee565b82840290508284828115156132e057fe5b041415156132ea57fe5b8091505b50929150505600a165627a7a7230582094a3070dda6dd42d6083ffd892817c0c4d2621761f9bedf1954adc1b35f4c5d30029

Swarm Source

bzzr://94a3070dda6dd42d6083ffd892817c0c4d2621761f9bedf1954adc1b35f4c5d3
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.