
"""simple docstring"""





import os
import unittest

from transformers import MobileBertTokenizer, MobileBertTokenizerFast
from transformers.models.bert.tokenization_bert import (
    VOCAB_FILES_NAMES,
    BasicTokenizer,
    WordpieceTokenizer,
    _is_control,
    _is_punctuation,
    _is_whitespace,
)
from transformers.testing_utils import require_tokenizers, slow

from ...test_tokenization_common import TokenizerTesterMixin, filter_non_english


@require_tokenizers
class A_	(lowercase__				,unittest.TestCase      ):




  '''simple docstring'''
  SCREAMING_SNAKE_CASE__			:						str       =		MobileBertTokenizer
  SCREAMING_SNAKE_CASE__			:						int       =		MobileBertTokenizerFast
  SCREAMING_SNAKE_CASE__			:						str       =		True
  SCREAMING_SNAKE_CASE__			:						Optional[Any]       =		True
  SCREAMING_SNAKE_CASE__			:						Optional[int]       =		filter_non_english
  SCREAMING_SNAKE_CASE__			:						List[str]       =		"""google/mobilebert-uncased"""







  def        UpperCamelCase__					(		self  ):

     """simple docstring"""
     super().setUp()

     UpperCAmelCase_					:					Union[str, Any]			     =    [
         "[UNK]",
         "[CLS]",
         "[SEP]",
         "[PAD]",
         "[MASK]",
         "want",
         "##want",
         "##ed",
         "wa",
         "un",
         "runn",
         "##ing",
         ",",
         "low",
         "lowest",
     ]
     UpperCAmelCase_					:					str			     =    os.path.join(self.tmpdirname				,   VOCAB_FILES_NAMES["vocab_file"]  )
     with open(self.vocab_file				,   "w"				,   encoding="utf-8"  ) as vocab_writer:
        vocab_writer.write("".join([x + "\n" for x in vocab_tokens]  )  )

     UpperCAmelCase_					:					Any			     =    [
         (tokenizer_def[0], self.pre_trained_model_path, tokenizer_def[2])  # else the 'google/' prefix is stripped
         for tokenizer_def in self.tokenizers_list
     ]







  def        UpperCamelCase__					(		self				,   lowercase_  ):

     """simple docstring"""
     UpperCAmelCase_					:					Optional[Any]			     =    "UNwant\u00E9d,running"
     UpperCAmelCase_					:					Dict			     =    "unwanted, running"
     return input_text, output_text







  def        UpperCamelCase__					(		self  ):

     """simple docstring"""
     UpperCAmelCase_					:					str			     =    self.tokenizer_class(self.vocab_file  )

     UpperCAmelCase_					:					List[str]			     =    tokenizer.tokenize("UNwant\u00E9d,running"  )
     self.assertListEqual(lowercase_				,   ["un", "##want", "##ed", ",", "runn", "##ing"]  )
     self.assertListEqual(tokenizer.convert_tokens_to_ids(lowercase_  )				,   [9, 6, 7, 12, 10, 11]  )







  def        UpperCamelCase__					(		self  ):

     """simple docstring"""
     if not self.test_rust_tokenizer:
        return

     UpperCAmelCase_					:					List[str]			     =    self.get_tokenizer()
     UpperCAmelCase_					:					Any			     =    self.get_rust_tokenizer()

     UpperCAmelCase_					:					Dict			     =    "UNwant\u00E9d,running"

     UpperCAmelCase_					:					Optional[int]			     =    tokenizer.tokenize(lowercase_  )
     UpperCAmelCase_					:					List[str]			     =    rust_tokenizer.tokenize(lowercase_  )
     self.assertListEqual(lowercase_				,   lowercase_  )

     UpperCAmelCase_					:					List[Any]			     =    tokenizer.encode(lowercase_				,   add_special_tokens=lowercase_  )
     UpperCAmelCase_					:					Dict			     =    rust_tokenizer.encode(lowercase_				,   add_special_tokens=lowercase_  )
     self.assertListEqual(lowercase_				,   lowercase_  )

     UpperCAmelCase_					:					Optional[int]			     =    self.get_rust_tokenizer()
     UpperCAmelCase_					:					str			     =    tokenizer.encode(lowercase_  )
     UpperCAmelCase_					:					Optional[Any]			     =    rust_tokenizer.encode(lowercase_  )
     self.assertListEqual(lowercase_				,   lowercase_  )

     # With lower casing
     UpperCAmelCase_					:					Union[str, Any]			     =    self.get_tokenizer(do_lower_case=lowercase_  )
     UpperCAmelCase_					:					Tuple			     =    self.get_rust_tokenizer(do_lower_case=lowercase_  )

     UpperCAmelCase_					:					int			     =    "UNwant\u00E9d,running"

     UpperCAmelCase_					:					Dict			     =    tokenizer.tokenize(lowercase_  )
     UpperCAmelCase_					:					Optional[int]			     =    rust_tokenizer.tokenize(lowercase_  )
     self.assertListEqual(lowercase_				,   lowercase_  )

     UpperCAmelCase_					:					str			     =    tokenizer.encode(lowercase_				,   add_special_tokens=lowercase_  )
     UpperCAmelCase_					:					List[Any]			     =    rust_tokenizer.encode(lowercase_				,   add_special_tokens=lowercase_  )
     self.assertListEqual(lowercase_				,   lowercase_  )

     UpperCAmelCase_					:					str			     =    self.get_rust_tokenizer()
     UpperCAmelCase_					:					Dict			     =    tokenizer.encode(lowercase_  )
     UpperCAmelCase_					:					Optional[Any]			     =    rust_tokenizer.encode(lowercase_  )
     self.assertListEqual(lowercase_				,   lowercase_  )







  def        UpperCamelCase__					(		self  ):

     """simple docstring"""
     UpperCAmelCase_					:					Any			     =    BasicTokenizer()

     self.assertListEqual(tokenizer.tokenize("ah\u535A\u63A8zz"  )				,   ["ah", "\u535A", "\u63A8", "zz"]  )







  def        UpperCamelCase__					(		self  ):

     """simple docstring"""
     UpperCAmelCase_					:					int			     =    BasicTokenizer(do_lower_case=lowercase_  )

     self.assertListEqual(
         tokenizer.tokenize(" \tHeLLo!how  \n Are yoU?  "  )				,   ["hello", "!", "how", "are", "you", "?"]  )
     self.assertListEqual(tokenizer.tokenize("H\u00E9llo"  )				,   ["hello"]  )







  def        UpperCamelCase__					(		self  ):

     """simple docstring"""
     UpperCAmelCase_					:					List[str]			     =    BasicTokenizer(do_lower_case=lowercase_				,   strip_accents=lowercase_  )

     self.assertListEqual(
         tokenizer.tokenize(" \tHäLLo!how  \n Are yoU?  "  )				,   ["hällo", "!", "how", "are", "you", "?"]  )
     self.assertListEqual(tokenizer.tokenize("H\u00E9llo"  )				,   ["h\u00E9llo"]  )







  def        UpperCamelCase__					(		self  ):

     """simple docstring"""
     UpperCAmelCase_					:					Optional[int]			     =    BasicTokenizer(do_lower_case=lowercase_				,   strip_accents=lowercase_  )

     self.assertListEqual(
         tokenizer.tokenize(" \tHäLLo!how  \n Are yoU?  "  )				,   ["hallo", "!", "how", "are", "you", "?"]  )
     self.assertListEqual(tokenizer.tokenize("H\u00E9llo"  )				,   ["hello"]  )







  def        UpperCamelCase__					(		self  ):

     """simple docstring"""
     UpperCAmelCase_					:					List[Any]			     =    BasicTokenizer(do_lower_case=lowercase_  )

     self.assertListEqual(
         tokenizer.tokenize(" \tHäLLo!how  \n Are yoU?  "  )				,   ["hallo", "!", "how", "are", "you", "?"]  )
     self.assertListEqual(tokenizer.tokenize("H\u00E9llo"  )				,   ["hello"]  )







  def        UpperCamelCase__					(		self  ):

     """simple docstring"""
     UpperCAmelCase_					:					Optional[int]			     =    BasicTokenizer(do_lower_case=lowercase_  )

     self.assertListEqual(
         tokenizer.tokenize(" \tHeLLo!how  \n Are yoU?  "  )				,   ["HeLLo", "!", "how", "Are", "yoU", "?"]  )







  def        UpperCamelCase__					(		self  ):

     """simple docstring"""
     UpperCAmelCase_					:					Optional[Any]			     =    BasicTokenizer(do_lower_case=lowercase_				,   strip_accents=lowercase_  )

     self.assertListEqual(
         tokenizer.tokenize(" \tHäLLo!how  \n Are yoU?  "  )				,   ["HäLLo", "!", "how", "Are", "yoU", "?"]  )







  def        UpperCamelCase__					(		self  ):

     """simple docstring"""
     UpperCAmelCase_					:					str			     =    BasicTokenizer(do_lower_case=lowercase_				,   strip_accents=lowercase_  )

     self.assertListEqual(
         tokenizer.tokenize(" \tHäLLo!how  \n Are yoU?  "  )				,   ["HaLLo", "!", "how", "Are", "yoU", "?"]  )







  def        UpperCamelCase__					(		self  ):

     """simple docstring"""
     UpperCAmelCase_					:					Optional[int]			     =    BasicTokenizer(do_lower_case=lowercase_				,   never_split=["[UNK]"]  )

     self.assertListEqual(
         tokenizer.tokenize(" \tHeLLo!how  \n Are yoU? [UNK]"  )				,   ["HeLLo", "!", "how", "Are", "yoU", "?", "[UNK]"]  )







  def        UpperCamelCase__					(		self  ):

     """simple docstring"""
     UpperCAmelCase_					:					Optional[Any]			     =    ["[UNK]", "[CLS]", "[SEP]", "want", "##want", "##ed", "wa", "un", "runn", "##ing"]

     UpperCAmelCase_					:					str			     =    {}
     for i, token in enumerate(lowercase_  ):
        UpperCAmelCase_					:					str			     =    i
     UpperCAmelCase_					:					str			     =    WordpieceTokenizer(vocab=lowercase_				,   unk_token="[UNK]"  )

     self.assertListEqual(tokenizer.tokenize(""  )				,   []  )

     self.assertListEqual(tokenizer.tokenize("unwanted running"  )				,   ["un", "##want", "##ed", "runn", "##ing"]  )

     self.assertListEqual(tokenizer.tokenize("unwantedX running"  )				,   ["[UNK]", "runn", "##ing"]  )







  def        UpperCamelCase__					(		self  ):

     """simple docstring"""
     self.assertTrue(_is_whitespace(" "  )  )
     self.assertTrue(_is_whitespace("\t"  )  )
     self.assertTrue(_is_whitespace("\r"  )  )
     self.assertTrue(_is_whitespace("\n"  )  )
     self.assertTrue(_is_whitespace("\u00A0"  )  )

     self.assertFalse(_is_whitespace("A"  )  )
     self.assertFalse(_is_whitespace("-"  )  )







  def        UpperCamelCase__					(		self  ):

     """simple docstring"""
     self.assertTrue(_is_control("\u0005"  )  )

     self.assertFalse(_is_control("A"  )  )
     self.assertFalse(_is_control(" "  )  )
     self.assertFalse(_is_control("\t"  )  )
     self.assertFalse(_is_control("\r"  )  )







  def        UpperCamelCase__					(		self  ):

     """simple docstring"""
     self.assertTrue(_is_punctuation("-"  )  )
     self.assertTrue(_is_punctuation("$"  )  )
     self.assertTrue(_is_punctuation("`"  )  )
     self.assertTrue(_is_punctuation("."  )  )

     self.assertFalse(_is_punctuation("A"  )  )
     self.assertFalse(_is_punctuation(" "  )  )







  def        UpperCamelCase__					(		self  ):

     """simple docstring"""
     UpperCAmelCase_					:					List[Any]			     =    self.get_tokenizer()
     UpperCAmelCase_					:					List[str]			     =    self.get_rust_tokenizer()

     # Example taken from the issue https://github.com/huggingface/tokenizers/issues/340
     self.assertListEqual([tokenizer.tokenize(lowercase_  ) for t in ["Test", "\xad", "test"]]				,   [["[UNK]"], [], ["[UNK]"]]  )

     self.assertListEqual(
         [rust_tokenizer.tokenize(lowercase_  ) for t in ["Test", "\xad", "test"]]				,   [["[UNK]"], [], ["[UNK]"]]  )







  @slow
  def        UpperCamelCase__					(		self  ):

     """simple docstring"""
     UpperCAmelCase_					:					Optional[int]			     =    self.tokenizer_class.from_pretrained("google/mobilebert-uncased"  )

     UpperCAmelCase_					:					str			     =    tokenizer.encode("sequence builders"				,   add_special_tokens=lowercase_  )
     UpperCAmelCase_					:					Dict			     =    tokenizer.encode("multi-sequence build"				,   add_special_tokens=lowercase_  )

     UpperCAmelCase_					:					List[str]			     =    tokenizer.build_inputs_with_special_tokens(lowercase_  )
     UpperCAmelCase_					:					List[Any]			     =    tokenizer.build_inputs_with_special_tokens(lowercase_				,   lowercase_  )

     assert encoded_sentence == [101] + text + [102]
     assert encoded_pair == [101] + text + [102] + text_a + [102]







  def        UpperCamelCase__					(		self  ):

     """simple docstring"""
     for tokenizer, pretrained_name, kwargs in self.tokenizers_list:
        with self.subTest(F"""{tokenizer.__class__.__name__} ({pretrained_name})"""  ):
           UpperCAmelCase_					:					List[str]			     =    self.rust_tokenizer_class.from_pretrained(lowercase_				,   **lowercase_  )

           UpperCAmelCase_					:					Optional[int]			     =    F"""A, naïve {tokenizer_r.mask_token} AllenNLP sentence."""
           UpperCAmelCase_					:					Optional[int]			     =    tokenizer_r.encode_plus(
               lowercase_				,   return_attention_mask=lowercase_				,   return_token_type_ids=lowercase_				,   return_offsets_mapping=lowercase_				,   add_special_tokens=lowercase_				,   )

           UpperCAmelCase_					:					Tuple			     =    tokenizer_r.do_lower_case if hasattr(lowercase_				,   "do_lower_case"  ) else False
           UpperCAmelCase_					:					Any			     =    (
               [
                   ((0, 0), tokenizer_r.cls_token),
                   ((0, 1), "A"),
                   ((1, 2), ","),
                   ((3, 5), "na"),
                   ((5, 6), "##ï"),
                   ((6, 8), "##ve"),
                   ((9, 15), tokenizer_r.mask_token),
                   ((16, 21), "Allen"),
                   ((21, 23), "##NL"),
                   ((23, 24), "##P"),
                   ((25, 33), "sentence"),
                   ((33, 34), "."),
                   ((0, 0), tokenizer_r.sep_token),
               ]
               if not do_lower_case
               else [
                   ((0, 0), tokenizer_r.cls_token),
                   ((0, 1), "a"),
                   ((1, 2), ","),
                   ((3, 8), "naive"),
                   ((9, 15), tokenizer_r.mask_token),
                   ((16, 21), "allen"),
                   ((21, 23), "##nl"),
                   ((23, 24), "##p"),
                   ((25, 33), "sentence"),
                   ((33, 34), "."),
                   ((0, 0), tokenizer_r.sep_token),
               ]
           )

           self.assertEqual(
               [e[1] for e in expected_results]				,   tokenizer_r.convert_ids_to_tokens(tokens["input_ids"]  )  )
           self.assertEqual([e[0] for e in expected_results]				,   tokens["offset_mapping"]  )







  def        UpperCamelCase__					(		self  ):

     """simple docstring"""
     UpperCAmelCase_					:					Dict			     =    ["的", "人", "有"]
     UpperCAmelCase_					:					List[str]			     =    "".join(lowercase_  )
     for tokenizer, pretrained_name, kwargs in self.tokenizers_list:
        with self.subTest(F"""{tokenizer.__class__.__name__} ({pretrained_name})"""  ):
           UpperCAmelCase_					:					Any			     =    True
           UpperCAmelCase_					:					List[Any]			     =    self.tokenizer_class.from_pretrained(lowercase_				,   **lowercase_  )
           UpperCAmelCase_					:					Optional[Any]			     =    self.rust_tokenizer_class.from_pretrained(lowercase_				,   **lowercase_  )

           UpperCAmelCase_					:					Optional[Any]			     =    tokenizer_p.encode(lowercase_				,   add_special_tokens=lowercase_  )
           UpperCAmelCase_					:					List[str]			     =    tokenizer_r.encode(lowercase_				,   add_special_tokens=lowercase_  )

           UpperCAmelCase_					:					Optional[int]			     =    tokenizer_r.convert_ids_to_tokens(lowercase_  )
           UpperCAmelCase_					:					List[str]			     =    tokenizer_p.convert_ids_to_tokens(lowercase_  )

           # it is expected that each Chinese character is not preceded by "##"
           self.assertListEqual(lowercase_				,   lowercase_  )
           self.assertListEqual(lowercase_				,   lowercase_  )

           UpperCAmelCase_					:					Optional[int]			     =    False
           UpperCAmelCase_					:					List[Any]			     =    self.rust_tokenizer_class.from_pretrained(lowercase_				,   **lowercase_  )
           UpperCAmelCase_					:					str			     =    self.tokenizer_class.from_pretrained(lowercase_				,   **lowercase_  )

           UpperCAmelCase_					:					int			     =    tokenizer_r.encode(lowercase_				,   add_special_tokens=lowercase_  )
           UpperCAmelCase_					:					Optional[int]			     =    tokenizer_p.encode(lowercase_				,   add_special_tokens=lowercase_  )

           UpperCAmelCase_					:					str			     =    tokenizer_r.convert_ids_to_tokens(lowercase_  )
           UpperCAmelCase_					:					str			     =    tokenizer_p.convert_ids_to_tokens(lowercase_  )

           # it is expected that only the first Chinese character is not preceded by "##".
           UpperCAmelCase_					:					List[str]			     =    [
               F"""##{token}""" if idx != 0 else token for idx, token in enumerate(lowercase_  )
           ]
           self.assertListEqual(lowercase_				,   lowercase_  )
           self.assertListEqual(lowercase_				,   lowercase_  )








