code: def explode_tokens(tokenlist):
      
      # When the tokenlist is already exploded, don't explode again.
      if getattr(tokenlist, 'exploded', False):
          return tokenlist
  
      result = []
  
      for token, string in tokenlist:
          for c in string:
              result.append((token, c))
  
      return _ExplodedList(result)
docs: Turn a list of (token, text) tuples into another list where each string is
      exactly one character.
  
      It should be fine to call this function several times. Calling this on a
      list that is already exploded, is a null operation.
  
      :param tokenlist: List of (token, text) tuples.