Ë
    ì—0jg  ã                   ó`  — d Z ddlZddlmZ ddl­ ddlmZ ej                  ek(  sJ d«       ‚ee	hZ
eehZeehZe
eehz  ZeeeefeeeefeeeefiZej<                  fd„Zd	„ Z d
„ Z!dd„Z"ejF                  dz  Z$de$z  dz
  Z%dZ&e$e'fd„Z(d„ Z)d„ Z*d„ Z+d„ Z,d„ Z-d„ Z.d„ Z/d„ Z0d„ Z1d„ Z2d„ Z3dd„Z4y)zInternal support module for sreé    Né   )Ú_parser)Ú*)Ú_EXTRA_CASESzSRE module mismatchc                 ó*   — ||z  r| | z  } | |z  | z  S ©N© )ÚflagsÚ	add_flagsÚ	del_flagsÚ
TYPE_FLAGSs       ú)/usr/local/lib/python3.12/re/_compiler.pyÚ_combine_flagsr      s(   € à�:ÒØ�*�ÑˆØ�IÑ ) Ñ+Ð+ó    c           
      óü  — | j                   }t        }t        }t        }t        }t
        }d }	d }
d }|t        z  rY|t        z  sP|t        z  r't        j                  }	t        j                  }
t        }n t        j                  }	t        j                  }
|D �]d  \  }}||v �r |t        z  s ||«        ||«       Œ&|t        z  r |t        |   «        ||«       ŒG |	|«      s ||«        ||«       Œ` |
|«      }|s |t         |   «        ||«       Œ‚||vr |t"        |   «        ||«       Œž |t$        «        || «      } |d«       |t&        u r |t(        «       |f||   z   D ]  } |t*        «        ||«       Œ  |t,        «        || «      |z
  | |<   �Œ|t.        u r‡t1        ||	|
|«      \  }}|t        z  r|t        z  r |t2        «       n*|s |t.        «       n|s |t4        «       n |t$        «        || «      } |d«       t7        ||| «        || «      |z
  | |<   �Œ›|t8        u r%|t:        z  r |t<        «       �Œº |t8        «       �ŒÈ||v rç|t>        z  rtA        d|›�«      ‚tC        |d   «      r` |||   d   «        || «      } |d«        ||d   «        ||d   «       tE        | |d   |«        |tF        «        || «      |z
  | |<   �ŒQ |||   d   «        || «      } |d«        ||d   «        ||d   «       tE        | |d   |«        || «      |z
  | |<    |||   d   «       �Œ³|tH        u r^|\  }}}}|r |tJ        «        ||dz
  dz  «       tE        | |tM        |||«      «       |s�Œú |tJ        «        ||dz
  dz  dz   «       �Œ|tN        u rE |tN        «        || «      } |d«       tE        | ||«        |tF        «        || «      |z
  | |<   �Œf||v r
 ||«       �Œt||v r— ||«        || «      } |d«       |d   dk\  r	 |d«       nB|d   jQ                  «       \  }}|tR        kD  rtA        d«      ‚||k7  rtA        d«      ‚ ||«       tE        | |d   |«        |tF        «        || «      |z
  | |<   �Œ|tT        u rp ||«       |tV        z  rtX        j[                  ||«      }|t        z  rt\        j[                  ||«      }n|t        z  rt^        j[                  ||«      } ||«       �Œ‡|t`        u r� ||«       g }|j                   }|d   D ]O  } || «      } |d«       tE        | ||«        |tb        «        | || «      «        |d«        || «      |z
  | |<   ŒQ  |t,        «       |D ]  } || «      |z
  | |<   Œ �Œ|td        u r7 ||«       |t        z  r
