



'''simple docstring'''

from collections import namedtuple

_A					:     List[str]      =namedtuple('''from_to''', '''from_ to''')

_A					:     Dict      ={
    '''atm''': from_to(1, 1),
    '''pascal''': from_to(0.0_00_00_98, 1_0_1_3_2_5),
    '''bar''': from_to(0.98_69_23, 1.0_13_25),
    '''kilopascal''': from_to(0.00_98_69_23, 1_01.3_25),
    '''megapascal''': from_to(9.8_69_23, 0.10_13_25),
    '''psi''': from_to(0.06_80_46, 14.69_59),
    '''inHg''': from_to(0.0_33_42_11, 29.92_13),
    '''torr''': from_to(0.00_13_15_79, 7_6_0),
}







def     __UpperCamelCase					(				_lowercase,					_lowercase,					_lowercase       )			->      float:
	if from_type not in PRESSURE_CONVERSION:
		raise ValueError(
		    f'''Invalid \'from_type\' value: {from_type!r}  Supported values are:\n'''
		    + ', '.join(_lowercase       )       )
	if to_type not in PRESSURE_CONVERSION:
		raise ValueError(
		    f'''Invalid \'to_type\' value: {to_type!r}.  Supported values are:\n'''
		    + ', '.join(_lowercase       )       )
	return (
	    value * PRESSURE_CONVERSION[from_type].from_ * PRESSURE_CONVERSION[to_type].to
	)


if __name__ == "__main__":
		import doctest

		doctest.testmod()





'''simple docstring'''

from __future__ import annotations

import sys







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







def     __UpperCamelCase					(				_lowercase       )			->      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
	_lowercase	,     _lowercase       :							List[str]  	=		_fib(n // 2       )
	_lowercase       :							Dict  	=		a * (b * 2 - a)
	_lowercase       :							Union[str, Any]  	=		a * a + b * b
	return (d, c + d) if n % 2 else (c, d)


if __name__ == "__main__":
		_A					:     Optional[Any]      =int(sys.argv[1])
		print(F'''fibonacci({n}) is {fibonacci(n)}''')
