ó
    Eñiú/  ã                  ób  • % S SK Jr  S SKrS SKrS SKrS SKJr  S SKJr  S SK	J
r
  S SKJr  S SKJr  S SKJr  S S	KJr  S
SKJrJrJrJrJrJrJrJrJrJrJrJrJ r J!r!J"r"J#r#J$r$  \" \S9S2S j5       r%\" \S9S3S j5       r&\" \S9S4S j5       r'\(" S \RR                  " 5        5       5      r*S\+S'   \* V s/ s H  o S    PM	     sn r,S\+S'   \" \S9S5S j5       r-\" \S9S3S j5       r.\" \S9S3S j5       r/\" \S9S3S j5       r0\" \S9S3S j5       r1\" \S9S3S j5       r2\" \S9S3S j5       r3\" \S9S3S j5       r4\" \S9S3S j5       r5\" \S9S3S j5       r6\" \S9S3S j5       r7\" \S9S3S  j5       r8\" \S9S3S! j5       r9\" \S9S3S" j5       r:\" \S9S3S# j5       r;\" \<" \5      S9S6S$ j5       r=\" \S9S3S% j5       r> S7     S8S& jjr?\" S'S9S9S( j5       r@S:S) jrAS;S* jrBS<S=S+ jjrCS>S, jrDS?S- jrES.\RŒ                  S/4       S@S0 jjrG SA                   SBS1 jjrHgs  sn f )Cé    )ÚannotationsN)Úbisect_right)ÚIncrementalDecoder)Úaliases)Ú	lru_cache)Úfindall)Ú	Generator)ÚMultibyteIncrementalDecoderé   )ÚENCODING_MARKSÚIANA_SUPPORTED_SIMILARÚRE_POSSIBLE_ENCODING_INDICATIONÚUNICODE_RANGES_COMBINEDÚUNICODE_SECONDARY_RANGE_KEYWORDÚUTF8_MAXIMAL_ALLOCATIONÚCOMMON_CJK_CHARACTERSÚ_LATINÚ_CJKÚ_HANGULÚ	_KATAKANAÚ	_HIRAGANAÚ_THAIÚ_ARABICÚ_ARABIC_ISOLATED_FORMÚ_ACCENT_KEYWORDSÚ_ACCENTUATED)Úmaxsizec                ó„  •  [         R                  " U 5      nSnSU;   a	  U[        -  nSU;   a	  U[        -  nSU;   a	  U[
        -  nSU;   a	  U[        -  nSU;   a	  U[        -  nSU;   a	  U[        -  nSU;   a  U[        -  nS	U;   a	  U[        -  n[         H  nX1;   d  M
  U[        -  n  U$    U$ ! [         a     gf = f)
zRCompute all name-based classification flags with a single unicodedata.name() call.r   ÚLATINÚCJKÚHANGULÚKATAKANAÚHIRAGANAÚTHAIÚARABICzISOLATED FORM)ÚunicodedataÚnameÚ
ValueErrorr   r   r   r   r   r   r   r   r   r   )Ú	characterÚdescÚflagsÚkws       ÚU/home/mande/repo/quber/.venv/lib/python3.13/site-packages/charset_normalizer/utils.pyÚ_character_flagsr.   &   så   € ðÜ×$Ò$ YÓ/ˆð €Eà�$ƒØ”‰ˆØ�ƒ}Ø”‰ˆØ�4ÓØ”ÑˆØ�TÓØ”ÑˆØ�TÓØ”ÑˆØ�ƒ~Ø”‰ˆØ�4ÓØ”ÑˆØ˜dÓ"ØÔ*Ñ*ˆEçˆØ�:Ø”\Ñ!ˆEØà€Lñ ð
 €Løô7 ó Ùðús   ‚B2 Â2
B?Â>B?c                ó8   • [        [        U 5      [        -  5      $ ©N)Úboolr.   r   ©r)   s    r-   Úis_accentuatedr3   I   s   € äÔ  Ó+¬lÑ:Ó;Ð;ó    c                ó’   • [         R                  " U 5      nU(       d  U $ UR                  S5      n[        [	        US   S5      5      $ )NÚ r   é   )r&   ÚdecompositionÚsplitÚchrÚint)r)   Ú
decomposedÚcodess      r-   Úremove_accentr>   N   sA   € ä!×/Ò/°	Ó:€JÞØÐà!×'Ñ'¨Ó,€EäŒs�5˜‘8˜RÓ Ó!Ð!r4   c              #  óX   #   • U  H   u  pUR                   UR                  U4v •  M"     g 7fr0   )ÚstartÚstop)Ú.0r'   Ú	ord_ranges      r-   Ú	<genexpr>rD   [   s(   é € ð <â:‰ˆð ‡_�_�i—n‘n dÕ+Ú:ùs   ‚(*zlist[tuple[int, int, str]]Ú_UNICODE_RANGES_SORTEDz	list[int]Ú_UNICODE_RANGE_STARTSc                ór   • [        U 5      n[        [        U5      S-
  nUS:¼  a  [        U   u  p4nX:  a  U$ g)zC
Retrieve the Unicode range official name from a single character.
r   r   N)Úordr   rF   rE   )r)   Úcharacter_ordÚidxr@   rA   r'   s         r-   Úunicode_rangerK   b   sE   € ô
 ˜Y›€Mô Ô,¨mÓ
<¸qÑ
@€CØ
ˆaƒxÜ2°3Ñ7Ñˆ�TØÓØˆKàr4   c                ó8   • [        [        U 5      [        -  5      $ r0   )r1   r.   r   r2   s    r-   Úis_latinrM   s   s   € äÔ  Ó+¬fÑ4Ó5Ð5r4   c                ód   • [         R                  " U 5      nSU;   a  g[        U 5      nUc  gSU;   $ )NÚPTFÚPunctuation©r&   ÚcategoryrK   ©r)   Úcharacter_categoryÚcharacter_ranges      r-   Úis_punctuationrV   x   s=   € ä)×2Ò2°9Ó=Ðà
Ð Ó Øä"/°	Ó":€OàÑØà˜OÑ+Ð+r4   c                óˆ   • [         R                  " U 5      nSU;   d  SU;   a  g[        U 5      nUc  gSU;   =(       a    US:g  $ )NÚSÚNTFÚFormsÚLorQ   rS   s      r-   Ú	is_symbolr\   ‡   sP   € ä)×2Ò2°9Ó=Ðà
Ð Ó  CÐ+=Ó$=Øä"/°	Ó":€OàÑØà�oÑ%×DÐ*<ÀÑ*DÐDr4   c                óB   • [        U 5      nUc  gSU;   =(       d    SU;   $ )NFÚ	EmoticonsÚPictographs)rK   )r)   rU   s     r-   Úis_emoticonr`   –   s*   € ä"/°	Ó":€OàÑØà˜/Ñ)×M¨]¸oÑ-MÐMr4   c                óˆ   • U R                  5       (       d  U S;   a  g[        R                  " U 5      nSU;   =(       d    US;   $ )N>   Ú+Ú<Ú>õ   ï½œTÚZ>   ÚPcÚPdÚPo)Úisspacer&   rR   )r)   rT   s     r-   Úis_separatorrk       sE   € à×Ñ×Ñ˜iÐ+AÓAØä)×2Ò2°9Ó=ÐàÐ$Ñ$×PÐ(:Ð>PÑ(PÐPr4   c                óD   • U R                  5       U R                  5       :g  $ r0   )ÚislowerÚisupperr2   s    r-   Úis_case_variablero   ª   s   € à×ÑÓ )×"3Ñ"3Ó"5Ñ5Ð5r4   c                ó8   • [        [        U 5      [        -  5      $ r0   )r1   r.   r   r2   s    r-   Úis_cjkrq   ¯   s   € äÔ  Ó+¬dÑ2Ó3Ð3r4   c                ó8   • [        [        U 5      [        -  5      $ r0   )r1   r.   r   r2   s    r-   Úis_hiraganars   ´   ó   € äÔ  Ó+¬iÑ7Ó8Ð8r4   c                ó8   • [        [        U 5      [        -  5      $ r0   )r1   r.   r   r2   s    r-   Úis_katakanarv   ¹   rt   r4   c                ó8   • [        [        U 5      [        -  5      $ r0   )r1   r.   r   r2   s    r-   Ú	is_hangulrx   ¾   ó   € äÔ  Ó+¬gÑ5Ó6Ð6r4   c                ó8   • [        [        U 5      [        -  5      $ r0   )r1   r.   r   r2   s    r-   Úis_thair{   Ã   s   € äÔ  Ó+¬eÑ3Ó4Ð4r4   c                ó8   • [        [        U 5      [        -  5      $ r0   )r1   r.   r   r2   s    r-   Ú	is_arabicr}   È   ry   r4   c                ó8   • [        [        U 5      [        -  5      $ r0   )r1   r.   r   r2   s    r-   Úis_arabic_isolated_formr   Í   s   € äÔ  Ó+Ô.CÑCÓDÐDr4   c                ó   • U [         ;  $ r0   )r   r2   s    r-   Úis_cjk_uncommonr�   Ò   s   € àÔ1Ñ1Ð1r4   c                ó6   ^ • [        U 4S j[         5       5      $ )Nc              3  ó,   >#   • U  H	  oT;   v •  M     g 7fr0   © )rB   ÚkeywordÚ
range_names     €r-   rD   Ú-is_unicode_range_secondary.<locals>.<genexpr>Ù   s   øé € ÐTÒ4S¨˜*Ö$Ò4Sùs   ƒ)Úanyr   )r†   s   `r-   Úis_unicode_range_secondaryr‰   ×   s   ø€ äÔTÕ4SÓTÓTÐTr4   c                óˆ   • U R                  5       SL =(       a*    U R                  5       SL =(       a    U S:g  =(       a    U S:g  $ )NFÚu   ï»¿)rj   Úisprintabler2   s    r-   Úis_unprintabler�   Ü   sL   € ð 	×ÑÓ˜uÐ$÷ 	"Ø×!Ñ!Ó# uÐ,÷	"à˜Ñ÷	"ð ˜Ñ!ð	r4   c           	     óŠ  • [        U [        [        45      (       d  [        e[	        U 5      n[        [        U S[        X!5       R                  SSS95      n[	        U5      S:X  a  gU HW  nUR                  5       R                  SS5      n[        R                  " 5        H  u  pVXT:X  a  Us  s  $ Xd:X  d  M  Us  s  $    MY     g)zO
Extract using ASCII-only decoder any specified encoding in the first n-bytes.
NÚasciiÚignore©Úerrorsr   Ú-Ú_)Ú
isinstanceÚbytesÚ	bytearrayÚ	TypeErrorÚlenr   r   ÚminÚdecodeÚlowerÚreplacer   Úitems)ÚsequenceÚsearch_zoneÚseq_lenÚresultsÚspecified_encodingÚencoding_aliasÚencoding_ianas          r-   Úany_specified_encodingr¦   ç   s»   € ô �h¤¬	Ð 2×3Ñ3Üˆä�x“=€Gä Ü'ØÐ,”3�wÓ,Ð-×4Ñ4°WÀXÐ4ÐNó€Gô
 ˆ7ƒ|�qÓØã%ÐØ/×5Ñ5Ó7×?Ñ?ÀÀSÓIÐô
 .5¯]ª]®_Ñ)ˆNØÓ3Ø$Ô$ØÕ2Ø$Ô$ó	 .=ñ &ð r4   é€   c                ó|   • U S;   =(       d1    [        [        R                  " SU  35      R                  [        5      $ )zI
Verify is a specific encoding is a multi byte one based on it IANA name
>	   Úutf_7Úutf_8Úutf_16Úutf_32Ú	utf_16_beÚ	utf_16_leÚ	utf_32_beÚ	utf_32_leÚ	utf_8_sigú
encodings.)Ú
issubclassÚ	importlibÚimport_moduler   r
   )r'   s    r-   Úis_multi_byte_encodingr¶   	  sC   € ð
 ð 
ñ 
÷ ô 
Ü×Ò *¨T¨FÐ 3Ó4×GÑGÜ#ó
ðr4   c                ó¬   • [          HJ  n[         U   n[        U[        5      (       a  U/nU H   nU R                  U5      (       d  M  X4s  s  $    ML     g)z1
Identify and extract SIG/BOM in given sequence.
)Nr4   )r   r•   r–   Ú
startswith)rŸ   Úiana_encodingÚmarksÚmarks       r-   Úidentify_sig_or_bomr¼     sU   € ÷
 (ˆÜ%3°MÑ%Bˆä�eœU×#Ñ#Ø�GˆEãˆDØ×"Ñ" 4×(Ó(Ø$Ð*Ô*ó ñ (ð r4   c                ó   • U S;  $ )N>   r«   r¬   r„   )r¹   s    r-   Úshould_strip_sig_or_bomr¾   0  s   € ØÐ 4Ñ4Ð4r4   c                óÄ   • U R                  5       R                  SS5      n [        R                  " 5        H  u  p#XU4;   d  M  Us  $    U(       a  [	        SU  S35      eU $ )zIReturns the Python normalized encoding name (Not the IANA official name).r“   r”   zUnable to retrieve IANA for 'Ú')rœ   r�   r   rž   r(   )Úcp_nameÚstrictr¤   r¥   s       r-   Ú	iana_namerÃ   4  s_   € à�m‰m‹o×%Ñ% c¨3Ó/€Gô
 *1¯ª®Ñ%ˆØ }Ð5Õ5Ø Ò ñ *9ö ÜÐ8¸¸	ÀÐCÓDÐDà€Nr4   c                óˆ  • [        U 5      (       d  [        U5      (       a  g[        R                  " SU  35      R                  n[        R                  " SU 35      R                  nU" SS9nU" SS9nSn[	        S5       H:  n[        U/5      nUR                  U5      UR                  U5      :X  d  M5  US-  nM<     US-  $ )Ng        r²   r�   r‘   r   é   r   )r¶   r´   rµ   r   Úranger–   r›   )	Úiana_name_aÚiana_name_bÚ	decoder_aÚ	decoder_bÚid_aÚid_bÚcharacter_match_countÚiÚto_be_decodeds	            r-   Úcp_similarityrÐ   E  sº   € Ü˜k×*Ñ*Ô.DÀ[×.QÑ.QØä×'Ò'¨*°[°MÐ(BÓC×VÑV€IÜ×'Ò'¨*°[°MÐ(BÓC×VÑV€Iá(°Ñ9€DÙ(°Ñ9€Dà!"Ðä�3ŽZˆÜ$ a S›zˆØ�;‰;�}Ó%¨¯©°]Ó)CÕCØ! QÑ&Ò!ñ ð
 ! 3Ñ&Ð&r4   c                ó:   • U [         ;   =(       a    U[         U    ;   $ )z‚
Determine if two code page are at least 80% similar. IANA_SUPPORTED_SIMILAR dict was generated using
the function cp_similarity.
)r   )rÇ   rÈ   s     r-   Úis_cp_similarrÒ   Y  s%   € ð 	Ô-Ñ-÷ 	?ØÔ1°+Ñ>Ñ>ðr4   Úcharset_normalizerz)%(asctime)s | %(levelname)s | %(message)sc                óè   • [         R                  " U 5      nUR                  U5        [         R                  " 5       nUR	                  [         R
                  " U5      5        UR                  U5        g r0   )ÚloggingÚ	getLoggerÚsetLevelÚStreamHandlerÚsetFormatterÚ	FormatterÚ
addHandler)r'   ÚlevelÚformat_stringÚloggerÚhandlers        r-   Úset_logging_handlerrà   d  sU   € ô
 ×Ò˜tÓ$€FØ
‡O�O�EÔä×#Ò#Ó%€GØ×Ñœ×*Ò*¨=Ó9Ô:Ø
×Ñ�gÕr4   c	              #  óâ  #   • U(       a"  USL a  U H  n	X‰X“-    n
U
(       d    g U
v •  M     g U H¼  n	X“-   nU[        U 5      S-   :”  a  M  X	X“-    nU(       a	  USL a  Xl-   nUR                  UU(       a  SOSS9n
U(       ag  U	S:”  aa  [        US5      nU(       aN  U
S U U;  aE  [        X™S-
  S	5       H2  nXU nU(       a	  USL a  Xl-   nUR                  USS9n
U
S U U;   d  M2    O   U
v •  M¾     g 7f)
NFé   r�   rÂ   r‘   r   r7   é   éÿÿÿÿ)r™   r›   rš   rÆ   )Ú	sequencesr¥   ÚoffsetsÚ
chunk_sizeÚbom_or_sig_availableÚstrip_sig_or_bomÚsig_payloadÚis_multi_byte_decoderÚdecoded_payloadrÎ   ÚchunkÚ	chunk_endÚcut_sequenceÚchunk_partial_size_chkÚjs                  r-   Úcut_sequence_chunksrò   q  s)  é € ö Ð0°EÒ9ÛˆAØ#¨©Ð7ˆEÞÙØŒKò	 ó ˆAØ™ˆIØœ3˜y›>¨AÑ-Ó-Ùà$¨©Ð8ˆLæ#Ð(8¸EÒ(AØ*Ñ9�à ×'Ñ'ØÞ#8‘x¸hð (ð ˆEö %¨¨Q«Ü.1°*¸bÓ.AÐ&ö $ØÐ5Ð5Ð6¸oÓMä" 1¨!¡e¨RÖ0˜Ø'0°9Ð'=˜æ/Ð4DÈÒ4MØ+6Ñ+E˜Là ,× 3Ñ 3°MÈ(Ð 3Ð S˜à Ð!8Ð"8Ð9¸_ÕLÙ!ñ 1ð ŒKòG ùs   ‚CC/Ã"C/)r)   ÚstrÚreturnr;   )r)   ró   rô   r1   )r)   ró   rô   ró   )r)   ró   rô   ú
str | None)r†   ró   rô   r1   )i    )rŸ   úbytes | bytearrayr    r;   rô   rõ   )r'   ró   rô   r1   )rŸ   rö   rô   ztuple[str | None, bytes])r¹   ró   rô   r1   )T)rÁ   ró   rÂ   r1   rô   ró   )rÇ   ró   rÈ   ró   rô   Úfloat)rÇ   ró   rÈ   ró   rô   r1   )r'   ró   rÜ   r;   rÝ   ró   rô   ÚNoner0   )rå   rö   r¥   ró   ræ   rÆ   rç   r;   rè   r1   ré   r1   rê   r–   rë   r1   rì   rõ   rô   zGenerator[str, None, None])IÚ
__future__r   r´   rÕ   r&   Úbisectr   Úcodecsr   Úencodings.aliasesr   Ú	functoolsr   Úrer   Útypingr	   Ú_multibytecodecr
   Úconstantr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r.   r3   r>   Úsortedrž   rE   Ú__annotations__rF   rK   rM   rV   r\   r`   rk   ro   rq   rs   rv   rx   r{   r}   r   r�   r™   r‰   r�   r¦   r¶   r¼   r¾   rÃ   rÐ   rÒ   ÚINFOrà   rò   )Úes   0r-   Ú<module>r     s£  ðÞ "ã Û Û Ý Ý %Ý %Ý Ý Ý õ÷÷ ÷ ÷ õ ñ* Ð*Ñ+óó ,ðñD Ð*Ñ+ó<ó ,ð<ñ Ð*Ñ+ó"ó ,ð"ñ 6<ñ <à2×8Ò8Ô:ó<ó 6Ð Ð2ó ñ 3IÓ#IÒ2H¨Q a¤DÑ2HÑ#IÐ �yÓ Iñ Ð*Ñ+óó ,ðñ  Ð*Ñ+ó6ó ,ð6ñ Ð*Ñ+ó,ó ,ð,ñ Ð*Ñ+óEó ,ðEñ Ð*Ñ+óNó ,ðNñ Ð*Ñ+óQó ,ðQñ Ð*Ñ+ó6ó ,ð6ñ Ð*Ñ+ó4ó ,ð4ñ Ð*Ñ+ó9ó ,ð9ñ Ð*Ñ+ó9ó ,ð9ñ Ð*Ñ+ó7ó ,ð7ñ Ð*Ñ+ó5ó ,ð5ñ Ð*Ñ+ó7ó ,ð7ñ Ð*Ñ+óEó ,ðEñ Ð*Ñ+ó2ó ,ð2ñ ‘3Ð.Ó/Ñ0óUó 1ðUñ Ð*Ñ+óó ,ðð 59ðØðØ.1ðàõñD �3Ñóó ðô(ô$5öô"'ô(ð %Ø—‘ØDð
Ø
ð
àð
ð ð
ð 
õ	
ð, #'ð5Ø ð5àð5ð ð5ð ð	5ð
 ð5ð ð5ð ð5ð  ð5ð  ð5ð  ö5ùòe $Js   Â5H,