code: def card_read_options_and_arguments(func):
      @click.option(
          "--hash",
          default=None,
          show_default=True,
          type=str,
          help="Hash of the stored HTML",
      )
      @click.option(
          "--type",
          default=None,
          show_default=True,
          type=str,
          help="Type of card",
      )
      @click.option(
          "--id",
          default=None,
          show_default=True,
          type=str,
          help="Id of the card",
      )
      @click.option(
          "--follow-resumed/--no-follow-resumed",
          default=True,
          show_default=True,
          help="Follow the origin-task-id of resumed tasks to seek cards stored for resumed tasks.",
      )
      @wraps(func)
      def wrapper(*args, **kwargs):
          return func(*args, **kwargs)
  
      return wrapper
  
imports: from metaflow.client import Task
  from metaflow import JSONType, namespace
  from metaflow.util import resolve_identity
  from metaflow.exception import CommandException, MetaflowNotFound, MetaflowNamespaceMismatch
  import webbrowser
  import re
  from metaflow._vendor import click
  import os
  import json
  import uuid
  import signal
  import random
  from contextlib import contextmanager
  from functools import wraps
  from metaflow.exception import MetaflowNamespaceMismatch
  from .card_datastore import CardDatastore, NUM_SHORT_HASH_CHARS
  from .exception import CardClassFoundException, IncorrectCardArgsException, UnrenderableCardException, CardNotPresentException, TaskNotFoundException
  import traceback
  from collections import namedtuple
  from .card_resolver import resolve_paths_from_task, resumed_info
label_desc: Use image node_id 11 for calling a global function with example usage: card_read_options_and_arguments(func) and returns: wrapper, func