You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nutch.apache.org by jo...@apache.org on 2005/04/17 08:51:34 UTC

svn commit: r161630 [2/5] - in incubator/nutch/trunk: ./ conf/ src/java/org/apache/nutch/util/mime/ src/plugin/ src/plugin/index-more/src/java/org/apache/nutch/indexer/more/ src/plugin/protocol-file/src/java/org/apache/nutch/protocol/file/ src/plugin/protocol-ftp/src/java/org/apache/nutch/protocol/ftp/ src/plugin/protocol-http/src/java/org/apache/nutch/protocol/http/ src/test/org/apache/nutch/util/mime/

Added: incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/TestMimeType.java
URL: http://svn.apache.org/viewcvs/incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/TestMimeType.java?view=auto&rev=161630
==============================================================================
--- incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/TestMimeType.java (added)
+++ incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/TestMimeType.java Sat Apr 16 23:51:28 2005
@@ -0,0 +1,175 @@
+/**
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.nutch.util.mime;
+
+// JUnit imports
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+import junit.textui.TestRunner;
+
+
+/**
+ * JUnit based test of class <code>MimeType</code>.
+ *
+ * @author Jerome Charron - http://frutch.free.fr/
+ */
+public class TestMimeType extends TestCase {
+    
+    public TestMimeType(String testName) {
+        super(testName);
+    }
+
+    public static Test suite() {
+        return new TestSuite(TestMimeType.class);
+    }
+    
+    public static void main(String[] args) {
+        TestRunner.run(suite());
+    }
+
+    /** Test of <code>MimeType(String)</code> constructor. */
+    public void testConstructorString() {
+        constructorFailure(null);
+        constructorFailure("");
+        constructorFailure("mimetype");
+        constructorFailure("mime/type/");
+        constructorFailure("/mimetype");
+        constructorFailure("mime@type");
+        constructorFailure("mime;type");
+        constructorSuccess("mime/type");
+    }
+
+    /** Test of <code>MimeType(String, String)</code> constructor. */
+    public void testConstructorStringString() {
+        constructorFailure(null);
+        constructorFailure("");
+        constructorFailure("mimetype");
+        constructorFailure("mime/type/");
+        constructorFailure("/mimetype");
+        constructorFailure("mime@type");
+        constructorFailure("mime;type");
+        constructorSuccess("mime/type");
+    }
+    
+    /** Test of <code>getName</code> method. */
+    public void testGetName() {
+        constructorFailure(null, null);
+        constructorFailure(null, "type");
+        constructorFailure("mime", null);
+        constructorFailure("", "");
+        constructorFailure("mime", "");
+        constructorFailure("", "type");
+        constructorFailure("mi/me", "type");
+        constructorFailure("mime", "/type/");
+        constructorSuccess("mime/type");
+    }
+
+    /** Test of <code>getPrimaryType</code> method. */
+    public void testGetPrimaryType() {
+    }
+
+    /** Test of <code>getSubType</code> method. */
+    public void testGetSubType() {
+    }
+
+    /** Test of <code>toString</code> method. */
+    public void testToString() {
+    }
+
+    /** Test of <code>equals</code> method. */
+    public void testEquals() {
+    }
+
+    /** Test of <code>hashCode</code> method. */
+    public void testHashCode() {
+    }
+
+    /** Test of <code>getDescription</code> method. */
+    public void testGetDescription() {
+    }
+
+    /**
+     * Test of <code>setDescription</code> method. */
+    public void testSetDescription() {
+    }
+
+    /** Test of <code>addExtension</code> method. */
+    public void testAddExtension() {
+    }
+
+    /** Test of <code>getExtensions</code> method. */
+    public void testGetExtensions() {
+    }
+
+    /** Test of <code>addMagic</code> method. */
+    public void testAddMagic() {
+    }
+
+    /** Test of <code>getMinLength</code> method */
+    public void testGetMinLength() {
+    }
+
+    /** Test of <code>hasMagic</code> method */
+    public void testHasMagic() {
+    }
+
+    /** Test of <code>matches</code> method. */
+    public void testMatches() {
+    }
+    
+
+    private void constructorFailure(String str) {
+        MimeType type = null;
+        try {
+            type = new MimeType(str);
+            fail("Must Raise a MimeTypeException!");
+        } catch (MimeTypeException mte) {
+            // All is ok
+        }
+    }
+
+    private MimeType constructorSuccess(String str) {
+        MimeType type = null;
+        try {
+            type = new MimeType(str);
+        } catch (MimeTypeException mte) {
+            fail(mte.getLocalizedMessage());
+        }
+        return type;
+    }
+
+    private void constructorFailure(String prim, String sub) {
+        MimeType type = null;
+        try {
+            type = new MimeType(prim, sub);
+            fail("Must Raise a MimeTypeException!");
+        } catch (MimeTypeException mte) {
+            // All is ok
+        }
+    }
+
+    private MimeType constructorSuccess(String prim, String sub) {
+        MimeType type = null;
+        try {
+            type = new MimeType(prim, sub);
+        } catch (MimeTypeException mte) {
+            fail(mte.getLocalizedMessage());
+        }
+        return type;
+    }
+    
+}

Added: incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/TestMimeTypes.java
URL: http://svn.apache.org/viewcvs/incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/TestMimeTypes.java?view=auto&rev=161630
==============================================================================
--- incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/TestMimeTypes.java (added)
+++ incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/TestMimeTypes.java Sat Apr 16 23:51:28 2005
@@ -0,0 +1,153 @@
+/**
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.nutch.util.mime;
+
+// JDK imports
+import java.net.URL;
+import java.io.File;
+import java.io.IOException;
+import java.io.DataInputStream;
+
+// JUnit imports
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+import junit.textui.TestRunner;
+
+
+
+/**
+ * JUnit based tests for class {@link org.apache.nutch.mime.MimeTypes}
+ *
+ * @author Jerome Charron - http://frutch.free.fr/
+ */
+public class TestMimeTypes extends TestCase {
+
+    private MimeTypes mimes = null;
+    
+    public TestMimeTypes(String testName) {
+        super(testName);
+    }
+
+    public static void main(String[] args) {
+        TestRunner.run(suite());
+    }
+    
+    protected void setUp() throws Exception {
+        mimes = MimeTypes.get("mime-types.xml");
+    }
+    
+    public static Test suite() {
+        return new TestSuite(TestMimeTypes.class);
+    }
+
+    
+    public void testGetInstance() {
+        try {
+            MimeTypes mimeTypes = MimeTypes.get("unknown-file");
+            assertNull(mimeTypes.getMimeType("filename.html"));
+            mimeTypes = MimeTypes.get("mime-types.xml");
+            assertNotNull(mimeTypes.getMimeType("filename.html"));
+        } catch(Exception e) {
+            fail(e.getLocalizedMessage());
+        }
+    }
+    
+    /**
+     * Test of <code>getMimeType(String)</code>, <code>getMimeType(File)</code>
+     * and <code>getMimeType(URL)</code> methods.
+     */
+    public void testGetMimeFromExtension() {
+
+        try {
+            DataInputStream in = new DataInputStream(
+                            this.getClass().getResourceAsStream("mime-types.txt"));
+            while(in.available() != 0) {
+                String[] tokens = in.readLine().split(";");
+                if (tokens[1].equals("rpm")) {
+                    // TODO...
+                } else if (!tokens[1].equals("")) {
+                    MimeType type = new MimeType(tokens[0]);
+                    assertEquals(type, mimes.getMimeType("filename." + tokens[1]));
+                    assertEquals(type, mimes.getMimeType(new File("filename." + tokens[1])));
+                    assertEquals(type, mimes.getMimeType(new URL("http://frutch.free.fr/filename." + tokens[1])));
+                }
+            }
+            in.close();
+            assertNull(mimes.getMimeType("filename.not-registered"));
+            assertNull(mimes.getMimeType(new File("filename.not-registered")));
+            assertNull(mimes.getMimeType(new URL("http://frutch.free.fr/filename.not-registered")));
+        } catch(Exception e) {
+            fail(e.toString());
+        }
+    }
+
+    /** Test of <code>getMimeType(byte[])</code> method. */
+    public void testGetMimeTypeFromData() {
+
+        try {
+            DataInputStream in = new DataInputStream(
+                            this.getClass().getResourceAsStream("mime-types.txt"));
+            while(in.available() != 0) {
+                String[] tokens = in.readLine().split(";");
+                if (tokens.length == 3) {
+                    assertEquals(new MimeType(tokens[0]), mimes.getMimeType(getData(tokens[2])));
+                }
+            }
+            in.close();
+        } catch(Exception e) {
+            fail(e.toString());
+        }
+    }
+
+    /** Test of <code>getMimeType(String, byte[])</code> method. */
+    public void testGetMimeTypeFromDataAndExtension() {
+
+        try {
+            DataInputStream in = new DataInputStream(
+                            this.getClass().getResourceAsStream("mime-types.txt"));
+            while(in.available() != 0) {
+                byte[] data = null;
+                String[] tokens = in.readLine().split(";");
+                if (tokens[1].equals("rpm")) {
+                    // TODO...
+                } else {
+                    if (tokens.length == 3) {
+                        data = getData(tokens[2]);
+                    }
+                    assertEquals(new MimeType(tokens[0]), mimes.getMimeType("filename." + tokens[1], data));
+                }
+            }
+            in.close();
+        } catch(Exception e) {
+            fail(e.toString());
+        }
+    }
+    
+    private byte[] getData(String filename) throws IOException {
+        byte[] data = new byte[mimes.getMinLength()];
+        DataInputStream in = new DataInputStream(this.getClass().getResourceAsStream(filename));
+        in.read(data);
+        in.close();
+        return data;
+    }
+    
+    /** Test of <code>add(MimeType)</code> method. */
+    public void testAdd() {
+        // TODO
+    }
+    
+}

