python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
test_bz2.cpython-311.opt-2.pyc

e-ddlmZddlmZmZddlZddlZddlmZm	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZddlZddlmZddlmZddlmZddlZddlZejdZdd	lmZmZmZdad
ZGddej Z!Gd
de!Z"Gdde!Z#Gdde!Z$Gdde!Z%Gdde!Z&dZ'e(dkrej)dSdS))support)
bigmemtest_4GN)BytesIODEFAULT_BUFFER_SIZE)
import_helper)threading_helper)unlinkbz2)BZ2File
BZ2CompressorBZ2Decompressorct!ttjdatrt	jdg|St|S)Nbunzip2)input)has_cmdline_bunzip2boolshutilwhich
subprocesscheck_outputr
decompress)datas A/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_bz2.pyext_decompressrsR""6<	#:#:;;$&	{$????~~d###c	eZdZ	gdZdeZdZdZdZdZ	e
dZeje
jeje
jedD]WZeed	5Ze	eeee	d
z
Z	d
d
d
n#1swxYwYe	dkrnXeedZd
ZdZd
S)BaseTest)s root:x:0:0:root:/root:/bin/bash
sbin:x:1:1:bin:/bin:
sdaemon:x:2:2:daemon:/sbin:
sadm:x:3:4:adm:/var/adm:
slp:x:4:7:lp:/var/spool/lpd:
s sync:x:5:0:sync:/sbin:/bin/sync
s-shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
s!halt:x:7:0:halt:/sbin:/sbin/halt
s"mail:x:8:12:mail:/var/spool/mail:
s"news:x:9:13:news:/var/spool/news:
s#uucp:x:10:14:uucp:/var/spool/uucp:
s operator:x:11:0:operator:/root:
s!games:x:12:100:games:/usr/games:
s,gopher:x:13:30:gopher:/usr/lib/gopher-data:
s(ftp:x:14:50:FTP User:/var/ftp:/bin/bash
s#nobody:x:65534:65534:Nobody:/home:
s.postfix:x:100:101:postfix:/var/spool/postfix:
s-niemeyer:x:500:500::/home/niemeyer:/bin/bash
s>postgres:x:101:102:PostgreSQL Server:/var/lib/pgsql:/bin/bash
s6mysql:x:102:103:MySQL server:/var/lib/mysql:/bin/bash
s#www:x:103:104::/var/www:/bin/false
rsBZh91AY&SY.N>_@n?0F#&FЦMQ4hh$i44S<QHՇ
I/Epu]ɻDL
Q	1ߠ2O97dIJL#/#CWMXa<etL˄.`n}lh	E,ZVH>9gd6
Պ.Kvxwߡ|/";ձ#Aoy\O煚f82"%>V,z⟣"E)I^rU26U0^DFݸankR3]f"6l$j@l1..klsE
knQ%yvz̹zn7.G]B@!8`sBZh9rE8Psthis is not a valid bzip2 fileriz*.pyrbN
compresslevelcdtj\}|_tj|dSN)tempfilemkstempfilenameosclose)selffds  rsetUpzBaseTest.setUpRs($,..DM
rc.t|jdSr$)r
r'r*s rtearDownzBaseTest.tearDownVst}r)__name__
__module____qualname__
TEXT_LINESjoinTEXTDATA
EMPTY_DATABAD_DATA	test_size	bytearrayBIG_TEXTglobr(pathescapedirname__file__fnameopenfhreadinto
memoryviewrcompressBIG_DATAr,r/rrrr&s


J.88JD^D4J0HIy""H27<<BGOOH4M4M(N(NPVWWXX
T%

	G"ZZ%9%9)**%EFFFI	G	G	G	G	G	G	G	G	G	G	G	G	G	G	GxE ||HA|66Hs*CC		C		rceZdZ	d@dZdZdZdZdZdZd	Z	d
Z
dZdZd
Z
dZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZd Z d!Z!d"Z"d#Z#d$Z$d%Z%d&Z&d'Z'd(Z(d)Z)d*Z*d+Z+d,Z,d-Z-d.Z.d/Z/d0Z0d1Z1e2j3d2Z4d3Z5d4Z6d5Z7d6Z8d7Z9d8Z:d9Z;d:Z<d;Z=d<Z>d=Z?d>Z@d?S)ABZ2FileTestr rct|jd5}||j|z||ddddS#1swxYwYdS)Nwb)rBr'writer6)r*streamssuffixfs    rcreateTempFilezBZ2FileTest.createTempFile]s
$-
&
&	!
GGDI'(((
GGFOOO																		s3AAAc^|ttd|tttjd|tttjd|tttjd|tttjd|tttjd|tttjdd	dS)
Ngw/^@zrxrbtrr!
r)assertRaises	TypeErrorr
ValueErrorr(devnullr.s rtestBadArgszBZ2FileTest.testBadArgsbs)Wg666*grz3???*grz4@@@*grz5AAA*grzKKK*grzLLL	
)Wbj#qAAAAArc<|t|j5}|t|jt
|||jddddS#1swxYwYdSr$	rQrr'rYrZreadfloatassertEqualr5r*bz2fs  rtestReadzBZ2FileTest.testReadms
T]
#
#	5tiEGG<<<TYY[[$)444	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5sABBBc|d|jt|j5}|t
|jddddS#1swxYwYdS)NrrNrO)rQr8rr'rYOSErrorr`rcs  rtestReadBadFilezBZ2FileTest.testReadBadFilessAdm<<<
T]
#
#	2tgty111	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2s!AA#&A#cF|dt|j5}|t|jt
|||jdzddddS#1swxYwYdSNrNr_rcs  rtestReadMultiStreamzBZ2FileTest.testReadMultiStreamxsA&&&
T]
#
#	9tiEGG<<<TYY[[$)a-888	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9sABBBctj}t|jt_	|dt|j5}|t|j	t||	|jdzdddn#1swxYwY|t_dS#|t_wxYwrk)
_compressionBUFFER_SIZElenr6rQrr'rYrZr`rarbr5)r*buffer_sizerds   rtestReadMonkeyMultiStreamz%BZ2FileTest.testReadMonkeyMultiStream~s#.#&ty>> 	3***''
=4!!)TY@@@  di!m<<<
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=(3L$$${L$2222s0*CAC4CCCCCC'c||jt|j5}|||jddddS#1swxYwYdS)N)rOrQr8rr'rbr`r5rcs  rtestReadTrailingJunkz BZ2FileTest.testReadTrailingJunks4=111
T]
#
#	5tTYY[[$)444	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5s.A++A/2A/c|d|jt|j5}|||jdzddddS#1swxYwYdS)Nrlrgrvrcs  rtestReadMultiStreamTrailingJunkz+BZ2FileTest.testReadMultiStreamTrailingJunksAdm<<<
T]
#
#	9tTYY[[$)a-888	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9s1A//A36A3c4|t|j5}|t|jt
||ddddddS#1swxYwYdS)Nrr)rQrr'rYrZr`rarbrcs  r	testRead0zBZ2FileTest.testRead0s
T]
#
#	0tiEGG<<<TYYq\\3///	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0sAB

BBc|t|j5}d}	|d}|sn||z
}|||jddddS#1swxYwYdS)NrTrVrQrr'r`rbr5r*rdtextstrs    rtestReadChunk10zBZ2FileTest.testReadChunk10s
T]
#
#	.tD
iimm	


