



import os
from shutil import copyfile
from typing import Any, Dict, List, Optional, Tuple

import sentencepiece as spm

from ...tokenization_utils import PreTrainedTokenizer
from ...utils import logging


a	:   Optional[Any]       			=       logging.get_logger(__name__)


a	:   List[str]       			=       '▁'

a	:   Dict       			=       {'vocab_file': 'spiece.model'}

a	:   Any       			=       {
    'vocab_file': {
        'google/reformer-crime-and-punishment': (
            'https://huggingface.co/google/reformer-crime-and-punishment/resolve/main/spiece.model'
        )
    }
}

a	:   Tuple       			=       {
    'google/reformer-crime-and-punishment': 524_288,
}







class 							_a							(					__a ):
			A							=     VOCAB_FILES_NAMES
			A							=     PRETRAINED_VOCAB_FILES_MAP
			A							=     PRETRAINED_POSITIONAL_EMBEDDINGS_SIZES
			A							=     ['''input_ids''', '''attention_mask''']

			def __init__(self,					SCREAMING_SNAKE_CASE_,					SCREAMING_SNAKE_CASE_="</s>",					SCREAMING_SNAKE_CASE_="<unk>",					SCREAMING_SNAKE_CASE_=[],					SCREAMING_SNAKE_CASE_ = None,					**SCREAMING_SNAKE_CASE_,					)    ->					None:
						UpperCAmelCase_:						List[Any]					=			{} if sp_model_kwargs is None else sp_model_kwargs

						super().__init__(
						    eos_token=_UpperCamelCase,					unk_token=_UpperCamelCase,					additional_special_tokens=_UpperCamelCase,					sp_model_kwargs=self.sp_model_kwargs,					**_UpperCamelCase,					)

						UpperCAmelCase_:						Dict					=			vocab_file
						UpperCAmelCase_:						Dict					=			spm.SentencePieceProcessor(**self.sp_model_kwargs )
						self.sp_model.Load(_UpperCamelCase )

			@property
			def 			__snake_case    (self )    ->					Optional[Any]:
						return self.sp_model.get_piece_size()

			def 			__snake_case    (self )    ->					Dict[str, int]:
						UpperCAmelCase_:						Optional[Any]					=			{self.convert_ids_to_tokens(_UpperCamelCase ): i for i in range(self.vocab_size )}
						vocab.update(self.added_tokens_encoder )
						return vocab

			def __getstate__(self )    ->					List[str]:
						UpperCAmelCase_:						List[str]					=			self.__dict__.copy()
						UpperCAmelCase_:						List[Any]					=			None
						return state

			def __setstate__(self,					SCREAMING_SNAKE_CASE_ )    ->					Any:
						UpperCAmelCase_:						Union[str, Any]					=			d

						# for backward compatibility
						if not hasattr(self,					"""sp_model_kwargs""" ):
									UpperCAmelCase_:						Dict					=			{}

						UpperCAmelCase_:						str					=			spm.SentencePieceProcessor(**self.sp_model_kwargs )
						self.sp_model.Load(self.vocab_file )

			def 			__snake_case    (self,					SCREAMING_SNAKE_CASE_ )    ->					List[str]:
						return self.sp_model.encode(_UpperCamelCase,					out_type=_UpperCamelCase )

			def 			__snake_case    (self,					SCREAMING_SNAKE_CASE_ )    ->					Union[str, Any]:
						return self.sp_model.piece_to_id(_UpperCamelCase )

			def 			__snake_case    (self,					SCREAMING_SNAKE_CASE_ )    ->					Optional[Any]:
						if index < self.sp_model.get_piece_size():
									UpperCAmelCase_:						Tuple					=			self.sp_model.IdToPiece(_UpperCamelCase )
						return token

			def 			__snake_case    (self,					SCREAMING_SNAKE_CASE_ )    ->					str:
						UpperCAmelCase_:						int					=			[]
						UpperCAmelCase_:						Any					=			""""""
						for token in tokens:
									# make sure that special tokens are not decoded using sentencepiece model
									if token in self.all_special_tokens:
												out_string += self.sp_model.decode(_UpperCamelCase ) + token
												UpperCAmelCase_:						str					=			[]
									else:
												current_sub_tokens.append(_UpperCamelCase )
						out_string += self.sp_model.decode(_UpperCamelCase )
						return out_string.strip()

			def 			__snake_case    (self,					SCREAMING_SNAKE_CASE_,					SCREAMING_SNAKE_CASE_ = None )    ->					Tuple[str]:
						if not os.path.isdir(_UpperCamelCase ):
									logger.error(f'Vocabulary path ({save_directory}) should be a directory' )
									return
						UpperCAmelCase_:						Union[str, Any]					=			os.path.join(
						    _UpperCamelCase,					(filename_prefix + """-""" if filename_prefix else """""") + VOCAB_FILES_NAMES["""vocab_file"""] )

						if os.path.abspath(self.vocab_file ) != os.path.abspath(_UpperCamelCase ) and os.path.isfile(self.vocab_file ):
									copyfile(self.vocab_file,					_UpperCamelCase )
						elif not os.path.isfile(self.vocab_file ):
									with open(_UpperCamelCase,					"""wb""" ) as fi:
												UpperCAmelCase_:						List[Any]					=			self.sp_model.serialized_model_proto()
												fi.write(_UpperCamelCase )

						return (out_vocab_file,)








