




from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_torch_available,
    is_vision_available,
)


SCREAMING_SNAKE_CASE:    Optional[Any]											=   {
    '''configuration_mobilevitv2''': [
        '''MOBILEVITV2_PRETRAINED_CONFIG_ARCHIVE_MAP''',
        '''MobileViTV2Config''',
        '''MobileViTV2OnnxConfig''',
    ],
}


try:
						if not is_torch_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						SCREAMING_SNAKE_CASE:    Optional[int]											=   [
						    '''MOBILEVITV2_PRETRAINED_MODEL_ARCHIVE_LIST''',
						    '''MobileViTV2ForImageClassification''',
						    '''MobileViTV2ForSemanticSegmentation''',
						    '''MobileViTV2Model''',
						    '''MobileViTV2PreTrainedModel''',
						]

if TYPE_CHECKING:
						from .configuration_mobilevitva import (
						    MOBILEVITV2_PRETRAINED_CONFIG_ARCHIVE_MAP,
						    MobileViTVaConfig,
						    MobileViTVaOnnxConfig,
						)

						try:
												if not is_torch_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .modeling_mobilevitva import (
												    MOBILEVITV2_PRETRAINED_MODEL_ARCHIVE_LIST,
												    MobileViTVaForImageClassification,
												    MobileViTVaForSemanticSegmentation,
												    MobileViTVaModel,
												    MobileViTVaPreTrainedModel,
												)

else:
						import sys

						SCREAMING_SNAKE_CASE:    List[str]											=   _LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)





from __future__ import annotations

import sys


def 				_a       (				lowerCAmelCase   )->  int:
		if n < 0:
				raise ValueError('Negative arguments are not supported'   )
		return _fib(lowerCAmelCase   )[0]


def 				_a       (				lowerCAmelCase   )->  tuple[int, int]:
		if n == 0:  # (F(0), F(1))
				return (0, 1)

		# F(2n) = F(n)[2F(n+1) − F(n)]
		# F(2n+1) = F(n+1)^2+F(n)^2
		SCREAMING_SNAKE_CASE_			,							SCREAMING_SNAKE_CASE_							=       _fib(n // 2   )
		SCREAMING_SNAKE_CASE_							=       a * (b * 2 - a)
		SCREAMING_SNAKE_CASE_							=       a * a + b * b
		return (d, c + d) if n % 2 else (c, d)


if __name__ == "__main__":
						SCREAMING_SNAKE_CASE:    Optional[int]											=   int(sys.argv[1])
						print(f"""fibonacci({n}) is {fibonacci(n)}""")