@Contract("null, _, _, _ -> null; !null,_,_,_->!null")
  private static String toCanonicalPath(@Nullable String path,
                                        char separatorChar,
                                        boolean removeLastSlash,
                                        boolean resolveSymlinks) {
    FileUtilRt.SymlinkResolver symlinkResolver = resolveSymlinks ? SYMLINK_RESOLVER : null;
    return FileUtilRt.toCanonicalPath(path, separatorChar, removeLastSlash, symlinkResolver);
  }
@Contract("null, _, _, _ -> null; !null,_,_,_->!null")
  private static String toCanonicalPath(@Nullable String path,
                                        char separatorChar,
                                        boolean removeLastSlash,
                                        boolean resolveSymlinks)