
    ytf1                        d Z ddlmZ ddlZdZ ee      D  ci c]  \  } }|| 
 c}} Z ed      D cg c]  }d|z  	 c}ddd   Zd Z	d	 Z
yc c}} w c c}w )
zPython 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.-:+=^!/*?&<>()[]{}@%$#   U   c                   t        |       dz  rt        dt        |       z        t        |       dz  }t        j                  d|z  |       }g }|D ]+  }t        D ]   }|j                  t        ||z  dz            " - t        |      S )zencode raw bytes into Z85   z$length must be multiple of 4, not %i>%dIr   )len
ValueErrorstructunpack_85sappendZ85CHARSbytes)rawbytesnvaluesvaluesencodedvoffsets         W/var/www/html/software/conda/envs/higlass/lib/python3.12/site-packages/zmq/utils/z85.pyencoder      s     8}q?#h-OPP(maG]]6G+X6FG 9 	9FNN8Q&[B$678	99 >    c                   t        | t              r	 | j                  d      } t        |       dz  rt	        dt        |       z        t        |       dz  }g }t        dt        |       d      D ]A  }d}t        t              D ]  \  }}|t        | ||z         |z  z  } |j                  |       C t        j                  d|z  g| S # t        $ r t	        d      w xY w)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 %ir   r	   )
isinstancestrr   UnicodeEncodeErrorr   r
   range	enumerater   Z85MAPr   r   pack)z85bytesr   r   ivaluejr   s          r   decoder(   )   s    (C 	Uw/H 8}qCc(mSTT(maGF1c(mQ' "4 	6IAvVHQUO,v55E	6e	
 ;;v'1&11 " 	USTT	Us   C C )__doc__
__future__r   r   r   r!   r"   r    r   r   r(   )idxcr%   s   000r   <module>r-      sj    #  d(2	3VS!!S&	3Qx !A 2&"2- 
4 s
   AA