





import argparse

import torch

from transformers import RemBertConfig, RemBertModel, load_tf_weights_in_rembert
from transformers.utils import logging


logging.set_verbosity_info()






def 				_UpperCAmelCase			(    A				,							A				,							A     ):




   '''simple docstring'''

   UpperCAmelCase__						=RemBertConfig.from_json_file(_SCREAMING_SNAKE_CASE     )
   print("Building PyTorch model from configuration: {}".format(str(_SCREAMING_SNAKE_CASE     )     )     )
   UpperCAmelCase__						=RemBertModel(_SCREAMING_SNAKE_CASE     )

   # Load weights from tf checkpoint
   load_tf_weights_in_rembert(_SCREAMING_SNAKE_CASE				,							_SCREAMING_SNAKE_CASE				,							_SCREAMING_SNAKE_CASE     )

   # Save pytorch-model
   print("Save PyTorch model to {}".format(_SCREAMING_SNAKE_CASE     )     )
   torch.save(model.state_dict()				,							_SCREAMING_SNAKE_CASE     )


if __name__ == "__main__":
    UpperCamelCase_												=	argparse.ArgumentParser()
    # Required parameters
    parser.add_argument(
        '--tf_checkpoint_path', default=None, type=str, required=True, help='Path to the TensorFlow checkpoint path.'
    )
    parser.add_argument(
        '--rembert_config_file',
        default=None,
        type=str,
        required=True,
        help=(
            'The config json file corresponding to the pre-trained RemBERT model. \n'
            'This specifies the model architecture.'
        ),
    )
    parser.add_argument(
        '--pytorch_dump_path', default=None, type=str, required=True, help='Path to the output PyTorch model.'
    )
    UpperCamelCase_												=	parser.parse_args()
    convert_rembert_tf_checkpoint_to_pytorch(args.tf_checkpoint_path, args.rembert_config_file, args.pytorch_dump_path)







'''simple docstring'''





def 						UpperCAmelCase__(				_SCREAMING_SNAKE_CASE					: int,_SCREAMING_SNAKE_CASE					: int,_SCREAMING_SNAKE_CASE					: int ):






			"""simple docstring"""




			if exponent == 1:
						return base
			if exponent % 2 == 0:
						__A=	_modexpt(_SCREAMING_SNAKE_CASE,exponent // 2,_SCREAMING_SNAKE_CASE ) % modulo_value
						return (x * x) % modulo_value
			else:
						return (base * _modexpt(_SCREAMING_SNAKE_CASE,exponent - 1,_SCREAMING_SNAKE_CASE )) % modulo_value






def 						UpperCAmelCase__(				_SCREAMING_SNAKE_CASE					: int = 1777,_SCREAMING_SNAKE_CASE					: int = 1855,_SCREAMING_SNAKE_CASE					: int = 8 ):






			"""simple docstring"""




			__A=	base
			for _ in range(1,_SCREAMING_SNAKE_CASE ):
						__A=	_modexpt(_SCREAMING_SNAKE_CASE,_SCREAMING_SNAKE_CASE,10**digits )

			return result


if __name__ == "__main__":
					print(F"""{solution() = }""")



