def METHOD_NAME(
    self, deep_copy_buffers: bool = True
) -> 'cirq.SimulationProductState[TSimulationState]':
    classical_data = self._classical_data.METHOD_NAME()
    copies = {}
    for sim_state in set(self.sim_states.values()):
        copies[sim_state] = sim_state.METHOD_NAME(deep_copy_buffers)
    for METHOD_NAME in copies.values():
        METHOD_NAME._classical_data = classical_data
    args = {q: copies[a] for q, a in self.sim_states.items()}
    return SimulationProductState(
        args, self.qubits, self.split_untangled_states, classical_data=classical_data
    )