code: def get_fully_connected_senders_and_receivers(
      num_particles: int,
      self_edges: bool = False,
  ) -> Tuple[np.ndarray, np.ndarray]:
      """Returns senders and receivers for fully connected particles."""
      particle_indices = np.arange(num_particles)
      senders, receivers = np.meshgrid(
          particle_indices, particle_indices
      )
      senders, receivers = senders.flatten(), receivers.flatten()
      if not self_edges:
          mask = senders != receivers
          senders, receivers = senders[mask], receivers[mask]
      return senders, receivers
  
imports: import functools
  from typing import Tuple, Callable
  from absl import app
  from frozendict import frozendict
  import jax
  import jax.numpy
  import jraph
  import matplotlib.pyplot
  import numpy
label_desc: Use image node_id 4 for calling a global function with example usage: get_fully_connected_senders_and_receivers(num_particles, _edges) and returns: senders,  receivers