@Override
    public int read(byte @NotNull [] b, int off, int len) throws IOException {
      if (remaining <= 0) {
        if (addDummyByte) {
          addDummyByte = false;
          b[off] = 0;
          return 1;
        }
        return -1;
      }

      if (len <= 0) {
        return 0;
      }

      if (len > remaining) {
        len = (int)remaining;
      }

      final int ret;
      RandomAccessFile archive = myFile.myArchive;
      archive.seek(loc);
      ret = archive.read(b, off, len);

      if (ret > 0) {
        loc += ret;
        remaining -= ret;
      }
      return ret;
    }
@Override
    public int read(byte @NotNull [] b, int off, int len)