private long readUInt() throws IOException {
    byte[] buf = new byte[4];
    readFully(buf);
    return buf[3] << 24 | (buf[2] & 0xFF) << 16 | (buf[1] & 0xFF) << 8 | (buf[0] & 0xFF);
  }
private long readUInt()