o
    Þý°jî#  ã                   @   s,  d dl m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gZejeejd�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)d*„ d*eƒZ"i 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j*j$eƒ “ej+j$eƒ “ej,j$eƒ “ej-j$e ƒ “ej.j$e ƒ “ej/j$e!ƒ “e
j0j$eƒ “e
j1j$eƒ “e
j2j$eƒ “e
j3j$eƒ “e
j4j$eƒ “e
j5j$eƒ e
j6j$eƒ e
j7j$eƒ e
j8j$eƒ e
j9j$eƒ e
j:j$eƒ ej;j$eƒ ej<j$eƒ ej=j$eƒ i	¥Z>i 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j*j?eƒ “ej+j?eƒ “ej,j?eƒ “ej@j?eƒ “ej.j?e ƒ “ejAj?eƒ “ej-j?e ƒ “ej/j?e!ƒ “ejBj?e"ƒ “e
j0j?eƒ “e
j1j?eƒ “e
j2j?eƒ e
j3j?eƒ e
j4j?eƒ e
j5j?eƒ e
j6j?eƒ e
j7j?eƒ e
j8j?eƒ e
j9j?eƒ e
j:j?eƒ ej;j?eƒ ej<j?eƒ ej=j?eƒ i¥ZCG d+d,„ d,eƒZDG d-d.„ d.eƒZEeDƒ ZFd/eGfd0d1„ZHdS )2é    )ÚOrderedDictN)Údebug)Úerror)Ú_MISSING)Úbase)Úchar)Útag)Úuniv)ÚusefulÚencode)Úflagsc                   @   ó   e Zd Zdd„ ZdS )ÚAbstractItemEncoderc                 K   s
   t  d¡‚)NzNot implemented)r   ÚPyAsn1Error©ÚselfÚvalueÚ	encodeFunÚoptions© r   úŽ/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/pyasn1/codec/native/encoder.pyr      s   
zAbstractItemEncoder.encodeN©Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r      ó    r   c                   @   r   )ÚBooleanEncoderc                 K   ó   t |ƒS ©N)Úboolr   r   r   r   r      ó   zBooleanEncoder.encodeNr   r   r   r   r   r      r   r   c                   @   r   )ÚIntegerEncoderc                 K   r   r   )Úintr   r   r   r   r   #   r    zIntegerEncoder.encodeNr   r   r   r   r   r!   "   r   r!   c                   @   r   )ÚBitStringEncoderc                 K   r   r   ©Ústrr   r   r   r   r   (   r    zBitStringEncoder.encodeNr   r   r   r   r   r#   '   r   r#   c                   @   r   )ÚOctetStringEncoderc                 K   ó   |  ¡ S r   ©ÚasOctetsr   r   r   r   r   -   r    zOctetStringEncoder.encodeNr   r   r   r   r   r&   ,   r   r&   c                   @   r   )ÚTextStringEncoderc                 K   r   r   r$   r   r   r   r   r   2   r    zTextStringEncoder.encodeNr   r   r   r   r   r*   1   r   r*   c                   @   r   )ÚNullEncoderc                 K   s   d S r   r   r   r   r   r   r   7   s   zNullEncoder.encodeNr   r   r   r   r   r+   6   r   r+   c                   @   r   )ÚObjectIdentifierEncoderc                 K   r   r   r$   r   r   r   r   r   <   r    zObjectIdentifierEncoder.encodeNr   r   r   r   r   r,   ;   r   r,   c                   @   r   )ÚRelativeOIDEncoderc                 K   r   r   r$   r   r   r   r   r   A   r    zRelativeOIDEncoder.encodeNr   r   r   r   r   r-   @   r   r-   c                   @   r   )ÚRealEncoderc                 K   r   r   )Úfloatr   r   r   r   r   F   r    zRealEncoder.encodeNr   r   r   r   r   r.   E   r   r.   c                   @   s   e Zd ZeZdd„ ZdS )Ú
SetEncoderc           
      K   sz   |j }|rt d|jj› d�¡‚|j}|  ¡ }t| ¡ ƒD ]\}\}}	|r0|| j	r0|| j
