§
    Æ‡tj�  ã                  ór  — U d dl mZ d dlZd dlmZ d dlmZ ej        dk    rd dlm	Z	 n	 d dl
m	Z	 n# e$ r d„ Z	Y nw xY wdd	lmZmZmZmZmZmZmZmZmZmZmZmZmZ dd
lmZmZmZmZmZm Z m!Z! eez  ez  ez  ez  Z"de#d<   e	 G d„ d¦  «        ¦   «         Z$ ed¬¦  «        d9d„¦   «         Z%d„  e&d¦  «        D ¦   «         Z'de#d<    G d„ d¦  «        Z(e	 G d„ de(¦  «        ¦   «         Z)e	 G d„ de(¦  «        ¦   «         Z*e	 G d„ de(¦  «        ¦   «         Z+e	 G d „ d!e(¦  «        ¦   «         Z,e	 G d"„ d#e(¦  «        ¦   «         Z-e	 G d$„ d%e(¦  «        ¦   «         Z.e	 G d&„ d'e(¦  «        ¦   «         Z/e	 G d(„ d)e(¦  «        ¦   «         Z0e	 G d*„ d+e(¦  «        ¦   «         Z1 ed,¬¦  «        d:d1„¦   «         Z2	 d;d<d8„Z3dS )=é    )ÚannotationsN)Ú	lru_cache)Ú	getLogger)é   é   )Úfinalc                ó   — | S )N© )Úclss    úS/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/charset_normalizer/md.pyr   r      s   € ØˆJó    é   )ÚCOMMON_CJK_CHARACTERSÚCOMMON_SAFE_ASCII_CHARACTERSÚTRACEÚUNICODE_SECONDARY_RANGE_KEYWORDÚ_ACCENTUATEDÚ_ARABICÚ_ARABIC_ISOLATED_FORMÚ_CJKÚ_HANGULÚ	_HIRAGANAÚ	_KATAKANAÚ_LATINÚ_THAI)Ú_character_flagsÚis_emoticonÚis_punctuationÚis_separatorÚ	is_symbolÚremove_accentÚunicode_rangeÚintÚ_GLYPH_MASKc                  óü   — e Zd ZU dZdZded<   ded<   ded<   ded<   ded	<   ded
<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   d!d„Zd S )"ÚCharInfoz>Pre-computed character properties shared across all detectors.)Ú	characterÚ	printableÚalphaÚupperÚlowerÚspaceÚdigitÚis_asciiÚcase_variableÚflagsÚaccentuatedÚlatinÚis_cjkÚ	is_arabicÚis_glyphÚpunctÚsymÚrangeÚsepÚemoticonÚsafeÚ
common_cjkÚstrr'   Úboolr(   r)   r*   r+   r,   r-   r.   r/   r#   r0   r1   r2   r3   r4   r5   r6   r7   ú
str | Noner8   r9   r:   r;   r<   ÚreturnÚNonec                ó   — || _         t          |¦  «        }|dk     �r@d| _        d| _        d| _        d| _        d| _        d|cxk    rdk    rWn nTd| _        d| _        d| _	        d| _
        d| _        d| _        d| _        t          | _        d| _        d| _        d| _        �nQd|cxk    rdk    rWn nTd| _        d| _        d| _	        d| _
        d| _        d| _        d| _        t          | _        d| _        d| _        d| _        �níd|cxk    rd	k    rRn nOd| _        d| _        d| _	        d| _
        d| _        d| _        d| _        d
| _        d| _        d| _        d| _        �nŽ|dk    sd|cxk    rdk    rVn nSd| _        d| _        d| _	        d| _
        d| _        |dk    | _        d| _        d
| _        d| _        d| _        d| _        �n%|                     ¦   «         | _        d| _        d| _        d| _	        d| _
        d| _        d| _        d
| _        d| _        | j        rt)          |¦  «        nd| _        | j        rt+          |¦  «        nd| _        �n˜d| _        |                     ¦   «         | _        |                     ¦   «         | _        |                     ¦   «         | _        |                     ¦   «         | _	        |                     ¦   «         | _
        |                     ¦   «         | _        | j	        | j        k    | _        | j        rt7          |¦  «        }nd
}|| _        t9          |t:          z  ¦  «        | _        t9          |t          z  ¦  «        | _        t9          |t<          z  ¦  «        | _        t9          |t>          z  ¦  «        | _        t9          |t@          z  ¦  «        | _        | j        rt)          |¦  «        nd| _        | j        rt+          |¦  «        nd| _        tC          |¦  «        | _"        tG          |¦  «        | _$        tK          |¦  «        | _&        |tN          v | _(        |tR          v | _*        dS )zkCompute all properties for *character* (built once per codepoint,
        every branch assigns every slot).é€   TFéA   éZ   éa   éz   é0   é9   r   é    é	   é   N)+r'   Úordr.   r1   r3   r4   r5   r)   r*   r+   r,   r-   r(   r/   r   r0   r2   r6   r7   Úisprintabler   r    ÚisalphaÚisupperÚislowerÚisspaceÚisdigitr   r>   r   r   r   r$   r"   r8   r   r9   r   r:   r   r;   r   r<   )Úselfr'   Úor0   s       r   Ú__init__zCharInfo.__init__c   s  € ð #ˆŒõ �Y‘”ˆØˆsŠ7‰7Ø ˆDŒMØ$ˆDÔØˆDŒKØ"ˆDŒNØ!ˆDŒMà�Qˆ}ˆ}Š}ˆ}˜"Š}ˆ}ˆ}ˆ}ˆ}à!�”
