ó
    ã¾yj   ã                   óè   • S r SSKrSSKr\R                  rSS jr " S S\R                  5      r " S S\R                  5      r " S S	\R                  5      r	 " S
 S\R                  5      r
S rg)z�Python 'utf-16' Codec


Written by Marc-Andre Lemburg (mal@lemburg.com).

(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.

é    Nc                 ó0   • [         R                  " XS5      $ )NT)ÚcodecsÚutf_16_decode)ÚinputÚerrorss     Ú'/usr/lib/python3.13/encodings/utf_16.pyÚdecoder	      s   € Ü×Ò ¨tÓ4Ð4ó    c                   ó:   • \ rS rSrS	S jrS
S jrS rS rS rSr	g)ÚIncrementalEncoderé   c                 óP   • [         R                  R                  X5        S U l        g ©N)r   r   Ú__init__Úencoder©Úselfr   s     r   r   ÚIncrementalEncoder.__init__   s   € Ü×!Ñ!×*Ñ*¨4Ô8Øˆ�r
   c                 ó"  • U R                   ce  [        R                  " XR                  5      S   n[        R
                  S:X  a  [        R                  U l         U$ [        R                  U l         U$ U R                  XR                  5      S   $ )Nr   Úlittle)r   r   Úutf_16_encoder   ÚsysÚ	byteorderÚutf_16_le_encodeÚutf_16_be_encode)r   r   ÚfinalÚresults       r   ÚencodeÚIncrementalEncoder.encode   sq   € Ø�<‰<ÑÜ×)Ò)¨%·±Ó=¸aÑ@ˆFÜ�}‰} Ó(Ü%×6Ñ6�”ð ˆMô  &×6Ñ6�”ØˆMØ�|‰|˜E§;¡;Ó/°Ñ2Ð2r
   c                 óP   • [         R                  R                  U 5        S U l        g r   )r   r   Úresetr   ©r   s    r   r!   ÚIncrementalEncoder.reset!   s   € Ü×!Ñ!×'Ñ'¨Ô-Øˆ�r
   c                 ó$   • U R                   c  S$ S$ )Né   r   ©r   r"   s    r   ÚgetstateÚIncrementalEncoder.getstate%   s   € ð
 —\‘\Ñ)�Ð1¨qÐ1r
   c                 ó    • U(       a  S U l         g [        R                  S:X  a  [        R                  U l         g [        R
                  U l         g ©Nr   )r   r   r   r   r   r   ©r   Ústates     r   ÚsetstateÚIncrementalEncoder.setstate,   s2   € ÞØˆD�Lä�}‰} Ó(Ü%×6Ñ6�•ä%×6Ñ6�•r
   r&   N©Ústrict)F)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r!   r'   r-   Ú__static_attributes__© r
   r   r   r      s   † ôô3òò2õ7r
   r   c                   ó6   • \ rS rSrS	S jrS rS rS rS rSr	g)
