<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- Generated by Apache Maven Doxia at Aug 20, 2018 -->
<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>Project Dependencies</title>
    <style type="text/css" media="all">
      @import url("./css/maven-base.css");
      @import url("./css/maven-theme.css");
      @import url("./css/site.css");
    </style>
    <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
    <meta name="Date-Revision-yyyymmdd" content="20180820" />
    <meta http-equiv="Content-Language" content="en" />
        
        </head>
  <body class="composite">
    <div id="banner">
                      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="breadcrumbs">
            
        
                <div class="xleft">
        <span id="publishDate">Last Published: 2018-08-20</span>
                  &nbsp;| <span id="projectVersion">Version: 1.39.0</span>
                      </div>
            <div class="xright">        
        
      </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="leftColumn">
      <div id="navcolumn">
             
        
                                      <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
        <img class="poweredBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
      </a>
                   
        
            </div>
    </div>
    <div id="bodyColumn">
      <div id="contentBox">
        <a name="Project_Dependencies"></a>
<div class="section">
<h2>Project Dependencies<a name="Project_Dependencies"></a></h2><a name="Project_Dependencies_compile"></a>
<div class="section">
<h3>compile<a name="compile"></a></h3>
<p>The following is a list of compile dependencies for this project. These dependencies are required to compile and run the application:</p>
<table border="0" class="bodyTable">
<tr class="a">
<th>GroupId</th>
<th>ArtifactId</th>
<th>Version</th>
<th>Type</th>
<th>License</th></tr>
<tr class="b">
<td>com.google.http-client</td>
<td><a class="externalLink" href="https://github.com/google/google-http-java-client/google-http-client">google-http-client</a></td>
<td>1.39.0</td>
<td>jar</td>
<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
</table></div><a name="Project_Dependencies_test"></a>
<div class="section">
<h3>test<a name="test"></a></h3>
<p>The following is a list of test dependencies for this project. These dependencies are only required to compile and run unit tests for the application:</p>
<table border="0" class="bodyTable">
<tr class="a">
<th>GroupId</th>
<th>ArtifactId</th>
<th>Version</th>
<th>Type</th>
<th>License</th></tr>
<tr class="b">
<td>com.google.guava</td>
<td><a class="externalLink" href="https://github.com/google/guava/guava">guava</a></td>
<td>26.0-android</td>
<td>jar</td>
<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
<tr class="a">
<td>com.google.http-client</td>
<td><a class="externalLink" href="https://github.com/google/google-http-java-client/google-http-client-test">google-http-client-test</a></td>
<td>1.39.0</td>
<td>jar</td>
<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
<tr class="b">
<td>junit</td>
<td><a class="externalLink" href="http://junit.org">junit</a></td>
<td>4.8.2</td>
<td>jar</td>
<td><a class="externalLink" href="http://www.opensource.org/licenses/cpl1.0.txt">Common Public License Version 1.0</a></td></tr></table></div></div><a name="Project_Transitive_Dependencies"></a>
<div class="section">
<h2>Project Transitive Dependencies<a name="Project_Transitive_Dependencies"></a></h2>
<p>The following is a list of transitive dependencies for this project. Transitive dependencies are the dependencies of the project dependencies.</p><a name="Project_Transitive_Dependencies_compile"></a>
<div class="section">
<h3>compile<a name="compile"></a></h3>
<p>The following is a list of compile dependencies for this project. These dependencies are required to compile and run the application:</p>
<table border="0" class="bodyTable">
<tr class="a">
<th>GroupId</th>
<th>ArtifactId</th>
<th>Version</th>
<th>Type</th>
<th>License</th></tr>
<tr class="b">
<td>com.google.code.findbugs</td>
<td><a class="externalLink" href="http://findbugs.sourceforge.net/">jsr305</a></td>
<td>3.0.2</td>
<td>jar</td>
<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
<tr class="a">
<td>com.google.j2objc</td>
<td><a class="externalLink" href="https://github.com/google/j2objc/">j2objc-annotations</a></td>
<td>1.1</td>
<td>jar</td>
<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
<tr class="b">
<td>commons-codec</td>
<td><a class="externalLink" href="http://commons.apache.org/codec/">commons-codec</a></td>
<td>1.6</td>
<td>jar</td>
<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
<tr class="a">
<td>commons-logging</td>
<td><a class="externalLink" href="http://commons.apache.org/proper/commons-logging/">commons-logging</a></td>
<td>1.2</td>
<td>jar</td>
<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
<tr class="b">
<td>org.apache.httpcomponents</td>
<td><a class="externalLink" href="http://hc.apache.org/httpcomponents-client">httpclient</a></td>
<td>4.5.3</td>
<td>jar</td>
<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
<tr class="a">
<td>org.apache.httpcomponents</td>
<td><a class="externalLink" href="http://hc.apache.org/httpcomponents-core-ga">httpcore</a></td>
<td>4.4.6</td>
<td>jar</td>
<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr></table></div></div><a name="Project_Dependency_Graph"></a>
<div class="section">
<h2>Project Dependency Graph<a name="Project_Dependency_Graph"></a></h2><script language="javascript" type="text/javascript">
      function toggleDependencyDetail( divId, imgId )
      {
        var div = document.getElementById( divId );
        var img = document.getElementById( imgId );
        if( div.style.display == '' )
        {
          div.style.display = 'none';
          img.src='./images/icon_info_sml.gif';
        }
        else
        {
          div.style.display = '';
          img.src='./images/close.gif';
        }
      }
