Ë
    òT•j%  ã                   óÎ   — d Z ddlZdd„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	y)a   Python 'utf-8-sig' Codec
This work similar to UTF-8 with the following changes:

* On encoding/writing a UTF-8 encoded BOM will be prepended/written as the
  first three bytes.

* On decoding/reading if the first three bytes are a UTF-8 encoded BOM, these
  bytes will be skipped.
é    Nc                 ól   — t         j                  t        j                  | |«      d   z   t        | «      fS ©Nr   )ÚcodecsÚBOM_UTF8Úutf_8_encodeÚlen)ÚinputÚerrorss     ú*/usr/lib/python3.12/encodings/utf_8_sig.pyÚencoder      s1   € Ü�O‰Oœf×1Ñ1°%¸Ó@ÀÑCÑCÜ�‹Jðð ó    c                 ó‚   — d}| d d t         j                  k(  r| dd  } d}t        j                  | |d«      \  }}|||z   fS )Nr   é   T)r   r   Úutf_8_decode)r	   r
   ÚprefixÚoutputÚconsumeds        r   Údecoder      sQ   € Ø€FØˆRˆa€y”F—O‘OÒ#Ø�a�b�	ˆØˆÜ×,Ñ,¨U°F¸DÓAÑ€VˆXØ�H˜V‘OÐ$Ð$r   c                   ó.   — e Zd Zdd„Zdd„Zd„ Zd„ Zd„ Zy)	ÚIncrementalEncoderc                 óR   — t         j                  j                  | |«       d| _        y ©Né   )r   r   Ú__init__Úfirst©Úselfr
   s     r   r   zIncrementalEncoder.__init__   s   € Ü×!Ñ!×*Ñ*¨4°Ô8Øˆ�
r   c                 óÖ   — | j                   r;d| _         t        j                  t        j                  || j                  «      d   z   S t        j                  || j                  «      d   S r   )r   r   r   r   r
   )r   r	   Úfinals      r   r   zIncrementalEncoder.encode   sX   € Ø�:Š:ØˆDŒJÜ—?‘?Ü×&Ñ& u¨d¯k©kÓ:¸1Ñ=ñ>ð >ô ×&Ñ& u¨d¯k©kÓ:¸1Ñ=Ð=r   c                 óP   — t         j                  j                  | «       d| _        y r   )r   r   Úresetr   ©r   s    r   r!   zIncrementalEncoder.reset'   s   € Ü×!Ñ!×'Ñ'¨Ô-Øˆ�
r   c                 ó   — | j                   S ©N©r   r"   s    r   ÚgetstatezIncrementalEncoder.getstate+   s   € Ø�z‰zÐr   c                 ó   — || _         y r$   r%   ©r   Ústates     r   ÚsetstatezIncrementalEncoder.setstate.   s	   € Øˆ�
r   N©Ústrict)F)Ú__name__Ú
__module__Ú__qualname__r   r   r!   r&   r*   © r   r   r   r      s   „ óó>òòór   r   c                   ó,   — e Zd Zdd„Zd„ Zd„ Zd„ Zd„ Zy)ÚIncrementalDecoderc                 óR   — t         j                  j                  | |«       d| _        y r   )r   ÚBufferedIncrementalDecoderr   r   r   s     r   r   zIncrementalDecoder.__init__2   s   € Ü×)Ñ)×2Ñ2°4¸Ô@Øˆ�
r   c                 ó6  — | j                   rwt        |«      dk  r(t        j                  j	                  |«      ryd| _         nAd| _         |d d t        j                  k(  r$t        j
                  |dd  ||«      \  }}||dz   fS t        j
                  |||«      S )Nr   ©Ú r   r   )r   r   r   r   Ú
startswithr   )r   r	   r
   r   r   r   s         r   Ú_buffer_decodez!IncrementalDecoder._buffer_decode6   s�   € Ø�:Š:Ü�5‹z˜AŠ~Ü—?‘?×-Ñ-¨eÔ4ð #à!"�D•Jà�”
