???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................U
    e5d‚6  ã                   @   sÚ   d dl Z d dlZd dlZd dlZdddgZG dd„ deƒZd ZdZdZ	dZ
d	ZG d
d„ dƒZdd„ ZG dd„ dƒZG dd„ dƒZG dd„ dƒZG dd„ dƒZdd„ ZG dd„ dƒZG dd„ dƒZG dd„ dƒZdd„ ZdS )é    NÚbinhexÚhexbinÚErrorc                   @   s   e Zd ZdS )r   N)Ú__name__Ú
__module__Ú__qualname__© r   r   ú/usr/lib64/python3.8/binhex.pyr      s   é   i €  é@   ó   c                   @   s   e Zd Zdd„ ZdS )ÚFInfoc                 C   s   d| _ d| _d| _d S )Nz????r   )ÚTypeÚCreatorÚFlags©Úselfr   r   r	   Ú__init__0   s    zFInfo.__init__N)r   r   r   r   r   r   r   r	   r   /   s   r   c              	   C   st   t ƒ }t | d¡2}| d¡}d|kr,d|_| dd¡ | ¡ }W 5 Q R X tj 	| ¡\}}| 
ddd¡}|||dfS )	NÚrbi   r   ZTEXTé   ú:ú-r
   )r   ÚioÚopenÚreadr   ÚseekÚtellÚosÚpathÚsplitÚreplace)ÚnameÚfinfoÚfpÚdataZdsizeÚdirÚfiler   r   r	   Úgetfileinfo5   s    
r'   c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
Úopenrsrcc                 G   s   d S ©Nr   ©r   Úargsr   r   r	   r   C   s    zopenrsrc.__init__c                 G   s   dS ©Nó    r   r*   r   r   r	   r   F   s    zopenrsrc.readc                 G   s   d S r)   r   r*   r   r   r	   ÚwriteI   s    zopenrsrc.writec                 C   s   d S r)   r   r   r   r   r	   ÚcloseL   s    zopenrsrc.closeN)r   r   r   r   r   r.   r/   r   r   r   r	   r(   B   s   r(   c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
Ú_Hqxcoderenginec                 C   s    || _ d| _d| _td | _d S )Nr-   r
   )Úofpr$   ÚhqxdataÚLINELENÚlinelen©r   r1   r   r   r	   r   R   s    z_Hqxcoderengine.__init__c                 C   sh   | j | | _ t| j ƒ}|d d }| j d |… }| j |d … | _ |sHd S | jt |¡ | _|  d¡ d S )Né   r   )r$   Úlenr2   ÚbinasciiÚb2a_hqxÚ_flush)r   r$   ZdatalenZtodor   r   r	   r.   X   s    
z_Hqxcoderengine.writec                 C   sr   d}|t | jƒ| j krH|| j }| j | j||… d ¡ t| _|}q| j|d … | _|rn| j | jd ¡ d S )Nr   ó   s   :)r7   r2   r4   r1   r.   r3   )r   ZforceÚfirstZlastr   r   r	   r:   c   s    
z_Hqxcoderengine._flushc                 C   s6   | j r| jt | j ¡ | _|  d¡ | j ¡  | `d S )Nr
   )r$   r2   r8   r9   r:   r1   r/   r   r   r   r	   r/   n   s
    

z_Hqxcoderengine.closeN)r   r   r   r   r.   r:   r/   r   r   r   r	   r0   O   s   r0   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )Ú_Rlecoderenginec                 C   s   || _ d| _d S r,   )r1   r$   r5   r   r   r	   r   x   s    z_Rlecoderengine.__init__c                 C   s@   | j | | _ t| j ƒtk rd S t | j ¡}| j |¡ d| _ d S r,   )r$   r7   ÚREASONABLY_LARGEr8   Úrlecode_hqxr1   r.   )r   r$   Úrledatar   r   r	   r.   |   s    z_Rlecoderengine.writec                 C   s0   | j rt | j ¡}| j |¡ | j ¡  | `d S r)   )r$   r8   r?   r1   r.   r/   )r   r@   r   r   r	   r/   „   s
    