</script>
<a name="Dependency_Tree"></a>
<div class="section">
<h3>Dependency Tree<a name="Dependency_Tree"></a></h3>
<ul>
<li>com.google.http-client:google-http-client-jackson:jar:1.39.0 <img id="_img1" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep0', '_img1' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep0" style="display:none">
<table border="0" class="bodyTable">
<tr class="a">
<th>Jackson extensions to the Google HTTP Client Library for Java.</th></tr>
<tr class="b">
<td>
<p><b>Description: </b>Sonatype helps open source projects to set up Maven repositories on https://oss.sonatype.org/</p>
<p><b>URL: </b><a class="externalLink" href="https://github.com/google/google-http-java-client/google-http-client-jackson">https://github.com/google/google-http-java-client/google-http-client-jackson</a></p>
<p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div>
<ul>
<li>com.google.http-client:google-http-client:jar:1.39.0 (compile) <img id="_img3" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep2', '_img3' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep2" style="display:none">
<table border="0" class="bodyTable">
<tr class="a">
<th>Google HTTP Client Library for Java</th></tr>
<tr class="b">
<td>
<p><b>Description: </b>Google HTTP Client Library for Java. Functionality that works on all supported Java platforms,
    including Java 5 (or higher) desktop (SE) and web (EE), Android, and Google App Engine.</p>
<p><b>URL: </b><a class="externalLink" href="https://github.com/google/google-http-java-client/google-http-client">https://github.com/google/google-http-java-client/google-http-client</a></p>
<p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div>
<ul>
<li>com.google.code.findbugs:jsr305:jar:3.0.2 (compile) <img id="_img5" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep4', '_img5' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep4" style="display:none">
<table border="0" class="bodyTable">
<tr class="a">
<th>FindBugs-jsr305</th></tr>
<tr class="b">
<td>
<p><b>Description: </b>JSR305 Annotations for Findbugs</p>
<p><b>URL: </b><a class="externalLink" href="http://findbugs.sourceforge.net/">http://findbugs.sourceforge.net/</a></p>
<p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li>
<li>org.apache.httpcomponents:httpclient:jar:4.5.3 (compile) <img id="_img7" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep6', '_img7' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep6" style="display:none">
<table border="0" class="bodyTable">
<tr class="a">
<th>Apache HttpClient</th></tr>
<tr class="b">
<td>
<p><b>Description: </b>Apache HttpComponents Client</p>
<p><b>URL: </b><a class="externalLink" href="http://hc.apache.org/httpcomponents-client">http://hc.apache.org/httpcomponents-client</a></p>
<p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div>
<ul>
<li>org.apache.httpcomponents:httpcore:jar:4.4.6 (compile) <img id="_img9" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep8', '_img9' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep8" style="display:none">
<table border="0" class="bodyTable">
<tr class="a">
<th>Apache HttpCore</th></tr>
<tr class="b">
<td>
<p><b>Description: </b>Apache HttpComponents Core (blocking I/O)</p>
<p><b>URL: </b><a class="externalLink" href="http://hc.apache.org/httpcomponents-core-ga">http://hc.apache.org/httpcomponents-core-ga</a></p>
<p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li>
<li>commons-logging:commons-logging:jar:1.2 (compile) <img id="_img11" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep10', '_img11' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep10" style="display:none">
<table border="0" class="bodyTable">
<tr class="a">
<th>Apache Commons Logging</th></tr>
<tr class="b">
<td>
<p><b>Description: </b>Apache Commons Logging is a thin adapter allowing configurable bridging to other,
    well known logging systems.</p>
