§
    Ètºf‚5 ã                   ó˜  — d dl Z d dlZd dl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 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 dlmZ g d¢Z ej         e!ej"        ¬¦  «        Z#ej$        Z$ej%        Z% G d„ de&¦  «        Z' G d„ de'¦  «        Z( G d„ de(¦  «        Z) e)¦   «         Z* G d„ de(¦  «        Z+ G d„ de+¦  «        Z, G d„ d e(¦  «        Z- G d!„ d"e(¦  «        Z. G d#„ d$e(¦  «        Z/ G d%„ d&e(¦  «        Z0 G d'„ d(e(¦  «        Z1 G d)„ d*e(¦  «        Z2 G d+„ d,e'¦  «        Z3 G d-„ d.e3¦  «        Z4 G d/„ d0e4¦  «        Z5 G d1„ d2e5¦  «        Z6 G d3„ d4e5¦  «        Z7 G d5„ d6e4¦  «        Z8 G d7„ d8e8¦  «        Z9 G d9„ d:e8¦  «        Z: G d;„ d<e4¦  «        Z; G d=„ d>e(¦  «        Z< G d?„ d@e.¦  «        Z= G dA„ dBe.¦  «        Z> G dC„ dDe.¦  «        Z? G dE„ dFe.¦  «        Z@ G dG„ dHe.¦  «        ZA G dI„ dJe.¦  «        ZB G dK„ dLe.¦  «        ZC G dM„ dNe.¦  «        ZD G dO„ dPe.¦  «        ZE G dQ„ dRe.¦  «        ZF G dS„ dTe.¦  «        ZG G dU„ dVe.¦  «        ZH G dW„ dXe.¦  «        ZI G dY„ dZe.¦  «        ZJi ejK        jL         e+¦   «         “ejM        jL         e,¦   «         “ejN        jL         e-¦   «         “ejO        jL         e.¦   «         “ejP        jL         e/¦   «         “ejQ        jL         e0¦   «         “ejR        jL         e1¦   «         “ejS        jL         e+¦   «         “ejT        jL         e2¦   «         “ejU        jL         e5¦   «         “ejV        jL         e8¦   «         “ejW        jL         e;¦   «         “ejX        jL         e=¦   «         “ejY        jL         e>¦   «         “ejZ        jL         e?¦   «         “ej[        jL         e@¦   «         “ej\        jL         eA¦   «         “ej]        jL         eB¦   «         ej^        jL         eC¦   «         ej_        jL         eD¦   «         ej`        jL         eE¦   «         eja        jL         eF¦   «         ejb        jL         eG¦   «         ejc        jL         eH¦   «         ejd        jL         eI¦   «         eje        jL         eJ¦   «         i	¥ZfejV        jg         e9¦   «         ejh        jg         e:¦   «         ejU        jg         e6¦   «         eji        jg         e7¦   «         ejW        jg         e;¦   «         ejj        jg         e<¦   «         iZkefZlekZmef n                    ¦   «         D ]%Zoeojp        �eojp        jq        jg        Zgeg�	egekvreoekeg<   Œ&d[„  erd\¦  «        D ¦   «         \
  ZsZtZuZvZwZxZyZzZ{Z| ed]¦  «        Z} G d^„ d_e&¦  «        Z~ G d`„ dae&¦  «        Z G db„ dce&¦  «        Z€ e€¦   «         Z�dS )dé    N)Údebug)Úerror)Úeoo)ÚasSeekableStream)ÚisEndOfStream)ÚpeekIntoStream©ÚreadFromStream)Ú_MISSING)Ú
from_bytes)Úoct2intÚ	octs2intsÚ	ints2octsÚnull)ÚPyAsn1Error)Úbase)Úchar)Útag)Útagmap)Úuniv)Úuseful)ÚStreamingDecoderÚDecoderÚdecode)Úflagsc                   ó@   — e Zd ZdZ	 	 dd„Z	 	 dd„Zed„ ¦   «         ZdS )ÚAbstractPayloadDecoderNc                 ó0   — t          j        d|›�¦  «        ‚)ztDecode value with fixed byte length.

        The decoder is allowed to consume as many bytes as necessary.
        z&SingleItemDecoder not implemented for ©r   r   ©	ÚselfÚ	substrateÚasn1SpecÚtagSetÚlengthÚstateÚ	decodeFunÚsubstrateFunÚoptionss	            úW/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/pyasn1/codec/ber/decoder.pyÚvalueDecoderz#AbstractPayloadDecoder.valueDecoder*   s   € õ ÔÐÈfÈfÐ VÑWÔWÐWó    c                 ó0   — t          j        d|›�¦  «        ‚)zsDecode value with undefined length.

        The decoder is allowed to consume as many bytes as necessary.
        z3Indefinite length mode decoder not implemented for r   r    s	            r*   ÚindefLenValueDecoderz+AbstractPayloadDecoder.indefLenValueDecoder4   s   € õ ÔÐÐ[aÐ[aÐ cÑdÔdÐdr,   c                 ó   — d|vr| |d<   |S )NÚ
asn1Object© )r0   r)   s     r*   Ú_passAsn1Objectz&AbstractPayloadDecoder._passAsn1Object>   s   € à˜wÐ&Ð&Ø$.ˆG�LÑ!àˆr,   ©NNNNN)Ú__name__Ú
__module__Ú__qualname__ÚprotoComponentr+   r.   Ústaticmethodr2   r1   r,   r*   r   r   '   su   € € € € € Ø€Nð 6:Ø26ðXð Xð Xð Xð >BØ:>ðeð eð eð eð ðð ñ „\ðð ð r,   r   c                   ó*   — e Zd Zed„ ¦   «         Zd„ ZdS )ÚAbstractSimplePayloadDecoderc              #   ó:   K  — t          |||¦  «        D ]}|V — Œd S ©Nr	   )r0   r"   r%   r)   Úchunks        r*   ÚsubstrateCollectorz/AbstractSimplePayloadDecoder.substrateCollectorG   s6   è è € å# I¨v°wÑ?Ô?ð 	ð 	ˆEØˆKˆKˆKˆKð	ð 	r,   c                 ó¬   — |                      d¦  «        r|S |€| j                             ||¬¦  «        S |t          u r|S |                     |¦  «        S )NÚnative©r$   )Úgetr7   ÚcloneÚnoValue©r!   r#   r$   Úvaluer)   s        r*   Ú_createComponentz-AbstractSimplePayloadDecoder._createComponentL   s_   € Ø�;Š;�xÑ Ô ð 	)ØˆLØÐØÔ&×,Ò,¨U¸6Ð,ÑBÔBÐBØ•gÐÐØˆOà—>’> %Ñ(Ô(Ð(r,   N)r4   r5   r6   r8   r>   rG   r1   r,   r*   r:   r:   F   s<   € € € € € Øðð ñ „\ðð)ð )ð )ð )ð )r,   r:   c                   óF   — e Zd Z ej        d¦  «        Z	 	 dd„Z	 	 dd„ZdS )ÚRawPayloadDecoderÚ Nc              +   ó‚   K  — |r' | j         ||dfi |¤Ž}	 ||	|||¦  «        D ]}
|
V — Œd S  |||||fi |¤ŽD ]}|V — Œd S )NrJ   )rG   ©r!   r"   r#   r$   r%   r&   r'   r(   r)   r0   r=   rF   s               r*   r+   zRawPayloadDecoder.valueDecoderZ   s™   è è € ð ð 	Ø.˜Ô.¨x¸ÀÐOÐOÀwÐOÐOˆJà%˜ j°)¸VÀWÑMÔMð ð �Ø����àˆFà�Y˜y¨(°F¸FÐNÐNÀgÐNÐNð 	ð 	ˆEØˆKˆKˆKˆKð	ð 	r,   c              +   ó¨   K  — |r' | j         ||dfi |¤Ž}	 ||	|||¦  «        D ]}
|
V — Œd S 	  |||||fddi|¤ŽD ]}|t          j        u r d S |V — ŒŒ')NrJ   TÚallowEoo)rG   r   ÚendOfOctetsrL   s               r*   r.   z&RawPayloadDecoder.indefLenValueDecoderi   sÁ   è è € ð ð 	Ø.˜Ô.¨x¸ÀÐOÐOÀwÐOÐOˆJà%˜ j°)¸VÀWÑMÔMð ð �Ø����àˆFð	Ø"˜Ø˜x¨°ð.ð .à!ð.à%,ð.ð .ð ð �ð �CœOÐ+Ð+Ø�F�Fà����ð	r,   r3   ©r4   r5   r6   r   ÚAnyr7   r+   r.   r1   r,   r*   rI   rI   W   s\   € € € € € Ø�T”X˜b‘\”\€Nð 6:Ø26ðð ð ð ð  >BØ:>ðð ð ð ð ð r,   rI   c                   ó:   — e Zd Z ej        d¦  «        Z	 	 dd„ZdS )ÚIntegerPayloadDecoderr   Nc              +   ó  K  — |d         j         t          j        k    rt          j        d¦  «        ‚t          |||¦  «        D ]}	t          |	t          ¦  «        r|	V — Œ|	rt          |	d¬¦  «        }
nd}
 | j	        |||
fi |¤ŽV — d S )Nr   úSimple tag format expectedT)Úsigned)
Ú	tagFormatr   ÚtagFormatSimpler   r   r
   Ú
isinstanceÚSubstrateUnderrunErrorr   rG   )r!   r"   r#   r$   r%   r&   r'   r(   r)   r=   rF   s              r*   r+   z"IntegerPayloadDecoder.valueDecoder†   sµ   è è € ð
 �!Œ9Ô¥#Ô"5Ò5Ð5ÝÔ#Ð$@ÑAÔAÐAå# I¨v°wÑ?Ô?ð 	ð 	ˆEÝ˜%Õ!7Ñ8Ô8ð Ø���øàð 	Ý˜u¨TÐ2Ñ2Ô2ˆEˆEð ˆEà#ˆdÔ# H¨f°eÐGÐG¸wÐGÐGÐGÐGÐGÐGÐGr,   r3   )r4   r5   r6   r   ÚIntegerr7   r+   r1   r,   r*   rS   rS   ƒ   sE   € € € € € Ø!�T”\ !‘_”_€Nð 6:Ø26ðHð Hð Hð Hð Hð Hr,   rS   c                   ó4   — e Zd Z ej        d¦  «        Zd„ ZdS )ÚBooleanPayloadDecoderr   c                 ó4   — t          j        | |||rdpdfi |¤ŽS )Né   r   )rS   rG   rE   s        r*   rG   z&BooleanPayloadDecoder._createComponentž   s;   € Ý$Ô5Ø�(˜F E K¨aÐ$4°1ðAð AØ8?ðAð Að 	Ar,   N)r4   r5   r6   r   ÚBooleanr7   rG   r1   r,   r*   r]   r]   ›   s7   € € € € € Ø!�T”\ !‘_”_€NðAð Að Að Að Ar,   r]   c                   óJ   — e Zd Z ej        d¦  «        ZdZ	 	 dd„Z	 	 dd„ZdS )ÚBitStringPayloadDecoderr1   TNc              +   óL  K  — |r, | j         ||t          fi |¤Ž}	 ||	|||¦  «        D ]}
|
V — Œd S |st          j        d¦  «        ‚t	          |¦  «        D ]}
t          |
t          ¦  «        r|
V — Œ|
rt          j        d¦  «        ‚|d         j        t          j	        k    rºt          |d|¦  «        D ]}t          |t          ¦  «        r|V — Œt          |¦  «        }|dk    rt          j        d|z  ¦  «        ‚t          ||dz
  |¦  «        D ]}
t          |
t          ¦  «        r|
V — Œ| j                             |
d|¬¦  «        } | j         |||fi |¤ŽV — d S | j        s!t          j        d| j        j        z  ¦  «        ‚t"          rt#          d	¦  «         | j        }| j                             t&          d¬
¦  «        }|                     ¦   «         }|                     ¦   «         |z
  |k     r  ||| j        fd|i|¤ŽD ]}t          |t          ¦  «        r|V — Œt+          |d         ¦  «        }|dk    rt          j        d|z  ¦  «        ‚| j                             |dd …         d||¬¦  «        }|                     ¦   «         |z
  |k     °  | j         |||fi |¤ŽV — d S )NzEmpty BIT STRING substrater   r_   é   úTrailing bits overflow %sT)ÚinternalFormatÚpaddingú*Constructed encoding form prohibited at %sú$assembling constructed serialization©rf   r(   ©rf   Úprependrg   )rG   rD   r   r   r   rY   rZ   rW   r   rX   r
   Úordr7   ÚfromOctetStringÚsupportConstructedFormÚ	__class__r4   ÚLOGr>   r   Útellr   )r!   r"   r#   r$   r%   r&   r'   r(   r)   r0   r=   ÚtrailingBitsrF   Ú	bitStringÚcurrent_positionÚ	components                   r*   r+   z$BitStringPayloadDecoder.valueDecoder§   s‡  è è € ð
 ð 	Ø.˜Ô.¨x¸ÅÐTÐTÈGÐTÐTˆJà%˜ j°)¸VÀWÑMÔMð ð �Ø����àˆFàð 	BÝÔ#Ð$@ÑAÔAÐAå" 9Ñ-Ô-ð 	ð 	ˆEÝ˜%Õ!7Ñ8Ô8ð Ø���øàð 	BÝÔ#Ð$@ÑAÔAÐAà�!Œ9Ô¥#Ô"5Ò5Ð5å .¨y¸!¸WÑ EÔ Eð 'ð '�Ý˜lÕ,BÑCÔCð 'Ø&Ð&Ð&Ð&øå˜|Ñ,Ô,ˆLØ˜aÒÐÝÔ'Ø/°,Ñ>ñô ð õ (¨	°6¸A±:¸wÑGÔGð  ð  �Ý˜eÕ%;Ñ<Ô<ð  Ø�K�K�KøàÔ'×7Ò7Ø d°Lð 8ñ Bô BˆEð (�$Ô'¨°&¸%ÐKÐKÀ7ÐKÐKÐKÐKÐKàˆFàÔ*ð 	GÝÔ#ð %,Ø.2¬nÔ.Eñ%Fñ Gô Gð Gõ ð 	8ÝÐ6Ñ7Ô7Ð7ð Ô.ˆàÔ'×7Ò7½ÈTÐ7ÑRÔRˆ	à$Ÿ>š>Ñ+Ô+Ðà�nŠnÑÔÐ!1Ñ1°FÒ:Ð:Ø&˜YØ˜tÔ2ðð ØAMðàðð ð $ð $�	õ ˜iÕ)?Ñ@Ô@ð $Ø#�O�O�Oøå" 9¨Q¤<Ñ0Ô0ˆLØ˜aÒÐÝÔ'Ø/°,Ñ>ñô ð ð Ô+×;Ò;Ø˜!˜"˜"”¨dØ!¨<ð <ñ ô ˆIð �nŠnÑÔÐ!1Ñ1°FÒ:Ð:ð$ $ˆdÔ# H¨f°iÐKÐKÀ7ÐKÐKÐKÐKÐKÐKÐKr,   c              +   ó(  K  — |r, | j         ||t          fi |¤Ž}	 ||	|||¦  «        D ]}
|
V — Œd S | j        }| j                             t
          d¬¦  «        }	  ||| j        f|ddœ|¤ŽD ]+}|t          j        u r nt          |t          ¦  «        r|V — Œ,|t          j        u rnYt          |d         ¦  «        }|dk    rt          j        d|z  ¦  «        ‚| j                             |dd …         d||¬¦  «        }Œ¦ | j         |||fi |¤ŽV — d S )	NTrj   ©r(   rN   r   rd   re   r_   rk   )rG   rD   r>   r7   rn   r   r   rO   rY   rZ   r   r   r   )r!   r"   r#   r$   r%   r&   r'   r(   r)   r0   r=   rt   rv   rs   s                 r*   r.   z,BitStringPayloadDecoder.indefLenValueDecoder÷   sŸ  è è € ð
 ð 	Ø.˜Ô.¨x¸ÅÐTÐTÈGÐTÐTˆJà%˜ j°)¸VÀWÑMÔMð ð �Ø����àˆFð Ô.ˆàÔ'×7Ò7½ÈTÐ7ÑRÔRˆ	ð	à&˜YØ˜tÔ2ð.ØAMØ!ð.ð .à%,ð.ð .ð $ð $�	ð ¥¤Ð/Ð/Ø�Eå˜iÕ)?Ñ@Ô@ð $Ø#�O�O�Oøà�CœOÐ+Ð+Øå" 9¨Q¤<Ñ0Ô0ˆLØ˜aÒÐÝÔ'Ø/°,Ñ>ñô ð ð Ô+×;Ò;Ø˜!˜"˜"”¨dØ!¨<ð <ñ ô ˆIð+	ð4 $ˆdÔ# H¨f°iÐKÐKÀ7ÐKÐKÐKÐKÐKÐKÐKr,   r3   )	r4   r5   r6   r   Ú	BitStringr7   ro   r+   r.   r1   r,   r*   rb   rb   £   ss   € € € € € Ø#�T”^ BÑ'Ô'€NØ!Ðð 6:Ø26ðNLð NLð NLð NLðb >BØ:>ð,Lð ,Lð ,Lð ,Lð ,Lð ,Lr,   rb   c                   óJ   — e Zd Z ej        d¦  «        ZdZ	 	 dd„Z	 	 dd„ZdS )ÚOctetStringPayloadDecoderrJ   TNc              +   óÒ  K  — |r, | j         ||t          fi |¤Ž}	 ||	|||¦  «        D ]}
|
V — Œd S |d         j        t          j        k    rAt          |||¦  «        D ]}
t          |
t          ¦  «        r|
V — Œ | j         |||
fi |¤ŽV — d S | j        s!t          j
        d| j        j        z  ¦  «        ‚t          rt          d¦  «         | j        }t          }|                     ¦   «         }|                     ¦   «         |z
  |k     rM ||| j        fd|i|¤ŽD ]}t          |t          ¦  «        r|V — Œ||z  }|                     ¦   «         |z
  |k     °M | j         |||fi |¤ŽV — d S )Nr   rh   ri   r(   )rG   rD   rW   r   rX   r
   rY   rZ   ro   r   r   rp   r4   rq   r>   r   rr   r7   )r!   r"   r#   r$   r%   r&   r'   r(   r)   r0   r=   ÚheaderÚoriginal_positionrv   s                 r*   r+   z&OctetStringPayloadDecoder.valueDecoder*  sú  è è € ð ð 	Ø.˜Ô.¨x¸ÅÐTÐTÈGÐTÐTˆJà%˜ j°)¸VÀWÑMÔMð ð �Ø����àˆFà�!Œ9Ô¥#Ô"5Ò5Ð5Ý'¨	°6¸7ÑCÔCð  ð  �Ý˜eÕ%;Ñ<Ô<ð  Ø�K�K�Køà'�$Ô'¨°&¸%ÐKÐKÀ7ÐKÐKÐKÐKÐKàˆFàÔ*ð 	lÝÔ#Ð$PÐSWÔSaÔSjÑ$jÑkÔkÐkåð 	8ÝÐ6Ñ7Ô7Ð7ð Ô.ˆåˆà%ŸNšNÑ,Ô,Ðà�nŠnÑÔÐ!2Ñ2°VÒ;Ð;Ø&˜YØ˜tÔ2ðð ØAMðàðð ð $ð $�	õ ˜iÕ)?Ñ@Ô@ð $Ø#�O�O�Oøà�iÑˆFð �nŠnÑÔÐ!2Ñ2°VÒ;Ð;ð $ˆdÔ# H¨f°fÐHÐHÀÐHÐHÐHÐHÐHÐHÐHr,   c              +   ó`  K  — |r5|| j         ur, | j        ||t          fi |¤Ž}	 ||	|||¦  «        D ]}
