




from collections import OrderedDict
from typing import TYPE_CHECKING, Any, Mapping, Optional, Union

from ...configuration_utils import PretrainedConfig
from ...onnx import OnnxConfig, OnnxSeqaSeqConfigWithPast
from ...utils import logging


if TYPE_CHECKING:
		from ...feature_extraction_utils import FeatureExtractionMixin
		from ...tokenization_utils_base import PreTrainedTokenizerBase
		from ...utils import TensorType

__lowerCAmelCase	:       Any     =	logging.get_logger(__name__)

__lowerCAmelCase	:       Dict     =	{
    'openai/whisper-base': 'https://huggingface.co/openai/whisper-base/resolve/main/config.json',
}

# fmt: off
__lowerCAmelCase	:       Tuple     =	[
    1, 2, 7, 8, 9, 10, 14, 25,
    26, 27, 28, 29, 31, 58, 59, 60, 61, 62,
    63, 90, 91, 92, 93, 357, 366, 438, 532, 685,
    705, 796, 930, 1058, 1220, 1267, 1279, 1303, 1343, 1377,
    1391, 1635, 1782, 1875, 2162, 2361, 2488, 3467, 4008, 4211,
    4600, 4808, 5299, 5855, 6329, 7203, 9609, 9959, 1_0563, 1_0786,
    1_1420, 1_1709, 1_1907, 1_3163, 1_3697, 1_3700, 1_4808, 1_5306, 1_6410, 1_6791,
    1_7992, 1_9203, 1_9510, 2_0724, 2_2305, 2_2935, 2_7007, 3_0109, 3_0420, 3_3409,
    3_4949, 4_0283, 4_0493, 4_0549, 4_7282, 4_9146, 5_0257, 5_0359, 5_0360, 5_0361
]
__lowerCAmelCase	:       Any     =	[
    1, 2, 7, 8, 9, 10, 14, 25,
    26, 27, 28, 29, 31, 58, 59, 60, 61, 62,
    63, 90, 91, 92, 93, 359, 503, 522, 542, 873,
    893, 902, 918, 922, 931, 1350, 1853, 1982, 2460, 2627,
    3246, 3253, 3268, 3536, 3846, 3961, 4183, 4667, 6585, 6647,
    7273, 9061, 9383, 1_0428, 1_0929, 1_1938, 1_2033, 1_2331, 1_2562, 1_3793,
    1_4157, 1_4635, 1_5265, 1_5618, 1_6553, 1_6604, 1_8362, 1_8956, 2_0075, 2_1675,
    2_2520, 2_6130, 2_6161, 2_6435, 2_8279, 2_9464, 3_1650, 3_2302, 3_2470, 3_6865,
    4_2863, 4_7425, 4_9870, 5_0254, 5_0258, 5_0360, 5_0361, 5_0362
]




class 					snake_case__							(_UpperCamelCase     ):
				"""simple docstring"""



				SCREAMING_SNAKE_CASE_ :							Any											=      """whisper"""
				SCREAMING_SNAKE_CASE_ :							str											=      ["""past_key_values"""]
				SCREAMING_SNAKE_CASE_ :							Dict											=      {"""num_attention_heads""": """encoder_attention_heads""", """hidden_size""": """d_model"""}





				def __init__(   self       :  Tuple      ,   __lowerCamelCase       :  Optional[Any]=5_18_65      ,   __lowerCamelCase       :  Optional[int]=80      ,   __lowerCamelCase       :  int=6      ,   __lowerCamelCase       :  Dict=4      ,   __lowerCamelCase       :  List[Any]=6      ,   __lowerCamelCase       :  Any=4      ,   __lowerCamelCase       :  List[str]=15_36      ,   __lowerCamelCase       :  Union[str, Any]=15_36      ,   __lowerCamelCase       :  Union[str, Any]=0.0      ,   __lowerCamelCase       :  List[str]=0.0      ,   __lowerCamelCase       :  Dict=5_02_57      ,   __lowerCamelCase       :  Optional[Any]=True      ,   __lowerCamelCase       :  Union[str, Any]=True      ,   __lowerCamelCase       :  Optional[Any]="gelu"      ,   __lowerCamelCase       :  Any=2_56      ,   __lowerCamelCase       :  Optional[Any]=0.0      ,   __lowerCamelCase       :  str=0.0      ,   __lowerCamelCase       :  Optional[Any]=0.0      ,   __lowerCamelCase       :  Optional[int]=0.02      ,   __lowerCamelCase       :  str=False      ,   __lowerCamelCase       :  Union[str, Any]=15_00      ,   __lowerCamelCase       :  Optional[Any]=4_48      ,   __lowerCamelCase       :  Tuple=5_02_56      ,   __lowerCamelCase       :  Optional[int]=5_02_56      ,   __lowerCamelCase       :  Optional[int]=5_02_56      ,   __lowerCamelCase       :  Union[str, Any]=None      ,   __lowerCamelCase       :  str=[2_20, 5_02_56]      ,   __lowerCamelCase       :  str=False      ,   __lowerCamelCase       :  Dict=2_56      ,   __lowerCamelCase       :  Dict=False      ,   __lowerCamelCase       :  int=0.05      ,   __lowerCamelCase       :  Optional[Any]=10      ,   __lowerCamelCase       :  List[str]=2      ,   __lowerCamelCase       :  Tuple=0.0      ,   __lowerCamelCase       :  Any=10      ,   __lowerCamelCase       :  List[str]=0      ,   __lowerCamelCase       :  Optional[int]=7      ,   **__lowerCamelCase       :  int      ,   )      ->  Any:
							a					=    vocab_size
							a					=    num_mel_bins
							a					=    d_model
							a					=    encoder_layers
							a					=    encoder_attention_heads
							a					=    decoder_layers
							a					=    decoder_attention_heads
							a					=    decoder_ffn_dim
							a					=    encoder_ffn_dim
							a					=    dropout
							a					=    attention_dropout
							a					=    activation_dropout
							a					=    activation_function
							a					=    init_std
							a					=    encoder_layerdrop
							a					=    decoder_layerdrop
							a					=    use_cache
							a					=    encoder_layers
							a					=    scale_embedding  # scale factor will be sqrt(d_model) if True
							a					=    max_source_positions
							a					=    max_target_positions

							# Audio Classification-specific parameters. Feel free to ignore for other classes.
							a					=    classifier_proj_size
							a					=    use_weighted_layer_sum

							# fine-tuning config parameters for SpecAugment: https://arxiv.org/abs/1904.08779
							a					=    apply_spec_augment
							a					=    mask_time_prob
							a					=    mask_time_length
							a					=    mask_time_min_masks
							a					=    mask_feature_prob
							a					=    mask_feature_length
							a					=    mask_feature_min_masks

							a					=    median_filter_width

							super().__init__(
							    pad_token_id=__lowerCamelCase      ,   bos_token_id=__lowerCamelCase      ,   eos_token_id=__lowerCamelCase      ,   is_encoder_decoder=__lowerCamelCase      ,   decoder_start_token_id=__lowerCamelCase      ,   suppress_tokens=__lowerCamelCase      ,   begin_suppress_tokens=__lowerCamelCase      ,   **__lowerCamelCase      ,   )




