





from typing import TYPE_CHECKING

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


__lowerCAmelCase							:     Any		     ={"configuration_xglm": ["XGLM_PRETRAINED_CONFIG_ARCHIVE_MAP", "XGLMConfig"]}

try:
  if not is_sentencepiece_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  __lowerCAmelCase							:     Optional[Any]		     =["XGLMTokenizer"]

try:
  if not is_tokenizers_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  __lowerCAmelCase							:     Tuple		     =["XGLMTokenizerFast"]

try:
  if not is_torch_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  __lowerCAmelCase							:     Union[str, Any]		     =[
      "XGLM_PRETRAINED_MODEL_ARCHIVE_LIST",
      "XGLMForCausalLM",
      "XGLMModel",
      "XGLMPreTrainedModel",
  ]


try:
  if not is_flax_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  __lowerCAmelCase							:     int		     =[
      "FlaxXGLMForCausalLM",
      "FlaxXGLMModel",
      "FlaxXGLMPreTrainedModel",
  ]


try:
  if not is_tf_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  __lowerCAmelCase							:     int		     =[
      "TF_XGLM_PRETRAINED_MODEL_ARCHIVE_LIST",
      "TFXGLMForCausalLM",
      "TFXGLMModel",
      "TFXGLMPreTrainedModel",
  ]


if TYPE_CHECKING:
  from .configuration_xglm import XGLM_PRETRAINED_CONFIG_ARCHIVE_MAP, XGLMConfig

  try:
    if not is_sentencepiece_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .tokenization_xglm import XGLMTokenizer

  try:
    if not is_tokenizers_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .tokenization_xglm_fast import XGLMTokenizerFast

  try:
    if not is_torch_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .modeling_xglm import XGLM_PRETRAINED_MODEL_ARCHIVE_LIST, XGLMForCausalLM, XGLMModel, XGLMPreTrainedModel

  try:
    if not is_flax_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .modeling_flax_xglm import FlaxXGLMForCausalLM, FlaxXGLMModel, FlaxXGLMPreTrainedModel

  try:
    if not is_tf_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .modeling_tf_xglm import (
        TF_XGLM_PRETRAINED_MODEL_ARCHIVE_LIST,
        TFXGLMForCausalLM,
        TFXGLMModel,
        TFXGLMPreTrainedModel,
    )


else:
  import sys

  __lowerCAmelCase							:     str		     =_LazyModule(__name__, globals()["__file__"], _import_structure)










'''simple docstring'''

def 						UpperCamelCase    (							_lowerCamelCase : int	):

    if not isinstance(_lowerCamelCase						,	_lowerCamelCase	):
        A__    =      F"Input value of [number={number}] must be an integer"
        raise TypeError(_lowerCamelCase	)

    if number < 1:
        A__    =      F"Input value of [number={number}] must be > 0"
        raise ValueError(_lowerCamelCase	)

    A__    =      1

    for i in range(1						,	_lowerCamelCase	):
        current_number *= 4 * i - 2
        current_number //= i + 1

    return current_number


if __name__ == "__main__":
  import doctest

  doctest.testmod()



