§
    HŠtj&´  ã                   ó*  — d Z ddlmZ ddlmZ ddl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 ddlmZmZmZ  G d„ d	e¦  «        Z G d
„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        ZddlmZmZ  G d„ de¦  «        Z G d„ de¦  «        ZdS )ztests for passlib.utilé    )Úwith_statement)ÚpartialN)Úis_ascii_safeÚto_bytes)ÚirangeÚPY2ÚPY3ÚuÚunicodeÚ
join_bytesÚPYPY)ÚTestCaseÚhbÚrun_with_fixed_seedsc                   óŠ   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Z e	d¬¦  «        d	„ ¦   «         Z
d
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚMiscTestz#tests various parts of utils modulec                 ó  — ddl m} |                      t          |¦  «        d¦  «         t	          |¦  «         |                      dt	          |¦  «        v ¦  «         |                      dt	          |¦  «        v ¦  «         dS )ztest compat's lazymoduler   )Úcompatz,^<module 'passlib.utils.compat' from '.*?'>$Ú	UnicodeIOr   N)Úpasslib.utilsr   ÚassertRegexÚreprÚdirÚ
assertTrue)Úselfr   s     úV/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/passlib/tests/test_utils.pyÚtest_compatzMiscTest.test_compat   s‡   € à(Ð(Ð(Ð(Ð(Ð(à×Ò�˜f™œØHñ	Jô 	Jð 	Jõ 	ˆF‰ŒˆØ�Š˜¥s¨6¡{¤{Ð2Ñ3Ô3Ð3Ø�Š˜¥C¨¡K¤KÐ/Ñ0Ô0Ð0Ð0Ð0ó    c                 óÎ   ‡— ddl mŠ  G ˆfd„dt          ¦  «        }|                      |j        d¦  «         |j        d         }|                      |j        |j        ¦  «         d S )Nr   ©Úclasspropertyc                   ó*   •— e Zd ZdZ” d„ ¦   «         ZdS )ú)MiscTest.test_classproperty.<locals>.testé   c                 ó   — | j         S ©N)Úxvar)Úclss    r   Úxpropz/MiscTest.test_classproperty.<locals>.test.xprop)   s	   € à”x�r   N)Ú__name__Ú
__module__Ú__qualname__r'   r)   r    s   €r   Útestr#   '   s3   ø€ € € € € ØˆDØð ð  ñ Œ]ð ð  ð  r   r-   r$   r)   )	Úpasslib.utils.decorr!   ÚobjectÚassertEqualr)   Ú__dict__ÚassertIsÚim_funcÚ__func__)r   r-   Úpropr!   s      @r   Útest_classpropertyzMiscTest.test_classproperty$   s�   ø€ Ø5Ð5Ð5Ð5Ð5Ð5ð	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 •6ñ 	 ô 	 ð 	 ð 	×Ò˜œ QÑ'Ô'Ð'ØŒ}˜WÔ%ˆØ�Š�d”l D¤MÑ2Ô2Ð2Ð2Ð2r   c                 ó:  — ddl m}  |dd¬¦  «        d„ ¦   «         }|                      d|j        v ¦  «         |                      t          t          d¬	¦  «        ¦  «        5  |                       |d
d¦  «        d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   )Údeprecated_functionz1.6z1.8)Ú
deprecatedÚremovedc                  ó   — | S )ztest docstring© )Úargss    r   Ú	test_funcz4MiscTest.test_deprecated_function.<locals>.test_func5   s	   € ð ˆKr   z.. deprecated::zvthe function passlib.tests.test_utils.test_func() is deprecated as of Passlib 1.6, and will be removed in Passlib 1.8.)ÚcategoryÚmessager$   é   )r$   rA   )r.   r8   r   Ú__doc__ÚassertWarningListÚdictÚDeprecationWarningr0   )r   r8   r>   s      r   Útest_deprecated_functionz!MiscTest.test_deprecated_function1   s  € Ø;Ð;Ð;Ð;Ð;Ð;ð 
Ð	¨°uÐ	=Ñ	=Ô	=ð	ð 	ñ 
>Ô	=ð	ð 	�ŠÐ)¨YÔ->Ð>Ñ?Ô?Ð?à×#Ò#¥DÕ2Dð2ð%ñ %ô %ñ ô ð 	4ð 	4ð
 ×Ò˜Y˜Y q¨™^œ^¨UÑ3Ô3Ð3ð	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4ð 	4ð 	4s   Á"!BÂBÂBc                 óT  ‡— ddl mŠ  G ˆfd„dt          ¦  «        } |¦   «         }|                      |j        d¦  «         |                      |j        d¦  «         |                      |j        d¦  «         |j        }t          s"|                      |j        |j	        ¦  «         d S d S )Nr   ©Úmemoized_propertyc                   ó*   •— e Zd ZdZ” d„ ¦   «         ZdS )ú.MiscTest.test_memoized_property.<locals>.dummyr   c                 ó(   — | j         }|dz   | _         |S )Nr$   )Úcounter)r   Úvalues     r   rN   z4MiscTest.test_memoized_property.<locals>.dummy.valueI   s   € àœ�Ø$ Q™w�”Ø�r   N)r*   r+   r,   rM   rN   rH   s   €r   ÚdummyrK   F   s4   ø€ € € € € ØˆGàðð ñ Ôðð ð r   rO   r$   )
r.   rI   r/   r0   rN   rM   r	   r2   r3   r4   )r   rO   Údr5   rI   s       @r   Útest_memoized_propertyzMiscTest.test_memoized_propertyC   sÕ   ø€ Ø9Ð9Ð9Ð9Ð9Ð9ð	ð 	ð 	ð 	ð 	ð 	ð 	•Fñ 	ô 	ð 	ð ˆE‰GŒGˆØ×Ò˜œ !Ñ$Ô$Ð$Ø×Ò˜œ !Ñ$Ô$Ð$Ø×Ò˜œ AÑ&Ô&Ð&àŒ{ˆÝð 	7Ø�MŠM˜$œ,¨¬Ñ6Ô6Ð6Ð6Ð6ð	7ð 	7r   c                 óÈ  — ddl m} t          ||                      ¦   «         ¦  «        }|                      t           |d¦  «        ¦  «        d¦  «          |d¦  «        } |d¦  «        }|                      |t          ¦  «         |                      t          |¦  «        d¦  «         |                      t          |¦  «        d¦  «         |                      ||¦  «         dS )zgetrandbytes()r   )Úgetrandbytesé
   N)	r   rS   r   Ú	getRandomr0   ÚlenÚassertIsInstanceÚbytesÚassertNotEqual)r   rS   ÚwrapperÚaÚbs        r   Útest_getrandbyteszMiscTest.test_getrandbytesX   sÕ   € à.Ð.Ð.Ð.Ð.Ð.Ý˜,¨¯ªÑ(8Ô(8Ñ9Ô9ˆØ×Ò�˜W˜W Q™ZœZ™œ¨!Ñ,Ô,Ð,ØˆG�B‰KŒKˆØˆG�B‰KŒKˆØ×Ò˜a¥Ñ'Ô'Ð'Ø×Ò�˜Q™œ Ñ$Ô$Ð$Ø×Ò�˜Q™œ Ñ$Ô$Ð$Ø×Ò˜A˜qÑ!Ô!Ð!Ð!Ð!r   i   )Úcountc           	      ó4  — ddl m} t          ||                      |¬¦  «        ¦  «        }|                       |dd¦  «        d¦  «         |                      t          |dd¦  «         |                      t          |dd¦  «         |                       |dd¦  «        d	¦  «          |t          d¦  «        d
¦  «        } |t          d¦  «        d
¦  «        }|                      |t          ¦  «         |  
                    ||¦  «         |                      t          t          |¦  «        ¦  «        t          d¦  «        t          d¦  «        t          d¦  «        g¦  «          |dd
¦  «        } |dd
¦  «        }|                      |t          ¦  «         |  
                    ||¦  «         |                      t          t          |                     d¦  «        ¦  «        ¦  «        t          d¦  «        t          d¦  «        t          d¦  «        g¦  «         dS )zgetrandstr()r   ©Ú
