+
    ®¾jŠ  ã                   óZ  € R t ^ RIt^ RIt^ RIt^ RIHtHt ^ RIHt ^ RI	H
t
HtHtHtHt ^ RIHtHtHtHtHtHt ^ RIHt . R-Ot]P2                  ! R4      t. R.Ot]! R 4      t ! R R]4      t ! R R]R7      t  ! R R
] 4      t! ! R R]"4      t# ! R R4      t$]$! 4       t% ! R R]&4      t' ! R R4      t(R t) ! R R4      t*]*! 4       t+R  t, ! R! R4      t- ! R" R]4      t. ! R# R$]4      t/ ! R% R] ]/R7      t0 ! R& R4      t1 ! R' R	]04      t2R( t3 ! R) R*]/4      t4 ! R+ R,]0]4R7      t5R# )/z 
pygments.lexer
~~~~~~~~~~~~~~

Base lexer classes.

:copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
:license: BSD, see LICENSE for details.
N)Úapply_filtersÚFilter)Úget_filter_by_name)ÚErrorÚTextÚOtherÚ
WhitespaceÚ
_TokenType)Úget_bool_optÚget_int_optÚget_list_optÚmake_analysatorÚFutureÚguess_decode)Ú	regex_optÚLexerÚ
RegexLexerÚExtendedRegexLexerÚDelegatingLexerÚLexerContextÚincludeÚdefaultÚwordsz.*?
c                 ó   € R # )ç        © )Úxs   &ÚY/home/ralf/ical-fahrzeuge/venv/lib/python3.14/site-packages/pip/_vendor/pygments/lexer.pyÚ<lambda>r   "   s   € ©#ó    c                   ó*   a € ] tR t^%t o RtR tRtV tR# )Ú	LexerMetazv
This metaclass automagically converts ``analyse_text`` methods into
static methods which always return float values.
c                óf   € R V9   d   \        VR ,          4      VR &   \        P                  WW#4      # )Úanalyse_text)r   ÚtypeÚ__new__)ÚmcsÚnameÚbasesÚds   &&&&r   r%   ÚLexerMeta.__new__+   s/   € Ø˜QÔÜ /°°.Õ0AÓ BˆAˆnÑÜ�|‰|˜C uÓ0Ð0r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r%   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r!   r!   %   s   ø‡ € ñ÷
1ð 1r   r!   c                   óv   a € ] tR t^1t o RtRt. t. t. t. t	^ t
RtRtRtR tR tR tR tR tRR ltR	 tR
tV tR# )r   an  
Lexer for a specific language.

See also :doc:`lexerdevelopment`, a high-level guide to writing
lexers.

Lexer classes have attributes used for choosing the most appropriate
lexer based on various criteria.

.. autoattribute:: name
   :no-value:
.. autoattribute:: aliases
   :no-value:
.. autoattribute:: filenames
   :no-value:
.. autoattribute:: alias_filenames
.. autoattribute:: mimetypes
   :no-value:
.. autoattribute:: priority

Lexers included in Pygments should have two additional attributes:

.. autoattribute:: url
   :no-value:
.. autoattribute:: version_added
   :no-value:

Lexers included in Pygments may have additional attributes:

.. autoattribute:: _example
   :no-value:

You can pass options to the constructor. The basic options recognized
by all lexers and processed by the base `Lexer` class are:

``stripnl``
    Strip leading and trailing newlines from the input (default: True).
``stripall``
    Strip all leading and trailing whitespace from the input
    (default: False).
``ensurenl``
    Make sure that the input ends with a newline (default: True).  This
    is required for some lexers that consume input linewise.

    .. versionadded:: 1.3

``tabsize``
    If given and greater than 0, expand tabs in the input (default: 0).
``encoding``
    If given, must be an encoding name. This encoding will be used to
    convert the input string to Unicode, if it is not already a Unicode
    string (default: ``'guess'``, which uses a simple UTF-8 / Locale /
    Latin1 detection.  Can also be ``'chardet'`` to use the chardet
    library, if it is installed.
``inencoding``
    Overrides the ``encoding`` if given.
Nc                ó|  € Wn         \        VRR4      V n        \        VRR4      V n        \        VRR4      V n        \        VR^ 4      V n        VP                  RR4      V n        VP                  R	4      ;'       g    V P                  V n        . V n	        \        VR
R4       F  pV P                  V4       K  	  R# )a)  
This constructor takes arbitrary options as keyword arguments.
Every subclass must first process its own options and then call
the `Lexer` constructor, since it processes the basic
options like `stripnl`.

An example looks like this:

.. sourcecode:: python

   def __init__(self, **options):
       self.compress = options.get('compress', '')
       Lexer.__init__(self, **options)

As these options must all be specifiable as strings (due to the
command line usage), there are various utility functions
available to help with that, see `Utilities`_.
ÚstripnlTÚstripallFÚensurenlÚtabsizeÚencodingÚguessÚ
inencodingÚfiltersNr   )Úoptionsr
   r6   r7   r8   r   r9   Úgetr:   r=   r   Ú
add_filter)Úselfr>   Úfilter_s   &, r   Ú__init__ÚLexer.__init__‘   s�   € ð& ŒÜ# G¨Y¸Ó=ˆŒÜ$ W¨j¸%Ó@ˆŒÜ$ W¨j¸$Ó?ˆŒÜ" 7¨I°qÓ9ˆŒØŸ™ J°Ó8ˆŒØŸ™ LÓ1×BÐB°T·]±]ˆŒØˆŒÜ# G¨Y¸Ö;ˆGØ�O‰O˜GÖ$ó <r   c                óª   € V P                   '       d)   R V P                  P                   RV P                   : R2# R V P                  P                   R2# )z<pygments.lexers.z with Ú>)r>   Ú	__class__r+   ©rA   s   &r   Ú__repr__ÚLexer.__repr__¯   sK   € Ø�<�<ˆ<Ø& t§~¡~×'>Ñ'>Ð&?¸vÀdÇlÁlÑEUÐUVÐWÐWà& t§~¡~×'>Ñ'>Ð&?¸qÐAÐAr   c                ó€   € \        V\        4      '       g   \        V3/ VB pV P                  P	                  V4       R# )z(
Add a new stream filter to this lexer.
N)Ú
isinstancer   r   r=   Úappend)rA   rB   r>   s   &&,r   r@   ÚLexer.add_filterµ   s2   € ô ˜'¤6×*Ò*Ü(¨Ñ<°GÑ<ˆGØ�‰×Ñ˜GÖ$r   c                ó   € R# )aa  
A static method which is called for lexer guessing.

