ETH Price: $3,333.33 (-1.30%)

Contract

0xac8827e20Ef8416709EFA60e357A58dD98E06390
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve170253052023-04-11 14:00:23621 days ago1681221623IN
0xac8827e2...D98E06390
0 ETH0.0007592631.36409661
Approve119417802021-02-27 21:29:151394 days ago1614461355IN
0xac8827e2...D98E06390
0 ETH0.0014358999
Approve116958682021-01-21 1:29:461432 days ago1611192586IN
0xac8827e2...D98E06390
0 ETH0.0006236743
Transfer115392422020-12-28 1:01:541456 days ago1609117314IN
0xac8827e2...D98E06390
0 ETH0.002991861
Transfer110981682020-10-21 7:30:561524 days ago1603265456IN
0xac8827e2...D98E06390
0 ETH0.0013618440
Transfer110261262020-10-10 6:39:041535 days ago1602311944IN
0xac8827e2...D98E06390
0 ETH0.0025129751
Approve109974412020-10-05 18:45:541539 days ago1601923554IN
0xac8827e2...D98E06390
0 ETH0.0006816847.00000145
Transfer109831542020-10-03 13:13:171541 days ago1601730797IN
0xac8827e2...D98E06390
0 ETH0.0033681799
Transfer109104642020-09-22 5:36:591553 days ago1600753019IN
0xac8827e2...D98E06390
0 ETH0.0037274976
Transfer108029222020-09-05 18:04:151569 days ago1599329055IN
0xac8827e2...D98E06390
0 ETH0.01429294290
Transfer107656902020-08-31 1:20:071575 days ago1598836807IN
0xac8827e2...D98E06390
0 ETH0.00655344133
Transfer106829162020-08-18 8:34:111588 days ago1597739651IN
0xac8827e2...D98E06390
0 ETH0.01133026230
Approve106800012020-08-17 21:34:541588 days ago1597700094IN
0xac8827e2...D98E06390
0 ETH0.0034181877
Approve106791482020-08-17 18:29:001588 days ago1597688940IN
0xac8827e2...D98E06390
0 ETH0.0044392100
Approve106791092020-08-17 18:20:491588 days ago1597688449IN
0xac8827e2...D98E06390
0 ETH0.00483872109
Approve106787512020-08-17 16:59:271588 days ago1597683567IN
0xac8827e2...D98E06390
0 ETH0.0035957581
Approve106787232020-08-17 16:54:301588 days ago1597683270IN
0xac8827e2...D98E06390
0 ETH0.0043504198
Approve106786282020-08-17 16:33:141588 days ago1597681994IN
0xac8827e2...D98E06390
0 ETH0.00771532173.80000123
Approve106785912020-08-17 16:26:191588 days ago1597681579IN
0xac8827e2...D98E06390
0 ETH0.00701393158
Approve106785832020-08-17 16:24:431588 days ago1597681483IN
0xac8827e2...D98E06390
0 ETH0.00398033158
Approve106785832020-08-17 16:24:431588 days ago1597681483IN
0xac8827e2...D98E06390
0 ETH0.00701393158
Approve106785782020-08-17 16:23:581588 days ago1597681438IN
0xac8827e2...D98E06390
0 ETH0.00723589163
Approve106785742020-08-17 16:22:531588 days ago1597681373IN
0xac8827e2...D98E06390
0 ETH0.00754664170
Approve106785122020-08-17 16:05:481588 days ago1597680348IN
0xac8827e2...D98E06390
0 ETH0.00750224169
Approve106784472020-08-17 15:53:031588 days ago1597679583IN
0xac8827e2...D98E06390
0 ETH0.00398033158.00000145
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:
BFI_Theta

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-08-17
*/

