
from functools import lru_cache



@lru_cache
def      _a     (   __UpperCamelCase       :  int    ):
   if not isinstance(__UpperCamelCase	,__UpperCamelCase    ):
      raise TypeError('''k must be an integer.'''    )
   if k < 0:
      raise ValueError('''k integer must be greater or equal to zero.'''    )
   if k == 0:
      return 0
   elif k == 1:
      return 1
   else:
      return fibonacci(k - 1    ) + fibonacci(k - 2    )



def      _a     (   __UpperCamelCase       :  list	,__UpperCamelCase       :  int    ):
   lowerCAmelCase__ :    List[Any]				      =			len(__UpperCamelCase    )
   # Find m such that F_m >= n where F_i is the i_th fibonacci number.
   lowerCAmelCase__ :    Any				      =			0
   while True:
      if fibonacci(__UpperCamelCase    ) >= len_list:
         lowerCAmelCase__ :    List[str]				      =			i
         break
      i += 1
   lowerCAmelCase__ :    Optional[Any]				      =			0
   while fibb_k > 0:
      lowerCAmelCase__ :    Optional[int]				      =			min(
          offset + fibonacci(fibb_k - 1    )	,len_list - 1    )  # Prevent out of range
      lowerCAmelCase__ :    Optional[Any]				      =			arr[index_k]
      if item_k_1 == val:
         return index_k
      elif val < item_k_1:
         fibb_k -= 1
      elif val > item_k_1:
         offset += fibonacci(fibb_k - 1    )
         fibb_k -= 2
   else:
      return -1


if __name__ == "__main__":
       import doctest

       doctest.testmod()





from typing import TYPE_CHECKING

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


A__       :   Union[str, Any]   						=					{"""configuration_cvt""": ["""CVT_PRETRAINED_CONFIG_ARCHIVE_MAP""", """CvtConfig"""]}


try:
							if not is_torch_available():
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							pass
else:
							A__       :   Union[str, Any]   						=					[
							    """CVT_PRETRAINED_MODEL_ARCHIVE_LIST""",
							    """CvtForImageClassification""",
							    """CvtModel""",
							    """CvtPreTrainedModel""",
							]

try:
							if not is_tf_available():
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							pass
else:
							A__       :   str   						=					[
							    """TF_CVT_PRETRAINED_MODEL_ARCHIVE_LIST""",
							    """TFCvtForImageClassification""",
							    """TFCvtModel""",
							    """TFCvtPreTrainedModel""",
							]

if TYPE_CHECKING:
							from .configuration_cvt import CVT_PRETRAINED_CONFIG_ARCHIVE_MAP, CvtConfig

							try:
														if not is_torch_available():
																					raise OptionalDependencyNotAvailable()
							except OptionalDependencyNotAvailable:
														pass
							else:
														from .modeling_cvt import (
														    CVT_PRETRAINED_MODEL_ARCHIVE_LIST,
														    CvtForImageClassification,
														    CvtModel,
														    CvtPreTrainedModel,
														)

							try:
														if not is_tf_available():
																					raise OptionalDependencyNotAvailable()
							except OptionalDependencyNotAvailable:
														pass
							else:
														from .modeling_tf_cvt import (
														    TF_CVT_PRETRAINED_MODEL_ARCHIVE_LIST,
														    TFCvtForImageClassification,
														    TFCvtModel,
														    TFCvtPreTrainedModel,
														)


else:
							import sys

							A__       :   Optional[Any]   						=					_LazyModule(__name__, globals()["""__file__"""], _import_structure, module_spec=__spec__)



