+
    œ°³j” ã                   óÜ  € R t ^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RIH	t	 ^ RI
Ht ^ RIHt ^ RIHt ^ RIHtHt ^ RIHt ^ R	IHt ^ R
IHt ^ RIHtHt ^ RIHtH t H!t!H"t" ^ RI#H$t$ ^RI%H&t& ^RI'H(t( ^RI)H*t* ^RI+H,t, ^RI-H.t.H/t/H0t0H1t1H2t2H3t3H4t4 ^RI5H6t6H7t7H8t8H9t9 ]9Pt                  ! ];4      t<Rt=Rt>Rt?Rt@RtARtB].R,          t.R]R] R]!R]"/tCR]=R ]@/tD]7! ].4       ! R! R"]14      4       tE]EtFR# )#z‘
Tokenization classes for fast tokenizers (provided by HuggingFace's tokenizers library). For slow (python) tokenizers
see tokenization_utils.py
N)Údefaultdict)ÚIterable)Úcopyfile)ÚAny)Úis_offline_mode)Ú
AddedTokenÚ
processors)ÚEncoding)Ú	Tokenizer)ÚDecoder)ÚBPEÚUnigram)Ú
BpeTrainerÚUnigramTrainerÚWordLevelTrainerÚWordPieceTrainer)Úcached_file)ÚSpmConverter)Úconvert_gguf_tokenizer)Úis_tekken_vocab_filename)Úload_gguf_checkpoint)ÚINIT_TOKENIZER_DOCSTRINGÚBatchEncodingÚPreTokenizedInputÚPreTrainedTokenizerBaseÚ	TextInputÚTruncationStrategyÚgenerate_merges)ÚPaddingStrategyÚadd_end_docstringsÚhf_apiÚloggingztokenizer.jsonzspecial_tokens_map.jsonztokenizer_config.jsonztokenizer.modelzadded_tokens.jsonztiktoken.modelu¡  
        tokenizer_object ([`tokenizers.Tokenizer`]):
            A [`tokenizers.Tokenizer`] object from ðŸ¤— tokenizers to instantiate from. See [Using tokenizers from ðŸ¤—
            tokenizers](../fast_tokenizers) for more information.
        tokenizer_file ([`str`]):
            A path to a local JSON file representing a previously serialized [`tokenizers.Tokenizer`] object from ðŸ¤—
            tokenizers.
r   r   Ú	WordLevelÚ	WordPieceÚtokenizer_fileÚ
vocab_filec                   óÆ  a a€ ] tR t^Wt oRt]tRtRt]	RHR l4       t
]	V3R lR l4       t]	V3R lR l4       tV 3R	 lt]V3R
 lR l4       t]V3R lR l4       tRIV3R lR lltRJV3R lV 3R llltR t]R 4       t]R 4       t]P,                  R 4       t]P,                  R 4       tR t]V3R lR l4       tV3R lR lt]V3R lR l4       t]V3R lR l4       t]V3R  lR! l4       t]t]tV3R" lR# ltV3R$ lR% lt V3R& lR' lt!]V3R( lR) l4       t"]V3R* lR+ l4       t#RKV3R- lR. llt$V3R/ lR0 lt%V3R1 lR2 lt&RHV3R3 lR4 llt'RHV3R5 lR6 llt(RHV3R7 lR8 llt)RLV3R9 lR: llt*V3R; lR< lt+RR,],PZ                  ].P^                  R^ RRRRRRRRRRR,R3V3R= lR> llt0V3R? lR@ lt1RMV3RA lRB llt2RNV3RC lRD llt3RORE lt4]	RPRF l4       t5RGt6Vt7V ;t8# )QÚTokenizersBackenda5  
Base class for all fast tokenizers (wrapping HuggingFace tokenizers library).

Inherits from [`~tokenization_utils_base.PreTrainedTokenizerBase`].

Handles all the shared methods for tokenization and special tokens, as well as methods for
downloading/caching/loading pretrained tokenizers, as well as adding tokens to the vocabulary.

This class also contains the added tokens in a unified way on top of all tokenizers so we don't have to handle the
specific vocabulary augmentation methods of the various underlying dictionary structures (BPE, sentencepiece...).
NFc                ón  a€ \        V4      pVP                  RR4      pVed   \        P                  P	                  V4      '       d?   V \
        J g   RV P                  9  g	   V'       d   \        P                  ! V4      VR&   V# VEe?   \        P                  P	                  V4      '       Ed   \        VRR7      ;_uu_ 4       p\        P                  ! V4      pRRR4       XP                  R/ 4      P                  R4      pVR&9  dc   \        V4      p\        VR,          4      p	/ V	R
&   VR8X  d   . V	R&   W˜R&   . VR&   \        P                  ! \        P                  ! V4      4      p
M\        P                  ! V4      p
V
P                  VR&   V
P                   VR&   V
P"                  VR&   V
P"                  e   V
P"                  VR&   V
P                   e   V
P                   VR&   VP                  R4      pV'       d„   VP                  RR4      R8X  d   VR,          pM\%        V\&        4      '       g   V.pV FC  pVP                  R4      R8X  g   K  RV9   g   K$  ^ RIpVP+                  VR,          4      VR&    M	  VP                  R/ 4      P                  R
R4      pV P,                  f2   \%        V\&        4      '       d   \'        \/        \0        V4      4      pEM>V P,                  P2                  R	8X  d]   \%        V\&        4      '       dF   V'       d>   \%        V^ ,          \&        \0        34      '       d   V Uu. uF  p\1        V4      NK  	  ppMÇV P,                  P2                  R8X  d"   \5        V4       UUu/ uF	  w  ppVVbK  	  pppM‹V P,                  P2                  R8X  g   V P,                  P2                  R8X  dV   \%        V\&        4      '       d@   \5        V4       UUu/ uF(  w  pp\%        V\&        4      '       d
   V^ ,          MTVbK*  	  pppWãR