ÚIncrementalDecoderé5   c                 óP   • [         R                  R                  X5        S U l        g r   )r   ÚBufferedIncrementalDecoderr   Údecoderr   s     r   r   ÚIncrementalDecoder.__init__6   s   € Ü×)Ñ)×2Ñ2°4Ô@Øˆ�r
   c                 ó2  • U R                   co  [        R                  " XSU5      u  pEnUS:X  a  [        R                  U l         XE4$ US:X  a  [        R                  U l         XE4$ US:¼  a  [        SUSSS5      eXE4$ U R                  XR                  U5      $ )Nr   éÿÿÿÿé   r%   úutf-16úStream does not start with BOM)r<   r   Úutf_16_ex_decodeÚutf_16_le_decodeÚutf_16_be_decodeÚUnicodeDecodeErrorr   )r   r   r   r   ÚoutputÚconsumedr   s          r   Ú_buffer_decodeÚ!IncrementalDecoder._buffer_decode:   s¢   € Ø�<‰<Ñä×'Ò'¨°q¸%Ó@ñ *ˆV˜yà˜B‹Ü%×6Ñ6�”ð
 Ð%Ð%ð	 ˜a“Ü%×6Ñ6�”ð Ð%Ð%ð ˜Q“Ü(¨°5¸!¸QÐ@`ÓaÐaØÐ%Ð%Ø�|‰|˜E§;¡;°Ó6Ð6r
   c                 óP   • [         R                  R                  U 5        S U l        g r   )r   r;   r!   r<   r"   s    r   r!   ÚIncrementalDecoder.resetG   s   € Ü×)Ñ)×/Ñ/°Ô5Øˆ�r
   c                 óà   • [         R                  R                  U 5      S   nU R                  c  US4$ [	        [
        R                  S:H  U R                  [         R                  L :g  5      nX4$ )Nr   r%   Úbig)r   r;   r'   r<   Úintr   r   rE   )r   r,   Úaddstates      r   r'   ÚIncrementalDecoder.getstateK   sl   € ô ×1Ñ1×:Ñ:¸4Ó@ÀÑCˆð
 �<‰<ÑØ˜1�:ÐÜœŸ™¨Ñ.ØŸ™¬×(?Ñ(?Ð?ñAó BˆàÐ Ð r
   c                 óZ  • [         R                  R                  X5        US   nUS:X  a:  [        R                  S:X  a  [         R
                  O[         R                  U l        g US:X  a:  [        R                  S:X  a  [         R                  O[         R
                  U l        g S U l        g )Nr@   r   rN   )r   r;   r-   r   r   rE   rD   r<   r+   s     r   r-   ÚIncrementalDecoder.setstateY   s†   € ä×)Ñ)×2Ñ2°4Ô?Ø�a‘ˆØ�A‹:ä"Ÿ}™}°Ó5ô #×3Ò3ä!'×!8Ñ!8ð �Lð �a‹Zä"Ÿ}™}°Ó5ô #×3Ò3ä!'×!8Ñ!8ð �Lð  ˆD�Lr
   )r<   Nr/   )
r1   r2   r3   r4   r   rI   r!   r'   r-   r5   r6   r
   r   r8   r8   5   s   † ôò7òò!õ r
   r8   c                   ó.   • \ rS rSrSS jrS rSS jrSrg)ÚStreamWriteréh   c                 óR   • [         R                  R                  XU5        S U l        g r   )r   rU   r   r   )r   Ústreamr   s      r   r   ÚStreamWriter.__init__i   s   € Ü×Ñ×$Ñ$ T°6Ô:Øˆ�r
   c                 óP   • [         R                  R                  U 5        S U l        g r   )r   rU   r!   r   r"   s    r   r!   ÚStreamWriter.resetm   s   € Ü×Ñ×!Ñ! $Ô'Øˆ�r
   c                 óî   • U R                   cX  [        R                  " X5      n[        R                  S:X  a  [        R
                  U l         U$ [        R                  U l         U$ U R                  X5      $ r*   )r   r   r   r   r   r   r   )r   r   r   r   s       r   r   ÚStreamWriter.encodeq   s_   € Ø�<‰<ÑÜ×)Ò)¨%Ó8ˆFÜ�}‰} Ó(Ü%×6Ñ6�”ð ˆMô  &×6Ñ6�”ØˆMà—<‘< Ó.Ð.r
   r&   Nr/   )r1   r2   r3   r4   r   r!   r   r5   r6   r
   r   rU   rU   h   s   † ôò÷	/r
   rU   c                   ó$   • \ rS rSrS rSS jrSrg)ÚStreamReaderé|   c                 óh   • [         R                  R                  U 5         U ?g ! [         a     g f = fr   )r   r_   r!   r	   ÚAttributeErrorr"   s    r   r!   ÚStreamReader.reset~   s2   € Ü×Ñ×!Ñ! $Ô'ð	Ø‘øÜó 	Ùð	ús   ¡$ ¤
1°1c                 óà   • [         R                  " XSS5      u  p4nUS:X  a  [         R                  U l        X44$ US:X  a  [         R                  U l        X44$ US:¼  a  [        SUSSS5      eX44$ )Nr   Fr?   r@   r%   rA   rB   )r   rC   rD   r	   rE   rF   )r   r   r   ÚobjectrH   r   s         r   r	   ÚStreamReader.decode…   sƒ   € ä×#Ò# E°1°eÓ<ñ 	&ˆ˜9à˜‹?Ü ×1Ñ1ˆDŒKð
 Ð!Ð!ð	 ˜!‹^Ü ×1Ñ1ˆDŒKð Ð!Ð!ð �q‹[Ü$ X¨u°a¸Ð<\Ó]Ð]ØÐ!Ð!r
   )r	   Nr/   )r1   r2   r3   r4   r!   r	   r5   r6   r
   r   r_   r_   |   s   † ò÷	"r
   r_   c            
      óf   • [         R                  " S[        [        [        [
        [        [        S9$ )NrA   )Únamer   r	   ÚincrementalencoderÚincrementaldecoderÚstreamreaderÚstreamwriter)r   Ú	CodecInfor   r	   r   r8   r_   rU   r6   r
   r   Úgetregentryrn   ’   s*   € Ü×ÒØÜÜÜ-Ü-Ü!Ü!ñð r
   r/   )Ú__doc__r   r   r   r   r	   r   r;   r8   rU   r_   rn   r6   r
   r   Ú<module>rp      sp   ðñ÷ ð 
×	Ñ	€ô5ô!7˜×2Ñ2ô !7ôF1 ˜×:Ñ:ô 1 ôf/�6×&Ñ&ô /ô("�6×&Ñ&ô "ó,	r
   