code: def _read_solution_components(solutions_arrays, structure, time_id):
      """Composes `struct` from `time_id` slices of `solutions_arrays`.
  
      Args:
        solutions_arrays: List of `TensorArray`s holding components of solutions at
          different time steps.
        structure: Possibly nested structure of `Tensor`s representing solution
          state as defined in corresponding ODE.
        time_id: Scalar integer indicating which time steo to read.
  
      Returns:
        solution: Solution of the same structure as `structure` assembled from
          components in solutions array.
      """
      tf.nest.assert_same_structure(structure, solutions_arrays)
      read_solution = lambda array: array.read(time_id)
      solution = tf.nest.map_structure(read_solution, solutions_arrays)
      return solution
  
imports: import abc
  import collections
  import functools
  import six
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.internal import custom_gradient
  from tensorflow_probability.python.internal import dtype_util
  from tensorflow_probability.python.math import gradient
  from tensorflow_probability.python.math.ode import runge_kutta_util
  from tensorflow_probability.python.math.ode import util
label_desc: Use image node_id 1 for calling a global function with example usage: _read_solution_components(solutions_arrays, structure, time_id) and returns: solution