

"""simple docstring"""




from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_tf_available, is_torch_available


_UpperCAmelCase		:       Optional[int]						    =	{
    """configuration_groupvit""": [
        """GROUPVIT_PRETRAINED_CONFIG_ARCHIVE_MAP""",
        """GroupViTConfig""",
        """GroupViTOnnxConfig""",
        """GroupViTTextConfig""",
        """GroupViTVisionConfig""",
    ],
}

try:
					if not is_torch_available():
										raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
					pass
else:
					_UpperCAmelCase		:       Union[str, Any]						    =	[
					    """GROUPVIT_PRETRAINED_MODEL_ARCHIVE_LIST""",
					    """GroupViTModel""",
					    """GroupViTPreTrainedModel""",
					    """GroupViTTextModel""",
					    """GroupViTVisionModel""",
					]

try:
					if not is_tf_available():
										raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
					pass
else:
					_UpperCAmelCase		:       Union[str, Any]						    =	[
					    """TF_GROUPVIT_PRETRAINED_MODEL_ARCHIVE_LIST""",
					    """TFGroupViTModel""",
					    """TFGroupViTPreTrainedModel""",
					    """TFGroupViTTextModel""",
					    """TFGroupViTVisionModel""",
					]

if TYPE_CHECKING:
					from .configuration_groupvit import (
					    GROUPVIT_PRETRAINED_CONFIG_ARCHIVE_MAP,
					    GroupViTConfig,
					    GroupViTOnnxConfig,
					    GroupViTTextConfig,
					    GroupViTVisionConfig,
					)

					try:
										if not is_torch_available():
															raise OptionalDependencyNotAvailable()
					except OptionalDependencyNotAvailable:
										pass
					else:
										from .modeling_groupvit import (
										    GROUPVIT_PRETRAINED_MODEL_ARCHIVE_LIST,
										    GroupViTModel,
										    GroupViTPreTrainedModel,
										    GroupViTTextModel,
										    GroupViTVisionModel,
										)

					try:
										if not is_tf_available():
															raise OptionalDependencyNotAvailable()
					except OptionalDependencyNotAvailable:
										pass
					else:
										from .modeling_tf_groupvit import (
										    TF_GROUPVIT_PRETRAINED_MODEL_ARCHIVE_LIST,
										    TFGroupViTModel,
										    TFGroupViTPreTrainedModel,
										    TFGroupViTTextModel,
										    TFGroupViTVisionModel,
										)

else:
					import sys

					_UpperCAmelCase		:       List[str]						    =	_LazyModule(__name__, globals()["""__file__"""], _import_structure, module_spec=__spec__)







from __future__ import annotations





def  __lowerCamelCase     (			UpperCamelCase__       ,							UpperCamelCase__				):







							'''simple docstring'''






							snake_case_          =   []
							create_all_state(1       ,							UpperCamelCase__       ,							UpperCamelCase__       ,							[]       ,							UpperCamelCase__				)
							return result





def  __lowerCamelCase     (			UpperCamelCase__       ,							UpperCamelCase__       ,							UpperCamelCase__       ,							UpperCamelCase__       ,							UpperCamelCase__       ,							):







							'''simple docstring'''






							if level == 0:
														total_list.append(current_list[:]				)
														return

							for i in range(UpperCamelCase__       ,							total_number - level + 2				):
														current_list.append(UpperCamelCase__				)
														create_all_state(i + 1       ,							UpperCamelCase__       ,							level - 1       ,							UpperCamelCase__       ,							UpperCamelCase__				)
														current_list.pop()





def  __lowerCamelCase     (			UpperCamelCase__				):







							'''simple docstring'''






							for i in total_list:
														print(*UpperCamelCase__				)


if __name__ == "__main__":
					_UpperCAmelCase		:       str						    =	4
					_UpperCAmelCase		:       Tuple						    =	2
					_UpperCAmelCase		:       Optional[int]						    =	generate_all_combinations(n, k)
					print_all_state(total_list)




