+
    i/                      a 0 t $ ^ RIHt ^ RIt^ RIt^ RIt^ RIHt ^ RIH	t	 ^ RI
Ht ^ RIHt ^ RIHt ^ RIHt ^ R	IHt ^R
IHtHtHtHtHtHtHtHtHtHtHtH t H!t!H"t"H#t#H$t$H%t% ]! ]R7      R R l4       t&]! ]R7      R R l4       t']! ]R7      R R l4       t(])! R ]PT                  ! 4        4       4      t+R],R&   ]+ U u. uF  q ^ ,          NK  	  up t-R],R&   ]! ]R7      R R l4       t.]! ]R7      R R l4       t/]! ]R7      R R l4       t0]! ]R7      R R l4       t1]! ]R7      R R  l4       t2]! ]R7      R! R" l4       t3]! ]R7      R# R$ l4       t4]! ]R7      R% R& l4       t5]! ]R7      R' R( l4       t6]! ]R7      R) R* l4       t7]! ]R7      R+ R, l4       t8]! ]R7      R- R. l4       t9]! ]R7      R/ R0 l4       t:]! ]R7      R1 R2 l4       t;]! ]R7      R3 R4 l4       t<]! ]=! ]4      R7      R5 R6 l4       t>]! ]R7      R7 R8 l4       t?RMR9 R: llt@]! ^R7      R; R< l4       tAR= R> ltBR? R@ ltCRNRA RB lltDRC RD ltERE RF ltFRG]P                  RH3RI RJ lltHRORK RL lltIR# u up i )P    )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                    V ^8  d   QhRRRR/# )   	characterstrreturnint )formats   "k/Users/igloo/.openclaw/workspace/scratch/fb_ad_env/lib/python3.14/site-packages/charset_normalizer/utils.py__annotate__r&   '   s            c                    \         P                  ! V 4      p^ pRT9   d   T\        ,          pRT9   d   T\        ,          pRT9   d   T\
        ,          pRT9   d   T\        ,          pRT9   d   T\        ,          pRT9   d   T\        ,          pRT9   d"   T\        ,          pRT9   d   T\        ,          p\         F  pY19   g   K  T\        ,          p T# 	  T#   \         d     ^ # i ; i)	zRCompute all name-based classification flags with a single unicodedata.name() call.LATINCJKHANGULKATAKANAHIRAGANATHAIARABICzISOLATED FORM)unicodedataname
ValueErrorr   r   r   r   r   r   r   r   r   r   )r   descflagskws   &   r%   _character_flagsr6   &   s    $$Y/ E$}4TT~4d"**E:\!EL 
 L7  s   C C.-C.c                    V ^8  d   QhRRRR/# r   r   r    r!   boolr#   )r$   s   "r%   r&   r&   J   s     < <c <d <r'   c                @    \        \        V 4      \        ,          4      # N)r9   r6   r   r   s   &r%   is_accentuatedr=   I   s     +l:;;r'   c                    V ^8  d   QhRRRR/# )r   r   r    r!   r#   )r$   s   "r%   r&   r&   O   s     " "S "S "r'   c                    \         P                  ! V 4      pV'       g   V # VP                  R 4      p\        \	        V^ ,          ^4      4      # ) )r0   decompositionsplitchrr"   )r   
decomposedcodess   &  r%   remove_accentrF   N   sA    !//	:J!'',Es58R !!r'   c              #  X   "   T F   w  rVP                   VP                  V3x  K"  	  R # 5ir;   )startstop).0r1   	ord_ranges   &  r%   	<genexpr>rL   [   s(      <: __innd+:s   (*zlist[tuple[int, int, str]]_UNICODE_RANGES_SORTEDz	list[int]_UNICODE_RANGE_STARTSc                    V ^8  d   QhRRRR/# )r   r   r    r!   
str | Noner#   )r$   s   "r%   r&   r&   c   s      S Z r'   c                    \        V 4      p\        \        V4      ^,
          pV^ 8  d   \        V,          w  r4pW8  d   V# R# )zC
Retrieve the Unicode range official name from a single character.
N)ordr   rN   rM   )r   character_ordidxrH   rI   r1   s   &     r%   unicode_rangerU   b   sE    
 YM ,m
