+
    Bi                        ^ RI t ^ RIHt ^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RIH
t
HtHtHt ]P                  ! R4      t] P                   ! ]! ]P%                  4       R4      R4      t] P                   ! ]! ]P)                  4       R4      R4      t]P,                  3R	 lt]! 4       t]t ! R
 R] P4                  4      t ! R R] P4                  4      t ! R R] P4                  4      t ! R R] P4                  4      t ! R R]4      t  ! R R] ] P4                  4      t! ! R R] ] P4                  4      t"R]3R lt#Rt$ ! R R] P4                  4      t% ! R R4      t&]'R8X  d   ] PP                  ! 4        R# R# )    N)support)import_helper)
bigmemtest_1G_4Gis_s390xzlibcopyzrequires Compress.copy()zrequires Decompress.copy()c                    V P                  R ^4      ^ ,          P                  R4      p\        V4      ^8  d   VP                  R4       M"VR,          P                  4       '       g   RVR&   \	        \        \        V4      4      # )-.0)splitlenappend	isnumerictuplemapint)zlib_versionvs   & %/usr/lib/python3.14/test/test_zlib.py_zlib_runtime_version_tupler      sg     	3"1%++C0A
1vz	rU__"S!    c                   &   a  ] tR t^Bt o R tRtV tR# )VersionTestCasec                ~    V P                  \        P                  ^ ,          \        P                  ^ ,          4       R# )r   N)assertEqualr	   ZLIB_RUNTIME_VERSIONZLIB_VERSIONselfs   &r   test_library_version$VersionTestCase.test_library_versionD   s*     	2215t7H7H7KLr    N)__name__
__module____qualname____firstlineno__r$   __static_attributes____classdictcell____classdict__s   @r   r   r   B   s     M Mr   r   c                   J   a  ] tR t^Mt o R tR tR tR tR tR t	R t
RtV tR	# )
ChecksumTestCasec                    V P                  \        P                  R 4      \        P                  R ^ 4      4       V P                  \        P                  RR4      4       R# r   s   abcl    N)r   r	   crc32
assertTruer"   s   &r   test_crc32start ChecksumTestCase.test_crc32startO   s<    C$**S!*<=

6:67r   c                    V P                  \        P                  R ^ 4      ^ 4       V P                  \        P                  R ^4      ^4       V P                  \        P                  R R4      R4       R# r   i  N)r   r	   r3   r"   s   &r   test_crc32empty ChecksumTestCase.test_crc32emptyS   sS    C+Q/C+Q/C-s3r   c                    V P                  \        P                  R 4      \        P                  R ^4      4       V P                  \        P                  RR4      4       R# r2   )r   r	   adler32r4   r"   s   &r   test_adler32start"ChecksumTestCase.test_adler32startX   s=    c*DLLa,@AVZ89r   c                    V P                  \        P                  R ^ 4      ^ 4       V P                  \        P                  R ^4      ^4       V P                  \        P                  R R4      R4       R# r8   )r   r	   r<   r"   s   &r   test_adler32empty"ChecksumTestCase.test_adler32empty\   sS    c1-q1c1-q1c3/5r   c                   V P                  \        P                  R ^ 4      R4       V P                  \        P                  R ^4      R4       V P                  \        P                  R ^ 4      R4       V P                  \        P                  R ^4      R4       V P                  \        P                  R 4      \        P                  R ^ 4      4       V P                  \        P                  R 4      \        P                  R ^4      4       R# )s   penguinl    !K iCiiNr   r	   r3   r<   r"   s   &r   test_penguinsChecksumTestCase.test_penguinsa   s    J2K@J2J?j!4jAj!4jAJ/J1JKj1$,,z!2LMr   c                >   R pV P                  \        P                  V4      R4       V P                  \        P                  R4      R4       V P                  \        P                  W,           4      R4       V P                  \        P                  R4      R4       R# )   abcdefghijklmnop   @u(    spami=Cl    * iONrC   )r#   foos   & r   test_crc32_adler32_unsigned,ChecksumTestCase.test_crc32_adler32_unsignedj   sl    !C*5G,j9cg.
;g.9r   c                   R pRpV P                  \        P                  ! V4      V4       V P                  \        P                  V4      V4       V P                  \        P                  ! R4      \        P                  R4      4       R# )rG   rH   rI   N)r   binasciir3   r	   )r#   rJ   crcs   &  r   test_same_as_binascii_crc32,ChecksumTestCase.test_same_as_binascii_crc32r   s_    !,c2C#.0$**W2EFr   r&   N)r'   r(   r)   r*   r5   r9   r=   r@   rD   rK   rP   r+   r,   r-   s   @r   r0   r0   M   s0     84
:6
N:G Gr   r0   c                   P   a  ] tR t^{t o ]! ]^,           ^RR7      R 4       tRtV tR# )ChecksumBigBufferTestCaseF)sizememusedry_runc                    R \         ^,           ,          pV P                  \        P                  V4      R4       V P                  \        P	                  V4      R4       R# )s   nyaniM"B>l   a N)r   r   r	   r3   r<   )r#   rT   datas   && r   test_big_buffer)ChecksumBigBufferTestCase.test_big_buffer}   sB    #'"D):6d+Z8r   r&   N)	r'   r(   r)   r*   r   r   rY   r+   r,   r-   s   @r   rS   rS   {   s$     S1WQ69 79r   rS   c                      a  ] tR t^t o R tR tR tR tR t]	P                  R 4       t]	P                  R 4       tRtV tR	# )
ExceptionTestCasec                f    V P                  \        P                  \        P                  R ^
4       R# )s   ERRORN)assertRaisesr	   errorcompressr"   s   &r   test_badlevelExceptionTestCase.test_badlevel   s      	$**dmmXrBr   c                l   V P                  \        \        P                  4       V P                  \        \        P                  4       V P                  \        \        P
                  4       V P                  \        \        P                  4       ^*RRRR. 3 F  pV P                  \        \        P                  V4       V P                  \        \        P                  V4       V P                  \        \        P
                  V4       V P                  \        \        P                  V4       K  	  R# )*   N abcr&   )r^   	TypeErrorr	   r<   r3   r`   
decompress)r#   args   & r   test_badargsExceptionTestCase.test_badargs   s    )T\\2)TZZ0)T]]3)T__5b%R0Cis;iS9i<i#>	 1r   c                   V P                  \        \        P                  ^\        P                  ^ 4       V P                  \        \        P                  ^\        P                  \        P
                  ^,           4       R#    N)r^   
