code: def subdispatch_to_all_initiatortransfer(
          payment_state: InitiatorPaymentState,
          state_change: StateChange,
          channelidentifiers_to_channels: ChannelMap,
          pseudo_random_generator: random.Random,
  ) -> TransitionResult[InitiatorPaymentState]:
      events = list()
      ''' Copy and iterate over the list of keys because this loop
      will alter the `initiator_transfers` list and this is not
      allowed if iterating over the original list.
      '''
      for secrethash in list(payment_state.initiator_transfers.keys()):
          initiator_state = payment_state.initiator_transfers[secrethash]
          sub_iteration = subdispatch_to_initiatortransfer(
              payment_state=payment_state,
              initiator_state=initiator_state,
              state_change=state_change,
              channelidentifiers_to_channels=channelidentifiers_to_channels,
              pseudo_random_generator=pseudo_random_generator,
          )
          events.extend(sub_iteration.events)
      return TransitionResult(payment_state, eventsf subdispatch_to_all_initiatortransfer(
          payment_state: InitiatorPaymentState,
          state_change: StateChange,
          channelidentifiers_to_channels: ChannelMap,
          pseudo_random_generator: random.Random,
  ) -> TransitionResult[InitiatorPaymentState]:
      events = list()
      ''' Copy and iterate over the list of keys because this loop
      will alter the `initiator_transfers` list and this is not
      allowed if iterating over the original list.
      '''
      for secrethash in list(payment_state.initiator_transfers.keys()):
          initiator_state = payment_state.initiator_transfers[secrethash]
          sub_iteration = subdispatch_to_initiatortransfer(
              payment_state=payment_state,
              initiator_state=initiator_state,
              state_change=state_change,
              channelidentifiers_to_channels=channelidentifiers_to_channels,
              pseudo_random_generator=pseudo_random_generator,
          )
          events.extend(sub_iteration.events)
      return TransitionResult(payment_state, events)
docs: Copy and iterate over the list of keys because this loop
      will alter the `initiator_transfers` list and this is not
      allowed if iterating over the original list.