getrandstr)ÚseedÚabcÚ éÿÿÿÿr[   é   Úaaaaaé    r\   Úcó   abcÚasciiN)r   ra   r   rU   r0   ÚassertRaisesÚ
ValueErrorr
   rW   r   rY   ÚsortedÚsetrX   Údecode)r   rb   ra   rZ   ÚxÚys         r   Útest_getrandstrzMiscTest.test_getrandstrd   sé  € ð 	-Ð,Ð,Ð,Ð,Ð,å˜* d§n¢n¸$ nÑ&?Ô&?Ñ@Ô@ˆð 	×Ò˜˜  qÑ)Ô)¨2Ñ.Ô.Ð.ð 	×Ò�* g¨u°bÑ9Ô9Ð9ð 	×Ò�* g¨r°1Ñ5Ô5Ð5ð 	×Ò˜˜  a™œ¨'Ñ2Ô2Ð2ð ˆG•A�e‘H”H˜bÑ!Ô!ˆØˆG•A�e‘H”H˜bÑ!Ô!ˆØ×Ò˜a¥Ñ)Ô)Ð)Ø×Ò˜A˜aÑ Ô Ð Ø×Ò�¥ A¡¤™œ­!¨C©&¬&µ°3±´½¸#¹¼Ð)?Ñ@Ô@Ð@ð ˆG�F˜BÑÔˆØˆG�F˜BÑÔˆØ×Ò˜a¥Ñ'Ô'Ð'Ø×Ò˜A˜aÑ Ô Ð à×Ò�¥ A§H¢H¨WÑ$5Ô$5Ñ 6Ô 6Ñ7Ô7½!¸C¹&¼&ÅÀ3ÁÄÍÈ#ÉÌÐ9OÑPÔPÐPÐPÐPr   c                 ó”   — ddl m} t          j        dd¦  «         |                      t           |d¦  «        ¦  «        d¦  «         dS )zgenerate_password()r   )Úgenerate_passwordÚignorez1The function.*generate_password\(\) is deprecatedé   N)r   ru   ÚwarningsÚfilterwarningsr0   rV   )r   ru   s     r   Útest_generate_passwordzMiscTest.test_generate_password�   sX   € à3Ð3Ð3Ð3Ð3Ð3ÝÔ Ð*]Ñ^Ô^Ð^Ø×Ò�Ð.Ð.¨rÑ2Ô2Ñ3Ô3°RÑ8Ô8Ð8Ð8Ð8r   c                 ó°   — ddl m} ddlm}  |dg¦  «        }|                       ||¦  «        ¦  «         |                       ||¦  «         ¦  «         dS )ztest is_crypt_context()r   )Úis_crypt_context)ÚCryptContextÚ	des_cryptN)r   r|   Úpasslib.contextr}   r   ÚassertFalse)r   r|   r}   Úccs       r   Útest_is_crypt_contextzMiscTest.test_is_crypt_context“   s~   € à2Ð2Ð2Ð2Ð2Ð2Ø0Ð0Ð0Ð0Ð0Ð0Øˆ\˜;˜-Ñ(Ô(ˆØ�ŠÐ(Ð(¨Ñ,Ô,Ñ-Ô-Ð-Ø×ÒÐ-Ð-¨bÑ1Ô1Ð1Ñ2Ô2Ð2Ð2Ð2r   c                 óN  — ddl }ddlm} |                      |¦   «         ¦  «        }|                     dd¦  «        }|                      |¦   «         ¦  «        }|                     dd¦  «        }|                      ||¦  «         |                      ||¦  «        ¦  «         dS )ztest genseed()r   N)Úgenseedl    d(	 )Úrandomr   r„   ÚRandomÚrandintrY   rb   )r   r…   r„   Úrngr[   r\   s         r   Útest_genseedzMiscTest.test_genseed›   s§   € àˆˆˆØ)Ð)Ð)Ð)Ð)Ð)Ø�mŠm˜G˜G™IœIÑ&Ô&ˆØ�KŠK˜˜6Ñ"Ô"ˆà�mŠm˜G˜G™IœIÑ&Ô&ˆØ�KŠK˜˜6Ñ"Ô"ˆà×Ò˜A˜aÑ Ô Ð à�Š��˜‘”ÑÔÐÐÐr   c                 ód  ‡‡— ddl m}m}m} ddlm}m}  |¦   «         }|sj|                      |d¦  «         |                       |dd¦  «        d¦  «         |                       |dd¦  «        ¦  «         |  	                    d	¦  «        ‚|s|  
                    d
¦  «        ‚dD ]}||v r n	Œ	|d         } ||¦  «        Št          ‰dd¦  «        r‰                     ‰j        ¬¦  «        Šˆfd„}t          d¦  «        }	 ||	¦  «        }
 ||	|
¦  «        }|                      |t           ¦  «         |                      ||
¦  «         |                       |t#          |	¦  «        t#          |
¦  «        ¦  «        |
¦  «         |
dd…         dz   }|                       ||	|¦  «        |
¦  «         t          d¦  «        } ||¦  «        }|                       |||¦  «        |¦  «         |                       |t#          |¦  «        t#          |¦  «        ¦  «        |¦  «         |                      t&          |d|
¦  «         |                       |d|
¦  «        ¦  «         |                       |d|¦  «        ¦  «         ddl m} |j        }	 dŠˆfd„|_        dD ]AŠ|                       |d|
¦  «        d¦  «         |                       |d|
¦  «        ¦  «         ŒBdŠ|                       |d|
¦  «        d¦  «         |                       |d|
¦  «        ¦  «         ||_        dS # ||_        w xY w)ztest crypt.crypt() wrappersr   )Ú	has_cryptÚ
safe_cryptÚ
test_crypt)Úget_supported_os_crypt_schemesÚget_crypt_handlerr<   r-   ÚaaNzaaqPiZY5xR5l.zcrypt.crypt() not availablez0crypt() present, but no supported schemes found!)Ú	md5_cryptÚsha256_cryptre   Ú
min_rounds)Úroundsc                 óâ   •— t          | t          ¦  «        sJ ‚‰                     | ¦  «        }t          |t          ¦  «        r|                     d¦  «        }t          |t          ¦  «        sJ ‚|S )Núutf-8)Ú
isinstancer   ÚhashrX   rp   )Úsecretr˜   Úhashers     €r   Úget_hashz%MiscTest.test_crypt.<locals>.get_hashÊ   sh   ø€ Ý˜f¥gÑ.Ô.Ð.Ð.Ð.Ø—;’;˜vÑ&Ô&ˆDÝ˜$¥Ñ&Ô&ð ,Ø—{’{ 7Ñ+Ô+�Ý˜d¥GÑ,Ô,Ð,Ð,Ð,ØˆKr   éþÿÿÿÚxxu   testáˆ´ú c                 ó   •— ‰S r&   r<   )r™   r˜   Úretvals     €r   ú<lambda>z%MiscTest.test_crypt.<locals>.<lambda>ò   s   ø€ ¨f€ r   )Nrd   ú:z:0z*0Úxxx)r   r‹   rŒ   r�   Úpasslib.registryrŽ   r�   r0   r€   ÚskipTestÚfailÚgetattrÚusingr“   r
   rW   r   r   rl   rm   r   ÚutilsÚ_crypt)r   r‹   rŒ   r�   rŽ   r�   Ú	supportedÚschemer›   Ús1Úh1ÚresultÚh1xÚs2Úh2ÚmodÚorigrš   r    s                    @@r   r�   zMiscTest.test_crypt©   sÑ  øø€ àCÐCÐCÐCÐCÐCÐCÐCÐCÐCØVÐVÐVÐVÐVÐVÐVÐVð 3Ð2Ñ4Ô4ˆ	Øð 	?Ø×Ò˜Y¨Ñ+Ô+Ð+Ø×Ò˜Z˜Z¨°Ñ5Ô5°tÑ<Ô<Ð<Ø×Ò˜Z˜Z¨°Ñ@Ô@ÑAÔAÐAØ—-’-Ð =Ñ>Ô>Ð>ð ð 	Pð
 —)’)ÐNÑOÔOÐOð 4ð 	#ð 	#ˆFØ˜Ð"Ð"Ø�ð #ð ˜r”]ˆFØ"Ð" 6Ñ*Ô*ˆÝ�6˜<¨Ñ.Ô.ð 	<Ø—\’\¨Ô):�\Ñ;Ô;ˆFð	ð 	ð 	ð 	ð 	õ ˆv‰YŒYˆØˆX�b‰\Œ\ˆØ�˜B Ñ#Ô#ˆØ×Ò˜f¥gÑ.Ô.Ð.Ø×Ò˜ Ñ$Ô$Ð$Ø×Ò˜˜¥H¨R¡L¤Lµ(¸2±,´,Ñ?Ô?ÀÑDÔDÐDð ��"�Œg˜‰nˆØ×Ò˜˜ B¨Ñ,Ô,¨bÑ1Ô1Ð1õ ˆ|‰_Œ_ˆØˆX�b‰\Œ\ˆØ×Ò˜˜ B¨Ñ+Ô+¨RÑ0Ô0Ð0Ø×Ò˜˜¥H¨R¡L¤Lµ(¸2±,´,Ñ?Ô?ÀÑDÔDÐDð 	×Ò�* j°&¸"Ñ=Ô=Ð=ð 	�Š˜
˜
 6¨2Ñ.Ô.Ñ/Ô/Ð/Ø×Ò˜˜ F¨CÑ0Ô0Ñ1Ô1Ð1ð
 	$Ð#Ð#Ð#Ð#Ð#ØŒzˆð	ØˆFØ4Ð4Ð4Ð4ˆCŒJà5ð 9ð 9�Ø× Ò   ¨F°BÑ!7Ô!7¸Ñ>Ô>Ð>Ø× Ò   ¨F°BÑ!7Ô!7Ñ8Ô8Ð8Ð8àˆFØ×Ò˜Z˜Z¨°Ñ3Ô3°UÑ;Ô;Ð;Ø×Ò˜Z˜Z¨°Ñ3Ô3Ñ4Ô4Ð4ð ˆCŒJˆJˆJø˜ˆCŒJÐÐÐÐs   ÊBL& Ì&	L/c                 óâ	  ‡‡— ddl mŠmŠ |                      t          ‰t          d¦  «        d¦  «         |                      t          ‰t          d¦  «        d¦  «         |                      t          ‰t          d¦  «        d¦  «         |                      t          ‰dt          d¦  «        ¦  «         |                      t          ‰dd¦  «         |                      t          ‰dd¦  «         |                      t          ‰dt          d¦  «        ¦  «         |                      t          ‰dd¦  «         |                      t          ‰dt          d¦  «        ¦  «         |                      t          ‰dd¦  «         ˆˆfd„}t          d¦  «        t          d	¦  «        t          d
