

from ...configuration_utils import PretrainedConfig
from ...utils import logging
from ...utils.backbone_utils import BackboneConfigMixin, get_aligned_output_features_output_indices


SCREAMING_SNAKE_CASE_          =   logging.get_logger(__name__)

SCREAMING_SNAKE_CASE_          =   {
    'facebook/convnextv2-tiny-1k-224': 'https://huggingface.co/facebook/convnextv2-tiny-1k-224/resolve/main/config.json',
}

class 					a	(						__A				,			__A					):
						_lowercase         =      "convnextv2"


						def __init__(							self    ,       A_=3    ,       A_=4    ,       A_=4    ,       A_=None    ,       A_=None    ,       A_="gelu"    ,       A_=0.02    ,       A_=1e-12    ,       A_=0.0    ,       A_=224    ,       A_=None    ,       A_=None    ,       **A_    ,       ):







										'''simple docstring'''


										super().__init__(**A_						)

										_UpperCAmelCase							:		List[str]					=     num_channels
										_UpperCAmelCase							:		Dict					=     patch_size
										_UpperCAmelCase							:		List[Any]					=     num_stages
										_UpperCAmelCase							:		Tuple					=     [96, 192, 384, 768] if hidden_sizes is None else hidden_sizes
										_UpperCAmelCase							:		Any					=     [3, 3, 9, 3] if depths is None else depths
										_UpperCAmelCase							:		str					=     hidden_act
										_UpperCAmelCase							:		Any					=     initializer_range
										_UpperCAmelCase							:		int					=     layer_norm_eps
										_UpperCAmelCase							:		Any					=     drop_path_rate
										_UpperCAmelCase							:		List[str]					=     image_size
										_UpperCAmelCase							:		List[str]					=     ["stem"] + [f'stage{idx}' for idx in range(1    ,       len(self.depths						) + 1						)]
										_UpperCAmelCase							:		Dict					=     get_aligned_output_features_output_indices(
										    out_features=A_    ,       out_indices=A_    ,       stage_names=self.stage_names						)





from __future__ import annotations

def 			lowerCamelCase__			(       _a):
	if len(_a) == 0:
		return []
	SCREAMING_SNAKE_CASE  ,SCREAMING_SNAKE_CASE :   Tuple					  =							min(_a), max(_a)
	SCREAMING_SNAKE_CASE :   Dict					  =							int(max_value - min_value) + 1
	SCREAMING_SNAKE_CASE :   list[list]					  =							[[] for _ in range(_a)]

	for i in my_list:
		buckets[int(i - min_value)].append(_a)

	return [v for bucket in buckets for v in sorted(_a)]


if __name__ == "__main__":
			from doctest import testmod

			testmod()
			assert bucket_sort([4, 5, 3, 2, 1]) == [1, 2, 3, 4, 5]
			assert bucket_sort([0, 1, -10, 15, 2, -2]) == [-10, -2, 0, 1, 2, 15]