You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ta...@apache.org on 2023/12/01 15:40:09 UTC

(tika) branch main updated: TIKA-4160 -- remove tagsoup parser

This is an automated email from the ASF dual-hosted git repository.

tallison pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tika.git


The following commit(s) were added to refs/heads/main by this push:
     new 9a2a997ce TIKA-4160 -- remove tagsoup parser
9a2a997ce is described below

commit 9a2a997ced68f3e7e5f1fd8e5fef02f58de6a5f7
Author: tallison <ta...@apache.org>
AuthorDate: Fri Dec 1 10:40:01 2023 -0500

    TIKA-4160 -- remove tagsoup parser
---
 .../tika-parser-tagsoup-module/pom.xml             |   34 -
 .../tika/parser/html/tagsoup/DataURIScheme.java    |   81 --
 .../html/tagsoup/DataURISchemeParseException.java  |   28 -
 .../parser/html/tagsoup/DataURISchemeUtil.java     |  103 --
 .../parser/html/tagsoup/DefaultHtmlMapper.java     |  140 ---
 .../parser/html/tagsoup/HtmlEncodingDetector.java  |  180 ---
 .../tika/parser/html/tagsoup/HtmlHandler.java      |  493 --------
 .../tika/parser/html/tagsoup/HtmlMapper.java       |   69 --
 .../tika/parser/html/tagsoup/HtmlParser.java       |  236 ----
 .../parser/html/tagsoup/IdentityHtmlMapper.java    |   43 -
 .../parser/html/tagsoup/XHTMLDowngradeHandler.java |   76 --
 .../tagsoup/charsetdetector/CharsetAliases.java    |  156 ---
 .../charsetdetector/CharsetDetectionResult.java    |   66 -
 .../tagsoup/charsetdetector/MetaProcessor.java     |   74 --
 .../html/tagsoup/charsetdetector/PreScanner.java   |  297 -----
 .../StandardHtmlEncodingDetector.java              |  110 --
 .../charsets/ReplacementCharset.java               |   65 -
 .../charsets/XUserDefinedCharset.java              |   66 -
 .../org.apache.tika.detect.EncodingDetector        |   15 -
 .../services/org.apache.tika.parser.Parser         |   15 -
 .../StandardCharsets_unsupported_by_IANA.txt       |  139 ---
 .../html/tagsoup/DataURISchemeParserTest.java      |   79 --
 .../html/tagsoup/HtmlEncodingDetectorTest.java     |  140 ---
 .../tika/parser/html/tagsoup/HtmlParserTest.java   | 1305 --------------------
 .../tika/parser/html/tagsoup/SrcDocTest.java       |   43 -
 .../tagsoup/StandardHtmlEncodingDetectorTest.java  |  373 ------
 .../org/apache/tika/parser/html/tika-config.xml    |   30 -
 .../resources/test-documents/big-preamble.html     |  827 -------------
 .../test-documents/boilerplate-whitespace.html     |   27 -
 .../test/resources/test-documents/boilerplate.html |   41 -
 .../testBoilerplateMissingSpace.html               |   13 -
 .../test/resources/test-documents/testHTML.html    |   28 -
 .../test-documents/testHTMLBadScript.html          |    9 -
 .../test-documents/testHTMLGoodScript.html         |    9 -
 .../testHTMLNoisyMetaEncoding_1.html               |   77 --
 .../testHTMLNoisyMetaEncoding_2.html               |   77 --
 .../testHTMLNoisyMetaEncoding_3.html               |   77 --
 .../testHTMLNoisyMetaEncoding_4.html               |   77 --
 .../test-documents/testHTML_charset_utf16le.html   |  Bin 380 -> 0 bytes
 .../test-documents/testHTML_charset_utf8.html      |    8 -
 .../testHTML_embedded_data_uri_js.html             |   11 -
 .../test-documents/testHTML_embedded_img.html      |  352 ------
 .../testHTML_embedded_img_in_js.html               |  351 ------
 .../resources/test-documents/testHTML_head.html    |   32 -
 .../test-documents/testHTML_metadata.html          |   16 -
 .../testHTML_metadata_two_titles.html              |   17 -
 .../resources/test-documents/testHTML_utf8.html    |   25 -
 .../test/resources/test-documents/testSrcDoc.html  |   22 -
 .../test-documents/testUserDefinedCharset.mhtml    |   21 -
 .../test/resources/test-documents/testXHTML.html   |   29 -
 .../src/test/resources/test-documents/tika434.html |  914 --------------
 .../tika-parser-tagsoup-package/pom.xml            |   80 --
 52 files changed, 7596 deletions(-)

diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/pom.xml b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/pom.xml
deleted file mode 100644
index e64919f7b..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/pom.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <groupId>org.apache.tika</groupId>
-    <artifactId>tika-parsers-extended</artifactId>
-    <version>3.0.0-SNAPSHOT</version>
-    <relativePath>../pom.xml</relativePath>
-  </parent>
-
-  <artifactId>tika-parser-tagsoup-module</artifactId>
-  <name>Apache Tika Tagsoup-based HTML parser module</name>
-
-
-  <dependencies>
-    <dependency>
-      <groupId>org.ccil.cowan.tagsoup</groupId>
-      <artifactId>tagsoup</artifactId>
-      <version>${tagsoup.version}</version>
-    </dependency>
-    <!-- needed for charset/encoding detection -->
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>tika-parser-text-module</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>commons-codec</groupId>
-      <artifactId>commons-codec</artifactId>
-    </dependency>
-  </dependencies>
-</project>
\ No newline at end of file
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/DataURIScheme.java b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/DataURIScheme.java
deleted file mode 100644
index 63b75af2c..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/DataURIScheme.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.tika.parser.html.tagsoup;
-
-import java.io.InputStream;
-import java.util.Arrays;
-import java.util.Objects;
-
-import org.apache.commons.io.input.UnsynchronizedByteArrayInputStream;
-
-import org.apache.tika.mime.MediaType;
-
-public class DataURIScheme {
-
-
-    private final String rawMediaTypeString;
-    private final boolean isBase64;
-    private final byte[] data;
-
-    DataURIScheme(String mediaTypeString, boolean isBase64, byte[] data) {
-        this.rawMediaTypeString = mediaTypeString;
-        this.isBase64 = isBase64;
-        this.data = data;
-    }
-
-    public InputStream getInputStream() {
-        return new UnsynchronizedByteArrayInputStream(data);
-    }
-
-    /**
-     * @return parsed media type or <code>null</code> if parse fails or if media type string was
-     * not specified
-     */
-    public MediaType getMediaType() {
-        if (rawMediaTypeString != null) {
-            return MediaType.parse(rawMediaTypeString);
-        }
-        return null;
-    }
-
-    public boolean isBase64() {
-        return isBase64;
-    }
-
-    @Override
-    public boolean equals(Object o) {
-        if (this == o) {
-            return true;
-        }
-        if (!(o instanceof DataURIScheme)) {
-            return false;
-        }
-        DataURIScheme that = (DataURIScheme) o;
-        return isBase64() == that.isBase64() &&
-                Objects.equals(rawMediaTypeString, that.rawMediaTypeString) &&
-                Arrays.equals(data, that.data);
-    }
-
-    @Override
-    public int hashCode() {
-
-        int result = Objects.hash(rawMediaTypeString, isBase64());
-        result = 31 * result + Arrays.hashCode(data);
-        return result;
-    }
-}
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/DataURISchemeParseException.java b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/DataURISchemeParseException.java
deleted file mode 100644
index 4063eeca2..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/DataURISchemeParseException.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.tika.parser.html.tagsoup;
-
-import org.apache.tika.exception.TikaException;
-
-public class DataURISchemeParseException extends TikaException {
-
-    public DataURISchemeParseException(String msg) {
-        super(msg);
-    }
-
-}
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/DataURISchemeUtil.java b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/DataURISchemeUtil.java
deleted file mode 100644
index 63c66ac13..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/DataURISchemeUtil.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.tika.parser.html.tagsoup;
-
-import java.nio.charset.Charset;
-import java.nio.charset.IllegalCharsetNameException;
-import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.apache.commons.codec.binary.Base64;
-
-import org.apache.tika.mime.MediaType;
-
-/**
- * Not thread safe.  Create a separate util for each thread.
- */
-public class DataURISchemeUtil {
-
-    public static String UNSPECIFIED_MEDIA_TYPE = "text/plain;charset=US-ASCII";
-
-    private static Pattern PARSE_PATTERN = Pattern.compile("(?s)data:([^,]*?)(base64)?,(.*)$");
-    private static Pattern EXTRACT_PATTERN =
-            Pattern.compile("(?s)data:([^,]*?)(base64)?,([^\"\']*)[\"\']");
-    private final Matcher parseMatcher = PARSE_PATTERN.matcher("");
-    private final Matcher extractMatcher = EXTRACT_PATTERN.matcher("");
-    Base64 base64 = new Base64();
-
-    public DataURIScheme parse(String string) throws DataURISchemeParseException {
-        parseMatcher.reset(string);
-        if (parseMatcher.find()) {
-            return build(parseMatcher.group(1), parseMatcher.group(2), parseMatcher.group(3));
-        }
-        throw new DataURISchemeParseException("Couldn't find expected pattern");
-    }
-
-    private DataURIScheme build(String mediaTypeString, String isBase64, String dataString) {
-        byte[] data = null;
-        //strip out back slashes as you might have in css
-        dataString = (dataString != null) ? dataString.replaceAll("\\\\", " ") : dataString;
-
-        if (dataString == null || dataString.length() == 0) {
-            data = new byte[0];
-        } else if (isBase64 != null) {
-            data = base64.decode(dataString);
-        } else {
-            //TODO: handle encodings
-            MediaType mediaType = MediaType.parse(mediaTypeString);
-            Charset charset = StandardCharsets.UTF_8;
-            if (mediaType.hasParameters()) {
-                String charsetName = mediaType.getParameters().get("charset");
-                if (charsetName != null && Charset.isSupported(charsetName)) {
-                    try {
-                        charset = Charset.forName(charsetName);
-                    } catch (IllegalCharsetNameException e) {
-                        //swallow and default to UTF-8
-                    }
-                }
-            }
-            data = dataString.getBytes(charset);
-        }
-        return new DataURIScheme(mediaTypeString, (isBase64 != null), data);
-    }
-
-    /**
-     * Extracts DataURISchemes from free text, as in javascript.
-     *
-     * @param string
-     * @return list of extracted DataURISchemes
-     */
-    public List<DataURIScheme> extract(String string) {
-        extractMatcher.reset(string);
-        List<DataURIScheme> list = null;
-        while (extractMatcher.find()) {
-            DataURIScheme dataURIScheme = build(extractMatcher.group(1), extractMatcher.group(2),
-                    extractMatcher.group(3));
-            if (list == null) {
-                list = new ArrayList<>();
-            }
-            list.add(dataURIScheme);
-        }
-        return (list == null) ? Collections.EMPTY_LIST : list;
-    }
-
-}
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/DefaultHtmlMapper.java b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/DefaultHtmlMapper.java
deleted file mode 100644
index d4acb35b5..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/DefaultHtmlMapper.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.tika.parser.html.tagsoup;
-
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * The default HTML mapping rules in Tika.
- *
- * @since Apache Tika 0.6
- */
-@SuppressWarnings("serial")
-public class DefaultHtmlMapper implements HtmlMapper {
-
-    /**
-     * @since Apache Tika 0.8
-     */
-    public static final HtmlMapper INSTANCE = new DefaultHtmlMapper();
-    // Based on http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd
-    private static final Map<String, String> SAFE_ELEMENTS = new HashMap<String, String>() {{
-            put("H1", "h1");
-            put("H2", "h2");
-            put("H3", "h3");
-            put("H4", "h4");
-            put("H5", "h5");
-            put("H6", "h6");
-
-            put("P", "p");
-            put("PRE", "pre");
-            put("BLOCKQUOTE", "blockquote");
-            put("Q", "q");
-
-            put("UL", "ul");
-            put("OL", "ol");
-            put("MENU", "ul");
-            put("LI", "li");
-            put("DL", "dl");
-            put("DT", "dt");
-            put("DD", "dd");
-
-            put("TABLE", "table");
-            put("THEAD", "thead");
-            put("TBODY", "tbody");
-            put("TR", "tr");
-            put("TH", "th");
-            put("TD", "td");
-
-            put("ADDRESS", "address");
-
-            // TIKA-460 - add anchors
-            put("A", "a");
-
-            // TIKA-463 - add additional elements that contain URLs (and their sub-elements)
-            put("MAP", "map");
-            put("AREA", "area");
-            put("IMG", "img");
-            put("FRAMESET", "frameset");
-            put("FRAME", "frame");
-            put("IFRAME", "iframe");
-            put("OBJECT", "object");
-            put("PARAM", "param");
-            put("INS", "ins");
-            put("DEL", "del");
-        }};
-    private static final Set<String> DISCARDABLE_ELEMENTS = new HashSet<String>() {{
-            add("STYLE");
-            add("SCRIPT");
-        }};
-    // For information on tags & attributes, see:
-    // http://www.w3.org/TR/2002/REC-xhtml1-20020801/dtds.html#a_dtd_XHTML-1.0-Strict
-    // http://www.w3schools.com/TAGS/
-    private static final Map<String, Set<String>> SAFE_ATTRIBUTES =
-            new HashMap<String, Set<String>>() {{
-                    put("a", attrSet("charset", "type", "name", "href", "hreflang", "rel", "rev",
-                            "shape", "coords"));
-                    put("img", attrSet("src", "alt",  "longdesc", "height", "width", "usemap",
-                            "ismap"));
-                    put("frame", attrSet("longdesc", "name", "src", "frameborder", "marginwidth",
-                            "marginheight", "noresize", "scrolling"));
-                    put("iframe", attrSet("longdesc", "name", "src", "frameborder", "marginwidth",
-                            "marginheight", "scrolling", "align", "height", "width"));
-                    put("link", attrSet("charset", "href", "hreflang", "type", "rel", "rev", "media"));
-                    put("map", attrSet("id", "class", "style", "title", "name"));
-                    put("area", attrSet("shape", "coords", "href", "nohref", "alt"));
-                    put("object", attrSet("declare", "classid", "codebase", "data", "type",
-                            "codetype", "archive", "standby", "height", "width",
-                            "usemap", "name", "tabindex", "align", "border", "hspace", "vspace"));
-                    put("param", attrSet("id", "name", "value", "valuetype", "type"));
-                    put("blockquote", attrSet("cite"));
-                    put("ins", attrSet("cite", "datetime"));
-                    put("del", attrSet("cite", "datetime"));
-                    put("q", attrSet("cite"));
-
-                // TODO - fill out this set. Include core, i18n, etc sets where appropriate.
-                }};
-
-    private static Set<String> attrSet(String... attrs) {
-        return new HashSet<>(Arrays.asList(attrs));
-    }
-
-    public String mapSafeElement(String name) {
-        return SAFE_ELEMENTS.get(name);
-    }
-
-    /**
-     * Normalizes an attribute name. Assumes that the element name
-     * is valid and normalized
-     */
-    public String mapSafeAttribute(String elementName, String attributeName) {
-        Set<String> safeAttrs = SAFE_ATTRIBUTES.get(elementName);
-        if ((safeAttrs != null) && safeAttrs.contains(attributeName)) {
-            return attributeName;
-        } else {
-            return null;
-        }
-    }
-
-    public boolean isDiscardElement(String name) {
-        return DISCARDABLE_ELEMENTS.contains(name);
-    }
-
-}
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/HtmlEncodingDetector.java b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/HtmlEncodingDetector.java
deleted file mode 100644
index ed68ebe65..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/HtmlEncodingDetector.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.tika.parser.html.tagsoup;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.nio.ByteBuffer;
-import java.nio.charset.Charset;
-import java.nio.charset.StandardCharsets;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Locale;
-import java.util.Set;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.apache.tika.config.Field;
-import org.apache.tika.detect.EncodingDetector;
-import org.apache.tika.metadata.Metadata;
-import org.apache.tika.utils.CharsetUtils;
-
-/**
- * Character encoding detector for determining the character encoding of a
- * HTML document based on the potential charset parameter found in a
- * Content-Type http-equiv meta tag somewhere near the beginning. Especially
- * useful for determining the type among multiple closely related encodings
- * (ISO-8859-*) for which other types of encoding detection are unreliable.
- *
- * @since Apache Tika 1.2
- */
-public class HtmlEncodingDetector implements EncodingDetector {
-
-    // TIKA-357 - use bigger buffer for meta tag sniffing (was 4K)
-    private static final int DEFAULT_MARK_LIMIT = 8192;
-    private static final Pattern HTTP_META_PATTERN =
-            Pattern.compile("(?is)<\\s*meta(?:/|\\s+)([^<>]+)");
-    //this should match both the older:
-    //<meta http-equiv="content-type" content="text/html; charset=xyz"/>
-    //and
-    //html5 <meta charset="xyz">
-    //See http://webdesign.about.com/od/metatags/qt/meta-charset.htm
-    //for the noisiness that one might encounter in charset attrs.
-    //Chose to go with strict ([-_:\\.a-z0-9]+) to match encodings
-    //following http://docs.oracle.com/javase/7/docs/api/java/nio/charset/Charset.html
-    //For a more general "not" matcher, try:
-    //("(?is)charset\\s*=\\s*['\\\"]?\\s*([^<>\\s'\\\";]+)")
-    private static final Pattern FLEXIBLE_CHARSET_ATTR_PATTERN =
-            Pattern.compile(("(?is)\\bcharset\\s*=\\s*(?:['\\\"]\\s*)?([-_:\\.a-z0-9]+)"));
-    private static final Charset ASCII = Charset.forName("US-ASCII");
-    /**
-     * HTML can include non-iana supported charsets that Java
-     * recognizes, e.g. "unicode".  This can lead to incorrect detection/mojibake.
-     * Ignore charsets in html meta-headers that are not supported by IANA.
-     * See: TIKA-2592
-     */
-    private static Set<String> CHARSETS_UNSUPPORTED_BY_IANA;
-
-    static {
-        Set<String> unsupported = new HashSet<>();
-        try (BufferedReader reader = new BufferedReader(new InputStreamReader(
-                HtmlEncodingDetector.class
-                        .getResourceAsStream("StandardCharsets_unsupported_by_IANA.txt"),
-                StandardCharsets.UTF_8))) {
-            String line = reader.readLine();
-            while (line != null) {
-                if (line.startsWith("#")) {
-                    line = reader.readLine();
-                    continue;
-                }
-                line = line.trim();
-                if (line.length() > 0) {
-                    unsupported.add(line.toLowerCase(Locale.US));
-                }
-                line = reader.readLine();
-            }
-        } catch (IOException e) {
-            throw new IllegalArgumentException(
-                    "couldn't find StandardCharsets_unsupported_by_IANA.txt on the class path");
-        }
-        CHARSETS_UNSUPPORTED_BY_IANA = Collections.unmodifiableSet(unsupported);
-    }
-
-    @Field
-    private int markLimit = DEFAULT_MARK_LIMIT;
-
-    public Charset detect(InputStream input, Metadata metadata) throws IOException {
-        if (input == null) {
-            return null;
-        }
-
-        // Read enough of the text stream to capture possible meta tags
-        input.mark(markLimit);
-        byte[] buffer = new byte[markLimit];
-        int n = 0;
-        int m = input.read(buffer);
-        while (m != -1 && n < buffer.length) {
-            n += m;
-            m = input.read(buffer, n, buffer.length - n);
-        }
-        input.reset();
-
-        // Interpret the head as ASCII and try to spot a meta tag with
-        // a possible character encoding hint
-
-        String head = ASCII.decode(ByteBuffer.wrap(buffer, 0, n)).toString();
-        //strip out comments
-        String headNoComments = head.replaceAll("<!--.*?(-->|$)", " ");
-        //try to find the encoding in head without comments
-        Charset charset = findCharset(headNoComments);
-        //if nothing is found, back off to find any encoding
-        if (charset == null) {
-            return findCharset(head);
-        }
-        return charset;
-
-    }
-
-    //returns null if no charset was found
-    private Charset findCharset(String s) {
-
-        Matcher equiv = HTTP_META_PATTERN.matcher(s);
-        Matcher charsetMatcher = FLEXIBLE_CHARSET_ATTR_PATTERN.matcher("");
-        //iterate through meta tags
-        while (equiv.find()) {
-            String attrs = equiv.group(1);
-            charsetMatcher.reset(attrs);
-            //iterate through charset= and return the first match
-            //that is valid
-            while (charsetMatcher.find()) {
-                String candCharset = charsetMatcher.group(1);
-                if (CHARSETS_UNSUPPORTED_BY_IANA.contains(candCharset.toLowerCase(Locale.US))) {
-                    continue;
-                }
-                if ("x-user-defined".equalsIgnoreCase(candCharset)) {
-                    candCharset = "windows-1252";
-                }
-
-                if (CharsetUtils.isSupported(candCharset)) {
-                    try {
-                        return CharsetUtils.forName(candCharset);
-                    } catch (IllegalArgumentException e) {
-                        //ignore
-                    }
-                }
-            }
-        }
-        return null;
-    }
-
-    public int getMarkLimit() {
-        return markLimit;
-    }
-
-    /**
-     * How far into the stream to read for charset detection.
-     * Default is 8192.
-     *
-     * @param markLimit
-     */
-    @Field
-    public void setMarkLimit(int markLimit) {
-        this.markLimit = markLimit;
-    }
-}
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/HtmlHandler.java b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/HtmlHandler.java
deleted file mode 100644
index e29941683..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/HtmlHandler.java
+++ /dev/null
@@ -1,493 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.tika.parser.html.tagsoup;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.nio.charset.StandardCharsets;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Set;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.apache.commons.io.input.UnsynchronizedByteArrayInputStream;
-import org.xml.sax.Attributes;
-import org.xml.sax.ContentHandler;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.AttributesImpl;
-
-import org.apache.tika.extractor.EmbeddedDocumentExtractor;
-import org.apache.tika.extractor.EmbeddedDocumentUtil;
-import org.apache.tika.metadata.HTML;
-import org.apache.tika.metadata.Metadata;
-import org.apache.tika.metadata.Office;
-import org.apache.tika.metadata.Property;
-import org.apache.tika.metadata.TikaCoreProperties;
-import org.apache.tika.mime.MediaType;
-import org.apache.tika.parser.ParseContext;
-import org.apache.tika.sax.TextContentHandler;
-import org.apache.tika.sax.XHTMLContentHandler;
-import org.apache.tika.utils.StringUtils;
-
-class HtmlHandler extends TextContentHandler {
-
-    // List of attributes that need to be resolved.
-    private static final Set<String> URI_ATTRIBUTES =
-            new HashSet<>(Arrays.asList("src", "href", "longdesc", "cite"));
-    private static final Pattern ICBM =
-            Pattern.compile("\\s*(-?\\d+\\.\\d+)[,\\s]+(-?\\d+\\.\\d+)\\s*");
-
-    private static final Map<String, Property> META_HEADER_MAPPINGS = new HashMap<>();
-
-    static {
-        META_HEADER_MAPPINGS.put("author", TikaCoreProperties.CREATOR);
-        META_HEADER_MAPPINGS.put("title", TikaCoreProperties.TITLE);
-        META_HEADER_MAPPINGS.put("subject", TikaCoreProperties.SUBJECT);
-        META_HEADER_MAPPINGS.put("keywords", Office.KEYWORDS);
-        META_HEADER_MAPPINGS.put("description", TikaCoreProperties.DESCRIPTION);
-    }
-    private static final Attributes EMPTY_ATTS = new AttributesImpl();
-    private final HtmlMapper mapper;
-    private final XHTMLContentHandler xhtml;
-    private final Metadata metadata;
-    private final ParseContext context;
-    private final boolean extractScripts;
-    private final StringBuilder title = new StringBuilder();
-    private final DataURISchemeUtil dataURISchemeUtil = new DataURISchemeUtil();
-    private final StringBuilder script = new StringBuilder();
-    private int bodyLevel = 0;
-    private int discardLevel = 0;
-    private int titleLevel = 0;
-    private int scriptLevel = 0;
-    private Attributes scriptAtts = EMPTY_ATTS;//attributes from outermost script element
-    private boolean isTitleSetToMetadata = false;
-
-    private HtmlHandler(HtmlMapper mapper, XHTMLContentHandler xhtml, Metadata metadata,
-                        ParseContext context, boolean extractScripts) {
-        super(xhtml);
-        this.mapper = mapper;
-        this.xhtml = xhtml;
-        this.metadata = metadata;
-        this.context = context;
-        this.extractScripts = extractScripts;
-        // Try to determine the default base URL, if one has not been given
-        if (metadata.get(Metadata.CONTENT_LOCATION) == null) {
-            String name = metadata.get(TikaCoreProperties.RESOURCE_NAME_KEY);
-            if (name != null) {
-                name = name.trim();
-                try {
-                    new URL(name); // test URL format
-                    metadata.set(Metadata.CONTENT_LOCATION, name);
-                } catch (MalformedURLException e) {
-                    // The resource name is not a valid URL, ignore it
-                }
-            }
-        }
-    }
-
-    public HtmlHandler(HtmlMapper mapper, ContentHandler handler, Metadata metadata,
-                       ParseContext context, boolean extractScripts) {
-        this(mapper, new XHTMLContentHandler(handler, metadata), metadata, context, extractScripts);
-    }
-
-    /**
-     * @param mapper
-     * @param handler
-     * @param metadata
-     * @deprecated use {@link HtmlHandler#HtmlHandler(HtmlMapper,
-     * ContentHandler, Metadata, ParseContext, boolean)}
-     */
-    @Deprecated
-    public HtmlHandler(HtmlMapper mapper, ContentHandler handler, Metadata metadata) {
-        this(mapper, new XHTMLContentHandler(handler, metadata), metadata, new ParseContext(),
-                false);
-    }
-
-
-    @Override
-    public void startElement(String uri, String local, String name, Attributes atts)
-            throws SAXException {
-
-        if ("HTML".equals(name) && atts.getValue("lang") != null) {
-            metadata.set(Metadata.CONTENT_LANGUAGE, atts.getValue("lang"));
-        }
-        if ("SCRIPT".equals(name)) {
-            scriptLevel++;
-        }
-        if ("TITLE".equals(name) || titleLevel > 0) {
-            titleLevel++;
-        }
-        if ("BODY".equals(name) || ("FRAMESET".equals(name)) || bodyLevel > 0) {
-            bodyLevel++;
-        }
-        if (mapper.isDiscardElement(name) || discardLevel > 0) {
-            discardLevel++;
-        }
-
-        if (bodyLevel == 0 && discardLevel == 0) {
-            if ("META".equals(name) && atts.getValue("content") != null) {
-                // TIKA-478: For cases where we have either a name or
-                // "http-equiv", assume that XHTMLContentHandler will emit
-                // these in the <head>, thus passing them through safely.
-                if (atts.getValue("http-equiv") != null) {
-                    addHtmlMetadata(atts.getValue("http-equiv"), atts.getValue("content"));
-                } else if (atts.getValue("name") != null) {
-                    // Record the meta tag in the metadata
-                    addHtmlMetadata(atts.getValue("name"), atts.getValue("content"));
-                } else if (atts.getValue("property") != null) {
-                    // TIKA-983: Handle <meta property="og:xxx" content="yyy" /> tags
-                    metadata.add(atts.getValue("property"), atts.getValue("content"));
-                }
-            } else if ("BASE".equals(name) && atts.getValue("href") != null) {
-                startElementWithSafeAttributes("base", atts);
-                xhtml.endElement("base");
-                metadata.set(Metadata.CONTENT_LOCATION, resolve(atts.getValue("href")));
-            } else if ("LINK".equals(name)) {
-                startElementWithSafeAttributes("link", atts);
-                xhtml.endElement("link");
-            } else if ("SCRIPT".equals(name)) {
-                scriptAtts = atts;
-            }
-        }
-
-        if (bodyLevel > 0 && discardLevel == 0) {
-            String safe = mapper.mapSafeElement(name);
-            if (safe != null) {
-                startElementWithSafeAttributes(safe, atts);
-            }
-        }
-
-        title.setLength(0);
-        String value = atts.getValue("src");
-        if (value != null && value.startsWith("data:")) {
-            //don't extract data if we're in a script
-            //and the user doesn't want to extract scripts
-            if (scriptLevel == 0 || extractScripts) {
-                handleDataURIScheme(value);
-            }
-        }
-        if ("IFRAME".equals(name)) {
-            String srcDoc = atts.getValue("srcdoc");
-            if (!StringUtils.isBlank(srcDoc)) {
-                handleSrcDoc(srcDoc);
-            }
-        }
-    }
-
-    /**
-     * Adds a metadata setting from the HTML <head/> to the Tika metadata
-     * object. The name and value are normalized where possible.
-     */
-    private void addHtmlMetadata(String name, String value) {
-        //note that "name" derives from attributes and is not uppercased
-        //like the elements by the XHTMLDowngradeHandler
-
-        if (StringUtils.isBlank(name) || StringUtils.isBlank(value)) {
-            return;
-        }
-
-        if (name.equalsIgnoreCase("ICBM")) {
-            Matcher m = ICBM.matcher(value);
-            if (m.matches()) {
-                metadata.set("ICBM", m.group(1) + ", " + m.group(2));
-                metadata.set(Metadata.LATITUDE, m.group(1));
-                metadata.set(Metadata.LONGITUDE, m.group(2));
-            } else {
-                metadata.set("ICBM", value);
-            }
-            return;
-        }
-
-        if (name.equalsIgnoreCase(Metadata.CONTENT_TYPE)) {
-            //don't overwrite Metadata.CONTENT_TYPE!
-            MediaType type = MediaType.parse(value);
-            if (type != null) {
-                metadata.set(TikaCoreProperties.CONTENT_TYPE_HINT, type.toString());
-            } else {
-                metadata.set(TikaCoreProperties.CONTENT_TYPE_HINT, value);
-            }
-            return;
-        }
-
-        String lcName = name.toLowerCase(Locale.US);
-        if (META_HEADER_MAPPINGS.containsKey(lcName)) {
-            Property property = META_HEADER_MAPPINGS.get(lcName);
-            if (property.equals(TikaCoreProperties.TITLE) && isTitleSetToMetadata) {
-                //prefer the title element if it is already set
-                //do nothing
-            } else if (property.isMultiValuePermitted()) {
-                metadata.add(property, value);
-            } else {
-                metadata.set(property, value);
-            }
-        }
-        //TODO -- we should prefix these raw names to avoid collisions
-        metadata.add(name, value);
-    }
-
-    private void startElementWithSafeAttributes(String name, Attributes atts) throws SAXException {
-        if (atts.getLength() == 0) {
-            xhtml.startElement(name);
-            return;
-        }
-
-        boolean isObject = name.equals("object");
-        String codebase = null;
-        if (isObject) {
-            codebase = atts.getValue("", "codebase");
-            if (codebase != null) {
-                codebase = resolve(codebase);
-            } else {
-                codebase = metadata.get(Metadata.CONTENT_LOCATION);
-            }
-        }
-
-        AttributesImpl newAttributes = new AttributesImpl(atts);
-        for (int att = 0; att < newAttributes.getLength(); att++) {
-            String attrName = newAttributes.getLocalName(att);
-            String normAttrName = mapper.mapSafeAttribute(name, attrName);
-            if (normAttrName == null) {
-                newAttributes.removeAttribute(att);
-                att--;
-            } else {
-                // We have a remapped attribute name, so set it as it might have changed.
-                newAttributes.setLocalName(att, normAttrName);
-
-                // And resolve relative links. Eventually this should be pushed
-                // into the HtmlMapper code.
-                if (URI_ATTRIBUTES.contains(normAttrName)) {
-                    //if this is a src="data: " element,
-                    //we've handled that as an embedded file, don't include the full thing
-                    //here
-                    if (normAttrName.equals("src")) {
-                        String v = newAttributes.getValue(att);
-                        if (v.startsWith("data:")) {
-                            newAttributes.setValue(att, "data:");
-                        }
-                    }
-                    newAttributes.setValue(att, resolve(newAttributes.getValue(att)));
-                } else if (isObject && "codebase".equals(normAttrName)) {
-                    newAttributes.setValue(att, codebase);
-                } else if (isObject &&
-                        ("data".equals(normAttrName) || "classid".equals(normAttrName))) {
-                    newAttributes.setValue(att, resolve(codebase, newAttributes.getValue(att)));
-                }
-            }
-        }
-
-        if ("img".equals(name) && newAttributes.getValue("", "alt") == null) {
-            newAttributes.addAttribute("", "alt", "alt", "CDATA", "");
-        }
-
-        xhtml.startElement(name, newAttributes);
-    }
-
-    @Override
-    public void endElement(String uri, String local, String name) throws SAXException {
-        if ("SCRIPT".equals(name)) {
-            scriptLevel--;
-            if (scriptLevel == 0) {
-                if (scriptAtts.getLength() > 0) {
-                    startElementWithSafeAttributes("script", scriptAtts);
-                    xhtml.endElement("script");
-                }
-                scriptAtts = EMPTY_ATTS;
-                if (extractScripts) {
-                    writeScript();
-                }
-            }
-        }
-
-        if (bodyLevel > 0 && discardLevel == 0) {
-            String safe = mapper.mapSafeElement(name);
-            if (safe != null) {
-                xhtml.endElement(safe);
-            } else if (XHTMLContentHandler.ENDLINE.contains(name.toLowerCase(Locale.ENGLISH))) {
-                // TIKA-343: Replace closing block tags (and <br/>) with a
-                // newline unless the HtmlMapper above has already mapped
-                // them to something else
-                xhtml.newline();
-            }
-        }
-
-        if (titleLevel > 0) {
-            titleLevel--;
-            if (titleLevel == 0 && !isTitleSetToMetadata) {
-                metadata.set(TikaCoreProperties.TITLE, title.toString().trim());
-                isTitleSetToMetadata = true;
-            }
-        }
-        if (bodyLevel > 0) {
-            bodyLevel--;
-        }
-        if (discardLevel > 0) {
-            discardLevel--;
-        }
-    }
-    private void handleSrcDoc(String string) throws SAXException {
-        Metadata m = new Metadata();
-        m.set(TikaCoreProperties.EMBEDDED_RESOURCE_TYPE,
-                TikaCoreProperties.EmbeddedResourceType.INLINE.toString());
-        m.set(TikaCoreProperties.CONTENT_TYPE_PARSER_OVERRIDE, "text/html");
-        //TODO add metadata about iframe content?
-        EmbeddedDocumentExtractor embeddedDocumentExtractor =
-                EmbeddedDocumentUtil.getEmbeddedDocumentExtractor(context);
-        if (embeddedDocumentExtractor.shouldParseEmbedded(m)) {
-            try (InputStream stream = new UnsynchronizedByteArrayInputStream(string.getBytes(StandardCharsets.UTF_8))) {
-                embeddedDocumentExtractor.parseEmbedded(stream, xhtml, m, true);
-            } catch (IOException e) {
-                EmbeddedDocumentUtil.recordEmbeddedStreamException(e, metadata);
-            }
-        }
-    }
-
-    private void handleDataURIScheme(String string) throws SAXException {
-        DataURIScheme dataURIScheme = null;
-        try {
-            dataURIScheme = dataURISchemeUtil.parse(string);
-        } catch (DataURISchemeParseException e) {
-            //swallow
-            return;
-        }
-
-        //do anything with attrs?
-        Metadata m = new Metadata();
-        m.set(TikaCoreProperties.EMBEDDED_RESOURCE_TYPE,
-                TikaCoreProperties.EmbeddedResourceType.INLINE.toString());
-        if (dataURIScheme.getMediaType() != null) {
-            m.set(Metadata.CONTENT_TYPE, dataURIScheme.getMediaType().toString());
-        }
-        EmbeddedDocumentExtractor embeddedDocumentExtractor =
-                EmbeddedDocumentUtil.getEmbeddedDocumentExtractor(context);
-        if (embeddedDocumentExtractor.shouldParseEmbedded(m)) {
-            try (InputStream stream = dataURIScheme.getInputStream()) {
-                embeddedDocumentExtractor.parseEmbedded(stream, xhtml, m, true);
-            } catch (IOException e) {
-                EmbeddedDocumentUtil.recordEmbeddedStreamException(e, metadata);
-            }
-        }
-    }
-
-    private void writeScript() throws SAXException {
-        //don't write an attached macro if there is no content
-        //we may want to revisit this behavior
-        if (script.toString().trim().length() == 0) {
-            return;
-        }
-        //do anything with attrs?
-        Metadata m = new Metadata();
-        m.set(TikaCoreProperties.EMBEDDED_RESOURCE_TYPE,
-                TikaCoreProperties.EmbeddedResourceType.MACRO.toString());
-        String src = scriptAtts.getValue("src");
-        if (src != null) {
-            m.set(HTML.SCRIPT_SOURCE, src);
-        }
-
-        EmbeddedDocumentExtractor embeddedDocumentExtractor =
-                EmbeddedDocumentUtil.getEmbeddedDocumentExtractor(context);
-        //try to scrape dataURISchemes from javascript
-        List<DataURIScheme> dataURISchemes = dataURISchemeUtil.extract(script.toString());
-        for (DataURIScheme dataURIScheme : dataURISchemes) {
-            Metadata dataUriMetadata = new Metadata();
-            dataUriMetadata.set(TikaCoreProperties.EMBEDDED_RESOURCE_TYPE,
-                    TikaCoreProperties.EmbeddedResourceType.INLINE.toString());
-            dataUriMetadata.set(Metadata.CONTENT_TYPE, dataURIScheme.getMediaType().toString());
-            if (embeddedDocumentExtractor.shouldParseEmbedded(dataUriMetadata)) {
-                try (InputStream dataURISchemeInputStream = dataURIScheme.getInputStream()) {
-                    embeddedDocumentExtractor
-                            .parseEmbedded(dataURISchemeInputStream, xhtml, dataUriMetadata, true);
-                } catch (IOException e) {
-                    //swallow
-                }
-            }
-        }
-
-        try (InputStream stream = new UnsynchronizedByteArrayInputStream(
-                script.toString().getBytes(StandardCharsets.UTF_8))) {
-            embeddedDocumentExtractor.parseEmbedded(stream, xhtml, m, true);
-        } catch (IOException e) {
-            //shouldn't ever happen
-        } finally {
-            script.setLength(0);
-        }
-    }
-
-    @Override
-    public void characters(char[] ch, int start, int length) throws SAXException {
-        if (scriptLevel > 0 && extractScripts) {
-            script.append(ch, start, length);
-        }
-        if (titleLevel > 0 && bodyLevel == 0) {
-            title.append(ch, start, length);
-        }
-        if (bodyLevel > 0 && discardLevel == 0) {
-            super.characters(ch, start, length);
-        }
-
-    }
-
-    @Override
-    public void ignorableWhitespace(char[] ch, int start, int length) throws SAXException {
-        if (bodyLevel > 0 && discardLevel == 0) {
-            super.ignorableWhitespace(ch, start, length);
-        }
-    }
-
-    private String resolve(String url) {
-        return resolve(metadata.get(Metadata.CONTENT_LOCATION), url);
-    }
-
-    private String resolve(String base, String url) {
-        url = url.trim();
-
-        // Return the URL as-is if no base URL is available or if the URL
-        // matches a common non-hierarchical or pseudo URI prefix
-        String lower = url.toLowerCase(Locale.ENGLISH);
-        if (base == null || lower.startsWith("urn:") || lower.startsWith("mailto:") ||
-                lower.startsWith("tel:") || lower.startsWith("data:") ||
-                lower.startsWith("javascript:") || lower.startsWith("about:")) {
-            return url;
-        }
-
-        try {
-            URL baseURL = new URL(base.trim());
-
-            // We need to handle one special case, where the relativeUrl is
-            // just a query string (like "?pid=1"), and the baseUrl doesn't
-            // end with a '/'. In that case, the URL class removes the last
-            // portion of the path, which we don't want.
-            String path = baseURL.getPath();
-            if (url.startsWith("?") && path.length() > 0 && !path.endsWith("/")) {
-                return new URL(baseURL.getProtocol(), baseURL.getHost(), baseURL.getPort(),
-                        baseURL.getPath() + url).toExternalForm();
-            } else {
-                return new URL(baseURL, url).toExternalForm();
-            }
-        } catch (MalformedURLException e) {
-            // Unknown or broken format; just return the URL as received.
-            return url;
-        }
-    }
-
-}
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/HtmlMapper.java b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/HtmlMapper.java
deleted file mode 100644
index 4a2a0c95b..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/HtmlMapper.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.tika.parser.html.tagsoup;
-
-/**
- * HTML mapper used to make incoming HTML documents easier to handle by
- * Tika clients. The {@link HtmlParser} looks up an optional HTML mapper from
- * the parse context and uses it to map parsed HTML to "safe" XHTML. A client
- * that wants to customize this mapping can place a custom HtmlMapper instance
- * into the parse context.
- *
- * @since Apache Tika 0.6
- */
-public interface HtmlMapper {
-
-    /**
-     * Maps "safe" HTML element names to semantic XHTML equivalents. If the
-     * given element is unknown or deemed unsafe for inclusion in the parse
-     * output, then this method returns <code>null</code> and the element
-     * will be ignored but the content inside it is still processed. See
-     * the {@link #isDiscardElement(String)} method for a way to discard
-     * the entire contents of an element.
-     *
-     * @param name HTML element name (upper case)
-     * @return XHTML element name (lower case), or
-     * <code>null</code> if the element is unsafe
-     */
-    String mapSafeElement(String name);
-
-    /**
-     * Checks whether all content within the given HTML element should be
-     * discarded instead of including it in the parse output.
-     *
-     * @param name HTML element name (upper case)
-     * @return <code>true</code> if content inside the named element
-     * should be ignored, <code>false</code> otherwise
-     */
-    boolean isDiscardElement(String name);
-
-
-    /**
-     * Maps "safe" HTML attribute names to semantic XHTML equivalents. If the
-     * given attribute is unknown or deemed unsafe for inclusion in the parse
-     * output, then this method returns <code>null</code> and the attribute
-     * will be ignored. This method assumes that the element name
-     * is valid and normalised.
-     *
-     * @param elementName   HTML element name (lower case)
-     * @param attributeName HTML attribute name (lower case)
-     * @return XHTML attribute name (lower case), or
-     * <code>null</code> if the element is unsafe
-     */
-    String mapSafeAttribute(String elementName, String attributeName);
-
-}
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/HtmlParser.java b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/HtmlParser.java
deleted file mode 100644
index 579edcf77..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/HtmlParser.java
+++ /dev/null
@@ -1,236 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.tika.parser.html.tagsoup;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.nio.charset.Charset;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.apache.commons.io.input.CloseShieldInputStream;
-import org.ccil.cowan.tagsoup.HTMLSchema;
-import org.ccil.cowan.tagsoup.Schema;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.xml.sax.ContentHandler;
-import org.xml.sax.SAXException;
-
-import org.apache.tika.config.Field;
-import org.apache.tika.detect.AutoDetectReader;
-import org.apache.tika.detect.EncodingDetector;
-import org.apache.tika.exception.TikaException;
-import org.apache.tika.io.TemporaryResources;
-import org.apache.tika.io.TikaInputStream;
-import org.apache.tika.metadata.Metadata;
-import org.apache.tika.mime.MediaType;
-import org.apache.tika.parser.AbstractEncodingDetectorParser;
-import org.apache.tika.parser.ParseContext;
-
-/**
- * HTML parser. Uses TagSoup to turn the input document to HTML SAX events,
- * and post-processes the events to produce XHTML and metadata expected by
- * Tika clients.
- */
-public class HtmlParser extends AbstractEncodingDetectorParser {
-
-    /**
-     * Serial version UID
-     */
-    private static final long serialVersionUID = 7895315240498733128L;
-
-    private static final Logger LOG = LoggerFactory.getLogger(HtmlParser.class);
-
-    private static final MediaType XHTML = MediaType.application("xhtml+xml");
-    private static final MediaType WAP_XHTML = MediaType.application("vnd.wap.xhtml+xml");
-    private static final MediaType X_ASP = MediaType.application("x-asp");
-
-    private static final Set<MediaType> SUPPORTED_TYPES = Collections.unmodifiableSet(
-            new HashSet<>(Arrays.asList(MediaType.text("html"), XHTML, WAP_XHTML, X_ASP)));
-
-    /**
-     * HTML schema singleton used to amortise the heavy instantiation time.
-     */
-    private static final Schema HTML_SCHEMA = new HTMLSchema();
-
-    @Field
-    private boolean extractScripts = false;
-
-    public HtmlParser() {
-        super();
-    }
-
-    public HtmlParser(EncodingDetector encodingDetector) {
-        super(encodingDetector);
-    }
-
-    public Set<MediaType> getSupportedTypes(ParseContext context) {
-        return SUPPORTED_TYPES;
-    }
-
-    public void parse(InputStream stream, ContentHandler handler, Metadata metadata,
-                      ParseContext context) throws IOException, SAXException, TikaException {
-
-        TemporaryResources tmp = null;
-        try {
-            if (!TikaInputStream.isTikaInputStream(stream)) {
-                tmp = new TemporaryResources();
-                stream = TikaInputStream.get(stream, tmp, metadata);
-            }
-            //AutoDetectReader can throw exceptions during
-            //initialization.  If we just created a
-            //TemporaryResources, we need to make sure to close it.
-            parseImpl(stream, handler, metadata, context);
-        } finally {
-            if (tmp != null) {
-                tmp.close();
-            }
-        }
-
-    }
-
-
-    private void parseImpl(InputStream stream, ContentHandler handler, Metadata metadata,
-                           ParseContext context) throws IOException, SAXException, TikaException {
-        // Automatically detect the character encoding
-        try (AutoDetectReader reader = new AutoDetectReader(CloseShieldInputStream.wrap(stream),
-                metadata, getEncodingDetector(context))) {
-            Charset charset = reader.getCharset();
-            String previous = metadata.get(Metadata.CONTENT_TYPE);
-            MediaType contentType = null;
-            if (previous == null || previous.startsWith("text/html")) {
-                contentType = new MediaType(MediaType.TEXT_HTML, charset);
-            } else if (previous.startsWith("application/xhtml+xml")) {
-                contentType = new MediaType(XHTML, charset);
-            } else if (previous.startsWith("application/vnd.wap.xhtml+xml")) {
-                contentType = new MediaType(WAP_XHTML, charset);
-            } else if (previous.startsWith("application/x-asp")) {
-                contentType = new MediaType(X_ASP, charset);
-            }
-            if (contentType != null) {
-                metadata.set(Metadata.CONTENT_TYPE, contentType.toString());
-            }
-            // deprecated, see TIKA-431
-            metadata.set(Metadata.CONTENT_ENCODING, charset.name());
-
-            // Get the HTML mapper from the parse context
-            HtmlMapper mapper = context.get(HtmlMapper.class, new HtmlParserMapper());
-
-            // Parse the HTML document
-            org.ccil.cowan.tagsoup.Parser parser = new org.ccil.cowan.tagsoup.Parser();
-
-            // Use schema from context or default
-            Schema schema = context.get(Schema.class, HTML_SCHEMA);
-
-            // TIKA-528: Reuse share schema to avoid heavy instantiation
-            parser.setProperty(org.ccil.cowan.tagsoup.Parser.schemaProperty, schema);
-            // TIKA-599: Shared schema is thread-safe only if bogons are ignored
-            parser.setFeature(org.ccil.cowan.tagsoup.Parser.ignoreBogonsFeature, true);
-
-            parser.setContentHandler(new XHTMLDowngradeHandler(
-                    new HtmlHandler(mapper, handler, metadata, context, extractScripts)));
-
-            parser.parse(reader.asInputSource());
-        }
-    }
-
-    /**
-     * Maps "safe" HTML element names to semantic XHTML equivalents. If the
-     * given element is unknown or deemed unsafe for inclusion in the parse
-     * output, then this method returns <code>null</code> and the element
-     * will be ignored but the content inside it is still processed. See
-     * the {@link #isDiscardElement(String)} method for a way to discard
-     * the entire contents of an element.
-     * <p/>
-     * Subclasses can override this method to customize the default mapping.
-     *
-     * @param name HTML element name (upper case)
-     * @return XHTML element name (lower case), or
-     * <code>null</code> if the element is unsafe
-     * @since Apache Tika 0.5
-     * @deprecated Use the {@link HtmlMapper} mechanism to customize
-     * the HTML mapping. This method will be removed in Tika 1.0.
-     */
-    protected String mapSafeElement(String name) {
-        return DefaultHtmlMapper.INSTANCE.mapSafeElement(name);
-    }
-
-    /**
-     * Checks whether all content within the given HTML element should be
-     * discarded instead of including it in the parse output. Subclasses
-     * can override this method to customize the set of discarded elements.
-     *
-     * @param name HTML element name (upper case)
-     * @return <code>true</code> if content inside the named element
-     * should be ignored, <code>false</code> otherwise
-     * @since Apache Tika 0.5
-     * @deprecated Use the {@link HtmlMapper} mechanism to customize
-     * the HTML mapping. This method will be removed in Tika 1.0.
-     */
-    protected boolean isDiscardElement(String name) {
-        return DefaultHtmlMapper.INSTANCE.isDiscardElement(name);
-    }
-
-    /**
-     * @deprecated Use the {@link HtmlMapper} mechanism to customize
-     * the HTML mapping. This method will be removed in Tika 1.0.
-     */
-    public String mapSafeAttribute(String elementName, String attributeName) {
-        return DefaultHtmlMapper.INSTANCE.mapSafeAttribute(elementName, attributeName);
-    }
-
-    public boolean isExtractScripts() {
-        return extractScripts;
-    }
-
-    /**
-     * Whether or not to extract contents in script entities.
-     * Default is <code>false</code>
-     *
-     * @param extractScripts
-     */
-    @Field
-    public void setExtractScripts(boolean extractScripts) {
-        this.extractScripts = extractScripts;
-    }
-
-    /**
-     * Adapter class that maintains backwards compatibility with the
-     * protected HtmlParser methods. Making HtmlParser implement HtmlMapper
-     * directly would require those methods to be public, which would break
-     * backwards compatibility with subclasses.
-     *
-     * @deprecated Use the {@link HtmlMapper} mechanism to customize
-     * the HTML mapping. This class will be removed in Tika 1.0.
-     */
-    private class HtmlParserMapper implements HtmlMapper {
-        public String mapSafeElement(String name) {
-            return HtmlParser.this.mapSafeElement(name);
-        }
-
-        public boolean isDiscardElement(String name) {
-            return HtmlParser.this.isDiscardElement(name);
-        }
-
-        public String mapSafeAttribute(String elementName, String attributeName) {
-            return HtmlParser.this.mapSafeAttribute(elementName, attributeName);
-        }
-    }
-
-}
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/IdentityHtmlMapper.java b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/IdentityHtmlMapper.java
deleted file mode 100644
index d5a6a245e..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/IdentityHtmlMapper.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.tika.parser.html.tagsoup;
-
-import java.util.Locale;
-
-/**
- * Alternative HTML mapping rules that pass the input HTML as-is without any
- * modifications.
- *
- * @since Apache Tika 0.8
- */
-public class IdentityHtmlMapper implements HtmlMapper {
-
-    public static final HtmlMapper INSTANCE = new IdentityHtmlMapper();
-
-    public boolean isDiscardElement(String name) {
-        return false;
-    }
-
-    public String mapSafeAttribute(String elementName, String attributeName) {
-        return attributeName.toLowerCase(Locale.ENGLISH);
-    }
-
-    public String mapSafeElement(String name) {
-        return name.toLowerCase(Locale.ENGLISH);
-    }
-
-}
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/XHTMLDowngradeHandler.java b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/XHTMLDowngradeHandler.java
deleted file mode 100644
index 307b5a2df..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/XHTMLDowngradeHandler.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.tika.parser.html.tagsoup;
-
-import java.util.Locale;
-import javax.xml.XMLConstants;
-
-import org.xml.sax.Attributes;
-import org.xml.sax.ContentHandler;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.AttributesImpl;
-
-import org.apache.tika.sax.ContentHandlerDecorator;
-
-/**
- * Content handler decorator that downgrades XHTML elements to
- * old-style HTML elements before passing them on to the decorated
- * content handler. This downgrading consists of dropping all namespaces
- * (and namespaced attributes) and uppercasing all element names.
- * Used by the {@link HtmlParser} to make all incoming HTML look the same.
- */
-class XHTMLDowngradeHandler extends ContentHandlerDecorator {
-
-    public XHTMLDowngradeHandler(ContentHandler handler) {
-        super(handler);
-    }
-
-    @Override
-    public void startElement(String uri, String localName, String name, Attributes atts)
-            throws SAXException {
-        String upper = localName.toUpperCase(Locale.ENGLISH);
-
-        AttributesImpl attributes = new AttributesImpl();
-        for (int i = 0; i < atts.getLength(); i++) {
-            String auri = atts.getURI(i);
-            String local = atts.getLocalName(i);
-            String qname = atts.getQName(i);
-            if (XMLConstants.NULL_NS_URI.equals(auri) &&
-                    !local.equals(XMLConstants.XMLNS_ATTRIBUTE) &&
-                    !qname.startsWith(XMLConstants.XMLNS_ATTRIBUTE + ":")) {
-                attributes.addAttribute(auri, local, qname, atts.getType(i), atts.getValue(i));
-            }
-        }
-
-        super.startElement(XMLConstants.NULL_NS_URI, upper, upper, attributes);
-    }
-
-    @Override
-    public void endElement(String uri, String localName, String name) throws SAXException {
-        String upper = localName.toUpperCase(Locale.ENGLISH);
-        super.endElement(XMLConstants.NULL_NS_URI, upper, upper);
-    }
-
-    @Override
-    public void startPrefixMapping(String prefix, String uri) {
-    }
-
-    @Override
-    public void endPrefixMapping(String prefix) {
-    }
-
-}
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/charsetdetector/CharsetAliases.java b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/charsetdetector/CharsetAliases.java
deleted file mode 100644
index aa915d4ff..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/charsetdetector/CharsetAliases.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.tika.parser.html.tagsoup.charsetdetector;
-
-
-import java.nio.charset.Charset;
-import java.nio.charset.IllegalCharsetNameException;
-import java.nio.charset.StandardCharsets;
-import java.nio.charset.UnsupportedCharsetException;
-import java.util.HashMap;
-import java.util.Locale;
-import java.util.Map;
-
-import org.apache.tika.parser.html.tagsoup.charsetdetector.charsets.ReplacementCharset;
-import org.apache.tika.parser.html.tagsoup.charsetdetector.charsets.XUserDefinedCharset;
-
-/**
- * Singleton class that associates standard charset names to java charset implementations
- * https://encoding.spec.whatwg.org/#ref-for-iso-8859-8-i
- */
-final class CharsetAliases {
-
-    private static final Map<String, Charset> charsetsByLabel = new HashMap<>();
-
-    private CharsetAliases() {
-    }
-
-    /**
-     * @param label a charset name
-     * @return the corresponding java charset, if there is one. Otherwise, null
-     */
-    static Charset getCharsetByLabel(String label) {
-        if (label == null) {
-            return null;
-        }
-        synchronized (charsetsByLabel) {
-            // Lazy initialization
-            if (charsetsByLabel.isEmpty()) {
-                addAll();
-            }
-        }
-        label = label.trim().toLowerCase(Locale.US);
-        return charsetsByLabel.get(label);
-    }
-
-    private static void addAll() {
-        addCharset(charset("Big5"), "big5", "big5-hkscs", "cn-big5", "csbig5", "x-x-big5");
-        addCharset(charset("EUC-JP"), "cseucpkdfmtjapanese", "euc-jp", "x-euc-jp");
-        addCharset(charset("EUC-KR"), "cseuckr", "csksc56011987", "euc-kr", "iso-ir-149", "korean",
-                "ks_c_5601-1987", "ks_c_5601-1989", "ksc5601", "ksc_5601", "windows-949");
-        addCharset(charset("GBK"), "chinese", "csgb2312", "csiso58gb231280", "gb2312", "gb_2312",
-                "gb_2312-80", "gbk", "iso-ir-58", "x-gbk");
-        addCharset(charset("IBM866"), "866", "cp866", "csibm866", "ibm866");
-        addCharset(charset("ISO-2022-JP"), "csiso2022jp", "iso-2022-jp");
-        addCharset(charset("ISO-8859-10", "ISO-8859-4"), "csisolatin6", "iso-8859-10", "iso-ir-157",
-                "iso8859-10", "iso885910", "l6", "latin6");
-        addCharset(charset("ISO-8859-13"), "iso-8859-13", "iso8859-13", "iso885913");
-        addCharset(charset("ISO-8859-14", "ISO-8859-1"), "iso-8859-14", "iso8859-14", "iso885914");
-        addCharset(charset("ISO-8859-15"), "csisolatin9", "iso-8859-15", "iso8859-15", "iso885915",
-                "iso_8859-15", "l9");
-        addCharset(charset("ISO-8859-16", "ISO-8859-1"), "iso-8859-16");
-        addCharset(charset("ISO-8859-2"), "csisolatin2", "iso-8859-2", "iso-ir-101", "iso8859-2",
-                "iso88592", "iso_8859-2", "iso_8859-2:1987", "l2", "latin2");
-        addCharset(charset("ISO-8859-3"), "csisolatin3", "iso-8859-3", "iso-ir-109", "iso8859-3",
-                "iso88593", "iso_8859-3", "iso_8859-3:1988", "l3", "latin3");
-        addCharset(charset("ISO-8859-4"), "csisolatin4", "iso-8859-4", "iso-ir-110", "iso8859-4",
-                "iso88594", "iso_8859-4", "iso_8859-4:1988", "l4", "latin4");
-        addCharset(charset("ISO-8859-5"), "csisolatincyrillic", "cyrillic", "iso-8859-5",
-                "iso-ir-144", "iso8859-5", "iso88595", "iso_8859-5", "iso_8859-5:1988");
-        addCharset(charset("ISO-8859-6"), "arabic", "asmo-708", "csiso88596e", "csiso88596i",
-                "csisolatinarabic", "ecma-114", "iso-8859-6", "iso-8859-6-e", "iso-8859-6-i",
-                "iso-ir-127", "iso8859-6", "iso88596", "iso_8859-6", "iso_8859-6:1987");
-        addCharset(charset("ISO-8859-7"), "csisolatingreek", "ecma-118", "elot_928", "greek",
-                "greek8", "iso-8859-7", "iso-ir-126", "iso8859-7", "iso88597", "iso_8859-7",
-                "iso_8859-7:1987", "sun_eu_greek");
-        // ISO-8859-8 actually should have an influence on the layout direction
-        // (text should be decoded in the visual order). However, this is not implemented in tika.
-        addCharset(charset("ISO-8859-8"), "csiso88598e", "csisolatinhebrew", "hebrew", "iso-8859-8",
-                "iso-8859-8-e", "iso-ir-138", "iso8859-8", "iso88598", "iso_8859-8",
-                "iso_8859-8:1988", "visual");
-        addCharset(charset("ISO-8859-8-I", "ISO-8859-8"), "csiso88598i", "iso-8859-8-i", "logical");
-        addCharset(charset("KOI8-R"), "cskoi8r", "koi", "koi8", "koi8-r", "koi8_r");
-        addCharset(charset("KOI8-U"), "koi8-ru", "koi8-u");
-        addCharset(charset("Shift_JIS"), "csshiftjis", "ms932", "ms_kanji", "shift-jis",
-                "shift_jis", "sjis", "windows-31j", "x-sjis");
-        addCharset(charset("UTF-16BE"), "utf-16be");
-        addCharset(charset("UTF-16LE"), "utf-16", "utf-16le");
-        addCharset(charset("UTF-8"), "unicode-1-1-utf-8", "utf-8", "utf8");
-        addCharset(charset("gb18030"), "gb18030");
-        addCharset(charset("windows-1250"), "cp1250", "windows-1250", "x-cp1250");
-        addCharset(charset("windows-1251"), "cp1251", "windows-1251", "x-cp1251");
-        addCharset(charset("windows-1252"), "ansi_x3.4-1968", "ascii", "cp1252", "cp819",
-                "csisolatin1", "ibm819", "iso-8859-1", "iso-ir-100", "iso8859-1", "iso88591",
-                "iso_8859-1", "iso_8859-1:1987", "l1", "latin1", "us-ascii", "windows-1252",
-                "x-cp1252");
-        addCharset(charset("windows-1253"), "cp1253", "windows-1253", "x-cp1253");
-        addCharset(charset("windows-1254"), "cp1254", "csisolatin5", "iso-8859-9", "iso-ir-148",
-                "iso8859-9", "iso88599", "iso_8859-9", "iso_8859-9:1989", "l5", "latin5",
-                "windows-1254", "x-cp1254");
-        addCharset(charset("windows-1255"), "cp1255", "windows-1255", "x-cp1255");
-        addCharset(charset("windows-1256"), "cp1256", "windows-1256", "x-cp1256");
-        addCharset(charset("windows-1257"), "cp1257", "windows-1257", "x-cp1257");
-        addCharset(charset("windows-1258"), "cp1258", "windows-1258", "x-cp1258");
-        addCharset(charset("windows-874"), "dos-874", "iso-8859-11", "iso8859-11", "iso885911",
-                "tis-620", "windows-874");
-        addCharset(charset("x-MacCyrillic"), "x-mac-cyrillic", "x-mac-ukrainian");
-        addCharset(charset("x-MacRoman"), "csmacintosh", "mac", "macintosh", "x-mac-roman");
-        // The "replacement" charset is a dummy charset.  It is present to mitigate wrong-charset
-        // attacks
-        addCharset(new ReplacementCharset(), "csiso2022kr", "hz-gb-2312", "iso-2022-cn",
-                "iso-2022-cn-ext", "iso-2022-kr", "replacement");
-        // The x-user-defined charset is not present in java
-        addCharset(new XUserDefinedCharset(), "x-user-defined");
-    }
-
-    /**
-     * @param names jvm charset names
-     * @return the first of the given charsets that exists in the current JVM,
-     * or ISO_8859_1 if none exists
-     */
-    private static Charset charset(String... names) {
-        for (String name : names) {
-            try {
-                return Charset.forName(name);
-            } catch (IllegalCharsetNameException | UnsupportedCharsetException e) {
-                /* pass */
-            }
-        }
-        // The only single-byte charset extended charset that must be present on every Java platform
-        return StandardCharsets.ISO_8859_1;
-    }
-
-    /**
-     * @param charset name of the charset in the JVM
-     * @param names   standard W3C charset names
-     */
-    private static void addCharset(Charset charset, String... names) {
-        for (String name : names) {
-            charsetsByLabel.put(name, charset);
-        }
-    }
-}
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/charsetdetector/CharsetDetectionResult.java b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/charsetdetector/CharsetDetectionResult.java
deleted file mode 100644
index b2a3046bd..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/charsetdetector/CharsetDetectionResult.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.tika.parser.html.tagsoup.charsetdetector;
-
-import static java.nio.charset.StandardCharsets.UTF_16BE;
-import static java.nio.charset.StandardCharsets.UTF_16LE;
-import static java.nio.charset.StandardCharsets.UTF_8;
-
-import java.nio.charset.Charset;
-
-
-/**
- * A detection may either not find a charset, find an invalid charset, or find a valid charset
- */
-class CharsetDetectionResult {
-    private boolean found = false;
-    private Charset charset = null;
-
-    private CharsetDetectionResult() { /* default result: not found */}
-
-    static CharsetDetectionResult notFound() {
-        return new CharsetDetectionResult();
-    }
-
-    public boolean isFound() {
-        return found;
-    }
-
-    public void find(String charsetName) {
-        this.found = true;
-        charsetName = charsetName.trim();
-        if ("x-user-defined".equals(charsetName)) {
-            charsetName = "windows-1252";
-        }
-        this.charset = CharsetAliases.getCharsetByLabel(charsetName);
-        // The specification states: If charset is a UTF-16 encoding, then set charset to UTF-8.
-        if (UTF_16LE.equals(charset) || UTF_16BE.equals(charset)) {
-            charset = UTF_8;
-        }
-    }
-
-    public Charset getCharset() {
-        // the result may be null even if found is true, in the case there is a charset specified,
-        // but it is invalid
-        return charset;
-    }
-
-    public void setCharset(Charset charset) {
-        this.found = true;
-        this.charset = charset;
-    }
-}
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/charsetdetector/MetaProcessor.java b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/charsetdetector/MetaProcessor.java
deleted file mode 100644
index 6f15bd032..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/charsetdetector/MetaProcessor.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.tika.parser.html.tagsoup.charsetdetector;
-
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-
-/**
- * A class to process the attributes of an HTML meta tag in order to extract a character set.
- * The user should repeatedly call {@link #processAttribute} on each attributes of the tag,
- * then update its current detection result with
- * {@link #updateDetectedCharset(CharsetDetectionResult)}
- * <p>
- * The algorithm implemented is meant to match the one described by the W3C here:
- * https://html.spec.whatwg.org/multipage/parsing.html#prescan-a-byte-stream-to-determine-its-encoding
- */
-class MetaProcessor {
-    private Set<String> attributeNames = new HashSet<>();
-    private boolean gotPragma = false;
-    private Boolean needPragma = null; // needPragma can be null, true, or false
-    private CharsetDetectionResult detectionResult = CharsetDetectionResult.notFound();
-
-    void updateDetectedCharset(CharsetDetectionResult currentDetectionResult) {
-        if (detectionResult.isFound() && needPragma != null && !(needPragma && !gotPragma)) {
-            currentDetectionResult.setCharset(detectionResult.getCharset());
-        }
-    }
-
-    void processAttribute(Map.Entry<String, String> attribute) {
-        // Ignore duplicate attributes
-        if (attributeNames.contains(attribute.getKey())) {
-            return;
-        }
-
-        attributeNames.add(attribute.getKey());
-
-        // Handle charset-related attributes
-        switch (attribute.getKey()) {
-            case "http-equiv":
-                if (attribute.getValue().equals("content-type")) {
-                    gotPragma = true;
-                }
-                break;
-            case "content":
-                String charsetName = PreScanner.getEncodingFromMeta(attribute.getValue());
-                if (!detectionResult.isFound() && charsetName != null) {
-                    detectionResult.find(charsetName);
-                    needPragma = true;
-                }
-                break;
-            case "charset":
-                detectionResult.find(attribute.getValue());
-                needPragma = false;
-                break;
-            default: // Ignore non-charset related attributes
-        }
-    }
-}
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/charsetdetector/PreScanner.java b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/charsetdetector/PreScanner.java
deleted file mode 100644
index 30bb7c9cb..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/charsetdetector/PreScanner.java
+++ /dev/null
@@ -1,297 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.tika.parser.html.tagsoup.charsetdetector;
-
-import java.io.BufferedInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.nio.charset.Charset;
-import java.nio.charset.StandardCharsets;
-import java.util.AbstractMap;
-import java.util.BitSet;
-import java.util.Map;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-/**
- * A scanner meant to detect charset meta tags in a byte stream
- * See: https://html.spec.whatwg.org/multipage/parsing.html#prescan-a-byte-stream-to-determine-its-encoding
- */
-class PreScanner {
-
-    private static final Pattern CHARSET_PATTERN =
-            Pattern.compile("charset\\s*=\\s*([\"']?)([^\"'\\s;]+)\\1");
-    private static final byte[] COMMENT_START = {(byte) '<', (byte) '!', (byte) '-', (byte) '-'};
-    private static final byte[] COMMENT_END = {(byte) '-', (byte) '-', (byte) '>'};
-    private static final byte[] META_TAG_START =
-            {(byte) '<', (byte) 'm', (byte) 'e', (byte) 't', (byte) 'a'};
-    private static final byte SLASH = (byte) '/';
-    private static final byte EQUAL = (byte) '=';
-    private static final byte TAG_START = (byte) '<';
-    private static final byte TAG_END = (byte) '>';
-    private static final BitSet QUOTE = bitSet('"', '\'');
-
-    private static final BitSet WHITESPACE = bitSet(0x09, 0x0A, 0x0C, 0x0D, 0x0D, 0x20);
-    private static final BitSet SPACE_OR_TAG_END = bitSet(WHITESPACE, TAG_END);
-    private static final BitSet SPACE_OR_SLASH = bitSet(WHITESPACE, SLASH);
-    private static final BitSet SPECIAL_TAGS = bitSet('!', '/', '?');
-
-    private static final byte[] UTF8_BOM = {(byte) 0xEF, (byte) 0xBB, (byte) 0xBF};
-    private static final byte[] UTF16_BE_BOM = {(byte) 0xFE, (byte) 0xFF};
-    private static final byte[] UTF16_LE_BOM = {(byte) 0xFF, (byte) 0xFE};
-    private static final byte LOWER_A = (byte) 'a';
-    private static final byte LOWER_Z = (byte) 'z';
-    private static final byte UPPER_A = (byte) 'A';
-    private static final byte UPPER_Z = (byte) 'Z';
-    private BufferedInputStream stream;
-    private CharsetDetectionResult detectedCharset = CharsetDetectionResult.notFound();
-
-    PreScanner(InputStream inputStream) {
-        this.stream = new BufferedInputStream(inputStream);
-    }
-
-    private static BitSet bitSet(int... bs) {
-        BitSet bitSet = new BitSet(0xFF);
-        for (int b : bs) bitSet.set(b);
-        return bitSet;
-    }
-
-    private static BitSet bitSet(BitSet base, int... bs) {
-        BitSet bitSet = (BitSet) base.clone();
-        for (int b : bs) bitSet.set(b);
-        return bitSet;
-    }
-
-    static String getEncodingFromMeta(String attributeValue) {
-        Matcher matcher = CHARSET_PATTERN.matcher(attributeValue);
-        if (!matcher.find()) {
-            return null;
-        }
-        return matcher.group(2);
-    }
-
-    private static boolean contains(BitSet bitSet, byte b) {
-        return bitSet.get(b & 0xFF);
-    }
-
-    Charset scan() {
-        while (processAtLeastOneByte()) {
-            if (detectedCharset.isFound()) {
-                return detectedCharset.getCharset();
-            }
-        }
-        return null;
-    }
-
-    Charset detectBOM() {
-        try {
-            if (expect(UTF8_BOM)) {
-                return StandardCharsets.UTF_8;
-            } else if (expect(UTF16_BE_BOM)) {
-                return StandardCharsets.UTF_16BE;
-            } else if (expect(UTF16_LE_BOM)) {
-                return StandardCharsets.UTF_16LE;
-            }
-        } catch (IOException e) { /* stream could not be read, also return null */ }
-        return null;
-    }
-
-    private boolean processAtLeastOneByte() {
-        try {
-            return processComment() || processMeta() || processTag() || processSpecialTag() ||
-                    processAny();
-        } catch (IOException e) {
-            return false;
-        }
-    }
-
-    private boolean processAny() throws IOException {
-        int read = stream.read();
-        return read != -1;
-    }
-
-    private boolean processTag() throws IOException {
-        stream.mark(3);
-        if (read() == TAG_START) {
-            int read = stream.read();
-            if (read == SLASH) {
-                read = stream.read();
-            }
-            if ((LOWER_A <= read && read <= LOWER_Z) || (UPPER_A <= read && read <= UPPER_Z)) {
-                do {
-                    stream.mark(1);
-                } while (!contains(SPACE_OR_TAG_END, read()));
-                stream.reset();
-                while (getAttribute() != null) {/* ignore the attribute*/}
-                return true;
-            }
-        }
-        stream.reset();
-        return false;
-    }
-
-    private boolean processSpecialTag() throws IOException {
-        stream.mark(2);
-        if (read() == TAG_START && contains(SPECIAL_TAGS, read())) {
-            skipUntil(TAG_END);
-            return true;
-        }
-        stream.reset();
-        return false;
-    }
-
-    private boolean processMeta() throws IOException {
-        stream.mark(6); // len("<meta ") == 6
-        if (readCaseInsensitive(META_TAG_START) && contains(SPACE_OR_SLASH, read())) {
-            MetaProcessor metaProcessor = new MetaProcessor();
-            for (Map.Entry<String, String> attribute = getAttribute(); attribute != null;
-                    attribute = getAttribute()) {
-                metaProcessor.processAttribute(attribute);
-            }
-            metaProcessor.updateDetectedCharset(detectedCharset);
-            return true;
-        }
-        stream.reset();
-        return false;
-    }
-
-    /**
-     * Read an attribute from the stream
-     *
-     * @return the attribute as a Map.Entry, where the key is the attribute's name and
-     * the value is the attribute's value. If there is no attribute, return null
-     */
-    private Map.Entry<String, String> getAttribute() throws IOException {
-        String name = getAttributeName();
-        if (name == null) {
-            return null;
-        }
-
-        if (!expect(EQUAL)) {
-            return new AbstractMap.SimpleEntry<>(name, "");
-        }
-        skipAll(WHITESPACE);
-
-        String value = getAttributeValue();
-        return new AbstractMap.SimpleEntry<>(name, value);
-    }
-
-    private String getAttributeName() throws IOException {
-        skipAll(SPACE_OR_SLASH);
-        if (expect(TAG_END)) {
-            return null;
-        }
-        StringBuilder name = new StringBuilder();
-        while (!(peek() == EQUAL && name.length() > 0) && !(peek() == TAG_END || peek() == SLASH) &&
-                !skipAll(WHITESPACE)) {
-            name.append((char) getLowerCaseChar());
-        }
-        return name.toString();
-    }
-
-    private String getAttributeValue() throws IOException {
-        StringBuilder value = new StringBuilder();
-        stream.mark(1);
-        byte quote = read();
-        if (contains(QUOTE, quote)) {
-            for (byte b = getLowerCaseChar(); b != quote; b = getLowerCaseChar()) {
-                value.append((char) b);
-            }
-        } else {
-            stream.reset();
-            for (byte b = getLowerCaseChar(); !contains(SPACE_OR_TAG_END, b);
-                    b = getLowerCaseChar()) {
-                value.append((char) b);
-                stream.mark(1);
-            }
-            stream.reset(); // unread the space or tag end
-        }
-        return value.toString();
-    }
-
-    private boolean skipAll(BitSet bitSet) throws IOException {
-        boolean skipped = false;
-        stream.mark(1);
-        for (byte read = read(); contains(bitSet, read); read = read()) {
-            skipped = true;
-            stream.mark(1);
-        }
-        stream.reset();
-        return skipped;
-    }
-
-    private byte getLowerCaseChar() throws IOException {
-        byte nextPoint = read();
-        if (nextPoint >= 'A' && nextPoint <= 'Z') {
-            nextPoint += 0x20; // lowercase
-        }
-        return nextPoint;
-    }
-
-    private boolean processComment() throws IOException {
-        if (!expect(COMMENT_START)) {
-            return false;
-        }
-        if (!expect(TAG_END)) {
-            skipUntil(COMMENT_END);
-        }
-        return true;
-    }
-
-    private boolean expect(byte... expected) throws IOException {
-        stream.mark(expected.length);
-        for (byte b : expected) {
-            byte read = read();
-            if (read != b) {
-                stream.reset();
-                return false;
-            }
-        }
-        return true;
-    }
-
-    private void skipUntil(byte... expected) throws IOException {
-        while (!expect(expected)) {
-            if (stream.read() == -1) {
-                return;
-            }
-        }
-    }
-
-    private boolean readCaseInsensitive(byte... bs) throws IOException {
-        for (byte b : bs)
-            if (getLowerCaseChar() != b) {
-                return false;
-            }
-        return true;
-    }
-
-    private byte read() throws IOException {
-        int r = stream.read();
-        if (r == -1) {
-            throw new IOException();
-        }
-        return (byte) r;
-    }
-
-    private byte peek() throws IOException {
-        stream.mark(1);
-        byte b = read();
-        stream.reset();
-        return b;
-    }
-}
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/charsetdetector/StandardHtmlEncodingDetector.java b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/charsetdetector/StandardHtmlEncodingDetector.java
deleted file mode 100644
index 5bdb8fd98..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/charsetdetector/StandardHtmlEncodingDetector.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.tika.parser.html.tagsoup.charsetdetector;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.nio.charset.Charset;
-
-import org.apache.commons.io.input.BoundedInputStream;
-
-import org.apache.tika.config.Field;
-import org.apache.tika.detect.EncodingDetector;
-import org.apache.tika.metadata.Metadata;
-import org.apache.tika.mime.MediaType;
-
-/**
- * An encoding detector that tries to respect the spirit of the HTML spec
- * part 12.2.3 "The input byte stream", or at least the part that is compatible with
- * the implementation of tika.
- * <p>
- * https://html.spec.whatwg.org/multipage/parsing.html#the-input-byte-stream
- * <p>
- * If a resource was fetched over HTTP, then HTTP headers should be added to tika metadata
- * when using {@link #detect}, especially {@link Metadata#CONTENT_TYPE}, as it may contain
- * charset information.
- * <p>
- * This encoding detector may return null if no encoding is detected.
- * It is meant to be used inside a {@link org.apache.tika.detect.CompositeEncodingDetector}.
- * For instance:
- * <pre> {@code
- *     EncodingDetector detector = new CompositeEncodingDetector(
- *       Arrays.asList(
- *         new StandardHtmlEncodingDetector(),
- *         new Icu4jEncodingDetector()));
- * }</pre>
- * <p>
- */
-public final class StandardHtmlEncodingDetector implements EncodingDetector {
-    private static final int META_TAG_BUFFER_SIZE = 8192;
-
-    @Field
-    private int markLimit = META_TAG_BUFFER_SIZE;
-
-    /**
-     * Extracts a charset from a Content-Type HTTP header.
-     *
-     * @param metadata parser metadata
-     * @return a charset if there is one specified, or null
-     */
-    private static Charset charsetFromContentType(Metadata metadata) {
-        String contentType = metadata.get(Metadata.CONTENT_TYPE);
-        MediaType mediatype = MediaType.parse(contentType);
-        if (mediatype == null) {
-            return null;
-        }
-        String charsetLabel = mediatype.getParameters().get("charset");
-        return CharsetAliases.getCharsetByLabel(charsetLabel);
-    }
-
-    @Override
-    public Charset detect(InputStream input, Metadata metadata) throws IOException {
-        int limit = getMarkLimit();
-        input.mark(limit);
-        // Never read more than the first META_TAG_BUFFER_SIZE bytes
-        InputStream limitedStream = new BoundedInputStream(input, limit);
-        PreScanner preScanner = new PreScanner(limitedStream);
-
-        // The order of priority for detection is:
-        // 1. Byte Order Mark
-        Charset detectedCharset = preScanner.detectBOM();
-        // 2. Transport-level information (Content-Type HTTP header)
-        if (detectedCharset == null) {
-            detectedCharset = charsetFromContentType(metadata);
-        }
-        // 3. HTML <meta> tag
-        if (detectedCharset == null) {
-            detectedCharset = preScanner.scan();
-        }
-
-        input.reset();
-        return detectedCharset;
-    }
-
-    public int getMarkLimit() {
-        return markLimit;
-    }
-
-    /**
-     * How far into the stream to read for charset detection.
-     * Default is 8192.
-     */
-    @Field
-    public void setMarkLimit(int markLimit) {
-        this.markLimit = markLimit;
-    }
-}
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/charsetdetector/charsets/ReplacementCharset.java b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/charsetdetector/charsets/ReplacementCharset.java
deleted file mode 100644
index 73725e167..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/charsetdetector/charsets/ReplacementCharset.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.tika.parser.html.tagsoup.charsetdetector.charsets;
-
-import java.nio.ByteBuffer;
-import java.nio.CharBuffer;
-import java.nio.charset.Charset;
-import java.nio.charset.CharsetDecoder;
-import java.nio.charset.CharsetEncoder;
-import java.nio.charset.CoderResult;
-
-/**
- * An implementation of the standard "replacement" charset defined by the W3C.
- * See: https://encoding.spec.whatwg.org/#replacement
- */
-public class ReplacementCharset extends Charset {
-
-    public ReplacementCharset() {
-        super("replacement", null);
-    }
-
-    @Override
-    public boolean contains(Charset cs) {
-        return cs.equals(this);
-    }
-
-    public CharsetDecoder newDecoder() {
-        return new CharsetDecoder(this, Float.MIN_VALUE, 1) {
-            private boolean replacementErrorReturned = false;
-
-            @Override
-            protected CoderResult decodeLoop(ByteBuffer in, CharBuffer out) {
-                if (in.hasRemaining() && !replacementErrorReturned) {
-                    replacementErrorReturned = true;
-                    return CoderResult.malformedForLength(in.remaining());
-                }
-                in.position(in.limit());
-                return CoderResult.UNDERFLOW;
-            }
-
-            @Override
-            protected void implReset() {
-                replacementErrorReturned = false;
-            }
-        };
-    }
-
-    public CharsetEncoder newEncoder() {
-        throw new UnsupportedOperationException("This charset does not support encoding");
-    }
-}
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/charsetdetector/charsets/XUserDefinedCharset.java b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/charsetdetector/charsets/XUserDefinedCharset.java
deleted file mode 100644
index 87f797cb9..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/java/org/apache/tika/parser/html/tagsoup/charsetdetector/charsets/XUserDefinedCharset.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.tika.parser.html.tagsoup.charsetdetector.charsets;
-
-import java.nio.ByteBuffer;
-import java.nio.CharBuffer;
-import java.nio.charset.Charset;
-import java.nio.charset.CharsetDecoder;
-import java.nio.charset.CharsetEncoder;
-import java.nio.charset.CoderResult;
-import java.nio.charset.StandardCharsets;
-
-public class XUserDefinedCharset extends Charset {
-
-    public XUserDefinedCharset() {
-        super("x-user-defined", null);
-    }
-
-    @Override
-    public boolean contains(Charset cs) {
-        return cs.equals(StandardCharsets.US_ASCII);
-    }
-
-    public CharsetDecoder newDecoder() {
-        return new CharsetDecoder(this, 1, 1) {
-            @Override
-            protected CoderResult decodeLoop(ByteBuffer in, CharBuffer out) {
-                while (true) {
-                    if (!in.hasRemaining()) {
-                        return CoderResult.UNDERFLOW;
-                    }
-                    if (!out.hasRemaining()) {
-                        return CoderResult.OVERFLOW;
-                    }
-                    byte b = in.get();
-                    out.append((char) ((b >= 0) ? b : 0xF700 + (b & 0xFF)));
-                }
-            }
-        };
-    }
-
-    public CharsetEncoder newEncoder() {
-        throw new NotImplementedException("Encoding to x-user-defined is not implemented");
-    }
-
-    public static class NotImplementedException extends RuntimeException {
-        public NotImplementedException(String msg) {
-            super(msg);
-        }
-    }
-
-}
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/resources/META-INF/services/org.apache.tika.detect.EncodingDetector b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/resources/META-INF/services/org.apache.tika.detect.EncodingDetector
deleted file mode 100644
index 2c986b55c..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/resources/META-INF/services/org.apache.tika.detect.EncodingDetector
+++ /dev/null
@@ -1,15 +0,0 @@
-#  Licensed to the Apache Software Foundation (ASF) under one or more
-#  contributor license agreements.  See the NOTICE file distributed with
-#  this work for additional information regarding copyright ownership.
-#  The ASF licenses this file to You 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.
-org.apache.tika.parser.html.tagsoup.HtmlEncodingDetector
\ No newline at end of file
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/resources/META-INF/services/org.apache.tika.parser.Parser b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/resources/META-INF/services/org.apache.tika.parser.Parser
deleted file mode 100644
index 5dafda98f..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/resources/META-INF/services/org.apache.tika.parser.Parser
+++ /dev/null
@@ -1,15 +0,0 @@
-#  Licensed to the Apache Software Foundation (ASF) under one or more
-#  contributor license agreements.  See the NOTICE file distributed with
-#  this work for additional information regarding copyright ownership.
-#  The ASF licenses this file to You 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.
-org.apache.tika.parser.html.tagsoup.HtmlParser
\ No newline at end of file
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/resources/org/apache/tika/parser/html/tagsoup/StandardCharsets_unsupported_by_IANA.txt b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/resources/org/apache/tika/parser/html/tagsoup/StandardCharsets_unsupported_by_IANA.txt
deleted file mode 100644
index 956c6e0cd..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/main/resources/org/apache/tika/parser/html/tagsoup/StandardCharsets_unsupported_by_IANA.txt
+++ /dev/null
@@ -1,139 +0,0 @@
-#  Licensed to the Apache Software Foundation (ASF) under one or more
-#  contributor license agreements.  See the NOTICE file distributed with
-#  this work for additional information regarding copyright ownership.
-#  The ASF licenses this file to You 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.
-646
-737
-775
-813
-819
-858
-874
-8859_1
-8859_13
-8859_15
-8859_2
-8859_4
-8859_5
-8859_7
-8859_9
-912
-914
-915
-920
-923
-ansi-1251
-ascii
-ascii7
-cesu8
-cp1250
-cp1251
-cp1252
-cp1253
-cp1254
-cp1257
-cp5346
-cp5347
-cp5348
-cp5349
-cp5350
-cp5353
-cp737
-cp813
-cp858
-cp874
-cp912
-cp914
-cp915
-cp920
-cp923
-csibm862
-csisolatin0
-csisolatin9
-cspcp855
-default
-ibm-437
-ibm-737
-ibm-775
-ibm-813
-ibm-819
-ibm-850
-ibm-852
-ibm-855
-ibm-857
-ibm-862
-ibm-866
-ibm-874
-ibm-912
-ibm-914
-ibm-915
-ibm-920
-ibm-923
-ibm737
-ibm813
-ibm874
-ibm912
-ibm914
-ibm915
-ibm920
-ibm923
-iso8859-1
-iso8859-13
-iso8859-15
-iso8859-2
-iso8859-4
-iso8859-5
-iso8859-7
-iso8859-9
-iso8859_1
-iso8859_13
-iso8859_15
-iso8859_15_fdis
-iso8859_2
-iso8859_4
-iso8859_5
-iso8859_7
-iso8859_9
-iso_8859-13
-iso_8859_1
-koi8
-koi8_r
-koi8_u
-l9
-latin0
-latin9
-sun_eu_greek
-unicode
-unicode-1-1-utf-8
-unicodebig
-unicodebigunmarked
-unicodelittle
-unicodelittleunmarked
-utf-32be-bom
-utf-32le-bom
-utf16
-utf32
-utf8
-utf_16
-utf_16be
-utf_16le
-utf_32
-utf_32be
-utf_32be_bom
-utf_32le
-utf_32le_bom
-windows-437
-x-utf-16be
-x-utf-16le
-x-utf-32be
-x-utf-32le
\ No newline at end of file
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/java/org/apache/tika/parser/html/tagsoup/DataURISchemeParserTest.java b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/java/org/apache/tika/parser/html/tagsoup/DataURISchemeParserTest.java
deleted file mode 100644
index b0caec13f..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/java/org/apache/tika/parser/html/tagsoup/DataURISchemeParserTest.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.tika.parser.html.tagsoup;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
-import java.io.ByteArrayOutputStream;
-import java.nio.charset.StandardCharsets;
-
-import org.apache.commons.io.IOUtils;
-import org.junit.jupiter.api.Test;
-
-import org.apache.tika.TikaTest;
-import org.apache.tika.mime.MediaType;
-import org.apache.tika.parser.html.tagsoup.DataURISchemeUtil;
-
-public class DataURISchemeParserTest extends TikaTest {
-    DataURISchemeUtil dataURISchemeUtil = new DataURISchemeUtil();
-
-    @Test
-    public void testEmpty() throws Exception {
-        DataURIScheme dataURIScheme = dataURISchemeUtil.parse("data:,");
-        assertFalse(dataURIScheme.isBase64());
-        assertNull(dataURIScheme.getMediaType());
-        assertEquals(-1, dataURIScheme.getInputStream().read());
-    }
-
-    @Test
-    public void testNewlines() throws Exception {
-        String data = "data:image/png;base64,R0lG\nODdh";
-        DataURIScheme dataURIScheme = dataURISchemeUtil.parse(data);
-        assertTrue(dataURIScheme.isBase64());
-        assertEquals(MediaType.image("png"), dataURIScheme.getMediaType());
-
-        String expected = "data:image/png;base64,R0lGODdh";
-        assertEquals(dataURISchemeUtil.parse(expected), dataURISchemeUtil.parse(data));
-
-    }
-
-    @Test
-    public void testBackslashNewlines() throws Exception {
-        //like you'd have in a css fragment
-        String data = "data:image/png;base64,R0lG\\\nODdh";
-        DataURIScheme dataURIScheme = dataURISchemeUtil.parse(data);
-        assertTrue(dataURIScheme.isBase64());
-        assertEquals(MediaType.image("png"), dataURIScheme.getMediaType());
-
-        String expected = "data:image/png;base64,R0lGODdh";
-        assertEquals(dataURISchemeUtil.parse(expected), dataURISchemeUtil.parse(data));
-    }
-
-    @Test
-    public void testUTF8() throws Exception {
-        String utf8 = "\u0628\u0631\u0646\u0633\u062A\u0648\u0646";
-        String data = "data:text/plain;charset=UTF-8;page=21,the%20data:" + utf8;
-        DataURIScheme dataURIScheme = dataURISchemeUtil.parse(data);
-        ByteArrayOutputStream bos = new ByteArrayOutputStream();
-        IOUtils.copy(dataURIScheme.getInputStream(), bos);
-        assertContains(utf8, new String(bos.toByteArray(), StandardCharsets.UTF_8));
-    }
-}
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/java/org/apache/tika/parser/html/tagsoup/HtmlEncodingDetectorTest.java b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/java/org/apache/tika/parser/html/tagsoup/HtmlEncodingDetectorTest.java
deleted file mode 100644
index f37f7ec4c..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/java/org/apache/tika/parser/html/tagsoup/HtmlEncodingDetectorTest.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.tika.parser.html.tagsoup;
-
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.nio.charset.Charset;
-import java.nio.charset.StandardCharsets;
-
-import org.junit.jupiter.api.Disabled;
-import org.junit.jupiter.api.Test;
-
-import org.apache.tika.metadata.Metadata;
-import org.apache.tika.parser.html.tagsoup.HtmlEncodingDetector;
-
-public class HtmlEncodingDetectorTest {
-
-    @Test
-    public void basic() throws IOException {
-        assertWindows1252("<meta charset='WINDOWS-1252'>");
-    }
-
-    @Test
-    @Disabled("can we can prove this harms detection")
-    public void utf16() throws IOException {
-        // According to the specification 'If charset is a UTF-16 encoding,
-        // then set charset to UTF-8.'
-        assertCharset("<meta charset='UTF-16BE'>", StandardCharsets.UTF_8);
-    }
-
-    @Test
-    public void xUserDefined() throws IOException {
-        // According to the specification 'If charset is x-user-defined,
-        // then set charset to windows-1252.'
-        assertWindows1252("<meta charset='x-user-defined'>");
-    }
-
-    @Test
-    public void withSlash() throws IOException {
-        assertWindows1252("<meta/charset='WINDOWS-1252'>");
-    }
-
-    @Test
-    @Disabled("until we do a full parse")
-    public void insideTag() throws IOException {
-        assertWindows1252("<meta name='description'" +
-                "content='If I write charset=UTF-8 here, it doesnt mean the page is in UTF-8'/>" +
-                "<meta charset='WINDOWS-1252'>");
-    }
-
-    @Test
-    @Disabled("until we do a full parse")
-    public void missingAttribute() throws IOException {
-        assertWindows1252("<meta content='charset=UTF-8'>" + // missing http-equiv attribute
-                "<meta charset='WINDOWS-1252'>" // valid declaration
-        );
-    }
-
-    @Test
-    @Disabled("until we do a full parse")
-    public void insideSpecialTag() throws IOException {
-        // Content inside <?, <!, and </ should be ignored
-        for (byte b : "?!/".getBytes(StandardCharsets.US_ASCII))
-            assertWindows1252("<" + (char) b + // start comment
-                    "<meta charset='UTF-8'>" + // inside special tag
-                    "<meta charset='WINDOWS-1252'>" // real charset declaration
-            );
-    }
-
-    @Test
-    @Disabled("until we can prove this harms detection")
-    public void spaceBeforeTag() throws IOException {
-        assertWindows1252("< meta charset='UTF-8'>" + // invalid charset declaration
-                "<meta charset='WINDOWS-1252'>" // real charset declaration
-        );
-    }
-
-    @Test
-    public void invalidAttribute() throws IOException {
-        assertWindows1252("<meta " + "badcharset='UTF-8' " + // invalid charset declaration
-                "charset='WINDOWS-1252'>" // real charset declaration
-        );
-    }
-
-    @Test
-    @Disabled("until we can prove this harms detection")
-    public void unmatchedQuote() throws IOException {
-        assertWindows1252("<meta http-equiv='content-type' content='charset=\"UTF-8'>" +
-                // invalid charset declaration
-                "<meta charset='WINDOWS-1252'>" // real charset declaration
-        );
-    }
-
-
-    @Test
-    @Disabled("until we do a full parse")
-    public void withCompactComment() throws IOException {
-        // <!--> is a valid comment
-        assertWindows1252("<!--" + // start comment
-                "<meta charset='UTF-8'>" + // inside comment
-                "-->" + // end comment
-                "<!-->" + // compact comment
-                "<meta charset='WINDOWS-1252'>" // outside comment, charset declaration
-        );
-    }
-
-    private void assertWindows1252(String html) throws IOException {
-        assertCharset(html, Charset.forName("WINDOWS-1252"));
-    }
-
-    private void assertCharset(String html, Charset charset) throws IOException {
-        assertEquals(charset, detectCharset(html),
-                html + " should be detected as " + charset);
-    }
-
-    private Charset detectCharset(String test) throws IOException {
-        Metadata metadata = new Metadata();
-        InputStream inStream = new ByteArrayInputStream(test.getBytes(StandardCharsets.UTF_8));
-        return new HtmlEncodingDetector().detect(inStream, metadata);
-    }
-}
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/java/org/apache/tika/parser/html/tagsoup/HtmlParserTest.java b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/java/org/apache/tika/parser/html/tagsoup/HtmlParserTest.java
deleted file mode 100644
index 27bc5442c..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/java/org/apache/tika/parser/html/tagsoup/HtmlParserTest.java
+++ /dev/null
@@ -1,1305 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.tika.parser.html.tagsoup;
-
-import static java.nio.charset.StandardCharsets.ISO_8859_1;
-import static java.nio.charset.StandardCharsets.US_ASCII;
-import static java.nio.charset.StandardCharsets.UTF_8;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.StringWriter;
-import java.io.Writer;
-import java.nio.charset.Charset;
-import java.nio.charset.StandardCharsets;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ArrayBlockingQueue;
-import java.util.concurrent.Callable;
-import java.util.concurrent.CompletionService;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ExecutorCompletionService;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.Future;
-import java.util.regex.Pattern;
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.sax.SAXTransformerFactory;
-import javax.xml.transform.sax.TransformerHandler;
-import javax.xml.transform.stream.StreamResult;
-
-import org.ccil.cowan.tagsoup.HTMLSchema;
-import org.ccil.cowan.tagsoup.Schema;
-import org.junit.jupiter.api.Disabled;
-import org.junit.jupiter.api.Test;
-import org.xml.sax.Attributes;
-import org.xml.sax.ContentHandler;
-import org.xml.sax.Locator;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
-
-import org.apache.tika.Tika;
-import org.apache.tika.TikaTest;
-import org.apache.tika.config.ServiceLoader;
-import org.apache.tika.config.TikaConfig;
-import org.apache.tika.detect.AutoDetectReader;
-import org.apache.tika.detect.EncodingDetector;
-import org.apache.tika.exception.TikaException;
-import org.apache.tika.io.TikaInputStream;
-import org.apache.tika.metadata.Geographic;
-import org.apache.tika.metadata.Metadata;
-import org.apache.tika.metadata.Office;
-import org.apache.tika.metadata.TikaCoreProperties;
-import org.apache.tika.parser.AutoDetectParser;
-import org.apache.tika.parser.ParseContext;
-import org.apache.tika.parser.Parser;
-import org.apache.tika.parser.html.tagsoup.HtmlMapper;
-import org.apache.tika.parser.html.tagsoup.HtmlParser;
-import org.apache.tika.parser.html.tagsoup.IdentityHtmlMapper;
-import org.apache.tika.sax.BasicContentHandlerFactory;
-import org.apache.tika.sax.BodyContentHandler;
-import org.apache.tika.sax.LinkContentHandler;
-import org.apache.tika.sax.TeeContentHandler;
-
-public class HtmlParserTest extends TikaTest {
-
-    @Test
-    public void testParseAscii() throws Exception {
-        String path = "/test-documents/testHTML.html";
-        final StringWriter href = new StringWriter();
-        final StringWriter name = new StringWriter();
-        ContentHandler body = new BodyContentHandler();
-        Metadata metadata = new Metadata();
-        try (InputStream stream = getResourceAsStream(path)) {
-            ContentHandler link = new DefaultHandler() {
-                @Override
-                public void startElement(String u, String l, String n, Attributes a)
-                        throws SAXException {
-                    if ("a".equals(l)) {
-                        if (a.getValue("href") != null) {
-                            href.append(a.getValue("href"));
-                        } else if (a.getValue("name") != null) {
-                            name.append(a.getValue("name"));
-                        }
-                    }
-                }
-            };
-            new HtmlParser()
-                    .parse(stream, new TeeContentHandler(body, link), metadata, new ParseContext());
-        }
-
-        assertEquals("Title : Test Indexation Html", metadata.get(TikaCoreProperties.TITLE));
-        assertEquals("Tika Developers", metadata.get("Author"));
-        assertEquals("5", metadata.get("refresh"));
-
-        assertEquals("51.2312", metadata.get(Geographic.LATITUDE));
-        assertEquals("-5.1987", metadata.get(Geographic.LONGITUDE));
-
-        assertEquals("http://www.apache.org/", href.toString());
-        assertEquals("test-anchor", name.toString());
-
-        String content = body.toString();
-        assertTrue(content.contains("Test Indexation Html"),
-                "Did not contain expected text:" + "Test Indexation Html");
-        assertTrue(content.contains("Indexation du fichier"),
-                "Did not contain expected text:" + "Indexation du fichier");
-    }
-
-    @Test
-    @Disabled("The file 'testXHTML_utf8.html' is not available for testing")
-    public void XtestParseUTF8() throws IOException, SAXException, TikaException {
-        String path = "/test-documents/testXHTML_utf8.html";
-        Metadata metadata = new Metadata();
-        String content = new Tika().parseToString(getResourceAsStream(path), metadata);
-
-        assertTrue(content.contains("Title : Tilte with UTF-8 chars öäå"),
-                "Did not contain expected text:" + "Title : Tilte with UTF-8 chars öäå");
-
-        assertTrue(content.contains("Content with UTF-8 chars"),
-                "Did not contain expected text:" + "Content with UTF-8 chars");
-
-        assertTrue(content.contains("åäö"), "Did not contain expected text:" + "åäö");
-    }
-
-    @Test
-    public void testXhtmlParsing() throws Exception {
-        String path = "/test-documents/testXHTML.html";
-        Metadata metadata = new Metadata();
-        String content = new Tika().parseToString(getResourceAsStream(path), metadata);
-
-        //can't specify charset because default differs between OS's
-        assertTrue(
-                metadata.get(Metadata.CONTENT_TYPE).startsWith("application/xhtml+xml; charset="));
-        assertEquals("XHTML test document", metadata.get(TikaCoreProperties.TITLE));
-
-        assertEquals("Tika Developers", metadata.get("Author"));
-        assertEquals("5", metadata.get("refresh"));
-        assertContains("ability of Apache Tika", content);
-        assertContains("extract content", content);
-        assertContains("an XHTML document", content);
-    }
-
-    @Test
-    public void testParseEmpty() throws Exception {
-        ContentHandler handler = new BodyContentHandler();
-        new HtmlParser().parse(new ByteArrayInputStream(new byte[0]), handler, new Metadata(),
-                new ParseContext());
-        assertEquals("", handler.toString());
-    }
-
-    /**
-     * Test case for TIKA-210
-     *
-     * @see <a href="https://issues.apache.org/jira/browse/TIKA-210">TIKA-210</a>
-     */
-    @Test
-    public void testCharactersDirectlyUnderBodyElement() throws Exception {
-        String test = "<html><body>test</body></html>";
-        String content = new Tika().parseToString(new ByteArrayInputStream(test.getBytes(UTF_8)));
-        assertEquals("test", content);
-    }
-
-    /**
-     * Test case for TIKA-287
-     *
-     * @see <a href="https://issues.apache.org/jira/browse/TIKA-287">TIKA-287</a>
-     */
-    @Test
-    public void testBaseHref() throws Exception {
-        assertRelativeLink("http://lucene.apache.org/tika/", "http://lucene.apache.org/", "tika/");
-
-        assertRelativeLink("http://domain.com/?pid=1", "http://domain.com", "?pid=1");
-        assertRelativeLink("http://domain.com/?pid=2", "http://domain.com?pid=1", "?pid=2");
-
-        assertRelativeLink("http://domain.com/file.html", "http://domain.com/path/", "/file.html");
-        assertRelativeLink("http://domain.com/path/file.html", "http://domain.com/path/",
-                "./file.html");
-        assertRelativeLink("http://domain.com/path/file.html", "http://domain.com/path/",
-                "file.html");
-
-        assertRelativeLink("http://domain2.com/newpath", "http://domain.com/path/to/file",
-                "http://domain2.com/newpath");
-
-        // See http://www.communities.hp.com/securitysoftware/blogs/jeff/archive/2007/12/19/RFC-1808-vs-2396-vs-3986_3A00_-Browsers-vs.-programing-languages.aspx
-        // Also http://www.ietf.org/rfc/rfc3986.txt
-        // Also http://issues.apache.org/jira/browse/NUTCH-566
-        // Also http://issues.apache.org/jira/browse/NUTCH-436
-        assertRelativeLink("http://domain.com/path/?pid=1", "http://domain.com/path/", "?pid=1");
-        assertRelativeLink("http://domain.com/file?pid=1", "http://domain.com/file", "?pid=1");
-        assertRelativeLink("http://domain.com/path/d;p?pid=1", "http://domain.com/path/d;p?q#f",
-                "?pid=1");
-    }
-
-    private void assertRelativeLink(String url, String base, String relative) throws Exception {
-        String test =
-                "<html><head><base href=\"" + base + "\"></head>" + "<body><a href=\"" + relative +
-                        "\">test</a></body></html>";
-        final List<String> links = new ArrayList<>();
-        new HtmlParser()
-                .parse(new ByteArrayInputStream(test.getBytes(UTF_8)), new DefaultHandler() {
-                    @Override
-                    public void startElement(String u, String l, String name, Attributes atts) {
-                        if (name.equals("a") && atts.getValue("", "href") != null) {
-                            links.add(atts.getValue("", "href"));
-                        }
-                    }
-                }, new Metadata(), new ParseContext());
-        assertEquals(1, links.size());
-        assertEquals(url, links.get(0));
-    }
-
-    /**
-     * Test case for TIKA-268
-     *
-     * @see <a href="https://issues.apache.org/jira/browse/TIKA-268">TIKA-268</a>
-     */
-    @Test
-    public void testWhitespaceBetweenTableCells() throws Exception {
-        String test = "<html><body><table><tr><td>a</td><td>b</td></table></body></html>";
-        String content = new Tika().parseToString(new ByteArrayInputStream(test.getBytes(UTF_8)));
-        assertContains("a", content);
-        assertContains("b", content);
-        assertFalse(content.contains("ab"));
-    }
-
-    /**
-     * Test case for TIKA-332
-     *
-     * @see <a href="https://issues.apache.org/jira/browse/TIKA-332">TIKA-332</a>
-     */
-    @Test
-    public void testHttpEquivCharset() throws Exception {
-        String test = "<html><head><meta http-equiv=\"content-type\"" +
-                " content=\"text/html; charset=ISO-8859-1\" />" +
-                "<title>the name is \u00e1ndre</title>" + "</head><body></body></html>";
-        Metadata metadata = new Metadata();
-        new HtmlParser().parse(new ByteArrayInputStream(test.getBytes(ISO_8859_1)),
-                new BodyContentHandler(), metadata, new ParseContext());
-        assertEquals("ISO-8859-1", metadata.get(Metadata.CONTENT_ENCODING));
-    }
-
-    /**
-     * Test case for TIKA-892
-     *
-     * @see <a href="https://issues.apache.org/jira/browse/TIKA-892">TIKA-892</a>
-     */
-    @Test
-    public void testHtml5Charset() throws Exception {
-        String test = "<html><head><meta charset=\"ISO-8859-15\" />" +
-                "<title>the name is \u00e1ndre</title>" + "</head><body></body></html>";
-        Metadata metadata = new Metadata();
-        new HtmlParser().parse(new ByteArrayInputStream(test.getBytes(ISO_8859_1)),
-                new BodyContentHandler(), metadata, new ParseContext());
-        assertEquals("ISO-8859-15", metadata.get(Metadata.CONTENT_ENCODING));
-    }
-
-    /**
-     * Test case for TIKA-334
-     *
-     * @see <a href="https://issues.apache.org/jira/browse/TIKA-334">TIKA-334</a>
-     */
-    @Test
-    public void testDetectOfCharset() throws Exception {
-        String test = "<html><head><title>\u017d</title></head><body></body></html>";
-        Metadata metadata = new Metadata();
-        new HtmlParser()
-                .parse(new ByteArrayInputStream(test.getBytes(UTF_8)), new BodyContentHandler(),
-                        metadata, new ParseContext());
-        assertEquals("\u017d", metadata.get(TikaCoreProperties.TITLE));
-    }
-
-    /**
-     * Test case for TIKA-341
-     *
-     * @see <a href="https://issues.apache.org/jira/browse/TIKA-341">TIKA-341</a>
-     */
-    @Test
-    public void testUsingCharsetInContentTypeHeader() throws Exception {
-        final String test =
-                "<html><head><title>the name is \u00e1ndre</title></head>" + "<body></body></html>";
-
-        Metadata metadata = new Metadata();
-        new HtmlParser()
-                .parse(new ByteArrayInputStream(test.getBytes(UTF_8)), new BodyContentHandler(),
-                        metadata, new ParseContext());
-        assertEquals("UTF-8", metadata.get(Metadata.CONTENT_ENCODING));
-
-        metadata = new Metadata();
-        metadata.set(Metadata.CONTENT_TYPE, "text/html; charset=ISO-8859-1");
-        new HtmlParser().parse(new ByteArrayInputStream(test.getBytes(ISO_8859_1)),
-                new BodyContentHandler(), metadata, new ParseContext());
-        assertEquals("ISO-8859-1", metadata.get(Metadata.CONTENT_ENCODING));
-    }
-
-    /**
-     * Test case for HTML content like
-     * "&gt;div&lt;foo&gt;br&lt;bar&gt;/div&gt;" that should result
-     * in three whitespace-separated tokens "foo", "bar" and "baz" instead
-     * of a single token "foobarbaz".
-     *
-     * @see <a href="https://issues.apache.org/jira/browse/TIKA-343">TIKA-343</a>
-     */
-    @Test
-    public void testLineBreak() throws Exception {
-        String test = "<html><body><div>foo<br>bar</div>baz</body></html>";
-        String text = new Tika().parseToString(new ByteArrayInputStream(test.getBytes(US_ASCII)));
-        String[] parts = text.trim().split("\\s+");
-        assertEquals(3, parts.length);
-        assertEquals("foo", parts[0]);
-        assertEquals("bar", parts[1]);
-        assertEquals("baz", parts[2]);
-    }
-
-    /**
-     * Test case for TIKA-339: Don't use language returned by CharsetDetector
-     *
-     * @see <a href="https://issues.apache.org/jira/browse/TIKA-339">TIKA-339</a>
-     */
-    @Test
-    public void testIgnoreCharsetDetectorLanguage() throws Exception {
-        String test = "<html><title>Simple Content</title><body></body></html>";
-        Metadata metadata = new Metadata();
-        metadata.add(Metadata.CONTENT_LANGUAGE, "en");
-        new HtmlParser()
-                .parse(new ByteArrayInputStream(test.getBytes(UTF_8)), new BodyContentHandler(),
-                        metadata, new ParseContext());
-
-        assertEquals("en", metadata.get(Metadata.CONTENT_LANGUAGE));
-    }
-
-    /**
-     * Test case for TIKA-349
-     *
-     * @see <a href="https://issues.apache.org/jira/browse/TIKA-349">TIKA-349</a>
-     */
-    @Test
-    public void testHttpEquivCharsetFunkyAttributes() throws Exception {
-        String test1 = "<html><head><meta http-equiv=\"content-type\"" +
-                " content=\"text/html; charset=ISO-8859-15; charset=iso-8859-15\" />" +
-                "<title>the name is \u00e1ndre</title>" + "</head><body></body></html>";
-        Metadata metadata = new Metadata();
-        new HtmlParser().parse(new ByteArrayInputStream(test1.getBytes(ISO_8859_1)),
-                new BodyContentHandler(), metadata, new ParseContext());
-        assertEquals("ISO-8859-15", metadata.get(Metadata.CONTENT_ENCODING));
-
-        // Some HTML pages have errors like ';;' versus '; ' as separator
-        String test2 = "<html><head><meta http-equiv=\"content-type\"" +
-                " content=\"text/html;;charset=ISO-8859-15\" />" +
-                "<title>the name is \u00e1ndre</title>" + "</head><body></body></html>";
-        metadata = new Metadata();
-        new HtmlParser().parse(new ByteArrayInputStream(test2.getBytes(ISO_8859_1)),
-                new BodyContentHandler(), metadata, new ParseContext());
-        assertEquals("ISO-8859-15", metadata.get(Metadata.CONTENT_ENCODING));
-    }
-
-    /**
-     * Test case for TIKA-350
-     *
-     * @see <a href="https://issues.apache.org/jira/browse/TIKA-350">TIKA-350</a>
-     */
-    @Test
-    public void testUsingFunkyCharsetInContentTypeHeader() throws Exception {
-        final String test =
-                "<html><head><title>the name is \u00e1ndre</title></head>" + "<body></body></html>";
-
-        Metadata metadata = new Metadata();
-        new HtmlParser()
-                .parse(new ByteArrayInputStream(test.getBytes(UTF_8)), new BodyContentHandler(),
-                        metadata, new ParseContext());
-        assertEquals("UTF-8", metadata.get(Metadata.CONTENT_ENCODING));
-
-        metadata = new Metadata();
-        metadata.set(Metadata.CONTENT_TYPE, "charset=ISO-8859-1;text/html");
-        new HtmlParser().parse(new ByteArrayInputStream(test.getBytes(ISO_8859_1)),
-                new BodyContentHandler(), metadata, new ParseContext());
-        assertEquals("ISO-8859-1", metadata.get(Metadata.CONTENT_ENCODING));
-    }
-
-
-    /**
-     * Test case for TIKA-357
-     *
-     * @see <a href="https://issues.apache.org/jira/browse/TIKA-357">TIKA-357</a>
-     */
-    @Test
-    public void testMetaHttpEquivWithLotsOfPreambleText() throws Exception {
-        String path = "/test-documents/big-preamble.html";
-        Metadata metadata = new Metadata();
-        new HtmlParser().parse(getResourceAsStream(path), new BodyContentHandler(), metadata,
-                new ParseContext());
-
-        assertEquals("windows-1251", metadata.get(Metadata.CONTENT_ENCODING));
-    }
-
-    /**
-     * Test case for TIKA-478. Don't emit <head> sub-elements inside of <body>.
-     *
-     * @see <a href="https://issues.apache.org/jira/browse/TIKA-478">TIKA-478</a>
-     */
-    @Test
-    public void testElementOrdering() throws Exception {
-        final String test = "<html><head><title>Title</title>" +
-                "<meta http-equiv=\"content-type\" content=\"text/html\">" +
-                "<link rel=\"next\" href=\"next.html\" />" +
-                "</head><body><p>Simple Content</p></body></html>";
-
-        StringWriter sw = new StringWriter();
-        new HtmlParser()
-                .parse(new ByteArrayInputStream(test.getBytes(UTF_8)), makeHtmlTransformer(sw),
-                        new Metadata(), new ParseContext());
-
-        String result = sw.toString();
-
-        // Title element in <head> section
-        assertTrue(Pattern.matches("(?s)<html.*<head>.*<title>Title</title>.*</head>.*$", result));
-
-        // No meta elements in body
-        assertFalse(Pattern.matches("(?s).*<body>.*<meta. *</body>.*$", result));
-
-        // meta elements should show up in <head> section
-        assertTrue(Pattern.matches("(?s)<html.*<head>.*<meta .*</head>.*$", result));
-
-        // No link elements in body
-        assertFalse(Pattern.matches("(?s).*<body>.*<link .*</body>.*$", result));
-
-        // link element should be in <head> section
-        assertTrue(Pattern.matches("(?s)<html.*<head>.*<link .*</head>.*$", result));
-
-        // There should be ending elements.
-        assertTrue(Pattern.matches("(?s).*</body>.*</html>$", result));
-
-    }
-
-    /**
-     * Test case for TIKA-463. Don't skip elements that have URLs.
-     *
-     * @see <a href="https://issues.apache.org/jira/browse/TIKA-463">TIKA-463</a>
-     */
-    @Test
-    public void testImgUrlExtraction() throws Exception {
-        final String test =
-                "<html><head><title>Title</title>" + "<base href=\"http://domain.com\" />" +
-                        "</head><body><img src=\"image.jpg\" /></body></html>";
-
-        StringWriter sw = new StringWriter();
-        new HtmlParser()
-                .parse(new ByteArrayInputStream(test.getBytes(UTF_8)), makeHtmlTransformer(sw),
-                        new Metadata(), new ParseContext());
-
-        String result = sw.toString();
-
-        // <img> tag should exist, with fully resolved URL
-        assertTrue(Pattern.matches("(?s).*src=\"http://domain.com/image.jpg\".*$", result));
-    }
-
-    /**
-     * Test case for TIKA-463. Don't skip elements that have URLs.
-     *
-     * @see <a href="https://issues.apache.org/jira/browse/TIKA-463">TIKA-463</a>
-     */
-    @Test
-    public void testFrameSrcExtraction() throws Exception {
-        final String test =
-                "<html><head><title>Title</title>" + "<base href=\"http://domain.com\" />" +
-                        "</head><frameset><frame src=\"frame.html\" /></frameset></html>";
-
-        StringWriter sw = new StringWriter();
-        new HtmlParser()
-                .parse(new ByteArrayInputStream(test.getBytes(UTF_8)), makeHtmlTransformer(sw),
-                        new Metadata(), new ParseContext());
-
-        String result = sw.toString();
-
-        // <frame> tag should exist, with fully resolved URL
-        assertTrue(Pattern.matches("(?s).*<frame .* src=\"http://domain.com/frame.html\"/>.*$",
-                result));
-    }
-
-    /**
-     * Test case for TIKA-463. Don't skip elements that have URLs.
-     *
-     * @see <a href="https://issues.apache.org/jira/browse/TIKA-463">TIKA-463</a>
-     */
-    @Test
-    public void testIFrameSrcExtraction() throws Exception {
-        final String test =
-                "<html><head><title>Title</title>" + "<base href=\"http://domain.com\" />" +
-                        "</head><body><iframe src =\"framed.html\" width=\"100%\" height=\"300\">" +
-                        "<p>Your browser doesn't support iframes!</p></body></html>";
-
-        StringWriter sw = new StringWriter();
-        new HtmlParser()
-                .parse(new ByteArrayInputStream(test.getBytes(UTF_8)), makeHtmlTransformer(sw),
-                        new Metadata(), new ParseContext());
-
-        String result = sw.toString();
-
-        // <iframe> tag should exist, with fully resolved URL
-        assertTrue(Pattern.matches("(?s).*<iframe .* src=\"http://domain.com/framed.html\".*$",
-                result));
-    }
-
-    /**
-     * Test case for TIKA-463. Don't skip elements that have URLs.
-     *
-     * @see <a href="https://issues.apache.org/jira/browse/TIKA-463">TIKA-463</a>
-     */
-    @Test
-    public void testAreaExtraction() throws Exception {
-        final String test =
-                "<html><head><title>Title</title>" + "<base href=\"http://domain.com\" />" +
-                        "</head><body><p><map name=\"map\" id=\"map\">" +
-                        "<area shape=\"rect\" href=\"map.html\" alt=\"\" />" +
-                        "</map></p></body></html>";
-
-        StringWriter sw = new StringWriter();
-        new HtmlParser()
-                .parse(new ByteArrayInputStream(test.getBytes(UTF_8)), makeHtmlTransformer(sw),
-                        new Metadata(), new ParseContext());
-
-        String result = sw.toString();
-
-        // <map> tag should exist, with <area> tag with fully resolved URL
-        assertTrue(Pattern.matches(
-                "(?s).*<map .*<area .* href=\"http://domain.com/map.html\".*</map>.*$", result));
-    }
-
-    /**
-     * Test case for TIKA-463. Don't skip elements that have URLs.
-     *
-     * @see <a href="https://issues.apache.org/jira/browse/TIKA-463">TIKA-463</a>
-     */
-    @Test
-    public void testObjectExtraction() throws Exception {
-        final String test =
-                "<html><head><title>Title</title>" + "<base href=\"http://domain.com\" />" +
-                        "</head><body><p><object data=\"object.data\" type=\"text/html\">" +
-                        "<param name=\"name\" value=\"value\" />" + "</object></p></body></html>";
-
-        StringWriter sw = new StringWriter();
-        new HtmlParser()
-                .parse(new ByteArrayInputStream(test.getBytes(UTF_8)), makeHtmlTransformer(sw),
-                        new Metadata(), new ParseContext());
-
-        String result = sw.toString();
-
-        // <object> tag should exist with fully resolved URLs
-        assertTrue(Pattern.matches(
-                        "(?s).*<object data=\"http://domain.com/object.data\".*<param .* name=\"name\" value=\"value\"/>.*</object>.*$",
-                        result),
-                "<object> tag not correctly found in:\n" + result);
-    }
-
-    /**
-     * Test case for change related to TIKA-463. Verify proper handling of <meta> tags.
-     *
-     * @see <a href="https://issues.apache.org/jira/browse/TIKA-463">TIKA-463</a>
-     */
-    @Test
-    public void testMetaTagHandling() throws Exception {
-        final String test = "<html><body><h1>header</h1><p>some text</p></body></html>";
-
-        Metadata metadata = new Metadata();
-        metadata.add("Content-Type", "text/html; charset=utf-8");
-        metadata.add("Language", null);
-
-        StringWriter sw = new StringWriter();
-        new HtmlParser()
-                .parse(new ByteArrayInputStream(test.getBytes(UTF_8)), makeHtmlTransformer(sw),
-                        metadata, new ParseContext());
-
-        String result = sw.toString();
-
-        // <meta> tag for Content-Type should exist, but nothing for Language
-        assertTrue(Pattern.matches(
-                "(?s).*<meta name=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>.*$",
-                result));
-        assertFalse(Pattern.matches("(?s).*<meta name=\"Language\".*$", result));
-    }
-
-    /**
-     * Test case for TIKA-457. Better handling for broken HTML that has <frameset> inside of <body>.
-     *
-     * @see <a href="https://issues.apache.org/jira/browse/TIKA-457">TIKA-457</a>
-     */
-    @Test
-    public void testBrokenFrameset() throws Exception {
-        final String test1 =
-                "<html><head><title>Title</title>" + "<base href=\"http://domain.com\" />" +
-                        "</head><body><frameset><frame src=\"frame.html\" />" +
-                        "</frameset></body></html>";
-
-        StringWriter sw1 = new StringWriter();
-        new HtmlParser()
-                .parse(new ByteArrayInputStream(test1.getBytes(UTF_8)), makeHtmlTransformer(sw1),
-                        new Metadata(), new ParseContext());
-
-        String result = sw1.toString();
-
-        // <frame> tag should exist, with fully resolved URL
-        assertTrue(Pattern.matches(
-                "(?s).*<frame .* src=\"http://domain.com/frame.html\"/>.*$",
-                result));
-
-        // <body> tag should not exist.
-        assertFalse(Pattern.matches("(?s).*<body>.*$", result));
-
-        // Test the example from the Nutch project.
-        final String test2 = "<html><head><title> my title </title></head><body>" +
-                "<frameset rows=\"20,*\"><frame src=\"top.html\"></frame>" +
-                "<frameset cols=\"20,*\"><frame src=\"left.html\"></frame>" +
-                "<frame src=\"invalid.html\"/></frame>" + "<frame src=\"right.html\"></frame>" +
-                "</frameset></frameset></body></html>";
-
-        StringWriter sw2 = new StringWriter();
-        new HtmlParser()
-                .parse(new ByteArrayInputStream(test2.getBytes(UTF_8)), makeHtmlTransformer(sw2),
-                        new Metadata(), new ParseContext());
-
-        result = sw2.toString();
-
-        // <frame> tags should exist, with relative URL (no base element specified)
-        assertTrue(Pattern.matches("(?s).*<frame .* src=\"top.html\"/>.*$", result));
-        assertTrue(Pattern.matches("(?s).*<frame .* src=\"left.html\"/>.*$", result));
-        assertTrue(Pattern.matches("(?s).*<frame .* src=\"invalid.html\"/>.*$", result));
-        assertTrue(Pattern.matches("(?s).*<frame .* src=\"right.html\"/>.*$", result));
-
-        // <body> tag should not exist.
-        assertFalse(Pattern.matches("(?s).*<body>.*$", result));
-    }
-
-    /**
-     * Test case for TIKA-480: fix NPE when using BodyContentHandler or HtmlTransformer
-     * as delegate for BoilerpipeContentHandler
-     *
-     * @see <a href="https://issues.apache.org/jira/browse/TIKA-480">TIKA-480</a>
-     */
-    @Test
-    public void testBoilerplateDelegation() throws Exception {
-        String path = "/test-documents/boilerplate.html";
-
-        Metadata metadata = new Metadata();
-        StringWriter sw = new StringWriter();
-        new HtmlParser().parse(getResourceAsStream(path), makeHtmlTransformer(sw), metadata,
-                new ParseContext());
-
-        String content = sw.toString();
-
-        // Should have <html>, <head>, <title>, <body> elements
-        assertTrue(Pattern.matches(
-                "(?s).*<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en\">.*</html>.*$",
-                content));
-        assertTrue(Pattern.matches("(?s).*<head>.*</head>.*$", content));
-        assertTrue(Pattern.matches("(?s).*<title>Title</title>.*$", content));
-        assertTrue(Pattern.matches("(?s).*<body>.*</body>.*$", content));
-    }
-
-    /**
-     * Test case for TIKA-481. Verify href in <link> is resolved.
-     *
-     * @see <a href="https://issues.apache.org/jira/browse/TIKA-481">TIKA-481</a>
-     */
-    @Test
-    public void testLinkHrefResolution() throws Exception {
-        final String test =
-                "<html><head><title>Title</title>" + "<base href=\"http://domain.com\" />" +
-                        "<link rel=\"next\" href=\"next.html\" />" + "</head><body></body></html>";
-
-        StringWriter sw = new StringWriter();
-        new HtmlParser()
-                .parse(new ByteArrayInputStream(test.getBytes(UTF_8)), makeHtmlTransformer(sw),
-                        new Metadata(), new ParseContext());
-
-        String result = sw.toString();
-
-        // <link> tag should exist in <head>, with fully resolved URL
-        assertTrue(Pattern.matches(
-                "(?s).*<head>.*<link rel=\"next\" href=\"http://domain.com/next.html\"/>.*</head>.*$",
-                result));
-    }
-
-
-    /**
-     * Create ContentHandler that transforms SAX events into textual HTML output,
-     * and writes it out to <writer> - typically this is a StringWriter.
-     *
-     * @param writer Where to write resulting HTML text.
-     * @return ContentHandler suitable for passing to parse() methods.
-     * @throws Exception
-     */
-    private ContentHandler makeHtmlTransformer(Writer writer) throws Exception {
-        SAXTransformerFactory factory = (SAXTransformerFactory) SAXTransformerFactory.newInstance();
-        TransformerHandler handler = factory.newTransformerHandler();
-        handler.getTransformer().setOutputProperty(OutputKeys.METHOD, "html");
-        handler.getTransformer().setOutputProperty(OutputKeys.INDENT, "no");
-        handler.getTransformer().setOutputProperty(OutputKeys.ENCODING, "utf-8");
-        handler.setResult(new StreamResult(writer));
-        return handler;
-    }
-
-    /**
-     * Test case for TIKA-434 - Pushback buffer overflow in TagSoup
-     */
-    @Test
-    public void testPushback() throws IOException, TikaException {
-        String content = new Tika()
-                .parseToString(getResourceAsStream("/test-documents/tika434.html"), new Metadata());
-        assertNotNull(content);
-    }
-
-    /**
-     * Test case for TIKA-869
-     * IdentityHtmlMapper needs to lower-case tag names.
-     *
-     * @see <a href="https://issues.apache.org/jira/browse/TIKA-869">TIKA-869</a>
-     */
-    @Test
-    public void testIdentityMapper() throws Exception {
-        final String html = "<html><head><title>Title</title></head>" + "<body></body></html>";
-        Metadata metadata = new Metadata();
-        ParseContext parseContext = new ParseContext();
-        parseContext.set(HtmlMapper.class, IdentityHtmlMapper.INSTANCE);
-
-        StringWriter sw = new StringWriter();
-
-        new HtmlParser()
-                .parse(new ByteArrayInputStream(html.getBytes(UTF_8)), makeHtmlTransformer(sw),
-                        metadata, parseContext);
-
-        String result = sw.toString();
-        // Make sure we don't get <body><BODY/></body>
-        assertTrue(Pattern.matches("(?s).*<body/>.*$", result));
-    }
-
-    /**
-     * Test case for TIKA-889
-     * XHTMLContentHandler wont emit newline when html element matches ENDLINE set.
-     *
-     * @see <a href="https://issues.apache.org/jira/browse/TIKA-889">TIKA-889</a>
-     */
-    @Test
-    public void testNewlineAndIndent() throws Exception {
-        final String html = "<html><head><title>Title</title></head>" +
-                "<body><ul><li>one</li></ul></body></html>";
-
-        BodyContentHandler handler = new BodyContentHandler();
-        new HtmlParser()
-                .parse(new ByteArrayInputStream(html.getBytes(UTF_8)), handler, new Metadata(),
-                        new ParseContext());
-
-        // Make sure we get <tab>, "one", newline, newline
-        String result = handler.toString();
-
-        assertTrue(Pattern.matches("\tone\n\n", result));
-    }
-
-    /**
-     * Test case for Tika-2100
-     *
-     * @see <a href="https://issues.apache.org/jira/browse/TIKA-2100">TIKA-2100</a>
-     */
-    @Test
-    public void testHtmlLanguage() throws Exception {
-        final String html = "<html lang=\"fr\"></html>";
-
-        StringWriter sw = new StringWriter();
-        Metadata metadata = new Metadata();
-        new HtmlParser()
-                .parse(new ByteArrayInputStream(html.getBytes(UTF_8)), makeHtmlTransformer(sw),
-                        metadata, new ParseContext());
-
-        assertEquals("fr", metadata.get(Metadata.CONTENT_LANGUAGE));
-        assertTrue(Pattern.matches("(?s)<html[^>]* lang=\"fr\".*", sw.toString()),
-                "Missing HTML lang attribute");
-    }
-
-    /**
-     * Test case for TIKA-983:  HTML parser should add Open Graph
-     * meta tag data to Metadata returned by parser
-     *
-     * @see <a href="https://issues.apache.org/jira/browse/TIKA-983">TIKA-983</a>
-     */
-    @Test
-    public void testOpenGraphMetadata() throws Exception {
-        String test1 = "<html><head><meta property=\"og:description\"" +
-                " content=\"some description\" />" +
-                "<meta property=\"og:image\" content=\"http://example.com/image1.jpg\" />" +
-                "<meta property=\"og:image\" content=\"http://example.com/image2.jpg\" />" +
-                "<title>hello</title>" + "</head><body></body></html>";
-        Metadata metadata = new Metadata();
-        new HtmlParser().parse(new ByteArrayInputStream(test1.getBytes(ISO_8859_1)),
-                new BodyContentHandler(), metadata, new ParseContext());
-        assertEquals("some description", metadata.get("og:description"));
-        assertTrue(metadata.isMultiValued("og:image"));
-    }
-
-    // TIKA-1011
-    @Test
-    public void testUserDefinedCharset() throws Exception {
-        String content = new Tika()
-                .parseToString(getResourceAsStream("/test-documents/testUserDefinedCharset.mhtml"),
-                        new Metadata());
-        assertNotNull(content);
-    }
-
-    //TIKA-1001
-    @Test
-    public void testNoisyMetaCharsetHeaders() throws Exception {
-        Tika tika = new Tika();
-        String hit = "\u0623\u0639\u0631\u0628";
-
-        for (int i = 1; i <= 4; i++) {
-            String fileName = "/test-documents/testHTMLNoisyMetaEncoding_" + i + ".html";
-            String content = tika.parseToString(getResourceAsStream(fileName));
-            assertTrue(content.contains(hit), "testing: " + fileName);
-        }
-    }
-
-    // TIKA-1193
-    @Test
-    public void testCustomHtmlSchema() throws Exception {
-        // Default schema does not allow tables inside anchors
-        String test = "<html><body><a><table><tr><td>text</tr></tr></table></a></body></html>";
-
-        Metadata metadata = new Metadata();
-        LinkContentHandler linkContentHandler = new LinkContentHandler();
-
-        new HtmlParser()
-                .parse(new ByteArrayInputStream(test.getBytes(ISO_8859_1)), linkContentHandler,
-                        metadata, new ParseContext());
-
-        // Expect no anchor text
-        assertEquals("", linkContentHandler.getLinks().get(0).getText());
-
-        // We'll change the schema to allow tables inside anchors!
-        Schema schema = new HTMLSchema();
-        schema.elementType("a", HTMLSchema.M_ANY, 65535, 0);
-
-        ParseContext parseContext = new ParseContext();
-        parseContext.set(Schema.class, schema);
-        linkContentHandler = new LinkContentHandler();
-        new HtmlParser()
-                .parse(new ByteArrayInputStream(test.getBytes(ISO_8859_1)), linkContentHandler,
-                        metadata, parseContext);
-
-        // Expect anchor text
-        assertEquals("\ttext\n\n", linkContentHandler.getLinks().get(0).getText());
-    }
-
-    /**
-     * Test case for TIKA-820:  Locator is unset for HTML parser
-     *
-     * @see <a href="https://issues.apache.org/jira/browse/TIKA-820">TIKA-820</a>
-     */
-    @Test
-    public void testLocator() throws Exception {
-        final int line = 0;
-        final int col = 1;
-        final int[] textPosition = new int[2];
-
-        new HtmlParser()
-                .parse(getResourceAsStream("/test-documents/testHTML.html"), new ContentHandler() {
-                    Locator locator;
-
-                    public void setDocumentLocator(Locator locator) {
-                        this.locator = locator;
-                    }
-
-                    public void startDocument() throws SAXException {
-                    }
-
-                    public void endDocument() throws SAXException {
-                    }
-
-                    public void startPrefixMapping(String prefix, String uri) throws SAXException {
-                    }
-
-                    public void endPrefixMapping(String prefix) throws SAXException {
-                    }
-
-                    public void startElement(String uri, String localName, String qName,
-                                             Attributes atts) throws SAXException {
-                    }
-
-                    public void endElement(String uri, String localName, String qName)
-                            throws SAXException {
-                    }
-
-                    public void characters(char[] ch, int start, int length) throws SAXException {
-                        String text = new String(ch, start, length);
-                        if (text.equals("Test Indexation Html") && locator != null) {
-                            textPosition[line] = locator.getLineNumber();
-                            textPosition[col] = locator.getColumnNumber();
-                        }
-                    }
-
-                    public void ignorableWhitespace(char[] ch, int start, int length)
-                            throws SAXException {
-                    }
-
-                    public void processingInstruction(String target, String data)
-                            throws SAXException {
-                    }
-
-                    public void skippedEntity(String name) throws SAXException {
-                    }
-                }, new Metadata(), new ParseContext());
-
-        // The text occurs at line 24 (if lines start at 0) or 25 (if lines start at 1).
-        assertEquals(24, textPosition[line]);
-        // The column reported seems fuzzy, just test it is close enough.
-        assertTrue(Math.abs(textPosition[col] - 47) < 10);
-    }
-
-
-    /**
-     * Test case for TIKA-1303: HTML parse should use the first title tag to set value in meta data
-     * and ignore any subsequent title tags found in HTML.
-     *
-     * @see <a href="https://issues.apache.org/jira/browse/TIKA-1303">TIKA-1303</a>
-     */
-    @Test
-    public void testFirstTitleValueisSetToMetadata() throws Exception {
-        String test = "<html><title>Simple Content</title><body><h1></h1>" +
-                "<title>TitleToIgnore</title></body></html>";
-        Metadata metadata = new Metadata();
-
-        new HtmlParser()
-                .parse(new ByteArrayInputStream(test.getBytes(UTF_8)), new BodyContentHandler(),
-                        metadata, new ParseContext());
-
-        //Expecting first title to be set in meta data and second one to be ignored.
-        assertEquals("Simple Content", metadata.get(TikaCoreProperties.TITLE));
-    }
-
-    @Test
-    public void testMisleadingMetaContentTypeTags() throws Exception {
-        //TIKA-1519
-
-        String test =
-                "<html><head><meta http-equiv=\"content-type\" content=\"text/html;" +
-                        " charset=UTF-ELEVEN\">" +
-                        "</head><title>title</title><body>body</body></html>";
-        Metadata metadata = new Metadata();
-
-        new HtmlParser()
-                .parse(new ByteArrayInputStream(test.getBytes(UTF_8)), new BodyContentHandler(),
-                        metadata, new ParseContext());
-        assertEquals("text/html; charset=UTF-ELEVEN",
-                metadata.get(TikaCoreProperties.CONTENT_TYPE_HINT));
-        assertEquals("text/html; charset=ISO-8859-1", metadata.get(Metadata.CONTENT_TYPE));
-
-        test = "<html><head><meta http-equiv=\"content-type\" content=\"application/pdf\">" +
-                "</head><title>title</title><body>body</body></html>";
-        metadata = new Metadata();
-
-        new HtmlParser()
-                .parse(new ByteArrayInputStream(test.getBytes(UTF_8)), new BodyContentHandler(),
-                        metadata, new ParseContext());
-        assertEquals("application/pdf", metadata.get(TikaCoreProperties.CONTENT_TYPE_HINT));
-        assertEquals("text/html; charset=ISO-8859-1", metadata.get(Metadata.CONTENT_TYPE));
-
-        //test two content values
-        test =
-                "<html><head><meta http-equiv=\"content-type\" content=\"application/pdf\" " +
-                        "content=\"application/ms-word\">" +
-                        "</head><title>title</title><body>body</body></html>";
-        metadata = new Metadata();
-
-        new HtmlParser()
-                .parse(new ByteArrayInputStream(test.getBytes(UTF_8)), new BodyContentHandler(),
-                        metadata, new ParseContext());
-        assertEquals("application/ms-word", metadata.get(TikaCoreProperties.CONTENT_TYPE_HINT));
-        assertEquals("text/html; charset=ISO-8859-1", metadata.get(Metadata.CONTENT_TYPE));
-    }
-
-    @Test
-    public void testXHTMLWithMisleading() throws Exception {
-        //first test an acceptable XHTML header with http-equiv tags
-        String test = "<?xml version=\"1.0\" ?>" +
-                "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n" +
-                "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n" + "<head>\n" +
-                "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />\n" +
-                "<title>title</title></head><body>body</body></html>";
-        Metadata metadata = new Metadata();
-        AUTO_DETECT_PARSER
-                .parse(new ByteArrayInputStream(test.getBytes(UTF_8)), new BodyContentHandler(),
-                        metadata, new ParseContext());
-
-        assertEquals("text/html; charset=iso-8859-1",
-                metadata.get(TikaCoreProperties.CONTENT_TYPE_HINT));
-        assertEquals("application/xhtml+xml; charset=ISO-8859-1",
-                metadata.get(Metadata.CONTENT_TYPE));
-
-        test = "<?xml version=\"1.0\" ?>" +
-                "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" " +
-                "\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n" +
-                "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n" + "<head>\n" +
-                "<meta http-equiv=\"Content-Type\" content=\"text/html; " +
-                "charset=iso-NUMBER_SEVEN\" />\n" +
-                "<title>title</title></head><body>body</body></html>";
-        metadata = new Metadata();
-        AUTO_DETECT_PARSER
-                .parse(new ByteArrayInputStream(test.getBytes(UTF_8)), new BodyContentHandler(),
-                        metadata, new ParseContext());
-
-        assertEquals("text/html; charset=iso-NUMBER_SEVEN",
-                metadata.get(TikaCoreProperties.CONTENT_TYPE_HINT));
-        assertEquals("application/xhtml+xml; charset=ISO-8859-1",
-                metadata.get(Metadata.CONTENT_TYPE));
-
-    }
-
-    @Test
-    public void testScriptSrc() throws Exception {
-        String url = "http://domain.com/logic.js";
-        String scriptInBody = "<html><body><script src=\"" + url + "\"></script></body></html>";
-        String scriptInHead = "<html><head><script src=\"" + url + "\"></script></head></html>";
-
-        assertScriptLink(scriptInBody, url);
-        assertScriptLink(scriptInHead, url);
-    }
-
-    private void assertScriptLink(String html, String url) throws Exception {
-        // IdentityHtmlMapper is needed to extract <script> tags
-        ParseContext context = new ParseContext();
-        context.set(HtmlMapper.class, IdentityHtmlMapper.INSTANCE);
-        Metadata metadata = new Metadata();
-        metadata.set(Metadata.CONTENT_TYPE, "text/html");
-
-        final List<String> links = new ArrayList<>();
-        new HtmlParser()
-                .parse(new ByteArrayInputStream(html.getBytes(UTF_8)), new DefaultHandler() {
-                    @Override
-                    public void startElement(String u, String l, String name, Attributes atts) {
-                        if (name.equals("script") && atts.getValue("", "src") != null) {
-                            links.add(atts.getValue("", "src"));
-                        }
-                    }
-                }, metadata, context);
-
-        assertEquals(1, links.size());
-        assertEquals(url, links.get(0));
-    }
-
-    @Test
-    public void testAllHeadElements() throws Exception {
-        //TIKA-1980
-        // IdentityHtmlMapper is needed to extract <script> tags
-        ParseContext context = new ParseContext();
-        context.set(HtmlMapper.class, IdentityHtmlMapper.INSTANCE);
-        Metadata metadata = new Metadata();
-        metadata.set(Metadata.CONTENT_TYPE, "text/html");
-
-        final Map<String, Integer> tagFrequencies = new HashMap<>();
-
-        String path = "/test-documents/testHTML_head.html";
-        try (InputStream stream = getResourceAsStream(path)) {
-            ContentHandler tagCounter = new DefaultHandler() {
-                @Override
-                public void startElement(String uri, String local, String name,
-                                         Attributes attributes) throws SAXException {
-                    int count = tagFrequencies.getOrDefault(name, 0);
-                    tagFrequencies.put(name, count + 1);
-                }
-            };
-            new HtmlParser().parse(stream, tagCounter, metadata, context);
-        }
-
-        assertEquals(1, (int) tagFrequencies.get("title"));
-        assertEquals(9, (int) tagFrequencies.get("meta"));
-        assertEquals(12, (int) tagFrequencies.get("link"));
-        assertEquals(6, (int) tagFrequencies.get("script"));
-    }
-
-    @Test
-    public void testSkippingCommentsInEncodingDetection() throws Exception {
-        StringBuilder sb = new StringBuilder();
-        for (int i = 0; i < 10000; i++) {
-            sb.append(" ");
-        }
-        byte[] bytes = new String("<html><head>" +
-                "<!--<meta http-equiv=\"Content-Type\" " +
-                "content=\"text/html; charset=ISO-8859-1\"> -->\n" +
-                "   <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />" +
-                "</head>" + sb.toString() + "<body>" + "有什么需要我帮你的" + "</body></html>")
-                .getBytes(StandardCharsets.UTF_8);
-        XMLResult r = getXML(new ByteArrayInputStream(bytes), AUTO_DETECT_PARSER, new Metadata());
-        assertContains("有什么需要我帮你的", r.xml);
-    }
-
-    @Test
-    @Disabled("until we fix TIKA-1896")
-    public void testBadScript() throws Exception {
-        String xml = getXML("testHTMLBadScript.html").xml;
-        assertContains("This is a test", xml);
-        assertNotContained("cool", xml);
-    }
-
-    @Test
-    public void testGoodScript() throws Exception {
-        String xml = getXML("testHTMLGoodScript.html").xml;
-        assertContains("This is a test", xml);
-        assertNotContained("cool", xml);
-    }
-
-    @Test
-    public void testExtractScript() throws Exception {
-        HtmlParser p = new HtmlParser();
-        p.setExtractScripts(true);
-        //TIKA-2550 -- make absolutely sure that macros are still extracted
-        //with the ToTextHandler
-        List<Metadata> metadataList = getRecursiveMetadata("testHTMLGoodScript.html", p,
-                BasicContentHandlerFactory.HANDLER_TYPE.TEXT);
-        assertEquals(2, metadataList.size());
-        assertEquals("MACRO", metadataList.get(1).get(TikaCoreProperties.EMBEDDED_RESOURCE_TYPE));
-        assertContains("cool", metadataList.get(1).get(TikaCoreProperties.TIKA_CONTENT));
-        assertNotContained("cool", metadataList.get(0).get(TikaCoreProperties.TIKA_CONTENT));
-    }
-
-    @Test
-    public void testConfigExtractScript() throws Exception {
-        try (InputStream is = getResourceAsStream("/org/apache/tika/parser/html/tika-config.xml")) {
-            assertNotNull(is);
-            TikaConfig tikaConfig = new TikaConfig(is);
-            Parser p = new AutoDetectParser(tikaConfig);
-            List<Metadata> metadataList = getRecursiveMetadata("testHTMLGoodScript.html", p);
-            assertEquals(2, metadataList.size());
-            assertEquals("MACRO",
-                    metadataList.get(1).get(TikaCoreProperties.EMBEDDED_RESOURCE_TYPE));
-            assertContains("cool", metadataList.get(1).get(TikaCoreProperties.TIKA_CONTENT));
-            assertNotContained("cool", metadataList.get(0).get(TikaCoreProperties.TIKA_CONTENT));
-        }
-    }
-
-
-    @Test
-    public void testMultiThreadingEncodingDetection() throws Exception {
-        ServiceLoader loader = new ServiceLoader(AutoDetectReader.class.getClassLoader());
-        List<EncodingDetector> detectors =
-                new ArrayList<>(loader.loadServiceProviders(EncodingDetector.class));
-        for (EncodingDetector detector : detectors) {
-            testDetector(detector);
-        }
-    }
-
-    private void testDetector(EncodingDetector detector) throws Exception {
-        Path testDocs = Paths.get(getResourceAsUri("/test-documents"));
-        List<Path> tmp = new ArrayList<>();
-        Map<Path, String> encodings = new ConcurrentHashMap<>();
-        File[] testDocArray = testDocs.toFile().listFiles();
-        assertNotNull(testDocArray, "no test docs??");
-        for (File file : testDocArray) {
-            if (file.getName().endsWith(".txt") || file.getName().endsWith(".html")) {
-                String encoding = getEncoding(detector, file.toPath());
-                tmp.add(file.toPath());
-                encodings.put(file.toPath(), encoding);
-            }
-        }
-        ArrayBlockingQueue<Path> paths = new ArrayBlockingQueue<>(tmp.size());
-        paths.addAll(tmp);
-        int numThreads = paths.size() + 1;
-        ExecutorService ex = Executors.newFixedThreadPool(numThreads);
-        CompletionService<String> completionService = new ExecutorCompletionService<>(ex);
-
-        for (int i = 0; i < numThreads; i++) {
-            completionService.submit(new EncodingDetectorRunner(paths, encodings, detector));
-        }
-        int completed = 0;
-        while (completed < numThreads) {
-            Future<String> future = completionService.take();
-
-            if (future.isDone() &&
-                    //will trigger ExecutionException if an IOException
-                    //was thrown during call
-                    EncodingDetectorRunner.DONE.equals(future.get())) {
-                completed++;
-            }
-        }
-    }
-
-    public String getEncoding(EncodingDetector detector, Path p) throws IOException {
-        try (InputStream is = TikaInputStream.get(p)) {
-            Charset charset = detector.detect(is, new Metadata());
-            if (charset == null) {
-                return "NULL";
-            } else {
-                return charset.toString();
-            }
-        }
-    }
-
-    @Test
-    public void testCharsetsNotSupportedByIANA() throws Exception {
-        assertContains("This is a sample text", getXML("testHTML_charset_utf8.html").xml);
-
-        assertContains("This is a sample text", getXML("testHTML_charset_utf16le.html").xml);
-
-    }
-
-    @Test
-    public void testSkippingDataURIInScriptNode() throws Exception {
-        //TIKA-2759 skip data: uri element if inside a script
-        //default behavior
-        List<Metadata> metadataList = getRecursiveMetadata("testHTML_embedded_data_uri_js.html");
-        assertEquals(1, metadataList.size());
-        assertNotContained("alert( 'Hello, world!' );",
-                metadataList.get(0).get(TikaCoreProperties.TIKA_CONTENT));
-
-        //make sure to include it if a user wants scripts to be extracted
-        try (InputStream is = getResourceAsStream("/org/apache/tika/parser/html/tika-config.xml")) {
-            assertNotNull(is);
-            TikaConfig tikaConfig = new TikaConfig(is);
-            Parser p = new AutoDetectParser(tikaConfig);
-            metadataList = getRecursiveMetadata("testHTML_embedded_data_uri_js.html", p);
-            assertEquals(2, metadataList.size());
-            assertContains("alert( 'Hello, world!' );",
-                    metadataList.get(1).get(TikaCoreProperties.TIKA_CONTENT));
-        }
-    }
-
-    @Test
-    public void testMetadataMapping() throws Exception {
-        List<Metadata> metadataList = getRecursiveMetadata("testHTML_metadata.html");
-        Metadata m = metadataList.get(0);
-        assertEquals("Free Web tutorials", m.get(TikaCoreProperties.DESCRIPTION));
-        assertEquals("Free Web tutorials", m.get("description"));
-
-        assertEquals("HTML,CSS,XML,JavaScript", m.get(TikaCoreProperties.SUBJECT));
-        assertEquals("HTML,CSS,XML,JavaScript", m.get("keywords"));
-
-        assertEquals("HTML,CSS,XML,JavaScript", m.get(Office.KEYWORDS));
-        assertEquals("HTML,CSS,XML,JavaScript", m.get(Office.KEYWORDS));
-
-        assertEquals("OldMetaTitle", m.get(TikaCoreProperties.TITLE));
-        assertEquals("OldMetaTitle", m.get("title"));
-
-        assertEquals("John Doe", m.get(TikaCoreProperties.CREATOR));
-        assertEquals("John Doe", m.get("author"));
-    }
-
-    @Test
-    public void testPreferenceForTitleElement() throws Exception {
-        //this tests that the <title> element is preferred over the title attribute
-        List<Metadata> metadataList = getRecursiveMetadata("testHTML_metadata_two_titles.html");
-        Metadata m = metadataList.get(0);
-
-        assertEquals("ActualTitle", m.get(TikaCoreProperties.TITLE));
-        assertEquals("OldMetaTitle", m.get("title"));
-    }
-
-    private class EncodingDetectorRunner implements Callable<String> {
-
-        final static String DONE = "done";
-        private final ArrayBlockingQueue<Path> paths;
-        private final Map<Path, String> encodings;
-        private final EncodingDetector detector;
-
-        private EncodingDetectorRunner(ArrayBlockingQueue<Path> paths, Map<Path, String> encodings,
-                                       EncodingDetector detector) {
-            this.paths = paths;
-            this.encodings = encodings;
-            this.detector = detector;
-        }
-
-        @Override
-        public String call() throws IOException {
-            for (int i = 0; i < encodings.size(); i++) {
-                Path p = paths.poll();
-                if (p == null) {
-                    return DONE;
-                }
-                String detectedEncoding = getEncoding(detector, p);
-                String trueEncoding = encodings.get(p);
-                assertEquals(trueEncoding, detectedEncoding,
-                        "detector class=" + detector.getClass() + " : file=" + p.toString()
-                );
-            }
-            return DONE;
-        }
-    }
-}
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/java/org/apache/tika/parser/html/tagsoup/SrcDocTest.java b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/java/org/apache/tika/parser/html/tagsoup/SrcDocTest.java
deleted file mode 100644
index 285d5a0f4..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/java/org/apache/tika/parser/html/tagsoup/SrcDocTest.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.tika.parser.html.tagsoup;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-import java.util.List;
-
-import org.junit.jupiter.api.Test;
-
-import org.apache.tika.TikaTest;
-import org.apache.tika.metadata.Metadata;
-import org.apache.tika.metadata.TikaCoreProperties;
-
-public class SrcDocTest extends TikaTest {
-
-
-    @Test
-    public void testBasic() throws Exception {
-        List<Metadata> metadataList = getRecursiveMetadata("testSrcDoc.html");
-        assertEquals(2, metadataList.size());
-        assertContains("outside", metadataList.get(0).get(TikaCoreProperties.TIKA_CONTENT));
-        assertContains("this is the iframe content",
-                metadataList.get(1).get(TikaCoreProperties.TIKA_CONTENT));
-        assertEquals(TikaCoreProperties.EmbeddedResourceType.INLINE.toString(),
-                metadataList.get(1).get(TikaCoreProperties.EMBEDDED_RESOURCE_TYPE));
-    }
-}
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/java/org/apache/tika/parser/html/tagsoup/StandardHtmlEncodingDetectorTest.java b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/java/org/apache/tika/parser/html/tagsoup/StandardHtmlEncodingDetectorTest.java
deleted file mode 100644
index e64056be3..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/java/org/apache/tika/parser/html/tagsoup/StandardHtmlEncodingDetectorTest.java
+++ /dev/null
@@ -1,373 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.tika.parser.html.tagsoup;
-
-import static org.junit.jupiter.api.Assertions.assertArrayEquals;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-import java.io.BufferedInputStream;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.SequenceInputStream;
-import java.nio.charset.Charset;
-import java.nio.charset.StandardCharsets;
-
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-import org.apache.tika.metadata.Metadata;
-import org.apache.tika.parser.html.tagsoup.charsetdetector.StandardHtmlEncodingDetector;
-import org.apache.tika.parser.html.tagsoup.charsetdetector.charsets.ReplacementCharset;
-
-public class StandardHtmlEncodingDetectorTest {
-    private Metadata metadata = new Metadata();
-
-    @BeforeEach
-    public void setUp() {
-        this.metadata = new Metadata();
-    }
-
-    @Test
-    public void basic() throws IOException {
-        assertWindows1252("<meta charset=WINDOWS-1252>");
-    }
-
-    @Test
-    public void quoted() throws IOException {
-        assertWindows1252("<meta charset='WINDOWS-1252'>");
-    }
-
-    @Test
-    public void duplicateMeta() throws IOException {
-        assertWindows1252("<meta charset='WINDOWS-1252'>" + "<meta charset='UTF-8'>");
-    }
-
-    @Test
-    public void duplicateAttribute() throws IOException {
-        assertWindows1252("<meta charset='WINDOWS-1252' charset='UTF-8'>");
-    }
-
-    @Test
-    public void invalidThenValid() throws IOException {
-        assertCharset("<meta charset=blah>" + "<meta charset=WINDOWS-1252>", null);
-    }
-
-    @Test
-    public void spacesInAttributes() throws IOException {
-        assertWindows1252("<meta charset\f=  \t  WINDOWS-1252>");
-    }
-
-    @Test
-    public void httpEquiv() throws IOException {
-        assertWindows1252("<meta " + "http-equiv='content-type' " +
-                "content='text/html; charset=\"WINDOWS-1252\"'>"); // quotes around the
-        // charset are allowed
-        assertWindows1252("<meta " + "content=' charset  =  WINDOWS-1252' " +
-                // The charset may be anywhere in the content attribute
-                "http-equiv='content-type' >");
-    }
-
-    @Test
-    public void emptyAttributeEnd() throws IOException {
-        assertWindows1252("<meta charset=WINDOWS-1252 a>");
-    }
-
-    @Test
-    public void httpEquivDuplicateCharset() throws IOException {
-        assertWindows1252(
-                "<meta " + "http-equiv='content-type' " + "content='charset=WINDOWS-1252;" +
-                        // The detection should stop after the semicolon
-                        "charset=UTF-8'>");
-    }
-
-    @Test
-    public void htmlFragment() throws IOException {
-        assertWindows1252("<!doctype html><html class=nojs><head><meta charset='WINDOWS-1252'>");
-    }
-
-    @Test
-    public void veryBadHtml() throws IOException {
-        // check that the parser is not confused by garbage before the declaration
-        assertWindows1252("<< l \" == / '=x\n >" + "<!--> " + "< <x'/ <=> " + "<meta/>" + "<meta>" +
-                "<a x/>" + "<meta charset='WINDOWS-1252'>");
-    }
-
-    @Test
-    public void specialTag() throws IOException {
-        // special tags cannot have arguments, any '>' ends them
-        assertWindows1252("<? x='><meta charset='WINDOWS-1252'>");
-    }
-
-    @Test
-    public void longHtml() throws IOException {
-        StringBuilder sb = new StringBuilder(
-                "<!doctype html>\n" + "<html>\n" + "<head>\n" + "<title>Hello world</title>\n");
-        String repeated = "<meta x='y' />\n";
-        String charsetMeta = "<meta charset='windows-1252'>";
-
-        while (sb.length() + repeated.length() + charsetMeta.length() < 1024) sb.append(repeated);
-
-        sb.append(charsetMeta);
-
-        assertWindows1252(sb.toString());
-    }
-
-    @Test
-    public void tooLong() throws IOException {
-        // Create a string with 1Mb of '\0' followed by a meta
-        String padded = new String(new byte[1000000], StandardCharsets.ISO_8859_1) +
-                "<meta charset='windows-1252'>";
-        // Only the first bytes should be prescanned, so the algorithm should stop before
-        // the meta tag
-        assertCharset(padded, null);
-    }
-
-    @Test
-    public void incompleteMeta() throws IOException {
-        assertCharset("<meta charset='WINDOWS-1252'", null); // missing '>' at the end
-    }
-
-    @Test
-    public void charsetWithWhiteSpaces() throws IOException {
-        assertWindows1252("<meta charset='   \t\n  WINDOWS-1252 \t\n'>");
-    }
-
-    @Test
-    public void mixedCase() throws IOException {
-        assertWindows1252("<mEtA chArsEt='WInDOWs-1252'>");
-    }
-
-    @Test
-    public void utf16() throws IOException {
-        // According to the specification 'If charset is a UTF-16 encoding, then set
-        // charset to UTF-8.'
-        assertCharset("<meta charset='UTF-16BE'>", StandardCharsets.UTF_8);
-    }
-
-    @Test
-    public void xUserDefined() throws IOException {
-        // According to the specification 'If charset is x-user-defined, then set charset
-        // to windows-1252.'
-        assertWindows1252("<meta charset='x-user-defined'>");
-    }
-
-    @Test
-    public void replacement() throws IOException {
-        // Several dangerous charsets should are aliases of 'replacement' in the spec
-        String inString = "<meta charset='iso-2022-cn'>";
-        assertCharset(new ByteArrayInputStream(inString.getBytes(StandardCharsets.ISO_8859_1)),
-                new ReplacementCharset());
-    }
-
-    @Test
-    public void iso88591() throws IOException {
-        // In the spec, iso-8859-1 is an alias for WINDOWS-1252
-        assertWindows1252("<meta charset='iso-8859-1'>");
-    }
-
-    @Test
-    public void macintoshEncoding() throws IOException {
-        // The mac roman encoding exists in java, but under the name x-MacRoman
-        assertCharset("<meta charset='macintosh'>", Charset.forName("x-MacRoman"));
-    }
-
-    @Test
-    public void bom() throws IOException {
-        // A BOM should have precedence over the meta
-        assertCharset("\ufeff<meta charset='WINDOWS-1252'>", StandardCharsets.UTF_8);
-        assertCharset("\ufeff<meta charset='WINDOWS-1252'>", StandardCharsets.UTF_16LE);
-        assertCharset("\ufeff<meta charset='WINDOWS-1252'>", StandardCharsets.UTF_16BE);
-    }
-
-    @Test
-    public void withSlash() throws IOException {
-        assertWindows1252("<meta/charset='WINDOWS-1252'>");
-    }
-
-    @Test
-    public void insideDescription() throws IOException {
-        assertWindows1252("<meta name='description'" +
-                "content='If I write charset=UTF-8 here, it doesnt mean the page is in UTF-8'/>" +
-                "<meta charset='WINDOWS-1252'>");
-    }
-
-    @Test
-    public void insideTag() throws IOException {
-        assertWindows1252("<tag " + "attribute=\"<meta charset='UTF-8'>\" " + // inside attribute
-                "<meta charset='UTF-8' " + // still inside tag
-                "/>" + // tag end
-                "<meta charset='WINDOWS-1252'>");
-    }
-
-    @Test
-    public void missingAttribute() throws IOException {
-        assertWindows1252("<meta content='charset=UTF-8'>" + // missing http-equiv attribute
-                "<meta charset='WINDOWS-1252'>" // valid declaration
-        );
-    }
-
-    @Test
-    public void insideSpecialTag() throws IOException {
-        // Content inside <?, <!, and </ should be ignored
-        for (byte b : "?!/".getBytes(StandardCharsets.US_ASCII))
-            assertWindows1252("<" + (char) b + // start comment
-                    "<meta charset='UTF-8'>" + // inside special tag
-                    "<meta charset='WINDOWS-1252'>" // real charset declaration
-            );
-    }
-
-    @Test
-    public void spaceBeforeTag() throws IOException {
-        assertWindows1252("< meta charset='UTF-8'>" + // invalid charset declaration
-                "<meta charset='WINDOWS-1252'>" // real charset declaration
-        );
-    }
-
-    @Test
-    public void invalidAttribute() throws IOException {
-        assertWindows1252("<meta " + "badcharset='UTF-8' " + // invalid charset declaration
-                "charset='WINDOWS-1252'>" // real charset declaration
-        );
-    }
-
-    @Test
-    public void unmatchedQuote() throws IOException {
-        assertWindows1252("<meta http-equiv='content-type' content='charset=\"UTF-8'>" +
-                // invalid charset declaration
-                "<meta charset='WINDOWS-1252'>" // real charset declaration
-        );
-    }
-
-    @Test
-    public void realWorld() throws IOException {
-        assertWindows1252("<!DOCTYPE html>\n" + "<html lang=\"fr\">\n" + "<head>\n" +
-                "<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':\n" +
-                "\t\t\tnew Date().getTime(),event:'gtm.js'});var " +
-                "f=d.getElementsByTagName(s)[0],\n" +
-                "\t\t\tj=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=\n" +
-                "\t\t\t'https://www.googletagmanager.com/gtm.js?id='+i+dl;" +
-                "f.parentNode.insertBefore(j,f);\n" +
-                "\t\t\t})(window,document,'script','dataLayer','GTM-PNX8H8X');</script>\n" +
-                "<title>Horaires Transilien 2018 - Lignes A B C D E H J K L N P R U</title>\n" +
-                "<meta name=\"description\" content=\"Consultez les horaires du Transilien en " +
-                "temps réel. Lignes A et B du RER. Lignes C " +
-                "D E H J K L N P R U du Transilien.\">\n" +
-                "<meta name=\"keywords\" content=\"horaires transilien\">\n" +
-                "<meta charset=\"windows-1252\">\n" +
-                "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n" +
-                "<meta name=\"robots\" content=\"follow, index\">\n" + "<base hr");
-    }
-
-    @Test
-    public void withCompactComment() throws IOException {
-        // <!--> is a valid comment
-        assertWindows1252("<!--" + // start comment
-                "<meta charset='UTF-8'>" + // inside comment
-                "-->" + // end comment
-                "<!-->" + // compact comment
-                "<meta charset='WINDOWS-1252'>" // outside comment, charset declaration
-        );
-    }
-
-    @Test
-    public void withCharsetInContentType() throws IOException {
-        metadata.set(Metadata.CONTENT_TYPE, "text/html; Charset=ISO-8859-1");
-        // ISO-8859-1 is an alias for WINDOWS-1252, even if it's set at the transport layer level
-        assertWindows1252("");
-        assertWindows1252("<meta charset='UTF-8'>");
-        assertWindows1252("<meta http-equiv='content-type' content='charset=utf-8'>");
-        // if a BOM is present, it has precedence over transport layer information
-        assertCharset("\ufeff<meta charset='WINDOWS-1252'>", StandardCharsets.UTF_8);
-        assertCharset("\ufeff<meta charset='WINDOWS-1252'>", StandardCharsets.UTF_16LE);
-        assertCharset("\ufeff<meta charset='WINDOWS-1252'>", StandardCharsets.UTF_16BE);
-    }
-
-    @Test
-    public void throwResistance() throws IOException {
-        // The preprocessing should return right after having found the charset
-        // So if an error is thrown in the stream AFTER the declaration,
-        // it shouldn't see it
-        assertWindows1252(throwAfter("<meta charset='WINDOWS-1252'>"));
-        assertWindows1252(throwAfter("<meta charset='WINDOWS-1252'><some other tag"));
-
-        // But if an error is thrown before the end of the meta tag, it should see it
-        // and return unsuccessfully
-        assertCharset(throwAfter("<meta charset='WINDOWS-1252'"), null);
-
-        // If there is no meta, but an error is thrown, the detector simply returns
-        // unsuccessfully (it should not throw runtime errors)
-        assertCharset(throwAfter("<"), null);
-        assertCharset(throwAfter("<!"), null);
-        assertCharset(throwAfter("<!doctype"), null);
-        assertCharset(throwAfter("<!doctype html><html"), null);
-        assertCharset(throwAfter("<!doctype html><html attr"), null);
-        assertCharset(throwAfter("<!doctype html><html attr="), null);
-        assertCharset(throwAfter("<!doctype html><html attr=x"), null);
-        assertCharset(throwAfter("<!doctype html><html attr='x"), null);
-    }
-
-    @Test
-    public void streamReset() throws IOException {
-        // The stream should be reset after detection
-        byte[] inBytes = {0, 1, 2, 3, 4};
-        byte[] outBytes = new byte[5];
-        InputStream inStream = new ByteArrayInputStream(inBytes);
-        detectCharset(inStream);
-        // The stream should still be readable from the beginning after detection
-        inStream.read(outBytes);
-        assertArrayEquals(inBytes, outBytes);
-    }
-
-    private void assertWindows1252(String html) throws IOException {
-        assertCharset(html, Charset.forName("WINDOWS-1252"));
-    }
-
-    private void assertWindows1252(InputStream inStream) throws IOException {
-        assertCharset(inStream, Charset.forName("WINDOWS-1252"));
-    }
-
-    private void assertCharset(String html, Charset charset) throws IOException {
-        final Charset contentsCharset = (charset == null) ? StandardCharsets.UTF_8 : charset;
-        InputStream inStream = new ByteArrayInputStream(html.getBytes(contentsCharset));
-        final Charset detected = detectCharset(inStream);
-        assertEquals(charset, detected,
-                html + " should be detected as " + charset);
-    }
-
-    private void assertCharset(InputStream inStream, Charset charset) throws IOException {
-        final Charset detected = detectCharset(inStream);
-        assertEquals(charset, detected);
-    }
-
-    private Charset detectCharset(InputStream inStream) throws IOException {
-        return new StandardHtmlEncodingDetector().detect(inStream, metadata);
-    }
-
-    private InputStream throwAfter(String html) {
-        byte[] contents = html.getBytes(StandardCharsets.UTF_8);
-        InputStream contentsInStream = new ByteArrayInputStream(contents);
-        InputStream errorThrowing = new InputStream() {
-            @Override
-            public int read() throws IOException {
-                throw new IOException("test exception");
-            }
-        };
-        return new BufferedInputStream(new SequenceInputStream(contentsInStream, errorThrowing));
-    }
-}
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/org/apache/tika/parser/html/tika-config.xml b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/org/apache/tika/parser/html/tika-config.xml
deleted file mode 100644
index cb2778814..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/org/apache/tika/parser/html/tika-config.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You 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.
--->
-<properties>
-    <parsers>
-        <parser class="org.apache.tika.parser.DefaultParser">
-            <parser-exclude class="org.apache.tika.parser.html.tagsoup.HtmlParser"/>
-        </parser>
-
-        <parser class="org.apache.tika.parser.html.tagsoup.HtmlParser">
-            <params>
-                <param name="extractScripts" type="bool">true</param>
-            </params>
-        </parser>
-    </parsers>
-</properties>
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/big-preamble.html b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/big-preamble.html
deleted file mode 100644
index 545addd3c..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/big-preamble.html
+++ /dev/null
@@ -1,827 +0,0 @@
-<script language="javascript">
-
-function addToList(from,to)
-{
-    if(from.selectedIndex >= 0) {
-        isPresent = false;
-        var options=to.getElementsByTagName("option");
-
-        if(from.item(from.selectedIndex).value == "0") {
-            for(i=to.options.length-1; i>= 0; i--) {
-                to.removeChild(options[i]);
-            }
-        }
-        for (i=0; i< to.options.length; i++)
-        {
-            if(options[i].value == from.item(from.selectedIndex).value || options[i].value == "0")
-                isPresent = true;
-        }
-        if(!isPresent) {
-            var oOption = document.createElement("option");;
-            to.appendChild(oOption);
-            oOption.value = from.item(from.selectedIndex).value;
-            oOption.text  = from.item(from.selectedIndex).text;
-        }
-    }
-}
-
-function delFromList(to)
-{
-    if(to.selectedIndex >= 0) {
-      var options=to.getElementsByTagName("option");
-      to.removeChild(options[to.selectedIndex]);
-    }
-}
-
-function fillListToGet(form, to)
-{
-    var options=to.getElementsByTagName("option");
-    for (i=0; i< to.options.length; i++)
-    {
-        form.action += "&"+to.name+"="+options[i].value;
-    }
-}
-
-</script>
-<script language="javascript">
-
-function addToList(from,to)
-{
-    if(from.selectedIndex >= 0) {
-        isPresent = false;
-        var options=to.getElementsByTagName("option");
-
-        if(from.item(from.selectedIndex).value == "0") {
-            for(i=to.options.length-1; i>= 0; i--) {
-                to.removeChild(options[i]);
-            }
-        }
-        for (i=0; i< to.options.length; i++)
-        {
-            if(options[i].value == from.item(from.selectedIndex).value || options[i].value == "0")
-                isPresent = true;
-        }
-        if(!isPresent) {
-            var oOption = document.createElement("option");;
-            to.appendChild(oOption);
-            oOption.value = from.item(from.selectedIndex).value;
-            oOption.text  = from.item(from.selectedIndex).text;
-        }
-    }
-}
-
-function delFromList(to)
-{
-    if(to.selectedIndex >= 0) {
-      var options=to.getElementsByTagName("option");
-      to.removeChild(options[to.selectedIndex]);
-    }
-}
-
-function fillListToGet(form, to)
-{
-    var options=to.getElementsByTagName("option");
-    for (i=0; i< to.options.length; i++)
-    {
-        form.action += "&"+to.name+"="+options[i].value;
-    }
-}
-
-function fillOtherGet(form)
-{
-  if (document.all.price_from != "") {
-    form.action += "&price_from="+document.all.price_from.value;
-  }
-  if (document.all.price_to != "") {
-    form.action += "&price_to="+document.all.price_to.value;
-  }
-  if (document.all.square_from != "") {
-    form.action += "&square_from="+document.all.square_from.value;
-  }
-  if (document.all.square_to != "") {
-    form.action += "&square_to="+document.all.square_to.value;
-  }
-  if (document.all.MKAD != "") {
-    form.action += "&MKAD="+document.all.MKAD.value;
-  }
-}
-
-</script>
-<script language="javascript">
-
-function addToList(from,to)
-{
-    if(from.selectedIndex >= 0) {
-        isPresent = false;
-        var options=to.getElementsByTagName("option");
-
-        if(from.item(from.selectedIndex).value == "0") {
-            for(i=to.options.length-1; i>= 0; i--) {
-                to.removeChild(options[i]);
-            }
-        }
-        for (i=0; i< to.options.length; i++)
-        {
-            if(options[i].value == from.item(from.selectedIndex).value || options[i].value == "0")
-                isPresent = true;
-        }
-        if(!isPresent) {
-            var oOption = document.createElement("option");
-            to.appendChild(oOption);
-            oOption.value = from.item(from.selectedIndex).value;
-            oOption.text  = from.item(from.selectedIndex).text;
-        }
-    }
-}
-
-function delFromList(to)
-{
-    if(to.selectedIndex >= 0) {
-      var options=to.getElementsByTagName("option");
-      to.removeChild(options[to.selectedIndex]);
-    }
-}
-
-function fillListToGet(form, to)
-{
-    var options=to.getElementsByTagName("option");
-    for (i=0; i< to.options.length; i++)
-    {
-        form.action += "&"+to.name+"="+options[i].value;
-    }
-}
-
-function fillOtherGet(form)
-{
-  if (document.all.price_from != "") {
-    form.action += "&price_from="+document.all.price_from.value;
-  }
-  if (document.all.price_to != "") {
-    form.action += "&price_to="+document.all.price_to.value;
-  }
-  if (document.all.square_from != "") {
-    form.action += "&square_from="+document.all.square_from.value;
-  }
-  if (document.all.square_to != "") {
-    form.action += "&square_to="+document.all.square_to.value;
-  }
-  if (document.all.MKAD != "") {
-    form.action += "&MKAD="+document.all.MKAD.value;
-  }
-}
-
-</script>
-
-<html>
-<head>
-<title>������ �������, ����� ��������,  ������ ������ � ������. ������������ ������������. ������ �������� "���������-������������"
-
-</title>
-<link rel="SHORTCUT ICON" href="/favicon.ico" />
-<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
-<meta http-equiv="Content-Language" content="ru">
-<meta name="Keywords" content="��������� ������������, ������, �����, �����, ����, ��������,  �������,  ���������, �����, �������, �������, �������, ���, ������, �������, ������������, ����������, �������, ������������, ������, ������, ����">
-<meta name="Description" content="��������� ������������ "��������� ������������", "������� ����" ������. ������ � ������� ������������ � ����� ������������ � ������ � �����������: �������, ���������, ����������������, �������� � ������ ������� ���������, ��������, �������, ��������, ����, ����. ������ �������, ������, ���������. ����� ��������. ����� ������. ������ ����.">
-<meta http-equiv="description" content="��������� ������������ "��������� ������������", "������� ����" ������. ������ � ������� ������������ � ����� ������������ � ������ � �����������: �������, ���������, ����������������, �������� � ������ ������� ���������, ��������, �������, ��������, ����, ����. ������ �������, ������, ���������. ����� ��������. ����� ������. ������ ����.">
-<meta name="revisit" content="7 days">
-<meta name='yandex-verification' content='77a043af80883202' />
-
-<link rel="stylesheet" href="continent.css" type="text/css">
-</head>
-<body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
-<table width="100%" border="0" cellspacing="0" cellpadding="0" height="100%">
-  <tr>
-    <td height="10"> 
-      <noindex><table width="100%" border="0" cellspacing="0" cellpadding="0">
-        <tr>
-          <td><a title="������ ������� ������� ������" href="/default.asp"><img src="imgs/logo2.gif" Alt="������ ������� �������, ������, ������, �������, ���������" width="205" height="68" style="margin-top:13px; margin-bottom:3px; margin-left:13px;" border=0></a></td>
-          <td align=center valign=bottom>
-          
-            <a href='http://office.realty-guide.ru/rot/?key=289' target=_blank><img src='/imgs/banners/ban32.gif' border=0 width=500 height=75></a>
-          
-          </td>
-        </tr>
-      </table></noindex>
-    </td>
-  </tr>
-  <tr>
-    <td valign="top" height="100%"> 
-      <table width="100%" border="0" cellspacing="0" cellpadding="0" height="100%">
-        <tr>
-          <td width="228" bgcolor="#546154" valign="top" align=center> 
-            <table width="100%" border="0" cellspacing="0" cellpadding="0" height=402>
-              <tr> 
-                <td height="147" background="imgs/hd_bg2.gif" valign="top"><img src="imgs/h_fl.jpg" width="202" height="136" style="margin-top: 10px; margin-left: 14px;" alt="������ ������� �������, ������, ������, �������, ���������"></td>
-              </tr>
-              <tr> 
-                <td height="255" valign="top">
-                  <OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
- codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
- WIDTH="228" HEIGHT="250" id="menu10" ALIGN="">
- <PARAM NAME=movie VALUE="menu10.swf"> <PARAM NAME=quality VALUE=high> <PARAM NAME=bgcolor VALUE=#525E52> <EMBED src="menu10.swf" quality=high bgcolor=#525E52  WIDTH="228" HEIGHT="250" NAME="menu10" ALIGN=""
- TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"></EMBED>
-</OBJECT>
-                </td>
-              </tr>
-            </table>
-<a href="/kommvip.asp"><img width=169 height=114 src="/imgs/vipbanner3.gif" border=0 alt="� ������ ������� �� ������ ������������ �� ������������� ��� �������� �� ������ ������������ ������������: ������ ������, �������, ���������, ����, ����������, ��������� ���������� ���������� � �.�., ������������ ������� ��������� ������������ ������� � ���������� ���������-������������"></a>
-<br>
-<br>
-<a href="/arendavip.asp"><img width=169 height=114 src="/imgs/vipbanner_arenda.jpg" border=0 alt="� ������ ������� �� ������ ������������ �� ������������ ������������� �� ������ �����: ������ �������, ������ ���������, ������ ���, ������ ����� � �.�., ������������ ������� ��������� ������������ ������� � ���������� ���������-������������"></a>
-<br>
-<br>
-<noindex><a target=_blank title="���������� ������� ������" href="http://www.lagunadom.ru"><img width=169 height=114 src="/ban/ban_169_114.gif" border=0 alt="���������� ������� ������"></a></noindex>
-<br>
-<br>
-<br>
-<br>
-<noindex><!--a target=_blank title="������������� ����, ���������� ����, ����, ������������� ���, ���������� ��� - ��������-������� ���������� ����" href="http://www.nyelki.ru"><img width=169 height=94 src="/imgs/banner.jpg" border=0 alt="������������� ����, ���������� ����, ����, ������������� ���, ���������� ��� - ��������-������� ���������� ����"></a>
-<br>
-<br>
-<br>
-<br-->
-<!-- Yandex.Metrika -->
-<script src="//mc.yandex.ru/resource/watch.js" type="text/javascript"></script>
-<script type="text/javascript">
-try { var yaCounter177293 = new Ya.Metrika(177293); } catch(e){}
-</script>
-<noscript><div style="position: absolute;"><img src="//mc.yandex.ru/watch/177293" alt="" /></div></noscript>
-<!-- Yandex.Metrika -->
-<!--Rating@Mail.ru COUNTER--><script language="JavaScript" type="text/javascript"><!--
-d=document;var a='';a+=';r='+escape(d.referrer)
-js=10//--></script><script language="JavaScript1.1" type="text/javascript"><!--
-a+=';j='+navigator.javaEnabled()
-js=11//--></script><script language="JavaScript1.2" type="text/javascript"><!--
-s=screen;a+=';s='+s.width+'*'+s.height
-a+=';d='+(s.colorDepth?s.colorDepth:s.pixelDepth)
-js=12//--></script><script language="JavaScript1.3" type="text/javascript"><!--
-js=13//--></script><script language="JavaScript" type="text/javascript"><!--
-d.write('<a target=_blank href="http://top.mail.ru/jump?from=782596"'+
-' target=_top><img src="http://top.list.ru/counter'+
-'?id=782596;t=54;js='+js+a+';rand='+Math.random()+
-'" alt="�������@Mail.ru"'+' border=0 height=31 width=88/><\/a>')
-if(11<js)d.write('<'+'!-- ')//--></script><noscript><a
-target=_blank href="http://top.mail.ru/jump?from=782596"><img
-src="http://top.list.ru/counter?js=na;id=782596;t=54"
-border=0 height=31 width=88
-alt="�������@Mail.ru"/></a></noscript><script language="JavaScript" type="text/javascript"><!--
-if(11<js)d.write('--'+'>')//--></script><!--/COUNTER--></noindex>
-<br>
- <br><br>
-          </td>
-          <td valign="top" bgcolor="#546154" height="100%"> 
-            <table width="100%" border="0" cellspacing="0" cellpadding="0" height="100%">
-              <tr>
-                <td height="4" background="imgs/hd_bg1.gif" align="right" valign="top" style="padding-right:13px; font-size:4px;">&nbsp;</td>
-              </tr>
-              <tr>
-                <td valign="top" style="padding-right:13px;" height="20" align=right background="imgs/hd_bg1n.gif">
-                  <table border=0 cellspacing=0 cellpadding=0 height=20>
-                  <tr>
-
-                    <td><img src="/imgs/tabl1_p.gif" height=20></td>
-                    <td valign=bottom background="/imgs/tabl2_p.gif"><div style="padding-bottom:2px;"><a style="color:#000000; text-decoration:none;" href="/basket.asp">�������</a></td>
-                    <td><img src="/imgs/tablr_pa.gif" height=20></td>
-                    <td valign=bottom background="/imgs/tabl2_a.gif"><div style="padding-bottom:2px; font-weight:bold; text-transform:uppercase;">���������-������������</div></div></td>
-                    <td><img src="/imgs/tabl3_a.gif" height=20></td>
-
-                  </tr>
-                  </table>
-                </td>
-              </tr>
-              <tr>
-                <td valign="top" style="padding-bottom:13px;padding-right:13px;" height="100%">
-
-<style>
-a:link {  color: #000000; text-decoration: none;}
-a:visited {  color: #000000; text-decoration: none;}
-a:active {  color: #000000; text-decoration: none;}
-a:hover {  color: #1FB21F; text-decoration: underline;}
-h2 { margin:0px; padding:0px; font-weight: normal; font-size: 8pt; text-decoration:none;}
-</style>
-<table width="100%" border="0" cellspacing="0" cellpadding="0" bgcolor=#FFFFFF>
-<tr>
-  <td valign=top align=left><img src="/imgs/fp2.gif" width=37 height=31></td>
-  <td valign=top align=right><img src="/imgs/fp1.gif" width=257 height=24></td>
-</tr>
-</table>
-<table width="100%" border="0" cellspacing="5" cellpadding="0" bgcolor=#FFFFFF>
-<tr>
-  <td valign=top>
-    <table width="100%" border="0" cellspacing="1" cellpadding="0" bgcolor=#FFFFFF>
-    <tr>
-      <td width=12 valign=top><img src="/imgs/fp_li2.gif" width=8 height=15></td>
-      <td>
-        <h1>���������-������������:</h1>
-<p style="font-family:Times New Roman; font-size:14px; margin-top:10px; margin-bottom:0px;"><b>��������� ������������ "���������-������������"</b>, �������� � 1999 ����, ������������ ����� ������� �������������� �� ����� ������������ �. ������, ������� ������������ ������������ ������������ � �������������� ������ � ������� �������.</p>
-<p style="font-family:Times New Roman; font-size:14px; margin-top:10px; margin-bottom:0px;">�������� "<b>���������-������������</b>" ���������� ���������� ������ ������ ���� ������������ �������� "������ � ������ � �����������" �� �������� ������� � ������������ ��������������� ���������������� ����� � ������.</p>
-<p style="font-family:Times New Roman; font-size:14px; margin-top:10px; margin-bottom:0px;">�� ���������� ��������� <b>����������� ������</b>:</p>
-<ul style="font-family:Times New Roman; font-size:14px; margin-top:10px; margin-bottom:0px;">
-<li><b>������ � ������� ������������ ������������ � ������ � �����������</b>: �������, ���������, ����������������, �������� � ������ ������� ���������.
-<li><b>�������, ������ ������ � ������-�������</b>, ������ ������ �����, ������ ����� ��� ��������.
-<li><b>������ � ������� ����� ������������ � ������</b>: ��������, �������.
-<li><b>������ � ������� ���������� ������������ � �����������</b>: ��������, ����, ����.
-<li><b>����������� ������������� ������ �� ������ � �����-������� ����� � ������� ���������</b>.
-<li><b>���������� � ����������� �������������������� ����������</b>.
-<li><b>������������� ���������� �������������</b>.
-</ul>
-<br>&nbsp;
-      </td>
-    </tr>
-    </table>
-    <table width="100%" border="0" cellspacing="0"  style="padding-left:12px;" cellpadding="0" bgcolor=#FFFFFF>
-    <tr>
-      <td valign=top width=50%><h1 style="color:red">������ ����� ������������</h1></td>
-      <td valign=top width=50%><h1 style="color:red">������ ������������ ������������</h1></td>
-    </tr>
-    <tr>
-      <td valign=top><br><h1>������ ������� � ������</h1></td>
-      <td valign=top><br><h1>������ ������ � ���������</h1></td>
-    </tr>
-    <tr>
-      <td valign=top>
-        <table width="100%" border="0" cellspacing="5" cellpadding="0" bgcolor=#FFFFFF>
-        <tr>
-          <td valign=top width=60><img width=60 height=60 alt="������ ������� � ������" border=0 class=img1 src="/imgs/fp_i1.jpg"></td>
-          <td valign=top class=fp_small>����� �������� � ������ ���� ��������� ������������ ������� ������ � �������. 150 ����������� ����� �������� ���������. ���� �� ������ ������� ����������� ������ ���.</td>
-        </tr>
-        <tr>
-          <td colspan=2>
-            <a title="������ �������" href="arenda_all.asp"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����������� �� ������ �������</h2></a></div>
-            <a title="�������� � ������" href="arenda_dball.asp"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����� ������� � ������</h2></a></div>
-          </td>
-        </tr>
-        </table>
-      </td>
-      <td valign=top>
-        <table width="100%" border="0" cellspacing="5" cellpadding="0" bgcolor=#FFFFFF>
-        <tr>
-          <td valign=top width=60><img width=60 height=60 alt="������ ������ � ���������" border=0 class=img1 src="/imgs/fp_i2.jpg"></td>
-          <td valign=top class=fp_small>������ ������. ����� ������� ��������� � ������. ����� 2000 ��������� ������ � ������. 100 ����� ����������� ����� ���� ������ ����. ���� �� ������ ������ ����������� ��������. ���� ������.</td>
-        </tr>
-        <tr>
-          <td colspan=2>
-            <a title="������ ������" href="komm.asp?kommtype_id=1&kommtype_id=8"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����������� �� ������ ������</h2></a></div>
-            <a title="����� � ������" href="komm_db.asp"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����� ������ � ������</h2></a></div>
-          </td>
-        </tr>
-        </table>
-      </td>
-    </tr>
-    <tr>
-      <td valign=top><br><h1>������ ������ � ������</h1></td>
-      <td valign=top><br><h1>������ ������� � ������</h1></td>
-    </tr>
-    <tr>
-      <td valign=top>
-        <table width="100%" border="0" cellspacing="5" cellpadding="0" bgcolor=#FFFFFF>
-        <tr>
-          <td valign=top width=60><img width=60 height=60 alt="������ ������ � ������" border=0 class=img1 src="/imgs/fp_i3.jpg"></td>
-          <td valign=top class=fp_small>������ ������ � ����� ������ ������ �� 1 ���� � �������� �������. � ��� ����� ����� ��������� � ������ ������� � ������������ ��������. ������ ����� �������? ������ �������� ������!</td>
-        </tr>
-        <tr>
-          <td colspan=2>
-            <a title="������ ������" href="arenda_all.asp?roomamount=-1"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����������� �� ������ ������</h2></a></div>
-            <a title="������� � ������" href="arenda_dball.asp"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����� ������ � ������</h2></a></div>
-          </td>
-        </tr>
-        </table>
-      </td>
-      <td valign=top>
-        <table width="100%" border="0" cellspacing="5" cellpadding="0" bgcolor=#FFFFFF>
-        <tr>
-          <td valign=top width=60><img width=60 height=60 alt="������ ������� � ������" border=0 class=img1 src="/imgs/fp_i4.jpg"></td>
-          <td valign=top class=fp_small>����� ����� � ������ ��� �����������. �� ����� ����� �� ������ ����� ��������� ����������� �� ������ ��������� ��������� � ��������. ���� �������.</td>
-        </tr>
-        <tr>
-          <td colspan=2>
-            <a title="������ �������" href="komm.asp?kommtype_id=2"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����������� �� ������ �������</h2></a></div>
-            <a title="������ � ������" href="komm_db.asp"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����� ������� � ������</h2></a></div>
-          </td>
-        </tr>
-        </table>
-      </td>
-    </tr>
-    <tr>
-      <td valign=top><br><h1>������ ������� �������. ���� �������.</h1></td>
-      <td valign=top><br><h1>������ ���������������� ���������</h1></td>
-    </tr>
-    <tr>
-      <td valign=top>
-        <table width="100%" border="0" cellspacing="5" cellpadding="0" bgcolor=#FFFFFF>
-        <tr>
-          <td valign=top width=60><img width=60 height=60 alt="������ ������� �������" border=0 class=img1 src="/imgs/fp_i5.jpg"></td>
-          <td valign=top class=fp_small>��� ���, ��� ����� ����� ������� �������� ��� �������� � ������. � ��� �� ����� ����� 1000 �������� ������� ������������ � ������. ���� �������. ����� ������� ��������? �����������, �� �������.</td>
-        </tr>
-        <tr>
-          <td colspan=2>
-            <a title="������ �������" href="arenda_all.asp?elit=1"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����������� �� ������ ������� �������</h2></a></div>
-            <a title="�������� � ������" href="arenda_dball.asp"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����� ������� ������� � ������</h2></a></div>
-          </td>
-        </tr>
-        </table>
-      </td>
-      <td valign=top>
-        <table width="100%" border="0" cellspacing="5" cellpadding="0" bgcolor=#FFFFFF>
-        <tr>
-          <td valign=top width=60><img width=60 height=60 alt="������ ���������������� ���������" border=0 class=img1 src="/imgs/fp_i6.jpg"></td>
-          <td valign=top class=fp_small>��� ���, ��� ����� ����� ��� ����� ������������ � ������ ��� �����������. � ��� �� ���� �� ������ ����� ������� ����� ��������� ��� ������������ . ���� ���������.</td>
-        </tr>
-        <tr>
-          <td colspan=2>
-            <a title="������ �����������" href="komm.asp?kommtype_id=4"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����������� �� ������ �����������</h2></a></div>
-            <a title="������������ � ������" href="komm_db.asp"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����� ����������� � ������</h2></a></div>
-          </td>
-        </tr>
-        </table>
-      </td>
-    </tr>
-    <tr>
-      <td valign=top><br><h1>���������� ������ �������</h1></td>
-      <td valign=top><br><h1>������ ���������</h1></td>
-    </tr>
-    <tr>
-      <td valign=top>
-        <table width="100%" border="0" cellspacing="5" cellpadding="0" bgcolor=#FFFFFF>
-        <tr>
-          <td valign=top width=60><img width=60 height=60 alt="���������� ������ �������" border=0 class=img1 src="/imgs/fp_i7.jpg"></td>
-          <td valign=top class=fp_small>������ �������, ��������������� � ������ �������� ���������, ��������� ������������ ���������� ����� �������� � ������ ���������. ���� ������� � ���������� ������.</td>
-        </tr>
-        <tr>
-          <td colspan=2>
-            <a title="������ �������" href="arendaday_results.asp"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����������� ���������� ������ �������</h2></a></div>
-            <a title="�������� � ������" href="arendaday_db.asp"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����� ������� � ���������� ������</h2></a></div>
-          </td>
-        </tr>
-        </table>
-      </td>
-      <td valign=top>
-        <table width="100%" border="0" cellspacing="5" cellpadding="0" bgcolor=#FFFFFF>
-        <tr>
-          <td valign=top width=60><img width=60 height=60 alt="������ ���������" border=0 class=img1 src="/imgs/fp_i8.jpg"></td>
-          <td valign=top class=fp_small>��� ���, ��� ����� ����� ��� ����� �������. �� ���������� ������� ����� �������� ��������� � �������� � �������� ������� ������. ���� ���������.</td>
-        </tr>
-        <tr>
-          <td colspan=2>
-            <a title="������ ���������" href="komm.asp?kommtype_id=3"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����������� �� ������ ���������</h2></a></div>
-            <a title="�������� � ������" href="komm_db.asp"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����� ��������� � ������</h2></a></div>
-          </td>
-        </tr>
-        </table>
-      </td>
-    </tr>
-    <tr>
-      <td valign=top><br><h1>������ ��������� � ��� � �����������</h1></td>
-      <td valign=top><br><h1>������ ��������� ��� ��������� � ����</h1></td>
-    </tr>
-    <tr>
-      <td valign=top>
-        <table width="100%" border="0" cellspacing="5" cellpadding="0" bgcolor=#FFFFFF>
-        <tr>
-          <td valign=top width=60><img width=60 height=60 alt="������ ��������� � ���" border=0 class=img1 src="/imgs/fp_i9.jpg"></td>
-          <td valign=top class=fp_small>���, ���� ���������� ������ �������� ��� ����������� ���� � �����������, ��������� ������������ ���������� ������� ����� ���������� ������������ . ����� ��� ����� ������� � ���� ��� ������. ����.</td>
-        </tr>
-        <tr>
-          <td colspan=2>
-            <a title="������ ��������� ���" href="arenda_cottage.asp"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����������� ������ ���������, ���</h2></a></div>
-            <a title="�������� ���� � ������" href="cottage_db.asp"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����� ���������, ���, ����� � ������</h2></a></div>
-          </td>
-        </tr>
-        </table>
-      </td>
-      <td valign=top>
-        <table width="100%" border="0" cellspacing="5" cellpadding="0" bgcolor=#FFFFFF>
-        <tr>
-          <td valign=top width=60><img width=60 height=60 alt="������ ���������� � ����" border=0 class=img1 src="/imgs/fp_i10.jpg"></td>
-          <td valign=top class=fp_small>������ ����� ��������� ��� ��������, ��� ��� ����. �� ���� ����� �� ������ ����� ����������� �� ������ ������������ ������������ ��� ������������ ������� � ����. ����� ��� ����� ��������, ����, ��� � ������.</td>
-        </tr>
-        <tr>
-          <td colspan=2>
-            <a title="������ ���������� ����" href="komm.asp?kommtype_id=5&kommtype_id=6"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����������� �� ������ ����������, ����</h2></a></div>
-            <a title="��������� � ���� � ������" href="komm_db.asp"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����� ���������� � ���� � ������</h2></a></div>
-          </td>
-        </tr>
-        </table>
-      </td>
-    </tr>
-    <tr>
-      <td valign=top><br><h1>���������� ������ ��������� � �����������</h1></td>
-      <td valign=top><br><h1>������ ��������� ���������� ����������</h1></td>
-    </tr>
-    <tr>
-      <td valign=top>
-        <table width="100%" border="0" cellspacing="5" cellpadding="0" bgcolor=#FFFFFF>
-        <tr>
-          <td valign=top width=60><img width=60 height=60 alt="���������� ������ ���������" border=0 class=img1 src="/imgs/fp_i13.jpg"></td>
-          <td valign=top class=fp_small>�� ������ �������� �������� ��� ��������� � ���������� ����? ���� ��������� ������������ ���������� ����� ������� ���������. ����  ���������.</td>
-        </tr>
-        <tr>
-          <td colspan=2>
-            <a title="������ ���������" href="arenda_cottageday.asp"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����������� ���������� ������ ���������</h2></a></div>
-            <a title="�������� � ������" href="cottageday_db.asp"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����� ��������� � ���������� ������</h2></a></div>
-          </td>
-        </tr>
-        </table>
-      </td>
-      <td valign=top>
-        <table width="100%" border="0" cellspacing="5" cellpadding="0" bgcolor=#FFFFFF>
-        <tr>
-          <td valign=top width=60><img width=60 height=60 alt="������ ��������� ���������� ����������" border=0 class=img1 src="/imgs/fp_i15.jpg"></td>
-          <td valign=top class=fp_small>����� ��������� ���������� ����������. ������� ����������� ����� ��� � ������. ���� �� ������������ ������������ ����������� ���������. ����.</td>
-        </tr>
-        <tr>
-          <td colspan=2>
-            <a title="������ ���������" href="komm.asp?kommtype_id=7"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����������� �� ������ ��������� ���������� ����������</h2></a></div>
-            <a title="��������� � ������" href="komm_db.asp"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����� ��������� ���������� ���������� � ������</h2></a></div>
-          </td>
-        </tr>
-        </table>
-      </td>
-    </tr>
-    <tr>
-      <td colspan=2 valign=top><br><h1 style="color:red">������� ������������ ������������</h1></td>
-    </tr>
-    <tr>
-      <td colspan=2 align=center valign=top>
-        <table width="100%" border="0" cellspacing="5" cellpadding="0" bgcolor=#FFFFFF>
-        <tr>
-          <td valign=top width=60><img width=60 height=60 alt="������� ������������ ������������" border=0 class=img1 src="/imgs/fp_i14.jpg"></td>
-          <td valign=top class=fp_small>���� �� ������ ������ ��������� ��� �������: ����, �������, �����, ������������, �� �� ������ ������������ � ������������� �� ������� ������������ ������������ ��� ������� ���� ������ �� ������� ��������� � ������. ����-������� ������������ �� �������.</td>
-        </tr>
-        <tr>
-          <td colspan=2>
-            <a title="������� ������" href="kommP.asp?kommtype_id=1"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����������� �� ������� ������</h2></a></div>
-            <a title="������� �������" href="kommP.asp?kommtype_id=2"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����������� �� ������� �������</h2></a></div>
-            <a title="������� ���������" href="kommP.asp?kommtype_id=3"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����������� �� ������� ���������</h2></a></div>
-            <a title="������� ����������" href="kommP.asp?kommtype_id=5"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����������� �� ������� ����������</h2></a></div>
-            <a title="������� ����" href="kommP.asp?kommtype_id=6"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����������� �� ������� ����</h2></a></div>
-            <a title="������� �����������" href="kommP.asp?kommtype_id=4"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����������� �� ������� ���������������� ���������</h2></a></div>
-            <a title="������� ���������" href="kommP.asp?kommtype_id=7"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����������� �� ������� ���</h2></a></div>
-          </td>
-        </tr>
-        </table>
-      </td>
-    </tr>
-    </table>
-    <table width="100%" border="0" cellspacing="1" cellpadding="0" bgcolor=#FFFFFF>
-    <tr>
-      <td width=12 valign=top><img src="/imgs/fp_li2.gif" width=8 height=15></td>
-      <td>
-        <h1>������� ������������. ������:</h1>
-        <br>
-
-    <li><a href="/news.asp?id=69&curr=1"><h2>��������� �� ������ - ������� �������� ������������</h2></a>
-
-    <li><a href="/news.asp?id=68&curr=1"><h2>������ ��������!</h2></a>
-
-    <li><a href="/news.asp?id=67&curr=1"><h2>��� ������ ����������, ���� ����� ����������� �������� �������� �����?</h2></a>
-
-    <li><a href="/news.asp?id=66&curr=1"><h2>5 �������� ����� ������� �������� � ������</h2></a>
-
-    <li><a href="/news.asp?id=65&curr=1"><h2>���� ������� � ����������: ���� �������� � ���?</h2></a>
-
-    <li><a title="������� ������������" href="news.asp"><h2><b>������ ������� ������������...</b></h2></a>
-    <br>
-      </td>
-    </tr>
-    </table>
-  </td>
-  <td width=5>&nbsp;</td>
-  <td valign=top width=300>
-    <h1><img src="/imgs/fp_li2.gif" width=8 height=15> ����������� <font color=red>��� ��������</font>:</h1>
-    <br>
-
-
-<table cellspacing=0 cellpadding=0 border=0 width=100%>
-<tr>
-  <td width=1 bgcolor=#CFCFCF><img src='imgs/blank.gif' width=1 height=1></td>
-  <td valign=top width=100%  bgcolor=white>
-    <table cellspacing=1 cellpadding=3 border=0 width=100% style='margin-top:5px;'>
-    <tr>
-      <td width=1 valign=middle><img src='imgs/knop1.gif'></td>
-      <td class=text bgcolor=white valign=middle>
-          <a href="/arendaview_komm.asp?anketa_id=148110" class=menubig><b>������ ������</b></a>
-      </td>
-    </tr>
-    </table>
-    <table width=100% cellspacing=0 cellpadding=3 border=0>
-    <tr>
-      <td width=128 valign=top align=right nowrap>
-        <a href="/arendaview_komm.asp?anketa_id=148110"><img style="margin-right:11px; margin-left:5px;" width=9 height=100 src="/imgs/bez.gif" border=0><img class=img1 width=100 height=100 src="/imgs/Photos5/s_k_67491.jpg" border=0 alt="������ ������"></a>
-      </td>
-      <td valign=top nowrap style='padding-left:6px;'>
-        <a href='/arendaview_komm.asp?anketa_id=148110' style="color:#000000; text-decoration:none; font-size:11px;"><p class='viprow0'><b>���������� �.</b></p><p class='viprow'>7 �� �� ����</p><p class='viprow'>2100 - 2500 ��.�</b></p><p class='viprow'><b style='font-size:11px;'>130 $/��.�./���</b></p></a>
-      </td>
-    </tr>
-    </table>
-    &nbsp;
-  </td>
-</tr>
-<tr><td colspan=2 bgcolor=#CFCFCF><img src='imgs/blank.gif' width=1 height=1></td></tr>
-<tr><td colspan=2><img src='imgs/shadow1.gif'></td></tr>
-</table>
-    <br>
-
-
-<table cellspacing=0 cellpadding=0 border=0 width=300>
-<tr>
-  <td width=1 bgcolor=#CFCFCF><img src='imgs/blank.gif' width=1 height=1></td>
-  <td valign=top width=100%  bgcolor=white>
-    <table cellspacing=1 cellpadding=3 border=0 width=100% style='margin-top:5px;'>
-    <tr>
-      <td valign=top width=1 valign=middle><img src='imgs/knop1.gif'></td>
-      <td class=text bgcolor=white valign=middle>
-          <a href="/arendaview_kommp.asp?anketa_id=167792" class=menubig><b>������� �����</b></a>
-      </td>
-    </tr>
-    </table>
-    <table width=100% cellspacing=0 cellpadding=3 border=0>
-    <tr>
-      <td width=128 valign=top align=right nowrap>
-        <a href="/arendaview_kommp.asp?anketa_id=167792"><img style="margin-right:11px; margin-left:5px;" width=9 height=100 src="/imgs/bez.gif" border=0><img class=img1 width=100 height=100 src="/imgs/Photos5/s_kp_96026.jpg" border=0 alt="������� �����"></a>
-      </td>
-      <td valign=top nowrap style='padding-left:6px;'>
-        <a href='/arendaview_kommp.asp?anketa_id=167792' style="color:#000000; text-decoration:none; font-size:11px;"><p class='viprow0'><b>�. ���������� �������</b></p><p class='viprow'>918 ��.�</b></p><p class='viprow'><b style='font-size:11px;'>7&nbsp;344&nbsp;000 $</b></p></a>
-      </td>
-    </tr>
-    </table>
-    &nbsp;
-  </td>
-</tr>
-<tr><td colspan=2 bgcolor=#CFCFCF><img src='imgs/blank.gif' width=1 height=1></td></tr>
-<tr><td colspan=2><img src='imgs/shadow1.gif'></td></tr>
-</table>
-    <br>
-
-<table cellspacing=0 cellpadding=0 border=0 width=100%>
-<tr>
-  <td width=1 bgcolor=#CFCFCF><img src='imgs/blank.gif' width=1 height=1></td>
-  <td valign=top width=100%  bgcolor=white>
-    <table cellspacing=1 cellpadding=3 border=0 width=100% style='margin-top:5px;'>
-    <tr>
-      <td valign=top width=1 valign=middle><img src='imgs/knop1.gif'></td>
-      <td class=text bgcolor=white valign=middle>
-          <a href="/arendaview_all.asp?anketa_id=160328" class=menubig><b>������ 2-����. ��������</b></a>
-      </td>
-    </tr>
-    </table>
-    <table width=100% cellspacing=0 cellpadding=3 border=0>
-    <tr>
-      <td width=128 valign=top align=right nowrap>
-            <a href="/arendaview_all.asp?anketa_id=160328"><img style="margin-right:11px; margin-left:5px;" width=9 height=100 src="/imgs/bez.gif" border=0><img class=img1 width=100 height=100 src="/imgs/Photos1/s_ae_45253.jpg" border=0 alt="������ 2-����. ��������"></a>
-      </td>
-      <td valign=top nowrap style='padding-left:6px;'>
-        <a href='/arendaview_all.asp?anketa_id=160328' style="color:#000000; text-decoration:none; font-size:11px;"><p class='viprow0'><b>�. ��������</b></p><p class='viprow'>10 ����� ������ �� �����</p><p class='viprow'>��. ��������, ��� 25</p><p class='viprow'>����� ������� 60 ��.�</b></p><p class='viprow'><b style='font-size:11px;'>100 000 $/���</b></p></a>
-      </td>
-    </tr>
-    </table>
-    &nbsp;
-  </td>
-</tr>
-<tr><td colspan=2 bgcolor=#CFCFCF><img src='imgs/blank.gif' width=1 height=1></td></tr>
-<tr><td colspan=2><img src='imgs/shadow1.gif'></td></tr>
-</table>
-<br>
-
-
-<table cellspacing=0 cellpadding=0 border=0 width=100%>
-<tr>
-  <td width=1 bgcolor=#CFCFCF><img src='imgs/blank.gif' width=1 height=1></td>
-  <td valign=top width=100%  bgcolor=white>
-    <table cellspacing=1 cellpadding=3 border=0 width=100% style='margin-top:5px;'>
-    <tr>
-      <td valign=top width=1 valign=middle><img src='imgs/knop1.gif'></td>
-      <td class=text bgcolor=white valign=middle>
-          <a href="/arendaview_cottage.asp?anketa_id=1761" class=menubig><b>������ ��������</b></a>
-      </td>
-    </tr>
-    </table>
-    <table width=100% cellspacing=0 cellpadding=3 border=0>
-    <tr>
-      <td width=128 valign=top align=right nowrap>
-        <a href="/arendaview_cottage.asp?anketa_id=1761"><img style="margin-right:11px; margin-left:5px;" width=9 height=100 src="/imgs/bez.gif" border=0><img class=img1 width=100 height=100 src="/imgs/Photos61/vipcot1761.jpg" border=0 alt="������ ��������"></a>
-      </td>
-      <td valign=top nowrap style='padding-left:6px;'>
-        <a href='/arendaview_cottage.asp?anketa_id=1761' style="color:#000000; text-decoration:none; font-size:11px;"><p class='viprow0'><b>������������ �.</b></p><p class='viprow'>15 �� �� ����</p><p class='viprow'>520 ��.�</b></p><p class='viprow'><b style='font-size:11px;'>465 000 $/���</b></p></a>
-      </td>
-    </tr>
-    </table>
-    &nbsp;
-  </td>
-</tr>
-<tr><td colspan=2 bgcolor=#CFCFCF><img src='imgs/blank.gif' width=1 height=1></td></tr>
-<tr><td colspan=2><img src='imgs/shadow1.gif'></td></tr>
-</table>
-<br>
-
-    <div class=ns><a title="������ ������������" href="kommvip.asp"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ��� ����������� �� ������ ������������ ������������ ��� ��������</h2></a></div>
-    <div class=ns><a title="������ ������������ " href="kommvipp.asp"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ��� ����������� �� ������� ������������ ������������ ��� ��������</h2></a></div>
-    <div class=ns><a title="������ �������" href="arendavip.asp"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ��� ����������� �� ������ ������� ��� ��������</h2></a></div>
-    <div class=ns><a title="������ ������� " href="arendacotvip.asp"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ��� ����������� �� ������ ���������, ���, ����� ��� ��������</h2></a></div>
-    <br>
-    <h1><img src="/imgs/fp_li2.gif" width=8 height=15> �������� ������:</h1>
-    <p style="font-family:Times New Roman; font-size:12px; margin-top:10px; margin-bottom:0px;">
-    <b>����������</b> ������������, �������� ������� ��� ����� � ������, �� ������� ������ ������� ��� ����� ��������� �� �������� ��������. �� ������ �������� ������ ��� ��������� � ���� �� ��������.
-<br><i>������������ �� �������� ������ � ������� ������������ ���������</i>.
-</p>
-    <br>
-    <div class=ns><a target=_blank title="����� �������� " href="form_1.asp"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����� ��������</h2></a></div>
-    <div class=ns><a target=_blank title="����� ������� " href="form_1.asp"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����� �������</h2></a></div>
-    <div class=ns><a target=_blank title="����� ������� ��������" href="form_1.asp"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����� ������� ��������</h2></a></div>
-    <div class=ns><a target=_blank title="����� �������� ���������" href="form_1day.asp"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����� �������� ���������</h2></a></div>
-    <div class=ns><a target=_blank title="����� ��������, ����, ����" href="form_5s.asp"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����� �������, ���, ����</h2></a></div>
-    <div class=ns><a target=_blank title="����� �����" href="form_1off.asp?kommtypeid=1"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����� ����</h2></a></div>
-    <div class=ns><a target=_blank title="����� ������ � ������������" href="form_1off.asp?kommtypeid=2&kommtypeid=4"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����� �����, ������������</h2></a></div>
-    <div class=ns nowrap><a target=_blank title="����� ��������" href="form_1off.asp?kommtypeid=3&kommtypeid=5&kommtypeid=6&kommtypeid=7"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����� �������, ��������, ����</h2></a></div>
-    <div class=ns><a target=_blank title="������� ����" href="form_6s.asp"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ������� �������, ����, ���</h2></a></div>
-    <div class=ns><a target=_blank title="������� �����" href="form_1off.asp?kommtypeid=1&own_type=1"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ������� ����</h2></a></div>
-    <div class=ns><a target=_blank title="������� ������" href="form_1off.asp?kommtypeid=2&kommtypeid=4&own_type=1"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ������� �����, ������������</h2></a></div>
-    <div class=ns><a target=_blank title="������� ���������" href="form_1off.asp?kommtypeid=1&kommtypeid=2&kommtypeid=3&kommtypeid=4&kommtypeid=5&kommtypeid=6&kommtypeid=7&own_type=1"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ������� ������� ���������</h2></a></div>
-    <br>
-    <p style="font-family:Times New Roman; font-size:12px; margin-top:10px; margin-bottom:0px;">
-    <b>��������.</b> ���� �� ������ ����� � ������ ��������, �������, ����, �����, �������... ���� ���� ��� ���������� ������� ������������, �������� ������ � �� ������� ��� ����� ��� ������ ��������� �������, ������� � � ����������� �����. �� ������ ������������ � ������������� �� ������ � ������� ������������ �� ����� �����. ���� ����������� ���������. ��� ������������ ���������
 ��� �������������� ��������� ������ �������������.
-<br><i>��������! �� �� ����� ����������, �� ��������� �������������� �����, �������� ��������� � ������� ���������, ������ ������������ �� ����� ������.</i>
-    </p>
-    <br>
-    <div class=ns><a target=_blank title="����� �������� " href="form_3.asp"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����� ��������</h2></a></div>
-    <div class=ns><a target=_blank title="����� ������� " href="form_3.asp"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����� �������</h2></a></div>
-    <div class=ns><a target=_blank title="����� ������� �������� " href="form_3.asp"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����� ������� ��������</h2></a></div>
-    <div class=ns><a target=_blank title="����� �������� ���������" href="form_3day.asp"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����� �������� ���������</h2></a></div>
-    <div class=ns><a target=_blank title="����� ����" href="form_5.asp"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����� �������, ���, ����</h2></a></div>
-    <div class=ns><a target=_blank title="����� ���� " href="form_3off.asp?kommtypeid=1"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����� ����</h2></a></div>
-    <div class=ns><a target=_blank title="����� ����� " href="form_3off.asp?kommtypeid=2&kommtypeid=4"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����� �����, ������������</h2></a></div>
-    <div class=ns><a target=_blank title="����� ������� " href="form_3off.asp?kommtypeid=3&kommtypeid=5&kommtypeid=6&kommtypeid=7"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����� �������, ��������, ����</h2></a></div>
-    <div class=ns><a target=_blank title="������ �������, ���� " href="form_6.asp"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ������ �������, ����, ���</h2></a></div>
-    <div class=ns><a target=_blank title="������ ���� " href="form_3off.asp?kommtypeid=1&own_type=1"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ������ ����</h2></a></div>
-    <div class=ns><a target=_blank title="������ ����� " href="form_3off.asp?kommtypeid=2&kommtypeid=4&own_type=1"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ������ �����, ������������</h2></a></div>
-    <div class=ns><a target=_blank title="������ ��������� " href="form_3off.asp?kommtypeid=1&kommtypeid=2&kommtypeid=3&kommtypeid=4&kommtypeid=5&kommtypeid=6&kommtypeid=7&own_type=1"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ������ ������� ���������</h2></a></div>
-    <br>
-    <h1><img src="/imgs/fp_li2.gif" width=8 height=15> ���������� ����� ���������� �� ������ ������������:</h1>
-    <br>
-    <div class=ns><a title="������ �������" href="freetables.asp"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ������ ������� � ������</h2></a></div>
-    <div class=ns><a title="������ ���������" href="freetables_komm.asp"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ������ ������� ���������</h2></a></div>
-    <div class=ns><a title="������ ��������� ���" href="freetables_cott.asp"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ������ ���������, ���, �����</h2></a></div>
-    <br>
-    <h1><img src="/imgs/fp_li2.gif" width=8 height=15> ��������:</h1>
-    <br>
-    <div class=ns><a href="vakansii.asp"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����� �� ������ ������������ ������������</h2></a></div>
-    <div class=ns><a href="vakansii.asp"><h2><img src="/imgs/fp_li.gif" width=4 height=9 border=0> ����� �� ������ ������� � ������</h2></a></div>
-    <br>
-  </td>
-</tr>
-</table>
-<table width="100%" border="0" cellspacing="5" cellpadding="0" bgcolor=#FFFFFF>
-<tr>
-  <td bgcolor="#FFFFFF" colspan=2 valign="top" style="padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 7px">
-    <br>
-<div align=center>
-<a style="font-size:10px;" href="/default.asp">�������</a> ::
-<a style="font-size:10px;" href="/arenda_results.asp">������ �����</a> ::  
-<a style="font-size:10px;" href="/prodaga.asp">�������/������� �����</a> ::  
-<a style="font-size:10px;" href="/komm.asp">������������ ������������</a> ::  
-<a style="font-size:10px;" href="/nedvvrossii.asp">������������ � ������</a> ::  
-<a style="font-size:10px;" href="/docs.asp">���������� ����������</a> ::  
-<a style="font-size:10px;" href="/zemuchastki.asp">��������� �������</a> ::  
-<a style="font-size:10px;" href="/vakansii.asp">��������</a> ::  
-<a style="font-size:10px;" href="/questions.asp">������� ��������</a> ::
-<a style="font-size:10px;" href="/info.asp">���������� ����������</a> ::  
-<a style="font-size:10px;" href="/freetables.asp">����� ���������� �� ������������</a> ::  
-<a style="font-size:10px;" href="/links.asp">������� ������</a> ::  
-<a style="font-size:10px;" href="/kontakty.asp">��������</a>
-</div> 
-
-  </td>
-</tr>
-</table>
-</td>
-              </tr>
-            </table>
-          </td>
-        </tr>
-      </table>
-    </td>
-  </tr>
-    <tr>
-    <td height="20" style="padding-left:13px; padding-right:13px;">
-<table width="100%" border="0" cellspacing="0" cellpadding="0">
-  <tr>
-    <td class=copy>
-    &copy; 2001 � 2009 <a title="�������� ������������" href="/">��������� ������������</a> "���������-������������", "������� ����" -  ������ �������, ������ ������, ������ ���������.<br>
-    ���.: +7 495 737-7019&nbsp;&nbsp;&nbsp;����: +7 495 231-7755&nbsp;&nbsp;&nbsp;E-mail: <a href="mailto:info1@makler.su" style="color:black">info1@makler.su</a><br>
-</td>
-  </tr>
-</table>
-    </td>
-  </tr>
-</table><script type="text/javascript">
-var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
-document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
-</script>
-<script type="text/javascript">
-try {
-var pageTracker = _gat._getTracker("UA-8971199-1");
-pageTracker._trackPageview();
-} catch(err) {}</script></body>
-</html>
-
-
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/boilerplate-whitespace.html b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/boilerplate-whitespace.html
deleted file mode 100644
index bd38b895a..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/boilerplate-whitespace.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
-        <title>Title</title>
-</head>
-<body>
-
-<p>The following unordered list must contain whitespace between both items:
-<ul>
- <li>item_a</li><li>item_b</li>
-</ul>
-Whitespace should not be added around elements like anchors, em or string etc. This
-breaks CJK: 有什<strong>么需</strong>要我帮你的?
-</p>
-
-<p>
-Here's another paragraph of text.
-This is the end of the text.
-</p>
-
-<p><a href="Footer.html">footer</a></p>
-
-</body>
-</html>
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/boilerplate.html b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/boilerplate.html
deleted file mode 100644
index 854ebcde1..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/boilerplate.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-	<meta http-equiv="content-type" content="text/html; charset=utf-8" />
-	<title>Title</title>
-</head>
-<body>
-
-<table>
-	<tr>
-		<td>
-			<table>
-				<tr>
-					<td ><a href="Main.php">boilerplate</a></td>
-					<td ><a href="Main.php">text</a></td>
-				</tr>
-			</table>
-		</td>
-	</tr>
-</table>
-
-<p>This is the real meat of the page, 
-and represents the text we want. 
-It has lots of juicy content.
-
-We assume that it won't get filtered out.
-And that all of the lines will be in the
-output.
-</p>
-
-<p>
-Here's another paragraph of text.
-This is the end of the text.
-</p>
-
-<p><a href="Footer.html">footer</a></p>
-
-</body>
-</html>
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testBoilerplateMissingSpace.html b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testBoilerplateMissingSpace.html
deleted file mode 100644
index 06ea45832..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testBoilerplateMissingSpace.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<!DOCTYPE html>
-<html>
-	<head>
-		<meta charset="UTF-8"/>
-		<title>Blobfish - Wikipedia</title>
-	</head>
-	<body>
-		<p>The <b>blobfish</b> (<i>Psychrolutes marcidus</i>) is a <a href="/wiki/Deep_sea_fish" title="Deep sea fish">deep sea fish</a> of the <a href="/wiki/Family_(biology)" title="Family (biology)">family</a> <a href="/wiki/Psychrolutidae" title="Psychrolutidae">Psychrolutidae</a>. It inhabits the deep waters off the coasts of mainland <a href="/wiki/Australia" title="Australia">Australia</a> and <a href="/wiki/Tasmania" title="Tasmania">Tasmania</a>, as well as the waters of <a href="/wik [...]
-		<p>Blobfish are typically shorter than 30&#160;cm (12&#160;in). They live at depths between 600 and 1,200&#160;m (2,000 and 3,900&#160;ft) where the pressure is 60 to 120 times as great as at <a href="/wiki/Sea_level" title="Sea level">sea level</a>, which would likely make <a href="/wiki/Gas_bladder" class="mw-redirect" title="Gas bladder">gas bladders</a> inefficient for maintaining <a href="/wiki/Buoyancy" title="Buoyancy">buoyancy</a>.<sup id="cite_ref-fishbase_1-1" class="referenc [...]
-		<p>Blobfish are often caught as <a href="/wiki/Bycatch" title="Bycatch">bycatch</a> in <a href="/wiki/Bottom_trawling" title="Bottom trawling">bottom trawling</a> nets.</p>
-		<p>The popular impression of the blobfish as bulbous and gelatinous is partially an artifact of the decompression damage done to specimens when they are brought to the surface from the extreme depths in which they live.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3">[3]</a></sup> In their natural environment, blobfish appear more typical of their <a href="/wiki/Superclass_(biology)" class="mw-redirect" title="Superclass (biology)">superclass</a> <a href="/wiki/Osteichthye [...]
-	</body>
-</html>
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTML.html b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTML.html
deleted file mode 100644
index 5bbd4d843..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTML.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements.  See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You 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.
--->
-<html>
-	<head>
-        <title>Title : Test Indexation Html</title>
-        <meta name="Author" content="Tika Developers">
-        <meta name="ICBM" content="51.2312, -5.1987">
-        <meta http-equiv="refresh" content="5">
-    </head>
-	<body>
-		<h1><a name="test-anchor"></a>Test Indexation Html</h1>
-		<p><a href="http://www.apache.org/">Indexation</a> du fichier</p>
-	</body>
-</html>
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTMLBadScript.html b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTMLBadScript.html
deleted file mode 100644
index 2c61f4f5f..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTMLBadScript.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-    <script lang="javascript">cool script</script language>
-</head>
-<body>
-<p>This is a test.</p>
-</body>
-</html>
\ No newline at end of file
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTMLGoodScript.html b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTMLGoodScript.html
deleted file mode 100644
index f37eb98a1..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTMLGoodScript.html
+++ /dev/null
@@ -1,9 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-    <script lang="javascript">cool script</script>
-</head>
-<body>
-<p>This is a test.</p>
-</body>
-</html>
\ No newline at end of file
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTMLNoisyMetaEncoding_1.html b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTMLNoisyMetaEncoding_1.html
deleted file mode 100644
index f28dbbed4..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTMLNoisyMetaEncoding_1.html
+++ /dev/null
@@ -1,77 +0,0 @@
-<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=iso-8859-6">
-<meta name=Generator content="Microsoft Word 12 (filtered medium)">
-<style>
-<!--
- /* Font Definitions */
- @font-face
-	{font-family:"Cambria Math";
-	panose-1:0 0 0 0 0 0 0 0 0 0;}
-@font-face
-	{font-family:Calibri;
-	panose-1:2 15 5 2 2 2 4 3 2 4;}
-@font-face
-	{font-family:"Arabic Transparent";
-	panose-1:2 1 0 0 0 0 0 0 0 0;}
- /* Style Definitions */
- p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{margin-top:0in;
-	margin-right:0in;
-	margin-bottom:10.0pt;
-	margin-left:0in;
-	line-height:115%;
-	font-size:11.0pt;
-	font-family:"Calibri","sans-serif";}
-a:link, span.MsoHyperlink
-	{mso-style-priority:99;
-	color:blue;
-	text-decoration:underline;}
-a:visited, span.MsoHyperlinkFollowed
-	{mso-style-priority:99;
-	color:purple;
-	text-decoration:underline;}
-span.EmailStyle17
-	{mso-style-type:personal-compose;
-	font-family:"Calibri","sans-serif";
-	color:windowtext;}
-.MsoChpDefault
-	{mso-style-type:export-only;}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.0in 1.0in 1.0in;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-<!--[if gte mso 9]><xml>
- <o:shapedefaults v:ext="edit" spidmax="1026" />
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <o:shapelayout v:ext="edit">
-  <o:idmap v:ext="edit" data="1" />
- </o:shapelayout></xml><![endif]-->
-</head>
-
-<body lang=EN-US link=blue vlink=purple>
-
-<div class=Section1>
-
-<p class=MsoNormal dir=RTL style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
-auto;text-align:right;line-height:normal;direction:rtl;unicode-bidi:embed'><span
-dir=LTR style='font-size:12.0pt;color:red'><o:p>&nbsp;</o:p></span></p>
-
-<p class=MsoNormal dir=RTL style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
-auto;text-align:right;line-height:normal;direction:rtl;unicode-bidi:embed'><span
-lang=AR-SA style='font-size:12.0pt;font-family:"Arabic Transparent"'>�����
-������� �������� ����� �� &quot;���� ���� ������ ��� ������� ������� ����
-�������&quot;� ���� &quot;������ �� ��������� ��� �������� ������� ������ ��
-������ ������ ������ ������ �� ���&quot;.<o:p></o:p></span></p>
-
-<p class=MsoNormal><o:p>&nbsp;</o:p></p>
-
-</div>
-
-</body>
-
-</html>
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTMLNoisyMetaEncoding_2.html b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTMLNoisyMetaEncoding_2.html
deleted file mode 100644
index f28dbbed4..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTMLNoisyMetaEncoding_2.html
+++ /dev/null
@@ -1,77 +0,0 @@
-<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=iso-8859-6">
-<meta name=Generator content="Microsoft Word 12 (filtered medium)">
-<style>
-<!--
- /* Font Definitions */
- @font-face
-	{font-family:"Cambria Math";
-	panose-1:0 0 0 0 0 0 0 0 0 0;}
-@font-face
-	{font-family:Calibri;
-	panose-1:2 15 5 2 2 2 4 3 2 4;}
-@font-face
-	{font-family:"Arabic Transparent";
-	panose-1:2 1 0 0 0 0 0 0 0 0;}
- /* Style Definitions */
- p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{margin-top:0in;
-	margin-right:0in;
-	margin-bottom:10.0pt;
-	margin-left:0in;
-	line-height:115%;
-	font-size:11.0pt;
-	font-family:"Calibri","sans-serif";}
-a:link, span.MsoHyperlink
-	{mso-style-priority:99;
-	color:blue;
-	text-decoration:underline;}
-a:visited, span.MsoHyperlinkFollowed
-	{mso-style-priority:99;
-	color:purple;
-	text-decoration:underline;}
-span.EmailStyle17
-	{mso-style-type:personal-compose;
-	font-family:"Calibri","sans-serif";
-	color:windowtext;}
-.MsoChpDefault
-	{mso-style-type:export-only;}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.0in 1.0in 1.0in;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-<!--[if gte mso 9]><xml>
- <o:shapedefaults v:ext="edit" spidmax="1026" />
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <o:shapelayout v:ext="edit">
-  <o:idmap v:ext="edit" data="1" />
- </o:shapelayout></xml><![endif]-->
-</head>
-
-<body lang=EN-US link=blue vlink=purple>
-
-<div class=Section1>
-
-<p class=MsoNormal dir=RTL style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
-auto;text-align:right;line-height:normal;direction:rtl;unicode-bidi:embed'><span
-dir=LTR style='font-size:12.0pt;color:red'><o:p>&nbsp;</o:p></span></p>
-
-<p class=MsoNormal dir=RTL style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
-auto;text-align:right;line-height:normal;direction:rtl;unicode-bidi:embed'><span
-lang=AR-SA style='font-size:12.0pt;font-family:"Arabic Transparent"'>�����
-������� �������� ����� �� &quot;���� ���� ������ ��� ������� ������� ����
-�������&quot;� ���� &quot;������ �� ��������� ��� �������� ������� ������ ��
-������ ������ ������ ������ �� ���&quot;.<o:p></o:p></span></p>
-
-<p class=MsoNormal><o:p>&nbsp;</o:p></p>
-
-</div>
-
-</body>
-
-</html>
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTMLNoisyMetaEncoding_3.html b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTMLNoisyMetaEncoding_3.html
deleted file mode 100644
index f5c592788..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTMLNoisyMetaEncoding_3.html
+++ /dev/null
@@ -1,77 +0,0 @@
-<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta content=text/html; charset = iso-8859-6 http-equiv=Content-Type>
-<meta name=Generator content="Microsoft Word 12 (filtered medium)">
-<style>
-<!--
- /* Font Definitions */
- @font-face
-	{font-family:"Cambria Math";
-	panose-1:0 0 0 0 0 0 0 0 0 0;}
-@font-face
-	{font-family:Calibri;
-	panose-1:2 15 5 2 2 2 4 3 2 4;}
-@font-face
-	{font-family:"Arabic Transparent";
-	panose-1:2 1 0 0 0 0 0 0 0 0;}
- /* Style Definitions */
- p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{margin-top:0in;
-	margin-right:0in;
-	margin-bottom:10.0pt;
-	margin-left:0in;
-	line-height:115%;
-	font-size:11.0pt;
-	font-family:"Calibri","sans-serif";}
-a:link, span.MsoHyperlink
-	{mso-style-priority:99;
-	color:blue;
-	text-decoration:underline;}
-a:visited, span.MsoHyperlinkFollowed
-	{mso-style-priority:99;
-	color:purple;
-	text-decoration:underline;}
-span.EmailStyle17
-	{mso-style-type:personal-compose;
-	font-family:"Calibri","sans-serif";
-	color:windowtext;}
-.MsoChpDefault
-	{mso-style-type:export-only;}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.0in 1.0in 1.0in;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-<!--[if gte mso 9]><xml>
- <o:shapedefaults v:ext="edit" spidmax="1026" />
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <o:shapelayout v:ext="edit">
-  <o:idmap v:ext="edit" data="1" />
- </o:shapelayout></xml><![endif]-->
-</head>
-
-<body lang=EN-US link=blue vlink=purple>
-
-<div class=Section1>
-
-<p class=MsoNormal dir=RTL style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
-auto;text-align:right;line-height:normal;direction:rtl;unicode-bidi:embed'><span
-dir=LTR style='font-size:12.0pt;color:red'><o:p>&nbsp;</o:p></span></p>
-
-<p class=MsoNormal dir=RTL style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
-auto;text-align:right;line-height:normal;direction:rtl;unicode-bidi:embed'><span
-lang=AR-SA style='font-size:12.0pt;font-family:"Arabic Transparent"'>�����
-������� �������� ����� �� &quot;���� ���� ������ ��� ������� ������� ����
-�������&quot;� ���� &quot;������ �� ��������� ��� �������� ������� ������ ��
-������ ������ ������ ������ �� ���&quot;.<o:p></o:p></span></p>
-
-<p class=MsoNormal><o:p>&nbsp;</o:p></p>
-
-</div>
-
-</body>
-
-</html>
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTMLNoisyMetaEncoding_4.html b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTMLNoisyMetaEncoding_4.html
deleted file mode 100644
index f5c592788..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTMLNoisyMetaEncoding_4.html
+++ /dev/null
@@ -1,77 +0,0 @@
-<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta content=text/html; charset = iso-8859-6 http-equiv=Content-Type>
-<meta name=Generator content="Microsoft Word 12 (filtered medium)">
-<style>
-<!--
- /* Font Definitions */
- @font-face
-	{font-family:"Cambria Math";
-	panose-1:0 0 0 0 0 0 0 0 0 0;}
-@font-face
-	{font-family:Calibri;
-	panose-1:2 15 5 2 2 2 4 3 2 4;}
-@font-face
-	{font-family:"Arabic Transparent";
-	panose-1:2 1 0 0 0 0 0 0 0 0;}
- /* Style Definitions */
- p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{margin-top:0in;
-	margin-right:0in;
-	margin-bottom:10.0pt;
-	margin-left:0in;
-	line-height:115%;
-	font-size:11.0pt;
-	font-family:"Calibri","sans-serif";}
-a:link, span.MsoHyperlink
-	{mso-style-priority:99;
-	color:blue;
-	text-decoration:underline;}
-a:visited, span.MsoHyperlinkFollowed
-	{mso-style-priority:99;
-	color:purple;
-	text-decoration:underline;}
-span.EmailStyle17
-	{mso-style-type:personal-compose;
-	font-family:"Calibri","sans-serif";
-	color:windowtext;}
-.MsoChpDefault
-	{mso-style-type:export-only;}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.0in 1.0in 1.0in;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-<!--[if gte mso 9]><xml>
- <o:shapedefaults v:ext="edit" spidmax="1026" />
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <o:shapelayout v:ext="edit">
-  <o:idmap v:ext="edit" data="1" />
- </o:shapelayout></xml><![endif]-->
-</head>
-
-<body lang=EN-US link=blue vlink=purple>
-
-<div class=Section1>
-
-<p class=MsoNormal dir=RTL style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
-auto;text-align:right;line-height:normal;direction:rtl;unicode-bidi:embed'><span
-dir=LTR style='font-size:12.0pt;color:red'><o:p>&nbsp;</o:p></span></p>
-
-<p class=MsoNormal dir=RTL style='mso-margin-top-alt:auto;mso-margin-bottom-alt:
-auto;text-align:right;line-height:normal;direction:rtl;unicode-bidi:embed'><span
-lang=AR-SA style='font-size:12.0pt;font-family:"Arabic Transparent"'>�����
-������� �������� ����� �� &quot;���� ���� ������ ��� ������� ������� ����
-�������&quot;� ���� &quot;������ �� ��������� ��� �������� ������� ������ ��
-������ ������ ������ ������ �� ���&quot;.<o:p></o:p></span></p>
-
-<p class=MsoNormal><o:p>&nbsp;</o:p></p>
-
-</div>
-
-</body>
-
-</html>
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTML_charset_utf16le.html b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTML_charset_utf16le.html
deleted file mode 100644
index 26cb535d5..000000000
Binary files a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTML_charset_utf16le.html and /dev/null differ
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTML_charset_utf8.html b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTML_charset_utf8.html
deleted file mode 100644
index 1f61f02c1..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTML_charset_utf8.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<html>
-  <head>
-    <title>Title</title>
-    <meta http-equiv="Content-Type" content="text/html; charset=unicode">
-    <style></style>
-  </head>
-  <body>This is a sample text</body>
-</html>
\ No newline at end of file
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTML_embedded_data_uri_js.html b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTML_embedded_data_uri_js.html
deleted file mode 100644
index 30d8c0984..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTML_embedded_data_uri_js.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="UTF-8">
-    <title>Title</title>
-    <script src="data:text/javascript;base64,YWxlcnQoICdIZWxsbywgd29ybGQhJyApOw==" type="text/javascript"></script>
-</head>
-<body>
-some content
-</body>
-</html>
\ No newline at end of file
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTML_embedded_img.html b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTML_embedded_img.html
deleted file mode 100644
index dd3fc6208..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTML_embedded_img.html
+++ /dev/null
@@ -1,352 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="UTF-8">
-    <title>Title</title>
-</head>
-<body>
-some content
-<img alt="my_image" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEA8ADwAAD/7QCIUGhvdG9zaG9wIDMuMAA4QklNBAQAAAAA
-AGscAVoAAxslRxwBAAACAAQcAgAAAgACHAIZAAxjYW5vbi01NS0yNTAcAhkADG1v
-c2Nvdy1iaXJkcxwCGQAGc2VyYm9yHAJ0ACMoYykg0JzQsNC60YHQuNC8INCS0LDQ
-u9GP0L3RgdC60LjQuQD/4QLwRXhpZgAASUkqAAgAAAAKAA8BAgAGAAAAhgAAABAB
-AgAOAAAAjAAAABoBBQABAAAAmgAAABsBBQABAAAAogAAACgBAwABAAAAAgAAADEB
-AgAeAAAAqgAAADIBAgAUAAAAyAAAABMCAwABAAAAAQAAAJiCAgAVAAAA3AAAAGmH
-BAABAAAA8gAAAAAAAABDYW5vbgBDYW5vbiBFT1MgNDBEAPAAAAABAAAA8AAAAAEA
-AABBZG9iZSBQaG90b3Nob3AgQ1MzIE1hY2ludG9zaAAyMDA5OjEwOjAyIDIzOjAy
-OjQ5AChjKSA/Pz8/Pz8gPz8/Pz8/Pz8/AAAgAJqCBQABAAAAeAIAAJ2CBQABAAAA
-gAIAACKIAwABAAAABAAAACeIAwABAAAAkAEAAACQBwAEAAAAMDIyMQOQAgAUAAAA
-iAIAAASQAgAUAAAAnAIAAAGRBwAEAAAAAQIDAAGSCgABAAAAsAIAAAKSBQABAAAA
-uAIAAASSCgABAAAAwAIAAAWSBQABAAAAyAIAAAeSAwABAAAABQAAAAmSAwABAAAA
-EAAAAAqSBQABAAAA0AIAABGSBAABAAAAAAAAAJGSAgADAAAANDkAAJKSAgADAAAA
-NDkAAACgBwAEAAAAMDEwMAGgAwABAAAA//8AAAKgAwABAAAAMA8AAAOgAwABAAAA
-IAoAAA6iBQABAAAA2AIAAA+iBQABAAAA4AIAABCiAwABAAAAAgAAAAGkAwABAAAA
-AAAAAAKkAwABAAAAAAAAAAOkAwABAAAAAQAAAAakAwABAAAAAAAAAAikAwABAAAA
-AAAAAAmkAwABAAAAAAAAAAqkAwABAAAAAAAAAAAAAAABAAAAQAYAABwAAAAFAAAA
-MjAwOTowODoxMSAwOTowOTo0NQAyMDA5OjA4OjExIDA5OjA5OjQ1AD1TAADSBwAA
-OZ8AAAggAAAAAAAAAQAAAJVHAABBDgAAwgAAAAEAAACg8QQASQAAAHf9CgCiAAAA
-/+0AiFBob3Rvc2hvcCAzLjAAOEJJTQQEAAAAAABrHAFaAAMbJUccAQAAAgAEHAIA
-AAIAAhwCGQAMY2Fub24tNTUtMjUwHAIZAAxtb3Njb3ctYmlyZHMcAhkABnNlcmJv
-chwCdAAjKGMpINCc0LDQutGB0LjQvCDQktCw0LvRj9C90YHQutC40LkA/+EkO2h0
-dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8gADw/eHBhY2tldCBiZWdpbj0n77u/
-JyBpZD0nVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkJz8+Cjx4OnhtcG1ldGEgeG1s
-bnM6eD0nYWRvYmU6bnM6bWV0YS8nIHg6eG1wdGs9J0ltYWdlOjpFeGlmVG9vbCA3
-LjIxJz4KPHJkZjpSREYgeG1sbnM6cmRmPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5
-LzAyLzIyLXJkZi1zeW50YXgtbnMjJz4KCiA8cmRmOkRlc2NyaXB0aW9uIHJkZjph
-Ym91dD0nJwogIHhtbG5zOmF1eD0naHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEu
-MC9hdXgvJz4KICA8YXV4OkZpcm13YXJlPjEuMS4xPC9hdXg6RmlybXdhcmU+CiAg
-PGF1eDpGbGFzaENvbXBlbnNhdGlvbj4wLzE8L2F1eDpGbGFzaENvbXBlbnNhdGlv
-bj4KICA8YXV4OkxlbnM+RUYtUzU1LTI1MG1tIGYvNC01LjYgSVM8L2F1eDpMZW5z
-PgogIDxhdXg6TGVuc0luZm8+NTUvMSAyNTAvMSAwLzAgMC8wPC9hdXg6TGVuc0lu
-Zm8+CiAgPGF1eDpTZXJpYWxOdW1iZXI+NzMwNTUyMjU4PC9hdXg6U2VyaWFsTnVt
-YmVyPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6
-YWJvdXQ9JycKICB4bWxuczpjcnM9J2h0dHA6Ly9ucy5hZG9iZS5jb20vY2FtZXJh
-LXJhdy1zZXR0aW5ncy8xLjAvJz4KICA8Y3JzOkFscmVhZHlBcHBsaWVkPlRydWU8
-L2NyczpBbHJlYWR5QXBwbGllZD4KICA8Y3JzOkJsdWVIdWU+MDwvY3JzOkJsdWVI
-dWU+CiAgPGNyczpCbHVlU2F0dXJhdGlvbj4wPC9jcnM6Qmx1ZVNhdHVyYXRpb24+
-CiAgPGNyczpCcmlnaHRuZXNzPjA8L2NyczpCcmlnaHRuZXNzPgogIDxjcnM6Q2Ft
-ZXJhUHJvZmlsZT5FbWJlZGRlZDwvY3JzOkNhbWVyYVByb2ZpbGU+CiAgPGNyczpD
-YW1lcmFQcm9maWxlRGlnZXN0PjU0NjUwQTM0MUI1QjVDQ0FFODQ0MkQwQjQzQTky
-QkNFPC9jcnM6Q2FtZXJhUHJvZmlsZURpZ2VzdD4KICA8Y3JzOkNocm9tYXRpY0Fi
-ZXJyYXRpb25CPjA8L2NyczpDaHJvbWF0aWNBYmVycmF0aW9uQj4KICA8Y3JzOkNo
-cm9tYXRpY0FiZXJyYXRpb25SPjA8L2NyczpDaHJvbWF0aWNBYmVycmF0aW9uUj4K
-ICA8Y3JzOkNsYXJpdHk+MDwvY3JzOkNsYXJpdHk+CiAgPGNyczpDb2xvck5vaXNl
-UmVkdWN0aW9uPjA8L2NyczpDb2xvck5vaXNlUmVkdWN0aW9uPgogIDxjcnM6Q29u
-dmVydFRvR3JheXNjYWxlPkZhbHNlPC9jcnM6Q29udmVydFRvR3JheXNjYWxlPgog
-IDxjcnM6RGVmcmluZ2U+MDwvY3JzOkRlZnJpbmdlPgogIDxjcnM6RXhwb3N1cmU+
-MC4wMDwvY3JzOkV4cG9zdXJlPgogIDxjcnM6RmlsbExpZ2h0PjA8L2NyczpGaWxs
-TGlnaHQ+CiAgPGNyczpHcmVlbkh1ZT4wPC9jcnM6R3JlZW5IdWU+CiAgPGNyczpH
-cmVlblNhdHVyYXRpb24+MDwvY3JzOkdyZWVuU2F0dXJhdGlvbj4KICA8Y3JzOkhh
-c0Nyb3A+RmFsc2U8L2NyczpIYXNDcm9wPgogIDxjcnM6SGFzU2V0dGluZ3M+VHJ1
-ZTwvY3JzOkhhc1NldHRpbmdzPgogIDxjcnM6SGlnaGxpZ2h0UmVjb3Zlcnk+MDwv
-Y3JzOkhpZ2hsaWdodFJlY292ZXJ5PgogIDxjcnM6SHVlQWRqdXN0bWVudEFxdWE+
-MDwvY3JzOkh1ZUFkanVzdG1lbnRBcXVhPgogIDxjcnM6SHVlQWRqdXN0bWVudEJs
-dWU+MDwvY3JzOkh1ZUFkanVzdG1lbnRCbHVlPgogIDxjcnM6SHVlQWRqdXN0bWVu
-dEdyZWVuPjA8L2NyczpIdWVBZGp1c3RtZW50R3JlZW4+CiAgPGNyczpIdWVBZGp1
-c3RtZW50TWFnZW50YT4wPC9jcnM6SHVlQWRqdXN0bWVudE1hZ2VudGE+CiAgPGNy
-czpIdWVBZGp1c3RtZW50T3JhbmdlPjA8L2NyczpIdWVBZGp1c3RtZW50T3Jhbmdl
-PgogIDxjcnM6SHVlQWRqdXN0bWVudFB1cnBsZT4wPC9jcnM6SHVlQWRqdXN0bWVu
-dFB1cnBsZT4KICA8Y3JzOkh1ZUFkanVzdG1lbnRSZWQ+MDwvY3JzOkh1ZUFkanVz
-dG1lbnRSZWQ+CiAgPGNyczpIdWVBZGp1c3RtZW50WWVsbG93PjA8L2NyczpIdWVB
-ZGp1c3RtZW50WWVsbG93PgogIDxjcnM6SW5jcmVtZW50YWxUZW1wZXJhdHVyZT4w
-PC9jcnM6SW5jcmVtZW50YWxUZW1wZXJhdHVyZT4KICA8Y3JzOkluY3JlbWVudGFs
-VGludD4wPC9jcnM6SW5jcmVtZW50YWxUaW50PgogIDxjcnM6THVtaW5hbmNlQWRq
-dXN0bWVudEFxdWE+MDwvY3JzOkx1bWluYW5jZUFkanVzdG1lbnRBcXVhPgogIDxj
-cnM6THVtaW5hbmNlQWRqdXN0bWVudEJsdWU+MDwvY3JzOkx1bWluYW5jZUFkanVz
-dG1lbnRCbHVlPgogIDxjcnM6THVtaW5hbmNlQWRqdXN0bWVudEdyZWVuPjA8L2Ny
-czpMdW1pbmFuY2VBZGp1c3RtZW50R3JlZW4+CiAgPGNyczpMdW1pbmFuY2VBZGp1
-c3RtZW50TWFnZW50YT4wPC9jcnM6THVtaW5hbmNlQWRqdXN0bWVudE1hZ2VudGE+
-CiAgPGNyczpMdW1pbmFuY2VBZGp1c3RtZW50T3JhbmdlPjA8L2NyczpMdW1pbmFu
-Y2VBZGp1c3RtZW50T3JhbmdlPgogIDxjcnM6THVtaW5hbmNlQWRqdXN0bWVudFB1
-cnBsZT4wPC9jcnM6THVtaW5hbmNlQWRqdXN0bWVudFB1cnBsZT4KICA8Y3JzOkx1
-bWluYW5jZUFkanVzdG1lbnRSZWQ+MDwvY3JzOkx1bWluYW5jZUFkanVzdG1lbnRS
-ZWQ+CiAgPGNyczpMdW1pbmFuY2VBZGp1c3RtZW50WWVsbG93PjA8L2NyczpMdW1p
-bmFuY2VBZGp1c3RtZW50WWVsbG93PgogIDxjcnM6THVtaW5hbmNlU21vb3RoaW5n
-PjA8L2NyczpMdW1pbmFuY2VTbW9vdGhpbmc+CiAgPGNyczpQYXJhbWV0cmljRGFy
-a3M+MDwvY3JzOlBhcmFtZXRyaWNEYXJrcz4KICA8Y3JzOlBhcmFtZXRyaWNIaWdo
-bGlnaHRTcGxpdD43NTwvY3JzOlBhcmFtZXRyaWNIaWdobGlnaHRTcGxpdD4KICA8
-Y3JzOlBhcmFtZXRyaWNIaWdobGlnaHRzPjA8L2NyczpQYXJhbWV0cmljSGlnaGxp
-Z2h0cz4KICA8Y3JzOlBhcmFtZXRyaWNMaWdodHM+MDwvY3JzOlBhcmFtZXRyaWNM
-aWdodHM+CiAgPGNyczpQYXJhbWV0cmljTWlkdG9uZVNwbGl0PjUwPC9jcnM6UGFy
-YW1ldHJpY01pZHRvbmVTcGxpdD4KICA8Y3JzOlBhcmFtZXRyaWNTaGFkb3dTcGxp
-dD4yNTwvY3JzOlBhcmFtZXRyaWNTaGFkb3dTcGxpdD4KICA8Y3JzOlBhcmFtZXRy
-aWNTaGFkb3dzPjA8L2NyczpQYXJhbWV0cmljU2hhZG93cz4KICA8Y3JzOlJlZEh1
-ZT4wPC9jcnM6UmVkSHVlPgogIDxjcnM6UmVkU2F0dXJhdGlvbj4wPC9jcnM6UmVk
-U2F0dXJhdGlvbj4KICA8Y3JzOlNhdHVyYXRpb25BZGp1c3RtZW50QXF1YT4wPC9j
-cnM6U2F0dXJhdGlvbkFkanVzdG1lbnRBcXVhPgogIDxjcnM6U2F0dXJhdGlvbkFk
-anVzdG1lbnRCbHVlPjA8L2NyczpTYXR1cmF0aW9uQWRqdXN0bWVudEJsdWU+CiAg
-PGNyczpTYXR1cmF0aW9uQWRqdXN0bWVudEdyZWVuPjA8L2NyczpTYXR1cmF0aW9u
-QWRqdXN0bWVudEdyZWVuPgogIDxjcnM6U2F0dXJhdGlvbkFkanVzdG1lbnRNYWdl
-bnRhPjA8L2NyczpTYXR1cmF0aW9uQWRqdXN0bWVudE1hZ2VudGE+CiAgPGNyczpT
-YXR1cmF0aW9uQWRqdXN0bWVudE9yYW5nZT4wPC9jcnM6U2F0dXJhdGlvbkFkanVz
-dG1lbnRPcmFuZ2U+CiAgPGNyczpTYXR1cmF0aW9uQWRqdXN0bWVudFB1cnBsZT4w
-PC9jcnM6U2F0dXJhdGlvbkFkanVzdG1lbnRQdXJwbGU+CiAgPGNyczpTYXR1cmF0
-aW9uQWRqdXN0bWVudFJlZD4wPC9jcnM6U2F0dXJhdGlvbkFkanVzdG1lbnRSZWQ+
-CiAgPGNyczpTYXR1cmF0aW9uQWRqdXN0bWVudFllbGxvdz4wPC9jcnM6U2F0dXJh
-dGlvbkFkanVzdG1lbnRZZWxsb3c+CiAgPGNyczpTaGFkb3dUaW50PjA8L2NyczpT
-aGFkb3dUaW50PgogIDxjcnM6U2hhZG93cz4wPC9jcnM6U2hhZG93cz4KICA8Y3Jz
-OlNoYXJwZW5EZXRhaWw+MjU8L2NyczpTaGFycGVuRGV0YWlsPgogIDxjcnM6U2hh
-cnBlbkVkZ2VNYXNraW5nPjA8L2NyczpTaGFycGVuRWRnZU1hc2tpbmc+CiAgPGNy
-czpTaGFycGVuUmFkaXVzPisxLjA8L2NyczpTaGFycGVuUmFkaXVzPgogIDxjcnM6
-U3BsaXRUb25pbmdCYWxhbmNlPjA8L2NyczpTcGxpdFRvbmluZ0JhbGFuY2U+CiAg
-PGNyczpTcGxpdFRvbmluZ0hpZ2hsaWdodEh1ZT4wPC9jcnM6U3BsaXRUb25pbmdI
-aWdobGlnaHRIdWU+CiAgPGNyczpTcGxpdFRvbmluZ0hpZ2hsaWdodFNhdHVyYXRp
-b24+MDwvY3JzOlNwbGl0VG9uaW5nSGlnaGxpZ2h0U2F0dXJhdGlvbj4KICA8Y3Jz
-OlNwbGl0VG9uaW5nU2hhZG93SHVlPjA8L2NyczpTcGxpdFRvbmluZ1NoYWRvd0h1
-ZT4KICA8Y3JzOlNwbGl0VG9uaW5nU2hhZG93U2F0dXJhdGlvbj4wPC9jcnM6U3Bs
-aXRUb25pbmdTaGFkb3dTYXR1cmF0aW9uPgogIDxjcnM6VG9uZUN1cnZlPgogICA8
-cmRmOlNlcT4KICAgIDxyZGY6bGk+MCwgMDwvcmRmOmxpPgogICAgPHJkZjpsaT4y
-NTUsIDI1NTwvcmRmOmxpPgogICA8L3JkZjpTZXE+CiAgPC9jcnM6VG9uZUN1cnZl
-PgogIDxjcnM6VG9uZUN1cnZlTmFtZT5MaW5lYXI8L2NyczpUb25lQ3VydmVOYW1l
-PgogIDxjcnM6VmVyc2lvbj41LjU8L2NyczpWZXJzaW9uPgogIDxjcnM6VmlicmFu
-Y2U+MDwvY3JzOlZpYnJhbmNlPgogIDxjcnM6VmlnbmV0dGVBbW91bnQ+MDwvY3Jz
-OlZpZ25ldHRlQW1vdW50PgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNj
-cmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczpkYz0naHR0cDovL3B1cmwub3Jn
-L2RjL2VsZW1lbnRzLzEuMS8nPgogIDxkYzpmb3JtYXQ+YXBwbGljYXRpb24vdm5k
-LmFkb2JlLnBob3Rvc2hvcDwvZGM6Zm9ybWF0PgogIDxkYzpyaWdodHM+CiAgIDxy
-ZGY6QWx0PgogICAgPHJkZjpsaSB4bWw6bGFuZz0neC1kZWZhdWx0Jz4oYykg0JzQ
-sNC60YHQuNC8INCS0LDQu9GP0L3RgdC60LjQuTwvcmRmOmxpPgogICA8L3JkZjpB
-bHQ+CiAgPC9kYzpyaWdodHM+CiAgPGRjOnN1YmplY3Q+CiAgIDxyZGY6QmFnPgog
-ICAgPHJkZjpsaT5jYW5vbi01NS0yNTA8L3JkZjpsaT4KICAgIDxyZGY6bGk+bW9z
-Y293LWJpcmRzPC9yZGY6bGk+CiAgICA8cmRmOmxpPnNlcmJvcjwvcmRmOmxpPgog
-ICA8L3JkZjpCYWc+CiAgPC9kYzpzdWJqZWN0PgogPC9yZGY6RGVzY3JpcHRpb24+
-CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczpleGlmPSdo
-dHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyc+CiAgPGV4aWY6RGF0ZVRpbWVE
-aWdpdGl6ZWQ+MjAwOS0wOC0xMVQwOTowOTo0NS40OSswNDowMDwvZXhpZjpEYXRl
-VGltZURpZ2l0aXplZD4KICA8ZXhpZjpGbGFzaCByZGY6cGFyc2VUeXBlPSdSZXNv
-dXJjZSc+CiAgIDxleGlmOkZpcmVkPkZhbHNlPC9leGlmOkZpcmVkPgogICA8ZXhp
-ZjpGdW5jdGlvbj5GYWxzZTwvZXhpZjpGdW5jdGlvbj4KICAgPGV4aWY6TW9kZT4y
-PC9leGlmOk1vZGU+CiAgIDxleGlmOlJlZEV5ZU1vZGU+RmFsc2U8L2V4aWY6UmVk
-RXllTW9kZT4KICAgPGV4aWY6UmV0dXJuPjA8L2V4aWY6UmV0dXJuPgogIDwvZXhp
-ZjpGbGFzaD4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24g
-cmRmOmFib3V0PScnCiAgeG1sbnM6bHI9J2h0dHA6Ly9ucy5hZG9iZS5jb20vbGln
-aHRyb29tLzEuMC8nPgogIDxscjpoaWVyYXJjaGljYWxTdWJqZWN0PgogICA8cmRm
-OkJhZz4KICAgIDxyZGY6bGk+Y2Fub24tNTUtMjUwPC9yZGY6bGk+CiAgICA8cmRm
-OmxpPm1vc2Nvdy1iaXJkczwvcmRmOmxpPgogICAgPHJkZjpsaT5zZXJib3I8L3Jk
-ZjpsaT4KICAgPC9yZGY6QmFnPgogIDwvbHI6aGllcmFyY2hpY2FsU3ViamVjdD4K
-IDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0
-PScnCiAgeG1sbnM6cGhvdG9zaG9wPSdodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rv
-c2hvcC8xLjAvJz4KICA8cGhvdG9zaG9wOkhpc3Rvcnk+PC9waG90b3Nob3A6SGlz
-dG9yeT4KICA8cGhvdG9zaG9wOkxlZ2FjeUlQVENEaWdlc3Q+MTEwN0I2RDFDNDM3
-NkFCM0ZENThDNTY5RDczNUE1RDg8L3Bob3Rvc2hvcDpMZWdhY3lJUFRDRGlnZXN0
-PgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJv
-dXQ9JycKICB4bWxuczp0aWZmPSdodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4w
-Lyc+CiAgPHRpZmY6Qml0c1BlclNhbXBsZT4KICAgPHJkZjpTZXE+CiAgICA8cmRm
-OmxpPjg8L3JkZjpsaT4KICAgIDxyZGY6bGk+ODwvcmRmOmxpPgogICAgPHJkZjps
-aT44PC9yZGY6bGk+CiAgIDwvcmRmOlNlcT4KICA8L3RpZmY6Qml0c1BlclNhbXBs
-ZT4KICA8dGlmZjpDb21wcmVzc2lvbj44PC90aWZmOkNvbXByZXNzaW9uPgogIDx0
-aWZmOkltYWdlTGVuZ3RoPjI1OTI8L3RpZmY6SW1hZ2VMZW5ndGg+CiAgPHRpZmY6
-SW1hZ2VXaWR0aD4zODg4PC90aWZmOkltYWdlV2lkdGg+CiAgPHRpZmY6UGhvdG9t
-ZXRyaWNJbnRlcnByZXRhdGlvbj4yPC90aWZmOlBob3RvbWV0cmljSW50ZXJwcmV0
-YXRpb24+CiAgPHRpZmY6UGxhbmFyQ29uZmlndXJhdGlvbj4xPC90aWZmOlBsYW5h
-ckNvbmZpZ3VyYXRpb24+CiAgPHRpZmY6U2FtcGxlc1BlclBpeGVsPjM8L3RpZmY6
-U2FtcGxlc1BlclBpeGVsPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNj
-cmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczp4bXA9J2h0dHA6Ly9ucy5hZG9i
-ZS5jb20veGFwLzEuMC8nPgogIDx4bXA6Q3JlYXRvclRvb2w+QWRvYmUgUGhvdG9z
-aG9wIExpZ2h0cm9vbTwveG1wOkNyZWF0b3JUb29sPgogIDx4bXA6TWV0YWRhdGFE
-YXRlPjIwMDktMTAtMDJUMjI6NTU6MjkrMDQ6MDA8L3htcDpNZXRhZGF0YURhdGU+
-CiAgPHhtcDpSYXRpbmc+NTwveG1wOlJhdGluZz4KIDwvcmRmOkRlc2NyaXB0aW9u
-PgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PScnCiAgeG1sbnM6eG1wTU09
-J2h0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8nPgogIDx4bXBNTTpJbnN0
-YW5jZUlEPnV1aWQ6QzZEN0NEREEzNUIxREUxMUIyQzhDRUQ5MUZDOTg1QjI8L3ht
-cE1NOkluc3RhbmNlSUQ+CiA8L3JkZjpEZXNjcmlwdGlvbj4KPC9yZGY6UkRGPgo8
-L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVu
-ZD0ndyc/Pv/bAEMAAgEBAQEBAgEBAQICAgICBAMCAgICBQQEAwQGBQYGBgUGBgYH
-CQgGBwkHBgYICwgJCgoKCgoGCAsMCwoMCQoKCv/bAEMBAgICAgICBQMDBQoHBgcK
-CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoK
-Cv/AABEIAEQAZAMBEQACEQEDEQH/xAAdAAACAgMBAQEAAAAAAAAAAAAFBggJAgMH
-BAEA/8QAUBAAAgEDAgQCBAgIBBcAAAAAAQIDBAURAAYHCBIhEzEJFEFRFSIjMmFx
-kbEWJkKBodHS01VytMIkMzRDREhSYmZ0dYKEkpOUoqSys8HD1P/EABwBAAEFAQEB
-AAAAAAAAAAAAAAYAAQIDBwUIBP/EAD8RAAECBAMCCQkIAgMBAAAAAAECEQADBCEF
-EjEGQSJRUmGRkrHR0gcTFBUWQlNxcjI0NUNigbLwI6EzgsHh/9oADAMBAAIRAxEA
-PwDsnPpz48fuWvjxTcOOGVpsFVbZ9v09c7XO3ySyrI8syMAUlQdOI1PcE5J74wAS
-4Ng1NiNMZkwqBCmszaA8R44FMdx2rwyrTLlBJBSDcF9SNxHFHLrf6Uvm8qx1T2HZ
-sQx5tbJv/o12Bsth/LV0jujhnbDEh7iOg+KCtL6TrmSODWz7KQ+1Vtc5P/f1L2Vw
-8+8vpHhiB2yxJNylHQrxQSpvSWcepO8rbbb+JZZh982n9lMP5S+lPhhvbPE+QjoV
-4o9y+kd444yYtvHv/Brj75dN7K4fyl9I8MOdssU5COhXijYPSN8bCF+TsHc/we/l
-/tdP7KUHKV0jww3tlifIR0K8UZH0jPGpV6j+DvfyHqT/ALzTeylByl9I8ML2yxPk
-I6D4o0zekh41pgKNu5/ye/7zT+ydByl9I8ML2yxNvsI6FeKPFU+kv49RA+FT7Zb3
-Zt8n73T+yeH8pfSPDC9ssU5COhXigfVelA5i4cmK37YP12yU/wDu0jsnh499fSPD
-De2eKchHQrxQJrvSs8zkGfV7ZtM+4NaZv3+m9lMO5S+keGJe2WJnRCOhXigJcPS8
-c2tN3hsOzf8AOs1R2+yo0x2Vw7lq6R4Ykna/FD7iOg+KLBeXrfN94ncC9o8RdzrA
-txvm3qWurlpoykayyxK7BFJJCgkgAknHmT56B6qUmRVTJadEqIvzFoP6OcqppJc1
-WqkgltLgGK9/TAXW50fNdQ01FUeGh2bRszKPjZ9YqRo22WvQK+o9ggD2vA9YoJPu
-DtVEdLBbbxfK2Ghp4quuqKiVY4YYEaRpHYgBFAzkk4AA9uiYqRLQVLLAavuECQSq
-YsJQHJsOc8UCubPideOVm92fhrbPgGr3BcbT6/Wyy1ZlSgDr8hD0RkI/VnqaQvj4
-uFKj5U55XbS1OIVBFCsolA/aYEqNrh9B+1wb8Q1HDNk6TDqUKxGWJk5QfKSWQGIu
-2p53sRbRyicHucfZ1rsFBtTjLe77JuWKvqYLzd6ixIlBGRIWQKYn6h0p2YGMYKE9
-TAnHbw7aOWE5Ks/JQYg/MDTmZ35oHsV2UnKX5yiFt6S4IZtCdXuS7NzxJPaNDSbz
-syXva18o7hSO46aiiIlUHAJUkE4buDg4Iz30USKmmqZYmSlBSTvBgNn01RSzDLnJ
-KVDcQYLx7ErG7FiT7ljH/nV5MUBtI+TbLqIstNQSY9rMqgfbntpAiHVbUR5ZtrxD
-I8FAceYcHv8AmOneEAHeBlftir6s0lxTz7Jkj9ekTDgXeF+60d/o84iZyD7JM/fq
-LRJ2ELlzuN0iz6zSP3+oaV4Tp1eANyvjdPSySJ9bZH6NVqiwNui5/k1fxOU3hvIT
-nq2Vbj/y6aybEfxCd9Su0xsmF/hkj6E9giEHpYXs45t6Ba+qpUkOzaQKJ5FDY9Yq
-fLOMnz9ujLZdhhyvrPYmAba9/WiG5A/kqI92Lj1w62Pu23Vdvp6q719DXQzx2+gi
-Z5JmVwwVWQYDEjAwSwJ8s9tdfEZcudh86VMVlSpKgTxAggn9td0cPC1zZeKSFy05
-lBaSE8ohQIGm82iPu6eGVx45c2/EPcHFmjuNos9JuOoh9fnDmW1UNG/qtLQ1CxU7
-hGio4IS7DKmNvGZ3RuoYScRlyKdCJR0AAvra5D3uX4ruGDNHolGHKn1C1zRZ3004
-gWto3HZi5eGDi/w34HU3Dav2pb+G1HPfEpqeawXahWsiRaZ38WKesRo4OiOSmQSo
-4cg9TydQUDXxSsQqkzAoLN9QW5tNX1u0ffNoaRcspygncR/o7m0OrQwcgPDm/bsu
-NVxAqd01UMN/kNFTG0T5MFOgRfFqq2ZFqIYMhWaRVMgWaDow3hxmddjlXhpCaZZS
-vjBy79+W3z3W4zFFPg1FiIeolhaf1AK3acIP/QNBEsty8se89s7KqeMnBHiHvOto
-KOxUV3uVj3XV1NbHTJN4vVJArwyNWFhDQmWOF2kp3rYU8Jlfw25lLtbj02oCvPrD
-MXBN+IEPoAXuGv8AOPpnbL4D6OZJkIILsCkWcByLWJ0dN+CDxQr7G4qXm/2Oeru1
-BRytR3KSi9ehplMVaEiikE8bAhWR0mjbAAZCxSRIpVkhj3rZDHjj1EpM0/5ZbBTb
-wXYtuNiCOMOOCRGA7Z7PJ2er0GT/AMcxykFnBS2ZOrkB0kEh75TwgY33PfNtnXDL
-CB5Y9VUfmz04/TovSgiA1SkwvXTcMNVJ4VFb1LH+9749+Pd9IOpAb4gW3QHuNbBH
-Hi43KKJm/rfjdTY/i98fo0xAETSXOsKN9vdBkx0aGXPmzDA+z26iQ0O92hTvANSx
-dQMnzHVqogaRaCdYul5MgRylcNgVx+JNt7e7+h01k2I/iE76ldpjZsM/DZH0J/iI
-gh6Y5qNuZyip907T+ErG+0KQVQiBEgPjVOQpUZJwBgHA7nJX2mOyyc2HrH6j2CAT
-bJZRiSCOQO1UR/4SvymbQuFNus2esgtlJTXCsr6K+yukTwU9vqallKsGTOISOzEj
-OQCwA1822xqJWzc1MsXUUixNnUO3RuePp8n4p5+00pUwsEhSg41ISeazPmd7NHJN
-k2PirsLjFUcWbPty/biS+3yqk3pYK+0VFFdqqCWsqIIRcYp1keop5HYxLUxRdMks
-5WqaEiMzYLVz5a5BlqWxABDlxpdiCL6EpJcNwApy3oWllqlTs+WxLG2U6sxB3PoQ
-Luc2Vg/VONN2uvHue0Wnh/b5amuuFdXVlikgr7cY7jQwOtZUU9HAtS8UdZAjsxkk
-pvFnSFyy07pKsnLpFzQkrmajWxOoAc2DgniLJO8hm6Vb5pNkaHeWGl+MsQONIJvY
-F3sH5CeVu67Js1v3xv8A2dZzaLBSV89VY7XVsZnmmhj9YnlgTrjmZR1xoAMyColC
-Rr8VW+Wrq0ozLUpwjnuWAvxM3GHJ3aRXLknIJY4JWbWsHOnZd2A4rx0PjBy5cAuc
-eCv4eLRLuWvoOIEDSXq2bsrKW6bXeKohqlX5NBU2+aRfAmQ+GydASRSY5Ax5UrFJ
-8ieyAFFb/a0KHUliCC7sQ4e4P7dFdPlpyZiijIkOBqFgBQIILWtZwSFMdQ8EpNs7
-o4brc9t3Hado25FcLhiooLftqjtolloKispViCQTPPM1M71UbVMkdP40clOGiDQq
-qbF5JEgY6vKoqHmSzuTdaDvAbiy3Ia5ctGXeWMyVYBKUlLKM0OH/AELvZwQbEHe9
-n1gJNWXC/grb7/SSfOReunOcjzHcZ+8a9C5LO0ebzNLs8B14e7lq5niqL7NGjZyk
-SdCEDzPl9H0aZRhIGr3gRXbOsNpmWCtuLO0qs0YlYHrA8yvfOBkfbqOZJLaxPKpn
-AtAmuS1whlgo/ig9iD56RIiKUmF2+VYRWMVF4Yxgl2Hcj2+WqiRFwBA0i5vkxJPK
-Tw1JGPxJtvb/AEdNZNiP4hO+tXaY2fC/wyR9Cf4iIA+mZp/Webe2eG9AJI9mUbgm
-ZYqkEVFVjDEqSp92QM5Oi/Zdhh63PvHsEA+14fEkWfgD+SoihvOHi9vbYtz2hPUW
-yeBqGeN6pZYaSal8VGiDhig6x0yFCQ5DKWUkhjrsYphtPitAqmWWdmOrEEEHv0JB
-IcRwcHxeswXEk1aLgOCNHBBBD9huxA1hHPPXxps+5dw7CvHC+w7vnsNXPVrX1FjV
-47PNUVMUzyyvTmKVz4pZHzK8rdDRgpH1RP592g2XpMOxEykVFrJJHBJs7WzCxLaB
-jq8ejsA2mr8Rw5M+ZT5SXUEm+W9laJfMA9ncQJ3Jzjbu3pxItu7eKtTHLdLNaram
-0aG3RmCgapimMcb+rYcUDyLDSxSPDKsSNErKJo2VTyDhaUSz6M7EnMT9rKACRuzM
-5IDOxbgm47frHzigmdqwYbnuxZnD2Buz3uLRbbymc8PDiLZ26Nq774sxbVt9BNb6
-jb9zt8c0M8MUsKytHTUqQTUbxgVLxiD5SQ1ECKD4Hq3QFzk1YWhE65Uzm5ZiSQSw
-BCrHSxvZjBIhUhSSuWAQHGUsAQdNDmBB57h9dI8vGbmS4WbC2Pum+WXYXEWn3Lsq
-WU8PVt0New3HaKcU1RSU96nr2ilqFjqJ6iVo5x4kMksvqDCUBzOgw8VVYnDwgnMz
-AWU7gAcEhSiVJYsyVcFChlGSIYjVqpKdVepSQwdRLMMqSVEAgpy5VaquBmU+ZjCP
-vDizwM5rOVW4c7vDiW8XHeW2qKmqL3ZIr1DO9qVppjLNULLAkr+IizANJGiStT0s
-nTFh/EK/JnVK2Oxf0OpmZ/NKUha05wmag6TBmJJNwpYKlZVukrKhmIj5QKIbVbOp
-XKSEKWhK0pIS8tYZ0WPBDghJ3pJLEWHPU4k7bqTBeq6y1Iepq5Kd6qkoY5GE2Siq
-sU1vp1mkZ1KeEjlgQ2SSB1erJU4TUFSSCN1zp83P72BGjWMeWqqmm08/LMSQbvYf
-PTKkXewBZrvpAjcW46SqV+mnqOnrWVfFiWjNSuARKqqVLjv8wKCPaT3GrgrSPmyB
-yW/v7QlXzclTVOa008CdYGAwLEYx+Tg4/Pk6lmGkNlLZnhVvd4n6nFVJUEFiW6Aw
-HfJwD2wPo9mO2qwzMItZQv2f0Qp3itpmbPRg5z/TgCPsOoEgQ6RMJi7LkrPVyicM
-2znOx7Ycg5/sZNZTiDenzm5Su0xsmGfhsj6E/wAREAvTJxifnAt8CrM7fgNSMUhb
-BCioqsnyPb6dFezS8lAq4HCOvyTAbtXLC8RRYngDT5q+cRVprdSSKYVhikjY945o
-0fOfPzH3aKkEbxAdMD2BLQN3/wAvPDzitbh8MWuCnrY06aO5Q0SNJAAMdJD5V0IO
-CjAjByMEAjn4jhlJiMshSQF7lMCQ1xqLjm6GN462FY1XYXMBSsmXvQ5AI3txGwuO
-K7ix59vvlB39LSQbe2hBt6qihUl7rW2elM7EBUVTFIhjAC5PUoBGSO4xgHmbM47S
-zwZHm1pO/JLTvOvBc8ep6dTqXtTs9WSSagzUKG7zk07hoygBxbuiHXY+1dqbc2Ee
-EnE2sqvhy0W9YoxYcHx6iVVxDErBQi9MqoXICIHYKGwFbKdraOqw/GJstbFQY2sL
-gK0AGj8VyI1PZXEqSvwiVMQFBJcBy5sSm5c8T6/7g/s7hrxVlv8AeN4b82na6ayW
-6rYJt2+SyNUXdgiU0kLVZfqijeJFpZJIwqOkkpVUL+MvEkY0mjkmXKSDMUAMyrhL
-KCgQlwCQRqXI0Co7lVhRrpgXMWUoQXCUlszgggm5a+6zgEpj5Fs7Z9y5gpuHNDXQ
-XJNty1TyVcdIyQStTtDGI4vjKI3EkqOex8Mw+GOssZFNPJJQSp2Jhc08JAK7hyov
-lBL7z9p7ktzwFeVfFJ9PhJTK0WQixsAzkc4YZSLC+9o7CtVcKG0JY6BqeKiUMFpo
-adY41DN1NgKB5nJPvPc69GcEElrn/wA7o84AEgAnR/8AevTAavrblBEtPDMgiiXE
-cfSAFHs7D79IsYdlBTwvXequErFJq5SR2JK5I9udRKt4iQAJu0LV2LyFllq5SMH5
-pA+7UCTFgAJZ4WbvSQgnrWTI7ks/mff5HOqzcaxIDLui8jkjAXk84YKD2GxLWB/u
-0esrxD7/ADvqV2mNfwx/Vsl+QnsEV7+mpqIqfnEtjT1ARfwHou2Rn+qavvor2aUr
-0JQA949ggO2qSj1gkqPujtVEXLdcQqqIpQcnuO3u0SJUreIFyENwTB+11buoLdCn
-3sfnasztaKzJCg7wbp66oADfEIB7fKg4+nGppWIiuWrjHSI55xktt12dfI+MO2rE
-lYIsG9QzxiVAqqFEzKWU+GEXD9LKVADdh1trM/KDs2uulnEKdOYgMsb2Gih8t/Nf
-QGNM8n+0aKJXq+oVlBPAJ0c6pd9504y43gQ07x5qbndNnC6bGnslJdYIqbx6+7YW
-jpAsgYdZZXMoPT4bKgLLG79ZQElsPGHyUT3WCxP7n5f/AH/cbZ6bMMngkOLudP3/
-AL0Qt8F73HureP4U2K/3Wpt1tinWSvmjjiiuMs5UsZFwH8TpjhyD5eEnkpSOPUfJ
-rhFcMUVWqdKEggs7F9EbnAfMdWISSxIJy7yj4rQ+rBSFlTFEEOzhi5XzEtl3OCW0
-MdTqb1G8WEdldfMGTIP1du2twzHfGHhAItrAq4XcLkPIPfgHtqJW8TCCNYA3O4LI
-3jJKrMSQCB3XyJ8/zfZqBXuMWCW4cQv3a4OVMQkBznGRqJO+LMpFoWLvWucjqXIz
-2ONQJieURepyPnPJxwuPv2Ha/wCSx6y6v+/zfqV2mNcw4Nh8kfpT2CK5PTjSpHzm
-2sMQfxCosKf8arNFOzaimiV9R7BAdtShK69L8kdpiKNrrnyiIcZP5J9+iPMYGcog
-/br7cIlWBah+g5JUSMB9ePt0/wDjJci8R/yANugtQ314ZAXCg98Ej9erQoERQQyr
-wWor3L+UVHf8ph+vTlSDDpTMBd4UL3wV2FuG4rNDNcrfAavx622Wi4eBSVpI6cSx
-gHC9PUvxChw7DPfQvVbIbP1NQJ5lZTvAsDpZt3/Vjd3e8FNHtlj1LIMnPnDWJuRr
-d9+r8JxYWa0O1tp7VYbfFZbLSpT08KYjiKnCj2/WT5knv7dENLLkUdOmTKSAlNgB
-p/d54zA9WLqK6oVOmLKlKuSf7YcQDACwtH6vrz3bwsqT87OdXiYnR4oMlYuRAa4X
-SIKekDHsJz207xFmgLcrijL1AgZGAPedReJgWhdulxRmYsAPZ3OQNROkTAcwv3S4
-plhGfM/SNQJi0JG6L6eRZg3JhwqYHz2Baf5LHrMq/wC/TfqV2mNVw/7hK+lPYIP8
-QOWrl84sbgG6+J/BbbO4bmtOsC195s0NTKsSklYw0ikhQWYhR2yxPmTqqVUVEkES
-1kDmJEWzaamnqCpiEqItcAwFXkj5PE+ZywbEH1bXpf2NWenVvxVdY98Ver6D4Keq
-O6Nq8mHKSieGnLZskKDnpG26fH/RpenVvxVdY98L1fQM3mk9Ud0ZDk15TR/a37K7
-f4OU/wCxpxX1w/NV1j3wxw3DjrJR1R3RkOTzlTUELy67NGfPG3oP2dP6wr/iq6x7
-4f1dh/wUdUd0Zx8onK3D3i5fNoJj+5sMA/m6ia6tOs1XWPfCTh2Hp0kp6o7oyXlI
-5X0YsvADaIJOSRYoPP8A1dMa2sP5iuse+HFBQguJSeqO6MJOULlZlOZeXrZ7H3tY
-ID/N04rq0aTVdY98I0FCdZSeqO6Nb8m/KfJ8/lx2Wc+/btP+zp/T68fmq6x74b1d
-h/wUdUd0YHkt5Rmz1ctOyDnzztqm7/8ABpGvrj+arrHvhersP+CjqjugDR+j65Wq
-agsVHU8Ktv1UloiVLhVT7QtHiXsiAxFqoJRqqEufGPq6wDrAAAjzGV6fXfFV1j3w
-vV2H/BT1R3R5I/RycrC2W3Wuo4bWOeooqdY6q5y7Lsfj3FhTSwmWYCgEasXkWoIi
-SNfEhQBREZInb06u+KrrHvh/QKH4SeqO6Oy7T2rY9kbcpNpbYt8VHbbfF4NBR08K
-Rx00IPxIkVAFVEXCqAOyqB9OvmJUpRJLkx9QCUpCQGAt0R//2Q=="/>
-some other content
-</body>
-</html>
\ No newline at end of file
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTML_embedded_img_in_js.html b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTML_embedded_img_in_js.html
deleted file mode 100644
index 589c47aaf..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTML_embedded_img_in_js.html
+++ /dev/null
@@ -1,351 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="UTF-8">
-    <title>Title</title>
-    <script>var logo="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEA8ADwAAD/7QCIUGhvdG9zaG9wIDMuMAA4QklNBAQAAAAA
-AGscAVoAAxslRxwBAAACAAQcAgAAAgACHAIZAAxjYW5vbi01NS0yNTAcAhkADG1v
-c2Nvdy1iaXJkcxwCGQAGc2VyYm9yHAJ0ACMoYykg0JzQsNC60YHQuNC8INCS0LDQ
-u9GP0L3RgdC60LjQuQD/4QLwRXhpZgAASUkqAAgAAAAKAA8BAgAGAAAAhgAAABAB
-AgAOAAAAjAAAABoBBQABAAAAmgAAABsBBQABAAAAogAAACgBAwABAAAAAgAAADEB
-AgAeAAAAqgAAADIBAgAUAAAAyAAAABMCAwABAAAAAQAAAJiCAgAVAAAA3AAAAGmH
-BAABAAAA8gAAAAAAAABDYW5vbgBDYW5vbiBFT1MgNDBEAPAAAAABAAAA8AAAAAEA
-AABBZG9iZSBQaG90b3Nob3AgQ1MzIE1hY2ludG9zaAAyMDA5OjEwOjAyIDIzOjAy
-OjQ5AChjKSA/Pz8/Pz8gPz8/Pz8/Pz8/AAAgAJqCBQABAAAAeAIAAJ2CBQABAAAA
-gAIAACKIAwABAAAABAAAACeIAwABAAAAkAEAAACQBwAEAAAAMDIyMQOQAgAUAAAA
-iAIAAASQAgAUAAAAnAIAAAGRBwAEAAAAAQIDAAGSCgABAAAAsAIAAAKSBQABAAAA
-uAIAAASSCgABAAAAwAIAAAWSBQABAAAAyAIAAAeSAwABAAAABQAAAAmSAwABAAAA
-EAAAAAqSBQABAAAA0AIAABGSBAABAAAAAAAAAJGSAgADAAAANDkAAJKSAgADAAAA
-NDkAAACgBwAEAAAAMDEwMAGgAwABAAAA//8AAAKgAwABAAAAMA8AAAOgAwABAAAA
-IAoAAA6iBQABAAAA2AIAAA+iBQABAAAA4AIAABCiAwABAAAAAgAAAAGkAwABAAAA
-AAAAAAKkAwABAAAAAAAAAAOkAwABAAAAAQAAAAakAwABAAAAAAAAAAikAwABAAAA
-AAAAAAmkAwABAAAAAAAAAAqkAwABAAAAAAAAAAAAAAABAAAAQAYAABwAAAAFAAAA
-MjAwOTowODoxMSAwOTowOTo0NQAyMDA5OjA4OjExIDA5OjA5OjQ1AD1TAADSBwAA
-OZ8AAAggAAAAAAAAAQAAAJVHAABBDgAAwgAAAAEAAACg8QQASQAAAHf9CgCiAAAA
-/+0AiFBob3Rvc2hvcCAzLjAAOEJJTQQEAAAAAABrHAFaAAMbJUccAQAAAgAEHAIA
-AAIAAhwCGQAMY2Fub24tNTUtMjUwHAIZAAxtb3Njb3ctYmlyZHMcAhkABnNlcmJv
-chwCdAAjKGMpINCc0LDQutGB0LjQvCDQktCw0LvRj9C90YHQutC40LkA/+EkO2h0
-dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8gADw/eHBhY2tldCBiZWdpbj0n77u/
-JyBpZD0nVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkJz8+Cjx4OnhtcG1ldGEgeG1s
-bnM6eD0nYWRvYmU6bnM6bWV0YS8nIHg6eG1wdGs9J0ltYWdlOjpFeGlmVG9vbCA3
-LjIxJz4KPHJkZjpSREYgeG1sbnM6cmRmPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5
-LzAyLzIyLXJkZi1zeW50YXgtbnMjJz4KCiA8cmRmOkRlc2NyaXB0aW9uIHJkZjph
-Ym91dD0nJwogIHhtbG5zOmF1eD0naHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEu
-MC9hdXgvJz4KICA8YXV4OkZpcm13YXJlPjEuMS4xPC9hdXg6RmlybXdhcmU+CiAg
-PGF1eDpGbGFzaENvbXBlbnNhdGlvbj4wLzE8L2F1eDpGbGFzaENvbXBlbnNhdGlv
-bj4KICA8YXV4OkxlbnM+RUYtUzU1LTI1MG1tIGYvNC01LjYgSVM8L2F1eDpMZW5z
-PgogIDxhdXg6TGVuc0luZm8+NTUvMSAyNTAvMSAwLzAgMC8wPC9hdXg6TGVuc0lu
-Zm8+CiAgPGF1eDpTZXJpYWxOdW1iZXI+NzMwNTUyMjU4PC9hdXg6U2VyaWFsTnVt
-YmVyPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6
-YWJvdXQ9JycKICB4bWxuczpjcnM9J2h0dHA6Ly9ucy5hZG9iZS5jb20vY2FtZXJh
-LXJhdy1zZXR0aW5ncy8xLjAvJz4KICA8Y3JzOkFscmVhZHlBcHBsaWVkPlRydWU8
-L2NyczpBbHJlYWR5QXBwbGllZD4KICA8Y3JzOkJsdWVIdWU+MDwvY3JzOkJsdWVI
-dWU+CiAgPGNyczpCbHVlU2F0dXJhdGlvbj4wPC9jcnM6Qmx1ZVNhdHVyYXRpb24+
-CiAgPGNyczpCcmlnaHRuZXNzPjA8L2NyczpCcmlnaHRuZXNzPgogIDxjcnM6Q2Ft
-ZXJhUHJvZmlsZT5FbWJlZGRlZDwvY3JzOkNhbWVyYVByb2ZpbGU+CiAgPGNyczpD
-YW1lcmFQcm9maWxlRGlnZXN0PjU0NjUwQTM0MUI1QjVDQ0FFODQ0MkQwQjQzQTky
-QkNFPC9jcnM6Q2FtZXJhUHJvZmlsZURpZ2VzdD4KICA8Y3JzOkNocm9tYXRpY0Fi
-ZXJyYXRpb25CPjA8L2NyczpDaHJvbWF0aWNBYmVycmF0aW9uQj4KICA8Y3JzOkNo
-cm9tYXRpY0FiZXJyYXRpb25SPjA8L2NyczpDaHJvbWF0aWNBYmVycmF0aW9uUj4K
-ICA8Y3JzOkNsYXJpdHk+MDwvY3JzOkNsYXJpdHk+CiAgPGNyczpDb2xvck5vaXNl
-UmVkdWN0aW9uPjA8L2NyczpDb2xvck5vaXNlUmVkdWN0aW9uPgogIDxjcnM6Q29u
-dmVydFRvR3JheXNjYWxlPkZhbHNlPC9jcnM6Q29udmVydFRvR3JheXNjYWxlPgog
-IDxjcnM6RGVmcmluZ2U+MDwvY3JzOkRlZnJpbmdlPgogIDxjcnM6RXhwb3N1cmU+
-MC4wMDwvY3JzOkV4cG9zdXJlPgogIDxjcnM6RmlsbExpZ2h0PjA8L2NyczpGaWxs
-TGlnaHQ+CiAgPGNyczpHcmVlbkh1ZT4wPC9jcnM6R3JlZW5IdWU+CiAgPGNyczpH
-cmVlblNhdHVyYXRpb24+MDwvY3JzOkdyZWVuU2F0dXJhdGlvbj4KICA8Y3JzOkhh
-c0Nyb3A+RmFsc2U8L2NyczpIYXNDcm9wPgogIDxjcnM6SGFzU2V0dGluZ3M+VHJ1
-ZTwvY3JzOkhhc1NldHRpbmdzPgogIDxjcnM6SGlnaGxpZ2h0UmVjb3Zlcnk+MDwv
-Y3JzOkhpZ2hsaWdodFJlY292ZXJ5PgogIDxjcnM6SHVlQWRqdXN0bWVudEFxdWE+
-MDwvY3JzOkh1ZUFkanVzdG1lbnRBcXVhPgogIDxjcnM6SHVlQWRqdXN0bWVudEJs
-dWU+MDwvY3JzOkh1ZUFkanVzdG1lbnRCbHVlPgogIDxjcnM6SHVlQWRqdXN0bWVu
-dEdyZWVuPjA8L2NyczpIdWVBZGp1c3RtZW50R3JlZW4+CiAgPGNyczpIdWVBZGp1
-c3RtZW50TWFnZW50YT4wPC9jcnM6SHVlQWRqdXN0bWVudE1hZ2VudGE+CiAgPGNy
-czpIdWVBZGp1c3RtZW50T3JhbmdlPjA8L2NyczpIdWVBZGp1c3RtZW50T3Jhbmdl
-PgogIDxjcnM6SHVlQWRqdXN0bWVudFB1cnBsZT4wPC9jcnM6SHVlQWRqdXN0bWVu
-dFB1cnBsZT4KICA8Y3JzOkh1ZUFkanVzdG1lbnRSZWQ+MDwvY3JzOkh1ZUFkanVz
-dG1lbnRSZWQ+CiAgPGNyczpIdWVBZGp1c3RtZW50WWVsbG93PjA8L2NyczpIdWVB
-ZGp1c3RtZW50WWVsbG93PgogIDxjcnM6SW5jcmVtZW50YWxUZW1wZXJhdHVyZT4w
-PC9jcnM6SW5jcmVtZW50YWxUZW1wZXJhdHVyZT4KICA8Y3JzOkluY3JlbWVudGFs
-VGludD4wPC9jcnM6SW5jcmVtZW50YWxUaW50PgogIDxjcnM6THVtaW5hbmNlQWRq
-dXN0bWVudEFxdWE+MDwvY3JzOkx1bWluYW5jZUFkanVzdG1lbnRBcXVhPgogIDxj
-cnM6THVtaW5hbmNlQWRqdXN0bWVudEJsdWU+MDwvY3JzOkx1bWluYW5jZUFkanVz
-dG1lbnRCbHVlPgogIDxjcnM6THVtaW5hbmNlQWRqdXN0bWVudEdyZWVuPjA8L2Ny
-czpMdW1pbmFuY2VBZGp1c3RtZW50R3JlZW4+CiAgPGNyczpMdW1pbmFuY2VBZGp1
-c3RtZW50TWFnZW50YT4wPC9jcnM6THVtaW5hbmNlQWRqdXN0bWVudE1hZ2VudGE+
-CiAgPGNyczpMdW1pbmFuY2VBZGp1c3RtZW50T3JhbmdlPjA8L2NyczpMdW1pbmFu
-Y2VBZGp1c3RtZW50T3JhbmdlPgogIDxjcnM6THVtaW5hbmNlQWRqdXN0bWVudFB1
-cnBsZT4wPC9jcnM6THVtaW5hbmNlQWRqdXN0bWVudFB1cnBsZT4KICA8Y3JzOkx1
-bWluYW5jZUFkanVzdG1lbnRSZWQ+MDwvY3JzOkx1bWluYW5jZUFkanVzdG1lbnRS
-ZWQ+CiAgPGNyczpMdW1pbmFuY2VBZGp1c3RtZW50WWVsbG93PjA8L2NyczpMdW1p
-bmFuY2VBZGp1c3RtZW50WWVsbG93PgogIDxjcnM6THVtaW5hbmNlU21vb3RoaW5n
-PjA8L2NyczpMdW1pbmFuY2VTbW9vdGhpbmc+CiAgPGNyczpQYXJhbWV0cmljRGFy
-a3M+MDwvY3JzOlBhcmFtZXRyaWNEYXJrcz4KICA8Y3JzOlBhcmFtZXRyaWNIaWdo
-bGlnaHRTcGxpdD43NTwvY3JzOlBhcmFtZXRyaWNIaWdobGlnaHRTcGxpdD4KICA8
-Y3JzOlBhcmFtZXRyaWNIaWdobGlnaHRzPjA8L2NyczpQYXJhbWV0cmljSGlnaGxp
-Z2h0cz4KICA8Y3JzOlBhcmFtZXRyaWNMaWdodHM+MDwvY3JzOlBhcmFtZXRyaWNM
-aWdodHM+CiAgPGNyczpQYXJhbWV0cmljTWlkdG9uZVNwbGl0PjUwPC9jcnM6UGFy
-YW1ldHJpY01pZHRvbmVTcGxpdD4KICA8Y3JzOlBhcmFtZXRyaWNTaGFkb3dTcGxp
-dD4yNTwvY3JzOlBhcmFtZXRyaWNTaGFkb3dTcGxpdD4KICA8Y3JzOlBhcmFtZXRy
-aWNTaGFkb3dzPjA8L2NyczpQYXJhbWV0cmljU2hhZG93cz4KICA8Y3JzOlJlZEh1
-ZT4wPC9jcnM6UmVkSHVlPgogIDxjcnM6UmVkU2F0dXJhdGlvbj4wPC9jcnM6UmVk
-U2F0dXJhdGlvbj4KICA8Y3JzOlNhdHVyYXRpb25BZGp1c3RtZW50QXF1YT4wPC9j
-cnM6U2F0dXJhdGlvbkFkanVzdG1lbnRBcXVhPgogIDxjcnM6U2F0dXJhdGlvbkFk
-anVzdG1lbnRCbHVlPjA8L2NyczpTYXR1cmF0aW9uQWRqdXN0bWVudEJsdWU+CiAg
-PGNyczpTYXR1cmF0aW9uQWRqdXN0bWVudEdyZWVuPjA8L2NyczpTYXR1cmF0aW9u
-QWRqdXN0bWVudEdyZWVuPgogIDxjcnM6U2F0dXJhdGlvbkFkanVzdG1lbnRNYWdl
-bnRhPjA8L2NyczpTYXR1cmF0aW9uQWRqdXN0bWVudE1hZ2VudGE+CiAgPGNyczpT
-YXR1cmF0aW9uQWRqdXN0bWVudE9yYW5nZT4wPC9jcnM6U2F0dXJhdGlvbkFkanVz
-dG1lbnRPcmFuZ2U+CiAgPGNyczpTYXR1cmF0aW9uQWRqdXN0bWVudFB1cnBsZT4w
-PC9jcnM6U2F0dXJhdGlvbkFkanVzdG1lbnRQdXJwbGU+CiAgPGNyczpTYXR1cmF0
-aW9uQWRqdXN0bWVudFJlZD4wPC9jcnM6U2F0dXJhdGlvbkFkanVzdG1lbnRSZWQ+
-CiAgPGNyczpTYXR1cmF0aW9uQWRqdXN0bWVudFllbGxvdz4wPC9jcnM6U2F0dXJh
-dGlvbkFkanVzdG1lbnRZZWxsb3c+CiAgPGNyczpTaGFkb3dUaW50PjA8L2NyczpT
-aGFkb3dUaW50PgogIDxjcnM6U2hhZG93cz4wPC9jcnM6U2hhZG93cz4KICA8Y3Jz
-OlNoYXJwZW5EZXRhaWw+MjU8L2NyczpTaGFycGVuRGV0YWlsPgogIDxjcnM6U2hh
-cnBlbkVkZ2VNYXNraW5nPjA8L2NyczpTaGFycGVuRWRnZU1hc2tpbmc+CiAgPGNy
-czpTaGFycGVuUmFkaXVzPisxLjA8L2NyczpTaGFycGVuUmFkaXVzPgogIDxjcnM6
-U3BsaXRUb25pbmdCYWxhbmNlPjA8L2NyczpTcGxpdFRvbmluZ0JhbGFuY2U+CiAg
-PGNyczpTcGxpdFRvbmluZ0hpZ2hsaWdodEh1ZT4wPC9jcnM6U3BsaXRUb25pbmdI
-aWdobGlnaHRIdWU+CiAgPGNyczpTcGxpdFRvbmluZ0hpZ2hsaWdodFNhdHVyYXRp
-b24+MDwvY3JzOlNwbGl0VG9uaW5nSGlnaGxpZ2h0U2F0dXJhdGlvbj4KICA8Y3Jz
-OlNwbGl0VG9uaW5nU2hhZG93SHVlPjA8L2NyczpTcGxpdFRvbmluZ1NoYWRvd0h1
-ZT4KICA8Y3JzOlNwbGl0VG9uaW5nU2hhZG93U2F0dXJhdGlvbj4wPC9jcnM6U3Bs
-aXRUb25pbmdTaGFkb3dTYXR1cmF0aW9uPgogIDxjcnM6VG9uZUN1cnZlPgogICA8
-cmRmOlNlcT4KICAgIDxyZGY6bGk+MCwgMDwvcmRmOmxpPgogICAgPHJkZjpsaT4y
-NTUsIDI1NTwvcmRmOmxpPgogICA8L3JkZjpTZXE+CiAgPC9jcnM6VG9uZUN1cnZl
-PgogIDxjcnM6VG9uZUN1cnZlTmFtZT5MaW5lYXI8L2NyczpUb25lQ3VydmVOYW1l
-PgogIDxjcnM6VmVyc2lvbj41LjU8L2NyczpWZXJzaW9uPgogIDxjcnM6VmlicmFu
-Y2U+MDwvY3JzOlZpYnJhbmNlPgogIDxjcnM6VmlnbmV0dGVBbW91bnQ+MDwvY3Jz
-OlZpZ25ldHRlQW1vdW50PgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNj
-cmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczpkYz0naHR0cDovL3B1cmwub3Jn
-L2RjL2VsZW1lbnRzLzEuMS8nPgogIDxkYzpmb3JtYXQ+YXBwbGljYXRpb24vdm5k
-LmFkb2JlLnBob3Rvc2hvcDwvZGM6Zm9ybWF0PgogIDxkYzpyaWdodHM+CiAgIDxy
-ZGY6QWx0PgogICAgPHJkZjpsaSB4bWw6bGFuZz0neC1kZWZhdWx0Jz4oYykg0JzQ
-sNC60YHQuNC8INCS0LDQu9GP0L3RgdC60LjQuTwvcmRmOmxpPgogICA8L3JkZjpB
-bHQ+CiAgPC9kYzpyaWdodHM+CiAgPGRjOnN1YmplY3Q+CiAgIDxyZGY6QmFnPgog
-ICAgPHJkZjpsaT5jYW5vbi01NS0yNTA8L3JkZjpsaT4KICAgIDxyZGY6bGk+bW9z
-Y293LWJpcmRzPC9yZGY6bGk+CiAgICA8cmRmOmxpPnNlcmJvcjwvcmRmOmxpPgog
-ICA8L3JkZjpCYWc+CiAgPC9kYzpzdWJqZWN0PgogPC9yZGY6RGVzY3JpcHRpb24+
-CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczpleGlmPSdo
-dHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyc+CiAgPGV4aWY6RGF0ZVRpbWVE
-aWdpdGl6ZWQ+MjAwOS0wOC0xMVQwOTowOTo0NS40OSswNDowMDwvZXhpZjpEYXRl
-VGltZURpZ2l0aXplZD4KICA8ZXhpZjpGbGFzaCByZGY6cGFyc2VUeXBlPSdSZXNv
-dXJjZSc+CiAgIDxleGlmOkZpcmVkPkZhbHNlPC9leGlmOkZpcmVkPgogICA8ZXhp
-ZjpGdW5jdGlvbj5GYWxzZTwvZXhpZjpGdW5jdGlvbj4KICAgPGV4aWY6TW9kZT4y
-PC9leGlmOk1vZGU+CiAgIDxleGlmOlJlZEV5ZU1vZGU+RmFsc2U8L2V4aWY6UmVk
-RXllTW9kZT4KICAgPGV4aWY6UmV0dXJuPjA8L2V4aWY6UmV0dXJuPgogIDwvZXhp
-ZjpGbGFzaD4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24g
-cmRmOmFib3V0PScnCiAgeG1sbnM6bHI9J2h0dHA6Ly9ucy5hZG9iZS5jb20vbGln
-aHRyb29tLzEuMC8nPgogIDxscjpoaWVyYXJjaGljYWxTdWJqZWN0PgogICA8cmRm
-OkJhZz4KICAgIDxyZGY6bGk+Y2Fub24tNTUtMjUwPC9yZGY6bGk+CiAgICA8cmRm
-OmxpPm1vc2Nvdy1iaXJkczwvcmRmOmxpPgogICAgPHJkZjpsaT5zZXJib3I8L3Jk
-ZjpsaT4KICAgPC9yZGY6QmFnPgogIDwvbHI6aGllcmFyY2hpY2FsU3ViamVjdD4K
-IDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0
-PScnCiAgeG1sbnM6cGhvdG9zaG9wPSdodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rv
-c2hvcC8xLjAvJz4KICA8cGhvdG9zaG9wOkhpc3Rvcnk+PC9waG90b3Nob3A6SGlz
-dG9yeT4KICA8cGhvdG9zaG9wOkxlZ2FjeUlQVENEaWdlc3Q+MTEwN0I2RDFDNDM3
-NkFCM0ZENThDNTY5RDczNUE1RDg8L3Bob3Rvc2hvcDpMZWdhY3lJUFRDRGlnZXN0
-PgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJv
-dXQ9JycKICB4bWxuczp0aWZmPSdodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4w
-Lyc+CiAgPHRpZmY6Qml0c1BlclNhbXBsZT4KICAgPHJkZjpTZXE+CiAgICA8cmRm
-OmxpPjg8L3JkZjpsaT4KICAgIDxyZGY6bGk+ODwvcmRmOmxpPgogICAgPHJkZjps
-aT44PC9yZGY6bGk+CiAgIDwvcmRmOlNlcT4KICA8L3RpZmY6Qml0c1BlclNhbXBs
-ZT4KICA8dGlmZjpDb21wcmVzc2lvbj44PC90aWZmOkNvbXByZXNzaW9uPgogIDx0
-aWZmOkltYWdlTGVuZ3RoPjI1OTI8L3RpZmY6SW1hZ2VMZW5ndGg+CiAgPHRpZmY6
-SW1hZ2VXaWR0aD4zODg4PC90aWZmOkltYWdlV2lkdGg+CiAgPHRpZmY6UGhvdG9t
-ZXRyaWNJbnRlcnByZXRhdGlvbj4yPC90aWZmOlBob3RvbWV0cmljSW50ZXJwcmV0
-YXRpb24+CiAgPHRpZmY6UGxhbmFyQ29uZmlndXJhdGlvbj4xPC90aWZmOlBsYW5h
-ckNvbmZpZ3VyYXRpb24+CiAgPHRpZmY6U2FtcGxlc1BlclBpeGVsPjM8L3RpZmY6
-U2FtcGxlc1BlclBpeGVsPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNj
-cmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczp4bXA9J2h0dHA6Ly9ucy5hZG9i
-ZS5jb20veGFwLzEuMC8nPgogIDx4bXA6Q3JlYXRvclRvb2w+QWRvYmUgUGhvdG9z
-aG9wIExpZ2h0cm9vbTwveG1wOkNyZWF0b3JUb29sPgogIDx4bXA6TWV0YWRhdGFE
-YXRlPjIwMDktMTAtMDJUMjI6NTU6MjkrMDQ6MDA8L3htcDpNZXRhZGF0YURhdGU+
-CiAgPHhtcDpSYXRpbmc+NTwveG1wOlJhdGluZz4KIDwvcmRmOkRlc2NyaXB0aW9u
-PgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PScnCiAgeG1sbnM6eG1wTU09
-J2h0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8nPgogIDx4bXBNTTpJbnN0
-YW5jZUlEPnV1aWQ6QzZEN0NEREEzNUIxREUxMUIyQzhDRUQ5MUZDOTg1QjI8L3ht
-cE1NOkluc3RhbmNlSUQ+CiA8L3JkZjpEZXNjcmlwdGlvbj4KPC9yZGY6UkRGPgo8
-L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVu
-ZD0ndyc/Pv/bAEMAAgEBAQEBAgEBAQICAgICBAMCAgICBQQEAwQGBQYGBgUGBgYH
-CQgGBwkHBgYICwgJCgoKCgoGCAsMCwoMCQoKCv/bAEMBAgICAgICBQMDBQoHBgcK
-CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoK
-Cv/AABEIAEQAZAMBEQACEQEDEQH/xAAdAAACAgMBAQEAAAAAAAAAAAAFBggJAgMH
-BAEA/8QAUBAAAgEDAgQCBAgIBBcAAAAAAQIDBAURAAYHCBIhEzEJFEFRFSIjMmFx
-kbEWJkKBodHS01VytMIkMzRDREhSYmZ0dYKEkpOUoqSys8HD1P/EABwBAAEFAQEB
-AAAAAAAAAAAAAAYAAQIDBwUIBP/EAD8RAAECBAMCCQkIAgMBAAAAAAECEQADBCEF
-EjEGQSJRUmGRkrHR0gcTFBUWQlNxcjI0NUNigbLwI6EzgsHh/9oADAMBAAIRAxEA
-PwDsnPpz48fuWvjxTcOOGVpsFVbZ9v09c7XO3ySyrI8syMAUlQdOI1PcE5J74wAS
-4Ng1NiNMZkwqBCmszaA8R44FMdx2rwyrTLlBJBSDcF9SNxHFHLrf6Uvm8qx1T2HZ
-sQx5tbJv/o12Bsth/LV0jujhnbDEh7iOg+KCtL6TrmSODWz7KQ+1Vtc5P/f1L2Vw
-8+8vpHhiB2yxJNylHQrxQSpvSWcepO8rbbb+JZZh982n9lMP5S+lPhhvbPE+QjoV
-4o9y+kd444yYtvHv/Brj75dN7K4fyl9I8MOdssU5COhXijYPSN8bCF+TsHc/we/l
-/tdP7KUHKV0jww3tlifIR0K8UZH0jPGpV6j+DvfyHqT/ALzTeylByl9I8ML2yxPk
-I6D4o0zekh41pgKNu5/ye/7zT+ydByl9I8ML2yxNvsI6FeKPFU+kv49RA+FT7Zb3
-Zt8n73T+yeH8pfSPDC9ssU5COhXigfVelA5i4cmK37YP12yU/wDu0jsnh499fSPD
-De2eKchHQrxQJrvSs8zkGfV7ZtM+4NaZv3+m9lMO5S+keGJe2WJnRCOhXigJcPS8
-c2tN3hsOzf8AOs1R2+yo0x2Vw7lq6R4Ykna/FD7iOg+KLBeXrfN94ncC9o8RdzrA
-txvm3qWurlpoykayyxK7BFJJCgkgAknHmT56B6qUmRVTJadEqIvzFoP6OcqppJc1
-WqkgltLgGK9/TAXW50fNdQ01FUeGh2bRszKPjZ9YqRo22WvQK+o9ggD2vA9YoJPu
-DtVEdLBbbxfK2Ghp4quuqKiVY4YYEaRpHYgBFAzkk4AA9uiYqRLQVLLAavuECQSq
-YsJQHJsOc8UCubPideOVm92fhrbPgGr3BcbT6/Wyy1ZlSgDr8hD0RkI/VnqaQvj4
-uFKj5U55XbS1OIVBFCsolA/aYEqNrh9B+1wb8Q1HDNk6TDqUKxGWJk5QfKSWQGIu
-2p53sRbRyicHucfZ1rsFBtTjLe77JuWKvqYLzd6ixIlBGRIWQKYn6h0p2YGMYKE9
-TAnHbw7aOWE5Ks/JQYg/MDTmZ35oHsV2UnKX5yiFt6S4IZtCdXuS7NzxJPaNDSbz
-syXva18o7hSO46aiiIlUHAJUkE4buDg4Iz30USKmmqZYmSlBSTvBgNn01RSzDLnJ
-KVDcQYLx7ErG7FiT7ljH/nV5MUBtI+TbLqIstNQSY9rMqgfbntpAiHVbUR5ZtrxD
-I8FAceYcHv8AmOneEAHeBlftir6s0lxTz7Jkj9ekTDgXeF+60d/o84iZyD7JM/fq
-LRJ2ELlzuN0iz6zSP3+oaV4Tp1eANyvjdPSySJ9bZH6NVqiwNui5/k1fxOU3hvIT
-nq2Vbj/y6aybEfxCd9Su0xsmF/hkj6E9giEHpYXs45t6Ba+qpUkOzaQKJ5FDY9Yq
-fLOMnz9ujLZdhhyvrPYmAba9/WiG5A/kqI92Lj1w62Pu23Vdvp6q719DXQzx2+gi
-Z5JmVwwVWQYDEjAwSwJ8s9tdfEZcudh86VMVlSpKgTxAggn9td0cPC1zZeKSFy05
-lBaSE8ohQIGm82iPu6eGVx45c2/EPcHFmjuNos9JuOoh9fnDmW1UNG/qtLQ1CxU7
-hGio4IS7DKmNvGZ3RuoYScRlyKdCJR0AAvra5D3uX4ruGDNHolGHKn1C1zRZ3004
-gWto3HZi5eGDi/w34HU3Dav2pb+G1HPfEpqeawXahWsiRaZ38WKesRo4OiOSmQSo
-4cg9TydQUDXxSsQqkzAoLN9QW5tNX1u0ffNoaRcspygncR/o7m0OrQwcgPDm/bsu
-NVxAqd01UMN/kNFTG0T5MFOgRfFqq2ZFqIYMhWaRVMgWaDow3hxmddjlXhpCaZZS
-vjBy79+W3z3W4zFFPg1FiIeolhaf1AK3acIP/QNBEsty8se89s7KqeMnBHiHvOto
-KOxUV3uVj3XV1NbHTJN4vVJArwyNWFhDQmWOF2kp3rYU8Jlfw25lLtbj02oCvPrD
-MXBN+IEPoAXuGv8AOPpnbL4D6OZJkIILsCkWcByLWJ0dN+CDxQr7G4qXm/2Oeru1
-BRytR3KSi9ehplMVaEiikE8bAhWR0mjbAAZCxSRIpVkhj3rZDHjj1EpM0/5ZbBTb
-wXYtuNiCOMOOCRGA7Z7PJ2er0GT/AMcxykFnBS2ZOrkB0kEh75TwgY33PfNtnXDL
-CB5Y9VUfmz04/TovSgiA1SkwvXTcMNVJ4VFb1LH+9749+Pd9IOpAb4gW3QHuNbBH
-Hi43KKJm/rfjdTY/i98fo0xAETSXOsKN9vdBkx0aGXPmzDA+z26iQ0O92hTvANSx
-dQMnzHVqogaRaCdYul5MgRylcNgVx+JNt7e7+h01k2I/iE76ldpjZsM/DZH0J/iI
-gh6Y5qNuZyip907T+ErG+0KQVQiBEgPjVOQpUZJwBgHA7nJX2mOyyc2HrH6j2CAT
-bJZRiSCOQO1UR/4SvymbQuFNus2esgtlJTXCsr6K+yukTwU9vqallKsGTOISOzEj
-OQCwA1822xqJWzc1MsXUUixNnUO3RuePp8n4p5+00pUwsEhSg41ISeazPmd7NHJN
-k2PirsLjFUcWbPty/biS+3yqk3pYK+0VFFdqqCWsqIIRcYp1keop5HYxLUxRdMks
-5WqaEiMzYLVz5a5BlqWxABDlxpdiCL6EpJcNwApy3oWllqlTs+WxLG2U6sxB3PoQ
-Luc2Vg/VONN2uvHue0Wnh/b5amuuFdXVlikgr7cY7jQwOtZUU9HAtS8UdZAjsxkk
-pvFnSFyy07pKsnLpFzQkrmajWxOoAc2DgniLJO8hm6Vb5pNkaHeWGl+MsQONIJvY
-F3sH5CeVu67Js1v3xv8A2dZzaLBSV89VY7XVsZnmmhj9YnlgTrjmZR1xoAMyColC
-Rr8VW+Wrq0ozLUpwjnuWAvxM3GHJ3aRXLknIJY4JWbWsHOnZd2A4rx0PjBy5cAuc
-eCv4eLRLuWvoOIEDSXq2bsrKW6bXeKohqlX5NBU2+aRfAmQ+GydASRSY5Ax5UrFJ
-8ieyAFFb/a0KHUliCC7sQ4e4P7dFdPlpyZiijIkOBqFgBQIILWtZwSFMdQ8EpNs7
-o4brc9t3Hado25FcLhiooLftqjtolloKispViCQTPPM1M71UbVMkdP40clOGiDQq
-qbF5JEgY6vKoqHmSzuTdaDvAbiy3Ia5ctGXeWMyVYBKUlLKM0OH/AELvZwQbEHe9
-n1gJNWXC/grb7/SSfOReunOcjzHcZ+8a9C5LO0ebzNLs8B14e7lq5niqL7NGjZyk
-SdCEDzPl9H0aZRhIGr3gRXbOsNpmWCtuLO0qs0YlYHrA8yvfOBkfbqOZJLaxPKpn
-AtAmuS1whlgo/ig9iD56RIiKUmF2+VYRWMVF4Yxgl2Hcj2+WqiRFwBA0i5vkxJPK
-Tw1JGPxJtvb/AEdNZNiP4hO+tXaY2fC/wyR9Cf4iIA+mZp/Webe2eG9AJI9mUbgm
-ZYqkEVFVjDEqSp92QM5Oi/Zdhh63PvHsEA+14fEkWfgD+SoihvOHi9vbYtz2hPUW
-yeBqGeN6pZYaSal8VGiDhig6x0yFCQ5DKWUkhjrsYphtPitAqmWWdmOrEEEHv0JB
-IcRwcHxeswXEk1aLgOCNHBBBD9huxA1hHPPXxps+5dw7CvHC+w7vnsNXPVrX1FjV
-47PNUVMUzyyvTmKVz4pZHzK8rdDRgpH1RP592g2XpMOxEykVFrJJHBJs7WzCxLaB
-jq8ejsA2mr8Rw5M+ZT5SXUEm+W9laJfMA9ncQJ3Jzjbu3pxItu7eKtTHLdLNaram
-0aG3RmCgapimMcb+rYcUDyLDSxSPDKsSNErKJo2VTyDhaUSz6M7EnMT9rKACRuzM
-5IDOxbgm47frHzigmdqwYbnuxZnD2Buz3uLRbbymc8PDiLZ26Nq774sxbVt9BNb6
-jb9zt8c0M8MUsKytHTUqQTUbxgVLxiD5SQ1ECKD4Hq3QFzk1YWhE65Uzm5ZiSQSw
-BCrHSxvZjBIhUhSSuWAQHGUsAQdNDmBB57h9dI8vGbmS4WbC2Pum+WXYXEWn3Lsq
-WU8PVt0New3HaKcU1RSU96nr2ilqFjqJ6iVo5x4kMksvqDCUBzOgw8VVYnDwgnMz
-AWU7gAcEhSiVJYsyVcFChlGSIYjVqpKdVepSQwdRLMMqSVEAgpy5VaquBmU+ZjCP
-vDizwM5rOVW4c7vDiW8XHeW2qKmqL3ZIr1DO9qVppjLNULLAkr+IizANJGiStT0s
-nTFh/EK/JnVK2Oxf0OpmZ/NKUha05wmag6TBmJJNwpYKlZVukrKhmIj5QKIbVbOp
-XKSEKWhK0pIS8tYZ0WPBDghJ3pJLEWHPU4k7bqTBeq6y1Iepq5Kd6qkoY5GE2Siq
-sU1vp1mkZ1KeEjlgQ2SSB1erJU4TUFSSCN1zp83P72BGjWMeWqqmm08/LMSQbvYf
-PTKkXewBZrvpAjcW46SqV+mnqOnrWVfFiWjNSuARKqqVLjv8wKCPaT3GrgrSPmyB
-yW/v7QlXzclTVOa008CdYGAwLEYx+Tg4/Pk6lmGkNlLZnhVvd4n6nFVJUEFiW6Aw
-HfJwD2wPo9mO2qwzMItZQv2f0Qp3itpmbPRg5z/TgCPsOoEgQ6RMJi7LkrPVyicM
-2znOx7Ycg5/sZNZTiDenzm5Su0xsmGfhsj6E/wAREAvTJxifnAt8CrM7fgNSMUhb
-BCioqsnyPb6dFezS8lAq4HCOvyTAbtXLC8RRYngDT5q+cRVprdSSKYVhikjY945o
-0fOfPzH3aKkEbxAdMD2BLQN3/wAvPDzitbh8MWuCnrY06aO5Q0SNJAAMdJD5V0IO
-CjAjByMEAjn4jhlJiMshSQF7lMCQ1xqLjm6GN462FY1XYXMBSsmXvQ5AI3txGwuO
-K7ix59vvlB39LSQbe2hBt6qihUl7rW2elM7EBUVTFIhjAC5PUoBGSO4xgHmbM47S
-zwZHm1pO/JLTvOvBc8ep6dTqXtTs9WSSagzUKG7zk07hoygBxbuiHXY+1dqbc2Ee
-EnE2sqvhy0W9YoxYcHx6iVVxDErBQi9MqoXICIHYKGwFbKdraOqw/GJstbFQY2sL
-gK0AGj8VyI1PZXEqSvwiVMQFBJcBy5sSm5c8T6/7g/s7hrxVlv8AeN4b82na6ayW
-6rYJt2+SyNUXdgiU0kLVZfqijeJFpZJIwqOkkpVUL+MvEkY0mjkmXKSDMUAMyrhL
-KCgQlwCQRqXI0Co7lVhRrpgXMWUoQXCUlszgggm5a+6zgEpj5Fs7Z9y5gpuHNDXQ
-XJNty1TyVcdIyQStTtDGI4vjKI3EkqOex8Mw+GOssZFNPJJQSp2Jhc08JAK7hyov
-lBL7z9p7ktzwFeVfFJ9PhJTK0WQixsAzkc4YZSLC+9o7CtVcKG0JY6BqeKiUMFpo
-adY41DN1NgKB5nJPvPc69GcEElrn/wA7o84AEgAnR/8AevTAavrblBEtPDMgiiXE
-cfSAFHs7D79IsYdlBTwvXequErFJq5SR2JK5I9udRKt4iQAJu0LV2LyFllq5SMH5
-pA+7UCTFgAJZ4WbvSQgnrWTI7ks/mff5HOqzcaxIDLui8jkjAXk84YKD2GxLWB/u
-0esrxD7/ADvqV2mNfwx/Vsl+QnsEV7+mpqIqfnEtjT1ARfwHou2Rn+qavvor2aUr
-0JQA949ggO2qSj1gkqPujtVEXLdcQqqIpQcnuO3u0SJUreIFyENwTB+11buoLdCn
-3sfnasztaKzJCg7wbp66oADfEIB7fKg4+nGppWIiuWrjHSI55xktt12dfI+MO2rE
-lYIsG9QzxiVAqqFEzKWU+GEXD9LKVADdh1trM/KDs2uulnEKdOYgMsb2Gih8t/Nf
-QGNM8n+0aKJXq+oVlBPAJ0c6pd9504y43gQ07x5qbndNnC6bGnslJdYIqbx6+7YW
-jpAsgYdZZXMoPT4bKgLLG79ZQElsPGHyUT3WCxP7n5f/AH/cbZ6bMMngkOLudP3/
-AL0Qt8F73HureP4U2K/3Wpt1tinWSvmjjiiuMs5UsZFwH8TpjhyD5eEnkpSOPUfJ
-rhFcMUVWqdKEggs7F9EbnAfMdWISSxIJy7yj4rQ+rBSFlTFEEOzhi5XzEtl3OCW0
-MdTqb1G8WEdldfMGTIP1du2twzHfGHhAItrAq4XcLkPIPfgHtqJW8TCCNYA3O4LI
-3jJKrMSQCB3XyJ8/zfZqBXuMWCW4cQv3a4OVMQkBznGRqJO+LMpFoWLvWucjqXIz
-2ONQJieURepyPnPJxwuPv2Ha/wCSx6y6v+/zfqV2mNcw4Nh8kfpT2CK5PTjSpHzm
-2sMQfxCosKf8arNFOzaimiV9R7BAdtShK69L8kdpiKNrrnyiIcZP5J9+iPMYGcog
-/br7cIlWBah+g5JUSMB9ePt0/wDjJci8R/yANugtQ314ZAXCg98Ej9erQoERQQyr
-wWor3L+UVHf8ph+vTlSDDpTMBd4UL3wV2FuG4rNDNcrfAavx622Wi4eBSVpI6cSx
-gHC9PUvxChw7DPfQvVbIbP1NQJ5lZTvAsDpZt3/Vjd3e8FNHtlj1LIMnPnDWJuRr
-d9+r8JxYWa0O1tp7VYbfFZbLSpT08KYjiKnCj2/WT5knv7dENLLkUdOmTKSAlNgB
-p/d54zA9WLqK6oVOmLKlKuSf7YcQDACwtH6vrz3bwsqT87OdXiYnR4oMlYuRAa4X
-SIKekDHsJz207xFmgLcrijL1AgZGAPedReJgWhdulxRmYsAPZ3OQNROkTAcwv3S4
-plhGfM/SNQJi0JG6L6eRZg3JhwqYHz2Baf5LHrMq/wC/TfqV2mNVw/7hK+lPYIP8
-QOWrl84sbgG6+J/BbbO4bmtOsC195s0NTKsSklYw0ikhQWYhR2yxPmTqqVUVEkES
-1kDmJEWzaamnqCpiEqItcAwFXkj5PE+ZywbEH1bXpf2NWenVvxVdY98Ver6D4Keq
-O6Nq8mHKSieGnLZskKDnpG26fH/RpenVvxVdY98L1fQM3mk9Ud0ZDk15TR/a37K7
-f4OU/wCxpxX1w/NV1j3wxw3DjrJR1R3RkOTzlTUELy67NGfPG3oP2dP6wr/iq6x7
-4f1dh/wUdUd0Zx8onK3D3i5fNoJj+5sMA/m6ia6tOs1XWPfCTh2Hp0kp6o7oyXlI
-5X0YsvADaIJOSRYoPP8A1dMa2sP5iuse+HFBQguJSeqO6MJOULlZlOZeXrZ7H3tY
-ID/N04rq0aTVdY98I0FCdZSeqO6Nb8m/KfJ8/lx2Wc+/btP+zp/T68fmq6x74b1d
-h/wUdUd0YHkt5Rmz1ctOyDnzztqm7/8ABpGvrj+arrHvhersP+CjqjugDR+j65Wq
-agsVHU8Ktv1UloiVLhVT7QtHiXsiAxFqoJRqqEufGPq6wDrAAAjzGV6fXfFV1j3w
-vV2H/BT1R3R5I/RycrC2W3Wuo4bWOeooqdY6q5y7Lsfj3FhTSwmWYCgEasXkWoIi
-SNfEhQBREZInb06u+KrrHvh/QKH4SeqO6Oy7T2rY9kbcpNpbYt8VHbbfF4NBR08K
-Rx00IPxIkVAFVEXCqAOyqB9OvmJUpRJLkx9QCUpCQGAt0R//2Q=="</script>
-</head>
-<body>
-some content
-</body>
-</html>
\ No newline at end of file
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTML_head.html b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTML_head.html
deleted file mode 100644
index d098ad256..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTML_head.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<!DOCTYPE html>
-<head>
-  <meta charset="utf-8">
-  <meta http-equiv="x-dns-prefetch-control" content="on">
-  <meta name="viewport" id="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
-  <script src="https://tika.apache.org/logic0.js" async defer></script>
-  <script src="https://tika.apache.org/logic1.js" defer></script>
-  <script src="https://tika.apache.org/logic2.js" defer></script>
-  <link rel="stylesheet" href="https://tika.apache.org/style0.css">
-  <link rel="stylesheet" href="https://tika.apache.org/style1.css">
-  <link rel="stylesheet" href="https://tika.apache.org/style2.css">
-  <link rel="stylesheet" href="https://tika.apache.org/style3.css">
-  <link rel="stylesheet" href="https://tika.apache.org/style4.css">
-  <link rel="canonical" href="https://tika.apache.org/">
-  <link rel="mask-icon" sizes="any" href="https://tika.apache.org/images/tika.svg" color="#aaaaaa">
-  <link rel="icon" href="https://tika.apache.org/favicon.png">
-  <link rel="manifest" href="/manifest.json">
-  <meta name="application-name" content="Tika">
-  <meta name="referrer" content="origin">
-  <meta property="fb:app_id" content="111111111111">
-  <meta property="og:site_name" content="Tika">
-  <script src="https://tika.apache.org/logic3.js" defer></script>
-  <script src="https://tika.apache.org/logic4.js" defer></script>
-  <script src="https://tika.apache.org/logic5.js" defer></script>
-  <title>Apache Tika</title>
-  <link rel="alternate" hreflang="en" href="https://tika.apache.org/" />
-  <link rel="alternate" href="ios-app://111111111/tika/home" />
-  <link rel="alternate" href="android-app://org.apache/tika/" />
-</head>
-<body>
-</body>
-</html>
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTML_metadata.html b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTML_metadata.html
deleted file mode 100644
index c879441fa..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTML_metadata.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="UTF-8">
-    <meta name="description" content="Free Web tutorials">
-    <meta name="keywords" content="HTML,CSS,XML,JavaScript">
-    <meta name="author" content="John Doe">
-    <meta name="title" content="OldMetaTitle">
-    <meta name="viewport" content="width=device-width, initial-scale=1.0">
-</head>
-<body>
-
-<p>All meta information goes in the head section...</p>
-
-</body>
-</html>
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTML_metadata_two_titles.html b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTML_metadata_two_titles.html
deleted file mode 100644
index 654047f15..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTML_metadata_two_titles.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="UTF-8">
-    <title>ActualTitle</title>
-    <meta name="description" content="Free Web tutorials">
-    <meta name="keywords" content="HTML,CSS,XML,JavaScript">
-    <meta name="title" content="OldMetaTitle">
-    <meta name="author" content="John Doe">
-    <meta name="viewport" content="width=device-width, initial-scale=1.0">
-</head>
-<body>
-
-<p>All meta information goes in the head section...</p>
-
-</body>
-</html>
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTML_utf8.html b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTML_utf8.html
deleted file mode 100644
index 310181f73..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testHTML_utf8.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements.  See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You 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.
--->
-<html>
-	<head>
-		<title>Title : Tilte with UTF-8 chars öäå</title>	
-	</head>
-	<body>
-		<h1>Content with UTF-8 chars</h1>
-		<p>åäö</p>
-	</body>	
-</html>
\ No newline at end of file
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testSrcDoc.html b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testSrcDoc.html
deleted file mode 100644
index 8d33de7d8..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testSrcDoc.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements.  See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You 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.
--->
-<html>
-<body>
-outside
-<iframe srcdoc="<p>this is the iframe content</p>"></iframe>
-</body>
-</html>
\ No newline at end of file
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testUserDefinedCharset.mhtml b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testUserDefinedCharset.mhtml
deleted file mode 100644
index e64027f71..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testUserDefinedCharset.mhtml
+++ /dev/null
@@ -1,21 +0,0 @@
-From: <Saved by Windows Internet Explorer 8>
-Subject: Index Pages
-Date: Tue, 28 Aug 2012 09:53:28 +0300
-MIME-Version: 1.0
-Content-Type: multipart/related;
-	type="multipart/alternative";
-	boundary="----=_NextPart_000_0000_01CD8502.F991E790"
-X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157
-
-This is a multi-part message in MIME format.
-
-------=_NextPart_000_0000_01CD8502.F991E790
-Content-Type: multipart/alternative;
-	boundary="----=_NextPart_001_0023_01CD8502.F99DCE70"
-
-
-------=_NextPart_001_0023_01CD8502.F99DCE70
-Content-Type: text/html;
-	charset="x-user-defined"
-Content-Transfer-Encoding: quoted-printable
-
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testXHTML.html b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testXHTML.html
deleted file mode 100644
index a90c44ce6..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/testXHTML.html
+++ /dev/null
@@ -1,29 +0,0 @@
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements.  See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You 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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <title>XHTML test document</title>
-    <meta name="Author" content="Tika Developers"/>
-    <meta http-equiv="refresh" content="5"/>
-  </head>
-  <body>
-    <p>
-      This document tests the ability of Apache Tika to extract content
-      from an <a href="http://www.w3.org/TR/xhtml1/">XHTML document</a>.
-    </p>
-  </body>
-</html>
\ No newline at end of file
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/tika434.html b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/tika434.html
deleted file mode 100644
index f9c6e4e03..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-module/src/test/resources/test-documents/tika434.html
+++ /dev/null
@@ -1,914 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<title>Finger Lakes Vacation Rental | Breezy Cove Wonderful Finger Lakes Honey!</title>
-<meta name="description" content="Finger Lakes Vacation Rental at Rentalo.com. Finger Lake Area on Lamoka Lake. Only a 12-30 minute drive to Watkins Glenn, Keuka lake or the Wineries! Do you want to step back in time? Relax in comfort with out all the hustle & bustle!...New King Size Bed in the Sun Room, Plus 3 Bedrooms, Gas Gri. Property 1188" />
-<meta name="keywords" content="finger lakes vacation rentals, Finger Lakes Lodgings, finger lakes accommodations, Finger Lakes Weekly Rentals, Finger Lakes Short Term Rentals, vacation rentals in finger lakes, Private rentals in Finger Lakes, Lodging Rentals in Finger Lakes, Finger Lakes Vacation Property, Finger Lakes Vacation Stay, Finger Lakes Holiday Rentals, finger lakes rentals, Finger Lakes Rents, Finger Lakes Stay, Finger Lakes Property, finger lakes packages, finger lakes vacati [...]
-<meta name="author" content="Rentalo.com" />
-<meta name="robots" content="index,follow"/>
-<meta name="copyright" content="(c)Copyright 2009 Rentalo.com. All rights reserved." />
-<meta name="verify-v1" content="K78q+EJKMGIaUgZcUwNyOo7STm6+GxRrspClBPicwjM=" />
-<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.classify.org/safesurf/" labels generic true for "http://rentalo.com" ratings (SS~~000 1))' />
-<meta http-equiv="pics-Label" content='(pics-1.1 "http://www.icra.org/pics/vocabularyv03/" l gen true for "http://rentalo.com" r (n 3 s 3 v 3 l 3 oa 2 ob 2 oc 2 od 2 oe 2 of 2 og 2 oh 2 c 0) gen true for "http://www.rentalo.com" r (n 3 s 3 v 3 l 3 oa 2 ob 2 oc 2 od 2 oe 2 of 2 og 2 oh 2 c 0))' />
-<link rel="meta" href="http://rentalo.com/icraLabels.rdf" type="application/rdf+xml" title="ICRA labels" />
-
-<link href="http://i.rentalo.com/css/new/base-final.css" rel="stylesheet" type="text/css" />
-    <link href="http://i.rentalo.com/css/new-rentalo.css" rel="stylesheet" type="text/css" />
-	<link href="http://i.rentalo.com/css/overdiv.css" rel="stylesheet" type="text/css" />
-   <style type="text/css">
-  <!--
-  #content-box
-{	
-	margin-left: 10px;
-	padding-top: 5px;
-	padding-bottom: 10px;
-	width:970px;
-}
-
-   -->
-  </style>
-   
-
-
-        	<link href="http://i.rentalo.com/css/new/usertypes/traveler.css" rel="stylesheet" type="text/css" />
-
-
-<script type="text/javascript" src="http://i.rentalo.com/js/calendar/calendarUnified_compressed.js"></script>
-<script type="text/javascript" src="http://i.rentalo.com/js/validateFunctions_compressed.js"></script>
-
-
-
-
-
-
-
-
-
-
-    <link href="http://i.rentalo.com/css/new/Content/property-page.css" rel="stylesheet" type="text/css" />
-    <link href="http://i.rentalo.com/css/new/skins/default_skin.css" rel="stylesheet" type="text/css" />
-    
-    <link title="normal" href="http://i.rentalo.com/css/new/Content/property/normal-font.css" rel="stylesheet" type="text/css" />
-    <link title="big" href="http://i.rentalo.com/css/new/Content/property/big-font.css" rel="alternate stylesheet" type="text/css" />
-     
-		<script languaje="JavaScript" src="http://i.rentalo.com/js/ajax/ajax.js"></script>
-		<script languaje="JavaScript" src="http://i.rentalo.com/js/favoriteProperties.js"></script>
-		<script languaje="JavaScript">
-			window.onload = enableFavoritesLinks;
-		</script>
-   
-<script type="text/javascript" src="http://i.rentalo.com/js/validateFunctions.js"></script>
-<script type="text/javascript" src="http://i.rentalo.com/js/formFunctions.js"></script>
-<!-- for ImagesSlideShow component -->
-<link rel="stylesheet" href="http://i.rentalo.com/css/image-slideshow-5.css" type="text/css"/>
-<script type="text/javascript" src="http://i.rentalo.com/js/ajax/image-slideshow-5.js"></script>
-<script languaje="JavaScript">
-
-function addLoadEvent(func) {
-  var oldonload = window.onload;
-  if (typeof window.onload != 'function') {
-    window.onload = func;
-  } else {
-    window.onload = function() {
-      if (oldonload) {
-        oldonload();
-      }
-      func();
-    }
-  }
-}
-
-addLoadEvent(preloadImages);
-
-</script>
-<script type="text/javascript" src="http://i.rentalo.com/js/activeCSS.js"></script>
-    	<link rel="stylesheet" href="http://i.rentalo.com/css/new/modalbox.css" type="text/css" media="screen" />   
-    	<script type="text/javascript" src="http://i.rentalo.com/js/ajax/prototype.js"></script>
-		<script type="text/javascript" src="http://i.rentalo.com/js/ajax/scriptaculous/scriptaculous.js?load=builder,effects"></script>
-		<script type="text/javascript" src="http://i.rentalo.com/js/ajax/modalbox.js"></script>
-		<script type="text/javascript" src="http://i.rentalo.com/js/ezcalling.js"></script>
-		<link href="http://i.rentalo.com/css/new/ez-calling.css" rel="stylesheet" type="text/css" />
-
-</head>
-
-
-
-<body >
-<center>
-<!-- header -->
-<div id="header-09">
-	<div id="overDiv" style="position:absolute; visibility:hidden; z-index:1000;"></div>
-	<div class="head-1-09">
-	
-		<!-- banner -->
-		<div id="big-banner">
-		          	    	<script type="text/javascript"><!--
-    e9 = new Object();
-    e9.size = "728x90,468x60";
-    e9.noAd = 1;
-//--></script>
-<script type="text/javascript" src="http://tags.expo9.exponential.com/tags/Rentalo/ROS/tags.js"></script>
-
-		</div>
-		<!-- close banner -->
-	
-		<!-- logo -->
-		<div class="logo-09">
-		<a href="http://rentalo.com" title="Vacation Rentals, Hotels,  Bed &amp; Breakfasts">
-			  <img src="/g/new-home/new-rentalo-logo.png" alt="rentalo logo" width="225" height="56" border="0" />
-			</a><br />
-				 		<div class="slogan_home">The Easy Way to Find Vacation Rentals, Hotels and Bed and Breakfasts</div>
-
-		</div>
-		<!-- close logo09 -->
-		
-	<form id="form1S" name="form1S" method="post" action="/web/common/search_location.cgi" onsubmit="return validateAdvanceSearch();" style="display: block; float:left; margin-top: 8px; width:auto">
-
-	<!-- Barra -->
-	<div class="user-btns">
-		<div class="search-b">
-			<div class="search-box-09">
-		  		<input type="text" id="keywordAS" name="keyword" class="search-in" onfocus="this.value == 'Enter Destination or Rentalo ID' ? this.value='' : ''" onblur="this.value=='' ? this.value='Enter Destination or Rentalo ID' : ''" value="Enter Destination or Rentalo ID" />
-			</div>
-			<div id="advancebtn" class="close-adv"><a href="#" id="openAdvSrch" onclick="this.style.display='none'; document.getElementById('advancedSearchDiv').style.display='block'; return false;"><img src="/g/header-footer-09/advanced-travelers-close.jpg" alt="advance-closed" border="0" /></a>
-			</div>
-		</div>
-		<input name="submit" class="search-btn-09" value="" type="submit" />
-		<div class="division">&nbsp;</div>
-		<div class="icon-img">&nbsp;</div>
-		<span class="welcome-login">
-			    <strong>&nbsp;</strong> 
-	<span class="traveler-log">&nbsp;</span>
-
-			
-		</span> 
-		<div class="box-r-btns">
-			<div class="division">&nbsp;</div>
-				<div class="home-09-btn">
-					<center><a href="http://rentalo.com/">Home</a></center>
-				</div>
-				
-				<div class="division">&nbsp;</div>
-				<div class="sign-09-btn"><a href="http://rentalo.com/docs/help.html ">Help</a></div>
-				
-				<div class="division">&nbsp;</div>
-                <div class="help-09-btn"><a href="http://rentalo.com/web/common/login.cgi">Sign in</a></div>
-                
-                <div class="division">&nbsp;</div><div class="help-09-btn"><a href="http://rentalo.com/web/client/Payments/step1.cgi">Add Listing</a></div>
-		</div>
-	</div>
-
-				<div class="adv-box-1" style="display: none;" id="advancedSearchDiv">
-  			<div class="adv-box">
-  				
-				<div class="box-availability">
-					<table border="0" cellspacing="4" cellpadding="0">
-					<tr>
-						<td>From</td>
-						<td width="70">
-							<input id="BInquiryArrivalButton" type="text" name="from" class="from-box" value="mm/dd/yyyy" />
-						</td>
-	    				<td>To</td>
-	    				<td width="89">
-							<input id="BDepartureDateButton" type="text" name="to" class="from-box" value="mm/dd/yyyy" />
-	    				</td>
-	    			</tr>
-	  				<tr>
-	  					<td>Adults</td>
-	    				<td>
-	    					<select name="adults" class="from-box-2">
-								<option value='' ></option>
-								<option value='1' >1</option>
-<option value='2' >2</option>
-<option value='3' >3</option>
-<option value='4' >4</option>
-<option value='5' >5</option>
-<option value='6' >6</option>
-<option value='7' >7</option>
-<option value='8' >8</option>
-<option value='9' >9</option>
-<option value='10' >10</option>
-<option value='11' >11</option>
-<option value='12' >12</option>
-<option value='13' >13</option>
-<option value='14' >14</option>
-<option value='15' >15</option>
-<option value='16' >16</option>
-<option value='17' >17</option>
-<option value='18' >18</option>
-<option value='19' >19</option>
-<option value='20' >20</option>
-<option value='21' >21</option>
-<option value='22' >22</option>
-<option value='23' >23</option>
-<option value='24' >24</option>
-<option value='25' >25</option>
-<option value='26' >26</option>
-<option value='27' >27</option>
-<option value='28' >28</option>
-<option value='29' >29</option>
-<option value='30' >30</option>
-<option value='45' >45</option>
-<option value='60' >60</option>
-<option value='75' >75</option>
-<option value='90' >90</option>
-<option value='120' >120</option>
-<option value='180' >180</option>
-
-		    				</select>
-						</td>
-	    				<td>Children</td>
-	    				<td>
-							<select name="children" class="from-box-2">
-      							<option value='' ></option>
-	      						<option value='0' >0</option>
-<option value='1' >1</option>
-<option value='2' >2</option>
-<option value='3' >3</option>
-<option value='4' >4</option>
-<option value='5' >5</option>
-<option value='6' >6</option>
-<option value='7' >7</option>
-<option value='8' >8</option>
-<option value='9' >9</option>
-<option value='10' >10</option>
-<option value='11' >11</option>
-<option value='12' >12</option>
-<option value='13' >13</option>
-<option value='14' >14</option>
-<option value='15' >15</option>
-<option value='16' >16</option>
-<option value='17' >17</option>
-<option value='18' >18</option>
-<option value='19' >19</option>
-<option value='20' >20</option>
-<option value='21' >21</option>
-<option value='22' >22</option>
-<option value='23' >23</option>
-<option value='24' >24</option>
-<option value='25' >25</option>
-<option value='26' >26</option>
-<option value='27' >27</option>
-<option value='28' >28</option>
-<option value='29' >29</option>
-<option value='30' >30</option>
-<option value='45' >45</option>
-<option value='60' >60</option>
-<option value='75' >75</option>
-<option value='90' >90</option>
-<option value='120' >120</option>
-<option value='180' >180</option>
-
-								</select>    
-							</td>
-		 				</tr>
-				  		</table>
-					</div>	
-					
-					<div class="option-3-box">
-						<table width="100%" border="0" cellspacing="0" cellpadding="0">
-			  				<tr>
-		
-		    				  <td width="21"><input type="checkbox" name="propertytype" id="vacation-rentals-check" value="1000" checked="checked" /></td>
-		
-								<td width="92">Vacation Rentals</td>
-		
-								<td width="20"><input type="checkbox" name="propertytype" id="hotels-check" value="1004"  checked="checked" /></td>
-		
-								<td width="50">Hotels</td>
-							  <td width="20"><input type="checkbox" name="propertytype" id="bread-breakfast-check" value="1003" checked="checked" /></td>
-								<td width="86">Bed &amp; Breakfast </td>
-		
-							</tr>
-		
-						</table>
-					</div>
-					
-					<div class="btn-box-adv">
-				<a href="#" id="closeAdvSrch" onclick="document.getElementById('openAdvSrch').style.display='block'; document.getElementById('advancedSearchDiv').style.display='none'; return false;" ><img src="/g/header-footer-09/btn-adv-abierto.gif" alt="advance search close" width="170" height="10" border="0"/></a>
-			</div>	
-				
-				<script type="text/javascript">
-			<!--
-				Calendar.setup({inputField:"BInquiryArrivalButton", button:"InquiryArrivalButton",singleClick: true,ifFormat:"%m/%d/%Y",dateStatusFunc:GreaterToday});
-				Calendar.setup({inputField:"BDepartureDateButton",button:"DepartureDateButton",singleClick: true,ifFormat:"%m/%d/%Y",dateStatusFunc:GreaterToday});
-			   		
-    		-->
-    		</script>
-			</div>
-						
-		</div>	
-
-
-
-	<!-- Close Barra -->
-	</form>
-
-	</div> <!-- close header-1-09 -->
-</div>
-<!-- close header -->
-
-
-   <div id="content">
-   
-   
-   
-   
-   
-   
-   
-    
-    <!-- menus for aplications -->
-    
-    <div id="navigation-bar"><a href="http://rentalo.com/vacation-rentals/usa/" title="United States">United States</a> &#62; <a href="http://rentalo.com/vacation-rentals/newyork/" title="New York">New York</a> &#62; <a href="http://rentalo.com/vacation-rentals/fingerlakes/" title="Finger Lakes">Finger Lakes</a> &#62; Breezy Cove Wonderful Finger Lakes Honey!<div class="clear"></div></div>
-    <!-- fish bounds* --> 
-    
-    <!-- content box -->
-    <div id="content-box">
-
-		
-
-     	
-     		
-     			<table width="79" border="0" cellpadding="0" cellspacing="0">
-		  <tr>
-		    <td>
-		    <img src="http://i.rentalo.com/g/property-page/text-size-1.jpg" alt="text size " width="48" height="16" /></td>
-		    <td><a href="http://rentalo.com/1135/breezycove.html" onclick="activeCSS('normal','big');return false;"><img src="http://i.rentalo.com/g/property-page/text-size-2.jpg" alt="text size 2" width="12" height="16" border="0" /></a></td>
-		    <td><a href="http://rentalo.com/1135/breezycove.html" onclick="activeCSS('big','normal');return false;"><img src="http://i.rentalo.com/g/property-page/text-size-3.jpg" alt="text size 3" width="19" height="16" border="0" /></a></td>
-		  	<td>&nbsp;</td>
-		  	<td>
-		  	<!-- AddThis Button BEGIN -->
-					<script type="text/javascript">addthis_pub  = 'rentalo';</script>
-					<a href="http://www.addthis.com/bookmark.php" onmouseover="return addthis_open(this, '', 'http://rentalo.com/1135/breezycove.html', '')" onmouseout="addthis_close()" onclick="return addthis_sendto()"><img src="http://s9.addthis.com/button1-bm.gif" width="125" height="16" border="0" alt="" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script>
-			<!-- AddThis Button END -->
-		  	</td>
-		  </tr>
-		</table>
-		
-		<div class="header-skin"></div>
-
-	<div class="titles-p"><span class="titles-1-pp">Breezy Cove Wonderful Finger Lakes Honey! <span class="titles-2-pp">Vacation Rental</span><span class="titles-3-pp"> </span></span> 	<span class="number-id">ID#1135</span>
- </div>
-	
-	<div class="first-description">
-	Finger Lake Area on Lamoka Lake. Only a 12-30 minute drive to Watkins Glenn, Keuka lake or the Wineries!
Do you want to step back in time? Relax in comfort with out all the hustle & bustle!
-	</div>
-				<div class="first-info">
-					<div class="corner-contact">
-						<div class="contact-owner-btn">
-							<div class="call-1800"></div>
-							<div class="btn-contact-big">
-								<a href="http://rentalo.com/1135/breezycove.html#info">Contact Owner</a>
-							</div>
-						</div>
-					</div>
-		<div class="info-1">&nbsp;</div>
-			<div class="info-2">Lodging Type: Vacation Rental<br />Sleeps: <strong>10</strong>    Bedrooms: <strong>3</strong>  Bathrooms: <strong>1.5</strong> </div>
-			<div class="info-3">
-&nbsp;</div></div><span class="bottom">&nbsp;</span><div class="btns-zone-2">		<div class="btn-send-friend"><div class="btn-series"><a href="http://rentalo.com/properties/email/breezy_cove_wonderful_finger_lakes_honey.html">Send to a Friend</a></div></div>
-		<div class="btn-send-friend"><div class="btn-series"><a id="linkFav-1188"  onclick="addFavorite(1188); return false;" class="favorites-icon" href="#">Add to favorites</a></div></div>
-</div>	<!-- Start of slideshow markup -->
-<div class="pics-zone" style="background: white;">
-<a name="images"></a>	
-<div id="DHTMLgoodies_panel_one">
-	<div id="DHTMLgoodies_thumbs">
-		<div id="DHTMLgoodies_thumbs_inner"> <!-- This is where you put your small thumbnails  This is the div for one vertical strip of images -->
-			<div class="strip_of_thumbnails">
-									<div><a href="http://i.rentalo.com/images/Finger-Lakes-Vacation-Rentals-p_1188_7828622l.jpg" onclick="showImage('http://i.rentalo.com/images/Finger-Lakes-Vacation-Rentals-p_1188_7828622l.jpg',this, 0);return false;"><img src="http://i.rentalo.com/images/Finger-Lakes-Vacation-Rentals-p_1188_7828622t.jpg" alt="Large Private Cottage facing Lamoka Lake ,"/></a><br /><span class="pic-description" style="display: block">Large Private Cottage facing Lamoka Lake ,</span></div>
-						<div><a href="http://i.rentalo.com/images/Finger-Lakes-Vacation-Rentals-p_1188_1340644l.jpg" onclick="showImage('http://i.rentalo.com/images/Finger-Lakes-Vacation-Rentals-p_1188_1340644l.jpg',this, 1);return false;"><img src="http://i.rentalo.com/images/Finger-Lakes-Vacation-Rentals-p_1188_1340644t.jpg" alt="Fully Stocked Kitchen, in the heart of  Wineries."/></a><br /><span class="pic-description" style="display: block">Fully Stocked Kitchen, in the heart of  Wineries.</span></div>
-						<div><a href="http://i.rentalo.com/images/Finger-Lakes-Vacation-Rentals-p_1188_6801809l.jpg" onclick="showImage('http://i.rentalo.com/images/Finger-Lakes-Vacation-Rentals-p_1188_6801809l.jpg',this, 2);return false;"><img src="http://i.rentalo.com/images/Finger-Lakes-Vacation-Rentals-p_1188_6801809t.jpg" alt="All 3 bedrooms are nicely papered & painted."/></a><br /><span class="pic-description" style="display: block">All 3 bedrooms are nicely papered & painted.</span></div>
-
-			</div>
-			<div class="strip_of_thumbnails">
-									<div><a href="http://i.rentalo.com/images/Finger-Lakes-Vacation-Rentals-p_1188_4199354l.jpg" onclick="showImage('http://i.rentalo.com/images/Finger-Lakes-Vacation-Rentals-p_1188_4199354l.jpg',this, 3);return false;"><img src="http://i.rentalo.com/images/Finger-Lakes-Vacation-Rentals-p_1188_4199354t.jpg" alt="Love Sunsets? Best bass fishing spot on the lake!"/></a><br /><span class="pic-description" style="display: block">Love Sunsets? Best bass fishing spot on the lake!</span></div>
-						<div><a href="http://i.rentalo.com/images/Finger-Lakes-Vacation-Rentals-p_1188_6487912l.jpg" onclick="showImage('http://i.rentalo.com/images/Finger-Lakes-Vacation-Rentals-p_1188_6487912l.jpg',this, 4);return false;"><img src="http://i.rentalo.com/images/Finger-Lakes-Vacation-Rentals-p_1188_6487912t.jpg" alt="Near Watkins Glenn Falls [above] Hammonsport &More"/></a><br /><span class="pic-description" style="display: block">Near Watkins Glenn Falls [above] Hammonsport &More</span></div>
-						<div><img width="140" height="105" alt="comming soon" src="http://i.rentalo.com/g/property-page/more-pic-comming-soon.jpg"/><br /><span class="pic-description" style="display: block"></span></div>
-
-			</div>
-			<div class="strip_of_thumbnails">
-									<div><img width="140" height="105" alt="comming soon" src="http://i.rentalo.com/g/property-page/more-pic-comming-soon.jpg"/><br /><span class="pic-description" style="display: block"></span></div>
-						<div><img width="140" height="105" alt="comming soon" src="http://i.rentalo.com/g/property-page/more-pic-comming-soon.jpg"/><br /><span class="pic-description" style="display: block"></span></div>
-						<div><img width="140" height="105" alt="comming soon" src="http://i.rentalo.com/g/property-page/more-pic-comming-soon.jpg"/><br /><span class="pic-description" style="display: block"></span></div>
-
-			</div>
-		</div><!-- End where you put your small thumbnails -->
-	</div>
-	<!-- Arrow images - You can change the "src", but not the "id" -->
-	<div id="DHTMLgoodies_arrows">
-		<img id="DHTMLgoodies_leftArrow" alt="left" class="leftArrow" src="http://i.rentalo.com/g/property-page/slider-back.jpg"/>
-		<img id="DHTMLgoodies_rightArrow" alt="right" class="rightArrow" src="http://i.rentalo.com/g/property-page/slider-next2.jpg"/>
-	</div>
-</div>
-<div id="DHTMLgoodies_largeImage">
-	<!-- Table is used to get both vertical and horizontal center alignment -->
-	<table>
-		<tbody><tr>
-			<td>
-				<!-- The intial shown image -->
-				<img src="http://i.rentalo.com/images/Finger-Lakes-Vacation-Rentals-p_1188_7828622l.jpg" alt="Large Private Cottage facing Lamoka Lake ,"/>
-			</td>
-		</tr>
-	</tbody></table>
-</div>
-	<div id="playerControls" style="width:480px; height: 25px; color:#999999; padding-left:10px">
-			<img src="http://i.rentalo.com/g/property-page/slider-preview.jpg" onclick="previous();" alt="Previous" style="cursor: pointer" align="middle"/>
-			<img id="playButtom" onclick="clickPlayButtom();" src="http://i.rentalo.com/g/property-page/slider-play.jpg" alt="Play/Stop" style="cursor: pointer" align="middle"/>
-			<img onclick="next();" src="http://i.rentalo.com/g/property-page/slider-next.jpg" alt="Next" style="cursor: pointer" align="middle"/>
-			<span id="playIndex" style="margin-left: 200px">1</span><span> / 5</span>
-	</div>
-
-<script type="text/javascript">
-	initGalleryScript();	// Initialize script
-</script>
-</div>
-<!-- Large image div -->
-<div class="btns-zone-2">		<div class="btn-send-friend"><div class="btn-series"><a href="http://rentalo.com/properties/email/breezy_cove_wonderful_finger_lakes_honey.html">Send to a Friend</a></div></div>
-		<div class="btn-send-friend"><div class="btn-series"><a id="linkFav-1188"  onclick="addFavorite(1188); return false;" class="favorites-icon" href="#">Add to favorites</a></div></div>
-		<div class="btn-contact"><div class="btn-series2"><a href="http://rentalo.com/1135/breezycove.html#info">Contact Owner</a></div></div>
-</div>	<div class="titles-p"><span class="titles-1-pp">Features &amp; Amenities of <span class="titles-2-pp">Breezy Cove Wonderful Finger Lakes Honey! </span><span class="titles-3-pp"> Vacation Rental</span></span>  </div>
-	
-    		<div class="description-property">
-            	New King Size Bed in the Sun Room, Plus 3 Bedrooms,
Gas Grill,
Fire Pit,
Cannoe,
Dock, &
Lawn Furniture
-            </div>
-	<div class="titles-p"><span class="titles-1-pp">Nearby Attractions of <span class="titles-2-pp">Breezy Cove Wonderful Finger Lakes Honey! </span><span class="titles-3-pp"> Vacation Rental</span></span>  </div>
-	
-    		<div class="description-property">
-            	Watkins Glenn Speedway & Falls,
Finger Lake Wineries,All The beautiful Finger Lakes,
Hammondsport,
Corning Glass Museum,
Remington Museum,
Wright Brothers Flying Museum,& The
Kueka Maid Cruise Paddle Boat and so much more!
-            </div>
-	<div class="titles-p"><span class="titles-1-pp">Send email Inquiry for <span class="titles-2-pp">Breezy Cove Wonderful Finger Lakes Honey! </span><span class="titles-3-pp"> Vacation Rental</span></span> <a name="info"></a> </div>
-	
-        <div class="contact-box">
-        
-			<div class="table-form">
-        		<form action="/web/traveler/validateform.cgi" method="post" name="contacInfoForm" id="contacInfoForm" onsubmit="return validateContactInfoForm('email');">
-
-	  <table width="900" border="0" cellspacing="2" cellpadding="0">
-        <tr>
-          <td width="144" class="tit-form-1">Type your Name*</td>
-
-          <td width="158"><input name="Name" id="Name" type="text" value="" class="from-i" /></td>
-          <td width="62" class="tit-form-1">Arrival</td>
-          <td width="102">
-          	<input class="from-1" name="ArrivalDate" id="InquiryArrival" type="text" value="mm/dd/yyyy" />
-          	<img src="http://i.rentalo.com/g/calendar.gif" border="0" id="ArrivalDateButton" style="cursor: pointer;" alt="Click here to Pick up the Date"></img>
-          
-          </td>
-          <td width="5">&nbsp;</td>
-          <td width="70" class="tit-form-1">Departure</td>
-          <td width="111">
-          <input class="from-1" name="DepartureDate" id="InquiryDeparture" type="text" value="mm/dd/yyyy"  />
-          <img src="http://i.rentalo.com/g/calendar.gif" border="0" id="DepartureDateButton" style="cursor: pointer;" alt="Click here to Pick up the Date"></img>
- 
-           </td>
-
-          <td width="56">&nbsp;</td>
-          <td width="172" colspan="2" rowspan="7"><img src="http://i.rentalo.com/g/property-page/rentalo-recommended.jpg" alt="rentalo is recommended by. National geografic traveler, Travel leisure, The New York Times" width="127" height="164" /></td>
-          </tr>
-        <tr>
-          <td class="tit-form-1">Email Address*</td>
-          <td><input class="from-i" name="Email" type="text" id="Email" value=""  maxlength="50" /></td>
-          <td class="tit-form-1">Adults</td>
-          <td>
-          <select name="Adults" class="from-2-inquiry">
-            <option value='1' >1</option>
-<option value='2' selected="selected">2</option>
-<option value='3' >3</option>
-<option value='4' >4</option>
-<option value='5' >5</option>
-<option value='6' >6</option>
-<option value='7' >7</option>
-<option value='8' >8</option>
-<option value='9' >9</option>
-<option value='10' >10</option>
-
-          </select>
-          </td>
-          <td>&nbsp;</td>
-          <td class="tit-form-1">Children</td>
-          <td>
-          <select name="Children" class="from-2-inquiry">
-          	<option value='0' >0</option>
-<option value='1' >1</option>
-<option value='2' >2</option>
-<option value='3' >3</option>
-<option value='4' >4</option>
-<option value='5' >5</option>
-<option value='6' >6</option>
-<option value='7' >7</option>
-<option value='8' >8</option>
-<option value='9' >9</option>
-<option value='10' >10</option>
-
-          </select>
-          </td>
-
-          <td>&nbsp;</td>
-          </tr>
-        <tr>
-          <td>&nbsp;</td>
-          <td class="privacy">
-          	<a href="javascript:openpopups('/docs/privacy.html');">Privacy Policy</a>
-          </td>
-          <td>&nbsp;</td>
-          <td>&nbsp;</td>
-          <td>&nbsp;</td>
-
-          <td>&nbsp;</td>
-          <td>&nbsp;</td>
-          <td>&nbsp;</td>
-          </tr>
-        <tr>
-          <td class="from-c">Telephone Number</td>
-          <td>&nbsp;</td>
-          <td class="tit-form-1">Comments</td>
-
-          <td colspan="4" rowspan="2">
-          	<textarea name="Comments" class="from-b" rows="2" cols="80"></textarea>
-          	
-          </td>
-          <td>&nbsp;</td>
-          </tr>
-        <tr>
-          <td class="tit-form-1">Country Code*</td>
-          <td>
-          	<select class="from-3-inquiry" name="countryCodePhone" id="countryCodePhone">
-          		            <option value="0">Select country or region...</option>
-            <optgroup label="Top 10 destinations">
-            <option value="1" >United States (1)</option>
-            <option value="1" >Canada (1)</option>
-            <option value="44" >United Kingdom (44)</option>
-            <option value="86" >China (86)</option>
-            <option value="886" >Taiwan (886)</option>
-            <option value="33" >France (33)</option>
-            <option value="49" >Germany (49)</option>
-            <option value="39" >Italy (39)</option>
-            <option value="34" >Spain (34)</option>
-            <option value="48" >Poland (48)</option>
-            <option value="55" >Brazil (55)</option>
-            </optgroup>
-            <optgroup label="All destinations">
-            <option value="93" >Afghanistan (93)</option>
-            <option value="355" >Albania (355)</option>
-            <option value="213" >Algeria (213)</option>
-            <option value="376" >Andorra (376)</option>
-            <option value="244" >Angola (244)</option>
-            <option value="1264" >Anguilla (1264)</option>
-            <option value="268" >Antigua Barbuda (268)</option>
-            <option value="54" >Argentina (54)</option>
-            <option value="374" >Armenia (374)</option>
-            <option value="297" >Aruba (297)</option>
-            <option value="247" >Ascension (247)</option>
-            <option value="61" >Australia (61)</option>
-            <option value="672" >Australian Ex Territories (672)</option>
-            <option value="43" >Austria (43)</option>
-            <option value="994" >Azerbaijan (994)</option>
-            <option value="242" >Bahamas (242)</option>
-            <option value="973" >Bahrain (973)</option>
-            <option value="880" >Bangladesh (880)</option>
-            <option value="246" >Barbados (246)</option>
-            <option value="375" >Belarus (375)</option>
-            <option value="32" >Belgium (32)</option>
-            <option value="501" >Belize (501)</option>
-            <option value="229" >Benin (229)</option>
-            <option value="441" >Bermuda (441)</option>
-            <option value="975" >Bhutan (975)</option>
-            <option value="591" >Bolivia (591)</option>
-            <option value="387" >Bosnia and Herzegovina (387)</option>
-            <option value="267" >Botswana (267)</option>
-            <option value="673" >Brunei Darussalam (673)</option>
-            <option value="359" >Bulgaria (359)</option>
-            <option value="226" >Burkina Faso (226)</option>
-            <option value="257" >Burundi (257)</option>
-            <option value="855" >Cambodia (855)</option>
-            <option value="237" >Cameroon (237)</option>
-            <option value="238" >Cape Verde (238)</option>
-            <option value="345" >Cayman Islands (345)</option>
-            <option value="236" >Central Africa (236)</option>
-            <option value="235" >Chad (235)</option>
-            <option value="56" >Chile (56)</option>
-            <option value="57" >Colombia (57)</option>
-            <option value="269" >Comoros and Mayotte (269)</option>
-            <option value="242" >Congo (242)</option>
-            <option value="243" >Congo Dem Rep (243)</option>
-            <option value="682" >Cook Islands (682)</option>
-            <option value="506" >Costa Rica (506)</option>
-            <option value="225" >Cote D'Ivoire (225)</option>
-            <option value="385" >Croatia (385)</option>
-            <option value="53" >Cuba (53)</option>
-            <option value="357" >Cyprus (357)</option>
-            <option value="420" >Czech Republic (420)</option>
-            <option value="45" >Denmark (45)</option>
-            <option value="246" >Diego Garcia (246)</option>
-            <option value="253" >Djibouti (253)</option>
-            <option value="767" >Dominica (767)</option>
-            <option value="809" >Dominican Republic (809)</option>
-            <option value="670" >East Timor (670)</option>
-            <option value="593" >Ecuador (593)</option>
-            <option value="20" >Egypt (20)</option>
-            <option value="503" >El Salvador (503)</option>
-            <option value="240" >Equatorial Guinea (240)</option>
-            <option value="291" >Eritrea (291)</option>
-            <option value="372" >Estonia (372)</option>
-            <option value="251" >Ethiopia (251)</option>
-            <option value="500" >Falkland Islands (500)</option>
-            <option value="298" >Faroe Islands (298)</option>
-            <option value="679" >Fiji (679)</option>
-            <option value="358" >Finland (358)</option>
-            <option value="594" >French Guiana (594)</option>
-            <option value="689" >French Polynesia (689)</option>
-            <option value="241" >Gabon (241)</option>
-            <option value="220" >Gambia (220)</option>
-            <option value="995" >Georgia (995)</option>
-            <option value="233" >Ghana (233)</option>
-            <option value="350" >Gibraltar (350)</option>
-            <option value="30" >Greece (30)</option>
-            <option value="299" >Greenland (299)</option>
-            <option value="1473" >Grenada (1473)</option>
-            <option value="590" >Guadeloupe (590)</option>
-            <option value="671" >Guam (671)</option>
-            <option value="502" >Guatemala (502)</option>
-            <option value="224" >Guinea (224)</option>
-            <option value="245" >Guinea Bissau (245)</option>
-            <option value="592" >Guyana (592)</option>
-            <option value="509" >Haiti (509)</option>
-            <option value="504" >Honduras (504)</option>
-            <option value="852" >Hong Kong (852)</option>
-            <option value="36" >Hungary (36)</option>
-            <option value="354" >Iceland (354)</option>
-            <option value="91" >India (91)</option>
-            <option value="62" >Indonesia (62)</option>
-            <option value="98" >Iran (98)</option>
-            <option value="964" >Iraq (964)</option>
-            <option value="353" >Ireland (353)</option>
-            <option value="972" >Israel (972)</option>
-            <option value="876" >Jamaica (876)</option>
-            <option value="81" >Japan (81)</option>
-            <option value="962" >Jordan (962)</option>
-            <option value="7" >Kazakhstan (7)</option>
-            <option value="254" >Kenya (254)</option>
-            <option value="686" >Kiribati (686)</option>
-            <option value="850" >Korea Dem People's Rep (850)</option>
-            <option value="82" >Korea Republic of (82)</option>
-            <option value="965" >Kuwait (965)</option>
-            <option value="996" >Kyrgyzstan (996)</option>
-            <option value="856" >Laos PDR (856)</option>
-            <option value="371" >Latvia (371)</option>
-            <option value="961" >Lebanon (961)</option>
-            <option value="266" >Lesotho (266)</option>
-            <option value="231" >Liberia (231)</option>
-            <option value="218" >Libya (218)</option>
-            <option value="423" >Liechtenstein (423)</option>
-            <option value="370" >Lithuania (370)</option>
-            <option value="352" >Luxembourg (352)</option>
-            <option value="853" >Macao (853)</option>
-            <option value="389" >Macedonia (389)</option>
-            <option value="261" >Madagascar (261)</option>
-            <option value="265" >Malawi (265)</option>
-            <option value="60" >Malaysia (60)</option>
-            <option value="960" >Maldives (960)</option>
-            <option value="223" >Mali (223)</option>
-            <option value="356" >Malta (356)</option>
-            <option value="692" >Marshall Islands (692)</option>
-            <option value="596" >Martinique (596)</option>
-            <option value="222" >Mauritania (222)</option>
-            <option value="230" >Mauritius (230)</option>
-            <option value="52" >Mexico (52)</option>
-            <option value="691" >Micronesia (691)</option>
-            <option value="373" >Moldova (373)</option>
-            <option value="377" >Monaco (377)</option>
-            <option value="976" >Mongolia (976)</option>
-            <option value="3818" >Montenegro (3818)</option>
-            <option value="664" >Montserrat (664)</option>
-            <option value="212" >Morocco (212)</option>
-            <option value="258" >Mozambique (258)</option>
-            <option value="95" >Myanmar (95)</option>
-            <option value="264" >Namibia (264)</option>
-            <option value="674" >Nauru (674)</option>
-            <option value="977" >Nepal (977)</option>
-            <option value="31" >Netherlands (31)</option>
-            <option value="599" >Netherlands Antilles (599)</option>
-            <option value="687" >New Caledonia (687)</option>
-            <option value="64" >New Zealand (64)</option>
-            <option value="505" >Nicaragua (505)</option>
-            <option value="227" >Niger (227)</option>
-            <option value="234" >Nigeria (234)</option>
-            <option value="683" >Niue Islands (683)</option>
-            <option value="670" >Northern Mariana (670)</option>
-            <option value="47" >Norway (47)</option>
-            <option value="968" >Oman (968)</option>
-            <option value="92" >Pakistan (92)</option>
-            <option value="680" >Palau (680)</option>
-            <option value="970" >Palestinian Authority (970)</option>
-            <option value="507" >Panama (507)</option>
-            <option value="675" >Papua New Guinea (675)</option>
-            <option value="595" >Paraguay (595)</option>
-            <option value="51" >Peru (51)</option>
-            <option value="63" >Philippines (63)</option>
-            <option value="351" >Portugal (351)</option>
-            <option value="1939" >Puerto Rico (1939)</option>
-            <option value="974" >Qatar (974)</option>
-            <option value="262" >Reunion (262)</option>
-            <option value="40" >Romania (40)</option>
-            <option value="7513" >Russia (7513)</option>
-            <option value="250" >Rwanda (250)</option>
-            <option value="684" >Samoa American (684)</option>
-            <option value="685" >Samoa Western (685)</option>
-            <option value="378" >San Marino (378)</option>
-            <option value="239" >Sao Tome and Principe (239)</option>
-            <option value="966" >Saudi Arabia (966)</option>
-            <option value="221" >Senegal (221)</option>
-            <option value="381" >Serbia (381)</option>
-            <option value="248" >Seychelles (248)</option>
-            <option value="232" >Sierra Leone (232)</option>
-            <option value="65" >Singapore (65)</option>
-            <option value="421" >Slovakia (421)</option>
-            <option value="386" >Slovenia (386)</option>
-            <option value="677" >Solomon Islands (677)</option>
-            <option value="252" >Somalia (252)</option>
-            <option value="27" >South Africa (27)</option>
-            <option value="94" >Sri Lanka (94)</option>
-            <option value="290" >St Helena (290)</option>
-            <option value="869" >St Kitts and Nevis (869)</option>
-            <option value="1758" >St Lucia (1758)</option>
-            <option value="508" >St Pierre and Miquelon (508)</option>
-            <option value="1784" >St Vincent Grenadines (1784)</option>
-            <option value="249" >Sudan (249)</option>
-            <option value="597" >Suriname (597)</option>
-            <option value="268" >Swaziland (268)</option>
-            <option value="46" >Sweden (46)</option>
-            <option value="41" >Switzerland (41)</option>
-            <option value="963" >Syria (963)</option>
-            <option value="992" >Tajikistan (992)</option>
-            <option value="255" >Tanzania (255)</option>
-            <option value="66" >Thailand (66)</option>
-            <option value="228" >Togo (228)</option>
-            <option value="690" >Tokelau (690)</option>
-            <option value="676" >Tonga (676)</option>
-            <option value="1868" >Trinidad and Tobago (1868)</option>
-            <option value="216" >Tunisia (216)</option>
-            <option value="90" >Turkey (90)</option>
-            <option value="993" >Turkmenistan (993)</option>
-            <option value="1649" >Turks and Caicos (1649)</option>
-            <option value="688" >Tuvalu (688)</option>
-            <option value="256" >Uganda (256)</option>
-            <option value="380" >Ukraine (380)</option>
-            <option value="971" >United Arab Emirates (971)</option>
-            <option value="598" >Uruguay (598)</option>
-            <option value="998" >Uzbekistan (998)</option>
-            <option value="678" >Vanuatu (678)</option>
-            <option value="379" >Vatican City (379)</option>
-            <option value="58" >Venezuela (58)</option>
-            <option value="84" >Vietnam (84)</option>
-            <option value="284" >Virgin Islands British (284)</option>
-            <option value="1340" >Virgin Islands United States (1340)</option>
-            <option value="681" >Wallis and Futuna (681)</option>
-            <option value="967" >Yemen (967)</option>
-            <option value="260" >Zambia (260)</option>
-            <option value="263" >Zimbabwe (263)</option>
-            </optgroup>
-
-          	</select>          
-          </td>
-
-          <td>&nbsp;</td>
-          <td>&nbsp;</td>
-          </tr>
-        <tr>
-          <td class="tit-form-1">Area code &amp; Number*</td>
-          <td>
-          	<input class="from-i" name="Phone" type="text" id="Phone" value="" maxlength="50" />
-          </td>
-          <td>&nbsp;</td>
-          <td colspan="4" rowspan="2">
-          <input type="submit" class="send-btn" name="Inquiry" value=" " />
-          </td>
-          <td>&nbsp;</td>
-        </tr>
-    			<tr>
-          			<td colspan="2">
-          				    			
-               <input name="SimilarProperties" type="hidden" value="1">
-                <span>
-                <span class="error">Important:</span><br/>
-                Rentalo currently does not have availability information on this property.
-				We will attempt to contact the owner on your behalf. Additionally, we will send your inquiry to similar properties in the area.
-                </span>
-
-          			</td>
-          			<td>&nbsp;</td>
-          			<td>&nbsp;</td>
-        		</tr>
-      </table>  
-       	       	<input name="LocationID" type="hidden" value="1113" />
-	        <input name="InquiryForm" type="hidden" value="LOCATION" />
-	        <input name="PropertyID" type="hidden" value="1188" />
-	        <input name="type" type="hidden" value="email" />
-	        <input name="PrivateInquiryType" type="hidden" value="1" />
-	        <input name="ControlSimilarProperties" type="hidden" value="1" />
-        
-
-    	</form>
-<script type="text/javascript">
-<!--
-  Calendar.setup({inputField:"InquiryArrival",button:"ArrivalDateButton",singleClick: true,ifFormat:"%m/%d/%Y",dateStatusFunc:GreaterToday});
-  Calendar.setup({inputField:"InquiryDeparture",button:"DepartureDateButton",singleClick: true,ifFormat:"%m/%d/%Y",dateStatusFunc:GreaterToday});
-
-var myPopup
-
-    function openpopups(pag){
-
-        myPopup = window.open(pag,"mywin","resizable=yes,width=1000,height=400,scrollbars=yes,left=100,top=100");
-
-        myPopup.focus();
-
-    } 
-
--->
-</script>
-    	</div>
-    	</div>
-			<div class="text-com"><a href="http://rentalo.com/properties/review/breezy_cove_wonderful_finger_lakes_honey.html" title="See or add comments on this vacation rental property">
-            See all comments / Add a comment</a></div>
-            
-<div class="footer-skin"></div>        <div class="description-property">
-        <br />
-        <div style="font-family: Arial, Helvetica, sans-serif; font-size:16px; color:#32527A; text-align: left; font-weight:bold; padding-left: 18px;">Finger Lakes Travel and Lodging Related Links</div>
-        <div style="text-align:center">
-            <script type="text/javascript"><!--                
-                google_hints = "Finger Lakes hotel, Finger Lakes hotels, hotels in Finger Lakes, hotel in Finger Lakes";
-                google_ad_client = "pub-0760210188181615";
-                google_ad_width = 728;
-                google_ad_height = 90;
-                google_ad_format = "728x90_as";
-                google_ad_type = "text_image";
-                google_ad_channel ="";
-                google_color_border = "FF8800";
-                google_color_bg = "FFFFDD";
-                google_color_link = "32527A";
-                google_color_text = "000000";
-                google_color_url = "3D81EE";
-            //--></script>
-            <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
-        </div>
-        <br />
-        </div>
-
-     	
-
-     	<div class="recommended">Rentalo certified &amp; recommended by:</div>
-		<div class="recommended-pic">
-			&nbsp;
-		</div>
-	  	<span id="bottom">&nbsp;</span> 
-  	</div>
-  	<!-- end content box -->
-  	
-  </div> 
-  <!-- close content -->
-  
-
-
-<!-- footer -->
-<div class="footer-09">
-	<div class="footer-up">
-		<div id="links-footer-09">
-	  		<a href="http://rentalo.com/docs/help.html" title="Having problems finding a vacation rental or advertising in this site? Let us help you">About us</a>  
-	  		| <a href="http://rentalo.com/docs/press.html" title="News about travel industry">News</a>
-	  		| <a href="http://rentalo.com/testimonial.html" title="Rentalo's largest vacation rental directory site map">Testimonials</a>
-	  		| <a href="http://rentalo.com/docs/affiliates_programs.html" title="Learn about our available affiliates">Affiliate Programs</a>
-	  		| <a href="http://rentalo.com/docs/contact_us.html" title="Contact us">Contact us</a>
-	  		<br/>
-	  		<a href="http://rentalo.com/" title="Vacation Rentals">vacation rentals</a>
-	  		| <a href="http://rentalo.com/" title="Hotels">hotels</a>
-	  		| <a href="http://rentalo.com/" title="Bed and Breakfasts">bed and breakfasts</a>
-	  		| <a href="http://rentalo.com/" title="Lodging">lodging</a>
-	  		| <a href="http://rentalo.com/" title="Accommodations">accommodations</a>
-	  		| <a href="http://rentalo.com/vacation-guide/" title="Vacation Guide">vacation guide</a>
-	  		<br/><br/>
-			Use of this Web site constitutes acceptance of the Rentalo.com  
-			<a href="http://rentalo.com/docs/disclaimer.html" title="Check out Rentalo's vacation rental directory legal issues" rel="nofollow">Legal</a>
-			 and 
- 			<a href="http://rentalo.com/docs/privacy.html" title="Check out Rentalo's vacation rental directory Privacy Policies" rel="nofollow">Privacy Policy</a>.
- 			<br/>
-			&copy; Copyright 1999-Present Rentalo.com, Inc. All rights reserved.
-	  	</div>
-	  </div>
-	  <div class="footer-trav"></div>
-</div>
-<!-- close footer -->
-
-
-</center>
-    <script src="http://www.google-analytics.com/urchin.js" type="text/javascript"></script>
-	<script type="text/javascript">
-		_uacct = "UA-204827-1";
-		_udn="rentalo.com";
-		urchinTracker();
-	</script>
-
-
-</body>
-</html>
-<!-- cache 1 -->
\ No newline at end of file
diff --git a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-package/pom.xml b/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-package/pom.xml
deleted file mode 100644
index 751519866..000000000
--- a/tika-parsers/tika-parsers-extended/tika-parser-tagsoup-package/pom.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <groupId>org.apache.tika</groupId>
-    <artifactId>tika-parsers-extended</artifactId>
-    <version>3.0.0-SNAPSHOT</version>
-    <relativePath>../pom.xml</relativePath>
-  </parent>
-
-  <artifactId>tika-parser-tagsoup-package</artifactId>
-  <name>Apache Tika Tagsoup-based HTML parser package</name>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-jar-plugin</artifactId>
-        <configuration>
-          <archive>
-            <manifestEntries>
-              <Automatic-Module-Name>org.apache.tika.parser.html.tagsoup</Automatic-Module-Name>
-            </manifestEntries>
-          </archive>
-        </configuration>
-        <executions>
-          <execution>
-            <goals>
-              <goal>test-jar</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <artifactId>maven-shade-plugin</artifactId>
-        <version>${maven.shade.version}</version>
-        <executions>
-          <execution>
-            <phase>package</phase>
-            <goals>
-              <goal>shade</goal>
-            </goals>
-            <configuration>
-              <createDependencyReducedPom>
-                false
-              </createDependencyReducedPom>
-              <filters>
-                <filter>
-                  <artifact>*:*</artifact>
-                  <excludes>
-                    <exclude>META-INF/*.SF</exclude>
-                    <exclude>META-INF/*.DSA</exclude>
-                    <exclude>META-INF/*.RSA</exclude>
-                    <exclude>META-INF/DEPENDENCIES</exclude>
-                    <exclude>META-INF/MANIFEST.MF</exclude>
-                  </excludes>
-                </filter>
-              </filters>
-              <transformers>
-                <transformer implementation="org.apache.maven.plugins.shade.resource.ApacheNoticeResourceTransformer">
-                  <addHeader>false</addHeader>
-                </transformer>
-                <transformer implementation="org.apache.maven.plugins.shade.resource.ApacheLicenseResourceTransformer" />
-
-                <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
-                <transformer implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer">
-                  <resource>META-INF/LICENSE</resource>
-                  <file>target/classes/META-INF/LICENSE</file>
-                </transformer>
-              </transformers>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-
-</project>
\ No newline at end of file