¦  «        dz  fD ]¬} ||¦  «        r%|                       ‰||¦  «        d|›d�¦  «         n|                      t          ‰||¦  «         |                       ‰||¦  «        d|›d�¦  «         |                     d¦  «        }|                       ‰||¦  «        d|›d�¦  «         Œ­t          d¦  «        t          d¦  «        ft          d¦  «        t          d¦  «        ft          d¦  «        t          d¦  «        ft          d¦  «        t          d¦  «        ft          d
¦  «        dz  dd…         t          d¦  «        z   t          d
¦  «        dz  ft          d¦  «        t          d¦  «        ft          d	¦  «        t          d¦  «        ft          d	¦  «        t          d¦  «        ft          d¦  «        t          d	¦  «        ff	D �]k\  }} ||¦  «        rZ ||¦  «        rO|                       ‰||¦  «        d|›d|›d�¦  «         |                       ‰||¦  «        d|›d|›d�¦  «         n:|                      t          ‰||¦  «         |                      t          ‰||¦  «         |                       ‰||¦  «        d|›d|›d�¦  «         |                       ‰||¦  «        d|›d|›d�¦  «         |                     d¦  «        }|                     d¦  «        }|                       ‰||¦  «        d|›d|›d�¦  «         |                       ‰||¦  «        d|›d|›d�¦  «         �ŒmdS )ztest consteq()r   )ÚconsteqÚstr_consteqrd   r   r$   Nc                 ó8   •— ‰‰u pt           pt          | ¦  «        S r&   )r   r   )rN   r¶   r·   s    €€r   Úconsteq_supports_stringz6MiscTest.test_consteq.<locals>.consteq_supports_string  s"   ø€ ð ˜{Ð*ÐI­cÐIµ]À5Ñ5IÔ5IÐJr   r[   rc   u   Ã¿Â¢ rT   zvalue r¢   úlatin-1ri   ÚabcabcÚzbaabcÚabzabcÚabcabzre   úÚabcdefÚdefabcÚqwertyuiopasdfghjklzxcvbnmzvalues ú )	r   r¶   r·   rl   Ú	TypeErrorr
   r   Úencoder€   )r   r¹   rN   ÚlÚrr¶   r·   s        @@r   Útest_consteqzMiscTest.test_consteqÿ   s  øø€ ð 	7Ð6Ð6Ð6Ð6Ð6Ð6Ð6ð 	×Ò�) W­a°©e¬e°SÑ9Ô9Ð9Ø×Ò�) W­a°©e¬e°QÑ7Ô7Ð7Ø×Ò�) W­a°©e¬e°TÑ:Ô:Ð:à×Ò�) W¨cµ1°R±5´5Ñ9Ô9Ð9Ø×Ò�) W¨c°1Ñ5Ô5Ð5Ø×Ò�) W¨c°4Ñ8Ô8Ð8à×Ò�) W¨dµA°b±E´EÑ:Ô:Ð:Ø×Ò�) W¨d°CÑ8Ô8Ð8Ø×Ò�) W¨aµ°2±´Ñ7Ô7Ð7Ø×Ò�) W¨a°Ñ5Ô5Ð5ð	Kð 	Kð 	Kð 	Kð 	Kð 	Kõ �#‘”Ý�%‘”ÝÐ$Ñ%Ô% bÑ(ðð 	Kð 	KˆEð
 'Ð& uÑ-Ô-ð DØ—’  ¨¨uÑ 5Ô 5Ð 5ÀeÀeÀeÐ7MÑNÔNÐNÐNà×!Ò!¥)¨W°e¸UÑCÔCÐCØ�OŠO˜K˜K¨¨uÑ5Ô5Ð5ÀeÀeÀeÐ7MÑNÔNÐNà—L’L Ñ+Ô+ˆEØ�OŠO˜G˜G E¨5Ñ1Ô1Ð1À%À%À%Ð3IÑJÔJÐJÐJõ
 �3‘”¥ 3¡¤Ð(Ý�8‘”¥ 8¡¤Ð-Ý�8‘”¥ 8¡¤Ð-Ý�8‘”¥ 8¡¤Ð-ÝÐ&Ñ'Ô'¨Ñ*¨C¨R¨CÔ0µ1°V±9´9Ñ<ÝÐ(Ñ)Ô)¨"Ñ,ð.õ �2‘”�a ™fœfÐ%Ý�5‘”�a ™kœkÐ*Ý�5‘”�a ™kœkÐ*ÝÐ/Ñ0Ô0µ!°E±(´(Ð;ðð 	Eñ 	E‰CˆAˆað 'Ð& qÑ)Ô)ð <Ð.EÐ.EÀaÑ.HÔ.Hð <Ø× Ò   ¨¨A¡¤ À1À1À1ÀQÀQÀQÐ0GÑHÔHÐHØ× Ò   ¨¨A¡¤ À1À1À1ÀQÀQÀQÐ0GÑHÔHÐHÐHà×!Ò!¥)¨W°a¸Ñ;Ô;Ð;Ø×!Ò!¥)¨W°a¸Ñ;Ô;Ð;Ø×Ò˜[˜[¨¨AÑ.Ô.Ð.À1À1À1ÀQÀQÀQÐ0GÑHÔHÐHØ×Ò˜[˜[¨¨AÑ.Ô.Ð.À1À1À1ÀQÀQÀQÐ0GÑHÔHÐHà—’˜Ñ#Ô#ˆAØ—’˜Ñ#Ô#ˆAØ×Ò˜W˜W Q¨™]œ]˜]¸q¸q¸qÀÀÀÐ,CÑDÔDÐDØ×Ò˜W˜W Q¨™]œ]˜]¸q¸q¸qÀÀÀÐ,CÑDÔDÐDÑDð7	Eð 	Er   c                 ój  — |                       ¦   «          ddlm} |                      t          |d¦  «         |                      t          |d¦  «         |                      t          |d¦  «         |                       |t          d¦  «        ¦  «        t          d¦  «        ¦  «         |                       |t          d¦  «        ¦  «        t          d¦  «        ¦  «         |                       |t          d¦  «        ¦  «        t          d	¦  «        ¦  «         |                       |t          d
¦  «        ¦  «        t          d¦  «        ¦  «         |                       |t          d¦  «        ¦  «        t          d¦  «        ¦  «         |                       |t          d¦  «        ¦  «        t          d¦  «        ¦  «         |                      t          |t          d¦  «        ¦  «         |                      t          |t          d¦  «        ¦  «         |                      t          |t          d¦  «        ¦  «         |                      t          |t          d¦  «        ¦  «         |                      t          |t          d¦  «        ¦  «         |                      t          |t          d¦  «        ¦  «         |                      t          |t          d¦  «        ¦  «         |                      t          |t          d¦  «        ¦  «         |                      t          |t          d¦  «        ¦  «         |                      t          |t          d¦  «        ¦  «         |                      t          |t          d¦  «        ¦  «         |                      t          |t          d¦  «        ¦  «         |                      t          |t          d¦  «        ¦  «         |                      t          |t          d¦  «        ¦  «         |                      t          |t          d¦  «        ¦  «         |                       |t          d¦  «        ¦  «        t          d¦  «        ¦  «         |                       |t          d¦  «        ¦  «        t          d¦  «        ¦  «         |                       |t          d¦  «        ¦  «        t          d¦  «        ¦  «         |                      t          |t          d ¦  «        ¦  «         |                      t          |t          d!¦  «        ¦  «         |                       |t          d"¦  «        ¦  «        t          d"¦  «        ¦  «         |                       |t          d#¦  «        ¦  «        t          d$¦  «        ¦  «         |                       |t          d%¦  «        ¦  «        t          d%¦  «        ¦  «         |                       |t          d&¦  «        ¦  «        t          d&¦  «        ¦  «         |                       |t          d'¦  «        ¦  «        t          d(¦  «        ¦  «         |                       |t          d)¦  «        ¦  «        t          d$¦  «        ¦  «         |                      t          |t          d*¦  «        ¦  «         |                      t          |t          d¦  «        ¦  «         |                      t          |t          d¦  «        ¦  «         |                       |t          d¦  «        ¦  «        t          d¦  «        ¦  «         dS )+z"test saslprep() unicode normalizerr   )ÚsaslprepNr$   r   rd   õ   Â­u   $Â­$â€�$z$$$u
   $ $Â $ã€€$z$ $ $ $u   aÌ€õ   Ã rž   úu   á Žu   ï¿¹u   î€€u   ï·�u   í €u   ï¿½u   â¿°u   â€Žu   â�¯u   à¤€u   ï¿¸u   ó €�u   Ø§1u   Ø§u   Ø§Ø¨u   Ø§1Ø¨u   Ø§AØ¨u   xØ§zÚxAzu   IÂ­XÚIXÚuserÚUSERõ   Âªr[   u   â…¨ú)Úrequire_stringprepr   rÊ   rl   rÄ   r0   r
   rm   )r   Úsps     r   Útest_saslprepzMiscTest.test_saslprepe  s­  € à×ÒÑ!Ô!Ð!Ø0Ð0Ð0Ð0Ð0Ð0ð 	×Ò�) R¨Ñ.Ô.Ð.Ø×Ò�) R¨Ñ+Ô+Ð+Ø×Ò�) R¨Ñ-Ô-Ð-ð 	×Ò˜˜�A˜b™EœE™œ¥A b¡E¤EÑ*Ô*Ð*Ø×Ò˜˜�A˜h™KœK™œ­!¨B©%¬%Ñ0Ô0Ð0ð 	×Ò˜˜�AÐ/Ñ0Ô0Ñ1Ô1µ1°U±8´8Ñ<Ô<Ð<ð 	×Ò˜˜�AÐ1Ñ2Ô2Ñ3Ô3µQ°y±\´\ÑBÔBÐBð 	×Ò˜˜�A˜i™LœLÑ)Ô)­1¨X©;¬;Ñ7Ô7Ð7Ø×Ò˜˜�A˜h™KœK™œ­!¨H©+¬+Ñ6Ô6Ð6ð 	×Ò�* b­!¨H©+¬+Ñ6Ô6Ð6Ø×Ò�* b­!¨H©+¬+Ñ6Ô6Ð6Ø×Ò�* b­!¨H©+¬+Ñ6Ô6Ð6Ø×Ò�* b­!¨H©+¬+Ñ6Ô6Ð6à×Ò�* b­!¨H©+¬+Ñ6Ô6Ð6à×Ò�* b­!¨H©+¬+Ñ6Ô6Ð6à×Ò�* b­!¨H©+¬+Ñ6Ô6Ð6à×Ò�* b­!¨H©+¬+Ñ6Ô6Ð6à×Ò�* b­!¨H©+¬+Ñ6Ô6Ð6à×Ò�* b­!¨H©+¬+Ñ6Ô6Ð6Ø×Ò�* b­!¨H©+¬+Ñ6Ô6Ð6à×Ò�* b­!¨H©+¬+Ñ6Ô6Ð6Ø×Ò�* b­!¨H©+¬+Ñ6Ô6Ð6à×Ò�* b­!¨L©/¬/Ñ:Ô:Ð:ð 	×Ò�* b­!¨NÑ*;Ô*;Ñ<Ô<Ð<Ø×Ò˜˜�A˜h™KœK™œ­!¨H©+¬+Ñ6Ô6Ð6Ø×Ò˜˜�A˜nÑ-Ô-Ñ.Ô.µ°.Ñ0AÔ0AÑBÔBÐBØ×Ò˜˜�AÐ2Ñ3Ô3Ñ4Ô4µaÐ8LÑ6MÔ6MÑNÔNÐNà×Ò�* b­!Ð,@Ñ*AÔ*AÑBÔBÐBà×Ò�* b­!¨J©-¬-Ñ8Ô8Ð8Ø×Ò˜˜�A˜j™MœMÑ*Ô*­A¨j©M¬MÑ:Ô:Ð:ð 	×Ò˜˜�A˜j™MœMÑ*Ô*­A¨d©G¬GÑ4Ô4Ð4Ø×Ò˜˜�A˜f™IœI™œ­¨&©	¬	Ñ2Ô2Ð2Ø×Ò˜˜�A˜f™IœI™œ­¨&©	¬	Ñ2Ô2Ð2Ø×Ò˜˜�A˜h™KœK™œ­!¨C©&¬&Ñ1Ô1Ð1Ø×Ò˜˜�A˜h™KœK™œ­!¨D©'¬'Ñ2Ô2Ð2Ø×Ò�* b­!¨H©+¬+Ñ6Ô6Ð6Ø×Ò�* b­!¨NÑ*;Ô*;Ñ<Ô<Ð<ð 	×Ò�* b­!¨NÑ*;Ô*;Ñ<Ô<Ð<Ø×Ò˜˜�AÐ2Ñ3Ô3Ñ4Ô4µaÐ8LÑ6MÔ6MÑNÔNÐNÐNÐNr   c                 ó’  — ddl m} |                       |d¦  «        g ¦  «         |                       |d¦  «        g ¦  «         |                       |d¦  «        dg¦  «         |                       |d¦  «        dg¦  «         |                       |d¦  «        ddg¦  «         |                       |d	¦  «        ddg¦  «         d S )
