public Map<String, Long> digestFiles(Path dir, Set<String> ignoredFiles) throws IOException {
    Map<String, Long> result = new LinkedHashMap<>();
    Utils.collectRelativePaths(dir).parallelStream().forEachOrdered(path -> {
      if (!ignoredFiles.contains(path)) {
        try {
          long hash = digestFile(dir.resolve(path));
          synchronized (result) {
            result.put(path, hash);
          }
        }
        catch (IOException e) { throw new UncheckedIOException(e); }
      }
    });
    return result;
  }
public Map<String, Long> digestFiles(Path dir, Set<String> ignoredFiles)