§
    Å‡tjM(  ã            	      ój  — U d dl mZ d dlZd dlZd dlZd dlZd dlZd dlmZ d dl	m
Z
 ddlmZ g Zded<   d8d9d„Zd:d;d„Z G d„ d¦  «        Z G d„ de¦  «        Zej        dk    r ee¦  «          G d„ de¦  «        Zej        dk    r ee¦  «          G d „ d!ej        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ej        d,vr‡ ej        d-¦  «        r ee¦  «          ej        d.¦  «        r ee¦  «          ej        d/¦  «        r ee¦  «          ej        d0¦  «        r ee¦  «          ej        d1¦  «        r ee¦  «          G d2„ d3e¦  «        Z	 d d4lmZ   ee¦  «         n# e!$ r Y nw xY we"d5k    rƒ e#ej$        ¦  «        d6k     r e%d7¦  «          ej&        ¦   «           ej'        ej$        d         ¦  «        5 Z( e% ee(gej$        d6d…         ¢R Ž ¦  «         ddd¦  «         dS # 1 swxY w Y   dS dS )<é    )ÚannotationsN©Úquote)ÚAnyé   )ÚImagezlist[Viewer]Ú_viewersÚviewerútype[Viewer] | ViewerÚorderÚintÚreturnÚNonec                óè   — t          | t          ¦  «        rt          | t          ¦  «        r
 | ¦   «         } |dk    rt                               | ¦  «         dS t                               d| ¦  «         dS )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)r
   r   s     úK/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/PIL/ImageShow.pyÚregisterr      sm   € õ �&�$ÑÔð ¥J¨vµvÑ$>Ô$>ð Ø�‘”ˆØˆq‚y€yÝ�Š˜ÑÔÐÐÐå�Š˜˜6Ñ"Ô"Ð"Ð"Ð"ó    ÚimageúImage.ImageÚtitleú
str | NoneÚoptionsr   Úboolc                ó@   — t           D ]} |j        | fd|i|¤Žr dS ŒdS )a  
    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.
    r   TF)r	   Úshow)r   r   r   r
   s       r   r!   r!   3   sE   € õ ð ð ˆØˆ6Œ;�uÐ5Ð5 EÐ5¨WÐ5Ð5ð 	Ø�4�4ð	àˆ5r   c                  ól   — e Zd ZU dZdd„Zd	Zd
ed<   	 i Zded<   	 dd„Zdd„Z	dd„Z
dd„Zdd„Zdd„Zd	S )r   zBase class for viewers.r   r   r   r   r   r   c                óÊ   — |j         dv sM| j        dk    r	|j         dv s9t          j        |j         ¦  «        }|j         |k    r|                     |¦  «        } | j        |fi |¤ŽS )zƒ
        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!   zViewer.showG   st   € ð ŒJ˜-Ð'Ð'Ø”˜uÒ$Ð$¨¬°~Ð)EÐ)EåÔ$ U¤ZÑ0Ô0ˆDØŒz˜TÒ!Ð!ØŸš dÑ+Ô+�àˆtŒ˜uÐ0Ð0¨Ð0Ð0Ð0r   Nr   r)   zdict[str, Any]c                ó   — | j         S )z3Return format name, or ``None`` to save as PGM/PPM.)r)   ©r-   r   s     r   Ú
get_formatzViewer.get_format^   s
   € àŒ{Ðr   ÚfileÚstrc                ó$   — d}t          |¦  «        ‚)zj
        Returns the command used to display the file.
        Not implemented in the base class.
        zunavailable in base viewer)ÚNotImplementedError©r-   r2   r   Úmsgs       r   Úget_commandzViewer.get_commandb   s   € ð
 +ˆÝ! #Ñ&Ô&Ð&r   c                óP   —  |j         dd|                      |¦  «        i| j        ¤ŽS )z+Save to temporary file and return filename.r)   © )Ú_dumpr1   r   r0   s     r   Ú
