


def     lowerCAmelCase_					( __lowerCamelCase     ):


							if upper_limit < 0:
														raise ValueError("Limit for the Catalan sequence must be ≥ 0"     )

							__snake_case		:      List[str]										=       [0] * (upper_limit + 1)

							# Base case: C(0) = C(1) = 1
							__snake_case		:      Any										=       1
							if upper_limit > 0:
														__snake_case		:      Optional[int]										=       1

							# Recurrence relation: C(i) = sum(C(j).C(i-j-1)), from j = 0 to i
							for i in range(2							,     upper_limit + 1     ):
														for j in range(SCREAMING_SNAKE_CASE__     ):
																					catalan_list[i] += catalan_list[j] * catalan_list[i - j - 1]

							return catalan_list


if __name__ == "__main__":
			print("\n********* Catalan Numbers Using Dynamic Programming ************\n")
			print("\n*** Enter -1 at any time to quit ***")
			print("\nEnter the upper limit (≥ 0) for the Catalan number sequence: ", end="")
			try:
						while True:
									_snake_case					:		Union[str, Any]      =    int(input().strip())
									if N < 0:
												print("\n********* Goodbye!! ************")
												break
									else:
												print(f'''The Catalan numbers from 0 through {N} are:''')
												print(catalan_numbers(N))
												print("Try another upper limit for the sequence: ", end="")
			except (NameError, ValueError):
						print("\n********* Invalid input, goodbye! ************\n")

			import doctest

			doctest.testmod()





import argparse
import os

import torch

from transformers.utils import WEIGHTS_NAME


_snake_case					:		Union[str, Any]      =    ["small", "medium", "large"]

_snake_case					:		List[Any]      =    "lm_head.decoder.weight"
_snake_case					:		Optional[Any]      =    "lm_head.weight"







def     lowerCAmelCase_					( __lowerCamelCase							,     __lowerCamelCase     ):
							__snake_case		:      Tuple										=       torch.load(__lowerCamelCase     )
							__snake_case		:      Dict										=       d.pop(__lowerCamelCase     )
							os.makedirs(__lowerCamelCase							,     exist_ok=__lowerCamelCase     )
							torch.save(__lowerCamelCase							,     os.path.join(__lowerCamelCase							,     __lowerCamelCase     )     )


if __name__ == "__main__":
			_snake_case					:		Dict      =    argparse.ArgumentParser()
			parser.add_argument("--dialogpt_path", default=".", type=str)
			_snake_case					:		Any      =    parser.parse_args()
			for MODEL in DIALOGPT_MODELS:
						_snake_case					:		Dict      =    os.path.join(args.dialogpt_path, f'''{MODEL}_ft.pkl''')
						_snake_case					:		List[str]      =    f'''./DialoGPT-{MODEL}'''
						convert_dialogpt_checkpoint(
						    checkpoint_path,
						    pytorch_dump_folder_path,
						)