Ø!�”
Ø"�”
Ø"�”
Ø"�”
Ø!%�”Ø%)�Ô"Ý#�”
Ø!�”
Ø"�”
Ø �”‘Ø�q��’�˜C’����à!�”
Ø"�”
Ø!�”
Ø"�”
Ø"�”
Ø!%�”Ø%)�Ô"Ý#�”
Ø!�”
Ø"�”
Ø �”‘Ø�q��’�˜B’����à"�”
Ø"�”
Ø"�”
Ø"�”
Ø!�”
Ø!%�”Ø%*�Ô"Ø�”
Ø"�”
Ø"�”
Ø �”‘Ø�b’�˜Q !˜\˜\š\˜\ rš\˜\˜\˜\˜\à"�”
Ø"�”
Ø"�”
Ø!�”
Ø"�”
Ø!" b¢�”Ø%*�Ô"Ø�”
Ø"�”
Ø"�”
Ø �”‘ð "+×!6Ò!6Ñ!8Ô!8�”Ø"�”
Ø"�”
Ø"�”
Ø"�”
Ø"�”
Ø%*�Ô"Ø�”
Ø"�”
Ø:>¼.ÐS�^¨IÑ6Ô6Ð6Èe�”
Ø37´>ÐL�9 YÑ/Ô/Ð/Àu�”‘ð "ˆDŒMØ&×2Ò2Ñ4Ô4ˆDŒNØ"×*Ò*Ñ,Ô,ˆDŒJØ"×*Ò*Ñ,Ô,ˆDŒJØ"×*Ò*Ñ,Ô,ˆDŒJØ"×*Ò*Ñ,Ô,ˆDŒJØ"×*Ò*Ñ,Ô,ˆDŒJØ!%¤¨t¬zÒ!9ˆDÔð Œzð Ý(¨Ñ3Ô3��à�ØˆDŒJÝ# E­LÑ$8Ñ9Ô9ˆDÔÝ˜e¥f™nÑ-Ô-ˆDŒJÝ˜u¥t™|Ñ,Ô,ˆDŒKÝ! %­'¡/Ñ2Ô2ˆDŒNÝ  ­Ñ!4Ñ5Ô5ˆDŒMð 7;´nÐO�¨	Ñ2Ô2Ð2È%ˆDŒJØ/3¬~ÐH•y Ñ+Ô+Ð+À5ˆDŒHå" 9Ñ-Ô-ˆŒ
Ý 	Ñ*Ô*ˆŒÝ# IÑ.Ô.ˆŒØÕ!=Ð=ˆŒ	Ø#Õ'<Ð<ˆŒˆˆr   N)r'   r=   r@   rA   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__Ú__annotations__rV   r
   r   r   r&   r&   /   s  € € € € € € àHÐHð€Ið2 €N€N�NØ€O€O�OØ€K€K�KØ€K€K�KØ€K€K�KØ€K€K�KØ€K€K�KØ€N€N�NØÐÐÑØ€J€J�JØÐÐÑØ€K€K�KØ€L€L�LØ€O€O�OØ€N€N�NØ€K€K�KØ€I€I�IØÐÐÑØ€I€I�IØ€N€N�NØ€J€J�JØÐÐÑðq=ð q=ð q=ð q=ð q=ð q=r   r&   )Úmaxsizer'   r=   r@   c                ó    — t          | ¦  «        S )zBBuild (once per codepoint) and cache the CharInfo for *character*.)r&   )r'   s    r   Ú
_char_infor_   Ù   s   € õ �IÑÔÐr   c                óF   — g | ]}t          t          |¦  «        ¦  «        ‘ŒS r
   )r&   Úchr)Ú.0Ú
_codepoints     r   ú
<listcomp>rd   à   s3   € ð $ð $ð $Ø",…H�S�‰_Œ_ÑÔð$ð $ð $r   rC   zlist[CharInfo]Ú_ASCII_CHAR_INFOc                  ó>   — e Zd ZdZdZdd	„Zdd
„Zedd„¦   «         ZdS )ÚMessDetectorPluginzy
    Base abstract class used for mess detection plugins.
    All detectors MUST extend and implement given methods.
    r
   r'   r=   Úinfor&   r@   rA   c                ó   — t           ‚)z‰
        The main routine to be executed upon character.
        Insert the logic in witch the text would be considered chaotic.
        ©ÚNotImplementedError©rT   r'   rh   s      r   Ú	feed_infozMessDetectorPlugin.feed_infoí   s
   € õ
 "Ð!r   c                ó   — t           ‚)zB
        Permit to reset the plugin to the initial state.
        rj   ©rT   s    r   ÚresetzMessDetectorPlugin.resetô   s
   € õ "Ð!r   Úfloatc                ó   — t           ‚)z…
        Compute the chaos ratio based on what your feed() has seen.
        Must NOT be lower than 0.; No restriction gt 0.
        rj   ro   s    r   ÚratiozMessDetectorPlugin.ratioú   s
   € õ "Ð!r   N©r'   r=   rh   r&   r@   rA   ©r@   rA   ©r@   rq   )	rW   rX   rY   rZ   r[   rm   rp   Úpropertyrs   r
   r   r   rg   rg   å   sm   € € € € € ðð ð
 €Ið"ð "ð "ð "ð"ð "ð "ð "ð ð"ð "ð "ñ „Xð"ð "ð "r   rg   c                  óB   — e Zd ZdZdd„Zdd	„Zdd
