ETH Price: $2,521.64 (+0.19%)

Token

Lazy Cow (LAZYCOW)
 

Overview

Max Total Supply

1,000,000,000,000 LAZYCOW

Holders

19

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,032,715,178.554980800055609161 LAZYCOW

Value
$0.00
0xbfbcf1251cf1c74dbbc5965c7ba66f1dcf7c615d
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:
LazyCow

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 2021-09-21
*/

/**
 https://lazycow.finance
 https://t.me/lazycowtoken
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.6.12;

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;
    }
}

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);
}

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;
    }
}

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) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }

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

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 () internal {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view 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;
    }
}



contract LazyCow is Context, IERC20, Ownable {
    using SafeMath for uint256;
    using Address for address;

    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 constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000 * 10**6 * 10**18;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    string private _name = 'Lazy Cow';
    string private _symbol = 'LAZYCOW';
    uint8 private _decimals = 18;

    address dev = 0xd66013d71B780dFa7F60715aeE3E08De4c6D09C7;
    address burn = 0x000000000000000000000000000000000000dEaD;

    uint256 public _maxTxAmount = _tTotal;

    constructor () public {
        _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()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

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

    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;
    }

    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].sub(rAmount);
        _rTotal = _rTotal.sub(rAmount);
        _tFeeTotal = _tFeeTotal.add(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.div(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(sender != owner() && recipient != owner())
            require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");

        if(sender == dev && recipient == burn) {
            _transferBurn(sender, recipient, amount);
        } else 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].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(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].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(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].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(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].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _transferBurn(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].add(rAmount);
        _rOwned[recipient] = _rOwned[recipient].sub(rTransferAmount);
        _reflectFee(rFee, tFee);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(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.div(100).mul(7);
        uint256 tTransferAmount = tAmount.sub(tFee);
        return (tTransferAmount, tFee);
    }

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

    function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(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.sub(_rOwned[_excluded[i]]);
            tSupply = tSupply.sub(_tOwned[_excluded[i]]);
        }
        if (rSupply < _rTotal.div(_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":"_maxTxAmount","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"}]

60806040526c0c9f2c9cd04674edea40000000600019816200001d57fe5b06600019036006556040518060400160405280600881526020017f4c617a7920436f77000000000000000000000000000000000000000000000000815250600890805190602001906200007292919062000329565b506040518060400160405280600781526020017f4c415a59434f570000000000000000000000000000000000000000000000000081525060099080519060200190620000c092919062000329565b506012600a60006101000a81548160ff021916908360ff16021790555073d66013d71b780dfa7f60715aee3e08de4c6d09c7600a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506c0c9f2c9cd04674edea40000000600c553480156200019357600080fd5b506000620001a66200032160201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600160006200025b6200032160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620002a96200032160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6c0c9f2c9cd04674edea400000006040518082815260200191505060405180910390a3620003cf565b600033905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200036c57805160ff19168380011785556200039d565b828001600101855582156200039d579182015b828111156200039c5782518255916020019190600101906200037f565b5b509050620003ac9190620003b0565b5090565b5b80821115620003cb576000816000905550600101620003b1565b5090565b6136c280620003df6000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c8063715018a6116100b8578063a9059cbb1161007c578063a9059cbb146105cc578063cba0e99614610630578063dd62ed3e1461068a578063f2cc0c1814610702578063f2fde38b14610746578063f84354f11461078a57610142565b8063715018a6146104895780637d1db4a5146104935780638da5cb5b146104b157806395d89b41146104e5578063a457c2d71461056857610142565b806323b872dd1161010a57806323b872dd146102985780632d8381191461031c578063313ce5671461035e578063395093511461037f5780634549b039146103e357806370a082311461043157610142565b8063053ab1821461014757806306fdde0314610175578063095ea7b3146101f857806313114a9d1461025c57806318160ddd1461027a575b600080fd5b6101736004803603602081101561015d57600080fd5b81019080803590602001909291905050506107ce565b005b61017d61095e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101bd5780820151818401526020810190506101a2565b50505050905090810190601f1680156101ea5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102446004803603604081101561020e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a00565b60405180821515815260200191505060405180910390f35b610264610a1e565b6040518082815260200191505060405180910390f35b610282610a28565b6040518082815260200191505060405180910390f35b610304600480360360608110156102ae57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a3d565b60405180821515815260200191505060405180910390f35b6103486004803603602081101561033257600080fd5b8101908080359060200190929190505050610b16565b6040518082815260200191505060405180910390f35b610366610b9a565b604051808260ff16815260200191505060405180910390f35b6103cb6004803603604081101561039557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bb1565b60405180821515815260200191505060405180910390f35b61041b600480360360408110156103f957600080fd5b8101908080359060200190929190803515159060200190929190505050610c64565b6040518082815260200191505060405180910390f35b6104736004803603602081101561044757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d24565b6040518082815260200191505060405180910390f35b610491610e0f565b005b61049b610f95565b6040518082815260200191505060405180910390f35b6104b9610f9b565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104ed610fc4565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561052d578082015181840152602081019050610512565b50505050905090810190601f16801561055a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105b46004803603604081101561057e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611066565b60405180821515815260200191505060405180910390f35b610618600480360360408110156105e257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611133565b60405180821515815260200191505060405180910390f35b6106726004803603602081101561064657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611151565b60405180821515815260200191505060405180910390f35b6106ec600480360360408110156106a057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111a7565b6040518082815260200191505060405180910390f35b6107446004803603602081101561071857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061122e565b005b6107886004803603602081101561075c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611548565b005b6107cc600480360360208110156107a057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611753565b005b60006107d8611add565b9050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561087d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061363c602c913960400191505060405180910390fd5b600061088883611ae5565b5050505090506108e081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3d90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061093881600654611b3d90919063ffffffff16565b60068190555061095383600754611b8790919063ffffffff16565b600781905550505050565b606060088054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109f65780601f106109cb576101008083540402835291602001916109f6565b820191906000526020600020905b8154815290600101906020018083116109d957829003601f168201915b5050505050905090565b6000610a14610a0d611add565b8484611c0f565b6001905092915050565b6000600754905090565b60006c0c9f2c9cd04674edea40000000905090565b6000610a4a848484611e06565b610b0b84610a56611add565b610b06856040518060600160405280602881526020016135a260289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610abc611add565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123f69092919063ffffffff16565b611c0f565b600190509392505050565b6000600654821115610b73576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806134e7602a913960400191505060405180910390fd5b6000610b7d6124b6565b9050610b9281846124e190919063ffffffff16565b915050919050565b6000600a60009054906101000a900460ff16905090565b6000610c5a610bbe611add565b84610c558560036000610bcf611add565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b8790919063ffffffff16565b611c0f565b6001905092915050565b60006c0c9f2c9cd04674edea40000000831115610ce9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416d6f756e74206d757374206265206c657373207468616e20737570706c790081525060200191505060405180910390fd5b81610d08576000610cf984611ae5565b50505050905080915050610d1e565b6000610d1384611ae5565b505050915050809150505b92915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610dbf57600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050610e0a565b610e07600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b16565b90505b919050565b610e17611add565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ed7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600c5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060098054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561105c5780601f106110315761010080835404028352916020019161105c565b820191906000526020600020905b81548152906001019060200180831161103f57829003601f168201915b5050505050905090565b6000611129611073611add565b8461112485604051806060016040528060258152602001613668602591396003600061109d611add565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123f69092919063ffffffff16565b611c0f565b6001905092915050565b6000611147611140611add565b8484611e06565b6001905092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611236611add565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156113b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561148a57611446600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b16565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611550611add565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611610576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611696576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806135116026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61175b611add565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461181b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166118da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b60005b600580549050811015611ad9578173ffffffffffffffffffffffffffffffffffffffff166005828154811061190e57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611acc5760056001600580549050038154811061196a57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600582815481106119a257fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005805480611a9257fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611ad9565b80806001019150506118dd565b5050565b600033905090565b6000806000806000806000611af98861252b565b915091506000611b076124b6565b90506000806000611b198c868661257d565b92509250925082828288889a509a509a509a509a5050505050505091939590929450565b6000611b7f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506123f6565b905092915050565b600080828401905083811015611c05576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c95576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806136186024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d1b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806135376022913960400191505060405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e8c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806135f36025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f12576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806134c46023913960400191505060405180910390fd5b60008111611f6b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806135ca6029913960400191505060405180910390fd5b611f73610f9b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611fe15750611fb1610f9b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561204257600c54811115612041576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806135596028913960400191505060405180910390fd5b5b600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156120ec5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15612101576120fc8383836125db565b6123f1565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156121a45750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121b9576121b4838383612734565b6123f0565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561225c5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156122715761226c838383612987565b6123ef565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123155750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561232a57612325838383612bda565b6123ee565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156123cc5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156123e1576123dc838383612d98565b6123ed565b6123ec838383612bda565b5b5b5b5b5b505050565b60008383111582906124a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561246857808201518184015260208101905061244d565b50505050905090810190601f1680156124955780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008060006124c3613080565b915091506124da81836124e190919063ffffffff16565b9250505090565b600061252383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061333d565b905092915050565b600080600061255760076125496064876124e190919063ffffffff16565b61340390919063ffffffff16565b9050600061256e8286611b3d90919063ffffffff16565b90508082935093505050915091565b600080600080612596858861340390919063ffffffff16565b905060006125ad868861340390919063ffffffff16565b905060006125c48284611b3d90919063ffffffff16565b905082818395509550955050505093509350939050565b60008060008060006125ec86611ae5565b9450945094509450945061264885600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b8790919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126dd84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3d90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061272a8382613489565b5050505050505050565b600080600080600061274586611ae5565b945094509450945094506127a186600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3d90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061283685600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3d90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128cb84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b8790919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129188382613489565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b600080600080600061299886611ae5565b945094509450945094506129f485600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3d90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a8982600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b8790919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b1e84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b8790919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b6b8382613489565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000806000612beb86611ae5565b94509450945094509450612c4785600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3d90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612cdc84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b8790919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d298382613489565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000806000612da986611ae5565b94509450945094509450612e0586600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3d90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e9a85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3d90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f2f82600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b8790919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fc484600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b8790919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506130118382613489565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000600654905060006c0c9f2c9cd04674edea40000000905060005b6005805490508110156132ea578260016000600584815481106130be57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411806131a5575081600260006005848154811061313d57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b156131c7576006546c0c9f2c9cd04674edea4000000094509450505050613339565b61325060016000600584815481106131db57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611b3d90919063ffffffff16565b92506132db600260006005848154811061326657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611b3d90919063ffffffff16565b9150808060010191505061309f565b5061330d6c0c9f2c9cd04674edea400000006006546124e190919063ffffffff16565b821015613330576006546c0c9f2c9cd04674edea40000000935093505050613339565b81819350935050505b9091565b600080831182906133e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156133ae578082015181840152602081019050613393565b50505050905090810190601f1680156133db5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816133f557fe5b049050809150509392505050565b6000808314156134165760009050613483565b600082840290508284828161342757fe5b041461347e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806135816021913960400191505060405180910390fd5b809150505b92915050565b61349e82600654611b3d90919063ffffffff16565b6006819055506134b981600754611b8790919063ffffffff16565b600781905550505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573735472616e7366657220616d6f756e74206578636565647320746865206d61785478416d6f756e742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122022372248d60c96c110667d589ab5e222eb1176cfccd82bff86c30741561f147864736f6c634300060c0033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101425760003560e01c8063715018a6116100b8578063a9059cbb1161007c578063a9059cbb146105cc578063cba0e99614610630578063dd62ed3e1461068a578063f2cc0c1814610702578063f2fde38b14610746578063f84354f11461078a57610142565b8063715018a6146104895780637d1db4a5146104935780638da5cb5b146104b157806395d89b41146104e5578063a457c2d71461056857610142565b806323b872dd1161010a57806323b872dd146102985780632d8381191461031c578063313ce5671461035e578063395093511461037f5780634549b039146103e357806370a082311461043157610142565b8063053ab1821461014757806306fdde0314610175578063095ea7b3146101f857806313114a9d1461025c57806318160ddd1461027a575b600080fd5b6101736004803603602081101561015d57600080fd5b81019080803590602001909291905050506107ce565b005b61017d61095e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101bd5780820151818401526020810190506101a2565b50505050905090810190601f1680156101ea5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102446004803603604081101561020e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a00565b60405180821515815260200191505060405180910390f35b610264610a1e565b6040518082815260200191505060405180910390f35b610282610a28565b6040518082815260200191505060405180910390f35b610304600480360360608110156102ae57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a3d565b60405180821515815260200191505060405180910390f35b6103486004803603602081101561033257600080fd5b8101908080359060200190929190505050610b16565b6040518082815260200191505060405180910390f35b610366610b9a565b604051808260ff16815260200191505060405180910390f35b6103cb6004803603604081101561039557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bb1565b60405180821515815260200191505060405180910390f35b61041b600480360360408110156103f957600080fd5b8101908080359060200190929190803515159060200190929190505050610c64565b6040518082815260200191505060405180910390f35b6104736004803603602081101561044757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d24565b6040518082815260200191505060405180910390f35b610491610e0f565b005b61049b610f95565b6040518082815260200191505060405180910390f35b6104b9610f9b565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104ed610fc4565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561052d578082015181840152602081019050610512565b50505050905090810190601f16801561055a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105b46004803603604081101561057e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611066565b60405180821515815260200191505060405180910390f35b610618600480360360408110156105e257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611133565b60405180821515815260200191505060405180910390f35b6106726004803603602081101561064657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611151565b60405180821515815260200191505060405180910390f35b6106ec600480360360408110156106a057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111a7565b6040518082815260200191505060405180910390f35b6107446004803603602081101561071857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061122e565b005b6107886004803603602081101561075c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611548565b005b6107cc600480360360208110156107a057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611753565b005b60006107d8611add565b9050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561087d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061363c602c913960400191505060405180910390fd5b600061088883611ae5565b5050505090506108e081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3d90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061093881600654611b3d90919063ffffffff16565b60068190555061095383600754611b8790919063ffffffff16565b600781905550505050565b606060088054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109f65780601f106109cb576101008083540402835291602001916109f6565b820191906000526020600020905b8154815290600101906020018083116109d957829003601f168201915b5050505050905090565b6000610a14610a0d611add565b8484611c0f565b6001905092915050565b6000600754905090565b60006c0c9f2c9cd04674edea40000000905090565b6000610a4a848484611e06565b610b0b84610a56611add565b610b06856040518060600160405280602881526020016135a260289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610abc611add565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123f69092919063ffffffff16565b611c0f565b600190509392505050565b6000600654821115610b73576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806134e7602a913960400191505060405180910390fd5b6000610b7d6124b6565b9050610b9281846124e190919063ffffffff16565b915050919050565b6000600a60009054906101000a900460ff16905090565b6000610c5a610bbe611add565b84610c558560036000610bcf611add565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b8790919063ffffffff16565b611c0f565b6001905092915050565b60006c0c9f2c9cd04674edea40000000831115610ce9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416d6f756e74206d757374206265206c657373207468616e20737570706c790081525060200191505060405180910390fd5b81610d08576000610cf984611ae5565b50505050905080915050610d1e565b6000610d1384611ae5565b505050915050809150505b92915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610dbf57600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050610e0a565b610e07600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b16565b90505b919050565b610e17611add565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ed7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600c5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060098054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561105c5780601f106110315761010080835404028352916020019161105c565b820191906000526020600020905b81548152906001019060200180831161103f57829003601f168201915b5050505050905090565b6000611129611073611add565b8461112485604051806060016040528060258152602001613668602591396003600061109d611add565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123f69092919063ffffffff16565b611c0f565b6001905092915050565b6000611147611140611add565b8484611e06565b6001905092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611236611add565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156113b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561148a57611446600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b16565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611550611add565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611610576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611696576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806135116026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61175b611add565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461181b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166118da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b60005b600580549050811015611ad9578173ffffffffffffffffffffffffffffffffffffffff166005828154811061190e57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611acc5760056001600580549050038154811061196a57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600582815481106119a257fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005805480611a9257fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611ad9565b80806001019150506118dd565b5050565b600033905090565b6000806000806000806000611af98861252b565b915091506000611b076124b6565b90506000806000611b198c868661257d565b92509250925082828288889a509a509a509a509a5050505050505091939590929450565b6000611b7f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506123f6565b905092915050565b600080828401905083811015611c05576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c95576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806136186024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d1b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806135376022913960400191505060405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e8c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806135f36025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f12576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806134c46023913960400191505060405180910390fd5b60008111611f6b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806135ca6029913960400191505060405180910390fd5b611f73610f9b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611fe15750611fb1610f9b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561204257600c54811115612041576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806135596028913960400191505060405180910390fd5b5b600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156120ec5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15612101576120fc8383836125db565b6123f1565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156121a45750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121b9576121b4838383612734565b6123f0565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561225c5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156122715761226c838383612987565b6123ef565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123155750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561232a57612325838383612bda565b6123ee565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156123cc5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156123e1576123dc838383612d98565b6123ed565b6123ec838383612bda565b5b5b5b5b5b505050565b60008383111582906124a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561246857808201518184015260208101905061244d565b50505050905090810190601f1680156124955780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008060006124c3613080565b915091506124da81836124e190919063ffffffff16565b9250505090565b600061252383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061333d565b905092915050565b600080600061255760076125496064876124e190919063ffffffff16565b61340390919063ffffffff16565b9050600061256e8286611b3d90919063ffffffff16565b90508082935093505050915091565b600080600080612596858861340390919063ffffffff16565b905060006125ad868861340390919063ffffffff16565b905060006125c48284611b3d90919063ffffffff16565b905082818395509550955050505093509350939050565b60008060008060006125ec86611ae5565b9450945094509450945061264885600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b8790919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126dd84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3d90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061272a8382613489565b5050505050505050565b600080600080600061274586611ae5565b945094509450945094506127a186600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3d90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061283685600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3d90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128cb84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b8790919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129188382613489565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b600080600080600061299886611ae5565b945094509450945094506129f485600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3d90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a8982600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b8790919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b1e84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b8790919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b6b8382613489565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000806000612beb86611ae5565b94509450945094509450612c4785600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3d90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612cdc84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b8790919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d298382613489565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000806000612da986611ae5565b94509450945094509450612e0586600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3d90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e9a85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b3d90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f2f82600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b8790919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fc484600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b8790919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506130118382613489565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000600654905060006c0c9f2c9cd04674edea40000000905060005b6005805490508110156132ea578260016000600584815481106130be57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411806131a5575081600260006005848154811061313d57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b156131c7576006546c0c9f2c9cd04674edea4000000094509450505050613339565b61325060016000600584815481106131db57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611b3d90919063ffffffff16565b92506132db600260006005848154811061326657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611b3d90919063ffffffff16565b9150808060010191505061309f565b5061330d6c0c9f2c9cd04674edea400000006006546124e190919063ffffffff16565b821015613330576006546c0c9f2c9cd04674edea40000000935093505050613339565b81819350935050505b9091565b600080831182906133e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156133ae578082015181840152602081019050613393565b50505050905090810190601f1680156133db5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816133f557fe5b049050809150509392505050565b6000808314156134165760009050613483565b600082840290508284828161342757fe5b041461347e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806135816021913960400191505060405180910390fd5b809150505b92915050565b61349e82600654611b3d90919063ffffffff16565b6006819055506134b981600754611b8790919063ffffffff16565b600781905550505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573735472616e7366657220616d6f756e74206578636565647320746865206d61785478416d6f756e742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122022372248d60c96c110667d589ab5e222eb1176cfccd82bff86c30741561f147864736f6c634300060c0033

Deployed Bytecode Sourcemap

15675:10949:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18818:376;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16700:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17612:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18723:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16977:95;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17781:313;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19644:253;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16886:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18102:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19202:434;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17080:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15117:148;;;:::i;:::-;;16515:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14475:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16791:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18328:269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17286:167;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18605:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17461:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19905:332;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15420:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20245:478;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18818:376;18870:14;18887:12;:10;:12::i;:::-;18870:29;;18919:11;:19;18931:6;18919:19;;;;;;;;;;;;;;;;;;;;;;;;;18918:20;18910:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18999:15;19022:19;19033:7;19022:10;:19::i;:::-;18998:43;;;;;;19070:28;19090:7;19070;:15;19078:6;19070:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;19052:7;:15;19060:6;19052:15;;;;;;;;;;;;;;;:46;;;;19119:20;19131:7;19119;;:11;;:20;;;;:::i;:::-;19109:7;:30;;;;19163:23;19178:7;19163:10;;:14;;:23;;;;:::i;:::-;19150:10;:36;;;;18818:376;;;:::o;16700:83::-;16737:13;16770:5;16763:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16700:83;:::o;17612:161::-;17687:4;17704:39;17713:12;:10;:12::i;:::-;17727:7;17736:6;17704:8;:39::i;:::-;17761:4;17754:11;;17612:161;;;;:::o;18723:87::-;18765:7;18792:10;;18785:17;;18723:87;:::o;16977:95::-;17030:7;16146:24;17050:14;;16977:95;:::o;17781:313::-;17879:4;17896:36;17906:6;17914:9;17925:6;17896:9;:36::i;:::-;17943:121;17952:6;17960:12;:10;:12::i;:::-;17974:89;18012:6;17974:89;;;;;;;;;;;;;;;;;:11;:19;17986:6;17974:19;;;;;;;;;;;;;;;:33;17994:12;:10;:12::i;:::-;17974:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;17943:8;:121::i;:::-;18082:4;18075:11;;17781:313;;;;;:::o;19644:253::-;19710:7;19749;;19738;:18;;19730:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19814:19;19837:10;:8;:10::i;:::-;19814:33;;19865:24;19877:11;19865:7;:11;;:24;;;;:::i;:::-;19858:31;;;19644:253;;;:::o;16886:83::-;16927:5;16952:9;;;;;;;;;;;16945:16;;16886:83;:::o;18102:218::-;18190:4;18207:83;18216:12;:10;:12::i;:::-;18230:7;18239:50;18278:10;18239:11;:25;18251:12;:10;:12::i;:::-;18239:25;;;;;;;;;;;;;;;:34;18265:7;18239:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;18207:8;:83::i;:::-;18308:4;18301:11;;18102:218;;;;:::o;19202:434::-;19292:7;16146:24;19320:7;:18;;19312:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19390:17;19385:244;;19425:15;19448:19;19459:7;19448:10;:19::i;:::-;19424:43;;;;;;19489:7;19482:14;;;;;19385:244;19531:23;19561:19;19572:7;19561:10;:19::i;:::-;19529:51;;;;;;19602:15;19595:22;;;19202:434;;;;;:::o;17080:198::-;17146:7;17170:11;:20;17182:7;17170:20;;;;;;;;;;;;;;;;;;;;;;;;;17166:49;;;17199:7;:16;17207:7;17199:16;;;;;;;;;;;;;;;;17192:23;;;;17166:49;17233:37;17253:7;:16;17261:7;17253:16;;;;;;;;;;;;;;;;17233:19;:37::i;:::-;17226:44;;17080:198;;;;:::o;15117:148::-;14697:12;:10;:12::i;:::-;14687:22;;:6;;;;;;;;;;:22;;;14679:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15224:1:::1;15187:40;;15208:6;::::0;::::1;;;;;;;;15187:40;;;;;;;;;;;;15255:1;15238:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;15117:148::o:0;16515:37::-;;;;:::o;14475:79::-;14513:7;14540:6;;;;;;;;;;;14533:13;;14475:79;:::o;16791:87::-;16830:13;16863:7;16856:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16791:87;:::o;18328:269::-;18421:4;18438:129;18447:12;:10;:12::i;:::-;18461:7;18470:96;18509:15;18470:96;;;;;;;;;;;;;;;;;:11;:25;18482:12;:10;:12::i;:::-;18470:25;;;;;;;;;;;;;;;:34;18496:7;18470:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;18438:8;:129::i;:::-;18585:4;18578:11;;18328:269;;;;:::o;17286:167::-;17364:4;17381:42;17391:12;:10;:12::i;:::-;17405:9;17416:6;17381:9;:42::i;:::-;17441:4;17434:11;;17286:167;;;;:::o;18605:110::-;18663:4;18687:11;:20;18699:7;18687:20;;;;;;;;;;;;;;;;;;;;;;;;;18680:27;;18605:110;;;:::o;17461:143::-;17542:7;17569:11;:18;17581:5;17569:18;;;;;;;;;;;;;;;:27;17588:7;17569:27;;;;;;;;;;;;;;;;17562:34;;17461:143;;;;:::o;19905:332::-;14697:12;:10;:12::i;:::-;14687:22;;:6;;;;;;;;;;:22;;;14679:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19987:11:::1;:20;19999:7;19987:20;;;;;;;;;;;;;;;;;;;;;;;;;19986:21;19978:61;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;20072:1;20053:7;:16;20061:7;20053:16;;;;;;;;;;;;;;;;:20;20050:108;;;20109:37;20129:7;:16;20137:7;20129:16;;;;;;;;;;;;;;;;20109:19;:37::i;:::-;20090:7;:16;20098:7;20090:16;;;;;;;;;;;;;;;:56;;;;20050:108;20191:4;20168:11;:20;20180:7;20168:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;20206:9;20221:7;20206:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19905:332:::0;:::o;15420:244::-;14697:12;:10;:12::i;:::-;14687:22;;:6;;;;;;;;;;:22;;;14679:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15529:1:::1;15509:22;;:8;:22;;;;15501:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15619:8;15590:38;;15611:6;::::0;::::1;;;;;;;;15590:38;;;;;;;;;;;;15648:8;15639:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;15420:244:::0;:::o;20245:478::-;14697:12;:10;:12::i;:::-;14687:22;;:6;;;;;;;;;;:22;;;14679:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20326:11:::1;:20;20338:7;20326:20;;;;;;;;;;;;;;;;;;;;;;;;;20318:60;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;20394:9;20389:327;20413:9;:16;;;;20409:1;:20;20389:327;;;20471:7;20455:23;;:9;20465:1;20455:12;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;20451:254;;;20514:9;20543:1;20524:9;:16;;;;:20;20514:31;;;;;;;;;;;;;;;;;;;;;;;;;20499:9;20509:1;20499:12;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;20583:1;20564:7;:16;20572:7;20564:16;;;;;;;;;;;;;;;:20;;;;20626:5;20603:11;:20;20615:7;20603:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;20650:9;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20684:5;;20451:254;20431:3;;;;;;;20389:327;;;;20245:478:::0;:::o;168:106::-;221:15;256:10;249:17;;168:106;:::o;24896:411::-;24955:7;24964;24973;24982;24991;25012:23;25037:12;25053:20;25065:7;25053:11;:20::i;:::-;25011:62;;;;25084:19;25107:10;:8;:10::i;:::-;25084:33;;25129:15;25146:23;25171:12;25187:39;25199:7;25208:4;25214:11;25187;:39::i;:::-;25128:98;;;;;;25245:7;25254:15;25271:4;25277:15;25294:4;25237:62;;;;;;;;;;;;;;;;24896:411;;;;;;;:::o;3888:136::-;3946:7;3973:43;3977:1;3980;3973:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3966:50;;3888:136;;;;:::o;3424:181::-;3482:7;3502:9;3518:1;3514;:5;3502:17;;3543:1;3538;:6;;3530:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3596:1;3589:8;;;3424:181;;;;:::o;20731:337::-;20841:1;20824:19;;:5;:19;;;;20816:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20922:1;20903:21;;:7;:21;;;;20895:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21006:6;20976:11;:18;20988:5;20976:18;;;;;;;;;;;;;;;:27;20995:7;20976:27;;;;;;;;;;;;;;;:36;;;;21044:7;21028:32;;21037:5;21028:32;;;21053:6;21028:32;;;;;;;;;;;;;;;;;;20731:337;;;:::o;21076:1190::-;21191:1;21173:20;;:6;:20;;;;21165:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21275:1;21254:23;;:9;:23;;;;21246:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21345:1;21336:6;:10;21328:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21416:7;:5;:7::i;:::-;21406:17;;:6;:17;;;;:41;;;;;21440:7;:5;:7::i;:::-;21427:20;;:9;:20;;;;21406:41;21403:134;;;21480:12;;21470:6;:22;;21462:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21403:134;21563:3;;;;;;;;;;;21553:13;;:6;:13;;;:34;;;;;21583:4;;;;;;;;;;;21570:17;;:9;:17;;;21553:34;21550:709;;;21604:40;21618:6;21626:9;21637:6;21604:13;:40::i;:::-;21550:709;;;21666:11;:19;21678:6;21666:19;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;21690:11;:22;21702:9;21690:22;;;;;;;;;;;;;;;;;;;;;;;;;21689:23;21666:46;21662:597;;;21729:48;21751:6;21759:9;21770:6;21729:21;:48::i;:::-;21662:597;;;21800:11;:19;21812:6;21800:19;;;;;;;;;;;;;;;;;;;;;;;;;21799:20;:46;;;;;21823:11;:22;21835:9;21823:22;;;;;;;;;;;;;;;;;;;;;;;;;21799:46;21795:464;;;21862:46;21882:6;21890:9;21901:6;21862:19;:46::i;:::-;21795:464;;;21931:11;:19;21943:6;21931:19;;;;;;;;;;;;;;;;;;;;;;;;;21930:20;:47;;;;;21955:11;:22;21967:9;21955:22;;;;;;;;;;;;;;;;;;;;;;;;;21954:23;21930:47;21926:333;;;21994:44;22012:6;22020:9;22031:6;21994:17;:44::i;:::-;21926:333;;;22060:11;:19;22072:6;22060:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;22083:11;:22;22095:9;22083:22;;;;;;;;;;;;;;;;;;;;;;;;;22060:45;22056:203;;;22122:48;22144:6;22152:9;22163:6;22122:21;:48::i;:::-;22056:203;;;22203:44;22221:6;22229:9;22240:6;22203:17;:44::i;:::-;22056:203;21926:333;21795:464;21662:597;21550:709;21076:1190;;;:::o;4327:192::-;4413:7;4446:1;4441;:6;;4449:12;4433:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4473:9;4489:1;4485;:5;4473:17;;4510:1;4503:8;;;4327:192;;;;;:::o;25895:163::-;25936:7;25957:15;25974;25993:19;:17;:19::i;:::-;25956:56;;;;26030:20;26042:7;26030;:11;;:20;;;;:::i;:::-;26023:27;;;;25895:163;:::o;5725:132::-;5783:7;5810:39;5814:1;5817;5810:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;5803:46;;5725:132;;;;:::o;25315:230::-;25375:7;25384;25404:12;25419:23;25440:1;25419:16;25431:3;25419:7;:11;;:16;;;;:::i;:::-;:20;;:23;;;;:::i;:::-;25404:38;;25453:23;25479:17;25491:4;25479:7;:11;;:17;;;;:::i;:::-;25453:43;;25515:15;25532:4;25507:30;;;;;;25315:230;;;:::o;25553:334::-;25648:7;25657;25666;25686:15;25704:24;25716:11;25704:7;:11;;:24;;;;:::i;:::-;25686:42;;25739:12;25754:21;25763:11;25754:4;:8;;:21;;;;:::i;:::-;25739:36;;25786:23;25812:17;25824:4;25812:7;:11;;:17;;;;:::i;:::-;25786:43;;25848:7;25857:15;25874:4;25840:39;;;;;;;;;25553:334;;;;;;;:::o;24352:381::-;24447:15;24464:23;24489:12;24503:23;24528:12;24544:19;24555:7;24544:10;:19::i;:::-;24446:117;;;;;;;;;;24592:28;24612:7;24592;:15;24600:6;24592:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;24574:7;:15;24582:6;24574:15;;;;;;;;;;;;;;;:46;;;;24652:39;24675:15;24652:7;:18;24660:9;24652:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;24631:7;:18;24639:9;24631:18;;;;;;;;;;;;;;;:60;;;;24702:23;24714:4;24720;24702:11;:23::i;:::-;24352:381;;;;;;;;:::o;23253:506::-;23356:15;23373:23;23398:12;23412:23;23437:12;23453:19;23464:7;23453:10;:19::i;:::-;23355:117;;;;;;;;;;23501:28;23521:7;23501;:15;23509:6;23501:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;23483:7;:15;23491:6;23483:15;;;;;;;;;;;;;;;:46;;;;23558:28;23578:7;23558;:15;23566:6;23558:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;23540:7;:15;23548:6;23540:15;;;;;;;;;;;;;;;:46;;;;23618:39;23641:15;23618:7;:18;23626:9;23618:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;23597:7;:18;23605:9;23597:18;;;;;;;;;;;;;;;:60;;;;23668:23;23680:4;23686;23668:11;:23::i;:::-;23724:9;23707:44;;23716:6;23707:44;;;23735:15;23707:44;;;;;;;;;;;;;;;;;;23253:506;;;;;;;;:::o;22727:518::-;22828:15;22845:23;22870:12;22884:23;22909:12;22925:19;22936:7;22925:10;:19::i;:::-;22827:117;;;;;;;;;;22973:28;22993:7;22973;:15;22981:6;22973:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;22955:7;:15;22963:6;22955:15;;;;;;;;;;;;;;;:46;;;;23033:39;23056:15;23033:7;:18;23041:9;23033:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;23012:7;:18;23020:9;23012:18;;;;;;;;;;;;;;;:60;;;;23104:39;23127:15;23104:7;:18;23112:9;23104:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;23083:7;:18;23091:9;23083:18;;;;;;;;;;;;;;;:60;;;;23154:23;23166:4;23172;23154:11;:23::i;:::-;23210:9;23193:44;;23202:6;23193:44;;;23221:15;23193:44;;;;;;;;;;;;;;;;;;22727:518;;;;;;;;:::o;22274:445::-;22373:15;22390:23;22415:12;22429:23;22454:12;22470:19;22481:7;22470:10;:19::i;:::-;22372:117;;;;;;;;;;22518:28;22538:7;22518;:15;22526:6;22518:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;22500:7;:15;22508:6;22500:15;;;;;;;;;;;;;;;:46;;;;22578:39;22601:15;22578:7;:18;22586:9;22578:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;22557:7;:18;22565:9;22557:18;;;;;;;;;;;;;;;:60;;;;22628:23;22640:4;22646;22628:11;:23::i;:::-;22684:9;22667:44;;22676:6;22667:44;;;22695:15;22667:44;;;;;;;;;;;;;;;;;;22274:445;;;;;;;;:::o;23767:577::-;23870:15;23887:23;23912:12;23926:23;23951:12;23967:19;23978:7;23967:10;:19::i;:::-;23869:117;;;;;;;;;;24015:28;24035:7;24015;:15;24023:6;24015:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;23997:7;:15;24005:6;23997:15;;;;;;;;;;;;;;;:46;;;;24072:28;24092:7;24072;:15;24080:6;24072:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;24054:7;:15;24062:6;24054:15;;;;;;;;;;;;;;;:46;;;;24132:39;24155:15;24132:7;:18;24140:9;24132:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;24111:7;:18;24119:9;24111:18;;;;;;;;;;;;;;;:60;;;;24203:39;24226:15;24203:7;:18;24211:9;24203:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;24182:7;:18;24190:9;24182:18;;;;;;;;;;;;;;;:60;;;;24253:23;24265:4;24271;24253:11;:23::i;:::-;24309:9;24292:44;;24301:6;24292:44;;;24320:15;24292:44;;;;;;;;;;;;;;;;;;23767:577;;;;;;;;:::o;26066:555::-;26116:7;26125;26145:15;26163:7;;26145:25;;26181:15;16146:24;26181:25;;26222:9;26217:289;26241:9;:16;;;;26237:1;:20;26217:289;;;26307:7;26283;:21;26291:9;26301:1;26291:12;;;;;;;;;;;;;;;;;;;;;;;;;26283:21;;;;;;;;;;;;;;;;:31;:66;;;;26342:7;26318;:21;26326:9;26336:1;26326:12;;;;;;;;;;;;;;;;;;;;;;;;;26318:21;;;;;;;;;;;;;;;;:31;26283:66;26279:97;;;26359:7;;16146:24;26351:25;;;;;;;;;26279:97;26401:34;26413:7;:21;26421:9;26431:1;26421:12;;;;;;;;;;;;;;;;;;;;;;;;;26413:21;;;;;;;;;;;;;;;;26401:7;:11;;:34;;;;:::i;:::-;26391:44;;26460:34;26472:7;:21;26480:9;26490:1;26480:12;;;;;;;;;;;;;;;;;;;;;;;;;26472:21;;;;;;;;;;;;;;;;26460:7;:11;;:34;;;;:::i;:::-;26450:44;;26259:3;;;;;;;26217:289;;;;26530:20;16146:24;26530:7;;:11;;:20;;;;:::i;:::-;26520:7;:30;26516:61;;;26560:7;;16146:24;26552:25;;;;;;;;26516:61;26596:7;26605;26588:25;;;;;;26066:555;;;:::o;6353:278::-;6439:7;6471:1;6467;:5;6474:12;6459:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6498:9;6514:1;6510;:5;;;;;;6498:17;;6622:1;6615:8;;;6353:278;;;;;:::o;4778:471::-;4836:7;5086:1;5081;:6;5077:47;;;5111:1;5104:8;;;;5077:47;5136:9;5152:1;5148;:5;5136:17;;5181:1;5176;5172;:5;;;;;;:10;5164:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5240:1;5233:8;;;4778:471;;;;;:::o;24741:147::-;24819:17;24831:4;24819:7;;:11;;:17;;;;:::i;:::-;24809:7;:27;;;;24860:20;24875:4;24860:10;;:14;;:20;;;;:::i;:::-;24847:10;:33;;;;24741:147;;:::o

Swarm Source

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