code: def untokenize(iterable: Iterable[TokenInfo]) -> str:
      """Transform tokens back into Python source code.
  
      Each element returned by the iterable must be a token sequence
      with at least two elements, a token number and token value.  If
      only two tokens are passed, the resulting output is poor.
  
      Round-trip invariant for full input:
          Untokenized source will match input source exactly
  
      Round-trip invariant for limited input:
          # Output text will tokenize the back to the input
          t1 = [tok[:2] for tok in generate_tokens(f.readline)]
          newcode = untokenize(t1)
          readline = iter(newcode.splitlines(1)).next
          t2 = [tok[:2] for tokin generate_tokens(readline)]
          assert t1 == t2
      """
      ut = Untokenizer()
      return ut.untokenize(iterable)
  
imports: import sys
  from typing import Callable, Final, Iterable, Iterator, List, Optional, Pattern, Set, Tuple, Union
  from blib2to3.pgen2.grammar import Grammar
  from blib2to3.pgen2.token import ASYNC, AWAIT, COMMENT, DEDENT, ENDMARKER, ERRORTOKEN, INDENT, NAME, NEWLINE, NL, NUMBER, OP, STRING, tok_name
  import re
  from codecs import BOM_UTF8, lookup
  from .None import token
label_desc: Use image node_id 10 for calling a global function with example usage: untokenize(iterable) and returns: ut