Ë
    >²Xjá4  ã                  ó°  — U d dl mZ d dlZd dlZd dlZd dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ 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mZm Z m!Z!m"Z" d1d„Z#d2d„Z$ ee¬«      d3d„«       Z% e&d„  ejN                  «       D «       «      Z(de)d<   e(D � cg c]  } | d    ‘Œ	 c} Z*de)d<   d4d„Z+d2d„Z,d2d„Z-d2d„Z.d2d„Z/d2d„Z0 ee¬«      d2d„«       Z1 ee¬«      d2d„«       Z2 ee¬«      d2d„«       Z3 ee¬«      d2d„«       Z4 ee¬«      d2d„«       Z5 ee¬«      d2d„«       Z6 ee¬«      d2d „«       Z7 ee¬«      d2d!„«       Z8 ee¬«      d2d"„«       Z9d5d#„Z: ee¬«      d2d$„«       Z;	 d6	 	 	 	 	 d7d%„Z< ed&¬«      d8d'„«       Z=d9d(„Z>d:d)„Z?d;d<d*„Z@d=d+„ZAd>d,„ZBd-ej†                  d.f	 	 	 	 	 	 	 d?d/„ZD	 	 d@	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dAd0„ZEyc c} w )Bé    )ÚannotationsN)Úbisect_right)ÚIncrementalDecoder)Úaliases)Ú	lru_cache)Úfindall)Ú	Generatoré   )ÚENCODING_MARKSÚIANA_SUPPORTED_SIMILARÚRE_POSSIBLE_ENCODING_INDICATIONÚUNICODE_RANGES_COMBINEDÚ_SECONDARY_RANGE_NAMESÚUTF8_MAXIMAL_ALLOCATIONÚCOMMON_CJK_CHARACTERSÚ_LATINÚ_CJKÚ_HANGULÚ	_KATAKANAÚ	_HIRAGANAÚ_THAIÚ_ARABICÚ_ARABIC_ISOLATED_FORMÚ_ACCENT_KEYWORDSÚ_ACCENTUATEDc                óZ  — 	 t        j                  | «      }d}d|v r	|t        z  }d|v r	|t        z  }d|v r	|t
        z  }d|v r	|t        z  }d|v r	|t        z  }d|v r	|t        z  }d|v r|t        z  }d	|v r	|t        z  }t        D ]  }||v sŒ|t        z  } |S  |S # t        $ r Y yw xY w)
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       ú^/var/www/html/content_generation/venv/lib/python3.12/site-packages/charset_normalizer/utils.pyÚ_character_flagsr,   "   sç   € ðÜ×$Ñ$ YÓ/ˆð €Eà�$�Ø”‰ˆØ��}Ø”‰ˆØ�4ÑØ”ÑˆØ�TÑØ”ÑˆØ�TÑØ”ÑˆØ��~Ø”‰ˆØ�4ÑØ”ÑˆØ˜dÑ"ØÔ*Ñ*ˆEçˆØ�Š:Ø”\Ñ!ˆEØà€Lð ð
 €Løô7 ò Ùðús   ‚B Â	B*Â)B*c                ó8   — t        t        | «      t        z  «      S ©N)Úboolr,   r   ©r'   s    r+   Úis_accentuatedr1   D   s   € ÜÔ  Ó+¬lÑ:Ó;Ð;ó    )Úmaxsizec                ó†   — t        j                  | «      }|s| S |j                  d«      }t        t	        |d   d«      «      S )NÚ r   é   )r$   ÚdecompositionÚsplitÚchrÚint)r'   Ú
decomposedÚcodess      r+   Úremove_accentr=   H   sA   € ä!×/Ñ/°	Ó:€JÙØÐà!×'Ñ'¨Ó,€EäŒs�5˜‘8˜RÓ Ó!Ð!r2   c              #  óT   K  — | ]   \  }}|j                   |j                  |f–— Œ" y ­wr.   )ÚstartÚstop)Ú.0r%   Ú	ord_ranges      r+   Ú	<genexpr>rC   U   s+   è ø€ ð <á:‰ˆˆið ‡_�_�i—n‘n dÔ+Ù:ùs   ‚&(zlist[tuple[int, int, str]]Ú_UNICODE_RANGES_SORTEDz	list[int]Ú_UNICODE_RANGE_STARTSc                ór   — t        | «      }t        t        |«      dz
  }|dk\  rt        |   \  }}}||k  r|S y)zK
    Retrieve the Unicode range official name from a single character.
    r
   r   N)Úordr   rE   rD   )r'   Úcharacter_ordÚidxr?   r@   r%   s         r+   Úunicode_rangerJ   \   sI   € ô ˜Y›€Mô Ô,¨mÓ
