

from __future__ import annotations







def 						_snake_case		(     SCREAMING_SNAKE_CASE		,				SCREAMING_SNAKE_CASE					)							->   str:

     """simple docstring"""







     _lowerCAmelCase :       Tuple	   =     """""", """""", """"""
     _lowerCAmelCase :       int	   =     []

     for character in message_part:
          tmp.append(character_to_number[character]					)

     for each in tmp:
          one += each[0]
          two += each[1]
          three += each[2]

     return one + two + three







def 						_snake_case		(     SCREAMING_SNAKE_CASE		,				SCREAMING_SNAKE_CASE					)							->   tuple[str, str, str]:

     """simple docstring"""







     _lowerCAmelCase :       List[str]	   =     """""", """"""
     _lowerCAmelCase :       List[str]	   =     []

     for character in message_part:
          this_part += character_to_number[character]

     for digit in this_part:
          tmp += digit
          if len(lowerCamelCase_					) == len(lowerCamelCase_					):
               result.append(lowerCamelCase_					)
               _lowerCAmelCase :       int	   =     """"""

     return result[0], result[1], result[2]







def 						_snake_case		(     SCREAMING_SNAKE_CASE		,				SCREAMING_SNAKE_CASE					)							->   tuple[str, str, dict[str, str], dict[str, str]]:

     """simple docstring"""







     _lowerCAmelCase :       Tuple	   =     alphabet.replace(" "		,				""					).upper()
     _lowerCAmelCase :       List[Any]	   =     message.replace(" "		,				""					).upper()

     # Check length and characters
     if len(lowerCamelCase_					) != 27:
          raise KeyError("Length of alphabet has to be 27."					)
     for each in message:
          if each not in alphabet:
               raise ValueError("Each message character has to be included in alphabet!"					)

    # Generate dictionares
     _lowerCAmelCase :       Tuple	   =     (
         """111""",
         """112""",
         """113""",
         """121""",
         """122""",
         """123""",
         """131""",
         """132""",
         """133""",
         """211""",
         """212""",
         """213""",
         """221""",
         """222""",
         """223""",
         """231""",
         """232""",
         """233""",
         """311""",
         """312""",
         """313""",
         """321""",
         """322""",
         """323""",
         """331""",
         """332""",
         """333""",
     )
     _lowerCAmelCase :       Optional[Any]	   =     {}
     _lowerCAmelCase :       Optional[Any]	   =     {}
     for letter, number in zip(lowerCamelCase_		,				lowerCamelCase_					):
          _lowerCAmelCase :       Dict	   =     number
          _lowerCAmelCase :       List[Any]	   =     letter

     return message, alphabet, character_to_number, number_to_character







def 						_snake_case		(     SCREAMING_SNAKE_CASE		,				SCREAMING_SNAKE_CASE = "ABCDEFGHIJKLMNOPQRSTUVWXYZ."		,				SCREAMING_SNAKE_CASE = 5					)							->   str:

     """simple docstring"""







     _lowerCAmelCase :       int	   =     __prepare(
         lowerCamelCase_		,				lowerCamelCase_					)
     _lowerCAmelCase :       str	   =     """""", """"""

     for i in range(0		,				len(lowerCamelCase_					) + 1		,				lowerCamelCase_					):
          encrypted_numeric += __encrypt_part(
              message[i : i + period]		,				lowerCamelCase_					)

     for i in range(0		,				len(lowerCamelCase_					)		,				3					):
          encrypted += number_to_character[encrypted_numeric[i : i + 3]]

     return encrypted







def 						_snake_case		(     SCREAMING_SNAKE_CASE		,				SCREAMING_SNAKE_CASE = "ABCDEFGHIJKLMNOPQRSTUVWXYZ."		,				SCREAMING_SNAKE_CASE = 5					)							->   str:

     """simple docstring"""







     _lowerCAmelCase :       List[str]	   =     __prepare(
         lowerCamelCase_		,				lowerCamelCase_					)
     _lowerCAmelCase :       List[str]	   =     []
     _lowerCAmelCase :       Optional[int]	   =     """"""

     for i in range(0		,				len(lowerCamelCase_					) + 1		,				lowerCamelCase_					):
          _lowerCAmelCase :       Dict	   =     __decrypt_part(message[i : i + period]		,				lowerCamelCase_					)

          for j in range(0		,				len(lowerCamelCase_					)					):
               decrypted_numeric.append(a[j] + b[j] + c[j]					)

     for each in decrypted_numeric:
          decrypted += number_to_character[each]

     return decrypted


