from typing import TYPE_CHECKING

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


lowercase__    :       Optional[Any]						=			{
    '''configuration_bart''': ['''BART_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''BartConfig''', '''BartOnnxConfig'''],
    '''tokenization_bart''': ['''BartTokenizer'''],
}

try:
	if not is_tokenizers_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	lowercase__    :       Union[str, Any]						=			['''BartTokenizerFast''']

try:
	if not is_torch_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	lowercase__    :       List[str]						=			[
	    '''BART_PRETRAINED_MODEL_ARCHIVE_LIST''',
	    '''BartForCausalLM''',
	    '''BartForConditionalGeneration''',
	    '''BartForQuestionAnswering''',
	    '''BartForSequenceClassification''',
	    '''BartModel''',
	    '''BartPretrainedModel''',
	    '''PretrainedBartModel''',
	]

try:
	if not is_tf_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	lowercase__    :       Union[str, Any]						=			[
	    '''TFBartForConditionalGeneration''',
	    '''TFBartForSequenceClassification''',
	    '''TFBartModel''',
	    '''TFBartPretrainedModel''',
	]

try:
	if not is_flax_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	lowercase__    :       List[str]						=			[
	    '''FlaxBartDecoderPreTrainedModel''',
	    '''FlaxBartForCausalLM''',
	    '''FlaxBartForConditionalGeneration''',
	    '''FlaxBartForQuestionAnswering''',
	    '''FlaxBartForSequenceClassification''',
	    '''FlaxBartModel''',
	    '''FlaxBartPreTrainedModel''',
	]

if TYPE_CHECKING:
	from .configuration_bart import BART_PRETRAINED_CONFIG_ARCHIVE_MAP, BartConfig, BartOnnxConfig
	from .tokenization_bart import BartTokenizer

	try:
		if not is_tokenizers_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .tokenization_bart_fast import BartTokenizerFast

	try:
		if not is_torch_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_bart import (
		    BART_PRETRAINED_MODEL_ARCHIVE_LIST,
		    BartForCausalLM,
		    BartForConditionalGeneration,
		    BartForQuestionAnswering,
		    BartForSequenceClassification,
		    BartModel,
		    BartPretrainedModel,
		    PretrainedBartModel,
		)

	try:
		if not is_tf_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_tf_bart import (
		    TFBartForConditionalGeneration,
		    TFBartForSequenceClassification,
		    TFBartModel,
		    TFBartPretrainedModel,
		)

	try:
		if not is_flax_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_flax_bart import (
		    FlaxBartDecoderPreTrainedModel,
		    FlaxBartForCausalLM,
		    FlaxBartForConditionalGeneration,
		    FlaxBartForQuestionAnswering,
		    FlaxBartForSequenceClassification,
		    FlaxBartModel,
		    FlaxBartPreTrainedModel,
		)

else:
	import sys

	lowercase__    :       Dict						=			_LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)




def      SCREAMING_SNAKE_CASE_  (		snake_case__     ,						snake_case__							)  ->			int:
							return (input_a, input_a).count(0							) % 2

def      SCREAMING_SNAKE_CASE_  (		)  ->			None:
							assert xor_gate(0     ,						0							) == 0
							assert xor_gate(0     ,						1							) == 1
							assert xor_gate(1     ,						0							) == 1
							assert xor_gate(1     ,						1							) == 0


if __name__ == "__main__":
	print(xor_gate(0, 0))
	print(xor_gate(0, 1))



