a
àMÒe ã @ sF d dl Z d dlZd dlmZmZmZ d dlZd dlZG dd„ dƒZ dS )é N)ÚIteratorÚOptionalÚTuplec @ sô e Zd Zd(eedœdd„Zedœdd„Zeedœd d
„Zd)eedœd
d„Zedœdd„Z edœdd„Z
edœdd„Zedœdd„Zedœdd„Z
eedœdd„Zd*ed ddœdd „Zedd!œd"d#„Zejeedœd$d%„ƒZejedœd&d'„ƒZdS )+ÚParserr )ÚwireÚcurrentc C s0 || _ d| _t| j ƒ| _|r&| |¡ || _d S ©Nr )r r ÚlenÚendÚseekÚfurthest)Úselfr r © r ú,/usr/lib/python3.9/site-packages/dns/wire.pyÚ__init__ s
zParser.__init__)Úreturnc C s | j | j S ©N)r
r ©r
r r r Ú remaining s zParser.remaining)Úsizer c C sX |dksJ ‚|| ¡ kr tjj‚| j| j| j| … }| j|7 _t| j| jƒ| _|S r )r ÚdnsÚ exceptionÚ FormErrorr r Úmaxr )r
r Úoutputr r r Ú get_bytes s zParser.get_bytesé )Úlength_sizer c C s t | |¡d¡}| |¡S )NÚbig©ÚintÚ
from_bytesr )r
r Úlengthr r r Úget_counted_bytes s zParser.get_counted_bytesc C s | | ¡ ¡S r )r r r r r r Ú
get_remaining$ s zParser.get_remainingc C s t d| d¡¡d S )Nz!Br r ©ÚstructÚunpackr r r r r Ú get_uint8' s zParser.get_uint8c C s t d| d¡¡d S )Nz!Hé r r% r r r r Ú
get_uint16* s zParser.get_uint16c C s t d| d¡¡d S )Nz!Ié r r% r r r r Ú
get_uint32- s zParser.get_uint32c C s t | d¡d¡S )Né r r r r r r Ú
get_uint480 s zParser.get_uint48)Úformatr c C s t || t |¡¡¡S r )r&