§
    qŠtj‰M  ã                   ó>  — d dl Z d dlmZ 	 d dlZn# e$ r d dlZY nw xY wd dlZd dlmZ	 d dl
mZmZ d dlZddlmZ ddlmZmZ ddlmZmZmZmZmZmZmZmZmZmZmZmZ  G d„ d	ej         ¦  «        Z! G d
„ dej         ¦  «        Z" G d„ dej         ¦  «        Z# G d„ dej         ¦  «        Z$ G d„ dej         ¦  «        Z% G d„ dej         ¦  «        Z& G d„ dej         ¦  «        Z' G d„ dej         ¦  «        Z( G d„ dej         ¦  «        Z) G d„ dej         ¦  «        Z* G d„ dej         ¦  «        Z+ G d„ dej         ¦  «        Z,e	j-        d d!z  d"fd#„¦   «         Z.i Z/d$ej0        v rd e/d%<    ed*i e/¤Ž e e.¦   «         ¦  «        d&„ ¦   «         ¦   «         Z1d'„ Z2d(„ Z3d)„ Z4dS )+é    N)Úhexlify)ÚgivenÚsettingsé   )Ústr_idx_as_int)ÚNIST256pÚNIST224p)Úremove_integerÚUnexpectedDERÚread_lengthÚencode_bitstringÚremove_bitstringÚremove_objectÚ
encode_oidÚremove_constructedÚremove_implicitÚremove_octet_stringÚremove_sequenceÚencode_implicitc                   óP   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ ZdS )ÚTestRemoveIntegerc                 óŠ   — |                       t          ¦  «        5  t          d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Ns    ©ÚassertRaisesr   r
   ©Úselfs    úL/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/ecdsa/test_der.pyÚtest_non_minimal_encodingz+TestRemoveInteger.test_non_minimal_encoding#   s‰   € Ø×Ò�}Ñ-Ô-ð 	0ð 	0ÝÐ.Ñ/Ô/Ð/ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0ð 	0ð 	0ó   ›8¸<¿<c                 óŠ   — |                       t          ¦  «        5  t          d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Ns   €r   r   s    r   Útest_negative_with_high_bit_setz1TestRemoveInteger.test_negative_with_high_bit_set'   sˆ   € Ø×Ò�}Ñ-Ô-ð 	,ð 	,Ý˜?Ñ+Ô+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð 	,ð 	,r   c                 ó‚   — t          d¦  «        \  }}|                      |d¦  «         |                      |d¦  «         d S ©Ns    €é€   ó    ©r
   ÚassertEqual©r   ÚvalÚrems      r   Útest_minimal_with_high_bit_setz0TestRemoveInteger.test_minimal_with_high_bit_set+   sF   € Ý!Ð"5Ñ6Ô6‰ˆˆSà×Ò˜˜dÑ#Ô#Ð#Ø×Ò˜˜cÑ"Ô"Ð"Ð"Ð"r%   c                 óŠ   — |                       t          ¦  «        5  t          d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Ns     ÿr   r   s    r   Ú%test_two_zero_bytes_with_high_bit_setz7TestRemoveInteger.test_two_zero_bytes_with_high_bit_set1   s‰   € Ø×Ò�}Ñ-Ô-ð 	4ð 	4ÝÐ2Ñ3Ô3Ð3ð	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4ð 	4ð 	4r   c                 óŠ   — |                       t          ¦  «        5  t          d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Ns    r   r   s    r   Útest_zero_length_integerz*TestRemoveInteger.test_zero_length_integer5   sˆ   € Ø×Ò�}Ñ-Ô-ð 	(ð 	(Ý˜;Ñ'Ô'Ð'ð	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(ð 	(ð 	(r   c                 óŠ   — |                       t          ¦  «        5  t          d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S ©Nr%   r   r   s    r   Útest_empty_stringz#TestRemoveInteger.test_empty_string9   sˆ   € Ø×Ò�}Ñ-Ô-ð 	 ð 	 Ý˜3ÑÔÐð	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 øøøð 	 ð 	 ð 	 ð 	 ð 	 ð 	 r   c                 ó‚   — t          d¦  «        \  }}|                      |d¦  «         |                      |d¦  «         d S )Ns    r   r%   r&   r(   s      r   Útest_encoding_of_zeroz'TestRemoveInteger.test_encoding_of_zero=   sE   € Ý! /Ñ2Ô2‰ˆˆSà×Ò˜˜aÑ Ô Ð Ø×Ò˜˜cÑ"Ô"Ð"Ð"Ð"r%   c                 ó‚   — t          d¦  «        \  }}|                      |d¦  «         |                      |d¦  «         d S )Ns   é   r%   r&   r(   s      r   Útest_encoding_of_127z&TestRemoveInteger.test_encoding_of_127C   sE   € Ý! /Ñ2Ô2‰ˆˆSà×Ò˜˜cÑ"Ô"Ð"Ø×Ò˜˜cÑ"Ô"Ð"Ð"Ð"r%   c                 ó‚   — t          d¦  «        \  }}|                      |d¦  «         |                      |d¦  «         d S r#   r&   r(   s      r   Útest_encoding_of_128z&TestRemoveInteger.test_encoding_of_128I   sF   € Ý!Ð"5Ñ6Ô6‰ˆˆSà×Ò˜˜cÑ"Ô"Ð"Ø×Ò˜˜cÑ"Ô"Ð"Ð"Ð"r%   c                 óØ   — |                       t          ¦  «        5 }t          d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt	          |j        ¦  «        ¦  «         d S )Ns    €zwanted type 'integer'©r   r   r
   ÚassertInÚstrÚ	exception©r   Úes     r   Útest_wrong_tagz TestRemoveInteger.test_wrong_tagO   sž   € Ø×Ò�}Ñ-Ô-ð 	0°ÝÐ.Ñ/Ô/Ð/ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0ð 	�ŠÐ-­s°1´;Ñ/?Ô/?Ñ@Ô@Ð@Ð@Ð@ó   ›7·;¾;c                 óØ   — |                       t          ¦  «        5 }t          d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt	          |j        ¦  «        ¦  «         d S )Ns    €úLength longerr;   r?   s     r   Útest_wrong_lengthz#TestRemoveInteger.test_wrong_lengthU   s�   € Ø×Ò�}Ñ-Ô-ð 	0°ÝÐ.Ñ/Ô/Ð/ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0ð 	�Š�o¥s¨1¬;Ñ'7Ô'7Ñ8Ô8Ð8Ð8Ð8rB   N)Ú__name__Ú
