U
    ?hk
                     @  sh   d dl mZ d dlZddlmZmZ ddddd	ZG d
d dejZe	ej
ee eej
d dS )    )annotationsN   )ImageTiffImagePluginbytesbool)prefixreturnc                 C  s   | d d t jkS )N   )olefileMAGIC)r    r   D/var/www/html/venv/lib/python3.8/site-packages/PIL/MicImagePlugin.py_accept   s    r   c                      sf   e Zd ZdZdZdZddddZdd	 Zd
dddZdd fddZ	ddd fddZ
  ZS )MicImageFileZMICzMicrosoft Image ComposerFNone)r	   c              
   C  s   zt | j| _W n0 tk
rB } zd}t||W 5 d }~X Y nX dd | j D | _| jsld}t|d| _t	| j| _
| j
dk| _| j| _| d d S )Nz!not an MIC file; invalid OLE filec                 S  s<   g | ]4}|d d r|d dd dkr|d  dkr|qS )r   Nr   z.ACIr   r   ).0pathr   r   r   
<listcomp>6   s
     z&MicImageFile._open.<locals>.<listcomp>z!not an MIC file; no image entriesr   r   )r   Z	OleFileIOfpoleOSErrorSyntaxErrorlistdirimagesframelenZ	_n_framesZis_animated_MicImageFile__fpseek)selfemsgr   r   r   _open)   s     zMicImageFile._openc              
   C  sr   |  |sd S z| j| }W n0 tk
rL } zd}t||W 5 d }~X Y nX | j|| _tj	|  || _
d S )Nzno such frame)Z_seek_checkr   
IndexErrorEOFErrorr   Z
openstreamr   r   TiffImageFiler$   r   )r!   r   filenamer"   r#   r   r   r   r    I   s    
zMicImageFile.seekintc                 C  s   | j S N)r   r!   r   r   r   tellX   s    zMicImageFile.tellc                   s"   | j   | j  t   d S r*   )r   closer   superr+   	__class__r   r   r-   [   s    

zMicImageFile.closeobject)argsr	   c                   s"   | j   | j  t   d S r*   )r   r-   r   r.   __exit__)r!   r2   r/   r   r   r3   `   s    

zMicImageFile.__exit__)__name__
__module____qualname__formatformat_descriptionZ!_close_exclusive_fp_after_loadingr$   r    r,   r-   r3   __classcell__r   r   r/   r   r   $   s    r   z.mic)
__future__r   r    r   r   r   r'   r   Zregister_openr7   Zregister_extensionr   r   r   r   <module>   s   E