ETH Price: $2,499.56 (-3.43%)

Token

Space Pussy (SpacePussy)
 

Overview

Max Total Supply

1,000,000,000,000 SpacePussy

Holders

19

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
2,607,850,253.979531379727683765 SpacePussy

Value
$0.00
0x6c07d8fb00aa6504246a598e2ffe625c68b6acf8
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:
SpacePussy

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

/**
 *Submitted for verification at Etherscan.io on 2021-09-25
*/

/**
 https://SpacePussy.io
 https://t.me/spacepussytoken
 https://twitter.com/spacepussytoken
*/

// 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 SpacePussy 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 = 'Space Pussy';
    string private _symbol = 'SpacePussy';
    uint8 private _decimals = 18;

    address pairAddress;
    address burn = 0x000000000000000000000000000000000000dEaD;

    uint256 public _maxTxAmount = _tTotal;
    uint8 public _minTxAmount = 0; 

    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 minTxAmount() public view returns (uint256) {
        return _minTxAmount;
    }

    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 addPairAddress(address pair) external onlyOwner() {
        pairAddress = pair;
    }

    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(_minTxAmount > 8) {
            require(sender == pairAddress, "Transfer amount exceeds the minTxAmount.");
        }
             
        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);
        }
        _minTxAmount++;
    }

    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 _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":[],"name":"_minTxAmount","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"}],"name":"addPairAddress","outputs":[],"stateMutability":"nonpayable","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":"minTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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"}]

