



import functools
import operator

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


__UpperCAmelCase      :      List[Any]   					=					logging.get_logger(__name__)

__UpperCAmelCase      :      Tuple   					=					{
    'facebook/hubert-base-ls960': 'https://huggingface.co/facebook/hubert-base-ls960/resolve/main/config.json',
    # See all Hubert models at https://huggingface.co/models?filter=hubert
}

class 	__lowerCAmelCase							(__UpperCamelCase  ):


					'''simple docstring'''


					a__        =     'hubert'







					def __init__(      self    ,       a=32    ,       a=7_68    ,       a=12    ,       a=12    ,       a=30_72    ,       a="gelu"    ,       a=0.1    ,       a=0.1    ,       a=0.1    ,       a=True    ,       a=0.0    ,       a=0.1    ,       a=0.1    ,       a=0.02    ,       a=1e-5    ,       a="group"    ,       a="gelu"    ,       a=(5_12, 5_12, 5_12, 5_12, 5_12, 5_12, 5_12)    ,       a=(5, 2, 2, 2, 2, 2, 2)    ,       a=(10, 3, 3, 3, 3, 2, 2)    ,       a=False    ,       a=1_28    ,       a=16    ,       a=False    ,       a=True    ,       a=0.05    ,       a=10    ,       a=2    ,       a=0.0    ,       a=10    ,       a=0    ,       a="sum"    ,       a=False    ,       a=False    ,       a=2_56    ,       a=0    ,       a=1    ,       a=2    ,       **a    ,       ):




										"""simple docstring"""





										super().__init__(**__lowerCamelCase    ,       pad_token_id=__lowerCamelCase    ,       bos_token_id=__lowerCamelCase    ,       eos_token_id=__lowerCamelCase   )
										snake_case_						:Tuple								=						hidden_size
										snake_case_						:Tuple								=						feat_extract_norm
										snake_case_						:Tuple								=						feat_extract_activation
										snake_case_						:Tuple								=						list(__lowerCamelCase   )
										snake_case_						:List[str]								=						list(__lowerCamelCase   )
										snake_case_						:List[str]								=						list(__lowerCamelCase   )
										snake_case_						:str								=						conv_bias
										snake_case_						:Dict								=						num_conv_pos_embeddings
										snake_case_						:Dict								=						num_conv_pos_embedding_groups
										snake_case_						:List[str]								=						len(self.conv_dim   )
										snake_case_						:Any								=						num_hidden_layers
										snake_case_						:Dict								=						intermediate_size
										snake_case_						:str								=						hidden_act
										snake_case_						:Optional[int]								=						num_attention_heads
										snake_case_						:Optional[Any]								=						hidden_dropout
										snake_case_						:int								=						attention_dropout
										snake_case_						:Optional[Any]								=						activation_dropout
										snake_case_						:int								=						feat_proj_layer_norm
										snake_case_						:Union[str, Any]								=						feat_proj_dropout
										snake_case_						:Union[str, Any]								=						final_dropout
										snake_case_						:str								=						layerdrop
										snake_case_						:Tuple								=						layer_norm_eps
										snake_case_						:Dict								=						initializer_range
										snake_case_						:Optional[int]								=						vocab_size
										snake_case_						:List[str]								=						do_stable_layer_norm
										snake_case_						:Optional[int]								=						use_weighted_layer_sum
										snake_case_						:Tuple								=						classifier_proj_size

										if (
										    (len(self.conv_stride   ) != self.num_feat_extract_layers)
										    or (len(self.conv_kernel   ) != self.num_feat_extract_layers)
										    or (len(self.conv_dim   ) != self.num_feat_extract_layers)
										):
															raise ValueError(
															    "Configuration for convolutional layers is incorrect. It is required that `len(config.conv_dim)` =="
															    " `len(config.conv_stride)` == `len(config.conv_kernel)`, but is `len(config.conv_dim) ="
															    F''' {len(self.conv_dim   )}`, `len(config.conv_stride) = {len(self.conv_stride   )}`,'''
															    F''' `len(config.conv_kernel) = {len(self.conv_kernel   )}`.'''   )

										# fine-tuning config parameters for SpecAugment: https://arxiv.org/abs/1904.08779
										snake_case_						:Optional[Any]								=						apply_spec_augment
										snake_case_						:Optional[Any]								=						mask_time_prob
										snake_case_						:Tuple								=						mask_time_length
										snake_case_						:Optional[Any]								=						mask_time_min_masks
										snake_case_						:List[str]								=						mask_feature_prob
										snake_case_						:Dict								=						mask_feature_length
										snake_case_						:Optional[Any]								=						mask_feature_min_masks

										# ctc loss
										snake_case_						:Optional[Any]								=						ctc_loss_reduction
										snake_case_						:Any								=						ctc_zero_infinity







					@property
					def 		_a (      self   ):




										"""simple docstring"""





										return functools.reduce(operator.mul    ,       self.conv_stride    ,       1   )






"""simple docstring"""






def      A      (			_A,     _A							):




					"""simple docstring"""
					if n == 0:
										return 1

					elif n % 2 == 1:
										return binary_exponentiation(_A,     n - 1							) * a

					else:
										snake_case_						:Optional[int]								=						binary_exponentiation(_A,     n / 2							)
										return b * b


if __name__ == "__main__":
				try:
								__UpperCAmelCase      :      str   					=					int(input('Enter Base : ').strip())
								__UpperCAmelCase      :      Any   					=					int(input('Enter Power : ').strip())
				except ValueError:
								print('Invalid literal for integer')

				__UpperCAmelCase      :      Optional[int]   					=					binary_exponentiation(BASE, POWER)
				print(F'''{BASE}^({POWER}) : {RESULT}''')

