






from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_tokenizers_available, is_torch_available


lowerCamelCase	:							str				={
    '''configuration_canine''': ['''CANINE_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''CanineConfig'''],
    '''tokenization_canine''': ['''CanineTokenizer'''],
}

try:
 if not is_torch_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 lowerCamelCase	:							Any				=[
     '''CANINE_PRETRAINED_MODEL_ARCHIVE_LIST''',
     '''CanineForMultipleChoice''',
     '''CanineForQuestionAnswering''',
     '''CanineForSequenceClassification''',
     '''CanineForTokenClassification''',
     '''CanineLayer''',
     '''CanineModel''',
     '''CaninePreTrainedModel''',
     '''load_tf_weights_in_canine''',
 ]


if TYPE_CHECKING:
 from .configuration_canine import CANINE_PRETRAINED_CONFIG_ARCHIVE_MAP, CanineConfig
 from .tokenization_canine import CanineTokenizer

 try:
  if not is_torch_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_canine import (
      CANINE_PRETRAINED_MODEL_ARCHIVE_LIST,
      CanineForMultipleChoice,
      CanineForQuestionAnswering,
      CanineForSequenceClassification,
      CanineForTokenClassification,
      CanineLayer,
      CanineModel,
      CaninePreTrainedModel,
      load_tf_weights_in_canine,
  )


else:
 import sys

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







def 		SCREAMING_SNAKE_CASE							(					__lowerCAmelCase					,    __lowerCAmelCase			) ->	int:
     while b:
          UpperCamelCase__				,     UpperCamelCase__			:   int       				=  b, a % b
     return a







def 		SCREAMING_SNAKE_CASE							(					__lowerCAmelCase					,    __lowerCAmelCase			) ->	int:
     return a if b == 0 else euclidean_gcd_recursive(__lowerCAmelCase					,    a % b			)







def 		SCREAMING_SNAKE_CASE							(					) ->	str:
     print(f'euclidean_gcd(3, 5) = {euclidean_gcd(3					,    5			)}'			)
     print(f'euclidean_gcd(5, 3) = {euclidean_gcd(5					,    3			)}'			)
     print(f'euclidean_gcd(1, 3) = {euclidean_gcd(1					,    3			)}'			)
     print(f'euclidean_gcd(3, 6) = {euclidean_gcd(3					,    6			)}'			)
     print(f'euclidean_gcd(6, 3) = {euclidean_gcd(6					,    3			)}'			)

     print(f'euclidean_gcd_recursive(3, 5) = {euclidean_gcd_recursive(3					,    5			)}'			)
     print(f'euclidean_gcd_recursive(5, 3) = {euclidean_gcd_recursive(5					,    3			)}'			)
     print(f'euclidean_gcd_recursive(1, 3) = {euclidean_gcd_recursive(1					,    3			)}'			)
     print(f'euclidean_gcd_recursive(3, 6) = {euclidean_gcd_recursive(3					,    6			)}'			)
     print(f'euclidean_gcd_recursive(6, 3) = {euclidean_gcd_recursive(6					,    3			)}'			)


if __name__ == "__main__":
 main()