T49---	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.s=A33A7:A7c
|dt|j5}d}	|d}|sn||z
}|||jdzddddS#1swxYwYdS)NrlrmrTrVr}r~s    rtestReadChunk10MultiStreamz&BZ2FileTest.testReadChunk10MultiStreamsA&&&
T]
#
#	2tD
iimm	


T49q=111	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2sAA88A<?A<c|t|j5}||d|jddddddS#1swxYwYdS)Nd)rQrr'rbr`r5rcs  rtestRead100zBZ2FileTest.testRead100s
T]
#
#	>tTYYs^^TYtt_===	>	>	>	>	>	>	>	>	>	>	>	>	>	>	>	>	>	>s7A--A14A1c|t|j5}|}|t|d||j||	|
|jddddS#1swxYwYdSNr)rQrr'peekassertNotEqualrr
assertTruer5
startswithrbr`)r*rdpdatas   rtestPeekzBZ2FileTest.testPeeks
T]
#
#	5tIIKKEE

A...OODI0077888TYY[[$)444		5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5sBCCCc\|t|j5}d}t|}|||||||jd|t|j|z
}tt|j}||||||d||j|dddddS#1swxYwYdS)N)rQrr'r:rbrDr5rr)r*rdnbs    rtestReadIntozBZ2FileTest.testReadIntosJ
T]
#
#	4tA!AT]]1--q111Q	"1"
...DI"A#di..))AT]]1--q111QrrUDIqbccN333	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4sC+D!!D%(D%c0|t|j5}|t|jd|jD]*}|||+	ddddS#1swxYwYdSr$rQrr'rYrZreadliner3rbr*rdlines   rtestReadLinezBZ2FileTest.testReadLines
T]
#
#	8ti===
8
8  $7777
8	8	8	8	8	8	8	8	8	8	8	8	8	8	8	8	8	8	8sABBBc:|dt|j5}|t|jd|jdzD]*}|||+	ddddS#1swxYwYdSrkrrs   rtestReadLineMultiStreamz#BZ2FileTest.testReadLineMultiStreamsA&&&
T]
#
#	8ti===!+
8
8  $7777
8	8	8	8	8	8	8	8	8	8	8	8	8	8	8	8	8	8	8sABBBc$|t|j5}|t|jd|||jddddS#1swxYwYdSr$rQrr'rYrZ	readlinesrbr3rcs  r
testReadLineszBZ2FileTest.testReadLiness
T]
#
#	@ti>>>T^^--t???	@	@	@	@	@	@	@	@	@	@	@	@	@	@	@	@	@	@sABB	B	c.|dt|j5}|t|jd|||jdzddddS#1swxYwYdSrkrrcs  rtestReadLinesMultiStreamz$BZ2FileTest.testReadLinesMultiStreamsA&&&
T]
#
#	Dti>>>T^^--t/BCCC	D	D	D	D	D	D	D	D	D	D	D	D	D	D	D	D	D	DsAB

BBc|t|j5}|t	t||jddddS#1swxYwYdSr$rQrr'rblistiterr3rcs  rtestIteratorzBZ2FileTest.testIterators
T]
#
#	@tT$t**--t???	@	@	@	@	@	@	@	@	@	@	@	@	@	@	@	@	@	@s6A,,A03A0c|dt|j5}|t	t||jdzddddS#1swxYwYdSrkrrcs  rtestIteratorMultiStreamz#BZ2FileTest.testIteratorMultiStreamsA&&&
T]
#
#	DtT$t**--t/BCCC	D	D	D	D	D	D	D	D	D	D	D	D	D	D	D	D	D	Ds9A11A58A5c|t|j}||t
t||t
|jdSr$)rQrr'r)rYr[nextrrcs  rtestClosedIteratorDeadlockz&BZ2FileTest.testClosedIteratorDeadlocksft}%%

*dD111*dn55555rct|jd5}|t|j||jdddn#1swxYwYt
|jd5}|t|	|jddddS#1swxYwYdS)Nwr
rr'rYrZrMr5rBrbrr`r*rdrPs   r	testWritezBZ2FileTest.testWritesB
T]C
(
(	"Di444JJty!!!	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"$-
&
&	B!^AFFHH55tyAAA	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	Bs#;AA!$A!=;CC	C	ct|jd5}d}	|j|dz|dzdz}|sn|||dz
}6	dddn#1swxYwYt	|jd5}|t
||jddddS#1swxYwYdS)NrrTrVr r)rr'r5rMrBrbrr`)r*rdrrrPs     rtestWriteChunks10zBZ2FileTest.testWriteChunks10si
T]C
(
(	DA
i"ac2X
.

3Q
															$-
&
&	B!^AFFHH55tyAAA	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	Bs#:AA!$A!=;CC	C	ct|jd}t|jdd5}||jdddn#1swxYwYt
|jd5}|||ddddS#1swxYwYdS)Nrlr!rr)	rrFr5rr'rMrBrbr`)r*expectedrdrPs    r testWriteNonDefaultCompressLevelz,BZ2FileTest.testWriteNonDefaultCompressLevel
s'<<	<;;
T]Cq
9
9
9	"TJJty!!!	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"
$-
&
&	1!QVVXXx000	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1s#A  A$'A$)B66B:=B:ct|jd5}|t|j||jdddn#1swxYwY|t|jdgt|jd5}|t|
|jddddS#1swxYwYdS)Nrar)rr'rYrZ
writelinesr3r[rBrbrr`r5rs   rtestWriteLineszBZ2FileTest.testWriteLiness^
T]C
(
(	-Di999OODO,,,	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-
	
*dou===
$-
&
&	B!^AFFHH55tyAAA	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	Bs#;AA!$A!;C''C+.C+clt|jd5}|ddddn#1swxYwYt|jd5}|t|jd|t|jdgddddS#1swxYwYdS)NrsabcrWa)rr'rMrYrhrrcs  rtestWriteMethodsOnReadOnlyFilez*BZ2FileTest.testWriteMethodsOnReadOnlyFiles6
T]C
(
(	DJJv															T]C
(
(	@Dgtz4888gt???	@	@	@	@	@	@	@	@	@	@	@	@	@	@	@	@	@	@s8<<AB))B-0B-cxt|jd5}|t|j||jdddn#1swxYwYt|jd5}|t|j||jdddn#1swxYwYt
|jd5}|t|	|jdzddddS#1swxYwYdS)Nrrrrrs   r
testAppendzBZ2FileTest.testAppend#s
T]C
(
(	"Di444JJty!!!	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"T]C
(
(	"Di444JJty!!!	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"$-
&
&	F!^AFFHH55ty1}EEE	F	F	F	F	F	F	F	F	F	F	F	F	F	F	F	F	F	Fs5;AA!$A!=;CCC$>D//D36D3c\|t|j5}|t|j|d|||jddddddS#1swxYwYdSN)	rQrr'rYrZseekrbr`r5rcs  rtestSeekForwardzBZ2FileTest.testSeekForward-s
T]
#
#	;ti333IIcNNNTYY[[$)CDD/:::	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;A+B!!B%(B%c|dt|j5}|t|j|t
|jdz||	|jddddddS#1swxYwYdS)Nrrmr)
rQrr'rYrZrrrr5rbr`rcs  rtestSeekForwardAcrossStreamsz(BZ2FileTest.testSeekForwardAcrossStreams4sA&&&
T]
#
#	;ti333IIc$)nns*+++TYY[[$)CDD/:::	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;sBB88B<?B<cH|t|j5}|d|dd|||jddddddS#1swxYwYdSNijr i^)rQrr'r`rrbr5rcs  rtestSeekBackwardszBZ2FileTest.testSeekBackwards;s
T]
#
#	?tIIcNNNIIdATYY[[$)GHH*=>>>	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?A!BBBc|dt|j5}t|jdz}|dkr+|t||z}|dk+|dd|||jdd|jzddddS#1swxYwYdS)Nrrmrrrr i)rQrr'rrr5r`rrb)r*rdreadtos   rtestSeekBackwardsAcrossStreamsz*BZ2FileTest.testSeekBackwardsAcrossStreamsBs%A&&&
T]
#
#	Kt^^c)F1**#dii//0001**IIdATYY[[$)GHH*=	*IJJJ	K	K	K	K	K	K	K	K	K	K	K	K	K	K	K	K	K	KsBCCCcH|t|j5}|dd|||jt|jdz
dddddS#1swxYwYdS)Nrrr)rQrr'rrbr`r5rrrcs  rtestSeekBackwardsFromEndz$BZ2FileTest.testSeekBackwardsFromEndKs
T]
#
#	JtIIdATYY[[$)C	NN34F4G4G*HIII	J	J	J	J	J	J	J	J	J	J	J	J	J	J	J	J	J	Jrc(|dt|j5}|dd|||jdzddddddS#1swxYwYdS)Nrrmi)rQrr'rrbr`r5rcs  r%testSeekBackwardsFromEndAcrossStreamsz1BZ2FileTest.testSeekBackwardsFromEndAcrossStreamsQsA&&&
T]
#
#	CtIIeQTYY[[49q=%&&*ABBB	C	C	C	C	C	C	C	C	C	C	C	C	C	C	C	C	C	CsABBBcv|t|j5}|d||t
|j||dddddS#1swxYwYdSNIr	rQrr'rrbtellrrr5r`rcs  rtestSeekPostEndzBZ2FileTest.testSeekPostEndWs
T]
#
#	/tIIfTYY[[#di..999TYY[[#...	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/sA8B..B25B2c|dt|j5}|d||t
|jdz||dddddS#1swxYwYdSNrlrmrrrrcs  rtestSeekPostEndMultiStreamz&BZ2FileTest.testSeekPostEndMultiStream^sA&&&
T]
#
#	/tIIfTYY[[#di..1*<===TYY[[#...	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/sA;B33B7:B7c|t|j5}|d|d||t
|j||dddddS#1swxYwYdSrrrcs  rtestSeekPostEndTwicez BZ2FileTest.testSeekPostEndTwicees
T]
#
#	/tIIfIIfTYY[[#di..999TYY[[#...		/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/sB
CC
Cc|dt|j5}|d|d||t
|jdz||dddddS#1swxYwYdSrrrcs  rtestSeekPostEndTwiceMultiStreamz+BZ2FileTest.testSeekPostEndTwiceMultiStreammsA&&&
T]
#
#	/tIIfIIfTYY[[#di..1*<===TYY[[#...		/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/sBCCCc\|t|j5}|d||d|||jddddS#1swxYwYdS)NrrrQrr'rrbrr`r5rcs  rtestSeekPreStartzBZ2FileTest.testSeekPreStartus
T]
#
#	5tIIdOOOTYY[[!,,,TYY[[$)444	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5rcf|dt|j5}|d||d|||jdzddddS#1swxYwYdS)Nrrmrrrrcs  rtestSeekPreStartMultiStreamz'BZ2FileTest.testSeekPreStartMultiStream|sA&&&
T]
#
#	9tIIdOOOTYY[[!,,,TYY[[$)a-888	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9sA.B&&B*-B*c|t|jd5}t|}	||||n#|wxYw	dddn#1swxYwY|t|jdS)Nr)	rQrBr'rrbfilenor)rYr[)r*rawfrds   r
testFilenozBZ2FileTest.testFilenos
$-
&
&	$4==D
  