__module__Ú__qualname__r   r!   r+   r-   r/   r2   r4   r7   r9   rA   rE   © r%   r   r   r       s¼   € € € € € ð0ð 0ð 0ð,ð ,ð ,ð#ð #ð #ð4ð 4ð 4ð(ð (ð (ð ð  ð  ð#ð #ð #ð#ð #ð #ð#ð #ð #ðAð Að Að9ð 9ð 9ð 9ð 9r%   r   c                   óD   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
S )ÚTestReadLengthc                 óL   — |                       dt          d¦  «        ¦  «         d S )N)r   r   ó    ©r'   r   r   s    r   Útest_zero_lengthzTestReadLength.test_zero_length`   s&   € Ø×Ò˜¥¨WÑ!5Ô!5Ñ6Ô6Ð6Ð6Ð6r%   c                 óŠ   — |                       t          ¦  «        5  t          d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Ns   � ©r   r   r   r   s    r   Útest_two_byte_zero_lengthz(TestReadLength.test_two_byte_zero_lengthc   óˆ   € Ø×Ò�}Ñ-Ô-ð 	%ð 	%Ý˜Ñ$Ô$Ð$ð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%ð 	%ð 	%r   c                 óŠ   — |                       t          ¦  «        5  t          d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Ns   �rQ   r   s    r   Útest_two_byte_small_lengthz)TestReadLength.test_two_byte_small_lengthg   rS   r   c                 óŠ   — |                       t          ¦  «        5  t          d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nó   €rQ   r   s    r   Útest_long_form_with_zero_lengthz.TestReadLength.test_long_form_with_zero_lengthk   sˆ   € Ø×Ò�}Ñ-Ô-ð 	!ð 	!Ý˜Ñ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð 	!ð 	!r   c                 óL   — |                       dt          d¦  «        ¦  «         d S )N)r$   é   s   �€rN   r   s    r   Útest_smallest_two_byte_lengthz,TestReadLength.test_smallest_two_byte_lengtho   s&   € Ø×Ò˜¥;¨{Ñ#;Ô#;Ñ<Ô<Ð<Ð<Ð<r%   c                 óŠ   — |                       t          ¦  «        5  t          d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Ns   ‚ €rQ   r   s    r   Útest_zero_padded_lengthz&TestReadLength.test_zero_padded_lengthr   óˆ   € Ø×Ò�}Ñ-Ô-ð 	)ð 	)Ý˜Ñ(Ô(Ð(ð	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)ð 	)ð 	)r   c                 óL   — |                       dt          d¦  «        ¦  «         d S )N)é   é   s   ‚ rN   r   s    r   Útest_two_three_byte_lengthz)TestReadLength.test_two_three_byte_lengthv   s&   € Ø×Ò˜¥;¨Ñ#?Ô#?Ñ@Ô@Ð@Ð@Ð@r%   c                 óŠ   — |                       t          ¦  «        5  t          d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S r1   rQ   r   s    r   r2   z TestReadLength.test_empty_stringy   sˆ   € Ø×Ò�}Ñ-Ô-ð 	ð 	Ý˜ÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	r   c                 óŠ   — |                       t          ¦  «        5  t          d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Ns   ƒ rQ   r   s    r   Útest_length_overflowz#TestReadLength.test_length_overflow}   r^   r   N)rF   rG   rH   rO   rR   rU   rX   r[   r]   rb   r2   re   rI   r%   r   rK   rK   \   sž   € € € € € ð7ð 7ð 7ð%ð %ð %ð%ð %ð %ð!ð !ð !ð=ð =ð =ð)ð )ð )ðAð Að Aðð ð ð)ð )ð )ð )ð )r%   rK   c                   ó>   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	S )
ÚTestEncodeBitstringc                 óx  — t          j        d¦  «         t          j        t          ¦  «        5 }t          d¦  «        }ddd¦  «         n# 1 swxY w Y   |                      t          |¦  «        d¦  «         |                      d|d         j	        j
        d         ¦  «         |                      |d¦  «         dS )z(This is the old way to use the function.Úalwaysó    ÿNr   zunused= needs to be specifiedr   ó    ÿ)ÚwarningsÚsimplefilterÚpytestÚwarnsÚDeprecationWarningr   r'   Úlenr<   ÚmessageÚargs)r   ro   Úders      r   Útest_old_call_conventionz,TestEncodeBitstring.test_old_call_convention†   sê   € åÔ˜hÑ'Ô'Ð'ÝŒ\Õ,Ñ-Ô-ð 	0°Ý" ;Ñ/Ô/ˆCð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0ð 	×Ò�˜U™œ QÑ'Ô'Ð'Ø�ŠØ+¨U°1¬XÔ-=Ô-BÀ1Ô-Eñ	
