a
    db                  2   @   s  d dl mZ d dl mZ d dlmZ d dlmZ d dlmZm	Z	m
Z
mZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ dgZejZG dd deZG dd deZG dd deZe ZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd  d eZ G d!d" d"eZ!G d#d$ d$e!Z"G d%d& d&e"Z#G d'd( d(e#Z$G d)d* d*e#Z%G d+d, d,e"Z&G d-d. d.e&Z'G d/d0 d0e&Z(G d1d2 d2e!Z)G d3d4 d4eZ*G d5d6 d6eZ+G d7d8 d8eZ,G d9d: d:eZ-G d;d< d<eZ.G d=d> d>eZ/G d?d@ d@eZ0G dAdB dBeZ1G dCdD dDeZ2G dEdF dFeZ3G dGdH dHeZ4G dIdJ dJeZ5G dKdL dLeZ6G dMdN dNeZ7G dOdP dPeZ8ej9j:e ej;j:e ej<j:e ej=j:e ej>j:e ej?j:e ej@j:e ejAj:e  ejBj:e# ejCj:e& ejDj:e) ejEj:e+ ejFj:e, ejGj:e- ejHj:e. ejIj:e/ ejJj:e0 ejKj:e1 ejLj:e2 ejMj:e3 ejNj:e4 ejOj:e5 ejPj:e6 ejQj:e7 ejRj:e8 iZSejCjTe' ejUjTe( ejBjTe$ ejVjTe% ejDjTe) ejWjTe* iZXeSY D ]8ZZeZj[dQureZj[j\jTZTeTdQureTeXvreZeXeT< qdRdS e]dTD \
Z^Z_Z`ZaZbZcZdZeZfZgG dUdV dVeZheheSeXZidQS )W    )debug)error)eoo)
from_bytes)oct2int	octs2ints	ints2octsnull)base)char)tag)tagmap)univ)usefuldecodec                   @   s$   e Zd ZdZdddZdddZdS )AbstractDecoderNc           	      K   s   t d|f d S )NzDecoder not implemented for %sr   PyAsn1Error	self	substrateasn1SpectagSetlengthstate	decodeFunsubstrateFunoptions r   i/home/tom/ab/renpy-build/tmp/install.linux-x86_64/lib/python3.9/site-packages/pyasn1/codec/ber/decoder.pyvalueDecoder   s    zAbstractDecoder.valueDecoderc           	      K   s   t d|f d S )Nz5Indefinite length mode decoder not implemented for %sr   r   r   r   r   indefLenValueDecoder!   s    z$AbstractDecoder.indefLenValueDecoder)NNNNN)NNNNN)__name__
__module____qualname__protoComponentr    r!   r   r   r   r   r      s     
  r   c                   @   s    e Zd Zedd Zdd ZdS )AbstractSimpleDecoderc                 C   s   |d | ||d  fS Nr   )
asn1Objectr   r   r   r   r   substrateCollector)   s    z(AbstractSimpleDecoder.substrateCollectorc                 K   s@   | dr|S |d u r&| jj||dS |tu r2|S ||S d S )NZnativer   )getr%   clonenoValuer   r   r   valuer   r   r   r   _createComponent-   s    
z&AbstractSimpleDecoder._createComponentN)r"   r#   r$   staticmethodr)   r0   r   r   r   r   r&   (   s   
r&   c                   @   s*   e Zd ZedZdddZdddZdS )	ExplicitTagDecoder Nc                 K   s^   |r"|| j ||dfi |||S |d | ||d   }	}
||	|||fi |\}}||
fS )Nr3   )r0   )r   r   r   r   r   r   r   r   r   headtailr/   _r   r   r   r    ;   s    zExplicitTagDecoder.valueDecoderc                 K   st   |r"|| j ||dfi |||S |||||fi |\}	}||fddi|\}
}|
tju rf|	|fS tdd S )Nr3   allowEooTz Missing end-of-octets terminator)r0   r   endOfOctetsr   r   )r   r   r   r   r   r   r   r   r   r/   	eooMarkerr   r   r   r!   K   s    
z'ExplicitTagDecoder.indefLenValueDecoder)NNNNN)NNNNNr"   r#   r$   r   Anyr%   r    r!   r   r   r   r   r2   8   s   
  
  r2   c                   @   s    e Zd ZedZdddZdS )IntegerDecoderr   Nc                 K   sx   |d j tjkrtd|d | ||d   }	}
|	sR| j||dfi ||
fS t|	dd}| j|||fi ||
fS )Nr   Simple tag format expectedT)signed)	tagFormatr   tagFormatSimpler   r   r0   r   )r   r   r   r   r   r   r   r   r   r4   r5   r/   r   r   r   r    e   s    
zIntegerDecoder.valueDecoder)NNNNN)r"   r#   r$   r   Integerr%   r    r   r   r   r   r<   b   s   
  r<   c                   @   s   e Zd ZedZdd ZdS )BooleanDecoderr   c                 K   s    t j| |||rdpdfi |S )N   r   )r<   r0   r.   r   r   r   r0   z   s    zBooleanDecoder._createComponentN)r"   r#   r$   r   Booleanr%   r0   r   r   r   r   rB   w   s   
rB   c                   @   s.   e Zd ZedZdZdddZd	ddZdS )
BitStringDecoderr   TNc                 K   s\  |d | ||d   }	}
|r<|| j ||tfi |||S |	sJtd|d jtjkrt|	d }|dkr|td| | jj	|	dd  d|d}| j |||fi ||
fS | j
std| jj | j}| jj	tdd	}|	rB||	| jfd
|i|\}}	t|d }|dkr$td| | jj	|dd  d||d}q| j |||fi ||
fS )NzEmpty BIT STRING substrater      Trailing bits overflow %srC   T)internalFormatpadding*Constructed encoding form prohibited at %srH   r   rH   prependrI   )r0   r-   r   r   r?   r   r@   r   r%   fromOctetStringsupportConstructedForm	__class__r"   r)   r	   )r   r   r   r   r   r   r   r   r   r4   r5   trailingBitsr/   	bitString	componentr   r   r   r       sF    


zBitStringDecoder.valueDecoderc                 K   s   |r"|| j ||tfi |||S | j}| jjtdd}	|r||| jf|dd|\}
}|
tju rfqt|
d }|dkrt	
d| | jj|
dd  d|	|d}	q8t	d	| j |||	fi ||fS )
NTrK   r   r7   r   rF   rG   rC   rL   !No EOO seen before substrate ends)r0   r-   r)   r%   rN   r	   r   r8   r   r   r   SubstrateUnderrunError)r   r   r   r   r   r   r   r   r   rR   rS   rQ   r   r   r   r!      s0    



z%BitStringDecoder.indefLenValueDecoder)NNNNN)NNNNN)	r"   r#   r$   r   	BitStringr%   rO   r    r!   r   r   r   r   rE   ~   s   
  
3  rE   c                   @   s.   e Zd ZedZdZdddZd	ddZdS )
OctetStringDecoderr3   TNc                 K   s   |d | ||d   }	}
|r<|| j ||tfi |||S |d jtjkrf| j |||	fi ||
fS | js~td| jj	 | j
}t}|	r||	| jfd|i|\}}	||7 }q| j |||fi ||
fS )Nr   rJ   r   )r0   r-   r?   r   r@   rO   r   r   rP   r"   r)   r	   r%   )r   r   r   r   r   r   r   r   r   r4   r5   headerrS   r   r   r   r       s&    

zOctetStringDecoder.valueDecoderc                 K   s   |r0|| j ur0| j||tfi |}	||	||S | j }t}
|rr||| jf|dd|\}}|tju rhq||
|7 }
q:td| j|||
fi ||fS )NTrT   rU   )	r)   r0   r-   r	   r%   r   r8   r   rV   )r   r   r   r   r   r   r   r   r   r(   rY   rS   r   r   r   r!      s*    


z'OctetStringDecoder.indefLenValueDecoder)NNNNN)NNNNN)	r"   r#   r$   r   OctetStringr%   rO   r    r!   r   r   r   r   rX      s   
  
  rX   c                   @   s    e Zd ZedZdddZdS )NullDecoderr3   Nc                 K   sd   |d j tjkrtd|d | ||d   }	}
| j||dfi |}|	r\td| ||
fS )Nr   r=   r3   z&Unexpected %d-octet substrate for Null)r?   r   r@   r   r   r0   )r   r   r   r   r   r   r   r   r   r4   r5   rS   r   r   r   r      s    
zNullDecoder.valueDecoder)NNNNN)r"   r#   r$   r   Nullr%   r    r   r   r   r   r[     s   
  r[   c                   @   s    e Zd ZedZdddZdS )ObjectIdentifierDecoderr   Nc                 K   s  |d j tjkrtd|d | ||d   }	}
|	sBtdt|	}	d}d}t|	}||k r|	| }|d7 }|dk r||f7 }qZ|dkr|}d}|dkr|d> |d@  }||krtd	|f |	| }|d7 }q||d> | f7 }qZ|dkrZtd
qZd|d   krdkr,n n
d| }n|d|d   krHdkrjn nd|d d f|dd   }n>|d dkrd|d d f|dd   }ntd|	d  | j|||fi ||
fS )Nr   r=   zEmpty substrater   rC      rF      z#Short substrate for sub-OID past %sz"Invalid octet 0x80 in OID encoding'   )r   (   O   P      zMalformed first OID octet: %s)	r?   r   r@   r   r   r   lenrV   r0   )r   r   r   r   r   r   r   r   r   r4   r5   oidindexZsubstrateLenZsubIdZ	nextSubIdr   r   r   r    /  sH    



 
 z$ObjectIdentifierDecoder.valueDecoder)NNNNN)r"   r#   r$   r   ObjectIdentifierr%   r    r   r   r   r   r]   ,  s   
  r]   c                   @   s   e Zd Ze ZdddZdS )RealDecoderNc                 K   s  |d j tjkrtd|d | ||d   }	}
|	sR| j||dfi ||
fS t|	d }|	dd  }	|d@ r|	std|d@ d }|dkrt|	d }|	dd  }	|	d | |	|d   }}	|r|	std	t|d d@ rd
pd}|r|dK }|t|d O }|dd  }q|d? d@ }|dkr>td|dkrR|d9 }n|dkrd|d9 }d}|	r|dK }|t|	d O }|	dd  }	qh|d@ r| }|d? d@ }|d| 9 }|d|f}n|d@ r|d@ rdpd}n|d@ dkr|	stdz`|d@ dkr(t|	ddf}n>|d@ dkr@t|	}n&|d@ dkrXt|	}nt	d| W n t
y   t	dY n0 nt	d| | j|||fi ||
fS )Nr   r=   g        rC   r^   zIncomplete floating-point value      zReal exponent screwed   rd   zIllegal Real base@   z-infinf   
   zUnknown NR (tag %s)zBad character Real syntaxzUnknown encoding (tag %s))r?   r   r@   r   r   r0   r   intfloatrV   
