






"""simple docstring"""






from typing import TYPE_CHECKING

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


A_			  =    {
    "configuration_flaubert": ["FLAUBERT_PRETRAINED_CONFIG_ARCHIVE_MAP", "FlaubertConfig", "FlaubertOnnxConfig"],
    "tokenization_flaubert": ["FlaubertTokenizer"],
}

try:
				if not is_torch_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				A_			  =    [
				    "FLAUBERT_PRETRAINED_MODEL_ARCHIVE_LIST",
				    "FlaubertForMultipleChoice",
				    "FlaubertForQuestionAnswering",
				    "FlaubertForQuestionAnsweringSimple",
				    "FlaubertForSequenceClassification",
				    "FlaubertForTokenClassification",
				    "FlaubertModel",
				    "FlaubertWithLMHeadModel",
				    "FlaubertPreTrainedModel",
				]

try:
				if not is_tf_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				A_			  =    [
				    "TF_FLAUBERT_PRETRAINED_MODEL_ARCHIVE_LIST",
				    "TFFlaubertForMultipleChoice",
				    "TFFlaubertForQuestionAnsweringSimple",
				    "TFFlaubertForSequenceClassification",
				    "TFFlaubertForTokenClassification",
				    "TFFlaubertModel",
				    "TFFlaubertPreTrainedModel",
				    "TFFlaubertWithLMHeadModel",
				]


if TYPE_CHECKING:
				from .configuration_flaubert import FLAUBERT_PRETRAINED_CONFIG_ARCHIVE_MAP, FlaubertConfig, FlaubertOnnxConfig
				from .tokenization_flaubert import FlaubertTokenizer

				try:
								if not is_torch_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_flaubert import (
								    FLAUBERT_PRETRAINED_MODEL_ARCHIVE_LIST,
								    FlaubertForMultipleChoice,
								    FlaubertForQuestionAnswering,
								    FlaubertForQuestionAnsweringSimple,
								    FlaubertForSequenceClassification,
								    FlaubertForTokenClassification,
								    FlaubertModel,
								    FlaubertPreTrainedModel,
								    FlaubertWithLMHeadModel,
								)

				try:
								if not is_tf_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_tf_flaubert import (
								    TF_FLAUBERT_PRETRAINED_MODEL_ARCHIVE_LIST,
								    TFFlaubertForMultipleChoice,
								    TFFlaubertForQuestionAnsweringSimple,
								    TFFlaubertForSequenceClassification,
								    TFFlaubertForTokenClassification,
								    TFFlaubertModel,
								    TFFlaubertPreTrainedModel,
								    TFFlaubertWithLMHeadModel,
								)

else:
				import sys

				A_			  =    _LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)








"""simple docstring"""






from .hash_table import HashTable
from .number_theory.prime_numbers import is_prime, next_prime
class 						__lowerCAmelCase   (			UpperCAmelCase       ):







  '''simple docstring'''


  def __init__(      self:		List[Any]				,			*UpperCamelCase_:		Dict				,			**UpperCamelCase_:		Optional[int]					):
     super().__init__(*UpperCamelCase_				,			**UpperCamelCase_					)
  def 					UpperCamelCase__   (      self:		Any				,			UpperCamelCase_:		Optional[int]				,			UpperCamelCase_:		Optional[int]					):
     UpperCamelCase_     =(
         next_prime(value % self.size_table					)
         if not is_prime(value % self.size_table					)
         else value % self.size_table
     )  # gt = bigger than
     return next_prime_gt - (data % next_prime_gt)
  def 					UpperCamelCase__   (      self:		str				,			UpperCamelCase_:		List[str]				,			UpperCamelCase_:		str				,			UpperCamelCase_:		Tuple					):
     return (increment * self.__hash_function_a(UpperCamelCase_				,			UpperCamelCase_					)) % self.size_table





  def 					UpperCamelCase__   (      self:		str				,			UpperCamelCase_:		int				,			UpperCamelCase_:		str=None					):
     UpperCamelCase_     =1
     UpperCamelCase_     =self.hash_function(UpperCamelCase_					)

     while self.values[new_key] is not None and self.values[new_key] != key:
        UpperCamelCase_     =(
            self.__hash_double_function(UpperCamelCase_				,			UpperCamelCase_				,			UpperCamelCase_					)
            if self.balanced_factor() >= self.lim_charge
            else None
        )
        if new_key is None:
           break
        else:
           i += 1

     return new_key