„Zedd„¦   «         ZdS )Ú TooManySymbolOrPunctuationPlugin©Ú_punctuation_countÚ_symbol_countÚ_character_countÚ_last_printable_charÚ_frenzy_symbol_in_wordr@   rA   c                óL   — d| _         d| _        d| _        d | _        d| _        d S ©Nr   Frz   ro   s    r   rV   z)TooManySymbolOrPunctuationPlugin.__init__  s0   € Ø'(ˆÔØ"#ˆÔØ%&ˆÔà04ˆÔ!Ø,1ˆÔ#Ð#Ð#r   r'   r=   rh   r&   c                óÒ   — | xj         dz  c_         || j        k    rD|j        s=|j        r| xj        dz  c_        n%|j        s|j        r|j        s| xj        dz  c_        || _        dS )ú1Optimized feed using pre-computed character info.r   é   N)	r}   r~   r;   r6   r{   r-   r7   r:   r|   rl   s      r   rm   z*TooManySymbolOrPunctuationPlugin.feed_info  sŠ   € àÐÔ Ñ"ÐÔà˜Ô1Ò1Ð1¸$¼)Ð1ØŒzð (ØÐ'Ô'¨1Ñ,Ð'Ô'Ð'Ø”Zð ( D¤Hð (°T´]ð (ØÐ"Ô" aÑ'Ð"Ô"à$-ˆÔ!Ð!Ð!r   c                ó0   — d| _         d| _        d| _        d S ©Nr   )r{   r}   r|   ro   s    r   rp   z&TooManySymbolOrPunctuationPlugin.reset!  s    € Ø"#ˆÔØ !ˆÔØˆÔÐÐr   rq   c                ó^   — | j         dk    rdS | j        | j        z   | j         z  }|dk    r|ndS )Nr   ç        ç333333Ó?)r}   r{   r|   )rT   Úratio_of_punctuations     r   rs   z&TooManySymbolOrPunctuationPlugin.ratio&  sK   € àÔ  AÒ%Ð%Ø�3ð Ô# dÔ&8Ñ8ØÔ!ñ'"Ðð (<¸sÒ'BÐ'BÐ#Ð#ÈÐKr   Nru   rt   rv   ©	rW   rX   rY   r[   rV   rm   rp   rw   rs   r
   r   r   ry   ry     s}   € € € € € ð€Ið2ð 2ð 2ð 2ð
.ð 
.ð 
.ð 
.ðð ð ð ð
 ðLð Lð Lñ „XðLð Lð Lr   ry   c                  óB   — e Zd ZdZdd„Zdd	„Zdd
„Zedd„¦   «         ZdS )ÚTooManyAccentuatedPlugin©r}   Ú_accentuated_countr@   rA   c                ó"   — d| _         d| _        d S r†   rŽ   ro   s    r   rV   z!TooManyAccentuatedPlugin.__init__6  s   € Ø%&ˆÔØ'(ˆÔÐÐr   r'   r=   rh   r&   c                óX   — | xj         dz  c_         |j        r| xj        dz  c_        dS dS ©rƒ   r   N)r}   r1   r�   rl   s      r   rm   z"TooManyAccentuatedPlugin.feed_info:  sE   € àÐÔ Ñ"ÐÔàÔð 	)ØÐ#Ô# qÑ(Ð#Ô#Ð#Ð#ð	)ð 	)r   c                ó"   — d| _         d| _        d S r†   rŽ   ro   s    r   rp   zTooManyAccentuatedPlugin.resetA  s   € Ø !ˆÔØ"#ˆÔÐÐr   rq   c                óN   — | j         dk     rdS | j        | j         z  }|dk    r|ndS )Nr   rˆ   gffffffÖ?rŽ   )rT   Úratio_of_accentuations     r   rs   zTooManyAccentuatedPlugin.ratioE  s<   € àÔ  1Ò$Ð$Ø�3à'+Ô'>ÀÔAVÑ'VÐØ(=ÀÒ(EÐ(EÐ$Ð$È3ÐNr   Nru   rt   rv   r‹   r
   r   r   r�   r�   2  s{   € € € € € à:€Ið)ð )ð )ð )ð)ð )ð )ð )ð$ð $ð $ð $ð ðOð Oð Oñ „XðOð Oð Or   r�   c                  óB   — e Zd ZdZdd„Zdd	„Zdd
„Zedd„¦   «         ZdS )ÚUnprintablePlugin©Ú_unprintable_countr}   r@   rA   c                ó"   — d| _         d| _        d S r†   r˜   ro   s    r   rV   zUnprintablePlugin.__init__R  s   € Ø'(ˆÔØ%&ˆÔÐÐr   r'   r=   rh   r&   c                óz   — |j         s#|j        s|dk    r|dk    r| xj        dz  c_        | xj        dz  c_        dS )rƒ   úu   ï»¿r   N)r,   r(   r™   r}   rl   s      r   rm   zUnprintablePlugin.feed_infoV  s^   € ð ”
ð	)à”Nð	)ð ˜VÒ#Ð#Ø˜XÒ%Ð%àÐ#Ô# qÑ(Ð#Ô#ØÐÔ Ñ"ÐÔÐÐr   c                ó   — d| _         d S r†   )r™   ro   s    r   rp   zUnprintablePlugin.reseta  s   € Ø"#ˆÔÐÐr   rq   c                ó@   — | j         dk    rdS | j        dz  | j         z  S )Nr   rˆ   r   )r}   r™   ro   s    r   rs   zUnprintablePlugin.ratiod  s+   € àÔ  AÒ%Ð%Ø�3àÔ'¨!Ñ+¨tÔ/DÑDÐDr   Nru   rt   rv   r‹   r
   r   r   r—   r—   N  s{   € € € € € à:€Ið'ð 'ð 'ð 'ð	#ð 	#ð 	#ð 	#ð$ð $ð $ð $ð ðEð Eð Eñ „XðEð Eð Er   r—   c                  óB   — e Zd ZdZdd„Zdd	„Zdd
„Zedd„¦   «         ZdS )ÚSuspiciousDuplicateAccentPlugin©Ú_successive_countr}   Ú_last_latin_characterÚ_last_was_accentuatedr@   rA   c                ó>   — d| _         d| _        d | _        d| _        d S r�   r¡   ro   s    r   rV   z(SuspiciousDuplicateAccentPlugin.__init__u  s(   € Ø&'ˆÔØ%&ˆÔà15ˆÔ"Ø+0ˆÔ"Ð"Ð"r   r'   r=   rh   r&   c                ó@  — | xj         dz  c_         | j        �s|j        rl| j        re|j        r)| j                             ¦   «         r| xj        dz  c_        t          |¦  «        t          | j        ¦  «        k    r| xj        dz  c_        || _        |j        | _        dS r’   )r}   r£   r1   r¤   r*   rP   r¢   r!   rl   s      r   rm   z)SuspiciousDuplicateAccentPlugin.feed_info|  s¶   € àÐÔ Ñ"ÐÔàÔ&Ð2ØÔ ð 3àÔ*ð 3ð Œzð ,˜dÔ8×@Ò@ÑBÔBð ,ØÐ&Ô&¨!Ñ+Ð&Ô&Ý˜YÑ'Ô'­=¸Ô9SÑ+TÔ+TÒTÐTØÐ&Ô&¨!Ñ+Ð&Ô&Ø%.ˆÔ"Ø%)Ô%5ˆÔ"Ð"Ð"r   c                ó>   — d| _         d| _        d | _        d| _        d S r�   r¡   ro   s    r   rp   z%SuspiciousDuplicateAccentPlugin.reset‹  s(   € Ø!"ˆÔØ !ˆÔØ%)ˆÔ"Ø%*ˆÔ"Ð"Ð"r   rq   c                ó@   — | j         dk    rdS | j        dz  | j         z  S )Nr   rˆ   r„   )r}   r¢   ro   s    r   rs   z%SuspiciousDuplicateAccentPlugin.ratio‘  s+   € àÔ  AÒ%Ð%Ø�3àÔ&¨Ñ*¨dÔ.CÑCÐCr   Nru   rt   rv   r‹   r
   r   r   r    r    l  s}   € € € € € ð€Ið1ð 1ð 1ð 1ð6ð 6ð 6ð 6ð+ð +ð +ð +ð ðDð Dð Dñ „XðDð Dð Dr   r    c                  óB   — e Zd ZdZdd„Zdd	„Zdd