save_imagezViewer.save_imagej   s-   € àˆuŒ{ÐIÐI $§/¢/°%Ñ"8Ô"8ÐI¸D¼LÐIÐIÐIr   c                óD   —  | j         |                      |¦  «        fi |¤ŽS )zDisplay the given image.)Ú	show_filer<   ©r-   r   r   s      r   r,   zViewer.show_imagen   s(   € àˆtŒ~˜dŸošo¨eÑ4Ô4Ð@Ð@¸Ð@Ð@Ð@r   Úpathc                ó’   — t           j                             |¦  «        st          ‚t          j         | j        |fi |¤Ž¦  «         dS )ú%
        Display given file.
        r   )Úosr@   ÚexistsÚFileNotFoundErrorÚsystemr8   ©r-   r@   r   s      r   r>   zViewer.show_filer   sK   € õ Œw�~Š~˜dÑ#Ô#ð 	$Ý#Ð#Ý
Œ	Ð"�$Ô" 4Ð3Ð3¨7Ð3Ð3Ñ4Ô4Ð4Øˆqr   r   c                óÚ   — t          t          dd¦  «        ot          t          d¦  «        }| rt          j        pt	          j        d¦  «        }|rt          j        |dd|g¦  «         d S d S )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-   r@   ÚpyinstallerrO   s       r   Ú_remove_path_after_delayzViewer._remove_path_after_delay{   s�   € Ý�c 8¨UÑ3Ô3ÐP½ÅÀZÑ8PÔ8PˆØ%�oÐ8­#¬.ÐT½V¼\È)Ñ=TÔ=Tˆ
àð 	ÝÔàØØRØð	ñô ð ð ð ð	ð 	r   ©r   r   r   r   r   r   )r   r   r   r   ©r2   r3   r   r   r   r3   )r   r   r   r3   ©r@   r3   r   r   r   r   )r@   r3   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r!   r)   Ú__annotations__r   r1   r8   r<   r,   r>   rU   r:   r   r   r   r   B   sÚ   € € € € € € Ø!Ð!ð1ð 1ð 1ð 1ð$ €FÐÐÐÑØ/Ø €GÐ Ð Ð Ñ Ø7ðð ð ð ð'ð 'ð 'ð 'ðJð Jð Jð JðAð Að Að Aðð ð ð ðð ð ð ð ð r   r   c                  ó0   — e Zd ZdZdZdddœZdd„Zdd„ZdS )ÚWindowsViewerzNThe default viewer on Windows is the default system application for PNG files.r&   r   T©Úcompress_levelÚsave_allr2   r3   r   r   r   c                ój   — d|v rd}t          |¦  «        ‚|                     dd¦  «        }d|› d|› d�S )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Úreplacer6   s       r   r8   zWindowsViewer.get_command“   sW   € Ø�$ˆ;ˆ;ØBˆCÝ˜S‘/”/Ð!Ø�|Š|˜C Ñ'Ô'ˆð" Tð "ð "àð"ð "ð "ð	
r   r@   r   c                óÄ   — t           j                             |¦  «        st          ‚t          j        dk    rt          j        |¦  «         |                      |¦  «         dS )rB   Úwin32r   )rC   r@   rD   rE   rM   ÚplatformÚ	startfilerU   rG   s      r   r>   zWindowsViewer.show_filež   sV   € õ Œw�~Š~˜dÑ#Ô#ð 	$Ý#Ð#ÝŒ<˜7Ò"Ð"ÝŒL˜ÑÔÐØ×%Ò% dÑ+Ô+Ð+Øˆqr   NrW   rX   ©rY   rZ   r[   r\   r)   r   r8   r>   r:   r   r   r_   r_   �   sT   € € € € € ØXÐXà€FØ!"°Ð5Ð5€Gð	
ð 	
ð 	
ð 	
ð	ð 	ð 	ð 	ð 	ð 	r   r_   ri   c                  ó0   — e Zd ZdZdZdddœZdd„Zdd„ZdS )Ú	MacViewerz2The default viewer on macOS using ``Preview.app``.r&   r   Tr`   r2   r3   r   r   r   c                óV   — d}d|› dt          |¦  «        › dt          |¦  «        › d�}|S )Nzopen -a Preview.appú(ú z; sleep 20; rm -f z)&r   ©r-   r2   r   Úcommands       r   r8   zMacViewer.get_command´   s:   € ð (ˆØN�gÐNÐN¥ d¡¤ÐNÐN½uÀT¹{¼{ÐNÐNÐNˆØˆr   r@   r   c                ó¬   — t           j                             |¦  «        st          ‚t	          j        ddd|g¦  «         |                      |¦  «         dS )rB   Úopenz-azPreview.appr   )rC   r@   rD   rE   rR   ÚcallrU   rG   s      r   r>   zMacViewer.show_file»   sR   € õ Œw�~Š~˜dÑ#Ô#ð 	$Ý#Ð#ÝŒ˜  }°dÐ;Ñ<Ô<Ð<Ø×%Ò% dÑ+Ô+Ð+Øˆqr   NrW   rX   rl   r:   r   r   rn   rn   ®   sT   € € € € € Ø<Ð<à€FØ!"°Ð5Ð5€Gðð ð ð ðð ð ð ð ð r   rn   Údarwinc                  óF   — e Zd ZdZdddœZej        dd„¦   «         Zdd„ZdS )Ú
UnixViewerr&   r   Tr`   r2   r3   r   r   r   útuple[str, str]c                ó   — d S ©Nr:   )r-   r2   r   s      r   Úget_command_exzUnixViewer.get_command_exÎ   s   € àˆr   c                óR   —  | j         |fi |¤Žd         }|› dt          |¦  «        › �S )Nr   rq   )r}   r   rr   s       r   r8   zUnixViewer.get_commandÒ   s;   € Ø%�$Ô% dÐ6Ð6¨gÐ6Ð6°qÔ9ˆØÐ)Ð)�E $™KœKÐ)Ð)Ð)r   N©r2   r3   r   r   r   rz   rW   )	rY   rZ   r[   r)   r   ÚabcÚabstractmethodr}   r8   r:   r   r   ry   ry   Ê   s\   € € € € € Ø€FØ!"°Ð5Ð5€GàÔðð ð ñ Ôðð*ð *ð *ð *ð *ð *r   ry   c                  ó"   — e Zd ZdZdd„Zdd„ZdS )Ú	XDGViewerz3
    The freedesktop.org ``xdg-open`` command.
    r2   r3   r   r   r   rz   c                ó   — dx}}||fS )Núxdg-openr:   )r-   r2   r   rs   rO   s        r   r}   zXDGViewer.get_command_exÜ   s   € Ø)Ð)ˆ�*Ø˜
