�&ǐk�@'bJ�h�ۊL'}T� :��'2�Z#$��n�a��� �>a��`��_3d�Qpt�/�P -��#5�,�M��� �pA:©�q�����NW��ډ�A���� �9nʺج���� �TSM��{J6?7��r�@�\����D��� �׶���s�f�TJj?"��D��`?��̒� b�#�%�C*v�$�{�$����5Ծ�F�s��y�e/8��h-�f�̰&(����Gj�L:U� 2�� ����v�_k����Y��gp,�k�WF�R������_C�R��N@���R�@�ߔ?A�w9���F("iNa-S���Q�o�3tDMLh*�#4k�T/iQ��Y*�G��m����)��8�hBm/�I�,g�ﯖ���Z��}�Cz�q@´��d.����L�ŕ�,��1�Z�܌�: ̪���F+J-'��c�tvJ8��]Q-��b��y �6;*J`r_�d ��'�G ~p��)'�C,�%F��E(��2�k�����lР�z�!�=t ��_�0��f7��� ;�p�|�U �%}zt|jddWYdd}~XnXdS)Nr)structerrorrargs)r valuee)functionr r result&s z&raise_conversion_error..result)r)rrr )rr raise_conversion_error#src@seZdZdZddZddZddZeZedd Z ed d Z e Z d d Z ddZ e ZeddZeddZddZeZddZeZeZddZddZddZdS)rz0Pack various data representations into a buffer.cCs |jdS)N)reset)r r r r r 2szPacker.__init__cCs t|_dS)N)r _Packer__buf)r r r r r5sz Packer.resetcCs |jjS)N)rgetvalue)r r r r get_buffer8szPacker.get_buffercCs|jjtjd|dS)Nz>L)rwriterpack)r xr r r pack_uint=szPacker.pack_uintcCs|jjtjd|dS)Nz>l)rr!rr")r r#r r r pack_intAszPacker.pack_intcCs"|r|jjdn |jjddS)Nss)rr!)r r#r r r pack_boolGszPacker.pack_boolcCsy|j|d?d@Wn8ttjfk rN}zt|jddWYdd}~XnXy|j|d@Wn8ttjfk r}zt|jddWYdd}~XnXdS)N lr)r$ TypeErrorrrrr)r r#rr r r pack_uhyperKs"zPacker.pack_uhypercCs|jjtjd|dS)Nz>f)rr!rr")r r#r r r pack_floatWszPacker.pack_floatcCs|jjtjd|dS)Nz>d)rr!rr")r r#r r r pack_double[szPacker.pack_doublecCsP|dkrtd|d|}|ddd}||t|d}|jj|dS)Nrz fstring size must be nonnegative) ValueErrorlenrr!)r nsdatar r r pack_fstring_s  zPacker.pack_fstringcCs"t|}|j||j||dS)N)r0r$r4)r r2r1r r r pack_stringis zPacker.pack_stringcCs.x|D]}|jd||qW|jddS)Nr)r$)r list pack_itemitemr r r pack_listqs   zPacker.pack_listcCs.t||krtdx|D] }||qWdS)Nzwrong array size)r0r/)r r1r7r8r9r r r pack_farrayws  zPacker.pack_farraycCs$t|}|j||j|||dS)N)r0r$r;)r r7r8r1r r r pack_array}s zPacker.pack_arrayN)rrrrr rr Zget_bufrr$r%Z pack_enumr&r)Z pack_hyperr*r+r4Z pack_fopaquer5Z pack_opaqueZ pack_bytesr:r;r<r r r r r/s*     c@seZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ e Z ddZ ddZddZddZddZddZeZddZeZeZd d!Zd"d#Zd$d%Zd&S)'rz;Unpacks various data representations from the given buffer.cCs|j|dS)N)r)r r3r r r r szUnpacker.__init__cCs||_d|_dS)Nr)_Unpacker__buf_Unpacker__pos)r r3r r r rszUnpacker.resetcCs|jS)N)r>)r r r r get_positionszUnpacker.get_positioncCs ||_dS)N)r>)r Zpositionr r r set_positionszUnpacker.set_positioncCs|jS)N)r=)r r r r r szUnpacker.get_buffercCs|jt|jkrtddS)Nzunextracted data remains)r>r0r=r)r r r r donesz Unpacker.donecCsB|j}|d|_}|j||}t|dkr2ttjd|dS)Nr-z>Lr)r>r=r0EOFErrorrunpack)r ijr3r r r unpack_uints  zUnpacker.unpack_uintcCsB|j}|d|_}|j||}t|dkr2ttjd|dS)Nr-z>lr)r>r=r0rBrrC)r rDrEr3r r r unpack_ints  zUnpacker.unpack_intcCs t|jS)N)boolrG)r r r r unpack_boolszUnpacker.unpack_boolcCs |j}|j}t|d>|BS)Nr')rFint)r hilor r r unpack_uhyperszUnpacker.unpack_uhypercCs|j}|dkr|d}|S)Nll)rM)r r#r r r unpack_hyperszUnpacker.unpack_hypercCsB|j}|d|_}|j||}t|dkr2ttjd|dS)Nr-z>fr)r>r=r0rBrrC)r rDrEr3r r r unpack_floats  zUnpacker.unpack_floatcCsB|j}|d|_}|j||}t|dkr2ttjd|dS)Nz>dr)r>r=r0rBrrC)r rDrEr3r r r unpack_doubles  zUnpacker.unpack_doublecCsT|dkrtd|j}||ddd}|t|jkrr0r=rB)r r1rDrEr r r unpack_fstringszUnpacker.unpack_fstringcCs|j}|j|S)N)rFrR)r r1r r r unpack_stringszUnpacker.unpack_stringcCsFg}x<|j}|dkrP|dkr.td|f|}|j|qW|S)Nrr6z0 or 1 expected, got %r)rFrappend)r unpack_itemr7r#r9r r r unpack_listszUnpacker.unpack_listcCs&g}xt|D]}|j|qW|S)N)rangerT)r r1rUr7rDr r r unpack_farrayszUnpacker.unpack_farraycCs|j}|j||S)N)rFrX)r rUr1r r r unpack_arrayszUnpacker.unpack_arrayN)rrrrr rr?r@r rArFrGZ unpack_enumrIrMrNrOrQrRZunpack_fopaquerSZ unpack_opaqueZ unpack_bytesrVrXrYr r r r rs.  ) rrior functoolsr__all__ Exceptionrrrrrr r r r s    U