„Zedd„¦   «         ZdS )ÚSuspiciousRange©Ú"_suspicious_successive_range_countr}   Ú_last_printable_seenÚ_last_printable_ranger@   rA   c                ó>   — d| _         d| _        d | _        d | _        d S r†   r«   ro   s    r   rV   zSuspiciousRange.__init__¢  s(   € Ø78ˆÔ/Ø%&ˆÔØ04ˆÔ!Ø15ˆÔ"Ð"Ð"r   r'   r=   rh   r&   c                ó0  — | xj         dz  c_         |j        s|j        s|j        rd| _        d| _        dS | j        €|| _        |j        | _        dS | j        }|j        }||k    s|€ t          ||¦  «        r| xj        dz  c_        || _        || _        dS r’   )	r}   r,   r6   r;   r­   r®   r8   Ú is_suspiciously_successive_ranger¬   )rT   r'   rh   Úunicode_range_aÚunicode_range_bs        r   rm   zSuspiciousRange.feed_info¨  sÄ   € àÐÔ Ñ"ÐÔàŒ:ð 	˜œð 	 t¤yð 	Ø(,ˆDÔ%Ø)-ˆDÔ&ØˆFàÔ$Ð,Ø(1ˆDÔ%Ø)-¬ˆDÔ&ØˆFà&*Ô&@ˆØ&*¤jˆð ˜oÒ-Ð-°Ð1HÝ/°ÀÑQÔQð =ØÐ7Ô7¸1Ñ<Ð7Ô7à$-ˆÔ!Ø%4ˆÔ"Ð"Ð"r   c                ó>   — d| _         d| _        d | _        d | _        d S r†   )r}   r¬   r­   r®   ro   s    r   rp   zSuspiciousRange.resetÁ  s(   € Ø !ˆÔØ23ˆÔ/Ø$(ˆÔ!Ø%)ˆÔ"Ð"Ð"r   rq   c                óD   — | j         dk    rdS | j        dz  | j         z  }|S )NrL   rˆ   r„   )r}   r¬   )rT   Úratio_of_suspicious_range_usages     r   rs   zSuspiciousRange.ratioÇ  s8   € àÔ  BÒ&Ð&Ø�3ð Ô3°aÑ7ØÔ!ñ2"Ð'ð /Ð.r   Nru   rt   rv   r‹   r
   r   r   rª   rª   ™  sw   € € € € € ð€Ið6ð 6ð 6ð 6ð5ð 5ð 5ð 5ð2*ð *ð *ð *ð ð/ð /ð /ñ „Xð/ð /ð /r   rª   c                  óB   — e Zd ZdZdd„Zdd	„Zdd
„Zedd„¦   «         ZdS )ÚSuperWeirdWordPlugin©Ú_word_countÚ_bad_word_countÚ_foreign_long_countÚ_is_current_word_badÚ_foreign_long_watchr}   Ú_bad_character_countÚ_buffer_lengthÚ_buffer_last_charÚ_buffer_last_char_accentuatedÚ_buffer_accent_countÚ_buffer_glyph_countÚ_buffer_upper_countÚ_buffer_first_lowerÚ_buffer_has_non_asciir@   rA   c                óØ   — d| _         d| _        d| _        d| _        d| _        d| _        d| _        d| _        d | _        d| _	        d| _
        d| _        d| _        d| _        d| _        d S r�   r¹   ro   s    r   rV   zSuperWeirdWordPlugin.__init__ç  s€   € Ø !ˆÔØ$%ˆÔØ()ˆÔ à*/ˆÔ!Ø).ˆÔ à%&ˆÔØ)*ˆÔ!à#$ˆÔØ-1ˆÔØ38ˆÔ*Ø)*ˆÔ!Ø()ˆÔ Ø()ˆÔ Ø).ˆÔ Ø+0ˆÔ"Ð"Ð"r   r'   r=   rh   r&   c                óD  — |j         r²| j        dk    r|j        | _        | xj        dz  c_        || _        |j        r| xj        dz  c_        |j        sd| _        |j	        | _
        |j	        r| xj        dz  c_        | j        s|j        r|j	        r|j        sd| _        |j        r| xj        dz  c_        dS | j        sdS |j        s|j        s|j        �rŠ| xj        dz  c_        | j        }| xj        |z  c_        |dk    r¯| j        |z  dk    rd| _        n™| j
        r<| j                             ¦   «         r#| j        |k    r| xj        dz  c_        d| _        nV| j        dk    rd| _        | xj        dz  c_        n3| j        r,| j        r%| j        |dz
  k    r| xj        dz  c_        d| _        |dk    r9| j        r2| j        dk    o| j        |z  dk    }|s| xj        dz  c_        d| _        | j        r'| xj        dz  c_        | xj        |z  c_        d	| _        d	| _        d| _        d| _        d	| _
        d| _        d| _        d| _        d	| _        d	| _        dS |d
