code: def _ParseCachedEntry2003(self, value_data, cached_entry_offset):
      
  
      try:
        cached_entry = self._ReadStructureFromByteStream(
            value_data[cached_entry_offset:], cached_entry_offset,
            self._cached_entry_data_type_map)
      except (ValueError, errors.ParseError) as exception:
        raise errors.ParseError(
            'Unable to parse cached entry value with error: {0!s}'.format(
                exception))
  
      path_size = cached_entry.path_size
      maximum_path_size = cached_entry.maximum_path_size
      path_offset = cached_entry.path_offset
  
      if path_offset > 0 and path_size > 0:
        path_size += path_offset
        maximum_path_size += path_offset
  
        try:
          path = value_data[path_offset:path_size].decode('utf-16-le')
        except UnicodeDecodeError:
          raise errors.ParseError('Unable to decode cached entry path to string')
  
      cached_entry_object = AppCompatCacheCachedEntry()
      cached_entry_object.cached_entry_size = (
          self._cached_entry_data_type_map.GetByteSize())
      cached_entry_object.file_size = getattr(cached_entry, 'file_size', None)
      cached_entry_object.last_modification_time = (
          cached_entry.last_modification_time)
      cached_entry_object.path = path
  
      return cached_entry_object
docs: Parses a Windows 2003 cached entry.
  
      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:
        AppCompatCacheCachedEntry: cached entry.
  
      Raises:
        ParseError: if the value data could not be parsed.