<q
@C
ax237TKr'   c                    V ^8  d   QhRRRR/# r8   r#   )r$   s   "r%   r&   r&   t   s     6 6 6 6r'   c                @    \        \        V 4      \        ,          4      # r;   )r9   r6   r   r<   s   &r%   is_latinrX   s   s     +f455r'   c                    V ^8  d   QhRRRR/# r8   r#   )r$   s   "r%   r&   r&   y   s     , ,c ,d ,r'   c                l    \         P                  ! V 4      pR V9   d   R# \        V 4      pVf   R# RV9   # )PTFPunctuationr0   categoryrU   r   character_categorycharacter_ranges   &  r%   is_punctuationrb   x   s=    )229=
  "/	":OO++r'   c                    V ^8  d   QhRRRR/# r8   r#   )r$   s   "r%   r&   r&      s     E E E Er'   c                    \         P                  ! V 4      pR V9   g   RV9   d   R# \        V 4      pVf   R# RV9   ;'       d    VR8g  # )SNTFFormsLor]   r_   s   &  r%   	is_symbolri      sS    )229=
  C+=$="/	":Oo%DD*<*DDr'   c                    V ^8  d   QhRRRR/# r8   r#   )r$   s   "r%   r&   r&      s     N N3 N4 Nr'   c                H    \        V 4      pVf   R# RV9   ;'       g    RV9   # )NF	EmoticonsPictographs)rU   )r   ra   s   & r%   is_emoticonrn      s-    "/	":O/)MM]o-MMr'   c                    V ^8  d   QhRRRR/# r8   r#   )r$   s   "r%   r&   r&      s     Q QC QD Qr'   c                    V P                  4       '       g   V R9   d   R# \        P                  ! V 4      pRV9   ;'       g    VR9   # )   ｜TZ>   +<>rq   >   PcPdPo)isspacer0   r^   )r   r`   s   & r%   is_separatorrz      sH    i+AA)229=$$PP(:>P(PPr'   c                    V ^8  d   QhRRRR/# r8   r#   )r$   s   "r%   r&   r&      s     6 6 6 6r'   c                D    V P                  4       V P                  4       8g  # r;   )islowerisupperr<   s   &r%   is_case_variabler      s    )"3"3"555r'   c                    V ^8  d   QhRRRR/# r8   r#   )r$   s   "r%   r&   r&      s     4 4c 4d 4r'   c                @    \        \        V 4      \        ,          4      # r;   )r9   r6   r   r<   s   &r%   is_cjkr      s     +d233r'   c                    V ^8  d   QhRRRR/# r8   r#   )r$   s   "r%   r&   r&           9 93 94 9r'   c                @    \        \        V 4      \        ,          4      # r;   )r9   r6   r   r<   s   &r%   is_hiraganar           +i788r'   c                    V ^8  d   QhRRRR/# r8   r#   )r$   s   "r%   r&   r&      r   r'   c                @    \        \        V 4      \        ,          4      # r;   )r9   r6   r   r<   s   &r%   is_katakanar      r   r'   c                    V ^8  d   QhRRRR/# r8   r#   )r$   s   "r%   r&   r&           7 7 7 7r'   c                @    \        \        V 4      \        ,          4      # r;   )r9   r6   r   r<   s   &r%   	is_hangulr           +g566r'   c                    V ^8  d   QhRRRR/# r8   r#   )r$   s   "r%   r&   r&      s     5 5s 5t 5r'   c                @    \        \        V 4      \        ,          4      # r;   )r9   r6   r   r<   s   &r%   is_thair      s     +e344r'   c                    V ^8  d   QhRRRR/# r8   r#   )r$   s   "r%   r&   r&      r   r'   c                @    \        \        V 4      \        ,          4      # r;   )r9   r6   r   r<   s   &r%   	is_arabicr      r   r'   c                    V ^8  d   QhRRRR/# r8   r#   )r$   s   "r%   r&   r&      s     E Es Et Er'   c                @    \        \        V 4      \        ,          4      # r;   )r9   r6   r   r<   s   &r%   is_arabic_isolated_formr      s     +.CCDDr'   c                    V ^8  d   QhRRRR/# r8   r#   )r$   s   "r%   r&   r&      s     2 2s 2t 2r'   c                    V \         9  # r;   )r   r<   s   &r%   is_cjk_uncommonr      s    111r'   c                    V ^8  d   QhRRRR/# )r   