vr5|j        s0|j        r+d| _        | xj        dz  c_        || _        d	| _
        dS dS dS dS )rƒ   r   r   TNé   ç      à?é   r‰   F>   Ú_ú-ú<ú=ú>ú|ú~)r)   rÀ   r+   rÆ   rÁ   r*   rÅ   r.   rÇ   r1   rÂ   rÃ   r¾   r2   r5   rÄ   r,   r6   r9   rº   r}   r½   rP   r¼   r»   r¿   r-   r7   )rT   r'   rh   Úbuffer_lengthÚprobable_camel_caseds        r   rm   zSuperWeirdWordPlugin.feed_infoû  s’  € àŒ:ð 	ØÔ" aÒ'Ð'Ø+/¬:�Ô(ØÐÔ 1Ñ$ÐÔØ%.ˆDÔ"àŒzð .ØÐ(Ô(¨AÑ-Ð(Ô(Ø”=ð 2Ø-1�Ô*à15Ô1AˆDÔ.àÔð /ØÐ)Ô)¨QÑ.Ð)Ô)àÔ,ð0àœð0à'+Ô'7ð0ð œð0ð
 ,0�Ô(ØŒ}ð .ØÐ(Ô(¨AÑ-Ð(Ô(ØˆFØÔ"ð 	ØˆFØŒ:ð =	7˜œð =	7 t¤xñ =	7ØÐÔ Ñ!ÐÔØ!%Ô!4ˆMàÐ!Ô! ]Ñ2Ð!Ô!à Ò!Ð!ØÔ,¨}Ñ<ÀÒCÐCØ04�DÔ-Ð-àÔ6ð5àÔ.×6Ò6Ñ8Ô8ð5ð Ô0°MÒAÐAàÐ,Ô,°Ñ1Ð,Ô,Ø04�DÔ-Ð-ØÔ-°Ò2Ð2Ø04�DÔ-ØÐ,Ô,°Ñ1Ð,Ô,Ð,àÔ.ð	5àÔ0ð	5ð Ô0°MÀAÑ4EÒEÐEð
 Ð,Ô,°Ñ1Ð,Ô,Ø04�DÔ-Ø Ò"Ð" tÔ'?Ð"àÔ,¨qÒ0ð HØÔ0°=Ñ@ÀCÒGð %ð
 ,ð 5ØÐ,Ô,°Ñ1Ð,Ô,Ø04�DÔ-àÔ(ð 2ØÐ$Ô$¨Ñ)Ð$Ô$ØÐ)Ô)¨]Ñ:Ð)Ô)Ø,1�Ô)à',ˆDÔ$Ø"#ˆDÔØ%)ˆDÔ"Ø16ˆDÔ.Ø()ˆDÔ%Ø'(ˆDÔ$Ø'(ˆDÔ$Ø',ˆDÔ$Ø).ˆDÔ&Ð&Ð&àÐ@Ð@Ð@Ø”Jð Aà”ð Að )-ˆDÔ%ØÐÔ 1Ñ$ÐÔØ%.ˆDÔ"Ø16ˆDÔ.Ð.Ð.ð AÐ@Ð@Ð@Ð@Ð@r   c                óØ   — d| _         d | _        d| _        d| _        d| _        d| _        d| _        d| _        d| _        d| _	        d| _
        d| _        d| _        d| _        d| _        d S r�   )rÀ   rÁ   rÂ   r½   r¾   r»   rº   r}   r¿   r¼   rÃ   rÄ   rÅ   rÆ   rÇ   ro   s    r   rp   zSuperWeirdWordPlugin.resetV  s€   € ØˆÔØ!%ˆÔØ-2ˆÔ*Ø$)ˆÔ!Ø#(ˆÔ Ø ˆÔØˆÔØ !ˆÔØ$%ˆÔ!Ø#$ˆÔ Ø$%ˆÔ!Ø#$ˆÔ Ø#$ˆÔ Ø#(ˆÔ Ø%*ˆÔ"Ð"Ð"r   rq   c                óP   — | j         dk    r| j        dk    rdS | j        | j        z  S )Né
   r   rˆ   )rº   r¼   r¿   r}   ro   s    r   rs   zSuperWeirdWordPlugin.ratiog  s3   € àÔ˜rÒ!Ð! dÔ&>À!Ò&CÐ&CØ�3àÔ(¨4Ô+@Ñ@Ð@r   Nru   rt   rv   r‹   r
   r   r   r¸   r¸   Ó  s‚   € € € € € ð€Ið$1ð 1ð 1ð 1ð(Y7ð Y7ð Y7ð Y7ðv+ð +ð +ð +ð" ðAð Að Añ „XðAð Að Ar   r¸   c                  óF   — e Zd ZdZdZdd„Zdd
„Zdd„Zedd„¦   «         Z	dS )ÚCjkUncommonPluginz<
    Detect messy CJK text that probably means nothing.
    ©r}   Ú_uncommon_countr@   rA   c                ó"   — d| _         d| _        d S r†   rÛ   ro   s    r   rV   zCjkUncommonPlugin.__init__w  s   € Ø%&ˆÔØ$%ˆÔÐÐr   r'   r=   rh   r&   c                óX   — | xj         dz  c_         |j        s| xj        dz  c_        dS dS r’   )r}   r<   rÜ   rl   s      r   rm   zCjkUncommonPlugin.feed_info{  sD   € àÐÔ Ñ"ÐÔàŒð 	&ØÐ Ô  AÑ%Ð Ô Ð Ð ð	&ð 	&r   c                ó"   — d| _         d| _        d S r†   rÛ   ro   s    r   rp   zCjkUncommonPlugin.reset‚  s   € Ø !ˆÔØ ˆÔÐÐr   rq   c                óT   — | j         dk     rdS | j        | j         z  }|dk    r|dz  ndS )Nr   rˆ   rË   rØ   rÛ   )rT   Úuncommon_form_usages     r   rs   zCjkUncommonPlugin.ratio†  sC   € àÔ  1Ò$Ð$Ø�3à%)Ô%9¸DÔ<QÑ%QÐð ,?ÀÒ+DÐ+DÐ" RÑ'Ð'È#ÐMr   Nru   rt   rv   )
