



from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_flax_available,
    is_tf_available,
    is_torch_available,
)


__A   			={
    "configuration_wav2vec2": ["WAV_2_VEC_2_PRETRAINED_CONFIG_ARCHIVE_MAP", "Wav2Vec2Config"],
    "feature_extraction_wav2vec2": ["Wav2Vec2FeatureExtractor"],
    "processing_wav2vec2": ["Wav2Vec2Processor"],
    "tokenization_wav2vec2": ["Wav2Vec2CTCTokenizer", "Wav2Vec2Tokenizer"],
}


try:
				if not is_torch_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				__A   			=[
				    "WAV_2_VEC_2_PRETRAINED_MODEL_ARCHIVE_LIST",
				    "Wav2Vec2ForAudioFrameClassification",
				    "Wav2Vec2ForCTC",
				    "Wav2Vec2ForMaskedLM",
				    "Wav2Vec2ForPreTraining",
				    "Wav2Vec2ForSequenceClassification",
				    "Wav2Vec2ForXVector",
				    "Wav2Vec2Model",
				    "Wav2Vec2PreTrainedModel",
				]

try:
				if not is_tf_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				__A   			=[
				    "TF_WAV_2_VEC_2_PRETRAINED_MODEL_ARCHIVE_LIST",
				    "TFWav2Vec2ForCTC",
				    "TFWav2Vec2Model",
				    "TFWav2Vec2PreTrainedModel",
				    "TFWav2Vec2ForSequenceClassification",
				]

try:
				if not is_flax_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				__A   			=[
				    "FlaxWav2Vec2ForCTC",
				    "FlaxWav2Vec2ForPreTraining",
				    "FlaxWav2Vec2Model",
				    "FlaxWav2Vec2PreTrainedModel",
				]


if TYPE_CHECKING:
				from .configuration_wavaveca import WAV_2_VEC_2_PRETRAINED_CONFIG_ARCHIVE_MAP, WavaVecaConfig
				from .feature_extraction_wavaveca import WavaVecaFeatureExtractor
				from .processing_wavaveca import WavaVecaProcessor
				from .tokenization_wavaveca import WavaVecaCTCTokenizer, WavaVecaTokenizer

				try:
								if not is_torch_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_wavaveca import (
								    WAV_2_VEC_2_PRETRAINED_MODEL_ARCHIVE_LIST,
								    WavaVecaForAudioFrameClassification,
								    WavaVecaForCTC,
								    WavaVecaForMaskedLM,
								    WavaVecaForPreTraining,
								    WavaVecaForSequenceClassification,
								    WavaVecaForXVector,
								    WavaVecaModel,
								    WavaVecaPreTrainedModel,
								)

				try:
								if not is_tf_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_tf_wavaveca import (
								    TF_WAV_2_VEC_2_PRETRAINED_MODEL_ARCHIVE_LIST,
								    TFWavaVecaForCTC,
								    TFWavaVecaForSequenceClassification,
								    TFWavaVecaModel,
								    TFWavaVecaPreTrainedModel,
								)

				try:
								if not is_flax_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_tf_wavaveca import (
								    FlaxWavaVecaForCTC,
								    FlaxWavaVecaForPreTraining,
								    FlaxWavaVecaModel,
								    FlaxWavaVecaPreTrainedModel,
								)


else:
				import sys

				__A   			=_LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)










import qiskit

def        a						(      _UpperCAmelCase							:					int ,   _UpperCAmelCase							:					int						):







		'''simple docstring'''





		__UpperCAmelCase    :     List[str]													=	qiskit.Aer.get_backend('''aer_simulator'''						)

		__UpperCAmelCase    :     Optional[Any]													=	qiskit.QuantumCircuit(4 ,   2						)
		# encode inputs in qubits 0 and 1
		if bita == 1:
				qc_ha.x(0						)
		if bita == 1:
				qc_ha.x(1						)
		qc_ha.barrier()

		# use cnots to write XOR of the inputs on qubit2
		qc_ha.cx(0 ,   2						)
		qc_ha.cx(1 ,   2						)

		# use ccx / toffoli gate to write AND of the inputs on qubit3
		qc_ha.ccx(0 ,   1 ,   3						)
		qc_ha.barrier()

		# extract outputs
		qc_ha.measure(2 ,   0						)  # extract XOR value
		qc_ha.measure(3 ,   1						)  # extract AND value

		# Execute the circuit on the qasm simulator
		__UpperCAmelCase    :     str													=	qiskit.execute(_UpperCAmelCase ,   _UpperCAmelCase ,   shots=10_00						)

		# Return the histogram data of the results of the experiment
		return job.result().get_counts(_UpperCAmelCase						)


if __name__ == "__main__":
				__A   			=half_adder(1, 1)
				print(f'''Half Adder Output Qubit Counts: {counts}''')