>>>



																
*dk22222s(B0:B
5B0
B  B00B47B4ctt|j}	||||||n#|wxYw|t|jttd}	|	||n#|wxYw|t|jt|j}d|_t|}	|	||n#|wxYw|t|jdS)NrcdS)NFrHrHrr<lambda>z*BZ2FileTest.testSeekable.<locals>.<lambda>sur)
rrr6rseekabler`r)rYr[assertFalse)r*rdsrcs   rtestSeekablezBZ2FileTest.testSeekableswty))**	OODMMOO,,,IIKKKOODMMOO,,,JJLLLLDJJLLLL*dm444wyy#&&	T]]__---JJLLLLDJJLLLL*dm444di  $}s||	T]]__---JJLLLLDJJLLLL*dm44444s$A"BB00'D,,E'G

G#ctt|j}	||||||n#|wxYw|t|jttd}	|	||n#|wxYw|t|jdSNr)
rrr6rreadabler`r)rYr[rrcs  rtestReadablezBZ2FileTest.testReadableswty))**	OODMMOO,,,IIKKKOODMMOO,,,JJLLLLDJJLLLL*dm444wyy#&&	T]]__---JJLLLLDJJLLLL*dm44444A"BB00'D,,Ectt|j}	||||||n#|wxYw|t|jttd}	|	||n#|wxYw|t|jdSr)
rrr6rwritabler`r)rYr[rrcs  rtestWritablezBZ2FileTest.testWritables
wty))**	T]]__---IIKKKT]]__---JJLLLLDJJLLLL*dm444wyy#&&	OODMMOO,,,JJLLLLDJJLLLL*dm44444rc||tdD]}t|j}~dS)Ni')rQrangerr')r*ios   rtestOpenDelzBZ2FileTest.testOpenDelsGu		A
&&A		rcH|ttddS)Nz
/non/existent)rYrhrr.s rtestOpenNonexistentzBZ2FileTest.testOpenNonexistents '7O<<<<<rcd}t|jd5}||dddn#1swxYwYt|j5}|}dddn#1swxYwY||dgt|j5}t
|}dddn#1swxYwY||dgdS)Ns,BZh91AY&SYb] !h3M<]BCe%trLsTest)rBr'rMrrrbr)r*rrPrdlinesxliness      rtestReadlinesNoNewlinez"BZ2FileTest.testReadlinesNoNewlinesz
$-
&
&	!
GGDMMM															
T]
#
#	%tNN$$E	%	%	%	%	%	%	%	%	%	%	%	%	%	%	%	***
T]
#
#	,t$..**++F	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,'+++++s1:>>A::A>A>0"CC"%C"cd}t|jd5}|ddddn#1swxYwYt|jd}|	|5	dddn#1swxYwY|dn#t
$rYnwxYw	t|jd5}ddzdddn#1swxYwY|ddS#t$rYdSwxYw)NrLsxxxrz4__enter__ on a closed file didn't raise an exceptionr rz1/0 didn't raise an exception)rr'rMr)failr[ZeroDivisionErrorr*rPs  rtestContextProtocolzBZ2FileTest.testContextProtocols
T]D
)
)	Q
GGFOOO															DM4((					N


















IILMMMM			D		7--
!
















II566666!			DD	sy:>>/B 1A?3B ?BB BB  
B-,B-1C:CC:CC:C C::
DDcddzd}t|jd5fdfdt|D}tj|5	dddn#1swxYwYddddS#1swxYwYdS)N1irVrLcVtdD]}dSNrl)rrM)rrrPs rcompz'BZ2FileTest.testThreading.<locals>.comps3q""AGGDMMMM""rc:g|]}tjS))target)	threadingThread).0rr
s  r
<listcomp>z-BZ2FileTest.testThreading.<locals>.<listcomp>s'NNNy't444NNNr)rr'rr	
start_threads)r*nthreadsthreadsr
rrPs   @@@r
testThreadingzBZ2FileTest.testThreadings1e|
T]D
)
)	Q
"
"
"
"
"
"ONNNeHooNNNG!/88
















																		s56A<A$A<$A(	(A<+A(	,A<<BBc|t|jd}|dz}t|j5}|||t||jd|d|||j|ddddn#1swxYwYt|j5}|	|t||jd||	|jddddn#1swxYwYt|j5}|
|tt|||
gddddS#1swxYwYdS)Nrrr )
rQrrr3rr'r`rbrr5rrrY
StopIteration)r*linelenhalflenrds    rtestMixedIterationAndReadsz&BZ2FileTest.testMixedIterationAndReadss~doa())Q,
T]
#
#	?tIIgT$ZZ);GHH)EFFFTYY[[$)GHH*=>>>	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?T]
#
#	BtMMOOOT$ZZ);<<<T]]__doa.@AAA	B	B	B	B	B	B	B	B	B	B	B	B	B	B	BT]
#
#	3tNNmT4888T^^--r222	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3s9BCCC4A6E66E:=E:AHHHcd}d}t|jd5}||dddn#1swxYwYt|jd5}||dddn#1swxYwYt|j5}||||zddddS#1swxYwYdS)Nsfoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoosbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarrr)rr'rMrbr`)r*data1data2rds    rtestMultiStreamOrderingz#BZ2FileTest.testMultiStreamOrderings
T]C
(
(	DJJu															
T]C
(
(	DJJu															
T]
#
#	9tTYY[[%%-888	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9s3<AAA>>BB,CCCcf|j}	|d}n%#t$r|dYnwxYwt	|d5}||jdddn#1swxYwYt	|d5}|||jdddn#1swxYwYt	|d5}|||jddddS#1swxYwYdS)Nasciiz%Temporary file name needs to be ASCIIrLr)	r'encodeUnicodeEncodeErrorskipTestrrMr6rbr`)r*str_filenamebytes_filenamerPs    rtestOpenBytesFilenamez!BZ2FileTest.testOpenBytesFilenames}	C)0099NN!	C	C	CMMABBBBB	C
^T
*
*	a
GGDI															
^T
*
*	2aQVVXXty111	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2\4
(
(	2AQVVXXty111	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2sEAAA;;A?A?.CCC+.D&&D*-D*chtj|j}t|d5}||jdddn#1swxYwYt|d5}|||jddddS#1swxYwYdS)NrLr)pathlibPathr'rrMr6rbr`)r*r'rPs   rtestOpenPathLikeFilenamez$BZ2FileTest.testOpenPathLikeFilename*s<
..
Xt
$
$	
GGDI															
Xt
$
$	2QVVXXty111	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2s#AAA,.B''B+.B+c	tdtdzd}|t	|t
jtt|}|	|
dddtz}||j
j|ddS)Ng>A	r!r z)Excessive amount of data was decompressed)rrFint
assertLessrrrprqrrrbr`rassertLessEqual_bufferrawr)r*bombdecomp
max_decomps    rtestDecompressLimitedz!BZ2FileTest.testDecompressLimited1s;||ECHH,A|>>D		<#;<<<''Q///,,
V^/4466
7	9	9	9	9	9rct|j5}t|5}|t|jt
|||jdddn#1swxYwY|	|j
ddddS#1swxYwYdSr$)rr6rrYrZr`rarbr5rclosedr*biords   rtestReadBytesIOzBZ2FileTest.testReadBytesIO?s'
TY

	)3