Ø˜˜!�9¤§¡Ò/ä×*Ñ*¨5°°¨9°f¸eÓDñ '�V˜Xà" H¨Q¡JÐ/Ð/Ü×"Ñ" 5¨&°%Ó8Ð8r   c                 óP   — t         j                  j                  | «       d| _        y r   )r   r4   r!   r   r"   s    r   r!   zIncrementalDecoder.resetG   s   € Ü×)Ñ)×/Ñ/°Ô5Øˆ�
r   c                 ób   — t         j                  j                  | «      }|d   | j                  fS r   )r   r4   r&   r   r(   s     r   r&   zIncrementalDecoder.getstateK   s+   € Ü×1Ñ1×:Ñ:¸4Ó@ˆà�a‘˜$Ÿ*™*Ð%Ð%r   c                 óX   — t         j                  j                  | |«       |d   | _        y r   )r   r4   r*   r   r(   s     r   r*   zIncrementalDecoder.setstateP   s#   € ä×)Ñ)×2Ñ2°4¸Ô?Ø˜1‘Xˆ�
r   Nr+   )r-   r.   r/   r   r9   r!   r&   r*   r0   r   r   r2   r2   1   s   „ óò9ò"ò&ó
r   r2   c                   ó   — e Zd Zd„ Zdd„Zy)ÚStreamWriterc                 óf   — t         j                  j                  | «       	 | `y # t        $ r Y y w xY wr$   )r   r>   r!   r   ÚAttributeErrorr"   s    r   r!   zStreamWriter.resetV   ó2   € Ü×Ñ×!Ñ! $Ô'ð	Ø‘øÜò 	Ùð	úó   ¡$ ¤	0¯0c                 óD   — t         j                  | _        t        ||«      S r$   )r   r   r   )r   r	   r
   s      r   r   zStreamWriter.encode]   s   € Ü×)Ñ)ˆŒÜ�e˜VÓ$Ð$r   Nr+   )r-   r.   r/   r!   r   r0   r   r   r>   r>   U   s   „ òô%r   r>   c                   ó   — e Zd Zd„ Zdd„Zy)ÚStreamReaderc                 óf   — t         j                  j                  | «       	 | `y # t        $ r Y y w xY wr$   )r   rE   r!   r   r@   r"   s    r   r!   zStreamReader.resetb   rA   rB   c                 óP  — t        |«      dk  r t        j                  j                  |«      rOy|d d t        j                  k(  r8t        j                  | _        t        j                  |dd  |«      \  }}||dz   fS t        j                  | _        t        j                  ||«      S )Nr   r6   )r   r   r   r8   r   r   )r   r	   r
   r   r   s        r   r   zStreamReader.decodei   s�   € Üˆu‹:˜Š>Ü�‰×)Ñ)¨%Ô0ð Ø�2�AˆYœ&Ÿ/™/Ò)Ü ×-Ñ-ˆDŒKÜ!'×!4Ñ!4°U¸1¸2°Y¸vÓ!FÑˆV�XØ˜H Q™JÐ'Ð'ä×)Ñ)ˆŒÜ×"Ñ" 5¨&Ó1Ð1r   Nr+   )r-   r.   r/   r!   r   r0   r   r   rE   rE   a   s   „ òô2r   rE   c            	      ój   — t        j                  dt        t        t        t
        t        t        ¬«      S )Nz	utf-8-sig)Únamer   r   ÚincrementalencoderÚincrementaldecoderÚstreamreaderÚstreamwriter)r   Ú	CodecInfor   r   r   r2   rE   r>   r0   r   r   ÚgetregentryrO   y   s*   € Ü×ÑØÜÜÜ-Ü-Ü!Ü!ôð r   r+   )
Ú__doc__r   r   r   r   r4   r2   r>   rE   rO   r0   r   r   ú<module>rQ      sg   ðñó óó%ô˜×2Ñ2ô ô."˜×:Ñ:ô "ôH
%�6×&Ñ&ô 
%ô2�6×&Ñ&ô 2ó0	r   