§
    œ"²cH&  ã                   óì  — d dl Z d dlZ	 d dlmZ dZ e¦   «         Ze                     e¦  «         n%# e$ rZddl	m
Z
  e
e¦  «        xZZY dZ[ndZ[ww xY w e j        e¦  «        Z G d„ d¦  «        Z G d„ d	e¦  «        Z G d
„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Zi de“de“de“de“d e“d!e“d"e“d#e“d$e“d%e“d&e“d'e“d(e“d)e“d*e“d+e“Zej        d,k    reed-<   eed.<   eed/<   eed0<   eed1<   need-<   eed.<   eed/<   eed0<   eed1<   d4d3„ZdS )5é    N)ÚFFIz|
    struct Pixel_RGBA {
        unsigned char r,g,b,a;
    };
    struct Pixel_I16 {
        unsigned char l,r;
    };
    é   )ÚDeferredErrorc                   ó6   — e Zd Zdd„Zd„ Zd„ Zd„ ZeZeZd„ Z	dS )	ÚPyAccessFc                 óÞ  — t          |j        j        ¦  «        }|| _        t                               d|d         ¦  «        | _        t                               d|d         ¦  «        | _        t                               d|d         ¦  «        | _        |j        j	        \  | _
        | _        || _        |j        | _        | j        j        dv r|j        | _        |                      ¦   «          d S )Nzunsigned char **Úimage8zint **Úimage32Úimage©ÚPÚPA)ÚdictÚimÚunsafe_ptrsÚreadonlyÚffiÚcastr	   r
   r   ÚsizeÚxsizeÚysizeÚ_imgÚ_imÚmodeÚpaletteÚ_paletteÚ
_post_init)ÚselfÚimgr   Úvalss       ú./usr/lib/python3/dist-packages/PIL/PyAccess.pyÚ__init__zPyAccess.__init__1   s¼   € Ý�C”FÔ&Ñ'Ô'ˆØ ˆŒÝ—h’hÐ1°4¸´>ÑBÔBˆŒÝ—x’x ¨$¨y¬/Ñ:Ô:ˆŒÝ—X’XÐ0°$°w´-Ñ@Ô@ˆŒ
Ø!$¤¤ÑˆŒ
�D”JØˆŒ	ð ”6ˆŒØŒ8Œ=˜KÐ'Ð'ØœKˆDŒMð
 	�ŠÑÔÐÐÐó    c                 ó   — d S ©N© )r   s    r!   r   zPyAccess._post_initD   s   € Øˆr#   c                 ó*  — | j         rd}t          |¦  «        ‚|\  }}|dk     r
| j        |z   }|dk     r
| j        |z   }|                      ||f¦  «        \  }}| j        j        dv r˜t          |t          t          f¦  «        r|t          |¦  «        dv rk| j        j        dk    r't          |¦  «        dk    r|d         nd}|d	d…         }| j                             || j        ¦  «        }| j        j        dk    r||f}|                      |||¦  «        S )
a0  
        Modifies the pixel at x,y. The color is given as a single
        numerical value for single band images, and a tuple for
        multi-band images

        :param xy: The pixel coordinate, given as (x, y). See
           :ref:`coordinate-system`.
        :param color: The pixel value.
        z%Attempt to putpixel a read only imager   r   )é   é   r   r)   r(   éÿ   N)r   Ú
ValueErrorr   r   Úcheck_xyr   r   Ú
isinstanceÚlistÚtupleÚlenr   Úgetcolorr   Ú	set_pixel)r   ÚxyÚcolorÚmsgÚxÚyÚalphas          r!   Ú__setitem__zPyAccess.__setitem__G   s!  € ð Œ=ð 	"Ø9ˆCÝ˜S‘/”/Ð!Ø‰ˆˆAØˆqŠ5ˆ5Ø”
˜Q‘ˆAØˆqŠ5ˆ5Ø”
˜Q‘ˆAØ—’  1˜vÑ&Ô&‰ˆˆAð ŒHŒM˜[Ð(Ð(Ý˜5¥4­ -Ñ0Ô0ð )å�E‘
”
˜fÐ$Ð$ð ŒxŒ} Ò$Ð$Ý$'¨¡J¤J°!¢O O˜˜aœ˜¸�Ø˜b˜q˜bœ	�Ø”M×*Ò*¨5°$´)Ñ<Ô<ˆEØŒxŒ} Ò$Ð$Ø ˜�à�~Š~˜a  EÑ*Ô*Ð*r#   c                 ó¬   — |\  }}|dk     r
| j         |z   }|dk     r
| j        |z   }|                      ||f¦  «        \  }}|                      ||¦  «        S )aq  
        Returns the pixel at x,y. The pixel is returned as a single
        value for single band images or a tuple for multiple band
        images

        :param xy: The pixel coordinate, given as (x, y). See
          :ref:`coordinate-system`.
        :returns: a pixel value for single band images, a tuple of
          pixel values for multiband images.
        r   )r   r   r,   Ú	get_pixel)r   r3   r6   r7   s       r!   Ú__getitem__zPyAccess.__getitem__j   sb   € ð ‰ˆˆAØˆqŠ5ˆ5Ø”