9!!)TY@@@  di888
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
SZ(((		)	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)s5B>ABB>B	B>B	B>>CCct|j5}t|5}|}|t|d||j||	|
|jdddn#1swxYwYddddS#1swxYwYdSr)rr6rrrrrrr5rrbr`)r*r<rdrs    rtestPeekBytesIOzBZ2FileTest.testPeekBytesIOFs<
TY

	93
9		##CJJ222	 4 4U ; ;<<<  di888	
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9s5CBC7CC	C
C	CC"Cct5}t|d5}|t|j||jdddn#1swxYwY|t||j|	|j
ddddS#1swxYwYdSr)rrrYrZrMr5rbrgetvaluerr:r;s   rtestWriteBytesIOzBZ2FileTest.testWriteBytesIONs;
YY	)#c""
&d!!)TZ888

49%%%
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
^CLLNN;;TYGGGSZ(((	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)s5C;A'C'A+	+C.A+	/ACCCct|j5}t|5}|t|j|d|||jdddddn#1swxYwYddddS#1swxYwYdSr)	rr6rrYrZrrbr`r5r;s   rtestSeekForwardBytesIOz"BZ2FileTest.testSeekForwardBytesIOVs 
TY

	?3
?!!)TY777		#  dio>>>
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?s5B4A+BB4B 	 B4#B 	$B44B8;B8cnt|j5}t|5}|d|dd|||jdddddn#1swxYwYddddS#1swxYwYdSr)rr6rr`rrbr5r;s   rtestSeekBackwardsBytesIOz$BZ2FileTest.testSeekBackwardsBytesIO]s@
TY

	C3
