§
    aÒ³gW  ã                  ó  — d dl mZ d dlZddlmZmZ ddlmZ dd
„Z	 G d„ dej        ¦  «        Z
 G d„ dej        ¦  «        Z ej        e
j        e
e	¦  «          ej        de¦  «          ej        e
j        d¦  «         dS )é    )ÚannotationsNé   )ÚImageÚ	ImageFile)Úi32beÚprefixÚbytesÚreturnÚboolc                ó   — | d d…         dk    S )Né   s   qoif© )r   s    úP/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/PIL/QoiImagePlugin.pyÚ_acceptr      s   € Ø�"�1�"Œ:˜Ò Ð ó    c                  ó   — e Zd ZdZdZdd„ZdS )ÚQoiImageFileÚQOIzQuite OK Imager
   ÚNonec                ó:  — t          | j                             d¦  «        ¦  «        sd}t          |¦  «        ‚t	          | j                             d¦  «        ¦  «        t	          | j                             d¦  «        ¦  «        f| _        | j                             d¦  «        d         }|dk    rdnd| _        | j                             dt          j	        ¦  «         t          j        dd	| j        z   | j                             ¦   «         ¦  «        g| _        d S )
Nr   znot a QOI filer   r   é   ÚRGBÚRGBAÚqoi)r   r   )r   ÚfpÚreadÚSyntaxErrorÚi32Ú_sizeÚ_modeÚseekÚosÚSEEK_CURr   Ú_TileÚtellÚtile)ÚselfÚmsgÚchannelss      r   Ú_openzQoiImageFile._open   sÓ   € Ý�t”w—|’| A‘”Ñ'Ô'ð 	#Ø"ˆCÝ˜cÑ"Ô"Ð"å˜œŸš a™œÑ)Ô)­3¨t¬w¯|ª|¸A©¬Ñ+?Ô+?Ð?ˆŒ
à”7—<’< ‘?”? 1Ô%ˆØ&¨!šm˜m�U�U°ˆŒ
àŒ�Š�Q�œÑ$Ô$Ð$Ý”_ U¨F°T´ZÑ,?ÀÄÇÂÁÄÑPÔPÐQˆŒ	ˆ	ˆ	r   N)r
   r   )Ú__name__Ú
__module__Ú__qualname__ÚformatÚformat_descriptionr*   r   r   r   r   r      s9   € € € € € Ø€FØ)ÐðRð Rð Rð Rð Rð Rr   r   c                  ó@   — e Zd ZU dZdZded<   i Zded<   dd„Zdd„ZdS )Ú
QoiDecoderTNzbytes | bytearray | NoneÚ_previous_pixelzdict[int, bytes | bytearray]Ú_previously_seen_pixelsÚvalueúbytes | bytearrayr
   r   c                ój   — || _         |\  }}}}|dz  |dz  z   |dz  z   |dz  z   dz  }|| j        |<   d S )Nr   é   é   é   é@   )r2   r3   )r'   r4   ÚrÚgÚbÚaÚ
hash_values          r   Ú_add_to_previous_pixelsz"QoiDecoder._add_to_previous_pixels+   sR   € Ø$ˆÔà‰
ˆˆ1ˆa�Ø˜!‘e˜a !™e‘m a¨!¡eÑ+¨a°"©fÑ4¸Ñ:ˆ
Ø38ˆÔ$ ZÑ0Ð0Ð0r   Úbufferú$bytes | Image.SupportsArrayInterfaceútuple[int, int]c           
     óÈ  ‡ ‡— ‰ j         €J ‚i ‰ _        ‰                      t          d¦  «        ¦  «         t          ¦   «         }t	          j        ‰ j        ¦  «        }‰ j        j        ‰ j        j	        z  |z  }t          |¦  «        |k     �rA‰ j                              d¦  «        d         }|dk    r@‰ j        r9t          ‰ j                              d¦  «        ¦  «        ‰ j        dd …         z   }�n�|dk    r‰ j                              d¦  «        }�n{|dz	  }|dk    r/|d	z  }‰ j                             |t          d
¦  «        ¦  «        }�nA|dk    rq‰ j        rjt          ‰ j        d         |dz  dz	  z   dz
  dz  ‰ j        d         |dz  dz	  z   dz
  dz  ‰ j        d         |dz  z   dz
  dz  ‰ j        d         f¦  «        }nÊ|dk    rŽ‰ j        r‡‰ j                              d¦  «        d         }	|d	z  dz
  Š|	dz  dz	  dz
  }
|	dz  dz
  }t          t          ˆˆ fd„t          |
