ETH Price: $2,443.86 (+1.06%)

Contract

0x9120c9e34c605F54C9967144d4033eD7af0fB495
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer115120632020-12-23 20:48:451384 days ago1608756525IN
0x9120c9e3...7af0fB495
0 ETH0.0036964575
Transfer110631802020-10-15 22:36:541452 days ago1602801414IN
0x9120c9e3...7af0fB495
0 ETH0.002453550
Approve104660922020-07-15 20:00:281545 days ago1594843228IN
0x9120c9e3...7af0fB495
0 ETH0.0018644642
Approve104659672020-07-15 19:32:521545 days ago1594841572IN
0x9120c9e3...7af0fB495
0 ETH0.0016868938
Approve104659062020-07-15 19:19:181545 days ago1594840758IN
0x9120c9e3...7af0fB495
0 ETH0.0039064988
Approve104658662020-07-15 19:08:231545 days ago1594840103IN
0x9120c9e3...7af0fB495
0 ETH0.0015981136
Approve104658522020-07-15 19:04:061545 days ago1594839846IN
0x9120c9e3...7af0fB495
0 ETH0.0018644642
Transfer104657912020-07-15 18:48:441545 days ago1594838924IN
0x9120c9e3...7af0fB495
0 ETH0.003213750
Approve104656422020-07-15 18:16:161545 days ago1594836976IN
0x9120c9e3...7af0fB495
0 ETH0.0023083852
Approve104655802020-07-15 18:04:191545 days ago1594836259IN
0x9120c9e3...7af0fB495
0 ETH0.0019976445
Approve104653872020-07-15 17:20:521545 days ago1594833652IN
0x9120c9e3...7af0fB495
0 ETH0.0027079161
Approve104653492020-07-15 17:13:391545 days ago1594833219IN
0x9120c9e3...7af0fB495
0 ETH0.002219650
Approve104653412020-07-15 17:11:351545 days ago1594833095IN
0x9120c9e3...7af0fB495
0 ETH0.002219650
Approve104653342020-07-15 17:09:541545 days ago1594832994IN
0x9120c9e3...7af0fB495
0 ETH0.0019532444
Approve104651442020-07-15 16:28:461545 days ago1594830526IN
0x9120c9e3...7af0fB495
0 ETH0.003329475
Approve104650362020-07-15 16:04:261545 days ago1594829066IN
0x9120c9e3...7af0fB495
0 ETH0.003329475
Approve104647612020-07-15 15:03:571545 days ago1594825437IN
0x9120c9e3...7af0fB495
0 ETH0.0032406173
Approve104647362020-07-15 14:58:421545 days ago1594825122IN
0x9120c9e3...7af0fB495
0 ETH0.0031962272
Approve104646122020-07-15 14:30:351545 days ago1594823435IN
0x9120c9e3...7af0fB495
0 ETH0.0029742667
Approve104646112020-07-15 14:30:331545 days ago1594823433IN
0x9120c9e3...7af0fB495
0 ETH0.0029742667
Approve104645982020-07-15 14:26:161545 days ago1594823176IN
0x9120c9e3...7af0fB495
0 ETH0.0028410864
Approve104645732020-07-15 14:20:371545 days ago1594822837IN
0x9120c9e3...7af0fB495
0 ETH0.0032472773.15
Approve104645652020-07-15 14:18:041545 days ago1594822684IN
0x9120c9e3...7af0fB495
0 ETH0.0032716973.7
Approve104645482020-07-15 14:14:401545 days ago1594822480IN
0x9120c9e3...7af0fB495
0 ETH0.0039952890
Approve104645022020-07-15 14:02:581545 days ago1594821778IN
0x9120c9e3...7af0fB495
0 ETH0.0031251970.4
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
NEU

Compiler Version
v0.5.13+commit.5b0b510c

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2020-07-14
*/

//  Current version of NEU Staking Token has an automated deflationary mechanism where 12% of 
//  each transaction is burned instantly. Mechanism enables NEU token to have an innate value-
//  creating nature where the total supply decreases until 2% of initial supply is left.  

//  Currently on preparation part of the contract will have the following functions:

//  Function-1: On the upcoming version of the NEU Staking Token burn rate will drop to 6% per 
//  transaction and another 6% of each realized transaction will be distributed among the NEU stakers. 
//  This allows NEU Staking Token to have a deflationary feature while rewarding the stakers.

//  Function-2: 1 of each 10 transactions on the network will be picked randomly where 20% of the 
//  transaction is either a burned or minted. Similar apps will be developed on top of the contract. 
//  New token contract with aforementioned functions will be released and the initial liquidity will
//  be locked.

//  Neu Staking Token Smart Contract
//  Contract Creator  : 0x8cdF50a7DdCD7b35caA2d05B133e1311CAeaecf1
//  Token Symbol      : NEU
//  Token Name        : NEU Staking
//  Total supply: 250000000
//  Decimals    : 12

pragma solidity ^0.5.13;

interface Callable {
	function tokenCallback(address _from, uint256 _tokens, bytes calldata _data) external returns (bool);
}