C		#		$"""  di.ABBB
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C	C	C	C	C	C	C	C	C	C	C	C	C	C	C	C	C	C	Cs5B*A!BB*B	B*B	B**B.1B.c|jdd}tt|5}|t|jdddn#1swxYwYtt|5}||t|j|j|t|jddddn#1swxYwYtdD]_}tt|d|5}|t|jddddn#1swxYwY`dS)Nr )
r6rrrYEOFErrorr`rbrrr5r)r*	truncatedrPrs    rtest_read_truncatedzBZ2FileTest.test_read_truncateddsIdsdO	
WY''
(
(	0Ah///	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0
WY''
(
(	3AQVVC	NN33TY???h222	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3r	7	7A2A2//00
7A!!(AFA666
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7	7	7s6!AA AA"C..C25C2."EE 	#E 	cntjdgd}t||jz}tt	d5}|||||||ddddS#1swxYwYdS)NQ)r rrXrlr)arrayrritemsizerrrbrMr)r*qLENGTHrPs    rtest_issue44439zBZ2FileTest.test_issue44439qsK___--Q!*$
WYY
$
$	/QWWQZZ000QVVXXv...	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/sAB**B.1B.N)r r)Ar0r1r2rQr]rerirnrtrwryr{rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr	requires_working_threadingrrr r(r,r8r=r?rBrDrFrLrTrHrrrJrJZs
	B	B	B555222
999333555
999
000	.	.	.	2	2	2>>>
555
4
4
4888888@@@DDD@@@
DDD
666BBB
B
B
B111BBB@@@FFF;;;;;;???KKKJJJCCC////////////5559993335554555"555"===
,
,
,777*1022

32
333"	9	9	9222222	9	9	9)))999)))???CCC777/////rrJcreZdZdZdZdZejee	dzddZ
dZd	S)
BZ2CompressorTestct}|t|j||j}||z
}|t||jdSr$)r
rYrZrFr5flushrbrr*bz2crs   rtestCompresszBZ2CompressorTest.testCompress{sn)T]333}}TY''

--ty99999rct}|d}||z
}|||jdSNr)r
rFrYrbr7rZs   rtestCompressEmptyStringz)BZ2CompressorTest.testCompressEmptyStringsL}}S!!

t/////rct}d}d}	|j|dz|dzdz}|sn|||z
}|dz
}9||z
}|t||jdS)NrrTrVr )r
r5rFrYrbr)r*r[rrrs     rtestCompressChunks10z&BZ2CompressorTest.testCompressChunks10s
	)AbD!A#rM*C
DMM#&&&D
FA		


--ty99999rrrsizememusect}d|z}	||}||z
}d}n#d}wxYwt|}	|t
|||t
|ddd}dS#d}wxYw)Nxr)r
rFrYrrrbrrstrip)r*rcr[r
compresseds     rtestCompress4Gz BZ2CompressorTest.testCompress4Gsd{	t,,J$**,,&JDD4DKKKK~~j))	SYY---SD!1!122A666DDD4DKKKKs,AA&ACCcttjdzD]U}|t5tjt
|dddn#1swxYwYVdSNr )rpickleHIGHEST_PROTOCOLrYrZdumpsr
r*protos  r
testPicklezBZ2CompressorTest.testPickles62Q677	5	5E""9--
5
5]__e444
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5	5	5"A''A+	.A+	N)r0r1r2r\r_rarskip_if_pgo_taskrrrirqrHrrrWrWzs:::000:::
ZS3Yq)))*) 55555rrWceZdZdZdZdZdZdZej	e
edzdd	Zd
Z
dZdZd
ZdZdZejdZdS)BZ2DecompressorTestcH|ttddS)N*)rYrZrr.s rtest_Constructorz$BZ2DecompressorTest.test_Constructors )_b99999rct}|t|j||j}|||jdSr$)rrYrZrr6rbr5r*bz2drs   rtestDecompressz"BZ2DecompressorTest.testDecompresssV  )T_555ty))ty)))))rct}d}d}	|j|dz|dzdz}|sn|||z
}|dz
}9|||jdS)NrrTrVr )rr6rrbr5)r*r{rrrs     rtestDecompressChunks10z*BZ2DecompressorTest.testDecompressChunks10s  
	)AbD!A#rM*C
DOOC(((D
FA		
ty)))))rct}d}||j|z}|||j||j|dS)Nsthis is unused data)rrr6rbr5unused_data)r*r{rrs    rtestDecompressUnusedDataz,BZ2DecompressorTest.testDecompressUnusedDatasa  ,ty455ty))));77777rct}||j}|t|jd|t|jddS)Nsanythingr)rrr6rYrJrzs   rtestEOFErrorz BZ2DecompressorTest.testEOFErrorsZ  ty))(DO[AAA(DOS99999rrgffffff
@rbc:td|}tj|}	||dz
|zdzz}t|}t}||}|||kd}d}d}dS#d}d}d}wxYw)Nir )minrandom	randbytesrrFrrr)r*rc	blocksizeblockrrhr{decompresseds        rtestDecompress4Gz$BZ2DecompressorTest.testDecompress4Gs($//	 ++		 T!V	1A56Dd++J"$$D??:66LOOLD0111DJLLLDJLsA$BBcttjdzD]U}|t5tjt
|dddn#1swxYwYVdSrk)rrlrmrYrZrnrros  rrqzBZ2DecompressorTest.testPickles62Q677	7	7E""9--
7
7_..666
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7	7	7rrc>t}d}g}t|jdz
}|||jd||||j|t|d|||d|||j|t|d||||j|d||t|d||j	sZ||d||t|d||j	Zd
|}|||j||jddS)Nr@
max_lengthr)
rrrrGappendrrneeds_inputrbr2eofr4r;r)r*bzdroutlen_s     rtestDecompressorChunksMaxsizez1BZ2DecompressorTest.testDecompressorChunksMaxsizes
4=!!B&

3>>$-"6-7"99	:	:	:)))SWz222	

3>>#*>==>>>)))SWz222	

3>>$-"6-7"99	:	:	:SR\\:666'	;JJs~~cj~AABBB  SWz:::'	;hhsmmdm,,,#.....rct}g}|||jdddd||dd|||jddd|||jdd|d||jdS)Nrrrrrirrbrr6rr4r5r*rrs   rtest_decompressor_inputbuf_1z0BZ2DecompressorTest.test_decompressor_inputbuf_1s	
	$3$34(667:	<	<	<
	

3>>#q))***	

3>>$)CG"4b99:::	

3>>$)CDD/22333#	22222rct}g}|||jdddd||d|||jddd|||jddd|||jdd|d||jdS)Nrrrir,rrs   rtest_decompressor_inputbuf_2z0BZ2DecompressorTest.test_decompressor_inputbuf_2s	
	$3$34(667:	<	<	<

3>>#&&'''	

3>>$)CG"4a88999	

3>>$)CG"4a88999	

3>>$)CDD/22333#	22222rct}g}|||jddd|||jddd|||jdd|d||jdS)Nrrlrr)rrrr6rbr4r5rs   rtest_decompressor_inputbuf_3z0BZ2DecompressorTest.test_decompressor_inputbuf_30s	

3>>$)DSD/155666	

3>>$)CG"4a88999	

3>>$)CDD/22333#	22222rct}|t|j|jdz|t|j|jdzdS)N)rrY	Exceptionrr8)r*rs  rtest_failurez BZ2DecompressorTest.test_failure@sU)S^T]R5GHHH)S^T]R5GHHHHHrctjtd}t}|}t	dD]}||||z
dddS)NgettotalrefcountrrrV)delta)r
get_attributesysrr__init__assertAlmostEqual)r*rrrefs_beforers     rtest_refleaks_in___init__z-BZ2DecompressorTest.test_refleaks_in___init__Fs"06HII&&((s		ALLNNNN//11K?"MMMMMrN)r0r1r2rxr|r~rrrrsrrrrqrrrrr
refcount_testrrHrrrurus:::***
*
*
*888:::
ZS3Ys+++
 
 ,+
 777
///>333,333*333 III
NNNNNrrucJeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdS)CompressDecompressTestct|j}|t	||jdSr$)rrFr5rbr)r*rs  rr\z#CompressDecompressTest.testCompressQs;||DI&&--ty99999rcptd}|||jdSr^)rrFrbr7r*rs  rr_z.CompressDecompressTest.testCompressEmptyStringUs1||C  t/////rczt|j}|||jdSr$rrr6rbr5rs  rr|z%CompressDecompressTest.testDecompressYs3~~di((ty)))))rcftd}||ddSr^)rrrbrs  rtestDecompressEmptyz*CompressDecompressTest.testDecompressEmpty]s/~~c""s#####rcpt|j}||ddSr^)rrr7rbrs  rtestDecompressToEmptyStringz2CompressDecompressTest.testDecompressToEmptyStringas1~~do..s#####rcl|ttj|jdddS)NrH)rYr[rrr6r.s rtestDecompressIncompletez/CompressDecompressTest.testDecompressIncompletees,*cndioFFFFFrc\|ttj|jdSr$)rYrhrrr8r.s rtestDecompressBadDataz,CompressDecompressTest.testDecompressBadDatahs$'3>4=AAAAArct|jdz}|||jdzdSrrrs  rtestDecompressMultiStreamz0CompressDecompressTest.testDecompressMultiStreamks;~~di!m,,ty1}-----rct|j|jz}|||jdSr$rrr6r8rbr5rs  rtestDecompressTrailingJunkz1CompressDecompressTest.testDecompressTrailingJunkos:~~di$-788ty)))))rct|jdz|jz}|||jdzdSrrrs  r%testDecompressMultiStreamTrailingJunkz<CompressDecompressTest.testDecompressMultiStreamTrailingJunkssB~~di!mdm;<<ty1}-----rN)
r0r1r2r\r_r|rrrrrrrrHrrrrPs:::000***$$$$$$GGGBBB...***.....rrcLeZdZ	dZdZdZdZdZdZdZ	dZ
d	Zd
ZdS)OpenTestc$tj|i|Sr$)rrB)r*argskwargss   rrBz
OpenTest.open{sx((((rcdD]}|dkrt|j||j|5}||jdddn#1swxYwYt|jd5}t|}|||jdddn#1swxYwY||jd5}|||jdddn#1swxYwY||jd5}||jdddn#1swxYwYt|jd5}t|}|||jdzdddn#1swxYwYdS)N)rLxbrrabrr
r'rBrMr5rr`rbr*moderP	file_datas    rtest_binary_modeszOpenTest.test_binary_modes~s 	;	;Dt||t}%%%4=$//
#1	"""
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#dmT**
7a*1668844	  DI666
7
7
7
7
7
7
7
7
7
7
7
7
7
7
74=$//
61  49555
6
6
6
6
6
6
6
6
6
6
6
6
6
6
64=$//
#1	"""
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#dmT**
;a*1668844	  DIM:::
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;	;	;ZA""A&	)A&	=CC	C	1.D++D/	2D/	E88E<	?E<	AG$$G(	+G(	cdD]}|dkrt|j||j|5}||jdddn#1swxYwYt|jd5}t|}|||jdddn#1swxYwY||jd5}|||jdddn#1swxYwY||jd5}||jdddn#1swxYwYt|jd5}t|}|||jdzdddn#1swxYwYdS)N)rxrrrWrrrrs    rtest_implicit_binary_modesz#OpenTest.test_implicit_binary_modess	;	;Ds{{t}%%%4=$//
#1	"""
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#dmT**
7a*1668844	  DI666
7
7
7
7
7
7
7
7
7
7
7
7
7
7
74=#..
6!  49555
6
6
6
6
6
6
6
6
6
6
6
6
6
6
64=#..
#!	"""
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#dmT**
;a*1668844	  DIM:::
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;	;	;rc|jd}|dtj}dD]}|dkrt|j||j|d5}||dddn#1swxYwYt|jd5}t|
d}|||dddn#1swxYwY||jdd5}||
|dddn#1swxYwY||jdd5}||dddn#1swxYwYt|jd5}t|
d}|||d	zdddn#1swxYwYdS)
Nr"
)wtxtrencodingrrtatr)r5decodereplacer(linesepr
r'rBrMrr`rb)r*rtext_native_eolrrPrs      rtest_text_modeszOpenTest.test_text_modess4y((,,tRZ88 	A	ADt||t}%%%4=$AA
Q

















dmT**
=a*1668844;;GDD	  O<<<
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=4=$AA
1Q  4000
1
1
1
1
1
1
1
1
1
1
1
1
1
1
14=$AA
Q

















dmT**
Aa*1668844;;GDD	  Oa,?@@@
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A	A	As\7BB	 B	9ADD	D	8)E--E1	4E1	F77F;	>F;	AH11H5	8H5	cdD]}t|jd|vrdnd}||j||5}	dddn#1swxYwY|t5||j|5}	dddn#1swxYwYdddn#1swxYwYdS)N)rrrtutf-8r)r
r'rBrYFileExistsError)r*rrrPs    rtest_x_modezOpenTest.test_x_modes%		D4=!!!"%++ww4H4=$BB
a