It should analyse the text and return a float in the range
from ``0.0`` to ``1.0``.  If it returns ``0.0``, the lexer
will not be selected as the most probable one, if it returns
``1.0``, it will be selected immediately.  This is used by
`guess_lexer`.

The `LexerMeta` metaclass automatically wraps this function so
that it works like a static method (no ``self`` or ``cls``
parameter) and the return value is automatically converted to
`float`. If the return value is an object that is boolean `False`
it's the same as if the return values was ``0.0``.
Nr   )Útexts   &r   r#   ÚLexer.analyse_text½   s   ‚ r   c                óD  € \        V\        4      '       g~   V P                  R8X  d   \        V4      w  rMƒV P                  R8X  d    \	        R4      hVP                  V P                  4      pVP                  R4      '       d   V\        R4      R pM%VP                  R4      '       d   V\        R4      R pVP                  RR4      pVP                  R	R4      pV P                  '       d   VP                  4       pM#V P                  '       d   VP                  R4      pV P                   ^ 8”  d   VP#                  V P                   4      pV P$                  '       d!   VP'                  R4      '       g
   VR,          pV#   \         d   p\	        R4      ThRp?ii ; i)
zVApply preprocessing such as decoding the input, removing BOM and normalizing newlines.r;   Úchardetzchardet is not vendored by pipzkTo enable chardet encoding guessing, please install the chardet library from http://chardet.feedparser.org/Nu   ï»¿z
Ú
Ú)rL   Ústrr:   r   ÚImportErrorÚ_encoding_mapÚ
startswithÚlenÚdecoderS   Údetectr?   Úreplacer7   Ústripr6   r9   Ú
expandtabsr8   Úendswith)rA   rP   Ú_ÚeÚdecodedÚbomr:   Úencs   &&      r   Ú_preprocess_lexer_inputÚLexer._preprocess_lexer_inputÎ   s[  € ô ˜$¤×$Ò$Ø�}‰} Ô'Ü& tÓ,‘��aØ—‘ )Ô+ðTô &Ð&FÓGÐGð$ —{‘{ 4§=¡=Ó1�Ø—?‘? 8×,Ò,Ø¤ H£ Ð/�Døà�‰˜x×(Ò(ØœC ›M˜NÐ+�ð �|‰|˜F DÓ)ˆØ�|‰|˜D $Ó'ˆØ�=�=ˆ=Ø—:‘:“<‰DØ�\�\ˆ\Ø—:‘:˜dÓ#ˆDØ�<‰<˜!ÔØ—?‘? 4§<¡<Ó0ˆDØ�=�=ˆ= §¡¨t×!4Ò!4Ø�D�LˆDàˆøôI #ô TÜ%ð 'Ló MàRSðTûðTús   ÁF ÆFÆFÆFc                ó†   a a€ S P                  S4      oV V3R lpV! 4       pV'       g   \        VS P                  S 4      pV# )a  
This method is the basic interface of a lexer. It is called by
the `highlight()` function. It must process the text and return an
iterable of ``(tokentype, value)`` pairs from `text`.

Normally, you don't need to override this method. The default
implementation processes the options recognized by all lexers
(`stripnl`, `stripall` and so on), and then yields all tokens
from `get_tokens_unprocessed()`, with the ``index`` dropped.

If `unfiltered` is set to `True`, the filtering mechanism is
bypassed even if filters are defined.
c               3   óP   <"  € SP                  S4       F  w  rpW3x € K  	  R # 5i©N)Úget_tokens_unprocessed)ra   ÚtÚvrA   rP   s      €€r   ÚstreamerÚ"Lexer.get_tokens.<locals>.streamer  s&   øé € Ø×6Ñ6°tÖ<‘��aØ�d”
ó =ùs   ƒ#&)rf   r   r=   )rA   rP   Ú
unfilteredrn   Ústreams   ff&  r   Ú
get_tokensÚLexer.get_tokensÿ   s=   ù€ ð ×+Ñ+¨DÓ1ˆö	ñ “ˆßÜ" 6¨4¯<©<¸Ó>ˆFØˆr   c                ó   € \         h)a#  
This method should process the text and return an iterable of
``(index, tokentype, value)`` tuples where ``index`` is the starting
position of the token within the input text.

It must be overridden by subclasses. It is recommended to
implement it as a generator to maximize effectiveness.
)ÚNotImplementedError)rA   rP   s   &&r   rk   ÚLexer.get_tokens_unprocessed  s
   € ô "Ð!r   )r:   r8   r=   r>   r7   r6   r9   )F)r+   r,   r-   r.   r/   r'   ÚaliasesÚ	filenamesÚalias_filenamesÚ	mimetypesÚpriorityÚurlÚversion_addedÚ_examplerC   rI   r@   r#   rf   rr   rk   r0   r1   r2   s   @r   r   r   1   st   ø‡ € ñ8ðv €Dð €Gð
 €Ið €Oð €Ið €Hð €Cð €Mð €Hò%ò<Bò%òò"/ôb÷0	"ð 	"r   )Ú	metaclassc                   ó6   a € ] tR tRt o Rt]3R ltR tRtV t	R# )r   i#  a  
This lexer takes two lexer as arguments. A root lexer and
a language lexer. First everything is scanned using the language
lexer, afterwards all ``Other`` tokens are lexed using the root
lexer.