<¸qÑ
@€CØ
ˆa‚xÜ2°3Ñ7Ñˆˆt�TØ˜4ÒØˆKàr2   c                ó8   — t        t        | «      t        z  «      S r.   )r/   r,   r   r0   s    r+   Úis_latinrL   l   s   € ÜÔ  Ó+¬fÑ4Ó5Ð5r2   c                óZ   — t        j                  | «      }d|v ryt        | «      }|€yd|v S )NÚPTFÚPunctuation©r$   ÚcategoryrJ   ©r'   Úcharacter_categoryÚcharacter_ranges      r+   Úis_punctuationrU   p   s=   € Ü)×2Ñ2°9Ó=Ðà
Ð Ñ Øä"/°	Ó":€OàÐØà˜OÐ+Ð+r2   c                óp   — t        j                  | «      }d|v sd|v ryt        | «      }|€yd|v xr |dk7  S )NÚSÚNTFÚFormsÚLorP   rR   s      r+   Ú	is_symbolr[   ~   sP   € Ü)×2Ñ2°9Ó=Ðà
Ð Ñ  CÐ+=Ñ$=Øä"/°	Ó":€OàÐØà�oÐ%ÒDÐ*<ÀÑ*DÐDr2   c                ó2   — t        | «      }|€yd|v xs d|v S )NFÚ	EmoticonsÚPictographs)rJ   )r'   rT   s     r+   Úis_emoticonr_   Œ   s*   € Ü"/°	Ó":€OàÐØà˜/Ð)ÒM¨]¸oÐ-MÐMr2   c                ój   — | j                  «       s| dv ryt        j                  | «      }d|v xs |dv S )N>   õ   ï½œÚ+Ú<Ú>TÚZ>   ÚPcÚPdÚPo)Úisspacer$   rQ   )r'   rS   s     r+   Úis_separatorrj   •   sB   € Ø×ÑÔ˜iÐ+AÑAØä)×2Ñ2°9Ó=ÐàÐ$Ð$ÒPÐ(:Ð>PÐ(PÐPr2   c                óD   — | j                  «       | j                  «       k7  S r.   )ÚislowerÚisupperr0   s    r+   Úis_case_variablern   ž   s   € à×ÑÓ )×"3Ñ"3Ó"5Ñ5Ð5r2   c                ó8   — t        t        | «      t        z  «      S r.   )r/   r,   r   r0   s    r+   Úis_cjkrp   £   s   € äÔ  Ó+¬dÑ2Ó3Ð3r2   c                ó8   — t        t        | «      t        z  «      S r.   )r/   r,   r   r0   s    r+   Úis_hiraganarr   ¨   ó   € äÔ  Ó+¬iÑ7Ó8Ð8r2   c                ó8   — t        t        | «      t        z  «      S r.   )r/   r,   r   r0   s    r+   Úis_katakanaru   ­   rs   r2   c                ó8   — t        t        | «      t        z  «      S r.   )r/   r,   r   r0   s    r+   Ú	is_hangulrw   ²   ó   € äÔ  Ó+¬gÑ5Ó6Ð6r2   c                ó8   — t        t        | «      t        z  «      S r.   )r/   r,   r   r0   s    r+   Úis_thairz   ·   s   € äÔ  Ó+¬eÑ3Ó4Ð4r2   c                ó8   — t        t        | «      t        z  «      S r.   )r/   r,   r   r0   s    r+   Ú	is_arabicr|   ¼   rx   r2   c                ó8   — t        t        | «      t        z  «      S r.   )r/   r,   r   r0   s    r+   Úis_arabic_isolated_formr~   Á   s   € äÔ  Ó+Ô.CÑCÓDÐDr2   c                ó   — | t         vS r.   )r   r0   s    r+   Úis_cjk_uncommonr€   Æ   s   € àÔ1Ð1Ð1r2   c                ó   — | t         v S r.   )r   )Ú
range_names    r+   Úis_unicode_range_secondaryrƒ   Ë   s   € ØÔ/Ð/Ð/r2   c                óf   — | j                  «        xr | j                  «        xr | dk7  xr | dk7  S )NÚu   ï»¿)ri   Úisprintabler0   s    r+   Úis_unprintabler‡   Ï   sH   € ð ×ÑÓÐò 	"Ø×%Ñ%Ó'Ð'ò	"à˜Ñò	"ð ˜Ñ!ð	r2   c                ó´  — t        | t        t        f«      st        ‚t	        | «      }| dt        ||«       j                  dd¬«      }|j                  «       }d|vrd|vryt        t        |«      }t	        |«      dk(  ry|D ]T  }|j                  «       j                  dd	«      }t        j                  «       D ]  \  }}||k(  r|c c S ||k(  sŒ|c c S  ŒV y)
zW
    Extract using ASCII-only decoder any specified encoding in the first n-bytes.
    NÚasciiÚignore©ÚerrorsÚcodingÚcharsetr   Ú-Ú_)Ú
