




def 					lowerCamelCase__       (						A__       :					str	):





       '''simple docstring'''



       return credit_card_number.startswith(("""34""", """35""", """37""", """4""", """5""", """6""")	)




def 					lowerCamelCase__       (						A__       :					str	):





       '''simple docstring'''



       __lowerCamelCase   =						credit_card_number
       __lowerCamelCase   =						0
       __lowerCamelCase   =						len(A__	) - 2
       for i in range(A__  ,			-1  ,			-2	):
              #  double the value of every second digit
              __lowerCamelCase   =						int(cc_number[i]	)
              digit *= 2
              # If doubling of a number results in a two digit number
              # i.e greater than 9(e.g., 6 × 2 = 12),
              # then add the digits of the product (e.g., 12: 1 + 2 = 3, 15: 1 + 5 = 6),
              # to get a single digit number.
              if digit > 9:
                     digit %= 10
                     digit += 1
              __lowerCamelCase   =						cc_number[:i] + str(A__	) + cc_number[i + 1 :]
              total += digit

       # Sum up the remaining digits
       for i in range(len(A__	) - 1  ,			-1  ,			-2	):
              total += int(cc_number[i]	)

       return total % 10 == 0




def 					lowerCamelCase__       (						A__       :					str	):





       '''simple docstring'''



       __lowerCamelCase   =						f'{credit_card_number} is an invalid credit card number because'
       if not credit_card_number.isdigit():
              print(f'{error_message} it has nonnumerical characters.'	)
              return False

       if not 13 <= len(A__	) <= 16:
              print(f'{error_message} of its length.'	)
              return False

       if not validate_initial_digits(A__	):
              print(f'{error_message} of its first two digits.'	)
              return False

       if not luhn_validation(A__	):
              print(f'{error_message} it fails the Luhn check.'	)
              return False

       print(f'{credit_card_number} is a valid credit card number.'	)
       return True


if __name__ == "__main__":
       import doctest

       doctest.testmod()
       validate_credit_card_number('4111111111111111')
       validate_credit_card_number('32323')





from typing import TYPE_CHECKING

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


UpperCAmelCase__   	=							{
    '''configuration_xlm''': ['''XLM_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''XLMConfig''', '''XLMOnnxConfig'''],
    '''tokenization_xlm''': ['''XLMTokenizer'''],
}

try:
  if not is_torch_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  UpperCAmelCase__   	=							[
      '''XLM_PRETRAINED_MODEL_ARCHIVE_LIST''',
      '''XLMForMultipleChoice''',
      '''XLMForQuestionAnswering''',
      '''XLMForQuestionAnsweringSimple''',
      '''XLMForSequenceClassification''',
      '''XLMForTokenClassification''',
      '''XLMModel''',
      '''XLMPreTrainedModel''',
      '''XLMWithLMHeadModel''',
  ]

try:
  if not is_tf_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  UpperCAmelCase__   	=							[
      '''TF_XLM_PRETRAINED_MODEL_ARCHIVE_LIST''',
      '''TFXLMForMultipleChoice''',
      '''TFXLMForQuestionAnsweringSimple''',
      '''TFXLMForSequenceClassification''',
      '''TFXLMForTokenClassification''',
      '''TFXLMMainLayer''',
      '''TFXLMModel''',
      '''TFXLMPreTrainedModel''',
      '''TFXLMWithLMHeadModel''',
  ]


if TYPE_CHECKING:
  from .configuration_xlm import XLM_PRETRAINED_CONFIG_ARCHIVE_MAP, XLMConfig, XLMOnnxConfig
  from .tokenization_xlm import XLMTokenizer

  try:
    if not is_torch_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .modeling_xlm import (
        XLM_PRETRAINED_MODEL_ARCHIVE_LIST,
        XLMForMultipleChoice,
        XLMForQuestionAnswering,
        XLMForQuestionAnsweringSimple,
        XLMForSequenceClassification,
        XLMForTokenClassification,
        XLMModel,
        XLMPreTrainedModel,
        XLMWithLMHeadModel,
    )

  try:
    if not is_tf_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .modeling_tf_xlm import (
        TF_XLM_PRETRAINED_MODEL_ARCHIVE_LIST,
        TFXLMForMultipleChoice,
        TFXLMForQuestionAnsweringSimple,
        TFXLMForSequenceClassification,
        TFXLMForTokenClassification,
        TFXLMMainLayer,
        TFXLMModel,
        TFXLMPreTrainedModel,
        TFXLMWithLMHeadModel,
    )

else:
  import sys

  UpperCAmelCase__   	=							_LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)

