ó
    bÄ\jM(  ã            	      óz  • % S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKJr  S SK	J
r
  SSKJr  / rS\S'   S+S,S	 jjrS-S.S
 jjr " S S5      r " S S\5      r\R&                  S:X  a  \" \5         " S S\5      r\R&                  S:X  a  \" \5         " S S\R*                  \5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r\R&                  S;  a›  \R8                  " S 5      (       a  \" \5        \R8                  " S!5      (       a  \" \5        \R8                  " S"5      (       a  \" \5        \R8                  " S#5      (       a  \" \5        \R8                  " S$5      (       a  \" \5         " S% S&\5      r S S'KJr   \" \5        \"S(:X  at  \#" \RH                  5      S):  a  \%" S*5        \RL                  " 5         \RN                  " \RH                  S   5       r(\%" \" \(/\RH                  S)S Q76 5        SSS5        gg! \! a     Nƒf = f! , (       d  f       g= f)/é    )ÚannotationsN©Úquote)ÚAnyé   )ÚImagezlist[Viewer]Ú_viewersc                óÊ   • [        U [        5      (       a  [        U [        5      (       a  U " 5       n US:”  a  [        R                  U 5        g[        R                  SU 5        g)aü  
The :py:func:`register` function is used to register additional viewers::

    from PIL import ImageShow
    ImageShow.register(MyViewer())  # MyViewer will be used as a last resort
    ImageShow.register(MySecondViewer(), 0)  # MySecondViewer will be prioritised
    ImageShow.register(ImageShow.XVViewer(), 0)  # XVViewer will be prioritised

:param viewer: The viewer to be registered.
:param order:
    Zero or a negative integer to prepend this viewer to the list,
    a positive integer to append it.
r   N)Ú
isinstanceÚtypeÚ
issubclassÚViewerr	   ÚappendÚinsert)ÚviewerÚorders     ÚC/var/www/website/venv/lib/python3.13/site-packages/PIL/ImageShow.pyÚregisterr      sE   € ô �&œ$×Ñ¤J¨v´v×$>Ñ$>Ù“ˆØˆqƒyÜ�‰˜Õä�‰˜˜6Õ"ó    c                óV   • [          H  nUR                  " U 4SU0UD6(       d  M    g   g)zó
Display a given image.

:param image: An image object.
:param title: Optional title. Not all viewers can display the title.
:param \**options: Additional viewer options.
:returns: ``True`` if a suitable viewer was found, ``False`` otherwise.
ÚtitleTF)r	   Úshow)Úimager   Úoptionsr   s       r   r   r   3   s/   € ÷ ˆØ�;Š;�uÑ5 EÐ5¨W×5Ñ5Ùñ ð r   c                  ó€   • \ rS rSr% SrSS jrSrS\S'    0 rS\S'    SS	 jr	SS
 jr