ô 	
ð 	
ð 	×Ò˜Ð1Ñ2Ô2Ð2Ð2Ð2s   ®A
Á
AÁAc                 óÐ   — t          j        ¦   «         5  t          j        d¦  «         t          dd¦  «        }ddd¦  «         n# 1 swxY w Y   |                      |d¦  «         dS )z$This is how it should be called now.Úerroró   ÿr   Nrk   ©rl   Úcatch_warningsrm   r   r'   ©r   rt   s     r   Útest_new_call_conventionz,TestEncodeBitstring.test_new_call_convention“   s§   € õ Ô$Ñ&Ô&ð 	/ð 	/ÝÔ! 'Ñ*Ô*Ð*Ý" 7¨AÑ.Ô.ˆCð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/ð 	×Ò˜Ð1Ñ2Ô2Ð2Ð2Ð2ó   ”%AÁA	ÁA	c                 óÐ   — t          j        ¦   «         5  t          j        d¦  «         t          dd¦  «        }ddd¦  «         n# 1 swxY w Y   |                      |d¦  «         dS )zU
        Writing bit string with already included the number of unused bits.
        rw   rj   Nrk   ry   r{   s     r   Útest_implicit_unused_bitsz-TestEncodeBitstring.test_implicit_unused_bitsœ   s§   € õ
 Ô$Ñ&Ô&ð 	6ð 	6ÝÔ! 'Ñ*Ô*Ð*Ý" ;°Ñ5Ô5ˆCð	6ð 	6ð 	6ñ 	6ô 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6øøøð 	6ð 	6ð 	6ð 	6ð 	×Ò˜Ð1Ñ2Ô2Ð2Ð2Ð2r}   c                 óR   — t          dd¦  «        }|                      |d¦  «         d S )Ns   ÿðé   s   ÿð)r   r'   r{   s     r   Útest_explicit_unused_bitsz-TestEncodeBitstring.test_explicit_unused_bits§   s.   € Ý˜{¨AÑ.Ô.ˆà×Ò˜Ð5Ñ6Ô6Ð6Ð6Ð6r%   c                 óN   — |                       t          dd¦  «        d¦  «         d S )Nr%   r   s    )r'   r   r   s    r   r2   z%TestEncodeBitstring.test_empty_string¬   s)   € Ø×ÒÕ)¨#¨qÑ1Ô1°?ÑCÔCÐCÐCÐCr%   c                 óŒ   — |                       t          ¦  «        5  t          dd¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Ns   ÿ é   ©r   Ú
ValueErrorr   r   s    r   Útest_invalid_unused_countz-TestEncodeBitstring.test_invalid_unused_count¯   sŠ   € Ø×Ò�zÑ*Ô*ð 	-ð 	-Ý˜[¨!Ñ,Ô,Ð,ð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ó   ›9¹=Á =c                 óŒ   — |                       t          ¦  «        5  t          dd¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr%   r   r†   r   s    r   Ú%test_invalid_unused_with_empty_stringz9TestEncodeBitstring.test_invalid_unused_with_empty_string³   sŠ   € Ø×Ò�zÑ*Ô*ð 	%ð 	%Ý˜S !Ñ$Ô$Ð$ð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%ð 	%ð 	%r‰   c                 óŒ   — |                       t          ¦  «        5  t          dd¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrx   rZ   r†   r   s    r   Útest_non_zero_padding_bitsz.TestEncodeBitstring.test_non_zero_padding_bits·   sŠ   € Ø×Ò�zÑ*Ô*ð 	)ð 	)Ý˜W aÑ(Ô(Ð(ð	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)ð 	)ð 	)r‰   N)rF   rG   rH   ru   r|   r   r‚   r2   rˆ   r‹   r�   rI   r%   r   rg   rg   ‚   s�   € € € € € ð3ð 3ð 3ð3ð 3ð 3ð	3ð 	3ð 	3ð7ð 7ð 7ð
Dð Dð Dð-ð -ð -ð%ð %ð %ð)ð )ð )ð )ð )r%   rg   c                   óV   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ ZdS )ÚTestRemoveBitstringc                 óª  — t          j        d¦  «         t          j        t          ¦  «        5 }t          d¦  «        \  }}ddd¦  «         n# 1 swxY w Y   |                      t          |¦  «        d¦  «         |                      d|d         j	        j
        d         ¦  «         |                      |d¦  «         |                      |d¦  «         dS )	z)This is the old way to call the function.ri   rk   Nr   z$expect_unused= needs to be specifiedr   rj   r%   )rl   rm   rn   ro   rp   r   r'   rq   r<   rr   rs   )r   ro   ÚbitsÚrests       r   ru   z,TestRemoveBitstring.test_old_call_convention½   s  € åÔ˜hÑ'Ô'Ð'ÝŒ\Õ,Ñ-Ô-ð 	?°Ý)Ð*=Ñ>Ô>‰JˆD�$ð	?ð 	?ð 	?ñ 	?ô 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?øøøð 	?ð 	?ð 	?ð 	?ð 	×Ò�˜U™œ QÑ'Ô'Ð'Ø�ŠØ2°E¸!´HÔ4DÔ4IÈ!Ô4Lñ	
