ó
    �®žjc  ã                  óH  • S SK Jr  S SKrS SKrS SKJr  S SKJr  S SKJ	r	J
r
  S SKrS SKJrJrJrJrJr  S SKJr  S SKJrJrJrJrJrJrJrJrJrJrJrJ r J!r!J"r"J#r#  \	(       a  S S	KJ$r$   S S
K%J&r&J'r'J(r(J)r)J*r*J+r+  \RZ                  " \.5      r/ " S S5      r0g! \, a     N%f = f)é    )ÚannotationsN)ÚBytesIO)ÚPath)ÚTYPE_CHECKINGÚCallable)ÚDocItemLabelÚDoclingDocumentÚ
FormattingÚImageRefÚNodeItem)ÚImage)ÚMACROS_ACCENTSÚMACROS_CITATIONÚMACROS_COLORÚMACROS_COLOR_INLINEÚMACROS_ESCAPEDÚMACROS_HEADINGÚMACROS_IGNOREDÚMACROS_INLINE_VERBATIMÚMACROS_LEGACY_FORMATTINGÚMACROS_NEWCOMMANDÚMACROS_PREAMBLE_METADATAÚMACROS_SPACINGÚMACROS_STRUCTURALÚMACROS_TEXT_FORMATTINGÚMACROS_TEXT_STYLE)ÚAny)ÚLatexCharsNodeÚLatexEnvironmentNodeÚLatexGroupNodeÚLatexMacroNodeÚLatexWalkerÚLatexWalkerParseErrorc                  óŽ  • \ rS rSr% \(       a3  S\S'   S\S'   S\S'   S\S	'   S
\S'      S            S!S jjrS"S jrS#S jrS$S%S jjr	S$S&S jjr
 S'               S(S jjr   S)         S*S jjrS+S jrS,S jrS-S jrS+S jrS.S jrS/S jr    S0S jr      S1S jrS2S jr    S3S jrS4S jrSrg)5ÚMacroHandlerMixiné:   zBytesIO | PathÚpath_or_streamzset[str]Ú_input_stackzdict[str, str]Ú_custom_macroszdict[str, int]Ú_custom_macro_num_argszdict[str, bool]Úlabelsc                ó   • g ©N© )ÚselfÚnodesÚdocÚparentÚ
formattingÚ
text_labels         Úb/home/mande/repo/quber/.venv/lib/python3.13/site-packages/docling/backend/latex/handlers/macros.pyÚ_process_nodesÚ MacroHandlerMixin._process_nodesB   s   € ð ó    c                ó   • g r-   r.   )r/   r0   s     r5   Ú_nodes_to_textÚ MacroHandlerMixin._nodes_to_textJ   s   € °Sr8   c                ó&  • [         R                  " SSU5      n[         R                  " SSU5      n[         R                  " SSU5      n[         R                  " SSU5      n[         R                  " S	SU5      n[         R                  " S
SU5      nU$ )Nz\\be\bz\\begin{equation}z\\ee\bz\\end{equation}z\\bea\bz\\begin{eqnarray}z\\eea\bz\\end{eqnarray}z\\beq\bz\\eeq\b)ÚreÚsub)r/   Ú
latex_texts     r5   Ú_preprocess_custom_macrosÚ+MacroHandlerMixin._preprocess_custom_macrosL   sz   € Ü—V’V˜IÐ';¸ZÓHˆ
Ü—V’V˜IÐ'9¸:ÓFˆ
Ü—V’V˜JÐ(<¸jÓIˆ
Ü—V’V˜JÐ(:¸JÓGˆ
Ü—V’V˜JÐ(<¸jÓIˆ
Ü—V’V˜JÐ(:¸JÓGˆ
àÐr8   c                óp  • Ub  US:”  a  g U GH¥  n[        U[        5      (       Ga³  UR                  [        ;   Gaž  UR                  (       GaŒ  UR                  R
                  (       Gap  UR                  R
                  n[        U5      S:”  a  US   OS n[        U5      S:”  a  US   OS nS n[        U5       H
  nUc  M  Un  O   U(       Ga  U(       Ga  XWLaÿ  UR                  5       n	U	R                  S5      n
U
R                  S5      (       a  U
SS  n
Sn[        US5      (       aB  UR                  5       nUR                  S5      (       a  UR                  S	5      (       a  USS
 nOUR                  5       R                  S5      nU
(       aH  X°R                  U
'   U R                  U5      U R                  U
'   [         R#                  SU
 SU S35        [        US5      (       a0  UR$                  (       a  U R'                  UR$                  US-   5        [        US5      (       d  GM"  UR                  (       d  GM6  [)        UR                  SS 5      nU(       d  GMW  U HH  n[        US5      (       d  M  UR$                  (       d  M)  U R'                  UR$                  US-   5        MJ     GM¨     g )Né
   é   é   z{} 
	Ú\Ú ÚnodelistÚ{Ú}éÿÿÿÿú{} zRegistered custom macro: \ú -> 'Ú'ÚnodeargdÚargnlist)Ú
isinstancer!   Ú	macronamer   rO   rP   ÚlenÚreversedÚlatex_verbatimÚstripÚ
startswithÚhasattrÚendswithr)   Ú_parse_custom_macro_num_argsr*   Ú_logÚdebugrH   Ú_extract_custom_macrosÚgetattr)r/   r0   ÚdepthÚnoderP   Úname_argÚnum_args_argÚdef_argÚargÚmacro_name_rawÚ
macro_nameÚ	macro_defs               r5   r]   Ú(MacroHandlerMixin._extract_custom_macrosV   s5  € Ø‰=˜E B›JØäˆDÜ˜$¤×/Ò/°D·N±NÔFWÔ4WØ—=—=�= T§]¡]×%;×%;Ð%;Ø#Ÿ}™}×5Ñ5�Hä.1°(«m¸aÓ.?˜x¨š{ÀT�HÜ25°h³-À!Ó2C 8¨A¢;È�Là"�GÜ'¨Ö1˜Ø›?Ø&)˜GÙ!ñ  2÷
  §G°Ò0GØ)1×)@Ñ)@Ó)B˜Ø%3×%9Ñ%9¸)Ó%D˜
Ø%×0Ñ0°×6Ñ6Ø)3°A°B¨˜Jà$&˜	Ü" 7¨J×7Ñ7Ø(/×(>Ñ(>Ó(@˜IØ(×3Ñ3°C×8Ñ8¸Y×=OÑ=OÐPS×=TÑ=TØ,5°a¸¨O 	øà(/×(>Ñ(>Ó(@×(FÑ(FÀuÓ(M˜Iæ%Ø>G×/Ñ/°
Ñ;à $× AÑ AÀ,Ó Oð !×7Ñ7¸
ÑCô !ŸJ™JØ"=¸j¸\ÈÈyÈkÐYZÐ [ôô �t˜Z×(Ñ(¨T¯]¯]Ø×+Ñ+¨D¯M©M¸5À1¹9ÔEÜ�t˜Z×(Ô(¨T¯]¯]ª]Ü" 4§=¡=°*¸dÓC�ß‘8Û'˜Ü" 3¨
×3Ó3¸¿¿¹Ø ×7Ñ7¸¿¹ÀeÈaÁiÖPô  (òU r8   c                óH  • Ub  US:”  a  g U GH‘  n[        U[        5      (       a  UR                  S:X  a    g [        U[        5      (       ay  UR                  [
        ;   ae  U R                  U5      nU(       aM  UR                  S:X  a  UR                  [        R                  US9  OUR                  [        R                  US9  [        US5      (       a0  UR                  (       a  U R                  UR                  X#S-   5        [        US5      (       d  GM  UR                  (       d  GM"  [        UR                  SS 5      nU(       d  GMC  U HH  n[        US5      (       d  M  UR                  (       d  M)  U R                  UR                  X#S-   5        MJ     GM”     g )	NrC   ÚdocumentÚtitle©ÚlabelÚtextrH   rD   rO   rP   )rQ   r   Úenvnamer!   rR   r   Ú_extract_macro_argÚadd_textr   ÚTITLEÚTEXTrX   rH   Ú_extract_preamble_metadatarO   r^   )r/   r0   r1   r_   r`   rn   rP   rd   s           r5   rt   Ú,MacroHandlerMixin._extract_preamble_metadataˆ   s.  € Ø‰=˜E B›JØäˆDÜ˜$Ô 4×5Ñ5¸$¿,¹,È*Ó:TÙô ˜4¤×0Ñ0Ø—N‘NÔ&>Ó>à×.Ñ.¨tÓ4�ÞØ—~‘~¨Ó0ØŸ™¬<×+=Ñ+=ÀD˜ÒIàŸ™¬<×+<Ñ+<À4˜ÑHä�t˜Z×(Ñ(¨T¯]¯]Ø×/Ñ/°·±¸sÈAÁIÔNÜ�t˜Z×(Ô(¨T¯]¯]ª]Ü" 4§=¡=°*¸dÓC�ß‘8Û'˜Ü" 3¨
×3Ó3¸¿¿¹Ø ×;Ñ;Ø #§¡¨c¸1±9öô  (ò) r8   Nc	                óü  • UR                   [        ;   a?  UR                   S:X  a  UR                  S5        gUR                  UR                   5         gUR                   S:X  a  UR                  S5        gUR                   [        ;   a*  U R	                  U5      n	U	(       a  UR                  U	5        gUR                   U R
                  ;   a¨  U R                  X=(       d    / 5      u  p«U
(       aƒ  [        R                  SUR                    SU
 S35        U R                  R                  UR                   S5      S:”  a"  UR                  U R                  U
5      5        U$ UR                  U
5        U$ UR                   [        ;   a.  U R	                  U5      nU(       a  UR                  SU S35        gUR                   S	:X  a*  U R	                  U5      nU(       a  UR                  U5        gUR                   [        ;   a   gUR                   [        ;   a*  U R	                  U5      n	U	(       a  UR                  U	5        gUR                   [        ;   a�  UR                   (       a{  UR                   R"                  (       a`  UR                   R"                  S
   nUbD  [%        US5      (       a3  U R'                  UR(                  5      nU(       a  UR                  U5        gUR                   [*        ;   a  U" 5         U R-                  XX4U5        gUR                   [.        ;   d  UR                   [0        ;   a#  [        R                  SUR                    35        gUR                   (       ai  UR                   R"                  (       aN  U R3                  U5      nU(       a  UR                  U5        g[        R                  SUR                    35         g[        R                  SUR                    35        g)NÚ~Ú zExpanding custom macro \rM   rN   r   Ú[Ú]ÚurlrK   rH   z4Discarding spacing/ignored macro and its arguments: z4Skipping unknown macro with no extractable content: z*Skipping unknown macro without arguments: )rR   r   Úappendr   rp   r)   Ú_expand_custom_macro_invocationr[   r\   r*   ÚgetÚ_parse_latex_fragment_to_textr   r   r   r   rO   rP   rX   r:   rH   r   Ú_process_macror   r   Ú_extract_all_macro_args_inline)r/   r`   r1   r2   r3   r4   Útext_bufferÚflush_fnÚfollowing_nodesÚformatted_textÚ	expansionÚconsumedÚref_argÚurl_textÚtext_argrn   Úinline_texts                    r5   Ú_process_macro_node_inlineÚ,MacroHandlerMixin._process_macro_node_inline¦   sl  € ð �>‰>Ô3Ó3Ø�~‰~ Ó$Ø×"Ñ" 3Ô'ðD ðA ×"Ñ" 4§>¡>Õ2ð@ ð �^‰^˜sÓ"Ø×Ñ˜sÔ#ð| ð{ �^‰^Ô5Ó5Ø!×4Ñ4°TÓ:ˆNÞØ×"Ñ" >Ô2ðt ðs �^‰^˜t×2Ñ2Ó2Ø"&×"FÑ"FØ×+¨ó#ÑˆIö Ü—
‘
Ø/°·±Ð/?¸uÀYÀKÈqÐQôð ×.Ñ.×2Ñ2°4·>±>À1ÓEÈÓIØ×&Ñ& t×'IÑ'IÈ)Ó'TÔUð ˆOð  ×&Ñ& yÔ1ØˆOØ�^‰^œÓ.Ø×-Ñ-¨dÓ3ˆGÞØ×"Ñ" Q w i¨q >Ô2ðR ðQ �^‰^˜uÓ$Ø×.Ñ.¨tÓ4ˆHÞØ×"Ñ" 8Ô,ðJ ðI �^‰^œ|Ó+ØðF ðE �^‰^Ô0Ó0Ø!×4Ñ4°TÓ:ˆNÞØ×"Ñ" >Ô2ð> ð= �^‰^Ô2Ó2à�}�} §¡×!7×!7ØŸ=™=×1Ñ1°"Ñ5�ØÑ'¬G°H¸j×,IÑ,IØ×.Ñ.¨x×/@Ñ/@ÓA�DÞØ#×*Ñ*¨4Ô0ð. ð+ �~‰~Ô!2Ó2Ù”
Ø×#Ñ# D¨vÀ:ÔNð& ð% —‘¤>Ó1°T·^±^Ä~Ó5Uô —
‘
ØJÈ4Ï>É>ÐJZÐ[ôð ð —— 4§=¡=×#9×#9Ø"×AÑAÀ$ÓG�ÞØ×&Ñ& {Ô3ð ô —J‘JØNÈtÏ~É~ÐN^Ð_õð ô —
‘
Ø@ÀÇÁÐ@PÐQôð r8   c                óÈ  • UR                   [        ;   aE  U R                  U5      nU(       a,  U R                  UR                   5      nUR	                  X6US9  g g UR                   S:X  a9  U R                  U5      nU(       a   UR                  U[        R                  US9  g g UR                   S;   a9  U R                  U5      nU(       a   UR                  U[        R                  US9  g g UR                   S;   a  g UR                   [        ;   aw  UR                  (       ae  UR                  R                  (       aI  UR                  R                  S   n	[        U	S5      (       a  U R                  U	R                  X#XE5        g g g g UR                   [        ;   a?  U R                  U5      n
U
(       a&  SU
 S	3nUR                  U[        R                   US9  g g UR                   S
:X  a9  U R                  U5      nU(       a   UR                  U[        R                   US9  g g UR                   S:X  a)  U R                  U5      nU(       a  SU R"                  U'   g g UR                   S:X  a9  U R                  U5      nU(       a   UR                  U[        R$                  US9  g g UR                   S;   a9  U R                  U5      nU(       a   UR                  U[        R&                  US9  g g UR                   S:X  Ga>  U R                  U5      nU(       Ga$  S n [)        U R*                  [,        5      (       GaÎ  U R*                  R.                  R1                  5       nU R*                  R.                  U-  n UR1                  5       R3                  U5      (       d#  [4        R7                  SU 35        [9        S5      e UR;                  5       (       Ga2  UR<                  R?                  5       nUS:X  a€  [@        RB                  " U5      nUS   nURE                  SS9RG                  5       nURI                  5         URI                  5         Sn[4        RK                  SU SURL                   35        Ot[N        RP                  " U5      nURR                  RU                  SS5      n[)        U[V        5      (       a  US   n[4        RK                  SU SURL                   SU 35        [X        RZ                  " U[]        U5      S9nUR                  [        R$                  S U 3S!9nURa                  UUUS"9  g g UR                   S#:X  a  g UR                   [b        ;   a  g UR                   S$;   Gaö  SS%K2J3n  U R                  U5      nU(       GaÖ  [)        U R*                  [,        5      (       Gaµ  U R*                  R.                  R1                  5       nU R*                  R.                  U-  nUR<                  (       d  URi                  S&5      n UR1                  5       R3                  U5      (       d  [4        R7                  S'U 35        g  [k        UR1                  5       5      nUU Rl                  ;   a  [4        R7                  S)U 35        g [o        U Rl                  5      S*:¼  a  [4        R7                  S+U 35        g UR;                  5       (       a�  U Rl                  Rq                  U5         URs                  S,S-9nU" USS.9n U Ru                  5       u  n!  n"U R                  U!X#XE5        [4        RK                  S/U 35        U Rl                  Rw                  U5        g g g g UR                   [x        ;   a4  UR                  UUR                   UU=(       d    [        R                  S19  g UR                   [z        ;   aH   SS2K>J?n#  U#" 5       R�                  U/5      n$UR                  UU$UU=(       d    [        R                  S19  g UR                   S3:X  Gac  UR                  (       GaP  [o        UR                  R                  5      S:¼  Ga+  UR                  R                  S   n%UR                  R                  S4   n&S5nU%bL  [        U%S5      (       a  U Rƒ                  U%R                  5      nOU%R…                  5       R‡                  S65      nS5n'U&bL  [        U&S5      (       a  U Rƒ                  U&R                  5      n'OU&R…                  5       R‡                  S65      n'U(       a  U'(       a
  SU' S7U S83n(OU(       a  Un(OU'(       a  U'n(OS5n(U((       a!  UR                  U[        R                   U(US99  g g g g UR                   [ˆ        ;   a;  UR                   S::X  a*  UR                  US;UU=(       d    [        R                  S19  g g UR                   [Š        ;   a  g UR                   S<;   aŠ  UR                  (       ax  UR                  R                  (       a\  [�        UR                  R                  5       H8  n	U	c  M  [        U	S5      (       d  M  U R                  U	R                  X#XE5          g    g g g UR                   S=:X  a  g UR                  (       a¹  UR                  R                  (       až  S>n)UR                  R                   H5  n	[        U	S5      (       d  M  U R                  U	R                  X#XE5        Sn)M7     U)(       a#  [4        RK                  S?UR                    35        g [4        RK                  S@UR                    35        g [4        RK                  S@UR                    35        g ! [8         a    [4        R7                  SU 35        e f = f! [^         a&  n[4        RK                  SU SU 35         S nAGNÇS nAff = f! [8         a    [4        R7                  S(U 35         g f = f! [^         a&  n[4        RK                  S0U SU 35         S nAGNàS nAff = f! U Rl                  Rw                  U5        f = f! [^         a     g f = f)AN)r2   rn   Úlevelrk   )r2   rm   rn   )ÚauthorÚdate)ÚthanksÚ	maketitlerK   rH   ry   rz   r{   rm   TÚcaption)ÚfootnoteÚ	marginparÚincludegraphicsz*Path traversal attempt blocked for image: zPath traversal not allowedz7Invalid path for image (different drive or traversal): z.pdfr   rE   )Úscaleé�   zRendered PDF image z: Údpi)éH   r›   zLoaded image z, DPI=)Úimagerš   zCould not load image zImage: rl   )r2   r”   rœ   rF   )ÚinputÚinclude)r"   z.texz/Path traversal attempt blocked for input file: z<Invalid path for input file (different drive or traversal): zCircular \input detected: rC   z+\input depth limit (10) reached, skipping: zutf-8)Úencoding©Útolerant_parsingzLoaded input file: zFailed to load input file )r2   rn   r3   rm   )ÚLatexNodes2TextÚhrefrD   rG   rL   z](Ú))r2   rm   rn   r3   ÚnewlineÚ
)Ú	textcolorÚcolorboxÚitemFz$Processed content of unknown macro: zSkipping unknown macro: )GrR   r   rp   Ú_get_heading_levelÚadd_headingrq   r   rr   rs   r   rO   rP   rX   r6   rH   r   Ú	REFERENCEr+   ÚCAPTIONÚFOOTNOTErQ   r'   r   r2   ÚresolveÚis_relative_tor[   ÚwarningÚ
ValueErrorÚexistsÚsuffixÚlowerÚ	pypdfium2ÚPdfDocumentÚrenderÚto_pilÚcloser\   Úsizer   ÚopenÚinfor~   Útupler   Úfrom_pilÚintÚ	ExceptionÚadd_picturer   Úpylatexenc.latexwalkerr"   Úwith_suffixÚstrr(   rS   ÚaddÚ	read_textÚget_latex_nodesÚdiscardr   r   Úpylatexenc.latex2textr¢   Únodelist_to_textr:   rU   rV   r   r   rT   )*r/   r`   r1   r2   r3   r4   rk   r�   Ú	meta_textrd   rˆ   Úref_textr‰   Ú
label_textÚcaption_textÚfootnote_textÚimg_pathrœ   Úbase_dirÚimg_full_pathr´   ÚpdfÚpageÚ	pil_imagerš   Úer”   r"   ÚfilepathÚ
input_pathÚresolvedÚcontentÚ
sub_walkerÚ	sub_nodesÚ_r¢   rn   Úurl_argrŠ   Údisplay_textÚ	link_textÚprocessed_anys*                                             r5   r€   Ú MacroHandlerMixin._process_macro÷   sÇ
  € ð �>‰>œ^Ó+Ø×+Ñ+¨DÓ1ˆEÞØ×/Ñ/°·±Ó?�Ø—‘ vÀ�ÒGð ð �^‰^˜wÓ&Ø×+Ñ+¨DÓ1ˆEÞØ—‘ F´,×2DÑ2DÈ5�ÒQð ð �^‰^Ð1Ó1Ø×/Ñ/°Ó5ˆIÞØ—‘ F´,×2CÑ2CÈ)�ÒTð ð �^‰^Ð6Ó6Øà�^‰^Ô0Ó0Ø�}�} §¡×!7×!7Ø—m‘m×,Ñ,¨RÑ0�Ü˜3 
×+Ñ+Ø×'Ñ'ØŸ™ c°:õð ,ð "8ˆ}ð �^‰^œÓ.Ø×-Ñ-¨dÓ3ˆGÞØ˜w˜i q˜>�Ø—‘ F´,×2HÑ2HÈx�ÒXð ð �^‰^˜uÓ$Ø×.Ñ.¨tÓ4ˆHÞØ—‘ F´,×2HÑ2HÈx�ÒXð ð �^‰^˜wÓ&Ø×0Ñ0°Ó6ˆJÞØ*.�—‘˜JÒ'ð ð �^‰^˜yÓ(Ø×2Ñ2°4Ó8ˆLÞØ—‘Ø!¬×)=Ñ)=ÀLð ò ð ð
 �^‰^Ð8Ó8Ø ×3Ñ3°DÓ9ˆMÞØ—‘Ø!¬×)>Ñ)>À]ð ò ð ð
 �^‰^Ð0Ô0Ø×.Ñ.¨tÓ4ˆHßØ�ð%HÜ! $×"5Ñ"5´t×<Ò<Ø#'×#6Ñ#6×#=Ñ#=×#EÑ#EÓ#G˜Ø(,×(;Ñ(;×(BÑ(BÀXÑ(M˜ð
"Ø#0×#8Ñ#8Ó#:×#IÑ#IÈ(×#SÑ#SÜ $§¡Ø&PÐQYÐPZÐ$[ô!"ô '1Ð1MÓ&NÐ Nð	 $Tð )×/Ñ/×1Ò1Ø%2×%9Ñ%9×%?Ñ%?Ó%A˜FØ%¨Ó/Ü&/×&;Ò&;¸MÓ&J Ø'*¨1¡v Ø,0¯K©K¸a¨KÐ,@×,GÑ,GÓ,I 	Ø $§
¡
¤Ø #§	¡	¤Ø&) Ü $§
¡
Ø&9¸(¸À2ÀiÇnÁnÐEUÐ$Võ!"ô -2¯JªJ°}Ó,E 	Ø&/§n¡n×&8Ñ&8¸ÀÓ&I Ü#-¨c´5×#9Ñ#9Ø*-¨a©& CÜ $§
¡
Ø&3°H°:¸RÀ	ÇÁÐ?OÈvÐVYÐUZÐ$[ô!"ô %-×$5Ò$5¸IÌ3ÈsË8Ñ$T˜Eð Ÿ,™,Ü&×.Ñ.°w¸x¸jÐ5Ið 'ð �ð —‘Ø!Ø#Øð  ò ð[ ðf �^‰^˜tÓ#Øà�^‰^œ~Ó-Øà�^‰^Ð3Ô3Ý:à×.Ñ.¨tÓ4ˆHßœJ t×':Ñ':¼D×AÒAØ×.Ñ.×5Ñ5×=Ñ=Ó?�Ø!×0Ñ0×7Ñ7¸(ÑB�
Ø!×(×(Ø!+×!7Ñ!7¸Ó!?�Jð
Ø%×-Ñ-Ó/×>Ñ>¸x×HÑHÜŸ™ØMÈhÈZÐXôð ð	 Iô ˜z×1Ñ1Ó3Ó4�Ø˜t×0Ñ0Ó0Ü—L‘LÐ#>¸x¸jÐ!IÕJÜ˜×*Ñ*Ó+¨rÓ1Ü—L‘LØFÀxÀjÐQõð  ×&Ñ&×(Ñ(Ø×%Ñ%×)Ñ)¨(Ô3ð<Ø",×"6Ñ"6ÀÐ"6Ð"H˜Ù%0°È4Ñ%P˜
Ø*4×*DÑ*DÓ*F™˜	 1 aØ×+Ñ+Ø% s°Jôô Ÿ
™
Ð%8¸¸Ð#EÔFð ×)Ñ)×1Ñ1°(Õ;ð )ð3 BˆxðP �^‰^œ~Ó-Ø�L‰LØØ—^‘^Ø%Ø!×6¤\×%6Ñ%6ð	 ò ð �^‰^œ~Ó-ðÝAá&Ó(×9Ñ9¸4¸&ÓA�Ø—‘Ø!ØØ)Ø%×:¬×):Ñ):ð	 ò ð �^‰^˜vÔ%Ø�}�}ˆ}¤ T§]¡]×%;Ñ%;Ó!<ÀÔ!AØŸ-™-×0Ñ0°Ñ3�ØŸ=™=×1Ñ1°!Ñ4�à�ØÑ&Ü˜w¨
×3Ñ3Ø#'×#6Ñ#6°w×7GÑ7GÓ#H™à#*×#9Ñ#9Ó#;×#AÑ#AÀ%Ó#H˜à!�ØÑ'Ü˜x¨×4Ñ4Ø'+×':Ñ':¸8×;LÑ;LÓ'M™à'/×'>Ñ'>Ó'@×'FÑ'FÀuÓ'M˜æ¦Ø"# L >°°H°:¸QÐ ?‘IÞØ (‘IÞ!Ø ,‘Ià "�IæØ—L‘LØ%Ü*×4Ñ4Ø&Ø#-ð	 !ò ð ð7 "Bˆ}ðF �^‰^œ~Ó-Ø�~‰~ Ó*Ø—‘Ø!ØØ)Ø%×:¬×):Ñ):ð	 ò ð +ð �^‰^Ô7Ó7Øà�^‰^Ð8Ó8Ø�}�} §¡×!7×!7Ü# D§M¡M×$:Ñ$:Ö;�CØ“¬7°3¸
×+CÓ+CØ×+Ñ+ØŸL™L¨#°zôñ ò <ð "8ˆ}ð �^‰^˜vÓ%Øð �}�} §¡×!7×!7Ø %�ØŸ=™=×1Ô1�CÜ˜s J×/Ó/Ø×+Ñ+ØŸL™L¨#°zôð )-šñ 2ö !Ü—J‘JÐ!EÀdÇnÁnÐEUÐVÕWä—J‘JÐ!9¸$¿.¹.Ð9IÐJÕKä—
‘
Ð5°d·n±nÐ5EÐFÕGøôu  *ó "Ü ŸL™LØ"YÐZbÐYcÐ dôð "ð	"ûô4 !ó HÜ—J‘JÐ!6°x°jÀÀ1À#ÐF×GÒGûðHûôF "ó Ü—L‘LØVÐW_ÐV`Ðaôñ ð	ûô. %ó QÜŸ
™
Ð%?À¸zÈÈAÈ3Ð#O×PÒPûðQûð ×)Ñ)×1Ñ1°(Õ;ûô* ó Ùðúsƒ   ÌAn& Í:Am? ÏE	n& Ø<o Û7Ap ßAq í?$n#î#n& î&
oî0oïoï"o>ï=o>ð
p1ðp,ð&p4 ð,p1ð1p4 ð4qñ
q!ñ q!c                ó2  • UR                   (       a†  UR                   R                  (       ak  UR                   R                  S   nU(       aK  [        US5      (       a  U R                  UR                  5      $ UR                  5       R                  S5      $ g)NrK   rH   rL   rG   )rO   rP   rX   r:   rH   rU   rV   )r/   r`   rd   s      r5   rp   Ú$MacroHandlerMixin._extract_macro_arg  sk   € Ø�=�=˜TŸ]™]×3×3Ø—-‘-×(Ñ(¨Ñ,ˆCÞÜ˜3 
×+Ñ+Ø×.Ñ.¨s¯|©|Ó<Ð<Ø×)Ñ)Ó+×1Ñ1°%Ó8Ð8Ør8   c                óŒ  • UR                   (       a³  UR                   R                  (       a˜  SUs=::  a#  [        UR                   R                  5      :  an  O  gUR                   R                  U   nU(       aK  [        US5      (       a  U R	                  UR
                  5      $ UR                  5       R                  S5      $ g)Nr   rH   rL   rG   )rO   rP   rS   rX   r:   rH   rU   rV   ©r/   r`   Úindexrd   s       r5   Ú_extract_macro_arg_by_indexÚ-MacroHandlerMixin._extract_macro_arg_by_index  sŽ   € Ø�=�=˜TŸ]™]×3×3Ø�EÕ7œC §¡× 6Ñ 6Ó7Õ7ð ð —m‘m×,Ñ,¨UÑ3�ÞÜ˜s J×/Ñ/Ø#×2Ñ2°3·<±<Ó@Ð@Ø×-Ñ-Ó/×5Ñ5°eÓ<Ð<Ør8   c                ó4  • UR                   (       a†  UR                   R                  (       ak  SUs=::  a#  [        UR                   R                  5      :  aA  O  / $ UR                   R                  U   nU(       a  [        US5      (       a  UR                  $ / $ )Nr   rH   )rO   rP   rS   rX   rH   rç   s       r5   Ú_extract_macro_arg_nodesÚ*MacroHandlerMixin._extract_macro_arg_nodes  sl   € Ø�=�=˜TŸ]™]×3×3Ø�EÕ7œC §¡× 6Ñ 6Ó7Õ7ð ˆ	ð —m‘m×,Ñ,¨UÑ3�Þœ7 3¨
×3Ñ3ØŸ<™<Ð'Øˆ	r8   c                óÈ  • UR                   (       a  UR                   R                  (       d  g/ nUR                   R                   H‰  nUc  M  [        US5      (       a7  U R                  UR                  5      nU(       a  UR                  U5        MN  MP  UR                  5       R                  S5      nU(       d  Mx  UR                  U5        M‹     SR                  U5      $ )NrG   rH   rL   rx   )	rO   rP   rX   r:   rH   r|   rU   rV   Újoin)r/   r`   Úpartsrd   rn   s        r5   r�   Ú0MacroHandlerMixin._extract_all_macro_args_inline  s§   € Ø�}�} D§M¡M×$:×$:ØàˆØ—=‘=×)Ô)ˆCØ‹Ü˜3 
×+Ñ+Ø×.Ñ.¨s¯|©|Ó<�DÞØŸ™ TÖ*ñ ð ×-Ñ-Ó/×5Ñ5°eÓ<�Dß�tØŸ™ TÖ*ñ *ð �x‰x˜‹Ðr8   c                óü   ^• U R                   R                  5        H\  u  nmU R                  R                  US5      S:”  a  M(  [        R
                  " S[        R                  " U5       S3U4S jU5      nM^     U$ )Nr   z\\z(?![a-zA-Z])c                ó   >• T$ r-   r.   )Úmrg   s    €r5   Ú<lambda>Ú2MacroHandlerMixin._expand_macros.<locals>.<lambda>5  s   ø€ ™)r8   )r)   Úitemsr*   r~   r=   r>   Úescape)r/   Ú	latex_strrf   rg   s      @r5   Ú_expand_macrosÚ MacroHandlerMixin._expand_macros/  sr   ø€ Ø%)×%8Ñ%8×%>Ñ%>Ö%@Ñ!ˆJ˜	Ø×*Ñ*×.Ñ.¨z¸1Ó=ÀÓAÙÜŸšØ”b—i’i 
Ó+Ð,¨LÐ9Ü#ØóŠIñ &Að Ðr8   c                óŒ   • Uc  gUR                  5       R                  S5      n [        U5      $ ! [        [        4 a     gf = f)Nr   z{}[] 
	)rU   rV   rÀ   Ú	TypeErrorr²   )r/   rb   Úraws      r5   rZ   Ú.MacroHandlerMixin._parse_custom_macro_num_args:  sI   € ØÑØà×)Ñ)Ó+×1Ñ1°+Ó>ˆð	Ü�s“8ˆOøÜœ:Ð&ó 	Ùð	ús   ¥
0 °AÁAc                ót  • US::  a  / S4$ / nSnU H¢  n[        U5      U:¼  a    X44$ [        U[        5      (       a&  UR                  R	                  5       (       d  US-  nMQ  [        U[
        5      (       a:  UR                  U R                  UR                  =(       d    / 5      5        US-  nM     X44$    X44$ )Nr   rD   )	rS   rQ   r   ÚcharsrV   r    r|   r:   rH   )r/   r„   Úexpected_arg_countÚ
arg_valuesr‡   Ú	next_nodes         r5   Ú%_extract_custom_macro_invocation_argsÚ7MacroHandlerMixin._extract_custom_macro_invocation_argsD  sÅ   € ð  Ó"Ø�q�5ˆLà "ˆ
Øˆã(ˆIÜ�:‹Ð"4Ó4Øð Ð#Ð#ô ˜)¤^×4Ñ4¸Y¿_¹_×=RÑ=R×=TÑ=TØ˜A‘�Ùä˜)¤^×4Ñ4Ø×!Ñ! $×"5Ñ"5°i×6HÑ6H×6NÈBÓ"OÔPØ˜A‘�ÙààÐ#Ð#ñ )ð Ð#Ð#r8   c                ó’   • U R                   U   n[        [        U5      SS5       H  nUR                  SU 3X$S-
     5      nM     U$ )Nr   rK   Ú#rD   )r)   ÚrangerS   Úreplace)r/   rf   r  r†   Úidxs        r5   Ú_render_custom_macro_expansionÚ0MacroHandlerMixin._render_custom_macro_expansion^  sP   € ð ×'Ñ'¨
Ñ3ˆ	Üœ˜Z›¨!¨RÖ0ˆCØ!×)Ñ)¨A¨c¨U¨)°ZÀaÁÑ5HÓIŠIñ 1àÐr8   c                ó†   •  [        USS9nUR                  5       u  n  nU R                  U5      $ ! [         a    Us $ f = f)NTr    )r"   rÈ   r#   r:   )r/   Úlatex_fragmentÚwalkerÚparsed_nodesrÞ   s        r5   r   Ú/MacroHandlerMixin._parse_latex_fragment_to_textf  sR   € ð	"Ü  À$ÑGˆFØ!'×!7Ñ!7Ó!9ÑˆL˜!˜Qð ×"Ñ" <Ó0Ð0øô %ó 	"Ø!Ò!ð	"ús   ‚1 ±A ¿A c                óF  • U R                   R                  UR                  S5      nUS::  a  U R                  UR                     S4$ U R	                  X#5      u  pE[        U5      U:  a  U R                  UR                     S4$ U R                  UR                  U5      U4$ )Nr   )r*   r~   rR   r)   r  rS   r  )r/   r`   r„   r  r  r‡   s         r5   r}   Ú1MacroHandlerMixin._expand_custom_macro_invocationo  sŸ   € ð "×8Ñ8×<Ñ<¸T¿^¹^ÈQÓOÐØ Ó"Ø×&Ñ& t§~¡~Ñ6¸Ð9Ð9à#×IÑIØó 
Ñˆ
ô ˆz‹?Ð/Ó/Ø×&Ñ& t§~¡~Ñ6¸Ð9Ð9à×2Ñ2°4·>±>À:ÓNÐPXÐXÐXr8   c                ó:   • SSSSSSSS.nUR                  US5      $ )NrD   rE   é   é   é   )ÚpartÚchapterÚsectionÚ
subsectionÚsubsubsectionÚ	paragraphÚsubparagraph)r~   )r/   rR   Úlevelss      r5   rª   Ú$MacroHandlerMixin._get_heading_level~  s1   € àØØØØØØñ
ˆð �z‰z˜) QÓ'Ð'r8   r.   )...)r0   r   r1   r   r2   r   r3   r   r4   r   ÚreturnÚNone)r0   r   r"  rÅ   )r?   rÅ   r"  rÅ   )r   )r_   rÀ   )r1   r	   r_   rÀ   r-   )r`   r!   r1   r	   r2   úNodeItem | Noner3   úFormatting | Noner4   úDocItemLabel | Noner‚   ú	list[str]rƒ   zCallable[[], None]r"  rÀ   )NNN)
r`   r!   r1   r	   r2   r$  r3   r%  r4   r&  )r`   r!   r"  rÅ   )r`   r!   rè   rÀ   r"  rÅ   )r`   r!   rè   rÀ   r"  Úlist)rù   rÅ   r"  rÅ   )r"  rÀ   )r  rÀ   r"  ztuple[list[str], int])rf   rÅ   r  r'  r"  rÅ   )r  rÅ   r"  rÅ   )r`   r!   r"  ztuple[str, int])rR   rÅ   r"  rÀ   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   Ú__annotations__r6   r:   r@   r]   rt   rŒ   r€   rp   ré   rì   r�   rú   rZ   r  r  r   r}   rª   Ú__static_attributes__r.   r8   r5   r%   r%   :   s¥  ‡ ÞØ&Ó&ØÓØ&Ó&Ø .Ó.ØÓð Ø!Ø!ð	àð	ð ð	ð ð		ð
 ð	ð ð	ð õ	ô 	9ôö0QödðN ðOàðOð ðOð  ð	Oð
 &ðOð (ðOð ðOð %ðOð 
õOðj #'Ø(,Ø*.ðIHàðIHð ðIHð  ð	IHð
 &ðIHð (õIHôVôôôô$	ôð$Ø36ð$à	ô$ð4ØðØ+4ðà	ôô1ðYØ"ðYà	ôY÷
(r8   r%   )1Ú
__future__r   Úloggingr=   Úior   Úpathlibr   Útypingr   r   r¶   Údocling_core.types.doc.documentr   r	   r
   r   r   ÚPILr   Údocling.backend.latex.constantsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rÃ   r   r   r    r!   r"   r#   ÚImportErrorÚ	getLoggerr)  r[   r%   r.   r8   r5   Ú<module>r9     s�   ðõ #ã Û 	Ý Ý ß *ã ÷õ õ ÷÷ ÷ ÷ ñ ö$ Ýð
	÷÷ ð ×Ò˜Ó"€÷N	(ò N	(øð ó 	Ùð	ús   Á+B ÂB!Â B!