|
V — Œd S | j         }t          }	  ||| j        f|ddœ|¤ŽD ]+}t          |t          ¦  «        r|V — |t          j        u r nŒ,|t          j        u rn||z  }ŒS | j        |||fi |¤ŽV — d S )NTrx   )	r>   rG   rD   r   r7   rY   rZ   r   rO   )r!   r"   r#   r$   r%   r&   r'   r(   r)   r0   r=   r}   rv   s                r*   r.   z.OctetStringPayloadDecoder.indefLenValueDecoderW  s<  è è € ð ð 	˜L°Ô0GÐGÐGØ.˜Ô.¨x¸ÅÐTÐTÈGÐTÐTˆJà%˜ j°)¸VÀWÑMÔMð ð �Ø����àˆFð Ô.ˆåˆð	 à&˜YØ˜tÔ2ð.ØAMØ!ð.ð .à%,ð.ð .ð ð �	õ ˜iÕ)?Ñ@Ô@ð $Ø#�O�O�Oà¥¤Ð/Ð/Ø�Eð 0ð �CœOÐ+Ð+Øà�iÑˆFð	 ð" $ˆdÔ# H¨f°fÐHÐHÀÐHÐHÐHÐHÐHÐHÐHr,   r3   )	r4   r5   r6   r   ÚOctetStringr7   ro   r+   r.   r1   r,   r*   r{   r{   &  sp   € € € € € Ø%�TÔ% bÑ)Ô)€NØ!Ðð 6:Ø26ð+Ið +Ið +Ið +Ið\ >BØ:>ð"Ið "Ið "Ið "Ið "Ið "Ir,   r{   c                   ó:   — e Zd Z ej        d¦  «        Z	 	 dd„ZdS )ÚNullPayloadDecoderrJ   Nc              +   ó  K  — |d         j         t          j        k    rt          j        d¦  «        ‚t          |||¦  «        D ]}	t          |	t          ¦  «        r|	V — Œ | j        ||dfi |¤Ž}
|	rt          j        d|z  ¦  «        ‚|
V — d S )Nr   rU   rJ   z&Unexpected %d-octet substrate for Null)	rW   r   rX   r   r   r
   rY   rZ   rG   )r!   r"   r#   r$   r%   r&   r'   r(   r)   r=   rv   s              r*   r+   zNullPayloadDecoder.valueDecoder  s²   è è € ð
 �!Œ9Ô¥#Ô"5Ò5Ð5ÝÔ#Ð$@ÑAÔAÐAå# I¨v°wÑ?Ô?ð 	ð 	ˆEÝ˜%Õ!7Ñ8Ô8ð Ø���øà)�DÔ)¨(°F¸BÐJÐJÀ'ÐJÐJˆ	àð 	WÝÔ#Ð$LÈvÑ$UÑVÔVÐVàˆˆˆˆˆr,   r3   )r4   r5   r6   r   ÚNullr7   r+   r1   r,   r*   r‚   r‚   |  s?   € € € € € Ø�T”Y˜r‘]”]€Nð 6:Ø26ðð ð ð ð ð r,   r‚   c                   ó:   — e Zd Z ej        d¦  «        Z	 	 dd„ZdS )ÚObjectIdentifierPayloadDecoderr1   Nc              +   ó   K  — |d         j         t          j        k    rt          j        d¦  «        ‚t          |||¦  «        D ]}	t          |	t          ¦  «        r|	V — Œ|	st          j        d¦  «        ‚t          |	¦  «        }	d}
d}t          |	¦  «        }||k     r’|	|         }|dz  }|dk     r|
|fz  }
nr|dk    rR|}d}|dk    r;|dz  |dz  z   }||k    rt          j        d	|
›�¦  «        ‚|	|         }|dz  }|dk    °;|
|dz  |z   fz  }
n|dk    rt          j        d
¦  «        ‚||k     °’d|
d         cxk    rdk    r	n nd|
z   }
nqd|
d         cxk    rdk    rn nd|
d         dz
  f|
dd …         z   }
nB|
d         dk    rd|
d         dz
  f|
dd …         z   }
nt          j        d|	d         z  ¦  «        ‚ | j
        |||
fi |¤ŽV — d S )Nr   rU   úEmpty substrater1   r_   é€   rd   é   ú!Short substrate for sub-OID past z"Invalid octet 0x80 in OID encodingé'   )r   é(   éO   éP   é   zMalformed first OID octet: %s©rW   r   rX   r   r   r
   rY   rZ   r   ÚlenrG   )r!   r"   r#   r$   r%   r&   r'   r(   r)   r=   ÚoidÚindexÚsubstrateLenÚsubIdÚ	nextSubIds                  r*   r+   z+ObjectIdentifierPayloadDecoder.valueDecoder–  s…  è è € ð �!Œ9Ô¥#Ô"5Ò5Ð5ÝÔ#Ð$@ÑAÔAÐAå# I¨v°wÑ?Ô?ð 	ð 	ˆEÝ˜%Õ!7Ñ8Ô8ð Ø���øàð 	7ÝÔ#Ð$5Ñ6Ô6Ð6å˜%Ñ Ô ˆàˆØˆÝ˜5‘z”zˆØ�lÒ"Ð"Ø˜%”LˆEØ�Q‰JˆEØ�sŠ{ˆ{Ø˜�x‘��Ø˜’�à!�	Ø�Ø 3Ò&Ð&Ø" a™Z¨I¸Ñ,<Ñ=�EØ Ò,Ð,Ý#Ô:Ð:ØEHÀSÐJñô ð ð !& e¤�IØ˜Q‘J�Eð   3Ò&Ð&ð ˜ !™ yÑ0Ð2Ñ2��Ø˜#’�õ
 Ô'Ð(LÑMÔMÐMð/ �lÒ"Ð"ð4 ��A”ÐÐÒÐ˜"ÒÐÐÐÐØ˜‘*ˆCˆCØ�3�q”6ÐÐÒÐ˜RÒÐÐÐÐØ�c˜!”f˜r‘kÐ" S¨¨¨¤WÑ,ˆCˆCØ�ŒV�rŠ\ˆ\Ø�c˜!”f˜r‘kÐ" S¨¨¨¤WÑ,ˆCˆCåÔ#Ð$CÀeÈAÄhÑ$NÑOÔOÐOà#ˆdÔ# H¨f°cÐEÐE¸WÐEÐEÐEÐEÐEÐEÐEr,   r3   )r4   r5   r6   r   ÚObjectIdentifierr7   r+   r1   r,   r*   r†   r†   “  sH   € € € € € Ø*�TÔ*¨2Ñ.Ô.€Nð 6:Ø26ð6Fð 6Fð 6Fð 6Fð 6Fð 6Fr,   r†   c                   ó:   — e Zd Z ej        d¦  «        Z	 	 dd„ZdS )ÚRelativeOIDPayloadDecoderr1   Nc              +   ó†  K  — |d         j         t          j        k    rt          j        d¦  «        ‚t          |||¦  «        D ]}	t          |	t          ¦  «        r|	V — Œ|	st          j        d¦  «        ‚t          |	¦  «        }	d}
d}t          |	¦  «        }||k     r’|	|         }|dz  }|dk     r|
|fz  }
nr|dk    rR|}d}|dk    r;|dz  |dz  z   }||k    rt          j        d	|
›�¦  «        ‚|	|         }|dz  }|dk    °;|
|dz  |z   fz  }
n|dk    rt          j        d
¦  «        ‚||k     °’ | j
        |||
