§
    œ"²ch-  ã                   ó€  — d dl Z d dlmZ d dlmZmZ ddlmZmZm	Z	m
Z
 ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ dZd„ Zd„ Z G d„ d¦  «        Z G d„ de	j	        ¦  «        Z ej        ej        ee¦  «          ej        ej        e¦  «          ej        ej        d¦  «          ej        ej        d¦  «         dS )é    N)ÚBytesIO)ÚceilÚlogé   )ÚBmpImagePluginÚImageÚ	ImageFileÚPngImagePlugin)Úi16le)Úi32le)Úo8)Úo16le)Úo32les      c           	      ó	  — |                      t          ¦  «         | j                             d¦  «        dk    }| j                             dg d¢¦  «        }g }| g| j                             dg ¦  «        z   }| j        \  }}t          t          |¦  «        ¦  «        D �])}	|	d         |k    s$|	d         |k    s|	d         dk    s|	d         dk    rŒ4|D ]¢}
|
j        |	k    rŒ|                     |
¦  «         |r|t          j	        |
j
                 d         }|g}|D ]Y}|j        |	k    rŒt          j	        |j
                 d         }||vr*|                     |¦  «         |                     |¦  «         ŒZ nP|
                     ¦   «         }|                     |	t          j        j        d ¬	¦  «         |                     |¦  «         �Œ+|                      t!          t#          |¦  «        ¦  «        ¦  «         |                     ¦   «         t#          |¦  «        d
z  z   }|D �]i}|j        \  }}|                      t'          |dk     r|nd¦  «        ¦  «         |                      t'          |dk     r|nd¦  «        ¦  «         |rt          j	        |j
                 dd …         nd\  }}|                      t'          |¦  «        ¦  «         |                      d¦  «         |                      d¦  «         |                      t!          |¦  «        ¦  «         t)          ¦   «         }|rP|                     |d¦  «         |dk    r3t          j        d|	¦  «        }t/          j        ||dd|	z   ddfg¦  «         n|                     |d¦  «         |                     d¦  «         |                     ¦   «         }|r(|d d…         t7          |dz  ¦  «        z   |dd …         z   }t#          |¦  «        }|                      t7          |¦  «        ¦  «         |                      t7          |¦  «        ¦  «         |                     ¦   «         }|                     |¦  «         |                      |¦  «         ||z   }|                     |¦  «         �Œkd S )NÚbitmap_formatÚbmpÚsizes))é   r   )é   r   )é    r   )é0   r   )é@   r   )é€   r   )é   r   Úappend_imagesr   r   r   )Úreducing_gapr   )r   r   ó    s     Údibr   Ú1Úraw©r   r   )r   r   éÿÿÿÿÚpngé   é   é   )ÚwriteÚ_MAGICÚencoderinfoÚgetÚsizeÚsortedÚsetÚappendr   ÚSAVEÚmodeÚcopyÚ	thumbnailr   Ú
