§
    *‚Kgt  ã                   óÎ   — d Z ddlZddlZej        Zdd„Z G d„ dej        ¦  «        Z G d„ dej        ¦  «        Z G d	„ d
ej	        ¦  «        Z	 G d„ dej
        ¦  «        Z
d„ ZdS )z‚ Python 'utf-16' Codec


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

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

é    NÚstrictc                 ó.   — t          j        | |d¦  «        S )NT)ÚcodecsÚutf_16_decode)ÚinputÚerrorss     ú'/usr/lib/python3.11/encodings/utf_16.pyÚdecoder
      s   € ÝÔ  v¨tÑ4Ô4Ð4ó    c                   ó0   — e Zd Zd	d„Zd
d„Zd„ Zd„ Zd„ ZdS )ÚIncrementalEncoderr   c                 óT   — t           j                             | |¦  «         d | _        d S ©N)r   r   Ú__init__Úencoder©Úselfr   s     r	   r   zIncrementalEncoder.__init__   s&   € ÝÔ!×*Ò*¨4°Ñ8Ô8Ð8ØˆŒˆˆr   Fc                 óü   — | j         €Ut          j        || j        ¦  «        d         }t          j        dk    rt          j        | _         nt          j        | _         |S |                       || j        ¦  «        d         S )Nr   Úlittle)r   r   Úutf_16_encoder   ÚsysÚ	byteorderÚutf_16_le_encodeÚutf_16_be_encode)r   r   ÚfinalÚresults       r	   ÚencodezIncrementalEncoder.encode   sf   € ØŒ<ÐÝÔ)¨%°´Ñ=Ô=¸aÔ@ˆFÝŒ} Ò(Ð(Ý%Ô6�”�å%Ô6�”ØˆMØ�|Š|˜E 4¤;Ñ/Ô/°Ô2Ð2r   c                 óR   — t           j                             | ¦  «         d | _        d S r   )r   r   Úresetr   ©r   s    r	   r   zIncrementalEncoder.reset!   s$   € ÝÔ!×'Ò'¨Ñ-Ô-Ð-ØˆŒˆˆr   c                 ó   — | j         €dndS )Né   r   )r   r    s    r	   ÚgetstatezIncrementalEncoder.getstate%   s   € ð
 ”\Ð)��¨qÐ1r   c                 ó„   — |r	d | _         d S t          j        dk    rt          j        | _         d S t          j        | _         d S ©Nr   )r   r   r   r   r   r   ©r   Ústates     r	   ÚsetstatezIncrementalEncoder.setstate,   s>   € Øð 	7ØˆDŒLˆLˆLåŒ} Ò(Ð(Ý%Ô6�”��å%Ô6�”��r   N©r   )F)Ú__name__Ú
