





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 :Union[str, Any]     =    {
    'configuration_albert': ['ALBERT_PRETRAINED_CONFIG_ARCHIVE_MAP', 'AlbertConfig', 'AlbertOnnxConfig'],
}

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

try:
							if not is_tokenizers_available():
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							pass
else:
							__lowerCAmelCase :Optional[Any]     =    ['AlbertTokenizerFast']

try:
							if not is_torch_available():
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							pass
else:
							__lowerCAmelCase :Any     =    [
							    'ALBERT_PRETRAINED_MODEL_ARCHIVE_LIST',
							    'AlbertForMaskedLM',
							    'AlbertForMultipleChoice',
							    'AlbertForPreTraining',
							    'AlbertForQuestionAnswering',
							    'AlbertForSequenceClassification',
							    'AlbertForTokenClassification',
							    'AlbertModel',
							    'AlbertPreTrainedModel',
							    'load_tf_weights_in_albert',
							]

try:
							if not is_tf_available():
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							pass
else:
							__lowerCAmelCase :List[Any]     =    [
							    'TF_ALBERT_PRETRAINED_MODEL_ARCHIVE_LIST',
							    'TFAlbertForMaskedLM',
							    'TFAlbertForMultipleChoice',
							    'TFAlbertForPreTraining',
							    'TFAlbertForQuestionAnswering',
							    'TFAlbertForSequenceClassification',
							    'TFAlbertForTokenClassification',
							    'TFAlbertMainLayer',
							    'TFAlbertModel',
							    'TFAlbertPreTrainedModel',
							]

try:
							if not is_flax_available():
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							pass
else:
							__lowerCAmelCase :List[Any]     =    [
							    'FlaxAlbertForMaskedLM',
							    'FlaxAlbertForMultipleChoice',
							    'FlaxAlbertForPreTraining',
							    'FlaxAlbertForQuestionAnswering',
							    'FlaxAlbertForSequenceClassification',
							    'FlaxAlbertForTokenClassification',
							    'FlaxAlbertModel',
							    'FlaxAlbertPreTrainedModel',
							]

if TYPE_CHECKING:
							from .configuration_albert import ALBERT_PRETRAINED_CONFIG_ARCHIVE_MAP, AlbertConfig, AlbertOnnxConfig

							try:
														if not is_sentencepiece_available():
																					raise OptionalDependencyNotAvailable()
							except OptionalDependencyNotAvailable:
														pass
							else:
														from .tokenization_albert import AlbertTokenizer

							try:
														if not is_tokenizers_available():
																					raise OptionalDependencyNotAvailable()
							except OptionalDependencyNotAvailable:
														pass
							else:
														from .tokenization_albert_fast import AlbertTokenizerFast

							try:
														if not is_torch_available():
																					raise OptionalDependencyNotAvailable()
							except OptionalDependencyNotAvailable:
														pass
							else:
														from .modeling_albert import (
														    ALBERT_PRETRAINED_MODEL_ARCHIVE_LIST,
														    AlbertForMaskedLM,
														    AlbertForMultipleChoice,
														    AlbertForPreTraining,
														    AlbertForQuestionAnswering,
														    AlbertForSequenceClassification,
														    AlbertForTokenClassification,
														    AlbertModel,
														    AlbertPreTrainedModel,
														    load_tf_weights_in_albert,
														)

							try:
														if not is_tf_available():
																					raise OptionalDependencyNotAvailable()
							except OptionalDependencyNotAvailable:
														pass
							else:
														from .modeling_tf_albert import (
														    TF_ALBERT_PRETRAINED_MODEL_ARCHIVE_LIST,
														    TFAlbertForMaskedLM,
														    TFAlbertForMultipleChoice,
														    TFAlbertForPreTraining,
														    TFAlbertForQuestionAnswering,
														    TFAlbertForSequenceClassification,
														    TFAlbertForTokenClassification,
														    TFAlbertMainLayer,
														    TFAlbertModel,
														    TFAlbertPreTrainedModel,
														)

							try:
														if not is_flax_available():
																					raise OptionalDependencyNotAvailable()
							except OptionalDependencyNotAvailable:
														pass
							else:
														from .modeling_flax_albert import (
														    FlaxAlbertForMaskedLM,
														    FlaxAlbertForMultipleChoice,
														    FlaxAlbertForPreTraining,
														    FlaxAlbertForQuestionAnswering,
														    FlaxAlbertForSequenceClassification,
														    FlaxAlbertForTokenClassification,
														    FlaxAlbertModel,
														    FlaxAlbertPreTrainedModel,
														)
else:
							import sys

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






import re







def    A				(							UpperCAmelCase				):
					_snake_case       :					Any				       =   re.compile(R"^(\+91[\-\s]?)?[0]?(91)?[789]\d{9}$"				)
					if match := re.search(UpperCAmelCase  ,  UpperCAmelCase				):
										return match.string == phone
					return False


if __name__ == "__main__":
							print(indian_phone_validator('+918827897895'))