rW   rX   rY   rZ   r[   rV   rm   rp   rw   rs   r
   r   r   rÚ   rÚ   o  s‡   € € € € € ðð ð 8€Ið&ð &ð &ð &ð&ð &ð &ð &ð!ð !ð !ð !ð ðNð Nð Nñ „XðNð Nð Nr   rÚ   c                  óB   — e Zd ZdZdd„Zdd	„Zdd
„Zedd„¦   «         ZdS )ÚArchaicUpperLowerPlugin©	Ú_bufÚ_character_count_since_last_sepÚ_successive_upper_lower_countÚ#_successive_upper_lower_count_finalr}   Ú_last_alpha_seenÚ_last_alpha_seen_upperÚ_last_alpha_seen_lowerÚ_current_ascii_onlyr@   rA   c                ó„   — d| _         d| _        d| _        d| _        d| _        d | _        d| _        d| _        d| _        d S )NFr   Trä   ro   s    r   rV   z ArchaicUpperLowerPlugin.__init__   sO   € ØˆŒ	à45ˆÔ,à23ˆÔ*Ø89ˆÔ0à%&ˆÔà,0ˆÔØ,1ˆÔ#Ø,1ˆÔ#Ø)-ˆÔ Ð Ð r   r'   r=   rh   r&   c                óR  — |j         o|j        }| }|rn| j        dk    rc| j        dk    r#|j        s| j        s| xj        | j        z  c_        d| _        d| _        d| _        d| _        | xj	        dz  c_	        d| _        dS | j        r|j
        sd| _        | j        �J|j        r| j        s|j        r.| j        r'| j        r| xj        dz  c_        d| _        nd| _        nd| _        | xj	        dz  c_	        | xj        dz  c_        || _        |j        | _        |j        | _        dS )rƒ   r   é@   NFr   Tr„   )r)   r/   ræ   r-   rì   rè   rç   ré   rå   r}   r.   r*   rë   r+   rê   )rT   r'   rh   Úis_concernedÚ	chunk_seps        r   rm   z!ArchaicUpperLowerPlugin.feed_info¯  s€  € à!œZÐ>¨DÔ,>ˆØ*Ð*ˆ	àð 	˜Ô=ÀÒAÐAàÔ4¸Ò:Ð:Øœ