Ð"Ð"r   r@   r   c                ó~   — t           j                             |¦  «        st          ‚t	          j        d|g¦  «         dS )rB   r…   r   ©rC   r@   rD   rE   rR   rS   rG   s      r   r>   zXDGViewer.show_fileà   s;   € õ Œw�~Š~˜dÑ#Ô#ð 	$Ý#Ð#ÝÔ˜* dÐ+Ñ,Ô,Ð,Øˆqr   Nr   rX   ©rY   rZ   r[   r\   r}   r>   r:   r   r   rƒ   rƒ   ×   sF   € € € € € ðð ð#ð #ð #ð #ðð ð ð ð ð r   rƒ   c                  ó&   — e Zd ZdZ	 ddd„Zdd„ZdS )ÚDisplayViewerz`
    The ImageMagick ``display`` command.
    This viewer supports the ``title`` parameter.
    Nr2   r3   r   r   r   r   r   rz   c                ó@   — dx}}|r|dt          |¦  «        › �z  }||fS )NÚdisplayz -title r   ©r-   r2   r   r   rs   rO   s         r   r}   zDisplayViewer.get_command_exð   s:   € ð  )Ð(ˆ�*Øð 	1ØÐ0¥%¨¡,¤,Ð0Ð0Ñ0ˆGØ˜
Ð"Ð"r   r@   r   c                óæ   — t           j                             |¦  «        st          ‚dg}|                     d¦  «        }|r|d|gz  }|                     |¦  «         t          j        |¦  «         dS )rB   rŒ   r   z-titler   ©rC   r@   rD   rE   Úgetr   rR   rS   ©r-   r@   r   Úargsr   s        r   r>   zDisplayViewer.show_fileø   sw   € õ Œw�~Š~˜dÑ#Ô#ð 	$Ý#Ð#Øˆ{ˆØ—’˜GÑ$Ô$ˆØð 	&Ø�X˜uÐ%Ñ%ˆDØ�Š�DÑÔÐåÔ˜ÑÔÐØˆqr   r|   ©r2   r3   r   r   r   r   r   rz   rX   rˆ   r:   r   r   rŠ   rŠ   ê   sP   € € € € € ðð ð .2ð#ð #ð #ð #ð #ðð ð ð ð ð r   rŠ   c                  ó"   — e Zd ZdZdd„Zdd„ZdS )ÚGmDisplayViewerz*The GraphicsMagick ``gm display`` command.r2   r3   r   r   r   rz   c                ó   — d}d}||fS )NÚgmz
gm displayr:   ©r-   r2   r   rO   rs   s        r   r}   zGmDisplayViewer.get_command_ex  s   € Øˆ
ØˆØ˜
Ð"Ð"r   r@   r   c                ó€   — t           j                             |¦  «        st          ‚t	          j        dd|g¦  «         dS )rB   r—   rŒ   r   r‡   rG   s      r   r>   zGmDisplayViewer.show_file  s=   € õ Œw�~Š~˜dÑ#Ô#ð 	$Ý#Ð#ÝÔ˜$ 	¨4Ð0Ñ1Ô1Ð1Øˆqr   Nr   rX   rˆ   r:   r   r   r•   r•     sB   € € € € € Ø4Ð4ð#ð #ð #ð #ð
ð ð ð ð ð r   r•   c                  ó"   — e Zd ZdZdd„Zdd„ZdS )Ú	EogViewerz'The GNOME Image Viewer ``eog`` command.r2   r3   r   r   r   rz   c                ó   — d}d}||fS )NÚeogzeog -nr:   r˜   s        r   r}   zEogViewer.get_command_ex  s   € Øˆ
ØˆØ˜
Ð"Ð"r   r@   r   c                ó€   — t           j                             |¦  «        st          ‚t	          j        dd|g¦  «         dS )rB   r�   z-nr   r‡   rG   s      r   r>   zEogViewer.show_file"  s=   € õ Œw�~Š~˜dÑ#Ô#ð 	$Ý#Ð#ÝÔ˜%  tÐ,Ñ-Ô-Ð-Øˆqr   Nr   rX   rˆ   r:   r   r   r›   r›     sB   € € € € € Ø1Ð1ð#ð #ð #ð #ð
ð ð ð ð ð r   r›   c                  ó&   — e Zd ZdZ	 ddd„Zdd„ZdS )ÚXVViewerzX
    The X Viewer ``xv`` command.
    This viewer supports the ``title`` parameter.
    Nr2   r3   r   r   r   r   r   rz   c                ó@   — dx}}|r|dt          |¦  «        › �z  }||fS )NÚxvz -name r   r�   s         r   r}   zXVViewer.get_command_ex2  s:   € ð
  $Ð#ˆ�*Øð 	0ØÐ/¥ u¡¤Ð/Ð/Ñ/ˆGØ˜
