+
    ¿ù3i9!  ã                   óD   € ^ RI HtHt ^RIHt ^RIHt  ! R R]4      tR# )é    )ÚListÚUnion)ÚCharSetProber©ÚProbingStatec                   ój  a a€ ] tR t^t oRt^tRtV3R lV 3R lltV3R lV 3R llt]	V3R lR l4       t
]	V3R	 lR
 l4       tV3R lR ltV3R lR ltV3R lR ltV3R lR ltV3R lR ltV3R lR ltV3R lR ltV3R lR ltV3R lR lt]	V3R lR l4       tV3R lR  ltR!tVtV ;t# )"ÚUTF1632ProberaL  
This class simply looks for occurrences of zero bytes, and infers
whether the file is UTF16 or UTF32 (low-endian or big-endian)
For instance, files looking like (       [nonzero] )+
have a good probability to be UTF32BE.  Files looking like (   [nonzero] )+
may be guessed to be UTF16BE, and inversely for little-endian varieties.
g®Gázî?c                ó   <€ V ^8„  d   QhRR/# ©é   ÚreturnN© )ÚformatÚ__classdict__s   "€Ú7/usr/lib/python3/dist-packages/chardet/utf1632prober.pyÚ__annotate__ÚUTF1632Prober.__annotate__)   s   ø€ ÷ ñ ˜$ñ ó    c                ó  <€ \         SV `  4        ^ V n        ^ .^,          V n        ^ .^,          V n        \
        P                  V n        . ROV n        RV n	        RV n
        RV n        RV n        RV n        RV n        V P                  4        R# ©r   FN)r   r   r   r   )ÚsuperÚ__init__ÚpositionÚzeros_at_modÚnonzeros_at_modr   Ú	DETECTINGÚ_stateÚquadÚinvalid_utf16beÚinvalid_utf16leÚinvalid_utf32beÚinvalid_utf32leÚ'first_half_surrogate_pair_detected_16beÚ'first_half_surrogate_pair_detected_16leÚreset©ÚselfÚ	__class__s   &€r   r   ÚUTF1632Prober.__init__)   s~   ø€ Ü‰ÑÔØˆŒØ˜C !�GˆÔØ !˜s Q�wˆÔÜ"×,Ñ,ˆŒÚ ˆŒ	Ø$ˆÔØ$ˆÔØ$ˆÔØ$ˆÔØ7<ˆÔ4Ø7<ˆÔ4Ø�
‰
Žr   c                ó   <€ V ^8„  d   QhRR/# r   r   )r   r   s   "€r   r   r   8   s   ø€ ÷ !ñ !�tñ !r   c                óþ   <€ \         SV `  4        ^ V n        ^ .^,          V n        ^ .^,          V n        \
        P                  V n        RV n        RV n	        RV n
        RV n        RV n        RV n        . ROV n        R# r   )r   r%   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r   r&   s   &€r   r%   ÚUTF1632Prober.reset8   ss   ø€ Ü‰‰ŒØˆŒØ˜C !�GˆÔØ !˜s Q�wˆÔÜ"×,Ñ,ˆŒØ$ˆÔØ$ˆÔØ$ˆÔØ$ˆÔØ7<ˆÔ4Ø7<ˆÔ4Ú ˆŽ	r   c                ó    <€ V ^8„  d   QhRS[ /# ©r   r   ©Ústr)r   r   s   "€r   r   r   G   s   ø€ ÷ 