Added: incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/mime-types.txt
URL: http://svn.apache.org/viewcvs/incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/mime-types.txt?view=auto&rev=161630
==============================================================================
--- incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/mime-types.txt (added)
+++ incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/mime-types.txt Sat Apr 16 23:51:28 2005
@@ -0,0 +1,150 @@
+application/andrew-inset;ez
+application/java;class;test.class
+application/mac-binhex40;hqx
+application/mac-compactpro;cpt
+application/msword;doc
+application/oda;oda
+application/pdf;pdf;test.pdf
+application/postscript;ps;test.ps
+application/postscript;ai
+application/postscript;eps;test.eps
+application/smil;smi
+application/smil;smil
+application/vnd.mif;mif
+application/vnd.ms-excel;xls
+application/vnd.ms-powerpoint;ppt
+application/vnd.sun.xml.writer;sxw
+application/vnd.wap.wbxml;wbxml
+application/vnd.wap.wmlc;wmlc
+application/vnd.wap.wmlscriptc;wmlsc
+application/xhtml+xml;xhtml
+application/xhtml+xml;xht
+application/x-bzip2;bz2;test.bz2
+application/x-bzip2;tbz2
+application/x-bcpio;bcpio
+application/x-cdlink;vcd
+application/x-chess-pgn;pgn
+application/x-cpio;cpio
+application/x-csh;csh
+application/x-director;dcr
+application/x-director;dir
+application/x-director;dxr
+application/x-dosexec;exe
+application/x-dvi;dvi
+application/x-futuresplash;spl
+application/x-gtar;gtar
+application/x-gzip;gz;test.gz
+application/x-gzip;tgz;test.tgz
+application/x-hdf;hdf
+application/x-javascript;js
+application/x-kword;kwd
+application/x-kword;kwt
+application/x-kspread;ksp
+application/x-kpresenter;kpr
+application/x-kpresenter;kpt
+application/x-kchart;chrt
+application/x-killustrator;kil
+application/x-koan;skp
+application/x-koan;skd
+application/x-koan;skt
+application/x-koan;skm
+application/x-latex;latex
+application/x-netcdf;nc
+application/x-netcdf;cdf
+application/x-ogg;ogg;test.ogg
+application/x-rar-compressed;rar
+application/x-rpm;rpm
+application/x-sh;sh
+application/x-shar;shar
+application/x-shockwave-flash;swf
+application/x-stuffit;sit
+application/x-sv4cpio;sv4cpio
+application/x-sv4crc;sv4crc
+application/x-tar;tar;test.tar
+application/x-tcl;tcl
+application/x-tex;tex
+application/x-texinfo;texinfo
+application/x-texinfo;texi
+application/x-troff;t
+application/x-troff;tr
+application/x-troff;roff
+application/x-troff-man;man
+application/x-troff-me;me
+application/x-troff-ms;ms
+application/x-ustar;ustar
+application/x-wais-source;src
+application/zip;zip;test.zip
+audio/basic;au
+audio/basic;snd
+audio/midi;mid
+audio/midi;midi
+audio/midi;kar
+audio/mpeg;mp3
+audio/mpeg;mp2
+audio/mpeg;mpga
+audio/x-aiff;aif
+audio/x-aiff;aiff
+audio/x-aiff;aifc
+audio/x-mpegurl;m3u
+audio/x-pn-realaudio;ram
+audio/x-pn-realaudio;rm
+audio/x-pn-realaudio-plugin;rpm
+audio/x-realaudio;ra
+audio/x-wav;wav
+chemical/x-pdb;pdb
+chemical/x-xyz;xyz
+image/bmp;bmp;test.bmp
+image/gif;gif;test.gif
+image/ief;ief
+image/jpeg;jpg;test.jpg
+image/jpeg;jpeg
+image/jpeg;jpe
+image/photoshop;psd;test.psd
+image/png;png;test.png
+image/tiff;tif;test.tif
+image/tiff;tiff
+image/vnd.djvu;djvu
+image/vnd.djvu;djv
+image/vnd.wap.wbmp;wbmp
+image/xcf;xcf;test.xcf
+image/x-cmu-raster;ras
+image/x-portable-anymap;pnm
+image/x-portable-bitmap;pbm
+image/x-portable-graymap;pgm;test.pgm
+image/x-portable-pixmap;ppm;test.ppm
+image/x-rgb;rgb
+image/x-xbitmap;xbm
+image/x-xpixmap;xpm
+image/x-xwindowdump;xwd;test.xwd
+message/rfc822;;test-mbox
+model/iges;igs
+model/iges;iges
+model/mesh;msh
+model/mesh;mesh
+model/mesh;silo
+model/vrml;wrl
+model/vrml;vrml
+text/css;css
+text/html;htm;test.html
+text/html;html;test.html
+text/plain;asc
+text/plain;txt
+text/richtext;rtx
+text/rtf;rtf;test.rtf
+text/sgml;sgml
+text/sgml;sgm
+text/tab-separated-values;tsv
+text/vnd.wap.wml;wml
+text/vnd.wap.wmlscript;wmls
+text/xml;xml;test.xml
+text/xml;xsl
+text/x-setext;etx
+video/mpeg;mpg
+video/mpeg;mpeg
+video/mpeg;mpe
+video/quicktime;mov
+video/quicktime;qt
+video/vnd.mpegurl;mxu
+video/x-msvideo;avi
+video/x-sgi-movie;movie
+x-conference/x-cooltalk;ice

Added: incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test-mbox
URL: http://svn.apache.org/viewcvs/incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test-mbox?view=auto&rev=161630
==============================================================================
--- incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test-mbox (added)
+++ incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test-mbox Sat Apr 16 23:51:28 2005
@@ -0,0 +1,15 @@
+Message-ID: <41...@nutch.org>
+Date: Fri, 14 Jan 2005 16:40:02 +0100
+From: =?ISO-8859-1?Q?J=E9r=F4me_Charron?= <je...@gmail.com>
+User-Agent: Mozilla Thunderbird 0.9 (X11/20041127)
+X-Accept-Language: en-us, en
+MIME-Version: 1.0
+To:  nutch-dev@incubator.apache.org
+Subject: Mime Content Type Repository
+Content-Type: text/plain; charset=ISO-8859-1; format=flowed
+Content-Transfer-Encoding: 8bit
+
+Here is a simple mbox formatted file used for mime unit tests.
+
+Jerome
+

Added: incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.bmp
URL: http://svn.apache.org/viewcvs/incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.bmp?view=auto&rev=161630
==============================================================================
Binary file - no diff available.

Propchange: incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.bmp
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.bz2
URL: http://svn.apache.org/viewcvs/incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.bz2?view=auto&rev=161630
==============================================================================
Binary file - no diff available.

Propchange: incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.bz2
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.class
URL: http://svn.apache.org/viewcvs/incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.class?view=auto&rev=161630
==============================================================================
Binary file - no diff available.

