
    Xh~1              	          d dl Z d dlmZmZmZmZmZmZ ddlm	Z	m
Z
 ddlmZmZmZmZmZmZmZmZ ddlmZmZ  e j.                  d      ZdZd	ez   ez   d
z   ez   dz   Z e j.                  dez   dz          e j.                  dez   dz          e j.                  dez   dz          e j.                  dez   dz          e j.                  dez   dz          e j.                  dez   dz         dZ G d de
e	         Zy)    N)AnyDictListMatchMutableMappingOptional   )InlineStateParser)HTML_ATTRIBUTESHTML_TAGNAMEPREVENT_BACKSLASHPUNCTUATION
parse_linkparse_link_labelparse_link_textunescape_char)
escape_urlunikeyz\s*\)z<[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*><z	\s*/?>|</zc\s*>|<!--(?!>|->)(?:(?!--)[\s\S])+?(?<!-)-->|<\?[\s\S]+?\?>|<![A-Z][\s\S]+?>|<!\[CDATA[\s\S]+?\]\]>z(?:z\\\*|[^\s*])\*(?!\*)z\\_|[^\s_])_(?!_)\bz\\\*|[^\s*])\*\*(?!\*)z\\_|[^\s_])__(?!_)\bz\\\*|[^\s*])\*\*\*(?!\*)z\\_|[^\s_])___(?!_)\b)*_z**__z***___c                   j    e Zd ZdZeZdZdZdez   dz   dddd	e	e
eed
dez   dz   dZdZd-deddf fdZdee   dedefdZdee   dedee   fdZdededeeeef      dedeeef   f
dZdee   dedefdZdee   dedefdZdedededdfdZdee   dedefdZdee   dedefd Zdee   dedefd!Zdee   dedefd"Zdee   dedefd#Z dededdfd$Z!dede"eeef      fd%Z#	 d.dee   ded&ed'ee"e      dee   f
d(Z$dede"eeef      fd)Z%d*ed+e&eef   de"eeef      fd,Z' xZ(S )/InlineParserr   z(?:\\| {2,})\n\s*z *\n\s*z(?:\\z)+z`{1,}z$\*{1,3}(?=[^\s*])|\b_{1,3}(?=[^\s_])z!?\[z.<[A-Za-z][A-Za-z0-9.+-]{1,31}:[^<>\x00-\x20]*>z<[A-Za-z][A-Za-z\d.+-]{1,31}:z</?z|<!|<\?)escapecodespanemphasislink	auto_link
auto_emailinline_html	linebreak	softbreakprec_auto_linkprec_inline_html)r   r   r   r    r!   r"   r#   r$   	hard_wrapreturnNc           	      
   t         t        |           || _        |r| j                  | j
                  d<   n| j                  j                  d       | j                  D ci c]  }|t        | d|z          c}| _	        y c c}w )Nr$   r%   parse_)
superr   __init__r(   HARD_LINEBREAKspecificationrulesappendgetattr_methods)selfr(   name	__class__s      I/var/www/html/myenv/lib/python3.12/site-packages/mistune/inline_parser.pyr-   zInlineParser.__init__[   sk    lD*,".2.A.AD{+JJk*JN**U$wtX_==UUs    B mstatec                     |j                  d      }t        |      }|j                  d|d       |j                         S )Nr   texttyperaw)groupr   append_tokenend)r4   r8   r9   r;   s       r7   parse_escapezInlineParser.parse_escapeg   s?    wwqzT"	
 uuw    c                     |j                         }|j                  d      }|d   dk(  }|r"|j                  r|j                  d|d       |S |s"|j                  r|j                  d|d       |S d }t        |j                  |      \  }}|t        |j                  |      \  }}|y |J ||}|J |t        |j                        k\  r|y g d}	| j                  ||||	      }
