§
    qŠtj
  ã                  ó¼   — d dl mZ d dlmZ d dlmZ d dlZd dlmZm	Z	m
Z
mZ d dlZddlmZ dZdd„Zdd„Z ej        d¦  «        Z ej        d¦  «        Zddd„ZdS )é    )Úannotations)ÚCallable)ÚsuppressN)ÚquoteÚunquoteÚurlparseÚ
urlunparseé   )Ú	_punycode)zhttp:zhttps:zmailto:ÚurlÚstrÚreturnc                ód  — t          j        | d¬¦  «        }|j        rn|j        r|j        t          v rYt          t          ¦  «        5  |                     t          j	        |j        ¦  «        ¬¦  «        }ddd¦  «         n# 1 swxY w Y   t          j
        t          j        |¦  «        ¦  «        S )zvNormalize destination URLs in links

    ::

        [label]:   destination   'title'
                ^^^^^^^^^^^
    T©Úslashes_denote_host©ÚhostnameN)ÚmdurlÚparser   ÚprotocolÚRECODE_HOSTNAME_FORr   Ú	ExceptionÚ_replacer   Úto_asciiÚencodeÚformat©r   Úparseds     ú^/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/markdown_it/common/normalize_url.pyÚnormalizeLinkr       sî   € õ Œ[˜°$Ð7Ñ7Ô7€Fð „ð SØŒOðSØ%œÕ2EÐEÐEå•iÑ Ô ð 	Sð 	SØ—_’_­iÔ.@ÀÄÑ.QÔ.Q�_ÑRÔRˆFð	Sð 	Sð 	Sñ 	Sô 	Sð 	Sð 	Sð 	Sð 	Sð 	Sð 	Søøøð 	Sð 	Sð 	Sð 	Sõ Œ<�œ VÑ,Ô,Ñ-Ô-Ð-ó   Á.BÂBÂBc                ó€  — t          j        | d¬¦  «        }|j        rn|j        r|j        t          v rYt          t          ¦  «        5  |                     t          j	        |j        ¦  «        ¬¦  «        }ddd¦  «         n# 1 swxY w Y   t          j
        t          j        |¦  «        t           j        dz   ¦  «        S )zSNormalize autolink content

    ::

        <destination>
         ~~~~~~~~~~~
    Tr   r   Nú%)r   r   r   r   r   r   r   r   r   Ú
to_unicodeÚdecoder   ÚDECODE_DEFAULT_CHARSr   s     r   ÚnormalizeLinkTextr'   (   sø   € õ Œ[˜°$Ð7Ñ7Ô7€Fð „ð UØŒOðUØ%œÕ2EÐEÐEå•iÑ Ô ð 	Uð 	UØ—_’_­iÔ.BÀ6Ä?Ñ.SÔ.S�_ÑTÔTˆFð	Uð 	Uð 	Uñ 	Uô 	Uð 	Uð 	Uð 	Uð 	Uð 	Uð 	Uøøøð 	Uð 	Uð 	Uð 	Uõ Œ<�œ VÑ,Ô,­eÔ.HÈ3Ñ.NÑOÔOÐOr!   z!^(vbscript|javascript|file|data):z!^data:image\/(gif|png|jpeg|webp);Ú	validatorúCallable[[str], bool] | NoneÚboolc                óî   — |� || ¦  «        S |                       ¦   «                              ¦   «         } t                               | ¦  «        r't	          t
                               | ¦  «        ¦  «        ndS )a  Validate URL link is allowed in output.

    This validator can prohibit more than really needed to prevent XSS.
    It's a tradeoff to keep code simple and to be secure by default.

    Note: url should be normalized at this point, and existing entities decoded.
    NT)ÚstripÚlowerÚBAD_PROTO_REÚsearchr*   ÚGOOD_DATA_RE)r   r(   s     r   ÚvalidateLinkr1   F   se   € ð ÐØˆy˜‰~Œ~ÐØ
�)Š)‰+Œ+×
Ò
Ñ
Ô
€CÝ-9×-@Ò-@ÀÑ-EÔ-EÐO�4•×#Ò# CÑ(Ô(Ñ)Ô)Ð)È4ÐOó    )r   r   r   r   )N)r   r   r(   r)   r   r*   )Ú
__future__r   Úcollections.abcr   Ú
contextlibr   ÚreÚurllib.parser   r   r   r	   r   Ú r   r   r    r'   Úcompiler.   r0   r1   © r2   r   ú<module>r;      s  ðØ "Ð "Ð "Ð "Ð "Ð "à $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð Ø 	€	€	€	Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =à €€€à Ð Ð Ð Ð Ð à4Ð ð.ð .ð .ð .ð2Pð Pð Pð Pð4 ˆrŒzÐ>Ñ?Ô?€ØˆrŒzÐ>Ñ?Ô?€ðPð Pð Pð Pð Pð Pð Pr2   