'''simple docstring'''

import os
import re
import warnings
from shutil import copyfile
from typing import List, Optional, Tuple

from ...tokenization_utils_fast import PreTrainedTokenizerFast
from ...utils import is_sentencepiece_available, logging


if is_sentencepiece_available():
							from .tokenization_ta import TaTokenizer
else:
							a  :				Dict									=  None


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

a  :				List[Any]									=  {'vocab_file': 'spiece.model', 'tokenizer_file': 'tokenizer.json'}

a  :				str									=  {
    'vocab_file': {
        't5-small': 'https://huggingface.co/t5-small/resolve/main/spiece.model',
        't5-base': 'https://huggingface.co/t5-base/resolve/main/spiece.model',
        't5-large': 'https://huggingface.co/t5-large/resolve/main/spiece.model',
        't5-3b': 'https://huggingface.co/t5-3b/resolve/main/spiece.model',
        't5-11b': 'https://huggingface.co/t5-11b/resolve/main/spiece.model',
    },
    'tokenizer_file': {
        't5-small': 'https://huggingface.co/t5-small/resolve/main/tokenizer.json',
        't5-base': 'https://huggingface.co/t5-base/resolve/main/tokenizer.json',
        't5-large': 'https://huggingface.co/t5-large/resolve/main/tokenizer.json',
        't5-3b': 'https://huggingface.co/t5-3b/resolve/main/tokenizer.json',
        't5-11b': 'https://huggingface.co/t5-11b/resolve/main/tokenizer.json',
    },
}