<p><b>URL: </b><a class="externalLink" href="http://commons.apache.org/proper/commons-logging/">http://commons.apache.org/proper/commons-logging/</a></p>
<p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li>
<li>commons-codec:commons-codec:jar:1.6 (compile) <img id="_img13" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep12', '_img13' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep12" style="display:none">
<table border="0" class="bodyTable">
<tr class="a">
<th>Commons Codec</th></tr>
<tr class="b">
<td>
<p><b>Description: </b>The codec package contains simple encoder and decoders for
     various formats such as Base64 and Hexadecimal.  In addition to these
     widely used encoders and decoders, the codec package also maintains a
     collection of phonetic encoding utilities.</p>
<p><b>URL: </b><a class="externalLink" href="http://commons.apache.org/codec/">http://commons.apache.org/codec/</a></p>
<p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li></ul></li>
<li>com.google.j2objc:j2objc-annotations:jar:1.1 (compile) <img id="_img15" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep14', '_img15' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep14" style="display:none">
<table border="0" class="bodyTable">
<tr class="a">
<th>J2ObjC Annotations</th></tr>
<tr class="b">
<td>
<p><b>Description: </b>A set of annotations that provide additional information to the J2ObjC
    translator to modify the result of translation.</p>
<p><b>URL: </b><a class="externalLink" href="https://github.com/google/j2objc/">https://github.com/google/j2objc/</a></p>
<p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li></ul></li>
<li>com.google.http-client:google-http-client-test:jar:1.39.0 (test) <img id="_img17" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep16', '_img17' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep16" style="display:none">
<table border="0" class="bodyTable">
<tr class="a">
<th>Shared classes used for testing of artifacts in the Google HTTP Client Library for Java.</th></tr>
<tr class="b">
<td>
<p><b>Description: </b>Sonatype helps open source projects to set up Maven repositories on https://oss.sonatype.org/</p>
<p><b>URL: </b><a class="externalLink" href="https://github.com/google/google-http-java-client/google-http-client-test">https://github.com/google/google-http-java-client/google-http-client-test</a></p>
<p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li>
<li>junit:junit:jar:4.8.2 (test) <img id="_img19" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep18', '_img19' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep18" style="display:none">
<table border="0" class="bodyTable">
<tr class="a">
<th>JUnit</th></tr>
<tr class="b">
<td>
<p><b>Description: </b>JUnit is a regression testing framework. It is used by the developer who implements unit tests in Java.</p>
<p><b>URL: </b><a class="externalLink" href="http://junit.org">http://junit.org</a></p>
<p><b>Project License: </b><a class="externalLink" href="http://www.opensource.org/licenses/cpl1.0.txt">Common Public License Version 1.0</a></p></td></tr></table></div></li>
<table border="0" class="bodyTable">
<tr class="a">
<th>Jackson</th></tr>
<tr class="b">
<td>
<p><b>Description: </b>Jackson is a high-performance JSON processor (parser, generator)</p>
<p><b>URL: </b><a class="externalLink" href="http://jackson.codehaus.org">http://jackson.codehaus.org</a></p>
<p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li>
<li>com.google.guava:guava:jar:26.0-android (test) <img id="_img23" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep22', '_img23' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep22" style="display:none">
<table border="0" class="bodyTable">
<tr class="a">
<th>Guava: Google Core Libraries for Java</th></tr>
<tr class="b">
<td>
<p><b>Description: </b>Guava is a suite of core and expanded libraries that include
    utility classes, google's collections, io classes, and much
    much more.

    Guava has only one code dependency - javax.annotation,
    per the JSR-305 spec.</p>