d|f¦  «        D ¦   «         ¦  «        ¦  «        }|‰ j        dd …         z  }n6|dk    r0‰ j        r)|d	z  dz   }‰ j        }|dk    r
|d d…         }|||z  z  }�Œ‰                      |¦  «         |dk    r
|d d…         }||z  }t          |¦  «        |k     �°A‰                      |¦  «         dS )N)r   r   r   éÿ   r   r   éþ   r   rE   r   é   é?   )r   r   r   r   é0   é   é   é   é    éð   é   é   c              3  óJ   •K  — | ]\  }}‰j         |         ‰z   |z   d z  V — ŒdS )rK   N)r2   )Ú.0ÚiÚdiffÚ
diff_greenr'   s      €€r   ú	<genexpr>z$QoiDecoder.decode.<locals>.<genexpr>[   sR   øè è € ð ð á '  4ð "Ô1°!Ô4°zÑAÀDÑHÈCÑOðð ð ð ð ð r   )éÿÿÿÿr   )Úfdr3   r@   Ú	bytearrayr   ÚgetmodebandsÚmodeÚstateÚxsizeÚysizeÚlenr   r2   ÚgetÚtupleÚ	enumerateÚ
set_as_raw)r'   rA   ÚdataÚbandsÚdest_lengthÚbyter4   ÚopÚop_indexÚsecond_byteÚdiff_redÚ	diff_blueÚ
run_lengthrU   s   `            @r   ÚdecodezQoiDecoder.decode2   sN  øø€ ØŒwÐ"Ð"Ð"à')ˆÔ$Ø×$Ò$¥Y¨~Ñ%>Ô%>Ñ?Ô?Ð?å‰{Œ{ˆÝÔ" 4¤9Ñ-Ô-ˆØ”jÔ&¨¬Ô)9Ñ9¸EÑAˆÝ�$‰iŒi˜+Ò%Ñ%Ø”7—<’< ‘?”? 1Ô%ˆDà�zÒ!Ð! dÔ&:Ð!Ý! $¤'§,¢,¨q¡/¤/Ñ2Ô2°TÔ5IÈ!È"È"Ô5MÑM�‘Ø˜Ò#Ð#ØœŸš Q™œ�‘à˜Q‘Y�Ø˜’7�7Ø# jÑ0�HØ Ô8×<Ò<Ø ¥)¨LÑ"9Ô"9ñô �E‘Eð ˜1’W�W Ô!5�WÝ%à!Ô1°!Ô4¸À
Ñ9JÈqÑ8PÑQÐTUÑUØ!ñ"à!Ô1°!Ô4¸À
Ñ9JÈqÑ8PÑQÐTUÑUØ!ñ"à!Ô1°!Ô4¸¸zÑ8IÑJÈQÑNÐRUÑUØ Ô0°Ô3ðñ	ô 	�E�Eð ˜1’W�W Ô!5�WØ"&¤'§,¢,¨q¡/¤/°!Ô"4�KØ"&¨Ñ"3°rÑ!9�JØ!,¨zÑ!9¸aÑ ?À1ÑD�HØ!,¨zÑ!9¸QÑ >�Iå%Ýð ð ð ð ð å+4°hÀÀ9Ð5MÑ+NÔ+Nðñ ô ñ ô ñô �Eð ˜TÔ1°!°"°"Ô5Ñ5�E�EØ˜1’W�W Ô!5�WØ"&¨Ñ"3°qÑ!8�JØ Ô0�EØ ’z�zØ % b q b¤	˜Ø˜E JÑ.Ñ.�DÙØ×(Ò(¨Ñ/Ô/Ð/à˜ŠzˆzØ˜b˜q˜bœ	�Ø�E‰MˆDõc �$‰iŒi˜+Ò%Ñ%ðd 	�Š˜ÑÔÐØˆur   )r4   r5   r
   r   )rA   rB   r
   rC   )	r+   r,   r-   Ú	_pulls_fdr2   Ú__annotations__r3   r@   rn   r   r   r   r1   r1   &   sf   € € € € € € Ø€IØ04€OÐ4Ð4Ð4Ñ4Ø<>ÐÐ>Ð>Ð>Ñ>ð9ð 9ð 9ð 9ð<ð <ð <ð <ð <ð <r   r1   r   z.qoi)r   r	   r
   r   )Ú
__future__r   r"   Ú r   r   Ú_binaryr   r   r   r   Ú	PyDecoderr1   Úregister_openr.   Úregister_decoderÚregister_extensionr   r   r   ú<module>rx      s  ðð #Ð "Ð "Ð "Ð "Ð "à 	€	€	€	à Ð Ð Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !ð!ð !ð !ð !ðRð Rð Rð Rð R�9Ô&ñ Rô Rð Rð$Hð Hð Hð Hð H�Ô$ñ Hô Hð HðV €Ô �LÔ'¨°wÑ ?Ô ?Ð ?Ø €Ô �u˜jÑ )Ô )Ð )Ø €Ô ˜Ô,¨fÑ 5Ô 5Ð 5Ð 5Ð 5r   