ResamplingÚLANCZOSÚo16ÚlenÚtellr   r   ÚsaveÚnewr	   Ú_saveÚseekÚreadÚo32)ÚimÚfpÚfilenamer   r   ÚframesÚprovided_imsÚwidthÚheightr+   Úprovided_imÚbitsÚ	bits_usedÚother_imÚframeÚoffsetÚcolorsÚimage_ioÚand_maskÚimage_bytesÚ	bytes_lenÚcurrents                         ú4/usr/lib/python3/dist-packages/PIL/IcoImagePlugin.pyr:   r:   *   s\  € Ø‡H‚H�VÑÔÐØ
Œ.×
Ò
˜_Ñ
-Ô
-°Ò
6€CØŒN×ÒØØRÐRÐRñô €Eð €FØ�4˜"œ.×,Ò,¨_¸bÑAÔAÑA€LØ”G�M€Eˆ6Ý•s˜5‘z”zÑ"Ô"ð !ñ !ˆØ�Œ7�UŠ?ˆ?˜d 1œg¨Ò.Ð.°$°q´'¸C²-°-À4ÈÄ7ÈSÂ=À=Øà'ð 	!ð 	!ˆKØÔ 4Ò'Ð'ØØ�MŠM˜+Ñ&Ô&Ð&Øð /Ý%Ô*¨;Ô+;Ô<¸QÔ?�Ø!˜F�	Ø ,ð /ð /�HØ”}¨Ò,Ð,Ø Ý)Ô.¨x¬}Ô=¸aÔ@�DØ 9Ð,Ð,ð Ÿš hÑ/Ô/Ð/Ø!×(Ò(¨Ñ.Ô.Ð.øØˆEð  ×$Ò$Ñ&Ô&ˆEØ�OŠO˜D¥%Ô"2Ô":ÈˆOÑNÔNÐNØ�MŠM˜%Ñ Ô Ð ùØ‡H‚H�S•�V‘”ÑÔÑÔÐØ�WŠW‰YŒY�˜V™œ rÑ)Ñ)€FØð "ñ "ˆØœ
‰ˆˆvà
�Š•˜U Sš[˜[�E�E¨aÑ0Ô0Ñ1Ô1Ð1Ø
�Š•˜f sšl˜l�F�F°Ñ2Ô2Ñ3Ô3Ð3à>AÐN•~Ô*¨5¬:Ô6°q°r°rÔ:Ð:Àw‰ˆˆfØ
�Š•�F‘”ÑÔÐØ
�Š�‰ŒˆØ
�Š�ÑÔÐØ
�Š•�T‘”ÑÔÐå‘9”9ˆØð 		(Ø�JŠJ�x Ñ'Ô'Ð'à�rŠzˆzÝ œ9 S¨$Ñ/Ô/�Ý”Ø˜h¨%°¸$±ÀÀ<Ð)PÐ(Qñô ð øð �JŠJ�x Ñ'Ô'Ð'Ø�Š�aÑÔÐØ—m’m‘o”oˆØð 	OØ% b q bœ/­C°¸±
©O¬OÑ;¸kÈ"È#È#Ô>NÑNˆKÝ˜Ñ$Ô$ˆ	Ø
�Š•�Y‘”Ñ Ô Ð Ø
�Š•�V‘”ÑÔÐØ—'’'‘)”)ˆØ
�Š�‰ŒˆØ
�Š�ÑÔÐØ˜)Ñ#ˆØ
�Š�ÑÔÐÑðE"ð "ó    c                 ó(   — | d d…         t           k    S )Né   )r(   )Úprefixs    rQ   Ú_acceptrV   u   s   € Ø�"�1�"Œ:�ÒÐrR   c                   ó0   — e Zd Zd„ Zd„ Zdd„Zdd„Zd„ ZdS )	ÚIcoFilec                 óˆ  — |                      d¦  «        }t          |¦  «        sd}t          |¦  «        ‚|| _        g | _        t          |d¦  «        | _        t          | j        ¦  «        D �]}|                      d¦  «        }|d         |d         |d         |d         t          |d¦  «        t          |d¦  «        t          |d	¦  «        t          |d
¦  «        dœ}dD ]}||         sd||<   Œ|d         p0|d         dk    o"t          t          |d         d¦  «        ¦  «        pd|d<   |d         |d         f|d<   |d         |d         z  |d<   | j                             |¦  «         �Œt          | j        d„ ¬¦  «        | _        t          | j        d„ ¬¦  «        | _        | j                             ¦   «          dS )zL
        Parse image from file-like object containing ico file data
        é   znot an ICO filerT   r   r   r   r%   é   r$   r&   )rC   rD   Únb_colorÚreservedÚplanesÚbppr+   rJ   ©rC   rD   r   r_   r\   Úcolor_depthrC   rD   ÚdimÚsquarec                 ó   — | d         S )Nra   © ©Úxs    rQ   ú<lambda>z"IcoFile.__init__.<locals>.<lambda>¯   s   € °a¸Ô6F€ rR   )Úkeyc                 ó   — | d         S )Nrc   re   rf   s    rQ   rh   z"IcoFile.__init__.<locals>.<lambda>²   s
   € °a¸´k€ rR   N)r<   rV   ÚSyntaxErrorÚbufÚentryÚi16Únb_itemsÚrangeÚi32r   r   r.   r,   Úreverse)Úselfrl   ÚsÚmsgÚiÚicon_headerÚjs          rQ   Ú__init__zIcoFile.__init__z   sæ  € ð �HŠH�Q‰KŒKˆÝ�q‰zŒzð 	#Ø#ˆCÝ˜cÑ"Ô"Ð"àˆŒØˆŒ
