code: def _GetMetadataForClients(self, client_urns):
      
  
      result = {}
      metadata_to_fetch = set()
  
      for urn in client_urns:
        try:
          result[urn] = self._cached_metadata[urn]
        except KeyError:
          metadata_to_fetch.add(urn)
  
      if metadata_to_fetch:
        if data_store.RelationalDBEnabled():
          client_ids = set(urn.Basename() for urn in metadata_to_fetch)
          infos = data_store.REL_DB.MultiReadClientFullInfo(client_ids)
  
          fetched_metadata = [
              export.GetMetadata(client_id, info)
              for client_id, info in infos.items()
          ]
        else:
          client_fds = aff4.FACTORY.MultiOpen(
              metadata_to_fetch, mode="r", token=self.token)
  
          fetched_metadata = [
              export.GetMetadataLegacy(client_fd, token=self.token)
              for client_fd in client_fds
          ]
  
        for metadata in fetched_metadata:
          metadata.source_urn = self.source_urn
  
          self._cached_metadata[metadata.client_urn] = metadata
          result[metadata.client_urn] = metadata
          metadata_to_fetch.remove(metadata.client_urn)
  
        for urn in metadata_to_fetch:
          default_mdata = export.ExportedMetadata(source_urn=self.source_urn)
          result[urn] = default_mdata
          self._cached_metadata[urn] = default_mdata
  
      return [result[urn] for urn in client_urns]
docs: Fetches metadata for a given list of clients.