The lexers from the ``template`` lexer package use this base lexer.
c                ót   € V! R/ VB V n         V! R/ VB V n        W0n        \        P                  ! V 3/ VB  R # ©Nr   )Ú
root_lexerÚlanguage_lexerÚneedler   rC   )rA   Ú_root_lexerÚ_language_lexerÚ_needler>   s   &&&&,r   rC   ÚDelegatingLexer.__init__-  s7   € Ù%Ñ0¨Ñ0ˆŒÙ-Ñ8°Ñ8ˆÔØŒÜ�Š�tÑ'˜wÔ'r   c                óŽ  € R p. p. pV P                   P                  V4       FX  w  rVpW`P                  J d1   V'       d   VP                  \	        V4      V34       . pW',          pKE  VP                  WVV34       KZ  	  V'       d   VP                  \	        V4      V34       \        VV P                  P                  V4      4      # )Ú )r„   rk   r…   rM   rZ   Údo_insertionsrƒ   )rA   rP   ÚbufferedÚ
insertionsÚ
lng_bufferÚirl   rm   s   &&      r   rk   Ú&DelegatingLexer.get_tokens_unprocessed3  s²   € ØˆØˆ
Øˆ
Ø×*Ñ*×AÑAÀ$ÖG‰GˆA�!Ø—K‘KÓßØ×%Ñ%¤s¨8£}°jÐ&AÔBØ!#�JØ•’à×!Ñ! 1¨ )Ö,ñ H÷ Ø×Ñœs 8›}¨jÐ9Ô:Ü˜ZØ!Ÿ_™_×CÑCÀHÓMóOð 	Or   )r„   r…   rƒ   N)
r+   r,   r-   r.   r/   r   rC   rk   r0   r1   r2   s   @r   r   r   #  s!   ø‡ € ñð >Cô (÷Oð Or   c                   ó   € ] tR tRtRtRtR# )r   iJ  zA
Indicates that a state should include rules from another state.
r   N©r+   r,   r-   r.   r/   r0   r   r   r   r   r   J  s   † ñó 	r   c                   ó*   a € ] tR tRt o RtR tRtV tR# )Ú_inheritiQ  z;
Indicates the a state should inherit from its superclass.
c                ó   € R # )Úinheritr   rH   s   &r   rI   Ú_inherit.__repr__U  s   € Ùr   r   N)r+   r,   r-   r.   r/   rI   r0   r1   r2   s   @r   r•   r•   Q  s   ø‡ € ñ÷ð r   r•   c                   ó0   a € ] tR tRt o RtR tR tRtV tR# )Úcombinedi[  z2
Indicates a state combined from multiple states.
c                ó,   € \         P                  W4      # rj   )Útupler%   )ÚclsÚargss   &*r   r%   Úcombined.__new__`  s   € Ü�}‰}˜SÓ'Ð'r   c                ó   € R # rj   r   )rA   rž   s   &*r   rC   Úcombined.__init__c  s   € ár   r   N)	r+   r,   r-   r.   r/   r%   rC   r0   r1   r2   s   @r   rš   rš   [  s   ø‡ € ñò(÷ð r   rš   c                   óT   a € ] tR tRt o RtR tRR ltRR ltRR ltR t	R	 t
R
tV tR# )Ú_PseudoMatchih  z2
A pseudo match object constructed from a string.
c                ó   € W n         Wn        R # rj   )Ú_textÚ_start)rA   ÚstartrP   s   &&&r   rC   Ú_PseudoMatch.__init__m  s   € ØŒ
ØŽr   Nc                ó   € V P                   # rj   )r¦   ©rA   Úargs   &&r   r§   Ú_PseudoMatch.startq  s   € Ø�{‰{Ðr   c                óN   € V P                   \        V P                  4      ,           # rj   )r¦   rZ   r¥   rª   s   &&r   ÚendÚ_PseudoMatch.endt  s   € Ø�{‰{œS §¡›_Õ,Ð,r   c                ó@   € V'       d   \        R 4      hV P                  # )zNo such group)Ú
IndexErrorr¥   rª   s   &&r   ÚgroupÚ_PseudoMatch.groupw  s   € ßÜ˜_Ó-Ð-Ø�z‰zÐr   c                ó   € V P                   3# rj   )r¥   rH   s   &r   ÚgroupsÚ_PseudoMatch.groups|  s   € Ø—
‘
ˆ}Ðr   c                ó   € / # rj   r   rH   s   &r   Ú	groupdictÚ_PseudoMatch.groupdict  s   € Øˆ	r   )r¦   r¥   rj   )r+   r,   r-   r.   r/   rC   r§   r®   r²   rµ   r¸   r0   r1   r2   s   @r   r£   r£   h  s-   ø‡ € ñòôô-ôò
÷ð r   r£   c                 ó   a € RV 3R llpV# )zD
Callback that yields multiple actions for each group in the match.
c           
   3   ó,  <"  € \        S4       Fà  w  r4Vf   K  \        V4      \        J dA   VP                  V^,           4      pV'       d   VP	                  V^,           4      WE3x € K\  K^  VP                  V^,           4      pVf   K|  V'       d   VP	                  V^,           4      Vn        V! V \        VP	                  V^,           4      V4      V4       F  pV'       g   K  Vx € K  	  Kâ  	  V'       d   VP                  4       Vn        R # R # 5irj   )Ú	enumerater$   r	   r²   r§   Úposr£   r®   )ÚlexerÚmatchÚctxr�   ÚactionÚdataÚitemrž   s   &&&    €r   ÚcallbackÚbygroups.<locals>.callback‡  sÚ   øé € Ü" 4ž‰IˆAØŠ~ÙÜ�f“¤Ó+Ø—{‘{ 1 q¥5Ó)�ßØŸ+™+ a¨!¥eÓ,¨fÐ:Ô:ñ ð —{‘{ 1 q¥5Ó)�ØÔ#ßØ"'§+¡+¨a°!­eÓ"4˜œÙ & uÜ'3°E·K±KÀÀAÅÓ4FÈÓ'MÈsö!T˜ç™4Ø"&œJó!Tñ )÷  Ø—i‘i“kˆCŽGñ ùs%   ƒA	DÁ9DÂDÂADÃ'DÃ;Drj   r   )rž   rÄ   s   j r   ÚbygroupsrÆ   ƒ  s   ø€ ÷"ð& €Or   c                   ó   € ] tR tRtRtRtR# )Ú_Thisi�  zL
Special singleton used for indicating the caller class.
Used by ``using``.
r   Nr“   r   r   r   rÈ   rÈ   �  s   † õr   rÈ   c                óÐ   a aa€ / oRS9   d;   SP                  R4      p\        V\        \        34      '       d   VSR&   MRV3SR&   S \        J d   RVV3R llpV# RV VV3R llpV# )a¢  
Callback that processes the match with a different lexer.

The keyword arguments are forwarded to the lexer, except `state` which
is handled separately.

`state` specifies the state that the new lexer will start in, and can
be an enumerable such as ('root', 'inline', 'string') or a simple
string which is assumed to be on top of the root state.

Note: For that to work, `_other` must not be an `ExtendedRegexLexer`.
ÚstateÚstackÚrootc              3   óL  <"  € S	'       d/   S	P                  V P                  4       V P                  ! R/ S	B pMT pVP                  4       pVP                  ! VP                  4       3/ SB  F  w  rVpWT,           Wg3x € K  	  V'       d   VP                  4       Vn        R # R # 5ir‚   )Úupdater>   rG   r§   rk   r²   r®   r½   )
r¾   r¿   rÀ   ÚlxÚsr�   rl   rm   Ú	gt_kwargsÚkwargss
   &&&     €€r   rÄ   Úusing.<locals>.callback¼  s‚   øé € ÷ à—‘˜eŸm™mÔ,Ø—_’_Ñ. vÑ.‘à�Ø—‘“ˆAØ×4Ò4°U·[±[³]ÑPÀiÔP‘��aØ•e˜Q�kÔ!ñ QçØŸ)™)›+�–ñ ùs   ƒBB$ÂB$c              3   ó"  <"  € S
P                  V P                  4       S! R/ S
B pVP                  4       pVP                  ! VP	                  4       3/ S	B  F  w  rVpWT,           Wg3x € K  	  V'       d   VP                  4       Vn        R # R # 5ir‚   )rÎ   r>   r§   rk   r²   r®   r½   )r¾   r¿   rÀ   rÏ   rÐ   r�   rl   rm   Ú_otherrÑ   rÒ   s   &&&     €€€r   rÄ   rÓ   Ë  st   øé € à�M‰M˜%Ÿ-™-Ô(ÙÑ!˜&Ñ!ˆBà—‘“ˆAØ×4Ò4°U·[±[³]ÑPÀiÔP‘��aØ•e˜Q�kÔ!ñ QçØŸ)™)›+�–ñ ùs   ƒA2BÁ6Brj   )ÚpoprL   Úlistrœ   Úthis)rÕ   rÒ   rÐ   rÄ   rÑ   s   fl  @r   ÚusingrÙ   ¦  sr   ú€ ð €IØ�&ÔØ�J‰J�wÓˆÜ�aœ$¤˜×'Ò'Ø!"ˆI�gÒà"(¨! ˆI�gÑà”ƒ~÷	&ð 	&ð2 €O÷		&ñ 		&ð €Or   c                   ó*   a € ] tR tRt o RtR tRtV tR# )r   iØ  z½
Indicates a state or state action (e.g. #pop) to apply.
For example default('#pop') is equivalent to ('', Token, '#pop')
Note that state tuples may be used as well.

.. versionadded:: 2.0
c                ó   € Wn         R # rj   ©rÊ   )rA   rÊ   s   &&r   rC   Údefault.__init__à  s   € ØŽ
r   rÜ   N)r+   r,   r-   r.   r/   rC   r0   r1   r2   s   @r   r   r   Ø  s   ø‡ € ñ÷ð r   c                   ó4   a € ] tR tRt o RtRR ltR tRtV tR# )r   iä  z…
Indicates a list of literal words that is transformed into an optimized
regex that matches any of the words.