// Blitz Finance-Theta (BFI-T) Token is 1 of 4 index tokens aims to lay the 
    // foundation for a novel monetary regime that does not act under a monetary 
    // authority or require oversight, yet still is able to sustain macroeconomic 
    // stability.
    
    
    // BFI-T can be considered as the triggering layer of the ecosystem. Price of 
    // BFI-T Token sets the parameters of a chain reaction towards each token. Price 
    // of BFI-T Token determines how BFI-Alpha Token supply will be adjusted dynamically. 
    // A drop in BFI-Theta Token’s price triggers the burn of a fraction of BFI-Alpha 
    // Token supply. In addition, BFI-T Token is inherently deflationary where 1% of 
    // each transaction is burned and deducted from the supply. 

        pragma solidity ^0.5.13;
        
        interface Callable {
        	function tokenCallback(address _from, uint256 _tokens, bytes calldata _data) external returns (bool);
        }
        
    // Price of BFI-Theta Token has a regulatory role on the supply of BFI-Alpha Token, that is the staking token of 
    // the Blitz Genesis Index, where a price drop in BFI-Theta Token triggers supply reduction in BFI-Alpha Token as a 
    // stability measure in BFI-Alpha Token price in order to protect BFI-Alpha Token Stakers. However the burn function 
    // does not affect the staked supply. BFI-Theta has trading pairs with ETH and all the other tokens in the Blitz Genesis Index.    
        
        contract BFI_Theta {
        
        	uint256 constant private Constant = 2**64;
        	uint256 constant private Total_BFIT = 96500000000000000000;
        	uint256 constant private Burn_Ratio = 1;
        	uint256 constant private Burn_Threshold = 2;     
        	uint256 constant private Freeze_Size = 1e20; 
        	
        	string constant public name = "BFI-Theta";
        	string constant public symbol = "BFI-T";
        	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);
        
    // BFI-Theta Token’s secondary regulatory task is to adjust the supply of BFI-Beta Token that is 
    // the staking reward token of the Blitz Genesis Index. If price of BFI-Theta Token drops, it results 
    // in minting of BFI-Beta Token. Purpose of the connection is to ensure the stability in the staking 
    // reward price, so to assure stakers about the amount of staking reward they will receive despite 
    // drastic market volatility. BFI-Beta has a single trading pair that is with BFI-Theta.   
    
        	constructor() public {
        		info.admin = msg.sender;
        		info.totalSupply = Total_BFIT;
        		info.users[msg.sender].balance = Total_BFIT;
        		emit Transfer(address(0x0), msg.sender, Total_BFIT);
        		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_BFIT * 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"}]

608060405234801561001057600080fd5b5033600060040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555068053b34deb899320000600080018190555068053b34deb899320000600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef68053b34deb8993200006040518082815260200191505060405180910390a361013a33600161013f60201b60201c565b61024f565b600060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461019c57600080fd5b80600060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f5a25e09a5dba33161281055e015f1279b6b10204d8f90dd56a8ce2b82322d43d82604051808215151515815260200191505060405180910390a25050565b611c768061025e6000396000f3fe608060405234801561001057600080fd5b50600436106101415760003560e01c806342966c68116100b857806395d89b411161007c57806395d89b4114610700578063a9059cbb14610783578063d7a78db8146107e9578063dd62ed3e14610817578063e52253811461088f578063f59c3708146108ad57610141565b806342966c68146105aa57806357f6b812146105d85780636623fc461461064c57806370a082311461067a57806391c05b0b146106d257610141565b80631bf6e00d1161010a5780631bf6e00d146103735780631e7f87bc146103cb57806323b872dd146103e9578063313ce5671461046f5780633af32abf146104935780634000aea0146104ef57610141565b806265318b1461014657806306fdde031461019e578063095ea7b314610221578063153a1f3e1461028757806318160ddd14610355575b600080fd5b6101886004803603602081101561015c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108fd565b6040518082815260200191505060405180910390f35b6101a66109ac565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101e65780820151818401526020810190506101cb565b50505050905090810190601f1680156102135780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61026d6004803603604081101561023757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109e5565b604051808215151515815260200191505060405180910390f35b6103536004803603604081101561029d57600080fd5b81019080803590602001906401000000008111156102ba57600080fd5b8201836020820111156102cc57600080fd5b803590602001918460208302840111640100000000831117156102ee57600080fd5b90919293919293908035906020019064010000000081111561030f57600080fd5b82018360208201111561032157600080fd5b8035906020019184602083028401116401000000008311171561034357600080fd5b9091929391929390505050610add565b005b61035d610b5a565b6040518082815260200191505060405180910390f35b6103b56004803603602081101561038957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b66565b6040518082815260200191505060405180910390f35b6103d3610bb4565b6040518082815260200191505060405180910390f35b610455600480360360608110156103ff57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bc0565b604051808215151515815260200191505060405180910390f35b610477610cf8565b604051808260ff1660ff16815260200191505060405180910390f35b6104d5600480360360208110156104a957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cfd565b604051808215151515815260200191505060405180910390f35b6105906004803603606081101561050557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561054c57600080fd5b82018360208201111561055e57600080fd5b8035906020019184600183028401116401000000008311171561058057600080fd5b9091929391929390505050610d58565b604051808215151515815260200191505060405180910390f35b6105d6600480360360208110156105c057600080fd5b8101908080359060200190929190505050610e8b565b005b61061a600480360360208110156105ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611057565b604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390f35b6106786004803603602081101561066257600080fd5b810190808035906020019092919050505061109d565b005b6106bc6004803603602081101561069057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110a9565b6040518082815260200191505060405180910390f35b6106fe600480360360208110156106e857600080fd5b8101908080359060200190929190505050611102565b005b61070861120f565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561074857808201518184015260208101905061072d565b50505050905090810190601f1680156107755780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107cf6004803603604081101561079957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611248565b604051808215151515815260200191505060405180910390f35b610815600480360360208110156107ff57600080fd5b8101908080359060200190929190505050611260565b005b6108796004803603604081101561082d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061126c565b6040518082815260200191505060405180910390f35b6108976112f8565b6040518082815260200191505060405180910390f35b6108fb600480360360408110156108c357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080351515906020019092919050505061147f565b005b600068010000000000000000600060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154600060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546000600301540203816109a457fe5b049050919050565b6040518060400160405280600981526020017f4246492d5468657461000000000000000000000000000000000000000000000081525081565b600081600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b818190508484905014610aef57600080fd5b60008090505b84849050811015610b5357610b4533868684818110610b1057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16858585818110610b3957fe5b9050602002013561158f565b508080600101915050610af5565b5050505050565b60008060000154905090565b60008060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050919050565b60008060010154905090565b600081600060020160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610c5157600080fd5b81600060020160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550610cec84848461158f565b50600190509392505050565b600c81565b60008060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff169050919050565b600080610d6633878761158f565b90506000863b905060008163ffffffff161115610e7d578673ffffffffffffffffffffffffffffffffffffffff16636be32e73338488886040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050602060405180830381600087803b158015610e3857600080fd5b505af1158015610e4c573d6000803e3d6000fd5b505050506040513d6020811015610e6257600080fd5b8101908080519060200190929190505050610e7c57600080fd5b5b600192505050949350505050565b80610e95336110a9565b1015610ea057600080fd5b80600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825403925050819055506000819050600080600101541115610fa45760028181610f0f57fe5b04905060006001015468010000000000000000820281610f2b57fe5b046000600301600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b806000800160008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a37fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb816040518082815260200191505060405180910390a15050565b6000806000806000611067610b5a565b61106f610bb4565b611078886110a9565b61108189610b66565b61108a8a6108fd565b9450945094509450945091939590929450565b6110a681611877565b50565b60006110b482610b66565b600060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154039050919050565b600080600101541161111357600080fd5b8061111d336110a9565b101561112857600080fd5b80600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825403925050819055506000600101546801000000000000000082028161119457fe5b046000600301600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350565b6040518060400160405280600581526020017f4246492d5400000000000000000000000000000000000000000000000000000081525081565b600061125533848461158f565b506001905092915050565b61126981611a96565b50565b60008060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080611304336108fd565b9050600081101561131457600080fd5b680100000000000000008102600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004016000828254019250508190555080600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167f4256a058fa2b123d727576d3d31e3a272db98ee5fe264e229610ce43dc849999826040518082815260200191505060405180910390a28091505090565b600060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114dc57600080fd5b80600060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f5a25e09a5dba33161281055e015f1279b6b10204d8f90dd56a8ce2b82322d43d82604051808215151515815260200191505060405180910390a25050565b60008161159b856110a9565b10156115a657600080fd5b81600060020160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254039250508190555060006064600184028161160857fe5b0490506064600268053b34deb899320000028161162157fe5b048161162b610b5a565b03108061163d575061163c85610cfd565b5b1561164757600090505b6000818403905080600060020160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825401925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3600082111561186b576000806001015411156117bb576002828161172657fe5b0491506000600101546801000000000000000083028161174257fe5b046000600301600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35b816000800160008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a37fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb826040518082815260200191505060405180910390a15b80925050509392505050565b8061188133610b66565b101561188c57600080fd5b60006064600183028161189b57fe5b049050600060010154680100000000000000008202816118b757fe5b046000600301600082825401925050819055508160006001016000828254039250508190555080600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254039250508190555081600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201600082825403925050819055506000600301548202600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8385036040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167f2cfce4af01bcb9d6cf6c84ee1b7c491100b8695368264146a94d71e10a63083f836040518082815260200191505060405180910390a25050565b80611aa0336110a9565b1015611aab57600080fd5b68056bc75e2d6310000081611abf33610b66565b011015611acb57600080fd5b8060006001016000828254019250508190555080600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201600082825401925050819055506000600301548102600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167ff97a274face0b5517365ad396b1fdba6f68bd3135ef603e44272adba3af5a1e0826040518082815260200191505060405180910390a25056fea265627a7a72315820800f0aa2da492613900242da81fc4128cd34a6fd9a2f76c02d4ac62045af3f0464736f6c634300050d0032

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101415760003560e01c806342966c68116100b857806395d89b411161007c57806395d89b4114610700578063a9059cbb14610783578063d7a78db8146107e9578063dd62ed3e14610817578063e52253811461088f578063f59c3708146108ad57610141565b806342966c68146105aa57806357f6b812146105d85780636623fc461461064c57806370a082311461067a57806391c05b0b146106d257610141565b80631bf6e00d1161010a5780631bf6e00d146103735780631e7f87bc146103cb57806323b872dd146103e9578063313ce5671461046f5780633af32abf146104935780634000aea0146104ef57610141565b806265318b1461014657806306fdde031461019e578063095ea7b314610221578063153a1f3e1461028757806318160ddd14610355575b600080fd5b6101886004803603602081101561015c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108fd565b6040518082815260200191505060405180910390f35b6101a66109ac565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101e65780820151818401526020810190506101cb565b50505050905090810190601f1680156102135780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61026d6004803603604081101561023757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109e5565b604051808215151515815260200191505060405180910390f35b6103536004803603604081101561029d57600080fd5b81019080803590602001906401000000008111156102ba57600080fd5b8201836020820111156102cc57600080fd5b803590602001918460208302840111640100000000831117156102ee57600080fd5b90919293919293908035906020019064010000000081111561030f57600080fd5b82018360208201111561032157600080fd5b8035906020019184602083028401116401000000008311171561034357600080fd5b9091929391929390505050610add565b005b61035d610b5a565b6040518082815260200191505060405180910390f35b6103b56004803603602081101561038957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b66565b6040518082815260200191505060405180910390f35b6103d3610bb4565b6040518082815260200191505060405180910390f35b610455600480360360608110156103ff57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bc0565b604051808215151515815260200191505060405180910390f35b610477610cf8565b604051808260ff1660ff16815260200191505060405180910390f35b6104d5600480360360208110156104a957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cfd565b604051808215151515815260200191505060405180910390f35b6105906004803603606081101561050557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561054c57600080fd5b82018360208201111561055e57600080fd5b8035906020019184600183028401116401000000008311171561058057600080fd5b9091929391929390505050610d58565b604051808215151515815260200191505060405180910390f35b6105d6600480360360208110156105c057600080fd5b8101908080359060200190929190505050610e8b565b005b61061a600480360360208110156105ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611057565b604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390f35b6106786004803603602081101561066257600080fd5b810190808035906020019092919050505061109d565b005b6106bc6004803603602081101561069057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110a9565b6040518082815260200191505060405180910390f35b6106fe600480360360208110156106e857600080fd5b8101908080359060200190929190505050611102565b005b61070861120f565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561074857808201518184015260208101905061072d565b50505050905090810190601f1680156107755780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107cf6004803603604081101561079957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611248565b604051808215151515815260200191505060405180910390f35b610815600480360360208110156107ff57600080fd5b8101908080359060200190929190505050611260565b005b6108796004803603604081101561082d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061126c565b6040518082815260200191505060405180910390f35b6108976112f8565b6040518082815260200191505060405180910390f35b6108fb600480360360408110156108c357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080351515906020019092919050505061147f565b005b600068010000000000000000600060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154600060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546000600301540203816109a457fe5b049050919050565b6040518060400160405280600981526020017f4246492d5468657461000000000000000000000000000000000000000000000081525081565b600081600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b818190508484905014610aef57600080fd5b60008090505b84849050811015610b5357610b4533868684818110610b1057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16858585818110610b3957fe5b9050602002013561158f565b508080600101915050610af5565b5050505050565b60008060000154905090565b60008060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050919050565b60008060010154905090565b600081600060020160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610c5157600080fd5b81600060020160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550610cec84848461158f565b50600190509392505050565b600c81565b60008060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff169050919050565b600080610d6633878761158f565b90506000863b905060008163ffffffff161115610e7d578673ffffffffffffffffffffffffffffffffffffffff16636be32e73338488886040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050602060405180830381600087803b158015610e3857600080fd5b505af1158015610e4c573d6000803e3d6000fd5b505050506040513d6020811015610e6257600080fd5b8101908080519060200190929190505050610e7c57600080fd5b5b600192505050949350505050565b80610e95336110a9565b1015610ea057600080fd5b80600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825403925050819055506000819050600080600101541115610fa45760028181610f0f57fe5b04905060006001015468010000000000000000820281610f2b57fe5b046000600301600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b806000800160008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a37fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb816040518082815260200191505060405180910390a15050565b6000806000806000611067610b5a565b61106f610bb4565b611078886110a9565b61108189610b66565b61108a8a6108fd565b9450945094509450945091939590929450565b6110a681611877565b50565b60006110b482610b66565b600060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154039050919050565b600080600101541161111357600080fd5b8061111d336110a9565b101561112857600080fd5b80600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825403925050819055506000600101546801000000000000000082028161119457fe5b046000600301600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350565b6040518060400160405280600581526020017f4246492d5400000000000000000000000000000000000000000000000000000081525081565b600061125533848461158f565b506001905092915050565b61126981611a96565b50565b60008060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080611304336108fd565b9050600081101561131457600080fd5b680100000000000000008102600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004016000828254019250508190555080600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167f4256a058fa2b123d727576d3d31e3a272db98ee5fe264e229610ce43dc849999826040518082815260200191505060405180910390a28091505090565b600060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114dc57600080fd5b80600060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f5a25e09a5dba33161281055e015f1279b6b10204d8f90dd56a8ce2b82322d43d82604051808215151515815260200191505060405180910390a25050565b60008161159b856110a9565b10156115a657600080fd5b81600060020160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254039250508190555060006064600184028161160857fe5b0490506064600268053b34deb899320000028161162157fe5b048161162b610b5a565b03108061163d575061163c85610cfd565b5b1561164757600090505b6000818403905080600060020160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825401925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3600082111561186b576000806001015411156117bb576002828161172657fe5b0491506000600101546801000000000000000083028161174257fe5b046000600301600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35b816000800160008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a37fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb826040518082815260200191505060405180910390a15b80925050509392505050565b8061188133610b66565b101561188c57600080fd5b60006064600183028161189b57fe5b049050600060010154680100000000000000008202816118b757fe5b046000600301600082825401925050819055508160006001016000828254039250508190555080600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254039250508190555081600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201600082825403925050819055506000600301548202600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8385036040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167f2cfce4af01bcb9d6cf6c84ee1b7c491100b8695368264146a94d71e10a63083f836040518082815260200191505060405180910390a25050565b80611aa0336110a9565b1015611aab57600080fd5b68056bc75e2d6310000081611abf33610b66565b011015611acb57600080fd5b8060006001016000828254019250508190555080600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201600082825401925050819055506000600301548102600060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167ff97a274face0b5517365ad396b1fdba6f68bd3135ef603e44272adba3af5a1e0826040518082815260200191505060405180910390a25056fea265627a7a72315820800f0aa2da492613900242da81fc4128cd34a6fd9a2f76c02d4ac62045af3f0464736f6c634300050d0032

Deployed Bytecode Sourcemap

1510:9329:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1510:9329:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7758:212;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7758:212:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1852:41;;;:::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;1852:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5615:235;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5615:235:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6650:299;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6650:299:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;6650:299:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6650:299: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;6650:299:0;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;6650:299:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6650:299: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;6650:299:0;;;;;;;;;;;;:::i;:::-;;7210:102;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7617:120;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7617:120:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7333:102;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5871:306;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5871:306:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1956:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8164:127;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8164:127:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6198:431;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6198:431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;6198:431:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6198:431: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;6198:431:0;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4451:594;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4451:594:0;;;;;;;;;;;;;;;;;:::i;:::-;;8312:291;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8312:291:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3886:88;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3886:88:0;;;;;;;;;;;;;;;;;:::i;:::-;;7456:140;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7456:140:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5066:350;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5066:350:0;;;;;;;;;;;;;;;;;:::i;:::-;;1905:39;;;:::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;1905:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5437:157;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5437:157:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3781:84;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3781:84:0;;;;;;;;;;;;;;;;;:::i;:::-;;7991:152;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7991:152:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3995:435;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6970:209;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6970:209:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7758:212;7815:7;1587:5;7915:4;:10;;:17;7926:5;7915:17;;;;;;;;;;;;;;;:30;;;7887:4;:10;;:17;7898:5;7887:17;;;;;;;;;;;;;;;:24;;;7859:4;:25;;;:52;7852:93;7844:113;;;;;;7837:120;;7758:212;;;:::o;1852:41::-;;;;;;;;;;;;;;;;;;;:::o;5615:235::-;5685:4;5749:7;5704:4;:10;;:22;5715:10;5704:22;;;;;;;;;;;;;;;:32;;:42;5737:8;5704:42;;;;;;;;;;;;;;;:52;;;;5795:8;5774:39;;5783:10;5774:39;;;5805:7;5774:39;;;;;;;;;;;;;;;;;;5833:4;5826:11;;5615:235;;;;:::o;6650:299::-;6783:8;;:15;;6762:10;;:17;;:36;6754:45;;;;;;6817:9;6829:1;6817:13;;6812:125;6836:10;;:17;;6832:1;:21;6812:125;;;6874:49;6884:10;6896;;6907:1;6896:13;;;;;;;;;;;;;;;6911:8;;6920:1;6911:11;;;;;;;;;;;;;6874:9;:49::i;:::-;;6855:3;;;;;;;6812:125;;;;6650:299;;;;:::o;7210:102::-;7254:7;7283:4;:16;;;7276:23;;7210:102;:::o;7617:120::-;7671:7;7700:4;:10;;:17;7711:5;7700:17;;;;;;;;;;;;;;;:24;;;7693:31;;7617:120;;;:::o;7333:102::-;7377:7;7406:4;:16;;;7399:23;;7333:102;:::o;5871:306::-;5956:4;6026:7;5983:4;:10;;:17;5994:5;5983:17;;;;;;;;;;;;;;;:27;;:39;6011:10;5983:39;;;;;;;;;;;;;;;;:50;;5975:59;;;;;;6090:7;6047:4;:10;;:17;6058:5;6047:17;;;;;;;;;;;;;;;:27;;:39;6075:10;6047:39;;;;;;;;;;;;;;;;:50;;;;;;;;;;;6110:30;6120:5;6127:3;6132:7;6110:9;:30::i;:::-;;6160:4;6153:11;;5871:306;;;;;:::o;1956:35::-;1989:2;1956:35;:::o;8164:127::-;8223:4;8249;:10;;:17;8260:5;8249:17;;;;;;;;;;;;;;;:29;;;;;;;;;;;;8242:36;;8164:127;;;:::o;6198:431::-;6293:4;6312:20;6335:35;6345:10;6357:3;6362:7;6335:9;:35::i;:::-;6312:58;;6383:12;6452:3;6440:16;6431:25;;6493:1;6485:5;:9;;;6481:112;;;6527:3;6518:27;;;6546:10;6558:12;6572:5;;6518: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;;6518:60:0;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6518:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6518:60:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6518:60:0;;;;;;;;;;;;;;;;6510:69;;;;;;6481:112;6612:4;6605:11;;;;6198:431;;;;;;:::o;4451:594::-;4537:7;4512:21;4522:10;4512:9;:21::i;:::-;:32;;4504:41;;;;;;4592:7;4558:4;:10;;:22;4569:10;4558:22;;;;;;;;;;;;;;;:30;;;:41;;;;;;;;;;;4612:21;4636:7;4612:31;;4679:1;4660:4;:16;;;:20;4656:227;;;4713:1;4696:18;;;;;;;;;4784:4;:16;;;1587:5;4757:13;:24;:43;;;;;;4728:4;:25;;;:72;;;;;;;;;;;4848:4;4819:50;;4828:10;4819:50;;;4855:13;4819:50;;;;;;;;;;;;;;;;;;4656:227;4915:13;4895:4;:16;;;:33;;;;;;;;;;;4975:3;4946:49;;4955:10;4946:49;;;4981:13;4946:49;;;;;;;;;;;;;;;;;;5013:19;5018:13;5013:19;;;;;;;;;;;;;;;;;;4451:594;;:::o;8312:291::-;8368:24;8394:25;8421:19;8442:18;8462:21;8506:13;:11;:13::i;:::-;8521;:11;:13::i;:::-;8536:16;8546:5;8536:9;:16::i;:::-;8554:15;8563:5;8554:8;:15::i;:::-;8571:18;8583:5;8571:11;:18::i;:::-;8498:92;;;;;;;;;;8312:291;;;;;;;:::o;3886:88::-;3943:18;3953:7;3943:9;:18::i;:::-;3886:88;:::o;7456:140::-;7511:7;7568:15;7577:5;7568:8;:15::i;:::-;7540:4;:10;;:17;7551:5;7540:17;;;;;;;;;;;;;;;:25;;;:43;7533:50;;7456:140;;;:::o;5066:350::-;5152:1;5133:4;:16;;;:20;5125:29;;;;;;5200:7;5175:21;5185:10;5175:9;:21::i;:::-;:32;;5167:41;;;;;;5255:7;5221:4;:10;;:22;5232:10;5221:22;;;;;;;;;;;;;;;:30;;;:41;;;;;;;;;;;5325:4;:16;;;1587:5;5304:7;:18;:37;;;;;;5275:4;:25;;;:66;;;;;;;;;;;5388:4;5359:44;;5368:10;5359:44;;;5395:7;5359:44;;;;;;;;;;;;;;;;;;5066:350;:::o;1905:39::-;;;;;;;;;;;;;;;;;;;:::o;5437:157::-;5503:4;5522:35;5532:10;5544:3;5549:7;5522:9;:35::i;:::-;;5577:4;5570:11;;5437:157;;;;:::o;3781:84::-;3836:16;3844:7;3836;:16::i;:::-;3781:84;:::o;7991:152::-;8064:7;8093:4;:10;;:17;8104:5;8093:17;;;;;;;;;;;;;;;:27;;:37;8121:8;8093:37;;;;;;;;;;;;;;;;8086:44;;7991:152;;;;:::o;3995:435::-;4032:7;4054:18;4075:23;4087:10;4075:11;:23::i;:::-;4054:44;;4133:1;4119:10;:15;;4111:24;;;;;;1587:5;4194:10;:21;4148:4;:10;;:22;4159:10;4148:22;;;;;;;;;;;;;;;:35;;;:68;;;;;;;;;;;4263:10;4229:4;:10;;:22;4240:10;4229:22;;;;;;;;;;;;;;;:30;;;:44;;;;;;;;;;;4315:10;4291:47;;4308:4;4291:47;;;4327:10;4291:47;;;;;;;;;;;;;;;;;;4364:10;4356:31;;;4376:10;4356:31;;;;;;;;;;;;;;;;;;4407:10;4400:17;;;3995:435;:::o;6970:209::-;7060:4;:10;;;;;;;;;;;;7046:24;;:10;:24;;;7038:33;;;;;;7116:7;7084:4;:10;;:17;7095:5;7084:17;;;;;;;;;;;;;;;:29;;;:39;;;;;;;;;;;;;;;;;;7151:5;7141:25;;;7158:7;7141:25;;;;;;;;;;;;;;;;;;;;;;6970:209;;:::o;8634:1048::-;8716:7;8766;8746:16;8756:5;8746:9;:16::i;:::-;:27;;8738:36;;;;;;8816:7;8787:4;:10;;:17;8798:5;8787:17;;;;;;;;;;;;;;;:25;;;:36;;;;;;;;;;;8836:21;8883:3;1712:1;8860:7;:20;:26;;;;;;8836:50;;8965:3;1767:1;1642:20;8935:27;:33;;;;;;8919:13;8903;:11;:13::i;:::-;:29;:65;:89;;;;8972:20;8986:5;8972:13;:20::i;:::-;8903:89;8899:140;;;9024:1;9008:17;;8899:140;9051:20;9084:13;9074:7;:23;9051:46;;9137:12;9110:4;:10;;:15;9121:3;9110:15;;;;;;;;;;;;;;;:23;;;:39;;;;;;;;;;;9183:3;9167:34;;9176:5;9167:34;;;9188:12;9167:34;;;;;;;;;;;;;;;;;;9234:1;9218:13;:17;9214:424;;;9274:1;9255:4;:16;;;:20;9251:226;;;9309:1;9292:18;;;;;;;;;9381:4;:16;;;1587:5;9354:13;:24;:43;;;;;;9325:4;:25;;;:72;;;;;;;;;;;9441:4;9417:45;;9426:5;9417:45;;;9448:13;9417:45;;;;;;;;;;;;;;;;;;9251:226;9510:13;9490:4;:16;;;:33;;;;;;;;;;;9566:3;9542:44;;9551:5;9542:44;;;9572:13;9542:44;;;;;;;;;;;;;;;;;;9605:19;9610:13;9605:19;;;;;;;;;;;;;;;;;;9214:424;9657:12;9650:19;;;;8634:1048;;;;;:::o;10196:632::-;10286:7;10262:20;10271:10;10262:8;:20::i;:::-;:31;;10254:40;;;;;;10307:21;10354:3;1712:1;10331:7;:20;:26;;;;;;10307:50;;10426:4;:16;;;1587:5;10399:13;:24;:43;;;;;;10370:4;:25;;;:72;;;;;;;;;;;10475:7;10455:4;:16;;;:27;;;;;;;;;;;10529:13;10495:4;:10;;:22;10506:10;10495:22;;;;;;;;;;;;;;;:30;;;:47;;;;;;;;;;;10588:7;10555:4;:10;;:22;10566:10;10555:22;;;;;;;;;;;;;;;:29;;;:40;;;;;;;;;;;10664:4;:25;;;10654:7;:35;10608:4;:10;;:22;10619:10;10608:22;;;;;;;;;;;;;;;:35;;;:82;;;;;;;;;;;10732:10;10708:60;;10725:4;10708:60;;;10754:13;10744:7;:23;10708:60;;;;;;;;;;;;;;;;;;10795:10;10786:29;;;10807:7;10786:29;;;;;;;;;;;;;;;;;;10196:632;;:::o;9703:472::-;9792:7;9767:21;9777:10;9767:9;:21::i;:::-;:32;;9759:41;;;;;;1824:4;9844:7;9821:20;9830:10;9821:8;:20::i;:::-;:30;:45;;9813:54;;;;;;9900:7;9880:4;:16;;;:27;;;;;;;;;;;9953:7;9920:4;:10;;:22;9931:10;9920:22;;;;;;;;;;;;;;;:29;;;:40;;;;;;;;;;;10029:4;:25;;;10019:7;:35;9973:4;:10;;:22;9984:10;9973:22;;;;;;;;;;;;;;;:35;;;:82;;;;;;;;;;;10102:4;10073:44;;10082:10;10073:44;;;10109:7;10073:44;;;;;;;;;;;;;;;;;;10142:10;10135:27;;;10154:7;10135:27;;;;;;;;;;;;;;;;;;9703:472;:::o

Swarm Source

bzzr://800f0aa2da492613900242da81fc4128cd34a6fd9a2f76c02d4ac62045af3f04

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.