tf        |   }n|t        z  r	th        |   } ||«       �Œ^|tj        u rP|t        z  s	 ||«       n1|t        z  r |tl        «       n|s |tn        «       n |tp        «        ||dz
  «       �Œ¶|tr        u r› ||«        ||d   dz
  «        || «      } |d«       tE        | |d   |«       |d   rM |tb        «        || «      } |d«        || «      |z
  dz   | |<   tE        | |d   |«        || «      |z
  | |<   �ŒF || «      |z
  dz   | |<   �ŒYtA        d|›�«      ‚ y )Nr   z(internal: unsupported template operator é   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ÚSRE_FLAG_TEMPLATEÚerrorÚ_simpleÚ_compileÚSUCCESSÚ
SUBPATTERNÚMARKr   ÚATOMIC_GROUPÚgetwidthÚMAXCODEÚ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   r4   r4   %   sŠ  € à�;‰;€DÜ€DÜ"€MÜ&€OÜ"€MÜ €LØ€GØ€GØ€EØÔ"Ò"¨5´?Ò+BØÔ#Ò#Ü×*Ñ*ˆGÜ×*Ñ*ˆGÜ ‰Eä×(Ñ(ˆGÜ×(Ñ(ˆGÜ‰ˆˆBØ�ÒØÔ.Ò.Ù�R”Ù�R•ØœÒ(ÙÔ% bÑ)Ô*Ù�R•Ù˜R”[Ù�R”Ù�R•á˜R“[�ÙÙœ 2™Ô'Ù˜•HØ˜u‘_ÙÔ*¨2Ñ.Ô/Ù˜•HáœÔ'Ù ›:�D¡t¨A¤wØœ[Ñ(ÙœVœØ ˜U U¨2¡YÔ.˜ÙœWœÙ˜Q�ð /ñ œ”MÙ!% d£¨dÑ!2�D˜“JØ”2‰XÜ 1°"°g¸wÈÓ NÑˆG�XØÔ*Ò*¨u´Ò/FÙ”]Õ#ÙÙ”R•ÙÙ”Y•á”]Ô#Ù˜“:ˆD™t AœwÜ˜W e¨TÔ2Ù˜d› dÑ*ˆD�‹JØ”3‰YØ”Ò&Ù”W–á”S–	Ø�?Ñ"ØÔ(Ò(ÝÉBÐPÓQÐQÜ�r˜!‘uŒ~Ù�_ RÑ(¨Ñ+Ô,Ù˜D“z�¡4¨¤7Ù�R˜‘U”Ù�R˜‘U”Ü˜˜r !™u eÔ,Ù”W”Ù! $›Z¨$Ñ.��T“
á�_ RÑ(¨Ñ+Ô,Ù˜D“z�¡4¨¤7Ù�R˜‘U”Ù�R˜‘U”Ü˜˜r !™u eÔ,Ù! $›Z¨$Ñ.��T‘
Ù�_ RÑ(¨Ñ+Ö,Ø”:ÑØ-/Ñ*ˆ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˜2˜uÔ%Ù”ŒMÙ˜d› dÑ*ˆD�‹JØ�=Ñ Ù�ŽHØ�<ÑÙ�ŒHÙ˜“:ˆD™t AœwØ�!‰u˜ŠzÙ�Q•à˜A™Ÿ™Ó)‘��BØœ’<ÜÐ 7Ó8Ð8Ø˜’8ÜÐ JÓKÐKÙ�R”Ü�T˜2˜a™5 %Ô(Ù”ŒMÙ˜d› dÑ*ˆD�‹JØ”2‰XÙ�ŒHØÔ)Ò)Ü!×%Ñ% b¨"Ó-�Ø”Ò&Ü—]‘] 2 rÓ*‘ØÔ)Ò)Ü—^‘^ B¨Ó+�Ù�ŽHØ”6‰\Ù�ŒHØˆDØŸ™ˆJØ˜”e�Ù˜D“z�¡4¨¤7ä˜˜r 5Ô)Ù”T”
Ù™4 ›:Ô&©¨Q¬Ù! $›Z¨$Ñ.��T’
ð ñ ”ŒMÛ�Ù! $›Z¨$Ñ.��T’
ò à”8‰^Ù�ŒHØ”Ò&Ü˜r‘]‘ØÔ)Ò)Ü ‘^�Ù�ŽHØ”8‰^ØÔ.Ò.Ù�R•ØœÒ(ÙÔ(Õ)ÙÙ”_Õ%áÔ(Ô)Ù��A‘ŽJØ”?Ñ"Ù�ŒHÙ��A‘�q‘ŒMÙ˜4“jˆG¡$ q¤'Ü�T˜2˜a™5 %Ô(Ø�!ŠuÙ”T”
Ù˜d›�¡T¨!¤WÙ $ T£
¨WÑ 4°qÑ 8��W‘Ü˜˜r !™u eÔ,Ù# D›z¨FÑ2��V“á $ T£
¨WÑ 4°qÑ 8��W“åÁ2ÐGÓHÐHñ} r   c                 óâ  — |j                   }| D ]Ò  \  }} ||«       |t        u rŒ|t        u r	 ||«       Œ(|t        u s|t        u r ||d   «        ||d   «       ŒO|t
        u r|j                  |«       Œi|t        u r|j                  |«       Œƒ|t        u r;|t        z  r |t        |   «       Œ¤|t        z  r |t        |   «       Œ½ ||«       ŒÆt        d|›�«      ‚  |t        «       y )Nr   r   z#internal: unsupported set operator )r   r&   r'   ÚRANGEÚRANGE_UNI_IGNOREÚCHARSETÚextendÚ