.. versionadded:: 2.0
c                ó*   € Wn         W n        W0n        R # rj   )r   ÚprefixÚsuffix)rA   r   rà   rá   s   &&&&r   rC   Úwords.__init__ë  s   € ØŒ
ØŒØŽr   c                óZ   € \        V P                  V P                  V P                  R 7      # )©rà   rá   )r   r   rà   rá   rH   s   &r   r?   Ú	words.getð  s   € Ü˜Ÿ™¨D¯K©KÀÇÁÔLÐLr   )rà   rá   r   N)r‹   r‹   )	r+   r,   r-   r.   r/   rC   r?   r0   r1   r2   s   @r   r   r   ä  s   ø‡ € ñô÷
Mð Mr   c                   óR   a € ] tR tRt o RtR tR tR tR tRR lt	R	 t
R
 tRtV tR# )ÚRegexLexerMetaiô  zk
Metaclass for RegexLexer, creates the self._tokens attribute from
self.tokens on the first instantiation.
c                óŽ   € \        V\        4      '       d   VP                  4       p\        P                  ! W4      P
                  # )zBPreprocess the regular expression component of a token definition.)rL   r   r?   ÚreÚcompiler¿   )r�   ÚregexÚrflagsrÊ   s   &&&&r   Ú_process_regexÚRegexLexerMeta._process_regexú  s/   € ä�eœV×$Ò$Ø—I‘I“KˆEÜ�zŠz˜%Ó(×.Ñ.Ð.r   c                ód   € \        V4      \        J g   \        V4      '       g   Q RV: 24       hV# )z5Preprocess the token component of a token definition.z0token type must be simple type or callable, not )r$   r	   Úcallable)r�   Útokens   &&r   Ú_process_tokenÚRegexLexerMeta._process_token   s4   € ä�E‹{œjÓ(¬H°U¯OªOð 	IØ>¸u¹iÐHó	IÐ;àˆr   c                óZ  € \        V\        4      '       dH   VR8X  d   R