õ ˜A˜q™	œ	ˆŒõ �t”}Ñ%Ô%ð !	+ñ !	+ˆAØ—’˜‘”ˆAð ˜1œØ˜Aœ$Ø˜aœDØ˜aœDÝ˜a ™)œ)Ý˜1˜a‘y”yÝ˜A˜q™	œ	Ý˜a ™*œ*ð	ð 	ˆKð )ð )ð )�Ø" 1”~ð )Ø%(�K ‘Nøð
 ˜EÔ"ð à 
Ô+¨qÒ0ð >Ý�S ¨ZÔ!8¸!Ñ<Ô<Ñ=Ô=ðð
 ð ˜Ñ&ð #.¨gÔ"6¸ÀHÔ8MÐ!NˆK˜ÑØ$/°Ô$8¸;ÀxÔ;PÑ$PˆK˜Ñ!àŒJ×Ò˜kÑ*Ô*Ð*Ñ*å˜DœJÐ,FÐ,FÐGÑGÔGˆŒ
õ ˜DœJÐ,AÐ,AÐBÑBÔBˆŒ
ØŒ
×ÒÑÔÐÐÐrR   c                 ó$   — d„ | j         D ¦   «         S )zJ
        Get a list of all available icon sizes and color depths.
        c                 ó.   — h | ]}|d          |d         f’ŒS r`   re   )Ú.0Úhs     rQ   ú	<setcomp>z IcoFile.sizes.<locals>.<setcomp>¹   s%   € Ð>Ð>Ð>¨a��7”˜Q˜xœ[Ð)Ð>Ð>Ð>rR   )rm   ©rs   s    rQ   r   zIcoFile.sizesµ   s   € ð ?Ð>°4´:Ð>Ñ>Ô>Ð>rR   Fc                 óz   — t          | j        ¦  «        D ]%\  }}||d         k    r|du s||d         k    r|c S Œ&dS )Nrb   Fra   r   )Ú	enumeraterm   )rs   r+   r_   rv   r}   s        rQ   ÚgetentryindexzIcoFile.getentryindex»   sT   € Ý ¤
Ñ+Ô+ð 	ð 	‰FˆQ�Ø�q˜”xÒÐ S¨E \ \°S¸A¸mÔ<LÒ5LÐ5LØ���øØˆqrR   c                 óT   — |                       |                      ||¦  «        ¦  «        S )z,
        Get an image from the icon
        )rI   r‚   )rs   r+   r_   s      rQ   ÚgetimagezIcoFile.getimageÁ   s&   € ð �zŠz˜$×,Ò,¨T°3Ñ7Ô7Ñ8Ô8Ð8rR   c                 ód  — | j         |         }| j                             |d         ¦  «         | j                             d¦  «        }| j                             |d         ¦  «         |dd…         t          j        k    r4t	          j        | j        ¦  «        }t          j        |j	        ¦  «         �nüt          j        | j        ¦  «        }t          j        |j	        ¦  «         |j	        d         t          |j	        d         dz  ¦  «        f|_        |j        d         \  }}}}|d|j	        z   ||f|j        d<   |d         }	d	|	k    rw| j                             |¦  «         | j                             |j	        d         |j	        d         z  d
z  ¦  «        ddd
…         }
t          j        d|j	        |
dd¦  «        }nÄ|j	        d         }|d	z  dk    r|d	|j	        d         d	z  z
  z  }t          ||j	        d         z  dz  ¦  «        }|d         |d         z   |z
  }| j                             |¦  «         | j                             |¦  «        }t          j        d|j	        |ddt          |dz  ¦  «        df¦  «        }|                     d¦  «        }|                     |¦  «         |S )z-
        Get an image from frame idx
        rJ   r$   Nr   r   r%   r!   r_   r   rT   r[   ÚLr    )r†   r   r"   r+   r   z1;Ir"   ÚRGBA)rm   rl   r;   r<   r
   r(   ÚPngImageFiler   Ú_decompression_bomb_checkr+   r   ÚDibImageFileÚintÚ_sizeÚtileÚ
frombufferÚconvertÚputalpha)rs   ÚidxÚheaderÚdatar>   ÚdÚeÚoÚar_   Úalpha_bytesÚmaskÚwÚtotal_bytesÚand_mask_offsetÚ	mask_datas                   rQ   rI   zIcoFile.frameÇ   s‚  € ð
 ”˜C”ˆàŒ�Š�f˜XÔ&Ñ'Ô'Ð'ØŒx�}Š}˜QÑÔˆØŒ�Š�f˜XÔ&Ñ'Ô'Ð'à���Œ8•~Ô,Ò,Ð,åÔ,¨T¬XÑ6Ô6ˆBÝÔ+¨B¬GÑ4Ô4Ð4Ñ4õ  Ô,¨T¬XÑ6Ô6ˆBÝÔ+¨B¬GÑ4Ô4Ð4ð œ œ
¥C¨¬°¬
°Q©Ñ$7Ô$7Ð8ˆBŒHØœ œ‰JˆAˆq�!�QØ˜F R¤WÑ,¨a°Ð2ˆBŒG�A‰Jð ˜”-ˆCØ�SŠyˆyð ”—’˜aÑ Ô Ð à"œhŸmšm¨B¬G°A¬J¸¼À¼Ñ,CÀaÑ,GÑHÔHÈÈÈAÈÔN�õ Ô'ØØ”GØØØ ñô ��ð ”G˜A”J�Ø˜‘F˜a’<�<à˜˜rœw qœz¨B™Ñ/Ñ/�Aõ
 " 1 r¤w¨q¤z¡>°QÑ"6Ñ7Ô7�Ø"(¨Ô"2°V¸F´^Ñ"CÀkÑ"Q�à”—’˜oÑ.Ô.Ð.Ø œHŸMšM¨+Ñ6Ô6�	õ Ô'ØØ”GØØØ�C  A¡™JœJ¨Ð+ñô �ð —’˜FÑ#Ô#ˆBØ�KŠK˜ÑÔÐàˆ	rR   N)F)Ú__name__Ú
__module__Ú__qualname__ry   r   r‚   r„   rI   re   rR   rQ   rX   rX   y   so   € € € € € ð9ð 9ð 9ðv?ð ?ð ?ðð ð ð ð9ð 9ð 9ð 9ðMð Mð Mð Mð MrR   rX   c                   ób   — e Zd ZdZdZdZd„ Zed„ ¦   «         Zej	        d„ ¦   «         Zd„ Z
d„ Zd	S )
ÚIcoImageFileaý  
    PIL read-only image support for Microsoft Windows .ico files.

    By default the largest resolution image in the file will be loaded. This
    can be changed by altering the 'size' attribute before calling 'load'.

    The info dictionary has a key 'sizes' that is a list of the sizes available
    in the icon file.

    Handles classic, XP and Vista icon formats.

    When saving, PNG compression is used. Support for this was only added in
    Windows Vista. If you are unable to view the icon in Windows, convert the
    image to "RGBA" mode before saving.

    This plugin is a refactored version of Win32IconImagePlugin by Bryan Davis
    <casadebender@gmail.com>.
    https://code.google.com/archive/p/casadebender/wikis/Win32IconImagePlugin.wiki
    ÚICOzWindows Iconc                 óÜ   — t          | j        ¦  «        | _        | j                             ¦   «         | j        d<   | j        j        d         d         | _        |                      ¦   «          d S )Nr   r   rb   )rX   r?   Úicor   Úinform   r+   Úloadr   s    rQ   Ú_openzIcoImageFile._open3  sQ   € Ý˜4œ7Ñ#Ô#ˆŒØ!œXŸ^š^Ñ-Ô-ˆŒ	�'ÑØ”H”N 1Ô% eÔ,ˆŒ	Ø�	Š	‰ŒˆˆˆrR   c                 ó   — | j         S ©N)rŒ   r   s    rQ   r+   zIcoImageFile.size9  s
   € àŒzÐrR   c                 óT   — || j         d         vrd}t          |¦  «        ‚|| _        d S )Nr   z2This is not one of the allowed sizes of this image)r¦   Ú
ValueErrorrŒ   )rs   Úvalueru   s      rQ   r+   zIcoImageFile.size=  s0   € à˜œ	 'Ô*Ð*Ð*ØFˆCÝ˜S‘/”/Ð!ØˆŒ
ˆ
ˆ
rR   c                 ó8  — | j         �4| j         j        | j        k    rt          j                             | ¦  «        S | j                             | j        ¦  «        }|                     ¦   «          |j         | _         d | _        |j        | _        |j        | j        k    r|t          j	        d¦  «         | j         
                    | j        ¦  «        }t          | j        d         ¦  «        }|j        ||<   t          |¦  «        | j        d<   |j        | _        d S d S )NzImage was not the expected sizer   )r>   r+   r   r§   r¥   r„   Úpyaccessr0   ÚwarningsÚwarnr‚   Úlistr¦   r-   )rs   r>   Úindexr   s       rQ   r§   zIcoImageFile.loadD  sê   € ØŒ7Ð 4¤7¤<°4´9Ò#<Ð#<å”;×#Ò# DÑ)Ô)Ð)ØŒX×Ò˜tœyÑ)Ô)ˆà
�Š‰	Œ	ˆ	Ø”%ˆŒØˆŒØ”GˆŒ	ØŒ7�d”iÒÐÝŒMÐ;Ñ<Ô<Ð<à”H×*Ò*¨4¬9Ñ5Ô5ˆEÝ˜œ 7Ô+Ñ,Ô,ˆEØœ7ˆE�%‰LÝ!$ U¡¤ˆDŒI�gÑàœˆDŒIˆIˆIð  ÐrR   c                 ó   — d S rª   re   r   s    rQ   Ú	load_seekzIcoImageFile.load_seekX  s	   € ð 	ˆrR   N)rž   rŸ   r    Ú__doc__ÚformatÚformat_descriptionr¨   Úpropertyr+   Úsetterr§   rµ   re   rR   rQ   r¢   r¢     s�   € € € € € ðð ð( €FØ'Ððð ð ð ðð ñ „Xðð 
„[ðð ñ „[ðð ð  ð  ð(ð ð ð ð rR   r¢   z.icozimage/x-icon)r°   Úior   Úmathr   r   Ú r   r   r	   r
   Ú_binaryr   rn   r   rq   r   r   r5   r   r=   r(   r:   rV   rX   r¢   Úregister_openr·   Úregister_saveÚregister_extensionÚregister_mimere   rR   rQ   ú<module>rÃ      s²  ðð2 €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ð Ð à >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ø !Ð !Ð !Ð !Ð !Ð !Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø !Ð !Ð !Ð !Ð !Ð !ð
 
€ðHð Hð HðV ð  ð  ð[ð [ð [ð [ð [ñ [ô [ð [ðD@ð @ð @ð @ð @�9Ô&ñ @ô @ð @ðN €Ô �LÔ'¨°wÑ ?Ô ?Ð ?Ø €Ô �LÔ'¨Ñ /Ô /Ð /Ø €Ô ˜Ô,¨fÑ 5Ô 5Ð 5à €Ô �LÔ'¨Ñ 8Ô 8Ð 8Ð 8Ð 8rR   