code: def ParseCacheEntry(self, file_object, block_offset):
      
      cache_entry_map = self._GetDataTypeMap('chrome_cache_entry')
  
      try:
        cache_entry, _ = self._ReadStructureFromFileObject(
            file_object, block_offset, cache_entry_map)
      except (ValueError, errors.ParseError) as exception:
        raise errors.UnableToParseFile((
            'Unable to parse cache entry at offset: 0x{0:08x} with error: '
            '{1!s}').format(block_offset, exception))
  
      cache_entry_object = CacheEntry()
  
      cache_entry_object.hash = cache_entry.hash
      cache_entry_object.next = CacheAddress(cache_entry.next_address)
      cache_entry_object.rankings_node = CacheAddress(
          cache_entry.rankings_node_address)
      cache_entry_object.creation_time = cache_entry.creation_time
  
      byte_array = cache_entry.key
      byte_string = bytes(bytearray(byte_array))
      cache_entry_object.key, _, _ = byte_string.partition(b'\x00')
  
      try:
        cache_entry_object.original_url = cache_entry_object.key.decode('ascii')
      except UnicodeDecodeError as exception:
        raise errors.ParseError(
            'Unable to decode original URL in key with error: {0!s}'.format(
                exception))
  
      return cache_entry_object
docs: Parses a cache entry.
  
      Args:
        file_object (dfvfs.FileIO): a file-like object to read from.
        block_offset (int): block offset of the cache entry.
  
      Returns:
        CacheEntry: cache entry.
  
      Raises:
        ParseError: if the cache entry cannot be read.