# W9   d   V3# VR8X  d   V# VR,          R8X  d   \        VR,          4      ) # Q RT: 24       h\        V\        4      '       dq   RV P                  ,          pV ;P                  ^,          un        . pV F5  pWa8w  g   Q RV: 24       hVP                  V P                  VW64      4       K7  	  WSV&   V3# \        V\        4      '       d)   V F   pWb9   d   K  VR9   d   K  Q RV,           4       h	  V# Q R	T: 24       h)z=Preprocess the state transition action of a token definition.ú#popú#push:Né   Nz#pop::r÷   NNzunknown new state z_tmp_%dzcircular state ref zunknown new state def éÿÿÿÿ)rõ   rö   )rL   rV   Úintrš   Ú_tmpnameÚextendÚ_process_staterœ   )r�   Ú	new_stateÚunprocessedÚ	processedÚ	tmp_stateÚitokensÚistates   &&&&   r   Ú_process_new_stateÚ!RegexLexerMeta._process_new_state  sB  € ä�i¤×%Ò%à˜FÔ"Ø�	ØÔ)Ø!�|Ð#Ø˜gÔ%Ø Ð Ø˜2• 'Ô)Ü˜I b�MÓ*Ð*Ð*à@Ð 2°9±-Ð@Ó@�uÜ˜	¤8×,Ò,à! C§L¡LÕ0ˆIØ�LŠL˜AÕ�LØˆGÛ#�ØÔ*ÐLÐ.AÀ&ÁÐ,LÓLÐ*Ø—‘˜s×1Ñ1°+Ø2;ó Eö Fñ $ð $+�iÑ Ø�<ÐÜ˜	¤5×)Ò)ã#�ØÖ-ØÐ"3Ö3ð2à(¨6Õ1ó2ð 4ñ $ð Ðà@Ð2°9±-Ð@Ó@�5r   c                ó  € \        V\        4      '       g   Q RV: 24       hV^ ,          R8w  g   Q RV: 24       hW29   d	   W#,          # . ;qBV&   V P                  pW,           EFd  p\        V\        4      '       d>   Wc8w  g   Q RV: 24       hVP	                  V P                  W\        V4      4      4       KW  \        V\        4      '       d   Ko  \        V\        4      '       dQ   V P                  VP                  W4      pVP                  \        P                  ! R4      P                  RV34       KÕ  \        V4      \        J g   Q RV: 24       h V P!                  V^ ,          WS4      pT P'                  T^,          4      p
\)        T4      ^8X  d   RpMT P                  T^,          Y4      pTP                  YŠT34       EKg  	  V#   \"         d(   p	\%        RT^ ,          : R	T: R
T : RT	 24      T	hRp	?	ii ; i)z%Preprocess a single state definition.zwrong state name Ú#zinvalid state name zcircular state reference r‹   Nzwrong rule def zuncompilable regex z
 in state z of z: )rL   rV   Úflagsr   rû   rü   r•   r   r  rÊ   rM   ré   rê   r¿   r$   rœ   rí   Ú	ExceptionÚ
ValueErrorrò   rZ   )r�   rþ   rÿ   rÊ   Útokensrì   Útdefrý   ÚrexÚerrrñ   s   &&&&       r   rü   ÚRegexLexerMeta._process_state)  sò  € ä˜%¤×%Ò%ÐDÐ):¸5¹)Ð'DÓDÐ%Ø�Q�x˜3ŒÐ?Ð"5°e±YÐ ?Ó?ˆØÔØÕ#Ð#Ø$&Ð&ˆ˜5Ñ!Ø—‘ˆØ×&Ñ&ˆDÜ˜$¤×(Ò(à”}ÐKÐ(AÀ%ÁÐ&KÓK�}Ø—‘˜c×0Ñ0°Ü14°T³ó<ô =áÜ˜$¤×)Ò)ñ Ü˜$¤×(Ò(Ø×2Ñ2°4·:±:¸{ÓV�	Ø—‘œrŸzšz¨"›~×3Ñ3°T¸9ÐEÔFÙä˜“:¤Ó&ÐB¨/¸$¹Ð(BÓBÐ&ðrØ×(Ñ(¨¨a­°&Ó@�ð ×&Ñ& t¨A¥wÓ/ˆEä�4‹y˜AŒ~Ø ‘	à×2Ñ2°4¸µ7Ø3>óK�	ð �M‰M˜3 yÐ1×2ñA 'ðB ˆøô ô rÜ Ð#6°t¸Aµw±kÀÈEÉ9ÐTXÐY\ÑX_Ð_aÐbeÐafÐ!gÓhÐnqÐqûðrús   ÅGÇH Ç"G;Ç;H Nc                ó¨   € / ;q0P                   V&   T;'       g    V P                  V,          p\        V4       F  pV P                  W#V4       K  	  V# )z-Preprocess a dictionary of token definitions.)Ú_all_tokensr
  r×   rü   )r�   r'   Ú	tokendefsrÿ   rÊ   s   &&&  r   Úprocess_tokendefÚRegexLexerMeta.process_tokendefT  sM   € à,.Ð.ˆ	—O‘O DÑ)Ø×1Ð1 §¡¨DÕ!1ˆ	Ü˜)–_ˆEØ×Ñ˜y°UÖ;ñ %àÐr   c                óÔ  € / p/ pV P                    F¯  pVP                  P                  R/ 4      pVP                  4        F|  w  rVVP                  V4      pVf!   WaV&    VP	                  \
        4      pY‚T&   K:  VP                  VR4      pVf   KR  WgWˆ^,           %  VP	                  \
        4      p	W‰,           W%&   K~  	  K±  	  V#   \         d     K”  i ; i  \         d     K¦  i ; i)aË  
Merge tokens from superclasses in MRO order, returning a single tokendef
dictionary.

Any state that is not defined by a subclass will be inherited
automatically.  States that *are* defined by subclasses will, by
default, override that state in the superclass.  If a subclass wishes to
inherit definitions from a superclass, it can use the special value
"inherit", which will cause the superclass' state definition to be
included at that point in the state.
r
  N)Ú__mro__Ú__dict__r?   ÚitemsÚindexr—   r	  rÖ   )