ValueErrorr	   compressobjDEFLATED	MAX_WBITSr"   s   &r   test_badcompressobj%ExceptionTestCase.test_badcompressobj   sO    *d&6&64==!L*  !T]]DNNQ4F	Hr   c                P    V P                  \        \        P                  R4       R# )rn   Nr   )r^   ro   r	   decompressobjr"   s   &r   test_baddecompressobj'ExceptionTestCase.test_baddecompressobj   s    *d&8&8"=r   c                    V P                  \        \        P                  4       P                  ^ 4       V P                  \        \        P                  4       P                  R4       R# )r   Nr   )r^   ro   r	   rv   flushr"   s   &r   test_decompressobj_badflush-ExceptionTestCase.test_decompressobj_badflush   sD    *d&8&8&:&@&@!D*d&8&8&:&@&@"Er   c                   V P                  \        R 4      ;_uu_ 4        \        P                  R^\        P
                  ^,           4       RRR4       V P                  \        R 4      ;_uu_ 4        \        P                  4       P                  R\        P
                  ^,           4       RRR4       V P                  \        R 4      ;_uu_ 4        \        P                  4       P                  \        P
                  ^,           4       RRR4       R#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)zint too larger   N)assertRaisesRegexOverflowErrorr	   rh   sysmaxsizerv   rz   r"   s   &r   test_overflowExceptionTestCase.test_overflow   s    ##M?CCOOCS[[1_5 D##M?CC ++CqA D##M?CC &&s{{Q7 DC	 DCCCCCCs#   -D2:D(9D;D%	(D8	;E	c                    \         P                  ! V \        \        P	                  4       4      4       \         P                  ! V \        \        P                  4       4      4       R # N)r   check_disallow_instantiationtyper	   rp   rv   r"   s   &r   test_disallow_instantiation-ExceptionTestCase.test_disallow_instantiation   s@     	,,T48H8H8J3KL,,T48J8J8L3MNr   r&   N)r'   r(   r)   r*   ra   rj   rs   rw   r{   r   cpython_onlyr   r   r+   r,   r-   s   @r   r\   r\      sW     C	?H>F
 8 8 O Or   r\   c                   ,   a  ] tR t^t o R tR tRtV tR# )BaseCompressTestCasec                    Rp\         P                  ! V^
,          4      pWA\        V4      ,          ^,           ,          p V! V4       RpR#   Rpi ; i)i   N   )random	randbytesr   )r#   rT   compress_func_1MrX   s   &&&  r   check_big_compress_buffer.BaseCompressTestCase.check_big_compress_buffer   sM     b)s4y(1,-	$ D4Ds    A Ac                   R V,          p \         P                  V^4      pRpV! V4      p V P                  \        V4      V4       V P                  \        VP	                  R 4      4      ^ 4       RpR#   Rpi ; i  Rpi ; i   xN)r	   r`   r   r   strip)r#   rT   decompress_funcrX   
compresseds   &&&  r   check_big_decompress_buffer0BaseCompressTestCase.check_big_decompress_buffer   s~    d{	tQ/J Dz*	SY-SD!12A6D D Ds   A5 AA< 5A9<B r&   N)r'   r(   r)   r*   r   r   r+   r,   r-   s   @r   r   r      s      r   r   c                   .  a  ] tR t^t o R tR tR tR t]! ]	R,           ^R7      R 4       t
]! ]	R,           ^R7      R 4       t]! ]^R7      R 4       tR	 t]P                   ! ]P$                  R8  R
4      ]! ]^d,           ^R7      R 4       4       tRtV tR# )CompressTestCasec                    \         P                  \        4      pV P                  \         P	                  V4      \        4       R # r   )r	   r`   HAMLET_SCENEr   rh   r#   xs   & r   test_speechCompressTestCase.test_speech   s)    MM,'+\:r   c                   \         P                  \        ^R7      pV P                  \         P	                  V4      \        4       V P                  \        4      ;_uu_ 4        \         P                  \        ^R7       RRR4       V P                  \         P	                  V\         P                  \         P                  R7      \        4       R#   + '       g   i     LZ; i)   )level)rX   r   N)wbitsbufsize)	r	   r`   r   r   rh   r^   rg   rr   DEF_BUF_SIZEr   s   & r   test_keywordsCompressTestCase.test_keywords   s    MM,aM0+\:y))MM|1M5 */3~~151B1B ) D &	' *)s   "CC 	c                0   \         ^,          p\        P                  V4      p\        '       g/   V P	                  \        P                  \        V4      4      V4       V\        V4      3 F(  pV P	                  \        P                  V4      V4       K*  	  R#    N)r   r	   r`   HW_ACCELERATEDr   	bytearrayrh   )r#   rX   r   obs   &   r   test_speech128CompressTestCase.test_speech128   si    c!MM$ ~T]]9T?;Q?Yq\/BT__R0$7 "r   c                    \         P                  \        4      pV P                  \         P                  R \         P
                  VRR 4       R# )zAError -5 while decompressing data: incomplete or truncated streamNr   )r	   r`   r   r~   r_   rh   r   s   & r   test_incomplete_stream'CompressTestCase.test_incomplete_stream   s6    MM,'tzzOOOQsV	%r   rT   rU   c                .    R  pV P                  W4       R# )c                 .    \         P                  V ^4      # )rn   )r	   r`   )ss   &r   <lambda>;CompressTestCase.test_big_compress_buffer.<locals>.<lambda>   s    T]]1a0r   N)r   )r#   rT   r`   s   && r   test_big_compress_buffer)CompressTestCase.test_big_compress_buffer   s    0&&t6r   c                F    V P                  V\        P                  4       R # r   )r   r	   rh   )r#   rT   s   &&r   test_big_decompress_buffer+CompressTestCase.test_big_decompress_buffer   s    ((t?r   c                    \         ^