Nr   )Ú
splitcommard   ú,r[   z a , z a , br\   z a, b, )r   rØ   r0   )r   rØ   s     r   Útest_splitcommazMiscTest.test_splitcomma´  sà   € Ø,Ð,Ð,Ð,Ð,Ð,Ø×Ò˜˜ B™œ¨Ñ,Ô,Ð,Ø×Ò˜˜ C™œ¨"Ñ-Ô-Ð-Ø×Ò˜˜ C™œ¨3¨%Ñ0Ô0Ð0Ø×Ò˜˜ GÑ,Ô,¨s¨eÑ4Ô4Ð4Ø×Ò˜˜ HÑ-Ô-°°S¨zÑ:Ô:Ð:Ø×Ò˜˜ IÑ.Ô.°°c°
Ñ;Ô;Ð;Ð;Ð;r   c           
      óä  — ddl m} dD �]$}|                     d¦  «         t          |¦  «        }t	          |dz   ¦  «        D ]ê}d|›d|›d�} |||¦  «        }|                     d¦  «         |                      t          |¦  «        ||¬	¦  «         |                      t          |¦  «        t          ||¦  «        |¬	¦  «         |                      t          |¦  «        t          |d
z   |dz   ¦  «        |¬	¦  «         |  	                    ||dt          |¦  «        …         |¬	¦  «         Œë�Œ&dD ][}t          |¦  «        }t	          |dz   ¦  «        D ]7}d|›d|›d�} |||¦  «        }|  	                    ||d|…         |¬	¦  «         Œ8Œ\dD ]^}t          |¦  «        }t	          |dz   ¦  «        D ]:}d|›d|›d�} |||¦  «        }|  	                    ||d|dz   …         |¬	¦  «         Œ;Œ_d}|  	                     ||d¦  «        d¦  «         |  	                     ||d¦  «        d¦  «         |  	                     ||d¦  «        d¦  «         |  	                     ||d¦  «        d¦  «         |  	                     ||d
¦  «        d¦  «         |  	                     ||d¦  «        d¦  «         |  	                     ||d¦  «        d¦  «         |  	                     ||d¦  «        d¦  «         |  	                     ||d¦  «        d¦  «         |  	                     ||d¦  «        d¦  «         |  	                     ||d¦  «        d¦  «         |  	                     ||d¦  «        d¦  «         dS )z!
        utf8_truncate()
        r   )Úutf8_truncate)	r   ó   1s   123ó   s
   ó   s
   s   aÂ Ã¾Ã¾s&   abcdefghjusdfaoiuÂ Ã¾Ã¾dsfioauweoiruerr–   é   zsource=z index=z: )Úmsgé   r$   N)ó   Ês
   ÊÊÊÊÊÊÊÊÊÊó    s
             )ó   ªs
   ªªªªªªªªªªé   s
   MNÿ ¡¢ªOP«r   ó   MrA   s   MNs   MNÿ ¡¢s   MNÿ ¡¢ªrf   é   é   é   s   MNÿ ¡¢ªOé	   rT   é   )
r   rÜ   rp   rV   ÚrangeÚassertLessEqualÚassertGreaterEqualÚminÚ
assertLessr0   )r   rÜ   ÚsourceÚendÚidxÚprefixr¯   s          r   Útest_utf8_truncatezMiscTest.test_utf8_truncate½  sc  € ð 	0Ð/Ð/Ð/Ð/Ð/ð
ð !	Kñ !	KˆFð �MŠM˜'Ñ"Ô"Ð"å�f‘+”+ˆCÝ˜S 2™X‘”ð Kð K��Ø39°6°6¸3¸3¸3Ð?�à&˜ v¨sÑ3Ô3�ð —’˜gÑ&Ô&Ð&ð ×$Ò$¥S¨¡[¤[°#¸6Ð$ÑBÔBÐBð ×'Ò'­¨F©¬µS¸¸c±]´]ÈÐ'ÑOÔOÐOØ—’¥ F¡¤­S°°q±¸#À¹'Ñ-BÔ-BÈ�ÑOÔOÐOð × Ò  ¨°µ°V±´°Ô)=À6Ð ÑJÔJÐJÐJñ!Kð,
ð 	Cð 	CˆFõ �f‘+”+ˆCÝ˜S 2™X‘”ð Cð C��Ø39°6°6¸3¸3¸3Ð?�Ø&˜ v¨sÑ3Ô3�Ø× Ò  ¨°°°¬¸6Ð ÑBÔBÐBÐBðCð
ð 	Eð 	EˆFõ �f‘+”+ˆCÝ˜S 2™X‘”ð Eð E��Ø39°6°6¸3¸3¸3Ð?�Ø&˜ v¨sÑ3Ô3�Ø× Ò  ¨°°°Q±°¬¸VÐ ÑDÔDÐDÐDðEð 1ˆà×Ò˜˜ v¨qÑ1Ô1°3Ñ7Ô7Ð7à×Ò˜˜ v¨qÑ1Ô1°4Ñ8Ô8Ð8à×Ò˜˜ v¨qÑ1Ô1°5Ñ9Ô9Ð9à×Ò˜˜ v¨qÑ1Ô1Ø.ñ	0ô 	0ð 	0ð 	×Ò˜˜ v¨qÑ1Ô1Ø2ñ	4ô 	4ð 	4ð 	×Ò˜˜ v¨qÑ1Ô1Ø2ñ	4ô 	4ð 	4ð 	×Ò˜˜ v¨qÑ1Ô1Ø2ñ	4ô 	4ð 	4ð 	×Ò˜˜ v¨qÑ1Ô1Ø2ñ	4ô 	4ð 	4ð 	×Ò˜˜ v¨qÑ1Ô1Ø3ñ	5ô 	5ð 	5ð 	×Ò˜˜ v¨qÑ1Ô1Ø8ñ	:ô 	:ð 	:ð 	×Ò˜˜ v¨rÑ2Ô2Ø8ñ	:ô 	:ð 	:ð 	×Ò˜˜ v¨rÑ2Ô2Ø8ñ	:ô 	:ð 	:ð 	:ð 	:r   N)r*   r+   r,   rB   r   r6   rF   rQ   r]   r   rs   rz   r‚   r‰   r�   rÈ   rÖ   rÚ   rö   r<   r   r   r   r      s"  € € € € € Ø-Ð-ð
1ð 
1ð 
1ð3ð 3ð 3ð4ð 4ð 4ð$7ð 7ð 7ð*
"ð 
"ð 
"ð Ð Ð%Ñ%Ô%ð&Qð &Qñ &Ô%ð&QðP9ð 9ð 9ð3ð 3ð 3ðð ð ðTð Tð TðlEEð EEð EEðLMOð MOð MOð^<ð <ð <ðt:ð t:ð t:ð t:ð t:r   r   c                   ó6   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	dS )	Ú	CodecTestz,tests bytes/unicode helpers in passlib.utilsc                 ó¢  — t           r%ddl}|                      t          |j        ¦  «         n$ddl}|                      t          |j        ¦  «         |                      dt          ¦  «         |                      dt          ¦  «         t           r+|                      d                     d¦  «        d¦  «         dS |                      dd¦  «         dS )z*test b() helper, bytes and native str typer   Nr   ó    ÿrº   õ    Ã¿)	r	   Úbuiltinsr2   rX   Ú__builtin__ÚstrrW   r0   rp   )r   rü   s     r   Ú
test_byteszCodecTest.test_bytes:  sÈ   € åð 	/ØˆOˆOˆOØ�MŠM�% ¤Ñ0Ô0Ð0Ð0à*Ð*Ð*Ð*Ø�MŠM�% ¤Ñ.Ô.Ð.à×Ò˜c¥5Ñ)Ô)Ð)Ø×Ò˜k­5Ñ1Ô1Ð1Ýð 	6Ø×Ò˜[×/Ò/°	Ñ:Ô:¸JÑGÔGÐGÐGÐGà×Ò˜[¨*Ñ5Ô5Ð5Ð5Ð5r   c                 ó   — ddl m} |                       |t          d¦  «        ¦  «        d¦  «         |                       |t          d¦  «        ¦  «        d¦  «         |                       |t          d¦  «        d¦  «        d¦  «         |                      t
          |t          d¦  «        d	¦  «         |                       |d¦  «        d¦  «         |                       |d¦  «        d¦  «         |                       |d¦  «        d¦  «         |                       |dd¦  «        d¦  «         |                       |ddd
d¦  «        d¦  «         |                      t          |dd¦  «         |                      t          |d¦  «         dS )ztest to_bytes()r   )r   rc   rj   rû   ó    Ã¿rº   rú   rk   rd   r–   N)r   r   r0   r
   rl   rm   ÚAssertionErrorrÄ   )r   r   s     r   Útest_to_byteszCodecTest.test_to_bytesJ  s¨  € à*Ð*Ð*Ð*Ð*Ð*ð 	×Ò˜˜¥! E¡(¤(Ñ+Ô+¸fÑEÔEÐEØ×Ò˜˜¥! J¡-¤-Ñ0Ô0¸oÑNÔNÐNð 	×Ò˜˜¥! J¡-¤-°Ñ;Ô;¸kÑJÔJÐJØ×Ò�* hµ°*±´¸wÑGÔGÐGð 	×Ò˜˜ &Ñ)Ô)¸&ÑAÔAÐAØ×Ò˜˜ +Ñ.Ô.¸+ÑFÔFÐFØ×Ò˜˜ /Ñ2Ô2¸/ÑJÔJÐJð 	×Ò˜˜ /°9Ñ=Ô=Ø<Kñ	Mô 	Mð 	Mð 	×Ò˜˜ /°9¸bÀ'ÑJÔJØ<Gñ	Iô 	Ið 	Ið 	×Ò�.¨(°E¸4Ñ@Ô@Ð@Ø×Ò�) X¨tÑ4Ô4Ð4Ð4Ð4r   c                 ó  — ddl m} |                       |t          d¦  «        ¦  «        t          d¦  «        ¦  «         |                       |t          d¦  «        ¦  «        t          d¦  «        ¦  «         |                       |t          d¦  «        d¦  «        t          d¦  «        ¦  «         |                       |d¦  «        t          d¦  «        ¦  «         |                       |d¦  «        t          d¦  «        ¦  «         |                       |dd	¦  «        t          d¦  «        ¦  «         |                      t
          |d¦  «         |                      t          |dd
