Ë
    Ÿ2Úi:)  ã            
      ó  — d Z ddlmZ ddlmZ ddlmZmZ ddlm	Z	 ddl
mZ d	Zd
ZdZdZddddddddddœ	Zdez  Zdez  ZdZdZdZdez  ZdZdez  Zdez  Zd ez  Zd!Zd"Zd#Zed$z   Z G d%„ d&e«      Z G d'„ d(e«      Z d)„ Z!y*)+z³
Adds conversion of ASCII dashes, quotes and ellipses to their HTML
entity equivalents.

See the [documentation](https://Python-Markdown.github.io/extensions/smarty)
for details.
é    )Úannotationsé   )Ú	Extensioné   )ÚHtmlInlineProcessorÚHTML_RE)ÚInlineProcessor)ÚRegistryz)[!"#\$\%'()*+,-.\/:;<=>?\@\[\\\]\^_`{|}~]z[\s.,;:!?)]z[^\ \t\r\n\[\{\(\-\u0002\u0003]u1   (\s|&nbsp;|--|â€“|â€”|&[mn]dash;|&#8211;|&#8212;)z&mdash;z&ndash;z&hellip;z&laquo;z&raquo;z&lsquo;z&rsquo;z&ldquo;z&rdquo;)	ÚmdashÚndashÚellipsisúleft-angle-quoteúright-angle-quoteúleft-single-quoteúright-single-quoteúleft-double-quoteúright-double-quotez
^'(?=%s\B)z
^"(?=%s\B)z"'(?=\w)z'"(?=\w)z(?<!\w)'(?=\d{2}s)z	%s"(?=\w)z"(?=\s)z(?<=%s)"z	%s'(?=\w)z(?<=%s)'(?!\s|s\b|\d)z	'(\s|s\b)ú'ú"z(?!\>)c                  ó   — e Zd Zd„ Zd„ Zy)ÚSubstituteTextPatternc                óL   — t        j                  | |«       || _        || _        y)z" Replaces matches with some text. N)r   Ú__init__ÚreplaceÚmd)ÚselfÚpatternr   r   s       úQ/var/www/html/acx/venv/lib/python3.12/site-packages/markdown/extensions/smarty.pyr   zSubstituteTextPattern.__init__ž   s    € ä×$Ñ$ T¨7Ô3ØˆŒØˆ�ó    c                ó  — d}| j                   D ]O  }t        |t        «      r||j                  |«      z  }Œ(|| j                  j
                  j                  |«      z  }ŒQ ||j                  d«      |j                  d«      fS )NÚ r   )	r   Ú
isinstanceÚintÚgroupr   Ú	htmlStashÚstoreÚstartÚend)r   ÚmÚdataÚresultÚparts        r   ÚhandleMatchz!SubstituteTextPattern.handleMatch¤   st   € ØˆØ—L‘Lò 	8ˆDÜ˜$¤Ô$Ø˜!Ÿ'™' $›-Ñ'‘à˜$Ÿ'™'×+Ñ+×1Ñ1°$Ó7Ñ7‘ð		8ð
 �q—w‘w˜q“z 1§5¡5¨£8Ð+Ð+r   N)Ú__name__Ú
