python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
test_unicode.cpython-311.pyc

edZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlm
Z
ddlmZmZddlmZ	ddlZn
#e$rdZYnwxYwdZdZGdd	eZGd
deZGdd
ZGddZGddejejeje
jZ Gdde
jZ!e"dkre
j#dSdS)z Test script for the Unicode implementation.

Written by Marc-Andre Lemburg (mal@lemburg.com).

(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.

N)warnings_helper)supportstring_tests)assert_python_failurecVdd}dd}dd}dd}|dkr||ddfS|dkr||ddfSdS)	NstrictcdSN*inputerrorss  E/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_unicode.pydecode1z search_function.<locals>.decode1rcdSr
rr
s  rencode1z search_function.<locals>.encode1 rrcdSN)rrrr
s  rencode2z search_function.<locals>.encode2"xrcdSrrr
s  rdecode2z search_function.<locals>.decode2$rr
test.unicode1
test.unicode2)rr)encodingrrrrs     rsearch_functionrs  $--	?	"	"$--trcN|S)z
    Try to get a fresh clone of the specified text:
    new object with a reference count of 1.

    This is a best-effort: latin1 single letters and the empty
    string ('') are singletons and cannot be cloned.
    )encodedecode)texts rduplicate_stringr$-s;;==!!!rceZdZdS)StrSubclassN__name__
__module____qualname__rrrr&r&7Drr&ceZdZdS)OtherStrSubclassNr'rrrr-r-:r+rr-ceZdZdZdZdS)WithStrc||_dSNvalueselfr3s  r__init__zWithStr.__init__>



rc|jSr1r2r5s r__str__zWithStr.__str__@
zrNr(r)r*r6r:rrrr/r/=2rr/ceZdZdZdZdS)WithReprc||_dSr1r2r4s  rr6zWithRepr.__init__Dr7rc|jSr1r2r9s r__repr__zWithRepr.__repr__Fr;rNr(r)r*r6rBrrrr?r?Cr=rr?c>eZdZeZdZdZdZdZdZ	dZ
dZdZd	Z
d
ZdZdZd
ZdZdZdZdZdZdZdZdZdZejejdkddZdZ e!j"dZ#dZ$dZ%dZ&fdZ'fd Z(fd!Z)fd"Z*e!j+d#d$Z,fd%Z-fd&Z.fd'Z/d(Z0fd)Z1d*Z2d+Z3e!j"e!j4eje5d,ud-d.Z6d/Z7d0Z8d1Z9d2Z:d3Z;d4Z<fd5Z=d6Z>d7Z?ej@ejd8kd9e!j"d:ZAd;ZBd<ZCd=ZDd>ZEd?ZFd@ZGdAZHdBZIdCZJdDZKdEZLdFZMe!j"eje5d,ud-dGZNdHZOdIZPe!jQdJdKdLdMZRdNZSdOZTdPZUdQZVdRZWdSZXdTZYdUZZdVZ[dWZ\dXZ]dYZ^dZZ_d[Z`d\Zad]Zbd^Zcd_Zdd`ZedaZfdbZgdcZhddZiejejdkpejjkdedfkdgdhZle!j"diZmdjZndkZodlZpdmZqe!j"e!j4eje5d,ud-dnZrdoZsdpZtdqZuxZvS)rUnicodeTestctjt|tjtdSr1)codecsregisterr
addCleanup
unregisterr9s rsetUpzUnicodeTest.setUpPs/((()?;;;;;rct||}||}||||t|t|u||urbGddt}||}t||}||}||||||udSdS)NceZdZdZdS))UnicodeTest.checkequalnofix.<locals>.usubc<dt|zS)Nzusub(%r))strrBr9s rrBz2UnicodeTest.checkequalnofix.<locals>.usub.__repr__^s%T(:(:::rNr(r)r*rBrrrusubrN]s#;;;;;rrR)getattrassertEqual
assertTruetyperP)r5resultobject
methodnameargsmethod
realresultrRs        rcheckequalnofixzUnicodeTest.checkequalnofixTs,,VT]
V,,,Z((DLL8999
;
;
;
;
;s
;
;
;T&\\FVZ00FJZ000OOF*455555 rc|t|t||||dSr1)assertIsrVrT)r5actualexpecteds   rassertTypedEqualzUnicodeTest.assertTypedEqualfs>