r�   r
  ÚinheritableÚcÚtoksrÊ   r  ÚcuritemsÚinherit_ndxÚnew_inh_ndxs
   &         r   Úget_tokendefsÚRegexLexerMeta.get_tokendefs\  sø   € ð ˆØˆØ—”ˆAØ—:‘:—>‘> (¨BÓ/ˆDà $§
¡
¦‘�Ø!Ÿ:™: eÓ,�ØÒ#ð
 %*˜5‘Mð!Ø&+§k¡k´'Ó&:˜ð *5 Ñ&Ùà)Ÿo™o¨e°TÓ:�ØÒ&Ùð 7<˜°¥]Ð3ðCð #(§+¡+¬gÓ"6�Kð *5Õ)B�KÓ&ó9 !-ñ ðB ˆøô) &ô !Ú ð!ûô "ô Úðús$   ÁCÂCÃCÃCÃC'Ã&C'c                ó  € RV P                   9  dY   / V n        ^ V n        \        V R4      '       d   V P                  '       d   M%V P                  RV P                  4       4      V n        \        P                  ! V .VO5/ VB # )z:Instantiate cls after preprocessing its token definitions.Ú_tokensÚtoken_variantsr‹   )
r  r  rú   Úhasattrr#  r  r  r"  r$   Ú__call__)r�   rž   Úkwdss   &*,r   r%  ÚRegexLexerMeta.__call__�  sn   € à˜CŸL™LÔ(Ø ˆCŒOØˆCŒLÜ�sÐ,×-Ò-°#×2D×2DÐ2Dàà!×2Ñ2°2°s×7HÑ7HÓ7JÓK�”ä�}Š}˜SÐ0 4Ò0¨4Ñ0Ð0r   r   rj   )r+   r,   r-   r.   r/   rí   rò   r  rü   r  r  r%  r0   r1   r2   s   @r   rç   rç   ô  s6   ø‡ € ñò
/òò!AòF)ôVò/÷b1ð 1r   rç   c                   óJ   a € ] tR tRt o Rt]P                  t/ tRR lt	Rt
V tR# )r   i›  z¡
Base for simple stateful regular expression-based lexers.
Simplifies the lexing process so that you need only
provide a list of states and regular expressions.
c              #  óâ  "  € ^ pV P                   p\        V4      pWER,          ,          p V EFY  w  rxp	V! W4      p
V
'       g   K  Ve9   \        V4      \        J d   W8V
P	                  4       3x € MV! W
4       Rj  x€L
  V
P                  4       pV	eð   \        V	\        4      '       dh   V	 F`  pVR8X  d%   \        V4      ^8”  d   VP                  4        K,  K.  VR8X  d   VP                  VR,          4       KO  VP                  V4       Kb  	  Mc\        V	\        4      '       d#   \        V	4      \        V4      8¼  d   VR M0WYR1 M+V	R8X  d   VP                  VR,          4       MQ RT	: 24       hWER,          ,          p EK_  	   W,          R8X  d$   R.pVR,          pV\        R3x € V^,          pEK’  V\        W,          3x € V^,          pEK¯   EL\  \         d     R# i ; i5i)	zf
Split ``text`` into (tokentype, text) pairs.

``stack`` is the initial stack (default: ``['root']``)
Nrõ   rö   ºé   NNúwrong state def: rT   rÌ   rø   )r"  r×   r$   r	   r²   r®   rL   rœ   rZ   rÖ   rM   rù   Úabsr   r   r±   )rA   rP   rË   r½   r  Ú
statestackÚstatetokensÚrexmatchrÁ   rý   ÚmrÊ   s   &&&         r   rk   Ú!RegexLexer.get_tokens_unprocessed¾  sÅ  é € ð ˆØ—L‘Lˆ	Ü˜%“[ˆ
Ø¨2¥Õ/ˆØÜ/:Ñ+� )Ù˜TÓ'�ß‘1ØÒ)Ü ›<¬:Ó5Ø"%¨q¯w©w«yÐ"8Ó8á'-¨d£×6Ð6ØŸ%™%›'�CØ Ò,ä% i´×7Ò7Û)2 Ø#(¨F¤?Ü'*¨:£¸Ô':Ø(2¯©Ö(8ñ (;à%*¨gÔ%5Ø$.×$5Ñ$5°jÀµnÖ$Eà$.×$5Ñ$5°eÖ$<ò *3ô (¨	´3×7Ò7ô  # 9›~´°Z³Ô@Ø$.¨r¡Nà$.©zÑ$:Ø&¨'Ô1Ø&×-Ñ-¨j¸­nÕ=àKÐ,=¸i¹]Ð*KÓK 5Ø&/¸2µÕ&?˜ÛñC 0;ðJØ•y DÔ(à&, X˜
Ø&/°Õ&7˜Ø!¤:¨tÐ3Ò3Ø˜q�˜Ú Øœu d¥iÐ/Ò/Ø˜1•H“CòO 7øôP "ô ÚðüsI   ‚A G/Á7G/Á>GÁ?DG/Æ-G Æ:G/Æ=G ÇG/ÇG,Ç(G/Ç+G,Ç,G/r   N©)rÌ   )r+   r,   r-   r.   r/   ré   Ú	MULTILINEr  r
  rk   r0   r1   r2   s   @r   r   r   ›  s&   ø‡ € ñð �L‰L€Eð0 €F÷;ò ;r   c                   ó4   a € ] tR tRt o RtRR ltR tRtV tR# )r   iü  z1
A helper object that holds lexer position data.
Nc                óv   € Wn         W n        T;'       g    \        V4      V n        T;'       g    R .V n        R# )rÌ   N)rP   r½   rZ   r®   rË   )rA   rP   r½   rË   r®   s   &&&&&r   rC   ÚLexerContext.__init__  s0   € ØŒ	ØŒØ×#Ð#œ#˜d›)ˆŒØ×&Ð&˜v˜hˆŽ
r   c                ó\   € R V P                   : RV P                  : RV P                  : R2# )zLexerContext(z, Ú))rP   r½   rË   rH   s   &r   rI   ÚLexerContext.__repr__  s)   € Ø˜tŸy™y™m¨2¨d¯h©h©\¸¸D¿J¹J¹>ÈÐKÐKr   )r®   r½   rË   rP   ©NN)	r+   r,   r-   r.   r/   rC   rI   r0   r1   r2   s   @r   r   r   ü  s   ø‡ € ñô'÷Lð Lr   c                   ó.   a € ] tR tRt o RtRR ltRtV tR# )r   i  z=
A RegexLexer that uses a context object to store its state.
Nc              #  ót  "  € V P                   pV'       g   \        V^ 4      pVR,          pM'TpW4P                  R,          ,          pVP                  p V EF  w  rgpV! WP                  VP
                  4      p	V	'       g   K.  Vez   \        V4      \        J d5   VP                  WyP                  4       3x € V	P                  4       Vn        M2V! W	V4       Rj  x€L
  V'       g   W4P                  R,          ,          pVEe_   \        V\        4      '       dš   V F’  p
