






"""simple docstring"""






from collections import OrderedDict
from typing import TYPE_CHECKING, Any, List, Mapping, Optional, Union

from ...configuration_utils import PretrainedConfig
from ...onnx import OnnxConfig
from ...utils import TensorType, logging


if TYPE_CHECKING:
					from ...onnx.config import PatchingSpec
					from ...tokenization_utils_base import PreTrainedTokenizerBase


SCREAMING_SNAKE_CASE						:						Tuple					   =       logging.get_logger(__name__)

SCREAMING_SNAKE_CASE						:						Optional[int]					   =       {
    '''allenai/longformer-base-4096''': '''https://huggingface.co/allenai/longformer-base-4096/resolve/main/config.json''',
    '''allenai/longformer-large-4096''': '''https://huggingface.co/allenai/longformer-large-4096/resolve/main/config.json''',
    '''allenai/longformer-large-4096-finetuned-triviaqa''': (
        '''https://huggingface.co/allenai/longformer-large-4096-finetuned-triviaqa/resolve/main/config.json'''
    ),
    '''allenai/longformer-base-4096-extra.pos.embd.only''': (
        '''https://huggingface.co/allenai/longformer-base-4096-extra.pos.embd.only/resolve/main/config.json'''
    ),
    '''allenai/longformer-large-4096-extra.pos.embd.only''': (
        '''https://huggingface.co/allenai/longformer-large-4096-extra.pos.embd.only/resolve/main/config.json'''
    ),
}





class       snake_case_       (    _lowerCamelCase       ):



	"""simple docstring"""

	SCREAMING_SNAKE_CASE_:							Tuple   			=					"""longformer"""


	def __init__(      self  ,					__a = 512  ,					__a = 2  ,					__a = 1  ,					__a = 0  ,					__a = 2  ,					__a = 3_0522  ,					__a = 768  ,					__a = 12  ,					__a = 12  ,					__a = 3072  ,					__a = "gelu"  ,					__a = 0.1  ,					__a = 0.1  ,					__a = 512  ,					__a = 2  ,					__a = 0.02  ,					__a = 1E-12  ,					__a = False  ,					**__a  ,					):


					"""simple docstring"""

					super().__init__(pad_token_id=__a  ,					**__a						)

					A__							 =       attention_window
					A__							 =       sep_token_id
					A__							 =       bos_token_id
					A__							 =       eos_token_id
					A__							 =       vocab_size
					A__							 =       hidden_size
					A__							 =       num_hidden_layers
					A__							 =       num_attention_heads
					A__							 =       hidden_act
					A__							 =       intermediate_size
					A__							 =       hidden_dropout_prob
					A__							 =       attention_probs_dropout_prob
					A__							 =       max_position_embeddings
					A__							 =       type_vocab_size
					A__							 =       initializer_range
					A__							 =       layer_norm_eps
					A__							 =       onnx_export





class       snake_case_       (    _lowerCamelCase       ):



	"""simple docstring"""

	def __init__(      self  ,					__a  ,					__a = "default"  ,					__a = None						):


					"""simple docstring"""

					super().__init__(__a  ,					__a  ,					__a						)
					A__							 =       True


	@property
	def       _UpperCAmelCase						(      self						):


					"""simple docstring"""

					if self.task == "multiple-choice":
									A__							 =       {0: 'batch', 1: 'choice', 2: 'sequence'}
					else:
									A__							 =       {0: 'batch', 1: 'sequence'}
					return OrderedDict(
					    [
					        ('input_ids', dynamic_axis),
					        ('attention_mask', dynamic_axis),
					        ('global_attention_mask', dynamic_axis),
					    ]						)


	@property
	def       _UpperCAmelCase						(      self						):


					"""simple docstring"""

					A__							 =       super().outputs
					if self.task == "default":
									A__							 =       {0: 'batch'}
					return outputs


	@property
	def       _UpperCAmelCase						(      self						):


					"""simple docstring"""

					return 1E-4


	@property
	def       _UpperCAmelCase						(      self						):


					"""simple docstring"""

					return max(super().default_onnx_opset  ,					14						)






	def       _UpperCAmelCase						(      self  ,					__a  ,					__a = -1  ,					__a = -1  ,					__a = False  ,					__a = None  ,					):


					"""simple docstring"""

					A__							 =       super().generate_dummy_inputs(
					    preprocessor=__a  ,					batch_size=__a  ,					seq_length=__a  ,					is_pair=__a  ,					framework=__a						)
					import torch

					# for some reason, replacing this code by inputs["global_attention_mask"] = torch.randint(2, inputs["input_ids"].shape, dtype=torch.int64)
					# makes the export fail randomly
					A__							 =       torch.zeros_like(inputs['input_ids']						)
					# make every second token global
					A__							 =       1

					return inputs










"""simple docstring"""






from maths.prime_check import is_prime



def  __lowerCamelCase					(					lowerCAmelCase__				):
				if not isinstance(lowerCAmelCase__       ,lowerCAmelCase__				):
								A__							 =       f'''Input value of [number={number}] must be an integer'''
								raise TypeError(lowerCAmelCase__				)
				if is_prime(lowerCAmelCase__				) and is_prime(number + 2				):
								return number + 2
				else:
								return -1


if __name__ == "__main__":
					import doctest

					doctest.testmod()