d6llDNN333*****rcV|dd|dd|ttd|ttd|ttddz|dddS)	Nÿ￿z'\Ufffffffe'z'\Uffffffff'z'\U%08x'z\u0020 )rTassertRaisesSyntaxErrorevalassertNotEqualr9s r
test_literalszUnicodeTest.test_literalsjs***<000+t->???+t->???+t]X-EFFFIs+++++rc
tjds|t	dd|t	dd|t	dd|t	dd	|t	d
d|t	dd
|t	dd|t	dd|t	dd|t	dd|t	dd|t	dd|t	ddd}t	dt
ttd}||||t	dt	d|	t	dd|	t	tdd|	t	td d |	t	ttd td |	t	td!d"|	t	ttd!d"|tttd#dSdS)$Njavaabc'abc'ab\c'ab\\c'ab\'ab\\'\c'\\c'\'\\'
'\n'
'\r'	'\t''\x08''"'\'"''"'""'"'a'\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff'0𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿🐍z'\U0001f40d'<abc><🐍>z<\U0001f40d>	byte-repr)sysplatform
startswithrTasciijoinmapchrrangerbr&r?rh	TypeErrorr5
latin1reprtestreprs   r
test_asciizUnicodeTest.test_asciiss/|&&v..*	HU5\\7333U7^^[999U6]]J777U5\\9555U4[[(333U4[['222U4[['222U4[['222U4[[)444U5\\<888U5\\<888U3ZZ333U3ZZ333

RWWSeCjj%9%9::;;HXz222U#FGG"#FGG
I
I
I
!!%"5"5GGG!!%E(:(:";";WEEE!!%(9(9":":GDDD!!%W1E1E(F(F"G"GU\I]I]^^^!!%(@(@"A"A?SSS!!%^1L1L(M(M"N"NP_```i0F0FGGGGGU*	H*	Hrc
tjds|t	dd|t	dd|t	dd|t	dd	|t	d
d|t	dd
|t	dd|t	dd|t	dd|t	dd|t	dd|t	dd|t	ddd}t	dt
ttd}||||t	dt	d|	t	dd|	t	tdd|	t	td d |	t	ttd td |	t	td!d!|	t	ttd!td!|tttd"dSdS)#Nrnrorprqrrrsrtrurvrwrxryrzr{r|r}r~rrrrrrrru%'\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0¡¢£¤¥¦§¨©ª«¬\xad®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ'rrrru'🐍'rrr)rrrrTreprrrrrrbr&r?rhrrs   r	test_reprzUnicodeTest.test_reprs7|&&v..*	GT%[['222T']]K888T&\\:666T%[[)444T$ZZ222T$ZZ111T$ZZ111T$ZZ111T$ZZ333T%[[,777T%[[,777T#YY	222T#YY	222

BGGCU3ZZ$8$899::HXz222T"EFF!"EFF
H
H
H
!!$|"4"4nEEE!!${5'9'9":":GDDD!!$x'8'8"9"97CCC!!$xG0D0D'E'E"F"FT[H\H\]]]!!$x'?'?"@"@.QQQ!!$xN0K0K'L'L"M"M{[iOjOjkkkix/E/EFFFFFU*	G*	GrcBd}|t|d|t|d|t|d|tt|dS)N	ᄑ∢㌳uᄑu∢u㌳)__iter__rTnextrh
StopIteration)r5its  rtest_iteratorszUnicodeTest.test_iteratorss
!
*
*
,
,b8,,,b8,,,b8,,,-r22222rcttdttdg}|D]K}||5|t|dddn#1swxYwYLdS)Nrou🚀)cls)rVitersubTestrhr)r5casesrs   rtest_iterators_invocationz%UnicodeTest.test_iterators_invocationsd5kk""Df$6$67	2	2C#&&
2
2!!)S111
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2	2	2sA;;A?	A?	c
gd}|D]f}||5||dt|dddn#1swxYwYgdS)Nrou🚀🚀🚀r)stringr)rrTrr)r5rcases   rtest_iterationzUnicodeTest.test_iterations===	<	<DT**
<
<  rwwtDzz':':;;;
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<	<	<s7A""A&	)A&	cgd}|D]o}||5t|}t||tt
|dddn#1swxYwYpdS)Nrr)rrtuplerhrr)r5rriterators    rtest_exhausted_iteratorz#UnicodeTest.test_exhausted_iterators===	A	AD4((
A
A::h!!-x@@@
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A	A	AsAA++A/	2A/	cgd}|D]}||5ttjdzD]}t	|}||5dtjtj||}|||dddn#1swxYwY	dddn#1swxYwYdS)Nrr)protor)	rrpickleHIGHEST_PROTOCOLrrloadsdumpsrT)r5rrrrpickleds      rtest_pickle_iteratorz UnicodeTest.test_pickle_iteratorsf===	8	8D4((
8
8"6#:Q#>??88EdBE2288"$''&,v|B7N7N*O*O"P"P((w7778888888888888888
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8	8	8s7AC#AC	4CC
CC
CC	 C	c@tj||dddd|dddd|dddd|dddd|dddd|ddddd|ddddd	|d
ddddd|dddddd	|dddd|dd
dd|dddd|dddd|dddd|dddd|dddd|dddd|dddd|dddd|dddd|dddddS)Naaacountarbri
uĂaaaaaaaaaau􀌄aaaaaaaaaau􀌄ĂĂĂĂĂĂĂĂĂĂĂ
aaaaaaaaaa􀌄uĂĂĂĂĂĂĂĂĂĂuĂa_a_a_a_a_a_a_a_a_a_a_u􀌄a_a_a_a_a_a_a_a_a_a_u"􀌄Ă_Ă_Ă_Ă_Ă_Ă_Ă_Ă_Ă_Ă_Ă_aĂa􀌄Ă􀌄)r
CommonTest
test_countr]
checkequalr9s rrzUnicodeTest.test_counts<**4000Q555Q555Qw555Qw555Qw555Qwb999Qwc:::Qwa<<<Qwa===/#>>>3WcBBB8'8LLL8Wh7778Wl;;;='<@@@0'4@@@4gtDDD97INNN8Wi8888Wm<<<='3EFFFFFrctj||dddd|dddd|dddd|dddd|dd	dd
|dd	dd|dd	dd|d
ddd|ddddd|ddddd|d
ddd|ddddd|dddddd|dddd|dddd|ddddd|dddddd|ddddd|dddddd|ddddd|dddd|tdj|tdjd|dd dd!|dd"dd!|dd#dd|dd$dd|dd$dd
|dd%dd
|dd&dd'|dd(dd'|dd)dd*|dd$dd+|dd$dd,|dd%dd-dS).NdufaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaĂfindrrȁĠȠuhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa􀌄r􀈄􂀄rabcdefghiabcro	rdefтестuтreтест тестесrechellorĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂar􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄a􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄ĂdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂa_r􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄a_􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄Ă_rrrr)rr	test_findrr]rhrrr9s rrzUnicodeTest.test_find
s))$///168DDD0&(CCC0&(CCC0&(CCC5v|LLL4flKKK4flKKKQ???QBBBRBBB	
:vt444:vtQ777Ja;;;J444.???.BBB.1EEE.BBB/AFFF/CCC/>>>)W\222)W\2666163???5vsCCC:FHMMMIvx888Iv|<<<NFLAAA2FDAAA6EEE;VYOOOIvy999Iv}===NF4FGGGGGrctj||dddd|dddd|dddd|dddd|dd	dd
|dd	dd|dd	dd|d
ddd|dddd|dddd|dddd|ddddd|ddddd|dddd|dddd|ddddd|dddddd|ddddd|dddddd|ddddd|dddd|dddd|dddd|dd dd|dd!dd|dd!dd
|dd"dd
|dd#dd$|dd%dd$|dd&dd'|dd!dd(|dd!dd)|dd"dd*dS)+NrufĂaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarfindrrrrruh􀌄aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarrrrrrorrruеrrrrrrrraĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂra􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄Ă􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄rr_aĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂ_a_a􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄_Ă􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄_ĂĂa􀌄a􀌄Ă)rr
test_rfindrr]r9s rrzUnicodeTest.test_rfind:sd**4000/'8DDD07HEEE07HEEE07HEEE3WlKKK4g|LLL4g|LLLQ.'5AAAR.'2>>>R2>>>:w555:wa888Jq999J555.@@@.CCC.AFFF.CCC/&!QGGG/&!DDD/$???/#>>>3WcBBB8'8LLLIw999Iw===NG\BBB0'4@@@4gtDDD97INNNIw	:::Iw
>>>NG5GHHHHHrctj||dddd|dddd|dddd|ddddd	|t
djd
|t
djdd	|t
djd
d|t
djd
d|dddd|dddd|dddd|t
djd|t
djd|t
djd|dddd|dddd|dddd|t
djd|t
djd|t
djd dS)!Nrrindexrrrrorrhibabcdefghiab	abcdefghighirrrrrrrrrrrrrrrrrr)rr
test_indexr]rh
ValueErrorrrr9s rrzUnicodeTest.test_indexcs4**4000Q"===Q%@@@Q%@@@Q%CCC*n&:EBBB*m&9E1EEE*k&7%CCC*k&7%DDD17C@@@5wDDD:GXNNN*y&7BBB*y&7FFF*~&<lKKK2GTBBB6FFF;WiPPP*y&7CCC*y&7GGG*~&<>PQQQQQrctj||dddd|dddd|dddd|d	dddd	d
|t
djd|t
djdd
|t
djdd	d
|t
djdd	d|t
djdd	d
|d	ddd|d	ddd|d	ddd|t
djd|t
djd|t
djd|d	ddd|d	ddd|d	ddd|t
djd|t
djd|t
djd dS)!Nrrrindexrrrrrorrr	defghiabcrrrrrrrrrrrrrrrrrrrr)rrtest_rindexr]rhrrrr9s rr
zUnicodeTest.test_rindex{sY++D111RB???QEBBBQEBBBQE1bIII*n&;eDDD*k&85!DDD*k&85!RHHH*k&85!QGGG*k&85!RHHH/3???3XsCCC8(HMMM*y&8(CCC*y&8,GGG*~&=|LLL0(DAAA4hEEE98YOOO*y&8)DDD*y&8-HHH*~&=?QRRRRRrc|dddtddi|dddtddtdtdi|dddtddtdtdtd	d
i|d	ddtddtddi|dd
dtddi|dddddi|jddd}|ddd||jddd}|ddd||dtddd|dtddid|dtddid|dtddid|dtddid|d tdd!dd"|d tdddd#|dtdd$id%|dtddid|dtddid|dtdd!id&|d'tdd(id)d*}d+D]D}t||i}d,|z}|t|j|E|t|jj|t|jjdd-|t|jjd.d/|t|jjdd.|t|jjdd/d.|t|jjd0d.i|t|jjd1d.i|td2j|tdjdddS)3Nbbbcabababc	translateriiicriiiixcxrxyyxxzxzyyz<i>rrz
<i><i><i>croxyzdxyzzyabdcdcbddddz[a]Xz[X][]XXXz[XXX]éu[é]axb123x123uxéu<é>u[<é>]z[123]u[aé]u<€>u	[<€>é]rfu
aé€􏿿z[%s]defgrrxy)rr)
r]ord	type2test	maketransrTrrPrhrr)r5tblinvalid_charbeforemappingr#s      rtest_maketrans_translatez$UnicodeTest.test_maketrans_translatesVY!#hh-	/	/	/VY!#hhc#hhCA	C	C	CVY!#hhc#hhC#c((CP	R	R	RS)[!#hhc#hh;	=	=	=VUK!#hh-	/	/	/	
Y	;!5\	+	+	+n&&T'>'>??\9k3GGGn&&ueS99Wm[#FFF	
sC)@)@AA	 	 	 Sz)B)BCC	 	 	 T{)C)CDD			U|)D)DEE 	"	"	"V})E)EFF!	#	#	#T7N7N)O)OPP	!	!	!T7O7O)P)PQQ 	"	"	"	
X)G)GHH#	%	%	%++CMM63-,H,HII	 	 	 ++CMM64.,I,IJJ			++CMM65/,J,JKK 	"	"	",,S]]C;L-M-MNN)	+	+	+"-	C	CFmmV\$:;;GF?Dj$.'BBBB	
)T^%=>>>*dn&>vNNN)T^%=q%HHH)T^%=uaHHH)T^%=ueQOOO*dn&>q	JJJ)T^%=ayIII)W%6777)Y%8%GGGGGrc	tj|dD]\}}|dz}|dz}dD]}|||zg||zd||||g||z|zd||||zg||zd|dz|||g||dzz|zd|dzdS)NbaāĀ𐌁𐌀rrr𐌂splitr)rr
test_splitrr5leftrightdelims    rr6zUnicodeTest.test_splits,**4000J	M	MKD%AIDQJE6
M
M $ugu>>>u
 $uu 4guFFF $uguqyBBBu
 $uqy 05 8'5!8MMMM
M	M	Mrc	tj|dD]\}}|dz}|dz}dD]}|||zg||zd||||g||z|zd||||zg||zd|dz|||g||dzz|zd|dz|||zg||zdddS)N)r0uюёr1r2r)ruыrr4rsplitr)rrtest_rsplitrr7s    rr=zUnicodeTest.test_rsplitsO++D111Q	;	;KD%AIDQJE<
N
N $uh???u
 $uu 4hGGG $uh	CCCu
 $uqy 05 8(E1HNNNN
OOTE\N!E\8T
;
;
;
;	;	;rc	tj||dddddD]\}}|dz}|dz}dD]}|||zddf||zd|||||f||z|zd||||zddf||zd|d	z|||d	z|f||d	zz|zd|d	zdS)
N)ABCDEFGHrrr?	partition䈀r/rr3rr)rMixinStrUnicodeUserStringTesttest_partitionrr7s    rrCzUnicodeTest.test_partitionsY2AA$GGG,j+xPPPI	R	RKD%AIDQJE6
R
Rr2 6 $uk5BBBue 4 $uu 4k5JJJr2 6 $uk519FFFuqy% 8 $uqy 05 8+uqyRRRR
R	R	Rrc	tj||dddddD]\}}|dz}|dz}dD]}|dd||zf||zd|||||f||z|zd||dd||zf||zd|d	z|||d	z|f||d	zz|zd|d	zdS)
N)rrr?r?
rpartitionrAr/rr3rr)rrBtest_rpartitionrr7s    rrFzUnicodeTest.test_rpartitionsZ2BB4HHH,j,QQQI	S	SKD%AIDQJE6
S
SR 6 $ulECCCue 4 $uu 4lEKKKR 6 $ulEAIGGGuqy% 8 $uqy 05 8,PQ	SSSS
S	S	Src
*tj|Gdd}|dddgd|dddd|d	ddtjd
|dddgd|dddgd|dddd|d	ddtjd
|tdddd|d
g|tdddddtg|tddgd|tddgddS)NceZdZdZdZdS)(UnicodeTest.test_join.<locals>.MyWrapperc||_dSr1sval)r5rLs  rr6z1UnicodeTest.test_join.<locals>.MyWrapper.__init__&s$diiirc|jSr1rKr9s rr:z0UnicodeTest.test_join.<locals>.MyWrapper.__str__'s	di/rNr<rrr	MyWrapperrI%s"666/////rrNza b c drgr)rrrrabcdrzw x y zwxyz12foo3)rrr)rQrRr)rrB	test_joinr]Sequencecheckraisesrbytes)r5rNs  rrUzUnicodeTest.test_join"s2<<TBBB	0	0	0	0	0	0	0	0
	
YV5I5I5IJJJVR1EFFFYV\5J65R5RSSSYV5I5I5IJJJYV5I5I5IJJJVR1EFFFYV\5J65R5RSSSC#sIIe<L<L1MNNNC#sC1IJJJC;;;C?????rlz*needs too much memory on a 64-bit platformcttjdzdz}d|zf|z}|tdj|dS)Ng?rAr)intrmaxsizerh
OverflowErrorr)r5sizeseqs   rtest_join_overflowzUnicodeTest.test_join_overflow6sM3;#$$q(Tzmd"-#66666rc
tj||dddddd|t
djddd	D]\}}|d
z}|d
z}dD]}dD]}|||z||zd|||||z|z||z|zd|||||z||zd|d
z||||z|z||d
zz|zd|d
z|dS)Nzone@two!three!zone!two!three!replace!@rrrr/rr3)ruău𐌃r)rrtest_replacer]rhrrbr)r5r8r9r:repls     rrfzUnicodeTest.test_replace=s,,T222	
-/?CQTVWXXX)Y%6R@@@I	@	@KD%AIDQJE6
@
@9
@
@DOOD5L$(5L)UDJJJOOD4K%$7$(5L5$8$-ud<<<OOD5L$(5L)UQYNNNOOD4K%$7$(519$4u$<$-uqy$@@@@
@
@	@	@rcbd}d}|||||dS)Nrozabc def)r_rb)r5patternr#s   rtest_replace_idzUnicodeTest.test_replace_idTs4

dll7G44d;;;;;rcfd}d}|t|t||t|t||t|t|dz|t|t|dz|t|t|dz|t|td|z|t|t|dzGddt}|d	}|t|t||t|t|dz|t|t|dz|t|t|dz|t|td|z|t|t|dzdS)
Nz123abc1@z456zyx-+rrrceZdZdS)5UnicodeTest.test_repeat_id_preserving.<locals>.SubStrNr'rrrSubStrrneDrrozqwerty())rTidrkrP)r5rrross     rtest_repeat_id_preservingz%UnicodeTest.test_repeat_id_preservingZs/A1&&&BqEE2a55)))BqEE2a"f::...BqEE2a!e99---A1q5		***A1q5		***BqEE2a!e99---					S			
F:A1&&&BqEE2a"f::...BqEE2a!e99---BqEE2a!e99---BqEE2a!e99---BqEE2a!e99-----rctj5tjdt|ddkd|ddkd|dt
dkd|dt
dkdddddS#1swxYwYdS)NignoreroabcFT)rcheck_warningswarningssimplefilterBytesWarningrT	bytearrayr9s rtest_bytes_comparisonz!UnicodeTest.test_bytes_comparisonps

+
-
-	?	?!(L999Uf_e444Uf_d333Ui&7&77???Ui&7&77>>>	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?sBB>>CCcddddkddk	dd	kdS)
NrorOrr€uc:||kdSr1)rU)rrs2r5s  r
test_lecmpz/UnicodeTest.test_comparison.<locals>.test_lecmpsB'''''rcd}||d}||d}||d}||d}||d}||d}||d}||d	}||d
}||d}||d}||d
}||d}||d}||d}||dddS)Nuuuuuuuuuuuuuuuuu。r)rrr
test_fixuprs  rrz/UnicodeTest.test_comparison.<locals>.test_fixups#
1b!!!#
1b!!!#
1b!!!#
1b!!!#
1b!!!#
1b!!!#
1b!!!#
1b!!!#
1b!!!#
1b!!!#
1b!!!#
1b!!!#
1b!!!#
1b!!!#
1b!!!#
1b!!!
8$$$
8$$$$$ru)rTrU)r5rrs`@@rtest_comparisonzUnicodeTest.test_comparisonxsl&&&''''''0	%f	
788888rct|ddd|d|d|d|d|d|d	|d
|ddS)NFῼislowerⅧⅷ𐐁𐐧𐐩𐑎r👯)supertest_islowerr]assertFalserrUr5	__class__s rrzUnicodeTest.test_islowers1
UHi888))++,,,((**+++--//000--//000,,..///,,..///--//000--//00000rc$ttjds|ddd|d|d|d|d|d	|d
|d|ddS)
NrnFrisupperrrrrrrrr)	rtest_isupperrrrr]rUrrrs rrzUnicodeTest.test_isuppersI
|&&v..	=  )<<<((**+++))++,,,,,..///,,..///--//000--//000--//000--//00000rct|ddd|ddd|d|ddD]=}||d|>dS)	NTristitleuGreek ῼitlecases ...u𐐁𐐩u𐐧𐑎)rrrrz{!a} is not title)rtest_istitler]rUrrformatr5chrs  rrzUnicodeTest.test_istitles
T8Y777T#>	JJJ	
.6688999.6688999J	K	KBRZZ\\+>+E+Eb+I+IJJJJ	K	KrcRt|ddd|ddd|ddddD]=}||d|>dS)	NTu isspaceu Fu—rrrrrrz{!a} is not space.)rtest_isspacer]rrrrs  rrzUnicodeTest.test_isspaces
T8Y777T8Y777UHi888/	L	LBRZZ\\+?+F+Fr+J+JKKKK	L	LrcpucttjdzD]i}t|}t	j|}t	j|}|||dvp|dkjdS)Nr)WSBSZs)	rr
maxunicoderunicodedata
bidirectionalcategoryrTr)r5	codepointcharrrs     rtest_isspace_invariantz"UnicodeTest.test_isspace_invariantss~122	4	4Iy>>D'5d;;M"+D11HT\\^^+/??2!)T!1
4
4
4
4		4	4rctdD]=}||d|>dS)N)rrrr𝟶𑁦𐒠🄇z{!a} is alnum.)rtest_isalnumrUisalnumrrs  rrzUnicodeTest.test_isalnumsg
K	G	GBOOBJJLL*:*A*A"*E*EFFFF	G	GrcJt|ddd|d|d|d|d|d|d	dS)
NTrisalpharrrrrr)rtest_isalphar]rUrrrs rrzUnicodeTest.test_isalphas
T8Y777,,..///,,..///,,..///,,..///--//000--//00000rct|d|ddS)Nr~􏿿)rtest_isasciirisasciirs rrzUnicodeTest.test_isasciis_
))++,,,--//00000rc|ddd|ddd|ddd|ddd|ddd|dd	d|dd
d|ddd|tddd
dD]=}||d|>dD]=}||d|>dS)NFr	isdecimalrT0①¼٠
01234567890123456789aror)rrrrrr𑁥rz{!a} is not decimal.)rrrz{!a} is decimal.)r]rWrrrrrUr5rs  rtest_isdecimalzUnicodeTest.test_isdecimal	skUB444UC555T3444UHk:::UFK888T8[999T<===UM;???E;;;;K	P	PBR\\^^-C-J-J2-N-NOOOO<	K	KBOOBLLNN,>,E,Eb,I,IJJJJ	K	Krct|ddd|ddd|ddddD]=}||d|>d	D]=}||d
|>dS)NTrisdigitFrr)rrrrrrrz{!a} is not a digit.)rrrrz{!a} is a digit.)rtest_isdigitr]rrrrUrs  rrzUnicodeTest.test_isdigits
T8Y777UFI666T8Y777=	N	NBRZZ\\+A+H+H+L+LMMMMJ	I	IBOOBJJLL*<*C*CB*G*GHHHH	I	Irc|ddd|ddd|ddd|ddd|ddd|dd	d|dd
d|ddd|tdjd
dD]=}||d|>dD]=}||d|>dS)NFr	isnumericrTrrrrrrrorrz{!a} is not numeric.)rrrrrz{!a} is numeric.)r]rhrrrrrUrs  rtest_isnumericzUnicodeTest.test_isnumeric'slUB444UC555T3444T8[999T6;777T8[999T<===UM;???)U_b999/	P	PBR\\^^-C-J-J2-N-NOOOO/	K	KBOOBLLNN,>,E,Eb,I,IJJJJ	K	Krc|d|d|d|d|d|d|d|d|d	|d
|d|ddS)
NrZ_b0bcb_µu𝔘𝔫𝔦𝔠𝔬𝔡𝔢rg[©r)rUisidentifierrr9s rtest_isidentifierzUnicodeTest.test_isidentifier:sy((**+++((**+++((**+++))++,,,))++,,,))++,,,))++,,,6CCEEFFF))++,,,))++,,,**,,---))++,,,,,rNzneed _testcapi modulecVd}||tj5t	jdt|tj|ddddS#1swxYwYdS)Nu𝖀𝖓𝖎𝖈𝖔𝖉𝖊ru)	rUrrrwrxryDeprecationWarning	_testcapiunicode_legacy_string)r5us  rtest_isidentifier_legacyz$UnicodeTest.test_isidentifier_legacyIs
+(()))