# TODO(PVP) - this should be removed in Transformers v5
a  :				List[Any]									=  {
    't5-small': 512,
    't5-base': 512,
    't5-large': 512,
    't5-3b': 512,
    't5-11b': 512,
}






class 						a				(   _lowerCamelCase     ):
				snake_case_      =		VOCAB_FILES_NAMES
				snake_case_      =		PRETRAINED_VOCAB_FILES_MAP
				snake_case_      =		PRETRAINED_POSITIONAL_EMBEDDINGS_SIZES
				snake_case_      =		["input_ids", "attention_mask"]
				snake_case_      =		TaTokenizer

				snake_case_      =		[]


				def __init__(		self    :					List[Any]       ,				lowercase_    :					int=None       ,				lowercase_    :					Dict=None       ,				lowercase_    :					Dict="</s>"       ,				lowercase_    :					List[Any]="<unk>"       ,				lowercase_    :					int="<pad>"       ,				lowercase_    :					int=100       ,				lowercase_    :					List[Any]=None       ,				**lowercase_    :					List[str]       ,				):
									# Add extra_ids to the special token list
									if extra_ids > 0 and additional_special_tokens is None:
														snake_case_									=				[F"<extra_id_{i}>" for i in range(lowercase_					)]
									elif extra_ids > 0 and additional_special_tokens is not None:
														# Check that we have the right number of extra special tokens
														snake_case_									=				len(set(filter(lambda lowercase_					: bool('''extra_id_''' in str(lowercase_					)					)       ,				lowercase_					)					)					)
														if extra_tokens != extra_ids:
																			raise ValueError(
																			    F"Both extra_ids ({extra_ids}) and additional_special_tokens ({additional_special_tokens}) are"
																			    ''' provided to T5Tokenizer. In this case the additional_special_tokens must include the extra_ids'''
																			    ''' tokens'''					)

									super().__init__(
									    lowercase_       ,				tokenizer_file=lowercase_       ,				eos_token=lowercase_       ,				unk_token=lowercase_       ,				pad_token=lowercase_       ,				extra_ids=lowercase_       ,				additional_special_tokens=lowercase_       ,				**lowercase_       ,				)

									snake_case_									=				vocab_file
									snake_case_									=				False if not self.vocab_file else True
									snake_case_									=				extra_ids


				@staticmethod
				def   A_ (		lowercase_    :					Optional[int]       ,				lowercase_    :					List[str]       ,				lowercase_    :					int					):
									if pretrained_model_name_or_path in TaTokenizerFast.max_model_input_sizes:
														snake_case_									=				TaTokenizerFast.max_model_input_sizes[pretrained_model_name_or_path]
														if init_max_model_length is not None and init_max_model_length != max_model_length:
																			return init_max_model_length
														elif init_max_model_length is None:
																			warnings.warn(
																			    '''This tokenizer was incorrectly instantiated with a model max length of'''
																			    F" {deprecated_max_model_length} which will be corrected in Transformers v5.\nFor now, this"
																			    ''' behavior is kept to avoid breaking backwards compatibility when padding/encoding with'''
																			    ''' `truncation is True`.\n- Be aware that you SHOULD NOT rely on'''
																			    F" {pretrained_model_name_or_path} automatically truncating your input to"
																			    F" {deprecated_max_model_length} when padding/encoding.\n- If you want to encode/pad to sequences"
																			    F" longer than {deprecated_max_model_length} you can either instantiate this tokenizer with"
																			    ''' `model_max_length` or pass `max_length` when encoding/padding.\n- To avoid this warning, please'''
																			    ''' instantiate this tokenizer with `model_max_length` set to your preferred value.'''       ,				lowercase_       ,				)

									return max_model_length


				def   A_ (		self    :					Optional[Any]       ,				lowercase_    :					str       ,				lowercase_    :					Optional[str] = None					):
									if not self.can_save_slow_tokenizer:
														raise ValueError(
														    '''Your fast tokenizer does not have the necessary information to save the vocabulary for a slow '''
														    '''tokenizer.'''					)

									if not os.path.isdir(lowercase_					):
														logger.error(F"Vocabulary path ({save_directory}) should be a directory"					)
														return
									snake_case_									=				os.path.join(
									    lowercase_       ,				(filename_prefix + '''-''' if filename_prefix else '''''') + VOCAB_FILES_NAMES['''vocab_file''']					)

									if os.path.abspath(self.vocab_file					) != os.path.abspath(lowercase_					):
														copyfile(self.vocab_file       ,				lowercase_					)
														logger.info(F"Copy vocab file to {out_vocab_file}"					)

									return (out_vocab_file,)


				def   A_ (		self    :					Optional[int]       ,				lowercase_    :					List[int]       ,				lowercase_    :					Optional[List[int]] = None					):
									snake_case_									=				token_ids_a + [self.eos_token_id]
									if token_ids_a is None:
														return self.prefix_tokens + token_ids_a
									else:
														snake_case_									=				token_ids_a + [self.eos_token_id]
														return self.prefix_tokens + token_ids_a + token_ids_a


				def   A_ (		self    :					int       ,				lowercase_    :					List[int]       ,				lowercase_    :					Optional[List[int]] = None					):
									snake_case_									=				[self.eos_token_id]

									if token_ids_a is None:
														return len(token_ids_a + eos					) * [0]
									return len(token_ids_a + eos + token_ids_a + eos					) * [0]


				def   A_ (		self    :					Dict					):
									return list(
									    set(filter(lambda lowercase_					: bool(re.search(R'''<extra_id_\d+>'''       ,				lowercase_					)					) is not None       ,				self.additional_special_tokens					)					)					)


				def   A_ (		self    :					Any					):
									return [self.convert_tokens_to_ids(lowercase_					) for token in self.get_sentinel_tokens()]

