ETH Price: $3,825.45 (+5.75%)

Token

WHALECOM (WCOM)
 

Overview

Max Total Supply

1,000,000,000,000,000 WCOM

Holders

669 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
youneedtoshill.eth
Balance
528,143.352465575428072704 WCOM

Value
$0.00
0x0B9B2E8c82F9a7e45dBEde2971D567aF8dBd0f21
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

WHALECOM facilitates token micro-launches as we provide a unique NFT Charity Badge to dedicated IDO platforms. WCOM holders benefit from early pre-sale access, while participating IDO platforms diversify with the NFT Badge.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
WHALECOM

Compiler Version
v0.8.3+commit.8d00100c

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-04-21
*/

// File: @openzeppelin/contracts/utils/Address.sol
pragma solidity ^0.8.0;

/**
 * @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 on 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");
        require(isContract(target), "Address: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{ value: value }(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {
        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/IERC20.sol
pragma solidity ^0.8.0;

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

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

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

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

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

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

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

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

// File: @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/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: Whalecom.sol

// SPDX-License-Identifier: Unlicensed
pragma solidity >=0.8.0 <0.9.0;

contract WHALECOM is Context, IERC20, Ownable {
    using Address for address;
    uint256 public constant MAX = ~uint256(0);

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

    mapping(address => bool) private _isExcluded;
    address[] private _excluded;

    uint256 private _tTotal = 10**15 * 10**18;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    string private _name = "WHALECOM";
    string private _symbol = "WCOM";
    uint8 private _decimals = 18;

    constructor() {
        _rOwned[_msgSender()] = _rTotal;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function name() public view returns (string memory) {
        return _name;
    }

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

    function decimals() public view returns (uint8) {
        return _decimals;
    }

    function totalSupply() public view override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        if (_isExcluded[account]) return _tOwned[account];
        return tokenFromReflection(_rOwned[account]);
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()] - amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue);
        return true;
    }

    function isExcluded(address account) public view returns (bool) {
        return _isExcluded[account];
    }

    function totalFees() public view returns (uint256) {
        return _tFeeTotal;
    }

    function reflect(uint256 tAmount) public {
        address sender = _msgSender();
        require(!_isExcluded[sender], "Excluded addresses cannot call this function");
        (uint256 rAmount, , , , ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender] - rAmount;
        _rTotal = _rTotal - rAmount;
        _tFeeTotal = _tFeeTotal + tAmount;
    }

    function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns (uint256) {
        require(tAmount <= _tTotal, "Amount must be less than supply");
        if (!deductTransferFee) {
            (uint256 rAmount, , , , ) = _getValues(tAmount);
            return rAmount;
        } else {
            (, uint256 rTransferAmount, , , ) = _getValues(tAmount);
            return rTransferAmount;
        }
    }

    function tokenFromReflection(uint256 rAmount) public view returns (uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate = _getRate();
        return rAmount / currentRate;
    }

    function excludeAccount(address account) external onlyOwner() {
        require(!_isExcluded[account], "Account is already excluded");
        if (_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcluded[account] = true;
        _excluded.push(account);
    }

    function includeAccount(address account) external onlyOwner() {
        require(_isExcluded[account], "Account is already excluded");
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_excluded[i] == account) {
                _excluded[i] = _excluded[_excluded.length - 1];
                _tOwned[account] = 0;
                _isExcluded[account] = false;
                _excluded.pop();
                break;
            }
        }
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

    function _transfer(address sender, address recipient, uint256 amount) private {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        if (_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferFromExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && _isExcluded[recipient]) {
            _transferToExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferStandard(sender, recipient, amount);
        } else if (_isExcluded[sender] && _isExcluded[recipient]) {
            _transferBothExcluded(sender, recipient, amount);
        } else {
            _transferStandard(sender, recipient, amount);
        }
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee
        ) = _getValues(tAmount);

        _rOwned[sender] = _rOwned[sender] - rAmount;
        _rOwned[recipient] = _rOwned[recipient] + rTransferAmount;
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferToExcluded(address sender, address recipient, uint256 tAmount) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee
        ) = _getValues(tAmount);

        _rOwned[sender] = _rOwned[sender] - rAmount;
        _tOwned[recipient] = _tOwned[recipient] + tTransferAmount;
        _rOwned[recipient] = _rOwned[recipient] + rTransferAmount;
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee
        ) = _getValues(tAmount);

        _tOwned[sender] = _tOwned[sender] - tAmount;
        _rOwned[sender] = _rOwned[sender] - rAmount;
        _rOwned[recipient] = _rOwned[recipient] + rTransferAmount;
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee
        ) = _getValues(tAmount);

        _tOwned[sender] = _tOwned[sender] - tAmount;
        _rOwned[sender] = _rOwned[sender] - rAmount;
        _tOwned[recipient] = _tOwned[recipient] + tTransferAmount;
        _rOwned[recipient] = _rOwned[recipient] + rTransferAmount;
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal - rFee;
        _tFeeTotal = _tFeeTotal + tFee;
    }

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee) = _getTValues(tAmount);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee);
    }

    function _getTValues(uint256 tAmount) private pure returns (uint256, uint256) {
        uint256 tFee = tAmount / 100 * 2;
        uint256 tTransferAmount = tAmount - tFee;
        return (tTransferAmount, tFee);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 currentRate)
        private
        pure
        returns (uint256, uint256, uint256)
    {
        uint256 rAmount = tAmount * currentRate;
        uint256 rFee = tFee * currentRate;
        uint256 rTransferAmount = rAmount - rFee;
        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply / tSupply;
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
            rSupply = rSupply - _rOwned[_excluded[i]];
            tSupply = tSupply - _tOwned[_excluded[i]];
        }
        if (rSupply < _rTotal / _tTotal) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"MAX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"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":"account","type":"address"}],"name":"excludeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeAccount","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":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"reflect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526d314dc6448d9338c15b0a000000006006819055620000269060001962000250565b6200003490600019620001ef565b600755604080518082019091526008808252675748414c45434f4d60c01b6020909201918252620000689160099162000149565b506040805180820190915260048082526357434f4d60e01b60209092019182526200009691600a9162000149565b50600b805460ff19166012179055348015620000b157600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600754336000818152600160209081526040808320949094556006549351938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000271565b828054620001579062000213565b90600052602060002090601f0160209004810192826200017b5760008555620001c6565b82601f106200019657805160ff1916838001178555620001c6565b82800160010185558215620001c6579182015b82811115620001c6578251825591602001919060010190620001a9565b50620001d4929150620001d8565b5090565b5b80821115620001d45760008155600101620001d9565b6000828210156200020e57634e487b7160e01b81526011600452602481fd5b500390565b600181811c908216806200022857607f821691505b602082108114156200024a57634e487b7160e01b600052602260045260246000fd5b50919050565b6000826200026c57634e487b7160e01b81526012600452602481fd5b500690565b61173d80620002816000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c8063715018a6116100b8578063cba0e9961161007c578063cba0e9961461027c578063d49d5181146102a8578063dd62ed3e146102b1578063f2cc0c18146102ea578063f2fde38b146102fd578063f84354f11461031057610142565b8063715018a61461022b5780638da5cb5b1461023357806395d89b411461024e578063a457c2d714610256578063a9059cbb1461026957610142565b806323b872dd1161010a57806323b872dd146101b75780632d838119146101ca578063313ce567146101dd57806339509351146101f25780634549b0391461020557806370a082311461021857610142565b8063053ab1821461014757806306fdde031461015c578063095ea7b31461017a57806313114a9d1461019d57806318160ddd146101af575b600080fd5b61015a61015536600461155a565b610323565b005b610164610413565b60405161017191906115a5565b60405180910390f35b61018d610188366004611531565b6104a5565b6040519015158152602001610171565b6008545b604051908152602001610171565b6006546101a1565b61018d6101c53660046114f6565b6104bc565b6101a16101d836600461155a565b61050e565b600b5460405160ff9091168152602001610171565b61018d610200366004611531565b610594565b6101a1610213366004611572565b6105cb565b6101a16102263660046114a3565b610656565b61015a6106b8565b6000546040516001600160a01b039091168152602001610171565b61016461072c565b61018d610264366004611531565b61073b565b61018d610277366004611531565b610772565b61018d61028a3660046114a3565b6001600160a01b031660009081526004602052604090205460ff1690565b6101a160001981565b6101a16102bf3660046114c4565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b61015a6102f83660046114a3565b61077f565b61015a61030b3660046114a3565b6108d2565b61015a61031e3660046114a3565b6109bc565b3360008181526004602052604090205460ff161561039d5760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b60648201526084015b60405180910390fd5b60006103a883610bac565b5050506001600160a01b0384166000908152600160205260409020549192506103d391839150611684565b6001600160a01b0383166000908152600160205260409020556007546103fa908290611684565b60075560085461040b90849061162d565b600855505050565b6060600980546104229061169b565b80601f016020809104026020016040519081016040528092919081815260200182805461044e9061169b565b801561049b5780601f106104705761010080835404028352916020019161049b565b820191906000526020600020905b81548152906001019060200180831161047e57829003601f168201915b5050505050905090565b60006104b2338484610bf8565b5060015b92915050565b60006104c9848484610d1c565b6001600160a01b0384166000908152600360209081526040808320338085529252909120546105049186916104ff908690611684565b610bf8565b5060019392505050565b60006007548211156105755760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610394565b600061057f610f9d565b905061058b8184611645565b9150505b919050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916104b29185906104ff90869061162d565b600060065483111561061f5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610394565b8161063d57600061062f84610bac565b509294506104b69350505050565b600061064884610bac565b509194506104b69350505050565b6001600160a01b03811660009081526004602052604081205460ff161561069657506001600160a01b03811660009081526002602052604090205461058f565b6001600160a01b0382166000908152600160205260409020546104b69061050e565b6000546001600160a01b031633146106e25760405162461bcd60e51b8152600401610394906115f8565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6060600a80546104229061169b565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916104b29185906104ff908690611684565b60006104b2338484610d1c565b6000546001600160a01b031633146107a95760405162461bcd60e51b8152600401610394906115f8565b6001600160a01b03811660009081526004602052604090205460ff16156108125760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610394565b6001600160a01b0381166000908152600160205260409020541561086c576001600160a01b0381166000908152600160205260409020546108529061050e565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600460205260408120805460ff191660019081179091556005805491820181559091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319169091179055565b6000546001600160a01b031633146108fc5760405162461bcd60e51b8152600401610394906115f8565b6001600160a01b0381166109615760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610394565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146109e65760405162461bcd60e51b8152600401610394906115f8565b6001600160a01b03811660009081526004602052604090205460ff16610a4e5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610394565b60005b600554811015610ba857816001600160a01b031660058281548110610a8657634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03161415610b965760058054610ab190600190611684565b81548110610acf57634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600580546001600160a01b039092169183908110610b0957634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600490925220805460ff191690556005805480610b6f57634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b0319169055019055610ba8565b80610ba0816116d6565b915050610a51565b5050565b6000806000806000806000610bc088610fc0565b915091506000610bce610f9d565b90506000806000610be08c8686610ff3565b919e909d50909b509599509397509395505050505050565b6001600160a01b038316610c5a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610394565b6001600160a01b038216610cbb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610394565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d805760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610394565b6001600160a01b038216610de25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610394565b60008111610e445760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610394565b6001600160a01b03831660009081526004602052604090205460ff168015610e8557506001600160a01b03821660009081526004602052604090205460ff16155b15610e9a57610e9583838361102f565b610f98565b6001600160a01b03831660009081526004602052604090205460ff16158015610edb57506001600160a01b03821660009081526004602052604090205460ff165b15610eeb57610e9583838361114b565b6001600160a01b03831660009081526004602052604090205460ff16158015610f2d57506001600160a01b03821660009081526004602052604090205460ff16155b15610f3d57610e958383836111f4565b6001600160a01b03831660009081526004602052604090205460ff168015610f7d57506001600160a01b03821660009081526004602052604090205460ff165b15610f8d57610e95838383611236565b610f988383836111f4565b505050565b6000806000610faa6112a8565b9092509050610fb98183611645565b9250505090565b60008080610fcf606485611645565b610fda906002611665565b90506000610fe88286611684565b935090915050915091565b60008080806110028588611665565b905060006110108688611665565b9050600061101e8284611684565b929992985090965090945050505050565b600080600080600061104086610bac565b6001600160a01b038d1660009081526002602052604090205494995092975090955093509150611071908790611684565b6001600160a01b0389166000908152600260209081526040808320939093556001905220546110a1908690611684565b6001600160a01b03808a1660009081526001602052604080822093909355908916815220546110d190859061162d565b6001600160a01b0388166000908152600160205260409020556110f48382611466565b866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161113991815260200190565b60405180910390a35050505050505050565b600080600080600061115c86610bac565b6001600160a01b038d166000908152600160205260409020549499509297509095509350915061118d908690611684565b6001600160a01b03808a16600090815260016020908152604080832094909455918a168152600290915220546111c490839061162d565b6001600160a01b0388166000908152600260209081526040808320939093556001905220546110d190859061162d565b600080600080600061120586610bac565b6001600160a01b038d16600090815260016020526040902054949950929750909550935091506110a1908690611684565b600080600080600061124786610bac565b6001600160a01b038d1660009081526002602052604090205494995092975090955093509150611278908790611684565b6001600160a01b03891660009081526002602090815260408083209390935560019052205461118d908690611684565b6007546006546000918291825b600554811015611433578260016000600584815481106112e557634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054118061135e575081600260006005848154811061133757634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156113755760075460065494509450505050611462565b600160006005838154811061139a57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020546113c99084611684565b925060026000600583815481106113f057634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0316835282019290925260400190205461141f9083611684565b91508061142b816116d6565b9150506112b5565b506006546007546114449190611645565b82101561145c57600754600654935093505050611462565b90925090505b9091565b816007546114749190611684565b60075560085461148590829061162d565b6008555050565b80356001600160a01b038116811461058f57600080fd5b6000602082840312156114b4578081fd5b6114bd8261148c565b9392505050565b600080604083850312156114d6578081fd5b6114df8361148c565b91506114ed6020840161148c565b90509250929050565b60008060006060848603121561150a578081fd5b6115138461148c565b92506115216020850161148c565b9150604084013590509250925092565b60008060408385031215611543578182fd5b61154c8361148c565b946020939093013593505050565b60006020828403121561156b578081fd5b5035919050565b60008060408385031215611584578182fd5b823591506020830135801515811461159a578182fd5b809150509250929050565b6000602080835283518082850152825b818110156115d1578581018301518582016040015282016115b5565b818111156115e25783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115611640576116406116f1565b500190565b60008261166057634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561167f5761167f6116f1565b500290565b600082821015611696576116966116f1565b500390565b600181811c908216806116af57607f821691505b602082108114156116d057634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156116ea576116ea6116f1565b5060010190565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220ab600c1fd4c356859e5f9e6cb4e57ea37d37d3a17126194414c2dd2e3232edd064736f6c63430008030033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101425760003560e01c8063715018a6116100b8578063cba0e9961161007c578063cba0e9961461027c578063d49d5181146102a8578063dd62ed3e146102b1578063f2cc0c18146102ea578063f2fde38b146102fd578063f84354f11461031057610142565b8063715018a61461022b5780638da5cb5b1461023357806395d89b411461024e578063a457c2d714610256578063a9059cbb1461026957610142565b806323b872dd1161010a57806323b872dd146101b75780632d838119146101ca578063313ce567146101dd57806339509351146101f25780634549b0391461020557806370a082311461021857610142565b8063053ab1821461014757806306fdde031461015c578063095ea7b31461017a57806313114a9d1461019d57806318160ddd146101af575b600080fd5b61015a61015536600461155a565b610323565b005b610164610413565b60405161017191906115a5565b60405180910390f35b61018d610188366004611531565b6104a5565b6040519015158152602001610171565b6008545b604051908152602001610171565b6006546101a1565b61018d6101c53660046114f6565b6104bc565b6101a16101d836600461155a565b61050e565b600b5460405160ff9091168152602001610171565b61018d610200366004611531565b610594565b6101a1610213366004611572565b6105cb565b6101a16102263660046114a3565b610656565b61015a6106b8565b6000546040516001600160a01b039091168152602001610171565b61016461072c565b61018d610264366004611531565b61073b565b61018d610277366004611531565b610772565b61018d61028a3660046114a3565b6001600160a01b031660009081526004602052604090205460ff1690565b6101a160001981565b6101a16102bf3660046114c4565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b61015a6102f83660046114a3565b61077f565b61015a61030b3660046114a3565b6108d2565b61015a61031e3660046114a3565b6109bc565b3360008181526004602052604090205460ff161561039d5760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b60648201526084015b60405180910390fd5b60006103a883610bac565b5050506001600160a01b0384166000908152600160205260409020549192506103d391839150611684565b6001600160a01b0383166000908152600160205260409020556007546103fa908290611684565b60075560085461040b90849061162d565b600855505050565b6060600980546104229061169b565b80601f016020809104026020016040519081016040528092919081815260200182805461044e9061169b565b801561049b5780601f106104705761010080835404028352916020019161049b565b820191906000526020600020905b81548152906001019060200180831161047e57829003601f168201915b5050505050905090565b60006104b2338484610bf8565b5060015b92915050565b60006104c9848484610d1c565b6001600160a01b0384166000908152600360209081526040808320338085529252909120546105049186916104ff908690611684565b610bf8565b5060019392505050565b60006007548211156105755760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610394565b600061057f610f9d565b905061058b8184611645565b9150505b919050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916104b29185906104ff90869061162d565b600060065483111561061f5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610394565b8161063d57600061062f84610bac565b509294506104b69350505050565b600061064884610bac565b509194506104b69350505050565b6001600160a01b03811660009081526004602052604081205460ff161561069657506001600160a01b03811660009081526002602052604090205461058f565b6001600160a01b0382166000908152600160205260409020546104b69061050e565b6000546001600160a01b031633146106e25760405162461bcd60e51b8152600401610394906115f8565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6060600a80546104229061169b565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916104b29185906104ff908690611684565b60006104b2338484610d1c565b6000546001600160a01b031633146107a95760405162461bcd60e51b8152600401610394906115f8565b6001600160a01b03811660009081526004602052604090205460ff16156108125760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610394565b6001600160a01b0381166000908152600160205260409020541561086c576001600160a01b0381166000908152600160205260409020546108529061050e565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600460205260408120805460ff191660019081179091556005805491820181559091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319169091179055565b6000546001600160a01b031633146108fc5760405162461bcd60e51b8152600401610394906115f8565b6001600160a01b0381166109615760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610394565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146109e65760405162461bcd60e51b8152600401610394906115f8565b6001600160a01b03811660009081526004602052604090205460ff16610a4e5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610394565b60005b600554811015610ba857816001600160a01b031660058281548110610a8657634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03161415610b965760058054610ab190600190611684565b81548110610acf57634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600580546001600160a01b039092169183908110610b0957634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600490925220805460ff191690556005805480610b6f57634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b0319169055019055610ba8565b80610ba0816116d6565b915050610a51565b5050565b6000806000806000806000610bc088610fc0565b915091506000610bce610f9d565b90506000806000610be08c8686610ff3565b919e909d50909b509599509397509395505050505050565b6001600160a01b038316610c5a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610394565b6001600160a01b038216610cbb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610394565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d805760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610394565b6001600160a01b038216610de25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610394565b60008111610e445760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610394565b6001600160a01b03831660009081526004602052604090205460ff168015610e8557506001600160a01b03821660009081526004602052604090205460ff16155b15610e9a57610e9583838361102f565b610f98565b6001600160a01b03831660009081526004602052604090205460ff16158015610edb57506001600160a01b03821660009081526004602052604090205460ff165b15610eeb57610e9583838361114b565b6001600160a01b03831660009081526004602052604090205460ff16158015610f2d57506001600160a01b03821660009081526004602052604090205460ff16155b15610f3d57610e958383836111f4565b6001600160a01b03831660009081526004602052604090205460ff168015610f7d57506001600160a01b03821660009081526004602052604090205460ff165b15610f8d57610e95838383611236565b610f988383836111f4565b505050565b6000806000610faa6112a8565b9092509050610fb98183611645565b9250505090565b60008080610fcf606485611645565b610fda906002611665565b90506000610fe88286611684565b935090915050915091565b60008080806110028588611665565b905060006110108688611665565b9050600061101e8284611684565b929992985090965090945050505050565b600080600080600061104086610bac565b6001600160a01b038d1660009081526002602052604090205494995092975090955093509150611071908790611684565b6001600160a01b0389166000908152600260209081526040808320939093556001905220546110a1908690611684565b6001600160a01b03808a1660009081526001602052604080822093909355908916815220546110d190859061162d565b6001600160a01b0388166000908152600160205260409020556110f48382611466565b866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161113991815260200190565b60405180910390a35050505050505050565b600080600080600061115c86610bac565b6001600160a01b038d166000908152600160205260409020549499509297509095509350915061118d908690611684565b6001600160a01b03808a16600090815260016020908152604080832094909455918a168152600290915220546111c490839061162d565b6001600160a01b0388166000908152600260209081526040808320939093556001905220546110d190859061162d565b600080600080600061120586610bac565b6001600160a01b038d16600090815260016020526040902054949950929750909550935091506110a1908690611684565b600080600080600061124786610bac565b6001600160a01b038d1660009081526002602052604090205494995092975090955093509150611278908790611684565b6001600160a01b03891660009081526002602090815260408083209390935560019052205461118d908690611684565b6007546006546000918291825b600554811015611433578260016000600584815481106112e557634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054118061135e575081600260006005848154811061133757634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156113755760075460065494509450505050611462565b600160006005838154811061139a57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020546113c99084611684565b925060026000600583815481106113f057634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0316835282019290925260400190205461141f9083611684565b91508061142b816116d6565b9150506112b5565b506006546007546114449190611645565b82101561145c57600754600654935093505050611462565b90925090505b9091565b816007546114749190611684565b60075560085461148590829061162d565b6008555050565b80356001600160a01b038116811461058f57600080fd5b6000602082840312156114b4578081fd5b6114bd8261148c565b9392505050565b600080604083850312156114d6578081fd5b6114df8361148c565b91506114ed6020840161148c565b90509250929050565b60008060006060848603121561150a578081fd5b6115138461148c565b92506115216020850161148c565b9150604084013590509250925092565b60008060408385031215611543578182fd5b61154c8361148c565b946020939093013593505050565b60006020828403121561156b578081fd5b5035919050565b60008060408385031215611584578182fd5b823591506020830135801515811461159a578182fd5b809150509250929050565b6000602080835283518082850152825b818110156115d1578581018301518582016040015282016115b5565b818111156115e25783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115611640576116406116f1565b500190565b60008261166057634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561167f5761167f6116f1565b500290565b600082821015611696576116966116f1565b500390565b600181811c908216806116af57607f821691505b602082108114156116d057634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156116ea576116ea6116f1565b5060010190565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220ab600c1fd4c356859e5f9e6cb4e57ea37d37d3a17126194414c2dd2e3232edd064736f6c63430008030033

Deployed Bytecode Sourcemap

14175:10240:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16982:371;;;;;;:::i;:::-;;:::i;:::-;;14958:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15870:161;;;;;;:::i;:::-;;:::i;:::-;;;2214:14:1;;2207:22;2189:41;;2177:2;2162:18;15870:161:0;2144:92:1;16887:87:0;16956:10;;16887:87;;;7331:25:1;;;7319:2;7304:18;16887:87:0;7286:76:1;15235:95:0;15315:7;;15235:95;;16039:266;;;;;;:::i;:::-;;:::i;17812:250::-;;;;;;:::i;:::-;;:::i;15144:83::-;15210:9;;15144:83;;15210:9;;;;7509:36:1;;7497:2;7482:18;15144:83:0;7464:87:1;16313:215:0;;;;;;:::i;:::-;;:::i;17361:443::-;;;;;;:::i;:::-;;:::i;15338:198::-;;;;;;:::i;:::-;;:::i;13521:148::-;;;:::i;12870:87::-;12916:7;12943:6;12870:87;;-1:-1:-1;;;;;12943:6:0;;;1987:51:1;;1975:2;1960:18;12870:87:0;1942:102:1;15049:87:0;;;:::i;16536:225::-;;;;;;:::i;:::-;;:::i;15544:167::-;;;;;;:::i;:::-;;:::i;16769:110::-;;;;;;:::i;:::-;-1:-1:-1;;;;;16851:20:0;16827:4;16851:20;;;:11;:20;;;;;;;;;16769:110;14260:41;;-1:-1:-1;;14260:41:0;;15719:143;;;;;;:::i;:::-;-1:-1:-1;;;;;15827:18:0;;;15800:7;15827:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;15719:143;18070:333;;;;;;:::i;:::-;;:::i;13824:244::-;;;;;;:::i;:::-;;:::i;18411:478::-;;;;;;:::i;:::-;;:::i;16982:371::-;11514:10;17034:14;17083:19;;;:11;:19;;;;;;;;17082:20;17074:77;;;;-1:-1:-1;;;17074:77:0;;6974:2:1;17074:77:0;;;6956:21:1;7013:2;6993:18;;;6986:30;7052:34;7032:18;;;7025:62;-1:-1:-1;;;7103:18:1;;;7096:42;7155:19;;17074:77:0;;;;;;;;;17163:15;17190:19;17201:7;17190:10;:19::i;:::-;-1:-1:-1;;;;;;;;17238:15:0;;;;;;:7;:15;;;;;;17162:47;;-1:-1:-1;17238:25:0;;17162:47;;-1:-1:-1;17238:25:0;:::i;:::-;-1:-1:-1;;;;;17220:15:0;;;;;;:7;:15;;;;;:43;17284:7;;:17;;17294:7;;17284:17;:::i;:::-;17274:7;:27;17325:10;;:20;;17338:7;;17325:20;:::i;:::-;17312:10;:33;-1:-1:-1;;;16982:371:0:o;14958:83::-;14995:13;15028:5;15021:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14958:83;:::o;15870:161::-;15945:4;15962:39;11514:10;15985:7;15994:6;15962:8;:39::i;:::-;-1:-1:-1;16019:4:0;15870:161;;;;;:::o;16039:266::-;16137:4;16154:36;16164:6;16172:9;16183:6;16154:9;:36::i;:::-;-1:-1:-1;;;;;16232:19:0;;;;;;:11;:19;;;;;;;;11514:10;16232:33;;;;;;;;;16201:74;;16210:6;;16232:42;;16268:6;;16232:42;:::i;:::-;16201:8;:74::i;:::-;-1:-1:-1;16293:4:0;16039:266;;;;;:::o;17812:250::-;17879:7;17918;;17907;:18;;17899:73;;;;-1:-1:-1;;;17899:73:0;;3455:2:1;17899:73:0;;;3437:21:1;3494:2;3474:18;;;3467:30;3533:34;3513:18;;;3506:62;-1:-1:-1;;;3584:18:1;;;3577:40;3634:19;;17899:73:0;3427:232:1;17899:73:0;17983:19;18005:10;:8;:10::i;:::-;17983:32;-1:-1:-1;18033:21:0;17983:32;18033:7;:21;:::i;:::-;18026:28;;;17812:250;;;;:::o;16313:215::-;11514:10;16401:4;16450:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;16450:34:0;;;;;;;;;;16401:4;;16418:80;;16441:7;;16450:47;;16487:10;;16450:47;:::i;17361:443::-;17452:7;17491;;17480;:18;;17472:62;;;;-1:-1:-1;;;17472:62:0;;5032:2:1;17472:62:0;;;5014:21:1;5071:2;5051:18;;;5044:30;5110:33;5090:18;;;5083:61;5161:18;;17472:62:0;5004:181:1;17472:62:0;17550:17;17545:252;;17585:15;17612:19;17623:7;17612:10;:19::i;:::-;-1:-1:-1;17584:47:0;;-1:-1:-1;17646:14:0;;-1:-1:-1;;;;17646:14:0;17545:252;17696:23;17729:19;17740:7;17729:10;:19::i;:::-;-1:-1:-1;17693:55:0;;-1:-1:-1;17763:22:0;;-1:-1:-1;;;;17763:22:0;15338:198;-1:-1:-1;;;;;15428:20:0;;15404:7;15428:20;;;:11;:20;;;;;;;;15424:49;;;-1:-1:-1;;;;;;15457:16:0;;;;;;:7;:16;;;;;;15450:23;;15424:49;-1:-1:-1;;;;;15511:16:0;;;;;;:7;:16;;;;;;15491:37;;:19;:37::i;13521:148::-;12916:7;12943:6;-1:-1:-1;;;;;12943:6:0;11514:10;13090:23;13082:68;;;;-1:-1:-1;;;13082:68:0;;;;;;;:::i;:::-;13628:1:::1;13612:6:::0;;13591:40:::1;::::0;-1:-1:-1;;;;;13612:6:0;;::::1;::::0;13591:40:::1;::::0;13628:1;;13591:40:::1;13659:1;13642:19:::0;;-1:-1:-1;;;;;;13642:19:0::1;::::0;;13521:148::o;15049:87::-;15088:13;15121:7;15114:14;;;;;:::i;16536:225::-;11514:10;16629:4;16678:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;16678:34:0;;;;;;;;;;16629:4;;16646:85;;16669:7;;16678:52;;16715:15;;16678:52;:::i;15544:167::-;15622:4;15639:42;11514:10;15663:9;15674:6;15639:9;:42::i;18070:333::-;12916:7;12943:6;-1:-1:-1;;;;;12943:6:0;11514:10;13090:23;13082:68;;;;-1:-1:-1;;;13082:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18152:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;18151:21;18143:61;;;::::0;-1:-1:-1;;;18143:61:0;;4676:2:1;18143:61:0::1;::::0;::::1;4658:21:1::0;4715:2;4695:18;;;4688:30;4754:29;4734:18;;;4727:57;4801:18;;18143:61:0::1;4648:177:1::0;18143:61:0::1;-1:-1:-1::0;;;;;18219:16:0;::::1;18238:1;18219:16:::0;;;:7:::1;:16;::::0;;;;;:20;18215:109:::1;;-1:-1:-1::0;;;;;18295:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;18275:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;18256:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;18215:109:::1;-1:-1:-1::0;;;;;18334:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;18334:27:0::1;18357:4;18334:27:::0;;::::1;::::0;;;18372:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;18372:23:0::1;::::0;;::::1;::::0;;18070:333::o;13824:244::-;12916:7;12943:6;-1:-1:-1;;;;;12943:6:0;11514:10;13090:23;13082:68;;;;-1:-1:-1;;;13082:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13913:22:0;::::1;13905:73;;;::::0;-1:-1:-1;;;13905:73:0;;3866:2:1;13905:73:0::1;::::0;::::1;3848:21:1::0;3905:2;3885:18;;;3878:30;3944:34;3924:18;;;3917:62;-1:-1:-1;;;3995:18:1;;;3988:36;4041:19;;13905:73:0::1;3838:228:1::0;13905:73:0::1;14015:6;::::0;;13994:38:::1;::::0;-1:-1:-1;;;;;13994:38:0;;::::1;::::0;14015:6;::::1;::::0;13994:38:::1;::::0;::::1;14043:6;:17:::0;;-1:-1:-1;;;;;;14043:17:0::1;-1:-1:-1::0;;;;;14043:17:0;;;::::1;::::0;;;::::1;::::0;;13824:244::o;18411:478::-;12916:7;12943:6;-1:-1:-1;;;;;12943:6:0;11514:10;13090:23;13082:68;;;;-1:-1:-1;;;13082:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18492:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;18484:60;;;::::0;-1:-1:-1;;;18484:60:0;;4676:2:1;18484:60:0::1;::::0;::::1;4658:21:1::0;4715:2;4695:18;;;4688:30;4754:29;4734:18;;;4727:57;4801:18;;18484:60:0::1;4648:177:1::0;18484:60:0::1;18560:9;18555:327;18579:9;:16:::0;18575:20;::::1;18555:327;;;18637:7;-1:-1:-1::0;;;;;18621:23:0::1;:9;18631:1;18621:12;;;;;;-1:-1:-1::0;;;18621:12:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;18621:12:0::1;:23;18617:254;;;18680:9;18690:16:::0;;:20:::1;::::0;18709:1:::1;::::0;18690:20:::1;:::i;:::-;18680:31;;;;;;-1:-1:-1::0;;;18680:31:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;18665:9:::1;:12:::0;;-1:-1:-1;;;;;18680:31:0;;::::1;::::0;18675:1;;18665:12;::::1;;;-1:-1:-1::0;;;18665:12:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;18665:46:0::1;-1:-1:-1::0;;;;;18665:46:0;;::::1;;::::0;;18730:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;18769:11:::1;:20:::0;;;;:28;;-1:-1:-1;;18769:28:0::1;::::0;;18816:9:::1;:15:::0;;;::::1;;-1:-1:-1::0;;;18816:15:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;;-1:-1:-1;;18816:15:0;;;;;-1:-1:-1;;;;;;18816:15:0::1;::::0;;;;;18850:5:::1;;18617:254;18597:3:::0;::::1;::::0;::::1;:::i;:::-;;;;18555:327;;;;18411:478:::0;:::o;22684:410::-;22743:7;22752;22761;22770;22779;22800:23;22825:12;22841:20;22853:7;22841:11;:20::i;:::-;22799:62;;;;22872:19;22894:10;:8;:10::i;:::-;22872:32;;22916:15;22933:23;22958:12;22974:39;22986:7;22995:4;23001:11;22974;:39::i;:::-;22915:98;;;;-1:-1:-1;22915:98:0;;-1:-1:-1;23064:15:0;;-1:-1:-1;23081:4:0;;-1:-1:-1;22684:410:0;;-1:-1:-1;;;;;;22684:410:0:o;18897:337::-;-1:-1:-1;;;;;18990:19:0;;18982:68;;;;-1:-1:-1;;;18982:68:0;;6569:2:1;18982:68:0;;;6551:21:1;6608:2;6588:18;;;6581:30;6647:34;6627:18;;;6620:62;-1:-1:-1;;;6698:18:1;;;6691:34;6742:19;;18982:68:0;6541:226:1;18982:68:0;-1:-1:-1;;;;;19069:21:0;;19061:68;;;;-1:-1:-1;;;19061:68:0;;4273:2:1;19061:68:0;;;4255:21:1;4312:2;4292:18;;;4285:30;4351:34;4331:18;;;4324:62;-1:-1:-1;;;4402:18:1;;;4395:32;4444:19;;19061:68:0;4245:224:1;19061:68:0;-1:-1:-1;;;;;19142:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;19194:32;;7331:25:1;;;19194:32:0;;7304:18:1;19194:32:0;;;;;;;18897:337;;;:::o;19242:931::-;-1:-1:-1;;;;;19339:20:0;;19331:70;;;;-1:-1:-1;;;19331:70:0;;6163:2:1;19331:70:0;;;6145:21:1;6202:2;6182:18;;;6175:30;6241:34;6221:18;;;6214:62;-1:-1:-1;;;6292:18:1;;;6285:35;6337:19;;19331:70:0;6135:227:1;19331:70:0;-1:-1:-1;;;;;19420:23:0;;19412:71;;;;-1:-1:-1;;;19412:71:0;;3051:2:1;19412:71:0;;;3033:21:1;3090:2;3070:18;;;3063:30;3129:34;3109:18;;;3102:62;-1:-1:-1;;;3180:18:1;;;3173:33;3223:19;;19412:71:0;3023:225:1;19412:71:0;19511:1;19502:6;:10;19494:64;;;;-1:-1:-1;;;19494:64:0;;5753:2:1;19494:64:0;;;5735:21:1;5792:2;5772:18;;;5765:30;5831:34;5811:18;;;5804:62;-1:-1:-1;;;5882:18:1;;;5875:39;5931:19;;19494:64:0;5725:231:1;19494:64:0;-1:-1:-1;;;;;19573:19:0;;;;;;:11;:19;;;;;;;;:46;;;;-1:-1:-1;;;;;;19597:22:0;;;;;;:11;:22;;;;;;;;19596:23;19573:46;19569:597;;;19636:48;19658:6;19666:9;19677:6;19636:21;:48::i;:::-;19569:597;;;-1:-1:-1;;;;;19707:19:0;;;;;;:11;:19;;;;;;;;19706:20;:46;;;;-1:-1:-1;;;;;;19730:22:0;;;;;;:11;:22;;;;;;;;19706:46;19702:464;;;19769:46;19789:6;19797:9;19808:6;19769:19;:46::i;19702:464::-;-1:-1:-1;;;;;19838:19:0;;;;;;:11;:19;;;;;;;;19837:20;:47;;;;-1:-1:-1;;;;;;19862:22:0;;;;;;:11;:22;;;;;;;;19861:23;19837:47;19833:333;;;19901:44;19919:6;19927:9;19938:6;19901:17;:44::i;19833:333::-;-1:-1:-1;;;;;19967:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;19990:22:0;;;;;;:11;:22;;;;;;;;19967:45;19963:203;;;20029:48;20051:6;20059:9;20070:6;20029:21;:48::i;19963:203::-;20110:44;20128:6;20136:9;20147:6;20110:17;:44::i;:::-;19242:931;;;:::o;23696:161::-;23738:7;23759:15;23776;23795:19;:17;:19::i;:::-;23758:56;;-1:-1:-1;23758:56:0;-1:-1:-1;23832:17:0;23758:56;;23832:17;:::i;:::-;23825:24;;;;23696:161;:::o;23102:221::-;23162:7;;;23206:13;23216:3;23206:7;:13;:::i;:::-;:17;;23222:1;23206:17;:::i;:::-;23191:32;-1:-1:-1;23234:23:0;23260:14;23191:32;23260:7;:14;:::i;:::-;23234:40;-1:-1:-1;23310:4:0;;-1:-1:-1;;23102:221:0;;;:::o;23331:357::-;23453:7;;;;23514:21;23524:11;23514:7;:21;:::i;:::-;23496:39;-1:-1:-1;23546:12:0;23561:18;23568:11;23561:4;:18;:::i;:::-;23546:33;-1:-1:-1;23590:23:0;23616:14;23546:33;23616:7;:14;:::i;:::-;23649:7;;;;-1:-1:-1;23675:4:0;;-1:-1:-1;23331:357:0;;-1:-1:-1;;;;;23331:357:0:o;21301:575::-;21418:15;21448:23;21486:12;21513:23;21551:12;21577:19;21588:7;21577:10;:19::i;:::-;-1:-1:-1;;;;;21627:15:0;;;;;;:7;:15;;;;;;21403:193;;-1:-1:-1;21403:193:0;;-1:-1:-1;21403:193:0;;-1:-1:-1;21403:193:0;-1:-1:-1;21403:193:0;-1:-1:-1;21627:25:0;;21645:7;;21627:25;:::i;:::-;-1:-1:-1;;;;;21609:15:0;;;;;;:7;:15;;;;;;;;:43;;;;21681:7;:15;;;;:25;;21699:7;;21681:25;:::i;:::-;-1:-1:-1;;;;;21663:15:0;;;;;;;:7;:15;;;;;;:43;;;;21738:18;;;;;;;:36;;21759:15;;21738:36;:::i;:::-;-1:-1:-1;;;;;21717:18:0;;;;;;:7;:18;;;;;:57;21785:23;21797:4;21803;21785:11;:23::i;:::-;21841:9;-1:-1:-1;;;;;21824:44:0;21833:6;-1:-1:-1;;;;;21824:44:0;;21852:15;21824:44;;;;7331:25:1;;7319:2;7304:18;;7286:76;21824:44:0;;;;;;;;21301:575;;;;;;;;:::o;20706:587::-;20821:15;20851:23;20889:12;20916:23;20954:12;20980:19;20991:7;20980:10;:19::i;:::-;-1:-1:-1;;;;;21030:15:0;;;;;;:7;:15;;;;;;20806:193;;-1:-1:-1;20806:193:0;;-1:-1:-1;20806:193:0;;-1:-1:-1;20806:193:0;-1:-1:-1;20806:193:0;-1:-1:-1;21030:25:0;;20806:193;;21030:25;:::i;:::-;-1:-1:-1;;;;;21012:15:0;;;;;;;:7;:15;;;;;;;;:43;;;;21087:18;;;;;:7;:18;;;;;:36;;21108:15;;21087:36;:::i;:::-;-1:-1:-1;;;;;21066:18:0;;;;;;:7;:18;;;;;;;;:57;;;;21155:7;:18;;;;:36;;21176:15;;21155:36;:::i;20181:517::-;20294:15;20324:23;20362:12;20389:23;20427:12;20453:19;20464:7;20453:10;:19::i;:::-;-1:-1:-1;;;;;20503:15:0;;;;;;:7;:15;;;;;;20279:193;;-1:-1:-1;20279:193:0;;-1:-1:-1;20279:193:0;;-1:-1:-1;20279:193:0;-1:-1:-1;20279:193:0;-1:-1:-1;20503:25:0;;20279:193;;20503:25;:::i;21884:643::-;22001:15;22031:23;22069:12;22096:23;22134:12;22160:19;22171:7;22160:10;:19::i;:::-;-1:-1:-1;;;;;22210:15:0;;;;;;:7;:15;;;;;;21986:193;;-1:-1:-1;21986:193:0;;-1:-1:-1;21986:193:0;;-1:-1:-1;21986:193:0;-1:-1:-1;21986:193:0;-1:-1:-1;22210:25:0;;22228:7;;22210:25;:::i;:::-;-1:-1:-1;;;;;22192:15:0;;;;;;:7;:15;;;;;;;;:43;;;;22264:7;:15;;;;:25;;22282:7;;22264:25;:::i;23865:547::-;23963:7;;23999;;23916;;;;;24017:283;24041:9;:16;24037:20;;24017:283;;;24107:7;24083;:21;24091:9;24101:1;24091:12;;;;;;-1:-1:-1;;;24091:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24091:12:0;24083:21;;;;;;;;;;;;;:31;;:66;;;24142:7;24118;:21;24126:9;24136:1;24126:12;;;;;;-1:-1:-1;;;24126:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24126:12:0;24118:21;;;;;;;;;;;;;:31;24083:66;24079:97;;;24159:7;;24168;;24151:25;;;;;;;;;24079:97;24211:7;:21;24219:9;24229:1;24219:12;;;;;;-1:-1:-1;;;24219:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24219:12:0;24211:21;;;;;;;;;;;;;24201:31;;:7;:31;:::i;:::-;24191:41;;24267:7;:21;24275:9;24285:1;24275:12;;;;;;-1:-1:-1;;;24275:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24275:12:0;24267:21;;;;;;;;;;;;;24257:31;;:7;:31;:::i;:::-;24247:41;-1:-1:-1;24059:3:0;;;;:::i;:::-;;;;24017:283;;;;24334:7;;24324;;:17;;;;:::i;:::-;24314:7;:27;24310:58;;;24351:7;;24360;;24343:25;;;;;;;;24310:58;24387:7;;-1:-1:-1;24396:7:0;-1:-1:-1;23865:547:0;;;:::o;22535:141::-;22623:4;22613:7;;:14;;;;:::i;:::-;22603:7;:24;22651:10;;:17;;22664:4;;22651:17;:::i;:::-;22638:10;:30;-1:-1:-1;;22535:141:0:o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:2;;177:1;174;167:12;192:196;;304:2;292:9;283:7;279:23;275:32;272:2;;;325:6;317;310:22;272:2;353:29;372:9;353:29;:::i;:::-;343:39;262:126;-1:-1:-1;;;262:126:1:o;393:270::-;;;522:2;510:9;501:7;497:23;493:32;490:2;;;543:6;535;528:22;490:2;571:29;590:9;571:29;:::i;:::-;561:39;;619:38;653:2;642:9;638:18;619:38;:::i;:::-;609:48;;480:183;;;;;:::o;668:338::-;;;;814:2;802:9;793:7;789:23;785:32;782:2;;;835:6;827;820:22;782:2;863:29;882:9;863:29;:::i;:::-;853:39;;911:38;945:2;934:9;930:18;911:38;:::i;:::-;901:48;;996:2;985:9;981:18;968:32;958:42;;772:234;;;;;:::o;1011:264::-;;;1140:2;1128:9;1119:7;1115:23;1111:32;1108:2;;;1161:6;1153;1146:22;1108:2;1189:29;1208:9;1189:29;:::i;:::-;1179:39;1265:2;1250:18;;;;1237:32;;-1:-1:-1;;;1098:177:1:o;1280:190::-;;1392:2;1380:9;1371:7;1367:23;1363:32;1360:2;;;1413:6;1405;1398:22;1360:2;-1:-1:-1;1441:23:1;;1350:120;-1:-1:-1;1350:120:1:o;1475:361::-;;;1601:2;1589:9;1580:7;1576:23;1572:32;1569:2;;;1622:6;1614;1607:22;1569:2;1663:9;1650:23;1640:33;;1723:2;1712:9;1708:18;1695:32;1770:5;1763:13;1756:21;1749:5;1746:32;1736:2;;1797:6;1789;1782:22;1736:2;1825:5;1815:15;;;1559:277;;;;;:::o;2241:603::-;;2382:2;2411;2400:9;2393:21;2443:6;2437:13;2486:6;2481:2;2470:9;2466:18;2459:34;2511:4;2524:140;2538:6;2535:1;2532:13;2524:140;;;2633:14;;;2629:23;;2623:30;2599:17;;;2618:2;2595:26;2588:66;2553:10;;2524:140;;;2682:6;2679:1;2676:13;2673:2;;;2752:4;2747:2;2738:6;2727:9;2723:22;2719:31;2712:45;2673:2;-1:-1:-1;2828:2:1;2807:15;-1:-1:-1;;2803:29:1;2788:45;;;;2835:2;2784:54;;2362:482;-1:-1:-1;;;2362:482:1:o;5190:356::-;5392:2;5374:21;;;5411:18;;;5404:30;5470:34;5465:2;5450:18;;5443:62;5537:2;5522:18;;5364:182::o;7556:128::-;;7627:1;7623:6;7620:1;7617:13;7614:2;;;7633:18;;:::i;:::-;-1:-1:-1;7669:9:1;;7604:80::o;7689:217::-;;7755:1;7745:2;;-1:-1:-1;;;7780:31:1;;7834:4;7831:1;7824:15;7862:4;7787:1;7852:15;7745:2;-1:-1:-1;7891:9:1;;7735:171::o;7911:168::-;;8017:1;8013;8009:6;8005:14;8002:1;7999:21;7994:1;7987:9;7980:17;7976:45;7973:2;;;8024:18;;:::i;:::-;-1:-1:-1;8064:9:1;;7963:116::o;8084:125::-;;8152:1;8149;8146:8;8143:2;;;8157:18;;:::i;:::-;-1:-1:-1;8194:9:1;;8133:76::o;8214:380::-;8293:1;8289:12;;;;8336;;;8357:2;;8411:4;8403:6;8399:17;8389:27;;8357:2;8464;8456:6;8453:14;8433:18;8430:38;8427:2;;;8510:10;8505:3;8501:20;8498:1;8491:31;8545:4;8542:1;8535:15;8573:4;8570:1;8563:15;8427:2;;8269:325;;;:::o;8599:135::-;;-1:-1:-1;;8659:17:1;;8656:2;;;8679:18;;:::i;:::-;-1:-1:-1;8726:1:1;8715:13;;8646:88::o;8739:127::-;8800:10;8795:3;8791:20;8788:1;8781:31;8831:4;8828:1;8821:15;8855:4;8852:1;8845:15

Swarm Source

ipfs://ab600c1fd4c356859e5f9e6cb4e57ea37d37d3a17126194414c2dd2e3232edd0
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.