U
    祡c                     @   s  d dl mZmZ d dlZd dlZzd dlmZ W n  ek
rP   d dlmZ Y nX ej	dkrej	dkrvd dl
Z
e
jZqddlmZ eZnd dlmZ ejZd	Zd
ZdZdZdZdZde d e d e d Zde d Zde e d Zde e d d Zde d ZdZdZdZdZde d e d e d e d e d e d Ze de ej!Z"e dZ#d Z$e d!e$ d e ej!Z%d"Z&e e&Z'd#d$ Z(d%d& Z)d'd( Z*d)d*d+d,d-Z+d.d/ Z,d0d1 Z-dS )2    )absolute_importunicode_literalsN)quote)   r   )r         )	_unescape)entitytransz5&(?:#x[a-f0-9]{1,6}|#[0-9]{1,7}|[a-z][a-z0-9]{1,31});z[A-Za-z][A-Za-z0-9-]*z[a-zA-Z_:][a-zA-Z0-9:._-]*z[^"'=<>`\x00-\x20]+z'[^']*'z"[^"]*"z(?:|)z
(?:\s*=\s*z(?:\s+z?)<*z\s*/?>z</z\s*[>]z%<!---->|<!--(?:-?[^>-])(?:-?[^-])*-->z[<][?].*?[?][>]z<![A-Z]+\s+[^>]*>z<!\[CDATA\[[\s\S]*?\]\]>^z[\\&]z$[!"#$%&'()*+,./:;<=>?@[\\\]^_`{|}~-]z\\z[&<>"]c                 C   s    | d dkr| d S t | S d S )Nr   \r   )HTMLunescapes r   5/tmp/pip-unpacked-wheel-4s07asnf/commonmark/common.pyunescape_char2   s    r   c                 C   s&   t t| rt tdd | S | S dS )z?Replace entities and backslash escapes with literal characters.c                 S   s   t |  S N)r   groupmr   r   r   <lambda>>       z!unescape_string.<locals>.<lambda>N)researchreBackslashOrAmpsubreEntityOrEscapedCharr   r   r   r   unescape_string9   s    r!   c                 C   s   zt | dtddW S  tk
r   t | d}tdd|}tdd|}tdd	|}td
d|}tdd|}tdd|}tdd|}tdd|}tdd|}tdd|}tdd|}tdd|}| Y S X d S )Nzutf-8z/@:+?=&()%#*,)safez%40@z%3A:z%2B+z%3F?z%3D=z%26&z%28(z%29r   z%25%z%23#z%2Ar   z%2C,)r   encodestrUnicodeDecodeErrorr   r   )urir   r   r   r   normalize_uriD   s"    r1   z&amp;z&lt;z&gt;z&quot;)r(   r   >"c                 C   s   t | | S r   )
UNSAFE_MAPgetr   r   r   r   replace_unsafe_chard   s    r6   c                 C   s2   | d krdS t t| r*t tdd | S | S d S )N c                 S   s   t |  S r   )r6   r   r   r   r   r   r   n   r   zescape_xml.<locals>.<lambda>)r   r   reXmlSpecialr   r   r   r   r   
escape_xmlh   s    r9   ).
__future__r   r   r   sysurllib.parser   ImportErrorurllibversion_infohtmlunescaper   r	   r   Z
commonmarkZENTITYZTAGNAMEZATTRIBUTENAMEZUNQUOTEDVALUEZSINGLEQUOTEDVALUEZDOUBLEQUOTEDVALUEZATTRIBUTEVALUEZATTRIBUTEVALUESPECZ	ATTRIBUTEZOPENTAGZCLOSETAGZHTMLCOMMENTZPROCESSINGINSTRUCTIONZDECLARATIONCDATAZHTMLTAGcompile
IGNORECASEZ	reHtmlTagr   Z	ESCAPABLEr    Z
XMLSPECIALr8   r   r!   r1   r4   r6   r9   r   r   r   r   <module>   s   


 