˜Q‘ˆAØˆqŠ5ˆ5Ø”
˜Q‘ˆAØ—’  1˜vÑ&Ô&‰ˆˆAØ�~Š~˜a Ñ#Ô#Ð#r#   c                 ó„   — |\  }}d|cxk    r| j         k     rn nd|cxk    r| j        k     sn d}t          |¦  «        ‚|S )Nr   zpixel location out of range)r   r   r+   )r   r3   r6   r7   r5   s        r!   r,   zPyAccess.check_xy€   se   € Ø‰ˆˆAØ�QÐ#Ð#Ò#Ð#˜œÒ#Ð#Ð#Ð#Ð#¨¨QÐ(;Ð(;Ò(;Ð(;°´Ò(;Ð(;Ð(;Ð(;Ø/ˆCÝ˜S‘/”/Ð!Øˆ	r#   N©F)
Ú__name__Ú
__module__Ú__qualname__r"   r   r9   r<   ÚputpixelÚgetpixelr,   r&   r#   r!   r   r   0   sq   € € € € € ðð ð ð ð&ð ð ð!+ð !+ð !+ðF$ð $ð $ð& €HØ€Hðð ð ð ð r#   r   c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )Ú_PyAccess32_2z7PA, LA, stored in first and last bytes of a 32 bit wordc                 óP   — t                                d| j        ¦  «        | _        d S ©Nzstruct Pixel_RGBA **©r   r   r
   Úpixels©r   ÚargsÚkwargss      r!   r   z_PyAccess32_2._post_init‹   ó   € Ý—h’hÐ5°t´|ÑDÔDˆŒˆˆr#   c                 óD   — | j         |         |         }|j        |j        fS r%   )rI   ÚrÚa©r   r6   r7   Úpixels       r!   r;   z_PyAccess32_2.get_pixelŽ   s!   € Ø”˜A”˜qÔ!ˆØŒw˜œÐÐr#   c                 ó˜   — | j         |         |         }t          |d         d¦  «        |_        t          |d         d¦  «        |_        d S )Nr   r*   r   )rI   ÚminrO   rP   ©r   r6   r7   r4   rR   s        r!   r2   z_PyAccess32_2.set_pixel’   s@   € Ø”˜A”˜qÔ!ˆå�e˜A”h Ñ$Ô$ˆŒÝ�e˜A”h Ñ$Ô$ˆŒˆˆr#   N©r?   r@   rA   Ú__doc__r   r;   r2   r&   r#   r!   rE   rE   ˆ   sJ   € € € € € ØAÐAðEð Eð Eð ð  ð  ð%ð %ð %ð %ð %r#   rE   c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )Ú_PyAccess32_3zARGB and friends, stored in the first three bytes of a 32 bit wordc                 óP   — t                                d| j        ¦  «        | _        d S rG   rH   rJ   s      r!   r   z_PyAccess32_3._post_initœ   rM   r#   c                 óP   — | j         |         |         }|j        |j        |j        fS r%   )rI   rO   ÚgÚbrQ   s       r!   r;   z_PyAccess32_3.get_pixelŸ   s%   € Ø”˜A”˜qÔ!ˆØŒw˜œ ¤Ð(Ð(r#   c                 óÜ   — | j         |         |         }t          |d         d¦  «        |_        t          |d         d¦  «        |_        t          |d         d¦  «        |_        d|_        d S )Nr   r*   r   é   ©rI   rT   rO   r\   r]   rP   rU   s        r!   r2   z_PyAccess32_3.set_pixel£   s\   € Ø”˜A”˜qÔ!ˆå�e˜A”h Ñ$Ô$ˆŒÝ�e˜A”h Ñ$Ô$ˆŒÝ�e˜A”h Ñ$Ô$ˆŒØˆŒˆˆr#   NrV   r&   r#   r!   rY   rY   ™   sJ   € € € € € ØKÐKðEð Eð Eð)ð )ð )ðð ð ð ð r#   rY   c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )Ú_PyAccess32_4z&RGBA etc, all 4 bytes of a 32 bit wordc                 óP   — t                                d| j        ¦  «        | _        d S rG   rH   rJ   s      r!   r   z_PyAccess32_4._post_init¯   rM   r#   c                 ó\   — | j         |         |         }|j        |j        |j        |j        fS r%   )rI   rO   r\   r]   rP   rQ   s       r!   r;   z_PyAccess32_4.get_pixel²   s)   € Ø”˜A”˜qÔ!ˆØŒw˜œ ¤¨%¬'Ð1Ð1r#   c                 ó  — | j         |         |         }t          |d         d¦  «        |_        t          |d         d¦  «        |_        t          |d         d¦  «        |_        t          |d         d¦  «        |_        d S )Nr   r*   r   r_   r(   r`   rU   s        r!   r2   z_PyAccess32_4.set_pixel¶   sj   € Ø”˜A”˜qÔ!ˆå�e˜A”h Ñ$Ô$ˆŒÝ�e˜A”h Ñ$Ô$ˆŒÝ�e˜A”h Ñ$Ô$ˆŒÝ�e˜A”h Ñ$Ô$ˆŒˆˆr#   NrV   r&   r#   r!   rb   rb   ¬   sJ   € € € € € Ø0Ð0ðEð Eð Eð2ð 2ð 2ð%ð %ð %ð %ð %r#   rb   c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )Ú
