ERC-20
Overview
Max Total Supply
1,752,270,871.512484388219477382 BINU
Holders
56
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
14,284,729.337332729041150425 BINUValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
BitCoinInu
Compiler Version
v0.8.14+commit.80d49f37
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-05-27 */ // SPDX-License-Identifier: MIT pragma solidity >=0.6.0 <0.9.0; /** ██████╗░██╗████████╗░█████╗░░█████╗░██╗███╗░░██╗ ██╗███╗░░██╗██╗░░░██╗ ██╔══██╗██║╚══██╔══╝██╔══██╗██╔══██╗██║████╗░██║ ██║████╗░██║██║░░░██║ ██████╦╝██║░░░██║░░░██║░░╚═╝██║░░██║██║██╔██╗██║ ██║██╔██╗██║██║░░░██║ ██╔══██╗██║░░░██║░░░██║░░██╗██║░░██║██║██║╚████║ ██║██║╚████║██║░░░██║ ██████╦╝██║░░░██║░░░╚█████╔╝╚█████╔╝██║██║░╚███║ ██║██║░╚███║╚██████╔╝ ╚═════╝░╚═╝░░░╚═╝░░░░╚════╝░░╚════╝░╚═╝╚═╝░░╚══╝ ╚═╝╚═╝░░╚══╝░╚═════╝░ /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval( address indexed owner, address indexed spender, uint256 value ); } /** * @dev Interface for the optional metadata functions from the ERC20 standard. * * Available since v4.1. */ interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ contract Ownable is Context { address private _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require( newOwner != address(0), "Ownable: new owner is the zero address" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract BitCoinInu is Context, IERC20, IERC20Metadata, Ownable { using SafeMath for uint256; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private _totalSupply; string private _name; string private _symbol; uint8 private _decimals; uint256 public _burnFee = 10; uint256 public maxTxAmount; uint256 internal launchTime; bool internal islaunched = false; event maxTxAmountUpdated(uint256 updatedAmount); constructor() { _name = "BitCoin Inu"; _symbol = "BINU"; _decimals = 18; _isExcludedFromFee[owner()] = true; _mint(_msgSender(), 2100000000); maxTxAmount = _totalSupply.mul(10).div(10**4); } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5,05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless this function is * overridden; * * NOTE: This information is only used for display purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return _decimals; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * Requirements: * * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. * - the caller must have allowance for ``sender``'s tokens of at least * `amount`. */ function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require( currentAllowance >= amount, "ERC20: transfer amount exceeds allowance" ); _approve(sender, _msgSender(), currentAllowance - amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender] + addedValue ); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require( currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero" ); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } /** * @dev Moves tokens `amount` from `sender` to `recipient`. * * This is internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); if(_totalSupply <= 21000000 * 10 ** _decimals){ _burnFee = 0; } if(islaunched){ if(launchTime > block.timestamp){ maxTxAmount = _totalSupply.mul(10).div(10**4); }else{ islaunched = false; } }else{ maxTxAmount = _totalSupply.mul(50).div(10**4); } uint256 _burnAmt; if (_isExcludedFromFee[sender] || _isExcludedFromFee[recipient]) { _burnAmt = 0; } else { require(amount <= maxTxAmount,"Max Transaction Amount exceeded"); _burnAmt = amount.mul(_burnFee).div(10**2); } uint256 senderBalance = _balances[sender]; require( senderBalance >= amount, "ERC20: transfer amount exceeds balance" ); _balances[sender] = senderBalance - amount; _balances[recipient] += amount.sub(_burnAmt); if (_burnAmt > 0) { _totalSupply -= _burnAmt; emit Transfer(sender, address(0), _burnAmt); } emit Transfer(sender, recipient, amount.sub(_burnAmt)); } function ExcludeOrIncludeFromFee(address Account, bool status) external onlyOwner { require(Account != address(0), "You can't exclude zero address"); _isExcludedFromFee[Account] = status; } function isExcludedFromFee(address Account) external view returns (bool) { return _isExcludedFromFee[Account]; } function LaunchBitcoinInu() external onlyOwner(){ require(launchTime == 0 , "Token Already launched"); launchTime = block.timestamp + 60 minutes; islaunched = true; } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { uint256 Amount = amount * 10**_decimals; require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, Amount); _totalSupply += Amount; _balances[account] += Amount; emit Transfer(address(0), account, Amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(uint256 amount) external virtual { address account = msg.sender; require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); _balances[account] = accountBalance - amount; _totalSupply -= amount; emit Transfer(account, address(0), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be to transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"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":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"updatedAmount","type":"uint256"}],"name":"maxTxAmountUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"Account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"ExcludeOrIncludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"LaunchBitcoinInu","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"_burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_burnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","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":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"Account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
6080604052600a600855600b805460ff191690553480156200002057600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060408051808201909152600b8082526a426974436f696e20496e7560a81b6020909201918252620000969160059162000392565b506040805180820190915260048082526342494e5560e01b6020909201918252620000c49160069162000392565b506007805460ff19166012179055600160036000620000eb6000546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790556200012a6200011f3390565b637d2b75006200016b565b620001626127106200014e600a6004546200027960201b6200092a1790919060201c565b6200030c60201b620009b31790919060201c565b60095562000650565b600754600090620001819060ff16600a6200054b565b6200018d90836200055c565b90506001600160a01b038316620001eb5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b8060046000828254620001ff91906200057e565b90915550506001600160a01b038316600090815260016020526040812080548392906200022e9084906200057e565b90915550506040518181526001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b6000826000036200028d5750600062000306565b60006200029b83856200055c565b905082620002aa858362000599565b14620003035760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401620001e2565b90505b92915050565b60006200030383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200035660201b60201c565b600081836200037a5760405162461bcd60e51b8152600401620001e29190620005bc565b50600062000389848662000599565b95945050505050565b828054620003a09062000614565b90600052602060002090601f016020900481019282620003c457600085556200040f565b82601f10620003df57805160ff19168380011785556200040f565b828001600101855582156200040f579182015b828111156200040f578251825591602001919060010190620003f2565b506200041d92915062000421565b5090565b5b808211156200041d576000815560010162000422565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200048f57816000190482111562000473576200047362000438565b808516156200048157918102915b93841c939080029062000453565b509250929050565b600082620004a85750600162000306565b81620004b75750600062000306565b8160018114620004d05760028114620004db57620004fb565b600191505062000306565b60ff841115620004ef57620004ef62000438565b50506001821b62000306565b5060208310610133831016604e8410600b841016171562000520575081810a62000306565b6200052c83836200044e565b806000190482111562000543576200054362000438565b029392505050565b60006200030360ff84168362000497565b600081600019048311821515161562000579576200057962000438565b500290565b6000821982111562000594576200059462000438565b500190565b600082620005b757634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b81811015620005eb57858101830151858201604001528201620005cd565b81811115620005fe576000604083870101525b50601f01601f1916929092016040019392505050565b600181811c908216806200062957607f821691505b6020821081036200064a57634e487b7160e01b600052602260045260246000fd5b50919050565b6112ec80620006606000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c80638c0b5e22116100ad578063a9059cbb11610071578063a9059cbb14610278578063c0b0fda21461028b578063c373688214610294578063dd62ed3e146102a7578063f2fde38b146102e057600080fd5b80638c0b5e22146102265780638da5cb5b1461022f57806395d89b411461024a5780639b1f9e7414610252578063a457c2d71461026557600080fd5b806339509351116100f457806339509351146101ac5780635342acb4146101bf57806368adfb6d146101eb57806370a08231146101f5578063715018a61461021e57600080fd5b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461017257806323b872dd14610184578063313ce56714610197575b600080fd5b6101396102f3565b6040516101469190610f54565b60405180910390f35b61016261015d366004610fc5565b610385565b6040519015158152602001610146565b6004545b604051908152602001610146565b610162610192366004610fef565b61039c565b60075460405160ff9091168152602001610146565b6101626101ba366004610fc5565b610452565b6101626101cd36600461102b565b6001600160a01b031660009081526003602052604090205460ff1690565b6101f3610489565b005b61017661020336600461102b565b6001600160a01b031660009081526001602052604090205490565b6101f361051a565b61017660095481565b6000546040516001600160a01b039091168152602001610146565b61013961058e565b6101f3610260366004611046565b61059d565b610162610273366004610fc5565b6106ed565b610162610286366004610fc5565b610788565b61017660085481565b6101f36102a236600461105f565b610795565b6101766102b536600461109b565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6101f36102ee36600461102b565b610840565b606060058054610302906110ce565b80601f016020809104026020016040519081016040528092919081815260200182805461032e906110ce565b801561037b5780601f106103505761010080835404028352916020019161037b565b820191906000526020600020905b81548152906001019060200180831161035e57829003601f168201915b5050505050905090565b60006103923384846109f5565b5060015b92915050565b60006103a9848484610b11565b6001600160a01b0384166000908152600260209081526040808320338452909152902054828110156104335760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6104478533610442868561111e565b6109f5565b506001949350505050565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610392918590610442908690611135565b6000546001600160a01b031633146104b35760405162461bcd60e51b815260040161042a9061114d565b600a54156104fc5760405162461bcd60e51b8152602060048201526016602482015275151bdad95b88105b1c9958591e481b185d5b98da195960521b604482015260640161042a565b61050842610e10611135565b600a55600b805460ff19166001179055565b6000546001600160a01b031633146105445760405162461bcd60e51b815260040161042a9061114d565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b606060068054610302906110ce565b33806105f55760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161042a565b6001600160a01b038116600090815260016020526040902054828110156106695760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161042a565b610673838261111e565b6001600160a01b038316600090815260016020526040812091909155600480548592906106a190849061111e565b90915550506040518381526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a3505050565b3360009081526002602090815260408083206001600160a01b03861684529091528120548281101561076f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161042a565b61077e3385610442868561111e565b5060019392505050565b6000610392338484610b11565b6000546001600160a01b031633146107bf5760405162461bcd60e51b815260040161042a9061114d565b6001600160a01b0382166108155760405162461bcd60e51b815260206004820152601e60248201527f596f752063616e2774206578636c756465207a65726f20616464726573730000604482015260640161042a565b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461086a5760405162461bcd60e51b815260040161042a9061114d565b6001600160a01b0381166108cf5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042a565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008260000361093c57506000610396565b60006109488385611182565b90508261095585836111a1565b146109ac5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161042a565b9392505050565b60006109ac83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610eaf565b6001600160a01b038316610a575760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161042a565b6001600160a01b038216610ab85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161042a565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591016106e0565b6001600160a01b038316610b755760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161042a565b6001600160a01b038216610bd75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161042a565b600754610be89060ff16600a6112a7565b610bf6906301406f40611182565b60045411610c045760006008555b600b5460ff1615610c525742600a541115610c4357610c3b612710610c35600a60045461092a90919063ffffffff16565b906109b3565b600955610c72565b600b805460ff19169055610c72565b610c6e612710610c35603260045461092a90919063ffffffff16565b6009555b6001600160a01b03831660009081526003602052604081205460ff1680610cb157506001600160a01b03831660009081526003602052604090205460ff165b15610cbe57506000610d2d565b600954821115610d105760405162461bcd60e51b815260206004820152601f60248201527f4d6178205472616e73616374696f6e20416d6f756e7420657863656564656400604482015260640161042a565b610d2a6064610c356008548561092a90919063ffffffff16565b90505b6001600160a01b03841660009081526001602052604090205482811015610da55760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161042a565b610daf838261111e565b6001600160a01b038616600090815260016020526040902055610dd28383610ee6565b6001600160a01b03851660009081526001602052604081208054909190610dfa908490611135565b90915550508115610e5e578160046000828254610e17919061111e565b90915550506040518281526000906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b6001600160a01b038085169086167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610e978686610ee6565b60405190815260200160405180910390a35050505050565b60008183610ed05760405162461bcd60e51b815260040161042a9190610f54565b506000610edd84866111a1565b95945050505050565b60006109ac83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060008184841115610f475760405162461bcd60e51b815260040161042a9190610f54565b506000610edd848661111e565b600060208083528351808285015260005b81811015610f8157858101830151858201604001528201610f65565b81811115610f93576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114610fc057600080fd5b919050565b60008060408385031215610fd857600080fd5b610fe183610fa9565b946020939093013593505050565b60008060006060848603121561100457600080fd5b61100d84610fa9565b925061101b60208501610fa9565b9150604084013590509250925092565b60006020828403121561103d57600080fd5b6109ac82610fa9565b60006020828403121561105857600080fd5b5035919050565b6000806040838503121561107257600080fd5b61107b83610fa9565b91506020830135801515811461109057600080fd5b809150509250929050565b600080604083850312156110ae57600080fd5b6110b783610fa9565b91506110c560208401610fa9565b90509250929050565b600181811c908216806110e257607f821691505b60208210810361110257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008282101561113057611130611108565b500390565b6000821982111561114857611148611108565b500190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600081600019048311821515161561119c5761119c611108565b500290565b6000826111be57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156111fe5781600019048211156111e4576111e4611108565b808516156111f157918102915b93841c93908002906111c8565b509250929050565b60008261121557506001610396565b8161122257506000610396565b816001811461123857600281146112425761125e565b6001915050610396565b60ff84111561125357611253611108565b50506001821b610396565b5060208310610133831016604e8410600b8410161715611281575081810a610396565b61128b83836111c3565b806000190482111561129f5761129f611108565b029392505050565b60006109ac60ff84168361120656fea264697066735822122098e8e804aecfbf72bbf0bbcf6d8bcd16e6adc9af35148fbd7c02c23a297afe8664736f6c634300080e0033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061012c5760003560e01c80638c0b5e22116100ad578063a9059cbb11610071578063a9059cbb14610278578063c0b0fda21461028b578063c373688214610294578063dd62ed3e146102a7578063f2fde38b146102e057600080fd5b80638c0b5e22146102265780638da5cb5b1461022f57806395d89b411461024a5780639b1f9e7414610252578063a457c2d71461026557600080fd5b806339509351116100f457806339509351146101ac5780635342acb4146101bf57806368adfb6d146101eb57806370a08231146101f5578063715018a61461021e57600080fd5b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461017257806323b872dd14610184578063313ce56714610197575b600080fd5b6101396102f3565b6040516101469190610f54565b60405180910390f35b61016261015d366004610fc5565b610385565b6040519015158152602001610146565b6004545b604051908152602001610146565b610162610192366004610fef565b61039c565b60075460405160ff9091168152602001610146565b6101626101ba366004610fc5565b610452565b6101626101cd36600461102b565b6001600160a01b031660009081526003602052604090205460ff1690565b6101f3610489565b005b61017661020336600461102b565b6001600160a01b031660009081526001602052604090205490565b6101f361051a565b61017660095481565b6000546040516001600160a01b039091168152602001610146565b61013961058e565b6101f3610260366004611046565b61059d565b610162610273366004610fc5565b6106ed565b610162610286366004610fc5565b610788565b61017660085481565b6101f36102a236600461105f565b610795565b6101766102b536600461109b565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6101f36102ee36600461102b565b610840565b606060058054610302906110ce565b80601f016020809104026020016040519081016040528092919081815260200182805461032e906110ce565b801561037b5780601f106103505761010080835404028352916020019161037b565b820191906000526020600020905b81548152906001019060200180831161035e57829003601f168201915b5050505050905090565b60006103923384846109f5565b5060015b92915050565b60006103a9848484610b11565b6001600160a01b0384166000908152600260209081526040808320338452909152902054828110156104335760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6104478533610442868561111e565b6109f5565b506001949350505050565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610392918590610442908690611135565b6000546001600160a01b031633146104b35760405162461bcd60e51b815260040161042a9061114d565b600a54156104fc5760405162461bcd60e51b8152602060048201526016602482015275151bdad95b88105b1c9958591e481b185d5b98da195960521b604482015260640161042a565b61050842610e10611135565b600a55600b805460ff19166001179055565b6000546001600160a01b031633146105445760405162461bcd60e51b815260040161042a9061114d565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b606060068054610302906110ce565b33806105f55760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161042a565b6001600160a01b038116600090815260016020526040902054828110156106695760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161042a565b610673838261111e565b6001600160a01b038316600090815260016020526040812091909155600480548592906106a190849061111e565b90915550506040518381526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a3505050565b3360009081526002602090815260408083206001600160a01b03861684529091528120548281101561076f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161042a565b61077e3385610442868561111e565b5060019392505050565b6000610392338484610b11565b6000546001600160a01b031633146107bf5760405162461bcd60e51b815260040161042a9061114d565b6001600160a01b0382166108155760405162461bcd60e51b815260206004820152601e60248201527f596f752063616e2774206578636c756465207a65726f20616464726573730000604482015260640161042a565b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461086a5760405162461bcd60e51b815260040161042a9061114d565b6001600160a01b0381166108cf5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042a565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008260000361093c57506000610396565b60006109488385611182565b90508261095585836111a1565b146109ac5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161042a565b9392505050565b60006109ac83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610eaf565b6001600160a01b038316610a575760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161042a565b6001600160a01b038216610ab85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161042a565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591016106e0565b6001600160a01b038316610b755760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161042a565b6001600160a01b038216610bd75760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161042a565b600754610be89060ff16600a6112a7565b610bf6906301406f40611182565b60045411610c045760006008555b600b5460ff1615610c525742600a541115610c4357610c3b612710610c35600a60045461092a90919063ffffffff16565b906109b3565b600955610c72565b600b805460ff19169055610c72565b610c6e612710610c35603260045461092a90919063ffffffff16565b6009555b6001600160a01b03831660009081526003602052604081205460ff1680610cb157506001600160a01b03831660009081526003602052604090205460ff165b15610cbe57506000610d2d565b600954821115610d105760405162461bcd60e51b815260206004820152601f60248201527f4d6178205472616e73616374696f6e20416d6f756e7420657863656564656400604482015260640161042a565b610d2a6064610c356008548561092a90919063ffffffff16565b90505b6001600160a01b03841660009081526001602052604090205482811015610da55760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161042a565b610daf838261111e565b6001600160a01b038616600090815260016020526040902055610dd28383610ee6565b6001600160a01b03851660009081526001602052604081208054909190610dfa908490611135565b90915550508115610e5e578160046000828254610e17919061111e565b90915550506040518281526000906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b6001600160a01b038085169086167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610e978686610ee6565b60405190815260200160405180910390a35050505050565b60008183610ed05760405162461bcd60e51b815260040161042a9190610f54565b506000610edd84866111a1565b95945050505050565b60006109ac83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060008184841115610f475760405162461bcd60e51b815260040161042a9190610f54565b506000610edd848661111e565b600060208083528351808285015260005b81811015610f8157858101830151858201604001528201610f65565b81811115610f93576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114610fc057600080fd5b919050565b60008060408385031215610fd857600080fd5b610fe183610fa9565b946020939093013593505050565b60008060006060848603121561100457600080fd5b61100d84610fa9565b925061101b60208501610fa9565b9150604084013590509250925092565b60006020828403121561103d57600080fd5b6109ac82610fa9565b60006020828403121561105857600080fd5b5035919050565b6000806040838503121561107257600080fd5b61107b83610fa9565b91506020830135801515811461109057600080fd5b809150509250929050565b600080604083850312156110ae57600080fd5b6110b783610fa9565b91506110c560208401610fa9565b90509250929050565b600181811c908216806110e257607f821691505b60208210810361110257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60008282101561113057611130611108565b500390565b6000821982111561114857611148611108565b500190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600081600019048311821515161561119c5761119c611108565b500290565b6000826111be57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156111fe5781600019048211156111e4576111e4611108565b808516156111f157918102915b93841c93908002906111c8565b509250929050565b60008261121557506001610396565b8161122257506000610396565b816001811461123857600281146112425761125e565b6001915050610396565b60ff84111561125357611253611108565b50506001821b610396565b5060208310610133831016604e8410600b8410161715611281575081810a610396565b61128b83836111c3565b806000190482111561129f5761129f611108565b029392505050565b60006109ac60ff84168361120656fea264697066735822122098e8e804aecfbf72bbf0bbcf6d8bcd16e6adc9af35148fbd7c02c23a297afe8664736f6c634300080e0033
Deployed Bytecode Sourcemap
13291:11700:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14226:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16539:210;;;;;;:::i;:::-;;:::i;:::-;;;1218:14:1;;1211:22;1193:41;;1181:2;1166:18;16539:210:0;1053:187:1;15351:108:0;15439:12;;15351:108;;;1391:25:1;;;1379:2;1364:18;15351:108:0;1245:177:1;17231:493:0;;;;;;:::i;:::-;;:::i;15186:100::-;15269:9;;15186:100;;15269:9;;;;1902:36:1;;1890:2;1875:18;15186:100:0;1760:184:1;18133:297:0;;;;;;:::i;:::-;;:::i;21585:126::-;;;;;;:::i;:::-;-1:-1:-1;;;;;21676:27:0;21652:4;21676:27;;;:18;:27;;;;;;;;;21585:126;21719:198;;;:::i;:::-;;15522:177;;;;;;:::i;:::-;-1:-1:-1;;;;;15673:18:0;15641:7;15673:18;;;:9;:18;;;;;;;15522:177;12700:148;;;:::i;13741:26::-;;;;;;12058:79;12096:7;12123:6;12058:79;;-1:-1:-1;;;;;12123:6:0;;;2286:51:1;;2274:2;2259:18;12058:79:0;2140:203:1;14445:104:0;;;:::i;22926:516::-;;;;;;:::i;:::-;;:::i;18933:446::-;;;;;;:::i;:::-;;:::i;15912:216::-;;;;;;:::i;:::-;;:::i;13706:28::-;;;;;;21342:235;;;;;;:::i;:::-;;:::i;16191:201::-;;;;;;:::i;:::-;-1:-1:-1;;;;;16357:18:0;;;16325:7;16357:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;16191:201;13003:281;;;;;;:::i;:::-;;:::i;14226:100::-;14280:13;14313:5;14306:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14226:100;:::o;16539:210::-;16658:4;16680:39;5450:10;16703:7;16712:6;16680:8;:39::i;:::-;-1:-1:-1;16737:4:0;16539:210;;;;;:::o;17231:493::-;17371:4;17388:36;17398:6;17406:9;17417:6;17388:9;:36::i;:::-;-1:-1:-1;;;;;17464:19:0;;17437:24;17464:19;;;:11;:19;;;;;;;;5450:10;17464:33;;;;;;;;17530:26;;;;17508:116;;;;-1:-1:-1;;;17508:116:0;;3737:2:1;17508:116:0;;;3719:21:1;3776:2;3756:18;;;3749:30;3815:34;3795:18;;;3788:62;-1:-1:-1;;;3866:18:1;;;3859:38;3914:19;;17508:116:0;;;;;;;;;17635:57;17644:6;5450:10;17666:25;17685:6;17666:16;:25;:::i;:::-;17635:8;:57::i;:::-;-1:-1:-1;17712:4:0;;17231:493;-1:-1:-1;;;;17231:493:0:o;18133:297::-;5450:10;18248:4;18342:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;18342:34:0;;;;;;;;;;18248:4;;18270:130;;18320:7;;18342:47;;18379:10;;18342:47;:::i;21719:198::-;12270:6;;-1:-1:-1;;;;;12270:6:0;5450:10;12270:22;12262:67;;;;-1:-1:-1;;;12262:67:0;;;;;;;:::i;:::-;21786:10:::1;::::0;:15;21778:51:::1;;;::::0;-1:-1:-1;;;21778:51:0;;4902:2:1;21778:51:0::1;::::0;::::1;4884:21:1::0;4941:2;4921:18;;;4914:30;-1:-1:-1;;;4960:18:1;;;4953:52;5022:18;;21778:51:0::1;4700:346:1::0;21778:51:0::1;21853:28;:15;21871:10;21853:28;:::i;:::-;21840:10;:41:::0;21892:10:::1;:17:::0;;-1:-1:-1;;21892:17:0::1;21905:4;21892:17;::::0;;21719:198::o;12700:148::-;12270:6;;-1:-1:-1;;;;;12270:6:0;5450:10;12270:22;12262:67;;;;-1:-1:-1;;;12262:67:0;;;;;;;:::i;:::-;12807:1:::1;12791:6:::0;;12770:40:::1;::::0;-1:-1:-1;;;;;12791:6:0;;::::1;::::0;12770:40:::1;::::0;12807:1;;12770:40:::1;12838:1;12821:19:::0;;-1:-1:-1;;;;;;12821:19:0::1;::::0;;12700:148::o;14445:104::-;14501:13;14534:7;14527:14;;;;;:::i;22926:516::-;23003:10;;23024:67;;;;-1:-1:-1;;;23024:67:0;;5253:2:1;23024:67:0;;;5235:21:1;5292:2;5272:18;;;5265:30;5331:34;5311:18;;;5304:62;-1:-1:-1;;;5382:18:1;;;5375:31;5423:19;;23024:67:0;5051:397:1;23024:67:0;-1:-1:-1;;;;;23191:18:0;;23166:22;23191:18;;;:9;:18;;;;;;23228:24;;;;23220:71;;;;-1:-1:-1;;;23220:71:0;;5655:2:1;23220:71:0;;;5637:21:1;5694:2;5674:18;;;5667:30;5733:34;5713:18;;;5706:62;-1:-1:-1;;;5784:18:1;;;5777:32;5826:19;;23220:71:0;5453:398:1;23220:71:0;23323:23;23340:6;23323:14;:23;:::i;:::-;-1:-1:-1;;;;;23302:18:0;;;;;;:9;:18;;;;;:44;;;;23357:12;:22;;23373:6;;23302:18;23357:22;;23373:6;;23357:22;:::i;:::-;;;;-1:-1:-1;;23397:37:0;;1391:25:1;;;23423:1:0;;-1:-1:-1;;;;;23397:37:0;;;;;1379:2:1;1364:18;23397:37:0;;;;;;;;22974:468;;22926:516;:::o;18933:446::-;5450:10;19053:4;19102:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;19102:34:0;;;;;;;;;;19169:35;;;;19147:122;;;;-1:-1:-1;;;19147:122:0;;6058:2:1;19147:122:0;;;6040:21:1;6097:2;6077:18;;;6070:30;6136:34;6116:18;;;6109:62;-1:-1:-1;;;6187:18:1;;;6180:35;6232:19;;19147:122:0;5856:401:1;19147:122:0;19280:67;5450:10;19303:7;19312:34;19331:15;19312:16;:34;:::i;19280:67::-;-1:-1:-1;19367:4:0;;18933:446;-1:-1:-1;;;18933:446:0:o;15912:216::-;16034:4;16056:42;5450:10;16080:9;16091:6;16056:9;:42::i;21342:235::-;12270:6;;-1:-1:-1;;;;;12270:6:0;5450:10;12270:22;12262:67;;;;-1:-1:-1;;;12262:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21466:21:0;::::1;21458:64;;;::::0;-1:-1:-1;;;21458:64:0;;6464:2:1;21458:64:0::1;::::0;::::1;6446:21:1::0;6503:2;6483:18;;;6476:30;6542:32;6522:18;;;6515:60;6592:18;;21458:64:0::1;6262:354:1::0;21458:64:0::1;-1:-1:-1::0;;;;;21533:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:36;;-1:-1:-1;;21533:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21342:235::o;13003:281::-;12270:6;;-1:-1:-1;;;;;12270:6:0;5450:10;12270:22;12262:67;;;;-1:-1:-1;;;12262:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13106:22:0;::::1;13084:110;;;::::0;-1:-1:-1;;;13084:110:0;;6823:2:1;13084:110:0::1;::::0;::::1;6805:21:1::0;6862:2;6842:18;;;6835:30;6901:34;6881:18;;;6874:62;-1:-1:-1;;;6952:18:1;;;6945:36;6998:19;;13084:110:0::1;6621:402:1::0;13084:110:0::1;13231:6;::::0;;13210:38:::1;::::0;-1:-1:-1;;;;;13210:38:0;;::::1;::::0;13231:6;::::1;::::0;13210:38:::1;::::0;::::1;13259:6;:17:::0;;-1:-1:-1;;;;;;13259:17:0::1;-1:-1:-1::0;;;;;13259:17:0;;;::::1;::::0;;;::::1;::::0;;13003:281::o;7948:471::-;8006:7;8251:1;8256;8251:6;8247:47;;-1:-1:-1;8281:1:0;8274:8;;8247:47;8306:9;8318:5;8322:1;8318;:5;:::i;:::-;8306:17;-1:-1:-1;8351:1:0;8342:5;8346:1;8306:17;8342:5;:::i;:::-;:10;8334:56;;;;-1:-1:-1;;;8334:56:0;;7625:2:1;8334:56:0;;;7607:21:1;7664:2;7644:18;;;7637:30;7703:34;7683:18;;;7676:62;-1:-1:-1;;;7754:18:1;;;7747:31;7795:19;;8334:56:0;7423:397:1;8334:56:0;8410:1;7948:471;-1:-1:-1;;;7948:471:0:o;8895:132::-;8953:7;8980:39;8984:1;8987;8980:39;;;;;;;;;;;;;;;;;:3;:39::i;23880:380::-;-1:-1:-1;;;;;24016:19:0;;24008:68;;;;-1:-1:-1;;;24008:68:0;;8027:2:1;24008:68:0;;;8009:21:1;8066:2;8046:18;;;8039:30;8105:34;8085:18;;;8078:62;-1:-1:-1;;;8156:18:1;;;8149:34;8200:19;;24008:68:0;7825:400:1;24008:68:0;-1:-1:-1;;;;;24095:21:0;;24087:68;;;;-1:-1:-1;;;24087:68:0;;8432:2:1;24087:68:0;;;8414:21:1;8471:2;8451:18;;;8444:30;8510:34;8490:18;;;8483:62;-1:-1:-1;;;8561:18:1;;;8554:32;8603:19;;24087:68:0;8230:398:1;24087:68:0;-1:-1:-1;;;;;24168:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;24220:32;;1391:25:1;;;24220:32:0;;1364:18:1;24220:32:0;1245:177:1;19869:1465:0;-1:-1:-1;;;;;20009:20:0;;20001:70;;;;-1:-1:-1;;;20001:70:0;;8835:2:1;20001:70:0;;;8817:21:1;8874:2;8854:18;;;8847:30;8913:34;8893:18;;;8886:62;-1:-1:-1;;;8964:18:1;;;8957:35;9009:19;;20001:70:0;8633:401:1;20001:70:0;-1:-1:-1;;;;;20090:23:0;;20082:71;;;;-1:-1:-1;;;20082:71:0;;9241:2:1;20082:71:0;;;9223:21:1;9280:2;9260:18;;;9253:30;9319:34;9299:18;;;9292:62;-1:-1:-1;;;9370:18:1;;;9363:33;9413:19;;20082:71:0;9039:399:1;20082:71:0;20200:9;;20194:15;;20200:9;;20194:2;:15;:::i;:::-;20183:26;;:8;:26;:::i;:::-;20167:12;;:42;20164:85;;20236:1;20225:8;:12;20164:85;20264:10;;;;20261:285;;;20306:15;20293:10;;:28;20290:169;;;20355:31;20380:5;20355:20;20372:2;20355:12;;:16;;:20;;;;:::i;:::-;:24;;:31::i;:::-;20341:11;:45;20261:285;;20290:169;20425:10;:18;;-1:-1:-1;;20425:18:0;;;20261:285;;;20503:31;20528:5;20503:20;20520:2;20503:12;;:16;;:20;;;;:::i;:31::-;20489:11;:45;20261:285;-1:-1:-1;;;;;20589:26:0;;20558:16;20589:26;;;:18;:26;;;;;;;;;:59;;-1:-1:-1;;;;;;20619:29:0;;;;;;:18;:29;;;;;;;;20589:59;20585:258;;;-1:-1:-1;20676:1:0;20585:258;;;20728:11;;20718:6;:21;;20710:64;;;;-1:-1:-1;;;20710:64:0;;11028:2:1;20710:64:0;;;11010:21:1;11067:2;11047:18;;;11040:30;11106:33;11086:18;;;11079:61;11157:18;;20710:64:0;10826:355:1;20710:64:0;20800:31;20825:5;20800:20;20811:8;;20800:6;:10;;:20;;;;:::i;:31::-;20789:42;;20585:258;-1:-1:-1;;;;;20879:17:0;;20855:21;20879:17;;;:9;:17;;;;;;20929:23;;;;20907:111;;;;-1:-1:-1;;;20907:111:0;;11388:2:1;20907:111:0;;;11370:21:1;11427:2;11407:18;;;11400:30;11466:34;11446:18;;;11439:62;-1:-1:-1;;;11517:18:1;;;11510:36;11563:19;;20907:111:0;11186:402:1;20907:111:0;21051:22;21067:6;21051:13;:22;:::i;:::-;-1:-1:-1;;;;;21031:17:0;;;;;;:9;:17;;;;;:42;21108:20;:6;21119:8;21108:10;:20::i;:::-;-1:-1:-1;;;;;21084:20:0;;;;;;:9;:20;;;;;:44;;:20;;;:44;;;;;:::i;:::-;;;;-1:-1:-1;;21145:12:0;;21141:119;;21186:8;21170:12;;:24;;;;;;;:::i;:::-;;;;-1:-1:-1;;21210:38:0;;1391:25:1;;;21235:1:0;;-1:-1:-1;;;;;21210:38:0;;;;;1379:2:1;1364:18;21210:38:0;;;;;;;21141:119;-1:-1:-1;;;;;21277:49:0;;;;;;;21305:20;:6;21316:8;21305:10;:20::i;:::-;21277:49;;1391:25:1;;;1379:2;1364:18;21277:49:0;;;;;;;19990:1344;;19869:1465;;;:::o;9523:225::-;9643:7;9678:12;9671:5;9663:28;;;;-1:-1:-1;;;9663:28:0;;;;;;;;:::i;:::-;-1:-1:-1;9702:9:0;9714:5;9718:1;9714;:5;:::i;:::-;9702:17;9523:225;-1:-1:-1;;;;;9523:225:0:o;7024:136::-;7082:7;7109:43;7113:1;7116;7109:43;;;;;;;;;;;;;;;;;7583:7;7619:12;7611:6;;;;7603:29;;;;-1:-1:-1;;;7603:29:0;;;;;;;;:::i;:::-;-1:-1:-1;7643:9:0;7655:5;7659:1;7655;:5;:::i;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:173::-;684:20;;-1:-1:-1;;;;;733:31:1;;723:42;;713:70;;779:1;776;769:12;713:70;616:173;;;:::o;794:254::-;862:6;870;923:2;911:9;902:7;898:23;894:32;891:52;;;939:1;936;929:12;891:52;962:29;981:9;962:29;:::i;:::-;952:39;1038:2;1023:18;;;;1010:32;;-1:-1:-1;;;794:254:1:o;1427:328::-;1504:6;1512;1520;1573:2;1561:9;1552:7;1548:23;1544:32;1541:52;;;1589:1;1586;1579:12;1541:52;1612:29;1631:9;1612:29;:::i;:::-;1602:39;;1660:38;1694:2;1683:9;1679:18;1660:38;:::i;:::-;1650:48;;1745:2;1734:9;1730:18;1717:32;1707:42;;1427:328;;;;;:::o;1949:186::-;2008:6;2061:2;2049:9;2040:7;2036:23;2032:32;2029:52;;;2077:1;2074;2067:12;2029:52;2100:29;2119:9;2100:29;:::i;2348:180::-;2407:6;2460:2;2448:9;2439:7;2435:23;2431:32;2428:52;;;2476:1;2473;2466:12;2428:52;-1:-1:-1;2499:23:1;;2348:180;-1:-1:-1;2348:180:1:o;2533:347::-;2598:6;2606;2659:2;2647:9;2638:7;2634:23;2630:32;2627:52;;;2675:1;2672;2665:12;2627:52;2698:29;2717:9;2698:29;:::i;:::-;2688:39;;2777:2;2766:9;2762:18;2749:32;2824:5;2817:13;2810:21;2803:5;2800:32;2790:60;;2846:1;2843;2836:12;2790:60;2869:5;2859:15;;;2533:347;;;;;:::o;2885:260::-;2953:6;2961;3014:2;3002:9;2993:7;2989:23;2985:32;2982:52;;;3030:1;3027;3020:12;2982:52;3053:29;3072:9;3053:29;:::i;:::-;3043:39;;3101:38;3135:2;3124:9;3120:18;3101:38;:::i;:::-;3091:48;;2885:260;;;;;:::o;3150:380::-;3229:1;3225:12;;;;3272;;;3293:61;;3347:4;3339:6;3335:17;3325:27;;3293:61;3400:2;3392:6;3389:14;3369:18;3366:38;3363:161;;3446:10;3441:3;3437:20;3434:1;3427:31;3481:4;3478:1;3471:15;3509:4;3506:1;3499:15;3363:161;;3150:380;;;:::o;3944:127::-;4005:10;4000:3;3996:20;3993:1;3986:31;4036:4;4033:1;4026:15;4060:4;4057:1;4050:15;4076:125;4116:4;4144:1;4141;4138:8;4135:34;;;4149:18;;:::i;:::-;-1:-1:-1;4186:9:1;;4076:125::o;4206:128::-;4246:3;4277:1;4273:6;4270:1;4267:13;4264:39;;;4283:18;;:::i;:::-;-1:-1:-1;4319:9:1;;4206:128::o;4339:356::-;4541:2;4523:21;;;4560:18;;;4553:30;4619:34;4614:2;4599:18;;4592:62;4686:2;4671:18;;4339:356::o;7028:168::-;7068:7;7134:1;7130;7126:6;7122:14;7119:1;7116:21;7111:1;7104:9;7097:17;7093:45;7090:71;;;7141:18;;:::i;:::-;-1:-1:-1;7181:9:1;;7028:168::o;7201:217::-;7241:1;7267;7257:132;;7311:10;7306:3;7302:20;7299:1;7292:31;7346:4;7343:1;7336:15;7374:4;7371:1;7364:15;7257:132;-1:-1:-1;7403:9:1;;7201:217::o;9443:422::-;9532:1;9575:5;9532:1;9589:270;9610:7;9600:8;9597:21;9589:270;;;9669:4;9665:1;9661:6;9657:17;9651:4;9648:27;9645:53;;;9678:18;;:::i;:::-;9728:7;9718:8;9714:22;9711:55;;;9748:16;;;;9711:55;9827:22;;;;9787:15;;;;9589:270;;;9593:3;9443:422;;;;;:::o;9870:806::-;9919:5;9949:8;9939:80;;-1:-1:-1;9990:1:1;10004:5;;9939:80;10038:4;10028:76;;-1:-1:-1;10075:1:1;10089:5;;10028:76;10120:4;10138:1;10133:59;;;;10206:1;10201:130;;;;10113:218;;10133:59;10163:1;10154:10;;10177:5;;;10201:130;10238:3;10228:8;10225:17;10222:43;;;10245:18;;:::i;:::-;-1:-1:-1;;10301:1:1;10287:16;;10316:5;;10113:218;;10415:2;10405:8;10402:16;10396:3;10390:4;10387:13;10383:36;10377:2;10367:8;10364:16;10359:2;10353:4;10350:12;10346:35;10343:77;10340:159;;;-1:-1:-1;10452:19:1;;;10484:5;;10340:159;10531:34;10556:8;10550:4;10531:34;:::i;:::-;10601:6;10597:1;10593:6;10589:19;10580:7;10577:32;10574:58;;;10612:18;;:::i;:::-;10650:20;;9870:806;-1:-1:-1;;;9870:806:1:o;10681:140::-;10739:5;10768:47;10809:4;10799:8;10795:19;10789:4;10768:47;:::i
Swarm Source
ipfs://98e8e804aecfbf72bbf0bbcf6d8bcd16e6adc9af35148fbd7c02c23a297afe86
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.