def METHOD_NAME(self, val: Any, qubits: Sequence['cirq.Qid']) -> bool:
    mixture = protocols.mixture(val, None)
    if mixture is None:
        return NotImplemented
    if not all(linalg.is_unitary(m) for _, m in mixture):
        return NotImplemented  # pragma: no cover
    probabilities, unitaries = zip(*mixture)
    index = self.prng.choice(len(unitaries), p=probabilities)
    return self._strat_act_from_single_qubit_decompose(
        matrix_gates.MatrixGate(unitaries[index]), qubits
    )