_PyAccess8z%1, L, P, 8 bit images stored as uint8c                 ó   — | j         | _        d S r%   )r	   rI   rJ   s      r!   r   z_PyAccess8._post_initÂ   s   € Ø”kˆŒˆˆr#   c                 ó(   — | j         |         |         S r%   ©rI   ©r   r6   r7   s      r!   r;   z_PyAccess8.get_pixelÅ   ó   € ØŒ{˜1Œ~˜aÔ Ð r#   c                 ó®   — 	 t          |d¦  «        | j        |         |<   d S # t          $ r( t          |d         d¦  «        | j        |         |<   Y d S w xY w)Nr*   r   ©rT   rI   Ú	TypeError©r   r6   r7   r4   s       r!   r2   z_PyAccess8.set_pixelÈ   sg   € ð	3å # E¨3¡¤ˆDŒK˜ŒN˜1ÑÐÐøÝð 	3ð 	3ð 	3å # E¨!¤H¨cÑ 2Ô 2ˆDŒK˜ŒN˜1ÑÐÐÐð	3øøøó   ‚" ¢.AÁANrV   r&   r#   r!   rg   rg   ¿   sG   € € € € € Ø/Ð/ð"ð "ð "ð!ð !ð !ð3ð 3ð 3ð 3ð 3r#   rg   c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )Ú_PyAccessI16_Nz0I;16 access, native bitendian without conversionc                 óP   — t                                d| j        ¦  «        | _        d S )Nzunsigned short **©r   r   r   rI   rJ   s      r!   r   z_PyAccessI16_N._post_initÔ   s   € Ý—h’hÐ2°D´JÑ?Ô?ˆŒˆˆr#   c                 ó(   — | j         |         |         S r%   rj   rk   s      r!   r;   z_PyAccessI16_N.get_pixel×   rl   r#   c                 ó®   — 	 t          |d¦  «        | j        |         |<   d S # t          $ r( t          |d         d¦  «        | j        |         |<   Y d S w xY w)Néÿÿ  r   rn   rp   s       r!   r2   z_PyAccessI16_N.set_pixelÚ   si   € ð	5å # E¨5Ñ 1Ô 1ˆDŒK˜ŒN˜1ÑÐÐøÝð 	5ð 	5ð 	5å # E¨!¤H¨eÑ 4Ô 4ˆDŒK˜ŒN˜1ÑÐÐÐð	5øøørq   NrV   r&   r#   r!   rs   rs   Ñ   sJ   € € € € € Ø:Ð:ð@ð @ð @ð!ð !ð !ð5ð 5ð 5ð 5ð 5r#   rs   c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )Ú_PyAccessI16_LzI;16L access, with conversionc                 óP   — t                                d| j        ¦  «        | _        d S ©Nzstruct Pixel_I16 **ru   rJ   s      r!   r   z_PyAccessI16_L._post_initæ   ó   € Ý—h’hÐ4°d´jÑAÔAˆŒˆˆr#   c                 óL   — | j         |         |         }|j        |j        dz  z   S ©Né   ©rI   ÚlrO   rQ   s       r!   r;   z_PyAccessI16_L.get_pixelé   s%   € Ø”˜A”˜qÔ!ˆØŒw˜œ 3™Ñ&Ð&r#   c                 óÄ   — | j         |         |         }	 t          |d¦  «        }n&# t          $ r t          |d         d¦  «        }Y nw xY w|dz  |_        |dz	  |_        d S )Nrx   r   r*   é   )rI   rT   ro   r‚   rO   rU   s        r!   r2   z_PyAccessI16_L.set_pixelí   sv   € Ø”˜A”˜qÔ!ˆð	)Ý˜˜uÑ%Ô%ˆEˆEøÝð 	)ð 	)ð 	)Ý˜˜aœ %Ñ(Ô(ˆEˆEˆEð	)øøøð ˜$‘,ˆŒØ˜1‘*ˆŒˆˆó   •& ¦ A	ÁA	NrV   r&   r#   r!   rz   rz   ã   sJ   € € € € € Ø'Ð'ðBð Bð Bð'ð 'ð 'ðð ð ð ð r#   rz   c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )Ú_PyAccessI16_BzI;16B access, with conversionc                 óP   — t                                d| j        ¦  «        | _        d S r|   ru   rJ   s      r!   r   z_PyAccessI16_B._post_initû   r}   r#   c                 óL   — | j         |         |         }|j        dz  |j        z   S r   r�   rQ   s       r!   r;   z_PyAccessI16_B.get_pixelþ   s%   € Ø”˜A”˜qÔ!ˆØŒw˜‰}˜uœwÑ&Ð&r#   c                 óÄ   — | j         |         |         }	 t          |d¦  «        }n&# t          $ r t          |d         d¦  «        }Y nw xY w|dz	  |_        |dz  |_        d S )Nrx   r   r„   r*   )rI   rT   Ú	Exceptionr‚   rO   rU   s        r!   r2   z_PyAccessI16_B.set_pixel  sv   € Ø”˜A”˜qÔ!ˆð	)Ý˜˜uÑ%Ô%ˆEˆEøÝð 	)ð 	)ð 	)Ý˜˜aœ %Ñ(Ô(ˆEˆEˆEð	)øøøð ˜1‘*ˆŒØ˜$‘,ˆŒˆˆr…   NrV   r&   r#   r!   r‡   r‡   ø   sJ   € € € € € Ø'Ð'ðBð Bð Bð'ð 'ð 'ðð ð ð ð r#   r‡   c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )Ú_PyAccessI32_Nz"Signed Int32 access, native endianc                 ó   — | j         | _        d S r%   ©r
   rI   rJ   s      r!   r   z_PyAccessI32_N._post_init  ó   € Ø”lˆŒˆˆr#   c                 ó(   — | j         |         |         S r%   rj   rk   s      r!   r;   z_PyAccessI32_N.get_pixel  rl   r#   c                 ó&   — || j         |         |<   d S r%   rj   rp   s       r!   r2   z_PyAccessI32_N.set_pixel  s   € Ø!ˆŒ�AŒ�qÑÐÐr#   NrV   r&   r#   r!   r�   r�     sG   € € € € € Ø,Ð,ð#ð #ð #ð!ð !ð !ð"ð "ð "ð "ð "r#   r�   c                   ó*   — e Zd ZdZd„ Zd„ Zd„ Zd„ ZdS )Ú_PyAccessI32_Swapz,I;32L/B access, with byteswapping conversionc                 ó   — | j         | _        d S r%   r�   rJ   s      r!   r   z_PyAccessI32_Swap._post_init  r�   r#   c                 ó  — t                                d|¦  «        }t                                d|¦  «        }|d         |d         |d         |d         f\  |d<   |d<   |d<   |d<   t                                d|¦  «        d         S )Nzint *zunsigned char *r(   r_   r   r   )r   Únewr   )r   ÚiÚorigÚcharss       r!   Úreversez_PyAccessI32_Swap.reverse   sz   € Ý�wŠw�w Ñ"Ô"ˆÝ—’Ð*¨DÑ1Ô1ˆØ16°q´¸5À¼8ÀUÈ1ÄXÈuÐUVÌxÐ1WÑ.ˆˆa‰�%˜‘(˜E !™H e¨A¡hÝ�xŠx˜ Ñ'Ô'¨Ô*Ð*r#   c                 óN   — |                       | j        |         |         ¦  «        S r%   ©r›   rI   rk   s      r!   r;   z_PyAccessI32_Swap.get_pixel&  s   € Ø�|Š|˜DœK¨œN¨1Ô-Ñ.Ô.Ð.r#   c                 óL   — |                       |¦  «        | j        |         |<   d S r%   r�   rp   s       r!   r2   z_PyAccessI32_Swap.set_pixel)  s$   € Ø ŸLšL¨Ñ/Ô/ˆŒ�AŒ�qÑÐÐr#   N)r?   r@   rA   rW   r   r›   r;   r2   r&   r#   r!   r”   r”     sV   € € € € € Ø6Ð6ð#ð #ð #ð+ð +ð +ð/ð /ð /ð0ð 0ð 0ð 0ð 0r#   r”   c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )Ú
