code: def _sanitize_output_vars_and_nested_blocks(
      block, sanitizer_vars, sanitizer_ops
  ):
      for op in list(block.operations):
          for b in op.blocks:
              NameSanitizer.sanitize_block(
                  b, sanitizer_vars, sanitizer_ops
              )
  
          for var in op.outputs:
              if isinstance(block, Function) and var in block.outputs:
                  NameSanitizer._sanitize_var_names(
                      var, sanitizer_vars, emit_warning=True
                  )
              else:
                  NameSanitizer._sanitize_var_names(var, sanitizer_vars)
  
imports: import re
  import warnings
  from collections import OrderedDict
  from coremltools import _logger
  from coremltools.converters.mil.input_types import EnumeratedShapes, ImageType, Shape
  from coremltools.converters.mil.mil import Builder
  from coremltools.converters.mil.mil import Function, types
  from coremltools.converters.mil.mil.passes.graph_pass import AbstractGraphPass
  from coremltools.converters.mil.mil.passes.pass_registry import register_pass
label_desc: Use image node_id 8 for calling the NameSanitizer obj's underlying member method code with example usage: obj._sanitize_output_vars_and_nested_blocks(block, sanitizer_vars, sanitizer_ops) without return types