,          p\        P                  V^4      pV P                  \        P	                  V^V4      V4       R# 
   N)r   r	   r`   r   rh   )r#   rT   rX   r   s   &&  r   test_large_bufsize#CompressTestCase.test_large_bufsize  s;     b ]]4+
R>Er   c                    \         ^
,          p\        P                  V^4      pV P                  \        P	                  V^\        4       4      V4       R# r   )r   r	   r`   r   rh   	CustomInt)r#   rX   r   s   &  r   test_custom_bufsize$CompressTestCase.test_custom_bufsize	  s;    b ]]4+
REtLr   requires 64bit platformc                    R V,          p \         P                  V^ 4      pV P                  \         P                  V4      V4       R;r2R#   R;r2i ; ir   )r	   r`   r   rh   )r#   rT   rX   comps   &&  r   test_64bit_compress$CompressTestCase.test_64bit_compress  sP     d{	==q)DT__T2D9D4$D4s   ;A Ar&   Nr           )r'   r(   r)   r*   r   r   r   r   r   r   r   r   r   r   r   unittest
skipUnlessr   r   r   r+   r,   r-   s   @r   r   r      s     ;'	8% S;&q17 27 S;&q1@ 2@ S#F $FM
 u,.GHS3Yq) * Ir   r   c                   &  a  ] tR tRt o R tR tR tR tR.R ltR t	R/R	 lt
R0R
 ltR tR tR tR tR tR t]P&                  ! ]! ]R4      R4      R 4       tR tR tR tR tR tR tR tR tR t] ! ]!^R7      R 4       t"R t#]$R  4       t%]$R! 4       t&]'R" 4       t(]'R# 4       t)R$ t*R% t+] ! ],R1,           ^R7      R& 4       t-] ! ],R1,           ^R7      R' 4       t.]P&                  ! ]/P`                  R28  R(4      ] ! ]!^d,           ^R7      R) 4       4       t1]P&                  ! ]/P`                  R28  R(4      ] ! ]!^d,           ^R7      R* 4       4       t2]P&                  ! ]/P`                  R28  R(4      ] ! ]!^d,           ^R7      R+ 4       4       t3R, t4R-t5V t6R# )3CompressObjectTestCasei  c                   \         ^,          p\        P                  V4      pV\        V4      3 F  p\        P	                  4       pVP                  V4      pVP                  4       pV P                  \        P                  VP
                  4       \        '       d   Kp  V P                  WV,           V4       K  	  XX3\        V4      \        V4      33 F  w  rx\        P                  4       p	V	P                  Wx,           4      p
V	P                  4       pV P                  XW,           4       V P                  V	P                  \        4       V P                  V	P                  \        4       K  	  R# r   )r   r	   r`   r   rp   rz   r^   r_   r   r   rv   rh   assertIsInstanceunconsumed_tailbytesunused_data)r#   datasrcdataziprX   cox1x2v1v2dcoy1y2s   &           r   	test_pair CompressObjectTestCase.test_pair  s   $--(i01D!!#BT"BBdjj"((3 ">  '2 2 Bx)B-2!?@FB$$&C(BBT27+!!#"5"5u=!!#//59 Ar   c           	        ^p\         P                  pRp^	p\         P                  p\         P                  VVVVVRR7      p\         P	                  VRR7      pV P                  \        4      ;_uu_ 4        VP                  \        R7       RRR4       V P                  \        4      ;_uu_ 4        VP                  \         P                  \        4      R7       RRR4       VP                  \        4      VP                  4       ,           pVP                  V\        \        4      R7      VP                  4       ,           p	V P                  \        V	4       R#   + '       g   i     L; i  + '       g   i     L; i)   r   )r   methodr   memLevelstrategyzdictr   r   )rX   N
max_length)r	   rq   
Z_FILTEREDrp   rv   r^   rg   r`   r   rh   rz   r   r   )
r#   r   r   r   r   r   r   dor   ys
   &         r   r   $CompressObjectTestCase.test_keywords1  s   ??E%+$)'/'/$'  ) e37y))KK\K* *y))MMt}}\:M; *KK%
2MM!L(9M:RXXZGq) *)))s   6E2*E.E+	.E>	c                z   ^p\         P                  pRp^	p\         P                  p\         P                  WW4V4      pVP	                  \
        4      pVP                  4       p\         P                  V4      p	V	P                  Wx,           4      p
V	P                  4       pV P                  \
        W,           4       R# )r   Nr   )
r	   rq   r   rp   r`   r   rz   rv   rh   r   )r#   r   r   r   r   r   r   r   r   r   r   r   s   &           r   test_compressoptions+CompressObjectTestCase.test_compressoptionsF  s    ??eUhG[[&XXZ  '^^BG$YY[rw/r   c           	        \         ^,          p\        P                  4       p. p\        ^ \	        V4      R4       F,  pVP                  VP                  WVR,            4      4       K.  	  VP                  VP                  4       4       RP                  V4      p\        P                  4       pVP                  RP                  V4      4      pVP                  4       pV P                  WV,           4       R# )r      r   N)r   r	   rp   ranger   r   r`   rz   joinrv   rh   r   )	r#   rX   r   bufsicombufr   r   r   s	   &        r   test_compressincremental/CompressObjectTestCase.test_compressincrementalU  s    c!q#d)S)AKKD1S5M23 *BHHJ$  "^^CHHTN+YY[Bw'r   Nc           	        T;'       g    \         pV^,          p\        P                  4       p. p\        ^ \	        V4      V4       F+  pVP                  VP                  WXW,            4      4       K-  	  VP                  VP                  4       4       RP                  V4      p	\        P                  V	4      p
V P                  V
\        4       V P                  WZ4       \        P                  4       p. p\        ^ \	        V	4      V4       F~  pVP                  VP                  WW,            4      4       V P                  RVP                  R\	        VP                  4      ,          4       V P                  RVP                  4       K  	  V'       d!   VP                  VP                  4       4       M. VP                  R4      pV'       d   VP                  V4       K-   V P                  RVP                  R\	        VP                  4      ,          4       V P                  RVP                  4       V P                  VRP                  V4      4       R# )r   r   z"(A) uct should be b'': not %d longz"(B) uct should be b'': not %d longN)r   r	   rp   r   r   r   r`   rz   r   rh   r   r   r   rv   r   r   )r#   rz   sourcecxdcxrX   r   r   r   r   decombufr   chunks   &&&&&        r   test_decompinc%CompressObjectTestCase.test_decompincd  s   ''<|q#d)R(AKKD14L12 )BHHJ$??6*h.(  "q#f+s+AKKv78S#"5"5A'*3+>+>'?@A S#//2 , KK		$s+KK&c11='*3+>+>'?@	A 	coo.sxx~.r   c                *    V P                  R R7       R# T)rz   N)r  r"   s   &r   test_decompincflush*CompressObjectTestCase.test_decompincflush  s    $'r   c           	        T;'       g    \         pV^,          p\        P                  4       p. p\        ^ \	        V4      V4       F+  pVP                  VP                  WGWr,            4      4       K-  	  VP                  VP                  4       4       RP                  V4      pV P                  V\        P                  V4      R4       \        P                  4       p	. pTp
V
'       da   V	P                  W4      pV P                  \	        V4      V8  R\	        V4      V3,          4       VP                  V4       V	P                  p
Kh  VP                  V	P                  4       4       V P                  VRP                  V4      R4       R# )r   r   compressed data failurechunk too big (%d>%d)Wrong data retrievedNr   r	   rp   r   r   r   r`   rz   r   r   rh   rv   assertFalser   )r#   r  r  r  rX   r   r   r   r   r   cbr  s   &&&&        r   test_decompimax&CompressObjectTestCase.test_decompimax  s4   ''<|q#d)R(AKKD14L12 )BHHJ$tv62	4   "NN2+ESZ#-+s5z3.??AKK$$BCIIK sxx~/EFr   c           	        \         ^,          p\        P                  4       p. p\        ^ \	        V4      R4       F,  pVP                  VP                  W%VR,            4      4       K.  	  VP                  VP                  4       4       RP                  V4      pV P                  V\        P                  V4      R4       \        P                  4       p. pTpV'       dz   ^\	        V4      ^
,          ,           p	VP                  W4      p
V P                  \	        V
4      V	8  R\	        V
4      V	3,          4       VP                  V
4       VP                  pK  V'       d!   VP                  VP                  4       4       M]X
'       dV   VP                  RX	4      p
V P                  \	        V
4      V	8  R\	        V
4      V	3,          4       VP                  V
4       K]  V P                  VRP                  V4      R4       R# )r   r   r   r  r  r  Nr  )r#   rz   rX   r   r   r   r   r   r  r   r  s   &&         r   test_decompressmaxlen,CompressObjectTestCase.test_decompressmaxlen  s   c!q#d)S)AKKD1S5M23 *BHHJ$tv62	4   "SWb[JNN22ESZ*4/3u:j2IIKKK$$BKK		$sJ7  Uj!83s5z*6MMOE"sxx~/EFr   c                *    V P                  R R7       R# r
  )r  r"   s   &r   test_decompressmaxlenflush1CompressObjectTestCase.test_decompressmaxlenflush  s    """.r   c                    \         P                  4       pV P                  \        VP                  R R4       V P                  R VP                  4       R# )r   Nr   )r	   rv   r^   ro   rh   r   r   )r#   r   s   & r   test_maxlenmisc&CompressObjectTestCase.test_maxlenmisc  s>      "*cnnc2>c112r   c                &   \         ^
