






"""simple docstring"""


from typing import TYPE_CHECKING

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


lowercase_								=	{
    'configuration_esm': ['ESM_PRETRAINED_CONFIG_ARCHIVE_MAP', 'EsmConfig'],
    'tokenization_esm': ['EsmTokenizer'],
}

try:
       if not is_torch_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       lowercase_								=	[
           'ESM_PRETRAINED_MODEL_ARCHIVE_LIST',
           'EsmForMaskedLM',
           'EsmForSequenceClassification',
           'EsmForTokenClassification',
           'EsmModel',
           'EsmPreTrainedModel',
       ]
       lowercase_								=	['EsmForProteinFolding', 'EsmFoldPreTrainedModel']

try:
       if not is_tf_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       lowercase_								=	[
           'TF_ESM_PRETRAINED_MODEL_ARCHIVE_LIST',
           'TFEsmForMaskedLM',
           'TFEsmForSequenceClassification',
           'TFEsmForTokenClassification',
           'TFEsmModel',
           'TFEsmPreTrainedModel',
       ]

if TYPE_CHECKING:
       from .configuration_esm import ESM_PRETRAINED_CONFIG_ARCHIVE_MAP, EsmConfig
       from .tokenization_esm import EsmTokenizer

       try:
              if not is_torch_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .modeling_esm import (
                  ESM_PRETRAINED_MODEL_ARCHIVE_LIST,
                  EsmForMaskedLM,
                  EsmForSequenceClassification,
                  EsmForTokenClassification,
                  EsmModel,
                  EsmPreTrainedModel,
              )
              from .modeling_esmfold import EsmFoldPreTrainedModel, EsmForProteinFolding

       try:
              if not is_tf_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .modeling_tf_esm import (
                  TF_ESM_PRETRAINED_MODEL_ARCHIVE_LIST,
                  TFEsmForMaskedLM,
                  TFEsmForSequenceClassification,
                  TFEsmForTokenClassification,
                  TFEsmModel,
                  TFEsmPreTrainedModel,
              )


else:
       import sys

       lowercase_								=	_LazyModule(__name__, globals()['__file__'], _import_structure)












def 						A_					(						lowercase_	,  lowercase_			)				->List[Any]:







 """simple docstring"""

 SCREAMING_SNAKE_CASE				    =		1
 while b > 0:
  if b & 1:
   res *= a

  a *= a
  b >>= 1

 return res





def 						A_					(						lowercase_	,  lowercase_	,  lowercase_			)				->Any:







 """simple docstring"""

 SCREAMING_SNAKE_CASE				    =		1
 while b > 0:
  if b & 1:
   SCREAMING_SNAKE_CASE				    =		((res % c) * (a % c)) % c

  a *= a
  b >>= 1

 return res