BIGCHARSETrC   r   rD   r   rE   r2   r(   )r[   r
   rK   rM   rV   rW   s         r   r-   r-   Ø   sÐ   € à�;‰;€DÛ‰ˆˆBÙˆRŒØ”‰<ØØ”7‰]Ù��HØ”5‰[˜BÔ"2Ñ2Ù��A‘ŒKÙ��A‘�KØ”7‰]Ø�K‰K˜�OØ”:ÑØ�K‰K˜�OØ”8‰^Ø”Ò&Ù”Y˜r‘]Õ#ØÔ)Ò)Ù”Z ‘^Õ$á�R•åÁ2ÐGÓHÐHð+ ñ, 	Œ…Mr   c                 ór  — g }g }t        d«      }d}| D ]ü  \  }}		 	 |t        u r7|r/ ||	«      }	d||	<   |r|	|v r||	   D ]  }
d||
<   Œ	 |sÇ ||	«      r¿d}n¼d||	<   n¶|t        u rt        |	d   |	d   dz   «      }|r[|r+t	        ||«      D ]  }d||<   ||v sŒ||   D ]  }
d||
<   Œ	 Œ nt	        ||«      D ]  }d||<   Œ	 |sRt        t	        ||«      «      }n<|D ]  }d||<   Œ	 n/|t        u r|j                  ||	f«       n|j                  ||	f«       Œþ g }d}	 |j                  d|«      }|dk  rnYt        |«      dk\  rd }nH|j                  d|«      }|dk  r|j                  |t        |«      f«       n|j                  ||f«       Œq|�l|D ]A  \  }}||z
  dk(  r|j                  t        |f«       Œ&|j                  t        ||dz
  ff«       ŒC ||z  }|st        |«      t        | «      k  r||fS | |fS t        |«      dk(  r+t        |«      }|j                  t        |f«       ||z  }||fS t        |«      }i }t        d«      }d}t        «       }t        dd	d«      D ]1  }|||dz    }||v r||   ||dz  <   Œ|x||dz  <   ||<   |dz  }||z  }Œ3 t        |«      }|gt        |«      z   |dd |j                  t         |f«       ||z  }||fS # t        $ r[ t        |«      dk(  r|ddz  z  }Y �ŒÚ|r)|t        u r|rt        }d}n|t        u sJ ‚|s
 ||	«      rd}|j                  ||	f«       Y �Œ$w xY w)
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Û‰ˆˆBØð;&Øœ‘=ÙÙ" 2›Y˜Ø&'˜ ™Ù  R¨5¡[Ø%*¨2¤Y Ø-. ¨¢
ð &/á'©G°B¬KØ'+™Hà&'˜ šØœ5‘[Ü˜b ™e R¨¡U¨1¡WÓ-�AÙÙ Ü%(¨°¦] Ø-. ¨¡
Ø#$¨¢:Ø-2°1¬X¨Ø56¨°ª
ñ .6ñ &3ô &)¨°¦] Ø-. ¨¢
ð &3á'Ü'*¬3¨w¸«?Ó';™Hã!"˜AØ)*˜G AšJñ "#àœ6‘\Ø—J‘J  B˜xÕ(à—K‘K  R Ô)ð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ˆqØ�1‰u˜ŠzØ—
‘
œG Q˜<Õ(à—
‘
œE A q¨1¡u :Ð.Õ/ð	 ð
 	ˆt‰ˆá”s˜3“x¤# g£,Ò.Ø˜�=Ð à˜Ð Ð ô ˆ7ƒ|�sÒÜ˜'Ó"ˆØ�
‰
”G˜T�?Ô#Øˆt‰ˆØ�Hˆ}Ðô, �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Ð!Ô"Øˆ4�K€CØ�ˆ=ÐøôM ò &Ü�w“< 3Ò&à˜u v™~Ñ-�GÚñ ð œU‘{Ù Ü!1˜BØ#'™à!¤W™}Ð,˜}Ù'©G°B¬KØ'+˜HØ—‘˜R ˜H×%ð5&ús   œA8KÂA<KËL6Ë4>L6Ì5L6é   s   0111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111c                 ó¦   — | j                  t        «      d d d…   }t        t        |«      d| «      D �cg c]  } ||||z
  | d«      ‘Œ c}S c c}w )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�ñ ��1�y‘= !Ð$ aÕ(Ø1ñ3ð 3ùò 3s   µAc                 óà   — t        | «      j                  d«      }|j                  t        j                  k(  sJ ‚t        |«      |j                  z  t        | «      k(  sJ ‚|j                  «       S )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                 ó~   — t        | «      dk7  ry| d   \  }}|t        u r|d   d u xr t        |d   «      S |t        v S )Nr   Fr   r„   )r   r6   r3   Ú_UNIT_CODES)r^   rV   rW   s      r   r3   r3   “  sK   € ä
