docs: public long readLong() {
      return ((buf[position++] & 0xff)
          + ((long) (buf[position++] & 0xff) << 8)
          + ((long) (buf[position++] & 0xff) << 16)
          + ((long) (buf[position++] & 0xff) << 24)
          + ((long) (buf[position++] & 0xff) << 32)
          + ((long) (buf[position++] & 0xff) << 40)
          + ((long) (buf[position++] & 0xff) << 48)
          + ((long) (buf[position++] & 0xff) << 56));
    }