|
r|
S |t        |j                        k  r|j                  |   }|dk(  rEt        |j                  |dz         \  }}|rP| j                  ||||      }|j                  |       |S |dk(  r$t        |j                  |dz         \  }}|r|}|r|}|y |j                  j                  d	      }|sy t        |      }|j                  |      }|rH|d
   |j                  d      d}| j                  ||||      }||d<   ||d<   |j                  |       |S y )Nr   !r;   r<   )r   r&   r'   (r	   [	ref_linksurltitle)rI   rJ   reflabel)rA   r?   in_imager@   in_linkr   srcr   lenprecedence_scanr   _InlineParser__parse_link_tokenenvgetr   )r4   r8   r9   posmarkeris_imager;   rL   end_posr0   prec_poscattrspos2tokenlabel2rH   keyrS   s                      r7   r   zInlineParser.parse_linkr   s'   eeg!9#v>?Jemmv>?J)%))S9w=+EIIs;MD'|"""<Dc%))n$B''5'5AOS^#		'"ACx(GaK@t 33HdE5QE&&u-Kc/		7Q;G"G &=IIMM+.	UmmmC J1ABE++HdE5IEE%L"E'Nu%NrC   rW   r;   r[   c                     |j                         }||_        |rd|_        d| j                  |      |d}|S d|_        d| j                  |      |d}|S )NTimager=   childrenr[   r    )copyrO   rM   renderrN   )r4   rW   r;   r[   r9   	new_stater]   s          r7   __parse_link_tokenzInlineParser.__parse_link_token   sk     JJL		!%I KK	2E  !%I KK	2E
 rC   c                     |j                  d      }|j                         }|j                  r| j                  ||       |S |dd }| j	                  |||       |S )Nr   r	   r?   rA   rN   process_text_add_auto_link)r4   r8   r9   r;   rU   s        r7   parse_auto_linkzInlineParser.parse_auto_link   sX    wwqzeeg==dE*JAbzD$.
rC   c                     |j                  d      }|j                         }|j                  r| j                  ||       |S |dd }d|z   }| j	                  |||       |S )Nr   r	   ri   zmailto:rj   )r4   r8   r9   r;   rU   rI   s         r7   parse_auto_emailzInlineParser.parse_auto_email   sb    wwqzeeg==dE*JAbz$Cu-
rC   rI   c                 L    |j                  dd|dgdt        |      id       y )Nr    r;   r<   rI   rb   )r@   r   )r4   rI   r;   r9   s       r7   rl   zInlineParser._add_auto_link   s/    &,T:;C1	
rC   c                 N   |j                         }|j                  d      }t        |      }|dk(  r"|j                  r|j	                  d|d       |S |dk(  r"|j
                  r|j	                  d|d       |S t        |   }|j                  |j                  |      }|s|j	                  d|d       |S |j                         }|j                  |||z
   }	| j                  |||      }
|
r|
S |j                         }|	|_        |dk(  r.d|_        | j                  |      }|j	                  d|d       |S |dk(  r.d|_        | j                  |      }|j	                  d	|d       |S d|_        d|_        d	| j                  |      dg}|j	                  d|d       |S )
Nr   r	   r;   r<      Tr   )r=   rc   strong)rA   r?   rP   in_emphasisr@   	in_strongEMPHASIS_END_REsearchrO   rQ   rd   re   )r4   r8   r9   rU   rV   mlen_end_rem1rX   r;   rY   rf   rc   s                r7   parse_emphasiszInlineParser.parse_emphasis   s   eeg6{19**v>?JQY5??v>?J!&)^^EIIs+v>?J&&(yyw~.''5':OJJL		19$(I!{{9-H
IJ   QY"&I{{9-HhGH  %)I!"&I!)t{{97MNOH& ( rC   c                    |j                  d      }t        j                  d|z   dz   t        j                        }|j	                         }|j                  |j                  |      }|r|j	                         }|j                  d      }|j                  dd      }t        |j                               r'|j                  d      r|j                  d      r|dd }|j                  d|d	       |S |j                  d
|d	       |S )Nr   z	(.*?[^`])z(?!`)r	   
 ri   r   r<   r;   )r?   recompileSrA   matchrO   replacerP   strip