from ..utils import DummyObject, requires_backends





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[int]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      str:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Any:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Any:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      int:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      int:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      int:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[Any]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[str]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      int:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Tuple:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      int:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Tuple:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      int:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      int:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      str:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[str]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      int:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[int]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[str]:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      int:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[int]:
							requires_backends(cls				,				["torch"]     )






def    lowerCamelCase__				(				*__lowerCAmelCase  :  Union[str, Any]    ,							**__lowerCAmelCase  :  Dict				):




			"""simple docstring"""


			requires_backends(__lowerCAmelCase    ,							["torch"]				)






def    lowerCamelCase__				(				*__lowerCAmelCase  :  Optional[int]    ,							**__lowerCAmelCase  :  int				):




			"""simple docstring"""


			requires_backends(__lowerCAmelCase    ,							["torch"]				)






def    lowerCamelCase__				(				*__lowerCAmelCase  :  List[str]    ,							**__lowerCAmelCase  :  int				):




			"""simple docstring"""


			requires_backends(__lowerCAmelCase    ,							["torch"]				)






def    lowerCamelCase__				(				*__lowerCAmelCase  :  Union[str, Any]    ,							**__lowerCAmelCase  :  Optional[Any]				):




			"""simple docstring"""


			requires_backends(__lowerCAmelCase    ,							["torch"]				)






def    lowerCamelCase__				(				*__lowerCAmelCase  :  Dict    ,							**__lowerCAmelCase  :  Any				):




			"""simple docstring"""


			requires_backends(__lowerCAmelCase    ,							["torch"]				)






def    lowerCamelCase__				(				*__lowerCAmelCase  :  Optional[int]    ,							**__lowerCAmelCase  :  Dict				):




			"""simple docstring"""


			requires_backends(__lowerCAmelCase    ,							["torch"]				)






def    lowerCamelCase__				(				*__lowerCAmelCase  :  int    ,							**__lowerCAmelCase  :  Any				):




			"""simple docstring"""


			requires_backends(__lowerCAmelCase    ,							["torch"]				)





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      int:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[str]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[str]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Tuple:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      int:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[str]:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Union[str, Any]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[int]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[int]:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      int:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Tuple:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[str]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Union[str, Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[int]:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Tuple:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Any:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[int]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      str:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[Any]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[int]:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[Any]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      int:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Any:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Tuple:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Tuple:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[Any]:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Tuple:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[int]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Union[str, Any]:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[Any]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[str]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[int]:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Tuple:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[str]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      int:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Any:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[int]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[str]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[int]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[int]:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[Any]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Any:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[int]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Union[str, Any]:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Any:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      int:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Any:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Tuple:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Tuple:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      str:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[Any]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Tuple:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[Any]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Tuple:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      int:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      int:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Any:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Any:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      str:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      int:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[str]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Tuple:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Union[str, Any]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Union[str, Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      int:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[Any]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      int:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[str]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Tuple:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Any:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[str]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[int]:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Union[str, Any]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Tuple:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      str:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[str]:
							requires_backends(cls				,				["torch"]     )