fi |¤ŽV — d S )Nr   rU   rˆ   r1   r_   r‰   rd   rŠ   r‹   z+Invalid octet 0x80 in RELATIVE-OID encodingr‘   )r!   r"   r#   r$   r%   r&   r'   r(   r)   r=   Úreloidr”   r•   r–   r—   s                  r*   r+   z&RelativeOIDPayloadDecoder.valueDecoderÒ  sÅ  è è € ð �!Œ9Ô¥#Ô"5Ò5Ð5ÝÔ#Ð$@ÑAÔAÐAå# I¨v°wÑ?Ô?ð 	ð 	ˆEÝ˜%Õ!7Ñ8Ô8ð Ø���øàð 	7ÝÔ#Ð$5Ñ6Ô6Ð6å˜%Ñ Ô ˆàˆØˆÝ˜5‘z”zˆØ�lÒ"Ð"Ø˜%”LˆEØ�Q‰JˆEØ�sŠ{ˆ{Ø˜5˜(Ñ"��Ø˜’�à!�	Ø�Ø 3Ò&Ð&Ø" a™Z¨I¸Ñ,<Ñ=�EØ Ò,Ð,Ý#Ô:Ð:ØEKÀVÐMñô ð ð !& e¤�IØ˜Q‘J�Eð   3Ò&Ð&ð ˜E Q™J¨)Ñ3Ð5Ñ5��Ø˜#’�õ
 Ô'Ð(UÑVÔVÐVð/ �lÒ"Ð"ð2 $ˆdÔ# H¨f°fÐHÐHÀÐHÐHÐHÐHÐHÐHÐHr,   r3   )r4   r5   r6   r   ÚRelativeOIDr7   r+   r1   r,   r*   rš   rš   Ï  sH   € € € € € Ø%�TÔ% bÑ)Ô)€Nð 6:Ø26ð,Ið ,Ið ,Ið ,Ið ,Ið ,Ir,   rš   c                   ó8   — e Zd Z ej        ¦   «         Z	 	 dd„ZdS )ÚRealPayloadDecoderNc              +   óð  K  — |d         j         t          j        k    rt          j        d¦  «        ‚t          |||¦  «        D ]}	t          |	t          ¦  «        r|	V — Œ|	s | j        ||dfi |¤ŽV — d S t          |	d         ¦  «        }
|	dd …         }	|
dz  �rP|	st          j        d¦  «        ‚t          rt          d¦  «         |
dz  dz   }|d	k    rt          |	d         ¦  «        }|	dd …         }	|	d |…         |	|d …         }	}|r|	st          j        d
¦  «        ‚t          |d         ¦  «        dz  rdpd}|r)|dz  }|t          |d         ¦  «        z  }|dd …         }|°)|
d	z	  dz  }|dk    rt          j        d¦  «        ‚|dk    r|dz  }n|dk    r|d	z  }d}|	r)|dz  }|t          |	d         ¦  «        z  }|	dd …         }	|	°)|
dz  r| }|
dz	  dz  }|d|z  z  }|d|f}nú|
dz  r t          rt          d¦  «         |
dz  rdpd}nÕ|
dz  dk    rµ|	st          j        d¦  «        ‚t          rt          d¦  «         	 |
dz  dk    rt          |	¦  «        ddf}nI|
dz  dk    rt          |	¦  «        }n0|
dz  dk    rt          |	¦  «        }nt          j        d|
z  ¦  «        ‚n9# t          $ r t          j        d¦  «        ‚w xY wt          j        d|
z  ¦  «        ‚ | j        |||fi |¤ŽV — d S )Nr   rU   g        r_   r‰   zIncomplete floating-point valuezdecoding binary encoded REALé   é   zReal exponent screwedéÿÿÿÿé   r�   zIllegal Real baseé@   zdecoding infinite REALz-infÚinféÀ   zdecoding character encoded REALé
   zUnknown NR (tag %s)zBad character Real syntaxzUnknown encoding (tag %s))rW   r   rX   r   r   r
   rY   rZ   rG   r   rq   ÚintÚfloatÚ
ValueError)r!   r"   r#   r$   r%   r&   r'   r(   r)   r=   ÚfoÚnÚeoÚeÚbÚpÚsfrF   s                     r*   r+   zRealPayloadDecoder.valueDecoder  s  è è € ð �!Œ9Ô¥#Ô"5Ò5Ð5ÝÔ#Ð$@ÑAÔAÐAå# I¨v°wÑ?Ô?ð 	ð 	ˆEÝ˜%Õ!7Ñ8Ô8ð Ø���øàð 	Ø'�$Ô'¨°&¸#ÐIÐIÀÐIÐIÐIÐIÐIØˆFå�U˜1”XÑÔˆØ�a�b�b”	ˆØ�‰9ñ U	Øð KÝÔ'Ð(IÑJÔJÐJåð 4ÝÐ2Ñ3Ô3Ð3à�d‘˜a‘ˆAà�AŠvˆvÝ˜E !œHÑ%Ô%�Ø˜a˜b˜bœ	�à˜b˜q˜bœ	 5¨¨¨¤9�ˆBàð A˜Uð AÝÔ'Ð(?Ñ@Ô@Ð@å˜˜1œ‘” Ñ%Ð,¨"Ð1°ˆAàð Ø�a‘�Ø•W˜R œU‘^”^Ñ#�Ø˜˜˜”V�ð ð ð
 �a‘˜$‘ˆAà�1ŠuˆuÝÔ'Ð(;Ñ<Ô<Ð<à�AŠvˆvØ�Q‘��à�a’�Ø�Q‘�ØˆAàð "Ø�a‘�Ø•W˜U 1œXÑ&Ô&Ñ&�Ø˜a˜b˜bœ	�ð ð "ð
 �D‰yð Ø�B�à�q‘˜4‘ˆBØ��b‘‰LˆAØ˜˜1�IˆEˆEà�$‰Yð $	Ýð .ÝÐ,Ñ-Ô-Ð-à˜‘IÐ( &Ð1¨EˆEˆEà�$‰Y˜!Š^ˆ^Øð KÝÔ'Ð(IÑJÔJÐJåð 7ÝÐ5Ñ6Ô6Ð6ðØ˜‘8˜s’?�?Ý  ™ZœZ¨¨QÐ/�E�Eà˜#‘X ’_�_Ý! %™LœL�E�Eà˜#‘X ’_�_Ý! %™LœL�E�Eõ  Ô6Ø-°Ñ2ñô ð øøõ ð ð ð ÝÔ2Ø/ñô ð ðøøøõ Ô.Ø+¨bÑ0ñô ð ð $ˆdÔ# H¨f°eÐGÐG¸wÐGÐGÐGÐGÐGÐGÐGs   ÉA%J+ Ê+K
r3   )r4   r5   r6   r   ÚRealr7   r+   r1   r,   r*   rŸ   rŸ     sI   € € € € € Ø�T”Y‘[”[€Nð 6:Ø26ðhHð hHð hHð hHð hHð hHr,   rŸ   c                   ó   — e Zd ZdZdS )Ú!AbstractConstructedPayloadDecoderN)r4   r5   r6   r7   r1   r,   r*   rµ   rµ   o  s   € € € € € Ø€N€N€Nr,   rµ   c                   óF   — e Zd ZdZdZd„ Zd„ Z	 	 dd„Z	 	 dd„Z	 	 dd„Z	dS )	ÚConstructedPayloadDecoderBaseNc                 ó   — t          ¦   «         ‚r<   ©ÚNotImplementedError)r!   r0   Úidxs      r*   Ú_getComponentTagMapz1ConstructedPayloadDecoderBase._getComponentTagMapw  ó   € Ý!Ñ#Ô#Ð#r,   c                 ó   — t          ¦   «         ‚r<   r¹   )r!   r0   r$   r»   s       r*   Ú_getComponentPositionByTypez9ConstructedPayloadDecoderBase._getComponentPositionByTypez  r½   r,   c              +   óò  K  — d }g }t          ¦   «         }|                     ¦   «         }	|dk    s|                     ¦   «         |	|z   k     rá ||fi |¤ŽD ]}
t          |
t          ¦  «        r|
V — Œ|dk    r|
t          j        u rn§|                     |
¦  «         |                     |
j        ¦  «         t          |¦  «        dk    r| j
        }n| j        }|                     t          j        |j        j        g|j        ¢R Ž ¬¦  «        }|dk    °Æ|                     ¦   «         |	|z   k     °át"          rt#          d|z  ¦  «         t%          |¦  «        D ]\  }}
|                     ||
ddd¬¦  «         Œ |V — d S )Nr£   r_   rA   z@guessed %r container type (pass `asn1Spec` to guide the decoder)F©ÚverifyConstraintsÚ	matchTagsÚmatchConstraints)Úsetrr   rY   rZ   r   rO   ÚappendÚaddr$   r’   ÚprotoRecordComponentÚprotoSequenceComponentrC   r   ÚTagSetÚbaseTagÚ	superTagsrq   Ú	enumerateÚsetComponentByPosition)r!   r"   r$   r'   r%   r)   r0   Ú
componentsÚcomponentTypesr~   rv   r7   r»   s                r*   Ú_decodeComponentsSchemalessz9ConstructedPayloadDecoderBase._decodeComponentsSchemaless}  sà  è è € ð ˆ
àˆ
Ý™œˆà%ŸNšNÑ,Ô,Ðà˜Šlˆl˜iŸnšnÑ.Ô.Ð1BÀVÑ1KÒKÐKØ&˜Y yÐ<Ð<°GÐ<Ð<ð $ð $�	Ý˜iÕ)?Ñ@Ô@ð $Ø#�O�O�Oøà˜Š|ˆ| 	­S¬_Ð <Ð <Øà×Ò˜iÑ(Ô(Ð(Ø×Ò˜yÔ/Ñ0Ô0Ð0õ �>Ñ"Ô" QÒ&Ð&Ø!%Ô!:��ð "&Ô!<�à'×-Ò-õ ”z .Ô"7Ô"?ÐSÀ&ÔBRÐSÐSÐSð .ñ ô ˆJð+ ˜Šlˆl˜iŸnšnÑ.Ô.Ð1BÀVÑ1KÒKÐKõ6 ð 	)Ýð Ø'ñ(ñ )ô )ð )õ (¨
Ñ3Ô3ð 	ð 	‰NˆC�Ø×-Ò-Ø�YØ"'Ø°%ð .ñ ô ð ð ð ÐÐÐÐÐr,   c              +   ó   K  — |d         j         t          j        k    rt          j        d¦  «        ‚|                     ¦   «         }	|r_|�|                     ¦   «         }
n1| j        �| j                             |¬¦  «        }
n| j        | j	        f}
 ||
|||¦  «        D ]}|V — Œd S |€¶ | j
        |f|||dœ|¤ŽD ]}
