interface IUniLPToken {
 
  /**
   * @notice Returns the address of `UniswapV2 Factory`.
   * @return factory The address of the factory.
   */
  function factory() external view returns (address factory);
  
  /**
   * @notice Returns the first pair token.
   * @return token The address of the first pair token.
   */
  function token0() external view returns (address token);

  /**
   * @notice Returns the second pair token.
   * @return token The address of the second pair token.
   */
  function token1() external view returns (address token);

  /**
   * @notice Returns the symbol of the token.
   * @return symbol The token symbol.
   */
  function symbol() external view returns (string memory symbol);

  /**
    * @notice Returns the decimals value of the `Uni LP Token`.
    * @return decimals `Uni LP Token` decimals.
   */
  function decimals() external view returns (uint256);

  /**
   * @notice Returns the name of the token.
   * @return name The token name.
   */
  function name() external view returns (string memory name);

  /**
   * @notice Returns total token supply.
   * @return totalSupply The total supply.
   */
  function totalSupply() external view returns (uint256 totalSupply);

  /**
   * @notice Returns account's balance.
   * @param account The address of the user.
   * @return balance The amount tokens user have.
   */
  function balanceOf(address account) external view returns (uint256 balance);
}
function factory() external view returns (address factory);
/**
 * @notice Returns the address of `UniswapV2 Factory`.
 * @return factory The address of the factory.
 */