range_namer    r!   r9   r#   )r$   s   "r%   r&   r&      s     U U3 U4 Ur'   c                   a  \         ;QJ d#    V 3R  l\         4       F  '       g   K   R# 	  R# ! V 3R  l\         4       4      # )c              3  ,   <"   T F	  qS9   x  K  	  R # 5ir;   r#   )rJ   keywordr   s   & r%   rL   -is_unicode_range_secondary.<locals>.<genexpr>   s     T4S*$4Ss   TF)anyr   )r   s   fr%   is_unicode_range_secondaryr      s.    3T4ST33T3T3T4STTTr'   c                    V ^8  d   QhRRRR/# r8   r#   )r$   s   "r%   r&   r&      s      c d r'   c                    V P                  4       R J ;'       d-    V P                  4       R J ;'       d    V R8g  ;'       d    V R8g  # )Fu   ﻿)ry   isprintabler<   s   &r%   is_unprintabler      s[     	u$ 	" 	"!!#u,	" 	"	" 	" !	r'   c               $    V ^8  d   QhRRRRRR/# )r   sequencebytes | bytearraysearch_zoner"   r!   rP   r#   )r$   s   "r%   r&   r&      s$      .1r'   c           	        \        V \        \        34      '       g   \        h\	        V 4      p\        \        V R\        W!4       P                  RRR7      4      p\	        V4      ^ 8X  d   R# V FY  pVP                  4       P                  RR4      p\        P                  ! 4        F  w  rVWT8X  d   Vu u # Wd8X  g   K  Vu u # 	  K[  	  R# )zO
Extract using ASCII-only decoder any specified encoding in the first n-bytes.
Nasciiignoreerrors-_)
isinstancebytes	bytearray	TypeErrorlenr   r   mindecodelowerreplacer   items)r   r   seq_lenresultsspecified_encodingencoding_aliasencoding_ianas   &&     r%   any_specified_encodingr      s     h	 233x=G ',3w,-44WX4NG
 7|q%/557??SI
 .5]]_)N3$$2$$	 .= & r'   c                    V ^8  d   QhRRRR/# )r   r1   r    r!   r9   r#   )r$   s   "r%   r&   r&   
  s        r'   c                ~    V R9   ;'       g2    \        \        P                  ! RV  24      P                  \        4      # )zI
Verify is a specific encoding is a multi byte one based on it IANA name

encodings.>	   utf_7utf_8utf_16utf_32	utf_16_be	utf_16_le	utf_32_be	utf_32_le	utf_8_sig)
issubclass	importlibimport_moduler   r
   )r1   s   &r%   is_multi_byte_encodingr   	  sH    
  
 
   
