code: def _ParseCommon2003CachedEntry(self, value_data, cached_entry_offset):
      
      data_type_map = self._GetDataTypeMap(
          'appcompatcache_cached_entry_2003_common')
  
      try:
        cached_entry = self._ReadStructureFromByteStream(
            value_data[cached_entry_offset:], cached_entry_offset, data_type_map)
      except (ValueError, errors.ParseError) as exception:
        raise errors.ParseError(
            'Unable to parse cached entry value with error: {0!s}'.format(
                exception))
  
      if cached_entry.path_size > cached_entry.maximum_path_size:
        raise errors.ParseError('Path size value out of bounds.')
  
      path_end_of_string_size = (
          cached_entry.maximum_path_size - cached_entry.path_size)
      if cached_entry.path_size == 0 or path_end_of_string_size != 2:
        raise errors.ParseError('Unsupported path size values.')
  
      return cached_entry
docs: Parses the cached entry structure common for Windows 2003, Vista and 7.
  
      Args:
        value_data (bytes): value data.
        cached_entry_offset (int): offset of the first cached entry data
            relative to the start of the value data.
  
      Returns:
        appcompatcache_cached_entry_2003_common: cached entry structure common
            for Windows 2003, Windows Vista and Windows 7.
  
      Raises:
        ParseError: if the value data could not be parsed.