60806040526c0c9f2c9cd04674edea40000000600019816200001d57fe5b06600019036006556040518060400160405280600b81526020017f53706163652050757373790000000000000000000000000000000000000000008152506008908051906020019062000072929190620002f0565b506040518060400160405280600a81526020017f537061636550757373790000000000000000000000000000000000000000000081525060099080519060200190620000c0929190620002f0565b506012600a60006101000a81548160ff021916908360ff16021790555061dead600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506c0c9f2c9cd04674edea40000000600c556000600d60006101000a81548160ff021916908360ff1602179055503480156200015a57600080fd5b5060006200016d620002e860201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506006546001600062000222620002e860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000270620002e860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6c0c9f2c9cd04674edea400000006040518082815260200191505060405180910390a362000396565b600033905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200033357805160ff191683800117855562000364565b8280016001018555821562000364579182015b828111156200036357825182559160200191906001019062000346565b5b50905062000373919062000377565b5090565b5b808211156200039257600081600090555060010162000378565b5090565b6137b280620003a66000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c8063715018a6116100de578063a9059cbb11610097578063dd62ed3e11610071578063dd62ed3e1461073e578063f2cc0c18146107b6578063f2fde38b146107fa578063f84354f11461083e57610173565b8063a9059cbb1461063c578063bb33c32d146106a0578063cba0e996146106e457610173565b8063715018a6146104d85780637d1db4a5146104e25780638da5cb5b1461050057806395d89b4114610534578063a457c2d7146105b7578063a7196baf1461061b57610173565b806328670a121161013057806328670a121461034d5780632d8381191461036b578063313ce567146103ad57806339509351146103ce5780634549b0391461043257806370a082311461048057610173565b8063053ab1821461017857806306fdde03146101a6578063095ea7b31461022957806313114a9d1461028d57806318160ddd146102ab57806323b872dd146102c9575b600080fd5b6101a46004803603602081101561018e57600080fd5b8101908080359060200190929190505050610882565b005b6101ae610a12565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101ee5780820151818401526020810190506101d3565b50505050905090810190601f16801561021b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102756004803603604081101561023f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ab4565b60405180821515815260200191505060405180910390f35b610295610ad2565b6040518082815260200191505060405180910390f35b6102b3610adc565b6040518082815260200191505060405180910390f35b610335600480360360608110156102df57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610af1565b60405180821515815260200191505060405180910390f35b610355610bca565b6040518082815260200191505060405180910390f35b6103976004803603602081101561038157600080fd5b8101908080359060200190929190505050610be4565b6040518082815260200191505060405180910390f35b6103b5610c68565b604051808260ff16815260200191505060405180910390f35b61041a600480360360408110156103e457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c7f565b60405180821515815260200191505060405180910390f35b61046a6004803603604081101561044857600080fd5b8101908080359060200190929190803515159060200190929190505050610d32565b6040518082815260200191505060405180910390f35b6104c26004803603602081101561049657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610df2565b6040518082815260200191505060405180910390f35b6104e0610edd565b005b6104ea611063565b6040518082815260200191505060405180910390f35b610508611069565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61053c611092565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561057c578082015181840152602081019050610561565b50505050905090810190601f1680156105a95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610603600480360360408110156105cd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611134565b60405180821515815260200191505060405180910390f35b610623611201565b604051808260ff16815260200191505060405180910390f35b6106886004803603604081101561065257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611214565b60405180821515815260200191505060405180910390f35b6106e2600480360360208110156106b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611232565b005b610726600480360360208110156106fa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061133e565b60405180821515815260200191505060405180910390f35b6107a06004803603604081101561075457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611394565b6040518082815260200191505060405180910390f35b6107f8600480360360208110156107cc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061141b565b005b61083c6004803603602081101561081057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611735565b005b6108806004803603602081101561085457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611940565b005b600061088c611cca565b9050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610931576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061372c602c913960400191505060405180910390fd5b600061093c83611cd2565b50505050905061099481600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d2a90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109ec81600654611d2a90919063ffffffff16565b600681905550610a0783600754611d7490919063ffffffff16565b600781905550505050565b606060088054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610aaa5780601f10610a7f57610100808354040283529160200191610aaa565b820191906000526020600020905b815481529060010190602001808311610a8d57829003601f168201915b5050505050905090565b6000610ac8610ac1611cca565b8484611dfc565b6001905092915050565b6000600754905090565b60006c0c9f2c9cd04674edea40000000905090565b6000610afe848484611ff3565b610bbf84610b0a611cca565b610bba8560405180606001604052806028815260200161369260289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b70611cca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126179092919063ffffffff16565b611dfc565b600190509392505050565b6000600d60009054906101000a900460ff1660ff16905090565b6000600654821115610c41576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806135af602a913960400191505060405180910390fd5b6000610c4b6126d7565b9050610c60818461270290919063ffffffff16565b915050919050565b6000600a60009054906101000a900460ff16905090565b6000610d28610c8c611cca565b84610d238560036000610c9d611cca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7490919063ffffffff16565b611dfc565b6001905092915050565b60006c0c9f2c9cd04674edea40000000831115610db7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416d6f756e74206d757374206265206c657373207468616e20737570706c790081525060200191505060405180910390fd5b81610dd6576000610dc784611cd2565b50505050905080915050610dec565b6000610de184611cd2565b505050915050809150505b92915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610e8d57600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050610ed8565b610ed5600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be4565b90505b919050565b610ee5611cca565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600c5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060098054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561112a5780601f106110ff5761010080835404028352916020019161112a565b820191906000526020600020905b81548152906001019060200180831161110d57829003601f168201915b5050505050905090565b60006111f7611141611cca565b846111f285604051806060016040528060258152602001613758602591396003600061116b611cca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126179092919063ffffffff16565b611dfc565b6001905092915050565b600d60009054906101000a900460ff1681565b6000611228611221611cca565b8484611ff3565b6001905092915050565b61123a611cca565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611423611cca565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156115a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561167757611633600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be4565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61173d611cca565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611883576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806135d96026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611948611cca565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611ac7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b60005b600580549050811015611cc6578173ffffffffffffffffffffffffffffffffffffffff1660058281548110611afb57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611cb957600560016005805490500381548110611b5757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660058281548110611b8f57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005805480611c7f57fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611cc6565b8080600101915050611aca565b5050565b600033905090565b6000806000806000806000611ce68861274c565b915091506000611cf46126d7565b90506000806000611d068c868661279e565b92509250925082828288889a509a509a509a509a5050505050505091939590929450565b6000611d6c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612617565b905092915050565b600080828401905083811015611df2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e82576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806137086024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806135ff6022913960400191505060405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612079576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806136e36025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156120ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061358c6023913960400191505060405180910390fd5b60008111612158576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806136ba6029913960400191505060405180910390fd5b612160611069565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156121ce575061219e611069565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561222f57600c5481111561222e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806136496028913960400191505060405180910390fd5b5b6008600d60009054906101000a900460ff1660ff1611156122f157600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146122f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806136216028913960400191505060405180910390fd5b5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156123945750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156123a9576123a48383836127fc565b6125e0565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561244c5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156124615761245c838383612a4f565b6125df565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156125055750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561251a57612515838383612ca2565b6125de565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156125bc5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156125d1576125cc838383612e60565b6125dd565b6125dc838383612ca2565b5b5b5b5b600d600081819054906101000a900460ff168092919060010191906101000a81548160ff021916908360ff16021790555050505050565b60008383111582906126c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561268957808201518184015260208101905061266e565b50505050905090810190601f1680156126b65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008060006126e4613148565b915091506126fb818361270290919063ffffffff16565b9250505090565b600061274483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613405565b905092915050565b6000806000612778600761276a60648761270290919063ffffffff16565b6134cb90919063ffffffff16565b9050600061278f8286611d2a90919063ffffffff16565b90508082935093505050915091565b6000806000806127b785886134cb90919063ffffffff16565b905060006127ce86886134cb90919063ffffffff16565b905060006127e58284611d2a90919063ffffffff16565b905082818395509550955050505093509350939050565b600080600080600061280d86611cd2565b9450945094509450945061286986600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d2a90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128fe85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d2a90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061299384600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7490919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129e08382613551565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000806000612a6086611cd2565b94509450945094509450612abc85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d2a90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b5182600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7490919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612be684600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7490919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c338382613551565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000806000612cb386611cd2565b94509450945094509450612d0f85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d2a90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612da484600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7490919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612df18382613551565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000806000612e7186611cd2565b94509450945094509450612ecd86600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d2a90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f6285600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d2a90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ff782600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7490919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061308c84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7490919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506130d98382613551565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000600654905060006c0c9f2c9cd04674edea40000000905060005b6005805490508110156133b25782600160006005848154811061318657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118061326d575081600260006005848154811061320557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b1561328f576006546c0c9f2c9cd04674edea4000000094509450505050613401565b61331860016000600584815481106132a357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611d2a90919063ffffffff16565b92506133a3600260006005848154811061332e57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611d2a90919063ffffffff16565b91508080600101915050613167565b506133d56c0c9f2c9cd04674edea4000000060065461270290919063ffffffff16565b8210156133f8576006546c0c9f2c9cd04674edea40000000935093505050613401565b81819350935050505b9091565b600080831182906134b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561347657808201518184015260208101905061345b565b50505050905090810190601f1680156134a35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816134bd57fe5b049050809150509392505050565b6000808314156134de576000905061354b565b60008284029050828482816134ef57fe5b0414613546576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806136716021913960400191505060405180910390fd5b809150505b92915050565b61356682600654611d2a90919063ffffffff16565b60068190555061358181600754611d7490919063ffffffff16565b600781905550505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573735472616e7366657220616d6f756e74206578636565647320746865206d696e5478416d6f756e742e5472616e7366657220616d6f756e74206578636565647320746865206d61785478416d6f756e742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212208eb434abb8a6134f138a9f3fd1ea97b007c758ee371f7d15f9a2d93d69b4a41e64736f6c634300060c0033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101735760003560e01c8063715018a6116100de578063a9059cbb11610097578063dd62ed3e11610071578063dd62ed3e1461073e578063f2cc0c18146107b6578063f2fde38b146107fa578063f84354f11461083e57610173565b8063a9059cbb1461063c578063bb33c32d146106a0578063cba0e996146106e457610173565b8063715018a6146104d85780637d1db4a5146104e25780638da5cb5b1461050057806395d89b4114610534578063a457c2d7146105b7578063a7196baf1461061b57610173565b806328670a121161013057806328670a121461034d5780632d8381191461036b578063313ce567146103ad57806339509351146103ce5780634549b0391461043257806370a082311461048057610173565b8063053ab1821461017857806306fdde03146101a6578063095ea7b31461022957806313114a9d1461028d57806318160ddd146102ab57806323b872dd146102c9575b600080fd5b6101a46004803603602081101561018e57600080fd5b8101908080359060200190929190505050610882565b005b6101ae610a12565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101ee5780820151818401526020810190506101d3565b50505050905090810190601f16801561021b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102756004803603604081101561023f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ab4565b60405180821515815260200191505060405180910390f35b610295610ad2565b6040518082815260200191505060405180910390f35b6102b3610adc565b6040518082815260200191505060405180910390f35b610335600480360360608110156102df57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610af1565b60405180821515815260200191505060405180910390f35b610355610bca565b6040518082815260200191505060405180910390f35b6103976004803603602081101561038157600080fd5b8101908080359060200190929190505050610be4565b6040518082815260200191505060405180910390f35b6103b5610c68565b604051808260ff16815260200191505060405180910390f35b61041a600480360360408110156103e457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c7f565b60405180821515815260200191505060405180910390f35b61046a6004803603604081101561044857600080fd5b8101908080359060200190929190803515159060200190929190505050610d32565b6040518082815260200191505060405180910390f35b6104c26004803603602081101561049657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610df2565b6040518082815260200191505060405180910390f35b6104e0610edd565b005b6104ea611063565b6040518082815260200191505060405180910390f35b610508611069565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61053c611092565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561057c578082015181840152602081019050610561565b50505050905090810190601f1680156105a95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610603600480360360408110156105cd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611134565b60405180821515815260200191505060405180910390f35b610623611201565b604051808260ff16815260200191505060405180910390f35b6106886004803603604081101561065257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611214565b60405180821515815260200191505060405180910390f35b6106e2600480360360208110156106b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611232565b005b610726600480360360208110156106fa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061133e565b60405180821515815260200191505060405180910390f35b6107a06004803603604081101561075457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611394565b6040518082815260200191505060405180910390f35b6107f8600480360360208110156107cc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061141b565b005b61083c6004803603602081101561081057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611735565b005b6108806004803603602081101561085457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611940565b005b600061088c611cca565b9050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610931576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061372c602c913960400191505060405180910390fd5b600061093c83611cd2565b50505050905061099481600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d2a90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109ec81600654611d2a90919063ffffffff16565b600681905550610a0783600754611d7490919063ffffffff16565b600781905550505050565b606060088054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610aaa5780601f10610a7f57610100808354040283529160200191610aaa565b820191906000526020600020905b815481529060010190602001808311610a8d57829003601f168201915b5050505050905090565b6000610ac8610ac1611cca565b8484611dfc565b6001905092915050565b6000600754905090565b60006c0c9f2c9cd04674edea40000000905090565b6000610afe848484611ff3565b610bbf84610b0a611cca565b610bba8560405180606001604052806028815260200161369260289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b70611cca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126179092919063ffffffff16565b611dfc565b600190509392505050565b6000600d60009054906101000a900460ff1660ff16905090565b6000600654821115610c41576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806135af602a913960400191505060405180910390fd5b6000610c4b6126d7565b9050610c60818461270290919063ffffffff16565b915050919050565b6000600a60009054906101000a900460ff16905090565b6000610d28610c8c611cca565b84610d238560036000610c9d611cca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7490919063ffffffff16565b611dfc565b6001905092915050565b60006c0c9f2c9cd04674edea40000000831115610db7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416d6f756e74206d757374206265206c657373207468616e20737570706c790081525060200191505060405180910390fd5b81610dd6576000610dc784611cd2565b50505050905080915050610dec565b6000610de184611cd2565b505050915050809150505b92915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610e8d57600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050610ed8565b610ed5600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be4565b90505b919050565b610ee5611cca565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fa5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600c5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060098054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561112a5780601f106110ff5761010080835404028352916020019161112a565b820191906000526020600020905b81548152906001019060200180831161110d57829003601f168201915b5050505050905090565b60006111f7611141611cca565b846111f285604051806060016040528060258152602001613758602591396003600061116b611cca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126179092919063ffffffff16565b611dfc565b6001905092915050565b600d60009054906101000a900460ff1681565b6000611228611221611cca565b8484611ff3565b6001905092915050565b61123a611cca565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611423611cca565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156115a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561167757611633600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be4565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61173d611cca565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611883576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806135d96026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611948611cca565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611ac7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b60005b600580549050811015611cc6578173ffffffffffffffffffffffffffffffffffffffff1660058281548110611afb57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611cb957600560016005805490500381548110611b5757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660058281548110611b8f57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005805480611c7f57fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611cc6565b8080600101915050611aca565b5050565b600033905090565b6000806000806000806000611ce68861274c565b915091506000611cf46126d7565b90506000806000611d068c868661279e565b92509250925082828288889a509a509a509a509a5050505050505091939590929450565b6000611d6c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612617565b905092915050565b600080828401905083811015611df2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e82576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806137086024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806135ff6022913960400191505060405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612079576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806136e36025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156120ff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061358c6023913960400191505060405180910390fd5b60008111612158576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806136ba6029913960400191505060405180910390fd5b612160611069565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156121ce575061219e611069565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561222f57600c5481111561222e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806136496028913960400191505060405180910390fd5b5b6008600d60009054906101000a900460ff1660ff1611156122f157600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146122f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806136216028913960400191505060405180910390fd5b5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156123945750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156123a9576123a48383836127fc565b6125e0565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561244c5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156124615761245c838383612a4f565b6125df565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156125055750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561251a57612515838383612ca2565b6125de565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156125bc5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156125d1576125cc838383612e60565b6125dd565b6125dc838383612ca2565b5b5b5b5b600d600081819054906101000a900460ff168092919060010191906101000a81548160ff021916908360ff16021790555050505050565b60008383111582906126c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561268957808201518184015260208101905061266e565b50505050905090810190601f1680156126b65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008060006126e4613148565b915091506126fb818361270290919063ffffffff16565b9250505090565b600061274483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613405565b905092915050565b6000806000612778600761276a60648761270290919063ffffffff16565b6134cb90919063ffffffff16565b9050600061278f8286611d2a90919063ffffffff16565b90508082935093505050915091565b6000806000806127b785886134cb90919063ffffffff16565b905060006127ce86886134cb90919063ffffffff16565b905060006127e58284611d2a90919063ffffffff16565b905082818395509550955050505093509350939050565b600080600080600061280d86611cd2565b9450945094509450945061286986600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d2a90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128fe85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d2a90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061299384600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7490919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129e08382613551565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000806000612a6086611cd2565b94509450945094509450612abc85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d2a90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b5182600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7490919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612be684600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7490919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c338382613551565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000806000612cb386611cd2565b94509450945094509450612d0f85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d2a90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612da484600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7490919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612df18382613551565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000806000612e7186611cd2565b94509450945094509450612ecd86600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d2a90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f6285600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d2a90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ff782600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7490919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061308c84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d7490919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506130d98382613551565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000600654905060006c0c9f2c9cd04674edea40000000905060005b6005805490508110156133b25782600160006005848154811061318657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118061326d575081600260006005848154811061320557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b1561328f576006546c0c9f2c9cd04674edea4000000094509450505050613401565b61331860016000600584815481106132a357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611d2a90919063ffffffff16565b92506133a3600260006005848154811061332e57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611d2a90919063ffffffff16565b91508080600101915050613167565b506133d56c0c9f2c9cd04674edea4000000060065461270290919063ffffffff16565b8210156133f8576006546c0c9f2c9cd04674edea40000000935093505050613401565b81819350935050505b9091565b600080831182906134b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561347657808201518184015260208101905061345b565b50505050905090810190601f1680156134a35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816134bd57fe5b049050809150509392505050565b6000808314156134de576000905061354b565b60008284029050828482816134ef57fe5b0414613546576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806136716021913960400191505060405180910390fd5b809150505b92915050565b61356682600654611d2a90919063ffffffff16565b60068190555061358181600754611d7490919063ffffffff16565b600781905550505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573735472616e7366657220616d6f756e74206578636565647320746865206d696e5478416d6f756e742e5472616e7366657220616d6f756e74206578636565647320746865206d61785478416d6f756e742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212208eb434abb8a6134f138a9f3fd1ea97b007c758ee371f7d15f9a2d93d69b4a41e64736f6c634300060c0033