z_Rlecoderengine.closeN)r   r   r   r   r.   r/   r   r   r   r	   r=   u   s   r=   c                   @   sL   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dS )ÚBinHexc           
      C   s    |\}}}}d}t |tƒr.|}t |d¡}d}zR| d¡ t|ƒ}	t|	ƒ| _d| _|d kr`t	ƒ }|| _
|| _|  ||¡ t| _W n   |r”| ¡  ‚ Y nX d S )NFÚwbTs0   (This file must be converted with BinHex 4.0):r   )Ú
isinstanceÚstrr   r   r.   r0   r=   r1   Úcrcr   ÚdlenÚrlenÚ
_writeinfoÚ_DID_HEADERÚstater/   )
r   Zname_finfo_dlen_rlenr1   r!   r"   rF   rG   Zclose_on_errorZofnameZhqxerr   r   r	   r   Œ   s*    



zBinHex.__init__c                 C   s´   t |ƒ}|dkrtdƒ‚t|gƒ| d¡ d }|j|j }}t|tƒrR| d¡}t|tƒrf| d¡}|| }t 	d|j
¡}t 	d| j| j¡}	|| | |	 }
|  |
¡ |  ¡  d S )Né?   zFilename too longzlatin-1ó    ú>hz>ii)r7   r   ÚbytesÚencoder   r   rC   rD   ÚstructÚpackr   rF   rG   Ú_writeÚ	_writecrc)r   r!   r"   ÚnlÚdÚtpZcrZd2Zd3Zd4Úinfor   r   r	   rH   £   s    




zBinHex._writeinfoc                 C   s    t  || j¡| _| j |¡ d S r)   )r8   Úcrc_hqxrE   r1   r.   ©r   r$   r   r   r	   rR   ¶   s    zBinHex._writec                 C   s4   | j dk rd}nd}| j t || j ¡¡ d| _ d S )Nr   rM   z>H)rE   r1   r.   rP   rQ   )r   Zfmtr   r   r	   rS   º   s
    
zBinHex._writecrcc                 C   s0   | j tkrtdƒ‚| jt|ƒ | _|  |¡ d S )NzWriting data at the wrong time)rJ   rI   r   rF   r7   rR   rY   r   r   r	   r.   Ä   s    
zBinHex.writec                 C   s,   | j dkrtd| jf ƒ‚|  ¡  t| _d S )Nr   zIncorrect data size, diff=%r)rF   r   rG   rS   Ú	_DID_DATArJ   r   r   r   r	   Ú
close_dataÊ   s    
zBinHex.close_datac                 C   sB   | j tk r|  ¡  | j tkr$tdƒ‚| jt|ƒ | _|  |¡ d S )Nz'Writing resource data at the wrong time)rJ   rZ   r[   r   rG   r7   rR   rY   r   r   r	   Ú
write_rsrcÐ   s    

zBinHex.write_rsrcc                 C   sx   | j d krd S zJ| j tk r"|  ¡  | j tkr4tdƒ‚| jdkrNtd| jf ƒ‚|  ¡  W 5 d | _ | j}| `| ¡  X d S )NzClose at the wrong timer   z$Incorrect resource-datasize, diff=%r)rJ   r1   r/   rZ   r[   r   rG   rS   r5   r   r   r	   r/   Ø   s    



zBinHex.closeN)r   r   r   r   rH   rR   rS   r.   r[   r\   r/   r   r   r   r	   rA   ‹   s   
rA   c              	   C   sˆ   t | ƒ}t||ƒ}t | d¡*}| d¡}|s0q<| |¡ q | ¡  W 5 Q R X t| dƒ}| d¡}|shqt| |¡ qX| 	¡  | 	¡  d S )Nr   é ô )
r'   rA   r   r   r   r.   r[   r(   r\   r/   )ÚinpÚoutr"   r1   ÚifprU   r   r   r	   r   é   s    

 

 c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )Ú_Hqxdecoderenginec                 C   s   || _ d| _d S )Nr   )r`   Úeof©r   r`   r   r   r	   r     s    z_Hqxdecoderengine.__init__c                 C   s´   d}|}|dkr°| j r|S |d d d }| j |¡}zt |¡\}| _ W qˆW n tjk
rd   Y nX | j d¡}|s~tdƒ‚|| }q6|| }|t|ƒ }|s| j stdƒ‚q|S )Nr-   r   r   r6   é   r
   zPremature EOF on binhex file)rb   r`   r   r8   Za2b_hqxZ
Incompleter   r7   )r   ZtotalwtdZdecdataÚwtdr$   Z
decdatacurÚnewdatar   r   r	   r     s*     


z_Hqxdecoderengine.readc                 C   s   | j  ¡  d S r)   ©r`   r/   r   r   r   r	   r/   %  s    z_Hqxdecoderengine.closeN)r   r   r   r   r   r/   r   r   r   r	   ra   þ   s    ra   c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
Ú_Rledecoderenginec                 C   s   || _ d| _d| _d| _d S )Nr-   r   )r`   Ú
pre_bufferÚpost_bufferrb   rc   r   r   r	   r   +  s    z_Rledecoderengine.__init__c                 C   sD   |t | jƒkr"|  |t | jƒ ¡ | jd |… }| j|d … | _|S r)   )r7   rj   Ú_fill)r   re   Úrvr   r   r	   r   1  s
    z_Rledecoderengine.readc                 C   sô   | j | j |d ¡ | _ | jjr>| jt | j ¡ | _d| _ d S t| j ƒ}| j dd … td t krl|d }nX| j dd … tkrˆ|d }n<| j dd … td kr¨|d }n| j dd… tkr¼n|d	 }| jt | j d |… ¡ | _| j |d … | _ d S )
Nrd   r-   éýÿÿÿrL   r6   éÿÿÿÿr   éþÿÿÿr
   )	ri   r`   r   rb   rj   r8   Zrledecode_hqxr7   ÚRUNCHAR)r   re   Zmarkr   r   r	   rk   8  s*    