ô 	
ð 	
ð 	×Ò˜˜{Ñ+Ô+Ð+Ø×Ò˜˜sÑ#Ô#Ð#Ð#Ð#s   ®AÁAÁAc                 ó  — t          j        ¦   «         5  t          j        d¦  «         t          dd¦  «        \  }}d d d ¦  «         n# 1 swxY w Y   |                      |d¦  «         |                      |d¦  «         d S )Nrw   rk   r   rx   r%   ©rl   rz   rm   r   r'   ©r   r‘   r’   s      r   r|   z,TestRemoveBitstring.test_new_call_conventionË   sÐ   € åÔ$Ñ&Ô&ð 	Bð 	BÝÔ! 'Ñ*Ô*Ð*Ý)Ð*=¸qÑAÔA‰JˆD�$ð	Bð 	Bð 	Bñ 	Bô 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bøøøð 	Bð 	Bð 	Bð 	Bð 	×Ò˜˜wÑ'Ô'Ð'Ø×Ò˜˜sÑ#Ô#Ð#Ð#Ð#ó   ”(AÁAÁAc                 ó  — t          j        ¦   «         5  t          j        d¦  «         t          dd ¦  «        \  }}d d d ¦  «         n# 1 swxY w Y   |                      |d¦  «         |                      |d¦  «         d S )Nrw   rk   )rx   r   r%   r”   r•   s      r   Útest_implicit_unexpected_unusedz3TestRemoveBitstring.test_implicit_unexpected_unusedÔ   sÐ   € åÔ$Ñ&Ô&ð 	Eð 	EÝÔ! 'Ñ*Ô*Ð*Ý)Ð*=¸tÑDÔD‰JˆD�$ð	Eð 	Eð 	Eñ 	Eô 	Eð 	Eð 	Eð 	Eð 	Eð 	Eð 	Eøøøð 	Eð 	Eð 	Eð 	Eð 	×Ò˜˜|Ñ,Ô,Ð,Ø×Ò˜˜sÑ#Ô#Ð#Ð#Ð#r–   c                 ó„   — t          dd ¦  «        \  }}|                      |d¦  «         |                      |d¦  «         d S )Ns   ð)ó   ðr�   r%   )r   r'   )r   Úretr’   s      r   Útest_with_paddingz%TestRemoveBitstring.test_with_paddingÝ   sH   € Ý$Ð%8¸$Ñ?Ô?‰	ˆˆTà×Ò˜˜lÑ+Ô+Ð+Ø×Ò˜˜sÑ#Ô#Ð#Ð#Ð#r%   c                 óŒ   — |                       t          ¦  «        5  t          dd ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Ns    ÿ©r   r   r   r   s    r   Útest_not_a_bitstringz(TestRemoveBitstring.test_not_a_bitstringã   ó‹   € Ø×Ò�}Ñ-Ô-ð 	8ð 	8ÝÐ0°$Ñ7Ô7Ð7ð	8ð 	8ð 	8ñ 	8ô 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8øøøð 	8ð 	8ð 	8ð 	8ð 	8ð 	8r‰   c                 óŒ   — |                       t          ¦  «        5  t          dd ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Ns    rž   r   s    r   Útest_empty_encodingz'TestRemoveBitstring.test_empty_encodingç   sŠ   € Ø×Ò�}Ñ-Ô-ð 	0ð 	0Ý˜[¨$Ñ/Ô/Ð/ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0ð 	0ð 	0r‰   c                 óŒ   — |                       t          ¦  «        5  t          dd ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S r1   rž   r   s    r   r2   z%TestRemoveBitstring.test_empty_stringë   sŠ   € Ø×Ò�}Ñ-Ô-ð 	(ð 	(Ý˜S $Ñ'Ô'Ð'ð	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(ð 	(ð 	(r‰   c                 óŒ   — |                       t          ¦  «        5  t          dd ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nó   rž   r   s    r   Útest_no_lengthz"TestRemoveBitstring.test_no_lengthï   sŠ   € Ø×Ò�}Ñ-Ô-ð 	,ð 	,Ý˜W dÑ+Ô+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð 	,ð 	,r‰   c                 óŒ   — |                       t          ¦  «        5  t          dd¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrk   r   rž   r   s    r   Ú%test_unexpected_number_of_unused_bitsz9TestRemoveBitstring.test_unexpected_number_of_unused_bitsó   s‹   € Ø×Ò�}Ñ-Ô-ð 	5ð 	5ÝÐ0°!Ñ4Ô4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5ð 	5ð 	5r‰   c                 óŒ   — |                       t          ¦  «        5  t          dd ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Ns   ÿ rž   r   s    r   Ú$test_invalid_encoding_of_unused_bitsz8TestRemoveBitstring.test_invalid_encoding_of_unused_bits÷   s‹   € Ø×Ò�}Ñ-Ô-ð 	<ð 	<ÝÐ4°dÑ;Ô;Ð;ð	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<ð 	<ð 	<r‰   c                 óŒ   — |                       t          ¦  «        5  t          dd ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Ns   rž   r   s    r   Ú%test_invalid_encoding_of_empty_stringz9TestRemoveBitstring.test_invalid_encoding_of_empty_stringû   sŠ   € Ø×Ò�}Ñ-Ô-ð 	4ð 	4Ý˜_¨dÑ3Ô3Ð3ð	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4ð 	4ð 	4r‰   c                 óŒ   — |                       t          ¦  «        5  t          dd ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Ns   ÿrž   r   s    r   Útest_invalid_padding_bitsz-TestRemoveBitstring.test_invalid_padding_bitsÿ   r    r‰   N)rF   rG   rH   ru   r|   r˜   rœ   rŸ   r¢   r2   r¦   r¨   rª   r¬   r®   rI   r%   r   r�   r�   ¼   sÈ   € € € € € ð$ð $ð $ð$ð $ð $ð$ð $ð $ð$ð $ð $ð8ð 8ð 8ð0ð 0ð 0ð(ð (ð (ð,ð ,ð ,ð5ð 5ð 5ð<ð <ð <ð4ð 4ð 4ð8ð 8ð 8ð 8ð 8r%   r�   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚTestStrIdxAsIntc                 óN   — |                       dt          dd¦  «        ¦  «         d S )Nés   r=   r   ©r'   r   r   s    r   Útest_strzTestStrIdxAsInt.test_str  s(   € Ø×Ò˜�n¨U°AÑ6Ô6Ñ7Ô7Ð7Ð7Ð7r%   c                 óN   — |                       dt          dd¦  «        ¦  «         d S ©Nr²   s   strr   r³   r   s    r   Ú
test_byteszTestStrIdxAsInt.test_bytes  s(   € Ø×Ò˜�n¨V°QÑ7Ô7Ñ8Ô8Ð8Ð8Ð8r%   c                 óh   — |                       dt          t          d¦  «        d¦  «        ¦  «         d S r¶   )r'   r   Ú	bytearrayr   s    r   Útest_bytearrayzTestStrIdxAsInt.test_bytearray  s0   € Ø×Ò˜�n­Y°vÑ->Ô->ÀÑBÔBÑCÔCÐCÐCÐCr%   N)rF   rG   rH   r´   r·   rº   rI   r%   r   r°   r°     sF   € € € € € ð8ð 8ð 8ð9ð 9ð 9ðDð Dð Dð Dð Dr%   r°   c                   óJ   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ ZdS )ÚTestEncodeOidc                 ót   — t          dddddd¦  «        }|                      t          |¦  «        d¦  «         d S )Nr   rZ   éH  é='  s   06072a8648ce3d0201)r   r'   r   )r   Úoid_ecPublicKeys     r   Útest_pub_key_oidzTestEncodeOid.test_pub_key_oid  s>   € Ý$ Q¨¨3°°q¸!Ñ<Ô<ˆØ×Ò� Ñ1Ô1Ð3HÑIÔIÐIÐIÐIr%   c                 ó`   — |                       t          t          j        ¦  «        d¦  «         d S )Ns   06052b81040021)r'   r   r	   Úencoded_oidr   s    r   Útest_nist224p_oidzTestEncodeOid.test_nist224p_oid  s*   € Ø×Ò�¥Ô!5Ñ6Ô6Ð8IÑJÔJÐJÐJÐJr%   c                 ó`   — |                       t          t          j        ¦  «        d¦  «         d S )Ns   06082a8648ce3d030107)r'   r   r   rÃ   r   s    r   Útest_nist256p_oidzTestEncodeOid.test_nist256p_oid  s5   € Ø×ÒÝ•HÔ(Ñ)Ô)Ð+Bñ	
ô 	
ð 	
ð 	
ð 	
r%   c                 óT   — t          ddd¦  «        }|                      |d¦  «         d S )NrZ   éç  ra   ó   ˆ7©r   r'   ©r   Úoids     r   Útest_large_second_subidz%TestEncodeOid.test_large_second_subid  s0   € å˜˜C Ñ#Ô#ˆØ×Ò˜Ð5Ñ6Ô6Ð6Ð6Ð6r%   c                 óR   — t          dd¦  «        }|                      |d¦  «         d S )NrZ   rÈ   ó   ˆ7rÊ   rË   s     r   Útest_with_two_subidsz"TestEncodeOid.test_with_two_subids!  s.   € Ý˜˜CÑ Ô ˆØ×Ò˜Ð1Ñ2Ô2Ð2Ð2Ð2r%   c                 óR   — t          dd¦  «        }|                      |d¦  «         d S )Nr   ó    rÊ   rË   s     r   Útest_zero_zerozTestEncodeOid.test_zero_zero%  s-   € Ý˜˜AÑÔˆØ×Ò˜˜oÑ.Ô.Ð.Ð.Ð.r%   c                 óš   — |                       t          t          f¦  «        5  t          dd ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   )r   Ú	TypeErrorÚAssertionErrorr   r   s    r   Útest_with_wrong_typesz#TestEncodeOid.test_with_wrong_types)  s�   € Ø×Ò¥	­>Ð:Ñ;Ô;ð 	 ð 	 Ý�q˜$ÑÔÐð	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 øøøð 	 ð 	 ð 	 ð 	 ð 	 ð 	 s   ¢A Á AÁAc                 óŒ   — |                       t          ¦  «        5  t          dd¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   é(   ©r   rÖ   r   r   s    r   Ú"test_with_small_first_large_secondz0TestEncodeOid.test_with_small_first_large_second-  óŠ   € Ø×Ò�~Ñ.Ô.ð 	ð 	Ý�q˜"ÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	r‰   c                 óR   — t          dd¦  «        }|                      |d¦  «         d S )Nr   é'   s   OrÊ   rË   s     r   Útest_small_first_max_secondz)TestEncodeOid.test_small_first_max_second1  s-   € Ý˜˜BÑÔˆØ×Ò˜˜oÑ.Ô.Ð.Ð.Ð.r%   c                 óŒ   — |                       t          ¦  «        5  t          dd¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nra   rÞ   rÚ   r   s    r   Útest_with_invalid_firstz%TestEncodeOid.test_with_invalid_first5  rÜ   r‰   N)rF   rG   rH   rÁ   rÄ   rÆ   rÍ   rÐ   rÓ   r×   rÛ   rß   rá   rI   r%   r   r¼   r¼     s°   € € € € € ðJð Jð JðKð Kð Kð
ð 
ð 
ð
7ð 7ð 7ð
3ð 3ð 3ð/ð /ð /ð ð  ð  ðð ð ð/ð /ð /ðð ð ð ð r%   r¼   c                   óx   — e Zd Zed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestRemoveObjectc                 ó8   — t          dddddd¦  «        | _        d S )Nr   rZ   r¾   r¿   )r   rÀ   ©Úclss    r   Ú
setUpClasszTestRemoveObject.setUpClass;  s"   € å(¨¨A¨s°E¸1¸aÑ@Ô@ˆÔÐÐr%   c                 óŒ   — t          | j        ¦  «        \  }}|                      |d¦  «         |                      |d¦  «         d S )Nr%   ©r   rZ   r¾   r¿   rZ   r   ©r   rÀ   r'   ©r   rÌ   r’   s      r   rÁ   z!TestRemoveObject.test_pub_key_oid?  sI   € Ý! $Ô"6Ñ7Ô7‰	ˆˆTØ×Ò˜˜sÑ#Ô#Ð#Ø×Ò˜Ð6Ñ7Ô7Ð7Ð7Ð7r%   c                 ó’   — t          | j        dz   ¦  «        \  }}|                      |d¦  «         |                      |d¦  «         d S )Ns   moreré   rê   rë   s      r   Útest_with_extra_bytesz&TestRemoveObject.test_with_extra_bytesD  sN   € Ý! $Ô"6¸Ñ"@ÑAÔA‰	ˆˆTØ×Ò˜˜wÑ'Ô'Ð'Ø×Ò˜Ð6Ñ7Ô7Ð7Ð7Ð7r%   c                 ó‚   — t          d¦  «        \  }}|                      |d¦  «         |                      |d¦  «         d S )NrÉ   r%   )rZ   rÈ   ra   ©r   r'   rë   s      r   Útest_with_large_second_subidz-TestRemoveObject.test_with_large_second_subidI  sF   € å!Ð"9Ñ:Ô:‰	ˆˆTØ×Ò˜˜sÑ#Ô#Ð#Ø×Ò˜˜kÑ*Ô*Ð*Ð*Ð*r%   c                 óŠ   — |                       t          ¦  «        5  t          d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Ns   € ©r   r   r   r   s    r   Útest_with_padded_first_subidz-TestRemoveObject.test_with_padded_first_subidO  ó‰   € Ø×Ò�}Ñ-Ô-ð 	/ð 	/ÝÐ-Ñ.Ô.Ð.ð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/ð 	/ð 	/r   c                 óŠ   — |                       t          ¦  «        5  t          d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Ns   ˆ7€rò   r   s    r   Útest_with_padded_second_subidz.TestRemoveObject.test_with_padded_second_subidS  s‰   € Ø×Ò�}Ñ-Ô-ð 	7ð 	7ÝÐ5Ñ6Ô6Ð6ð	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7ð 	7ð 	7r   c                 óŠ   — |                       t          ¦  «        5  t          d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Ns   ˆ7ƒrò   r   s    r   Ú)test_with_missing_last_byte_of_multi_bytez:TestRemoveObject.test_with_missing_last_byte_of_multi_byteW  s‰   € Ø×Ò�}Ñ-Ô-ð 	3ð 	3ÝÐ1Ñ2Ô2Ð2ð	3ð 	3ð 	3ñ 	3ô 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3øøøð 	3ð 	3ð 	3ð 	3ð 	3ð 	3r   c                 ó‚   — t          d¦  «        \  }}|                      |d¦  «         |                      |d¦  «         d S )NrÏ   r%   )rZ   rÈ   rï   rë   s      r   rÐ   z%TestRemoveObject.test_with_two_subids[  sF   € Ý!Ð"5Ñ6Ô6‰	ˆˆTØ×Ò˜˜sÑ#Ô#Ð#Ø×Ò˜˜hÑ'Ô'Ð'Ð'Ð'r%   c                 ó‚   — t          d¦  «        \  }}|                      |d¦  «         |                      |d¦  «         d S )NrÒ   r%   )r   r   rï   rë   s      r   rÓ   zTestRemoveObject.test_zero_zero`  sE   € Ý! /Ñ2Ô2‰	ˆˆTØ×Ò˜˜sÑ#Ô#Ð#Ø×Ò˜˜fÑ%Ô%Ð%Ð%Ð%r%   c                 óŠ   — |                       t          ¦  «        5  t          d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S r1   rò   r   s    r   r2   z"TestRemoveObject.test_empty_stringe  sˆ   € Ø×Ò�}Ñ-Ô-ð 	ð 	Ý˜#ÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	r   c                 óŠ   — |                       t          ¦  «        5  t          d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nó   rò   r   s    r   Útest_missing_lengthz$TestRemoveObject.test_missing_lengthi  sˆ   € Ø×Ò�}Ñ-Ô-ð 	#ð 	#Ý˜'Ñ"Ô"Ð"ð	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#ð 	#ð 	#r   c                 óŠ   — |                       t          ¦  «        5  t          d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Ns    rò   r   s    r   Útest_empty_oidzTestRemoveObject.test_empty_oidm  óˆ   € Ø×Ò�}Ñ-Ô-ð 	'ð 	'Ý˜+Ñ&Ô&Ð&ð	'ð 	'ð 	'ñ 	'ô 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'øøøð 	'ð 	'ð 	'ð 	'ð 	'ð 	'r   c                 óŠ   — |                       t          ¦  «        5  t          d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Ns   rò   r   s    r   Útest_empty_oid_overflowz(TestRemoveObject.test_empty_oid_overflowq  r  r   c                 óŠ   — |                       t          ¦  «        5  t          d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Ns   ˆ7rò   r   s    r   Útest_with_wrong_typez%TestRemoveObject.test_with_wrong_typeu  rô   r   c                 óŠ   — |                       t          ¦  «        5  t          d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Ns   ˆ7rò   r   s    r   Útest_with_too_long_lengthz*TestRemoveObject.test_with_too_long_lengthy  rô   r   N)rF   rG   rH   Úclassmethodrç   rÁ   rí   rð   ró   rö   rø   rÐ   rÓ   r2   rþ   r   r  r  r  rI   r%   r   rã   rã   :  s  € € € € € ØðAð Añ „[ðAð8ð 8ð 8ð
8ð 8ð 8ð
+ð +ð +ð/ð /ð /ð7ð 7ð 7ð3ð 3ð 3ð(ð (ð (ð
&ð &ð &ð
ð ð ð#ð #ð #ð'ð 'ð 'ð'ð 'ð 'ð/ð /ð /ð/ð /ð /ð /ð /r%   rã   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚTestRemoveConstructedc                 ó´   — d}t          |¦  «        \  }}}|                      |d¦  «         |                      |d¦  «         |                      |d¦  «         d S )Ns   ¡ÿªr   ó   ÿªr%   )r   r'   ©r   ÚdataÚtagÚbodyr’   s        r   Útest_simplez!TestRemoveConstructed.test_simple  sb   € Ø"ˆå,¨TÑ2Ô2‰ˆˆT�4à×Ò˜˜dÑ#Ô#Ð#Ø×Ò˜˜{Ñ+Ô+Ð+Ø×Ò˜˜sÑ#Ô#Ð#Ð#Ð#r%   c                 óÜ   — d}|                       t          ¦  «        5 }t          |¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt	          |j        ¦  «        ¦  «         d S )Ns   ÿªzconstructed tag)r   r   r   r<   r=   r>   ©r   r  r@   s      r   Útest_with_malformed_tagz-TestRemoveConstructed.test_with_malformed_tagˆ  s¢   € Ø"ˆà×Ò�}Ñ-Ô-ð 	%°Ý˜tÑ$Ô$Ð$ð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%ð 	�ŠÐ'­¨Q¬[Ñ)9Ô)9Ñ:Ô:Ð:Ð:Ð:ó   �9¹=Á =N©rF   rG   rH   r  r  rI   r%   r   r
  r
  ~  s2   € € € € € ð$ð $ð $ð;ð ;ð ;ð ;ð ;r%   r
  c                   óT   — e Zd Zed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
S )ÚTestRemoveImplicitc                 óL   — d| _         d| _        d| _        d| _        d| _        d S )Né   ó   
ó   F
ó   †
ó   Æ
)Úexp_tagÚexp_dataÚdata_applicationÚdata_context_specificÚdata_privaterå   s    r   rç   zTestRemoveImplicit.setUpClass’  s.   € àˆŒØ"ˆŒà2ˆÔà$7ˆÔ!à.ˆÔÐÐr%   c                 óÎ   — t          | j        ¦  «        \  }}}|                      || j        ¦  «         |                      || j        ¦  «         |                      |d¦  «         d S r1   ©r   r"  r'   r  r   ©r   r  r  r’   s       r   r  zTestRemoveImplicit.test_simple�  sd   € Ý)¨$Ô*DÑEÔE‰ˆˆT�4à×Ò˜˜dœlÑ+Ô+Ð+Ø×Ò˜˜tœ}Ñ-Ô-Ð-Ø×Ò˜˜sÑ#Ô#Ð#Ð#Ð#r%   c                 óä   — |                       t          ¦  «        5 }t          | j        d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )NÚfoobarzinvalid `exp_class` value)r   r‡   r   r"  r<   r=   r>   r?   s     r   Útest_wrong_expected_classz,TestRemoveImplicit.test_wrong_expected_class¤  s²   € Ø×Ò�zÑ*Ô*ð 	B¨aÝ˜DÔ6¸ÑAÔAÐAð	Bð 	Bð 	Bñ 	Bô 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bøøøð 	Bð 	Bð 	Bð 	Bð 	�ŠÐ1µ3°q´{Ñ3CÔ3CÑDÔDÐDÐDÐDó   ›=½AÁAc                 óâ   — |                       t          ¦  «        5 }t          | j        ¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )Nz+wanted class context-specific, got 0x46 tag)r   r   r   r!  r<   r=   r>   r?   s     r   Útest_with_wrong_classz(TestRemoveImplicit.test_with_wrong_classª  sª   € Ø×Ò�}Ñ-Ô-ð 	3°Ý˜DÔ1Ñ2Ô2Ð2ð	3ð 	3ð 	3ñ 	3ô 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3øøøð 	3ð 	3ð 	3ð 	3ð 	�ŠØ9½3¸q¼{Ñ;KÔ;Kñ	
ô 	
ð 	
ð 	
ð 	
s   ›<¼A ÁA c                 óÐ   — t          | j        d¦  «        \  }}}|                      || j        ¦  «         |                      || j        ¦  «         |                      |d¦  «         d S )NÚapplicationr%   )r   r!  r'   r  r   r&  s       r   Útest_with_application_classz.TestRemoveImplicit.test_with_application_class²  sf   € Ý)¨$Ô*?ÀÑOÔO‰ˆˆT�4à×Ò˜˜dœlÑ+Ô+Ð+Ø×Ò˜˜tœ}Ñ-Ô-Ð-Ø×Ò˜˜sÑ#Ô#Ð#Ð#Ð#r%   c                 óÐ   — t          | j        d¦  «        \  }}}|                      || j        ¦  «         |                      || j        ¦  «         |                      |d¦  «         d S )NÚprivater%   )r   r#  r'   r  r   r&  s       r   Útest_with_private_classz*TestRemoveImplicit.test_with_private_class¹  sf   € Ý)¨$Ô*;¸YÑGÔG‰ˆˆT�4à×Ò˜˜dœlÑ+Ô+Ð+Ø×Ò˜˜tœ}Ñ-Ô-Ð-Ø×Ò˜˜sÑ#Ô#Ð#Ð#Ð#r%   c                 óØ   — d}t          | j        |z   ¦  «        \  }}}|                      || j        ¦  «         |                      || j        ¦  «         |                      ||¦  «         d S )Ns    r%  )r   Ú
extra_datar  r  r’   s        r   Útest_with_data_followingz+TestRemoveImplicit.test_with_data_followingÀ  su   € Ø ˆ
å)ØÔ&¨Ñ3ñ
ô 
‰ˆˆT�4ð 	×Ò˜˜dœlÑ+Ô+Ð+Ø×Ò˜˜tœ}Ñ-Ô-Ð-Ø×Ò˜˜zÑ*Ô*Ð*Ð*Ð*r%   c                 óÜ   — d}|                       t          ¦  «        5 }t          |¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt	          |j        ¦  «        ¦  «         d S )Ns   ¦
z#wanted type primitive, got 0xa6 tag)r   r   r   r<   r=   r>   r  s      r   Útest_with_constructedz(TestRemoveImplicit.test_with_constructedË  s¢   € Ø"ˆà×Ò�}Ñ-Ô-ð 	"°Ý˜DÑ!Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð 	�ŠÐ;½SÀÄÑ=MÔ=MÑNÔNÐNÐNÐNr  c                 óÔ   — d}t          t          d|d¦  «        d¦  «        \  }}}|                      |d¦  «         |                      ||¦  «         |                      |d¦  «         d S )Ns   some longish stringr  r.  r%   )r   r   r'   r  s        r   Útest_encode_decodez%TestRemoveImplicit.test_encode_decodeÓ  sw   € Ø%ˆå)Ý˜A˜t ]Ñ3Ô3°]ñ
ô 
‰ˆˆT�4ð 	×Ò˜˜aÑ Ô Ð Ø×Ò˜˜tÑ$Ô$Ð$Ø×Ò˜˜sÑ#Ô#Ð#Ð#Ð#r%   N)rF   rG   rH   r  rç   r  r)  r,  r/  r2  r5  r7  r9  rI   r%   r   r  r  ‘  s«   € € € € € Øð/ð /ñ „[ð/ð$ð $ð $ðEð Eð Eð
ð 
ð 
ð$ð $ð $ð$ð $ð $ð	+ð 	+ð 	+ðOð Oð Oð	$ð 	$ð 	$ð 	$ð 	$r%   r  c                   óH   — e Zd Zed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
dS )	ÚTestEncodeImplicitc                 ó>   — d| _         d| _        d| _        d| _        d S )Nr  r  r  r  )r  r!  r"  r#  rå   s    r   rç   zTestEncodeImplicit.setUpClassà  s'   € àˆŒà2ˆÔà$7ˆÔ!à.ˆÔÐÐr%   c                 óf   — t          d| j        ¦  «        }|                      || j        ¦  «         d S )Nr  ©r   r  r'   r"  ©r   r›   s     r   Útest_encode_with_default_classz1TestEncodeImplicit.test_encode_with_default_classê  s2   € Ý˜a ¤Ñ+Ô+ˆà×Ò˜˜dÔ8Ñ9Ô9Ð9Ð9Ð9r%   c                 óh   — t          d| j        d¦  «        }|                      || j        ¦  «         d S )Nr  r.  )r   r  r'   r!  r?  s     r   Ú"test_encode_with_application_classz5TestEncodeImplicit.test_encode_with_application_classï  s4   € Ý˜a ¤¨MÑ:Ô:ˆà×Ò˜˜dÔ3Ñ4Ô4Ð4Ð4Ð4r%   c                 óh   — t          d| j        d¦  «        }|                      || j        ¦  «         d S )Nr  zcontext-specificr>  r?  s     r   Ú'test_encode_with_context_specific_classz:TestEncodeImplicit.test_encode_with_context_specific_classô  s5   € Ý˜a ¤Ð,>Ñ?Ô?ˆà×Ò˜˜dÔ8Ñ9Ô9Ð9Ð9Ð9r%   c                 óh   — t          d| j        d¦  «        }|                      || j        ¦  «         d S )Nr  r1  )r   r  r'   r#  r?  s     r   Útest_encode_with_private_classz1TestEncodeImplicit.test_encode_with_private_classù  s4   € Ý˜a ¤¨IÑ6Ô6ˆà×Ò˜˜dÔ/Ñ0Ô0Ð0Ð0Ð0r%   c                 óæ   — |                       t          ¦  «        5 }t          d| j        d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )Nr  r(  zinvalid tag class©r   r‡   r   r  r<   r=   r>   r?   s     r   Útest_encode_with_invalid_classz1TestEncodeImplicit.test_encode_with_invalid_classþ  s£   € Ø×Ò�zÑ*Ô*ð 	4¨aÝ˜A˜tœy¨(Ñ3Ô3Ð3ð	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4ð 	�ŠÐ)­3¨q¬{Ñ+;Ô+;Ñ<Ô<Ð<Ð<Ð<s   ›>¾AÁAc                 óä   — |                       t          ¦  «        5 }t          d| j        ¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         d S )Né    zLong tags not supportedrH  r?   s     r   Útest_encode_with_too_large_tagz1TestEncodeImplicit.test_encode_with_too_large_tag  s¡   € Ø×Ò�zÑ*Ô*ð 	+¨aÝ˜B ¤	Ñ*Ô*Ð*ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð 	�ŠÐ/µ°Q´[Ñ1AÔ1AÑBÔBÐBÐBÐBr*  N)rF   rG   rH   r  rç   r@  rB  rD  rF  rI  rL  rI   r%   r   r;  r;  ß  sŒ   € € € € € Øð/ð /ñ „[ð/ð:ð :ð :ð
5ð 5ð 5ð
:ð :ð :ð
1ð 1ð 1ð
=ð =ð =ðCð Cð Cð Cð Cr%   r;  c                   ó   — e Zd Zd„ Zd„ ZdS )ÚTestRemoveOctetStringc                 ó†   — d}t          |¦  «        \  }}|                      |d¦  «         |                      |d¦  «         d S )Ns   ª»Ìs   ª»Ìr%   )r   r'   ©r   r  r  r’   s       r   r  z!TestRemoveOctetString.test_simple  sJ   € Ø&ˆÝ(¨Ñ.Ô.‰
ˆˆdØ×Ò˜˜Ñ/Ô/Ð/Ø×Ò˜˜sÑ#Ô#Ð#Ð#Ð#r%   c                 óÜ   — d}|                       t          ¦  «        5 }t          |¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt	          |j        ¦  «        ¦  «         d S )Ns   ª»ÌÚoctetstring)r   r   r   r<   r=   r>   r  s      r   r  z-TestRemoveOctetString.test_with_malformed_tag  s¡   € Ø&ˆØ×Ò�}Ñ-Ô-ð 	&°Ý Ñ%Ô%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&ð 	�Š�m¥S¨¬Ñ%5Ô%5Ñ6Ô6Ð6Ð6Ð6r  Nr  rI   r%   r   rN  rN    s2   € € € € € ð$ð $ð $ð7ð 7ð 7ð 7ð 7r%   rN  c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestRemoveSequencec                 ó†   — d}t          |¦  «        \  }}|                      |d¦  «         |                      |d¦  «         d S )Ns   0ÿªr  r%   )r   r'   rP  s       r   r  zTestRemoveSequence.test_simple  sJ   € Ø"ˆÝ$ TÑ*Ô*‰
ˆˆdØ×Ò˜˜{Ñ+Ô+Ð+Ø×Ò˜˜sÑ#Ô#Ð#Ð#Ð#r%   c                 óØ   — |                       t          ¦  «        5 }t          d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt	          |j        ¦  «        ¦  «         d S )Nr%   zEmpty string©r   r   r   r<   r=   r>   r?   s     r   Útest_with_empty_stringz)TestRemoveSequence.test_with_empty_string!  sœ   € Ø×Ò�}Ñ-Ô-ð 	!°Ý˜CÑ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð 	�Š�n¥c¨!¬+Ñ&6Ô&6Ñ7Ô7Ð7Ð7Ð7rB   c                 óÜ   — d}|                       t          ¦  «        5 }t          |¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt	          |j        ¦  «        ¦  «         d S )Ns    ÿªzwanted type 'sequence'rW  r  s      r   Útest_with_wrong_tagz&TestRemoveSequence.test_with_wrong_tag'  s¢   € Ø"ˆà×Ò�}Ñ-Ô-ð 	"°Ý˜DÑ!Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð 	�ŠÐ.µ°A´KÑ0@Ô0@ÑAÔAÐAÐAÐAr  c                 óÜ   — d}|                       t          ¦  «        5 }t          |¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt	          |j        ¦  «        ¦  «         d S )Ns   0ÿªrD   rW  r  s      r   Útest_with_wrong_lengthz)TestRemoveSequence.test_with_wrong_length/  s¡   € Ø"ˆà×Ò�}Ñ-Ô-ð 	"°Ý˜DÑ!Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð 	�Š�o¥s¨1¬;Ñ'7Ô'7Ñ8Ô8Ð8Ð8Ð8r  N)rF   rG   rH   r  rX  rZ  r\  rI   r%   r   rT  rT    sS   € € € € € ð$ð $ð $ð8ð 8ð 8ðBð Bð Bð9ð 9ð 9ð 9ð 9r%   rT  rZ   i   é2   c                 óX  —  | t          j        dd¬¦  «        ¦  «        }|dk     r  | t          j        dd¬¦  «        ¦  «        }n | t          j        d|¬¦  «        ¦  «        } | t          j        t          j        d|¬¦  «        |¬¦  «        ¦  «        }||ft          |¦  «        z   S )zÈ
    Hypothesis strategy that returns valid OBJECT IDENTIFIERs as tuples

    :param max_value: maximum value of any single sub-identifier
    :param max_size: maximum length of the generated OID
    r   rZ   )Ú	min_valueÚ	max_valuerÞ   )Úmax_size)ÚstÚintegersÚlistsÚtuple)Údrawr`  ra  ÚfirstÚsecondr’   s         r   Úst_oidri  8  s¹   € ð ˆD•” q°AÐ6Ñ6Ô6Ñ7Ô7€EØˆq‚y€yØ�•b”k¨A¸Ð<Ñ<Ô<Ñ=Ô=ˆˆà�•b”k¨A¸ÐCÑCÔCÑDÔDˆØˆ4Ý
ŒÝŒK !¨yÐ9Ñ9Ô9ÀHð	
ñ 	
ô 	
ñô €Dð
 �6ˆ?�U 4™[œ[Ñ(Ð(r%   z--fastÚmax_examplesc                 ó\   — t          | Ž }t          |¦  «        \  }}|dk    sJ ‚|| k    sJ ‚d S r1   )r   r   )ÚidsrÃ   Údecoded_oidr’   s       r   Ú	test_oidsrn  T  sD   € õ ˜cÐ"€KÝ% kÑ2Ô2Ñ€K�Ø�3Š;ˆ;ˆ;ˆ;Ø˜#ÒÐÐÐÐÐr%   c                  ó�   — d} t          j        t          d¬¦  «        5  t          | ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Ns   ‚ ABCú&Length longer than the provided buffer©Úmatch)rn   Úraisesr   r   ©Úbads    r   Ú1test_remove_octet_string_rejects_truncated_lengthrv  \  s�   € à
&€CÝ	Œ•}Ð,TÐ	UÑ	UÔ	Uð !ð !Ý˜CÑ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð !ð !ó   ž;»?Á?c                  ó�   — d} t          j        t          d¬¦  «        5  t          | ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Ns    ‚ ABCrp  rq  )rn   rs  r   r   rt  s    r   Ú0test_remove_constructed_rejects_truncated_lengthry  b  s‘   € ð '€CÝ	Œ•}Ð,TÐ	UÑ	UÔ	Uð  ð  Ý˜3ÑÔÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð  ð  rw  c                  ó�   — d} t          j        t          d¬¦  «        5  t          | ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Ns   €‚ ABCrp  rq  )rn   rs  r   r   rt  s    r   Ú-test_remove_implicit_rejects_truncated_lengthr{  i  s‘   € ð '€CÝ	Œ•}Ð,TÐ	UÑ	UÔ	Uð ð Ý˜ÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð rw  rI   )5rl   Úbinasciir   Ú	unittest2ÚunittestÚImportErrorÚsysÚhypothesis.strategiesÚ
strategiesrb  Ú
hypothesisr   r   rn   Ú_compatr   Úcurvesr   r	   rt   r
   r   r   r   r   r   r   r   r   r   r   r   ÚTestCaser   rK   rg   r�   r°   r¼   rã   r
  r  r;  rN  rT  Ú	compositeri  ÚHYP_SETTINGSÚargvrn  rv  ry  r{  rI   r%   r   ú<module>rŠ     sb  ðð €€€Ø Ð Ð Ð Ð Ð ðØ Ð Ð Ð Ð øØð ð ð Ø€O€O€O€O€Oðøøøà 
€
€
€
Ø "Ð "Ð "Ð "Ð "Ð "Ø &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ø €€€Ø #Ð #Ð #Ð #Ð #Ð #Ø &Ð &Ð &Ð &Ð &Ð &Ð &Ð &ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 99ð 99ð 99ð 99ð 99˜Ô)ñ 99ô 99ð 99ðx#)ð #)ð #)ð #)ð #)�XÔ&ñ #)ô #)ð #)ðL7)ð 7)ð 7)ð 7)ð 7)˜(Ô+ñ 7)ô 7)ð 7)ðtE8ð E8ð E8ð E8ð E8˜(Ô+ñ E8ô E8ð E8ðPDð Dð Dð Dð D�hÔ'ñ Dô Dð Dð(ð (ð (ð (ð (�HÔ%ñ (ô (ð (ðVA/ð A/ð A/ð A/ð A/�xÔ(ñ A/ô A/ð A/ðH;ð ;ð ;ð ;ð ;˜HÔ-ñ ;ô ;ð ;ð&K$ð K$ð K$ð K$ð K$˜Ô*ñ K$ô K$ð K$ð\)Cð )Cð )Cð )Cð )C˜Ô*ñ )Cô )Cð )CðX7ð 7ð 7ð 7ð 7˜HÔ-ñ 7ô 7ð 7ð9ð 9ð 9ð 9ð 9˜Ô*ñ 9ô 9ð 9ð< „Ø˜c™6¨Bð )ð )ð )ñ „ð)ð( €ð ˆsŒxÐÐØ#$€L�Ñ ð 
€ÐÐˆLÐÐØ€€v€v�x„x�„ðð ñ „ñ Ôðð!ð !ð !ð ð  ð  ðð ð ð ð s   Œ ‘	œ