Token Frog Frens Spawn v2

Overview ERC20

Price
$0.00 @ 0.000000 AVAX
Fully Diluted Market Cap
Total Supply:
500,000,000 SPAWN

Holders:
206 addresses

Transfers:
-

Contract:
0x52628F8Ea702c51C19B43897D67e4b2845a71B080x52628F8Ea702c51C19B43897D67e4b2845a71B08

Decimals:
18

Social Profiles:
Not Available, Update ?

Loading
[ Download CSV Export  ] 
Loading
[ Download CSV Export  ] 
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
FrogFrensSpawnV2

Compiler Version
v0.8.3+commit.8d00100c

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 3 of 6: FrogFrensSpawn.sol
// SPDX-License-Identifier: MIT
/**
* ______              ______                   _____                            
* |  ___|             |  ___|                 /  ___|                           
* | |_ _ __ ___   __ _| |_ _ __ ___ _ __  ___ \ `--. _ __   __ ___      ___ __  
* |  _| '__/ _ \ / _` |  _| '__/ _ \ '_ \/ __| `--. \ '_ \ / _` \ \ /\ / / '_ \ 
* | | | | | (_) | (_| | | | | |  __/ | | \__ \/\__/ / |_) | (_| |\ V  V /| | | |
* \_| |_|  \___/ \__, \_| |_|  \___|_| |_|___/\____/| .__/ \__,_| \_/\_/ |_| |_|
*                 __/ |                             | |                         
*                |___/                              |_|                         
*/

pragma solidity 0.8.3;

import "./ERC20.sol";
import "./IERC20.sol";
import "./IERC20Metadata.sol";
import "./Context.sol";
import "./Ownable.sol";

contract FrogFrensSpawnV2 is Context, IERC20, IERC20Metadata, Ownable {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address=>bool) isBlacklisted;
    uint256 private constant maxSupply = 5 * 10**8 * 1e18; // 500,000,000 Tokens

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    address public _burnWallet;
    address public _feeWallet;
    uint8 public _percentageBurn;
    uint8 public _percentageFee;

    constructor(string memory name_, string memory symbol_, address feeWallet_, uint8 percentageBurn_, uint8 percentageFee_) {
        _name = name_;
        _symbol = symbol_;
        _burnWallet = 0x000000000000000000000000000000000000dEaD;
        _feeWallet = feeWallet_;
        _percentageBurn = percentageBurn_;
        _percentageFee = percentageFee_;
        _mint(msg.sender, maxSupply);
    }
    
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function feePercentage() public view virtual returns (uint8) {
        return _percentageFee;
    }

    function burnPercentage() public view virtual returns (uint8) {
        return _percentageBurn;
    }
    
    function setPercentageBurn(uint8 _newPercentageBurn) public onlyOwner {
        _percentageBurn = _newPercentageBurn;
    }

    function setPercentageFee(uint8 _newPercentageFee) public onlyOwner {
        _percentageFee = _newPercentageFee;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }
    
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }
    
    function balanceOf(address account) public view virtual 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;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
            unchecked {
                _approve(sender, _msgSender(), currentAllowance - amount);
            }
        }

        _transfer(sender, recipient, amount);

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }
    
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }
    
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(!isBlacklisted[recipient], "Recipient is blacklisted");
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        uint256 amountToBurn = amount * _percentageBurn / 100;
        uint256 FeeAmount = amount * _percentageFee / 100;
        amount = amount - (FeeAmount+amountToBurn);
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;
        _balances[_burnWallet] += amountToBurn;
        _balances[_feeWallet] += FeeAmount;

        emit Transfer(sender, recipient, amount);
        emit Transfer(sender, _burnWallet, amountToBurn);
        emit Transfer(sender, _feeWallet, FeeAmount);

        _afterTokenTransfer(sender, recipient, amount);
    }
    
    function _mint(address account, uint256 amount) internal virtual {
        require(!isBlacklisted[account], "Account is blacklisted");
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }
    
    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;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }
    
    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 from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function blackList(address _user) public onlyOwner {
        require(!isBlacklisted[_user], "user already blacklisted");
        isBlacklisted[_user] = true;
    }

    function removeFromBlacklist(address _user) public onlyOwner {
        require(isBlacklisted[_user], "User already whitelisted");
        isBlacklisted[_user] = false;
    }
    
}

