
"""simple docstring"""




def lowercase_  (       _snake_case       ,_snake_case						):
							if n == 0:
														return 1

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

							else:
														SCREAMING_SNAKE_CASE__						:	Optional[Any]									=       binary_exponentiation(_snake_case       ,n / 2						)
														return b * b


if __name__ == "__main__":
					try:
										UpperCAmelCase__				:   List[Any]   							=			int(input('Enter Base : ').strip())
										UpperCAmelCase__				:   Optional[Any]   							=			int(input('Enter Power : ').strip())
					except ValueError:
										print('Invalid literal for integer')

					UpperCAmelCase__				:   int   							=			binary_exponentiation(BASE, POWER)
					print(f"""{BASE}^({POWER}) : {RESULT}""")






"""simple docstring"""




import argparse

import torch
from flax.training.checkpoints import restore_checkpoint

from transformers import FNetConfig, FNetForPreTraining
from transformers.utils import logging


logging.set_verbosity_info()

def lowercase_  (       _snake_case       ,_snake_case       ,_snake_case						):
							# Initialise PyTorch model
							SCREAMING_SNAKE_CASE__						:	Union[str, Any]									=       FNetConfig.from_json_file(_snake_case						)
							print(f'''Building PyTorch model from configuration: {config}'''						)
							SCREAMING_SNAKE_CASE__						:	List[str]									=       FNetForPreTraining(_snake_case						)

							SCREAMING_SNAKE_CASE__						:	Tuple									=       restore_checkpoint(_snake_case       ,_snake_case						)
							SCREAMING_SNAKE_CASE__						:	Optional[int]									=       checkpoint_dict["""target"""]

							# Embeddings
							# Position IDs
							SCREAMING_SNAKE_CASE__						:	Tuple									=       fnet_pretraining_model.state_dict()

							SCREAMING_SNAKE_CASE__						:	Any									=       state_dict["""fnet.embeddings.position_ids"""]
							SCREAMING_SNAKE_CASE__						:	List[str]									=       {"""fnet.embeddings.position_ids""": position_ids}
							# Embedding Layers
							SCREAMING_SNAKE_CASE__						:	Tuple									=       torch.tensor(
							    pretrained_model_params["""encoder"""]["""embedder"""]["""word"""]["""embedding"""]						)
							SCREAMING_SNAKE_CASE__						:	Union[str, Any]									=       torch.tensor(
							    pretrained_model_params["""encoder"""]["""embedder"""]["""position"""]["""embedding"""][0]						)
							SCREAMING_SNAKE_CASE__						:	str									=       torch.tensor(
							    pretrained_model_params["""encoder"""]["""embedder"""]["""type"""]["""embedding"""]						)
							SCREAMING_SNAKE_CASE__						:	Any									=       torch.tensor(
							    pretrained_model_params["""encoder"""]["""embedder"""]["""hidden_mapping_in"""]["""kernel"""]						).T
							SCREAMING_SNAKE_CASE__						:	Optional[int]									=       torch.tensor(
							    pretrained_model_params["""encoder"""]["""embedder"""]["""hidden_mapping_in"""]["""bias"""]						)
							SCREAMING_SNAKE_CASE__						:	int									=       torch.tensor(
							    pretrained_model_params["""encoder"""]["""embedder"""]["""layer_norm"""]["""scale"""]						)
							SCREAMING_SNAKE_CASE__						:	Dict									=       torch.tensor(
							    pretrained_model_params["""encoder"""]["""embedder"""]["""layer_norm"""]["""bias"""]						)

							# Encoder Layers
							for layer in range(config.num_hidden_layers						):
														SCREAMING_SNAKE_CASE__						:	Dict									=       torch.tensor(
														    pretrained_model_params["""encoder"""][f'''encoder_{layer}''']["""mixing_layer_norm"""]["""scale"""]						)
														SCREAMING_SNAKE_CASE__						:	List[str]									=       torch.tensor(
														    pretrained_model_params["""encoder"""][f'''encoder_{layer}''']["""mixing_layer_norm"""]["""bias"""]						)

														SCREAMING_SNAKE_CASE__						:	List[Any]									=       torch.tensor(
														    pretrained_model_params["""encoder"""][f'''feed_forward_{layer}''']["""intermediate"""]["""kernel"""]						).T
														SCREAMING_SNAKE_CASE__						:	Optional[int]									=       torch.tensor(
														    pretrained_model_params["""encoder"""][f'''feed_forward_{layer}''']["""intermediate"""]["""bias"""]						)

														SCREAMING_SNAKE_CASE__						:	Tuple									=       torch.tensor(
														    pretrained_model_params["""encoder"""][f'''feed_forward_{layer}''']["""output"""]["""kernel"""]						).T
														SCREAMING_SNAKE_CASE__						:	Optional[int]									=       torch.tensor(
														    pretrained_model_params["""encoder"""][f'''feed_forward_{layer}''']["""output"""]["""bias"""]						)

														SCREAMING_SNAKE_CASE__						:	List[Any]									=       torch.tensor(
														    pretrained_model_params["""encoder"""][f'''encoder_{layer}''']["""output_layer_norm"""]["""scale"""]						)
														SCREAMING_SNAKE_CASE__						:	Tuple									=       torch.tensor(
														    pretrained_model_params["""encoder"""][f'''encoder_{layer}''']["""output_layer_norm"""]["""bias"""]						)

							# Pooler Layers
							SCREAMING_SNAKE_CASE__						:	Optional[int]									=       torch.tensor(pretrained_model_params["""encoder"""]["""pooler"""]["""kernel"""]						).T
							SCREAMING_SNAKE_CASE__						:	List[Any]									=       torch.tensor(pretrained_model_params["""encoder"""]["""pooler"""]["""bias"""]						)

							# Masked LM Layers
							SCREAMING_SNAKE_CASE__						:	Optional[Any]									=       torch.tensor(
							    pretrained_model_params["""predictions_dense"""]["""kernel"""]						).T
							SCREAMING_SNAKE_CASE__						:	int									=       torch.tensor(
							    pretrained_model_params["""predictions_dense"""]["""bias"""]						)
							SCREAMING_SNAKE_CASE__						:	str									=       torch.tensor(
							    pretrained_model_params["""predictions_layer_norm"""]["""scale"""]						)
							SCREAMING_SNAKE_CASE__						:	List[Any]									=       torch.tensor(
							    pretrained_model_params["""predictions_layer_norm"""]["""bias"""]						)
							SCREAMING_SNAKE_CASE__						:	Optional[Any]									=       torch.tensor(
							    pretrained_model_params["""encoder"""]["""embedder"""]["""word"""]["""embedding"""]						)
							SCREAMING_SNAKE_CASE__						:	Optional[Any]									=       torch.tensor(
							    pretrained_model_params["""predictions_output"""]["""output_bias"""]						)
							SCREAMING_SNAKE_CASE__						:	List[Any]									=       torch.tensor(pretrained_model_params["""predictions_output"""]["""output_bias"""]						)

							# Seq Relationship Layers
							SCREAMING_SNAKE_CASE__						:	int									=       torch.tensor(
							    pretrained_model_params["""classification"""]["""output_kernel"""]						)
							SCREAMING_SNAKE_CASE__						:	Optional[Any]									=       torch.tensor(
							    pretrained_model_params["""classification"""]["""output_bias"""]						)

							# Load State Dict
							fnet_pretraining_model.load_state_dict(_snake_case						)

							# Save PreTrained
							print(f'''Saving pretrained model to {save_path}'''						)
							fnet_pretraining_model.save_pretrained(_snake_case						)


if __name__ == "__main__":
					UpperCAmelCase__				:   Optional[int]   							=			argparse.ArgumentParser()
					# Required parameters
					parser.add_argument(
					    '--flax_checkpoint_path', default=None, type=str, required=True, help='Path to the TensorFlow checkpoint path.'
					)
					parser.add_argument(
					    '--fnet_config_file',
					    default=None,
					    type=str,
					    required=True,
					    help=(
					        'The config json file corresponding to the pre-trained FNet model. \n'
					        'This specifies the model architecture.'
					    ),
					)
					parser.add_argument('--save_path', default=None, type=str, required=True, help='Path to the output model.')
					UpperCAmelCase__				:   Optional[Any]   							=			parser.parse_args()
					convert_flax_checkpoint_to_pytorch(args.flax_checkpoint_path, args.fnet_config_file, args.save_path)