,          pV P                  \        V4      \        P                  4       \        P                  V^4      p\        P                  4       pV P                  VP                  V\        P                  4      V4       R# r   )r   assertGreaterr   r	   r   r`   rv   r   rh   r   r   r#   rX   r   r   s   &   r   test_maxlen_large(CompressObjectTestCase.test_maxlen_large  se     b 3t9d&7&78]]4+
  "
CKK@$Gr   c                    \         ^
,          p\        P                  V^4      p\        P                  4       pV P	                  VP                  V\        4       4      VR,          4       R# )r   Nd   NN)r   r	   r`   rv   r   rh   r   r!  s   &   r   test_maxlen_custom)CompressObjectTestCase.test_maxlen_custom  sK    b ]]4+
  "
IK@$t*Mr   c                    R p\         P                  4       pVP                  V^4      pW2P                  VP                  4      ,          pV P	                  VP                  R4       R# )s
   xKLJ Mr   N)r	   rv   rh   r   r   )r#   cdatar   ddatas   &   r   test_clear_unconsumed_tail1CompressObjectTestCase.test_clear_unconsumed_tail  sT     -  "ua( 3 344,,c2r   c                   . ROp\         R	8  d   VP                  R4       V Uu. uF+  p\        \        V4      '       g   K  \	        \        V4      NK-  	  pp\
        ^,          pV F  p\        ^
4       F  pV P                  WER7      ;_uu_ 4        \        P                  V4      pVP                  VR,          4      pVP                  V4      pVP                  VR,          4      p	VP                  4       p
V P                  \        P                  RP                  WxW.4      4      VRWE3,          4       ?RRR4       K  	  K  	  R# u upi   + '       g   i     K  ; i)

Z_NO_FLUSHZ_BLOCK)syncr   :Ni  N:i  NNr   z*Decompress failed: flush mode=%i, level=%iN)r/  Z_SYNC_FLUSHZ_FULL_FLUSHZ_PARTIAL_FLUSH)rn   r      r   )ZLIB_RUNTIME_VERSION_TUPLEr   hasattrr	   getattrr   r   subTestrp   r`   rz   r   rh   r   )r#   sync_optoptrX   r1  r   objabcds   &          r   test_flushes#CompressObjectTestCase.test_flushes  s&   ' &5OOI&2: +(3tS) 'GD#&( +aDr\\t\99**E3Cd5k3A		4)Ad5k3A		A$$T__SXXq1i5H%I%) -@DH=,QR  :9 # 	+ :99s   EEB'E	E!r2  zrequires zlib.Z_SYNC_FLUSHc                R   ^ RI p\        P                  \        P                  4      p\        P	                  4       pVP
                  ! R4      pVP                  V4      pVP                  \        P                  4      pVP                  WV,           4      pV P                  WtR4       R# )r   Nz17K random source doesn't matchi D  )r   r	   rp   Z_BEST_COMPRESSIONrv   r   r`   rz   r2  rh   r   )r#   r   r   r   rX   firstsecondexpandeds   &       r   test_odd_flush%CompressObjectTestCase.test_odd_flush  s     	 d556  " 	* D!$++,>>%.1 	)JKr   c                    \         P                  \         P                  4      pV P                  VP	                  4       4       \         P                  4       pV P                  VP	                  4       R 4       R# r   N)r	   rp   rD  r4   rz   rv   r   )r#   r   r   s   &  r   test_empty_flush'CompressObjectTestCase.test_empty_flush  sP    
 d556