¦  «         |                      t          |d
¦  «         d
S )ztest to_unicode()r   )Ú
to_unicoderc   rû   rk   rj   r  rú   rº   N)r   r  r0   r
   rl   rm   r  rÄ   )r   r  s     r   Útest_to_unicodezCodecTest.test_to_unicodeg  sp  € à,Ð,Ð,Ð,Ð,Ð,ð 	×Ò˜˜¥A e¡H¤HÑ-Ô-½aÀ¹h¼hÑGÔGÐGØ×Ò˜˜¥A j¡M¤MÑ2Ô2½aÀ
¹m¼mÑLÔLÐLð 	×Ò˜˜¥A j¡M¤M°7Ñ;Ô;½aÀ
¹m¼mÑLÔLÐLð 	×Ò˜˜ FÑ+Ô+½!¸E¹(¼(ÑCÔCÐCØ×Ò˜˜ OÑ4Ô4½!¸J¹-¼-ÑHÔHÐHØ×Ò˜˜ K°Ñ;Ô;Ý<=¸j¹M¼Mñ	Kô 	Kð 	Kà×Ò�* j°+Ñ>Ô>Ð>ð 	×Ò�.¨*°e¸TÑBÔBÐBØ×Ò�) Z°Ñ6Ô6Ð6Ð6Ð6r   c                 óv  — ddl m} |                       |t          d¦  «        d¦  «        d¦  «         |                       |dd¦  «        d¦  «         t          rK|                       |t          d¦  «        d¦  «        d¦  «         |                      t          |dd¦  «         nJ|                      t          |t          d¦  «        d¦  «         |                       |dd¦  «        d¦  «         |                       |t          d¦  «        d	¦  «        d¦  «         |                       |d
d	¦  «        d¦  «         |                       |t          d¦  «        d¦  «        t          rdnd¦  «         |                       |dd¦  «        t          rdnd¦  «         |                      t          |dd¦  «         dS )ztest to_native_str()r   )Úto_native_strrc   rk   rj   rÌ   s   Ã u   ÃƒÂ rº   ó   àr–   N)	r   r  r0   r
   r	   rl   ÚUnicodeDecodeErrorÚUnicodeEncodeErrorrÄ   )r   r  s     r   Útest_to_native_strzCodecTest.test_to_native_str}  sà  € à/Ð/Ð/Ð/Ð/Ð/ð 	×Ò˜˜¥q¨¡x¤x°Ñ9Ô9¸5ÑAÔAÐAØ×Ò˜˜ v¨wÑ7Ô7¸Ñ?Ô?Ð?õ ð 	NØ×Ò˜]˜]­1¨V©9¬9°gÑ>Ô>ÀÑGÔGÐGØ×ÒÕ0°-ÀØ%ñ'ô 'ð 'ð 'ð ×ÒÕ0°-ÅÀ6ÁÄØ%ñ'ô 'ð 'à×Ò˜]˜]¨;¸Ñ@Ô@À*ÑMÔMÐMð 	×Ò˜˜¥q¨¡y¤y°)Ñ<Ô<¸fÑEÔEÐEØ×Ò˜˜ w°	Ñ:Ô:¸FÑCÔCÐCð 	×Ò˜˜¥q¨¡y¤y°'Ñ:Ô:Ý#&Ð6˜˜¨Jñ	8ô 	8ð 	8à×Ò˜˜ {°GÑ<Ô<Ý#&Ð6˜˜¨Jñ	8ô 	8ð 	8ð 	×Ò�) ]°D¸'ÑBÔBÐBÐBÐBr   c                 ó6  — ddl m} |                       |d¦  «        ¦  «         |                       |t          d¦  «        ¦  «        ¦  «         |                       |d¦  «        ¦  «         |                       |t          d¦  «        ¦  «        ¦  «         dS )ztest is_ascii_safe()r   )r   s    abcz abcs    abc€u    abcÂ€N)r   r   r   r
   r€   )r   r   s     r   Útest_is_ascii_safezCodecTest.test_is_ascii_safeœ  sž   € à/Ð/Ð/Ð/Ð/Ð/Ø�Š˜˜ nÑ5Ô5Ñ6Ô6Ð6Ø�Š˜˜¥a¨Ñ&6Ô&6Ñ7Ô7Ñ8Ô8Ð8Ø×Ò˜˜ ~Ñ6Ô6Ñ7Ô7Ð7Ø×Ò˜˜¥q¨Ñ'7Ô'7Ñ8Ô8Ñ9Ô9Ð9Ð9Ð9r   c                 ó  — ddl m} |                       |dd¦  «        ¦  «         |                       |dd¦  «        ¦  «         |                       |dd¦  «        ¦  «         |                       |dd¦  «        ¦  «         |                       |dd¦  «        ¦  «         |                       |dd¦  «        ¦  «         |                       |dd¦  «        ¦  «         |                       |dd¦  «        ¦  «         dS )	ztest is_same_codec()r   )Úis_same_codecNrk   ÚASCIIr–   Úutf8ÚUTF_8)r   r  r   r€   )r   r  s     r   Útest_is_same_codeczCodecTest.test_is_same_codec¤  s  € à/Ð/Ð/Ð/Ð/Ð/à�Š˜˜ d¨DÑ1Ô1Ñ2Ô2Ð2Ø×Ò˜˜ t¨WÑ5Ô5Ñ6Ô6Ð6à�Š˜˜ g¨wÑ7Ô7Ñ8Ô8Ð8Ø�Š˜˜ g¨wÑ7Ô7Ñ8Ô8Ð8à�Š˜˜ g¨wÑ7Ô7Ñ8Ô8Ð8Ø�Š˜˜ g¨vÑ6Ô6Ñ7Ô7Ð7Ø�Š˜˜ g¨wÑ7Ô7Ñ8Ô8Ð8à×Ò˜˜ w°Ñ8Ô8Ñ9Ô9Ð9Ð9Ð9r   N)
r*   r+   r,   rB   rÿ   r  r  r  r  r  r<   r   r   rø   rø   7  sw   € € € € € Ø6Ð6ð6ð 6ð 6ð 5ð 5ð 5ð:7ð 7ð 7ð,Cð Cð Cð>:ð :ð :ð:ð :ð :ð :ð :r   rø   c                   ó0   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚBase64EngineTestz%test standalone parts of Base64Enginec                 óä   — ddl m}m} |                      t          |d¦  «         |                      t
          ||d d…         ¦  «         |                      t
          ||d d…         dz   ¦  «         d S )Nr   )ÚBase64EngineÚ
AB64_CHARSr$   re   ÚA)Úpasslib.utils.binaryr  r  rl   rÄ   rm   )r   r  r  s      r   Útest_constructorz!Base64EngineTest.test_constructor»  sƒ   € ØAÐAÐAÐAÐAÐAÐAÐAð 	×Ò�) \°1Ñ5Ô5Ð5ð 	×Ò�* l°J¸sÀ¸s´OÑDÔDÐDð 	×Ò�* l°J¸sÀ¸s´OÀcÑ4IÑJÔJÐJÐJÐJr   c                 ó8  — ddl m} |                       |d¦  «        t          d¦  «        ¦  «         |                       |t	          d¦  «        ¦  «        t          d¦  «        ¦  «         |                      t          |t	          d¦  «        ¦  «         |                      t          |d¦  «         |                      t          |d¦  «         |                      t          |t	          d	¦  «        ¦  «         |                       |d
¦  «        t          d¦  «        ¦  «         |                      t          |d¦  «         |                       |d¦  «        t          d¦  «        ¦  «         |                       |d¦  «        t          d¦  «        ¦  «         |                       |d¦  «        t          d¦  «        ¦  «         |                       |d¦  «        t          d¦  «        ¦  «         |                       |d¦  «        t          d¦  «        ¦  «         dS )zab64_decode()r   )Úab64_decoderj   Ú69b7rc   õ   abÃ¿ó   abÿó   ab!úab!ó   abcdÚ69b71dó   abcdeó   abcdefÚ69b71d79ó   abcdeQó   abcdefgÚ
69b71d79f8ó   ab+/Ú69bfbfó   ab./N)r  r  r0   r   r
   rl   rm   rÄ   )r   r  s     r   Útest_ab64_decodez!Base64EngineTest.test_ab64_decodeÇ  sà  € à4Ð4Ð4Ð4Ð4Ð4ð 	×Ò˜˜ VÑ,Ô,­b°©j¬jÑ9Ô9Ð9Ø×Ò˜˜¥Q u¡X¤XÑ.Ô.µ°6±
