Ë
    ^ãj6(  ã                  óJ  — d dl mZ ddhZd dlZd dlZd dlZddlmZmZ ddl	m
Z
 dZerd d	lmZmZ d!d
„Zg d¢Zd"d„Zd#d„Z G d„ dej                  «      Zd$d%d„Zd&d„Zd'd„Zd'd„Z ej0                  ej2                  e«        ej4                  ej2                  e«       edk(  �rq eej:                  «      dk  r ed«        ej>                  «        ej:                  d   Z  ee «      s ed«        ej>                  «         ejB                  e «      5 Z" ede"› �«        ede"j2                  › �«        ede"jF                  › �«        ede"jH                  › �«        edd¬«        ee"jK                  «       «        eej:                  «      dkD  rxej:                  d   Z&e"jO                  ejP                  jR                  «      Z* edejV                  jY                  e «      › d e&› d�«       e*j[                  e&ej2                  «       ddd«       yy# 1 sw Y   yxY w)(é    )Úannotationsz	PIL._utilÚstructNé   )ÚImageÚ	ImageFile)ÚDeferredErrorF)ÚIOÚAnyc                óX   — 	 t        | «      }| |z
  dk(  ryy# t        t        f$ r Y yw xY w)Nr   r   )ÚintÚ
ValueErrorÚOverflowError)ÚfÚis     úW/var/www/html/metafoliadorv2/venv/lib/python3.12/site-packages/PIL/SpiderImagePlugin.pyÚisIntr   3   s8   € ðÜ�‹FˆØˆq‰5�AŠ:ØàøÜœÐ&ò Ùðús   ‚ —)¨))r   é   iõÿÿÿiôÿÿÿiëÿÿÿiêÿÿÿc                óÒ   — d| z   }dD ]  }t        ||   «      rŒ y t        |d   «      }|t        vryt        |d   «      }t        |d   «      }t        |d   «      }|||z  k7  ry|S )N©éc   )r   é   é   é   é   é   é   r   r   r   r   r   )r   r   Úiforms)ÚtÚhr   ÚiformÚlabrecÚlabbytÚlenbyts          r   ÚisSpiderHeaderr$   G   s}   € Ø�‰	€Aà&ò ˆÜ�Q�q‘T�{Ùðô ��!‘‹I€EØ”FÑØä��2‘‹Z€FÜ��2‘‹Z€FÜ��2‘‹Z€FØ�&˜6‘/Ò"Øà€Mó    c                óø   — t        | d«      5 }|j                  d«      }d d d «       t        j                  d«      }t	        |«      }|dk(  r!t        j                  d|«      }t	        |«      }|S # 1 sw Y   ŒRxY w)NÚrbé\   z>23fr   z<23f)ÚopenÚreadr   Úunpackr$   )ÚfilenameÚfpr   r   Úhdrlens        r   ÚisSpiderImager/   [   sp   € Ü	ˆh˜Ó	ð  Ø�G‰G�B‹Kˆ÷ä�‰�f˜aÓ €AÜ˜AÓ€FØ�‚{Ü�M‰M˜& !Ó$ˆÜ Ó"ˆØ€M÷ð ús   �A0Á0A9c                  óR   — e Zd ZdZdZdZdd„Zdd„Zdd„Zddd„Z	e
rdd	lmZ dd
„Zy)ÚSpiderImageFileÚSPIDERzSpider 2D imageFc                óú  — d}| j                   €J ‚| j                   j                  |«      }	 d| _        t        j                  d|«      }t        |«      }|dk(  r(d| _        t        j                  d|«      }t        |«      }|dk(  rd}t        |«      ‚	 d|z   }t        |d   «      }|dk7  rd	}t        |«      ‚t        |d
   «      t        |d   «      f| _	        t        |d   «      | _
        t        |d   «      | _        d| _        | j                  dk(  r| j                  dk(  r|}	n¬| j                  dkD  r[| j                  dk(  rLt        |d
   «      t        |d   «      z  dz  | _        || _        t        |d   «      | _        |dz  }	d| _        nB| j                  dk(  r&| j                  dkD  r|| j                  z   }	d| _
        nd}t        |«      ‚| j                  dkD  | _        | j                  rd| _        nd| _        d| _        t'        j(                  dddg| j*                  ¢­|	| j"                  «      g| _        | j                   | _        y # t        j                  $ r}d}t        |«      |‚d }~ww xY w)Nél   r   z>27fr   z<27fznot a valid Spider filer   r   znot a Spider 2D imager   r   é   é   é   é   z inconsistent stack header valueszF;32BFzF;32FÚFÚraw)r-   r*   Ú	bigendianr   r+   r$   ÚSyntaxErrorÚerrorr   Ú_sizeÚistackÚ	imgnumberÚn_framesÚimgbytesr.   Ú	stkoffsetÚis_animatedÚrawmodeÚ_moder   Ú_TileÚsizeÚtileÚ_fp)
ÚselfÚnr   r   r.   ÚmsgÚer   r    Úoffsets
             r   Ú_openzSpiderImageFile._openk   sC  € àˆØ�w‰wÐ"Ð"Ð"Ø�G‰G�L‰L˜‹Oˆð	*ØˆDŒNÜ—‘˜f aÓ(ˆAÜ# AÓ&ˆFØ˜Š{Ø!"�”Ü—M‘M &¨!Ó,�Ü'¨Ó*�Ø˜Š{Ø/�Ü! #Ó&Ð&ð ð �A‰IˆÜ�A�a‘D“	ˆØ�AŠ:Ø)ˆCÜ˜cÓ"Ð"ä˜˜2™“Z¤ Q q¡T£Ð*ˆŒ
Ü˜!˜B™%“jˆŒÜ˜Q˜r™U›ˆŒàˆŒØ�;‰;˜!Ò §¡°!Ò 3à‰FØ�[‰[˜1Š_ §¡°1Ò!4ä  "¡›J¬¨Q¨q©T«Ñ2°QÑ6ˆDŒMØ ˆDŒKÜ  "¡›JˆDŒMà˜a‘ZˆFØˆD�NØ�[‰[˜AÒ $§.¡.°1Ò"4à˜dŸn™nÑ,ˆFØˆD�Kà4ˆCÜ˜cÓ"Ð"ØŸ=™=¨1Ñ,ˆÔà�>Š>Ø#ˆD�Là"ˆDŒLØˆŒ
ä—_‘_ U¨Q°Ð,>°D·I±IÑ,>ÀÈÏÉÓUÐVˆŒ	Ø—7‘7ˆ�øôU �|‰|ò 	*Ø+ˆCÜ˜cÓ"¨Ð)ûð	*ús   ­A'I ÉI:É'I5É5I:c                ó@   — | j                   dk  ry| j                   dz
  S )Nr   r   )r@   )rK   s    r   ÚtellzSpiderImageFile.tell©   s    € Ø�>‰>˜AÒØà—>‘> AÑ%Ð%r%   c                óæ  — | j                   dk(  rd}t        |«      ‚| j                  |«      sy t        | j                  t
        «      r| j                  j                  ‚| j                  || j                  | j                  z   z  z   | _	        | j                  | _
        | j                  j                  | j                  «       | j                  «        t        j                  | j                  «       y )Nr   z#attempt to seek in a non-stack file)r?   ÚEOFErrorÚ_seek_checkÚ
isinstancerJ   r   Úexr.   rB   rC   r-   ÚseekrP   r   Ú_decompression_bomb_checkrH   )rK   ÚframerM   s      r   rX   zSpiderImageFile.seek¯   s¦   € Ø�;‰;˜!ÒØ7ˆCÜ˜3“-ÐØ×Ñ Ô&ØÜ�d—h‘h¤Ô.Ø—(‘(—+‘+ÐØŸ™ u°·±¸d¿m¹mÑ0KÑ'LÑLˆŒØ—(‘(ˆŒØ�‰�‰�T—^‘^Ô$Ø�
‰
ŒÜ×'Ñ'¨¯	©	Õ2r%   c                óÌ   ‡‡— | j                  «       }t        |d   t        «      sJ ‚|\  }}dŠ||k7  r|||z
  z  Š‰ |z  Š| j                  ˆˆfd„«      j	                  d«      S )Nr   r   c                ó   •— | ‰z  ‰z   S ©N© )r   ÚbÚms    €€r   ú<lambda>z.SpiderImageFile.convert2byte.<locals>.<lambda>Æ   s   ø€  A¨¡E¨A¡I€ r%   ÚL)Ú