ñ 
™cñ 
r   c                óÆ   € V P                  4       '       d   R # V P                  4       '       d   R# V P                  4       '       d   R# V P                  4       '       d   R# R# )zutf-32bezutf-32lezutf-16bezutf-16lezutf-16)Úis_likely_utf32beÚis_likely_utf32leÚis_likely_utf16beÚis_likely_utf16le©r'   s   &r   Úcharset_nameÚUTF1632Prober.charset_nameF   sM   € à×!Ñ!×#Ò#ÙØ×!Ñ!×#Ò#ÙØ×!Ñ!×#Ò#ÙØ×!Ñ!×#Ò#Ùár   c                ó    <€ V ^8„  d   QhRS[ /# r.   r/   )r   r   s   "€r   r   r   T   s   ø€ ÷ ñ ™#ñ r   c                ó   € R # )Ú r   r6   s   &r   ÚlanguageÚUTF1632Prober.languageS   s   € ár   c                ó    <€ V ^8„  d   QhRS[ /# r.   ©Úfloat)r   r   s   "€r   r   r   W   ó   ø€ ÷ -ñ -¡Eñ -r   c                ó<   € \        R V P                  R,          4      # )ç      ð?g      @©Úmaxr   r6   s   &r   Úapprox_32bit_charsÚ UTF1632Prober.approx_32bit_charsW   ó   € Ü�3˜Ÿ™¨Õ+Ó,Ð,r   c                ó    <€ V ^8„  d   QhRS[ /# r.   r?   )r   r   s   "€r   r   r   Z   rA   r   c                ó<   € \        R V P                  R,          4      # )rC   g       @rD   r6   s   &r   Úapprox_16bit_charsÚ UTF1632Prober.approx_16bit_charsZ   rH   r   c                ó    <€ V ^8„  d   QhRS[ /# r.   ©Úbool)r   r   s   "€r   r   r   ]   ó   ø€ ÷ 
ñ 
¡4ñ 
r   c                óè  € V P                  4       pWP                  8¬  ;'       dÎ    V P                  ^ ,          V,          V P                  8„  ;'       dŸ    V P                  ^,          V,          V P                  8„  ;'       dp    V P                  ^,          V,          V P                  8„  ;'       dA    V P                  ^,          V,          V P                  8„  ;'       d    V P
                  '       * # ©r   )rF   ÚMIN_CHARS_FOR_DETECTIONr   ÚEXPECTED_RATIOr   r!   ©r'   Úapprox_charss   & r   r2   ÚUTF1632Prober.is_likely_utf32be]   sÛ   € Ø×.Ñ.Ó0ˆØ×;Ñ;Ñ;÷ 