t          |
t          ¦  «        r|
V — Œ|                     ¦   «         |	|z   k     rgt          r`t          ||¬¦  «        D ]}t          |t          ¦  «        r|V — Œt          dt          |¦  «        t!          j        |¦  «        fz  ¦  «         |
V — d S |                     ¦   «         }
|
                     ¦   «          |                      |
|¦  «        }|j        t*          j        j        t*          j        j        fv �r|j        }|j        t*          j        j        k    }| o|j         }t          r"t          d| rdpd	›d
|rdpd	›d|›d�¦  «         t5          ¦   «         }d}|                     ¦   «         |	z
  |k     �rO|sd }n~|r|j        }nt	 |r||         j        }n=||         j        s||         j        r|                     |¦  «        }n||         j        }n%# t@          $ r t          j        d|›�¦  «        ‚w xY w |||fi |¤ŽD ]}t          |t          ¦  «        r|V — Œ|sT|rR|r| !                    |j"        ¦  «        }n5||         j        s||         j        r| #                    |j"        |¦  «        }|
 $                    ||ddd¬¦  «         | %                    |¦  «         |dz  }|                     ¦   «         |	z
  |k     �°Ot          rt          d|z  ¦  «         |�r|j&         '                    |¦  «        s!t          j        d|
j(        j)        z  ¦  «        ‚|j*        �rÚ| +                    di ¦  «        }t          r=t          d¦  «         | ,                    ¦   «         D ]\  }}t          |›d|›�¦  «         Œ|s| +                    dd¦  «        �rgt[          |j.        ¦  «        D �]Q\  }}|j/        sŒ|j        r|
 0                    |¦  «        j1        sŒ0|
 2                    |j/        j3        ¦  «        }	 ||         }nÃ# th          $ r¶ t          rrt          d|
j(        j)        ›d|j3        ›d|
j(        j)        ›d|j/        j3        ›d�	¦  «         |j/         ,                    ¦   «         D ]\  }}t          |›d|›�¦  «         Œ	 |j/        |         }n+# th          $ r t          rt          d|›�¦  «         Y Y �Œw xY wY nw xY wt          rt          d|›d|›�¦  «         |
 0                    |¦  «        }|j        t*          j5        j        t*          j6        j        fv rjt[          |¦  «        D ]X\  }}to          ||          8                    ¦   «         ¦  «        } ||fd|i|¤ŽD ]}t          |t          ¦  «        r|V — Œ|||<   ŒY�Œàto          |
 0                    |¦  «         8                    ¦   «         ¦  «        } ||fd|i|¤ŽD ]}t          |t          ¦  «        r|V — Œ|
 $                    ||¦  «         �ŒSn©|
j9        }|r|‚n�|j        }t          rt          d |z  ¦  «         d}|                     ¦   «         |	z
  |k     r` |||fi |¤ŽD ]}t          |t          ¦  «        r|V — Œ|
 $                    ||ddd¬¦  «         |dz  }|                     ¦   «         |	z
  |k     °`|
V — d S )!Nr   úConstructed tag format expectedrA   ©r$   r'   r%   )Úcontextz)Unused trailing %d octets encountered: %sú	decoding únon-rJ   údeterministic ÚSETú type ú chosen by type IDú Excessive components decoded at FrÁ   r_   úseen component indices %sú,ASN.1 object %s has uninitialized componentsÚ	openTypesúuser-specified open types map:ú -> ÚdecodeOpenTypesú%default open types map of component "ú.ú" governed by component "ú":ú/failed to resolve open type by governing value úresolved open type ú by governing value r#   ú+decoding type %r chosen by given `asn1Spec`):rW   r   ÚtagFormatConstructedr   r   rr   rC   r7   rÈ   rÉ   rÑ   rY   rZ   rq   r
   r’   r   ÚhexdumpÚclearr2   ÚtypeIdr   ÚSequenceÚSetÚcomponentTypeÚhasOptionalOrDefaultrÅ   ÚtagMapUniquer0   Ú
isOptionalÚisDefaultedÚgetTagMapNearPositionÚ
IndexErrorÚgetPositionByTypeÚeffectiveTagSetÚgetPositionNearTyperÎ   rÇ   ÚrequiredComponentsÚissubsetrp   r4   ÚhasOpenTypesrB   ÚitemsrÍ   Ú
namedTypesÚopenTypeÚgetComponentByPositionÚisValueÚgetComponentByNameÚnameÚKeyErrorÚSetOfÚ
SequenceOfr   ÚasOctetsÚisInconsistent)r!   r"   r#   r$   r%   r&   r'   r(   r)   r~   r0   r=   Útrailingrÿ   Ú	isSetTypeÚisDeterministicÚseenIndicesr»   rñ   rv   rß   ÚkÚvÚ	namedTypeÚgoverningValuer   ÚcontainerValueÚposÚcontainerElementÚstreamÚinconsistencys                                  r*   r+   z*ConstructedPayloadDecoderBase.valueDecoder°  sÚ	  è è € ð �!Œ9Ô¥#Ô":Ò:Ð:ÝÔ#Ð$EÑFÔFÐFà%ŸNšNÑ,Ô,Ðàð 	ØÐ#Ø%Ÿ^š^Ñ-Ô-�
�
àÔ$Ð0Ø!Ô0×6Ò6¸fÐ6ÑEÔE�
�
ð "Ô6¸Ô8SÐS�
à%˜ j°)¸VÀWÑMÔMð ð �Ø����àˆFàÐØ>˜dÔ>Øð.Ø&,¸	Ø!ð.ð .à%,ð.ð .ð %ð %�
õ ˜jÕ*@ÑAÔAð %Ø$Ð$Ð$Ð$øà�~Š~ÑÔÐ"3°fÑ"<Ò<Ð<Ýð AÝ$2°9ÀgÐ$NÑ$NÔ$Nð +ð +˜Ý% hÕ0FÑGÔGð +Ø"*˜N˜N˜NøåÐCÝ˜H™œ¥u¤}°XÑ'>Ô'>ðG@ñ @ñ Aô Að Að ÐÐÐàˆFà—^’^Ñ%Ô%ˆ
Ø×ÒÑÔÐà×&Ò& z°7Ñ;Ô;ˆàŒ?�tœ}Ô3µT´X´_ÐEÐEÑEà!Ô/ˆJà œ­4¬8¬?Ò:ˆIØ"+˜mÐS°JÔ4SÐ0SˆOåð Ý�Ø'Ð'Ð2¨FÐ8°bÐ8Ð8¸)Ð:MÈÐ:SÐQSÐ:SÐ:SØ�H�Hðñ ô ð õ ™%œ%ˆKØˆCØ—.’.Ñ"Ô"Ð%6Ñ6¸Ò?Ñ?Ø!ð Ø$(�M�Màð Ø$.Ô$;�M�MðØ*ð GØ,6°s¬OÔ,F˜M˜Mà'¨œ_Ô7ð G¸:Àc¼?Ô;Vð GØ,6×,LÒ,LÈSÑ,QÔ,Q˜M˜Mð -7°s¬OÔ,F˜Møøå%ð ð ð Ý#Ô/Ð/ØDLÀHÐNñô ð ðøøøð
 "+ ¨9°mÐ!OÐ!OÀwÐ!OÐ!Oð (ð (�IÝ! )Õ-CÑDÔDð (Ø'˜˜˜øà&ð ]¨:ð ]Ø ð ]Ø(×:Ò:¸9Ô;TÑUÔU˜˜à# CœÔ3ð ]°zÀ#´Ô7Rð ]Ø(×<Ò<¸YÔ=VÐX[Ñ\Ô\˜à×1Ò1Ø˜Ø&+Ø#°eð 2ñ ô ð ð —’ Ñ$Ô$Ð$Ø�q‘�ðS —.’.Ñ"Ô"Ð%6Ñ6¸Ò?Ñ?õV ð ?ÝÐ/°+Ñ=Ñ>Ô>Ð>àñ V(Ø!Ô4×=Ò=¸kÑJÔJð FÝÔ+ð%Ø'1Ô';Ô'DñEñFô Fð Fð Ô+ñ KRà '§¢¨K¸Ñ <Ô <�Iåð 5ÝÐ<Ñ=Ô=Ð=à$-§O¢OÑ$5Ô$5ð 5ð 5™D˜A˜qÝ¨a¨a¨a°°Ð 3Ñ4Ô4Ð4Ð4à ð AR G§K¢KÐ0AÀ5Ñ$IÔ$Iñ ARå.7¸
Ô8MÑ.NÔ.Nð ?Rñ ?R™N˜C Ø#,Ô#5ð )Ø (à(Ô3ð )¸J×<]Ò<]Ð^aÑ<bÔ<bÔ<jð )Ø (à-7×-JÒ-JØ )Ô 2Ô 7ñ.ô .˜Nð-Ø+4°^Ô+D  øå#+ð -ð -ð -å#&ð 	!AÝ$' Cà/9Ô/CÔ/LÐ/LÐ/LØ/8¬~¨~¨~Ø/9Ô/CÔ/LÐ/LÐ/LØ/8Ô/AÔ/FÐ/FÐ/Fð)Hñ %Iô %Ið %Ið 1:Ô0B×0HÒ0HÑ0JÔ0Jð %Að %A©¨¨1Ý(+¸!¸!¸!¸Q¸QÐ,?Ñ(@Ô(@Ð(@Ð(@ð!-Ø/8Ô/AÀ.Ô/Q H Høå'/ð !-ð !-ð !-Ý'*ð %LÝ(+¨Ø:H¸.ð-Kñ )Lô )Lð )Là$, H¡Hð	!-øøøð %- Hð-øøøõ,  #ð MÝ # Ø2:°(°(¸N¸Nð%Lñ !Mô !Mð !Mð .8×-NÒ-NÈsÑ-SÔ-S˜Nà-Ô4Ý$(¤JÔ$5µt´Ô7Mð9Oð  Oð  Oõ >GØ(6ñ>8ô >8ð 	!Dð 	!DÑ$9 CÐ)9õ .>¸nÈSÔ>Q×>ZÒ>ZÑ>\Ô>\Ñ-]Ô-] Fà5>°Y¸vÐ5dÐ5dÐPXÐ5dÐ\cÐ5dÐ5dð %<ð %<¨	Ý+5°iÕAWÑ+XÔ+Xð )<Ø2;¨O¨O¨Oøà:C N°3Ñ$7Ð$7ñ	!Dõ *:¸*×:[Ò:[Ð\_Ñ:`Ô:`×:iÒ:iÑ:kÔ:kÑ)lÔ)l à1:°¸6Ð1`Ð1`ÈHÐ1`ÐX_Ð1`Ð1`ð !8ð !8 IÝ'1°)Õ=SÑ'TÔ'Tð %8Ø.7¨¨¨øà *× AÒ AÀ#ÀyÑ QÔ QÐ QÑ Qøð !+Ô 9�Ø ð (Ø'Ð'ð(ð %Ô2ˆMåð SÝÐAÀMÑQÑRÔRÐRàˆCà—.’.Ñ"Ô"Ð%6Ñ6¸Ò?Ð?Ø!* ¨9°mÐ!OÐ!OÀwÐ!OÐ!Oð (ð (�IÝ! )Õ-CÑDÔDð (Ø'˜˜˜øà×1Ò1Ø˜Ø&+Ø#°eð 2ñ ô ð ð �q‘�ð —.’.Ñ"Ô"Ð%6Ñ6¸Ò?Ð?ð ÐÐÐÐÐsD   ÉAJ& Ê&"KÓSÓBVÕU(Õ'VÕ(#VÖVÖVÖVÖVc              +   óB  K  — |d         j         t          j        k    rt          j        d¦  «        ‚|�_|�|                     ¦   «         }	n1| j        �| j                             |¬¦  «        }	n| j        | j        f}	 ||	|||¦  «        D ]}
|
V — Œd S |€C | j	        |f|||dœt          |d¬¦  «        ¤ŽD ]}	t          |	t          ¦  «        r|	V — Œ|	V — d S |                     ¦   «         }	|	                     ¦   «          |                      |	|¦  «        }|j        t           j        j        t           j        j        fv �rQ|	j        }|	j        t           j        j        k    }| o|j         }t*          r"t+          d| rdpd	›d
|rdpd	›d|›d�¦  «         t-          ¦   «         }d}	 t/          |¦  «        |k    rd }n~|r|j        }nt	 |r||         j        }n=||         j        s||         j        r|                     |¦  «        }n||         j        }n%# t:          $ r t          j        d|	›�¦  «        ‚w xY w |||fddi|¤ŽD ]+}t          |t          ¦  «        r|V — |t<          j        u r nŒ,|t<          j        u rnŒ|sT|rR|r|                      |j!        ¦  «        }n5||         j        s||         j        r| "                    |j!        |¦  «        }|	 #                    ||ddd¬¦  «         | $                    |¦  «         |dz  }�Œgt*          rt+          d|z  ¦  «         |�rg|j%         &                    |¦  «        s!t          j        d|	j'        j(        z  ¦  «        ‚|j)        �r| *                    di ¦  «        }t*          r=t+          d¦  «         | +                    ¦   «         D ]\  }}t+          |›d|›�¦  «         Œ|s| *                    dd¦  «        �r¥tY          |j-        ¦  «        D �]�\  }}|j.        sŒ|j        r|	 /                    |¦  «        j0        sŒ0|	 1                    |j.        j2        ¦  «        }	 ||         }nÃ# tf          $ r¶ t*          rrt+          d|	j'        j(        ›d|j2        ›d|	j'        j(        ›d|j.        j2        ›d�	¦  «         |j.         +                    ¦   «         D ]\  }}t+          |›d|›�¦  «         Œ	 |j.        |         }n+# tf          $ r t*          rt+          d|›�¦  «         Y Y �Œw xY wY nw xY wt*          rt+          d|›d|›�¦  «         |	 /                    |¦  «        }|j        t           j4        j        t           j5        j        fv r‰tY          |¦  «        D ]w\  }}tm          ||          7                    ¦   «         ¦  «        } ||fd |it          |d¬¦  «        ¤ŽD ]+}t          |t          ¦  «        r|V — |t<          j        u r nŒ,|||<   Œx�Œÿtm          |	 /                    |¦  «         7                    ¦   «         ¦  «        } ||fd |it          |d¬¦  «        ¤ŽD ]A}t          |t          ¦  «        r|V — |t<          j        u r n|	 #                    ||¦  «         ŒB�Œ‘n–|	j8        }|r|‚nŠ|j        }t*          rt+          d!|z  ¦  «         d}	  |||fddi|¤ŽD ]+}t          |t          ¦  «        r|V — |t<          j        u r nŒ,|t<          j        u rn |	 #                    ||ddd¬¦  «         |dz  }Œg|	V — d S )"Nr   rÓ   rA   rÔ   T©rN   rÖ   r×   rJ   rØ   rÙ   rÚ   rÛ   rÜ   rN   FrÁ   r_   rÝ   rÞ   rß   rà   rá   râ   rã   rä   rå   ræ   rç   rè   ré   r#   rê   )9rW   r   rë   r   r   rC   r7   rÈ   rÉ   rÑ   ÚdictrY   rZ   rí   r2   rî   r   rï   rð   rñ   rò   rq   rÅ   r’   ró   r0   rô   rõ   rö   r÷   r   rO   rø   rù   rú   rÎ   rÇ   rû   rü   rp   r4   rý   rB   rþ   rÍ   rÿ   r   r  r  r  r  r  r  r  r   r  r	  )r!   r"   r#   r$   r%   r&   r'   r(   r)   r0   r=   rÿ   r  r  r  r»   rv   rß   r  r  r  r  r   r  r  r  r  r  rñ   s                                r*   r.   z2ConstructedPayloadDecoderBase.indefLenValueDecoderŒ  sÃ	  è è € ð �!Œ9Ô¥#Ô":Ò:Ð:ÝÔ#Ð$EÑFÔFÐFàÐ#ØÐ#Ø%Ÿ^š^Ñ-Ô-�
�
àÔ$Ð0Ø!Ô0×6Ò6¸fÐ6ÑEÔE�
�
ð "Ô6¸Ô8SÐS�
à%˜ j°)¸VÀWÑMÔMð ð �Ø����àˆFàÐØ>˜dÔ>ØðCØ&,¸	Ø!ðCð Cå%)¨'¸DÐ%AÑ%AÔ%AðCð Cð %ð %�
õ ˜jÕ*@ÑAÔAð %Ø$Ð$Ð$Ð$øàÐÐÐàˆFà—^’^Ñ%Ô%ˆ
Ø×ÒÑÔÐà×&Ò& z°7Ñ;Ô;ˆàŒ?�tœ}Ô3µT´X´_ÐEÐEÑEà#Ô1ˆJà"Ô)­T¬X¬_Ò<ˆIØ"+˜mÐS°JÔ4SÐ0SˆOåð Ý�Ø'Ð'Ð2¨FÐ8°bÐ8Ð8¸)Ð:MÈÐ:SÐQSÐ:SÐ:SØ�H�Hðñ ô ð õ ™%œ%ˆKàˆCð0Ý�z‘?”? cÒ)Ð)Ø#�H�Hàð Ø)Ô6�H�HðØ*ð BØ'1°#¤Ô'A˜H˜Hà'¨œ_Ô7ð B¸:Àc¼?Ô;Vð BØ'1×'GÒ'GÈÑ'LÔ'L˜H˜Hð (2°#¤Ô'A˜Høøå%ð ð ð Ý#Ô/Ð/ØDNÀJÐPñô ð ðøøøð
 "+ ¨9°hÐ!YÐ!YÈÐ!YÐQXÐ!YÐ!Yð ð �Iå! )Õ-CÑDÔDð (Ø'˜˜˜à ¥C¤OÐ3Ð3Ø˜ð 4ð ¥¤Ð/Ð/Øà&ð ]¨:ð ]Ø ð ]Ø(×:Ò:¸9Ô;TÑUÔU˜˜à# CœÔ3ð ]°zÀ#´Ô7Rð ]Ø(×<Ò<¸YÔ=VÐX[Ñ\Ô\˜à×1Ò1Ø˜Ø&+Ø#°eð 2ñ ô ð ð —’ Ñ$Ô$Ð$Ø�q‘�ña0õd ð ?ÝÐ/°+Ñ=Ñ>Ô>Ð>àñ ],Ø!Ô4×=Ò=¸kÑJÔJð FÝÔ+ð%Ø'1Ô';Ô'DñEñFô Fð Fð Ô*ñ W,à '§¢¨K¸Ñ <Ô <�Iåð 5ÝÐ<Ñ=Ô=Ð=à$-§O¢OÑ$5Ô$5ð 5ð 5™D˜A˜qÝ¨a¨a¨a°°Ð 3Ñ4Ô4Ð4Ð4à ð HV G§K¢KÐ0AÀ5Ñ$IÔ$Iñ HVå.7¸