isinstanceÚbytesÚ	bytearrayÚ	TypeErrorÚlenÚminÚdecodeÚlowerr   r   Úreplacer   Úitems)	ÚsequenceÚsearch_zoneÚseq_lenÚdecoded_zoneÚlowered_zoneÚresultsÚspecified_encodingÚencoding_aliasÚencoding_ianas	            r+   Úany_specified_encodingr¤   Ú   sï   € ô �h¤¬	Ð 2Ô3Üˆä�x“=€Gà Ð!<¤3 w°Ó#<Ð=×DÑDØ˜ð Eó €Lð
 %×*Ñ*Ó,€LØ�|Ñ#¨	¸Ñ(EØä Ü'Øó€Gô
 ˆ7ƒ|�qÒØã%ÐØ/×5Ñ5Ó7×?Ñ?ÀÀSÓIÐô
 .5¯]©]®_Ñ)ˆN˜MØÐ!3Ò3Ø$Ô$ØÐ 2Ó2Ø$Ô$ñ	 .=ð &ð r2   é€   c                óœ   — | dv rydD ](  }	 t        j                  |«      j                  | «        y y# t        t        t
        f$ r Y ŒBw xY w)zQ
    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_sigT)Ú
_codecs_cnÚ
_codecs_hkÚ_codecs_iso2022Ú
_codecs_jpÚ
_codecs_krÚ
_codecs_twF)Ú	importlibÚimport_moduleÚgetcodecÚImportErrorÚAttributeErrorÚLookupError)r%   Úproviders     r+   Úis_multi_byte_encodingr½     se   € ð
 ð 
ñ 
ð óˆð	Ü×#Ñ# HÓ-×6Ñ6°tÔ<ñ ðð øô	 œ^¬[Ð9ò 	Ùð	ús   Œ$4´AÁ
Ac                ó’   — t         D ]>  }t         |   }t        |t        «      r|g}|D ]  }| j                  |«      sŒ||fc c S  Œ@ y)z9
    Identify and extract SIG/BOM in given sequence.
    )Nr2   )r   r‘   r’   Ú
startswith)r›   Úiana_encodingÚmarksÚmarks       r+   Úidentify_sig_or_bomrÃ   /  sQ   € ÷
 (ˆÜ%3°MÑ%Bˆä�eœUÔ#Ø�GˆEãˆDØ×"Ñ" 4Õ(Ø$ dÐ*Ô*ñ ð (ð r2   c                ó
   — | dvS )N>   r©   rª   © )rÀ   s    r+   Úshould_strip_sig_or_bomrÆ   A  s   € ØÐ 4Ð4Ð4r2   c                ó´   — | j                  «       j                  dd«      } t        j                  «       D ]  \  }}| ||fv sŒ|c S  |rt	        d| › d�«      ‚| S )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Ë   E  sc   € à�m‰m‹o×%Ñ% c¨3Ó/€Gô
 *1¯©®Ñ%ˆ˜Ø�~ }Ð5Ò5Ø Ò ð *9ñ ÜÐ8¸¸	ÀÐCÓDÐDà€Nr2   c                ót  — t        | «      st        |«      ryt        j                  d| › �«      j                  }t        j                  d|› �«      j                  } |d¬«      } |d¬«      }d}t	        d«      D ]7  }t        |g«      }|j                  |«      |j                  |«      k(  sŒ3|dz  }Œ9 |dz  S )Ng        z
encodings.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Ø   V  s´   € Ü˜kÔ*Ô.DÀ[Ô.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Ñ&Ð&r2   c                ó,   — | t         v xr |t         |    v S )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Ú   j  s%   € ð 	Ô-Ð-ò 	?ØÔ1°+Ñ>Ð>ðr2   Úcharset_normalizerz)%(asctime)s | %(levelname)s | %(message)sc                óâ   — t        j                  | «      }|j                  |«       t        j                  «       }|j	                  t        j
                  |«      «       |j                  |«       y r.   )ÚloggingÚ	getLoggerÚsetLevelÚStreamHandlerÚsetFormatterÚ	FormatterÚ
addHandler)r%   ÚlevelÚformat_stringÚloggerÚhandlers        r+   Úset_logging_handlerrè   u  sU   € ô
 ×Ñ˜tÓ$€FØ
‡O�O�EÔä×#Ñ#Ó%€GØ×Ñœ×*Ñ*¨=Ó9Ô:Ø
×Ñ�gÕr2   c
              #  óú  K  — |r|s|D ]  }