Ð"Ð"r   r@   r   c                óæ   — t           j                             |¦  «        st          ‚dg}|                     d¦  «        }|r|d|gz  }|                     |¦  «         t          j        |¦  «         dS )rB   r¢   r   z-namer   r�   r‘   s        r   r>   zXVViewer.show_file<  sw   € õ Œw�~Š~˜dÑ#Ô#ð 	$Ý#Ð#ØˆvˆØ—’˜GÑ$Ô$ˆØð 	%Ø�W˜eÐ$Ñ$ˆDØ�Š�DÑÔÐåÔ˜ÑÔÐØˆqr   r|   r“   rX   rˆ   r:   r   r   r    r    ,  sP   € € € € € ðð ð .2ð#ð #ð #ð #ð #ðð ð ð ð ð r   r    )ri   rw   r…   rŒ   r—   r�   r¢   c                  ó   — e Zd ZdZd
d„Zd	S )ÚIPythonViewerz!The viewer for IPython frontends.r   r   r   r   r   r   c                ó$   — t          |¦  «         dS )Nr   )Úipython_displayr?   s      r   r,   zIPythonViewer.show_image\  s   € Ý˜ÑÔÐØˆqr   NrV   )rY   rZ   r[   r\   r,   r:   r   r   r¥   r¥   Y  s.   € € € € € Ø+Ð+ðð ð ð ð ð r   r¥   )rŒ   Ú__main__é   z.Syntax: python3 ImageShow.py imagefile [title])r   )r
   r   r   r   r   r   r|   )r   r   r   r   r   r   r   r   ))Ú
