ó
    F\h²f  ã                   ój  • S r SSKrSSKJr  SSK7  SSKJr  \R                  \:X  d   S5       e\\	1r
\\1r\\1r\
\\1-  r\\\\4\\\\4\\\\40r\R<                  4S jrS	 r S
 r!SS jr"\RF                  S-  r$S\$-  S-
  r%Sr&\$\'4S jr(S r)S r*S r+S r,S r-S r.S r/S r0S r1S r2S r3SS jr4g)zInternal support module for sreé    Né   )Ú_parser)Ú*)Ú_EXTRA_CASESzSRE module mismatchc                 ó.   • X-  (       a  X) -  n X-  U) -  $ ©N© )ÚflagsÚ	add_flagsÚ	del_flagsÚ
TYPE_FLAGSs       Ú#/usr/lib/python3.13/re/_compiler.pyÚ_combine_flagsr      s"   € à×Ø�ÑˆØÑ ) Ñ+Ð+ó    c           
      óÞ  • U R                   n[        n[        n[        n[        n[
        nS n	S n
S nU[        -  (       ac  U[        -  (       dU  U[        -  (       a'  [        R                  n	[        R                  n
[        nO [        R                  n	[        R                  n
U GHÅ  u  pÍXÅ;   Ga  U[        -  (       d  U" U5        U" U5        M,  U[        -  (       a  U" [        U   5        U" U5        MS  U	" U5      (       d  U" U5        U" U5        Mr  U
" U5      nU(       d  U" [         U   5        U" U5        Mš  Xë;  a  U" ["        U   5        U" U5        M¸  U" [$        5        U" U 5      oó" S5        U[&        L a  U" [(        5        U4X¾   -    H  nU" [*        5        U" U5        M     U" [,        5        U" U 5      U-
  X'   GM'  U[.        L a—  [1        XÙX«5      u  nnU[        -  (       a  U[        -  (       a  U" [2        5        O4U(       d  U" [.        5        O U(       d  U" [4        5        OU" [$        5        U" U 5      oó" S5        [7        UX 5        U" U 5      U-
  X'   GMÇ  U[8        L a,  U[:        -  (       a  U" [<        5        GMí  U" [8        5        GMü  XÆ;   aÎ  [?        US   5      (       a]  U" Xl   S   5        U" U 5      oó" S5        U" US   5        U" US   5        [A        XS   U5        U" [B        5        U" U 5      U-
  X'   GMq  U" Xl   S   5        U" U 5      oó" S5        U" US   5        U" US   5        [A        XS   U5        U" U 5      U-
  X'   U" Xl   S   5        GMÏ  U[D        L aj  Uu  nnnnU(       a  U" [F        5        U" US-
  S-  5        [A        U U[I        UUU5      5        U(       a   U" [F        5        U" US-
  S-  S-   5        GM?  GMB  U[J        L aC  U" [J        5        U" U 5      oó" S5        [A        XU5        U" [B        5        U" U 5      U-
  X'   GMŽ  XÇ;   a  U" U5        GMž  XÈ;   a˜  U" U5        U" U 5      oó" S5        US   S:¼  a	  U" S5        ODUS   RM                  5       u  nnU[N        :”  a  [Q        S5      eUU:w  a  [S        S5      eU" U5        [A        XS   U5        U" [B        5        U" U 5      U-
  X'   GM;  U[T        L a}  U" U5        U[V        -  (       a  [X        R[                  XÝ5      nU[        -  (       a  [\        R[                  XÝ5      nO#U[        -  (       a  [^        R[                  XÝ5      nU" U5        GMÁ  U[`        L a’  U" U5        / nUR                   nUS    HM  nU" U 5      oó" S5        [A        XU5        U" [b        5        U" U" U 5      5        U" S5        U" U 5      U-
  X'   MO     U" [,        5        U H  nU" U 5      U-
  U U'   M     GM\  U[d        L aB  U" U5        U[        -  (       a
  [f        U   nOU[        -  (       a	  [h        U   nU" U5        GM§  U[j        L a`  U[        -  (       d	  U" U5        O;U[        -  (       a  U" [l        5        O U(       d  U" [n        5        OU" [p        5        U" US-
  5        GM  U[r        L a   U" U5        U" US   S-
  5        U" U 5      nU" S5        [A        XS   U5        US   (       aM  U" [b        5        U" U 5      nU" S5        U" U 5      U-
  S-   U U'   [A        XS   U5        U" U 5      U-
  U U'   GM¥  U" U 5      U-
  S-   U U'   GM¹  [S        SU< 35      e   g )Nr   é   r   zlooks too much behindz(look-behind requires fixed-width patternz#internal: unsupported operand type ):ÚappendÚlenÚ_LITERAL_CODESÚ_REPEATING_CODESÚ_SUCCESS_CODESÚ_ASSERT_CODESÚSRE_FLAG_IGNORECASEÚSRE_FLAG_LOCALEÚSRE_FLAG_UNICODEÚ_sreÚunicode_iscasedÚunicode_tolowerr   Úascii_iscasedÚascii_tolowerÚOP_LOCALE_IGNOREÚ	OP_IGNOREÚOP_UNICODE_IGNOREÚIN_UNI_IGNOREÚNOT_LITERALÚNEGATEÚLITERALÚFAILUREÚINÚ_optimize_charsetÚIN_LOC_IGNOREÚ	IN_IGNOREÚ_compile_charsetÚANYÚSRE_FLAG_DOTALLÚANY_ALLÚ_simpleÚ_compileÚSUCCESSÚ
SUBPATTERNÚMARKr   ÚATOMIC_GROUPÚgetwidthÚMAXCODEÚerrorÚPatternErrorÚATÚSRE_FLAG_MULTILINEÚAT_MULTILINEÚgetÚ	AT_LOCALEÚ
AT_UNICODEÚBRANCHÚJUMPÚCATEGORYÚ	CH_LOCALEÚ
CH_UNICODEÚGROUPREFÚGROUPREF_LOC_IGNOREÚGROUPREF_IGNOREÚGROUPREF_UNI_IGNOREÚGROUPREF_EXISTS)ÚcodeÚpatternr
   ÚemitÚ_lenÚLITERAL_CODESÚREPEATING_CODESÚSUCCESS_CODESÚASSERT_CODESÚiscasedÚtolowerÚfixesÚopÚavÚloÚskipÚkÚcharsetÚhascasedÚgroupr   r   ÚpÚhiÚtailÚ
tailappendÚskipyesÚskipnos                               r   r2   r2   %   sG  € à�;‰;€DÜ€DÜ"€MÜ&€OÜ"€MÜ €LØ€GØ€GØ€EØÔ"×"¨5´?×+BØÔ#×#Ü×*Ñ*ˆGÜ×*Ñ*ˆGÜ ‰Eä×(Ñ(ˆGÜ×(Ñ(ˆGÜ‰ˆØÔØÔ.×.Ù�R”Ù�R–Øœ×(ÙÔ% bÑ)Ô*Ù�R–Ù˜R—[‘[Ù�R”Ù�R–á˜R“[�ÞÙœ 2™Ô'Ù˜–HØ“_ÙÔ*¨2Ñ.Ô/Ù˜–HáœÔ'Ù ›:�D t¨A¤wØœ[Ò(ÙœVœØ ˜U U¡YÔ.˜ÙœWœÙ˜Qžñ /ñ œ”MÙ!% d£¨dÑ!2�D”JØ”2ŠXÜ 1°"¸wÓ NÑˆG�XØÔ*×*¨u´×/FÙ”]Õ#ÞÙ”R•ÞÙ”Y•á”]Ô#Ù˜“:ˆD˜t AœwÜ˜W eÔ2Ù˜d› dÑ*ˆDŒJØ”3ŠYØ”×&Ù”W—á”S—	ØÓ"Ü�r˜!‘u�~‰~Ù�_Ñ(¨Ñ+Ô,Ù˜D“z� 4¨¤7Ù�R˜‘U”Ù�R˜‘U”Ü˜ !™u eÔ,Ù”W”Ù! $›Z¨$Ñ.�”
á�_Ñ(¨Ñ+Ô,Ù˜D“z� 4¨¤7Ù�R˜‘U”Ù�R˜‘U”Ü˜ !™u eÔ,Ù! $›Z¨$Ñ.�‘
Ù�_Ñ(¨Ñ+×,Ø”:ÒØ-/Ñ*ˆE�9˜i¨ÞÙ”T”
Ù�e˜A‘g˜q‘[Ô!ä�T˜1œn¨U°I¸yÓIÔJÞÙ”T”
Ù�e˜A‘g˜q‘[ ‘]×#ò ð ”<Òñ ”ÔÙ˜“:ˆD˜t AœwÜ�T˜uÔ%Ù”ŒMÙ˜d› dÑ*ˆDŒJØÓ Ù��HØÓÙ�ŒHÙ˜“:ˆD˜t AœwØ�!‰u˜‹zÙ�Q•à˜A™Ÿ™Ó)‘��BØœ“<ÜÐ 7Ó8Ð8Ø˜“8Ü&Ð'QÓRÐRÙ�R”Ü�T˜a™5 %Ô(Ù”ŒMÙ˜d› dÑ*ˆDŒJØ”2ŠXÙ�ŒHØÔ)×)Ü!×%Ñ% bÓ-�Ø”×&Ü—]‘] 2Ó*‘ØÔ)×)Ü—^‘^ BÓ+�Ù��HØ”6Š\Ù�ŒHØˆDØŸ™ˆJØ˜”e�Ù˜D“z� 4¨¤7ä˜ 5Ô)Ù”T”
Ù™4 ›:Ô&©¨Q¬Ù! $›Z¨$Ñ.�“
ñ ñ ”ŒMÛ�Ù! $›Z¨$Ñ.��T“
ô à”8Š^Ù�ŒHØ”×&Ü˜r‘]‘ØÔ)×)Ü ‘^�Ù��HØ”8Š^ØÔ.×.Ù�R•Øœ×(ÙÔ(Õ)ÞÙ”_Õ%áÔ(Ô)Ù��A‘�JØ”?Ò"Ù�ŒHÙ��A‘�q‘ŒMÙ˜4“jˆG¡$ q¤'Ü�T˜a™5 %Ô(Ø�!�uÙ”T”
Ù˜d›�¡T¨!¤WÙ $ T£
¨WÑ 4°qÑ 8��W‘Ü˜ !™u eÔ,Ù# D›z¨FÑ2��V”á $ T£
¨WÑ 4°qÑ 8��W”äÐ!DÀRÁFÐKÓLÐLòy r   c                 ó  • UR                   nU  Hë  u  pEU" U5        U[        L a  M  U[        L a
  U" U5        M+  U[        L d	  U[        L a  U" US   5        U" US   5        MU  U[
        L a  UR                  U5        Mq  U[        L a  UR                  U5        M�  U[        L aH  U[        -  (       a  U" [        U   5        Mµ  U[        -  (       a  U" [        U   5        MÔ  U" U5        MÞ  [        SU< 35      e   U" [        5        g )Nr   r   z#internal: unsupported set operator )r   r&   r'   ÚRANGEÚRANGE_UNI_IGNOREÚCHARSETÚextendÚ
BIGCHARSETrC   r   rD   r   rE   r:   r(   )r[   r
   rK   rM   rV   rW   s         r   r-   r-   Ö   sÓ   € à�;‰;€DÛ‰ˆÙˆRŒØ”Š<ÙØ”7Š]Ù�ŽHØ”5Š[˜BÔ"2Ò2Ù��A‘ŒKÙ��A‘ŽKØ”7Š]Ø�K‰K˜ŽOØ”:ÒØ�K‰K˜ŽOØ”8Š^Ø”×&Ù”Y˜r‘]Ö#ØÔ)×)Ù”Z ‘^Ö$á�R–äÐ!DÀRÁFÐKÓLÐLñ+ ñ, 	Œ…Mr   c                 ó  • / n/ n[        S5      nSnU  GH#  u  p‰  U[        L aJ  U(       a>  U" U	5      n	SXi'   U(       a  X“;   a  X9    H  n
SXj'   M	     U(       d  U" U	5      (       a  SnOÍSXi'   OÈU[        L a�  [        U	S   U	S   S-   5      nU(       af  U(       a-  [	        X+5       H  nSXl'   XÃ;   d  M  X<    H  n
SXj'   M	     M     O[	        X+5       H  nSXl'   M	     U(       d  [        [	        X5      5      nO=U H  nSXl'   M	     O/U[        L a  UR                  X‰45        OUR                  X‰45         GM&     / nSn UR                  SU5      nUS:  a  O[[        U5      S:¼  a  S nOIUR                  SU5      nUS:  a  UR                  U[        U5      45        OUR                  Xþ45        Mt  Ubp  U HA  u  pþXï-
  S:X  a  UR                  [        U45        M&  UR                  [        XþS-
  445        MC     XE-  nU(       d  [        U5      [        U 5      :  a  XG4$ X4$ [        U5      S:X  a)  [        U5      nUR                  [        U45        XE-  nXG4$ [        U5      n0 n[        S5      nSn[        5       n[        SS	S5       H4  nXlUS-    nUU;   a  UU   UUS-  '   M  U=UUS-  '   UU'   US-  nUU-  nM6     [        U5      nU/[        U5      -   USS& UR                  [         U45        XE-  nXG4$ ! [         ar    [        U5      S:X  a  USS-  -  n GM  U(       a:  U[        L a  U(       a  [        nSnO!U[        L d   eU(       d  U" U	5      (       a  SnUR                  X‰45         GNHf = f)
Né   FTr   r   ó    i ÿ  r   i   )Ú	bytearrayr'   re   ÚrangeÚmapÚanyr&   r   Ú
IndexErrorr   rf   ÚfindÚ
_mk_bitmaprg   ÚbytesÚ_bytes_to_codesri   )r[   rS   ÚfixuprU   Úoutr`   Úcharmapr\   rV   rW   rZ   ÚrÚiÚrunsÚqr^   ÚdataÚcompsÚmappingÚblockÚchunks                        r   r*   r*   ñ   s”  € à
€CØ€DÜ˜‹n€GØ€HÜ‰ˆØð;&Øœ’=ÞÙ" 2›Y˜Ø&'˜™Þ  R£[Ø%*¤Y Ø-. £
ñ &/æ'©G°B¯K©KØ'+˜Høà&'˜šØœ5’[Ü˜b ™e R¨¡U¨1¡WÓ-�AÞÞ Ü%(¨¦] Ø-. ¡
Ø#$¥:Ø-2¬X¨Ø56¨«
ó .6ò &3ô &)¨¦] Ø-. £
ñ &3æ'Ü'*¬3¨w«?Ó';˜Høã!"˜AØ)*˜G›Jò "#àœ6’\Ø—J‘J ˜xÕ(à—K‘K  Õ)ò8 ñ} ðB €DØ	€AØ
Ø�L‰L˜˜AÓˆØˆq‹5ØÜˆt‹9˜‹>ØˆDØØ�L‰L˜˜AÓˆØˆq‹5Ø�K‰K˜œC ›LÐ)Ô*ØØ�‰�Q�FÔñ ð Ñã‰DˆAØ‰u˜‹zØ—
‘
œG Q˜<Ö(à—
‘
œE A¨1¡u :Ð.Ö/ñ	 ð
 	‰ˆæ”s˜3“x¤# g£,Ó.Ø�=Ð àÐ Ð ô ˆ7ƒ|�sÓÜ˜'Ó"ˆØ�
‰
”G˜T�?Ô#Ø‰ˆØˆ}Ðô, �G‹n€GØ€EÜ˜‹n€GØ€EÜ‹;€DÜ�1�e˜SÖ!ˆØ˜1˜s™7Ð#ˆØ�E‹>Ø % e¡ˆG�A˜‘HÓà/4Ð4ˆG�A˜‘HÑ  e¡Ø�Q‰JˆEØ�E‰MŠDñ "ô �dÓ€DØ�œ/¨'Ó2Ñ2€Dˆˆ1€IØ‡J�J”
˜DÐ!Ô"Ø�K€CØˆ=ÐøôM ó &Ü�w“< 3Ó&à˜u v™~Ñ-�GÛö ð œU’{Þ Ü!1˜BØ#'™à!¤Wš}Ð,˜}Þ'©G°B¯K©KØ'+˜HØ—‘˜R˜H×%ð5&ús?   œALÁ*LÁ/ALÂ4ALÃ:LÄLÄ$LÌ!N Ì)AN Í?N é   s   0111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111c                 óª   • U R                  [        5      S S S2   n[        [        U5      SU* 5       Vs/ s H  nU" X4U-
  U S5      PM     sn$ s  snf )Néÿÿÿÿr   r   )Ú	translateÚ_BITS_TRANSrn   r   )ÚbitsÚ	_CODEBITSÚ_intÚsrz   s        r   rs   rs   …  s]   € Ø�‰”{Ó#¡D b DÑ)€Aäœ3˜q›6 1 y jÔ1ó3Ú1�ñ ��y‘= !Ð$ aÖ(Ù1ñ3ð 3ùò 3s   µAc                 óä   • [        U 5      R                  S5      nUR                  [        R                  :X  d   e[        U5      UR                  -  [        U 5      :X  d   eUR                  5       $ )NÚI)Ú
memoryviewÚcastÚitemsizer   ÚCODESIZEr   Útolist)ÚbÚas     r   ru   ru   Š  sW   € ä�1‹×Ñ˜3Ó€AØ�:‰:œŸ™Ó&Ð&Ð&Üˆq‹6�A—J‘JÑ¤# a£&Ó(Ð(Ð(Ø�8‰8‹:Ðr   c                 óŒ   • [        U 5      S:w  a  gU S   u  pU[        L a  US   S L =(       a    [        US   5      $ U[        ;   $ )Nr   Fr   r„   )r   r4   r1   Ú_UNIT_CODES)r^   rV   rW   s      r   r1   r1   ‘  sI   € ä
ˆ1ƒv�ƒ{ØØˆq‰T�F€BØ	ŒZÒØ�!‰u˜ˆ}×0¤¨¨B©£Ð0Ø”ÑÐr   c                 óÊ   • S/[        U 5      -  n[        S[        U 5      5       H:  nXS-
     nX   X   :w  a  US:X  a  SX'   M   XS-
     nX   X   :w  a  M  US-   X'   M<     U$ )aN  
Generate an overlap table for the following prefix.
An overlap table is a table of the same size as the prefix which
informs about the potential self-overlap for each index in the prefix:
- if overlap[i] == 0, prefix[i:] can't overlap prefix[0:...]
- if overlap[i] == k with 0 < k <= i, prefix[i-k+1:i+1] overlaps with
  prefix[0:k]
r   r   )r   rn   )ÚprefixÚtablerz   Úidxs       r   Ú_generate_overlap_tablerš   š  s~   € ð ˆC”#�f“+Ñ€EÜ�1”c˜&“kÖ"ˆØ˜‘E‰lˆØ‰i˜6™;Ó&Ø�a‹xØ�‘ÙØ˜a™‘.ˆCð	 ‰i˜6™;Õ&ð ˜Q‘wˆE‹Hñ #ð €Lr   c                 ó|   • U [         -  (       d  g U [        -  (       a  [        R                  $ [        R                  $ r   )r   r   r   r   r   )r
   s    r   Ú_get_iscasedrœ   ¯  s/   € ØÔ&×&ØØ	Ô!×	!Ü×#Ñ#Ð#ä×!Ñ!Ð!r   c                 óÎ  • / nUR                   nS n[        U5      nU R                   H³  u  pgU[        L a   U(       a  U" U5      (       a    O—U" U5        M.  U[        L a|  Uu  p‰p«[        XU
5      nU[        -  (       a  U[        -  (       a    OU[        X¼5      u  pÞnUc   Ub  [        U5      nOUb  [        U5      U-   nUR                  U5        U(       d    O
M³    O   X$S4$ X$S4$ )NTF)r   rœ   r}   r'   r4   r   r   r   Ú_get_literal_prefixr   rh   )rL   r
   r—   ÚprefixappendÚprefix_skiprS   rV   rW   r]   r   r   r^   Úflags1Úprefix1Úprefix_skip1Úgot_alls                   r   rž   rž   ·  sé   € à€FØ—=‘=€LØ€KÜ˜5Ó!€GØ—,”,‰ˆØ”Š=Þ™7 2Ÿ;™;ÙÙ˜ÖØ”:ÒØ-/Ñ*ˆE˜iÜ# E°iÓ@ˆFØÔ+×+°¼×0HÙÜ-@ÀÓ-KÑ*ˆG 7ØÑ"ØÑ$Ü"% f£+‘KØ!Ñ-Ü"% f£+°Ñ"<�KØ�M‰M˜'Ô"ÞÙñ ñ ñ) ð,  DÐ(Ð(Ø Ð%Ð%r   c                 óÐ  •  U R                   (       d  g U R                   S   u  p#U[        La  O0Uu  pEp`[        XU5      nU[        -  (       a  U[        -  (       a  g M]  [        U5      nU[        L a  U(       a  U" U5      (       a  g X#4/$ U[        L aT  / nUR                  n	US    H;  n
U
(       d    g U
S   u  p#U[        L a  U(       a  U" U5      (       d  U	" X#45        M;    g    U$ U[        L au  UnU(       aj  U Hd  u  p#U[        L a  U" U5      (       a    g M  U[        L d  M*  US   S:”  a    g [        [        U[        US   US   S-   5      5      5      (       d  Md    g    U$ g )Nr   r   iÿÿ  )r}   r4   r   r   r   rœ   r'   rA   r   r)   re   rp   ro   rn   )rL   r
   rV   rW   r]   r   r   rS   r[   Úcharsetappendr^   s              r   Ú_get_charset_prefixr§   Ö  sU  € Ø
Ø�|�|ØØ—‘˜a‘‰ˆØ”ZÒØØ/1Ñ,ˆ˜)Ü˜u°Ó;ˆØÔ&×&¨5´?×+BØñ ô ˜5Ó!€GØ	ŒW‚}Þ‘w˜r—{‘{ØØ�ˆzÐØ	ŒvŠØˆØŸ™ˆØ�A”ˆAÞÙØ�q‘T‰FˆBØ”WŠ}¦g±'¸"·+±+Ù˜r˜hÖ'áñ ð ˆØ	ŒrŠØˆÞÛ!‘�Øœ’=Ù˜r—{‘{Ù#ñ #àœ5”[Ø˜!‘u˜v“~Ù#Üœ3˜w¬¨b°©e°R¸±U¸1±WÓ(=Ó>×?Ó?Ù#ñ "ð ˆØr   c                 ó\  • UR                  5       u  p4U[        :”  a  [        nUS:X  a  U R                  [        SSX4/5        g / nSn/ nU[        -  (       a  U[
        -  (       d   [        X5      u  pVnU(       d  [        X5      nU R                  n	U	" [        5        [        U 5      o©" S5        SnU(       a  [        nUc  W(       a	  U[        -  nOU(       a	  U[        -  nU	" U5        U[        :  a	  U	" U5        OU	" [        5        US [         nU	" U5        U(       aS  U	" [        U5      5        Uc  [        U5      nU	" U5        U R                  U5        U R                  [        U5      5        O)U(       a"  [        U5      u  p|U(       a   e[        XrU 5        [        U 5      U
-
  X
'   g )Nr   é   )r7   r8   rh   ÚINFOr   r   rž   r§   r   r   ÚSRE_INFO_PREFIXÚSRE_INFO_LITERALÚSRE_INFO_CHARSETrš   r*   r-   )rK   rL   r
   rX   r_   r—   r    r[   r¤   rM   rY   Úmaskr\   s                r   Ú_compile_infor¯     so  € ð ×ÑÓ�F€BØ	ŒGƒ|ÜˆØ	ˆQƒwØ�‰”T˜1˜a Ð(Ô)Øà€FØ€KØ€GØÔ'×'¨E´O×,Cä':¸7Ó'JÑ$ˆ˜WæÜ)¨'Ó9ˆGð �;‰;€DÙŒ„JÜˆt‹9€D�d˜1”gà€DÞÜˆØÑ¦7ØÔ*Ñ*ˆDøÞ	ØÔ&Ñ&ˆÙˆ„Jà	ŒGƒ|ÙˆR�áŒWŒØ˜œÐ!ˆÙˆ„HæÙŒS�‹[ÔØÑÜ˜v›;ˆKÙˆ[ÔØ�‰�FÔà�‰Ô+¨FÓ3Õ4Þ	Ü-¨gÓ6ÑˆÞÐˆ|Ü˜¨Ô.Ü�T“˜TÑ!€D‚Jr   c                 ó.   • [        U [        [        45      $ r   )Ú
isinstanceÚstrrt   )Úobjs    r   Úisstringr´   =  s   € Ü�cœC¤˜<Ó(Ð(r   c                 óª   • U R                   R                  U-  n/ n[        X U5        [        X R                  U5        UR                  [        5        U$ r   )Ústater
   r¯   r2   r}   r   r3   )r^   r
   rK   s      r   Ú_coder·   @  sF   € à�G‰G�M‰M˜EÑ!€EØ€Dô �$˜5Ô!ô ˆT—6‘6˜5Ô!à‡K�K”Ôà€Kr   c                 ó8   • SSR                  S U  5       5      -  $ )Nú[%s]ú, c              3   óX   #   • U  H   nS [         R                  S-  S-   U4-  v •  M"     g7f)z%#0*xr   N)r   r�   ©Ú.0Úxs     r   Ú	<genexpr>Ú_hex_code.<locals>.<genexpr>P  s'   é € ÐMÊÀ1˜g¬¯©°q©¸Ñ):¸AÐ(>Ö>Êùs   ‚(*)Újoin)rK   s    r   Ú	_hex_coderÂ   O  s   € Ø�D—I‘IÑMÉÓMÓMÑMÐMr   c                 óª   ^ ^^^^^• SS K m[        5       mSm[        [        [        T 5      S-
  5      5      mU UUUUU4S jmT" S[        T 5      5        g )Nr   r   c                 ór
  >^ • S S.UUUU 4S jjnUU4S jnTS-  mT nXA:  Ga  Um TU   nUS-  n[         U   nU[        [        [        [        [
        [        [        4;   a
  U" U5        GO¿U[        [        [        [        [        [        [        [        4;   a#  TU   nUS-  nU" USU[!        U5      4-  5        GOnU["        L a4  TU   nUS-  n[%        [&        U   5      nUS S S:X  d   eU" XVSS  5        GO1U[(        L a4  TU   nUS-  n[%        [*        U   5      nUS S S	:X  d   eU" XVSS  5        GOôU[,        [.        [0        [2        4;   a"  TU   nU" XWXG-   S9  T" US-   XG-   5        XG-  nGO¸U[4        [6        4;   a1  TXDS
-    u  p‰US
-  nU" USX‰[!        U5      [!        U	5      4-  5        GOwU[8        L a,  U" U[;        TXDS[<        -  -    5      5        US[<        -  -  nGOBU[>        L aª  TU   nUS-  n[A        SRC                  U4S jTXDS[D        RF                  -  -     5       5      5      n
U" XVU
5        US[D        RF                  -  -  nTS-  m[I        U5       H,  nU" [;        TXDS[<        -  -    5      5        US[<        -  -  nM.     TS-  mGO�U[J        [L        [N        [P        [R        4;   a  TU   nUS-  nU" XV5        GO\U[T        L a  TU   nU" XWXG-   S9  US-  nGO>U[V        L a\  TU   nU" XWXG-   S9  U(       a@  T" US-   XG-   5        XG-  nUm TU   nU(       a  U" SXtU-   S9  OU" [        5        U(       a  M@  US-  nGOÙU[X        [Z        [\        [^        [`        4;   a4  TXDS-    u  p|nU[b        :X  a  SnU" XWXÍXG-   S9  T" US-   XG-   5        XG-  nGO†U[d        L a  TXDS
-    u  pgU" XVXtU-   S9  US
-  nGOcU[f        [h        4;   a'  TXDS
-    u  pvU" XWXdU-   S9  T" US
-   XG-   5        XG-  nGO,U[j        L a"  TU   nU" XWXG-   S9  T" US-   XG-   5        XG-  nGOU[l        L aí  TXDS-    u  p~pÍU[b        :X  a  SnU" XW[o        U5      XÍXG-   S9  US-   m U[p        -  (       a€  TUS-   US-    u  nnU" SU5        US-   m TT T U-    nU" SSSRC                  S U 5       5      -  SSRC                  [s        [         U5      5      -  5        T U-  m U" STT T U-    5        T U-  m U[t        -  (       a  TS-  mU" S5        T" T XG-   5        TS-  mXG-  nO[w        U5      eXA:  a  GM  TS-  mg )N)Útoc                 óŽ   >• U b  TR                  U 5        USU 4-  4-  n[        STTTT;   a  SOS4-  STS-
  -  S9  [        U6   g )Nz(to %d)z%*d%s Ú:Ú.z  r   ©Úend)ÚaddÚprint)rÅ   ÚargsÚlabelsÚlevelÚoffset_widthÚstarts     €€€€r   Úprint_Ú!dis.<locals>.dis_.<locals>.print_Z  sW   ø€ Ø‰~Ø—
‘
˜2”Ø˜ b UÑ*Ð,Ñ,�Ü�(˜l¨E¸%À6»/±3ÈsÐSÑSØ˜E !™G‘nò&ä�4ŠLr   c                  ó:   >• [        STST-  -   -  S9  [        U 6   g )NÚ r   rÉ   )rÌ   )rÍ   rÏ   rÐ   s    €€r   Úprint_2Ú"dis.<locals>.dis_.<locals>.print_2b  s    ø€ Ü�c˜<¨!¨E©'Ñ1Ñ2Ò3Ü�4ŠLr   r   z
%#02x (%r)é   ÚAT_é	   Ú	CATEGORY_r   z%#02x %#02x (%r-%r)rk   r   c              3   óx   >#   • U  H/  nUR                  [        R                  TR                  5      v •  M1     g 7fr   )Úto_bytesr   r�   Ú	byteorder)r½   r¾   Úsyss     €r   r¿   Ú$dis.<locals>.dis_.<locals>.<genexpr>“  s/   øé € ð (RÚ1P¨Að )*¯
©
´4·=±=À#Ç-Á-×(PÐ(PÚ1Pùs   ƒ7:ÚbranchÚ	MAXREPEATr©   é   z  prefix_skipz  prefixr¹   rº   c              3   ó,   #   • U  H
  nS U-  v •  M     g7f)z%#02xNr	   r¼   s     r   r¿   rà   Ô  s   é € Ð.KÂF¸q¨w¸®{ÂFùs   ‚z(%r)Ú z	  overlapÚin)<ÚOPCODESr3   r(   r.   r0   Ú	MAX_UNTILÚ	MIN_UNTILr&   r'   r%   ÚLITERAL_IGNOREÚNOT_LITERAL_IGNOREÚLITERAL_UNI_IGNOREÚNOT_LITERAL_UNI_IGNOREÚLITERAL_LOC_IGNOREÚNOT_LITERAL_LOC_IGNOREÚchrr;   r²   ÚATCODESrC   ÚCHCODESr)   r,   r$   r+   re   rf   rg   rÂ   rˆ   ri   ÚlistrÁ   r   r�   rn   r5   rF   rH   rI   rG   rB   rA   ÚREPEATÚ
REPEAT_ONEÚMIN_REPEAT_ONEÚPOSSESSIVE_REPEATÚPOSSESSIVE_REPEAT_ONErâ   rJ   ÚASSERTÚ
ASSERT_NOTr6   rª   Úbinr«   ro   r­   Ú
ValueError)rÑ   rÊ   rÒ   rÖ   rz   rV   ÚargrY   rX   r_   r   ÚjÚminÚmaxr
   Ú
prefix_lenr    r—   rK   Údis_rÎ   rÏ   rÐ   rß   s   `                 €€€€€€r   r  Údis.<locals>.dis_Y  sÄ  ù€ Ø!÷ 	ó 	ö	ð
 	�‰
ˆØˆØŒgØˆEØ�a‘ˆBØ�‰FˆAÜ˜‘ˆBØ”gœw¬¬WÜ¤¬Fð4ó 4á�r–
Øœ¤Ü&Ô(:Ü*Ô,BÜ*Ô,BðDó Dð ˜1‘g�Ø�Q‘�Ù�r˜<¨3´°C³¨/Ñ9Ö:Ø”r’Ø˜1‘g�Ø�Q‘�Üœ' #™,Ó'�Ø˜2˜A�w %Ó'Ð'Ð'Ù�r˜q˜r˜7Ö#Ø”x’Ø˜1‘g�Ø�Q‘�Üœ' #™,Ó'�Ø˜2˜A�w +Ó-Ð-Ð-Ù�r˜q˜r˜7Ö#ØœœI¤}´mÐDÓDØ˜A‘w�Ù�r A¡FÒ+Ù�Q�q‘S˜!™&Ô!Ø‘	’ØœÔ/Ð0Ó0Ø˜a 1¡˜‘�Ø�Q‘�Ù�rÐ0°B¼CÀ»GÄSÈÃWÐ3MÑMÖNØ”w’Ù�rœ9 T¨!°´i±Ñ-?Ð%@ÓAÔBØ�Sœ)‘^Ñ#’Ø”zÒ!Ø˜1‘g�Ø�Q‘�Ü˜sŸx™xô (RØ15°a¸SÄ$Ç-Á-Ñ=OÑ9OÑ1Pó(Ró  Ró S�á�r Ô(Ø�Sœ$Ÿ-™-Ñ'Ñ'�Ø˜‘
�Ü˜sž�AÙœI d¨1°#´y±.Ñ.@Ð&AÓBÔCØ˜œi™Ñ'’Añ $ð ˜‘
’Øœœh¬Ô9LÜ+ð-ó -à˜1‘g�Ø�Q‘�Ù�r–Ø”t’Ø˜A‘w�Ù�r A¡FÒ+Ø�Q‘’Ø”v’Ø˜A‘w�Ù�r A¡FÒ+ÞÙ˜˜1™˜a™fÔ%Ø‘I�AØ�EØ ™7�DÞÙ˜x¨°D±&Ó9áœwœ÷ �dð �Q‘’Øœ¤
¬NÜ)Ô+@ðBó Bà!% a¨1© ‘�˜3Øœ)Ó#Ø%�CÙ�r ¨a©fÒ5Ù�Q�q‘S˜!™&Ô!Ø‘	’Ø”Ò&Ø   a¡C˜L‘	�Ù�r ¨4©Ò0Ø�Q‘’Øœ¤
Ð+Ó+Ø   a¡C˜L‘	�Ù�r ¨4©Ò0Ù�Q�q‘S˜!™&Ô!Ø‘	’Ø”|Ò#Ø˜A‘w�Ù�r A¡FÒ+Ù�Q�q‘S˜!™&Ô!Ø‘	’Ø”t’Ø(,¨Q°!±¨Ñ%�˜SØœ)Ó#Ø%�CÙ�r¤ U£¨S¸!¹&ÒAØ˜!™�Øœ?×*Ø.2°1°Q±3¸¸!¹¨nÑ+�J Ù˜O¨[Ô9Ø ™E�EØ! %¨¨zÑ)9Ð:�FÙ˜JØ" T§Y¡YÑ.KÁFÓ.KÓ%KÑKØ" R§W¡W¬S´°fÓ-=Ó%>Ñ>ô@ð ˜ZÑ'�EÙ˜K¨¨e°U¸:Ñ5EÐ)FÔGØ˜ZÑ'�EØÔ+×+Ø˜Q‘J�EÙ˜D”MÙ˜ ¡Ô'Ø˜Q‘J�EØ‘	‘ä  “nÐ$ðo Žgðr 	�‰
‰r   )rß   Úsetr   r²   )rK   r  rÎ   rÏ   rÐ   rß   s   `@@@@@r   Údisr  R  sF   ý€ Ûä‹U€FØ€EÜ”sœ3˜t›9 q™=Ó)Ó*€L÷Iò IñV 	ˆŒC�‹IÕr   c           
      óð  • [        U 5      (       a  U n[        R                  " X5      n OS n[        X5      nU[        -  (       a  [        5         [        U5        U R                  R                  nS /U R                  R                  -  nUR                  5        H	  u  pgXeU'   M     [        R                  " X!U R                  R                  -  UU R                  R                  S-
  U[        U5      5      $ )Nr   )r´   r   Úparser·   ÚSRE_FLAG_DEBUGrÌ   r  r¶   Ú	groupdictÚgroupsÚitemsr   Úcompiler
   Útuple)r^   r
   rL   rK   Ú
groupindexÚ
indexgrouprZ   rz   s           r   r  r  ç  sÂ   € ô �‡{�{ØˆÜ�MŠM˜!Ó#‰àˆä�‹?€DàŒ~×ÜŒÜˆDŒ	ð —‘×"Ñ"€JØ�˜!Ÿ'™'Ÿ.™.Ñ(€JØ× Ñ Ö"‰ˆØ�1‹ñ #ô �<Š<Ø˜Ÿ™Ÿ™Ñ&¨Ø	�‰�‰�qÑØ”E˜*Ó%ó
ð 
r   )NNN)r   )5Ú__doc__r   rå   r   Ú
_constantsÚ_casefixr   ÚMAGICr'   r%   r   r3   r(   r   rù   rú   r   r.   r)   r•   Ú
MIN_REPEATrô   ré   rö   Ú
MAX_REPEATrè   rõ   r÷   rø   r   r   r   r2   r-   r*   r�   rˆ   r8   r†   Úintrs   ru   r1   rš   rœ   rž   r§   r¯   r´   r·   rÂ   r  r  r	   r   r   Ú<module>r     s  ðñ &ã Ý Ü Ý "à‡z�z�UÓÐ 1Ð1Ó 1Ðà˜;Ð'€Ø˜7Ð#€Ø˜Ð$€Ø  R˜yÑ(€ð �˜ NÐ3Ø�˜ JÐ/ØÐ)¨7Ð4IÐJðÐ ð &×0Ñ0ô,òoMòbô6Oðb �M‰M˜AÑ€	Ø�	‰>˜QÑ
€Ø€Ø(¨sô 3ò
òòò*"ò&ò>*òX9"òv)òòNòRõj
r   