+
-
-	O	O!(,>???OOI;A>>KKMMNNN	O	O	O	O	O	O	O	O	O	O	O	O	O	O	O	O	O	OsABB"%B"c|d|d|d|d|d|d|d|d|d	dS)
Nrrgabcdefgzabcdefg
ʹ͸ru󠀠)rUisprintablerr9s rtest_isprintablezUnicodeTest.test_isprintableSs(()))))***	--//0000022333,,..///--//000--//0000022333113344444rc	dD]w}||||||xdD]w}||||||xdD]A}tt|}dD]'}||||d|d(BdD]A}tt|}dD]'}||||d|d(BdS)	N)abab	aba	aba)uABuABu	ABAu	ABA)rrr)r.z() is False)rrrrrrrr)rrrrrrrr)rUrrrrrSrP)r5rr	meth_namemeths    rtest_surrogateszUnicodeTest.test_surrogatesbs8	*	*AOOAIIKK(((QYY[[)))QYY[[))))8	)	)AQYY[[)))OOAIIKK(((OOAIIKK((((:	O	OI3	**DI
O
O  a999*MNNNN
O9	O	OI3	**D<
O
O  a999*MNNNN
O		O	Orctj||dd|dd|dd|dd|dd|d	d
|dd|d
d|dd|dd|dd|dd|dd|dd|dddS)Nr𐑏𐐧𐐧𐑏𐑏𐐧𐑏
X𐐧x𐑏u
x𐑏x𐑏fiİi̇ΣσͅΣuͅσAͅΣuaͅςAͅΣauaͅσaAΣͅuaςͅΣͅ uσͅ 򏿾r)rr
test_lowerrTlowerr9s rrzUnicodeTest.test_lower}s-**4000++--|<<</5577/	1	1	1/5577/	1	1	1177991	3	3	3...))>:::))8444--//@@@..00/BBB)//113CDDD..00/BBB..00/BBB..00/BBB++--|<<<))844444rc6|dd|dd|dd|dd|dd|d	d
|dddS)
NrhELloßssrfirrruaισruμ)rTcasefoldr9s r
test_casefoldzUnicodeTest.test_casefolds))++W555))++W555$///))4000**,,h7771133_EEE**,,h77777rctj||dd|dd|dd|dd|dd	|d
d
|dd|dd
|dd|dd|dddS)Nrrrrrru
X𐐧X𐐧rFIrrrSSῒΪ̀rrr)rr
test_upperrTupperr9s rrzUnicodeTest.test_uppers**4000++--|<<</5577/	1	1	1/5577/	1	1	1177991	3	3	3---))8444))8444t,,,))+?@@@++--|<<<))844444rctj||dd|dd|dd|dd|dd|dd	d
}|d||dd
|dddS)Nrrrr𐑏𐐧ru
X𐑏x𐑏uhİuHi̇u	Ϊ̀i̇uῒİufinnishFinnishruAͅς)rrtest_capitalizerT
capitalize)r5exps  rrzUnicodeTest.test_capitalizesv//5550022LAAA/::<</	1	1	1/::<</	1	1	1/::<</	1	1	11<<>>1	3	3	3--//AAA.2244c:::..00)<<<3355GGGGGrct|dd|dd|dd|dd|dd|dd	|d
d|dd
|dddS)Nrrrru𐑏𐑏 𐑏𐑏u𐐧𐑏 𐐧𐑏u𐑏𐐧 𐑏𐐧uX𐐧x𐑏 X𐐧x𐑏uX𐑏x𐑏 X𐑏x𐑏ufiNNISHru	AΣ ᾡxyu	Aς ᾩxyuAΣAuAσa)r
test_titlerTtitlers rrzUnicodeTest.test_titles
++--|<<</5577/	1	1	1DJJLLD	F	F	FDJJLLD	F	F	FDJJLLD	F	F	FHNNPPH	J	J	J))++Y777+11335GHHH))++Z88888rctj||dd|dd|dd|dd|dd|dd|d	d
|dd|d
d|dd|dd|dd|dd|dd|dd|d
d|dd|dddS)Nrrrrrrru
x𐑏X𐐧rr
rrrrruΙσruaΙςruaΙσAruaςΙruσΙ rrrr)rr
test_swapcaserTswapcaser9s rrzUnicodeTest.test_swapcases--d333..00,???..00,???/88::/	1	1	1/88::/	1	1	1/88::/	1	1	11::<<1	3	3	3))4000**,,n===**,,h7770022NCCC1133_EEE)22446FGGG1133_EEE1133_EEE1133_EEE**,,h777$///**,,.BCCCCCrc@tj||dddd|dddd|dddddS)	Nrrrux􏿿ru	􏿿x􏿿ru
􏿿x􏿿􏿿)rrtest_centerrTcenterr9s rr zUnicodeTest.test_centers++D111A|44&	(	(	(A|440	2	2	2A|44:	<	<	<	<	<rizrequires 32-bit systemcd}	d|z}n+#t$r|d|dzzYnwxYw	|t|j~dS#~wxYw)NiVUUüz$no enough memory (%.0f MiB required)i)MemoryErrorskipTestrhr]r)r5r^rrs   rtest_case_operation_overflowz(UnicodeTest.test_case_operation_overflows	StAA	S	S	SMM@D5LQRRRRR	S	mQW555EEEEs
%22 AAc|dd|dd|dd|dd|dd|dd|dd|dd|dd|dd|dd	|dd
|dd|d
d|d
d|d
d|dd|dd|dd|dd|dd|dd|dd|dd|dd|dd|tdjdD]s}|dz}dD]i}|||||||z||dz|||dz||dzzjtdS)Nrabdbbdabbdababdbabdb)rrN)rNr)rry)rrNrOabcxxxxabro)rNr/rzabczabcasdfasd)rĀu𐌀rr3r)assertInassertNotInrhr__contains__)r5fillr:s   r
test_containszUnicodeTest.test_containss

c6"""

c6"""

c7###

c6"""e$$$

c6"""

