



from ...configuration_utils import PretrainedConfig
from ...utils import logging


lowercase_	       =			logging.get_logger(__name__)

lowercase_	       =			{
    '''funnel-transformer/small''': '''https://huggingface.co/funnel-transformer/small/resolve/main/config.json''',
    '''funnel-transformer/small-base''': '''https://huggingface.co/funnel-transformer/small-base/resolve/main/config.json''',
    '''funnel-transformer/medium''': '''https://huggingface.co/funnel-transformer/medium/resolve/main/config.json''',
    '''funnel-transformer/medium-base''': '''https://huggingface.co/funnel-transformer/medium-base/resolve/main/config.json''',
    '''funnel-transformer/intermediate''': (
        '''https://huggingface.co/funnel-transformer/intermediate/resolve/main/config.json'''
    ),
    '''funnel-transformer/intermediate-base''': (
        '''https://huggingface.co/funnel-transformer/intermediate-base/resolve/main/config.json'''
    ),
    '''funnel-transformer/large''': '''https://huggingface.co/funnel-transformer/large/resolve/main/config.json''',
    '''funnel-transformer/large-base''': '''https://huggingface.co/funnel-transformer/large-base/resolve/main/config.json''',
    '''funnel-transformer/xlarge''': '''https://huggingface.co/funnel-transformer/xlarge/resolve/main/config.json''',
    '''funnel-transformer/xlarge-base''': '''https://huggingface.co/funnel-transformer/xlarge-base/resolve/main/config.json''',
}






class 						__a (     __a				):
					SCREAMING_SNAKE_CASE       =       "funnel"
					SCREAMING_SNAKE_CASE       =       {
					    "hidden_size": "d_model",
					    "num_attention_heads": "n_head",
					}



					def __init__(						self							:    Tuple				,	snake_case_							:    Dict=3_05_22				,	snake_case_							:    List[Any]=[4, 4, 4]				,	snake_case_							:    Union[str, Any]=None				,	snake_case_							:    Optional[int]=2				,	snake_case_							:    Optional[int]=7_68				,	snake_case_							:    str=12				,	snake_case_							:    Tuple=64				,	snake_case_							:    Dict=30_72				,	snake_case_							:    Tuple="gelu_new"				,	snake_case_							:    str=0.1				,	snake_case_							:    Any=0.1				,	snake_case_							:    int=0.0				,	snake_case_							:    int=0.1				,	snake_case_							:    str=None				,	snake_case_							:    int=1e-9				,	snake_case_							:    Optional[Any]="mean"				,	snake_case_							:    Optional[int]="relative_shift"				,	snake_case_							:    int=True				,	snake_case_							:    Tuple=True				,	snake_case_							:    Tuple=True				,	**snake_case_							:    Any				,	)->							str:
										__lowerCAmelCase	   =vocab_size
										__lowerCAmelCase	   =block_sizes
										__lowerCAmelCase	   =[1] * len(A__) if block_repeats is None else block_repeats
										assert len(A__) == len(
										    self.block_repeats), "`block_sizes` and `block_repeats` should have the same length."
										__lowerCAmelCase	   =num_decoder_layers
										__lowerCAmelCase	   =d_model
										__lowerCAmelCase	   =n_head
										__lowerCAmelCase	   =d_head
										__lowerCAmelCase	   =d_inner
										__lowerCAmelCase	   =hidden_act
										__lowerCAmelCase	   =hidden_dropout
										__lowerCAmelCase	   =attention_dropout
										__lowerCAmelCase	   =activation_dropout
										__lowerCAmelCase	   =initializer_range
										__lowerCAmelCase	   =initializer_std
										__lowerCAmelCase	   =layer_norm_eps
										assert pooling_type in [
										    "mean",
										    "max",
										], F"""Got {pooling_type} for `pooling_type` but only 'mean' and 'max' are supported."""
										__lowerCAmelCase	   =pooling_type
										assert attention_type in [
										    "relative_shift",
										    "factorized",
										], F"""Got {attention_type} for `attention_type` but only 'relative_shift' and 'factorized' are supported."""
										__lowerCAmelCase	   =attention_type
										__lowerCAmelCase	   =separate_cls
										__lowerCAmelCase	   =truncate_seq
										__lowerCAmelCase	   =pool_q_only

										super().__init__(**A__)



					@property
					def 		UpperCamelCase							(						self							:    Optional[Any])->							Any:
										return sum(self.block_sizes)



					@num_hidden_layers.setter
					def 		UpperCamelCase							(						self							:    Dict				,	snake_case_							:    str)->							Tuple:
										raise NotImplementedError(
										    """This model does not support the setting of `num_hidden_layers`. Please set `block_sizes`.""")



					@property
					def 		UpperCamelCase							(						self							:    int)->							Tuple:
										return len(self.block_sizes)



					@num_blocks.setter
					def 		UpperCamelCase							(						self							:    Optional[int]				,	snake_case_							:    Any)->							List[str]:
										raise NotImplementedError("""This model does not support the setting of `num_blocks`. Please set `block_sizes`.""")









def 					__lowerCAmelCase		(  __lowerCamelCase	:    list	)  ->						list:
					if len(__lowerCamelCase	) <= 1:
										return lst

					__lowerCAmelCase	   =1

					while i < len(__lowerCamelCase	):
										if lst[i - 1] <= lst[i]:
															i += 1
										else:
															__lowerCAmelCase   ,	__lowerCAmelCase	   =lst[i], lst[i - 1]
															i -= 1
															if i == 0:
																				__lowerCAmelCase	   =1

					return lst


if __name__ == "__main__":
				lowercase_	       =			input('''Enter numbers separated by a comma:\n''').strip()
				lowercase_	       =			[int(item) for item in user_input.split(''',''')]
				print(gnome_sort(unsorted))




