Token Memecoin

 

Overview ERC-20

Price
$0.00 @ 0.000000 MATIC
Fully Diluted Market Cap
Total Supply:
71,311,087.679698 MEM

Holders:
1,475 addresses

Transfers:
-

Contract:
0x42dbbd5ae373fea2fc320f62d44c058522bb37580x42dbBd5ae373FEA2FC320F62d44C058522Bb3758

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
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MemecoinMatic

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-06-10
*/

// File: @openzeppelin/contracts/token/ERC20/IERC20.sol

// SPDX-License-Identifier: MIT

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: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol



pragma solidity ^0.8.0;


/**
 * @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: @openzeppelin/contracts/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) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

// File: @openzeppelin/contracts/token/ERC20/ERC20.sol



pragma solidity ^0.8.0;




/**
 * @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 guidelines: functions revert instead
 * of 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 defaut 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");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

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

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

        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(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:
     *
     * - `to` 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);
    }

    /**
     * @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");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;

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

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

// File: @openzeppelin/contracts/access/Ownable.sol



pragma solidity ^0.8.0;

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

// File: @openzeppelin/contracts/security/Pausable.sol



pragma solidity ^0.8.0;


/**
 * @dev Contract module which allows children to implement an emergency stop
 * mechanism that can be triggered by an authorized account.
 *
 * This module is used through inheritance. It will make available the
 * modifiers `whenNotPaused` and `whenPaused`, which can be applied to
 * the functions of your contract. Note that they will not be pausable by
 * simply including this module, only once the modifiers are put in place.
 */