´
Ñ;Ô;Ð;ð 	×Ò�* kµ1°X±;´;Ñ?Ô?Ð?ð 	×Ò�) [°)Ñ<Ô<Ð<Ø×Ò�) [°&Ñ9Ô9Ð9Ø×Ò�) [µ!°E±(´(Ñ;Ô;Ð;ð 	×Ò˜˜ WÑ-Ô-­r°(©|¬|Ñ<Ô<Ð<Ø×Ò�* k°8Ñ<Ô<Ð<Ø×Ò˜˜ YÑ/Ô/µ°J±´Ñ@Ô@Ð@Ø×Ò˜˜ YÑ/Ô/µ°J±´Ñ@Ô@Ð@Ø×Ò˜˜ ZÑ0Ô0µ"°\Ñ2BÔ2BÑCÔCÐCð 	×Ò˜˜ WÑ-Ô-­r°(©|¬|Ñ<Ô<Ð<Ø×Ò˜˜ WÑ-Ô-­r°(©|¬|Ñ<Ô<Ð<Ð<Ð<r   c                 ó^  — ddl m} |                       |t          d¦  «        ¦  «        d¦  «         |                      t
          rt          nt          |t          d¦  «                             d¦  «        ¦  «         |                       |t          d¦  «        ¦  «        d¦  «         |                       |t          d¦  «        ¦  «        d	¦  «         |                       |t          d
¦  «        ¦  «        d¦  «         |                       |t          d¦  «        ¦  «        d¦  «         dS )zab64_encode()r   )Úab64_encoder  rj   rº   r%  r$  r(  r)  r+  r*  r-  r.  N)	r  r1  r0   r   rl   r	   rÄ   r  rp   )r   r1  s     r   Útest_ab64_encodez!Base64EngineTest.test_ab64_encodeã  ó"  € à4Ð4Ð4Ð4Ð4Ð4ð 	×Ò˜˜¥R¨¡Z¤ZÑ0Ô0°&Ñ9Ô9Ð9ð 	×Ò¥sÐB�)˜)Õ0BØ%¥r¨&¡z¤z×'8Ò'8¸Ñ'CÔ'Cñ	Eô 	Eð 	Eð 	×Ò˜˜¥R¨¡\¤\Ñ2Ô2°GÑ<Ô<Ð<Ø×Ò˜˜¥R¨
¡^¤^Ñ4Ô4°iÑ@Ô@Ð@Ø×Ò˜˜¥R¨Ñ%5Ô%5Ñ6Ô6¸
ÑCÔCÐCð 	×Ò˜˜¥R¨¡\¤\Ñ2Ô2°GÑ<Ô<Ð<Ð<Ð<r   c                 óˆ  — ddl m} |                       |d¦  «        t          d¦  «        ¦  «         |                       |t	          d¦  «        ¦  «        t          d¦  «        ¦  «         |                      t          |t	          d¦  «        ¦  «         |                      t          |d¦  «         |                      t          |d¦  «         |                      t          |t	          d	¦  «        ¦  «         |                       |d
¦  «        t          d¦  «        ¦  «         |                      t          |d¦  «         |                       |d¦  «        t          d¦  «        ¦  «         |                       |d¦  «        t          d¦  «        ¦  «         |                       |d¦  «        t          d¦  «        ¦  «         dS )zb64s_decode()r   )Úb64s_decoderj   r  rc   r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  N)r  r5  r0   r   r
   rl   rm   rÄ   )r   r5  s     r   Útest_b64s_decodez!Base64EngineTest.test_b64s_decodeö  s’  € à4Ð4Ð4Ð4Ð4Ð4ð 	×Ò˜˜ VÑ,Ô,­b°©j¬jÑ9Ô9Ð9Ø×Ò˜˜¥Q u¡X¤XÑ.Ô.µ°6±
