diff options
author | Andres Mejia <amejia004@gmail.com> | 2013-01-28 00:31:27 -0500 |
---|---|---|
committer | Andres Mejia <amejia004@gmail.com> | 2013-01-28 00:31:27 -0500 |
commit | 72d27a8c40f67b083fa079d87f99cf69029642f7 (patch) | |
tree | 533096b7dc9452bbbd7a2382a36956652244c6f0 | |
parent | bd7335423b77552259fe846158e6642faef747d6 (diff) | |
download | libarchive-72d27a8c40f67b083fa079d87f99cf69029642f7.tar.gz |
Add new test case to thouroughly test multivolume RAR seek support.
12 files changed, 5429 insertions, 0 deletions
diff --git a/Makefile.am b/Makefile.am index b222ab46..03e6a5bd 100644 --- a/Makefile.am +++ b/Makefile.am @@ -540,6 +540,16 @@ libarchive_test_EXTRA_DIST=\ libarchive/test/test_rar_multivolume_single_file.part1.rar.uu \ libarchive/test/test_rar_multivolume_single_file.part2.rar.uu \ libarchive/test/test_rar_multivolume_single_file.part3.rar.uu \ + libarchive/test/test_rar_multivolume_uncompressed_files.part01.rar.uu \ + libarchive/test/test_rar_multivolume_uncompressed_files.part02.rar.uu \ + libarchive/test/test_rar_multivolume_uncompressed_files.part03.rar.uu \ + libarchive/test/test_rar_multivolume_uncompressed_files.part04.rar.uu \ + libarchive/test/test_rar_multivolume_uncompressed_files.part05.rar.uu \ + libarchive/test/test_rar_multivolume_uncompressed_files.part06.rar.uu \ + libarchive/test/test_rar_multivolume_uncompressed_files.part07.rar.uu \ + libarchive/test/test_rar_multivolume_uncompressed_files.part08.rar.uu \ + libarchive/test/test_rar_multivolume_uncompressed_files.part09.rar.uu \ + libarchive/test/test_rar_multivolume_uncompressed_files.part10.rar.uu \ libarchive/test/test_read_filter_grzip.tar.grz.uu \ libarchive/test/test_read_filter_lrzip.tar.lrz.uu \ libarchive/test/test_read_filter_lzop.tar.lzo.uu \ diff --git a/libarchive/test/test_rar_multivolume_uncompressed_files.part01.rar.uu b/libarchive/test/test_rar_multivolume_uncompressed_files.part01.rar.uu new file mode 100644 index 00000000..876b7e9a --- /dev/null +++ b/libarchive/test/test_rar_multivolume_uncompressed_files.part01.rar.uu @@ -0,0 +1,299 @@ +begin 644 - +M4F%R(1H'`%IN<Q$!#0````````"G@W0BD$P`C#,``(].```#]EC4PKM,-4$4 +M,"(`I($``'1E<W1D:7)<3&EB87)C:&EV94%D9&EN9U1E<W0R+FAT;6R`S#)? +M.T)17SM"/"%$3T-465!%($A434P@4%5"3$E#("(M+R]7,T,O+T141"!(5$U, +M(#0N,"!4<F%N<VET:6]N86PO+T5.(CX*/$A434P^"CQ(14%$/@H)/$U%5$$@ +M2%144"U%455)5CTB0T].5$5.5"U465!%(B!#3TY414Y4/2)T97AT+VAT;6P[ +M(&-H87)S970]=71F+3@B/@H)/%1)5$Q%/CPO5$E43$4^"@D\345402!.04U% +M/2)'14Y%4D%43U(B($-/3E1%3E0](DQI8G)E3V9F:6-E(#,N,R`@*%5N:7@I +M(CX*"3Q-151!($Y!344](D-214%4140B($-/3E1%3E0](C(P,3$P-C(V.S(R +M,C,U,3`P(CX*"3Q-151!($Y!344](D-(04Y'140B($-/3E1%3E0](C(P,3$P +M-C(V.S(R,C4T-3`P(CX*"3Q35%E,12!465!%/2)T97AT+V-S<R(^"@D\(2TM +M"@D)0'!A9V4@>R!M87)G:6XZ(#`N-SEI;B!]"@D)4"![(&UA<F=I;BUB;W1T +M;VTZ(#`N,#AI;B!]"@D)2#$@>R!M87)G:6XM8F]T=&]M.B`P+C`X:6X@?0H) +M"4@Q+G=E<W1E<FX@>R!F;VYT+69A;6EL>3H@(DQI8F5R871I;VX@4V5R:68B +M+"!S97)I9B!]"@D)2#$N8VIK('L@9F]N="UF86UI;'DZ(")":71S=')E86T@ +M5F5R82!386YS(B!]"@D)2#$N8W1L('L@9F]N="UF86UI;'DZ(")&<F5E4V%N +M<R(@?0H)"5!212YC:FL@>R!F;VYT+69A;6EL>3H@(D)I='-T<F5A;2!697)A +M(%-A;G,B+"!M;VYO<W!A8V4@?0H)"4@R('L@;6%R9VEN+6)O='1O;3H@,"XP +M.&EN('T*"0E(,BYC=&P@>R!F;VYT+69A;6EL>3H@(D9R965386YS(B!]"@D) +M5%0N8VIK('L@9F]N="UF86UI;'DZ(")":71S=')E86T@5F5R82!386YS(BP@ +M;6]N;W-P86-E('T*"2TM/@H)/"]35%E,13X*/"](14%$/@H\0D]$62!,04Y' +M/2)E;BU54R(@1$E2/2),5%(B/@H\2#$@0TQ!4U,](G=E<W1E<FXB/DEN=')O +M9'5C=&EO;CPO2#$^"CQ0/DQI8F%R8VAI=F4@:7,@;F]W(&$@9F%I<FQY(&-O +M;7!L97@@<&EE8V4@;V8@<V]F='=A<F4@=&AA="!R=6YS(&]N"F$@;G5M8F5R +M(&]F(&1I9F9E<F5N="!P;&%T9F]R;7,N($$@=&AO<F]U9V@@=&5S="!S=6ET +M92!I<R!E<W-E;G1I86P*8F]T:"!F;W(@=F5R:69Y:6YG(&YE=R!P;W)T<R!A +M;F0@9F]R(&5N<W5R:6YG('1H870@9G5T=7)E(&-H86YG97,*9&]N)W0@8G)E +M86L@97AI<W1I;F<@9G5N8W1I;VYA;&ET>2X@"CPO4#X*/%`^06YY('-I9VYI +M9FEC86YT(&-H86YG92!T;R!L:6)A<F-H:79E+"!I;F-L=61I;F<@;6]S="!B +M=6<@9FEX97,L"G-H;W5L9"!B92!A8V-O;7!A;FEE9"!B>2!N97<@=&5S=',@ +M;W(@8VAA;F=E<R!T;R!E>&ES=&EN9R!T97-T<RX@5&AI<PIA<G1I8VQE(&5X +M<&QA:6YS(&AO=R!T:&4@;&EB87)C:&EV92!T97-T('-U:71E<R!W;W)K(&%N +M9"!H;W<@=&\*97AT96YD('1H96TN(`H\+U`^"CQ(,2!#3$%34STB=V5S=&5R +M;B(^/$$@3D%-13TB0G5I;&1I;F=?86YD7U)U;FYI;F=?=&AE7U1E<W1?4')O +M9W)A;7,B/CPO03X*0G5I;&1I;F<@86YD(%)U;FYI;F<@=&AE(%1E<W0@4')O +M9W)A;7,\+T@Q/@H\4#Y%86-H(&UA:F]R(&-O;7!O;F5N="TM;&EB87)C:&EV +M92P@8G-D=&%R+"!A;F0@8G-D8W!I;RTM:&%S(&$@=&5S=`IP<F]G<F%M('1H +M870@97AE<F-I<V5S('1H92!F=6YC=&EO;F%L:71Y(&]F('1H870@8V]M<&]N +M96YT+B!4:&5S90IT97-T('!R;V=R86US(&%R92!C;VUP:6QE9"!I;B!T:&4@ +M<V%M92!W87D@=&AA="!T:&4@<F5S="!O9B!T:&4*;&EB87)C:&EV92!S=6ET +M92!I<R!C;VUP:6QE9"X@"CPO4#X*/%`^5&\@<G5N('1H92!T97-T('!R;V=R +M86US+"!Y;W4@;F5E9"!T;R!G:79E('1H96T@='=O('!I96-E<R!O9@II;F9O +M<FUA=&EO;CH@"CPO4#X*/%5,/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T +M=&]M.B`P:6XB/E1H92!F=6QL('!A=&@@=&\@=&AE(&1I<F5C=&]R>0H):&]L +M9&EN9R!T:&4@)G%U;W0[<F5F97)E;F-E(&9I;&5S)G%U;W0[(`H)/"]0/@H) +M/$Q)/CQ0/E1H92!F=6QL('!A=&@@=&\@=&AE(&5X96-U=&%B;&4@<')O9W)A +M;2!B96EN9R!T97-T960@*&YO=`H)87!P;&EC86)L92!T;R!L:6)A<F-H:79E +M7W1E<W0@<VEN8V4@;&EB87)C:&EV92!I<R!C;VUP:6QE9"!I;G1O('1H90H) +M=&5S="!P<F]G<F%M*2`*"3PO4#X*/"]53#X*/%`^5&AE(')E9F5R96YC92!F +M:6QE<R!A<F4@82!C;VQL96-T:6]N(&]F(&MN;W=N(&EN<'5T<R!T:&%T(&%R +M92!U<V5D"FEN('1H92!T97-T('!R;V-E<W,N(%1H97D@87)E(&%L;"!S=&]R +M960@:6X@=75E;F-O9&5D(&9O<FUA="!I;B!F:6QE<PIW:71H(&$@)G%U;W0[ +M+G5U)G%U;W0[(&5X=&5N<VEO;BX@5&AE('1E<W0@<')O9W)A;7,@;&]O:R!I +M;B!A(&9E=PIS=&%N9&%R9"!L;V-A=&EO;G,[(&EF(&YO;F4@;V8@=&AO<V4@ +M=V]R:RP@>6]U)VQL(&YE960@=&\@<W!E8VEF>2!T:&4*/%14($-,05-3/2)W +M97-T97)N(CXM<CPO5%0^(&]P=&EO;B!W:71H('1H92!F=6QL('!A=&AN86UE +M('1O('1H90IA<'!R;W!R:6%T92!D:7)E8W1O<GDN(`H\+U`^"CQ0/E1H92!B +M<V1T87)?=&5S="!A;F0@8G-D8W!I;U]T97-T('!R;V=R86US(')U;B!B<V1T +M87(@;W(@8G-D8W!I;PIR97!E871E9&QY.R!T:&5Y(&YE960@=&AE(&9U;&P@ +M<&%T:"!T;R!T:&4@87!P<F]P<FEA=&4@97AE8W5T86)L92X*06QT:&]U9V@@ +M8G-D=&%R7W1E<W0@86YD(&)S9&-P:6]?=&5S="!A<F4@<W!E8VEF:6-A;&QY +M(&EN=&5N9&5D(&9O<@IT97-T:6YG(&)S9'1A<B!A;F0@8G-D8W!I;RP@=&AE +M>2!S:&]U;&0@8F4@=7-A8FQE(&9O<B!T97-T:6YG(&]T:&5R"G1A<B!A;F0@ +M8W!I;R!P<F]G<F%M<RX@26X@9F%C="P@<G5N;FEN9R!T:&5S92!T97-T('!R +M;V=R86US(&%G86EN<W0*;W1H97(@=&%R(&EM<&QE;65N=&%T:6]N<R!I<R!A +M(&=O;V0@=V%Y('1O('9E<FEF>2!T:&%T('1H92!T97-T"G!R;V=R86US('1H +M96US96QV97,@87)E('=O<FMI;F<@8V]R<F5C=&QY+B`*/"]0/@H\4#Y7:&5N +M(')U;BP@=&AE('1E<W0@<')O9W)A;7,@;W5T<'5T(&$@<')O9W)E<W,@;65S +M<V%G92!F;W(@96%C:`IT97-T+"!A;B!E<G)O<B!M97-S86=E(&9O<B!E86-H +M(&9A:6QE9"!A<W-E<G1I;VXL(&%N9"!A(&9I;F%L"G-U;6UA<GDZ(`H\+U`^ +M"CQ04D4@0TQ!4U,](G=E<W1E<FXB/B9N8G-P.U)U;FYI;F<@=&5S=',@:6XZ +M("]T;7`O8G-D=&%R7W1E<W0N,C`P.2TP,BTQ-U0R,2XS,"XT,"TP,#`*)FYB +M<W`[4F5F97)E;F-E(&9I;&5S('=I;&P@8F4@<F5A9"!F<F]M.B`F;F)S<#L@ +M)FYB<W`[+VAO;64O=&EM+VQI8F%R8VAI=F4O=')U;FLO=&%R+W1E<W0*)FYB +M<W`[4G5N;FEN9R!T97-T<R!O;CH@+VAO;64O=&EM+VQI8F%R8VAI=F4O=')U +M;FLO8G-D=&%R"B9N8G-P.T5X97)C:7-I;F<Z(&)S9'1A<B`R+C8N.3`P82`M +M(&QI8F%R8VAI=F4@,BXV+CDP,&$*)FYB<W`[,#H@=&5S=%\P"B9N8G-P.S$Z +M('1E<W1?8F%S:6,*)FYB<W`[,CH@=&5S=%]C;W!Y"B9N8G-P.R!T97-T7V-O +M<'DN8SHQ-S$Z($%S<V5R=&EO;B!F86EL960Z($EN=',@;F]T(&5Q=6%L"B9N +M8G-P.R`F;F)S<#L@)FYB<W`[(#`],`HF;F)S<#L@)FYB<W`[("9N8G-P.R!L +M<W1A="AN86UE,B`K(#,L("9A;7`[<W0R*3TM,0HF;F)S<#L@=&5S=%]C;W!Y +M+F,Z,3<Q.B!&86EL960@,C8T('1I;65S"B9N8G-P.S,Z('1E<W1?9V5T9&%T +M90HF;F)S<#LT.B!T97-T7VAE;'`*)FYB<W`[("9N8G-P.R`N+BX@;6]R92!O +M=71P=70@;VUI='1E9"`N+BX*)FYB<W`[,2!O9B`Q,R!T97-T<R!R97!O<G1E +M9"!F86EL=7)E<PHF;F)S<#L@5&]T86P@;V8@,3`U,#DW(&%S<V5R=&EO;G,@ +M8VAE8VME9"X*)FYB<W`[(%1O=&%L(&]F(#(V-"!A<W-E<G1I;VYS(&9A:6QE +M9"X*)FYB<W`[(%1O=&%L(&]F(#`@87-S97)T:6]N<R!S:VEP<&5D+CPO4%)% +M/CQ0/@I4:&4@:&5A9&5R(&QI;F5S(&AE<F4@<F5C;W)D.B`*/"]0/@H\54P^ +M"@D\3$D^/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ(#!I;B(^=&AE(&1I<F5C +M=&]R>2!T:&%T('=I;&P@8F4@=7-E9`H)9F]R('-C<F%T8V@@9FEL97,@9'5R +M:6YG('1H92!T97-T+B!)9B!A('1E<W0@9F%I;',L('1H92!S8W)A=&-H"@EF +M:6QE<R!W:6QL(&)E(&QE9G0@8F5H:6YD(&EN('1H:7,@9&ER96-T;W)Y(&9O +M<B!F=7)T:&5R(&1E8G5G9VEN9RX@"@D\+U`^"@D\3$D^/%`@4U193$4](FUA +M<F=I;BUB;W1T;VTZ(#!I;B(^5&AE(&1I<F5C=&]R>2!F<F]M('=H:6-H('1H +M90H)<F5F97)E;F-E(&9I;&5S('=I;&P@8F4@<F5A9"X@"@D\+U`^"@D\3$D^ +M/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ(#!I;B(^1F]R(&)S9'1A<E]T97-T +M(&%N9"!B<V1C<&EO7W1E<W0L"@ET:&4@9G5L;"!P871H('1O('1H92!E>&5C +M=71A8FQE(&)E:6YG(&5X97)C:7-E9"X@"@D\+U`^"@D\3$D^/%`^0F%S:6,@ +M=F5R<VEO;B!I;F9O<FUA=&EO;B!A8F]U="!T:&4@=&%R9V5T+B`*"3PO4#X* +M/"]53#X*/%`^26X@=&AI<R!C87-E+"!T:&4@=')A:6QE<B!I;F1I8V%T97,@ +M=&AA="!O;F4@=&5S="!F86EL960N($%S('EO=0IC86X@<V5E+"!T:&5R92!W +M87,@82!S:6YG;&4@87-S97)T:6]N(&EN('1H92!C;V1E('1H870@9F%I;&5D +M(#(V-`IT:6UE<RX@5&AE(&9I<G-T('1I;64@:70@9F%I;&5D+"!I="!W87,@ +M8F5C875S92!A;B`\5%0@0TQ!4U,](G=E<W1E<FXB/FQS=&%T*"D\+U14/@IC +M86QL(')E='5R;F5D("TQ(&EN<W1E860@;V8@=&AE('IE<F\@=&AA="!W87,@ +M97AP96-T960N(`H\+U`^"CQ(,2!#3$%34STB=V5S=&5R;B(^/$$@3D%-13TB +M0F%S:6-?=&5S=%]T97)M:6YO;&]G>2(^/"]!/D)A<VEC('1E<W0*=&5R;6EN +M;VQO9WD\+T@Q/@H\4#Y%86-H('1E<W0@<')O9W)A;2!C;VYS:7-T<R!O9B!A +M(&YU;6)E<B!O9B`F<75O=#MT97-T<R9Q=6]T.RX@16%C:`IT97-T(&AA<R!A +M(&YA;64@86YD(&ES(&EM<&QE;65N=&5D(&EN(&$@0R!S;W5R8V4@9FEL92!W +M:71H('1H92!S86UE"FYA;64@87,@=&AE('1E<W0N(%1E<W1S('=O<FL@8GD@ +M<&5R9F]R;6EN9R!S;VUE('-E<FEE<R!O9B!O<&5R871I;VYS"F%N9"!M86MI +M;F<@)G%U;W0[87-S97)T:6]N<R9Q=6]T.R!A8F]U="!T:&4@<F5S=6QT<RX@ +M1F]R(&5X86UP;&4L"FUA;GD@;V8@=&AE(&QI8F%R8VAI=F4@=&5S=',@;W!E +M;B!A;F0@<F5A9"!A;B!A<F-H:79E(&%N9"!A<W-E<G0@=&AA=`IP87)T:6-U +M;&%R(&]P97)A=&EO;G,@<W5C8V5E9&5D(&]R(&9A:6QE9"X@*%EE<RP@:70@ +M:7,@;V9T96X*:6UP;W)T86YT('1O('9E<FEF>2!T:&%T(&EL;&5G86P@<F5Q +M=65S=',@9V5N97)A=&4@87!P<F]P<FEA=&4*97)R;W)S+BD@"CPO4#X*/%`^ +M2&5R92!I<R!A('-O;65W:&%T(&5D:71E9"!E>&-E<G!T(&9R;VT@/%14($-, +M05-3/2)W97-T97)N(CYT97-T7V-O;7!A=%]Z:7`\+U14/BP*=VAI8V@@=F5R +M:69I97,@8V]M<&%T:6)I;&ET>2!W:71H('9A<FEO=7,@6DE0(&9O<FUA="!A +M<F-H:79E<SH@"CPO4#X*/%!212!#3$%34STB=V5S=&5R;B(^)FYB<W`[($1% +M1DE.15]415-4*'1E<W1?8V]M<&%T7WII<"D*)FYB<W`[('L*)FYB<W`[("9N +M8G-P.R`O*B`N+BX@<V5T=7`@;VUI='1E9"`N+BX@*B\*)FYB<W`[("9N8G-P +M.R!A<W-E<G0H*&$@/2!A<F-H:79E7W)E861?;F5W*"DI("$]($Y53$PI.PHF +M;F)S<#L@)FYB<W`[(&%S<V5R=$5Q=6%L26YT*$%20TA)5D5?3TLL"B9N8G-P +M.R`F;F)S<#L@)FYB<W`[("9N8G-P.R!A<F-H:79E7W)E861?<W5P<&]R=%]C +M;VUP<F5S<VEO;E]A;&PH82DI.PHF;F)S<#L@)FYB<W`[(&%S<V5R=$5Q=6%L +M26YT*$%20TA)5D5?3TLL"B9N8G-P.R`F;F)S<#L@)FYB<W`[("9N8G-P.R!A +M<F-H:79E7W)E861?<W5P<&]R=%]F;W)M871?86QL*&$I*3L*)FYB<W`[("9N +M8G-P.R!E>'1R86-T7W)E9F5R96YC95]F:6QE*&YA;64I.PHF;F)S<#L@)FYB +M<W`[(&%S<V5R=$5Q=6%L26YT*$%20TA)5D5?3TLL"B9N8G-P.R`F;F)S<#L@ +M)FYB<W`[("9N8G-P.R!A<F-H:79E7W)E861?;W!E;E]F:6QE;F%M92AA+"!N +M86UE+"`Q,#(T,"DI.PHF;F)S<#L@)FYB<W`[("9N8G-P.R\J(%)E860@9FER +M<W0@96YT<GDN("HO"B9N8G-P.R`F;F)S<#L@)FYB<W`[87-S97)T17%U86Q) +M;G0H05)#2$E615]/2RP@87)C:&EV95]R96%D7VYE>'1?:&5A9&5R*&$L("9A +M;7`[864I*3L*)FYB<W`[("9N8G-P.R`F;F)S<#MA<W-E<G1%<75A;%-T<FEN +M9R@F<75O=#M-151!+4E.1B]-04Y)1D535"Y-1B9Q=6]T.RP@87)C:&EV95]E +M;G1R>5]P871H;F%M92AA92DI.SPO4%)%/CQ0/@I4:&4@/%14($-,05-3/2)W +M97-T97)N(CYA<W-E<G186%A8/"]45#X@;6%C<F]S(&-H96-K('1H870@=&AE +M:7(*87)G=6UE;G1S('-A=&ES9GD@8V5R=&%I;B!C;VYD:71I;VYS+B!)9B!T +M:&4@87-S97)T:6]N(&9A:6QS+2UF;W(*97AA;7!L92P@:68@=&AE(&YA;64@ +M;V8@=&AE(&9I<G-T(&5N=')Y(&ES(&YO=`HF<75O=#M-151!+4E.1B]-04Y) +M1D535"Y-1B9Q=6]T.RTM=&AE(&UA8W)O('=I;&P@<F5P;W)T('1H92!P<F]B +M;&5M+B`*/"]0/@H\4#Y4:&5R92!A<F4@='=O(&EM<&]R=&%N="!D:69F97)E +M;F-E<R!B971W965N('1H92`\5%0@0TQ!4U,](G=E<W1E<FXB/F%S<V5R=%A8 +M6#PO5%0^"FUA8W)O<R!U<V5D(&EN('1H97-E('1E<W0@:&%R;F5S<V5S(&%N +M9"!T:&4@25-/($,@<W1A;F1A<F0@/%14($-,05-3/2)W97-T97)N(CYA<W-E +M<G0\+U14/@IM86-R;SH@1FER<W0L('1H97-E(&%S<V5R="!M86-R;W,@9&]N +M)W0@97AI="!O;B!F86EL=7)E+B!">2!D969A=6QT+`IT:&5Y(')E<&]R="!T +M:&4@9F%I;'5R92!A;F0@<F5T=7)N('IE<F\@*'1H92!#(&YO=&EO;B!O9B`F +M<75O=#MF86QS929Q=6]T.RDN"E-E8V]N9"P@=&AE<V4@;6%C<F]S(&EN8VQU +M9&4@=F%R:6%N=',@=&AA="!P97)F;W)M(&$@=F%R:65T>2!O9@IS<&5C:69I +M8R!T97-T<RX@5&AE<V4@<W!E8VEF:6,@=F5R<VEO;G,@*'-U8V@@87,@/%14 +M($-,05-3/2)W97-T97)N(CYA<W-E<G1%<75A;$EN=#PO5%0^"F%N9"`\5%0@ +M0TQ!4U,](G=E<W1E<FXB/F%S<V5R=$5Q=6%L4W1R:6YG/"]45#X@:6X@=&AE +M(&5X86UP;&4@86)O=F4I"F=E;F5R871E(&1E=&%I;&5D(&QO9R!M97-S86=E +M<R!O;B!F86EL=7)E+B!);B!P87)T:6-U;&%R+"!T:&5Y('!R:6YT"G1H92!V +M86QU92!O9B!B;W1H(&%R9W5M96YT<SL@=&AI<R!G<F5A=&QY('-I;7!L:69I +M97,@9&EA9VYO<VEN9PIF86EL=7)E<RX@"CPO4#X*/$@Q($-,05-3/2)W97-T +M97)N(CX\02!.04U%/2),:69E7V-Y8VQE7V]F7V%?=&5S="(^/"]!/DQI9F4@ +M8WEC;&4@;V8*82!T97-T/"](,3X*/%`^16%C:"!T97-T(')E<VED97,@:6X@ +M82!#('-O=7)C92!F:6QE('=I=&@@=&AE('-A;64@;F%M92!A<R!T:&4*=&5S +M="X@5&AE('1E<W0@:71S96QF(&ES(&$@9G5N8W1I;VX@=&AA="!T86ME<R!N +M;R!A<F=U;65N=',N(%1H92!T97-T"FES(&1E8VQA<F5D('5S:6YG('1H92`\ +M5%0@0TQ!4U,](G=E<W1E<FXB/D1%1DE.15]415-4*"D\+U14/B!M86-R;RX* +M5&AI<R!M86-R;R!S97)V97,@8F]T:"!T;R!E;G-U<F4@=&AA="!T:&4@=&5S +M="!I<R!D96-L87)E9"!C;W)R96-T;'D*86YD(&%S(&$@;&%B96P@=&AA="!C +M86X@8F4@=7-E9"!T;R!L;V-A=&4@86QL(&1E9FEN960@=&5S=',N("A/;@I5 +M;FEX+6QI:V4@<&QA=&9O<FUS+"!A('-I;7!L92`\5%0@0TQ!4U,](G=E<W1E +M<FXB/F=R97`\+U14/B!O<&5R871I;VX*:7,@=7-E9"!T;R!C;VYS=')U8W0@ +M82!F:6QE(&-A;&QE9"`\5%0@0TQ!4U,](G=E<W1E<FXB/FQI<W0N:#PO5%0^ +M"G1H870@:&]L9',@=&AE(&YA;65S(&]F(&%L;"!O9B!T:&4@=&5S=',N(%1H +M:7,@;6%K97,@:70@=F5R>2!E87-Y('1O"F%D9"!N97<@=&5S=',N*2`*/"]0 +M/@H\4#Y4:&4@=&5S="!H87)N97-S(&1E=&5R;6EN97,@=VAI8V@@=&5S=',@ +M=&\@<G5N+B!)="!G;V5S('1H<F]U9V@*=&AE(&9O;&QO=VEN9R!S=&5P<R!W +M:&5N979E<B!I="!R=6YS(&$@=&5S=#H@"CPO4#X*/%5,/@H)/$Q)/CQ0(%-4 +M64Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB/CQ35%))2T4^0VQO<V5S(&%L;"!F +M:6QE"@ED97-C<FEP=&]R<R!E>&-E<'0@9F]R('-T9&EN+"!S=&1O=70L(&%N +M9"!S=&1E<G(N/"]35%))2T4^("A4:&ES"@ES8W)E=W,@=7`@;&EB8R!O;B!S +M;VUE('!L871F;W)M<R!S;R!H87,@8F5E;B!R96UO=F5D+BD@"@D\+U`^"@D\ +M3$D^/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ(#!I;B(^0W)E871E<R!A('1E +M;7!O<F%R>2!D:7)E8W1O<GD*"7=H;W-E(&YA;64@;6%T8VAE<R!T:&4@;F%M +M92!O9B!T:&4@=&5S="!A;F0@<W=I=&-H97,@:6YT;R!T:&%T"@ED:7)E8W1O +M<GDN(`H)/"]0/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB +M/E)E<V5T<R!T:&4@8W5R<F5N="!L;V-A;&4N(`H)/"]0/@H)/$Q)/CQ0(%-4 +M64Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB/D-A;&QS('1H92!T97-T(&9U;F-T +M:6]N+B`*"3PO4#X*"3Q,23X\4"!35%E,13TB;6%R9VEN+6)O='1O;3H@,&EN +M(CY)9B!T:&5R92!W97)E(&YO(&%S<V5R=&EO;@H)9F%I;'5R97,L(&ET('=I +M;&P@<F5M;W9E('1H92!T96UP;W)A<GD@9&ER96-T;W)Y+B`H268@/%14($-, +M05-3/2)W97-T97)N(CXM:SPO5%0^"@EI<R!S<&5C:69I960L('1E;7!O<F%R +M>2!D:7)E8W1O<GD@87)E(&QE9G0@979E;B!I9B!T:&4@=&5S=`H)<W5C8V5E +M9',N*2`*"3PO4#X*"3Q,23X\4#X\4U1224M%/DEF('1H97)E(&%R92!A;GD@ +M;W!E;B!F:6QE(&1E<V-R:7!T;W)S(&]T:&5R('1H86X*"7-T9&EN+"!S=&1O +M=70L(&%N9"!S=&1E<G(L(&ET(')E<&]R=',@86X@97)R;W(N/"]35%))2T4^ +M(%1E<W1S"@ES:&]U;&0@;F5V97(@;&5A=F4@;W!E;B!F:6QE(&1E<V-R:7!T +M;W)S+B`*"3PO4#X*/"]53#X*/%`^26X@<&%R=&EC=6QA<BP@=&5S=',@8V%N +M('-A9F5L>2!A<W-U;64@=&AA=#H@"CPO4#X*/%5,/@H)/$Q)/CQ0(%-464Q% +M/2)M87)G:6XM8F]T=&]M.B`P:6XB/E1H92!C=7)R96YT(&1I<F5C=&]R>2!I +M<R!E;7!T>0H)=VAE;B!T:&4@=&5S="!S=&%R=',N(`H)/"]0/@H)/$Q)/CQ0 +M(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB/D%N>2!F:6QE<R!C<F5A=&5D +M(&EN('1H92!C=7)R96YT"@ED:7)E8W1O<GD@=VEL;"!B92!R96UO=F5D(&9O +M<B!Y;W4N(`H)/"]0/@H)/$Q)/CQ0/E1H92!C=7)R96YT(&QO8V%L92!I<R!T +M:&4@9&5F875L="`F<75O=#M#)G%U;W0[(&QO8V%L92X@"@D\+U`^"CPO54P^ +M"CQ0/E1E<W1S('-H;W5L9#H@"CPO4#X*/%5,/@H)/$Q)/CQ0(%-464Q%/2)M +M87)G:6XM8F]T=&]M.B`P:6XB/E)E;&5A<V4@86QL(&UE;6]R>2X@5&AE('1E +M<W0*"7-U:71E<R!A<F4@;V-C87-I;VYA;&QY(')U;B!U;F1E<B!A(&UE;6]R +M>2!D96)U9V=E<B!T;R!D971E8W0@;&5A:W,*"6EN('1H92!L:6)A<F-H:79E +M(&QI8G)A<GDN(`H)/"]0/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M +M.B`P:6XB/D-L;W-E(&%L;"!O<&5N960@9FEL97,N(%1H:7,@:&5L<',*"71O +M(&-A=&-H(&9I;&4@9&5S8W)I<'1O<B!L96%K<R!I;B!L:6)A<F-H:79E+B`* +M"3PO4#X*"3Q,23X\4#Y.;W0@<F5A9"!O<B!W<FET92!A8G-O;'5T92!P871H +M<RX@"@D\+U`^"CPO54P^"CQ(,2!#3$%34STB=V5S=&5R;B(^/$$@3D%-13TB +M4&QA=&9O<FU?=F%R:6%T:6]N(CX\+T$^4&QA=&9O<FT*=F%R:6%T:6]N/"]( +M,3X*/%`^4V]M92!T97-T<R!A<F4@<W!E8VEF:6,@=&\@82!P87)T:6-U;&%R +M('!L871F;W)M+B!3=6-H('1E<W1S"G-H;W5L9"!U<V4@87!P<F]P<FEA=&4@ +M<&QA=&9O<FTM<W!E8VEF:6,@;6%C<F]S(&%S(&9O;&QO=W,Z(`H\+U`^"CQ0 +M4D4@0TQ!4U,](G=E<W1E<FXB/B-I9B!?7U!,051&3U)-"BXN+B!V87)I;W5S +M(&AE;'!E<B!F=6YC=&EO;G,@+BXN"B-E;F1I9@I$149)3D5?5$535"AF;V]? +M<&QA=&9O<FTI"GL*(VEF(%]?4$Q!5$9/4DT*)FYB<W`[("9N8G-P.RXN+B!T +M97-T<R!A<R!U<W5A;"`N+BXN"B-E;'-E"B9N8G-P.R`F;F)S<#MS:VEP<&EN +M9R@F<75O=#MP;&%T9F]R;2US<&5C:69I8R!T97-T<R9Q=6]T.RD["B-E;F1I +M9@I]/"]04D4^/%`^"DEN('!A<G1I8W5L87(L(&YO=&4@=&AA="!A;&P@=&5S +M=',@87)E(&-O;7!I;&5D(&%N9"!R=6X@;VX@86QL"G!L871F;W)M<RX@"CPO +M4#X*/%`^36]S="!T97-T<R!A<F4@;F]T('!L871F;W)M+7-P96-I9FEC(&%N +M9"!W:6QL('1H=7,@96YD('5P(')U;FYI;F<*;VX@;6%N>2!D:69F97)E;G0@ +M<&QA=&9O<FUS+B!);B!O<F1E<B!T;R!S:6UP;&EF>2!W<FET:6YG('-U8V@@ +M=&5S=',L"G1R>2!T;R!U<V4@<&QA=&9O<FTM:6YD97!E;F1E;G0@8V]D:6YG +M.B`*/"]0/@H\54P^"@D\3$D^/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ(#!I +M;B(^57-E('-T9&EO(#Q45"!#3$%34STB=V5S=&5R;B(^9F]P96XH*3PO5%0^ +M+`H)/%14($-,05-3/2)W97-T97)N(CYF=W)I=&4H*3PO5%0^+"`\5%0@0TQ! +M4U,](G=E<W1E<FXB/F9R96%D*"D\+U14/BP*"6%N9"`\5%0@0TQ!4U,](G=E +M<W1E<FXB/F9C;&]S92@I/"]45#X@=&\@86-C97-S(&9I;&5S('=H96YE=F5R +M"@EF96%S:6)L92X@"@D\+U`^"@D\3$D^/%`^3&]O:R!T:')O=6=H('1H92`\ +M5%0@0TQ!4U,](G=E<W1E<FXB/G1E<W0N:#PO5%0^(&AE861E<B!T;PH)<V5E +M(&EF('1H97)E(&%R92!A<W-E<G18>'@H*2!F=6YC=&EO;G,@=&AA="!Y;W4@ +M8V%N('5S92X@5&AE<F4G<R!A"@EL:7-T(&]F('1H92!M;W)E('!O<'5L87(@ +M;VYE<R!B96QO=RP@8G5T(&YE=R!O;F5S(&%R92!O9G1E;B!A9&1E9"X@"@D\ +M+U`^"CPO54P^"CQ(,2!#3$%34STB=V5S=&5R;B(^/$$@3D%-13TB07-S97)T +M7VUA8W)O<R(^/"]!/D%S<V5R="!M86-R;W,\+T@Q/@H\4#Y4:&4@9F]L;&]W +M:6YG(&ES(&$@;F5C97-S87)I;'D@:6YC;VUP;&5T92!L:7-T(&]F(&%S<V5R +M="!F=6YC=&EO;G,*879A:6QA8FQE('1O('1E<W1S.B`*/"]0/@H\54P^"@D\ +M3$D^/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ(#!I;B(^0F%S:6,@97%U86QI +M='DZ(#Q45"!#3$%34STB=V5S=&5R;B(^87-S97)T17%U86Q);G0\+U14/BP* +M"3Q45"!#3$%34STB=V5S=&5R;B(^87-S97)T17%U86Q3=')I;F<\+U14/BP@ +M/%14($-,05-3/2)W97-T97)N(CYA<W-E<G1%<75A;$UE;3PO5%0^"@D)/"]0 +M/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB/D9I;&4@8W)E +M871I;VXZ(#Q45"!#3$%34STB=V5S=&5R;B(^87-S97)T36%K949I;&4\+U14 +M/BP*"3Q45"!#3$%34STB=V5S=&5R;B(^87-S97)T36%K95-Y;6QI;FL\+U14 +M/BP@/%14($-,05-3/2)W97-T97)N(CYA<W-E<G1-86ME2&%R9&QI;FL\+U14 +M/BP*"3Q45"!#3$%34STB=V5S=&5R;B(^87-S97)T36%K941I<CPO5%0^(`H) +M/"]0/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB/D9I;&4@ +M=&5S=',Z(#Q45"!#3$%34STB=V5S=&5R;B(^87-S97)T27-296<\+U14/BP* +M"3Q45"!#3$%34STB=V5S=&5R;B(^87-S97)T27-$:7(\+U14/BP@/%14($-, +M05-3/2)W97-T97)N(CYA<W-E<G1)<U-Y;6QI;FL\+U14/BP*"3Q45"!#3$%3 +M4STB=V5S=&5R;B(^87-S97)T1FEL95-I>F4\+U14/BP@/%14($-,05-3/2)W +M97-T97)N(CYA<W-E<G1&:6QE3FQI;FMS/"]45#XL"@D\5%0@0TQ!4U,](G=E +M<W1E<FXB/F%S<V5R=$9I;&5-=&EM93PO5%0^(`H)/"]0/@H)/$Q)/CQ0/D9I +M;&4@8V]N=&5N=',Z(#Q45"!#3$%34STB=V5S=&5R;B(^87-S97)T1FEL945M +M<'1Y/"]45#XL"@D\5%0@0TQ!4U,](G=E<W1E<FXB/F%S<V5R=$9I;&5.;VY% +M;7!T>3PO5%0^+"`\5%0@0TQ!4U,](G=E<W1E<FXB/F%S<V5R=$9I;&5#;VYT +M96YT<SPO5%0^+`H)/%14($-,05-3/2)W97-T97)N(CYA<W-E<G1497AT1FEL +M94-O;G1E;G1S/"]45#X@"@D\+U`^"CPO54P^"CQ(,2!#3$%34STB=V5S=&5R +M;B(^/$$@3D%-13TB4F5F97)E;F-E7T9I;&5S(CX\+T$^4F5F97)E;F-E($9I +M;&5S/"](,3X*/%`^36%N>2!T97-T<R!R97%U:7)E(')E861I;F<@82!P<F4M +M8V]N<W1R=6-T960@<F5F97)E;F-E(&9I;&4N(%-U8V@*9FEL97,@87)E('-T +M;W)E9"!W:71H('1H92!S;W5R8V4@8V]D92!F;W(@=&AE(&%S<V]C:6%T960@ +M=&5S="!S=6ET92X*4F5F97)E;F-E(&9I;&5S(&%R92!N86UE9"!A8V-O<F1I +M;F<@=&\@=&AE('1E<W0@86YD(&UU<W0@8F4@=75E;F-O9&5D"G1O(&)E(&-H +M96-K960@:6YT;R!S;W5R8V4@8V]N=')O;"X@"CPO4#X*/%`^1F]R(&5X86UP +M;&4L(&EF('EO=2!N965D(&$@<F5F97)E;F-E('1A<B!A<F-H:79E('1O('5S +M92!W:71H"CQ45"!#3$%34STB=V5S=&5R;B(^=&5S=%]F;V\\+U14/BP@=&AE +M(&9I;&4@<VAO=6QD(&)E(&YA;65D"CQ45"!#3$%34STB=V5S=&5R;B(^=&5S +M=%]F;V\N=&%R/"]45#X@86YD('-T;W)E9"!I;B!S;W5R8V4@8V]N=')O;"!A +M<PH\5%0@0TQ!4U,](G=E<W1E<FXB/G1E<W1?9F]O+G1A<BYU=3PO5%0^+B`* +M/"]0/@H\4#Y7:71H:6X@=&AE('1E<W0@8V]D92P@>6]U(&-A;B!R96-O=F5R +M('1H92!R969E<F5N8V4@9FEL92!W:71H.B`*/"]0/@H\4%)%($-,05-3/2)W +M97-T97)N(B!35%E,13TB;6%R9VEN+6)O='1O;3H@,"XR:6XB/B9N8G-P.R`F +M;F)S<#L@97AT<F%C=%]R969E<F5N8V5?9FEL92@F<75O=#MT97-T7V9O;RYT +M87(F<75O=#LI.SPO4%)%/CQ0/@I4:&4@/%14($-,05-3/2)W97-T97)N(CYE +M>'1R86-T7W)E9F5R96YC95]F:6QE*"D\+U14/B!F=6YC=&EO;B!W:6QL"G5U +M9&5C;V1E('1H92!R97%U97-T960@9FEL92!A;F0@<'5T('1H92!R97-U;'0@ +M:6X@=&AE(&-U<G)E;G0*9&ER96-T;W)Y+B`*/"]0/@H\4#Y,;V]K(&%T(#Q4 +M5"!#3$%34STB=V5S=&5R;B(^=&5S=%]R96%D7V9O<FUA=%]C<&EO7V)I;E]B +M92YC/"]45#X*9F]R(&$@<VEM<&QE(&5X86UP;&4@;V8@=&AI<R!U<V%G92X@ +M"CPO4#X*/%`^02!F97<@;V8@=&AE(&]L9&5R('1E<W1S('-T;W)E(')E9F5R +M96YC92!D871A('=I=&AI;B!T:&4@<V]U<F-E"F-O9&4@87,@82!H97@M96YC +M;V1E9"!A<G)A>2!O9B!C:&%R86-T97)S+B!4:&ES('=A<R!C;VUM;VX@8F5F +M;W)E"CQ45"!#3$%34STB=V5S=&5R;B(^97AT<F%C=%]R969E<F5N8V5?9FEL +M92@I/"]45#X@=V%S(&%D9&5D(&%N9"!I<PIN;W0@<F5C;VUM96YD960@9F]R +M(&YE=R!C;V1E+B`*/"]0/@H\2#$@0TQ!4U,](G=E<W1E<FXB/CQ!($Y!344] +M(D1O<U]A;F1?1&]N=',B/CPO03Y$;W,@86YD($1O;G1S/"](,3X*/%5,/@H) +M/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB/D1/('5S92!A<W-E +M<G1S(&QI8F5R86QL>2X@270G<PH)8V]M;6]N('1O(&AA=F4@86X@87-S97)T +M(&]N(&%L;6]S="!E=F5R>2!L:6YE+B`*"3PO4#X*"3Q,23X\4"!35%E,13TB +M;6%R9VEN+6)O='1O;3H@,&EN(CY$3R!U<V4@87-S97)T17%U86Q);G0L"@EA +E<W-E<G1%<75A;%-T<FEN9RS2*'L/0!0`Z@D750`````````````` +` +end diff --git a/libarchive/test/test_rar_multivolume_uncompressed_files.part02.rar.uu b/libarchive/test/test_rar_multivolume_uncompressed_files.part02.rar.uu new file mode 100644 index 00000000..97e826ee --- /dev/null +++ b/libarchive/test/test_rar_multivolume_uncompressed_files.part02.rar.uu @@ -0,0 +1,299 @@ +begin 644 - +M4F%R(1H'`!EZ<Q$`#0````````#G!'0AD$P``QL``(].```#8Z8%7KM,-4$4 +M,"(`I($``'1E<W1D:7)<3&EB87)C:&EV94%D9&EN9U1E<W0R+FAT;6R`S#)? +M.T)17SM"(&%S<V5R=$5Q=6%L365M('1O('1E<W0@97%U86QI='D@:6YS=&5A +M9"!O9B!P;&%I;@H)87-S97)T*"D[('1H92!S<&5C:6%L:7IE9"!F;W)M<R!G +M:79E(&$@;&]T(&UO<F4@:6YF;W)M871I;VX@;VX@80H)9F%I;'5R92X@"@D\ +M+U`^"@D\3$D^/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ(#!I;B(^1$\@=&5S +M="!Y;W5R('1E<W1S.R!E>'!E<FEM96YT(&)Y"@EC:&%N9VEN9R!A('!I96-E +M(&]F(&-O9&4@86YD(&UA:V4@<W5R92!Y;W5R('1E<W0@9F%I;',N($EF('EO +M=2!T:&EN:PH)>6]U)W9E(&9O=6YD(&$@8G5G+"!W92!R96-O;6UE;F0@=W)I +M=&EN9R!T:&4@=&5S="!F:7)S="P@;6%K92!S=7)E"@ET:&4@=&5S="!F86EL +M<RP@=&AE;B!F:7AI;F<@=&AE(&)U9RX@"@D\+U`^"@D\3$D^/%`@4U193$4] +M(FUA<F=I;BUB;W1T;VTZ(#!I;B(^1$\@<G5N(&%L;"!O9B!T:&4@=&5S=',@ +M8F5F;W)E"@ES=6)M:71T:6YG(&$@8VAA;F=E+B!$97!E;F1I;F<@;VX@>6]U +M<B!B=6EL9"!E;G9I<F]N;65N="P@/%14($-,05-3/2)W97-T97)N(CYM86ME +M"@ET97-T/"]45#X@;W(@/%14($-,05-3/2)W97-T97)N(CYM86ME(&-H96-K +M/"]45#X@=VEL;"!U<W5A;&QY(')U;@H)86QL(&]F('1H92!T97-T<RX@"@D\ +M+U`^"@D\3$D^/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ(#!I;B(^1$].)U0@ +M<F5L>2!O;B`\5%0@0TQ!4U,](G=E<W1E<FXB/DA!5D5?/"]45#X*"6UA8W)O +M<R!F<F]M(&-O;F9I9RYH+B`H268@=&AE('1E<W1S('5S92!T:&4@<V%M92`\ +M5%0@0TQ!4U,](G=E<W1E<FXB/DA!5D5?/"]45#X*"6UA8W)O<R!A<R!T:&4@ +M8V]D92!B96EN9R!T97-T960@=&AE;B!C;VYF:6=U<F%T:6]N('!R;V)L96US +M('=I;&P@8F4*"6-O=F5R960@=7`N*2`*"3PO4#X*"3Q,23X\4"!35%E,13TB +M;6%R9VEN+6)O='1O;3H@,&EN(CY$3R!U<V4@<G5N=&EM92!T97-T<R!F;W(@ +M<&QA=&9O<FT*"69E871U<F5S+B!&;W(@97AA;7!L92P@=&AE($%#3"!T97-T +M<R!T<GD@=&\@<V5T(&%N($%#3"!O;B!A(&9I;&4@86YD"@ER96%D(&ET(&)A +M8VL@=&\@9&5T97)M:6YE(&EF($%#3"!S=7!P;W)T(&ES(&%V86EL86)L92P@ +M=&AE;B!T:&5Y"@EE>&5R8VES92!T:&4@;&EB87)C:&EV92!!0TP@:&%N9&QI +M;F<N(`H)/"]0/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB +M/D1/(&QO;VL@870@97AI<W1I;F<@=&5S=',N($]F=&5N+`H)82!B=6<@8V%N +M(&)E('1E<W1E9"!B>2!A9&1I;F<@:G5S="!A(&-O=7!L92!O9B!A<W-E<G1S +M('1O(&%N"@EE>&ES=&EN9R!T97-T(&EN<W1E860@;V8@=W)I=&EN9R!A(&YE +M=R!O;F4N(`H)/"]0/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P +M:6XB/D1/(&EM<')O=F4@97AI<W1I;F<@=&5S=',N($EN"@EP87)T:6-U;&%R +M+"!I9B!Y;W4@<V5E(&$@=&5S="!F86EL=7)E('1H870@:7,@:&%R9"!T;R!U +M;F1E<G-T86YD+`H)8V]N<VED97(@861D:6YG(&$@9F%I;'5R92@I(&UE<W-A +M9V4@;W(@8V]M;65N=',@<V\@=&AE(&YE>'0@<&5R<V]N"@EW:6QL(&AA=F4@ +M86X@96%S:65R('1I;64N(`H)/"]0/@H)/$Q)/CQ0/D1/(&%S:R!O;B!T:&4@ +M;6%I;&EN9R!L:7-T<R!I9B!Y;W4@:&%V92!Q=65S=&EO;G,N(%-O;64@=&5S +M=',*"6%R92!B971T97(@=W)I='1E;B!T:&%N(&]T:&5R<RX@"@D\+U`^"CPO +M54P^"CQ(,2!#3$%34STB=V5S=&5R;B(^/$$@3D%-13TB4V]M95]E>&%M<&QE +M<U]O9E]T97-T<R(^/"]!/E-O;64*97AA;7!L97,@;V8@=&5S=',\+T@Q/@H\ +M2#(@0TQ!4U,](G=E<W1E<FXB/CQ!($Y!344](DQI8F%R8VAI=F5?<F5A9%]T +M97-T<R(^/"]!/DQI8F%R8VAI=F4*<F5A9"!T97-T<SPO2#(^"CQ0/E1H97)E +M(&%R92!Q=6ET92!A(&9E=R!R96%D('1E<W1S('1H870@<VEM<&QY(')E860@ +M82!P<F4M8G5I;'0*:6YP=70@9FEL92!A;F0@=F5R:69Y('1H92!R97-U;'1S +M+B!4:&5S92!U<V4@/%14($-,05-3/2)W97-T97)N(CYE>'1R86-T7W)E9F5R +M96YC95]F:6QE*"D\+U14/@IT;R!D96-O9&4@82!U=65N8V]D960@:6YP=70@ +M9FEL92P@=&AE;B!O<&5N('1H870@9FEL92!W:71H(&QI8F%R8VAI=F4*86YD +M('9E<FEF>2!T:&4@<F5S=6QT<RX@36]S="!O9B!T:&5S92!A<F4@<')E='1Y +M('-T<F%I9VAT9F]R=V%R9"X@"CPO4#X*/$@R($-,05-3/2)W97-T97)N(CX\ +M02!.04U%/2),:6)A<F-H:79E7W)E860O=W)I=&5?=&5S=',B/CPO03Y,:6)A +M<F-H:79E"G)E860O=W)I=&4@=&5S=',\+T@R/@H\4#Y-;W-T(&]F('1H92!W +M<FET92!T97-T<R!R96%L;'D@:G5S="!V97)I9GD@=&AA="!L:6)A<F-H:79E +M(&-A;@IR96%D('=H870@:70@=W)I=&5S+B!4:&5S92!G96YE<F%L;'D@=7-E +M('1H92!M96UO<GD@:6YT97)F86-E<RX@5&AE>0IF965D(&%R8VAI=F4@96YT +M<FEE<R!I;G1O('1H92!W<FET97(@=&\@8W)E871E(&%N(&%R8VAI=F4@:6X@ +M;65M;W)Y"F%N9"!T:&5N(&]P96X@=&AE(&UE;6]R>2!A9V%I;B!T;R!R96%D +M('1H92!D871A(&)A8VL@86YD('9E<FEF>2!T:&%T"FET(&ES('1H92!S86UE +M+B`*/"]0/@H\2#(@0TQ!4U,](G=E<W1E<FXB/CQ!($Y!344](DQI8F%R8VAI +M=F5?=W)I=&5?=F%L:61A=&]R<R(^/"]!/DQI8F%R8VAI=F4*=W)I=&4@=F%L +M:61A=&]R<SPO2#(^"CQ0/D$@9F5W('=R:71E('1E<W1S('=R:71E(&%N(&%R +M8VAI=F4@:6YT;R!M96UO<GD@86YD('1H96X@:6YS<&5C=`IT:&4@86-T=6%L +M(&)Y=&5S('1O('9E<FEF>2!T:&%T('1H92!A<F-H:79E('=A<R!C<F5A=&5D +M(&-O<G)E8W1L>2X*5&AE<V4@=&5S=',@87)E(&YI8V4@=&\@:&%V92!B=70@ +M87)E('1E9&EO=7,@=&\@8G5I;&0N(`H\+U`^"CQ0/E1H97)E(&%R92!A;'-O +M(&$@8V]U<&QE(&]F('-U8V@@=F%L:61A=&]R<R!F;W(@8G-D=&%R(&%N9"!B +M<V1C<&EO+@I4:&5S92!A<F4@=F5R>2!T<FEC:WD@<VEN8V4@=&AE(&5X86-T +M(&1A=&$@8V]N=&%I;G,@=F%L=65S('1H870@=&AE"G1E<W0@8V%N;F]T(&-O +M;7!L971E;'D@8V]N=')O;"`H<W5C:"!A<R!T:&4@8W5R<F5N="!T:6UE(&]R +M"G5S97)N86UE*2X@"CPO4#X*/$@R($-,05-3/2)W97-T97)N(CX\02!.04U% +M/2)$:7-K7W1E<W1S(CX\+T$^1&ES:R!T97-T<SPO2#(^"CQ0/DQI8F%R8VAI +M=F4G<R!D:7-K($DO3R!!4$ES+"!A<R!W96QL(&%S(&)S9'1A<B!A;F0@8G-D +M8W!I;RP@;F5E9"!T;PIO<&5R871E(&)Y('9E<FEF>6EN9R!F:6QE<R!O;B!D +M:7-K+B!4;R!M86ME('1H:7,@96%S:65R+"!T:&4@=&5S=`IF<F%M97=O<FL@ +M;F]W(&AA<R!A(&QA<F=E(&YU;6)E<B!O9B!A<W-E<G1I;VYS('1O('9E<FEF +M>2!T:6UE<W1A;7!S+`IP97)M:7-S:6]N<RP@86YD(&]T:&5R(&)A<VEC(&9I +M;&4@9&%T82X@5&AE<V4@87-S97)T:6]N<R!U<V4*87!P<F]P<FEA=&4@<WES +M=&5M(&-A;&QS(&9O<B!E86-H('!L871F;W)M.R!N97<@=&5S=',@<VAO=6QD +M('1R>2!T;PIA=F]I9"!U<VEN9R`\5%0@0TQ!4U,](G=E<W1E<FXB/G-T870H +M*3PO5%0^+"!W:&EC:"!I<R!N;W0@=6YI9F]R;6QY"F%V86EL86)L92X@"CPO +M4#X*/$@R($-,05-3/2)W97-T97)N(CX\02!.04U%/2)&=7IZ7W1E<W1E<B(^ +M/"]!/D9U>GH@=&5S=&5R/"](,CX*/%`^5&AE(&9U>GH@=&5S=&5R(&ES(&]N +M92!O9B!T:&4@9F5W('1E<W1S('1H870@9&]E<R!N;W0@86=G<F5S<VEV96QY +M"G5S92!A<W-E<G1I;VYS+B!)=',@<'5R<&]S92!I<R!T;R!T<GD@86YD(&-R +M87-H(&QI8F%R8VAI=F4@8GD@9F5E9&EN9PII="!I;G!U="!T:&%T(&ES('-L +M:6=H=&QY(&1A;6%G960N("A296UE;6)E<B!T:&%T(&QI8F%R8VAI=F4@9&]E +M<PIH879E('-O;64@9F%I;'-A9F4@8V]D92!T:&%T(&1E;&EB97)A=&5L>2!A +M8F]R=',@=&AE(&5N=&ER92!P<F]G<F%M"FEF(&-E<G1A:6X@:6YV87)I86YT +M<R!A<F4@=FEO;&%T960N*2`*/"]0/@H\4#Y3:6YC92!A(&9U>GH@9F%I;'5R +M92!C875S97,@82!C<F%S:"P@:70G<R!I;7!O<W-I8FQE('1O(')E<&]R="!T +M:&4*97)R;W(@=&\@=&AE(&-O;G-O;&4L('-O('1H92!F=7IZ('1E<W1E<B!I +M;G-T96%D(&=E;F5R871E<R!A"G)A;F1O;6QY+61A;6%G960@9FEL92P@<V%V +M97,@=&AA="!F:6QE('1O(&1I<VLL('1H96X@<G5N<R!T:&4@9FEL90IT:')O +M=6=H(&QI8F%R8VAI=F4@=&\@=')Y('1O('!R;W9O:V4@82!C<F%S:"X@268@ +M;&EB87)C:&EV92!C<F%S:&5S"G1H92!E;G1I<F4@=&5S=&5R+"!T:&4@:6YP +M=70@=&AA="!C875S960@=&AE(&-R87-H('=I;&P@8F4@879A:6QA8FQE"F]N +M(&1I<VL@9F]R(&9U<G1H97(@86YA;'ES:7,N(`H\+U`^"CQ0/D%L=&AO=6=H +M(&ET(&ES('5N=7-U86P@9F]R(&$@=&5S="!P<F]G<F%M('1O('5S92!R86YD +M;VT@:6YP=70L('1H90IF=7IZ('1E<W1E<B!H87,@<')O=F5N('%U:71E('5S +M969U;"!A="!U;F-O=F5R:6YG('!O;W(@97)R;W(*:&%N9&QI;F<N(%5N9F]R +M='5N871E;'DL('1H92!N965D('1O('=R:71E('1H92!D871A('1O(&1I<VL@ +M8F5F;W)E"F5A8V@@=&5S="!I<R!A('-I9VYI9FEC86YT('!E<F9O<FUA;F-E +M(&ES<W5E+B`*/"]0/@H\2#(@0TQ!4U,](G=E<W1E<FXB/CQ!($Y!344](DQA +M<F=E7W1A<E]T97-T97(B/CPO03Y,87)G92!T87(@=&5S=&5R/"](,CX*/%`^ +M5&AE(&QA<F=E('1A<B!T97-T97(@871T96UP=',@=&\@97AE<F-I<V4@8F]U +M;F1A<GD@8V%S97,@=VET:"!V97)Y"FQA<F=E(&5N=')I97,L('5P('1O(#$@ +M=&5R86)Y=&4N($]F(&-O=7)S92P@=W)I=&EN9R!A(#$@=&5R86)Y=&4*96YT +M<GD@=&\@86X@=6YC;VUP<F5S<V5D(&%R8VAI=F4@;VX@9&ES:R!O<B!M96UO +M<GD@:7,@=6YA8V-E<'1A8FQE+`IB;W1H(&9O<B!P97)F;W)M86YC92!A;F0@ +M<W!A8V4@<F5A<V]N<RX@179E;B!G>FEP(&]R(&)Z:7`R"F-O;7!R97-S:6]N +M('=O;B=T(&AE;'`[(&%L=&AO=6=H('-M86QL97(L('1H92!O=71P=70@:7,@ +M<W1I;&P@;&%R9V4*86YD('1H92!T:6UE(&YE961E9"!T;R!C;VUP<F5S<R!S +M=6-H(&$@;&%R9V4@86UO=6YT(&]F(&1A=&$@:7,*<')O:&EB:71I=F4N(%-O +M('1H92!L87)G92!T87(@=&5S=&5R('5S97,@82!T<FEC:RX@"CPO4#X*/%`^ +M4F5M96UB97(@=&AA="!A;B!U;F-O;7!R97-S960@=&%R(&%R8VAI=F4@8V]N +M<VES=',@;V8@86QT97)N871I;F<*:&5A9&5R<R!A;F0@8F]D:65S+B!)9B!T +M:&4@8F]D:65S(&-O;G-I<W0@96YT:7)E;'D@;V8@>F5R;R!B>71E<RP*=&AE +M;B!A;&P@=&AA="=S(&YE961E9"!T;R!R96-O;G-T<G5C="!T:&4@87)C:&EV +M92!I<R!T;R!R96-O<F0@=&AE"G)E;&%T:79E;'D@<VUA;&P@:&5A9&5R<R!A +M;F0@<W1O<F4@82!C;W5N="!O9B!E86-H(&-O;G1I9W5O=7,@8FQO8VL*;V8@ +M>F5R;W,N(%1H:7,@<VEM<&QE("9Q=6]T.W)U;BUL96YG=&@@96YC;V1I;F<F +M<75O=#L@:7,@=F5R>0IE9F9E8W1I=F4L(&-O;7!R97-S:6YG(&$@<V%M<&QE +M(&%R8VAI=F4@=VET:"!A(&1O>F5N(&5N=')I97,@9&]W;B!T;PIJ=7-T(&$@ +M9F5W(&MI;&]B>71E<RP@979E;B!I9B!T:&]S92!E;G1R:65S(')A;F=E('5P +M('1O(#%40BX@"CPO4#X*/%`^0GD@=W)I=&EN9R!A(&-U<W1O;2!)+T\@;&%Y +M97(@=&AA="!I;7!L96UE;G1S('-U8V@@8V]M<')E<W-I;VXL('=E"F-A;B!W +M<FET92!V97)Y(&QA<F=E(&5N=')I97,@=&AR;W5G:"!L:6)A<F-H:79E('1H +M96X@<F5A9"!T:&5M(&)A8VL*86YD('9E<FEF>2!T:&%T(&QI8F%R8VAI=F4@ +M8V]R<F5C=&QY(&AA;F1L97,@86QL(&]F('1H92!B;W5N9&%R>0IC87-E<RX@ +M"CPO4#X*/%`^3V8@8V]U<G-E+"!E=F5N('-C86YN:6YG(&]U='!U="!T;R!D +M971E<FUI;F4@>F5R;R!B;&]C:W,@8V%N('1A:V4*<75I=&4@82!W:&EL92P@ +M<V\@=&AE(&QA<F=E('1A<B!T97-T97(@;6%K97,@;VYE(&UO<F4@;W!T:6UI +M>F%T:6]N.@I,:6)A<F-H:79E(&ES("9Q=6]T.VUO<W1L>29Q=6]T.R!Z97)O +M+6-O<'DN(%=H96X@>6]U(&=I=F4@:70@82!L87)G90IB;&]C:R!T;R!W<FET +M92!T;R!A;B!E;G1R>2!B;V1Y+"!I="!W:6QL('!A<W,@<&]I;G1E<G,@<W1R +M86EG:'0*=&AR;W5G:"!T;R!T:&4@;W5T<'5T(')O=71I;F4L(&5X8V5P="!I +M;B!T:&]S92!C87-E<R!W:&5R92!I="!M=7-T"F-O<'D@9&%T82!T;R!C;W)R +M96-T;'D@8G5I;&0@8FQO8VMS+B!4:&4@;&%R9V4@=&%R('1E<W1E<B!T86ME +M<PIA9'9A;G1A9V4@;V8@=&AI<R!T;R!Q=6EC:VQY(&1E=&5C="!W:&5N(&$@ +M8FQO8VL@8F5I;F<@=W)I='1E;B!O=70@8GD*=&AE(&%R8VAI=F4@=W)I=&5R +M(&ES('1H92!S86UE(&%S('-O;64@;V8@=&AE(&1A=&$@=&AA="!W87,@9VEV +M96X@8GD*=&AE('1E<W0@87,@=&AE(&5N=')Y(&)O9'DL(&%N9"!S:6UI;&%R +M;'D@=VAE;B!R96%D:6YG('1H92!A<F-H:79E"F)A8VLN(`H\+U`^"CQ0/E1A +M:V5N('1O9V5T:&5R+"!T:&5S92!T<FEC:W,@86QL;W<@=&AE(&QA<F=E('1A +M<B!W<FET97(@=&\@=&5S=`IF;W(@:7-S=65S('-U8V@@87,@<')O<&5R('-T +M;W)A9V4@;V8@=F5R>2!L87)G92!F:6QE('-I>F5S("AT87(@9FEL97,*<W5P +M<&]R="!S979E<F%L(&1I9F9E<F5N="!W87ES('1O('-T;W)E(&9I;&4@<VEZ +M97,@=VAI8V@@=')A9&4@;V9F"G!O<G1A8FEL:71Y('9E<G-U<R!R86YG93L@ +M;&EB87)C:&EV92!T<FEE<R!T;R!U<V4@=&AE(&UO<W0@<&]R=&%B;&4*;VYE +M(&ET(&-A;B!F;W(@96%C:"!E;G1R>2D@86YD(&EN=&5G97(@;W9E<F9L;W<@ +M*%=I;F1O=W,@,S(M8FET(#Q45"!#3$%34STB=V5S=&5R;B(^;V9F7W0\+U14 +M/@IB<F]K92!T:&4@;&%R9V4@=&%R('1E<W0@86YD(&QE9"!L:6)A<F-H:79E +M('1O(&UA:V4@:&5A=FEE<B!U<V4@;V8*/%14($-,05-3/2)W97-T97)N(CYI +M;G0V-%]T/"]45#X@:6YT97)N86QL>2D@:6X@82!T97-T('1H870@<G5N<R!I +M;@IU;F1E<B`Q+S0@<V5C;VYD+B`*/"]0/@H\4"!35%E,13TB;6%R9VEN+6)O +M='1O;3H@,&EN(CX\0E(^"CPO4#X*/"]"3T19/@H\+TA434P^08%T(I!7`#(8 +M``"/3@```P5+K#^[3#5!%#`M`*2!``!T97-T9&ER7'1E<W1S=6)D:7)<3&EB +M87)C:&EV94%D9&EN9U1E<W0R+FAT;6S`S#-?.T)C7SM"/"%$3T-465!%($A4 +M34P@4%5"3$E#("(M+R]7,T,O+T141"!(5$U,(#0N,"!4<F%N<VET:6]N86PO +M+T5.(CX*/$A434P^"CQ(14%$/@H)/$U%5$$@2%144"U%455)5CTB0T].5$5. +M5"U465!%(B!#3TY414Y4/2)T97AT+VAT;6P[(&-H87)S970]=71F+3@B/@H) +M/%1)5$Q%/CPO5$E43$4^"@D\345402!.04U%/2)'14Y%4D%43U(B($-/3E1% +M3E0](DQI8G)E3V9F:6-E(#,N,R`@*%5N:7@I(CX*"3Q-151!($Y!344](D-2 +M14%4140B($-/3E1%3E0](C(P,3$P-C(V.S(R,C,U,3`P(CX*"3Q-151!($Y! +M344](D-(04Y'140B($-/3E1%3E0](C(P,3$P-C(V.S(R,C4T-3`P(CX*"3Q3 +M5%E,12!465!%/2)T97AT+V-S<R(^"@D\(2TM"@D)0'!A9V4@>R!M87)G:6XZ +M(#`N-SEI;B!]"@D)4"![(&UA<F=I;BUB;W1T;VTZ(#`N,#AI;B!]"@D)2#$@ +M>R!M87)G:6XM8F]T=&]M.B`P+C`X:6X@?0H)"4@Q+G=E<W1E<FX@>R!F;VYT +M+69A;6EL>3H@(DQI8F5R871I;VX@4V5R:68B+"!S97)I9B!]"@D)2#$N8VIK +M('L@9F]N="UF86UI;'DZ(")":71S=')E86T@5F5R82!386YS(B!]"@D)2#$N +M8W1L('L@9F]N="UF86UI;'DZ(")&<F5E4V%N<R(@?0H)"5!212YC:FL@>R!F +M;VYT+69A;6EL>3H@(D)I='-T<F5A;2!697)A(%-A;G,B+"!M;VYO<W!A8V4@ +M?0H)"4@R('L@;6%R9VEN+6)O='1O;3H@,"XP.&EN('T*"0E(,BYC=&P@>R!F +M;VYT+69A;6EL>3H@(D9R965386YS(B!]"@D)5%0N8VIK('L@9F]N="UF86UI +M;'DZ(")":71S=')E86T@5F5R82!386YS(BP@;6]N;W-P86-E('T*"2TM/@H) +M/"]35%E,13X*/"](14%$/@H\0D]$62!,04Y'/2)E;BU54R(@1$E2/2),5%(B +M/@H\2#$@0TQ!4U,](G=E<W1E<FXB/DEN=')O9'5C=&EO;CPO2#$^"CQ0/DQI +M8F%R8VAI=F4@:7,@;F]W(&$@9F%I<FQY(&-O;7!L97@@<&EE8V4@;V8@<V]F +M='=A<F4@=&AA="!R=6YS(&]N"F$@;G5M8F5R(&]F(&1I9F9E<F5N="!P;&%T +M9F]R;7,N($$@=&AO<F]U9V@@=&5S="!S=6ET92!I<R!E<W-E;G1I86P*8F]T +M:"!F;W(@=F5R:69Y:6YG(&YE=R!P;W)T<R!A;F0@9F]R(&5N<W5R:6YG('1H +M870@9G5T=7)E(&-H86YG97,*9&]N)W0@8G)E86L@97AI<W1I;F<@9G5N8W1I +M;VYA;&ET>2X@"CPO4#X*/%`^06YY('-I9VYI9FEC86YT(&-H86YG92!T;R!L +M:6)A<F-H:79E+"!I;F-L=61I;F<@;6]S="!B=6<@9FEX97,L"G-H;W5L9"!B +M92!A8V-O;7!A;FEE9"!B>2!N97<@=&5S=',@;W(@8VAA;F=E<R!T;R!E>&ES +M=&EN9R!T97-T<RX@5&AI<PIA<G1I8VQE(&5X<&QA:6YS(&AO=R!T:&4@;&EB +M87)C:&EV92!T97-T('-U:71E<R!W;W)K(&%N9"!H;W<@=&\*97AT96YD('1H +M96TN(`H\+U`^"CQ(,2!#3$%34STB=V5S=&5R;B(^/$$@3D%-13TB0G5I;&1I +M;F=?86YD7U)U;FYI;F=?=&AE7U1E<W1?4')O9W)A;7,B/CPO03X*0G5I;&1I +M;F<@86YD(%)U;FYI;F<@=&AE(%1E<W0@4')O9W)A;7,\+T@Q/@H\4#Y%86-H +M(&UA:F]R(&-O;7!O;F5N="TM;&EB87)C:&EV92P@8G-D=&%R+"!A;F0@8G-D +M8W!I;RTM:&%S(&$@=&5S=`IP<F]G<F%M('1H870@97AE<F-I<V5S('1H92!F +M=6YC=&EO;F%L:71Y(&]F('1H870@8V]M<&]N96YT+B!4:&5S90IT97-T('!R +M;V=R86US(&%R92!C;VUP:6QE9"!I;B!T:&4@<V%M92!W87D@=&AA="!T:&4@ +M<F5S="!O9B!T:&4*;&EB87)C:&EV92!S=6ET92!I<R!C;VUP:6QE9"X@"CPO +M4#X*/%`^5&\@<G5N('1H92!T97-T('!R;V=R86US+"!Y;W4@;F5E9"!T;R!G +M:79E('1H96T@='=O('!I96-E<R!O9@II;F9O<FUA=&EO;CH@"CPO4#X*/%5, +M/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB/E1H92!F=6QL +M('!A=&@@=&\@=&AE(&1I<F5C=&]R>0H):&]L9&EN9R!T:&4@)G%U;W0[<F5F +M97)E;F-E(&9I;&5S)G%U;W0[(`H)/"]0/@H)/$Q)/CQ0/E1H92!F=6QL('!A +M=&@@=&\@=&AE(&5X96-U=&%B;&4@<')O9W)A;2!B96EN9R!T97-T960@*&YO +M=`H)87!P;&EC86)L92!T;R!L:6)A<F-H:79E7W1E<W0@<VEN8V4@;&EB87)C +M:&EV92!I<R!C;VUP:6QE9"!I;G1O('1H90H)=&5S="!P<F]G<F%M*2`*"3PO +M4#X*/"]53#X*/%`^5&AE(')E9F5R96YC92!F:6QE<R!A<F4@82!C;VQL96-T +M:6]N(&]F(&MN;W=N(&EN<'5T<R!T:&%T(&%R92!U<V5D"FEN('1H92!T97-T +M('!R;V-E<W,N(%1H97D@87)E(&%L;"!S=&]R960@:6X@=75E;F-O9&5D(&9O +M<FUA="!I;B!F:6QE<PIW:71H(&$@)G%U;W0[+G5U)G%U;W0[(&5X=&5N<VEO +M;BX@5&AE('1E<W0@<')O9W)A;7,@;&]O:R!I;B!A(&9E=PIS=&%N9&%R9"!L +M;V-A=&EO;G,[(&EF(&YO;F4@;V8@=&AO<V4@=V]R:RP@>6]U)VQL(&YE960@ +M=&\@<W!E8VEF>2!T:&4*/%14($-,05-3/2)W97-T97)N(CXM<CPO5%0^(&]P +M=&EO;B!W:71H('1H92!F=6QL('!A=&AN86UE('1O('1H90IA<'!R;W!R:6%T +M92!D:7)E8W1O<GDN(`H\+U`^"CQ0/E1H92!B<V1T87)?=&5S="!A;F0@8G-D +M8W!I;U]T97-T('!R;V=R86US(')U;B!B<V1T87(@;W(@8G-D8W!I;PIR97!E +M871E9&QY.R!T:&5Y(&YE960@=&AE(&9U;&P@<&%T:"!T;R!T:&4@87!P<F]P +M<FEA=&4@97AE8W5T86)L92X*06QT:&]U9V@@8G-D=&%R7W1E<W0@86YD(&)S +M9&-P:6]?=&5S="!A<F4@<W!E8VEF:6-A;&QY(&EN=&5N9&5D(&9O<@IT97-T +M:6YG(&)S9'1A<B!A;F0@8G-D8W!I;RP@=&AE>2!S:&]U;&0@8F4@=7-A8FQE +M(&9O<B!T97-T:6YG(&]T:&5R"G1A<B!A;F0@8W!I;R!P<F]G<F%M<RX@26X@ +M9F%C="P@<G5N;FEN9R!T:&5S92!T97-T('!R;V=R86US(&%G86EN<W0*;W1H +M97(@=&%R(&EM<&QE;65N=&%T:6]N<R!I<R!A(&=O;V0@=V%Y('1O('9E<FEF +M>2!T:&%T('1H92!T97-T"G!R;V=R86US('1H96US96QV97,@87)E('=O<FMI +M;F<@8V]R<F5C=&QY+B`*/"]0/@H\4#Y7:&5N(')U;BP@=&AE('1E<W0@<')O +M9W)A;7,@;W5T<'5T(&$@<')O9W)E<W,@;65S<V%G92!F;W(@96%C:`IT97-T +M+"!A;B!E<G)O<B!M97-S86=E(&9O<B!E86-H(&9A:6QE9"!A<W-E<G1I;VXL +M(&%N9"!A(&9I;F%L"G-U;6UA<GDZ(`H\+U`^"CQ04D4@0TQ!4U,](G=E<W1E +M<FXB/B9N8G-P.U)U;FYI;F<@=&5S=',@:6XZ("]T;7`O8G-D=&%R7W1E<W0N +M,C`P.2TP,BTQ-U0R,2XS,"XT,"TP,#`*)FYB<W`[4F5F97)E;F-E(&9I;&5S +M('=I;&P@8F4@<F5A9"!F<F]M.B`F;F)S<#L@)FYB<W`[+VAO;64O=&EM+VQI +M8F%R8VAI=F4O=')U;FLO=&%R+W1E<W0*)FYB<W`[4G5N;FEN9R!T97-T<R!O +M;CH@+VAO;64O=&EM+VQI8F%R8VAI=F4O=')U;FLO8G-D=&%R"B9N8G-P.T5X +M97)C:7-I;F<Z(&)S9'1A<B`R+C8N.3`P82`M(&QI8F%R8VAI=F4@,BXV+CDP +M,&$*)FYB<W`[,#H@=&5S=%\P"B9N8G-P.S$Z('1E<W1?8F%S:6,*)FYB<W`[ +M,CH@=&5S=%]C;W!Y"B9N8G-P.R!T97-T7V-O<'DN8SHQ-S$Z($%S<V5R=&EO +M;B!F86EL960Z($EN=',@;F]T(&5Q=6%L"B9N8G-P.R`F;F)S<#L@)FYB<W`[ +M(#`],`HF;F)S<#L@)FYB<W`[("9N8G-P.R!L<W1A="AN86UE,B`K(#,L("9A +M;7`[<W0R*3TM,0HF;F)S<#L@=&5S=%]C;W!Y+F,Z,3<Q.B!&86EL960@,C8T +M('1I;65S"B9N8G-P.S,Z('1E<W1?9V5T9&%T90HF;F)S<#LT.B!T97-T7VAE +M;'`*)FYB<W`[("9N8G-P.R`N+BX@;6]R92!O=71P=70@;VUI='1E9"`N+BX* +M)FYB<W`[,2!O9B`Q,R!T97-T<R!R97!O<G1E9"!F86EL=7)E<PHF;F)S<#L@ +M5&]T86P@;V8@,3`U,#DW(&%S<V5R=&EO;G,@8VAE8VME9"X*)FYB<W`[(%1O +M=&%L(&]F(#(V-"!A<W-E<G1I;VYS(&9A:6QE9"X*)FYB<W`[(%1O=&%L(&]F +M(#`@87-S97)T:6]N<R!S:VEP<&5D+CPO4%)%/CQ0/@I4:&4@:&5A9&5R(&QI +M;F5S(&AE<F4@<F5C;W)D.B`*/"]0/@H\54P^"@D\3$D^/%`@4U193$4](FUA +M<F=I;BUB;W1T;VTZ(#!I;B(^=&AE(&1I<F5C=&]R>2!T:&%T('=I;&P@8F4@ +M=7-E9`H)9F]R('-C<F%T8V@@9FEL97,@9'5R:6YG('1H92!T97-T+B!)9B!A +M('1E<W0@9F%I;',L('1H92!S8W)A=&-H"@EF:6QE<R!W:6QL(&)E(&QE9G0@ +M8F5H:6YD(&EN('1H:7,@9&ER96-T;W)Y(&9O<B!F=7)T:&5R(&1E8G5G9VEN +M9RX@"@D\+U`^"@D\3$D^/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ(#!I;B(^ +M5&AE(&1I<F5C=&]R>2!F<F]M('=H:6-H('1H90H)<F5F97)E;F-E(&9I;&5S +M('=I;&P@8F4@<F5A9"X@"@D\+U`^"@D\3$D^/%`@4U193$4](FUA<F=I;BUB +M;W1T;VTZ(#!I;B(^1F]R(&)S9'1A<E]T97-T(&%N9"!B<V1C<&EO7W1E<W0L +M"@ET:&4@9G5L;"!P871H('1O('1H92!E>&5C=71A8FQE(&)E:6YG(&5X97)C +M:7-E9"X@"@D\+U`^"@D\3$D^/%`^0F%S:6,@=F5R<VEO;B!I;F9O<FUA=&EO +M;B!A8F]U="!T:&4@=&%R9V5T+B`*"3PO4#X*/"]53#X*/%`^26X@=&AI<R!C +M87-E+"!T:&4@=')A:6QE<B!I;F1I8V%T97,@=&AA="!O;F4@=&5S="!F86EL +M960N($%S('EO=0IC86X@<V5E+"!T:&5R92!W87,@82!S:6YG;&4@87-S97)T +M:6]N(&EN('1H92!C;V1E('1H870@9F%I;&5D(#(V-`IT:6UE<RX@5&AE(&9I +M<G-T('1I;64@:70@9F%I;&5D+"!I="!W87,@8F5C875S92!A;B`\5%0@0TQ! +M4U,](G=E<W1E<FXB/FQS=&%T*"D\+U14/@IC86QL(')E='5R;F5D("TQ(&EN +M<W1E860@;V8@=&AE('IE<F\@=&AA="!W87,@97AP96-T960N(`H\+U`^"CQ( +M,2!#3$%34STB=V5S=&5R;B(^/$$@3D%-13TB0F%S:6-?=&5S=%]T97)M:6YO +M;&]G>2(^/"]!/D)A<VEC('1E<W0*=&5R;6EN;VQO9WD\+T@Q/@H\4#Y%86-H +M('1E<W0@<')O9W)A;2!C;VYS:7-T<R!O9B!A(&YU;6)E<B!O9B`F<75O=#MT +M97-T<R9Q=6]T.RX@16%C:`IT97-T(&AA<R!A(&YA;64@86YD(&ES(&EM<&QE +M;65N=&5D(&EN(&$@0R!S;W5R8V4@9FEL92!W:71H('1H92!S86UE"FYA;64@ +M87,@=&AE('1E<W0N(%1E<W1S('=O<FL@8GD@<&5R9F]R;6EN9R!S;VUE('-E +M<FEE<R!O9B!O<&5R871I;VYS"F%N9"!M86MI;F<@)G%U;W0[87-S97)T:6]N +M<R9Q=6]T.R!A8F]U="!T:&4@<F5S=6QT<RX@1F]R(&5X86UP;&4L"FUA;GD@ +M;V8@=&AE(&QI8F%R8VAI=F4@=&5S=',@;W!E;B!A;F0@<F5A9"!A;B!A<F-H +M:79E(&%N9"!A<W-E<G0@=&AA=`IP87)T:6-U;&%R(&]P97)A=&EO;G,@<W5C +M8V5E9&5D(&]R(&9A:6QE9"X@*%EE<RP@:70@:7,@;V9T96X*:6UP;W)T86YT +M('1O('9E<FEF>2!T:&%T(&EL;&5G86P@<F5Q=65S=',@9V5N97)A=&4@87!P +M<F]P<FEA=&4*97)R;W)S+BD@"CPO4#X*/%`^2&5R92!I<R!A('-O;65W:&%T +M(&5D:71E9"!E>&-E<G!T(&9R;VT@/%14($-,05-3/2)W97-T97)N(CYT97-T +M7V-O;7!A=%]Z:7`\+U14/BP*=VAI8V@@=F5R:69I97,@8V]M<&%T:6)I;&ET +M>2!W:71H('9A<FEO=7,@6DE0(&9O<FUA="!A<F-H:79E<SH@"CPO4#X*/%!2 +M12!#3$%34STB=V5S=&5R;B(^)FYB<W`[($1%1DE.15]415-4*'1E<W1?8V]M +M<&%T7WII<"D*)FYB<W`[('L*)FYB<W`[("9N8G-P.R`O*B`N+BX@<V5T=7`@ +M;VUI='1E9"`N+BX@*B\*)FYB<W`[("9N8G-P.R!A<W-E<G0H*&$@/2!A<F-H +M:79E7W)E861?;F5W*"DI("$]($Y53$PI.PHF;F)S<#L@)FYB<W`[(&%S<V5R +M=$5Q=6%L26YT*$%20TA)5D5?3TLL"B9N8G-P.R`F;F)S<#L@)FYB<W`[("9N +M8G-P.R!A<F-H:79E7W)E861?<W5P<&]R=%]C;VUP<F5S<VEO;E]A;&PH82DI +M.PHF;F)S<#L@)FYB<W`[(&%S<V5R=$5Q=6%L26YT*$%20TA)5D5?3TLL"B9N +M8G-P.R`F;F)S<#L@)FYB<W`[("9N8G-P.R!A<F-H:79E7W)E861?<W5P<&]R +M=%]F;W)M871?86QL*&$I*3L*)FYB<W`[("9N8G-P.R!E>'1R86-T7W)E9F5R +M96YC95]F:6QE*&YA;64I.PHF;F)S<#L@)FYB<W`[(&%S<V5R=$5Q=6%L26YT +M*$%20TA)5D5?3TLL"B9N8G-P.R`F;F)S<#L@)FYB<W`[("9N8G-P.R!A<F-H +M:79E7W)E861?;W!E;E]F:6QE;F%M92AA+"!N86UE+"`Q,#(T,"DI.PHF;F)S +M<#L@)FYB<W`[("9N8G-P.R\J(%)E860@9FER<W0@96YT<GDN("HO"B9N8G-P +M.R`F;F)S<#L@)FYB<W`[87-S97)T17%U86Q);G0H05)#2$E615]/2RP@87)C +M:&EV95]R96%D7VYE>'1?:&5A9&5R*&$L("9A;7`[864I*3L*)FYB<W`[("9N +M8G-P.R`F;F)S<#MA<W-E<G1%<75A;%-T<FEN9R@F<75O=#M-151!+4E.1B]- +M04Y)1D535"Y-1B9Q=6]T.RP@87)C:&EV95]E;G1R>5]P871H;F%M92AA92DI +M.SPO4%)%/CQ0/@I4:&4@/%14($-,05-3/2)W97-T97)N(CYA<W-E<G186%A8 +M/"]45#X@;6%C<F]S(&-H96-K('1H870@=&AE:7(*87)G=6UE;G1S('-A=&ES +E9GD@8V5R=&%I;B!C;VYD:73($7L/0!0`%XKPCP$````````````` +` +end diff --git a/libarchive/test/test_rar_multivolume_uncompressed_files.part03.rar.uu b/libarchive/test/test_rar_multivolume_uncompressed_files.part03.rar.uu new file mode 100644 index 00000000..027f0508 --- /dev/null +++ b/libarchive/test/test_rar_multivolume_uncompressed_files.part03.rar.uu @@ -0,0 +1,299 @@ +begin 644 - +M4F%R(1H'`!EZ<Q$`#0````````"P,W0CD%<`@3,``(].```#*23KD;M,-4$4 +M,"T`I($``'1E<W1D:7)<=&5S='-U8F1I<EQ,:6)A<F-H:79E061D:6YG5&5S +M=#(N:'1M;,#,,U\[0F-?.T)I;VYS+B!)9B!T:&4@87-S97)T:6]N(&9A:6QS +M+2UF;W(*97AA;7!L92P@:68@=&AE(&YA;64@;V8@=&AE(&9I<G-T(&5N=')Y +M(&ES(&YO=`HF<75O=#M-151!+4E.1B]-04Y)1D535"Y-1B9Q=6]T.RTM=&AE +M(&UA8W)O('=I;&P@<F5P;W)T('1H92!P<F]B;&5M+B`*/"]0/@H\4#Y4:&5R +M92!A<F4@='=O(&EM<&]R=&%N="!D:69F97)E;F-E<R!B971W965N('1H92`\ +M5%0@0TQ!4U,](G=E<W1E<FXB/F%S<V5R=%A86#PO5%0^"FUA8W)O<R!U<V5D +M(&EN('1H97-E('1E<W0@:&%R;F5S<V5S(&%N9"!T:&4@25-/($,@<W1A;F1A +M<F0@/%14($-,05-3/2)W97-T97)N(CYA<W-E<G0\+U14/@IM86-R;SH@1FER +M<W0L('1H97-E(&%S<V5R="!M86-R;W,@9&]N)W0@97AI="!O;B!F86EL=7)E +M+B!">2!D969A=6QT+`IT:&5Y(')E<&]R="!T:&4@9F%I;'5R92!A;F0@<F5T +M=7)N('IE<F\@*'1H92!#(&YO=&EO;B!O9B`F<75O=#MF86QS929Q=6]T.RDN +M"E-E8V]N9"P@=&AE<V4@;6%C<F]S(&EN8VQU9&4@=F%R:6%N=',@=&AA="!P +M97)F;W)M(&$@=F%R:65T>2!O9@IS<&5C:69I8R!T97-T<RX@5&AE<V4@<W!E +M8VEF:6,@=F5R<VEO;G,@*'-U8V@@87,@/%14($-,05-3/2)W97-T97)N(CYA +M<W-E<G1%<75A;$EN=#PO5%0^"F%N9"`\5%0@0TQ!4U,](G=E<W1E<FXB/F%S +M<V5R=$5Q=6%L4W1R:6YG/"]45#X@:6X@=&AE(&5X86UP;&4@86)O=F4I"F=E +M;F5R871E(&1E=&%I;&5D(&QO9R!M97-S86=E<R!O;B!F86EL=7)E+B!);B!P +M87)T:6-U;&%R+"!T:&5Y('!R:6YT"G1H92!V86QU92!O9B!B;W1H(&%R9W5M +M96YT<SL@=&AI<R!G<F5A=&QY('-I;7!L:69I97,@9&EA9VYO<VEN9PIF86EL +M=7)E<RX@"CPO4#X*/$@Q($-,05-3/2)W97-T97)N(CX\02!.04U%/2),:69E +M7V-Y8VQE7V]F7V%?=&5S="(^/"]!/DQI9F4@8WEC;&4@;V8*82!T97-T/"]( +M,3X*/%`^16%C:"!T97-T(')E<VED97,@:6X@82!#('-O=7)C92!F:6QE('=I +M=&@@=&AE('-A;64@;F%M92!A<R!T:&4*=&5S="X@5&AE('1E<W0@:71S96QF +M(&ES(&$@9G5N8W1I;VX@=&AA="!T86ME<R!N;R!A<F=U;65N=',N(%1H92!T +M97-T"FES(&1E8VQA<F5D('5S:6YG('1H92`\5%0@0TQ!4U,](G=E<W1E<FXB +M/D1%1DE.15]415-4*"D\+U14/B!M86-R;RX*5&AI<R!M86-R;R!S97)V97,@ +M8F]T:"!T;R!E;G-U<F4@=&AA="!T:&4@=&5S="!I<R!D96-L87)E9"!C;W)R +M96-T;'D*86YD(&%S(&$@;&%B96P@=&AA="!C86X@8F4@=7-E9"!T;R!L;V-A +M=&4@86QL(&1E9FEN960@=&5S=',N("A/;@I5;FEX+6QI:V4@<&QA=&9O<FUS +M+"!A('-I;7!L92`\5%0@0TQ!4U,](G=E<W1E<FXB/F=R97`\+U14/B!O<&5R +M871I;VX*:7,@=7-E9"!T;R!C;VYS=')U8W0@82!F:6QE(&-A;&QE9"`\5%0@ +M0TQ!4U,](G=E<W1E<FXB/FQI<W0N:#PO5%0^"G1H870@:&]L9',@=&AE(&YA +M;65S(&]F(&%L;"!O9B!T:&4@=&5S=',N(%1H:7,@;6%K97,@:70@=F5R>2!E +M87-Y('1O"F%D9"!N97<@=&5S=',N*2`*/"]0/@H\4#Y4:&4@=&5S="!H87)N +M97-S(&1E=&5R;6EN97,@=VAI8V@@=&5S=',@=&\@<G5N+B!)="!G;V5S('1H +M<F]U9V@*=&AE(&9O;&QO=VEN9R!S=&5P<R!W:&5N979E<B!I="!R=6YS(&$@ +M=&5S=#H@"CPO4#X*/%5,/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M +M.B`P:6XB/CQ35%))2T4^0VQO<V5S(&%L;"!F:6QE"@ED97-C<FEP=&]R<R!E +M>&-E<'0@9F]R('-T9&EN+"!S=&1O=70L(&%N9"!S=&1E<G(N/"]35%))2T4^ +M("A4:&ES"@ES8W)E=W,@=7`@;&EB8R!O;B!S;VUE('!L871F;W)M<R!S;R!H +M87,@8F5E;B!R96UO=F5D+BD@"@D\+U`^"@D\3$D^/%`@4U193$4](FUA<F=I +M;BUB;W1T;VTZ(#!I;B(^0W)E871E<R!A('1E;7!O<F%R>2!D:7)E8W1O<GD* +M"7=H;W-E(&YA;64@;6%T8VAE<R!T:&4@;F%M92!O9B!T:&4@=&5S="!A;F0@ +M<W=I=&-H97,@:6YT;R!T:&%T"@ED:7)E8W1O<GDN(`H)/"]0/@H)/$Q)/CQ0 +M(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB/E)E<V5T<R!T:&4@8W5R<F5N +M="!L;V-A;&4N(`H)/"]0/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M +M.B`P:6XB/D-A;&QS('1H92!T97-T(&9U;F-T:6]N+B`*"3PO4#X*"3Q,23X\ +M4"!35%E,13TB;6%R9VEN+6)O='1O;3H@,&EN(CY)9B!T:&5R92!W97)E(&YO +M(&%S<V5R=&EO;@H)9F%I;'5R97,L(&ET('=I;&P@<F5M;W9E('1H92!T96UP +M;W)A<GD@9&ER96-T;W)Y+B`H268@/%14($-,05-3/2)W97-T97)N(CXM:SPO +M5%0^"@EI<R!S<&5C:69I960L('1E;7!O<F%R>2!D:7)E8W1O<GD@87)E(&QE +M9G0@979E;B!I9B!T:&4@=&5S=`H)<W5C8V5E9',N*2`*"3PO4#X*"3Q,23X\ +M4#X\4U1224M%/DEF('1H97)E(&%R92!A;GD@;W!E;B!F:6QE(&1E<V-R:7!T +M;W)S(&]T:&5R('1H86X*"7-T9&EN+"!S=&1O=70L(&%N9"!S=&1E<G(L(&ET +M(')E<&]R=',@86X@97)R;W(N/"]35%))2T4^(%1E<W1S"@ES:&]U;&0@;F5V +M97(@;&5A=F4@;W!E;B!F:6QE(&1E<V-R:7!T;W)S+B`*"3PO4#X*/"]53#X* +M/%`^26X@<&%R=&EC=6QA<BP@=&5S=',@8V%N('-A9F5L>2!A<W-U;64@=&AA +M=#H@"CPO4#X*/%5,/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P +M:6XB/E1H92!C=7)R96YT(&1I<F5C=&]R>2!I<R!E;7!T>0H)=VAE;B!T:&4@ +M=&5S="!S=&%R=',N(`H)/"]0/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T +M=&]M.B`P:6XB/D%N>2!F:6QE<R!C<F5A=&5D(&EN('1H92!C=7)R96YT"@ED +M:7)E8W1O<GD@=VEL;"!B92!R96UO=F5D(&9O<B!Y;W4N(`H)/"]0/@H)/$Q) +M/CQ0/E1H92!C=7)R96YT(&QO8V%L92!I<R!T:&4@9&5F875L="`F<75O=#M# +M)G%U;W0[(&QO8V%L92X@"@D\+U`^"CPO54P^"CQ0/E1E<W1S('-H;W5L9#H@ +M"CPO4#X*/%5,/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB +M/E)E;&5A<V4@86QL(&UE;6]R>2X@5&AE('1E<W0*"7-U:71E<R!A<F4@;V-C +M87-I;VYA;&QY(')U;B!U;F1E<B!A(&UE;6]R>2!D96)U9V=E<B!T;R!D971E +M8W0@;&5A:W,*"6EN('1H92!L:6)A<F-H:79E(&QI8G)A<GDN(`H)/"]0/@H) +M/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB/D-L;W-E(&%L;"!O +M<&5N960@9FEL97,N(%1H:7,@:&5L<',*"71O(&-A=&-H(&9I;&4@9&5S8W)I +M<'1O<B!L96%K<R!I;B!L:6)A<F-H:79E+B`*"3PO4#X*"3Q,23X\4#Y.;W0@ +M<F5A9"!O<B!W<FET92!A8G-O;'5T92!P871H<RX@"@D\+U`^"CPO54P^"CQ( +M,2!#3$%34STB=V5S=&5R;B(^/$$@3D%-13TB4&QA=&9O<FU?=F%R:6%T:6]N +M(CX\+T$^4&QA=&9O<FT*=F%R:6%T:6]N/"](,3X*/%`^4V]M92!T97-T<R!A +M<F4@<W!E8VEF:6,@=&\@82!P87)T:6-U;&%R('!L871F;W)M+B!3=6-H('1E +M<W1S"G-H;W5L9"!U<V4@87!P<F]P<FEA=&4@<&QA=&9O<FTM<W!E8VEF:6,@ +M;6%C<F]S(&%S(&9O;&QO=W,Z(`H\+U`^"CQ04D4@0TQ!4U,](G=E<W1E<FXB +M/B-I9B!?7U!,051&3U)-"BXN+B!V87)I;W5S(&AE;'!E<B!F=6YC=&EO;G,@ +M+BXN"B-E;F1I9@I$149)3D5?5$535"AF;V]?<&QA=&9O<FTI"GL*(VEF(%]? +M4$Q!5$9/4DT*)FYB<W`[("9N8G-P.RXN+B!T97-T<R!A<R!U<W5A;"`N+BXN +M"B-E;'-E"B9N8G-P.R`F;F)S<#MS:VEP<&EN9R@F<75O=#MP;&%T9F]R;2US +M<&5C:69I8R!T97-T<R9Q=6]T.RD["B-E;F1I9@I]/"]04D4^/%`^"DEN('!A +M<G1I8W5L87(L(&YO=&4@=&AA="!A;&P@=&5S=',@87)E(&-O;7!I;&5D(&%N +M9"!R=6X@;VX@86QL"G!L871F;W)M<RX@"CPO4#X*/%`^36]S="!T97-T<R!A +M<F4@;F]T('!L871F;W)M+7-P96-I9FEC(&%N9"!W:6QL('1H=7,@96YD('5P +M(')U;FYI;F<*;VX@;6%N>2!D:69F97)E;G0@<&QA=&9O<FUS+B!);B!O<F1E +M<B!T;R!S:6UP;&EF>2!W<FET:6YG('-U8V@@=&5S=',L"G1R>2!T;R!U<V4@ +M<&QA=&9O<FTM:6YD97!E;F1E;G0@8V]D:6YG.B`*/"]0/@H\54P^"@D\3$D^ +M/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ(#!I;B(^57-E('-T9&EO(#Q45"!# +M3$%34STB=V5S=&5R;B(^9F]P96XH*3PO5%0^+`H)/%14($-,05-3/2)W97-T +M97)N(CYF=W)I=&4H*3PO5%0^+"`\5%0@0TQ!4U,](G=E<W1E<FXB/F9R96%D +M*"D\+U14/BP*"6%N9"`\5%0@0TQ!4U,](G=E<W1E<FXB/F9C;&]S92@I/"]4 +M5#X@=&\@86-C97-S(&9I;&5S('=H96YE=F5R"@EF96%S:6)L92X@"@D\+U`^ +M"@D\3$D^/%`^3&]O:R!T:')O=6=H('1H92`\5%0@0TQ!4U,](G=E<W1E<FXB +M/G1E<W0N:#PO5%0^(&AE861E<B!T;PH)<V5E(&EF('1H97)E(&%R92!A<W-E +M<G18>'@H*2!F=6YC=&EO;G,@=&AA="!Y;W4@8V%N('5S92X@5&AE<F4G<R!A +M"@EL:7-T(&]F('1H92!M;W)E('!O<'5L87(@;VYE<R!B96QO=RP@8G5T(&YE +M=R!O;F5S(&%R92!O9G1E;B!A9&1E9"X@"@D\+U`^"CPO54P^"CQ(,2!#3$%3 +M4STB=V5S=&5R;B(^/$$@3D%-13TB07-S97)T7VUA8W)O<R(^/"]!/D%S<V5R +M="!M86-R;W,\+T@Q/@H\4#Y4:&4@9F]L;&]W:6YG(&ES(&$@;F5C97-S87)I +M;'D@:6YC;VUP;&5T92!L:7-T(&]F(&%S<V5R="!F=6YC=&EO;G,*879A:6QA +M8FQE('1O('1E<W1S.B`*/"]0/@H\54P^"@D\3$D^/%`@4U193$4](FUA<F=I +M;BUB;W1T;VTZ(#!I;B(^0F%S:6,@97%U86QI='DZ(#Q45"!#3$%34STB=V5S +M=&5R;B(^87-S97)T17%U86Q);G0\+U14/BP*"3Q45"!#3$%34STB=V5S=&5R +M;B(^87-S97)T17%U86Q3=')I;F<\+U14/BP@/%14($-,05-3/2)W97-T97)N +M(CYA<W-E<G1%<75A;$UE;3PO5%0^"@D)/"]0/@H)/$Q)/CQ0(%-464Q%/2)M +M87)G:6XM8F]T=&]M.B`P:6XB/D9I;&4@8W)E871I;VXZ(#Q45"!#3$%34STB +M=V5S=&5R;B(^87-S97)T36%K949I;&4\+U14/BP*"3Q45"!#3$%34STB=V5S +M=&5R;B(^87-S97)T36%K95-Y;6QI;FL\+U14/BP@/%14($-,05-3/2)W97-T +M97)N(CYA<W-E<G1-86ME2&%R9&QI;FL\+U14/BP*"3Q45"!#3$%34STB=V5S +M=&5R;B(^87-S97)T36%K941I<CPO5%0^(`H)/"]0/@H)/$Q)/CQ0(%-464Q% +M/2)M87)G:6XM8F]T=&]M.B`P:6XB/D9I;&4@=&5S=',Z(#Q45"!#3$%34STB +M=V5S=&5R;B(^87-S97)T27-296<\+U14/BP*"3Q45"!#3$%34STB=V5S=&5R +M;B(^87-S97)T27-$:7(\+U14/BP@/%14($-,05-3/2)W97-T97)N(CYA<W-E +M<G1)<U-Y;6QI;FL\+U14/BP*"3Q45"!#3$%34STB=V5S=&5R;B(^87-S97)T +M1FEL95-I>F4\+U14/BP@/%14($-,05-3/2)W97-T97)N(CYA<W-E<G1&:6QE +M3FQI;FMS/"]45#XL"@D\5%0@0TQ!4U,](G=E<W1E<FXB/F%S<V5R=$9I;&5- +M=&EM93PO5%0^(`H)/"]0/@H)/$Q)/CQ0/D9I;&4@8V]N=&5N=',Z(#Q45"!# +M3$%34STB=V5S=&5R;B(^87-S97)T1FEL945M<'1Y/"]45#XL"@D\5%0@0TQ! +M4U,](G=E<W1E<FXB/F%S<V5R=$9I;&5.;VY%;7!T>3PO5%0^+"`\5%0@0TQ! +M4U,](G=E<W1E<FXB/F%S<V5R=$9I;&5#;VYT96YT<SPO5%0^+`H)/%14($-, +M05-3/2)W97-T97)N(CYA<W-E<G1497AT1FEL94-O;G1E;G1S/"]45#X@"@D\ +M+U`^"CPO54P^"CQ(,2!#3$%34STB=V5S=&5R;B(^/$$@3D%-13TB4F5F97)E +M;F-E7T9I;&5S(CX\+T$^4F5F97)E;F-E($9I;&5S/"](,3X*/%`^36%N>2!T +M97-T<R!R97%U:7)E(')E861I;F<@82!P<F4M8V]N<W1R=6-T960@<F5F97)E +M;F-E(&9I;&4N(%-U8V@*9FEL97,@87)E('-T;W)E9"!W:71H('1H92!S;W5R +M8V4@8V]D92!F;W(@=&AE(&%S<V]C:6%T960@=&5S="!S=6ET92X*4F5F97)E +M;F-E(&9I;&5S(&%R92!N86UE9"!A8V-O<F1I;F<@=&\@=&AE('1E<W0@86YD +M(&UU<W0@8F4@=75E;F-O9&5D"G1O(&)E(&-H96-K960@:6YT;R!S;W5R8V4@ +M8V]N=')O;"X@"CPO4#X*/%`^1F]R(&5X86UP;&4L(&EF('EO=2!N965D(&$@ +M<F5F97)E;F-E('1A<B!A<F-H:79E('1O('5S92!W:71H"CQ45"!#3$%34STB +M=V5S=&5R;B(^=&5S=%]F;V\\+U14/BP@=&AE(&9I;&4@<VAO=6QD(&)E(&YA +M;65D"CQ45"!#3$%34STB=V5S=&5R;B(^=&5S=%]F;V\N=&%R/"]45#X@86YD +M('-T;W)E9"!I;B!S;W5R8V4@8V]N=')O;"!A<PH\5%0@0TQ!4U,](G=E<W1E +M<FXB/G1E<W1?9F]O+G1A<BYU=3PO5%0^+B`*/"]0/@H\4#Y7:71H:6X@=&AE +M('1E<W0@8V]D92P@>6]U(&-A;B!R96-O=F5R('1H92!R969E<F5N8V4@9FEL +M92!W:71H.B`*/"]0/@H\4%)%($-,05-3/2)W97-T97)N(B!35%E,13TB;6%R +M9VEN+6)O='1O;3H@,"XR:6XB/B9N8G-P.R`F;F)S<#L@97AT<F%C=%]R969E +M<F5N8V5?9FEL92@F<75O=#MT97-T7V9O;RYT87(F<75O=#LI.SPO4%)%/CQ0 +M/@I4:&4@/%14($-,05-3/2)W97-T97)N(CYE>'1R86-T7W)E9F5R96YC95]F +M:6QE*"D\+U14/B!F=6YC=&EO;B!W:6QL"G5U9&5C;V1E('1H92!R97%U97-T +M960@9FEL92!A;F0@<'5T('1H92!R97-U;'0@:6X@=&AE(&-U<G)E;G0*9&ER +M96-T;W)Y+B`*/"]0/@H\4#Y,;V]K(&%T(#Q45"!#3$%34STB=V5S=&5R;B(^ +M=&5S=%]R96%D7V9O<FUA=%]C<&EO7V)I;E]B92YC/"]45#X*9F]R(&$@<VEM +M<&QE(&5X86UP;&4@;V8@=&AI<R!U<V%G92X@"CPO4#X*/%`^02!F97<@;V8@ +M=&AE(&]L9&5R('1E<W1S('-T;W)E(')E9F5R96YC92!D871A('=I=&AI;B!T +M:&4@<V]U<F-E"F-O9&4@87,@82!H97@M96YC;V1E9"!A<G)A>2!O9B!C:&%R +M86-T97)S+B!4:&ES('=A<R!C;VUM;VX@8F5F;W)E"CQ45"!#3$%34STB=V5S +M=&5R;B(^97AT<F%C=%]R969E<F5N8V5?9FEL92@I/"]45#X@=V%S(&%D9&5D +M(&%N9"!I<PIN;W0@<F5C;VUM96YD960@9F]R(&YE=R!C;V1E+B`*/"]0/@H\ +M2#$@0TQ!4U,](G=E<W1E<FXB/CQ!($Y!344](D1O<U]A;F1?1&]N=',B/CPO +M03Y$;W,@86YD($1O;G1S/"](,3X*/%5,/@H)/$Q)/CQ0(%-464Q%/2)M87)G +M:6XM8F]T=&]M.B`P:6XB/D1/('5S92!A<W-E<G1S(&QI8F5R86QL>2X@270G +M<PH)8V]M;6]N('1O(&AA=F4@86X@87-S97)T(&]N(&%L;6]S="!E=F5R>2!L +M:6YE+B`*"3PO4#X*"3Q,23X\4"!35%E,13TB;6%R9VEN+6)O='1O;3H@,&EN +M(CY$3R!U<V4@87-S97)T17%U86Q);G0L"@EA<W-E<G1%<75A;%-T<FEN9RP@ +M87-S97)T17%U86Q-96T@=&\@=&5S="!E<75A;&ET>2!I;G-T96%D(&]F('!L +M86EN"@EA<W-E<G0H*3L@=&AE('-P96-I86QI>F5D(&9O<FUS(&=I=F4@82!L +M;W0@;6]R92!I;F9O<FUA=&EO;B!O;B!A"@EF86EL=7)E+B`*"3PO4#X*"3Q, +M23X\4"!35%E,13TB;6%R9VEN+6)O='1O;3H@,&EN(CY$3R!T97-T('EO=7(@ +M=&5S=',[(&5X<&5R:6UE;G0@8GD*"6-H86YG:6YG(&$@<&EE8V4@;V8@8V]D +M92!A;F0@;6%K92!S=7)E('EO=7(@=&5S="!F86EL<RX@268@>6]U('1H:6YK +M"@EY;W4G=F4@9F]U;F0@82!B=6<L('=E(')E8V]M;65N9"!W<FET:6YG('1H +M92!T97-T(&9I<G-T+"!M86ME('-U<F4*"71H92!T97-T(&9A:6QS+"!T:&5N +M(&9I>&EN9R!T:&4@8G5G+B`*"3PO4#X*"3Q,23X\4"!35%E,13TB;6%R9VEN +M+6)O='1O;3H@,&EN(CY$3R!R=6X@86QL(&]F('1H92!T97-T<R!B969O<F4* +M"7-U8FUI='1I;F<@82!C:&%N9V4N($1E<&5N9&EN9R!O;B!Y;W5R(&)U:6QD +M(&5N=FER;VYM96YT+"`\5%0@0TQ!4U,](G=E<W1E<FXB/FUA:V4*"71E<W0\ +M+U14/B!O<B`\5%0@0TQ!4U,](G=E<W1E<FXB/FUA:V4@8VAE8VL\+U14/B!W +M:6QL('5S=6%L;'D@<G5N"@EA;&P@;V8@=&AE('1E<W1S+B`*"3PO4#X*"3Q, +M23X\4"!35%E,13TB;6%R9VEN+6)O='1O;3H@,&EN(CY$3TXG5"!R96QY(&]N +M(#Q45"!#3$%34STB=V5S=&5R;B(^2$%615\\+U14/@H);6%C<F]S(&9R;VT@ +M8V]N9FEG+F@N("A)9B!T:&4@=&5S=',@=7-E('1H92!S86UE(#Q45"!#3$%3 +M4STB=V5S=&5R;B(^2$%615\\+U14/@H);6%C<F]S(&%S('1H92!C;V1E(&)E +M:6YG('1E<W1E9"!T:&5N(&-O;F9I9W5R871I;VX@<')O8FQE;7,@=VEL;"!B +M90H)8V]V97)E9"!U<"XI(`H)/"]0/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM +M8F]T=&]M.B`P:6XB/D1/('5S92!R=6YT:6UE('1E<W1S(&9O<B!P;&%T9F]R +M;0H)9F5A='5R97,N($9O<B!E>&%M<&QE+"!T:&4@04-,('1E<W1S('1R>2!T +M;R!S970@86X@04-,(&]N(&$@9FEL92!A;F0*"7)E860@:70@8F%C:R!T;R!D +M971E<FUI;F4@:68@04-,('-U<'!O<G0@:7,@879A:6QA8FQE+"!T:&5N('1H +M97D*"65X97)C:7-E('1H92!L:6)A<F-H:79E($%#3"!H86YD;&EN9RX@"@D\ +M+U`^"@D\3$D^/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ(#!I;B(^1$\@;&]O +M:R!A="!E>&ES=&EN9R!T97-T<RX@3V9T96XL"@EA(&)U9R!C86X@8F4@=&5S +M=&5D(&)Y(&%D9&EN9R!J=7-T(&$@8V]U<&QE(&]F(&%S<V5R=',@=&\@86X* +M"65X:7-T:6YG('1E<W0@:6YS=&5A9"!O9B!W<FET:6YG(&$@;F5W(&]N92X@ +M"@D\+U`^"@D\3$D^/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ(#!I;B(^1$\@ +M:6UP<F]V92!E>&ES=&EN9R!T97-T<RX@26X*"7!A<G1I8W5L87(L(&EF('EO +M=2!S964@82!T97-T(&9A:6QU<F4@=&AA="!I<R!H87)D('1O('5N9&5R<W1A +M;F0L"@EC;VYS:61E<B!A9&1I;F<@82!F86EL=7)E*"D@;65S<V%G92!O<B!C +M;VUM96YT<R!S;R!T:&4@;F5X="!P97)S;VX*"7=I;&P@:&%V92!A;B!E87-I +M97(@=&EM92X@"@D\+U`^"@D\3$D^/%`^1$\@87-K(&]N('1H92!M86EL:6YG +M(&QI<W1S(&EF('EO=2!H879E('%U97-T:6]N<RX@4V]M92!T97-T<PH)87)E +M(&)E='1E<B!W<FET=&5N('1H86X@;W1H97)S+B`*"3PO4#X*/"]53#X*/$@Q +M($-,05-3/2)W97-T97)N(CX\02!.04U%/2)3;VUE7V5X86UP;&5S7V]F7W1E +M<W1S(CX\+T$^4V]M90IE>&%M<&QE<R!O9B!T97-T<SPO2#$^"CQ(,B!#3$%3 +M4STB=V5S=&5R;B(^/$$@3D%-13TB3&EB87)C:&EV95]R96%D7W1E<W1S(CX\ +M+T$^3&EB87)C:&EV90IR96%D('1E<W1S/"](,CX*/%`^5&AE<F4@87)E('%U +M:71E(&$@9F5W(')E860@=&5S=',@=&AA="!S:6UP;'D@<F5A9"!A('!R92UB +M=6EL=`II;G!U="!F:6QE(&%N9"!V97)I9GD@=&AE(')E<W5L=',N(%1H97-E +M('5S92`\5%0@0TQ!4U,](G=E<W1E<FXB/F5X=')A8W1?<F5F97)E;F-E7V9I +M;&4H*3PO5%0^"G1O(&1E8V]D92!A('5U96YC;V1E9"!I;G!U="!F:6QE+"!T +M:&5N(&]P96X@=&AA="!F:6QE('=I=&@@;&EB87)C:&EV90IA;F0@=F5R:69Y +M('1H92!R97-U;'1S+B!-;W-T(&]F('1H97-E(&%R92!P<F5T='D@<W1R86EG +M:'1F;W)W87)D+B`*/"]0/@H\2#(@0TQ!4U,](G=E<W1E<FXB/CQ!($Y!344] +M(DQI8F%R8VAI=F5?<F5A9"]W<FET95]T97-T<R(^/"]!/DQI8F%R8VAI=F4* +M<F5A9"]W<FET92!T97-T<SPO2#(^"CQ0/DUO<W0@;V8@=&AE('=R:71E('1E +M<W1S(')E86QL>2!J=7-T('9E<FEF>2!T:&%T(&QI8F%R8VAI=F4@8V%N"G)E +M860@=VAA="!I="!W<FET97,N(%1H97-E(&=E;F5R86QL>2!U<V4@=&AE(&UE +M;6]R>2!I;G1E<F9A8V5S+B!4:&5Y"F9E960@87)C:&EV92!E;G1R:65S(&EN +M=&\@=&AE('=R:71E<B!T;R!C<F5A=&4@86X@87)C:&EV92!I;B!M96UO<GD* +M86YD('1H96X@;W!E;B!T:&4@;65M;W)Y(&%G86EN('1O(')E860@=&AE(&1A +M=&$@8F%C:R!A;F0@=F5R:69Y('1H870*:70@:7,@=&AE('-A;64N(`H\+U`^ +M"CQ(,B!#3$%34STB=V5S=&5R;B(^/$$@3D%-13TB3&EB87)C:&EV95]W<FET +M95]V86QI9&%T;W)S(CX\+T$^3&EB87)C:&EV90IW<FET92!V86QI9&%T;W)S +M/"](,CX*/%`^02!F97<@=W)I=&4@=&5S=',@=W)I=&4@86X@87)C:&EV92!I +M;G1O(&UE;6]R>2!A;F0@=&AE;B!I;G-P96-T"G1H92!A8W1U86P@8GET97,@ +M=&\@=F5R:69Y('1H870@=&AE(&%R8VAI=F4@=V%S(&-R96%T960@8V]R<F5C +M=&QY+@I4:&5S92!T97-T<R!A<F4@;FEC92!T;R!H879E(&)U="!A<F4@=&5D +M:6]U<R!T;R!B=6EL9"X@"CPO4#X*/%`^5&AE<F4@87)E(&%L<V\@82!C;W5P +M;&4@;V8@<W5C:"!V86QI9&%T;W)S(&9O<B!B<V1T87(@86YD(&)S9&-P:6\N +M"E1H97-E(&%R92!V97)Y('1R:6-K>2!S:6YC92!T:&4@97AA8W0@9&%T82!C +M;VYT86EN<R!V86QU97,@=&AA="!T:&4*=&5S="!C86YN;W0@8V]M<&QE=&5L +M>2!C;VYT<F]L("AS=6-H(&%S('1H92!C=7)R96YT('1I;64@;W(*=7-E<FYA +M;64I+B`*/"]0/@H\2#(@0TQ!4U,](G=E<W1E<FXB/CQ!($Y!344](D1I<VM? +M=&5S=',B/CPO03Y$:7-K('1E<W1S/"](,CX*/%`^3&EB87)C:&EV92=S(&1I +M<VL@22]/($%027,L(&%S('=E;&P@87,@8G-D=&%R(&%N9"!B<V1C<&EO+"!N +M965D('1O"F]P97)A=&4@8GD@=F5R:69Y:6YG(&9I;&5S(&]N(&1I<VLN(%1O +M(&UA:V4@=&AI<R!E87-I97(L('1H92!T97-T"F9R86UE=V]R:R!N;W<@:&%S +M(&$@;&%R9V4@;G5M8F5R(&]F(&%S<V5R=&EO;G,@=&\@=F5R:69Y('1I;65S +M=&%M<',L"G!E<FUI<W-I;VYS+"!A;F0@;W1H97(@8F%S:6,@9FEL92!D871A +M+B!4:&5S92!A<W-E<G1I;VYS('5S90IA<'!R;W!R:6%T92!S>7-T96T@8V%L +M;',@9F]R(&5A8V@@<&QA=&9O<FT[(&YE=R!T97-T<R!S:&]U;&0@=')Y('1O +M"F%V;VED('5S:6YG(#Q45"!#3$%34STB=V5S=&5R;B(^<W1A="@I/"]45#XL +M('=H:6-H(&ES(&YO="!U;FEF;W)M;'D*879A:6QA8FQE+B`*/"]0/@H\2#(@ +M0TQ!4U,](G=E<W1E<FXB/CQ!($Y!344](D9U>GI?=&5S=&5R(CX\+T$^1G5Z +M>B!T97-T97(\+T@R/@H\4#Y4:&4@9G5Z>B!T97-T97(@:7,@;VYE(&]F('1H +M92!F97<@=&5S=',@=&AA="!D;V5S(&YO="!A9V=R97-S:79E;'D*=7-E(&%S +M<V5R=&EO;G,N($ET<R!P=7)P;W-E(&ES('1O('1R>2!A;F0@8W)A<V@@;&EB +M87)C:&EV92!B>2!F965D:6YG"FET(&EN<'5T('1H870@:7,@<VQI9VAT;'D@ +M9&%M86=E9"X@*%)E;65M8F5R('1H870@;&EB87)C:&EV92!D;V5S"FAA=F4@ +M<V]M92!F86EL<V%F92!C;V1E('1H870@9&5L:6)E<F%T96QY(&%B;W)T<R!T +M:&4@96YT:7)E('!R;V=R86T*:68@8V5R=&%I;B!I;G9A<FEA;G1S(&%R92!V +M:6]L871E9"XI(`H\+U`^"CQ0/E-I;F-E(&$@9G5Z>B!F86EL=7)E(&-A=7-E +M<R!A(&-R87-H+"!I="=S(&EM<&]S<VEB;&4@=&\@<F5P;W)T('1H90IE<G)O +M<B!T;R!T:&4@8V]N<V]L92P@<V\@=&AE(&9U>GH@=&5S=&5R(&EN<W1E860@ +M9V5N97)A=&5S(&$*<F%N9&]M;'DM9&%M86=E9"!F:6QE+"!S879E<R!T:&%T +M(&9I;&4@=&\@9&ES:RP@=&AE;B!R=6YS('1H92!F:6QE"G1H<F]U9V@@;&EB +M87)C:&EV92!T;R!T<GD@=&\@<')O=F]K92!A(&-R87-H+B!)9B!L:6)A<F-H +M:79E(&-R87-H97,*=&AE(&5N=&ER92!T97-T97(L('1H92!I;G!U="!T:&%T +M(&-A=7-E9"!T:&4@8W)A<V@@=VEL;"!B92!A=F%I;&%B;&4*;VX@9&ES:R!F +M;W(@9G5R=&AE<B!A;F%L>7-I<RX@"CPO4#X*/%`^06QT:&]U9V@@:70@:7,@ +M=6YU<W5A;"!F;W(@82!T97-T('!R;V=R86T@=&\@=7-E(')A;F1O;2!I;G!U +M="P@=&AE"F9U>GH@=&5S=&5R(&AA<R!P<F]V96X@<75I=&4@=7-E9G5L(&%T +M('5N8V]V97)I;F<@<&]O<B!E<G)O<@IH86YD;&EN9RX@56YF;W)T=6YA=&5L +M>2P@=&AE(&YE960@=&\@=W)I=&4@=&AE(&1A=&$@=&\@9&ES:R!B969O<F4* +M96%C:"!T97-T(&ES(&$@<VEG;FEF:6-A;G0@<&5R9F]R;6%N8V4@:7-S=64N +M(`H\+U`^"CQ(,B!#3$%34STB=V5S=&5R;B(^/$$@3D%-13TB3&%R9V5?=&%R +M7W1E<W1E<B(^/"]!/DQA<F=E('1A<B!T97-T97(\+T@R/@H\4#Y4:&4@;&%R +M9V4@=&%R('1E<W1E<B!A='1E;7!T<R!T;R!E>&5R8VES92!B;W5N9&%R>2!C +M87-E<R!W:71H('9E<GD*;&%R9V4@96YT<FEE<RP@=7`@=&\@,2!T97)A8GET +M92X@3V8@8V]U<G-E+"!W<FET:6YG(&$@,2!T97)A8GET90IE;G1R>2!T;R!A +M;B!U;F-O;7!R97-S960@87)C:&EV92!O;B!D:7-K(&]R(&UE;6]R>2!I<R!U +M;F%C8V5P=&%B;&4L"F)O=&@@9F]R('!E<F9O<FUA;F-E(&%N9"!S<&%C92!R +M96%S;VYS+B!%=F5N(&=Z:7`@;W(@8GII<#(*8V]M<')E<W-I;VX@=V]N)W0@ +M:&5L<#L@86QT:&]U9V@@<VUA;&QE<BP@=&AE(&]U='!U="!I<R!S=&EL;"!L +M87)G90IA;F0@=&AE('1I;64@;F5E9&5D('1O(&-O;7!R97-S('-U8V@@82!L +M87)G92!A;6]U;G0@;V8@9&%T82!I<PIP<F]H:6)I=&EV92X@4V\@=&AE(&QA +M<F=E('1A<B!T97-T97(@=7-E<R!A('1R:6-K+B`*/"]0/@H\4#Y296UE;6)E +M<B!T:&%T(&%N('5N8V]M<')E<W-E9"!T87(@87)C:&EV92!C;VYS:7-T<R!O +M9B!A;'1E<FYA=&EN9PIH96%D97)S(&%N9"!B;V1I97,N($EF('1H92!B;V1I +M97,@8V]N<VES="!E;G1I<F5L>2!O9B!Z97)O(&)Y=&5S+`IT:&5N(&%L;"!T +M:&%T)W,@;F5E9&5D('1O(')E8V]N<W1R=6-T('1H92!A<F-H:79E(&ES('1O +M(')E8V]R9"!T:&4*<F5L871I=F5L>2!S;6%L;"!H96%D97)S(&%N9"!S=&]R +M92!A(&-O=6YT(&]F(&5A8V@@8V]N=&EG=6]U<R!B;&]C:PIO9B!Z97)O<RX@ +M5&AI<R!S:6UP;&4@)G%U;W0[<G5N+6QE;F=T:"!E;F-O9&EN9R9Q=6]T.R!I +M<R!V97)Y"F5F9F5C=&EV92P@8V]M<')E<W-I;F<@82!S86UP;&4@87)C:&EV +M92!W:71H(&$@9&]Z96X@96YT<FEE<R!D;W=N('1O"FIU<W0@82!F97<@:VEL +M;V)Y=&5S+"!E=F5N(&EF('1H;W-E(&5N=')I97,@<F%N9V4@=7`@=&\@,51" +M+B`*/"]0/@H\4#Y">2!W<FET:6YG(&$@8W5S=&]M($DO3R!L87EE<B!T:&%T +M(&EM<&QE;65N=',@<W5C:"!C;VUP<F5S<VEO;BP@=V4*8V%N('=R:71E('9E +M<GD@;&%R9V4@96YT<FEE<R!T:')O=6=H(&QI8F%R8VAI=F4@=&AE;B!R96%D +M('1H96T@8F%C:PIA;F0@=F5R:69Y('1H870@;&EB87)C:&EV92!C;W)R96-T +M;'D@:&%N9&QE<R!A;&P@;V8@=&AE(&)O=6YD87)Y"F-A<V5S+B`*/"]0/@H\ +M4#Y/9B!C;W5R<V4L(&5V96X@<V-A;FYI;F<@;W5T<'5T('1O(&1E=&5R;6EN +M92!Z97)O(&)L;V-K<R!C86X@=&%K90IQ=6ET92!A('=H:6QE+"!S;R!T:&4@ +M;&%R9V4@=&%R('1E<W1E<B!M86ME<R!O;F4@;6]R92!O<'1I;6EZ871I;VXZ +M"DQI8F%R8VAI=F4@:7,@)G%U;W0[;6]S=&QY)G%U;W0[('IE<F\M8V]P>2X@ +M5VAE;B!Y;W4@9VEV92!I="!A(&QA<F=E"F)L;V-K('1O('=R:71E('1O(&%N +M(&5N=')Y(&)O9'DL(&ET('=I;&P@<&%S<R!P;VEN=&5R<R!S=')A:6=H=`IT +M:')O=6=H('1O('1H92!O=71P=70@<F]U=&EN92P@97AC97!T(&EN('1H;W-E +M(&-A<V5S('=H97)E(&ET(&UU<W0*8V]P>2!D871A('1O(&-O<G)E8W1L>2!B +M=6EL9"!B;&]C:W,N(%1H92!L87)G92!T87(@=&5S=&5R('1A:V5S"F%D=F%N +M=&%G92!O9B!T:&ES('1O('%U:6-K;'D@9&5T96-T('=H96X@82!B;&]C:R!B +E96EN9R!W<FET=&5N(&]U=""\'GL/0!0``#MMG`(````````````` +` +end diff --git a/libarchive/test/test_rar_multivolume_uncompressed_files.part04.rar.uu b/libarchive/test/test_rar_multivolume_uncompressed_files.part04.rar.uu new file mode 100644 index 00000000..be9a921b --- /dev/null +++ b/libarchive/test/test_rar_multivolume_uncompressed_files.part04.rar.uu @@ -0,0 +1,299 @@ +begin 644 - +M4F%R(1H'`!EZ<Q$`#0````````!K>G0AD%<`W`(``(].```#8Z8%7KM,-4$4 +M,"T`I($``'1E<W1D:7)<=&5S='-U8F1I<EQ,:6)A<F-H:79E061D:6YG5&5S +M=#(N:'1M;,#,,U\[0F-?.T)B>0IT:&4@87)C:&EV92!W<FET97(@:7,@=&AE +M('-A;64@87,@<V]M92!O9B!T:&4@9&%T82!T:&%T('=A<R!G:79E;B!B>0IT +M:&4@=&5S="!A<R!T:&4@96YT<GD@8F]D>2P@86YD('-I;6EL87)L>2!W:&5N +M(')E861I;F<@=&AE(&%R8VAI=F4*8F%C:RX@"CPO4#X*/%`^5&%K96X@=&]G +M971H97(L('1H97-E('1R:6-K<R!A;&QO=R!T:&4@;&%R9V4@=&%R('=R:71E +M<B!T;R!T97-T"F9O<B!I<W-U97,@<W5C:"!A<R!P<F]P97(@<W1O<F%G92!O +M9B!V97)Y(&QA<F=E(&9I;&4@<VEZ97,@*'1A<B!F:6QE<PIS=7!P;W)T('-E +M=F5R86P@9&EF9F5R96YT('=A>7,@=&\@<W1O<F4@9FEL92!S:7IE<R!W:&EC +M:"!T<F%D92!O9F8*<&]R=&%B:6QI='D@=F5R<W5S(')A;F=E.R!L:6)A<F-H +M:79E('1R:65S('1O('5S92!T:&4@;6]S="!P;W)T86)L90IO;F4@:70@8V%N +M(&9O<B!E86-H(&5N=')Y*2!A;F0@:6YT96=E<B!O=F5R9FQO=R`H5VEN9&]W +M<R`S,BUB:70@/%14($-,05-3/2)W97-T97)N(CYO9F9?=#PO5%0^"F)R;VME +M('1H92!L87)G92!T87(@=&5S="!A;F0@;&5D(&QI8F%R8VAI=F4@=&\@;6%K +M92!H96%V:65R('5S92!O9@H\5%0@0TQ!4U,](G=E<W1E<FXB/FEN=#8T7W0\ +M+U14/B!I;G1E<FYA;&QY*2!I;B!A('1E<W0@=&AA="!R=6YS(&EN"G5N9&5R +M(#$O-"!S96-O;F0N(`H\+U`^"CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P +M:6XB/CQ"4CX*/"]0/@H\+T)/1%D^"CPO2%1-3#Y8>70BD$0`83```(].```# +MC+J$FKM,-4$4,!H`I($``$QI8F%R8VAI=F5!9&1I;F=497-T,BYH=&ULP,P) +M7SM",E\[0CPA1$]#5%E012!(5$U,(%!50DQ)0R`B+2\O5S-#+R]$5$0@2%1- +M3"`T+C`@5')A;G-I=&EO;F%L+R]%3B(^"CQ(5$U,/@H\2$5!1#X*"3Q-151! +M($A45%`M15%5258](D-/3E1%3E0M5%E012(@0T].5$5.5#TB=&5X="]H=&UL +M.R!C:&%R<V5T/75T9BTX(CX*"3Q4251,13X\+U1)5$Q%/@H)/$U%5$$@3D%- +M13TB1T5.15)!5$]2(B!#3TY414Y4/2),:6)R94]F9FEC92`S+C,@("A5;FEX +M*2(^"@D\345402!.04U%/2)#4D5!5$5$(B!#3TY414Y4/2(R,#$Q,#8R-CLR +M,C(S-3$P,"(^"@D\345402!.04U%/2)#2$%.1T5$(B!#3TY414Y4/2(R,#$Q +M,#8R-CLR,C(U-#4P,"(^"@D\4U193$4@5%E013TB=&5X="]C<W,B/@H)/"$M +M+0H)"4!P86=E('L@;6%R9VEN.B`P+C<Y:6X@?0H)"5`@>R!M87)G:6XM8F]T +M=&]M.B`P+C`X:6X@?0H)"4@Q('L@;6%R9VEN+6)O='1O;3H@,"XP.&EN('T* +M"0E(,2YW97-T97)N('L@9F]N="UF86UI;'DZ("),:6)E<F%T:6]N(%-E<FEF +M(BP@<V5R:68@?0H)"4@Q+F-J:R![(&9O;G0M9F%M:6QY.B`B0FET<W1R96%M +M(%9E<F$@4V%N<R(@?0H)"4@Q+F-T;"![(&9O;G0M9F%M:6QY.B`B1G)E95-A +M;G,B('T*"0E04D4N8VIK('L@9F]N="UF86UI;'DZ(")":71S=')E86T@5F5R +M82!386YS(BP@;6]N;W-P86-E('T*"0E(,B![(&UA<F=I;BUB;W1T;VTZ(#`N +M,#AI;B!]"@D)2#(N8W1L('L@9F]N="UF86UI;'DZ(")&<F5E4V%N<R(@?0H) +M"514+F-J:R![(&9O;G0M9F%M:6QY.B`B0FET<W1R96%M(%9E<F$@4V%N<R(L +M(&UO;F]S<&%C92!]"@DM+3X*"3PO4U193$4^"CPO2$5!1#X*/$)/1%D@3$%. +M1STB96XM55,B($1)4CTB3%12(CX*/$@Q($-,05-3/2)W97-T97)N(CY);G1R +M;V1U8W1I;VX\+T@Q/@H\4#Y,:6)A<F-H:79E(&ES(&YO=R!A(&9A:7)L>2!C +M;VUP;&5X('!I96-E(&]F('-O9G1W87)E('1H870@<G5N<R!O;@IA(&YU;6)E +M<B!O9B!D:69F97)E;G0@<&QA=&9O<FUS+B!!('1H;W)O=6=H('1E<W0@<W5I +M=&4@:7,@97-S96YT:6%L"F)O=&@@9F]R('9E<FEF>6EN9R!N97<@<&]R=',@ +M86YD(&9O<B!E;G-U<FEN9R!T:&%T(&9U='5R92!C:&%N9V5S"F1O;B=T(&)R +M96%K(&5X:7-T:6YG(&9U;F-T:6]N86QI='DN(`H\+U`^"CQ0/D%N>2!S:6=N +M:69I8V%N="!C:&%N9V4@=&\@;&EB87)C:&EV92P@:6YC;'5D:6YG(&UO<W0@ +M8G5G(&9I>&5S+`IS:&]U;&0@8F4@86-C;VUP86YI960@8GD@;F5W('1E<W1S +M(&]R(&-H86YG97,@=&\@97AI<W1I;F<@=&5S=',N(%1H:7,*87)T:6-L92!E +M>'!L86EN<R!H;W<@=&AE(&QI8F%R8VAI=F4@=&5S="!S=6ET97,@=V]R:R!A +M;F0@:&]W('1O"F5X=&5N9"!T:&5M+B`*/"]0/@H\2#$@0TQ!4U,](G=E<W1E +M<FXB/CQ!($Y!344](D)U:6QD:6YG7V%N9%]2=6YN:6YG7W1H95]497-T7U!R +M;V=R86US(CX\+T$^"D)U:6QD:6YG(&%N9"!2=6YN:6YG('1H92!497-T(%!R +M;V=R86US/"](,3X*/%`^16%C:"!M86IO<B!C;VUP;VYE;G0M+6QI8F%R8VAI +M=F4L(&)S9'1A<BP@86YD(&)S9&-P:6\M+6AA<R!A('1E<W0*<')O9W)A;2!T +M:&%T(&5X97)C:7-E<R!T:&4@9G5N8W1I;VYA;&ET>2!O9B!T:&%T(&-O;7!O +M;F5N="X@5&AE<V4*=&5S="!P<F]G<F%M<R!A<F4@8V]M<&EL960@:6X@=&AE +M('-A;64@=V%Y('1H870@=&AE(')E<W0@;V8@=&AE"FQI8F%R8VAI=F4@<W5I +M=&4@:7,@8V]M<&EL960N(`H\+U`^"CQ0/E1O(')U;B!T:&4@=&5S="!P<F]G +M<F%M<RP@>6]U(&YE960@=&\@9VEV92!T:&5M('1W;R!P:65C97,@;V8*:6YF +M;W)M871I;VXZ(`H\+U`^"CQ53#X*"3Q,23X\4"!35%E,13TB;6%R9VEN+6)O +M='1O;3H@,&EN(CY4:&4@9G5L;"!P871H('1O('1H92!D:7)E8W1O<GD*"6AO +M;&1I;F<@=&AE("9Q=6]T.W)E9F5R96YC92!F:6QE<R9Q=6]T.R`*"3PO4#X* +M"3Q,23X\4#Y4:&4@9G5L;"!P871H('1O('1H92!E>&5C=71A8FQE('!R;V=R +M86T@8F5I;F<@=&5S=&5D("AN;W0*"6%P<&QI8V%B;&4@=&\@;&EB87)C:&EV +M95]T97-T('-I;F-E(&QI8F%R8VAI=F4@:7,@8V]M<&EL960@:6YT;R!T:&4* +M"71E<W0@<')O9W)A;2D@"@D\+U`^"CPO54P^"CQ0/E1H92!R969E<F5N8V4@ +M9FEL97,@87)E(&$@8V]L;&5C=&EO;B!O9B!K;F]W;B!I;G!U=',@=&AA="!A +M<F4@=7-E9`II;B!T:&4@=&5S="!P<F]C97-S+B!4:&5Y(&%R92!A;&P@<W1O +M<F5D(&EN('5U96YC;V1E9"!F;W)M870@:6X@9FEL97,*=VET:"!A("9Q=6]T +M.RYU=29Q=6]T.R!E>'1E;G-I;VXN(%1H92!T97-T('!R;V=R86US(&QO;VL@ +M:6X@82!F97<*<W1A;F1A<F0@;&]C871I;VYS.R!I9B!N;VYE(&]F('1H;W-E +M('=O<FLL('EO=2=L;"!N965D('1O('-P96-I9GD@=&AE"CQ45"!#3$%34STB +M=V5S=&5R;B(^+7(\+U14/B!O<'1I;VX@=VET:"!T:&4@9G5L;"!P871H;F%M +M92!T;R!T:&4*87!P<F]P<FEA=&4@9&ER96-T;W)Y+B`*/"]0/@H\4#Y4:&4@ +M8G-D=&%R7W1E<W0@86YD(&)S9&-P:6]?=&5S="!P<F]G<F%M<R!R=6X@8G-D +M=&%R(&]R(&)S9&-P:6\*<F5P96%T961L>3L@=&AE>2!N965D('1H92!F=6QL +M('!A=&@@=&\@=&AE(&%P<')O<')I871E(&5X96-U=&%B;&4N"D%L=&AO=6=H +M(&)S9'1A<E]T97-T(&%N9"!B<V1C<&EO7W1E<W0@87)E('-P96-I9FEC86QL +M>2!I;G1E;F1E9"!F;W(*=&5S=&EN9R!B<V1T87(@86YD(&)S9&-P:6\L('1H +M97D@<VAO=6QD(&)E('5S86)L92!F;W(@=&5S=&EN9R!O=&AE<@IT87(@86YD +M(&-P:6\@<')O9W)A;7,N($EN(&9A8W0L(')U;FYI;F<@=&AE<V4@=&5S="!P +M<F]G<F%M<R!A9V%I;G-T"F]T:&5R('1A<B!I;7!L96UE;G1A=&EO;G,@:7,@ +M82!G;V]D('=A>2!T;R!V97)I9GD@=&AA="!T:&4@=&5S=`IP<F]G<F%M<R!T +M:&5M<V5L=F5S(&%R92!W;W)K:6YG(&-O<G)E8W1L>2X@"CPO4#X*/%`^5VAE +M;B!R=6XL('1H92!T97-T('!R;V=R86US(&]U='!U="!A('!R;V=R97-S(&UE +M<W-A9V4@9F]R(&5A8V@*=&5S="P@86X@97)R;W(@;65S<V%G92!F;W(@96%C +M:"!F86EL960@87-S97)T:6]N+"!A;F0@82!F:6YA;`IS=6UM87)Y.B`*/"]0 +M/@H\4%)%($-,05-3/2)W97-T97)N(CXF;F)S<#M2=6YN:6YG('1E<W1S(&EN +M.B`O=&UP+V)S9'1A<E]T97-T+C(P,#DM,#(M,3=4,C$N,S`N-#`M,#`P"B9N +M8G-P.U)E9F5R96YC92!F:6QE<R!W:6QL(&)E(')E860@9G)O;3H@)FYB<W`[ +M("9N8G-P.R]H;VUE+W1I;2]L:6)A<F-H:79E+W1R=6YK+W1A<B]T97-T"B9N +M8G-P.U)U;FYI;F<@=&5S=',@;VXZ("]H;VUE+W1I;2]L:6)A<F-H:79E+W1R +M=6YK+V)S9'1A<@HF;F)S<#M%>&5R8VES:6YG.B!B<V1T87(@,BXV+CDP,&$@ +M+2!L:6)A<F-H:79E(#(N-BXY,#!A"B9N8G-P.S`Z('1E<W1?,`HF;F)S<#LQ +M.B!T97-T7V)A<VEC"B9N8G-P.S(Z('1E<W1?8V]P>0HF;F)S<#L@=&5S=%]C +M;W!Y+F,Z,3<Q.B!!<W-E<G1I;VX@9F%I;&5D.B!);G1S(&YO="!E<75A;`HF +M;F)S<#L@)FYB<W`[("9N8G-P.R`P/3`*)FYB<W`[("9N8G-P.R`F;F)S<#L@ +M;'-T870H;F%M93(@*R`S+"`F86UP.W-T,BD]+3$*)FYB<W`[('1E<W1?8V]P +M>2YC.C$W,3H@1F%I;&5D(#(V-"!T:6UE<PHF;F)S<#LS.B!T97-T7V=E=&1A +M=&4*)FYB<W`[-#H@=&5S=%]H96QP"B9N8G-P.R`F;F)S<#L@+BXN(&UO<F4@ +M;W5T<'5T(&]M:71T960@+BXN"B9N8G-P.S$@;V8@,3,@=&5S=',@<F5P;W)T +M960@9F%I;'5R97,*)FYB<W`[(%1O=&%L(&]F(#$P-3`Y-R!A<W-E<G1I;VYS +M(&-H96-K960N"B9N8G-P.R!4;W1A;"!O9B`R-C0@87-S97)T:6]N<R!F86EL +M960N"B9N8G-P.R!4;W1A;"!O9B`P(&%S<V5R=&EO;G,@<VMI<'!E9"X\+U!2 +M13X\4#X*5&AE(&AE861E<B!L:6YE<R!H97)E(')E8V]R9#H@"CPO4#X*/%5, +M/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB/G1H92!D:7)E +M8W1O<GD@=&AA="!W:6QL(&)E('5S960*"69O<B!S8W)A=&-H(&9I;&5S(&1U +M<FEN9R!T:&4@=&5S="X@268@82!T97-T(&9A:6QS+"!T:&4@<V-R871C:`H) +M9FEL97,@=VEL;"!B92!L969T(&)E:&EN9"!I;B!T:&ES(&1I<F5C=&]R>2!F +M;W(@9G5R=&AE<B!D96)U9V=I;F<N(`H)/"]0/@H)/$Q)/CQ0(%-464Q%/2)M +M87)G:6XM8F]T=&]M.B`P:6XB/E1H92!D:7)E8W1O<GD@9G)O;2!W:&EC:"!T +M:&4*"7)E9F5R96YC92!F:6QE<R!W:6QL(&)E(')E860N(`H)/"]0/@H)/$Q) +M/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB/D9O<B!B<V1T87)?=&5S +M="!A;F0@8G-D8W!I;U]T97-T+`H)=&AE(&9U;&P@<&%T:"!T;R!T:&4@97AE +M8W5T86)L92!B96EN9R!E>&5R8VES960N(`H)/"]0/@H)/$Q)/CQ0/D)A<VEC +M('9E<G-I;VX@:6YF;W)M871I;VX@86)O=70@=&AE('1A<F=E="X@"@D\+U`^ +M"CPO54P^"CQ0/DEN('1H:7,@8V%S92P@=&AE('1R86EL97(@:6YD:6-A=&5S +M('1H870@;VYE('1E<W0@9F%I;&5D+B!!<R!Y;W4*8V%N('-E92P@=&AE<F4@ +M=V%S(&$@<VEN9VQE(&%S<V5R=&EO;B!I;B!T:&4@8V]D92!T:&%T(&9A:6QE +M9"`R-C0*=&EM97,N(%1H92!F:7)S="!T:6UE(&ET(&9A:6QE9"P@:70@=V%S +M(&)E8V%U<V4@86X@/%14($-,05-3/2)W97-T97)N(CYL<W1A="@I/"]45#X* +M8V%L;"!R971U<FYE9"`M,2!I;G-T96%D(&]F('1H92!Z97)O('1H870@=V%S +M(&5X<&5C=&5D+B`*/"]0/@H\2#$@0TQ!4U,](G=E<W1E<FXB/CQ!($Y!344] +M(D)A<VEC7W1E<W1?=&5R;6EN;VQO9WDB/CPO03Y"87-I8R!T97-T"G1E<FUI +M;F]L;V=Y/"](,3X*/%`^16%C:"!T97-T('!R;V=R86T@8V]N<VES=',@;V8@ +M82!N=6UB97(@;V8@)G%U;W0[=&5S=',F<75O=#LN($5A8V@*=&5S="!H87,@ +M82!N86UE(&%N9"!I<R!I;7!L96UE;G1E9"!I;B!A($,@<V]U<F-E(&9I;&4@ +M=VET:"!T:&4@<V%M90IN86UE(&%S('1H92!T97-T+B!497-T<R!W;W)K(&)Y +M('!E<F9O<FUI;F<@<V]M92!S97)I97,@;V8@;W!E<F%T:6]N<PIA;F0@;6%K +M:6YG("9Q=6]T.V%S<V5R=&EO;G,F<75O=#L@86)O=70@=&AE(')E<W5L=',N +M($9O<B!E>&%M<&QE+`IM86YY(&]F('1H92!L:6)A<F-H:79E('1E<W1S(&]P +M96X@86YD(')E860@86X@87)C:&EV92!A;F0@87-S97)T('1H870*<&%R=&EC +M=6QA<B!O<&5R871I;VYS('-U8V-E961E9"!O<B!F86EL960N("A997,L(&ET +M(&ES(&]F=&5N"FEM<&]R=&%N="!T;R!V97)I9GD@=&AA="!I;&QE9V%L(')E +M<75E<W1S(&=E;F5R871E(&%P<')O<')I871E"F5R<F]R<RXI(`H\+U`^"CQ0 +M/DAE<F4@:7,@82!S;VUE=VAA="!E9&ET960@97AC97)P="!F<F]M(#Q45"!# +M3$%34STB=V5S=&5R;B(^=&5S=%]C;VUP871?>FEP/"]45#XL"G=H:6-H('9E +M<FEF:65S(&-O;7!A=&EB:6QI='D@=VET:"!V87)I;W5S(%I)4"!F;W)M870@ +M87)C:&EV97,Z(`H\+U`^"CQ04D4@0TQ!4U,](G=E<W1E<FXB/B9N8G-P.R!$ +M149)3D5?5$535"AT97-T7V-O;7!A=%]Z:7`I"B9N8G-P.R!["B9N8G-P.R`F +M;F)S<#L@+RH@+BXN('-E='5P(&]M:71T960@+BXN("HO"B9N8G-P.R`F;F)S +M<#L@87-S97)T*"AA(#T@87)C:&EV95]R96%D7VYE=R@I*2`A/2!.54Q,*3L* +M)FYB<W`[("9N8G-P.R!A<W-E<G1%<75A;$EN="A!4D-(259%7T]++`HF;F)S +M<#L@)FYB<W`[("9N8G-P.R`F;F)S<#L@87)C:&EV95]R96%D7W-U<'!O<G1? +M8V]M<')E<W-I;VY?86QL*&$I*3L*)FYB<W`[("9N8G-P.R!A<W-E<G1%<75A +M;$EN="A!4D-(259%7T]++`HF;F)S<#L@)FYB<W`[("9N8G-P.R`F;F)S<#L@ +M87)C:&EV95]R96%D7W-U<'!O<G1?9F]R;6%T7V%L;"AA*2D["B9N8G-P.R`F +M;F)S<#L@97AT<F%C=%]R969E<F5N8V5?9FEL92AN86UE*3L*)FYB<W`[("9N +M8G-P.R!A<W-E<G1%<75A;$EN="A!4D-(259%7T]++`HF;F)S<#L@)FYB<W`[ +M("9N8G-P.R`F;F)S<#L@87)C:&EV95]R96%D7V]P96Y?9FEL96YA;64H82P@ +M;F%M92P@,3`R-#`I*3L*)FYB<W`[("9N8G-P.R`F;F)S<#LO*B!296%D(&9I +M<G-T(&5N=')Y+B`J+PHF;F)S<#L@)FYB<W`[("9N8G-P.V%S<V5R=$5Q=6%L +M26YT*$%20TA)5D5?3TLL(&%R8VAI=F5?<F5A9%]N97AT7VAE861E<BAA+"`F +M86UP.V%E*2D["B9N8G-P.R`F;F)S<#L@)FYB<W`[87-S97)T17%U86Q3=')I +M;F<H)G%U;W0[345402U)3D8O34%.249%4U0N348F<75O=#LL(&%R8VAI=F5? +M96YT<GE?<&%T:&YA;64H864I*3L\+U!213X\4#X*5&AE(#Q45"!#3$%34STB +M=V5S=&5R;B(^87-S97)T6%A86#PO5%0^(&UA8W)O<R!C:&5C:R!T:&%T('1H +M96ER"F%R9W5M96YT<R!S871I<V9Y(&-E<G1A:6X@8V]N9&ET:6]N<RX@268@ +M=&AE(&%S<V5R=&EO;B!F86EL<RTM9F]R"F5X86UP;&4L(&EF('1H92!N86UE +M(&]F('1H92!F:7)S="!E;G1R>2!I<R!N;W0*)G%U;W0[345402U)3D8O34%. +M249%4U0N348F<75O=#LM+71H92!M86-R;R!W:6QL(')E<&]R="!T:&4@<')O +M8FQE;2X@"CPO4#X*/%`^5&AE<F4@87)E('1W;R!I;7!O<G1A;G0@9&EF9F5R +M96YC97,@8F5T=V5E;B!T:&4@/%14($-,05-3/2)W97-T97)N(CYA<W-E<G18 +M6%@\+U14/@IM86-R;W,@=7-E9"!I;B!T:&5S92!T97-T(&AA<FYE<W-E<R!A +M;F0@=&AE($E33R!#('-T86YD87)D(#Q45"!#3$%34STB=V5S=&5R;B(^87-S +M97)T/"]45#X*;6%C<F\Z($9I<G-T+"!T:&5S92!A<W-E<G0@;6%C<F]S(&1O +M;B=T(&5X:70@;VX@9F%I;'5R92X@0GD@9&5F875L="P*=&AE>2!R97!O<G0@ +M=&AE(&9A:6QU<F4@86YD(')E='5R;B!Z97)O("AT:&4@0R!N;W1I;VX@;V8@ +M)G%U;W0[9F%L<V4F<75O=#LI+@I396-O;F0L('1H97-E(&UA8W)O<R!I;F-L +M=61E('9A<FEA;G1S('1H870@<&5R9F]R;2!A('9A<FEE='D@;V8*<W!E8VEF +M:6,@=&5S=',N(%1H97-E('-P96-I9FEC('9E<G-I;VYS("AS=6-H(&%S(#Q4 +M5"!#3$%34STB=V5S=&5R;B(^87-S97)T17%U86Q);G0\+U14/@IA;F0@/%14 +M($-,05-3/2)W97-T97)N(CYA<W-E<G1%<75A;%-T<FEN9SPO5%0^(&EN('1H +M92!E>&%M<&QE(&%B;W9E*0IG96YE<F%T92!D971A:6QE9"!L;V<@;65S<V%G +M97,@;VX@9F%I;'5R92X@26X@<&%R=&EC=6QA<BP@=&AE>2!P<FEN=`IT:&4@ +M=F%L=64@;V8@8F]T:"!A<F=U;65N=',[('1H:7,@9W)E871L>2!S:6UP;&EF +M:65S(&1I86=N;W-I;F<*9F%I;'5R97,N(`H\+U`^"CQ(,2!#3$%34STB=V5S +M=&5R;B(^/$$@3D%-13TB3&EF95]C>6-L95]O9E]A7W1E<W0B/CPO03Y,:69E +M(&-Y8VQE(&]F"F$@=&5S=#PO2#$^"CQ0/D5A8V@@=&5S="!R97-I9&5S(&EN +M(&$@0R!S;W5R8V4@9FEL92!W:71H('1H92!S86UE(&YA;64@87,@=&AE"G1E +M<W0N(%1H92!T97-T(&ET<V5L9B!I<R!A(&9U;F-T:6]N('1H870@=&%K97,@ +M;F\@87)G=6UE;G1S+B!4:&4@=&5S=`II<R!D96-L87)E9"!U<VEN9R!T:&4@ +M/%14($-,05-3/2)W97-T97)N(CY$149)3D5?5$535"@I/"]45#X@;6%C<F\N +M"E1H:7,@;6%C<F\@<V5R=F5S(&)O=&@@=&\@96YS=7)E('1H870@=&AE('1E +M<W0@:7,@9&5C;&%R960@8V]R<F5C=&QY"F%N9"!A<R!A(&QA8F5L('1H870@ +M8V%N(&)E('5S960@=&\@;&]C871E(&%L;"!D969I;F5D('1E<W1S+B`H3VX* +M56YI>"UL:6ME('!L871F;W)M<RP@82!S:6UP;&4@/%14($-,05-3/2)W97-T +M97)N(CYG<F5P/"]45#X@;W!E<F%T:6]N"FES('5S960@=&\@8V]N<W1R=6-T +M(&$@9FEL92!C86QL960@/%14($-,05-3/2)W97-T97)N(CYL:7-T+F@\+U14 +M/@IT:&%T(&AO;&1S('1H92!N86UE<R!O9B!A;&P@;V8@=&AE('1E<W1S+B!4 +M:&ES(&UA:V5S(&ET('9E<GD@96%S>2!T;PIA9&0@;F5W('1E<W1S+BD@"CPO +M4#X*/%`^5&AE('1E<W0@:&%R;F5S<R!D971E<FUI;F5S('=H:6-H('1E<W1S +M('1O(')U;BX@270@9V]E<R!T:')O=6=H"G1H92!F;VQL;W=I;F<@<W1E<',@ +M=VAE;F5V97(@:70@<G5N<R!A('1E<W0Z(`H\+U`^"CQ53#X*"3Q,23X\4"!3 +M5%E,13TB;6%R9VEN+6)O='1O;3H@,&EN(CX\4U1224M%/D-L;W-E<R!A;&P@ +M9FEL90H)9&5S8W)I<'1O<G,@97AC97!T(&9O<B!S=&1I;BP@<W1D;W5T+"!A +M;F0@<W1D97)R+CPO4U1224M%/B`H5&AI<PH)<V-R97=S('5P(&QI8F,@;VX@ +M<V]M92!P;&%T9F]R;7,@<V\@:&%S(&)E96X@<F5M;W9E9"XI(`H)/"]0/@H) +M/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB/D-R96%T97,@82!T +M96UP;W)A<GD@9&ER96-T;W)Y"@EW:&]S92!N86UE(&UA=&-H97,@=&AE(&YA +M;64@;V8@=&AE('1E<W0@86YD('-W:71C:&5S(&EN=&\@=&AA=`H)9&ER96-T +M;W)Y+B`*"3PO4#X*"3Q,23X\4"!35%E,13TB;6%R9VEN+6)O='1O;3H@,&EN +M(CY297-E=',@=&AE(&-U<G)E;G0@;&]C86QE+B`*"3PO4#X*"3Q,23X\4"!3 +M5%E,13TB;6%R9VEN+6)O='1O;3H@,&EN(CY#86QL<R!T:&4@=&5S="!F=6YC +M=&EO;BX@"@D\+U`^"@D\3$D^/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ(#!I +M;B(^268@=&AE<F4@=V5R92!N;R!A<W-E<G1I;VX*"69A:6QU<F5S+"!I="!W +M:6QL(')E;6]V92!T:&4@=&5M<&]R87)Y(&1I<F5C=&]R>2X@*$EF(#Q45"!# +M3$%34STB=V5S=&5R;B(^+6L\+U14/@H):7,@<W!E8VEF:65D+"!T96UP;W)A +M<GD@9&ER96-T;W)Y(&%R92!L969T(&5V96X@:68@=&AE('1E<W0*"7-U8V-E +M961S+BD@"@D\+U`^"@D\3$D^/%`^/%-44DE+13Y)9B!T:&5R92!A<F4@86YY +M(&]P96X@9FEL92!D97-C<FEP=&]R<R!O=&AE<B!T:&%N"@ES=&1I;BP@<W1D +M;W5T+"!A;F0@<W1D97)R+"!I="!R97!O<G1S(&%N(&5R<F]R+CPO4U1224M% +M/B!497-T<PH)<VAO=6QD(&YE=F5R(&QE879E(&]P96X@9FEL92!D97-C<FEP +M=&]R<RX@"@D\+U`^"CPO54P^"CQ0/DEN('!A<G1I8W5L87(L('1E<W1S(&-A +M;B!S869E;'D@87-S=6UE('1H870Z(`H\+U`^"CQ53#X*"3Q,23X\4"!35%E, +M13TB;6%R9VEN+6)O='1O;3H@,&EN(CY4:&4@8W5R<F5N="!D:7)E8W1O<GD@ +M:7,@96UP='D*"7=H96X@=&AE('1E<W0@<W1A<G1S+B`*"3PO4#X*"3Q,23X\ +M4"!35%E,13TB;6%R9VEN+6)O='1O;3H@,&EN(CY!;GD@9FEL97,@8W)E871E +M9"!I;B!T:&4@8W5R<F5N=`H)9&ER96-T;W)Y('=I;&P@8F4@<F5M;W9E9"!F +M;W(@>6]U+B`*"3PO4#X*"3Q,23X\4#Y4:&4@8W5R<F5N="!L;V-A;&4@:7,@ +M=&AE(&1E9F%U;'0@)G%U;W0[0R9Q=6]T.R!L;V-A;&4N(`H)/"]0/@H\+U5, +M/@H\4#Y497-T<R!S:&]U;&0Z(`H\+U`^"CQ53#X*"3Q,23X\4"!35%E,13TB +M;6%R9VEN+6)O='1O;3H@,&EN(CY296QE87-E(&%L;"!M96UO<GDN(%1H92!T +M97-T"@ES=6ET97,@87)E(&]C8V%S:6]N86QL>2!R=6X@=6YD97(@82!M96UO +M<GD@9&5B=6=G97(@=&\@9&5T96-T(&QE86MS"@EI;B!T:&4@;&EB87)C:&EV +M92!L:6)R87)Y+B`*"3PO4#X*"3Q,23X\4"!35%E,13TB;6%R9VEN+6)O='1O +M;3H@,&EN(CY#;&]S92!A;&P@;W!E;F5D(&9I;&5S+B!4:&ES(&AE;'!S"@ET +M;R!C871C:"!F:6QE(&1E<V-R:7!T;W(@;&5A:W,@:6X@;&EB87)C:&EV92X@ +M"@D\+U`^"@D\3$D^/%`^3F]T(')E860@;W(@=W)I=&4@86)S;VQU=&4@<&%T +M:',N(`H)/"]0/@H\+U5,/@H\2#$@0TQ!4U,](G=E<W1E<FXB/CQ!($Y!344] +M(E!L871F;W)M7W9A<FEA=&EO;B(^/"]!/E!L871F;W)M"G9A<FEA=&EO;CPO +M2#$^"CQ0/E-O;64@=&5S=',@87)E('-P96-I9FEC('1O(&$@<&%R=&EC=6QA +M<B!P;&%T9F]R;2X@4W5C:"!T97-T<PIS:&]U;&0@=7-E(&%P<')O<')I871E +M('!L871F;W)M+7-P96-I9FEC(&UA8W)O<R!A<R!F;VQL;W=S.B`*/"]0/@H\ +M4%)%($-,05-3/2)W97-T97)N(CXC:68@7U]03$%41D]230HN+BX@=F%R:6]U +M<R!H96QP97(@9G5N8W1I;VYS("XN+@HC96YD:68*1$5&24Y%7U1%4U0H9F]O +M7W!L871F;W)M*0I["B-I9B!?7U!,051&3U)-"B9N8G-P.R`F;F)S<#LN+BX@ +M=&5S=',@87,@=7-U86P@+BXN+@HC96QS90HF;F)S<#L@)FYB<W`[<VMI<'!I +M;F<H)G%U;W0[<&QA=&9O<FTM<W!E8VEF:6,@=&5S=',F<75O=#LI.PHC96YD +M:68*?3PO4%)%/CQ0/@I);B!P87)T:6-U;&%R+"!N;W1E('1H870@86QL('1E +M<W1S(&%R92!C;VUP:6QE9"!A;F0@<G5N(&]N(&%L;`IP;&%T9F]R;7,N(`H\ +M+U`^"CQ0/DUO<W0@=&5S=',@87)E(&YO="!P;&%T9F]R;2US<&5C:69I8R!A +M;F0@=VEL;"!T:'5S(&5N9"!U<"!R=6YN:6YG"F]N(&UA;GD@9&EF9F5R96YT +M('!L871F;W)M<RX@26X@;W)D97(@=&\@<VEM<&QI9GD@=W)I=&EN9R!S=6-H +M('1E<W1S+`IT<GD@=&\@=7-E('!L871F;W)M+6EN9&5P96YD96YT(&-O9&EN +M9SH@"CPO4#X*/%5,/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P +M:6XB/E5S92!S=&1I;R`\5%0@0TQ!4U,](G=E<W1E<FXB/F9O<&5N*"D\+U14 +M/BP*"3Q45"!#3$%34STB=V5S=&5R;B(^9G=R:71E*"D\+U14/BP@/%14($-, +M05-3/2)W97-T97)N(CYF<F5A9"@I/"]45#XL"@EA;F0@/%14($-,05-3/2)W +M97-T97)N(CYF8VQO<V4H*3PO5%0^('1O(&%C8V5S<R!F:6QE<R!W:&5N979E +M<@H)9F5A<VEB;&4N(`H)/"]0/@H)/$Q)/CQ0/DQO;VL@=&AR;W5G:"!T:&4@ +M/%14($-,05-3/2)W97-T97)N(CYT97-T+F@\+U14/B!H96%D97(@=&\*"7-E +M92!I9B!T:&5R92!A<F4@87-S97)T6'AX*"D@9G5N8W1I;VYS('1H870@>6]U +M(&-A;B!U<V4N(%1H97)E)W,@80H);&ES="!O9B!T:&4@;6]R92!P;W!U;&%R +M(&]N97,@8F5L;W<L(&)U="!N97<@;VYE<R!A<F4@;V9T96X@861D960N(`H) +M/"]0/@H\+U5,/@H\2#$@0TQ!4U,](G=E<W1E<FXB/CQ!($Y!344](D%S<V5R +M=%]M86-R;W,B/CPO03Y!<W-E<G0@;6%C<F]S/"](,3X*/%`^5&AE(&9O;&QO +M=VEN9R!I<R!A(&YE8V5S<V%R:6QY(&EN8V]M<&QE=&4@;&ES="!O9B!A<W-E +M<G0@9G5N8W1I;VYS"F%V86EL86)L92!T;R!T97-T<SH@"CPO4#X*/%5,/@H) +M/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB/D)A<VEC(&5Q=6%L +M:71Y.B`\5%0@0TQ!4U,](G=E<W1E<FXB/F%S<V5R=$5Q=6%L26YT/"]45#XL +M"@D\5%0@0TQ!4U,](G=E<W1E<FXB/F%S<V5R=$5Q=6%L4W1R:6YG/"]45#XL +M(#Q45"!#3$%34STB=V5S=&5R;B(^87-S97)T17%U86Q-96T\+U14/@H)"3PO +M4#X*"3Q,23X\4"!35%E,13TB;6%R9VEN+6)O='1O;3H@,&EN(CY&:6QE(&-R +M96%T:6]N.B`\5%0@0TQ!4U,](G=E<W1E<FXB/F%S<V5R=$UA:V5&:6QE/"]4 +M5#XL"@D\5%0@0TQ!4U,](G=E<W1E<FXB/F%S<V5R=$UA:V53>6UL:6YK/"]4 +M5#XL(#Q45"!#3$%34STB=V5S=&5R;B(^87-S97)T36%K94AA<F1L:6YK/"]4 +M5#XL"@D\5%0@0TQ!4U,](G=E<W1E<FXB/F%S<V5R=$UA:V5$:7(\+U14/B`* +M"3PO4#X*"3Q,23X\4"!35%E,13TB;6%R9VEN+6)O='1O;3H@,&EN(CY&:6QE +M('1E<W1S.B`\5%0@0TQ!4U,](G=E<W1E<FXB/F%S<V5R=$ES4F5G/"]45#XL +M"@D\5%0@0TQ!4U,](G=E<W1E<FXB/F%S<V5R=$ES1&ER/"]45#XL(#Q45"!# +M3$%34STB=V5S=&5R;B(^87-S97)T27-3>6UL:6YK/"]45#XL"@D\5%0@0TQ! +M4U,](G=E<W1E<FXB/F%S<V5R=$9I;&53:7IE/"]45#XL(#Q45"!#3$%34STB +M=V5S=&5R;B(^87-S97)T1FEL94YL:6YK<SPO5%0^+`H)/%14($-,05-3/2)W +M97-T97)N(CYA<W-E<G1&:6QE371I;64\+U14/B`*"3PO4#X*"3Q,23X\4#Y& +M:6QE(&-O;G1E;G1S.B`\5%0@0TQ!4U,](G=E<W1E<FXB/F%S<V5R=$9I;&5% +M;7!T>3PO5%0^+`H)/%14($-,05-3/2)W97-T97)N(CYA<W-E<G1&:6QE3F]N +M16UP='D\+U14/BP@/%14($-,05-3/2)W97-T97)N(CYA<W-E<G1&:6QE0V]N +M=&5N=',\+U14/BP*"3Q45"!#3$%34STB=V5S=&5R;B(^87-S97)T5&5X=$9I +M;&5#;VYT96YT<SPO5%0^(`H)/"]0/@H\+U5,/@H\2#$@0TQ!4U,](G=E<W1E +M<FXB/CQ!($Y!344](E)E9F5R96YC95]&:6QE<R(^/"]!/E)E9F5R96YC92!& +M:6QE<SPO2#$^"CQ0/DUA;GD@=&5S=',@<F5Q=6ER92!R96%D:6YG(&$@<')E +M+6-O;G-T<G5C=&5D(')E9F5R96YC92!F:6QE+B!3=6-H"F9I;&5S(&%R92!S +M=&]R960@=VET:"!T:&4@<V]U<F-E(&-O9&4@9F]R('1H92!A<W-O8VEA=&5D +M('1E<W0@<W5I=&4N"E)E9F5R96YC92!F:6QE<R!A<F4@;F%M960@86-C;W)D +M:6YG('1O('1H92!T97-T(&%N9"!M=7-T(&)E('5U96YC;V1E9`IT;R!B92!C +M:&5C:V5D(&EN=&\@<V]U<F-E(&-O;G1R;VPN(`H\+U`^"CQ0/D9O<B!E>&%M +M<&QE+"!I9B!Y;W4@;F5E9"!A(')E9F5R96YC92!T87(@87)C:&EV92!T;R!U +M<V4@=VET:`H\5%0@0TQ!4U,](G=E<W1E<FXB/G1E<W1?9F]O/"]45#XL('1H +M92!F:6QE('-H;W5L9"!B92!N86UE9`H\5%0@0TQ!4U,](G=E<W1E<FXB/G1E +M<W1?9F]O+G1A<CPO5%0^(&%N9"!S=&]R960@:6X@<V]U<F-E(&-O;G1R;VP@ +M87,*/%14($-,05-3/2)W97-T97)N(CYT97-T7V9O;RYT87(N=74\+U14/BX@ +M"CPO4#X*/%`^5VET:&EN('1H92!T97-T(&-O9&4L('EO=2!C86X@<F5C;W9E +M<B!T:&4@<F5F97)E;F-E(&9I;&4@=VET:#H@"CPO4#X*/%!212!#3$%34STB +M=V5S=&5R;B(@4U193$4](FUA<F=I;BUB;W1T;VTZ(#`N,FEN(CXF;F)S<#L@ +E)FYB<W`[(&5X=')A8W1?<F5\-GL/0!0``;$>S@,````````````` +` +end diff --git a/libarchive/test/test_rar_multivolume_uncompressed_files.part05.rar.uu b/libarchive/test/test_rar_multivolume_uncompressed_files.part05.rar.uu new file mode 100644 index 00000000..0891b228 --- /dev/null +++ b/libarchive/test/test_rar_multivolume_uncompressed_files.part05.rar.uu @@ -0,0 +1,299 @@ +begin 644 - +M4F%R(1H'`!EZ<Q$`#0````````!U''0AD$0`+AX``(].```#8Z8%7KM,-4$4 +M,!H`I($``$QI8F%R8VAI=F5!9&1I;F=497-T,BYH=&ULP,P)7SM",E\[0F9E +M<F5N8V5?9FEL92@F<75O=#MT97-T7V9O;RYT87(F<75O=#LI.SPO4%)%/CQ0 +M/@I4:&4@/%14($-,05-3/2)W97-T97)N(CYE>'1R86-T7W)E9F5R96YC95]F +M:6QE*"D\+U14/B!F=6YC=&EO;B!W:6QL"G5U9&5C;V1E('1H92!R97%U97-T +M960@9FEL92!A;F0@<'5T('1H92!R97-U;'0@:6X@=&AE(&-U<G)E;G0*9&ER +M96-T;W)Y+B`*/"]0/@H\4#Y,;V]K(&%T(#Q45"!#3$%34STB=V5S=&5R;B(^ +M=&5S=%]R96%D7V9O<FUA=%]C<&EO7V)I;E]B92YC/"]45#X*9F]R(&$@<VEM +M<&QE(&5X86UP;&4@;V8@=&AI<R!U<V%G92X@"CPO4#X*/%`^02!F97<@;V8@ +M=&AE(&]L9&5R('1E<W1S('-T;W)E(')E9F5R96YC92!D871A('=I=&AI;B!T +M:&4@<V]U<F-E"F-O9&4@87,@82!H97@M96YC;V1E9"!A<G)A>2!O9B!C:&%R +M86-T97)S+B!4:&ES('=A<R!C;VUM;VX@8F5F;W)E"CQ45"!#3$%34STB=V5S +M=&5R;B(^97AT<F%C=%]R969E<F5N8V5?9FEL92@I/"]45#X@=V%S(&%D9&5D +M(&%N9"!I<PIN;W0@<F5C;VUM96YD960@9F]R(&YE=R!C;V1E+B`*/"]0/@H\ +M2#$@0TQ!4U,](G=E<W1E<FXB/CQ!($Y!344](D1O<U]A;F1?1&]N=',B/CPO +M03Y$;W,@86YD($1O;G1S/"](,3X*/%5,/@H)/$Q)/CQ0(%-464Q%/2)M87)G +M:6XM8F]T=&]M.B`P:6XB/D1/('5S92!A<W-E<G1S(&QI8F5R86QL>2X@270G +M<PH)8V]M;6]N('1O(&AA=F4@86X@87-S97)T(&]N(&%L;6]S="!E=F5R>2!L +M:6YE+B`*"3PO4#X*"3Q,23X\4"!35%E,13TB;6%R9VEN+6)O='1O;3H@,&EN +M(CY$3R!U<V4@87-S97)T17%U86Q);G0L"@EA<W-E<G1%<75A;%-T<FEN9RP@ +M87-S97)T17%U86Q-96T@=&\@=&5S="!E<75A;&ET>2!I;G-T96%D(&]F('!L +M86EN"@EA<W-E<G0H*3L@=&AE('-P96-I86QI>F5D(&9O<FUS(&=I=F4@82!L +M;W0@;6]R92!I;F9O<FUA=&EO;B!O;B!A"@EF86EL=7)E+B`*"3PO4#X*"3Q, +M23X\4"!35%E,13TB;6%R9VEN+6)O='1O;3H@,&EN(CY$3R!T97-T('EO=7(@ +M=&5S=',[(&5X<&5R:6UE;G0@8GD*"6-H86YG:6YG(&$@<&EE8V4@;V8@8V]D +M92!A;F0@;6%K92!S=7)E('EO=7(@=&5S="!F86EL<RX@268@>6]U('1H:6YK +M"@EY;W4G=F4@9F]U;F0@82!B=6<L('=E(')E8V]M;65N9"!W<FET:6YG('1H +M92!T97-T(&9I<G-T+"!M86ME('-U<F4*"71H92!T97-T(&9A:6QS+"!T:&5N +M(&9I>&EN9R!T:&4@8G5G+B`*"3PO4#X*"3Q,23X\4"!35%E,13TB;6%R9VEN +M+6)O='1O;3H@,&EN(CY$3R!R=6X@86QL(&]F('1H92!T97-T<R!B969O<F4* +M"7-U8FUI='1I;F<@82!C:&%N9V4N($1E<&5N9&EN9R!O;B!Y;W5R(&)U:6QD +M(&5N=FER;VYM96YT+"`\5%0@0TQ!4U,](G=E<W1E<FXB/FUA:V4*"71E<W0\ +M+U14/B!O<B`\5%0@0TQ!4U,](G=E<W1E<FXB/FUA:V4@8VAE8VL\+U14/B!W +M:6QL('5S=6%L;'D@<G5N"@EA;&P@;V8@=&AE('1E<W1S+B`*"3PO4#X*"3Q, +M23X\4"!35%E,13TB;6%R9VEN+6)O='1O;3H@,&EN(CY$3TXG5"!R96QY(&]N +M(#Q45"!#3$%34STB=V5S=&5R;B(^2$%615\\+U14/@H);6%C<F]S(&9R;VT@ +M8V]N9FEG+F@N("A)9B!T:&4@=&5S=',@=7-E('1H92!S86UE(#Q45"!#3$%3 +M4STB=V5S=&5R;B(^2$%615\\+U14/@H);6%C<F]S(&%S('1H92!C;V1E(&)E +M:6YG('1E<W1E9"!T:&5N(&-O;F9I9W5R871I;VX@<')O8FQE;7,@=VEL;"!B +M90H)8V]V97)E9"!U<"XI(`H)/"]0/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM +M8F]T=&]M.B`P:6XB/D1/('5S92!R=6YT:6UE('1E<W1S(&9O<B!P;&%T9F]R +M;0H)9F5A='5R97,N($9O<B!E>&%M<&QE+"!T:&4@04-,('1E<W1S('1R>2!T +M;R!S970@86X@04-,(&]N(&$@9FEL92!A;F0*"7)E860@:70@8F%C:R!T;R!D +M971E<FUI;F4@:68@04-,('-U<'!O<G0@:7,@879A:6QA8FQE+"!T:&5N('1H +M97D*"65X97)C:7-E('1H92!L:6)A<F-H:79E($%#3"!H86YD;&EN9RX@"@D\ +M+U`^"@D\3$D^/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ(#!I;B(^1$\@;&]O +M:R!A="!E>&ES=&EN9R!T97-T<RX@3V9T96XL"@EA(&)U9R!C86X@8F4@=&5S +M=&5D(&)Y(&%D9&EN9R!J=7-T(&$@8V]U<&QE(&]F(&%S<V5R=',@=&\@86X* +M"65X:7-T:6YG('1E<W0@:6YS=&5A9"!O9B!W<FET:6YG(&$@;F5W(&]N92X@ +M"@D\+U`^"@D\3$D^/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ(#!I;B(^1$\@ +M:6UP<F]V92!E>&ES=&EN9R!T97-T<RX@26X*"7!A<G1I8W5L87(L(&EF('EO +M=2!S964@82!T97-T(&9A:6QU<F4@=&AA="!I<R!H87)D('1O('5N9&5R<W1A +M;F0L"@EC;VYS:61E<B!A9&1I;F<@82!F86EL=7)E*"D@;65S<V%G92!O<B!C +M;VUM96YT<R!S;R!T:&4@;F5X="!P97)S;VX*"7=I;&P@:&%V92!A;B!E87-I +M97(@=&EM92X@"@D\+U`^"@D\3$D^/%`^1$\@87-K(&]N('1H92!M86EL:6YG +M(&QI<W1S(&EF('EO=2!H879E('%U97-T:6]N<RX@4V]M92!T97-T<PH)87)E +M(&)E='1E<B!W<FET=&5N('1H86X@;W1H97)S+B`*"3PO4#X*/"]53#X*/$@Q +M($-,05-3/2)W97-T97)N(CX\02!.04U%/2)3;VUE7V5X86UP;&5S7V]F7W1E +M<W1S(CX\+T$^4V]M90IE>&%M<&QE<R!O9B!T97-T<SPO2#$^"CQ(,B!#3$%3 +M4STB=V5S=&5R;B(^/$$@3D%-13TB3&EB87)C:&EV95]R96%D7W1E<W1S(CX\ +M+T$^3&EB87)C:&EV90IR96%D('1E<W1S/"](,CX*/%`^5&AE<F4@87)E('%U +M:71E(&$@9F5W(')E860@=&5S=',@=&AA="!S:6UP;'D@<F5A9"!A('!R92UB +M=6EL=`II;G!U="!F:6QE(&%N9"!V97)I9GD@=&AE(')E<W5L=',N(%1H97-E +M('5S92`\5%0@0TQ!4U,](G=E<W1E<FXB/F5X=')A8W1?<F5F97)E;F-E7V9I +M;&4H*3PO5%0^"G1O(&1E8V]D92!A('5U96YC;V1E9"!I;G!U="!F:6QE+"!T +M:&5N(&]P96X@=&AA="!F:6QE('=I=&@@;&EB87)C:&EV90IA;F0@=F5R:69Y +M('1H92!R97-U;'1S+B!-;W-T(&]F('1H97-E(&%R92!P<F5T='D@<W1R86EG +M:'1F;W)W87)D+B`*/"]0/@H\2#(@0TQ!4U,](G=E<W1E<FXB/CQ!($Y!344] +M(DQI8F%R8VAI=F5?<F5A9"]W<FET95]T97-T<R(^/"]!/DQI8F%R8VAI=F4* +M<F5A9"]W<FET92!T97-T<SPO2#(^"CQ0/DUO<W0@;V8@=&AE('=R:71E('1E +M<W1S(')E86QL>2!J=7-T('9E<FEF>2!T:&%T(&QI8F%R8VAI=F4@8V%N"G)E +M860@=VAA="!I="!W<FET97,N(%1H97-E(&=E;F5R86QL>2!U<V4@=&AE(&UE +M;6]R>2!I;G1E<F9A8V5S+B!4:&5Y"F9E960@87)C:&EV92!E;G1R:65S(&EN +M=&\@=&AE('=R:71E<B!T;R!C<F5A=&4@86X@87)C:&EV92!I;B!M96UO<GD* +M86YD('1H96X@;W!E;B!T:&4@;65M;W)Y(&%G86EN('1O(')E860@=&AE(&1A +M=&$@8F%C:R!A;F0@=F5R:69Y('1H870*:70@:7,@=&AE('-A;64N(`H\+U`^ +M"CQ(,B!#3$%34STB=V5S=&5R;B(^/$$@3D%-13TB3&EB87)C:&EV95]W<FET +M95]V86QI9&%T;W)S(CX\+T$^3&EB87)C:&EV90IW<FET92!V86QI9&%T;W)S +M/"](,CX*/%`^02!F97<@=W)I=&4@=&5S=',@=W)I=&4@86X@87)C:&EV92!I +M;G1O(&UE;6]R>2!A;F0@=&AE;B!I;G-P96-T"G1H92!A8W1U86P@8GET97,@ +M=&\@=F5R:69Y('1H870@=&AE(&%R8VAI=F4@=V%S(&-R96%T960@8V]R<F5C +M=&QY+@I4:&5S92!T97-T<R!A<F4@;FEC92!T;R!H879E(&)U="!A<F4@=&5D +M:6]U<R!T;R!B=6EL9"X@"CPO4#X*/%`^5&AE<F4@87)E(&%L<V\@82!C;W5P +M;&4@;V8@<W5C:"!V86QI9&%T;W)S(&9O<B!B<V1T87(@86YD(&)S9&-P:6\N +M"E1H97-E(&%R92!V97)Y('1R:6-K>2!S:6YC92!T:&4@97AA8W0@9&%T82!C +M;VYT86EN<R!V86QU97,@=&AA="!T:&4*=&5S="!C86YN;W0@8V]M<&QE=&5L +M>2!C;VYT<F]L("AS=6-H(&%S('1H92!C=7)R96YT('1I;64@;W(*=7-E<FYA +M;64I+B`*/"]0/@H\2#(@0TQ!4U,](G=E<W1E<FXB/CQ!($Y!344](D1I<VM? +M=&5S=',B/CPO03Y$:7-K('1E<W1S/"](,CX*/%`^3&EB87)C:&EV92=S(&1I +M<VL@22]/($%027,L(&%S('=E;&P@87,@8G-D=&%R(&%N9"!B<V1C<&EO+"!N +M965D('1O"F]P97)A=&4@8GD@=F5R:69Y:6YG(&9I;&5S(&]N(&1I<VLN(%1O +M(&UA:V4@=&AI<R!E87-I97(L('1H92!T97-T"F9R86UE=V]R:R!N;W<@:&%S +M(&$@;&%R9V4@;G5M8F5R(&]F(&%S<V5R=&EO;G,@=&\@=F5R:69Y('1I;65S +M=&%M<',L"G!E<FUI<W-I;VYS+"!A;F0@;W1H97(@8F%S:6,@9FEL92!D871A +M+B!4:&5S92!A<W-E<G1I;VYS('5S90IA<'!R;W!R:6%T92!S>7-T96T@8V%L +M;',@9F]R(&5A8V@@<&QA=&9O<FT[(&YE=R!T97-T<R!S:&]U;&0@=')Y('1O +M"F%V;VED('5S:6YG(#Q45"!#3$%34STB=V5S=&5R;B(^<W1A="@I/"]45#XL +M('=H:6-H(&ES(&YO="!U;FEF;W)M;'D*879A:6QA8FQE+B`*/"]0/@H\2#(@ +M0TQ!4U,](G=E<W1E<FXB/CQ!($Y!344](D9U>GI?=&5S=&5R(CX\+T$^1G5Z +M>B!T97-T97(\+T@R/@H\4#Y4:&4@9G5Z>B!T97-T97(@:7,@;VYE(&]F('1H +M92!F97<@=&5S=',@=&AA="!D;V5S(&YO="!A9V=R97-S:79E;'D*=7-E(&%S +M<V5R=&EO;G,N($ET<R!P=7)P;W-E(&ES('1O('1R>2!A;F0@8W)A<V@@;&EB +M87)C:&EV92!B>2!F965D:6YG"FET(&EN<'5T('1H870@:7,@<VQI9VAT;'D@ +M9&%M86=E9"X@*%)E;65M8F5R('1H870@;&EB87)C:&EV92!D;V5S"FAA=F4@ +M<V]M92!F86EL<V%F92!C;V1E('1H870@9&5L:6)E<F%T96QY(&%B;W)T<R!T +M:&4@96YT:7)E('!R;V=R86T*:68@8V5R=&%I;B!I;G9A<FEA;G1S(&%R92!V +M:6]L871E9"XI(`H\+U`^"CQ0/E-I;F-E(&$@9G5Z>B!F86EL=7)E(&-A=7-E +M<R!A(&-R87-H+"!I="=S(&EM<&]S<VEB;&4@=&\@<F5P;W)T('1H90IE<G)O +M<B!T;R!T:&4@8V]N<V]L92P@<V\@=&AE(&9U>GH@=&5S=&5R(&EN<W1E860@ +M9V5N97)A=&5S(&$*<F%N9&]M;'DM9&%M86=E9"!F:6QE+"!S879E<R!T:&%T +M(&9I;&4@=&\@9&ES:RP@=&AE;B!R=6YS('1H92!F:6QE"G1H<F]U9V@@;&EB +M87)C:&EV92!T;R!T<GD@=&\@<')O=F]K92!A(&-R87-H+B!)9B!L:6)A<F-H +M:79E(&-R87-H97,*=&AE(&5N=&ER92!T97-T97(L('1H92!I;G!U="!T:&%T +M(&-A=7-E9"!T:&4@8W)A<V@@=VEL;"!B92!A=F%I;&%B;&4*;VX@9&ES:R!F +M;W(@9G5R=&AE<B!A;F%L>7-I<RX@"CPO4#X*/%`^06QT:&]U9V@@:70@:7,@ +M=6YU<W5A;"!F;W(@82!T97-T('!R;V=R86T@=&\@=7-E(')A;F1O;2!I;G!U +M="P@=&AE"F9U>GH@=&5S=&5R(&AA<R!P<F]V96X@<75I=&4@=7-E9G5L(&%T +M('5N8V]V97)I;F<@<&]O<B!E<G)O<@IH86YD;&EN9RX@56YF;W)T=6YA=&5L +M>2P@=&AE(&YE960@=&\@=W)I=&4@=&AE(&1A=&$@=&\@9&ES:R!B969O<F4* +M96%C:"!T97-T(&ES(&$@<VEG;FEF:6-A;G0@<&5R9F]R;6%N8V4@:7-S=64N +M(`H\+U`^"CQ(,B!#3$%34STB=V5S=&5R;B(^/$$@3D%-13TB3&%R9V5?=&%R +M7W1E<W1E<B(^/"]!/DQA<F=E('1A<B!T97-T97(\+T@R/@H\4#Y4:&4@;&%R +M9V4@=&%R('1E<W1E<B!A='1E;7!T<R!T;R!E>&5R8VES92!B;W5N9&%R>2!C +M87-E<R!W:71H('9E<GD*;&%R9V4@96YT<FEE<RP@=7`@=&\@,2!T97)A8GET +M92X@3V8@8V]U<G-E+"!W<FET:6YG(&$@,2!T97)A8GET90IE;G1R>2!T;R!A +M;B!U;F-O;7!R97-S960@87)C:&EV92!O;B!D:7-K(&]R(&UE;6]R>2!I<R!U +M;F%C8V5P=&%B;&4L"F)O=&@@9F]R('!E<F9O<FUA;F-E(&%N9"!S<&%C92!R +M96%S;VYS+B!%=F5N(&=Z:7`@;W(@8GII<#(*8V]M<')E<W-I;VX@=V]N)W0@ +M:&5L<#L@86QT:&]U9V@@<VUA;&QE<BP@=&AE(&]U='!U="!I<R!S=&EL;"!L +M87)G90IA;F0@=&AE('1I;64@;F5E9&5D('1O(&-O;7!R97-S('-U8V@@82!L +M87)G92!A;6]U;G0@;V8@9&%T82!I<PIP<F]H:6)I=&EV92X@4V\@=&AE(&QA +M<F=E('1A<B!T97-T97(@=7-E<R!A('1R:6-K+B`*/"]0/@H\4#Y296UE;6)E +M<B!T:&%T(&%N('5N8V]M<')E<W-E9"!T87(@87)C:&EV92!C;VYS:7-T<R!O +M9B!A;'1E<FYA=&EN9PIH96%D97)S(&%N9"!B;V1I97,N($EF('1H92!B;V1I +M97,@8V]N<VES="!E;G1I<F5L>2!O9B!Z97)O(&)Y=&5S+`IT:&5N(&%L;"!T +M:&%T)W,@;F5E9&5D('1O(')E8V]N<W1R=6-T('1H92!A<F-H:79E(&ES('1O +M(')E8V]R9"!T:&4*<F5L871I=F5L>2!S;6%L;"!H96%D97)S(&%N9"!S=&]R +M92!A(&-O=6YT(&]F(&5A8V@@8V]N=&EG=6]U<R!B;&]C:PIO9B!Z97)O<RX@ +M5&AI<R!S:6UP;&4@)G%U;W0[<G5N+6QE;F=T:"!E;F-O9&EN9R9Q=6]T.R!I +M<R!V97)Y"F5F9F5C=&EV92P@8V]M<')E<W-I;F<@82!S86UP;&4@87)C:&EV +M92!W:71H(&$@9&]Z96X@96YT<FEE<R!D;W=N('1O"FIU<W0@82!F97<@:VEL +M;V)Y=&5S+"!E=F5N(&EF('1H;W-E(&5N=')I97,@<F%N9V4@=7`@=&\@,51" +M+B`*/"]0/@H\4#Y">2!W<FET:6YG(&$@8W5S=&]M($DO3R!L87EE<B!T:&%T +M(&EM<&QE;65N=',@<W5C:"!C;VUP<F5S<VEO;BP@=V4*8V%N('=R:71E('9E +M<GD@;&%R9V4@96YT<FEE<R!T:')O=6=H(&QI8F%R8VAI=F4@=&AE;B!R96%D +M('1H96T@8F%C:PIA;F0@=F5R:69Y('1H870@;&EB87)C:&EV92!C;W)R96-T +M;'D@:&%N9&QE<R!A;&P@;V8@=&AE(&)O=6YD87)Y"F-A<V5S+B`*/"]0/@H\ +M4#Y/9B!C;W5R<V4L(&5V96X@<V-A;FYI;F<@;W5T<'5T('1O(&1E=&5R;6EN +M92!Z97)O(&)L;V-K<R!C86X@=&%K90IQ=6ET92!A('=H:6QE+"!S;R!T:&4@ +M;&%R9V4@=&%R('1E<W1E<B!M86ME<R!O;F4@;6]R92!O<'1I;6EZ871I;VXZ +M"DQI8F%R8VAI=F4@:7,@)G%U;W0[;6]S=&QY)G%U;W0[('IE<F\M8V]P>2X@ +M5VAE;B!Y;W4@9VEV92!I="!A(&QA<F=E"F)L;V-K('1O('=R:71E('1O(&%N +M(&5N=')Y(&)O9'DL(&ET('=I;&P@<&%S<R!P;VEN=&5R<R!S=')A:6=H=`IT +M:')O=6=H('1O('1H92!O=71P=70@<F]U=&EN92P@97AC97!T(&EN('1H;W-E +M(&-A<V5S('=H97)E(&ET(&UU<W0*8V]P>2!D871A('1O(&-O<G)E8W1L>2!B +M=6EL9"!B;&]C:W,N(%1H92!L87)G92!T87(@=&5S=&5R('1A:V5S"F%D=F%N +M=&%G92!O9B!T:&ES('1O('%U:6-K;'D@9&5T96-T('=H96X@82!B;&]C:R!B +M96EN9R!W<FET=&5N(&]U="!B>0IT:&4@87)C:&EV92!W<FET97(@:7,@=&AE +M('-A;64@87,@<V]M92!O9B!T:&4@9&%T82!T:&%T('=A<R!G:79E;B!B>0IT +M:&4@=&5S="!A<R!T:&4@96YT<GD@8F]D>2P@86YD('-I;6EL87)L>2!W:&5N +M(')E861I;F<@=&AE(&%R8VAI=F4*8F%C:RX@"CPO4#X*/%`^5&%K96X@=&]G +M971H97(L('1H97-E('1R:6-K<R!A;&QO=R!T:&4@;&%R9V4@=&%R('=R:71E +M<B!T;R!T97-T"F9O<B!I<W-U97,@<W5C:"!A<R!P<F]P97(@<W1O<F%G92!O +M9B!V97)Y(&QA<F=E(&9I;&4@<VEZ97,@*'1A<B!F:6QE<PIS=7!P;W)T('-E +M=F5R86P@9&EF9F5R96YT('=A>7,@=&\@<W1O<F4@9FEL92!S:7IE<R!W:&EC +M:"!T<F%D92!O9F8*<&]R=&%B:6QI='D@=F5R<W5S(')A;F=E.R!L:6)A<F-H +M:79E('1R:65S('1O('5S92!T:&4@;6]S="!P;W)T86)L90IO;F4@:70@8V%N +M(&9O<B!E86-H(&5N=')Y*2!A;F0@:6YT96=E<B!O=F5R9FQO=R`H5VEN9&]W +M<R`S,BUB:70@/%14($-,05-3/2)W97-T97)N(CYO9F9?=#PO5%0^"F)R;VME +M('1H92!L87)G92!T87(@=&5S="!A;F0@;&5D(&QI8F%R8VAI=F4@=&\@;6%K +M92!H96%V:65R('5S92!O9@H\5%0@0TQ!4U,](G=E<W1E<FXB/FEN=#8T7W0\ +M+U14/B!I;G1E<FYA;&QY*2!I;B!A('1E<W0@=&AA="!R=6YS(&EN"G5N9&5R +M(#$O-"!S96-O;F0N(`H\+U`^"CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P +M:6XB/CQ"4CX*/"]0/@H\+T)/1%D^"CPO2%1-3#[^]W0BD$L`&Q4``(].```# +MX0\.Y?-C(4`4,"$`I($``'1E<W1D:7)<3&EB87)C:&EV94%D9&EN9U1E<W0N +M:'1M;(#,,E\[0DU?.T(\(41/0U194$4@2%1-3"!054),24,@(BTO+U<S0R\O +M1%1$($A434P@-"XP(%1R86YS:71I;VYA;"\O14XB/@H\2%1-3#X*/$A%040^ +M"@D\345402!(5%10+45154E6/2)#3TY414Y4+5194$4B($-/3E1%3E0](G1E +M>'0O:'1M;#L@8VAA<G-E=#UU=&8M."(^"@D\5$E43$4^/"]4251,13X*"3Q- +M151!($Y!344](D=%3D52051/4B(@0T].5$5.5#TB3&EB<F5/9F9I8V4@,RXS +M("`H56YI>"DB/@H)/$U%5$$@3D%-13TB0U)%051%1"(@0T].5$5.5#TB,C`Q +M,3`V,C8[,C(R,S4Q,#`B/@H)/$U%5$$@3D%-13TB0TA!3D=%1"(@0T].5$5. +M5#TB,C`Q,3`V,C8[,C(R-30U,#`B/@H)/%-464Q%(%194$4](G1E>'0O8W-S +M(CX*"3PA+2T*"0E`<&%G92![(&UA<F=I;CH@,"XW.6EN('T*"0E0('L@;6%R +M9VEN+6)O='1O;3H@,"XP.&EN('T*"0E(,2![(&UA<F=I;BUB;W1T;VTZ(#`N +M,#AI;B!]"@D)2#$N=V5S=&5R;B![(&9O;G0M9F%M:6QY.B`B3&EB97)A=&EO +M;B!397)I9B(L('-E<FEF('T*"0E(,2YC:FL@>R!F;VYT+69A;6EL>3H@(D)I +M='-T<F5A;2!697)A(%-A;G,B('T*"0E(,2YC=&P@>R!F;VYT+69A;6EL>3H@ +M(D9R965386YS(B!]"@D)4%)%+F-J:R![(&9O;G0M9F%M:6QY.B`B0FET<W1R +M96%M(%9E<F$@4V%N<R(L(&UO;F]S<&%C92!]"@D)2#(@>R!M87)G:6XM8F]T +M=&]M.B`P+C`X:6X@?0H)"4@R+F-T;"![(&9O;G0M9F%M:6QY.B`B1G)E95-A +M;G,B('T*"0E45"YC:FL@>R!F;VYT+69A;6EL>3H@(D)I='-T<F5A;2!697)A +M(%-A;G,B+"!M;VYO<W!A8V4@?0H)+2T^"@D\+U-464Q%/@H\+TA%040^"CQ" +M3T19($Q!3D<](F5N+553(B!$25(](DQ44B(^"CQ(,2!#3$%34STB=V5S=&5R +M;B(^26YT<F]D=6-T:6]N/"](,3X*/%`^3&EB87)C:&EV92!I<R!N;W<@82!F +M86ER;'D@8V]M<&QE>"!P:65C92!O9B!S;V9T=V%R92!T:&%T(')U;G,@;VX* +M82!N=6UB97(@;V8@9&EF9F5R96YT('!L871F;W)M<RX@02!T:&]R;W5G:"!T +M97-T('-U:71E(&ES(&5S<V5N=&EA;`IB;W1H(&9O<B!V97)I9GEI;F<@;F5W +M('!O<G1S(&%N9"!F;W(@96YS=7)I;F<@=&AA="!F=71U<F4@8VAA;F=E<PID +M;VXG="!B<F5A:R!E>&ES=&EN9R!F=6YC=&EO;F%L:71Y+B`*/"]0/@H\4#Y! +M;GD@<VEG;FEF:6-A;G0@8VAA;F=E('1O(&QI8F%R8VAI=F4L(&EN8VQU9&EN +M9R!M;W-T(&)U9R!F:7AE<RP*<VAO=6QD(&)E(&%C8V]M<&%N:65D(&)Y(&YE +M=R!T97-T<R!O<B!C:&%N9V5S('1O(&5X:7-T:6YG('1E<W1S+B!4:&ES"F%R +M=&EC;&4@97AP;&%I;G,@:&]W('1H92!L:6)A<F-H:79E('1E<W0@<W5I=&5S +M('=O<FL@86YD(&AO=R!T;PIE>'1E;F0@=&AE;2X@"CPO4#X*/$@Q($-,05-3 +M/2)W97-T97)N(CX\02!.04U%/2)"=6EL9&EN9U]A;F1?4G5N;FEN9U]T:&5? +M5&5S=%]0<F]G<F%M<R(^/"]!/@I"=6EL9&EN9R!A;F0@4G5N;FEN9R!T:&4@ +M5&5S="!0<F]G<F%M<SPO2#$^"CQ0/D5A8V@@;6%J;W(@8V]M<&]N96YT+2UL +M:6)A<F-H:79E+"!B<V1T87(L(&%N9"!B<V1C<&EO+2UH87,@82!T97-T"G!R +M;V=R86T@=&AA="!E>&5R8VES97,@=&AE(&9U;F-T:6]N86QI='D@;V8@=&AA +M="!C;VUP;VYE;G0N(%1H97-E"G1E<W0@<')O9W)A;7,@87)E(&-O;7!I;&5D +M(&EN('1H92!S86UE('=A>2!T:&%T('1H92!R97-T(&]F('1H90IL:6)A<F-H +M:79E('-U:71E(&ES(&-O;7!I;&5D+B`*/"]0/@H\4#Y4;R!R=6X@=&AE('1E +M<W0@<')O9W)A;7,L('EO=2!N965D('1O(&=I=F4@=&AE;2!T=V\@<&EE8V5S +M(&]F"FEN9F]R;6%T:6]N.B`*/"]0/@H\54P^"@D\3$D^/%`@4U193$4](FUA +M<F=I;BUB;W1T;VTZ(#!I;B(^5&AE(&9U;&P@<&%T:"!T;R!T:&4@9&ER96-T +M;W)Y"@EH;VQD:6YG('1H92`F<75O=#MR969E<F5N8V4@9FEL97,F<75O=#L@ +M"@D\+U`^"@D\3$D^/%`^5&AE(&9U;&P@<&%T:"!T;R!T:&4@97AE8W5T86)L +M92!P<F]G<F%M(&)E:6YG('1E<W1E9"`H;F]T"@EA<'!L:6-A8FQE('1O(&QI +M8F%R8VAI=F5?=&5S="!S:6YC92!L:6)A<F-H:79E(&ES(&-O;7!I;&5D(&EN +M=&\@=&AE"@ET97-T('!R;V=R86TI(`H)/"]0/@H\+U5,/@H\4#Y4:&4@<F5F +M97)E;F-E(&9I;&5S(&%R92!A(&-O;&QE8W1I;VX@;V8@:VYO=VX@:6YP=71S +M('1H870@87)E('5S960*:6X@=&AE('1E<W0@<')O8V5S<RX@5&AE>2!A<F4@ +M86QL('-T;W)E9"!I;B!U=65N8V]D960@9F]R;6%T(&EN(&9I;&5S"G=I=&@@ +M82`F<75O=#LN=74F<75O=#L@97AT96YS:6]N+B!4:&4@=&5S="!P<F]G<F%M +M<R!L;V]K(&EN(&$@9F5W"G-T86YD87)D(&QO8V%T:6]N<SL@:68@;F]N92!O +M9B!T:&]S92!W;W)K+"!Y;W4G;&P@;F5E9"!T;R!S<&5C:69Y('1H90H\5%0@ +M0TQ!4U,](G=E<W1E<FXB/BUR/"]45#X@;W!T:6]N('=I=&@@=&AE(&9U;&P@ +M<&%T:&YA;64@=&\@=&AE"F%P<')O<')I871E(&1I<F5C=&]R>2X@"CPO4#X* +M/%`^5&AE(&)S9'1A<E]T97-T(&%N9"!B<V1C<&EO7W1E<W0@<')O9W)A;7,@ +M<G5N(&)S9'1A<B!O<B!B<V1C<&EO"G)E<&5A=&5D;'D[('1H97D@;F5E9"!T +M:&4@9G5L;"!P871H('1O('1H92!A<'!R;W!R:6%T92!E>&5C=71A8FQE+@I! +M;'1H;W5G:"!B<V1T87)?=&5S="!A;F0@8G-D8W!I;U]T97-T(&%R92!S<&5C +M:69I8V%L;'D@:6YT96YD960@9F]R"G1E<W1I;F<@8G-D=&%R(&%N9"!B<V1C +M<&EO+"!T:&5Y('-H;W5L9"!B92!U<V%B;&4@9F]R('1E<W1I;F<@;W1H97(* +M=&%R(&%N9"!C<&EO('!R;V=R86US+B!);B!F86-T+"!R=6YN:6YG('1H97-E +M('1E<W0@<')O9W)A;7,@86=A:6YS=`IO=&AE<B!T87(@:6UP;&5M96YT871I +M;VYS(&ES(&$@9V]O9"!W87D@=&\@=F5R:69Y('1H870@=&AE('1E<W0*<')O +M9W)A;7,@=&AE;7-E;'9E<R!A<F4@=V]R:VEN9R!C;W)R96-T;'DN(`H\+U`^ +M"CQ0/E=H96X@<G5N+"!T:&4@=&5S="!P<F]G<F%M<R!O=71P=70@82!P<F]G +M<F5S<R!M97-S86=E(&9O<B!E86-H"G1E<W0L(&%N(&5R<F]R(&UE<W-A9V4@ +M9F]R(&5A8V@@9F%I;&5D(&%S<V5R=&EO;BP@86YD(&$@9FEN86P*<W5M;6%R +M>3H@"CPO4#X*/%!212!#3$%34STB=V5S=&5R;B(^)FYB<W`[4G5N;FEN9R!T +M97-T<R!I;CH@+W1M<"]B<V1T87)?=&5S="XR,#`Y+3`R+3$W5#(Q+C,P+C0P +M+3`P,`HF;F)S<#M2969E<F5N8V4@9FEL97,@=VEL;"!B92!R96%D(&9R;VTZ +M("9N8G-P.R`F;F)S<#LO:&]M92]T:6TO;&EB87)C:&EV92]T<G5N:R]T87(O +M=&5S=`HF;F)S<#M2=6YN:6YG('1E<W1S(&]N.B`O:&]M92]T:6TO;&EB87)C +M:&EV92]T<G5N:R]B<V1T87(*)FYB<W`[17AE<F-I<VEN9SH@8G-D=&%R(#(N +M-BXY,#!A("T@;&EB87)C:&EV92`R+C8N.3`P80HF;F)S<#LP.B!T97-T7S`* +M)FYB<W`[,3H@=&5S=%]B87-I8PHF;F)S<#LR.B!T97-T7V-O<'D*)FYB<W`[ +M('1E<W1?8V]P>2YC.C$W,3H@07-S97)T:6]N(&9A:6QE9#H@26YT<R!N;W0@ +M97%U86P*)FYB<W`[("9N8G-P.R`F;F)S<#L@,#TP"B9N8G-P.R`F;F)S<#L@ +M)FYB<W`[(&QS=&%T*&YA;64R("L@,RP@)F%M<#MS=#(I/2TQ"B9N8G-P.R!T +M97-T7V-O<'DN8SHQ-S$Z($9A:6QE9"`R-C0@=&EM97,*)FYB<W`[,SH@=&5S +M=%]G971D871E"B9N8G-P.S0Z('1E<W1?:&5L<`HF;F)S<#L@)FYB<W`[("XN +M+B!M;W)E(&]U='!U="!O;6ET=&5D("XN+@HF;F)S<#LQ(&]F(#$S('1E<W1S +M(')E<&]R=&5D(&9A:6QU<F5S"B9N8G-P.R!4;W1A;"!O9B`Q,#4P.3<@87-S +M97)T:6]N<R!C:&5C:V5D+@HF;F)S<#L@5&]T86P@;V8@,C8T(&%S<V5R=&EO +M;G,@9F%I;&5D+@HF;F)S<#L@5&]T86P@;V8@,"!A<W-E<G1I;VYS('-K:7!P +M960N/"]04D4^/%`^"E1H92!H96%D97(@;&EN97,@:&5R92!R96-O<F0Z(`H\ +M+U`^"CQ53#X*"3Q,23X\4"!35%E,13TB;6%R9VEN+6)O='1O;3H@,&EN(CYT +M:&4@9&ER96-T;W)Y('1H870@=VEL;"!B92!U<V5D"@EF;W(@<V-R871C:"!F +M:6QE<R!D=7)I;F<@=&AE('1E<W0N($EF(&$@=&5S="!F86EL<RP@=&AE('-C +M<F%T8V@*"69I;&5S('=I;&P@8F4@;&5F="!B96AI;F0@:6X@=&AI<R!D:7)E +M8W1O<GD@9F]R(&9U<G1H97(@9&5B=6=G:6YG+B`*"3PO4#X*"3Q,23X\4"!3 +M5%E,13TB;6%R9VEN+6)O='1O;3H@,&EN(CY4:&4@9&ER96-T;W)Y(&9R;VT@ +M=VAI8V@@=&AE"@ER969E<F5N8V4@9FEL97,@=VEL;"!B92!R96%D+B`*"3PO +M4#X*"3Q,23X\4"!35%E,13TB;6%R9VEN+6)O='1O;3H@,&EN(CY&;W(@8G-D +M=&%R7W1E<W0@86YD(&)S9&-P:6]?=&5S="P*"71H92!F=6QL('!A=&@@=&\@ +M=&AE(&5X96-U=&%B;&4@8F5I;F<@97AE<F-I<V5D+B`*"3PO4#X*"3Q,23X\ +M4#Y"87-I8R!V97)S:6]N(&EN9F]R;6%T:6]N(&%B;W5T('1H92!T87)G970N +M(`H)/"]0/@H\+U5,/@H\4#Y);B!T:&ES(&-A<V4L('1H92!T<F%I;&5R(&EN +M9&EC871E<R!T:&%T(&]N92!T97-T(&9A:6QE9"X@07,@>6]U"F-A;B!S964L +M('1H97)E('=A<R!A('-I;F=L92!A<W-E<G1I;VX@:6X@=&AE(&-O9&4@=&AA +M="!F86EL960@,C8T"G1I;65S+B!4:&4@9FER<W0@=&EM92!I="!F86EL960L +M(&ET('=A<R!B96-A=7-E(&%N(#Q45"!#3$%34STB=V5S=&5R;B(^;'-T870H +M*3PO5%0^"F-A;&P@<F5T=7)N960@+3$@:6YS=&5A9"!O9B!T:&4@>F5R;R!T +M:&%T('=A<R!E>'!E8W1E9"X@"CPO4#X*/$@Q($-,05-3/2)W97-T97)N(CX\ +M02!.04U%/2)"87-I8U]T97-T7W1E<FUI;F]L;V=Y(CX\+T$^0F%S:6,@=&5S +M=`IT97)M:6YO;&]G>3PO2#$^"CQ0/D5A8V@@=&5S="!P<F]G<F%M(&-O;G-I +M<W1S(&]F(&$@;G5M8F5R(&]F("9Q=6]T.W1E<W1S)G%U;W0[+B!%86-H"G1E +M<W0@:&%S(&$@;F%M92!A;F0@:7,@:6UP;&5M96YT960@:6X@82!#('-O=7)C +M92!F:6QE('=I=&@@=&AE('-A;64*;F%M92!A<R!T:&4@=&5S="X@5&5S=',@ +M=V]R:R!B>2!P97)F;W)M:6YG('-O;64@<V5R:65S(&]F(&]P97)A=&EO;G,* +M86YD(&UA:VEN9R`F<75O=#MA<W-E<G1I;VYS)G%U;W0[(&%B;W5T('1H92!R +M97-U;'1S+B!&;W(@97AA;7!L92P*;6%N>2!O9B!T:&4@;&EB87)C:&EV92!T +M97-T<R!O<&5N(&%N9"!R96%D(&%N(&%R8VAI=F4@86YD(&%S<V5R="!T:&%T +M"G!A<G1I8W5L87(@;W!E<F%T:6]N<R!S=6-C965D960@;W(@9F%I;&5D+B`H +M665S+"!I="!I<R!O9G1E;@II;7!O<G1A;G0@=&\@=F5R:69Y('1H870@:6QL +M96=A;"!R97%U97-T<R!G96YE<F%T92!A<'!R;W!R:6%T90IE<G)O<G,N*2`* +M/"]0/@H\4#Y(97)E(&ES(&$@<V]M97=H870@961I=&5D(&5X8V5R<'0@9G)O +M;2`\5%0@0TQ!4U,](G=E<W1E<FXB/G1E<W1?8V]M<&%T7WII<#PO5%0^+`IW +M:&EC:"!V97)I9FEE<R!C;VUP871I8FEL:71Y('=I=&@@=F%R:6]U<R!:25`@ +M9F]R;6%T(&%R8VAI=F5S.B`*/"]0/@H\4%)%($-,05-3/2)W97-T97)N(CXF +M;F)S<#L@1$5&24Y%7U1%4U0H=&5S=%]C;VUP871?>FEP*0HF;F)S<#L@>PHF +E;F)S<#L@)FYB<W`[("\J("XI('L/0!0`9,5+3`0````````````` +` +end diff --git a/libarchive/test/test_rar_multivolume_uncompressed_files.part06.rar.uu b/libarchive/test/test_rar_multivolume_uncompressed_files.part06.rar.uu new file mode 100644 index 00000000..6511cb68 --- /dev/null +++ b/libarchive/test/test_rar_multivolume_uncompressed_files.part06.rar.uu @@ -0,0 +1,299 @@ +begin 644 - +M4F%R(1H'`!EZ<Q$`#0`````````*JW0CD$L`C3,``(].```#8\SY_?-C(4`4 +M,"$`I($``'1E<W1D:7)<3&EB87)C:&EV94%D9&EN9U1E<W0N:'1M;(#,,E\[ +M0DU?.T(N+B!S971U<"!O;6ET=&5D("XN+B`J+PHF;F)S<#L@)FYB<W`[(&%S +M<V5R="@H82`](&%R8VAI=F5?<F5A9%]N97<H*2D@(3T@3E5,3"D["B9N8G-P +M.R`F;F)S<#L@87-S97)T17%U86Q);G0H05)#2$E615]/2RP*)FYB<W`[("9N +M8G-P.R`F;F)S<#L@)FYB<W`[(&%R8VAI=F5?<F5A9%]S=7!P;W)T7V-O;7!R +M97-S:6]N7V%L;"AA*2D["B9N8G-P.R`F;F)S<#L@87-S97)T17%U86Q);G0H +M05)#2$E615]/2RP*)FYB<W`[("9N8G-P.R`F;F)S<#L@)FYB<W`[(&%R8VAI +M=F5?<F5A9%]S=7!P;W)T7V9O<FUA=%]A;&PH82DI.PHF;F)S<#L@)FYB<W`[ +M(&5X=')A8W1?<F5F97)E;F-E7V9I;&4H;F%M92D["B9N8G-P.R`F;F)S<#L@ +M87-S97)T17%U86Q);G0H05)#2$E615]/2RP*)FYB<W`[("9N8G-P.R`F;F)S +M<#L@)FYB<W`[(&%R8VAI=F5?<F5A9%]O<&5N7V9I;&5N86UE*&$L(&YA;64L +M(#$P,C0P*2D["B9N8G-P.R`F;F)S<#L@)FYB<W`[+RH@4F5A9"!F:7)S="!E +M;G1R>2X@*B\*)FYB<W`[("9N8G-P.R`F;F)S<#MA<W-E<G1%<75A;$EN="A! +M4D-(259%7T]++"!A<F-H:79E7W)E861?;F5X=%]H96%D97(H82P@)F%M<#MA +M92DI.PHF;F)S<#L@)FYB<W`[("9N8G-P.V%S<V5R=$5Q=6%L4W1R:6YG*"9Q +M=6]T.TU%5$$M24Y&+TU!3DE&15-4+DU&)G%U;W0[+"!A<F-H:79E7V5N=')Y +M7W!A=&AN86UE*&%E*2D[/"]04D4^/%`^"E1H92`\5%0@0TQ!4U,](G=E<W1E +M<FXB/F%S<V5R=%A86%@\+U14/B!M86-R;W,@8VAE8VL@=&AA="!T:&5I<@IA +M<F=U;65N=',@<V%T:7-F>2!C97)T86EN(&-O;F1I=&EO;G,N($EF('1H92!A +M<W-E<G1I;VX@9F%I;',M+69O<@IE>&%M<&QE+"!I9B!T:&4@;F%M92!O9B!T +M:&4@9FER<W0@96YT<GD@:7,@;F]T"B9Q=6]T.TU%5$$M24Y&+TU!3DE&15-4 +M+DU&)G%U;W0[+2UT:&4@;6%C<F\@=VEL;"!R97!O<G0@=&AE('!R;V)L96TN +M(`H\+U`^"CQ0/E1H97)E(&%R92!T=V\@:6UP;W)T86YT(&1I9F9E<F5N8V5S +M(&)E='=E96X@=&AE(#Q45"!#3$%34STB=V5S=&5R;B(^87-S97)T6%A8/"]4 +M5#X*;6%C<F]S('5S960@:6X@=&AE<V4@=&5S="!H87)N97-S97,@86YD('1H +M92!)4T\@0R!S=&%N9&%R9"`\5%0@0TQ!4U,](G=E<W1E<FXB/F%S<V5R=#PO +M5%0^"FUA8W)O.B!&:7)S="P@=&AE<V4@87-S97)T(&UA8W)O<R!D;VXG="!E +M>&ET(&]N(&9A:6QU<F4N($)Y(&1E9F%U;'0L"G1H97D@<F5P;W)T('1H92!F +M86EL=7)E(&%N9"!R971U<FX@>F5R;R`H=&AE($,@;F]T:6]N(&]F("9Q=6]T +M.V9A;'-E)G%U;W0[*2X*4V5C;VYD+"!T:&5S92!M86-R;W,@:6YC;'5D92!V +M87)I86YT<R!T:&%T('!E<F9O<FT@82!V87)I971Y(&]F"G-P96-I9FEC('1E +M<W1S+B!4:&5S92!S<&5C:69I8R!V97)S:6]N<R`H<W5C:"!A<R`\5%0@0TQ! +M4U,](G=E<W1E<FXB/F%S<V5R=$5Q=6%L26YT/"]45#X*86YD(#Q45"!#3$%3 +M4STB=V5S=&5R;B(^87-S97)T17%U86Q3=')I;F<\+U14/B!I;B!T:&4@97AA +M;7!L92!A8F]V92D*9V5N97)A=&4@9&5T86EL960@;&]G(&UE<W-A9V5S(&]N +M(&9A:6QU<F4N($EN('!A<G1I8W5L87(L('1H97D@<')I;G0*=&AE('9A;'5E +M(&]F(&)O=&@@87)G=6UE;G1S.R!T:&ES(&=R96%T;'D@<VEM<&QI9FEE<R!D +M:6%G;F]S:6YG"F9A:6QU<F5S+B`*/"]0/@H\2#$@0TQ!4U,](G=E<W1E<FXB +M/CQ!($Y!344](DQI9F5?8WEC;&5?;V9?85]T97-T(CX\+T$^3&EF92!C>6-L +M92!O9@IA('1E<W0\+T@Q/@H\4#Y%86-H('1E<W0@<F5S:61E<R!I;B!A($,@ +M<V]U<F-E(&9I;&4@=VET:"!T:&4@<V%M92!N86UE(&%S('1H90IT97-T+B!4 +M:&4@=&5S="!I='-E;&8@:7,@82!F=6YC=&EO;B!T:&%T('1A:V5S(&YO(&%R +M9W5M96YT<RX@5&AE('1E<W0*:7,@9&5C;&%R960@=7-I;F<@=&AE(#Q45"!# +M3$%34STB=V5S=&5R;B(^1$5&24Y%7U1%4U0H*3PO5%0^(&UA8W)O+@I4:&ES +M(&UA8W)O('-E<G9E<R!B;W1H('1O(&5N<W5R92!T:&%T('1H92!T97-T(&ES +M(&1E8VQA<F5D(&-O<G)E8W1L>0IA;F0@87,@82!L86)E;"!T:&%T(&-A;B!B +M92!U<V5D('1O(&QO8V%T92!A;&P@9&5F:6YE9"!T97-T<RX@*$]N"E5N:7@M +M;&EK92!P;&%T9F]R;7,L(&$@<VEM<&QE(#Q45"!#3$%34STB=V5S=&5R;B(^ +M9W)E<#PO5%0^(&]P97)A=&EO;@II<R!U<V5D('1O(&-O;G-T<G5C="!A(&9I +M;&4@8V%L;&5D(#Q45"!#3$%34STB=V5S=&5R;B(^;&ES="YH/"]45#X*=&AA +M="!H;VQD<R!T:&4@;F%M97,@;V8@86QL(&]F('1H92!T97-T<RX@5&AI<R!M +M86ME<R!I="!V97)Y(&5A<WD@=&\*861D(&YE=R!T97-T<RXI(`H\+U`^"CQ0 +M/E1H92!T97-T(&AA<FYE<W,@9&5T97)M:6YE<R!W:&EC:"!T97-T<R!T;R!R +M=6XN($ET(&=O97,@=&AR;W5G:`IT:&4@9F]L;&]W:6YG('-T97!S('=H96YE +M=F5R(&ET(')U;G,@82!T97-T.B`*/"]0/@H\54P^"@D\3$D^/%`@4U193$4] +M(FUA<F=I;BUB;W1T;VTZ(#!I;B(^/%-44DE+13Y#;&]S97,@86QL(&9I;&4* +M"61E<V-R:7!T;W)S(&5X8V5P="!F;W(@<W1D:6XL('-T9&]U="P@86YD('-T +M9&5R<BX\+U-44DE+13X@*%1H:7,*"7-C<F5W<R!U<"!L:6)C(&]N('-O;64@ +M<&QA=&9O<FUS('-O(&AA<R!B965N(')E;6]V960N*2`*"3PO4#X*"3Q,23X\ +M4"!35%E,13TB;6%R9VEN+6)O='1O;3H@,&EN(CY#<F5A=&5S(&$@=&5M<&]R +M87)Y(&1I<F5C=&]R>0H)=VAO<V4@;F%M92!M871C:&5S('1H92!N86UE(&]F +M('1H92!T97-T(&%N9"!S=VET8VAE<R!I;G1O('1H870*"61I<F5C=&]R>2X@ +M"@D\+U`^"@D\3$D^/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ(#!I;B(^4F5S +M971S('1H92!C=7)R96YT(&QO8V%L92X@"@D\+U`^"@D\3$D^/%`@4U193$4] +M(FUA<F=I;BUB;W1T;VTZ(#!I;B(^0V%L;',@=&AE('1E<W0@9G5N8W1I;VXN +M(`H)/"]0/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB/DEF +M('1H97)E('=E<F4@;F\@87-S97)T:6]N"@EF86EL=7)E<RP@:70@=VEL;"!R +M96UO=F4@=&AE('1E;7!O<F%R>2!D:7)E8W1O<GDN("A)9B`\5%0@0TQ!4U,] +M(G=E<W1E<FXB/BUK/"]45#X*"6ES('-P96-I9FEE9"P@=&5M<&]R87)Y(&1I +M<F5C=&]R>2!A<F4@;&5F="!E=F5N(&EF('1H92!T97-T"@ES=6-C965D<RXI +M(`H)/"]0/@H)/$Q)/CQ0/CQ35%))2T4^268@=&AE<F4@87)E(&%N>2!O<&5N +M(&9I;&4@9&5S8W)I<'1O<G,@;W1H97(@=&AA;@H)<W1D:6XL('-T9&]U="P@ +M86YD('-T9&5R<BP@:70@<F5P;W)T<R!A;B!E<G)O<BX\+U-44DE+13X@5&5S +M=',*"7-H;W5L9"!N979E<B!L96%V92!O<&5N(&9I;&4@9&5S8W)I<'1O<G,N +M(`H)/"]0/@H\+U5,/@H\4#Y);B!P87)T:6-U;&%R+"!T97-T<R!C86X@<V%F +M96QY(&%S<W5M92!T:&%T.B`*/"]0/@H\54P^"@D\3$D^/%`@4U193$4](FUA +M<F=I;BUB;W1T;VTZ(#!I;B(^5&AE(&-U<G)E;G0@9&ER96-T;W)Y(&ES(&5M +M<'1Y"@EW:&5N('1H92!T97-T('-T87)T<RX@"@D\+U`^"@D\3$D^/%`@4U19 +M3$4](FUA<F=I;BUB;W1T;VTZ(#!I;B(^06YY(&9I;&5S(&-R96%T960@:6X@ +M=&AE(&-U<G)E;G0*"61I<F5C=&]R>2!W:6QL(&)E(')E;6]V960@9F]R('EO +M=2X@"@D\+U`^"@D\3$D^/%`^5&AE(&-U<G)E;G0@;&]C86QE(&ES('1H92!D +M969A=6QT("9Q=6]T.T,F<75O=#L@;&]C86QE+B`*"3PO4#X*/"]53#X*/%`^ +M5&5S=',@<VAO=6QD.B`*/"]0/@H\54P^"@D\3$D^/%`@4U193$4](FUA<F=I +M;BUB;W1T;VTZ(#!I;B(^4F5L96%S92!A;&P@;65M;W)Y+B!4:&4@=&5S=`H) +M<W5I=&5S(&%R92!O8V-A<VEO;F%L;'D@<G5N('5N9&5R(&$@;65M;W)Y(&1E +M8G5G9V5R('1O(&1E=&5C="!L96%K<PH):6X@=&AE(&QI8F%R8VAI=F4@;&EB +M<F%R>2X@"@D\+U`^"@D\3$D^/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ(#!I +M;B(^0VQO<V4@86QL(&]P96YE9"!F:6QE<RX@5&AI<R!H96QP<PH)=&\@8V%T +M8V@@9FEL92!D97-C<FEP=&]R(&QE86MS(&EN(&QI8F%R8VAI=F4N(`H)/"]0 +M/@H)/$Q)/CQ0/DYO="!R96%D(&]R('=R:71E(&%B<V]L=71E('!A=&AS+B`* +M"3PO4#X*/"]53#X*/$@Q($-,05-3/2)W97-T97)N(CX\02!.04U%/2)0;&%T +M9F]R;5]V87)I871I;VXB/CPO03Y0;&%T9F]R;0IV87)I871I;VX\+T@Q/@H\ +M4#Y3;VUE('1E<W1S(&%R92!S<&5C:69I8R!T;R!A('!A<G1I8W5L87(@<&QA +M=&9O<FTN(%-U8V@@=&5S=',*<VAO=6QD('5S92!A<'!R;W!R:6%T92!P;&%T +M9F]R;2US<&5C:69I8R!M86-R;W,@87,@9F]L;&]W<SH@"CPO4#X*/%!212!# +M3$%34STB=V5S=&5R;B(^(VEF(%]?4$Q!5$9/4DT*+BXN('9A<FEO=7,@:&5L +M<&5R(&9U;F-T:6]N<R`N+BX*(V5N9&EF"D1%1DE.15]415-4*&9O;U]P;&%T +M9F]R;2D*>PHC:68@7U]03$%41D]230HF;F)S<#L@)FYB<W`[+BXN('1E<W1S +M(&%S('5S=6%L("XN+BX*(V5L<V4*)FYB<W`[("9N8G-P.W-K:7!P:6YG*"9Q +M=6]T.W!L871F;W)M+7-P96-I9FEC('1E<W1S)G%U;W0[*3L*(V5N9&EF"GT\ +M+U!213X\4#X*26X@<&%R=&EC=6QA<BP@;F]T92!T:&%T(&%L;"!T97-T<R!A +M<F4@8V]M<&EL960@86YD(')U;B!O;B!A;&P*<&QA=&9O<FUS+B`*/"]0/@H\ +M4#Y-;W-T('1E<W1S(&%R92!N;W0@<&QA=&9O<FTM<W!E8VEF:6,@86YD('=I +M;&P@=&AU<R!E;F0@=7`@<G5N;FEN9PIO;B!M86YY(&1I9F9E<F5N="!P;&%T +M9F]R;7,N($EN(&]R9&5R('1O('-I;7!L:69Y('=R:71I;F<@<W5C:"!T97-T +M<RP*=')Y('1O('5S92!P;&%T9F]R;2UI;F1E<&5N9&5N="!C;V1I;F<Z(`H\ +M+U`^"CQ53#X*"3Q,23X\4"!35%E,13TB;6%R9VEN+6)O='1O;3H@,&EN(CY5 +M<V4@<W1D:6\@/%14($-,05-3/2)W97-T97)N(CYF;W!E;B@I/"]45#XL"@D\ +M5%0@0TQ!4U,](G=E<W1E<FXB/F9W<FET92@I/"]45#XL(#Q45"!#3$%34STB +M=V5S=&5R;B(^9G)E860H*3PO5%0^+`H)86YD(#Q45"!#3$%34STB=V5S=&5R +M;B(^9F-L;W-E*"D\+U14/B!T;R!A8V-E<W,@9FEL97,@=VAE;F5V97(*"69E +M87-I8FQE+B`*"3PO4#X*"3Q,23X\4#Y,;V]K('1H<F]U9V@@=&AE(#Q45"!# +M3$%34STB=V5S=&5R;B(^=&5S="YH/"]45#X@:&5A9&5R('1O"@ES964@:68@ +M=&AE<F4@87)E(&%S<V5R=%AX>"@I(&9U;F-T:6]N<R!T:&%T('EO=2!C86X@ +M=7-E+B!4:&5R92=S(&$*"6QI<W0@;V8@=&AE(&UO<F4@<&]P=6QA<B!O;F5S +M(&)E;&]W+"!B=70@;F5W(&]N97,@87)E(&]F=&5N(&%D9&5D+B`*"3PO4#X* +M/"]53#X*/$@Q($-,05-3/2)W97-T97)N(CX\02!.04U%/2)!<W-E<G1?;6%C +M<F]S(CX\+T$^07-S97)T(&UA8W)O<SPO2#$^"CQ0/E1H92!F;VQL;W=I;F<@ +M:7,@82!N96-E<W-A<FEL>2!I;F-O;7!L971E(&QI<W0@;V8@87-S97)T(&9U +M;F-T:6]N<PIA=F%I;&%B;&4@=&\@=&5S=',Z(`H\+U`^"CQ53#X*"3Q,23X\ +M4"!35%E,13TB;6%R9VEN+6)O='1O;3H@,&EN(CY"87-I8R!E<75A;&ET>3H@ +M/%14($-,05-3/2)W97-T97)N(CYA<W-E<G1%<75A;$EN=#PO5%0^+`H)/%14 +M($-,05-3/2)W97-T97)N(CYA<W-E<G1%<75A;%-T<FEN9SPO5%0^+"`\5%0@ +M0TQ!4U,](G=E<W1E<FXB/F%S<V5R=$5Q=6%L365M/"]45#X*"0D\+U`^"@D\ +M3$D^/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ(#!I;B(^1FEL92!C<F5A=&EO +M;CH@/%14($-,05-3/2)W97-T97)N(CYA<W-E<G1-86ME1FEL93PO5%0^+`H) +M/%14($-,05-3/2)W97-T97)N(CYA<W-E<G1-86ME4WEM;&EN:SPO5%0^+"`\ +M5%0@0TQ!4U,](G=E<W1E<FXB/F%S<V5R=$UA:V5(87)D;&EN:SPO5%0^+`H) +M/%14($-,05-3/2)W97-T97)N(CYA<W-E<G1-86ME1&ER/"]45#X@"@D\+U`^ +M"@D\3$D^/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ(#!I;B(^1FEL92!T97-T +M<SH@/%14($-,05-3/2)W97-T97)N(CYA<W-E<G1)<U)E9SPO5%0^+`H)/%14 +M($-,05-3/2)W97-T97)N(CYA<W-E<G1)<T1I<CPO5%0^+"`\5%0@0TQ!4U,] +M(G=E<W1E<FXB/F%S<V5R=$ES4WEM;&EN:SPO5%0^+`H)/%14($-,05-3/2)W +M97-T97)N(CYA<W-E<G1&:6QE4VEZ93PO5%0^+"`\5%0@0TQ!4U,](G=E<W1E +M<FXB/F%S<V5R=$9I;&5.;&EN:W,\+U14/BP*"3Q45"!#3$%34STB=V5S=&5R +M;B(^87-S97)T1FEL94UT:6UE/"]45#X@"@D\+U`^"@D\3$D^/%`^1FEL92!C +M;VYT96YT<SH@/%14($-,05-3/2)W97-T97)N(CYA<W-E<G1&:6QE16UP='D\ +M+U14/BP*"3Q45"!#3$%34STB=V5S=&5R;B(^87-S97)T1FEL94YO;D5M<'1Y +M/"]45#XL(#Q45"!#3$%34STB=V5S=&5R;B(^87-S97)T1FEL94-O;G1E;G1S +M/"]45#XL"@D\5%0@0TQ!4U,](G=E<W1E<FXB/F%S<V5R=%1E>'1&:6QE0V]N +M=&5N=',\+U14/B`*"3PO4#X*/"]53#X*/$@Q($-,05-3/2)W97-T97)N(CX\ +M02!.04U%/2)2969E<F5N8V5?1FEL97,B/CPO03Y2969E<F5N8V4@1FEL97,\ +M+T@Q/@H\4#Y-86YY('1E<W1S(')E<75I<F4@<F5A9&EN9R!A('!R92UC;VYS +M=')U8W1E9"!R969E<F5N8V4@9FEL92X@4W5C:`IF:6QE<R!A<F4@<W1O<F5D +M('=I=&@@=&AE('-O=7)C92!C;V1E(&9O<B!T:&4@87-S;V-I871E9"!T97-T +M('-U:71E+@I2969E<F5N8V4@9FEL97,@87)E(&YA;65D(&%C8V]R9&EN9R!T +M;R!T:&4@=&5S="!A;F0@;75S="!B92!U=65N8V]D960*=&\@8F4@8VAE8VME +M9"!I;G1O('-O=7)C92!C;VYT<F]L+B`*/"]0/@H\4#Y&;W(@97AA;7!L92P@ +M:68@>6]U(&YE960@82!R969E<F5N8V4@=&%R(&%R8VAI=F4@=&\@=7-E('=I +M=&@*/%14($-,05-3/2)W97-T97)N(CYT97-T7V9O;SPO5%0^+"!T:&4@9FEL +M92!S:&]U;&0@8F4@;F%M960*/%14($-,05-3/2)W97-T97)N(CYT97-T7V9O +M;RYT87(\+U14/B!A;F0@<W1O<F5D(&EN('-O=7)C92!C;VYT<F]L(&%S"CQ4 +M5"!#3$%34STB=V5S=&5R;B(^=&5S=%]F;V\N=&%R+G5U/"]45#XN(`H\+U`^ +M"CQ0/E=I=&AI;B!T:&4@=&5S="!C;V1E+"!Y;W4@8V%N(')E8V]V97(@=&AE +M(')E9F5R96YC92!F:6QE('=I=&@Z(`H\+U`^"CQ04D4@0TQ!4U,](G=E<W1E +M<FXB(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P+C)I;B(^)FYB<W`[("9N8G-P +M.R!E>'1R86-T7W)E9F5R96YC95]F:6QE*"9Q=6]T.W1E<W1?9F]O+G1A<B9Q +M=6]T.RD[/"]04D4^/%`^"E1H92`\5%0@0TQ!4U,](G=E<W1E<FXB/F5X=')A +M8W1?<F5F97)E;F-E7V9I;&4H*3PO5%0^(&9U;F-T:6]N('=I;&P*=75D96-O +M9&4@=&AE(')E<75E<W1E9"!F:6QE(&%N9"!P=70@=&AE(')E<W5L="!I;B!T +M:&4@8W5R<F5N=`ID:7)E8W1O<GDN(`H\+U`^"CQ0/DQO;VL@870@/%14($-, +M05-3/2)W97-T97)N(CYT97-T7W)E861?9F]R;6%T7V-P:6]?8FEN7V)E+F,\ +M+U14/@IF;W(@82!S:6UP;&4@97AA;7!L92!O9B!T:&ES('5S86=E+B`*/"]0 +M/@H\4#Y!(&9E=R!O9B!T:&4@;VQD97(@=&5S=',@<W1O<F4@<F5F97)E;F-E +M(&1A=&$@=VET:&EN('1H92!S;W5R8V4*8V]D92!A<R!A(&AE>"UE;F-O9&5D +M(&%R<F%Y(&]F(&-H87)A8W1E<G,N(%1H:7,@=V%S(&-O;6UO;B!B969O<F4* +M/%14($-,05-3/2)W97-T97)N(CYE>'1R86-T7W)E9F5R96YC95]F:6QE*"D\ +M+U14/B!W87,@861D960@86YD(&ES"FYO="!R96-O;6UE;F1E9"!F;W(@;F5W +M(&-O9&4N(`H\+U`^"CQ(,2!#3$%34STB=V5S=&5R;B(^/$$@3D%-13TB1&]S +M7V%N9%]$;VYT<R(^/"]!/D1O<R!A;F0@1&]N=',\+T@Q/@H\54P^"@D\3$D^ +M/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ(#!I;B(^1$\@=7-E(&%S<V5R=',@ +M;&EB97)A;&QY+B!)="=S"@EC;VUM;VX@=&\@:&%V92!A;B!A<W-E<G0@;VX@ +M86QM;W-T(&5V97)Y(&QI;F4N(`H)/"]0/@H)/$Q)/CQ0(%-464Q%/2)M87)G +M:6XM8F]T=&]M.B`P:6XB/D1/('5S92!A<W-E<G1%<75A;$EN="P*"6%S<V5R +M=$5Q=6%L4W1R:6YG+"!A<W-E<G1%<75A;$UE;2!T;R!T97-T(&5Q=6%L:71Y +M(&EN<W1E860@;V8@<&QA:6X*"6%S<V5R="@I.R!T:&4@<W!E8VEA;&EZ960@ +M9F]R;7,@9VEV92!A(&QO="!M;W)E(&EN9F]R;6%T:6]N(&]N(&$*"69A:6QU +M<F4N(`H)/"]0/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB +M/D1/('1E<W0@>6]U<B!T97-T<SL@97AP97)I;65N="!B>0H)8VAA;F=I;F<@ +M82!P:65C92!O9B!C;V1E(&%N9"!M86ME('-U<F4@>6]U<B!T97-T(&9A:6QS +M+B!)9B!Y;W4@=&AI;FL*"7EO=2=V92!F;W5N9"!A(&)U9RP@=V4@<F5C;VUM +M96YD('=R:71I;F<@=&AE('1E<W0@9FER<W0L(&UA:V4@<W5R90H)=&AE('1E +M<W0@9F%I;',L('1H96X@9FEX:6YG('1H92!B=6<N(`H)/"]0/@H)/$Q)/CQ0 +M(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB/D1/(')U;B!A;&P@;V8@=&AE +M('1E<W1S(&)E9F]R90H)<W5B;6ET=&EN9R!A(&-H86YG92X@1&5P96YD:6YG +M(&]N('EO=7(@8G5I;&0@96YV:7)O;FUE;G0L(#Q45"!#3$%34STB=V5S=&5R +M;B(^;6%K90H)=&5S=#PO5%0^(&]R(#Q45"!#3$%34STB=V5S=&5R;B(^;6%K +M92!C:&5C:SPO5%0^('=I;&P@=7-U86QL>2!R=6X*"6%L;"!O9B!T:&4@=&5S +M=',N(`H)/"]0/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB +M/D1/3B=4(')E;'D@;VX@/%14($-,05-3/2)W97-T97)N(CY(059%7SPO5%0^ +M"@EM86-R;W,@9G)O;2!C;VYF:6<N:"X@*$EF('1H92!T97-T<R!U<V4@=&AE +M('-A;64@/%14($-,05-3/2)W97-T97)N(CY(059%7SPO5%0^"@EM86-R;W,@ +M87,@=&AE(&-O9&4@8F5I;F<@=&5S=&5D('1H96X@8V]N9FEG=7)A=&EO;B!P +M<F]B;&5M<R!W:6QL(&)E"@EC;W9E<F5D('5P+BD@"@D\+U`^"@D\3$D^/%`@ +M4U193$4](FUA<F=I;BUB;W1T;VTZ(#!I;B(^1$\@=7-E(')U;G1I;64@=&5S +M=',@9F]R('!L871F;W)M"@EF96%T=7)E<RX@1F]R(&5X86UP;&4L('1H92!! +M0TP@=&5S=',@=')Y('1O('-E="!A;B!!0TP@;VX@82!F:6QE(&%N9`H)<F5A +M9"!I="!B86-K('1O(&1E=&5R;6EN92!I9B!!0TP@<W5P<&]R="!I<R!A=F%I +M;&%B;&4L('1H96X@=&AE>0H)97AE<F-I<V4@=&AE(&QI8F%R8VAI=F4@04-, +M(&AA;F1L:6YG+B`*"3PO4#X*"3Q,23X\4"!35%E,13TB;6%R9VEN+6)O='1O +M;3H@,&EN(CY$3R!L;V]K(&%T(&5X:7-T:6YG('1E<W1S+B!/9G1E;BP*"6$@ +M8G5G(&-A;B!B92!T97-T960@8GD@861D:6YG(&IU<W0@82!C;W5P;&4@;V8@ +M87-S97)T<R!T;R!A;@H)97AI<W1I;F<@=&5S="!I;G-T96%D(&]F('=R:71I +M;F<@82!N97<@;VYE+B`*"3PO4#X*"3Q,23X\4"!35%E,13TB;6%R9VEN+6)O +M='1O;3H@,&EN(CY$3R!I;7!R;W9E(&5X:7-T:6YG('1E<W1S+B!);@H)<&%R +M=&EC=6QA<BP@:68@>6]U('-E92!A('1E<W0@9F%I;'5R92!T:&%T(&ES(&AA +M<F0@=&\@=6YD97)S=&%N9"P*"6-O;G-I9&5R(&%D9&EN9R!A(&9A:6QU<F4H +M*2!M97-S86=E(&]R(&-O;6UE;G1S('-O('1H92!N97AT('!E<G-O;@H)=VEL +M;"!H879E(&%N(&5A<VEE<B!T:6UE+B`*"3PO4#X*"3Q,23X\4#Y$3R!A<VL@ +M;VX@=&AE(&UA:6QI;F<@;&ES=',@:68@>6]U(&AA=F4@<75E<W1I;VYS+B!3 +M;VUE('1E<W1S"@EA<F4@8F5T=&5R('=R:71T96X@=&AA;B!O=&AE<G,N(`H) +M/"]0/@H\+U5,/@H\2#$@0TQ!4U,](G=E<W1E<FXB/CQ!($Y!344](E-O;65? +M97AA;7!L97-?;V9?=&5S=',B/CPO03Y3;VUE"F5X86UP;&5S(&]F('1E<W1S +M/"](,3X*/$@R($-,05-3/2)W97-T97)N(CX\02!.04U%/2),:6)A<F-H:79E +M7W)E861?=&5S=',B/CPO03Y,:6)A<F-H:79E"G)E860@=&5S=',\+T@R/@H\ +M4#Y4:&5R92!A<F4@<75I=&4@82!F97<@<F5A9"!T97-T<R!T:&%T('-I;7!L +M>2!R96%D(&$@<')E+6)U:6QT"FEN<'5T(&9I;&4@86YD('9E<FEF>2!T:&4@ +M<F5S=6QT<RX@5&AE<V4@=7-E(#Q45"!#3$%34STB=V5S=&5R;B(^97AT<F%C +M=%]R969E<F5N8V5?9FEL92@I/"]45#X*=&\@9&5C;V1E(&$@=75E;F-O9&5D +M(&EN<'5T(&9I;&4L('1H96X@;W!E;B!T:&%T(&9I;&4@=VET:"!L:6)A<F-H +M:79E"F%N9"!V97)I9GD@=&AE(')E<W5L=',N($UO<W0@;V8@=&AE<V4@87)E +M('!R971T>2!S=')A:6=H=&9O<G=A<F0N(`H\+U`^"CQ(,B!#3$%34STB=V5S +M=&5R;B(^/$$@3D%-13TB3&EB87)C:&EV95]R96%D+W=R:71E7W1E<W1S(CX\ +M+T$^3&EB87)C:&EV90IR96%D+W=R:71E('1E<W1S/"](,CX*/%`^36]S="!O +M9B!T:&4@=W)I=&4@=&5S=',@<F5A;&QY(&IU<W0@=F5R:69Y('1H870@;&EB +M87)C:&EV92!C86X*<F5A9"!W:&%T(&ET('=R:71E<RX@5&AE<V4@9V5N97)A +M;&QY('5S92!T:&4@;65M;W)Y(&EN=&5R9F%C97,N(%1H97D*9F5E9"!A<F-H +M:79E(&5N=')I97,@:6YT;R!T:&4@=W)I=&5R('1O(&-R96%T92!A;B!A<F-H +M:79E(&EN(&UE;6]R>0IA;F0@=&AE;B!O<&5N('1H92!M96UO<GD@86=A:6X@ +M=&\@<F5A9"!T:&4@9&%T82!B86-K(&%N9"!V97)I9GD@=&AA=`II="!I<R!T +M:&4@<V%M92X@"CPO4#X*/$@R($-,05-3/2)W97-T97)N(CX\02!.04U%/2), +M:6)A<F-H:79E7W=R:71E7W9A;&ED871O<G,B/CPO03Y,:6)A<F-H:79E"G=R +M:71E('9A;&ED871O<G,\+T@R/@H\4#Y!(&9E=R!W<FET92!T97-T<R!W<FET +M92!A;B!A<F-H:79E(&EN=&\@;65M;W)Y(&%N9"!T:&5N(&EN<W!E8W0*=&AE +M(&%C='5A;"!B>71E<R!T;R!V97)I9GD@=&AA="!T:&4@87)C:&EV92!W87,@ +M8W)E871E9"!C;W)R96-T;'DN"E1H97-E('1E<W1S(&%R92!N:6-E('1O(&AA +M=F4@8G5T(&%R92!T961I;W5S('1O(&)U:6QD+B`*/"]0/@H\4#Y4:&5R92!A +M<F4@86QS;R!A(&-O=7!L92!O9B!S=6-H('9A;&ED871O<G,@9F]R(&)S9'1A +M<B!A;F0@8G-D8W!I;RX*5&AE<V4@87)E('9E<GD@=')I8VMY('-I;F-E('1H +M92!E>&%C="!D871A(&-O;G1A:6YS('9A;'5E<R!T:&%T('1H90IT97-T(&-A +M;FYO="!C;VUP;&5T96QY(&-O;G1R;VP@*'-U8V@@87,@=&AE(&-U<G)E;G0@ +M=&EM92!O<@IU<V5R;F%M92DN(`H\+U`^"CQ(,B!#3$%34STB=V5S=&5R;B(^ +M/$$@3D%-13TB1&ES:U]T97-T<R(^/"]!/D1I<VL@=&5S=',\+T@R/@H\4#Y, +M:6)A<F-H:79E)W,@9&ES:R!)+T\@05!)<RP@87,@=V5L;"!A<R!B<V1T87(@ +M86YD(&)S9&-P:6\L(&YE960@=&\*;W!E<F%T92!B>2!V97)I9GEI;F<@9FEL +M97,@;VX@9&ES:RX@5&\@;6%K92!T:&ES(&5A<VEE<BP@=&AE('1E<W0*9G)A +M;65W;W)K(&YO=R!H87,@82!L87)G92!N=6UB97(@;V8@87-S97)T:6]N<R!T +M;R!V97)I9GD@=&EM97-T86UP<RP*<&5R;6ES<VEO;G,L(&%N9"!O=&AE<B!B +M87-I8R!F:6QE(&1A=&$N(%1H97-E(&%S<V5R=&EO;G,@=7-E"F%P<')O<')I +M871E('-Y<W1E;2!C86QL<R!F;W(@96%C:"!P;&%T9F]R;3L@;F5W('1E<W1S +M('-H;W5L9"!T<GD@=&\*879O:60@=7-I;F<@/%14($-,05-3/2)W97-T97)N +M(CYS=&%T*"D\+U14/BP@=VAI8V@@:7,@;F]T('5N:69O<FUL>0IA=F%I;&%B +M;&4N(`H\+U`^"CQ(,B!#3$%34STB=V5S=&5R;B(^/$$@3D%-13TB1G5Z>E]T +M97-T97(B/CPO03Y&=7IZ('1E<W1E<CPO2#(^"CQ0/E1H92!F=7IZ('1E<W1E +M<B!I<R!O;F4@;V8@=&AE(&9E=R!T97-T<R!T:&%T(&1O97,@;F]T(&%G9W)E +M<W-I=F5L>0IU<V4@87-S97)T:6]N<RX@271S('!U<G!O<V4@:7,@=&\@=')Y +M(&%N9"!C<F%S:"!L:6)A<F-H:79E(&)Y(&9E961I;F<*:70@:6YP=70@=&AA +M="!I<R!S;&EG:'1L>2!D86UA9V5D+B`H4F5M96UB97(@=&AA="!L:6)A<F-H +M:79E(&1O97,*:&%V92!S;VUE(&9A:6QS869E(&-O9&4@=&AA="!D96QI8F5R +M871E;'D@86)O<G1S('1H92!E;G1I<F4@<')O9W)A;0II9B!C97)T86EN(&EN +M=F%R:6%N=',@87)E('9I;VQA=&5D+BD@"CPO4#X*/%`^4VEN8V4@82!F=7IZ +M(&9A:6QU<F4@8V%U<V5S(&$@8W)A<V@L(&ET)W,@:6UP;W-S:6)L92!T;R!R +M97!O<G0@=&AE"F5R<F]R('1O('1H92!C;VYS;VQE+"!S;R!T:&4@9G5Z>B!T +M97-T97(@:6YS=&5A9"!G96YE<F%T97,@80IR86YD;VUL>2UD86UA9V5D(&9I +M;&4L('-A=F5S('1H870@9FEL92!T;R!D:7-K+"!T:&5N(')U;G,@=&AE(&9I +M;&4*=&AR;W5G:"!L:6)A<F-H:79E('1O('1R>2!T;R!P<F]V;VME(&$@8W)A +M<V@N($EF(&QI8F%R8VAI=F4@8W)A<VAE<PIT:&4@96YT:7)E('1E<W1E<BP@ +M=&AE(&EN<'5T('1H870@8V%U<V5D('1H92!C<F%S:"!W:6QL(&)E(&%V86EL +M86)L90IO;B!D:7-K(&9O<B!F=7)T:&5R(&%N86QY<VES+B`*/"]0/@H\4#Y! +M;'1H;W5G:"!I="!I<R!U;G5S=6%L(&9O<B!A('1E<W0@<')O9W)A;2!T;R!U +M<V4@<F%N9&]M(&EN<'5T+"!T:&4*9G5Z>B!T97-T97(@:&%S('!R;W9E;B!Q +M=6ET92!U<V5F=6P@870@=6YC;W9E<FEN9R!P;V]R(&5R<F]R"FAA;F1L:6YG +M+B!5;F9O<G1U;F%T96QY+"!T:&4@;F5E9"!T;R!W<FET92!T:&4@9&%T82!T +M;R!D:7-K(&)E9F]R90IE86-H('1E<W0@:7,@82!S:6=N:69I8V%N="!P97)F +M;W)M86YC92!I<W-U92X@"CPO4#X*/$@R($-,05-3/2)W97-T97)N(CX\02!. +M04U%/2),87)G95]T87)?=&5S=&5R(CX\+T$^3&%R9V4@=&%R('1E<W1E<CPO +M2#(^"CQ0/E1H92!L87)G92!T87(@=&5S=&5R(&%T=&5M<'1S('1O(&5X97)C +M:7-E(&)O=6YD87)Y(&-A<V5S('=I=&@@=F5R>0IL87)G92!E;G1R:65S+"!U +M<"!T;R`Q('1E<F%B>71E+B!/9B!C;W5R<V4L('=R:71I;F<@82`Q('1E<F%B +M>71E"F5N=')Y('1O(&%N('5N8V]M<')E<W-E9"!A<F-H:79E(&]N(&1I<VL@ +M;W(@;65M;W)Y(&ES('5N86-C97!T86)L92P*8F]T:"!F;W(@<&5R9F]R;6%N +M8V4@86YD('-P86-E(')E87-O;G,N($5V96X@9WII<"!O<B!B>FEP,@IC;VUP +M<F5S<VEO;B!W;VXG="!H96QP.R!A;'1H;W5G:"!S;6%L;&5R+"!T:&4@;W5T +M<'5T(&ES('-T:6QL(&QA<F=E"F%N9"!T:&4@=&EM92!N965D960@=&\@8V]M +M<')E<W,@<W5C:"!A(&QA<F=E(&%M;W5N="!O9B!D871A(&ES"G!R;VAI8FET +M:79E+B!3;R!T:&4@;&%R9V4@=&%R('1E<W1E<B!U<V5S(&$@=')I8VLN(`H\ +M+U`^"CQ0/E)E;65M8F5R('1H870@86X@=6YC;VUP<F5S<V5D('1A<B!A<F-H +M:79E(&-O;G-I<W1S(&]F(&%L=&5R;F%T:6YG"FAE861E<G,@86YD(&)O9&EE +M<RX@268@=&AE(&)O9&EE<R!C;VYS:7-T(&5N=&ER96QY(&]F('IE<F\@8GET +M97,L"G1H96X@86QL('1H870G<R!N965D960@=&\@<F5C;VYS=')U8W0@=&AE +M(&%R8VAI=F4@:7,@=&\@<F5C;W)D('1H90IR96QA=&EV96QY('-M86QL(&AE +M861E<G,@86YD('-T;W)E(&$@8V]U;G0@;V8@96%C:"!C;VYT:6=U;W5S(&)L +M;V-K"F]F('IE<F]S+B!4:&ES('-I;7!L92`F<75O=#MR=6XM;&5N9W1H(&5N +M8V]D:6YG)G%U;W0[(&ES('9E<GD*969F96-T:79E+"!C;VUP<F5S<VEN9R!A +E('-A;7!L92!A<F-H:79E('<*57L/0!0`[0V3P`4````````````` +` +end diff --git a/libarchive/test/test_rar_multivolume_uncompressed_files.part07.rar.uu b/libarchive/test/test_rar_multivolume_uncompressed_files.part07.rar.uu new file mode 100644 index 00000000..fa320626 --- /dev/null +++ b/libarchive/test/test_rar_multivolume_uncompressed_files.part07.rar.uu @@ -0,0 +1,299 @@ +begin 644 - +M4F%R(1H'`!EZ<Q$`#0````````!*\70AD$L`YP4``(].```#8Z8%7O-C(4`4 +M,"$`I($``'1E<W1D:7)<3&EB87)C:&EV94%D9&EN9U1E<W0N:'1M;(#,,E\[ +M0DU?.T)I=&@@82!D;WIE;B!E;G1R:65S(&1O=VX@=&\*:G5S="!A(&9E=R!K +M:6QO8GET97,L(&5V96X@:68@=&AO<V4@96YT<FEE<R!R86YG92!U<"!T;R`Q +M5$(N(`H\+U`^"CQ0/D)Y('=R:71I;F<@82!C=7-T;VT@22]/(&QA>65R('1H +M870@:6UP;&5M96YT<R!S=6-H(&-O;7!R97-S:6]N+"!W90IC86X@=W)I=&4@ +M=F5R>2!L87)G92!E;G1R:65S('1H<F]U9V@@;&EB87)C:&EV92!T:&5N(')E +M860@=&AE;2!B86-K"F%N9"!V97)I9GD@=&AA="!L:6)A<F-H:79E(&-O<G)E +M8W1L>2!H86YD;&5S(&%L;"!O9B!T:&4@8F]U;F1A<GD*8V%S97,N(`H\+U`^ +M"CQ0/D]F(&-O=7)S92P@979E;B!S8V%N;FEN9R!O=71P=70@=&\@9&5T97)M +M:6YE('IE<F\@8FQO8VMS(&-A;B!T86ME"G%U:71E(&$@=VAI;&4L('-O('1H +M92!L87)G92!T87(@=&5S=&5R(&UA:V5S(&]N92!M;W)E(&]P=&EM:7IA=&EO +M;CH*3&EB87)C:&EV92!I<R`F<75O=#MM;W-T;'DF<75O=#L@>F5R;RUC;W!Y +M+B!7:&5N('EO=2!G:79E(&ET(&$@;&%R9V4*8FQO8VL@=&\@=W)I=&4@=&\@ +M86X@96YT<GD@8F]D>2P@:70@=VEL;"!P87-S('!O:6YT97)S('-T<F%I9VAT +M"G1H<F]U9V@@=&\@=&AE(&]U='!U="!R;W5T:6YE+"!E>&-E<'0@:6X@=&AO +M<V4@8V%S97,@=VAE<F4@:70@;75S=`IC;W!Y(&1A=&$@=&\@8V]R<F5C=&QY +M(&)U:6QD(&)L;V-K<RX@5&AE(&QA<F=E('1A<B!T97-T97(@=&%K97,*861V +M86YT86=E(&]F('1H:7,@=&\@<75I8VML>2!D971E8W0@=VAE;B!A(&)L;V-K +M(&)E:6YG('=R:71T96X@;W5T(&)Y"G1H92!A<F-H:79E('=R:71E<B!I<R!T +M:&4@<V%M92!A<R!S;VUE(&]F('1H92!D871A('1H870@=V%S(&=I=F5N(&)Y +M"G1H92!T97-T(&%S('1H92!E;G1R>2!B;V1Y+"!A;F0@<VEM:6QA<FQY('=H +M96X@<F5A9&EN9R!T:&4@87)C:&EV90IB86-K+B`*/"]0/@H\4#Y486ME;B!T +M;V=E=&AE<BP@=&AE<V4@=')I8VMS(&%L;&]W('1H92!L87)G92!T87(@=W)I +M=&5R('1O('1E<W0*9F]R(&ES<W5E<R!S=6-H(&%S('!R;W!E<B!S=&]R86=E +M(&]F('9E<GD@;&%R9V4@9FEL92!S:7IE<R`H=&%R(&9I;&5S"G-U<'!O<G0@ +M<V5V97)A;"!D:69F97)E;G0@=V%Y<R!T;R!S=&]R92!F:6QE('-I>F5S('=H +M:6-H('1R861E(&]F9@IP;W)T86)I;&ET>2!V97)S=7,@<F%N9V4[(&QI8F%R +M8VAI=F4@=')I97,@=&\@=7-E('1H92!M;W-T('!O<G1A8FQE"F]N92!I="!C +M86X@9F]R(&5A8V@@96YT<GDI(&%N9"!I;G1E9V5R(&]V97)F;&]W("A7:6YD +M;W=S(#,R+6)I="`\5%0@0TQ!4U,](G=E<W1E<FXB/F]F9E]T/"]45#X*8G)O +M:V4@=&AE(&QA<F=E('1A<B!T97-T(&%N9"!L960@;&EB87)C:&EV92!T;R!M +M86ME(&AE879I97(@=7-E(&]F"CQ45"!#3$%34STB=V5S=&5R;B(^:6YT-C1? +M=#PO5%0^(&EN=&5R;F%L;'DI(&EN(&$@=&5S="!T:&%T(')U;G,@:6X*=6YD +M97(@,2\T('-E8V]N9"X@"CPO4#X*/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ +M(#!I;B(^/$)2/@H\+U`^"CPO0D]$63X*/"](5$U,/A3!="*05@!0+0``CTX` +M``,]/=-T\V,A0!0P+`"D@0``=&5S=&1I<EQT97-T<W5B9&ER7$QI8F%R8VAI +M=F5!9&1I;F=497-T+FAT;6S`S#-?.T);7SM"/"%$3T-465!%($A434P@4%5" +M3$E#("(M+R]7,T,O+T141"!(5$U,(#0N,"!4<F%N<VET:6]N86PO+T5.(CX* +M/$A434P^"CQ(14%$/@H)/$U%5$$@2%144"U%455)5CTB0T].5$5.5"U465!% +M(B!#3TY414Y4/2)T97AT+VAT;6P[(&-H87)S970]=71F+3@B/@H)/%1)5$Q% +M/CPO5$E43$4^"@D\345402!.04U%/2)'14Y%4D%43U(B($-/3E1%3E0](DQI +M8G)E3V9F:6-E(#,N,R`@*%5N:7@I(CX*"3Q-151!($Y!344](D-214%4140B +M($-/3E1%3E0](C(P,3$P-C(V.S(R,C,U,3`P(CX*"3Q-151!($Y!344](D-( +M04Y'140B($-/3E1%3E0](C(P,3$P-C(V.S(R,C4T-3`P(CX*"3Q35%E,12!4 +M65!%/2)T97AT+V-S<R(^"@D\(2TM"@D)0'!A9V4@>R!M87)G:6XZ(#`N-SEI +M;B!]"@D)4"![(&UA<F=I;BUB;W1T;VTZ(#`N,#AI;B!]"@D)2#$@>R!M87)G +M:6XM8F]T=&]M.B`P+C`X:6X@?0H)"4@Q+G=E<W1E<FX@>R!F;VYT+69A;6EL +M>3H@(DQI8F5R871I;VX@4V5R:68B+"!S97)I9B!]"@D)2#$N8VIK('L@9F]N +M="UF86UI;'DZ(")":71S=')E86T@5F5R82!386YS(B!]"@D)2#$N8W1L('L@ +M9F]N="UF86UI;'DZ(")&<F5E4V%N<R(@?0H)"5!212YC:FL@>R!F;VYT+69A +M;6EL>3H@(D)I='-T<F5A;2!697)A(%-A;G,B+"!M;VYO<W!A8V4@?0H)"4@R +M('L@;6%R9VEN+6)O='1O;3H@,"XP.&EN('T*"0E(,BYC=&P@>R!F;VYT+69A +M;6EL>3H@(D9R965386YS(B!]"@D)5%0N8VIK('L@9F]N="UF86UI;'DZ(")" +M:71S=')E86T@5F5R82!386YS(BP@;6]N;W-P86-E('T*"2TM/@H)/"]35%E, +M13X*/"](14%$/@H\0D]$62!,04Y'/2)E;BU54R(@1$E2/2),5%(B/@H\2#$@ +M0TQ!4U,](G=E<W1E<FXB/DEN=')O9'5C=&EO;CPO2#$^"CQ0/DQI8F%R8VAI +M=F4@:7,@;F]W(&$@9F%I<FQY(&-O;7!L97@@<&EE8V4@;V8@<V]F='=A<F4@ +M=&AA="!R=6YS(&]N"F$@;G5M8F5R(&]F(&1I9F9E<F5N="!P;&%T9F]R;7,N +M($$@=&AO<F]U9V@@=&5S="!S=6ET92!I<R!E<W-E;G1I86P*8F]T:"!F;W(@ +M=F5R:69Y:6YG(&YE=R!P;W)T<R!A;F0@9F]R(&5N<W5R:6YG('1H870@9G5T +M=7)E(&-H86YG97,*9&]N)W0@8G)E86L@97AI<W1I;F<@9G5N8W1I;VYA;&ET +M>2X@"CPO4#X*/%`^06YY('-I9VYI9FEC86YT(&-H86YG92!T;R!L:6)A<F-H +M:79E+"!I;F-L=61I;F<@;6]S="!B=6<@9FEX97,L"G-H;W5L9"!B92!A8V-O +M;7!A;FEE9"!B>2!N97<@=&5S=',@;W(@8VAA;F=E<R!T;R!E>&ES=&EN9R!T +M97-T<RX@5&AI<PIA<G1I8VQE(&5X<&QA:6YS(&AO=R!T:&4@;&EB87)C:&EV +M92!T97-T('-U:71E<R!W;W)K(&%N9"!H;W<@=&\*97AT96YD('1H96TN(`H\ +M+U`^"CQ(,2!#3$%34STB=V5S=&5R;B(^/$$@3D%-13TB0G5I;&1I;F=?86YD +M7U)U;FYI;F=?=&AE7U1E<W1?4')O9W)A;7,B/CPO03X*0G5I;&1I;F<@86YD +M(%)U;FYI;F<@=&AE(%1E<W0@4')O9W)A;7,\+T@Q/@H\4#Y%86-H(&UA:F]R +M(&-O;7!O;F5N="TM;&EB87)C:&EV92P@8G-D=&%R+"!A;F0@8G-D8W!I;RTM +M:&%S(&$@=&5S=`IP<F]G<F%M('1H870@97AE<F-I<V5S('1H92!F=6YC=&EO +M;F%L:71Y(&]F('1H870@8V]M<&]N96YT+B!4:&5S90IT97-T('!R;V=R86US +M(&%R92!C;VUP:6QE9"!I;B!T:&4@<V%M92!W87D@=&AA="!T:&4@<F5S="!O +M9B!T:&4*;&EB87)C:&EV92!S=6ET92!I<R!C;VUP:6QE9"X@"CPO4#X*/%`^ +M5&\@<G5N('1H92!T97-T('!R;V=R86US+"!Y;W4@;F5E9"!T;R!G:79E('1H +M96T@='=O('!I96-E<R!O9@II;F9O<FUA=&EO;CH@"CPO4#X*/%5,/@H)/$Q) +M/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB/E1H92!F=6QL('!A=&@@ +M=&\@=&AE(&1I<F5C=&]R>0H):&]L9&EN9R!T:&4@)G%U;W0[<F5F97)E;F-E +M(&9I;&5S)G%U;W0[(`H)/"]0/@H)/$Q)/CQ0/E1H92!F=6QL('!A=&@@=&\@ +M=&AE(&5X96-U=&%B;&4@<')O9W)A;2!B96EN9R!T97-T960@*&YO=`H)87!P +M;&EC86)L92!T;R!L:6)A<F-H:79E7W1E<W0@<VEN8V4@;&EB87)C:&EV92!I +M<R!C;VUP:6QE9"!I;G1O('1H90H)=&5S="!P<F]G<F%M*2`*"3PO4#X*/"]5 +M3#X*/%`^5&AE(')E9F5R96YC92!F:6QE<R!A<F4@82!C;VQL96-T:6]N(&]F +M(&MN;W=N(&EN<'5T<R!T:&%T(&%R92!U<V5D"FEN('1H92!T97-T('!R;V-E +M<W,N(%1H97D@87)E(&%L;"!S=&]R960@:6X@=75E;F-O9&5D(&9O<FUA="!I +M;B!F:6QE<PIW:71H(&$@)G%U;W0[+G5U)G%U;W0[(&5X=&5N<VEO;BX@5&AE +M('1E<W0@<')O9W)A;7,@;&]O:R!I;B!A(&9E=PIS=&%N9&%R9"!L;V-A=&EO +M;G,[(&EF(&YO;F4@;V8@=&AO<V4@=V]R:RP@>6]U)VQL(&YE960@=&\@<W!E +M8VEF>2!T:&4*/%14($-,05-3/2)W97-T97)N(CXM<CPO5%0^(&]P=&EO;B!W +M:71H('1H92!F=6QL('!A=&AN86UE('1O('1H90IA<'!R;W!R:6%T92!D:7)E +M8W1O<GDN(`H\+U`^"CQ0/E1H92!B<V1T87)?=&5S="!A;F0@8G-D8W!I;U]T +M97-T('!R;V=R86US(')U;B!B<V1T87(@;W(@8G-D8W!I;PIR97!E871E9&QY +M.R!T:&5Y(&YE960@=&AE(&9U;&P@<&%T:"!T;R!T:&4@87!P<F]P<FEA=&4@ +M97AE8W5T86)L92X*06QT:&]U9V@@8G-D=&%R7W1E<W0@86YD(&)S9&-P:6]? +M=&5S="!A<F4@<W!E8VEF:6-A;&QY(&EN=&5N9&5D(&9O<@IT97-T:6YG(&)S +M9'1A<B!A;F0@8G-D8W!I;RP@=&AE>2!S:&]U;&0@8F4@=7-A8FQE(&9O<B!T +M97-T:6YG(&]T:&5R"G1A<B!A;F0@8W!I;R!P<F]G<F%M<RX@26X@9F%C="P@ +M<G5N;FEN9R!T:&5S92!T97-T('!R;V=R86US(&%G86EN<W0*;W1H97(@=&%R +M(&EM<&QE;65N=&%T:6]N<R!I<R!A(&=O;V0@=V%Y('1O('9E<FEF>2!T:&%T +M('1H92!T97-T"G!R;V=R86US('1H96US96QV97,@87)E('=O<FMI;F<@8V]R +M<F5C=&QY+B`*/"]0/@H\4#Y7:&5N(')U;BP@=&AE('1E<W0@<')O9W)A;7,@ +M;W5T<'5T(&$@<')O9W)E<W,@;65S<V%G92!F;W(@96%C:`IT97-T+"!A;B!E +M<G)O<B!M97-S86=E(&9O<B!E86-H(&9A:6QE9"!A<W-E<G1I;VXL(&%N9"!A +M(&9I;F%L"G-U;6UA<GDZ(`H\+U`^"CQ04D4@0TQ!4U,](G=E<W1E<FXB/B9N +M8G-P.U)U;FYI;F<@=&5S=',@:6XZ("]T;7`O8G-D=&%R7W1E<W0N,C`P.2TP +M,BTQ-U0R,2XS,"XT,"TP,#`*)FYB<W`[4F5F97)E;F-E(&9I;&5S('=I;&P@ +M8F4@<F5A9"!F<F]M.B`F;F)S<#L@)FYB<W`[+VAO;64O=&EM+VQI8F%R8VAI +M=F4O=')U;FLO=&%R+W1E<W0*)FYB<W`[4G5N;FEN9R!T97-T<R!O;CH@+VAO +M;64O=&EM+VQI8F%R8VAI=F4O=')U;FLO8G-D=&%R"B9N8G-P.T5X97)C:7-I +M;F<Z(&)S9'1A<B`R+C8N.3`P82`M(&QI8F%R8VAI=F4@,BXV+CDP,&$*)FYB +M<W`[,#H@=&5S=%\P"B9N8G-P.S$Z('1E<W1?8F%S:6,*)FYB<W`[,CH@=&5S +M=%]C;W!Y"B9N8G-P.R!T97-T7V-O<'DN8SHQ-S$Z($%S<V5R=&EO;B!F86EL +M960Z($EN=',@;F]T(&5Q=6%L"B9N8G-P.R`F;F)S<#L@)FYB<W`[(#`],`HF +M;F)S<#L@)FYB<W`[("9N8G-P.R!L<W1A="AN86UE,B`K(#,L("9A;7`[<W0R +M*3TM,0HF;F)S<#L@=&5S=%]C;W!Y+F,Z,3<Q.B!&86EL960@,C8T('1I;65S +M"B9N8G-P.S,Z('1E<W1?9V5T9&%T90HF;F)S<#LT.B!T97-T7VAE;'`*)FYB +M<W`[("9N8G-P.R`N+BX@;6]R92!O=71P=70@;VUI='1E9"`N+BX*)FYB<W`[ +M,2!O9B`Q,R!T97-T<R!R97!O<G1E9"!F86EL=7)E<PHF;F)S<#L@5&]T86P@ +M;V8@,3`U,#DW(&%S<V5R=&EO;G,@8VAE8VME9"X*)FYB<W`[(%1O=&%L(&]F +M(#(V-"!A<W-E<G1I;VYS(&9A:6QE9"X*)FYB<W`[(%1O=&%L(&]F(#`@87-S +M97)T:6]N<R!S:VEP<&5D+CPO4%)%/CQ0/@I4:&4@:&5A9&5R(&QI;F5S(&AE +M<F4@<F5C;W)D.B`*/"]0/@H\54P^"@D\3$D^/%`@4U193$4](FUA<F=I;BUB +M;W1T;VTZ(#!I;B(^=&AE(&1I<F5C=&]R>2!T:&%T('=I;&P@8F4@=7-E9`H) +M9F]R('-C<F%T8V@@9FEL97,@9'5R:6YG('1H92!T97-T+B!)9B!A('1E<W0@ +M9F%I;',L('1H92!S8W)A=&-H"@EF:6QE<R!W:6QL(&)E(&QE9G0@8F5H:6YD +M(&EN('1H:7,@9&ER96-T;W)Y(&9O<B!F=7)T:&5R(&1E8G5G9VEN9RX@"@D\ +M+U`^"@D\3$D^/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ(#!I;B(^5&AE(&1I +M<F5C=&]R>2!F<F]M('=H:6-H('1H90H)<F5F97)E;F-E(&9I;&5S('=I;&P@ +M8F4@<F5A9"X@"@D\+U`^"@D\3$D^/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ +M(#!I;B(^1F]R(&)S9'1A<E]T97-T(&%N9"!B<V1C<&EO7W1E<W0L"@ET:&4@ +M9G5L;"!P871H('1O('1H92!E>&5C=71A8FQE(&)E:6YG(&5X97)C:7-E9"X@ +M"@D\+U`^"@D\3$D^/%`^0F%S:6,@=F5R<VEO;B!I;F9O<FUA=&EO;B!A8F]U +M="!T:&4@=&%R9V5T+B`*"3PO4#X*/"]53#X*/%`^26X@=&AI<R!C87-E+"!T +M:&4@=')A:6QE<B!I;F1I8V%T97,@=&AA="!O;F4@=&5S="!F86EL960N($%S +M('EO=0IC86X@<V5E+"!T:&5R92!W87,@82!S:6YG;&4@87-S97)T:6]N(&EN +M('1H92!C;V1E('1H870@9F%I;&5D(#(V-`IT:6UE<RX@5&AE(&9I<G-T('1I +M;64@:70@9F%I;&5D+"!I="!W87,@8F5C875S92!A;B`\5%0@0TQ!4U,](G=E +M<W1E<FXB/FQS=&%T*"D\+U14/@IC86QL(')E='5R;F5D("TQ(&EN<W1E860@ +M;V8@=&AE('IE<F\@=&AA="!W87,@97AP96-T960N(`H\+U`^"CQ(,2!#3$%3 +M4STB=V5S=&5R;B(^/$$@3D%-13TB0F%S:6-?=&5S=%]T97)M:6YO;&]G>2(^ +M/"]!/D)A<VEC('1E<W0*=&5R;6EN;VQO9WD\+T@Q/@H\4#Y%86-H('1E<W0@ +M<')O9W)A;2!C;VYS:7-T<R!O9B!A(&YU;6)E<B!O9B`F<75O=#MT97-T<R9Q +M=6]T.RX@16%C:`IT97-T(&AA<R!A(&YA;64@86YD(&ES(&EM<&QE;65N=&5D +M(&EN(&$@0R!S;W5R8V4@9FEL92!W:71H('1H92!S86UE"FYA;64@87,@=&AE +M('1E<W0N(%1E<W1S('=O<FL@8GD@<&5R9F]R;6EN9R!S;VUE('-E<FEE<R!O +M9B!O<&5R871I;VYS"F%N9"!M86MI;F<@)G%U;W0[87-S97)T:6]N<R9Q=6]T +M.R!A8F]U="!T:&4@<F5S=6QT<RX@1F]R(&5X86UP;&4L"FUA;GD@;V8@=&AE +M(&QI8F%R8VAI=F4@=&5S=',@;W!E;B!A;F0@<F5A9"!A;B!A<F-H:79E(&%N +M9"!A<W-E<G0@=&AA=`IP87)T:6-U;&%R(&]P97)A=&EO;G,@<W5C8V5E9&5D +M(&]R(&9A:6QE9"X@*%EE<RP@:70@:7,@;V9T96X*:6UP;W)T86YT('1O('9E +M<FEF>2!T:&%T(&EL;&5G86P@<F5Q=65S=',@9V5N97)A=&4@87!P<F]P<FEA +M=&4*97)R;W)S+BD@"CPO4#X*/%`^2&5R92!I<R!A('-O;65W:&%T(&5D:71E +M9"!E>&-E<G!T(&9R;VT@/%14($-,05-3/2)W97-T97)N(CYT97-T7V-O;7!A +M=%]Z:7`\+U14/BP*=VAI8V@@=F5R:69I97,@8V]M<&%T:6)I;&ET>2!W:71H +M('9A<FEO=7,@6DE0(&9O<FUA="!A<F-H:79E<SH@"CPO4#X*/%!212!#3$%3 +M4STB=V5S=&5R;B(^)FYB<W`[($1%1DE.15]415-4*'1E<W1?8V]M<&%T7WII +M<"D*)FYB<W`[('L*)FYB<W`[("9N8G-P.R`O*B`N+BX@<V5T=7`@;VUI='1E +M9"`N+BX@*B\*)FYB<W`[("9N8G-P.R!A<W-E<G0H*&$@/2!A<F-H:79E7W)E +M861?;F5W*"DI("$]($Y53$PI.PHF;F)S<#L@)FYB<W`[(&%S<V5R=$5Q=6%L +M26YT*$%20TA)5D5?3TLL"B9N8G-P.R`F;F)S<#L@)FYB<W`[("9N8G-P.R!A +M<F-H:79E7W)E861?<W5P<&]R=%]C;VUP<F5S<VEO;E]A;&PH82DI.PHF;F)S +M<#L@)FYB<W`[(&%S<V5R=$5Q=6%L26YT*$%20TA)5D5?3TLL"B9N8G-P.R`F +M;F)S<#L@)FYB<W`[("9N8G-P.R!A<F-H:79E7W)E861?<W5P<&]R=%]F;W)M +M871?86QL*&$I*3L*)FYB<W`[("9N8G-P.R!E>'1R86-T7W)E9F5R96YC95]F +M:6QE*&YA;64I.PHF;F)S<#L@)FYB<W`[(&%S<V5R=$5Q=6%L26YT*$%20TA) +M5D5?3TLL"B9N8G-P.R`F;F)S<#L@)FYB<W`[("9N8G-P.R!A<F-H:79E7W)E +M861?;W!E;E]F:6QE;F%M92AA+"!N86UE+"`Q,#(T,"DI.PHF;F)S<#L@)FYB +M<W`[("9N8G-P.R\J(%)E860@9FER<W0@96YT<GDN("HO"B9N8G-P.R`F;F)S +M<#L@)FYB<W`[87-S97)T17%U86Q);G0H05)#2$E615]/2RP@87)C:&EV95]R +M96%D7VYE>'1?:&5A9&5R*&$L("9A;7`[864I*3L*)FYB<W`[("9N8G-P.R`F +M;F)S<#MA<W-E<G1%<75A;%-T<FEN9R@F<75O=#M-151!+4E.1B]-04Y)1D53 +M5"Y-1B9Q=6]T.RP@87)C:&EV95]E;G1R>5]P871H;F%M92AA92DI.SPO4%)% +M/CQ0/@I4:&4@/%14($-,05-3/2)W97-T97)N(CYA<W-E<G186%A8/"]45#X@ +M;6%C<F]S(&-H96-K('1H870@=&AE:7(*87)G=6UE;G1S('-A=&ES9GD@8V5R +M=&%I;B!C;VYD:71I;VYS+B!)9B!T:&4@87-S97)T:6]N(&9A:6QS+2UF;W(* +M97AA;7!L92P@:68@=&AE(&YA;64@;V8@=&AE(&9I<G-T(&5N=')Y(&ES(&YO +M=`HF<75O=#M-151!+4E.1B]-04Y)1D535"Y-1B9Q=6]T.RTM=&AE(&UA8W)O +M('=I;&P@<F5P;W)T('1H92!P<F]B;&5M+B`*/"]0/@H\4#Y4:&5R92!A<F4@ +M='=O(&EM<&]R=&%N="!D:69F97)E;F-E<R!B971W965N('1H92`\5%0@0TQ! +M4U,](G=E<W1E<FXB/F%S<V5R=%A86#PO5%0^"FUA8W)O<R!U<V5D(&EN('1H +M97-E('1E<W0@:&%R;F5S<V5S(&%N9"!T:&4@25-/($,@<W1A;F1A<F0@/%14 +M($-,05-3/2)W97-T97)N(CYA<W-E<G0\+U14/@IM86-R;SH@1FER<W0L('1H +M97-E(&%S<V5R="!M86-R;W,@9&]N)W0@97AI="!O;B!F86EL=7)E+B!">2!D +M969A=6QT+`IT:&5Y(')E<&]R="!T:&4@9F%I;'5R92!A;F0@<F5T=7)N('IE +M<F\@*'1H92!#(&YO=&EO;B!O9B`F<75O=#MF86QS929Q=6]T.RDN"E-E8V]N +M9"P@=&AE<V4@;6%C<F]S(&EN8VQU9&4@=F%R:6%N=',@=&AA="!P97)F;W)M +M(&$@=F%R:65T>2!O9@IS<&5C:69I8R!T97-T<RX@5&AE<V4@<W!E8VEF:6,@ +M=F5R<VEO;G,@*'-U8V@@87,@/%14($-,05-3/2)W97-T97)N(CYA<W-E<G1% +M<75A;$EN=#PO5%0^"F%N9"`\5%0@0TQ!4U,](G=E<W1E<FXB/F%S<V5R=$5Q +M=6%L4W1R:6YG/"]45#X@:6X@=&AE(&5X86UP;&4@86)O=F4I"F=E;F5R871E +M(&1E=&%I;&5D(&QO9R!M97-S86=E<R!O;B!F86EL=7)E+B!);B!P87)T:6-U +M;&%R+"!T:&5Y('!R:6YT"G1H92!V86QU92!O9B!B;W1H(&%R9W5M96YT<SL@ +M=&AI<R!G<F5A=&QY('-I;7!L:69I97,@9&EA9VYO<VEN9PIF86EL=7)E<RX@ +M"CPO4#X*/$@Q($-,05-3/2)W97-T97)N(CX\02!.04U%/2),:69E7V-Y8VQE +M7V]F7V%?=&5S="(^/"]!/DQI9F4@8WEC;&4@;V8*82!T97-T/"](,3X*/%`^ +M16%C:"!T97-T(')E<VED97,@:6X@82!#('-O=7)C92!F:6QE('=I=&@@=&AE +M('-A;64@;F%M92!A<R!T:&4*=&5S="X@5&AE('1E<W0@:71S96QF(&ES(&$@ +M9G5N8W1I;VX@=&AA="!T86ME<R!N;R!A<F=U;65N=',N(%1H92!T97-T"FES +M(&1E8VQA<F5D('5S:6YG('1H92`\5%0@0TQ!4U,](G=E<W1E<FXB/D1%1DE. +M15]415-4*"D\+U14/B!M86-R;RX*5&AI<R!M86-R;R!S97)V97,@8F]T:"!T +M;R!E;G-U<F4@=&AA="!T:&4@=&5S="!I<R!D96-L87)E9"!C;W)R96-T;'D* +M86YD(&%S(&$@;&%B96P@=&AA="!C86X@8F4@=7-E9"!T;R!L;V-A=&4@86QL +M(&1E9FEN960@=&5S=',N("A/;@I5;FEX+6QI:V4@<&QA=&9O<FUS+"!A('-I +M;7!L92`\5%0@0TQ!4U,](G=E<W1E<FXB/F=R97`\+U14/B!O<&5R871I;VX* +M:7,@=7-E9"!T;R!C;VYS=')U8W0@82!F:6QE(&-A;&QE9"`\5%0@0TQ!4U,] +M(G=E<W1E<FXB/FQI<W0N:#PO5%0^"G1H870@:&]L9',@=&AE(&YA;65S(&]F +M(&%L;"!O9B!T:&4@=&5S=',N(%1H:7,@;6%K97,@:70@=F5R>2!E87-Y('1O +M"F%D9"!N97<@=&5S=',N*2`*/"]0/@H\4#Y4:&4@=&5S="!H87)N97-S(&1E +M=&5R;6EN97,@=VAI8V@@=&5S=',@=&\@<G5N+B!)="!G;V5S('1H<F]U9V@* +M=&AE(&9O;&QO=VEN9R!S=&5P<R!W:&5N979E<B!I="!R=6YS(&$@=&5S=#H@ +M"CPO4#X*/%5,/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB +M/CQ35%))2T4^0VQO<V5S(&%L;"!F:6QE"@ED97-C<FEP=&]R<R!E>&-E<'0@ +M9F]R('-T9&EN+"!S=&1O=70L(&%N9"!S=&1E<G(N/"]35%))2T4^("A4:&ES +M"@ES8W)E=W,@=7`@;&EB8R!O;B!S;VUE('!L871F;W)M<R!S;R!H87,@8F5E +M;B!R96UO=F5D+BD@"@D\+U`^"@D\3$D^/%`@4U193$4](FUA<F=I;BUB;W1T +M;VTZ(#!I;B(^0W)E871E<R!A('1E;7!O<F%R>2!D:7)E8W1O<GD*"7=H;W-E +M(&YA;64@;6%T8VAE<R!T:&4@;F%M92!O9B!T:&4@=&5S="!A;F0@<W=I=&-H +M97,@:6YT;R!T:&%T"@ED:7)E8W1O<GDN(`H)/"]0/@H)/$Q)/CQ0(%-464Q% +M/2)M87)G:6XM8F]T=&]M.B`P:6XB/E)E<V5T<R!T:&4@8W5R<F5N="!L;V-A +M;&4N(`H)/"]0/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB +M/D-A;&QS('1H92!T97-T(&9U;F-T:6]N+B`*"3PO4#X*"3Q,23X\4"!35%E, +M13TB;6%R9VEN+6)O='1O;3H@,&EN(CY)9B!T:&5R92!W97)E(&YO(&%S<V5R +M=&EO;@H)9F%I;'5R97,L(&ET('=I;&P@<F5M;W9E('1H92!T96UP;W)A<GD@ +M9&ER96-T;W)Y+B`H268@/%14($-,05-3/2)W97-T97)N(CXM:SPO5%0^"@EI +M<R!S<&5C:69I960L('1E;7!O<F%R>2!D:7)E8W1O<GD@87)E(&QE9G0@979E +M;B!I9B!T:&4@=&5S=`H)<W5C8V5E9',N*2`*"3PO4#X*"3Q,23X\4#X\4U12 +M24M%/DEF('1H97)E(&%R92!A;GD@;W!E;B!F:6QE(&1E<V-R:7!T;W)S(&]T +M:&5R('1H86X*"7-T9&EN+"!S=&1O=70L(&%N9"!S=&1E<G(L(&ET(')E<&]R +M=',@86X@97)R;W(N/"]35%))2T4^(%1E<W1S"@ES:&]U;&0@;F5V97(@;&5A +M=F4@;W!E;B!F:6QE(&1E<V-R:7!T;W)S+B`*"3PO4#X*/"]53#X*/%`^26X@ +M<&%R=&EC=6QA<BP@=&5S=',@8V%N('-A9F5L>2!A<W-U;64@=&AA=#H@"CPO +M4#X*/%5,/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB/E1H +M92!C=7)R96YT(&1I<F5C=&]R>2!I<R!E;7!T>0H)=VAE;B!T:&4@=&5S="!S +M=&%R=',N(`H)/"]0/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P +M:6XB/D%N>2!F:6QE<R!C<F5A=&5D(&EN('1H92!C=7)R96YT"@ED:7)E8W1O +M<GD@=VEL;"!B92!R96UO=F5D(&9O<B!Y;W4N(`H)/"]0/@H)/$Q)/CQ0/E1H +M92!C=7)R96YT(&QO8V%L92!I<R!T:&4@9&5F875L="`F<75O=#M#)G%U;W0[ +M(&QO8V%L92X@"@D\+U`^"CPO54P^"CQ0/E1E<W1S('-H;W5L9#H@"CPO4#X* +M/%5,/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB/E)E;&5A +M<V4@86QL(&UE;6]R>2X@5&AE('1E<W0*"7-U:71E<R!A<F4@;V-C87-I;VYA +M;&QY(')U;B!U;F1E<B!A(&UE;6]R>2!D96)U9V=E<B!T;R!D971E8W0@;&5A +M:W,*"6EN('1H92!L:6)A<F-H:79E(&QI8G)A<GDN(`H)/"]0/@H)/$Q)/CQ0 +M(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB/D-L;W-E(&%L;"!O<&5N960@ +M9FEL97,N(%1H:7,@:&5L<',*"71O(&-A=&-H(&9I;&4@9&5S8W)I<'1O<B!L +M96%K<R!I;B!L:6)A<F-H:79E+B`*"3PO4#X*"3Q,23X\4#Y.;W0@<F5A9"!O +M<B!W<FET92!A8G-O;'5T92!P871H<RX@"@D\+U`^"CPO54P^"CQ(,2!#3$%3 +M4STB=V5S=&5R;B(^/$$@3D%-13TB4&QA=&9O<FU?=F%R:6%T:6]N(CX\+T$^ +M4&QA=&9O<FT*=F%R:6%T:6]N/"](,3X*/%`^4V]M92!T97-T<R!A<F4@<W!E +M8VEF:6,@=&\@82!P87)T:6-U;&%R('!L871F;W)M+B!3=6-H('1E<W1S"G-H +M;W5L9"!U<V4@87!P<F]P<FEA=&4@<&QA=&9O<FTM<W!E8VEF:6,@;6%C<F]S +M(&%S(&9O;&QO=W,Z(`H\+U`^"CQ04D4@0TQ!4U,](G=E<W1E<FXB/B-I9B!? +M7U!,051&3U)-"BXN+B!V87)I;W5S(&AE;'!E<B!F=6YC=&EO;G,@+BXN"B-E +M;F1I9@I$149)3D5?5$535"AF;V]?<&QA=&9O<FTI"GL*(VEF(%]?4$Q!5$9/ +M4DT*)FYB<W`[("9N8G-P.RXN+B!T97-T<R!A<R!U<W5A;"`N+BXN"B-E;'-E +M"B9N8G-P.R`F;F)S<#MS:VEP<&EN9R@F<75O=#MP;&%T9F]R;2US<&5C:69I +M8R!T97-T<R9Q=6]T.RD["B-E;F1I9@I]/"]04D4^/%`^"DEN('!A<G1I8W5L +M87(L(&YO=&4@=&AA="!A;&P@=&5S=',@87)E(&-O;7!I;&5D(&%N9"!R=6X@ +M;VX@86QL"G!L871F;W)M<RX@"CPO4#X*/%`^36]S="!T97-T<R!A<F4@;F]T +M('!L871F;W)M+7-P96-I9FEC(&%N9"!W:6QL('1H=7,@96YD('5P(')U;FYI +M;F<*;VX@;6%N>2!D:69F97)E;G0@<&QA=&9O<FUS+B!);B!O<F1E<B!T;R!S +M:6UP;&EF>2!W<FET:6YG('-U8V@@=&5S=',L"G1R>2!T;R!U<V4@<&QA=&9O +M<FTM:6YD97!E;F1E;G0@8V]D:6YG.B`*/"]0/@H\54P^"@D\3$D^/%`@4U19 +M3$4](FUA<F=I;BUB;W1T;VTZ(#!I;B(^57-E('-T9&EO(#Q45"!#3$%34STB +M=V5S=&5R;B(^9F]P96XH*3PO5%0^+`H)/%14($-,05-3/2)W97-T97)N(CYF +M=W)I=&4H*3PO5%0^+"`\5%0@0TQ!4U,](G=E<W1E<FXB/F9R96%D*"D\+U14 +M/BP*"6%N9"`\5%0@0TQ!4U,](G=E<W1E<FXB/F9C;&]S92@I/"]45#X@=&\@ +M86-C97-S(&9I;&5S('=H96YE=F5R"@EF96%S:6)L92X@"@D\+U`^"@D\3$D^ +M/%`^3&]O:R!T:')O=6=H('1H92`\5%0@0TQ!4U,](G=E<W1E<FXB/G1E<W0N +M:#PO5%0^(&AE861E<B!T;PH)<V5E(&EF('1H97)E(&%R92!A<W-E<G18>'@H +M*2!F=6YC=&EO;G,@=&AA="!Y;W4@8V%N('5S92X@5&AE<F4G<R!A"@EL:7-T +M(&]F('1H92!M;W)E('!O<'5L87(@;VYE<R!B96QO=RP@8G5T(&YE=R!O;F5S +M(&%R92!O9G1E;B!A9&1E9"X@"@D\+U`^"CPO54P^"CQ(,2!#3$%34STB=V5S +M=&5R;B(^/$$@3D%-13TB07-S97)T7VUA8W)O<R(^/"]!/D%S<V5R="!M86-R +M;W,\+T@Q/@H\4#Y4:&4@9F]L;&]W:6YG(&ES(&$@;F5C97-S87)I;'D@:6YC +M;VUP;&5T92!L:7-T(&]F(&%S<V5R="!F=6YC=&EO;G,*879A:6QA8FQE('1O +M('1E<W1S.B`*/"]0/@H\54P^"@D\3$D^/%`@4U193$4](FUA<F=I;BUB;W1T +M;VTZ(#!I;B(^0F%S:6,@97%U86QI='DZ(#Q45"!#3$%34STB=V5S=&5R;B(^ +M87-S97)T17%U86Q);G0\+U14/BP*"3Q45"!#3$%34STB=V5S=&5R;B(^87-S +M97)T17%U86Q3=')I;F<\+U14/BP@/%14($-,05-3/2)W97-T97)N(CYA<W-E +M<G1%<75A;$UE;3PO5%0^"@D)/"]0/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM +M8F]T=&]M.B`P:6XB/D9I;&4@8W)E871I;VXZ(#Q45"!#3$%34STB=V5S=&5R +M;B(^87-S97)T36%K949I;&4\+U14/BP*"3Q45"!#3$%34STB=V5S=&5R;B(^ +M87-S97)T36%K95-Y;6QI;FL\+U14/BP@/%14($-,05-3/2)W97-T97)N(CYA +M<W-E<G1-86ME2&%R9&QI;FL\+U14/BP*"3Q45"!#3$%34STB=V5S=&5R;B(^ +M87-S97)T36%K941I<CPO5%0^(`H)/"]0/@H)/$Q)/CQ0(%-464Q%/2)M87)G +M:6XM8F]T=&]M.B`P:6XB/D9I;&4@=&5S=',Z(#Q45"!#3$%34STB=V5S=&5R +M;B(^87-S97)T27-296<\+U14/BP*"3Q45"!#3$%34STB=V5S=&5R;B(^87-S +M97)T27-$:7(\+U14/BP@/%14($-,05-3/2)W97-T97)N(CYA<W-E<G1)<U-Y +M;6QI;FL\+U14/BP*"3Q45"!#3$%34STB=V5S=&5R;B(^87-S97)T1FEL95-I +M>F4\+U14/BP@/%14($-,05-3/2)W97-T97)N(CYA<W-E<G1&:6QE3FQI;FMS +M/"]45#XL"@D\5%0@0TQ!4U,](G=E<W1E<FXB/F%S<V5R=$9I;&5-=&EM93PO +M5%0^(`H)/"]0/@H)/$Q)/CQ0/D9I;&4@8V]N=&5N=',Z(#Q45"!#3$%34STB +M=V5S=&5R;B(^87-S97)T1FEL945M<'1Y/"]45#XL"@D\5%0@0TQ!4U,](G=E +M<W1E<FXB/F%S<V5R=$9I;&5.;VY%;7!T>3PO5%0^+"`\5%0@0TQ!4U,](G=E +E<W1E<FXB/F%S<V5R=$9I;&7TXGL/0!0`&_A4F08````````````` +` +end diff --git a/libarchive/test/test_rar_multivolume_uncompressed_files.part08.rar.uu b/libarchive/test/test_rar_multivolume_uncompressed_files.part08.rar.uu new file mode 100644 index 00000000..e8e0ffe8 --- /dev/null +++ b/libarchive/test/test_rar_multivolume_uncompressed_files.part08.rar.uu @@ -0,0 +1,299 @@ +begin 644 - +M4F%R(1H'`!EZ<Q$`#0````````#I1G0AD%8`/R$``(].```#8Z8%7O-C(4`4 +M,"P`I($``'1E<W1D:7)<=&5S='-U8F1I<EQ,:6)A<F-H:79E061D:6YG5&5S +M="YH=&ULP,PS7SM"6U\[0D-O;G1E;G1S/"]45#XL"@D\5%0@0TQ!4U,](G=E +M<W1E<FXB/F%S<V5R=%1E>'1&:6QE0V]N=&5N=',\+U14/B`*"3PO4#X*/"]5 +M3#X*/$@Q($-,05-3/2)W97-T97)N(CX\02!.04U%/2)2969E<F5N8V5?1FEL +M97,B/CPO03Y2969E<F5N8V4@1FEL97,\+T@Q/@H\4#Y-86YY('1E<W1S(')E +M<75I<F4@<F5A9&EN9R!A('!R92UC;VYS=')U8W1E9"!R969E<F5N8V4@9FEL +M92X@4W5C:`IF:6QE<R!A<F4@<W1O<F5D('=I=&@@=&AE('-O=7)C92!C;V1E +M(&9O<B!T:&4@87-S;V-I871E9"!T97-T('-U:71E+@I2969E<F5N8V4@9FEL +M97,@87)E(&YA;65D(&%C8V]R9&EN9R!T;R!T:&4@=&5S="!A;F0@;75S="!B +M92!U=65N8V]D960*=&\@8F4@8VAE8VME9"!I;G1O('-O=7)C92!C;VYT<F]L +M+B`*/"]0/@H\4#Y&;W(@97AA;7!L92P@:68@>6]U(&YE960@82!R969E<F5N +M8V4@=&%R(&%R8VAI=F4@=&\@=7-E('=I=&@*/%14($-,05-3/2)W97-T97)N +M(CYT97-T7V9O;SPO5%0^+"!T:&4@9FEL92!S:&]U;&0@8F4@;F%M960*/%14 +M($-,05-3/2)W97-T97)N(CYT97-T7V9O;RYT87(\+U14/B!A;F0@<W1O<F5D +M(&EN('-O=7)C92!C;VYT<F]L(&%S"CQ45"!#3$%34STB=V5S=&5R;B(^=&5S +M=%]F;V\N=&%R+G5U/"]45#XN(`H\+U`^"CQ0/E=I=&AI;B!T:&4@=&5S="!C +M;V1E+"!Y;W4@8V%N(')E8V]V97(@=&AE(')E9F5R96YC92!F:6QE('=I=&@Z +M(`H\+U`^"CQ04D4@0TQ!4U,](G=E<W1E<FXB(%-464Q%/2)M87)G:6XM8F]T +M=&]M.B`P+C)I;B(^)FYB<W`[("9N8G-P.R!E>'1R86-T7W)E9F5R96YC95]F +M:6QE*"9Q=6]T.W1E<W1?9F]O+G1A<B9Q=6]T.RD[/"]04D4^/%`^"E1H92`\ +M5%0@0TQ!4U,](G=E<W1E<FXB/F5X=')A8W1?<F5F97)E;F-E7V9I;&4H*3PO +M5%0^(&9U;F-T:6]N('=I;&P*=75D96-O9&4@=&AE(')E<75E<W1E9"!F:6QE +M(&%N9"!P=70@=&AE(')E<W5L="!I;B!T:&4@8W5R<F5N=`ID:7)E8W1O<GDN +M(`H\+U`^"CQ0/DQO;VL@870@/%14($-,05-3/2)W97-T97)N(CYT97-T7W)E +M861?9F]R;6%T7V-P:6]?8FEN7V)E+F,\+U14/@IF;W(@82!S:6UP;&4@97AA +M;7!L92!O9B!T:&ES('5S86=E+B`*/"]0/@H\4#Y!(&9E=R!O9B!T:&4@;VQD +M97(@=&5S=',@<W1O<F4@<F5F97)E;F-E(&1A=&$@=VET:&EN('1H92!S;W5R +M8V4*8V]D92!A<R!A(&AE>"UE;F-O9&5D(&%R<F%Y(&]F(&-H87)A8W1E<G,N +M(%1H:7,@=V%S(&-O;6UO;B!B969O<F4*/%14($-,05-3/2)W97-T97)N(CYE +M>'1R86-T7W)E9F5R96YC95]F:6QE*"D\+U14/B!W87,@861D960@86YD(&ES +M"FYO="!R96-O;6UE;F1E9"!F;W(@;F5W(&-O9&4N(`H\+U`^"CQ(,2!#3$%3 +M4STB=V5S=&5R;B(^/$$@3D%-13TB1&]S7V%N9%]$;VYT<R(^/"]!/D1O<R!A +M;F0@1&]N=',\+T@Q/@H\54P^"@D\3$D^/%`@4U193$4](FUA<F=I;BUB;W1T +M;VTZ(#!I;B(^1$\@=7-E(&%S<V5R=',@;&EB97)A;&QY+B!)="=S"@EC;VUM +M;VX@=&\@:&%V92!A;B!A<W-E<G0@;VX@86QM;W-T(&5V97)Y(&QI;F4N(`H) +M/"]0/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB/D1/('5S +M92!A<W-E<G1%<75A;$EN="P*"6%S<V5R=$5Q=6%L4W1R:6YG+"!A<W-E<G1% +M<75A;$UE;2!T;R!T97-T(&5Q=6%L:71Y(&EN<W1E860@;V8@<&QA:6X*"6%S +M<V5R="@I.R!T:&4@<W!E8VEA;&EZ960@9F]R;7,@9VEV92!A(&QO="!M;W)E +M(&EN9F]R;6%T:6]N(&]N(&$*"69A:6QU<F4N(`H)/"]0/@H)/$Q)/CQ0(%-4 +M64Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB/D1/('1E<W0@>6]U<B!T97-T<SL@ +M97AP97)I;65N="!B>0H)8VAA;F=I;F<@82!P:65C92!O9B!C;V1E(&%N9"!M +M86ME('-U<F4@>6]U<B!T97-T(&9A:6QS+B!)9B!Y;W4@=&AI;FL*"7EO=2=V +M92!F;W5N9"!A(&)U9RP@=V4@<F5C;VUM96YD('=R:71I;F<@=&AE('1E<W0@ +M9FER<W0L(&UA:V4@<W5R90H)=&AE('1E<W0@9F%I;',L('1H96X@9FEX:6YG +M('1H92!B=6<N(`H)/"]0/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M +M.B`P:6XB/D1/(')U;B!A;&P@;V8@=&AE('1E<W1S(&)E9F]R90H)<W5B;6ET +M=&EN9R!A(&-H86YG92X@1&5P96YD:6YG(&]N('EO=7(@8G5I;&0@96YV:7)O +M;FUE;G0L(#Q45"!#3$%34STB=V5S=&5R;B(^;6%K90H)=&5S=#PO5%0^(&]R +M(#Q45"!#3$%34STB=V5S=&5R;B(^;6%K92!C:&5C:SPO5%0^('=I;&P@=7-U +M86QL>2!R=6X*"6%L;"!O9B!T:&4@=&5S=',N(`H)/"]0/@H)/$Q)/CQ0(%-4 +M64Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB/D1/3B=4(')E;'D@;VX@/%14($-, +M05-3/2)W97-T97)N(CY(059%7SPO5%0^"@EM86-R;W,@9G)O;2!C;VYF:6<N +M:"X@*$EF('1H92!T97-T<R!U<V4@=&AE('-A;64@/%14($-,05-3/2)W97-T +M97)N(CY(059%7SPO5%0^"@EM86-R;W,@87,@=&AE(&-O9&4@8F5I;F<@=&5S +M=&5D('1H96X@8V]N9FEG=7)A=&EO;B!P<F]B;&5M<R!W:6QL(&)E"@EC;W9E +M<F5D('5P+BD@"@D\+U`^"@D\3$D^/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ +M(#!I;B(^1$\@=7-E(')U;G1I;64@=&5S=',@9F]R('!L871F;W)M"@EF96%T +M=7)E<RX@1F]R(&5X86UP;&4L('1H92!!0TP@=&5S=',@=')Y('1O('-E="!A +M;B!!0TP@;VX@82!F:6QE(&%N9`H)<F5A9"!I="!B86-K('1O(&1E=&5R;6EN +M92!I9B!!0TP@<W5P<&]R="!I<R!A=F%I;&%B;&4L('1H96X@=&AE>0H)97AE +M<F-I<V4@=&AE(&QI8F%R8VAI=F4@04-,(&AA;F1L:6YG+B`*"3PO4#X*"3Q, +M23X\4"!35%E,13TB;6%R9VEN+6)O='1O;3H@,&EN(CY$3R!L;V]K(&%T(&5X +M:7-T:6YG('1E<W1S+B!/9G1E;BP*"6$@8G5G(&-A;B!B92!T97-T960@8GD@ +M861D:6YG(&IU<W0@82!C;W5P;&4@;V8@87-S97)T<R!T;R!A;@H)97AI<W1I +M;F<@=&5S="!I;G-T96%D(&]F('=R:71I;F<@82!N97<@;VYE+B`*"3PO4#X* +M"3Q,23X\4"!35%E,13TB;6%R9VEN+6)O='1O;3H@,&EN(CY$3R!I;7!R;W9E +M(&5X:7-T:6YG('1E<W1S+B!);@H)<&%R=&EC=6QA<BP@:68@>6]U('-E92!A +M('1E<W0@9F%I;'5R92!T:&%T(&ES(&AA<F0@=&\@=6YD97)S=&%N9"P*"6-O +M;G-I9&5R(&%D9&EN9R!A(&9A:6QU<F4H*2!M97-S86=E(&]R(&-O;6UE;G1S +M('-O('1H92!N97AT('!E<G-O;@H)=VEL;"!H879E(&%N(&5A<VEE<B!T:6UE +M+B`*"3PO4#X*"3Q,23X\4#Y$3R!A<VL@;VX@=&AE(&UA:6QI;F<@;&ES=',@ +M:68@>6]U(&AA=F4@<75E<W1I;VYS+B!3;VUE('1E<W1S"@EA<F4@8F5T=&5R +M('=R:71T96X@=&AA;B!O=&AE<G,N(`H)/"]0/@H\+U5,/@H\2#$@0TQ!4U,] +M(G=E<W1E<FXB/CQ!($Y!344](E-O;65?97AA;7!L97-?;V9?=&5S=',B/CPO +M03Y3;VUE"F5X86UP;&5S(&]F('1E<W1S/"](,3X*/$@R($-,05-3/2)W97-T +M97)N(CX\02!.04U%/2),:6)A<F-H:79E7W)E861?=&5S=',B/CPO03Y,:6)A +M<F-H:79E"G)E860@=&5S=',\+T@R/@H\4#Y4:&5R92!A<F4@<75I=&4@82!F +M97<@<F5A9"!T97-T<R!T:&%T('-I;7!L>2!R96%D(&$@<')E+6)U:6QT"FEN +M<'5T(&9I;&4@86YD('9E<FEF>2!T:&4@<F5S=6QT<RX@5&AE<V4@=7-E(#Q4 +M5"!#3$%34STB=V5S=&5R;B(^97AT<F%C=%]R969E<F5N8V5?9FEL92@I/"]4 +M5#X*=&\@9&5C;V1E(&$@=75E;F-O9&5D(&EN<'5T(&9I;&4L('1H96X@;W!E +M;B!T:&%T(&9I;&4@=VET:"!L:6)A<F-H:79E"F%N9"!V97)I9GD@=&AE(')E +M<W5L=',N($UO<W0@;V8@=&AE<V4@87)E('!R971T>2!S=')A:6=H=&9O<G=A +M<F0N(`H\+U`^"CQ(,B!#3$%34STB=V5S=&5R;B(^/$$@3D%-13TB3&EB87)C +M:&EV95]R96%D+W=R:71E7W1E<W1S(CX\+T$^3&EB87)C:&EV90IR96%D+W=R +M:71E('1E<W1S/"](,CX*/%`^36]S="!O9B!T:&4@=W)I=&4@=&5S=',@<F5A +M;&QY(&IU<W0@=F5R:69Y('1H870@;&EB87)C:&EV92!C86X*<F5A9"!W:&%T +M(&ET('=R:71E<RX@5&AE<V4@9V5N97)A;&QY('5S92!T:&4@;65M;W)Y(&EN +M=&5R9F%C97,N(%1H97D*9F5E9"!A<F-H:79E(&5N=')I97,@:6YT;R!T:&4@ +M=W)I=&5R('1O(&-R96%T92!A;B!A<F-H:79E(&EN(&UE;6]R>0IA;F0@=&AE +M;B!O<&5N('1H92!M96UO<GD@86=A:6X@=&\@<F5A9"!T:&4@9&%T82!B86-K +M(&%N9"!V97)I9GD@=&AA=`II="!I<R!T:&4@<V%M92X@"CPO4#X*/$@R($-, +M05-3/2)W97-T97)N(CX\02!.04U%/2),:6)A<F-H:79E7W=R:71E7W9A;&ED +M871O<G,B/CPO03Y,:6)A<F-H:79E"G=R:71E('9A;&ED871O<G,\+T@R/@H\ +M4#Y!(&9E=R!W<FET92!T97-T<R!W<FET92!A;B!A<F-H:79E(&EN=&\@;65M +M;W)Y(&%N9"!T:&5N(&EN<W!E8W0*=&AE(&%C='5A;"!B>71E<R!T;R!V97)I +M9GD@=&AA="!T:&4@87)C:&EV92!W87,@8W)E871E9"!C;W)R96-T;'DN"E1H +M97-E('1E<W1S(&%R92!N:6-E('1O(&AA=F4@8G5T(&%R92!T961I;W5S('1O +M(&)U:6QD+B`*/"]0/@H\4#Y4:&5R92!A<F4@86QS;R!A(&-O=7!L92!O9B!S +M=6-H('9A;&ED871O<G,@9F]R(&)S9'1A<B!A;F0@8G-D8W!I;RX*5&AE<V4@ +M87)E('9E<GD@=')I8VMY('-I;F-E('1H92!E>&%C="!D871A(&-O;G1A:6YS +M('9A;'5E<R!T:&%T('1H90IT97-T(&-A;FYO="!C;VUP;&5T96QY(&-O;G1R +M;VP@*'-U8V@@87,@=&AE(&-U<G)E;G0@=&EM92!O<@IU<V5R;F%M92DN(`H\ +M+U`^"CQ(,B!#3$%34STB=V5S=&5R;B(^/$$@3D%-13TB1&ES:U]T97-T<R(^ +M/"]!/D1I<VL@=&5S=',\+T@R/@H\4#Y,:6)A<F-H:79E)W,@9&ES:R!)+T\@ +M05!)<RP@87,@=V5L;"!A<R!B<V1T87(@86YD(&)S9&-P:6\L(&YE960@=&\* +M;W!E<F%T92!B>2!V97)I9GEI;F<@9FEL97,@;VX@9&ES:RX@5&\@;6%K92!T +M:&ES(&5A<VEE<BP@=&AE('1E<W0*9G)A;65W;W)K(&YO=R!H87,@82!L87)G +M92!N=6UB97(@;V8@87-S97)T:6]N<R!T;R!V97)I9GD@=&EM97-T86UP<RP* +M<&5R;6ES<VEO;G,L(&%N9"!O=&AE<B!B87-I8R!F:6QE(&1A=&$N(%1H97-E +M(&%S<V5R=&EO;G,@=7-E"F%P<')O<')I871E('-Y<W1E;2!C86QL<R!F;W(@ +M96%C:"!P;&%T9F]R;3L@;F5W('1E<W1S('-H;W5L9"!T<GD@=&\*879O:60@ +M=7-I;F<@/%14($-,05-3/2)W97-T97)N(CYS=&%T*"D\+U14/BP@=VAI8V@@ +M:7,@;F]T('5N:69O<FUL>0IA=F%I;&%B;&4N(`H\+U`^"CQ(,B!#3$%34STB +M=V5S=&5R;B(^/$$@3D%-13TB1G5Z>E]T97-T97(B/CPO03Y&=7IZ('1E<W1E +M<CPO2#(^"CQ0/E1H92!F=7IZ('1E<W1E<B!I<R!O;F4@;V8@=&AE(&9E=R!T +M97-T<R!T:&%T(&1O97,@;F]T(&%G9W)E<W-I=F5L>0IU<V4@87-S97)T:6]N +M<RX@271S('!U<G!O<V4@:7,@=&\@=')Y(&%N9"!C<F%S:"!L:6)A<F-H:79E +M(&)Y(&9E961I;F<*:70@:6YP=70@=&AA="!I<R!S;&EG:'1L>2!D86UA9V5D +M+B`H4F5M96UB97(@=&AA="!L:6)A<F-H:79E(&1O97,*:&%V92!S;VUE(&9A +M:6QS869E(&-O9&4@=&AA="!D96QI8F5R871E;'D@86)O<G1S('1H92!E;G1I +M<F4@<')O9W)A;0II9B!C97)T86EN(&EN=F%R:6%N=',@87)E('9I;VQA=&5D +M+BD@"CPO4#X*/%`^4VEN8V4@82!F=7IZ(&9A:6QU<F4@8V%U<V5S(&$@8W)A +M<V@L(&ET)W,@:6UP;W-S:6)L92!T;R!R97!O<G0@=&AE"F5R<F]R('1O('1H +M92!C;VYS;VQE+"!S;R!T:&4@9G5Z>B!T97-T97(@:6YS=&5A9"!G96YE<F%T +M97,@80IR86YD;VUL>2UD86UA9V5D(&9I;&4L('-A=F5S('1H870@9FEL92!T +M;R!D:7-K+"!T:&5N(')U;G,@=&AE(&9I;&4*=&AR;W5G:"!L:6)A<F-H:79E +M('1O('1R>2!T;R!P<F]V;VME(&$@8W)A<V@N($EF(&QI8F%R8VAI=F4@8W)A +M<VAE<PIT:&4@96YT:7)E('1E<W1E<BP@=&AE(&EN<'5T('1H870@8V%U<V5D +M('1H92!C<F%S:"!W:6QL(&)E(&%V86EL86)L90IO;B!D:7-K(&9O<B!F=7)T +M:&5R(&%N86QY<VES+B`*/"]0/@H\4#Y!;'1H;W5G:"!I="!I<R!U;G5S=6%L +M(&9O<B!A('1E<W0@<')O9W)A;2!T;R!U<V4@<F%N9&]M(&EN<'5T+"!T:&4* +M9G5Z>B!T97-T97(@:&%S('!R;W9E;B!Q=6ET92!U<V5F=6P@870@=6YC;W9E +M<FEN9R!P;V]R(&5R<F]R"FAA;F1L:6YG+B!5;F9O<G1U;F%T96QY+"!T:&4@ +M;F5E9"!T;R!W<FET92!T:&4@9&%T82!T;R!D:7-K(&)E9F]R90IE86-H('1E +M<W0@:7,@82!S:6=N:69I8V%N="!P97)F;W)M86YC92!I<W-U92X@"CPO4#X* +M/$@R($-,05-3/2)W97-T97)N(CX\02!.04U%/2),87)G95]T87)?=&5S=&5R +M(CX\+T$^3&%R9V4@=&%R('1E<W1E<CPO2#(^"CQ0/E1H92!L87)G92!T87(@ +M=&5S=&5R(&%T=&5M<'1S('1O(&5X97)C:7-E(&)O=6YD87)Y(&-A<V5S('=I +M=&@@=F5R>0IL87)G92!E;G1R:65S+"!U<"!T;R`Q('1E<F%B>71E+B!/9B!C +M;W5R<V4L('=R:71I;F<@82`Q('1E<F%B>71E"F5N=')Y('1O(&%N('5N8V]M +M<')E<W-E9"!A<F-H:79E(&]N(&1I<VL@;W(@;65M;W)Y(&ES('5N86-C97!T +M86)L92P*8F]T:"!F;W(@<&5R9F]R;6%N8V4@86YD('-P86-E(')E87-O;G,N +M($5V96X@9WII<"!O<B!B>FEP,@IC;VUP<F5S<VEO;B!W;VXG="!H96QP.R!A +M;'1H;W5G:"!S;6%L;&5R+"!T:&4@;W5T<'5T(&ES('-T:6QL(&QA<F=E"F%N +M9"!T:&4@=&EM92!N965D960@=&\@8V]M<')E<W,@<W5C:"!A(&QA<F=E(&%M +M;W5N="!O9B!D871A(&ES"G!R;VAI8FET:79E+B!3;R!T:&4@;&%R9V4@=&%R +M('1E<W1E<B!U<V5S(&$@=')I8VLN(`H\+U`^"CQ0/E)E;65M8F5R('1H870@ +M86X@=6YC;VUP<F5S<V5D('1A<B!A<F-H:79E(&-O;G-I<W1S(&]F(&%L=&5R +M;F%T:6YG"FAE861E<G,@86YD(&)O9&EE<RX@268@=&AE(&)O9&EE<R!C;VYS +M:7-T(&5N=&ER96QY(&]F('IE<F\@8GET97,L"G1H96X@86QL('1H870G<R!N +M965D960@=&\@<F5C;VYS=')U8W0@=&AE(&%R8VAI=F4@:7,@=&\@<F5C;W)D +M('1H90IR96QA=&EV96QY('-M86QL(&AE861E<G,@86YD('-T;W)E(&$@8V]U +M;G0@;V8@96%C:"!C;VYT:6=U;W5S(&)L;V-K"F]F('IE<F]S+B!4:&ES('-I +M;7!L92`F<75O=#MR=6XM;&5N9W1H(&5N8V]D:6YG)G%U;W0[(&ES('9E<GD* +M969F96-T:79E+"!C;VUP<F5S<VEN9R!A('-A;7!L92!A<F-H:79E('=I=&@@ +M82!D;WIE;B!E;G1R:65S(&1O=VX@=&\*:G5S="!A(&9E=R!K:6QO8GET97,L +M(&5V96X@:68@=&AO<V4@96YT<FEE<R!R86YG92!U<"!T;R`Q5$(N(`H\+U`^ +M"CQ0/D)Y('=R:71I;F<@82!C=7-T;VT@22]/(&QA>65R('1H870@:6UP;&5M +M96YT<R!S=6-H(&-O;7!R97-S:6]N+"!W90IC86X@=W)I=&4@=F5R>2!L87)G +M92!E;G1R:65S('1H<F]U9V@@;&EB87)C:&EV92!T:&5N(')E860@=&AE;2!B +M86-K"F%N9"!V97)I9GD@=&AA="!L:6)A<F-H:79E(&-O<G)E8W1L>2!H86YD +M;&5S(&%L;"!O9B!T:&4@8F]U;F1A<GD*8V%S97,N(`H\+U`^"CQ0/D]F(&-O +M=7)S92P@979E;B!S8V%N;FEN9R!O=71P=70@=&\@9&5T97)M:6YE('IE<F\@ +M8FQO8VMS(&-A;B!T86ME"G%U:71E(&$@=VAI;&4L('-O('1H92!L87)G92!T +M87(@=&5S=&5R(&UA:V5S(&]N92!M;W)E(&]P=&EM:7IA=&EO;CH*3&EB87)C +M:&EV92!I<R`F<75O=#MM;W-T;'DF<75O=#L@>F5R;RUC;W!Y+B!7:&5N('EO +M=2!G:79E(&ET(&$@;&%R9V4*8FQO8VL@=&\@=W)I=&4@=&\@86X@96YT<GD@ +M8F]D>2P@:70@=VEL;"!P87-S('!O:6YT97)S('-T<F%I9VAT"G1H<F]U9V@@ +M=&\@=&AE(&]U='!U="!R;W5T:6YE+"!E>&-E<'0@:6X@=&AO<V4@8V%S97,@ +M=VAE<F4@:70@;75S=`IC;W!Y(&1A=&$@=&\@8V]R<F5C=&QY(&)U:6QD(&)L +M;V-K<RX@5&AE(&QA<F=E('1A<B!T97-T97(@=&%K97,*861V86YT86=E(&]F +M('1H:7,@=&\@<75I8VML>2!D971E8W0@=VAE;B!A(&)L;V-K(&)E:6YG('=R +M:71T96X@;W5T(&)Y"G1H92!A<F-H:79E('=R:71E<B!I<R!T:&4@<V%M92!A +M<R!S;VUE(&]F('1H92!D871A('1H870@=V%S(&=I=F5N(&)Y"G1H92!T97-T +M(&%S('1H92!E;G1R>2!B;V1Y+"!A;F0@<VEM:6QA<FQY('=H96X@<F5A9&EN +M9R!T:&4@87)C:&EV90IB86-K+B`*/"]0/@H\4#Y486ME;B!T;V=E=&AE<BP@ +M=&AE<V4@=')I8VMS(&%L;&]W('1H92!L87)G92!T87(@=W)I=&5R('1O('1E +M<W0*9F]R(&ES<W5E<R!S=6-H(&%S('!R;W!E<B!S=&]R86=E(&]F('9E<GD@ +M;&%R9V4@9FEL92!S:7IE<R`H=&%R(&9I;&5S"G-U<'!O<G0@<V5V97)A;"!D +M:69F97)E;G0@=V%Y<R!T;R!S=&]R92!F:6QE('-I>F5S('=H:6-H('1R861E +M(&]F9@IP;W)T86)I;&ET>2!V97)S=7,@<F%N9V4[(&QI8F%R8VAI=F4@=')I +M97,@=&\@=7-E('1H92!M;W-T('!O<G1A8FQE"F]N92!I="!C86X@9F]R(&5A +M8V@@96YT<GDI(&%N9"!I;G1E9V5R(&]V97)F;&]W("A7:6YD;W=S(#,R+6)I +M="`\5%0@0TQ!4U,](G=E<W1E<FXB/F]F9E]T/"]45#X*8G)O:V4@=&AE(&QA +M<F=E('1A<B!T97-T(&%N9"!L960@;&EB87)C:&EV92!T;R!M86ME(&AE879I +M97(@=7-E(&]F"CQ45"!#3$%34STB=V5S=&5R;B(^:6YT-C1?=#PO5%0^(&EN +M=&5R;F%L;'DI(&EN(&$@=&5S="!T:&%T(')U;G,@:6X*=6YD97(@,2\T('-E +M8V]N9"X@"CPO4#X*/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ(#!I;B(^/$)2 +M/@H\+U`^"CPO0D]$63X*/"](5$U,/AS`="*00P``$@``CTX```,^!`4'\V,A +M0!0P&0"D@0``3&EB87)C:&EV94%D9&EN9U1E<W0N:'1M;,#,"5\[0C)?.T(\ +M(41/0U194$4@2%1-3"!054),24,@(BTO+U<S0R\O1%1$($A434P@-"XP(%1R +M86YS:71I;VYA;"\O14XB/@H\2%1-3#X*/$A%040^"@D\345402!(5%10+451 +M54E6/2)#3TY414Y4+5194$4B($-/3E1%3E0](G1E>'0O:'1M;#L@8VAA<G-E +M=#UU=&8M."(^"@D\5$E43$4^/"]4251,13X*"3Q-151!($Y!344](D=%3D52 +M051/4B(@0T].5$5.5#TB3&EB<F5/9F9I8V4@,RXS("`H56YI>"DB/@H)/$U% +M5$$@3D%-13TB0U)%051%1"(@0T].5$5.5#TB,C`Q,3`V,C8[,C(R,S4Q,#`B +M/@H)/$U%5$$@3D%-13TB0TA!3D=%1"(@0T].5$5.5#TB,C`Q,3`V,C8[,C(R +M-30U,#`B/@H)/%-464Q%(%194$4](G1E>'0O8W-S(CX*"3PA+2T*"0E`<&%G +M92![(&UA<F=I;CH@,"XW.6EN('T*"0E0('L@;6%R9VEN+6)O='1O;3H@,"XP +M.&EN('T*"0E(,2![(&UA<F=I;BUB;W1T;VTZ(#`N,#AI;B!]"@D)2#$N=V5S +M=&5R;B![(&9O;G0M9F%M:6QY.B`B3&EB97)A=&EO;B!397)I9B(L('-E<FEF +M('T*"0E(,2YC:FL@>R!F;VYT+69A;6EL>3H@(D)I='-T<F5A;2!697)A(%-A +M;G,B('T*"0E(,2YC=&P@>R!F;VYT+69A;6EL>3H@(D9R965386YS(B!]"@D) +M4%)%+F-J:R![(&9O;G0M9F%M:6QY.B`B0FET<W1R96%M(%9E<F$@4V%N<R(L +M(&UO;F]S<&%C92!]"@D)2#(@>R!M87)G:6XM8F]T=&]M.B`P+C`X:6X@?0H) +M"4@R+F-T;"![(&9O;G0M9F%M:6QY.B`B1G)E95-A;G,B('T*"0E45"YC:FL@ +M>R!F;VYT+69A;6EL>3H@(D)I='-T<F5A;2!697)A(%-A;G,B+"!M;VYO<W!A +M8V4@?0H)+2T^"@D\+U-464Q%/@H\+TA%040^"CQ"3T19($Q!3D<](F5N+553 +M(B!$25(](DQ44B(^"CQ(,2!#3$%34STB=V5S=&5R;B(^26YT<F]D=6-T:6]N +M/"](,3X*/%`^3&EB87)C:&EV92!I<R!N;W<@82!F86ER;'D@8V]M<&QE>"!P +M:65C92!O9B!S;V9T=V%R92!T:&%T(')U;G,@;VX*82!N=6UB97(@;V8@9&EF +M9F5R96YT('!L871F;W)M<RX@02!T:&]R;W5G:"!T97-T('-U:71E(&ES(&5S +M<V5N=&EA;`IB;W1H(&9O<B!V97)I9GEI;F<@;F5W('!O<G1S(&%N9"!F;W(@ +M96YS=7)I;F<@=&AA="!F=71U<F4@8VAA;F=E<PID;VXG="!B<F5A:R!E>&ES +M=&EN9R!F=6YC=&EO;F%L:71Y+B`*/"]0/@H\4#Y!;GD@<VEG;FEF:6-A;G0@ +M8VAA;F=E('1O(&QI8F%R8VAI=F4L(&EN8VQU9&EN9R!M;W-T(&)U9R!F:7AE +M<RP*<VAO=6QD(&)E(&%C8V]M<&%N:65D(&)Y(&YE=R!T97-T<R!O<B!C:&%N +M9V5S('1O(&5X:7-T:6YG('1E<W1S+B!4:&ES"F%R=&EC;&4@97AP;&%I;G,@ +M:&]W('1H92!L:6)A<F-H:79E('1E<W0@<W5I=&5S('=O<FL@86YD(&AO=R!T +M;PIE>'1E;F0@=&AE;2X@"CPO4#X*/$@Q($-,05-3/2)W97-T97)N(CX\02!. +M04U%/2)"=6EL9&EN9U]A;F1?4G5N;FEN9U]T:&5?5&5S=%]0<F]G<F%M<R(^ +M/"]!/@I"=6EL9&EN9R!A;F0@4G5N;FEN9R!T:&4@5&5S="!0<F]G<F%M<SPO +M2#$^"CQ0/D5A8V@@;6%J;W(@8V]M<&]N96YT+2UL:6)A<F-H:79E+"!B<V1T +M87(L(&%N9"!B<V1C<&EO+2UH87,@82!T97-T"G!R;V=R86T@=&AA="!E>&5R +M8VES97,@=&AE(&9U;F-T:6]N86QI='D@;V8@=&AA="!C;VUP;VYE;G0N(%1H +M97-E"G1E<W0@<')O9W)A;7,@87)E(&-O;7!I;&5D(&EN('1H92!S86UE('=A +M>2!T:&%T('1H92!R97-T(&]F('1H90IL:6)A<F-H:79E('-U:71E(&ES(&-O +M;7!I;&5D+B`*/"]0/@H\4#Y4;R!R=6X@=&AE('1E<W0@<')O9W)A;7,L('EO +M=2!N965D('1O(&=I=F4@=&AE;2!T=V\@<&EE8V5S(&]F"FEN9F]R;6%T:6]N +M.B`*/"]0/@H\54P^"@D\3$D^/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ(#!I +M;B(^5&AE(&9U;&P@<&%T:"!T;R!T:&4@9&ER96-T;W)Y"@EH;VQD:6YG('1H +M92`F<75O=#MR969E<F5N8V4@9FEL97,F<75O=#L@"@D\+U`^"@D\3$D^/%`^ +M5&AE(&9U;&P@<&%T:"!T;R!T:&4@97AE8W5T86)L92!P<F]G<F%M(&)E:6YG +M('1E<W1E9"`H;F]T"@EA<'!L:6-A8FQE('1O(&QI8F%R8VAI=F5?=&5S="!S +M:6YC92!L:6)A<F-H:79E(&ES(&-O;7!I;&5D(&EN=&\@=&AE"@ET97-T('!R +M;V=R86TI(`H)/"]0/@H\+U5,/@H\4#Y4:&4@<F5F97)E;F-E(&9I;&5S(&%R +M92!A(&-O;&QE8W1I;VX@;V8@:VYO=VX@:6YP=71S('1H870@87)E('5S960* +M:6X@=&AE('1E<W0@<')O8V5S<RX@5&AE>2!A<F4@86QL('-T;W)E9"!I;B!U +M=65N8V]D960@9F]R;6%T(&EN(&9I;&5S"G=I=&@@82`F<75O=#LN=74F<75O +M=#L@97AT96YS:6]N+B!4:&4@=&5S="!P<F]G<F%M<R!L;V]K(&EN(&$@9F5W +M"G-T86YD87)D(&QO8V%T:6]N<SL@:68@;F]N92!O9B!T:&]S92!W;W)K+"!Y +M;W4G;&P@;F5E9"!T;R!S<&5C:69Y('1H90H\5%0@0TQ!4U,](G=E<W1E<FXB +M/BUR/"]45#X@;W!T:6]N('=I=&@@=&AE(&9U;&P@<&%T:&YA;64@=&\@=&AE +M"F%P<')O<')I871E(&1I<F5C=&]R>2X@"CPO4#X*/%`^5&AE(&)S9'1A<E]T +M97-T(&%N9"!B<V1C<&EO7W1E<W0@<')O9W)A;7,@<G5N(&)S9'1A<B!O<B!B +M<V1C<&EO"G)E<&5A=&5D;'D[('1H97D@;F5E9"!T:&4@9G5L;"!P871H('1O +M('1H92!A<'!R;W!R:6%T92!E>&5C=71A8FQE+@I!;'1H;W5G:"!B<V1T87)? +M=&5S="!A;F0@8G-D8W!I;U]T97-T(&%R92!S<&5C:69I8V%L;'D@:6YT96YD +M960@9F]R"G1E<W1I;F<@8G-D=&%R(&%N9"!B<V1C<&EO+"!T:&5Y('-H;W5L +M9"!B92!U<V%B;&4@9F]R('1E<W1I;F<@;W1H97(*=&%R(&%N9"!C<&EO('!R +M;V=R86US+B!);B!F86-T+"!R=6YN:6YG('1H97-E('1E<W0@<')O9W)A;7,@ +M86=A:6YS=`IO=&AE<B!T87(@:6UP;&5M96YT871I;VYS(&ES(&$@9V]O9"!W +M87D@=&\@=F5R:69Y('1H870@=&AE('1E<W0*<')O9W)A;7,@=&AE;7-E;'9E +M<R!A<F4@=V]R:VEN9R!C;W)R96-T;'DN(`H\+U`^"CQ0/E=H96X@<G5N+"!T +M:&4@=&5S="!P<F]G<F%M<R!O=71P=70@82!P<F]G<F5S<R!M97-S86=E(&9O +M<B!E86-H"G1E<W0L(&%N(&5R<F]R(&UE<W-A9V4@9F]R(&5A8V@@9F%I;&5D +M(&%S<V5R=&EO;BP@86YD(&$@9FEN86P*<W5M;6%R>3H@"CPO4#X*/%!212!# +M3$%34STB=V5S=&5R;B(^)FYB<W`[4G5N;FEN9R!T97-T<R!I;CH@+W1M<"]B +M<V1T87)?=&5S="XR,#`Y+3`R+3$W5#(Q+C,P+C0P+3`P,`HF;F)S<#M2969E +M<F5N8V4@9FEL97,@=VEL;"!B92!R96%D(&9R;VTZ("9N8G-P.R`F;F)S<#LO +M:&]M92]T:6TO;&EB87)C:&EV92]T<G5N:R]T87(O=&5S=`HF;F)S<#M2=6YN +M:6YG('1E<W1S(&]N.B`O:&]M92]T:6TO;&EB87)C:&EV92]T<G5N:R]B<V1T +M87(*)FYB<W`[17AE<F-I<VEN9SH@8G-D=&%R(#(N-BXY,#!A("T@;&EB87)C +M:&EV92`R+C8N.3`P80HF;F)S<#LP.B!T97-T7S`*)FYB<W`[,3H@=&5S=%]B +M87-I8PHF;F)S<#LR.B!T97-T7V-O<'D*)FYB<W`[('1E<W1?8V]P>2YC.C$W +M,3H@07-S97)T:6]N(&9A:6QE9#H@26YT<R!N;W0@97%U86P*)FYB<W`[("9N +M8G-P.R`F;F)S<#L@,#TP"B9N8G-P.R`F;F)S<#L@)FYB<W`[(&QS=&%T*&YA +M;64R("L@,RP@)F%M<#MS=#(I/2TQ"B9N8G-P.R!T97-T7V-O<'DN8SHQ-S$Z +M($9A:6QE9"`R-C0@=&EM97,*)FYB<W`[,SH@=&5S=%]G971D871E"B9N8G-P +M.S0Z('1E<W1?:&5L<`HF;F)S<#L@)FYB<W`[("XN+B!M;W)E(&]U='!U="!O +M;6ET=&5D("XN+@HF;F)S<#LQ(&]F(#$S('1E<W1S(')E<&]R=&5D(&9A:6QU +M<F5S"B9N8G-P.R!4;W1A;"!O9B`Q,#4P.3<@87-S97)T:6]N<R!C:&5C:V5D +M+@HF;F)S<#L@5&]T86P@;V8@,C8T(&%S<V5R=&EO;G,@9F%I;&5D+@HF;F)S +M<#L@5&]T86P@;V8@,"!A<W-E<G1I;VYS('-K:7!P960N/"]04D4^/%`^"E1H +M92!H96%D97(@;&EN97,@:&5R92!R96-O<F0Z(`H\+U`^"CQ53#X*"3Q,23X\ +M4"!35%E,13TB;6%R9VEN+6)O='1O;3H@,&EN(CYT:&4@9&ER96-T;W)Y('1H +M870@=VEL;"!B92!U<V5D"@EF;W(@<V-R871C:"!F:6QE<R!D=7)I;F<@=&AE +M('1E<W0N($EF(&$@=&5S="!F86EL<RP@=&AE('-C<F%T8V@*"69I;&5S('=I +M;&P@8F4@;&5F="!B96AI;F0@:6X@=&AI<R!D:7)E8W1O<GD@9F]R(&9U<G1H +M97(@9&5B=6=G:6YG+B`*"3PO4#X*"3Q,23X\4"!35%E,13TB;6%R9VEN+6)O +M='1O;3H@,&EN(CY4:&4@9&ER96-T;W)Y(&9R;VT@=VAI8V@@=&AE"@ER969E +M<F5N8V4@9FEL97,@=VEL;"!B92!R96%D+B`*"3PO4#X*"3Q,23X\4"!35%E, +M13TB;6%R9VEN+6)O='1O;3H@,&EN(CY&;W(@8G-D=&%R7W1E<W0@86YD(&)S +M9&-P:6]?=&5S="P*"71H92!F=6QL('!A=&@@=&\@=&AE(&5X96-U=&%B;&4@ +M8F5I;F<@97AE<F-I<V5D+B`*"3PO4#X*"3Q,23X\4#Y"87-I8R!V97)S:6]N +M(&EN9F]R;6%T:6]N(&%B;W5T('1H92!T87)G970N(`H)/"]0/@H\+U5,/@H\ +M4#Y);B!T:&ES(&-A<V4L('1H92!T<F%I;&5R(&EN9&EC871E<R!T:&%T(&]N +M92!T97-T(&9A:6QE9"X@07,@>6]U"F-A;B!S964L('1H97)E('=A<R!A('-I +M;F=L92!A<W-E<G1I;VX@:6X@=&AE(&-O9&4@=&AA="!F86EL960@,C8T"G1I +M;65S+B!4:&4@9FER<W0@=&EM92!I="!F86EL960L(&ET('=A<R!B96-A=7-E +M(&%N(#Q45"!#3$%34STB=V5S=&5R;B(^;'-T870H*3PO5%0^"F-A;&P@<F5T +M=7)N960@+3$@:6YS=&5A9"!O9B!T:&4@>F5R;R!T:&%T('=A<R!E>'!E8W1E +E9"X@"CPO4#X*/$@Q($-,05.HQWL/0!0`.^^E?`<````````````` +` +end diff --git a/libarchive/test/test_rar_multivolume_uncompressed_files.part09.rar.uu b/libarchive/test/test_rar_multivolume_uncompressed_files.part09.rar.uu new file mode 100644 index 00000000..bdcdc999 --- /dev/null +++ b/libarchive/test/test_rar_multivolume_uncompressed_files.part09.rar.uu @@ -0,0 +1,299 @@ +begin 644 - +M4F%R(1H'`!EZ<Q$`#0````````"N!'0CD$,`E3,``(].```#97_()_-C(4`4 +M,!D`I($``$QI8F%R8VAI=F5!9&1I;F=497-T+FAT;6S`S`E?.T(R7SM"4STB +M=V5S=&5R;B(^/$$@3D%-13TB0F%S:6-?=&5S=%]T97)M:6YO;&]G>2(^/"]! +M/D)A<VEC('1E<W0*=&5R;6EN;VQO9WD\+T@Q/@H\4#Y%86-H('1E<W0@<')O +M9W)A;2!C;VYS:7-T<R!O9B!A(&YU;6)E<B!O9B`F<75O=#MT97-T<R9Q=6]T +M.RX@16%C:`IT97-T(&AA<R!A(&YA;64@86YD(&ES(&EM<&QE;65N=&5D(&EN +M(&$@0R!S;W5R8V4@9FEL92!W:71H('1H92!S86UE"FYA;64@87,@=&AE('1E +M<W0N(%1E<W1S('=O<FL@8GD@<&5R9F]R;6EN9R!S;VUE('-E<FEE<R!O9B!O +M<&5R871I;VYS"F%N9"!M86MI;F<@)G%U;W0[87-S97)T:6]N<R9Q=6]T.R!A +M8F]U="!T:&4@<F5S=6QT<RX@1F]R(&5X86UP;&4L"FUA;GD@;V8@=&AE(&QI +M8F%R8VAI=F4@=&5S=',@;W!E;B!A;F0@<F5A9"!A;B!A<F-H:79E(&%N9"!A +M<W-E<G0@=&AA=`IP87)T:6-U;&%R(&]P97)A=&EO;G,@<W5C8V5E9&5D(&]R +M(&9A:6QE9"X@*%EE<RP@:70@:7,@;V9T96X*:6UP;W)T86YT('1O('9E<FEF +M>2!T:&%T(&EL;&5G86P@<F5Q=65S=',@9V5N97)A=&4@87!P<F]P<FEA=&4* +M97)R;W)S+BD@"CPO4#X*/%`^2&5R92!I<R!A('-O;65W:&%T(&5D:71E9"!E +M>&-E<G!T(&9R;VT@/%14($-,05-3/2)W97-T97)N(CYT97-T7V-O;7!A=%]Z +M:7`\+U14/BP*=VAI8V@@=F5R:69I97,@8V]M<&%T:6)I;&ET>2!W:71H('9A +M<FEO=7,@6DE0(&9O<FUA="!A<F-H:79E<SH@"CPO4#X*/%!212!#3$%34STB +M=V5S=&5R;B(^)FYB<W`[($1%1DE.15]415-4*'1E<W1?8V]M<&%T7WII<"D* +M)FYB<W`[('L*)FYB<W`[("9N8G-P.R`O*B`N+BX@<V5T=7`@;VUI='1E9"`N +M+BX@*B\*)FYB<W`[("9N8G-P.R!A<W-E<G0H*&$@/2!A<F-H:79E7W)E861? +M;F5W*"DI("$]($Y53$PI.PHF;F)S<#L@)FYB<W`[(&%S<V5R=$5Q=6%L26YT +M*$%20TA)5D5?3TLL"B9N8G-P.R`F;F)S<#L@)FYB<W`[("9N8G-P.R!A<F-H +M:79E7W)E861?<W5P<&]R=%]C;VUP<F5S<VEO;E]A;&PH82DI.PHF;F)S<#L@ +M)FYB<W`[(&%S<V5R=$5Q=6%L26YT*$%20TA)5D5?3TLL"B9N8G-P.R`F;F)S +M<#L@)FYB<W`[("9N8G-P.R!A<F-H:79E7W)E861?<W5P<&]R=%]F;W)M871? +M86QL*&$I*3L*)FYB<W`[("9N8G-P.R!E>'1R86-T7W)E9F5R96YC95]F:6QE +M*&YA;64I.PHF;F)S<#L@)FYB<W`[(&%S<V5R=$5Q=6%L26YT*$%20TA)5D5? +M3TLL"B9N8G-P.R`F;F)S<#L@)FYB<W`[("9N8G-P.R!A<F-H:79E7W)E861? +M;W!E;E]F:6QE;F%M92AA+"!N86UE+"`Q,#(T,"DI.PHF;F)S<#L@)FYB<W`[ +M("9N8G-P.R\J(%)E860@9FER<W0@96YT<GDN("HO"B9N8G-P.R`F;F)S<#L@ +M)FYB<W`[87-S97)T17%U86Q);G0H05)#2$E615]/2RP@87)C:&EV95]R96%D +M7VYE>'1?:&5A9&5R*&$L("9A;7`[864I*3L*)FYB<W`[("9N8G-P.R`F;F)S +M<#MA<W-E<G1%<75A;%-T<FEN9R@F<75O=#M-151!+4E.1B]-04Y)1D535"Y- +M1B9Q=6]T.RP@87)C:&EV95]E;G1R>5]P871H;F%M92AA92DI.SPO4%)%/CQ0 +M/@I4:&4@/%14($-,05-3/2)W97-T97)N(CYA<W-E<G186%A8/"]45#X@;6%C +M<F]S(&-H96-K('1H870@=&AE:7(*87)G=6UE;G1S('-A=&ES9GD@8V5R=&%I +M;B!C;VYD:71I;VYS+B!)9B!T:&4@87-S97)T:6]N(&9A:6QS+2UF;W(*97AA +M;7!L92P@:68@=&AE(&YA;64@;V8@=&AE(&9I<G-T(&5N=')Y(&ES(&YO=`HF +M<75O=#M-151!+4E.1B]-04Y)1D535"Y-1B9Q=6]T.RTM=&AE(&UA8W)O('=I +M;&P@<F5P;W)T('1H92!P<F]B;&5M+B`*/"]0/@H\4#Y4:&5R92!A<F4@='=O +M(&EM<&]R=&%N="!D:69F97)E;F-E<R!B971W965N('1H92`\5%0@0TQ!4U,] +M(G=E<W1E<FXB/F%S<V5R=%A86#PO5%0^"FUA8W)O<R!U<V5D(&EN('1H97-E +M('1E<W0@:&%R;F5S<V5S(&%N9"!T:&4@25-/($,@<W1A;F1A<F0@/%14($-, +M05-3/2)W97-T97)N(CYA<W-E<G0\+U14/@IM86-R;SH@1FER<W0L('1H97-E +M(&%S<V5R="!M86-R;W,@9&]N)W0@97AI="!O;B!F86EL=7)E+B!">2!D969A +M=6QT+`IT:&5Y(')E<&]R="!T:&4@9F%I;'5R92!A;F0@<F5T=7)N('IE<F\@ +M*'1H92!#(&YO=&EO;B!O9B`F<75O=#MF86QS929Q=6]T.RDN"E-E8V]N9"P@ +M=&AE<V4@;6%C<F]S(&EN8VQU9&4@=F%R:6%N=',@=&AA="!P97)F;W)M(&$@ +M=F%R:65T>2!O9@IS<&5C:69I8R!T97-T<RX@5&AE<V4@<W!E8VEF:6,@=F5R +M<VEO;G,@*'-U8V@@87,@/%14($-,05-3/2)W97-T97)N(CYA<W-E<G1%<75A +M;$EN=#PO5%0^"F%N9"`\5%0@0TQ!4U,](G=E<W1E<FXB/F%S<V5R=$5Q=6%L +M4W1R:6YG/"]45#X@:6X@=&AE(&5X86UP;&4@86)O=F4I"F=E;F5R871E(&1E +M=&%I;&5D(&QO9R!M97-S86=E<R!O;B!F86EL=7)E+B!);B!P87)T:6-U;&%R +M+"!T:&5Y('!R:6YT"G1H92!V86QU92!O9B!B;W1H(&%R9W5M96YT<SL@=&AI +M<R!G<F5A=&QY('-I;7!L:69I97,@9&EA9VYO<VEN9PIF86EL=7)E<RX@"CPO +M4#X*/$@Q($-,05-3/2)W97-T97)N(CX\02!.04U%/2),:69E7V-Y8VQE7V]F +M7V%?=&5S="(^/"]!/DQI9F4@8WEC;&4@;V8*82!T97-T/"](,3X*/%`^16%C +M:"!T97-T(')E<VED97,@:6X@82!#('-O=7)C92!F:6QE('=I=&@@=&AE('-A +M;64@;F%M92!A<R!T:&4*=&5S="X@5&AE('1E<W0@:71S96QF(&ES(&$@9G5N +M8W1I;VX@=&AA="!T86ME<R!N;R!A<F=U;65N=',N(%1H92!T97-T"FES(&1E +M8VQA<F5D('5S:6YG('1H92`\5%0@0TQ!4U,](G=E<W1E<FXB/D1%1DE.15]4 +M15-4*"D\+U14/B!M86-R;RX*5&AI<R!M86-R;R!S97)V97,@8F]T:"!T;R!E +M;G-U<F4@=&AA="!T:&4@=&5S="!I<R!D96-L87)E9"!C;W)R96-T;'D*86YD +M(&%S(&$@;&%B96P@=&AA="!C86X@8F4@=7-E9"!T;R!L;V-A=&4@86QL(&1E +M9FEN960@=&5S=',N("A/;@I5;FEX+6QI:V4@<&QA=&9O<FUS+"!A('-I;7!L +M92`\5%0@0TQ!4U,](G=E<W1E<FXB/F=R97`\+U14/B!O<&5R871I;VX*:7,@ +M=7-E9"!T;R!C;VYS=')U8W0@82!F:6QE(&-A;&QE9"`\5%0@0TQ!4U,](G=E +M<W1E<FXB/FQI<W0N:#PO5%0^"G1H870@:&]L9',@=&AE(&YA;65S(&]F(&%L +M;"!O9B!T:&4@=&5S=',N(%1H:7,@;6%K97,@:70@=F5R>2!E87-Y('1O"F%D +M9"!N97<@=&5S=',N*2`*/"]0/@H\4#Y4:&4@=&5S="!H87)N97-S(&1E=&5R +M;6EN97,@=VAI8V@@=&5S=',@=&\@<G5N+B!)="!G;V5S('1H<F]U9V@*=&AE +M(&9O;&QO=VEN9R!S=&5P<R!W:&5N979E<B!I="!R=6YS(&$@=&5S=#H@"CPO +M4#X*/%5,/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB/CQ3 +M5%))2T4^0VQO<V5S(&%L;"!F:6QE"@ED97-C<FEP=&]R<R!E>&-E<'0@9F]R +M('-T9&EN+"!S=&1O=70L(&%N9"!S=&1E<G(N/"]35%))2T4^("A4:&ES"@ES +M8W)E=W,@=7`@;&EB8R!O;B!S;VUE('!L871F;W)M<R!S;R!H87,@8F5E;B!R +M96UO=F5D+BD@"@D\+U`^"@D\3$D^/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ +M(#!I;B(^0W)E871E<R!A('1E;7!O<F%R>2!D:7)E8W1O<GD*"7=H;W-E(&YA +M;64@;6%T8VAE<R!T:&4@;F%M92!O9B!T:&4@=&5S="!A;F0@<W=I=&-H97,@ +M:6YT;R!T:&%T"@ED:7)E8W1O<GDN(`H)/"]0/@H)/$Q)/CQ0(%-464Q%/2)M +M87)G:6XM8F]T=&]M.B`P:6XB/E)E<V5T<R!T:&4@8W5R<F5N="!L;V-A;&4N +M(`H)/"]0/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB/D-A +M;&QS('1H92!T97-T(&9U;F-T:6]N+B`*"3PO4#X*"3Q,23X\4"!35%E,13TB +M;6%R9VEN+6)O='1O;3H@,&EN(CY)9B!T:&5R92!W97)E(&YO(&%S<V5R=&EO +M;@H)9F%I;'5R97,L(&ET('=I;&P@<F5M;W9E('1H92!T96UP;W)A<GD@9&ER +M96-T;W)Y+B`H268@/%14($-,05-3/2)W97-T97)N(CXM:SPO5%0^"@EI<R!S +M<&5C:69I960L('1E;7!O<F%R>2!D:7)E8W1O<GD@87)E(&QE9G0@979E;B!I +M9B!T:&4@=&5S=`H)<W5C8V5E9',N*2`*"3PO4#X*"3Q,23X\4#X\4U1224M% +M/DEF('1H97)E(&%R92!A;GD@;W!E;B!F:6QE(&1E<V-R:7!T;W)S(&]T:&5R +M('1H86X*"7-T9&EN+"!S=&1O=70L(&%N9"!S=&1E<G(L(&ET(')E<&]R=',@ +M86X@97)R;W(N/"]35%))2T4^(%1E<W1S"@ES:&]U;&0@;F5V97(@;&5A=F4@ +M;W!E;B!F:6QE(&1E<V-R:7!T;W)S+B`*"3PO4#X*/"]53#X*/%`^26X@<&%R +M=&EC=6QA<BP@=&5S=',@8V%N('-A9F5L>2!A<W-U;64@=&AA=#H@"CPO4#X* +M/%5,/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB/E1H92!C +M=7)R96YT(&1I<F5C=&]R>2!I<R!E;7!T>0H)=VAE;B!T:&4@=&5S="!S=&%R +M=',N(`H)/"]0/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB +M/D%N>2!F:6QE<R!C<F5A=&5D(&EN('1H92!C=7)R96YT"@ED:7)E8W1O<GD@ +M=VEL;"!B92!R96UO=F5D(&9O<B!Y;W4N(`H)/"]0/@H)/$Q)/CQ0/E1H92!C +M=7)R96YT(&QO8V%L92!I<R!T:&4@9&5F875L="`F<75O=#M#)G%U;W0[(&QO +M8V%L92X@"@D\+U`^"CPO54P^"CQ0/E1E<W1S('-H;W5L9#H@"CPO4#X*/%5, +M/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB/E)E;&5A<V4@ +M86QL(&UE;6]R>2X@5&AE('1E<W0*"7-U:71E<R!A<F4@;V-C87-I;VYA;&QY +M(')U;B!U;F1E<B!A(&UE;6]R>2!D96)U9V=E<B!T;R!D971E8W0@;&5A:W,* +M"6EN('1H92!L:6)A<F-H:79E(&QI8G)A<GDN(`H)/"]0/@H)/$Q)/CQ0(%-4 +M64Q%/2)M87)G:6XM8F]T=&]M.B`P:6XB/D-L;W-E(&%L;"!O<&5N960@9FEL +M97,N(%1H:7,@:&5L<',*"71O(&-A=&-H(&9I;&4@9&5S8W)I<'1O<B!L96%K +M<R!I;B!L:6)A<F-H:79E+B`*"3PO4#X*"3Q,23X\4#Y.;W0@<F5A9"!O<B!W +M<FET92!A8G-O;'5T92!P871H<RX@"@D\+U`^"CPO54P^"CQ(,2!#3$%34STB +M=V5S=&5R;B(^/$$@3D%-13TB4&QA=&9O<FU?=F%R:6%T:6]N(CX\+T$^4&QA +M=&9O<FT*=F%R:6%T:6]N/"](,3X*/%`^4V]M92!T97-T<R!A<F4@<W!E8VEF +M:6,@=&\@82!P87)T:6-U;&%R('!L871F;W)M+B!3=6-H('1E<W1S"G-H;W5L +M9"!U<V4@87!P<F]P<FEA=&4@<&QA=&9O<FTM<W!E8VEF:6,@;6%C<F]S(&%S +M(&9O;&QO=W,Z(`H\+U`^"CQ04D4@0TQ!4U,](G=E<W1E<FXB/B-I9B!?7U!, +M051&3U)-"BXN+B!V87)I;W5S(&AE;'!E<B!F=6YC=&EO;G,@+BXN"B-E;F1I +M9@I$149)3D5?5$535"AF;V]?<&QA=&9O<FTI"GL*(VEF(%]?4$Q!5$9/4DT* +M)FYB<W`[("9N8G-P.RXN+B!T97-T<R!A<R!U<W5A;"`N+BXN"B-E;'-E"B9N +M8G-P.R`F;F)S<#MS:VEP<&EN9R@F<75O=#MP;&%T9F]R;2US<&5C:69I8R!T +M97-T<R9Q=6]T.RD["B-E;F1I9@I]/"]04D4^/%`^"DEN('!A<G1I8W5L87(L +M(&YO=&4@=&AA="!A;&P@=&5S=',@87)E(&-O;7!I;&5D(&%N9"!R=6X@;VX@ +M86QL"G!L871F;W)M<RX@"CPO4#X*/%`^36]S="!T97-T<R!A<F4@;F]T('!L +M871F;W)M+7-P96-I9FEC(&%N9"!W:6QL('1H=7,@96YD('5P(')U;FYI;F<* +M;VX@;6%N>2!D:69F97)E;G0@<&QA=&9O<FUS+B!);B!O<F1E<B!T;R!S:6UP +M;&EF>2!W<FET:6YG('-U8V@@=&5S=',L"G1R>2!T;R!U<V4@<&QA=&9O<FTM +M:6YD97!E;F1E;G0@8V]D:6YG.B`*/"]0/@H\54P^"@D\3$D^/%`@4U193$4] +M(FUA<F=I;BUB;W1T;VTZ(#!I;B(^57-E('-T9&EO(#Q45"!#3$%34STB=V5S +M=&5R;B(^9F]P96XH*3PO5%0^+`H)/%14($-,05-3/2)W97-T97)N(CYF=W)I +M=&4H*3PO5%0^+"`\5%0@0TQ!4U,](G=E<W1E<FXB/F9R96%D*"D\+U14/BP* +M"6%N9"`\5%0@0TQ!4U,](G=E<W1E<FXB/F9C;&]S92@I/"]45#X@=&\@86-C +M97-S(&9I;&5S('=H96YE=F5R"@EF96%S:6)L92X@"@D\+U`^"@D\3$D^/%`^ +M3&]O:R!T:')O=6=H('1H92`\5%0@0TQ!4U,](G=E<W1E<FXB/G1E<W0N:#PO +M5%0^(&AE861E<B!T;PH)<V5E(&EF('1H97)E(&%R92!A<W-E<G18>'@H*2!F +M=6YC=&EO;G,@=&AA="!Y;W4@8V%N('5S92X@5&AE<F4G<R!A"@EL:7-T(&]F +M('1H92!M;W)E('!O<'5L87(@;VYE<R!B96QO=RP@8G5T(&YE=R!O;F5S(&%R +M92!O9G1E;B!A9&1E9"X@"@D\+U`^"CPO54P^"CQ(,2!#3$%34STB=V5S=&5R +M;B(^/$$@3D%-13TB07-S97)T7VUA8W)O<R(^/"]!/D%S<V5R="!M86-R;W,\ +M+T@Q/@H\4#Y4:&4@9F]L;&]W:6YG(&ES(&$@;F5C97-S87)I;'D@:6YC;VUP +M;&5T92!L:7-T(&]F(&%S<V5R="!F=6YC=&EO;G,*879A:6QA8FQE('1O('1E +M<W1S.B`*/"]0/@H\54P^"@D\3$D^/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ +M(#!I;B(^0F%S:6,@97%U86QI='DZ(#Q45"!#3$%34STB=V5S=&5R;B(^87-S +M97)T17%U86Q);G0\+U14/BP*"3Q45"!#3$%34STB=V5S=&5R;B(^87-S97)T +M17%U86Q3=')I;F<\+U14/BP@/%14($-,05-3/2)W97-T97)N(CYA<W-E<G1% +M<75A;$UE;3PO5%0^"@D)/"]0/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T +M=&]M.B`P:6XB/D9I;&4@8W)E871I;VXZ(#Q45"!#3$%34STB=V5S=&5R;B(^ +M87-S97)T36%K949I;&4\+U14/BP*"3Q45"!#3$%34STB=V5S=&5R;B(^87-S +M97)T36%K95-Y;6QI;FL\+U14/BP@/%14($-,05-3/2)W97-T97)N(CYA<W-E +M<G1-86ME2&%R9&QI;FL\+U14/BP*"3Q45"!#3$%34STB=V5S=&5R;B(^87-S +M97)T36%K941I<CPO5%0^(`H)/"]0/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM +M8F]T=&]M.B`P:6XB/D9I;&4@=&5S=',Z(#Q45"!#3$%34STB=V5S=&5R;B(^ +M87-S97)T27-296<\+U14/BP*"3Q45"!#3$%34STB=V5S=&5R;B(^87-S97)T +M27-$:7(\+U14/BP@/%14($-,05-3/2)W97-T97)N(CYA<W-E<G1)<U-Y;6QI +M;FL\+U14/BP*"3Q45"!#3$%34STB=V5S=&5R;B(^87-S97)T1FEL95-I>F4\ +M+U14/BP@/%14($-,05-3/2)W97-T97)N(CYA<W-E<G1&:6QE3FQI;FMS/"]4 +M5#XL"@D\5%0@0TQ!4U,](G=E<W1E<FXB/F%S<V5R=$9I;&5-=&EM93PO5%0^ +M(`H)/"]0/@H)/$Q)/CQ0/D9I;&4@8V]N=&5N=',Z(#Q45"!#3$%34STB=V5S +M=&5R;B(^87-S97)T1FEL945M<'1Y/"]45#XL"@D\5%0@0TQ!4U,](G=E<W1E +M<FXB/F%S<V5R=$9I;&5.;VY%;7!T>3PO5%0^+"`\5%0@0TQ!4U,](G=E<W1E +M<FXB/F%S<V5R=$9I;&5#;VYT96YT<SPO5%0^+`H)/%14($-,05-3/2)W97-T +M97)N(CYA<W-E<G1497AT1FEL94-O;G1E;G1S/"]45#X@"@D\+U`^"CPO54P^ +M"CQ(,2!#3$%34STB=V5S=&5R;B(^/$$@3D%-13TB4F5F97)E;F-E7T9I;&5S +M(CX\+T$^4F5F97)E;F-E($9I;&5S/"](,3X*/%`^36%N>2!T97-T<R!R97%U +M:7)E(')E861I;F<@82!P<F4M8V]N<W1R=6-T960@<F5F97)E;F-E(&9I;&4N +M(%-U8V@*9FEL97,@87)E('-T;W)E9"!W:71H('1H92!S;W5R8V4@8V]D92!F +M;W(@=&AE(&%S<V]C:6%T960@=&5S="!S=6ET92X*4F5F97)E;F-E(&9I;&5S +M(&%R92!N86UE9"!A8V-O<F1I;F<@=&\@=&AE('1E<W0@86YD(&UU<W0@8F4@ +M=75E;F-O9&5D"G1O(&)E(&-H96-K960@:6YT;R!S;W5R8V4@8V]N=')O;"X@ +M"CPO4#X*/%`^1F]R(&5X86UP;&4L(&EF('EO=2!N965D(&$@<F5F97)E;F-E +M('1A<B!A<F-H:79E('1O('5S92!W:71H"CQ45"!#3$%34STB=V5S=&5R;B(^ +M=&5S=%]F;V\\+U14/BP@=&AE(&9I;&4@<VAO=6QD(&)E(&YA;65D"CQ45"!# +M3$%34STB=V5S=&5R;B(^=&5S=%]F;V\N=&%R/"]45#X@86YD('-T;W)E9"!I +M;B!S;W5R8V4@8V]N=')O;"!A<PH\5%0@0TQ!4U,](G=E<W1E<FXB/G1E<W1? +M9F]O+G1A<BYU=3PO5%0^+B`*/"]0/@H\4#Y7:71H:6X@=&AE('1E<W0@8V]D +M92P@>6]U(&-A;B!R96-O=F5R('1H92!R969E<F5N8V4@9FEL92!W:71H.B`* +M/"]0/@H\4%)%($-,05-3/2)W97-T97)N(B!35%E,13TB;6%R9VEN+6)O='1O +M;3H@,"XR:6XB/B9N8G-P.R`F;F)S<#L@97AT<F%C=%]R969E<F5N8V5?9FEL +M92@F<75O=#MT97-T7V9O;RYT87(F<75O=#LI.SPO4%)%/CQ0/@I4:&4@/%14 +M($-,05-3/2)W97-T97)N(CYE>'1R86-T7W)E9F5R96YC95]F:6QE*"D\+U14 +M/B!F=6YC=&EO;B!W:6QL"G5U9&5C;V1E('1H92!R97%U97-T960@9FEL92!A +M;F0@<'5T('1H92!R97-U;'0@:6X@=&AE(&-U<G)E;G0*9&ER96-T;W)Y+B`* +M/"]0/@H\4#Y,;V]K(&%T(#Q45"!#3$%34STB=V5S=&5R;B(^=&5S=%]R96%D +M7V9O<FUA=%]C<&EO7V)I;E]B92YC/"]45#X*9F]R(&$@<VEM<&QE(&5X86UP +M;&4@;V8@=&AI<R!U<V%G92X@"CPO4#X*/%`^02!F97<@;V8@=&AE(&]L9&5R +M('1E<W1S('-T;W)E(')E9F5R96YC92!D871A('=I=&AI;B!T:&4@<V]U<F-E +M"F-O9&4@87,@82!H97@M96YC;V1E9"!A<G)A>2!O9B!C:&%R86-T97)S+B!4 +M:&ES('=A<R!C;VUM;VX@8F5F;W)E"CQ45"!#3$%34STB=V5S=&5R;B(^97AT +M<F%C=%]R969E<F5N8V5?9FEL92@I/"]45#X@=V%S(&%D9&5D(&%N9"!I<PIN +M;W0@<F5C;VUM96YD960@9F]R(&YE=R!C;V1E+B`*/"]0/@H\2#$@0TQ!4U,] +M(G=E<W1E<FXB/CQ!($Y!344](D1O<U]A;F1?1&]N=',B/CPO03Y$;W,@86YD +M($1O;G1S/"](,3X*/%5,/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M +M.B`P:6XB/D1/('5S92!A<W-E<G1S(&QI8F5R86QL>2X@270G<PH)8V]M;6]N +M('1O(&AA=F4@86X@87-S97)T(&]N(&%L;6]S="!E=F5R>2!L:6YE+B`*"3PO +M4#X*"3Q,23X\4"!35%E,13TB;6%R9VEN+6)O='1O;3H@,&EN(CY$3R!U<V4@ +M87-S97)T17%U86Q);G0L"@EA<W-E<G1%<75A;%-T<FEN9RP@87-S97)T17%U +M86Q-96T@=&\@=&5S="!E<75A;&ET>2!I;G-T96%D(&]F('!L86EN"@EA<W-E +M<G0H*3L@=&AE('-P96-I86QI>F5D(&9O<FUS(&=I=F4@82!L;W0@;6]R92!I +M;F9O<FUA=&EO;B!O;B!A"@EF86EL=7)E+B`*"3PO4#X*"3Q,23X\4"!35%E, +M13TB;6%R9VEN+6)O='1O;3H@,&EN(CY$3R!T97-T('EO=7(@=&5S=',[(&5X +M<&5R:6UE;G0@8GD*"6-H86YG:6YG(&$@<&EE8V4@;V8@8V]D92!A;F0@;6%K +M92!S=7)E('EO=7(@=&5S="!F86EL<RX@268@>6]U('1H:6YK"@EY;W4G=F4@ +M9F]U;F0@82!B=6<L('=E(')E8V]M;65N9"!W<FET:6YG('1H92!T97-T(&9I +M<G-T+"!M86ME('-U<F4*"71H92!T97-T(&9A:6QS+"!T:&5N(&9I>&EN9R!T +M:&4@8G5G+B`*"3PO4#X*"3Q,23X\4"!35%E,13TB;6%R9VEN+6)O='1O;3H@ +M,&EN(CY$3R!R=6X@86QL(&]F('1H92!T97-T<R!B969O<F4*"7-U8FUI='1I +M;F<@82!C:&%N9V4N($1E<&5N9&EN9R!O;B!Y;W5R(&)U:6QD(&5N=FER;VYM +M96YT+"`\5%0@0TQ!4U,](G=E<W1E<FXB/FUA:V4*"71E<W0\+U14/B!O<B`\ +M5%0@0TQ!4U,](G=E<W1E<FXB/FUA:V4@8VAE8VL\+U14/B!W:6QL('5S=6%L +M;'D@<G5N"@EA;&P@;V8@=&AE('1E<W1S+B`*"3PO4#X*"3Q,23X\4"!35%E, +M13TB;6%R9VEN+6)O='1O;3H@,&EN(CY$3TXG5"!R96QY(&]N(#Q45"!#3$%3 +M4STB=V5S=&5R;B(^2$%615\\+U14/@H);6%C<F]S(&9R;VT@8V]N9FEG+F@N +M("A)9B!T:&4@=&5S=',@=7-E('1H92!S86UE(#Q45"!#3$%34STB=V5S=&5R +M;B(^2$%615\\+U14/@H);6%C<F]S(&%S('1H92!C;V1E(&)E:6YG('1E<W1E +M9"!T:&5N(&-O;F9I9W5R871I;VX@<')O8FQE;7,@=VEL;"!B90H)8V]V97)E +M9"!U<"XI(`H)/"]0/@H)/$Q)/CQ0(%-464Q%/2)M87)G:6XM8F]T=&]M.B`P +M:6XB/D1/('5S92!R=6YT:6UE('1E<W1S(&9O<B!P;&%T9F]R;0H)9F5A='5R +M97,N($9O<B!E>&%M<&QE+"!T:&4@04-,('1E<W1S('1R>2!T;R!S970@86X@ +M04-,(&]N(&$@9FEL92!A;F0*"7)E860@:70@8F%C:R!T;R!D971E<FUI;F4@ +M:68@04-,('-U<'!O<G0@:7,@879A:6QA8FQE+"!T:&5N('1H97D*"65X97)C +M:7-E('1H92!L:6)A<F-H:79E($%#3"!H86YD;&EN9RX@"@D\+U`^"@D\3$D^ +M/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ(#!I;B(^1$\@;&]O:R!A="!E>&ES +M=&EN9R!T97-T<RX@3V9T96XL"@EA(&)U9R!C86X@8F4@=&5S=&5D(&)Y(&%D +M9&EN9R!J=7-T(&$@8V]U<&QE(&]F(&%S<V5R=',@=&\@86X*"65X:7-T:6YG +M('1E<W0@:6YS=&5A9"!O9B!W<FET:6YG(&$@;F5W(&]N92X@"@D\+U`^"@D\ +M3$D^/%`@4U193$4](FUA<F=I;BUB;W1T;VTZ(#!I;B(^1$\@:6UP<F]V92!E +M>&ES=&EN9R!T97-T<RX@26X*"7!A<G1I8W5L87(L(&EF('EO=2!S964@82!T +M97-T(&9A:6QU<F4@=&AA="!I<R!H87)D('1O('5N9&5R<W1A;F0L"@EC;VYS +M:61E<B!A9&1I;F<@82!F86EL=7)E*"D@;65S<V%G92!O<B!C;VUM96YT<R!S +M;R!T:&4@;F5X="!P97)S;VX*"7=I;&P@:&%V92!A;B!E87-I97(@=&EM92X@ +M"@D\+U`^"@D\3$D^/%`^1$\@87-K(&]N('1H92!M86EL:6YG(&QI<W1S(&EF +M('EO=2!H879E('%U97-T:6]N<RX@4V]M92!T97-T<PH)87)E(&)E='1E<B!W +M<FET=&5N('1H86X@;W1H97)S+B`*"3PO4#X*/"]53#X*/$@Q($-,05-3/2)W +M97-T97)N(CX\02!.04U%/2)3;VUE7V5X86UP;&5S7V]F7W1E<W1S(CX\+T$^ +M4V]M90IE>&%M<&QE<R!O9B!T97-T<SPO2#$^"CQ(,B!#3$%34STB=V5S=&5R +M;B(^/$$@3D%-13TB3&EB87)C:&EV95]R96%D7W1E<W1S(CX\+T$^3&EB87)C +M:&EV90IR96%D('1E<W1S/"](,CX*/%`^5&AE<F4@87)E('%U:71E(&$@9F5W +M(')E860@=&5S=',@=&AA="!S:6UP;'D@<F5A9"!A('!R92UB=6EL=`II;G!U +M="!F:6QE(&%N9"!V97)I9GD@=&AE(')E<W5L=',N(%1H97-E('5S92`\5%0@ +M0TQ!4U,](G=E<W1E<FXB/F5X=')A8W1?<F5F97)E;F-E7V9I;&4H*3PO5%0^ +M"G1O(&1E8V]D92!A('5U96YC;V1E9"!I;G!U="!F:6QE+"!T:&5N(&]P96X@ +M=&AA="!F:6QE('=I=&@@;&EB87)C:&EV90IA;F0@=F5R:69Y('1H92!R97-U +M;'1S+B!-;W-T(&]F('1H97-E(&%R92!P<F5T='D@<W1R86EG:'1F;W)W87)D +M+B`*/"]0/@H\2#(@0TQ!4U,](G=E<W1E<FXB/CQ!($Y!344](DQI8F%R8VAI +M=F5?<F5A9"]W<FET95]T97-T<R(^/"]!/DQI8F%R8VAI=F4*<F5A9"]W<FET +M92!T97-T<SPO2#(^"CQ0/DUO<W0@;V8@=&AE('=R:71E('1E<W1S(')E86QL +M>2!J=7-T('9E<FEF>2!T:&%T(&QI8F%R8VAI=F4@8V%N"G)E860@=VAA="!I +M="!W<FET97,N(%1H97-E(&=E;F5R86QL>2!U<V4@=&AE(&UE;6]R>2!I;G1E +M<F9A8V5S+B!4:&5Y"F9E960@87)C:&EV92!E;G1R:65S(&EN=&\@=&AE('=R +M:71E<B!T;R!C<F5A=&4@86X@87)C:&EV92!I;B!M96UO<GD*86YD('1H96X@ +M;W!E;B!T:&4@;65M;W)Y(&%G86EN('1O(')E860@=&AE(&1A=&$@8F%C:R!A +M;F0@=F5R:69Y('1H870*:70@:7,@=&AE('-A;64N(`H\+U`^"CQ(,B!#3$%3 +M4STB=V5S=&5R;B(^/$$@3D%-13TB3&EB87)C:&EV95]W<FET95]V86QI9&%T +M;W)S(CX\+T$^3&EB87)C:&EV90IW<FET92!V86QI9&%T;W)S/"](,CX*/%`^ +M02!F97<@=W)I=&4@=&5S=',@=W)I=&4@86X@87)C:&EV92!I;G1O(&UE;6]R +M>2!A;F0@=&AE;B!I;G-P96-T"G1H92!A8W1U86P@8GET97,@=&\@=F5R:69Y +M('1H870@=&AE(&%R8VAI=F4@=V%S(&-R96%T960@8V]R<F5C=&QY+@I4:&5S +M92!T97-T<R!A<F4@;FEC92!T;R!H879E(&)U="!A<F4@=&5D:6]U<R!T;R!B +M=6EL9"X@"CPO4#X*/%`^5&AE<F4@87)E(&%L<V\@82!C;W5P;&4@;V8@<W5C +M:"!V86QI9&%T;W)S(&9O<B!B<V1T87(@86YD(&)S9&-P:6\N"E1H97-E(&%R +M92!V97)Y('1R:6-K>2!S:6YC92!T:&4@97AA8W0@9&%T82!C;VYT86EN<R!V +M86QU97,@=&AA="!T:&4*=&5S="!C86YN;W0@8V]M<&QE=&5L>2!C;VYT<F]L +M("AS=6-H(&%S('1H92!C=7)R96YT('1I;64@;W(*=7-E<FYA;64I+B`*/"]0 +M/@H\2#(@0TQ!4U,](G=E<W1E<FXB/CQ!($Y!344](D1I<VM?=&5S=',B/CPO +M03Y$:7-K('1E<W1S/"](,CX*/%`^3&EB87)C:&EV92=S(&1I<VL@22]/($%0 +M27,L(&%S('=E;&P@87,@8G-D=&%R(&%N9"!B<V1C<&EO+"!N965D('1O"F]P +M97)A=&4@8GD@=F5R:69Y:6YG(&9I;&5S(&]N(&1I<VLN(%1O(&UA:V4@=&AI +M<R!E87-I97(L('1H92!T97-T"F9R86UE=V]R:R!N;W<@:&%S(&$@;&%R9V4@ +M;G5M8F5R(&]F(&%S<V5R=&EO;G,@=&\@=F5R:69Y('1I;65S=&%M<',L"G!E +M<FUI<W-I;VYS+"!A;F0@;W1H97(@8F%S:6,@9FEL92!D871A+B!4:&5S92!A +M<W-E<G1I;VYS('5S90IA<'!R;W!R:6%T92!S>7-T96T@8V%L;',@9F]R(&5A +M8V@@<&QA=&9O<FT[(&YE=R!T97-T<R!S:&]U;&0@=')Y('1O"F%V;VED('5S +M:6YG(#Q45"!#3$%34STB=V5S=&5R;B(^<W1A="@I/"]45#XL('=H:6-H(&ES +M(&YO="!U;FEF;W)M;'D*879A:6QA8FQE+B`*/"]0/@H\2#(@0TQ!4U,](G=E +M<W1E<FXB/CQ!($Y!344](D9U>GI?=&5S=&5R(CX\+T$^1G5Z>B!T97-T97(\ +M+T@R/@H\4#Y4:&4@9G5Z>B!T97-T97(@:7,@;VYE(&]F('1H92!F97<@=&5S +M=',@=&AA="!D;V5S(&YO="!A9V=R97-S:79E;'D*=7-E(&%S<V5R=&EO;G,N +M($ET<R!P=7)P;W-E(&ES('1O('1R>2!A;F0@8W)A<V@@;&EB87)C:&EV92!B +M>2!F965D:6YG"FET(&EN<'5T('1H870@:7,@<VQI9VAT;'D@9&%M86=E9"X@ +M*%)E;65M8F5R('1H870@;&EB87)C:&EV92!D;V5S"FAA=F4@<V]M92!F86EL +M<V%F92!C;V1E('1H870@9&5L:6)E<F%T96QY(&%B;W)T<R!T:&4@96YT:7)E +M('!R;V=R86T*:68@8V5R=&%I;B!I;G9A<FEA;G1S(&%R92!V:6]L871E9"XI +M(`H\+U`^"CQ0/E-I;F-E(&$@9G5Z>B!F86EL=7)E(&-A=7-E<R!A(&-R87-H +M+"!I="=S(&EM<&]S<VEB;&4@=&\@<F5P;W)T('1H90IE<G)O<B!T;R!T:&4@ +M8V]N<V]L92P@<V\@=&AE(&9U>GH@=&5S=&5R(&EN<W1E860@9V5N97)A=&5S +M(&$*<F%N9&]M;'DM9&%M86=E9"!F:6QE+"!S879E<R!T:&%T(&9I;&4@=&\@ +M9&ES:RP@=&AE;B!R=6YS('1H92!F:6QE"G1H<F]U9V@@;&EB87)C:&EV92!T +M;R!T<GD@=&\@<')O=F]K92!A(&-R87-H+B!)9B!L:6)A<F-H:79E(&-R87-H +M97,*=&AE(&5N=&ER92!T97-T97(L('1H92!I;G!U="!T:&%T(&-A=7-E9"!T +M:&4@8W)A<V@@=VEL;"!B92!A=F%I;&%B;&4*;VX@9&ES:R!F;W(@9G5R=&AE +M<B!A;F%L>7-I<RX@"CPO4#X*/%`^06QT:&]U9V@@:70@:7,@=6YU<W5A;"!F +M;W(@82!T97-T('!R;V=R86T@=&\@=7-E(')A;F1O;2!I;G!U="P@=&AE"F9U +M>GH@=&5S=&5R(&AA<R!P<F]V96X@<75I=&4@=7-E9G5L(&%T('5N8V]V97)I +M;F<@<&]O<B!E<G)O<@IH86YD;&EN9RX@56YF;W)T=6YA=&5L>2P@=&AE(&YE +M960@=&\@=W)I=&4@=&AE(&1A=&$@=&\@9&ES:R!B969O<F4*96%C:"!T97-T +M(&ES(&$@<VEG;FEF:6-A;G0@<&5R9F]R;6%N8V4@:7-S=64N(`H\+U`^"CQ( +M,B!#3$%34STB=V5S=&5R;B(^/$$@3D%-13TB3&%R9V5?=&%R7W1E<W1E<B(^ +M/"]!/DQA<F=E('1A<B!T97-T97(\+T@R/@H\4#Y4:&4@;&%R9V4@=&%R('1E +E<W1E<B!A='1E;7!T<R!T;R`Q_7L/0!0`M,4>&0@````````````` +` +end diff --git a/libarchive/test/test_rar_multivolume_uncompressed_files.part10.rar.uu b/libarchive/test/test_rar_multivolume_uncompressed_files.part10.rar.uu new file mode 100644 index 00000000..aef15d21 --- /dev/null +++ b/libarchive/test/test_rar_multivolume_uncompressed_files.part10.rar.uu @@ -0,0 +1,75 @@ +begin 644 - +M4F%R(1H'`!EZ<Q$`#0`````````5)G0AD$,`^@@``(].```#8Z8%7O-C(4`4 +M,!D`I($``$QI8F%R8VAI=F5!9&1I;F=497-T+FAT;6S`S`E?.T(R7SM"97AE +M<F-I<V4@8F]U;F1A<GD@8V%S97,@=VET:"!V97)Y"FQA<F=E(&5N=')I97,L +M('5P('1O(#$@=&5R86)Y=&4N($]F(&-O=7)S92P@=W)I=&EN9R!A(#$@=&5R +M86)Y=&4*96YT<GD@=&\@86X@=6YC;VUP<F5S<V5D(&%R8VAI=F4@;VX@9&ES +M:R!O<B!M96UO<GD@:7,@=6YA8V-E<'1A8FQE+`IB;W1H(&9O<B!P97)F;W)M +M86YC92!A;F0@<W!A8V4@<F5A<V]N<RX@179E;B!G>FEP(&]R(&)Z:7`R"F-O +M;7!R97-S:6]N('=O;B=T(&AE;'`[(&%L=&AO=6=H('-M86QL97(L('1H92!O +M=71P=70@:7,@<W1I;&P@;&%R9V4*86YD('1H92!T:6UE(&YE961E9"!T;R!C +M;VUP<F5S<R!S=6-H(&$@;&%R9V4@86UO=6YT(&]F(&1A=&$@:7,*<')O:&EB +M:71I=F4N(%-O('1H92!L87)G92!T87(@=&5S=&5R('5S97,@82!T<FEC:RX@ +M"CPO4#X*/%`^4F5M96UB97(@=&AA="!A;B!U;F-O;7!R97-S960@=&%R(&%R +M8VAI=F4@8V]N<VES=',@;V8@86QT97)N871I;F<*:&5A9&5R<R!A;F0@8F]D +M:65S+B!)9B!T:&4@8F]D:65S(&-O;G-I<W0@96YT:7)E;'D@;V8@>F5R;R!B +M>71E<RP*=&AE;B!A;&P@=&AA="=S(&YE961E9"!T;R!R96-O;G-T<G5C="!T +M:&4@87)C:&EV92!I<R!T;R!R96-O<F0@=&AE"G)E;&%T:79E;'D@<VUA;&P@ +M:&5A9&5R<R!A;F0@<W1O<F4@82!C;W5N="!O9B!E86-H(&-O;G1I9W5O=7,@ +M8FQO8VL*;V8@>F5R;W,N(%1H:7,@<VEM<&QE("9Q=6]T.W)U;BUL96YG=&@@ +M96YC;V1I;F<F<75O=#L@:7,@=F5R>0IE9F9E8W1I=F4L(&-O;7!R97-S:6YG +M(&$@<V%M<&QE(&%R8VAI=F4@=VET:"!A(&1O>F5N(&5N=')I97,@9&]W;B!T +M;PIJ=7-T(&$@9F5W(&MI;&]B>71E<RP@979E;B!I9B!T:&]S92!E;G1R:65S +M(')A;F=E('5P('1O(#%40BX@"CPO4#X*/%`^0GD@=W)I=&EN9R!A(&-U<W1O +M;2!)+T\@;&%Y97(@=&AA="!I;7!L96UE;G1S('-U8V@@8V]M<')E<W-I;VXL +M('=E"F-A;B!W<FET92!V97)Y(&QA<F=E(&5N=')I97,@=&AR;W5G:"!L:6)A +M<F-H:79E('1H96X@<F5A9"!T:&5M(&)A8VL*86YD('9E<FEF>2!T:&%T(&QI +M8F%R8VAI=F4@8V]R<F5C=&QY(&AA;F1L97,@86QL(&]F('1H92!B;W5N9&%R +M>0IC87-E<RX@"CPO4#X*/%`^3V8@8V]U<G-E+"!E=F5N('-C86YN:6YG(&]U +M='!U="!T;R!D971E<FUI;F4@>F5R;R!B;&]C:W,@8V%N('1A:V4*<75I=&4@ +M82!W:&EL92P@<V\@=&AE(&QA<F=E('1A<B!T97-T97(@;6%K97,@;VYE(&UO +M<F4@;W!T:6UI>F%T:6]N.@I,:6)A<F-H:79E(&ES("9Q=6]T.VUO<W1L>29Q +M=6]T.R!Z97)O+6-O<'DN(%=H96X@>6]U(&=I=F4@:70@82!L87)G90IB;&]C +M:R!T;R!W<FET92!T;R!A;B!E;G1R>2!B;V1Y+"!I="!W:6QL('!A<W,@<&]I +M;G1E<G,@<W1R86EG:'0*=&AR;W5G:"!T;R!T:&4@;W5T<'5T(')O=71I;F4L +M(&5X8V5P="!I;B!T:&]S92!C87-E<R!W:&5R92!I="!M=7-T"F-O<'D@9&%T +M82!T;R!C;W)R96-T;'D@8G5I;&0@8FQO8VMS+B!4:&4@;&%R9V4@=&%R('1E +M<W1E<B!T86ME<PIA9'9A;G1A9V4@;V8@=&AI<R!T;R!Q=6EC:VQY(&1E=&5C +M="!W:&5N(&$@8FQO8VL@8F5I;F<@=W)I='1E;B!O=70@8GD*=&AE(&%R8VAI +M=F4@=W)I=&5R(&ES('1H92!S86UE(&%S('-O;64@;V8@=&AE(&1A=&$@=&AA +M="!W87,@9VEV96X@8GD*=&AE('1E<W0@87,@=&AE(&5N=')Y(&)O9'DL(&%N +M9"!S:6UI;&%R;'D@=VAE;B!R96%D:6YG('1H92!A<F-H:79E"F)A8VLN(`H\ +M+U`^"CQ0/E1A:V5N('1O9V5T:&5R+"!T:&5S92!T<FEC:W,@86QL;W<@=&AE +M(&QA<F=E('1A<B!W<FET97(@=&\@=&5S=`IF;W(@:7-S=65S('-U8V@@87,@ +M<')O<&5R('-T;W)A9V4@;V8@=F5R>2!L87)G92!F:6QE('-I>F5S("AT87(@ +M9FEL97,*<W5P<&]R="!S979E<F%L(&1I9F9E<F5N="!W87ES('1O('-T;W)E +M(&9I;&4@<VEZ97,@=VAI8V@@=')A9&4@;V9F"G!O<G1A8FEL:71Y('9E<G-U +M<R!R86YG93L@;&EB87)C:&EV92!T<FEE<R!T;R!U<V4@=&AE(&UO<W0@<&]R +M=&%B;&4*;VYE(&ET(&-A;B!F;W(@96%C:"!E;G1R>2D@86YD(&EN=&5G97(@ +M;W9E<F9L;W<@*%=I;F1O=W,@,S(M8FET(#Q45"!#3$%34STB=V5S=&5R;B(^ +M;V9F7W0\+U14/@IB<F]K92!T:&4@;&%R9V4@=&%R('1E<W0@86YD(&QE9"!L +M:6)A<F-H:79E('1O(&UA:V4@:&5A=FEE<B!U<V4@;V8*/%14($-,05-3/2)W +M97-T97)N(CYI;G0V-%]T/"]45#X@:6YT97)N86QL>2D@:6X@82!T97-T('1H +M870@<G5N<R!I;@IU;F1E<B`Q+S0@<V5C;VYD+B`*/"]0/@H\4"!35%E,13TB +M;6%R9VEN+6)O='1O;3H@,&EN(CX\0E(^"CPO4#X*/"]"3T19/@H\+TA434P^ +M53-T()`^`"0````D`````YBH8X5M7SM"%#`4`/^A``!T97-T9&ER7'1E<W1S +M>6UL:6YK-<#,;5\[0G%?.T)T97-T<W5B9&ER+TQI8F%R8VAI=F5!9&1I;F=4 +M97-T+FAT;6RT4'0@D#X`)0```"4````#L)33VW%?.T(4,!0`_Z$``'1E<W1D +M:7)<=&5S='-Y;6QI;FLVP`AQ7SM"<5\[0G1E<W1S=6)D:7(O3&EB87)C:&EV +M94%D9&EN9U1E<W0R+FAT;6P)1G0@D#4`(0```"$````#H$2H1$U?.T(4,`L` +M_Z$``'1E<W1S>6UL:6YK@`A-7SM"35\[0G1E<W1D:7(O3&EB87)C:&EV94%D +M9&EN9U1E<W0N:'1M;,31=""0-@`B````(@````/"YQ#S45\[0A0P#`#_H0`` +M=&5S='-Y;6QI;FLR@`A17SM"45\[0G1E<W1D:7(O3&EB87)C:&EV94%D9&EN +M9U1E<W0R+FAT;6RG=70@D#8`+````"P````#--1<+5M?.T(4,`P`_Z$``'1E +M<W1S>6UL:6YK,\`(6U\[0EM?.T)T97-T9&ER+W1E<W1S=6)D:7(O3&EB87)C +M:&EV94%D9&EN9U1E<W0N:'1M;#AD=""0-@`M````+0````,/1!L$8U\[0A0P +M#`#_H0``=&5S='-Y;6QI;FLTP`AC7SM"8U\[0G1E<W1D:7(O=&5S='-U8F1I +M<B],:6)A<F-H:79E061D:6YG5&5S=#(N:'1M;)Q9=."000````````````,` +M````+5\[0A0P%P#M00``=&5S=&1I<EQT97-T96UP='ES=6)D:7*`""U?.T)U +M8#M"+XITX)`\`````````````P`````S7SM"%#`2`.U!``!T97-T9&ER7'1E +M<W1S=6)D:7+`S#-?.T(S7SM"]J1TX)`Q`````````````P````!Q7SM"%#`' +M`.U!``!T97-T9&ERP`AQ7SM"<5\[0E-P=."0-@````````````,`````)U\[ +M0A0P#`#M00``=&5S=&5M<'1Y9&ER@,PG7SM"=6`[0E$`>PY`%`"RV@*;"0`` +&```````` +` +end diff --git a/libarchive/test/test_read_format_rar.c b/libarchive/test/test_read_format_rar.c index 490cc209..f70bb107 100644 --- a/libarchive/test/test_read_format_rar.c +++ b/libarchive/test/test_read_format_rar.c @@ -1429,3 +1429,2656 @@ DEFINE_TEST(test_read_format_rar_multivolume_seek_multiple_files) assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a)); assertEqualInt(ARCHIVE_OK, archive_read_free(a)); } + +DEFINE_TEST(test_read_format_rar_multivolume_uncompressed_files) +{ + const char *reffiles[] = + { + "test_rar_multivolume_uncompressed_files.part01.rar", + "test_rar_multivolume_uncompressed_files.part02.rar", + "test_rar_multivolume_uncompressed_files.part03.rar", + "test_rar_multivolume_uncompressed_files.part04.rar", + "test_rar_multivolume_uncompressed_files.part05.rar", + "test_rar_multivolume_uncompressed_files.part06.rar", + "test_rar_multivolume_uncompressed_files.part07.rar", + "test_rar_multivolume_uncompressed_files.part08.rar", + "test_rar_multivolume_uncompressed_files.part09.rar", + "test_rar_multivolume_uncompressed_files.part10.rar", + NULL + }; + char buff[64]; + ssize_t bytes_read; + struct archive *a; + struct archive_entry *ae; + + extract_reference_files(reffiles); + assert((a = archive_read_new()) != NULL); + assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); + assertEqualIntA(a, ARCHIVE_OK, + archive_read_open_filenames(a, reffiles, 10240)); + + /* + * First header. + */ + assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); + assertEqualStringA(a, "testdir/LibarchiveAddingTest2.html", + archive_entry_pathname(ae)); + assertA((int)archive_entry_mtime(ae)); + assertA((int)archive_entry_ctime(ae)); + assertA((int)archive_entry_atime(ae)); + assertEqualIntA(a, 20111, archive_entry_size(ae)); + assertEqualIntA(a, 33188, archive_entry_mode(ae)); + + /* Do checks for seeks/reads past beginning and end of file */ + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_SET)); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, -1, archive_seek_data(a, -(sizeof(buff)-1), SEEK_SET)); + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, (sizeof(buff)-1), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD " + "HTML 4.0 Transitional//EN\">\n", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, -1, archive_seek_data(a, -((sizeof(buff)-1)*2), SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, ((sizeof(buff)-1)*2), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "<HTML>\n<HEAD>\n\t<META HTTP-EQUIV=\"CONTENT-TYPE\" " + "CONTENT=\"text/ht", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, -1, archive_seek_data(a, -(20111+32), SEEK_END)); + assertEqualIntA(a, ((sizeof(buff)-1)*2), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, ((sizeof(buff)-1)*3), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "ml; charset=utf-8\">\n\t<TITLE></TITLE>\n\t<META " + "NAME=\"GENERATOR\" CO", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111, archive_seek_data(a, 20111, SEEK_SET)); + assertEqualIntA(a, 20111, archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, 0, archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, 20111, archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 + (sizeof(buff)-1), + archive_seek_data(a, (sizeof(buff)-1), SEEK_CUR)); + assertEqualIntA(a, 0, archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, 20111 + (sizeof(buff)-1), + archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 + ((sizeof(buff)-1)*2), + archive_seek_data(a, ((sizeof(buff)-1)*2), SEEK_END)); + assertEqualIntA(a, 0, archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, 20111 + ((sizeof(buff)-1)*2), + archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "", buff); + + /* Read from the beginning to the end of the file */ + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_SET)); + do + { + memset(buff, 0, sizeof(buff)); + bytes_read = archive_read_data(a, buff, (sizeof(buff)-1)); + } while (bytes_read > 0); + + /* Seek to the end minus (sizeof(buff)-1) bytes */ + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, -(sizeof(buff)-1), SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + /* Seek back to the beginning */ + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, archive_seek_data(a, -20111, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + /* Test that SEEK_SET works correctly between data blocks */ + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_SET)); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 13164, + archive_seek_data(a, 13164, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "ertEqualInt,\n\tassertEqualString, " + "assertEqualMem to test equalit", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, 0, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, 20111 - (int)(sizeof(buff)-1), SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 13164, + archive_seek_data(a, 13164, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "ertEqualInt,\n\tassertEqualString, " + "assertEqualMem to test equalit", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, 20111 - (int)(sizeof(buff)-1), SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, 0, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, 20111 - (int)(sizeof(buff)-1), SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 13164, + archive_seek_data(a, 13164, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "ertEqualInt,\n\tassertEqualString, " + "assertEqualMem to test equalit", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, 0, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + /* Test that SEEK_CUR works correctly between data blocks */ + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_SET)); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 13164, + archive_seek_data(a, 13164, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "ertEqualInt,\n\tassertEqualString, " + "assertEqualMem to test equalit", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, -13227, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, 19985, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 13164, + archive_seek_data(a, -6947, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "ertEqualInt,\n\tassertEqualString, " + "assertEqualMem to test equalit", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, 6821, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, -20111, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, 19985, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 13164, + archive_seek_data(a, -6947, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "ertEqualInt,\n\tassertEqualString, " + "assertEqualMem to test equalit", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, -13227, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + /* Test that SEEK_END works correctly between data blocks */ + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_SET)); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 13164, + archive_seek_data(a, -6947, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "ertEqualInt,\n\tassertEqualString, " + "assertEqualMem to test equalit", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, -20111, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, -(sizeof(buff)-1), SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 13164, + archive_seek_data(a, -6947, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "ertEqualInt,\n\tassertEqualString, " + "assertEqualMem to test equalit", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, -(sizeof(buff)-1), SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, -20111, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, -(sizeof(buff)-1), SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 13164, + archive_seek_data(a, -6947, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "ertEqualInt,\n\tassertEqualString, " + "assertEqualMem to test equalit", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, -20111, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + /* Do checks for seeks/reads past beginning and end of file */ + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_SET)); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, -1, archive_seek_data(a, -(sizeof(buff)-1), SEEK_SET)); + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, (sizeof(buff)-1), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD " + "HTML 4.0 Transitional//EN\">\n", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, -1, archive_seek_data(a, -((sizeof(buff)-1)*2), SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, ((sizeof(buff)-1)*2), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "<HTML>\n<HEAD>\n\t<META HTTP-EQUIV=\"CONTENT-TYPE\" " + "CONTENT=\"text/ht", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, -1, archive_seek_data(a, -(20111+32), SEEK_END)); + assertEqualIntA(a, ((sizeof(buff)-1)*2), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, ((sizeof(buff)-1)*3), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "ml; charset=utf-8\">\n\t<TITLE></TITLE>\n\t<META " + "NAME=\"GENERATOR\" CO", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111, archive_seek_data(a, 20111, SEEK_SET)); + assertEqualIntA(a, 20111, archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, 0, archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, 20111, archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 + (sizeof(buff)-1), + archive_seek_data(a, (sizeof(buff)-1), SEEK_CUR)); + assertEqualIntA(a, 0, archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, 20111 + (sizeof(buff)-1), + archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 + ((sizeof(buff)-1)*2), + archive_seek_data(a, ((sizeof(buff)-1)*2), SEEK_END)); + assertEqualIntA(a, 0, archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, 20111 + ((sizeof(buff)-1)*2), + archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "", buff); + + /* + * Second header. + */ + assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); + assertEqualStringA(a, "testdir/testsubdir/LibarchiveAddingTest2.html", + archive_entry_pathname(ae)); + assertA((int)archive_entry_mtime(ae)); + assertA((int)archive_entry_ctime(ae)); + assertA((int)archive_entry_atime(ae)); + assertEqualIntA(a, 20111, archive_entry_size(ae)); + assertEqualIntA(a, 33188, archive_entry_mode(ae)); + + /* Do checks for seeks/reads past beginning and end of file */ + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_SET)); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, -1, archive_seek_data(a, -(sizeof(buff)-1), SEEK_SET)); + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, (sizeof(buff)-1), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD " + "HTML 4.0 Transitional//EN\">\n", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, -1, archive_seek_data(a, -((sizeof(buff)-1)*2), SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, ((sizeof(buff)-1)*2), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "<HTML>\n<HEAD>\n\t<META HTTP-EQUIV=\"CONTENT-TYPE\" " + "CONTENT=\"text/ht", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, -1, archive_seek_data(a, -(20111+32), SEEK_END)); + assertEqualIntA(a, ((sizeof(buff)-1)*2), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, ((sizeof(buff)-1)*3), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "ml; charset=utf-8\">\n\t<TITLE></TITLE>\n\t<META " + "NAME=\"GENERATOR\" CO", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111, archive_seek_data(a, 20111, SEEK_SET)); + assertEqualIntA(a, 20111, archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, 0, archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, 20111, archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 + (sizeof(buff)-1), + archive_seek_data(a, (sizeof(buff)-1), SEEK_CUR)); + assertEqualIntA(a, 0, archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, 20111 + (sizeof(buff)-1), + archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 + ((sizeof(buff)-1)*2), + archive_seek_data(a, ((sizeof(buff)-1)*2), SEEK_END)); + assertEqualIntA(a, 0, archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, 20111 + ((sizeof(buff)-1)*2), + archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "", buff); + + /* Read from the beginning to the end of the file */ + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_SET)); + do + { + memset(buff, 0, sizeof(buff)); + bytes_read = archive_read_data(a, buff, (sizeof(buff)-1)); + } while (bytes_read > 0); + + /* Seek to the end minus (sizeof(buff)-1) bytes */ + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, -(sizeof(buff)-1), SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + /* Seek back to the beginning */ + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, archive_seek_data(a, -20111, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + /* Test that SEEK_SET works correctly between data blocks */ + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_SET)); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 6162, + archive_seek_data(a, 6162, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "arguments satisfy certain conditions. " + "If the assertion fails--f", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 19347, + archive_seek_data(a, 19347, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, " when a block being written out by\n" + "the archive writer is the sa", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, 20111 - (int)(sizeof(buff)-1), SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 19347, + archive_seek_data(a, 19347, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, " when a block being written out by\n" + "the archive writer is the sa", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 6162, + archive_seek_data(a, 6162, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "arguments satisfy certain conditions. " + "If the assertion fails--f", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, 0, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, 20111 - (int)(sizeof(buff)-1), SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 6162, + archive_seek_data(a, 6162, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "arguments satisfy certain conditions. " + "If the assertion fails--f", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 19347, + archive_seek_data(a, 19347, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, " when a block being written out by\n" + "the archive writer is the sa", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, 0, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, 20111 - (int)(sizeof(buff)-1), SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, 0, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 19347, + archive_seek_data(a, 19347, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, " when a block being written out by\n" + "the archive writer is the sa", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 6162, + archive_seek_data(a, 6162, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "arguments satisfy certain conditions. " + "If the assertion fails--f", buff); + + /* Test that SEEK_CUR works correctly between data blocks */ + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_SET)); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 6162, + archive_seek_data(a, 6162, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "arguments satisfy certain conditions. " + "If the assertion fails--f", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 19347, + archive_seek_data(a, 13122, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, " when a block being written out by\n" + "the archive writer is the sa", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, 638, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 19347, + archive_seek_data(a, -764, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, " when a block being written out by\n" + "the archive writer is the sa", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 6162, + archive_seek_data(a, -13248, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "arguments satisfy certain conditions. " + "If the assertion fails--f", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, -6225, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, 19985, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 6162, + archive_seek_data(a, -13949, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "arguments satisfy certain conditions. " + "If the assertion fails--f", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 19347, + archive_seek_data(a, 13122, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, " when a block being written out by\n" + "the archive writer is the sa", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, -19410, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, 19985, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, -20111, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 19347, + archive_seek_data(a, 19284, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, " when a block being written out by\n" + "the archive writer is the sa", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 6162, + archive_seek_data(a, -13248, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "arguments satisfy certain conditions. " + "If the assertion fails--f", buff); + + /* Test that SEEK_END works correctly between data blocks */ + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_SET)); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 6162, + archive_seek_data(a, -13949, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "arguments satisfy certain conditions. " + "If the assertion fails--f", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 19347, + archive_seek_data(a, -764, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, " when a block being written out by\n" + "the archive writer is the sa", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, -(sizeof(buff)-1), SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 19347, + archive_seek_data(a, -764, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, " when a block being written out by\n" + "the archive writer is the sa", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 6162, + archive_seek_data(a, -13949, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "arguments satisfy certain conditions. " + "If the assertion fails--f", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, -20111, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, -(sizeof(buff)-1), SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 6162, + archive_seek_data(a, -13949, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "arguments satisfy certain conditions. " + "If the assertion fails--f", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 19347, + archive_seek_data(a, -764, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, " when a block being written out by\n" + "the archive writer is the sa", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, -20111, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, -(sizeof(buff)-1), SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, -20111, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 19347, + archive_seek_data(a, -764, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, " when a block being written out by\n" + "the archive writer is the sa", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 6162, + archive_seek_data(a, -13949, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "arguments satisfy certain conditions. " + "If the assertion fails--f", buff); + + /* Do checks for seeks/reads past beginning and end of file */ + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_SET)); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, -1, archive_seek_data(a, -(sizeof(buff)-1), SEEK_SET)); + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, (sizeof(buff)-1), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD " + "HTML 4.0 Transitional//EN\">\n", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, -1, archive_seek_data(a, -((sizeof(buff)-1)*2), SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, ((sizeof(buff)-1)*2), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "<HTML>\n<HEAD>\n\t<META HTTP-EQUIV=\"CONTENT-TYPE\" " + "CONTENT=\"text/ht", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, -1, archive_seek_data(a, -(20111+32), SEEK_END)); + assertEqualIntA(a, ((sizeof(buff)-1)*2), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, ((sizeof(buff)-1)*3), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "ml; charset=utf-8\">\n\t<TITLE></TITLE>\n\t<META " + "NAME=\"GENERATOR\" CO", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111, archive_seek_data(a, 20111, SEEK_SET)); + assertEqualIntA(a, 20111, archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, 0, archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, 20111, archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 + (sizeof(buff)-1), + archive_seek_data(a, (sizeof(buff)-1), SEEK_CUR)); + assertEqualIntA(a, 0, archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, 20111 + (sizeof(buff)-1), + archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 + ((sizeof(buff)-1)*2), + archive_seek_data(a, ((sizeof(buff)-1)*2), SEEK_END)); + assertEqualIntA(a, 0, archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, 20111 + ((sizeof(buff)-1)*2), + archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "", buff); + + /* + * Third header. + */ + assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); + assertEqualStringA(a, "LibarchiveAddingTest2.html", + archive_entry_pathname(ae)); + assertA((int)archive_entry_mtime(ae)); + assertA((int)archive_entry_ctime(ae)); + assertA((int)archive_entry_atime(ae)); + assertEqualIntA(a, 20111, archive_entry_size(ae)); + assertEqualIntA(a, 33188, archive_entry_mode(ae)); + + /* Do checks for seeks/reads past beginning and end of file */ + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_SET)); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, -1, archive_seek_data(a, -(sizeof(buff)-1), SEEK_SET)); + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, (sizeof(buff)-1), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD " + "HTML 4.0 Transitional//EN\">\n", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, -1, archive_seek_data(a, -((sizeof(buff)-1)*2), SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, ((sizeof(buff)-1)*2), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "<HTML>\n<HEAD>\n\t<META HTTP-EQUIV=\"CONTENT-TYPE\" " + "CONTENT=\"text/ht", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, -1, archive_seek_data(a, -(20111+32), SEEK_END)); + assertEqualIntA(a, ((sizeof(buff)-1)*2), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, ((sizeof(buff)-1)*3), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "ml; charset=utf-8\">\n\t<TITLE></TITLE>\n\t<META " + "NAME=\"GENERATOR\" CO", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111, archive_seek_data(a, 20111, SEEK_SET)); + assertEqualIntA(a, 20111, archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, 0, archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, 20111, archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 + (sizeof(buff)-1), + archive_seek_data(a, (sizeof(buff)-1), SEEK_CUR)); + assertEqualIntA(a, 0, archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, 20111 + (sizeof(buff)-1), + archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 + ((sizeof(buff)-1)*2), + archive_seek_data(a, ((sizeof(buff)-1)*2), SEEK_END)); + assertEqualIntA(a, 0, archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, 20111 + ((sizeof(buff)-1)*2), + archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "", buff); + + /* Read from the beginning to the end of the file */ + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_SET)); + do + { + memset(buff, 0, sizeof(buff)); + bytes_read = archive_read_data(a, buff, (sizeof(buff)-1)); + } while (bytes_read > 0); + + /* Seek to the end minus (sizeof(buff)-1) bytes */ + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, -(sizeof(buff)-1), SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + /* Seek back to the beginning */ + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, archive_seek_data(a, -20111, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + /* Test that SEEK_SET works correctly between data blocks */ + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_SET)); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 12353, + archive_seek_data(a, 12353, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, " 0.2in\"> " + "extract_reference_file("test_foo.tar", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, 0, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, 20111 - (int)(sizeof(buff)-1), SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 12353, + archive_seek_data(a, 12353, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, " 0.2in\"> " + "extract_reference_file("test_foo.tar", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, 20111 - (int)(sizeof(buff)-1), SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, 0, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, 20111 - (int)(sizeof(buff)-1), SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 12353, + archive_seek_data(a, 12353, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, " 0.2in\"> " + "extract_reference_file("test_foo.tar", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, 0, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + /* Test that SEEK_CUR works correctly between data blocks */ + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_SET)); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 12353, + archive_seek_data(a, 12353, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, " 0.2in\"> " + "extract_reference_file("test_foo.tar", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, -12416, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, 19985, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 12353, + archive_seek_data(a, -7758, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, " 0.2in\"> " + "extract_reference_file("test_foo.tar", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, 7632, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, -20111, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, 19985, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 12353, + archive_seek_data(a, -7758, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, " 0.2in\"> " + "extract_reference_file("test_foo.tar", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, -12416, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + /* Test that SEEK_END works correctly between data blocks */ + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_SET)); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 12353, + archive_seek_data(a, -7758, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, " 0.2in\"> " + "extract_reference_file("test_foo.tar", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, -20111, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, -(sizeof(buff)-1), SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 12353, + archive_seek_data(a, -7758, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, " 0.2in\"> " + "extract_reference_file("test_foo.tar", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, -(sizeof(buff)-1), SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, -20111, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, -(sizeof(buff)-1), SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 12353, + archive_seek_data(a, -7758, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, " 0.2in\"> " + "extract_reference_file("test_foo.tar", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, -20111, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + /* Do checks for seeks/reads past beginning and end of file */ + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_SET)); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, -1, archive_seek_data(a, -(sizeof(buff)-1), SEEK_SET)); + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, (sizeof(buff)-1), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD " + "HTML 4.0 Transitional//EN\">\n", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, -1, archive_seek_data(a, -((sizeof(buff)-1)*2), SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, ((sizeof(buff)-1)*2), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "<HTML>\n<HEAD>\n\t<META HTTP-EQUIV=\"CONTENT-TYPE\" " + "CONTENT=\"text/ht", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, -1, archive_seek_data(a, -(20111+32), SEEK_END)); + assertEqualIntA(a, ((sizeof(buff)-1)*2), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, ((sizeof(buff)-1)*3), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "ml; charset=utf-8\">\n\t<TITLE></TITLE>\n\t<META " + "NAME=\"GENERATOR\" CO", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111, archive_seek_data(a, 20111, SEEK_SET)); + assertEqualIntA(a, 20111, archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, 0, archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, 20111, archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 + (sizeof(buff)-1), + archive_seek_data(a, (sizeof(buff)-1), SEEK_CUR)); + assertEqualIntA(a, 0, archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, 20111 + (sizeof(buff)-1), + archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 + ((sizeof(buff)-1)*2), + archive_seek_data(a, ((sizeof(buff)-1)*2), SEEK_END)); + assertEqualIntA(a, 0, archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, 20111 + ((sizeof(buff)-1)*2), + archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "", buff); + + /* + * Fourth header. + */ + assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); + assertEqualStringA(a, "testdir/LibarchiveAddingTest.html", + archive_entry_pathname(ae)); + assertA((int)archive_entry_mtime(ae)); + assertA((int)archive_entry_ctime(ae)); + assertA((int)archive_entry_atime(ae)); + assertEqualIntA(a, 20111, archive_entry_size(ae)); + assertEqualIntA(a, 33188, archive_entry_mode(ae)); + + /* Do checks for seeks/reads past beginning and end of file */ + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_SET)); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, -1, archive_seek_data(a, -(sizeof(buff)-1), SEEK_SET)); + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, (sizeof(buff)-1), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD " + "HTML 4.0 Transitional//EN\">\n", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, -1, archive_seek_data(a, -((sizeof(buff)-1)*2), SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, ((sizeof(buff)-1)*2), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "<HTML>\n<HEAD>\n\t<META HTTP-EQUIV=\"CONTENT-TYPE\" " + "CONTENT=\"text/ht", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, -1, archive_seek_data(a, -(20111+32), SEEK_END)); + assertEqualIntA(a, ((sizeof(buff)-1)*2), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, ((sizeof(buff)-1)*3), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "ml; charset=utf-8\">\n\t<TITLE></TITLE>\n\t<META " + "NAME=\"GENERATOR\" CO", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111, archive_seek_data(a, 20111, SEEK_SET)); + assertEqualIntA(a, 20111, archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, 0, archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, 20111, archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 + (sizeof(buff)-1), + archive_seek_data(a, (sizeof(buff)-1), SEEK_CUR)); + assertEqualIntA(a, 0, archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, 20111 + (sizeof(buff)-1), + archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 + ((sizeof(buff)-1)*2), + archive_seek_data(a, ((sizeof(buff)-1)*2), SEEK_END)); + assertEqualIntA(a, 0, archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, 20111 + ((sizeof(buff)-1)*2), + archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "", buff); + + /* Read from the beginning to the end of the file */ + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_SET)); + do + { + memset(buff, 0, sizeof(buff)); + bytes_read = archive_read_data(a, buff, (sizeof(buff)-1)); + } while (bytes_read > 0); + + /* Seek to the end minus (sizeof(buff)-1) bytes */ + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, -(sizeof(buff)-1), SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + /* Seek back to the beginning */ + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, archive_seek_data(a, -20111, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + /* Test that SEEK_SET works correctly between data blocks */ + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_SET)); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 5371, + archive_seek_data(a, 5371, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "zip)\n {\n " + "/* ... setup omitted ... */\n ", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 13165, + archive_seek_data(a, 13165, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "rtEqualInt,\n\tassertEqualString, " + "assertEqualMem to test equality", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, 20111 - (int)(sizeof(buff)-1), SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 13165, + archive_seek_data(a, 13165, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "rtEqualInt,\n\tassertEqualString, " + "assertEqualMem to test equality", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 5371, + archive_seek_data(a, 5371, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "zip)\n {\n " + "/* ... setup omitted ... */\n ", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, 0, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, 20111 - (int)(sizeof(buff)-1), SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 5371, + archive_seek_data(a, 5371, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "zip)\n {\n " + "/* ... setup omitted ... */\n ", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 13165, + archive_seek_data(a, 13165, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "rtEqualInt,\n\tassertEqualString, " + "assertEqualMem to test equality", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, 0, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, 20111 - (int)(sizeof(buff)-1), SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, 0, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 13165, + archive_seek_data(a, 13165, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "rtEqualInt,\n\tassertEqualString, " + "assertEqualMem to test equality", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 5371, + archive_seek_data(a, 5371, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "zip)\n {\n " + "/* ... setup omitted ... */\n ", buff); + + /* Test that SEEK_CUR works correctly between data blocks */ + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_SET)); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 5371, + archive_seek_data(a, 5371, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "zip)\n {\n " + "/* ... setup omitted ... */\n ", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 13165, + archive_seek_data(a, 7731, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "rtEqualInt,\n\tassertEqualString, " + "assertEqualMem to test equality", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, 6820, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 13165, + archive_seek_data(a, -6946, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "rtEqualInt,\n\tassertEqualString, " + "assertEqualMem to test equality", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 5371, + archive_seek_data(a, -7857, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "zip)\n {\n " + "/* ... setup omitted ... */\n ", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, -5434, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, 19985, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 5371, + archive_seek_data(a, -14740, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "zip)\n {\n " + "/* ... setup omitted ... */\n ", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 13165, + archive_seek_data(a, 7731, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "rtEqualInt,\n\tassertEqualString, " + "assertEqualMem to test equality", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, -13228, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, 19985, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, -20111, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 13165, + archive_seek_data(a, 13102, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "rtEqualInt,\n\tassertEqualString, " + "assertEqualMem to test equality", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 5371, + archive_seek_data(a, -7857, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "zip)\n {\n " + "/* ... setup omitted ... */\n ", buff); + + /* Test that SEEK_END works correctly between data blocks */ + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_SET)); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 5371, + archive_seek_data(a, -14740, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "zip)\n {\n " + "/* ... setup omitted ... */\n ", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 13165, + archive_seek_data(a, -6946, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "rtEqualInt,\n\tassertEqualString, " + "assertEqualMem to test equality", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, -(sizeof(buff)-1), SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 13165, + archive_seek_data(a, -6946, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "rtEqualInt,\n\tassertEqualString, " + "assertEqualMem to test equality", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 5371, + archive_seek_data(a, -14740, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "zip)\n {\n " + "/* ... setup omitted ... */\n ", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, -20111, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, -(sizeof(buff)-1), SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 5371, + archive_seek_data(a, -14740, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "zip)\n {\n " + "/* ... setup omitted ... */\n ", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 13165, + archive_seek_data(a, -6946, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "rtEqualInt,\n\tassertEqualString, " + "assertEqualMem to test equality", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, -20111, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, -(sizeof(buff)-1), SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, -20111, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 13165, + archive_seek_data(a, -6946, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "rtEqualInt,\n\tassertEqualString, " + "assertEqualMem to test equality", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 5371, + archive_seek_data(a, -14740, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "zip)\n {\n " + "/* ... setup omitted ... */\n ", buff); + + /* Do checks for seeks/reads past beginning and end of file */ + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_SET)); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, -1, archive_seek_data(a, -(sizeof(buff)-1), SEEK_SET)); + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, (sizeof(buff)-1), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD " + "HTML 4.0 Transitional//EN\">\n", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, -1, archive_seek_data(a, -((sizeof(buff)-1)*2), SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, ((sizeof(buff)-1)*2), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "<HTML>\n<HEAD>\n\t<META HTTP-EQUIV=\"CONTENT-TYPE\" " + "CONTENT=\"text/ht", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, -1, archive_seek_data(a, -(20111+32), SEEK_END)); + assertEqualIntA(a, ((sizeof(buff)-1)*2), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, ((sizeof(buff)-1)*3), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "ml; charset=utf-8\">\n\t<TITLE></TITLE>\n\t<META " + "NAME=\"GENERATOR\" CO", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111, archive_seek_data(a, 20111, SEEK_SET)); + assertEqualIntA(a, 20111, archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, 0, archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, 20111, archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 + (sizeof(buff)-1), + archive_seek_data(a, (sizeof(buff)-1), SEEK_CUR)); + assertEqualIntA(a, 0, archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, 20111 + (sizeof(buff)-1), + archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 + ((sizeof(buff)-1)*2), + archive_seek_data(a, ((sizeof(buff)-1)*2), SEEK_END)); + assertEqualIntA(a, 0, archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, 20111 + ((sizeof(buff)-1)*2), + archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "", buff); + + /* + * Fifth header. + */ + assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); + assertEqualStringA(a, "testdir/testsubdir/LibarchiveAddingTest.html", + archive_entry_pathname(ae)); + assertA((int)archive_entry_mtime(ae)); + assertA((int)archive_entry_ctime(ae)); + assertA((int)archive_entry_atime(ae)); + assertEqualIntA(a, 20111, archive_entry_size(ae)); + assertEqualIntA(a, 33188, archive_entry_mode(ae)); + + /* Do checks for seeks/reads past beginning and end of file */ + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_SET)); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, -1, archive_seek_data(a, -(sizeof(buff)-1), SEEK_SET)); + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, (sizeof(buff)-1), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD " + "HTML 4.0 Transitional//EN\">\n", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, -1, archive_seek_data(a, -((sizeof(buff)-1)*2), SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, ((sizeof(buff)-1)*2), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "<HTML>\n<HEAD>\n\t<META HTTP-EQUIV=\"CONTENT-TYPE\" " + "CONTENT=\"text/ht", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, -1, archive_seek_data(a, -(20111+32), SEEK_END)); + assertEqualIntA(a, ((sizeof(buff)-1)*2), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, ((sizeof(buff)-1)*3), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "ml; charset=utf-8\">\n\t<TITLE></TITLE>\n\t<META " + "NAME=\"GENERATOR\" CO", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111, archive_seek_data(a, 20111, SEEK_SET)); + assertEqualIntA(a, 20111, archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, 0, archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, 20111, archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 + (sizeof(buff)-1), + archive_seek_data(a, (sizeof(buff)-1), SEEK_CUR)); + assertEqualIntA(a, 0, archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, 20111 + (sizeof(buff)-1), + archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 + ((sizeof(buff)-1)*2), + archive_seek_data(a, ((sizeof(buff)-1)*2), SEEK_END)); + assertEqualIntA(a, 0, archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, 20111 + ((sizeof(buff)-1)*2), + archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "", buff); + + /* Read from the beginning to the end of the file */ + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_SET)); + do + { + memset(buff, 0, sizeof(buff)); + bytes_read = archive_read_data(a, buff, (sizeof(buff)-1)); + } while (bytes_read > 0); + + /* Seek to the end minus (sizeof(buff)-1) bytes */ + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, -(sizeof(buff)-1), SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + /* Seek back to the beginning */ + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, archive_seek_data(a, -20111, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + /* Test that SEEK_SET works correctly between data blocks */ + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_SET)); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 11568, + archive_seek_data(a, 11568, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ", <TT CLASS=\"western\">assertFileContents</TT>," + "\n\t<TT CLASS=\"west", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, 0, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, 20111 - (int)(sizeof(buff)-1), SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 11568, + archive_seek_data(a, 11568, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ", <TT CLASS=\"western\">assertFileContents</TT>," + "\n\t<TT CLASS=\"west", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, 20111 - (int)(sizeof(buff)-1), SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, 0, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, 20111 - (int)(sizeof(buff)-1), SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 11568, + archive_seek_data(a, 11568, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ", <TT CLASS=\"western\">assertFileContents</TT>," + "\n\t<TT CLASS=\"west", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, 0, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + /* Test that SEEK_CUR works correctly between data blocks */ + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_SET)); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 11568, + archive_seek_data(a, 11568, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ", <TT CLASS=\"western\">assertFileContents</TT>," + "\n\t<TT CLASS=\"west", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, -11631, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, 19985, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 11568, + archive_seek_data(a, -8543, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ", <TT CLASS=\"western\">assertFileContents</TT>," + "\n\t<TT CLASS=\"west", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, 8417, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, -20111, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, 19985, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 11568, + archive_seek_data(a, -8543, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ", <TT CLASS=\"western\">assertFileContents</TT>," + "\n\t<TT CLASS=\"west", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, -11631, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + /* Test that SEEK_END works correctly between data blocks */ + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_SET)); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 11568, + archive_seek_data(a, -8543, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ", <TT CLASS=\"western\">assertFileContents</TT>," + "\n\t<TT CLASS=\"west", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, -20111, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, -(sizeof(buff)-1), SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 11568, + archive_seek_data(a, -8543, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ", <TT CLASS=\"western\">assertFileContents</TT>," + "\n\t<TT CLASS=\"west", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, -(sizeof(buff)-1), SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, -20111, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, -(sizeof(buff)-1), SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 11568, + archive_seek_data(a, -8543, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ", <TT CLASS=\"western\">assertFileContents</TT>," + "\n\t<TT CLASS=\"west", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, -20111, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + /* Do checks for seeks/reads past beginning and end of file */ + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_SET)); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, -1, archive_seek_data(a, -(sizeof(buff)-1), SEEK_SET)); + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, (sizeof(buff)-1), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD " + "HTML 4.0 Transitional//EN\">\n", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, -1, archive_seek_data(a, -((sizeof(buff)-1)*2), SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, ((sizeof(buff)-1)*2), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "<HTML>\n<HEAD>\n\t<META HTTP-EQUIV=\"CONTENT-TYPE\" " + "CONTENT=\"text/ht", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, -1, archive_seek_data(a, -(20111+32), SEEK_END)); + assertEqualIntA(a, ((sizeof(buff)-1)*2), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, ((sizeof(buff)-1)*3), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "ml; charset=utf-8\">\n\t<TITLE></TITLE>\n\t<META " + "NAME=\"GENERATOR\" CO", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111, archive_seek_data(a, 20111, SEEK_SET)); + assertEqualIntA(a, 20111, archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, 0, archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, 20111, archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 + (sizeof(buff)-1), + archive_seek_data(a, (sizeof(buff)-1), SEEK_CUR)); + assertEqualIntA(a, 0, archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, 20111 + (sizeof(buff)-1), + archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 + ((sizeof(buff)-1)*2), + archive_seek_data(a, ((sizeof(buff)-1)*2), SEEK_END)); + assertEqualIntA(a, 0, archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, 20111 + ((sizeof(buff)-1)*2), + archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "", buff); + + /* + * Sixth header. + */ + assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); + assertEqualStringA(a, "LibarchiveAddingTest.html", + archive_entry_pathname(ae)); + assertA((int)archive_entry_mtime(ae)); + assertA((int)archive_entry_ctime(ae)); + assertA((int)archive_entry_atime(ae)); + assertEqualIntA(a, 20111, archive_entry_size(ae)); + assertEqualIntA(a, 33188, archive_entry_mode(ae)); + + /* Do checks for seeks/reads past beginning and end of file */ + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_SET)); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, -1, archive_seek_data(a, -(sizeof(buff)-1), SEEK_SET)); + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, (sizeof(buff)-1), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD " + "HTML 4.0 Transitional//EN\">\n", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, -1, archive_seek_data(a, -((sizeof(buff)-1)*2), SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, ((sizeof(buff)-1)*2), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "<HTML>\n<HEAD>\n\t<META HTTP-EQUIV=\"CONTENT-TYPE\" " + "CONTENT=\"text/ht", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, -1, archive_seek_data(a, -(20111+32), SEEK_END)); + assertEqualIntA(a, ((sizeof(buff)-1)*2), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, ((sizeof(buff)-1)*3), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "ml; charset=utf-8\">\n\t<TITLE></TITLE>\n\t<META " + "NAME=\"GENERATOR\" CO", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111, archive_seek_data(a, 20111, SEEK_SET)); + assertEqualIntA(a, 20111, archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, 0, archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, 20111, archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 + (sizeof(buff)-1), + archive_seek_data(a, (sizeof(buff)-1), SEEK_CUR)); + assertEqualIntA(a, 0, archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, 20111 + (sizeof(buff)-1), + archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 + ((sizeof(buff)-1)*2), + archive_seek_data(a, ((sizeof(buff)-1)*2), SEEK_END)); + assertEqualIntA(a, 0, archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, 20111 + ((sizeof(buff)-1)*2), + archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "", buff); + + /* Read from the beginning to the end of the file */ + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_SET)); + do + { + memset(buff, 0, sizeof(buff)); + bytes_read = archive_read_data(a, buff, (sizeof(buff)-1)); + } while (bytes_read > 0); + + /* Seek to the end minus (sizeof(buff)-1) bytes */ + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, -(sizeof(buff)-1), SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + /* Seek back to the beginning */ + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, archive_seek_data(a, -20111, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + /* Test that SEEK_SET works correctly between data blocks */ + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_SET)); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 4576, + archive_seek_data(a, 4576, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "hat was expected. \n</P>\n<H1 CLASS=\"western\"><A " + "NAME=\"Basic_test", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 17749, + archive_seek_data(a, 17749, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "\"></A>Large tar tester</H2>\n<P>The " + "large tar tester attempts to", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, 20111 - (int)(sizeof(buff)-1), SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 17749, + archive_seek_data(a, 17749, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "\"></A>Large tar tester</H2>\n<P>The " + "large tar tester attempts to", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 4576, + archive_seek_data(a, 4576, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "hat was expected. \n</P>\n<H1 CLASS=\"western\"><A " + "NAME=\"Basic_test", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, 0, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, 20111 - (int)(sizeof(buff)-1), SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 4576, + archive_seek_data(a, 4576, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "hat was expected. \n</P>\n<H1 CLASS=\"western\"><A " + "NAME=\"Basic_test", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 17749, + archive_seek_data(a, 17749, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "\"></A>Large tar tester</H2>\n<P>The " + "large tar tester attempts to", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, 0, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, 20111 - (int)(sizeof(buff)-1), SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, 0, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 17749, + archive_seek_data(a, 17749, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "\"></A>Large tar tester</H2>\n<P>The " + "large tar tester attempts to", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 4576, + archive_seek_data(a, 4576, SEEK_SET)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "hat was expected. \n</P>\n<H1 CLASS=\"western\"><A " + "NAME=\"Basic_test", buff); + + /* Test that SEEK_CUR works correctly between data blocks */ + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_SET)); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 4576, + archive_seek_data(a, 4576, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "hat was expected. \n</P>\n<H1 CLASS=\"western\"><A " + "NAME=\"Basic_test", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 17749, + archive_seek_data(a, 13110, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "\"></A>Large tar tester</H2>\n<P>The " + "large tar tester attempts to", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, 2236, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 17749, + archive_seek_data(a, -2362, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "\"></A>Large tar tester</H2>\n<P>The " + "large tar tester attempts to", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 4576, + archive_seek_data(a, -13236, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "hat was expected. \n</P>\n<H1 CLASS=\"western\"><A " + "NAME=\"Basic_test", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, -4639, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, 19985, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 4576, + archive_seek_data(a, -15535, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "hat was expected. \n</P>\n<H1 CLASS=\"western\"><A " + "NAME=\"Basic_test", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 17749, + archive_seek_data(a, 13110, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "\"></A>Large tar tester</H2>\n<P>The " + "large tar tester attempts to", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, -17812, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, 19985, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, -20111, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 17749, + archive_seek_data(a, 17686, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "\"></A>Large tar tester</H2>\n<P>The " + "large tar tester attempts to", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 4576, + archive_seek_data(a, -13236, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "hat was expected. \n</P>\n<H1 CLASS=\"western\"><A " + "NAME=\"Basic_test", buff); + + /* Test that SEEK_END works correctly between data blocks */ + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_SET)); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 4576, + archive_seek_data(a, -15535, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "hat was expected. \n</P>\n<H1 CLASS=\"western\"><A " + "NAME=\"Basic_test", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 17749, + archive_seek_data(a, -2362, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "\"></A>Large tar tester</H2>\n<P>The " + "large tar tester attempts to", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, -(sizeof(buff)-1), SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 17749, + archive_seek_data(a, -2362, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "\"></A>Large tar tester</H2>\n<P>The " + "large tar tester attempts to", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 4576, + archive_seek_data(a, -15535, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "hat was expected. \n</P>\n<H1 CLASS=\"western\"><A " + "NAME=\"Basic_test", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, -20111, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, -(sizeof(buff)-1), SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 4576, + archive_seek_data(a, -15535, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "hat was expected. \n</P>\n<H1 CLASS=\"western\"><A " + "NAME=\"Basic_test", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 17749, + archive_seek_data(a, -2362, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "\"></A>Large tar tester</H2>\n<P>The " + "large tar tester attempts to", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, -20111, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 - (int)(sizeof(buff)-1), + archive_seek_data(a, -(sizeof(buff)-1), SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, ". \n</P>\n<P STYLE=\"margin-bottom: 0in\"><BR>\n" + "</P>\n</BODY>\n</HTML>", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 0, + archive_seek_data(a, -20111, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 17749, + archive_seek_data(a, -2362, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "\"></A>Large tar tester</H2>\n<P>The " + "large tar tester attempts to", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 4576, + archive_seek_data(a, -15535, SEEK_END)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualStringA(a, "hat was expected. \n</P>\n<H1 CLASS=\"western\"><A " + "NAME=\"Basic_test", buff); + + /* Do checks for seeks/reads past beginning and end of file */ + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_SET)); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, -1, archive_seek_data(a, -(sizeof(buff)-1), SEEK_SET)); + assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, (sizeof(buff)-1), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD " + "HTML 4.0 Transitional//EN\">\n", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, -1, archive_seek_data(a, -((sizeof(buff)-1)*2), SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, ((sizeof(buff)-1)*2), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "<HTML>\n<HEAD>\n\t<META HTTP-EQUIV=\"CONTENT-TYPE\" " + "CONTENT=\"text/ht", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, -1, archive_seek_data(a, -(20111+32), SEEK_END)); + assertEqualIntA(a, ((sizeof(buff)-1)*2), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, (sizeof(buff)-1), + archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, ((sizeof(buff)-1)*3), archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "ml; charset=utf-8\">\n\t<TITLE></TITLE>\n\t<META " + "NAME=\"GENERATOR\" CO", buff); + + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111, archive_seek_data(a, 20111, SEEK_SET)); + assertEqualIntA(a, 20111, archive_seek_data(a, 0, SEEK_CUR)); + assertEqualIntA(a, 0, archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, 20111, archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 + (sizeof(buff)-1), + archive_seek_data(a, (sizeof(buff)-1), SEEK_CUR)); + assertEqualIntA(a, 0, archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, 20111 + (sizeof(buff)-1), + archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "", buff); + memset(buff, 0, sizeof(buff)); + assertEqualIntA(a, 20111 + ((sizeof(buff)-1)*2), + archive_seek_data(a, ((sizeof(buff)-1)*2), SEEK_END)); + assertEqualIntA(a, 0, archive_read_data(a, buff, (sizeof(buff)-1))); + assertEqualIntA(a, 20111 + ((sizeof(buff)-1)*2), + archive_seek_data(a, 0, SEEK_CUR)); + assertEqualStringA(a, "", buff); + + /* + * Seventh header. + */ + assertA(0 == archive_read_next_header(a, &ae)); + assertEqualString("testdir/testsymlink5", archive_entry_pathname(ae)); + assertA((int)archive_entry_mtime(ae)); + assertA((int)archive_entry_ctime(ae)); + assertA((int)archive_entry_atime(ae)); + assertEqualInt(0, archive_entry_size(ae)); + assertEqualInt(41471, archive_entry_mode(ae)); + assertEqualString("testsubdir/LibarchiveAddingTest.html", + archive_entry_symlink(ae)); + assertEqualIntA(a, 0, archive_read_data(a, buff, sizeof(buff))); + + /* + * Eigth header. + */ + assertA(0 == archive_read_next_header(a, &ae)); + assertEqualString("testdir/testsymlink6", archive_entry_pathname(ae)); + assertA((int)archive_entry_mtime(ae)); + assertA((int)archive_entry_ctime(ae)); + assertA((int)archive_entry_atime(ae)); + assertEqualInt(0, archive_entry_size(ae)); + assertEqualInt(41471, archive_entry_mode(ae)); + assertEqualString("testsubdir/LibarchiveAddingTest2.html", + archive_entry_symlink(ae)); + assertEqualIntA(a, 0, archive_read_data(a, buff, sizeof(buff))); + + /* + * Ninth header. + */ + assertA(0 == archive_read_next_header(a, &ae)); + assertEqualString("testsymlink", archive_entry_pathname(ae)); + assertA((int)archive_entry_mtime(ae)); + assertA((int)archive_entry_ctime(ae)); + assertA((int)archive_entry_atime(ae)); + assertEqualInt(0, archive_entry_size(ae)); + assertEqualInt(41471, archive_entry_mode(ae)); + assertEqualString("testdir/LibarchiveAddingTest.html", + archive_entry_symlink(ae)); + assertEqualIntA(a, 0, archive_read_data(a, buff, sizeof(buff))); + + /* + * Tenth header. + */ + assertA(0 == archive_read_next_header(a, &ae)); + assertEqualString("testsymlink2", archive_entry_pathname(ae)); + assertA((int)archive_entry_mtime(ae)); + assertA((int)archive_entry_ctime(ae)); + assertA((int)archive_entry_atime(ae)); + assertEqualInt(0, archive_entry_size(ae)); + assertEqualInt(41471, archive_entry_mode(ae)); + assertEqualString("testdir/LibarchiveAddingTest2.html", + archive_entry_symlink(ae)); + assertEqualIntA(a, 0, archive_read_data(a, buff, sizeof(buff))); + + /* + * Eleventh header. + */ + assertA(0 == archive_read_next_header(a, &ae)); + assertEqualString("testsymlink3", archive_entry_pathname(ae)); + assertA((int)archive_entry_mtime(ae)); + assertA((int)archive_entry_ctime(ae)); + assertA((int)archive_entry_atime(ae)); + assertEqualInt(0, archive_entry_size(ae)); + assertEqualInt(41471, archive_entry_mode(ae)); + assertEqualString("testdir/testsubdir/LibarchiveAddingTest.html", + archive_entry_symlink(ae)); + assertEqualIntA(a, 0, archive_read_data(a, buff, sizeof(buff))); + + /* + * Twelfth header. + */ + assertA(0 == archive_read_next_header(a, &ae)); + assertEqualString("testsymlink4", archive_entry_pathname(ae)); + assertA((int)archive_entry_mtime(ae)); + assertA((int)archive_entry_ctime(ae)); + assertA((int)archive_entry_atime(ae)); + assertEqualInt(0, archive_entry_size(ae)); + assertEqualInt(41471, archive_entry_mode(ae)); + assertEqualString("testdir/testsubdir/LibarchiveAddingTest2.html", + archive_entry_symlink(ae)); + assertEqualIntA(a, 0, archive_read_data(a, buff, sizeof(buff))); + + /* + * Thirteenth header. + */ + assertA(0 == archive_read_next_header(a, &ae)); + assertEqualString("testdir/testemptysubdir", archive_entry_pathname(ae)); + assertA((int)archive_entry_mtime(ae)); + assertA((int)archive_entry_ctime(ae)); + assertA((int)archive_entry_atime(ae)); + assertEqualInt(0, archive_entry_size(ae)); + assertEqualInt(16877, archive_entry_mode(ae)); + + /* + * Fourteenth header. + */ + assertA(0 == archive_read_next_header(a, &ae)); + assertEqualString("testdir/testsubdir", archive_entry_pathname(ae)); + assertA((int)archive_entry_mtime(ae)); + assertA((int)archive_entry_ctime(ae)); + assertA((int)archive_entry_atime(ae)); + assertEqualInt(0, archive_entry_size(ae)); + assertEqualInt(16877, archive_entry_mode(ae)); + + /* + * Fifteenth header. + */ + assertA(0 == archive_read_next_header(a, &ae)); + assertEqualString("testdir", archive_entry_pathname(ae)); + assertA((int)archive_entry_mtime(ae)); + assertA((int)archive_entry_ctime(ae)); + assertA((int)archive_entry_atime(ae)); + assertEqualInt(0, archive_entry_size(ae)); + assertEqualInt(16877, archive_entry_mode(ae)); + + /* + * Sixteenth header. + */ + assertA(0 == archive_read_next_header(a, &ae)); + assertEqualString("testemptydir", archive_entry_pathname(ae)); + assertA((int)archive_entry_mtime(ae)); + assertA((int)archive_entry_ctime(ae)); + assertA((int)archive_entry_atime(ae)); + assertEqualInt(0, archive_entry_size(ae)); + assertEqualInt(16877, archive_entry_mode(ae)); + + /* Test EOF */ + assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae)); + assertEqualIntA(a, 16, archive_file_count(a)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a)); + assertEqualIntA(a, ARCHIVE_OK, archive_read_free(a)); +} |