c<(((

c<(((

c<(((

c<(((k***l++++++

dF###

dE"""

dM***

b%   

b"

b%   u%%%

dG$$$

dG$$$

c7###

ff%%%'''$$$)U%78881	;	;DAID6
;
;  ---

eTE\222  D111

eai	)9::::	
;	;	;rczddddddddddddddddS)Nu𐀀􀀀􀀀r𐀀)	rr
rrrrr!ljustrjustr9s rtest_issue18183zUnicodeTest.test_issue18183's$$&&&'')))$$&&&))+++$$&&&'')))A|,,,1l+++1l+++++rc>|dd|dd|dd|dd|dd|dd	|d
d|dd
ddl}|ddd|dtdd|ddd|ddd}|d|dGdd}Gdd}Gdd }Gd!d"}Gd#d$}Gd%d&|j}Gd'd(t
}	Gd)d*}
Gd+d,}|dd|d-d-|d.d-d-|d/d-d-|d0d-d1|d2d-d3|d4d-d5|d6d7d-d-|d8d7d-d1|d9d7d-d3|d:d7d-d5|d.d;d<|d=d;d-d>|d?d;d-d@|dAdB|dCdD|dEdF|dGdH|dIdJdK|dLdM|dNdO|dPdQ|dRdSdTidT|dUdVdTidT|dWdXdYidZ|d[|d\]d^|d_|d`|d\da|db||d-d-|dcd-ddgd-|ded-ddgdd|dfd-ddggdd|dgd-|ddggdd|dhd-d-|dhdd|dhdid-|djdid|dkd-d-|dld-d-|dmd-d|dnd-do|dpdqdq|drdqdq|dsdqdq|dtdqdu|dvdqdw|dxdqdy|dzdqdy|d{dqd||d}dqd~|ddqd|ddqd|ddqd|ddqd|ddqdq|ddqd|ddqd|ddqd|ddqd|ddddXdzz|dddXdz|dddXdz|ddd|ddd|ddd|ddd|ddYd|ddYd|ddYd|ddYd|ddd|ddd|ddd|ddd|ddd|ddd|ddd|ddd|d|d-|ddd|ddd|ddd|ddd|ddd|ddd|d|dd|ddd|ddd¦|d|ddæ|dĠdd|dĠdd|dĠddŦ|dƠdd|dĠ|dd|dĠ|ddǦ|d.idF|d.gdȦ|d.d7gdɦ|dʠ|d˦d̦|d|d˦dͦ|tdj|d˦|tdj|d˦|tdj|d˦|dР|dddѬҦdӦ|d.|	d`d^|d/dd|dԠdd֦dצ|dؠdd֦dצ|d٠dd֬ڦdצ|d۠dd`d֬ܦdݦ|d۠ddd߬ܦdݦ|tdBj|tdDj|tdj|tdj|tdj|tdj|td.j|td6jd-|tdHj|tdOj|tdj|tdj|tdj|tdjd|tdj|tdjg|tdj|tdjd|tdjd|tdjd|tdjd|tdj|tdjd|tdjd|tdjdY|tdjdY|tdjd|tdjd|tdj|tdj|tdj|tdFjd}|tdB|zdDzj|td|zdzjdg|tdjd|tdjd|tdjd|tdjd|tdjd|tdjd|tdjd|tdjd|tdjd|tdjd|tdjd|tdjd|tdjdg|tdjdg|tdjdd|tdjd-dd|tdjdd7ddYdd֐d	d


d}
|t|
djd|t|
tdd
d}|t|djd|tdjd|ttdd|ttdd|dddd|dhdd|djdd|ddFdidߦ|ddFdid|ddBdid|ddDdid|dddid|dddid|tdjd|td jd|td!jd|d"dd#d$|
d˦}|d%|d&|td'j||tdFj||d˦}|d%|d(|d'|d(|tdFj|dS()Nrrr/a{{a{a}}a}{{b{b}}b}ba{{ba{brzMy name is {0}FredzMy name is FredzMy name is {0[name]})namezMy name is {0} :-{{}}zMy name is Fred :-{}irzThe year is {0.year}zThe year is 2007ceZdZddZdZdS)"UnicodeTest.test_format.<locals>.Crc||_dSr1_xr5rs  rr6z+UnicodeTest.test_format.<locals>.C.__init__J
rc|Sr1rr5specs  r
__format__z-UnicodeTest.test_format.<locals>.C.__format__LrNrr(r)r*r6rWrrrCrNI7








rr[ceZdZdZdZdS)"UnicodeTest.test_format.<locals>.Dc||_dSr1rrRs  rr6z+UnicodeTest.test_format.<locals>.D.__init__P
rc*t|jSr1)rPrrUs  rrWz-UnicodeTest.test_format.<locals>.D.__format__Rs46{{"rNrZrrrDr^Os2



#
#
#
#
#rrcceZdZdZdZdS)"UnicodeTest.test_format.<locals>.Ec||_dSr1r`rRs  rr6z+UnicodeTest.test_format.<locals>.E.__init__Wrarcd|jzdzS)NzE()r`r9s rr:z*UnicodeTest.test_format.<locals>.E.__str__Ydf}s**rNr<rrrEreV2



+
+
+
+
+rrjceZdZdZdZdS)"UnicodeTest.test_format.<locals>.Fc||_dSr1r`rRs  rr6z+UnicodeTest.test_format.<locals>.F.__init__^rarcd|jzdzS)NzF(rhr`r9s rrBz+UnicodeTest.test_format.<locals>.F.__repr__`rirNrCrrrFrm]rkrrpc eZdZdZdZdZdS)"UnicodeTest.test_format.<locals>.Gc||_dSr1r`rRs  rr6z+UnicodeTest.test_format.<locals>.G.__init__erarcd|jzS)Nz
string is r`r9s rr:z*UnicodeTest.test_format.<locals>.G.__str__gs#df,,rc^|dkr
d|jzdzSt||S)NrzG(rh)rrXrWr5format_specs  rrWz-UnicodeTest.test_format.<locals>.G.__format__is4#%%$&=3..(({;;;rN)r(r)r*r6r:rWrrrGrrdsA



-
-
-
<
<
<
<
<rrxceZdZdZdS)"UnicodeTest.test_format.<locals>.Ic,||Sr1)strftimervs  rrWz-UnicodeTest.test_format.<locals>.I.__format__os}}[111rNr(r)r*rWrrrIrzns#
2
2
2
2
2rr~ceZdZdZdS)"UnicodeTest.test_format.<locals>.Jc>t|dz|S)Nr)r[rWrvs  rrWz-UnicodeTest.test_format.<locals>.J.__format__ss~~dQh<<<rNr}rrrJrrs#
=
=
=
=
=rrceZdZdZdZdZdS)"UnicodeTest.test_format.<locals>.Mc||_dSr1r`rRs  rr6z+UnicodeTest.test_format.<locals>.M.__init__wrarcd|jzdzS)NzM(rhr`r9s rrBz+UnicodeTest.test_format.<locals>.M.__repr__yrirN)r(r)r*r6rBr:rrrMrvs1



+
+
+GGGrrceZdZdZdZdZdS)"UnicodeTest.test_format.<locals>.Nc||_dSr1r`rRs  rr6z+UnicodeTest.test_format.<locals>.N.__init__~rarcd|jzdzS)NzN(rhr`r9s rrBz+UnicodeTest.test_format.<locals>.N.__repr__rirN)r(r)r*r6rBrWrrrNr}s1



+
+
+JJJrrro{0}z{0:}zX{0}Xabcz{0}XabcXzX{0}YXabcYz{1}rzX{1}z{1}XzX{1}Yiz-15z{0}{1}z-15abcz{0}X{1}z-15Xabcz{{{z}}}z{{}}{}z{{x}}z{x}z{{{0}}}{z{123}z	{{{{0}}}}z{{0}}z}}{{z}{z}}x{{z}x{z{0[foo-bar]}zfoo-barbazz{0[foo bar]}zfoo barz{0[ ]}rgrrT{foo._x})rS20z{1}{0}r2010z{0._x.x}z{0[0]}rz{0[1]}z	{0[1][0]}z{0[1][0].x}z{0:.3s}abcdefz{0:.0s}z{0:3.3s}z{0:2.3s}z{0:2.2s}z{0:3.2s}zab z{0:x<0s}rWz{0:x<5s}z{0:x<6s}z{0:x<7s}resultxz{0:x<8s}resultxxz{0: <7s}zresult z{0:<7s}z{0:>7s}z resultz{0:>8s}z  resultz{0:^8s}z result z{0:^9s}z	 result  z{0:^10s}z
  result  z{0:8s}zresult  z{0:0s}z{0:08s}result00z{0:<08s}z{0:>08s}00resultz{0:^08s}0result0z	{0:10000}i'i'z{0:10000000}iz{0:<6s}rSzfooz{0:<6s}zfooz{0:^6s}zfooz{0:^6s}z foo  z{0:<6}z3z{0:<6}z3z{0:^6}z3z{0:<6}z3     Q	@z3.14z3.14z3.14z{0:^6}z 3.14 z{0:<12}y@@z(3+2j)z{0:<12}z(3+2j)z{0:^12}z(3+2j)z{0:^12}z   (3+2j)   z{0:abc}z{0!s}Helloz{0!s:}z{0!s:15}zHello          z	{0!s:15s}z{0!r}z'Hello'z{0!r:}zF(Hello)rz'\u0378'ru'ʹ'uF(ʹ)z{0!a}z'\u0374'z{0!a:}z	F(\u0374)rz[1]z{0:d}datazG(data)zstring is dataz{0:^10}z{0:>15s}z{0:date: %Y-%m-%d})yearmonthdayzdate: 2007-08-27z{0:.{1}}hello worldrz	{0:.{1}s}z{0:.{precision}s})	precisionz{0:{width}.{precision}s})widthrz
hello     105{a}azabc{0:{}z{0z{0.}z{0[}z{0]}z{0.[]}z{0..foo}z{0[0}z	{0[0:foo}z{c]}z	{{ {{{0}}z{0}}z{foo})barz{0!x}z{0!}z{0!rs}z{!}z{:}z{:s},23098475029384702983476098230754973209482573z{[z]}z{0:x}??z{0:X}z{0:o}z{0:u}z{0:i}z{0[0]x}z
{0[0](10)}z{0[{1}]}rrz{0:{1:{2}}}rrz{0:{1:{2:{3:{4:{5:{6}}}}}}}rrrz+Sign not allowed in string format specifierz{0:-s}-z,Space not allowed in string format specifierz{: }z{0:=s}#z#20z
{0:s}{1:s}ABCuАБВu	ABCАБВz{[{}]}z{[{]}z{[}]}z{[[]}rz{[!]}rcz{a{}b}rz{a{b}z{[}z0x{:0{:d}X}0x0000000000000000{!r}zM(data)z{!s}zN(data))rTrdatetimedictdater[rhrr
IndexErrorKeyErrorassertRaisesRegex)r5rrr[rcrjrprxr~rrrbigsign_msg	space_msgmns                 rtest_formatzUnicodeTest.test_format2sb)))s+++---............%000	)0088:KLLL/66t7H7H7HII*	,	,	,077??/	1	1	1
MM$2&&/66q99+	-	-	-									#	#	#	#	#	#	#	#	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	<	<	<	<	<	<	<	<	2	2	2	2	2
	2	2	2	=	=	=	=	=	=	=	=																	
b)))///e,,e444u--u555u--v666u--v666..888a//777q%00&999q%00&9995117;;;c**E222e44h???))#u55yAAA,,,,,,$///))5111))#..888++--w777$///))5111	
..	%/@AA5III..	%/@AA5III#a113777**qquu*55t<<<2"66???**11QQuXX;;77???%88%@@@%88%@@@++UUG,<==uEEE--uqqxxj.ABBEJJJ	
))%00%888))$//666))(33U;;;))(33R888**5115999**5115999**5114888**5115999**844h???**844h???**844h???**844i@@@**844jAAA**844i@@@))(33Y???))(33Y???))(33Z@@@))(33Z@@@))(33[AAA**844lCCC22J???22H===))(33Z@@@**844jAAA**844jAAA**844jAAA++C00#d
2BCCC++B//u===..r22C(NCCC	
--e446GHHH--e446GHHH--e446GHHH))%00(;;;,,Q//1HIII,,Q//1HIII,,Q//1HIII++X666,,T22NCCC,,T22NCCC,,T22NCCC..999--f557WXXX--f557WXXX--f557WXXX))&11>BBB	
))!!##..666	
00':::117;;;**7335FGGG++G446GHHH00)<<<119==='

33Z@@@11;???11:>>>(44kBBB00)<<<11;???11;???119==='

33Z@@@(44lCCC	
b))4000b))4000qc**E222&		22I>>>&		224DEEE)Y%5qqyyAAA)Z%6&		BBB)Z%6&		BBB-44QQD=>;=6?6?6?@@,	-	-	-	
aaee,,d333	
s++S111	
**=!<<gFFF++M1==wGGG,33MQ3OOQXYYY3::=PR^_:``bnooo3::=PT`c:ddfrsss	
*cj111*cj111*dk222*dk222*dk222*dk222*el333*elE:::(el333*dk222*j&7888*dk222*fm444*fmQ777*fm444*fmR888(fm444*hoq999*j&7;;;*gna888*k&8!<<<(fm444*k&8!<<<*fmQ777(gn!<<<*gna888*fmQ777*hoq999*el333*el333*fm444*dk222<*sSy3&>???*tczD'8&@1#FFF	
*gnb999*gnc:::*gnb999*gnc:::*gnb999*gnc:::*gnb999*gnc:::*gnb999*gnc:::*gnb999*gnc:::	
*i&6???*l&9D6BBB	
)Z%6	1EEE	
*m&:E3KKK*&C&JQ1aAq	2	2	2Az8X_bIIIz8VREEEB	z9fmRHHH*hor:::	
*fb#666*fb%888	
,,U4HII0	2	2	2))*ABB	 	 	 ))*ABB				
$33S999$66<<<s44c:::s44c:::s44c:::s44c:::*hor:::*gnb999*elB777--c"557KLLL
AfIIq))9555)V]A666)T[!444
AfIIq))9555q))9555)T[!44444rcN|did|did|did|did|did|did	|d
id|did
Gddt}|d|d|d|ddGdd}|d|dGdd}|dd|did|tdj|tdj|t
dji|t
dji|t
dji|t
dji|t
d ji|t
d!ji|t
d"jdd#i|t
d"jd|t
d$jd#d%d&Gd'd(}|tdji|tdjg|tdj|dS))Nrrr/r@rArBrCrDrErFrGrHrIceZdZdZdS),UnicodeTest.test_format_map.<locals>.Mappingc|Sr1rr5keys  r__missing__z8UnicodeTest.test_format_map.<locals>.Mapping.__missing__s
rN)r(r)r*rrrrMappingr#




rrz{hello}rz{a} {world})rrceZdZdZdZdS)4UnicodeTest.test_format_map.<locals>.InternalMappingcddi|_dS)Nrrr,r9s rr6z=UnicodeTest.test_format_map.<locals>.InternalMapping.__init__s #W~rc|j|Sr1rrs  r__getitem__z@UnicodeTest.test_format_map.<locals>.InternalMapping.__getitem__s|C((rN)r(r)r*r6rrrrInternalMappingrs2
.
.
.
)
)
)
)
)rrz{a}ceZdZddZdZdS)&UnicodeTest.test_format_map.<locals>.Crc||_dSr1rPrRs  rr6z/UnicodeTest.test_format_map.<locals>.C.__init__rSrc|Sr1rrUs  rrWz1UnicodeTest.test_format_map.<locals>.C.__format__rXrNrYrZrrrr[rr\rr[rrSrrrrrrrrz{a} {}rrceZdZdZdS)/UnicodeTest.test_format_map.<locals>.BadMappingcddzS)Nrrrrs  rrz;UnicodeTest.test_format_map.<locals>.BadMapping.__getitem__ss
rN)r(r)r*rrrr
BadMappingrrrr)rT
format_maprrhrrrZeroDivisionError)r5rrr[rs     rtest_format_mapzUnicodeTest.test_format_mapzsr**B///++S111,,d333))"--t444))"--t444))"--t444))"--t444**2..666					d				
--ggii88'BBB11''G2D2D2DEE}UUU	)	)	)	)	)	)	)	)
	
))//*;*;<<gFFF								
	
..qquu~>>EEE	
)R]333)S^444*cnb999*cnb999*dor:::*dor:::*dor:::*dor:::	
*doayAAA*dos;;;*h&9!1;M;MNNN									
(E$4b999)U%5r:::+U-=zz||LLLLLrcdtjdz}|t5td|}ddddS#1swxYwYdS)Nz.{}frQ@rrr\rhrr5
format_stringrWs   rtest_format_huge_precisionz&UnicodeTest.test_format_huge_precisions

ckAo66



z
*
*	1	1D-00F	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1AA"Acdtjdz}|t5td|}ddddS#1swxYwYdS)Nz{}frrrrs   rtest_format_huge_widthz"UnicodeTest.test_format_huge_widthsS[1_55



z
*
*	1	1D-00F	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1rcdtjdz}|t5|d}ddddS#1swxYwYdS)Nz
{{{}:.6f}}rrrrs   rtest_format_huge_item_numberz(UnicodeTest.test_format_huge_item_numbers$++CK!O<<



z
*
*	0	0"))$//F	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0sA  A$'A$cGdd}|ddd|ddd|d	dd
|d|dd|dd
dgd|ddddd|ddd
d|dddd|dddd|tdjd
d|td jd
d|td!jd
d|td"jd
d|d#dd$%d&|d'dd$%d(|d)d
d*d+d,d-|d.ddd
d+/d0dS)1NceZdZddZdZdS)1UnicodeTest.test_format_auto_numbering.<locals>.Crc||_dSr1rPrRs  rr6z:UnicodeTest.test_format_auto_numbering.<locals>.C.__init__rSrc|Sr1rrUs  rrWz<UnicodeTest.test_format_auto_numbering.<locals>.C.__format__rXrNrYrZrrrr[rr\rr[rrrz{:5}rrzs    rz's'z{._x}z{[1]}rrrRz{[a]}rr4za{}b{}cra0b1cza{:{}}brz^10za    x     bza{:{}x}brra0x14bz{}{1}z{1}{}z{:{1}}z{0:{}}z{f}{}test)ftest4z{}{f}4testz{:{f}}{g}{}rg)rrz 1g3z{f:{}}{}{g})rrz 14g)rTrrhr)r5r[s  rtest_format_auto_numberingz&UnicodeTest.test_format_auto_numberings									
R$///s++W555s++U333"..555A//555QA77===))!Q//999))#u55~FFF**2s33X>>>	
*gna;;;*gna;;;*hoq!<<<*hoq!<<<	
V44g>>>V44g>>>--acQ-??HHH--aa3-??HHHHHrctj||ddzd|ddzd|ddzd|dd	zd
|ddzd|dd
zdtjdsK|ddzd|ddzd|ddzd|ddddzd|ddddzd|dd zd!|dd"zd#|tdj	d$|dd#zd#|tdj	d%|td&j	d'|td(j	d%|d)d*dizd+|d)d*dizd+|d)d*dizd+|d)d*dizd+|d)dd,d-zd+|d)dd,d-zd+|d.d/zd0|d1d/zd2|d3dzd+|d4d5zd6|d4d7zd8|d9d:zd;|d9d<zd6|d=d>zd?|d@dAzdB|ddCzdCGdDdE}|dF|zd!tdG}tdH}|dI|zdG|dJ|zdK|dI|zdH|dJ|zdL|dMdNzdC|dOdNzdPGdQdR}GdSdT}|dU}|dV}|dWdXzdY|dZd[zd\|d]d^zd_|ddVzd`|dW|zda|dZ|zdb|d]|zdc|d|zd`|
tddtjdWde|
tdftjdZdg|
tdhtjd]di|
tdjtjdW||
tdktjdWdl|
tdmtjdZdn|
tdotjd]dp|
tdqtjdrdl|
tdstjd(dn|
tdttjdudp|
tdvtjd|Gdwdx}|}	|
t dytjdu|	|
t dytjd(|	|
t dytjdr|	|
t dztjdW|	|
t dztjdZ|	|
t dztjd]|	dS){Nz%s, %s)roroabc, abcz%s, %s, %i, %f, %5.2f)rororrrzabc, abc, 1, 2.000000,  3.00)rororrzabc, abc, 1, -2.000000,  3.00)rororrg@zabc, abc, -1, -2.000000,  3.50)rororrg(\@zabc, abc, -1, -2.000000,  3.57)rororrg(\\@z abc, abc, -1, -2.000000, 1003.57rnz%r, %r)rvroz
b'abc', 'abc'z%r)ሴu'ሴ'z%az'\u1234'z%(x)s, %(y)sror)rr-zabc, defu
%(x)s, %(ü)s)rr#z%ci4riu𡒃)rfaau%.1ဲfgUUUUUU?z%i
...%(foo)s...rS	...abc...rrSrz...%s...%s...%s...%s...)rrrroz...1...2...3...abc...z"...%%...%%s...%s...%s...%s...%s...z...%...%s...1...2...3...abc...z...%s...z%*s)rroz  abc)rozabc  z%*.*s)rrroz   ab)rrroz%i %*.*s)rrrroz10   abcz
%i%s %*.*s)rrrrroz	103   abcrceZdZdZdS),UnicodeTest.test_formatting.<locals>.WrappercdS)Nrrr9s rr:z4UnicodeTest.test_formatting.<locals>.Wrapper.__str__sxrNr(r)r*r:rrrWrapperrs#
 
 
 
 
 rr%snaninfz%fz%FNANINFz%.1suaé€z%.2suaéc eZdZdZdZdZdS).UnicodeTest.test_formatting.<locals>.PseudoIntc.t||_dSr1r[r3r4s  rr6z7UnicodeTest.test_formatting.<locals>.PseudoInt.__init__s ZZ


rc|jSr1r2r9s r__int__z6UnicodeTest.test_formatting.<locals>.PseudoInt.__int__
z!rc|jSr1r2r9s r	__index__z8UnicodeTest.test_formatting.<locals>.PseudoInt.__index__rrN)r(r)r*r6rrrrr	PseudoIntr
sA
(
(
(
"
"
"
"
"
"
"
"rrceZdZdZdZdS)0UnicodeTest.test_formatting.<locals>.PseudoFloatc.t||_dSr1)floatr3r4s  rr6z9UnicodeTest.test_formatting.<locals>.PseudoFloat.__init__!s"5\\


rc*t|jSr1rr9s rrz8UnicodeTest.test_formatting.<locals>.PseudoFloat.__int__#s4:&rN)r(r)r*r6rrrrPseudoFloatr s2
*
*
*
'
'
'
'
'rrgo!	@mz%xr2az%Xrpz%or11r6d6D155z,%x format: an integer is required, not floatrz,%X format: an integer is required, not floatgzG@z,%o format: an integer is required, not floatgp=
ף?z2%x format: an integer is required, not PseudoFloatz.%x format: an integer is required, not complexy@z.%X format: an integer is required, not complexy@z.%o format: an integer is required, not complexrz1%u format: a real number is required, not complexz%uz1%i format: a real number is required, not complexz1%d format: a real number is required, not complexz%dz%c requires int or charceZdZdZdZdS)2UnicodeTest.test_formatting.<locals>.RaisingNumberc td)Nr[RuntimeErrorr9s rrz:UnicodeTest.test_formatting.<locals>.RaisingNumber.__int__<s"5)))rc td)Nrr&r9s rrz<UnicodeTest.test_formatting.<locals>.RaisingNumber.__index__>s"7+++rN)r(r)r*rrrrr
RaisingNumberr$;s2
*
*
*
,
,
,
,
,rr)r[r)rrBtest_formattingrTrrrrhr]__mod__rrrroperatormodr')
r5rr
rrrpiletter_mr)rns
          rr*zUnicodeTest.test_formattings2BB4HHHN2J???03JJLjkkk03KKMlmmm03NNPpqqq03OOQqrrr03RRTvwww|&&v..	>X7IIITK/<<<TK/===u%*@*@@*MMM*%-F-FF
SSS111666-{CCC,l;;;)T\4888*l&:UDDD)T\4888	
E%=8+FFFE%=8+FFFE%=8+FFFE%=8+FFF%c+B+BB[QQQ%c+B+BBKPPP2]BD[\\\=
MOopppe+[999+W555,g666</999</999&66
CCC(=={KKKS)))	 	 	 	 	 	 	 	 	
		)8444EllEllU+++U+++U+++U+++	
-/555-/999	"	"	"	"	"	"	"	"	'	'	'	'	'	'	'	'
[
 
 9S>>D)))C(((4(((S)))$///$///%000#...y*XZbZfhlnrsssy*XZbZfhlnrsssy*XZbZfhlnrsssy*^`h`lnrtvwwwy*Z\d\hjnprsssy*Z\d\hjnprsssy*Z\d\hjnprsssy*]_g_kmqsuvvvy*]_g_kmqsuvvvy*]_g_kmqsuvvvy*CX\SWY[\\\	,	,	,	,	,	,	,	,]__|UHL$KKK|UHL$KKK|UHL$KKK|WhlD"MMM|WhlD"MMM|WhlD"MMMMMrc
*ddl}Gddt|j}Gdd|j}Gdd|j}||jd|jd	|d
|j|j|j|j|j|j|jfzd|dd
|jizd|dd
|jizd|dd
|jizd|dd
|jizd|dd
|jizd|d|j|jdzd|d|jddzddS)NrceZdZdZdS)4UnicodeTest.test_formatting_with_enum.<locals>.FloatgJM!	@N)r(r)r*PIrrrFloatr3LsBBBrr5ceZdZdZdS)2UnicodeTest.test_formatting_with_enum.<locals>.IntrN)r(r)r*IDESrrrIntr7OsDDDrr9ceZdZdZdS)2UnicodeTest.test_formatting_with_enum.<locals>.StrroN)r(r)r*rrrrStrr;RsCCCrr<z, rz%s, %s, %d, %i, %u, %f, %5.2fz%abc, abc, 15, 15, 15, 3.141593,  3.14rrSrz
...%(foo)r...z...<Int.IDES: 15>...z...15...z
...%(foo)i...z
...%(foo)d...z
...%(foo)u...rz
...%(foo)f...rz...3.141593...)	enumrEnumIntEnumStrEnumrTrr8r4)r5r=r5r9r<s     rtest_formatting_with_enumz%UnicodeTest.test_formatting_with_enumIs>					E49								$,								$,				
SWWWcgg6#	%	%	%8#'38SX58--A		B	B	B	
E#'?:$	&	&	&E#(+;;/	1	1	1E#(+;;#	%	%	%E#(+;;#	%	%	%E#(+;;#	%	%	%#(%(+K+KK#	%	%	%%(+E+EE)	+	+	+	+	+rcdtjdz}|t5|dz}ddddS#1swxYwYdSNz%.{}frrrrs   rtest_formatting_huge_precisionz*UnicodeTest.test_formatting_huge_precisionnss{Q77



z
*
*	*	*"T)F	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*AAAcpGddt}|d|dzddS)NceZdZdZdS)BUnicodeTest.test_issue28598_strsubclass_rhs.<locals>.SubclassedStrc,d|S)Nz'Success, self.__rmod__({!r}) was calledr)r5others  r__rmod__zKUnicodeTest.test_issue28598_strsubclass_rhs.<locals>.SubclassedStr.__rmod__ws@GGNNNrN)r(r)r*rLrrr
SubclassedStrrHvs(
O
O
O
O
OrrMz	lhs %% %rrhsz.Success, self.__rmod__('lhs %% %r') was calledrPrT)r5rMs  rtest_issue28598_strsubclass_rhsz+UnicodeTest.test_issue28598_strsubclass_rhsssq	O	O	O	O	OC	O	O	O	
}}U';';;I	K	K	K	K	Krcdtjdz}|t5|dz}ddddS#1swxYwYdSrC)rrINT_MAXrhrrs   r'test_formatting_huge_precision_c_limitsz3UnicodeTest.test_formatting_huge_precision_c_limits|s y'81'<==



z
*
*	*	*"T)F	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*rEcdtjdz}|t5|dz}ddddS#1swxYwYdS)Nz%{}frrrrs   rtest_formatting_huge_widthz&UnicodeTest.test_formatting_huge_widths

ckAo66



z
*
*	*	*"T)F	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*rEc$djdjfD]}|t5}|dgdddn#1swxYwYt	|j}|d||d|dS)NrSrrPr)rendswithrhrrP	exceptionr4)r5rcmexcs    rtest_startswith_endswith_errorsz+UnicodeTest.test_startswith_endswith_errorss%u~6	(	(D""9--
cU














bl##CMM%%%%MM'3''''	(	(s
AA	A	LC_ALLde_DEfr_FRc8|dddzdS)Nz1.0z%.1frrTr9s rtest_format_floatzUnicodeTest.test_format_floats$	
-----rc	^|tdddD]}t|}|t|||t|t||dkrR||dd||dd|tddGdd}|t|d	d	|d
}|t|d
|t|d
dD]?}|t|tt|@t
jds#|ttd
dd|tddddt
jds2|ttdddd|ttddddS)Nzunicode remains unicode)rr r~rrsasciiutf-8z strings are converted to unicodeceZdZdZdZdS)2UnicodeTest.test_constructor.<locals>.StringCompatc||_dSr1r`rRs  rr6z;UnicodeTest.test_constructor.<locals>.StringCompat.__init__rarc|jSr1r`r9s rr:z:UnicodeTest.test_constructor.<locals>.StringCompat.__str__s	v
rNr<rrrStringCompatres2







rrhz)__str__ compatible objects are recognizedz#unicode(obj) is compatible to str())rg^@rrnz!decoding unicode is not supportedrsstrings are decoded to unicodezstrings are decoded to unicodes(character buffers are decoded to unicodez(character buffers are decoded to unicoder)rTrPr&lenr!rrrrhr
memoryview)r5r#subclassrhoobjs      rtest_constructorzUnicodeTest.test_constructors	
)**%	
	
	

>	E	ED"4((HS]]D111S]]CII666w  !9!98DDD  !9!98DDD233.	
	
	

									
HIIJJ7	
	
	

L>??Q!FGGGQ!FGGG%	6	6CSXXs3s88}}5555
|&&v..	3


	
17HEE,	
	
	

|&&v..	JKK
;



	
)S"b"55555rc,|tdd|tddd|tddd|tdddd	S)
z>Pass various keyword argument combinations to the constructor.rS)rXsfoorc)rXrrr)rXrN)rTrPr9s rtest_constructor_keyword_argsz)UnicodeTest.test_constructor_keyword_argss	
E***E222FW===uEEEVH555u===F8<<<eDDDDDrcL|td|tdddd}|t|dd|tt|ddS)	z(Check the constructor argument defaults.rrrp¢rcr)rN)rTrPr!rhUnicodeDecodeError)r5	utf8_cents  rtest_constructor_defaultsz%UnicodeTest.test_constructor_defaultss	
###H---r222KK((	Yx888$???,c9wOOOOOrcgd}|D].\}}||d|/|ddd|ddd|ddd|d	dd
|ddd|ddd|ddd|d
dd	|ddd|ddd|d
dddd}d}|D]z}||d|d||dd|{|D]>}||dd|?|td5ddddddS#1swxYwYdS)N))uA≢Α.s	A+ImIDkQ.)u
Hi Mom -☺-!sHi Mom -+Jjo--!)u	日本語s
+ZeVnLIqe-)uItem 3 is £1.sItem 3 is +AKM-1.)+s+-)z+-s+--z+?s+-?)z\?s+AFw?ry)z\\?s+AFwAXA?)z\\\?s
+AFwAXABc?)z++--s+-+---)u򫳞s+2m/c3g-)//utf-7us+2AE-uxs+2AE-xus+3AE-uxs+3AE-xu򫳞s
+2AHab9ze-s+rurzGABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'(),-./:?z!"#$%&*;<=>@[]^_`{|}utf7rzill-formed sequences+@)rTr!r"rrt)r5utfTestsrr-set_dset_ors       rtest_codecs_utf7zUnicodeTest.test_codecs_utf7s,


"	3	3FQQXXg..2222	
118<<<))'22I>>>118<<<))'22I>>>118<<<))'22I>>>118<<<))'22I>>>+227;;]KKK--g668JKKK	
(;;R@@@Z&	B	BAQXXf--qxx/@/@AAAQXXg..55f==qAAAA	B	BAQXXg..55f==qAAAA

#
#$6$9;;	"	"LL!!!	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"sK::K>K>cr|ddd|ddd|ddd|ddd	|d
ddd|d
ddd|ddd|ddd|td	dd|tddd|tddddS)Nrrcrr~s€u𐀂s𐀂u𣑖s𣑖r
surrogatepasssusu(𐀂𐀂𐀂𐀂𐀂𐀂𐀂𐀂𐀂𐀂s(𐀂𐀂𐀂𐀂𐀂𐀂𐀂𐀂𐀂𐀂u正確に言うと翻訳はされていません。一部はドイツ語ですが、あとはでたらめです。実際には「Wenn ist das Nunstuck git unds正確に言うと翻訳はされていません。一部はドイツ語ですが、あとはでたらめです。実際には「Wenn ist das Nunstuck git und)rTr!rPr9s rtest_codecs_utf8zUnicodeTest.test_codecs_utf8"s7++S11111?CCC,,W557JKKK,,W557JKKK/BBOTTT/BBOTTT/11'::/	1	1	1
 
!'w	
9	
	
	
(	
0'::LJJJ0'::LJJJ_g66BBBBBrcpgd}|D].\}}||d|/dS)N))r0)ar))s€€)s߿u߿)sࠀuࠀ)s퟿u퟿)sr)s￿re)s𐀀r;)s􏿿rrc)rTr")r5	sequencesr_ress    r test_utf8_decode_valid_sequencesz,UnicodeTest.test_utf8_decode_valid_sequencesGsW


	"	7	7HCSZZ00#6666	7	7rczdtddD}dtddD}dtddD}||z|zd	td
dDz}|D]#}|t|jd$|D]+}|D]&}|t||zjd',|D]F}|dd
D]9}|dd
D],}	|t||zdz|	zjd-:GdtddDD]P}|td|zdzjd|td|zdzjdQdtddDD]P}|td|zdzjd|td|zdzjdQdtddDD]P}|td|zdzjd|td|zdzjdQdtddDD]P}|td|zdzjd|td|zdzjdQdS)Nc.g|]}t|gSrrX.0rs  r
<listcomp>zBUnicodeTest.test_utf8_decode_invalid_sequences.<locals>.<listcomp>Zs DDDQeQCjjDDDrc.g|]}t|gSrrrs  rrzBUnicodeTest.test_utf8_decode_invalid_sequences.<locals>.<listcomp>\ %L%L%LQeQCjj%L%L%Lrc.g|]}t|gSrrrs  rrzBUnicodeTest.test_utf8_decode_invalid_sequences.<locals>.<listcomp>^rrc.g|]}t|gSrrrs  rrzBUnicodeTest.test_utf8_decode_invalid_sequences.<locals>.<listcomp>as )Q)Q)Q%**)Q)Q)Qrrrcrc.g|]}t|gSrrrs  rrzBUnicodeTest.test_utf8_decode_invalid_sequences.<locals>.<listcomp>q 999!5!::999rc.g|]}t|gSrrrs  rrzBUnicodeTest.test_utf8_decode_invalid_sequences.<locals>.<listcomp>wrrc.g|]}t|gSrrrs  rrzBUnicodeTest.test_utf8_decode_invalid_sequences.<locals>.<listcomp>|rrsc.g|]}t|gSrrrs  rrzBUnicodeTest.test_utf8_decode_invalid_sequences.<locals>.<listcomp>rr)rrhrtr")
r5continuation_bytesinvalid_2B_seq_start_bytesinvalid_4B_seq_start_bytesinvalid_start_bytesbytesbcbcb1cb3s
          r"test_utf8_decode_invalid_sequencesz.UnicodeTest.test_utf8_decode_invalid_sequencesXsDD%d2C2CDDD%L%L%d:K:K%L%L%L"%L%L%d:K:K%L%L%L"!;;&
')Q)QeD%>P>P)Q)Q)Q
R	
(	H	HD0$+wGGGG,	O	OB(
O
O!!"4r"ungNNNN
O-	L	LB)"1"-
L
L-bqb1LLC%%&8')#vg~c'9&A7LLLLL
L
:9uT4'8'8999	D	DB0&rz'197
D
D
D0&rz'197
D
D
D
D:9uT4'8'8999	D	DB0&rz'197
D
D
D0&rz'197
D
D
D
D99uT4'8'8999	H	HB0&rz+5=w
H
H
H0&rz+5=w
H
H
H
H99uT4'8'8999	H	HB0&rz+5=w
H
H
H0&rz+5=w
H
H
H
H	H	Hrc2d}gd|fd|dzfd|fd|dzfd|fd|dzfd	|dzfd
|fd|dzfd|d
zfd|dzfd|fd|dzfd|d
zfd|dzfd|fd|dzfd|dz|zfd|dzfd|dzfd|dzdzfd|dz|zfd|fd|dzfd|d
zfd |dzfd!|d"zfd#|fd$|fd%|dzfd&|dzfd'|dzfd(|dz|zfd)|dz|dzzfd*|dz|zdzfd+|dz|zfd,|dz|zfd-|dz|dzzfd.|dzdzfd/|dz|dzzfd0|fd1|dzfd2|dzfd3|d
zfd4|dzfd5|dzdzfd6|dzdz|zfd7|dz|dzzdzfd8|fd9|dzfd:|dzfd;|dzdzfd<|d"zfd=|fd>|dzfd?|d
zfd@|dAzfdB|fdC|d
zfdDdEdFdG}t|D]\}\}}|t|jdHdI||dHdJ|||dKzdHdJ|dLz||dHdM|ddNdS)ON�rrrsssssrsArZsssrssAsAsAAAAsAsAsAssssrsssAsAAsAsAsAsAAsAAsAsAsAsAsssssAsAsAAsssAssssrs)sABCu�ABC)sBCu��BC)sCu�C)s
abcdua���b�c��drcrrbbrrur)	enumeraterhrtr"rTrb)r5FFFDrrr_rs      rtest_issue8271zUnicodeTest.test_issue8271sJ

dOJ
$q&!J
dO	J

$q&!J
dO
J
$q&!J
$q&!J
dOJ
$q&!J
d1f%J
$s(#J
dOJ
 $q&!!J
"d1f%#J
$!$q&)%J
&$'J
($s(#)J
*d3htm,+J
,d4i(-J
.d3h'/J
0!$q&*-1J
2!$s(4-03J
6dO7J
8$q&!9J
:d1f%;J
<!$q&)=J
>%d1f-?J
@$AJ
Bd#CJ
Dd3h'EJ
F!$t),GJ
H!$s(+IJ
Jd3htm,KJ
L!$s(46/2MJ
N!$s(4-"34OJ
P!$t)D.1QJ
R!$s(4-0SJ
T!$s(46/2UJ
V!$q&*-WJ
X!$s(46/2YJ
\dO]J
^$q&!_J
`$q&!aJ
bd1f%cJ
d!$q&)eJ
fd1fSj)gJ
h!$q&*T/2iJ
j%d3htAvoc&9:kJ
ndOoJ
p$q&!qJ
r$q&!sJ
td1fsl+uJ
v%d1f-wJ
zdO{J
|$q&!}J
~d1f%J
@)$q&1AJ
DdOEJ
Fd1f%GJ
J
<KJ
L
>MJ
N
8OJ
P
EQJ
	V'y11	8	8MAzS0#*gxPPPSZZ;;SAAAc$h..w	BBCGLLLSZZ:: [[266
8
8
8
8		8	8rc|t5}|ddddn#1swxYwY|j}||t|||dd||d|zdzddd|zdz|dd	}||dd
||d|zdzdd
d|zdzdS)z
        Check that an invalid UTF-8 sequence raises a UnicodeDecodeError when
        'strict' is used, returns res when 'replace' is used, and that doesn't
        return anything when 'ignore' is used.
        rcNrbsaaaasbbbbaaaabbbbrrru)rhrtr"rXr4rPrTrb)r5r_rerrrYrZs      rassertCorrectUTF8Decodingz%UnicodeTest.assertCorrectUTF8Decodings

1
2
2	 bJJw	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 l

c3s88$$$GY77==='C-'199'9MM#.	0	0	0kk(B''GX66<<<'C-'199'8LL 3,/	1	1	1	1	1s=AAc^d}dD]'}|t|gdd(dS)ah
        Test that an 'invalid start byte' error is raised when the first byte
        is not in the ASCII range or is not a valid start byte of a 2-, 3-, or
        4-bytes sequence. The invalid start byte is replaced with a single
        U+FFFD when errors='replace'.
        E.g. <80> is a continuation byte and can appear only after a start byte.
        rszinvalid start byteN)rrX)r5rrs   rtest_invalid_start_bytez#UnicodeTest.test_invalid_start_bytesV7	A	AD**5$==(+?
A
A
A
A	A	Arczgd}d}|D]1}|t|dd2dS)aa
        Test that an 'unexpected end of data' error is raised when the string
        ends after a start byte of a 2-, 3-, or 4-bytes sequence without having
        enough continuation bytes.  The incomplete sequence is replaced with a
        single U+FFFD when errors='replace'.
        E.g. in the sequence <F3 80 80>, F3 is the start byte of a 4-bytes
        sequence, but it's followed by only 2 valid continuation bytes and the
        last continuation bytes is missing.
        Note: the continuation bytes must be all valid, if one of them is
        invalid another error will be raised.
        )&C2DFzE0 A0zE0 BFzE1 80zE1 BFzEC 80zEC BFzED 80zED 9FzEE 80zEE BFzEF 80zEF BFzF0 90zF0 BFzF0 90 80zF0 90 BFzF0 BF 80zF0 BF BFzF1 80zF1 BFzF1 80 80zF1 80 BFzF1 BF 80zF1 BF BFzF3 80zF3 BFzF3 80 80zF3 80 BFzF3 BF 80zF3 BF BFzF4 80zF4 8FzF4 80 80zF4 80 BFzF4 8F 80zF4 8F BFrzunexpected end of dataNrrXfromhex)r5rrr_s    rtest_unexpected_end_of_dataz'UnicodeTest.test_unexpected_end_of_datask


		E	EC**5==+=+=x+C
E
E
E
E	E	Erc	d}|dz}d|dzfd|dzfd|fd|fd	|dzfd
|dzfd|fd|fg}|D]4\}}|t||d
5dS)a
        Test that an 'invalid continuation byte' error is raised when the
        continuation byte of a 2-bytes sequence is invalid.  The start byte
        is replaced by a single U+FFFD and the second byte is handled
        separately when errors='replace'.
        E.g. in the sequence <C2 41>, C2 is the start byte of a 2-bytes
        sequence, but 41 is not a valid continuation byte because it's the
        ASCII letter 'A'.
        rrzC2 00r0zC2 7FrzC2 C0zC2 FFzDF 00zDF 7FzDF C0zDF FFinvalid continuation byteNrr5rFFFDx2rr_rs      rtest_invalid_cb_for_2bytes_seqz*UnicodeTest.test_invalid_cb_for_2bytes_seqs
d6k"Wd6k$:
f0
d6k"Wd6k$:
f0	
	"	H	HHC**5==+=+=s+F
H
H
H
H	H	Hrcd}|dz}gd|dzfd|dzfd|fd|fd	|fd
|fd|dzfd|dzfd
|fd|fd|dzfd|dzfd|fd|fd|dzfd|dzfd|fd|fd|dzfd|dzfd|fd|fd|dzfd|dzfd|fd|fd|dzfd |dzfd!|fd"|fd#|dzfd$|dzfd%|fd&|fd'|dzfd(|dzfd)|fd*|fd+|dzfd,|dzfd-|fd.|fd/|fd0|fd1|dzfd2|dzfd3|fd4|fd5|dzfd6|dzfd7|fd8|fd9|dzfd:|dzfd;|fd<|fd=|dzfd>|dzfd?|fd@|fdA|dzfdB|dzfdC|fdD|fdE|dzfdF|dzfdG|fdH|fdI|dzfdJ|dzfdK|fdL|fdM|dzfdN|dzfdO|fdP|f}|D]4\}}|t||dQ5dRS)Sa
        Test that an 'invalid continuation byte' error is raised when the
        continuation byte(s) of a 3-bytes sequence are invalid.  When
        errors='replace', if the first continuation byte is valid, the first
        two bytes (start byte + 1st cb) are replaced by a single U+FFFD and the
        third byte is handled separately, otherwise only the start byte is
        replaced with a U+FFFD and the other continuation bytes are handled
        separately.
        E.g. in the sequence <E1 80 41>, E1 is the start byte of a 3-bytes
        sequence, 80 is a valid continuation byte, but 41 is not a valid cb
        because it's the ASCII letter 'A'.
        Note: when the start byte is E0 or ED, the valid ranges for the first
        continuation byte are limited to A0..BF and 80..9F respectively.
        Python 2 used to consider all the bytes in range 80..BF valid when the
        start byte was ED.  This is fixed in Python 3.
        rrzE0 00r0zE0 7FrzE0 80zE0 9FzE0 C0zE0 FFzE0 A0 00zE0 A0 7FzE0 A0 C0zE0 A0 FFzE0 BF 00zE0 BF 7FzE0 BF C0zE0 BF FFzE1 00zE1 7FzE1 C0zE1 FFzE1 80 00zE1 80 7FzE1 80 C0zE1 80 FFzE1 BF 00zE1 BF 7FzE1 BF C0zE1 BF FFzEC 00zEC 7FzEC C0zEC FFzEC 80 00zEC 80 7FzEC 80 C0zEC 80 FFzEC BF 00zEC BF 7FzEC BF C0zEC BF FFzED 00zED 7FzED A0zED BFzED C0zED FFzED 80 00zED 80 7FzED 80 C0zED 80 FFzED 9F 00zED 9F 7FzED 9F C0zED 9F FFzEE 00zEE 7FzEE C0zEE FFzEE 80 00zEE 80 7FzEE 80 C0zEE 80 FFzEE BF 00zEE BF 7FzEE BF C0zEE BF FFzEF 00zEF 7FzEF C0zEF FFzEF 80 00zEF 80 7FzEF 80 C0zEF 80 FFzEF BF 00zEF BF 7FzEF BF C0zEF BF FFrNrrs      rtest_invalid_cb_for_3bytes_seqz*UnicodeTest.test_invalid_cb_for_3bytes_seq0sy""

d6k""
%,d6k$:"
=Df<M"

f"
 '0"
3:F2C"
f%"
)3DK'@"
 	"
$.v"6	"

f%"

)3DK'@"
 
"
$.v"6
"
:A$v+8N
"
d6k""
&-f$5"
9@7H"
f%"
)3DK'@"
 "
$.v"6"
f%"
)3DK'@"
 "
$.v"6"
:A$v+8N"
d6k""
&-f$5"
9@7H"
f%"
)3DK'@"
 "
$.v"6"
f%"
)3DK'@"
  !"
 $.v"6!"
 :A$v+8N!"
"d6k"#"
$f%"
$!(0%"
&f'"
&!(0'"
&4>tF{2K'"
(f%)"
()3F';)"
* +"
*$.tF{";+"
,f%-"
,)3F';-"
. /"
.$+DK"8/"
0d6k"1"
0&-f$51"
09@7H1"
2f%3"
2)3DK'@3"
4 5"
4$.v"65"
6f%7"
6)3DK'@7"
8 9"
8$.v"69"
8:A$v+8N9"
:d6k";"
:&-f$5;"
:9@7H;"
<f%="
<)3DK'@="
> ?"
>$.v"6?"
@f%A"
@)3DK'@A"
B C"
B$.v"6C"
	F"	H	HHC**5==+=+=s+F
H
H
H
H	H	Hrcvd}|dz}gd|dzfd|dzfd|fd|fd	|fd
|fd|dzfd|dzfd
|fd|fd|dzfd|dzfd|fd|fd|dzfd|dzfd|fd|fd|dzfd|dzfd|fd|fd|dzfd|dzfd|fd|fd|dzfd |dzfd!|fd"|fd#|dzfd$|dzfd%|fd&|fd'|dzfd(|dzfd)|fd*|fd+|dzfd,|dzfd-|fd.|fd/|dzfd0|dzfd1|fd2|fd3|dzfd4|dzfd5|fd6|fd7|dzfd8|dzfd9|fd:|fd;|dzfd<|dzfd=|fd>|fd?|dzfd@|dzfdA|fdB|fdC|dzfdD|dzfdE|fdF|fdG|dzfdH|dzfdI|fdJ|fdK|dzfdL|dzfdM|fdN|fdO|dzfdP|dzfdQ|fdR|fdS|dzfdT|dzfdU|fdV|fdW|dzfdX|dzfdY|fdZ|fd[|dzfd\|dzfd]|fd^|fd_|fd`|fda|dzfdb|dzfdc|fdd|fde|dzfdf|dzfdg|fdh|fdi|dzfdj|dzfdk|fdl|fdm|dzfdn|dzfdo|fdp|fdq|dzfdr|dzfds|fdt|fdu|dzfdv|dzfdw|fdx|f}|D]4\}}|t||dy5dzS){at
        Test that an 'invalid continuation byte' error is raised when the
        continuation byte(s) of a 4-bytes sequence are invalid.  When
        errors='replace',the start byte and all the following valid
        continuation bytes are replaced with a single U+FFFD, and all the bytes
        starting from the first invalid continuation bytes (included) are
        handled separately.
        E.g. in the sequence <E1 80 41>, E1 is the start byte of a 3-bytes
        sequence, 80 is a valid continuation byte, but 41 is not a valid cb
        because it's the ASCII letter 'A'.
        Note: when the start byte is E0 or ED, the valid ranges for the first
        continuation byte are limited to A0..BF and 80..9F respectively.
        However, when the start byte is ED, Python 2 considers all the bytes
        in range 80..BF valid.  This is fixed in Python 3.
        rrzF0 00r0zF0 7FrzF0 80zF0 8FzF0 C0zF0 FFzF0 90 00zF0 90 7FzF0 90 C0zF0 90 FFzF0 BF 00zF0 BF 7FzF0 BF C0zF0 BF FFzF0 90 80 00zF0 90 80 7FzF0 90 80 C0zF0 90 80 FFzF0 90 BF 00zF0 90 BF 7FzF0 90 BF C0zF0 90 BF FFzF0 BF 80 00zF0 BF 80 7FzF0 BF 80 C0zF0 BF 80 FFzF0 BF BF 00zF0 BF BF 7FzF0 BF BF C0zF0 BF BF FFzF1 00zF1 7FzF1 C0zF1 FFzF1 80 00zF1 80 7FzF1 80 C0zF1 80 FFzF1 BF 00zF1 BF 7FzF1 BF C0zF1 BF FFzF1 80 80 00zF1 80 80 7FzF1 80 80 C0zF1 80 80 FFzF1 80 BF 00zF1 80 BF 7FzF1 80 BF C0zF1 80 BF FFzF1 BF 80 00zF1 BF 80 7FzF1 BF 80 C0zF1 BF 80 FFzF1 BF BF 00zF1 BF BF 7FzF1 BF BF C0zF1 BF BF FFzF3 00zF3 7FzF3 C0zF3 FFzF3 80 00zF3 80 7FzF3 80 C0zF3 80 FFzF3 BF 00zF3 BF 7FzF3 BF C0zF3 BF FFzF3 80 80 00zF3 80 80 7FzF3 80 80 C0zF3 80 80 FFzF3 80 BF 00zF3 80 BF 7FzF3 80 BF C0zF3 80 BF FFzF3 BF 80 00zF3 BF 80 7FzF3 BF 80 C0zF3 BF 80 FFzF3 BF BF 00zF3 BF BF 7FzF3 BF BF C0zF3 BF BF FFzF4 00zF4 7FzF4 90zF4 BFzF4 C0zF4 FFzF4 80 00zF4 80 7FzF4 80 C0zF4 80 FFzF4 8F 00zF4 8F 7FzF4 8F C0zF4 8F FFzF4 80 80 00zF4 80 80 7FzF4 80 80 C0zF4 80 80 FFzF4 80 BF 00zF4 80 BF 7FzF4 80 BF C0zF4 80 BF FFzF4 8F 80 00zF4 8F 80 7FzF4 8F 80 C0zF4 8F 80 FFzF4 8F BF 00zF4 8F BF 7FzF4 8F BF C0zF4 8F BF FFrNrrs      rtest_invalid_cb_for_4bytes_seqz*UnicodeTest.test_invalid_cb_for_4bytes_seqjsx 8

d6k"8
%,d6k$:8
=Df<M8

f8
 '08
3:F2C8
f%8
)3DK'@8
 	8
$.v"6	8

f%8

)3DK'@8
 
8
$.v"6
8
DK(8
,9$v+*F8
F#8
'4V%<8
DK(8
,9$v+*F8
F#8
'4V%<8
DK(8
,9$v+*F8
F#8
'4V%<8
DK(8
,9$v+*F8
F#8
'4V%<8
d6k"8
&-d6k$:8
>Ef<M8
 f!8
 !+DK8!8
"f%#8
")3F';#8
$ %8
$$.tF{";%8
&f%'8
&)3F';'8
( )8
($1$v+">)8
*DK(+8
*,9&*A+8
,F#-8
,'4T&[%A-8
.DK(/8
.,9&*A/8
0F#18
0'4T&[%A18
2DK(38
2,9&*A38
4F#58
4'4T&[%A58
6DK(78
6,9&*A78
8F#98
8'.tF{%;98
:d6k";8
:&-f$5;8
:9@7H;8
<f%=8
<)3DK'@=8
> ?8
>$.v"6?8
@f%A8
@)3DK'@A8
B C8
B$.v"6C8
DDK(E8
D,9$v+*FE8
FF#G8
F'4V%<G8
HDK(I8
H,9$v+*FI8
JF#K8
J'4V%<K8
LDK(M8
L,9$v+*FM8
NF#O8
N'4V%<O8
PDK(Q8
P,9$v+*FQ8
RF#S8
R'4V%<S8
Td6k"U8
T&-d6k$:U8
T>Ef<MU8
VfW8
V!(0W8
V4;F2CW8
Xf%Y8
X)3DK'@Y8
Z [8
Z$.v"6[8
\f%]8
\)3DK'@]8
^ _8
^$.v"6_8
`DK(a8
`,9$v+*Fa8
bF#c8
b'4V%<c8
dDK(e8
d,9$v+*Fe8
fF#g8
f'4V%<g8
hDK(i8
h,9$v+*Fi8
jF#k8
j'4V%<k8
lDK(m8
l,9$v+*Fm8
nF#o8
n'4V%<o8
	r"	H	HHC**5==+=+=s+F
H
H
H
H	H	HrcX|ddddS)Nzwww.python.org.idnaswww.python.org.)rTr!r9s rtest_codecs_idnazUnicodeTest.test_codecs_idnas.*11&99;MNNNNNrc
|tdjd|tdjdd|dddd|dddd|dddddd|dddddd	|ttd
d|ttd
dd|t	d
ddd|t	d
ddd|t	d
ddd|dddd|tdjd|tdjd|ttdd|tdjd|tdjd|tdjddd|ttd|ttd|ttd|ttd|ttd|ttddS)NuAndr‚ xrrrusAndr xrbsAndr? xrp)rrsAndr xzAndr xu	Andr� xs xu� xs	\N{foo}xxzunicode-escapexx\hellorrrrru)rhUnicodeErrorr!rTrPr"rrr[rcomplexr9s rtest_codecs_errorszUnicodeTest.test_codecs_errorss,(;WEEE,(;WXNNN,,WX>>	JJJ,,WY??LLL,,Wi@@%,,WY,GG	I	I	I,,Wh??%,,gh,OO	Q	Q	Q	
,]GDDD,]GXNNN]GX>>III]GY??PPPY;;ZHHH	
--.>II4PPP	
,6FGGG)X_oFFF)S(ODDD)W^_EEE)W^_EEE	
)W^RR@@@	
*c8444*c8444*eX666*eX666*gx888*gx88888rc|ddd|ddd|ddd|ddd|ddd|ddd	|dd
d|ddtd
D]M}t|}dD]9}|t	||||:NtdD]M}t|}dD]9}|t	||||:NtdD]M}t|}dD]9}|t	||||:Ntj5d}dD]9}|t	||||:	dddn#1swxYwYdttttddttddz}dD]9}|t	||||:dS)Nrrrr|rc	utf-16-les
hello	utf-16-bes
hellolatin-1u☃s☃i)r|rcutf-16rrraw_unicode_escapeunicode_escaper)rr)ru𐀁𠀂𰀃񀀄񐀅)rcrrrrrrriirf)rc)
rTr!rrrPrxcatch_warningsrrlist)r5rrrs    rtest_codecszUnicodeTest.test_codecss00(;;;00(;;;00(;;;00(;;;446RSSS446RSSS	22H===	
**O<<<t	F	FAAA/
F
F  QXXh%7%7!A!A1EEEE
Fs	F	FAAA(
F
F  QXXh%7%7!A!A1EEEE
Fs	F	FAAA&
F
F  QXXh%7%7!A!A1EEEE
F
$
&
&	F	FDAE
F
F  QXXh%7%7!A!A1EEEE
F	F	F	F	F	F	F	F	F	F	F	F	F	F	F	F
GGCT%6"2"233!%"9"9::;<<
=
="	B	BHS(!3!3H==qAAAA	B	Bs2?J>>KKchttd}dD]9}|t||||:ttdd}dD]9}|t||||:dS)Nr)9cp037cp1026cp273cp437cp500cp720cp737cp775cp850cp852cp855cp858cp860cp861cp862cp863cp865cp866cp1125
iso8859_10
iso8859_13
iso8859_14
iso8859_15	iso8859_2	iso8859_3	iso8859_4	iso8859_5	iso8859_6	iso8859_7	iso8859_9koi8_rkoi8_tkoi8_ukz1048latin_1mac_cyrillic
mac_latin2cp1250cp1251cp1252cp1253cp1254cp1255cp1256cp1257cp1258cp856cp857cp864cp869cp874	mac_greekmac_iceland	mac_romanmac_turkishcp1006	iso8859_8r) rrrrrrrrrrrrrrrrrrrrrrrrr
rrrrrrr)rXrrTrPr!)r5rrrs   rtest_codecs_charmapzUnicodeTest.test_codecs_charmap	s%**	C	CH2
SH--44X>>BBBB
%S//""	C	CH*
SH--44X>>BBBB+	C	Crc|dd|dd|dd|dd|dddS)Nrrr`r9s rtest_concatenationzUnicodeTest.test_concatenationL	sx+111+111+111+k:::+k:::::rcxd}|dd}|||d}|dd}|||d}|dd}|||	dd|ddS#t$rA}||jd||jdYd}~dSd}~wwxYw)	Nr:zraw-unicode-escapes
\U00100000s
\U00010000s
\U11111111z%Should have raised UnicodeDecodeErrorrr)r!r"rTfailrtstartend)r5rr-rs    r	test_ucs4zUnicodeTest.test_ucs4S	sN
HH)**112FGGA
HH)**112FGGA
HH)**112FGGA	?!!"6777

II=>>>>>	"	(	(	(QWa(((QUB'''''''''	(sC..
D986D44D9c	Gddt}|ttdd|tttdtd|ttdtd|tttdtd|ttt	dtd|t|dd|t|tdtd|t|dtd|t|tdtd|t|t	dtd|ttdd|tttdtd|ttdtd|tttdtd|ttt	dtddS)NceZdZdZdZdS)/UnicodeTest.test_conversion.<locals>.StrWithStrcJt|d}||_|S)Nr)rP__new__r3)rr3r5s   rr6z7UnicodeTest.test_conversion.<locals>.StrWithStr.__new__j	s!{{3++"
rc|jSr1r2r9s rr:z7UnicodeTest.test_conversion.<locals>.StrWithStr.__str__n	rrN)r(r)r*r6r:rrr
StrWithStrr4i	s2



"
"
"
"
"rr8ror)rPrbr/r&r-r?)r5r8s  rtest_conversionzUnicodeTest.test_conversiong	sQ	"	"	"	"	"	"	"	"	
c'%..115999c'+e*<*<"="=>>E@R@RSSSk'%..99;u;M;MNNNk'+e2D2D*E*EFF)%00	2	2	2k'2B52I2I*J*JKK)%00	2	2	2	
c**U"3"344e<<<c**[-?-?"@"@AA;uCUCUVVVk**U*;*;<<k%>P>PQQQk**[5G5G*H*HII)%00	2	2	2k**5Ee5L5L*M*MNN)%00	2	2	2	
c(7"3"344g>>>c(;w+?+?"@"@AA;wCWCWXXXk(7*;*;<<k'>R>RSSSk(;w3G3G*H*HII)'22	4	4	4k(3CG3L3L*M*MNN)'22	4	4	4	4	4rcGdd}Gdd}|t|d|t|ddS)NceZdZdZdS))UnicodeTest.test_unicode_repr.<locals>.s1cdSN\nrr9s rrBz2UnicodeTest.test_unicode_repr.<locals>.s1.__repr__	urNrQrrrs1r<	#




rrAceZdZdZdS))UnicodeTest.test_unicode_repr.<locals>.s2cdSr>rr9s rrBz2UnicodeTest.test_unicode_repr.<locals>.s2.__repr__	r@rNrQrrrrrD	rBrrr?rTr)r5rArs   rtest_unicode_reprzUnicodeTest.test_unicode_repr	s																	
bbddU+++bbddU+++++rc|tdddz|tdddS)Nr;z'%c')u𔀀z'\U00014000'rFr9s rtest_printable_reprzUnicodeTest.test_printable_repr	sIl++Vj-@AAAl++_=====rPrz only applies to 32-bit platformsc\|tdjtjdS)Nzt	t	)rhr]
expandtabsrr\r9s r$test_expandtabs_overflows_gracefullyz0UnicodeTest.test_expandtabs_overflows_gracefully	s'	
-)<ckJJJJJrcZd}|||dS)Nro)r_rM)r5rrs  rtest_expandtabs_optimizationz(UnicodeTest.test_expandtabs_optimization	s)

allnna(((((rc8	
d}|dz}tj|}tj|}dD]	t	}|dkrd}|}n|dkrd}|}n|dkrd}|}nd	}|}tj|z
|z
	
fd
}|	||5|tj	dz||d
zz|t||t|dddn#1swxYwYdS)NnnbPnPn)rr r~rrrrrIrrczSr1r)rmaxlensr<lambda>z0UnicodeTest.test_raiseMemError.<locals>.<lambda>	sD6Mr)rstruct_size	char_sizer+)
rcalcobjsizer&rr\rrT	getsizeofrhr$)r5asciifields
compactfieldsascii_struct_sizecompact_struct_sizecoderXrWallocrrUs         @@rtest_raiseMemErrorzUnicodeTest.test_raiseMemError	s#e+
#/<<%1-@@9	6	6Dt99Dd{{	/	1	1	1{[0Y>F)))))E'#
6
6  M$),,9#78!!+u555!!+u555
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6'	6	6sA(DD	D	cGddt}|d}|d|zd|d|ddS)NceZdZdZdS)+UnicodeTest.test_format_subclass.<locals>.ScdS)N__str__ overriddenrr9s rr:z3UnicodeTest.test_format_subclass.<locals>.S.__str__	s++rNrrrrrre	s#
,
,
,
,
,rrxxxrrgr)rPrTrr5rrrs   rtest_format_subclassz UnicodeTest.test_format_subclass	s}	,	,	,	,	,	,	,	,
AeHH#7888Q)=>>>>>rcGddt}||d|dzdGddt}|d}|dz
}||ddS)NceZdZdZdS)(UnicodeTest.test_subclass_add.<locals>.ScdSNrTrr5rls  r__add__z0UnicodeTest.test_subclass_add.<locals>.S.__add__	srN)r(r)r*rqrrrrrm	rrrrrrTceZdZdZdS)rmcdSrorrps  r__iadd__z1UnicodeTest.test_subclass_add.<locals>.S.__iadd__	rrrN)r(r)r*rurrrrz(UnicodeTest.test_subclass_add.<locals>.S	rrrQrOris   rtest_subclass_addzUnicodeTest.test_subclass_add	s									
3!!C&&#...								
AcFF	SC     rcd}|}||d|||d||t|ddS)Nrorr)__getnewargs__assertIsNotrTri)r5r#rZs   rtest_getnewargszUnicodeTest.test_getnewargs	sn""$$a$'''a$'''TA&&&&&rctdddD]}d|zdz}|t5tj|}dddn#1swxYwY||||dz
}|t5tj|}dddn#1swxYwY||||||dS)Nrrrrrr)rassertWarnsrr	getargs_urTrk)r5lengthr#rors     rtest_resizezUnicodeTest.test_resize	s}AsA&&	+	+F<#%D!!"455
0
0)$//
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0S$'''
CKD!!"455
3
3",T22
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3V,,,VT****	+	+s#AA	A	B88B<	?B<	cd}d|z}d|z}d|z}d|z}d|z}d|z}d|z}d	|z}	||||||||	f}
tj|
d
D]\}}||u}
|||k|
|||k|
|
r|||k|||kt	|}t	|}||||||k|||k|||k|||k
|||k|||k|||k|||k|||k|||k|||k|||k|||k|||k|||k|||k|||k|||k|||k|||k|||k|||k|||k|||k|||k|||k|||k|||k|||k|||k|||k|||	k|||k|||k|||k|||	kdS)Nrrrrrdr3rer:rr)	itertoolscombinationsrTrUr$ryr)r5rrascii2latinlatin2bmpbmp2astralastral2stringstext1text2equalcopy1copy2s                rtest_comparezUnicodeTest.test_compare	svaq
!l!|!"66G	
&27A>>	0	0LE5e^EUe^U333Ue^Y777
0//////
)//(//  ...///  %000//////'''
&&&$$$'''&)))%(((#&&&&)))''''''$$$''''''&)))#&&&&)))u%%%u%%%d
###f%%%u%%%u%%%%%%'''%(((%((($'''()))%(((%((($'''7*+++++rctj|tttj|ttdSr1)rcheck_free_after_iteratingrrPreversedr9s rtest_free_after_iteratingz%UnicodeTest.test_free_after_iteratingE
s2*4s;;;*43?????rcd}d}tjd|d|d|d|d|d|d	|d
}tddd
|}||jd|dS)N)rutf8latin1zBoom, Shaka Laka, Boom!z0
            import sys
            encodings = zn

            for data in (b'', b'short string'):
                try:
                    str(data, encoding=z)
                except LookupError:
                    pass
                else:
                    sys.exit(21)

                try:
                    str(data, errors=z)
                except LookupError:
                    pass
                else:
                    sys.exit(22)

                for encoding in encodings:
                    try:
                        str(data, encoding, errors=z)
                    except LookupError:
                        pass
                    else:
                        sys.exit(22)

            for data in ('', 'short string'):
                try:
                    data.encode(encoding=z)
                except LookupError:
                    pass
                else:
                    sys.exit(23)

                try:
                    data.encode(errors=z)
                except LookupError:
                    pass
                else:
                    sys.exit(24)

                for encoding in encodings:
                    try:
                        data.encode(encoding, errors=z)
                    except LookupError:
                        pass
                    else:
                        sys.exit(24)

            sys.exit(10)
        z-Xdevz-cr)textwrapdedentrrTrc)r5	encodingsinvalidr`procs     rtest_check_encoding_errorsz&UnicodeTest.test_check_encoding_errorsI
s0	+3 "3 3 )0
3 3 '.3 3 *5<+3 3 :+2;3 3 H)0I3 3 X7>Y3 3 3 3
3
h%T5$=="d+++++r)wr(r)r*rPr'rKr]rbrlrrrrrrrrrrrr
r-r6r=rCrFrUunittestskipIfrr\r`rfrcpython_onlyrjrsr|rrrrrrequires_resourcerrrrrrrrrequires_legacy_unicode_capirrrrrrrrrrr 
skipUnlessr&r8r>rrrrrrr*rArDrPrSrUr[run_with_localerarnrqrvrrrrrrrrrrrrrrr*r,r1r9rGrJstructcalcsizerNrPrbrjrvrzrrrr
__classcell__)rs@rrErEIs
I<<<666$+++,,,+H+H+HZ+G+G+GZ333222<<<AAA888GGG4+H+H+HZ'I'I'IRRRR0SSS4DHDHDHLMMM";;;(RRR"SSS"@@@(X_S[5(46677667
@@@.
<<<
...,???999999v
1
1
1
1
111111 
K
K
K
K
KLLLLLWu%%44&%4GGGGG
1
1
1
1
111111
KKK$
I
I
I
I
IKKK&
-
-
-
)X_Y$&(?@@OOA@*)O
5
5
5OOO6555,888555"HHH"99999"DDD4<<<X	13KLL

ML
%;%;%;N	,	,	,F5F5F5P
5M5M5Mn111
111
000
III<iNiNiNV#+#+#+J***
KKK
X_Y$&(?@@**A@*
***
(((WXw88..98.D6D6D6LEEE	P	P	P1"1"1"fCCCJ777"-H-H-H^W8W8W8r111&AAAEEE4HHH,8H8H8HtMHMHMH^OOO'9'9'9R-B-B-B^5C5C5Cn;;;???( 4 4 4D
,
,
,>>>X_S[G,I0D0D0I799KK99K
)))$6$6$6L???
!
!
!'''
)X_Y$&(?@@++A@*)+"H,H,H,T@@@:,:,:,:,:,:,:,rrEc eZdZdZdZdZdS)StringModuleTestcd}|d}||gd|d}||ddg|d}||dg|d	}||g|d
}||dg|ttjddS)
NcDttj|Sr1)r_stringformatter_parserrJs rparsez5StringModuleTest.test_formatter_parser.<locals>.parse
s088999rz2prefix {2!s}xxx{0:^+10.3f}{obj.attr!s} {z[0]!s:10}))prefix rRrrr)rhrz^+10.3fN)rzobj.attrrrr)rgzz[0]rrrzprefix {} suffix)rrrN)z suffixNNNrP)rPNNNrr)rrrNr)rTrhrrr)r5r	formatters   rtest_formatter_parserz&StringModuleTest.test_formatter_parser
s+	:	:	:ENOO	%
%
%
			E,--	%)%
			
E%LL	%%
			E"II	B'''E%LL	%
				
)W%=qAAAAArchd}||ddgg||dddgg||dddgg||ddgdg|ttjd	dS)
Ncxttj|}t|d|d<|S)Nr)rrformatter_field_name_split)rKitemss  rr5z?StringModuleTest.test_formatter_field_name_split.<locals>.split
s2;DAABBEE!H~~E!HLrrmzobj.argTargzobj[key])Frzobj.arg[key1][key2])r)Fkey1)Fkey2r)rTrhrrr)r5r5s  rtest_formatter_field_name_splitz0StringModuleTest.test_formatter_field_name_split
s				
ur{333y))EM?+CDDDz**U^4D,EFFF455


8				
)W%GKKKKKrcRtd}td}Gdd}|}|t5t||dddn#1swxYwYt	||d||jdd|_|t|j|g|t5t||dddn#1swxYwY|t5|`	dddn#1swxYwYt	||d||j	dd|_	|t|j||gdS)	NrKname2ceZdZdS)4StringModuleTest.test_str_subclass_attr.<locals>.BagNr'rrrBagr
rprrrrrr)
r&rhAttributeErrordelattrsetattrrTrKr__dict__r)r5rKrrrls     rtest_str_subclass_attrz'StringModuleTest.test_str_subclass_attr
s_6""G$$								
CEE


~
.
.		At															4###aj))D6222


~
.
.		Au															


~
.
.																	5!!$$$aj))D%=99999s6A--A14A1.DDD0D??EEN)r(r)r*rrrrrrrr
sHBBBBLLL :::::rr__main__)$__doc__rrGrr,rrrrrrrxtest.supportrrrrtest.support.script_helperrrImportErrorrr$rPr&r-r/r?rrBMixinStrUnicodeTestTestCaserErr(mainrrr<module>rsU















((((((&&&&&&&&<<<<<<III """					#								s			z(,z(,z(,z(,z(,,)2(z(,z(,z(,zQH:H:H:H:H:x(H:H:H:VzHMOOOOOsA		AA