class 					snake_case__							(_UpperCamelCase     ):
				"""simple docstring"""



				@property
				def 							__UpperCAmelCase							(   self       :  str							)      ->  Mapping[str, Mapping[int, str]]:
							a					=    OrderedDict(
							    [
							        ("input_features", {0: "batch", 1: "feature_size", 2: "encoder_sequence"}),
							    ]							)
							if self.use_past:
										a					=    {0: "batch"}
							else:
										a					=    {0: "batch", 1: "decoder_sequence"}

							if self.use_past:
										self.fill_with_past_key_values_(__lowerCamelCase      ,   direction="inputs"							)

							return common_inputs





				def 							__UpperCAmelCase							(   self       :  Optional[int]      ,   __lowerCamelCase       :  Union["PreTrainedTokenizerBase", "FeatureExtractionMixin"]      ,   __lowerCamelCase       :  int = -1      ,   __lowerCamelCase       :  int = -1      ,   __lowerCamelCase       :  bool = False      ,   __lowerCamelCase       :  Optional["TensorType"] = None      ,   __lowerCamelCase       :  int = 2_20_50      ,   __lowerCamelCase       :  float = 5.0      ,   __lowerCamelCase       :  int = 2_20      ,   )      ->  Mapping[str, Any]:
							a					=    OrderedDict()
							a					=    OnnxConfig.generate_dummy_inputs(
							    self      ,   preprocessor=preprocessor.feature_extractor      ,   batch_size=__lowerCamelCase      ,   framework=__lowerCamelCase      ,   sampling_rate=__lowerCamelCase      ,   time_duration=__lowerCamelCase      ,   frequency=__lowerCamelCase      ,   )
							a					=    encoder_inputs["input_features"].shape[2]
							a					=    encoder_sequence_length // 2 if self.use_past else seq_length

							a					=    super().generate_dummy_inputs(
							    preprocessor.tokenizer      ,   __lowerCamelCase      ,   __lowerCamelCase      ,   __lowerCamelCase      ,   __lowerCamelCase							)

							a					=    encoder_inputs.pop("input_features"							)
							a					=    decoder_inputs.pop("decoder_input_ids"							)

							if "past_key_values" in decoder_inputs:
										a					=    decoder_inputs.pop("past_key_values"							)

							return dummy_inputs





				@property
				def 							__UpperCAmelCase							(   self       :  List[Any]							)      ->  float:
							return 1e-3












def     __magic_name__       (				A	:      list     ):






			'''simple docstring'''







			for i in range(len(A     ) - 1,						0,						-1     ):
						a					=    False

						for j in range(A,						0,						-1     ):
									if unsorted[j] < unsorted[j - 1]:
												a					,	a					=    unsorted[j - 1], unsorted[j]
												a					=    True

						for j in range(A     ):
									if unsorted[j] > unsorted[j + 1]:
												a					,	a					=    unsorted[j + 1], unsorted[j]
												a					=    True

						if not swapped:
									break
			return unsorted


if __name__ == "__main__":
		import doctest

		doctest.testmod()
		__lowerCAmelCase	:       Tuple     =	input('Enter numbers separated by a comma:\n').strip()
		__lowerCAmelCase	:       List[Any]     =	[int(item) for item in user_input.split(',')]
		print(F'''{cocktail_shaker_sort(unsorted) = }''')