ð ;àÔ0ð ;ð Ð8Ô8ØÔ6ñÐ8Ô8ð 23ˆDÔ.Ø34ˆDÔ0Ø$(ˆDÔ!ØˆDŒIØÐ!Ô! QÑ&Ð!Ô!Ø'+ˆDÔ$àˆFàÔ#ð 	-¨D¬Mð 	-Ø',ˆDÔ$àÔ Ð,Ø”
ð 	"˜tÔ:ð 	"Ø”
ð	"Ø#Ô:ð	"ð ”9ð %ØÐ6Ô6¸!Ñ;Ð6Ô6Ø %�D”I�Ià $�D”I�Ià!�”	àÐÔ Ñ"ÐÔØÐ,Ô,°Ñ1Ð,Ô,Ø )ˆÔØ&*¤jˆÔ#Ø&*¤jˆÔ#Ð#Ð#r   c                ó„   — d| _         d| _        d| _        d| _        d | _        d| _        d| _        d| _        d| _        d S )Nr   FT)	r}   ræ   rç   rè   ré   rê   rë   rå   rì   ro   s    r   rp   zArchaicUpperLowerPlugin.resetÜ  sO   € Ø !ˆÔØ/0ˆÔ,Ø-.ˆÔ*Ø34ˆÔ0Ø $ˆÔØ&+ˆÔ#Ø&+ˆÔ#ØˆŒ	Ø#'ˆÔ Ð Ð r   rq   c                ó:   — | j         dk    rdS | j        | j         z  S )Nr   rˆ   )r}   rè   ro   s    r   rs   zArchaicUpperLowerPlugin.ratioç  s&   € àÔ  AÒ%Ð%Ø�3àÔ7¸$Ô:OÑOÐOr   Nru   rt   rv   r‹   r
   r   r   rã   rã   ’  s~   € € € € € ð
€Ið.ð .ð .ð .ð+1ð +1ð +1ð +1ðZ	(ð 	(ð 	(ð 	(ð ðPð Pð Pñ „XðPð Pð Pr   rã   c                  óB   — e Zd ZdZdd„Zdd„Zdd
„Zedd„¦   «         ZdS )ÚArabicIsolatedFormPlugin©r}   Ú_isolated_form_countr@   rA   c                ó"   — d| _         d| _        d S r†   rö   ro   s    r   rV   z!ArabicIsolatedFormPlugin.__init__ó  s   € Ø%&ˆÔØ)*ˆÔ!Ð!Ð!r   c                ó"   — d| _         d| _        d S r†   rö   ro   s    r   rp   zArabicIsolatedFormPlugin.reset÷  s   € Ø !ˆÔØ$%ˆÔ!Ð!Ð!r   r'   r=   rh   r&   c                óh   — | xj         dz  c_         |j        t          z  r| xj        dz  c_        dS dS r’   )r}   r0   r   r÷   rl   s      r   rm   z"ArabicIsolatedFormPlugin.feed_infoû  sJ   € àÐÔ Ñ"ÐÔàŒ:Õ-Ñ-ð 	+ØÐ%Ô%¨Ñ*Ð%Ô%Ð%Ð%ð	+ð 	+r   rq   c                ó>   — | j         dk     rdS | j        | j         z  }|S )Nr   rˆ   rö   )rT   Úisolated_form_usages     r   rs   zArabicIsolatedFormPlugin.ratio  s,   € àÔ  1Ò$Ð$Ø�3à%)Ô%>ÀÔAVÑ%VÐà"Ð"r   Nru   rt   rv   )	rW   rX   rY   r[   rV   rp   rm   rw   rs   r
   r   r   rõ   rõ   ï  su   € € € € € à<€Ið+ð +ð +ð +ð&ð &ð &ð &ð+ð +ð +ð +ð ð#ð #ð #ñ „Xð#ð #ð #r   rõ   é   r²   r?   r³   r>   c                óÊ  — | �|€dS | |k    rdS d| v rd|v rdS d| v sd|v rdS d| v sd|v r
d| v sd|v rdS |                       d¦  «        |                      d¦  «        }}|D ]}|t          v rŒ||v r dS Œ| dv |dv }}|s|r
d	| v sd	|v rdS |r|rdS d
| v sd
|v rd	| v sd	|v rdS | dk    s|dk    rdS d	| v sd	|v s| dv r&|dv r"d| v sd|v rdS d| v sd|v rdS | dk    s|dk    rdS dS )za
    Determine if two Unicode range seen next to each other can be considered as suspicious.
    NTFÚLatinÚ	EmoticonsÚ	Combiningú )ÚHiraganaÚKatakanaÚCJKÚHangulzBasic Latin)r  r  ÚPunctuationÚForms)Úsplitr   )r²   r³   Úkeywords_range_aÚkeywords_range_bÚelÚrange_a_jp_charsÚrange_b_jp_charss          r   r±   r±     s  € ð Ð /Ð"9Øˆtà˜/Ò)Ð)Øˆuà�/Ð!Ð! g°Ð&@Ð&@Øˆuà�oÐ%Ð%¨¸Ð)GÐ)GØˆuð 	�?Ð"Ð" g°Ð&@Ð&@Ø�Ð&Ð&¨+¸Ð*HÐ*Hàˆuð 	×Ò˜cÑ"Ô"Ø×Ò˜cÑ"Ô"ð 'Ðð
 ð ð ˆØÕ0Ð0Ð0ØØÐ!Ð!Ð!Ø�5�5ð "ð
 	ð
ð	
ð
 	Ð3Ð3ð 'Ðð 	ð Ð,ð Ø�Ð Ð  E¨_Ð$<Ð$<àˆuØð Ð,ð Øˆuà�?Ð"Ð" h°/Ð&AÐ&AØ�OÐ#Ð# u°Ð'?Ð'?Ø�5Ø˜mÒ+Ð+¨À-Ò/OÐ/OØ�5ð 	�Ð Ð  E¨_Ð$<Ð$<ØÐ3Ð3Ð3ØÐ7Ð7Ð7à˜OÐ+Ð+¨}ÀÐ/OÐ/OØ�5Ø�oÐ%Ð%¨°OÐ)CÐ)CØ�5Ø˜mÒ+Ð+¨À-Ò/OÐ/OØ�5àˆ4r   çš™™™™™É?FÚdecoded_sequenceÚmaximum_thresholdrq   Údebugc           	     ó  — t          | ¦  «        }|dk     rd}n|dk     rd}nd}|                      ¦   «         }t          }t          }t	          ¦   «         }t          ¦   «         }	t          ¦   «         }
t          ¦   «         }t          ¦   «         }t          ¦   «         }t          ¦   «         }t          ¦   «         }t          ¦   «         }|j        }|	j        }|
j        }|j        }|j        }|j        }|j        }|j        }|j        }t          d||¦  «        D �]0}| |||z   …         D ]Ð}t          |¦  «        }|dk     r	||         }n ||¦  «        } |||¦  «          |||¦  «         |r|j        r |||¦  «         ŒY |||¦  «         |j        r |||¦  «          |||¦  «         |j        rE |||¦  «         |j        r |||¦  «         |j        r |||¦  «         |j        r |||¦  «         ŒÑ|j        |	j        z   |
j        z   |j        z   |j        z   |j        z   |j        z   |j        z   |j        z   }||k    r nw�Œ2|d         } |d|¦  «         |s |d|¦  «          |d|¦  «         |j        |	j        z   |
j        z   |j        z   |j        z   |j        z   |j        z   |j        z   |j        z   }|r½t-          d	¦  «        } |                      t0          d
|› d|› d|› �¦  «         |dk    rL|                      t0          d| dd…         › �¦  «         |                      t0          d| dd…         › �¦  «         ||	|
||||||f	D ],}!|                      t0          |!j        › d|!j        › �¦  «         Œ-t5          |d¦  «        S )zw
    Compute a mess ratio given a decoded bytes sequence. The maximum threshold does stop the computation earlier.
    iÿ  rJ   rý   rï   rC   r   rØ   ú