getextremarV   ÚfloatÚpointÚconvert)rK   ÚdepthÚextremaÚminimumÚmaximumr_   r`   s        @@r   Úconvert2bytezSpiderImageFile.convert2byte¾   so   ù€ Ø—/‘/Ó#ˆÜ˜' !™*¤eÔ,Ð,Ð,Ø"Ñˆ�ØˆØ�gÒØ˜ 7Ñ*Ñ+ˆAØˆB�‰LˆØ�z‰zÔ-Ó.×6Ñ6°sÓ;Ð;r%   r   ©ÚImageTkc                óP   — ddl m} |j                  | j                  «       d¬«      S )Nr   rl   é   )Úpalette)Ú rm   Ú
PhotoImagerk   )rK   rm   s     r   ÚtkPhotoImagezSpiderImageFile.tkPhotoImageÌ   s$   € Ýà×!Ñ! $×"3Ñ"3Ó"5¸sÐ!ÓCÐCr%   N)ÚreturnÚNone)rt   r   )rZ   r   rt   ru   )éÿ   )rg   r   rt   úImage.Image)rt   zImageTk.PhotoImage)Ú__name__Ú
__module__Ú__qualname__ÚformatÚformat_descriptionÚ!_close_exclusive_fp_after_loadingrP   rR   rX   rk   ÚTYPE_CHECKINGrq   rm   rs   r^   r%   r   r1   r1   f   s6   „ Ø€FØ*ÐØ(-Ð%ó;ó|&ó3ô<ñ ÝôDr%   r1   c                óÀ  — | �t        | «      dk  ryg }| D ]‘  }t        j                  j                  |«      st	        d|› �«       Œ1	 t        j                  |«      5 }t        |t        «      sJ ‚|j                  «       }ddd«       |j                  d<   |j                  |«       Œ“ |S # 1 sw Y   Œ-xY w# t        $ r t        |«      st	        |› d�«       Y ŒÆw xY w)zJcreate a list of :py:class:`~PIL.Image.Image` objects for use in a montageNr   zunable to find z is not a Spider image filer,   )ÚlenÚosÚpathÚexistsÚprintr   r)   rV   r1   rk   Ú	Exceptionr/   ÚinfoÚappend)ÚfilelistÚ	byte_imgsÚimgÚimÚbyte_ims        r   ÚloadImageSeriesr�   ×   sà   € àÐœ3˜x›=¨1Ò,Øà€IØò "ˆÜ�w‰w�~‰~˜cÔ"Ü�O C 5Ð)Ô*Øð	Ü—‘˜C“ð , BÜ! "¤oÔ6Ð6Ð6ØŸ/™/Ó+�÷,ð $'ˆ�‰�ZÑ Ø×Ñ˜Õ!ð"ð Ð÷,ð ,ûô ò 	Ü  Ô%Ü˜˜Ð8Ð9Ô:Ùð	ús*   ÁB8Á#B,Â B8Â,B5	Â1B8Â8"CÃCc                óî  — | j                   \  }}t        d|«      dz  }t        d|z  «      }d|z  dk7  r|dz  }||z  }t        |dz  «      }|dk  rg S dg|z  }d|d<   t        |«      |d<   t        |«      |d	<   d|d
<   t        |«      |d<   t        |«      |d<   t        |«      |d<   t        |«      |d<   |dd  }|j	                  d«       |D �cg c]  }t        j                  d|«      ‘Œ c}S c c}w )Nr   r7   i   r   r   g        g      ð?r   r   r   r   r   r   r   )rH   Úmaxr   rd   r‡   r   Úpack)	r‹   ÚnsamÚnrowr#   r!   r"   ÚnvaluesÚhdrÚvs	            r   ÚmakeSpiderHeaderr–   ò   s  € Ø—‘�J€Dˆ$Ü��D‹\˜AÑ€FÜ�˜‘Ó€FØˆf�}˜ÒØ�!‰ˆØ�f‰_€FÜ�&˜1‘*‹o€GØ�‚|Øˆ	àˆ%�'‰/€Cð €Cˆ�FÜ�4‹[€Cˆ�FÜ�4‹[€Cˆ�FØ€Cˆ�FÜ�D‹k€Cˆ�GÜ�F‹m€Cˆ�GÜ�F‹m€Cˆ�GÜ�F‹m€Cˆ�Gð ˆaˆbˆ'€CØ‡J�Jˆs„Oà),Ö- AŒF�K‰K˜˜QÕÒ-Ð-ùÒ-s   ÃC2c           
     ó0  — | j                   dk7  r| j                  d«      } t        | «      }t        |«      dk  rd}t	        |«      ‚|j                  |«       d}t        j                  | |t        j                  dddg| j                  ¢­d|«      g«       y )Nr9   ro   zError creating Spider headerzF;32NFr:   r   )
Úmoderf   r–   r€   ÚOSErrorÚ
writelinesr   Ú_saverG   rH   )r‹   r-   r,   r”   rM   rE   s         r   r›   r›     s�   € Ø	‡w�w�#‚~Ø�Z‰Z˜‹_ˆä
˜2Ó
€CÜ
ˆ3ƒx�#‚~Ø,ˆÜ�c‹lÐð ‡M�M�#Ôà€GÜ‡O�O�B˜œYŸ_™_¨U°Q¸Ð4D¸B¿G¹GÑ4DÀaÈÓQÐRÕSr%   c                óò   — t         j                  j                  |«      d   x}rFt        |t        «      r|j                  «       n|}t        j                  t        j                  |«       t        | ||«       y )Nr   )r�   r‚   ÚsplitextrV   ÚbytesÚdecoder   Úregister_extensionr1   r{   r›   )r‹   r-   r,   Úfilename_extÚexts        r   Ú_save_spiderr£      s\   € ä—w‘w×'Ñ'¨Ó1°!Ñ4Ð4€|Ð4Ü'1°,ÄÔ'Fˆl×!Ñ!Ô#ÈLˆÜ× Ñ ¤×!7Ñ!7¸Ô=Ü	ˆ"ˆb�(Õr%   Ú__main__r   z7Syntax: python3 SpiderImagePlugin.py [infile] [outfile]z$input image must be in Spider formatzimage: zformat: zsize: zmode: z
max, min: ú )Úendzsaving a flipped version of z as )r   r
   rt   r   )r   ztuple[float, ...]rt   r   )r,   Ústrrt   r   r]   )rˆ   zlist[str] | Nonert   zlist[Image.Image] | None)r‹   rw   rt   zlist[bytes])r‹   rw   r-   z	IO[bytes]r,   zstr | bytesrt   ru   ).Ú
__future__r   Ú__lazy_modules__r�   r   Úsysrq   r   r   Ú_utilr   r~   Útypingr	   r
   r   r   r$   r/   r1   r�   r–   r›   r£   Úregister_openr{   Úregister_saverx   r€   Úargvr„   Úexitr,   r)   r‹   rH   r˜   rc   ÚoutfileÚ	transposeÚ	TransposeÚFLIP_LEFT_RIGHTÚtransposed_imr‚   ÚbasenameÚsaver^   r%   r   ú<module>r¸      s  ðõF #à Ð*Ð ã 	Û Û 
ç Ý  à€Ùßóò 
$€óó(ôiD�i×)Ñ)ô iDôbó6.ó<Tó ð €× Ñ �O×*Ñ*¨OÔ <Ø €× Ñ �O×*Ñ*¨LÔ 9àˆzÓÙ
ˆ3�8‰8ƒ}�qÒÙÐGÔHØˆ�‰Œ
à�x‰x˜‰{€HÙ˜Ô"ÙÐ4Ô5Øˆ�‰Œ
à	ˆ�‰�HÓ	ð @ Ù�˜�tˆnÔÙ�˜Ÿ™˜Ð$Ô%Ù��r—w‘w�iÐ Ô!Ù��r—w‘w�iÐ Ô!Ùˆl Õ$Ùˆb�m‰m‹oÔáˆs�x‰x‹=˜1ÒØ—h‘h˜q‘kˆGð ŸL™L¨¯©×)HÑ)HÓIˆMÙØ.¨r¯w©w×/?Ñ/?ÀÓ/IÐ.Jð KØ�Y˜að!ôð ×Ñ˜w¨×(>Ñ(>Ô?÷#@ð @ð ÷@ð @ús   ÄC8HÈH"