[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[or-cvs] [metrics-web/master] Generate Data page dynamically.



Author: Karsten Loesing <karsten.loesing@xxxxxxx>
Date: Tue, 31 Aug 2010 16:58:14 +0200
Subject: Generate Data page dynamically.
Commit: a62701e44031619b8597fe7d68fc46162670522f

The Data page contains links to files on archive.tpo as written to a
local file and local files generated by the data processor. Before, the
Data page contained hard-coded links to these files and had to updated at
least once a month.
---
 war/WEB-INF/templates/research_data.tpl.jsp | 1441 +++++----------------------
 1 files changed, 228 insertions(+), 1213 deletions(-)

diff --git a/war/WEB-INF/templates/research_data.tpl.jsp b/war/WEB-INF/templates/research_data.tpl.jsp
index f1c0242..da72f22 100644
--- a/war/WEB-INF/templates/research_data.tpl.jsp
+++ b/war/WEB-INF/templates/research_data.tpl.jsp
@@ -1,3 +1,33 @@
+<%@page import="java.io.*" %>
+<%@page import="java.util.*" %>
+<%
+    /* Read /srv/metrics.torproject.org/ernie/remote-files-for-data-page,
+     * if that file exists, and add the contained URLs to this page.
+     * TODO make file location configurable. */
+    SortedMap<String, String> allFiles = new TreeMap<String, String>();
+    File remoteFiles = new File("/srv/metrics.torproject.org/ernie/"
+        + "remote-files-for-data-page");
+    if (remoteFiles.exists() && !remoteFiles.isDirectory()) {
+      BufferedReader br = new BufferedReader(new FileReader(remoteFiles));
+      String line = null;
+      while ((line = br.readLine()) != null) {
+        if (line.startsWith("#") || !line.contains("/")) {
+          continue;
+        }
+        allFiles.put(line.substring(line.lastIndexOf("/") + 1), line);
+      }
+    }
+    /* Add files in /srv/metrics.torproject.org/ernie/website/data/ to
+     * list of provided files on this page. TODO make dir location
+     * configurable. */
+    File localFiles =
+        new File("/srv/metrics.torproject.org/ernie/website/data/");
+    if (localFiles.exists() && localFiles.isDirectory()) {
+      for (File file : localFiles.listFiles()) {
+        allFiles.put(file.getName(), "/data/" + file.getName());
+      }
+    }
+%>
         <h2>Tor Metrics Portal: Data</h2>
         <br/>
         <p>One of the main goals of the Tor Metrics Project is to make all
@@ -24,948 +54,77 @@
         These documents include network statuses, server (relay)
         descriptors, and extra-info descriptors:</p>
         <table width="100%" border="0" cellpadding="5" cellspacing="0" summary="">
-          <tr>
-            <td>May 2004</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/V1/tor-2004-05.tar.bz2";>v1 directories</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/tor-2004-05.tar.bz2.asc";>sig</a>)</td>
-            <td/>
-            <td/>
-            <td/>
-            <td/>
-            <td/>
-          </tr>
-          <tr>
-            <td>June 2004</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/V1/tor-2004-06.tar.bz2";>v1 directories</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/tor-2004-06.tar.bz2.asc";>sig</a>)</td>
-            <td/>
-            <td/>
-            <td/>
-            <td/>
-            <td/>
-          </tr>
-          <tr>
-            <td>July 2004</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/V1/tor-2004-07.tar.bz2";>v1 directories</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/tor-2004-07.tar.bz2.asc";>sig</a>)</td>
-            <td/>
-            <td/>
-            <td/>
-            <td/>
-            <td/>
-          </tr>
-          <tr>
-            <td>August 2004</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/V1/tor-2004-08.tar.bz2";>v1 directories</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/tor-2004-08.tar.bz2.asc";>sig</a>)</td>
-            <td/>
-            <td/>
-            <td/>
-            <td/>
-            <td/>
-          </tr>
-          <tr>
-            <td>September 2004</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/V1/tor-2004-09.tar.bz2";>v1 directories</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/tor-2004-09.tar.bz2.asc";>sig</a>)</td>
-            <td/>
-            <td/>
-            <td/>
-            <td/>
-            <td/>
-          </tr>
-          <tr>
-            <td>October 2004</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/V1/tor-2004-10.tar.bz2";>v1 directories</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/tor-2004-10.tar.bz2.asc";>sig</a>)</td>
-            <td/>
-            <td/>
-            <td/>
-            <td/>
-            <td/>
-          </tr>
-          <tr>
-            <td>November 2004</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/V1/tor-2004-11.tar.bz2";>v1 directories</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/tor-2004-11.tar.bz2.asc";>sig</a>)</td>
-            <td/>
-            <td/>
-            <td/>
-            <td/>
-            <td/>
-          </tr>
-          <tr>
-            <td>December 2004</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/V1/tor-2004-12.tar.bz2";>v1 directories</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/tor-2004-12.tar.bz2.asc";>sig</a>)</td>
-            <td/>
-            <td/>
-            <td/>
-            <td/>
-            <td/>
-          </tr>
-          <tr>
-            <td>January 2005</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/V1/tor-2005-01.tar.bz2";>v1 directories</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/tor-2005-01.tar.bz2.asc";>sig</a>)</td>
-            <td/>
-            <td/>
-            <td/>
-            <td/>
-            <td/>
-          </tr>
-          <tr>
-            <td>February 2005</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/V1/tor-2005-02.tar.bz2";>v1 directories</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/tor-2005-02.tar.bz2.asc";>sig</a>)</td>
-            <td/>
-            <td/>
-            <td/>
-            <td/>
-            <td/>
-          </tr>
-          <tr>
-            <td>March 2005</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/V1/tor-2005-03.tar.bz2";>v1 directories</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/tor-2005-03.tar.bz2.asc";>sig</a>)</td>
-            <td/>
-            <td/>
-            <td/>
-            <td/>
-            <td/>
-          </tr>
-          <tr>
-            <td>April 2005</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/V1/tor-2005-04.tar.bz2";>v1 directories</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/tor-2005-04.tar.bz2.asc";>sig</a>)</td>
-            <td/>
-            <td/>
-            <td/>
-            <td/>
-            <td/>
-          </tr>
-          <tr>
-            <td>May 2005</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/V1/tor-2005-05.tar.bz2";>v1 directories</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/tor-2005-05.tar.bz2.asc";>sig</a>)</td>
-            <td/>
-            <td/>
-            <td/>
-            <td/>
-            <td/>
-          </tr>
-          <tr>
-            <td>June 2005</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/V1/tor-2005-06.tar.bz2";>v1 directories</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/tor-2005-06.tar.bz2.asc";>sig</a>)</td>
-            <td/>
-            <td/>
-            <td/>
-            <td/>
-            <td/>
-          </tr>
-          <tr>
-            <td>July 2005</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/V1/tor-2005-07.tar.bz2";>v1 directories</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/tor-2005-07.tar.bz2.asc";>sig</a>)</td>
-            <td/>
-            <td/>
-            <td/>
-            <td/>
-            <td/>
-          </tr>
-          <tr>
-            <td>August 2005</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/V1/tor-2005-08.tar.bz2";>v1 directories</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/tor-2005-08.tar.bz2.asc";>sig</a>)</td>
-            <td/>
-            <td/>
-            <td/>
-            <td/>
-            <td/>
-          </tr>
-          <tr>
-            <td>September 2005</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/V1/tor-2005-09.tar.bz2";>v1 directories</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/tor-2005-09.tar.bz2.asc";>sig</a>)</td>
-            <td/>
-            <td/>
-            <td/>
-            <td/>
-            <td/>
-          </tr>
-          <tr>
-            <td>October 2005</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/V1/tor-2005-10.tar.bz2";>v1 directories</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/tor-2005-10.tar.bz2.asc";>sig</a>)</td>
-            <td/>
-            <td/>
-            <td/>
-            <td/>
-            <td/>
-          </tr>
-          <tr>
-            <td>November 2005</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/V1/tor-2005-11.tar.bz2";>v1 directories</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/tor-2005-11.tar.bz2.asc";>sig</a>)</td>
-            <td/>
-            <td/>
-            <td/>
-            <td/>
-            <td/>
-          </tr>
-          <tr>
-            <td>December 2005</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/V1/tor-2005-12.tar.bz2";>v1 directories</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/tor-2005-12.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2005-12.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2005-12.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/server-descriptors-2005-12.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2005-12.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/extra-infos-2005-12.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2005-12.tar.bz2.asc";>sig</a>)</td>
-            <td/>
-            <td/>
-          </tr>
-          <tr>
-            <td>January 2006</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/V1/tor-2006-01.tar.bz2";>v1 directories</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/tor-2006-01.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2006-01.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2006-01.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/server-descriptors-2006-01.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2006-01.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/extra-infos-2006-01.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2006-01.tar.bz2.asc";>sig</a>)</td>
-            <td/>
-            <td/>
-          </tr>
-          <tr>
-            <td>February 2006</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/V1/tor-2006-02.tar.bz2";>v1 directories</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/tor-2006-02.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2006-02.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2006-02.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/server-descriptors-2006-02.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2006-02.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/extra-infos-2006-02.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2006-02.tar.bz2.asc";>sig</a>)</td>
-            <td/>
-            <td/>
-          </tr>
-          <tr>
-            <td>March 2006</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/V1/tor-2006-03.tar.bz2";>v1 directories</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/tor-2006-03.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2006-03.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2006-03.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/server-descriptors-2006-03.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2006-03.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/extra-infos-2006-03.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2006-03.tar.bz2.asc";>sig</a>)</td>
-            <td/>
-            <td/>
-          </tr>
-          <tr>
-            <td>April 2006</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/V1/tor-2006-04.tar.bz2";>v1 directories</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/tor-2006-04.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2006-04.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2006-04.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/server-descriptors-2006-04.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2006-04.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/extra-infos-2006-04.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2006-04.tar.bz2.asc";>sig</a>)</td>
-            <td/>
-            <td/>
-          </tr>
-          <tr>
-            <td>May 2006</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/V1/tor-2006-05.tar.bz2";>v1 directories</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/tor-2006-05.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2006-05.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2006-05.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/server-descriptors-2006-05.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2006-05.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/extra-infos-2006-05.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2006-05.tar.bz2.asc";>sig</a>)</td>
-            <td/>
-            <td/>
-          </tr>
-          <tr>
-            <td>June 2006</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/V1/tor-2006-06.tar.bz2";>v1 directories</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/tor-2006-06.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2006-06.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2006-06.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/server-descriptors-2006-06.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2006-06.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/extra-infos-2006-06.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2006-06.tar.bz2.asc";>sig</a>)</td>
-            <td/>
-            <td/>
-          </tr>
-          <tr>
-            <td>July 2006</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/V1/tor-2006-07.tar.bz2";>v1 directories</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/tor-2006-07.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2006-07.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2006-07.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/server-descriptors-2006-07.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2006-07.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/extra-infos-2006-07.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2006-07.tar.bz2.asc";>sig</a>)</td>
-            <td/>
-            <td/>
-          </tr>
-          <tr>
-            <td>August 2006</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/V1/tor-2006-08.tar.bz2";>v1 directories</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/tor-2006-08.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2006-08.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2006-08.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/server-descriptors-2006-08.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2006-08.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/extra-infos-2006-08.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2006-08.tar.bz2.asc";>sig</a>)</td>
-            <td/>
-            <td/>
-          </tr>
-          <tr>
-            <td>September 2006</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/V1/tor-2006-09.tar.bz2";>v1 directories</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/tor-2006-09.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2006-09.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2006-09.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/server-descriptors-2006-09.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2006-09.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/extra-infos-2006-09.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2006-09.tar.bz2.asc";>sig</a>)</td>
-            <td/>
-            <td/>
-          </tr>
-          <tr>
-            <td>October 2006</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/V1/tor-2006-10.tar.bz2";>v1 directories</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/tor-2006-10.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2006-10.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2006-10.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/server-descriptors-2006-10.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2006-10.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/extra-infos-2006-10.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2006-10.tar.bz2.asc";>sig</a>)</td>
-            <td/>
-            <td/>
-          </tr>
-          <tr>
-            <td>November 2006</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/V1/tor-2006-11.tar.bz2";>v1 directories</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/tor-2006-11.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2006-11.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2006-11.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/server-descriptors-2006-11.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2006-11.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/extra-infos-2006-11.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2006-11.tar.bz2.asc";>sig</a>)</td>
-            <td/>
-            <td/>
-          </tr>
-          <tr>
-            <td>December 2006</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/V1/tor-2006-12.tar.bz2";>v1 directories</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/tor-2006-12.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2006-12.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2006-12.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/server-descriptors-2006-12.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2006-12.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/extra-infos-2006-12.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2006-12.tar.bz2.asc";>sig</a>)</td>
-            <td/>
-            <td/>
-          </tr>
-          <tr>
-            <td>January 2007</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/V1/tor-2007-01.tar.bz2";>v1 directories</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/tor-2007-01.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2007-01.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2007-01.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/server-descriptors-2007-01.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2007-01.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/extra-infos-2007-01.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2007-01.tar.bz2.asc";>sig</a>)</td>
-            <td/>
-            <td/>
-          </tr>
-          <tr>
-            <td>February 2007</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/V1/tor-2007-02.tar.bz2";>v1 directories</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/tor-2007-02.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2007-02.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2007-02.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/server-descriptors-2007-02.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2007-02.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/extra-infos-2007-02.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2007-02.tar.bz2.asc";>sig</a>)</td>
-            <td/>
-            <td/>
-          </tr>
-          <tr>
-            <td>March 2007</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/V1/tor-2007-03.tar.bz2";>v1 directories</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/tor-2007-03.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2007-03.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2007-03.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/server-descriptors-2007-03.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2007-03.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/extra-infos-2007-03.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2007-03.tar.bz2.asc";>sig</a>)</td>
-            <td/>
-            <td/>
-          </tr>
-          <tr>
-            <td>April 2007</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/V1/tor-2007-04.tar.bz2";>v1 directories</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/tor-2007-04.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2007-04.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2007-04.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/server-descriptors-2007-04.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2007-04.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/extra-infos-2007-04.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2007-04.tar.bz2.asc";>sig</a>)</td>
-            <td/>
-            <td/>
-          </tr>
-          <tr>
-            <td>May 2007</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/V1/tor-2007-05.tar.bz2";>v1 directories</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/tor-2007-05.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2007-05.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2007-05.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/server-descriptors-2007-05.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2007-05.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/extra-infos-2007-05.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2007-05.tar.bz2.asc";>sig</a>)</td>
-            <td/>
-            <td/>
-          </tr>
-          <tr>
-            <td>June 2007</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/V1/tor-2007-06.tar.bz2";>v1 directories</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/tor-2007-06.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2007-06.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2007-06.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/server-descriptors-2007-06.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2007-06.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/extra-infos-2007-06.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2007-06.tar.bz2.asc";>sig</a>)</td>
-            <td/>
-            <td/>
-          </tr>
-          <tr>
-            <td>July 2007</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/V1/tor-2007-07.tar.bz2";>v1 directories</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/tor-2007-07.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2007-07.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2007-07.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/server-descriptors-2007-07.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2007-07.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/extra-infos-2007-07.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2007-07.tar.bz2.asc";>sig</a>)</td>
-            <td/>
-            <td/>
-          </tr>
-          <tr>
-            <td>August 2007</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/V1/tor-2007-08.tar.bz2";>v1 directories</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/tor-2007-08.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2007-08.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2007-08.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/server-descriptors-2007-08.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2007-08.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/extra-infos-2007-08.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2007-08.tar.bz2.asc";>sig</a>)</td>
-            <td/>
-            <td/>
-          </tr>
-          <tr>
-            <td>September 2007</td>
-            <td/>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2007-09.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2007-09.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/server-descriptors-2007-09.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2007-09.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/extra-infos-2007-09.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2007-09.tar.bz2.asc";>sig</a>)</td>
-            <td/>
-            <td/>
-          </tr>
-          <tr>
-            <td>October 2007</td>
-            <td/>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2007-10.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2007-10.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/server-descriptors-2007-10.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2007-10.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/extra-infos-2007-10.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2007-10.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/votes-2007-10.tar.bz2";>v3 votes</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/votes-2007-10.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2007-10.tar.bz2";>v3 consensuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2007-10.tar.bz2.asc";>sig</a>)</td>
-          </tr>
-          <tr>
-            <td>November 2007</td>
-            <td/>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2007-11.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2007-11.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/server-descriptors-2007-11.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2007-11.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/extra-infos-2007-11.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2007-11.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/votes-2007-11.tar.bz2";>v3 votes</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/votes-2007-11.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2007-11.tar.bz2";>v3 consensuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2007-11.tar.bz2.asc";>sig</a>)</td>
-          </tr>
-          <tr>
-            <td>December 2007</td>
-            <td/>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2007-12.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2007-12.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/server-descriptors-2007-12.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2007-12.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/extra-infos-2007-12.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2007-12.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/votes-2007-12.tar.bz2";>v3 votes</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/votes-2007-12.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2007-12.tar.bz2";>v3 consensuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2007-12.tar.bz2.asc";>sig</a>)</td>
-          </tr>
-          <tr>
-            <td>January 2008</td>
-            <td/>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2008-01.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2008-01.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/server-descriptors-2008-01.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2008-01.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/extra-infos-2008-01.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2008-01.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/votes-2008-01.tar.bz2";>v3 votes</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/votes-2008-01.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2008-01.tar.bz2";>v3 consensuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2008-01.tar.bz2.asc";>sig</a>)</td>
-          </tr>
-          <tr>
-            <td>February 2008</td>
-            <td/>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2008-02.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2008-02.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/server-descriptors-2008-02.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2008-02.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/extra-infos-2008-02.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2008-02.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/votes-2008-02.tar.bz2";>v3 votes</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/votes-2008-02.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2008-02.tar.bz2";>v3 consensuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2008-02.tar.bz2.asc";>sig</a>)</td>
-          </tr>
-          <tr>
-            <td>March 2008</td>
-            <td/>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2008-03.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2008-03.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/server-descriptors-2008-03.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2008-03.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/extra-infos-2008-03.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2008-03.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/votes-2008-03.tar.bz2";>v3 votes</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/votes-2008-03.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2008-03.tar.bz2";>v3 consensuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2008-03.tar.bz2.asc";>sig</a>)</td>
-          </tr>
-          <tr>
-            <td>April 2008</td>
-            <td/>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2008-04.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2008-04.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/server-descriptors-2008-04.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2008-04.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/extra-infos-2008-04.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2008-04.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/votes-2008-04.tar.bz2";>v3 votes</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/votes-2008-04.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2008-04.tar.bz2";>v3 consensuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2008-04.tar.bz2.asc";>sig</a>)</td>
-          </tr>
-          <tr>
-            <td>May 2008</td>
-            <td/>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2008-05.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2008-05.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/server-descriptors-2008-05.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2008-05.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/extra-infos-2008-05.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2008-05.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/votes-2008-05.tar.bz2";>v3 votes</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/votes-2008-05.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2008-05.tar.bz2";>v3 consensuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2008-05.tar.bz2.asc";>sig</a>)</td>
-          </tr>
-          <tr>
-            <td>June 2008</td>
-            <td/>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2008-06.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2008-06.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/server-descriptors-2008-06.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2008-06.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/extra-infos-2008-06.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2008-06.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/votes-2008-06.tar.bz2";>v3 votes</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/votes-2008-06.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2008-06.tar.bz2";>v3 consensuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2008-06.tar.bz2.asc";>sig</a>)</td>
-          </tr>
-          <tr>
-            <td>July 2008</td>
-            <td/>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2008-07.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2008-07.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/server-descriptors-2008-07.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2008-07.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/extra-infos-2008-07.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2008-07.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/votes-2008-07.tar.bz2";>v3 votes</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/votes-2008-07.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2008-07.tar.bz2";>v3 consensuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2008-07.tar.bz2.asc";>sig</a>)</td>
-          </tr>
-          <tr>
-            <td>August 2008</td>
-            <td/>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2008-08.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2008-08.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/server-descriptors-2008-08.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2008-08.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/extra-infos-2008-08.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2008-08.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/votes-2008-08.tar.bz2";>v3 votes</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/votes-2008-08.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2008-08.tar.bz2";>v3 consensuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2008-08.tar.bz2.asc";>sig</a>)</td>
-          </tr>
-          <tr>
-            <td>September 2008</td>
-            <td/>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2008-09.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2008-09.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/server-descriptors-2008-09.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2008-09.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/extra-infos-2008-09.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2008-09.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/votes-2008-09.tar.bz2";>v3 votes</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/votes-2008-09.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2008-09.tar.bz2";>v3 consensuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2008-09.tar.bz2.asc";>sig</a>)</td>
-          </tr>
-          <tr>
-            <td>October 2008</td>
-            <td/>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2008-10.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2008-10.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/server-descriptors-2008-10.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2008-10.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/extra-infos-2008-10.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2008-10.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/votes-2008-10.tar.bz2";>v3 votes</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/votes-2008-10.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2008-10.tar.bz2";>v3 consensuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2008-10.tar.bz2.asc";>sig</a>)</td>
-          </tr>
-          <tr>
-            <td>November 2008</td>
-            <td/>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2008-11.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2008-11.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/server-descriptors-2008-11.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2008-11.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/extra-infos-2008-11.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2008-11.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/votes-2008-11.tar.bz2";>v3 votes</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/votes-2008-11.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2008-11.tar.bz2";>v3 consensuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2008-11.tar.bz2.asc";>sig</a>)</td>
-          </tr>
-          <tr>
-            <td>December 2008</td>
-            <td/>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2008-12.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2008-12.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/server-descriptors-2008-12.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2008-12.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/extra-infos-2008-12.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2008-12.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/votes-2008-12.tar.bz2";>v3 votes</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/votes-2008-12.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2008-12.tar.bz2";>v3 consensuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2008-12.tar.bz2.asc";>sig</a>)</td>
-          </tr>
-          <tr>
-            <td>January 2009</td>
-            <td/>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2009-01.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2009-01.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/server-descriptors-2009-01.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2009-01.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/extra-infos-2009-01.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2009-01.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/votes-2009-01.tar.bz2";>v3 votes</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/votes-2009-01.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2009-01.tar.bz2";>v3 consensuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2009-01.tar.bz2.asc";>sig</a>)</td>
-          </tr>
-          <tr>
-            <td>February 2009</td>
-            <td/>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2009-02.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2009-02.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2009-02.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2009-02.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2009-02.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2009-02.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/votes-2009-02.tar.bz2";>v3 votes</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/votes-2009-02.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2009-02.tar.bz2";>v3 consensuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2009-02.tar.bz2.asc";>sig</a>)</td>
-          </tr>
-          <tr>
-            <td>March 2009</td>
-            <td/>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2009-03.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2009-03.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2009-03.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2009-03.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2009-03.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2009-03.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/votes-2009-03.tar.bz2";>v3 votes</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/votes-2009-03.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2009-03.tar.bz2";>v3 consensuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2009-03.tar.bz2.asc";>sig</a>)</td>
-          </tr>
-          <tr>
-            <td>April 2009</td>
-            <td/>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2009-04.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2009-04.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2009-04.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2009-04.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2009-04.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2009-04.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/votes-2009-04.tar.bz2";>v3 votes</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/votes-2009-04.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2009-04.tar.bz2";>v3 consensuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2009-04.tar.bz2.asc";>sig</a>)</td>
-          </tr>
-          <tr>
-            <td>May 2009</td>
-            <td/>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2009-05.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2009-05.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2009-05.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2009-05.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2009-05.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2009-05.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/votes-2009-05.tar.bz2";>v3 votes</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/votes-2009-05.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2009-05.tar.bz2";>v3 consensuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2009-05.tar.bz2.asc";>sig</a>)</td>
-          </tr>
-          <tr>
-            <td>June 2009</td>
-            <td/>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2009-06.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2009-06.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2009-06.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2009-06.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2009-06.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2009-06.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/votes-2009-06.tar.bz2";>v3 votes</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/votes-2009-06.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2009-06.tar.bz2";>v3 consensuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2009-06.tar.bz2.asc";>sig</a>)</td>
-          </tr>
-          <tr>
-            <td>July 2009</td>
-            <td/>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2009-07.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2009-07.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2009-07.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2009-07.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2009-07.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2009-07.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/votes-2009-07.tar.bz2";>v3 votes</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/votes-2009-07.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2009-07.tar.bz2";>v3 consensuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2009-07.tar.bz2.asc";>sig</a>)</td>
-          </tr>
-          <tr>
-            <td>August 2009</td>
-            <td/>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2009-08.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2009-08.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2009-08.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2009-08.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2009-08.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2009-08.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/votes-2009-08.tar.bz2";>v3 votes</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/votes-2009-08.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2009-08.tar.bz2";>v3 consensuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2009-08.tar.bz2.asc";>sig</a>)</td>
-          </tr>
-          <tr>
-            <td>September 2009</td>
-            <td/>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2009-09.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2009-09.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2009-09.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2009-09.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2009-09.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2009-09.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/votes-2009-09.tar.bz2";>v3 votes</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/votes-2009-09.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2009-09.tar.bz2";>v3 consensuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2009-09.tar.bz2.asc";>sig</a>)</td>
-          </tr>
-          <tr>
-            <td>October 2009</td>
-            <td/>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2009-10.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2009-10.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2009-10.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2009-10.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2009-10.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2009-10.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/votes-2009-10.tar.bz2";>v3 votes</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/votes-2009-10.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2009-10.tar.bz2";>v3 consensuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2009-10.tar.bz2.asc";>sig</a>)</td>
-          </tr>
-          <tr>
-            <td>November 2009</td>
-            <td/>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2009-11.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2009-11.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2009-11.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2009-11.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2009-11.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2009-11.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/votes-2009-11.tar.bz2";>v3 votes</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/votes-2009-11.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2009-11.tar.bz2";>v3 consensuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2009-11.tar.bz2.asc";>sig</a>)</td>
-          </tr>
-          <tr>
-            <td>December 2009</td>
-            <td/>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2009-12.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2009-12.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2009-12.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2009-12.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2009-12.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2009-12.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/votes-2009-12.tar.bz2";>v3 votes</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/votes-2009-12.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2009-12.tar.bz2";>v3 consensuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2009-12.tar.bz2.asc";>sig</a>)</td>
-          </tr>
-          <tr>
-            <td>January 2010</td>
-            <td/>
-            <td><a href="http://archive.torproject.org/tor-directory-authority-archive/statuses-2010-01.tar.bz2";>v2 statuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/statuses-2010-01.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2010-01.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2010-01.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2010-01.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2010-01.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/votes-2010-01.tar.bz2";>v3 votes</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/votes-2010-01.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2010-01.tar.bz2";>v3 consensuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2010-01.tar.bz2.asc";>sig</a>)</td>
-          </tr>
-          <tr>
-            <td>February 2010</td>
-            <td/>
-            <td/>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2010-02.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2010-02.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2010-02.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2010-02.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/votes-2010-02.tar.bz2";>v3 votes</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/votes-2010-02.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2010-02.tar.bz2";>v3 consensuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2010-02.tar.bz2.asc";>sig</a>)</td>
-          </tr>
-          <tr>
-            <td>March 2010</td>
-            <td/>
-            <td/>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2010-03.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2010-03.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2010-03.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2010-03.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/votes-2010-03.tar.bz2";>v3 votes</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/votes-2010-03.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2010-03.tar.bz2";>v3 consensuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2010-03.tar.bz2.asc";>sig</a>)</td>
-          </tr>
-          <tr>
-            <td>April 2010</td>
-            <td/>
-            <td/>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2010-04.tar.bz2";>server descriptors</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/server-descriptors-2010-04.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2010-04.tar.bz2";>extra-infos</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/extra-infos-2010-04.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/votes-2010-04.tar.bz2";>v3 votes</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/votes-2010-04.tar.bz2.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2010-04.tar.bz2";>v3 consensuses</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/consensuses-2010-04.tar.bz2.asc";>sig</a>)</td>
-          </tr>
-          <tr>
-            <td>May 2010</td>
-            <td/>
-            <td/>
-            <td><a href="/data/server-descriptors-2010-05.tar.bz2">server descriptors</a></td>
-            <td><a href="/data/extra-infos-2010-05.tar.bz2">extra-infos</a></td>
-            <td><a href="/data/votes-2010-05.tar.bz2">v3 votes</a></td>
-            <td><a href="/data/consensuses-2010-05.tar.bz2">v3 consensuses</a></td>
-          </tr>
-          <tr>
-            <td>June 2010</td>
-            <td/>
-            <td/>
-            <td><a href="/data/server-descriptors-2010-06.tar.bz2">server descriptors</a></td>
-            <td><a href="/data/extra-infos-2010-06.tar.bz2">extra-infos</a></td>
-            <td><a href="/data/votes-2010-06.tar.bz2">v3 votes</a></td>
-            <td><a href="/data/consensuses-2010-06.tar.bz2">v3 consensuses</a></td>
-          </tr>
-          <tr>
-            <td>July 2010</td>
-            <td/>
-            <td/>
-            <td><a href="/data/server-descriptors-2010-07.tar.bz2">server descriptors</a></td>
-            <td><a href="/data/extra-infos-2010-07.tar.bz2">extra-infos</a></td>
-            <td><a href="/data/votes-2010-07.tar.bz2">v3 votes</a></td>
-            <td><a href="/data/consensuses-2010-07.tar.bz2">v3 consensuses</a></td>
-          </tr>
-          <tr>
-            <td>August 2010</td>
-            <td/>
-            <td/>
-            <td><a href="/data/server-descriptors-2010-08.tar.bz2">server descriptors</a></td>
-            <td><a href="/data/extra-infos-2010-08.tar.bz2">extra-infos</a></td>
-            <td><a href="/data/votes-2010-08.tar.bz2">v3 votes</a></td>
-            <td><a href="/data/consensuses-2010-08.tar.bz2">v3 consensuses</a></td>
-          </tr>
+<%
+    String firstYearMonth = null, lastYearMonth = null;
+    for (Map.Entry<String, String> e : allFiles.entrySet()) {
+      String filename = e.getKey();
+      if (!filename.endsWith(".asc") &&
+          (filename.startsWith("tor-20") ||
+          filename.startsWith("statuses-20") ||
+          filename.startsWith("server-descriptors-20") ||
+          filename.startsWith("extra-infos-20") ||
+          filename.startsWith("votes-20") ||
+          filename.startsWith("consensuses-20"))) {
+        String yearMonth = filename.substring(filename.indexOf("20"));
+        yearMonth = yearMonth.substring(0, 7);
+        if (firstYearMonth == null ||
+            yearMonth.compareTo(firstYearMonth) < 0) {
+          firstYearMonth = yearMonth;
+        }
+        if (lastYearMonth == null ||
+            yearMonth.compareTo(lastYearMonth) > 0) {
+          lastYearMonth = yearMonth;
+        }
+      }
+    }
+    String currentYearMonth = firstYearMonth;
+    String[] monthNames = new String[] { "January", "February", "March",
+        "April", "May", "June", "July", "August", "September", "October",
+        "November", "December" };
+    String[] prefixes = new String[] { "tor-", "statuses-",
+        "server-descriptors-", "extra-infos-", "votes-", "consensuses-" };
+    String[] descriptions = new String[] { "v1 directories",
+        "v2 statuses", "server descriptors", "extra-infos", "v3 votes",
+        "v3 consensuses" };
+    Set<String> printedFiles = new HashSet<String>();
+    while (currentYearMonth.compareTo(lastYearMonth) <= 0) {
+      int currentYear = Integer.parseInt(currentYearMonth.substring(
+          0, 4));
+      int currentMonth = Integer.parseInt(currentYearMonth.substring(
+          5, 7));
+      out.write("          <tr>\n            <td>"
+          + monthNames[currentMonth - 1] + " " + currentYear + "</td>\n");
+      for (int i = 0; i < prefixes.length; i++) {
+        String prefix = prefixes[i];
+        String description = descriptions[i];
+        String file = prefix + currentYearMonth + ".tar.bz2";
+        String sig = file + ".asc";
+        if (allFiles.containsKey(file)) {
+          out.write("            <td><a href=\"" + allFiles.get(file)
+              + "\">" + description + "</a>");
+          printedFiles.add(file);
+          if (allFiles.containsKey(sig)) {
+            out.write("\n              (<a href=\"" + allFiles.get(sig)
+                + "\">sig</a>)</td>\n");
+            printedFiles.add(sig);
+          } else {
+            out.write("</td>\n");
+          }
+        } else {
+          out.write("            <td/>\n");
+        }
+      }
+      out.write("          </tr>\n");
+      if (currentMonth < 12) {
+        currentMonth++;
+      } else {
+        currentYear++;
+        currentMonth = 1;
+      }
+      currentYearMonth = String.format("%d-%02d", currentYear,
+          currentMonth);
+    }
+%>
         </table>
         <br/>
         <a id="bridgedesc"/>