ð 
Ø×Ñ˜aÕ  <Õ/°$×2EÑ2EÑE÷ )ð )Ø×!Ñ! !Õ$ |Õ3°d×6IÑ6IÑI÷)ð )à×!Ñ! !Õ$ |Õ3°d×6IÑ6IÑI÷)ð )ð ×$Ñ$ QÕ'¨,Õ6¸×9LÑ9LÑL÷)ð )ð ×(Ñ(Ô(ð	
r   c                ó    <€ V ^8„  d   QhRS[ /# r.   rN   )r   r   s   "€r   r   r   g   rP   r   c                óè  € V P                  4       pWP                  8¬  ;'       dÎ    V P                  ^ ,          V,          V P                  8„  ;'       dŸ    V P                  ^,          V,          V P                  8„  ;'       dp    V P                  ^,          V,          V P                  8„  ;'       dA    V P                  ^,          V,          V P                  8„  ;'       d    V P
                  '       * # rR   )rF   rS   r   rT   r   r"   rU   s   & r   r3   ÚUTF1632Prober.is_likely_utf32leg   sÛ   € Ø×.Ñ.Ó0ˆØ×;Ñ;Ñ;÷ 
ð 
Ø× Ñ  Õ# lÕ2°T×5HÑ5HÑH÷ )ð )Ø×!Ñ! !Õ$ |Õ3°d×6IÑ6IÑI÷)ð )à×!Ñ! !Õ$ |Õ3°d×6IÑ6IÑI÷)ð )ð ×!Ñ! !Õ$ |Õ3°d×6IÑ6IÑI÷)ð )ð ×(Ñ(Ô(ð	
r   c                ó    <€ V ^8„  d   QhRS[ /# r.   rN   )r   r   s   "€r   r   r   q   rP   r   c                óŒ  € V P                  4       pWP                  8¬  ;'       d     V P                  ^,          V P                  ^,          ,           V,          V P                  8„  ;'       dY    V P                  ^ ,          V P                  ^,          ,           V,          V P                  8„  ;'       d    V P
                  '       * # )é   )rK   rS   r   rT   r   r   rU   s   & r   r4   ÚUTF1632Prober.is_likely_utf16beq   ó¯   € Ø×.Ñ.Ó0ˆØ×;Ñ;Ñ;÷ 
ð 
Ø×!Ñ! !Õ$ t×';Ñ';¸AÕ'>Õ>À,ÕNØ×!Ñ!ñ"÷ )ð )à×"Ñ" 1Õ%¨×(9Ñ(9¸!Õ(<Õ<ÀÕLØ×!Ñ!ñ"÷)ð )ð ×(Ñ(Ô(ð	
r   c                ó    <€ V ^8„  d   QhRS[ /# r.   rN   )r   r   s   "€r   r   r   {   rP   r   c                óŒ  € V P                  4       pWP                  8¬  ;'       d     V P                  ^ ,          V P                  ^,          ,           V,          V P                  8„  ;'       dY    V P                  ^,          V P                  ^,          ,           V,          V P                  8„  ;'       d    V P
                  '       * # rR   )rK   rS   r   rT   r   r    rU   s   & r   r5   ÚUTF1632Prober.is_likely_utf16le{   r_   r   c                ó4   <€ V ^8„  d   QhRS[ S[,          RR/# )r   r   r   N©r   Úint)r   r   s   "€r   r   r   …   s   ø€ ÷ (ñ (©d±3­ið (¸Dñ (r   c                ót  € V^ ,          ^ 8w  gD   V^,          ^8”  g6   V^ ,          ^ 8X  d/   V^,          ^ 8X  d!   ^ØV^,          u;8:  d   ^ß8:  d   M MRV n         V^,          ^ 8w  gE   V^,          ^8”  g7   V^,          ^ 8X  d6   V^,          ^ 8X  d&   ^ØV^,          u;8:  d   ^ß8:  d   M R# RV n        R# R# R# R# )z®
Validate if the quad of bytes is valid UTF-32.

UTF-32 is valid in the range 0x00000000 - 0x0010FFFF
excluding 0x0000D800 - 0x0000DFFF

https://en.wikipedia.org/wiki/UTF-32
TN)r!   r"   )r'   r   s   &&r   Úvalidate_utf32_charactersÚ'UTF1632Prober.validate_utf32_characters…   s—   € ð ��G�qŒLØ�A�w˜Œ~Ø�Q•˜1”  a¥¨A¤°$¸$¸q½'Ö2IÀT×2Ià#'ˆDÔ à��G�qŒLØ�A�w˜Œ~Ø�Q•˜1”  a¥¨A¤°$¸$¸q½'Ö2IÀT×2IÐ2Ià#'ˆDÖ ñ 3J¡‘r   c                ó4   <€ V ^8„  d   QhRS[ S[,          RR/# )r   Úpairr   Nrd   )r   r   s   "€r   r   r   ›   s   ø€ ÷ ,ñ ,©d±3­ið ,¸Dñ ,r   c                ó  € V P                   '       gC   ^ØV^ ,          u;8:  d   ^Û8:  d   M MRV n         MI^ÜV^ ,          u;8:  d   ^ß8:  d   M M0RV n        M(^ÜV^ ,          u;8:  d   ^ß8:  d   M MRV n         MRV n        V P                  '       gH   ^ØV^,          u;8:  d   ^Û8:  d   M M	RV n        R# ^ÜV^,          u;8:  d   ^ß8:  d   M R# RV n        R# R# ^ÜV^,          u;8:  d   ^ß8:  d   M M	RV n        R# RV n        R# )a	  
Validate if the pair of bytes is  valid UTF-16.

UTF-16 is valid in the range 0x0000 - 0xFFFF excluding 0xD800 - 0xFFFF
with an exception for surrogate pairs, which must be in the range
0xD800-0xDBFF followed by 0xDC00-0xDFFF

https://en.wikipedia.org/wiki/UTF-16
TFN)r#   r   r$   r    )r'   rj   s   &&r   Úvalidate_utf16_charactersÚ'UTF1632Prober.validate_utf16_characters›   sÍ   € ð ×;×;Ð;Ø�t˜A•wÖ& $×&Ø?C�Õ<Ø˜˜a�Ö( D×(Ø'+�Ô$øà�t˜A•wÖ& $×&Ø?D�Õ<à'+�Ô$à×;×;Ð;Ø�t˜A•wÖ& $×&Ø?C�Ö<Ø˜˜a�Ö( D×(Ð(Ø'+�Ö$ñ )ð �t˜A•wÖ& $×&Ø?D�Ö<à'+�Ö$r   c                ó<   <€ V ^8„  d   QhRS[ S[S[3,          RS[/# )r   Úbyte_strr   )r   ÚbytesÚ	bytearrayr   )r   r   s   "€r   r   r   »   s%   ø€ ÷ ñ ™U¡5©)Ð#3Õ4ð ¹ñ r   c                óø  € V Fé  pV P                   ^,          pW P                  V&   V^8X  d`   V P                  V P                  4       V P                  V P                  R,          4       V P                  V P                  R,          4       V^ 8X  d!   V P                  V;;,          ^,          uu&   MV P
                  V;;,          ^,          uu&   V ;P                   ^,          un         Kë  	  V P                  # )é   :r   r   N:r   rs   N)r   r   rg   rl   r   r   Ústate)r'   ro   ÚcÚmod4s   &&  r   ÚfeedÚUTF1632Prober.feed»   s·   € ÛˆAØ—=‘= 1Õ$ˆDØ�I‰I�d‰OØ�qŒyØ×.Ñ.¨t¯y©yÔ9Ø×.Ñ.¨t¯y©y¸­~Ô>Ø×.Ñ.¨t¯y©y¸­~Ô>Ø�AŒvØ×!Ñ! $×'¨1Õ,Ô'à×$Ñ$ T×*¨aÕ/Ó*Ø�MŠM˜QÕ�Mñ ð �z‰zÐr   c                ó    <€ V ^8„  d   QhRS[ /# r.   r   )r   r   s   "€r   r   r   Ë   s   ø€ ÷ 
ñ 
‘|ñ 
r   c                óH  € V P                   \        P                  \        P                  09   d   V P                   # V P	                  4       R 8”  d"   \        P                  V n         V P                   # V P
                  R8”  d   \        P                  V n         V P                   # )gš™™™™™é?i   )r   r   ÚNOT_MEÚFOUND_ITÚget_confidencer   r6   s   &r   rt   ÚUTF1632Prober.stateÊ   sz   € à�;‰;œ<×.Ñ.´×0EÑ0EÐFÔFà—;‘;ÐØ×ÑÓ  4Ô'Ü&×/Ñ/ˆDŒKð
 �{‰{Ðð	 �]‰]˜XÔ%ô '×-Ñ-ˆDŒKØ�{‰{Ðr   c                ó    <€ V ^8„  d   QhRS[ /# r.   r?   )r   r   s   "€r   r   r   ×   s   ø€ ÷ 

ñ 

¡ñ 

r   c                óº   € V P                  4       '       gC   V P                  4       '       g-   V P                  4       '       g   V P                  4       '       d   R # R# )g333333ë?g        )r5   r4   r3   r2   r6   s   &r   r}   ÚUTF1632Prober.get_confidence×   sT   € ð ×&Ñ&×(Ò(Ø×)Ñ)×+Ò+Ø×)Ñ)×+Ò+Ø×)Ñ)×+Ò+ð ð		
ð ð		
r   )r   r#   r$   r   r    r!   r"   r   r   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rS   rT   r   r%   Úpropertyr7   r<   rF   rK   r2   r3   r4   r5   rg   rl   rw   rt   r}   Ú__static_attributes__Ú__classdictcell__Ú__classcell__)r(   r   s   @@r   r	   r	      sÑ   ù‡ € ñð !Ðà€N÷ó ÷!ó !ð ÷
ó ð
ð ÷ó ð÷-ð -÷-ð -÷
ð 
÷
ð 
÷
ð 
÷
ð 
÷(ð (÷,,ð ,÷@ð ð ÷
ó ð
÷

÷ 

ð 

r   r	   N)Útypingr   r   Úcharsetproberr   Úenumsr   r	   r   r   r   Ú<module>rŽ      s   ð÷* å (Ý ôF
�Mö F
r   