Úcharset_normalizerzIMess-detector extended-analysis start. intermediary_mean_mess_ratio_calc=z mean_mess_ratio=z maximum_threshold=é   zStarting with: NzEnding with: iðÿÿÿz: r   )ÚlenÚisasciire   r_   ry   r�   r—   r    rª   r¸   rÚ   rã   rõ   rm   r8   rM   r(   r)   r2   r3   r4   rs   r   Úlogr   Ú	__class__Úround)"r  r  r  Úseq_lenÚstepÚis_pure_asciiÚ
ascii_infoÚ	char_infoÚd_spÚd_taÚd_upÚd_sdaÚd_srÚd_swÚd_cuÚd_auÚd_aiÚ	d_sp_feedÚ	d_ta_feedÚ	d_up_feedÚ
d_sda_feedÚ	d_sr_feedÚ	d_sw_feedÚ	d_cu_feedÚ	d_au_feedÚ	d_ai_feedÚblock_startr'   Ú	codepointrh   Úmean_mess_ratioÚnl_infoÚloggerÚdts"                                     r   Ú
mess_ratior9  V  s­  € õ Ð'Ñ(Ô(€Gà�‚}€}ØˆˆØ	�4ŠˆØˆˆàˆð
 +×2Ò2Ñ4Ô4€Mõ
 "€JÝ€Iõ .NÑ-OÔ-O€DÝ%=Ñ%?Ô%?€DÝ/Ñ1Ô1€DÝ-LÑ-NÔ-N€EÝ+Ñ-Ô-€DÝ!5Ñ!7Ô!7€DÝ/Ñ1Ô1€DÝ$;Ñ$=Ô$=€DÝ%=Ñ%?Ô%?€Dð ”€IØ”€IØ”€IØ”€JØ”€IØ”€IØ”€IØ”€IØ”€Iå˜Q ¨Ñ.Ô.ð J
ñ J
ˆØ)¨+¸ÀdÑ8JÐ*JÔKð '	/ð '	/ˆIõ
 ! ™^œ^ˆIØ˜3ŠˆØ! )Ô,��à �y Ñ+Ô+�ð ˆI�i Ñ&Ô&Ð&ØˆI�i Ñ&Ô&Ð&àð à”>ð /Ø�I˜i¨Ñ.Ô.Ð.ØàˆI�i Ñ&Ô&Ð&ð Œ~ð +Ø�	˜) TÑ*Ô*Ð*Ø�	˜) TÑ*Ô*Ð*ð Œzð 
/Ø�	˜) TÑ*Ô*Ð*à”:ð 0Ø�J˜y¨$Ñ/Ô/Ð/à”;ð /Ø�I˜i¨Ñ.Ô.Ð.à”>ð /Ø�I˜i¨Ñ.Ô.Ð.øð ŒJØŒjñàŒjñð Œkñð Œjñ	ð
 Œjñð Œjñð Œjñð Œjñð 	ð Ð/Ò/Ð/ØˆEñ 0ð ˜R”.ˆØˆ	�$˜Ñ Ô Ð Øð 	%ØˆI�d˜GÑ$Ô$Ð$Øˆ	�$˜Ñ Ô Ð ð ŒJØŒjñàŒjñð Œkñð Œjñ	ð
 Œjñð Œjñð Œjñð Œjñð 	ð ð =ÝÐ/Ñ0Ô0ˆà�
Š
Ýð5Ø15ð5ð 5ØHWð5ð 5à!2ð5ð 5ñ	
ô 	
ð 	
ð �RŠ<ˆ<Ø�JŠJ•uÐGÐ0@ÀÀ"ÀÔ0EÐGÐGÑHÔHÐHØ�JŠJ•uÐGÐ.>¸s¸u¸uÔ.EÐGÐGÑHÔHÐHà˜˜t U¨D°$¸¸dÀDÐIð 	=ð 	=ˆBØ�JŠJ•u ¤Ð;Ð;°´Ð;Ð;Ñ<Ô<Ð<Ð<å� !Ñ$Ô$Ð$r   )r'   r=   r@   r&   )r²   r?   r³   r?   r@   r>   )r  F)r  r=   r  rq   r  r>   r@   rq   )4Ú
__future__r   ÚsysÚ	functoolsr   Úloggingr   Úversion_infoÚtypingr   Útyping_extensionsÚImportErrorÚconstantr   r   r   r   r   r   r   r   r   r   r   r   r   Úutilsr   r   r   r   r    r!   r"   r$   r\   r&   r_   r8   re   rg   ry   r�   r—   r    rª   r¸   rÚ   rã   rõ   r±   r9  r
   r   r   ú<module>rD     s=  ðØ "Ð "Ð "Ð "Ð "Ð "Ð "à 
€
€
€
Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð àÔ�vÒÐØÐÐÐÐÐÐðØ+Ð+Ð+Ð+Ð+Ð+Ð+øØð ð ð ð	ð 	ð 	ð 	ð 	ðøøøðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ˜'‘> IÑ-°	Ñ9¸EÑA€Ð AÐ AÐ AÑ Að ðd=ð d=ð d=ð d=ð d=ñ d=ô d=ñ „ðd=ðR €�4ÐÑÔðð ð ñ Ôðð$ð $Ø05°°c±
´
ð$ñ $ô $Ð ð ð ð ñ ð
"ð "ð "ð "ð "ñ "ô "ð "ð< ð+Lð +Lð +Lð +Lð +LÐ'9ñ +Lô +Lñ „ð+Lð\ ðOð Oð Oð Oð OÐ1ñ Oô Oñ „ðOð6 ðEð Eð Eð Eð EÐ*ñ Eô Eñ „ðEð: ð)Dð )Dð )Dð )Dð )DÐ&8ñ )Dô )Dñ „ð)DðX ð6/ð 6/ð 6/ð 6/ð 6/Ð(ñ 6/ô 6/ñ „ð6/ðr ðXAð XAð XAð XAð XAÐ-ñ XAô XAñ „ðXAðv ðNð Nð Nð Nð NÐ*ñ Nô Nñ „ðNðD ðYPð YPð YPð YPð YPÐ0ñ YPô YPñ „ðYPðx ð#ð #ð #ð #ð #Ð1ñ #ô #ñ „ð#ð8 €�4ÐÑÔðFð Fð Fñ ÔðFðT JOðT%ð T%ð T%ð T%ð T%ð T%ð T%s   «2 ²=¼=