ˆ1ƒv�‚{ØØˆq‰T�F€BˆØ	ŒZÑØ�!‰u˜ˆ}Ò0¤¨¨B©£Ð0Ø”ÐÐr   c                 óÌ   — dgt        | «      z  }t        dt        | «      «      D ]<  }||dz
     }| |   | |   k7  r|dk(  rd||<   Œ!||dz
     }| |   | |   k7  rŒ|dz   ||<   Œ> |S )aj  
    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Ö"ˆØ�A˜‘E‰lˆØ�Q‰i˜6 #™;Ò&Ø�aŠxØ��a‘ØØ˜˜a™‘.ˆCð	 �Q‰i˜6 #™;Ó&ð ˜Q‘wˆE�!ŠHð #ð €Lr   c                 óh   — | t         z  sy | t        z  rt        j                  S t        j                  S r   )r   r   r   r   r   )r
   s    r   Ú_get_iscasedrœ   ±  s/   € ØÔ&Ò&ØØ	Ô!Ò	!Ü×#Ñ#Ð#ä×!Ñ!Ð!r   c                 óœ  — g }|j                   }d }t        |«      }| j                  D ]™  \  }}|t        u r|r
 ||«      r n‡ ||«       Œ#|t        u rn|\  }}	}
}t        ||	|
«      }|t        z  r|t        z  r nNt        ||«      \  }}}|€|�t        |«      }n|�t        |«      |z   }|j                  |«       |rŒ— n n ||dfS ||dfS )NTF)r   rœ   r}   r'   r6   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Ø—,”,‰ˆˆBØ”‰=Ù™7 2œ;ÙÙ˜ÕØ”:ÑØ-/Ñ*ˆE�9˜i¨Ü# E¨9°iÓ@ˆFØÔ+Ò+°¼Ò0HÙÜ-@ÀÀFÓ-KÑ*ˆG�\ 7ØÐ"ØÐ$Ü"% f£+‘KØ!Ð-Ü"% f£+°Ñ"<�KØ�M‰M˜'Ô"ÚÙáð) ð, �{ DÐ(Ð(Ø�; Ð%Ð%r   c                 óT  — 	 | j                   sy | j                   d   \  }}|t        urn(|\  }}}} t        |||«      }|t        z  r
|t        z  ry ŒPt        |«      }|t        u r|r	 ||«      ry ||fgS |t        u rDg }|j                  }	|d   D ],  }
|
s y |
d   \  }}|t        u r|r ||«      s |	||f«       Œ, y  |S |t        u r`|}|rZ|D ]U  \  }}|t        u r ||«      sŒ y |t        u sŒ"|d   dkD  r y t        t        |t        |d   |d   dz   «      «      «      sŒU y  |S y )Nr   r   iÿÿ  )r}   r6   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§   Ø  sW  € Ø
Ø�|Š|ØØ—‘˜a‘‰ˆˆBØ”ZÑØØ/1Ñ,ˆˆy˜) WÜ˜u i°Ó;ˆØÔ&Ò&¨5´?Ò+BØð ô ˜5Ó!€GØ	ŒW�}Ù‘w˜r”{ØØ�R�ˆzÐØ	Œv‰ØˆØŸ™ˆØ�A”ˆAÙÙØ�q‘T‰FˆB�Ø”W‰}¡g±'¸"´+Ù˜r 2˜hÕ'áð ð ˆØ	Œr‰ØˆÙÛ!‘��BØœ‘=Ù˜r•{Ù#Øœ5’[Ø˜!‘u˜v’~Ù#Üœ3˜w¬¨b°©e°R¸±U¸1±WÓ(=Ó>Õ?Ù#ð "ð ˆØr   c                 ó
  — |j                  «       \  }}|t        kD  rt        }|dk(  r| j                  t        dd||g«       y g }d}g }|t        z  r	|t
        z  st        ||«      \  }}}|st        ||«      }| j                  }	 |	t        «       t        | «      }
 |	d«       d}|rt        }|€r|t        z  }n|r	|t        z  } |	|«       |t        k  r	 |	|«       n |	t        «       |d t         } |	|«       |rR |	t        |«      «       |€t        |«      } |	|«       | j                  |«       | j                  t        |«      «       n!|rt        |«      \  }}|rJ ‚t        ||| «       t        | «      |
z
  | |
<   y )Nr   é   )r9   r:   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¯     s~  € ð ×ÑÓ�F€BˆØ	ŒG‚|ÜˆØ	ˆQ‚wØ�‰”T˜1˜a  RÐ(Ô)Øà€FØ€KØ€GØÔ'Ò'¨E´OÒ,Cä':¸7ÀEÓ'JÑ$ˆ�˜WáÜ)¨'°5Ó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                 ó.   — t        | t        t        f«      S r   )Ú
isinstanceÚstrrt   )Úobjs    r   Úisstringr´   ?  s   € Ü�cœC¤˜<Ó(Ð(r   c                 ó®   — | j                   j                  |z  }g }t        || |«       t        || j                  |«       |j                  t        «       |S r   )Ústater
   r¯   r4   r}   r   r5   )r^   r
   rK   s      r   Ú_coder·   B  sJ   € à�G‰G�M‰M˜EÑ!€EØ€Dô �$˜˜5Ô!ô ˆT�1—6‘6˜5Ô!à‡K�K”Ôà€Kr   c                 ó8   — ddj                  d„ | D «       «      z  S )Nú[%s]ú, c              3   óR   K  — | ]  }d t         j                  dz  dz   |fz  –— Œ! y­w)z%#0*xr   N)r   r�   ©Ú.0Úxs     r   Ú	<genexpr>z_hex_code.<locals>.<genexpr>R  s(   è ø€ ÐMÉÀ1˜g¬¯©°q©¸Ñ):¸AÐ(>Õ>Éùs   ‚%')Újoin)rK   s    r   Ú	_hex_coderÁ   Q  s   € Ø�D—I‘IÑMÉÓMÓMÑMÐMr   c                 ó¨   ‡ ‡‡‡‡‡— dd l Št        «       ŠdŠt        t        t        ‰ «      dz
  «      «      Šˆ ˆˆˆˆˆfd„Š ‰dt        ‰ «      «       y )Nr   r   c                 ó”
  •‡ — d dœˆˆˆˆ fd„
}ˆˆfd„}‰dz  Š‰ }||k  �r#|Š ‰|   }|dz  }t         |   }|t        t        t        t        t
        t        t        fv r
 ||«       �nÖ|t        t        t        t        t        t        t        t        fv r#‰|   }|dz  } ||d|t!        |«      fz  «       �n‡|t"        u r4‰|   }|dz  }t%        t&        |   «      }|d d dk(  sJ ‚ |||dd  «       �nK|t(        u r4‰|   }|dz  }t%        t*        |   «      }|d d d	k(  sJ ‚ |||dd  «       �n|t,        t.        t0        t2        fv r)‰|   } |||||z   ¬«        ‰|dz   ||z   «       ||z  }�nÎ|t4        t6        fv r4‰||d
z    \  }}	|d
z  } ||d||	t!        |«      t!        |	«      fz  «       �nŒ|t8        u r- ||t;        ‰||dt<        z  z    «      «       |dt<        z  z  }�nW|t>        u rª‰|   }|dz  }tA        djC                  ˆfd„‰||dtD        jF                  z  z    D «       «      «      }
 ||||
«       |dtD        jF                  z  z  }‰dz  ŠtI        |«      D ],  } |t;        ‰||dt<        z  z    «      «       |dt<        z  z  }Œ. ‰dz  Š�n¥|tJ        tL        tN        tP        tR        fv r‰|   }|dz  } |||«       �ns|tT        u r‰|   } |||||z   ¬«       |dz  }�nQ|tV        u rW‰|   } |||||z   ¬«       |r; ‰|dz   ||z   «       ||z  }|Š ‰|   }|r |d|||z   ¬«       n |t        «       |rŒ;|dz  }�nò|tX        tZ        t\        t^        t`        fv r=‰||dz    \  }}}|tb        k(  rd} |||||||z   ¬«        ‰|dz   ||z   «       ||z  }�n˜|td        u r!‰||d
z    \  }} ||||||z   ¬«       |d
z  }�no|tf        th        fv r0‰||d
z    \  }} ||||||z   ¬«        ‰|d
z   ||z   «       ||z  }�n1|tj        u r)‰|   } |||||z   ¬«        ‰|dz   ||z   «       ||z  }�n |tl        u rí‰||dz    \  }}}}|tb        k(  rd} |||to        |«      ||||z   ¬«       |dz   Š |tp        z  r€‰|dz   |dz    \  }} |d|«       |dz   Š ‰‰ ‰ |z    } |dddjC                  d„ |D «       «      z  ddjC                  ts        t         |«      «      z  «       ‰ |z  Š  |d‰‰ ‰ |z    «       ‰ |z  Š |tt        z  r‰dz  Š |d«        ‰‰ ||z   «       ‰dz  Š||z  }ntw        |«      ‚||k  r�Œ#‰dz  Šy )N)Útoc                 óŽ   •— | �‰j                  | «       |d| fz  fz  }t        d‰‰‰‰v rdndfz  d‰dz
  z  ¬«       t        |Ž  y )Nz(to %d)z%*d%s Ú:Ú.z  r   ©Úend)ÚaddÚprint)rÄ   ÚargsÚlabelsÚlevelÚoffset_widthÚstarts     €€€€r   Úprint_z!dis.<locals>.dis_.<locals>.print_\  sW   ø€ Øˆ~Ø—
