o ­=?hã@sr ddlZddlmZddlmZgd¢ZGdd„deƒZGdd„deƒZd d „Z Gd d „d ƒZ Gd d„dƒZ dS)éN)ÚBytesIO©Úwraps)ÚErrorÚPackerÚUnpackerÚConversionErrorc@s&eZdZ dd„Zdd„Zdd„ZdS)rcCó ||_dS©N)Úmsg)Úselfr ©r ú-/opt/alt/python310/lib64/python3.10/xdrlib.pyÚ__init__ó zError.__init__cCó t|jƒSr )Úreprr ©r r r rÚ__repr__rzError.__repr__cCrr )Ústrr rr r rÚ__str__rz Error.__str__N)Ú__name__Ú __module__Ú __qualname__rrrr r r rrs   rc@s eZdZdS)rN)rrrr r r rr srcs tˆƒ‡fdd„ƒ}|S)Nc s8zˆ||ƒWStjy}zt|jdƒd‚d}~ww©Nr)ÚstructÚerrorrÚargs)r ÚvalueÚe©Úfunctionr rÚresult&s  €ÿz&raise_conversion_error..resultr)r!r"r r rÚraise_conversion_error#sr#c@s¦eZdZ dd„Zdd„Zdd„ZeZedd„ƒZed d „ƒZ e Z d d „Z d d„Z e Z edd„ƒZedd„ƒZdd„ZeZdd„ZeZeZdd„Zdd„Zdd„ZdS)rcCs | ¡dSr ©Úresetrr r rr2ó zPacker.__init__cCs tƒ|_dSr )rÚ _Packer__bufrr r rr%5r&z Packer.resetcCs |j ¡Sr )r'Úgetvaluerr r rÚ get_buffer8rzPacker.get_buffercCó|j t d|¡¡dS)Nú>L©r'ÚwriterZpack©r Úxr r rÚ pack_uint=ózPacker.pack_uintcCr*)Nú>lr,r.r r rÚpack_intAr1zPacker.pack_intcCs$|r |j d¡dS|j d¡dS)Nss)r'r-r.r r rÚ pack_boolGszPacker.pack_boolc CsŠz | |d?d@¡Wnttjfy"}zt|jdƒd‚d}~wwz | |d@¡WdSttjfyD}zt|jdƒd‚d}~ww)Né lÿÿr)r0Ú TypeErrorrrrr)r r/rr r rÚ pack_uhyperKs€ÿ€ÿzPacker.pack_uhypercCr*)Nú>fr,r.r r rÚ pack_floatWr1zPacker.pack_floatcCr*)Nú>dr,r.r r rÚ pack_double[r1zPacker.pack_doublecCsP|dkrtdƒ‚|d|…}|ddd}||t|ƒd}|j |¡dS)Nrú fstring size must be nonnegativeééó)Ú ValueErrorÚlenr'r-)r ÚnÚsÚdatar r rÚ pack_fstring_s  zPacker.pack_fstringcCs"t|ƒ}| |¡| ||¡dSr )rAr0rE)r rCrBr r rÚ pack_stringis zPacker.pack_stringcCs*|D] }| d¡||ƒq| d¡dS)Nér)r0)r ÚlistÚ pack_itemÚitemr r rÚ pack_listqs  zPacker.pack_listcCs*t|ƒ|kr tdƒ‚|D]}||ƒq dS)Nzwrong array size)rAr@)r rBrHrIrJr r rÚ pack_farrayws  ÿzPacker.pack_farraycCs$t|ƒ}| |¡| |||¡dSr )rAr0rL)r rHrIrBr r rÚ pack_array}s zPacker.pack_arrayN)rrrrr%r)Zget_bufr#r0r3Z pack_enumr4r7Z pack_hyperr9r;rEZ pack_fopaquerFZ pack_opaqueZ pack_bytesrKrLrMr r r rr/s4      rc@s®eZdZ dd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z e Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„ZeZdd„ZeZeZdd „Zd!d"„Zd#d$„Zd%S)&rcCs| |¡dSr r$©r rDr r rr‡szUnpacker.__init__cCs||_d|_dSr)Ú_Unpacker__bufÚ_Unpacker__posrNr r rr%Šs zUnpacker.resetcCó|jSr ©rPrr r rÚ get_positionŽózUnpacker.get_positioncCr r rR)r Zpositionr r rÚ set_position‘rzUnpacker.set_positioncCrQr )rOrr r rr)”rTzUnpacker.get_buffercCs|jt|jƒkr tdƒ‚dS)Nzunextracted data remains)rPrArOrrr r rÚdone—sÿz Unpacker.donecCóB|j}|d|_}|j||…}t|ƒdkrt‚t d|¡dS)Nr>r+r©rPrOrAÚEOFErrorrZunpack©r ÚiÚjrDr r rÚ unpack_uint›ó  zUnpacker.unpack_uintcCrW)Nr>r2rrXrZr r rÚ unpack_int£r^zUnpacker.unpack_intcCs t| ¡ƒSr )Úboolr_rr r rÚ unpack_bool­r&zUnpacker.unpack_boolcCs | ¡}| ¡}t|ƒd>|BS)Nr5)r]Úint)r ÚhiÚlor r rÚ unpack_uhyper°szUnpacker.unpack_uhypercCs| ¡}|dkr |d}|S)Nll)rer.r r rÚ unpack_hyperµszUnpacker.unpack_hypercCrW)Nr>r8rrXrZr r rÚ unpack_float»r^zUnpacker.unpack_floatcCrW)Nér:rrXrZr r rÚ unpack_doubleÃr^zUnpacker.unpack_doublecCsT|dkrtdƒ‚|j}||ddd}|t|jƒkrt‚||_|j|||…S)Nrr<r=r>)r@rPrArOrY)r rBr[r\r r rÚunpack_fstringËszUnpacker.unpack_fstringcCs| ¡}| |¡Sr )r]rj)r rBr r rÚ unpack_string×s zUnpacker.unpack_stringcCsBg} | ¡}|dkr |S|dkrtd|fƒ‚|ƒ}| |¡q)NrGrz0 or 1 expected, got %r)r]rÚappend)r Ú unpack_itemrHr/rJr r rÚ unpack_listÞsü úzUnpacker.unpack_listcCs"g}t|ƒD]}| |ƒ¡q|Sr )Úrangerl)r rBrmrHr[r r rÚ unpack_farrayés zUnpacker.unpack_farraycCs| ¡}| ||¡Sr )r]rp)r rmrBr r rÚ unpack_arrayïs zUnpacker.unpack_arrayN)rrrrr%rSrUr)rVr]r_Z unpack_enumrarerfrgrirjZunpack_fopaquerkZ unpack_opaqueZ unpack_bytesrnrprqr r r rr„s0  r) rÚiorÚ functoolsrÚ__all__Ú Exceptionrrr#rrr r r rÚs   U