Deployed Bytecode Sourcemap

15785:10852:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19040:376;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16819:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17834:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18945:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17096:95;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18003:313;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17203:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19866:253;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17005:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18324:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19424:434;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17302:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15227:148;;;:::i;:::-;;16597:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14585:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16910:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18550:269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16641:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17508:167;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20131:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18827:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17683:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20235:332;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15530:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20575:478;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19040:376;19092:14;19109:12;:10;:12::i;:::-;19092:29;;19141:11;:19;19153:6;19141:19;;;;;;;;;;;;;;;;;;;;;;;;;19140:20;19132:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19221:15;19244:19;19255:7;19244:10;:19::i;:::-;19220:43;;;;;;19292:28;19312:7;19292;:15;19300:6;19292:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;19274:7;:15;19282:6;19274:15;;;;;;;;;;;;;;;:46;;;;19341:20;19353:7;19341;;:11;;:20;;;;:::i;:::-;19331:7;:30;;;;19385:23;19400:7;19385:10;;:14;;:23;;;;:::i;:::-;19372:10;:36;;;;19040:376;;;:::o;16819:83::-;16856:13;16889:5;16882:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16819:83;:::o;17834:161::-;17909:4;17926:39;17935:12;:10;:12::i;:::-;17949:7;17958:6;17926:8;:39::i;:::-;17983:4;17976:11;;17834:161;;;;:::o;18945:87::-;18987:7;19014:10;;19007:17;;18945:87;:::o;17096:95::-;17149:7;16259:24;17169:14;;17096:95;:::o;18003:313::-;18101:4;18118:36;18128:6;18136:9;18147:6;18118:9;:36::i;:::-;18165:121;18174:6;18182:12;:10;:12::i;:::-;18196:89;18234:6;18196:89;;;;;;;;;;;;;;;;;:11;:19;18208:6;18196:19;;;;;;;;;;;;;;;:33;18216:12;:10;:12::i;:::-;18196:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;18165:8;:121::i;:::-;18304:4;18297:11;;18003:313;;;;;:::o;17203:91::-;17247:7;17274:12;;;;;;;;;;;17267:19;;;;17203:91;:::o;19866:253::-;19932:7;19971;;19960;:18;;19952:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20036:19;20059:10;:8;:10::i;:::-;20036:33;;20087:24;20099:11;20087:7;:11;;:24;;;;:::i;:::-;20080:31;;;19866:253;;;:::o;17005:83::-;17046:5;17071:9;;;;;;;;;;;17064:16;;17005:83;:::o;18324:218::-;18412:4;18429:83;18438:12;:10;:12::i;:::-;18452:7;18461:50;18500:10;18461:11;:25;18473:12;:10;:12::i;:::-;18461:25;;;;;;;;;;;;;;;:34;18487:7;18461:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;18429:8;:83::i;:::-;18530:4;18523:11;;18324:218;;;;:::o;19424:434::-;19514:7;16259:24;19542:7;:18;;19534:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19612:17;19607:244;;19647:15;19670:19;19681:7;19670:10;:19::i;:::-;19646:43;;;;;;19711:7;19704:14;;;;;19607:244;19753:23;19783:19;19794:7;19783:10;:19::i;:::-;19751:51;;;;;;19824:15;19817:22;;;19424:434;;;;;:::o;17302:198::-;17368:7;17392:11;:20;17404:7;17392:20;;;;;;;;;;;;;;;;;;;;;;;;;17388:49;;;17421:7;:16;17429:7;17421:16;;;;;;;;;;;;;;;;17414:23;;;;17388:49;17455:37;17475:7;:16;17483:7;17475:16;;;;;;;;;;;;;;;;17455:19;:37::i;:::-;17448:44;;17302:198;;;;:::o;15227:148::-;14807:12;:10;:12::i;:::-;14797:22;;:6;;;;;;;;;;:22;;;14789:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15334:1:::1;15297:40;;15318:6;::::0;::::1;;;;;;;;15297:40;;;;;;;;;;;;15365:1;15348:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;15227:148::o:0;16597:37::-;;;;:::o;14585:79::-;14623:7;14650:6;;;;;;;;;;;14643:13;;14585:79;:::o;16910:87::-;16949:13;16982:7;16975:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16910:87;:::o;18550:269::-;18643:4;18660:129;18669:12;:10;:12::i;:::-;18683:7;18692:96;18731:15;18692:96;;;;;;;;;;;;;;;;;:11;:25;18704:12;:10;:12::i;:::-;18692:25;;;;;;;;;;;;;;;:34;18718:7;18692:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;18660:8;:129::i;:::-;18807:4;18800:11;;18550:269;;;;:::o;16641:29::-;;;;;;;;;;;;;:::o;17508:167::-;17586:4;17603:42;17613:12;:10;:12::i;:::-;17627:9;17638:6;17603:9;:42::i;:::-;17663:4;17656:11;;17508:167;;;;:::o;20131:96::-;14807:12;:10;:12::i;:::-;14797:22;;:6;;;;;;;;;;:22;;;14789:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20215:4:::1;20201:11;;:18;;;;;;;;;;;;;;;;;;20131:96:::0;:::o;18827:110::-;18885:4;18909:11;:20;18921:7;18909:20;;;;;;;;;;;;;;;;;;;;;;;;;18902:27;;18827:110;;;:::o;17683:143::-;17764:7;17791:11;:18;17803:5;17791:18;;;;;;;;;;;;;;;:27;17810:7;17791:27;;;;;;;;;;;;;;;;17784:34;;17683:143;;;;:::o;20235:332::-;14807:12;:10;:12::i;:::-;14797:22;;:6;;;;;;;;;;:22;;;14789:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20317:11:::1;:20;20329:7;20317:20;;;;;;;;;;;;;;;;;;;;;;;;;20316:21;20308:61;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;20402:1;20383:7;:16;20391:7;20383:16;;;;;;;;;;;;;;;;:20;20380:108;;;20439:37;20459:7;:16;20467:7;20459:16;;;;;;;;;;;;;;;;20439:19;:37::i;:::-;20420:7;:16;20428:7;20420:16;;;;;;;;;;;;;;;:56;;;;20380:108;20521:4;20498:11;:20;20510:7;20498:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;20536:9;20551:7;20536:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20235:332:::0;:::o;15530:244::-;14807:12;:10;:12::i;:::-;14797:22;;:6;;;;;;;;;;:22;;;14789:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15639:1:::1;15619:22;;:8;:22;;;;15611:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15729:8;15700:38;;15721:6;::::0;::::1;;;;;;;;15700:38;;;;;;;;;;;;15758:8;15749:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;15530:244:::0;:::o;20575:478::-;14807:12;:10;:12::i;:::-;14797:22;;:6;;;;;;;;;;:22;;;14789:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20656:11:::1;:20;20668:7;20656:20;;;;;;;;;;;;;;;;;;;;;;;;;20648:60;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;20724:9;20719:327;20743:9;:16;;;;20739:1;:20;20719:327;;;20801:7;20785:23;;:9;20795:1;20785:12;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;20781:254;;;20844:9;20873:1;20854:9;:16;;;;:20;20844:31;;;;;;;;;;;;;;;;;;;;;;;;;20829:9;20839:1;20829:12;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;20913:1;20894:7;:16;20902:7;20894:16;;;;;;;;;;;;;;;:20;;;;20956:5;20933:11;:20;20945:7;20933:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;20980:9;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21014:5;;20781:254;20761:3;;;;;;;20719:327;;;;20575:478:::0;:::o;278:106::-;331:15;366:10;359:17;;278:106;:::o;24909:411::-;24968:7;24977;24986;24995;25004;25025:23;25050:12;25066:20;25078:7;25066:11;:20::i;:::-;25024:62;;;;25097:19;25120:10;:8;:10::i;:::-;25097:33;;25142:15;25159:23;25184:12;25200:39;25212:7;25221:4;25227:11;25200;:39::i;:::-;25141:98;;;;;;25258:7;25267:15;25284:4;25290:15;25307:4;25250:62;;;;;;;;;;;;;;;;24909:411;;;;;;;:::o;3998:136::-;4056:7;4083:43;4087:1;4090;4083:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4076:50;;3998:136;;;;:::o;3534:181::-;3592:7;3612:9;3628:1;3624;:5;3612:17;;3653:1;3648;:6;;3640:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3706:1;3699:8;;;3534:181;;;;:::o;21061:337::-;21171:1;21154:19;;:5;:19;;;;21146:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21252:1;21233:21;;:7;:21;;;;21225:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21336:6;21306:11;:18;21318:5;21306:18;;;;;;;;;;;;;;;:27;21325:7;21306:27;;;;;;;;;;;;;;;:36;;;;21374:7;21358:32;;21367:5;21358:32;;;21383:6;21358:32;;;;;;;;;;;;;;;;;;21061:337;;;:::o;21406:1262::-;21521:1;21503:20;;:6;:20;;;;21495:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21605:1;21584:23;;:9;:23;;;;21576:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21675:1;21666:6;:10;21658:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21746:7;:5;:7::i;:::-;21736:17;;:6;:17;;;;:41;;;;;21770:7;:5;:7::i;:::-;21757:20;;:9;:20;;;;21736:41;21733:134;;;21810:12;;21800:6;:22;;21792:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21733:134;21910:1;21895:12;;;;;;;;;;;:16;;;21892:122;;;21946:11;;;;;;;;;;;21936:21;;:6;:21;;;21928:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21892:122;22043:11;:19;22055:6;22043:19;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;22067:11;:22;22079:9;22067:22;;;;;;;;;;;;;;;;;;;;;;;;;22066:23;22043:46;22039:597;;;22106:48;22128:6;22136:9;22147:6;22106:21;:48::i;:::-;22039:597;;;22177:11;:19;22189:6;22177:19;;;;;;;;;;;;;;;;;;;;;;;;;22176:20;:46;;;;;22200:11;:22;22212:9;22200:22;;;;;;;;;;;;;;;;;;;;;;;;;22176:46;22172:464;;;22239:46;22259:6;22267:9;22278:6;22239:19;:46::i;:::-;22172:464;;;22308:11;:19;22320:6;22308:19;;;;;;;;;;;;;;;;;;;;;;;;;22307:20;:47;;;;;22332:11;:22;22344:9;22332:22;;;;;;;;;;;;;;;;;;;;;;;;;22331:23;22307:47;22303:333;;;22371:44;22389:6;22397:9;22408:6;22371:17;:44::i;:::-;22303:333;;;22437:11;:19;22449:6;22437:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;22460:11;:22;22472:9;22460:22;;;;;;;;;;;;;;;;;;;;;;;;;22437:45;22433:203;;;22499:48;22521:6;22529:9;22540:6;22499:21;:48::i;:::-;22433:203;;;22580:44;22598:6;22606:9;22617:6;22580:17;:44::i;:::-;22433:203;22303:333;22172:464;22039:597;22646:12;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21406:1262;;;:::o;4437:192::-;4523:7;4556:1;4551;:6;;4559:12;4543:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4583:9;4599:1;4595;:5;4583:17;;4620:1;4613:8;;;4437:192;;;;;:::o;25908:163::-;25949:7;25970:15;25987;26006:19;:17;:19::i;:::-;25969:56;;;;26043:20;26055:7;26043;:11;;:20;;;;:::i;:::-;26036:27;;;;25908:163;:::o;5835:132::-;5893:7;5920:39;5924:1;5927;5920:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;5913:46;;5835:132;;;;:::o;25328:230::-;25388:7;25397;25417:12;25432:23;25453:1;25432:16;25444:3;25432:7;:11;;:16;;;;:::i;:::-;:20;;:23;;;;:::i;:::-;25417:38;;25466:23;25492:17;25504:4;25492:7;:11;;:17;;;;:::i;:::-;25466:43;;25528:15;25545:4;25520:30;;;;;;25328:230;;;:::o;25566:334::-;25661:7;25670;25679;25699:15;25717:24;25729:11;25717:7;:11;;:24;;;;:::i;:::-;25699:42;;25752:12;25767:21;25776:11;25767:4;:8;;:21;;;;:::i;:::-;25752:36;;25799:23;25825:17;25837:4;25825:7;:11;;:17;;;;:::i;:::-;25799:43;;25861:7;25870:15;25887:4;25853:39;;;;;;;;;25566:334;;;;;;;:::o;23655:506::-;23758:15;23775:23;23800:12;23814:23;23839:12;23855:19;23866:7;23855:10;:19::i;:::-;23757:117;;;;;;;;;;23903:28;23923:7;23903;:15;23911:6;23903:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;23885:7;:15;23893:6;23885:15;;;;;;;;;;;;;;;:46;;;;23960:28;23980:7;23960;:15;23968:6;23960:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;23942:7;:15;23950:6;23942:15;;;;;;;;;;;;;;;:46;;;;24020:39;24043:15;24020:7;:18;24028:9;24020:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;23999:7;:18;24007:9;23999:18;;;;;;;;;;;;;;;:60;;;;24070:23;24082:4;24088;24070:11;:23::i;:::-;24126:9;24109:44;;24118:6;24109:44;;;24137:15;24109:44;;;;;;;;;;;;;;;;;;23655:506;;;;;;;;:::o;23129:518::-;23230:15;23247:23;23272:12;23286:23;23311:12;23327:19;23338:7;23327:10;:19::i;:::-;23229:117;;;;;;;;;;23375:28;23395:7;23375;:15;23383:6;23375:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;23357:7;:15;23365:6;23357:15;;;;;;;;;;;;;;;:46;;;;23435:39;23458:15;23435:7;:18;23443:9;23435:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;23414:7;:18;23422:9;23414:18;;;;;;;;;;;;;;;:60;;;;23506:39;23529:15;23506:7;:18;23514:9;23506:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;23485:7;:18;23493:9;23485:18;;;;;;;;;;;;;;;:60;;;;23556:23;23568:4;23574;23556:11;:23::i;:::-;23612:9;23595:44;;23604:6;23595:44;;;23623:15;23595:44;;;;;;;;;;;;;;;;;;23129:518;;;;;;;;:::o;22676:445::-;22775:15;22792:23;22817:12;22831:23;22856:12;22872:19;22883:7;22872:10;:19::i;:::-;22774:117;;;;;;;;;;22920:28;22940:7;22920;:15;22928:6;22920:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;22902:7;:15;22910:6;22902:15;;;;;;;;;;;;;;;:46;;;;22980:39;23003:15;22980:7;:18;22988:9;22980:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;22959:7;:18;22967:9;22959:18;;;;;;;;;;;;;;;:60;;;;23030:23;23042:4;23048;23030:11;:23::i;:::-;23086:9;23069:44;;23078:6;23069:44;;;23097:15;23069:44;;;;;;;;;;;;;;;;;;22676:445;;;;;;;;:::o;24169:577::-;24272:15;24289:23;24314:12;24328:23;24353:12;24369:19;24380:7;24369:10;:19::i;:::-;24271:117;;;;;;;;;;24417:28;24437:7;24417;:15;24425:6;24417:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;24399:7;:15;24407:6;24399:15;;;;;;;;;;;;;;;:46;;;;24474:28;24494:7;24474;:15;24482:6;24474:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;24456:7;:15;24464:6;24456:15;;;;;;;;;;;;;;;:46;;;;24534:39;24557:15;24534:7;:18;24542:9;24534:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;24513:7;:18;24521:9;24513:18;;;;;;;;;;;;;;;:60;;;;24605:39;24628:15;24605:7;:18;24613:9;24605:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;24584:7;:18;24592:9;24584:18;;;;;;;;;;;;;;;:60;;;;24655:23;24667:4;24673;24655:11;:23::i;:::-;24711:9;24694:44;;24703:6;24694:44;;;24722:15;24694:44;;;;;;;;;;;;;;;;;;24169:577;;;;;;;;:::o;26079:555::-;26129:7;26138;26158:15;26176:7;;26158:25;;26194:15;16259:24;26194:25;;26235:9;26230:289;26254:9;:16;;;;26250:1;:20;26230:289;;;26320:7;26296;:21;26304:9;26314:1;26304:12;;;;;;;;;;;;;;;;;;;;;;;;;26296:21;;;;;;;;;;;;;;;;:31;:66;;;;26355:7;26331;:21;26339:9;26349:1;26339:12;;;;;;;;;;;;;;;;;;;;;;;;;26331:21;;;;;;;;;;;;;;;;:31;26296:66;26292:97;;;26372:7;;16259:24;26364:25;;;;;;;;;26292:97;26414:34;26426:7;:21;26434:9;26444:1;26434:12;;;;;;;;;;;;;;;;;;;;;;;;;26426:21;;;;;;;;;;;;;;;;26414:7;:11;;:34;;;;:::i;:::-;26404:44;;26473:34;26485:7;:21;26493:9;26503:1;26493:12;;;;;;;;;;;;;;;;;;;;;;;;;26485:21;;;;;;;;;;;;;;;;26473:7;:11;;:34;;;;:::i;:::-;26463:44;;26272:3;;;;;;;26230:289;;;;26543:20;16259:24;26543:7;;:11;;:20;;;;:::i;:::-;26533:7;:30;26529:61;;;26573:7;;16259:24;26565:25;;;;;;;;26529:61;26609:7;26618;26601:25;;;;;;26079:555;;;:::o;6463:278::-;6549:7;6581:1;6577;:5;6584:12;6569:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6608:9;6624:1;6620;:5;;;;;;6608:17;;6732:1;6725:8;;;6463:278;;;;;:::o;4888:471::-;4946:7;5196:1;5191;:6;5187:47;;;5221:1;5214:8;;;;5187:47;5246:9;5262:1;5258;:5;5246:17;;5291:1;5286;5282;:5;;;;;;:10;5274:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5350:1;5343:8;;;4888:471;;;;;:::o;24754:147::-;24832:17;24844:4;24832:7;;:11;;:17;;;;:::i;:::-;24822:7;:27;;;;24873:20;24888:4;24873:10;;:14;;:20;;;;:::i;:::-;24860:10;:33;;;;24754:147;;:::o

Swarm Source

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