ETH Price: $3,014.30 (+4.63%)
Gas: 2 Gwei

Token

Krill Compounder (cKRILL)
 

Overview

Max Total Supply

23,429,320.35180979882826787 cKRILL

Holders

560

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
wmmi.eth
Balance
2,946.268154383691117681 cKRILL

Value
$0.00
0xb2e714bf6b0cdde7f27316132fb612315f3faf91
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
cKRILL

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2021-11-30
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.10;

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

interface KRILL {
	function balanceOf(address) external view returns (uint256);
	function transfer(address, uint256) external returns (bool);
	function transferFrom(address, address, uint256) external returns (bool);
}

contract cKRILL {

	uint256 constant private FLOAT_SCALAR = 2**64;
	uint256 constant private BUY_TAX = 10;
	uint256 constant private SELL_TAX = 10;
	uint256 constant private STARTING_PRICE = 1e18;
	uint256 constant private INCREMENT = 1e13;

	string constant public name = "Krill Compounder";
	string constant public symbol = "cKRILL";
	uint8 constant public decimals = 18;

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

	struct Info {
		uint256 totalSupply;
		mapping(address => User) users;
		uint256 scaledKrillPerToken;
		uint256 openingTime;
		KRILL krill;
	}
	Info private info;


	event Transfer(address indexed from, address indexed to, uint256 tokens);
	event Approval(address indexed owner, address indexed spender, uint256 tokens);
	event Buy(address indexed buyer, uint256 amountSpent, uint256 tokensReceived);
	event Sell(address indexed seller, uint256 tokensSpent, uint256 amountReceived);
	event Withdraw(address indexed user, uint256 amount);
	event Reinvest(address indexed user, uint256 amount);


	constructor(KRILL _krill, uint256 _openingTime) {
		info.krill = _krill;
		info.openingTime = _openingTime;
	}

	function disburse(uint256 _amount) external {
		require(_amount > 0);
		uint256 _balanceBefore = info.krill.balanceOf(address(this));
		info.krill.transferFrom(msg.sender, address(this), _amount);
		uint256 _amountReceived = info.krill.balanceOf(address(this)) - _balanceBefore;
		info.scaledKrillPerToken += _amountReceived * FLOAT_SCALAR / info.totalSupply;
	}

	function buy(uint256 _amount) external returns (uint256) {
		return buyFor(_amount, msg.sender);
	}

	function buyFor(uint256 _amount, address _user) public returns (uint256) {
		require(_amount > 0);
		uint256 _balanceBefore = info.krill.balanceOf(address(this));
		info.krill.transferFrom(msg.sender, address(this), _amount);
		uint256 _amountReceived = info.krill.balanceOf(address(this)) - _balanceBefore;
		return _buy(_amountReceived, _user);
	}

	function tokenCallback(address _from, uint256 _tokens, bytes calldata) external returns (bool) {
		require(msg.sender == address(info.krill));
		require(_tokens > 0);
		_buy(_tokens, _from);
		return true;
	}

	function sell(uint256 _tokens) external returns (uint256) {
		require(balanceOf(msg.sender) >= _tokens);
		return _sell(_tokens);
	}

	function withdraw() external returns (uint256) {
		uint256 _dividends = dividendsOf(msg.sender);
		require(_dividends > 0);
		info.users[msg.sender].scaledPayout += int256(_dividends * FLOAT_SCALAR);
		info.krill.transfer(msg.sender, _dividends);
		emit Withdraw(msg.sender, _dividends);
		return _dividends;
	}

	function reinvest() external returns (uint256) {
		uint256 _dividends = dividendsOf(msg.sender);
		require(_dividends > 0);
		info.users[msg.sender].scaledPayout += int256(_dividends * FLOAT_SCALAR);
		emit Reinvest(msg.sender, _dividends);
		return _buy(_dividends, msg.sender);
	}

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

	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;
		return _transfer(_from, _to, _tokens);
	}

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


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

	function currentPrices() public view returns (uint256 truePrice, uint256 buyPrice, uint256 sellPrice) {
		truePrice = STARTING_PRICE + INCREMENT * totalSupply() / 1e18;
		buyPrice = truePrice * 100 / (100 - BUY_TAX);
		sellPrice = truePrice * (100 - SELL_TAX) / 100;
	}

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

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

	function allInfoFor(address _user) external view returns (uint256 contractBalance, uint256 totalTokenSupply, uint256 truePrice, uint256 buyPrice, uint256 sellPrice, uint256 openingTime, uint256 userETH, uint256 userKRILL, uint256 userBalance, uint256 userDividends, uint256 userLiquidValue) {
		contractBalance = info.krill.balanceOf(address(this));
		totalTokenSupply = totalSupply();
		(truePrice, buyPrice, sellPrice) = currentPrices();
		openingTime = info.openingTime;
		userETH = _user.balance;
		userKRILL = info.krill.balanceOf(_user);
		userBalance = balanceOf(_user);
		userDividends = dividendsOf(_user);
		userLiquidValue = calculateResult(userBalance, false, false) + userDividends;
	}

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

	function calculateResult(uint256 _amount, bool _isBuy, bool _inverse) public view returns (uint256) {
		uint256 _buyPrice;
		uint256 _sellPrice;
		( , _buyPrice, _sellPrice) = currentPrices();
		uint256 _rate = (_isBuy ? _buyPrice : _sellPrice);
		uint256 _increment = INCREMENT * (_isBuy ? 100 : (100 - SELL_TAX)) / (_isBuy ? (100 - BUY_TAX) : 100);
		if ((_isBuy && !_inverse) || (!_isBuy && _inverse)) {
			if (_inverse) {
				return (2 * _rate - _sqrt(4 * _rate * _rate + _increment * _increment - 4 * _rate * _increment - 8 * _amount * _increment) - _increment) * 1e18 / (2 * _increment);
			} else {
				return (_sqrt((_increment + 2 * _rate) * (_increment + 2 * _rate) + 8 * _amount * _increment) - _increment - 2 * _rate) * 1e18 / (2 * _increment);
			}
		} else {
			if (_inverse) {
				return (_rate * _amount + (_increment * (_amount + 1e18) / 2e18) * _amount) / 1e18;
			} else {
				return (_rate * _amount - (_increment * (_amount + 1e18) / 2e18) * _amount) / 1e18;
			}
		}
	}


	function _transfer(address _from, address _to, uint256 _tokens) internal returns (bool) {
		require(info.users[_from].balance >= _tokens);
		info.users[_from].balance -= _tokens;
		info.users[_from].scaledPayout -= int256(_tokens * info.scaledKrillPerToken);
		info.users[_to].balance += _tokens;
		info.users[_to].scaledPayout += int256(_tokens * info.scaledKrillPerToken);
		emit Transfer(_from, _to, _tokens);
		return true;
	}

	function _buy(uint256 _amount, address _user) internal returns (uint256 tokens) {
		require(block.timestamp >= info.openingTime);
		uint256 _tax = _amount * BUY_TAX / 100;
		tokens = calculateResult(_amount, true, false);
		info.totalSupply += tokens;
		info.users[_user].balance += tokens;
		info.users[_user].scaledPayout += int256(tokens * info.scaledKrillPerToken);
		info.scaledKrillPerToken += _tax * FLOAT_SCALAR / info.totalSupply;
		emit Transfer(address(0x0), _user, tokens);
		emit Buy(_user, _amount, tokens);
	}

	function _sell(uint256 _tokens) internal returns (uint256 amount) {
		require(info.users[msg.sender].balance >= _tokens);
		amount = calculateResult(_tokens, false, false);
		uint256 _tax = amount * SELL_TAX / (100 - SELL_TAX);
		info.totalSupply -= _tokens;
		info.users[msg.sender].balance -= _tokens;
		info.users[msg.sender].scaledPayout -= int256(_tokens * info.scaledKrillPerToken);
		info.scaledKrillPerToken += _tax * FLOAT_SCALAR / info.totalSupply;
		info.krill.transfer(msg.sender, amount);
		emit Transfer(msg.sender, address(0x0), _tokens);
		emit Sell(msg.sender, _tokens, amount);
	}

	function _sqrt(uint256 _n) internal pure returns (uint256 result) {
		uint256 _tmp = (_n + 1) / 2;
		result = _n;
		while (_tmp < result) {
			result = _tmp;
			_tmp = (_n / _tmp + _tmp) / 2;
		}
	}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"contract KRILL","name":"_krill","type":"address"},{"internalType":"uint256","name":"_openingTime","type":"uint256"}],"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":true,"internalType":"address","name":"buyer","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountSpent","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensReceived","type":"uint256"}],"name":"Buy","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Reinvest","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"seller","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokensSpent","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountReceived","type":"uint256"}],"name":"Sell","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":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"allInfoFor","outputs":[{"internalType":"uint256","name":"contractBalance","type":"uint256"},{"internalType":"uint256","name":"totalTokenSupply","type":"uint256"},{"internalType":"uint256","name":"truePrice","type":"uint256"},{"internalType":"uint256","name":"buyPrice","type":"uint256"},{"internalType":"uint256","name":"sellPrice","type":"uint256"},{"internalType":"uint256","name":"openingTime","type":"uint256"},{"internalType":"uint256","name":"userETH","type":"uint256"},{"internalType":"uint256","name":"userKRILL","type":"uint256"},{"internalType":"uint256","name":"userBalance","type":"uint256"},{"internalType":"uint256","name":"userDividends","type":"uint256"},{"internalType":"uint256","name":"userLiquidValue","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"buy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_user","type":"address"}],"name":"buyFor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bool","name":"_isBuy","type":"bool"},{"internalType":"bool","name":"_inverse","type":"bool"}],"name":"calculateResult","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentPrices","outputs":[{"internalType":"uint256","name":"truePrice","type":"uint256"},{"internalType":"uint256","name":"buyPrice","type":"uint256"},{"internalType":"uint256","name":"sellPrice","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"disburse","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"dividendsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reinvest","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"sell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_tokens","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"tokenCallback","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokens","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"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"}],"stateMutability":"nonpayable","type":"function"},{"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"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b5060405161192038038061192083398101604081905261002f91610058565b600480546001600160a01b0319166001600160a01b039390931692909217909155600355610092565b6000806040838503121561006b57600080fd5b82516001600160a01b038116811461008257600080fd5b6020939093015192949293505050565b61187f806100a16000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c806357f6b812116100b8578063a9059cbb1161007c578063a9059cbb14610320578063bd77ac2c14610333578063d96a094a14610348578063dd62ed3e1461035b578063e4849b3214610395578063fdb5a03e146103a857600080fd5b806357f6b812146102465780636be32e73146102ac57806370a08231146102bf57806395d89b41146102e8578063a3a8573a1461030d57600080fd5b8063259bfdd7116100ff578063259bfdd7146101db578063313ce567146101fe5780633472956c146102185780633ccfd60b1461022b5780634000aea01461023357600080fd5b806265318b1461013b57806306fdde0314610161578063095ea7b31461019d57806318160ddd146101c057806323b872dd146101c8575b600080fd5b61014e6101493660046114a6565b6103b0565b6040519081526020015b60405180910390f35b6101906040518060400160405280601081526020016f25b934b6361021b7b6b837bab73232b960811b81525081565b60405161015891906114c1565b6101b06101ab366004611516565b6103fd565b6040519015158152602001610158565b60005461014e565b6101b06101d6366004611540565b610462565b6101e36104e4565b60408051938452602084019290925290820152606001610158565b610206601281565b60405160ff9091168152602001610158565b61014e61022636600461158d565b610574565b61014e6107e5565b6101b06102413660046115cf565b6108e6565b6102596102543660046114a6565b61098c565b604080519b8c5260208c019a909a52988a01979097526060890195909552608088019390935260a087019190915260c086015260e085015261010084015261012083015261014082015261016001610158565b6101b06102ba3660046115cf565b610b32565b61014e6102cd3660046114a6565b6001600160a01b031660009081526001602052604090205490565b6101906040518060400160405280600681526020016518d2d492531360d21b81525081565b61014e61031b366004611656565b610b63565b6101b061032e366004611516565b610cf6565b610346610341366004611682565b610d03565b005b61014e610356366004611682565b610eba565b61014e61036936600461169b565b6001600160a01b0391821660009081526001602081815260408084209490951683529201909152205490565b61014e6103a3366004611682565b610ec6565b61014e610eeb565b6001600160a01b038116600090815260016020526040812060028101549054600160401b91906002546103e391906116db565b6103ed91906116fa565b6103f79190611739565b92915050565b3360008181526001602081815260408084206001600160a01b0388168086529301825280842086905551858152929391927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350600192915050565b6001600160a01b0383166000908152600160208181526040808420338552909201905281205482111561049457600080fd5b6001600160a01b03841660009081526001602081815260408084203385529092019052812080548492906104c990849061175b565b909155506104da9050848484610f80565b90505b9392505050565b6000806000670de0b6b3a76400006104fb60005490565b61050b906509184e72a0006116db565b6105159190611739565b61052790670de0b6b3a7640000611772565b9250610535600a606461175b565b6105408460646116db565b61054a9190611739565b91506064610559600a8261175b565b61056390856116db565b61056d9190611739565b9050909192565b60008060006105816104e4565b909350915060009050856105955781610597565b825b90506000866105a75760646105b3565b6105b3600a606461175b565b876105c9576105c4600a606461175b565b6105cc565b60645b6105dc906509184e72a0006116db565b6105e69190611739565b90508680156105f3575085155b806106045750861580156106045750855b156107415785156106d35761061a8160026116db565b8161068d8161062a8c60086116db565b61063491906116db565b846106408760046116db565b61064a91906116db565b61065486806116db565b876106608160046116db565b61066a91906116db565b6106749190611772565b61067e919061175b565b610688919061175b565b6110d2565b6106988560026116db565b6106a2919061175b565b6106ac919061175b565b6106be90670de0b6b3a76400006116db565b6106c89190611739565b9450505050506104dd565b6106de8160026116db565b6106e98360026116db565b82610698816106f98d60086116db565b61070391906116db565b61070e8760026116db565b6107189087611772565b6107238860026116db565b61072d9088611772565b61073791906116db565b6106889190611772565b851561079657670de0b6b3a764000088671bc16d674ec800006107648284611772565b61076e90856116db565b6107789190611739565b61078291906116db565b61078c8a856116db565b6106be9190611772565b670de0b6b3a764000088671bc16d674ec800006107b38284611772565b6107bd90856116db565b6107c79190611739565b6107d191906116db565b6107db8a856116db565b6106be919061175b565b6000806107f1336103b0565b90506000811161080057600080fd5b61080e600160401b826116db565b336000908152600160205260408120600201805490919061083090849061178a565b90915550506004805460405163a9059cbb60e01b81523392810192909252602482018390526001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015610887573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ab91906117cb565b5060405181815233907f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243649060200160405180910390a2919050565b60006108f3338686610f80565b50843b63ffffffff81161561098057604051636be32e7360e01b81526001600160a01b03871690636be32e73906109349033908990899089906004016117e8565b6020604051808303816000875af1158015610953573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097791906117cb565b61098057600080fd5b50600195945050505050565b600480546040516370a0823160e01b8152309281019290925260009182918291829182918291829182918291829182916001600160a01b03909116906370a0823190602401602060405180830381865afa1580156109ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a129190611830565b9a50610a1d60005490565b9950610a276104e4565b809950819a50829b5050505060006003015495508b6001600160a01b0316319450600060040160009054906101000a90046001600160a01b03166001600160a01b03166370a082318d6040518263ffffffff1660e01b8152600401610a9b91906001600160a01b0391909116815260200190565b602060405180830381865afa158015610ab8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610adc9190611830565b9350610afd8c6001600160a01b031660009081526001602052604090205490565b9250610b088c6103b0565b915081610b1784600080610574565b610b219190611772565b905091939597999b90929496989a50565b6004546000906001600160a01b03163314610b4c57600080fd5b60008411610b5957600080fd5b610980848661112b565b6000808311610b7157600080fd5b600480546040516370a0823160e01b815230928101929092526000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610bbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be39190611830565b600480546040516323b872dd60e01b81523392810192909252306024830152604482018790529192506001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015610c40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6491906117cb565b50600480546040516370a0823160e01b8152309281019290925260009183916001600160a01b0316906370a0823190602401602060405180830381865afa158015610cb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd79190611830565b610ce1919061175b565b9050610ced818561112b565b95945050505050565b60006104dd338484610f80565b60008111610d1057600080fd5b600480546040516370a0823160e01b815230928101929092526000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610d5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d829190611830565b600480546040516323b872dd60e01b81523392810192909252306024830152604482018590529192506001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015610ddf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0391906117cb565b50600480546040516370a0823160e01b8152309281019290925260009183916001600160a01b0316906370a0823190602401602060405180830381865afa158015610e52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e769190611830565b610e80919061175b565b600054909150610e94600160401b836116db565b610e9e9190611739565b60028054600090610eb0908490611772565b9091555050505050565b60006103f78233610b63565b33600090815260016020526040812054821115610ee257600080fd5b6103f7826112a8565b600080610ef7336103b0565b905060008111610f0657600080fd5b610f14600160401b826116db565b3360009081526001602052604081206002018054909190610f3690849061178a565b909155505060405181815233907fbd654390d0d973e8c8376ed6053be8658870df892687852cc5c914d700291b879060200160405180910390a2610f7a813361112b565b91505090565b6001600160a01b038316600090815260016020526040812054821115610fa557600080fd5b6001600160a01b03841660009081526001602052604081208054849290610fcd90849061175b565b9091555050600254610fdf90836116db565b6001600160a01b0385166000908152600160205260408120600201805490919061100a9084906116fa565b90915550506001600160a01b03831660009081526001602052604081208054849290611037908490611772565b909155505060025461104990836116db565b6001600160a01b0384166000908152600160205260408120600201805490919061107490849061178a565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110c091815260200190565b60405180910390a35060019392505050565b60008060026110e2846001611772565b6110ec9190611739565b90508291505b818110156111255790508060028161110a8186611739565b6111149190611772565b61111e9190611739565b90506110f2565b50919050565b60035460009042101561113d57600080fd5b6000606461114c600a866116db565b6111569190611739565b90506111658460016000610574565b91508160008001600082825461117b9190611772565b90915550506001600160a01b038316600090815260016020526040812080548492906111a8908490611772565b90915550506002546111ba90836116db565b6001600160a01b038416600090815260016020526040812060020180549091906111e590849061178a565b90915550506000546111fb600160401b836116db565b6112059190611739565b60028054600090611217908490611772565b90915550506040518281526001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a360408051858152602081018490526001600160a01b038516917f1cbc5ab135991bd2b6a4b034a04aa2aa086dac1371cb9b16b8b5e2ed6b036bed910160405180910390a25092915050565b336000908152600160205260408120548211156112c457600080fd5b6112d082600080610574565b905060006112e0600a606461175b565b6112eb600a846116db565b6112f59190611739565b90508260008001600082825461130b919061175b565b9091555050336000908152600160205260408120805485929061132f90849061175b565b909155505060025461134190846116db565b33600090815260016020526040812060020180549091906113639084906116fa565b9091555050600054611379600160401b836116db565b6113839190611739565b60028054600090611395908490611772565b90915550506004805460405163a9059cbb60e01b81523392810192909252602482018490526001600160a01b03169063a9059cbb906044016020604051808303816000875af11580156113ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141091906117cb565b5060405183815260009033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3604080518481526020810184905233917fed7a144fad14804d5c249145e3e0e2b63a9eb455b76aee5bc92d711e9bba3e4a910160405180910390a250919050565b80356001600160a01b03811681146114a157600080fd5b919050565b6000602082840312156114b857600080fd5b6104dd8261148a565b600060208083528351808285015260005b818110156114ee578581018301518582016040015282016114d2565b81811115611500576000604083870101525b50601f01601f1916929092016040019392505050565b6000806040838503121561152957600080fd5b6115328361148a565b946020939093013593505050565b60008060006060848603121561155557600080fd5b61155e8461148a565b925061156c6020850161148a565b9150604084013590509250925092565b801515811461158a57600080fd5b50565b6000806000606084860312156115a257600080fd5b8335925060208401356115b48161157c565b915060408401356115c48161157c565b809150509250925092565b600080600080606085870312156115e557600080fd5b6115ee8561148a565b935060208501359250604085013567ffffffffffffffff8082111561161257600080fd5b818701915087601f83011261162657600080fd5b81358181111561163557600080fd5b88602082850101111561164757600080fd5b95989497505060200194505050565b6000806040838503121561166957600080fd5b823591506116796020840161148a565b90509250929050565b60006020828403121561169457600080fd5b5035919050565b600080604083850312156116ae57600080fd5b6116b78361148a565b91506116796020840161148a565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156116f5576116f56116c5565b500290565b60008083128015600160ff1b850184121615611718576117186116c5565b6001600160ff1b0384018313811615611733576117336116c5565b50500390565b60008261175657634e487b7160e01b600052601260045260246000fd5b500490565b60008282101561176d5761176d6116c5565b500390565b60008219821115611785576117856116c5565b500190565b600080821280156001600160ff1b03849003851316156117ac576117ac6116c5565b600160ff1b83900384128116156117c5576117c56116c5565b50500190565b6000602082840312156117dd57600080fd5b81516104dd8161157c565b6001600160a01b0385168152602081018490526060604082018190528101829052818360808301376000818301608090810191909152601f909201601f191601019392505050565b60006020828403121561184257600080fd5b505191905056fea2646970667358221220bf7dd50c30b1794352c1c8147d06eb5f27f8fa471cc8be9d0c8ab31227080ea564736f6c634300080a0033000000000000000000000000f59bfeed034092e399cc43ff79edab15e2e187350000000000000000000000000000000000000000000000000000000061a61240

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101365760003560e01c806357f6b812116100b8578063a9059cbb1161007c578063a9059cbb14610320578063bd77ac2c14610333578063d96a094a14610348578063dd62ed3e1461035b578063e4849b3214610395578063fdb5a03e146103a857600080fd5b806357f6b812146102465780636be32e73146102ac57806370a08231146102bf57806395d89b41146102e8578063a3a8573a1461030d57600080fd5b8063259bfdd7116100ff578063259bfdd7146101db578063313ce567146101fe5780633472956c146102185780633ccfd60b1461022b5780634000aea01461023357600080fd5b806265318b1461013b57806306fdde0314610161578063095ea7b31461019d57806318160ddd146101c057806323b872dd146101c8575b600080fd5b61014e6101493660046114a6565b6103b0565b6040519081526020015b60405180910390f35b6101906040518060400160405280601081526020016f25b934b6361021b7b6b837bab73232b960811b81525081565b60405161015891906114c1565b6101b06101ab366004611516565b6103fd565b6040519015158152602001610158565b60005461014e565b6101b06101d6366004611540565b610462565b6101e36104e4565b60408051938452602084019290925290820152606001610158565b610206601281565b60405160ff9091168152602001610158565b61014e61022636600461158d565b610574565b61014e6107e5565b6101b06102413660046115cf565b6108e6565b6102596102543660046114a6565b61098c565b604080519b8c5260208c019a909a52988a01979097526060890195909552608088019390935260a087019190915260c086015260e085015261010084015261012083015261014082015261016001610158565b6101b06102ba3660046115cf565b610b32565b61014e6102cd3660046114a6565b6001600160a01b031660009081526001602052604090205490565b6101906040518060400160405280600681526020016518d2d492531360d21b81525081565b61014e61031b366004611656565b610b63565b6101b061032e366004611516565b610cf6565b610346610341366004611682565b610d03565b005b61014e610356366004611682565b610eba565b61014e61036936600461169b565b6001600160a01b0391821660009081526001602081815260408084209490951683529201909152205490565b61014e6103a3366004611682565b610ec6565b61014e610eeb565b6001600160a01b038116600090815260016020526040812060028101549054600160401b91906002546103e391906116db565b6103ed91906116fa565b6103f79190611739565b92915050565b3360008181526001602081815260408084206001600160a01b0388168086529301825280842086905551858152929391927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350600192915050565b6001600160a01b0383166000908152600160208181526040808420338552909201905281205482111561049457600080fd5b6001600160a01b03841660009081526001602081815260408084203385529092019052812080548492906104c990849061175b565b909155506104da9050848484610f80565b90505b9392505050565b6000806000670de0b6b3a76400006104fb60005490565b61050b906509184e72a0006116db565b6105159190611739565b61052790670de0b6b3a7640000611772565b9250610535600a606461175b565b6105408460646116db565b61054a9190611739565b91506064610559600a8261175b565b61056390856116db565b61056d9190611739565b9050909192565b60008060006105816104e4565b909350915060009050856105955781610597565b825b90506000866105a75760646105b3565b6105b3600a606461175b565b876105c9576105c4600a606461175b565b6105cc565b60645b6105dc906509184e72a0006116db565b6105e69190611739565b90508680156105f3575085155b806106045750861580156106045750855b156107415785156106d35761061a8160026116db565b8161068d8161062a8c60086116db565b61063491906116db565b846106408760046116db565b61064a91906116db565b61065486806116db565b876106608160046116db565b61066a91906116db565b6106749190611772565b61067e919061175b565b610688919061175b565b6110d2565b6106988560026116db565b6106a2919061175b565b6106ac919061175b565b6106be90670de0b6b3a76400006116db565b6106c89190611739565b9450505050506104dd565b6106de8160026116db565b6106e98360026116db565b82610698816106f98d60086116db565b61070391906116db565b61070e8760026116db565b6107189087611772565b6107238860026116db565b61072d9088611772565b61073791906116db565b6106889190611772565b851561079657670de0b6b3a764000088671bc16d674ec800006107648284611772565b61076e90856116db565b6107789190611739565b61078291906116db565b61078c8a856116db565b6106be9190611772565b670de0b6b3a764000088671bc16d674ec800006107b38284611772565b6107bd90856116db565b6107c79190611739565b6107d191906116db565b6107db8a856116db565b6106be919061175b565b6000806107f1336103b0565b90506000811161080057600080fd5b61080e600160401b826116db565b336000908152600160205260408120600201805490919061083090849061178a565b90915550506004805460405163a9059cbb60e01b81523392810192909252602482018390526001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015610887573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ab91906117cb565b5060405181815233907f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243649060200160405180910390a2919050565b60006108f3338686610f80565b50843b63ffffffff81161561098057604051636be32e7360e01b81526001600160a01b03871690636be32e73906109349033908990899089906004016117e8565b6020604051808303816000875af1158015610953573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097791906117cb565b61098057600080fd5b50600195945050505050565b600480546040516370a0823160e01b8152309281019290925260009182918291829182918291829182918291829182916001600160a01b03909116906370a0823190602401602060405180830381865afa1580156109ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a129190611830565b9a50610a1d60005490565b9950610a276104e4565b809950819a50829b5050505060006003015495508b6001600160a01b0316319450600060040160009054906101000a90046001600160a01b03166001600160a01b03166370a082318d6040518263ffffffff1660e01b8152600401610a9b91906001600160a01b0391909116815260200190565b602060405180830381865afa158015610ab8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610adc9190611830565b9350610afd8c6001600160a01b031660009081526001602052604090205490565b9250610b088c6103b0565b915081610b1784600080610574565b610b219190611772565b905091939597999b90929496989a50565b6004546000906001600160a01b03163314610b4c57600080fd5b60008411610b5957600080fd5b610980848661112b565b6000808311610b7157600080fd5b600480546040516370a0823160e01b815230928101929092526000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610bbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be39190611830565b600480546040516323b872dd60e01b81523392810192909252306024830152604482018790529192506001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015610c40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6491906117cb565b50600480546040516370a0823160e01b8152309281019290925260009183916001600160a01b0316906370a0823190602401602060405180830381865afa158015610cb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd79190611830565b610ce1919061175b565b9050610ced818561112b565b95945050505050565b60006104dd338484610f80565b60008111610d1057600080fd5b600480546040516370a0823160e01b815230928101929092526000916001600160a01b03909116906370a0823190602401602060405180830381865afa158015610d5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d829190611830565b600480546040516323b872dd60e01b81523392810192909252306024830152604482018590529192506001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015610ddf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0391906117cb565b50600480546040516370a0823160e01b8152309281019290925260009183916001600160a01b0316906370a0823190602401602060405180830381865afa158015610e52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e769190611830565b610e80919061175b565b600054909150610e94600160401b836116db565b610e9e9190611739565b60028054600090610eb0908490611772565b9091555050505050565b60006103f78233610b63565b33600090815260016020526040812054821115610ee257600080fd5b6103f7826112a8565b600080610ef7336103b0565b905060008111610f0657600080fd5b610f14600160401b826116db565b3360009081526001602052604081206002018054909190610f3690849061178a565b909155505060405181815233907fbd654390d0d973e8c8376ed6053be8658870df892687852cc5c914d700291b879060200160405180910390a2610f7a813361112b565b91505090565b6001600160a01b038316600090815260016020526040812054821115610fa557600080fd5b6001600160a01b03841660009081526001602052604081208054849290610fcd90849061175b565b9091555050600254610fdf90836116db565b6001600160a01b0385166000908152600160205260408120600201805490919061100a9084906116fa565b90915550506001600160a01b03831660009081526001602052604081208054849290611037908490611772565b909155505060025461104990836116db565b6001600160a01b0384166000908152600160205260408120600201805490919061107490849061178a565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110c091815260200190565b60405180910390a35060019392505050565b60008060026110e2846001611772565b6110ec9190611739565b90508291505b818110156111255790508060028161110a8186611739565b6111149190611772565b61111e9190611739565b90506110f2565b50919050565b60035460009042101561113d57600080fd5b6000606461114c600a866116db565b6111569190611739565b90506111658460016000610574565b91508160008001600082825461117b9190611772565b90915550506001600160a01b038316600090815260016020526040812080548492906111a8908490611772565b90915550506002546111ba90836116db565b6001600160a01b038416600090815260016020526040812060020180549091906111e590849061178a565b90915550506000546111fb600160401b836116db565b6112059190611739565b60028054600090611217908490611772565b90915550506040518281526001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a360408051858152602081018490526001600160a01b038516917f1cbc5ab135991bd2b6a4b034a04aa2aa086dac1371cb9b16b8b5e2ed6b036bed910160405180910390a25092915050565b336000908152600160205260408120548211156112c457600080fd5b6112d082600080610574565b905060006112e0600a606461175b565b6112eb600a846116db565b6112f59190611739565b90508260008001600082825461130b919061175b565b9091555050336000908152600160205260408120805485929061132f90849061175b565b909155505060025461134190846116db565b33600090815260016020526040812060020180549091906113639084906116fa565b9091555050600054611379600160401b836116db565b6113839190611739565b60028054600090611395908490611772565b90915550506004805460405163a9059cbb60e01b81523392810192909252602482018490526001600160a01b03169063a9059cbb906044016020604051808303816000875af11580156113ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141091906117cb565b5060405183815260009033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3604080518481526020810184905233917fed7a144fad14804d5c249145e3e0e2b63a9eb455b76aee5bc92d711e9bba3e4a910160405180910390a250919050565b80356001600160a01b03811681146114a157600080fd5b919050565b6000602082840312156114b857600080fd5b6104dd8261148a565b600060208083528351808285015260005b818110156114ee578581018301518582016040015282016114d2565b81811115611500576000604083870101525b50601f01601f1916929092016040019392505050565b6000806040838503121561152957600080fd5b6115328361148a565b946020939093013593505050565b60008060006060848603121561155557600080fd5b61155e8461148a565b925061156c6020850161148a565b9150604084013590509250925092565b801515811461158a57600080fd5b50565b6000806000606084860312156115a257600080fd5b8335925060208401356115b48161157c565b915060408401356115c48161157c565b809150509250925092565b600080600080606085870312156115e557600080fd5b6115ee8561148a565b935060208501359250604085013567ffffffffffffffff8082111561161257600080fd5b818701915087601f83011261162657600080fd5b81358181111561163557600080fd5b88602082850101111561164757600080fd5b95989497505060200194505050565b6000806040838503121561166957600080fd5b823591506116796020840161148a565b90509250929050565b60006020828403121561169457600080fd5b5035919050565b600080604083850312156116ae57600080fd5b6116b78361148a565b91506116796020840161148a565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156116f5576116f56116c5565b500290565b60008083128015600160ff1b850184121615611718576117186116c5565b6001600160ff1b0384018313811615611733576117336116c5565b50500390565b60008261175657634e487b7160e01b600052601260045260246000fd5b500490565b60008282101561176d5761176d6116c5565b500390565b60008219821115611785576117856116c5565b500190565b600080821280156001600160ff1b03849003851316156117ac576117ac6116c5565b600160ff1b83900384128116156117c5576117c56116c5565b50500190565b6000602082840312156117dd57600080fd5b81516104dd8161157c565b6001600160a01b0385168152602081018490526060604082018190528101829052818360808301376000818301608090810191909152601f909201601f191601019392505050565b60006020828403121561184257600080fd5b505191905056fea2646970667358221220bf7dd50c30b1794352c1c8147d06eb5f27f8fa471cc8be9d0c8ab31227080ea564736f6c634300080a0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000f59bfeed034092e399cc43ff79edab15e2e187350000000000000000000000000000000000000000000000000000000061a61240

-----Decoded View---------------
Arg [0] : _krill (address): 0xf59BfEED034092E399Cc43Ff79EdAb15e2e18735
Arg [1] : _openingTime (uint256): 1638273600

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000f59bfeed034092e399cc43ff79edab15e2e18735
Arg [1] : 0000000000000000000000000000000000000000000000000000000061a61240


Deployed Bytecode Sourcemap

418:8323:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4868:191;;;;;;:::i;:::-;;:::i;:::-;;;529:25:1;;;517:2;502:18;4868:191:0;;;;;;;;669:48;;;;;;;;;;;;;;;-1:-1:-1;;;669:48:0;;;;;;;;;;;;:::i;3588:203::-;;;;;;:::i;:::-;;:::i;:::-;;;1591:14:1;;1584:22;1566:41;;1554:2;1539:18;3588:203:0;1426:187:1;4388:86:0;4432:7;4453:16;4388:86;;3796:257;;;;;;:::i;:::-;;:::i;4479:273::-;;;:::i;:::-;;;;2153:25:1;;;2209:2;2194:18;;2187:34;;;;2237:18;;;2230:34;2141:2;2126:18;4479:273:0;1951:319:1;765:35:0;;798:2;765:35;;;;;2447:4:1;2435:17;;;2417:36;;2405:2;2390:18;765:35:0;2275:184:1;5920:1010:0;;;;;;:::i;:::-;;:::i;2843:318::-;;;:::i;4058:323::-;;;;;;:::i;:::-;;:::i;5064:708::-;;;;;;:::i;:::-;;:::i;:::-;;;;4202:25:1;;;4258:2;4243:18;;4236:34;;;;4286:18;;;4279:34;;;;4344:2;4329:18;;4322:34;;;;4387:3;4372:19;;4365:35;;;;4431:3;4416:19;;4409:35;;;;4475:3;4460:19;;4453:35;4519:3;4504:19;;4497:35;4563:3;4548:19;;4541:35;4607:3;4592:19;;4585:35;4651:3;4636:19;;4629:36;4189:3;4174:19;5064:708:0;3774:897:1;2485:213:0;;;;;;:::i;:::-;;:::i;4757:106::-;;;;;;:::i;:::-;-1:-1:-1;;;;;4833:17:0;4812:7;4833:17;;;:10;:17;;;;;:25;;4757:106;721:40;;;;;;;;;;;;;;;-1:-1:-1;;;721:40:0;;;;;2125:355;;;;;;:::i;:::-;;:::i;3459:124::-;;;;;;:::i;:::-;;:::i;1646:368::-;;;;;;:::i;:::-;;:::i;:::-;;2019:101;;;;;;:::i;:::-;;:::i;5777:138::-;;;;;;:::i;:::-;-1:-1:-1;;;;;5873:17:0;;;5852:7;5873:17;;;:10;:17;;;;;;;;:37;;;;;;:27;;:37;;;;;;5777:138;2703:135;;;;;;:::i;:::-;;:::i;3166:288::-;;;:::i;4868:191::-;-1:-1:-1;;;;;5008:17:0;;4925:7;5008:17;;;:10;:17;;;;;:30;;;;4833:25;;-1:-1:-1;;;480:5:0;5008:30;4961:24;;:43;;;;:::i;:::-;4954:84;;;;:::i;:::-;4946:108;;;;:::i;:::-;4939:115;4868:191;-1:-1:-1;;4868:191:0:o;3588:203::-;3680:10;3658:4;3669:22;;;:10;:22;;;;;;;;-1:-1:-1;;;;;3669:42:0;;;;;:32;;:42;;;;;:52;;;3731:39;529:25:1;;;3658:4:0;;3669:42;;3731:39;;502:18:1;3731:39:0;;;;;;;-1:-1:-1;3782:4:0;3588:203;;;;:::o;3796:257::-;-1:-1:-1;;;;;3900:17:0;;3881:4;3900:17;;;:10;:17;;;;;;;;3928:10;3900:39;;:27;;;:39;;;;;:50;-1:-1:-1;3900:50:0;3892:59;;;;;;-1:-1:-1;;;;;3956:17:0;;:4;:17;;;:10;:17;;;;;;;;3984:10;3956:39;;:27;;;:39;;;;:50;;3999:7;;3956:4;:50;;3999:7;;3956:50;:::i;:::-;;;;-1:-1:-1;4018:30:0;;-1:-1:-1;4028:5:0;4035:3;4040:7;4018:9;:30::i;:::-;4011:37;;3796:257;;;;;;:::o;4479:273::-;4525:17;4544:16;4562:17;4643:4;4627:13;4432:7;4453:16;;4388:86;4627:13;4615:25;;659:4;4615:25;:::i;:::-;:32;;;;:::i;:::-;4598:49;;614:4;4598:49;:::i;:::-;4586:61;-1:-1:-1;4682:13:0;524:2;4682:3;:13;:::i;:::-;4663:15;:9;4675:3;4663:15;:::i;:::-;:33;;;;:::i;:::-;4652:44;-1:-1:-1;4744:3:0;4726:14;566:2;4744:3;4726:14;:::i;:::-;4713:28;;:9;:28;:::i;:::-;:34;;;;:::i;:::-;4701:46;;4479:273;;;:::o;5920:1010::-;6011:7;6025:17;6047:18;6099:15;:13;:15::i;:::-;6070:44;;-1:-1:-1;6070:44:0;-1:-1:-1;6119:13:0;;-1:-1:-1;6136:6:0;:31;;6157:10;6136:31;;;6145:9;6136:31;6119:49;;6173:18;6243:6;:30;;6270:3;6243:30;;;6253:13;524:2;6253:3;:13;:::i;:::-;6207:6;:31;;6223:14;566:2;6223:3;:14;:::i;:::-;6207:31;;;6216:3;6207:31;6194:45;;659:4;6194:45;:::i;:::-;:80;;;;:::i;:::-;6173:101;;6284:6;:19;;;;;6295:8;6294:9;6284:19;6283:46;;;;6310:6;6309:7;:19;;;;;6320:8;6309:19;6279:647;;;6341:8;6337:355;;;6505:14;6509:10;6505:1;:14;:::i;:::-;6483:10;6378:102;6483:10;6455:11;6459:7;6455:1;:11;:::i;:::-;:24;;;;:::i;:::-;6442:10;6430:9;6434:5;6430:1;:9;:::i;:::-;:22;;;;:::i;:::-;6404:23;6417:10;;6404:23;:::i;:::-;6396:5;6384:9;6396:5;6384:1;:9;:::i;:::-;:17;;;;:::i;:::-;:43;;;;:::i;:::-;:68;;;;:::i;:::-;:95;;;;:::i;:::-;6378:5;:102::i;:::-;6366:9;6370:5;6366:1;:9;:::i;:::-;:114;;;;:::i;:::-;:127;;;;:::i;:::-;6365:136;;6497:4;6365:136;:::i;:::-;:155;;;;:::i;:::-;6358:162;;;;;;;;6337:355;6670:14;6674:10;6670:1;:14;:::i;:::-;6649:9;6653:5;6649:1;:9;:::i;:::-;6636:10;6548:85;6636:10;6608:11;6612:7;6608:1;:11;:::i;:::-;:24;;;;:::i;:::-;6595:9;6599:5;6595:1;:9;:::i;:::-;6582:22;;:10;:22;:::i;:::-;6568:9;6572:5;6568:1;:9;:::i;:::-;6555:22;;:10;:22;:::i;:::-;6554:51;;;;:::i;:::-;:78;;;;:::i;6279:647::-;6713:8;6709:212;;;6808:4;6797:7;6789:4;6771:14;6797:7;6808:4;6771:14;:::i;:::-;6757:29;;:10;:29;:::i;:::-;:36;;;;:::i;:::-;6756:48;;;;:::i;:::-;6738:15;6746:7;6738:5;:15;:::i;:::-;:66;;;;:::i;6709:212::-;6910:4;6899:7;6891:4;6873:14;6899:7;6910:4;6873:14;:::i;:::-;6859:29;;:10;:29;:::i;:::-;:36;;;;:::i;:::-;6858:48;;;;:::i;:::-;6840:15;6848:7;6840:5;:15;:::i;:::-;:66;;;;:::i;2843:318::-;2881:7;2895:18;2916:23;2928:10;2916:11;:23::i;:::-;2895:44;;2965:1;2952:10;:14;2944:23;;;;;;3018:25;-1:-1:-1;;;3018:10:0;:25;:::i;:::-;2983:10;2972:4;:22;;;:10;:22;;;;;:35;;:72;;:35;;:4;:72;;;;;:::i;:::-;;;;-1:-1:-1;;3049:10:0;;;:43;;-1:-1:-1;;;3049:43:0;;3069:10;3049:43;;;6891:51:1;;;;6958:18;;;6951:34;;;-1:-1:-1;;;;;3049:10:0;;:19;;6864:18:1;;3049:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;3102:32:0;;529:25:1;;;3111:10:0;;3102:32;;517:2:1;502:18;3102:32:0;;;;;;;3146:10;2843:318;-1:-1:-1;2843:318:0:o;4058:323::-;4153:4;4164:35;4174:10;4186:3;4191:7;4164:9;:35::i;:::-;-1:-1:-1;4245:16:0;;4274:9;;;;4270:91;;4299:55;;-1:-1:-1;;;4299:55:0;;-1:-1:-1;;;;;4299:27:0;;;;;:55;;4327:10;;4339:7;;4348:5;;;;4299:55;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4291:64;;;;;;-1:-1:-1;4372:4:0;;4058:323;-1:-1:-1;;;;;4058:323:0:o;5064:708::-;5378:10;;;:35;;-1:-1:-1;;;5378:35:0;;5407:4;5378:35;;;7956:51:1;;;;5122:23:0;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5378:10:0;;;;:20;;7929:18:1;;5378:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5360:53;;5437:13;4432:7;4453:16;;4388:86;5437:13;5418:32;;5490:15;:13;:15::i;:::-;5455:50;;;;;;;;;;;;5524:4;:16;;;5510:30;;5555:5;-1:-1:-1;;;;;5555:13:0;;5545:23;;5585:4;:10;;;;;;;;;;-1:-1:-1;;;;;5585:10:0;-1:-1:-1;;;;;5585:20:0;;5606:5;5585:27;;;;;;;;;;;;;;-1:-1:-1;;;;;7974:32:1;;;;7956:51;;7944:2;7929:18;;7810:203;5585:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5573:39;;5631:16;5641:5;-1:-1:-1;;;;;4833:17:0;4812:7;4833:17;;;:10;:17;;;;;:25;;4757:106;5631:16;5617:30;;5668:18;5680:5;5668:11;:18::i;:::-;5652:34;;5754:13;5709:42;5725:11;5738:5;5745;5709:15;:42::i;:::-;:58;;;;:::i;:::-;5691:76;;5064:708;;;;;;;;;;;;;:::o;2485:213::-;2615:10;;2574:4;;-1:-1:-1;;;;;2615:10:0;2593;:33;2585:42;;;;;;2650:1;2640:7;:11;2632:20;;;;;;2657;2662:7;2671:5;2657:4;:20::i;2125:355::-;2189:7;2221:1;2211:7;:11;2203:20;;;;;;2253:10;;;:35;;-1:-1:-1;;;2253:35:0;;2282:4;2253:35;;;7956:51:1;;;;2228:22:0;;-1:-1:-1;;;;;2253:10:0;;;;:20;;7929:18:1;;2253:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2293:10;;;:59;;-1:-1:-1;;;2293:59:0;;2317:10;2293:59;;;8447:34:1;;;;2337:4:0;8497:18:1;;;8490:43;8549:18;;;8542:34;;;2228:60:0;;-1:-1:-1;;;;;;2293:10:0;;;;:23;;8382:18:1;;2293:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2383:10:0;;;:35;;-1:-1:-1;;;2383:35:0;;2412:4;2383:35;;;7956:51:1;;;;2357:23:0;;2421:14;;-1:-1:-1;;;;;2383:10:0;;:20;;7929:18:1;;2383:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:52;;;;:::i;:::-;2357:78;;2447:28;2452:15;2469:5;2447:4;:28::i;:::-;2440:35;2125:355;-1:-1:-1;;;;;2125:355:0:o;3459:124::-;3525:4;3543:35;3553:10;3565:3;3570:7;3543:9;:35::i;1646:368::-;1713:1;1703:7;:11;1695:20;;;;;;1745:10;;;:35;;-1:-1:-1;;;1745:35:0;;1774:4;1745:35;;;7956:51:1;;;;1720:22:0;;-1:-1:-1;;;;;1745:10:0;;;;:20;;7929:18:1;;1745:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1785:10;;;:59;;-1:-1:-1;;;1785:59:0;;1809:10;1785:59;;;8447:34:1;;;;1829:4:0;8497:18:1;;;8490:43;8549:18;;;8542:34;;;1720:60:0;;-1:-1:-1;;;;;;1785:10:0;;;;:23;;8382:18:1;;1785:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1875:10:0;;;:35;;-1:-1:-1;;;1875:35:0;;1904:4;1875:35;;;7956:51:1;;;;1849:23:0;;1913:14;;-1:-1:-1;;;;;1875:10:0;;:20;;7929:18:1;;1875:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:52;;;;:::i;:::-;1993:4;:16;1849:78;;-1:-1:-1;1960:30:0;-1:-1:-1;;;1849:78:0;1960:30;:::i;:::-;:49;;;;:::i;:::-;1932:24;:77;;:4;;:77;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1646:368:0:o;2019:101::-;2067:7;2088:27;2095:7;2104:10;2088:6;:27::i;2703:135::-;2784:10;2752:7;4833:17;;;:10;:17;;;;;:25;2799:7;-1:-1:-1;2774:32:0;2766:41;;;;;;2819:14;2825:7;2819:5;:14::i;3166:288::-;3204:7;3218:18;3239:23;3251:10;3239:11;:23::i;:::-;3218:44;;3288:1;3275:10;:14;3267:23;;;;;;3341:25;-1:-1:-1;;;3341:10:0;:25;:::i;:::-;3306:10;3295:4;:22;;;:10;:22;;;;;:35;;:72;;:35;;:4;:72;;;;;:::i;:::-;;;;-1:-1:-1;;3377:32:0;;529:25:1;;;3386:10:0;;3377:32;;517:2:1;502:18;3377:32:0;;;;;;;3421:28;3426:10;3438;3421:4;:28::i;:::-;3414:35;;;3166:288;:::o;6937:438::-;-1:-1:-1;;;;;7038:17:0;;7019:4;7038:17;;;:10;:17;;;;;:25;:36;-1:-1:-1;7038:36:0;7030:45;;;;;;-1:-1:-1;;;;;7080:17:0;;:4;:17;;;:10;:17;;;;;:36;;7109:7;;7080:4;:36;;7109:7;;7080:36;:::i;:::-;;;;-1:-1:-1;;7172:24:0;;7162:34;;:7;:34;:::i;:::-;-1:-1:-1;;;;;7121:17:0;;:4;:17;;;:10;:17;;;;;:30;;:76;;:30;;:4;:76;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;7202:15:0;;:4;:15;;;:10;:15;;;;;:34;;7229:7;;7202:4;:34;;7229:7;;7202:34;:::i;:::-;;;;-1:-1:-1;;7290:24:0;;7280:34;;:7;:34;:::i;:::-;-1:-1:-1;;;;;7241:15:0;;:4;:15;;;:10;:15;;;;;:28;;:74;;:28;;:4;:74;;;;;:::i;:::-;;;;;;;;7341:3;-1:-1:-1;;;;;7325:29:0;7334:5;-1:-1:-1;;;;;7325:29:0;;7346:7;7325:29;;;;529:25:1;;517:2;502:18;;383:177;7325:29:0;;;;;;;;-1:-1:-1;7366:4:0;6937:438;;;;;:::o;8533:205::-;8583:14;;8630:1;8620:6;:2;8625:1;8620:6;:::i;:::-;8619:12;;;;:::i;:::-;8604:27;;8645:2;8636:11;;8652:82;8666:6;8659:4;:13;8652:82;;;8689:4;-1:-1:-1;8689:4:0;8727:1;8689:4;8707:9;8689:4;8707:2;:9;:::i;:::-;:16;;;;:::i;:::-;8706:22;;;;:::i;:::-;8699:29;;8652:82;;;8599:139;8533:205;;;:::o;7380:534::-;7492:16;;7444:14;;7473:15;:35;;7465:44;;;;;;7514:12;7549:3;7529:17;524:2;7529:7;:17;:::i;:::-;:23;;;;:::i;:::-;7514:38;;7566:37;7582:7;7591:4;7597:5;7566:15;:37::i;:::-;7557:46;;7628:6;7608:4;:16;;;:26;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;7639:17:0;;:4;:17;;;:10;:17;;;;;:35;;7668:6;;7639:4;:35;;7668:6;;7639:35;:::i;:::-;;;;-1:-1:-1;;7729:24:0;;7720:33;;:6;:33;:::i;:::-;-1:-1:-1;;;;;7679:17:0;;:4;:17;;;:10;:17;;;;;:30;;:75;;:30;;:4;:75;;;;;:::i;:::-;;;;-1:-1:-1;;7809:4:0;:16;7787:19;-1:-1:-1;;;7787:4:0;:19;:::i;:::-;:38;;;;:::i;:::-;7759:24;:66;;:4;;:66;;;;;:::i;:::-;;;;-1:-1:-1;;7835:37:0;;529:25:1;;;-1:-1:-1;;;;;7835:37:0;;;7852:3;;7835:37;;517:2:1;502:18;7835:37:0;;;;;;;7882:27;;;8761:25:1;;;8817:2;8802:18;;8795:34;;;-1:-1:-1;;;;;7882:27:0;;;;;8734:18:1;7882:27:0;;;;;;;7460:454;7380:534;;;;:::o;7919:609::-;8009:10;7969:14;7998:22;;;:10;:22;;;;;:30;:41;-1:-1:-1;7998:41:0;7990:50;;;;;;8054:38;8070:7;8079:5;8086;8054:15;:38::i;:::-;8045:47;-1:-1:-1;8097:12:0;8133:14;566:2;8133:3;:14;:::i;:::-;8112:17;566:2;8112:6;:17;:::i;:::-;:36;;;;:::i;:::-;8097:51;;8173:7;8153:4;:16;;;:27;;;;;;;:::i;:::-;;;;-1:-1:-1;;8196:10:0;8185:4;:22;;;:10;:22;;;;;:41;;8219:7;;8185:4;:41;;8219:7;;8185:41;:::i;:::-;;;;-1:-1:-1;;8287:24:0;;8277:34;;:7;:34;:::i;:::-;8242:10;8231:4;:22;;;:10;:22;;;;;:35;;:81;;:35;;:4;:81;;;;;:::i;:::-;;;;-1:-1:-1;;8367:4:0;:16;8345:19;-1:-1:-1;;;8345:4:0;:19;:::i;:::-;:38;;;;:::i;:::-;8317:24;:66;;:4;;:66;;;;;:::i;:::-;;;;-1:-1:-1;;8388:10:0;;;:39;;-1:-1:-1;;;8388:39:0;;8408:10;8388:39;;;6891:51:1;;;;6958:18;;;6951:34;;;-1:-1:-1;;;;;8388:10:0;;:19;;6864:18:1;;8388:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;8437:43:0;;529:25:1;;;8466:3:0;;8446:10;;8437:43;;517:2:1;502:18;8437:43:0;;;;;;;8490:33;;;8761:25:1;;;8817:2;8802:18;;8795:34;;;8495:10:0;;8490:33;;8734:18:1;8490:33:0;;;;;;;7985:543;7919:609;;;:::o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;565:597::-;677:4;706:2;735;724:9;717:21;767:6;761:13;810:6;805:2;794:9;790:18;783:34;835:1;845:140;859:6;856:1;853:13;845:140;;;954:14;;;950:23;;944:30;920:17;;;939:2;916:26;909:66;874:10;;845:140;;;1003:6;1000:1;997:13;994:91;;;1073:1;1068:2;1059:6;1048:9;1044:22;1040:31;1033:42;994:91;-1:-1:-1;1146:2:1;1125:15;-1:-1:-1;;1121:29:1;1106:45;;;;1153:2;1102:54;;565:597;-1:-1:-1;;;565:597:1:o;1167:254::-;1235:6;1243;1296:2;1284:9;1275:7;1271:23;1267:32;1264:52;;;1312:1;1309;1302:12;1264:52;1335:29;1354:9;1335:29;:::i;:::-;1325:39;1411:2;1396:18;;;;1383:32;;-1:-1:-1;;;1167:254:1:o;1618:328::-;1695:6;1703;1711;1764:2;1752:9;1743:7;1739:23;1735:32;1732:52;;;1780:1;1777;1770:12;1732:52;1803:29;1822:9;1803:29;:::i;:::-;1793:39;;1851:38;1885:2;1874:9;1870:18;1851:38;:::i;:::-;1841:48;;1936:2;1925:9;1921:18;1908:32;1898:42;;1618:328;;;;;:::o;2464:118::-;2550:5;2543:13;2536:21;2529:5;2526:32;2516:60;;2572:1;2569;2562:12;2516:60;2464:118;:::o;2587:444::-;2658:6;2666;2674;2727:2;2715:9;2706:7;2702:23;2698:32;2695:52;;;2743:1;2740;2733:12;2695:52;2779:9;2766:23;2756:33;;2839:2;2828:9;2824:18;2811:32;2852:28;2874:5;2852:28;:::i;:::-;2899:5;-1:-1:-1;2956:2:1;2941:18;;2928:32;2969:30;2928:32;2969:30;:::i;:::-;3018:7;3008:17;;;2587:444;;;;;:::o;3036:733::-;3124:6;3132;3140;3148;3201:2;3189:9;3180:7;3176:23;3172:32;3169:52;;;3217:1;3214;3207:12;3169:52;3240:29;3259:9;3240:29;:::i;:::-;3230:39;;3316:2;3305:9;3301:18;3288:32;3278:42;;3371:2;3360:9;3356:18;3343:32;3394:18;3435:2;3427:6;3424:14;3421:34;;;3451:1;3448;3441:12;3421:34;3489:6;3478:9;3474:22;3464:32;;3534:7;3527:4;3523:2;3519:13;3515:27;3505:55;;3556:1;3553;3546:12;3505:55;3596:2;3583:16;3622:2;3614:6;3611:14;3608:34;;;3638:1;3635;3628:12;3608:34;3683:7;3678:2;3669:6;3665:2;3661:15;3657:24;3654:37;3651:57;;;3704:1;3701;3694:12;3651:57;3036:733;;;;-1:-1:-1;;3735:2:1;3727:11;;-1:-1:-1;;;3036:733:1:o;4676:254::-;4744:6;4752;4805:2;4793:9;4784:7;4780:23;4776:32;4773:52;;;4821:1;4818;4811:12;4773:52;4857:9;4844:23;4834:33;;4886:38;4920:2;4909:9;4905:18;4886:38;:::i;:::-;4876:48;;4676:254;;;;;:::o;4935:180::-;4994:6;5047:2;5035:9;5026:7;5022:23;5018:32;5015:52;;;5063:1;5060;5053:12;5015:52;-1:-1:-1;5086:23:1;;4935:180;-1:-1:-1;4935:180:1:o;5120:260::-;5188:6;5196;5249:2;5237:9;5228:7;5224:23;5220:32;5217:52;;;5265:1;5262;5255:12;5217:52;5288:29;5307:9;5288:29;:::i;:::-;5278:39;;5336:38;5370:2;5359:9;5355:18;5336:38;:::i;5385:127::-;5446:10;5441:3;5437:20;5434:1;5427:31;5477:4;5474:1;5467:15;5501:4;5498:1;5491:15;5517:168;5557:7;5623:1;5619;5615:6;5611:14;5608:1;5605:21;5600:1;5593:9;5586:17;5582:45;5579:71;;;5630:18;;:::i;:::-;-1:-1:-1;5670:9:1;;5517:168::o;5690:267::-;5729:4;5758:9;;;5783:10;;-1:-1:-1;;;5802:19:1;;5795:27;;5779:44;5776:70;;;5826:18;;:::i;:::-;-1:-1:-1;;;;;5873:27:1;;5866:35;;5858:44;;5855:70;;;5905:18;;:::i;:::-;-1:-1:-1;;5942:9:1;;5690:267::o;5962:217::-;6002:1;6028;6018:132;;6072:10;6067:3;6063:20;6060:1;6053:31;6107:4;6104:1;6097:15;6135:4;6132:1;6125:15;6018:132;-1:-1:-1;6164:9:1;;5962:217::o;6184:125::-;6224:4;6252:1;6249;6246:8;6243:34;;;6257:18;;:::i;:::-;-1:-1:-1;6294:9:1;;6184:125::o;6314:128::-;6354:3;6385:1;6381:6;6378:1;6375:13;6372:39;;;6391:18;;:::i;:::-;-1:-1:-1;6427:9:1;;6314:128::o;6447:265::-;6486:3;6514:9;;;6539:10;;-1:-1:-1;;;;;6558:27:1;;;6551:35;;6535:52;6532:78;;;6590:18;;:::i;:::-;-1:-1:-1;;;6637:19:1;;;6630:27;;6622:36;;6619:62;;;6661:18;;:::i;:::-;-1:-1:-1;;6697:9:1;;6447:265::o;6996:245::-;7063:6;7116:2;7104:9;7095:7;7091:23;7087:32;7084:52;;;7132:1;7129;7122:12;7084:52;7164:9;7158:16;7183:28;7205:5;7183:28;:::i;7246:559::-;-1:-1:-1;;;;;7459:32:1;;7441:51;;7523:2;7508:18;;7501:34;;;7571:2;7566;7551:18;;7544:30;;;7590:18;;7583:34;;;7610:6;7660;7654:3;7639:19;;7626:49;7725:1;7695:22;;;7719:3;7691:32;;;7684:43;;;;7788:2;7767:15;;;-1:-1:-1;;7763:29:1;7748:45;7744:55;;7246:559;-1:-1:-1;;;7246:559:1:o;8018:184::-;8088:6;8141:2;8129:9;8120:7;8116:23;8112:32;8109:52;;;8157:1;8154;8147:12;8109:52;-1:-1:-1;8180:16:1;;8018:184;-1:-1:-1;8018:184:1:o

Swarm Source

ipfs://bf7dd50c30b1794352c1c8147d06eb5f27f8fa471cc8be9d0c8ab31227080ea5
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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