__future__r   r€   rC   rP   rR   rM   Úshlexr   Útypingr   Ú r   r	   r]   r   r!   r   r_   rj   rn   ÚABCry   rƒ   rŠ   r•   r›   r    rQ   r¥   ÚIPython.displayrŒ   r§   ÚImportErrorrY   ÚlenÚargvÚprintÚexitru   Úimr:   r   r   ú<module>r¶      s²  ðð #Ð "Ð "Ð "Ð "Ð "Ð "à 
€
€
€
Ø 	€	€	€	Ø €€€Ø Ð Ð Ð Ø 
€
€
€
Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð à€Ð Ð Ð Ñ ð#ð #ð #ð #ð #ð,ð ð ð ð ðEð Eð Eð Eð Eñ Eô Eð EðVð ð ð ð �Fñ ô ð ð: „<�7ÒÐØ€Hˆ]ÑÔÐðð ð ð ð �ñ ô ð ð0 „<�8ÒÐØ€HˆYÑÔÐð
*ð 
*ð 
*ð 
*ð 
*�”˜&ñ 
*ô 
*ð 
*ðð ð ð ð �
ñ ô ð ð&ð ð ð ð �Jñ ô ð ð<ð ð ð ð �jñ ô ð ð$ð ð ð ð �
ñ ô ð ð$ð ð ð ð ˆzñ ô ð ð@ „<Ð*Ð*Ð*Ø€v„|�JÑÔð Øˆ�ÑÔÐØ€v„|�IÑÔð  Øˆ�ÑÔÐØ€v„|�DÑÔð "Øˆ�Ñ!Ô!Ð!Ø€v„|�EÑÔð Øˆ�ÑÔÐØ€v„|�DÑÔð Øˆ�ÑÔÐðð ð ð ð �Fñ ô ð ðØ:Ð:Ð:Ð:Ð:Ð:ð €Hˆ]ÑÔÐÐøð ð 	ð 	ð 	Ø€Dð	øøøð ˆzÒÐØ
€sˆ3Œ8�}„}�qÒÐØˆÐ>Ñ?Ô?Ð?ØˆŒ‰
Œ
ˆ
à	ˆŒ�C”H˜Q”KÑ	 Ô	 ð ' BØˆˆdˆd�2Ð%˜œ   œÐ%Ð%Ð%Ñ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð 'ð 'ð Ðs$   ÆF ÆF'Æ&F'Ç9 H&È&H*È-H*