code: def secondary_report_numbers(self, key, value):
      
      preliminary_results_prefixes = ['ATLAS-CONF-', 'CMS-PAS-', 'CMS-DP-', 'LHCB-CONF-']
      note_prefixes = ['ALICE-INT-', 'ATL-', 'ATLAS-CONF-', 'CMS-DP-', 'CMS-PAS-', 'LHCB-CONF-', 'LHCB-PUB-']
  
      result_037 = self.get('037__', [])
      result_500 = self.get('500__', [])
      result_595 = self.get('595__', [])
      result_980 = self.get('980__', [])
  
      report = force_single_element(value.get('a', ''))
      hidden_report = force_single_element(value.get('9') or value.get('z', ''))
      source = 'CDS' if not is_arxiv(report) else 'arXiv'
  
      if any(report.upper().startswith(prefix) for prefix in note_prefixes):
          result_980.append({'a': 'NOTE'})
  
      if any(report.upper().startswith(prefix) for prefix in preliminary_results_prefixes):
          result_500.append({'9': 'CDS', 'a': 'Preliminary results'})
  
      is_barcode = hidden_report.startswith('P0') or hidden_report.startswith('CM-P0')
      if not report.startswith('SIS-') and not is_barcode:
          result_037.append({
              '9': source,
              'a': report,
              'c': value.get('c'),
              'z': hidden_report if source == 'CDS' else None,
          })
  
      self['500__'] = result_500
      self['595__'] = result_595
      self['980__'] = result_980
      return result_037
docs: Populate the ``037`` MARC field.
  
      Also populates the ``500``, ``595`` and ``980`` MARC field through side effects.