contract NEU {

	uint256 constant private Constant = 2**64;
	uint256 constant private Total_NEU = 25e19; // 250.000.000 Initial Supply
	uint256 constant private Burn_Ratio = 12;   // 12% burn rate for each transaction
	uint256 constant private Burn_Threshold = 2;     
	uint256 constant private Freeze_Size = 1e20; 
	
	string constant public name = "NEU Staking";
	string constant public symbol = "NEU";
	uint8 constant public decimals = 12;

	struct User {
		bool whitelisted;
		uint256 balance;
		uint256 frozen;
		mapping(address => uint256) allowance;
		int256 scaledPayout;
	}

	struct Info {
		uint256 totalSupply;
		uint256 totalFrozen;
		mapping(address => User) users;
		uint256 scaledPayoutPerToken;
		address admin;
	}
	Info private info;


	event Transfer(address indexed from, address indexed to, uint256 tokens);
	event Approval(address indexed owner, address indexed spender, uint256 tokens);
	event Whitelist(address indexed user, bool status);
	event Freeze(address indexed owner, uint256 tokens);
	event Unfreeze(address indexed owner, uint256 tokens);
	event Collect(address indexed owner, uint256 tokens);
	event Burn(uint256 tokens);


	constructor() public {
		info.admin = msg.sender;
		info.totalSupply = Total_NEU;
		info.users[msg.sender].balance = Total_NEU;
		emit Transfer(address(0x0), msg.sender, Total_NEU);
		whitelist(msg.sender, true);
	}

	function freeze(uint256 _tokens) external {
		_freeze(_tokens);
	}

	function unfreeze(uint256 _tokens) external {
		_unfreeze(_tokens);
	}

	function collect() external returns (uint256) {
		uint256 _dividends = dividendsOf(msg.sender);
		require(_dividends >= 0);
		info.users[msg.sender].scaledPayout += int256(_dividends * Constant);
		info.users[msg.sender].balance += _dividends;
		emit Transfer(address(this), msg.sender, _dividends);
		emit Collect(msg.sender, _dividends);
		return _dividends;
	}

	function burn(uint256 _tokens) external {
		require(balanceOf(msg.sender) >= _tokens);
		info.users[msg.sender].balance -= _tokens;
		uint256 _burnedAmount = _tokens;
		if (info.totalFrozen > 0) {
			_burnedAmount /= 2;
			info.scaledPayoutPerToken += _burnedAmount * Constant / info.totalFrozen;
			emit Transfer(msg.sender, address(this), _burnedAmount);
		}
		info.totalSupply -= _burnedAmount;
		emit Transfer(msg.sender, address(0x0), _burnedAmount);
		emit Burn(_burnedAmount);
	}

	function distribute(uint256 _tokens) external {
		require(info.totalFrozen > 0);
		require(balanceOf(msg.sender) >= _tokens);
		info.users[msg.sender].balance -= _tokens;
		info.scaledPayoutPerToken += _tokens * Constant / info.totalFrozen;
		emit Transfer(msg.sender, address(this), _tokens);
	}

	function transfer(address _to, uint256 _tokens) external returns (bool) {
		_transfer(msg.sender, _to, _tokens);
		return true;
	}

	function approve(address _spender, uint256 _tokens) external returns (bool) {
		info.users[msg.sender].allowance[_spender] = _tokens;
		emit Approval(msg.sender, _spender, _tokens);
		return true;
	}

	function transferFrom(address _from, address _to, uint256 _tokens) external returns (bool) {
		require(info.users[_from].allowance[msg.sender] >= _tokens);
		info.users[_from].allowance[msg.sender] -= _tokens;
		_transfer(_from, _to, _tokens);
		return true;
	}

	function transferAndCall(address _to, uint256 _tokens, bytes calldata _data) external returns (bool) {
		uint256 _transferred = _transfer(msg.sender, _to, _tokens);
		uint32 _size;
		assembly {
			_size := extcodesize(_to)
		}
		if (_size > 0) {
			require(Callable(_to).tokenCallback(msg.sender, _transferred, _data));
		}
		return true;
	}

	function bulkTransfer(address[] calldata _receivers, uint256[] calldata _amounts) external {
		require(_receivers.length == _amounts.length);
		for (uint256 i = 0; i < _receivers.length; i++) {
			_transfer(msg.sender, _receivers[i], _amounts[i]);
		}
	}

	function whitelist(address _user, bool _status) public {
		require(msg.sender == info.admin);
		info.users[_user].whitelisted = _status;
		emit Whitelist(_user, _status);
	}


	function totalSupply() public view returns (uint256) {
		return info.totalSupply;
	}

	function totalFrozen() public view returns (uint256) {
		return info.totalFrozen;
	}

	function balanceOf(address _user) public view returns (uint256) {
		return info.users[_user].balance - frozenOf(_user);
	}

	function frozenOf(address _user) public view returns (uint256) {
		return info.users[_user].frozen;
	}

	function dividendsOf(address _user) public view returns (uint256) {
		return uint256(int256(info.scaledPayoutPerToken * info.users[_user].frozen) - info.users[_user].scaledPayout) / Constant;
	}

	function allowance(address _user, address _spender) public view returns (uint256) {
		return info.users[_user].allowance[_spender];
	}

	function isWhitelisted(address _user) public view returns (bool) {
		return info.users[_user].whitelisted;
	}

	function allInfoFor(address _user) public view returns (uint256 totalTokenSupply, uint256 totalTokensFrozen, uint256 userBalance, uint256 userFrozen, uint256 userDividends) {
		return (totalSupply(), totalFrozen(), balanceOf(_user), frozenOf(_user), dividendsOf(_user));
	}


	function _transfer(address _from, address _to, uint256 _tokens) internal returns (uint256) {
		require(balanceOf(_from) >= _tokens);
		info.users[_from].balance -= _tokens;
		uint256 _burnedAmount = _tokens * Burn_Ratio / 100;
		if (totalSupply() - _burnedAmount < Total_NEU * Burn_Threshold / 100 || isWhitelisted(_from)) {
			_burnedAmount = 0;
		}
		uint256 _transferred = _tokens - _burnedAmount;
		info.users[_to].balance += _transferred;
		emit Transfer(_from, _to, _transferred);
		if (_burnedAmount > 0) {
			if (info.totalFrozen > 0) {
				_burnedAmount /= 2;
				info.scaledPayoutPerToken += _burnedAmount * Constant / info.totalFrozen;
				emit Transfer(_from, address(this), _burnedAmount);
			}
			info.totalSupply -= _burnedAmount;
			emit Transfer(_from, address(0x0), _burnedAmount);
			emit Burn(_burnedAmount);
		}
		return _transferred;
	}

	function _freeze(uint256 _amount) internal {
		require(balanceOf(msg.sender) >= _amount);
		require(frozenOf(msg.sender) + _amount >= Freeze_Size);
		info.totalFrozen += _amount;
		info.users[msg.sender].frozen += _amount;
		info.users[msg.sender].scaledPayout += int256(_amount * info.scaledPayoutPerToken);
		emit Transfer(msg.sender, address(this), _amount);
		emit Freeze(msg.sender, _amount);
	}

	function _unfreeze(uint256 _amount) internal {
		require(frozenOf(msg.sender) >= _amount);
		uint256 _burnedAmount = _amount * Burn_Ratio / 100;
		info.scaledPayoutPerToken += _burnedAmount * Constant / info.totalFrozen;
		info.totalFrozen -= _amount;
		info.users[msg.sender].balance -= _burnedAmount;
		info.users[msg.sender].frozen -= _amount;
		info.users[msg.sender].scaledPayout -= int256(_amount * info.scaledPayoutPerToken);
		emit Transfer(address(this), msg.sender, _amount - _burnedAmount);
		emit Unfreeze(msg.sender, _amount);
	}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Collect","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Freeze","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Unfreeze","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"Whitelist","type":"event"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"allInfoFor","outputs":[{"internalType":"uint256","name":"totalTokenSupply","type":"uint256"},{"internalType":"uint256","name":"totalTokensFrozen","type":"uint256"},{"internalType":"uint256","name":"userBalance","type":"uint256"},{"internalType":"uint256","name":"userFrozen","type":"uint256"},{"internalType":"uint256","name":"userDividends","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"_receivers","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"name":"bulkTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"collect","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"distribute","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"dividendsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"freeze","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"frozenOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"isWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalFrozen","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokens","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"transferAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"unfreeze","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"whitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b5033600060040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550680d8d726b7177a800006000800181905550680d8d726b7177a80000600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef680d8d726b7177a800006040518082815260200191505060405180910390a361013a33600161013f60201b60201c565b61024f565b600060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461019c57600080fd5b80600060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f5a25e09a5dba33161281055e015f1279b6b10204d8f90dd56a8ce2b82322d43d82604051808215151515815260200191505060405180910390a25050565b611c768061025e6000396000f3fe608060405234801561001057600080fd5b50600436106101415760003560e01c806342966c68116100b857806395d89b411161007c57806395d89b4114610700578063a9059cbb14610783578063d7a78db8146107e9578063dd62ed3e14610817578063e52253811461088f578063f59c3708146108ad57610141565b806342966c68146105aa57806357f6b812146105d85780636623fc461461064c57806370a082311461067a57806391c05b0b146106d257610141565b80631bf6e00d1161010a5780631bf6e00d146103735780631e7f87bc146103cb57806323b872dd146103e9578063313ce5671461046f5780633af32abf146104935780634000aea0146104ef57610141565b806265318b1461014657806306fdde031461019e578063095ea7b314610221578063153a1f3e1461028757806318160ddd14610355575b600080fd5b6101886004803603602081101561015c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108fd565b6040518082815260200191505060405180910390f35b6101a66109ac565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101e65780820151818401526020810190506101cb565b50505050905090810190601f1680156102135780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61026d6004803603604081101561023757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109e5565b604051808215151515815260200191505060405180910390f35b6103536004803603604081101561029d57600080fd5b81019080803590602001906401000000008111156102ba57600080fd5b8201836020820111156102cc57600080fd5b803590602001918460208302840111640100000000831117156102ee57600080fd5b90919293919293908035906020019064010000000081111561030f57600080fd5b82018360208201111561032157600080fd5b8035906020019184602083028401116401000000008311171561034357600080fd5b9091929391929390505050610add565b005b61035d610b5a565b6040518082815260200191505060405180910390f35b6103b56004803603602081101561038957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b66565b6040518082815260200191505060405180910390f35b6103d3610bb4565b6040518082815260200191505060405180910390f35b610455600480360360608110156103ff57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bc0565b604051808215151515815260200191505060405180910390f35b610477610cf8565b604051808260ff1660ff16815260200191505060405180910390f35b6104d5600480360360208110156104a957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cfd565b604051808215151515815260200191505060405180910390f35b6105906004803603606081101561050557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561054c57600080fd5b82018360208201111561055e57600080fd5b8035906020019184600183028401116401000000008311171561058057600080fd5b9091929391929390505050610d58565b604051808215151515815260200191505060405180910390f35b6105d6600480360360208110156105c057600080fd5b8101908080359060200190929190505050610e8b565b005b61061a600480360360208110156105ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611057565b604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390f35b6106786004803603602081101561066257600080fd5b810190808035906020019092919050505061109d565b005b6106bc6004803603602081101561069057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110a9565b6040518082815260200191505060405180910390f35b6106fe600480360360208110156106e857600080fd5b8101908080359060200190929190505050611102565b005b61070861120f565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561074857808201518184015260208101905061072d565b50505050905090810190601f1680156107755780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107cf6004803603604081101561079957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611248565b604051808215151515815260200191505060405180910390f35b610815600480360360208110156107ff57600080fd5b8101908080359060200190929190505050611260565b005b6108796004803603604081101561082d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061126c565b6040518082815260200191505060405180910390f35b6108976112f8565b6040518082815260200191505060405180910390f35b6108fb600480360360408110156108c357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080351515906020019092919050505061147f565b005b600068010000000000000000600060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154600060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546000600301540203816109a457fe5b049050919050565b6040518060400160405280600b81526020017f4e4555205374616b696e6700000000000000000000000000000000000000000081525081565b600081600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b818190508484905014610aef57600080fd5b60008090505b84849050811015610b5357610b4533868684818110610b1057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16858585818110610b3957fe5b9050602002013561158f565b508080600101915050610af5565b5050505050565b60008060000154905090565b60008060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050919050565b60008060010154905090565b600081600060020160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610c5157600080fd5b81600060020160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550610cec84848461158f565b50600190509392505050565b600c81565b60008060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff169050919050565b600080610d6633878761158f565b90506000863b905060008163ffffffff161115610e7d578673ffffffffffffffffffffffffffffffffffffffff16636be32e73338488886040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050602060405180830381600087803b158015610e3857600080fd5b505af1158015610e4c573d6000803e3d6000fd5b505050506040513d6020811015610e6257600080fd5b8101908080519060200190929190505050610e7c57600080fd5b5b600192505050949350505050565b80610e95336110a9565b1015610ea057600080fd5b80600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825403925050819055506000819050600080600101541115610fa45760028181610f0f57fe5b04905060006001015468010000000000000000820281610f2b57fe5b046000600301600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b806000800160008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a37fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb816040518082815260200191505060405180910390a15050565b6000806000806000611067610b5a565b61106f610bb4565b611078886110a9565b61108189610b66565b61108a8a6108fd565b9450945094509450945091939590929450565b6110a681611877565b50565b60006110b482610b66565b600060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154039050919050565b600080600101541161111357600080fd5b8061111d336110a9565b101561112857600080fd5b80600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825403925050819055506000600101546801000000000000000082028161119457fe5b046000600301600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350565b6040518060400160405280600381526020017f4e4555000000000000000000000000000000000000000000000000000000000081525081565b600061125533848461158f565b506001905092915050565b61126981611a96565b50565b60008060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080611304336108fd565b9050600081101561131457600080fd5b680100000000000000008102600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004016000828254019250508190555080600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167f4256a058fa2b123d727576d3d31e3a272db98ee5fe264e229610ce43dc849999826040518082815260200191505060405180910390a28091505090565b600060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114dc57600080fd5b80600060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f5a25e09a5dba33161281055e015f1279b6b10204d8f90dd56a8ce2b82322d43d82604051808215151515815260200191505060405180910390a25050565b60008161159b856110a9565b10156115a657600080fd5b81600060020160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254039250508190555060006064600c84028161160857fe5b04905060646002680d8d726b7177a80000028161162157fe5b048161162b610b5a565b03108061163d575061163c85610cfd565b5b1561164757600090505b6000818403905080600060020160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825401925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3600082111561186b576000806001015411156117bb576002828161172657fe5b0491506000600101546801000000000000000083028161174257fe5b046000600301600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35b816000800160008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a37fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb826040518082815260200191505060405180910390a15b80925050509392505050565b8061188133610b66565b101561188c57600080fd5b60006064600c83028161189b57fe5b049050600060010154680100000000000000008202816118b757fe5b046000600301600082825401925050819055508160006001016000828254039250508190555080600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254039250508190555081600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201600082825403925050819055506000600301548202600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8385036040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167f2cfce4af01bcb9d6cf6c84ee1b7c491100b8695368264146a94d71e10a63083f836040518082815260200191505060405180910390a25050565b80611aa0336110a9565b1015611aab57600080fd5b68056bc75e2d6310000081611abf33610b66565b011015611acb57600080fd5b8060006001016000828254019250508190555080600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201600082825401925050819055506000600301548102600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167ff97a274face0b5517365ad396b1fdba6f68bd3135ef603e44272adba3af5a1e0826040518082815260200191505060405180910390a25056fea265627a7a723158202ba9600e32fb047360e6fe0d3f141bbb3726432b6c0af150ec432e604789226964736f6c634300050d0032

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101415760003560e01c806342966c68116100b857806395d89b411161007c57806395d89b4114610700578063a9059cbb14610783578063d7a78db8146107e9578063dd62ed3e14610817578063e52253811461088f578063f59c3708146108ad57610141565b806342966c68146105aa57806357f6b812146105d85780636623fc461461064c57806370a082311461067a57806391c05b0b146106d257610141565b80631bf6e00d1161010a5780631bf6e00d146103735780631e7f87bc146103cb57806323b872dd146103e9578063313ce5671461046f5780633af32abf146104935780634000aea0146104ef57610141565b806265318b1461014657806306fdde031461019e578063095ea7b314610221578063153a1f3e1461028757806318160ddd14610355575b600080fd5b6101886004803603602081101561015c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108fd565b6040518082815260200191505060405180910390f35b6101a66109ac565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101e65780820151818401526020810190506101cb565b50505050905090810190601f1680156102135780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61026d6004803603604081101561023757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109e5565b604051808215151515815260200191505060405180910390f35b6103536004803603604081101561029d57600080fd5b81019080803590602001906401000000008111156102ba57600080fd5b8201836020820111156102cc57600080fd5b803590602001918460208302840111640100000000831117156102ee57600080fd5b90919293919293908035906020019064010000000081111561030f57600080fd5b82018360208201111561032157600080fd5b8035906020019184602083028401116401000000008311171561034357600080fd5b9091929391929390505050610add565b005b61035d610b5a565b6040518082815260200191505060405180910390f35b6103b56004803603602081101561038957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b66565b6040518082815260200191505060405180910390f35b6103d3610bb4565b6040518082815260200191505060405180910390f35b610455600480360360608110156103ff57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bc0565b604051808215151515815260200191505060405180910390f35b610477610cf8565b604051808260ff1660ff16815260200191505060405180910390f35b6104d5600480360360208110156104a957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cfd565b604051808215151515815260200191505060405180910390f35b6105906004803603606081101561050557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561054c57600080fd5b82018360208201111561055e57600080fd5b8035906020019184600183028401116401000000008311171561058057600080fd5b9091929391929390505050610d58565b604051808215151515815260200191505060405180910390f35b6105d6600480360360208110156105c057600080fd5b8101908080359060200190929190505050610e8b565b005b61061a600480360360208110156105ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611057565b604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390f35b6106786004803603602081101561066257600080fd5b810190808035906020019092919050505061109d565b005b6106bc6004803603602081101561069057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110a9565b6040518082815260200191505060405180910390f35b6106fe600480360360208110156106e857600080fd5b8101908080359060200190929190505050611102565b005b61070861120f565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561074857808201518184015260208101905061072d565b50505050905090810190601f1680156107755780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107cf6004803603604081101561079957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611248565b604051808215151515815260200191505060405180910390f35b610815600480360360208110156107ff57600080fd5b8101908080359060200190929190505050611260565b005b6108796004803603604081101561082d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061126c565b6040518082815260200191505060405180910390f35b6108976112f8565b6040518082815260200191505060405180910390f35b6108fb600480360360408110156108c357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080351515906020019092919050505061147f565b005b600068010000000000000000600060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154600060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546000600301540203816109a457fe5b049050919050565b6040518060400160405280600b81526020017f4e4555205374616b696e6700000000000000000000000000000000000000000081525081565b600081600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b818190508484905014610aef57600080fd5b60008090505b84849050811015610b5357610b4533868684818110610b1057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16858585818110610b3957fe5b9050602002013561158f565b508080600101915050610af5565b5050505050565b60008060000154905090565b60008060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050919050565b60008060010154905090565b600081600060020160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610c5157600080fd5b81600060020160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550610cec84848461158f565b50600190509392505050565b600c81565b60008060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff169050919050565b600080610d6633878761158f565b90506000863b905060008163ffffffff161115610e7d578673ffffffffffffffffffffffffffffffffffffffff16636be32e73338488886040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050602060405180830381600087803b158015610e3857600080fd5b505af1158015610e4c573d6000803e3d6000fd5b505050506040513d6020811015610e6257600080fd5b8101908080519060200190929190505050610e7c57600080fd5b5b600192505050949350505050565b80610e95336110a9565b1015610ea057600080fd5b80600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825403925050819055506000819050600080600101541115610fa45760028181610f0f57fe5b04905060006001015468010000000000000000820281610f2b57fe5b046000600301600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b806000800160008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a37fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb816040518082815260200191505060405180910390a15050565b6000806000806000611067610b5a565b61106f610bb4565b611078886110a9565b61108189610b66565b61108a8a6108fd565b9450945094509450945091939590929450565b6110a681611877565b50565b60006110b482610b66565b600060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154039050919050565b600080600101541161111357600080fd5b8061111d336110a9565b101561112857600080fd5b80600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825403925050819055506000600101546801000000000000000082028161119457fe5b046000600301600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350565b6040518060400160405280600381526020017f4e4555000000000000000000000000000000000000000000000000000000000081525081565b600061125533848461158f565b506001905092915050565b61126981611a96565b50565b60008060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080611304336108fd565b9050600081101561131457600080fd5b680100000000000000008102600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004016000828254019250508190555080600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167f4256a058fa2b123d727576d3d31e3a272db98ee5fe264e229610ce43dc849999826040518082815260200191505060405180910390a28091505090565b600060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114dc57600080fd5b80600060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f5a25e09a5dba33161281055e015f1279b6b10204d8f90dd56a8ce2b82322d43d82604051808215151515815260200191505060405180910390a25050565b60008161159b856110a9565b10156115a657600080fd5b81600060020160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254039250508190555060006064600c84028161160857fe5b04905060646002680d8d726b7177a80000028161162157fe5b048161162b610b5a565b03108061163d575061163c85610cfd565b5b1561164757600090505b6000818403905080600060020160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825401925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3600082111561186b576000806001015411156117bb576002828161172657fe5b0491506000600101546801000000000000000083028161174257fe5b046000600301600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35b816000800160008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a37fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb826040518082815260200191505060405180910390a15b80925050509392505050565b8061188133610b66565b101561188c57600080fd5b60006064600c83028161189b57fe5b049050600060010154680100000000000000008202816118b757fe5b046000600301600082825401925050819055508160006001016000828254039250508190555080600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254039250508190555081600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201600082825403925050819055506000600301548202600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8385036040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167f2cfce4af01bcb9d6cf6c84ee1b7c491100b8695368264146a94d71e10a63083f836040518082815260200191505060405180910390a25050565b80611aa0336110a9565b1015611aab57600080fd5b68056bc75e2d6310000081611abf33610b66565b011015611acb57600080fd5b8060006001016000828254019250508190555080600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201600082825401925050819055506000600301548102600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167ff97a274face0b5517365ad396b1fdba6f68bd3135ef603e44272adba3af5a1e0826040518082815260200191505060405180910390a25056fea265627a7a723158202ba9600e32fb047360e6fe0d3f141bbb3726432b6c0af150ec432e604789226964736f6c634300050d0032

Deployed Bytecode Sourcemap

1380:7192:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1380:7192:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5980:196;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5980:196:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1707:43;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1707:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4277:203;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4277:203:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5112:259;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5112:259:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;5112:259:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5112:259:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;5112:259:0;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;5112:259:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5112:259:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;5112:259:0;;;;;;;;;;;;:::i;:::-;;5560:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5871:104;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5871:104:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5651:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4485:266;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4485:266:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1795:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6322:111;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6322:111:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4756:351;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4756:351:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;4756:351:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4756:351:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;4756:351:0;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3329:498;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3329:498:0;;;;;;;;;;;;;;;;;:::i;:::-;;6438:275;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6438:275:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2876:72;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2876:72:0;;;;;;;;;;;;;;;;;:::i;:::-;;5742:124;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5742:124:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3832:302;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3832:302:0;;;;;;;;;;;;;;;;;:::i;:::-;;1754:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1754:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4139:133;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4139:133:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2803:68;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2803:68:0;;;;;;;;;;;;;;;;;:::i;:::-;;6181:136;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6181:136:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2953:371;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5376:177;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5376:177:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5980:196;6037:7;1435:5;6129:4;:10;;:17;6140:5;6129:17;;;;;;;;;;;;;;;:30;;;6101:4;:10;;:17;6112:5;6101:17;;;;;;;;;;;;;;;:24;;;6073:4;:25;;;:52;6066:93;6058:113;;;;;;6051:120;;5980:196;;;:::o;1707:43::-;;;;;;;;;;;;;;;;;;;:::o;4277:203::-;4347:4;4403:7;4358:4;:10;;:22;4369:10;4358:22;;;;;;;;;;;;;;;:32;;:42;4391:8;4358:42;;;;;;;;;;;;;;;:52;;;;4441:8;4420:39;;4429:10;4420:39;;;4451:7;4420:39;;;;;;;;;;;;;;;;;;4471:4;4464:11;;4277:203;;;;:::o;5112:259::-;5237:8;;:15;;5216:10;;:17;;:36;5208:45;;;;;;5263:9;5275:1;5263:13;;5258:109;5282:10;;:17;;5278:1;:21;5258:109;;;5312:49;5322:10;5334;;5345:1;5334:13;;;;;;;;;;;;;;;5349:8;;5358:1;5349:11;;;;;;;;;;;;;5312:9;:49::i;:::-;;5301:3;;;;;;;5258:109;;;;5112:259;;;;:::o;5560:86::-;5604:7;5625:4;:16;;;5618:23;;5560:86;:::o;5871:104::-;5925:7;5946:4;:10;;:17;5957:5;5946:17;;;;;;;;;;;;;;;:24;;;5939:31;;5871:104;;;:::o;5651:86::-;5695:7;5716:4;:16;;;5709:23;;5651:86;:::o;4485:266::-;4570:4;4632:7;4589:4;:10;;:17;4600:5;4589:17;;;;;;;;;;;;;;;:27;;:39;4617:10;4589:39;;;;;;;;;;;;;;;;:50;;4581:59;;;;;;4688:7;4645:4;:10;;:17;4656:5;4645:17;;;;;;;;;;;;;;;:27;;:39;4673:10;4645:39;;;;;;;;;;;;;;;;:50;;;;;;;;;;;4700:30;4710:5;4717:3;4722:7;4700:9;:30::i;:::-;;4742:4;4735:11;;4485:266;;;;;:::o;1795:35::-;1828:2;1795:35;:::o;6322:111::-;6381:4;6399;:10;;:17;6410:5;6399:17;;;;;;;;;;;;;;;:29;;;;;;;;;;;;6392:36;;6322:111;;;:::o;4756:351::-;4851:4;4862:20;4885:35;4895:10;4907:3;4912:7;4885:9;:35::i;:::-;4862:58;;4925:12;4978:3;4966:16;4957:25;;5003:1;4995:5;:9;;;4991:96;;;5029:3;5020:27;;;5048:10;5060:12;5074:5;;5020:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;5020:60:0;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5020:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5020:60:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5020:60:0;;;;;;;;;;;;;;;;5012:69;;;;;;4991:96;5098:4;5091:11;;;;4756:351;;;;;;:::o;3329:498::-;3407:7;3382:21;3392:10;3382:9;:21::i;:::-;:32;;3374:41;;;;;;3454:7;3420:4;:10;;:22;3431:10;3420:22;;;;;;;;;;;;;;;:30;;;:41;;;;;;;;;;;3466:21;3490:7;3466:31;;3525:1;3506:4;:16;;;:20;3502:195;;;3551:1;3534:18;;;;;;;;;3614:4;:16;;;1435:5;3587:13;:24;:43;;;;;;3558:4;:25;;;:72;;;;;;;;;;;3670:4;3641:50;;3650:10;3641:50;;;3677:13;3641:50;;;;;;;;;;;;;;;;;;3502:195;3721:13;3701:4;:16;;;:33;;;;;;;;;;;3773:3;3744:49;;3753:10;3744:49;;;3779:13;3744:49;;;;;;;;;;;;;;;;;;3803:19;3808:13;3803:19;;;;;;;;;;;;;;;;;;3329:498;;:::o;6438:275::-;6494:24;6520:25;6547:19;6568:18;6588:21;6624:13;:11;:13::i;:::-;6639;:11;:13::i;:::-;6654:16;6664:5;6654:9;:16::i;:::-;6672:15;6681:5;6672:8;:15::i;:::-;6689:18;6701:5;6689:11;:18::i;:::-;6616:92;;;;;;;;;;6438:275;;;;;;;:::o;2876:72::-;2925:18;2935:7;2925:9;:18::i;:::-;2876:72;:::o;5742:124::-;5797:7;5846:15;5855:5;5846:8;:15::i;:::-;5818:4;:10;;:17;5829:5;5818:17;;;;;;;;;;;;;;;:25;;;:43;5811:50;;5742:124;;;:::o;3832:302::-;3910:1;3891:4;:16;;;:20;3883:29;;;;;;3950:7;3925:21;3935:10;3925:9;:21::i;:::-;:32;;3917:41;;;;;;3997:7;3963:4;:10;;:22;3974:10;3963:22;;;;;;;;;;;;;;;:30;;;:41;;;;;;;;;;;4059:4;:16;;;1435:5;4038:7;:18;:37;;;;;;4009:4;:25;;;:66;;;;;;;;;;;4114:4;4085:44;;4094:10;4085:44;;;4121:7;4085:44;;;;;;;;;;;;;;;;;;3832:302;:::o;1754:37::-;;;;;;;;;;;;;;;;;;;:::o;4139:133::-;4205:4;4216:35;4226:10;4238:3;4243:7;4216:9;:35::i;:::-;;4263:4;4256:11;;4139:133;;;;:::o;2803:68::-;2850:16;2858:7;2850;:16::i;:::-;2803:68;:::o;6181:136::-;6254:7;6275:4;:10;;:17;6286:5;6275:17;;;;;;;;;;;;;;;:27;;:37;6303:8;6275:37;;;;;;;;;;;;;;;;6268:44;;6181:136;;;;:::o;2953:371::-;2990:7;3004:18;3025:23;3037:10;3025:11;:23::i;:::-;3004:44;;3075:1;3061:10;:15;;3053:24;;;;;;1435:5;3128:10;:21;3082:4;:10;;:22;3093:10;3082:22;;;;;;;;;;;;;;;:35;;;:68;;;;;;;;;;;3189:10;3155:4;:10;;:22;3166:10;3155:22;;;;;;;;;;;;;;;:30;;;:44;;;;;;;;;;;3233:10;3209:47;;3226:4;3209:47;;;3245:10;3209:47;;;;;;;;;;;;;;;;;;3274:10;3266:31;;;3286:10;3266:31;;;;;;;;;;;;;;;;;;3309:10;3302:17;;;2953:371;:::o;5376:177::-;5458:4;:10;;;;;;;;;;;;5444:24;;:10;:24;;;5436:33;;;;;;5506:7;5474:4;:10;;:17;5485:5;5474:17;;;;;;;;;;;;;;;:29;;;:39;;;;;;;;;;;;;;;;;;5533:5;5523:25;;;5540:7;5523:25;;;;;;;;;;;;;;;;;;;;;;5376:177;;:::o;6720:879::-;6802:7;6844;6824:16;6834:5;6824:9;:16::i;:::-;:27;;6816:36;;;;;;6886:7;6857:4;:10;;:17;6868:5;6857:17;;;;;;;;;;;;;;;:25;;;:36;;;;;;;;;;;6898:21;6945:3;1558:2;6922:7;:20;:26;;;;;;6898:50;;7018:3;1646:1;1481:5;6989:26;:32;;;;;;6973:13;6957;:11;:13::i;:::-;:29;:64;:88;;;;7025:20;7039:5;7025:13;:20::i;:::-;6957:88;6953:123;;;7069:1;7053:17;;6953:123;7080:20;7113:13;7103:7;:23;7080:46;;7158:12;7131:4;:10;;:15;7142:3;7131:15;;;;;;;;;;;;;;;:23;;;:39;;;;;;;;;;;7196:3;7180:34;;7189:5;7180:34;;;7201:12;7180:34;;;;;;;;;;;;;;;;;;7239:1;7223:13;:17;7219:352;;;7271:1;7252:4;:16;;;:20;7248:194;;;7298:1;7281:18;;;;;;;;;7362:4;:16;;;1435:5;7335:13;:24;:43;;;;;;7306:4;:25;;;:72;;;;;;;;;;;7414:4;7390:45;;7399:5;7390:45;;;7421:13;7390:45;;;;;;;;;;;;;;;;;;7248:194;7467:13;7447:4;:16;;;:33;;;;;;;;;;;7515:3;7491:44;;7500:5;7491:44;;;7521:13;7491:44;;;;;;;;;;;;;;;;;;7546:19;7551:13;7546:19;;;;;;;;;;;;;;;;;;7219:352;7582:12;7575:19;;;;6720:879;;;;;:::o;8017:552::-;8099:7;8075:20;8084:10;8075:8;:20::i;:::-;:31;;8067:40;;;;;;8112:21;8159:3;1558:2;8136:7;:20;:26;;;;;;8112:50;;8223:4;:16;;;1435:5;8196:13;:24;:43;;;;;;8167:4;:25;;;:72;;;;;;;;;;;8264:7;8244:4;:16;;;:27;;;;;;;;;;;8310:13;8276:4;:10;;:22;8287:10;8276:22;;;;;;;;;;;;;;;:30;;;:47;;;;;;;;;;;8361:7;8328:4;:10;;:22;8339:10;8328:22;;;;;;;;;;;;;;;:29;;;:40;;;;;;;;;;;8429:4;:25;;;8419:7;:35;8373:4;:10;;:22;8384:10;8373:22;;;;;;;;;;;;;;;:35;;;:82;;;;;;;;;;;8489:10;8465:60;;8482:4;8465:60;;;8511:13;8501:7;:23;8465:60;;;;;;;;;;;;;;;;;;8544:10;8535:29;;;8556:7;8535:29;;;;;;;;;;;;;;;;;;8017:552;;:::o;7604:408::-;7685:7;7660:21;7670:10;7660:9;:21::i;:::-;:32;;7652:41;;;;;;1695:4;7729:7;7706:20;7715:10;7706:8;:20::i;:::-;:30;:45;;7698:54;;;;;;7777:7;7757:4;:16;;;:27;;;;;;;;;;;7822:7;7789:4;:10;;:22;7800:10;7789:22;;;;;;;;;;;;;;;:29;;;:40;;;;;;;;;;;7890:4;:25;;;7880:7;:35;7834:4;:10;;:22;7845:10;7834:22;;;;;;;;;;;;;;;:35;;;:82;;;;;;;;;;;7955:4;7926:44;;7935:10;7926:44;;;7962:7;7926:44;;;;;;;;;;;;;;;;;;7987:10;7980:27;;;7999:7;7980:27;;;;;;;;;;;;;;;;;;7604:408;:::o

Swarm Source

bzzr://2ba9600e32fb047360e6fe0d3f141bbb3726432b6c0af150ec432e6047892269

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ 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.