code: def gather_jumps(self, jump_instr):
      to = self.jump_map.get(jump_instr.to, jump_instr.to)
      assert to > jump_instr.i
  
      and_block = self.make_block(to=to, inclusive=False, raise_=False)
  
      jump_tos = {to}
      last_len = 0
      old_max = to
  
      while len(jump_tos) != last_len:
          last_len = len(jump_tos)
  
          for instr in and_block:
              if instr.opname in JUMPS:
                  to = self.jump_map.get(instr.to, instr.to)
                  assert to > jump_instr.i
                  jump_tos.add(to)
  
          if old_max < max(jump_tos):
              old_max = max(jump_tos)
              new_block = self.make_block(
                  to=old_max, inclusive=False, raise_=False
              )
              and_block.extend(new_block)
  
      # print("and_block", and_block)
      return and_block
  
imports: from __future__ import print_function
  from __future__ import division
  from __future__ import absolute_import
  import opcode
  import _ast
  from ..bytecodetools.instruction import Instruction
  from ..asttools.visitors.print_visitor import print_ast
  from ..utils import py3op, py2op, py3
label_desc: Use image node_id 21 for calling the CtrlFlowInstructions obj's underlying member method code with example usage: obj.gather_jumps(jump_instr) and returns: and_block