+
    üÐj//  ã                   óà   € R t ^ RIt^ RIt^ RIt^ RIHt ^ RIHtHt ^ RI	H
t
  ! R R4      t ! R R]]
P                  4      t ! R	 R
]]
P                  4      t ! R R]
P                  4      tR# )z'
Tests for L{twisted.python.zipstream}
N)Úmd5)ÚfilepathÚ	zipstream)Úunittestc                   ó`   a € ] tR t^t o RtR tR tR tR tR t	R t
R tR	 tR
 tR tRtV tR# )ÚFileEntryMixinz7
File entry classes should behave as file-like objects
c                ó"  € V P                  4       p\        P                  ! VRV P                  4      ;_uu_ 4       pVP	                  RV4       RRR4       \
        P                  ! VR4      pVP                  R4      #   + '       g   i     L8; i)z&
Return an appropriate zip file entry
ÚwÚcontentNÚr)ÚmktempÚzipfileÚZipFileÚcompressionÚwritestrr   ÚChunkingZipFileÚreadfile)ÚselfÚcontentsÚfilenameÚzs   &&  ÚD/usr/lib/python3/dist-packages/twisted/python/test/test_zipstream.pyÚgetFileEntryÚFileEntryMixin.getFileEntry   sg   € ð —;‘;“=ˆÜ�_Š_˜X s¨D×,<Ñ,<×=Ô=ÀØ�J‰J�y (Ô+÷ >ä×%Ò% h°Ó4ˆØ�z‰z˜)Ó$Ð$÷ >×=ús   »A>Á>B	c                ó°   € V P                  R4      ;_uu_ 4       pV P                  VP                  4       4       RRR4       R#   + '       g   i     R# ; i)z;
zip files should not be ttys, so isatty() should be false
Ú N)r   ÚassertFalseÚisatty©r   Ú	fileEntrys   & r   Útest_isattyÚFileEntryMixin.test_isatty    s=   € ð ×Ñ˜r×"Ô" iØ×Ñ˜Y×-Ñ-Ó/Ô0÷ #×"×"Ò"ús   š AÁA	c                óÜ   € V P                  R4      ;_uu_ 4       pV P                  VP                  4       RRR4       V P                  XP                  4       R#   + '       g   i     L-; i)zL
The C{closed} attribute should reflect whether C{close()} has been
called.
r   N)r   r   ÚclosedÚ
assertTruer   s   & r   Útest_closedÚFileEntryMixin.test_closed'   sK   € ð
 ×Ñ˜r×"Ô" iØ×Ñ˜Y×-Ñ-Ô.÷ #à�‰˜	×(Ñ(Ö)÷ #×"ús   šAÁA+	c                ó2  € V P                  R4      ;_uu_ 4       pV P                  VP                  4       R4       V P                  VP                  4       R4       V P                  VP                  4       R4       RRR4       R#   + '       g   i     R# ; i)zS
C{readline()} should mirror L{file.readline} and return up to a single
delimiter.
s   hoho
hos   hoho
ó   hoó    N)r   ÚassertEqualÚreadliner   s   & r   Útest_readlineÚFileEntryMixin.test_readline0   sq   € ð
 ×Ñ˜{×+Ô+¨yØ×Ñ˜Y×/Ñ/Ó1°9Ô=Ø×Ñ˜Y×/Ñ/Ó1°5Ô9Ø×Ñ˜Y×/Ñ/Ó1°3Ô7÷ ,×+×+Ò+úó   šA!BÂB	c                ó2  € V P                  R4      ;_uu_ 4       pV P                  VP                  4       R4       V P                  VP                  4       R4       V P                  \        VP                  4       RRR4       R#   + '       g   i     R# ; i)zF
Zip file entries should implement the iterator protocol as files do.
s   ho
hohoó   ho
s   hohoN)r   r*   ÚnextÚassertRaisesÚStopIterationr   s   & r   Ú	test_nextÚFileEntryMixin.test_next:   sh   € ð ×Ñ˜{×+Ô+¨yØ×Ñ˜YŸ^™^Ó-¨wÔ7Ø×Ñ˜YŸ^™^Ó-¨wÔ7Ø×Ñœm¨Y¯^©^Ô<÷ ,×+×+Ò+úr.   c                ó¶   € V P                  R4      ;_uu_ 4       pV P                  VP                  4       . RO4       RRR4       R#   + '       g   i     R# ; i)z7
C{readlines()} should return a list of all the lines.
s   ho
ho
hoN)r0   r0   r(   )r   r*   Ú	readlinesr   s   & r   Útest_readlinesÚFileEntryMixin.test_readlinesC   s@   € ð ×Ñ˜}×-Ô-°Ø×Ñ˜Y×0Ñ0Ó2Ò4MÔN÷ .×-×-Ò-ús   š#AÁA	c                óè   € V P                  R4      ;_uu_ 4       pV P                  \        V4      V4       V P                  VP                  4       V4       RRR4       R#   + '       g   i     R# ; i)z:
C{__iter__()} and C{xreadlines()} should return C{self}.
r   N)r   ÚassertIsÚiterÚ
xreadlinesr   s   & r   Útest_iterationÚFileEntryMixin.test_iterationJ   sO   € ð ×Ñ˜r×"Ô" iØ�M‰Mœ$˜y›/¨9Ô5Ø�M‰M˜)×.Ñ.Ó0°)Ô<÷ #×"×"Ò"ús   š<A Á A1	c                ó¶   € RpV P                  V4      ;_uu_ 4       pV P                  VP                  4       V4       RRR4       R#   + '       g   i     R# ; i)z)
C{.read()} should read the entire file.
s   Hello, world!N)r   r*   Úread©r   r   Úentrys   &  r   Útest_readWholeÚFileEntryMixin.test_readWholeR   sA   € ð $ˆØ×Ñ˜x×(Ô(¨EØ×Ñ˜UŸZ™Z›\¨8Ô4÷ )×(×(Ò(ús   œ!AÁA	c                ó   € RpV P                  V4      ;_uu_ 4       pVP                  ^4      pVP                  ^È4      pRRR4       V P                  XR4       V P                  XR4       R#   + '       g   i     L6; i)z4
C{.read(num)} should read num bytes from the file.
Ú
0123456789Ns   0123s   456789)r   rA   r*   )r   r   rC   ÚoneÚtwos   &    r   Útest_readPartialÚFileEntryMixin.test_readPartialZ   sf   € ð  ˆØ×Ñ˜x×(Ô(¨EØ—*‘*˜Q“-ˆCØ—*‘*˜S“/ˆC÷ )ð 	×Ñ˜˜gÔ&Ø×Ñ˜˜iÖ(÷	 )×(ús   œ#A-Á-A=	c                ó:  € RpV P                  V4      ;_uu_ 4       pVP                  ^4       V P                  VP                  4       ^4       VP                  ^4       V P                  VP                  4       ^4       RRR4       R#   + '       g   i     R# ; i)zJ
C{.tell()} should return the number of bytes that have been read so
far.
NÚdxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)r   rA   r*   ÚtellrB   s   &  r   Ú	test_tellÚFileEntryMixin.test_telle   sm   € ð
 ˆØ×Ñ˜x×(Ô(¨EØ�J‰J�qŒMØ×Ñ˜UŸZ™Z›\¨1Ô-Ø�J‰J�qŒMØ×Ñ˜UŸZ™Z›\¨1Ô-÷	 )×(×(Ò(ús   œA#B	Â	B	© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r    r%   r,   r4   r8   r>   rD   rJ   rO   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r   r      sB   ø‡ € ñò%ò1ò*ò8ò=òOò=ò5ò	)÷
.ð 
.r)   r   c                   ó2   € ] tR t^rtRt]P                  tRtR# )ÚDeflatedZipFileEntryTestsz*
DeflatedZipFileEntry should be file-like
rQ   N)	rR   rS   rT   rU   rV   r   ÚZIP_DEFLATEDr   rW   rQ   r)   r   r\   r\   r   s   † ñð ×&Ñ&„Kr)   r\   c                   ó2   € ] tR t^ztRt]P                  tRtR# )ÚZipFileEntryTestsz"
ZipFileEntry should be file-like
rQ   N)	rR   rS   rT   rU   rV   r   Ú
ZIP_STOREDr   rW   rQ   r)   r   r_   r_   z   s   † ñð ×$Ñ$„Kr)   r_   c                   ó|   a € ] tR t^‚t o RtR tRR ltR tR tR t	R t
R tR	 tR
 tR tR tR tR tR tRtV tR# )ÚZipstreamTestsz$
Tests for twisted.python.zipstream
c                ó   € \         P                  ! V P                  4       4      V n        V P                  P	                  4        V P                  P                  R4      V n        V P                  P	                  4        R# )zb
Creates junk data that can be compressed and a test directory for any
files that will be created
ÚunzippedN)r   ÚFilePathr   ÚtestdirÚmakedirsÚchildÚunzipdir©r   s   &r   ÚsetUpÚZipstreamTests.setUp‡   sR   € ô
  ×(Ò(¨¯©«Ó7ˆŒØ�‰×ÑÔØŸ™×*Ñ*¨:Ó6ˆŒØ�‰×ÑÖ r)   c                óX  € V P                   P                  R4      P                  p\        P                  ! VR4      ;_uu_ 4       p\        V4       F9  w  rV\        V4      pV'       d   VR,           V,           pVP                  Wv4       K;  	  RRR4       V#   + '       g   i     T# ; i)zŒ
Makes a zip file archive containing len(contents) files.  Contents
should be a list of strings, each string being the content of one file.
zzipfile.zipr	   Ú/N)rf   rh   Úpathr   r   Ú	enumerateÚstrr   )r   r   Ú	directoryÚ
zpfilenameÚzpfileÚir
   r   s   &&&     r   ÚmakeZipFileÚZipstreamTests.makeZipFile‘   s†   € ð
 —\‘\×'Ñ'¨Ó6×;Ñ;ˆ
Ü�_Š_˜Z¨×-Ô-°Ü'¨Ö1‘
�Ü˜q›6�ßØ(¨3�°Õ9�HØ—‘ Ö2ñ	 2÷ .ð Ð÷ .Ö-ð Ðús   ÁA	BÂB)	c                óÜ   € \         P                  ! V P                  4       R4      ;_uu_ 4       pV P                  \        VP
                  R4       RRR4       R#   + '       g   i     R# ; i)zh
A ChunkingZipFile opened in write-mode should not allow .readfile(),
and raise a RuntimeError instead.
r	   Ú	somethingN)r   r   r   r2   ÚRuntimeErrorr   ©r   Úczfs   & r   Útest_invalidModeÚZipstreamTests.test_invalidModeŸ   sD   € ô
 ×&Ò& t§{¡{£}°c×:Ô:¸cØ×Ñœl¨C¯L©L¸+ÔF÷ ;×:×:Ò:ús   ®"AÁA+	c                ó¶   € \         P                  ! V P                  R.4      R4      pVP                  4        V P	                  \
        VP                  R4       R# )zV
A closed ChunkingZipFile should raise a L{RuntimeError} when
.readfile() is invoked.
ry   r   N)r   r   rv   Úcloser2   rz   r   r{   s   & r   Útest_closedArchiveÚ!ZipstreamTests.test_closedArchive§   sB   € ô
 ×'Ò'¨×(8Ñ(8¸+¸Ó(GÈÓMˆØ�	‰	ŒØ×Ñœ,¨¯©°kÖBr)   c           	     óô  € V P                  RR.4      p\        P                  ! VR4      ;_uu_ 4       pVP                  R4      P                  pRRR4       \        VR4      ;_uu_ 4       pVP                  X^ 4       VP                  R	4       RRR4       \        P                  ! V4      ;_uu_ 4       pV P                  \        P                  VP                  R4       VP                  R4      ;_uu_ 4       pV P                  VP                  4       R4       RRR4       RRR4       R#   + '       g   i     Læ; i  + '       g   i     L¹; i  + '       g   i     L@; i  + '       g   i     R# ; i)
zŒ
A zipfile entry with the wrong magic number should raise BadZipFile for
readfile(), but that should not affect other files in the archive.
ztest contentszmore contentsr   Ú0Núr+bÚ1ó   more contentss   0000)rv   r   r   ÚgetinfoÚheader_offsetÚopenÚseekÚwriter   r   r2   Ú
BadZipFiler   r*   rA   )r   ÚfnÚzfÚ
zeroOffsetÚscribbler|   Úzfes   &      r   Útest_invalidHeaderÚ!ZipstreamTests.test_invalidHeader°   sþ   € ð
 ×Ñ˜°Ð@ÓAˆÜ�_Š_˜R ×%Ô%¨ØŸ™ C›×6Ñ6ˆJ÷ &ô �"�e�_Œ_ Ø�M‰M˜* aÔ(Ø�N‰N˜8Ô$÷ ô ×&Ò& r×*Ô*¨cØ×Ñœg×0Ñ0°#·,±,ÀÔDØ—‘˜c×"Ô" cØ× Ñ  §¡£Ð-=Ô>÷ #÷ +Ñ*÷ &×%ú÷ �_ú÷
 #×"ú÷ +×*Ð*ús<   ³D-Á+$E Â5AE&Ã:!E	ÄE&Ä-D=	Å E	ÅE#ÅE&Å&E7	c           	     ó  € V P                  RR.4      p\        P                  ! VR4      ;_uu_ 4       pVP                  R4      pRVn        RRR4       \        VR4      ;_uu_ 4       pVP                  XP                  ^ 4       VP                  VP                  4       4       RRR4       \        P                  ! V4      ;_uu_ 4       pV P                  \        P                  VP                  R4       VP                  R4      ;_uu_ 4       pV P                  VP!                  4       R4       RRR4       RRR4       R#   + '       g   i     Lþ; i  + '       g   i     L¹; i  + '       g   i     L@; i  + '       g   i     R# ; i)	zk
A zipfile entry with a different filename than is found in the central
directory should raise BadZipFile.
s   test contentsr‡   r   r„   znot zeroNr…   r†   )rv   r   r   rˆ   r   rŠ   r‹   r‰   rŒ   Ú
FileHeaderr   r   r2   r�   r   r*   rA   )r   rŽ   r�   Úinfor‘   r|   r’   s   &      r   Útest_filenameMismatchÚ$ZipstreamTests.test_filenameMismatchÁ   s  € ð
 ×ÑÐ/Ð1AÐBÓCˆÜ�_Š_˜R ×%Ô%¨Ø—:‘:˜c“?ˆDØ&ˆDŒM÷ &ô �"�e�_Œ_ Ø�M‰M˜$×,Ñ,¨aÔ0Ø�N‰N˜4Ÿ?™?Ó,Ô-÷ ô ×&Ò& r×*Ô*¨cØ×Ñœg×0Ñ0°#·,±,ÀÔDØ—‘˜c×"Ô" cØ× Ñ  §¡£Ð-=Ô>÷ #÷ +Ñ*÷ &×%ú÷ �_ú÷ #×"ú÷ +×*Ð*ús<   ³EÁ(<EÃ
AE;Ä!E(	Ä0E;ÅE	ÅE%	Å(E8Å3E;Å;F	c                óÆ  € V P                  4       p\        P                  ! VR4      ;_uu_ 4       p\        P                  ! R4      pVP	                  VR4       RVn        RRR4       \        P                  ! V4      ;_uu_ 4       pV P                  \        P                  VP                  R4       RRR4       R#   + '       g   i     Ld; i  + '       g   i     R# ; i)zY
A zipfile which describes an unsupported compression mechanism should
raise BadZipFile.
r	   r„   z	some dataiÒ  N)r   r   r   ÚZipInfor   Úcompress_typer   r   r2   r�   r   )r   rŽ   r�   Úzir|   s   &    r   Útest_unsupportedCompressionÚ*ZipstreamTests.test_unsupportedCompressionÓ   s›   € ð
 �[‰[‹]ˆÜ�_Š_˜R ×%Ô%¨Ü—’ Ó%ˆBØ�K‰K˜˜KÔ(ð  $ˆBÔ÷ &ô ×&Ò& r×*Ô*¨cØ×Ñœg×0Ñ0°#·,±,ÀÔD÷ +Ñ*÷ &×%ú÷ +×*Ð*ús   °0B<Â,CÂ<C	ÃC 	c           	     óh  € V P                  4       p\        P                  ! VR4      ;_uu_ 4       p\        P                  ! R4      pRp\        P
                  ! R^*\        V4      4      V,           Vn        VP                  VR4       RRR4       \        P                  ! V4      ;_uu_ 4       qUP                  R4      ;_uu_ 4       pV P                  VP                  4       R4       RRR4       RRR4       R#   + '       g   i     Lz; i  + '       g   i     L-; i  + '       g   i     R# ; i)zG
readfile() should skip over 'extra' data present in the zip metadata.
r	   r„   s   hello, extraz<hhs   the real dataN)r   r   r   r›   ÚstructÚpackÚlenÚextrar   r   r   r   r*   rA   )r   rŽ   r�   r�   Ú
extra_datar|   r’   s   &      r   Útest_extraDataÚZipstreamTests.test_extraDataä   sÉ   € ð �[‰[‹]ˆÜ�_Š_˜R ×%Ô%¨Ü—’ Ó%ˆBØ(ˆJÜ—{’{ 5¨"¬c°*«oÓ>ÀÕKˆBŒHØ�K‰K˜Ð,Ô-÷	 &ô
 ×&Ò& r×*Ô*¨c·<±<À×3DÔ3DÈØ×Ñ˜SŸX™X›ZÐ)9Ô:÷ 4E×*Ñ*÷ &×%ú÷
 4E×3Dú×*×*Ð*ús0   °AC:Â.D Ã!D	Ã(D Ã:D
	ÄDÄD Ä D1	c                óŒ  € ^
p\        V4       Uu. uF  pRV,          NK  	  ppV Uu. uF  q"P                  R4      NK  	  ppV P                  V4      p\        \        P
                  ! W@P                  P                  4      4       V P                  \        V P                  P                  4       4      \        \        \        \        V4      4      4      4       V P                  P                  4        FB  p\        VP                  4       4      pV P                  VP!                  4       W6,          4       KD  	  R# u upi u upi )z€
L{twisted.python.zipstream.unzipIterChunky} returns an iterator which
must be exhausted to completely unzip the input archive.
úThis is test file %d!ÚasciiN)ÚrangeÚencoderv   Úlistr   ÚunzipIterChunkyri   ro   r*   ÚsetÚlistdirÚmaprq   ÚchildrenÚintÚbasenameÚ
getContent)r   Únumfilesru   r   rs   rh   Únums   &      r   Útest_unzipIterChunkyÚ#ZipstreamTests.test_unzipIterChunkyñ   sð   € ð
 ˆÜ9>¸x¼ÓI¹°AÐ+¨a×/Ð/¹ˆÐIÙ/7Ó8©x¨!—H‘H˜WÖ%©xˆÐ8Ø×%Ñ% hÓ/ˆ
ÜŒY×&Ò& z·=±=×3EÑ3EÓFÔGØ×Ñœ˜TŸ]™]×2Ñ2Ó4Ó5´s¼3¼sÄEÈ(ÃOÓ;TÓ7UÔVà—]‘]×+Ñ+Ö-ˆEÜ�e—n‘nÓ&Ó'ˆCØ×Ñ˜U×-Ñ-Ó/°µÖ?ó .ùò JùÚ8s
   �D<¨Ec                óø  € ^
p\        V4       Uu. uF  pRV,          NK  	  ppV Uu. uF  q"P                  R4      NK  	  ppV P                  VR4      p\        \        P
                  ! W@P                  P                  4      4       \        V4       Uu0 uF  p\        V4      P                  R4      kK  	  ppV P                  \        V P                  P                  R4      P                  4       4      V4       V P                  P                  R4      P                  4        FB  p\        VP                  4       4      pV P                  VP!                  4       W5,          4       KD  	  R# u upi u upi u upi )zÄ
The path to which a file is extracted by L{zipstream.unzipIterChunky}
is determined by joining the C{directory} argument to C{unzip} with the
path within the archive of the file being extracted.
r©   rª   Úfoos   fooN)r«   r¬   rv   r­   r   r®   ri   ro   rq   r*   r¯   rh   r°   r²   r³   r´   rµ   )r   r¶   ru   r   rs   r·   ÚfileContentsrh   s   &       r   Útest_unzipIterChunkyDirectoryÚ,ZipstreamTests.test_unzipIterChunkyDirectory  s#  € ð ˆÜ9>¸x¼ÓI¹°AÐ+¨a×/Ð/¹ˆÐIÙ/7Ó8©x¨!—H‘H˜WÖ%©xˆÐ8Ø×%Ñ% h°Ó6ˆ
ÜŒY×&Ò& z·=±=×3EÑ3EÓFÔGÜ<AÀ(¼OÓL¹O°Sœ˜C›Ÿ™¨Ö0¹OˆÐLØ×Ñœ˜TŸ]™]×0Ñ0°Ó8×@Ñ@ÓBÓCÀ\ÔRà—]‘]×(Ñ(¨Ó0×9Ñ9Ö;ˆEÜ�e—n‘nÓ&Ó'ˆCØ×Ñ˜U×-Ñ-Ó/°µÖ?ó <ùò JùÚ8ùò Ms   �E-¨E2Â#E7c                óŠ  € Rp\        R4       FL  p\        \        P                  ! 4       ^4      p\        V4      P	                  R4      pVRV,           ,          pKN  	  \        V4      P                  4       p	\        P                  ! V P                  4       4      p
V
P                  4        V
P                  R4      P                  pV P                  W±V4       \        P                  ! WºP                  VR7      p\!        V4      pY=u;8  ;'       d    V8  Mu pV P#                  V4       V F  pK  	  V P%                  V^ 4       V
P                  R4      P'                  4       ;_uu_ 4       p\        VP)                  4       4      P                  4       pV P%                  VV	4       RRR4       R#   + '       g   i     R# ; i)	zG
unzipIterChunky should unzip the given number of bytes per iteration.
r)   iè  rª   ó    zbigfile.zip)Ú	chunksizeÚzipstreamjunkN)r«   ÚroundÚrandomrq   r¬   r   Ú	hexdigestr   re   r   rg   rh   ro   Ú_makebigfiler   r®   r1   r$   r*   rŠ   rA   )r   r   rÁ   ÚlowerÚupperÚjunkÚnr·   Ú
numEncodedÚjunkmd5ÚtempdirÚzfpathÚuziterr   ÚapproxÚfÚnewmd5s   &&&&&            r   Ú_unzipIterChunkyTestÚ#ZipstreamTests._unzipIterChunkyTest  sO  € ð ˆÜ�t–ˆAÜœŸš›¨Ó,ˆCÜ˜S›Ÿ™¨Ó1ˆJØ�D˜:Õ%Õ%ŠDñ ô
 �d“)×%Ñ%Ó'ˆä×#Ò# D§K¡K£MÓ2ˆØ×ÑÔØ—‘˜}Ó-×2Ñ2ˆØ×Ñ˜&¨tÔ4Ü×*Ò*¨6·<±<È9ÔUˆÜ�‹Lˆð ×"Ô"˜UÔ"ˆØ�‰˜ÔÛˆAÙñ à×Ñ˜˜AÔØ�]‰]˜?Ó+×0Ñ0×2Ô2°aÜ˜Ÿ™›“]×,Ñ,Ó.ˆFØ×Ñ˜V WÔ-÷ 3×2×2Ò2ús   Å-:F1Æ1G	c                óJ   € V P                  \        P                  R^#^-4       R# )z[
unzipIterChunky should unzip the given number of bytes per iteration on
a stored archive.
iô  N)rÓ   r   r`   rj   s   &r   Útest_unzipIterChunkyStoredÚ)ZipstreamTests.test_unzipIterChunkyStored5  s   € ð
 	×!Ñ!¤'×"4Ñ"4°c¸2¸rÖBr)   c                óJ   € V P                  \        P                  R^^4       R# )z]
