code: def _apply_filter(elts, filters):
      if filters is None:
          return elts
      starting_point = elts
      result = []
      for key, value in filters.items():
          if key == "any_tags":
              for obj in starting_point:
                  if value in obj.get("tags", []) or value in obj.get(
                      "system_tags", []
                  ):
                      result.append(obj)
          if key == "tags":
              for obj in starting_point:
                  if value in obj.get("tags", []):
                      result.append(obj)
          if key == "system_tags":
              for obj in starting_point:
                  if value in obj.get("system_tags", []):
                      result.append(obj)
          starting_point = result
          result = []
      return starting_point
  
imports: import json
  import os
  import re
  import time
  from collections import namedtuple
  from itertools import chain
  from metaflow.exception import MetaflowInternalError, MetaflowTaggingError
  from metaflow.tagging_util import validate_tag
  from metaflow.util import get_username, resolve_identity_as_tuple, is_stringish
label_desc: Use image node_id 32 for calling the MetadataProvider obj's underlying member method code with example usage: obj._apply_filter(elts, filters) and returns: starting_point, elts