*TF 34GG#
r'   c                    V ^8  d   QhRRRR/# )r   r   r   r!   ztuple[str | None, bytes]r#   )r$   s   "r%   r&   r&     s      "3 8P r'   c                    \          FP  p\         V,          p\        V\        4      '       d   V.pV F!  pV P                  V4      '       g   K  W3u u # 	  KR  	  R# )z1
Identify and extract SIG/BOM in given sequence.
)Nr'   )r   r   r   
startswith)r   iana_encodingmarksmarks   &   r%   identify_sig_or_bomr     sX    
 (%3M%BeU##GED""4(($**  ( r'   c                    V ^8  d   QhRRRR/# )r   r   r    r!   r9   r#   )r$   s   "r%   r&   r&   0  s     5 53 54 5r'   c                    V R9  # )r   >   r   r   r#   )r   s   &r%   should_strip_sig_or_bomr   0  s     444r'   c               $    V ^8  d   QhRRRRRR/# )r   cp_namer    strictr9   r!   r#   )r$   s   "r%   r&   r&   4  s!      s D C r'   c                    V P                  4       P                  RR4      p \        P                  ! 4        F  w  r#WV39   g   K  Vu # 	  V'       d   \	        RV  R24      hV # )zIReturns the Python normalized encoding name (Not the IANA official name).r   r   zUnable to retrieve IANA for '')r   r   r   r   r2   )r   r   r   r   s   &&  r%   	iana_namer   4  s_    mmo%%c3/G
 *1%}55   *9 8	CDDNr'   c               $    V ^8  d   QhRRRRRR/# )r   iana_name_ar    iana_name_br!   floatr#   )r$   s   "r%   r&   r&   E  s!     ' 's ' ' 'r'   c                   \        V 4      '       g   \        V4      '       d   R # \        P                  ! RV  24      P                  p\        P                  ! RV 24      P                  pV! RR7      pV! RR7      p^ p\	        R4       F?  p\        V.4      pVP                  V4      VP                  V4      8X  g   K6  V^,          pKA  	  VR,          # )g        r   r   r      )r   r   r   r   ranger   r   )	r   r   	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VI''*[M(BCVVI(9D(9D!"3Z$aSz;;}%])CC!Q&! 
 !3&&r'   c               $    V ^8  d   QhRRRRRR/# )r   r   r    r   r!   r9   r#   )r$   s   "r%   r&   r&   Y  s!      s   r'   c                D    V \         9   ;'       d    V\         V ,          9   # )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+>>r'   charset_normalizerz)%(asctime)s | %(levelname)s | %(message)sc               (    V ^8  d   QhRRRRRRRR/# )r   r1   r    levelr"   format_stringr!   Noner#   )r$   s   "r%   r&   r&   d  s0     
 



 
 
	
r'   c                    \         P                  ! V 4      pVP                  V4       \         P                  ! 4       pVP	                  \         P
                  ! V4      4       VP                  V4       R # r;   )logging	getLoggersetLevelStreamHandlersetFormatter	Formatter
addHandler)r1   r   r   loggerhandlers   &&&  r%   set_logging_handlerr  d  sU    
 t$F
OOE##%G**=9:
gr'   c               @    V ^8  d   QhRRRRRRRRR	R
RR
RRRR
RRRR/
# )r   	sequencesr   r   r    offsetsr   
chunk_sizer"   bom_or_sig_availabler9   strip_sig_or_bomsig_payloadr   is_multi_byte_decoderdecoded_payloadrP   r!   zGenerator[str, None, None]r#   )r$   s   "r%   r&   r&   q  sl     5 5 55 5 	5
 5 5 5  5  5  5r'   c	              #  H  "   V'       d+   VR J d%   V F  p	WW,            p
V
'       g    R# V
x  K  	  R# V F  p	W,           pV\        V 4      ^,           8  d   K$  W	W,            pV'       d   VR J d	   Wl,           pTP                  TV'       d   RMRR7      p
V'       dy   V	^ 8  dr   \        V^4      pV'       d^   V
RV V9  dT   \        W^,
          R4       F<  pWV pV'       d   VR J d	   Wl,           pVP                  VRR7      p
V
RV V9   g   K<   M	  V
x  K  	  R# 5i)Fr   r   r   N)r   r   r   r   )r  r   r  r	  r
  r  r  r  r  r   chunk	chunk_endcut_sequencechunk_partial_size_chkjs   &&&&&&&&&      r%   cut_sequence_chunksr  q  s)     0E9A#7EK	  AI3y>A--$8L#(8E(A*9 ''#8xh ( E %Q.1*b.A& $556oM"1!eR0'09'=/4D4M+6+EL , 3 3M( 3 S !8"89_L! 1 KG s   BD"D" A/D"D")i    )Tr;   )J__conditional_annotations__
__future__r   r   r   r0   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   r6   r=   rF   sortedr   rM   __annotations__rN   rU   rX   rb   ri   rn   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   INFOr  r  )er  s   0@r%   <module>r%     s   " "     % %       * *+ ,D *+< ,< *+" ," 6< <288:< 6 2  3I#I2HQaDD2H#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 *+ ,D 3 ($5"'( %D
5 5e $Js   I.