||
|
|z    }|s y |–— Œ y |	r4|s| n| t        |«      d  }|D ]  }
||
|
|z    }|s y t        ||«      –— Œ y |D ]   }
|
|z   }|t        | «      dz   kD  rŒ| |
|
|z    }|r|s||z   }|j                  ||rdnd¬«      }|rY|
dkD  rTt        |d«      }|rF|d | |vr?t	        |
|
dz
  d«      D ],  }| || }|r|s||z   }|j                  |d¬«      }|d | |v sŒ, n |–— Œ¢ y ­w)	Né   rŠ   rÊ   r‹   r   r6   é   éÿÿÿÿ)r•   Ústrr—   r–   rÎ   )Ú	sequencesr£   ÚoffsetsÚ
chunk_sizeÚbom_or_sig_availableÚstrip_sig_or_bomÚsig_payloadÚis_multi_byte_decoderÚdecoded_payloadÚdeferred_decodingrÖ   ÚchunkÚ
base_bytesÚcut_sequenceÚ	chunk_endÚchunk_partial_size_chkÚjs                    r+   Úcut_sequence_chunksrý   ‚  s|  è ø€ ñ Ñ4ÛˆAØ# A¨¨J©Ð7ˆEÙÙØ‹Kñ	 ñ
 
ñ .‰I°9¼SÀÓ=MÐ=OÐ3Pð 	ó ˆAØ% a¨!¨j©.Ð9ˆLÙÙÜ�l MÓ2Ó2ñ	 ó ˆAØ˜J™ˆIØœ3˜y›>¨AÑ-Ò-Øà$ Q¨¨Z©Ð8ˆLá#Ñ,<Ø*¨\Ñ9�à ×'Ñ'ØÙ#8‘x¸hð (ó ˆEñ %¨¨QªÜ.1°*¸bÓ.AÐ&ñ $ØÐ5Ð5Ð6¸oÑMä" 1 a¨!¡e¨RÖ0˜Ø'0°°9Ð'=˜á/Ñ8HØ+6¸Ñ+E˜Là ,× 3Ñ 3°MÈ(Ð 3Ó S˜à Ð!8Ð"8Ð9¸_ÒLÙ!ð 1ð ‹KñG ùs   ‚C.C;Ã1
C;)r'   rí   Úreturnr:   )r'   rí   rþ   r/   )r'   rí   rþ   rí   )r'   rí   rþ   ú
str | None)r‚   rí   rþ   r/   )i    )r›   úbytes | bytearrayrœ   r:   rþ   rÿ   )r%   rí   rþ   r/   )r›   r   rþ   ztuple[str | None, bytes])rÀ   rí   rþ   r/   )T)rÉ   rí   rÊ   r/   rþ   rí   )rÏ   rí   rÐ   rí   rþ   Úfloat)rÏ   rí   rÐ   rí   rþ   r/   )r%   rí   rä   r:   rå   rí   rþ   ÚNone)NF)rî   r   r£   rí   rï   rÎ   rð   r:   rñ   r/   rò   r/   ró   r’   rô   r/   rõ   rÿ   rö   r/   rþ   zGenerator[str, None, None])FÚ
__future__r   r¶   rÝ   r$   Úbisectr   Úcodecsr   Úencodings.aliasesr   Ú	functoolsr   Úrer   Útypingr	   Úconstantr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r,   r1   r=   Úsortedrš   rD   Ú__annotations__rE   rJ   rL   rU   r[   r_   rj   rn   rp   rr   ru   rw   rz   r|   r~   r€   rƒ   r‡   r¤   r½   rÃ   rÆ   rË   rØ   rÚ   ÚINFOrè   rý   )Úes   0r+   Ú<module>r     sö  ðÞ "ã Û Û Ý Ý %Ý %Ý Ý Ý ÷÷ ÷ ÷ õ ó*óD<ñ Ð*Ô+ò"ó ,ð"ñ 6<ñ <à8Ð2×8Ñ8Ô:ó<ó 6Ð Ð2ó ñ 3IÓ#IÑ2H¨Q A a£DÐ2HÑ#IÐ �yÓ Ióó 6ó,óEóNóQñ Ð*Ô+ò6ó ,ð6ñ Ð*Ô+ò4ó ,ð4ñ Ð*Ô+ò9ó ,ð9ñ Ð*Ô+ò9ó ,ð9ñ Ð*Ô+ò7ó ,ð7ñ Ð*Ô+ò5ó ,ð5ñ Ð*Ô+ò7ó ,ð7ñ Ð*Ô+òEó ,ðEñ Ð*Ô+ò2ó ,ð2ó0ñ Ð*Ô+òó ,ðð 59ð(Øð(Ø.1ð(àó(ñV �3Ôò&ó ð&óRó$5ôó"'ó(ð %Ø—‘ØDð
Ø
ð
àð
ð ð
ð 
ó	
ð, #'Ø#ðEØ ðEàðEð ðEð ð	Eð
 ðEð ðEð ðEð  ðEð  ðEð ðEð  ôEùòS	 $Js   ÂG