ValueError)r   r   r   r   r   r   r   r   r   r4   r5   foneoebpZsfr/   r   r   r   r    h  s|    













zRealDecoder.valueDecoder)NNNNN)r"   r#   r$   r   Realr%   r    r   r   r   r   ri   e  s     ri   c                   @   s   e Zd ZdZdS )AbstractConstructedDecoderN)r"   r#   r$   r%   r   r   r   r   r|     s   r|   c                   @   sB   e Zd ZdZdZdd Zdd ZdddZddd	Zdd
dZ	dS )UniversalConstructedTypeDecoderNc                 C   s
   t  d S r'   NotImplementedError)r   r(   idxr   r   r   _getComponentTagMap  s    z3UniversalConstructedTypeDecoder._getComponentTagMapc                 C   s
   t  d S r'   r~   )r   r(   r   r   r   r   r   _getComponentPositionByType  s    z;UniversalConstructedTypeDecoder._getComponentPositionByTypec                 K   s   g }t  }|rF||fi |\}}|tju r.qF|| ||j q
t|dkrZ| j}n| j}|j	t
j|jjg|jR  d}	t|D ]\}
}|	j|
|dddd q|	|fS )NrC   r*   FverifyConstraints	matchTagsmatchConstraints)setr   r8   appendaddr   re   protoRecordComponentprotoSequenceComponentr,   r   TagSetbaseTagZ	superTags	enumeratesetComponentByPosition)r   r   r   r   r   
componentsZcomponentTypesrS   r%   r(   r   r   r   r   _decodeComponents  s*    

z1UniversalConstructedTypeDecoder._decodeComponentsc                 K   s  |d j tjkrtd|d | ||d   }	}
|d ur|d urN| }n&| jd urh| jj|d}n| j| jf}||||S |d u r| j	|	f||d|\}}|rtdt
| ||
fS | }|jtjjtjjfv r8|j}|jtjjk}| o|j }t }d}|	r |s"d }nx|r0|j}njzD|rD|| j}n.|| js\|| jrh||}n
|| j}W n$ ty   td|f Y n0 ||	|fi |\}}	|s|r|r||j}n&|| js|| jr||j|}|j||dddd || |d	7 }q|r.|j|sFtd
|jj  |j!r6|"di }|sn|"ddr6t#|j$D ]\}}|j%sqx|jr|&|j'sqx|(|j%j)}z|| }W n@ t*y    z|j%| }W n t*y   Y Y qxY n0 Y n0 ||&|+ |d\}}||| qxn|,  nN| }|j}d}|	r||	|fi |\}}	|j||dddd |d	7 }qJ||
fS )Nr   Constructed tag format expectedr*   )r   r   z%Unused trailing %d octets encountered"Excessive components decoded at %rFr   rC   ,ASN.1 object %s has uninitialized components	openTypesdecodeOpenTypes)r   )-r?   r   tagFormatConstructedr   r   r,   r%   r   r   r   re   typeIdr   SequenceSetcomponentTypehasOptionalOrDefaultr   tagMapUniquer(   
isOptionalisDefaultedgetTagMapNearPosition
IndexErrorgetPositionByTypeeffectiveTagSetgetPositionNearTyper   r   requiredComponentsissubsetrP   r"   hasOpenTypesr+   r   
namedTypesopenTypegetComponentByPositionisValuegetComponentByNamenameKeyErrorasOctetsverifySizeSpec)r   r   r   r   r   r   r   r   r   r4   r5   r(   Ztrailingr   	isSetTypeisDeterministicseenIndicesr   r   rS   r   	namedTypegoverningValuer   restr   r   r   r      s    







z,UniversalConstructedTypeDecoder.valueDecoderc                 K   s  |d j tjkrtd|d urf|d ur4| }	n&| jd urN| jj|d}	n| j| jf}	||	||S |d u r| j	|f||dd|S | }	|j
tjj
tjj
fv r*|	j}
|	j
tjj
k}| o|
j }t }d}|rt|
|krd }nv|r|
j}njzD|r|
| j}n.|
| js$|
| jr0|
|}n
|
| j}W n$ ty`   td|	f Y n0 |||fddi|\}}|tju rq|s|
r|r|
|j}n&|
| js|
| jr|
|j|}|	j||dddd	 || |d
7 }qtd|
r|
j !|s*td|	j"j# |
j$r |%dd }|sR|%ddr(t&|
j'D ]\}}|j(spq\|jr|	)|j*sq\|	+|j(j,}z|| }W n@ t-y   z|j(| }W n t-y   Y Y q\Y n0 Y n0 ||	)|. |dd\}}|tjur\|	|| q\n|	/  nl| }	|j}d}|r|||fddi|\}}|tju rlq|	j||dddd	 |d
7 }q<td|	|fS )Nr   r   r*   T)r   r   r7   r   r7   Fr   rC   rU   r   r   r   )r   r7   )0r?   r   r   r   r   r,   r%   r   r   r   r   r   r   r   r   r   r   re   r   r(   r   r   r   r   r   r8   r   r   r   r   r   rV   r   r   rP   r"   r   r+   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r(   r   r   r   r   r   rS   r   r   r   r   r   r   r   r   r   r!   f  s    







z4UniversalConstructedTypeDecoder.indefLenValueDecoder)NN)NNNNN)NNNNN)
r"   r#   r$   r   r   r   r   r   r    r!   r   r   r   r   r}     s   
#  
   r}   c                   @   s   e Zd Ze Ze ZdS )SequenceOrSequenceOfDecoderN)r"   r#   r$   r   r   r   
SequenceOfr   r   r   r   r   r     s   r   c                   @   s   e Zd Ze ZdS )SequenceDecoderN)r"   r#   r$   r   r   r%   r   r   r   r   r     s   r   c                   @   s   e Zd Ze ZdS )SequenceOfDecoderN)r"   r#   r$   r   r   r%   r   r   r   r   r      s   r   c                   @   s   e Zd Ze Ze ZdS )SetOrSetOfDecoderN)r"   r#   r$   r   r   r   SetOfr   r   r   r   r   r     s   r   c                   @   s   e Zd Ze ZdS )
SetDecoderN)r"   r#   r$   r   r   r%   r   r   r   r   r   	  s   r   c                   @   s   e Zd Ze ZdS )SetOfDecoderN)r"   r#   r$   r   r   r%   r   r   r   r   r     s   r   c                   @   s(   e Zd Ze ZdddZdddZdS )ChoiceDecoderNc                 K   s   |d | ||d   }	}
|d u r2| j j|d}n| }|rJ||||S |j|krn||	|jfi |\}}	n||	|j|||fi |\}}	|j}|j||ddddd ||
fS )Nr*   Fr   r   r   Z	innerFlag)r%   r,   r   ZcomponentTagMapr   setComponentByType)r   r   r   r   r   r   r   r   r   r4   r5   r(   rS   r   r   r   r   r      s4    

zChoiceDecoder.valueDecoderc                 K   s   |d u r| j j|d}	n| }	|r0||	||S |	j|kr|||	jjfi |\}
}||fddi|\}}|tjurtdn |||	jj|||fi |\}
}|
j	}|	j
||
ddddd |	|fS )Nr*   r7   TrU   Fr   )r%   r,   r   r   r   r   r8   r   r   r   r   )r   r   r   r   r   r   r   r   r   r(   rS   r9   r   r   r   r   r!   9  sD    




z"ChoiceDecoder.indefLenValueDecoder)NNNNN)NNNNN)r"   r#   r$   r   Choicer%   r    r!   r   r   r   r   r     s     
%  r   c                   @   s(   e Zd Ze ZdddZdddZdS )
AnyDecoderNc                 K   s   |d u s|d ur:||j kr:|d }	|t|	t| 7 }|	}|r\|| j||tfi |||S |d | ||d   }
}| j|||
fi ||fS )NfullSubstrate)r   re   r0   r-   )r   r   r   r   r   r   r   r   r   r   r4   r5   r   r   r   r    e  s    zAnyDecoder.valueDecoderc                 K   s   |d ur||j krt}	n|d }
|
d t|  }	| j}|rt|| jurt| j||tfi |}|||	| |t|	 S | j}|r|||f|dd|\}}|tju rq|	|7 }	qzt	
d|r|	|fS | j|||	fi ||fS d S )Nr   TrT   rU   )r   r	   re   r%   r)   r0   r-   r   r8   r   rV   )r   r   r   r   r   r   r   r   r   rY   r   r(   rS   r   r   r   r!   x  s2    


zAnyDecoder.indefLenValueDecoder)NNNNN)NNNNNr:   r   r   r   r   r   b  s     
  r   c                   @   s   e Zd Ze ZdS )UTF8StringDecoderN)r"   r#   r$   r   
UTF8Stringr%   r   r   r   r   r     s   r   c                   @   s   e Zd Ze ZdS )NumericStringDecoderN)r"   r#   r$   r   NumericStringr%   r   r   r   r   r     s   r   c                   @   s   e Zd Ze ZdS )PrintableStringDecoderN)r"   r#   r$   r   PrintableStringr%   r   r   r   r   r     s   r   c                   @   s   e Zd Ze ZdS )TeletexStringDecoderN)r"   r#   r$   r   TeletexStringr%   r   r   r   r   r     s   r   c                   @   s   e Zd Ze ZdS )VideotexStringDecoderN)r"   r#   r$   r   VideotexStringr%   r   r   r   r   r     s   r   c                   @   s   e Zd Ze ZdS )IA5StringDecoderN)r"   r#   r$   r   	IA5Stringr%   r   r   r   r   r     s   r   c                   @   s   e Zd Ze ZdS )GraphicStringDecoderN)r"   r#   r$   r   GraphicStringr%   r   r   r   r   r     s   r   c                   @   s   e Zd Ze ZdS )VisibleStringDecoderN)r"   r#   r$   r   VisibleStringr%   r   r   r   r   r     s   r   c                   @   s   e Zd Ze ZdS )GeneralStringDecoderN)r"   r#   r$   r   GeneralStringr%   r   r   r   r   r     s   r   c                   @   s   e Zd Ze ZdS )UniversalStringDecoderN)r"   r#   r$   r   UniversalStringr%   r   r   r   r   r     s   r   c                   @   s   e Zd Ze ZdS )BMPStringDecoderN)r"   r#   r$   r   	BMPStringr%   r   r   r   r   r     s   r   c                   @   s   e Zd Ze ZdS )ObjectDescriptorDecoderN)r"   r#   r$   r   ObjectDescriptorr%   r   r   r   r   r     s   r   c                   @   s   e Zd Ze ZdS )GeneralizedTimeDecoderN)r"   r#   r$   r   GeneralizedTimer%   r   r   r   r   r     s   r   c                   @   s   e Zd Ze ZdS )UTCTimeDecoderN)r"   r#   r$   r   UTCTimer%   r   r   r   r   r     s   r   Nc                 C   s   g | ]}|qS r   r   ).0xr   r   r   
<listcomp>      r   rq   c                   @   s<   e Zd ZeZe ZdZi fddZddde	ddfddZ
dS )DecoderTc                 C   s&   || _ || _i | _i | _td| _d S )N)r   r   )_Decoder__tagMap_Decoder__typeMap_Decoder__tagCache_Decoder__tagSetCacher   _Decoder__eooSentinel)r   tagMaptypeMapr   r   r   __init__  s
    zDecoder.__init__Nc                  K   s6  t jt j@ rt j}	nd }	|	r<|	dt j|t|t |f  |dd}
|
r| jr|d d | jkr|	rp|	d t	j
|dd  fS t}| j}| j}| j}| j}|}|tur|tu r0|stdd}|d }|d	d  }z|| }W n ty   t|}|d
@ }|d@ }|d@ }|dkrd}d}d}zJt|| }|d	7 }|dK }||d@ O }|d@ s0qjq0||d  }W n ty   tdY n0 tj|||d}|r|||< Y n0 |d u r|rz|| }W n( ty    td|}|||< Y n0 ntd|}n|| }t}|	r0|	d|  |tu rn|sJtdt|d }|dk rjd	}|}n~|dkr|d@ }t|d	|d	  }t||krtd|t||f d}|D ]}|dK }||O }q|d	7 }nd	}d}||d  }|dkr| js6tdn$t||k r6td|t|  t}|	rn|	d|t |dkrZ|pd|d | f  |tu r|d u rt}nt}|tu r^z|| }W n ty   d }Y n0 |rt }n>z||d d	  }W n ty   d }Y n0 |rt }nt!}|	r^|	d|r |j"j#p"d|t u r2dp4df  t j$|d u rRdpZ|j%j"j# |tu rv|j"t&j'u r4z|| }W n ty   d }Y n0 |	rl|	d  |j() D ]\}}|	d!||j"j#f  q|j*r|	d" |j*) D ]\}}|	d!||j"j#f  q|	d#|d u r"dp(|+ |f  n8||j,ksL||j-v rh|}|	rl|	d$|j"j#  nd }|d urz$||j. }|	r|	d%|j.f  W nb ty   t|j,j/|j,j/}z || }|	r|	d&|f  W n ty   d }Y n0 Y n0 |r|}t }nt!}nd }t!}|	rv|	d'|t u r:|j"j#p<d|t u rLdpNdf  t j$|d u rldpr|j"j# |t u rL|0d(ds|sd)d* }|j1|d+ |dkr|j2||||t| |fi |\}}n"|j3||||t| |fi |\}}|	rD|	d,|j"j#|j"j#t4|t5j6r&|7 p(||r:t |p<df  t}q|t!u r|r|d j8tj9kr|d j:tj;krt<}t }n
d }| j=}|	r|	d-|r|j"j#pd|t u rdpd.f  |t>u r| j?}|	r|	d/|j"j#  t }|t@u rtd0||f q|	r.t j  |	d1t j  ||fS )2NzWdecoder called at scope %s with state %d, working with up to %d octets of substrate: %sr7   Frd   zend-of-octets sentinel foundz"Short octet stream on tag decodingTr   rC   rp          rF   r_   r^   z'Short octet stream on long tag decoding)tagClassr?   tagIdr   z$tag decoded into %s, decoding lengthz%Short octet stream on length decodingz%s<%s at %srm   rl   z6Indefinite length encoding not supported by this codecz%d-octet shortz6value length decoded into %d, payload substrate is: %sz/codec %s chosen by a built-in type, decoding %sz<none>r/   zas explicit tag?z!candidate ASN.1 spec is a map of:z
  %s -> %szbut neither of: z,new candidate ASN.1 spec is %s, chosen by %szcandidate ASN.1 spec is %sz8value decoder chosen for an ambiguous type by type ID %szvalue decoder chosen by base %sz*codec %s chosen by ASN.1 spec, decoding %sZrecursiveFlagc                 S   s   | |d | fS r'   r   )ary   cr   r   r   <lambda>  r   z"Decoder.__call__.<locals>.<lambda>)r   z@codec %s yields type %s, value:
%s
...remaining substrate is: %szcodec %s chosen, decoding %sz
as failurezcodec %s chosen, decoding valuez%s not in asn1Spec: %rz%decoder left scope %s, call completed)Ar   loggerZflagDecoderZscopere   ZhexdumppopsupportIndefLengthr   r   r8   r-   r   r   r   r   stStopstDecodeTagr   rV   r   r   r   r   Tagr   stDecodeLengthr   r   stGetValueDecoderstGetValueDecoderByTagstGetValueDecoderByAsn1SpecstDecodeValuestTryAsExplicitTagrP   r"   pushr%   r   ZTagMapZpresentTypesitemsZ	skipTypesZprettyPrintTyper   r   r   r   r+   updater!   r    
isinstancer
   ZAsn1ItemZprettyPrintr?   r   r   ZtagClassUniversalexplicitTagDecoderdefaultErrorStatestDumpRawValuedefaultRawDecoderstErrorCondition) r   r   r   r   r   r   r   r   r   r   r7   r/   r   r   ZtagCacheZtagSetCacher   Z
isShortTagZ
firstOctetZlastTagZ
integerTagr   r?   r   ZlengthOctetIdxsizeZencodedLengthZlengthOctetZconcreteDecoderZ
chosenSpecvZ
baseTagSetr   r   r   __call__%  s    











.




0"

&

4 


F
*0


zDecoder.__call__)r"   r#   r$   r
  r  r   r	  r   r   r   r  r   r   r   r   r     s   r   )jZpyasn1r   r   Zpyasn1.codec.berr   Zpyasn1.compat.integerr   Zpyasn1.compat.octetsr   r   r   r	   Zpyasn1.typer
   r   r   r   r   r   __all__r-   objectr   r&   r2   r  r<   rB   rE   rX   r[   r]   ri   r|   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rA   r   rD   rW   rZ   r\   rh   Z
Enumeratedr{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r;   r   valuesZtypeDecoderr%   rP   ranger   r   r   r   r   r  r   r  r
  r   r   r   r   r   r   r   <module>   s   '[>9L  DP?
























 







  L