


"""simple docstring"""






from string import ascii_uppercase




def        A_					(					UpperCAmelCase__       ,   UpperCAmelCase__       ,   UpperCAmelCase__ = False       ,   UpperCAmelCase__ = ascii_uppercase				)     ->     str:
   a   :	str						=    keyword.upper()
   a   :	Union[str, Any]						=    plaintext.upper()
   a   :	Dict						=    set(lowerCamelCase__				)

   # create a list of unique characters in the keyword - their order matters
   # it determines how we will map plaintext characters to the ciphertext
   a   :	Optional[int]						=    []
   for char in keyword:
      if char in alphabet_set and char not in unique_chars:
         unique_chars.append(lowerCamelCase__				)
      # the number of those unique characters will determine the number of rows
   a   :	Optional[int]						=    len(lowerCamelCase__				)

   # create a shifted version of the alphabet
   a   :	Any						=    unique_chars + [
       char for char in alphabet if char not in unique_chars
   ]

   # create a modified alphabet by splitting the shifted alphabet into rows
   a   :	Dict						=    [
       shifted_alphabet[k : k + num_unique_chars_in_keyword]
       for k in range(0       ,   26       ,   lowerCamelCase__				)
   ]

   # map the alphabet characters to the modified alphabet characters
   # going 'vertically' through the modified alphabet - consider columns first
   a   :	Tuple						=    {}
   a   :	str						=    0
   for column in range(lowerCamelCase__				):
      for row in modified_alphabet:
         # if current row (the last one) is too short, break out of loop
         if len(lowerCamelCase__				) <= column:
            break

         # map current letter to letter in modified alphabet
         a   :	Optional[Any]						=    row[column]
         letter_index += 1

   if verbose:
      print(lowerCamelCase__				)
   # create the encrypted text by mapping the plaintext to the modified alphabet
   return "".join(mapping[char] if char in mapping else char for char in plaintext				)


if __name__ == "__main__":
 # example use
 print(mixed_keyword("college", "UNIVERSITY"))






def 					__lowercase						(    lowerCamelCase__       )					->int:

  '''simple docstring'''




  if not isinstance(lowerCamelCase__			,					lowerCamelCase__       ):
    raise ValueError("double_factorial() only accepts integral values"       )
  if n < 0:
    raise ValueError("double_factorial() not defined for negative values"       )
  return 1 if n <= 1 else n * double_factorial(n - 2       )


if __name__ == "__main__":
     import doctest

     doctest.testmod()