__module__Ú__qualname__r   r-   © r   r   r   r   �   s   „ òó,r   r   c                  óN   ‡ — e Zd ZdZˆ fd„Zd„ Zd	d„Zd	d„Zd	d„Zd	d„Z	d„ Z
ˆ xZS )
ÚSmartyExtensionz Add Smarty to Markdown. c                óÔ   •— ddgddgddgddgi dgdœ| _         	 t        ‰| �  di |¤Ž t        t        «      | _        | j                  j                  | j                  d	i ¬
«      «       y )NTzEducate quotesFzEducate angled quoteszEducate dasheszEducate ellipseszOverwrite default substitutions)Úsmart_quotesÚsmart_angled_quotesÚsmart_dashesÚsmart_ellipsesÚsubstitutionsr9   )Údefaultr1   )ÚconfigÚsuperr   Údictr9   ÚupdateÚ	getConfig)r   ÚkwargsÚ	__class__s     €r   r   zSmartyExtension.__init__°   s|   ø€ à!Ð#3Ð4Ø$)Ð+BÐ#CØ!Ð#3Ð4Ø#Ð%7Ð8Ø Ð"CÐDñ
ˆŒð 	/Ü‰ÑÑ"˜6Ò"Ü!¤-Ó0ˆÔØ×Ñ×!Ñ! $§.¡.°È" .Ó"MÕNr   c                ó”   — t        |«      D ]:  \  }}||fz  }t        |Ž }d||fz  }| j                  j                  ||||z
  «       Œ< y )Nzsmarty-%s-%d)Ú	enumerater   ÚinlinePatternsÚregister)r   r   ÚpatternsÚserieÚpriorityÚindr   Únames           r   Ú_addPatternszSmartyExtension._addPatterns½   s\   € Ü% hÓ/ò 	F‰LˆC�Ø˜�uÑˆGÜ+¨WÐ5ˆGØ! U¨C LÑ0ˆDØ×Ñ×(Ñ(¨°$¸À¹ÕEñ		Fr   c                óä   — t        d| j                  d   f|«      }t        d| j                  d   f|«      }| j                  j                  |dd«       | j                  j                  |dd«       y )	Nz(?<!-)---(?!-)r   z(?<!-)--(?!-)r   zsmarty-em-dashesé2   zsmarty-en-dashesé-   ©r   r9   rD   rE   )r   r   ÚemDashesPatternÚenDashesPatterns       r   ÚeducateDasheszSmartyExtension.educateDashesÄ   sv   € Ü/Ø × 2Ñ 2°7Ñ ;Ð=¸ró
ˆô 0Ø˜t×1Ñ1°'Ñ:Ð<¸bó
ˆð 	×Ñ×$Ñ$ _Ð6HÈ"ÔMØ×Ñ×$Ñ$ _Ð6HÈ"ÕMr   c                ót   — t        d| j                  d   f|«      }| j                  j                  |dd«       y )Nz(?<!\.)\.{3}(?!\.)r   zsmarty-ellipsesé
   rO   )r   r   ÚellipsesPatterns      r   ÚeducateEllipseszSmartyExtension.educateEllipsesÎ   s<   € Ü/Ø! D×$6Ñ$6°zÑ$BÐ#DÀbó
ˆð 	×Ñ×$Ñ$ _Ð6GÈÕLr   c                óä   — t        d| j                  d   f|«      }t        d| j                  d   f|«      }| j                  j                  |dd«       | j                  j                  |dd«       y )	Nz\<\<r   z\>\>r   zsmarty-left-angle-quotesé(   zsmarty-right-angle-quotesé#   rO   )r   r   ÚleftAngledQuotePatternÚrightAngledQuotePatterns       r   ÚeducateAngledQuotesz#SmartyExtension.educateAngledQuotesÔ   s~   € Ü!6Ø�d×(Ñ(Ð);Ñ<Ð>Àó"
Ðô #8Ø�d×(Ñ(Ð)<Ñ=Ð?Àó#
Ðð 	×Ñ×$Ñ$Ð%;Ð=WÐY[Ô\Ø×Ñ×$Ñ$Ð%<Ð>YÐ[]Õ^r   c                óŠ  — | j                   d   }| j                   d   }| j                   d   }| j                   d   }t        |fft        |fft        ||z   fft        ||z   fft
        |fft        d|fft        |fft        |dfft        |fft        d|fft        |fft        |fft        |fff}| j                  ||dd«       y )Nr   r   r   r   r   Úquotesé   )r9   ÚsingleQuoteStartReÚdoubleQuoteStartReÚdoubleQuoteSetsReÚsingleQuoteSetsReÚdecadeAbbrReÚopeningSingleQuotesRegexÚclosingSingleQuotesRegexÚclosingSingleQuotesRegex2ÚremainingSingleQuotesRegexÚopeningDoubleQuotesRegexÚclosingDoubleQuotesRegexÚclosingDoubleQuotesRegex2ÚremainingDoubleQuotesRegexrK   )r   r   ÚlsquoÚrsquoÚldquoÚrdquorF   s          r   ÚeducateQuoteszSmartyExtension.educateQuotesÞ   sõ   € Ø×"Ñ"Ð#6Ñ7ˆØ×"Ñ"Ð#7Ñ8ˆØ×"Ñ"Ð#6Ñ7ˆØ×"Ñ"Ð#7Ñ8ˆä % Ð*Ü % Ð*Ü ¨¡Ð 0Ð1Ü ¨¡Ð 0Ð1Ü˜E˜8Ð$Ü%¨¨5 zÐ2Ü%¨ xÐ0Ü&¨°¨