´
Ñ;Ô;Ð;ð 	×Ò�* kµ1°X±;´;Ñ?Ô?Ð?ð 	×Ò�) [°)Ñ<Ô<Ð<Ø×Ò�) [°&Ñ9Ô9Ð9Ø×Ò�) [µ!°E±(´(Ñ;Ô;Ð;ð 	×Ò˜˜ WÑ-Ô-­r°(©|¬|Ñ<Ô<Ð<Ø×Ò�* k°8Ñ<Ô<Ð<Ø×Ò˜˜ YÑ/Ô/µ°J±´Ñ@Ô@Ð@Ø×Ò˜˜ YÑ/Ô/µ°J±´Ñ@Ô@Ð@Ø×Ò˜˜ ZÑ0Ô0µ"°\Ñ2BÔ2BÑCÔCÐCÐCÐCr   c                 ó^  — ddl m} |                       |t          d¦  «        ¦  «        d¦  «         |                      t
          rt          nt          |t          d¦  «                             d¦  «        ¦  «         |                       |t          d¦  «        ¦  «        d¦  «         |                       |t          d¦  «        ¦  «        d	¦  «         |                       |t          d
¦  «        ¦  «        d¦  «         |                       |t          d¦  «        ¦  «        d¦  «         dS )zb64s_encode()r   )Úb64s_encoder  rj   rº   r%  r$  r(  r)  r+  r*  r-  r,  N)	r  r8  r0   r   rl   r	   rÄ   r  rp   )r   r8  s     r   Útest_b64s_encodez!Base64EngineTest.test_b64s_encode  r3  r   N)	r*   r+   r,   rB   r  r/  r2  r6  r9  r<   r   r   r  r  ·  sk   € € € € € Ø/Ð/ð
Kð 
Kð 
Kð=ð =ð =ð8=ð =ð =ð&Dð Dð Dð.=ð =ð =ð =ð =r   r  c                   ó´   — 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„ Zddg d¢fddg d¢fgZddg d¢fgZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )Ú_Base64Testz+common tests for all Base64Engine instancesNó   ?c                 ó:   ‡ — t          ˆ fd„|D ¦   «         ¦  «        S )z!generate byte string from offsetsc              3   óF   •K  — | ]}‰j         j        ||d z   …         V — ŒdS )r$   N)ÚengineÚbytemap)Ú.0Úor   s     €r   ú	<genexpr>z _Base64Test.m.<locals>.<genexpr>5  s5   øè è € ÐFÐF¸˜$œ+Ô-¨a°°!±¨eÔ4ÐFÐFÐFÐFÐFÐFr   )r   )r   Úoffsetss   ` r   Úmz_Base64Test.m3  s&   ø€ åÐFÐFÐFÐF¸gÐFÑFÔFÑFÔFÐFr   c                 óˆ   — | j         }|j        }| j        D ]+\  }} ||¦  «        }|                      ||d|›d�¦  «         Œ,dS )z,test encode_bytes() against reference inputszencode r¢   N)r?  Úencode_bytesÚencoded_datar0   )r   r?  rÅ   ÚrawÚencodedr¯   s         r   Útest_encode_bytesz_Base64Test.test_encode_bytes:  sf   € à”ˆØÔ$ˆØ Ô-ð 	Eð 	E‰LˆC�Ø�V˜C‘[”[ˆFØ×Ò˜V W W¸c¸c¸cÐ.CÑDÔDÐDÐDð	Eð 	Er   c                 ó¬   — | j         }|j        }|                      t          |t	          d¦  «        ¦  «         |                      t          |d¦  «         dS )z"test encode_bytes() with bad inputrž   N)r?  rG  rl   rÄ   r
   )r   r?  rÅ   s      r   Útest_encode_bytes_badz!_Base64Test.test_encode_bytes_badB  sM   € à”ˆØÔ$ˆØ×Ò�) V­Q¨v©Y¬YÑ7Ô7Ð7Ø×Ò�) V¨TÑ2Ô2Ð2Ð2Ð2r   c                 óˆ   — | j         }|j        }| j        D ]+\  }} ||¦  «        }|                      ||d|›d�¦  «         Œ,dS )z,test decode_bytes() against reference inputszdecode r¢   N)r?  Údecode_bytesrH  r0   )r   r?  rp   rI  rJ  r¯   s         r   Útest_decode_bytesz_Base64Test.test_decode_bytesL  sf   € à”ˆØÔ$ˆØ Ô-ð 	Eð 	E‰LˆC�Ø�V˜G‘_”_ˆFØ×Ò˜V S S¸'¸'¸'Ð*CÑDÔDÐDÐDð	Eð 	Er   c                 óþ  — t           rd„ nt          }| j        }| j        }|j        }d}|                       | |dd¦  «        ¦  «        |¦  «         t          dd¦  «        D ]l}|j        r|dk     r|n |d|dz
  z  ¦  «        }n|dk     r |d|dz   z  ¦  «        n|}|                       | |dd|z  ¦  «        ¦  «        |d|z  ¦  «         Œm|                       | |ddd¦  «        ¦  «        |dz  ¦  «         t          dd¦  «        D ]p}|j        r|dk     r|n |d|dz
  z  ¦  «        }n|dk     r |d|dz   z  ¦  «        n|}|                       | |ddd|z  ¦  «        ¦  «        ||z   d	|z  ¦  «         Œqd
S )z(test decode_bytes() ignores padding bitsc                 ó"   — t          | g¦  «        S r&   )rX   )Úvs    r   r¡   z7_Base64Test.test_decode_bytes_padding.<locals>.<lambda>V  s   € �%  ™*œ*€ r   rä   r   rè   râ   r$   rA   z
%d/4 bits:z
%d/2 bits:N)r	   Úchrr?  rE  rO  r0   rí   Úbig)r   Úbchrr?  rE  rp   ÚBNULLÚiÚcorrects           r   Útest_decode_bytes_paddingz%_Base64Test.test_decode_bytes_paddingT  sá  € å),Ð5Ð$Ð$Ð$µ#ˆØ”ˆØŒFˆØÔ$ˆØˆð 	×Ò˜˜   ! A¡¤™œ¨Ñ/Ô/Ð/Ý�q˜‘”ð 	Kð 	KˆAØŒzð =Ø#$ q¢5 5˜%˜%¨d¨d°1°q¸±s±8©n¬n��à,-°ªE¨E˜$˜$˜q 1 Q¡3™x™.œ.˜.°u�Ø×Ò˜V˜V A A a¨¨1©¡I¤IÑ.Ô.°¸ÈÑ9IÑJÔJÐJÐJð 	×Ò˜˜   ! A a¡¤Ñ)Ô)¨5°©7Ñ3Ô3Ð3Ý�q˜‘”ð 	/ð 	/ˆAØŒzð =Ø#$ q¢5 5˜%˜%¨d¨d°1°q¸±s±8©n¬n��à,-°ªE¨E˜$˜$˜q 1 Q¡3™x™.œ.˜.°u�Ø×Ò˜V˜V A A a¨¨!¨Q©$¡K¤KÑ0Ô0°%¸'±/Ø)¨AÑ-ñ/ô /ð /ð /ð	/ð 	/r   c                 óˆ  — | j         }|j        }|                      t          ||j        dd…         ¦  «         |                      | j        |j        v¦  «         |                      t          || j        dz  ¦  «         |                      t          ||j        dd…         ¦  «         |                      t          |d¦  «         dS )z"test decode_bytes() with bad inputNrf   râ   )	r?  rO  rl   rm   r@  r   Úbad_byterÄ   Úcharmap)r   r?  rp   s      r   Útest_decode_bytes_badz!_Base64Test.test_decode_bytes_bado  s´   € à”ˆØÔ$ˆð 	×Ò�* f¨f¬n¸R¸a¸RÔ.@ÑAÔAÐAð 	�Š˜œ¨V¬^Ð;Ñ<Ô<Ð<Ø×Ò�* f¨d¬m¸A©oÑ>Ô>Ð>ð 	×Ò�) V¨V¬^¸B¸Q¸BÔ-?Ñ@Ô@Ð@Ø×Ò�) V¨TÑ2Ô2Ð2Ð2Ð2r   c                 óJ  — | j         }ddlm}m} |                      ¦   «         }d}t          d¦  «        D �]l}|                     |rdndd¦  «        }|sd}d|z  d	z   d
z  } |||¦  «        }	|                     |	¦  «        }
|                      t          |
¦  «        |¦  «         | 
                    |
¦  «        }|                      ||	¦  «         |dz  dk    r||                     g d¢¦  «        z  }d
|z  dz  } |||j        |¦  «        }
| 
                    |
¦  «        }	|                      t          |	¦  «        |d|z  ¦  «         |                     |	¦  «        }|dz  r(|                      |dd…         |
dd…         ¦  «         �ŒV|                      ||
¦  «         �ŒndS )z2test encode_bytes/decode_bytes against random datar   )rS   ra   Fiô  r$   é   Trâ   rA   ræ   )re   r$   rA   zencoded %d:Nre   )r?  r   rS   ra   rU   r   r‡   rG  r0   rV   rO  Úchoicer@  )r   r?  rS   ra   rˆ   Úsaw_zerorX  ÚsizeÚenc_sizerI  rJ  r¯   Úraw_sizes                r   Ú
test_codecz_Base64Test.test_codec‚  sä  € à”ˆØ:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ø�nŠnÑÔˆØˆÝ˜‘”ð '	2ñ '	2ˆAð —;’; HÐ3˜q˜q°!°RÑ8Ô8ˆDØð  Ø�Ø˜$™˜q™ 1‘}ˆHØ�,˜s DÑ)Ô)ˆCð ×)Ò)¨#Ñ.Ô.ˆGØ×Ò�S ™\œ\¨8Ñ4Ô4Ð4ð ×(Ò(¨Ñ1Ô1ˆFØ×Ò˜V SÑ)Ô)Ð)ð �a‰x˜1Š}ˆ}Ø˜Ÿ
š
 8 8 8Ñ,Ô,Ñ,�Ø˜‘v˜q‘yˆHØ �j  f¤n°dÑ;Ô;ˆGð ×%Ò% gÑ.Ô.ˆCØ×Ò�S ™XœX x°ÀÑ1EÑFÔFÐFð ×(Ò(¨Ñ-Ô-ˆFØ�a‰xð 2Ø× Ò  ¨¨¨¤¨g°c°r°c¬lÑ;Ô;Ð;Ñ;à× Ò  ¨Ñ1Ô1Ð1Ñ1ðO'	2ð '	2r   c                 óH  — ddl m} |                      ¦   «         }| j        }| j        j        }d}|dk     �rk|                     dd¦  «        } |||j        |¦  «                             d¦  «        }|dz  dk    r|                      t          ||¦  «         Œh| 
                    |                     |¦  «        ¦  «        }|                     ¦   «         dk     r*|                     d¦  «        }|                     d¦  «        }||k    r: ||¦  «        \  }	}
|                      |	¦  «         |                      |
|¦  «         nR|                      |d	z  d¦  «          ||¦  «        \  }	}
|                      |	¦  «         |                      |
|¦  «         |dz  }|dk     �°id
S d
S )ztest repair_unused()r   r`   i,  é   rk   ræ   r$   g      à?râ   N)r   ra   rU   r?  Úcheck_repair_unusedr‡   r]  rÅ   rl   rm   rG  rO  r…   rp   r€   r0   rY   r   )r   ra   rˆ   r?  ri  rX  rc  ÚcdataÚrdataÚokr¯   s              r   Útest_repair_unusedz_Base64Test.test_repair_unused±  s¸  € ð 	-Ð,Ð,Ð,Ð,Ð,Ø�nŠnÑÔˆØ”ˆØ"œkÔ=ÐØˆØ�#Šg‰gØ—;’;˜q Ñ$Ô$ˆDØ�J˜s F¤N°DÑ9Ô9×@Ò@ÀÑIÔIˆEØ�a‰x˜1Š}ˆ}à×!Ò!¥*Ð.AÀ5ÑIÔIÐIØØ×'Ò'¨×(;Ò(;¸EÑ(BÔ(BÑCÔCˆEØ�zŠz‰|Œ|˜bÒ Ð ØŸš WÑ-Ô-�ØŸš WÑ-Ô-�Ø˜Š~ˆ~à0Ð0°Ñ7Ô7‘
��FØ× Ò  Ñ$Ô$Ð$Ø× Ò  ¨Ñ/Ô/Ð/Ð/ð ×#Ò# D¨1¡H¨aÑ0Ô0Ð0Ø0Ð0°Ñ7Ô7‘
��FØ—’ Ñ#Ô#Ð#Ø× Ò  ¨Ñ/Ô/Ð/Ø�‰FˆAð- �#Šg‰gˆgˆgˆgˆgr   s   3"s   "3)rA   r$   r   s   "3)r$   rA   r   s   ")r   r   r$   c                 ó   — | j         }| j        | j        z   D ]G\  }}}|                     ||¦  «        }|                     |¦  «        }|                      ||¦  «         ŒH|                      t          |j        t          d¦  «        g ¦  «         dS )ztest encode_transposed_bytes()r[   N)	r?  Ú
transposedÚtransposed_dupsÚencode_transposed_bytesrO  r0   rl   rÄ   r
   )r   r?  r¯   ÚinputrD  ÚtmpÚouts          r   Útest_encode_transposed_bytesz(_Base64Test.test_encode_transposed_bytesâ  s“   € à”ˆØ&*¤o¸Ô8LÑ&Lð 	*ð 	*Ñ"ˆF�E˜7Ø×0Ò0°¸Ñ@Ô@ˆCØ×%Ò% cÑ*Ô*ˆCØ×Ò˜S &Ñ)Ô)Ð)Ð)à×Ò�) VÔ%CÅQÀsÁVÄVÈRÑPÔPÐPÐPÐPr   c                 ó²   — | j         }| j        D ]G\  }}}|                     |¦  «        }|                     ||¦  «        }|                      ||¦  «         ŒHdS )ztest decode_transposed_bytes()N)r?  ro  rG  Údecode_transposed_bytesr0   )r   r?  rr  r¯   rD  rs  rt  s          r   Útest_decode_transposed_bytesz(_Base64Test.test_decode_transposed_bytesì  sl   € à”ˆØ&*¤oð 	*ð 	*Ñ"ˆE�6˜7Ø×%Ò% eÑ,Ô,ˆCØ×0Ò0°°gÑ>Ô>ˆCØ×Ò˜S &Ñ)Ô)Ð)Ð)ð	*ð 	*r   c                 óž   — | j         }| j        D ]=\  }}}|                     |¦  «        }|                      t          |j        ||¦  «         Œ>dS )z8test decode_transposed_bytes() fails if map is a one-wayN)r?  rp  rG  rl   rÄ   rw  )r   r?  rr  Ú_rD  rs  s         r   Ú test_decode_transposed_bytes_badz,_Base64Test.test_decode_transposed_bytes_badô  sh   € à”ˆØ!%Ô!5ð 	'ð 	'ÑˆE�1�gØ×%Ò% eÑ,Ô,ˆCØ×Ò�i¨Ô)GÈØ%ñ'ô 'ð 'ð 'ð	'ð 	'r   c                 ó¼  — |                       ¦   «         }| j        }t          |d|z  ¦  «        }t          |d|z  ¦  «        }| dz  }||z   dz  }d|z  }	|D ]A\  }
} ||
¦  «        }|                      |t          ¦  «         |                      ||¦  «         ŒB|                      t          |d¦  «         |                      t          ||	¦  «         |D ])\  }
}|                       ||¦  «        |
d|›d�¦  «         Œ*| j        }|                      t          | |d¦  «        |dz   z  ¦  «         |                      t          | |d¦  «        |dz
  z  ¦  «         |                      t          || j	        |z  ¦  «         |                      t          ||j        d         ¦  «         |                      t          |d	¦  «         dd
lm} t          d¦  «        D �]}|                     d|	dz
  ¦  «        }
 ||