‘
˜2”Ø˜ b UÑ*Ð,Ñ,�Ü�(˜l¨E¸%À6¹/±3ÈsÐSÑSØ˜E !™G‘nõ&ä�4ŠLr   c                  ó@   •— t        d‰d‰z  z   z  ¬«       t        | Ž  y )NÚ r   rÈ   )rË   )rÌ   rÎ   rÏ   s    €€r   Úprint_2z"dis.<locals>.dis_.<locals>.print_2d  s    ø€ Ü�c˜<¨!¨E©'Ñ1Ñ2Õ3Ü�4ŠLr   r   z
%#02x (%r)é   ÚAT_é	   Ú	CATEGORY_r   z%#02x %#02x (%r-%r)rk   r   c              3   ór   •K  — | ].  }|j                  t        j                  ‰j                  «      –— Œ0 y ­wr   )Úto_bytesr   r�   Ú	byteorder)r½   r¾   Úsyss     €r   r¿   z$dis.<locals>.dis_.<locals>.<genexpr>•  s-   øè ø€ ð (RÙ1P¨Að )*¯
©
´4·=±=À#Ç-Á-×(PÙ1Pùs   ƒ47ÚbranchÚ	MAXREPEATr©   é   z  prefix_skipz  prefixr¹   rº   c              3   ó&   K  — | ]	  }d |z  –— Œ y­w)z%#02xNr	   r¼   s     r   r¿   z$dis.<locals>.dis_.<locals>.<genexpr>Ö  s   è ø€ Ð.KÁF¸q¨w¸­{ÁFùs   ‚z(%r)Ú z	  overlapÚin)<ÚOPCODESr5   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   r7   rF   rH   rI   rG   rB   rA   ÚREPEATÚ
REPEAT_ONEÚMIN_REPEAT_ONEÚPOSSESSIVE_REPEATÚPOSSESSIVE_REPEAT_ONErÞ   rJ   ÚASSERTÚ
ASSERT_NOTr8   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þ   zdis.<locals>.dis_[  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˜3˜q˜r˜7Ö#Ø”x‘Ø˜1‘g�Ø�Q‘�Üœ' #™,Ó'�Ø˜2˜A�w +Ò-Ð-Ð-Ù�r˜3˜q˜r˜7Ö#ØœœI¤}´mÐDÑDØ˜A‘w�Ù�r˜4 A d¡FÕ+Ù�Q�q‘S˜!˜D™&Ô!Ø�T‘	’ØœÔ/Ð0Ñ0Ø˜a  1¡˜‘��BØ�Q‘�Ù�rÐ0°B¸¼CÀ»GÄSÈÃWÐ3MÑMÖNØ”w‘Ù�rœ9 T¨!¨Q°´i±Ñ-?Ð%@ÓAÔBØ�Sœ)‘^Ñ#’Ø”zÑ!Ø˜1‘g�Ø�Q‘�Ü˜sŸx™xó (RØ15°a¸¸SÄ$Ç-Á-Ñ=OÑ9OÑ1Pó(Ró  Ró S�á�r˜3 Ô(Ø�Sœ$Ÿ-™-Ñ'Ñ'�Ø˜‘
�Ü˜sž�AÙœI d¨1¨a°#´y±.Ñ.@Ð&AÓBÔCØ˜œi™Ñ'‘Að $ð ˜‘
’Øœœh¬Ô9LÜ+ð-ñ -à˜1‘g�Ø�Q‘�Ù�r˜3–Ø”t‘Ø˜A‘w�Ù�r˜4 A d¡FÕ+Ø�Q‘’Ø”v‘Ø˜A‘w�Ù�r˜4 A d¡FÕ+ÙÙ˜˜1™˜a ™fÔ%Ø˜‘I�AØ�EØ ™7�DÙÙ˜x¨°!°D±&Ö9áœwœò ð �Q‘’Øœ¤
¬NÜ)Ô+@ðBñ Bà!% a¨¨1© ‘��c˜3Øœ)Ò#Ø%�CÙ�r˜4  c¨a°©fÕ5Ù�Q�q‘S˜!˜D™&Ô!Ø�T‘	’Ø”Ñ&Ø   A a¡C˜L‘	��TÙ�r˜3 ¨¨4©Õ0Ø�Q‘’Øœ¤
Ð+Ñ+Ø   A a¡C˜L‘	��cÙ�r˜4 ¨¨4©Õ0Ù�Q�q‘S˜!˜D™&Ô!Ø�T‘	’Ø”|Ñ#Ø˜A‘w�Ù�r˜4 A d¡FÕ+Ù�Q�q‘S˜!˜D™&Ô!Ø�T‘	’Ø”t‘Ø(,¨Q°°!±¨Ñ%��e˜S #Øœ)Ò#Ø%�CÙ�r˜4¤ U£¨S°#¸!¸D¹&Õ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Ø�T‘	‘ä  “nÐ$ðo �#Œgðr 	�‰
‰r   )rÜ   Úsetr   r²   )rK   rþ   rÍ   rÎ   rÏ   rÜ   s   `@@@@@r   Údisr   T  sF   ý€ Ûä‹U€FØ€EÜ”sœ3˜t›9 q™=Ó)Ó*€L÷Iñ IñV 	ˆŒC�‹IÕr   c           
      óÞ  — t        | «      r| }t        j                  | |«      } nd }t        | |«      }|t        z  rt        «        t        |«       | j                  j                  }d g| j                  j                  z  }|j                  «       D ]
  \  }}|||<   Œ t        j                  ||| j                  j                  z  || j                  j                  dz
  |t        |«      «      S )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˜!˜UÓ#‰àˆä��E‹?€DàŒ~ÒÜŒÜˆDŒ	ð —‘×"Ñ"€JØ�˜!Ÿ'™'Ÿ.™.Ñ(€JØ× Ñ Ö"‰ˆˆ1Øˆ
�1Šð #ô �<‰<Ø�˜Ÿ™Ÿ™Ñ&¨Ø	�‰�‰�qÑØ”E˜*Ó%ó
ð 
r   )NNN)r   )5Ú__doc__r   rá   r   Ú
_constantsÚ_casefixr   ÚMAGICr'   r%   r   r5   r(   r   rõ   rö   r   r.   r)   r•   Ú
MIN_REPEATrð   rå   rò   Ú
MAX_REPEATrä   rñ   ró   rô   r   r   r   r4   r-   r*   r�   rˆ   r:   r†   Úintrs   ru   r3   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ó,òqIòfó6Oðb �M‰M˜AÑ€	Ø�	‰>˜QÑ
€Ø€Ø(¨só 3ò
òòò*"ò&ò>*òX9"òv)òòNòRôj
r   