Ë
    þéñiO	  ã                  ó(   — d Z ddlmZ  G d„ d«      Zy)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y)ÚHuffmanEncoderzj
    Encodes a string according to the Huffman encoding table defined in the
    HPACK specification.
    c                ó    — || _         || _        y )N)Úhuffman_code_listÚhuffman_code_list_lengths)Úselfr   r   s      úO/var/www/pod-logistic/pod-ai/venv/lib/python3.12/site-packages/hpack/huffman.pyÚ__init__zHuffmanEncoder.__init__   s   € Ø!2ˆÔØ)BˆÕ&ó    c                ó¼  — |syd}d}|D ];  }| j                   |   }| j                  |   d|dz   z  dz
  z  }||z  }||z  }||z  }Œ= d|dz  z
  dz  }||z  }|d|z  dz
  z  }t        |«      dd j                  d«      }t	        |«      dz  dk7  rd|z   n|}||z   dz  }	|	dz  }
t	        |«      |
k7  r|
t	        |«      z
  }d|z  |z   }t
        j                  |«      S )	zm
        Given a string of bytes, encodes them according to the HPACK Huffman
        specification.
        r   r   é   é   é   NÚLÚ0)r   r   ÚhexÚrstripÚlenÚbytesÚfromhex)r	   Úbytes_to_encodeÚ	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   s=  € ñ Øàˆ	Øˆð
 $ò 	)ˆDØ×8Ñ8¸Ñ>ˆKØ×,Ñ,¨TÑ2Ø�k A‘oÑ&¨Ñ*ñˆGð ˜+Ñ%ˆIØ˜Ñ ˆIØ˜[Ñ(‰Mð	)ð  -°!Ñ"3Ñ4¸Ñ9ÐØÐ'Ñ'ˆ	Ø�aÐ,Ñ,°Ñ1Ñ1ˆ	ô �	‹N˜1˜2Ð×%Ñ% cÓ*ˆô ˜1“v ‘z Q’ˆC�!ŠG¨Aˆð
 %Ð'8Ñ8¸QÑ>ˆØ%¨™/ˆäˆq‹6�_Ò$Ø,¬s°1«vÑ5ˆNØ�~Ñ%¨Ñ*ˆAä�}‰}˜QÓÐr   N)r   ú	list[int]r   r$   ÚreturnÚNone)r   zbytes | Noner%   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r#   © r   r
   r   r      s   „ ñó
Cô. r   r   N)r*   Ú
__future__r   r   r+   r   r
   ú<module>r-      s   ðñõ #÷8 ò 8 r   