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__  	=      {
    "configuration_big_bird": ["BIG_BIRD_PRETRAINED_CONFIG_ARCHIVE_MAP", "BigBirdConfig", "BigBirdOnnxConfig"],
}

try:
						if not is_sentencepiece_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						lowerCAmelCase__  	=      ["BigBirdTokenizer"]

try:
						if not is_tokenizers_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						lowerCAmelCase__  	=      ["BigBirdTokenizerFast"]

try:
						if not is_torch_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						lowerCAmelCase__  	=      [
						    "BIG_BIRD_PRETRAINED_MODEL_ARCHIVE_LIST",
						    "BigBirdForCausalLM",
						    "BigBirdForMaskedLM",
						    "BigBirdForMultipleChoice",
						    "BigBirdForPreTraining",
						    "BigBirdForQuestionAnswering",
						    "BigBirdForSequenceClassification",
						    "BigBirdForTokenClassification",
						    "BigBirdLayer",
						    "BigBirdModel",
						    "BigBirdPreTrainedModel",
						    "load_tf_weights_in_big_bird",
						]

try:
						if not is_flax_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						lowerCAmelCase__  	=      [
						    "FlaxBigBirdForCausalLM",
						    "FlaxBigBirdForMaskedLM",
						    "FlaxBigBirdForMultipleChoice",
						    "FlaxBigBirdForPreTraining",
						    "FlaxBigBirdForQuestionAnswering",
						    "FlaxBigBirdForSequenceClassification",
						    "FlaxBigBirdForTokenClassification",
						    "FlaxBigBirdModel",
						    "FlaxBigBirdPreTrainedModel",
						]

if TYPE_CHECKING:
						from .configuration_big_bird import BIG_BIRD_PRETRAINED_CONFIG_ARCHIVE_MAP, BigBirdConfig, BigBirdOnnxConfig

						try:
												if not is_sentencepiece_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .tokenization_big_bird import BigBirdTokenizer

						try:
												if not is_tokenizers_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .tokenization_big_bird_fast import BigBirdTokenizerFast

						try:
												if not is_torch_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .modeling_big_bird import (
												    BIG_BIRD_PRETRAINED_MODEL_ARCHIVE_LIST,
												    BigBirdForCausalLM,
												    BigBirdForMaskedLM,
												    BigBirdForMultipleChoice,
												    BigBirdForPreTraining,
												    BigBirdForQuestionAnswering,
												    BigBirdForSequenceClassification,
												    BigBirdForTokenClassification,
												    BigBirdLayer,
												    BigBirdModel,
												    BigBirdPreTrainedModel,
												    load_tf_weights_in_big_bird,
												)

						try:
												if not is_flax_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .modeling_flax_big_bird import (
												    FlaxBigBirdForCausalLM,
												    FlaxBigBirdForMaskedLM,
												    FlaxBigBirdForMultipleChoice,
												    FlaxBigBirdForPreTraining,
												    FlaxBigBirdForQuestionAnswering,
												    FlaxBigBirdForSequenceClassification,
												    FlaxBigBirdForTokenClassification,
												    FlaxBigBirdModel,
												    FlaxBigBirdPreTrainedModel,
												)

else:
						import sys

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








class 			lowerCamelCase_					:





							def __init__(							self    ):
								a_     			=   [0, 1]





							def   __magic_name__      (							self			,       _SCREAMING_SNAKE_CASE    ):
								if (difference := index - (len(self.sequence    ) - 2)) >= 1:
									for _ in range(_SCREAMING_SNAKE_CASE    ):
										self.sequence.append(self.sequence[-1] + self.sequence[-2]    )
								return self.sequence[:index]







def 			__SCREAMING_SNAKE_CASE		(		)     ->	None:



	"""simple docstring"""






	print(
	    """Fibonacci Series Using Dynamic Programming\n"""     ,					"""Enter the index of the Fibonacci number you want to calculate """     ,					"""in the prompt below. (To exit enter exit or Ctrl-C)\n"""     ,					sep=""""""     ,					)
	a_     			=   Fibonacci()

	while True:
		a_     			=   input(""">> """	)
		if prompt in {"exit", "quit"}:
			break

		try:
			a_     			=   int(UpperCamelCase	)
		except ValueError:
			print("""Enter a number or 'exit'"""	)
			continue

		print(fibonacci.get(UpperCamelCase	)	)


if __name__ == "__main__":
			main()