__module__Ú__qualname__r   r   r   r#   r(   © r   r	   r   r      si   € € € € € ðð ð ð ð3ð 3ð 3ð 3ðð ð ð2ð 2ð 2ð7ð 7ð 7ð 7ð 7r   r   c                   ó.   — e Zd Zdd„Zd„ Zd„ Zd„ Zd„ ZdS )	ÚIncrementalDecoderr   c                 óT   — t           j                             | |¦  «         d | _        d S r   )r   ÚBufferedIncrementalDecoderr   Údecoderr   s     r	   r   zIncrementalDecoder.__init__6   s&   € ÝÔ)×2Ò2°4¸Ñ@Ô@Ð@ØˆŒˆˆr   c                 ó  — | j         €dt          j        ||d|¦  «        \  }}}|dk    rt          j        | _         n-|dk    rt          j        | _         n|dk    rt          d¦  «        ‚||fS |                       || j        |¦  «        S )Nr   éÿÿÿÿé   r"   ú%UTF-16 stream does not start with BOM)r2   r   Úutf_16_ex_decodeÚutf_16_le_decodeÚutf_16_be_decodeÚUnicodeErrorr   )r   r   r   r   ÚoutputÚconsumedr   s          r	   Ú_buffer_decodez!IncrementalDecoder._buffer_decode:   sŽ   € ØŒ<ÐåÔ'¨¨v°q¸%Ñ@Ô@ñ *ˆV�X˜yà˜BŠˆÝ%Ô6�”�Ø˜a’�Ý%Ô6�”�Ø˜Q’�Ý"Ð#JÑKÔKÐKØ˜HÐ%Ð%Ø�|Š|˜E 4¤;°Ñ6Ô6Ð6r   c                 óR   — t           j                             | ¦  «         d | _        d S r   )r   r1   r   r2   r    s    r	   r   zIncrementalDecoder.resetG   s$   € ÝÔ)×/Ò/°Ñ5Ô5Ð5ØˆŒˆˆr   c                 óÎ   — t           j                             | ¦  «        d         }| j        €|dfS t	          t
          j        dk    | j        t           j        u k    ¦  «        }||fS )Nr   r"   Úbig)r   r1   r#   r2   Úintr   r   r9   )r   r'   Úaddstates      r	   r#   zIncrementalDecoder.getstateK   sk   € õ Ô1×:Ò:¸4Ñ@Ô@ÀÔCˆð
 Œ<ÐØ˜1�:ÐÝ�œ¨Ò.Øœ­Ô(?Ð?òAñ Bô Bˆà�xÐ Ð r   c                 ó8  — t           j                             | |¦  «         |d         }|dk    r/t          j        dk    rt           j        nt           j        | _        d S |dk    r/t          j        dk    rt           j        nt           j        | _        d S d | _        d S )Nr5   r   r@   )r   r1   r(   r   r   r9   r8   r2   r&   s     r	   r(   zIncrementalDecoder.setstateY   s—   € åÔ)×2Ò2°4¸Ñ?Ô?Ð?Ø�a”ˆØ�AŠ:ˆ:å"œ}°Ò5Ð5õ #Ô3Ð3å!'Ô!8ð ŒLˆLˆLð �aŠZˆZå"œ}°Ò5Ð5õ #Ô3Ð3å!'Ô!8ð ŒLˆLˆLð  ˆDŒLˆLˆLr   Nr)   )r*   r+   r,   r   r=   r   r#   r(   r-   r   r	   r/   r/   5   sd   € € € € € ðð ð ð ð7ð 7ð 7ðð ð ð!ð !ð !ð ð  ð  ð  ð  r   r/   c                   ó$   — e Zd Zdd„Zd„ Zdd„ZdS )ÚStreamWriterr   c                 óV   — t           j                             | ||¦  «         d | _        d S r   )r   rE   r   r   )r   Ústreamr   s      r	   r   zStreamWriter.__init__i   s(   € ÝÔ×$Ò$ T¨6°6Ñ:Ô:Ð:ØˆŒˆˆr   c                 óR   — t           j                             | ¦  «         d | _        d S r   )r   rE   r   r   r    s    r	   r   zStreamWriter.resetm   s$   € ÝÔ×!Ò! $Ñ'Ô'Ð'ØˆŒˆˆr   c                 óÐ   — | j         €Jt          j        ||¦  «        }t          j        dk    rt          j        | _         nt          j        | _         |S |                       ||¦  «        S r%   )r   r   r   r   r   r   r   )r   r   r   r   s       r	   r   zStreamWriter.encodeq   sX   € ØŒ<ÐÝÔ)¨%°Ñ8Ô8ˆFÝŒ} Ò(Ð(Ý%Ô6�”�å%Ô6�”ØˆMà—<’<  vÑ.Ô.Ð.r   Nr)   )r*   r+   r,   r   r   r   r-   r   r	   rE   rE   h   sK   € € € € € ðð ð ð ðð ð ð	/ð 	/ð 	/ð 	/ð 	/ð 	/r   rE   c                   ó   — e Zd Zd„ Zdd„ZdS )ÚStreamReaderc                 ól   — t           j                             | ¦  «         	 | `d S # t          $ r Y d S w xY wr   )r   rK   r   r
   ÚAttributeErrorr    s    r	   r   zStreamReader.reset~   sI   € ÝÔ×!Ò! $Ñ'Ô'Ð'ð	Ø���øÝð 	ð 	ð 	ØˆDˆDð	øøøs   ¡% ¥
3²3r   c                 óÊ   — t          j        ||dd¦  «        \  }}}|dk    rt           j        | _        n-|dk    rt           j        | _        n|dk    rt          d¦  «        ‚||fS )Nr   Fr4   r5   r"   r6   )r   r7   r8   r
   r9   r:   )r   r   r   Úobjectr<   r   s         r	   r
   zStreamReader.decode…   sn   € åÔ# E¨6°1°eÑ<Ô<ñ 	&ˆ�˜9à˜Š?ˆ?Ý Ô1ˆDŒKˆKØ˜!Š^ˆ^Ý Ô1ˆDŒKˆKØ�qŠ[ˆ[ÝÐFÑGÔGÐGØ˜Ð!Ð!r   Nr)   )r*   r+   r,   r   r
   r-   r   r	   rK   rK   |   s7   € € € € € ðð ð ð	"ð 	"ð 	"ð 	"ð 	"ð 	"r   rK   c            	      ót   — t          j        dt          t          t          t
          t          t          ¬¦  «        S )Nzutf-16)Únamer   r
   ÚincrementalencoderÚincrementaldecoderÚstreamreaderÚstreamwriter)r   Ú	CodecInfor   r
   r   r/   rK   rE   r-   r   r	   ÚgetregentryrW   ’   s1   € ÝÔØÝÝÝ-Ý-Ý!Ý!ðñ ô ð r   r)   )Ú__doc__r   r   r   r   r
   r   r1   r/   rE   rK   rW   r-   r   r	   ú<module>rY      s  ððð ð Ð Ð Ð Ð Ð Ð Ð ð 
Ô	€ð5ð 5ð 5ð 5ð!7ð !7ð !7ð !7ð !7˜Ô2ñ !7ô !7ð !7ðF1 ð 1 ð 1 ð 1 ð 1 ˜Ô:ñ 1 ô 1 ð 1 ðf/ð /ð /ð /ð /�6Ô&ñ /ô /ð /ð("ð "ð "ð "ð "�6Ô&ñ "ô "ð "ð,	ð 	ð 	ð 	ð 	r   