



"""simple docstring"""





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


lowerCamelCase      =		logging.get_logger(__name__)

lowerCamelCase      =		{
    """funnel-transformer/small""": """https://huggingface.co/funnel-transformer/small/resolve/main/config.json""",
    """funnel-transformer/small-base""": """https://huggingface.co/funnel-transformer/small-base/resolve/main/config.json""",
    """funnel-transformer/medium""": """https://huggingface.co/funnel-transformer/medium/resolve/main/config.json""",
    """funnel-transformer/medium-base""": """https://huggingface.co/funnel-transformer/medium-base/resolve/main/config.json""",
    """funnel-transformer/intermediate""": (
        """https://huggingface.co/funnel-transformer/intermediate/resolve/main/config.json"""
    ),
    """funnel-transformer/intermediate-base""": (
        """https://huggingface.co/funnel-transformer/intermediate-base/resolve/main/config.json"""
    ),
    """funnel-transformer/large""": """https://huggingface.co/funnel-transformer/large/resolve/main/config.json""",
    """funnel-transformer/large-base""": """https://huggingface.co/funnel-transformer/large-base/resolve/main/config.json""",
    """funnel-transformer/xlarge""": """https://huggingface.co/funnel-transformer/xlarge/resolve/main/config.json""",
    """funnel-transformer/xlarge-base""": """https://huggingface.co/funnel-transformer/xlarge-base/resolve/main/config.json""",
}
class    lowercase__     (					SCREAMING_SNAKE_CASE   ):







       '''simple docstring'''


       UpperCamelCase		=  '''funnel'''
       UpperCamelCase		=  {
           '''hidden_size''': '''d_model''',
           '''num_attention_heads''': '''n_head''',
       }



       def __init__(							self    :						Optional[int]	,       _UpperCAmelCase    :						int=30522	,       _UpperCAmelCase    :						Tuple=[4, 4, 4]	,       _UpperCAmelCase    :						Optional[Any]=None	,       _UpperCAmelCase    :						Optional[int]=2	,       _UpperCAmelCase    :						str=768	,       _UpperCAmelCase    :						List[Any]=12	,       _UpperCAmelCase    :						List[Any]=64	,       _UpperCAmelCase    :						Optional[int]=3072	,       _UpperCAmelCase    :						Dict="gelu_new"	,       _UpperCAmelCase    :						Tuple=0.1	,       _UpperCAmelCase    :						str=0.1	,       _UpperCAmelCase    :						Dict=0.0	,       _UpperCAmelCase    :						Union[str, Any]=0.1	,       _UpperCAmelCase    :						Tuple=None	,       _UpperCAmelCase    :						Dict=1e-9	,       _UpperCAmelCase    :						Tuple="mean"	,       _UpperCAmelCase    :						Dict="relative_shift"	,       _UpperCAmelCase    :						Any=True	,       _UpperCAmelCase    :						int=True	,       _UpperCAmelCase    :						List[str]=True	,       **_UpperCAmelCase    :						List[Any]	,       )				->		Union[str, Any]:


             '''simple docstring'''




             UpperCAmelCase_    				=							vocab_size
             UpperCAmelCase_    				=							block_sizes
             UpperCAmelCase_    				=							[1] * len(_UpperCAmelCase					) if block_repeats is None else block_repeats
             assert len(_UpperCAmelCase					) == len(
                 self.block_repeats					), "`block_sizes` and `block_repeats` should have the same length."
             UpperCAmelCase_    				=							num_decoder_layers
             UpperCAmelCase_    				=							d_model
             UpperCAmelCase_    				=							n_head
             UpperCAmelCase_    				=							d_head
             UpperCAmelCase_    				=							d_inner
             UpperCAmelCase_    				=							hidden_act
             UpperCAmelCase_    				=							hidden_dropout
             UpperCAmelCase_    				=							attention_dropout
             UpperCAmelCase_    				=							activation_dropout
             UpperCAmelCase_    				=							initializer_range
             UpperCAmelCase_    				=							initializer_std
             UpperCAmelCase_    				=							layer_norm_eps
             assert pooling_type in [
                 "mean",
                 "max",
             ], F"""Got {pooling_type} for `pooling_type` but only 'mean' and 'max' are supported."""
             UpperCAmelCase_    				=							pooling_type
             assert attention_type in [
                 "relative_shift",
                 "factorized",
             ], F"""Got {attention_type} for `attention_type` but only 'relative_shift' and 'factorized' are supported."""
             UpperCAmelCase_    				=							attention_type
             UpperCAmelCase_    				=							separate_cls
             UpperCAmelCase_    				=							truncate_seq
             UpperCAmelCase_    				=							pool_q_only

             super().__init__(**_UpperCAmelCase					)



       @property
       def   lowercase__       (							self    :						Any					)				->		int:


             '''simple docstring'''




             return sum(self.block_sizes					)



       @num_hidden_layers.setter
       def   lowercase__       (							self    :						Optional[Any]	,       _UpperCAmelCase    :						Tuple					)				->		List[Any]:


             '''simple docstring'''




             raise NotImplementedError(
                 "This model does not support the setting of `num_hidden_layers`. Please set `block_sizes`."					)



       @property
       def   lowercase__       (							self    :						Any					)				->		Optional[int]:


             '''simple docstring'''




             return len(self.block_sizes					)







       @num_blocks.setter
       def   lowercase__       (							self    :						Dict	,       _UpperCAmelCase    :						List[Any]					)				->		List[Any]:


             '''simple docstring'''




             raise NotImplementedError("This model does not support the setting of `num_blocks`. Please set `block_sizes`."					)









"""simple docstring"""





import string
def      a__			(   lowerCAmelCase__   ):
      for key in range(len(string.ascii_uppercase   )   ):
            UpperCAmelCase_    				=							""
            for symbol in message:
                  if symbol in string.ascii_uppercase:
                        UpperCAmelCase_    				=							string.ascii_uppercase.find(lowerCAmelCase__   )
                        UpperCAmelCase_    				=							num - key
                        if num < 0:
                              UpperCAmelCase_    				=							num + len(string.ascii_uppercase   )
                        UpperCAmelCase_    				=							translated + string.ascii_uppercase[num]
                  else:
                        UpperCAmelCase_    				=							translated + symbol
            print(f"""Decryption using Key #{key}: {translated}"""   )
def      a__			(   ):
      UpperCAmelCase_    				=							input("Encrypted message: "   )
      UpperCAmelCase_    				=							message.upper()
      decrypt(lowerCAmelCase__   )


if __name__ == "__main__":
  import doctest

  doctest.testmod()
  main()