Ô8MÑ.NÔ.Nð FVñ FV™N˜C Ø#,Ô#5ð )Ø (à(Ô3ð )¸J×<]Ò<]Ð^aÑ<bÔ<bÔ<jð )Ø (à-7×-JÒ-JØ )Ô 2Ô 7ñ.ô .˜Nð-Ø+4°^Ô+D  øå#+ð -ð -ð -å#&ð 	!AÝ$' Cà/9Ô/CÔ/LÐ/LÐ/LØ/8¬~¨~¨~Ø/9Ô/CÔ/LÐ/LÐ/LØ/8Ô/AÔ/FÐ/FÐ/Fð)Hñ %Iô %Ið %Ið 1:Ô0B×0HÒ0HÑ0JÔ0Jð %Að %A©¨¨1Ý(+¸!¸!¸!¸Q¸QÐ,?Ñ(@Ô(@Ð(@Ð(@ð!-Ø/8Ô/AÀ.Ô/Q H Høå'/ð !-ð !-ð !-Ý'*ð %LÝ(+¨Ø:H¸.ð-Kñ )Lô )Lð )Là$, H¡Hð	!-øøøð %- Hð-øøøõ,  #ð MÝ # Ø2:°(°(¸N¸Nð%Lñ !Mô !Mð !Mð .8×-NÒ-NÈsÑ-SÔ-S˜Nà-Ô4Ý$(¤JÔ$5µt´Ô7Mð9Oð  Oð  Oõ >GØ(6ñ>8ô >8ð !Dð !DÑ$9 CÐ)9õ .>¸nÈSÔ>Q×>ZÒ>ZÑ>\Ô>\Ñ-]Ô-] Fà5>°Y¸vð 6_ð 6_ÐPXð 6_ÝAEÀgÐX\ÐA]ÑA]ÔA]ð6_ð 6_ð %2ð %2¨	å+5°iÕAWÑ+XÔ+Xð )<Ø2;¨O¨O¨Oà+4½¼Ð+GÐ+GØ,1¨Eð ,Hð ;D N°3Ñ$7Ð$7ñ!Dõ  *:¸*×:[Ò:[Ð\_Ñ:`Ô:`×:iÒ:iÑ:kÔ:kÑ)lÔ)l Ø1:°¸6ð 2[ð 2[ÈHð 2[Ý=AÀ'ÐTXÐ=YÑ=YÔ=Yð2[ð 2[ð !Vð !V Iå'1°)Õ=SÑ'TÔ'Tð %8Ø.7¨¨¨à'0µC´OÐ'CÐ'CØ(-¨à$.×$EÒ$EÀcÈ9Ñ$UÔ$UÐ$UÐ$Uùøð %/Ô$=�MØ$ð ,Ø+Ð+øð %Ô2ˆMåð SÝÐAÀMÑQÑRÔRÐRàˆCðà!* Ø! =ð"Lð "LØ;?ð"LØCJð"Lð "Lð ð �Iõ " )Õ-CÑDÔDð (Ø'˜˜˜à ¥C¤OÐ3Ð3Ø˜ð 4ð ¥¤Ð/Ð/Øà×1Ò1Ø˜Ø&+Ø#°eð 2ñ ô ð ð �q‘�ð)ð, ÐÐÐÐÐsD   ÇAH È"H7ÑQÑBTÓSÓTÓ#TÔTÔTÔTÔT)NNNr3   )
r4   r5   r6   rÈ   rÉ   r¼   r¿   rÑ   r+   r.   r1   r,   r*   r·   r·   s  sŸ   € € € € € ØÐØ!Ðð$ð $ð $ð$ð $ð $ð 59Øð1ð 1ð 1ð 1ðh 6:Ø26ðZð Zð Zð Zðz >BØ:>ðhð hð hð hð hð hr,   r·   c                   óJ   — e Zd Z ej        ¦   «         Z ej        ¦   «         ZdS )Ú"SequenceOrSequenceOfPayloadDecoderN)r4   r5   r6   r   rï   rÈ   r  rÉ   r1   r,   r*   r  r  w  s.   € € € € € Ø(˜4œ=™?œ?ÐØ,˜Tœ_Ñ.Ô.ÐÐÐr,   r  c                   ó,   — e Zd Z ej        ¦   «         ZdS )ÚSequencePayloadDecoderN)r4   r5   r6   r   rï   r7   r1   r,   r*   r  r  |  s   € € € € € Ø"�T”]‘_”_€N€N€Nr,   r  c                   ó,   — e Zd Z ej        ¦   «         ZdS )ÚSequenceOfPayloadDecoderN)r4   r5   r6   r   r  r7   r1   r,   r*   r  r  €  ó   € € € € € Ø$�T”_Ñ&Ô&€N€N€Nr,   r  c                   óJ   — e Zd Z ej        ¦   «         Z ej        ¦   «         ZdS )ÚSetOrSetOfPayloadDecoderN)r4   r5   r6   r   rð   rÈ   r  rÉ   r1   r,   r*   r"  r"  „  s,   € € € € € Ø#˜4œ8™:œ:ÐØ'˜TœZ™\œ\ÐÐÐr,   r"  c                   ó,   — e Zd Z ej        ¦   «         ZdS )ÚSetPayloadDecoderN)r4   r5   r6   r   rð   r7   r1   r,   r*   r$  r$  ‰  s   € € € € € Ø�T”X‘Z”Z€N€N€Nr,   r$  c                   ó,   — e Zd Z ej        ¦   «         ZdS )ÚSetOfPayloadDecoderN)r4   r5   r6   r   r  r7   r1   r,   r*   r&  r&  �  s   € € € € € Ø�T”Z‘\”\€N€N€Nr,   r&  c                   óD   — e Zd Z ej        ¦   «         Z	 	 dd„Z	 	 dd„ZdS )ÚChoicePayloadDecoderNc              +   ó‚  K  — |€| j                              |¬¦  «        }	n|                     ¦   «         }	|r ||	|||¦  «        D ]}
|
V — Œd S |                      |	|¦  «        }|	j        |k    rFt          rt	          d|›d�¦  «          |||	j        fi |¤ŽD ]}t          |t          ¦  «        r|V — ŒnHt          rt	          d|›d�¦  «          |||	j        |||fi |¤ŽD ]}t          |t          ¦  «        r|V — Œ|j        }t          rt	          d|›d|›�¦  «         |	 	                    ||dddd¬¦  «         |	V — d S )	NrA   rÖ   z as explicitly tagged CHOICEz as untagged CHOICEúdecoded component ú, effective tag set F©rÂ   rÃ   rÄ   Ú	innerFlag)
r7   rC   r2   r$   rq   ÚcomponentTagMaprY   rZ   rù   ÚsetComponentByType)r!   r"   r#   r$   r%   r&   r'   r(   r)   r0   r=   rv   rù   s                r*   r+   z!ChoicePayloadDecoder.valueDecoder”  sï  è è € ð ÐØÔ,×2Ò2¸&Ð2ÑAÔAˆJˆJð "ŸšÑ)Ô)ˆJàð 	Ø%˜ j°)¸VÀWÑMÔMð ð �Ø����àˆFà×&Ò& z°7Ñ;Ô;ˆàÔ Ò&Ð&Ýð KÝ�ÀÀÀÐIÑJÔJÐJà&˜YØ˜zÔ9ðFð FØ=DðFð Fð $ð $�	å˜iÕ)?Ñ@Ô@ð $Ø#�O�O�Oøð$õ ð BÝ�¸¸¸Ð@ÑAÔAÐAà&˜YØ˜zÔ9¸6À6Øð&ð &à$ð&ð &ð $ð $�	õ ˜iÕ)?Ñ@Ô@ð $Ø#�O�O�Oøà#Ô3ˆåð 	]ÝˆCÀ	À	À	È?È?Ð[Ñ\Ô\Ð\à×%Ò%Ø˜YØ#Ø¨eØð	 	&ñ 	
ô 	
ð 	
ð ÐÐÐÐÐr,   c           	   +   óÊ  K  — |€| j                              |¬¦  «        }	n|                     ¦   «         }	|r ||	|||¦  «        D ]}
|
V — Œd S |                      |	|¦  «        }|	j        |k    }t          rt	          d|›d|rdpd›d�¦  «         	 |r$ |||	j        j        fi t          |d¬¦  «        ¤Ž}n& |||	j        j        |||fi t          |d¬¦  «        ¤Ž}|D ]m}t          |t          ¦  «        r|V — |t          j        u r nC|j        }t          rt	          d	|›d
|›�¦  «         |	                     ||dddd¬¦  «         |s nŒn|r|t          j        u rnŒÎ|	V — d S )NrA   rÖ   z as zexplicitly Úunztagged CHOICETr  r*  r+  Fr,  )r7   rC   r2   r$   rq   rñ   ró   r  rY   rZ   r   rO   rù   r/  )r!   r"   r#   r$   r%   r&   r'   r(   r)   r0   r=   ÚisTaggedÚiteratorrv   rù   s                  r*   r.   z)ChoicePayloadDecoder.indefLenValueDecoderÇ  s@  è è € ð ÐØÔ,×2Ò2¸&Ð2ÑAÔAˆJˆJð "ŸšÑ)Ô)ˆJàð 	Ø%˜ j°)¸VÀWÑMÔMð ð �Ø����àˆFà×&Ò& z°7Ñ;Ô;ˆàÔ$¨Ò.ˆåð 	=ÝˆCØ��˜Ð2 ]Ð:°dÐ:Ð:ð<ñ =ô =ð =ð%	àð KØ$˜9Ø˜zÔ7ÔDð4ð 4å˜7¨TÐ2Ñ2Ô2ð4ð 4��ð
 %˜9Ø˜zÔ7ÔDØ˜F EðKð Kå-1°'ÀDÐ-IÑ-IÔ-IðKð K�ð &ð ð �	å˜iÕ)?Ñ@Ô@ð $Ø#�O�O�Oà¥¤Ð/Ð/Ø�Eà"+Ô";�åð =Ý�CØ ) 	 	¨?¨?ð<ñ =ô =ð =ð ×-Ò-Ø# YØ&+Ø#°eØ#ð	 .ñ ô ð ð  ð Ø�Eðð ð ˜y­C¬OÐ;Ð;ØðK%	ðN ÐÐÐÐÐr,   r3   )r4   r5   r6   r   ÚChoicer7   r+   r.   r1   r,   r*   r(  r(  ‘  s[   € € € € € Ø �T”[‘]”]€Nð 6:Ø26ð1ð 1ð 1ð 1ðh >BØ:>ð?ð ?ð ?ð ?ð ?ð ?r,   r(  c                   óD   — e Zd Z ej        ¦   «         Z	 	 dd„Z	 	 dd„ZdS )ÚAnyPayloadDecoderNc              +   ór  K  — |€d}	n(|j         t          j        u r
||j        v}	n||j        k    }	|	rš|j        }
|                     ¦   «         }|                     |
t          j	        ¦  «         |||
z
  z  }t          rPt          ||¦  «        D ]}t          |t          ¦  «        r|V — Œt          dt          j        |¦  «        z  ¦  «         |r* | | j        ||t"          fi |¤Ž|||¦  «        D ]}|V — Œd S t%          |||¦  «        D ]}t          |t          ¦  «        r|V — Œ | j        |||fi |¤ŽV — d S )NTz&decoding as untagged ANY, substrate %s)rp   r   ÚTagMapÚtagMapr$   ÚmarkedPositionrr   ÚseekÚosÚSEEK_SETrq   r   rY   rZ   r   rì   rG   rD   r
   )r!   r"   r#   r$   r%   r&   r'   r(   r)   Ú
isUntaggedÚfullPositionÚcurrentPositionr=   s                r*   r+   zAnyPayloadDecoder.valueDecoder  s©  è è € ð ÐØˆJˆJàÔ¥6¤=Ð0Ð0Ø x¤Ð6ˆJˆJð   8¤?Ò2ˆJàð 	1Ø$Ô3ˆLØ'ŸnšnÑ.Ô.ˆOà�NŠN˜<­¬Ñ5Ô5Ð5Ø�o¨Ñ4Ñ4ˆFåð 1Ý+¨I°vÑ>Ô>ð $ð $�EÝ! %Õ)?Ñ@Ô@ð $Ø#˜˜˜øÝð Ý œ=¨Ñ/Ô/ñ0ñ 1ô 1ð 1ð ð 	Ø%˜Ø)�DÔ)¨(°F½GÐOÐOÀwÐOÐOØ˜v wñ0ô 0ð ð �ð ����àˆFå# I¨v°wÑ?Ô?ð 	ð 	ˆEÝ˜%Õ!7Ñ8Ô8ð Ø���øà#ˆdÔ# H¨f°eÐGÐG¸wÐGÐGÐGÐGÐGÐGÐGr,   c              +   ó~  K  — |€d}	n(|j         t          j        u r
||j        v }	n||j        k    }	|	rt
          }
t          rt          d¦  «         n–|j        }|                     ¦   «         }| 	                    |t          j        ¦  «         t          |||z
  |¦  «        D ]}
