403Webshell
Server IP : 121.121.20.254  /  Your IP : 216.73.217.141
Web Server : Microsoft-IIS/10.0
System : Windows NT WEB-SERVER 10.0 build 20348 (Windows Server 2022) AMD64
User : IUSR ( 0)
PHP Version : 8.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/Python313/Lib/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Python313/Lib/test/__pycache__/test_codecs.cpython-313.opt-2.pyc
�

��i�]��t
�SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKJr SSK	J
r
 SSKJr SSK
r
SSKrSSKr\R""\R$5rSrSr"SS	\5r"S
S5r"SS
\5r"SS\\R45r"SS\\R45r"SS\\R45r"SS\\R45r"SS\\R45r"SS\\R45r "SS\\R45r!"SS\\R45r""SS\R45r#"S S!\R45r$"S"S#\!\R45r%"S$S%\R45r&/S&Qr'\'Hr(\)"\(5S':wdM\*"\+"\(55 M! "S(S)\R45r,/S*Qr-"S+S,\R45r."S-S.\R45r/"S/S0\R45r0"S1S2\R45r1"S3S4\R45r2"S5S6\R45r3"S7S8\R45r4/S9Qr5\6"\S:5(a\5RoS;5 \6"\S<5(a\5RoS=5 S>/r8"S?S@\R4\5r9"SASB\R45r:"SCSD\R45r;"SESF\R45r<"SGSH\\R45r="SISJ\\R45r>"SKSL\R45r?"SMSN\R45r@"SOSP\R45rA/SQQrBSRSS/ST//SUQSV/SW/SX.rCSSKDrD\BRoSY5 SZS[/\CSY'SSKErE\BRoS\5 S]/\CS\'"S^S_\R45rF0rGS`rH"SaSb\R45rI\R�"\R�Sc:HSd5"SeSf\R455rL"SgSh\R45rM"SiSj\R45rN"SkSl\R45rO\R�"\SLSm5"SnSo\R455rQ"SpSq\R45rR"SrSs\R45rS"StSu\R45rT"SvSw\R45rU\VSx:Xa\R�"5 gg!\a Sr
GN�f=f!\a SrGN�f=f!\a SrSrGN�f=f!\a SrDGN�f=f!\a GN�f=f)y�N)�mock)�support)�	os_helper���c�^^�UU4SjnU$)Nc�L>�TRT"U5U[U545 g�N)�assertEqual�len)�input�expect�coder�selfs  ���%C:\Python313\\Lib\test\test_codecs.py�check�coding_checker.<locals>.check s �������u����E�
�';�<��)rrrs`` r�coding_checkerrs
���=��Lrc��^
^^^
^^�SSKJnJnJn SSKJnJm
JmJmJ	n SmSmSm
"U
UUU
UU4SjS[R5nU"UTXQ"U55nU"S	U"S
545nU"5n	U"USU	5$)Nr)�POINTER�WINFUNCTYPE�WinDLL)�BOOL�BYTE�WCHAR�UINT�DWORD��ic�b>�\rSrSrSY4SYY-4SYY-4SY4SY4SYY-4/rSrg	)
�'is_code_page_present.<locals>.CPINFOEXW�,�MaxCharSize�DefaultChar�LeadByte�UnicodeDefaultChar�CodePage�CodePageNamerN)�__name__�
__module__�__qualname__�__firstlineno__�_fields_�__static_attributes__)r�MAX_DEFAULTCHAR�
MAX_LEADBYTES�MAX_PATHrrs������r�	CPINFOEXWr",sH���"�D�)�"�D��$8�9���m�!3�4�)�5�1���&�#�U�8�^�4�6�rr3�GetCPInfoExW�kernel32)�ctypesrrr�ctypes.wintypesrrrrr�	Structure)�cprrrrrr3�	prototype�GetCPInfoEx�inforr0r1r2rrs          @@@@@@r�is_code_page_presentr=%sv���3�3�>�>��M��O��H�6�6�F�$�$�6��D�$��w�y�/A�B�I��^�V�J�-?�@�A�K��;�D��r�1�d�#�#rc�*�\rSrSrSrSrSSjrSrg)�Queue�9c��Xlgr	��_buffer)r�buffers  r�__init__�Queue.__init__=s���rc�.�U=RU-
slgr	rB)r�charss  r�write�Queue.write@s�������rc��US:a"URnURSSUlU$URSUnURUSUlU$�NrrB)r�size�ss   r�read�
Queue.readCsP����6����A��<�<���+�D�L��H����U�d�#�A��<�<���.�D�L��HrrBN)r)r*r+r,r-rErIrOr/rrrr?r?9s����rr?c� �\rSrSrSrSrSrg)�MixInCheckStateHandling�Nc�p�[[U5S-5GHn[R"U5"5nUR	USU5nUR5nUR
US[5 US(d`URUSSSS45 URUR	US5(+5 URXuR55 [R"U5"5nURU5 UR	X4SS5nURX&U-5 GM g)N�rT)�ranger�codecs�getincrementaldecoder�decode�getstate�assertIsInstance�int�setstate�
assertTruer
�	r�encoding�urN�i�d�part1�state�part2s	         r�check_state_handling_decode�3MixInCheckStateHandling.check_state_handling_decodeOs����s�1�v�a�x��A��,�,�X�6�8�A��H�H�Q�r��U�O�E��J�J�L�E��!�!�%��(�C�0���8��
�
�E�!�H�R�a�L�!�,�-����A�H�H�U�1�X�$6� 6�7�� � ��
�
��5��,�,�X�6�8�A�
�J�J�u���H�H�Q�r�U�D�)�E����Q�e��,�'!rc�f�[[U5S-5H�n[R"U5"5nUR	USU5nUR5n[R"U5"5nUR
U5 UR	X$SS5nURX6U-5 M� g)NrUT)rVrrW�getincrementalencoder�encoderZr]r
r_s	         r�check_state_handling_encode�3MixInCheckStateHandling.check_state_handling_encodees����s�1�v�a�x��A��,�,�X�6�8�A��H�H�Q�r��U�O�E��J�J�L�E��,�,�X�6�8�A�
�J�J�u���H�H�Q�r�U�D�)�E����Q�e��,�!rrN)r*r+r,r-rgrlr/rrrrRrRNs��-�,-rrRc�N�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
Srg
)�ReadTest�pc
��[S5n[R"UR5"U5nSn[	URUR5USS9HCupgUR
[U/55 XTR5-
nURXW5 ME URUR5S5 URURS5 [R"UR5"5nSn[	URUR5USS9H3upgXXR[U/55-
nURXW5 M5 URURSS5S5 URURS5 UR5 Sn[	URUR5USS9H3upgXXR[U/55-
nURXW5 M5 URURSS5S5 URURS5 URUR5n	URUSR[R "U	Vs/sHn[U/5PM snUR555 gs snf)Nr�T��strict)r?rW�	getreaderr`�ziprkrI�bytesrOr
�
bytebufferrXrYrD�reset�join�
iterdecode)
rr�partialresults�q�r�result�c�
partialresultrc�encodeds
          r�
check_partial�ReadTest.check_partialqs(��

�#�J�����T�]�]�+�A�.����"%�e�l�l�4�=�=�&A�>�Z^�"_��Q�
�G�G�E�1�#�J���f�f�h��F����V�3�#`�
	
�������2�&�������s�+�
�(�(����7�9����"%�e�l�l�4�=�=�&A�>�Z^�"_��Q��h�h�u�a�S�z�*�*�F����V�3�#`�	
������#�t�,�b�1�������3�'�	
���	���"%�e�l�l�4�=�=�&A�>�Z^�"_��Q��h�h�u�a�S�z�*�*�F����V�3�#`�	
������#�t�,�b�1�������3�'��,�,�t�}�}�-�������G�G�F�%�%�7�&C�7�a�u�a�S�z�7�&C�T�]�]�S�T�	
��&Cs�J=c	�>^^�U4SjmSU4SjjnSnSnSnTRU"US5U5 TRU"US5U5 TRU"USS5U5 TRU"USS5U5 S	n/n/n[U5H<up�URUS
-S
-S-U	-5 URUS
-S
-S-5 M> TRU"SRU5S5S
RU55 TRU"SRU5S5S
RU55 [	S5H�n
UH�n	SU
S-U	-S--nT"U5n[	S5HGnTRURSS9U
S-U	-5 TRURSS9S5 MI T"U5n[	S5HDnTRURSS9U
S-5 TRURSS9S5 MF M� M� g)Nc�>�[R"URTR55n[R
"TR5"U5$r	��io�BytesIOrkr`rWru)r�streamrs  �rru�)ReadTest.test_readline.<locals>.getreader�s8����Z�Z����T�]�]� ;�<�F��#�#�D�M�M�2�6�:�:rTc�>�T"U5n/nURX!S9nU(dOURU5 M*SRU5$)N)rM�keepends�|)�readline�appendrz)rr�rM�reader�lines�linerus      �r�readalllines�,ReadTest.test_readline.<locals>.readalllines�sL����u�%�F��E�����D��D�������T�"�	�
�8�8�E�?�"rufoo
bar
baz
spam
eggsufoo
|bar
|baz
|spam
|eggszfoo|bar|baz|spam|eggsF�
)�
�
�
u
��uあrrr��P�azxxx
�r��xxx)TN)r
�	enumerater�rzrVr�)
rr�rN�	sexpected�sexpectednoends�lineends�vw�vworb�lineendrMr�rus
`           @r�
test_readline�ReadTest.test_readline�s���	;�	#�
.��9�	�1������a��.�	�:�����a��/��A�����a��r�2�I�>�����a���3�_�E�1��
����%�h�/�L�Q��I�I�q��u�S�y�(�*�W�4�5��J�J��#��c�	�8�+�,�0�	
����b�g�g�b�k�4�8�#�(�(�2�,�G�����b�g�g�b�k�5�9�3�8�8�C�=�I��"�I�D�#����S��7�*�W�4�5��"�1����r��A��$�$������6��S��7�*���$�$������6���#�#�1����r��A��$�$������7��S����$�$������7���#�$�rc�P^^�/SQnSRU5mUU4SjnU"5nTRUR5US5 TRUR5SRUSS55 TRUR5S5 U"5nTRUR5US5 TRURS5USS5 TRURS5S5 TRURS5T[	US5S-SSS5 U"5nTRUR5US5 TRUR5USS5 TRUR5S5 U"5nTRURSSS	9TSS5 TRUR5TSS5 TRUR5S5 U"5nTRURSSS	9TSS5 TRURS5TS5 TRURS5S5 TRURS5TS
S5 U"5nTRURSSS	9TSS5 TRUR5USSS/USS-5 TRUR5S5 g)N)zHumpty Dumpty sat on a wall,
z!Humpty Dumpty had a great fall.
z-All the king's horses and all the king's men
z#Couldn't put Humpty together again.rrc�>�[R"TRTR55n[R
"TR5"U5$r	r�)r��datars ��rru�8ReadTest.test_mixed_readline_and_read.<locals>.getreader�s8����Z�Z����D�M�M� :�;�F��#�#�D�M�M�2�6�:�:rrrU�d�(�)rMrH��j)rzr
r�rOr�	readlines)rr�ru�fr�s`   @r�test_mixed_readline_and_read�%ReadTest.test_mixed_readline_and_read�s����8���w�w�u�~��	;�

�K���������u�Q�x�0��������2�7�7�5���9�#5�6��������2�&�
�K���������u�Q�x�0���������E�!�H�Q�K�0���������B�'���������d�3�u�Q�x�=�1�+<�+=�&>�t��&D�E�
�K���������u�Q�x�0���������a�b�	�2��������2�&�
�K��������R�q��1�4���8�<��������4���8�,��������2�&�
�K��������R�q��1�4���8�<���������D��G�,���������B�'���������d�1�S�k�2�
�K��������R�q��1�4���8�<���������q��!�"����q�r��(B�C��������2�&rc�$�/SQn[R"SRU5RUR55n[
R"UR5"U5n[U5HupEURXQU5 M g)N)=z:<%!--===================================================
z,    BLOG index page: show recent articles,
z7    today's articles, or articles of a specific date.
z>========================================================--%>
z!<%@inputencoding="ISO-8859-1"%>
z<%@pagetemplate=TEMPLATE.y%>
z$<%@import=import frog.util, frog%>
z!<%@import=import frog.objects%>
z9<%@import=from frog.storageerrors import StorageError%>
z<%
r�zimport logging
z+log=logging.getLogger("Snakelets.logger")
r�r�zuser=self.SessionCtx.user
z-storageEngine=self.SessionCtx.storageEngine
r�r�z-def readArticlesFromDate(date, count=None):
z2    entryids=storageEngine.listBlogEntries(date)
z%    entryids.reverse() # descending
z    if count:
z#        entryids=entryids[:count]
z
    try:
z\        return [ frog.objects.BlogEntry.load(storageEngine, date, Id) for Id in entryids ]
z    except StorageError,x:
z6        log.error("Error loading articles: "+str(x))
z,        self.abort("cannot load articles")
r�zshowdate=None
r�zarg=self.Request.getArg()
zif arg=="today":
z,    #-------------------- TODAY'S ARTICLES
z-    self.write("<h2>Today's articles</h2>")
z(    showdate = frog.util.isodatestr() 
�.    entries = readArticlesFromDate(showdate)
zelif arg=="active":
z4    #-------------------- ACTIVE ARTICLES redirect
z     self.Yredirect("active.y")
zelif arg=="login":
z/    #-------------------- LOGIN PAGE redirect
z    self.Yredirect("login.y")
zelif arg=="date":
z7    #-------------------- ARTICLES OF A SPECIFIC DATE
z2    showdate = self.Request.getParameter("date")
zV    self.write("<h2>Articles written on %s</h2>"% frog.util.mediumdatestr(showdate))
r�zelse:
z+    #-------------------- RECENT ARTICLES
z,    self.write("<h2>Recent articles</h2>")
z.    dates=storageEngine.listBlogEntryDates()
z    if dates:
z        entries=[]
z        SHOWAMOUNT=10
z         for showdate in dates:
zW            entries.extend( readArticlesFromDate(showdate, SHOWAMOUNT-len(entries)) )
z*            if len(entries)>=SHOWAMOUNT:
z                break
z                
rr)	r�r�rzrkr`rWrur�r
)rrNr�r�rbr�s      r�test_bug1175396�ReadTest.test_bug1175396sm��>
��~���B�G�G�A�J�-�-�d�m�m�<�=���!�!�$�-�-�0��8��"�6�*�I�Q����T�Q�4�(�+rc�J�[S5n[R"UR5"U5n[R"UR5"U5nURS5 UR
URSS9S5 URS5 UR
URSS9S5 UR
URSS9S5 URS	5 UR
URSS9S	5 UR
URSS9S5 URS5 UR
URS
S9S5 URS5 UR
URS
S9S5 UR
URS
S9S5 URS	5 UR
URS
S9S	5 UR
URS
S9S5 URS
5 UR
URS
S9S
5 g)Nrzfoo
Fr��fooz
bar
rr�bar�bazTr�zbar
zfoo
)r?rW�	getwriterr`rurIr
r�)rr}�writerr�s    r�test_readlinequeue�ReadTest.test_readlinequeueLs����#�J���!�!�$�-�-�0��3���!�!�$�-�-�0��3��	���W��������%��8�%�@����Y��������%��8�"�=�������%��8�%�@����U��������%��8�%�@�������%��8�"�=�	���W��������$��7��A����Y��������$��7��>�������$��7��A����U��������$��7��?�������$��7��<����Y��������$��7��Crc���SnSnSnX-U-RUR5n[R"U5n[R
"UR5"U5nUR
UR5U5 UR
UR5U5 UR
UR5U5 UR
UR5S5 g)NzAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
z`offending line: ladfj askldfj klasdj fskla dfzaskdj fasklfj laskd fjasklfzzzzaa%whereisthis!!!
znext line.
rr�rkr`r�r�rWrur
r�)r�s1�s2�s3rNr�r�s       r�test_bug1098990_a�ReadTest.test_bug1098990_ags���
R��
q��
��
�U�2�X���d�m�m�,�����A����!�!�$�-�-�0��8��������*�B�/�������*�B�/�������*�B�/�������*�B�/rc�\�SnSnSnSnSnX-U-U-U-RUR5n[R"U5n[R
"UR5"U5nUR
UR5U5 UR
UR5U5 UR
UR5U5 UR
UR5U5 UR
UR5U5 UR
UR5S5 g)Nzaaaaaaaaaaaaaaaaaaaaaaaa
zbbbbbbbbbbbbbbbbbbbbbbbb
zstillokay:bbbbxx
zbroken!!!!badbad
zagainokay.
rrr�)	rr�r�r��s4�s5rNr�r�s	         r�test_bug1098990_b�ReadTest.test_bug1098990_bts���
+��
+��
#��
#��
��
�U�2�X�b�[��^�#�#�D�M�M�2�����A����!�!�$�-�-�0��8��������*�B�/�������*�B�/�������*�B�/�������*�B�/�������*�B�/�������*�B�/r��c���UR[SRUR5 UR	SRURS5SRUR55 UR	SRURS5SRUR55 UR	SRURS5SRUR55 UR	SRURS5S	RUR55 UR	SRURS
5SRUR55 UR	SRURS5S	RUR55 UR	SRURS
5S
RUR55 SRUR5nSGH�up#URUR5[U5SnURUR5[U5SnUS-U-nX-UR-U-nUR[URUR5 UR	URURS5U5 UR	URURS5U5 UR	URURS5X#-5 UR	URURS
5X R-U-5 SRSUR55nUR	URURS5X(-U-5 GM� g)Nu��[�]�backslashreplacez[\udc80]�namereplace�xmlcharrefreplacez
[&#56448;]�ignore�[]�replacez[?]�[��]z[??]rr))�𐿿�A)�[�])r�r����
surrogatepassc3�,# �UH
nSU-v� M g7f)�\x%02xNr)�.0�bs  r�	<genexpr>�0ReadTest.test_lone_surrogates.<locals>.<genexpr>�s���'J�0H�1�(1�1�}�0H�s�)�assertRaises�UnicodeEncodeErrorrkr`r
r�ill_formed_sequence�UnicodeDecodeErrorrY�ill_formed_sequence_replacerz)	r�bom�before�after�before_sequence�after_sequence�test_string�
test_sequencer�s	         r�test_lone_surrogates�ReadTest.test_lone_surrogates�s*�����,�h�o�o�t�}�}�M�����*�*�4�=�=�:L�M�$�+�+�D�M�M�:�	<�����*�*�4�=�=�-�H�$�+�+�D�M�M�:�	<�����*�*�4�=�=�:M�N�%�,�,�T�]�]�;�	=�����*�*�4�=�=�(�C����T�]�]�3�	5�����*�*�4�=�=�)�D����d�m�m�4�	6�	
���)�0�0�����I����T�]�]�3�	5����)�0�0����	�J����t�}�}�5�	7��i�i��
�
�&��3�M�F�$�m�m�D�M�M�:�3�s�8�9�E�O�"�\�\�$�-�-�8��S���C�N� �8�+�e�3�K� �2�!�5�5�6�8F�G�M����0�-�2F�2F�"�m�m�
-����[�/�/��
�
�0?�A�*�
,�
���]�1�1�$�-�-�2A�C�(�
*�
���]�1�1�$�-�-��J�#�^�
-����]�1�1�$�-�-��K�#�&F�&F�F��N�
P�!�w�w�'J�04�0H�0H�'J� J�����]�1�1�$�-�-�AS�T�#�6��>�
@�+3rc��SRURS5n[S[U55Hqn[R
"UR5"S5nUR
URUSU5S5 UR
URXSS5S5 Ms SRURS5n[S[U55Hpn[R
"UR5"S5nUR
URUSU5S5 UR
URXS5S5 Mr g)Nu�r�rUrrTu�)rkr`rVrrWrXr
rY)rr�rb�decs    r�test_incremental_surrogatepass�'ReadTest.test_incremental_surrogatepass�s�����t�}�}�o�>���q�#�d�)�$�A��.�.�t�}�}�=�o�N�C����S�Z�Z��R�a��1�2�6����S�Z�Z��R��$�7��B�%�
���t�}�}�o�>���q�#�d�)�$�A��.�.�t�}�}�=�o�N�C����S�Z�Z��R�a��1�2�6����S�Z�Z��R��1�8�<�%rrN)r*r+r,r-r�r�r�r�r�r�r�r�r�r�r/rrrrorops?��)
�V9�v.'�`C)�JD�60�0�"#+��*@�X=rroc�t�\rSrSrSr\RS:XaSrOSrSrSr	Sr
S	rS
rSr
SrS
rSrSrg)�	UTF32Testi��utf-32�little����܀s$��spamspams$��spamspamc���[R"UR5u pn[R"5nU"U5nURS5 URS5 UR
5nURX`R:H=(d X`R:H5 [R"U5nU"U5nURUR5S5 g�N�spam�spamspam�rW�lookupr`r�r�rI�getvaluer^�spamle�spamber
rO�r�_r�r�rNr�rcs       r�test_only_one_bom�UTF32Test.test_only_one_bom����"�M�M�$�-�-�8���!�6��J�J�L���1�I��	�����	�����
�J�J�L������[�[�(�<�A���,<�=��J�J�q�M���1�I���������:�.rc�t�[R"S5n[R"UR5"U5nUR[UR5 [R"S5n[R"UR5"U5nUR[UR5 g)N�����s���������r�r�rWrur`r�r�rO�rrNr�s   r�test_badbom�UTF32Test.test_badbom�sz���J�J�y�!�����T�]�]�+�A�.�����,�a�f�f�5��J�J�y�!�����T�]�]�+�A�.�����,�a�f�f�5rc�,�URS/SQ5 g)N�ÿĀ￿𐀀)rrrrrrrrrrrrrr�rrr�ÿrrr�ÿĀrrr�ÿĀ￿rrrr�r��rs r�test_partial�UTF32Test.test_partial�s�����,�
�	
rc��URS[R"SSS55 URS[R"SSS55 g�N)r�rU�r�T)rrrUr��r
rW�
utf_32_decoders r�
test_handlers�UTF32Test.test_handlers	�H�������-�-�g�y�$�G�	I������-�-�g�x��F�	Hrc�R�UR[[RSSS5 g�N��rtT)r�r�rWrrs r�test_errors�UTF32Test.test_errors�"�����,�f�.B�.B�!�8�T�	3rc��URURSUR5 URURSUR5 g�Nr��rgr`rrrs r�test_decoder_state�UTF32Test.test_decoder_state�>���(�(����)3�T�[�[�	B��(�(����)3�T�[�[�	Brc��SnURS[R"U5S5 SnURS[R"U5S5 g)Ns���𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀rs��r)r�
encoded_le�
encoded_bes   r�test_issue8941�UTF32Test.test_issue8941sW��F�
����,��-�-�j�9�!�<�	>�E�
����,��-�-�j�9�!�<�	>rrN)r*r+r,r-r`�sys�	byteorderr�rrrr
rrr$r*r1r/rrrr�r��sT���H�
�}�}�� �1��1��F�F�F�F�
/�6�
�>H�3�B�>rr�c�4�\rSrSrSrSrSrSrSrSr	Sr
g	)
�UTF32LETesti$�	utf-32-ler�c�,�URS/SQ5 g�Nr)rrrrrrrrrrrrrrrrrrrrrrrrrs rr�UTF32LETest.test_partial(������,�
�	
rc�Z�URSRUR5S5 g)N�𐈃s�r
rkr`rs r�test_simple�UTF32LETest.test_simpleC�"������,�,�T�]�]�;�=P�Qrc�R�UR[[RSSS5 gr")r�r�rW�utf_32_le_decoders rr$�UTF32LETest.test_errorsF�"�����,�f�.E�.E�!�8�T�	3rc�Z�SnURS[R"U5S5 g)Nsr.r)r
rWrC�rr�s  rr1�UTF32LETest.test_issue8941J�-��-�����,��0�0��9�!�<�	>rrN�r*r+r,r-r`r�rr?r$r1r/rrrr6r6$�"���H�-��
�6R�3�>rr6c�4�\rSrSrSrSrSrSrSrSr	Sr
g	)
�UTF32BETestiR�	utf-32-ber�c�,�URS/SQ5 gr9rrs rr�UTF32BETest.test_partialVr;rc�Z�URSRUR5S5 g)Nr=sr>rs rr?�UTF32BETest.test_simpleqrArc�R�UR[[RSSS5 gr")r�r�rW�utf_32_be_decoders rr$�UTF32BETest.test_errorstrErc�Z�SnURS[R"U5S5 g)Nsr.r)r
rWrTrGs  rr1�UTF32BETest.test_issue8941xrIrrNrJrrrrMrMRrKrrMc�z�\rSrSrSr\RS:XaSrOSrSrSr	Sr
S	rS
rSr
SrS
rSrSrSrg)�	UTF16Testi��utf-16r�����܀s��spamspams��spamspamc���[R"UR5u pn[R"5nU"U5nURS5 URS5 UR
5nURX`R:H=(d X`R:H5 [R"U5nU"U5nURUR5S5 gr�r�rs       rr�UTF16Test.test_only_one_bom�rrc�t�[R"S5n[R"UR5"U5nUR[UR5 [R"S5n[R"UR5"U5nUR[UR5 g)Ns��r
rrs   rr
�UTF16Test.test_badbom�s{���J�J�{�#�����T�]�]�+�A�.�����,�a�f�f�5��J�J�*�+�����T�]�]�+�A�.�����,�a�f�f�5rc�,�URS/SQ5 g)Nr)rrrrrrrrrrrrrrrrrrrs rr�UTF16Test.test_partial�s�����,�
�	
rc��URS[R"SSS55 URS[R"SSS55 gr)r
rW�
utf_16_decoders rr�UTF16Test.test_handlers�r rc�R�UR[[RSSS5 gr")r�r�rWrdrs rr$�UTF16Test.test_errors�r&rc��URURSUR5 URURSUR5 gr(r)rs rr*�UTF16Test.test_decoder_state�r,rc���SnURUR5nUR[R[R
5 [
[R
S5nURU5 SSS5 [R"[R
SURS9nURUR5U5 SSS5 g!,(df   Nf=f!,(df   g=f)NzHello
world
�wbr~�r`)rkr`�
addCleanupr�unlink�TESTFN�openrIrWr
rO)rr�rN�fpr�s     r�test_bug691291�UTF16Test.test_bug691291�s���
"���I�I�d�m�m�$�����	�(�(�)�*:�*:�;�
�)�"�"�D�
)�R��H�H�Q�K�*�
�[�[��)�)�3�"&�-�-�1�4:����V�[�[�]�B�/�1�1�*�
)��1�1�s�&C�.!C)�
C&�)
C7c�,�SHsnUR[5n[R"[R
XRS9 SSS5 URS[WR55 Mu SHsnUR[5n[R"[R
XRS9 SSS5 URS[WR55 Mu g!,(df   N�=f!,(df   NI=f)N)�U�rUzr+Urlzinvalid mode)�rt�wt�atzr+tz'can't have text and binary mode at once)
r��
ValueErrorrWrprror`�assertIn�str�	exception)r�mode�cms   r�test_invalid_modes�UTF16Test.test_invalid_modes�s���&�D��"�"�:�.�"����I�,�,�d�]�]�K�/��M�M�.�#�b�l�l�*;�<�'�
.�D��"�"�:�.�"����I�,�,�d�]�]�K�/��M�M�C��b�l�l�+�
-�.�	/�.��
/�.�s�.C4�.D�4
D	�
D	rN)r*r+r,r-r`r3r4r�rrrr
rrr$r*rrr�r/rrrrYrY�sS���H�
�}�}�� �)��)��
@�F�
@�F�
/�6�
�*H�3�B�
0�
-rrYc�.�\rSrSrSrSrSrSrSrSr	g)	�UTF16LETesti��	utf-16-ler[c�,�URS/SQ5 g�Nr)rrrrrrrrrrrrrrrs rr�UTF16LETest.test_partial�������,�

�	
rc��/SQnUHNup#UR[[RUSS5 UR	URSS5U5 MP g)N)�r#r�)sAZ�A�)s	ABCDZ�ABCD�)s�r�)s�Ar�)s�A��A)s�Ar�rtTzutf-16ler�)r�r�rW�utf_16_le_decoder
rY�r�tests�raw�expecteds    rr$�UTF16LETest.test_errors��R��
��#�M�C����0�&�2I�2I�!�8�T�
3����S�Z�Z�
�I�>��I�#rc��URSRUR5S5 URSRUR5S5 g)Nr=s�ީr
rkr`rYrs r�test_nonbmp�UTF16LETest.test_nonbmp	�G������,�,�T�]�]�;�,�	.����,�3�3�D�M�M�B�%�	'rrN�
r*r+r,r-r`r�rr$r�r/rrrr�r������H�%��
�&
J�'rr�c�.�\rSrSrSrSrSrSrSrSr	g)	�UTF16BETesti�	utf-16-ber\c�,�URS/SQ5 gr�rrs rr�UTF16BETest.test_partialr�rc��/SQnUHNup#UR[[RUSS5 UR	URSS5U5 MP g)N)r�)sA�r�)s	ABCDZr�)s�r�)s��r�)s�Ar�)s�Ar�rtTzutf-16ber�)r�r�rW�utf_16_be_decoder
rYr�s    rr$�UTF16BETest.test_errors&r�rc��URSRUR5S5 URSRUR5S5 g)Nr=s��r�rs rr��UTF16BETest.test_nonbmp5r�rrNr�rrrr�r�r�rr�c�V^�\rSrSrSrSrSrSrSrSr	Sr
U4S	jrS
rSr
SrU=r$)
�UTF8Testi;�utf-8s�u	���rc�,�URS/SQ5 g)N�ÿ߿ࠀ￿𐀀)rrrr�ÿ߿r�r��ÿ߿ࠀr�r��ÿ߿ࠀ￿r�r�r�r�rrs rr�UTF8Test.test_partialAs�����2�
�	
rc�r�SnURURXRUR55 g)Nu€ÿĀ߿ࠀ￿􏿿)rgr`rk)rras  rr*�UTF8Test.test_decoder_stateWs,��@���(�(����)*�H�H�T�]�]�,C�	Erc���SHKupnURXUS9 URURURU5U5 SSS5 MM g!,(df   M_=f)N�)�[��]r�r�)r�r�u[��])r��surrogateescape�[��])r�r�z
[\x80\xff]�r��
error_handlerr�)�subTestr
rYr`�rr�r�r�s    r�test_decode_error�UTF8Test.test_decode_error\sb��.
�)�D�����4�'/��1�� � ����T�]�]�M�!J�!)�+�1�1�
.
�1�1�s�-A�
A"	c�>�[TU]5 URSRURS5UR
S-5 UR
[5nSRURS5 SSS5 WRnURURURURS5 g!,(df   NN=f)Nr�r�s[�]u[���]u��)�superr�r
rkr`�BOMr�r�r}�object�start�end)rr�exc�	__class__s   �rr��UTF8Test.test_lone_surrogateshs����
��$�&�	
����*�*�4�=�=�:K�L����I�-�	/��
�
�1�
2�b�"�)�)�$�-�-�9J�K�3��l�l��������C�I�I�c�g�g�6��G�3�
2�s�C�
Cc��URSRURS5URS-5 URSRURS5URS-5 URSRURS5URS-5 URSR	URS5S5 URSR	URS5S5 UR[R"S55 UR[5 SR	URS5 SSS5 UR[5 S	R	URS5 SSS5 g!,(df   NI=f!,(df   g=f)
Nu	abc�defr�s	abc�defu𐿿�s𐿿�r�s[��]sabc�sabc�z)
r
rkr`r�rYr^rW�lookup_errorr�r�rs r�test_surrogatepass_handler�#UTF8Test.test_surrogatepass_handlertsX������.�.�t�}�}�o�N����$9�9�	;����+�2�2�4�=�=�/�R����$C�C�	E����)�0�0�����P����$A�A�	C�	
���.�5�5�d�m�m�_�U�'�	)����8�?�?��
�
��_�+�	-�	
����+�+�O�<�=�
�
�
�1�
2��!�!�$�-�-��A�3�
�
�
�1�
2��"�"�4�=�=�/�B�3�
2�3�
2��
2�
2�s�>F�8F/�
F,�/
F=c�j�/SQnSHnSHnURX#-5 M M! URS5 UHanURUS9 [R"UR
5"5nUR
[URU5 SSS5 Mc g!,(df   Mu=f)N)������������r#)������s���s���s�s���s�s�)�r�)s�s�s�s�s�s�s�r�)	r��extendr�rWrXr`r�r�rY)r�cases�prefix�suffixr�r�s      r�test_incremental_errors� UTF8Test.test_incremental_errors�s���P��>�F�+�����V�_�-�+�>�
	���N�	O��D����4��(��2�2�4�=�=�A�C���!�!�"4�c�j�j�$�G�)�(��(�(�s
�AB#�#
B2	r)r*r+r,r-r`r�r�r�rr*r�r�r�r�r/�
__classcell__�r�s@rr�r�;sA����H�)��".��

�C�
�,E�

+�
H�C�&H�Hrr�c�6�\rSrSrSrSrSrSrSrSr	Sr
g	)
�UTF7Testi��utf-7c�x�SnURURUR5URS55 URURS5RUR5U5 SnURURUR5URS55 URURS5RUR5U5 URSRUR5S5 URSRUR5S5 SnURURUR5URS55 URURS5RUR5U5 SR	[[
[[S55R55[
X-S	-U-5-
55nURURUR5S
5 g)NzGABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'(),-./:?�asciiz !"#$%&*;<=>@[]^_`{|}za+bsa+-bz 	