""?33

YYt}d33q














		sGAA	A	1B2
BB2BB2"B#B22B6	9B6	c|t|jd5}|||jdddn#1swxYwY|t|jd5}|||jdddn#1swxYwY|jd}|t|jdd5}|||ddddS#1swxYwYdS)NrWrr"rrr)rBrr6rbr`r5r)r*rPrs   rtest_fileobjzOpenTest.test_fileobjs
YYwty))3
/
/	21QVVXXty111	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2
YYwty))4
0
0	2AQVVXXty111	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2y((
YYwty))4'Y
B
B	-aQVVXXt,,,	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-s5.A##A'*A'.CCC)EEEc|t|j|jd|t|j|jd|t|j|jdd|t|j|jdd|t|j|jdd	dS)
Nwbtxbtrrrignore)errorsr)newline)rYr[rBr'r.s rtest_bad_paramszOpenTest.test_bad_paramss*)T]E	;	;	;*)T]E	;	;	;*)T]D7		L	L	L*)T]D		K	K	K*)T]D$		H	H	H	H	Hrc|jd}|dtj}||jdd5}||dddn#1swxYwYt|jd5}t|	d}|
||dddn#1swxYwY||jdd5}|
|	|ddddS#1swxYwYdS)Nr"rrz	utf-16-lerrr)r5rrr(rrBr'rMrr`rb)r*rrrPrs     r
test_encodingzOpenTest.test_encodingsy((,,tRZ88
YYt}d[Y
A
A	Q
GGDMMM															
$-
&
&	9!&qvvxx0077DDIY888	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9YYt}d[Y
A
A	-QQVVXXt,,,	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-s7A::A>A>AC11C58C5)EEEcT||jd5}|ddddn#1swxYwY||jddd5}||dddddS#1swxYwYdS)NrLsfoobarrr"r)rrfoobar)rBr'rMrbr`rs  rtest_encoding_error_handlerz$OpenTest.test_encoding_error_handlers
YYt}d
+
+	#q
GGM"""	#	#	#	#	#	#	#	#	#	#	#	#	#	#	#
YYt}dWXY
N
N	1QVVXXx000	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1s!>AA')BB!$B!c|jd}||jddd5}||dddn#1swxYwY||jddd5}|||gddddS#1swxYwYdS)Nr"rrr)rrr
)r5rrBr'rMrbr)r*rrPs   rtest_newlinezOpenTest.test_newlines1y((
YYt}dWdY
K
K	q
GGDMMM															
YYt}dWdY
K
K	4qQ[[]]TF333	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4s#AA"A*B;;B?B?N)
r0r1r2rBrrrrrrrrrrHrrrrxs)));;;";;;$AAA&---HHH
-
-
-11144444rrc,tjdSr$)r
reap_childrenrHrrtearDownModulersr__main__)*testrtest.supportrrrPunittestiorrr(rlr<r%r*rrrrrr	test.support.os_helperr
rpr
import_modulerrr
rrrTestCaserrJrWrurrrr0mainrHrr<module>r	s((((((((++++++++				











&&&&&&))))))))))))



"m!%((7777777777$$$11111x 111h]/]/]/]/]/(]/]/]/@0505050505050505f`N`N`N`N`N(`N`N`NF%.%.%.%.%.X%.%.%.Pv4v4v4v4v4xv4v4v4rzHMOOOOOr