You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by dd...@apache.org on 2008/06/11 11:19:10 UTC

svn commit: r666587 - in /hadoop/core/branches/branch-0.18: ./ docs/ src/contrib/streaming/src/java/org/apache/hadoop/streaming/ src/docs/src/documentation/content/xdocs/

Author: ddas
Date: Wed Jun 11 02:19:09 2008
New Revision: 666587

URL: http://svn.apache.org/viewvc?rev=666587&view=rev
Log:
Merge -r666585:666586 from trunk onto 0.18 branch. Fixes HADOOP-3379.

Modified:
    hadoop/core/branches/branch-0.18/CHANGES.txt
    hadoop/core/branches/branch-0.18/docs/streaming.html
    hadoop/core/branches/branch-0.18/docs/streaming.pdf
    hadoop/core/branches/branch-0.18/src/contrib/streaming/src/java/org/apache/hadoop/streaming/PipeMapRed.java
    hadoop/core/branches/branch-0.18/src/contrib/streaming/src/java/org/apache/hadoop/streaming/StreamJob.java
    hadoop/core/branches/branch-0.18/src/docs/src/documentation/content/xdocs/streaming.xml

Modified: hadoop/core/branches/branch-0.18/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.18/CHANGES.txt?rev=666587&r1=666586&r2=666587&view=diff
==============================================================================
--- hadoop/core/branches/branch-0.18/CHANGES.txt (original)
+++ hadoop/core/branches/branch-0.18/CHANGES.txt Wed Jun 11 02:19:09 2008
@@ -279,6 +279,9 @@
     HADOOP-3467. Improve documentation for FileSystem::deleteOnExit.
     (Tsz Wo (Nicholas), SZE via cdouglas)
 
+    HADOOP-3379. Documents stream.non.zero.exit.status.is.failure for Streaming.
+    (Amareshwari Sriramadasu via ddas)
+
   OPTIMIZATIONS
 
     HADOOP-3274. The default constructor of BytesWritable creates empty 

Modified: hadoop/core/branches/branch-0.18/docs/streaming.html
URL: http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.18/docs/streaming.html?rev=666587&r1=666586&r2=666587&view=diff
==============================================================================
--- hadoop/core/branches/branch-0.18/docs/streaming.html (original)
+++ hadoop/core/branches/branch-0.18/docs/streaming.html Wed Jun 11 02:19:09 2008
@@ -314,10 +314,15 @@
     -mapper org.apache.hadoop.mapred.lib.IdentityMapper \
     -reducer /bin/wc
 </pre>
+<p>User can specify <span class="codefrag">stream.non.zero.exit.is.failure</span> as 
+<span class="codefrag">true</span> or <span class="codefrag">false</span> to make a streaming task that exits 
+with a non-zero status to be <span class="codefrag">Failure</span> 
+or <span class="codefrag">Success</span> respectively. By default, streaming tasks exiting 
+with non-zero status are considered to be failed tasks.</p>
 </div>
 
 
-<a name="N10047"></a><a name="Package+Files+With+Job+Submissions"></a>
+<a name="N10059"></a><a name="Package+Files+With+Job+Submissions"></a>
 <h2 class="h3">Package Files With Job Submissions</h2>
 <div class="section">
 <p>
@@ -349,10 +354,10 @@
 </div>
 
 
-<a name="N1005F"></a><a name="Streaming+Options+and+Usage"></a>
+<a name="N10071"></a><a name="Streaming+Options+and+Usage"></a>
 <h2 class="h3">Streaming Options and Usage </h2>
 <div class="section">
-<a name="N10065"></a><a name="Mapper-Only+Jobs"></a>
+<a name="N10077"></a><a name="Mapper-Only+Jobs"></a>
 <h3 class="h4">Mapper-Only Jobs </h3>
 <p>
 Often, you may want to process input data using a map function only. To do this, simply set mapred.reduce.tasks to zero. The map/reduce framework will not create any reducer tasks. Rather, the outputs of the mapper tasks will be the final output of the job.
@@ -360,7 +365,7 @@
 <p>
 To be backward compatible, Hadoop Streaming also supports the "-reduce NONE" option, which is equivalent to "-jobconf mapred.reduce.tasks=0".
 </p>
-<a name="N10071"></a><a name="Specifying+Other+Plugins+for+Jobs"></a>
+<a name="N10083"></a><a name="Specifying+Other+Plugins+for+Jobs"></a>
 <h3 class="h4">Specifying Other Plugins for Jobs </h3>
 <p>
 Just as with a normal map/reduce job, you can specify other plugins for a streaming job:
@@ -377,7 +382,7 @@
 <p>
 The class you supply for the output format is expected to take key/value pairs of Text class. If you do not specify an output format class, the TextOutputFormat is used as the default.
 </p>
-<a name="N10084"></a><a name="Large+files+and+archives+in+Hadoop+Streaming"></a>
+<a name="N10096"></a><a name="Large+files+and+archives+in+Hadoop+Streaming"></a>
 <h3 class="h4">Large files and archives in Hadoop Streaming </h3>
 <p>
 The -cacheFile and -cacheArchive options allow you to make files and archives available to the tasks. The argument is a URI to the file or archive that you have already uploaded to HDFS. These files and archives are cached across jobs. You can retrieve the host and fs_port values from the fs.default.name config variable.
@@ -446,7 +451,7 @@
 This is just the second cache string
 
 </pre>
-<a name="N100AD"></a><a name="Specifying+Additional+Configuration+Variables+for+Jobs"></a>
+<a name="N100BF"></a><a name="Specifying+Additional+Configuration+Variables+for+Jobs"></a>
 <h3 class="h4">Specifying Additional Configuration Variables for Jobs </h3>
 <p>
 You can specify additional configuration variables by using "-jobconf  &lt;n&gt;=&lt;v&gt;". For example: 
@@ -465,7 +470,7 @@
 <p>
 For more details on the jobconf parameters see: <a href="http://wiki.apache.org/hadoop/JobConfFile">http://wiki.apache.org/hadoop/JobConfFile</a>
 </p>
-<a name="N100C4"></a><a name="Other+Supported+Options"></a>
+<a name="N100D6"></a><a name="Other+Supported+Options"></a>
 <h3 class="h4">Other Supported Options </h3>
 <p>
 Other options you may specify for a streaming job are described here:
@@ -547,10 +552,10 @@
 </div>
 
 
-<a name="N1017C"></a><a name="More+usage+examples"></a>
+<a name="N1018E"></a><a name="More+usage+examples"></a>
 <h2 class="h3">More usage examples </h2>
 <div class="section">
-<a name="N10182"></a><a name="Customizing+the+Way+to+Split+Lines+into+Key%2FValue+Pairs"></a>
+<a name="N10194"></a><a name="Customizing+the+Way+to+Split+Lines+into+Key%2FValue+Pairs"></a>
 <h3 class="h4">Customizing the Way to Split Lines into Key/Value Pairs </h3>
 <p>
 As noted earlier, when the map/reduce framework reads a line from the stdout of the mapper, it splits the line into a key/value pair. By default, the prefix of the line up to the first tab character is the key and the the rest of the line (excluding the tab character) is the value.
@@ -573,7 +578,7 @@
 <p>
 Similarly, you can use "-jobconf stream.reduce.output.field.separator=SEP" and "-jobconf stream.num.reduce.output.fields=NUM" to specify the nth field separator in a line of the reduce outputs as the separator between the key and the value.
 </p>
-<a name="N10198"></a><a name="A+Useful+Partitioner+Class+%28secondary+sort%2C+the+-partitioner+org.apache.hadoop.mapred.lib.KeyFieldBasedPartitioner+option%29"></a>
+<a name="N101AA"></a><a name="A+Useful+Partitioner+Class+%28secondary+sort%2C+the+-partitioner+org.apache.hadoop.mapred.lib.KeyFieldBasedPartitioner+option%29"></a>
 <h3 class="h4">A Useful Partitioner Class (secondary sort, the -partitioner org.apache.hadoop.mapred.lib.KeyFieldBasedPartitioner option) </h3>
 <p>
 Hadoop has a library class, org.apache.hadoop.mapred.lib.KeyFieldBasedPartitioner, that is useful for many applications. This class allows the map/reduce framework to partition the map outputs based on prefixes of keys, not the whole keys. For example:
@@ -633,7 +638,7 @@
 11.14.2.2
 11.14.2.3
 </pre>