SS jrSS jrSS jrSS jrSrg)r   éB   zBase class for viewers.r   c                ó
  • UR                   S;   da  U R                  S:X  a  UR                   S;   dA  [        R                  " UR                   5      nUR                   U:w  a  UR	                  U5      nU R
                  " U40 UD6$ )zk
The main function for displaying an image.
Converts the given image to the target format and displays it.
)Ú1ÚRGBAÚPNG)zI;16ÚLA)ÚmodeÚformatr   ÚgetmodebaseÚconvertÚ
show_image)Úselfr   r   Úbases       r   r   ÚViewer.showG   si   € ð �J‰J˜-Ó'Ø—‘˜uÓ$¨¯©°~Ó)Eä×$Ò$ U§Z¡ZÓ0ˆDØ�z‰z˜TÓ!ØŸ™ dÓ+�à�Š˜uÑ0¨Ñ0Ð0r   Nú
str | Noner#   zdict[str, Any]c                ó   • U R                   $ )z3Return format name, or ``None`` to save as PGM/PPM.)r#   ©r'   r   s     r   Ú
get_formatÚViewer.get_format^   s   € à�{‰{Ðr   c                ó   • Sn[        U5      e)zR
Returns the command used to display the file.
Not implemented in the base class.
zunavailable in base viewer)ÚNotImplementedError©r'   Úfiler   Úmsgs       r   Úget_commandÚViewer.get_commandb   s   € ð
 +ˆÜ! #Ó&Ð&r   c                ó\   • UR                   " SSU R                  U5      0U R                  D6$ )z+Save to temporary file and return filename.r#   © )Ú_dumpr-   r   r,   s     r   Ú
save_imageÚViewer.save_imagej   s&   € à�{Š{ÑI $§/¡/°%Ó"8ÐI¸D¿L¹LÑIÐIr   c                óF   • U R                   " U R                  U5      40 UD6$ )zDisplay the given image.)Ú	show_filer9   ©r'   r   r   s      r   r&   ÚViewer.show_imagen   s   € à�~Š~˜dŸo™o¨eÓ4Ñ@¸Ñ@Ð@r   c                ó¦   • [         R                  R                  U5      (       d  [        e[         R                  " U R
                  " U40 UD65        g)ú
Display given file.
r   )ÚosÚpathÚexistsÚFileNotFoundErrorÚsystemr4   ©r'   rB   r   s      r   r<   ÚViewer.show_filer   s<   € ô �w‰w�~‰~˜d×#Ñ#Ü#Ð#Ü
�	Š	�$×"Ò" 4Ñ3¨7Ñ3Ô4Ør   c                ó  • [        [        SS5      =(       a    [        [        S5      nU(       + =(       a    [        R                  =(       d    [        R
                  " S5      nU(       a  [        R                  " USSU/5        g g )NÚfrozenFÚ_MEIPASSÚpython3z-cz<import os, sys, time; time.sleep(20); os.remove(sys.argv[1]))ÚgetattrÚsysÚhasattrÚ
executableÚshutilÚwhichÚ
subprocessÚPopen)r'   rB   ÚpyinstallerrO   s       r   Ú_remove_path_after_delayÚViewer._remove_path_after_delay{   sa   € Üœc 8¨UÓ3×P¼ÄÀZÓ8PˆØ%”o×8¬#¯.©.×T¼V¿\º\È)Ó=Tˆ
æÜ×ÒàØØRØð	õð r   r7   ©r   úImage.Imager   r   ÚreturnÚint)r   rX   rY   r*   ©r2   Ústrr   r   rY   r\   )r   rX   rY   r\   ©rB   r\   r   r   rY   rZ   )rB   r\   rY   ÚNone)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r#   Ú__annotations__r   r-   r4   r9   r&   r<   rU   Ú__static_attributes__r7   r   r   r   r   B   sF   ‡ Ù!ô1ð$ €FˆJÓØ/Ø €Gˆ^Ó Ø7ôô'ôJôAô÷r   r   c                  ó:   • \ rS rSrSrSrSSS.rSS jrSS jrS	r	g
)ÚWindowsVieweré�   zNThe default viewer on Windows is the default system application for PNG files.r    r   T©Úcompress_levelÚsave_allc                ó^   • SU;   a  Sn[        U5      eUR                  SS5      nSU SU S3$ )NÚ"z.Windows filenames cannot contain double quotesÚ%z"%"zstart "Pillow" /WAIT "z)" && ping -n 4 127.0.0.1 >NUL && del /f ")Ú
ValueErrorÚreplacer1   s       r   r4   ÚWindowsViewer.get_command“   sE   € Ø�$‹;ØBˆCÜ˜S“/Ð!Ø�|‰|˜C Ó'ˆà$ T Fð +à˜˜qð"ð	
r   c                óÎ   • [         R                  R                  U5      (       d  [        e[        R
                  S:X  a  [         R                  " U5        U R                  U5        g)r@   Úwin32r   )rA   rB   rC   rD   rM   ÚplatformÚ	startfilerU   rF   s      r   r<   ÚWindowsViewer.show_filež   sF   € ô �w‰w�~‰~˜d×#Ñ#Ü#Ð#Ü�<‰<˜7Ó"Ü�LŠL˜ÔØ×%Ñ% dÔ+Ør   r7   Nr[   r]   ©
r_   r`   ra   rb   rc   r#   r   r4   r<   re   r7   r   r   rg   rg   �   s   † ÙXà€FØ!"°Ñ5€Gô	
÷	r   rg   rs   c                  ó:   • \ rS rSrSrSrSSS.rSS jrSS jrS	r	g
)Ú	MacVieweré®   z2The default viewer on macOS using ``Preview.app``.r    r   Tri   c                óF   • SnSU S[        U5       S[        U5       S3nU$ )Nzopen -a Preview.appÚ(Ú z; sleep 20; rm -f z)&r   ©r'   r2   r   Úcommands       r   r4   ÚMacViewer.get_command´   s1   € ð (ˆØ�g�Y˜a¤ d£˜}Ð,>¼uÀT»{¸mÈ2ÐNˆØˆr   c                ó®   • [         R                  R                  U5      (       d  [        e[        R
                  " SSSU/5        U R                  U5        g)r@   Úopenz-azPreview.appr   )rA   rB   rC   rD   rR   ÚcallrU   rF   s      r   r<   ÚMacViewer.show_file»   sC   € ô �w‰w�~‰~˜d×#Ñ#Ü#Ð#Ü�Š˜  }°dÐ;Ô<Ø×%Ñ% dÔ+Ør   r7   Nr[   r]   rw   r7   r   r   ry   ry   ®   s   † Ù<à€FØ!"°Ñ5€Gô÷r   ry   Údarwinc                  óT   • \ rS rSrSrSSS.r\R                  S
S j5       rSS jr	Sr
g	)Ú
UnixVieweréÊ   r    r   Tri   c                ó   • g ©Nr7   )r'   r2   r   s      r   Úget_command_exÚUnixViewer.get_command_exÎ   s   € àr   c                óN   • U R                   " U40 UD6S   nU S[        U5       3$ )Nr   r}   )r‹   r   r~   s       r   r4   ÚUnixViewer.get_commandÒ   s1   € Ø×%Ò% dÑ6¨gÑ6°qÑ9ˆØ�˜!œE $›K˜=Ð)Ð)r   r7   N©r2   r\   r   r   rY   útuple[str, str]r[   )r_   r`   ra   rb   r#   r   ÚabcÚabstractmethodr‹   r4   re   r7   r   r   r‡   r‡   Ê   s.   † Ø€FØ!"°Ñ5€Gà×Ñóó ð÷*r   r‡   c                  ó,   • \ rS rSrSrSS jrSS jrSrg)	Ú	XDGVieweré×   z+
The freedesktop.org ``xdg-open`` command.
c                ó   • S=p4X44$ )Núxdg-openr7   )r'   r2   r   r   rO   s        r   r‹   ÚXDGViewer.get_command_exÜ   s   € Ø)Ð)ˆØÐ"Ð"r   c                óˆ   • [         R                  R                  U5      (       d  [        e[        R
                  " SU/5        g)r@   r—   r   ©rA   rB   rC   rD   rR   rS   rF   s      r   r<   ÚXDGViewer.show_fileà   s3   € ô �w‰w�~‰~˜d×#Ñ#Ü#Ð#Ü×Ò˜* dÐ+Ô,Ør   r7   Nr�   r]   ©r_   r`   ra   rb   rc   r‹   r<   re   r7   r   r   r”   r”   ×   s   † ñô#÷r   r”   c                  ó@   • \ rS rSrSr S       SS jjrS	S jrSrg)
ÚDisplayVieweréê   zT
The ImageMagick ``display`` command.
This viewer supports the ``title`` parameter.
Nc                ó>   • S=pEU(       a  US[        U5       3-  nXE4$ )NÚdisplayz -title r   ©r'   r2   r   r   r   rO   s         r   r‹   ÚDisplayViewer.get_command_exð   s-   € ð  )Ð(ˆÞØ˜¤%¨£, Ð0Ñ0ˆGØÐ"Ð"r   c                óê   • [         R                  R                  U5      (       d  [        eS/nUR	                  S5      nU(       a  USU/-  nUR                  U5        [        R                  " U5        g)r@   r¡   r   z-titler   ©rA   rB   rC   rD   Úgetr   rR   rS   ©r'   rB   r   Úargsr   s        r   r<   ÚDisplayViewer.show_fileø   sa   € ô �w‰w�~‰~˜d×#Ñ#Ü#Ð#Øˆ{ˆØ—‘˜GÓ$ˆÞØ�X˜uÐ%Ñ%ˆDØ�‰�DÔä×Ò˜ÔØr   r7   rŠ   ©r2   r\   r   r*   r   r   rY   r�   r]   rœ   r7   r   r   rž   rž   ê   s6   † ñð .2ð#Øð#Ø *ð#Ø>Að#à	õ#÷r   rž   c                  ó,   • \ rS rSrSrSS jrSS jrSrg)	ÚGmDisplayVieweri  z*The GraphicsMagick ``gm display`` command.c                ó   • SnSnXC4$ )NÚgmz
gm displayr7   ©r'   r2   r   rO   r   s        r   r‹   ÚGmDisplayViewer.get_command_ex  s   € Øˆ
ØˆØÐ"Ð"r   c                óŠ   • [         R                  R                  U5      (       d  [        e[        R
                  " SSU/5        g)r@   r®   r¡   r   rš   rF   s      r   r<   ÚGmDisplayViewer.show_file  s5   € ô �w‰w�~‰~˜d×#Ñ#Ü#Ð#Ü×Ò˜$ 	¨4Ð0Ô1Ør   r7   Nr�   r]   rœ   r7   r   r   r¬   r¬     s   † Ù4ô#÷
r   r¬   c                  ó,   • \ rS rSrSrSS jrSS jrSrg)	Ú	EogVieweri  z'The GNOME Image Viewer ``eog`` command.c                ó   • SnSnXC4$ )NÚeogzeog -nr7   r¯   s        r   r‹   ÚEogViewer.get_command_ex  s   € Øˆ
ØˆØÐ"Ð"r   c                óŠ   • [         R                  R                  U5      (       d  [        e[        R
                  " SSU/5        g)r@   r¶   z-nr   rš   rF   s      r   r<   ÚEogViewer.show_file"  s5   € ô �w‰w�~‰~˜d×#Ñ#Ü#Ð#Ü×Ò˜%  tÐ,Ô-Ør   r7   Nr�   r]   rœ   r7   r   r   r´   r´     s   † Ù1ô#÷
r   r´   c                  ó@   • \ rS rSrSr S       SS jjrS	S jrSrg)
ÚXVVieweri,  zL
The X Viewer ``xv`` command.
This viewer supports the ``title`` parameter.
Nc                ó>   • S=pEU(       a  US[        U5       3-  nXE4$ )NÚxvz -name r   r¢   s         r   r‹   ÚXVViewer.get_command_ex2  s-   € ð
  $Ð#ˆÞØ˜¤ u£ Ð/Ñ/ˆGØÐ"Ð"r   c                óê   • [         R                  R                  U5      (       d  [        eS/nUR	                  S5      nU(       a  USU/-  nUR                  U5        [        R                  " U5        g)r@   r½   r   z-namer   r¥   r§   s        r   r<   ÚXVViewer.show_file<  sa   € ô �w‰w�~‰~˜d×#Ñ#Ü#Ð#ØˆvˆØ—‘˜GÓ$ˆÞØ�W˜eÐ$Ñ$ˆDØ�‰�DÔä×Ò˜ÔØr   r7   rŠ   rª   r]   rœ   r7   r   r   r»   r»   ,  s6   † ñð .2ð#Øð#Ø *ð#Ø>Að#à	õ#÷r   r»   )rs   r…   r—   r¡   r®   r¶   r½   c                  ó"   • \ rS rSrSrSS jrSrg)ÚIPythonVieweriY  z!The viewer for IPython frontends.c                ó   • [        U5        g)Nr   )Úipython_displayr=   s      r   r&   ÚIPythonViewer.show_image\  s   € Ü˜ÔØr   r7   NrW   )r_   r`   ra   rb   rc   r&   re   r7   r   r   rÂ   rÂ   Y  s
   † Ù+÷r   rÂ   )r¡   Ú__main__é   z.Syntax: python3 ImageShow.py imagefile [title])r   )r   ztype[Viewer] | Viewerr   rZ   rY   r^   rŠ   )r   rX   r   r*   r   r   rY   Úbool))Ú
__future__r   r‘   rA   rP   rR   rM   Úshlexr   Útypingr   Ú r   r	   rd   r   r   r   rg   rt   ry   ÚABCr‡   r”   rž   r¬   r´   r»   rQ   rÂ   ÚIPython.displayr¡   rÄ   ÚImportErrorr_   ÚlenÚargvÚprintÚexitr‚   Úimr7   r   r   Ú<module>rÕ      sþ  ðö #ã 
Û 	Û Û Û 
Ý Ý å à€ˆ,Ó ö#ö,÷Eñ EôV�Fô ð: ‡<�<�7ÓÙˆ]Ôô�ô ð0 ‡<�<�8ÓÙˆYÔô
*�—‘˜&ô 
*ô�
ô ô&�Jô ô<�jô ô$�
ô ô$ˆzô ð@ ‡<�<Ð*Ó*Ø‡|‚|�J×ÑÙ�ÔØ‡|‚|�I×ÑÙ�ÔØ‡|‚|�D×ÑÙ�Ô!Ø‡|‚|�E×ÑÙ�ÔØ‡|‚|�D×ÑÙ�Ôô�Fô ðÝ:ñ ˆ]Ôð ˆzÓÙ
ˆ3�8‰8ƒ}�qÓÙÐ>Ô?Ø�ŠŒ
à	�Š�C—H‘H˜Q‘KÔ	  BÙ‰d�2Ð%˜Ÿ™  ˜Ò%Ô&÷ 
!Ð	 ð øð ó 	Ùð	ú÷ 
!Õ	 ús   ÆH  Ç9H,È H)È(H)È,
H: