code: def _c3_merge(sequences, cls, context):
      
      result = []
      while True:
          sequences = [s for s in sequences if s]  # purge empty sequences
          if not sequences:
              return result
          for s1 in sequences:  # find merge candidates among seq heads
              candidate = s1[0]
              for s2 in sequences:
                  if candidate in s2[1:]:
                      candidate = None
                      break  # reject the current head, it appears later
              else:
                  break
          if not candidate:
              # Show all the remaining bases, which were considered as
              # candidates for the next mro sequence.
              raise exceptions.InconsistentMroError(
                  message="Cannot create a consistent method resolution order "
                  "for MROs {mros} of class {cls!r}.",
                  mros=sequences,
                  cls=cls,
                  context=context,
              )
  
          result.append(candidate)
          # remove the chosen candidate
          for seq in sequences:
              if seq[0] == candidate:
                  del seq[0]
      return None
docs: Merges MROs in *sequences* to a single MRO using the C3 algorithm.
  
      Adapted from http://www.python.org/download/releases/2.3/mro/.