V
R8X  d9   \        VP                  4      ^8”  d   VP                  P                  4        K@  KB  V
R8X  d/   VP                  P                  VP                  R,          4       Kw  VP                  P                  V
4       K”  	  M–\        V\        4      '       dB   \        V4      \        VP                  4      8¼  d   VP                  R MOVP                  VR1 M?VR8X  d.   VP                  P                  VP                  R,          4       MQ RT: 24       hW4P                  R,          ,          p EK  	   VP                  VP
                  8¼  d   R# WP                  ,          R8X  dC   R.Vn        VR,          pVP                  \         R3x € V;P                  ^,          un        EKŽ  VP                  \"        WP                  ,          3x € V;P                  ^,          un        EKÏ   ELG  \$         d     R# i ; i5i)	zg
Split ``text`` into (tokentype, text) pairs.
If ``context`` is given, use this lexer context instead.
rÌ   Nrõ   rö   r*  r,  rT   rø   )r"  r   rË   rP   r½   r®   r$   r	   r²   rL   rœ   rZ   rÖ   rM   rù   r-  r   r   r±   )rA   rP   Úcontextr  rÀ   r/  r0  rÁ   rý   r1  rÊ   s   &&&        r   rk   Ú)ExtendedRegexLexer.get_tokens_unprocessed  sb  é € ð
 —L‘Lˆ	ßÜ˜t QÓ'ˆCØ# FÕ+‰KàˆCØ#§I¡I¨b¥MÕ2ˆKØ—8‘8ˆDØÜ/:Ñ+� )Ù˜T§7¡7¨C¯G©GÓ4�ß‘1ØÒ)Ü ›<¬:Ó5Ø"%§'¡'¨6·7±7³9Ð"<Ò<Ø&'§e¡e£g˜C�Gá'-¨d°sÓ';×;Ð;ß#,à.7¿	¹	À"½Õ.F à Ó,ä% i´×7Ò7Û)2 Ø#(¨F¤?Ü'*¨3¯9©9£~¸Ô'9Ø(+¯	©	¯©®ñ (:à%*¨gÔ%5Ø$'§I¡I×$4Ñ$4°S·Y±Y¸rµ]Ö$Cà$'§I¡I×$4Ñ$4°UÖ$;ò *3ô (¨	´3×7Ò7ä" 9›~´°S·Y±Y³Ô?Ø$'§I¡I¨b¡Mà$'§I¡I¨i©jÑ$9Ø&¨'Ô1ØŸI™I×,Ñ,¨S¯Y©Y°r­]Õ;àKÐ,=¸i¹]Ð*KÓK 5Ø&/·	±	¸"µÕ&>˜ÛñG 0;ðJØ—w‘w #§'¡'Ô)ÙØŸG™G•}¨Ô,à%+ H˜œ	Ø&/°Õ&7˜Ø!Ÿg™g¤t¨TÐ1Ò1ØŸš 1��Ú ØŸ'™'¤5¨$¯w©w­-Ð7Ò7Ø—G’G˜q•L—G�GòQ <øôR "ô Úðüs]   ‚A>L8ÂAL8ÃL#ÃL8Ã)FL8É,L& ÊL8Ê	AL& ËL8Ë">L& Ì L8Ì&L5Ì1L8Ì4L5Ì5L8r   r;  )r+   r,   r-   r.   r/   rk   r0   r1   r2   s   @r   r   r     s   ø‡ € ñ÷@ò @r   c              #  óú  "  € \        V 4      p  \        V 4      w  r#RpRpT FÆ  w  rgpTf   Tp^ p	T'       d~   T\        T4      ,           T8¼  dg   Y‰Y&,
           p
T
'       d   YGT
3x € T\        T
4      ,          pT F  w  r¼pYLT3x € T\        T4      ,          pK   	  Y&,
          p	 \        T 4      w  r#K…  T	\        T4      8  g   K¥  YGY‰R 3x € T\        T4      T	,
          ,          pKÈ  	  T'       dA   T;'       g    ^ pT F  w  rçpYGT3x € T\        T4      ,          pK   	   \        T 4      w  r#KH  R#   \         d    T Rj  x€L 
   R# i ; i  \         d    Rp K®  i ; i  \         d    Rp R# i ; i5i)aC  
Helper for lexers which must combine the results of several
sublexers.

``insertions`` is a list of ``(index, itokens)`` pairs.
Each ``itokens`` iterable should be inserted at position
``index`` into the token stream given by the ``tokens``
argument.

The result is a combined token stream.