¦  «        }|                      t!          |¦  «        |¦  «         |                       ||¦  «        |
¦  «          |||j        |¦  «        } ||¦  «        }
|                      |
dd|z  ¦  «         |                      |
|	d|z  ¦  «          ||
¦  «        }|r'|                      |d	d…         |d	d…         ¦  «         Œî|                      ||¦  «         �Œd	S )z5helper to check encode_intXX & decode_intXX functionszencode_int%szdecode_int%srè   r$   re   zencoded r¢   r   Nr`   éd   zdecode %r out of bounds:rœ   )rU   r?  r§   rW   rX   r0   rl   rm   rE  r\  rÄ   r]  r   ra   r   r‡   rV   r@  rï   rñ   )r   ÚbitsÚencoded_pairsrˆ   r?  rÅ   rp   ÚpadÚcharsÚupperrN   rJ  r¯   rE  ra   rX  s                   r   Úcheck_int_pairz_Base64Test.check_int_pairÿ  s  € à�nŠnÑÔˆØ”ˆÝ˜ °$Ñ!6Ñ7Ô7ˆÝ˜ °$Ñ!6Ñ7Ô7ˆØˆe�a‰iˆØ�c‘˜A‘ˆØ�4‘ˆð ,ð 	.ð 	.‰NˆE�7Ø�V˜E‘]”]ˆFØ×!Ò! &­%Ñ0Ô0Ð0Ø×Ò˜V WÑ-Ô-Ð-Ð-Ø×Ò�* f¨bÑ1Ô1Ð1Ø×Ò�* f¨eÑ4Ô4Ð4ð ,ð 	Qð 	Q‰NˆE�7Ø×Ò˜V˜V G™_œ_¨e¨eÀgÀgÀgÐ5OÑPÔPÐPÐPØŒFˆØ×Ò�* f¨a¨a°©d¬d°E¸!±G©nÑ=Ô=Ð=Ø×Ò�* f¨a¨a°©d¬d°E¸!±G©nÑ=Ô=Ð=Ø×Ò�* f¨d¬m¸EÑ.AÑBÔBÐBØ×Ò�) V¨V¬^¸AÔ->Ñ?Ô?Ð?Ø×Ò�) V¨TÑ2Ô2Ð2ð 	-Ð,Ð,Ð,Ð,Ð,Ý˜‘”ð 	2ñ 	2ˆAà—K’K  5¨¡7Ñ+Ô+ˆEØ�f˜U‘m”mˆGØ×Ò�S ™\œ\¨5Ñ1Ô1Ð1Ø×Ò˜V˜V G™_œ_¨eÑ4Ô4Ð4ð !�j  f¤n°eÑ<Ô<ˆGØ�F˜7‘O”OˆEØ×#Ò# E¨1Ð.HÈ7Ñ.RÑSÔSÐSØ�OŠO˜E 5Ð*DÀwÑ*NÑOÔOÐOØ�V˜E‘]”]ˆFØð 2Ø× Ò  ¨¨¨¤¨g°c°r°c¬lÑ;Ô;Ð;Ð;à× Ò  ¨Ñ1Ô1Ð1Ñ1ð!	2ð 	2r   c                 ó~   — | j         }| j        }|                      dd |d¦  «        fd |d¦  «        fg¦  «         d S )Nrè   r   é?   )r?  rE  rƒ  ©r   r?  rE  s      r   Ú	test_int6z_Base64Test.test_int6/  sI   € Ø”ˆØŒFˆØ×Ò˜A  A A a¡D¤D 	¨B°°°"±´¨;Ð7Ñ8Ô8Ð8Ð8Ð8r   c           
      óÂ   — | j         }| j        }|                      dd |dd¦  «        fd|j        r |dd¦  «        n |dd¦  «        fd |dd¦  «        fg¦  «         d S )Nr`  r   r…  iÿ  ©r?  rE  rƒ  rU  r†  s      r   Ú
test_int12z_Base64Test.test_int124  s‡   € Ø”ˆØŒFˆØ×Ò˜B  A A a¨¡F¤F Ø˜FœJÐ3���1�R‘”�¨A¨A¨b°©G¬GÐ4°u¸a¸aÀÀ2¹h¼hÐ6Gð Iñ 	Jô 	Jð 	Jð 	Jð 	Jr   c                 óÒ   — | j         }| j        }|                      dd |dddd¦  «        fd|j        r |dddd¦  «        n |dddd¦  «        fd |dddd¦  «        fg¦  «         d S )Né   r   r…  iÿÿÿ r‰  r†  s      r   Ú
test_int24z_Base64Test.test_int24:  s’   € Ø”ˆØŒFˆØ×Ò˜B  A A a¨¨!¨A¡J¤J Ø ¤
Ð;���1�Q�q˜‘”�°°°"°Q°q¸±´Ð<Ø�q�q˜˜B˜r "‘~”~Ð&ð (ñ 	)ô 	)ð 	)ð 	)ð 	)r   c                 óB  — | j         }| j        }|                      dd |ddddddddddd¦  «        fd|j        r |ddddddddddd¦  «        n |ddddddddddd¦  «        fd|j        r |ddddddddddd¦  «        n |ddddddddddd¦  «        fg¦  «         d S )Né@   r   r…  ræ   é<   l   ÿÿÿÿ rw   r‰  r†  s      r   Ú
test_int64z_Base64Test.test_int64A  s  € ð ”ˆØŒFˆØ×Ò˜B ! Q Q q¨¨1¨Q°°!°A°a¸¸1¸QÑ%?Ô%?Ð!@Ø°F´Jð 1�Q�Q�q˜˜1˜Q  ! A a¨¨1¨RÑ0Ô0Ð0Ø�Q�r˜!˜A˜a  1 Q q¨!¨A¨aÑ0Ô0ð2àÀVÄZð ?˜A˜A˜b  B r¨2¨b°°B¸¸2¸bÑAÔAÐAØ˜˜2˜b  B¨¨2¨b°°R¸¸2Ñ>Ô>ð@ð!Añ 	Bô 	Bð 	Bð 	Bð 	Br   c                 ó0  — | j         s|                      d¦  «        ‚| j        }| j         D ]j\  }}}t          |d|z  ¦  «        }t          |d|z  ¦  «        }|                       ||¦  «        |¦  «         |                       ||¦  «        |¦  «         ŒkdS )z(test against reference integer encodingsznone defined for classzencode_int%dzdecode_int%dN)Úencoded_intsÚ	skipTestsr?  r§   r0   )r   r?  ÚdatarN   r~  rÅ   rp   s          r   Útest_encoded_intsz_Base64Test.test_encoded_intsL  s±   € àÔ ð 	;Ø—.’.Ð!9Ñ:Ô:Ð:Ø”ˆØ!%Ô!2ð 	2ð 	2ÑˆD�%˜Ý˜V ^°dÑ%:Ñ;Ô;ˆFÝ˜V ^°dÑ%:Ñ;Ô;ˆFØ×Ò˜V˜V E™]œ]¨DÑ1Ô1Ð1Ø×Ò˜V˜V D™\œ\¨5Ñ1Ô1Ð1Ð1ð		2ð 	2r   )r*   r+   r,   rB   r?  rH  r“  r\  rE  rK  rM  rP  rZ  r^  rf  rm  ro  rp  ru  rx  r{  rƒ  r‡  rŠ  r�  r‘  r–  r<   r   r   r;  r;     s†  € € € € € Ø5Ð5ð €Fð €Lð €Lð €HðGð Gð GðEð Eð Eð3ð 3ð 3ðEð Eð Eð/ð /ð /ð63ð 3ð 3ð&-2ð -2ð -2ð^ð ð ðP 
˜/¨'¨'¨'Ð2Ø	˜/¨'¨'¨'Ð2ð€Jð 
˜/¨'¨'¨'Ð2ð€Oð
Qð Qð Qð*ð *ð *ð'ð 'ð 'ð.2ð .2ð .2ð`9ð 9ð 9ð
Jð Jð Jð)ð )ð )ð	Bð 	Bð 	Bð	2ð 	2ð 	2ð 	2ð 	2r   r;  )Úh64Úh64bigc                   ó*   — e Zd ZdZeZdZg d¢ZddgZdS )ÚH64_Testztest H64 codec functionsz	h64 codec)	©r   r   )ó   Us   J/)ó   Uªs   Jd8)ó   UªUs   JdOJ)ó   UªUªs   JdOJe0)ó   UªUªUs   JdOJeK3)ó   UªUªUªs   JdOJeKZe)ó   UªU¯s   JdOJj0)ó   UªUª_s   JdOJey3)ó   z.r…  r`  )ó   .zéÀ  r`  N)	r*   r+   r,   rB   r—  r?  ÚdescriptionPrefixrH  r“  r<   r   r   rš  rš  _  s?   € € € € € Ø"Ð"Ø€FØ#Ððð ð €Lð  	Øð€L€L€Lr   rš  c                   ó*   — e Zd ZdZeZdZg d¢ZddgZdS )ÚH64Big_Testztest H64Big codec functionszh64big codec)	r›  )rœ  s   JE)r�  s   JOc)rž  s   JOdJ)rŸ  s   JOdJeU)r   s   JOdJeZI)r¡  s   JOdJeZKe)r¢  s   JOdJfk)r£  s   JOdJeZw)r¥  r…  r`  )r¤  r¦  r`  N)	r*   r+   r,   rB   r˜  r?  r§  rH  r“  r<   r   r   r©  r©  x  s?   € € € € € Ø%Ð%Ø€FØ&Ððð ð €Lð  	Øð€L€L€Lr   r©  )rB   Ú
__future__r   Ú	functoolsr   rx   r   r   r   Úpasslib.utils.compatr   r   r	   r
   r   r   r   Úpasslib.tests.utilsr   r   r   r   rø   r  r;  r  r—  r˜  rš  r©  r<   r   r   ú<module>r®     sì  ðØ Ð ð &Ð %Ð %Ð %Ð %Ð %à Ð Ð Ð Ð Ð Ø €€€ð 2Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OÐ OØ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ Bð
^:ð ^:ð ^:ð ^:ð ^:ˆxñ ^:ô ^:ð ^:ðH{:ð {:ð {:ð {:ð {:�ñ {:ô {:ð {:ð@g=ð g=ð g=ð g=ð g=�xñ g=ô g=ð g=ðRu2ð u2ð u2ð u2ð u2�(ñ u2ô u2ð u2ðz	 -Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,ðð ð ð ð ˆ{ñ ô ð ð2ð ð ð ð �+ñ ô ð ð ð r   