ETH Price: $2,639.66 (+0.48%)

Token

cVault.finance/oslidiity (oslidiity)
 

Overview

Max Total Supply

294 oslidiity

Holders

12

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
cVault.finance/FANNY: Deployer
Balance
150 oslidiity

Value
$0.00
0xd5b47b80668840e7164c1d1d81af8a9d9727b421
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
oslidiity

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-12-01
*/

pragma solidity ^0.6.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 GSN 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 payable) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}


// File @openzeppelin/contracts/token/ERC20/[email protected]



pragma solidity ^0.6.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/math/[email protected]



pragma solidity ^0.6.0;

/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}


// File @openzeppelin/contracts/utils/[email protected]



pragma solidity ^0.6.2;

/**
 * @dev Collection of functions related to the address type
 */
library Address {
    /**
     * @dev Returns true if `account` is a contract.
     *
     * [IMPORTANT]
     * ====
     * It is unsafe to assume that an address for which this function returns
     * false is an externally-owned account (EOA) and not a contract.
     *
     * Among others, `isContract` will return false for the following
     * types of addresses:
     *
     *  - an externally-owned account
     *  - a contract in construction
     *  - an address where a contract will be created
     *  - an address where a contract lived, but was destroyed
     * ====
     */
    function isContract(address account) internal view returns (bool) {
        // This method relies in extcodesize, which returns 0 for contracts in
        // construction, since the code is only stored at the end of the
        // constructor execution.

        uint256 size;
        // solhint-disable-next-line no-inline-assembly
        assembly { size := extcodesize(account) }
        return size > 0;
    }

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
     *
     * IMPORTANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     */
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    /**
     * @dev Performs a Solidity function call using a low level `call`. A
     * plain`call` is an unsafe replacement for a function call: use this
     * function instead.
     *
     * If `target` reverts with a revert reason, it is bubbled up by this
     * function (like regular Solidity function calls).
     *
     * Returns the raw returned data. To convert to the expected return value,
     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
     *
     * Requirements:
     *
     * - `target` must be a contract.
     * - calling `target` with `data` must not revert.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
     * `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    /**
     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
     * with `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                // solhint-disable-next-line no-inline-assembly
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}


// File @openzeppelin/contracts/token/ERC20/[email protected]



pragma solidity ^0.6.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 {
    using SafeMath for uint256;
    using Address for address;

    mapping (address => uint256) private _balances;

    mapping (address => mapping (address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    uint8 private _decimals;

    /**
     * @dev Sets the values for {name} and {symbol}, initializes {decimals} with
     * a default value of 18.
     *
     * To select a different value for {decimals}, use {_setupDecimals}.
     *
     * All three of these values are immutable: they can only be set once during
     * construction.
     */
    constructor (string memory name, string memory symbol) public {
        _name = name;
        _symbol = symbol;
        _decimals = 18;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view 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 {_setupDecimals} is
     * called.
     *
     * 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 returns (uint8) {
        return _decimals;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view 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);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        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].add(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) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        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);

        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(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 = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(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);

        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(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 Sets {decimals} to a value other than the default one of 18.
     *
     * WARNING: This function should only be called from the constructor. Most
     * applications that interact with token contracts will not expect
     * {decimals} to ever change, and may work incorrectly if it does.
     */
    function _setupDecimals(uint8 decimals_) internal {
        _decimals = decimals_;
    }

    /**
     * @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 { }
}

pragma solidity ^0.6.12;
pragma experimental ABIEncoderV2;
interface ICOREGlobals {
    function TransferHandler() external returns (address);
}
interface ICORETransferHandler{
    function handleRestrictedTokenTransfer(address, address, uint256) external;
}

contract oslidiity is ERC20 ("cVault.finance/oslidiity", "oslidiity")  {

    ICOREGlobals public coreGlobals;
    Claim [] allClaims;
    mapping (address => Claim[]) public claimsByPerson;

    constructor() public {
        _mint(msg.sender, 150 ether);
        _mint(address(0xd5b47B80668840e7164C1D1d81aF8a9d9727B421), 150 ether);
        coreGlobals = ICOREGlobals(0x255CA4596A963883Afe0eF9c85EA071Cc050128B);
    }

    struct Claim {
        uint256 id;
        uint256 timestamp;
        address claimerAddress;
    }

    function claimFanny() public returns (uint256 claimID) {
        require(msg.sender == tx.origin, "Only dumb wallets.");
        _burn(msg.sender, 1e18);
        
        claimID = claimsByPerson[msg.sender].length;

        claimsByPerson[msg.sender].push(
            Claim ({
                id : claimsByPerson[msg.sender].length,
                timestamp : block.timestamp,
                claimerAddress : msg.sender
            })
        );

        allClaims.push(
            Claim ({
                id : allClaims.length,
                timestamp : block.timestamp,
                claimerAddress : msg.sender

            })
        );
    }

    function _beforeTokenTransfer(address from, address to, uint256 amount) internal  virtual override {
        //ICORETransferHandler(coreGlobals.TransferHandler()).handleRestrictedTokenTransfer(from, to, amount);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimFanny","outputs":[{"internalType":"uint256","name":"claimID","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"claimsByPerson","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"address","name":"claimerAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coreGlobals","outputs":[{"internalType":"contract ICOREGlobals","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":"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":"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"}]

60806040523480156200001157600080fd5b506040518060400160405280601881526020017f635661756c742e66696e616e63652f6f736c69646969747900000000000000008152506040518060400160405280600981526020017f6f736c69646969747900000000000000000000000000000000000000000000008152508160039080519060200190620000969291906200037f565b508060049080519060200190620000af9291906200037f565b506012600560006101000a81548160ff021916908360ff1602179055505050620000e933680821ab0d44149800006200017360201b60201c565b6200011873d5b47b80668840e7164c1d1d81af8a9d9727b421680821ab0d44149800006200017360201b60201c565b73255ca4596a963883afe0ef9c85ea071cc050128b600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000536565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620001e6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001dd90620004dc565b60405180910390fd5b620001fa600083836200032260201b60201c565b62000216816002546200032760201b62000b381790919060201c565b60028190555062000274816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200032760201b62000b381790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620003169190620004fe565b60405180910390a35050565b505050565b60008082840190508381101562000375576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200036c90620004ba565b60405180910390fd5b8091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620003c257805160ff1916838001178555620003f3565b82800160010185558215620003f3579182015b82811115620003f2578251825591602001919060010190620003d5565b5b50905062000402919062000406565b5090565b5b808211156200042157600081600090555060010162000407565b5090565b600062000434601b836200051b565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b600062000476601f836200051b565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b620004b4816200052c565b82525050565b60006020820190508181036000830152620004d58162000425565b9050919050565b60006020820190508181036000830152620004f78162000467565b9050919050565b6000602082019050620005156000830184620004a9565b92915050565b600082825260208201905092915050565b6000819050919050565b6119e080620005466000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a9059cbb11610066578063a9059cbb14610275578063bd213b28146102a5578063cadc8d9a146102c3578063dd62ed3e146102f5576100ea565b806370a08231146101f757806395d89b4114610227578063a457c2d714610245576100ea565b806318160ddd116100c857806318160ddd1461015b57806323b872dd14610179578063313ce567146101a957806339509351146101c7576100ea565b806306fdde03146100ef5780630706b1f51461010d578063095ea7b31461012b575b600080fd5b6100f7610325565b604051610104919061169f565b60405180910390f35b6101156103c7565b6040516101229190611684565b60405180910390f35b6101456004803603810190610140919061132b565b6103ed565b6040516101529190611669565b60405180910390f35b61016361040b565b60405161017091906117a1565b60405180910390f35b610193600480360381019061018e91906112dc565b610415565b6040516101a09190611669565b60405180910390f35b6101b16104ee565b6040516101be91906117f3565b60405180910390f35b6101e160048036038101906101dc919061132b565b610505565b6040516101ee9190611669565b60405180910390f35b610211600480360381019061020c9190611277565b6105b8565b60405161021e91906117a1565b60405180910390f35b61022f610600565b60405161023c919061169f565b60405180910390f35b61025f600480360381019061025a919061132b565b6106a2565b60405161026c9190611669565b60405180910390f35b61028f600480360381019061028a919061132b565b61076f565b60405161029c9190611669565b60405180910390f35b6102ad61078d565b6040516102ba91906117a1565b60405180910390f35b6102dd60048036038101906102d8919061132b565b610a4d565b6040516102ec939291906117bc565b60405180910390f35b61030f600480360381019061030a91906112a0565b610ab1565b60405161031c91906117a1565b60405180910390f35b606060038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103bd5780601f10610392576101008083540402835291602001916103bd565b820191906000526020600020905b8154815290600101906020018083116103a057829003601f168201915b5050505050905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006104016103fa610b8d565b8484610b95565b6001905092915050565b6000600254905090565b6000610422848484610d60565b6104e38461042e610b8d565b6104de8560405180606001604052806028815260200161195e60289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610494610b8d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ff59092919063ffffffff16565b610b95565b600190509392505050565b6000600560009054906101000a900460ff16905090565b60006105ae610512610b8d565b846105a98560016000610523610b8d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b3890919063ffffffff16565b610b95565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106985780601f1061066d57610100808354040283529160200191610698565b820191906000526020600020905b81548152906001019060200180831161067b57829003601f168201915b5050505050905090565b60006107656106af610b8d565b846107608560405180606001604052806025815260200161198660259139600160006106d9610b8d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ff59092919063ffffffff16565b610b95565b6001905092915050565b600061078361077c610b8d565b8484610d60565b6001905092915050565b60003273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f490611721565b60405180910390fd5b61080f33670de0b6b3a7640000611050565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405280600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905081526020014281526020013373ffffffffffffffffffffffffffffffffffffffff168152509080600181540180825580915050600190039060005260206000209060030201600090919091909150600082015181600001556020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506006604051806060016040528060068054905081526020014281526020013373ffffffffffffffffffffffffffffffffffffffff168152509080600181540180825580915050600190039060005260206000209060030201600090919091909150600082015181600001556020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505090565b60076020528160005260406000208181548110610a6657fe5b9060005260206000209060030201600091509150508060000154908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905083565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080828401905083811015610b83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7a90611701565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfc90611781565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6c906116e1565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d5391906117a1565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610dd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc790611761565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e37906116c1565b60405180910390fd5b610e4b8383836111fe565b610eb681604051806060016040528060268152602001611938602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ff59092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f49816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b3890919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610fe891906117a1565b60405180910390a3505050565b600083831115829061103d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611034919061169f565b60405180910390fd5b5060008385039050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b790611741565b60405180910390fd5b6110cc826000836111fe565b61113781604051806060016040528060228152602001611916602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ff59092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061118e8160025461120390919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111f291906117a1565b60405180910390a35050565b505050565b600061124583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ff5565b905092915050565b60008135905061125c816118e7565b92915050565b600081359050611271816118fe565b92915050565b60006020828403121561128957600080fd5b60006112978482850161124d565b91505092915050565b600080604083850312156112b357600080fd5b60006112c18582860161124d565b92505060206112d28582860161124d565b9150509250929050565b6000806000606084860312156112f157600080fd5b60006112ff8682870161124d565b93505060206113108682870161124d565b925050604061132186828701611262565b9150509250925092565b6000806040838503121561133e57600080fd5b600061134c8582860161124d565b925050602061135d85828601611262565b9150509250929050565b6113708161182a565b82525050565b61137f8161183c565b82525050565b61138e8161187f565b82525050565b600061139f8261180e565b6113a98185611819565b93506113b98185602086016118a3565b6113c2816118d6565b840191505092915050565b60006113da602383611819565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611440602283611819565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006114a6601b83611819565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b60006114e6601283611819565b91507f4f6e6c792064756d622077616c6c6574732e00000000000000000000000000006000830152602082019050919050565b6000611526602183611819565b91507f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061158c602583611819565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006115f2602483611819565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b61165481611868565b82525050565b61166381611872565b82525050565b600060208201905061167e6000830184611376565b92915050565b60006020820190506116996000830184611385565b92915050565b600060208201905081810360008301526116b98184611394565b905092915050565b600060208201905081810360008301526116da816113cd565b9050919050565b600060208201905081810360008301526116fa81611433565b9050919050565b6000602082019050818103600083015261171a81611499565b9050919050565b6000602082019050818103600083015261173a816114d9565b9050919050565b6000602082019050818103600083015261175a81611519565b9050919050565b6000602082019050818103600083015261177a8161157f565b9050919050565b6000602082019050818103600083015261179a816115e5565b9050919050565b60006020820190506117b6600083018461164b565b92915050565b60006060820190506117d1600083018661164b565b6117de602083018561164b565b6117eb6040830184611367565b949350505050565b6000602082019050611808600083018461165a565b92915050565b600081519050919050565b600082825260208201905092915050565b600061183582611848565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061188a82611891565b9050919050565b600061189c82611848565b9050919050565b60005b838110156118c15780820151818401526020810190506118a6565b838111156118d0576000848401525b50505050565b6000601f19601f8301169050919050565b6118f08161182a565b81146118fb57600080fd5b50565b61190781611868565b811461191257600080fd5b5056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212206999ebcf68fe03b6881af90db2b33361074c5bfde614d41760aa879c96fd043864736f6c634300060c0033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a9059cbb11610066578063a9059cbb14610275578063bd213b28146102a5578063cadc8d9a146102c3578063dd62ed3e146102f5576100ea565b806370a08231146101f757806395d89b4114610227578063a457c2d714610245576100ea565b806318160ddd116100c857806318160ddd1461015b57806323b872dd14610179578063313ce567146101a957806339509351146101c7576100ea565b806306fdde03146100ef5780630706b1f51461010d578063095ea7b31461012b575b600080fd5b6100f7610325565b604051610104919061169f565b60405180910390f35b6101156103c7565b6040516101229190611684565b60405180910390f35b6101456004803603810190610140919061132b565b6103ed565b6040516101529190611669565b60405180910390f35b61016361040b565b60405161017091906117a1565b60405180910390f35b610193600480360381019061018e91906112dc565b610415565b6040516101a09190611669565b60405180910390f35b6101b16104ee565b6040516101be91906117f3565b60405180910390f35b6101e160048036038101906101dc919061132b565b610505565b6040516101ee9190611669565b60405180910390f35b610211600480360381019061020c9190611277565b6105b8565b60405161021e91906117a1565b60405180910390f35b61022f610600565b60405161023c919061169f565b60405180910390f35b61025f600480360381019061025a919061132b565b6106a2565b60405161026c9190611669565b60405180910390f35b61028f600480360381019061028a919061132b565b61076f565b60405161029c9190611669565b60405180910390f35b6102ad61078d565b6040516102ba91906117a1565b60405180910390f35b6102dd60048036038101906102d8919061132b565b610a4d565b6040516102ec939291906117bc565b60405180910390f35b61030f600480360381019061030a91906112a0565b610ab1565b60405161031c91906117a1565b60405180910390f35b606060038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103bd5780601f10610392576101008083540402835291602001916103bd565b820191906000526020600020905b8154815290600101906020018083116103a057829003601f168201915b5050505050905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006104016103fa610b8d565b8484610b95565b6001905092915050565b6000600254905090565b6000610422848484610d60565b6104e38461042e610b8d565b6104de8560405180606001604052806028815260200161195e60289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610494610b8d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ff59092919063ffffffff16565b610b95565b600190509392505050565b6000600560009054906101000a900460ff16905090565b60006105ae610512610b8d565b846105a98560016000610523610b8d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b3890919063ffffffff16565b610b95565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106985780601f1061066d57610100808354040283529160200191610698565b820191906000526020600020905b81548152906001019060200180831161067b57829003601f168201915b5050505050905090565b60006107656106af610b8d565b846107608560405180606001604052806025815260200161198660259139600160006106d9610b8d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ff59092919063ffffffff16565b610b95565b6001905092915050565b600061078361077c610b8d565b8484610d60565b6001905092915050565b60003273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f490611721565b60405180910390fd5b61080f33670de0b6b3a7640000611050565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405280600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905081526020014281526020013373ffffffffffffffffffffffffffffffffffffffff168152509080600181540180825580915050600190039060005260206000209060030201600090919091909150600082015181600001556020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506006604051806060016040528060068054905081526020014281526020013373ffffffffffffffffffffffffffffffffffffffff168152509080600181540180825580915050600190039060005260206000209060030201600090919091909150600082015181600001556020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505090565b60076020528160005260406000208181548110610a6657fe5b9060005260206000209060030201600091509150508060000154908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905083565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080828401905083811015610b83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7a90611701565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfc90611781565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6c906116e1565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d5391906117a1565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610dd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc790611761565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e37906116c1565b60405180910390fd5b610e4b8383836111fe565b610eb681604051806060016040528060268152602001611938602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ff59092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f49816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b3890919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610fe891906117a1565b60405180910390a3505050565b600083831115829061103d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611034919061169f565b60405180910390fd5b5060008385039050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b790611741565b60405180910390fd5b6110cc826000836111fe565b61113781604051806060016040528060228152602001611916602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ff59092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061118e8160025461120390919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111f291906117a1565b60405180910390a35050565b505050565b600061124583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ff5565b905092915050565b60008135905061125c816118e7565b92915050565b600081359050611271816118fe565b92915050565b60006020828403121561128957600080fd5b60006112978482850161124d565b91505092915050565b600080604083850312156112b357600080fd5b60006112c18582860161124d565b92505060206112d28582860161124d565b9150509250929050565b6000806000606084860312156112f157600080fd5b60006112ff8682870161124d565b93505060206113108682870161124d565b925050604061132186828701611262565b9150509250925092565b6000806040838503121561133e57600080fd5b600061134c8582860161124d565b925050602061135d85828601611262565b9150509250929050565b6113708161182a565b82525050565b61137f8161183c565b82525050565b61138e8161187f565b82525050565b600061139f8261180e565b6113a98185611819565b93506113b98185602086016118a3565b6113c2816118d6565b840191505092915050565b60006113da602383611819565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611440602283611819565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006114a6601b83611819565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b60006114e6601283611819565b91507f4f6e6c792064756d622077616c6c6574732e00000000000000000000000000006000830152602082019050919050565b6000611526602183611819565b91507f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061158c602583611819565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006115f2602483611819565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b61165481611868565b82525050565b61166381611872565b82525050565b600060208201905061167e6000830184611376565b92915050565b60006020820190506116996000830184611385565b92915050565b600060208201905081810360008301526116b98184611394565b905092915050565b600060208201905081810360008301526116da816113cd565b9050919050565b600060208201905081810360008301526116fa81611433565b9050919050565b6000602082019050818103600083015261171a81611499565b9050919050565b6000602082019050818103600083015261173a816114d9565b9050919050565b6000602082019050818103600083015261175a81611519565b9050919050565b6000602082019050818103600083015261177a8161157f565b9050919050565b6000602082019050818103600083015261179a816115e5565b9050919050565b60006020820190506117b6600083018461164b565b92915050565b60006060820190506117d1600083018661164b565b6117de602083018561164b565b6117eb6040830184611367565b949350505050565b6000602082019050611808600083018461165a565b92915050565b600081519050919050565b600082825260208201905092915050565b600061183582611848565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061188a82611891565b9050919050565b600061189c82611848565b9050919050565b60005b838110156118c15780820151818401526020810190506118a6565b838111156118d0576000848401525b50505050565b6000601f19601f8301169050919050565b6118f08161182a565b81146118fb57600080fd5b50565b61190781611868565b811461191257600080fd5b5056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212206999ebcf68fe03b6881af90db2b33361074c5bfde614d41760aa879c96fd043864736f6c634300060c0033

Deployed Bytecode Sourcemap

26463:1460:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17379:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26543:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19485:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18454:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20128:321;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18306:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20858:218;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18617:119;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17581:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21579:269;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18949:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27013:678;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26606:50;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;19187:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17379:83;17416:13;17449:5;17442:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17379:83;:::o;26543:31::-;;;;;;;;;;;;;:::o;19485:169::-;19568:4;19585:39;19594:12;:10;:12::i;:::-;19608:7;19617:6;19585:8;:39::i;:::-;19642:4;19635:11;;19485:169;;;;:::o;18454:100::-;18507:7;18534:12;;18527:19;;18454:100;:::o;20128:321::-;20234:4;20251:36;20261:6;20269:9;20280:6;20251:9;:36::i;:::-;20298:121;20307:6;20315:12;:10;:12::i;:::-;20329:89;20367:6;20329:89;;;;;;;;;;;;;;;;;:11;:19;20341:6;20329:19;;;;;;;;;;;;;;;:33;20349:12;:10;:12::i;:::-;20329:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;20298:8;:121::i;:::-;20437:4;20430:11;;20128:321;;;;;:::o;18306:83::-;18347:5;18372:9;;;;;;;;;;;18365:16;;18306:83;:::o;20858:218::-;20946:4;20963:83;20972:12;:10;:12::i;:::-;20986:7;20995:50;21034:10;20995:11;:25;21007:12;:10;:12::i;:::-;20995:25;;;;;;;;;;;;;;;:34;21021:7;20995:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;20963:8;:83::i;:::-;21064:4;21057:11;;20858:218;;;;:::o;18617:119::-;18683:7;18710:9;:18;18720:7;18710:18;;;;;;;;;;;;;;;;18703:25;;18617:119;;;:::o;17581:87::-;17620:13;17653:7;17646:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17581:87;:::o;21579:269::-;21672:4;21689:129;21698:12;:10;:12::i;:::-;21712:7;21721:96;21760:15;21721:96;;;;;;;;;;;;;;;;;:11;:25;21733:12;:10;:12::i;:::-;21721:25;;;;;;;;;;;;;;;:34;21747:7;21721:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;21689:8;:129::i;:::-;21836:4;21829:11;;21579:269;;;;:::o;18949:175::-;19035:4;19052:42;19062:12;:10;:12::i;:::-;19076:9;19087:6;19052:9;:42::i;:::-;19112:4;19105:11;;18949:175;;;;:::o;27013:678::-;27051:15;27101:9;27087:23;;:10;:23;;;27079:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;27144:23;27150:10;27162:4;27144:5;:23::i;:::-;27198:14;:26;27213:10;27198:26;;;;;;;;;;;;;;;:33;;;;27188:43;;27244:14;:26;27259:10;27244:26;;;;;;;;;;;;;;;27290:172;;;;;;;;27321:14;:26;27336:10;27321:26;;;;;;;;;;;;;;;:33;;;;27290:172;;;;27385:15;27290:172;;;;27436:10;27290:172;;;;;27244:229;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27486:9;27515:157;;;;;;;;27546:9;:16;;;;27515:157;;;;27593:15;27515:157;;;;27644:10;27515:157;;;;;27486:197;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27013:678;:::o;26606:50::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;19187:151::-;19276:7;19303:11;:18;19315:5;19303:18;;;;;;;;;;;;;;;:27;19322:7;19303:27;;;;;;;;;;;;;;;;19296:34;;19187:151;;;;:::o;4668:181::-;4726:7;4746:9;4762:1;4758;:5;4746:17;;4787:1;4782;:6;;4774:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4840:1;4833:8;;;4668:181;;;;:::o;570:106::-;623:15;658:10;651:17;;570:106;:::o;24724:346::-;24843:1;24826:19;;:5;:19;;;;24818:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24924:1;24905:21;;:7;:21;;;;24897:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25008:6;24978:11;:18;24990:5;24978:18;;;;;;;;;;;;;;;:27;24997:7;24978:27;;;;;;;;;;;;;;;:36;;;;25046:7;25030:32;;25039:5;25030:32;;;25055:6;25030:32;;;;;;:::i;:::-;;;;;;;;24724:346;;;:::o;22338:539::-;22462:1;22444:20;;:6;:20;;;;22436:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;22546:1;22525:23;;:9;:23;;;;22517:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;22601:47;22622:6;22630:9;22641:6;22601:20;:47::i;:::-;22681:71;22703:6;22681:71;;;;;;;;;;;;;;;;;:9;:17;22691:6;22681:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;22661:9;:17;22671:6;22661:17;;;;;;;;;;;;;;;:91;;;;22786:32;22811:6;22786:9;:20;22796:9;22786:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;22763:9;:20;22773:9;22763:20;;;;;;;;;;;;;;;:55;;;;22851:9;22834:35;;22843:6;22834:35;;;22862:6;22834:35;;;;;;:::i;:::-;;;;;;;;22338:539;;;:::o;5571:192::-;5657:7;5690:1;5685;:6;;5693:12;5677:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5717:9;5733:1;5729;:5;5717:17;;5754:1;5747:8;;;5571:192;;;;;:::o;23868:418::-;23971:1;23952:21;;:7;:21;;;;23944:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;24024:49;24045:7;24062:1;24066:6;24024:20;:49::i;:::-;24107:68;24130:6;24107:68;;;;;;;;;;;;;;;;;:9;:18;24117:7;24107:18;;;;;;;;;;;;;;;;:22;;:68;;;;;:::i;:::-;24086:9;:18;24096:7;24086:18;;;;;;;;;;;;;;;:89;;;;24201:24;24218:6;24201:12;;:16;;:24;;;;:::i;:::-;24186:12;:39;;;;24267:1;24241:37;;24250:7;24241:37;;;24271:6;24241:37;;;;;;:::i;:::-;;;;;;;;23868:418;;:::o;27699:219::-;;;;:::o;5132:136::-;5190:7;5217:43;5221:1;5224;5217:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;5210:50;;5132:136;;;;:::o;5:130:-1:-;;85:6;72:20;63:29;;97:33;124:5;97:33;:::i;:::-;57:78;;;;:::o;142:130::-;;222:6;209:20;200:29;;234:33;261:5;234:33;:::i;:::-;194:78;;;;:::o;279:241::-;;383:2;371:9;362:7;358:23;354:32;351:2;;;399:1;396;389:12;351:2;434:1;451:53;496:7;487:6;476:9;472:22;451:53;:::i;:::-;441:63;;413:97;345:175;;;;:::o;527:366::-;;;648:2;636:9;627:7;623:23;619:32;616:2;;;664:1;661;654:12;616:2;699:1;716:53;761:7;752:6;741:9;737:22;716:53;:::i;:::-;706:63;;678:97;806:2;824:53;869:7;860:6;849:9;845:22;824:53;:::i;:::-;814:63;;785:98;610:283;;;;;:::o;900:491::-;;;;1038:2;1026:9;1017:7;1013:23;1009:32;1006:2;;;1054:1;1051;1044:12;1006:2;1089:1;1106:53;1151:7;1142:6;1131:9;1127:22;1106:53;:::i;:::-;1096:63;;1068:97;1196:2;1214:53;1259:7;1250:6;1239:9;1235:22;1214:53;:::i;:::-;1204:63;;1175:98;1304:2;1322:53;1367:7;1358:6;1347:9;1343:22;1322:53;:::i;:::-;1312:63;;1283:98;1000:391;;;;;:::o;1398:366::-;;;1519:2;1507:9;1498:7;1494:23;1490:32;1487:2;;;1535:1;1532;1525:12;1487:2;1570:1;1587:53;1632:7;1623:6;1612:9;1608:22;1587:53;:::i;:::-;1577:63;;1549:97;1677:2;1695:53;1740:7;1731:6;1720:9;1716:22;1695:53;:::i;:::-;1685:63;;1656:98;1481:283;;;;;:::o;1771:113::-;1854:24;1872:5;1854:24;:::i;:::-;1849:3;1842:37;1836:48;;:::o;1891:104::-;1968:21;1983:5;1968:21;:::i;:::-;1963:3;1956:34;1950:45;;:::o;2002:166::-;2105:57;2156:5;2105:57;:::i;:::-;2100:3;2093:70;2087:81;;:::o;2175:347::-;;2287:39;2320:5;2287:39;:::i;:::-;2338:71;2402:6;2397:3;2338:71;:::i;:::-;2331:78;;2414:52;2459:6;2454:3;2447:4;2440:5;2436:16;2414:52;:::i;:::-;2487:29;2509:6;2487:29;:::i;:::-;2482:3;2478:39;2471:46;;2267:255;;;;;:::o;2530:372::-;;2690:67;2754:2;2749:3;2690:67;:::i;:::-;2683:74;;2790:34;2786:1;2781:3;2777:11;2770:55;2859:5;2854:2;2849:3;2845:12;2838:27;2893:2;2888:3;2884:12;2877:19;;2676:226;;;:::o;2911:371::-;;3071:67;3135:2;3130:3;3071:67;:::i;:::-;3064:74;;3171:34;3167:1;3162:3;3158:11;3151:55;3240:4;3235:2;3230:3;3226:12;3219:26;3273:2;3268:3;3264:12;3257:19;;3057:225;;;:::o;3291:327::-;;3451:67;3515:2;3510:3;3451:67;:::i;:::-;3444:74;;3551:29;3547:1;3542:3;3538:11;3531:50;3609:2;3604:3;3600:12;3593:19;;3437:181;;;:::o;3627:318::-;;3787:67;3851:2;3846:3;3787:67;:::i;:::-;3780:74;;3887:20;3883:1;3878:3;3874:11;3867:41;3936:2;3931:3;3927:12;3920:19;;3773:172;;;:::o;3954:370::-;;4114:67;4178:2;4173:3;4114:67;:::i;:::-;4107:74;;4214:34;4210:1;4205:3;4201:11;4194:55;4283:3;4278:2;4273:3;4269:12;4262:25;4315:2;4310:3;4306:12;4299:19;;4100:224;;;:::o;4333:374::-;;4493:67;4557:2;4552:3;4493:67;:::i;:::-;4486:74;;4593:34;4589:1;4584:3;4580:11;4573:55;4662:7;4657:2;4652:3;4648:12;4641:29;4698:2;4693:3;4689:12;4682:19;;4479:228;;;:::o;4716:373::-;;4876:67;4940:2;4935:3;4876:67;:::i;:::-;4869:74;;4976:34;4972:1;4967:3;4963:11;4956:55;5045:6;5040:2;5035:3;5031:12;5024:28;5080:2;5075:3;5071:12;5064:19;;4862:227;;;:::o;5097:113::-;5180:24;5198:5;5180:24;:::i;:::-;5175:3;5168:37;5162:48;;:::o;5217:107::-;5296:22;5312:5;5296:22;:::i;:::-;5291:3;5284:35;5278:46;;:::o;5331:210::-;;5452:2;5441:9;5437:18;5429:26;;5466:65;5528:1;5517:9;5513:17;5504:6;5466:65;:::i;:::-;5423:118;;;;:::o;5548:262::-;;5695:2;5684:9;5680:18;5672:26;;5709:91;5797:1;5786:9;5782:17;5773:6;5709:91;:::i;:::-;5666:144;;;;:::o;5817:310::-;;5964:2;5953:9;5949:18;5941:26;;6014:9;6008:4;6004:20;6000:1;5989:9;5985:17;5978:47;6039:78;6112:4;6103:6;6039:78;:::i;:::-;6031:86;;5935:192;;;;:::o;6134:416::-;;6334:2;6323:9;6319:18;6311:26;;6384:9;6378:4;6374:20;6370:1;6359:9;6355:17;6348:47;6409:131;6535:4;6409:131;:::i;:::-;6401:139;;6305:245;;;:::o;6557:416::-;;6757:2;6746:9;6742:18;6734:26;;6807:9;6801:4;6797:20;6793:1;6782:9;6778:17;6771:47;6832:131;6958:4;6832:131;:::i;:::-;6824:139;;6728:245;;;:::o;6980:416::-;;7180:2;7169:9;7165:18;7157:26;;7230:9;7224:4;7220:20;7216:1;7205:9;7201:17;7194:47;7255:131;7381:4;7255:131;:::i;:::-;7247:139;;7151:245;;;:::o;7403:416::-;;7603:2;7592:9;7588:18;7580:26;;7653:9;7647:4;7643:20;7639:1;7628:9;7624:17;7617:47;7678:131;7804:4;7678:131;:::i;:::-;7670:139;;7574:245;;;:::o;7826:416::-;;8026:2;8015:9;8011:18;8003:26;;8076:9;8070:4;8066:20;8062:1;8051:9;8047:17;8040:47;8101:131;8227:4;8101:131;:::i;:::-;8093:139;;7997:245;;;:::o;8249:416::-;;8449:2;8438:9;8434:18;8426:26;;8499:9;8493:4;8489:20;8485:1;8474:9;8470:17;8463:47;8524:131;8650:4;8524:131;:::i;:::-;8516:139;;8420:245;;;:::o;8672:416::-;;8872:2;8861:9;8857:18;8849:26;;8922:9;8916:4;8912:20;8908:1;8897:9;8893:17;8886:47;8947:131;9073:4;8947:131;:::i;:::-;8939:139;;8843:245;;;:::o;9095:222::-;;9222:2;9211:9;9207:18;9199:26;;9236:71;9304:1;9293:9;9289:17;9280:6;9236:71;:::i;:::-;9193:124;;;;:::o;9324:444::-;;9507:2;9496:9;9492:18;9484:26;;9521:71;9589:1;9578:9;9574:17;9565:6;9521:71;:::i;:::-;9603:72;9671:2;9660:9;9656:18;9647:6;9603:72;:::i;:::-;9686;9754:2;9743:9;9739:18;9730:6;9686:72;:::i;:::-;9478:290;;;;;;:::o;9775:214::-;;9898:2;9887:9;9883:18;9875:26;;9912:67;9976:1;9965:9;9961:17;9952:6;9912:67;:::i;:::-;9869:120;;;;:::o;9996:122::-;;10090:5;10084:12;10074:22;;10055:63;;;:::o;10126:163::-;;10241:6;10236:3;10229:19;10278:4;10273:3;10269:14;10254:29;;10222:67;;;;:::o;10297:91::-;;10359:24;10377:5;10359:24;:::i;:::-;10348:35;;10342:46;;;:::o;10395:85::-;;10468:5;10461:13;10454:21;10443:32;;10437:43;;;:::o;10487:121::-;;10560:42;10553:5;10549:54;10538:65;;10532:76;;;:::o;10615:72::-;;10677:5;10666:16;;10660:27;;;:::o;10694:81::-;;10765:4;10758:5;10754:16;10743:27;;10737:38;;;:::o;10782:161::-;;10881:57;10932:5;10881:57;:::i;:::-;10868:70;;10862:81;;;:::o;10950:128::-;;11049:24;11067:5;11049:24;:::i;:::-;11036:37;;11030:48;;;:::o;11086:268::-;11151:1;11158:101;11172:6;11169:1;11166:13;11158:101;;;11248:1;11243:3;11239:11;11233:18;11229:1;11224:3;11220:11;11213:39;11194:2;11191:1;11187:10;11182:15;;11158:101;;;11274:6;11271:1;11268:13;11265:2;;;11339:1;11330:6;11325:3;11321:16;11314:27;11265:2;11135:219;;;;:::o;11362:97::-;;11450:2;11446:7;11441:2;11434:5;11430:14;11426:28;11416:38;;11410:49;;;:::o;11467:117::-;11536:24;11554:5;11536:24;:::i;:::-;11529:5;11526:35;11516:2;;11575:1;11572;11565:12;11516:2;11510:74;:::o;11591:117::-;11660:24;11678:5;11660:24;:::i;:::-;11653:5;11650:35;11640:2;;11699:1;11696;11689:12;11640:2;11634:74;:::o

Swarm Source

ipfs://6999ebcf68fe03b6881af90db2b33361074c5bfde614d41760aa879c96fd0438
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.