old_contents: import re
  import textwrap
  import email.message
  
  from ._text import FoldedCase
  
  
  class Message(email.message.Message):
      multiple_use_keys = set(
          map(
              FoldedCase,
              [
                  'Classifier',
                  'Obsoletes-Dist',
                  'Platform',
                  'Project-URL',
                  'Provides-Dist',
                  'Provides-Extra',
                  'Requires-Dist',
                  'Requires-External',
                  'Supported-Platform',
              ],
          )
      )
      """
      Keys that may be indicated multiple times per PEP 566.
      """
  
      def __new__(cls, orig: email.message.Message):
          res = super().__new__(cls)
          vars(res).update(vars(orig))
          return res
  
      def __init__(self, *args, **kwargs):
          self._headers = self._repair_headers()
  
      # suppress spurious error from mypy
      def __iter__(self):
          return super().__iter__()
  
      def _repair_headers(self):
          def redent(value):
              "Correct for RFC822 indentation"
              if not value or '\n' not in value:
                  return value
              return textwrap.dedent(' ' * 8 + value)
  
          headers = [(key, redent(value)) for key, value in vars(self)['_headers']]
          if self._payload:
              headers.append(('Description', self.get_payload()))
          return headers
  
      @property
      def json(self):
          """
          Convert PackageMetadata to a JSON-compatible format
          per PEP 0566.
          """
  
          def transform(key):
              value = self.get_all(key) if key in self.multiple_use_keys else self[key]
              if key == 'Keywords':
                  value = re.split(r'\s+', value)
              tk = key.lower().replace('-', '_')
              return tk, value
  
          return dict(map(transform, map(FoldedCase, self)))
  
new_contents: import re
  import textwrap
  import email.message
  
  from ._text import FoldedCase
  
  
  class Message(email.message.Message):
      multiple_use_keys = set(
          map(
              FoldedCase,
              [
                  'Classifier',
                  'Obsoletes-Dist',
                  'Platform',
                  'Project-URL',
                  'Provides-Dist',
                  'Provides-Extra',
                  'Requires-Dist',
                  'Requires-External',
                  'Supported-Platform',
                  'Dynamic',
              ],
          )
      )
      """
      Keys that may be indicated multiple times per PEP 566.
      """
  
      def __new__(cls, orig: email.message.Message):
          res = super().__new__(cls)
          vars(res).update(vars(orig))
          return res
  
      def __init__(self, *args, **kwargs):
          self._headers = self._repair_headers()
  
      # suppress spurious error from mypy
      def __iter__(self):
          return super().__iter__()
  
      def _repair_headers(self):
          def redent(value):
              "Correct for RFC822 indentation"
              if not value or '\n' not in value:
                  return value
              return textwrap.dedent(' ' * 8 + value)
  
          headers = [(key, redent(value)) for key, value in vars(self)['_headers']]
          if self._payload:
              headers.append(('Description', self.get_payload()))
          return headers
  
      @property
      def json(self):
          """
          Convert PackageMetadata to a JSON-compatible format
          per PEP 0566.
          """
  
          def transform(key):
              value = self.get_all(key) if key in self.multiple_use_keys else self[key]
              if key == 'Keywords':
                  value = re.split(r'\s+', value)
              tk = key.lower().replace('-', '_')
              return tk, value
  
          return dict(map(transform, map(FoldedCase, self)))
  
subject: add support for metadata 2.2