_PyAccessFz32 bit float accessc                 óP   — t                                d| j        ¦  «        | _        d S )Nzfloat **rH   rJ   s      r!   r   z_PyAccessF._post_init0  s   € Ý—h’h˜z¨4¬<Ñ8Ô8ˆŒˆˆr#   c                 ó(   — | j         |         |         S r%   rj   rk   s      r!   r;   z_PyAccessF.get_pixel3  rl   r#   c                 óv   — 	 || j         |         |<   d S # t          $ r |d         | j         |         |<   Y d S w xY w)Nr   )rI   ro   rp   s       r!   r2   z_PyAccessF.set_pixel6  sU   € ð	)à %ˆDŒK˜ŒN˜1ÑÐÐøÝð 	)ð 	)ð 	)à % a¤ˆDŒK˜ŒN˜1ÑÐÐÐð	)øøøs   ‚ ” 8·8NrV   r&   r#   r!   r    r    -  sG   € € € € € ØÐð9ð 9ð 9ð!ð !ð !ð)ð )ð )ð )ð )r#   r    Ú1ÚLr   ÚLAÚLar   ÚRGBÚLABÚHSVÚYCbCrÚRGBAÚRGBaÚRGBXÚCMYKÚFÚIÚlittlezI;16zI;16LzI;16BzI;32LzI;32BFc                 ó¢   — t                                | j        d ¦  «        }|s"t                               d| j        ¦  «         d S  || |¦  «        S )NzPyAccess Not Implemented: %s)Úmode_mapÚgetr   ÚloggerÚdebug)r   r   Úaccess_types      r!   r—   r—   b  sM   € Ý—,’,˜sœx¨Ñ.Ô.€KØð Ý�ŠÐ3°S´XÑ>Ô>Ð>ØˆtØˆ;�s˜HÑ%Ô%Ð%r#   r>   )ÚloggingÚsysÚcffir   Údefsr   ÚcdefÚImportErrorÚexÚ_utilr   Ú	getLoggerr?   r¶   r   rE   rY   rb   rg   rs   rz   r‡   r�   r”   r    r´   Ú	byteorderr—   r&   r#   r!   ú<module>rÃ      sæ  ðð, €€€Ø 
€
€
€
ð"ØÐÐÐÐÐð€Dð ˆ#‰%Œ%€CØ‡H‚HˆT�N„N€N€NøØð "ð "ð "ð %Ð$Ð$Ð$Ð$Ð$à�˜bÑ!Ô!Ð!€Cˆ#ˆ#ˆ#ˆ#ˆ#ˆ#øøøøð"øøøð 
ˆÔ	˜8Ñ	$Ô	$€ðUð Uð Uð Uð Uñ Uô Uð Uðp%ð %ð %ð %ð %�Hñ %ô %ð %ð"ð ð ð ð �Hñ ô ð ð&%ð %ð %ð %ð %�Hñ %ô %ð %ð&3ð 3ð 3ð 3ð 3�ñ 3ô 3ð 3ð$5ð 5ð 5ð 5ð 5�Xñ 5ô 5ð 5ð$ð ð ð ð �Xñ ô ð ð*ð ð ð ð �Xñ ô ð ð*
"ð 
"ð 
"ð 
"ð 
"�Xñ 
"ô 
"ð 
"ð0ð 0ð 0ð 0ð 0˜ñ 0ô 0ð 0ð&)ð )ð )ð )ð )�ñ )ô )ð )ð$Øˆðàˆðð ˆðð 	ˆ-ð	ð
 	ˆ-ðð 	ˆ-ðð 
ˆ=ðð 
ˆ=ðð 
ˆ=ðð ˆ]ðð ˆMðð ˆMðð ˆMðð ˆMðð ˆðð  ˆð!€ð& „=�HÒÐØ%€HˆVÑØ&€HˆWÑØ&€HˆWÑà&€HˆWÑØ)€HˆWÑÐà%€HˆVÑØ&€HˆWÑØ&€HˆWÑà)€HˆWÑØ&€HˆWÑð&ð &ð &ð &ð &ð &s   Š'2 ²A·AÁA