t          |
t          ¦  «        r|
V — Œt          r$t          dt          j        |
¦  «        z  ¦  «         | j        }|rH|| j        ur? | j        ||t(          fi |¤Ž} |||
|z   |t+          |
¦  «        z   |¦  «        D ]}
|
V — Œd S t          rt          d¦  «         | j        }	  |||f|ddœ|¤ŽD ]+}t          |t          ¦  «        r|V — |t,          j        u r nŒ,|t,          j        u rn|
|z  }
ŒN|r|
V — d S  | j        |||
fi |¤ŽV — d S )NFzdecoding as tagged ANYz-decoding as untagged ANY, header substrate %sri   Trx   )rp   r   r8  r9  r$   r   rq   r:  rr   r;  r<  r=  r
   rY   rZ   r   rì   r7   r>   rG   rD   r’   r   rO   )r!   r"   r#   r$   r%   r&   r'   r(   r)   r2  r=   r?  r@  r0   rv   s                  r*   r.   z&AnyPayloadDecoder.indefLenValueDecoder5  s„  è è € ð ÐØˆHˆHàÔ¥6¤=Ð0Ð0Ø ¤Ð0ˆHˆHð  ¤Ò0ˆHàð 	\åˆEåð .ÝÐ,Ñ-Ô-Ð-øð %Ô3ˆLØ'ŸnšnÑ.Ô.ˆOà�NŠN˜<­¬Ñ5Ô5Ð5Ý'¨	°?À\Ñ3QÐSZÑ[Ô[ð  ð  �Ý˜eÕ%;Ñ<Ô<ð  Ø�K�K�Køåð \ÝÐCÅeÄmÐTYÑFZÔFZÑZÑ[Ô[Ð[ð Ô&ˆàð 	˜L°Ô0GÐGÐGØ.˜Ô.Ø˜&¥'ð6ð 6Ø-4ð6ð 6ˆJð &˜Ø ¨	Ñ 1°6½CÀ¹J¼JÑ3FÈñQô Qð ð �à����àˆFåð 	8ÝÐ6Ñ7Ô7Ð7ð Ô.ˆð	à&˜YØ˜xð.Ø6BØ!ð.ð .à%,ð.ð .ð ð �	õ ˜iÕ)?Ñ@Ô@ð $Ø#�O�O�Oà¥¤Ð/Ð/Ø�Eð 0ð �CœOÐ+Ð+Øà�YÑˆEð	ð" ð 	LØˆKˆKˆKˆKˆKð (�$Ô'¨°&¸%ÐKÐKÀ7ÐKÐKÐKÐKÐKÐKÐKr,   r3   rP   r1   r,   r*   r6  r6  	  sk   € € € € € Ø�T”X‘Z”Z€Nð 6:Ø26ð'Hð 'Hð 'Hð 'HðT >BØ:>ðILð ILð ILð ILð ILð ILr,   r6  c                   ó,   — e Zd Z ej        ¦   «         ZdS )ÚUTF8StringPayloadDecoderN)r4   r5   r6   r   Ú
UTF8Stringr7   r1   r,   r*   rC  rC  ‚  r   r,   rC  c                   ó,   — e Zd Z ej        ¦   «         ZdS )ÚNumericStringPayloadDecoderN)r4   r5   r6   r   ÚNumericStringr7   r1   r,   r*   rF  rF  †  ó   € € € € € Ø'�TÔ'Ñ)Ô)€N€N€Nr,   rF  c                   ó,   — e Zd Z ej        ¦   «         ZdS )ÚPrintableStringPayloadDecoderN)r4   r5   r6   r   ÚPrintableStringr7   r1   r,   r*   rJ  rJ  Š  ó   € € € € € Ø)�TÔ)Ñ+Ô+€N€N€Nr,   rJ  c                   ó,   — e Zd Z ej        ¦   «         ZdS )ÚTeletexStringPayloadDecoderN)r4   r5   r6   r   ÚTeletexStringr7   r1   r,   r*   rN  rN  Ž  rH  r,   rN  c                   ó,   — e Zd Z ej        ¦   «         ZdS )ÚVideotexStringPayloadDecoderN)r4   r5   r6   r   ÚVideotexStringr7   r1   r,   r*   rQ  rQ  ’  s   € € € € € Ø(�TÔ(Ñ*Ô*€N€N€Nr,   rQ  c                   ó,   — e Zd Z ej        ¦   «         ZdS )ÚIA5StringPayloadDecoderN)r4   r5   r6   r   Ú	IA5Stringr7   r1   r,   r*   rT  rT  –  ó   € € € € € Ø#�T”^Ñ%Ô%€N€N€Nr,   rT  c                   ó,   — e Zd Z ej        ¦   «         ZdS )ÚGraphicStringPayloadDecoderN)r4   r5   r6   r   ÚGraphicStringr7   r1   r,   r*   rX  rX  š  rH  r,   rX  c                   ó,   — e Zd Z ej        ¦   «         ZdS )ÚVisibleStringPayloadDecoderN)r4   r5   r6   r   ÚVisibleStringr7   r1   r,   r*   r[  r[  ž  rH  r,   r[  c                   ó,   — e Zd Z ej        ¦   «         ZdS )ÚGeneralStringPayloadDecoderN)r4   r5   r6   r   ÚGeneralStringr7   r1   r,   r*   r^  r^  ¢  rH  r,   r^  c                   ó,   — e Zd Z ej        ¦   «         ZdS )ÚUniversalStringPayloadDecoderN)r4   r5   r6   r   ÚUniversalStringr7   r1   r,   r*   ra  ra  ¦  rL  r,   ra  c                   ó,   — e Zd Z ej        ¦   «         ZdS )ÚBMPStringPayloadDecoderN)r4   r5   r6   r   Ú	BMPStringr7   r1   r,   r*   rd  rd  ª  rV  r,   rd  c                   ó,   — e Zd Z ej        ¦   «         ZdS )ÚObjectDescriptorPayloadDecoderN)r4   r5   r6   r   ÚObjectDescriptorr7   r1   r,   r*   rg  rg  ¯  s   € € € € € Ø,�VÔ,Ñ.Ô.€N€N€Nr,   rg  c                   ó,   — e Zd Z ej        ¦   «         ZdS )ÚGeneralizedTimePayloadDecoderN)r4   r5   r6   r   ÚGeneralizedTimer7   r1   r,   r*   rj  rj  ³  s   € € € € € Ø+�VÔ+Ñ-Ô-€N€N€Nr,   rj  c                   ó,   — e Zd Z ej        ¦   «         ZdS )ÚUTCTimePayloadDecoderN)r4   r5   r6   r   ÚUTCTimer7   r1   r,   r*   rm  rm  ·  s   € € € € € Ø#�V”^Ñ%Ô%€N€N€Nr,   rm  c                 ó   — g | ]}|‘ŒS r1   r1   )Ú.0Úxs     r*   ú
<listcomp>rr  ù  s   € Ð!Ð!Ð!�!ˆAÐ!Ð!Ð!r,   r¨   )r   r   c                   óR   — e Zd ZeZ e¦   «         ZdZeZe	Z	e
e
fd„Zdddeddfd„ZdS )ÚSingleItemDecoderTc                 ó~   — |t           ur|n| j        | _        |t           ur|n| j        | _        i | _        i | _        d S r<   )r   ÚTAG_MAPÚ_tagMapÚTYPE_MAPÚ_typeMapÚ	_tagCacheÚ_tagSetCache)r!   r9  ÚtypeMapÚignoreds       r*   Ú__init__zSingleItemDecoder.__init__	  sG   € Ø!'­xÐ!7Ð!7�v�v¸T¼\ˆŒØ#*µ(Ð#:Ð#:˜˜ÀÄˆŒð ˆŒØˆÔÐÐr,   Nc              +   óv  K  — |                      dd¦  «        }	t          r t          dt          j        |||fz  ¦  «         |	r…| j        r~t          |d|¦  «        D ]}
t          |
t          ¦  «        r|
V — Œ|
t          k    r&t          rt          d¦  «         t          j
        V — d S |                     dt          j        ¦  «         | j        }| j        }| j        }| j        }t$          }|                     ¦   «         |_        |t*          u�rg|t,          u �rrd}t          |d|¦  «        D ]}t          |t          ¦  «        r|V — Œt/          |¦  «        }	 ||         }n·# t0          $ rª |}|d	z  }|d
z  }|dz  }|dk    rrd}d}d}	 t          |d|¦  «        D ]}t          |t          ¦  «        r|V — Œ|st3          j        d¦  «        ‚t/          |¦  «        }|dz  }|dz  }||dz  z  }|dz  snŒkt5          j        |||¬¦  «        }|r|||<   Y nw xY w|€L|r4	 ||         }nE# t0          $ r t5          j        d|¦  «        }|||<   Y nw xY wt5          j        d|¦  «        }n||z   }t:          }t          rt          d|z  ¦  «         |t:          u �r/t          |d|¦  «        D ]}t          |t          ¦  «        r|V — Œt/          |¦  «        }|dk     r|}n©|dk    r¡|dz  }t          |||¦  «        D ]}t          |t          ¦  «        r|V — Œt=          |¦  «        }t?          |¦  «        |k    r)t3          j        |›dt?          |¦  «        ›d|›�¦  «        ‚d}|D ]}|dz  }|tA          |¦  «        z  }Œ|dz  }nd}|dk    r| j        st3          j!        d¦  «        ‚tD          }t          rt          d|z  ¦  «         |tD          u r|€tF          }ntH          }|tF          u rÄ	 ||         }n# t0          $ r d }Y nw xY w|rtJ          }n5	 ||d d…                  }n# t0          $ r d }Y nw xY w|rtJ          }ntL          }t          rbt          d|r|j'        j(        pd›d|tJ          u rdpd›�¦  «         t          j         )                    |d u rdp|j*        j'        j(        ¦  «         |tH          u �rf|j'        tV          j,        u rò	 ||         }n# t0          $ r d }Y nw xY wt          rÎt          d ¦  «         |j-         .                    ¦   «         D ]$\  }}t          d!|›d"|j'        j(        ›�¦  «         Œ%|j/        rMt          d#¦  «         |j/         .                    ¦   «         D ]$\  }}t          d!|›d"|j'        j(        ›�¦  «         Œ%t          d$|d u rdp| 0                    ¦   «         ›d%|›�¦  «         n<||j1        k    s	||j2        v r&|}t          rt          d&|j'        j(        z  ¦  «         nd }|�¯	 ||j3                 }t          rt          d'|j3        ›�¦  «         nn# t0          $ ra t5          j        |j1        j4        |j1        j4        ¦  «        } 	 ||          }t          rt          d(| ›�¦  «         n# t0          $ r d }Y nw xY wY nw xY w|r
|}tJ          }ntL          }n	d }tL          }t          rdt          d|tJ          u r|j'        j(        pd›d)|tJ          u rdpd›�¦  «         t          j         )                    |d u rdp|j'        j(        ¦  «         |tJ          u �r]| 5                    d*d¦  «        s|sd+„ }|                     ¦   «         }!|dk    r6 |j6        ||||tD          | |fi |¤ŽD ]}t          |t          ¦  «        r|V — Œnˆ |j7        ||||tD          | |fi |¤ŽD ]}t          |t          ¦  «        r|V — Œ|                     ¦   «         |!z
  }"|s|"|k    rtC          d,|"›d-|›d.�¦  «        ‚|r|"|k    rtC          d,|"›d/|›d.�¦  «        ‚t          r[t          d|j'        j(        ›d0|j'        j(        ›d1t          |tp          j9        ¦  «        r| :                    ¦   «         p|›d2�¦  «         t*          }nô|tL          u r…|rE|d         j;        t4          j<        k    r*|d         j=        t4          j>        k    rt~          }tJ          }n	d }| j@        }t          r.t          d|r|j'        j(        pd›d3|tJ          u rdpd4›�¦  «         |t‚          u r1| jB        }t          rt          d5|j'        j(        z  ¦  «         tJ          }|t†          u rt3          j!        |›d6|›�¦  «        ‚|t*          u�°gt          r:t          j                              ¦   «          t          d7t          j        z  ¦  «         |V — d S )8NrN   FzWdecoder called at scope %s with state %d, working with up to %s octets of substrate: %sr�   zend-of-octets sentinel foundéþÿÿÿTr_   r§   é    é   r   z'Short octet stream on long tag decodingrd   rŠ   r‰   )ÚtagClassrW   ÚtagIdr1   z$tag decoded into %s, decoding lengthú<z at r¤   r£   z6Indefinite length encoding not supported by this codeczvalue length decoded into %dzcodec z<none>z% chosen by a built-in type, decoding rF   zas explicit tagú?z!candidate ASN.1 spec is a map of:z  rá   zbut neither of: znew candidate ASN.1 spec is z, chosen by zcandidate ASN.1 spec is %sz6value decoder chosen for an ambiguous type by type ID zvalue decoder chosen by base z  chosen by ASN.1 spec, decoding ÚrecursiveFlagc              3   ó   K  — | V — dS )ae  Legacy hack to keep the recursiveFlag=False option supported.

                        The decode(..., substrateFun=userCallback) option was introduced in 0.1.4 as a generalization
                        of the old recursiveFlag=False option. Users should pass their callback instead of using
                        recursiveFlag.
                        Nr1   )r0   Ú
