§
    ‹Ÿj.  ã                  ó”   — d Z ddlmZ ddlZdZd„  ee¦  «        D ¦   «         Zd„  ed¦  «        D ¦   «         ddd…         Zd	„ Z	d
„ Z
dS )zéPython implementation of Z85 85-bit encoding

Z85 encoding is a plaintext encoding for a bytestring interpreted as 32bit integers.
Since the chunks are 32bit, a bytestring must be a multiple of 4 bytes.
See ZMQ RFC 32 for details.


é    )ÚannotationsNsU   0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-:+=^!/*?&<>()[]{}@%$#c                ó   — i | ]\  }}||“Œ	S © r   )Ú.0ÚidxÚcs      úZ/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/zmq/utils/z85.pyú
<dictcomp>r
      s   € Ð	3Ð	3Ð	3‘V�S˜!ˆ!ˆSÐ	3Ð	3Ð	3ó    c                ó   — g | ]}d |z  ‘ŒS )éU   r   )r   Úis     r	   ú
<listcomp>r      s   € Ð Ð Ð �!ˆˆA‰Ð Ð Ð r   é   éÿÿÿÿc                óH  — t          | ¦  «        dz  rt          dt          | ¦  «        › �¦  «        ‚t          | ¦  «        dz  }t          j        d|d›d�| ¦  «        }g }|D ]2}t          D ](}|                     t          ||z  dz           ¦  «         Œ)Œ3t          |¦  «        S )zencode raw bytes into Z85é   z"length must be multiple of 4, not ú>ÚdÚIr   )ÚlenÚ
ValueErrorÚstructÚunpackÚ_85sÚappendÚZ85CHARSÚbytes)ÚrawbytesÚnvaluesÚvaluesÚencodedÚvÚoffsets         r	   Úencoder%      s¾   € õ ˆ8�}„}�qÑð OÝÐM½cÀ(¹m¼mÐMÐMÑNÔNÐNå�(‰mŒm˜qÑ €GÝŒ]Ð+˜wÐ+Ð+Ð+Ð+¨XÑ6Ô6€FØ€GØð 9ð 9ˆÝð 	9ð 	9ˆFØ�NŠN�8 Q¨&¡[°BÑ$6Ô7Ñ8Ô8Ð8Ð8ð	9õ �‰>Œ>Ðr   c                ó(  — t          | t          ¦  «        r4	 |                      d¦  «        } n# t          $ r t	          d¦  «        ‚w xY wt          | ¦  «        dz  rt	          dt          | ¦  «        › �¦  «        ‚t          | ¦  «        dz  }g }t          dt          | ¦  «        d¦  «        D ]O}d}t          t          ¦  «        D ]!\  }}|t          | ||z                     |z  z  }Œ"| 
                    |¦  «         ŒPt          j        d|d›d�g|¢R Ž S )	z3decode Z85 bytes to raw bytes, accepts ASCII stringÚasciiz4string argument should contain only ASCII charactersr   z&Z85 length must be multiple of 5, not r   r   r   r   )Ú
isinstanceÚstrr%   ÚUnicodeEncodeErrorr   r   ÚrangeÚ	enumerater   ÚZ85MAPr   r   Úpack)Úz85bytesr    r!   r   ÚvalueÚjr$   s          r	   Údecoder2   (   s=  € å�(�CÑ Ô ð Uð	UØ—’ wÑ/Ô/ˆHˆHøÝ!ð 	Uð 	Uð 	UÝÐSÑTÔTÐTð	Uøøøõ ˆ8�}„}�qÑð SÝÐQÅ#ÀhÁ-Ä-ÐQÐQÑRÔRÐRå�(‰mŒm˜qÑ €GØ€FÝ�1•c˜(‘m”m QÑ'Ô'ð ð ˆØˆÝ"¥4™œð 	6ð 	6‰IˆAˆvØ•V˜H Q¨¡UœOÔ,¨vÑ5Ñ5ˆEˆEØ�Š�eÑÔÐÐÝŒ;Ð'˜7Ð'Ð'Ð'Ð'Ð1¨&Ð1Ð1Ð1Ð1s	   —- ­A)Ú__doc__Ú
__future__r   r   r   r,   r-   r+   r   r%   r2   r   r   r	   ú<module>r5      sŸ   ððð ð #Ð "Ð "Ð "Ð "Ð "à €€€ð d€à	3Ð	3˜y˜y¨Ñ2Ô2Ð	3Ñ	3Ô	3€à Ð �u�u˜Q‘x”xÐ Ñ Ô    2 Ô&€ðð ð ð 2ð 2ð 2ð 2ð 2r   