startswithendswithr@   )	r4   r8   r9   rV   patternrU   m2rX   codes	            r7   parse_codespanzInlineParser.parse_codespan!  s     **\F2X=rttDeeg]]599c*ffhG88A;D<<c*D4::< ??3'DMM#,>":D
4@ANv>?JrC   c                 H    |j                  ddi       |j                         S )Nr=   r$   r@   rA   r4   r8   r9   s      r7   parse_linebreakzInlineParser.parse_linebreak7       FK01uuwrC   c                 H    |j                  ddi       |j                         S )Nr=   r%   r   r   s      r7   parse_softbreakzInlineParser.parse_softbreak;  r   rC   c                     |j                         }|j                  d      }|j                  d|d       |j                  d      r	d|_        |S |j                  d      rd|_        |S )Nr   r#   r<   )z<a z<a>z<A z<A>T)z</a z</a>z</A z</A>F)rA   r?   r@   r   rN   )r4   r8   r9   rX   htmls        r7   parse_inline_htmlzInlineParser.parse_inline_html?  sc    %%'wwqzM$?@??78 EM  __=>!EMrC   c                 ,    |j                  d|d       y )Nr;   r<   )r@   )r4   r;   r9   s      r7   rk   zInlineParser.process_textI  s    F489rC   c                    d}| j                         }|t        |j                        k  r|j                  |j                  |      }|sn|j	                         }||kD  r!|j                  || }| j                  ||       | j                  ||      }|s'|dz   }|j                  || }| j                  ||       n|}|t        |j                        k  r|dk(  r(| j                  |j                  |       |j                  S |t        |j                        k  r| j                  |j                  |d  |       |j                  S )Nr   r	   )
compile_scrP   rO   rw   startrk   parse_methodtokens)r4   r9   rU   scr8   rX   holenew_poss           r7   parsezInlineParser.parseL  s#   __C		N"		%))S)AggiG}yyW-!!$.''51Gkyy-!!$.# C		N"& !8eii/ || 3uyy>!eiiou5||rC   rX   r0   c                    |g d}|j                         }| j                  |      }|j                  |j                  ||      }|sy |j                  }|sy |j                  dd      }	| j                  |	g      }|j                  |j                  |j                               }
|
sy | j                  |	   }|j                         }|j                  |_         ||
|      }|r||k  ry |j                  |j                         |
j                          }|j                  d|d       |j                  D ]  }|j                  |        |S )N)r   r    r&   r'   prec_ r;   r<   )rA   r   rw   rO   	lastgroupr   r   r   r3   rd   r@   r   )r4   r8   r9   rX   r0   mark_posr   rz   r   	rule_namer   funcrf   m2_posraw_textr]   s                   r7   rQ   zInlineParser.precedence_scani  s(    =NE557__U#YYuyy(G4LL	%%gr2	__i[)XXeii,}}Y'JJL				b)$')99QWWY4F8<=%% 	&Eu%	&rC   c                 <    | j                  |       |j                  S N)r   r   )r4   r9   s     r7   re   zInlineParser.render  s    

5||rC   srS   c                 T    | j                  |      }||_        | j                  |      S r   )	state_clsrO   re   )r4   r   rS   r9   s       r7   __call__zInlineParser.__call__  s&    s#	{{5!!rC   )Fr   ))__name__
__module____qualname__sc_flagr
   r   STD_LINEBREAKr.   r   
AUTO_EMAILINLINE_HTMLr   SPECIFICATIONDEFAULT_RULESboolr-   r   strintrB   r   r   r   r   rR   rm   ro   rl   r{   r   r   r   r   rk   r   r   rQ   re   r   r   __classcell__)r6   s   @r7   r   r   3   s   GI )M  N
 [(4/;F ""#:"\1J>!M$	M
V$ 
V4 
V	eCj 	 	 	DE#J D{ Dx} DL  S#X'	
  
c3h2	s 	K 	C 	
%* 
[ 
S 

# 
S 
 
 
.c
 .; .3 .`c
 ; 3 ,s K C s K C 5: k c : :[ :T :; 4S#X+? D &*$:$ $ 	$
 S	"$ 
#$LK Dc3h,@ "# "N38$< "d3PS8nAU "rC   r   )r   typingr   r   r   r   r   r   corer
   r   helpersr   r   r   r   r   r   r   r   utilr   r   r   PAREN_END_REr   r   rv   r    rC   r7   <module>r      s-   	  &	 	 	 %rzz(#=  	</) -
 
  
F..1HH	I	F..1GG	H
"**V//2KK
L
"**V//2II
J2::f003NNO2::f003KKLc"6+& c"rC   