code: def _read_eof(self):
      # We've read to the end of the file
      # We check that the computed CRC and size of the
      # uncompressed data matches the stored values.  Note that the size
      # stored is the true file size mod 2**32.
      crc32, isize = struct.unpack("<II", _read_exact(self._fp, 8))
      if crc32 != self._crc:
          raise BadGzipFile(
              "CRC check failed %s != %s" % (hex(crc32), hex(self._crc))
          )
      elif isize != (self._stream_size & 0xFFFFFFFF):
          raise BadGzipFile("Incorrect length of data produced")
  
      # Gzip files can be padded with zeroes and still have archives.
      # Consume all zero bytes and set the file position to the first
      # non-zero byte. See http://www.gzip.org/#faq8
      c = b"\x00"
      while c == b"\x00":
          c = self._fp.read(1)
      if c:
          self._fp.prepend(c)
  
imports: import struct, sys, time, os
  import zlib
  import builtins
  import io
  import _compression
label_desc: Use image node_id 6 for calling the _GzipReader obj's underlying member method code with example usage: obj._read_eof() without return types