'''simple docstring'''




from collections import namedtuple

_A										= namedtuple('from_to', 'from_ to')

_A										= {
    'millimeter': 'mm',
    'centimeter': 'cm',
    'meter': 'm',
    'kilometer': 'km',
    'inch': 'in',
    'inche': 'in',  # Trailing 's' has been stripped off
    'feet': 'ft',
    'foot': 'ft',
    'yard': 'yd',
    'mile': 'mi',
}

_A										= {
    'mm': from_to(0.001, 1_0_0_0),
    'cm': from_to(0.01, 1_0_0),
    'm': from_to(1, 1),
    'km': from_to(1_0_0_0, 0.001),
    'in': from_to(0.0254, 39.3701),
    'ft': from_to(0.3048, 3.2_8084),
    'yd': from_to(0.9144, 1.0_9361),
    'mi': from_to(1_6_0_9.3_4, 0.0_0062_1371),
}

def _UpperCamelCase (							SCREAMING_SNAKE_CASE_	,							SCREAMING_SNAKE_CASE_	,							SCREAMING_SNAKE_CASE_				):
     lowercase_       :							List[Any]  					=       from_type.lower().rstrip('s'				)
     lowercase_       :							int  					=       TYPE_CONVERSION.get(lowercase_	,							lowercase_				)
     lowercase_       :							Tuple  					=       to_type.lower().rstrip('s'				)
     lowercase_       :							Dict  					=       TYPE_CONVERSION.get(lowercase_	,							lowercase_				)
     if new_from not in METRIC_CONVERSION:
          lowercase_       :							str  					=       (
              f'''Invalid \'from_type\' value: {from_type!r}.\n'''
              f'''Conversion abbreviations are: {", ".join(lowercase_				)}'''
          )
          raise ValueError(lowercase_				)
     if new_to not in METRIC_CONVERSION:
          lowercase_       :							Any  					=       (
              f'''Invalid \'to_type\' value: {to_type!r}.\n'''
              f'''Conversion abbreviations are: {", ".join(lowercase_				)}'''
          )
          raise ValueError(lowercase_				)
     return value * METRIC_CONVERSION[new_from].from_ * METRIC_CONVERSION[new_to].to


if __name__ == "__main__":
 import doctest

 doctest.testmod()












def 						A_					(						lowercase_	,  lowercase_			)				->List[Any]:







 """simple docstring"""

 SCREAMING_SNAKE_CASE				    =		1
 while b > 0:
  if b & 1:
   res *= a

  a *= a
  b >>= 1

 return res





def 						A_					(						lowercase_	,  lowercase_	,  lowercase_			)				->Any:







 """simple docstring"""

 SCREAMING_SNAKE_CASE				    =		1
 while b > 0:
  if b & 1:
   SCREAMING_SNAKE_CASE				    =		((res % c) * (a % c)) % c

  a *= a
  b >>= 1

 return res