&   \7        V RR4      pRVP                  R/ 4      9   dy   V'       dq   VP2                  R8X  d`   VR,          R,          pV Uu. uF>  p\%        V\8        4      '       d   \1        VP;                  R4      4      M
\1        V4      NK@  	  ppVVR&   V# VP                  R4      pVP                  R4      pVP                  R
4      pVP                  R4      p\%        V\8        4      '       dZ   \        P                  P	                  V4      '       d5   \=        V4      '       d$   ^RIH p V! V4      pVPC                  4       VR&   V# \%        V\8        4      '       dŽ   \        P                  P	                  V4      '       di   VPE                  R4      '       dR   \        P                  PG                  V4      \H        8w  d    V PK                  VV4      pV# V PS                  VV4      pV# VfJ   \%        V\8        4      '       d4   \        P                  P	                  V4      '       d   VVR
&   VR
,          pVfJ   \%        V\8        4      '       d4   \        P                  P	                  V4      '       d   VVR&   VR,          pVfš   V P,                  eŒ   V P,                  P2                  R8X  dq   \%        V\         4      '       d[   R# V3R$ llo. R'Op\U        4       pV F+  pVV9   g   K  VPW                  S! VV,          .4      4       K-  	  \Y        VVR%7      pVVR&   V#   + '       g   i     EL„; iu upi u uppi u uppi u upi   \L         d(   p\N        PQ                  R T R!T R"24        Rp?EL¤Rp?ii ; i)(z’
Build a `tokenizers.Tokenizer` backend from the available serialization files (tokenizer.json, sentencepiece
models, tekken.json, vocab/merges).
r$   NÚ__init__Útokenizer_objectúutf-8©ÚencodingÚmodelÚtyper   Úvocabr   ÚmergesÚadded_tokensÚpost_processorÚtokenizer_paddingÚtokenizer_truncationÚ_json_truncationÚ_json_paddingÚ
normalizerÚSequenceÚnormalizersÚPrecompiledÚprecompiled_charsmapÚ_spm_precompiled_charsmapr"   r#   Ú r%   Úmerges_file)ÚMistralConverterú.modelz+Could not extract SentencePiece model from z$ using sentencepiece library due to z%. Falling back to TikToken extractor.c                ó\   € V ^8„  d   QhR\         \        ,          R\        \        ,          /# )é   ÚvaluesÚreturn)r   r   ÚlistÚstr)Úformats   "Úk/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/tokenization_utils_tokenizers.pyÚ__annotate__Ú@TokenizersBackend.convert_to_native_format.<locals>.__annotate__ñ   s"   € ÷ 	!ñ 	!¬X´c­]ð 	!¼tÄC½yñ 	!ó    c                 óÈ   <€ . pV  FX  pVf   K	  \        V\        \        34      '       d   VP                  S! V4      4       K>  VP	                  \        V4      4       KZ  	  V# ©N)Ú
isinstancerF   ÚtupleÚextendÚappendrG   )rD   Ú	collectedÚvalÚ_iter_special_tokenss   &  €rI   rU   ÚHTokenizersBackend.convert_to_native_format.<locals>._iter_special_tokensñ   sY   ø€ Ø')�	Û!�CØ’{Ù Ü! #¬¬e }×5Ò5Ø!×(Ñ(Ñ)=¸cÓ)BÖCà!×(Ñ(¬¨S«Ö2ñ "ð !Ð rL   )Úskip_tokens)Nr   )	Ú	pad_tokenÚ	unk_tokenÚ	bos_tokenÚ	eos_tokenÚ	sep_tokenÚ	cls_tokenÚ
mask_tokenÚadditional_special_tokensÚextra_special_tokens)-ÚdictÚpopÚosÚpathÚisfiler'   Ú__dict__ÚTokenizerFastÚ	from_fileÚopenÚjsonÚloadÚgetÚfrom_strÚdumpsr3   ÚpaddingÚ
truncationrO   rF   Úbase64Ú	b64decoder.   ÚmaprP   Ú__name__Ú	enumerateÚgetattrrG   Úsplitr   Úintegrations.mistral.tokenizerr@   Ú	convertedÚendswithÚbasenameÚTIKTOKEN_LEGACY_NAMEÚ_convert_from_sentencepieceÚ	ExceptionÚloggerÚwarningÚ_convert_from_tiktokenÚsetÚupdater   )ÚclsÚtrust_remote_codeÚkwargsÚlocal_kwargsÚfast_tokenizer_fileÚtokenizer_handleÚtokenizer_jsonÚ
model_typeÚminimal_tokenizer_jsonÚminimal_modelÚtok_from_fileÚnormalizer_configr8   rq   r0   ÚitemÚiÚtokenr1   Úmerger%   r?   r@   Ú	converterÚeÚspecial_tokens_keysrW   ÚkeyrU   s   &&,                         @rI   Úconvert_to_native_formatÚ*TokenizersBackend.convert_to_native_formati   s¡  ø€ ô ˜F“|ˆØ*×.Ñ.Ð/?ÀÓFÐð  Ò+Ü—‘—‘Ð2×3Ò3ØÔ)Ó)¨Z¸s¿|¹|Ô-K×O`ä/<×/FÒ/FÐGZÓ/[ˆLÐ+Ñ,ØÐØ Ó,´·±·±Ð@S×1TÓ1Tô Ð)°G×<Õ<Ð@PÜ!%§¢Ð+;Ó!<�÷ =ð (×+Ñ+¨G°RÓ8×<Ñ<¸VÓDˆJØÐ!2Ô2Ü)-¨nÓ)=Ð&Ü $ ^°GÕ%<Ó =�Ø)+�˜gÑ&Ø Ô&Ø.0�M (Ñ+Ø2? wÑ/Ø9;Ð& ~Ñ6Ü -× 6Ò 6´t·z²zÐBXÓ7YÓ Z‘ä -× 7Ò 7Ð8KÓ L�à-:×-IÑ-IˆLÐ)Ñ*Ø0=×0EÑ0EˆLÐ,Ñ-Ø3@×3KÑ3KˆLÐ/Ñ0ð ×'Ñ'Ò3Ø3@×3KÑ3K�Ð/Ñ0Ø×$Ñ$Ò0Ø0=×0EÑ0E�˜_Ñ-ð !/× 2Ñ 2°<Ó @Ðß Ø$×(Ñ(¨°Ó6¸*ÔDØ(9¸-Õ(HÑ%Ü#Ð$5´t×<Ò<Ø):Ð(;Ð%Û"3�JØ!—~‘~ fÓ-°Ö>ÐCYÐ]gÖCgÛ%àDJ×DTÑDTØ&Ð'=Õ>óE˜Ð%@ÑAñ ñ #4ð #×&Ñ& w°Ó3×7Ñ7¸ÀÓFˆEØ�y‰yÒ Ü˜e¤T×*Ò*Ü ¤¤U¨EÓ!2Ó3�EùØ—‘×#Ñ# yÔ0Ü˜e¤T×*Ò*¯u¼ÀEÈ!ÅHÌtÔUZÈm×9\Ò9\Ù5:Ó;±U¨TœU 4ž[±U�EÐ;øØ—‘×#Ñ# {Ô2Ü2;¸EÔ2BÔCÑ2B¡h a¨˜ šÑ2B�ÑC�Ø—‘×#Ñ# uÔ,°·	±	×0BÑ0BÀkÔ0QÜ˜e¤T×*Ò*Ü_hÐinÔ_oÔpÑ_oÑS[ÐSTÐV[¬°E¼4×)@Ò)@˜U 1žXÀeÈQÒNÑ_o�EÑpØ$)˜Ñ!ä   g¨tÓ4ˆJØ˜>×-Ñ-¨g°rÓ:Ô:Ç
Èz×ObÑObÐfkÔOkØ'¨Õ0°Õ:�ÙkqÓrÑkqÐbg´ZÀÄs×5KÒ5Kœ% §¡¨CÓ 0Ô1ÔQVÐW\ÓQ]Ò]Ñkq�ÐrØ)/�˜XÑ&àÐà!×%Ñ% lÓ3ˆ
Ø"×&Ñ& }Ó5ˆØ× Ñ  Ó)ˆØ×!Ñ! (Ó+ˆô �j¤#×&Ò&¬2¯7©7¯>©>¸*×+EÒ+EÔJbÐcm×JnÒJnÝHá(¨Ó4ˆIØ/8×/BÑ/BÓ/DˆLÐ+Ñ,ØÐô �j¤#×&Ò&¬2¯7©7¯>©>¸*×+EÒ+EÈ*×J]ÑJ]Ð^f×JgÒJgä�w‰w×Ñ 
Ó+Ô/CÔCðØ#&×#BÑ#BÀ:È|Ó#\�LØ'Ð'ð ×5Ñ5°jÀ,ÓOˆLØÐð Š=œZ¨
´C×8Ò8¼R¿W¹W¿^¹^ÈJ×=WÒ=WØ$.ˆL˜Ñ!Ø  Õ)ˆEØŠ>œj¨´c×:Ò:¼r¿w¹w¿~¹~Èk×?ZÒ?ZØ%0ˆL˜Ñ"Ø! (Õ+ˆFð Š>˜cŸi™iÒ3¸¿	¹	×8JÑ8JÈeÔ8SÔXbÐchÔjn×XoÒXo÷	!ð 	!ò
#Ðô %(£EˆKÛ*�Ø˜,Ö&Ø×&Ñ&Ñ';¸\È#Õ=NÐ<OÓ'PÖQñ +ô % U¸ÔDˆFØ%+ˆL˜Ñ"ØÐ÷c =×<Ð<üòx <ùãCùó qùò søô2 !ô Ü—N‘NØEÀjÀ\ð RØ˜3ÐCðE÷ò ûðús=   Ã]Í	],Î	]1Ï6.]7Ñ<A]=×7^ Ý])	Þ^4Þ^/Þ/^4c                óX   <€ V ^8„  d   QhRS[ RS[S[ S[3,          RS[S[ S[3,          /# ©rC   r%   r‡   rE   ©rG   ra   r   )rH   Ú__classdict__s   "€rI   rJ   ÚTokenizersBackend.__annotate__  s7   ø€ ÷ !ñ !±ð !Á4ÉÉSÈÅ>ð !ÑVZÑ[^Ñ`cÐ[cÕVdñ !rL   c           	     ó  € ^RI Hp VP                  R4      ;'       g    / P                  4        UUu/ uF9  w  rE\	        V4      \        V\        4      '       d
   VR,          M
\        V4      bK;  	  pppVP                  R4      ;'       g    . p\        V\        4      '       d   \        VP                  4       4      p\        VP                  V4      4      pV'       d   \        VP                  4       4      M^ p	W˜8¼  de   \        W‰^,           4       U
u. uF  p
VP                  V
RV
 R24      NK  	  pp
\        V4      pV F  pWÜ9  g   K  VP                  V4       K  	  TpV! WR7      pVP!                  4       VR&   V# u uppi u up
i )	z8Path to a vocab file and a list of extra special tokens.)ÚTikTokenConverterÚadded_tokens_decoderÚcontentr`   z<|reserved_token_z|>)r%   r`   r*   )Úconvert_slow_tokenizerr    rl   ÚitemsÚintrO   ra   rG   rF   ÚkeysÚlenÚload_tiktoken_bpeÚmaxÚranger‚   rR   ry   )r„   r%   r‡   r    Útoken_idr’   r¡   r`   Úbase_vocab_sizeÚmax_added_token_idÚindexÚ
new_extrasÚset_new_extrasÚspecial_tokenr”   s   &&&            rI   r�   Ú(TokenizersBackend._convert_from_tiktoken  sˆ  € õ 	>ð
 %1×$4Ñ$4Ð5KÓ$L×$RÐ$RÐPR×#YÑ#YÔ#[ô0
á#[‘�ô �‹M¬z¸%Ä×/FÒ/F˜5 Ö+ÌCÐPUËJÒVÙ#[ð 	ñ 0
ð
 +7×*:Ñ*:Ð;QÓ*R×*XÐ*XÐVXÐÜÐ*¬D×1Ò1Ü#'Ð(<×(AÑ(AÓ(CÓ#DÐ ô Ð/×AÑAÀ*ÓMÓNˆ÷ BVœSÐ!5×!:Ñ!:Ó!<Ô=Ð[\ÐØÔ0ô # ?ÈÕ4JÔKóáK�Eð %×(Ñ(¨Ð2CÀEÀ7È"Ð0MÖNÙKð ð ô ! ›_ˆNÛ!5�Ø Ö6Ø×%Ñ% mÖ4ñ "6ð $.Ð á%°Ôgˆ	Ø+4×+>Ñ+>Ó+@ˆÐ'Ñ(ØÐùó90
ùò s   ³?FÄF
c                óX   <€ V ^8„  d   QhRS[ RS[S[ S[3,          RS[S[ S[3,          /# r›   rœ   )rH   r�   s   "€rI   rJ   rž   5  s8   ø€ ÷ 9ñ 9±Sð 9ÉÉSÑRUÈXÍð 9Ñ[_Ñ`cÑehÐ`hÕ[iñ 9rL   c                ó–  € ^RI Hp V! V4      pVP                  ! V P                  3/ VB p ^RI Hp VP                  V P                  4      pVe%   \        VR4      '       d   VP                  ! R/ VB p\        T R4      '       d   T P                  ! R/ TB pR	T9  Edã   T \        J g   R
T P                  9  EdÇ   TP                  RR4      pTP                  RR4      p	TP                  R4      ;'       g    / p
Te�   T
'       d•   TP!                  4        UUu/ uF  w  r¼YËbK	  	  pppT
P!                  4        F]  w  rÎ\#        T4      p\%        T4      pTP                  T4      pT'       g   K6  Yþ8w  g   K>  Yè9  g   KF  TP                  T4      YŽ&   YíT&   K_  	  \&        P(                  ! TP*                  TT	R7      pTeÁ   TTR	&   TP*                  P,                  pTP.                  ^ 8¼  d'   TP1                  RTP2                  ;'       g    R4       TP4                  ^ 8¼  d'   TP1                  RTP6                  ;'       g    R4       TP8                  ^ 8¼  d'   TP1                  RTP:                  ;'       g    R4       T#   \         d2   p\        P                  RT P                   RT R24        Rp?ELGRp?ii ; iu uppi )é   )ÚSentencePieceExtractor)ÚSLOW_TO_FAST_CONVERTERSNÚconvert_from_spmz,Could not reorder vocab using converter for z due to z/. Falling back to raw SentencePiece extraction.Úconvert_from_spm_modelr*   r)   r0   r1   r¡   )Úprotor0   r1   rZ   ú<s>r[   ú</s>rY   z<unk>© )r£   r¶   Úextractr.   r·   rl   rt   Úhasattrr¸   r~   r   r€   r¹   r'   rf   rb   r¤   r¥   rG   r   Úbuild_tokenizer_from_spm_protorº   Útrainer_specÚbos_idÚ
setdefaultÚ	bos_pieceÚeos_idÚ	eos_pieceÚunk_idÚ	unk_piece)r„   r%   r‡   r¶   Ú	extractorr·   Úconverter_classr•   r0   r1   r¡   r’   r«   Úid_to_tokenÚ	new_tokenÚcurrent_tokenr*   Ú
proto_specs   &&&               rI   r}   Ú-TokenizersBackend._convert_from_sentencepiece4  s�  € åBñ +¨:Ó6ˆ	Ø ×(Ò(¨¯©ÑC°lÑCˆð		ÝGà5×9Ñ9¸#¿,¹,ÓGˆOØÒ*¬w°ÐHZ×/[Ò/[Ø.×?Ò?ÑOÀ,ÑO�ô
 �3Ð0×1Ò1Ø×5Ò5ÑE¸ÑEˆLð
  \Õ1°sÔ>OÓ7OÐS]Ðeh×eqÑeqÕSqØ ×$Ñ$ W¨dÓ3ˆEØ!×%Ñ% h°Ó5ˆFð $0×#3Ñ#3Ð4JÓ#K×#QÐ#QÈrÐ ØÒ ×%9ØFKÇkÁkÄmÔTÁm±?°5˜xšÁm�ÑTØ+?×+EÑ+EÖ+GÑ'�HÜ" 8›}�HÜ # I£�IØ$/§O¡O°HÓ$=�Mß$‘}¨Ö)CÈ	ÖH^Ø+0¯9©9°]Ó+C˜Ñ(Ø09 HÓ-ñ ,Hô  ,×JÒJØ—o‘oØØô Ðð
  Ò+Ø3C�Ð/Ñ0ð 'Ÿ_™_×9Ñ9�
Ø×$Ñ$¨Ô)Ø ×+Ñ+¨K¸×9MÑ9M×9VÐ9VÐQVÔWØ×$Ñ$¨Ô)Ø ×+Ñ+¨K¸×9MÑ9M×9WÐ9WÐQWÔXØ×$Ñ$¨Ô)Ø ×+Ñ+¨K¸×9MÑ9M×9XÐ9XÐQXÔYØÐøôW ô 	Ü�N‰NØ>¸s¿|¹|¸nÈHÐUVÐTWð  XGð  H÷ò ûð	üó" Us   ­A	J ÄKÊKÊ&J=Ê=Kc           
     óŽ  <€ VP                  R R4      pVP                  RR4      pVP                  RR4       VP                  RR4      pVP                  RR4      pVP                  RR4      pVP                  R/ 4      pVP                  RR	4      p	VP                  R
4      p
VP                  R4      pVP                  R4      pRpVe   \        P                  ! V4      pEMVe>   \        P
                  P                  V4      '       d   \        P                  ! V4      pEMÝVe¾   ^RI	H
pHpHp \        VP                  RR4      V3/ VB pV! V4      w  ppVR,          V9   d   V! V4      w  pppM-\        V4      pVR,          R,          pVR,          pVR,          p\        VV4      w  ppVP!                  V4       \#        V4      ^ 8”  d   VP!                  V4       EMV P$                  fö   Veò   VeX   \'        V\(        4      '       d   TM%\+        V4       UUUu/ uF  w  pw  ppVVbK  	  upppp\        \-        VVRRR7      4      pM¯\'        V\(        4      '       d   \        \-        V. RRR7      4      pM€\'        V\.        4      '       dQ   V'       dI   \'        V^ ,          \0        \.        34      '       d&   \        \3        W²P                  R^ 4      R7      4      pMV P$                  f   \5        R4      hVf7   Vf3   V P$                  f%   VP7                  RR4       VP7                  RR4       Ve   WÐn        V P$                  f   \5        R4      hVP                  RR4      ;'       g!    V P$                  P8                  ;'       g    TpVe‚   V P$                  P:                  ! R9/ VB  VP7                  R VR ,          4       VP7                  R!VR",          4       VP7                  R#VR#,          4       VP7                  R$VR%,          4       MV P$                  P=                  4        VP                  R&R4      ;'       g!    V P$                  P>                  ;'       g    TpVeš   V P$                  P@                  ! R9/ VB  VP7                  R'VR',          4       VP7                  R(VR),          4       VP7                  R*VR",          4       VP7                  R VR+,          4       VP7                  R,VR,,          4       R-V9  d   R.VR-&   R/V9   ;'       g    R0V9   pVP                  R/R	4      V n!        VP                  R0R	4      V n"        VP                  R1R4      ;p'       d   VV P$                  n#        T;'       g    V P$                  PF                  RJ V n$        \J        S*V `˜  ! R9/ VB  V
e   W n'        W�n(        V PR                  V P$                  n*        V PV                   U u0 uF  p \Y        \[        V 4      4      kK  	  p!p \]        VP_                  4       R2 R37       U"U u. uF#  w  p"p \Y        \[        V 4      4      V!9  g   K!  V NK%  	  p#p"p \/        V P`                  Pc                  4       4      V# U u. uF  p \e        V 4      NK  	  up ,           p$V Pf                  Pi                  4        F5  p%V%f   K	  \e        V%4      V$9  g   K  V%V#9  g   K$  V#Pk                  V%4       K7  	  V Pl                   F/  p \e        V 4      V$9  g   K  V V#9  g   K  V#Pk                  V 4       K1  	  \#        V#4      ^ 8”  dÕ   . p&V Pf                  Pi                  4        U'u. uF  p'V''       g   K  \e        V'4      NK  	  p(p'V# Fw  p \'        V \d        4      '       d   \o        V RR47      p M?\'        V \n        4      '       d*   V Pp                  '       g   \e        V 4      V(9   d   RV n8        V&Pk                  V 4       Ky  	  V&'       d   V Ps                  V&4        V P$                  Pu                  4       p)V)R58”  d‡   \y        V P$                  R6R4      en   VP                  RR4       V Pz                  ! V P$                  V P|                  P                  RR4      3R7V P|                  R8VP                  R8R4      /VB V n        V PH                  ;'       g    V P$                  PF                  RJ V n$        V PH                  '       d   V P                  4        R# R# u upppi u up i u up p"i u up i u up'i   \v         d    ^ p) ELi ; i):r6   Nr7   r=   r*   Ú	gguf_filer$   r¡   Úadd_prefix_spaceFr%   r0   r1   )ÚGGUF_TOKENIZER_ARCHSÚget_gguf_tokenizerÚread_gguf_metadataÚname_or_pathÚ zgeneral.architectureÚconfigr‹   Ú	tokenizerÚtokenizer_configT)r0   r1   Úfuse_unkÚdropoutrÇ   )r0   rÇ   a9  Couldn't instantiate the backend tokenizer from one of: 
(1) a `tokenizers` library serialization file, 
(2) a slow tokenizer instance to convert or 
(3) an equivalent slow tokenizer class to instantiate and convert. 
You need to have sentencepiece or tiktoken installed to convert a slow tokenizer to a fast one.rZ   r»   r[   r¼   z3The backend tokenizer is not correctly initialized.r5   Ú
max_lengthÚtruncation_sideÚ	directionÚstrideÚtruncation_strategyÚstrategyr4   rX   Úpad_token_type_idÚpad_type_idÚpadding_sideÚlengthÚpad_to_multiple_ofÚbackendÚ
tokenizersÚadd_bos_tokenÚadd_eos_tokenr3   c                 ó   € V ^ ,          # ©é    r½   )Úxs   &rI   Ú<lambda>Ú,TokenizersBackend.__init__.<locals>.<lambda>â  s   € ÐSTÐUVÖSWrL   ©r—   )Úspeciali † Úpre_tokenizerÚinit_kwargsÚfix_mistral_regexr½   )@rb   rl   ÚcopyÚdeepcopyrc   rd   re   rg   rh   Úintegrations.ggufrÓ   rÔ   rÕ   r   r   r   rƒ   r§   Ú
_tokenizerrO   ra   ru   r   rF   rP   r   Ú
ValueErrorrÃ   rp   Úenable_truncationÚno_truncationro   Úenable_paddingÚ_add_bos_tokenÚ_add_eos_tokenr3   Ú_should_update_post_processorÚsuperr)   r%   rÒ   Úsplit_special_tokensÚencode_special_tokensr¡   ÚhashÚreprÚsortedr¤   Úadded_tokens_encoderr¦   rG   Ú_special_tokens_maprD   rR   Ú_extra_special_tokensr   ró   Ú
add_tokensÚget_vocab_sizeÚNotImplementedErrorrv   Ú_patch_mistral_regexrõ   Úupdate_post_processor)+ÚselfÚargsr†   r6   r7   r*   rÑ   rˆ   r¡   rÒ   r%   r0   r1   Úfast_tokenizerrÓ   rÔ   rÕ   Ú	gguf_pathÚmetadataÚ_ÚarchitectureÚtokenizer_dictrÚ   Ú
gguf_paramÚadditional_kwargsr‘   ÚwÚ
vocab_dictÚ_truncationÚ_paddingÚexplicit_bos_eos_in_kwargsr3   r’   Úadded_tokens_decoder_hashr®   Útokens_to_addÚencoderÚspecial_token_valueÚtokensÚtÚall_named_tokensÚ
vocab_sizeÚ	__class__s+   &*,                                       €rI   r)   ÚTokenizersBackend.__init__p  s  ø€ ð "Ÿ:™:Ð&8¸$Ó?ÐØŸ
™
 ?°DÓ9ˆð 	�
‰
Ð.°Ô5à!Ÿ:™:Ð&8¸$Ó?ÐØ—J‘J˜{¨DÓ1ˆ	Ø$Ÿj™jÐ)9¸4Ó@Ðà%Ÿz™zÐ*@À"ÓEÐà!Ÿ:™:Ð&8¸%Ó@ÐØ—Z‘Z Ó-ˆ
à—
‘
˜7Ó#ˆØ—‘˜HÓ%ˆàˆØÒ'Ü!Ÿ]š]Ð+;Ó<ŠNØ Ò,´·±·±Ð@S×1TÒ1Tä*×4Ò4Ð5HÓIŠNØÒ"çgÑgä# F§J¡J¨~¸rÓ$BÀIÑXÐQWÑXˆIá,¨YÓ7‰KˆH�aØÐ.Õ/Ð3GÔGÙASÐT]ÓA^Ñ>�˜nÑ.>ä1°)Ó<�
Ø)¨(Õ3°LÕA�Ø!+¨KÕ!8�Ø#-Ð.@Õ#AÐ Ü0FÀ|ÐUcÓ0dÑ-ˆNÐ-Ø�M‰MÐ*Ô+ÜÐ$Ó%¨Ô)Ø—‘Ð/Ô0ùØ�_‰_Ò$¨Ò):àÒ!Ü&0°¼×&=Ò&=™UÔZcÐdiÔZjÕCkÑZjÉYÈQÑPVÐQRÐTUÀAÀqÂDÑZjÓCk�
Ü!.¬s¸ÈFÐ]aÐkoÔ/pÓ!q‘Ü˜E¤4×(Ò(Ü!.¬s¸ÀrÐTXÐbfÔ/gÓ!h‘Ü˜E¤4×(Ò(¯U´zÀ%ÈÅ(ÌUÔTXÈM×7ZÒ7ZÜ!.¬w¸UÏ:É:ÐV^Ð`aÓKbÔ/cÓ!d�øØ�_‰_Ò$Üðróð ð Ò&Ð+;Ò+CÈÏÉÒH_Ø×Ñ˜k¨5Ô1Ø×Ñ˜k¨6Ô2àÒ%Ø,ŒOà�?‰?Ò"ÜÐRÓSÐSà—j‘jÐ!7¸Ó>×pÐpÀ$Ç/Á/×B\ÑB\×pÐpÐ`pˆØÒ"Ø�O‰O×-Ò-Ñ<°Ò<Ø×Ñ˜l¨K¸Õ,EÔFØ×ÑÐ/°¸[Õ1IÔJØ×Ñ˜h¨°HÕ(=Ô>Ø×ÑÐ3°[ÀÕ5LÕMà�O‰O×)Ñ)Ô+à—:‘:Ð1°4Ó8×dÐd¸D¿O¹O×<SÑ<S×dÐdÐWdˆØÒØ�O‰O×*Ò*Ñ6¨XÒ6Ø×Ñ˜k¨8°KÕ+@ÔAØ×ÑÐ1°8¸MÕ3JÔKØ×Ñ˜n¨h°{Õ.CÔDØ×Ñ˜l¨H°XÕ,>Ô?Ø×ÑÐ2°HÐ=QÕ4RÔSð ˜FÔ"Ø ,ˆF�9Ñà%4¸Ñ%>×%[Ð%[À/ÐU[ÑB[Ð"Ø$Ÿj™j¨¸%Ó@ˆÔØ$Ÿj™j¨¸%Ó@ˆÔØ#ŸZ™ZÐ(8¸$Ó?Ð?ˆ>Ö?Ø-;ˆD�O‰OÔ*Ø-G×-qÐ-qÈ4Ï?É?×KiÑKiÐmqÐKqˆÔ*ä‰ÒÑ"˜6Ò"àÒ!Ø(ŒOà 0ÔØ04×0IÑ0Iˆ�‰Ô-àDH×D]ÒD]Ó$^ÑD]¸5¤T¬$¨u«+Ö%6ÑD]Ð!Ð$^ô !'Ð';×'AÑ'AÓ'CÉÕ Xô
á X‘��uÜ”D˜“KÓ Ð(AÑA÷ ˆEÙ Xð 	ñ 
ô
 �t×0Ñ0×5Ñ5Ó7Ó8ÑTaÓ;bÑTaÈ5¼CÀ¾JÑTaÑ;bÕbˆð $(×#;Ñ#;×#BÑ#BÖ#DÐØ"Ò*ÙÜÐ&Ó'¨wÖ6Ð;NÐVcÖ;cØ×$Ñ$Ð%8Ö9ñ	 $Eð ×/Ô/ˆEÜ�5‹z Ö(¨U¸-Ö-GØ×$Ñ$ UÖ+ñ 0ô ˆ}Ó Ô!ØˆFØ04×0HÑ0H×0OÑ0OÔ0QÓWÑ0Q¨1ÔUV¤¤ A¦Ñ0QÐÐWÛ&�Ü˜e¤S×)Ò)ä& u°dÔ;‘EÜ ¤z×2Ò2à Ÿ=Ÿ=˜=¬S°«ZÐ;KÔ-KØ(,˜œØ—‘˜eÖ$ñ '÷ à—‘ Ô'ð	ØŸ™×7Ñ7Ó9ˆJð
 ˜Ô¤7¨4¯?©?¸OÈTÓ#RÒ#^Ø�J‰J�{ DÔ)Ø"×7Ò7Ø—‘Ø× Ñ ×$Ñ$ ^°TÓ:ñð !×,Ñ,ðð #)§*¡*Ð-@À$Ó"Gð	ð
 ñˆDŒOð ×.Ñ.×XÐX°$·/±/×2PÑ2PÐTXÐ2Xð 	Ô*ð ×-×-Ð-Ø×&Ñ&Ö(ñ .ùôo Dlùò~ %_ùó
ùò
 <cùò"  Xøô  #ô 	Ø‹Jð	ús<   È"d×5dØ3d#Ùd#Úd)Ý"
d.Ý1d.àd3 ä3eåec                ó    <€ V ^8„  d   QhRS[ /# ©rC   rE   ©Úbool)rH   r�   s   "€rI   rJ   rž     s   ø€ ÷ ñ ™ñ rL   c                ó   € R # )Tr½   ©r  s   &rI   Úis_fastÚTokenizersBackend.is_fast  s   € árL   c                ó    <€ V ^8„  d   QhRS[ /# r*  r+  )rH   r�   s   "€rI   rJ   rž     s   ø€ ÷ ñ ©ñ rL   c                ó  € RV P                   9   dx   V P                   R,          P                  R4      '       dP   \        V R4      '       d<   V P                  '       d*   \        P
                  P                  V P                  4      # R# R# )z´
`bool`: Whether or not the slow tokenizer can be saved. For a sentencepiece based slow tokenizer, this
can only be `True` if the original `"sentencepiece.model"` was not deleted.
r%   rA   FT)Úvocab_files_namesrz   r¿   r%   rc   rd   re   r.  s   &rI   Úcan_save_slow_tokenizerÚ)TokenizersBackend.can_save_slow_tokenizer  s`   € ð ˜4×1Ñ1Ô1°d×6LÑ6LÈ\Õ6Z×6cÑ6cÐdl×6mÒ6mÜ�t˜\×*Ò*¨t¯¯¨ä—w‘w—~‘~ d§o¡oÓ6Ð6ÙárL   c                óJ   <€ V ^8„  d   QhRS[ RS[ R,          RS[S[ ,          /# )rC   Úsave_directoryÚfilename_prefixNrE   )rG   rP   )rH   r�   s   "€rI   rJ   rž   ,  s-   ø€ ÷ !ñ !©cð !ÁCÈ$ÅJð !ÑZ_Ñ`cÕZdñ !rL   c                óÎ  € \         P                  P                  V4      '       g   \        P	                  R V R24       R# \         P                  P                  Y'       d
   VR,           MR\        R,          ,           4      p\         P                  P                  V P                  4      \         P                  P                  V4      8w  d   \        V P                  V4       V3# )zVocabulary path (z) should be a directoryNÚ-r×   r%   )
rc   rd   Úisdirr   ÚerrorÚjoinÚVOCAB_FILES_NAMESÚabspathr%   r   )r  r7  r8  Úout_vocab_files   &&& rI   Úsave_vocabularyÚ!TokenizersBackend.save_vocabulary,  s›   € Ü�w‰w�}‰}˜^×,Ò,Ü�L‰LÐ,¨^Ð,<Ð<SÐTÔUÙÜŸ™Ÿ™Ø¶o˜_¨sÖ2È2ÔQbÐcoÕQpÕpó
ˆô �7‰7�?‰?˜4Ÿ?™?Ó+¬r¯w©w¯©¸~Ó/NÔNÜ�T—_‘_ nÔ5àÐ Ð rL   c                ó    <€ V ^8„  d   QhRS[ S[P                  ,          RS[R,          RS[ R,          RS[RS[ R,          RS[S[ R3,          /# )	rC   r7  Úlegacy_formatNr8  Úpush_to_hubÚsave_formatrE   .)rG   rc   ÚPathLiker,  rP   )rH   r�   s   "€rI   rJ   rž   9  sl   ø€ ÷ B
ñ B
á™bŸk™kÕ)ðB
ñ ˜d•{ðB
ñ ˜t�ð	B
ñ
 ðB
ñ ˜4•ZðB
ñ 
‰s�Cˆx�ñB
rL   c           	     ón  <€ VR9  d   \        RV: R24      hVR8X  Ed    ^RIHp / pV'       d7   \        P                  P                  V4      '       d   V P                  V4      pV! W4      p	V'       d¨   VP                  RR4      p
VP                  R\        V4      P                  \        P                  P                  4      R,          4      p\        4       P                  ! V3RR	/VB P                  pV P                  VVVV
VP                  R
4      R7       V	# \         SV `D  ! V3RVRVRV/VB # )av  
Save the full tokenizer state.


Extends [`~tokenization_utils_base.PreTrainedTokenizerBase.save_pretrained`] with
`save_format` support, for tokenizers converted from a native vocabulary file
(e.g. Mistral's `tekken.json`). See the base method for `legacy_format`,
`filename_prefix`, and `push_to_hub`.

Args:
    save_format (`str`, *optional*):
        `"mistral"` to save as a native `tekken.json` by copying the original
        file (requires the original tekken vocabulary file to be available). The name is
        normalized to `tekken.json` on save, and the instantiated tokenizer must still match
        it exactly.
        `"hf"` or `None` for the default HuggingFace format.
    kwargs (`dict[str, Any]`, *optional*):
        Additional key word arguments passed along to the [`~utils.PushToHubMixin.push_to_hub`] method.

Returns:
    A tuple of `str`: The files saved.
NÚmistralzUnknown save_format=z$. Supported values: 'hf', 'mistral'.)Úsave_tekken_formatÚcommit_messageÚrepo_idÚexist_okTr’   )Úworking_dirrL  Úfiles_timestampsrK  r’   rD  r8  rE  )NÚhfrI  éÿÿÿÿ)rû   rx   rJ  rc   rd   r;  Ú_get_files_timestampsrb   rG   rw   Úsepr    Úcreate_reporL  Ú_upload_modified_filesrl   r  Úsave_pretrained)r  r7  rD  r8  rE  rF  r†   rJ  rO  Ú
save_filesrK  rL  r'  s   &&&&&&,     €rI   rV  Ú!TokenizersBackend.save_pretrained9  s9  ø€ ð> Ð5Ô5ÜÐ3°K±?ÐBfÐgÓhÐhà˜)Õ#ÝJð
  "ÐßœrŸw™wŸ}™}¨^×<Ò<Ø#'×#=Ñ#=¸nÓ#MÐ á+¨DÓAˆJçØ!'§¡Ð,<¸dÓ!C�Ø Ÿ*™* Y´°NÓ0C×0IÑ0IÌ"Ï'É'Ï+É+Ó0VÐWYÕ0ZÓ[�Ü ›(×.Ò.¨wÑPÀÐPÈÑP×XÑX�Ø×+Ñ+Ø .Ø#Ø%5Ø#1Ø Ÿ*™* WÓ-ð ,ô ð Ðä‰wÒ&Øñ
à'ð
ð ,ð
ð $ð	
ð
 ñ
ð 	
rL   c                óÞ  € V P                   pV P                  pVf   V P                  '       d   RV n        V P                  pV P                  pVf   V P
                  '       d   RV n        V P                  '       d
   VR,           MR RV P
                  '       d   RV,           R,           MR 2pT V P                  '       d   RV,           R,           MR R	V P
                  '       d   RV,           R,           MR 2p. pV P                  '       d   VP                  W34       V P
                  '       d   VP                  W434       \        P                  ! WVVR
7      V P                  n
        R# )zU
Updates the underlying post processor with the current `bos_token` and `eos_token`.
NFz:0 r×   z$A:0r>   z:0z:1z $B:1)ÚsingleÚpairÚspecial_tokens)rZ   Úbos_token_idrê   r[   Úeos_token_idrë   rR   r   ÚTemplateProcessingrú   r3   )r  Úbosr]  Úeosr^  rZ  r[  r\  s   &       rI   r  Ú'TokenizersBackend.update_post_processor}  sF  € ð �n‰nˆØ×(Ñ(ˆØŠ;˜4×-×-Ð-Ø!&ˆDÔà�n‰nˆØ×(Ñ(ˆØŠ;˜4×-×-Ð-Ø!&ˆDÔà%)×%7×%7Ð%7�S˜5–[¸RÐ@ÀÐ[_×[m×[mÐ[mÀcÈCÅiÐRVÖFVÐsuÐDvÐwˆØ�°×0B×0BÐ0B˜3 �9 tÖ+ÈÐKÈ5Ðgk×gy×gyÐgyÐRUÐX[ÕR[Ð^bÖRbð  @Bð  QCð  DˆàˆØ××ÐØ×!Ñ! 3Ð"5Ô6Ø××ÐØ×!Ñ! 3Ð"5Ô6Ü)3×)FÒ)FØ°^ô*
ˆ�‰Ö&rL   c                ó   € \        V R R4      # )r   F©rv   r.  s   &rI   rë   ÚTokenizersBackend.add_eos_token—  ó   € ä�tÐ-¨uÓ5Ð5rL   c                ó   € \        V R R4      # )rÿ   Frd  r.  s   &rI   rê   ÚTokenizersBackend.add_bos_token›  rf  rL   c                óT   € \         P                  V R V4       V P                  4        R# )r   N©ÚobjectÚ__setattr__r  ©r  Úvalues   &&rI   rë   re  Ÿ  ó!   € ä×Ñ˜4Ð!1°5Ô9Ø×"Ñ"Ö$rL   c                óT   € \         P                  V R V4       V P                  4        R# )rÿ   Nrj  rm  s   &&rI   rê   rh  ¤  ro  rL   c           	     ó¦  € . pV P                   P                  4        Fg  pVf   K	  \        V\        4      '       d   VP	                  V4       K2  \        V\
        4      '       g   KJ  VP	                  \        VRRR7      4       Ki  	  V P                   Fa  p\        V\        4      '       d   VP	                  V4       K,  \        V\
        4      '       g   KD  VP	                  \        VRRR7      4       Kc  	  V'       d   V P                  VRR7       \        V RR4      '       g   V P                  P                  f   V P                  4        R# R# )a3  
Post-initialization hook that runs after the tokenizer is fully set up.
This is called by from_pretrained() after loading the tokenizer, which allows
us to add any special tokens that may have been passed as AddedToken objects.

Child classes should call super()._post_init() if they override this method.
NTF)ró   Ú
normalized)r\  r  )r	  rD   rO   r   rR   rG   r
  r  rv   rú   r3   r  )r  r   Útoken_valuer’   s   &   rI   Ú
_post_initÚTokenizersBackend._post_init©  s  € ð ˆà×3Ñ3×:Ñ:Ö<ˆKØÒ"ÙÜ˜+¤z×2Ò2Ø×$Ñ$ [Ö1Ü˜K¬×-Ô-Ø×$Ñ$¤Z°ÀTÐV[Ô%\Ö]ñ =ð ×/Ô/ˆEÜ˜%¤×,Ò,Ø×$Ñ$ UÖ+Ü˜E¤3×'Ô'Ø×$Ñ$¤Z°¸tÐPUÔ%VÖWñ	 0÷ à�O‰O˜M¸$ˆOÔ?ä�4Ð8¸$×?Ò?À4Ç?Á?×CaÑCaÒCiØ×&Ñ&Ö(ñ DjrL   c                ó    <€ V ^8„  d   QhRS[ /# r*  ©r¥   )rH   r�   s   "€rI   rJ   rž   Ê  s   ø€ ÷ Gñ G™Cñ GrL   c                ó:   € V P                   P                  RR7      # )z@
`int`: Size of the base vocabulary (without the added tokens).
F©Úwith_added_tokens©rú   r  r.  s   &rI   r&  ÚTokenizersBackend.vocab_sizeÉ  s   € ð
 �‰×-Ñ-ÀÐ-ÓFÐFrL   c                ó6   <€ V ^8„  d   QhRS[ S[S[3,          /# r*  ©ra   rG   r¥   )rH   r�   s   "€rI   rJ   rž   Ð  s   ø€ ÷ Añ A™4¡¡S �>ñ ArL   c                ó:   € V P                   P                  R R7      # )Try  )rú   Ú	get_vocabr.  s   &rI   r€  ÚTokenizersBackend.get_vocabÐ  s   € Ø�‰×(Ñ(¸4Ð(Ó@Ð@rL   c                ó6   <€ V ^8„  d   QhRS[ S[S[3,          /# r*  r~  )rH   r�   s   "€rI   rJ   rž   Ô  s   ø€ ÷  ñ  ‘t™C¡˜H•~ñ  rL   c                ó"   € V P                  4       # rN   )r€  r.  s   &rI   r0   ÚTokenizersBackend.vocabÓ  s   € à�~‰~ÓÐrL   c                ó6   <€ V ^8„  d   QhRS[ S[S[3,          /# r*  r~  )rH   r�   s   "€rI   rJ   rž   Ø  s   ø€ ÷ nñ n¡d©3±¨8¥nñ nrL   c                ó˜   € \        V P                  P                  4       R R7       UUu/ uF  w  rVP                  VbK  	  upp# u uppi )z«
Returns the sorted mapping from string to index. The added tokens encoder is cached for performance
optimisation in `self._added_tokens_encoder` for the slow tokenizers.
c                 ó   € V ^ ,          # rí   r½   ©r�   s   &rI   rð   Ú8TokenizersBackend.added_tokens_encoder.<locals>.<lambda>Ý  ó   € ÐdhÐijÖdkrL   rò   ©r  r¡   r¤   r¢   ©r  ÚvÚks   &  rI   r  Ú&TokenizersBackend.added_tokens_encoder×  s?   € ô *0°×0IÑ0I×0OÑ0OÓ0QÑWkÕ)lÔmÑ)l¡ �—	‘	˜1’Ñ)lÒmÐmùÓmó   ªAc                ó6   <€ V ^8„  d   QhRS[ S[S[3,          /# r*  )ra   r¥   r   )rH   r�   s   "€rI   rJ   rž   à  s   ø€ ÷ :ñ :¡d©3±
¨?Õ&;ñ :rL   c                ó6   € V P                   P                  4       # )z†
Returns the added tokens in the vocabulary as a dictionary of index to AddedToken.

Returns:
    `dict[str, int]`: The added tokens.
)rú   Úget_added_tokens_decoderr.  s   &rI   r¡   Ú&TokenizersBackend.added_tokens_decoderß  s   € ð �‰×7Ñ7Ó9Ð9rL   c                ó6   <€ V ^8„  d   QhRS[ S[S[3,          /# r*  r~  )rH   r�   s   "€rI   rJ   rž   î  s   ø€ ÷ nñ n¡¡c©3 h¥ñ nrL   c                ó˜   € \        V P                  P                  4       R R7       UUu/ uF  w  rVP                  VbK  	  upp# u uppi )z�
Returns the added tokens in the vocabulary as a dictionary of token to index.

Returns:
    `dict[str, int]`: The added tokens.
c                 ó   € V ^ ,          # rí   r½   rˆ  s   &rI   rð   Ú3TokenizersBackend.get_added_vocab.<locals>.<lambda>õ  rŠ  rL   rò   r‹  rŒ  s   &  rI   Úget_added_vocabÚ!TokenizersBackend.get_added_vocabî  s?   € ô *0°×0IÑ0I×0OÑ0OÓ0QÑWkÕ)lÔmÑ)l¡ �—	‘	˜1’Ñ)lÒmÐmùÓmr�  c                ó    <€ V ^8„  d   QhRS[ /# r*  r+  )rH   r�   s   "€rI   rJ   rž   ÷  s   ø€ ÷ ñ ™$ñ rL   c                ó   € R# )z>
Returns True, to avoid expensive `assert tokenizer` gotchas.
Tr½   r.  s   &rI   Ú__bool__ÚTokenizersBackend.__bool__÷  s   € ñ rL   c                ó    <€ V ^8„  d   QhRS[ /# r*  rw  )rH   r�   s   "€rI   rJ   rž   ý  s   ø€ ÷ Fñ F™ñ FrL   c                ó:   € V P                   P                  RR7      # )z4
Size of the full vocabulary with the added tokens.
Try  r{  r.  s   &rI   Ú__len__ÚTokenizersBackend.__len__ý  s   € ð �‰×-Ñ-ÀÐ-ÓEÐErL   c                ó    <€ V ^8„  d   QhRS[ /# r*  )rg   )rH   r�   s   "€rI   rJ   rž     s   ø€ ÷ ñ ¡=ñ rL   c                ó   € V P                   # )zS
`tokenizers.implementations.BaseTokenizer`: The Rust tokenizer used as a backend.
)rú   r.  s   &rI   Úbackend_tokenizerÚ#TokenizersBackend.backend_tokenizer  s   € ð
 �‰ÐrL   c                ó    <€ V ^8„  d   QhRS[ /# r*  )ÚDecoderFast)rH   r�   s   "€rI   rJ   rž     s   ø€ ÷ 'ñ '™ñ 'rL   c                ó.   € V P                   P                  # )zE
`tokenizers.decoders.Decoder`: The Rust decoder for this tokenizer.
)rú   Údecoderr.  s   &rI   rª  ÚTokenizersBackend.decoder
  s   € ð
 �‰×&Ñ&Ð&rL   Tc                ó¨   <€ V ^8„  d   QhRS[ RS[R,          RS[R,          RS[RS[RS[RS[R	S[R
S[S[S[S[3,          S[S[ ,          3,          /	# )rC   r-   Úreturn_token_type_idsNÚreturn_attention_maskÚreturn_overflowing_tokensÚreturn_special_tokens_maskÚreturn_offsets_mappingÚreturn_lengthÚverboserE   )ÚEncodingFastr,  rP   ra   rG   r   rF   )rH   r�   s   "€rI   rJ   rž     s„   ø€ ÷ -(ñ -(áð-(ñ  $ d�{ð-(ñ  $ d�{ð	-(ñ
 $(ð-(ñ %)ð-(ñ !%ð-(ñ ð-(ñ ð-(ñ 
‰t‘C™�H�~™t¡LÕ1Ð1Õ	2ñ-(rL   c	                óâ  € Vf   RV P                   9   pVf   RV P                   9   pV'       d$   VP                  e   V.VP                  ,           p	MV.p	\        \        4      p
V	 EF  pV
R,          P	                  VP
                  4       V'       d#   V
R,          P	                  VP                  4       V'       d#   V
R,          P	                  VP                  4       V'       d#   V
R,          P	                  VP                  4       V'       d#   V
R,          P	                  VP                  4       V'       g   KØ  V
R,          P	                  \        VP
                  4      4       EK  	  W©3# )ar  
Convert the encoding representation (from low-level HuggingFace tokenizer output) to a python Dict and a list
of encodings, take care of building a batch from overflowing tokens.

Overflowing tokens are converted to additional examples (like batches) so the output values of the dict are
lists (overflows) of lists (tokens).

Output shape: (overflows, sequence length)
Útoken_type_idsÚattention_maskÚ	input_idsÚspecial_tokens_maskÚoffset_mappingræ   )Úmodel_input_namesÚoverflowingr   rF   rR   ÚidsÚtype_idsr·  r¹  Úoffsetsr§   )r  r-   r­  r®  r¯  r°  r±  r²  r³  Ú	encodingsÚencoding_dictr•   s   &&&&&&&&&   rI   Ú_convert_encodingÚ#TokenizersBackend._convert_encoding  s  € ð( !Ò(Ø$4¸×8NÑ8NÑ$NÐ!Ø Ò(Ø$4¸×8NÑ8NÑ$NÐ!ç$¨×)=Ñ)=Ò)IØ!˜
 X×%9Ñ%9Õ9‰Ià!˜
ˆIä#¤DÓ)ˆÜˆAØ˜+Õ&×-Ñ-¨a¯e©eÔ4ç$ØÐ.Õ/×6Ñ6°q·z±zÔBß$ØÐ.Õ/×6Ñ6°q×7GÑ7GÔHß)ØÐ3Õ4×;Ñ;¸A×<QÑ<QÔRß%ØÐ.Õ/×6Ñ6°q·y±yÔAß‰}Ø˜hÕ'×.Ñ.¬s°1·5±5«z×:ñ ð Ð'Ð'rL   c                ó&   <€ V ^8„  d   QhRS[ RS[/# )rC   r’   rE   )rG   r¥   )rH   r�   s   "€rI   rJ   rž   @  s   ø€ ÷ ñ ¹ð Áñ rL   c                ó\   € V P                   P                  V4      pVf   V P                  # V# rN   )rú   Útoken_to_idÚunk_token_id)r  r’   r®   s   && rI   Ú#_convert_token_to_id_with_added_vocÚ5TokenizersBackend._convert_token_to_id_with_added_voc@  s,   € Ø—‘×+Ñ+¨EÓ2ˆØŠ=Ø×$Ñ$Ð$ØˆrL   c                ó4   <€ V ^8„  d   QhRS[ RS[R,          /# )rC   r®   rE   N)r¥   rG   )rH   r�   s   "€rI   rJ   rž   F  s   ø€ ÷ 7ñ 7©#ð 7±#¸µ*ñ 7rL   c                óJ   € V P                   P                  \        V4      4      # rN   )rú   rË   r¥   )r  r®   s   &&rI   Ú_convert_id_to_tokenÚ&TokenizersBackend._convert_id_to_tokenF  s   € Ø�‰×*Ñ*¬3¨u«:Ó6Ð6rL   c                óF   <€ V ^8„  d   QhRS[ S[S[,          ,          RS[/# )rC   Ú
new_tokensrE   )rF   rG   r   r¥   )rH   r�   s   "€rI   rJ   rž   I  s&   ø€ ÷ 6ñ 6¡d©3±Õ+;Õ&<ð 6ÑWZñ 6rL   c                ó~   € V'       d   V P                   P                  V4      # V P                   P                  V4      # rN   )rú   Úadd_special_tokensr  )r  rÏ  r\  s   &&&rI   Ú_add_tokensÚTokenizersBackend._add_tokensI  s/   € ßØ—?‘?×5Ñ5°jÓAÐAà�‰×)Ñ)¨*Ó5Ð5rL   c                ó&   <€ V ^8„  d   QhRS[ RS[/# )rC   r[  rE   )r,  r¥   )rH   r�   s   "€rI   rJ   rž   O  s   ø€ ÷ ?ñ ?©dð ?¹sñ ?rL   c                ó8   € V P                   P                  V4      # )aç  
Returns the number of added tokens when encoding a sequence with special tokens.

<Tip>

This encodes a dummy input and checks the number of added tokens, and is therefore not efficient. Do not put
this inside your training loop.

</Tip>

Args:
    pair (`bool`, *optional*, defaults to `False`):
        Whether the number of added tokens should be computed in the case of a sequence pair or a single
        sequence.

Returns:
    `int`: Number of special tokens added to sequences.
)rú   Únum_special_tokens_to_add)r  r[  s   &&rI   rÖ  Ú+TokenizersBackend.num_special_tokens_to_addO  s   € ð& �‰×8Ñ8¸Ó>Ð>rL   c                ól   <€ V ^8„  d   QhRS[ S[S[ ,          ,          RS[RS[S[S[,          ,          /# )rC   r½  Úskip_special_tokensrE   ©r¥   rF   r,  rG   )rH   r�   s   "€rI   rJ   rž   d  s7   ø€ ÷ ñ ©©t±C­y­ð Étð Ñ`cÑfjÑknÕfoÕ`oñ rL   c                óF  € \        V\        4      '       d   V P                  P                  V4      # . pV'       d   \	        V P
                  4      M	\	        4       pV F@  p\        V4      pWT9   d   K  VP                  V P                  P                  V4      4       KB  	  V# )aœ  
Converts a single index or a sequence of indices in a token or a sequence of tokens, using the vocabulary and
added tokens.

Args:
    ids (`int` or `list[int]`):
        The token id (or token ids) to convert to tokens.
    skip_special_tokens (`bool`, *optional*, defaults to `False`):
        Whether or not to remove special tokens in the decoding.

Returns:
    `str` or `list[str]`: The decoded token(s).
)rO   r¥   rú   rË   r‚   Úall_special_idsrR   )r  r½  rÙ  r#  Úids_to_skipr®   s   &&&   rI   Úconvert_ids_to_tokensÚ'TokenizersBackend.convert_ids_to_tokensd  s   € ô �cœ3×ÒØ—?‘?×.Ñ.¨sÓ3Ð3Øˆç3F”c˜$×.Ñ.Ô/ÌCËEˆÛˆEÜ˜“JˆEØÔ#ÙØ�M‰M˜$Ÿ/™/×5Ñ5°eÓ<Ö=ñ	 ð
 ˆrL   c          	      óP   <€ V ^8„  d   QhRS[ RS[ R,          RS[RS[S[ ,          /# )rC   Útextr[  NrÑ  rE   )rG   r,  rF   )rH   r�   s   "€rI   rJ   rž   ~  s:   ø€ ÷ vñ v™Sð v©¨d­
ð vÉtð vÑjnÑorÕjsñ vrL   c           	     óN   € V P                   ! RR VRVRV/VB P                  4       # )rá  Ú	text_pairrÑ  r½   )Ú_encode_plusr#  )r  rá  r[  rÑ  r†   s   &&&&,rI   ÚtokenizeÚTokenizersBackend.tokenize~  s0   € Ø× Ò Ñl dÐl°dÐlÐOaÐlÐekÑl×sÑsÓuÐurL   c                óZ   <€ V ^8„  d   QhRS[ RS[RS[RS[RS[R,          RS[R,          /# )rC   Úpadding_strategyrá   rÝ   rà   rç   Nrå   )r   r   r¥   rG   )rH   r�   s   "€rI   rJ   rž   �  sW   ø€ ÷ I9ñ I9á)ðI9ñ 0ðI9ñ ð	I9ñ
 ðI9ñ   $�JðI9ñ ˜D•jñI9rL   c                ó   € V P                   P                  pV P                   P                  pV\        P                  8X  d    Ve   V P                   P                  4        MhRVRVRVP                  RV P                  /p	Vf   Rp
M!V	 Uu/ uF  q»VP                  VR4      bK  	  p
pW©8w  d   V P                   P                  ! R/ V	B  V\        P                  8X  d#   Ve   V P                   P                  4        R# R# V\        P                  8X  d   TMRpRTRVe   TMV P                  RV P                  RV P                   R	V P"                  R
V/p	W‰8w  d   V P                   P$                  ! R/ V	B  R# R# u upi )aí  
Define the truncation and the padding strategies for fast tokenizers (provided by HuggingFace tokenizers
library) and restore the tokenizer settings afterwards.

The provided tokenizer has no padding / truncation strategy before the managed section. If your tokenizer set a
padding / truncation strategy before, then it will be reset to no padding / truncation when exiting the managed
section.

Args:
    padding_strategy ([`~utils.PaddingStrategy`]):
        The kind of padding that will be applied to the input
    truncation_strategy ([`~tokenization_utils_base.TruncationStrategy`]):
        The kind of truncation that will be applied to the input
    max_length (`int`):
        The maximum size of a sequence.
    stride (`int`):
        The stride to use when handling overflow.
    pad_to_multiple_of (`int`, *optional*):
        If set will pad the sequence to a multiple of the provided value. This is especially useful to enable
        the use of Tensor Cores on NVIDIA hardware with compute capability `>= 7.5` (Volta).
    padding_side (`str`, *optional*):
        The side on which the model should have padding applied. Should be selected between ['right', 'left'].
        Default value is picked from the class attribute of the same name.
NrÝ   rà   râ   rß   ræ   Úpad_idrX   rä   rç   r½   )rú   rp   ro   r   ÚDO_NOT_TRUNCATErý   rn  rÞ   rl   rü   r   Ú
DO_NOT_PADÚ
no_paddingÚ
MAX_LENGTHrå   Úpad_token_idrX   rã   rþ   )r  rè  rá   rÝ   rà   rç   rå   r  r  ÚtargetÚcurrentrŽ  ræ   s   &&&&&&&      rI   Úset_truncation_and_paddingÚ,TokenizersBackend.set_truncation_and_padding�  sh  € ðB —o‘o×0Ñ0ˆØ—?‘?×*Ñ*ˆàÔ"4×"DÑ"DÔDØÒ&Ø—‘×-Ñ-Ô/øð ˜jØ˜&ØÐ/×5Ñ5Ø˜T×1Ñ1ð	ˆFð Ò"Ø‘á@FÓGÁ¸1˜kŸo™o¨a°Ó6Ò6Á�ÐGàÔ Ø—‘×1Ò1Ñ;°FÒ;àœ×9Ñ9Ô9ØÒ#Ø—‘×*Ñ*Ö,ñ $ð $4´×7QÑ7QÔ#Q‘ZÐW[ˆFà˜&Ø¨\Ò-E™\È4×K\ÑK\Ø˜$×+Ñ+Ø˜TŸ^™^Ø˜t×5Ñ5Ø$Ð&8ðˆFð Ô!Ø—‘×.Ò.Ñ8°Ô8ñ "ùò% Hs   Â
E;c          (      ó¢  <€ V ^8„  d   QhRS[ S[,          S[S[ ,          ,          S[S[,          ,          RS[ S[,          S[S[ ,          ,          S[S[,          ,          R,          RS[RS[RS[RS[R,          RS[R	S[R
S[R,          RS[R,          RS[R,          RS[R,          RS[R,          RS[RS[RS[RS[RS[RS[R,          RS[/# )rC   rá  rã  NrÑ  rè  rá   rÝ   rà   Úis_split_into_wordsrç   rå   Úreturn_tensorsr­  r®  r¯  r°  r±  r²  r³  r  rE   )	r   r   rF   r,  r   r   r¥   rG   r   )rH   r�   s   "€rI   rJ   rž   Ì  s?  ø€ ÷ Xñ XáÑ+Õ+©d±9­oÕ=ÁÑEVÕ@WÕWðXñ Ñ0Õ0±4¹	µ?ÕBÁTÑJ[ÕE\Õ\Ð_cÕcðXñ !ð	Xñ
 *ðXñ 0ðXñ ˜$•JðXñ ðXñ "ðXñ   $�JðXñ ˜D•jðXñ ˜t�ðXñ  $ d�{ðXñ  $ d�{ðXñ $(ðXñ  %)ð!Xñ" !%ð#Xñ$ ð%Xñ& ð'Xñ( # T�kð)Xñ, 
ñ-XrL   c                óü  € R  pV! V4      '       g   \        R4      hVe   V! V4      '       g   \        R4      hV'       dG   \        V\        \        34      ;'       d(    T;'       d    \        V^ ,          \        \        34      pM\        V\        \        34      pV'       d~   \        V\        4      '       d   \        R4      hVe>   \        V4      \        V4      8w  d%   \        R\        V4       R\        V4       R24      hVe   \        \        W4      4      MTpMV'       d   W3.MV.p\        V\        \        34      '       g   \        R\        V4       R24      hV P                  VVVVV	V
R7       Vf   V P                  pV P                  P                  V8w  d   VV P                  n        V P                  P                  VVVR	7      pV Uu. uF  pV P                  VVVVVVVVR
7      NK  	  pp/ pV^ ,          ^ ,           F0  pV UUUu. uF  w  ppVV,           F  pVNK  	  K  	  p pppV VV&   K2  	  V UUUu. uF  w  ppV F  pVNK  	  K  	  p!pppV'       dA   . p"\        V4       F*  w  p#w  p$pV"V#.\        V$R,          4      ,          ,          p"K,  	  V"VR&   VR,           F  p%V P!                  V%VV4       K  	  \#        VV!VR7      p&V'       g}   Vfy   V'       gq   \#        V&P%                  4        UU'u/ uF?  w  pp'T\        V'4      ^ 8”  d'   \        V'^ ,          \        4      '       d
   V'^ ,          MT'bKA  	  up'pV&P&                  4      p&V&# u upi u upppi u upppi u up'pi )c                 ó€  € \        V \        4      '       d   R # \        V \        \        34      '       Ed	   \	        V 4      ^ 8X  d   R # \        V ^ ,          \        4      '       d   R # \        V ^ ,          \        \        34      '       d³   \	        V ^ ,          4      ^ 8X  g%   \        V ^ ,          ^ ,          \        4      '       d   R # \        V ^ ,          ^ ,          \        \        34      '       dJ   \	        V ^ ,          ^ ,          4      ^ 8H  ;'       g&    \        V ^ ,          ^ ,          ^ ,          \        4      # R# R# R# )TF)rO   rG   rF   rP   r§   )r$  s   &rI   Ú_is_valid_text_inputÚ<TokenizersBackend._encode_plus.<locals>._is_valid_text_inputä  sÔ   € Ü˜!œS×!Ò!ÙÜ˜A¤¤e˜}×-Ó-Ü�q“6˜Q”;ÙÜ  !¥¤c×*Ò*ÙÜ  !¥¤t¬U m×4Ò4Ü˜1˜Q�4“y A”~¬°A°aµD¸µG¼S×)AÒ)AÙ#Ü# A a¥D¨¥G¬d´E¨]×;Ò;Ü" 1 Q¥4¨¥7›|¨qÑ0×OÐO´J¸qÀ½tÀA½wÀq½zÌ3Ó4OÐOá$á árL   zêtext input must be of type `str` (single example), `list[str]` (batch or single pretokenized example) or `list[list[str]]` (batch of pretokenized examples) or `list[tuple[list[str], list[str]]]` (batch of pretokenized sequence pairs).zdwhen tokenizing batches of text, `text_pair` must be a list or tuple with the same length as `text`.zbatch length of `text`: z- does not match batch length of `text_pair`: Ú.z:batch_text_or_text_pairs has to be a list or a tuple (got Ú))rè  rá   rÝ   rà   rç   rå   )rÑ  Úis_pretokenized)r-   r­  r®  r¯  r°  r±  r²  r³  r¸  Úoverflow_to_sample_mapping)Útensor_type)rû   rO   rF   rP   rG   Ú	TypeErrorr§   Úzipr/   rò  r  rú   r  Úencode_batchrÂ  ru   Ú&_eventual_warn_about_too_long_sequencer   r¤   rÀ  )(r  rá  rã  rÑ  rè  rá   rÝ   rà   rõ  rç   rå   rö  r­  r®  r¯  r°  r±  r²  r³  r  r†   rù  Ú
is_batchedÚbatch_text_or_text_pairsrÀ  r-   Útokens_and_encodingsÚsanitized_tokensr—   r�   r  r•   ÚstackÚsanitized_encodingsrþ  r‘   Útoksr¸  Úbatched_outputrn  s(   &&&&&&&&&&&&&&&&&&&&,                   rI   rä  ÚTokenizersBackend._encode_plusÌ  s¹  € ò0	ñ( $ D×)Ò)ÜðWóð ð
 Ò Ñ)=¸i×)HÒ)HÜðWóð ÷ Ü# D¬4´¨-Ó8×hÐh¸T×hÐhÄjÐQUÐVWÕQXÔ[_ÔafÐZgÓFh‰Jä# D¬4´¨-Ó8ˆJçä˜)¤S×)Ò)Üðóð ð Ò$¬¨T«´c¸)³nÔ)DÜ Ø.¬s°4«y¨kð :Ü˜I›Ð' qð*óð ð FOÒEZ¤t¬C°Ó,@Ô'AÐ`dÑ$÷ ?H¨Ð(9Ñ':ÈdÈVÐ$ô Ð2´U¼D°M×BÒBÜØLÌTÐRjÓMkÐLlÐlmÐnóð ð 	×'Ñ'Ø-Ø 3Ø!ØØ1Ø%ð 	(ô 	
ð  Ò'Ø#'×#<Ñ#<Ð à�?‰?×0Ñ0Ð4HÔHØ4HˆD�O‰OÔ1ð —O‘O×0Ñ0Ø$Ø1Ø/ð 1ó 
ˆ	ñ$ &ó 
ñ &�ð ×"Ñ"Ø!Ø&;Ø&;Ø*CØ+EØ'=Ø+Øð #ö 	ñ &ð 	ð  
ð ÐØ'¨Õ*¨1×-Ð-ˆCÙ&:ÕNÑ&:™7˜4 ÀDÈÇIÀI¸q“QÁI‘QÑ&:ˆEÒNØ$)Ð˜SÓ!ñ .ñ 1EÕSÑ0D¡W Q¨ËdÈ›qÉd™qÑ0DÐÒS÷ %Ø)+Ð&Ü )Ð*>Ö ?‘�‘9�D˜!Ø*¨q¨c´C¸¸[Õ8IÓ4JÕ.JÕJÒ*ñ !@à=WÐÐ9Ñ:à)¨+×6Ð6ˆIØ×7Ñ7¸	À:ÈwÖWñ 7ô 'Ð'7Ð9LÐZhÔiˆ÷ ˜nÒ4×=VÜ*ð '5×&:Ñ&:Ô&<ôá&<™
˜˜Uð ¤c¨%£j°1¤n¼ÀEÈ!ÅHÌd×9SÒ9S˜% ž(ÐY^Ò^Ù&<òð ×(Ñ(óˆNð ÐùòW 
ùô" OùäSùó"s   Ç"M%ÈM*
ÉM1ÌAM8
c                ó6   <€ V ^8„  d   QhRS[ S[,          RS[/# )rC   r#  rE   )rF   rG   )rH   r�   s   "€rI   rJ   rž   f  s   ø€ ÷ 
ñ 
©t±C­yð 
¹Sñ 
rL   c                óž   € V P                   P                  e&   V P                   P                  P                  V4      # RP                  V4      # )Nr>   )r¥  rª  Údecoder=  )r  r#  s   &&rI   Úconvert_tokens_to_stringÚ*TokenizersBackend.convert_tokens_to_stringf  sJ   € ð ×%Ñ%×-Ñ-Ò9ð ×"Ñ"×*Ñ*×1Ñ1°&Ó9ð	
ð —‘˜&Ó!ð	
rL   c                ó`   <€ V ^8„  d   QhRS[ S[S[ ,          ,          RS[RS[R,          RS[/# )rC   Ú	token_idsrÙ  Úclean_up_tokenization_spacesNrE   rÚ  )rH   r�   s   "€rI   rJ   rž   m  s?   ø€ ÷ )ñ )á™™c�•?ð)ñ "ð)ñ '+¨T¥kð	)ñ 
ñ)rL   c                ó  € VP                  R R4       \        V\        4      '       d   V.p\        V\        4      '       d
   VR,          pV P                  P                  WR7      pVe   TMV P                  pV'       d�   \        V P                  P                  4      P                  R8X  dB   V P                  '       g0   \        P                  RV P                  P                   R24       V# V P                  V4      pV# )Úuse_source_tokenizerNr¸  )rÙ  r   z=Ignoring clean_up_tokenization_spaces=True for BPE tokenizer aE  . The clean_up_tokenization post-processing step is designed for WordPiece tokenizers and is destructive for BPE (it strips spaces before punctuation). Set clean_up_tokenization_spaces=False to suppress this warning, or set clean_up_tokenization_spaces_for_bpe_even_though_it_will_corrupt_output=True to force cleanup anyway.)rb   rO   r¥   ra   rú   r  r  r/   r¥  r.   rt   ÚGclean_up_tokenization_spaces_for_bpe_even_though_it_will_corrupt_outputr   Úwarning_oncer'  Úclean_up_tokenization)r  r  rÙ  r  r†   rá  s   &&&&, rI   Ú_decodeÚTokenizersBackend._decodem  sí   € ð 	�
‰
Ð)¨4Ô0ä�i¤×%Ò%Ø"˜ˆIÜ�i¤×&Ò&Ø! +Õ.ˆIØ�‰×%Ñ% iÐ%ÓYˆð ,Ò7ñ )à×2Ñ2ð 	%÷
 (ô
 �T×+Ñ+×1Ñ1Ó2×;Ñ;¸uÔDØ×d×dÐdä×#Ñ#ðØŸ™×/Ñ/Ð0ð 1-ð-ôð ˆð ×1Ñ1°$Ó7�àˆrL   c                ó    <€ V ^8„  d   QhRS[ S[P                  ,          RS[S[ R3,          RS[R,          RS[ R,          RS[S[ R3,          /# )rC   r7  Ú
file_names.rD  Nr8  rE   )rG   rc   rG  rP   r,  )rH   r�   s   "€rI   rJ   rž   ˜  s^   ø€ ÷ ñ á™bŸk™kÕ)ðñ ™#˜s˜(•Oðñ ˜d•{ð	ñ
 ˜t�ðñ 
‰s�Cˆx�ñrL   c                óÚ   € \        V4      p\        P                  P                  Y'       d
   VR ,           MR\        ,           4      pV P
                  P                  V4       W%3,           pV# )r:  r×   )rG   rc   rd   r=  ÚTOKENIZER_FILEr¥  Úsave)r  r7  r  rD  r8  r$   s   &&&&& rI   Ú_save_pretrainedÚ"TokenizersBackend._save_pretrained˜  s[   € ô ˜^Ó,ˆäŸ™Ÿ™Ø¶o˜_¨sÖ2È2ÔQ_Õ_ó
ˆð 	×Ñ×#Ñ# NÔ3ØÐ"3Õ3ˆ
àÐrL   c           
     óþ  € \         P                  ! V P                  P                  4       4      pVP	                  R4      pVP	                  R4      p	Rp
VR,          R,          R8X  d   / VR,          R&   . VR,          R&   MÂVR,          R,          R	8X  do   VR,          R
,          e\   VR,          R
,          pVR,          R,          V,          ^ ,          p
Ve   W¥9   d	   WZ,          p
^ VR,          R
&   V
R..VR,          R&   M?VR,          R,          R&9   d   / VR,          R&   M\        RVR,          R,           R24      hVeD   RVR,          9   d6   VR,          R,          V9   d!   WWR,          R,          ,          VR,          R&   \        P                  ! \         P                  ! V4      4      p. pV F„  pVP	                  RR4      pVP	                  RR4      pVR,          R,          R	8w  d   V'       g   KF  Ve!   VR,          V9   d   W^R,          ,          VR&   VP                  \        R'/ VB 4       K†  	  Ve   VP                  V4       VR,          R,          R8X  d-   RV9  d&   VR,          R,          e   VR,          R,          VR&   VR,          R,          R8X  d-   RV9  d&   VR,          R,          e   VR,          R,          VR&   VR,          R,          R	8X  d	   V
e   W¦R&   VR,          e°   VR,          R,          R8X  gz   VR,          R,          R8X  d†   RVR,          9   dx   \        ;QJ d*    R VR,          R,           4       F  '       g   K   RM	  RM! R VR,          R,           4       4      '       d"   \        P                  P                  4       VR&   \         VR,          R,          ,          pV! R'RVRV/VB pVP#                  WVR7       V	Een   \         P                  ! VP                  4       4      pRV	9   d»   V	R,           F­  pV	R,          V,          R,          pVe"   V Uu. uF  pVP%                  VV4      NK  	  ppVV	R,          V,          R&   V F#  pVP'                  V4      pVe   K  \        R 4      h	  V Uu. uF  pVP'                  V4      NK  	  upV	R,          V,          R!&   K¯  	  R( FS  pVV	9   g   K  V	V,          w  ppVe   VV9   d
   VV,          pVP'                  V4      pVf   \        R 4      hVV.V	V&   KU  	  V	VR&   \        P                  ! \         P                  ! V4      4      pV P(                  P+                  4       p\,        P.                   F¨  p\1        V V4      f   K  \1        V V4      pVe   VV9   d
   VV,          pV P2                  P%                  VR4      p\5        V\        4      '       d?   \        VVP6                  VP8                  VP:                  VP<                  RR"7      VV&   K£  VVV&   Kª  	  V P>                  '       d   V P>                  P+                  4       M. pVe   VP                  V4       \A        V4      ^ 8”  d   VVR#&   WÆR$&    V PB                  ! R'/ VB # u upi u upi   \D         dI   pR%\G        T4      9   d3   TP	                  R$R4       T PB                  ! R'/ TB pTTn        Tu Rp?# h Rp?ii ; i))u¾  
Trains a tokenizer on a new corpus with the same defaults (in terms of special tokens or tokenization pipeline)
as the current one.

Args:
    text_iterator (generator of `list[str]`):
        The training corpus. Should be a generator of batches of texts, for instance a list of lists of texts
        if you have everything in memory.
    vocab_size (`int`):
        The size of the vocabulary you want for your tokenizer.
    length (`int`, *optional*):
        The total number of sequences in the iterator. This is used to provide meaningful progress tracking
    new_special_tokens (list of `str` or `AddedToken`, *optional*):
        A list of new special tokens to add to the tokenizer you are training.
    special_tokens_map (`dict[str, str]`, *optional*):
        If you want to rename some of the special tokens this tokenizer uses, pass along a mapping old special
        token name to new special token name in this argument.
    kwargs (`dict[str, Any]`, *optional*):
        Additional keyword arguments passed along to the trainer from the ðŸ¤— Tokenizers library.

Returns:
    [`PreTrainedTokenizerFast`]: A new tokenizer of the same type as the original one, trained on
    `text_iterator`.

r2   r3   Nr.   r/   r   r0   r1   r   rÇ   g        z;This method does not support this type of tokenizer (found z-) only BPE, Unigram, WordLevel and WordPiece.rY   ró   Úidr¢   Úcontinuing_subword_prefixÚend_of_word_suffixrô   Ú	ByteLevelr9   Úpretokenizersc              3   ó:   "  € T F  pVR ,          R8H  x € K  	  R# 5i)r/   r'  Nr½   )Ú.0Úpretokenizers   & rI   Ú	<genexpr>Ú<TokenizersBackend.train_new_from_iterator.<locals>.<genexpr>  s!   é € ð á(X˜ð ! Õ(¨KÖ7Û(Xùs   ‚TFÚinitial_alphabetr&  r\  )ræ   Útrainerr#  zQAttempted to set a token in the post processor that does not exist in the mappingr½  )Úsingle_wordÚlstripÚrstriprr  ró   r`   r*   z7multiple values for keyword argument 'tokenizer_object')r"   r#   r½   )r„   rS  )$rj   Úloadsrú   Úto_strrb   rû   rg   rm   rn   rR   r   rQ   ÚanyÚpre_tokenizers_fastr'  ÚalphabetÚMODEL_TO_TRAINER_MAPPINGÚtrain_from_iteratorrl   rÆ  rõ   r÷   r   ÚSPECIAL_TOKENS_ATTRIBUTESrv   r	  rO   r0  r1  r2  rr  r`   r§   r'  r   rG   )r  Útext_iteratorr&  ræ   Únew_special_tokensÚspecial_tokens_mapr†   rŠ   r2   r3   rY   rÇ   rÙ   r\  Úadded_tokenró   r  Útrainer_classr/  Útrained_tokenizer_jsonr—   r#  r’   r«   r±   Úspecial_token_fullr`   r•   Únew_tokenizers   &&&&&&,                      rI   Útrain_new_from_iteratorÚ)TokenizersBackend.train_new_from_iterator©  sç  € ôD Ÿš D§O¡O×$:Ñ$:Ó$<Ó=ˆà%×)Ñ)¨.Ó9ˆà'×+Ñ+Ð,<Ó=ˆàˆ	à˜'Õ" 6Õ*¨eÔ3Ø/1ˆN˜7Õ# GÑ,Ø02ˆN˜7Õ# HÒ-Ø˜GÕ$ VÕ,°	Ô9Ø˜gÕ& xÕ0Ò<Ø'¨Õ0°Õ:�Ø*¨7Õ3°GÕ<¸VÕDÀQÕG�	Ø%Ò1°iÔ6UØ 2Õ =�IØ45�˜wÕ'¨Ñ1Ø5>ÀÐ4DÐ3E�˜wÕ'¨Ñ0øØ˜GÕ$ VÕ,Ð0JÔJØ/1ˆN˜7Õ# GÒ,äØMÈnÐ]dÕNeÐflÕNmÐMnð o>ð >óð ð Ò*Ø˜~¨gÕ6Ô6Ø˜wÕ'¨Õ4Ð8JÔJà3EÐU\ÕF]Ð^iÕFjÕ3kˆN˜7Õ# KÑ0ä!×*Ò*¬4¯:ª:°nÓ+EÓFˆ	ð ˆÛ'ˆKØ!—o‘o i°Ó6ˆGØ—‘  dÓ+ˆAØ˜gÕ& vÕ.°)Ô;ÇGÙØ!Ò-°+¸iÕ2HÐL^Ô2^Ø);È	Õ<RÕ)S�˜IÑ&Ø×!Ñ!¤*Ñ";¨{Ñ";Ö<ñ (ð Ò)Ø×!Ñ!Ð"4Ô5ð ˜7Õ# FÕ+¨uÔ4Ø+°6Ô9Ø˜wÕ'Ð(CÕDÒPà2@ÀÕ2IÐJeÕ2fˆFÐ.Ñ/à˜7Õ# FÕ+¨uÔ4Ø$¨FÔ2Ø˜wÕ'Ð(<Õ=ÒIà+9¸'Õ+BÐCWÕ+XˆFÐ'Ñ(Ø˜'Õ" 6Õ*¨iÔ7¸IÒ<QØ"+�;ÑØ˜/Õ*Ò6à˜Õ/°Õ7¸;ÔFØ! /Õ2°6Õ:¸jÔHØ# ~°oÕ'FÔFß“Cñ à(6°Õ(GÈÖ(Xó—C—C’Cñ à(6°Õ(GÈÖ(Xó÷ ò ô
 .A×-JÑ-J×-SÑ-SÓ-U�Ð)Ñ*ä0°ÀÕ1HÈÕ1PÕQˆÙÑ_¨:Ð_ÀnÐ_ÐX^Ñ_ˆØ×%Ñ% mÈGÐ%ÔTàÓ%Ü%)§Z¢Z°	×0@Ñ0@Ó0BÓ%CÐ"à >Ô1Ø)Ð*:×;Ð;�CØ+Ð,<Õ=¸cÕBÀ8ÕL�FØ)Ò5ÙTZÓ![ÑTZÈ5Ð"4×"8Ñ"8¸ÀÖ"FÑTZ˜Ð![ØFL�NÐ#3Õ4°SÕ9¸(ÑCÛ!'˜Ø#,×#8Ñ#8¸Ó#?˜Ø#Ô+Ü",Ø só#ð ñ "(ñ ouÓCuÑntÐejÀI×DYÑDYÐZ_ÖD`ÑntÑCu�NÐ#3Õ4°SÕ9¸%Ó@ñ <ó "0�Ø  NÖ2Ø-¨mÕ<‘H�E˜1Ø)Ò5¸%ÐCUÔ:UØ 2°5Õ 9˜Ø(×4Ñ4°UÓ;�HØÒ'Ü(Øoóð ð 6;¸HÐ4E�N =Ó1ñ "0ð 8FÐ"Ð#3Ñ4Ü%×.Ò.¬t¯zªzÐ:PÓ/QÓRˆIà×!Ñ!×&Ñ&Ó(ˆä,×FÔFˆEÜ�t˜UÓ#Ô/Ü '¨¨eÓ 4�Ø%Ò1°mÐGYÔ6YØ$6°}Õ$E�Mà%)×%=Ñ%=×%AÑ%AÀ%ÈÓ%NÐ"ÜÐ0´*×=Ò=ä$.Ø%Ø$6×$BÑ$BØ1×8Ñ8Ø1×8Ñ8Ø#5×#@Ñ#@Ø $ô%�F˜5“Mð %2�F˜5“Mñ% Gð* DH×C\×C\ÐC\˜t×8Ñ8×=Ñ=Ô?ÐbdÐØÒ)Ø ×'Ñ'Ð(:Ô;ÜÐ#Ó$ qÔ(Ø-AˆFÐ)Ñ*ð &/Ð!Ñ"ð	Ø—>’>Ñ+ FÑ+Ð+ùò{ "\ùò Dvøôj ô 	àHÌCÐPQËFÔRð —
‘
Ð-¨tÔ4Ø $§¢Ñ 8°Ñ 8�Ø+4�Ô(Ø$Õ$ð ûð	ús0   ÑZÒ Z$ÚZ) Ú)[<Ú4<[7Û0[<Û6[7Û7[<c
                óÌ  aa€ ^ RI o^ RIHp ^ RIHp ^ RIHpHo V! ^€R7      R VV3R ll4       pV'       g   \        4       '       d   RpVEe�   V'       g   V'       Egp   V! V4      '       Eda   V! VR	VVVR
R
VR7      pR
pVeË   \        VRR7      ;_uu_ 4       p\        P                  ! V4      pRRR4       XP                  R4      pVP                  R4      pV'       d<   VP                  V4      VP                  R4      8  d   V'       d   Ve
   VR9  d   V# M/V'       d(   VP                  V4      VP                  R4      8¼  d   V# RpV'       g   V'       Egp   V! V4      '       Eda   V'       d   RV9   d   \        VRVR,          4       V	f<   \        VRR
4      '       g)   \        VRR
4       \         P#                  RV R24       V# V	RJ g   \        VRR
4      '       dæ   \        VRR4       ^ RIpVP&                  P)                  VP+                  R4      RR7      pVP,                  p\/        VVP&                  P0                  4      '       d   VVP,                  ^ &   V# \/        VVP&                  P2                  4      '       d   VP&                  P5                  R
R
R7      pVP&                  P1                  VV.4      Vn        V#   + '       g   i     EL); i)a6  
Patches mistral related tokenizers with incorrect regex if detected
    1) Local file with an associated config saved next to it
        >> Model type one of the mistral models (on older versions)
    2) Remote models on the hub from official mistral models
        >> Tags including `base_model:.*mistralai`
N)Ú	lru_cache)Úversion)r   r    )Úmaxsizec                ó0   € V ^8„  d   QhR\         R\        /# )rC   Úmodel_idrE   )rG   r,  )rH   s   "rI   rJ   Ú<TokenizersBackend._patch_mistral_regex.<locals>.__annotate__‹  s   € ÷ 		ñ 		¤cð 		¬dñ 		rL   c                 óÜ   <€  S! 4       P                  V 4      pTP                  e4   SP                  RRP	                  TP                  4      4      '       d   R# R #   \         d     R # i ; i)Fzbase_model:.*mistralair×   T)Ú
model_infor~   ÚtagsÚsearchr=  )rJ  r.   r    Úres   & €€rI   Úis_base_mistralÚ?TokenizersBackend._patch_mistral_regex.<locals>.is_base_mistralŠ  s_   ø€ ðÙ›×+Ñ+¨HÓ5�ð �z‰zÒ%Ø—9‘9Ð5°r·w±w¸u¿z¹zÓ7J×KÒKÙÙøô ô âðús   ƒA ÁA+Á*A+Tzconfig.jsonF)Ú	cache_dirr’   Úlocal_files_onlyÚ%_raise_exceptions_for_missing_entriesÚ'_raise_exceptions_for_connection_errorsÚ_commit_hashr+   r,   Útransformers_versionr‹   z5.0.0rö   z$The tokenizer you are loading from 'a  ' with an incorrect regex pattern: https://huggingface.co/mistralai/Mistral-Small-3.1-24B-Instruct-2503/discussions/84#69121093e8b480e709447d5e. This will lead to incorrect tokenization. You should set the `fix_mistral_regex=True` flag when loading this tokenizer to fix this issue.zÓ[^\r\n\p{L}\p{N}]?[\p{Lu}\p{Lt}\p{Lm}\p{Lo}\p{M}]*[\p{Ll}\p{Lm}\p{Lo}\p{M}]+|[^\r\n\p{L}\p{N}]?[\p{Lu}\p{Lt}\p{Lm}\p{Lo}\p{M}]+[\p{Ll}\p{Lm}\p{Lo}\p{M}]*|\p{N}| ?[^\s\p{L}\p{N}]+[\r\n/]*|\s*[\r\n]+|\s+(?!\S)|\s+Úisolated)ÚpatternÚbehavior)rÒ   Ú	use_regex)rI  Úmistral3ÚvoxtralÚ	ministralÚpixtral)rP  Ú	functoolsrF  Ú	packagingrG  Útransformers.utils.hubr   r    r   ri   rj   rk   rl   ÚparseÚsetattrrv   r   r€   ré   Úpre_tokenizersÚSplitÚRegexrô   rO   r9   Ú	Metaspacer'  )r„   rÙ   Úpretrained_model_name_or_pathr’   rS  rT  rW  Úis_localrõ   rö   r†   rF  rG  r   rQ  Ú_config_fileÚmistral_config_detectedÚfÚ_configrX  Útransformers_model_typeré   Úsplit_pretokenizerÚcurrent_pretokenizerr    rP  s   &&&&&&&&&&,             @@rI   r  Ú&TokenizersBackend._patch_mistral_regexn  sÏ  ù€ ó* 	Ý'å%ç>á	˜3Ô	÷		ð 		ó 
 ð		÷ œ×0Ò0ØˆHà(Ó4ßŸX˜X©/Ð:W×*XÓ*Xá&Ø-ØØ#ØØ!1Ø6;Ø8=Ø)ô	ˆLð ',Ð#ØÒ'Ü˜,°×9Õ9¸QÜ"Ÿiši¨›l�G÷ :à'.§{¡{Ð3IÓ'JÐ$Ø*1¯+©+°lÓ*CÐ'÷
 (¨G¯M©MÐ:NÓ,OÐRY×R_ÑR_Ð`gÓRhÔ,hç Ø3Ò?Ø3ð ôð  )Ð(øß)¨g¯m©mÐ<PÓ.QÐU\×UbÑUbÐcjÓUkÔ.kØ$Ð$à*.Ð'ç&¯x¨x¹OÐLi×<jÓ<jçÐ#6¸+Ô#EÜ˜IÐ':¸KÐH[Õ<\Ô]ð %Ò,´W¸YÐH[Ð]b×5cÒ5cÜ˜IÐ':¸EÔBÜ—N‘NØ>Ð?\Ð>]ð ^eð eôðH Ðð? '¨$Ó.´'¸)ÐEXÐZ_×2`Ò2`Ü˜IÐ':¸DÔAÛ%à)3×)BÑ)B×)HÑ)HØ *× 0Ñ 0ð só!ð ",ð	 *Ió *Ð&ð ,5×+BÑ+BÐ(ä!Ð"6¸
×8QÑ8Q×8ZÑ8Z×[Ò[à5G˜	×/Ñ/°Ñ2ð" Ðô &Ð&:¸J×<UÑ<U×<_Ñ<_×`Ò`Ø3=×3LÑ3L×3VÑ3VØ16À%ð 4Wó 4Ð0ð
 3=×2KÑ2K×2TÑ2Tà 2Ø 4ðó3˜	Ô/ð Ð÷O :×9Ð9ús   ÂKËK#	)rÿ   r   r  rú   rê   rë   rÒ   r%   )FrN   )NNFN)NNFFFFT)NF)FN)NN)NNN)NNFNFNN)9rt   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r>  r3  r.   rú   Úclassmethodr˜   r�   r}   r)   Úpropertyr/  r4  rA  rV  r  rë   rê   Úsetterrt  r&  r€  r0   r  r¡   Ú_added_tokens_encoderÚ_added_tokens_decoderr™  r�  r¡  r¥  rª  rÂ  rÈ  rÌ  rÒ  rÖ  rÞ  rå  rò  r   rì  r   rë  rä  r  r  r!  rC  r  Ú__static_attributes__Ú__classdictcell__Ú__classcell__)r'  r�   s   @@rI   r'   r'   W   s«  ù‡ € ñ
ð *ÐØ€EØ€Jàódó ðdðL ÷!ó ð!ðF ÷9ó ð9õvh)ðT ÷ó ðð ÷ó ð÷!ò !÷B
õ B
òH
ð4 ñ6ó ð6ð ñ6ó ð6ð ×Ññ%ó ð%ð ×Ññ%ó ð%ò)ð@ ÷Gó ðG÷Að Að ÷ ó ð ð ÷nó ðnð ÷:ó ð:ð 1ÐØ0Ð÷nð n÷ð ÷Fð Fð ÷ó ðð ÷'ó ð'÷-(ò -(÷^ð ÷7ð 7÷6ò 6÷?ò ?÷*ò ÷4vò v÷I9ð I9ð\ gkØ#'Ø,;×,FÑ,FØ2D×2TÑ2TØ!%ØØ$)Ø)-Ø#'Ø&*Ø-1Ø-1Ø*/Ø+0Ø',Ø#ØØ,0÷)Xò X÷t
ð 
÷)ò )÷Vò ô"CðJ óBó ÷Bð BrL   r'   )Grw  r÷   rj   rc   Úcollectionsr   Úcollections.abcr   Úshutilr   Útypingr   Útokenizers.pre_tokenizersrf  r6  Úhuggingface_hubr   ré   r   r   r	   r´  r
   rg   Útokenizers.decodersr   r¨  Útokenizers.modelsr   r   Útokenizers.trainersr   r   r   r   rc  r   r£   r   Úintegrations.ggmlr   Úintegrations.mistral.constantsr   Úmodeling_gguf_pytorch_utilsr   Útokenization_utils_baser   r   r   r   r   r   r   Úutilsr   r   r    r!   Ú
get_loggerrt   r   r  ÚSPECIAL_TOKENS_MAP_FILEÚTOKENIZER_CONFIG_FILEÚTIKTOKEN_VOCAB_FILEÚADDED_TOKENS_FILEr|   r8  r>  r'   ÚPreTrainedTokenizerFastr½   rL   rI   Ú<module>r”     s  ðñó
 Û Û 	Ý #Ý $Ý Ý å 7Ý +ß -Ý /Ý 1Ý 6ß *ß ^Ó ^å .å 0Ý 5Ý DÝ =÷÷ ñ ÷ HÓ Gð 
×	Ò	˜HÓ	%€ð "€Ø3Ð Ø/Ð Ø'Ð ð (Ð ð (Ð à ð õ Ð ð 
ˆ:Øˆ~ØÐ!ØÐ!ð	Ð ð & ~°|ÐEXÐYÐ ñ Ð,Ó-ôYÐ/ó Yó .ðYðz, ,Ò rL   