#  "c*r   c                   \         pVP                  4       p\        P                  ! V4       R P	                  V4      p\
        P                  VR7      pVP                  V4      VP                  4       ,           p\
        P                  VR7      pV P                  VP                  V4      VP                  4       ,           V4       \
        P                  4       pV P                  \
        P                  VP                  V4       R# )r   r   N)r   r   r   shuffler   r	   rp   r`   rz   rv   r   rh   r^   r_   )r#   hwordsr   r   cdr   s   &      r   test_dictionary&CompressObjectTestCase.test_dictionary(  s    	uE*[[^bhhj(  u -+ciik91=  "$**cnnb9r   c                   \         P                  \        R 7      p\         P                  \        R 7      p\        R,          pVP	                  V4      VP                  \         P                  4      ,           pVP	                  VR,          4      VP                  \         P                  4      ,           pVP	                  VRR 4      VP                  \         P                  4      ,           pV P                  VP                  V4      V4       V P                  VP                  V4      VR,          4       V P                  VP                  V4      VRR 4       R# )rO  :i  i  N:r&  NNNi)	r	   rp   r   rv   r`   rz   r2  r   rh   )r#   r   r   pieced0d1d2s   &      r   test_dictionary_streaming0CompressObjectTestCase.test_dictionary_streaming8  s     L1l3Y'[["((4+<+<"==[[t%1B1B(CC[[u&$2C2C)DDr*E2r*E$K8r*E%4L9r   c                X   R pV P                  \        P                  V4      R4       V P                  \        P                  \        P                  VRR 4       \        P                  4       pVP                  VRR 4      pW2P                  4       ,          pV P                  VR4       R# )   xK Es   fooN)r   r	   rh   r^   r_   rv   rz   )r#   r   r   r   s   &   r   !test_decompress_incomplete_stream8CompressObjectTestCase.test_decompress_incomplete_streamE  s    2+V4$**dooq"v>   "NN1Sb6"	YY[F#r   c                z   R p\         P                  4       pV P                  VP                  4       VP	                  VRR 4       V P                  VP                  4       VP	                  VRR 4       V P                  VP                  4       VP                  4        V P                  VP                  4       R# r^  Nr_  )r	   rv   r  eofrh   r4   rz   r#   r   r   s   &  r   test_decompress_eof*CompressObjectTestCase.test_decompress_eofR  s    2  "!q"v!qv 		 r   c                   R p\         P                  4       pV P                  VP                  4       VP	                  VRR 4       V P                  VP                  4       VP                  4        V P                  VP                  4       R# rc  )r	   rv   r  rd  rh   rz   re  s   &  r   %test_decompress_eof_incomplete_stream<CompressObjectTestCase.test_decompress_eof_incomplete_stream]  sf    2  "!q"v!		!r   c                <   R pRp\         P                  V4      pW2,           pR EFs  p^^\        V4      \        V4      3 EFR  p\         P                  4       pRp\	        ^ \        V4      V4       F  p	V	\        V4      8  d   V P                  VP                  R4       V^ 8X  d>   WP                  WIW,            4      ,          pV P                  VP                  R4       Ks  WP                  VP                  WIW,            ,           V4      ,          pK  	  WP                  4       ,          pV P                  VP                  4       V P                  W4       V P                  VP                  R4       V P                  VP                  V4       EKU  	  EKv  	  R# )   abcdefghijklmnopqrstuvwxyzs
   0123456789r   N)r   i  )r	   r`   r   rv   r   r   r   rh   r   rz   r4   rd  )
r#   r  	remainderr   r   maxlenstepr   rX   r   s
   &         r   test_decompress_unused_data2CompressObjectTestCase.test_decompress_unused_dataf  sH    /!	MM&!MF1c!fc!f,((*q#a&$/A3q6z((#>{qQX ??(()<)<cB # 3 3aAHo Ev!O O 0 		#(  .  !4!4c:  )<! - r   c                \   R p\         P                  \         P                  ) VR7      pVP                  V4      VP	                  4       ,           p\         P                  \         P                  ) VR7      pVP                  V4      VP	                  4       ,           pV P                  W4       R# )rl  r   N)r	   rp   rr   r`   rz   rv   rh   r   )r#   r   r   r   r   uncomps   &     r   #test_decompress_raw_with_dictionary:CompressObjectTestCase.test_decompress_raw_with_dictionary  s}    -T^^O5A{{5!BHHJ.  e D%		3'r   c                    R pRp\         P                  V4      p\         P                  4       pVP                  V^4       ?\         P                  V4      pV P	                  VP                  4       VR,          4       R# )rl  s   QWERTYUIOPASDFGHJKLZXCVBNMrn   NNN)r	   r`   rv   rh   r   rz   )r#   input1input2rX   r   s   &    r   test_flush_with_freed_input2CompressObjectTestCase.test_flush_with_freed_input  sc     /.}}V$  "tQ}}V$fRj1r   r   c                    \         ^
,          p\        P                  V^4      p\        P                  4       pVP	                  V^4       V P                  VP                  V4      VR,          4       R# r   rw  N)r   r	   r`   rv   rh   r   rz   )r#   rT   inputrX   r   s   &&   r   test_flush_large_length.CompressObjectTestCase.test_flush_large_length  sV     r!}}UA&  "tQ4%)4r   c                    \         ^
,          p\        P                  V^4      p\        P                  4       pVP	                  V^4       V P                  VP                  \        4       4      VR,          4       R# r}  )r   r	   r`   rv   rh   r   rz   r   )r#   r~  rX   r   s   &   r   test_flush_custom_length/CompressObjectTestCase.test_flush_custom_length  sW    r!}}UA&  "tQ9;/r;r   c                P   \         p\        \        \         R 4      P                  4       R 4      pR \        P                  \        P
                  3 EFP  p\        P                  \        P                  4      p. pVP                  VP                  V4      4       V! V4      pVR,          pVP                  VP                  V4      4       VP                  VP                  4       4       RP                  V4      pVP                  VP                  V4      4       VP                  VP                  4       4       RP                  V4      p	V P                  \        P                  V4      W,           4       V P                  \        P                  V	4      W,           4       EKS  	  R# )asciic                 "    V P                  4       # r   r
   r?  s   &r   r   :CompressObjectTestCase.test_compresscopy.<locals>.<lambda>  
    affhr   NNNr   N)r   r   strswapcaser
   deepcopyr	   rp   rD  r   r`   rz   r   r   rh   )
r#   data0data1funcc0bufs0c1bufs1s0s1s
   &         r   test_compresscopy(CompressObjectTestCase.test_compresscopy  s    c,099;WE&		4==@D!!$"9"9:BELLU+,bB!HELLU+,LL$%BLLU+,LL$%BT__R0=T__R0=# Ar   c                L   \         P                  4       pVP                  \        4       VP	                  4        V P                  \        VP                  4       V P                  \        \        P                  V4       V P                  \        \        P                  V4       R # r   )	r	   rp   r`   r   rz   r^   ro   r
   r  )r#   r?  s   & r   test_badcompresscopy+CompressObjectTestCase.test_badcompresscopy  sg     	