Ð3Ü'¨%¨Ð2Ü%¨¨5 zÐ2Ü%¨ xÐ0Ü&¨¨Ð1Ü'¨%¨Ð2ð
ˆð 	×Ñ˜"˜h¨°"Õ5r   c                óô  — | j                  «       }t        «       | _        |d   r| j                  |«       |d   r| j	                  |«       |d   r<| j                  |«       |j                  j                  t        t        |«      dd«       |d   r| j                  |«       t        |«      }| j                  |_        |j                  j                  |dd«       |j                  j                  d	d
g«       y )Nr8   r5   r6   ÚhtmléZ   r7   Úsmartyr   r   r   )Ú
getConfigsr
   rD   rV   rq   r\   rE   r   ÚHTML_STRICT_RErR   r	   ÚtreeprocessorsÚESCAPED_CHARSÚextend)r   r   ÚconfigsÚinlineProcessors       r   ÚextendMarkdownzSmartyExtension.extendMarkdownô   sÞ   € Ø—/‘/Ó#ˆÜ=E»ZˆÔØÐ#Ò$Ø× Ñ  Ô$Ø�>Ò"Ø×Ñ˜rÔ"ØÐ(Ò)Ø×$Ñ$ RÔ(ð ×Ñ×&Ñ&Ô':¼>È2Ó'NÐPVÐXZÔ[Ø�>Ò"Ø×Ñ˜rÔ"Ü)¨"Ó-ˆØ)-×)<Ñ)<ˆÔ&Ø
×Ñ×"Ñ" ?°H¸aÔ@Ø
×Ñ×Ñ  c 
Õ+r   )ÚreturnÚNone)r.   r/   r0   Ú__doc__r   rK   rR   rV   r\   rq   r}   Ú__classcell__)rA   s   @r   r3   r3   ®   s.   ø„ Ù#ôOòFóNóMó_ó6ö,,r   r3   c                 ó   — t        di | ¤ŽS )Nr1   )r3   )r@   s    r   ÚmakeExtensionrƒ     s   € ÜÑ$˜VÑ$Ð$r   N)"r€   Ú
__future__r   r!   r   Úinlinepatternsr   r   rx   r	   Úutilr
   Ú
punctClassÚendOfWordClassÚ
closeClassÚopeningQuotesBaser9   r`   ra   rb   rc   rd   ri   rj   rk   re   rf   rg   rh   rl   rw   r   r3   rƒ   r1   r   r   ú<module>r‹      s  ðñ^õ #å ß 9Ý ,Ý ð >€
Ø€Ø/€
ð	ð ð ØØØ!Ø"Ø"Ø#Ø"Ø#ñ
€ð # ZÑ/Ð Ø" ZÑ/Ð ð $Ð Ø#Ð ð %€ð (Ð*;Ñ;Ð ð &Ð Ø&¨Ñ3Ð ð (Ð*;Ñ;Ð ð 4°jÑ@Ð Ø(Ð ð "Ð Ø!Ð à˜9Ñ$€ô,Ð/ô ,ô"W,�iô W,ót%r   