if __name__ == "__main__":
  __UpperCAmelCase     					=  'DEFEND THE EAST WALL OF THE CASTLE.'
  __UpperCAmelCase     					=  encrypt_message(msg, 'EPSDUCVWYM.ZLKXNBTFGORIJHAQ')
  __UpperCAmelCase     					=  decrypt_message(encrypted, 'EPSDUCVWYM.ZLKXNBTFGORIJHAQ')
  print(f'''Encrypted: {encrypted}\nDecrypted: {decrypted}''')








"""simple docstring"""
def      lowerCamelCase_     (						lowerCamelCase_						,					lowerCamelCase_ = 2			)  ->      float:


					'''simple docstring'''
					return round((float(lowerCamelCase_			) * 9 / 5) + 32						,					lowerCamelCase_			)


def      lowerCamelCase_     (						lowerCamelCase_						,					lowerCamelCase_ = 2			)  ->      float:


					'''simple docstring'''
					return round(float(lowerCamelCase_			) + 273.15						,					lowerCamelCase_			)


def      lowerCamelCase_     (						lowerCamelCase_						,					lowerCamelCase_ = 2			)  ->      float:


					'''simple docstring'''
					return round((float(lowerCamelCase_			) * 9 / 5) + 491.67						,					lowerCamelCase_			)


def      lowerCamelCase_     (						lowerCamelCase_						,					lowerCamelCase_ = 2			)  ->      float:


					'''simple docstring'''
					return round((float(lowerCamelCase_			) - 32) * 5 / 9						,					lowerCamelCase_			)


def      lowerCamelCase_     (						lowerCamelCase_						,					lowerCamelCase_ = 2			)  ->      float:


					'''simple docstring'''
					return round(((float(lowerCamelCase_			) - 32) * 5 / 9) + 273.15						,					lowerCamelCase_			)


def      lowerCamelCase_     (						lowerCamelCase_						,					lowerCamelCase_ = 2			)  ->      float:


					'''simple docstring'''
					return round(float(lowerCamelCase_			) + 459.67						,					lowerCamelCase_			)


def      lowerCamelCase_     (						lowerCamelCase_						,					lowerCamelCase_ = 2			)  ->      float:


					'''simple docstring'''
					return round(float(lowerCamelCase_			) - 273.15						,					lowerCamelCase_			)


def      lowerCamelCase_     (						lowerCamelCase_						,					lowerCamelCase_ = 2			)  ->      float:


					'''simple docstring'''
					return round(((float(lowerCamelCase_			) - 273.15) * 9 / 5) + 32						,					lowerCamelCase_			)


def      lowerCamelCase_     (						lowerCamelCase_						,					lowerCamelCase_ = 2			)  ->      float:


					'''simple docstring'''
					return round((float(lowerCamelCase_			) * 9 / 5)						,					lowerCamelCase_			)


def      lowerCamelCase_     (						lowerCamelCase_						,					lowerCamelCase_ = 2			)  ->      float:


					'''simple docstring'''
					return round((float(lowerCamelCase_			) - 491.67) * 5 / 9						,					lowerCamelCase_			)


def      lowerCamelCase_     (						lowerCamelCase_						,					lowerCamelCase_ = 2			)  ->      float:


					'''simple docstring'''
					return round(float(lowerCamelCase_			) - 459.67						,					lowerCamelCase_			)


def      lowerCamelCase_     (						lowerCamelCase_						,					lowerCamelCase_ = 2			)  ->      float:


					'''simple docstring'''
					return round((float(lowerCamelCase_			) * 5 / 9)						,					lowerCamelCase_			)


def      lowerCamelCase_     (						lowerCamelCase_						,					lowerCamelCase_ = 2			)  ->      float:


					'''simple docstring'''
					return round((float(lowerCamelCase_			) * 1.25 + 273.15)						,					lowerCamelCase_			)


def      lowerCamelCase_     (						lowerCamelCase_						,					lowerCamelCase_ = 2			)  ->      float:


					'''simple docstring'''
					return round((float(lowerCamelCase_			) * 2.25 + 32)						,					lowerCamelCase_			)


def      lowerCamelCase_     (						lowerCamelCase_						,					lowerCamelCase_ = 2			)  ->      float:


					'''simple docstring'''
					return round((float(lowerCamelCase_			) * 1.25)						,					lowerCamelCase_			)


def      lowerCamelCase_     (						lowerCamelCase_						,					lowerCamelCase_ = 2			)  ->      float:


					'''simple docstring'''
					return round((float(lowerCamelCase_			) * 2.25 + 32 + 459.67)						,					lowerCamelCase_			)


if __name__ == "__main__":
			import doctest

			doctest.testmod()
