code: def _GetKeysDefaultEmpty(self, top_level, keys, depth=1):
      
      keys = set(keys)
      match = {}
  
      if depth == 1:
        for key in keys:
          value = top_level.get(key, None)
          if value is not None:
            match[key] = value
      else:
        for _, parsed_key, parsed_value in plist_interface.RecurseKey(
            top_level, depth=depth):
          if parsed_key in keys:
            match[parsed_key] = parsed_value
            if set(match.keys()) == keys:
              return match
      return match
docs: Retrieves plist keys, defaulting to empty values.
  
      Args:
        top_level (plistlib._InternalDict): top level plist object.
        keys (set[str]): names of keys that should be returned.
        depth (int): depth within the plist, where 1 is top level.
  
      Returns:
        dict[str, str]: values of the requested keys.