< 		*aff-*dii3*dmmQ7r   c                z   \         p\        P                  V4      pV P                  V\        4       R  \
        P
                  \
        P                  3 F  p\        P                  4       p. pVP                  VP                  VR,          4      4       V! V4      pVR,          pVP                  VP                  VR,          4      4       RP                  V4      pVP                  VP                  VR,          4      4       RP                  V4      p	V P                  W4       V P                  W4       K  	  R# )c                 "    V P                  4       # r   r  r  s   &r   r   <CompressObjectTestCase.test_decompresscopy.<locals>.<lambda>  r  r   :N    Nr  :r  NNr   N)r   r	   r`   r   r   r
   r  rv   r   rh   r   r   )
r#   rX   r   r  rX  r  rY  r  r  r  s
   &         r   test_decompresscopy*CompressObjectTestCase.test_decompresscopy  s     }}T"dE*&		4==@D##%BELLtCy12bB!HELLtCy12%BLLtCy12%BR#R% Ar   c                v   \         P                  \        4      p\         P                  4       pVP	                  V4       VP                  4        V P                  \        VP                  4       V P                  \        \        P                  V4       V P                  \        \        P                  V4       R # r   )
r	   r`   r   rv   rh   rz   r^   ro   r
   r  )r#   rX   r@  s   &  r   test_baddecompresscopy-CompressObjectTestCase.test_baddecompresscopy  su     }}\* 	T		*aff-*dii3*dmmQ7r   c                X   \        \        P                  ^,           4       Fq  pV P                  \        \        P
                  34      ;_uu_ 4        \        P                  ! \        P                  \        P                  4      V4       RRR4       Ks  	  R#   + '       g   i     K  ; irm   )
r   pickleHIGHEST_PROTOCOLr^   rg   PicklingErrordumpsr	   rp   rD  r#   protos   & r   test_compresspickle*CompressObjectTestCase.test_compresspickle  sj    622Q67E""Iv/C/C#DEET--d.E.EFN FE 8EEEs   9BB)c                :   \        \        P                  ^,           4       Fb  pV P                  \        \        P
                  34      ;_uu_ 4        \        P                  ! \        P                  4       V4       RRR4       Kd  	  R#   + '       g   i     Ky  ; irm   )	r   r  r  r^   rg   r  r  r	   rv   r  s   & r   test_decompresspickle,CompressObjectTestCase.test_decompresspickle  sb    622Q67E""Iv/C/C#DEET//159 FE 8EEEs   *B		Bc                `   a \         P                  ^4      oV3R lpV P                  W4       R# )rn   c                 P   < SP                  V 4      SP                  4       ,           # r   )r`   rz   )r   r?  s   &r   r   ACompressObjectTestCase.test_big_compress_buffer.<locals>.<lambda>  s    QZZ]QWWY6r   N)r	   rp   r   )r#   rT   r`   r?  s   && @r   r   /CompressObjectTestCase.test_big_compress_buffer  s&    Q6&&t6r   c                ^   a \         P                  4       oV3R  lpV P                  W4       R# )c                 P   < SP                  V 4      SP                  4       ,           # r   )rh   rz   )r   r@  s   &r   r   CCompressObjectTestCase.test_big_decompress_buffer.<locals>.<lambda>   s    q||A:r   N)r	   rv   r   )r#   rT   rh   r@  s   && @r   r   1CompressObjectTestCase.test_big_decompress_buffer  s$     :
((:r   r   c                D   R V,          p\         P                  ^ 4      p\         P                  4       p VP                  V4      VP	                  4       ,           pVP                  V4      VP	                  4       ,           pV P                  Wb4       R;p;rbR#   R;p;rbi ; ir   )r	   rp   rv   r`   rz   rh   r   )r#   rT   rX   r   r   r   rs  s   &&     r   r   *CompressObjectTestCase.test_64bit_compress  s     d{a !	(;;t$rxxz1D]]4(288:5FV*#''D'6D4'D'6Ds   AB Bc                @   R pRV,          p\         P                  V4      V,           p\         P                  4       p VP                  V4      VP	                  4       ,           pV P                  W5P                  4       V P                  Wb4       R;p;rER#   R;p;rEi ; i)rG   r   N)r	   r`   rv   rh   rz   r   r   )r#   rT   rX   unusedr   r   rs  s   &&     r   test_large_unused_data-CompressObjectTestCase.test_large_unused_data  s     #}}T"V+!	&]]4(288:5FV^^4V*!%%F%TB%F%TBs   AB Bc                4   R V,          p\         P                  4       p \         P                  V^ 4      pVP                  V^4      VP	                  4       ,           pV P                  WR4       V P                  VP                  R4       R;p;rRR#   R;p;rRi ; i)r   r   N)r	   rv   r`   rh   rz   r   r   )r#   rT   rX   r   r   rs  s   &&    r   test_large_unconsumed_tail1CompressObjectTestCase.test_large_unconsumed_tail  s     d{!	(==q)D]]4+bhhj8FV*R//5#''D'6D4'D'6Ds   A*B Bc           
        \         R8  p\        P                  ^^R7      pVP                  \        4      VP                  4       ,           pV P                  \        P                  V^4      \        4       V'       d+   V P                  \        P                  V^ 4      \        4       V P                  \        P                  V^/4      \        4       V P                  \        P                  R4      ;_uu_ 4        \        P                  V^4       RRR4       \        P                  ^/R7      pV P                  VP                  V4      \        4       \        P                  ^R7      pV P                  \        P                  R4      ;_uu_ 4        VP                  V4       RRR4       \        P                  ^^	R7      pVP                  \        4      VP                  4       ,           pV P                  \        P                  V^	4      \        4       V P                  \        P                  V^4      \        4       V'       d+   V P                  \        P                  V^ 4      \        4       V P                  \        P                  V^)4      \        4       \        P                  ^)R7      pV P                  VP                  V4      \        4       \        P                  ^RR7      pVP                  \        4      VP                  4       ,           pV P                  \        P                  VR4      \        4       \        P                  RR7      pV P                  VP                  V4      \        4       \        P                  ^RR7      pVP                  \        4      VP                  4       ,           pV P                  \        P                  VR4      \        4       V P                  \        P                  VR4      \        4       \        P                  RR7      pV P                  VP                  V4      \        4       \        P                  ^^R7      pVP                  \        4      VP                  4       ,           pV P                  \        P                  V^4      \        4       V P                  \        P                  V^/4      \        4       \        P                  ^/4      pV P                  VP                  V4      \        4       R Fm  p	V P                  V	R7      ;_uu_ 4        \        p
