o
    g	                     @   sT   d dl Z ddlmZmZ dd ZG dd dejZeejee e	ejd dS )	    N   )ImageTiffImagePluginc                 C   s   | d d t jkS )N   )olefileMAGIC)prefix r	   P/home/ubuntu/cloudmapper/venv/lib/python3.10/site-packages/PIL/MicImagePlugin.py_accept   s   r   c                       sL   e Zd ZdZdZdZdd Zdd Zdd	 Z fd
dZ	 fddZ
  ZS )MicImageFileMICzMicrosoft Image ComposerFc              
   C   s   z	t | j| _W n ty } zd}t||d }~ww g | _| j D ]}|dd  rC|d dd  dkrC|d dkrC| j| q%| jsMd}t|d | _	t
| j| _| jdk| _| d d S )Nz!not an MIC file; invalid OLE filer   r   z.ACIr   z!not an MIC file; no image entries)r   	OleFileIOfpoleOSErrorSyntaxErrorimageslistdirappendframelen	_n_framesis_animatedseek)selfemsgpathr	   r	   r
   _open)   s&   
,zMicImageFile._openc              
   C   sh   |  |sd S z| j| }W n ty! } zd}t||d }~ww | j|| _tj	|  || _
d S )Nzno such frame)_seek_checkr   
IndexErrorEOFErrorr   
openstreamr   r   TiffImageFiler    r   )r   r   filenamer   r   r	   r	   r
   r   G   s   


zMicImageFile.seekc                 C   s   | j S N)r   r   r	   r	   r
   tellV   s   zMicImageFile.tellc                    s   | j   t   d S r'   )r   closesuperr(   	__class__r	   r
   r*   Y      
zMicImageFile.closec                    s   | j   t   d S r'   )r   r*   r+   __exit__)r   argsr,   r	   r
   r/   ]   r.   zMicImageFile.__exit__)__name__
__module____qualname__formatformat_description!_close_exclusive_fp_after_loadingr    r   r)   r*   r/   __classcell__r	   r	   r,   r
   r   $   s    r   z.mic)
r    r   r   r   r%   r   register_openr4   register_extensionr	   r	   r	   r
   <module>   s   A