





'''simple docstring'''







import argparse
import datetime





def        lowerCamelCase_      (  SCREAMING_SNAKE_CASE__      :			str   ) ->	str:
						UpperCAmelCase_			:      List[str]     						=  {
						    '''0''': '''Sunday''',
						    '''1''': '''Monday''',
						    '''2''': '''Tuesday''',
						    '''3''': '''Wednesday''',
						    '''4''': '''Thursday''',
						    '''5''': '''Friday''',
						    '''6''': '''Saturday''',
						}

						UpperCAmelCase_			:      Optional[Any]     						=  {0: 1, 1: 2, 2: 3, 3: 4, 4: 5, 5: 6, 6: 0}

						# Validate
						if not 0 < len(SCREAMING_SNAKE_CASE__   ) < 11:
												raise ValueError('''Must be 10 characters long'''   )

						# Get month
						UpperCAmelCase_			:      int     						=  int(date_input[0] + date_input[1]   )
						# Validate
						if not 0 < m < 13:
												raise ValueError('''Month must be between 1 - 12'''   )

						UpperCAmelCase_			:      str     						=  date_input[2]
						# Validate
						if sep_a not in ["-", "/"]:
												raise ValueError('''Date separator must be \'-\' or \'/\''''   )

						# Get day
						UpperCAmelCase_			:      int     						=  int(date_input[3] + date_input[4]   )
						# Validate
						if not 0 < d < 32:
												raise ValueError('''Date must be between 1 - 31'''   )

						# Get second separator
						UpperCAmelCase_			:      str     						=  date_input[5]
						# Validate
						if sep_a not in ["-", "/"]:
												raise ValueError('''Date separator must be \'-\' or \'/\''''   )

						# Get year
						UpperCAmelCase_			:      int     						=  int(date_input[6] + date_input[7] + date_input[8] + date_input[9]   )
						# Arbitrary year range
						if not 45 < y < 8500:
												raise ValueError(
												    '''Year out of range. There has to be some sort of limit...right?'''   )

						# Get datetime obj for validation
						UpperCAmelCase_			:      Union[str, Any]     						=  datetime.date(int(SCREAMING_SNAKE_CASE__   ),			int(SCREAMING_SNAKE_CASE__   ),			int(SCREAMING_SNAKE_CASE__   )   )

						# Start math
						if m <= 2:
												UpperCAmelCase_			:      Optional[int]     						=  y - 1
												UpperCAmelCase_			:      Dict     						=  m + 12
						# maths var
						UpperCAmelCase_			:      int     						=  int(str(SCREAMING_SNAKE_CASE__   )[:2]   )
						UpperCAmelCase_			:      int     						=  int(str(SCREAMING_SNAKE_CASE__   )[2:]   )
						UpperCAmelCase_			:      int     						=  int(2.6 * m - 5.39   )
						UpperCAmelCase_			:      int     						=  int(c / 4   )
						UpperCAmelCase_			:      int     						=  int(k / 4   )
						UpperCAmelCase_			:      int     						=  int(d + k   )
						UpperCAmelCase_			:      int     						=  int(t + u + v + x   )
						UpperCAmelCase_			:      int     						=  int(z - (2 * c)   )
						UpperCAmelCase_			:      int     						=  round(w % 7   )
						# End math

						# Validate math
						if f != convert_datetime_days[dt_ck.weekday()]:
												raise AssertionError('''The date was evaluated incorrectly. Contact developer.'''   )

						# Response
						UpperCAmelCase_			:      str     						=  F"""Your date {date_input}, is a {days[str(SCREAMING_SNAKE_CASE__   )]}!"""
						return response


if __name__ == "__main__":
					import doctest

					doctest.testmod()
					snake_case_     :       Optional[Any]						=  argparse.ArgumentParser(
					    description=(
					        "Find out what day of the week nearly any date is or was. Enter "
					        "date as a string in the mm-dd-yyyy or mm/dd/yyyy format"
					    )
					)
					parser.add_argument(
					    "date_input", type=str, help="Date as a string (mm-dd-yyyy or mm/dd/yyyy)"
					)
					snake_case_     :       Tuple						=  parser.parse_args()
					zeller(args.date_input)












'''simple docstring'''







def        lowerCamelCase_      (  SCREAMING_SNAKE_CASE__      :			list[int]   ) ->	list[list[int]]:
						UpperCAmelCase_			:      int     						=  []
						if len(SCREAMING_SNAKE_CASE__   ) == 1:
												return [nums.copy()]
						for _ in range(len(SCREAMING_SNAKE_CASE__   )   ):
												UpperCAmelCase_			:      List[Any]     						=  nums.pop(0   )
												UpperCAmelCase_			:      Optional[Any]     						=  permute(SCREAMING_SNAKE_CASE__   )
												for perm in permutations:
																		perm.append(SCREAMING_SNAKE_CASE__   )
												result.extend(SCREAMING_SNAKE_CASE__   )
												nums.append(SCREAMING_SNAKE_CASE__   )
						return result





def        lowerCamelCase_      (  SCREAMING_SNAKE_CASE__      :			List[str]   ) ->	Any:

						def backtrack(SCREAMING_SNAKE_CASE__      :			Union[str, Any]   ):
												if start == len(SCREAMING_SNAKE_CASE__   ) - 1:
																		output.append(nums[:]   )
												else:
																		for i in range(SCREAMING_SNAKE_CASE__,			len(SCREAMING_SNAKE_CASE__   )   ):
																								UpperCAmelCase_						,       UpperCAmelCase_			:      Tuple     						=  nums[i], nums[start]
																								backtrack(start + 1   )
																								UpperCAmelCase_						,       UpperCAmelCase_			:      int     						=  nums[i], nums[start]  # backtrack

						UpperCAmelCase_			:      Optional[int]     						=  []
						backtrack(0   )
						return output


if __name__ == "__main__":
					import doctest

					# use res to print the data in permute2 function
					snake_case_     :       Tuple						=  permutea([1, 2, 3])
					print(res)
					doctest.testmod()





