o
    ¾Ùøi²  ã                   @   s~   d dl Z d dlmZ d dlmZ d dlmZmZ d dlm	Z	m
Z
 e  e¡ZG dd„ de
ƒZG dd	„ d	ƒZd
edefdd„ZdS )é    N)ÚIterator)ÚBytesIO)ÚBinaryIOÚcast)ÚPDFEOFErrorÚPDFExceptionc                   @   s   e Zd ZdS )ÚCorruptDataErrorN)Ú__name__Ú
__module__Ú__qualname__© r   r   úY/home/develop/edictos_py/central_edictos/env/lib/python3.10/site-packages/pdfminer/lzw.pyr      s    r   c                   @   sT   e Zd Zdeddfdd„Zdedefdd„Zd	edefd
d„Zde	e fdd„Z
dS )Ú
LZWDecoderÚfpÚreturnNc                 C   s(   || _ d| _d| _d| _g | _d | _d S )Nr   é   é	   )r   ÚbuffÚbposÚnbitsÚtableÚprevbuf)Úselfr   r   r   r   Ú__init__   s   
zLZWDecoder.__init__Úbitsc                 C   s–   d}	 d| j  }||kr'||> | j|| ? d|> d @ B }|  j |7  _ 	 |S ||> | jd|> d @ B }||8 }| j d¡}|sBt‚t|ƒ| _d| _ q)Nr   é   r   )r   r   r   Úreadr   Úord)r   r   ÚvÚrÚxr   r   r   Úreadbits   s    
"ù
ìzLZWDecoder.readbitsÚcodec                 C   s2  d}|dkr$dd„ t dƒD ƒ| _| j d ¡ | j d ¡ d| _d| _|S |dkr+	 |S | js;tt| j| ƒ }| _|S |t| jƒk rXtt| j| ƒ}| j | j|d d…  ¡ n |t| jƒkrv| j | j| jd d…  ¡ tt| j| ƒ}nt‚t| jƒ}|dkr…d	| _n|d
kr�d| _n|dkr”d| _|| _|S )Nó    é   c                 S   s   g | ]}t |fƒ‘qS r   )Úbytes)Ú.0Úcr   r   r   Ú
<listcomp>5   s    z#LZWDecoder.feed.<locals>.<listcomp>r   i  r   iÿ  é
   iÿ  é   iÿ  é   )	Úranger   Úappendr   r   r   r%   Úlenr   )r   r"   r    Útable_lengthr   r   r   Úfeed2   s<   ëíð
zLZWDecoder.feedc              	   c   st   � 	 z|   | j¡}W n
 ty   Y d S w z|  |¡}W n
 ty&   Y d S w |V  t d| j||| jdd … ¡ q)Nr   z&nbits=%d, code=%d, output=%r, table=%ri  )r!   r   ÚEOFErrorr0   r   ÚloggerÚdebugr   )r   r"   r    r   r   r   ÚrunQ   s*   €ÿþûôzLZWDecoder.run)r	   r
   r   r   r   Úintr!   r%   r0   r   r4   r   r   r   r   r      s
    	r   Údatar   c                 C   s   t | ƒ}t|ƒ ¡ }d |¡S )Nr#   )r   r   r4   Újoin)r6   r   Úsr   r   r   Ú	lzwdecodeg   s   
r9   )ÚloggingÚcollections.abcr   Úior   Útypingr   r   Úpdfminer.pdfexceptionsr   r   Ú	getLoggerr	   r2   r   r   r%   r9   r   r   r   r   Ú<module>   s    
X