File 1 of 6: Context.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

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) {
        return msg.data;
    }
}

File 2 of 6: ERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC20/ERC20.sol)

pragma solidity ^0.8.0;

import "./IERC20.sol";
import "./IERC20Metadata.sol";
import "./Context.sol";

/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin Contracts guidelines: functions revert
 * instead returning `false` on failure. This behavior is nonetheless
 * conventional and does not conflict with the expectations of ERC20
 * applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context, IERC20, IERC20Metadata {
    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}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * 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 value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 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:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `sender` to `recipient`.
     *
     * 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:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, 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;
        _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;
        }
        _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);
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

File 4 of 6: IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC20/IERC20.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

File 5 of 6: IERC20Metadata.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.0;

import "./IERC20.sol";

/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

File 6 of 6: Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)

pragma solidity ^0.8.0;

import "./Context.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() {
        _transferOwnership(_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 {
        _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);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"address","name":"feeWallet_","type":"address"},{"internalType":"uint8","name":"percentageBurn_","type":"uint8"},{"internalType":"uint8","name":"percentageFee_","type":"uint8"}],"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":[],"name":"_burnWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_feeWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_percentageBurn","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_percentageFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"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":"address","name":"_user","type":"address"}],"name":"blackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burnPercentage","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"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":"feePercentage","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"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":"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":[{"internalType":"address","name":"_user","type":"address"}],"name":"removeFromBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_newPercentageBurn","type":"uint8"}],"name":"setPercentageBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_newPercentageFee","type":"uint8"}],"name":"setPercentageFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b506040516200153b3803806200153b8339810160408190526200003491620003f3565b6200003f33620000df565b84516200005490600590602088019062000283565b5083516200006a90600690602087019062000283565b50600780546001600160a01b03191661dead1790556008805460ff838116600160a81b0260ff60a81b19918616600160a01b026001600160a81b03199093166001600160a01b038816179290921716179055620000d4336b019d971e4fe8401e740000006200012f565b505050505062000518565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03821660009081526003602052604090205460ff16156200019e5760405162461bcd60e51b815260206004820152601660248201527f4163636f756e7420697320626c61636b6c69737465640000000000000000000060448201526064015b60405180910390fd5b6001600160a01b038216620001f65760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000195565b80600460008282546200020a9190620004a0565b90915550506001600160a01b0382166000908152600160205260408120805483929062000239908490620004a0565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b8280546200029190620004c5565b90600052602060002090601f016020900481019282620002b5576000855562000300565b82601f10620002d057805160ff191683800117855562000300565b8280016001018555821562000300579182015b8281111562000300578251825591602001919060010190620002e3565b506200030e92915062000312565b5090565b5b808211156200030e576000815560010162000313565b600082601f8301126200033a578081fd5b81516001600160401b038082111562000357576200035762000502565b604051601f8301601f19908116603f0116810190828211818310171562000382576200038262000502565b816040528381526020925086838588010111156200039e578485fd5b8491505b83821015620003c15785820183015181830184015290820190620003a2565b83821115620003d257848385830101525b9695505050505050565b805160ff81168114620003ee57600080fd5b919050565b600080600080600060a086880312156200040b578081fd5b85516001600160401b038082111562000422578283fd5b6200043089838a0162000329565b9650602088015191508082111562000446578283fd5b50620004558882890162000329565b604088015190955090506001600160a01b038116811462000474578182fd5b92506200048460608701620003dc565b91506200049460808701620003dc565b90509295509295909350565b60008219821115620004c057634e487b7160e01b81526011600452602481fd5b500190565b600181811c90821680620004da57607f821691505b60208210811415620004fc57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b61101380620005286000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c8063715018a6116100c3578063a258a2e51161007c578063a258a2e5146102d2578063a457c2d7146102e6578063a9059cbb146102f9578063dd62ed3e1461030c578063f01f20df14610345578063f2fde38b1461035857610158565b8063715018a6146102775780638c369d3b1461027f5780638da5cb5b1461029257806395d89b41146102a35780639c92be39146102ab578063a001ecdd146102bf57610158565b80634838d165116101155780634838d165146101eb5780634a16544114610200578063537df3b614610213578063659419a4146102265780636f4cfa381461025157806370a082311461026457610158565b806306fdde031461015d578063095ea7b31461017b57806318160ddd1461019e57806323b872dd146101b0578063313ce567146101c357806339509351146101d8575b600080fd5b61016561036b565b6040516101729190610e96565b60405180910390f35b61018e610189366004610e4c565b6103fd565b6040519015158152602001610172565b6004545b604051908152602001610172565b61018e6101be366004610e11565b610413565b60125b60405160ff9091168152602001610172565b61018e6101e6366004610e4c565b6104c9565b6101fe6101f9366004610dbe565b610505565b005b6101fe61020e366004610e75565b6105bc565b6101fe610221366004610dbe565b610606565b600854610239906001600160a01b031681565b6040516001600160a01b039091168152602001610172565b6101fe61025f366004610e75565b6106b9565b6101a2610272366004610dbe565b610703565b6101fe610722565b600754610239906001600160a01b031681565b6000546001600160a01b0316610239565b610165610758565b6008546101c690600160a01b900460ff1681565b6101c6600854600160a81b900460ff1690565b6008546101c690600160a81b900460ff1681565b61018e6102f4366004610e4c565b610767565b61018e610307366004610e4c565b610800565b6101a261031a366004610ddf565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6101c6600854600160a01b900460ff1690565b6101fe610366366004610dbe565b61080d565b60606005805461037a90610f8c565b80601f01602080910402602001604051908101604052809291908181526020018280546103a690610f8c565b80156103f35780601f106103c8576101008083540402835291602001916103f3565b820191906000526020600020905b8154815290600101906020018083116103d657829003601f168201915b5050505050905090565b600061040a3384846108a8565b50600192915050565b6001600160a01b038316600090815260026020908152604080832033845290915281205460001981146104b357828110156104a65760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6104b385338584036108a8565b6104be8585856109cc565b506001949350505050565b3360008181526002602090815260408083206001600160a01b0387168452909152812054909161040a918590610500908690610f1e565b6108a8565b6000546001600160a01b0316331461052f5760405162461bcd60e51b815260040161049d90610ee9565b6001600160a01b03811660009081526003602052604090205460ff16156105985760405162461bcd60e51b815260206004820152601860248201527f7573657220616c726561647920626c61636b6c69737465640000000000000000604482015260640161049d565b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b6000546001600160a01b031633146105e65760405162461bcd60e51b815260040161049d90610ee9565b6008805460ff909216600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b031633146106305760405162461bcd60e51b815260040161049d90610ee9565b6001600160a01b03811660009081526003602052604090205460ff166106985760405162461bcd60e51b815260206004820152601860248201527f5573657220616c72656164792077686974656c69737465640000000000000000604482015260640161049d565b6001600160a01b03166000908152600360205260409020805460ff19169055565b6000546001600160a01b031633146106e35760405162461bcd60e51b815260040161049d90610ee9565b6008805460ff909216600160a81b0260ff60a81b19909216919091179055565b6001600160a01b0381166000908152600160205260409020545b919050565b6000546001600160a01b0316331461074c5760405162461bcd60e51b815260040161049d90610ee9565b6107566000610d57565b565b60606006805461037a90610f8c565b3360009081526002602090815260408083206001600160a01b0386168452909152812054828110156107e95760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161049d565b6107f633858584036108a8565b5060019392505050565b600061040a3384846109cc565b6000546001600160a01b031633146108375760405162461bcd60e51b815260040161049d90610ee9565b6001600160a01b03811661089c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161049d565b6108a581610d57565b50565b6001600160a01b03831661090a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161049d565b6001600160a01b03821661096b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161049d565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03821660009081526003602052604090205460ff1615610a355760405162461bcd60e51b815260206004820152601860248201527f526563697069656e7420697320626c61636b6c69737465640000000000000000604482015260640161049d565b6001600160a01b038316610a995760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161049d565b6001600160a01b038216610afb5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161049d565b6001600160a01b038316600090815260016020526040812054600854909190606490610b3190600160a01b900460ff1685610f56565b610b3b9190610f36565b600854909150600090606490610b5b90600160a81b900460ff1686610f56565b610b659190610f36565b9050610b718282610f1e565b610b7b9085610f75565b935083831015610bdc5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161049d565b6001600160a01b03808716600090815260016020526040808220878703905591871681529081208054869290610c13908490610f1e565b90915550506007546001600160a01b031660009081526001602052604081208054849290610c42908490610f1e565b90915550506008546001600160a01b031660009081526001602052604081208054839290610c71908490610f1e565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef86604051610cbd91815260200190565b60405180910390a36007546040518381526001600160a01b03918216918816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a36008546040518281526001600160a01b03918216918816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b038116811461071d57600080fd5b600060208284031215610dcf578081fd5b610dd882610da7565b9392505050565b60008060408385031215610df1578081fd5b610dfa83610da7565b9150610e0860208401610da7565b90509250929050565b600080600060608486031215610e25578081fd5b610e2e84610da7565b9250610e3c60208501610da7565b9150604084013590509250925092565b60008060408385031215610e5e578182fd5b610e6783610da7565b946020939093013593505050565b600060208284031215610e86578081fd5b813560ff81168114610dd8578182fd5b6000602080835283518082850152825b81811015610ec257858101830151858201604001528201610ea6565b81811115610ed35783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115610f3157610f31610fc7565b500190565b600082610f5157634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615610f7057610f70610fc7565b500290565b600082821015610f8757610f87610fc7565b500390565b600181811c90821680610fa057607f821691505b60208210811415610fc157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea26469706673582212206867d8ab5536c2d4cef9498c1224c7cae2deb4f909090977d88255175094ae6564736f6c6343000803003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000d18b4d25ab1266d86f17f8fd6f1b3110ba7765c1000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000001346726f67204672656e7320537061776e207632000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005535041574e000000000000000000000000000000000000000000000000000000

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