_substrateÚ_lengthÚ_optionss       r*   r(   z0SingleItemDecoder.__call__.<locals>.substrateFun  s   è è € ð )Ð(Ð(Ð(Ð(Ð(r,   zRead z bytes instead of expected rä   z bytes are more than expected z yields type z	, value:
z
...z chosen, decoding z
as failurezcodec %s chosen, decoding valuez not in asn1Spec: z%decoder left scope %s, call completed)DÚpoprq   r   ÚscopeÚsupportIndefLengthr
   rY   rZ   ÚEOO_SENTINELr   rO   r;  r<  ÚSEEK_CURrw  ry  rz  r{  rD   rr   r:  ÚstStopÚstDecodeTagrm   r  r   r   ÚTagrÊ   ÚstDecodeLengthÚlistr’   r   r   ÚstGetValueDecoderÚstGetValueDecoderByTagÚstGetValueDecoderByAsn1SpecÚstDecodeValueÚstTryAsExplicitTagrp   r4   Úpushr7   r   r8  ÚpresentTypesrþ   Ú	skipTypesÚprettyPrintTyper$   r9  rî   rË   rB   r.   r+   r   ÚAsn1ItemÚprettyPrintrW   rë   rƒ  ÚtagClassUniversalÚrawPayloadDecoderÚdefaultErrorStateÚstDumpRawValueÚdefaultRawDecoderÚstErrorCondition)#r!   r"   r#   r$   r%   r&   r'   r(   r)   rN   Úeoo_candidater9  r|  ÚtagCacheÚtagSetCacherF   Ú
isShortTagÚ	firstByteÚ
firstOctetÚlastTagÚ
integerTagrƒ  rW   r„  ÚlengthOctetIdxÚintegerByteÚsizeÚencodedLengthÚlengthOctetÚconcreteDecoderÚ
chosenSpecr  Ú
baseTagSetr~   Ú	bytesReads#                                      r*   Ú__call__zSingleItemDecoder.__call__  sŸ  è è € ð
 —;’;˜z¨5Ñ1Ô1ˆåð 	@Ýð åœ U¨F°IÐ>ñ?ñ @ô @ð @ð
 ð 	0˜Ô/ð 	0å!/°	¸1¸gÑ!FÔ!Fð (ð (�Ý˜mÕ-CÑDÔDð (Ø'Ð'Ð'Ð'øà¥Ò,Ð,Ýð 8ÝÐ6Ñ7Ô7Ð7Ý”oÐ%Ð%Ð%Ø�ð —’˜r¥2¤;Ñ/Ô/Ð/à”ˆØ”-ˆØ”>ˆØÔ'ˆåˆà#,§>¢>Ñ#3Ô#3ˆ	Ô à�6Ð!Ñ!à�Ð#Ñ#à!�
å!/°	¸1¸gÑ!FÔ!Fð (ð (�IÝ! )Õ-CÑDÔDð (Ø'˜˜˜øå  ™^œ^�
ð&7Ø& zÔ2�G�Gøåð #7ð #7ð #7Ø!+�JØ)¨DÑ0�HØ *¨TÑ 1�IØ&¨Ñ-�Eà ’}�}Ø%*˜
Ø)*˜Ø !˜ð&Ý/=¸iÈÈGÑ/TÔ/Tð 6ð 6 Ý#-¨kÕ;QÑ#RÔ#Rð !6Ø*5Ð$5Ð$5Ð$5øà#.ð "Ý&+Ô&BØ$Mñ'"ô '"ð !"õ *-¨[Ñ)9Ô)9˜JØ*¨aÑ/˜NØ! a™K˜EØ! j°4Ñ&7Ñ8˜Eà#-°Ñ#4ð &Ø %ð!&õ$ "œgØ!)°YÀeðñ ô �Gð "ð 7à/6˜ Ñ,øøðG#7øøøðJ �>Ø!ð 	9ð=Ø%0°Ô%<˜F˜Føå'ð =ð =ð =å%(¤Z°°GÑ%<Ô%<˜FØ6<˜K¨
Ñ3Ð3Ð3ð=øøøõ
 "%¤¨B°Ñ!8Ô!8˜˜ð % vÑ-�Få&�åð IÝÐ>ÀÑGÑHÔHÐHà�Ð&Ñ&å"0°¸A¸wÑ"GÔ"Gð )ð )�JÝ! *Õ.DÑEÔEð )Ø(Ð(Ð(Ð(øå  ™_œ_�
à Ò#Ð#Ø'�F�Fà #Ò%Ð%Ø%¨Ñ,�Då)7¸	À4ÈÑ)QÔ)Qð 0ð 0˜Ý% mÕ5KÑLÔLð 0Ø"/Ð/Ð/Ð/øÝ$(¨Ñ$7Ô$7�Mõ ˜=Ñ)Ô)¨TÒ1Ð1Ý#Ô:Ø-1¨T¨Tµ3°}Ñ3EÔ3EÐ3EÐ3EÀvÀvÐNñô ð ð �FØ'4ð 7ð 7˜Ø 1™˜Ø¥'¨+Ñ"6Ô"6Ñ6˜˜Ø˜A‘I�D�Dð  �Fà˜R’<�<¨Ô(?�<ÝÔ+Ð,dÑeÔeÐeå)�åð AÝÐ6¸Ñ?Ñ@Ô@Ð@àÕ)Ð)Ð)ØÐ#Ý2�E�Eõ 8�Eð" Õ.Ð.Ð.ð+Ø&,¨V¤n�O�Oøåð +ð +ð +Ø&*�O�O�Oð+øøøð #ð 3Ý)�E�Eð/Ø*0°¸¸¸´Ô*<˜˜øå#ð /ð /ð /Ø*.˜˜˜ð/øøøð 'ð 3Ý -˜˜å 2˜åð {Ý�CÈ_ð  NDÐapÔazô  bDð  NPð  HPð  NPð  NPð  RWõ  [hð  Rhð  Rtð  mtð  RIð  xIð  RIð  Jñ  Kô  Kð  KÝ”K×$Ò$ _¸Ð%<Ð%DÀÐ%yÈÔHfÔHpÔHyÑzÔzÐzàÕ3Ð3Ñ3àÔ%­¬Ð6Ð6ð*Ø%-¨fÔ%5˜
˜
øå#ð *ð *ð *Ø%)˜
˜
˜
ð*øøøõ ð 
XÝÐ?Ñ@Ô@Ð@à-5Ô-B×-HÒ-HÑ-JÔ-Jð Sð S™M˜J¨Ý˜C°
°
°
¸A¼KÔ<PÐ<PÐ QÑRÔRÐRÐRà#Ô-ð WÝÐ 2Ñ3Ô3Ð3Ø19Ô1C×1IÒ1IÑ1KÔ1Kð Wð W¡ 
¨AÝ # °J°J°JÀÄÔ@TÐ@TÐ$UÑ VÔ VÐ VÐ VÝ˜ÈjÐ\`ÐN`ÐNmÐemð  ONÐq{÷  rLò  rLñ  rNô  rNð  ONð  ONð  PVð  PVð  Wñ  Xô  Xð  Xøà˜xœÒ.Ð.°&¸H¼OÐ2KÐ2KØ!)�JÝð XÝÐ8¸8Ô;MÔ;VÑVÑWÔWÐWøð "&�JàÐ)ð3à*1°*Ô2CÔ*D˜åð sÝ˜CÐ^hÔ^oÐ^oÐ qÑrÔrÐrøøå#ð 3ð 3ð 3å%(¤Z°
Ô0AÔ0IÈJÔL]ÔLeÑ%fÔ%f˜
ð3à.4°ZÔ.@˜Oå"ð WÝ # ÈÈÐ$UÑ VÔ VÐ Vøøå'ð 3ð 3ð 3Ø.2˜O˜O˜Oð3øøøøøð3øøøð 'ð 3Ø#-˜Ý -˜˜õ !3˜˜ð '+�OÝ.�Eåð bÝ�CÈÕQ^ÐH^ð  IFÐcrÔc|ô  dFð  IRð  JRð  IRð  IRð  TYõ  ]jð  Tjð  Tvð  ovð  TKð  zKð  TKð  Lñ  Mô  Mð  MÝ”K×$Ò$ Z°4Ð%7Ð%?¸CÐ%`À:ÔCWÔC`ÑaÔaÐaà�Ð%Ñ%Ø—{’{ ?°DÑ9Ô9ð )À,ð )ð)ð )ð )ð %.§N¢NÑ$4Ô$4Ð!à˜R’<�<Ø!E Ô!EØ% xØ" FÕ,=Ø  ,ð";ð ";ð 3:ð";ð ";ð (ð (˜õ & eÕ-CÑDÔDð (Ø"'˜K˜K˜Køð(ð "> Ô!=Ø% xØ" FÕ,=Ø  ,ð";ð ";ð 3:ð";ð ";ð (ð (˜õ & eÕ-CÑDÔDð (Ø"'˜K˜K˜Køà )§¢Ñ 0Ô 0Ð3DÑ D�IØ'ð ^¨I¸Ò,?Ð,?Ý)˜kØGPÀyÀyÐRXÐRXÐRXÐYñ[ô [ð [à%ð ^¨)°fÒ*<Ð*<å)˜kØJSÈ)È)ÐU[ÐU[ÐU[Ð\ñ^ô ^ð ^õ ð [Ý�3Ø&Ô0Ô9Ð9Ð9¸5¼?Ô;SÐ;SÐ;SÝ! %­¬Ñ7Ô7ÐO¸E×<MÒ<MÑ<OÔ<OÐXÐSXÐXÐXðZñ [ô [ð [õ �ØàÕ*Ð*Ð*Øð 	3Ø˜qœ	Ô+­sÔ/GÒGÐGØ˜qœ	Ô*­cÔ.CÒCÐCå&7�OÝ)�E�Eð '+�OØ Ô2�Eåð sÝ�C¸/Ð:pÈoÔNgÔNpÐ:|Ðt|Ð:|Ð:|ð  Dõ  HUð  Uð  að  Zað  qð  eqð  qð  rñ  sô  sð  sà�Ð&Ð&Ø"&Ô"8�åð `ÝÐ9¸OÔ<UÔ<^Ñ^Ñ_Ô_Ð_å%�àÕ(Ð(Ð(ÝÔ'Ø06°°¸¸ÐAñô ð ðS	 �6Ð!Ñ!õZ	 ð 	GÝŒK�OŠOÑÔÐÝÐ7½%¼+ÑEÑFÔFÐFàˆˆˆˆˆs‘   ÅE ÅB1HÈHÈH$ È$$IÉ
IÏ&O/ Ï/O>Ï=O>ÐP ÐP,Ð+P,ÓS ÓSÓS×7+X# Ø#3ZÙ!Y9Ù8ZÙ9ZÚZÚZÚZÚZ)r4   r5   r6   r¦  r£  r6  r¥  rŽ  rv  rx  r   r~  r’  r¸  r1   r,   r*   rt  rt  ÿ  s}   € € € € € Ø(Ðà)Ð)Ñ+Ô+ÐàÐà€GØ€Hà&°ð ð ð ð ð ,0Ø T°Ø¨dðVð Vð Vð Vð Vð Vr,   rt  c                   ó$   — e Zd ZdZeZdd„Zd„ ZdS )r   a¹	  Create an iterator that turns BER/CER/DER byte stream into ASN.1 objects.

    On each iteration, consume whatever BER/CER/DER serialization is
    available in the `substrate` stream-like object and turns it into
    one or more, possibly nested, ASN.1 objects.

    Parameters
    ----------
    substrate: :py:class:`file`, :py:class:`io.BytesIO`
        BER/CER/DER serialization in form of a byte stream

    Keyword Args
    ------------
    asn1Spec: :py:class:`~pyasn1.type.base.PyAsn1Item`
        A pyasn1 type object to act as a template guiding the decoder.
        Depending on the ASN.1 structure being decoded, `asn1Spec` may
        or may not be required. One of the reasons why `asn1Spec` may
        me required is that ASN.1 structure is encoded in the *IMPLICIT*
        tagging mode.

    Yields
    ------
    : :py:class:`~pyasn1.type.base.PyAsn1Item`, :py:class:`~pyasn1.error.SubstrateUnderrunError`
        Decoded ASN.1 object (possibly, nested) or
        :py:class:`~pyasn1.error.SubstrateUnderrunError` object indicating
        insufficient BER/CER/DER serialization on input to fully recover ASN.1
        objects from it.
        
        In the latter case the caller is advised to ensure some more data in
        the input stream, then call the iterator again. The decoder will resume
        the decoding process using the newly arrived data.

        The `context` property of :py:class:`~pyasn1.error.SubstrateUnderrunError`
        object might hold a reference to the partially populated ASN.1 object
        being reconstructed.

    Raises
    ------
    ~pyasn1.error.PyAsn1Error, ~pyasn1.error.EndOfStreamError
        `PyAsn1Error` on deserialization error, `EndOfStreamError` on
         premature stream closure.

    Examples
    --------
    Decode BER serialisation without ASN.1 schema

    .. code-block:: pycon

        >>> stream = io.BytesIO(
        ...    b'0	')
        >>>
        >>> for asn1Object in StreamingDecoder(stream):
        ...     print(asn1Object)
        >>>
        SequenceOf:
         1 2 3

    Decode BER serialisation with ASN.1 schema

    .. code-block:: pycon

        >>> stream = io.BytesIO(
        ...    b'0	')
        >>>
        >>> schema = SequenceOf(componentType=Integer())
        >>>
        >>> decoder = StreamingDecoder(stream, asn1Spec=schema)
        >>> for asn1Object in decoder:
        ...     print(asn1Object)
        >>>
        SequenceOf:
         1 2 3
    Nc                 ón   —  | j         di |¤Ž| _        t          |¦  «        | _        || _        || _        d S )Nr1   )ÚSINGLE_ITEM_DECODERÚ_singleItemDecoderr   r‰  Ú	_asn1Specr‹  )r!   r"   r#   r)   s       r*   r~  zStreamingDecoder.__init__·  s>   € Ø": $Ô":Ð"EÐ"E¸WÐ"EÐ"EˆÔÝ*¨9Ñ5Ô5ˆŒØ!ˆŒØˆŒˆˆr,   c              #   ó¼   K  — 	  | j         | j        | j        fi | j        ¤ŽD ]}|V — Œt	          | j        ¦  «        D ]}t          |t          ¦  «        rd V —  |rd S ŒZr<   )r¼  r‰  r½  r‹  r   rY   rZ   )r!   r0   r=   s      r*   Ú__iter__zStreamingDecoder.__iter__½  sž   è è € ð	Ø5˜dÔ5Ø”O T¤^ðFð FØ7;´}ðFð Fð !ð !�
à Ð Ð Ð Ð å& t¤Ñ7Ô7ð ð �Ý˜eÕ%;Ñ<Ô<ð Ø�E�E�Eààð Ø�ð	r,   r<   )r4   r5   r6   Ú__doc__rt  r»  r~  r¿  r1   r,   r*   r   r   j  sL   € € € € € ðHð HðT ,Ðð ð  ð  ð  ðð ð ð ð r,   r   c                   óD   — e Zd ZdZeZedd„¦   «         Zed„ ¦   «         Z	dS )r   znCreate a BER decoder object.

    Parse BER/CER/DER octet-stream into one, possibly nested, ASN.1 object.
    Nc                 óL  ‡— t          |¦  «        }d|v r|d         Šdˆfd„	}||d<    | j        ||fi |¤Ž}|D ]j}t          |t          ¦  «        rt	          j        d¦  «        ‚	 t          t          |¦  «        ¦  «        }n# t          j        $ r
 t          }Y nw xY w||fc S dS )a€  Turns BER/CER/DER octet stream into an ASN.1 object.

        Takes BER/CER/DER octet-stream in form of :py:class:`bytes` (Python 3)
        or :py:class:`str` (Python 2) and decode it into an ASN.1 object
        (e.g. :py:class:`~pyasn1.type.base.PyAsn1Item` derivative) which
        may be a scalar or an arbitrary nested structure.

        Parameters
        ----------
        substrate: :py:class:`bytes` (Python 3) or :py:class:`str` (Python 2)
            BER/CER/DER octet-stream to parse

        Keyword Args
        ------------
        asn1Spec: :py:class:`~pyasn1.type.base.PyAsn1Item`
            A pyasn1 type object (:py:class:`~pyasn1.type.base.PyAsn1Item`
            derivative) to act as a template guiding the decoder.
            Depending on the ASN.1 structure being decoded, `asn1Spec` may or
            may not be required. Most common reason for it to require is that
            ASN.1 structure is encoded in *IMPLICIT* tagging mode.

        substrateFun: :py:class:`Union[
                Callable[[pyasn1.type.base.PyAsn1Item, bytes, int],
                         Tuple[pyasn1.type.base.PyAsn1Item, bytes]],
                Callable[[pyasn1.type.base.PyAsn1Item, io.BytesIO, int, dict],
                         Generator[Union[pyasn1.type.base.PyAsn1Item,
                                         pyasn1.error.SubstrateUnderrunError],
                                   None, None]]
            ]`
            User callback meant to generalize special use cases like non-recursive or
            partial decoding. A 3-arg non-streaming variant is supported for backwards
            compatiblilty in addition to the newer 4-arg streaming variant.
            The callback will receive the uninitialized object recovered from substrate
            as 1st argument, the uninterpreted payload as 2nd argument, and the length
            of the uninterpreted payload as 3rd argument. The streaming variant will
            additionally receive the decode(..., **options) kwargs as 4th argument.
            The non-streaming variant shall return an object that will be propagated
            as decode() return value as 1st item, and the remainig payload for further
            decode passes as 2nd item.
            The streaming variant shall yield an object that will be propagated as
            decode() return value, and leave the remaining payload in the stream.

        Returns
        -------
        : :py:class:`tuple`
            A tuple of :py:class:`~pyasn1.type.base.PyAsn1Item` object
            recovered from BER/CER/DER substrate and the unprocessed trailing
            portion of the `substrate` (may be empty)

        Raises
        ------
        : :py:class:`~pyasn1.error.PyAsn1Error`
            :py:class:`~pyasn1.error.SubstrateUnderrunError` on insufficient
            input or :py:class:`~pyasn1.error.PyAsn1Error` on decoding error.

        Examples
        --------
        Decode BER/CER/DER serialisation without ASN.1 schema

        .. code-block:: pycon

           >>> s, unprocessed = decode(b'0	')
           >>> str(s)
           SequenceOf:
            1 2 3

        Decode BER/CER/DER serialisation with ASN.1 schema

        .. code-block:: pycon

           >>> seq = SequenceOf(componentType=Integer())
           >>> s, unprocessed = decode(
                b'0	', asn1Spec=seq)
           >>> str(s)
           SequenceOf:
            1 2 3

        r(   Nc              3   ó  •K  — 	  ‰	| |||¦  «        }nh# t           $ r[ t          j        ¦   «         \  }}}|j        r‚ t	          |t
          j        ¦  «        sJ ‚t                               ‰	| ||¦  «        }Y nw xY w|D ]}|V — ŒdS )ar  Support both 0.4 and 0.5 style APIs.

                substrateFun API has changed in 0.5 for use with streaming decoders. To stay backwards compatible,
                we first try if we received a streaming user callback. If that fails,we assume we've received a
                non-streaming v0.4 user callback and convert it for streaming on the fly
                N)	Ú	TypeErrorÚsysÚexc_infoÚtb_nextrY   ÚioÚBytesIOr   Ú_callSubstrateFunV4asV5)