rr��+sX+AAAAAQACAAMABAAFAAYABwAIAAsADAAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwBcAH4Afw-)	r
rkr`rYrz�sorted�setrwrV)r�set_d�set_o�ws�other_asciis     r�
test_ascii�UTF7Test.test_ascii�s�����	
������d�m�m�4�e�l�l�7�6K�L�������g�.�5�5�d�m�m�D�e�L�'��������d�m�m�4�e�l�l�7�6K�L�������g�.�5�5�d�m�m�D�e�L�������d�m�m�4�g�>��������
�
�6��>�
��������4�=�=�1�2�9�9�W�3E�F�������7�+�2�2�4�=�=�A�2�F��g�g�f�S��u�T�{�);�)B�)B�)D�%E�%(����)<�r�)A�%B�&C�D�E������+�+�D�M�M�:�D�	Erc�,�URS/SQ5 g)N�a+-bc€dĀe𐀀f) r�r��a+za+-�a+-br�r�r�r�za+-b�a+-bcr�r�r�r�ua+-bc€�	a+-bc€dr�r�r�r�ua+-bc€dĀ�a+-bc€dĀer�r�r�r�r�r�r�ua+-bc€dĀe𐀀r�rrs rr�UTF7Test.test_partial�������.�!
�$	
rc	��/SQnUHfup#URUS9 UR[[RUSS5 URUR
SS5U5 SSS5 Mh g!,(df   Mz=f)N))s�bu�b)sa�b�a�b)sa��bua��b)sa+IK�a�)sa+IK-br�)sa+IK,br�)sa+IKx�a€�)sa+IKx-b�a€�b)sa+IKwgrr�)s	a+IKwgr-br�)sa+IKwgr,r�)s
a+IKwgr,-bu	a€�-b)sa+IKwgrB�
a€€�)s
a+IKwgrB-b�a€€�b)s
a+/,+IKw-b�a�€b)sa+//,+IKw-br�)sa+///,+IKw-b�a￿�€b)s
a+////,+IKw-br)sa+IKw-b�ua€b�)sa+IKw�br�)sa+@br��r�rtTr�r�)r�r�r�rW�utf_7_decoder
rYr�s    rr$�UTF7Test.test_errors�so��
��.#�M�C����#��&��!�!�"4�f�6I�6I� #�X�t�5�� � ����G�Y�!?��J�'�&�#�&�&�s�A
A2�2
B	c�`�URSRUR5S5 URSRUR5S5 URSRUR5S5 URSRUR5S5 URSRUR5S5 URSRUR5S5 URSRUR5S5 URSRUR5S	5 URS	RUR5S5 URS
RUR5S5 g)Nu𐒠s+2AHcoA-u��s+2AHcoAu€𐒠s
+IKzYAdyg-s	+IKzYAdygu
€€𐒠s
+IKwgrNgB3KA-s+IKwgrNgB3KAr�rs rr��UTF7Test.test_nonbmp�sF������,�,�T�]�]�;�[�I�����.�.�t�}�}�=�{�K�����+�+�D�M�M�:�L�I�����*�*�4�=�=�9�<�H����+�2�2�4�=�=�A�=�Q�����-�-�d�m�m�<�>P�Q�����,�,�T�]�]�;�=O�P����1�8�8����G�)�	+����)�0�0����?�1�	3�����/�/��
�
�>�1�	3rc��/SQnUH?up#URUS9 URURSS5U5 SSS5 MA g!,(df   MS=f)N)
)sa+2AE-bua�b)sa+2AE�br�)sa+2AEr�)sa+2AEA-br�)sa+2AH-br�)s
a+IKzYAQ-bua€�b)s
a+IKzYAQ�br�)sa+IKzYAQA-br�)s
a+IKzYAd-br�)sa+IKwgrNgB-bua€€�b)sa+IKwgrNgB�br�)s
a+IKwgrNgBr�)s
a+IKwgrNgBA-br�rr�r��r�r
rYr�s    rr��UTF7Test.test_lone_surrogates
sO��
��#�M�C����#��&�� � ����G�Y�!?��J�'�&�#�&�&�s�#A�
A	rN)r*r+r,r-r`r�rr$r�r�r/rrrr�r��s$���H�E�4%
�NK�<
3�Krr�c� �\rSrSrSrSrSrg)�UTF16ExTestic�T�UR[[RSSSS5 g)Nr#rtrT)r�r�rW�utf_16_ex_decoders rr$�UTF16ExTest.test_errors!s$�����,�f�.E�.E�w�PX�Z[�]a�brc�L�UR[[R5 gr	)r��	TypeErrorrWrrs r�
test_bad_args�UTF16ExTest.test_bad_args$s�����)�V�%<�%<�=rrN)r*r+r,r-r$rr/rrrr
r
s
��c�>rr
c�&�\rSrSrSrSrSrSrg)�ReadBufferTesti'c�x�SSKnUR[R"URSS55S5 g)Nrr��spam)r�)�arrayr
rW�readbuffer_encode)rrs  r�
test_array�ReadBufferTest.test_array)s/�������$�$�U�[�[��g�%>�?��	
rc�P�UR[R"S5S5 g)Nrr�rr)r
rWrrs r�
test_empty�ReadBufferTest.test_empty0s������1�1�"�5�x�@rc��UR[[R5 UR[[RS5 g�N�*)r�rrWrrs rr�ReadBufferTest.test_bad_args3s0�����)�V�%=�%=�>����)�V�%=�%=�r�BrrN)r*r+r,r-rrrr/rrrrr's��
�A�Crrc�N�\rSrSrSr\RrSrSr	Sr
SrSrSr
g	)
�UTF8SigTesti7�	utf-8-sigc�,�URS/SQ5 g)N�ÿ߿ࠀ￿𐀀)rrrrrrrrrru�r(�ÿr)�ÿ߿r*r*�ÿ߿ࠀr+r+�ÿ߿ࠀ￿r,r,r,r'rrs rr�UTF8SigTest.test_partial;s�����8�
�	
rc�<�UR[SS5S5 g)N�r%rr�r
r|rs r�test_bug1601501�UTF8SigTest.test_bug1601501Ws������_�k�:�B�?rc��[R"S5"5nSnURURUR	S55U5 g)Nr%r�)rWrXr
rYrk)rrcrNs   r�test_bom�UTF8SigTest.test_bom[s<���(�(��5�7����������!�(�(�;�"7�8�!�<rc���Sn[RS-n[R"S5nS/[[	SS55-/SQ-H�nU"[
R"U55n[
R"5nUbURU5nOUR5nU(dOURU5 M@UR5nURX�5 M� g�NuABC¡∀XYZsABC¡∀XYZr%rU�)�@r���i)rW�BOM_UTF8ru�listrVr�r��StringIOrOrIrr
�	r�	unistring�
bytestringr��sizehint�istream�ostreamr��gots	         r�test_stream_bom�UTF8SigTest.test_stream_bom`s���(�	��_�_�'D�D�
��!�!�+�.�����e�A�r�l�!3�3�1�2�H��R�Z�Z�
�3�4�G��k�k�m�G���'�"�<�<��1�D�"�<�<�>�D����
�
�d�#���"�"�$�C����S�,�2rc��SnSn[R"S5nS/[[SS55-/SQ-H�nU"[R
"U55n[R"5nUbURU5nOUR5nU(dOURU5 M@UR5nURX�5 M� gr7)rWrur=rVr�r�r>rOrIrr
r?s	         r�test_stream_bare�UTF8SigTest.test_stream_barevs���(�	�2�
��!�!�+�.�����e�A�r�l�!3�3�1�2�H��R�Z�Z�
�3�4�G��k�k�m�G���'�"�<�<��1�D�"�<�<�>�D����
�
�d�#���"�"�$�C����S�,�2rrN)r*r+r,r-r`rWr<r�rr1r4rFrIr/rrrr$r$7s*���H�
�/�/�C�
�8@�=�
-�,-rr$c�2�\rSrSrSrSrSrSrSrSr	g)	�EscapeDecodeTesti�c��UR[R"S5S5 UR[R"[55S5 g)Nrr)r
rW�
escape_decode�	bytearrayrs rr�EscapeDecodeTest.test_empty�s:������-�-�c�2�H�=�����-�-�i�k�:�H�Erc��[Rn[S5H7n[U/5nUS:wdMUR	U"US-5US-S45 M9 g)Nr:�\�0r )rWrNrVrwr
�rrYr�s   r�test_raw�EscapeDecodeTest.test_raw�sN���%�%���s��A��q�c�
�A��E�z�� � ���D��!1�A��H�a�=�A�rc��[Rn[X5nU"SS5 U"SS5 U"SS5 U"SS5 U"S	S
5 U"SS5 U"S
S5 U"SS5 U"SS5 U"SS5 U"SS5 U"SS
5 U"SS5 U"SS5 U"SS5 U"SS5 U"S S!5 U"S"S5 U"S#S!5 g)$N�[\
]�[]�[\"]s["]�[\']s[']�[\\]s[\]�[\a]s[]�[\b]s[]�[\t]s[	]�[\n]s[
]�[\v]s[]�[\f]s[]�[\r]s[
]�[\7]�[\78]s[8]�[\41]s[!]�[\418]s[!8]�[\101]s[A]�[\1010]s[A0]�[\x41]�[\x410])rWrNr�rrYrs   r�test_escape�EscapeDecodeTest.test_escape�s����%�%���t�,��
�i���
�h���
�h���
�h�� �
�h�	�"�
�h�	�"�
�h�	�"�
�h�	�"�
�h�	�"�
�h�	�"�
�h�	�"�
�h�	�"�
�i��$�
�i�� �
�j�'�"�
�j�&�!�
�k�7�#�
�j�&�!�
�k�7�#rc	��[Rn[X5n[SS5H�n[	U/5nUS;a1UR[SU-5 U"SU-SU-5 SSS5 UR[SUS-
-5 U"SUR5-SUR5-5 SSS5 M� UR[S5 U"SS5 SSS5 UR[5 U"S	S	5 SSS5 UR[S
5nU"SS5 SSS5 [SS
5H>nUR[SU-5 U"SU-[	US-/55 SSS5 M@ UR[S5 URU"SS5S5 SSS5 UR[S5 URU"SS5S5 SSS5 g!,(df   GN�=f!,(df   GM�=f!,(df   GNB=f!,(df   GN-=f!,(df   GN=f!,(df   GM=f!,(df   N�=f!,(df   g=f)N�a�{sabfnrtvx�invalid escape sequence '\\%c'rR� �invalid escape sequence '\\8'�\8�\9� invalid escape sequence '\\\xfa'�\�r:r;�$invalid octal escape sequence '\\%o'�\%o��invalid escape sequence '\\z'�\x\zr�)s\zr�%invalid octal escape sequence '\\501'�\x\501)�Ar�)
rWrNrrVrw�assertWarnsRegex�DeprecationWarning�upper�assertWarnsr
�rrYrrbr�rs      r�
test_warnings�EscapeDecodeTest.test_warnings�s6���%�%���t�,���r�3��A��q�c�
�A���#��*�*�+=�9�A�=�?��%�!�)�U�Q�Y�/�?��&�&�'9�5��2��>�@��e�a�g�g�i�'������):�;�@�@�
 ��
"�
"�#5�0�2��&�&�!�2��
�
�0�
1��&�&�!�2�
�
"�
"�#5�3�5�8:��)�Y�'�5��u�f�%�A��&�&�'9�;�a�?�A��g��k�5�!�e�)��#5�6�A�A�&�
�
"�
"�#5�0�2����V�H�h�7��E�2��
"�
"�#5�8�:����V�J��9�9�E�:�:�-?�?��@�@��2�2��2�
1��5�5��A�A��2�2��:�:�s`�G8�
,H
�
H�?
H/�'
I�!I�I&�I7�8
H	�

H	�
H,�/
H>�
I�
I#	�&
I4�7
Jc��[RnUR[US5 UR[US5 UR	U"SS5S5 UR	U"SS5S5 UR[US5 UR[US	5 UR	U"S
S5S5 UR	U"S
S5S5 g)
Ns\xs[\x]s[\x]\xr�)rYr�r�)�[?]?r�s\x0s[\x0]s[\x0]\x0)rY�)r�r�)rWrNr�rzr
)rrYs  rr$�EscapeDecodeTest.test_errors�s����%�%�����*�f�f�5����*�f�h�7�����
�H�5�z�B�����
�I�6��E����*�f�g�6����*�f�i�8������h�7��D������i�8�,�GrrN)
r*r+r,r-rrUrmr�r$r/rrrrLrL�s ��F�B�$�.F�@	HrrL))u"ليهمابتكلموشعربي؟segbpdaj6bu4bxfgehfvwxn)u他们为什么不说中文sihqwcrb4cv8a8dqg056pqjye)u他們爲什麽不說中文sihqwctvzc91f659drss3x8bo0yb)uPročprostěnemluvíčeskysProprostnemluvesky-uyb24dma41a)u,למההםפשוטלאמדבריםעבריתs4dbcagdahymbxekheh6e0a7fei0b)uZयहलोगहिन्दीक्योंनहींबोलसकतेहैंs,i1baa7eci9glrd9b2ae1bj0hfcgg6iyaf8o0a1dig0cd)u6なぜみんな日本語を話してくれないのかs&n8jok5ay5dzabd5bym9f0cm5685rrjetr6pdxa)uH세계의모든사람들이한국어를이해한다면얼마나좋을까sE989aomsvi5e83db1d2a355cv1e0vak1dwrv93d5xbh15a0dt30a5jpsd879ccm6fea98c)u8почемужеонинеговорятпорусскиs b1abfaaepdrnnbgefbaDotcwatmq2g4l)u*PorquénopuedensimplementehablarenEspañols-PorqunopuedensimplementehablarenEspaol-fmd56a)u-TạisaohọkhôngthểchỉnóitiếngViệts,TisaohkhngthchnitingVit-kjcr8268qyxafd2f1b9g)u3年B組金八先生s3B-ww4c5e180e575a65lsy2b)u"安室奈美恵-with-SUPER-MONKEYSs(-with-SUPER-MONKEYS-pc58ag80a8qai00g7n9n)u'Hello-Another-Way-それぞれの場所s(Hello-Another-Way--fc4qua05auwb3674vfr0b)uひとつ屋根の下2s2-u9tlzr9756bt3uc0v)uMajiでKoiする5秒前sMajiKoi5-783gue6qz075azm5e)uパフィーdeルンバsde-jg4avhby1noc0d)uそのスピードでsd9juau41awczczp)z-> $1.00 <-s-> $1.00 <--r c�&�\rSrSrSrSrSrSrg)�PunycodeTestiIc���[HVupUR[URS5S5R	5[US5R	55 MX g�N�punycoder�)�punycode_testcasesr
r|rk�lower�r�uni�punys   r�test_encode�PunycodeTest.test_encodeJsM��+�I�C�
����C�J�J�z�*�G�4�:�:�<��D�'�"�(�(�*�
�
,rc���[HeupURXRS55 URS5RS5nURXRS55 Mg gr�)r�r
rYrkr�s   r�test_decode�PunycodeTest.test_decodeVsU��+�I�C����S�+�+�j�"9�:��;�;�w�'�.�.�w�7�D����S�+�+�j�"9�:�,rc��SS[SSSSS54SS[SSS	S
S54SS[SSSS
S54SS[SSSSS54SS[SSS	S
S54SS[SSSSS54SS[SSSSS54SS[SSSSS54SS[SSSSS54SS[SSSSS54SS[SSS S!S54S"/nUGH!up#nURX#S#9 [U[5(a�UR	[5nURSU5 SSS5 WRnURURUR5 URURU5 URURUR5 URURUR5 O"URURSU5U5 SSS5 GM$ g!,(df   N�=f!,(df   GMH=f)$N�xn--w&rtr�rr�r�rrs&egbpdaj6bu4bxfgehfvwxnrrUsegbpdaj6bu&4bx&fgehfvwxnr�r8segbpdaj6bu4bxfgehfvwxn&��s�Proprostnemluvesky-uyb24dma41ar�sPro�prostnemluvesky-uyb24dma41a�rs Proprost&nemluvesky-uyb24&dma41a��s Proprostnemluvesky&-&uyb24dma41a��sProprostnemluvesky-&uyb24dma41a�sProprostnemluvesky-uyb24d&ma41asProprostnemluvesky-uyb24dma41a&��)r�r�zxn-)r��errors)r�r��
isinstance�	Exceptionr�rYr}r
r`r�r�r�)r�	testcasesr�r�r�rr�s       r�test_decode_invalid� PunycodeTest.test_decode_invalid\s*��
��"4�Z��a��B�"O�P�
'��3E�j�RU�WX�Z[�]_�3`�a�
(�(�4F�z�SV�XZ�\^�`b�4c�d�
'��3E�j�RU�WY�[]�_a�3b�c�
2�H�>P�QX�Z]�_`�bc�eg�>h�i�
2�H�>P�QX�Z]�_`�bc�eg�>h�i�
0�(�<N�z�[^�`b�df�hj�<k�l�
0�(�<N�z�[^�`b�df�hj�<k�l�
/��;M�j�Z]�_a�ce�gi�;j�k�
/��;M�j�Z]�_a�ce�gi�;j�k�
/��;M�j�Z]�_a�ce�gi�;j�k�(�

�	�'0�"�D�(����4��7��h�	�2�2��*�*�+=�>�"����J��7�?��,�,�C��$�$�S�\�\�8�3D�3D�E��$�$�S�Z�Z��6��$�$�S�Y�Y����?��$�$�S�W�W�h�l�l�;��$�$�T�[�[��V�%D�h�O�8�7�'0�?�>��8�7�s%�+G9�G(�CG9�(
G6�2G9�9
H		rN)r*r+r,r-r�r�r�r/rrrr�r�Is��
�;�Prr�)-)s%foo­͏᠆᠋bar​⁠baz︀︈️s	foobarbaz)sCAFEscafe)sßsss)sİsi̇)sŃͺsń ι�NN)sǰ ªsǰ a)sᾷsᾶι)�ǰr�)�ΐr�)�ΰr�)�ẖr�)�ὖr�)� r�)s r�)s N)s r�)s​r)s r�)�r�)s…N)s᠎N)r/r)s𝅵N)sN)s󱈴N)s􏈴N)s򏿾N)s􏿿N)s�N)s�N)s⿵N)śś)s‎N)s‪N)s󠀁N)s󠁂N)sfoo־barN)s	fooﵐbarN)s	fooﹶbars	foo َbar)sا1N)�ا1بr�r�)sX­ßİ℡ǰ ªΰ sxssi̇telǰ aΰ )sXß㌖İ℡⒟㌀s*xssキロメートルi̇tel(d)アパートc��\rSrSrSrSrg)�NameprepTestic	�^�SSKJn [[5H[unup4UcM
[	USS5nUcUR[X5 M5[	USS5nURU"U5U5 M] g![a,n[R"SUS-[	U54-5eSnAff=f)Nr)�nameprepr�r�z
Test 3.%d: %srU)�encodings.idnar�r��nameprep_testsr|r�r�r
r�r�
TestFailed)rr��pos�orig�prepped�es      r�
test_nameprep�NameprepTest.test_namepreps���+�$-�n�$=� �C��$��|���t�W�o�6�D����!�!�"4�h�E��g�w��@��P��$�$�X�d�^�W�=�%>��!�P�!�,�,�_��A��s�1�v��-N�O�O��P�s�A6�6
B,�'B'�'B,rN)r*r+r,r-r�r/rrrr�r�s��Prr�c��\rSrSrS\"SSSSS54S\"SSSS	S54S
\"SS
SSS54S
\"SS
SSS54S\"SSSSS54S\"SSSSS54S\"SSSSS54S\"SSSSS54S\"SSSSS54/	rSS3\"SSS3S	SS54S\"SSSS	S54/rSrSr	S r
S!rS"rS#r
S$rS%rS&rS'rS(rS)rg*)+�
IDNACodecTesti'��python.org�idnarrUrr�pyt�hon.orgr�r�python�.orgr���python.�orgr��python.o�rg�	�python.org�r�r8�xn--pythn-&mua.org�xn--pythn-m&ua.orgr�xn--pythn-mua&.org�
��foo.�xÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿr9�	あさ.͏c��UR[SS5S5 UR[SS5S5 UR[SS5S5 UR[SS5S	5 UR[S
S5S	5 UR[SS5S	5 UR[SS5S	5 UR[S
S5S5 UR[SS5S5 g)N�
python.orgr��
python.org�python.org.�python.org.�xn--pythn-mua.org�pythön.org�xn--pythn-mua.org.�pythön.org.sXN--pythn-mua.org.sxN--pythn-mua.org.sXn--pythn-mua.org.sbugs.xn--pythn-mua.org.ubugs.pythön.org.sbugs.XN--pythn-mua.org.r0rs r�test_builtin_decode�!IDNACodecTest.test_builtin_decode9s�������]�F�3�\�B�����^�V�4�m�D�����1�6�:�O�L�����2�F�;�=M�N�����2�F�;�=M�N�����2�F�;�=M�N�����2�F�;�=M�N�����7��@�.�	0�����7��@�.�	0rc�d�URH�upURXS9 UR[5nUR	S5 SSS5 WR
nUR
URUR5 UR
URUR5 UR
URURSUR3S9 UR
URUR5 SSS5 M� g!,(df   N�=f!,(df   GM"=f)N��caser�r�zreason: )�msg)�invalid_decode_testcasesr�r�r�rYr}r
r`r�r��reasonr��rr�r�rr�s     r�test_builtin_decode_invalid�)IDNACodecTest.test_builtin_decode_invalidFs���"�;�;�N�D����4��;��&�&�'9�:�b��K�K��'�;��l�l��� � ����x�/@�/@�A�� � ����X�_�_�=�� � ����H�N�N�(�3�:�:�,�@W� �X�� � ����(�,�,�7�<�;�<�:�:��<�;�s#�D�D�	B8D�
D�D�
D/	c��URSRS5S5 URSRS5S5 URSRS5S5 URSRS5S	5 g)
Nr�r�r�r�r�r�r�r�r��r
rkrs r�test_builtin_encode�!IDNACodecTest.test_builtin_encodeQsq������,�,�V�4�m�D�����-�-�f�5�~�F�����/�/��7�9M�N����)�0�0��8�:O�Prc�L�URH�upURXS9 UR[5nUR	S5 SSS5 WR
nUR
URUR5 UR
URUR5 UR
URUR5 UR
URUR5 SSS5 M� g!,(df   N�=f!,(df   GM=f)Nr�r�)�invalid_encode_testcasesr�r�r�rkr}r
r`r�r�r�r�s     r�test_builtin_encode_invalid�)IDNACodecTest.test_builtin_encode_invalidWs���"�;�;�N�D����4��;��&�&�'9�:�b��K�K��'�;��l�l��� � ����x�/@�/@�A�� � ����X�_�_�=�� � ����H�N�N�;�� � ����(�,�,�7�<�;�<�:�:��<�;�s#�D�D�	B,D�
D�D�
D#	c��UR[S5 SRS5 SSS5 UR[S5 SRS5 SSS5 g!,(df   N?=f!,(df   g=f)Nzway too longsTxn--016caaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar�ztoo longsNxn--016caaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)�assertRaisesRegexr�rYrs r� test_builtin_decode_length_limit�.IDNACodecTest.test_builtin_decode_length_limitbs`��
�
#�
#�$6��
G�
"�*�*�6�2�H�
�
#�
#�$6�
�
C�
 �(�(��0�D�
C�H�
G��
C�
C�s�A"�A3�"
A0�3
Bc���[R"S5"[R"S55nUR	S5 URUR	5S5 g)Nr��abcr�rr)rWrur�r�rOr
)rr~s  r�test_stream�IDNACodecTest.test_streamhsA�����V�$�R�Z�Z��%7�8��	���q�	��������2�&rc�V�URSR[R"SS5S55S5 URSR[R"SS5S55S5 URSR[R"S	S
5S55S5 URSR[R"SS
5S55S5 [R"S5"5nURURS
5S5 URURS5S5 URURS5S5 URURSS5S5 UR
5 URURS
5S5 URURS5S5 URURS5S5 URURSS5S5 g)Nrrc3�:# �UHn[U/5v� M g7fr	�rw�r�r�s  rr��8IDNACodecTest.test_incremental_decode.<locals>.<genexpr>os���&I�=�a�u�a�S�z�z�=���r�r�r�c3�:# �UHn[U/5v� M g7fr	r�r�s  rr�r�ss���&J�>�a�u�a�S�z�z�>�r�r�r�c3�:# �UHn[U/5v� M g7fr	r�r�s  rr�r�w����&Q�;P�a�u�a�S�z�z�;P�r�r�r�c3�:# �UHn[U/5v� M g7fr	r�r�s  rr�r�{rr�sxn--xams	ple-9ta.ou	äxample.srgrT�orgsrg.zorg.)r
rzrWr{rXrYry)r�decoders  r�test_incremental_decode�%IDNACodecTest.test_incremental_decodems�������G�G�F�%�%�&I�=�&I�6�R�S��	
�	
����G�G�F�%�%�&J�>�&J�F�S�T��	
�	
����G�G�F�%�%�&Q�;P�&Q�SY�Z�[��	
�	
����G�G�F�%�%�&Q�;P�&Q�SY�Z�[��	
�
�.�.�v�6�8��������
�5�r�:��������7��G��������.��3��������T�2�E�:��
�
��������
�5�r�:��������7��G��������/��8��������T�2�B�7rc��S[SSSSS54S[SSS	S
S54S[SSS
SS54S[SSSSS54S[SSSSS54S[SSS	S
S54S[SSSSS54S[SSSSS54S[SSSSS54/	nUGHup#URX#S 9 UR[5n[[R
"S!U5S55 SSS5 WRnURURUR5 URURUR5 URURUR5 URURUR5 SSS5 GM
 [R"S5"5nURH�up#URX#S 9 UR[5nURU5 SSS5 WRnURURUR5 URURUR5 URURUR5 URURUR5 SSS5 M� g!,(df   GN�=f!,(df   GMJ=f!,(df   N�=f!,(df   GM;=f)"Nr�r�r#rrUrrr�spyt�r�rr�spython�r�r�r�r�so�r r�sorg�r�sxn--pythn-&mua.r�r8r�sxn--pythn-m&ua.rr�sxn--pythn-mua&.r�r�r�c3�:# �UHn[U/5v� M g7fr	r�r�s  rr��@IDNACodecTest.test_incremental_decode_invalid.<locals>.<genexpr>�s���+E��1�E�1�#�J�J��r�)r�r�r�r=rWr{r}r
r`r�r�r�rXr�rY)r�iterdecode_testcasesr�r�rr�rs       r�test_incremental_decode_invalid�-IDNACodecTest.test_incremental_decode_invalid�s���
� 2�6�7�A�q�"� M�N�
� 2�6�:�q�!�R� P�Q�
� 2�6�=�!�Q�PR� S�T�
� 2�6�7�A�q�"� M�N�
� 2�6�8�Q��2� N�O�
� 2�6�:�q�!�R� P�Q�
"�$6�v�?Q�SU�WY�[]�$^�_�
"�$6�v�?Q�SU�WY�[]�$^�_�
"�$6�v�?Q�SU�WY�[]�$^�_�
 
��3�N�D����4��;��&�&�'9�:�b���*�*�+E��+E�v�N�O�;��l�l��� � ����x�/@�/@�A�� � ����X�_�_�=�� � ����H�N�N�;�� � ����(�,�,�7�<�;�3��.�.�v�6�8��"�;�;�N�D����4��;��&�&�'9�:�b��N�N�4�(�;��l�l��� � ����x�/@�/@�A�� � ����X�_�_�=�� � ����H�N�N�;�� � ����(�,�,�7�<�;�<�;�:��<�;��;�:��<�;�sJ�*K�(J=�(B,K�K3�2K"�B,K3�=
K�K�
K	�"
K0�,K3�3
L	c��URSR[R"SS55S5 URSR[R"SS55S5 URSR[R"SS55S5 URSR[R"SS55S5 [R"S5"5nURURS	5S5 URURS
5S5 URURSS
5S5 UR
5 URURS	5S5 URURS5S5 URURSS
5S5 g)Nrr�r�r�r�r�r�r�uäxz	ample.orgsxn--xample-9ta.rrTsorgz
ample.org.sxn--xample-9ta.org.)r
rzrW�
iterencoderjrkry)r�encoders  r�test_incremental_encode�%IDNACodecTest.test_incremental_encode�sl������H�H�V�&�&�|�V�<�=��	
�	
����H�H�V�&�&�}�f�=�>��	
�	
����H�H�V�&�&�'7��@�A�!�	
�	
����H�H�V�&�&�'7��@�A�!�	
�
�.�.�v�6�8���������0�#�6��������4�6H�I��������D�1�6�:��
�
���������0�#�6��������5�7M�N��������D�1�3�7rc	��SS3[SSSSS54S[SSSS	S54/nUGHup#URX#S
9 UR[5n[[R
"US55 SSS5 WRnURURUR5 URURUR5 URURUR5 URURUR5 SSS5 GM g!,(df   N�=f!,(df   GM'=f)Nr�r�r�r�<rrr�u͏rUr�)r�r�r�r=rWrr}r
r`r�r�r�)r�iterencode_testcasesr�r�rr�s      r�test_incremental_encode_invalid�-IDNACodecTest.test_incremental_encode_invalid�s
���I�;�
�!3�F�y�k�A�r�SU�!V�W�
�0���1�a��L�M� 
��3�N�D����4��;��&�&�'9�:�b���*�*�4��8�9�;��l�l��� � ����x�/@�/@�A�� � ����X�_�_�=�� � ����H�N�N�;�� � ����(�,�,�7�<�;�3�:�:��<�;�s$�E�!D/�5B,E�/
D=�9E�
E	c���SRSS5 SRSS5 SHGnUR[SRSU5 UR[SRSU5 MI g)Nr�r�rtr�)r�r�r�r�)rkrYr�r��rr�s  rr$�IDNACodecTest.test_errors�se�����F�H�-����V�X�.�#�F����i��)<�)<�f�f�M����i��$�$�f�f�
6�#rrN)r*r+r,r-r�r�r�r�r�r�r�r�r�r�rrrrr$r/rrrr�r�'sh��
�.�v�7H�!�Q�PR�S�T�	�.�v�7H�!�Q�PR�S�T�	�.�v�7H�!�Q�PR�S�T�	�.�v�7H�!�Q�PR�S�T�	�.�v�7H�!�Q�PR�S�T�	�.�v�7H�"�b�RT�U�V�	� 2�6�;P�RT�VX�Z\� ]�^�	� 2�6�;P�RT�VX�Z\� ]�^�	� 2�6�;P�RT�VX�Z\� ]�^�
 ���	�{�	�/��$�y�k�8J�A�r�SU�V�W�	�,�V�_�a��B�O�P� ��
0�	8�Q�	8�1�'�
8�<8�B8�8
8�"6rr�c��\rSrSrSrSrSrSrSrSr	Sr
S	rS
r\
R"SS5S
5rSrSrSrSrSrSrSrSrg)�CodecsModuleTesti�c���UR[R"SS5S5 UR[[R5 UR[R"S5S5 UR[
[RSS5 UR[R"SSS9S5 UR[R"S	SS
S9S5 g)
N���latin-1�äöür��abcr#r���objr`�[�]r��r�r�)r
rWrYr�rr�rs rr��CodecsModuleTest.test_decode�s����������	�B�'�	)����)�V�]�]�3�������v�.��6����,�f�m�m�W�g�N�	
������?�Y�O�'�	)�������y�'�(�K��	rc��UR[R"SS5S5 UR[[R5 UR[
[RSS5 UR[R"S5S5 UR[[RSS	5 UR[R"SSS
9S5 UR[R"SS	SS
9S5 g)Nr rrr��__spam__r!r�uÿffr�r"�[ÿ]r�r%rY)r
rWrkr�r�LookupErrorr�rs rr��CodecsModuleTest.test_encode�s���������~�y�A�(�	*����)�V�]�]�3����+�v�}�}�e�Z�H�������u�-�v�6����,�f�m�m�X�w�O�	
������>�I�N�(�	*�������x���J��	 rc��UR[[R5 UR[[RS5 gr )r�rrW�registerrs r�
test_register�CodecsModuleTest.test_registers,�����)�V�_�_�5����)�V�_�_�b�9rc��Sn[R"5n[R"U5 UR	[
[RU5 URU5 UR5 [R"U5 UR	[[RU5 UR5 g)N�nonexistent_codec_name)r�MockrWr-r�rr�assert_called_with�
reset_mock�
unregisterr*�assert_not_called)r�name�search_functions   r�test_unregister� CodecsModuleTest.test_unregisters~��'���)�)�+������(����)�V�]�]�D�9��*�*�4�0��"�"�$����/�*����+�v�}�}�d�;��)�)�+rc���UR[[R5 UR[[RS5 UR[[RS5 g)Nr(� )r�rrWrr*rs r�test_lookup�CodecsModuleTest.test_lookupsB�����)�V�]�]�3����+�v�}�}�j�A����+�v�}�}�c�:rc��UR[[R5 UR[[RS5 g�Nr()r�rrW�
getencoderr*rs r�test_getencoder� CodecsModuleTest.test_getencoder�0�����)�V�%6�%6�7����+�v�'8�'8�*�Erc��UR[[R5 UR[[RS5 gr@)r�rrW�
getdecoderr*rs r�test_getdecoder� CodecsModuleTest.test_getdecoderrDrc��UR[[R5 UR[[RS5 gr@)r�rrWrur*rs r�test_getreader�CodecsModuleTest.test_getreader�0�����)�V�%5�%5�6����+�v�'7�'7��Drc��UR[[R5 UR[[RS5 gr@)r�rrWr�r*rs r�test_getwriter�CodecsModuleTest.test_getwriter"rLr�LC_CTYPE�tr_TRc�h�[R"S5nURURS5 g)N�ASCIIr�)rWrr
r7)rr�s  r�test_lookup_issue1813�&CodecsModuleTest.test_lookup_issue1813&s&��
�M�M�'�"���������)rc��SnURU[R5 [RHn[[U5 M g)N),rkrYr-�	CodecInfo�Codec�IncrementalEncoder�IncrementalDecoder�StreamReader�StreamWriterrrArFrjrXrur��register_errorr��
strict_errors�replace_errors�
ignore_errors�xmlcharrefreplace_errors�backslashreplace_errors�namereplace_errorsrp�EncodedFilerr{r��BOM_BE�BOM_LEr<�	BOM_UTF16�BOM_UTF16_BE�BOM_UTF16_LE�	BOM_UTF32�BOM_UTF32_BE�BOM_UTF32_LE�BOM32_BE�BOM32_LE�BOM64_BE�BOM64_LE�StreamReaderWriter�
StreamRecoder)�assertCountEqualrW�__all__�getattr)r�apis  r�test_all�CodecsModuleTest.test_all-s7��
��$	
���c�6�>�>�2��>�>�C��F�C� �"rc��UR[R[R5 SHlnUR	U5 [
R"[RUS5nURU[
R5 SSS5 SSS5 Mn g!,(df   N=f!,(df   M�=f)N)�wr~zr+�w+r�r�r�)	rmrrnror�rWrpr[rq)rr~�files   r�	test_open�CodecsModuleTest.test_openDs~�����	�(�(�)�*:�*:�;�5�D����d�#��K�K�	� 0� 0�$��@�D��%�%�d�F�,E�,E�F�A�$�#�6�@�@��$�#�s$�'B3�,!B"�
B3�"
B0�,B3�3
C	c���UR[[RSS5 UR[[RSS5 UR[[RSS5 UR[[RSS5 SHQnUR[[RSSU5 UR[[RSSU5 MS g)Nr!�	undefinedr�rrr)rtr�r�r�)r��UnicodeErrorrWrkrYrs  r�test_undefined�CodecsModuleTest.test_undefinedKs������,��
�
�u�k�J����,��
�
�v�{�K����,��
�
�r�;�G����,��
�
�s�K�H�I�F����l��
�
�u�k�6�
;����l��
�
�v�{�F�
<�Jrc�x�[R"5n[R"SU5nUR[5 [
R"[RSS5 SSS5 U"5RR5 SSS5 g!,(df   N6=f!,(df   g=f)Nz
builtins.openrxzinvalid-encoding)r�	mock_open�patchr�r*rWrprro�close�
assert_called)rr�r|s   r�'test_file_closes_if_lookup_error_raised�8CodecsModuleTest.test_file_closes_if_lookup_error_raisedVst���N�N�$�	�
�Z�Z���
3�t��"�"�;�/����I�,�,�d�4F�G�0�
�F�L�L�&�&�(�	4�
3�/�/��4�
3�s#�B+�'B�*'B+�
B(	�$B+�+
B9c�p�[R"S5n[R"U5nURX!5 UR	X!5 URUR5 UR	URUR5 UR	URUR5 UR	URUR5 [R"S5n[R"U5nURX!5 UR	X!5 URUR5 UR	URUR5 UR	URUR5 UR	URUR5 g�Nr��base64)rWr�copy�assertIsNotr
r^�_is_text_encodingrkr7�incrementalencoder�assertFalse�rr��dups   r�	test_copy�CodecsModuleTest.test_copy^s0���}�}�W�%���i�i��o������#�����#�����.�.�/�������T�[�[�1�������4�9�9�-�����/�/��1H�1H�I��}�}�X�&���i�i��o������#�����#�����/�/�0�������T�[�[�1�������4�9�9�-�����/�/��1H�1H�Irc�p�[R"S5n[R"U5nUR	X!5 URX!5 UR
UR5 URURUR5 URURUR5 URURUR5 [R"S5n[R"U5nUR	X!5 URX!5 URUR5 URURUR5 URURUR5 URURUR5 gr�)rWrr��deepcopyr�r
r^r�rkr7r�r�r�s   r�
test_deepcopy�CodecsModuleTest.test_deepcopyrs2���}�}�W�%���m�m�D�!������#�����#�����.�.�/�������T�[�[�1�������4�9�9�-�����/�/��1H�1H�I��}�}�X�&���m�m�D�!������#�����#�����/�/�0�������T�[�[�1�������4�9�9�-�����/�/��1H�1H�Irc�f�[R"S5n[[RS-5H�nURUS9 [R"U5n[R"U5nURX5 URX5 URURUR5 URURUR5 URUR5 SSS5 M� [R"S5n[[RS-5H�nURUS9 [R"U5n[R"U5nURX5 URX5 URURUR5 URURUR5 URUR5 SSS5 M� g!,(df   GM�=f!,(df   M�=f)Nr�rU��protocolr�)rWrrV�pickle�HIGHEST_PROTOCOLr��dumps�loadsr�r
r7r�r^r�r�)r�
codec_info�proto�pickled_codec_info�unpickled_codec_infos     r�test_pickle�CodecsModuleTest.test_pickle�s����]�]�7�+�
��6�2�2�Q�6�7�E����u��-�%+�\�\�*�%=�"�'-�|�|�4F�'G�$�� � ��B�� � ��B�� � ����2F�2K�2K�L�� � ��2�2�)�<�<����� 4� F� F�G�.�-�8��]�]�8�,�
��6�2�2�Q�6�7�E����u��-�%+�\�\�*�%=�"�'-�|�|�4F�'G�$�� � ��B�� � ��B�� � ����2F�2K�2K�L�� � ��2�2�)�<�<��� � �!5�!G�!G�H�.�-�8�.�-��.�-�s�B6H�B6H!�
H	�!
H0	rN)r*r+r,r-r�r�r.r9r=rBrGrJrNr�run_with_localerTrwr}r�r�r�r�r�r/rrrrr�s{��� �:�
,�;�
F�F�E�E�
���Z��1�*�2�*�!�.G�	<�)�J�(J�(Irrc�,�\rSrSrSrSrSrSrSrg)�StreamReaderTesti�c�p�[R"S5Ul[R"S5Ulg)Nr��한
글)rWrur�r�r�r�rs r�setUp�StreamReaderTest.setUp�s%���&�&�w�/����j�j�!>�?��rc�~�URUR5nURUR5SS/5 g)Nu한
u글)r�r�r
r��rr�s  r�test_readlines�StreamReaderTest.test_readlines�s/���K�K����$����������X�(>�?rc�P�UR[S55nUR[S5 [R"U5 SSS5 UR[S5 [R
"U5 SSS5 g!,(df   ND=f!,(df   g=f)Nr�r[)r�r?r�rr�r�r�s  rr��StreamReaderTest.test_copy�sj���K�K��;�<�=��
�
#�
#�I�~�
>��I�I�a�L�?�
�
#�
#�I�~�
>��M�M�!��?�
>�?�
>��
>�
>���B�&B�
B�
B%c�^�[[RS-5HjnURUS9 UR	[S55nUR
[S5 [R"X!5 SSS5 SSS5 Ml g!,(df   N=f!,(df   M�=f)NrUr�r�r[)	rVr�r�r�r�r?r�rr��rr�r�s   rr��StreamReaderTest.test_pickle�s{���6�2�2�Q�6�7�E����u��-��K�K��&C� D�E���+�+�I�~�F��L�L��*�G�.�-�8�G�F��.�-��#�1B� B�7B�
B�B�
B,	)r�r�N)	r*r+r,r-r�r�r�r�r/rrrr�r��s��@�@��+rr�c�&�\rSrSrSrSrSrSrg)�StreamWriterTesti�c�:�[R"S5Ulg)Nr�)rWr�r�rs rr��StreamWriterTest.setUp�s���&�&�w�/��rc�P�UR[S55nUR[S5 [R"U5 SSS5 UR[S5 [R
"U5 SSS5 g!,(df   ND=f!,(df   g=f)Nrr\)r�r?r�rr�r�r�s  rr��StreamWriterTest.test_copy�sh���K�K��c�
�#��
�
#�
#�I�~�
>��I�I�a�L�?�
�
#�
#�I�~�
>��M�M�!��?�
>�?�
>��
>�
>�r�c�^�[[RS-5HjnURUS9 UR	[S55nUR
[S5 [R"X!5 SSS5 SSS5 Ml g!,(df   N=f!,(df   M�=f)NrUr�rr\)	rVr�r�r�r�r?r�rr�r�s   rr��StreamWriterTest.test_pickle�sy���6�2�2�Q�6�7�E����u��-��K�K��c�
�+���+�+�I�~�F��L�L��*�G�.�-�8�G�F��.�-�r�)r�N�r*r+r,r-r�r�r�r/rrrr�r��s��0��+rr�c�&�\rSrSrSrSrSrSrg)�StreamReaderWriterTesti�c�p�[R"S5Ul[R"S5Ulg)N�latin1r�)rWrur�r�r�rs rr��StreamReaderWriterTest.setUp�s&���&�&�x�0����&�&�w�/��rc��[R"[S5URUR5nUR[S5 [R"U5 SSS5 UR[S5 [R"U5 SSS5 g!,(df   ND=f!,(df   g=f)Nrrq)	rWrqr?r�r�r�rr�r�r�s  rr�� StreamReaderWriterTest.test_copy�s{���%�%�e�C�j�$�+�+�t�{�{�K��
�
#�
#�I�/C�
D��I�I�a�L�E�
�
#�
#�I�/C�
D��M�M�!��E�
D�E�
D��
D�
D�s�B!�B2�!
B/�2
Cc��[[RS-5H�nURUS9 [R
"[
S5URUR5nUR[S5 [R"X!5 SSS5 SSS5 M� g!,(df   N=f!,(df   M�=f)NrUr�rrq)rVr�r�r�rWrqr?r�r�r�rr�r�s   rr��"StreamReaderWriterTest.test_pickle�s����6�2�2�Q�6�7�E����u��-��-�-�e�C�j�$�+�+�t�{�{�S���+�+�I�7K�L��L�L��*�M�.�-�8�M�L��.�-�s$�AB8�;B'�B8�'
B5�1B8�8
C	)r�r�Nr�rrrr�r��s��0��+rr�c��\rSrSrSrSrg)�EncodedFileTesti�c�\�[R"S5n[R"USS5nUR	UR5S5 [R"5n[R"USS5nUR
S5 UR	UR5S5 g)Nr�r�r�s\�
�r�ü��)r�r�rWrdr
rOrIr�rr��efs   r�
test_basic�EncodedFileTest.test_basic�s}���J�J�4�5��
�
�
��;��
8���������$;�<��J�J�L��
�
�
��7�I�
6��
������������w�/rrN)r*r+r,r-r�r/rrrr�r��s��0rr�)er��big5�	big5hkscs�charmap�cp037�cp1006�cp1026�cp1125�cp1140�cp1250�cp1251�cp1252�cp1253�cp1254�cp1255�cp1256�cp1257�cp1258�cp424�cp437�cp500�cp720�cp737�cp775�cp850�cp852�cp855�cp856�cp857�cp858�cp860�cp861�cp862�cp863�cp864�cp865�cp866�cp869�cp874�cp875�cp932�cp949�cp950�euc_jis_2004�euc_jisx0213�euc_jp�euc_kr�gb18030�gb2312�gbk�	hp_roman8�hzr��
iso2022_jp�iso2022_jp_1�iso2022_jp_2�iso2022_jp_2004�iso2022_jp_3�iso2022_jp_ext�
iso2022_kr�	iso8859_1�
iso8859_10�
iso8859_11�
iso8859_13�
iso8859_14�
iso8859_15�
iso8859_16�	iso8859_2�	iso8859_3�	iso8859_4�	iso8859_5�	iso8859_6�	iso8859_7�	iso8859_8�	iso8859_9�johab�koi8_r�koi8_t�koi8_u�kz1048�latin_1�mac_cyrillic�	mac_greek�mac_iceland�
mac_latin2�	mac_roman�mac_turkish�palmos�ptcp154r��raw_unicode_escape�	shift_jis�shift_jis_2004�shift_jisx0213�tis_620�unicode_escape�utf_16�	utf_16_be�	utf_16_le�utf_7�utf_8�mbcs_encode�mbcs�
oem_encode�oemr�c��\rSrSrSr\R\R"\	SLS5S55r
SrSrSr
S	rS
rSrg)�BasicUnicodeTestijc	�,^^�Sn[GH�n[R"U5RnUR	S5(aUS-
nOUS:XaSnUS:wa2URUR
SS5UR
SS55 [R"U5"U5upEURU[U5SU-5 [R"U5"U5upeURXaSU-5 U[;a�[S5n[R"U5"U5nSn	UHRn
URU
5 UR5nUR[!U5["L[!U55 X�-
n	MT [S5n[R$"U5"U5nS	n
U	H0n
UR[#U
/55 X�R5-
n
M2 URX�SU-5 U[;dGM�[R&"U5"5mSn	UHn
U	TR)U
5-
n	M U	TR)S	S
5-
n	[R*"U5"5mS	n
U	H!n
U
TR-[#U
/55-
n
M# U
TR-SS
5-
n
URX�SU-5 S	R/[R0"[R2"X5U55nURX�SU-5 S	R/[R0"[R2"S	U5U55nURUS	5 US;dGM_[R&"U5"S5mSR/U4S
jU55n	[R*"U5"S5mS	R/U4SjU	55n
URX�SU-5 GM� g![4a N�f=f![4a GMf=f)N�abc123�_codecr#r8r�-�encoding=%rrrrT�r�r8r�c3�F># �UHnTRU5v� M g7fr	�rk)r�r�rs  �rr��/BasicUnicodeTest.test_basics.<locals>.<genexpr>�s����0N�A�q�����1B�1B�A���!c3�Z># �UH nTR[U/55v� M" g7fr	�rYrw)r�r�rs  �rr�rE�s+����0H�9F�A�18���u�a�S�z�0J�0J�9F���(+)�all_unicode_encodingsrWrr7�endswithr
r�rArrF�broken_unicode_with_statefulr?r�rIrOr^�typerwrurjrkrXrYrzr{rr*)rrNr`r7r�rMrHr}r��
encodedresultr��chunkr��
decodedresultrrrs               @@r�test_basics�BasicUnicodeTest.test_basicsks������-�-�H��=�=��*�/�/�D�� � ��*�*��� ���Y�&� ���v�~�� � ��!1�!1�#�s�!;�!%���c�3�!7�9��)�)�(�3�A�6�I�Q����T�3�q�6�=�8�+C�D�"�-�-�h�7��:�M�U����U�}�x�'?�@��;�;��#�J���)�)�(�3�A�6�� #�
��A��L�L��O��F�F�H�E��O�O�D��K�5�$8�$�u�+�F�!�*�M�	�
�#�J���)�)�(�3�A�6�� "�
�&�A��G�G�E�1�#�J�'�!�[�[�]�2�M�'�� � ��=�8�3K�L��;�;�1�$�:�:�8�D�F�G�
%(�M���%�����):�:�
��!�W�^�^�B��%=�=�M�$�:�:�8�D�F�G�$&�M�*��%�����q�c�
�)C�C�
�+�!�W�^�^�C��%>�>�M��$�$�]�%2�X�%=�?� �W�W�V�%6�%6�"�-�-�a�:�H�&F�G�F��$�$�V�
��0H�I� �W�W�V�%6�%6�"�-�-�b�(�;�X�&G�H�F��$�$�V�R�0��#3�3�
C�"(�">�">�x�"H��"R��),���0N�A�0N�(N�
�"(�">�">�x�"H��"R��(*���0H�9F�0H�)H�
��(�(��)6��)A�C�W.��L#�����<'����s$�O4�+P�4
P�P�
P�PNzneed _testlimitedcapi modulec��^^�Sn[GHFnU[;dM[R"U5mSnUHnUTR	U5-
nM UTR	SS5-
n[R
"U5mSnUH!nUTR
[U/55-
nM# UTR
SS5-
nURXQSU-5 US;dM�[R"US5mSRU4SjU55n[R
"US5mSRU4S	jU55nURXQSU-5 GMI g![a N�f=f![a GMjf=f)
Nr>rrrTrArBr�c3�F># �UHnTRU5v� M g7fr	rD)r�r��cencoders  �rr��4BasicUnicodeTest.test_basics_capi.<locals>.<genexpr>�s����0O�Q������1C�1C�Q�rFc3�Z># �UH nTR[U/55v� M" g7fr	rH)r�r��cdecoders  �rr�rV�s+����0H�9F�A�19����q�c�
�0K�0K�9F�rI)rJrL�_testlimitedcapi�codec_incrementalencoderrk�codec_incrementaldecoderrYrwr
r*rz)rrNr`rNr�rPrXrUs      @@r�test_basics_capi�!BasicUnicodeTest.test_basics_capi�s���
��-�-�H��;�;�?�/�H�H��R�H�
%(�M���%�����);�;�
��!�X�_�_�R��%>�>�M�/�H�H��R�H�$&�M�*��%������s��)D�D�
�+�!�X�_�_�S�$�%?�?�M��$�$�]�%2�X�%=�?��#3�3�
C�#3�#L�#L�X�W_�#`��),���0O�Q�0O�(O�
�#3�#L�#L�X�W_�#`��(*���0H�9F�0H�)H�
��(�(��)6��)A�C�A.��
#�����('����s#�E�E'�
E$�#E$�'
E6�5E6c�X�SS-n[H�nUS:XaMU[;aM[R"U5"[R
"UR
U555n[S5H6nURSS5 UR5nURX5 M8 M� g)Nz%s
%s
)�Xabc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123�Xdef456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456r�r�r)rJrLrWrur�r�rkrV�seekrOr
)rrNr`r��tr�s      r�	test_seek�BasicUnicodeTest.test_seek�s����5�5��-�H��6�!���7�7���%�%�h�/��
�
�1�8�8�H�;M�0N�O�F��1�X�����A�q�!��{�{�}��� � ��)�	�
.rc��[HNn[R"U5nUR[U5 US;dM7UR[US5 MP g)N)r�r�r!)rJrWrFr�r)rr`rs   r�test_bad_decode_args�%BasicUnicodeTest.test_bad_decode_args�sG��-�H��'�'��1�G����i��1��3�3��!�!�)�W�b�9�	.rc�v�[H/n[R"U5nUR[U5 M1 gr	)rJrWrAr�r)rr`rs   r�test_bad_encode_args�%BasicUnicodeTest.test_bad_encode_args�s,��-�H��'�'��1�G����i��1�.rc�\�SSKJn [UR5nUR	X"5 g)Nr)r�)�	encodingsr�rM�encoding_tabler
)rr��
table_types   r�"test_encoding_map_type_initialized�3BasicUnicodeTest.test_encoding_map_type_initialized�s#��$��&�/�/�0�
�����0rc��Sn[HQnU[;dMURX!URU55 UR	X!URU55 MS g)Nr>)rJrLrgrkrl)rrar`s   rr*�#BasicUnicodeTest.test_decoder_state	sL����-�H��;�;��0�0��a�h�h�x�>P�Q��0�0��a�h�h�x�>P�Q�.rr)r*r+r,r-rQr�cpython_only�unittest�skipIfrYr\rcrfriror*r/rrrr<r<js\��NC�`
���
�_�_�%��-�/M�N�#C�O��#C�J
*�:�2�
1�Rrr<c�&�\rSrSrSrSrSrSrg)�CharmapTesti	c��UR[R"SSS5S5 UR[R"SSS5S5 UR[[RSSS5 UR[[RSSS5 UR[R"SS	S5S
5 UR[R"SS	S5S
5 UR[R"SSS5S5 UR[R"SSS5S5 UR[R"SS
S5S5 UR[R"SS
S5S5 [[
S55nUR[R"US
S5S[U545 g)N�rtr!�r!r��􏿿bc�r{r��abuab￾r��uab�r�r��zab\x02r�r��r}r�r:rr)r
rW�charmap_decoder�r�rwrVr�r�allbytess  r�test_decode_with_string_map�'CharmapTest.test_decode_with_string_map
	s�������!�!�/�8�U�C��	
�
	
����!�!�/�8�^�L��	
�
	
���,��!�!�?�H�d�	
�	
���,��!�!�?�H�j�	
�	
����!�!�/�9�d�C��	
�
	
����!�!�/�9�j�I��	
�
	
����!�!�/�3E�t�L��	
�
	
����!�!�/�3E�z�R��	
�
	
����!�!�/�8�T�B��	
�
	
����!�!�/�8�Z�H��	
�
��s��$������!�!�(�H�b�9�
��X���	
rc��UR[R"SSSSSS.5S5 UR[R"SSSS	S
S.5S5 UR[R"SSSSSS.5S
5 UR[R"SSSSSS.5S5 UR[[RSSSSS.5 UR[[RSSSSSS.5 UR[[RSSSSSS.5 UR[R"SSSSS.5S5 UR[R"SSSSSS.5S5 UR[R"SSSSSS.5S5 UR[R"SSSSS.5S5 UR[R"SSSSSS.5S5 UR[R"SSSSSS.5S5 UR[R"SSSSS.5S5 UR[R"SSSSSS.5S5 UR[R"SSSSSS.5S5 [[
S55nUR[R"US05S[U545 UR[S[RSSSS	SS.5 UR[S[RSSSS	SS.5 g)Nryrtr�r�r��rrUr rz�Aa�Bb�Cc)�AaBbCcr��􏿿r|rrr��rrUu￾r�r~r�rr�r:z.character mapping must be in range\(0x110000\)r����i�ɚ;)
r
rWr�r�r�rwrVrr�rr�s  r�test_decode_with_int2str_map�(CharmapTest.test_decode_with_int2str_mapD	st������!�!�/�8�&)�c�c�":�
<��	
�	
����!�!�/�8�&*�t��"=�
?��	
�	
����!�!�/�8�&2�s�s�"C�
E��	
�	
����!�!�/�8�&)�c�b�"9�
;��	
�	
���,��!�!�?�H�'*�s�#3�	
�
	
���,��!�!�?�H�'*�s�t�#<�	
�	
���,��!�!�?�H�'*�s�x�#@�	
�
	
����!�!�/�9�&)�c�"2�
4��	
�	
����!�!�/�9�&)�c�d�";�
=��	
�	
����!�!�/�9�&)�c�h�"?�
A��	
�	
����!�!�/�3E�&)�c�"2�
4��	
�	
����!�!�/�3E�&)�c�d�";�
=��	
�	
����!�!�/�3E�&)�c�h�"?�
A��	
�	
����!�!�/�8�&)�c�"2�
4��	
�	
����!�!�/�8�&)�c�d�";�
=��	
�	
����!�!�/�8�&)�c�h�"?�
A��	
���s��$������!�!�(�H�b�9�
��X���	
�
	
���y�>��!�!��X�3�4�B�'?�	
�	
���y�>��!�!��X�3�4�I�'F�	
rc
��[S5n[S5n[S5nUR[R"SSXUS.5S5 UR[R"SSSX#S.5S	5 UR[R"SS[R
X#S.5[
[R
5S
-S45 UR[[RSS[R
S-X#S.5 UR[[RSSXS
.5 UR[[RSSXSS.5 UR[R"SSXS
.5S5 UR[R"SSXSS.5S5 UR[R"SSXS
.5S5 UR[R"SSXSS.5S5 UR[R"SSXS
.5S5 UR[R"SSXSS.5S5 g)Nr�r�r�ryrtr�rzi��r|�bcr�rUr�i��r�r~r�rr�r�)
�ordr
rWr�r3�
maxunicode�chrr�rr�)rr�r�r�s    r�test_decode_with_int2int_map�(CharmapTest.test_decode_with_int2int_map�	s>����H����H����H������!�!�/�8�&'�!�"4�
6��	
�	
����!�!�/�8�&.�1�";�
=��	
�	
����!�!�/�8�&)�n�n��"A�
C�
����
 �4�
'��+�	
�	
���)��!�!�?�H�'*�~�~��'9�a�#F�	
�
	
���,��!�!�?�H�'(�<�	
�
	
���,��!�!�?�H�'(�6�#:�	
�
	
����!�!�/�9�&'�,�
0��	
�	
����!�!�/�9�&'�&�"9�
;��	
�	
����!�!�/�3E�&'�,�
0��	
�	
����!�!�/�3E�&'�&�"9�
;��	
�	
����!�!�/�8�&'�,�
0��	
�	
����!�!�/�8�&'�&�"9�
;��	
rrN)r*r+r,r-r�r�r�r/rrrrwrw	s��5
�nr
�hI
rrwc� �\rSrSrSrSrSrg)�WithStmtTesti
c�
�[R"S5n[R"USS5nUR	UR5S5 SSS5 UR
UR5 g!,(df   N*=f)Nr�rr�r�)r�r�rWrdr
rOr^�closedr�s   r�test_encodedfile�WithStmtTest.test_encodedfile
sX���J�J�{�#��
�
�
��9�g�
6�"����R�W�W�Y��0�7�������!�7�
6�s�!A4�4
Bc�(�[R"S5n[R"S5n[R"XR
URS5nURUR5S5 SSS5 g!,(df   g=f)Nr�r�rt�ü)	r�r�rWrrq�streamreader�streamwriterr
rO)rr�r<�srws    r�test_streamreaderwriter�$WithStmtTest.test_streamreaderwriter
sl���J�J�{�#���}�}�W�%��
�
&�
&�q�*;�*;�'+�'8�'8�(�D�GJ����S�X�X�Z��0�D�D�D�s�!B�
BrN)r*r+r,r-r�r�r/rrrr�r�
s��"�1rr�c� �\rSrSrSrSrSrg)�	TypesTesti
c��[R[R[R[R[R
[R[R[R[R[R[R[R/n[5(aUR[R5 UHnUR!["US5 M g)N�mbcs_decoder�)rWr�utf_8_decoder�r�rrrCrT�utf_32_ex_decode�latin_1_decode�ascii_decoder��hasattrr�r�r�r)r�decodersrs   r�test_decode_unicode�TypesTest.test_decode_unicode
s���
�������#�#��#�#��#�#�� � ��#�#��#�#��#�#��!�!�����!�!�

���6�=�)�)��O�O�F�.�.�/��G����i��%�8� rc��UR[R"S5S5 UR[R"S5S5 UR[R"S5S5 UR[R"S5S5 UR	[
[RS5 UR[R"SS5S5 UR[R"SS5S	5 UR	[
[RS5 UR[R"SS5S5 UR[R"SS5S	5 g)
Nz\u1234)uሴr�s\u1234�
\U00110000z
\U00110000r��r�r�r�)z(\x5c\x55\x30\x30\x31\x31\x30\x30\x30\x30r�)r
rW�unicode_escape_decode�raw_unicode_escape_decoder�r�rs r�test_unicode_escape�TypesTest.test_unicode_escape)
s%��	
����5�5�i�@�-�P�����5�5�j�A�=�Q�����9�9�)�D�m�T�����9�9�*�E�}�U����,�f�.J�.J�N�[�����5�5�m�Y�O�Q_�`�����5�5�m�EW�X�J�	L�	
���,�f�.N�.N�P^�_�����9�9�-��S�Uc�d�����9�9�-�I[�\�J�	LrrN)r*r+r,r-r�r�r/rrrr�r�
s
��9�*Lrr�c�L�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
Srg)
�UnicodeEscapeTesti<
zunicode-escapeNc��UR[R"S5S5 UR[R"S5S5 g�Nrrrr�rrr)r
rW�unicode_escape_encoder�rs rr�UnicodeEscapeTest.test_emptyA
s8������5�5�b�9�8�D�����5�5�c�:�G�Drc��[Rn[SS5H8nUS:wdMURU"[	U55[U/5S45 M: g)Nrs��\rU)rWr�rVr
r�rw�rrkr�s   r�test_raw_encode�!UnicodeEscapeTest.test_raw_encodeE
sF���-�-���r�3��A��H�}�� � ���A���%���*�a��A� rc��[Rn[S5H>nUS:wdMURU"[	U/5S-5[U5S-S45 M@ g)Nr:r�rS�0r )rWr�rVr
rwr�rTs   r�test_raw_decode�!UnicodeEscapeTest.test_raw_decodeK
sO���-�-���s��A��H�}�� � ���q�c�
�T�(9�!:�S��V�c�\�1�<M�N�rc��[Rn[X5nU"SS5 U"SS5 U"SS5 U"SS5 [S	5H7n[	U5S
;dMU"[	U5SU-R55 M9 [SS
5H&nU"[	U5SU-R55 M( U"SS5 U"SS5 g)N�	s\tr�s\nr�s\r�\s\\rsz	

r�r�r:�€�\u20ac�𝄠�
\U0001d120)rWr�rrVr�rk�rrkrr�s    r�test_escape_encode�$UnicodeEscapeTest.test_escape_encodeQ
s����-�-���t�,��
�d�F��
�d�F��
�d�F��
�d�F���r��A��1�v�X�%��c�!�f�y�1�}�4�4�6�7���s�C��A��#�a�&�9�q�=�0�0�2�3�!�
�h�
�#�
�l�N�+rc��[Rn[X5nU"SS5 U"SS5 U"SS5 U"SS5 U"S	S
5 U"SS5 U"S
S5 U"SS5 U"SS5 U"SS5 U"SS5 U"SS
5 U"SS5 U"SS5 U"SS5 U"SS5 U"S S!5 U"S"S5 U"S#S!5 U"S$S%5 U"S&S'5 g)(NrXr�rZz["]r[z[']r\z[\]r]z[]r^z[]r_z[	]r`z[
]raz[]rbz[]rcz[
]rdrez[8]rfz[!]rgz[!8]rhz[A]riz[A0]rjrkr�r�r�r�)rWr�rrls   r�test_escape_decode�$UnicodeEscapeTest.test_escape_decode`
s����-�-���t�,��
�i���
�h���
�h���
�h���
�h��!�
�h��!�
�h��!�
�h��!�
�h��!�
�h��!�
�h��!�
�h��!�
�i��#�
�i���
�j�&�!�
�j�%� �
�k�6�"�
�j�%� �
�k�6�"�
�j�(�#�
�n�l�+rc
�B�[Rn[X5n[SS5H�n[	U/5nUS;a:UR[SU-5 U"SU-S[U5-5 SSS5 UR5S;dMeUR[SUS-
-5 U"SUR5-S[US-
5-5 SSS5 M� UR[S	5 U"S
S5 SSS5 UR[5 U"SS
5 SSS5 UR[S5nU"SS5 SSS5 [SS5H:nUR[SU-5 U"SU-[U55 SSS5 M< UR[S5 URU"SS5S5 SSS5 UR[S5 URU"SS5S5 SSS5 g!,(df   GN�=f!,(df   GM=f!,(df   GN>=f!,(df   GN)=f!,(df   GN=f!,(df   GM=f!,(df   N�=f!,(df   g=f)Nrprqs	abfnrtuvxrrrRr�sUNrsrtruz\8rvz\9rwrxu\úr:r;ryrzr|r}r�)z\zrr~r)�Łr�)rWr�rrVrwr�r�r�r�r�r
r�s      r�test_decode_warnings�&UnicodeEscapeTest.test_decode_warningsy
sC���-�-���t�,���r�3��A��q�c�
�A���$��*�*�+=�9�A�=�?��%�!�)�T�C��F�]�3�?��w�w�y��%��*�*�+=�9�Q�r�T�B�D��%�!�'�'�)�+�T�C��"��I�-=�>�D�D� ��
"�
"�#5�0�2��&�%� �2��
�
�0�
1��&�%� �2�
�
"�
"�#5�3�5�8:��)�X�&�5��u�f�%�A��&�&�'9�;�a�?�A��g��k�3�q�6�*�A�A�&�
�
"�
"�#5�0�2����V�H�h�7��D�2��
"�
"�#5�8�:����V�J��9�=�I�:�:�/?�?��D�D��2�2��2�
1��5�5��A�A��2�2��:�:�s`�H�)*H#�5
H6�
I�
I�>I,�6I?�.J�
H 	�#
H3	�6
I�
I�
I)�,
I<	�?
J
�
Jc	�4�[RnSH�up#[U5H�nUR[USU-SU--5 UR[USU-SU--S-5 SU-SU--S-U-SU--nURU"US5S[
U545 URU"US	5S
[
U545 M� M� UR[US5 URU"SS5S5 URU"SS	5S
5 g)N))�xr ��ur��UrrRrS�[\�]�]\r�r�r��[�]�r��rrr�r�)rWr�rVr�r�r
r�rrYr�rcrbr�s      r�test_decode_errors�$UnicodeEscapeTest.test_decode_errors�
s���-�-��3�D�A��1�X���!�!�"4�f�"'�!�)�d�1�f�"4�6��!�!�"4�f�"(�1�*�t�A�v�"5��"<�>���z�D��F�*�V�3�a�7�$�q�&�@��� � ���h�!7�$��D�	�9J�K�� � ���i�!8�"2�C��I�!>�@��4�	
���,�f�n�E�������9�8�D������	�:�N�Krc�,�URS/SQ5 g)N�	

\ÿ￿𐀀) rrrrrrrr�	r��	
r��	

r��	

\r�r�r��	

\ÿr�r�r�r�r��
	

\ÿ￿r�r�r�r�r�r�r�r�r�r�rrs rr�UnicodeEscapeTest.test_partial�
r�rr)r*r+r,r-r`r�rr�r�r�r�r�r�rr/rrrr�r�<
s;���H���E�B�O�
,�,�2J�BL� %
rr�c�F�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
g)�RawUnicodeEscapeTesti�
zraw-unicode-escapeNc��UR[R"S5S5 UR[R"S5S5 gr�)r
rW�raw_unicode_escape_encoder�rs rr�RawUnicodeEscapeTest.test_empty�
s8������9�9�"�=�x�H�����9�9�#�>��Hrc��[Rn[S5H0nURU"[	U55[U/5S45 M2 g)Nr:rU)rWr�rVr
r�rwr�s   rr��$RawUnicodeEscapeTest.test_raw_encode�
s=���1�1���s��A����V�C��F�^�e�Q�C�j�!�_�=�rc��[Rn[S5H6nURU"[	U/5S-5[U5S-S45 M8 g)Nr:rSr�r )rWr�rVr
rwr�rTs   rr��$RawUnicodeEscapeTest.test_raw_decode�
sH���1�1���s��A����V�E�1�#�J��$5�6��Q��#��q�8I�J�rc���[Rn[X5n[S5H-nUS;dMU"S[	U5-S[U/5-5 M/ U"SS5 U"SS5 g)	Nr:�uUr�rRr�r�r�r�)rWr�rrVr�rwr�s    rr��'RawUnicodeEscapeTest.test_escape_encode�
s_���1�1���t�,���s��A���~��d�S��V�m�U�U�A�3�Z�%7�8��	�h�
�#�
�l�N�+rc���[Rn[X5n[S5H-nUS;dMU"S[	U/5-S[U5-5 M/ U"SS5 U"SS5 g)	Nr:r�rRr�r�r�r�r�)rWr�rrVrwr�)rrYrr�s    rr��'RawUnicodeEscapeTest.test_escape_decode�
s_���1�1���t�,���s��A���~��e�e�Q�C�j�(�$��Q��-�8��	�j�(�#�
�n�l�+rc	�4�[RnSH�up#[U5H�nUR[USU-SU--5 UR[USU-SU--S-5 SU-SU--S-U-SU--nURU"US5S[
U545 URU"US	5S
[
U545 M� M� UR[US5 URU"SS5S5 URU"SS	5S
5 g)N)r�r�rRrSr�r�r�r�r�r�r�r�r�r�)rWr�rVr�r�r
rr�s      rr��'RawUnicodeEscapeTest.test_decode_errors�
s���1�1��(�D�A��1�X���!�!�"4�f�"'�!�)�d�1�f�"4�6��!�!�"4�f�"(�1�*�t�A�v�"5��"<�>���z�D��F�*�V�3�a�7�$�q�&�@��� � ���h�!7�$��D�	�9J�K�� � ���i�!8�"2�C��I�!>�@��)�	
���,�f�n�E�������9�8�D������	�:�N�Krc�,�URS/SQ5 g)Nr�)rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrs rr�!RawUnicodeEscapeTest.test_partials�����.�
�	
rr)r*r+r,r-r`r�rr�r�r�r�r�rr/rrrr�r��
s3��#�H���I�>�
K�
,�,�L� 
rr�c��\rSrSrSrSrg)�EscapeEncodeTesti$c�h�/SQnUHCup#URUS9 UR[R"U5U5 SSS5 ME UR	[
[RS5 UR	[
[R[
S55 g!,(df   M�=f)N))rr)�foobar)rr�)s	spameggs)sspam\x00eggsr�)sa'b)sa\'br�)sb\c)sb\\cr�)sc
d)sc\ndr�)sd
e)sd\rer�)sfg)sf\x7fgr�r�r�r)r�r
rW�
escape_encoder�rrO)rr�r��outputs    rr��#EscapeEncodeTest.test_escape_encode&s���	
��"�L�D����4��(�� � ��!5�!5�d�!;�V�D�)�(�"�	
���)�V�%9�%9�6�B����)�V�%9�%9�9�W�;M�N�)�(�s�'B"�"
B1	rN)r*r+r,r-r�r/rrrrr$s��Orrc�,�\rSrSrSrSrSrSrSrg)�SurrogateEscapeTesti8c��URSRSS5S5 URSRSS5S5 URSRSS5S5 URSRSS5S5 g)N�foo�barr�r��	foo�bars�u	����r
rYrkrs r�	test_utf8�SurrogateEscapeTest.test_utf8:s�������-�-�g�7H�I�'�	)�����.�.�w�8I�J�&�	(�	
����/�/��9J�K�-�	/����-�4�4�W�>O�P�(�	*rc��URSRSS5S5 URSRSS5S5 g)Nr
r�r�rrrs rr��SurrogateEscapeTest.test_asciiFsD������-�-�g�7H�I�'�	)�����.�.�w�8I�J�&�	(rc��URSRSS5S5 URSRSS5S5 g)Nsfoo�barz
iso-8859-3r�u	foo�barrrs r�test_charmap� SurrogateEscapeTest.test_charmapMsD������-�-�l�<M�N�'�	)�����.�.�|�=N�O�&�	(rc�H�URSRSS5S5 g)Nu�����rr�s���r�rs r�test_latin1�SurrogateEscapeTest.test_latin1Ts$�����9�@�@��L]�^�0�	2rrN)	r*r+r,r-rr�rrr/rrrrr8s��
*�(�(�2rrc��\rSrSrSrSrg)�BomTestiZc��SnSnUR[R[R5 UGH�n[R
"[RSUS9nUR
U5 UR
U5 URS5 URUR5US-5 URS5 URUR5US-5 SSS5 [R
"[RSUS9nUR
US5 URUR5S5 URS5 UR
U5 URS5 URUR5U5 SSS5 [R
"[RSUS9nURR
US5 URURR5S5 URRS5 URR
U5 URS5 URUR5U5 SSS5 [R
"[RSUS9nUR
U5 URUR55 UR
U5 URS5 URUR5US-5 SSS5 [R
"[RSUS9nURR
U5 URRURR55 URR
U5 URS5 URUR5US-5 SSS5 GM� g!,(df   GN=f!,(df   GNo=f!,(df   GN�=f!,(df   GN=f!,(df   GM=f)N�
1234567890)rZr�r�r�r7rNr{rlrr )
rmrrnrorWrprIrar
rO�assertNotEqual�tellr�)rr�r�r`r�s     r�
test_seek0�BomTest.test_seek0[s�������	
���	�(�(�)�*:�*:�;��H����Y�-�-�t�h�G�1�����
�����
����q�	�� � �����4�!�8�4����q�	�� � �����4�!�8�4�
H����Y�-�-�t�h�G�1�����Q�� ��#�#�A�F�F�H�a�0����q�	�����
����q�	�� � �����4�0�
H����Y�-�-�t�h�G�1������t�A�w�'��#�#�A�H�H�M�M�O�Q�7����
�
�a� ������t�$����q�	�� � �����4�0�
H����Y�-�-�t�h�G�1�����
����q�v�v�x� �����
����q�	�� � �����4�!�8�4�H����Y�-�-�t�h�G�1������t�$����
�
�a�h�h�m�m�o�.������t�$����q�	�� � �����4�!�8�4�H�G�O�G�G��H�G��H�G��H�G��H�G�sA�BO2�BP�B0P�$A6P(�BP:�2
P	�
P	�
P%	�(
P7	�:
Q
	rN)r*r+r,r-r r/rrrrrZs��55rr)�base64_codec�uu_codec�quopri_codec�	hex_codecr��base_64�uu)�quopri�quoted_printable�quotedprintable�hex�rot13)r"r#r$r%�rot_13�
zlib_codecrv�zlib�	bz2_codec�bz2c��\rSrSrSrSrSrSrSrSr	Sr
S	r\R"\S
5S5rSrS
rSrSrSrg)�TransformCodecTesti�c��[[S55n[H�nURUS9 [R
"U5"U5up4UR
U[U55 [R"U5"U5upTUR
U[U55 UR
XQ5 SSS5 M� g!,(df   M�=f)Nr:rl)	rwrV�bytes_transform_encodingsr�rWrAr
rrF)r�binputr`�orMrbs      rrQ�TransformCodecTest.test_basics�s����u�S�z�"��1�H����x��0�"�-�-�h�7��?�	��� � ��s�6�{�3�"�-�-�h�7��:�	��� � ��s�1�v�.�� � ��+�
1�0�2�0�0�s�BB>�>
C
	c�D�[H�nURUS9 [R"SU5n[R"U5"[
R"U55nUR5nURUS5 SSS5 M� g!,(df   M�=f�Nrlr�)	r5r�rWrkrur�r�rOr
�rr`�sinr��souts     r�	test_read�TransformCodecTest.test_read�sq��1�H����x��0��m�m�G�X�6���)�)�(�3�B�J�J�s�O�D���{�{�}��� � ��w�/�	1�0�2�0�0���A*B�
B	c�D�[H�nURUS9 [R"SU5n[R"U5"[
R"U55nUR5nURUS5 SSS5 M� g!,(df   M�=fr:)	r5r�rWrkrur�r�r�r
r;s     rr�� TransformCodecTest.test_readline�sr��1�H����x��0��m�m�G�X�6���)�)�(�3�B�J�J�s�O�D�����(��� � ��w�/�	1�0�2�0�0�r@c��Sn[H�nURUS9 Un[U5n[R"X25n[R"XB5nURXS5 [U5n[R"X25nURX15 [R"XB5nURXc5 SSS5 M� g!,(df   M�=f)Ns12345�rl)r5r��
memoryviewrWrkr
rY)r�originalr`r��view�view_encoded�view_decodeds       r�test_buffer_api_usage�(TransformCodecTest.test_buffer_api_usage�s��� ��1�H����x��0���!�$�'���}�}�T�4��%�}�}�T�<��� � ��4�!�$�'���}�}�T�4��� � ��0�%�}�}�T�<��� � ��4�1�0�2�0�0�s�B$C�
C	c�h�Sn[H�nURUS9 SnURU5nUR[U5nURU5 SSS5 UR
WRR5 SSS5 M� g!,(df   N@=f!,(df   M�=f)Nzbad input typerlzM{!r} is not a text encoding; use codecs.encode\(\) to handle arbitrary codecs)	r5r��formatr�r*rk�assertIsNoner}�	__cause__)r�	bad_inputr`�fmtr��failures      r�/test_text_to_binary_denylists_binary_transforms�BTransformCodecTest.test_text_to_binary_denylists_binary_transforms�s���$�	�1�H����x��0�K���j�j��*���+�+�K��=���$�$�X�.�>��!�!�'�"3�"3�"=�"=�>�
1�0�2�
>�=��	1�0�s#�*B"�B�-B"�
B�B"�"
B1	c��SnUR[U5 SRS5 SSS5 g!,(df   g=f)NzR^'rot_13' is not a text encoding; use codecs.encode\(\) to handle arbitrary codecszjust an example messager-)r�r*rk�rr�s  r�-test_text_to_binary_denylists_text_transforms�@TransformCodecTest.test_text_to_binary_denylists_text_transforms�s4��C��
�
#�
#�K��
5�%�,�,�X�6�6�
5�
5�s	�4�
Ac���Sn[H�nURUS9 [R"X5nSnUR	U5nUR[U5 URU5 SSS5 UR[U5 [U5RU5 SSS5 SSS5 M� g!,(df   NT=f!,(df   N,=f!,(df   M�=f)Ns6encode first to ensure we meet any format restrictionsrlzM{!r} is not a text encoding; use codecs.decode\(\) to handle arbitrary codecs)	r5r�rWrkrLr�r*rYrO)rr�r`�encoded_datarPr�s      r�/test_binary_to_text_denylists_binary_transforms�BTransformCodecTest.test_binary_to_text_denylists_binary_transforms�s���I��1�H����x��0�%�}�}�T�<��K���j�j��*���+�+�K��=� �'�'��1�>��+�+�K��=��l�+�2�2�8�<�>�1�0�2�>�=��=�=��1�0�s<�AC�B;�-C�C�&C�;
C	�C�
C�C�
C,	c�P�S[S54HrnURUS9 SnUR[U5nUR	S5 SSS5 URWRR5 SSS5 Mt g!,(df   N@=f!,(df   M�=f)Ns	immutablesmutable)rOzR^'rot_13' is not a text encoding; use codecs.decode\(\) to handle arbitrary codecsr-)rOr�r�r*rYrMr}rN)rrOr�rQs    r�-test_binary_to_text_denylists_text_transforms�@TransformCodecTest.test_binary_to_text_denylists_text_transformss���&�	�*�(=�>�I����	��2�K���+�+�K��=���$�$�X�.�>��!�!�'�"3�"3�"=�"=�>�3�2�?�>�=��3�2�s"�B�B�-B�
B�B�
B%	zRequires zlib supportc��SnUR[R5n[R"SS5 SSS5 URUWRRS5 g!,(df   N8=f)Nz'decoding with 'zlib_codec' codec failed�hellor.r)r�r/�errorrWrYr
r}�	__notes__)rr�rQs   r�test_custom_zlib_error_is_noted�2TransformCodecTest.test_custom_zlib_error_is_noted
sZ��8��
�
�
�t�z�z�
*�g��M�M�(�L�1�+�����g�/�/�9�9�!�<�=�+�
*���A,�,
A:c��SSKnSnURUR5n[R"SS5 SSS5 URUWRRS5 g!,(df   N8=f)Nrz&decoding with 'hex_codec' codec failedr`r%)�binasciir��ErrorrWrYr
r}rb)rrgr�rQs    r�test_custom_hex_error_is_noted�1TransformCodecTest.test_custom_hex_error_is_noteds[���6��
�
�
�x�~�~�
.�'��M�M�(�K�0�/�����g�/�/�9�9�!�<�=�/�
.�rec�H�[R5Hxup[R"U5RnUHMnURUS9 [R"U5nUR
URU5 SSS5 MO Mz g!,(df   Me=f)N)�alias)�transform_aliases�itemsrWrr7r�r
)r�
codec_name�aliases�
expected_namerlr<s      r�test_aliases�TransformCodecTest.test_aliasessw��#4�#:�#:�#<��J�"�M�M�*�5�:�:�M� ���\�\��\�.�!�=�=��/�D��$�$�T�Y�Y�
�>�/�.�!�$=�/�.�s�3B�
B!c��[R"SS5nURUS5 SnUR[R"US5U5 g)Nsspace tab	eol 
zquopri-codecsspace=20tab=09eol=20
sspace tab eol
)rWrkr
rY)rr��	unescapeds   r�test_quopri_stateless�(TransformCodecTest.test_quopri_stateless&sD���-�-� 4�n�E������";�<�&�	�������y�.�A�9�Mrc�P�UR[[RSS5 g)Nrzuu-codec)r�rzrWrYrs r�test_uu_invalid�"TransformCodecTest.test_uu_invalid.s�����*�f�m�m�S�*�ErrN)r*r+r,r-rQr>r�rIrRrVrZr]rt�
skipUnlessr/rcrirrrvryr/rrrr3r3�sb��	,�0�0�5�$
?�7�
=�?�����6�7�>�8�>�>�?�N�Frr3c�,�[RU5$r	)�_TEST_CODECS�get)ros r�_get_test_codecr:s�����J�'�'rc��\rSrSrSrSrSr\RS5r	Sr
\4SjrSr
S	rS
rSrSrS
rSrSrSrSrSrSrg)�ExceptionNotesTesti>c��SUl[R"[5 UR	[R
[5 [Ulg)N�exception_notes_test)rorWr-rrmr5�RuntimeError�obj_to_raisers rr��ExceptionNotesTest.setUp@s3��0�������(�����)�)�?�;�)��rc��[RURS5 [RRURS5 gr	)r}�poprorl�_cachers r�tearDown�ExceptionNotesTest.tearDownNs0��������$�/������T�_�_�d�3rc�h�[R"XURS9nU[UR'g)N)r7)rWrWror})rrkrYr�s    r�	set_codec�ExceptionNotesTest.set_codecSs)���%�%�f�+/�?�?�<�
�(2��T�_�_�%rc#�:# �SRXR5nURU5nUv� SSS5 URUWRR
S5 URR
R
5 g!,(df   N\=f7f)Nz{} with {!r} codec failedr)rLror�r{r}rb�clear)r�	operation�exc_typer��full_msg�caughts      r�assertNoted�ExceptionNotesTest.assertNotedXsu���/�6�6��_�_�.��
�
�
�x�
(�F��L�)��
�
�h�� 0� 0� :� :�1� =�>����"�"�(�(�*�)�
(�s�-B�B
�AB�

B�Bc��URer	)r�)r�args�kwdss   r�	raise_obj�ExceptionNotesTest.raise_objas�����rc��XlURURUR5 URSX25 SR	UR
5 SSS5 URSX25 [R"SUR
5 SSS5 URSX25 SRUR
5 SSS5 URSX25 [R"SUR
5 SSS5 g!,(df   N�=f!,(df   N�=f!,(df   Nm=f!,(df   g=f)Nr`�	str_input�decoding�bytes input)r�r�r�r�rkrorWrY)rr�r�r�s    r�
check_note�ExceptionNotesTest.check_notees���(�����t�~�~�t�~�~�6�
�
�
�j�(�
8����t���/�9�
�
�
�j�(�
8��M�M�+�t���7�9�
�
�
�j�(�
8��!�!�$�/�/�2�9�
�
�
�j�(�
8��M�M�.�$�/�/�:�9�
8�
9�
8��
8�
8��
8�
8��
8�
8�s/�D�5"D#�1D4�'"E�
D �#
D1�4
E�
Ec�0�UR[S5 g)Nrr�r�r�rs r�test_raise_by_type�%ExceptionNotesTest.test_raise_by_typeqs������b�)rc�>�SnUR[U5U5 g)N�This should be notedr�rUs  r�test_raise_by_value�&ExceptionNotesTest.test_raise_by_valuets��$������S�)�3�/rc�V�Sn"SS[5nURU"U5X5 g)Nr�c��\rSrSrSrSrg)�TExceptionNotesTest.test_raise_grandchild_subclass_exact_size.<locals>.MyRuntimeErrorizrN)r*r+r,r-�	__slots__r/rrr�MyRuntimeErrorr�zs���Irr��r�r��rr�r�s   r�)test_raise_grandchild_subclass_exact_size�<ExceptionNotesTest.test_raise_grandchild_subclass_exact_sizexs&��$��	�\�	�����s�+�S�Arc�V�Sn"SS[5nURU"U5X5 g)Nr�c��\rSrSrSrg)�SExceptionNotesTest.test_raise_subclass_with_weakref_support.<locals>.MyRuntimeErrori�rN)r*r+r,r-r/rrrr�r��s��rr�r�r�s   r�(test_raise_subclass_with_weakref_support�;ExceptionNotesTest.test_raise_subclass_with_weakref_support~s&��$��	�\�	�����s�+�S�Arc�F�"SS[5nURUS5 g)Nc��\rSrSrSrSrg)�9ExceptionNotesTest.test_init_override.<locals>.CustomIniti�c��gr	rrs rrE�BExceptionNotesTest.test_init_override.<locals>.CustomInit.__init__�s��rrN)r*r+r,r-rEr/rrr�
CustomInitr��s��
rr�rrr�)rr�s  r�test_init_override�%ExceptionNotesTest.test_init_override�s��	��	�	
���
�B�'rc�F�"SS[5nURUS5 g)Nc�(^�\rSrSrU4SjrSrU=r$)�7ExceptionNotesTest.test_new_override.<locals>.CustomNewi�c�">�[TU]U5$r	)r��__new__)�clsr�s �rr��?ExceptionNotesTest.test_new_override.<locals>.CustomNew.__new__�s����w��s�+�+rr)r*r+r,r-r�r/r�r�s@r�	CustomNewr��s
���
,�
,rr�rrr�)rr�s  r�test_new_override�$ExceptionNotesTest.test_new_override�s��	,��	,�	
���	�2�&rc�n�Sn[U5nSUlURUSRU55 g)Nr�rUz^{}$)r��attrr�rL)rr�r�s   r�test_instance_attribute�*ExceptionNotesTest.test_instance_attribute�s/��$���3����������V�]�]�3�/�0rc�:�UR[S5S5 g)NrU�1r�rs r�test_non_str_arg�#ExceptionNotesTest.test_non_str_arg�s������Q���-rc�B�SnUR[SSS5U5 g)Nz^\('a', 'b', 'c'\)$r�r�r�r�)r�msg_res  r�test_multiple_args�%ExceptionNotesTest.test_multiple_args�s��'������S�#�s�3�V�<rc��SRUR5nUR[U5 SR	UR5 SSS5 UR[U5 [
R"SUR5 SSS5 UR[U5 SR
UR5 SSS5 UR[U5 [
R"SUR5 SSS5 g!,(df   N�=f!,(df   N�=f!,(df   Nq=f!,(df   g=f)Nz^unknown encoding: {}$z	str inputr�)rLror�r*rkrWrYrUs  r�test_codec_lookup_failure�,ExceptionNotesTest.test_codec_lookup_failure�s���&�-�-�d�o�o�>��
�
#�
#�K��
5����t���/�6�
�
#�
#�K��
5��M�M�+�t���7�6�
�
#�
#�K��
5��!�!�$�/�/�2�6�
�
#�
#�K��
5��M�M�.�$�/�/�:�6�
5�
6�
5��
5�
5��
5�
5��
5�
5�s/�D�,"D"�,D3�&"E�
D�"
D0�3
E�
Ec��SnSnURX5 [R"SUR5nUR	US5 [R
"SUR5nUR	US5 SnUR
UR5nUR[U5 SRUR5 SSS5 SnUR
UR5nUR[U5 SRUR5 SSS5 g!,(df   Nf=f!,(df   g=f)	Nc��g)N)�
not bytes!rr�r�r�s  r�
encode_to_str�PExceptionNotesTest.test_unflagged_non_text_codec_handling.<locals>.encode_to_str�s��"rc��g)N)�not str!rrr�s  r�decode_to_bytes�RExceptionNotesTest.test_unflagged_non_text_codec_handling.<locals>.decode_to_bytes�s��!rr�r�zd^{!r} encoder returned 'str' instead of 'bytes'; use codecs.encode\(\) to encode to arbitrary types$r�zd^{!r} decoder returned 'bytes' instead of 'str'; use codecs.decode\(\) to decode to arbitrary types$r�)	r�rWrkror
rYrLr�r)rr�r�r��decodedrPr�s       r�&test_unflagged_non_text_codec_handling�9ExceptionNotesTest.test_unflagged_non_text_codec_handling�s���	#�	"����}�6��-�-��d�o�o�6������,�/��-�-��d�o�o�6������+�.�F���j�j����)��
�
#�
#�I�s�
3����t���/�4�F���j�j����)��
�
#�
#�I�s�
3��!�!�$�/�/�2�4�
3�4�
3��
4�
3�s�1D-�D>�-
D;�>
E)ror�N)r*r+r,r-r�r�r��
contextlib�contextmanagerr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r/rrrr�r�>st��)�4�
3�
���+��+� �6B�
;�*�0�B�B�(�'�1�.�=�
	;�3rr��win32z"code pages are specific to Windowsc��\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
SrS
r\R""SSSS9S5r\R""SSSS9S5rSrg)�CodePageTesti���c�4�UR[[RSS5 UR[[RSS5 UR[
[RSS5 UR[
[RSS5 g)Nrr��arq)r�rzrW�code_page_encode�code_page_decode�OSErrorrs r�test_invalid_code_page�#CodePageTest.test_invalid_code_page�sj�����*�f�&=�&=�r�3�G����*�f�&=�&=�r�4�H����'�6�#:�#:�C��E����'�6�#:�#:�C��Frc	�
�UR[S[RSS5 UR[S[R
SSSS5 UR[S[R
URSSS5 g)	Nr���ÿs�rtT�cp65001r#)r�r�rWr�r�r��CP_UTF8rs r�test_code_page_name� CodePageTest.test_code_page_name�sp�����1�7��#�#�S�&�	2����1�7��#�#�S�+�x��	G����1�9��#�#�T�\�\�7�H�d�	Lrc���UH�up4nUbz[R"XUS5nUR	WSUU<SU<SU<S	US<S
U<3	5 URUSS5 UR
US[U55 M�UR[[RXUS5 M� g![a+nURSU<SU<SU<SU<35 SnAN�SnAff=f)NTzUnable to decode z	 from "cp�" with errors=�: rz.decode("cp�", �)=� != rU)	rWr�r��failr
�assertGreaterEqual�assertLessEqualrr�)rr9r�r�r�r�r��errs        r�check_decode�CodePageTest.check_decode�s���%*�!�C���#�H�$�5�5�b�v�t�L�G�� � ����X��B����
�H�>�?��'�'���
�A�6��$�$�W�Q�Z��S��:��!�!�"4��+�+�R�f�d�D�&+��*�H��I�I�14�b�&�#�G�H�H��H�s�B2�2
C'�<!C"�"C'c��UH�up4nUbd[R"XU5nUR	WSUU<SU<SU<SUS<S	U<3	5 UR	US
[U55 MmUR
[[RXU5 M� g![a+nURSU<SU<SU<SU<35 SnAN�SnAff=f)NzUnable to encode z to "cpr�r�rz.encode("cpr�r�r�rU)rWr�r�rr
rr�)rr9r��textr�r�r�rs        r�check_encode�CodePageTest.check_encode�s���&+�"�D�(��#�I�$�5�5�b��G�G�� � ����X��R�����X�?�@�� � ����S��Y�7��!�!�"4��+�+�R�v�?�',��*�I��I�I�15�r�6�3�H�I�I��I�s�B�
C�%!C�Cc�L�URSS5 URSS5 g)Nr�)�r!rtr�)�d騾rt����)r�rtN)r)r�rY)r)r�s[y])u[€]r�s[?])r)r�s[\xff])r)r�s)[\N{LATIN SMALL LETTER Y WITH DIAERESIS}])r)r�s[&#255;])u�rtN)�[�]r�r$)rr�N)�r�rtr!)r
rtr)r$rtN)r$r�r�)r$r�u[�])r$r�z[\xff])r$r�r)r$r�N)��abcrtN)rr�zabc)rr�u�abc)rr�z\x81abc�rrrs r�
test_cp932�CodePageTest.test_cp932�s.�����#� 
�	� 	
���#� 
�	rc�L�URSS5 URSS5 g)Ni�)r)�é€rt��)r�rtr#)r�rtN)r�r�r)r�r��L)��r���)rr�N)r)rrtr)r#rtr�rrs r�test_cp1252�CodePageTest.test_cp1252
s.�����$�
!
�
	�	
���$�!
�	rc�P�SnURUS5 URUS5 g)N��)r)rrt�+AOkgrA-)r�rt�+2//f/w-)r�rt�+3IA-)r�rt�+//0-)r)rrtr)rrtr�)r rtr�)r!rtr�)s[+/]rtr�)r$rtr)r�rr9s  r�test_cp_utf7�CodePageTest.test_cp_utf7/
s3��
�����"�
�	�	
���"�	
�		rc��URSS5 URURS5 URURS5 g)Nr�))���r��騾)r&r�u�騾))��􏿿r�r�)r(r�u�􏿿))�	[􏿿�]r�s[􏿿])r)r�s[􏿿?])rr�rrs r�test_multibyte_encoding�$CodePageTest.test_multibyte_encodingC
sM�����#� 
�	�	
���$�,�,�)
�	�	
���$�,�,�)
�	rc��[R(a[RR	S5 SSSSSS/[SS	5QS
P7Hen[
U5(a-UR[R"US5SS
U35 M@[R(dMW[SU35 Mg UR[R"SS5S5 g)Nr�i,�i-�i.�i1�i3�i5�i��i��rr�rzr9z  skipping cp=r!)u	r�)r�verboser3�stdoutrIrVr=r
rWr��printr"s  r�test_code_page_decode_flags�(CodePageTest.test_code_page_decode_flagsQ
s����?�?��J�J���T�"��%���u�e�2��%��)�2�+0�2�B�$�B�'�'�� � ��!8�!8��V�!D�j�TV�WY�VZ�R[�\��?�?�?��N�2�$�/�0�2�	
����0�0��V�<�2�	4rc�\�[R"SSSS5nURUS5 [R"SSSS5nURUS5 [R"SSSS5nURUS	5 [R"SS
SS5nURUS5 g)Nr���rtFr�s��)r'r s��)u騾騾rr�rz)rWr�r
)rr�s  r�test_incremental�CodePageTest.test_incrementald
s����)�)�#�w��%�H������'�*��)�)�#�*9�8�*/�1��	
����-�0��)�)�#�*=�x�*/�1��	
����"5�6��)�)�#�*0�(�*/�1��	
����*�-rc�:�SnSU3n[R"SUS9 [R"U5nUR	UR
S5 [R"U5 SSS5 g![R"U5 f=f!,(df   g=f)Ni��r9z_winapi.GetACP)�return_valuer8)rr�rWrr
r7r5)r�	code_pager7�codecs    r�test_mbcs_alias�CodePageTest.test_mbcs_aliasw
s~���	��I�;���
�Z�Z�(�y�
A�
(��
�
�d�+��� � ����V�4��!�!�$�'�B�
A��
�!�!�$�'��B�
A�s"�B�2A1�B�1B	�	B�
Blr�F)rM�memuse�dry_runc�n�SUS-S-
-S-nUR[U5US-5 [R"SUSS5nURUS[U55 AUR[US	5US5 URUS	SS
S5 URUS	SSS
5 g)Ns01234567r�rUs
��������r r�r�Trr��
0123456701i��u(6701234567�����������r
rrWr��rrMr�r�s    r�test_large_input�CodePageTest.test_large_input�
s���
�4��7�A�+�.�>�?������W��t�A�v�.��)�)�#�w�8I�4�P��������S��\�2������W�Q�Z��'�!�*�5�������C�R��,�7�������C�D�)�:�	;rr�c�b�SUS--nUR[U5US-S-5 [R"SUSS5nURUS[U55 AUR[US5U5 URUSSSS	5 URUSS
SS5 g)Ns
0123456턀r�r�r�r�TrUru0123456턀01i����u56턀0123456턀r@rAs    r�test_large_utf8_input�"CodePageTest.test_large_utf8_input�
s���
*�T�1�W�5������W��t�q�y�2�~�6��)�)�%��(�D�I��������S��\�2������W�Q�Z��$�/�������C�R��*;�<�������C�D�)�+B�CrrN)r*r+r,r-r�r�r�rrrrr#r*r0r4r:r�
bigmemtestrBrEr/rrrr�r��s����G�G�L�D�$?� �B�$�(�4�&.�&
(�
���U�1�e�<�;�=�;�"
���U�1�e�<�D�=�Drr�c�2�\rSrSrSrSrSrSrSrSr	g)	�	ASCIITesti�
c�F�URSRS5S5 g)Nr>r�sabc123r�rs rr��ASCIITest.test_encode�
s���������1�9�=rc��SHAupnURXUS9 URURSU5U5 SSS5 MC g!,(df   MU=f)N))�	[€ÿ€]r�rY)rMr�s[???])rMr�s[&#128;&#255;&#8364;])u
[€ÿ€򫳞]r�s[\x80\xff\u20ac\U000abcde]�r�r�r�r�r��r�r
rkr�s    r�test_encode_error�ASCIITest.test_encode_error�
s^��.
�)�D�����4�'/��1�� � ����W�m�!D�!)�+�1�1�.
�1�1���#A	�	
A	c��UR[5 SRSS5 SSS5 g!,(df   g=f)Nu�ÿr�r��r�r�rkrs r�!test_encode_surrogateescape_error�+ASCIITest.test_encode_surrogateescape_error�
s.��
�
�
�1�
2�����):�;�3�
2�
2��	�2�
Ac�F�URSRS5S5 g)Nr�r�r!)r
rYrs rr��ASCIITest.test_decode�
s��������w�/��7rc��SHAupnURXUS9 URURSU5U5 SSS5 MC g!,(df   MU=f)Nr�r�r�rr�s    rr��ASCIITest.test_decode_error�
s^��.
�)�D�����4�'/��1�� � ����W�m�!D�!)�+�1�1�
.
�1�1�rRrN)
r*r+r,r-r�rPrUr�r�r/rrrrIrI�
s��>�+�<�
8�
+rrIc�,�\rSrSrSrSrSrSrSrg)�
Latin1Testi�
c��SH>upURXS9 URURS5U5 SSS5 M@ g!,(df   MR=f)N))r!r�)u€éÿs��r�r�r�rO�rr�r�s   rr��Latin1Test.test_encode�
�J��
�N�D����4��;�� � ����X�!6��A�<�;�	
�<�;���"A�
A	c��SHAupnURXUS9 URURSU5U5 SSS5 MC g!,(df   MU=f)N))�[€�]r�rY)rer�s[??])u	[€򫳞]r�s[\u20ac\U000abcde])rer�s[&#8364;&#56448;]rNr�r�rOr�s    r�test_encode_errors�Latin1Test.test_encode_errors�
s^��.
�)�D�����4�'/��1�� � ����X�}�!E�!)�+�1�1�.
�1�1�rRc��UR[5 SRSS5 SSS5 g!,(df   g=f)Nu�€r�r�rTrs rrU�,Latin1Test.test_encode_surrogateescape_error�
s.��
�
�
�1�
2��!�!�(�,=�>�3�
2�
2�rWc��SH>upURXS9 URURS5U5 SSS5 M@ g!,(df   MR=f)N))r�r!)r�u[€ÿ]r_r�rr`s   rr��Latin1Test.test_decode�
rbrcrN)	r*r+r,r-r�rfrUr�r/rrrr]r]�
s��B�+�?�
Brr]c�8�\rSrSrSrSrSrSrSrSr	Sr
g	)
�StreamRecoderTesti�
c�z�[R"5n[R"S5n[R"XR
UR[RR[RR5nURSS/5 URUR5S5 g)Nr�r��bsab)r�r�rWrrrrkrYrlr�r[r\�
writelinesr
r�r�bior9�srs    r�test_writelines�!StreamRecoderTest.test_writelines�
sw���j�j�l���
�
�g�&��
�
!�
!�#�|�|�U�\�\�"+�/�/�">�">�	���@\�@\�^��
�
�
�t�T�l�#���������/rc��[R"5n[R"S5n[R"XR
UR[RR[RR5nSnURURS55 URUR5URS55 g)Nr�uàñér�)r�r�rWrrrrkrYrlr6r[r\rIr
r)rrrr9rsrs     r�
test_write�StreamRecoderTest.test_write�
s����j�j�l���
�
�h�'��
�
!�
!�#�|�|�U�\�\�"+�/�/�">�">�	���@\�@\�^����
������X�&�'�����������W�)=�>rc���[R"SRS55n[R"USS5nURUR
5S5 URS5 URUR
5S5 URUR
5S5 URUR
5S5 URUR
5S5 g)	Nzline1
line2
line3
r�r�sline1
rsline2
sline3
r)r�r�rkrWrdr
r�ra�rrrrss   r�test_seeking_read�#StreamRecoderTest.test_seeking_reads����j�j�0�7�7��D�E��
�
�
��W�k�
:���������
�3�
����
��������
�3��������
�3��������
�3���������,rc���[R"SRS55n[R"USS5nURS5 UR
S5 URUR5S5 URS5 URUR5S5 URUR5S	5 URUR5S5 g)
Nz
123456789
r�r�r s
abc
s789
rs1
sabc
)	r�r�rkrWrdrarIr
r�rzs   r�test_seeking_write�$StreamRecoderTest.test_seeking_writes����j�j��-�-�k�:�;��
�
�
��W�k�
:��	����
�
�������������1�
����
���������/���������1���������1rc�,�[R"5n[R"S5n[R"XR
UR[RR[RR5nUR[S5 [R"U5 SSS5 UR[S5 [R"U5 SSS5 g!,(df   ND=f!,(df   g=f)Nr�rr)r�r�rWrrrrkrYrlr�r[r\r�rr�r�rqs    rr��StreamRecoderTest.test_copys����j�j�l���
�
�g�&��
�
!�
!�#�|�|�U�\�\�"+�/�/�">�">�	���@\�@\�^���
#�
#�I��
?��I�I�b�M�@�
�
#�
#�I��
?��M�M�"��@�
?�@�
?��
?�
?�s�C4�D�4
D�
Dc�&�[S5n[R"S5n[R"XRUR
[RR[RR5n[[RS-5HPnURUS9 UR[S5 [R "X45 SSS5 SSS5 MR g!,(df   N=f!,(df   Mu=f)Nrr�rUr�rr)r?rWrrrrkrYrlr�r[r\rVr�r�r�r�rr�)rr}r9rsr�s     rr��StreamRecoderTest.test_pickle(s����#�J���
�
�g�&��
�
!�
!�!�\�\�5�<�<�"+�/�/�">�">�	���@\�@\�^���6�2�2�Q�6�7�E����u��-��+�+�I��G��L�L��+�H�.�-�8�G�G��.�-�s$�-D�C0�D�0
C>�:D�
D	rN)r*r+r,r-rtrwr{r~r�r�r/rrrrmrm�
s ��0�	?�	-�2�	�	,rrmzneed _testinternalcapi modulec��\rSrSr\R
"5rSrSrSr	SSjr
SrSrSr
S	rS
rSSjrSrS
rSrSrSrSrg)�LocaleCodecTesti4)r�uulatin1:§éuu255:ÿu
UCS:é€􏿿usurrogates:��)s
blatin1:��sb255:�u��c�2�[R"USU5$rL)�_testinternalcapi�EncodeLocaleEx)rrr�s   rrk�LocaleCodecTest.encodeAs�� �/�/��a��@�@rc	���URHZnURUS9 URURU5nURX!5nUR	XC5 SSS5 M\ g![
ak UR
[5nURX!5 SSS5 O!,(df   O=f[WR5nURUS5 N�f=f!,(df   M�=f)N)rz!encode error: pos=[0-9]+, reason=)�STRINGSr�rk�ENCODINGr
r�r�r�r|r}�assertRegex)rr�rr�r�r�errmsgs       r�check_encode_strings�$LocaleCodecTest.check_encode_stringsDs����L�L�D����4��(�	8�#�{�{�4�=�=�&�A�H�#�k�k�$�7�G��$�$�W�7�)�(�!��*�S��*�*�<�8�B����D�1�9�8�8�� ����.�F��$�$�V�-Q�R�	S��)�(�sE�C$�A,�"C$�,C!�B&	�	C!�&
B4
�0.C!�C$� C!�!C$�$
C3	c�&�URS5 g�Nrt�r�rs r�test_encode_strict�"LocaleCodecTest.test_encode_strictR����!�!�(�+rc�&�URS5 g�Nr�r�rs r�test_encode_surrogateescape�+LocaleCodecTest.test_encode_surrogateescapeU����!�!�"3�4rc���URSS5 URS5 g![a9n[U5S:Xa$URUR<S35 SnANOeSnAff=f)Nrrr��unsupported error handlerz4 encoder doesn't support surrogatepass error handler)rkrzr|�skipTestr�r��rr�s  r�test_encode_surrogatepass�)LocaleCodecTest.test_encode_surrogatepassXsm��	��K�K��O�,�	
�!�!�/�2���	��3�x�6�6��
�
���� 1�2<�=�>�>���	���&�
A)�.A$�#A$�$A)c���UR[5nURSS5 SSS5 UR[	WR
5S5 g!,(df   N4=f)Nrrr�r�)r�rzrkr
r|r}�rrs  r�%test_encode_unsupported_error_handler�5LocaleCodecTest.test_encode_unsupported_error_handlerdsI��
�
�
�z�
*�b��K�K��.�/�+�����R�\�\�*�,G�H�+�
*���A�
A%c�2�[R"USU5$rL)r��DecodeLocaleEx)rr�r�s   rrY�LocaleCodecTest.decodeis�� �/�/���F�C�Crc	��URS:HnU(aSnOSn[UR5nURHsnUR	URU5nXd;aURU5 U(dM?UR	URS5nXv:wdMbURU5 Mu UHZnURUS9 URURU5nURXa5n	URX�5 SSS5 M\ g![a SnN�f=f![az UR[5n
URXa5 SSS5 O!,(df   O=f[W
R5nURUR!S5U5 N�f=f!,(df   GM=f)Nr�r�rtr�)r�zdecode error: )r�r=�
BYTES_STRINGSr�rkr�r�r�rYr
r�r�r�r|r}r^�
startswith)rr��is_utf8�
encode_errors�stringsrr��encoded2r�r�rr�s            r�check_decode_strings�$LocaleCodecTest.check_decode_stringslsm���=�=�G�+���-�M�$�M��t�)�)�*���L�L�D�
��+�+�d�m�m�]�C���)��N�N�7�+��w��;�;�t�}�}�o�F���&��N�N�8�,�!��G����g��.�	8�&�~�~�d�m�m�V�D�H�#�k�k�'�:�G��$�$�W�7�/�.���&�
���
��*�Q��*�*�<�8�B����G�4�9�8�8�� ����.�F��O�O�F�$5�$5�6F�$G��P�	Q��/�.�sZ�2D�F.�
D'�&"F.�D$�#D$�'F+�E!	�	F+�!
E/
�+=F+�(F.�*F+�+F.�.
F>	c�&�URS5 gr��r�rs r�test_decode_strict�"LocaleCodecTest.test_decode_strict�r�rc�&�URS5 gr�r�rs r�test_decode_surrogateescape�+LocaleCodecTest.test_decode_surrogateescape�r�rc���URSS5 URS5 g![a9n[U5S:Xa$URUR<S35 SnANOeSnAff=f)Nrr�r�z4 decoder doesn't support surrogatepass error handler)rYrzr|r�r�r�r�s  r�test_decode_surrogatepass�)LocaleCodecTest.test_decode_surrogatepass�sm��	��K�K��_�-�	
�!�!�/�2���	��3�x�6�6��
�
���� 1�2<�=�>�>���	�r�c���UR[5nURSS5 SSS5 UR[	WR
5S5 g!,(df   N4=f)Nrr�r�)r�rzrYr
r|r}r�s  r�%test_decode_unsupported_error_handler�5LocaleCodecTest.test_decode_unsupported_error_handler�sI��
�
�
�z�
*�b��K�K��/�0�+�����R�\�\�*�,G�H�+�
*�r�rNrs)r*r+r,r-r3�getfilesystemencodingr�r�r��
SURROGATESrkr�r�r�r�r�rYr�r�r�r�r�r/rrrr�r�4sf��
�(�(�*�H�*�G�8�M��J�A�8�,�5�
3�I�
D� 8�D,�5�
3�Irr�c�,�\rSrSrSrSrSrSrSrg)�	Rot13Testi�c�V�[R"SS5nURUS5 g)NzCaesar liked ciphers�rot-13zPnrfne yvxrq pvcuref)rWrkr
)r�
ciphertexts  rr��Rot13Test.test_encode�s$���]�]�#9�8�D�
�����%;�<rc�V�[R"SS5nURUS5 g)Nz
Rg gh, Oehgr?r�z
Et tu, Brute?)rWrYr
)r�	plaintexts  rr��Rot13Test.test_decode�s"���M�M�/�8�<�	�����O�4rc��[R"S5"5nURS5nURUS5 g)Nr�zABBA nag Cheryl BakerzNOON ant Purely Onxre)rWrjrkr
)rrr�s   rr�!Rot13Test.test_incremental_encode�s5���.�.�x�8�:���^�^�$;�<�
�����%<�=rc��[R"S5"5nURS5nURUS5 g)Nr�zterra Ares envy thazgreen Nerf rail gun)rWrXrYr
)rrr�s   rr�!Rot13Test.test_incremental_decode�s5���.�.�x�8�:���N�N�#8�9�	�����$9�:rrN)	r*r+r,r-r�r�rrr/rrrr�r��s��=�5�>�
;rr�c��\rSrSrSrSrg)�
Rot13UtilTesti�c���SSKJn [R"S5n[R"5nU"X#5 UR	S5 UR5nUR
US5 g)Nr)r,z)Gb or, be abg gb or, gung vf gur dhrfgvbaz)To be, or not to be, that is the question)�encodings.rot_13r,r�r>rarOr
)rr,�infile�outfile�
plain_texts     r�test_rot13_func�Rot13UtilTest.test_rot13_func�sQ��*����H�I���+�+�-��
�f�����Q���\�\�^�
�����7�	9rrN)r*r+r,r-r�r/rrrr�r��s��
	9rr�c� �\rSrSrSrSrSrg)�CodecNameNormalizationTesti�c�^^�SmSmUU4Sjn[R"U5 UR[RU5 UR	T[R
"S55 UR	T[R
"S55 UR	T[R
"S55 UR	T[R
"S55 UR	T[R
"S55 UR	T[R
"S	55 UR	T[R
"S
55 UR	T[R
"S55 UR	T[R
"S55 UR	T[R
"S
55 g)N)rUr r�r)NNNNc�>�US:XaT$T$)N�aaa_8r)r`�FOUND�	NOT_FOUNDs ��rr8�FCodecNameNormalizationTest.test_codecs_lookup.<locals>.search_function�s����7�"��� � rr�zAAA-8zAAA---8zAAA   8u
aaaé€-8zAAA.8zAAA...8zBBB-8zBBB.8uaé€-8)rWr-rmr5r
r)rr8r�r�s  @@r�test_codecs_lookup�-CodecNameNormalizationTest.test_codecs_lookup�s/�����,�	�	!�	����(�����)�)�?�;������
�
�g� 6�7������
�
�g� 6�7������
�
�i� 8�9������
�
�i� 8�9������
�
�.?� @�A�����F�M�M�'�$:�;�����F�M�M�)�$<�=�����F�M�M�'�$:�;�����F�M�M�'�$:�;�����F�M�M�/�$B�Crc�D�[RnURU"S5S5 URU"S5S5 URU"S5S5 URU"S5S5 URU"S5S5 URU"S5S5 g)Nr6uutfé€􏿿-8zutf   8zUTF 8�UTF_8zutf.8zutf...8)rl�normalize_encodingr
)r�	normalizes  r�!test_encodings_normalize_encoding�<CodecNameNormalizationTest.test_encodings_normalize_encoding�s����0�0�	�����7�+�W�5�����#>�?��I�����9�-�w�7�	
����7�+�W�5�����7�+�W�5�����9�-�y�9rrN)r*r+r,r-r�r�r/rrrr�r��s
��D�,
:rr�c��\rSrSrSrSrg)�CodecCacheTesti�c��[[RS-5HnSRSU35 M UR[
[R5[R5 g![a Maf=f)Ni�r��	nonexist_)rVrl�	_MAXCACHErYr*rrr�)rrbs  r�test_cache_bounded�!CodecCacheTest.test_cache_bounded�sj���y�*�*�T�1�2�A�
����i��s�O�,�3�	
���S��!1�!1�2�I�4G�4G�H���
��
�s�A1�1
A?�>A?rN)r*r+r,r-r�r/rrrr�r��s��Irr��__main__)XrWr�r�r�r�r3rtrlr�testr�test.supportrrY�ImportErrorr�r6�sizeof�c_wchar�SIZEOF_WCHAR_Trr=r�r?rRro�TestCaser�r6rMrYr�r�r�r�r
rr$rLr�rbrr/�reprr�r�r�r�rr�r�r�r�rJr�r�rLr<rwr�r�r�r�rrrr5rmr/r1r3r}rr�r{�platformr�rIr]rmrur�r�r�r�r�r*�mainrrr�<module>r�s���
���	�
�
�����"�����3��
�]�]�6�>�>�2�N��$�(�F��*-�-�DQ=�&�Q=�h
]>��(�+�+�]>�@+>�(�H�-�-�+>�\+>�(�H�-�-�+>�\`-��(�+�+�`-�F*'�(�H�-�-�*'�X*'�(�H�-�-�*'�X[H�x��*�*�[H�|CK�x��*�*�CK�L>�(�#�#�>�C�X�&�&�C� S-�(�H�-�-�S-�lLH�x�(�(�LH�`e��N
�A�
�1�v�q�y�
�d�1�g��
�
-P�8�$�$�-P�bV��rP�8�$�$�P�(z6�H�%�%�z6�z~I�x�(�(�~I�B+�x�(�(�+�2+�x�(�(�+�(+�X�.�.�+�*
0�h�'�'�
0�f��P�6�=�!�!�� � ��(�
�6�<� � �� � ��'�� ��
_R�x�(�(�*A�_R�Du
�(�#�#�u
�p1�8�$�$�1�&L��!�!�&L�RS
��(�"3�"3�S
�jP
�8�X�%6�%6�P
�fO�x�(�(�O�(2�(�+�+�2�D65�h���65�r���y�)���E����i���6���$�$�\�2�',�f�o��l�#�-���$�$�[�1�&+�W��k�"�~F��*�*�~F�L��(�E3��*�*�E3�R
���S�\�\�W�,�9�;�XD�8�$�$�XD�;�XD�v$+��!�!�$+�N"B��"�"�"B�JA,��)�)�A,�H
���"�d�*�,K�L�nI�h�'�'�nI�M�nI�b;��!�!�;�*9�H�%�%�9�"":��!2�!2�":�JI�X�&�&�I��z���M�M�O���Yw������������
��
�F��N���V\���D����	��	�sW�S/�S>�T
�7T�T-�/S;�:S;�>T
�	T
�
T�T�T*�)T*�-T7�6T7

Youez - 2016 - github.com/yon3zu
LinuXploit