code: def read(self, input_file):
          
          key, value = None, None
          import sys
          for line in input_file:
              if line == '\n':
                  break
              if line[-1:] == '\n':
                  line = line[:-1]
              item = line.split(':', 1)
              if len(item) == 2:
                  # start of a new item
                  self._update(key, value)
                  key, value = item[0], urllib.unquote(item[1])
              elif key is not None:
                  # continuation of the current item
                  value = '\n'.join([value, urllib.unquote(line)])
  
          self._update(key, value)
          return
docs: Reads an InputHeader from `input_file`.
  
          The input header is read as a sequence of *<key>***:***<value>* pairs
          separated by a newline. The end of the input header is signalled by an
          empty line or an end-of-file.
  
          :param input_file: File-like object that supports iteration over lines