r0   r"   r%   r)   Úsubstrate_genÚ_typeÚ_valueÚ	tracebackrF   ÚorigSubstrateFuns
            €r*   ÚsubstrateFunWrapperz-Decoder.__call__.<locals>.substrateFunWrapper)  sÄ   øè è € ð	uØ$4Ð$4°ZÀÈFÐT[Ñ$\Ô$\�M�MøÝ ð uð uð uÝ/2¬|©~¬~Ñ,�E˜6 9Ø Ô(ð àå% iµ´Ñ<Ô<Ð<Ð<Ð<Ý$+×$CÒ$CÐDTÐV`ÐbkÐmsÑ$tÔ$t�M�M�Mðuøøøð +ð  ð  �EØ�K�K�K�Kð ð  s   … ”A"A9Á8A9zShort substrate on inputr<   )	r   ÚSTREAMING_DECODERrY   rZ   r   Únextr
   ÚEndOfStreamErrorr   )	Úclsr"   r#   r)   rÐ  ÚstreamingDecoderr0   ÚtailrÏ  s	           @r*   r¸  zDecoder.__call__Ô  s  ø€ õ` % YÑ/Ô/ˆ	à˜WÐ$Ð$Ø& ~Ô6Ðð ð  ð  ð  ð  ð  ð( ':ˆG�NÑ#à0˜3Ô0Ø�xð,ð ,Ø#*ð,ð ,Ðð +ð 
	$ð 
	$ˆJÝ˜*Õ&<Ñ=Ô=ð OÝÔ2Ð3MÑNÔNÐNðÝ�N¨9Ñ5Ô5Ñ6Ô6��øåÔ)ð ð ð Ý���ðøøøð ˜tÐ#Ð#Ð#Ð#ð
	$ð 
	$s   Á%BÂBÂBc              #   ó  K  — |                      ¦   «         }|dk    rt          |¦  «        } | |||¦  «        \  }}|                     |¦  «        }|                     ¦   «          |                     | t
          j        ¦  «         |V — d S )Nr£   )Úreadr’   ÚwriteÚtruncater;  r<  r�  )ÚsubstrateFunV4r0   r"   r%   Úsubstrate_bytesrF   ÚnextSubstrateÚnbytess           r*   rÊ  zDecoder._callSubstrateFunV4asV5N  s‹   è è € à#Ÿ.š.Ñ*Ô*ˆØ�RŠ<ˆ<Ý˜Ñ)Ô)ˆFØ-˜~¨j¸/È6ÑRÔRÑˆˆ}Ø—’ Ñ/Ô/ˆØ×ÒÑÔÐØ�Š˜�w¥¤Ñ,Ô,Ð,Øˆˆˆˆˆr,   r<   )
r4   r5   r6   rÀ  r   rÑ  Úclassmethodr¸  r8   rÊ  r1   r,   r*   r   r   Í  sd   € € € € € ðð ð )Ðàðw$ð w$ð w$ñ „[ðw$ðr ðð ñ „\ðð ð r,   r   )‚rÈ  r<  rÅ  Úpyasn1r   r   Úpyasn1.codec.berr   Úpyasn1.codec.streamingr   r   r   r
   Úpyasn1.compatr   Úpyasn1.compat.integerr   Úpyasn1.compat.octetsr   r   r   r   Úpyasn1.errorr   Úpyasn1.typer   r   r   r   r   r   Ú__all__ÚregisterLoggeer4   ÚDEBUG_DECODERrq   rD   rZ   Úobjectr   r:   rI   r¢  rS   r]   rb   r{   r‚   r†   rš   rŸ   rµ   r·   r  r  r  r"  r$  r&  r(  r6  rC  rF  rJ  rN  rQ  rT  rX  r[  r^  ra  rd  rg  rj  rm  r[   r$   r`   ry   r€   r„   r˜   r�   Ú
Enumeratedr³   rï   rð   r4  rD  rG  rK  rO  rR  rU  rY  r\  r_  rb  re  rh  rk  rn  rv  rî   r  r  rQ   rx  r9  r|  ÚvaluesÚtypeDecoderr7   rp   Úranger’  r”  r–  r˜  r—  rš  r™  r¤  r¦  r‘  r�  rt  r   r   r   r1   r,   r*   ú<module>rð     sr  ðð 
€	€	€	Ø 	€	€	€	Ø 
€
€
€
ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø "Ð "Ð "Ð "Ð "Ð "Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DØ $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à
3Ð
3Ð
3€à€eÔ˜8¨5Ô+>Ð?Ñ?Ô?€à
Œ,€àÔ5Ð ðð ð ð ð ˜Vñ ô ð ð>)ð )ð )ð )ð )Ð#9ñ )ô )ð )ð"&ð &ð &ð &ð &Ð4ñ &ô &ð &ðR &Ð%Ñ'Ô'Ð ðHð Hð Hð Hð HÐ8ñ Hô Hð Hð0Að Að Að Að AÐ1ñ Aô Að Að@Lð @Lð @Lð @Lð @LÐ:ñ @Lô @Lð @LðFSIð SIð SIð SIð SIÐ <ñ SIô SIð SIðlð ð ð ð Ð5ñ ô ð ð.9Fð 9Fð 9Fð 9Fð 9FÐ%Añ 9Fô 9Fð 9Fðx/Ið /Ið /Ið /Ið /IÐ <ñ /Iô /Ið /IðdkHð kHð kHð kHð kHÐ5ñ kHô kHð kHð\ð ð ð ð Ð(>ñ ô ð ðAð Að Að Að AÐ$Eñ Aô Að AðH/ð /ð /ð /ð /Ð)Fñ /ô /ð /ð
%ð %ð %ð %ð %Ð?ñ %ô %ð %ð'ð 'ð 'ð 'ð 'ÐAñ 'ô 'ð 'ð*ð *ð *ð *ð *Ð<ñ *ô *ð *ð
 ð  ð  ð  ð  Ð0ñ  ô  ð  ð"ð "ð "ð "ð "Ð2ñ "ô "ð "ðuð uð uð uð uÐ8ñ uô uð uðpuLð uLð uLð uLð uLÐ4ñ uLô uLð uLðr'ð 'ð 'ð 'ð 'Ð8ñ 'ô 'ð 'ð*ð *ð *ð *ð *Ð";ñ *ô *ð *ð,ð ,ð ,ð ,ð ,Ð$=ñ ,ô ,ð ,ð*ð *ð *ð *ð *Ð";ñ *ô *ð *ð+ð +ð +ð +ð +Ð#<ñ +ô +ð +ð&ð &ð &ð &ð &Ð7ñ &ô &ð &ð*ð *ð *ð *ð *Ð";ñ *ô *ð *ð*ð *ð *ð *ð *Ð";ñ *ô *ð *ð*ð *ð *ð *ð *Ð";ñ *ô *ð *ð,ð ,ð ,ð ,ð ,Ð$=ñ ,ô ,ð ,ð&ð &ð &ð &ð &Ð7ñ &ô &ð &ð
/ð /ð /ð /ð /Ð%>ñ /ô /ð /ð.ð .ð .ð .ð .Ð$=ñ .ô .ð .ð&ð &ð &ð &ð &Ð5ñ &ô &ð &ðØ„LÔÐ.Ð.Ñ0Ô0ðà„LÔÐ.Ð.Ñ0Ô0ðð 	„NÔÐ2Ð2Ñ4Ô4ðð 	ÔÔÐ6Ð6Ñ8Ô8ð	ð
 	„IÔÐ(Ð(Ñ*Ô*ðð 	ÔÔ Ð"@Ð"@Ñ"BÔ"Bðð 	ÔÔÐ6Ð6Ñ8Ô8ðð 	„OÔÐ1Ð1Ñ3Ô3ðð 	„IÔÐ(Ð(Ñ*Ô*ðð 	„MÔÐ<Ð<Ñ>Ô>ðð 	„H„OÐ-Ð-Ñ/Ô/ðð 	„KÔÐ,Ð,Ñ.Ô.ðð 	„OÔÐ4Ð4Ñ6Ô6ðð 	ÔÔÐ:Ð:Ñ<Ô<ðð  	ÔÔÐ!>Ð!>Ñ!@Ô!@ð!ð" 	ÔÔÐ:Ð:Ñ<Ô<ð#ð$ 	ÔÔÐ <Ð <Ñ >Ô >ð%ð& 	„NÔÐ2Ð2Ñ4Ô4ØÔÔÐ:Ð:Ñ<Ô<ØÔÔÐ:Ð:Ñ<Ô<ØÔÔÐ:Ð:Ñ<Ô<ØÔÔÐ!>Ð!>Ñ!@Ô!@Ø„NÔÐ2Ð2Ñ4Ô4à
ÔÔ"Ð$BÐ$BÑ$DÔ$DØ
ÔÔ!Ð#@Ð#@Ñ#BÔ#BØ
„NÔÐ0Ð0Ñ2Ô2ð9ð €ðB 	„H„OÐ&Ð&Ñ(Ô(Ø„JÔÐ*Ð*Ñ,Ô,Ø„MÔÐ0Ð0Ñ2Ô2Ø„OÔÐ4Ð4Ñ6Ô6Ø„KÔÐ,Ð,Ñ.Ô.Ø„H„OÐ&Ð&Ñ(Ô(ð€ð 
€Ø
€ð —>’>Ñ#Ô#ð +ð +€KØÔ!Ð-ØÔ+Ô5Ô<ˆØÐ &°Ð"8Ð"8Ø*ˆH�VÑøð "Ð!�u�u˜R‘y”yÐ!Ñ!Ô!ñ		€ØØØØØØØØØð ˆy˜Ñ Ô €ðhð hð hð hð h˜ñ hô hð hðV`ð `ð `ð `ð `�vñ `ô `ð `ðFJð Jð Jð Jð Jˆfñ Jô Jð JðF 
ˆ‰Œ€€€r,   