



from typing import TYPE_CHECKING

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


lowerCAmelCase__	:  Dict 		={
    '''configuration_dpr''': ['''DPR_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''DPRConfig'''],
    '''tokenization_dpr''': [
        '''DPRContextEncoderTokenizer''',
        '''DPRQuestionEncoderTokenizer''',
        '''DPRReaderOutput''',
        '''DPRReaderTokenizer''',
    ],
}


try:
			if not is_tokenizers_available():
						raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
			pass
else:
			lowerCAmelCase__	:  Optional[Any] 		=[
			    '''DPRContextEncoderTokenizerFast''',
			    '''DPRQuestionEncoderTokenizerFast''',
			    '''DPRReaderTokenizerFast''',
			]

try:
			if not is_torch_available():
						raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
			pass
else:
			lowerCAmelCase__	:  List[str] 		=[
			    '''DPR_CONTEXT_ENCODER_PRETRAINED_MODEL_ARCHIVE_LIST''',
			    '''DPR_QUESTION_ENCODER_PRETRAINED_MODEL_ARCHIVE_LIST''',
			    '''DPR_READER_PRETRAINED_MODEL_ARCHIVE_LIST''',
			    '''DPRContextEncoder''',
			    '''DPRPretrainedContextEncoder''',
			    '''DPRPreTrainedModel''',
			    '''DPRPretrainedQuestionEncoder''',
			    '''DPRPretrainedReader''',
			    '''DPRQuestionEncoder''',
			    '''DPRReader''',
			]

try:
			if not is_tf_available():
						raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
			pass
else:
			lowerCAmelCase__	:  Tuple 		=[
			    '''TF_DPR_CONTEXT_ENCODER_PRETRAINED_MODEL_ARCHIVE_LIST''',
			    '''TF_DPR_QUESTION_ENCODER_PRETRAINED_MODEL_ARCHIVE_LIST''',
			    '''TF_DPR_READER_PRETRAINED_MODEL_ARCHIVE_LIST''',
			    '''TFDPRContextEncoder''',
			    '''TFDPRPretrainedContextEncoder''',
			    '''TFDPRPretrainedQuestionEncoder''',
			    '''TFDPRPretrainedReader''',
			    '''TFDPRQuestionEncoder''',
			    '''TFDPRReader''',
			]


if TYPE_CHECKING:
			from .configuration_dpr import DPR_PRETRAINED_CONFIG_ARCHIVE_MAP, DPRConfig
			from .tokenization_dpr import (
			    DPRContextEncoderTokenizer,
			    DPRQuestionEncoderTokenizer,
			    DPRReaderOutput,
			    DPRReaderTokenizer,
			)

			try:
						if not is_tokenizers_available():
									raise OptionalDependencyNotAvailable()
			except OptionalDependencyNotAvailable:
						pass
			else:
						from .tokenization_dpr_fast import (
						    DPRContextEncoderTokenizerFast,
						    DPRQuestionEncoderTokenizerFast,
						    DPRReaderTokenizerFast,
						)

			try:
						if not is_torch_available():
									raise OptionalDependencyNotAvailable()
			except OptionalDependencyNotAvailable:
						pass
			else:
						from .modeling_dpr import (
						    DPR_CONTEXT_ENCODER_PRETRAINED_MODEL_ARCHIVE_LIST,
						    DPR_QUESTION_ENCODER_PRETRAINED_MODEL_ARCHIVE_LIST,
						    DPR_READER_PRETRAINED_MODEL_ARCHIVE_LIST,
						    DPRContextEncoder,
						    DPRPretrainedContextEncoder,
						    DPRPreTrainedModel,
						    DPRPretrainedQuestionEncoder,
						    DPRPretrainedReader,
						    DPRQuestionEncoder,
						    DPRReader,
						)

			try:
						if not is_tf_available():
									raise OptionalDependencyNotAvailable()
			except OptionalDependencyNotAvailable:
						pass
			else:
						from .modeling_tf_dpr import (
						    TF_DPR_CONTEXT_ENCODER_PRETRAINED_MODEL_ARCHIVE_LIST,
						    TF_DPR_QUESTION_ENCODER_PRETRAINED_MODEL_ARCHIVE_LIST,
						    TF_DPR_READER_PRETRAINED_MODEL_ARCHIVE_LIST,
						    TFDPRContextEncoder,
						    TFDPRPretrainedContextEncoder,
						    TFDPRPretrainedQuestionEncoder,
						    TFDPRPretrainedReader,
						    TFDPRQuestionEncoder,
						    TFDPRReader,
						)

else:
			import sys

			lowerCAmelCase__	:  int 		=_LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)











from itertools import combinations, product






def 			__lowercase     (				a__							,     a__							,     a__							,     a__     )       ->				bool:
							if xa == ya == 0 or xa == ya == 0:
														return False
							__SCREAMING_SNAKE_CASE								=      xa * xa + ya * ya
							__SCREAMING_SNAKE_CASE								=      xa * xa + ya * ya
							__SCREAMING_SNAKE_CASE								=      (xa - xa) * (xa - xa) + (ya - ya) * (ya - ya)
							return (
							    a_square + b_square == c_square
							    or a_square + c_square == b_square
							    or b_square + c_square == a_square
							)






def 			__lowercase     (				a__ = 50     )       ->				int:
							return sum(
							    1
							    for pta, pta in combinations(product(range(limit + 1     )							,     repeat=2     )							,     2     )
							    if is_right(*a__							,     *a__     )     )


if __name__ == "__main__":
			print(F'''{solution() = }''')