@@ -981,58 +140,55 @@
         or any other detail, contact us and we'll sort something out. The
         files below contain all documents of a given month:</p>
         <table width="100%" border="0" cellpadding="5" cellspacing="0" summary="">
-          <tr><td><a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2008-05.tar.bz2";>May 2008</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2008-05.tar.bz2.asc";>sig</a>)</td></tr>
-          <tr><td><a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2008-06.tar.bz2";>June 2008</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2008-06.tar.bz2.asc";>sig</a>)</td></tr>
-          <tr><td><a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2008-07.tar.bz2";>July 2008</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2008-07.tar.bz2.asc";>sig</a>)</td></tr>
-          <tr><td><a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2008-08.tar.bz2";>August 2008</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2008-08.tar.bz2.asc";>sig</a>)</td></tr>
-          <tr><td><a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2008-09.tar.bz2";>September 2008</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2008-09.tar.bz2.asc";>sig</a>)</td></tr>
-          <tr><td><a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2008-10.tar.bz2";>October 2008</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2008-10.tar.bz2.asc";>sig</a>)</td></tr>
-          <tr><td><a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2008-11.tar.bz2";>November 2008</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2008-11.tar.bz2.asc";>sig</a>)</td></tr>
-          <tr><td><a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2008-12.tar.bz2";>December 2008</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2008-12.tar.bz2.asc";>sig</a>)</td></tr>
-          <tr><td><a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2009-01.tar.bz2";>January 2009</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2009-01.tar.bz2.asc";>sig</a>)</td></tr>
-          <tr><td><a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2009-02.tar.bz2";>February 2009</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2009-02.tar.bz2.asc";>sig</a>)</td></tr>
-          <tr><td><a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2009-03.tar.bz2";>March 2009</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2009-03.tar.bz2.asc";>sig</a>)</td></tr>
-          <tr><td><a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2009-04.tar.bz2";>April 2009</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2009-04.tar.bz2.asc";>sig</a>)</td></tr>
-          <tr><td><a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2009-05.tar.bz2";>May 2009</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2009-05.tar.bz2.asc";>sig</a>)</td></tr>
-          <tr><td><a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2009-06.tar.bz2";>June 2009</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2009-06.tar.bz2.asc";>sig</a>)</td></tr>
-          <tr><td><a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2009-07.tar.bz2";>July 2009</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2009-07.tar.bz2.asc";>sig</a>)</td></tr>
-          <tr><td><a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2009-08.tar.bz2";>August 2009</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2009-08.tar.bz2.asc";>sig</a>)</td></tr>
-          <tr><td><a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2009-09.tar.bz2";>September 2009</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2009-09.tar.bz2.asc";>sig</a>)</td></tr>
-          <tr><td><a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2009-10.tar.bz2";>October 2009</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2009-10.tar.bz2.asc";>sig</a>)</td></tr>
-          <tr><td><a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2009-11.tar.bz2";>November 2009</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2009-11.tar.bz2.asc";>sig</a>)</td></tr>
-          <tr><td><a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2009-12.tar.bz2";>December 2009</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2009-12.tar.bz2.asc";>sig</a>)</td></tr>
-          <tr><td><a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2010-01.tar.bz2";>January 2010</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2010-01.tar.bz2.asc";>sig</a>)</td></tr>
-          <tr><td><a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2010-02.tar.bz2";>February 2010</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2010-02.tar.bz2.asc";>sig</a>)</td></tr>
-          <tr><td><a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2010-03.tar.bz2";>March 2010</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2010-03.tar.bz2.asc";>sig</a>)</td></tr>
-          <tr><td><a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2010-04.tar.bz2";>April 2010</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/bridge-descriptors-2010-04.tar.bz2.asc";>sig</a>)</td></tr>
-          <tr><td><a href="/data/bridge-descriptors-2010-05.tar.bz2">May 2010</a></td></tr>
-          <tr><td><a href="/data/bridge-descriptors-2010-06.tar.bz2">June 2010</a></td></tr>
-          <tr><td><a href="/data/bridge-descriptors-2010-07.tar.bz2">July 2010</a></td></tr>
-          <tr><td><a href="/data/bridge-descriptors-2010-08.tar.bz2">August 2010</a></td></tr>
+<%
+    firstYearMonth = lastYearMonth = null;
+    for (Map.Entry<String, String> e : allFiles.entrySet()) {
+      String filename = e.getKey();
+      if (!filename.endsWith(".asc") &&
+          filename.startsWith("bridge-descriptors-20")) {
+        String yearMonth = filename.substring(filename.indexOf("20"));
+        yearMonth = yearMonth.substring(0, 7);
+        if (firstYearMonth == null ||
+            yearMonth.compareTo(firstYearMonth) < 0) {
+          firstYearMonth = yearMonth;
+        }
+        if (lastYearMonth == null ||
+            yearMonth.compareTo(lastYearMonth) > 0) {
+          lastYearMonth = yearMonth;
+        }
+      }
+    }
+    currentYearMonth = firstYearMonth;
+    while (currentYearMonth.compareTo(lastYearMonth) <= 0) {
+      int currentYear = Integer.parseInt(currentYearMonth.substring(
+          0, 4));
+      int currentMonth = Integer.parseInt(currentYearMonth.substring(
+          5, 7));
+      String file = "bridge-descriptors-" + currentYearMonth + ".tar.bz2";
+      String sig = file + ".asc";
+      if (allFiles.containsKey(file)) {
+        out.write("          <tr><td><a href=\"" + allFiles.get(file)
+            + "\">" + monthNames[currentMonth - 1] + " " + currentYear
+            + "</a>");
+        printedFiles.add(file);
+        if (allFiles.containsKey(sig)) {
+          out.write("\n              (<a href=\"" + allFiles.get(sig)
+                + "\">sig</a>)</td></tr>\n");
+          printedFiles.add(sig);
+        } else {
+          out.write("</td></tr>\n");
+        }
+      }
+      if (currentMonth < 12) {
+        currentMonth++;
+      } else {
+        currentYear++;
+        currentMonth = 1;
+      }
+      currentYearMonth = String.format("%d-%02d", currentYear,
+          currentMonth);
+    }
+%>
         </table>
         <p/>
         <br/>