abstract contract Pausable is Context {
    /**
     * @dev Emitted when the pause is triggered by `account`.
     */
    event Paused(address account);

    /**
     * @dev Emitted when the pause is lifted by `account`.
     */
    event Unpaused(address account);

    bool private _paused;

    /**
     * @dev Initializes the contract in unpaused state.
     */
    constructor () {
        _paused = false;
    }

    /**
     * @dev Returns true if the contract is paused, and false otherwise.
     */
    function paused() public view virtual returns (bool) {
        return _paused;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is not paused.
     *
     * Requirements:
     *
     * - The contract must not be paused.
     */
    modifier whenNotPaused() {
        require(!paused(), "Pausable: paused");
        _;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is paused.
     *
     * Requirements:
     *
     * - The contract must be paused.
     */
    modifier whenPaused() {
        require(paused(), "Pausable: not paused");
        _;
    }

    /**
     * @dev Triggers stopped state.
     *
     * Requirements:
     *
     * - The contract must not be paused.
     */
    function _pause() internal virtual whenNotPaused {
        _paused = true;
        emit Paused(_msgSender());
    }

    /**
     * @dev Returns to normal state.
     *
     * Requirements:
     *
     * - The contract must be paused.
     */
    function _unpause() internal virtual whenPaused {
        _paused = false;
        emit Unpaused(_msgSender());
    }
}

// File: contracts/Memecoin.sol


pragma solidity 0.8.0;





/**
* @title Memecoin token
* @dev main ERC20 currency for meme.com contracts
*/
contract Memecoin is Ownable, Pausable, ERC20 {

  constructor(uint256 _totalSupply, string memory _memeTokenName, string memory _memeTokenSymbol) ERC20(_memeTokenName, _memeTokenSymbol)
  {
    _mint(msg.sender, _totalSupply);
  }

  /**
  * @dev See {ERC20-transfer}.
  * - adds trasfer only when contract is not paused 
  */
  function transfer(address recipient, uint256 amount) 
    public 
    virtual 
    override 
    whenNotPaused 
    returns (bool) 
  {
    return super.transfer(recipient, amount);
  }

  /**
  * @dev See {ERC20-transferFrom}.
  * - adds trasferForm only when contract is not paused
  */
  function transferFrom(address from, address to, uint256 value) 
    public 
    virtual 
    override 
    whenNotPaused 
    returns (bool) 
  {
    return super.transferFrom(from, to, value);
  }

  /**
  * @dev Allows address to burn a number of coins in its ownership
  * @param _amount Amount of coins to burn
  */
  function burn(uint256 _amount) 
    virtual
    external 
    whenNotPaused
  {    
    _burn(msg.sender, _amount);
  }

  /**
  * @dev Pause contract
  */
  function pause()
    external
    onlyOwner
  {
    _pause();
  }

  /**
  * @dev Unpoause contract 
  */
  function unpause()
    external
    onlyOwner
  {
    _unpause();     
  }
}

// File: contracts/MemecoinMatic.sol


pragma solidity 0.8.0;


/**
* @title MemecoinMatic token
* @dev main ERC20 currency for meme.com contracts extended on Matic recommended methods for childTokenContract
* based on https://docs.matic.today/docs/develop/ethereum-matic/pos/calling-contracts/erc20/
*/
contract MemecoinMatic is Memecoin {

  // keeping it for checking, whether deposit being called by valid address or not
  address public childChainManagerProxy;

  constructor(address _childChainManagerProxy, string memory _memeTokenName, string memory _memeTokenSymbol) Memecoin(0, _memeTokenName, _memeTokenSymbol)
  {
    childChainManagerProxy = _childChainManagerProxy;
  }

  // being proxified smart contract, most probably childChainManagerProxy contract's address
  // is not going to change ever, but still, lets keep it 
  function updateChildChainManager(address newChildChainManagerProxy) 
    external 
    onlyOwner
  {
    childChainManagerProxy = newChildChainManagerProxy;
  }

  function deposit(address user, bytes calldata depositData) 
    external 
    whenNotPaused
  {
    require(msg.sender == childChainManagerProxy, "You're not allowed to deposit");

    uint256 amount = abi.decode(depositData, (uint256));

    // `amount` token getting minted here & equal amount got locked in RootChainManager
    _mint(user, amount);
  }

  function withdraw(uint256 amount)
    external 
    whenNotPaused
  {
    _burn(msg.sender, amount);
  }

  /**
  * @dev Allows address to burn a number of coins in its ownership
  * @param _amount Amount of coins to burn
  */
  function burn(uint256 _amount) 
    external
    override 
  {    
    revert("ERROR_CHILD_TOKEN_DOES_NOT_ALLOW_DIRECT_BURNING");  
  }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_childChainManagerProxy","type":"address"},{"internalType":"string","name":"_memeTokenName","type":"string"},{"internalType":"string","name":"_memeTokenSymbol","type":"string"}],"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":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","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":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"childChainManagerProxy","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bytes","name":"depositData","type":"bytes"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","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"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newChildChainManagerProxy","type":"address"}],"name":"updateChildChainManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b506040516200185d3803806200185d833981016040819052620000349162000337565b600082828181846200004562000109565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000805460ff60a01b191690558151620000b1906004906020850190620001e6565b508051620000c7906005906020840190620001e6565b505050620000dc33846200010d60201b60201c565b5050600680546001600160a01b0319166001600160a01b0395909516949094179093555062000475915050565b3390565b6001600160a01b0382166200013f5760405162461bcd60e51b81526004016200013690620003bd565b60405180910390fd5b6200014d60008383620001e1565b8060036000828254620001619190620003fd565b90915550506001600160a01b0382166000908152600160205260408120805483929062000190908490620003fd565b90915550506040516001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620001d5908590620003f4565b60405180910390a35050565b505050565b828054620001f49062000422565b90600052602060002090601f01602090048101928262000218576000855562000263565b82601f106200023357805160ff191683800117855562000263565b8280016001018555821562000263579182015b828111156200026357825182559160200191906001019062000246565b506200027192915062000275565b5090565b5b8082111562000271576000815560010162000276565b600082601f8301126200029d578081fd5b81516001600160401b0380821115620002ba57620002ba6200045f565b6040516020601f8401601f1916820181018381118382101715620002e257620002e26200045f565b6040528382528584018101871015620002f9578485fd5b8492505b838310156200031c5785830181015182840182015291820191620002fd565b838311156200032d57848185840101525b5095945050505050565b6000806000606084860312156200034c578283fd5b83516001600160a01b038116811462000363578384fd5b60208501519093506001600160401b038082111562000380578384fd5b6200038e878388016200028c565b93506040860151915080821115620003a4578283fd5b50620003b3868287016200028c565b9150509250925092565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b600082198211156200041d57634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806200043757607f821691505b602082108114156200045957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b6113d880620004856000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806362f629e7116100b857806395d89b411161007c57806395d89b4114610260578063a457c2d714610268578063a9059cbb1461027b578063cf2c52cb1461028e578063dd62ed3e146102a1578063f2fde38b146102b457610142565b806362f629e71461022057806370a0823114610235578063715018a6146102485780638456cb59146102505780638da5cb5b1461025857610142565b8063313ce5671161010a578063313ce567146101c257806339509351146101d75780633f4ba83a146101ea57806342966c68146101f2578063445a6797146102055780635c975abb1461021857610142565b806306fdde0314610147578063095ea7b31461016557806318160ddd1461018557806323b872dd1461019a5780632e1a7d4d146101ad575b600080fd5b61014f6102c7565b60405161015c9190610ec4565b60405180910390f35b610178610173366004610e64565b610359565b60405161015c9190610eb9565b61018d610376565b60405161015c919061130b565b6101786101a8366004610dab565b61037c565b6101c06101bb366004610e8d565b6103bf565b005b6101ca6103f1565b60405161015c9190611314565b6101786101e5366004610e64565b6103f6565b6101c061044a565b6101c0610200366004610e8d565b610493565b6101c0610213366004610d5f565b6104ab565b61017861050c565b61022861051c565b60405161015c9190610ea5565b61018d610243366004610d5f565b61052b565b6101c061054a565b6101c06105d3565b61022861061a565b61014f610629565b610178610276366004610e64565b610638565b610178610289366004610e64565b6106b3565b6101c061029c366004610de6565b6106eb565b61018d6102af366004610d79565b61075a565b6101c06102c2366004610d5f565b610785565b6060600480546102d690611351565b80601f016020809104026020016040519081016040528092919081815260200182805461030290611351565b801561034f5780601f106103245761010080835404028352916020019161034f565b820191906000526020600020905b81548152906001019060200180831161033257829003601f168201915b5050505050905090565b600061036d610366610845565b8484610849565b50600192915050565b60035490565b600061038661050c565b156103ac5760405162461bcd60e51b81526004016103a3906110cf565b60405180910390fd5b6103b78484846108fd565b949350505050565b6103c761050c565b156103e45760405162461bcd60e51b81526004016103a3906110cf565b6103ee338261098f565b50565b601290565b600061036d610403610845565b848460026000610411610845565b6001600160a01b03908116825260208083019390935260409182016000908120918b16815292529020546104459190611322565b610849565b610452610845565b6001600160a01b031661046361061a565b6001600160a01b0316146104895760405162461bcd60e51b81526004016103a390611141565b610491610a75565b565b60405162461bcd60e51b81526004016103a3906111fc565b6104b3610845565b6001600160a01b03166104c461061a565b6001600160a01b0316146104ea5760405162461bcd60e51b81526004016103a390611141565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b600054600160a01b900460ff1690565b6006546001600160a01b031681565b6001600160a01b0381166000908152600160205260409020545b919050565b610552610845565b6001600160a01b031661056361061a565b6001600160a01b0316146105895760405162461bcd60e51b81526004016103a390611141565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6105db610845565b6001600160a01b03166105ec61061a565b6001600160a01b0316146106125760405162461bcd60e51b81526004016103a390611141565b610491610ae6565b6000546001600160a01b031690565b6060600580546102d690611351565b60008060026000610647610845565b6001600160a01b03908116825260208083019390935260409182016000908120918816815292529020549050828110156106935760405162461bcd60e51b81526004016103a39061128f565b6106a961069e610845565b85610445868561133a565b5060019392505050565b60006106bd61050c565b156106da5760405162461bcd60e51b81526004016103a3906110cf565b6106e48383610b47565b9392505050565b6106f361050c565b156107105760405162461bcd60e51b81526004016103a3906110cf565b6006546001600160a01b0316331461073a5760405162461bcd60e51b81526004016103a390610fca565b600061074882840184610e8d565b90506107548482610b5b565b50505050565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b61078d610845565b6001600160a01b031661079e61061a565b6001600160a01b0316146107c45760405162461bcd60e51b81526004016103a390611141565b6001600160a01b0381166107ea5760405162461bcd60e51b81526004016103a390611001565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b6001600160a01b03831661086f5760405162461bcd60e51b81526004016103a39061124b565b6001600160a01b0382166108955760405162461bcd60e51b81526004016103a390611047565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108f090859061130b565b60405180910390a3505050565b600061090a848484610c1b565b6001600160a01b03841660009081526002602052604081208161092b610845565b6001600160a01b03166001600160a01b031681526020019081526020016000205490508281101561096e5760405162461bcd60e51b81526004016103a3906110f9565b6109848561097a610845565b610445868561133a565b506001949350505050565b6001600160a01b0382166109b55760405162461bcd60e51b81526004016103a390611176565b6109c182600083610d43565b6001600160a01b038216600090815260016020526040902054818110156109fa5760405162461bcd60e51b81526004016103a390610f88565b610a04828261133a565b6001600160a01b03841660009081526001602052604081209190915560038054849290610a3290849061133a565b90915550506040516000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906108f090869061130b565b610a7d61050c565b610a995760405162461bcd60e51b81526004016103a390610f5a565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610acf610845565b604051610adc9190610ea5565b60405180910390a1565b610aee61050c565b15610b0b5760405162461bcd60e51b81526004016103a3906110cf565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610acf610845565b600061036d610b54610845565b8484610c1b565b6001600160a01b038216610b815760405162461bcd60e51b81526004016103a3906112d4565b610b8d60008383610d43565b8060036000828254610b9f9190611322565b90915550506001600160a01b03821660009081526001602052604081208054839290610bcc908490611322565b90915550506040516001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c0f90859061130b565b60405180910390a35050565b6001600160a01b038316610c415760405162461bcd60e51b81526004016103a3906111b7565b6001600160a01b038216610c675760405162461bcd60e51b81526004016103a390610f17565b610c72838383610d43565b6001600160a01b03831660009081526001602052604090205481811015610cab5760405162461bcd60e51b81526004016103a390611089565b610cb5828261133a565b6001600160a01b038086166000908152600160205260408082209390935590851681529081208054849290610ceb908490611322565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d35919061130b565b60405180910390a350505050565b505050565b80356001600160a01b038116811461054557600080fd5b600060208284031215610d70578081fd5b6106e482610d48565b60008060408385031215610d8b578081fd5b610d9483610d48565b9150610da260208401610d48565b90509250929050565b600080600060608486031215610dbf578081fd5b610dc884610d48565b9250610dd660208501610d48565b9150604084013590509250925092565b600080600060408486031215610dfa578283fd5b610e0384610d48565b9250602084013567ffffffffffffffff80821115610e1f578384fd5b818601915086601f830112610e32578384fd5b813581811115610e40578485fd5b876020828501011115610e51578485fd5b6020830194508093505050509250925092565b60008060408385031215610e76578182fd5b610e7f83610d48565b946020939093013593505050565b600060208284031215610e9e578081fd5b5035919050565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b81811015610ef057858101830151858201604001528201610ed4565b81811115610f015783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526014908201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604082015260600190565b60208082526022908201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604082015261636560f01b606082015260800190565b6020808252601d908201527f596f75277265206e6f7420616c6c6f77656420746f206465706f736974000000604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602f908201527f4552524f525f4348494c445f544f4b454e5f444f45535f4e4f545f414c4c4f5760408201526e5f4449524543545f4255524e494e4760881b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b60ff91909116815260200190565b600082198211156113355761133561138c565b500190565b60008282101561134c5761134c61138c565b500390565b60028104600182168061136557607f821691505b6020821081141561138657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea26469706673582212207cd5c830f0f8f02f838d1be3c4771157b96d452257397a5a61d4f08f0b53671764736f6c63430008000033000000000000000000000000a6fa4fb5f76172d178d61b04b0ecd319c5d1c0aa000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000084d656d65636f696e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034d454d0000000000000000000000000000000000000000000000000000000000

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

000000000000000000000000a6fa4fb5f76172d178d61b04b0ecd319c5d1c0aa000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000084d656d65636f696e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034d454d0000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _childChainManagerProxy (address): 0xa6fa4fb5f76172d178d61b04b0ecd319c5d1c0aa
Arg [1] : _memeTokenName (string): Memecoin
Arg [2] : _memeTokenSymbol (string): MEM

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 000000000000000000000000a6fa4fb5f76172d178d61b04b0ecd319c5d1c0aa
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [2] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [4] : 4d656d65636f696e000000000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [6] : 4d454d0000000000000000000000000000000000000000000000000000000000


Deployed ByteCode Sourcemap

21685:1474:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6528:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8695:169;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;7648:108::-;;;:::i;:::-;;;;;;;:::i;20661:205::-;;;;;;:::i;:::-;;:::i;22774:109::-;;;;;;:::i;:::-;;:::i;:::-;;7490:93;;;:::i;:::-;;;;;;;:::i;10177:215::-;;;;;;:::i;:::-;;:::i;21284:79::-;;;:::i;23014:140::-;;;;;;:::i;:::-;;:::i;22232:165::-;;;;;;:::i;:::-;;:::i;18673:86::-;;;:::i;21811:37::-;;;:::i;:::-;;;;;;;:::i;7819:127::-;;;;;;:::i;:::-;;:::i;17044:148::-;;;:::i;21166:70::-;;;:::i;16393:87::-;;;:::i;6747:104::-;;;:::i;10895:377::-;;;;;;:::i;:::-;;:::i;20356:193::-;;;;;;:::i;:::-;;:::i;22403:365::-;;;;;;:::i;:::-;;:::i;8397:151::-;;;;;;:::i;:::-;;:::i;17347:244::-;;;;;;:::i;:::-;;:::i;6528:100::-;6582:13;6615:5;6608:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6528:100;:::o;8695:169::-;8778:4;8795:39;8804:12;:10;:12::i;:::-;8818:7;8827:6;8795:8;:39::i;:::-;-1:-1:-1;8852:4:0;8695:169;;;;:::o;7648:108::-;7736:12;;7648:108;:::o;20661:205::-;20801:4;18999:8;:6;:8::i;:::-;18998:9;18990:38;;;;-1:-1:-1;;;18990:38:0;;;;;;;:::i;:::-;;;;;;;;;20825:35:::1;20844:4;20850:2;20854:5;20825:18;:35::i;:::-;20818:42:::0;20661:205;-1:-1:-1;;;;20661:205:0:o;22774:109::-;18999:8;:6;:8::i;:::-;18998:9;18990:38;;;;-1:-1:-1;;;18990:38:0;;;;;;;:::i;:::-;22852:25:::1;22858:10;22870:6;22852:5;:25::i;:::-;22774:109:::0;:::o;7490:93::-;7573:2;7490:93;:::o;10177:215::-;10265:4;10282:80;10291:12;:10;:12::i;:::-;10305:7;10351:10;10314:11;:25;10326:12;:10;:12::i;:::-;-1:-1:-1;;;;;10314:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;10314:25:0;;;:34;;;;;;;;;;:47;;;;:::i;:::-;10282:8;:80::i;21284:79::-;16624:12;:10;:12::i;:::-;-1:-1:-1;;;;;16613:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;16613:23:0;;16605:68;;;;-1:-1:-1;;;16605:68:0;;;;;;;:::i;:::-;21342:10:::1;:8;:10::i;:::-;21284:79::o:0;23014:140::-;23089:57;;-1:-1:-1;;;23089:57:0;;;;;;;:::i;22232:165::-;16624:12;:10;:12::i;:::-;-1:-1:-1;;;;;16613:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;16613:23:0;;16605:68;;;;-1:-1:-1;;;16605:68:0;;;;;;;:::i;:::-;22341:22:::1;:50:::0;;-1:-1:-1;;;;;;22341:50:0::1;-1:-1:-1::0;;;;;22341:50:0;;;::::1;::::0;;;::::1;::::0;;22232:165::o;18673:86::-;18720:4;18744:7;-1:-1:-1;;;18744:7:0;;;;;18673:86::o;21811:37::-;;;-1:-1:-1;;;;;21811:37:0;;:::o;7819:127::-;-1:-1:-1;;;;;7920:18:0;;7893:7;7920:18;;;:9;:18;;;;;;7819:127;;;;:::o;17044:148::-;16624:12;:10;:12::i;:::-;-1:-1:-1;;;;;16613:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;16613:23:0;;16605:68;;;;-1:-1:-1;;;16605:68:0;;;;;;;:::i;:::-;17151:1:::1;17135:6:::0;;17114:40:::1;::::0;-1:-1:-1;;;;;17135:6:0;;::::1;::::0;17114:40:::1;::::0;17151:1;;17114:40:::1;17182:1;17165:19:::0;;-1:-1:-1;;;;;;17165:19:0::1;::::0;;17044:148::o;21166:70::-;16624:12;:10;:12::i;:::-;-1:-1:-1;;;;;16613:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;16613:23:0;;16605:68;;;;-1:-1:-1;;;16605:68:0;;;;;;;:::i;:::-;21222:8:::1;:6;:8::i;16393:87::-:0;16439:7;16466:6;-1:-1:-1;;;;;16466:6:0;16393:87;:::o;6747:104::-;6803:13;6836:7;6829:14;;;;;:::i;10895:377::-;10988:4;11005:24;11032:11;:25;11044:12;:10;:12::i;:::-;-1:-1:-1;;;;;11032:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;11032:25:0;;;:34;;;;;;;;;;;-1:-1:-1;11085:35:0;;;;11077:85;;;;-1:-1:-1;;;11077:85:0;;;;;;;:::i;:::-;11173:67;11182:12;:10;:12::i;:::-;11196:7;11205:34;11224:15;11205:16;:34;:::i;11173:67::-;-1:-1:-1;11260:4:0;;10895:377;-1:-1:-1;;;10895:377:0:o;20356:193::-;20486:4;18999:8;:6;:8::i;:::-;18998:9;18990:38;;;;-1:-1:-1;;;18990:38:0;;;;;;;:::i;:::-;20510:33:::1;20525:9;20536:6;20510:14;:33::i;:::-;20503:40:::0;20356:193;-1:-1:-1;;;20356:193:0:o;22403:365::-;18999:8;:6;:8::i;:::-;18998:9;18990:38;;;;-1:-1:-1;;;18990:38:0;;;;;;;:::i;:::-;22529:22:::1;::::0;-1:-1:-1;;;;;22529:22:0::1;22515:10;:36;22507:78;;;;-1:-1:-1::0;;;22507:78:0::1;;;;;;;:::i;:::-;22594:14;22611:34;::::0;;::::1;22622:11:::0;22611:34:::1;:::i;:::-;22594:51;;22743:19;22749:4;22755:6;22743:5;:19::i;:::-;19039:1;22403:365:::0;;;:::o;8397:151::-;-1:-1:-1;;;;;8513:18:0;;;8486:7;8513:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8397:151::o;17347:244::-;16624:12;:10;:12::i;:::-;-1:-1:-1;;;;;16613:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;16613:23:0;;16605:68;;;;-1:-1:-1;;;16605:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17436:22:0;::::1;17428:73;;;;-1:-1:-1::0;;;17428:73:0::1;;;;;;;:::i;:::-;17538:6;::::0;;17517:38:::1;::::0;-1:-1:-1;;;;;17517:38:0;;::::1;::::0;17538:6;::::1;::::0;17517:38:::1;::::0;::::1;17566:6;:17:::0;;-1:-1:-1;;;;;;17566:17:0::1;-1:-1:-1::0;;;;;17566:17:0;;;::::1;::::0;;;::::1;::::0;;17347:244::o;4115:98::-;4195:10;4115:98;:::o;14251:346::-;-1:-1:-1;;;;;14353:19:0;;14345:68;;;;-1:-1:-1;;;14345:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14432:21:0;;14424:68;;;;-1:-1:-1;;;14424:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14505:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;14557:32;;;;;14535:6;;14557:32;:::i;:::-;;;;;;;;14251:346;;;:::o;9346:422::-;9452:4;9469:36;9479:6;9487:9;9498:6;9469:9;:36::i;:::-;-1:-1:-1;;;;;9545:19:0;;9518:24;9545:19;;;:11;:19;;;;;9518:24;9565:12;:10;:12::i;:::-;-1:-1:-1;;;;;9545:33:0;-1:-1:-1;;;;;9545:33:0;;;;;;;;;;;;;9518:60;;9617:6;9597:16;:26;;9589:79;;;;-1:-1:-1;;;9589:79:0;;;;;;;:::i;:::-;9679:57;9688:6;9696:12;:10;:12::i;:::-;9710:25;9729:6;9710:16;:25;:::i;9679:57::-;-1:-1:-1;9756:4:0;;9346:422;-1:-1:-1;;;;9346:422:0:o;13319:494::-;-1:-1:-1;;;;;13403:21:0;;13395:67;;;;-1:-1:-1;;;13395:67:0;;;;;;;:::i;:::-;13475:49;13496:7;13513:1;13517:6;13475:20;:49::i;:::-;-1:-1:-1;;;;;13562:18:0;;13537:22;13562:18;;;:9;:18;;;;;;13599:24;;;;13591:71;;;;-1:-1:-1;;;13591:71:0;;;;;;;:::i;:::-;13694:23;13711:6;13694:14;:23;:::i;:::-;-1:-1:-1;;;;;13673:18:0;;;;;;:9;:18;;;;;:44;;;;13728:12;:22;;13744:6;;13673:18;13728:22;;13744:6;;13728:22;:::i;:::-;;;;-1:-1:-1;;13768:37:0;;13794:1;;-1:-1:-1;;;;;13768:37:0;;;;;;;13798:6;;13768:37;:::i;19732:120::-;19276:8;:6;:8::i;:::-;19268:41;;;;-1:-1:-1;;;19268:41:0;;;;;;;:::i;:::-;19801:5:::1;19791:15:::0;;-1:-1:-1;;;;19791:15:0::1;::::0;;19822:22:::1;19831:12;:10;:12::i;:::-;19822:22;;;;;;:::i;:::-;;;;;;;;19732:120::o:0;19473:118::-;18999:8;:6;:8::i;:::-;18998:9;18990:38;;;;-1:-1:-1;;;18990:38:0;;;;;;;:::i;:::-;19533:7:::1;:14:::0;;-1:-1:-1;;;;19533:14:0::1;-1:-1:-1::0;;;19533:14:0::1;::::0;;19563:20:::1;19570:12;:10;:12::i;8159:175::-:0;8245:4;8262:42;8272:12;:10;:12::i;:::-;8286:9;8297:6;8262:9;:42::i;12648:338::-;-1:-1:-1;;;;;12732:21:0;;12724:65;;;;-1:-1:-1;;;12724:65:0;;;;;;;:::i;:::-;12802:49;12831:1;12835:7;12844:6;12802:20;:49::i;:::-;12880:6;12864:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;12897:18:0;;;;;;:9;:18;;;;;:28;;12919:6;;12897:18;:28;;12919:6;;12897:28;:::i;:::-;;;;-1:-1:-1;;12941:37:0;;-1:-1:-1;;;;;12941:37:0;;;12958:1;;12941:37;;;;12971:6;;12941:37;:::i;:::-;;;;;;;;12648:338;;:::o;11762:604::-;-1:-1:-1;;;;;11868:20:0;;11860:70;;;;-1:-1:-1;;;11860:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11949:23:0;;11941:71;;;;-1:-1:-1;;;11941:71:0;;;;;;;:::i;:::-;12025:47;12046:6;12054:9;12065:6;12025:20;:47::i;:::-;-1:-1:-1;;;;;12109:17:0;;12085:21;12109:17;;;:9;:17;;;;;;12145:23;;;;12137:74;;;;-1:-1:-1;;;12137:74:0;;;;;;;:::i;:::-;12242:22;12258:6;12242:13;:22;:::i;:::-;-1:-1:-1;;;;;12222:17:0;;;;;;;:9;:17;;;;;;:42;;;;12275:20;;;;;;;;:30;;12299:6;;12222:17;12275:30;;12299:6;;12275:30;:::i;:::-;;;;;;;;12340:9;-1:-1:-1;;;;;12323:35:0;12332:6;-1:-1:-1;;;;;12323:35:0;;12351:6;12323:35;;;;;;:::i;:::-;;;;;;;;11762:604;;;;:::o;15200:92::-;;;;:::o;14:175:1:-;84:20;;-1:-1:-1;;;;;133:31:1;;123:42;;113:2;;179:1;176;169:12;194:198;;306:2;294:9;285:7;281:23;277:32;274:2;;;327:6;319;312:22;274:2;355:31;376:9;355:31;:::i;397:274::-;;;526:2;514:9;505:7;501:23;497:32;494:2;;;547:6;539;532:22;494:2;575:31;596:9;575:31;:::i;:::-;565:41;;625:40;661:2;650:9;646:18;625:40;:::i;:::-;615:50;;484:187;;;;;:::o;676:342::-;;;;822:2;810:9;801:7;797:23;793:32;790:2;;;843:6;835;828:22;790:2;871:31;892:9;871:31;:::i;:::-;861:41;;921:40;957:2;946:9;942:18;921:40;:::i;:::-;911:50;;1008:2;997:9;993:18;980:32;970:42;;780:238;;;;;:::o;1023:717::-;;;;1171:2;1159:9;1150:7;1146:23;1142:32;1139:2;;;1192:6;1184;1177:22;1139:2;1220:31;1241:9;1220:31;:::i;:::-;1210:41;;1302:2;1291:9;1287:18;1274:32;1325:18;1366:2;1358:6;1355:14;1352:2;;;1387:6;1379;1372:22;1352:2;1430:6;1419:9;1415:22;1405:32;;1475:7;1468:4;1464:2;1460:13;1456:27;1446:2;;1502:6;1494;1487:22;1446:2;1547;1534:16;1573:2;1565:6;1562:14;1559:2;;;1594:6;1586;1579:22;1559:2;1644:7;1639:2;1630:6;1626:2;1622:15;1618:24;1615:37;1612:2;;;1670:6;1662;1655:22;1612:2;1706;1702;1698:11;1688:21;;1728:6;1718:16;;;;;1129:611;;;;;:::o;1745:266::-;;;1874:2;1862:9;1853:7;1849:23;1845:32;1842:2;;;1895:6;1887;1880:22;1842:2;1923:31;1944:9;1923:31;:::i;:::-;1913:41;2001:2;1986:18;;;;1973:32;;-1:-1:-1;;;1832:179:1:o;2016:190::-;;2128:2;2116:9;2107:7;2103:23;2099:32;2096:2;;;2149:6;2141;2134:22;2096:2;-1:-1:-1;2177:23:1;;2086:120;-1:-1:-1;2086:120:1:o;2211:203::-;-1:-1:-1;;;;;2375:32:1;;;;2357:51;;2345:2;2330:18;;2312:102::o;2419:187::-;2584:14;;2577:22;2559:41;;2547:2;2532:18;;2514:92::o;2611:603::-;;2752:2;2781;2770:9;2763:21;2813:6;2807:13;2856:6;2851:2;2840:9;2836:18;2829:34;2881:4;2894:140;2908:6;2905:1;2902:13;2894:140;;;3003:14;;;2999:23;;2993:30;2969:17;;;2988:2;2965:26;2958:66;2923:10;;2894:140;;;3052:6;3049:1;3046:13;3043:2;;;3122:4;3117:2;3108:6;3097:9;3093:22;3089:31;3082:45;3043:2;-1:-1:-1;3198:2:1;3177:15;-1:-1:-1;;3173:29:1;3158:45;;;;3205:2;3154:54;;2732:482;-1:-1:-1;;;2732:482:1:o;3219:399::-;3421:2;3403:21;;;3460:2;3440:18;;;3433:30;3499:34;3494:2;3479:18;;3472:62;-1:-1:-1;;;3565:2:1;3550:18;;3543:33;3608:3;3593:19;;3393:225::o;3623:344::-;3825:2;3807:21;;;3864:2;3844:18;;;3837:30;-1:-1:-1;;;3898:2:1;3883:18;;3876:50;3958:2;3943:18;;3797:170::o;3972:398::-;4174:2;4156:21;;;4213:2;4193:18;;;4186:30;4252:34;4247:2;4232:18;;4225:62;-1:-1:-1;;;4318:2:1;4303:18;;4296:32;4360:3;4345:19;;4146:224::o;4375:353::-;4577:2;4559:21;;;4616:2;4596:18;;;4589:30;4655:31;4650:2;4635:18;;4628:59;4719:2;4704:18;;4549:179::o;4733:402::-;4935:2;4917:21;;;4974:2;4954:18;;;4947:30;5013:34;5008:2;4993:18;;4986:62;-1:-1:-1;;;5079:2:1;5064:18;;5057:36;5125:3;5110:19;;4907:228::o;5140:398::-;5342:2;5324:21;;;5381:2;5361:18;;;5354:30;5420:34;5415:2;5400:18;;5393:62;-1:-1:-1;;;5486:2:1;5471:18;;5464:32;5528:3;5513:19;;5314:224::o;5543:402::-;5745:2;5727:21;;;5784:2;5764:18;;;5757:30;5823:34;5818:2;5803:18;;5796:62;-1:-1:-1;;;5889:2:1;5874:18;;5867:36;5935:3;5920:19;;5717:228::o;5950:340::-;6152:2;6134:21;;;6191:2;6171:18;;;6164:30;-1:-1:-1;;;6225:2:1;6210:18;;6203:46;6281:2;6266:18;;6124:166::o;6295:404::-;6497:2;6479:21;;;6536:2;6516:18;;;6509:30;6575:34;6570:2;6555:18;;6548:62;-1:-1:-1;;;6641:2:1;6626:18;;6619:38;6689:3;6674:19;;6469:230::o;6704:356::-;6906:2;6888:21;;;6925:18;;;6918:30;6984:34;6979:2;6964:18;;6957:62;7051:2;7036:18;;6878:182::o;7065:397::-;7267:2;7249:21;;;7306:2;7286:18;;;7279:30;7345:34;7340:2;7325:18;;7318:62;-1:-1:-1;;;7411:2:1;7396:18;;7389:31;7452:3;7437:19;;7239:223::o;7467:401::-;7669:2;7651:21;;;7708:2;7688:18;;;7681:30;7747:34;7742:2;7727:18;;7720:62;-1:-1:-1;;;7813:2:1;7798:18;;7791:35;7858:3;7843:19;;7641:227::o;7873:411::-;8075:2;8057:21;;;8114:2;8094:18;;;8087:30;8153:34;8148:2;8133:18;;8126:62;-1:-1:-1;;;8219:2:1;8204:18;;8197:45;8274:3;8259:19;;8047:237::o;8289:400::-;8491:2;8473:21;;;8530:2;8510:18;;;8503:30;8569:34;8564:2;8549:18;;8542:62;-1:-1:-1;;;8635:2:1;8620:18;;8613:34;8679:3;8664:19;;8463:226::o;8694:401::-;8896:2;8878:21;;;8935:2;8915:18;;;8908:30;8974:34;8969:2;8954:18;;8947:62;-1:-1:-1;;;9040:2:1;9025:18;;9018:35;9085:3;9070:19;;8868:227::o;9100:355::-;9302:2;9284:21;;;9341:2;9321:18;;;9314:30;9380:33;9375:2;9360:18;;9353:61;9446:2;9431:18;;9274:181::o;9460:177::-;9606:25;;;9594:2;9579:18;;9561:76::o;9642:184::-;9814:4;9802:17;;;;9784:36;;9772:2;9757:18;;9739:87::o;9831:128::-;;9902:1;9898:6;9895:1;9892:13;9889:2;;;9908:18;;:::i;:::-;-1:-1:-1;9944:9:1;;9879:80::o;9964:125::-;;10032:1;10029;10026:8;10023:2;;;10037:18;;:::i;:::-;-1:-1:-1;10074:9:1;;10013:76::o;10094:380::-;10179:1;10169:12;;10226:1;10216:12;;;10237:2;;10291:4;10283:6;10279:17;10269:27;;10237:2;10344;10336:6;10333:14;10313:18;10310:38;10307:2;;;10390:10;10385:3;10381:20;10378:1;10371:31;10425:4;10422:1;10415:15;10453:4;10450:1;10443:15;10307:2;;10149:325;;;:::o;10479:127::-;10540:10;10535:3;10531:20;10528:1;10521:31;10571:4;10568:1;10561:15;10595:4;10592:1;10585:15

Swarm Source

ipfs://7cd5c830f0f8f02f838d1be3c4771157b96d452257397a5a61d4f08f0b536717
Loading