\        P                  \        P                  \        V	R7      V	R7      pV P                  W4       RRR4       Ko  	  R#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     K  ; i)	rn   )r   r   zinvalid window sizeN)r   )rn   r   r   r5  i)r        )r6  r	   rp   r`   r   rz   r   rh   r~   r_   rv   r9  )r#   supports_wbits_0r   zlib15r   zlib9	deflate15deflate9gzipr   expectedactuals   &           r   
test_wbits!CompressObjectTestCase.test_wbits+  s   5EAR0\*RXXZ74lCT__VQ7F9<H##DJJ0EFFOOFB' G  w //>  r *##DJJ0EFFNN6" G AQ/L)BHHJ62LA3\BT__UA6E7F  v ..=AS1KK-
:	C8,G  s +	2LAAR0;;|,rxxz926E37F  r *1<@AW5{{<(288:5w7Fw7F  )-|<"EE**'MM,eM<E )    2 +* #M GFF
 GFFD +**s%   9VV%;AV9V"	%V6	9W
r&   )FNr   @   )Nr   r  )Fr   r   )7r'   r(   r)   r*   r   r   r   r   r  r  r  r  r  r  r"  r'  r,  rA  r   r   r7  r	   rH  rL  rT  r[  r`  rf  ri  rp  rt  rz  r   r   r  r  requires_Compress_copyr  r  requires_Decompress_copyr  r  r  r  r   r   r   r   r   r   r  r  r  r+   r,   r-   s   @r   r   r     s-    :,**0(&/R(G6G@/3HN36 ~657L7L*+: :$	!"=6(
2 S#5 $5< > >. 8 8 & &0 8 8O
: S;&q17 27
 S;&q1; 2;
 u,.GHS3Yq)	( * I	( u,.GHS3Yq)
& * I
& u,.GHS3Yq)	( * I	(63 63r   r   c                     Ve   VP                  V4       V P                  R4      p\        V4       Uu. uF  qSP                  V4      NK  	  up# u upi )N
)seedr   r   choice)r  numberr  	generatorsourcesns   &&&&  r   choose_linesr  c  sG    tll4 G/4V}=}!W%}===s   As  
LAERTES

       O, fear me not.
       I stay too long: but here my father comes.

       Enter POLONIUS

       A double blessing is a double grace,
       Occasion smiles upon a second leave.

LORD POLONIUS

       Yet here, Laertes! aboard, aboard, for shame!
       The wind sits in the shoulder of your sail,
       And you are stay'd for. There; my blessing with thee!
       And these few precepts in thy memory
       See thou character. Give thy thoughts no tongue,
       Nor any unproportioned thought his act.
       Be thou familiar, but by no means vulgar.
       Those friends thou hast, and their adoption tried,
       Grapple them to thy soul with hoops of steel;
       But do not dull thy palm with entertainment
       Of each new-hatch'd, unfledged comrade. Beware
       Of entrance to a quarrel, but being in,
       Bear't that the opposed may beware of thee.
       Give every man thy ear, but few thy voice;
       Take each man's censure, but reserve thy judgment.
       Costly thy habit as thy purse can buy,
       But not express'd in fancy; rich, not gaudy;
       For the apparel oft proclaims the man,
       And they in France of the best rank and station
       Are of a most select and generous chief in that.
       Neither a borrower nor a lender be;
       For loan oft loses both itself and friend,
       And borrowing dulls the edge of husbandry.
       This above all: to thine ownself be true,
       And it must follow, as the night the day,
       Thou canst not then be false to any man.
       Farewell: my blessing season this in thee!

LAERTES

       Most humbly do I take my leave, my lord.

LORD POLONIUS

       The time invites you; go; your servants tend.

LAERTES

       Farewell, Ophelia; and remember well
       What I have said to you.

OPHELIA

       'Tis in my memory lock'd,
       And you yourself shall keep the key of it.

LAERTES

       Farewell.
c                   X  a  ] tR tRt o ]t]P                  ]4      tRt	]R]
! ]4      ,          ^,           ,          t]P                  ]4      tR tR tR tR tR t]P&                  ]! ]^d,           RR	7      R
 4       4       tR tR tR tR tR tR t]P:                  R 4       tRtV t R# )ZlibDecompressorTesti  s   Not a valid deflate blockc                    V P                  \        \        P                  R 4       V P                  \        \        P                  RR4       V P                  \        \        P                  RR^4       R# )ASDAnotbytess   bytesNr  )r^   rg   r	   _ZlibDecompressorr"   s   &r   test_Constructor%ZlibDecompressorTest.test_Constructor  sP    )T%;%;VD)T%;%;S*M)T%;%;S(ANr   c                    \         P                  4       pV P                  \        VP                  4       VP	                  V P
                  4      pV P                  W P                  4       R # r   )r	   r  r^   rg   rh   DATAr   TEXTr#   zlibdtexts   &  r   testDecompress#ZlibDecompressorTest.testDecompress  sL    &&()U%5%56		*yy)r   c                   \         P                  4       pR p^ p V P                  V^
,          V^,           ^
,           pV'       g   M"W!P                  V4      ,          pV^,          pKP  V P	                  W P
                  4       R# rK  )r	   r  r  rh   r   r  )r#   r  r  r  r  s   &    r   testDecompressChunks10+ZlibDecompressorTest.testDecompressChunks10  sm    &&())AbD!A#r*C$$S))DFAyy)r   c                    \         P                  4       pR pVP                  V P                  V,           4      pV P	                  W0P
                  4       V P	                  VP                  V4       R# )s   this is unused dataN)r	   r  rh   r  r   r  r   )r#   r  r   r  s   &   r   testDecompressUnusedData-ZlibDecompressorTest.testDecompressUnusedData  sV    &&(,		+ 56yy)**K8r   c                    \         P                  4       pVP                  V P                  4      pV P	                  \
        VP                  R 4       V P	                  \
        VP                  R4       R# )s   anythingr   N)r	   r  rh   r  r^   EOFErrorr  s   &  r   testEOFError!ZlibDecompressorTest.testEOFError  sT    &&(		*(E$4$4kB(E$4$4c:r   gffffff
@r   c                B   \        RV4      p\        P                  ! V4      p W1^,
          V,          ^,           ,          p\        P	                  V4      p\        P                  4       pVP                  V4      pV P                  Wt8H  4       RpRpRpR#   RpRpRpi ; i)r   Ni   )minr   r   r	   r`   r  rh   r4   )r#   rT   	blocksizeblockrX   r   r  decompresseds   &&      r   testDecompress4G%ZlibDecompressorTest.testDecompress4G  s     ($/	  +		 !V	1A56Dt,J**,E ++J7LOOL01DJL DJLs   A*B Bc                   \        \        P                  ^,           4       FR  pV P                  \        4      ;_uu_ 4        \        P
                  ! \        P                  4       V4       RRR4       KT  	  R#   + '       g   i     Ki  ; irm   )r   r  r  r^   rg   r  r	   r  r  s   & r   