Propchange: incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.class
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.eps
URL: http://svn.apache.org/viewcvs/incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.eps?view=auto&rev=161630
==============================================================================
--- incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.eps (added)
+++ incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.eps Sat Apr 16 23:51:28 2005
@@ -0,0 +1,621 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: GIMP PostScript file plugin V 1,17 by Peter Kirchgessner
+%%Title: test.eps
+%%CreationDate: Sun Apr  3 18:28:28 2005
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 2
+%%Pages: 1
+%%BoundingBox: 14 14 403 160
+%%EndComments
+%%BeginProlog
+% Use own dictionary to avoid conflicts
+10 dict begin
+%%EndProlog
+%%Page: 1 1
+% Translate for offset
+14.173228346456694 14.173228346456694 translate
+% Translate to begin of first scanline
+0 145 translate
+388 -145 scale
+% Image geometry
+388 145 8
+% Transformation matrix
+[ 388 0 0 145 0 0 ]
+% Strings to hold RGB-samples per scanline
+/rstr 388 string def
+/gstr 388 string def
+/bstr 388 string def
+{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop}
+{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop}
+true 3
+%%BeginData:        24722 ASCII Bytes
+colorimage
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+a8Z/=K`;8G_Pj3/an:5b]`3K~>
+aSu;?r.P(SnA1uqWQFgas1JA^~>
+aSu;>pk8YOnA1rnW6"X_s1JA^~>
+aSuMAgZ%Php\XoJrsI1tF,m/uT7(0ridq-Ds*t~>
+ao;\Hp=eHgmIU)KrJggadWKPiW2uS=@=-sas1\M`~>
+ao;\Gn(HRXkj7j5qi1U_d<';fWir%B@!^d_s1\M`~>
+ao;kMkGYGh^WP'_lLXfIrVi&]%ec!CkktAPkg[l'\n\)>JcEOcJ,~>
+ao;qNjeo,d^WP'^kO8';q>:-iQN%HgNf3-!r:]@(c-Nt8V#5fD_#Jo~>
+ao;qKiMEK[^WFs[j6>t$o_84\QN%HgNJm'!rV#I*cdB@=UATTB_#Jo~>
+ao<%PeB?%DWhlVq[D0i4h<48$r;HV`rrVhFcMRVHr8Q#Hc'FOjJcERdJ,~>
+ao;D;e,GXFR@U1U[D0i4gu[noq"jperr/Jg!q_#fqu6p!im,fnQ&kios2"_c~>
+b5W=Xo[62uAq,u:X0o^adb<[CmIKuGqY^<kT)SlaIa.ci#Q3T.cd7r:r.4mas*t~>
+ao<4P`;BH'lJU47^9OQ4XgZ$ge_]KXp%nXdTDnqIebT4GrS[\"!M?9@s2"_c~>
+b5WF[o>I&bQC!o'Q'IZ*Uo_#?bLPG1lga]FrVleirrIi'q>UKoi;Ut%T;@,=_>f#~>
+b5WL[m)0)4&0*,Y86U"mT<#E9bLPD,k3MO1qY^<krhKJoK@BYr#6!Q-cd8>\JcERdJ,~>
+b5VPBm^Drk'DLY@a1/:MV5q#=b15J;oD&4]rh]Vq\%)24!Vt4DblNsSJcEUeJ,~>
+b5VPAlF-MV'UkDTQ'Rf+TrPN8b15D6n+?ANr;NSn!O]E2rrMrErlkJ)d"256s*t~>
+b5VP>jgFmb'al0B9Or=&R]*U.ajf/-l0\$6q>C5irrKL8p\tHne^)RgNmE:V_Z,,~>
+b5VPAii;SL&F\5cYc"@u[(jc6i9U(5rr/qt!r@cIpAY-OrlkM\R/V[:_uG5~>
+b5VP>i2H47&snoLQ^a\J[(jc5hrsV)qu-KmXT&@uM"gWC!9*q%!lLB(JcEXfJ,~>
+bPq\Dp>2\;!>6,)=E97eW3a7]e(s*No(W"XrN-##qM=n>rrD'XcN;(Ordk*es*t~>
+b5VP@f;7j6%f>P1Y,/,)_U%$"nbE(^Y5\OAX7cJmk5EO*RGEGo_uG5~>
+b5VP<f:M;r%@<BJSu8s4ceIOJo_JHgrrL'<p&>$SrQPA1h1>UDs*t~>
+bPq\Do%'&l!=oAS:NhquZbau@iTKY$qYm\u!Q1o0rrD6\cN0EhJcEXfJ,~>
+b5VP=bcKq+$2<5`V5q5Rj7rVXrrJbOpAYBrf>5YTc*tK>s24ke~>
+bPq\DourcaR0f=IQCY(gcJeEoYl=`qiV*9VrR\m0c-<]3JcEXfJ,~>
+bPq\Cn'$(=!=B2dAs01+c/7pbriuJ(S`9AC!r^cgrm(VS^4H=%s*t~>
+b5VP9_T1O5#kulLX1m!Ap&;E"!K$IDrsAM;S?Ttr\';[rJcEXfJ,~>
+bPq\Dn\URJR0]7IRB"!KiUQiSrrIrJq#:Zr]m"=:B=?(![=S@qs*t~>
+bPq\BlbQ9O!=0&mJ#L'-hs:'GrrIoIq#:Zr\54S#3O[8L[=S@qs*t~>
+b5VP2[d)ZJ%K#VG_69]6[DgYTn,!$srrIcFqYpZe]<1)lrri2&c,-c;s24ke~>
+bPq\ClF*&6R1,FJQ'\#<[DgVQm.UCkrrI`EqYpZeZ@.Q.R08e.cGHf:s24ke~>
+bPq\@jgH/a!=]5J2,n^ZUp\.hh<4;(^&J+`p%n[jnYf)3r\F[1=45!kJcEXfJ,~>
+bPq\Cj/i.2rt,)!m+fI]V5LK,`6d9$n+ck!rsFDLlLFQ5d(-g1n,*+eh7gV.JcEXfJ,~>
+bPqY?iN(Ru&=/ZJQ'\#;Y.;Ktg>qVmq>J83$A%d6o(MCsY*4<pqj@PH^:ge&s24ke~>
+bl7hFp>2eRf`;Zh&/d&tFcW2t\AZ_Hi90M"qo&LAJ+E!tp?^2$C,%=;1BThU^T`:h_uG5~>
+bPqY?eu%!t'`7Xnj428aY,8,#]#E%NjmD[8r;Ok=#FBqslK7@&q=ssoijZ7TI]NI!s2P(h~>
+bl7eEpXZ+hR1u*VQ^3o%R%1"V]#E%Mj6H++q>C68rsP**Ko:eFOHc-#R@*o?#*6:"NI7c*JcEai
+J,~>
+bl7eDn^a8]!>PeH'dYh1?$;=(YIVTtg#1uWme$;QbPqs5:b!qD.P!)+1G^c`1BotPZ]'40rdk*h
+s*t~>
+bPqY;bbiefs8*N)n)2I)ZDj[uY.;Hqg#VSoq>:-id/O6]_#OE6qu-Zsrr2os$/rpWGOLpPgpZ^'
+s2k:k~>
+bl7eEo$!WMR2)0WQBmf&R@^4W\\l_Fip6.-p\OgddJj6ZG57L-S?o5_rg=(T`.<("QeC-%mt(M\
+s*t~>
+bl7eCm)t@8!WN?>$Pb*X>&JqUTrkiBc.Ck8lgF?;q>:0>rrK\\q(WF;9L:Kj1GV24J9(+Fg"Wq(
+JcEjlJ,~>
+bPqY6_6;,`s8*Q*n*8r`_Qp)9W3EhMc.:h<oD/=`rmh#Wl(S+Us8N#trr2rtrr2p*rl)`Zkk_$=
+QG.nHJcEmmJ,~>
+bl7eDmD5.4R/i]TQP5[MQ^aYGYdqZrf&,ZZp%eL_rVkFK%-h]>^Uq%d[CErmbcUl4$^d'p>NkpW
+P*N_1qgndis*t~>
+bl7eAkJ25b!WN?@$PaX-3)XXLR&.!s_p$]fj6?%)pA+R_rn.5ilSh[C<)HIe:fh+;7PZbU10qn'
+kk_!8PIl8?JcEmmJ,~>
+bl7eEl*e@IrtYG*n)iBO_R?J@W3EkPce7=Cnb;q[f`(u>oCW%jlFVV!s5eR&s6c3MJcEmmJ,~>
+bl7eCkI-YqR2;<YR$O&'QC4ABYe%g"f\kr[oCr.\rr1[P!J[`PbQ5VPrg=.TY()$&j`mR#mZm^$
+s2t@l~>
+bl7e@j0i(1!?).M'd57q;J(EDUp%AJcI^n4kj@s8qY^<krn[STF%c=?!F.P^1CH%6I=V@ZG,#$*
+Q2H45b5Zt~>
+bl7eEiN1YHrtPA!i6]<IWhu\s\\l_HjmMg;r;Q]PrrUfWrq?@#p:mG$^%7h5p$80uqLS[hs*t~>
+bl7eBhlE'XR1u!RQBdc(S>EC!_p6rqlgXTBqu-NOrrUbr_>DFWaJ]$*%$HmP9t^(hC\?t_eG=ar
+b5Zt~>
+bl7e=h5W?J!>YkS.6gdIIZU5*\AQVDi9'=mo(MqXro!eXei6k1AH?4*r\Fs8C8X\9o:9Ugl^ZK$
+JcEmmJ,~>
+bl7eCfV\,Jrt+qbbIFRLVlmPIcJ%CKq#(-Qrs.DMW9XDi\Gc@*!<2ut&+@K-JWoKfB?p7;Fd8__
+f7EtGs*t~>
+bl7e?f:nVsR0]Il_U%-)p%n[]rrKENk*ZjNQ^3r*SY`Hu_p6rqm.C)MrVl![#MtlHlMn/:_#;Ik
+`hf&jR?!f0J<B6dA^0t7F-WJ[esl[?r1!;G!7&L^J,~>
+c2RqGo@BEHl2_/(8q*PSg[=h7pAY/J!9O:p$RJ8QIZU5)\AQVDhrjCup\OjOrs.AHVX+8e2d-)j
+'OO$Z1G^P%Tmr3lm:4E9Q#W%^NRaNu!VZch!<@ejs*t~>
+bl7e>c)1BErsekoe[VQTXguL%hs:%9l2M+dN:,_qI_<akf)5LH')h4C]pPL<UAsH$rR[;&qtfKP
+JcEsoJ,~>
+c2RnFo?EflR00/#ir8BG!K`#mR1,FJQC=PL\]<1Ukk"`:ruq2pmc0^`]>ATNZF6X!R?rkr[$dY2
+U&X?#rR[2#qtfKOS,WKRnsKL:_uG5~>
+c2RqFmECLnm/[;'ElJ"Frr>sS!=]5J3+Rc6X1?6uguIesl2Mq&L[X8iI(HpY3D*(31G^^7<i_^c
+F.`Krbl-.Sn,)tFUmqAab45Q5[DW#p~>
+bl7b7_Q9g<#5d])WN+)2l2Mq+R@27meukhBWDIT*Z+[*BR&.@.eGf-la4Bq`l\Uj[c@Q#>s*t~>
+c2RnEmD>7YR0',1qs47_Dj&b@"dbOCWQFSmruqB/R*56TY,(fj8PaD_QCtUQV7=:hrq4j_f(T.0
+Lm*M:S,WK>nsKLN_uG5~>
+c2RnBkJ;N5!<O+$q!7q[*nUJt"rpEjVoe2fruqB-Qcf'SY+t`h5qGN3DO7c#Upn(erq4j_fCo72
+LQd>7S,WJVnc8aP_uG5~>
+c2RnFkd\("rr_Vj]^P%`&#=`6pZ&cWdaETIVOFEfc2IYLrUfmZs8W&Vc^WO;s3(Fm~>
+c2RnDjg^WFR/t(slMgnU@F^bJQ^GGOkPl'fIu3p[\"M0uJ$#Q8Vm4JErsJ_sq"XmhrSc%jescU=
+_t08rU;Hq\~>
+c2Rn@iO<Ff!<HQrlMgnM!7_)P)0WXSkPl'eIYdaZ\=_0tI]]H6Vm4JErsJ_sq=t!irSc%iescU=
+C%D?*(W-3&~>
+c2RnEhQF_orr_;Y`qAKo#h+Ukprp"F\+KY!&E0tbh86bXh8[@`hr2c8oS%krbQ!(~>
+c2RnBh6*%4R/k_"rrLMaeX6N+SAt*]rs7)/jnR*)XL@d"rt+.pnD1smgYKlef&5N1h=Q>grrB7o
+R/jY3s*t~>
+c2Rn=goXKE!<E7bkl1[m!7_)P-&fk0k5P_8L?83UZ)k>)rVmGfZLH\d]%c)_`7Nu-bMDfCRf<@I
+o)Sh^_Z,,~>
+c2RnCeYgrrrr_#Qd/*#,%.!qeUWr`#W/7t4ec,RJ&H:1g_Tg>[=au*DK9O6cK91ZabQ!(~>
+c2Rn?eYJN$R/kh$rrK?LeX6N*U!WMtrs\5nTVBX-kbj3De(+Hsrt,1Z\&$>6KirqZD1[qh\q6"<
+rrC76VZEdq[Jp:,Sb&6Lahn(.~>
+c2Rn9e=ekl!<APNrrIcQeH#b+RaCQgrs\8oStX=)l)9?Fe(+Hsrt,1Z\&6P<KNNbWCOqVc\Ufb8
+rr@K=,QT@k[Jp:*$M+8uGf'K2~>
+c2RnAbGOF#rr^NGg\pC:$haFha/5](]'ddpj88i^m`j"nSH&N`rdk*gs*t~>
+c2Rn=bFFsjR/k:irrJ18eX6N*WS745rsSMtS]@S&S@S(3J`?S,#k#s^_OLT'qYp'c!3c!^!3<L,
+!:KEG!8PHkJ,~>
+c2Rn6bE*n<!<@3'rr>mF!<Y]eg%FV0$haFgaekf%\*hIjiqr`]n'B=uRK*3]rpp'h3:d.N0=:`Z
+ea`_@W5ARb~>
+c2Rn;_Q<L1rr^-DkPjZE!l_;0r;Qe]m/-ecp!:muV1JZ_s*t~>
+c2Rn7_O$__R/sAek5PI"P1>s&Q*TNMkPkV&X7#oc!KugHrri#@c+g(CrrN+io9fTn[/U-\nsKLI
+_Z,,~>
+cMn%HlG7`Ro)SkEqW@eX*7Ouk;R,3WkPkV&Wp]fb!KlaGrri#BcbZCFrrN$)o)Shu[/U-%nc8aD
+_Z,,~>
+c2Rk2\@JR<"8fL<n_X9HQ0S8H"S9sa`i4Oh_>f#~>
+cMn"FkdZrLR/lF4rrMUte<pB(]C"JT!L)dFrrhr>c,Q^NrrDHWR/k[BrrC+2R/roY_Z,,~>
+cMn"Cj0rLg!<C%"rrM<`eH#aVBY3HarrJ8Hqu6fkdEfk3n,EC:nc8`O[/U,Jo)Sk$rPJSb~>
+cMn"Fi3(%trr_Pa`qJ9h!P?DLrrhE-c,$?0s2"_c~>
+cMn"Chl`::R/jYVrrLJaeX6N+S&Y!TrrK^Nqu6f[c-=&%n,EC@nsKL>[/U-4o9fT__>f#~>
+cMn"?h6'QF!<>[PrrKM-eH#alLW/T9rrK[Lqu6f\cd0J*n,EB]nc8a*[/U+no)ShQ_>f#~>
+cMn"DeYglprr_#PchZGt"8%0"rVlg#m*F#-NlZeO_>f#~>
+cMn"@eYST'R/l:<rrr>9S<]A+baAR!U!NDgrr_nBg\q-O"mjR]eVqQ;rrC%/R/m&irrA_`R/k.@
+s*t~>
+cMn":eY>4t!<B_%rri4h8K8&[!<Y$EcgT`j"8$uqrVlg#mEs;3MoP5c!-%K0!:R;p!#+r)!,KFN
+J,~>
+cMn"AbGF!mrr^HEg&0e.%f?5)h15"epYX9@\Cli=JcERdJ,~>
+cMn"=bFb'lR/j)SrrVkEN6%ChQDrO3i;X;arVt]&nFZJ4cHWiOMuE,E!3u-`!2d.'!;#cL!8#'e
+J,~>
+cMn"6bEX[O!<F>BoD\j\2TGh#7]4l0i;X;arVt]$nFZM6d*K2SMZ*#D!']uT!$S`L!9!DK!1Uh)
+J,~>
+cMn";_5Z^urr^!Aj8S'<&DV;.@%Xm6a(0LLI!T2PQgoY,_>f#~>
+cMn"7_3pY^R/k:urrJO>a-d$pZf1f@rt*t*<aD9(ZH$I#JpMZJes>jprrAY^R/je)rrCsIR/lQh
+s*t~>
+cMn"2_1E[!!<@33rr?EG!<ZN2htH(0&DV5'>+N(+a's:EG][3AQ1=AD!WET#!<?$)rrB7n!<C?[
+s*t~>
+cMn"5[^G_*rr]R?mJc/G'&IWns8Lc1d]D"!rVWUOk(\fCJcEUeJ,~>
+cMn"2[[*6OR/l@?rrVOtR)bTsQbD\_j8TbKDX%3#gPF=YeGoLFW/9YiM:;"p!:]QI!6qnN!6au%
+!Ls#'s*t~>
+cMn"-[V-6E!<Bk*rrM*\`W60Z]]K"Mrt=1)l2Ub;L=E6Ps8DknM<BMGe+*G<g%#.DJ[GFWJ+E[A
+"o,q6J,~>
+cMn",XiL=;rrT1?p#>uPL#;k/%J8r&QMC9<X7uJH`f.'Os24ke~>
+ci4+HiN/=:R/rfSoD\j%G/]jNa79/hrrIc0rVm?!lb\n]q2q]OqVK8MXRcAkh"$j5i3`La\FZ*g
+X2+ac~>
+ci4.HhQ'<So`5'tp@J:bOoWK&"+eMYr8[eXK&?P,%J8u'P5+j8WqZAIab["grrAtf!<BF4rr>gc
+!<=afs*t~>
+ci4+HfVd?"rr_khdJMu(!rduLrVm*#n("/9\\%k@"SC!_L=q.X`;b>~>
+ci4+EfVFi*R/jD\rrJ::a-d$qT$d;mrrW1Rp\k*rrUA@1Y.2(Brrhu>bD4dBrrC.2R/licrrAkd
+R/k";s*t~>
+ci4+Af:Oqm!<>"Jrr?'=!<WmsdIH8s!rdiHrVm*#nCO>8\@MV="SL-cLY24u!-[o6!91Bc!$1Y3
+!+3PAJ,~>
+ci4+Dc)'I!rr_&Tg\p14!rd]Dr;Qrre?G="j8T&]pX%0oT7R$\s*t~>
+ci4+Ac(13nR/k.qrrI&$a-d$pVV:k+rrW1Jp\b$pq:)U7N8sp;"S^9f[[m$i!4;?c!26e"!;H&P
+!7J[_J,~>
+ci4+;c&sCF!<?j)rr=+[!<XpLf_"5(!rdT@r;Qrsf!(Kuir8r\pX7BsS+HX[7.UEZ'X[l?lgb&V
+Nkk[F~>
+ci4+?_Puh!rr^6FjSn0=%"Q+br;QT]funf\LYi%1"R41U\sJ!J`;b>~>
+ci4+:_O6b_R/kk1rrMUu`gHppZ/YZ?rsXCko_e^dmb,d1_M-kGrrhT2c+0/3rrA_`R/jVCrs&Ap
+oC;MMrosF_jRS]=jhUnH~>
+ci4+4_LW^!!<AV\rrM9_`W60;Yi#37rsX@jo_e^dn(Z*5_Lp\DrrhW5caoA4rr<`(!<>O;rs/Pq
+lJUFZo)7hQ!5%e&!5H>LJ,~>
+ci4+6\?kY&rr]X@m/H#E'^Lm(EcHA\OIjPlZA\;Kkg7W#Per"O`;b>~>
+ci4+3\<`KZR/rtXqk4#UoD\jCK(bl=RZla!&u3._h<ae4r:B+'Cm^WYQFuJ\ir9_YOE5A[G__<M
+a8N<#o(_FqcH_Wjo`"p_nsKKugA_BSk0LfJV4.7K"f&?<cfY,nrrCF:R/m'Xrs\;A]r[s!S>3*n
+cfb;Ys*t~>
+ci4+/[qulX!<<f0.0.ffrrKqap*ft\i;j<*A<XgcmJHbHfY%@c!<[,LjSIm9'^Uj!DJaTQNh+5h
+ZA8#Gl-dr*Ohp\i!9!DK!-Hrp#5,fg?U#V8q>ga;4^s5_p@&"]MXgcJn+cnkdY_6_(^^Ne/5(`9
+r7:mu~>
+ci4+-Xhjb1rrT1?o@EpJr3:TrJVJo<\Gh'Z`;b>~>
+ci4++Xd,@QR/kdorrKNOr0[STr:BphY^658".d<irqQKoj^nFZ"IdC"rO)6b!3G\i'%!5?S=Z=B
+S=?+TG^P$pKo*;<r;Qckg6hs4mJd:Zd'&r-R0/q^bO+m#!57ul!2fVm!qsm8opGlZebn)"J,~>
+ci4+(XAfT*!<ADArrJ&YquHg%q"+LdK)kfM!t&hcrqQKoec>[M"GFe[qag;Z!&=!C&r[D2$kX'[
+$jdKLG'ndmKSHr7r;Qc_g&V34mJd:FMDte.!<WNdIaR`d!*\sp!$V4=!pG4Yo`5+=QM9&3J,~>
+ci4+"VUPF@rrT%Eq18R,s*t~>
+ci4(!UR(eF!9i;>!LAB9R/j;YrrJ49rg<hWan>?,!QK-YR09/0p&:]WR/k%lrrAqfR/k)!rrD*6
+R/irLrrW2TYNM;SW7U\A!3,RX!4i%-!r'['nX0EVmFhMi~>
+ci4+!Si[/S!<C-rrr?:#!<=eDrr>pp!<NLPlh18YV?$Sr"I7C&r>5&+!+YNu!$Uq7!+u',!4pnc
+!#=u&!rSrTk5bT1SFlg].J!Q?;Z-OrlYZst!<FOrg&HR~>
+ci4'kVrjoW!iXrQJcCf2J,~>
+d/O4Ic't*uR/rcRhZ!V#O8PCG^[hC.E06QVYjCu]!N1AFR00>Aq=X<H!7^Q=!;Q,Q!7goF!79Jg
+!4D@s!rg`IjI$"ip&>'iRe)pIc2IYCeXu8t!M/0&s*t~>
+d/O4Gc&!VA!<E;...@G5VFDUY>A$nc8`Snc&UWnc8`Vq>UGPgAq:E
+nc&[gQQkJk!-n2:!V?Kc!<@]MrrW1c&+0H!%'eOdJ,~>
+d/O4G_Q`L-rr_Vll2H86O8j_~>
+d/O4D_O$VeR/j5CrrW"(R/E?Pe+<SCoO+)T`;T9,#`4A*R?t/?r8I47!9itQ!9Nd>!9s=Z!57-T
+!6Og3!U-WER/l%8rrD9RR0;IJs7NecR/rlGg])d~>
+d/O4?_K$Ch!<=V+rrMfqqZ-\YoD]!^!!*+:qssae8,`Ml)6`&q[.44t`UWs.^%)1(a8,`8>2'&X
+HLh(:`A-?Q!3#Sj!64R1"LA(-j[SP:!=R<0s*t~>
+d/O4@\%DC5rrUBUn:CV"s*t~>
+d/O4<\!EK\R/jqWrrLqhqj@HHoD\pCCRNZ@rs3D)R@0AQm/>3#R/rcRnc&U:o9fWJqt^6lWS<g@
+h=U^JrP[W^!:][]!7gY."8)WWUZn0IVYf0KJ,~>
+d/O46[pBI?!<?B]rrL7BqZ-]5oD\p,!!/2Nrr<l7!<bm'kPKo'!<E;pnc&TIo)Sjop%eUf.bat(
+X7ZDnq/$2l!<CjHrrA>T!<_B^`Yn"A!@%3ls*t~>
+d/O44XiL=;rrTLGp4<7(s*t~>
+d/O11Xd/dO!7B['!PW[QR/m'SrrTWQcLCi7n7)Bb"II-urjq]h!3,Jf!57ul!3,eo!W/>?R/lgN
+rrM_oi0aS:o`"p-o9f]Ss4Wt*R/k[js*t~>
+d/O4.X@rir!<A)8rrJPgquHg"nalb^N<"\%rrM9_rW*.>`U!G#o)Sh>nG`Jlo)Sh?q>UKh"PWqW
+hY$mLiATTp!=o,%rr?X%!<X):UBfr_!0>q8J,~>
+d/O4'VUbRBrrT(EqLS[,s*t~>
+d/O1%UmCnG!9N);!M=o?R/j/UrrJIpn,EF9D>oq+SC%!/VXp2U^$u%%WUlMX^%q[.l._U+T_8<c
+l(R"&!3u1r!3Pj\!OUD=R/s)]h>`!~>
+d/O4%T/[&Q!<Bjjrr?d1!<=D9rrHA>n,EEt!<*!%NR7.m,4bg8>4DOl.J!Q?>5A0uaP-^q'(u8*
+a;!M4!'^&T!&X9J!_&@UjoGK%q;)($~>
+d/O0nVW4TS!iOiOJcCc1J,~>
+d/O0nS<s,@!;PFN!J$++R/jkirrJG`n,EEoH2a36V;(hAnsKL)nc&XeRe)pId/!\Af%ZSm[.aM#
+jdt=s!6+X2!WAP[R/j#BR/l@)s*t~>
+d/O0mN$\?%!:J_D!'0oW!*/Ui!F#9errIlTrW*+og%=_'!<A#IrrM`oo)SiKq>UG^gAq:BpAY0.%
+Gh*cDtX,2qZuco!#jku!574gJ,~>
+d/O0`ZL=^k!jLnfJcCc1J,~>
+d/O0`Q^@W<!2eWQ!rc\rr0[Q1oD\jjk3i6MP_B%("0gnbjmnf>jRN6MkOP#@jSAfU_V:IYaS5]8
+jIP+p!87&F!:A7'!6a3uJ,~>
+d/O0_DAE'M!$^;"!W<E'!<@iFrrN)Nmf*8hr;d#(iV:.X!<Bb%rrC".!<Bb-rr?`e!<@<;rrKb>
+h#RMKp&>$>dfBGth>`!~>
+d/O0Qa7lP4!rK\%JcC`0J,~>
+dJj=IZB^mVR/jhTrrM7nqj@HDhZ!V"O8bOL^$bjInsKLQnc&U=nsKLPq>UGugR/&sq#:B_TA5h7
+mIgJZg!c>hZebY3~>
+dJj=GYtPQ'!<?'TrrLaPqZ-]*hZ!R(rW*-+]]o<Rnc8aXnc&TQnc8aWq>UFSgAq;Qq#:BE&)70c
+dImM>T[NoA6J_Zl~>
+dJj=FVqh0JrrV6'qLS[+s*t~>
+dJj:AV3UqG!6sC#!QT3WR/lp;rsAL.R$jA/b4bhKo9fTTnG`L(o9fTSq>UKpS_KP4nbN1cp8.2F
+$`1_olLt,Rq<ZkRV#-P\SGi-\!6*ET!3+fSJ,~>
+dJj=<UFc]J!<@c/rrK%uqZ-][hu<`M!r`3'--G]T?Ln0t+7T:1@e0U#*Vo^9r<q?\!8I>L!U(Zo
+!=Kr]UWVipqsVn.Bc['O!=8Sqrr@#e!<=S)s*t~>
+dJj:7VWt)Z!kd+_JcC`0J,~>
+dJj:4SX8u:!28u`!MFr2R/j#=rrLnhrg<nSf)#EIo9fThnG`Kio9fTgq>UHoqX4F#nsKL8o'cAR
+!4D9`!Oq1`rrVAtS,SfUY4V_oZL+%cS\!SDq#'^9Xmh_YU##a!~>
+dJj:0O<!ln!#G/*!,M!'!#aYn!QY9?!<c]Yp&6Q7!<>scrr=bE!<>mjrrDunf)TCQ!<B@pf)YgH
+rrN*gmf<J_^]+!-"9-/C#6"W'2>$nK5OAIW$<*hOmeG\51@P;E(>]"@~>
+dJj:&XRE(e!iFrUJcC`0J,~>
+dJj:%R$[H5!4DCt!J$*sR/j\]rsnA2U77R9SY<0ug%t`^FT.[2SDX8BS+E$Jc11f7r1!;G!6ap4
+!4MKe!Ls&QrrCL:R/s;Lnc&a`_4$e.o`"o`m[4*go_SRgrPA#l!1VgEJ,~>
+dJj:#HPQ/R!(ZV[!'0HJ!(uSW%cEdT0,b$)*'nMMp]$T\rW*.\h>$aKo)SiBnc&Xb#4hiqJ+<O=
+9(N&a#5RQa!0?UM!@YbRrrh:m"9E--rrN*0mK!>jjSJlWqdo9u!!V3YJ,~>
+dJj9i]_eW,!NGF:s,?u.~>
+dJj6hQ1LCDan,N6raV;`R/kCsrrV5JL%gu;T#[garg<kdl2Bo<R/l18rrDBUR/l.7rrAhcR/j;Q
+rrMVZnX0EkqsOIcmBP47rrDTXR/rf5p\t9mXn%k[SDF3q~>
+dJj9h>mBp%!-n,8!W<Do!<@K6rrUYJ!qu]s%X2"Q!<]1ZqTJF1!4).p!6k!7!3bqm!#bA/!&*X;
+!SRhL!<HEtmf*@;4dYjA!8R#D!=,UurrN!Pnc8^sh>`!~>
+dJj6VeY`?I\+P=PN;nD~>
+dJj6VQLgLEh"1OHj^mkJ!8[,D!r]$Gm[40dnG_&1R/lmLrrC[AR/ljLrrD`_R/k"errBS!R/k:m
+rrDogrrCmER/rl>p&>$GnsKKPh>`!~>
+dJj6U3:d.NW:U#if)Y4>!3>Sg!rR3CmK!EulMR+A!<D0MrrAMY!<D'KrrD3P!<?Nmrr>ga!<@3,
+rrN,jp&>#mn,WOt]_2:)U[eEc(u>4B~>
+dJj6Em&'d`aSUPgN;nD~>
+dJj6BQh-UFnFQY\`c:F7!:fRY!qhG,m?n'tp\r)%R/irMrrBt.R/ioMrrD$KR/k_%rrD*LR/k.[
+rrC42R/l"6rrDZ]R/j>Es*t~>
+dJj6=)=mk/g%54EV?$#b!8R)D!UiJD!<^F5rG(p)!#G)(!,;$*!#"i%!4D@u!0HOH!4q\$!,:6g
+!.=8:!2T8e!9*JL!&37/J,~>
+dJj6UqksGqpY>b!s,?u.~>
+df0@HQLgLET(;m^Vg\$%!2&c\!rRe0m?n*Gg\_#So9fTdnG`Klo9fTbnc&U6nsKL?li-shnsKNa
+rS7DQ\+,jd_t3m.rUQ?V\D@18~>
+df0CFAd7l.!=f&"rr@30!<Ec2nc&Xd5jSLS$eb:S3V*7O8+?NY3:d.N6Lk'UKCT$C_<_+$3q<:P
+5Ps79!))h_!,;')!;Z0d!)MGNJ,~>
+df0@@lDFR^g[TjpMuS;~>
+df0@;Qh-UFZ1@nqLPbJf!4)+o!Ln]-R08iCrr/J[R/kA!rrN+io9fU!nc&U#nsKLRm/I(KnsKNM
+o%X0EU[jfRU&"<[!;l>T!6<pqJ,~>
+e,KLKl5]Br!'ToQ!(6/T!'p&R!+P6p">K$;r<r2t!-n&6!W3;r!<@32rr?!h!<E8lm/I((nc8b$
+hqS/2)Y*n0(%Lnq!;,g_!-?urJ,~>
+df0=&V>gS"r.4m+s*t~>
+e,KIIg[^a4`Ua$0BU/%S!64R/!R5NJR0/fOs6oNH!8[2F!:B?F!8?uC!2f@U!2o/_!4hZg!7'@!
+!;>rN!7UN=!:fWJ!8---J,~>
+e,KIGg@>7EDY!f-'(,c#EUj&0YlO(j"*O89f(&hAWU]uge+*M>U[e?a,4bg8,O>@0;XshgL"lV-
+kj\ZROn/MPg[Y@FS_a<r~>
+e,KIIa/8k;qko#FMZ82~>
+e,KIFa7>Vuf^o+DlsoIO!86rC!rI)%l^7jOrVtXCR/laHrrCdDR/l[GrrDlcR/jhbrrMnao9fWQ
+qqM,NiprK<UAaZ_!93R;!:&D?J,~>
+e,KIA`ps-1T(Ds_i;i9H!28u`!Vdo*!<`V$qZ!D_!<CjDrrAea!<CX?rrDNY!<?*crrMKko)Sk,
+p=oTI\+0P#(]*_&!4VM"!6a3uJ,~>
+e,KIE[&3j(m(%]IMZ82~>
+eGfULosF:X!:9=W!R5QNR/lXFrrKTQl^7mB\c;]Mo9fTMnG`L.o9fWMrpp'hjmnf>cKtQ2f(,4/
+akHapcgmJ(a7900d.<Y+S,D+BJ,~>
+eGfUKn$MWd!719:!O)Rl!<CR=rrJ,[lN%,+\c2VOo)Sk%rpg!gEUs23$N0Jp!5A")!/0_=!1EBY
+!.!;u!/C%F!-Ic2!/^:J!<r5Rs*t~>
+e,KI>Vl'Ipe'3IDMZ82~>
+eGfULm\KHB!Ls&ZrrK6Jn!O3HrUTshFHGgV"I@=4s0VBc!3u%n!4)3a!3Ykl!7CA*!9*;E!4;<b
+!:JS@!5%fi!:KCW!57ul!3=oTJ,~>
+eGfUJkb%GI!=/Jmrr@Q:!<EK'o)A\9l2_#Lbl@]2o)ShTnG`JQo)ShLnc&TKnc8`um/I&Snc8a?
+gA_.Rnc8a@nc&Soo)ShDh#Dm~>
+e,KI4XJc("qmkX9s,-i,~>
+eGfUKk*Yb.!3Phl!KMp'R/jD\rrL_elBqd@huE_Lo9fTtnG`K\o9fTqnc&U&nsKLNmJd4cSb&6L
+VqM(MVt6;VW:9feWUlMX^YJj>~>
+eGfUHidC=u!&O3G!)Dq_!&a?I!Pe^$!<i[:h>dKgo)Si0nc&Xh&+]f%BCZ!%>k.mqk3`0Lq$Q]o
+!$g1s!%%4;!%7:9!%IL?!+=U^J,~>
+eGfULgsr>&!qWG`JcCW-J,~>
+eGfUIgQqH!!5\7+!H+(hR/k(orrJU@l^7mARIC1InsKL2nc&UZnsKL.nc&Tho9fTQm/I(KnsKKl
+gA_0LnsKKpnc&XdRe)pIe(jtR~>
+eGfUEg,S[)!+b[#!$(D-!+tg%!+P3o";$(Is5EML!2&f]!8R,G!136U!%[XA!#P#%!6"F/!++CZ
+!V-<`!<?g'rrM]no)SiQh#Dm~>
+eGfUHc1e.9!p6?YJcCW-J,~>
+ec,aNpW]/uR/kb.rrM\!m[4(*o)A`0OmAD<R%aEWi:<99mIC2Vg%(O2l14iTqjR,E!4D1n!7CA*
+!7KU$!9`p@!8R,E!9`p@!9`/;J,~>
+ec,aMn]_I5!<AAUrrMEcmK!<Ro)A\4l2_#2ReHcdnc8a<nc&T^nc8a3o)Aaa"S2Wo8F6?VMt-lK
+NnXL5_X[^-Vt'ce`:<p/_VG0A~>
+eGfR@^8Lu4qoc0os,$c+~>
+ec,^Ln%S@\!9j%S!RkoRR/lLCrrMFqlBqd@YQ+XHo9fWLrUKmf^[mioReu[U!9s'B!6OU-!5\5o
+!8lN1!7UM,!;#a\!7^S-!;bLNJ,~>
+ec,^JlFl`h!6+R0!P/:!!<C13rrM$XlN%.n7^)jlJb&mC#l=)k!+GI"!<i,errC+1!<@E3rr?X$
+!<B=WrrA2P!<D-LrrA8S!<E8mh#Dm~>
+ec,^Ml*%#b!q3P4JcCT,J,~>
+ec,^KkHFKF!LioWrrKKOn!O3Fqt'gg_K5%2"dbOjs8TY$R/jDZrrAqfR/j8WrrCU?R/l(0rrB@q
+R/lL*rrBh*R/irMrrBk+R/j2?s*t~>
+ec,^Gj0/%T!<_ucrrIrVmf<Fkp%/1aTE+9Y"Vk^ds8Ppe!<>%Irr=56!<=Y?rrAAU!<B+crr>=T
+!<C0orr?L!!<<o)rr?O"!<=J$s*t~>
+ec,^LhPR4N!pZ`1JcCT,J,~>
+ec,^Ih5'Y1!3,Ph!L/9+R/j5WrrJaBl^7pCRa;$6V=U)T_X[X+mIHYF^%)+&_=EuonEg/TVXg,T
+mFqR?XRhh[[IF1rXRhh[]A*@9~>
+f)GjOp"Q,1!<=S>rr?0h!<=V?rr?cu!<jHtci="eo)Si)nc&U:nc8_pnc&T$nc8aEm/I&0nc8a<
+gA_.,o)Sh]nG`JCo)Shmg])d~>
+ec,^Je#0/E"8glMhLY]`s*t~>
+ec,^Fe!flr!57t'!HaFlR/jqkrrIV.l^7m@U##bDnsKL-nc&U/nsKL*nc&Tko9fTMli-sYnsKLF
+g]%<QS+E$JamoB3rL<DH!70F"J,~>
+f)GjOo$W?c!<?<orr=D6!<??prr>"D!<iZZRbRl0nc8`Tnc&T/nc8`Knc&SGo)Sk%rp9Xb'_28)
+dG+[%q$-Ek!.",7!Vlrk!<@r1s*t~>
+ec,^GaLS8L"8gHFm=G:os*t~>
+f)GjOoZ3?iR/kV*rrVq&R.$FCdI[A>r*l#YR08hTlMor9R/l@>rrN(lnsKL=o)AahSF`-KZ0VDi
+SFW'JjkKe8lggGDh=:LFlggGDj4jTa~>
+f)GjNmDrc.!<A#KrrM]mmK!<GoD\jg#jVKp#!]'Js1In'!5A%(!VmN%!<Be'rrN!&o)ShRli-qj
+nc8a(g]%8unc8`jnc&U7nc8a%g])d~>
+ec,^B^>,[e"8B[>q18R&s*t~>
+f)GjOn%P(YR/l=>rrLefm[4(9oD\jNBBtrhR[(8Qs3gJ+!:o^\!7UJ+!;Q-b!:B?F!6"4'!1NJH
+!8H9.!8$e0!:fUZ!8-k1!;G7JJ,~>
+f)GjMlFee@!<Bb'rrL%<mK!=#oD\j>!:'Xh$W=>!s,Z^O!8mAI!0H^O!:B@W!7C?<!,_'%!!Min
+!2\HM!1`T\!8R,E!1iZ]!:/D>J,~>
+f)GjOlE^/_rr_l"^]&faM>r)~>
+f)GjMkH^QJR/m!QrrK]Sm[4(MoD\j.F6f7oQ34o"s2+>p!;lBf!VrG[R/j)RrrCaCR/kn*rrAY]
+R/k.ZrrC"/R/ilKrrC"/R/j);s*t~>
+f)GjJj0B'a!<DKXrrJ;`mK!=ToD\i`!:'Xh&8T&Vs(Cm'!;?$a!Upfo!<=53rrA__!<A\Vrr<N!
+!<?lhrr?m,!<Ec2nc&T*o)Sh4gAc[~>
+f)GgLhPmFQ!p6E(JcCQ+J,~>
+f)GgIh5Bk4!2]8d!Ln]0R/j)SrrJjDl^7pDS'1j3[.9UbrU^$h_=<on\FKS!a7>VumHacPU[jfQ
+Vq_4OZ1F@`ZgdtpYk+7_\D$t5~>
+fDbsPo\656!<=23rr?Nr!<=85rr?p$!<jX%bQ%T2nc8aeoD\f&nGrVcnc&T2nc8a<li-r(nc8b:
+rnRMR4S&RR61FmS47`IQ:YPi!~>
+f)GgIe"s#C"8gWGf7EsXs*t~>
+fDbsPp!TK(R/jegrrIJ+n!O0do)A`AMsHc7QD3"2s/GRW!;,p`!86k0!6k!5!4_Tf!;u0_!3bp\
+!8lT3!1reM!6=X0!WJY]R/kIbs*t~>
+fDbsOn'RHm!<>serr=eA!<?!frr>+G!<r`fSC[`?.ImK>j7N?OTC;j]JFWX>:@\DcpZqhZ3Um+M
+Y20*YrXJH"!-@]1!W<Gu!<@])s*t~>
+f)GgDaJl-<"8B[6idq,cs*t~>
+fDbpNnAt0g!6k'7!rHAmn!O1#oD\mk@[HGL#+CgYi;`hNnsKL5p&>'QSa`$Ihsp^HX7DYYqs47^
+^%%KkWr25`!VuK_rrDQZR/l"3rrDNYR/l1!s*t~>
+fDbsMlGnMJ!<@ZArrMp!mK!<=oD\ji$L7]s$W=%^s8Nf(!<B%jrrKY;n,WNnnc&SBnc8aali-ri
+nGrYAp[%n\n*BZH!86oD!2T/b!8-iC!3t8XJ,~>
+f)Gg>]sXg="7rq/m=G:ns*t~>
+fDbsOlb/VUR/l1:rrM%km[4(5oD\jPB'YlbQ3=Y]s8SSZR/sMjp\t9KS*uaFoC;h\U%4TOkNi-J
+e*rb*]^Ge%rn4%>p&>$InsKLHnc&UEnsKLMgAc[~>
+fDbsLk.GC!!<BCrrrLCFmK!<noD\jA!:'Xi&88N6s8N>p!<G4Zp\t8i#4DQmiUQpJ(@hJ+_X%4%
+OmiAP=T7dh"9"o1l1P&VW:Brhf(&b?Vt'igj4aN`~>
+fDbsPk-E1/rr_Vh_=iH[M#Vu~>
+fDbsNjKb*CR/ljMrrKoVm[4(IoD\j0EpK+tQ^GV[s8SPXR/t;+qYpTf]C)'eT^_s]S+;sJYPRVc
+!:90B!PA0urri;TX-oaTrrC14R/rlXnc&U1o9fTPg&HR~>
+fDbsJiNYlD!<D-NrrJYjmK!=JoD\id!:'Xi)199es8N2k!<I0<qYpTT<UKkf'Cc#%#P%lr3:cG9
+!71*7!EJ[\rri1p/HHd^rr@<8!<ET,nc&T5o)Sh,g&HR~>
+fDbsOhPf_<rr_D\bl!%lM#Vu~>
+fDbsLh5?V3R/irOrrJgCn!O0Lo)A`dId<C+R%2Cqs8Sb]R0^"NoDSIPgUWjAR/jV`rrAMXR09;,
+hs0Y+mf<%TrrAqbR0'8;r:^-llGo\!R/j\frrBIuR/jJ\rrBFtR/jYJs*t~>
+fDbsHgSGn^!<<i)rr?m'!<<l*rr@$'!<s^+bk(l7'CZ#.32Y^2maS%0$1.`n7.C3V"RuKq)0rF/
+eb[ktjnJcT,4>O6+e/6#rr`8DFW:;\!(lh_!(ZV]!'9WL!(HJ[!(Y`BJ,~>
+fDbsLe><&@rrUrOf7EsWs*t~>
+fDbpHe"?6"!4DCt!J66uR/jYcrrIe1l^7sCU=]ADs/=D7!6=U/!2ASC!64d5!6abt$_b2]iTT^q
+k1e+jU&15Xan5T5U%=ZP`:3d,U%=ZPak?]E~>
+f`)*Rn^<^-oDnq]o)A\OmK!;Wo)A\Rl2_)CSC[Q:s!H1q!-I`1!#O_t!-7i6!.XA:$PZU&[Dp_A
+^nlQX'`.n2H1_+:(@qP,D".H)'_;>*GhN+I~>
+fDbpFaf)0<"8Bj:idq,bs*t~>
+f`)'Qn]@6kR/k>"rrW10Qg^=BaRfE5ra_>]R0/nCWo3mV!3t"@!8I#C!3>4L!8@2I!VW)>R/l%8
+rrD]^R/kn0rrDZ]R/l'rs*t~>
+f`)'Olc=hP!<@?8rrN'+mK!<3oD\jj%I4#s$V[PUrr2s^dfBHEnG`J?jT,@Vp\t9Y$eta_W:g/j
+jRN<OSal^[ipm*MWS.<%~>
+f`)'QmCog'rr__t[H`>CL];l~>
+f`)'PlFrVVR/l%6rrM7nm[4(1oD\jSAa>`dQ^5&Brr2u?e!U4(nG`L%jd?,:pAY-7gmJ02p&>$N
+nsKLEnc&UInsKLJg&HR~>
+f`)'Mjh5^+!<B%hrrLaPmK!<coD\jE!:'Xf'kk#8rr2tCdfBI!nG`JmjT,A3pAY,<g]7E-p&>#u
+nc8a:nc&Tonc8aFg&HR~>
+f`)'Qjg;\!rr_Pc_"*'VL];l~>
+f`)'Nj0Y*CR/l^IrrL/[m[4(DoD\j2EU0"pQ^PYWrr2uYj-]n>o9fWMrp]pfgZFn)Sc8?_!W/eO
+R/rlXp&>$:o9fWLrUKmfbk%5&T@j0o~>
+f`)'Ihm6V[!<CdDrrK"tmK!=?oD\ig!:'Xf*.blgrr2u.irK,ko)Sk!r:'^dVWIm[$iTf!!VRhr
+!<ET,p&>#Do)SjtqXORcJb&mC&,t8^J,~>
+f`)'OgT/Mrrr_2UbP6YgL];l~>
+f`)'Lg8^J2R/rlXoD\ihIIER)Sc86\!N(;2R0/bHbOkf6!W/SPR/t@6o9fT^n,EFaTBDUBYk7qr
+l^cq$!3c%p!4h]h!3Pbj!4h]h!4(8WJ,~>
+f`)'GfVh:3!<EW-oD\f6mK!=srU^$hFQrl/.?hpArr3#m($,GsF[5O!!''HI!UpZ`!<>1QrrL@P
+hZ3^:o`"nho)ShJnG`Jbo)ShUf`-I~>
+f`)'MdA>Wsrr^fLebk!uL];l~>
+f`)'Jd@litR/jJ^s8RoDR/jJ^rrIk2l^7j@V:GA>rrCC-R0(G/TC\HN_X@F(dc["u`:O!0hj`Pl
+!5eC.!2f@U!5\1)!2]:T!6*UjJ,~>
+f`)'Dd@)ZZ!<>4Prr>LU!<>4Prr>@M!<Y<SeFNS<!/BV:!d+DQo)Si)mf*9Ik5bR"oD\io"lKC]
+B_;<)+nG^7B(5g#*qKC4E7k2@~>
+f`)'KaJe^/rr^BFi;S<-L];l~>
+f`)'GaI8FeR/k1rrrHhun!O0oo)A`&Q0Xh?Q)rm?rVlopV!49LRahB-nsKL/mf*=dZ07SUf^f%C
+i1/bo!7gcB!;Q,Q!7gW>!;H&P!86$)J,~>
+f`)'@a+b/t!<@!-rr<c$!<?s,rr<Vq!<Ylnh=pmJ!V.5p!<WIgs5!5H!1<3S!W"tC!<A_^rrKD3
+i;iqEp&>$[nc8`Wnc&UUnc8`af`-I~>
+f`)'D^9[X8rr`/2[HiDDLAuc~>
+g&D0RmCnqYR/kn2rrMIrm[4(,oD\jUAEoQbQ*oiTr;Qf^SElRGUZ;CSh=?s6l0\KOqQK.O!:97U
+!UQcER/lIDrrD0OR/lLArrD-NR/lX,s*t~>
+g&D3QkIka;oDnr_oD\jN!:BjfSFca]g]6X@"9r/>jS\rU!QbZ6!<a:Os8T.j!<C7/rrM[NklCe2
+nc&X:-K5%+`qB?3^@D:)amoB2]CGt&db+SM~>
+g&D0Rk-Vk$rr__k^[m$VLAuc~>
+g&D0PjKt3DR/lRErrLA^m[4(@oD\j5E9iqlQN=kiqYpTPSF)^F]D)=)!6Xo$!LioPrrW)<Rd?FC
+SGhsW!rL*/jd?.<qt9shdIWb,S,DgV!7:>*!M',@s*t~>
+g&D0MiNl_Z!<CF:rrKA)mK!=4oD\ik!:'Xf'm[RYqYpSr$1.`o=7#qd!.4;<!<i,_rrVk8"RH-i
+#lF,k!q^^BjT,Aao_&4aNUm/O"o%Qe!/g@K!=AYUs*t~>
+g&D0PgoJPqrr_;Yb4gJeLAuc~>
+g&D0MgT-V3R/rfUoD\ioHLI7&S,MsY!N:D3R0/eGb4GH/!UHZQR/sPTr;Qc*o9fTYl2LhO^n0t^
+!3Y_h!qO:#l'VUB[Fb'N!5A&m!3>Vh!57ul!3XrRJ,~>
+g&D0Hfr@U8!<EE#oD\f@mK!=mq=FUdGNo22-'679q>UK@,Ob^742Upq!(uh`!%dC7!mkBdmK!;F
+mJd7FD%#S/!X;,_o`"nso)ShDnG`Jlo)ShLfDg@~>
+g&D0NdAGHmrr^fLeG=arLAuc~>
+g&D0JdA*$"R/s):o?RH"Msm&6XRcDkM!LH2QDN()q#:Eme#)f+!hR0iqYpPjo9fTlkPkb`i6/U/
+URq+G!5e(%"8UWZT(&-NR]=3Zq==OcWq2VY^[V7'WUlMX_Ung<~>
+g&D0Dd@N>i!<=)0VuSjG!<=hErr>LQ!<Y<Sddd,4!qh^"o`5+'@)VpA!#bA/!*n^e#PG?O9e%(k
+!qcQoBC#R"nY&Yen,WXo/7kaKo)A\@o)Si!nG`J;o)Si)fDg@~>
+g&D0Ja/7mqrr^6ChYi$*LAuc~>
+g&D0Ea./KpR0/bWh"g[D%K>P9[]-!jS=upmbN8\qrt>:pf#>,#URmsCSY;p^\]3+Zq31i/~>
+g&D0?a,MCD!<Z-"g@Y+=%K+(r8LbP^#SegeJ%k`Ort>4NQu>VQ)\*)S$Pjm?;0%i3nWX!'~>
+g&D0D]WUV"rr]d?kPg&4LAuc~>
+g&D0@]U5%aR0/bajns]0LAuc~>
+g&D0;]QP0k!<Zl@iV8!(LAuc~>
+g&D0=ZG-(3rrT@>nU^^os*t~>
+g&D0;ZB^lWR0/hmmJVV9LAuc~>
+g&D07Z<@X7!<[M\kPKi1LAuc~>
+g&D6B_PXWho;hlnpSZ40JcCH(J,~>
+gA_BUl,'3^QBnS>"Ibh'o_sFALAuc~>
+gA_BRjMIL+3"W+k":L(0mJVV9LAuc~>
+g&DK[p#t5Y_mZSAXMNihZMt$hVUbTqs+UK'~>
+g&DKXn`JWR_mZP:R$Eu+ZC(f^U"/phs+UK'~>
+gA_W]p?U_ld)38hQ$cO[$aKd8+e$pOJcCH(J,~>
+fDkmM&,c.fiml5f[B$1%YJ/KNqml_/d&Z%%JcCH(J,~>
+f`)Q_rVQB\l/:+8^pU2:S<oM,QaiFcQE/j<JcCH(J,~>
+g&D`br;-0Ym,d'Rb.tEaS;_So3ueI8!<YQdg\$-tL&ZZ~>
+e,L-]rVQB]m,HU>^p^>AVl[DIe`68u_#FML[HIO?s+UK'~>
+eGg'Yr;-0[n*/c]bJ:QeU77MKQ3!><^R51h[H7=;s+UK'~>
+ec-Ear;$'VmHWfie]Yb9WgnrlA5>02&-foN"'r=npjrI!s*t~>
+cMnXYrVH6Vkht%9_RH\GVQ@DMe(j6Wqo8X<Y/'N*JcCH(J,~>
+d/X.F'`In&na,Dpf$)"?XehPSQBdc$Q^>[Z".6mirIP!&s*t~>
+df9@H(]F:.p@7J3inW)-_7-P>OEk/+4"VEe#0$ZGG/*29JcCH(J,~>
+ao<.UrVZE[khah3^p^DDV5^lCfAl5hp\W27!iO67JcCE'J,~>
+bl@_B(B+1-q"*n7gsjK^[]QBtR?j,(Q^=#,bF&I%bOPR_s+UK'~>
+c2S^]rVZNep@@V6iS)c'^p^A>P_*RB2'j+O$O4fU",b7er.4m%s*t~>
+`;^VPrVQB]lep=:^p^>AVQ.#?e)p8rqtne@!iFNEJcCE'J,~>
+`r?hRrVZKco^D##e]Yb:X.u2QQBdc'QC?-f"/49>rdk*'s*t~>
+a8[%VrVH<]na5T$gsjK^[Aog[IqqqD+V5"c#13GRRaps,JcCH(J,~>
+^AelGqtK[Ij4MVn\#lO*ZG+N:k3r&prr_kniVe?-K`?Q~>
+^],#HqtK^Mki(.<_RHVAR[9;*QC+#-eX6N*Wo*Z(s+LE&~>
+_#G/KqtBUJkiCUObegfhSVV/e7PGu#$e57\&?+FYrdk*'s*t~>
+\Gm0?qt9=8fZ_1?XJVo%al)XZqq:uOgU-;GJcCE'J,~>
+\Gm-<p[RM+f?D(>X.l)LQ'Rc&fU2i-[-7I>s+LE&~>
+\c3<Aq=<k5hU]od[AoaRD+H)j&-geg"#.(BqLS["s*t~>
+Z2Y:3p?UP\^p']6ZGkVfqqV2Q]YF#gs+C?%~>
+ZMtC5qXWk*cbQc\S!TG+QeRo1Q+ubcJcCE'J,~>
+ZMtF5p?^hncG6ZVMJc3A'aEFo"'r\*qgnd#s*t~>
+WrE>%n(l-qVRZ!KrrT4CpOW?ss*t~>
+WrE>!m+famUm@A&R0(P&rdk*&s*t~>
+X8`J)oB4iM\"@1Kh#RV-b3]%Ws+LE&~>
+V#Lc#o\@NrVl@`'qrRhZV:GEns+C?%~>
+V#L`!nCu$mV4*[9jI$+BebB&os+LE&~>
+V>go%qWceT[A/CK)$]1'"..O-rIP!%s*t~>
+UAk]%r:fX?fuq(5Vl-rQoBZDXWo3i,s+C?%~>
+U]1`$r:omLin2GfYbdigQKsq?WSdQ's+C?%~>
+U]1i&q=<n7hq-&bYFpbd3"YBV"/juJrdk*&s*t~>
+T)\ii%f5e\h9s?VZ)FLu[)_5$oD\pi[I!mDs+C?%~>
+T`5Z(rVZQen)iERa1S[TT:)"1Q^[K5!k%:jJcCB&J,~>
+T`5Z'qt]sUl/LFE`k8OPQ@`mG,n';F!sZ-nq18Qus*t~>
+Rf='#rVH9Zl/'k/]WnE3WNj+Zh!Fq7rrVQ(on!-ps*t~>
+S,X0#r;$*YmcN<Qa1S[ST:2(2QBdg4R0/emnc"+>KE$H~>
+SGs?'qY9^QmHEQ`dDii'Um6UQ>t-C`#5S?&)8YY:JcCB&J,~>
+Q2_^#r;#sOjk\D,]sF`8W3a7^fAl5lqod:^JcC?%J,~>
+R/d3c)?'L.p$_2+gsX9WZ`0XeQBdc%Q^=//QHo5Us+:9$~>
+RK"<,rVcWgoBto*i7cT!]sFW*L2C$^2'j+J#"Ho.rdk*%s*t~>
+OoPI\')h\"m,QgHa1\g[VP^N/d&GduJcC?%J,~>
+PQ)EtrVcWip[IG+g!IdQZ`9aiR$Eu*gA6C#K)^?~>
+PlDU"rVQHcp@7G0hq68p]X"K+N-8JkK%TerJcCB&J,~>
+N;rqW%K-(sn`JWS`k8RUZK_@>s+:9$~>
+NW0RhrVQB`oBkVndDii(Vm>L`JcC?%J,~>
+NrK^jr;--Yn*K5rg!IaOZ)+bdq18Qts*t~>
+LAqPYrVH3Ukhb1lJcC<$J,~>
+L]7_\r;$'Vm,m-Zp&9OBK)^?~>
+L]7_[q=O.AkMk:Nn,.b:K)^?~>
+JcGcM!<%KKJc>`MJ,~>
+Jc>iPrqcSEs+13#~>
+Jc>iPr:^#=s+13#~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+JcC<$JcG]KJ,~>
+%%EndData
+showpage
+%%Trailer
+end
+%%EOF

Added: incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.gif
URL: http://svn.apache.org/viewcvs/incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.gif?view=auto&rev=161630
==============================================================================
Binary file - no diff available.

Propchange: incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.gz
URL: http://svn.apache.org/viewcvs/incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.gz?view=auto&rev=161630
==============================================================================
Binary file - no diff available.

Propchange: incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.gz
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.html
URL: http://svn.apache.org/viewcvs/incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.html?view=auto&rev=161630
==============================================================================
--- incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.html (added)
+++ incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.html Sat Apr 16 23:51:28 2005
@@ -0,0 +1,244 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta content="Apache Forrest" name="Generator">
+<meta name="Forrest-version" content="0.6">
+<meta name="Forrest-skin-name" content="pelt">
+<title>Welcome to Nutch!</title>
+<link type="text/css" href="skin/basic.css" rel="stylesheet">
+<link media="screen" type="text/css" href="skin/screen.css" rel="stylesheet">
+<link media="print" type="text/css" href="skin/print.css" rel="stylesheet">
+<link type="text/css" href="skin/profile.css" rel="stylesheet">
+<script src="skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="skin/fontsize.js" language="javascript" type="text/javascript"></script>
+<link rel="shortcut icon" href="images/favicon.ico">
+</head>
+<body onload="init()">
+<script type="text/javascript">ndeSetTextSize();</script>
+<div id="top">
+<!--+
+    |breadtrail
+    +-->
+<div class="breadtrail">
+<a href="http://incubator.apache.org/">Incubator</a> &gt; <a href="http://incubator.apache.org/nutch/">Nutch</a><script src="skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+</div>
+<!--+
+    |header
+    +-->
+<div class="header">
+<!--+
+    |start group logo
+    +-->
+<div class="grouplogo">
+<a href="http://incubator.apache.org/"><img class="logoImage" alt="Incubator" src="http://incubator.apache.org/images/apache-incubator-logo.png" title="Apache Incubator"></a>
+</div>
+<!--+
+    |end group logo
+    +-->
+<!--+
+    |start Project Logo
+    +-->
+<div class="projectlogoA1">
+<a href="http://incubator.apache.org/nutch/"><img class="logoImage" alt="Nutch" src="images/nutch-logo.gif" title="Open Source Web Search Software"></a>
+</div>
+<!--+
+    |end Project Logo
+    +-->
+<!--+
+    |start Tabs
+    +-->
+<ul id="tabs">
+<li class="current">
+<a class="base-selected" href="index.html">Main</a>
+</li>
+<li>
+<a class="base-not-selected" href="http://wiki.apache.org/nutch/">Wiki</a>
+</li>
+</ul>
+<!--+
+    |end Tabs
+    +-->
+</div>
+</div>
+<div id="main">
+<div id="publishedStrip">
+<!--+
+    |start Subtabs
+    +-->
+<div id="level2tabs"></div>
+<!--+
+    |end Endtabs
+    +-->
+<script type="text/javascript" language="JavaScript"><!--
+              document.write("Published: " + document.lastModified);
+              //  --></script>
+</div>
+<!--+
+    |breadtrail
+    +-->
+<div class="breadtrail">
+             
+             &nbsp;
+           </div>
+<!--+
+    |start Menu, mainarea
+    +-->
+<!--+
+    |start Menu
+    +-->
+<div id="menu">
+<div onclick="SwitchMenu('menu_selected_1.1', 'skin/')" id="menu_selected_1.1Title" class="menutitle" style="background-image: url('skin/images/chapter_open.gif');">Project</div>
+<div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display: block;">
+<div class="menupage">
+<div class="menupagetitle">News</div>
+</div>
+<div class="menuitem">
+<a title="" href="about.html">About</a>
+</div>
+<div class="menuitem">
+<a title="" href="credits.html">Credits</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2', 'skin/')" id="menu_1.2Title" class="menutitle">Documentation</div>
+<div id="menu_1.2" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="faq.html">FAQ</a>
+</div>
+<div class="menuitem">
+<a title="" href="http://wiki.apache.org/nutch/">Wiki</a>
+</div>
+<div class="menuitem">
+<a title="" href="tutorial.html">Tutorial</a>
+</div>
+<div class="menuitem">
+<a title="" href="bot.html">Robot     </a>
+</div>
+<div class="menuitem">
+<a title="" href="i18n.html">i18n</a>
+</div>
+<div class="menuitem">
+<a title="" href="apidocs/index.html">API Docs</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.3', 'skin/')" id="menu_1.3Title" class="menutitle">Resources</div>
+<div id="menu_1.3" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="release/">Download</a>
+</div>
+<div class="menuitem">
+<a title="" href="mailing_lists.html">Mailing Lists</a>
+</div>
+<div class="menuitem">
+<a title="" href="issue_tracking.html">Issue Tracking</a>
+</div>
+<div class="menuitem">
+<a title="" href="version_control.html">Version Control</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.4', 'skin/')" id="menu_1.4Title" class="menutitle">Related Projects</div>
+<div id="menu_1.4" class="menuitemgroup">
+<div class="menuitem">
+<a title="" href="http://jakarta.apache.org/lucene/">Lucene</a>
+</div>
+</div>
+<div id="credit">
+<a href="http://forrest.apache.org/"><img border="0" title="Built with Apache Forrest" alt="Built with Apache Forrest - logo" src="images/built-with-forrest-button.png" style="width: 88px;height: 31px;"></a>
+</div>
+<div id="roundbottom">
+<img style="display: none" class="corner" height="15" width="15" alt="" src="skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
+<!--+
+  |alternative credits
+  +-->
+</div>
+<!--+
+    |end Menu
+    +-->
+<!--+
+    |start content
+    +-->
+<div id="content">
+<div id="skinconf-txtlink"></div>
+<div title="Portable Document Format" class="pdflink">
+<a class="dida" href="index.pdf"><img alt="PDF -icon" src="skin/images/pdfdoc.gif" class="skin"><br>
+        PDF</a>
+</div>
+<h1>Welcome to Nutch!</h1>
+<div id="minitoc-area">
+<ul class="minitoc">
+<li>
+<a href="#News">News</a>
+<ul class="minitoc">
+<li>
+<a href="#January+2005%3A+Nutch+Joins+Apache+Incubator">January 2005: Nutch Joins Apache Incubator</a>
+</li>
+<li>
+<a href="#September+2004%3A+Creative+Commons+launches+Nutch-based+Search">September 2004: Creative Commons launches Nutch-based Search</a>
+</li>
+<li>
+<a href="#September+2004%3A+Oregon+State+University+switches+to+Nutch">September 2004: Oregon State University switches to Nutch</a>
+</li>
+</ul>
+</li>
+</ul>
+</div> 
+
+    
+<a name="N1000C"></a><a name="News"></a>
+<h2 class="h3">News</h2>
+<div class="section">
+<a name="N10012"></a><a name="January+2005%3A+Nutch+Joins+Apache+Incubator"></a>
+<h3 class="h4">January 2005: Nutch Joins Apache Incubator</h3>
+<p>Nutch is a two-year-old open source project, previously
+        hosted at Sourceforge and backed by its own non-profit
+        organization. The non-profit was founded in order to assign
+        copyright, so that we could retain the right to change the
+        license. We have now determined that the Apache license is the
+        appropriate license for Nutch and no longer require the
+        overhead of an independent non-profit organization. Nutch's
+        board of directors and its developers were both polled and
+        supported the move to the Apache foundation.</p>
+<a name="N1001C"></a><a name="September+2004%3A+Creative+Commons+launches+Nutch-based+Search"></a>
+<h3 class="h4">September 2004: Creative Commons launches Nutch-based Search</h3>
+<p>Creative Commons unveiled a beta version of its search
+      engine, which scours the web for text, images, audio, and video
+      free to re-use on certain terms a search refinement offered by
+      no other company or organization.</p>
+<p>See the <a href="http://creativecommons.org/press-releases/entry/5064">Creative
+      Commons Press Release</a> for more details.</p>
+<a name="N1002D"></a><a name="September+2004%3A+Oregon+State+University+switches+to+Nutch"></a>
+<h3 class="h4">September 2004: Oregon State University switches to Nutch</h3>
+<p>Oregon State University is converting its searching
+      infrastructure from Googletm to the open source project
+      Nutch. The effort to replace the Googletm will realize
+      significant cost savings for Oregon State University, while
+      promoting both the Nutch Search Engine and transparency in
+      search engine use and management.</p>
+<p>For more details see the announcement by OSU's <a href="http://osuosl.org/news_folder/nutch">Open Source
+      Lab</a>.</p>
+</div>
+
+  
+</div>
+<!--+
+    |end content
+    +-->
+<div class="clearboth">&nbsp;</div>
+</div>
+<div id="footer">
+<!--+
+    |start bottomstrip
+    +-->
+<div class="lastmodified">
+<script type="text/javascript"><!--
+document.write("Last Published: " + document.lastModified);
+//  --></script>
+</div>
+<div class="copyright">
+ Copyright &copy; 2005 The Apache Software Foundation.</div>
+<div id="logos"></div>
+<!--+
+    |end bottomstrip
+    +-->
+</div>
+</body>
+</html>

Added: incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.jpg
URL: http://svn.apache.org/viewcvs/incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.jpg?view=auto&rev=161630
==============================================================================
Binary file - no diff available.

Propchange: incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.jpg
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.ogg
URL: http://svn.apache.org/viewcvs/incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.ogg?view=auto&rev=161630
==============================================================================
Binary file - no diff available.

Propchange: incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.ogg
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.pdf
URL: http://svn.apache.org/viewcvs/incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.pdf?view=auto&rev=161630
==============================================================================
--- incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.pdf (added)
+++ incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.pdf Sat Apr 16 23:51:28 2005
@@ -0,0 +1,268 @@
+%PDF-1.3
+%ª«¬­
+4 0 obj
+<< /Type /Info
+/Producer (FOP 0.20.5) >>
+endobj
+5 0 obj
+<< /Length 583 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gaua;5u5B@(l%MX'mQ4'+jeY\hK3ao43X)BGYepP@p>-4-DarEpHgqHh8*f7,!D/$5$meD^iu7O=-F2W#U5A4!b?e+JA=4]!1=@MOWB?)"N*2&=Tr+9cb.J5`@o&h,cR1OB^,B"7d$8!9CN.kWKBpU5"PG?BL3jPj%_7;Mm??XG%r.$Y+J@\\^:"HNrk::H5I5E826'd:(R6Tj<V?...@H96>-61l[(n*~>
+endstream
+endobj
+6 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 5 0 R
+/Annots 7 0 R
+>>
+endobj
+7 0 obj
+[
+8 0 R
+10 0 R
+12 0 R
+14 0 R
+]
+endobj
+8 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 102.0 559.666 137.324 547.666 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 9 0 R
+/H /I
+>>
+endobj
+10 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 541.466 339.788 529.466 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 11 0 R
+/H /I
+>>
+endobj
+12 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 523.266 445.448 511.266 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 13 0 R
+/H /I
+>>
+endobj
+14 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 505.066 413.804 493.066 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 15 0 R
+/H /I
+>>
+endobj
+16 0 obj
+<< /Length 1827 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gat=,997gc&AJ$CW2FH^R+D.s>8(P"#"?"\*TYR!$<j<C[1]I#Ph"$^moZlkdEB-Rp0ppiq7[`lMu.D$g=upfjV$%p,qIG(Xt7JD5KejVf^iC(=H7=dEoZmUMnCt![WgE>qh8&8[IK$Wqp[$5)?iK:b9fLd[_c/E'BLO*:]6#bRbh8E^=;ZZ*>^/+rUS!\`[B?@J)YIYVcq0%O_4[fP`Zbb`3k2Od0Lsc!4;d*/$XP4<3AZ5k]]J3Ge[.NPVM/r8F[LSoc(Q]cD`3lL.jc;V&@]QFoQemCJ9CD,.3Z1dsE#5NMZAF=6#&?#9g?VK2[b''GWBR$bchn8W"nr2Wa1IW`-a]c0_aqkN"+M:_HXr"/_K,N,W/;H!2=hPtI,$BIo#gR3#/VVb50:m!HZe/_2<9e;@[g-,*0s1r[s$[^$+/k8Bm?a&b*ZbL2bt`K9]*U9>qj*dG!U(C-h*bYsNB2`,)re#($A1H^SKXY[,%js,>JO;;f7KhSJ;>(c8Z?/?ut#,02%__M8lP1]<^b#C!=:n3q90o?Vt_'$'B4!F.+OGE%P<';q<0qT7PHYq=ajJT\aEe2L:m"h>@W<G3hddOus/;#F(:KIrd@P@@feiqjSCKMacCf!JQTIPjd83MnUKTHQ]JN0`D_eY@_XeTcX!&sHSn817;NBFgaKkC-%`rbl5(\N=QOoYoepg3$l^l9J3,mS=&FCFJu<S6RgeF32)>]XidQWUuVOF7.Saj2LYH6:ra'U4%M@B@7Oo5QRB$[&<"Xr0Gj*C*W.3i2V`JjLfNo!i0+;7]N?an8@@[8q):&$E-N:6/)B%9afNnR`s"cKTnR(eQ&XLb?g#,q^Iq0enle8dpu(^,(gU-!:;Pap4muOp$s5ff&*+!=;pWi,Su]La+_lGsOIUiOB#N9#qEum1ZZlfs5VFWs(]R<o6r;N:H_=Z*N_H7$.qa*cXG'2_6'9Ri?N4R:29*$]N6\Y'sTggU5K#BQWaW(;ujVnTj1-%Nl#-D<-P2O[*g:[Q-$SU7u/QM.4JA$I08*lb9#P\'_'&S?WD[,*)%S:Uh30KR]7\/^bYR"t\*7NAXQf&c`YT"E&Pmh+e[3rQI#d<>uL5a++OThJ(;"hOV#+hJP7A22pPWEX8JWVRY9lQAmr5JWuBp)pe04a4C^j6S<?H4']e19Kh-;SBrEs@(6*Rq+ptN6*_^f4^1(:GJ<RR0&%;@];eallo2GW?"]hb?,lDO@Tc`!q0u5V6X)+7"\G9Uj3;Hsr6>sIQ'Q!_9C24;MS*;E']PK7S^/69SC-W"d'VLeDFgMQd"N:aaEL;'%$j/[/54ub'cE!t#0<ba<LRK$RV(f.,]J$PUe)J'gdP[sWM(R/$m&ET2EMrd>+5cerSj:f[eah(ZWmnl]9s7D/KYG_gJP<T:sTlO:-N0LD%j*185%**5pbPG%S/dD\+0*B7OC!Im.-chQo-M@Ha\&X-=h>Dj8R`KJJg%n#3?g/fm#>-m#biigFoarWjcJ.`:\\J=_Den3$+%?T&&eHUb-d_ODteZ3__:u&/W^_2X"+/3*$Vo,RF<Z'ckt&'X?J#o6R"s8G*/1]aZl"iJplBRZQjJKPr5qq#3t]9ARi&_nIgKh+ahGW2slOS5nk#6t?NL2uJhE\=*#lb+@+2p[TL3b(0_\_e];Mati1JFZ]k:?dtP%Fn5McFR*pHe$Mdc<B\7%@8-fa/'3aG0n"+]9u&nG5CsXWG7ck&=@/&SfZ)Fc7N-Yh#Hii0A3o]R^1W+<,&#$%lT\s,?&uF,+jHnKorDk"D\i;HZ<;*7U+7_@c96VgG%+29DAG+<6>NHc4L5.S*VV3Q"SE3~>
+endstream
+endobj
+17 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 16 0 R
+/Annots 18 0 R
+>>
+endobj
+18 0 obj
+[
+19 0 R
+20 0 R
+]
+endobj
+19 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 127.992 434.76 289.644 422.76 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (http://creativecommons.org/press-releases/entry/5064)
+/S /URI >>
+/H /I
+>>
+endobj
+20 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 329.46 309.507 413.436 297.507 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (http://osuosl.org/news_folder/nutch)
+/S /URI >>
+/H /I
+>>
+endobj
+22 0 obj
+<<
+ /Title (\376\377\0\61\0\40\0\116\0\145\0\167\0\163)
+ /Parent 21 0 R
+ /First 23 0 R
+ /Last 25 0 R
+ /Count -3
+ /A 9 0 R
+>> endobj
+23 0 obj
+<<
+ /Title (\376\377\0\61\0\56\0\61\0\40\0\112\0\141\0\156\0\165\0\141\0\162\0\171\0\40\0\62\0\60\0\60\0\65\0\72\0\40\0\116\0\165\0\164\0\143\0\150\0\40\0\112\0\157\0\151\0\156\0\163\0\40\0\101\0\160\0\141\0\143\0\150\0\145\0\40\0\111\0\156\0\143\0\165\0\142\0\141\0\164\0\157\0\162)
+ /Parent 22 0 R
+ /Next 24 0 R
+ /A 11 0 R
+>> endobj
+24 0 obj
+<<
+ /Title (\376\377\0\61\0\56\0\62\0\40\0\123\0\145\0\160\0\164\0\145\0\155\0\142\0\145\0\162\0\40\0\62\0\60\0\60\0\64\0\72\0\40\0\103\0\162\0\145\0\141\0\164\0\151\0\166\0\145\0\40\0\103\0\157\0\155\0\155\0\157\0\156\0\163\0\40\0\154\0\141\0\165\0\156\0\143\0\150\0\145\0\163\0\40\0\116\0\165\0\164\0\143\0\150\0\55\0\142\0\141\0\163\0\145\0\144\0\40\0\123\0\145\0\141\0\162\0\143\0\150)
+ /Parent 22 0 R
+ /Prev 23 0 R
+ /Next 25 0 R
+ /A 13 0 R
+>> endobj
+25 0 obj
+<<
+ /Title (\376\377\0\61\0\56\0\63\0\40\0\123\0\145\0\160\0\164\0\145\0\155\0\142\0\145\0\162\0\40\0\62\0\60\0\60\0\64\0\72\0\40\0\117\0\162\0\145\0\147\0\157\0\156\0\40\0\123\0\164\0\141\0\164\0\145\0\40\0\125\0\156\0\151\0\166\0\145\0\162\0\163\0\151\0\164\0\171\0\40\0\163\0\167\0\151\0\164\0\143\0\150\0\145\0\163\0\40\0\164\0\157\0\40\0\116\0\165\0\164\0\143\0\150)
+ /Parent 22 0 R
+ /Prev 24 0 R
+ /A 15 0 R
+>> endobj
+26 0 obj
+<< /Type /Font
+/Subtype /Type1
+/Name /F3
+/BaseFont /Helvetica-Bold
+/Encoding /WinAnsiEncoding >>
+endobj
+27 0 obj
+<< /Type /Font
+/Subtype /Type1
+/Name /F5
+/BaseFont /Times-Roman
+/Encoding /WinAnsiEncoding >>
+endobj
+28 0 obj
+<< /Type /Font
+/Subtype /Type1
+/Name /F1
+/BaseFont /Helvetica
+/Encoding /WinAnsiEncoding >>
+endobj
+29 0 obj
+<< /Type /Font
+/Subtype /Type1
+/Name /F2
+/BaseFont /Helvetica-Oblique
+/Encoding /WinAnsiEncoding >>
+endobj
+30 0 obj
+<< /Type /Font
+/Subtype /Type1
+/Name /F7
+/BaseFont /Times-Bold
+/Encoding /WinAnsiEncoding >>
+endobj
+1 0 obj
+<< /Type /Pages
+/Count 2
+/Kids [6 0 R 17 0 R ] >>
+endobj
+2 0 obj
+<< /Type /Catalog
+/Pages 1 0 R
+ /Outlines 21 0 R
+ /PageMode /UseOutlines
+ >>
+endobj
+3 0 obj
+<< 
+/Font << /F3 26 0 R /F5 27 0 R /F1 28 0 R /F2 29 0 R /F7 30 0 R >> 
+/ProcSet [ /PDF /ImageC /Text ] >> 
+endobj
+9 0 obj
+<<
+/S /GoTo
+/D [17 0 R /XYZ 85.0 659.0 null]
+>>
+endobj
+11 0 obj
+<<
+/S /GoTo
+/D [17 0 R /XYZ 85.0 627.866 null]
+>>
+endobj
+13 0 obj
+<<
+/S /GoTo
+/D [17 0 R /XYZ 85.0 510.613 null]
+>>
+endobj
+15 0 obj
+<<
+/S /GoTo
+/D [17 0 R /XYZ 85.0 398.56 null]
+>>
+endobj
+21 0 obj
+<<
+ /First 22 0 R
+ /Last 22 0 R
+>> endobj
+xref
+0 31
+0000000000 65535 f 
+0000005863 00000 n 
+0000005928 00000 n 
+0000006020 00000 n 
+0000000015 00000 n 
+0000000071 00000 n 
+0000000745 00000 n 
+0000000865 00000 n 
+0000000911 00000 n 
+0000006143 00000 n 
+0000001046 00000 n 
+0000006206 00000 n 
+0000001183 00000 n 
+0000006272 00000 n 
+0000001320 00000 n 
+0000006338 00000 n 
+0000001457 00000 n 
+0000003377 00000 n 
+0000003500 00000 n 
+0000003534 00000 n 
+0000003738 00000 n 
+0000006403 00000 n 
+0000003926 00000 n 
+0000004067 00000 n 
+0000004411 00000 n 
+0000004875 00000 n 
+0000005307 00000 n 
+0000005420 00000 n 
+0000005530 00000 n 
+0000005638 00000 n 
+0000005754 00000 n 
+trailer
+<<
+/Size 31
+/Root 2 0 R
+/Info 4 0 R
+>>
+startxref
+6454
+%%EOF

Added: incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.pgm
URL: http://svn.apache.org/viewcvs/incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.pgm?view=auto&rev=161630
==============================================================================
Binary file - no diff available.

Propchange: incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.pgm
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.png
URL: http://svn.apache.org/viewcvs/incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.png?view=auto&rev=161630
==============================================================================
Binary file - no diff available.

Propchange: incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.ppm
URL: http://svn.apache.org/viewcvs/incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.ppm?view=auto&rev=161630
==============================================================================
Binary file - no diff available.

Propchange: incubator/nutch/trunk/src/test/org/apache/nutch/util/mime/test.ppm
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream