ERC-20
Overview
Max Total Supply
1,000,000,000,000 PEPEJON
Holders
336
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
PEPEJON
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-05-09 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /* * @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; } } // File: @openzeppelin/contracts/access/Ownable.sol /** * @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. */ abstract 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 virtual 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; } } interface IERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } contract PEPEJON is IERC20, Ownable { mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; uint256 private _totalSupply; uint256 private _maxAddressAmt; mapping (address => bool) private _maxAddressAmtExcluded; string private _name; string private _symbol; uint8 private _decimals; mapping (address => bool) public _blacklisted; constructor() { _name = "Pepe Johns Pizza"; _symbol = "PEPEJON"; _decimals = 18; _totalSupply = 1000000000000e18; _maxAddressAmt = _totalSupply; setMaxAddressAmtExcluded(_msgSender(), true); _balances[_msgSender()] = _totalSupply; emit Transfer(address(0), _msgSender(), _totalSupply); } function setMaxAddressAmt(uint256 amount) public onlyOwner { require(amount > 0 && amount <= _totalSupply, "Invalid max amount per address"); _maxAddressAmt = amount; } function setMaxAddressAmtExcluded(address a, bool excluded) public onlyOwner { require(a != address(0), "Address must not be zero address"); _maxAddressAmtExcluded[a] = excluded; } function setBlacklisted(address[] calldata a, bool blacklisted) external onlyOwner() { for (uint256 i = 0; i < a.length; i++) { _blacklisted[a[i]] = blacklisted; } } function burn(uint256 amount) external { _burn(_msgSender(), 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(address account, uint256 amount) internal virtual { 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"); unchecked { _balances[account] = accountBalance - amount; // Overflow not possible: amount <= accountBalance <= totalSupply. _totalSupply -= amount; } emit Transfer(account, address(0), amount); _afterTokenTransfer(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); } function _beforeTokenTransfer(address sender, address recipient, uint256 amount) internal virtual { require(!_blacklisted[sender] && !_blacklisted[recipient], "Blacklisted"); } function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual { if (!_maxAddressAmtExcluded[to]) { require(balanceOf(to) <= _maxAddressAmt, "Cannot exceed max amount per address"); } } /** * @dev Moves `amount` of tokens from `from` to `to`. * * This 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: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. */ function _transfer( address from, address to, uint256 amount ) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by // decrementing then incrementing. _balances[to] += amount; } emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } function name() public view override returns (string memory) { return _name; } function symbol() public view override returns (string memory) { return _symbol; } function decimals() public view override returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } /** * @dev Updates `owner` s allowance for `spender` based on spent `amount`. * * Does not update the allowance amount in case of infinite allowance. * Revert if not enough allowance is available. * * Might emit an {Approval} event. */ function _spendAllowance(address owner, address spender, uint256 amount) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } /** * @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}. * * NOTE: Does not update the allowance if the current allowance * is the maximum `uint256`. * * Requirements: * * - `from` and `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. * - the caller must have allowance for ``from``'s tokens of at least * `amount`. */ function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, 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) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, 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) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } }
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"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_blacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","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":[],"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":[{"internalType":"address[]","name":"a","type":"address[]"},{"internalType":"bool","name":"blacklisted","type":"bool"}],"name":"setBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxAddressAmt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setMaxAddressAmtExcluded","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":"from","type":"address"},{"internalType":"address","name":"to","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
60806040523480156200001157600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060408051808201909152601081526f50657065204a6f686e732050697a7a6160801b6020820152600690620000899082620002c7565b50604080518082019091526007808252662822a822a527a760c91b602083015290620000b69082620002c7565b506008805460ff191660121790556c0c9f2c9cd04674edea400000006003819055600455620000ee620000e63390565b60016200013f565b60035433600081815260016020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000393565b6000546001600160a01b031633146200019f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b038216620001f75760405162461bcd60e51b815260206004820181905260248201527f41646472657373206d757374206e6f74206265207a65726f2061646472657373604482015260640162000196565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200024d57607f821691505b6020821081036200026e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620002c257600081815260208120601f850160051c810160208610156200029d5750805b601f850160051c820191505b81811015620002be57828155600101620002a9565b5050505b505050565b81516001600160401b03811115620002e357620002e362000222565b620002fb81620002f4845462000238565b8462000274565b602080601f8311600181146200033357600084156200031a5750858301515b600019600386901b1c1916600185901b178555620002be565b600085815260208120601f198616915b82811015620003645788860151825594840194600190910190840162000343565b5085821015620003835787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61107880620003a36000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c80637a6d69b4116100ad578063a457c2d711610071578063a457c2d714610266578063a9059cbb14610279578063dd62ed3e1461028c578063e1baae1f1461029f578063f2fde38b146102b257600080fd5b80637a6d69b4146101fa5780638da5cb5b1461021d57806395d89b4114610238578063a2b85d7214610240578063a32e7d461461025357600080fd5b8063313ce567116100f4578063313ce5671461018c57806339509351146101a157806342966c68146101b457806370a08231146101c9578063715018a6146101f257600080fd5b806306fdde0314610126578063095ea7b31461014457806318160ddd1461016757806323b872dd14610179575b600080fd5b61012e6102c5565b60405161013b9190610d7f565b60405180910390f35b610157610152366004610de9565b610357565b604051901515815260200161013b565b6003545b60405190815260200161013b565b610157610187366004610e13565b61036e565b60085460405160ff909116815260200161013b565b6101576101af366004610de9565b610392565b6101c76101c2366004610e4f565b6103be565b005b61016b6101d7366004610e68565b6001600160a01b031660009081526001602052604090205490565b6101c76103cb565b610157610208366004610e68565b60096020526000908152604090205460ff1681565b6000546040516001600160a01b03909116815260200161013b565b61012e610448565b6101c761024e366004610e4f565b610457565b6101c7610261366004610e9a565b6104e4565b610157610274366004610de9565b61058f565b610157610287366004610de9565b61060a565b61016b61029a366004610ecd565b610617565b6101c76102ad366004610ef7565b610642565b6101c76102c0366004610e68565b6106e3565b6060600680546102d490610f7b565b80601f016020809104026020016040519081016040528092919081815260200182805461030090610f7b565b801561034d5780601f106103225761010080835404028352916020019161034d565b820191906000526020600020905b81548152906001019060200180831161033057829003601f168201915b5050505050905090565b60006103643384846107cd565b5060015b92915050565b60003361037c8582856108f1565b610387858585610965565b506001949350505050565b6000336103b48185856103a58383610617565b6103af9190610fcb565b6107cd565b5060019392505050565b6103c83382610b21565b50565b6000546001600160a01b031633146103fe5760405162461bcd60e51b81526004016103f590610fde565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6060600780546102d490610f7b565b6000546001600160a01b031633146104815760405162461bcd60e51b81526004016103f590610fde565b60008111801561049357506003548111155b6104df5760405162461bcd60e51b815260206004820152601e60248201527f496e76616c6964206d617820616d6f756e74207065722061646472657373000060448201526064016103f5565b600455565b6000546001600160a01b0316331461050e5760405162461bcd60e51b81526004016103f590610fde565b6001600160a01b0382166105645760405162461bcd60e51b815260206004820181905260248201527f41646472657373206d757374206e6f74206265207a65726f206164647265737360448201526064016103f5565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000338161059d8286610617565b9050838110156105fd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016103f5565b61038782868684036107cd565b6000610364338484610965565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6000546001600160a01b0316331461066c5760405162461bcd60e51b81526004016103f590610fde565b60005b828110156106dd57816009600086868581811061068e5761068e611013565b90506020020160208101906106a39190610e68565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806106d581611029565b91505061066f565b50505050565b6000546001600160a01b0316331461070d5760405162461bcd60e51b81526004016103f590610fde565b6001600160a01b0381166107725760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103f5565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831661082f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103f5565b6001600160a01b0382166108905760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103f5565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006108fd8484610617565b905060001981146106dd57818110156109585760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103f5565b6106dd84848484036107cd565b6001600160a01b0383166109c95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103f5565b6001600160a01b038216610a2b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103f5565b610a36838383610c6d565b6001600160a01b03831660009081526001602052604090205481811015610aae5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103f5565b6001600160a01b0380851660008181526001602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b0e9086815260200190565b60405180910390a36106dd848484610ce9565b6001600160a01b038216610b815760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016103f5565b610b8d82600083610c6d565b6001600160a01b03821660009081526001602052604090205481811015610c015760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016103f5565b6001600160a01b03831660008181526001602090815260408083208686039055600380548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610c6883600084610ce9565b505050565b6001600160a01b03831660009081526009602052604090205460ff16158015610caf57506001600160a01b03821660009081526009602052604090205460ff16155b610c685760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b60448201526064016103f5565b6001600160a01b03821660009081526005602052604090205460ff16610c68576004546001600160a01b0383166000908152600160205260409020541115610c685760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420657863656564206d617820616d6f756e7420706572206164646044820152637265737360e01b60648201526084016103f5565b600060208083528351808285015260005b81811015610dac57858101830151858201604001528201610d90565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610de457600080fd5b919050565b60008060408385031215610dfc57600080fd5b610e0583610dcd565b946020939093013593505050565b600080600060608486031215610e2857600080fd5b610e3184610dcd565b9250610e3f60208501610dcd565b9150604084013590509250925092565b600060208284031215610e6157600080fd5b5035919050565b600060208284031215610e7a57600080fd5b610e8382610dcd565b9392505050565b80358015158114610de457600080fd5b60008060408385031215610ead57600080fd5b610eb683610dcd565b9150610ec460208401610e8a565b90509250929050565b60008060408385031215610ee057600080fd5b610ee983610dcd565b9150610ec460208401610dcd565b600080600060408486031215610f0c57600080fd5b833567ffffffffffffffff80821115610f2457600080fd5b818601915086601f830112610f3857600080fd5b813581811115610f4757600080fd5b8760208260051b8501011115610f5c57600080fd5b602092830195509350610f729186019050610e8a565b90509250925092565b600181811c90821680610f8f57607f821691505b602082108103610faf57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561036857610368610fb5565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60006001820161103b5761103b610fb5565b506001019056fea26469706673582212201e2240a8e54d308470113783bde8d3561549e88f51b196a3780747e19b8b7ba764736f6c63430008120033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101215760003560e01c80637a6d69b4116100ad578063a457c2d711610071578063a457c2d714610266578063a9059cbb14610279578063dd62ed3e1461028c578063e1baae1f1461029f578063f2fde38b146102b257600080fd5b80637a6d69b4146101fa5780638da5cb5b1461021d57806395d89b4114610238578063a2b85d7214610240578063a32e7d461461025357600080fd5b8063313ce567116100f4578063313ce5671461018c57806339509351146101a157806342966c68146101b457806370a08231146101c9578063715018a6146101f257600080fd5b806306fdde0314610126578063095ea7b31461014457806318160ddd1461016757806323b872dd14610179575b600080fd5b61012e6102c5565b60405161013b9190610d7f565b60405180910390f35b610157610152366004610de9565b610357565b604051901515815260200161013b565b6003545b60405190815260200161013b565b610157610187366004610e13565b61036e565b60085460405160ff909116815260200161013b565b6101576101af366004610de9565b610392565b6101c76101c2366004610e4f565b6103be565b005b61016b6101d7366004610e68565b6001600160a01b031660009081526001602052604090205490565b6101c76103cb565b610157610208366004610e68565b60096020526000908152604090205460ff1681565b6000546040516001600160a01b03909116815260200161013b565b61012e610448565b6101c761024e366004610e4f565b610457565b6101c7610261366004610e9a565b6104e4565b610157610274366004610de9565b61058f565b610157610287366004610de9565b61060a565b61016b61029a366004610ecd565b610617565b6101c76102ad366004610ef7565b610642565b6101c76102c0366004610e68565b6106e3565b6060600680546102d490610f7b565b80601f016020809104026020016040519081016040528092919081815260200182805461030090610f7b565b801561034d5780601f106103225761010080835404028352916020019161034d565b820191906000526020600020905b81548152906001019060200180831161033057829003601f168201915b5050505050905090565b60006103643384846107cd565b5060015b92915050565b60003361037c8582856108f1565b610387858585610965565b506001949350505050565b6000336103b48185856103a58383610617565b6103af9190610fcb565b6107cd565b5060019392505050565b6103c83382610b21565b50565b6000546001600160a01b031633146103fe5760405162461bcd60e51b81526004016103f590610fde565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6060600780546102d490610f7b565b6000546001600160a01b031633146104815760405162461bcd60e51b81526004016103f590610fde565b60008111801561049357506003548111155b6104df5760405162461bcd60e51b815260206004820152601e60248201527f496e76616c6964206d617820616d6f756e74207065722061646472657373000060448201526064016103f5565b600455565b6000546001600160a01b0316331461050e5760405162461bcd60e51b81526004016103f590610fde565b6001600160a01b0382166105645760405162461bcd60e51b815260206004820181905260248201527f41646472657373206d757374206e6f74206265207a65726f206164647265737360448201526064016103f5565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000338161059d8286610617565b9050838110156105fd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016103f5565b61038782868684036107cd565b6000610364338484610965565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6000546001600160a01b0316331461066c5760405162461bcd60e51b81526004016103f590610fde565b60005b828110156106dd57816009600086868581811061068e5761068e611013565b90506020020160208101906106a39190610e68565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055806106d581611029565b91505061066f565b50505050565b6000546001600160a01b0316331461070d5760405162461bcd60e51b81526004016103f590610fde565b6001600160a01b0381166107725760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103f5565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831661082f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103f5565b6001600160a01b0382166108905760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103f5565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006108fd8484610617565b905060001981146106dd57818110156109585760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103f5565b6106dd84848484036107cd565b6001600160a01b0383166109c95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103f5565b6001600160a01b038216610a2b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103f5565b610a36838383610c6d565b6001600160a01b03831660009081526001602052604090205481811015610aae5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103f5565b6001600160a01b0380851660008181526001602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610b0e9086815260200190565b60405180910390a36106dd848484610ce9565b6001600160a01b038216610b815760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016103f5565b610b8d82600083610c6d565b6001600160a01b03821660009081526001602052604090205481811015610c015760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016103f5565b6001600160a01b03831660008181526001602090815260408083208686039055600380548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610c6883600084610ce9565b505050565b6001600160a01b03831660009081526009602052604090205460ff16158015610caf57506001600160a01b03821660009081526009602052604090205460ff16155b610c685760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b60448201526064016103f5565b6001600160a01b03821660009081526005602052604090205460ff16610c68576004546001600160a01b0383166000908152600160205260409020541115610c685760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420657863656564206d617820616d6f756e7420706572206164646044820152637265737360e01b60648201526084016103f5565b600060208083528351808285015260005b81811015610dac57858101830151858201604001528201610d90565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610de457600080fd5b919050565b60008060408385031215610dfc57600080fd5b610e0583610dcd565b946020939093013593505050565b600080600060608486031215610e2857600080fd5b610e3184610dcd565b9250610e3f60208501610dcd565b9150604084013590509250925092565b600060208284031215610e6157600080fd5b5035919050565b600060208284031215610e7a57600080fd5b610e8382610dcd565b9392505050565b80358015158114610de457600080fd5b60008060408385031215610ead57600080fd5b610eb683610dcd565b9150610ec460208401610e8a565b90509250929050565b60008060408385031215610ee057600080fd5b610ee983610dcd565b9150610ec460208401610dcd565b600080600060408486031215610f0c57600080fd5b833567ffffffffffffffff80821115610f2457600080fd5b818601915086601f830112610f3857600080fd5b813581811115610f4757600080fd5b8760208260051b8501011115610f5c57600080fd5b602092830195509350610f729186019050610e8a565b90509250925092565b600181811c90821680610f8f57607f821691505b602082108103610faf57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561036857610368610fb5565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60006001820161103b5761103b610fb5565b506001019056fea26469706673582212201e2240a8e54d308470113783bde8d3561549e88f51b196a3780747e19b8b7ba764736f6c63430008120033
Deployed Bytecode Sourcemap
4073:9308:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9189:92;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10070:169;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;10070:169:0;1004:187:1;9493:100:0;9573:12;;9493:100;;;1342:25:1;;;1330:2;1315:18;9493:100:0;1196:177:1;11529:261:0;;;;;;:::i;:::-;;:::i;9393:92::-;9468:9;;9393:92;;9468:9;;;;1853:36:1;;1841:2;1826:18;9393:92:0;1711:184:1;12199:238:0;;;;;;:::i;:::-;;:::i;5541:85::-;;;;;;:::i;:::-;;:::i;:::-;;9601:119;;;;;;:::i;:::-;-1:-1:-1;;;;;9694:18:0;9667:7;9694:18;;;:9;:18;;;;;;;9601:119;2663:148;;;:::i;4486:45::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;2012:87;2058:7;2085:6;2012:87;;-1:-1:-1;;;;;2085:6:0;;;2422:51:1;;2410:2;2395:18;2012:87:0;2276:203:1;9289:96:0;;;:::i;4922:191::-;;;;;;:::i;:::-;;:::i;5121:203::-;;;;;;:::i;:::-;;:::i;12940:436::-;;;;;;:::i;:::-;;:::i;9728:175::-;;;;;;:::i;:::-;;:::i;9911:151::-;;;;;;:::i;:::-;;:::i;5332:201::-;;;;;;:::i;:::-;;:::i;2966:244::-;;;;;;:::i;:::-;;:::i;9189:92::-;9235:13;9268:5;9261:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9189:92;:::o;10070:169::-;10153:4;10170:39;681:10;10193:7;10202:6;10170:8;:39::i;:::-;-1:-1:-1;10227:4:0;10070:169;;;;;:::o;11529:261::-;11626:4;681:10;11684:38;11700:4;681:10;11715:6;11684:15;:38::i;:::-;11733:27;11743:4;11749:2;11753:6;11733:9;:27::i;:::-;-1:-1:-1;11778:4:0;;11529:261;-1:-1:-1;;;;11529:261:0:o;12199:238::-;12287:4;681:10;12343:64;681:10;12359:7;12396:10;12368:25;681:10;12359:7;12368:9;:25::i;:::-;:38;;;;:::i;:::-;12343:8;:64::i;:::-;-1:-1:-1;12425:4:0;;12199:238;-1:-1:-1;;;12199:238:0:o;5541:85::-;5591:27;681:10;5611:6;5591:5;:27::i;:::-;5541:85;:::o;2663:148::-;2058:7;2085:6;-1:-1:-1;;;;;2085:6:0;681:10;2232:23;2224:68;;;;-1:-1:-1;;;2224:68:0;;;;;;;:::i;:::-;;;;;;;;;2770:1:::1;2754:6:::0;;2733:40:::1;::::0;-1:-1:-1;;;;;2754:6:0;;::::1;::::0;2733:40:::1;::::0;2770:1;;2733:40:::1;2801:1;2784:19:::0;;-1:-1:-1;;;;;;2784:19:0::1;::::0;;2663:148::o;9289:96::-;9337:13;9370:7;9363:14;;;;;:::i;4922:191::-;2058:7;2085:6;-1:-1:-1;;;;;2085:6:0;681:10;2232:23;2224:68;;;;-1:-1:-1;;;2224:68:0;;;;;;;:::i;:::-;5009:1:::1;5000:6;:10;:36;;;;;5024:12;;5014:6;:22;;5000:36;4992:79;;;::::0;-1:-1:-1;;;4992:79:0;;5077:2:1;4992:79:0::1;::::0;::::1;5059:21:1::0;5116:2;5096:18;;;5089:30;5155:32;5135:18;;;5128:60;5205:18;;4992:79:0::1;4875:354:1::0;4992:79:0::1;5082:14;:23:::0;4922:191::o;5121:203::-;2058:7;2085:6;-1:-1:-1;;;;;2085:6:0;681:10;2232:23;2224:68;;;;-1:-1:-1;;;2224:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5217:15:0;::::1;5209:60;;;::::0;-1:-1:-1;;;5209:60:0;;5436:2:1;5209:60:0::1;::::0;::::1;5418:21:1::0;;;5455:18;;;5448:30;5514:34;5494:18;;;5487:62;5566:18;;5209:60:0::1;5234:356:1::0;5209:60:0::1;-1:-1:-1::0;;;;;5280:25:0;;;::::1;;::::0;;;:22:::1;:25;::::0;;;;:36;;-1:-1:-1;;5280:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;5121:203::o;12940:436::-;13033:4;681:10;13033:4;13116:25;681:10;13133:7;13116:9;:25::i;:::-;13089:52;;13180:15;13160:16;:35;;13152:85;;;;-1:-1:-1;;;13152:85:0;;5797:2:1;13152:85:0;;;5779:21:1;5836:2;5816:18;;;5809:30;5875:34;5855:18;;;5848:62;-1:-1:-1;;;5926:18:1;;;5919:35;5971:19;;13152:85:0;5595:401:1;13152:85:0;13273:60;13282:5;13289:7;13317:15;13298:16;:34;13273:8;:60::i;9728:175::-;9814:4;9831:42;681:10;9855:9;9866:6;9831:9;:42::i;9911:151::-;-1:-1:-1;;;;;10027:18:0;;;10000:7;10027:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9911:151::o;5332:201::-;2058:7;2085:6;-1:-1:-1;;;;;2085:6:0;681:10;2232:23;2224:68;;;;-1:-1:-1;;;2224:68:0;;;;;;;:::i;:::-;5433:9:::1;5428:98;5448:12:::0;;::::1;5428:98;;;5503:11;5482:12;:18;5495:1;;5497;5495:4;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5482:18:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;5482:18:0;:32;;-1:-1:-1;;5482:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;5462:3;::::1;::::0;::::1;:::i;:::-;;;;5428:98;;;;5332:201:::0;;;:::o;2966:244::-;2058:7;2085:6;-1:-1:-1;;;;;2085:6:0;681:10;2232:23;2224:68;;;;-1:-1:-1;;;2224:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3055:22:0;::::1;3047:73;;;::::0;-1:-1:-1;;;3047:73:0;;6475:2:1;3047:73:0::1;::::0;::::1;6457:21:1::0;6514:2;6494:18;;;6487:30;6553:34;6533:18;;;6526:62;-1:-1:-1;;;6604:18:1;;;6597:36;6650:19;;3047:73:0::1;6273:402:1::0;3047:73:0::1;3157:6;::::0;;3136:38:::1;::::0;-1:-1:-1;;;;;3136:38:0;;::::1;::::0;3157:6;::::1;::::0;3136:38:::1;::::0;::::1;3185:6;:17:::0;;-1:-1:-1;;;;;;3185:17:0::1;-1:-1:-1::0;;;;;3185:17:0;;;::::1;::::0;;;::::1;::::0;;2966:244::o;7072:346::-;-1:-1:-1;;;;;7174:19:0;;7166:68;;;;-1:-1:-1;;;7166:68:0;;6882:2:1;7166:68:0;;;6864:21:1;6921:2;6901:18;;;6894:30;6960:34;6940:18;;;6933:62;-1:-1:-1;;;7011:18:1;;;7004:34;7055:19;;7166:68:0;6680:400:1;7166:68:0;-1:-1:-1;;;;;7253:21:0;;7245:68;;;;-1:-1:-1;;;7245:68:0;;7287:2:1;7245:68:0;;;7269:21:1;7326:2;7306:18;;;7299:30;7365:34;7345:18;;;7338:62;-1:-1:-1;;;7416:18:1;;;7409:32;7458:19;;7245:68:0;7085:398:1;7245:68:0;-1:-1:-1;;;;;7326:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7378:32;;1342:25:1;;;7378:32:0;;1315:18:1;7378:32:0;;;;;;;7072:346;;;:::o;10530:419::-;10631:24;10658:25;10668:5;10675:7;10658:9;:25::i;:::-;10631:52;;-1:-1:-1;;10698:16:0;:37;10694:248;;10780:6;10760:16;:26;;10752:68;;;;-1:-1:-1;;;10752:68:0;;7690:2:1;10752:68:0;;;7672:21:1;7729:2;7709:18;;;7702:30;7768:31;7748:18;;;7741:59;7817:18;;10752:68:0;7488:353:1;10752:68:0;10864:51;10873:5;10880:7;10908:6;10889:16;:25;10864:8;:51::i;8341:840::-;-1:-1:-1;;;;;8472:18:0;;8464:68;;;;-1:-1:-1;;;8464:68:0;;8048:2:1;8464:68:0;;;8030:21:1;8087:2;8067:18;;;8060:30;8126:34;8106:18;;;8099:62;-1:-1:-1;;;8177:18:1;;;8170:35;8222:19;;8464:68:0;7846:401:1;8464:68:0;-1:-1:-1;;;;;8551:16:0;;8543:64;;;;-1:-1:-1;;;8543:64:0;;8454:2:1;8543:64:0;;;8436:21:1;8493:2;8473:18;;;8466:30;8532:34;8512:18;;;8505:62;-1:-1:-1;;;8583:18:1;;;8576:33;8626:19;;8543:64:0;8252:399:1;8543:64:0;8620:38;8641:4;8647:2;8651:6;8620:20;:38::i;:::-;-1:-1:-1;;;;;8693:15:0;;8671:19;8693:15;;;:9;:15;;;;;;8727:21;;;;8719:72;;;;-1:-1:-1;;;8719:72:0;;8858:2:1;8719:72:0;;;8840:21:1;8897:2;8877:18;;;8870:30;8936:34;8916:18;;;8909:62;-1:-1:-1;;;8987:18:1;;;8980:36;9033:19;;8719:72:0;8656:402:1;8719:72:0;-1:-1:-1;;;;;8827:15:0;;;;;;;:9;:15;;;;;;8845:20;;;8827:38;;9045:13;;;;;;;;;;:23;;;;;;9097:26;;;;;;8859:6;1342:25:1;;1330:2;1315:18;;1196:177;9097:26:0;;;;;;;;9136:37;9156:4;9162:2;9166:6;9136:19;:37::i;5959:675::-;-1:-1:-1;;;;;6043:21:0;;6035:67;;;;-1:-1:-1;;;6035:67:0;;9265:2:1;6035:67:0;;;9247:21:1;9304:2;9284:18;;;9277:30;9343:34;9323:18;;;9316:62;-1:-1:-1;;;9394:18:1;;;9387:31;9435:19;;6035:67:0;9063:397:1;6035:67:0;6115:49;6136:7;6153:1;6157:6;6115:20;:49::i;:::-;-1:-1:-1;;;;;6202:18:0;;6177:22;6202:18;;;:9;:18;;;;;;6239:24;;;;6231:71;;;;-1:-1:-1;;;6231:71:0;;9667:2:1;6231:71:0;;;9649:21:1;9706:2;9686:18;;;9679:30;9745:34;9725:18;;;9718:62;-1:-1:-1;;;9796:18:1;;;9789:32;9838:19;;6231:71:0;9465:398:1;6231:71:0;-1:-1:-1;;;;;6338:18:0;;;;;;:9;:18;;;;;;;;6359:23;;;6338:44;;6477:12;:22;;;;;;;6528:37;1342:25:1;;;6338:18:0;;;6528:37;;1315:18:1;6528:37:0;;;;;;;6578:48;6598:7;6615:1;6619:6;6578:19;:48::i;:::-;6024:610;5959:675;;:::o;7426:190::-;-1:-1:-1;;;;;7544:20:0;;;;;;:12;:20;;;;;;;;7543:21;:49;;;;-1:-1:-1;;;;;;7569:23:0;;;;;;:12;:23;;;;;;;;7568:24;7543:49;7535:73;;;;-1:-1:-1;;;7535:73:0;;10070:2:1;7535:73:0;;;10052:21:1;10109:2;10089:18;;;10082:30;-1:-1:-1;;;10128:18:1;;;10121:41;10179:18;;7535:73:0;9868:335:1;7624:246:0;-1:-1:-1;;;;;7728:26:0;;;;;;:22;:26;;;;;;;;7723:140;;7796:14;;-1:-1:-1;;;;;9694:18:0;;9667:7;9694:18;;;:9;:18;;;;;;7779:31;;7771:80;;;;-1:-1:-1;;;7771:80:0;;10410:2:1;7771:80:0;;;10392:21:1;10449:2;10429:18;;;10422:30;10488:34;10468:18;;;10461:62;-1:-1:-1;;;10539:18:1;;;10532:34;10583:19;;7771:80:0;10208:400:1;14:548;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;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1378:328::-;1455:6;1463;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1563:29;1582:9;1563:29;:::i;:::-;1553:39;;1611:38;1645:2;1634:9;1630:18;1611:38;:::i;:::-;1601:48;;1696:2;1685:9;1681:18;1668:32;1658:42;;1378:328;;;;;:::o;1900:180::-;1959:6;2012:2;2000:9;1991:7;1987:23;1983:32;1980:52;;;2028:1;2025;2018:12;1980:52;-1:-1:-1;2051:23:1;;1900:180;-1:-1:-1;1900:180:1:o;2085:186::-;2144:6;2197:2;2185:9;2176:7;2172:23;2168:32;2165:52;;;2213:1;2210;2203:12;2165:52;2236:29;2255:9;2236:29;:::i;:::-;2226:39;2085:186;-1:-1:-1;;;2085:186:1:o;2484:160::-;2549:20;;2605:13;;2598:21;2588:32;;2578:60;;2634:1;2631;2624:12;2649:254;2714:6;2722;2775:2;2763:9;2754:7;2750:23;2746:32;2743:52;;;2791:1;2788;2781:12;2743:52;2814:29;2833:9;2814:29;:::i;:::-;2804:39;;2862:35;2893:2;2882:9;2878:18;2862:35;:::i;:::-;2852:45;;2649:254;;;;;:::o;2908:260::-;2976:6;2984;3037:2;3025:9;3016:7;3012:23;3008:32;3005:52;;;3053:1;3050;3043:12;3005:52;3076:29;3095:9;3076:29;:::i;:::-;3066:39;;3124:38;3158:2;3147:9;3143:18;3124:38;:::i;3173:689::-;3265:6;3273;3281;3334:2;3322:9;3313:7;3309:23;3305:32;3302:52;;;3350:1;3347;3340:12;3302:52;3390:9;3377:23;3419:18;3460:2;3452:6;3449:14;3446:34;;;3476:1;3473;3466:12;3446:34;3514:6;3503:9;3499:22;3489:32;;3559:7;3552:4;3548:2;3544:13;3540:27;3530:55;;3581:1;3578;3571:12;3530:55;3621:2;3608:16;3647:2;3639:6;3636:14;3633:34;;;3663:1;3660;3653:12;3633:34;3718:7;3711:4;3701:6;3698:1;3694:14;3690:2;3686:23;3682:34;3679:47;3676:67;;;3739:1;3736;3729:12;3676:67;3770:4;3762:13;;;;-1:-1:-1;3794:6:1;-1:-1:-1;3819:37:1;;3835:20;;;-1:-1:-1;3819:37:1;:::i;:::-;3809:47;;3173:689;;;;;:::o;3867:380::-;3946:1;3942:12;;;;3989;;;4010:61;;4064:4;4056:6;4052:17;4042:27;;4010:61;4117:2;4109:6;4106:14;4086:18;4083:38;4080:161;;4163:10;4158:3;4154:20;4151:1;4144:31;4198:4;4195:1;4188:15;4226:4;4223:1;4216:15;4080:161;;3867:380;;;:::o;4252:127::-;4313:10;4308:3;4304:20;4301:1;4294:31;4344:4;4341:1;4334:15;4368:4;4365:1;4358:15;4384:125;4449:9;;;4470:10;;;4467:36;;;4483:18;;:::i;4514:356::-;4716:2;4698:21;;;4735:18;;;4728:30;4794:34;4789:2;4774:18;;4767:62;4861:2;4846:18;;4514:356::o;6001:127::-;6062:10;6057:3;6053:20;6050:1;6043:31;6093:4;6090:1;6083:15;6117:4;6114:1;6107:15;6133:135;6172:3;6193:17;;;6190:43;;6213:18;;:::i;:::-;-1:-1:-1;6260:1:1;6249:13;;6133:135::o
Swarm Source
ipfs://1e2240a8e54d308470113783bde8d3561549e88f51b196a3780747e19b8b7ba7
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.