testPickleZlibDecompressorTest.testPickle  sV    622Q67E""9--T335u= .- 8---s   *A99B
c                   \         P                  4       p^dp. p\        V P                  4      ^@,
          pVP	                  VP                  V P                  RV VR7      4       V P                  VP                  4       V P                  \        VR,          4      V4       VP	                  VP                  RVR7      4       V P                  VP                  4       V P                  \        VR,          4      V4       VP	                  VP                  V P                  VR VR7      4       V P                  \        VR,          4      V4       VP                  '       gG   VP	                  VP                  RVR7      4       V P                  \        VR,          4      V4       KX  RP                  V4      pV P                  W0P                  4       V P                  VP                  R4       R# )r&  Nr   r   r   )r	   r  r   BIG_DATAr   rh   r  needs_inputr   assertLessEqualrd  r   BIG_TEXTr   )r#   r  r   outlen_s   &    r   testDecompressorChunksMaxsize2ZlibDecompressorTest.testDecompressorChunksMaxsize  s   &&(
 4==!B&

5##DMM%4$8-7 $ 9 	:**+SWz2 	

5##CJ#?@**+SWz2 	

5##DMM$%$8-7 $ 9 	:SR\:6 )))JJu''
'CD  SWz:hhsmmm,**C0r   c                   \         P                  4       p. pV P                  VP                  V P                  R ,          ^ R7      R4       VP                  VP                  R^4      4       VP                  VP                  V P                  R,          ^4      4       VP                  VP                  V P                  R,          4      4       V P                  RP                  V4      V P                  4       R# )r%  r   r   :r&  i   N:r  NNNr	   r  r   rh   r  r   r   r  r#   r  r  s   &  r   test_decompressor_inputbuf_11ZlibDecompressorTest.test_decompressor_inputbuf_1  s     &&( 	))$))D/34 * 67:	<
 	

5##C+, 	

5##DIIg$6;< 	

5##DIIdO45#		2r   c                Z   \         P                  4       p. pV P                  VP                  V P                  R ,          ^ R7      R4       VP                  VP                  R4      4       VP                  VP                  V P                  R,          ^4      4       VP                  VP                  V P                  R,          ^4      4       VP                  VP                  V P                  R,          4      4       V P                  RP                  V4      V P                  4       R# )N   Nr   r   :r  i  N:i  i,  Ni,  NNNr  r  s   &  r   test_decompressor_inputbuf_21ZlibDecompressorTest.test_decompressor_inputbuf_2#  s     &&( 	))$))D/34 * 67:	<

5##C() 	

5##DIIg$6:; 	

5##DIIg$6:; 	

5##DIIdO45#		2r   c                   \         P                  4       p. pVP                  VP                  V P                  R ,          ^4      4       VP                  VP                  V P                  R,          ^4      4       VP                  VP                  V P                  R,          4      4       V P                  RP                  V4      V P                  4       R# )r  :r  i,  Nr  r   N)r	   r  r   rh   r  r   r   r  r  s   &  r   test_decompressor_inputbuf_31ZlibDecompressorTest.test_decompressor_inputbuf_38  s     &&( 	

5##DIIdOQ78 	

5##DIIg$6:; 	

5##DIIdO45#		2r   c                    \         P                  4       pV P                  \        VP                  V P
                  ^,          4       V P                  \        VP                  V P
                  ^,          4       R# )   N)r	   r  r^   	Exceptionrh   BAD_DATA)r#   r  s   & r   test_failure!ZlibDecompressorTest.test_failureH  sR    &&()U%5%5t}}r7IJ)U%5%5t}}r7IJr   c                    \         P                  ! \        R 4      p\        P	                  4       pV! 4       p\        ^d4       F  pVP                  4        K  	  V P                  V! 4       V,
          ^ ^
R7       R# )gettotalrefcount)deltaN)r   get_attributer   r	   r  r   __init__assertAlmostEqual)r#   r   r  refs_beforer   s   &    r   test_refleaks_in___init__.ZlibDecompressorTest.test_refleaks_in___init__N  sb    "006HI&&(&(sANN /1K?"Mr   r&   Ni   )!r'   r(   r)   r*   r   r  r	   r`   r  r  r   r  r  r  r  r  r  r  r   skip_if_pgo_taskr   r   r  r  r  r  r  r  r  refcount_testr&  r+   r,   r-   s   @r   r  r    s     D==&D+H
c$i/145H}}X&HO
*
*9; S3Ys+  ,  >
1>3,3*3 K N Nr   r  c                   &   a  ] tR tRt o R tRtV tR# )r   iX  c                    ^d# )r&  r&   r"   s   &r   	__index__CustomInt.__index__Y  s    r   r&   N)r'   r(   r)   r*   r,  r+   r,   r-   s   @r   r   r   X  s      r   r   __main__))r   testr   test.supportr   rN   r
   r  r   r   r   r   r   r   import_moduler	   r   r7  rp   r  rv   r  r    r   r6  r   TestCaser   r0   rS   r\   objectr   r   r   r  r   r  r   r'   mainr&   r   r   <module>r5     s     &     
 7 7 ""6*!,,  "F+"$  $..""$f-$& 
 .2-F-F  9: < Mh'' M*Gx(( *G\9 1 1 90O)) 0Of6 <A+X->-> AHH	3183D3D H	3T '+f >>BiN8,, iNX 
 zMMO r   