s0q||	fi |¤Ž||< q|S )NúASN.1 object ú is inconsistent)ÚisInconsistentr   r   Ú	__class__r   ÚcomponentTypeÚ	protoDictÚ	enumerateÚitemsÚ
isOptionalÚisValue)
r   r   r   r   ÚinconsistencyÚ
namedTypesÚ	substrateÚidxÚkeyÚsubValuer   r   r   r   M   s   ÿzSetEncoder.encodeN)r   r   r   Údictr6   r   r   r   r   r   r0   J   s    r0   c                   @   s   e Zd ZeZdS )ÚSequenceEncoderN)r   r   r   r   r6   r   r   r   r   rB   ]   s    rB   c                   @   r   )ÚSequenceOfEncoderc                    s4   |j }|rt d|jj› d�¡‚‡ ‡fdd„|D ƒS )Nr1   r2   c                    s   g | ]
}ˆ |fi ˆ¤Ž‘qS r   r   )Ú.0Úx©r   r   r   r   Ú
<listcomp>g   s    z,SequenceOfEncoder.encode.<locals>.<listcomp>)r3   r   r   r4   r   )r   r   r   r   r;   r   rF   r   r   b   s   ÿzSequenceOfEncoder.encodeNr   r   r   r   r   rC   a   r   rC   c                   @   s   e Zd ZdS )ÚChoiceEncoderN)r   r   r   r   r   r   r   rH   j   s    rH   c                   @   r   )Ú
AnyEncoderc                 K   r'   r   r(   r   r   r   r   r   o   r    zAnyEncoder.encodeNr   r   r   r   r   rI   n   r   rI   c                   @   s*   e Zd ZeZeZeefdd„Zdd„ ZdS )ÚSingleItemEncoderc                 K   s2   |t ur|n| j| _|t ur|| _d S | j| _d S r   )r   ÚTAG_MAPÚ_tagMapÚTYPE_MAPÚ_typeMap)r   ÚtagMapÚtypeMapÚignoredr   r   r   Ú__init__½   s   zSingleItemEncoder.__init__c                 K   s
  t |tjƒst d¡‚tr#tj t	|ƒj
¡ tdt	|ƒj
| ¡ f ƒ |j}z| j|j }W n* tyX   t |jj|jj¡}z| j| }W n tyU   t d|f ¡‚w Y nw tretd|jj
|f ƒ |j|| fi |¤Ž}trƒtdt	|ƒj
t|ƒf ƒ tj ¡  |S )Nz;value is not valid (should be an instance of an ASN.1 Item)zencoder called for type %s <%s>zNo encoder for %sz!using value codec %s chosen by %szencoder %s produced: %s)Ú
isinstancer   ÚAsn1Itemr   r   ÚLOGr   ÚscopeÚpushÚtyper   ÚprettyPrintÚtagSetrN   ÚtypeIdÚKeyErrorr   ÚTagSetÚbaseTagrL   r4   r   ÚreprÚpop)r   r   r   rZ   ÚconcreteEncoderÚ
baseTagSetÚpyObjectr   r   r   Ú__call__Á   sD   ÿÿÿÿþú
ÿÿ
zSingleItemEncoder.__call__N)r   r   r   rK   rM   r   rR   rd   r   r   r   r   rJ   ¸   s
    rJ   c                   @   s"   e Zd ZeZdd„ Zddd„ZdS )ÚEncoderc                 K   s   | j di |¤Ž| _d S )Nr   )ÚSINGLE_ITEM_ENCODERÚ_singleItemEncoder)r   r   r   r   r   rR   ì   s   zEncoder.__init__Nc                 K   s   | j |fd|i|¤ŽS )NÚasn1Spec)rg   )r   rc   rh   r   r   r   r   rd   ï   s   ÿÿÿzEncoder.__call__r   )r   r   r   rJ   rf   rR   rd   r   r   r   r   re   é   s    re   Úattrc                 C   sB   dddœ  | ¡ }rtj| › d|› d�tdd� tƒ | S t| ƒ‚)NrK   rM   )rO   rP   z is deprecated. Please use z	 instead.é   )Ú
stacklevel)ÚgetÚwarningsÚwarnÚDeprecationWarningÚglobalsÚAttributeError)ri   ÚnewAttrr   r   r   Ú__getattr__  s   
rs   )IÚcollectionsr   rm   Úpyasn1r   r   Úpyasn1.compatr   Úpyasn1.typer   r   r   r	   r
   Ú__all__ÚregisterLoggeer   ÚDEBUG_ENCODERrU   Úobjectr   r   r!   r#   r&   r*   r+   r,   r-   r.   r0   rB   rC   rH   rI   ÚBooleanrZ   ÚIntegerÚ	BitStringÚOctetStringÚNullÚObjectIdentifierÚRelativeOIDÚ
EnumeratedÚRealÚ
SequenceOfÚSetOfÚChoiceÚ
UTF8StringÚNumericStringÚPrintableStringÚTeletexStringÚVideotexStringÚ	IA5StringÚGraphicStringÚVisibleStringÚGeneralStringÚUniversalStringÚ	BMPStringÚObjectDescriptorÚGeneralizedTimeÚUTCTimerK   r[   ÚSetÚSequenceÚAnyrM   rJ   re   r   r%   rs   r   r   r   r   Ú<module>   sø   	
ÿ
þ
ý
ü
û
ú
ù
ø
	÷
õ
ô
ó
ñ
ð
ï
î
í








ã!
ÿ
þ
ý
ü
û
ú
ù
ø
	÷
õ
ô
ó
ò
ñ
ð
î
í











à$1.