unzipIterChunky should unzip the given number of bytes per iteration on
a deflated archive.
iÌ  N)rÓ   r   r]   rj   s   &r   Útest_chunkyDeflatedÚ"ZipstreamTests.test_chunkyDeflated<  s   € ð
 	×!Ñ!¤'×"6Ñ"6¸¸RÀÖDr)   c                óþ   € \         P                  ! VRV4      ;_uu_ 4       p\        ^
4       F  pRV,          pVP                  VR4       K   	  VP                  RV4       RRR4       R#   + '       g   i     R# ; i)zD
Create a zip file with the given file name and compression scheme.
r	   zzipstream%dr   rÂ   N)r   r   r«   r   )r   r   r   rÉ   r�   ru   rŽ   s   &&&&   r   rÆ   ÚZipstreamTests._makebigfileC  s^   € ô �_Š_˜X s¨K×8Ô8¸BÜ˜2–Y�Ø" QÕ&�Ø—‘˜B Ö#ñ ð �K‰K˜¨Ô.÷	 9×8×8Ò8ús   ¡A A+Á+A<	)rf   ri   N)r   )rR   rS   rT   rU   rV   rk   rv   r}   r�   r“   r˜   rž   r¦   r¸   r½   rÓ   rÖ   rÙ   rÆ   rW   rX   rY   s   @r   rb   rb   ‚   s\   ø‡ € ñò!ôòGòCò?ò"?ò$Eò";ò@ò @ò,.ò<CòE÷/ð /r)   rb   )rV   rÄ   r¡   r   Úhashlibr   Útwisted.pythonr   r   Útwisted.trialr   r   ÚTestCaser\   r_   rb   rQ   r)   r   Ú<module>rá      sg   ðñó Û Û Ý ç .Ý "÷^.ñ ^.ôB' °×0AÑ0Aô 'ô%˜¨×(9Ñ(9ô %ôI/�X×&Ñ&ö I/r)   