§
    ³eîiO	  ã                  ó0   — d Z ddlmZ  G d„ d¦  «        ZdS )zˆ
An implementation of a bitwise prefix tree specially built for decoding
Huffman-coded content where we already know the Huffman table.
é    )Úannotationsc                  ó"   — e Zd ZdZdd„Zdd„ZdS )ÚHuffmanEncoderzj
    Encodes a string according to the Huffman encoding table defined in the
    HPACK specification.
    Úhuffman_code_listú	list[int]Úhuffman_code_list_lengthsÚreturnÚNonec                ó"   — || _         || _        d S )N)r   r   )Úselfr   r   s      úQ/home/div/.hermes/hermes-agent/venv/lib/python3.11/site-packages/hpack/huffman.pyÚ__init__zHuffmanEncoder.__init__   s   € Ø!2ˆÔØ)BˆÔ&Ð&Ð&ó    Úbytes_to_encodeúbytes | NoneÚbytesc                óò  — |sdS d}d}|D ]7}| j         |         }| j        |         d|dz   z  dz
  z  }||z  }||z  }||z  }Œ8d|dz  z
  dz  }||z  }|d|z  dz
  z  }t          |¦  «        dd…                              d¦  «        }t	          |¦  «        dz  dk    rd|z   n|}||z   dz  }	|	dz  }
t	          |¦  «        |
k    r|
t	          |¦  «        z
  }d|z  |z   }t
                               |¦  «        S )	zm
        Given a string of bytes, encodes them according to the HPACK Huffman
        specification.
        r   r   é   é   é   NÚLÚ0)r   r   ÚhexÚrstripÚlenr   Úfromhex)r   r   Ú	final_numÚfinal_int_lenÚbyteÚbin_int_lenÚbin_intÚbits_to_be_paddedÚsÚtotal_bytesÚexpected_digitsÚmissing_digitss               r   ÚencodezHuffmanEncoder.encode   sW  € ð ð 	Ø�3àˆ	Øˆð
 $ð 	)ð 	)ˆDØÔ8¸Ô>ˆKØÔ,¨TÔ2Ø�k A‘oÑ&¨Ñ*ñˆGð ˜+Ñ%ˆIØ˜Ñ ˆIØ˜[Ñ(ˆMˆMð  -°!Ñ"3Ñ4¸Ñ9ÐØÐ'Ñ'ˆ	Ø�aÐ,Ñ,°Ñ1Ñ1ˆ	õ �	‰NŒN˜1˜2˜2Ô×%Ò% cÑ*Ô*ˆõ ˜1‘v”v ‘z Q’�ˆC�!‰GˆG¨Aˆð
 %Ð'8Ñ8¸QÑ>ˆØ%¨™/ˆåˆq‰6Œ6�_Ò$Ð$Ø,­s°1©v¬vÑ5ˆNØ�~Ñ%¨Ñ*ˆAå�}Š}˜QÑÔÐr   N)r   r   r   r   r	   r
   )r   r   r	   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r'   © r   r   r   r      sJ   € € € € € ðð ð
Cð Cð Cð Cð. ð . ð . ð . ð . ð . r   r   N)r+   Ú
__future__r   r   r,   r   r   ú<module>r.      sU   ððð ð #Ð "Ð "Ð "Ð "Ð "ð8 ð 8 ð 8 ð 8 ð 8 ñ 8 ô 8 ð 8 ð 8 ð 8 r   