@@ -1047,207 +203,47 @@
         descriptor archives. The following files contain the statistics
         produced by relays running earlier versions:</p>
         <table width="100%" border="0" cellpadding="5" cellspacing="0" summary="">
-          <tr>
-            <td>badbits (49E2C345)</td>
-            <td></td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/dirreq-badbits-49E2C345FDA5E9ADFE13320690BF2C77EA803E6C";>dirreq-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/dirreq-badbits-49E2C345FDA5E9ADFE13320690BF2C77EA803E6C.asc";>sig</a>)</td>
-            <td></td>
-            <td></td>
-          </tr>
-          <tr>
-            <td>echelon1 (5D1D99A8)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/buffer-echelon1-5D1D99A80F8688AD59004BA941E30CD5CD1487F9";>buffer-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/buffer-echelon1-5D1D99A80F8688AD59004BA941E30CD5CD1487F9.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/dirreq-echelon1-5D1D99A80F8688AD59004BA941E30CD5CD1487F9";>dirreq-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/dirreq-echelon1-5D1D99A80F8688AD59004BA941E30CD5CD1487F9.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/entry-echelon1-5D1D99A80F8688AD59004BA941E30CD5CD1487F9";>entry-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/entry-echelon1-5D1D99A80F8688AD59004BA941E30CD5CD1487F9.asc";>sig</a>)</td>
-            <td></td>
-          </tr>
-          <tr>
-            <td>echelon1 (511461B1)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/buffer-echelon1-511461B18F3A5CA036558C9A8FDD22B3D0A81EBB";>buffer-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/buffer-echelon1-511461B18F3A5CA036558C9A8FDD22B3D0A81EBB.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/dirreq-echelon1-511461B18F3A5CA036558C9A8FDD22B3D0A81EBB";>dirreq-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/dirreq-echelon1-511461B18F3A5CA036558C9A8FDD22B3D0A81EBB.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/entry-echelon1-511461B18F3A5CA036558C9A8FDD22B3D0A81EBB";>entry-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/entry-echelon1-511461B18F3A5CA036558C9A8FDD22B3D0A81EBB.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/exit-echelon1-511461B18F3A5CA036558C9A8FDD22B3D0A81EBB";>exit-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/exit-echelon1-511461B18F3A5CA036558C9A8FDD22B3D0A81EBB.asc";>sig</a>)</td>
-          </tr>
-          <tr>
-            <td>echelon2 (925DEDE4)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/buffer-echelon2-925DEDE4D0B1F39B45D646F500703D2B708CFA01";>buffer-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/buffer-echelon2-925DEDE4D0B1F39B45D646F500703D2B708CFA01.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/dirreq-echelon2-925DEDE4D0B1F39B45D646F500703D2B708CFA01";>dirreq-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/dirreq-echelon2-925DEDE4D0B1F39B45D646F500703D2B708CFA01.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/entry-echelon2-925DEDE4D0B1F39B45D646F500703D2B708CFA01";>entry-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/entry-echelon2-925DEDE4D0B1F39B45D646F500703D2B708CFA01.asc";>sig</a>)</td>
-            <td></td>
-          </tr>
-          <tr>
-            <td>echelon2 (3EED5706)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/buffer-echelon2-3EED570622FCC06DEF4D42042DD847D899893972";>buffer-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/buffer-echelon2-3EED570622FCC06DEF4D42042DD847D899893972.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/dirreq-echelon2-3EED570622FCC06DEF4D42042DD847D899893972";>dirreq-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/dirreq-echelon2-3EED570622FCC06DEF4D42042DD847D899893972.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/entry-echelon2-3EED570622FCC06DEF4D42042DD847D899893972";>entry-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/entry-echelon2-3EED570622FCC06DEF4D42042DD847D899893972.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/exit-echelon2-3EED570622FCC06DEF4D42042DD847D899893972";>exit-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/exit-echelon2-3EED570622FCC06DEF4D42042DD847D899893972.asc";>sig</a>)</td>
-          </tr>
-          <tr>
-            <td>ephemer2 (C11B5F70)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/buffer-ephemer2-C11B5F7056077BD4028255658AB49F6C28FD5017";>buffer-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/buffer-ephemer2-C11B5F7056077BD4028255658AB49F6C28FD5017.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/dirreq-ephemer2-C11B5F7056077BD4028255658AB49F6C28FD5017";>dirreq-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/dirreq-ephemer2-C11B5F7056077BD4028255658AB49F6C28FD5017.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/entry-ephemer2-C11B5F7056077BD4028255658AB49F6C28FD5017";>entry-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/entry-ephemer2-C11B5F7056077BD4028255658AB49F6C28FD5017.asc";>sig</a>)</td>
-            <td></td>
-          </tr>
-          <tr>
-            <td>fluxe3 (ED13D1D1)</td>
-            <td></td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/dirreq-fluxe3-ED13D1D13C1E57C6A406DD64551D2F905AB99AFF";>dirreq-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/dirreq-fluxe3-ED13D1D13C1E57C6A406DD64551D2F905AB99AFF.asc";>sig</a>)</td>
-            <td></td>
-            <td></td>
-          </tr>
-          <tr>
-            <td>gabelmoo (68333D07)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/buffer-gabelmoo-68333D0761BCF397A587A0C0B963E4A9E99EC4D3";>buffer-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/buffer-gabelmoo-68333D0761BCF397A587A0C0B963E4A9E99EC4D3.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/dirreq-gabelmoo-68333D0761BCF397A587A0C0B963E4A9E99EC4D3";>dirreq-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/dirreq-gabelmoo-68333D0761BCF397A587A0C0B963E4A9E99EC4D3.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/entry-gabelmoo-68333D0761BCF397A587A0C0B963E4A9E99EC4D3";>entry-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/entry-gabelmoo-68333D0761BCF397A587A0C0B963E4A9E99EC4D3.asc";>sig</a>)</td>
-            <td></td>
-          </tr>
-          <tr>
-            <td>gonzales (501153AE)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/buffer-gonzales-501153AEE773283F48C63D5E27707B3B65500A77";>buffer-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/buffer-gonzales-501153AEE773283F48C63D5E27707B3B65500A77.asc";>sig</a>)</td>
-            <td></td>
-            <td></td>
-            <td></td>
-          </tr>
-          <tr>
-            <td>hamsterrad (B1980DCF)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/buffer-hamsterrad-B1980DCFA75A0CC5176B8725D41BE09A018B0780";>buffer-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/buffer-hamsterrad-B1980DCFA75A0CC5176B8725D41BE09A018B0780.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/dirreq-hamsterrad-B1980DCFA75A0CC5176B8725D41BE09A018B0780";>dirreq-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/dirreq-hamsterrad-B1980DCFA75A0CC5176B8725D41BE09A018B0780.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/entry-hamsterrad-B1980DCFA75A0CC5176B8725D41BE09A018B0780";>entry-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/entry-hamsterrad-B1980DCFA75A0CC5176B8725D41BE09A018B0780.asc";>sig</a>)</td>
-            <td></td>
-          </tr>
-          <tr>
-            <td>ides (F397038A)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/buffer-ides-F397038ADC51336135E7B80BD99CA3844360292B";>buffer-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/buffer-ides-F397038ADC51336135E7B80BD99CA3844360292B.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/dirreq-ides-F397038ADC51336135E7B80BD99CA3844360292B";>dirreq-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/dirreq-ides-F397038ADC51336135E7B80BD99CA3844360292B.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/entry-ides-F397038ADC51336135E7B80BD99CA3844360292B";>entry-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/entry-ides-F397038ADC51336135E7B80BD99CA3844360292B.asc";>sig</a>)</td>
-            <td></td>
-          </tr>
-          <tr>
-            <td>moria1 (FFCB46DB)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/buffer-moria1-FFCB46DB1339DA84674C70D7CB586434C4370441";>buffer-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/buffer-moria1-FFCB46DB1339DA84674C70D7CB586434C4370441.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/dirreq-moria1-FFCB46DB1339DA84674C70D7CB586434C4370441";>dirreq-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/dirreq-moria1-FFCB46DB1339DA84674C70D7CB586434C4370441.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/entry-moria1-FFCB46DB1339DA84674C70D7CB586434C4370441";>entry-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/entry-moria1-FFCB46DB1339DA84674C70D7CB586434C4370441.asc";>sig</a>)</td>
-            <td></td>
-          </tr>
-          <tr>
-            <td>moria2 (719BE45D)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/buffer-moria2-719BE45DE224B607C53707D0E2143E2D423E74CF";>buffer-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/buffer-moria2-719BE45DE224B607C53707D0E2143E2D423E74CF.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/dirreq-moria2-719BE45DE224B607C53707D0E2143E2D423E74CF";>dirreq-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/dirreq-moria2-719BE45DE224B607C53707D0E2143E2D423E74CF.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/entry-moria2-719BE45DE224B607C53707D0E2143E2D423E74CF";>entry-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/entry-moria2-719BE45DE224B607C53707D0E2143E2D423E74CF.asc";>sig</a>)</td>
-            <td></td>
-          </tr>
-          <tr>
-            <td>moria5 (5644E26E)</td>
-            <td></td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/dirreq-moria5-5644E26ECAC35C5C64B91E712A92A83E17E2A1F5";>dirreq-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/dirreq-moria5-5644E26ECAC35C5C64B91E712A92A83E17E2A1F5.asc";>sig</a>)</td>
-            <td></td>
-            <td></td>
-          </tr>
-          <tr>
-            <td>nottheNSA (74F93D60)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/buffer-nottheNSA-74F93D605D611684C06B5922732CA8EBC4B89AFE";>buffer-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/buffer-nottheNSA-74F93D605D611684C06B5922732CA8EBC4B89AFE.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/dirreq-nottheNSA-74F93D605D611684C06B5922732CA8EBC4B89AFE";>dirreq-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/dirreq-nottheNSA-74F93D605D611684C06B5922732CA8EBC4B89AFE.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/entry-nottheNSA-74F93D605D611684C06B5922732CA8EBC4B89AFE";>entry-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/entry-nottheNSA-74F93D605D611684C06B5922732CA8EBC4B89AFE.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/exit-nottheNSA-74F93D605D611684C06B5922732CA8EBC4B89AFE";>exit-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/exit-nottheNSA-74F93D605D611684C06B5922732CA8EBC4B89AFE.asc";>sig</a>)</td>
-          </tr>
-          <tr>
-            <td>SwissTorExit (F377AAB5)</td>
-            <td></td>
-            <td></td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/entry-SwissTorExit-F377AAB595C2C4C03252E041E44AA1C718082F3A";>entry-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/entry-SwissTorExit-F377AAB595C2C4C03252E041E44AA1C718082F3A.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/exit-SwissTorExit-F377AAB595C2C4C03252E041E44AA1C718082F3A";>exit-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/exit-SwissTorExit-F377AAB595C2C4C03252E041E44AA1C718082F3A.asc";>sig</a>)</td>
-          </tr>
-          <tr>
-            <td>TorTeamHelp (706CA141)</td>
-            <td></td>
-            <td></td>
-            <td></td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/exit-TorTeamHelp-706CA141D3A1058B52509B4A1B6B28BF35AE5A0F";>exit-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/exit-TorTeamHelp-706CA141D3A1058B52509B4A1B6B28BF35AE5A0F.asc";>sig</a>)</td>
-          </tr>
-          <tr>
-            <td>TorTeamHelp (87B9B68D)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/buffer-TorTeamHelp-87B9B68D48431E28795AF65EEA7184803CCED715";>buffer-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/buffer-TorTeamHelp-87B9B68D48431E28795AF65EEA7184803CCED715.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/dirreq-TorTeamHelp-87B9B68D48431E28795AF65EEA7184803CCED715";>dirreq-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/dirreq-TorTeamHelp-87B9B68D48431E28795AF65EEA7184803CCED715.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/entry-TorTeamHelp-87B9B68D48431E28795AF65EEA7184803CCED715";>entry-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/entry-TorTeamHelp-87B9B68D48431E28795AF65EEA7184803CCED715.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/exit-TorTeamHelp-87B9B68D48431E28795AF65EEA7184803CCED715";>exit-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/exit-TorTeamHelp-87B9B68D48431E28795AF65EEA7184803CCED715.asc";>sig</a>)</td>
-          </tr>
-          <tr>
-            <td>trusted (8522EB98)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/buffer-trusted-8522EB98C91496E80EC238E732594D1509158E77";>buffer-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/buffer-trusted-8522EB98C91496E80EC238E732594D1509158E77.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/dirreq-trusted-8522EB98C91496E80EC238E732594D1509158E77";>dirreq-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/dirreq-trusted-8522EB98C91496E80EC238E732594D1509158E77.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/entry-trusted-8522EB98C91496E80EC238E732594D1509158E77";>entry-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/entry-trusted-8522EB98C91496E80EC238E732594D1509158E77.asc";>sig</a>)</td>
-            <td></td>
-          </tr>
-          <tr>
-            <td>vallenator (7FB47171)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/buffer-vallenator-7FB47171747D21E9827C2283C59EC1690B058BC6";>buffer-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/buffer-vallenator-7FB47171747D21E9827C2283C59EC1690B058BC6.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/dirreq-vallenator-7FB47171747D21E9827C2283C59EC1690B058BC6";>dirreq-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/dirreq-vallenator-7FB47171747D21E9827C2283C59EC1690B058BC6.asc";>sig</a>)</td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/entry-vallenator-7FB47171747D21E9827C2283C59EC1690B058BC6";>entry-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/entry-vallenator-7FB47171747D21E9827C2283C59EC1690B058BC6.asc";>sig</a>)</td>
-            <td></td>
-          </tr>
-          <tr>
-            <td>xpdmTindome (1A477D8C)</td>
-            <td></td>
-            <td><a href="http://archive.torproject.org/tor-metrics-archive/dirreq-xpdmTindome-1A477D8C91F79459A7E880A5676118FF76169985";>dirreq-stats</a>
-              (<a href="http://archive.torproject.org/tor-metrics-archive/dirreq-xpdmTindome-1A477D8C91F79459A7E880A5676118FF76169985.asc";>sig</a>)</td>
-            <td></td>
-            <td></td>
-          </tr>
+<%
+    SortedSet<String> statsSources = new TreeSet<String>();
+    for (Map.Entry<String, String> e : allFiles.entrySet()) {
+      String filename = e.getKey();
+      if (!filename.endsWith(".asc") &&
+          (filename.startsWith("buffer-") ||
+          filename.startsWith("dirreq-") ||
+          filename.startsWith("entry-") ||
+          filename.startsWith("exit-"))) {
+        statsSources.add(filename.substring(filename.indexOf("-") + 1));
+      }
+    }
+    prefixes = new String[] { "buffer-", "dirreq-", "entry-", "exit-" };
+    for (String source : statsSources) {
+      String nickname = source.split("-")[0];
+      String fingerprint = source.split("-")[1];
+      fingerprint = fingerprint.substring(0, 8);
+      out.write("          <tr>\n            <td>" + nickname + " ("
+          + fingerprint + ")</td>\n");
+      for (int i = 0; i < prefixes.length; i++) {
+        String prefix = prefixes[i];
+        String file = prefix + source;
+        String sig = file + ".asc";
+        if (allFiles.containsKey(file)) {
+          out.write("            <td><a href=\"" + allFiles.get(file)
+              + "\">" + prefix + "stats</a>");
+          printedFiles.add(file);
+          if (allFiles.containsKey(sig)) {
+            out.write("\n              (<a href=\"" + allFiles.get(sig)
+                + "\">sig</a>)</td>\n");
+            printedFiles.add(sig);
+          } else {
+            out.write("</td>\n");
+          }
+        } else {
+          out.write("            <td/>\n");
+        }
+      }
+      out.write("          </tr>\n");
+    }
+%>
         </table>
         <br/>
         <a id="performance"/>
