o
     hG                  
   @   sn   d dl Z ddlmZmZmZ ddlmZ e eZ	dede
de
d	ed
ef
ddZdede
d
deB fddZdS )    N   )
charCodeAtisSpacenormalizeReference   )
StateBlockstate	startLine_endLinesilentreturnc                 C   s  t d| ||| | j| | j|  }| j| }|d }| |r#dS | j| dkr,dS | j||d  }t|}d }d}||k rt||}	|	dkrLdS |	dkrS|}nJ|	dkrmt	| | }
d url||
7 }t|}|d7 }n(|	dkr|d7 }||k rt||dkrt	| | }
d ur||
7 }t|}|d7 }|d7 }||k sA|d u s|d	k st||d d
krdS |d }||k rt||}	|	dkrt	| | }
d ur||
7 }t|}|d7 }nt
|	rnn|d7 }||k s| jj|||}|jsdS | j|j}| j|sdS |j}|}|}|}||k rBt||}	|	dkr2t	| | }
d ur1||
7 }t|}|d7 }nt
|	r8nn	|d7 }||k s| jj|||d }|jrwt	| | }
d u r[n||
7 }|}t|}|d7 }| jj||||}|jsP||k r||kr|jr|j}|j}nd}|}|}||k rt||}	t
|	sn	|d7 }||k s||k rt||dkr|rd}|}|}||k rt||}	t
|	sn	|d7 }||k s||k rt||dkrdS t|d| }|sdS |rdS d| jvri | jd< || _| jjddr+| ddd	}||||d| d|_|| jg|_|| jd vrC|||| jgd| jd |< dS | jdg ||||| jgd dS )Nz"entering reference: %s, %s, %s, %sr   F[[   ]   
   \   r   :   r    T
referencesinline_definitions
definition)idtitleurllabel)r   hrefmapduplicate_refs)r   r   r   r   )LOGGERdebugbMarkstShifteMarksis_code_blocksrclenr   getNextLiner   mdhelpersparseLinkDestinationoknormalizeLinkstrvalidateLinkposparseLinkTitlecan_continuer   envlineoptionsgetpushmetar   
setdefaultappend)r   r	   r
   r   r.   maximumnextLinestringlabelEndchlineContentdestResr   
destEndPosdestEndLineNostarttitleResr   r   token rE   c/var/www/html/pro-man-master/venv/lib/python3.10/site-packages/markdown_it/rules_block/reference.py	reference	   s  



"





	



 





	rG   r:   c           
      C   s   | j }||ks| |rd S d}| |rd}| j| dk r d}|sI| jjjd}| j}d| _d}|D ]}|| ||drAd} nq4|| _|rId S | j	| | j
|  }| j| }	| j||	d  S )NFTr   rG   r   )lineMaxisEmptyr#   sCountr'   blockrulergetRules
parentTyper    r!   r"   r$   )
r   r:   endLineisContinuationterminatorRulesoldParentType	terminateterminatorRuler.   r9   rE   rE   rF   r&      s0   

r&   )loggingcommon.utilsr   r   r   state_blockr   	getLogger__name__r   intboolrG   r,   r&   rE   rE   rE   rF   <module>   s    
 ;