00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000d18b4d25ab1266d86f17f8fd6f1b3110ba7765c1000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000001346726f67204672656e7320537061776e207632000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005535041574e000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name_ (string): Frog Frens Spawn v2
Arg [1] : symbol_ (string): SPAWN
Arg [2] : feeWallet_ (address): 0xd18b4d25ab1266d86f17f8fd6f1b3110ba7765c1
Arg [3] : percentageBurn_ (uint8): 10
Arg [4] : percentageFee_ (uint8): 5

-----Encoded View---------------
9 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [2] : 000000000000000000000000d18b4d25ab1266d86f17f8fd6f1b3110ba7765c1
Arg [3] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000013
Arg [6] : 46726f67204672656e7320537061776e20763200000000000000000000000000
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [8] : 535041574e000000000000000000000000000000000000000000000000000000


Deployed ByteCode Sourcemap

837:6900:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1790:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3157:166;;;;;;:::i;:::-;;:::i;:::-;;;1947:14:6;;1940:22;1922:41;;1910:2;1895:18;3157:166:2;1877:92:6;2573:106:2;2660:12;;2573:106;;;7395:25:6;;;7383:2;7368:18;2573:106:2;7350:76:6;3329:557:2;;;;;;:::i;:::-;;:::i;2472:91::-;2554:2;2472:91;;;7603:4:6;7591:17;;;7573:36;;7561:2;7546:18;2472:91:2;7528:87:6;3892:212:2;;;;;;:::i;:::-;;:::i;7388:163::-;;;;;;:::i;:::-;;:::i;:::-;;2110:123;;;;;;:::i;:::-;;:::i;7557:173::-;;;;;;:::i;:::-;;:::i;1282:25::-;;;;;-1:-1:-1;;;;;1282:25:2;;;;;;-1:-1:-1;;;;;1738:32:6;;;1720:51;;1708:2;1693:18;1282:25:2;1675:102:6;2239:119:2;;;;;;:::i;:::-;;:::i;2689:125::-;;;;;;:::i;:::-;;:::i;1661:101:5:-;;;:::i;1250:26:2:-;;;;;-1:-1:-1;;;;;1250:26:2;;;1029:85:5;1075:7;1101:6;-1:-1:-1;;;;;1101:6:5;1029:85;;2364:102:2;;;:::i;1313:28::-;;;;;-1:-1:-1;;;1313:28:2;;;;;;1894:99;;1972:14;;-1:-1:-1;;;1972:14:2;;;;;1894:99;1347:27;;;;;-1:-1:-1;;;1347:27:2;;;;;;4114:405;;;;;;:::i;:::-;;:::i;2820:172::-;;;;;;:::i;:::-;;:::i;2998:149::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3113:18:2;;;3087:7;3113:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2998:149;1999:101;;2078:15;;-1:-1:-1;;;2078:15:2;;;;;1999:101;1911:198:5;;;;;;:::i;:::-;;:::i;1790:98:2:-;1844:13;1876:5;1869:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1790:98;:::o;3157:166::-;3240:4;3256:39;719:10:0;3279:7:2;3288:6;3256:8;:39::i;:::-;-1:-1:-1;3312:4:2;3157:166;;;;:::o;3329:557::-;-1:-1:-1;;;;;3508:19:2;;3465:4;3508:19;;;:11;:19;;;;;;;;719:10:0;3508:33:2;;;;;;;;-1:-1:-1;;3555:37:2;;3551:260;;3636:6;3616:16;:26;;3608:79;;;;-1:-1:-1;;;3608:79:2;;5464:2:6;3608:79:2;;;5446:21:6;5503:2;5483:18;;;5476:30;5542:34;5522:18;;;5515:62;-1:-1:-1;;;5593:18:6;;;5586:38;5641:19;;3608:79:2;;;;;;;;;3729:57;3738:6;719:10:0;3779:6:2;3760:16;:25;3729:8;:57::i;:::-;3821:36;3831:6;3839:9;3850:6;3821:9;:36::i;:::-;-1:-1:-1;3875:4:2;;3329:557;-1:-1:-1;;;;3329:557:2:o;3892:212::-;719:10:0;3980:4:2;4028:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4028:34:2;;;;;;;;;;3980:4;;3996:80;;4019:7;;4028:47;;4065:10;;4028:47;:::i;:::-;3996:8;:80::i;7388:163::-;1075:7:5;1101:6;-1:-1:-1;;;;;1101:6:5;719:10:0;1241:23:5;1233:68;;;;-1:-1:-1;;;1233:68:5;;;;;;;:::i;:::-;-1:-1:-1;;;;;7458:20:2;::::1;;::::0;;;:13:::1;:20;::::0;;;;;::::1;;7457:21;7449:58;;;::::0;-1:-1:-1;;;7449:58:2;;5111:2:6;7449:58:2::1;::::0;::::1;5093:21:6::0;5150:2;5130:18;;;5123:30;5189:26;5169:18;;;5162:54;5233:18;;7449:58:2::1;5083:174:6::0;7449:58:2::1;-1:-1:-1::0;;;;;7517:20:2::1;;::::0;;;:13:::1;:20;::::0;;;;:27;;-1:-1:-1;;7517:27:2::1;7540:4;7517:27;::::0;;7388:163::o;2110:123::-;1075:7:5;1101:6;-1:-1:-1;;;;;1101:6:5;719:10:0;1241:23:5;1233:68;;;;-1:-1:-1;;;1233:68:5;;;;;;;:::i;:::-;2190:15:2::1;:36:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;;2190:36:2::1;-1:-1:-1::0;;;;2190:36:2;;::::1;::::0;;;::::1;::::0;;2110:123::o;7557:173::-;1075:7:5;1101:6;-1:-1:-1;;;;;1101:6:5;719:10:0;1241:23:5;1233:68;;;;-1:-1:-1;;;1233:68:5;;;;;;;:::i;:::-;-1:-1:-1;;;;;7636:20:2;::::1;;::::0;;;:13:::1;:20;::::0;;;;;::::1;;7628:57;;;::::0;-1:-1:-1;;;7628:57:2;;3188:2:6;7628:57:2::1;::::0;::::1;3170:21:6::0;3227:2;3207:18;;;3200:30;3266:26;3246:18;;;3239:54;3310:18;;7628:57:2::1;3160:174:6::0;7628:57:2::1;-1:-1:-1::0;;;;;7695:20:2::1;7718:5;7695:20:::0;;;:13:::1;:20;::::0;;;;:28;;-1:-1:-1;;7695:28:2::1;::::0;;7557:173::o;2239:119::-;1075:7:5;1101:6;-1:-1:-1;;;;;1101:6:5;719:10:0;1241:23:5;1233:68;;;;-1:-1:-1;;;1233:68:5;;;;;;;:::i;:::-;2317:14:2::1;:34:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;;2317:34:2::1;-1:-1:-1::0;;;;2317:34:2;;::::1;::::0;;;::::1;::::0;;2239:119::o;2689:125::-;-1:-1:-1;;;;;2789:18:2;;2763:7;2789:18;;;:9;:18;;;;;;2689:125;;;;:::o;1661:101:5:-;1075:7;1101:6;-1:-1:-1;;;;;1101:6:5;719:10:0;1241:23:5;1233:68;;;;-1:-1:-1;;;1233:68:5;;;;;;;:::i;:::-;1725:30:::1;1752:1;1725:18;:30::i;:::-;1661:101::o:0;2364:102:2:-;2420:13;2452:7;2445:14;;;;;:::i;4114:405::-;719:10:0;4207:4:2;4250:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4250:34:2;;;;;;;;;;4302:35;;;;4294:85;;;;-1:-1:-1;;;4294:85:2;;7045:2:6;4294:85:2;;;7027:21:6;7084:2;7064:18;;;7057:30;7123:34;7103:18;;;7096:62;-1:-1:-1;;;7174:18:6;;;7167:35;7219:19;;4294:85:2;7017:227:6;4294:85:2;4413:67;719:10:0;4436:7:2;4464:15;4445:16;:34;4413:8;:67::i;:::-;-1:-1:-1;4508:4:2;;4114:405;-1:-1:-1;;;4114:405:2:o;2820:172::-;2906:4;2922:42;719:10:0;2946:9:2;2957:6;2922:9;:42::i;1911:198:5:-;1075:7;1101:6;-1:-1:-1;;;;;1101:6:5;719:10:0;1241:23:5;1233:68;;;;-1:-1:-1;;;1233:68:5;;;;;;;:::i;:::-;-1:-1:-1;;;;;1999:22:5;::::1;1991:73;;;::::0;-1:-1:-1;;;1991:73:5;;3541:2:6;1991:73:5::1;::::0;::::1;3523:21:6::0;3580:2;3560:18;;;3553:30;3619:34;3599:18;;;3592:62;-1:-1:-1;;;3670:18:6;;;3663:36;3716:19;;1991:73:5::1;3513:228:6::0;1991:73:5::1;2074:28;2093:8;2074:18;:28::i;:::-;1911:198:::0;:::o;6755:370:2:-;-1:-1:-1;;;;;6886:19:2;;6878:68;;;;-1:-1:-1;;;6878:68:2;;6640:2:6;6878:68:2;;;6622:21:6;6679:2;6659:18;;;6652:30;6718:34;6698:18;;;6691:62;-1:-1:-1;;;6769:18:6;;;6762:34;6813:19;;6878:68:2;6612:226:6;6878:68:2;-1:-1:-1;;;;;6964:21:2;;6956:68;;;;-1:-1:-1;;;6956:68:2;;3948:2:6;6956:68:2;;;3930:21:6;3987:2;3967:18;;;3960:30;4026:34;4006:18;;;3999:62;-1:-1:-1;;;4077:18:6;;;4070:32;4119:19;;6956:68:2;3920:224:6;6956:68:2;-1:-1:-1;;;;;7035:18:2;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7086:32;;7395:25:6;;;7086:32:2;;7368:18:6;7086:32:2;;;;;;;6755:370;;;:::o;4529:1163::-;-1:-1:-1;;;;;4665:24:2;;;;;;:13;:24;;;;;;;;4664:25;4656:62;;;;-1:-1:-1;;;4656:62:2;;4351:2:6;4656:62:2;;;4333:21:6;4390:2;4370:18;;;4363:30;4429:26;4409:18;;;4402:54;4473:18;;4656:62:2;4323:174:6;4656:62:2;-1:-1:-1;;;;;4736:20:2;;4728:70;;;;-1:-1:-1;;;4728:70:2;;6234:2:6;4728:70:2;;;6216:21:6;6273:2;6253:18;;;6246:30;6312:34;6292:18;;;6285:62;-1:-1:-1;;;6363:18:6;;;6356:35;6408:19;;4728:70:2;6206:227:6;4728:70:2;-1:-1:-1;;;;;4816:23:2;;4808:71;;;;-1:-1:-1;;;4808:71:2;;2784:2:6;4808:71:2;;;2766:21:6;2823:2;2803:18;;;2796:30;2862:34;2842:18;;;2835:62;-1:-1:-1;;;2913:18:6;;;2906:33;2956:19;;4808:71:2;2756:225:6;4808:71:2;-1:-1:-1;;;;;4972:17:2;;4948:21;4972:17;;;:9;:17;;;;;;5031:15;;4972:17;;4948:21;5049:3;;5022:24;;-1:-1:-1;;;5031:15:2;;;;5022:6;:24;:::i;:::-;:30;;;;:::i;:::-;5091:14;;4999:53;;-1:-1:-1;5062:17:2;;5108:3;;5082:23;;-1:-1:-1;;;5091:14:2;;;;5082:6;:23;:::i;:::-;:29;;;;:::i;:::-;5062:49;-1:-1:-1;5140:22:2;5150:12;5062:49;5140:22;:::i;:::-;5130:33;;:6;:33;:::i;:::-;5121:42;;5198:6;5181:13;:23;;5173:74;;;;-1:-1:-1;;;5173:74:2;;4704:2:6;5173:74:2;;;4686:21:6;4743:2;4723:18;;;4716:30;4782:34;4762:18;;;4755:62;-1:-1:-1;;;4833:18:6;;;4826:36;4879:19;;5173:74:2;4676:228:6;5173:74:2;-1:-1:-1;;;;;5281:17:2;;;;;;;:9;:17;;;;;;5301:22;;;5281:42;;5343:20;;;;;;;;:30;;5317:6;;5281:17;5343:30;;5317:6;;5343:30;:::i;:::-;;;;-1:-1:-1;;5393:11:2;;-1:-1:-1;;;;;5393:11:2;5383:22;;;;:9;:22;;;;;:38;;5409:12;;5383:22;:38;;5409:12;;5383:38;:::i;:::-;;;;-1:-1:-1;;5441:10:2;;-1:-1:-1;;;;;5441:10:2;5431:21;;;;:9;:21;;;;;:34;;5456:9;;5431:21;:34;;5456:9;;5431:34;:::i;:::-;;;;;;;;5498:9;-1:-1:-1;;;;;5481:35:2;5490:6;-1:-1:-1;;;;;5481:35:2;;5509:6;5481:35;;;;7395:25:6;;7383:2;7368:18;;7350:76;5481:35:2;;;;;;;;5548:11;;5531:43;;7395:25:6;;;-1:-1:-1;;;;;5548:11:2;;;;5531:43;;;;;7383:2:6;7368:18;5531:43:2;;;;;;;5606:10;;5589:39;;7395:25:6;;;-1:-1:-1;;;;;5606:10:2;;;;5589:39;;;;;7383:2:6;7368:18;5589:39:2;;;;;;;4529:1163;;;;;;:::o;2263:187:5:-;2336:16;2355:6;;-1:-1:-1;;;;;2371:17:5;;;-1:-1:-1;;;;;;2371:17:5;;;;;;2403:40;;2355:6;;;;;;;2403:40;;2336:16;2403:40;2263:187;;:::o;14:173:6:-;82:20;;-1:-1:-1;;;;;131:31:6;;121:42;;111:2;;177:1;174;167:12;192:196;;304:2;292:9;283:7;279:23;275:32;272:2;;;325:6;317;310:22;272:2;353:29;372:9;353:29;:::i;:::-;343:39;262:126;-1:-1:-1;;;262:126:6:o;393:270::-;;;522:2;510:9;501:7;497:23;493:32;490:2;;;543:6;535;528:22;490:2;571:29;590:9;571:29;:::i;:::-;561:39;;619:38;653:2;642:9;638:18;619:38;:::i;:::-;609:48;;480:183;;;;;:::o;668:338::-;;;;814:2;802:9;793:7;789:23;785:32;782:2;;;835:6;827;820:22;782:2;863:29;882:9;863:29;:::i;:::-;853:39;;911:38;945:2;934:9;930:18;911:38;:::i;:::-;901:48;;996:2;985:9;981:18;968:32;958:42;;772:234;;;;;:::o;1011:264::-;;;1140:2;1128:9;1119:7;1115:23;1111:32;1108:2;;;1161:6;1153;1146:22;1108:2;1189:29;1208:9;1189:29;:::i;:::-;1179:39;1265:2;1250:18;;;;1237:32;;-1:-1:-1;;;1098:177:6:o;1280:289::-;;1390:2;1378:9;1369:7;1365:23;1361:32;1358:2;;;1411:6;1403;1396:22;1358:2;1455:9;1442:23;1505:4;1498:5;1494:16;1487:5;1484:27;1474:2;;1530:6;1522;1515:22;1974:603;;2115:2;2144;2133:9;2126:21;2176:6;2170:13;2219:6;2214:2;2203:9;2199:18;2192:34;2244:4;2257:140;2271:6;2268:1;2265:13;2257:140;;;2366:14;;;2362:23;;2356:30;2332:17;;;2351:2;2328:26;2321:66;2286:10;;2257:140;;;2415:6;2412:1;2409:13;2406:2;;;2485:4;2480:2;2471:6;2460:9;2456:22;2452:31;2445:45;2406:2;-1:-1:-1;2561:2:6;2540:15;-1:-1:-1;;2536:29:6;2521:45;;;;2568:2;2517:54;;2095:482;-1:-1:-1;;;2095:482:6:o;5671:356::-;5873:2;5855:21;;;5892:18;;;5885:30;5951:34;5946:2;5931:18;;5924:62;6018:2;6003:18;;5845:182::o;7620:128::-;;7691:1;7687:6;7684:1;7681:13;7678:2;;;7697:18;;:::i;:::-;-1:-1:-1;7733:9:6;;7668:80::o;7753:217::-;;7819:1;7809:2;;-1:-1:-1;;;7844:31:6;;7898:4;7895:1;7888:15;7926:4;7851:1;7916:15;7809:2;-1:-1:-1;7955:9:6;;7799:171::o;7975:168::-;;8081:1;8077;8073:6;8069:14;8066:1;8063:21;8058:1;8051:9;8044:17;8040:45;8037:2;;;8088:18;;:::i;:::-;-1:-1:-1;8128:9:6;;8027:116::o;8148:125::-;;8216:1;8213;8210:8;8207:2;;;8221:18;;:::i;:::-;-1:-1:-1;8258:9:6;;8197:76::o;8278:380::-;8357:1;8353:12;;;;8400;;;8421:2;;8475:4;8467:6;8463:17;8453:27;;8421:2;8528;8520:6;8517:14;8497:18;8494:38;8491:2;;;8574:10;8569:3;8565:20;8562:1;8555:31;8609:4;8606:1;8599:15;8637:4;8634:1;8627:15;8491:2;;8333:325;;;:::o;8663:127::-;8724:10;8719:3;8715:20;8712:1;8705:31;8755:4;8752:1;8745:15;8779:4;8776:1;8769:15

Swarm Source

ipfs://6867d8ab5536c2d4cef9498c1224c7cae2deb4f909090977d88255175094ae65
Loading