<p><b>URL: </b><a class="externalLink" href="https://github.com/google/guava/guava">https://github.com/google/guava/guava</a></p>
<p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li></ul></li></ul></div></div><a name="Licenses"></a>
<div class="section">
<h2>Licenses<a name="Licenses"></a></h2>
<p><b>Apache License, Version 2.0: </b>Apache HttpClient, Apache HttpCore</p>
<p><b>Common Public License Version 1.0: </b>JUnit</p>
<p><b>The Apache Software License, Version 2.0: </b>Apache Commons Logging, Commons Codec, FindBugs-jsr305, Google HTTP Client Library for Java, Guava: Google Core Libraries for Java, J2ObjC Annotations, Jackson, Jackson extensions to the Google HTTP Client Library for Java., Shared classes used for testing of artifacts in the Google HTTP Client Library for Java.</p></div><a name="Dependency_File_Details"></a>
<div class="section">
<h2>Dependency File Details<a name="Dependency_File_Details"></a></h2>
<table border="0" class="bodyTable">
<tr class="a">
<th>Filename</th>
<th>Size</th>
<th>Entries</th>
<th>Classes</th>
<th>Packages</th>
<th>JDK Rev</th>
<th>Debug</th></tr>
<tr class="b">
<td>jsr305-3.0.2.jar</td>
<td>19.47 kB</td>
<td>46</td>
<td>35</td>
<td>3</td>
<td>1.5</td>
<td>debug</td></tr>
<tr class="a">
<td>guava-26.0-android.jar</td>
<td>2.33 MB</td>
<td>1,844</td>
<td>1,814</td>
<td>18</td>
<td>1.6</td>
<td>debug</td></tr>
<tr class="b">
<td>google-http-client-1.39.0.jar</td>
<td>261.81 kB</td>
<td>223</td>
<td>200</td>
<td>16</td>
<td>1.6</td>
<td>debug</td></tr>
<tr class="a">
<td>google-http-client-test-1.39.0.jar</td>
<td>51.73 kB</td>
<td>59</td>
<td>49</td>
<td>2</td>
<td>1.6</td>
<td>debug</td></tr>
<tr class="b">
<td>j2objc-annotations-1.1.jar</td>
<td>8.58 kB</td>
<td>23</td>
<td>12</td>
<td>1</td>
<td>1.5</td>
<td>debug</td></tr>
<tr class="a">
<td>commons-codec-1.6.jar</td>
<td>227.32 kB</td>
<td>218</td>
<td>76</td>
<td>6</td>
<td>1.5</td>
<td>debug</td></tr>
<tr class="b">
<td>commons-logging-1.2.jar</td>
<td>60.38 kB</td>
<td>42</td>
<td>28</td>
<td>2</td>
<td>1.2</td>
<td>debug</td></tr>
<tr class="a">
<td>junit-4.8.2.jar</td>
<td>231.78 kB</td>
<td>267</td>
<td>230</td>
<td>30</td>
<td>1.5</td>
<td>debug</td></tr>
<tr class="b">
<td>httpclient-4.5.3.jar</td>
<td>730.27 kB</td>
<td>507</td>
<td>466</td>
<td>24</td>
<td>1.6</td>
<td>debug</td></tr>
<tr class="a">
<td>httpcore-4.4.6.jar</td>
<td>316.23 kB</td>
<td>282</td>
<td>252</td>
<td>17</td>
<td>1.6</td>
<td>debug</td></tr>
<tr class="a">
<th>Total</th>
<th>Size</th>
<th>Entries</th>
<th>Classes</th>
<th>Packages</th>
<th>JDK Rev</th>
<th>Debug</th></tr>
<tr class="b">
<td>11</td>
<td>4.41 MB</td>
<td>3,648</td>
<td>3,283</td>
<td>127</td>
<td>1.6</td>
<td>11</td></tr>
<tr class="a">
<td>compile: 8</td>
<td>compile: 1.81 MB</td>
<td>compile: 1,478</td>
<td>compile: 1,190</td>
<td>compile: 77</td>
<td>-</td>
<td>compile: 8</td></tr>
<tr class="b">
<td>test: 3</td>
<td>test: 2.61 MB</td>
<td>test: 2,170</td>
<td>test: 2,093</td>
<td>test: 50</td>
<td>-</td>
<td>test: 3</td></tr></table></div><a name="Dependency_Repository_Locations"></a>
<div class="section">
<h2>Dependency Repository Locations<a name="Dependency_Repository_Locations"></a></h2>
<table border="0" class="bodyTable">
<tr class="a">
<th>Repo ID</th>
<th>URL</th>
<th>Release</th>
<th>Snapshot</th></tr>
<tr class="b">
<td>apache.snapshots</td>
<td><a class="externalLink" href="http://repository.apache.org/snapshots">http://repository.apache.org/snapshots</a></td>
<td>-</td>
<td>Yes</td></tr>
<tr class="a">
<td>sonatype-nexus-snapshots</td>
<td><a class="externalLink" href="https://oss.sonatype.org/content/repositories/snapshots">https://oss.sonatype.org/content/repositories/snapshots</a></td>
<td>-</td>
<td>Yes</td></tr>
<tr class="b">
<td>central</td>
<td><a class="externalLink" href="https://repo.maven.apache.org/maven2">https://repo.maven.apache.org/maven2</a></td>
<td>Yes</td>
<td>-</td></tr></table>
<p>Repository locations for each of the Dependencies.</p>
<table border="0" class="bodyTable">
<tr class="a">
<th>Artifact</th>
<th>apache.snapshots</th>
<th>sonatype-nexus-snapshots</th>
<th>central</th></tr>
<tr class="b">
<td>com.google.code.findbugs:jsr305:jar:3.0.2</td>
<td>-</td>
<td>-</td>
<td>-</td></tr>
<tr class="a">
<td>com.google.guava:guava:jar:26.0-android</td>
<td>-</td>
<td>-</td>
<td>-</td></tr>
<tr class="b">
<td>com.google.http-client:google-http-client:jar:1.39.0</td>
<td>-</td>
<td>-</td>
<td>-</td></tr>
<tr class="a">
<td>com.google.http-client:google-http-client-test:jar:1.39.0</td>
<td>-</td>
<td>-</td>
<td>-</td></tr>
<tr class="b">
<td>com.google.j2objc:j2objc-annotations:jar:1.1</td>
<td>-</td>
<td>-</td>
<td>-</td></tr>
<tr class="a">
<td>commons-codec:commons-codec:jar:1.6</td>
<td>-</td>
<td>-</td>
<td>-</td></tr>
<tr class="b">
<td>commons-logging:commons-logging:jar:1.2</td>
<td>-</td>
<td>-</td>
<td>-</td></tr>
<tr class="a">
<td>junit:junit:jar:4.8.2</td>
<td>-</td>
<td>-</td>
<td>-</td></tr>
<tr class="b">
<td>org.apache.httpcomponents:httpclient:jar:4.5.3</td>
<td>-</td>
<td>-</td>
<td>-</td></tr>
<tr class="a">
<td>org.apache.httpcomponents:httpcore:jar:4.4.6</td>
<td>-</td>
<td>-</td>
<td>-</td></tr>
<tr class="a">
<th>Total</th>
<th>apache.snapshots</th>
<th>sonatype-nexus-snapshots</th>
<th>central</th></tr>
<tr class="b">
<td>11 (compile: 8, test: 3)</td>
<td>0</td>
<td>0</td>
<td>0</td></tr></table></div>
      </div>
    </div>
    <div class="clear">
      <hr/>
    </div>
    <div id="footer">
      <div class="xright">
              Copyright &#169;                    2011-2018
                        <a href="http://www.google.com/">Google</a>.
            All Rights Reserved.      
        
                  </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
  </body>
</html>