@@ -1258,22 +254,41 @@
         time needed to do so. The files below contain the output of the
         torperf application and are updated every hour:</p>
         <table width="100%" border="0" cellpadding="5" cellspacing="0" summary="">
-          <tr>
-            <td>torperf</td>
-            <td><a href="data/torperf-50kb.data">50 KiB requests</a></td>
-            <td><a href="data/torperf-1mb.data">1 MiB requests</a></td>
-            <td><a href="data/torperf-5mb.data">5 MiB requests</a></td>
-          </tr>
-          <tr>
-            <td>moria</td>
-            <td><a href="data/moria-50kb.data">50 KiB requests</a></td>
-            <td><a href="data/moria-1mb.data">1 MiB requests</a></td>
-            <td><a href="data/moria-5mb.data">5 MiB requests</a></td>
-          </tr>
-          <tr>
-            <td>siv</td>
-            <td><a href="data/siv-50kb.data">50 KiB requests</a></td>
-            <td><a href="data/siv-1mb.data">1 MiB requests</a></td>
-            <td><a href="data/siv-5mb.data">5 MiB requests</a></td>
-          </tr>
+<%
+    SortedSet<String> torperfSources = new TreeSet<String>();
+    for (Map.Entry<String, String> e : allFiles.entrySet()) {
+      String filename = e.getKey();
+      if (filename.endsWith("b.data")) {
+        torperfSources.add(filename.substring(0, filename.indexOf("-")));
+      }
+    }
+    for (String source : torperfSources) {
+      out.write("          <tr>\n            <td>" + source + "</td>\n");
+      String file = source + "-50kb.data";
+      if (allFiles.containsKey(file)) {
+        out.write("            <td><a href=\"" + allFiles.get(file)
+            + "\">50 KiB requests</a></td>\n");
+        printedFiles.add(file);
+      } else {
+        out.write("            <td/>\n");
+      }
+      file = source + "-1mb.data";
+      if (allFiles.containsKey(file)) {
+        out.write("            <td><a href=\"" + allFiles.get(file)
+            + "\">1 MiB requests</a></td>\n");
+        printedFiles.add(file);
+      } else {
+        out.write("            <td/>\n");
+      }
+      file = source + "-5mb.data";
+      if (allFiles.containsKey(file)) {
+        out.write("            <td><a href=\"" + allFiles.get(file)
+            + "\">5 MiB requests</a></td>\n");
+        printedFiles.add(file);
+      } else {
+        out.write("            <td/>\n");
+      }
+      out.write("          </tr>\n");
+    }
+%>
         </table>
-- 
1.7.1