TODO: clean up the code here.
NTF)ÚiterÚnextÚStopIterationrZ   )rŽ   r
  r  r  ÚrealposÚinsleftr�   rl   rm   ÚoldiÚtmpvalÚit_indexÚit_tokenÚit_valueÚps   &&             r   rŒ   rŒ   S  s”  é € ô �jÓ!€JðÜ˜jÓ)‰ˆð €GØ€Gó ‰ˆˆaàŠ?ØˆGØˆß˜!œc !›f�*¨Ô-Ø˜E�IÐ&ˆFßØ &Ð(Ò(Øœ3˜v›;Õ&�Û07Ñ,� HØ¨Ð1Ò1Øœ3˜x›=Õ(’ñ 18ð •9ˆDðÜ!% jÓ!1‘�‘wð ”#�a“&Ž=Ø˜a ˜hÐ&Ò&Ø”s˜1“v •}Õ$ŠGñ+ ÷0 à—,�,˜QˆÛ‰GˆA�!Ø˜a�-ÒØ”s˜1“vÕŠGñ ð	Ü! *Ó-‰NˆE‘7ñ øôE ô à×ÑÚðûô4 !ô Ø�Úðûô  ô 	ØˆGÚð	üs“   ‚E;�D6 œE;¸A-E;Â&EÂ3E;Ã,E;Ã4E;Ã='E;Ä%E' Ä2E;Ä6EÅE	ÅEÅE;ÅEÅE;ÅE$Å E;Å#E$Å$E;Å'E8Å4E;Å7E8Å8E;c                   ó*   a € ] tR tRt o RtR tRtV tR# )ÚProfilingRegexLexerMetai“  z>Metaclass for ProfilingRegexLexer, collects regex timing info.c                óú   a aaa€ \        V\        4      '       d.   \        VP                  VP                  VP                  R 7      oMVo\
        P                  ! SV4      o\        P                  3V VVV3R llpV# )rä   c                 ó.  <€ SP                   R,          P                  S
S	3^ R.4      p\        P                  ! 4       pSP                  WV4      p\        P                  ! 4       pV^ ;;,          ^,          uu&   V^;;,          Wd,
          ,          uu&   V# )r+  r   rø   )Ú
_prof_dataÚ
setdefaultÚtimer¿   )rP   r½   ÚendposÚinfoÚt0ÚresÚt1r�   Úcompiledr  rÊ   s   &&&    €€€€r   Ú
match_funcÚ:ProfilingRegexLexerMeta._process_regex.<locals>.match_funcž  sn   ø€ Ø—>‘> "Õ%×0Ñ0°%¸°ÀÀ3¸xÓHˆDÜ—’“ˆBØ—.‘. ¨FÓ3ˆCÜ—’“ˆBØ��G�q�L‹GØ��G�r•wÕ‹GØˆJr   )	rL   r   r   rà   rá   ré   rê   ÚsysÚmaxsize)r�   rë   rì   rÊ   rY  rX  r  s   f&&f @@r   rí   Ú&ProfilingRegexLexerMeta._process_regex–  s]   û€ Ü�eœU×#Ò#Ü˜EŸK™K°·±Ø#(§<¡<ô1‰Cð ˆCÜ—:’:˜c 6Ó*ˆä),¯©÷ 	ò 	ð Ðr   r   N)r+   r,   r-   r.   r/   rí   r0   r1   r2   s   @r   rM  rM  “  s   ø‡ € ÙH÷ð r   rM  c                   ó6   a € ] tR tRt o Rt. t^tRR ltRtV t	R# )ÚProfilingRegexLexeri©  zFDrop-in replacement for RegexLexer that does profiling of its regexes.c              #  ón  a "  € S P                   P                  P                  / 4       \        P	                  S W4       R j  x€L
  S P                   P                  P                  4       p\        R VP                  4        4       V 3R lRR7      p\        R V 4       4      p\        4        \        RS P                   P                  \        V4      V3,          4       \        R4       \        R:R R	R
:R R24       \        R4       V F  p\        RV,          4       K  	  \        R4       R #  Lð5i)Nc              3   óÆ   "  € T FW  w  w  rw  r4V\        V4      P                  R 4      P                  RR4      R,          VRV,          RV,          V,          3x € KY  	  R# 5i)zu'z\\Ú\:NéA   Niè  N)Úreprr^   r]   )Ú.0rÐ   ÚrÚnrl   s   &    r   Ú	<genexpr>Ú=ProfilingRegexLexer.get_tokens_unprocessed.<locals>.<genexpr>´  sZ   é € ð @á/>Ñ+™F˜Q¡F Qð œ4 ›7Ÿ=™=¨Ó/×7Ñ7¸ÀÓEÀcÕJØ˜4 !�8 T¨A¥X°¥\õ3ã/>ùs   ‚AA!c                 ó*   <€ V SP                   ,          # rj   )Ú_prof_sort_index)r   rA   s   &€r   r   Ú<ProfilingRegexLexer.get_tokens_unprocessed.<locals>.<lambda>·  s   ø€  A d×&;Ñ&;Ö$<r   T)ÚkeyÚreversec              3   ó2   "  € T F  q^,          x € K  	  R# 5i)é   Nr   )re  r   s   & r   rh  ri  ¹  s   é € Ð+¡d ˜!Ÿš£dùs   ‚z2Profiling result for %s lexing %d chars in %.3f msrÊ   Ú20Ú rë   Ú64z ncalls  tottime  percallz%-20s %-65s %5d %8.4f %8.4fzn==============================================================================================================zn--------------------------------------------------------------------------------------------------------------)rG   rP  rM   r   rk   rÖ   Úsortedr  ÚsumÚprintr+   rZ   )rA   rP   rË   ÚrawdatarÂ   Ú	sum_totalr)   s   f&&    r   rk   Ú*ProfilingRegexLexer.get_tokens_unprocessed¯  sõ   øé € à�‰×!Ñ!×(Ñ(¨Ô,Ü×4Ñ4°T¸4ÓG×GÐGØ—.‘.×+Ñ+×/Ñ/Ó1ˆÜñ @à/6¯}©}¬ó@ô =Ø"ô	$ˆô
 Ñ+¡dÓ+Ó+ˆ	äŒÜÐBØ�~‰~×&Ñ&¬¨D«	°9Ð=õ>ô 	?äˆiÔÜ¼ÄÐIÔJÜˆiÔÛˆAÜÐ/°!Õ3Ö4ñ äˆiÖñ# 	Hùs   ƒ?D5ÁD3ÁC1D5r   Nr3  )
r+   r,   r-   r.   r/   rP  rk  rk   r0   r1   r2   s   @r   r_  r_  ©  s   ø‡ € ÙPà€JØÐ÷ò r   r_  )r   r   r   r   r   r   r—   rÆ   rÙ   rØ   r   r   Úline_re))s   ï»¿zutf-8)s   ÿþ  zutf-32)s     þÿzutf-32be)s   ÿþzutf-16)s   þÿzutf-16be)6r/   ré   r[  rR  Úpip._vendor.pygments.filterr   r   Úpip._vendor.pygments.filtersr   Úpip._vendor.pygments.tokenr   r   r   r   r	   Úpip._vendor.pygments.utilr
   r   r   r   r   r   Úpip._vendor.pygments.regexoptr   Ú__all__rê   rz  rX   ÚstaticmethodÚ_default_analyser$   r!   r   r   rV   r   r•   r—   rœ   rš   r£   rÆ   rÈ   rØ   rÙ   r   r   rç   r   r   r   rŒ   rM  r_  r   r   r   Ú<module>rƒ     sJ  ðñó 
Û 
Û ç =Ý ;ß QÕ Q÷*÷ *å 3ò*€ð �*Š*�WÓ
€ò,€ñ  ¡Ó.Ð ô	1�ô 	1ôo"�iõ o"ôdO�eô OôN	ˆcô 	÷ñ ñ ‹*€ô
ˆuô 
÷ñ ò6÷4ñ ñ ƒw€ò/÷d	ñ 	ôMˆFô Mô d1�Yô d1ôN^� .õ ^÷BLñ LôE˜ô EòP=ô@˜nô ô,˜*Ð0G÷ r   