ÿ



ÿz_Rledecoderengine._fillc                 C   s   | j  ¡  d S r)   rg   r   r   r   r	   r/   [  s    z_Rledecoderengine.closeN)r   r   r   r   r   rk   r/   r   r   r   r	   rh   (  s   #rh   c                   @   sL   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dS )ÚHexBinc                 C   sf   t |tƒrt |d¡}| d¡}|s,tdƒ‚|dkr6q|dkrqBqt|ƒ}t|ƒ| _d| _	|  
¡  d S )Nr   r
   zNo binhex data foundr;   ó   :r   )rC   rD   r   r   r   r   ra   rh   r`   rE   Ú_readheader)r   r`   ZchZhqxifpr   r   r	   r   _  s    


zHexBin.__init__c                 C   s    | j  |¡}t || j¡| _|S r)   )r`   r   r8   rX   rE   )r   r7   r$   r   r   r	   Ú_readu  s    zHexBin._readc                 C   sN   t  d| j d¡¡d d@ }| jd@ | _|| jkrDtd| j|f ƒ‚d| _d S )NrM   r   r   iÿÿ  zCRC error, computed %x, read %x)rP   Úunpackr`   r   rE   r   )r   Zfilecrcr   r   r	   Ú	_checkcrcz  s    
ÿzHexBin._checkcrcc                 C   s¾   |   d¡}|   t|ƒ¡}|   d¡}|  ¡  |dd… }|dd… }t d|dd… ¡d }t d|dd	… ¡d | _t d|d	d… ¡d | _|| _tƒ | _|| j_	|| j_
|| j_t| _d S )
Nr
   é   é   é	   rM   é   r   z>lé   )rt   Úordrv   rP   ru   rF   rG   ÚFNamer   r   r   r   rI   rJ   )r   r7   ZfnameÚrestÚtypeZcreatorÚflagsr   r   r	   rs   „  s    

zHexBin._readheaderc                 G   sj   | j tkrtdƒ‚|r,|d }t|| jƒ}n| j}d}t|ƒ|k rZ||  |t|ƒ ¡ }q6| j| | _|S )NzRead data at wrong timer   r-   )rJ   rI   r   ÚminrF   r7   rt   )r   Únrl   r   r   r	   r   ˜  s    
zHexBin.readc                 C   s6   | j tkrtdƒ‚| jr$|  | j¡}|  ¡  t| _ d S )Nzclose_data at wrong time)rJ   rI   r   rF   rt   rv   rZ   ©r   Zdummyr   r   r	   r[   ¦  s    
zHexBin.close_datac                 G   sZ   | j tkr|  ¡  | j tkr$tdƒ‚|r>|d }t|| jƒ}n| j}| j| | _|  |¡S )Nz Read resource data at wrong timer   )rJ   rI   r[   rZ   r   r   rG   rt   )r   r‚   r   r   r	   Ú	read_rsrc®  s    

zHexBin.read_rsrcc                 C   sD   | j d krd S z| jr"|  | j¡}|  ¡  W 5 d | _ | j ¡  X d S r)   )rJ   r`   r/   rG   r„   rv   rƒ   r   r   r	   r/   »  s    
zHexBin.closeN)r   r   r   r   rt   rv   rs   r   r[   r„   r/   r   r   r   r	   rq   ^  s   
rq   c              	   C   s¦   t | ƒ}|j}|s|j}t |d¡"}| d¡}|s6qB| |¡ q&W 5 Q R X | ¡  | d¡}|ršt	|dƒ}| |¡ | d¡}|s†q’| |¡ qv| 
¡  | 
¡  d S )NrB   r]   )rq   r   r}   r   r   r   r.   r[   r„   r(   r/   )r^   r_   r`   r"   r1   rU   r   r   r	   r   Æ  s(    
 



 )r   r   rP   r8   Ú__all__Ú	Exceptionr   rI   rZ   r>   r3   rp   r   r'   r(   r0   r=   rA   r   ra   rh   rq   r   r   r   r   r	   Ú<module>   s*   
&^*6h