-<a name="N101CE"></a><a name="Working+with+the+Hadoop+Aggregate+Package+%28the+-reduce+aggregate+option%29"></a>
+<a name="N101E0"></a><a name="Working+with+the+Hadoop+Aggregate+Package+%28the+-reduce+aggregate+option%29"></a>
 <h3 class="h4">Working with the Hadoop Aggregate Package (the -reduce aggregate option) </h3>
 <p>
 Hadoop has a library package called "Aggregate" (<a href="https://svn.apache.org/repos/asf/hadoop/core/trunk/src/java/org/apache/hadoop/mapred/lib/aggregate">https://svn.apache.org/repos/asf/hadoop/core/trunk/src/java/org/apache/hadoop/mapred/lib/aggregate</a>).  Aggregate provides a special reducer class and a special combiner class, and a list of simple aggregators that perform aggregations such as "sum", "max", "min" and so on  over a sequence of values. Aggregate allows you to define a mapper plugin class that is expected to generate "aggregatable items" for each input key/value pair of the mappers. The combiner/reducer will aggregate those aggregatable items by invoking the appropriate aggregators.
@@ -674,7 +679,7 @@
 if __name__ == "__main__":
      main(sys.argv)
 </pre>
-<a name="N101E9"></a><a name="Field+Selection+%28+similar+to+unix+%27cut%27+command%29"></a>
+<a name="N101FB"></a><a name="Field+Selection+%28+similar+to+unix+%27cut%27+command%29"></a>
 <h3 class="h4">Field Selection ( similar to unix 'cut' command) </h3>
 <p>
 Hadoop has a library class, org.apache.hadoop.mapred.lib.FieldSelectionMapReduce, that effectively allows you to process text data like the unix "cut" utility. The map function defined in the class treats each input key/value pair as a list of fields. You can specify the field separator (the default is the tab character). You can select an arbitrary list of fields as the map output key, and an arbitrary list of fields as the map output value. Similarly, the reduce function defined in the class treats each input key/value pair as a list of fields. You can select an arbitrary list of fields as the reduce output key, and an arbitrary list of fields as the reduce output value. For example:
@@ -703,15 +708,15 @@
 </div>
 
 
-<a name="N101FD"></a><a name="Frequently+Asked+Questions"></a>
+<a name="N1020F"></a><a name="Frequently+Asked+Questions"></a>
 <h2 class="h3">Frequently Asked Questions </h2>
 <div class="section">
-<a name="N10203"></a><a name="How+do+I+use+Hadoop+Streaming+to+run+an+arbitrary+set+of+%28semi-%29independent+tasks%3F"></a>
+<a name="N10215"></a><a name="How+do+I+use+Hadoop+Streaming+to+run+an+arbitrary+set+of+%28semi-%29independent+tasks%3F"></a>
 <h3 class="h4">How do I use Hadoop Streaming to run an arbitrary set of (semi-)independent tasks? </h3>
 <p>
 Often you do not need the full power of Map Reduce, but only need to run multiple instances of the same program - either on different parts of the data, or on the same data, but with different parameters. You can use Hadoop Streaming to do this.
 </p>
-<a name="N1020D"></a><a name="How+do+I+process+files%2C+one+per+map%3F"></a>
+<a name="N1021F"></a><a name="How+do+I+process+files%2C+one+per+map%3F"></a>
 <h3 class="h4">How do I process files, one per map? </h3>
 <p>
 As an example, consider the problem of zipping (compressing) a set of files across the hadoop cluster. You can achieve this using either of these methods:
@@ -755,13 +760,13 @@
 </li>
 
 </ol>
-<a name="N10238"></a><a name="How+many+reducers+should+I+use%3F"></a>
+<a name="N1024A"></a><a name="How+many+reducers+should+I+use%3F"></a>
 <h3 class="h4">How many reducers should I use? </h3>
 <p>
 See the Hadoop Wiki for details: <a href="http://wiki.apache.org/hadoop/HowManyMapsAndReduces">http://wiki.apache.org/hadoop/HowManyMapsAndReduces</a>
 
 </p>
-<a name="N10246"></a><a name="If+I+set+up+an+alias+in+my+shell+script%2C+will+that+work+after+-mapper%2C+i.e.+say+I+do%3A+alias+c1%3D%27cut+-f1%27.+Will+-mapper+%22c1%22+work%3F"></a>
+<a name="N10258"></a><a name="If+I+set+up+an+alias+in+my+shell+script%2C+will+that+work+after+-mapper%2C+i.e.+say+I+do%3A+alias+c1%3D%27cut+-f1%27.+Will+-mapper+%22c1%22+work%3F"></a>
 <h3 class="h4">If I set up an alias in my shell script, will that work after -mapper, i.e. say I do: alias c1='cut -f1'. Will -mapper "c1" work? </h3>
 <p>
 Using an alias will not work, but variable substitution is allowed as shown in this example:
@@ -788,12 +793,12 @@
 75
 80
 </pre>
-<a name="N10254"></a><a name="Can+I+use+UNIX+pipes%3F+For+example%2C+will+-mapper+%22cut+-f1+%7C+sed+s%2Ffoo%2Fbar%2Fg%22+work%3F"></a>
+<a name="N10266"></a><a name="Can+I+use+UNIX+pipes%3F+For+example%2C+will+-mapper+%22cut+-f1+%7C+sed+s%2Ffoo%2Fbar%2Fg%22+work%3F"></a>
 <h3 class="h4">Can I use UNIX pipes? For example, will -mapper "cut -f1 | sed s/foo/bar/g" work?</h3>
 <p>
 Currently this does not work and gives an "java.io.IOException: Broken pipe" error. This is probably a bug that needs to be investigated.
 </p>
-<a name="N1025E"></a><a name="When+I+run+a+streaming+job+by"></a>
+<a name="N10270"></a><a name="When+I+run+a+streaming+job+by"></a>
 <h3 class="h4">When I run a streaming job by distributing large executables (for example, 3.6G) through the -file option, I get a "No space left on device" error. What do I do? </h3>
 <p>
 The jar packaging happens in a directory pointed to by the configuration variable stream.tmpdir. The default value of stream.tmpdir is /tmp. Set the value to a directory with more space:
@@ -801,7 +806,7 @@
 <pre class="code">
 -jobconf stream.tmpdir=/export/bigspace/...
 </pre>
-<a name="N1026F"></a><a name="How+do+I+specify+multiple+input+directories%3F"></a>
+<a name="N10281"></a><a name="How+do+I+specify+multiple+input+directories%3F"></a>
 <h3 class="h4">How do I specify multiple input directories? </h3>
 <p>
 You can specify multiple input directories with multiple '-input' options:
@@ -809,17 +814,17 @@
 <pre class="code">
  hadoop jar hadoop-streaming.jar -input '/user/foo/dir1' -input '/user/foo/dir2' 
 </pre>
-<a name="N1027C"></a><a name="How+do+I+generate+output+files+with+gzip+format%3F"></a>
+<a name="N1028E"></a><a name="How+do+I+generate+output+files+with+gzip+format%3F"></a>
 <h3 class="h4">How do I generate output files with gzip format? </h3>
 <p>
 Instead of plain text files, you can generate gzip files as your generated output. Pass '-jobconf mapred.output.compress=true -jobconf  mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCode' as option to your streaming job.
 </p>
-<a name="N10286"></a><a name="How+do+I+provide+my+own+input%2Foutput+format+with+streaming%3F"></a>
+<a name="N10298"></a><a name="How+do+I+provide+my+own+input%2Foutput+format+with+streaming%3F"></a>
 <h3 class="h4">How do I provide my own input/output format with streaming? </h3>
 <p>
 At least as late as version 0.14, Hadoop does not support multiple jar files. So, when specifying your own custom classes you will have to pack them along with the streaming jar and use the custom jar instead of the default hadoop streaming jar. 
 </p>
-<a name="N10290"></a><a name="How+do+I+parse+XML+documents+using+streaming%3F"></a>
+<a name="N102A2"></a><a name="How+do+I+parse+XML+documents+using+streaming%3F"></a>
 <h3 class="h4">How do I parse XML documents using streaming? </h3>
 <p>
 You can use the record reader StreamXmlRecordReader to process XML documents. 

Modified: hadoop/core/branches/branch-0.18/docs/streaming.pdf
URL: http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.18/docs/streaming.pdf?rev=666587&r1=666586&r2=666587&view=diff
==============================================================================
--- hadoop/core/branches/branch-0.18/docs/streaming.pdf (original)
+++ hadoop/core/branches/branch-0.18/docs/streaming.pdf Wed Jun 11 02:19:09 2008
@@ -357,10 +357,10 @@
 >>
 endobj
 65 0 obj
-<< /Length 1838 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 2023 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-Gau`TD/\/e&H;*)+Tqnu!];3bU0]bE6b>6l$ae3J%)]:X""htV>?b&Q.ZX8hGC$TUMUVc"L*;@i;WQXsa5_5bH?D5pF#j+Yo:0Uks()tX`-$YSJ5;e=^ZR-p^@1.2=jDJe]kWnG,k+0f4"^h&(=MJ0KGhhPYFXp5T71c$T]#GnG.d+^ja-(?B"@Eo3M,D8>Bp?\S]dSqkHh]kZdLs[k(-a=J$qGOX!V/R]]^`HY+@_)3LB2iEr:_]]To6b1D$plB0aoDJlkG#\.u@a=XMN;SR3%mM.@jQ7]`uB#cu,/MJUh+]N`M-.!,/;fJKF\`l)Ah,*5YKGgknTV5O3dh0F;^3qXih@4.oA]ZWhW#E9Ee?pCbhiRtb4^5-RX:RnDd/Ge>ob&$q%HbJbN(Zf\8MF-R7B[tuL.3<Qie)5K5?q+t'3HmSH@P<dM[KZVb/pjFO8Gb]8a[E6ArId_h5i0YZ1h+!akQHKL2X&!I"HS^HV`LGPgn"Rfj!B00.n85n])S=91H=Y(F9&T!Jki.I+mir!`6hiHWl"C,3h8[(CfH;::fC#ND-7^Ds4GY6oNpCqqutfe[Pf3]](C?%<Z^aumF?B<^eZ.)$T[Jfc:QBoj^c)[pcLjh1SZMr8=krGYD%.jMk/Yhr6'bSiDs&go!-Y4ip9<jUJ,'p3Bf:\bg6&j'utYi7c!$%ij\>8e!=EOQYkgppbG$rYW;;HcsPZQ-8(j^CthE4,_"Coc$+)5^0WA9s*hTTn><(`L(_=AO#A9W=Wg2?Q8_J"Kup1DWUuW]9.(R?]-.Kni:4q+O$aQNi!H]C+,)!*q"IOpfH&6JAu!h5,ZgBWg#7C*@0HKFgm]&H'*F3RFlu_2X`#-.k*QJ#p,OG+:!j^uMP\%LGN*^8j%>?h)IN^_j=@bF6:1n()#5T2TAoC$>OL?6+,Uld_j#gb%fM.7.M72Cb*_Mr8;`B.M^S:@N6f8($O/FF!g@X;[4n5-]R1M$V3Ufc@25i
 .RO7Ssb+6[7<g=...@.>p@K[n'RMWPF?q=XGLW?*!9H(H1h-122oPkP19q_5E/!>p<A^BIHQ?LP[^1ADL03TFpZY:E:2J#AK$K0(Ib-=or84oT6Gu3$X[f?YPAmN3N'`dLp&KE:su[M,@po_P^%"b[WmTO%r>jS%p,9QL9l)A,)"\UqQ3ak(/n(F'g"X+^kQUD.NJ+,$]5`cqc7YoMJ_7Wuq7?e1<H(2poEp=J9#RHPDFtb_gDEOH!BKI4979c9`&pfJK,i7Ckp(!%m#KqaMHj_;`b!W[W9cpI;iH`*JA6=<!Z'&[b&7H]]LaZ[3aaaMM\%R[EQD!b&0f_)_gPeRaPLb;?Jl=+b.)0n:fW=a=%VIP)?()hLr.dI*#]:ktT?g=HAM%3\1T?]&jas2\G@eL)L#[#sk&`b*SHC#l`+K%AjH$2;dEp$M+GbT'@C*dmMggF#j0e/-bE38N0HK[B#W`6)M')L0AYKi=W"l)@WuL[#tS*NGQJW6b[P%P!JMCr$aAN4m<[F\hW^K00Yj%!'SH0&oWhLg@Y-AX;T99N@0%o3jV+>^Up?Vd"U)MMh_XlYu5M$<K1o.?n14FX+>8lDgH"_/iUf@iaVafRIp;aH:8;'+l=ML^u\0+Y?"Z-Q[,3ZLuKM_s/\Yr.Skn+Ku'4>BOj9GI`h1/*^;^eE%.)E_sb"k!6A2_H,iF>:CUNqT.m\b=WDpd-(1h-0HN`\.\oCG%K%H3]lEfH;hGXlJ<Xj;==*%-p#4oe6_cZn?RM.fT.]Xg-BnVR58-GX1F<:BNoODRR+'f5[t+KeI<Kkn%4&MN4r(f~>
+Gau`TD/\/e&H;*)+VY%0!];3"eD'\r?(3_U$>3(j@9A88Q>)hJ/UA$E=8VYP]cUh/%Zh)dd3PO/Hb\b3q"An%rc[l,`3EA4s2-+fM/E(&%mQI`r]L\m@P]MLepR&SjDAtn-9_fRca$.#\,e12#I%]@l,jqEpuR-NKRk'SL)F6$7[?u%\Qqts8h:q\3L8^0nu<K-=mL6HrUFnXP?k=u=]=31cbJ6N=67F`R:cE[h;'UI:[@`'O:DXikV[H]Xp9VleIGD::WNu:'K(QPI('dQN_3B+ms)J\ABbo_m0K4Q`I_peS6RX6U89J+%k`hrU(MD#L(VeR@smNM/sD3Agt]QPoIPdK2JfABQ?QTnpoL@`26/.Paq$.8T(IqW-XsV;3c`UK3@CIFnjAUMVGk=?,Z+mD8#2#umnsgeOX6?`4;B6>F!K%L8<.=1"CSH2Sht?K1dAs50c,Kagem;b/tNS4bR7(Xa\Hl5]Rr:Lou>hYHSKJZjW"eI&9YQ/B2hosaf=7H4M++a2:qf,1j[_+pJS3l'd=#lR[.9sN4@0\<@mcIS?S1Be\PX,E-^%!bk?lT]QW!L:'<MCH/g64A!(?#(dYA1_eZ5"UKktIYpmakItW8nX#g3fk\[R99:g(ola&4d9Wo;j9u!3B"tr^(-*'Wn\I\`Cj5+PN/sFU@<shDXCB[`B012Q)+Rj6(i_"K_o[g9lI*YlMr[!XrErK\7oh!F*`D&PRat/`!I)Grfpin>4+n`J4?phpPeR8U64I6Z2^uOl55DO$F<KdL]8Ar($o*s-.j*Xt(%is5FPSP&b*BDp52)=2DrnK;!g_L6PLHZWMe021r3Y>l<!#9,RiKk^H:s#Y:nQI8A$orJfhW1(?l-K=R>4':]85W^7V/[C9O@ju?),t"9mH%r4PTSF,c]/+,*>5t=bDYTtiq!=OIA`p85,+qYk%eYB9_h`U<I-l=A&o!ERIlkj&NMX]E0P?928r<X`r(S_.dQZj.#tQ
 gOg$R\V(r26gYG?sKTkq_XW8qh`BJ_K#Z`1pSLGeR%"eb%Ie`^#h/%95f>lS-pJk^%2btR+6gJpY)b7T&EP+Irm/WOk7n7kUk/19@IsP=%WpP'11\?rkfn?g/HdGl4MsE^5<H8bNEi7$^3)@l.!?_9HrSomne0\MfV^f)L$?`p!AMtc^e'&bUaQMhS*5q(Q`hbYd27_,d6Ep_[6NC!lq'=H3_snLH%Wg!V*5W[(8VlNUD@!@R%bcjJZ[7?Pfij!G,PZNmcVN)C!DFM21C+;(e9i>,E]jDeL>irrPqNnn*6:VnGHBd@>lsZm")'V3*X-/nKg5Si2j1)XJ5s@s""!!8BuVBd_Jg,GRP&,U.`YJ%L^\.X;QfSTS!jjF'0<jSKtWGcK.TTFi][qU%>Dp:(^ZBRp-"aJIr?eInC0e@Io)G98kE]?AI5(f$m/E6>h^L;pOAGS$A2k#4[WAH+\\^"F-Ish^fV.1?Wj,;%tO32Z:&,)EP4l/V/t.R:KTGCm9Q3N"ju6#\N,O6Mf/F!VSu@Ug`2?5Z`8C`7W.mWY??QG,BFNP$6)C?Ha[u<DI"L*5sY1#J.DJcCt8sW+;*q+WTbte+>A>&DL?bO6BK'D=t)Rqi\A??"5TU(:2dJ8(<ICg)sF]m#m*#+jAGT65X36;+l>0]>T4-)i<G=qm1@M(8SeI38ueeAXqs>9/;u>70g'(]i!lZJM5.s/oT@(+NRGHYed4YID[T\=lJ6<Q4TQ`C22.68c!^BGaDN`NXN#Z$*hW>rD<8Vf%An$%P,Qpu$SMnQCMYY/D(BEhg8a8Ua^Ja!=NOMM=$C]PP6p+Tfft'M1c>6,$FN4;N#*mun-Eth-m&V,o3V@"XWKA*b-0;["]YCB`G2a4!=?Cc]3mhlb2ca7alNr!HGIaYafh67JqiH2e&lbP)%sN-G:+OCR"o&+^%+nHZU-p5[__i0m>=lGes1BNUm?O'4f;XQ<=J_('8lJB:%^!mYA_ogn!b
 ]-HKS2faeENl#eF'KY[1;A1UIqEpch$0oX=W5+)(2t~>
 endstream
 endobj
 66 0 obj
@@ -372,10 +372,10 @@
 >>
 endobj
 67 0 obj
-<< /Length 2121 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 2097 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-Gau0EgN)%,&:N/3E1D]\1GM:JGP<OXldV?08Rlm(S[R!u.FLOV&M+2kp>6\!0.9.b*Hs8>"C?W7ZY.T:TJrpj&$*Z6$Z+Y!^NYUW7^hFU^A;rbqYRhdg*e5\,nfNUn]Tq:C9bD[/F9<^X)qc/n(HtJ[b>q2#=Y"^X0)'89,A34X`[C-R9j298^,UQQJ[_S50?SD`o3hs\n-.I?:[)dqju]D>CTeVpN&ec*fAaG2]MW8$8eM@$^9.Th-`R2kMb"MpJiZ_odDM)a5dH[)8G<=ChYef\$T7pA6m0rGjPmRGr:U'Gr6(@RZE*,7;0?LFa/drn,T4U.2'5BOB+8E5k&UN]7K?P2@?Z%OS\uB?*Pr#CRK*iIV3eB@i#:nghqcb%IM6R[Z38S6Zp5'!i5g!\Be;a<&1QfXC:kj2U(fb^<L=or_0dmBC]Sr0L13<:VnXXZrqt\Kg@pr6%rj4n[no#oLXH'M>KkR^:drFB/"ARo@2<^MlR:p:g?e)TMSc+7J:C;KnQchE,,umOS'9(Ga5DOYt/CO!'Te6a5oJ/.PP?uR/hF#FSrjF*ot6?+9kp3`#B0?((DWZ@?8Es_j$>iEX!l?&Vh=#?5^PYmD#[Y^RVsUJAYBT!5P78BQL;>PZF3*@`WSg&C&Z[&.fBJ"!L>B[;d\(5T,1EJ`jMW#q"n22J!]?@CKZ"<'(,PV6R+8#5P-MUJ@T[V<=4*j0;2bG6g6pe.`t[`uW?R#2_]0=W(/C:=e;'ZZ9`o2JpA#P9qna!Fmdn@E'0:<]-UB"Ier>NA)RVUBIr5Bhet*mc6[qQ8CWon+:RH[5Q7%&VQo%mRbD0i[8HX0dMd:_oHA@B2s_i4H06(NeSJslpZ>@jT%=:5fG=B0kD4J1!QC0,2TPNGae_5I\^c)$_UECHOYt$Wu=AG\U>j`?k:rOPg7Gu4pn$'L?dqVNAns*K,UT^cp$s1o`TrTW!bS,4NmNF^`(;UXiBK&L7Tma/CX:!SpH.
 8.]?\BY=8L`b<&fG2)&!?X)4"=-jH-S?U%ng+@iDcWn'C0iKP9PC^n#dKb)U*O^nplX=>u#f2LduJOD@e:(PI-hd9^U+I#Y4$7o<h=lA>Fi)!$GCCJVjh:S@#67Z/Y5HWZB-sYLi5RZ'3mt-JNMW^pM(AAY>b>0V_eeH1<otlhM^#`WWcVk%JbrlfCk3&h_3bk9$%1u.<8e20K"5O_r"H9a:/pl?sI*N1Wj+U<QE.e:5A-^Psk@.u6DVqZ#;nJ'<ZVJ]%jg#BY72ND/&ot7A8L\Ej,5E?ge:W_AGK3m57s/cod,B>:)^(n7r-f`(;t2lQa/T:+>\GVG:@cA*'s-tGg\O*5?&aBGDSZ'XV%[$";4!jl;IZ_NAogQ^=$gS(\DuRDl`J`3W2>9,7fu'kWP(4SAFgpG8*^7)nok)%=Ht"'#7',0<F<X%J4(ROHT^<Dg&uQ7=Y=.0poKSqO5YpabR5(dJFNWGT9SKB!iEF6M%W8pBIK@SCMm?3VUOllFb-L;0Gnn_7*#a3d01.B8jU0\(U,4pG^L1M2A9?Q6)!0fHuosp/OGK>%rh[c*pBj;/_$SK12T)q^N:6>Ts43.#cDOM9Ne9UHS9:b`H;AXa$kIG0!-C#XZ;lP?005="3hEWLJ-8AFfPA@A5t4#pk0h\D"XT1`5Y?>>fRNg"-]6b9Yuq7O/%E1_e;s$5Tr4bQ,&]LMoRr<SuYKM1CT$snq&$YTRD1d*0Of["1W9/0'oFGR@(!o6YHLO;&u<'[&)#A_Hs.CAOjY%=WG'[3<A=_^X9?.EcA]^M^-KA6'acJek;J.UZQNpek+[.=M>rE3tN/B^ndLnfC]aDr@MZ2aj;T;qk6s8f@FiXk@-XrQ45+N5MG6dIum@(oiZeACd+ubXLes.dGXG!U7-nnD8^sA"1?CoM]6/u3SF"p%7$F$O>n0k3#doWL_V+X:XG=Q,>>\tPk!BN#aF@50q<X@^N['cf`;Gm::P./]NVbm?FK
 CjMNOr#PA\34ZotT1QLfX;^#mq]]EPGCIUg9eg917C'tVQ]mTf+\Wk<r>DAmiN#A2Q15Db09&[C_2*-GOP4*Y&\J;rT)T#t?JnS>=5ng\"q+oAk&g1Ii81i&FcXS2$JOT:BVr<n<ekSs~>
+Gau0E?#SIU'Rf_Z&DEH\BP<8!Z9%?GmHQSuf63./@G$<cQ6i#[/?4qF-i\Ws?e2&)g0U3k87K^SH$Shgk8r?\(6^\8ag[+<XPrp@,VY'hGb,.i*Og?Cj\h^qe2(WG/182-?CcM[G)1e=T$CWZU@?/HSs]1<-N$t8o:Sa5B0+%AC]+!E+au,JBKaJDAV=Brn93.=WkT1(D8lps9VU_K`HQ,E7+RE;$5p*#:Y5OkQK2_=]Z`,SMnHf&Cs]I`Y%4mh6ZhGMViPbfoL"`U>bhqIho=[S?se(BS8M^2%1bDr@iR';I4P,R,uIj=+9[_`X&t*#NVc@QQ9ecOM2`3#^Wh6`T9(sgl.e3K]0TY\a:*l?d3^&m:kF5?U6*Fi$<!Jr$J>qS-fpep..C?3GMe<ihQB)[%FZN(j*0jo4I>g]H7/g+ZPg#QWsSQLR3RA%$=qHjKIuLsVF#0'U>RpM-5=6a"M,BqU)6N8;]:<cl;`)7POP6<nmbE]$nj;Z-Li)5F:FH/QL3/d^COBS6`pmsRpY"jP86'?fKJ"b5\pVk^p$KID9JGLcZqFR!l'<`MPjT[`"dk=m%2n+RI/YmK]W#"[Z(KmD^TOA@b]]aU+@?DMdmF@mq0\//9k0.2;jfs@b\i-\k,.@QMg(XH7iBoJK5OC=<tau$4V\=I7`iaUemkaL0M3nJZP>S,K^/2T8\Y*,'r*8pJXnN'$Zdu/l>jT$-4=%.g?qX@W3=uG&o3PXpGHmTs56?jGFU.K+$tgL?kM(CVZt0^TO0#&"^YT>36CuN9N0J'ud7J$7poo`<oK"I11Z?=G._$TaRg@;m%B<PEZS%?2lO&_4[^jE>Wd1-IKLX/4u49^+&<Fb%Q1e0d_qIfS?If,b5ZDQQC:1H_)>h`a+#3o+7@:[/(AgQ/_S(Bkr0)1i^MkS9s$dPo3*!(j\Rc8M[l,f-@X%;$%Z@e<bjJ)Xa9,$LK1nXdY:=eqObn5b\d@GU+/^'L,,-c671
 .*'Vmd4K:H4p/VZ.p"c;4<]6,)%ns.RN%n*^M-5_ROPtr_nCnqVEl-XIN0e%+dgDVj#uJqq%_]f+f`<CB0H6_^<QN$O2!7u9PW^i^]PMbC;Hc.n]^[6ZHOXaEQa[<gru6:2i-D'^Bf5Q<R;G.gldP9'+[GFt;)T.C+LC01EUK3'aRoH)jn]$=MA9)*s#>\<fO//=i,'=FOX38U'rnSq9*AH.Q"'q0E9TXnah+2.2_#+/_io[V<_X?WHRK&`;R".XrBI[g*#bs?d;IUG&"j3ioRJ0Fo7*bri$\eK2YB-?L@$@S@]N.4:-.?)CN"J():!4AFdjD8]]/+Q_V-mfRgp<lPYR8Ed2gtR8d;Z9IB7aab'_D8LeV_;4'"UoHKG@Y4D/so\'l4<'Pcsd2leof0qD@eI*ng.$:6AC7?eT'$V>>>4KSeo:N+Q^H4#-b^W#q.eNh-?@Wr6hY5)>dYtBkC$]>C?P'm+3%4f3N2L@Z1?%mg/DW(=Xcj@Zf<3>>NPgkI0if>O"=A#Q+iEjT0`ETIS"OeRU]`t0]eDBD2ZG$pQU\MWUr1-)"KGLBIi.3gsh,eY+TUnMaLI\j]l(H<):R07o`+Y6h#k98XTu_=`+iYbNIK@^P)(ohu#m_bN1mUl&RN"o><LQ(J/l47KNo/TRJ@MpYFFi-HZ0D#HJu&a*eN\n')bDZ8k]lL3B,@8a,4qu7J7WgtGV"i.)E9/$YljSjA^OS6Xaa&)jiF:!3ec?ZFZX9>,?P$*[+d2`$N\hK&(W@3#k!@+_WihqrhriYa!@\h(>*mt'=3(QfP2)c1O3s^!uqeEZHk8IEhP\B2R4*n6"`QEm$(PF=>"J4j",MX/of)hbOLDM*sr@qGI3u@Ei^;^O/#R+4bks@>rSnm/L0A(MmS;)V=c1oaJg]?;=ij6%;O+CF2SJ02mI%C/FCcEd),tCUREE<obC1'W9M3n[]KP.?FSpDh!s8?>qp<>b\n<qbaO1Q@6#-XgD,
 c@B%2$0oX0eB_TB]:NL9mR[i[<:"ppK@]r?Rd5)1nbrC("m++_*"rMZ"1B(.RVMQe2[Lq)*H%_B2+(M10eQ+@V#=Q:m"6+qH%`c(p@]4aWZi;NlsB:[r~>
 endstream
 endobj
 68 0 obj
@@ -387,10 +387,10 @@
 >>
 endobj
 69 0 obj
-<< /Length 1538 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 1636 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-GauGaCN%rcn@O1(i,u!i_'b?Z757=7UhS;b5`oqA"q:*"a>.T_[3\V3e)]ET,YJnaduUY!&gZ&!Gjbn+r+=<$2sC1g+k@A-hKPatNobO-rc`YXguh@]@*D6.2<t+jH#o4cF^1Trp3?m*=#euU5S,8UnL5#Z=m=Gis75pYegV6u>A95ZeR6gF9#VeJ-.\O7otfhB?t'#aHZaQ2pAY'_f=UoUn*EmcgTt:X,g/!E:T.23mQC\%6J`Vo*FBoUB6gM/72/OkF`]T*Zi7B;+#gK^oF'X%#:\9Aqbb"2jUFf5?=bUo(Wt$T`H&+:3t/uoRRD4.QU`3Kb.F*[qd`M0KN0cC_/cM3]t.!*3mAR&$r18',Z%@C9\"A&[WnCb`0&u@MFk+r:Gs9?G)ps89*r6<CVQ[Y:;^6,W4#Hf3P^%L?584HZgf;&\*J:Y0`grHl2Y7u31s=J1lg!.nA"$6bNDb#mBof]OPj1Pfr)P36.R*+84I##:E#]WMWf2u&'0Ci>BWSuqnmK*O<Y1cTfeknef3^@GTn3g@%f3bn")6+U4nJ_n/8mU*8m)`?8ZQ]>':ZfrJL$NNV!q^7-1^0(.EXbBisBY)JPka6^$n/D\[9e3707Q$$V$hh\`c';.(%(8chbQIDL00`ju]@BS(&ZA3L%:2ItH\cF:/2C`W5D\3XI[O3AK5BbBcA<G?BN*1dUd@l9YZ\ZQM@[@f9',7#uC8/Z_U)f\Cf`m*6,IG/WAhJP#+h7S?Ed'^s&qN!YJ4%4'%c3VMI4?b;9>@mu.deJfb.0ZUV6J[0.XV;0XKE<GHMS4_\,R%9;R+F*$PPGH;1S98#3GL7+1jA00&$&Ce4B#HMd\;r'R!2"k*X,,a7-FO2Es<-S$)KG3D0#P]N*m(HO62_a4V(o!7Zipd>:%d9ZI7:SDMKWAMp+^e(jM>#%h#k56(7P=i^`=e(L$(.X5\iJ#!?T47jS7e2`(K+_V8,>+Pq=YH'*3G_?D,i-jT-
 D@::/!iOQ&o_kDq9[2L[-Gdm?[3J$q=/6*N]SkCCfmM^"t4A+U@hV`9j@#1\\1alZekWaYU$:a7Z"uT!##5FREl?q>l2CQ"@cPQ705TEI+g0+]jKjE#4&+P5%?/j1@e]8+#9t>(W>D!1iL4s6W*d8&4Bq/4,b@=gpVQ*H/n^Za?j&K1PokiY*6]O,GLPj6CC4JJ!SbA6d(Qec4j(994*P,nFC?^EuN8'/5q0e12KlhkZX/P4HXbCQ\r1QBgNRI/Q,93W;\d!AeQc8QEM*Y1_3M?O8Y;pIgB1Y.<?s2?\CP/<!X67k95)aKINq2@/-.+pU/d>8B?.MWWIh.U@M:9#]Nbp&D"bLVQ#do&!oi,nRou=<l]7A8.BA_7U`s<Du.5m>M\uj2qEaS!m,=(`J"j9mK'6$hs+P@OQ;&I3a9=j&>9'5;EW`g#u:$KoH#2j"7jk;WuKQE57@:ID-p&&oq/>(C)3m10FId'MJ8HWBnMZt*D<!-AYWt&CN?]n"[4\.G(H2X&r">mF[]E(XXR0G1SbT8JeNUQiMPEf74~>
+GauHLHZ.Xs&HCX[6L[#]!G4qL78XDT!,7`U-nqH$N<-pZ'T=Tr8o;\8j?10TNY5o$[cFr&OT^N[,C,@-4`ol]j2(D5n83]X)>nn"":fH'ch$)0bN/8N;-6Y0jcO[MpjMZ2eI+"IaS1Ybp'n>^JZWoSE2m[`r*l_@ap@PXf,?<E^Q3<.4?=reX:_F6*K)a)k>AAgdBcrX(6KqSZ$qG&H8,aq30,]`E1T1\k>u5XV+;8qaBs7<,jB&LU@PkEUc:**c\8'/q3:-_,"X$3qo9V)gp37NaDL8q<`,7&01e4jd3'1IW&VTHQ>EO1EGB;Z71&g<[4=f%p5!hEGEBn0##`?NHY=O43ig_7iZYT^pLPfB)Zm>eHUR6[6apcm7q%hI08?g)k".Q$o7kAi6H$*="2qDKM4mCHLm21FfK7/q\\fs'ED/BTT,]8FQ-ZQ2bs+Bo.T*F2geFM&/gB[N#qYGmM:+l@_2,<6`-8\W^Y[dpqJprWgU2I%V"S%eZYTfVA)^J157!Z3?G1"mYE+^$169?dU(4Sk:*s0d`.8G@(19O_>55$g$%6AuYDXg<Q]YQQM-8?%,Or3$feYI,l]^:;`2Jj('WY5EkV[`'q5hs/:`RE:A)qXK168<uYf63!-6CYlXI*PanmLM:m-o..Ti)*;X]tI52j9U:,uhG6BKhE6;nMR4RUW'B,7:d=*jr!q81!NqT:1-kl4c_p,0D-Yl4\b_KCD6O+(f5gD$DWpl3KRM.>k=J3IVtZGY9ag$H(S_L\#WGrPDn"$$7FcmJ68J)+#uZ7]CLe/h4#":nUX1VqEV[k`i#p!I4"Wqj\j#6"X0X-4G%Ml+G7hU23>G.uD0afZY&sDG;-WF_]Zm:o@un,$.4*Qqj^)]YQ9r@URZ1NDeibbr$n0Vd%kH>:8p;e`:fM8=dkZiSe:f.V"eJPEX,Y1l<*D1_l`Lb?H"0&./SdT/'rl2LM,TP]^cZqQth=n*E)V;pEi2'&E%^X8[3
 fG:2XeKN$bsF>o6S$\snE=,.Lh:<D9[Y&Zj1A(#A7F-26iDY,7_F^=&546EpZfL5^fiKQY&>B:_/'*Aa9q-dQrS?(5YFHYUR19\:&%S<$2MSD[EIe+S7>kUCH/g;^-e,NeYnJU?D)cpYEh#C"6'Zh6`<C#ANCK#*1m?!R[ZEkW#Ecb0_mh]lF6sblnq.!Cj1F)SVL"u1`KbnigF.j]4NQ`K.GhYi6LkfEaI?SUsd.fEr7PST6E!t-T`Yf$.1bhn/!JSQ2B0LO`?C1.^ORo/JB\F1X%*<=V$b;tQIu6?#pT:\EcAY?f@s24HK0sE\`__+)#hin/FqH&a"*<3:%O4H9U@k^+Xi6"2cqTLb`ba+4=4hBAj/u\^#,cUk!c2PW</Pd`?C[WN?47:AD^7$K+bCSeSjHSTqUa1<3,E"^5b:F_#DeR2VC`4Y05DK\2]0$j)e-pod*T]'!YfV"!n/8K<5#eY,SSJb/qG-_=LV[j:ob%F39!Wbn&PeJXH+=dn[;6u_Pg84!+)7%ao!Dr;+mWr.,CQZ+J3UtiTRIg0OlM][bI.2XZUurX^:R/2QsiCi-kh1@9B]5:TddZH@W18QRe@"CAg/Nb9rDkPcFA6c'LNWg1$`lQ0c@i7o2_uU&3Hor<n]<Uko~>
 endstream
 endobj
 70 0 obj
@@ -402,10 +402,10 @@
 >>
 endobj
 71 0 obj
-<< /Length 2720 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 2680 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-Gatm>D6K]m(B/c4"WI'ON78ESR$Z3DV0Qc9*OWT0\`mk*S^iUJF2M5q1-h#ZIp[g/*tj4nZ89X'+NNW7a6.aG_Kic-qf.&YmERU2l0"tVcn[2jo/um$`V&s/7\1K,A/)u7h#2]r<o*hG*jAtRY[KWcL\:AdC)U7I^MU30fJ,P42:d-75;1VMo#b&o9eS.9?h7!^+1D*m4usH)1$Rj8'=3S=Vt((Js-t/*pBpU.D=TKm,_&;\@g6h87hV`SPa%hhcG,uD?s?pP0?fU][+j`^/*"CaqVtS?-oBa4b(4If85n0X%SWd9Z)W0<;90-l4s<pjB#'%H%##W[O&6MV8N$"P,ij+6:,Bu8,NJAk`Z9)9dg6*@R;Z9YZb:o1T-f<AhoQ;M%'XYTN!D93D<p3/k_%p/JG=:fFaUl-?IGb$N/gcJ,A(7E/pC0UkJu])I.N@Z^.R]GCKt)HI)ADu)23^Y7(1!ZG"lfDkjBlB!6L#FnX(+-8V"db9(PCV+W09#%P/:(I[B:O[S8TAl9hJ^RR8uSlH5+!HY.K^3Bt?UJ%j4XkGs!ro,JTJ"c;s;iGgRN^iYr2AR)#ML]_eh.M9n?UAlVWh7!S#Cg\6M*_""j_\s+K1`^rq'tgfEM+p4aIOhc9_V-'Y&In]YZ;)K(DXS^m#0`dd?Js1NAK/).%4TU\gU0c%1U-25Y33-BrR<PoL7I;h6RQV)M4HO?8/lDIL0fY$j!./g4G8WT/]sBOagY2PeG2$4)u:Kk-YbFDRl1UU)eWm5Fg/F+`j;gUHf*2X_/;Z=Xug";>kOqpSFB%e8iOZsdX'nCD?!P&W6q8XW4*R&1f/V0p>5=5a)2Jm`7_,kR)\tgX_.m]9+b:#%$mS5chb32,Ahs:).5T>h&E^^)N+"rV5aqGH$[dG(Ma+&9rNMhEgoc6QaDWo4I7t%\e&o?2mPQKdH`DL1s;2c7:"ZOm@%J(j62To7eqUc$]qpTEfXK@A=lpkgp]^,k^77
 S0Xd(R`aXMaHdhgFKq;*_4P-spiB`JQQNq)Kk"]PQ0piD&DLf6?/s:(ndG3hpot"H2MP4t/F\F["+I"[(-7DD$FB92G-5cn&jcZ;@Ngu[sK>kE0.]4,pc*@.%.>fq_XDR]?m,J!/JR?ngZLmZd6sqpflIpHl'Q%9)%XMtmpL@GM`1b-BM9(BUVf6rC>Z\@HmW@ShY1*>OYHNkfec1Wo3XElr2%pY!Mn,kq@S:j"U&rkf^l^EgB!>AR9]Z[M[j`YtqT!ui/u&,t>TX<\?.!ZN1\OWO\h<t/is4No.,**Dq%NlSas57$pH+tEYUS1;coBP091eSS@"OH&,\7it,?c1VE6.=F/O)];&R>c(3O.]jJ[D\*<O$>M%`)*%\e[JMDTrV,CBLT,>NduU*oK==9;r2-(P.dn<bml-69`M`UEY[U)15$`'HmP8s8D7:5Ut1ja?u7WM>%<5DD#>`LilRl'f#aDBA^TsdLAU/$mQC-(O03':1\e5f^<$?=d:&%=5^1O(8pHn39%6)q&m>#0*_4>reGQZS]H^d8K85Nas(LK8VDtWYSi,ZM]d.hk"]PAdmJdC4:9ahjDYlC26MO7=NM:jB(SV1>uqan-@l93j:\BpNa-I6#)dW?<6ce3RnTHK&l<e6<`HF+O`R1Qr(Vj#fe28n'^,@AF@aC^/V\-nEHi[(+bqYYT1P8,XDH5<l-,tDG/.P3,-G:0XTn?&Mu@RYb("g<H%O'tGfaYU'*4neYcA+6b@??r!fqK>OjdoSYZM]8ja9D($2))@,MoM2L8tU$j:/VK3bEZ%OCW#R,.R%0WI(k!q9U+7N%o_lfE*95g(`!`TF`ikIaQh79f5\7kN_c#42&1`kt^HXft(elRj-^cB5Os?5UP[F9G!:<aK@"-N9gZ!'ZdEZNgs<0K>kE0.]3ulc)E.tItb5;0(T6_G63[ukHK^\k*u9h]h;!EQdSe0:bMr5O9=mCJAN"kWdIUO??)3@!!Tm/C:k
 5QMut\=nKf(+[_UP\Wh`Kl)igSKW_JJ`8Cd(Rdo&&Gqo52`>cMNe!32>+Ni.1@R(ue/+/<oL...@n6g>O`D;i!8BM+l6Q@Q.2eeRYc`b<hG!%BTjlDP!6/oOJi:SdZj/goGM&p,9/kTKhV^\>RSVAVHj'Sfli[<+KM2P="aHou'atj0'WCgr@>_LPcHi;\VV(+'V#0`dd?7%jZhu`F/P@B`B'+1LiNL\C;K14L5\uP6ROW!(%(E#A`jJ8@d0%L5+3IT7krqrfiT:WTkWhF*1M)nQ(BmY[4e/!G76-XB%=-Kk(:eefE]P-.j^>Lr]HBQ!co)K+TgU`O@@^Jh=WuDrBPLk]uX.FT&eSV.g?(5qurhDY`r$No'I1(p4'=*Tm=nOp+1M+VQm18jroLP?NkL:`1XOQD94F:1*%Vil5*TjCV,ik@Z(K,_KhT2s6QS\fjO.u_PhgKb@rr2oGs$#6<qW"kFUi)*X(G.<ChdMZCjsgdgeP7,sT5flW=/@h^kM+(bSWNZkLY):Fd.\O?jhoV/*9.=R<n`Dlf*,-TXP"MtWNLad4csb2nAF[)n<",#k6#q?nla++a*4chMJ25U+nW!)$"l=OhXC$qF-/ZS^b#8715T?uQK?$?"5r=2VKeV<5NLSa'#=XL<IQtSc&3FC"*p)]nu_'-?o_&FOq_QW%fce$0DDWV]`~>
+Gatm>>EbO7'RnqH_=T1EWF\=-Qd#(F:$OX)[V<)&...@RYs2JsSX>eY5m(,,ZT61s=(h&WX4s0KW]<eR;KF_ba9K]!H3Bm/o$g9%lVAF3nrWs(4"Ph'o/<"d-b<c$4s*i7ED/f`o1dHY9]/7,cY0)pu:TM`\&0"CX$!TC%*nhC!dVFV)RXt/E.tT_]&Yr>RN8Qf%=`@cf+T@n92bc7h6*#ek`aRUg[cd2%>ibIs%L0=HjAW\&PAlD*e2=DKIEfU*F\1^R\_[_8DdO3V2s^,oIZE/Dk9[mGCOQ.9h7hp#DrS(KRVHjP$]hi(,DU\X>'B;$+H$$^5&igfP5".g.Er28!K0kgVoKcD0T\,K/S&l2C,LcJY<*;dM)(upbN6#AS=;4\p6k<-Qh1]EroLRd?Z,/2X)hZNA1T^Ya/;6'"4LZfj^ApC+V$WMRmKB3ao?<2g2@]Me=\/??&j`[os^02Xq5\+o5.u''+S\i^D#=J5.;p;e+DJ=Z7I(YD/Wq/#$!pZ]ca!@`p1PU$]ZIM6B5OehaNj[B]:ZsUL_I!6m"HeRp#*bZ,#(,',c*J>.2UchP*BIC9e#bqD8$G*+rj]c,5;96cFo9beg6:!nG:n>')?4Umu"a2mC!!kZVCRTi8GG=1hR>)(Xn0&[IQZ25K=
 J$oe/u.oEuG*DgN)#\]n-Ubm68jBM$,,YZL/;/<9!Q$RW7]G,oCWaH]Jnu?&c51Tq*a8kO^84I:#1_emn.TI?Mo($+U0%C/*>#=&QA6_k'f=2+\I4];=EFnLhhal2"7'F<%TpiFF9^3P2%cr=4j#8qeIA?GU^]g[lG.La^AaGKo9^J5]7,""I!_c=!DR!=&nt&5kB$_4V"(*g.:%r$7alPhA^(.%uTBXQ<(JK/B>Xc9;7rt<b`LClT.#,J#f1FN>JPaY=KqMgZd"s60NFY9k'dQ-O*'$.u-;/Kt<%]mfY-Cb=Q=Y%==PKpplAPD+qu3<pOi:,Z/-)I@NGI;:V.^+WF5XHph+r$=OG=J#B/19C*IG;[@MQ&HgK3?Uk#/@OG-A*M0?*r\FWCVHbZ]f/f#=/XK%Nm?U8U>"*H:)`>*pkk"]MtKn@6C^<<&>'+0m#:B"+6r[4CTJ@)O*960mOF0n,M8as$=Eq&BH&b$/2]hJjNh7Cbm?3hY&17XFE)@"8c^.'>)/7't`'kohR\G5X=^JEV<pabdD>$*9+D;8o^#q>`W<fCeWqF),L$<#\Zqg;;n0\q_6DF\)b0\elDlFuk7<VLCbN?\0g=[L%=R$ksibhuEK97j&Od!otM]T>g+!9Y=]Il7LRe*Z#7`F%F$"O5p\)+<"i;EeiIW`6NY7jk-Y?c:JV??rUO;F,X&fEgd9eG5=u/$GIA@=81TWK&k.iR[1lXQ`Ef3k))R&LplIhlDm^4eEs;U3ch8ARM9Xn*$TR=Lp3=F5om&fMR,!`XG\].Kr^>$LmN\rl@:+GRt\s^>qhOZ$'1#/QQQO_*L%9T/O8A2W+,cR6GRE,Is,98VM@NXN2ANcL1.-%GV2i:LFMU[&g\#<gXkDkjt[G$0%eBNL#jhibs:,YZ2^4jq7"ZlVKo7sQ^frA&\ts`'33+g*Y0rgo2lA?3GfNY96J'MXsZ=aW;HQOib0)`S4,[iDo)DD.7o/J770][_&_
 ;Ah1PCD&(O.j'[m;DXXL>NRq):''LJ[d<X3d#<*JJ-p2r?s\Wl?sL8/n5oX@u5O"]3tf7?W@Xb@m*?''mmC(8i>C^O_)!CtG;Kum4u0U59<O)&KjlsJ\LXil)(gTf9>kKq,&q5D&UfZ1O#89$82W,7,$aH8R*TJ-Q4,!GFl<u<1h5QNL:WoujB9tqLJn/>"P>@;@1WMF6.)t]edWm11H8C]9NC8mZ5I2,Li/lOXNo73i@#OM4B0S6K=56dJ4?,C6=5L7'5e\Y"_+q%8`\gS4lfP4P.i2.W43oJ(ZA7;cC(JNqZ_W.BE^l?`Y&3aHR/BV%A%<:B<ho85m]Y"i^g2c"UV"31jSW&8:(;]<F%>RN_+qd&WEI(K.'^qoTG')HEW;ZECf.QS,34QX]Q%;'3SlD:)a@`A;k5%Lp4grhQ>uNe\V9tqGW3qtL%jjPh/hGbSq2E2S@3]FWdU]U@S4"*`7V!W*Efnbe7o&?Gku)@`Q-0Dnlf\#NHogCJVnAL_W4(Y.1-4mg>(#"52s7a+"!QHPMgX-]NE>j5]-;C9Fes.,VHY*SW=PDc_q`E+LnZ9fa?A-npM$5Oi,L@T[lY:b4ME5>"ut&P'ubBqi=R,XF&qs>H@!]mV`iD&8"3]\Q#2sBSBCr/hH!-lqs4-$='PiPS7RnUO&<;:%d&C^'6'>9H?Kc53+pou7ApIZ?^k_j<W~>
 endstream
 endobj
 72 0 obj
@@ -425,7 +425,7 @@
 74 0 obj
 << /Type /Annot
 /Subtype /Link
-/Rect [ 321.288 626.4 527.952 614.4 ]
+/Rect [ 321.288 577.1 527.952 565.1 ]
 /C [ 0 0 0 ]
 /Border [ 0 0 0 ]
 /A << /URI (http://wiki.apache.org/hadoop/JobConfFile)
@@ -434,10 +434,10 @@
 >>
 endobj
 75 0 obj
-<< /Length 2113 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 2221 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-GauHL>Ar7S'RnB3&;!%j5XX@G"Yq3;P9jM@A;tfN4;>.ka)!'LPN971YMYHj=bjF&]>IedD,!SaQg`]no$usfEcgsJO_m4th]IkfMc`F["RrVXf>#Yu^a29W'[2parI"8&bJ-!>I)C-ceS',:2;9\W@iKHhmuY?UN)=3bGqp#1`gP;33LS0,rlFqY2+NR(9PKC@Z#%gk&mheV-&QjFBN_X-VoE)`kcM5K,(UP6^1!/NG!i2,5D1D=;*5cnQg]DX>(8\r6lUVc!ZtipA&GaN]:H"2<Vm...@UD>h<F;:8QF;QS+G4]30pI]W(+En8MuLh5c>j?ud&B]P<Qch;2QOI/8edoo7o0=[3ERCQJ:k=g9V\Sg'!Xj'MOE=s7:X'[FsR9QQ$rr=%T-A!XOIMT9iT#c4S],BHr;3
 "J4QE!HA1o9@5GJgWtu\Fd/RbVo)[^J`\#SW`b$])Arp??pPM]MZ*J3*G$"dg.d.Qn!5_#,(Z9g*BqkDs=VRr",daSXA*=?MFID>CZuHO07Hq_boDgP58<P-(grP'KCk9,4/,#bQb??HZ:-;+FD+@Gg^]q/+JMQ?uXfu+%L',Xt"FJ8U!FB1m+McS1RmD0#Y/q.iW-nM:G)TEMX_6\C(Rik#UUK3]+uldg==MturH\Ft`ZZG.(=5&UO1'9;&FnSj]aiT90L=>dl!`5k<aEQP7!ZYL("9U/I@YPlhlRV;fhUT-PHhWh&';0rBjjsSrW=R,lU3"W>)rX=ou3E4]DE,jGINq$K]ap9"N,(HP*h<;kS]BN\bu)96e7(al$0j8i>Zgtg(B14mY&FJ75LJq#/@mO+1u;7q*%([OH?+K"@I'"dTuGI7.$9#`%c85:6HTMr?bpp*GLfLPO9.'-fbI;?cB)=mFEVTVC3dof4gBVi(I(`hqk3Y<O9\9H^'^kWtc2&*GP?lfbD@bfrlTUiNTR_7D;aN5QOGVjghkh@-0^u#lM+mguq@n:;kU6nO5V4ph],4G(BJ1gYGghY92g!g@it?Phj(:GSY8pf!BoS1_YR4,aaN;;Ib'QRh*i.UVg2p=;H-`-uL-VS6%gA2^&hTQeCc,"/#Z2G<4*b"VVgD*`&%'?/$D/2mWToS)^#jA"8]jGg=ku.Me>&,i5LN(1F*kVU\qI>/^D]/G6Lm,$_Z\a;,MR5%:.(i$TW"[)*DMq'V_u,%lNn=n7kI1(rd`at[gdFQ[J:)DXK:LAVm\%ME.gqXLGL4n+E.E+3&o7"L[N10`Y[j?1i_Z\Qa$@nfpaa8ro(ZhBriDs7AXb4D6S\OB,jkH7PPKQKEj5H+,=FFaJM@(pFqb4^D!mB,937-[QHk*9FE`5=CZKD?IAJH61AfM6c$FkmWh-Of=MNcFX:?`2k`a%+5rD(?m*hpP%'n>Jq>X<Wl$[Se33\\K
 _)O$mEWo=hn`g1ZG,d2`OIZ>r:X7sBm"%h(AcNQ;4ngM>Ws@^.Q\j1MAN0P[W?na1c/obmJ(Oi0mF/fO0-Y91]a>1!C7\J!(JU%QqT6/,r-Oc)\QM:Sb=`=m3p*kQn&C#:oj~>
+GauHMBlD`a)#g+6+U%\h!"H(-.$apKRl'@J,\r>ZR"p9Zka7>THBK8gqt5:^;:\BEXPKQhMRMO;hT&"[c1pL3I.Z$QAN[ccpIC?;9Z-UQpt,3(mo.uHL`IB;1T!Z,+2.LDrM*$3Y\[D[c]663QjJ6nUHRnq`&Ct3S/Hgh(lK%ehiN+\Y':]-qsfnN/&q./i]%Z-9oo1./"-aKkf5MUqLQ^*)AN-o-47+XYY8"i:GYb4A]9P4T37Inql*gb1&a#L+1="K,3!d7rg;/n]dE^"2s^H)@5GJgX-`e/]Fj1'/s,6IeYjoUQFp[2]<ISDF+SXtkCY7+1Tda2.bR"j4-daYiWApg`Da]>VM_'r\2o+`H[GM_lLs@L'T7>sP*/JU.'cnULOlHp5N4\Z9l%EH">r>O%RjM_VtgE==^b5c!J]0-L*@f""cFm.X;-"e8a]<5R)F1NdkaZ1=AE8Urs(5f(r_-$?i9QQBX>j>!b-@VAOQ_[iM;>>bA<BB;q3Yh/Fu2qp0(Hl^PHT@?'*Gm>Hqfe8SCO!aF?+JC5j-_EKVfKo6cmliD>+Y=NkDKI@;Fo%KUCPK1s?hq;3(;oBU-:X]VKo]@VpKI1E\hNm<M">niAeNHQ76NhisQpdo4D7-n:l[;l]WSFtssnM!*3#M7ZsY;UQ"XYp%u?^hPX8,E'[?R6@d;4\u0iOnWuOV8++5Ye@[ZXd9HDM2]Yk("#Wm=I#MYsF`cZo,[TiFXD?5DNQQXGm&-NUh03&Y2*K'r99jWYVd-UD8:>KJ$q#B1*FEZLj)>M!8+Tr0!sOMRM!9gp!&O2]5_O.rt[7ng@b"4C^D*n3dXZV^]O&$QV`JX+J`Xk7=M#M(DRtrc_*S2fS(&q1c3(*qQ%,75?(I/-3H]J@t[Er9!G-`TMHsT?]oIOg,LFVV*/)UP-Z^af'!jBG6tg@C\`f*"2]4[nJp6^i"hZh'ao?P#[?UUnAOUG)-t2)uL=o`,QbcBb8?''$.G
 9)hjhJ()#j`1f9D*^D5WTh;q^qC+!n=pPY92@/7lb>T\6Op\r+^UL.]G7!.lG0D*CJ&L\%@FisQP*ipg%3m^nMA6N9bO[(o,-5;K!(+El"!\^T7L2DeWTMgcB<%VT:2lj!u8ed='Q-lBI9TYM%b#+:830dJfQH6(8VAEsoLqeil*.YRsB*.FoZM%D"+fL9s\drNG#bHEA4h1Pg*XiVqSl#H"r:p>0<T07B3Fae/,;TTYUjGP.K=:=j&p1P`PZ?(4!L6o&0!Ks4gFCsB6,C]2>cT>9J][sp2pl8OUDcIVXU^PY"12`(3=&%oa+a_]L:IpIp7rtW=tDCA7Yqf%MP:pg$dd]>qO-6K`-/s9FtcROfh5@)n-Yok!P0%K%&us>?$&>=EP<&+':"I)Ci])E',l1tm3ntGcDrs;MU&n!lb>%<nc<I@3euEV-I7329YW6a6hrJG&@OrPfPKcM/mnps]Q<*s0Mf=5n&>]rPhl+]+r36IRt`M!=qHiN49VtBTgc%Z@XR9(3p!mTKcmm:[ijf@/UBg[D!s"4*EXQ/f#_GA_DgDm%P6Vlh$o#"Ml&RY#_%2-:V:I(q*%,/J.TI?"ANcldVUcBV"RaX/E3->V7%!0LB&cITXe'iFLNAV-.`.l.UK5q[LVO]\J>M,N`1i9^6R6Hm8H&P2/3Q-=1Qmt2$;:\N\pEiC_G`dlt9`/@^>a5aHm5Q8>)8KH04P,R+Y:V9M\]ECL'Q\WHd,#^8PWbTC,t0%T"61Z*i+]\Z[+8F_uDd4_;+j=cqOqjVlAJMU5$2)Nl3ul:?p$V63%1'c\6KHGm,)bsG;)T]3&eLJ;nnB"+oQ(bLQ"h\kh]5XGS,j0!EqC>4a,H?OhljuB6r)Q,t?m^'<[MM1(6LpmB&]?#0,A6R5HWjUKop8-UuLCdN.(:$A_W/oUfG5Ut?M_"/QPX"H/CnAWO$j?pnmL0gtPu+W/;oCb1.oh\QMdqR(aiPY*[K$;GC=tbrGR?
 CLog'-kGs^'uZaQLilIl-Th6FsMLnq,m[Lj,gQXeX.8/1h'J.Z75%j(\Q"@5kfg2Mo;?Z,?`f0]pK/2JE"-P;7CB!1[HXMZR>2H(-R3RGVeQ\9qNGpa[o2B5(0FGG'6'&%p&Tk>q"o17qh7d,I!nceQc=KDo00Q.">#b->F/C9FX!<rEmr`me[cC6`JO71&h>0.j*g6kU=bS+0pndooE%InVgn1N+UQ)o4>S#:Y<h*31OD!M~>
 endstream
 endobj
 76 0 obj
@@ -457,7 +457,7 @@
 78 0 obj
 << /Type /Annot
 /Subtype /Link
-/Rect [ 303.624 559.24 510.288 547.24 ]
+/Rect [ 303.624 511.64 510.288 499.64 ]
 /C [ 0 0 0 ]
 /Border [ 0 0 0 ]
 /A << /URI (http://wiki.apache.org/hadoop/JobConfFile)
@@ -466,10 +466,10 @@
 >>
 endobj
 79 0 obj
-<< /Length 1976 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 2048 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-Gatm<=`...@3mMI.M>iaOen_]BSD>KN_%DI6S$T@U#Ge_-`P\ce$rlLs%n2Qe$!Da5lo8Ec^DJe:DPeBO^G^g$k&+c!&^B+_B5HD>eUr#p[cuCUTROor<N>Z]J$!pZ!nN03,""7-=Hk2mFcgIe[k^aEa4*7)%to(27*hk_J7lp4MZ>9E!V6IN"Tr65&dl0f@4B6tBc@P%5jSBpt0laE"g6Z'pg4jmGmcGk"rOEac=4c0@4ucOY=1Qnh9cctuX&K9/&d"-m)T25'58g&Z32TX"(*hR$VV8g&XPrs2*W)G]lB9*Eb.gspojANs(H$""`?r*.@F6,]N4TskdDZ;kF<XQH8.=WmQ7=/m)sK\"(]\h-C-!3Y..Dq,i@MfQ(ggGJq]eti7c8"G3%K9lU,Xn<;`+cNHWX%HpPXMtp%8&><(83KR%3K<mu+**-hQ_``!VqY2i977gIn.&q\+2p:!j\*g"Rs;)SF3>moFaR6in&$*fb*U]Sa04s6L?%'5+lFB].1M"O%kVN836o'1W9Z>Yrq>=$g\^k$s*V?Vr9e0oP+,HEHHPTfl/+qsLXusAl-7`DU<KH9X(4f/W=KMl!)i+5g0L>Ti1U$P,nRG4c$K,hIdpJ#`Hab0&#liLe:\o:]&17';<K5[T5_!!"K]`k>'+fVIU'qsW4Vph=>Zn3qS]jI:!G<d<E3C]X2]874pfpsle2(XI4*J4BuOuRPH]u7pN-U^,jJGgFK%-[->4[)eW<+LNM9,<>B4%=&.m"0WCSL5%IDD1<H7>rfAHmeH(u9O@XlW)%gn:Z._dmT\!KAZ-=$amfm2gE+P]+kI3%F(J#!dtO5cJ2K;?oKkdl^l^TEJNQS5obhU)[&U#]*I?\BtE4,Q\P0PZp6g;G!]&]s$c?&f/X'Ta3;laYrad'l"%`(PnDC+Y("qjcm`7?/i
 'mP!X2((6Dc&uP:6[S^a=*0hACL*PC5()>VaaH`.3db%+kU4aHPX0daFgC<0K28EJTeNS1GBRs2T!Pk1aLb&*I'+-[GLb_\R-76p,cm<+9q/juJ$sNnKE1:ua<f1%k3Rd-kO)X-@YG"l]:9Od9&>^+^YosZF[+PIiJ3P:)bRamk3e_a@VH^SKFHXDqWGPWTj1q%/[1c(IAf%gc&X7[uB484YTh14_eUd,<mH>_,d-@XXC"bG5`\ci0-\jr'I[nF'V<dX[k/7%Wl11>(%GJndP-+&c&TZAl"&tfb)<cGs)p`2fmTVA>?BN@?!\%XBK22'[nO/l%Tf@?T=]QXs.Aa2N4tdfOL8<^>2U(GZdSYS)7(F4W&,+>uBW]:_Pg3Wa43gN-ksY\%ifR^c:qTSo\d+!;Q(4LS,6HRn^X'SQ7/0nSOdqbQ,B7%S5:Znf6]EddO+pQEj*ge=R)KmsZWsW?@m&\0Q6hHOFbtK&Z4.:V-m:aqV!\_)XK%o$=_VR\ZU3Dd*H(r9(RKA/:Y0Pb'RCKJB4V;?a>%;g,L\MuL>+)()dMT2I:ZD#9i'kYVf#M&DCW4].ob>++jG"36,,3p+59_qdOk=&K(T#i#S&\d>s>hAF<uR2V]S#@B*\Ablp"f-0[9ZRmUF!?M1*db!cp>0m@fJ:31pjUR*fgVotj'P>llL81FX^,7Pgar&8I_LF7="=h)LUQSG9ocqq9F/"WTjXLt.jP-:lIhc;=Wp7KYV@?L1(O(iRE6$ILeiH)ptKN1h;Cbr`q\q$)A\J2,R8`4dY2'Y)]L=^Cbd?.>5FkNO2p?n`-8*+%h)5#aV)=]aMW@g`@U=ruJ!9,^$>AJ<(!T;'maC=EML5OcRV,tk5:$^%tO+>sOnmrENV:SF6b4`1FR"f%'U2ef_DeT/(\M')(e"Pm-D@^b[uUI1#S#-[_Z4T5%Z)O9%ZQ'sXUBa)&UCU4MoRPpoYlua+X/.7kajF[$>r<pkk(S(~>
+GatU5gMYb*&:O:S#fT!75Vj0)l;f#<]qt*K]'6Zkdq5kHD9>m09<'Ufo(P5O/86M2[Za/,<0YJ7n][CEo4Bn+5F_S>0Ooh:5"p>;9Z(iir%7:3q9$-.i5.3hC!7rS:#;CG?jRBTp@Q?_(rm/nE+85ORJ=[YAtdJc0nh@:(k4b'b$5,i8?*-[E`jt>UfEg_-%qD>Qc8Wih`j>P@9i?9Rce8958T_m7,\7D\<d(9.G+N+08lor=c`l"ReO"[UjimNa#H\IbVU:fqo>*&54Hhf6+"?`%[$F2cO-DG(pRCWiEV[1.?fkt5:$V(O=Wo!D1f?]E%lZciu6-V2G&&.oYG.PEP_ni]n"`5j7blp<SWYM"F1lM;4:$bp"MGSLm*&Hfcj.V5u,WUd_'rf@dmAeV&m\3p2(ALhjBkp.gWFgZ'MU(Q>)f(-HL->+HGURLO?V2@IPTljAKc/Ral?E?6&SW,Mr-!&ADg4O*\V_6bR62/&:ej`la?hdsAE;M?3s.o3@.$U5gN+e<AZf!ZdLN!t&mm*>?*:nnPDh+iWUk814VI/<1K3Xg9/>RB<5ni"0$)a6@Im,LEj_0V?3EfZ7?es3q]M#G&2(CC:rKek=M7,%]q[4NVdk*+L'[pQA4IKRk"52_RbG&PmW:1fcE%7du/P>i#^T/=*If@SLfpCYFLL0!eehs6nqd_oPp!prBQ[N!%(^^q:`KN-SfN"lm>59HD,5a)!^hhesTD^Uq2Xo'aWRcgRe'.%.5BcnfS-:&bgTIQ5S;RGLWNC'm=mX?`2"G;n/>`^HpLo?Qq;g974R2m$GnH2(@RGSfJ\GsNc4,&[WBgJ9-Omba\9Z]]u[!HVF9LoO.3744;ndo%Luh1s=/7:VcK$`pf#>W#[T=B/^`X2]7l(5R.'<Hc)Ih[(2bUY)iemWS@q3la8op8\[O"DUgQ#j<c&24R`V>N#'n.dC&gW58CJHPLO,K<W.47Q'DJ50a8s_b>,NIVjCL0-Ga
 3[tE<1]Q>cVM,W!W]6n;Pb+SN4>Vk4o)^DafQl[rjXc5*&0=qtEd0dm@YaD1<,*oSV`?en/29QUZLnTu[:GlmRKk7P:^Ce)<.ur^!nCred!,L(fmWd[D>a6/eUk6tm6Jc?pJ5%UE@?Fa1[S^3C7jUX(iC%k",6`91jA@UlV7)Sl4GLgEB4%K7eG7"$+0c%6$[f>EY0eHo#&q.lG\Ke^d>!]IVVu17>)o(f\!G>E:!'V>:^d#SZU;2`o5o>VcTrPu`Za5IVaR%]#?3sU<lDr]5Xu';Z%,&kBDN0IK4K*rRdT6[cq-F8;qj`\9K,GuX.>&gTm&e*(1PC`I259;0Joam;3=_fN#oioXKDmFVHosrV(id#N-hSo@i@F!fAd;%id.5tnseYK8`Xr'.kEg@NuFu('fUID3a^%L)9lcDV+-a%SG"3'L_I+84AdGL;&h`fX=BI#PZ$%5T9hB`RkA,-MX!juW1YS*0.g/t0RoYulfc9PJYJVP51]s2/K0k07ugRh92\9MWX";+'i)QJ&V9>HeT3D",5Nk.:bKn(.k*-o?WDa[`u:X)+,:6"j1Ke4Qq+?#Z96hha7p%GC(bfq72s9^e.^8o9^;%R`iAlLRj3X\-n:I?lYqIWIX-djMfaSA`B^O,H<01Fl)EW`\.sF\gF"if0(c9[ZDrt_V`<>/>?.hp9!6KtW:$^BjuBNJh\iq"m4$WNNdP"TID=27LYFs6h%%#Z6-n!jmZ,sd]aFY/(CQbD(l.Ng_=@&_IEB/hI:(p?LGHjLj33&>r+>`YGK<GY*%^JNlp[=6An&RWVOctG1,7.YTBS&6]Rfd_V]TO(@,$IMqJt?oWB=r:&SNo1JHPK&-[9+5)5e1C-Ak";42ag2\D_uune]])1%^5[Tl,i!LE"RSoc67_T!<#a`9Ks1+!>(q[qbtt/V'3h,M"!`p"KJMUnZ-^k-jKSiT:K:r7-DP2?M&[49Pt'NMs=#p5heFofg<s\).1%>l#
 &lf'Ps4H>NkipQm-'pfeZ&]>H6XDf3u1Br^Jq%a1:Jh$j"g$Sn$%bdVipmK<2*@mFI2~>
 endstream
 endobj
 80 0 obj
@@ -481,10 +481,10 @@
 >>
 endobj
 81 0 obj
-<< /Length 1877 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 1812 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-Gatm<968iG&AII3Y\F^BZiUPci5;**S;6.=`bDPh%ooM09+]'u+rHE+UOV/I.>UWRWc`8CYmkAjZ&`ff/GsZPqCiq<),Vo=ruXan6QF;DIJE7#qY(;/0(Bgc['ZDo^Q76cW'J%PYjbcO+heaPgi>qN=l@jq"5'k0*F%\kr8XP0E'esQZ>\Vh(9Kfg/k8[sQ31LDC))""7]kppqYQ.J6<up7HYr^k9n,>>oKj2]^*"F1A0Hf(<cHLc)\dE>6<RsM,;*DWJi"ZhckeNFg3;<RDjp1l8e*)inQN%bV9:-BYH<Z9,jFSS.9B*lXehDg\lC@J]M'"P==W,Yb*D</=tZhce?^ZfVVSD1<"kZPMJc]7EcK*<dJ>l8hFI;Yi8>1pgjgW"159Ggd7YPd8VRRIM)S[YmYA`mXPb)Fk-GF\_uX^@DuhM8NAc+9iIEhA%tgf6#\^!\0J)V'^nPWf?!cS(i.>!f'1TR%rh]8`"FFdcF>"D%jk]bkNjXg7M*sOaq-(^MA(ERnC%9hmLf56BYJK$b=c]l$cmRTZ$u-Vl`9j8\9[e7f,Ld:IEA/noRQtu0VTG#;HAC8D.)\-Q(@IU\+YVlL$@4fYOmun(ea'&$Wbi4M7-0&?NAYHf!:g/ISFEbH68O<XYb%u;2XJ+th0+SFN"L0kW\!c$`jUeB7KgZ8P!nQeehU<\/W-C<C(b%&Q'QTmX))VhH>\3J>@H-8XcAOtL`@mZ6]u7baX/3*kFM3(p1lFN+4"j,Ch*_mQ><m&(36og75!b[85K!k<@\dff$+ts)4IVN;j*\RqVc!aBi:0$h+Mi\ZH6$*QitD72b>]k<P#u:.?N(bC7sk:BjX.R+f1pM(C<S/\>V;q'[1eH^@p/M2EhdiThp!t<`3.l/hn3@lO[[f/EE-iAsaTXZF1sZA:^[p!#s:Al5<$u;\dFlEcWCj:s?ar!Mjf'GFhhi^5S*Qe?;5k5*91Q6R??!g4Oqr3'g&-Ylp$Y@N(_
 6MPh/*-`,T4W$8pE\j%ko=^E6nf5bL_ai'^8ki&W;fXjieY/,3;#[^UgNsWpMNd]?6cNtXb#-NPuV2BiI@NZ??nnEk(hl?\Ker'dMd43a>7p>j>6Dn<;e:`I]`IQYP*BQ\dX)J1HbbE['=9(A;:sTbkN$g!@461.(o8:F&j-0]&`Hq&6`gB8D\fZdC]>&donF5]"qhO&mfMMAA<<9g4f4gcT/F#e(G0ptA741O'V#\Ah8PaFd4%_VhnHVg54VI8_kn=0m^!:6a;n_]bBt3a<6h!6tN$22d8!Y3bSbL50/ifF]bZHn[b/)Nn!DI]0ruu[U<0`^ohn<^UKlNNLi=j%:YD$3E"[aHWJYltAAWk3fnLrh=44N8rHCCmNM(CUG!bqT[V'sp6)uAQ(abA=:bTK'f%@lm;+V6S"43(NtC[cg@1&&"PCW%</ZBh]I<%^"m+!-l.;L#d_QZSM9lD]3(bAY/#X$ScDA:d#,+L_QZ.4VP/][saM(VA\I+XIJWEX_6l?L0Mm?1b2?i[/M@[?fM4.TsuuD[+B\!EH:B=j+,!=_DVWg\J1iGTNp1c+*Z/qsN'H0t9B<c,sIK0c_7>W=R<I3Y^(5,S5RSnb-c1S.jdf3,Q]h^%.Y!3_<1$Opo\g(:Dd'-JIJgmk&jU"=D*ahOU/E%n6983/L?"Sl`UkXR4mbqS]f"<K$D,q=S"[>C]"aO%./CS9k#AI+PrU1rS*tFi5k0.1@DOH&Oi'jY]Ys#,Ute;!uh_Sm`Bs0#M(Hk,81$k\q_gOOo9&oT7E/4H:HgFj;5(>9UZ>h0l39;u'09nZ!I4K!8Z(BVoYNf1F>kp;G<1DOX^"[sh<"nl]Y5EsI5%2"NFfC@+.3/t0*S[$HEq>G//PH2dm_kF/C~>
+Gatm<=`...@G72D>:gU5<W%sShntA^?Z\0(lu#\B5_*=5_G.dri*P)HnV^l@?Z5QJQ)Rf^lDj%fQdD=5Md?J)rQ<%6l/sLO[8;O(7U`JfO_s=C:#?OOClLADu>#P.=j])U"@:K`o?.p5o8mJ>/C%09.T9qKY!pRLJZuD"_gAp?n/+igl@1\0=mZB&Ria(O#Y).$AK/_UT%X>V00feYbh`[oMFJ/_"$,W%oSZa(1/#%Vht?%;c7LsCg7@^g5`5(K6WeT,d<DG>a/GI/sKI>/"r814AEk%%inA4\h;!F<J^<(MMp'2j`TbBCESZ5N'tr;OIO6#i"cG3^l?l`].i7F2k+*'+pN"]d07$j!&rNCk].3ljop&F9a,=B;*?P6]>1)B-=!/2Obc$b.7RPt-M9$kG%]`[##$-6>0;4tho;o60e\[18&!^I(i:h%.cr<*`smL#6fp8;V_FSS6BCpf$A0BWY2^/PRD@r&g3K8_=:^0cDmgY5J<(f$jABo>_ur3mE<YF?X>,LGR+`7c2K='oQ<+_X2,Z"h>c<k#iRL@.K_J;!!YX2FY`f-Z65CD6`^B'8GIT!VE*oLGhmb8]]XY5JifF`^^2*t8.^kS_ARY+<@r7^N==^A(<N7P'=bU$^TD3tA[:"?YQeM$N;JJLZ/<n;s,MXOKj!VQJ'5`,1coB\!BJ>`&Gt?LQT<0:RX+[B`'bFq,jTRi;XY3V[P5E9F44EiXbGs!d-kX*Nk`TJKVa;=*]1uWJKKc\>'ptF0C!D?`@_FuR(/P;X.Os4G0]L?Og7-/$F3hTpf1BR<j(fg#H`/U>!tH.!q<>cBT_Gc(T.?&_npl@8i+XJE<4b!>!%,i9jOI+.-t:9A[Fd`"[HR``kLf2bX^^(G:B35r6\<#a?N<G>Xph]ARMZ#
 bL9_L$^t?RQZVMls9[S#]MLC%21?m?<OWhj;$JDp&8#lqCY%`a@7t":LgX+ju/@JaW]$PF$T(gI6cFEY6i3>]!$d,S&1u1J3M/i?9`1A(3[(f?5!I'dP<AG>lW>CMRPmELK>IIe8b6)5j#\k+J@)+=f<`90`d7rlYTFGsk(:bShk05E:A$,pObh-&OT#Y**&_l^8QZ#(C^:V/[q!X"8hgVpTnQi0qgSn[A`dd!U-[r[pLps,MU/Z_3_269%FLaL?4GEUO2OoR8g5gmX*ph^NrUHe3j'C*_c5.1K0HAJHOfZ\=:%uoX]As$W!_,<'CDn\FT]pV"e"'IQLuV]BAL5HZ0.Vd.R74gK&Jj1O9VE7:0h-aYAb/WZMV#,Z@jE%7nOYpIA@=dmRrO"dG*A(*]Aa(licE5@WC;/K@05U^W">mc".`r@;&fF?=8MnIjUTh%1td`;,aD;larX(g_UHK9KN*t;:[MF9^])BU$J!M&p\DH);8BBak7id\4P7[#(WYN^m@bFq4m8RkN[O[(oW-3q->Eq!'A;q+=YHss[+V>W._doFM6^%4W6VL;r)rcbLMD<KNaI/qISA>HD0*6=o`n0jS[#.%mn-[Ee=J&G!a"o#FMbV1N0&9D".g$b$[`&>$89'UoZ9pjZN30LXrdF32'(`;2YE/T'!O"[2K;iipJ%9(H?q$H_\ts5j8k%I4$RmaNT!?A,HHV"O<L;2GRR=%FXeT-)'QYOSW5aLAU[TM]PV6]../sP*Ce'aeE:4EF\HQe\'<PiXrl`%I,YM#g]9goc+lotZ*qKXMrsF/X[OD_!U@K<]`.uj!eNo~>
 endstream
 endobj
 82 0 obj
@@ -504,7 +504,7 @@
 84 0 obj
 << /Type /Annot
 /Subtype /Link
-/Rect [ 93.996 468.167 577.908 456.167 ]
+/Rect [ 93.996 438.587 577.908 426.587 ]
 /C [ 0 0 0 ]
 /Border [ 0 0 0 ]
 /A << /URI (https://svn.apache.org/repos/asf/hadoop/core/trunk/src/java/org/apache/hadoop/mapred/lib/aggregate)
@@ -513,10 +513,10 @@
 >>
 endobj
 85 0 obj
-<< /Length 2080 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 2046 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-Gb!Sm=`<%S...@0>09,[6mbcu9b0bCBf;D$%EPk<iqo"R,Rrd-a]S)#V_$kXLj8SrjDd'i2a!\_C;8t>#A'>fJRa#]:UuTUB$2kT.;-h5g%;L=TOAW<%A0#*-'7";G_3":nT_$F,#I;BN;2VD.hMU^J\"YDqBSt1j_:g)r@&)3>FWcfVnPr?NI6Q3b[rS6o@XOtM;0)qAnr1%Ze7]=bYkJ(';rjb=?%m`@Hm'#H;nfB3Hr=+.]D&:3L&`n=`(%S-D8p@"7u#p3$U;oiXoO.Tnq6ol(K$=E#hD!<=^jY`d&Q\X4`D"T"RtLKikN]]\M6;0HhlfM=.lJ``S6iXEM`_J>1@OgEKCV/f/=Q7&'<[1T;]p%ARm6Z?1^-N0ojMC+dpL@0p.CF)kR/,\r^AHq@]n.8ei/omnE]q(c;rZou$5=`87]3jBW6Gn:Z&DL$mD@8S<<OO5#0pZ%g?@_j?oRIU/Jc'Bnrq0U#aFaWE.7W<5ioJ-fJ2Jc4.9^lB(6qr7qY%+BMDo7:QXSlJr!7D^<>o4+)<h9YE#:1K[Et7AcV'J&&i.c/FDHW2KE=!"Mn.(2-6rM/od5Y5D1k`hTphU]SGp*j8#_PjlXWC_hW*9]`5s#r1:DhS]JP;ZDi;k'(*[,;d3<3U0k/btdOLrSY3^)3CR532&=Qgbuk@)q:V-O)0:Z*BC2Z31c9X;KR'7&.lmpg1ong>=1MsmF,Pu3@!^8f=hZoQt\+1CL8ig,m1VD$n)5l?Z
 uWs9-T<orr1MpYi6];P1+`FBENe54-X8N(c;oc+biIa?S:`)#n<rduKLL:c2@QbHmS`#.LUD&5nO."4n`I^s_!k48*'m,ITRgQQn"T3O<+!4YsAqR;Wpe5WKV]NR@^709R.GXYe/VpetDBc@PeBrug=A4O=G]m3sIGS?rp[ijKMe8GJ,:Lbp>Z@)3ighi5942eNF8PkE[N]'%UbmZ&l*2q/BU+2gbOs[,UH?7)9\-oXIfXA8thta-KpkhYWr7JK,8?q1f@sblG`-`_;7-$W;WK)j$Nfu4G8Te1.Okmm*kF2CCn2Oc*WKIB.-!S^Abh^]aQe9l!VAJG1got?KOGnT][p28UI;u6$8aT$aLX)E"H>JPB;gl;_Q0CW_(fXLhh;d5]Z$At9cihSBHh=NM`+juDP;i'V0Xi(S5YkkR#4_W&!k0#Q8D6#r#cUd.@UC)e;m.$NaO0C*mcfLnK^!d/:t?u9LOEN[9E-WIK<K/`]C*)^&mQ87E%cB*`U:ubCNUN:R/P5f]q2j_"#lg4:.ND!pFWt0g%5?'8=-LH92!gr/rUu";oE_FX56.r.2j.=C^q$eCTdrF0tdfIa+U0e6e48o-htXLb-$BG_m1mOL2e!Pc=/Z]LPQ[GcoND>cR&U_o/Q&>:c:U&0&$TXT:<^peu'V5@&T4EZSK%_#0J#_KKUaR5EZD#-iSIsJ_Ii?DC,k!Kh,,p'+lmKm3+^4J57?u=(0;o$/EA@CphlY-hHijVcXHNE$9(6?Io4G'at2>&Yrl!R!eO_E"48W&@O&7bAWhmcOF["3q:Gjj0=5@QF'8*r(ZRT]YW4:VjtpS<TN)YaQ!(RV,l'35dR._X4<OFHtkNT*?#jMQt7DX0#X<L/.k)7eM*<qSaNu2X/8DOLH3V!=8@)r.=!:gC9UFW,PD5;TR.o<l$'nH!^69`a(uWJ3^^]hJj]hn7r'Mq@aY=uTY]%>e`bc7A(1iMZ5%;W1CRg_p9,kU%B`Fqhbk
 jK4rf8hKCO*F^D=oq@d^i"hY##&2Q<B^cnDtF<p+9VH!0hYC47I\m&jqCeWY':a$?aMZ3]/b7=R0DF\=RSP,Ge)0,8MW!s$K-*r~>
+Gb!Sm>Ar7S'Roe[&<$WaJ=$op;3q]:kUgSZFm6ju6WFu1:"a8l;&,oQrqE1*k)h46:>0U$:c&b9nm&nMiHLe.e'[LGkh?AY/,B4SOf'F0ZY`qGZq0^L+Z`)qB5/mEk+`H^(C(IYh*mXch6/'XEce&?aMF``'Yb[aM5I+"D><55hm?lMS6pO[/m_8)O^8s'bC<X3fIG/Z=3B'j)t!5g'ZTK=S(N%lqrCX<MQK,f>D=k))-n$4r"K,&f2M'p2Z:<>cuP7A.Y1a6^$'>hh-uTGl$:gV]6+qk[>"7d6afi31-C67"/Zhe5$q"QQTaXa);%<2;oo;3(+mLu'I8hibl![0mq:Z%D_$+ELTDE.,Rrd-a]Pg8V)2\3np'hjkA`EA2_=Z<[@d+F6SaM]+[UWc8;QRT]1/:G03A:W*4'mh<]j4)JIK`35CCE>OBY4!AQbVElI]IVYdehS9N#>HaK(F6JXY7CVAhF_!AB"nj4S69_g")o\&>5@l3Q#:(E<;c(n.UFrR:VYq3<2LY4B>EO\(X'N9[Wp6rL-a(=C6(&L4^]`$2Y266<1gr"J`S_G(lp<.0jJopj(]]imR'jOl>s>k$!m`ljpTqqZlA%^K?;WG^0COm0<SRn+t(]IQ>;e^1t&9?n3IG>3cp;"YZZo9?+V?slBV3)aUaXq4=k@a392P_h:T8_F`uPGgldLXeJTHt:EJ_8,SW9s`^;OO84j@p'?W&oLhT%&$P:msreiT(h99UjTu]fU9#A9WaU;C\`=pTQP'!DIXQn0mK+?Z8ZSc`_>>oM2>C=H!KOX^>C]OZ8-41QRn50%+6be#Aboc!oD$7OF]9QnUXT$)usrq[cb+Vb(7'UL*1aH;aUO6AYWoY//oMCibo['"U/4gKIt&KgMs8!(WSjCK1jQD7_o]eq^Mgtqe^R'O>N#K[@nE;18Anukuu58A1[CLO)q2BF9!)$8(2aN[7f`qJF*X7?t*VV1mhg+l,N=r)t,Rrj74Q
 8gl(WRQBbSYOT&4ed:dlM3'S\1fJU.FlnWtm#86$G<*;A'R$MKZs'C`Z,1qmpJ!H'X-lH,EgIKrPc."8rI+UU<,ghXYrWki/8\X2a9-5**_X7E#Dn0P-2KI$1Ac;2^q5`iIpTlg1mp;X4_t\W8YQ2e99%1P@UnsqlXmOZiM'r^='?2QPg?SRK4O\Chj>s^B8Q-Z&REbGBn\M7['o)rQ%ao>ABGZZ!V!IT8=5a`<fablpOX/[Y_SDkCYaHY'`0&ld;,ejk:XWcF7bGY(,4EB"/<1aQm16WW'u$>m/`6:C+&Zo9M!W"UQ-U7/#"2dt5ZObEXDq4j,cWK_96=:GjLGaA'HZEV,upUgVeG8hV/]TuG2uKrOQcp0"ZL8N/P3r:VX'6^Arjp-l6Wh["Wt=_cc?uqQl#V[TIRjCS\Q4E<MeNhg@U5A6&s=Q\oLV2KNP?1UZ+aJ@Uh?:%Ep)P@j&)qf34-$-g_k"$re]/E@d-#WE5$7ADhV2p[nG2@1Z3EPdQ?WJ*m\PlT`=1i70F&Y'Vb0";ce&gl!1NEVOM,g0J;GA3][&YNHZe?K:kV@LR(&gS.?&9eU#jl-ctLBrP:kKi%t`nlQl[e_<>N!RDTF)af:r4DKC^9^dPV1h>(8+mVP\&O'(%Zg496;YGga0LfR"frUM9&@$fo=tpZc>d/-,MmKPijUfr%1<,,4[=jV.:Z#0g=S>;W8JU#V"3#I#_@`%-LX^q4ao<Du>b\g!!L%?9e!,]Ba%OPJJ000S-_?'n0W#@+mU0V7`p;laH2,i]X9T7@X.Ipc5\(&9J7o'7h[C8BGpJot76-%'.`q6C9rmH3`>1pt<IZlA_iZ7IarGl.p0?CgCZ.Y+6r>FCVo6qeAF8WC;[^HsfDT;YEd#d6%6;Hf6UPW5dT4n7K-a`B83P\ja<8H,'/Xb>ma^OCn^aZS^8EL4;MR!2GP?k&j;O%Ii1E)e]\[J!\X#(dNqc8=CaIZu12.`;%%T\g>0/
 eH;6)`ZX2X[n?`WiI*b9Kfc!,U:`Ud208r4qta/Z(>Mc."aCF3/0.s[CHmN6?_JQD~>
 endstream
 endobj
 86 0 obj
@@ -528,10 +528,10 @@
 >>
 endobj
 87 0 obj
-<< /Length 2193 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 2232 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-Gau0DgMYe)&:NH>&Gd"YW+hC*]-n$,N>!+!d`,Jo7CNf7`8)^jM(0fsm2#ZpNc*EEQ>H;h#dP3lO`P-sbY<$-...@efWK>V`>HO7j9l/E4>r=%1o+"=U2eH^_lT(g&^u]X[G?FHr0LG8CVmT.tfDh,!dXO@U*a81`]YO3X@l$eTSV)aGY'.73m",^)_.Ie4?+Pdt^BN#c"Pb-<Zm?Z:GQaR?nZ7@o;q(22u'8`#4McE>mPr4@?/9X.AD+GiN>I'G<<5eIf/VDRVqOSh@OUb'?>l!"rUXA1"],i>L"+'+@5M!;)e$]Z;IB0[;e,OAQ<iP4@[QQqB)'kirf>q7mZ?&/D>u/U/W6h7Se'-`aps"L`PpaI1[(<1+PFf\mGdr1FPk#@A?4#0%e;Ch5(gm"-35!kUST`H(<k?:\2Z%^G?P%Und@U=XHl&k6<-cT)&]/M-=8#2D^&A!NB9_=.knJ=8EraQ=B8QRiK]+WEBn.l>l^DJtOI#/iQ"c(EQ*&8d93_Y.hTbtuc\`#mLc:H0#cFU@D](&<*eQf:c-/Ag1!1jp"VAmf'l6NHIQ;P$#aOtJ_U]#5)):$B[UVuEQ:fY?kbR_L%MG`L3^%#.WI_+B9SAZTH?SP:Zl$aqK\ZkpA`b_'bsG5L-S>\IH#=k>SR2OIQcR@=f%>V^c@]Z,f)8OtLH7@=rONO90^A9\>C2b[U[=HrhbSL.9>YdW&:@$/8@4+l6Hr_:XY,Ot>F!gq28h$m2.:TT!Gc<daN]OR(=HPu9L51mt=>k]W&CQP<X%ha61:uCo@Tfu6+WJW\s,*Ct="p5b*\I?j^^dfih'P27?i.=AK2a"gn5$4hiU6HSj(oj`t1D>!Q=%Y]i'^DjE`_^;$LO/RkA#QR
 c-?1]^ap=\T-Fdkan3Q<nq-\AKZl%$MM:p.=7eC:1=LXfE/$t4(_8A1eep1LlQ(R"RBG984TNAQn5b3E_Ifm2j=aF^45Q(*/>4ikC*`r]jAs5WVoo9;8Heo&#SX@uHo`m!,Y1knKX[=b,c?T#JQ\%K-]'(YJpT1?5q6luqDg,CN>&956S(b;6gPJ8VL<lCGh&@UfI?F*+Hk\;&FU-?Sch\<?h@X'Z%MPWgHpfG>'O^JQ@cp'(+sq;Vl4V)Z,[eja`('6PX2DM/qP<]J,*`mu:1,[AX/l0gi<s;9De)Yhr`!N9=2/X-R*CaVmTpA'a7Dm`bd6rBQ8nV5WE9#Db]>n%;!3sd@*UHR(%WEt:'Y,Aoh?prO]HZu-K>H?fX,r_/njGMIJ$=(kP?!4`<5,\n0U2VVmVmib%Y_[:hY<+K;9;5:"r&o*mgapKbJ9p\:^9cLdL>uTWPf?e+SD]eEjS(PiMW*o=Om%'TI0GH-]mFn:i@iHhp@aR$34fnV:N<i'K-)MJSq?D2>ea*pbT%c(W*Y@P8+:&e=p:k=(8[%8#d.;tQ9RN5h#6(!:5Z)/AS;aYfsa)mO?s\_(hf_R81@*1,\_r:@6/Eu9a]J!d(&V-+-T"rc-:Rg(^$;sq7eCM)FTfl24M!c&J(VSgd!TKdkLaM]J`%M7GJlt`k:^1g%7.W6W=&Y?BD!A/.lRL,i+fOg*)/K\ZM+="B=3.p`I+@*<S4"6tmcjQq-FkqW;G;mWW^cn?Ai:!_H3'08d!4JRL5^bWZ$H"<;i?R"S,;7424R)ET3TJX;+/NXAS('BAejZ1Dg<Mb%R."d#2IkB3V:kPdN]^]5#gE"FG?sQ"c+%Ll*[G]/i@ao$CQ$S;OpHXak.sm^l.el/J..B4eCgR21&_)GN'mGP9A^:S-EP)+ZsE\YVVdb%/OohqY/cU9ru)'jK`VhY+$tE.-SseW@a?<o#3O@3UcY_j?^h7(f/M'n<csc,+8paT"f/+Yi5V
 7U3TH4I;otQfqemS:*6p*Kc`fE759^[B,7knGF#9GhK:mM4N8Y\1q6"po*KX[uJk]AE!I-[cJPLoF:d(6QMkGG#^!*,E:)FTm6`>c`!\soe>RuN>ofU=5Se\he^],j/To'(Gm/,?=5uXbU3dGgP1#!2X<Bjc2Mt8ihN9b8eXU\U24-utm'Ag6ZTPY]*\j\-]6u*VaoUSOoBY8fq"0%;R~>
+Gau0DgMYe)&:NH>&FpGQW+hC*]-n$,NEm>kd`,Jo7CNe4M7ZD_/#nip[9N:\41\Q^=gB%^7?Fo*M8P`;B5W%)>eFDrr`i98$idCGO\KZ8pO2gZ^&%TDF"-Xld*fd707I':>:rZ(",f50Cq3^$bs!*G;6/O=3[CHD>4/NMO*j:9Z$!o%8Ol"F_lu\]E.'lS<eWdXGbS/$XD^]_pg.ReiDtfRkUIMe*+/$>/2c#i_lZ7i_a84#XZroK:ErM76p`PA/QooM]f]F<b:F79J=d5V.!]f:I,>6u^lqV.7W+9c)\CnWe$CH<iA;:R6fLRDX2(W-.?I+3Wg^p_;b4)cL]hG&6eH:V1`]W-3XBR(dU.L^a9/&';T7XbiPrIG3+hEmm,<#Gg/hu;o+\/NZ_HM`/;bm[G`bKu%gpn:Ycco2[*#f1C;(d-S.(`N_FA?&;D"$#NR3EXF0<\q)CRt(KU3[pUh3AH7d6$<"6]h84UFjh4R0bNefN*bKe?2(re@Bdj1+n<_2(*SmUU`RUG#@`VX>KMbkCqP_7h[EJ<,79a>Fp)M?:C4_i2A`ht)4ZG!4G'bb]aS3jo.6f0lh*fHbRPet-rY(e.W_o0%%7W>Vb<O9nt6i!>^\:;q[NJUbd(2]T+)EViuC/oZ/[N-':k',gkF/[8=nhaX^S$<"r_^"L"0BB$9JJ:4UF+-1VDg^005R%&i,:Vt`m9MAt&J=T;iZU[@1)$embb;r;[^u)'hVN@b2pYF]s=%!GB:jS'$(pu:^BlLG8[EQh#&`W2oDAW@$]7X1DH*E:VG2JS+K]]+uFFEObK6\c0R2OED-0'd()k:$qK_/_SPZa$q=Mlg\LA0VI!s5gGUAUph1`9f>R\hBMM;;[H25lMphm>L%&hbn-$Bo2RI2(Q`e1\Vj1RLs"(7DUpnIFZ5Xh;PoJ)n:HF7f#h@Lj@=S";I\a([V80h3E#=kmIt+N$=.!BM=4-j>u.)4WXq+OTkNa1'\+F#?u
 4;WAfc<M^...@F>p2*mGXG<1nOZi'&%fjX],RgSRqF+&Iqo7./s(CIS:.4I<Oa04uMS>*r[Aghmo4ji=GbETXP0'p0.oqY#[0p`\5[V3Bnm(q+Xa!+$m,(4jGZoqYV&BLga+cdF)C3!mC"ai<5sUq)VBrI&&Z9jEB9=]M$FEfWGFEubO.)V?LLO@mIsQSdMnF5Y,juTZ)K$XnIudrnC,fA3Lu/GAX"FNBA&nuqe!deIiuX!Tg^IAF3VG5#J[[^ls1CnMRU`$S:!o$%1`B"N=")*(V6@FN-.eNuf4%3a1#$W6LMOGc)(rtIn^#NZN.rUP:-VB3F0cQ[$oG3S-4OXa:9eRRXbh<2B#FG<M*Ze`DV,IoN"YiQOblO.JMFB/qaSfG2m0)djK1feiE85Sd*eeFR:)HcRuC4Zjh!,b$m<C&H^NN[QO`r64"6tmcjQq-FjhhtmB2XMYPTFGWP9t,r9X(J!4qhl!U@R:>8U,O$QfBG%m2MjZ_Yj\`Iq<bHsWR3oN%#?ZAT]L]p\MV1#>n92.P30V:kMcMVsP-4+YN1[]Zt(V\rNXa+FlWPdh#`BtIh"8eOF/^cWIR4WQV`k7HM\\h>/jCt?%^IePb?+apYiD[@a([c(cPY.ohX)q1b].%m^J]O5(e"V)4H\+B-n`FrkR2=-`!<3&
 %R.Huk.g!ur@ltQt]Cg"0fs3W"b;a?eO")bc^R55?+1mcDm^AIUYbi-ctXr>4:q@SQ,(noLob+eE:*<c%6Adm9NbdX,^m!o4Fk67>?Rh&9HoM2(>6Tq@hE1dA_BGbi(rlhjg30>tlFl,qZVI0G3mR,&ncQeS@=jV@jelAj\Ps7NCh_dS'l:M61aeQb2flf'N]'5qpS2Z:8=Pp&OH/KUs\PuRpnCi!fD/5Qe/t0*S["^;%hhd!pi;F&=DS-_~>
 endstream
 endobj
 88 0 obj
@@ -551,7 +551,7 @@
 90 0 obj
 << /Type /Annot
 /Subtype /Link
-/Rect [ 250.644 219.801 537.276 207.801 ]
+/Rect [ 250.644 205.748 537.276 193.748 ]
 /C [ 0 0 0 ]
 /Border [ 0 0 0 ]
 /A << /URI (http://wiki.apache.org/hadoop/HowManyMapsAndReduces)
@@ -871,79 +871,79 @@
 13 0 obj
 <<
 /S /GoTo
-/D [66 0 R /XYZ 85.0 619.56 null]
+/D [66 0 R /XYZ 85.0 571.96 null]
 >>
 endobj
 15 0 obj
 <<
 /S /GoTo
-/D [66 0 R /XYZ 85.0 284.526 null]
+/D [66 0 R /XYZ 85.0 236.926 null]
 >>
 endobj
 17 0 obj
 <<
 /S /GoTo
-/D [66 0 R /XYZ 85.0 253.392 null]
+/D [66 0 R /XYZ 85.0 205.792 null]
 >>
 endobj
 19 0 obj
 <<
 /S /GoTo
-/D [68 0 R /XYZ 85.0 659.0 null]
+/D [68 0 R /XYZ 85.0 624.6 null]
 >>
 endobj
 21 0 obj
 <<
 /S /GoTo
-/D [68 0 R /XYZ 85.0 463.247 null]
+/D [68 0 R /XYZ 85.0 428.847 null]
 >>
 endobj
 23 0 obj
 <<
 /S /GoTo
-/D [70 0 R /XYZ 85.0 254.74 null]
+/D [70 0 R /XYZ 85.0 207.14 null]
 >>
 endobj
 25 0 obj
 <<
 /S /GoTo
-/D [72 0 R /XYZ 85.0 603.4 null]
+/D [72 0 R /XYZ 85.0 554.1 null]
 >>
 endobj
 27 0 obj
 <<
 /S /GoTo
-/D [76 0 R /XYZ 85.0 495.32 null]
+/D [76 0 R /XYZ 85.0 447.72 null]
 >>
 endobj
 29 0 obj
 <<
 /S /GoTo
-/D [76 0 R /XYZ 85.0 464.186 null]
+/D [76 0 R /XYZ 85.0 416.586 null]
 >>
 endobj
 31 0 obj
 <<
 /S /GoTo
-/D [80 0 R /XYZ 85.0 659.0 null]
+/D [80 0 R /XYZ 85.0 624.6 null]
 >>
 endobj
 34 0 obj
 <<
 /S /GoTo
-/D [82 0 R /XYZ 85.0 509.62 null]
+/D [82 0 R /XYZ 85.0 480.04 null]
 >>
 endobj
 36 0 obj
 <<
 /S /GoTo
-/D [86 0 R /XYZ 85.0 580.12 null]
+/D [86 0 R /XYZ 85.0 550.54 null]
 >>
 endobj
 38 0 obj
 <<
 /S /GoTo
-/D [86 0 R /XYZ 85.0 186.687 null]
+/D [86 0 R /XYZ 85.0 157.107 null]
 >>
 endobj
 40 0 obj
@@ -955,19 +955,19 @@
 42 0 obj
 <<
 /S /GoTo
-/D [88 0 R /XYZ 85.0 581.347 null]
+/D [88 0 R /XYZ 85.0 567.294 null]
 >>
 endobj
 44 0 obj
 <<
 /S /GoTo
-/D [88 0 R /XYZ 85.0 248.054 null]
+/D [88 0 R /XYZ 85.0 234.001 null]
 >>
 endobj
 46 0 obj
 <<
 /S /GoTo
-/D [88 0 R /XYZ 85.0 196.801 null]
+/D [88 0 R /XYZ 85.0 182.748 null]
 >>
 endobj
 49 0 obj
@@ -1014,133 +1014,133 @@
 xref
 0 128
 0000000000 65535 f 
-0000045512 00000 n 
-0000045662 00000 n 
-0000045754 00000 n 
+0000045851 00000 n 
+0000046001 00000 n 
+0000046093 00000 n 
 0000000015 00000 n 
 0000000071 00000 n 
 0000002128 00000 n 
 0000002248 00000 n 
 0000002420 00000 n 
-0000045906 00000 n 
+0000046245 00000 n 
 0000002555 00000 n 
-0000045969 00000 n 
+0000046308 00000 n 
 0000002692 00000 n 
-0000046035 00000 n 
+0000046374 00000 n 
 0000002829 00000 n 
-0000046100 00000 n 
+0000046439 00000 n 
 0000002966 00000 n 
-0000046166 00000 n 
+0000046505 00000 n 
 0000003103 00000 n 
-0000046232 00000 n 
+0000046571 00000 n 
 0000003239 00000 n 
-0000046296 00000 n 
+0000046635 00000 n 
 0000003375 00000 n 
-0000046362 00000 n 
+0000046701 00000 n 
 0000003512 00000 n 
-0000046427 00000 n 
+0000046766 00000 n 
 0000003648 00000 n 
-0000046491 00000 n 
+0000046830 00000 n 
 0000003784 00000 n 
-0000046556 00000 n 
+0000046895 00000 n 
 0000003919 00000 n 
-0000046622 00000 n 
+0000046961 00000 n 
 0000004058 00000 n 
 0000004193 00000 n 
-0000046686 00000 n 
+0000047025 00000 n 
 0000004330 00000 n 
-0000046751 00000 n 
+0000047090 00000 n 
 0000004467 00000 n 
-0000046816 00000 n 
+0000047155 00000 n 
 0000004604 00000 n 
-0000046882 00000 n 
+0000047221 00000 n 
 0000004743 00000 n 
-0000046946 00000 n 
+0000047285 00000 n 
 0000004879 00000 n 
-0000047012 00000 n 
+0000047351 00000 n 
 0000005015 00000 n 
-0000047078 00000 n 
+0000047417 00000 n 
 0000005154 00000 n 
 0000005288 00000 n 
-0000047144 00000 n 
+0000047483 00000 n 
 0000005424 00000 n 
 0000006221 00000 n 
 0000006344 00000 n 
 0000006399 00000 n 
-0000047209 00000 n 
+0000047548 00000 n 
 0000006531 00000 n 
-0000047275 00000 n 
+0000047614 00000 n 
 0000006663 00000 n 
-0000047341 00000 n 
+0000047680 00000 n 
 0000006796 00000 n 
-0000047407 00000 n 
+0000047746 00000 n 
 0000006929 00000 n 
-0000047471 00000 n 
+0000047810 00000 n 
 0000007062 00000 n 
 0000009221 00000 n 
 0000009329 00000 n 
-0000011260 00000 n 
-0000011368 00000 n 
-0000013582 00000 n 
-0000013690 00000 n 
-0000015321 00000 n 
-0000015429 00000 n 
-0000018242 00000 n 
-0000018365 00000 n 
-0000018392 00000 n 
-0000018583 00000 n 
-0000020789 00000 n 
-0000020912 00000 n 
-0000020939 00000 n 
-0000021132 00000 n 
-0000023201 00000 n 
-0000023309 00000 n 
-0000025279 00000 n 
-0000025402 00000 n 
-0000025429 00000 n 
-0000025680 00000 n 
-0000027853 00000 n 
-0000027961 00000 n 
-0000030247 00000 n 
-0000030370 00000 n 
-0000030397 00000 n 
-0000030602 00000 n 
-0000032511 00000 n 
-0000032619 00000 n 
-0000033987 00000 n 
-0000047537 00000 n 
-0000034095 00000 n 
-0000034281 00000 n 
-0000034522 00000 n 
-0000034828 00000 n 
-0000035136 00000 n 
-0000035334 00000 n 
-0000035647 00000 n 
-0000036024 00000 n 
-0000036462 00000 n 
-0000036702 00000 n 
-0000036964 00000 n 
-0000037390 00000 n 
-0000038224 00000 n 
-0000038764 00000 n 
-0000039146 00000 n 
-0000039437 00000 n 
-0000040017 00000 n 
-0000040344 00000 n 
-0000040644 00000 n 
-0000041495 00000 n 
-0000042076 00000 n 
-0000043121 00000 n 
-0000043498 00000 n 
-0000043897 00000 n 
-0000044360 00000 n 
-0000044732 00000 n 
-0000044846 00000 n 
-0000044957 00000 n 
-0000045069 00000 n 
-0000045178 00000 n 
-0000045285 00000 n 
-0000045402 00000 n 
+0000011445 00000 n 
+0000011553 00000 n 
+0000013743 00000 n 
+0000013851 00000 n 
+0000015580 00000 n 
+0000015688 00000 n 
+0000018461 00000 n 
+0000018584 00000 n 
+0000018611 00000 n 
+0000018802 00000 n 
+0000021116 00000 n 
+0000021239 00000 n 
+0000021266 00000 n 
+0000021459 00000 n 
+0000023600 00000 n 
+0000023708 00000 n 
+0000025613 00000 n 
+0000025736 00000 n 
+0000025763 00000 n 
+0000026014 00000 n 
+0000028153 00000 n 
+0000028261 00000 n 
+0000030586 00000 n 
+0000030709 00000 n 
+0000030736 00000 n 
+0000030941 00000 n 
+0000032850 00000 n 
+0000032958 00000 n 
+0000034326 00000 n 
+0000047876 00000 n 
+0000034434 00000 n 
+0000034620 00000 n 
+0000034861 00000 n 
+0000035167 00000 n 
+0000035475 00000 n 
+0000035673 00000 n 
+0000035986 00000 n 
+0000036363 00000 n 
+0000036801 00000 n 
+0000037041 00000 n 
+0000037303 00000 n 
+0000037729 00000 n 
+0000038563 00000 n 
+0000039103 00000 n 
+0000039485 00000 n 
+0000039776 00000 n 
+0000040356 00000 n 
+0000040683 00000 n 
+0000040983 00000 n 
+0000041834 00000 n 
+0000042415 00000 n 
+0000043460 00000 n 
+0000043837 00000 n 
+0000044236 00000 n 
+0000044699 00000 n 
+0000045071 00000 n 
+0000045185 00000 n 
+0000045296 00000 n 
+0000045408 00000 n 
+0000045517 00000 n 
+0000045624 00000 n 
+0000045741 00000 n 
 trailer
 <<
 /Size 128
@@ -1148,5 +1148,5 @@
 /Info 4 0 R
 >>
 startxref
-47589
+47928
 %%EOF

Modified: hadoop/core/branches/branch-0.18/src/contrib/streaming/src/java/org/apache/hadoop/streaming/PipeMapRed.java
URL: http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.18/src/contrib/streaming/src/java/org/apache/hadoop/streaming/PipeMapRed.java?rev=666587&r1=666586&r2=666587&view=diff
==============================================================================
--- hadoop/core/branches/branch-0.18/src/contrib/streaming/src/java/org/apache/hadoop/streaming/PipeMapRed.java (original)
+++ hadoop/core/branches/branch-0.18/src/contrib/streaming/src/java/org/apache/hadoop/streaming/PipeMapRed.java Wed Jun 11 02:19:09 2008
@@ -127,7 +127,7 @@
       this.numOfMapOutputKeyFields = job_.getInt("stream.num.map.output.key.fields", 1);
       this.numOfReduceOutputKeyFields = job_.getInt("stream.num.reduce.output.key.fields", 1);
 
-      nonZeroExitIsFailure_ = job_.getBoolean("stream.non.zero.exit.is.failure", false);
+      nonZeroExitIsFailure_ = job_.getBoolean("stream.non.zero.exit.is.failure", true);
       
       doPipe_ = getDoPipe();
       if (!doPipe_) return;

Modified: hadoop/core/branches/branch-0.18/src/contrib/streaming/src/java/org/apache/hadoop/streaming/StreamJob.java
URL: http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.18/src/contrib/streaming/src/java/org/apache/hadoop/streaming/StreamJob.java?rev=666587&r1=666586&r2=666587&view=diff
==============================================================================
--- hadoop/core/branches/branch-0.18/src/contrib/streaming/src/java/org/apache/hadoop/streaming/StreamJob.java (original)
+++ hadoop/core/branches/branch-0.18/src/contrib/streaming/src/java/org/apache/hadoop/streaming/StreamJob.java Wed Jun 11 02:19:09 2008
@@ -521,8 +521,8 @@
     System.out.println("  -jobconf mapred.local.dir=/tmp/local");
     System.out.println("  -jobconf mapred.system.dir=/tmp/system");
     System.out.println("  -jobconf mapred.temp.dir=/tmp/temp");
-    System.out.println("To treat tasks with non-zero exit status as FAILED:");    
-    System.out.println("  -jobconf stream.non.zero.exit.is.failure=true");
+    System.out.println("To treat tasks with non-zero exit status as SUCCEDED:");    
+    System.out.println("  -jobconf stream.non.zero.exit.is.failure=false");
     System.out.println("Use a custom hadoopStreaming build along a standard hadoop install:");
     System.out.println("  $HADOOP_HOME/bin/hadoop jar /path/my-hadoop-streaming.jar [...]\\");
     System.out

Modified: hadoop/core/branches/branch-0.18/src/docs/src/documentation/content/xdocs/streaming.xml
URL: http://svn.apache.org/viewvc/hadoop/core/branches/branch-0.18/src/docs/src/documentation/content/xdocs/streaming.xml?rev=666587&r1=666586&r2=666587&view=diff
==============================================================================
--- hadoop/core/branches/branch-0.18/src/docs/src/documentation/content/xdocs/streaming.xml (original)
+++ hadoop/core/branches/branch-0.18/src/docs/src/documentation/content/xdocs/streaming.xml Wed Jun 11 02:19:09 2008
@@ -65,6 +65,12 @@
     -mapper org.apache.hadoop.mapred.lib.IdentityMapper \
     -reducer /bin/wc
 </source>
+<p>User can specify <code>stream.non.zero.exit.is.failure</code> as 
+<code>true</code> or <code>false</code> to make a streaming task that exits 
+with a non-zero status to be <code>Failure</code> 
+or <code>Success</code> respectively. By default, streaming tasks exiting 
+with non-zero status are considered to be failed tasks.</p>
+
 </section>
 
 <section>