gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r23450 - GNUnet-docs/WWW GNUnet-docs/WWW/download gnunet-ww


From: gnunet
Subject: [GNUnet-SVN] r23450 - GNUnet-docs/WWW GNUnet-docs/WWW/download gnunet-www gnunet-www/GNUnet gnunet-www/GNUnet/logos gnunet-www/freeway-logos gnunet-www/gnunet-logos gnunet-www/images
Date: Mon, 27 Aug 2012 20:51:05 +0200

Author: grothoff
Date: 2012-08-27 20:51:04 +0200 (Mon, 27 Aug 2012)
New Revision: 23450

Added:
   gnunet-www/GNUnet/favicon.ico
   gnunet-www/GNUnet/logos/osx.png
   gnunet-www/GNUnet/logos/vmware.png
   gnunet-www/freeway-logos/
   gnunet-www/gnunet-logos/
   gnunet-www/gnunet-logos/gnu_with_net.png
   gnunet-www/images/afs-t-shirt.ps
Removed:
   GNUnet-docs/WWW/config/
   GNUnet-docs/WWW/documentation.php3
   GNUnet-docs/WWW/download.php3
   GNUnet-docs/WWW/download/gnunet-fuse-0.8.0c.tar.bz2
   GNUnet-docs/WWW/download/gnunet-gtk-0.8.1.tar.gz
   GNUnet-docs/WWW/download/gnunet-qt-0.8.1.tar.bz2
   GNUnet-docs/WWW/download/gnunet-qt-0.8.1.tar.gz
   GNUnet-docs/WWW/encoding.php3
   GNUnet-docs/WWW/faq.php3
   GNUnet-docs/WWW/favicon.ico
   GNUnet-docs/WWW/freeservice.php3
   GNUnet-docs/WWW/freeway/
   GNUnet-docs/WWW/gnu.org/
   GNUnet-docs/WWW/gnunetgtk.php3
   GNUnet-docs/WWW/hacking.php3
   GNUnet-docs/WWW/hacking_afs.php3
   GNUnet-docs/WWW/hacking_application.php3
   GNUnet-docs/WWW/hacking_future.php3
   GNUnet-docs/WWW/hacking_index.inc
   GNUnet-docs/WWW/hacking_organization.php3
   GNUnet-docs/WWW/hacking_rpc.php3
   GNUnet-docs/WWW/hacking_server.php3
   GNUnet-docs/WWW/hacking_testcases.php3
   GNUnet-docs/WWW/hacking_threading.php3
   GNUnet-docs/WWW/hacking_ui.php3
   GNUnet-docs/WWW/hacking_util.php3
   GNUnet-docs/WWW/hacking_win32_build.php3
   GNUnet-docs/WWW/hostlist.php
   GNUnet-docs/WWW/html_footer.php3
   GNUnet-docs/WWW/html_header.php3
   GNUnet-docs/WWW/images/
   GNUnet-docs/WWW/irc.php3
   GNUnet-docs/WWW/links.php3
   GNUnet-docs/WWW/logos/
   GNUnet-docs/WWW/mailinglist.php3
   GNUnet-docs/WWW/menu.php3
   GNUnet-docs/WWW/news/
   GNUnet-docs/WWW/old_news.php3
   GNUnet-docs/WWW/papers.php3
   GNUnet-docs/WWW/philosophy.php3
   GNUnet-docs/WWW/protocol.php3
   GNUnet-docs/WWW/protocol_cs.php3
   GNUnet-docs/WWW/protocol_cs_afs.php3
   GNUnet-docs/WWW/protocol_cs_core.php3
   GNUnet-docs/WWW/protocol_cs_getoption.php3
   GNUnet-docs/WWW/protocol_cs_index.inc
   GNUnet-docs/WWW/protocol_cs_stats.php3
   GNUnet-docs/WWW/protocol_cs_traffic.php3
   GNUnet-docs/WWW/protocol_index.inc
   GNUnet-docs/WWW/protocol_p2p.php3
   GNUnet-docs/WWW/protocol_p2p_afs.php3
   GNUnet-docs/WWW/protocol_p2p_core.php3
   GNUnet-docs/WWW/protocol_p2p_dht.php3
   GNUnet-docs/WWW/protocol_p2p_index.inc
   GNUnet-docs/WWW/protocol_p2p_rpc.php3
   GNUnet-docs/WWW/protocol_p2p_tracekit.php3
   GNUnet-docs/WWW/protocol_transport.php3
   GNUnet-docs/WWW/protocol_transport_http.php3
   GNUnet-docs/WWW/protocol_transport_index.inc
   GNUnet-docs/WWW/protocol_transport_tcp.php3
   GNUnet-docs/WWW/protocol_transport_udp.php3
   GNUnet-docs/WWW/robots.txt
   GNUnet-docs/WWW/screenshots.php3
   GNUnet-docs/WWW/screenshots/
   GNUnet-docs/WWW/scripts.inc
   GNUnet-docs/WWW/scripts.php3
   GNUnet-docs/WWW/search.php
   GNUnet-docs/WWW/smtp.php3
   GNUnet-docs/WWW/t-shirt.ps
   GNUnet-docs/WWW/test/
   GNUnet-docs/WWW/testbed/
   GNUnet-docs/WWW/todo
   GNUnet-docs/WWW/user.php3
   GNUnet-docs/WWW/user_afs.php3
   GNUnet-docs/WWW/user_chat.php3
   GNUnet-docs/WWW/user_gnunet.php3
   GNUnet-docs/WWW/user_index.inc
   GNUnet-docs/WWW/user_namespaces.php3
   GNUnet-docs/WWW/user_testbed.php3
   gnunet-www/freeway-logos/contact.php
   gnunet-www/freeway-logos/doc/
   gnunet-www/freeway-logos/freeway.css
   gnunet-www/freeway-logos/index.php
   gnunet-www/freeway-logos/scripts.inc.php
   gnunet-www/gnunet-logos/debian.png
   gnunet-www/gnunet-logos/gentoo.png
   gnunet-www/gnunet-logos/mandriva.png
   gnunet-www/gnunet-logos/osx.png
   gnunet-www/gnunet-logos/suse.png
   gnunet-www/gnunet-logos/ubuntu.png
   gnunet-www/gnunet-logos/vmware.png
   gnunet-www/gnunet-logos/windows.png
Log:
cleaning up docs dir

Deleted: GNUnet-docs/WWW/documentation.php3
===================================================================
--- GNUnet-docs/WWW/documentation.php3  2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/documentation.php3  2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,60 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet Documentation";
-$description = "Overview of the available documentation for GNUnet";
-include("html_header.php3");
-
-H2("Documentation");
-BP();
-W("Documentation is always work in progress.");
-W("The current documentation describes GNUnet 0.8.x, but is of course 
incomplete.");
-EP();
-H3("i18nHTML");
-BP();
-W("The GNUnet webpage uses %s to internationalize the documentation.",
-  extlink_("/i18nHTML/", "i18nHTML"));
-W("Please feel encouraged to help, for example by translating some of the 
pages to your native language.");
-W("Just view the pages in your language and click on the &quot;*&quot; after a 
sentence to translate it.");
-W("If you are interested in translating into a language that does not yet 
exist, ask on IRC or Drupal.");
-W("Each account has a level associated with it.");
-W("Higher levels allow you to delete translations of lower-level accounts.");
-W("If you think you need and deserve the ability to delete translations, ask 
(on IRC or Drupal).");
-W("English is always the source language.");
-W("Only developers can change the source, contact them if you find problems.");
-W("On the translation page, you find all other translations.");
-W("You can also vote for a specific translation by clicking on the respective 
sentence.");
-W("You are allowed to vote multiple times for the same sentence, e.g. to 
express strong feelings. :-)");
-W("The system logs your IP and allows the administrator to easily undo all 
operations that were performed from a certain IP address.");
-if ($xlang && ($xlang != "English") ) {
-  W("You can translate the most commonly requested untranslated sentences for 
your language using the %s.",
-    intlink_("http://gnunet.org/i18nhtml/editor.php";, "mass translation 
page"));
- }
-
-
-P();
-W("You can access the sourcecode of the documentation using Subversion:");
-P();
-PRE("$ svn checkout https://gnunet.org/svn/GNUnet-docs/";);
-P();
-W("Generated doxygen documentation can be found %s.",
-  extlink_("doxygen/html", "here"));
-W("Like most documentation, it will probably never really be finished.");
-EP();
-H3("Table of Contents");
-gnunetlogo();
-echo "<ol>\n";
-LILI("philosophy.php3","Copyright and Philosophy");
-LILI("user.php3","Using GNUnet");
-include("user_index.inc"); 
-LILI("protocol.php3","The Protocols");
-include("protocol_index.inc"); 
-LILI("hacking.php3","Hacking GNUnet");
-include("hacking_index.inc"); 
-LI("Special topics"); 
-echo "<ol>\n";
-LILI("smtp.php3","Transport performance and SMTP setup"); 
-LILI("encoding.php3","Content encoding"); 
-echo "</ol>\n";
-echo "</ol>\n";
-include("html_footer.php3");
-?>

Deleted: GNUnet-docs/WWW/download/gnunet-fuse-0.8.0c.tar.bz2
===================================================================
(Binary files differ)

Deleted: GNUnet-docs/WWW/download/gnunet-gtk-0.8.1.tar.gz
===================================================================
(Binary files differ)

Deleted: GNUnet-docs/WWW/download/gnunet-qt-0.8.1.tar.bz2
===================================================================
(Binary files differ)

Deleted: GNUnet-docs/WWW/download/gnunet-qt-0.8.1.tar.gz
===================================================================
(Binary files differ)

Deleted: GNUnet-docs/WWW/download.php3
===================================================================
--- GNUnet-docs/WWW/download.php3       2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/download.php3       2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,295 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet: Download";
-$description = "This page lists the requirements for running GNUnet and 
provides links to download the software.";
-include("html_header.php3");
-
-H2("Introduction");
-BP();
-W("Please mind that this is a beta version.");
-W("The network has not been tested on a large scale and the code still 
requires some tuning.");
-W("There are various known portability problems.");
-W("Read the %s file to find out about known problems (and workarounds) for 
specific architectures.",
-       extlink_("https://gnunet.org/svn/GNUnet/PLATFORMS";, "PLATFORMS"));
-
-P();
-
-W("The network is still fairly small and downloads can be rather slow.");
-W("Only little content is available, thus it is not always a bug if you get 
few (or no) search results.");
-W("Mind that all queries are case-sensitive.");
-
-P();
-
-W("A subscription to GNUnet mailinglists might be a good idea, use 
<tt>help-gnunet</tt> or %s to report problems.",
-  extlink_("https://gnunet.org/mantis/","Mantis";));
-P();
-
-W("The next major release will be %s and is expected %s.",
-  ARRAY("0.9.0", "2010"));
-EP();
-
-H2("Binary packages");
-BP();
-W("GNUnet is available as ready-to-run software for a few platforms.");
-W("If you are unsure which download to choose, try the package for Windows.");
-
-W("If your operating system or distribution is not included in the list below, 
please ask your vendor or consider %s from %s.",
-       ARRAY(extlink_("user_gnunet.php3", "building GNUnet"), 
extlink_("#source", "source")));
-P();
-?>
-
-<table border="0" cellspacing="0" cellpadding="4">
-       <tr>
-               <td width="48" align="right">
-                       <img src="logos/windows.png" />
-               </td>
-               <td>
-                       <font class="header3">Windows</font>
-               </td>
-       </tr>
-       <tr>
-               <td />
-               <td>
-                       <a href="download/win32/Setup-0.8.1b.exe"><?php 
W("GNUnet installer (11 MB)"); ?></a>
-                       <br />
-                       <font color="FF0000">
-                       <?php
-                               W("Note: Microsoft Internet Explorer isn&apos;t 
able to verify the publisher of this executable. This is not a problem, you can 
verify its %s using %s.",
-                                 
ARRAY(extlink_("download/win32/Setup-0.8.1b.exe.asc", "digital signature"), 
extlink_("http://winpt.sourceforge.net/";, "WinPT")));
-                       ?>
-                       </font>
-               </td>
-       </tr>
-       <tr>
-               <td width="48" align="right">
-                       <img src="logos/gentoo.png" />
-               </td>
-               <td>
-                       <font class="header3">Gentoo</font>
-               </td>
-       </tr>
-       <tr>
-               <td />
-               <td>
-                       <a 
href="http://gentoo.zugaina.org/net-p2p.html.en";><?php W("Various GNUnet 
packages"); ?></a>
-               </td>
-       </tr>
-       <tr>
-               <td width="48" align="right">
-                       <img src="logos/ubuntu.png" />
-               </td>
-               <td>
-                       <font class="header3">Ubuntu</font>
-               </td>
-       </tr>
-       <tr>
-               <td />
-               <td>
-                       <?php
-                               W("Ubuntu 9.10 (Karmic Koala) already includes 
GNUnet 0.8.0c. For older Ubuntu releases follow the instructions below.");
-                               W("Inofficial packages for Ubuntu 9.04 (Jaunty 
Jackalope), 8.10 (Intrepid Ibex) and 8.04 (Hardy Heron) are provided by Markus 
through %s.", extlink_("https://launchpad.net/~teamgnunet/+archive/ppa";, 
"teamgnunet PPA"));
-                               W("You also need to %s the public key from the 
teamgnunet PPA, for example by executing this command:", 
extlink_("https://launchpad.net/+help/soyuz/ppa-sources-list.html";, "add"));
-                               PRE("$ sudo apt-key adv --keyserver 
keyserver.ubuntu.com --recv-keys 1024R/A52AD45F");
-                               BR();
-                               W("Add the following lines to %s to be able to 
install and update GNUnet using apt:", "/etc/apt/sources.list");
-                               PRE("$ deb 
http://ppa.launchpad.net/teamgnunet/ubuntu intrepid main");
-                               PRE("$ deb-src 
http://ppa.launchpad.net/teamgnunet/ubuntu intrepid main");
-                       ?>
-               </td>
-       </tr>
-       <tr>
-               <td />
-               <td>
-                       <?php
-                               W("Inofficial packages for Ubuntu 8.04 (Hardy 
Heron) by Markus");
-                               BR();
-                               W("Add the following lines to %s to be able to 
install and update GNUnet using apt:", "/etc/apt/sources.list");
-                               PRE("$ deb 
http://ppa.launchpad.net/teamgnunet/ubuntu hardy main");
-                               PRE("$ deb-src 
http://ppa.launchpad.net/teamgnunet/ubuntu hardy main");
-                       ?>
-               </td>
-       </tr>
-       <tr>
-               <td />
-               <td>
-                       <a 
href="http://packages.ubuntu.com/hardy/net/gnunet";><?php W("GNUnet core"); 
?></a>, <a href="http://packages.ubuntu.com/hardy/net/gnunet-gtk";><?php 
W("GNUnet graphical interface (gnunet-gtk)"); ?></a>
-               </td>
-       </tr>
-       <tr>
-               <td />
-               <td />
-       </tr>
-       <tr>
-               <td width="48" align="right">
-                       <img src="logos/suse.png" />
-               </td>
-               <td>
-                       <font class="header3">SuSE</font>
-               </td>
-       </tr>
-       <tr>
-               <td />
-               <td>
-                       <a 
href="http://software.opensuse.org/search?q=gnunet&baseproject=ALL&p=1";><?php 
W("Various GNUnet packages"); ?></a>
-               </td>
-       </tr>
-<!--
-       <tr>
-               <td />
-               <td />
-       </tr>
-       <tr>
-               <td width="48" align="right">
-                       <img src="logos/vmware.png" />
-               </td>
-               <td>
-                       <font class="header3">VMware, QEMU</font>
-               </td>
-       </tr>
-       <tr>
-               <td />
-               <td>
-                       <a 
href="http://www.vmware.com/vmtn/appliances/directory/365";>GNUnet Live 
System</a>
-               </td>
-       </tr>
-       <tr>
-               <td />
-               <td />
-       </tr>
--->
-       <!--
-       <tr>
-               <td />
-               <td />
-       </tr>
-       <tr>
-               <td width="48" align="right">
-                       <img src="logos/osx.png" />
-               </td>
-               <td>
-                       <font class="header3">Mac OS X</font>
-               </td>
-       </tr>
-       <tr>
-               <td />
-               <td>
-                       <a 
href="http://www.chem.jyu.fi/~eloranta/GNUnet.html";><?php W("Jussi 
Eloranta&prime;s port"); ?></a>
-               </td>
-       </tr>
-       -->
-</table>
-
-<?php
-EP();
-ANCHOR("source");
-H2("Source");
-BP();
-W("GNUnet&prime;s source code is released under the %s.",
-       extlink_("https://gnunet.org/svn/GNUnet/COPYING";, "GPL"));
-BR();
-W("The latest release is here: ");
-BR();
-echo "<ul>\n";
-LIV(extlink_("download/GNUnet-0.8.1b.tar.gz","GNUnet-0.8.1b.tar.gz (2340 
kb)"));
-LIV(extlink_("download/gnunet-gtk-0.8.1a.tar.gz" , "gnunet-gtk-0.8.1a.tar.gz 
(1108 kb)"));
-LIV(extlink_("download/gnunet-qt-0.8.1a.tar.gz" , "gnunet-qt-0.8.1a.tar.gz 
(335 kb)"));
-LIV(extlink_("download/gnunet-fuse-0.8.0c.tar.gz" , "gnunet-fuse-0.8.0c.tar.gz 
(103 kb)"));
-echo "</ul>\n";
-
-BP();
-W("The current development code is available from our Subversion repository.");
-W("You can access it using");
-EP();
-PRE("$ svn checkout https://gnunet.org/svn/GNUnet/";);
-BP();
-W("The various frontends are available at the following locations:");
-EP();
-PRE("$ svn checkout https://gnunet.org/svn/gnunet-gtk/";);
-PRE("$ svn checkout https://gnunet.org/svn/gnunet-qt/";);
-PRE("$ svn checkout https://gnunet.org/svn/gnunet-fuse/";);
-P();
-W("For access to the freeway code use:");
-EP();
-PRE("$ svn checkout https://gnunet.org/svn/freeway/";);
-EP();
-
-H2("System Requirements");
-H3("Hardware");
-echo "<ul>";
-echo "<li>Pentium 100 Mhz, 32 MB RAM</li>";
-echo "</ul>";
-H3("Operating system");
-echo "<ul>";
-echo   "<li><a href=\"http://www.gnu.org/\";>GNU</a>/<a 
href=\"http://www.kernel.org/\";>Linux</a>, ";
-echo           "<a href=\"http://www.sun.com/software/solaris/\";>Solaris 
(&gt;= 8)</a>, OS X &gt; 10.3, Win32, ";
-echo           "<a href=\"http://www.freebsd.org/\";>FreeBSD (&gt;= 5 
recommended)</a>, ";
-echo           "<a href=\"http://www.openbsd.org/\";>OpenBSD</a> ";
-W("or");
-echo           " <a href=\"http://www.netbsd.org/\";>NetBSD</a>.</li>";
-echo "</ul>";
-H3("3rd party libraries");
-BP();
-W("GNUnet uses some other free software libraries.");
-W("They are part of the Windows installer above, so you do not have to 
download them for Windows.");
-BR();
-W("If you want to build GNUnet from source, you need the corresponding 
development packages, too.");
-EP();
-?>
-<ul>
- <li><strong><?php W("Required:"); ?></strong>
-     <a href="http://www.gnu.org/software/gmp/";>GNU MP Bignum Library</a> 
(&gt;= 4.0.0)</li>
- <li><strong><?php W("Required:"); ?></strong>
-     <a href="http://www.gnu.org/directory/security/libgcrypt.html";>libgcrypt 
(&gt;= 1.2.0)</a></li>
- <li><strong><?php W("Required:"); ?></strong>
-     <a href="/libextractor/">libextractor (&gt;= 0.5.16)</a></li>
- <li><strong><?php W("Required:"); ?></strong>
-     <a href="http://www.zlib.net/";>zlib</a></li>
- <li><strong><?php W("Required:"); ?></strong>
-     <a href="http://www.sqlite.org/";>sqlite</a> (&gt;= 3.0.0)</li>
- <li><strong><?php W("Required:"); ?></strong>
-     <a href="http://www.gtk.org/";>gtk+ &gt;= 2.6</a></li>
- <li><strong><?php W("Required:"); ?></strong>
-     <a href="http://glade.gnome.org/";>glade &gt;= 2.10</a></li>
- <li><strong><?php W("Required:"); ?></strong>
-     <a href="http://curl.haxx.se/";>libcurl</a></li>
- <li><strong><?php W("Required:"); ?></strong>
-     <a href="http://www.gnu.org/software/guile/guile.html";>Guile &gt;= 
1.8</a></li>
- <li><strong><?php W("Required:"); ?></strong>
-     <a href="http://invisible-island.net/dialog/";>dialog &gt;= 
1.0-20060221</a></li>
- <li><strong><?php W("Recommended:"); ?> </strong> 
-     <a href="/libmicrohttpd/">GNU libmicrohttpd</a> (&gt;= 0.3.1)</li>
- <li><strong><?php W("Recommended:"); ?> </strong> 
-     <a href="http://www.mysql.com/";>mysql</a> (&gt;= 5.0.8)</li>
- <li><strong><?php W("Recommended:"); ?></strong>
-     <a href="http://xmlsoft.org/";>libxml2</a></li>
- <li><strong><?php W("Optional:"); ?></strong>
-     <a href="http://www.gnu.org/software/gettext/";>GNU gettext (&gt;= 
0.16.1)</a></li>
- <li><strong><?php W("Optional:"); ?></strong>
-     <a href="http://www.gnu.org/software/ncurses/";>ncurses</a></li>
- <li><strong><?php W("Optional:"); ?></strong>
-     <a href="http://www.gnu.org/software/adns/";>GNU adns</a></li>
- <li><strong><?php W("Optional:"); ?></strong>
-     <a href="http://www.nongnu.org/gksu/";>GKSu</a></li>
- <li><strong><?php W("Optional:"); ?></strong>
-     <a href="http://www.galago-project.org/downloads.php/";>libnotify</a></li>
- </ul>
-<?php
-BP();
-W("A complete list for Debian is %s.", 
extlink_("https://gnunet.org/svn/GNUnet/README.debian";, "available"));
-EP();
-
-H3("Required for building GNUnet from source");
-?>
- <ul>
- <li><strong><?php W("for SVN:");?></strong>
-     <a href="http://www.gnu.org/software/autoconf/";>autoconf (&gt;= 2.59)</a> 
<?php W("and"); ?>
-     <a href="http://www.gnu.org/software/automake/";>automake (&gt;= 1.8)</a> 
<?php W("and"); ?>
-     <a href="http://www.gnu.org/software/libtool/";>libtool (&gt;= 1.5.6)</a> 
<?php W("and"); ?>
-     <a href="http://www.gnu.org/software/gettext/";>GNU gettext (&gt;= 
0.14.1)</a></li>
- <li><strong><?php W("Required to build Windows binaries:"); ?></strong>
-     <a href="http://plibc.sf.net/";>PlibC</a></li>
-</ul>
-
-<?php
-include("html_footer.php3");
-?>

Deleted: GNUnet-docs/WWW/encoding.php3
===================================================================
--- GNUnet-docs/WWW/encoding.php3       2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/encoding.php3       2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,47 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "The Encoding for Censorship-Resistant Sharing";
-$description = "ECRS, the censorship-resistant content encoding for GNUnet 
file sharing";
-include("html_header.php3");
-
-H2("The Encoding for Censorship-Resistant Sharing");
-BP();
-W("When GNUnet shares files, it uses a content encoding that is called ECRS, 
the Encoding for Censorship-Resistant Sharing.");
-W("Most of ECRS is described in %s research paper.",
-  extlink_("download/ecrs.ps", "this"));
-W("ECRS obsoletes the previous %s and ESED II encodings which were used in 
GNUnet before version 0.7.0.",
-  extlink_("download/esed.ps", "ESED"));
-BR();
-W("The rest of this page assumes that the reader is familiar with the %s.",
-  extlink_("download/ecrs.ps", "ECRS paper"));
-W("What follows is a description of some minor extensions that GNUnet makes 
over what is described in the paper.");
-W("The reason why these extensions are not in the paper is that we felt that 
they were obvious or trivial extensions to the original scheme and thus did not 
warrant space in the research report.");
-EP();
-
-H3("Namespace Advertisements");
-BP();
-W("An <tt>SBlock</tt> with identifier 'all zeros' is a signed advertisement 
for a namespace.");
-W("This special <tt>SBlock</tt> contains metadata describing the content of 
the namespace.");
-W("Instead of the name of the identifier for a potential update, it contains 
the identifier for the root of the namespace.");
-W("The URI should always be empty.");
-W("The <tt>SBlock</tt> is signed with the content provder's RSA private key 
(just like any other SBlock).");
-W("Peers can search for <tt>SBlock</tt>s in order to find out more about a 
namespace.");
-EP();
-
-H3("KSBlocks");
-BP();
-+W("GNUnet implements <tt>KSBlocks</tt> which are <tt>KBlocks</tt> that, 
instead of encrypting a CHK and metadata, encrypt an <tt>SBlock</tt> instead.");
-W("In other words, <tt>KSBlocks</tt> enable GNUnet to find <tt>SBlocks</tt> 
using the global keyword search.");
-W("Usually the encrypted <tt>SBlock</tt> is a namespace advertisement.");
-W("The rationale behind <tt>KSBlock</tt>s and <tt>SBlock</tt>s is to enable 
peers to discover namespaces via keyword searches, and, to associate useful 
information with namespaces.");
-W("When GNUnet finds <tt>KSBlocks</tt> during a normal keyword search, it adds 
the information to an internal list of discovered namespaces.");
-W("Users looking for interesting namespaces can then inspect this list, 
reducing the need for out-of-band discovery of namespaces.");
-W("Naturally, namespaces (or more specifically, namespace advertisements) can 
also be referenced from directories, but <tt>KSBlock</tt>s should make it 
easier to advertise namespaces for the owner of the pseudonym since they 
eliminate the need to first create a directory.");
-P();
-W("Collections are also advertised using <tt>KSBlock</tt>s.");
-EP();
-
-
-
-include("html_footer.php3");
-?>

Deleted: GNUnet-docs/WWW/faq.php3
===================================================================
--- GNUnet-docs/WWW/faq.php3    2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/faq.php3    2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,897 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet FAQ";
-$description="Frequently asked questions about GNUnet.";
-include("html_header.php3");
-
-H2("Questions");
-
-H3("General");
-
-echo "<ul>\n";
-LIV(extlink_("#raq",       "What do I do if my question is not answered 
here?"));
-LIV(extlink_("#compare",   "How does GNUnet compare to other file-sharing 
applications?"));
-LIV(extlink_("#anonymity", "What do you mean by &#8220;anonymity&#8221;?"));
-LIV(extlink_("#accounting","How does &#8220;accounting&#8221; work?"));
-LIV(extlink_("#license",   "Is the code free?"));
-LIV(extlink_("#speed",     "Isn&#8217;t all this encryption going to make 
things totally slow?"));
-LIV(extlink_("#attacks",   "Are there any known attacks?"));
-echo "</ul>\n";
-
-
-H3("Features");
-
-echo "<ul>\n";
-LIV(extlink_("#next",   "When are you going to release the next version?"));
-LIV(extlink_("#gui" ,   "Is there a graphical user interface (GUI)?"));
-LIV(extlink_("#tui" ,   "How can I use GNUnet from the command line?"));
-LIV(extlink_("#GNUwww", "Is it possible to surf the WWW anonymously with 
GNUnet?"));
-LIV(extlink_("#GNUweb", "Is it possible to access GNUnet via a browser as an 
anonymous WWW?"));
-LIV(extlink_("#new",    "I have some great idea for a new feature, what should 
I do?"));
-echo "</ul>\n";
-
-
-H3("Configuration and Installation");
-
-echo "<ul>\n";
-LIV(extlink_("#platform", "On which platforms does GNUnet run?"));
-LIV(extlink_("#database", "What is the right database for me?"));
-LIV(extlink_("#firewall", "How do I have to configure my firewall?"));
-LIV(extlink_("#shapers",  "Why should I not use an external traffic shaper?"));
-LIV(extlink_("#keywords", "Why do you require GNU libextractor?"));
-LIV(extlink_("#dependencies", "What are all of the dependencies for building 
GNUnet?"));
-echo "</ul>\n";
-
-
-H3("Error messages and bugs");
-
-echo "<ul>\n";
-LIV(extlink_("#assertion","I get error messages of the form &quot;Failure at 
FILE.c:LINE&quot;.  What is going on?"));
-LIV(extlink_("#hostkey",  "Checksum error: the deleted hostkey problem."));
-LIV(extlink_("#knownbugs","Are there any known bugs?"));
-LIV(extlink_("#bugs",     "How do I report a bug?"));
-echo "</ul>\n";
-
-
-H3("Common problems");
-
-echo "<ul>\n";
-LIV(extlink_("#test",       "I cannot find anything. How can I test if it 
works?"));
-LIV(extlink_("#lastblocks", "Why is downloading the last few blocks so 
slow?"));
-LIV(extlink_("#delete",     "<tt>gnunet-unindex</tt> behaves in unexpected 
ways."));
-LIV(extlink_("#tell",       "How can I see which files I have indexed/inserted 
(names, descriptions, keywords)?"));
-echo "</ul>\n";
-
-
-H3("Using GNUnet");
-
-echo "<ul>\n";
-LIV(extlink_("#spam", "Why should I insert directories instead of individual 
files?"));
-echo "</ul>\n";
-
-
-H2("Answers");
-
-H3("General");
-
-ANCHOR("raq");
-H4("What do I do if my question is not answered here?");
-BP();
-W("There are many other sources of information.");
-W("You can read additional %s, ask the question on one of the %s.",
-  ARRAY(intlink_("documentation.php3", "documentation"),
-       intlink_("mailinglist.php3","mailing lists")));
-EP();
-
-ANCHOR("compare");
-H4("How does GNUnet compare to other file-sharing applications?");
-BP();
-W("As opposed to Napster and Gnutella, GNUnet was designed with security in 
mind as the highest priority.");
-W("We intend on producing a network with high security guarantees.");
-W("Napster and Gnutella are open to a wide variety of attacks, and users have 
little privacy.");
-W("GNUnet is also free software and thus the source code is available, so you 
do not have to worry about being spied upon by the software.");
-W("The following table summarizes the main differences between GNUnet and 
other systems.");
-W("The information is accurate to the best of our knowledge, but especially 
for the commercial systems that does not mean much.");
-W("The comparison is also difficult since there are sometimes differences 
between various implementations of (almost) the same protocol.");
-W("In general, we pick a free implementation as the reference implementation 
since it is possible to inspect the free code easily.");
-W("Also, all of these systems are changing over time and thus the data below 
may not be up-to-date.");
-W("If you find any flaws, please let us know.");
-W("Finally, the table is not saying much (it is hard to compare these systems 
this briefly), so if you want the real differences, read the %s (and probably 
the code).",
-  intlink_("papers.php3","research papers"));
-EP();
-?>
-<center>
- <table border="0" cellspacing="0" cellpadding="0" width="90%">
-  <tr>
-   <th class="tbl"><?php W("Network"); ?></th>
-   <th class="tbl"><?php 
W("%s",extlink_("http://www.gnu.org/software/gnunet/";, "GNUnet")); ?></th>
-   <th class="tbl"><?php W("%s",extlink_("http://knapster.sourceforge.net/";, 
"Napster")); ?></th>
-   <th class="tbl"><?php W("%s",extlink_("http://dcgui.berlios.de/","Direct 
Connect")); ?></th>
-   <th class="tbl"><?php W("%s",extlink_("http://gift.sourceforge.net/";, 
"FastTrack")); ?></th>
-   <th class="tbl"><?php W("%s",extlink_("http://www.emule-project.org/";, 
"eDonkey")); ?></th>
-   <th class="tbl"><?php 
W("%s",extlink_("http://gtk-gnutella.sourceforge.net/";, "Gnutella")); ?></th>
-   <th class="tbl"><?php 
W("%s",extlink_("http://www.freenetproject.org/","Freenet";)); ?></th>
-  </tr>
-  <tr>
-   <th class="tbl"><?php W("Distributed Queries"); ?></th>
-   <td class="tbl"><?php W("yes"); ?></td>
-   <td class="tbl"><?php W("no"); ?></td>
-   <td class="tbl"><?php W("hubs"); ?></td>
-   <td class="tbl"><?php W("super-peers"); ?></td>
-   <td class="tbl"><?php W("DHT (eMule)"); ?></td>
-   <td class="tbl"><?php W("yes"); ?></td>
-   <td class="tbl"><?php W("yes"); ?></td>
-  </tr>
-  <tr>
-   <th class="tbl"><?php W("Multisource Download"); ?></th>
-   <td class="tbl"><?php W("yes"); ?></td>
-   <td class="tbl"><?php W("no"); ?></td>
-   <td class="tbl"><?php W("no"); ?></td>
-   <td class="tbl"><?php W("yes"); ?></td>
-   <td class="tbl"><?php W("yes"); ?></td>
-   <td class="tbl"><?php W("yes"); ?></td>
-   <td class="tbl"><?php W("no"); ?></td>
-  </tr>
-  <tr>
-   <th class="tbl"><?php W("Economics"); ?></th>
-   <td class="tbl"><?php W("yes"); ?></td>
-   <td class="tbl"><?php W("no");  ?></td>
-   <td class="tbl"><?php W("no");  ?></td>
-   <td class="tbl"><?php W("no");  ?></td>
-   <td class="tbl"><?php W("yes"); ?></td>
-   <td class="tbl"><?php W("no");  ?></td>
-   <td class="tbl"><?php W("no");  ?></td>
-  </tr>
-  <tr>
-   <th class="tbl"><?php W("Anonymity"); ?></th>
-   <td class="tbl"><?php W("yes"); ?></td>
-   <td class="tbl"><?php W("no");  ?></td>
-   <td class="tbl"><?php W("no");  ?></td>
-   <td class="tbl"><?php W("no");  ?></td>
-   <td class="tbl"><?php W("no");  ?></td>
-   <td class="tbl"><?php W("no");  ?></td>
-   <td class="tbl"><?php W("yes"); ?></td>
-  </tr>
-  <tr>
-   <th class="tbl"><?php W("Language"); ?></th>
-   <td class="tbl"><?php W("C"); ?></td>
-   <td class="tbl"><?php W("often C");   ?></td>
-   <td class="tbl"><?php W("C++"); ?></td>
-   <td class="tbl"><?php W("C");  ?></td>
-   <td class="tbl"><?php W("C++");  ?></td>
-   <td class="tbl"><?php W("often C");   ?></td>
-   <td class="tbl"><?php W("Java");   ?></td>
-  </tr>
-  <tr>
-   <th class="tbl"><?php W("Transport Protocol"); ?></th>
-   <td class="tbl"><?php W("UDP, TCP, SMTP, HTTP"); ?></td>
-   <td class="tbl"><?php W("TCP");      ?></td>
-   <td class="tbl"><?php W("TCP?");     ?></td>
-   <td class="tbl"><?php W("UDP, TCP"); ?></td>
-   <td class="tbl"><?php W("UDP, TCP"); ?></td>
-   <td class="tbl"><?php W("TCP"); ?></td>
-   <td class="tbl"><?php W("TCP"); ?></td>
-  </tr>
-  <tr>
-   <th class="tbl"><?php W("Query Format (UI)"); ?></th>
-   <td class="tbl"><?php W("keywords / ECRS URIs"); ?></td>
-   <td class="tbl"><?php W("keywords");       ?></td>
-   <td class="tbl"><?php W("filename, THEX"); ?></td>
-   <td class="tbl"><?php W("filename, SHA");  ?></td>
-   <td class="tbl"><?php W("filename, MD4?"); ?></td>
-   <td class="tbl"><?php W("filename, SHA");  ?></td>
-   <td class="tbl"><?php W("secret key, CHK");     ?></td>
-  </tr>
-  <tr>
-   <th class="tbl"><?php W("Routing"); ?></th>
-   <td class="tbl"><?php W("dynamic (indirect, direct)"); ?></td>
-   <td class="tbl"><?php W("always direct");   ?></td>
-   <td class="tbl"><?php W("always direct");   ?></td>
-   <td class="tbl"><?php W("always direct");   ?></td>
-   <td class="tbl"><?php W("always direct");   ?></td>
-   <td class="tbl"><?php W("always direct");   ?></td>
-   <td class="tbl"><?php W("always indirect"); ?></td>
-  </tr>
-  <tr>
-   <th class="tbl"><?php W("License"); ?></th>
-   <td class="tbl"><?php W("GPL");                ?></td>
-   <td class="tbl"><?php W("GPL (knapster)");     ?></td>
-   <td class="tbl"><?php W("GPL (Valknut)");      ?></td>
-   <td class="tbl"><?php W("GPL (giFT)");         ?></td>
-   <td class="tbl"><?php W("GPL (eMule)");        ?></td>
-   <td class="tbl"><?php W("GPL (gtk-gnutella)"); ?></td>
-   <td class="tbl"><?php W("GPL");                ?></td>
-  </tr>
- </table>
-</center>
-<?php
-
-/* Q:  How about modularity (adaptation for new uses, besides file
-         sharing) and block size, in the previous table ? - IW
-     Re: Well, Freenet has been adapted for lots of new uses,
-         we currently would claim that it is possible but did
-         not really do it yet.  The others, well, probably not
-         at all, but I&#8217;m not sure that we have a strong story
-         at this point.  */
-BP();
-W("Another important point of reference are the various anonymous peer-to-peer 
networks.");
-W("Here, there are differences in terms of application domain and how 
specifically anonymity is achieved.");
-W("Anonymous routing is a hard research topic, so for a superficial 
comparisson like this one we focus on the latency.");
-W("Another important factor is the programming language.");
-W("Type-safe languages may offer certain security benefits; however, this may 
come at the cost of significant increases in resource consumption which in turn 
may reduce anonymity.");
-EP();
-?>
-<center>
- <table border="0" cellspacing="0" cellpadding="0" width="90%">
-  <tr>
-   <th class="tbl"><?php W("Network"); ?></th>
-   <th class="tbl"><?php 
W("%s",extlink_("http://www.gnu.org/software/gnunet/";, "GNUnet")); ?></th>
-   <th class="tbl"><?php W("%s",extlink_("http://tor.eff.org/";, "Tor")); 
?></th>
-   <th class="tbl"><?php W("%s",extlink_("http://www.invisiblenet.net/iip/";, 
"IIP")); ?></th>
-   <th class="tbl"><?php W("%s",extlink_("http://www.i2p.net/","I2P";)); ?></th>
-   <th class="tbl"><?php W("%s",extlink_("http://mute-net.sourceforge.net/";, 
"Mute")); ?></th>
-   <th class="tbl"><?php 
W("%s",extlink_("http://www.freenetproject.org/","Freenet";)); ?></th>
-   <th class="tbl"><?php 
W("%s",extlink_("http://mixminion.net/","Mixminion";)); ?></th>
-  </tr>
-  <tr>
-   <th class="tbl"><?php W("Latency"); ?></th>
-   <td class="tbl"><?php W("medium"); ?></td>
-   <td class="tbl"><?php W("low"); ?></td>
-   <td class="tbl"><?php W("low"); ?></td>
-   <td class="tbl"><?php W("low"); ?></td>
-   <td class="tbl"><?php W("low"); ?></td>
-   <td class="tbl"><?php W("low"); ?></td>
-   <td class="tbl"><?php W("high"); ?></td>
-  </tr>
-  <tr>
-   <th class="tbl"><?php W("Application"); ?></th>
-   <td class="tbl"><?php W("file-sharing"); ?></td>
-   <td class="tbl"><?php W("TCP tunnel / HTTP"); ?></td>
-   <td class="tbl"><?php W("IRC"); ?></td>
-   <td class="tbl"><?php W("TCP tunnel / IRC"); ?></td>
-   <td class="tbl"><?php W("file-sharing"); ?></td>
-   <td class="tbl"><?php W("file-sharing"); ?></td>
-   <td class="tbl"><?php W("E-mail"); ?></td>
-  </tr>
-  <tr>
-   <th class="tbl"><?php W("Language"); ?></th>
-   <td class="tbl"><?php W("C"); ?></td>
-   <td class="tbl"><?php W("C");  ?></td>
-   <td class="tbl"><?php W("C");  ?></td>
-   <td class="tbl"><?php W("Java");  ?></td>
-   <td class="tbl"><?php W("C++"); ?></td>
-   <td class="tbl"><?php W("Java");  ?></td>
-   <td class="tbl"><?php W("Python/C");  ?></td>
-  </tr>
-
- </table>
-</center>
-<?php
-
-
-ANCHOR("anonymity"); 
-H4("What do you mean by &#8220;anonymity&#8221;?");
-BP();
-W("Anonymity is the lack of distinction of an individual from a (large) 
group.");
-W("A central goal for anonymous file-sharing in GNUnet is to make all users 
(peers) form a group and to make communications in that group anonymous, that 
is, nobody (but the initiator) should be able to tell which of the peers in the 
group originated the message.");
-W("In other words, it should be difficult to impossible for an adversary to 
distinguish between the originating peer and all other peers.");
-W("In particular, even peers should not be able to recognize from which node 
the message originated, after all, the adversary could control one or more of 
the peers.");
-P();
-W("Of course, in practice, it may be possible for a powerful adversary to do 
some analysis and potentially assign higher probabilities for being the 
originator of a message to a subset of the peers.");
-W("The GNUnet anonymity protocol tries to make this as hard as possible (see 
%s).",
-  extlink_("download/aff.ps","our paper on anonymity"));
-W("The degree of anonymity (how hard it would be to distinguish an individual 
from the group) in GNUnet depends on the resources (mostly bandwidth) that the 
individual has available to achieve anonymity.");
-P();
-W("In the case that an extremely powerful adversary was to break the anonymity 
of a peer, GNUnet provides <em>deniability</em>.");
-W("Deniability means that the communication is secret in the sense that only 
the final recipient knows the key to decrypt the message.");
-W("The sender and the intermediaries are unable to determine the actual 
contents.");
-W("Since content migrates in the network, the originator of the content can 
often plausibly deny knowledge of the contents since the content could have 
migrated to the peer, making the originator indistinguishable from an 
intermediary.");
-W("Since intermediaries have no means of decrypting the content and are (in 
all sane legal systems) thus not legally responsible for them (if you use the 
Internet to send an encrypted E-mail, your Internet Service Provider (ISP) will 
typically not be held responsible for the content that its servers transmit; in 
GNUnet, every peer plays the role of an ISP, providing Internet services to 
other peers).");
-EP();
-
-
-ANCHOR("accounting");
-H4("How does &#8220;accounting&#8221; work?");
-BP();
-W("GNUnet is based on a trust-based economic model.");
-W("Each node is forming an <em>opinion</em> on all the other nodes it is in 
contact with.");
-W("Depending on that opinion, the node will decide which requests it will 
honor.");
-P();
-W("As long as a node is not busy, it will typically serve all requests, using 
excess resources to gain popularity.");
-W("If it gets busy, it will drop requests from nodes that the local node 
trusts least.");
-W("How busy a node can get (bandwidth and CPU wise) is up to the user to 
configure.");
-W("The node increases its trust in nodes that send replies to queries and 
reduces its trust in nodes that ask for content.");
-W("The %s ensures that replies are always correct and can not be made up to 
earn trust without really contributing (see also the %s paper and the %s for 
details).",
-  ARRAY(intlink_("encoding.php3","GNUnet encoding"),
-       extlink_("download/ecrs.ps","ECRS"),
-       intlink_("encoding.php3","encoding page")));
-P();
-W("The economic model is designed in a way that the damage that a malicious 
node can do is bounded by the formula");
-EP();
-echo "<center>";
-BP();
-W("damage - contribution  &lt;  capacity + epsilon");
-EP();
-echo "</center>";
-BP();
-W("where contribution is the amount of resources the node has given to GNUnet, 
capacity is the network capacity of the malicious node (it is impossible to 
keep a node from causing as much traffic as its own connection can support; 
yet, unlike other networks, that traffic is <em>not</em> multiplied by other 
nodes).");
-W("Epsilon is a number smaller than the excess capacity of the network, 
whereas the excess capacity of the network are wasted resources (idle CPUs, 
idle network connections).");
-EP();
-
-
-ANCHOR("license");
-H4("Is the code free?");
-BP();
-W("GNUnet is free software, available under the %s (GPL).",
-  extlink_("http://www.gnu.org/copyleft/gpl.html";,
-           "GNU Public License"));
-W("You are free to run, distribute or modify the code under the terms stated 
in that license.");
-W("We are a part of the %s.",
-  extlink_("http://www.gnu.org/","GNU project"));
-EP();
-
-
-ANCHOR("speed"); 
-H4("Isn&#8217;t all this encryption going to make things totally slow?");
-BP();
-W("The answer to this is, that encryption is incredibly fast.");
-W("GNUnet uses mostly AES-256, a very fast and secure cipher.");
-W("What really often makes anonymous file-sharing slow are artificial delays 
that were introduced to make timing analysis hard and to group messages into 
larger packets.");
-W("The reason is, that this makes it harder to correlate actions.");
-W("GNUnet must wait for enough traffic from other peers to make it plausible 
that the traffic did not originate from the local peer.");
-W("Larger delays also allow for more reordering of messages by the individual 
peer.");
-W("By allowing peers to delay messages, it is easier for them to build more 
efficient messages.");
-P();
-W("The primary cause of CPU consumption in the current implementation are 
algorithms for message scheduling.");
-W("GNUnet peers try to maximize bandwidth utility by reordering messages.");
-W("Also performing downloads in parallel can cause some significant accounting 
issues.");
-W("Many datastructures used currently are simple lists that take time linear 
to their size to operate on.");
-W("For local indexing operations the current release is typically pushing the 
limits of both the CPU and the harddrive.");
-P();
-W("We expect to use smarter, faster datastructures in the future to reduce CPU 
consumption.");
-W("The GNUnet developers are always trying to improve performance; yet, there 
is not much hope that performance will ever get close to typical response times 
from other applications like the WWW.");
-W("Theoretically, it is possible that a download via GNUnet is even faster 
than a download from a crowded webserver or a single dialup user, but how 
likely this is depends in practice on how the content is spread throughout the 
network -- and we neither promise nor really expect to achieve this level of 
performance.");
-W("While peer-to-peer networks can theoretically provide better performance 
than dedicated servers, their true strength lies in the possibility of being 
anarchistic: low administrative overhead, anonymity, no single point of 
failure.");
-W("Complete decentralization is very costly and we should thus not expect to 
outperform the centralized solution, especially not if we also want 
anonymity.");
-EP();
-
-
-ANCHOR("attacks"); 
-H4("Are there any known attacks?");
-BP();
-W("Generally, there is the possibility of a known plaintext attack on 
keywords, but since the user has control over the keywords that are associated 
with the content he inserts, the user can take advantage of the same techniques 
used to generate reasonable passwords to defend against such an attack.");
-W("In any event, we are not trying to <i>hide</i> content; thus, unless the 
user is trying to insert information into the network that can only be shared 
with a small group of people, there is no real reason to try to obfuscate the 
content by choosing a difficult keyword anyway.");
-W("Note that it is not necessary to use keywords (or even intelligible 
keywords) at all.");
-W("The file identifiers (two hash codes and filesize) can also be shared 
off-band.");
-P();
-W("Most attacks on anonymity involve a resource battle between the attacker 
and the victim.");
-W("If the attacker has significantly more resources (bandwidth, control over 
Internet routers, many peers), anonymity can theoretically always be broken.");
-W("In fact, this applies to all other systems that provide anonymity.");
-W("Unlike other designs, the degree of anonymity that can be achieved in 
GNUnet depends mostly on which fraction of its resources each peer spends on 
its own requests.");
-P();
-W("Since this is a project in development, you can find a list of problems or 
report them using the %s system.",
-  extlink_("https://gnunet.org/mantis/","Mantis";));
-EP();
-
-
-
-H3("Features");
-
-ANCHOR("next");
-H4("When are you going to release the next version?");
-BP();
-W("The general answer is, when it is ready.");
-W("A better answer may be, earlier if you contribute (test, debug, code, 
document).");
-W("Every release will be anounced on the %s mailing list and on %s.",
-  ARRAY(extlink_("http://mail.gnu.org/mailman/listinfo/info-gnunet";,
-        "Announcements"),
-       extlink_("http://freshmeat.net/projects/gnunet/";,
-        "freshmeat")));
-W("You can subscribe to the mailing list or to the project on freshmeat to 
automatically receive a notification.");
-EP();
-
-
-ANCHOR("gui");H4("Is there a graphical user interface?");
-BP();
-W("There are actually two graphical user interfaces, <tt>gnunet-gtk</tt> and 
<tt>gnunet-qt</tt>.");
-W("Note that both of these need to be downloaded separately.");
-W("The GUIs supports searching, downloading and inserting files.");
-EP();
-
-
-ANCHOR("tui");H4("How can I use GNUnet from the command line?");
-BP();
-W("Yes, except for image previews pretty much all features can be accessed 
with various command line tools.");
-W("Use <tt>gnunet-search</tt> to search for content:");
-P();
-PRE("$ ~/bin/gnunet-search GPL\n" .
-    
"gnunet://ecrs/chk/9E4MDN4VULE8KJG6U1C8FKH5HA8C5CHSJTILRTTPGK8MJ6VHORERHE68JU8Q0FDTOH1DGLUJ3NLE99N0ML0N9PIBAGKG7MNPBTT6UKG.1I823C58O3LKS24LLI9KB384LH82LGF9GUQRJHACCUINSCQH36SI4NF88CMAET3T3BHI93D4S0M5CC6MVDL1K8GFKVBN69Q6T307U6O.17992:\n"
 .
-    "gnunet-download -o &quot;COPYING&quot; 
gnunet://ecrs/chk/9E4MDN4VULE8KJG6U1C8FKH5HA8C5CHSJTILRTTPGK8MJ6VHORERHE68JU8Q0FDTOH1DGLUJ3NLE99N0ML0N9PIBAGKG7MNPBTT6UKG.1I823C58O3LKS24LLI9KB384LH82LGF9GUQRJHACCUINSCQH36SI4NF88CMAET3T3BHI93D4S0M5CC6MVDL1K8GFKVBN69Q6T307U6O.17992\n"
 .
-    "                    filename: COPYING\n" .
-    "                 description: The GNU Public License\n" .
-    "                      author: RMS\n" .
-    "            publication date: Sat Jun 25 08:29:13 2005");
-P();
-W("The output above is the result of searching for the keyword 
&#8220;GPL&#8221;.");
-W("<tt>gnunet-search</tt> will immediately start searching GNUnet and print 
new results (no duplicates) to the screen.");
-W("The first line is the information that is required to retrieve the file 
(query-hash, key-hash, and the size of the file, here 17992 bytes).");
-P();
-W("This is followed by additional information about the file.");
-W("In order to download the file, use");
-P();
-PRE("$ gnunet-download -o &quot;COPYING&quot; -- 
gnunet://ecrs/chk/N8RCF3TETLRU9CV1PAS7M2H9QDB36AE3.K9JO8IP7KTNFO23S3VB4TFUKLD7SO5AS.0466DC92.17992");
-P();
-W("where <tt>COPYING</tt> is the suggested filename.");
-P();
-W("If you want to add content to GNUnet, use");
-EP();
-PRE("$ gnunet-insert -m &quot;description:The GNU Public License&quot; -k GPL 
-k GNU -m mimetype:text/plain -m author:RMS COPYING");
-P();
-W("where <tt>COPYING</tt> is the filename and the arguments are the 
description of the file (<tt>-m</tt> options) and <tt>-k</tt> is used to 
specify additional keywords.");
-EP();
-
-ANCHOR("GNUwww");H4("Is it possible to surf the WWW anonymously with GNUnet?");
-BP();
-W("It is not possible use GNUnet for anonymous browsing at this point.");
-W("We recommend that you use %s for anonymous surfing.",
-  extlink_("http://tor.eff.org/";, "tor"));
-EP();
-
-ANCHOR("GNUweb");H4("Is it possible to access GNUnet via a browser as an 
anonymous WWW?");
-BP();
-W("There is currently no proxy (like fproxy in Freenet) for GNUnet that would 
make it accessible with a browser.");
-W("It is possible to build such a proxy and all one needs to know is the 
protocol used between browser and proxy and a swift look at the sources in 
<tt>src/applications/fs/tools/</tt>.");
-P();
-W("The real question is, whether or not this is a good idea.");
-W("In order to achieve anonymity, the file sharing service implemented on top 
of GNUnet has a much higher latency than the WWW.");
-W("Thus, the experience of browsing the web will usually be hindered 
significantly by these delays (potentially several minutes per page!).");
-P();
-W("If you still want to write a proxy, you are welcome to send us code and 
join the developer team.");
-EP();
-
-
-ANCHOR("new");H4("I have some great idea for a new feature, what should I 
do?");
-BP();
-W("Sadly, we have many more feature requests than we can possibly implement.");
-W("The best way to actually get a new feature implemented is to do it yourself 
-- and send us a patch.");
-W("If it is a larger effort, you might want to ask on the mailinglists for 
some feedback first.");
-W("Also, check on %s to see if the feature is already being worked on.",
-  extlink_("https://gnunet.org/mantis/";, "Mantis"));
-W("A list of planned long-term features is in the %s file.",
-  extlink_("https://gnunet.org/svn/GNUnet/todo";, "todo"));
-W("If you cannot code you can submit a feature request to Mantis.");
-W("Please double-check that such a request does not already exist.");
-EP();
-
-
-
-H3("Configuration and Installation");
-
-ANCHOR("platform");
-H4("On which platforms does GNUnet run?");
-BP();
-W("GNUnet is being developed and tested under Debian GNU/Linux for i386.");
-W("We have reports of working versions on FreeBSD, NetBSD, OpenBSD, Solaris 
and OS X.");
-W("However, those reports are not recent, if you can or cannot get GNUnet to 
work on those systems please let us know.");
-W("GNUnet should work on big-endian architectures, including Linux/PPC.");
-W("GNUnet has been ported to Win32.");
-W("Patches to make it work on other platforms are always appreciated.");
-W("If you had success running GNUnet on any other platform, please report!");
-EP();
-
-
-ANCHOR("database"); 
-H4("What is the right database for me?");
-BP();
-W("If you are not experienced with databases or GNUnet, you should stick to 
the default which is <tt>sqlite</tt>.");
-W("The <tt>mysql</tt> module requires manual setup, which is described %s.",
-  extlink_("user_afs.php3#mysql","here"));
-W("<tt>mysql</tt> has good performance and the database can be repaired from 
internal failures, but its more difficult to install than any of the 
alternatives.");
-EP();
-
-
-ANCHOR("firewall");
-H4("How do I have to configure my firewall?");
-BP();
-W("GNUnet uses the ports 2086 and 1080 by default.");
-W("Configure your firewall to accept packets to the ports 2086 and 1080 (TCP 
and UDP) for the machine running the GNUnet daemon <tt>gnunetd</tt>.");
-W("If your firewall is a NAT box, forward packets to your GNUnet 
machine&apos;s ports 2086 and 1080 and tweak the configuration file 
gnunetd.conf (sections NETWORK, LOAD, UDP, TCP and NAT) to use the external IP 
of the NAT box.");
-W("Port 2087 is used for communication between <tt>gnunetd</tt> and the client 
tools as <tt>gnunet-gtk</tt>, <tt>gnunet-search</tt> etc.");
-W("There is no need to open port 2087 to the rest of the Internet.");
-P();
-W("Port 2086 is used for GNUnet&apos;s own transmission protocol, HTTP 
encapsulated GNUnet packets (\"HTTP transport\") are transmitted through port 
1080 by default.");
-W("The HTTP transport is not necessarily required and can be disabled in 
GNUnet&apos;s configuration file.");
-W("Disabling it on firewalled systems is important, because available 
transports are advertised to other peers and activated but broken transports 
result in decreased reachability.");
-EP();
-
-
-ANCHOR("shapers");
-H4("Why should I not use an external traffic shaper?");
-BP();
-W("GNUnet %s decides who to serve when the system is loaded.",
-  extlink_("#accounting","accounting"));
-W("Packets are sent and dropped based on their priority and current load.");
-W("External shapers (like <em>token bucket filter</em>) can&#8217;t make this 
distinction and treat all GNUnet traffic as equal.");
-W("You should set GNUnets internal bandwidth limits to reflect your true 
configuration and what you can afford and <em>not use any external shaping for 
GNUnet</em>.");
-W("It&#8217;s much better to have the limits enforced by <tt>gnunetd</tt> than 
by an external mechanism.");
-EP();
-
-
-ANCHOR("keywords"); 
-H4("Why do you require GNU libextractor?");
-BP();
-W("GNUnet needs keywords such that other users can find the files.");
-W("Typing in lots of keywords is of course a major pain.");
-W("Other systems like gnutella typically just use the filenames.");
-W("Using filenames is not a good solution since they are not always very 
descriptive and/or can be a pain to produce for the content provider in the 
first place.");
-P();
-W("GNUnet uses a better approach, which is <strong>keyword 
extraction</strong>.");
-W("The library %s was developed for the purpose of extracting keywords from 
arbitrary files.",
-  extlink_("/libextractor/","libextractor"));
-W("If keywords can easily be extracted from your files, you don&#8217;t have 
to supply keywords by hand.");
-W("<tt>libextractor</tt> can also use the filename as a source for keywords.");
-P();
-W("If you have keywords in a file that should be extracted but the file format 
is not supported by <tt>libextractor</tt>, the API of the library is be simple 
enough that any C hacker who knows the file format should be able to code a 
plugin that will allow you to extract the keywords.");
-W("If you just want filenames, <tt>libextractor</tt> can do those, too.");
-EP();
-
-
-ANCHOR("dependencies"); 
-H4("What are all of the dependencies for building GNUnet?");
-BP();
-W("The short answer is, that we cannot really tell you.");
-W("The reason is, that this depends a lot on your distribution.");
-W("For example, we use <tt>libgcrypt</tt>, which in turn requires 
<tt>libgpg-error</tt>.");
-W("However, most distributions would put these two libraries into one 
package.");
-W("Similarly, dependencies for GTK and MySQL are not always identical.");
-W("Finally, where does the list end?  Should we list <tt>libc6</tt>, 
<tt>zlib</tt>, <tt>bzip2</tt>, <tt>xlib</tt>, <tt>glib</tt>?");
-W("Also, many dependencies are optional.");
-W("You can use GNUnet without a graphical user interface.");
-W("However, even if you do not use GNUnet with a GUI, you might be using a 
<tt>libextractor</tt> binary that is linked against GTK-pixbuf to compute 
thumbnails.");
-P();
-W("What we have done instead is list all of the top-level dependencies for 
Debian GNU/Linux in the %s file.",
-  extlink_("https://gnunet.org/svn/GNUnet/README.debian";, "README.debian"));
-W("This list is for the specific Debian version that most GNUnet developers 
are using.");
-W("The file is only detailing the top-level packages necessary to compile 
GNUnet.");
-W("Those packages in turn depend on other packages, which are not listed.");
-W("For example, the list will include <tt>libextractor-dev</tt> but not 
<tt>libextractor1c2a</tt> which maybe required by <tt>libextractor-dev</tt>.");
-W("In other words, <tt>apt-get</tt> is your friend, and if your distribution 
does not support automatic download of transitive dependencies you might want 
to consider switching -- at least we cannot really help you with a complete 
list in that case.");
-P();
-W("Note that the Debian package list should still be useful for you even if 
you are not running Debian.");
-W("Other distributions are likely to have similar packages.");
-P();
-W("Finally, please note that <tt>configure</tt> will succeed even if a 
suitable version of MySQL or SQLite is not detected.");
-W("The reason is, that (theoretically) you might be compiling for a 
client-only system, or you might not care about anonymous file-sharing.");
-W("If you do want to use file-sharing, please read the final lines printed by 
configure to make sure that a suitable database was found.");
-EP();
-
-
-H3("Error messages and bugs");
-
-ANCHOR("assertion");
-H4("I get error messages of the form &quot;Failure at FILE.c:LINE&quot;.  What 
is going on?");
-BP();
-W("We use a generic error message in GNUnet to indicate that something went 
wrong.");
-W("The cause is usually a bug or some data corruption on the network.");
-W("Note that the bug does not necessarily have to be in the current version -- 
the problem could be caused by another peer running a different version of 
GNUnet.");
-W("Similarly, the problem might be anything from completely harmless to 
rendering your peer useless.");
-W("In a stable, production release we would disable these messages, but for 
now we want to know about those problems.");
-W("Consequently, please report them to %s (after checking that they have not 
already been reported).",
-  extlink_("https://gnunet.org/mantis/","Mantis";));
-W("Of course, if a corresponding report already exists, feel free to add a 
note saying that you are also experiencing the problem.");
-P();
-W("We do not provide detailed information about what exactly went wrong in the 
error message for a simple reason -- there are at least 800 different potential 
problems that are reported in this way.");
-W("If we gave 800 specific error messages this would not only increase the 
binary size significantly, it would also drive people translating GNUnet into 
other languages crazy.");
-W("Finally, it takes much less time to write <tt>BREAK()</tt> in the code to 
indicate that something went wrong then to write a detailed explanation of the 
cause that anyone unfamiliar with the code can understand.");
-W("If you want to investigate what went wrong yourself, use the source.");
-P();
-W("Note that we do provide detailed error messages and warnings for problems 
that are likely not bugs in the code and that the user can address.");
-W("Also note that GNUnet is generally quite verbose in its log messages.");
-W("This is mostly useful for diagnosing problems that users report.");
-W("As long as everything seems to work, it is probably safe to ignore 
<tt>WARNING</tt> messages.");
-EP();
-
-
-ANCHOR("hostkey"); 
-H4("Checksum error: the deleted hostkey problem.");
-BP();
-W("Under certain circumstances, <tt>gnunetd</tt> will print warnings 
indicating checksum errors in messages that were received from other nodes.");
-W("This is most of the time not a bug and not a problem.");
-W("Everything is working ok.");
-W("What has happened most of the time is the following.");
-W("Each node on GNUnet has a secret, public key.");
-W("When hosts start, they look at the <tt>data/hosts/</tt> directory looking 
for keys and addresses of other nodes on the network.");
-W("It will then cryptographically sign its current network address (say IP and 
port) together with a timestamp and send this, together with the public key of 
the node, to other nodes on the network.");
-P();
-W("Later, nodes will use this binding of key to address to communicate.");
-W("The binding of a public key to an address would ideally be a one-on-one 
relationship.");
-W("Due to dial-up, DHCP and other dynamic assignments, this may not always be 
the case.");
-W("Even if the same host is used, a different user may be running 
<tt>gnunetd</tt> with a different hostkey by now.");
-W("A more common scenario is that the <tt>~/.gnunet/.hostkey</tt> file was 
deleted.");
-W("Other nodes on the network may still know the old hostkey and have it bound 
to that host.");
-W("Do not delete the hostkey if you want to avoid this problem!");
-P();
-W("The reason why we can&#8217;t avoid this (ok, we could just not print the 
error message, but that&#8217;s not the point), is that a malicious host could 
always claim to have any address on the Internet.");
-W("If we have two public keys for the same host, the best we can do is try out 
both.");
-P();
-W("Checking both is very cheap, and after a while (depending on the timeout 
configured in gnunetd.conf), hostkeys will eventually expire.");
-P();
-W("You may also receive messages that will result in checksum errors from 
clients that run versions of GNUnet before 0.7.0 (protocol mismatch).");
-EP();
-
-
-ANCHOR("knownbugs"); H4("Are there any known bugs?");
-BP();
-W("The list of currently known bugs is available in the %s system.",
-  extlink_("https://gnunet.org/mantis/","Mantis";));
-P();
-
-W("Some bugs are occasionally reported directly to developers or the developer 
mailing list.");
-W("This is discouraged since developers often do not have the time to feed 
these bugs back into the Mantis database.");
-W("Please report bugs directly to the bug tracking system.");
-W("If you believe a bug is sensitive, you can set its view status to private 
(this should be the exception).");
-EP();
-
-
-ANCHOR("bugs"); 
-H4("How do I report a bug?");
-
-BP();
-W("Good bug reports enable developers to find and hopefully fix problems 
faster.");
-W("Nobody can or will fix a &#8220;GNUnet does not work for me.&#8221; bug.");
-W("Please try to follow the following guidelines as far as they are applicable 
to the bug at hand.");
-EP();
-
-echo "<dl>\n";
-DT("Use our bug-tracking system");
-echo "<dd>";
-BP();
-W("You should use the %s system for any bug reporting.",
-  extlink_("https://gnunet.org/mantis/","Mantis";));
-W("Also, please check first if a bug has already been reported.");
-W("If the bug has been reported, you may want to add comments to the report, 
even if it just a statement that tells the developers that you encountered the 
same problem.");
-P();
-W("The following status codes are used in Mantis:");
-echo "<dl>\n";
-DT("New");
-echo "<dd>";
-W("A new bug, developers did not look into these yet.");
-echo "</dd>";
-DT("Feedback");
-echo "<dd>";
-W("Developers require feedback from users reporting the bug to resolve it.");
-W("Also used if a general discussion between the researches is needed on how 
to address a problem.");
-echo "</dd>";
-DT("Acknowledged");
-echo "<dd>";
-W("Developers have seen the bug.");
-echo "</dd>";
-DT("Confirmed");
-echo "<dd>";
-W("Developers are convinced that the bug is a problem that needs to be 
fixed.");
-echo "</dd>";
-DT("Assigned");
-echo "<dd>";
-W("Some developer has started working on the problem.");
-W("Note that developers may give up on problems, putting the bug back to 
confirmed, or feedback.");
-echo "</dd>";
-DT("Resolved");
-echo "<dd>";
-W("The bug has been fixed in some version in Subversion or in a patch attached 
to the bug report.");
-echo "</dd>";
-DT("Closed");
-echo "<dd>";
-W("Resolved bugs are closed after the bugfix has made it into a full release 
of GNUnet.");
-echo "</dd>";
-echo "</dl>";
-echo "</dd>";
-DT("Report your platform.");
-echo "<dd>";
-W("Please report platform information in your bugreport.");
-W("The script <tt>contrib/report.sh</tt> in the GNUnet distribution scans your 
system and reports version numbers of relevant installed packages.");
-W("Please include this information in the bugreport.");
-W("A simple way to do this is to add a platform to your user profile and 
select that platform when reporting bugs.");
-W("You can also post the report.sh output in a comment, especially if you 
reproduced the bug on a different system or are not the original reporter.");
-W("Just reporting that you reproduced a bug can be helpful since it may narrow 
down the list of possible causes and will give us an idea of how frequent a 
particular problem is.");
-echo "</dd>";
-DT("Include log messages");
-echo "<dd>";
-W("Using the <tt>-d -L DEBUG</tt> options, all GNUnet applications can be set 
to print (lots of) debugging output to the console.");
-W("You may want to include the last 10-20 lines in the bug report.");
-echo "</dd>";
-DT("Describe what you were doing.");
-echo "<dd>";
-W("If you did something specific when the problem occured, please report what 
you were doing.");
-W("If possible, try to reproduce the bug and reduce the number of steps needed 
to do so.");
-W("It may also be a good idea to move the <tt>~/.gnunet/</tt> directory for 
testing and then reproduce the bug starting from scratch.");
-echo "</dd>";
-DT("Report network and file status information");
-echo "<dd>";
-W("If the bug occurs and does not crash the GNUnet application (deadlock, not 
responsive, etc.), please use <tt>netstat -tnl</tt> to gather information about 
open TCP sockets and include this in the bug report.");
-W("Furthermore, use <tt>lsof | grep gnunet</tt> (may require root priviledges) 
to get information about open files.");
-echo "</dd>";
-DT("Reporting a segfault.");
-echo "<dd>";
-W("If any GNUnet application reproducably segfaults, please try getting a 
stack trace.");
-W("Use <tt>gdb bin/gnunet-application-name</tt> and then at the <tt>(gdb)</tt> 
prompt use <tt>run APPLICATION-ARGUMENTS</tt> to start the application with the 
GNU debugger.");
-W("Once the segfault occurs, you will get the <tt>(gdb)</tt> prompt again.");
-W("Now type <tt>ba</tt> to get the stacktrace.");
-W("Attach the output to the bugreport.");
-echo "</dd>";
-DT("Deadlocks, or what to do if GNUnet just stops working.");
-echo "<dd>";
-W("If any of your GNUnet applications just stops working, you can directly 
obtain diagnostic information using gdb.");
-W("Use <tt>ps ax</tt> to obtain the process ID of your GNUnet applications.");
-W("Sometimes problems can be caused by the interplay of <tt>gnunetd</tt> and a 
client application.");
-W("In that case, follow the instructions for both applications.");
-P();
-W("Once you have the process ID (2-5 digit number), start <tt>gdb</tt>.");
-W("At the <tt>(gdb)</tt> prompt, enter <tt>attach PID</tt> where PID must be 
replaced by the process ID.");
-W("Then use <tt>info threads</tt> to obtain a list of all running threads of 
the application.");
-W("Use <tt>thread NUMBER</tt> to select a thread.");
-W("For each thread, obtain the backtrace using the <tt>ba</tt> command.");
-W("Using this information, GNUnet developers can hopefully see where the 
application hangs.");
-P();
-W("Please also report the <tt>lsof</tt> and <tt>netstat</tt> output as 
described before.");
-echo "</dd>";
-DT("Statistics.");
-echo "<dd>";
-W("If <tt>gnunetd</tt> is still running, always try to also run the 
<tt>gnunet-stats</tt> tool.");
-W("If the tool still works, report the output.");
-W("If it does not work anymore, this can also be an important hint towards 
where the problem is.");
-echo "</dd>";
-DT("Reporting Problems with Mantis");
-echo "<dd>";
-W("If you have problems with Mantis, please contact %s via E-mail.",
-  extlink_("mailto:address@hidden","address@hidden";));
-echo "</dd>";
-echo "</dl>";
-EP();
-
-
-
-H3("Common problems");
-
-ANCHOR("test");
-H4("I cannot find anything. How can I test if it works?");
-BP();
-W("How can I test if it works?");
-W("Searches can return no results if no matching content is found.");
-W("For a simple test, it is suggested to search for <tt>GPL</tt>.");
-W("The GNU Public License was inserted under that keyword on the permanent 
node on <tt>gnunet.org</tt>.");
-W("This test may of course fail if <tt>gnunet.org</tt> is temporarily not 
available.");
-W("Common other problems are:");
-EP();
-echo "<ul>\n";
-LI("firewall (UDP and TCP ports 2086 should be open)");
-LI("not connected (it may take a couple of minutes, check the number of 
connected peers using gnunet-stats or one of the GUIs)");
-LI("typos (if you&#8217;re off by one letter, it won&#8217;t work)");
-echo "</ul>\n";
-BP();
-W("For a test of slightly larger scale, you can try to download another 
&#8220;official&#8221; test content by searching for keyword <tt>alien</tt> or 
go directly for the content using:");
-P();
-PRE("$ gnunet-download -o &quot;Aliensong.mpeg&quot; -- 
gnunet://ecrs/chk/MN8P2LS383SRU0N68OPRBU28J0MIOPFS1BTA7K76SJUFONHHGE6LJ33PU45ASNUTGT4AP70LQUOSN79C2IODFA7D4IU0HR9K3ASIHE8.E561C1GJ1SR99AMBM7L87RF2HKGE8L7D6JLIUGT5G7UBDPCT1FNDCMV15T00LD0U92C6JE3M93JE23PJKVF2AJRHIB3VCIC41952DOO.3201028");
-P();
-W("Still not satisfied?");
-W("Use your imagination for guessing keywords, or try common mime-types as 
keywords (such as <tt>application/pdf</tt>, <tt>application/x-zip</tt>, 
<tt>image/jpeg</tt> or <tt>audio/mp3</tt>).");
-EP();
-
-
-ANCHOR("lastblocks"); 
-H4("Why is downloading the last few blocks so slow?");
-
-BP();
-W("Sometimes when downloading large files from GNUnet, it may take a long time 
to get the last remaining blocks of the file.");
-W("This is often not an error, and if it happens, it does not automatically 
mean that the blocks must have disappeared from the network (though that is 
possible).");
-W("The explanation is as follows (its a bit technical).");
-EP();
-echo "<ul>\n";
-LI("The system starts with a fairly low TTL and probes going higher each time 
no response arrives.");
-LI("The last block is likely (as in always) to have been requested multiple 
times without success (peer busy processing other requests, message-drops, 
etc.).");
-LI("The TTL of the last block is always significantly higher than the 
(successful) ttl of the first block.");
-LI("A higher TTL <em>also</em> means that the retransmission frequency is 
lower, so GNUnet will also attempt to get that block less frequently.");
-LI("Finally, on occasion the peer may have depleted whatever initial trust it 
had in the network by the time it gets to the last block, putting it into a 
further disadvantage.");
-LI("Finally finally, a peer without trust only gets effective TTL of 0 (except 
locally), so it will now compete with other queries (in particular queries 
still in slots from the download; now, the routing table has a small resistance 
(TTL_DECREMENT) before replacing a pending query with one with a higher TTL, 
adding yet another 5s or so.");
-echo "</ul>\n";
-BP();
-W("To summarize, there are plenty of reasons why the download MUST go slower 
at the end.");
-W("However, the GNUnet developers are still investigating ways to make it 
faster.");
-EP();
-
-
-ANCHOR("delete");
-H4("<tt>gnunet-unindex</tt> behaves in unexpected ways.");
-BP();
-W("First of all, many things can go seemingly wrong with 
<tt>gnunet-unindex</tt> and one has to understand what exactly 
<tt>gnunet-unindex</tt> does to avoid pitfalls.");
-W("The first thing to recall is that <tt>gnunet-unindex</tt> only unindexes 
blocks from the local database.");
-W("Blocks that have been replicated by other peers are not removed.");
-W("This is why it is possible that a file can still be available after running 
<tt>gnunet-unindex</tt>.");
-W("Also <tt>gnunet-unindex</tt> does <b>not</b> unindex the search-blocks 
associated with keywords.");
-W("Thus searching for the file will still list the file as if it was there.");
-W("Part of the reason for not removing the search-blocks is that the keywords 
used when indexing are not known to <tt>gnunet-unindex</tt>.");
-W("A more elaborate mechanism that uses libextractor to guess which keywords 
could have been used still needs to be implemented.");
-W("In the future we also plan to time-out search-blocks to avoid the 
search-space pollution.");
-P();
-W("Another important aspect of <tt>gnunet-unindex</tt> is that it may unindex 
blocks <b>shared</b> with other files or within the same file.");
-W("The reason is that blocks of identical content hash to the same identifier 
and can thus not be distinguished by GNUnet.");
-W("For highly structured content it is possible in practice that two blocks 
are identical.");
-W("GNUnet will then share the storage space for these two blocks.");
-W("When unindexing a file that contains such shared blocks, GNUnet can 
currently not recognize the sharing and will remove the block even if it is 
still used in another context.");
-W("The resulting inconsistencies can result in warnings from 
<tt>gnunet-unindex</tt>, as well as in downloads that do not complete.");
-W("In general, <tt>gnunet-unindex</tt> should be used with caution.");
-EP();
-
-
-ANCHOR("tell"); 
-H4("How can I see which files I have indexed/inserted (names, descriptions, 
keywords)?");
-BP();
-W("For building directories, GNUnet keeps track of all file identifiers that 
it has so far encountered, including search results, inserted or indexed files 
and files mentioned in downloaded directories.");
-W("This information is stored in plaintext to allow building of directories.");
-W("Users should run <tt>gnunet-directory -t</tt> to start tracking this 
information.");
-W("Note that the data is kept locally in the GNUnet directory and never send 
out into the network.");
-W("You can inspect the information with <tt>gnunet-directory -l</tt>.");
-W("It is probably a good idea to clean this database of your activities from 
time to time.");
-W("You can run <tt>gnunet-directory -k</tt> to remove the information 
collected so far (and to stop tracking).");
-W("Once that database has been cleaned, GNUnet can no longer tell which files 
you inserted, but it can tell you which files are indexed.");
-P();
-W("The reason why GNUnet can not tell you which files were inserted is the 
same reason, why we distinguish between indexing and insertion: deniability.");
-W("The primary use of insertion is to give an adversary no easy way to figure 
out what files are stored on your computer, and that under the assumption that 
the adversary takes full control of you machine.");
-W("Thus, GNUnet was designed to not require any information that would allow 
it to reconstruct the inserted file without the appropriate keyword (read: 
password).");
-W("If the adversary already knows the exact content, it is still possible for 
the adversary that has control of your machine to verify that the content is 
present.");
-W("The best defence against that is to insert the content with a low priority 
and to turn on <tt>ACTIVEMIGRATION</tt>.");
-W("Then you can plausibly claim that the content migrated to your node from 
another peer, and that you had no way of knowing that it was there.");
-W("In either case, how well deniability serves you will depend on your local 
court.");
-W("Since there are countries where breathing can get you into jail, saying 
that you were not able to tell what your computer was storing may not be 
sufficient.");
-W("Note that breaking your anonymity and taking control of your computer are 
steps that the adversary needs to take first, before you need to resort to 
deniability.");
-P();
-W("Indexed content is a slightly different story.");
-W("For indexed content, the goal for GNUnet is still to make it difficult for 
the adversary to establish from which machine the content originates 
(anonymity).");
-W("For indexed content GNUnet keeps links to the indexed files, typically in 
<tt>/var/lib/gnunet/data/shared/</tt>.");
-W("GNUnet uses the list to locate the block corresponding to a request.");
-W("Do NOT edit the directory by hand.");
-W("Use <tt>gnunet-unindex</tt> to remove files from the directory.");
-P();
-W("Also, do not move or change indexed files since GNUnet relies on the paths 
of indexed files to be constant.");
-W("If you must move an indexed file, use first <tt>gnunet-unindex</tt>, then 
move the file, and then use <tt>gnunet-insert</tt> to re-insert the file.");
-EP();
-
-
-H3("Using GNUnet");
-
-EP();
-ANCHOR("spam"); 
-H4("Why should I insert directories instead of individual files?");
-
-BP();
-W("GNUnet&apos;s ECRS encoding/query strategy doesn&apos;t allow peers to 
benefit from false replies.");
-W("Even small blocks of incorrect response data can be detected instantly, 
resulting in no trust gain for the malicious node.");
-W("If you know the correct ECRS URI for the file you want, no intermediate 
node can cheat by false replies.");
-W("However, this leaves the problem of obtaining the URIs in the first place, 
and unfortunately if anyone can insert files under common keywords, false data 
can be inserted as well.");
-W("There doesn&apos;t seem to be any easy solution to this problem.");
-W("Ranking search results by trust could be one answer in the future.");
-W("Meanwhile, namespaces and directories are a step towards the nonspammable 
direction.");
-P();
-W("Inserting into a namespace requires the user to create a pseudonym first, 
which is equal to a public/private key pair that identifies the namespace.");
-W("(One user can create any number of pseudonyms.)");
-W("Then, pointers to files or directories can be inserted into the 
pseudonym&apos;s namespace, signed by the private key of the pseudonym.");
-W("The signed blocks will be verified by each peer before the blocks are 
accepted or passed along.");
-W("The verification works by checking the validity of the cryptographic 
signature against the public key included in the namespace block, and by 
checking that hashing the public key results in the correct namespace 
identifier.");
-W("Thus, only the user with the private key to the namespace can publish into 
it, making it a nonspammable, secure publishing channel that other users can 
limit their searches to.");
-W("Its worth noting that naturally the pointers found from a namespace can 
point to any files chosen by the pseudonym, even if the actual files were 
inserted by someone else.");
-P();
-W("Directories are a good way to group files to meaningful collections in 
GNUnet.");
-W("The directories can contain arbitrary number of pointers to namespaces 
(SBlocks), pointers to other directories and pointers to files.");
-W("With directories, users can build networks of content, where not only 
inserted files, but also interesting other content or namespaces can be pointed 
to, just as in WWW.");
-W("Additionally, directories have two nice properties.");
-W("First, they are immutable, meaning that they can&apos;t be tampered with, 
but contain exactly those pointers the publisher intended.");
-W("The second property is that identical files pointed to by two directories 
waste no additional space, even if the directories were built by separate 
users.");
-W("This contrasts strongly to the case where similar files were archived by 
e.g. zip or tar, which could double the space usage over the network
-without any speedups in retrieval time.");
-W("By using directories to group the content enables GNUnet to spread the 
identical file blocks more efficiently.");
-P();
-W("For more info on using directories and namespaces, see GNUnet online 
documentation, or man page of <tt>gnunet-insert</tt> for examples.");
-EP();
-
-
-include("html_footer.php3");
-?>

Deleted: GNUnet-docs/WWW/favicon.ico
===================================================================
(Binary files differ)

Deleted: GNUnet-docs/WWW/freeservice.php3
===================================================================
--- GNUnet-docs/WWW/freeservice.php3    2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/freeservice.php3    2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,104 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "FreeServices - tunneling everything over GNUnet";
-$description = "FreeServices - tunneling everything over GNUnet";
-include("html_header.php3");
-
-H2("Introduction");
-BP();
-W("At the moment, GNUnet implements two applications: file-sharing and 
broadcast chat.");
-BR();
-W("Most of the existing and well-known Internet services could transmit data 
through GNUnet and thus establish anonymous connections between publishers and 
receivers.");
-BR();
-W("This concept proposes \"GNUnet FreeServices\" as an application-independent 
solution without the need to modify existing protocols and software.");
-EP();
-H3("Status of this document");
-BP();
-W("This document is currently an early request for comments."); W("Important 
details may be added, changed or left out in the final implementation.");
-EP();
-
-H2("Setting up a FreeService");
-BP();
-W("Every Internet service that is to be published through GNUnet has to be 
defined in a central configuration file that is stored on the computer that 
runs gnunetd:");
-EP();
-PRE("[My homepage]<br />host=localhost<br />port=8080
-[Google]<br />host=www.google.de<br />port=80<br />destname=www.google.de
-[My mailboxes]<br />host=localhost<br />port=25<br />destname=mysite.com
-[IRC]<br />host=0.0.0.0<br />port=6667");
-BP();
-W("In this example, a FreeService called \"My Homepage\" (actually a 
\"Freesite\") is defined."); W("The webserver (perhaps Apache) serving it runs 
locally on port 8080.");
-W("Because Google is known to censor search hits in certain countries, we (who 
are living in a free country) also relay anonymous traffic to them.");
-W("After that, we accept anonymous mail destined to us."); W("Our mailserver 
(perhaps Sendmail or qmail) runs at port 25 and accepts mail for our anonymous 
domain (see below).");
-W("Finally, we relay all (0.0.0.0) IRC traffic (port 6667).");
-EP();
-BP();
-W("For every FreeService, a RSA key is generated. The hash of the Public Key 
is used as an unique identifier just like a domain name (FQDN).");
-W("The private key is used to digitally sign responses to proof 
authenticity.");
-BR();
-W("The \"destname\" specification is used to rewrite our anonymous domain name 
to a official domain name.");
-W("This is important for virtual HTTP hosting (multiple domains on a single 
server) and mail over SMTP (so the mail server doesn't have to be configured to 
accept mail for our anonymous domain.).");
-EP();
-H2("Server side");
-BP();
-BOL();
-LI("An encrypted request for a FreeService is received as usual (port 2086)");
-LI("The request gets decrypted by the core of gnunetd and is forwarded to the 
FreeService module (just like FS or Chat messages).");
-LI("The FreeService module connects to the destination as defined in the 
configuration file (webserver at port 8080, for example), forwards the request 
(<i>HTTP GET</i>, for example) and forwards the response to the core of 
gnunetd, that in turn sends it to the requester through the GNUnet network.");
-EOL();
-EP();
-BP();
-extlink("images/freeservice-server.png", "[Picture]");
-EP();
-
-H2("Client side");
-BP();
-W("Client connections are always routed through a special GNUnet SOCKSv5 proxy 
to the GNUnet server that makes the requested FreeService available.");
-W("This SOCKS proxy accepts TCP-stlye requests and forwards it to the local 
GNUnet server (its FreeService module to be precisely) which forwards the 
request to the GNUnet server homing the FreeService.");
-W("Depending on the application/protocol, an application proxy has to be put 
in front of the SOCKS proxy."); W("This is recommended in case the protocol 
compromises anonymity (anonymizing HTTP proxy).");
-extlink("images/freeservice-client.png", "[Picture]");
-EP();
-
-H2("Addresses and Hyperlinks");
-BP();
-W("As described above, every FreeService is identified by the hash of its 
Public-Key.");
-W("Therefore, it can be used to construct an URI.");
-W("Example:");
-PRE("&nbsp;&nbsp;http://D9HF28EPQ403TSJH8333UIFG85JDM56.gnunet/index.html";);
-EP();
-
-H3("Aliases");
-BP();
-W("Because such a URI is hard to remember, the SOCKS proxy maintains a 
database of alternative names.");
-W("In that way, an alias \"mysite\" could be defined for the hash above:");
-PRE("&nbsp;&nbsp;http://mysite.gnunet/index.html";);
-EP();
-BP();
-W("Because there's no way to set up a central registry for such names (as 
denic.de for German domain names), they are only stored for local use.");
-EP();
-
-H2("Usage");
-H3("HTTP");
-BP();
-W("To request content from .gnunet-Sites, a browser has to be configured to 
forward <b>all</b> requests to the GNUnet SOCKS proxy.");
-W("The proxy server checks the domain name for the postfix \".gnunet\" and 
forwards these requests to the GNUnet server.");
-W("Requests besides the TLD \".gnunet\" are treated as normal requests and are 
forwarded to either the destination server or a final HTTP proxy server (yours 
or your provider's).");
-EP();
-
-H4("Links to non-anonymous content");
-BP();
-W("A freesite may embed or link to pictures or other content.");
-W("In case this is not done through the .gnunet-Address, but the usual address 
(http://www.mysite.com/title.jpg, for example), the requester looses anonymity 
when requesting the content: the request does not get routed through GNUnet, 
but a normal - maybe not encrypted - direct connection to the destination 
server.");
-W("To circumvent this, an additional proxy server has to be added in front of 
the SOCKS proxy."); W("This proxy checks every \"normal\" request whether it is 
the result of a link on an anonymous page (through the HTTP header 
\"Referrer\").");
-W("In this case, a warning message is returned first.");
-EP();
-
-H3("Mail");
-BP();
-W("Mailaddresses look like those presented above. Mail is sent to 
address@hidden or address@hidden");
-W("To accept these addresses, the mailreader has to be configured to forward 
all mail to the GNUnet SOCKS proxy."); W("It checks for the TLD \".gnunet\" and 
sends the mail through GNUnet if necessary.");
-EP();
-
-H2("The whole picture");
-W("... is %s.", intlink_("images/freeservice-all.png", "here"));
-include("html_footer.php3");
-?>

Deleted: GNUnet-docs/WWW/gnunetgtk.php3
===================================================================
--- GNUnet-docs/WWW/gnunetgtk.php3      2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/gnunetgtk.php3      2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,231 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet Documentation: gnunet-gtk";
-$description="Configuring and using gnunet-gtk";
-include("html_header.php3");
-H2("gnunet-gtk");
-
-BP();
-W("<tt>gnunet-gtk</tt> is the GTK+ interface for GNUnet.");
-W("<tt>gnunet-gtk</tt> is highly customizable and uses a plugin architecture 
to load code that will support the various GNUnet applications.");
-W("The basic plugins are &quot;about&quot;, &quot;daemon&quot; and 
&quot;stats&quot;.");
-W("These plugins implement the about dialog, the interaction with 
<tt>gnunetd</tt> (start, stop, status) and visualization of statistics obtained 
from <tt>gnunetd</tt>.");
-W("In addition, plugins can be loaded for specific peer-to-peer 
applications.");
-W("In particular, the &quot;fs&quot; plugin provides the user interface for 
file-sharing.");
-W("Which plugins are loaded is configured in the <tt>gnunet.conf</tt> 
configuration file in section <tt>GNUNET-GTK</tt> under <tt>PLUGINS</tt>.");
-
-P();
-W("After <tt>gnunet-gtk</tt> was started, you should see something like the 
following:");
-EP();
-IMG("screenshots/gnunet-gtk-welcome.png","GNUnet GTK welcome 
window","CENTER",615,492);
-BP();
-W("Which options appear on top depends on the set of plugins that are selected 
in the configuration file.");
-W("The following plugins are currently available:");
-echo "<ul>\n";
-LILI("#about", "About");
-LILI("#daemon", "Daemon");
-LILI("#fs", "File-sharing");
-LILI("#stats", "Statistics");
-echo "</ul>\n";
-EP();
-
-ANCHOR("about");
-H2("The about plugin");
-BP();
-W("This plugin is responsible for making the &quot;About&quot; button on the 
welcome screen work.");
-W("Note that the plugin requires libglade 2.10 or higher to work properly.");
-EP();
-ANCHOR("daemon");
-H2("The daemon plugin");
-BP();
-W("The daemon plugin enables the &quot;General&quot; menu.");
-W("This menu can be used to control <tt>gnunetd</tt>.");
-EP();
-IMG("screenshots/gnunet-gtk-daemon.png",
-    "gnunet-gtk daemon page",
-    "CENTER",615,492);
-BP();
-W("The &quot;Start&quot; and &quot;Stop&quot; buttons can be used to start or 
kill the <tt>gnunetd</tt> process.");
-W("Note that stop may kill <tt>gnunetd</tt> even if <tt>gnunetd</tt> is 
running on another machine, while start is only able to start the process on 
the local machine.");
-W("If <tt>gnunetd</tt> is running, the &quot;Start&quot;-button will not be 
active.");
-W("Similarly, if <tt>gnunetd</tt> is not running, the &quot;Stop&quot;-button 
will not be active.");
-W("If either of the buttons has been pressed, both will be deactivated for a 
while to give <tt>gnunetd</tt> time to start or shutdown.");
-W("The little round light to the right of the buttons indicates the current 
status of <tt>gnunetd</tt>.");
-W("It is green if the daemon is running and red if the daemon is not 
running.");
-P();
-W("Finally, the page lists the application modules that <tt>gnunetd</tt> has 
currently loaded, together with a description of each application.");
-EP();
-
-
-
-ANCHOR("fs");
-H2("The fs (file-sharing) plugin");
-BP();
-W("The &quot;fs&quot; plugin is responsible for managing file-sharing with 
<tt>gnunet-gtk</tt>.");
-W("The plugin provides four sub-menus:");
-echo "<ul>\n";
-LILI("#fs-status", "Status");
-LILI("#fs-search", "Searching and Downloading");
-LILI("#fs-publication", "Publication");
-LILI("#fs-advanced", "Advanced");
-echo "</ul>\n";
-EP();
-ANCHOR("fs-status");
-H3("Status");
-BP();
-W("The status tab gives an overview of the current file-sharing activities.");
-EP();
-IMG("screenshots/gnunet-gtk-fs-status.png",
-    "gnunet-gtk file-sharing status page",
-    "CENTER",615,492);
-BP();
-W("It lists the various active searches with the number of search results for 
each search.");
-P();
-W("The download list shows active downloads and how far they have 
progressed.");
-W("The download list can also be used to abort downloads.");
-W("The &quot;Clear&quot;-button can be used to clear completed downloads from 
the list (the downloaded files will not be deleted).");
-P();
-W("Finally the publication list shows active publications and their 
progress.");
-EP();
-
-ANCHOR("fs-search");
-H3("Searching and Downloading");
-
-IMG("screenshots/gnunet-gtk-fs-search.png",
-    "gnunet-gtk file-sharing search and download page",
-    "CENTER",615,492);
-BP();
-W("In order to start a search, enter a keyword into the input line at the top 
and click on search.");
-W("You can specify multiple keywords, separated by spaces.");
-W("Prefix mandatory keywords with a &quot;+&quot;.");
-W("If you want to use a space inside of a keyword (or begin a keyword with a 
&quot;+&quot;, put the entire keyword in double-quotes.");
-W("Using multiple keywords will cause all search results that match any of the 
keywords to be displayed.");
-EP();
-
-H4("Ranking of results");
-BP();
-W("In addition to showing the search results, gnunet-gtk also automatically 
tries to rank and evaluate search results.");
-W("Ranking information is continuously updated as more information becomes 
available.");
-W("The blue bar under &quot;Ranking&quot; shows how many keywords a particular 
result matches.");
-W("If the blue bar is full, the search result matches all specified 
keywords.");
-W("Just below the blue bar under &quot;Ranking&quot; is a second bar which can 
be red, yellow or green.");
-W("This bar indicates how likely it is that the given file is actually 
available.");
-W("The bar becomes thicker as the certainty that the (un)availability has been 
established increases.");
-W("The bar initially starts in the middle as a yellow line.");
-W("It grows red to the left to indicate unavailability, and green to the right 
to indicate availability.");
-EP();
-
-H4("Namespaces");
-BP();
-W("If a namespace should be searched, change the selection in the selection 
box on the right from &quot;globally&quot; to some namespace identifier.");
-W("A tutorial for using namespaces can be found %s.",
-  intlink_("user_namespaces.php3", "here"));
-EP();
-
-H4("Downloading");
-
-BP();
-W("The search results will be displayed in a tab that has the same name as the 
query.");
-W("Mind that the metadata shown was supplied by the user that uploaded the 
file and may not always be accurate.");
-W("The search query will be repeated in the background as long as the tab is 
open.");
-W("Duplicate results will not be displayed.");
-W("Starting another search with the same query will merely bring the existing 
tab into focus.");
-W("The &quot;Anonymity&quot; spin button to the right of the search line can 
be used to specify the desired level of anonymity for the search.");
-P();
-W("The tab contains a list with the search results and a button that can be 
used to initiate the download of selected files.");
-W("Note that it is possible to specify a different level of anonymity for the 
download using the anonymity spin button next to the 
&quot;Download&quot;-button.");
-W("The &quot;Close&quot;-button closes the search window.");
-P();
-W("If a directory is downloaded, the contents of the directory will be shown 
in the search window.");
-EP();
-IMG("screenshots/gnunet-gtk-directory-browser.png",
-    "gnunet-gtk lists the contents of a directory",
-    "CENTER",765,679);
-BP();
-W("Click on the little triangle that appears to the left of the name to show 
the contents of the directory.");
-W("GNUnet is able to show the contents of a directory even if the download is 
still incomplete.");
-W("Files (and other directories) contained in the directory can be downloaded 
just like the search results using the &quot;Download&quot; button.");
-P();
-W("Downloaded files will be saved in the directory specified in the 
<tt>gnunet.conf</tt> configuration file (default is 
<tt>$HOME/gnunet-downloads/</tt>).");
-P();
-W("Again, you can abort downloads using the &quot;Status&quot; tab.");
-W("If you exit <tt>gnunet-gtk</tt>, all active downloads and searches will be 
frozen.");
-W("Then, the next time you restart <tt>gnunet-gtk</tt>, they will 
automatically continue.");
-EP();
-
-ANCHOR("fs-publication");
-H3("Publishing");
-
-IMG("screenshots/gnunet-gtk-fs-upload.png",
-    "gnunet-gtk file-sharing publication page",
-    "CENTER",615,492);
-BP();
-W("In order to share a file to GNUnet, you should first choose between 
insertion and indexing.");
-W("If you want to publish an entire directory tree, select 
&quot;recursive;&quot;.");
-W("You can the enter a filename or use the &quot;Browse&quot; button to browse 
the local filesystem for files.");
-W("Finally, press the &quot;Publish&quot; button.");
-W("This will open another dialog in which you can provide metadata about the 
file.");
-W("The dialog will likely already contain metadata that was inferred by %s.",
-  intlink_("http://gnunet.org/libextractor/index.php";, "libextractor"));
-W("Feel free to add additional keywords, descriptions or even change the 
preview.");
-W("Note that the total size of the metadata must be below 60.000 bytes, so 
large previews will not work.");
-W("Once you have completed the metadata dialog, the publication will start.");
-W("You can watch its progress in the status tab.");
-EP();
-
-ANCHOR("fs-advanced");
-H3("Advanced File Sharing");
-BP();
-W("A tutorial for using namespaces can be found %s.",
-  intlink_("user_namespaces.php3", "here"));
-W("The menus in this tab also allow you to start and stop a collection.");
-W("A collection behaves just like a namespace except that any file that you 
share will automatically be added.");
-W("You can have any number of namespaces, but only one active collection at 
any point in time.");
-EP();
-
-
-ANCHOR("stats");
-H2("The stats plugin");
-
-BP();
-W("This page visualizes various statistics of the current <tt>gnunetd</tt> 
process.");
-W("You can configure the speed at which the window updates using the 
STATS-INTERVAL option in <tt>gnunet.conf</tt> (in section 
<tt>GNUNET-GTK</tt>).");
-W("The information shown corresponds to (some of) the data shown by 
<tt>gnunet-stats</tt>.");
-EP();
-IMG("screenshots/gnunet-gtk-stats-load.png",
-    "gnunet-gtk load statistics page",
-    "CENTER",615,492);
-IMG("screenshots/gnunet-gtk-stats-inbound.png",
-    "gnunet-gtk inbound traffic statistics page",
-    "CENTER",615,492);
-
-ANCHOR("peers");
-H2("The Peers View");
-
-BP();
-W("The peer tab shows the list of other peers known to your system as well as 
their connection status.");
-W("A green light is used for connected peers.");
-W("If the connection is flaky and about to time out, the light turns yellow.");
-W("For peers where the IP address is known and the DNS lookup succeeds, the 
hostname and the country of the peer are also listed.");
-W("Finally the list also includes how much we trust this peer (which itself is 
a metric for how much that peer has been contributing to the network).");
-EP();
-IMG("screenshots/gnunet-gtk-peers.png",
-    "gnunet-gtk peers page",
-    "CENTER",615,492);
-
-
-ANCHOR("logs");
-H2("The Logs");
-
-BP();
-W("The logs tab shows messages about events.");
-W("The most common messages are namespace discoveries and a failure to connect 
to gnunetd.");
-W("Note that the tab shows the messages in reverse order -- the most recent 
message is always on top!");
-EP();
-IMG("screenshots/gnunet-gtk-logs.png",
-    "gnunet-gtk logs page",
-    "CENTER",615,492);
-
-
-include("html_footer.php3");
-?>

Deleted: GNUnet-docs/WWW/hacking.php3
===================================================================
--- GNUnet-docs/WWW/hacking.php3        2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/hacking.php3        2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,97 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet Documentation: Copyright and Philosophy";
-$description="GNUnet Documentation - a secure peer-to-peer framework starring 
anonymous file sharing with an excess based trust-economy";
-include("html_header.php3");
-
-P();
-HR();
-ANCHOR("design");H3("System Design");
-
-BP();
-W("This section is intented to be an introduction to programmers that want to 
extend the framework.");
-W("GNUnet has a layered design.");
-W("An extremely high-level, simplified view is this:");
-EP();
-
-img("images/gnunet-design.png", "GNUnet layering", "CENTER", 401, 421, 0, 10, 
10);
-?>
-<center>
-<table border="0" cellspacing="0" cellpadding="0">
-<tr>
-<th class="tbl"><?php W("Layer"); ?></th>
-<th class="tbl"><?php W("Example"); ?></th>
-<th class="tbl"><?php W("code in"); ?></th>
-<tr>
-<th class="tbl"><?php W("User Interface(s)"); ?></th>
-<td class="tbl"><?php W("gnunet-search"); ?></td>
-<td class="tbl">applications/fs/tools/</td>
-</tr>
-<tr>
-<th class="tbl"><?php W("Application Logic"); ?></th>
-<td class="tbl"><?php W("file sharing"); echo ", "; W("statistics"); ?></td>
-<td class="tbl">applications/fs/module/, applications/stats/</td>
-</tr>
-<tr>
-<th class="tbl"><?php W("Core"); ?></th>
-<td class="tbl"><?php W("gnunetd"); ?></td>
-<td class="tbl">server/</td>
-</tr>
-<tr>
-<th class="tbl"><?php W("Transport"); ?></th>
-<td class="tbl"><?php W("UDP"); echo " "; W("TCP"); ?></td>
-<td class="tbl">transports/</td>
-</tr>
-</table>
-</center>
-<?php
-BP();
-W("The GNUnet core is structured into a complex set of smaller modules.");
-W("These modules are responsible for specific aspects of the system, like 
sessionkey exchange, peer advertisements, topology management or the 
transports.");
-W("The following picture illustrates the dependencies between these 
fundamental modules in the GNUnet core:");
-EP();
-img("images/overview.png", "GNUnet Core Overview", "CENTER", 746, 598, 0, 10, 
10);
-BP();
-W("The responsibilities of the individual modules are split as follows:");
-EP();
-echo "<dl>";
-DT("identity");
-DD("Keeping track of known peers, how much we trust them and what their 
current addresses are");
-DT("advertising");
-DD("Telling other peers about our addresses and forwarding advertisements");
-DT("bootstrap");
-DD("Using external means to learn about other peers to initially connect to 
the network (i.e. HTTP download of the hostlist)");
-DT("fragmentation");
-DD("Breaking of large (up to 64k) messages into smaller messages that fit the 
constraints of the MTU of the transport");
-DT("pingpong");
-DD("Sending PING messages to confirm that another peer is alive and 
notifications if other peers respond to our PINGs.");
-DT("session");
-DD("Establishing encrypted sessions with other peers");
-DT("topology");
-DD("Maintaining a diverse set of connections with other peers, that is 
deciding with which peers to establish connections at what time");
-DT("transport");
-DD("Hanlding of multiple low-level transports for direct communication with 
other peers (with UDP-like semantics)");
-echo "</dl>";
-BP();
-W("The core itself is responsible for loading of modules, registering of 
handlers and the event loops.");
-W("Various helper services exist for building applications.");
-W("The most important ones are:");
-EP();
-echo "<dl>";
-DT("getoption");
-DD("Allows clients (not other peers) to query the configuration of 
<tt>gnunetd</tt> via TCP.");
-DT("rpc");
-DD("Allows applications to make remote procedure calls, that is reliable 
invocations of functions with arguments and return values at another peer.");
-DT("stats");
-DD("Keeps statistics (pair of a string and an unsigned long long value) of 
arbitrary properties of GNUnet.  The service allows other modules to add new 
statistics, the application module allows <tt>gnunet-stats</tt> to query these 
values.");
-DT("traffic");
-DD("Keeps track of how many messages of which type were recently received or 
transmitted.  Can be queried by both other modules and by clients.  Used for 
example to ensure that enough cover traffic is available for anonymous 
operations where a high level of anonymity is desired.");
-echo "</dl>";
-BP();
-
-W("The following sections describe various aspects of the GNUnet code in more 
detail:");
-EP();
-include("hacking_index.inc");
-
-include("html_footer.php3");
-?>

Deleted: GNUnet-docs/WWW/hacking_afs.php3
===================================================================
--- GNUnet-docs/WWW/hacking_afs.php3    2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/hacking_afs.php3    2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,68 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet Documentation: Hacking GNUnet File-Sharing";
-$description="Overview of the File-sharing code in GNUnet";
-include("html_header.php3");
-
-H2("The File-Sharing code in GNUnet");
-afslogo();
-P();
-W("The file-sharing code falls roughly into five main groups: the ECRS 
encoding, the SQSTORE database, the FS module, DHT routing and the user 
interface(s).");
-W("The ECRS code is responsible for breaking the file into blocks, encoding, 
decoding and verification of these blocks, inserting and requesting blocks and 
other fundamental functions.");
-W("The SQSTORE database services are responsible for storing the blocks.");
-W("The user interface consists of a shared library (FSUI) that does the actual 
work and several user interfaces (gnunet-insert, gnunet-gtk) which provide a 
way for the user to access the functionality provided by FSUI.");
-W("The DHT routing services are responsible for deciding which peers should 
receive which queries (and where to send replies back to) for non-anonymous 
routing.");
-W("Anonymous routing is integrated into the FS module.");
-W("The FS module also provides communication with clients (the client side is 
done by the FSLIB helper library), tracking of requests, planning of anonymous 
routing, content migration and management of the SQSTORE (with help of the 
DATASTORE module).");
-W("The FS module selects between anonymous and DHT routing services depending 
on the desired level of anonymity.");
-W("The user interface code consists mostly of straight-forward wrappers around 
the FSUI and ECRS libraries.");
-W("For a description of the user interface from the point of the user, see the 
%s.",
-  intlink_("user_afs.php3", "File-sharing user documentation"));
-P();
-
-H3("libgnunet_ecrs");
-W("The primary reference for the ECRS library is the %s.",
-  extlink_("download/ecrs.ps", "ECRS paper"));
-W("The paper describes how files are encoded, searched-for, requested and 
assembled.");
-W("The bulk of the encoding related code is in %s (splitting of the file into 
blocks), %s (retransmission of requests), %s (handling of namespaces) and %s 
(handling of directories).",
-  ARRAY(extlink_("doxygen/html/upload_8c.html", "upload.c"),
-        extlink_("doxygen/html/download_8c.html", "download.c"),
-        extlink_("doxygen/html/namespace_8c.html", "namespace.c"),
-        extlink_("doxygen/html/directory_8c.html", "directory.c")));
-
-P();
-H3("The GAP Module");
-W("The %s provides the code for anonymous routing of file-sharing requests.");
-  extlink_("doxygen/html/gap_8c.html", "gap module"));
-
-P();
-H3("The SQStore Module");
-W("The local storage of the node is provided by the %s.",
-  extlink_("doxygen/html/gnunet__sqstore_8h.html", "SQstore modules"));
-W("Currently, two SQStore implementations are available, one using mysql and 
one using sqlite for the database.");
-
-
-ANCHOR("fs");H3("FS application module");
-W("The code in this directory contains the shared library (or plugin) that 
gnunetd loads in order to participate in (anonymous) file sharing.");
-W("FS queues requests and keeps track of the previous node on the path for 
sending replies.");
-W("The FS module itself is responsible for deciding which content should be 
stored locally.");
-W("FS uses the DATASTORE module to store data, to lookup queries and for 
content migration.");
-W("FS also manages on-demand encoded data.");
-W("The ECRS_CORE library is used by FS and ECRS to verify that replies match 
the queries (ECRS verification).");
-W("FS uses the DHT for non-anonymous routing.");
-W("The decision is based on the frequency and priority of requests for the 
content and the available diskspace.");
-W("A %s is used (by the DATASTORE module) to reduce the number of accesses to 
the SQSTORE module.",
-  extlink_("download/bloomfilter.ps", "bloomfilter"));
-P();
-
-ANCHOR("FSUI");H3("libgnunet_fsui");
-W("The FSUI library is a high-level library for writing user interfaces.");
-W("The client is expected to be event-driven.");
-W("When the FSUI library is initialized, the user-interface code must provide 
a callback function.");
-W("This function is called for all FSUI events, such as progress (downloading, 
inserting), search results or completed actions (download complete, upload 
complete).");
-W("After initializing FSUI, clients can initiate various actions, such as 
searching, downloading or publishing data.");
-W("Note that many FSUI operations are asynchronous, that is the client calls a 
function to initiate a transaction, and the function will return instantly 
while using additional threads to continue the operation.");
-W("Some of these asynchronous operations can be aborted early, but not all.");
-
-include("html_footer.php3");
-?>

Deleted: GNUnet-docs/WWW/hacking_application.php3
===================================================================
--- GNUnet-docs/WWW/hacking_application.php3    2012-08-27 18:40:59 UTC (rev 
23449)
+++ GNUnet-docs/WWW/hacking_application.php3    2012-08-27 18:51:04 UTC (rev 
23450)
@@ -1,81 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet Documentation: writing applications";
-$description="How to write an application service for GNUnet";
-include("html_header.php3");
-
-H4("How do I write a new application service for GNUnet?");
-BP();
-W("The directory %s contains the minimal piece of code that you will need to 
start.",
-  
extlink_("doxygen/html/template_8c-source.html","src/applications/template/"));
-W("You may also want to look at %s for a simple working example.",
-  extlink_("doxygen/html/chat_8c-source.html","src/applications/chat/"));
-P();
-W("Most simple applications will consist of two pieces of code:");
-EP();
-echo "<ol><li>";
-W("The first is a dynamic library that plugs into the GNUnet core.");
-W("This library must provide a single function which is invoked by the core 
when <tt>gnunetd</tt> starts.");
-W("This function registers a couple of callbacks with the GNUnet core in order 
to handle certain peer-to-peer messages.");
-W("Every peer-to-peer message is bounded in size (about 60.000 octets) and 
must be bound to the appropriate application  module using a unique message 
identifier typically defined in %s.",
-  
extlink_("doxygen/html/gnunet__protocols_8h.html","src/include/gnunet_protocols.h"));
-W("The registered function of the application module will be called whenever a 
peer-to-peer message matching a registered message identifier is received.");
-W("The application module can send messages to other nodes using the %s.",
-  
extlink_("doxygen/html/structCoreAPIForApplication.html","CoreAPIForApplication"));
-W("Typically, the module will also make use of GNUnet&rsquo;s client-server 
implementation %s to communicate with a user interface.",
-  extlink_("doxygen/html/tcpserver_8c-source.html","tcpserver"));
-W("Like with peer-to-peer messages, the service can register for client-server 
messages.");
-echo "</li><li>";
-W("The second piece of code is a user interface application.");
-W("Some implementations may even use a set of user interface applications (for 
example, the anonymous file sharing has <tt>gnunet-search</tt>, 
<tt>gnunet-insert</tt>, <tt>gnunet-download</tt> and a GUI that provides the 
combined functionality, <tt>gnunet-gtk</tt>).");
-W("It depends on the specifics of the application if it uses dynamic libraries 
or not.");
-W("The application must communicate with the service module that is loaded 
into the GNUnet core.");
-W("While any IPC mechanism should theoretically work, the preferred way that 
is used by all existing GNUnet applications is using %s, a simple TCP 
connection that communicates with the %s.",
-  ARRAY(extlink_("doxygen/html/tcpio_8c.html","tcpio"),
-       extlink_("doxygen/html/tcpserver_8c-source.html","tcpserver")));
-BR();
-W("The simplest way for a user interface to connect to the GNUnet core via TCP 
is to use the helper methods defined %s as part of the <tt>gnunetutil</tt> 
library; the library defines methods for %s and getting a client socket that is 
connected to <tt>gnunetd</tt>.",
-  ARRAY(extlink_("doxygen/html/port_8c-source.html","port.c"),
-       extlink_("doxygen/html/printhelp_8c-source.html","parsing the command 
line options")));
-echo "</li></ol>";
-
-ANCHOR("portability");H4("Portability");
-BP();
-W("The official GNUnet source maintained by the GNUnet developers supports the 
platforms listed on the downloads page.");
-W("These ports require some guidelines to be obeyed:");
-EP();
-echo "<ul>";
-echo "<li>";
-W("Avoid platform specific code outside of <tt>src/util/</tt>.");
-echo "</li>";
-echo "<li>";
-W("Do not use <tt>fork()</tt> or similar functions.");
-echo "</li>";
-echo "<li>";
-W("Use <tt>GNUNET_thread_sleep()</tt> instead of <tt>sleep()</tt>.");
-echo "</li>";
-echo "<li>";
-W("Use <tt>DIR_SEPARATOR</tt> and <tt>DIR_SEPARATOR_STR</tt> instead of plain 
slashes.");
-echo "</li>";
-echo "<li>";
-W("Use the uppercase macros defined in <tt>platform.h</tt> (for example, 
<tt>CHDIR()</tt> instead of <tt>chdir()</tt>, <tt>CONNECT()</tt> instead of 
<tt>connect()</tt>).");
-echo "</li>";
-echo "<li>";
-W("Use <tt>GNUNET_disk_file_open()</tt> instead of <tt>open()</tt>");
-echo "</li>";
-echo "<li>";
-W("If an I/O function is missing in <tt>platform.h</tt>, ask the GNUnet 
developers.");
-W("The desired function may exist on all platforms, but its behavior may be 
different.");
-echo "</li>";
-echo "<li>";
-W("Always expect I/O operations to fail with <tt>EWOULDBLOCK</tt>, even if 
<tt>SELECT()</tt> returned the descriptor as ready.");
-echo "</li>";
-echo "<li>";
-W("GTK functions may only be called from the main thread.  Use 
<tt>gtkSaveCall()</tt> from the <tt>gnunetgtk_common</tt> library before making 
any GTK calls.");
-echo "</li>";
-echo "</ul>";
-P();
-
-include("html_footer.php3");
-?>
-

Deleted: GNUnet-docs/WWW/hacking_future.php3
===================================================================
--- GNUnet-docs/WWW/hacking_future.php3 2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/hacking_future.php3 2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,39 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet Documentation: Future Work";
-$description="Future work for GNUnet hackers";
-include("html_header.php3");
-
-ANCHOR("future");H3("Future Work");
-BP();
-W("Code contributions (GPL) are generally welcome.");
-W("Before writing a larger patch, you may want to discuss the idea on the 
developer mailinglist first.");
-P();
-W("Some ideas (in random order, contacts listed are people that seem to have 
given the idea some thought and/or may even have some code):");
-EP();
-echo "<ul>";
-LI("improve performance (create simulator/testbed, improve heuristics)");
-LI("improve documentation");
-LI("translate (documentation, user interface, messages, man-pages)");
-LI("more powerful user-interfaces (preferences, non-gtk+).");
-LI("write more extractors for %s (%s)",
-   ARRAY(extlink_("/libextractor/","libextractor"),
-        extlink_("mailto:address@hidden","contact";)));
-LI("fix %s",
-   extlink_("https://gnunet.org/mantis/","bugs";));
-LI("improve HTTP(S) implementation of %s",
-   extlink_("/libmicrohttpd/","libmicrohttpd"));
-LI("package binaries for various platforms");
-LI("design and implement a resillient, privacy-respecting chat protocol");
-echo "</ul>";
-BP();
-W("And if you want to go totally crazy:");
-EP();
-echo "<ul>";
-LI("distributed computation (sandboxing!?)");
-LI("How about pseudonym based E-mail with accounting to fight Spam? E-mail 
without a central server at some ISP would also get rid of the pain with 
changing the address ever again.");
-LI("add SSH-based transport protocol");
-LI("add steganography to existing transport protocols");
-echo "</ul>";
-include("html_footer.php3");
-?>

Deleted: GNUnet-docs/WWW/hacking_index.inc
===================================================================
--- GNUnet-docs/WWW/hacking_index.inc   2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/hacking_index.inc   2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,11 +0,0 @@
-<ol>
-<li><?php intlink("hacking_organization.php3","Code Organization"); ?></li>
-<li><?php intlink("hacking_util.php3","src/util/"); ?></li>
-<li><?php intlink("hacking_server.php3","Understanding gnunetd"); ?></li>
-<li><?php intlink("hacking_application.php3","Writing applications"); ?></li>
-<li><?php intlink("hacking_testcases.php3","Writing testcases"); ?></li>
-<li><?php intlink("hacking_threading.php3","Threading"); ?></li>
-<li><?php intlink("hacking_rpc.php3","Using the RPC service"); ?></li>
-<li><?php intlink("hacking_win32_build.php3","Building on MS Windows"); ?></li>
-<li><?php intlink("hacking_future.php3","Future Work"); ?></li>
-</ol>

Deleted: GNUnet-docs/WWW/hacking_organization.php3
===================================================================
--- GNUnet-docs/WWW/hacking_organization.php3   2012-08-27 18:40:59 UTC (rev 
23449)
+++ GNUnet-docs/WWW/hacking_organization.php3   2012-08-27 18:51:04 UTC (rev 
23450)
@@ -1,99 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet Documentation: Code Organization";
-$description="Overview over the GNUnet source code for developers";
-include("html_header.php3");
-
-ANCHOR("libraries");H3("GNUnet libraries");
-
-BP();
-W("GNUnet is divided into several libraries.");
-W("Some libraries are statically linked (rare), some are shared libraries and 
many are plugins into the GNUnet core.");
-P();
-W("Static libraries are used for purely internal re-use of code (not used at 
this point).");
-P();
-W("Shared libraries are used whenever multiple tools share code.");
-W("The general OS abstraction library, <tt>gnunetutil</tt> as well as 
libraries like <tt>libgnunetecrs</tt> that are used by multiple user interfaces 
belong into this category.");
-P();
-W("Finally, plugins are used for all of the code that is dynamically loaded by 
the gnunet daemon (or <tt>gnunet-gtk</tt>) when needed.");
-W("This keeps the code for <tt>gnunetd</tt> small and modular.");
-W("Modules fall into four subcategories, transport-services, internal 
services, application services and finally plugins for <tt>gnunet-gtk</tt>.");
-W("Internal services are useless by themselves and only provide functionality 
for application services.");
-W("A simple example for an internal service is message fragmentation, which is 
a module that breaks larger messages into smaller messages and re-assembles 
them at the destination.");
-W("Some services are required by the GNUnet core, others are purely 
optional.");
-W("By convention, the names for header files for service plugins end in 
<tt>_service.h</tt>.");
-W("Application modules provide useful services that are exposed to the user 
via user interfaces.");
-W("Examples for application modules are the fs (file-sharing), tbench, 
tracekit and the chat application modules.");
-W("Application modules typically also provide one or more shared libraries to 
make it easier to write user interfaces for these applications.");
-W("By convention, the names of the header files for these convenience 
libraries end in <tt>_lib.h</tt>.");
-W("An example for such a convenience library is <tt>libgnunetfs</tt> with the 
header file <tt>gnunet_fs_lib.h</tt>.");
-W("In this case, the immediate API exposed by the fs application is extremely 
low-level and additional libraries (ECRS and FSUI) are used to provide 
higher-level abstractions.");
-W("Note that the application services themselves do not define a header file 
since they are accessed using a set of client-server messages exchanged using 
code from <tt>gnunetutil</tt> and the GNUnet core.");
-EP();
-
-ANCHOR("overview");H3("Important header files and libraries");
-
-BP();
-W("The most important header files in GNUnet are:");
-EP();
-echo "<ul>\n";
-LILI("#protocols","gnunet_protocols.h");
-LILI("hacking_util.php3","gnunet_util.h");
-LILI("#transport","gnunet_transport.h");
-LILI("#core","gnunet_core.h");
-echo "</ul>\n";
-
-
-ANCHOR("protocols");H4("gnunet_protocols.h");
-BP();
-W("The <tt>gnunet_protocols.h</tt> include file also defines all GNUnet 
message ID numbers.");
-W("While these ID numbers belong to individual modules, defining them all in 
one place makes it trivial to avoid conflicting assignments.");
-W("Thus, whenever a new type of message is defined, it should be given a 
globally unique number in <tt>gnunet_protocols.h</tt> as soon as possible.");
-W("The most important sets of constants are the client-server protocol message 
types, the peer-to-peer protocol message types, the transport service 
identifiers and the ECRS block types.");
-
-EP();
-ANCHOR("transport");H4("gnunet_transport.h");
-BP();
-W("This header primarily defines the functions that any GNUnet transport 
service must implement.");
-W("The semantic of the transport service are essentially those of UDP: 
out-of-order, unreliable, unencrypted delivery of bounded-size messages.");
-W("Each transport type can also define its own addressing scheme.");
-EP();
-ANCHOR("core");H4("gnunet_core.h");
-BP();
-W("This header defines the API that can be used by GNUnet modules.");
-W("It provides functions to register listeners for certain events (like 
messages from peers and local user interface clients), to load additional 
services, and to send messages to other peers.");
-
-EP();
-ANCHOR("flow");H3("Global data-flow in GNUnet");
-
-BP();
-W("There are two typical flows for data in GNUnet.");
-W("Note that this text describes the flow of the data, several threads and 
processes are involved in this.");
-P();
-W("First, a client such as %s or %s connects (via a secure TCP connection, 
typically
-loopback) to the %s.",
-  ARRAY(extlink_("doxygen/html/gnunet-search_8c.html","gnunet-search"),
-       extlink_("doxygen/html/gnunet-insert_8c.html","gnunet-insert"),
-       extlink_("doxygen/html/tcpserver_8c.html","tcpserver")));
-W("The actuall connection operation is initiated in some helper library 
written for the specific application, in this case <tt>libgnunetfsui</tt> calls 
<tt>libgnunetecrs</tt> which calls <tt>libgnunetfs</tt> which sends the actual 
request via TCP using <tt>libgnunetutil</tt>.");
-W("A common request is a %s which is handed by the %s in the GNUnet CORE to 
the FS service, which then passes the query to the internal %s for routing.",
-  
ARRAY(extlink_("doxygen/html/structCS__fs__request__search__MESSAGE.html","query"),
-        extlink_("doxygen/html/tcpserver_8c.html","tcpserver"),
-       extlink_("doxygen/html/gnunet__gap__service_8h.html","GAP service")));
-W("The GAP service then produces a query which is enqueued in the %s module of 
the CORE for transmission to other peers.",
-  extlink_("doxygen/html/connection_8c.html#a64","connection"));
-W("After a while, the entire buffer is flushed and send to the destination(s) 
with a help from the %s and %s modules.",
-  ARRAY(extlink_("doxygen/html/gnunet__identity__service_8h.html","identity"),
-       
extlink_("doxygen/html/gnunet__transport__service_8h.html","transport")));
-W("The peer-to-peer message is then transmitted via a transport service, such 
as the %s transport.",
-  extlink_("doxygen/html/udp_8c.html","udp"));
-P();
-W("The second path comes into play after gnunetd receives a message on any 
transport mechanism.");
-W("The message is %s according to its message type.",
-  extlink_("doxygen/html/handler_8c.html#a26","demultiplexed"));
-W("If it is a query the GAP and FS modules perform a lookup and eventually 
send a reply.");
-W("The reply goes the same path back, eventually reaching the other peer where 
it is then passed to the user interface.");
-EP();
-
-include("html_footer.php3");
-?>

Deleted: GNUnet-docs/WWW/hacking_rpc.php3
===================================================================
--- GNUnet-docs/WWW/hacking_rpc.php3    2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/hacking_rpc.php3    2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,56 +0,0 @@
-<?php
-include("scripts.php3");
-$title="GNUnet Documentation: Remote Procedure Calls (RPC)";
-$description="Documentation of the GNUnet Remote Procedure Call Service (RPC)";
-include("html_header.php3");
-
-H2("The GNUnet RPC service");
-BP();
-W("The GNUnet RPC service offers link-to-link reliable remote procedure 
calls.");
-W("The link-to-link restriction means that the peers have to be able to 
connect directly.");
-W("In other words, the GNUnet RPC service does not do any routing.");
-W("Also note that different peers may support a different subset of RPC 
messages.");
-W("Hence an application cannot expect every peer to respond to RPC calls.");
-P();
-W("GNUnet's RPC calls can be made synchronously or asynchronously.");
-W("In the synchronous case the caller is blocked until a reply has been 
received (or until the request times out).");
-W("Note that blocking arbitrary GNUnet threads in this manner is probably a 
bad idea, so blocking RPC calls should only be performed by dedicated 
threads.");
-W("The more common pattern is to use an asynchronous RPC call.");
-W("In that case the RPC service invokes a callback at the time where a reply 
is received.");
-W("Asynchronous RPC calls must be explicitly canceled to reclaim memory.");
-P();
-W("Just like invoking an RPC can be synchronous or asynchronous, the RPC 
functions themselves can be synchronous or asynchronous.");
-W("RPC functions that themselves perform RPC calls must almost always be 
defined as asynchronous to avoid possibly deadlocking the system.");
-W("Note that the size of RPC messages (paramters, return values) is currently 
limited by the MTU (minus headers) of the underlying transport used by 
GNUnet.");
-EP();
-
-H3("Arguments and return values");
-BP();
-W("GNUnet RPC functions use the opaque RPC_Param datastructure for passing 
arguments and return values.");
-W("RPC_Param allows naming parameters and returning any number of return 
values.");
-W("Naming parameters has the advantage that it is easy to add additional 
arguments in later versions.");
-W("Also, named parameters define a natural way to achieve a variable number of 
arguments.");
-W("RPC_Param also assigns each parameter an index.");
-W("This is useful if multiple values of the same kind need to be passed.");
-W("The %s header file defines various helper functions to access RPC_Param 
datastructures.",
-  extlink_("doxygen/html/gnunet__rpc__service_8h.html",
-          "gnunet_rpc_service.h"));
-EP();
-
-H3("Using the RPC service");
-BP();
-W("In order to use the RPC service an application module must first request it 
from the GNUnet core.");
-W("The following code illustrates how to do this:");
-EP();
-?>
-<pre>
-CoreAPIForApplicaton * coreAPI = ...;
-RPC_ServiceAPI * rpc = (RPC_ServiceAPI) coreAPI->requestService("rpc");
-rpc->RPC_register("myRPCFunction", &myFunction);
-rpc->RPC_execute(&peer, "myRPCFunction", &args, &ret, 0, 5 * cronSECONDS);
-rpc->RPC_unregister("myRPCFunction", &myFunction);
-coreAPI->releaseService(rpc);
-</pre>
-<?php
-include("html_footer.php3");
-?>

Deleted: GNUnet-docs/WWW/hacking_server.php3
===================================================================
--- GNUnet-docs/WWW/hacking_server.php3 2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/hacking_server.php3 2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,52 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet Documentation: Hacking gnunetd";
-$description="Description of the internals of the gnunetd process";
-include("html_header.php3");
-
-H2("Understanding gnunetd");
-
-BP();
-
-W("In GNUnet, the server <tt>gnunetd</tt> is responsible for loading modules, 
demultiplexing messages from clients and other peers and queueing (encrypted) 
messages for other peers.");
-W("The core also performs bandwidth allocation and scheduling.");
-W("The core relies on implementations of the %s for the actual transport of 
packets.",
-  extlink_("doxygen/html/structTransportAPI.html",
-           "TransportAPI"));
-W("The transport layer has, like the internet protocol (IP) and UDP, 
best-effort semantics.");
-W("There is no guarantee that a message will be delivered.");
-BR();
-W("Applications (like file-sharing) are build on top of the GNUnet core; the 
core itself has no notion of file-sharing.");
-W("Applications may consist of multiple services and use the %s to access the 
GNUnet core.",
-  extlink_("doxygen/html/structCoreAPIForApplication.html",
-           "CoreAPIForApplication"));
-W("If necessary, applications are responsible for adding reliability (through 
retransmission) to the networking layer.");
-W("A common way to do this is by using the RPC service.");
-W("The applications are also responsible for avoiding congestion (see TCP).");
-W("While the core will enforce bandwidth limitations set by the user, services 
should implement better strategies.");
-W("Applications communicate these strategies to the core by giving their 
message a priority and a desired time for transmission.");
-W("The core then considers the available bandwidth, deadlines and priorities, 
solves the resulting knapsack problem and schedules the messages.");
-BR();
-W("In order to ease the implementation, GNUnet splits applications in two main 
parts.");
-W("The first part resides in the process space of <tt>gnunetd</tt>.");
-W("This part is implemented as an application plugin and possibly additional 
service plugins.");
-W("The core will notify this lowest layer of the service of messages that have 
arrived for the service.");
-W("This layer of the application is responsible for all node-to-node 
interactions.");
-W("Typically, the layer consists of multiple service modules.");
-W("For example, the file-sharing application (FS) uses the GAP service for 
routing and the sqstore service for the database.");
-W("The second part of every service is a user-interface which is invoked by 
the user.");
-W("The idea is that the user starts a sepearate program (like gnunet-search, 
gnunet-download or gnunet-gtk) which provides a user interface to the 
service.");
-W("Typically, the user interface is split into a shared library that provides 
the actual implementation and a concrete client.");
-W("The idea is that the shared library focuses on performing the interaction 
with <tt>gnunetd</tt> via the trusted (local) TCP connection to talk to the 
in-process part of the service, whereas the concrete client handles the actual 
user interaction (i.e. performs GTK+ calls).");
-BR();
-W("The GNUnet core provides an easy way for services to %s for certain types 
of messages from the application.",
-  extlink_("doxygen/html/structCoreAPIForApplication.html#m21","register"));
-W("The %s implementation provides functions to send and receive messages via 
TCP.",
-  extlink_("doxygen/html/tcpio_8c-source.html","tcpio"));
-W("Note that the TCP connection between the application and <tt>gnunetd</tt> 
is presumed to be totally secure (i.e. via loopback).");
-W("You can specify the list of trusted IP addresses (i.e. the LAN) that are 
allowed to connect as clients to GNUnetd.");
-EP();
-
-
-include("html_footer.php3");
-?>

Deleted: GNUnet-docs/WWW/hacking_testcases.php3
===================================================================
--- GNUnet-docs/WWW/hacking_testcases.php3      2012-08-27 18:40:59 UTC (rev 
23449)
+++ GNUnet-docs/WWW/hacking_testcases.php3      2012-08-27 18:51:04 UTC (rev 
23450)
@@ -1,76 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet Documentation: writing testcases";
-$description="How to write testcases for GNUnet";
-include("html_header.php3");
-
-H2("Writing testcases for GNUnet");
-H3("Fundamentals");
-BP();
-W("Ideally, any non-trivial GNUnet code should be covered by automated 
testcases.");
-W("Testcases should reside in the same place as the code that is being 
tested.");
-W("The name of source files implementing tests should contain the word 
<tt>test</tt>.");
-W("Typically it is desireable to have testcases both for low-level functions 
and high-level abstractions.");
-W("For example, while the cryptographic functions would be tested as part of 
the session key exchange, they should also still be tested independently.");
-EP();
-H3("Integration with GNU autotools");
-BP();
-W("Testcases in GNUnet should be integrated with the autotools build system.");
-W("This way, developers and anyone building binary packages will be able to 
run all testcases simply by running <tt>make check</tt>.");
-W("The final testcases shipped with the distribution should output at most 
some brief progress information and not display debug messages.");
-W("The success or failure of a testcase must be indicated by returning zero 
(success) or non-zero (failure) from the main method of the testcase.");
-W("The integration with the autotools is relatively straightforward and only 
requires modifications to the <tt>Makefile.am</tt> in the directory containing 
the testcase.");
-W("For three testcases testing the code in  <tt>foo.c</tt>, <tt>bar.c</tt> and 
<tt>etc.c</tt>, the <tt>Makefile.am</tt> would contain the following lines:");
-EP();
-PRE("check_PROGRAMS = footest bartest etctest\n" .
-    "TESTS = $(check_PROGRAMS)\n" .
-    "footest_SOURCES = footest.c\n" .
-    "footest_LDADD = $(top_builddir)/src/util/libgnunetutil.la\n" .
-    "bartest_SOURCES = bartest.c\n" .
-    "bartest_LDADD = $(top_builddir)/src/util/libgnunetutil.la\n" .
-    "etctest_SOURCES = etctest.c\n" .
-    "etctest_LDADD = $(top_builddir)/src/util/libgnunetutil.la\n");
-BP();
-W("Naturally, other libraries used by the testcase may be specified in the 
<tt>LDADD</tt> directive as necessary.");
-P();
-W("Often testcases depend on additional input files, such as a configuration 
file.");
-W("These support files have to be listed using the <tt>EXTRA_DIST</tt> 
directive in order to ensure that they are included in the distribution.");
-W("Example:");
-EP();
-PRE("EXTRA_DIST = check.conf\n");
-BP();
-W("Executing <tt>make check</tt> will run all testcases in the current 
directory and all subdirectories.");
-W("Testcases can be compiled individually by running <tt>make footest</tt> and 
then invoked directly using <tt>./footest</tt>.");
-W("Note that due to the use of plugins in GNUnet, it is typically necessary to 
run <tt>make install</tt> before running any testcases.");
-W("Thus the canonical command <tt>make check install</tt> has to be changed to 
<tt>make install check</tt> for GNUnet.");
-EP();
-H3("Common problems and solutions");
-BP();
-W("When testing GNUnet, the splitting of the code into a daemon and clients 
often complicates testing.");
-W("The solution to this is to have the testcase <tt>fork</tt> a 
<tt>gnunetd</tt> process and then execute appropriate client actions (to test 
the client APIs or the core module or both).");
-W("If necessary, multiple daemons can be forked using different ports (!) to 
simulate a network.");
-W("However, most of the time only one <tt>gnunetd</tt> process is needed.");
-W("Also note that some client libraries were not written to communicate with 
multiple daemons over multiple trusted TCP connections at the same time, which 
may complicate testing in such situations.");
-W("Note that on exit, the testcase should shutdown <tt>gnunetd</tt> with a 
kill signal.");
-W("The following code illustrates spawning and killing a <tt>gnunetd</tt> 
process from a testcase:");
-EP();
-PRE("pid_t daemon; \n" .
-    "daemon = GNUNET_daemon_start(NULL, cfg, \"peer.conf\", NO);\n" .
-    "/* put actual testcode here */\n" .
-    "if (daemon != -1) {\n" .
-    "  if (YES != GNUNET_daemon_stop(NULL, daemon))\n" .
-    "    DIE_STRERROR(\"kill\");\n" .
-    "}\n");
-BP();
-W("An alternative way to just test modules (in particular if there is no 
client API to start with) is to implement a mock-version of the GNUnet core API 
and emulate a <tt>gnunetd</tt> environment for the module.");
-W("An example for this is the %s.",
-  extlink_("doxygen/html/fragmentationtest_8c.html", "fragmentationtest.c"));
-P();
-W("Another uncommonly used alternative is to have the testcase process itself 
load the modules by initiating the full <tt>gnunetd</tt> startup sequence.");
-W("For that, the testcase must link against <tt>libgnunetcore</tt>.");
-W("For an example see %s.",
-  extlink_("doxygen/html/gnunet-transport-check_8c.html", 
"gnunet-transport-check.c"));
-EP();
-
-include("html_footer.php3");
-?>

Deleted: GNUnet-docs/WWW/hacking_threading.php3
===================================================================
--- GNUnet-docs/WWW/hacking_threading.php3      2012-08-27 18:40:59 UTC (rev 
23449)
+++ GNUnet-docs/WWW/hacking_threading.php3      2012-08-27 18:51:04 UTC (rev 
23450)
@@ -1,73 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet Documentation: Threading in gnunetd";
-$description="This page describes the various threads that exist in gnunetd, 
how to use them and common pitfalls that should be avoided";
-include("html_header.php3");
-
-H4("Threading and Synchronization");
-BP();
-W("GNUnet is inherently multi-threaded.");
-W("Thus writing applications for GNUnet requires taking synchronization issues 
into account.");
-W("GNUnet provides a minimal set of threading abstractions in the %s module, 
including semaphores, mutexes, recursive mutexes and thread creation.",
-  extlink_("doxygen/html/semaphore_8c-source.html","semaphore"));
-W("When writing code for GNUnet, the following basic rules must be followed:");
-EP();
-echo "<ol><li><strong>";
-W("The core may call registered callback handlers at any time, and also 
concurrently.");
-W("The application modules are responsible for synchronizing access to their 
internal state properly.");
-echo "</strong>";
-W("In practice, client code will use <tt>GNUNET_mutex_create</tt> in 
initializers and then guard access to mutable global shared state using 
<tt>GNUNET_mutex_lock</tt> and <tt>GNUNET_mutex_unlock</tt>.");
-echo "</li><li><strong>";
-W("In order to avoid deadlocks, code that was called via callback from the 
core may not invoke methods on the core while holding locks of the 
application.");
-echo "</strong>";
-W("The rationale behind this rule is that the core may have a thread A that 
holds an internal lock L and calls a callback on the service.");
-W("If simultaneously another thread B holds a lock S of the service and calls 
back on the core, this may result in a deadlock if that callback blocks trying 
to aquire lock L and thread A blocks trying to aquire lock S.");
-W("If thread A does not hold any internal locks when calling on the core, this 
situation can be safely avoided.");
-BR();BR();
-W("Programming with this paradigm is not very difficult.");
-W("Still, it often requires a simple trick if the callback to the core 
requires an argument that is typically kept in the shared global state.");
-W("The trick is to copy the shared global state into a local buffer while 
holding the lock, then releasing the lock and finally doing the callback on the 
core.");
-W("An example for this behavior can be found in the %s code.",
-  extlink_("doxygen/html/querymanager_8c-source.html","querymanager"));
-W("Alternatively, the global lock from the connection module can be used to 
lock on the application specific state; this global lock may be held while 
entering the GNUnet kernel.");
-echo "</li><li><strong>";
-W("Core threads should never be blocked indefinitely.");
-echo "</strong>";
-W("The core has a limited number of processing threads, so blocking them 
indefinitely will eventually block the node.");
-W("If clients (service modules in the core or applications connecting via TCP) 
block these threads, the core will stop working.");
-W("Disk-IO is typically not problematic (though excessive synchronous random 
IO operations may degrade performance significantly), and synchronization with 
other threads is also no problem (as long as they do not deadlock).");
-W("Encryption operations are also not a problem.");
-W("The only problem in practice are <em>blocking socket operations</em>.");
-W("Blocking socket operations occur pretty much only apply to TCP sockets.");
-BR();BR();
-W("The TCP transport service avoids blocking operations using <tt>select</tt> 
calls and IO buffers.");
-W("If a message can not be buffered (buffer full) and sending would block, the 
TCP transport layer discards the message (or: why we like unreliable 
operational semantics).");
-W("Client-server TCP connections are more problematic.");
-W("The reason for this is, that the client-server connection has reliable 
semantics.");
-W("Thus the gnunetd %s code blocks on writes to the client.",
-  extlink_("doxygen/html/cron_8c-source.html","tcpio"));
-W("Similarly, the client blocks when sending messages to gnunetd.");
-W("Since the client-server TCP connection is supposed to use a fast (loopback, 
LAN) connection and since <tt>gnunetd</tt> uses a thread per client connection, 
blocking briefly due to network latency on this connection is considered 
acceptable.");
-W("However, a common problem with blocking on TCP connections with clients is 
that it leaves the possibility of an <em>inter-process deadlock</em>.");
-BR();BR();
-W("The deadlock can occur if the TCP thread that receives and processes 
messages from the client blocks on a write to the client (TCP buffer queue 
full) and thus gnunetd no longer reads from the TCP pipe.");
-W("If the client blocks on a write to <tt>gnunetd</tt> and thus no longer 
reads from its end of the TCP connection, both processes block forever.");
-W("This problem is typically hard to diagnose since it involves two processes 
and may only occur after the TCP buffers of the operating system are full.");
-W("A typical symptom is that <tt>netstat -tn</tt> shows two local TCP 
connections with very full receive and send buffers that do not change.");
-BR();BR();
-W("The solution to the problem is that every client (not peer, remember that 
clients are trusted and can thus be expected to follow the protocol correctly) 
must always be in a state where it has a thread that can receive and process 
messages from <tt>gnunetd</tt>.");
-W("That thread should never block, neither by doing a direct write to 
<tt>gnunetd</tt> nor by aquireing a lock that could be hold by another thread 
while that thread writes to <tt>gnunetd</tt>.");
-W("A typical solution to this problem is to use one thread that processes 
replies and another thread that generates requests.");
-W("Another solution is to use the non-blocking TCPIO call in the client.");
-W("The %s code is an example for code that handles this type of problem.",
-  extlink_("doxygen/html/requestmanager_8c-source.html", "RequestManager"));
-echo "</li></ol>";
-
-H5("Notes");
-echo "<ul><li>";
-W("You should never use <tt>pthread_detach</tt>.");
-W("There is hardly ever a good reason for it, and it can be the source of 
subtle bugs.");
-W("Write a shutdown-sequence for your code and make sure to use 
<tt>GNUNET_thread_join</tt> on all created threads.");
-echo "</li></ul>";
-include("html_footer.php3");
-?>
\ No newline at end of file

Deleted: GNUnet-docs/WWW/hacking_ui.php3
===================================================================
--- GNUnet-docs/WWW/hacking_ui.php3     2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/hacking_ui.php3     2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,16 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet Documentation: Writing a User-Interface";
-$description="How to write user interfaces for GNUnet";
-include("html_header.php3");
-
-H4("How do I write a new user interface for GNUnet?");
-W("Typically, you will not want to write a user interface for the gnunetd 
peer-to-peer deamon but for some specific GNUnet application.");
-W("The first step is typically to factor the application code into a library 
that implements the core functionality (like talking to gnunetd via tcpio) and 
a simple shell application.");
-W("For file-sharing, the primary libraries for the user interfaces are in 
<tt>src/applications/fs/fsui/</tt> and <tt>src/applications/fs/ecrs/</tt>.");
-P();
-W("The next step is to examine the small shell-tools to get an idea how the 
application specific libraries work and to evolve the shell-tools into a user 
interface.");
-W("You may also decide to just invoke the shell-tools as separate processes 
that do the real work, though this is much less efficient and less powerful 
(thus this is not the recommended approach).");
-P();
-include("html_footer.php3");
-?>
\ No newline at end of file

Deleted: GNUnet-docs/WWW/hacking_util.php3
===================================================================
--- GNUnet-docs/WWW/hacking_util.php3   2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/hacking_util.php3   2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,90 +0,0 @@
-<?php
-include("scripts.php3");
-$title="GNUnet Documentation - libgnunetutil";
-$description="Programmer documentation for libgnunetutil";
-include("html_header.php3");
-
-H2("libgnunetutil");
-BP();
-
-W("<tt>libgnunetutil</tt> is a helper library that is supposed to contain all 
platform dependent code (except for user interfaces).");
-W("It is also supposed to offer basic services that most if not all GNUnet 
binaries require.");
-W("The code of <tt>libgnunetutil</tt> is in the <tt>src/util/</tt> 
directory.");
-W("The public interface to the library is in the %s header.",
-  extlink_("doxygen/html/gnunet__util_8h.html",
-           "gnunet_util.h"));
-W("The functions provided by <tt>libgnunetutil</tt> fall roughly into the 
following categories:");
-EP();
-?>
-<ul>
- <li><?php extlink("doxygen/html/logging_8c.html",
-                   "logging");?></li>
-
- <li><?php extlink("doxygen/html/dso_8c.html",
-                   "plugin support (dynamically shared objects)");?></li>
-
- <li><?php extlink("doxygen/html/timer_8c.html",
-                   "timing");?></li>
- <li><?php extlink("doxygen/html/statuscalls_8c.html",
-                   "load management (network, CPU)");?></li>
-
- <li><?php extlink("doxygen/html/semaphore_8c.html",
-                   "threading and synchronization");?></li>
- <li><?php extlink("doxygen/html/cron_8c.html",
-                   "periodic or deferred tasks (cron jobs)");?></li>
- <li><?php extlink("doxygen/html/shutdown_8c.html",
-                   "signal handling");?></li>
-
- <li><?php extlink("doxygen/html/tcpio_8c.html",
-                   "Reliable (TCP), record-based client-server 
communication");?></li>
- <li><?php extlink("doxygen/html/port_8c.html",
-                   "Connecting clients with <tt>gnunetd</tt>");?></li>
- <li><?php extlink("doxygen/html/daemon_8c.html",
-                   "External process control of <tt>gnunetd</tt> by 
clients");?></li>
-
- <li><?php extlink("doxygen/html/random_8c.html",
-                   "random number generation");?></li>
- <li><?php extlink("doxygen/html/hashing_8c.html",
-                   "hashing");?></li>
- <li><?php extlink("doxygen/html/symcipher__gcry_8c.html",
-                   "symmetric encryption");?></li>
- <li><?php extlink("doxygen/html/hostkey__gcry_8c.html",
-                   "asymmetric encryption");?></li>
-
- <li><?php extlink("doxygen/html/xmalloc_8c.html",
-                   "memory management");?></li>
- <li><?php extlink("doxygen/html/configuration_8c.html",
-                   "configuration");?></li>
- <li><?php extlink("doxygen/html/storage_8c.html",
-                   "IO");?></li>
- <li><?php extlink("doxygen/html/state_8c.html",
-                   "persistent storage, trivial string-based database");?></li>
- <li><?php extlink("doxygen/html/bloomfilter_8c.html",
-                   "bloomfilter implementation (with on-disk bit 
counters)");?></li>
-
-</ul>
-<?php
-
-BP();
-W("Ideally, porting GNUnet should only require porting the <tt>gnunetutil</tt> 
library.");
-W("More testcases for the <tt>gnunetutil</tt> APIs are therefore a great way 
to make porting of GNUnet easier.");
-EP();
-
-ANCHOR("crypto");
-H3("Cryptography");
-
-BP();
-W("The <tt>gnunetutil</tt> APIs provides the cryptographic primitives used in 
GNUnet.");
-W("GNUnet uses 2048 bit RSA keys for the session key exchange and for signing 
messages by peers.");
-W("Most researchers in cryptography consider 2048 bit RSA keys as very secure 
and practically unbreakable for a very long time unless extraordinary advances 
in cryptography are made.");
-W("For the encryption of the files and the symmetric peer-to-peer 
communication GNUnet uses 256-bit AES encryption.");
-W("Fresh, asymmetric session keys are negotiated for every new connection.");
-W("Again, there is no published technique to break this cipher in any 
realistic amount of time.");
-W("GNUnet uses SHA-512 for computing one-way hash codes.");
-W("Note that GNUnet does not use RSA to encrypt files or ordinary individual 
peer-to-peer messages.");
-W("No sane protocol uses public key cryptography for the bulk of the messages 
since public key encryption is extremely expensive compared to symmetric 
ciphers.");
-W("GNUnet follows the well-established practice to use public key cryptography 
to exchange an initial pair of symmetric keys that is then used for the rest of 
the communication).");
-EP();
-
-include("html_footer.php3");
-?>

Deleted: GNUnet-docs/WWW/hacking_win32_build.php3
===================================================================
--- GNUnet-docs/WWW/hacking_win32_build.php3    2012-08-27 18:40:59 UTC (rev 
23449)
+++ GNUnet-docs/WWW/hacking_win32_build.php3    2012-08-27 18:51:04 UTC (rev 
23450)
@@ -1,297 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet Documentation: Building on Microsoft Windows 32-bit 
Platforms";
-$description="A step-by-step guide on how to build and run GNUnet on Win32 
platforms.";
-include("html_header.php3");
-
-H3("Building GNUnet and libextractor on Microsoft Windows 32-bit Platforms");
-BP();
-W("This document is a guide to building GNUnet and libextractor on Windows 
platforms.");
-P();
-W("The Windows build uses a UNIX emulator for Windows, %s, to build the 
executable modules.",
-  extlink_("http://www.mingw.org/";, "MinGW"));
-W("These modules run natively on Windows and do not require additional 
emulation software besides the usual %s.",
-  extlink_("download.php3", "dependencies"));
-P();
-W("GNUnet development is mostly done under Linux and especially SVN checkouts 
may not build out of the box.");
-W("We regret any inconvenience, and if you have problems, please %s or ask the 
%s for assistance.",
-  ARRAY(extlink_("faq.php3#bugs", "report them"), extlink_("mailinglist.php3", 
"mailinglist")));
-EP();
-H4("Hardware and OS requirements");
-echo "<ul>";
-LI("Pentium II or equivalent processor, 350 MHz or better");
-LI("128 MB RAM");
-LI("600 MB free disk space"); 
-LI("Windows 2000 or Windows XP are recommended"); 
-echo "</ul>";
-H4("Software installation"); ?>
-<ol>
-  <li>
-    <b><?php W("Compression software");?></b>
-    <?php BR();W("The software packages GNUnet depends on are usually 
compressed using UNIX tools like tar,
-      gzip and bzip2.");
-    W("If you do not already have an utility that is able to extract such 
archives, get %s.",
-      extlink_("http://www.7-zip.org/";, "7-Zip"));
-    ?>
-  </li>
-  <li>
-    <b><?php W("UNIX environment"); ?></b>
-    <?php BR();
-    W("The MinGW project provides the compiler toolchain that is used to build 
GNUnet.");
-    BR();
-    
-    W("Get the following packages from %s:", 
extlink_("http://www.mingw.org/download.shtml";, "the MinGW project")); ?>
-    <ul>
-       <li>GCC core</li>
-       <li>GCC g++</li>
-       <li>MSYS</li>
-       <li>MSYS Developer Tool Kit (msysDTK)</li>
-       <li>MSYS Developer Tool Kit - msys-autoconf (bin)</li>
-       <li>MSYS Developer Tool Kit - msys-automake (bin)</li>
-       <li>MinGW Runtime</li>
-       <li>MinGW Utilities</li>
-       <li>Windows API</li>
-       <li>Binutils</li>
-       <li>make</li>
-       <li>pdcurses</li>
-       <li>GDB (snapshot)</li>
-    </ul>    
-    <ol>
-       <li><?php W("Install MSYS (to c:\mingw, for example.)"); W("Do 
<strong>not</strong> use spaces in the pathname (c:\program files\mingw)."); 
?></li>
-       <li><?php W("Install MinGW runtime, utilities and GCC to a subdirectory 
(to c:\mingw\mingw, for example)"); ?></li>
-       <li><?php W("Install the Development Kit to the MSYS directory 
(c:\mingw)"); ?></li>
-       <li>
-               <?php W("Create a batch file bash.bat in your MSYS directory 
with the content:");BR();
-                PRE("bin\sh.exe --login");
-               W("This batch file opens a shell which is used to invoke the 
build processes.");
-               W("MinGW's standard shell (msys.bat) is not suitable because it 
opens a separate console window
-               for each compilation step.");
-        W("On Vista, bash.bat needs to be run as administrator.");
-       ?>
-       </li>
-       <li><?php W("Start bash.sh and rename (c:\mingw\mingw\)lib\libstdc++.la 
to avoid problems:");
-            BR();PRE("mv /usr/mingw/lib/libstdc++.la 
/usr/mingw/lib/libstdc++.la.broken");
-            ?>
-        </li>
-       <li><?php W("Unpack the Windows API to the MinGW directory 
(c:\mingw\mingw\) and remove the declaration of DATADIR from 
(c:\mingw\mingw\)include\objidl.h (lines 55-58)"); ?></li>
-       <li><?php W("Unpack autoconf, automake to the MSYS directory 
(c:\mingw)"); ?></li>
-       <li><?php W("Install all other packages to the MinGW directory 
(c:\mingw\mingw\)"); ?></li>
-    </ol>
-  </li>
-  <li>
-    <b><?php W("GNU Libtool"); ?></b>
-    <?php BR();
-    W("GNU Libtool is required to use shared libraries.");
-    BR();
-    W("Get the prebuilt package from %s and unpack it to the MinGW directory 
(c:\mingw)",
-       extlink_("download/win/libtool-1.5.18.zip", "here"));
-    ?>
-  </li>
-  <li>
-    <b><?php W("Pthreads"); ?></b>
-    <?php BR();
-    W("GNUnet uses the portable POSIX thread library for multi-threading.");
-    BR();
-    ?>
-    <ol>
-       <li><?php W("Save %s as libpthread.a into the lib directory 
(c:\mingw\mingw\lib\libpthread.a)",
-               
extlink_("ftp://sources.redhat.com/pub/pthreads-win32/dll-latest/lib/libpthreadGC2.a";,
-                       "libpthreadGC2.a")); ?></li>
-       <li><?php W("Save %s into the MinGW bin directory (c:\mingw\mingw\bin)",
-               
extlink_("ftp://sources.redhat.com/pub/pthreads-win32/dll-latest/lib/pthreadGC2.dll";,
-                       "pthreadGC2.dll")); ?></li>
-       <li><?php W("Download all header files from %s to the include directory 
(c:\mingw\mingw\include)",
-               
extlink_("ftp://sources.redhat.com/pub/pthreads-win32/dll-latest/include/";,
-                       "include/")); ?></li>
-    </ol>
-  </li>
-  <li>
-    <b><?php W("GNU MP"); ?></b>
-    <?php BR();
-    W("GNUnet uses the GNU Multiple Precision library for special 
cryptographic operations.");
-    BR();
-    W("Get the GMP binary package from the %s and unpack it to the MinGW 
directory (c:\mingw\mingw)",
-       extlink_("http://sourceforge.net/projects/mingwrep/";, "MinGW 
repository"));
-    ?>
-  </li>
-  <li>
-    <b><?php W("GNU Gettext"); ?></b>
-    <?php BR();
-    W("GNU gettext is used to provide national language support.");
-    BR();
-    W("Get the prebuilt package from %s and unpack it to the MinGW directory 
(c:\mingw\mingw)",
-       extlink_("download/win/gettext-0.17.zip", "here"));
-    ?>
-  </li>
-  <li>
-    <b><?php W("GNU iconv"); ?></b>
-    <?php BR();
-    W("GNU Libiconv is used for character encoding conversion.");
-    BR();
-    W("Get the prebuilt package from %s and unpack it to the MinGW directory 
(c:\mingw\mingw)",
-       extlink_("download/win/libiconv-1.9.1.zip", "here"));
-    ?>
-  </li>
-  <li>
-    <b><?php W("SQLite");?></b>
-    <?php BR();W("GNUnet uses the SQLite database to store content.");BR();
-    W("Get the prebuilt binary from %s and unpack it to your MinGW directory.",
-      extlink_("http://www.gnunet.org/download/win32/sqlite.zip";, "here"));
-    ?>
-  </li>
-  <li>
-    <b><?php W("MySQL");?></b>
-    <?php BR();W("As an alternative to SQLite, GNUnet also supports MySQL."); 
?>
-    <ol>
-           <li>
-               <?php W("Get the binary installer from the %s (version 4.1),
-               install it and follow the instructions in %s.",
-               
ARRAY(extlink_("http://dev.mysql.com/downloads/mysql/4.1.html#Windows";, "MySQL 
project"),
-                       
extlink_("https://gnunet.org/svn/GNUnet/doc/README.mysql";, "README.mysql"))); ?>
-           </li>
-           <li>
-               <?php W("Create a temporary build directory (c:\mysql)"); ?>
-           </li>
-           <li>
-               <?php W("Copy the directories include\ and lib\ from the MySQL 
directory to the new directory"); ?>
-           </li>
-           <li>
-               <?php W("Get the patches from %s and %s (the latter is only 
required for MySQL < 4.1.12) and apply them: ",
-                               
ARRAY(extlink_("http://bugs.mysql.com/bug.php?id=8906&files=1";, "Bug #8906"),
-                       
extlink_("http://bugs.mysql.com/bug.php?id=8872&files=1";, "Bug #8872")));
-               BR();
-               PRE("patch -p 0 < mysql01.diff
-patch -p 0 < mysql_def03.diff"); ?>
-           </li>
-           <li>
-               <?php W("Move lib\opt\libmysql.dll to lib\libmysql.dll"); ?>
-           </li>
-           <li>
-               <?php W("Change to lib\ and create an import library:");
-               BR();
-               PRE("dlltool --input-def ../include/libmySQL.def --dllname 
libmysql.dll --output-lib libmysqlclient.a -k"); ?>
-           </li>
-           <li>
-               <?php W("Copy include\* to include\mysql\\"); ?>
-           </li>
-           <li>
-               <?php W("Pass \"--with-mysql=/c/mysql\" to ./configure and copy 
libmysql.dll to your PATH or GNUnet's bin\ directory"); ?>
-           </li>
-    </ol>
-  </li>
-  <li>
-    <b><?php W("GTK+"); ?></b>
-    <?php BR();
-    W("gnunet-gtk and libextractor depend on GTK.");
-    BR();
-    W("Get the the binary and developer packages of atk, glib, gtk, iconv, 
gettext-runtime, pango from %s and unpack it to the MinGW directory 
(c:\mingw\mingw)",
-       extlink_("ftp://ftp.gtk.org/pub/gtk/v2.6/win32";, "gtk.org"));
-    BR();
-    W("Get pkg-config and libpng from %s and unpack them to the MinGW 
directory (c:\mingw\mingw)",
-       extlink_("Tor Lillqvist", 
"http://www.gimp.org/~tml/gimp/win32/downloads.html";));
-    BR();
-    W("Do not overwrite any existing files!");
-    ?>
-  </li>
-  <li>
-    <b><?php W("Glade"); ?></b>
-    <?php BR();
-    W("gnunet-gtk and and gnunet-setup were created using this interface 
builder.");
-    BR();
-    ?>
-    <ul>
-     <li>
-       <?php
-       W("Get the Glade and libglade (-bin and -devel) packages (without GTK!) 
from %s and unpack it to the MinGW directory (c:\mingw\mingw)",
-               extlink_("http://gladewin32.sourceforge.net";, "GladeWin32"));
-       ?>
-     </li>
-        <li>
-       <?php
-       W("Get libxml from %s and unpack it to the MinGW directory 
(c:\mingw\mingw).",
-               extlink_("download/win/libxml.zip", "here"));
-       ?>
-       </li>
-    </ul>
-  </li>
-  <li>
-    <b><?php W("zLib"); ?></b>
-    <?php BR();
-    W("libextractor requires zLib to decompress some file formats. GNUnet uses 
it to (de)compress meta-data.");
-    BR();
-    W("Get zLib from %s (%s) and unpack it to the MinGW directory 
(c:\mingw\mingw)",
-       ARRAY(extlink_("download/win/zlib.zip", "here"), 
extlink_("download/win/zlib.zip.asc", "Signature")));
-    ?>
-  </li>
-  <li>
-    <b><?php W("Bzip2"); ?></b>
-    <?php BR();
-    W("libextractor also requires Bzip2 to decompress some file formats.");
-    BR();
-    W("Get Bzip2 (binary and developer package) from %s and unpack it to the 
MinGW directory (c:\mingw\mingw)",
-       extlink_("http://gnuwin32.sourceforge.net/packages/bzip2.htm";, 
"GnuWin32"));
-    ?>
-  </li>
-  <li>
-    <b><?php W("Libgcrypt");?></b>
-    <?php BR();W("Libgcrypt provides the cryptographic functions used by 
GNUnet");BR();
-    W("Get Libgcrypt from %s (%s) and unpack it to the MinGW directory 
(c:\mingw\mingw)",
-       ARRAY(extlink_("download/win32/libgcrypt-1.2.2.zip", "here"),
-        extlink_("download/win32/libgcrypt-1.2.2.zip.asc", "Signature")));
-    ?>
-  </li>
-  <li>
-    <b><?php W("PlibC"); ?></b>
-    <?php BR();
-    W("PlibC emulates Unix functions under Windows.");
-    BR();
-    W("Get PlibC from %s and unpack it to the MinGW directory 
(c:\mingw\mingw)",
-       
extlink_("https://sourceforge.net/project/showfiles.php?group_id=137319";, 
"here"));
-    ?>
-  </li>
-  <li>
-    <b><?php W("OGG Vorbis");?></b>
-    <?php BR();W("OGG Vorbis is used to extract meta-data from .ogg 
files");BR();
-    W("Get the packages %s and %s and unpack them to the MinGW directory 
(c:\mingw\mingw)",
-       
ARRAY(extlink_("http://www.gnunet.org/libextractor/download/win/libogg-1.1.4.zip";,
 "libogg"),
-        
extlink_("http://www.gnunet.org/libextractor/download/win/libvorbis-1.2.3.zip";, 
"libvorbis")));
-    ?>
-  </li>
-  <li>
-    <b><?php W("Exiv2");?></b>
-    <?php BR();W("(lib)Exiv2 is used to extract meta-data from files with 
Exiv2 meta-data");BR();
-    W("Download %s and unpack it to the MSYS directory (c:\mingw)",
-       
extlink_("http://www.gnunet.org/libextractor/download/win/exiv2-0.18.2.zip";, 
"Exiv2"));
-    ?>
-  </li>
-</ol>
-<?php H4("Building libextractor and GNUnet");
-BP();
-W("Before you compile libextractor or GNUnet, be sure to set 
PKG_CONFIG_PATH:");
-P();
-PRE("export PKG_CONFIG_PATH=/mingw/lib/pkgconfig");
-P();
-W("See %s for basic instructions on building libextractor and GNUnet.", 
-   extlink_("user_gnunet.php3",
-           "Installation"));
-P();
-W("By default, all modules that are created in this way contain debug 
information and are quite large.");
-W("To compile release versions (small and fast) set the variable CFLAGS:");
-P();
-PRE("CFLAGS='-O2 -march=pentium -fomit-frame-pointer' ./configure 
--prefix=\$HOME --with-extractor=\$HOME");
-EP();
-H4("Installer");
-BP();
-W("The GNUnet installer is made with %s.", 
extlink_("http://nsis.sourceforge.net/";,
-       "NSIS"));
-W("The installer script is located in contrib\win in the GNUnet source tree.");
-EP();
-H4("Source");
-BP();
-W("The sources of all dependencies are available %s.", 
-   extlink_("download/win/3rd_party_sources.tar",
-           "here"));
-EP();
-
-include("html_footer.php3");
-?>

Deleted: GNUnet-docs/WWW/hostlist.php
===================================================================
--- GNUnet-docs/WWW/hostlist.php        2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/hostlist.php        2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,24 +0,0 @@
-<?php
-// Requires PHP >= 4.3.0
-// Author: "Krasko Oleksandr" <address@hidden>
-// Minor improvements by Christian Grothoff <address@hidden>
-header("Content-Type: application/octet-stream\r\n\r\n");
-$extmas = array('2','3','4','5','6','8');
-$path = '/home/gnunet/.gnunet/data/hosts/'; // adjust as necessary
-$dir = opendir($path);
-if (! $dir)
-  die("Cannot open directory $path.\n");
-$mas = array();
-while ($fname = readdir($dir)) {
-  $fn = $path . '/' . $fname;
-  if (is_file($fn)) {
-    $dpo = strpos($fname, '.') + 1;
-    $len = strlen($fname);
-    if (in_array(substr($fname, $dpo - $len), $extmas)) 
-      $mas[] = $fn;
-  }
-}
-shuffle($mas); // randomize order
-foreach ($mas as $val) 
-  echo file_get_contents($val);
-?>

Deleted: GNUnet-docs/WWW/html_footer.php3
===================================================================
--- GNUnet-docs/WWW/html_footer.php3    2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/html_footer.php3    2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,30 +0,0 @@
-<?php
-if (! $no_footer) {
-  P();
-  if ($menu != "NO") {
-    HR();
-    $menu_once = 0;
-    menu_bar();
-  }
-  HR();
-  PRE("Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 Christian 
Grothoff.\n" .
-      "Verbatim copying and distribution of this entire article\n" .
-      "is permitted in any medium, provided this notice is preserved.");
-  BR();
-  generateFooter();
-  if ($haveNBO) {
-    HR();
-    H2("Footnotes");
-    ANCHOR("NBO");H3("NBO - network byte order");
-               BP();
-    W("Fields of this type are in network byte order.");
-    W("Before reading these fields, they must be converted to host byte" .
-      " order using <tt>htons</tt> for 2-byte values, <tt>htonl</tt> for 
4-byte values" .
-      " and <tt>htonll</tt> for 8-byte values.");
-    W("Before writing to these fields, the value must be converted using" . 
-      " <tt>ntohs</tt>, <tt>ntohl</tt> and <tt>ntohll</tt> respectively.");   
-               EP();
-  }
-  echo "</body></html>\n";
- }
-?>

Deleted: GNUnet-docs/WWW/html_header.php3
===================================================================
--- GNUnet-docs/WWW/html_header.php3    2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/html_header.php3    2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,51 +0,0 @@
-<?php
-DOCTYPE("HTML", "Transitional");
-echo "<html><head>\n";
-$haveNBO = 0;
-if ($title) {
-  TITLE($title);
- } else {
-  TITLE("GNUnet");
- }
-if ($description) {
-  echo "<meta name=\"description\" content=\"";
-  TRANSLATE($description);
-  echo "\">";
- }
-?>
-<meta name="author" content="Christian Grothoff">
-<meta name="keywords" 
content="GNUnet,distributed,anonymous,p2p,sharing,accounting,accountability,denyability,backup,freenet,file,decentralized,free,GNU,Linux,GPL">
-<meta name="robots" content="index,follow">
-<meta name="revisit-after" content="28 days">
-<?php
-echo "<meta name=\"content-language\" content=\"" . $languagecodes[$lang] . 
"\">";
-echo "<meta name=\"language\" content=\"" . $languagecodes[$lang] . "\">";
-?>
-<meta name="publisher" content="Christian Grothoff">
-<meta name="date" content="2004-12-19">
-<?php
-if ($author)
- echo "<meta name=\"rights\" content=\"(C) 
2001,2002,2003,2004,2005,2006,2007,2008,2009,2010 by $author\">";
-else
- echo "<meta name=\"rights\" content=\"(C) 
2001,2002,2003,2004,2005,2006,2007,2008,2009,2010 by Christian Grothoff\">";
-?>
-<meta http-equiv="expires" content="43200">
-<meta http-equiv="content-type" content="text/html">
-<meta http-equiv="Content-Style-Type" content="text/css">
-<link rel="icon" href="favicon.ico" type="image/x-icon">
-<link rel="shortcut icon" href="favicon.ico" type="image/x-icon"> 
-<link rel=stylesheet type="text/css" href="gnunet.css">
-</head>
-<body topmargin="0" leftmargin="0" marginheight="0" marginwidth="0">
-<?php
- if ($menu != "NO") {
-   include("menu.php3");
-?>
-<div id="lang-menu">
-<?php
-   generateLanguageBar();
-?>
-</div>
-<?php
- }
-?>

Deleted: GNUnet-docs/WWW/irc.php3
===================================================================
--- GNUnet-docs/WWW/irc.php3    2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/irc.php3    2012-08-27 18:51:04 UTC (rev 23450)
@@ -1 +0,0 @@
-<?php header('Location: 
http://embed.mibbit.com/?server=irc.freenode.net&channel=%23gnunet&noServerNotices=true&noServerMotd=true');
 ?>
\ No newline at end of file

Deleted: GNUnet-docs/WWW/links.php3
===================================================================
--- GNUnet-docs/WWW/links.php3  2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/links.php3  2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,115 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet: Links";
-$description="Related projects.";
-include("html_header.php3");
-
-H2("GNUnet worldwide");
-echo "<ul>";
-LILI("http://uk.gnunet.org/";, "UK: GNUnet hostlist and various tips");
-LILI("http://de.gnunet.org/";, "DE: GNUnet hostlist");
-LILI("http://freshmeat.net/projects/gnunet/";, "GNUnet on freshmeat");
-LILI("http://packages.debian.org/gnunet";, "GNUnet Debian package");
-LILI("/freeway/", "freeway (GNUnet port to Java)");
-LILI("http://yunta.dainet.pl/programming/gnuweb/";, "WWW interface for GNUnet");
-LILI("http://sourceforge.net/projects/s-n-a-g/";, "Social Networking 
Application for GNUnet");
-echo "</ul>";
-
-H2("GNUnet related projects");
-echo "<ul>";
-LILI("/libextractor/", "libextractor");
-LILI("/libmicrohttpd/", "libmicrohttpd");
-LILI("http://metalinks.sourceforge.net/";, "metalinks");
-echo "</ul>\n";
-
-H2("Other p2p Networks");
-echo "<ul>\n";
-LILI("http://www.i2p.net/","I2P";);
-LILI("http://freenetproject.org/","Freenet";);
-LILI("http://crisp.cs.du.edu/pitchblack/","See also: Pitch Black");
-LILI("http://tor.eff.org/","The Onion Router (TOR)");
-LILI("http://www.turtle4privacy.org/";, "Turtle");
-LILI("http://mute-net.sourceforge.net/","Mute";);
-LILI("http://gift.sf.net/","giFT";);
-LILI("http://freepastry.org/","FreePastry";);
-LILI("http://invisibleip.sourceforge.net/iip/","Anonymous P2P Chat");
-LILI("http://mnet.sourceforge.net/","Mnet";);
-LILI("http://www.stealthnet.de/","StealthNet";);
-LILI("http://crisp.cs.du.edu/youRShare/","See also: StealthNet decloaked");
-LILI("http://www.freehaven.net/","Freehaven";);
-LILI("http://entropy.stop1984.com/","Entropy";);
-LILI("http://cs1.cs.nyu.edu/~waldman/publius/","Publius";);
-LILI("http://www.distributed.net","Distributed.Net";);
-echo "</ul>\n";
-H2("Relevant Conferences");
-BP();
-W("Note that the list excludes security conferences that have a broader 
focus.");
-EP();
-echo "<ul>\n";
-LILI("http://petworkshop.org/";,
-     "PET (Privacy Enhancing Technologies)");
-LILI("http://www.iptps.org/";,
-     "International Workshop on Peer-To-Peer Systems");
-LILI("http://www.ieee-security.org/TC/SP-Index.html";,
-     "IEEE Symposium on Security and Privacy");
-LILI("http://p2pecon.cs.cornell.edu/";,
-     "Workshop on the Economics of Peer-to-Peer Systems");
-LILI("www.ics.mq.edu.au/conferences/acisp2007/",
-     "Australasian Conference on Information Security and Privacy");
-LILI("http://www.ieee-security.org/TC/SP-Index.html";,
-     "IEEE Symposium on Security and Privacy");
-LILI("http://ih07.irisa.fr/";,
-     "Information Hiding Workshop");
-echo "</ul>\n";
-
-
-H2("Mailinglists");
-echo "<ul>\n";
-LILI("http://zgp.org/mailman/listinfo/p2p-hackers";,
-     "P2P Hackers mailinglist");
-echo "</ul>\n";
-
-H2("Other related work");
-echo "<ul>\n";
-LILI("http://freehaven.net/anonbib/date.html";,
-     "Anonymity Research bibliography");
-LILI("http://www.cl.cam.ac.uk/~rja14/econsec.html";,
-     "Economics and Security Resource Page");
-LILI("http://www.bittorrent.com/","BitTorrent";);
-LILI("http://mixminion.net/","Mixminion";);
-LILI("http://mixmaster.sourceforge.net/","Mixmaster";);
-LILI("http://www.advogato.org/trust-metric.html";,
-     "Avogadro another system based on trust to keep malicious participants in 
check");
-LILI("http://www.cs.umd.edu/projects/nice/";,
-     "NICE, peer-to-peer research project (still in the early stages)");
-LILI("http://www.open-content.net/specs/draft-jchapweske-thex-02.html";,
-     "Tree Hash EXchange format (THEX)");
-LILI("http://www.laas.fr/~lcourtes/ludo-1.html";,
-     "Ludovic Courtes PhD Thesis on &quot;Cooperative Data Backup for Mobile 
Devices&quot; (with on-line bibliography covering many P2P topics)");
-echo "</ul>\n";
-
-H2("Praise &amp; Press");
-BP();
-W("Note that these articles were all written independently and most of the 
time without any feedback from the GNUnet developers.");
-W("Some contain some serious mistakes.");
-EP();
-echo "<ul>\n";
-LILI("http://www.golem.de/0204/19103.html";,
-     "Golem.de");
-LILI("http://www.kuro5hin.org/story/2002/6/3/185643/7148";,
-     "kuro5hin");
-LILI("http://www.infoanarchy.org/story/2002/4/1/5152/25842";,
-     "infoanarchy");
-LILI("http://www.gnu.org/brave-gnu-world/issue-40.en.html";,
-     "Brave GNU World");
-LILI("http://www.heise.de/newsticker/data/jk-28.03.03-003/";,
-     "Heise reporting about PET 2003");
-LILI("http://lwn.net/Articles/61329/";,
-     "LWN");
-LILI("http://www.root.cz/clanek/2551";,
-     "Article about GNUnet on root.cz");
-LILI("http://lwn.net/Articles/162190/";,
-     "Linux Weekly News");
-echo "</ul>";
-include("html_footer.php3");
-?>

Deleted: GNUnet-docs/WWW/mailinglist.php3
===================================================================
--- GNUnet-docs/WWW/mailinglist.php3    2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/mailinglist.php3    2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,92 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet: Contact";
-$description="Ways to get in contact with the GNUnet developers and to keep in 
touch with the development.";
-include("html_header.php3");
-
-H2("Blogs, Forum, Stories and Polls");
-BP();
-W("GNUnet uses %s as a community content management system.",
-  extlink_("/drupal/", "drupal"));
-W("There, you can read the latest stories, participate in the forums and polls 
and even start your own blogs.");
-W("Everything related to GNUnet is welcome, as long as it is respectful and 
legal.");
-EP();
-
-H2("Bugtrack");
-BP();
-W("GNUnet uses Mantis for bugtracking.");
-W("Visit %s to report bugs.",
-  extlink_("/mantis/","/mantis/"));
-W("You need to sign up for a reporter account.");
-W("Please make sure you report bugs under <strong>GNUnet</strong> and not 
under any of the other projects.");
-P();
-W("If you dislike Mantis and need to report a bug via E-mail, you can use the 
standard GNU way by sending mail to %s.",
-  extlink_("mailto:address@hidden","address@hidden";));
-EP();
-
-H2("Mailinglists");
-BP();
-echo "<dl><dt>";
-extlink("http://mail.gnu.org/mailman/listinfo/gnunet-developers","Developers";);
-echo "</dt><dd>";
-W("This mailinglist is used for developer communication.");
-W("Signing up is easy, send good patches and you get Subversion access, too.");
-echo "</dd><dt>";
-extlink("http://mail.gnu.org/mailman/listinfo/help-gnunet","Users";);
-echo "</dt><dd>";
-W("<tt>help-gnunet</tt> is a mailinglist that is intended as a discussion 
forum for users, such that they can help other users.");
-W("Some developers usually also hang around to help.");
-echo "</dd><dt>";
-extlink("http://mail.gnu.org/mailman/listinfo/info-gnunet","Announcements";);
-echo "</dt><dd>";
-W("If you just want to receive announcements of new versions, you can 
subscribe to a strictly moderated mailinglist.");
-W("Only developers can post announcements for new releases of GNUnet related 
software on this list.");
-W("All other mail will be discareded.");
-W("This list is not for discussions or bug reports!");
-echo "</dd><dt>";
-extlink("http://mail.gnu.org/mailman/listinfo/gnunet-svn","Diffs";);
-echo "</dt><dd>";
-W("This mailinglist is used to instantly publish all commits to the %s.",
-  extlink_("https://gnunet.org/svn/";, "GNUnet Subversion repository"));
-W("So if you want to be notified about any change to the GNUnet codebase, you 
can subscribe to this mailinglist.");
-W("Only Subversion-diffs should (and hopefully can) be posted on this list.");
-W("All other mail will be discareded.");
-W("Do not send patches to this list, send them to the developer mailinglist 
instead!");
-echo "</dd></dl>";
-EP();
-
-H2("Other Discussion Forums");
-BP();
-W("The %s is a webpage for discussions of GNUnet and related topics.",
-  extlink_("http://www.boardy.de/forumdisplay.php?forumid=104104","GNUnet 
Forum"));
-W("The forum was started by German GNUnet users and hence many postings are in 
German, but contributions in English are welcome.");
-W("Note that the forum is not the place for reporting bugs, please use 
Mantis.");
-W("Also, the main forum for GNUnet is now %s.",
-  extlink_("/drupal/", "here"));
-W("%s is an international P2P board with GNUnet related subcategories.",
-  extlink_("http://board.planetpeer.de/";, "Planet Peer"));
-EP();
-
-H2("Chat");
-BP();
-W("Various GNUnet people are regularly hanging out on the %s.",
-  extlink_("http://www.freenode.net/","Freenode IRC Network"));
-W("The channel name is <tt>#GNUnet</tt>.");
-EP();
-
-H2("Public Keys");
-BP();
-W("Use these %s to send encrypted mails to the GNUnet developers and to verify 
authenticity and integrity of mails and files.",
-       extlink_("http://en.wikipedia.org/wiki/Public_key";, "public keys"));
-echo "<dl><dt>Christian Grothoff</dt><dd>";
-extlink("http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xE5D02E42";, 
"0xE5D02E42 (old)");
-extlink("http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x48426C7E";, 
"0x48426C7E (new)");
-echo "</dd><dt>Nils Durner</dt><dd>";
-extlink("http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x09F4A1E1";, 
"0x09F4A1E1");
-echo ", ";
-extlink("http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x3D23F25D";, 
"0x3D23F25D");
-echo "</dd></dl>";
-EP();
-
-include("html_footer.php3");
-?>

Deleted: GNUnet-docs/WWW/menu.php3
===================================================================
--- GNUnet-docs/WWW/menu.php3   2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/menu.php3   2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,58 +0,0 @@
-<?php
-if (! $menu_once) {
-  $menu_once = 1;
-?>
-<div id="fsflinks">
-    <ul>
-          <li><a href="http://www.gnu.org";>GNU</a></li>
-          <li><a href="http://www.fsf.org";>FSF</a></li>
-          <li><a href="http://www.fsfeurope.org/";>FSF Europe</a></li>
-          <li><a href="http://fsf.org.in/";>FSF India</a></li>
-          <li><a href="http://www.fsfla.org";>FSF Latin America</a></li>
-      </ul>
-</div>
-<div id="searcher">
-       <form method="post" action="search.php">
-       <div><label for="words">Search:</label>
-       <input type="hidden" name="method" id="method" value="and" />
-       <input name="words" id="words" type="text" size="20" accesskey="4" />
-       <input type="submit" value="Go" />
-       </div>
-       </form>
-       <p>&nbsp;</p>
-</div>
-<div id="top2">
-<table bgcolor="#3F4C6B" border="0" cellpadding="0" cellspacing="0" 
height="58" width="100%">
-  <tr> 
-    <td colspan="4" height="10" nowrap="nowrap" valign="middle">
-    </td>
-  </tr>
-  <tr>
-    <td width="15">
-     &nbsp;
-    </td>
-    <td height="1" nowrap="nowrap" valign="middle"> 
-                       <font class="title">GNUnet</font>
-                       <br />
-                       <font class="subtitle">
-                               <?php
-                                       W("GNU&#8217;s decentralized anonymous 
and censorship-resistant P2P framework.");
-                               ?>
-                       </font>
-
-    </td>
-    <td align="right" valign="top">
-<?php
-    gnunetlogo();
-?>
-    </td>
-    <td width="10">
-     &nbsp;
-    </td>
-  </tr>
-</table>
-<?php
-       menu_bar();
- }
-?>                         
-</div>

Deleted: GNUnet-docs/WWW/old_news.php3
===================================================================
--- GNUnet-docs/WWW/old_news.php3       2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/old_news.php3       2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,32 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet";
-$description="GNUnet: older news";
-include("html_header.php3");
-
-H2("News archive");
-BP();
-W("The archive dates back until February 2003.");
-W("Before then, news were not archived.");
-EP();
-echo "<dl>\n";
-
-$query = "SELECT title,include,posted FROM news " .
-   "ORDER BY posted DESC";
-$result = mysql_query($query, $connection);
-$num = 0;
-if ($result) {
-  $num = mysql_numrows($result);
-}
-for ($i=0;$i<$num;$i++) {
-  $row = mysql_fetch_array($result);
-  $pd = $row["posted"];
-  echo "<dt>" . strtok($pd, " ") .  ": " . W_($row["title"]) . "</dt>\n";
-  echo "<dd>\n";
-  include("news/" . $row["include"]);
-  echo "</dd>\n";
-}
-echo "</dl>\n";
-
-include("html_footer.php3");
-?>

Deleted: GNUnet-docs/WWW/papers.php3
===================================================================
--- GNUnet-docs/WWW/papers.php3 2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/papers.php3 2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,599 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet papers and related work";
-$description = "GNUnet papers and related work";
-include("html_header.php3");
-H2("Papers about GNUnet");
-gnunetlogo();
-
-function bibEntry($link, $title, $authors, $description) {
- echo "<dt><dt>";
- extlink($link, $title);
- echo "</dt><dd>";
- echo " ";
- $length = count($authors);
- foreach($authors as $i=>$author) {
-  echo "$author";
-  if ($i == $length-2) {
-    echo " ";
-    W("and");
-  }
-  else if ($i < $length-2)
-    echo ", ";
- }
- BR();
- echo "<font class=desc>\n";
- W($description);
- echo "</font>\n";
-}
-
-echo "<dl>\n";
-DT("An Encoding for Censorship-Resistant Sharing (%s)",
-   ARRAY(extlink_("download/ecrs.ps","ps"),
-         extlink_("download/ecrs.pdf","pdf")));
-echo "<dd>"; echo "Christian Grothoff, Krista Grothoff, Tzvetan Horozov "; 
W("and"); echo " J. T. Lindgren";
-BR();
-echo "<font class=desc>\n";
-W("The paper describes the encoding of content for the file-sharing layer of 
<em>GNUnet</em>.");
-W("We describe an array of techniques to encode content such that it can be 
easily distributed, searched for and retrieved.");
-W("The encryption scheme allows users to insert the same content under 
multiple keys; yet multiple keys lead to practically identical copies in the 
system, reducing storage requirements.");
-W("Keys can be chosen from natural language and can be combined to boolean 
queries.");
-W("Queries and content can not be decrypted by intermediaries without guessing 
the key.");
-W("Nevertheless, intermediaries can verify that a reply answers a query.");
-W("The encoding of the content produces many small <em>blocks</em>, which can 
be easily distributed over several hosts.");
-W("This allows the network to balance load.");
-W("The paper describes how to optimize lookups and extends the scheme with 
directories and namespaces.");
-echo "</font>\n";
-echo "</dd>\n";
-
-DT("A Transport Layer Abstraction for Peer-to-Peer Networks (%s) %s",
-   ARRAY(extlink_("download/transport.ps","ps"),
-        extlink_("http://www.lri.fr/~fci/GP2PC/";, "GP2PC 2003")));
-echo "<dd>";
-echo "Ronaldo Ferreira, Christian Grothoff "; W("and"); echo " Paul Ruth";
-BR();
-echo "<font class=desc>\n";
-W("This paper describes the transport abstraction used by GNUnet.");
-W("It describes the SMTP implementation in detail, in particular the security 
considerations that occur when using this protocol.");
-W("The paper also compares the performance of the UDP, TCP and SMTP 
transport.");
-echo "</font>\n";
-echo "</dd>\n";
-
-DT("An Excess-Based Economic Model for Resource Allocation in Peer-to-Peer 
Networks (%s, %s), %s %s.",
-   ARRAY(extlink_("download/ebe.ps","ps"),
-         extlink_("download/ebe.pdf","pdf"),
-        extlink_("http://www.wirtschaftsinformatik.de/","WI";),
-        
extlink_("http://www.wirtschaftsinformatik.de/wi_artikel.php?sid=917","3&rsquo;2003";)));
-echo "<dd>"; echo "Christian Grothoff";
-BR();
-echo "<font class=desc>\n";
-W("This paper describes the economic model behind GNUnet.");
-W("We describe how accountability is achieved in an anonymous network.");
-W("Our economy is based on trust, and is used only for resource allocation.");
-BR();
-W("Our economic model is less powerful and much simpler than most schemes for 
digital cash.");
-W("Unlike schemes for digital cash, we do not require a trusted authority.");
-echo "</font>\n";
-echo "</dd>\n";
-
-DT("A Quick Introduction to Bloom Filters (%s, %s)",
-   ARRAY(extlink_("download/bloomfilter.ps","ps"),
-         extlink_("download/bloomfilter.pdf","pdf")));
-echo "<dd>"; echo "Christian Grothoff";
-BR();
-echo "<font class=desc>\n";
-W("This paper gives a brief description of the bloom filter data structure.");
-BR();echo "</font>\n";
-P();
-W("Bloom filters are used in GNUnet for fast set tests that must be performed 
for each query.");
-echo "</dd>";
-afslogo();
-
-DT("gap -- practical anonymous networking (%s, %s, %s), %s.",
-   ARRAY(extlink_("download/aff.ps","ps"),
-         extlink_("download/aff.pdf","pdf"),
-        extlink_("download/pet/","slides"),
-        extlink_("http://petworkshop.org/","PET 2003")));
-echo "<dd>"; echo " Krista Bennett "; W("and"); echo " Christian Grothoff";
-BR();
-echo "<font class=desc>\n";
-W("This paper describes how anonymity is achieved in GNUnet, a framework for 
anonymous distributed and secure networking.");
-BR();
-W("We describe a new scheme for anonymous transfer of data which achieves 
better anonymity guarantees than traditional indirection schemes and is more 
efficient.");
-W("While the building blocks of our technique used to achieve anonymity are 
identical to previous work, we offer a new perspective on how to achieve 
anonymity.");
-echo "</font>\n";
-echo "</dd>\n";
-
-DT("Bootstrapping of Peer-to-Peer Networks (%s), %s.",
-   ARRAY(extlink_("download/bootstrap.pdf","pdf"),
-        extlink_("http://das-p2p.wide.ad.jp/","DAS P2P 2008")));
-echo "<dd>"; echo " Chris GauthierDickey "; W("and"); echo " Christian 
Grothoff";
-BR();
-echo "<font class=desc>\n";
-W("This paper describes how large peer-to-peer systems could be bootstrapped 
in a fully decentralized manner.");
-BR();
-W("While this maybe implemented in GNUnet in the future, we currently still 
use hostlists due to the limited size of the network (the above approach only 
works well for larger, established P2P networks).");
-echo "</font>\n";
-echo "</dd>\n";
-
-DT("An Analysis of GNUnet and the Implications for Anonymous, 
Censorship-Resistant Networks (%s), %s.",
-   ARRAY(extlink_("papers/GNUnet_pet.pdf","pdf"),
-        extlink_("http://petworkshop.org/","PET 2003")));
-echo "<dd>";echo "Dennis K&uuml;gler";
-BR();
-echo "<font class=desc>\n";
-W("This paper describes attacks on GNUnet&rsquo;s anonymous file sharing.");
-W("The author analyzes a statistical attack with an active adversary that is 
able to correlate queries (for example, by being the responder).");
-W("The paper also describes a censorship attack using an adversary that 
legally requires every peer to provide for every transmitted block a 
certificate issued by the government that shows that it is legal to share the 
block.");
-W("Given such an adversary that legally enforces content filtering on a 
per-block level, GNUnet can be censored.");
-echo "</font>\n";
-echo "</dd>\n";
-
-DT("Enhancing Web privacy and anonymity in the digital era (%s), %s.",
-   ARRAY(extlink_("papers/p255.pdf", "pdf"),
-        "Information Management &amp; Computer Security, 12-3 2004"));
-echo "<dd>"; echo "Stefanos Gritzalis";
-BR();
-echo "<font class=desc>\n";
-W("This paper presents a review of various privacy and anonymity enhancing 
systems, including GNUnet (GAP).");
-W("The review highlights the advantages and disadvantages of the various 
systems.");
-W("This paper is probably a good introduction for people interested in 
anonymity and privacy in general and can be used as a guide towards which 
systems maybe the right choice for a particular application.");
-echo "</font>\n";
-echo "</dd>\n";
-
-DT("Efficient Sharing of Encrypted Data (%s, %s), %s",
-   ARRAY(extlink_("download/esed.ps","ps"),
-         extlink_("download/esed.pdf","pdf"),
-        extlink_("http://www.cm.deakin.edu.au/ACISP&rsquo;02/","ACISP 2002")));
-echo "<dd>"; echo "Krista Bennett, Christian Grothoff, Tzvetan Horozov "; 
W("and"); echo " Ioana Patrascu";
-BR();
-echo "<font class=desc>\n";
-W("<strong>This paper is now obsolete.</strong>");
-W("It has been superceeded by %s.",
-  extlink_("download/ecrs.pdf", "ECRS"));
-W("The paper describes the encryption of content for the file-sharing layer of 
<em>GNUnet</em>.");
-W("We describe a new technique to encode content such that it can be easily 
distributed, searched for and retrieved.");
-W("The encryption scheme allows users to insert the same content under 
multiple keys; yet multiple keys lead to practically identical copies in the 
system, reducing storage requirements.");
-W("Keys can be chosen from natural language and can be combined to boolean 
queries.");
-W("Queries and content can not be decrypted by intermediaries without guessing 
the key.");
-W("Nevertheless, intermediaries can verify that a reply answers a query.");
-W("The encoding of the content produces many small <em>GBlocks</em>, which can 
be easily distributed over several hosts.");
-W("This allows the network to balance load.");
-W("Single hosts are never hit with requests that take a long time to 
process.");
-BR();
-echo "</font>\n";
-P();
-W("Since this paper was written, GNUnet has made some more progress in 
addressing some of the issues with ESED.");
-W("The current &quot;state of the art&quot; is detailed on the %s.",
-  extlink_("encoding.php3","encoding page"));
-echo "</dd>\n";
-DT("The GNet Whitepaper (%s or %s)",
-   ARRAY(extlink_("download/main.ps","ps"),
-        extlink_("download/main.pdf","pdf")));
-echo "<dd>"; echo "Krista Bennett, Christian Grothoff, Tzvetan Horozov, Ioana 
Patrascu ";
-W("and");
-echo " Tiberius Stef";
-BR();
-echo "<font class=desc>\n";
-W("In this paper, we describe the design and implementation of GNet.");
-W("The methods used for authentication, anonymization, distribution and 
ranking are described.");
-W("This paper is the initial design document, it is severely out-of-date.");
-echo "</font>\n";
-echo "</dd>";
-echo "</dl>\n";
-
-HR();
-
-
-H2("Related Work");
-H3("Protocols for Anonymity");
-echo "<dl>";
-bibEntry("papers/p84-chaum.pdf",
-        "Untraceable Electronic Mail, Return Addresses, and Digital 
Pseudonyms",
-        ARRAY("David Chaum"),
-         "The fundamental paper on onion routing and mixes.");
-bibEntry("papers/pipenet.txt",
-          "Pipenet",
-        ARRAY("Wei Dai"),
-          "A theoretical concept for an anonymous network based on pipes 
between nodes that carry constant amounts of traffic.");
-bibEntry("papers/tmAnon.ps",
-         "Towards measuring anonymity",
-         ARRAY("Claudia Diaz", "Stefaan Seys", "Joris Claessens", "Bart 
Preneel"),
-         "This paper describes why it is insufficient to just compute 
probabilities for the anonymity set.  The authors propose to use entropy, the 
number of bits of additional information that the adversary needs to break 
anonymity, as the metric for how anonymous a given system is.");
-bibEntry("papers/set.ps",
-         "Towards an Information Theoretic Metric for Anonymity",
-         ARRAY("Andrei Serjantov", "George Danezis"),
-         "This paper proposes a metric that is essentially equivalent to 
<em>Towards measuring anonymity</em> but focuses on the analysis of mixes.");
-bibEntry("papers/borisov_waddle.pdf",
-        "Anonymity in Structured Peer-to-Peer Networks",
-        ARRAY("Nikita Borisov", "Jason Waddle"),
-        "This paper discusses how much anonymity structured peer-to-peer 
networks (based on Chord) can achieve.  It uses the entropy metric for 
anonymity and discusses attacker placement and various variations on the 
routing algorithms.  Well written.");
-bibEntry("papers/shields_degration.ps",
-         "An Analysis of the Degradation of Anonymous Protocols",
-         ARRAY("Matthew Wrigt", "Micah Adler", "Brian Levine", "Clay Shields"),
-         "This paper describes a general attack that degrades anonymity in all 
session-based anonymous networks, including Crowds, Onion Routing and Mix-Nets. 
 The main problem is that over time an attacker can learn the identity of the 
originator if the adversary can accumulate statistical information on a 
connection and correlate it with the sender.");
-bibEntry("papers/shields_apfs.ps",
-         "Responder Anonymity and Anonymous Peer-to-Peer File Sharing",
-         ARRAY("Vincent Scarlata", "Brian Levine", "Clay Shields"),
-         "Extention of Crowds, Hords or Onion routing to achieve responder 
anonymity using proxies or multicast.  The multicast solution has similar 
problems as P5.  The paper than goes on implementing a FastTrack style service 
on top of the anonymous network.  Where is the implementation?");
-bibEntry("papers/p32-reiter.pdf",
-         "Anonymous Webtransactions with Crowds",
-         ARRAY("Michael Reiter", "Aviel Rubin"),
-        "Slides.  Think of a Crowd as a self-organized cascade of anonymizing 
proxies.");
-bibEntry("papers/j8.ps","Crowds: Anonymity for Web Transactions",
-         ARRAY("Aviel Rubin"),
-         "Crowds is a system that allows anonymous web-surfing.  For each 
host, a random static path through the crowd is formed that then acts as a 
sequence of proxies, indirecting replies and responses.  Vulnerable when facing 
adversaries that can perform traffic analysis at the local node and without 
responder anonymity.  But highly scalable and efficient.");
-bibEntry("papers/cliquenet-iptp.pdf",
-         "CliqueNet: A Self-Organizing, Scalable, Peer-to-Peer Anonymous 
Communication Substrate",
-         ARRAY("Emin Sirer", "Milo Polte", "Mark Robson"),
-         "Cliques are small (3-5) groups of nodes that form a DC-Net.  The 
paper is vague how the larger network is formed, how to deal with small mobs 
(2-4) that collaborate in a clique, how to do addressing or the distributed 
database.");
-bibEntry("papers/goldschlag99onion.ps",
-         "Onion Routing for Anonymous and Private Internet Connections",
-          ARRAY("David Goldschlag", "Michael Reed ", "Paul Syverson"),
-         "A brief introduction to onion routing.");
-bibEntry("papers/traffic-analysis-attacks-and.ps",
-          "Traffic Analysis Attacks and Trade-Offs in Anonymity Providing 
Systems",
-            ARRAY("Adam Back", "Ulf M&ouml;ller", "Anton Stiglic"),
-          "");
-bibEntry("papers/fault.ps",
-         "Fault Tolerant Anonymous Channel",
-         ARRAY("Wakaha Ogata", "Kaoru Kurosawa", "Kazue Sako", "Kazunori 
Takatani"),
-         "This paper describes a zero-knowledge proof that a mix in onion 
routing can perform in order to proof that it did route the messages properly.  
This allows the deployment of a mix-net where malicious mixes can be detected 
without using dummy-traffic to probe for correctness.  Technical.");
-bibEntry("papers/gt95.ps",
-         "Mixing Email with Babel",
-         ARRAY("Ceki G&uuml;lc&uuml;", "Gene Tsudik"),
-         "");
-bibEntry("papers/shields00protocol.ps",
-         "A Protocol for Anonymous Communication Over the Internet",
-         ARRAY("Clay Shields", "Brian Neil Levine"),
-         "Variant of Crowds using multicast for the reply.  Since multicast is 
anonymity at the expense of potentially many others and also can not be 
implemented over TCP (must be UDP), this is probably often worse than the 
original Crowds system.");
-bibEntry("papers/p5.ps",
-         "P<sup>5</sup>: A Protocol for Scalable Anonymous Communication",
-        ARRAY("Rob Sherwood", "Bobby Bhattacharjee ", "Aravind Srinivasan"),
-        "Onion routing for sender anonymity, limited broadcast for receiver 
anonymity.  Nodes can choose to be more anonymous at the expense of other nodes 
receiving more traffic.  The design uses lots of public key operations and 
noise.");
-bibEntry("papers/tarzan-iptps.ps",
-         "Introducing Tarzan, a Peer-to-Peer Anonymizing Network Layer",
-        ARRAY("Michael Freedman", "Emil Sit", "Josh Cates", "Robert Morris"),
-        "");
-//tarzan.ps!
-bibEntry("papers/mixminion.ps",
-         "Mixminion: Design of a Type III Anonymous Remailer",
-         ARRAY("George Danezis", "Roger Dingledine", "David Hopwood ", "Nick 
Mathewson"),
-         "Onion routing revisited.  With use-once reply blocks for replies to 
anonymous senders. Note that the use-once is implemented by making the nodes 
keep track of previous messages.  The paper describes nicely all the nifty 
little extentions and attacks that have been developed around the original 
mixing schemes.");
-bibEntry("papers/BD.pdf",
-         "Buses for Anonymous Message Delivery",
-         ARRAY("Amos Beimel", "Shlomi Dolev"),
-         "Applies graph theory to anonymity.  The paper suffers from the 
fundamental problem that it does not discuss attacks on the scheme, and there 
are a couple of pretty basic ways to break anonymity.  Also, the scheme uses 
lots of traffic; some variants end up looking much like a pipenet.");
-bibEntry("papers/goldberg97taz.ps",
-         "TAZ Servers and the Rewebber Network.  Enabling Anonymous Publishing 
on the World Wide Web",
-        ARRAY("Ian Goldberg ", "David Wagner"),
-        "");
-bibEntry("papers/k-anonymous.ps",
-         "k-Anonymous Message Transmission",
-        ARRAY("Luis von Ahn", "Andrew Bortz", "Nicholas J. Hopper"),
-        "");
-bibEntry("papers/Anon_Terminology_v0.18.pdf",
-        "Anonymity, Unobservability, Pseudonymity, and Identity Management - A 
Proposal for Terminology v0.18",
-        ARRAY("Andreas Pfitzmann", "Marit Hansen"),
-        "");
-bibEntry("papers/flash-mix.pdf",
-        "Flash Mixing",
-        ARRAY("Markus Jakobsson"),
-         "");
-echo "</dl>";
-
-H3("Routing");
-echo "<dl>";
-bibEntry("papers/pitchblack.pdf",
-        "Routing in the Dark: Pitch Black",
-        ARRAY("Nathan S. Evans and Chris GauthierDickey and Christian 
Grothoff"),
-         "Attack on the routing protocol of Freenet 0.7.");
-bibEntry("papers/swroute.pdf",
-        "Distributed routing in Small World Networks",
-        ARRAY("Oskar Sandberg"),
-         "Theoretical basis for the routing protocol of Freenet 0.7.");
-bibEntry("papers/chord.ps",
-         "Chord: A scalable peer-to-peer lookup service for Internet 
applications",
-         ARRAY("Ion Stoica", "Robert Morris", "Davit Karger", "Frans 
Kaashoek", "Hari Balakrishnan"),
-         "Description of an efficient scheme to locate resources in a 
distributed, dynamic network.  Resources are mapped into a cyclic address 
space.  Each host in the network is associated with a point in that cyclic 
address space.  Content is hosted at the host(s) that is (are) closest to its 
address.  The routing table size is O(log n).  The maximum search path is also 
O(log n) if no nodes fail.");
-bibEntry("papers/pastry.ps",
-         "Pastry: Scalable, decentralized object location and routing for 
large-scale peer-to-peer systems",
-         ARRAY("Antonz Rowstron", "Peter Druschel"),
-         "Like Chord, Pastry is a distributed hash table (DHT) with O(log n) 
entries in the routing table and a lookup path of O(log n).  Pastry has more 
freedom in building the routing table and can thus take proximity into account, 
making the lookup even faster.");
-bibEntry("papers/location.pdf",
-         "Exploting network proximity in peer-to-peer overlay networks",
-         ARRAY("Miguel Castro", "Peter Druschel", "Charlie Hu", "Antony 
Rowstron"),
-         "The authors give an overview over various ways to use proximity 
information to optimize routing in peer-to-peer networks.  Their study focuses 
on Pastry and describe in detail the protocols that are used in Pastry to build 
routing tables with neighbours that are close in terms of the underlying 
network.  They give some analytical and extensive experimental evidence that 
the protocols are effective in reducing the length of the routing-path in terms 
of the link-to-link latency that their implementation uses to measure 
distance.");
-bibEntry("papers/tapestry_CSD-02-1178.pdf",
-         "Distributed Data Location in a Dynamic Network",
-         ARRAY("Kirsten Hildrum", "John Kubiatowicz", "Satish Rao", "Ben 
Zhao"),
-         "Another DHT with O(log n) entries in the routing table and a lookup 
path of O(log n).");
-bibEntry("papers/can.pdf",
-         "A Scalable Content-Addressable Network",
-         ARRAY("Sylvia Ratnasamy", "Paul Francis", "Mark Handley", "Richard 
Karp", "Scott Shenker"),
-         "CAN is a distributed hash table (DHT) that routes messages in an 
d-dimensional space on the shortest path to the node closest to to the hash.  
As opposed to Chord, Pastry and Tapestry, the routing table does not grow with 
the number of nodes.  On the other hand, the search path can be longer than log 
n.");
-bibEntry("papers/building-low-diameter-p.ps",
-         "Building Low-Diameter P2P Networks",
-         ARRAY("Gopal Pandurangan", "Prabhakar Raghavan", "Eli Upfal"),
-         "Scheme to build dynamic, distributed P2P networks of constant degree 
and logarithmic diameter.");
-bibEntry("papers/coral-iptps03.ps",
-        "Sloppy hashing and self-organizing clusters",
-        ARRAY("Michael J. Freedman", "David Mazieres"),
-         "");
-bibEntry("papers/CameraReady_174.pdf",
-        "Dynamic Load Balancing in Distributed Hash Tables",
-        ARRAY("Marcin Bienkowski", "Miroslaw Korzeniowski", "Friedhelm Meyer 
auf der Heide"),
-         "");
-echo "</dl>";
-
-H3("Searching in Peer-to-Peer networks");
-echo "<dl>";
-bibEntry("papers/planetp.pdf",
-         "PlanetP: Using Gossiping to Build Content Addressable Peer-to-Peer 
Information Sharing Communities",
-         ARRAY("Francisco Matias Cuenca/Acuna", "Christopher Peery", "Richard 
P. Martin", "Thu D. Nguyen"),
-         "PlanetP is a peer-to-peer system in which searching content is done 
mostly locally.  Every peer knows which content is available at which other 
peers. The index information is represented compactly using bloom filters and 
distributed throughout the network using push and pull mechanisms.");
-bibEntry("papers/searching_in_encrypted_data.pdf",
-         "Practical Techniques for Searches on Encrypted Data",
-         ARRAY("Dawn Xiaodong Song", "David Wagner", "Adrian Perrig"),
-         "");
-bibEntry("papers/JXTAsearch.pdf",
-         "JXTA Search: Distributed Search for Distributed Networks",
-         ARRAY("Steve Waterhouse"),
-         "");
-bibEntry("papers/heimbigner00adapting.ps",
-         "Adapting Publish/Subscribe Middleware to Achieve Gnutella-like 
Functionality",
-         ARRAY("Dennis Heimbinger"),
-         "");
-bibEntry("papers/publickeykeywordsearch.pdf",
-        "Public Key Encryption with keyword Search",
-        ARRAY("Dan Boneh", "Giovanni Di Crescenzo"),
-         "");
-bibEntry("papers/secureindex.pdf",
-        "Secure Indexes",
-        ARRAY("Eu-Jin Goh"),
-         "");
-bibEntry("papers/p207-damiani.pdf",
-        "A Reputation-Based Approach for Choosing Reliable Resources in 
Peer-to-Peer Networks",
-        ARRAY("Ernesto Damiani", "Sabrina De Capitani di Vimercati", "Stefano 
Paraboschi", "Pierangela Samarati", "Fabio Violante"),
-        "");
-echo "</dl>";
-
-H3("Replication and Migration");
-echo "<dl>";
-bibEntry("papers/hall01algorithms.ps",
-        "On Algorithms for Efficient Data Migration",
-         ARRAY("Joseph Hall", "Jason Hartline", "Anna R. Karlin", "Jared 
Saia", "John Wilkes"),
-        "");
-bibEntry("papers/farsite.pdf",
-        "Reclaiming Space from Duplicate Files in a Serverless Distributed 
File System",
-         ARRAY("John R. Douceur", "Atul Adya", "William J. Bolosky", "Dan 
Simon", "Marvin Theimer"),
-        "");
-bibEntry("papers/farsite-replication.pdf",
-        "Competitive Hill-Climbing Strategies for Replica Placement in a 
Distributed File System",
-         ARRAY("John R. Douceur", "Roger P. Wattenhofer"),
-        "");
-bibEntry("papers/p2pmulti.pdf",
-         "Replication Strategies in Unstructured Peer-to-Peer Networks",
-        ARRAY("E. Cohen", "S. Shenker"),
-        "The paper sets out to solve the problem to find the optimal amount to 
which a piece of content should be replicated in a peer-to-peer network based 
on random search.  The authors use a statistical approach to proof that the 
optimal content replication strategy is replication proportional to the 
square-root of the query rate.  They then describe various distributed 
algorithms that achieve this replication rate.  Interestingly, Freenet (and 
GNUnet) use one of these algorithms, content replication on the reply-path.");
-echo "</dl>";
-
-H3("Censorship Resistant Publishing");
-echo "<dl>";
-bibEntry("papers/IHW-CR.pdf",
-         "Censorship Resistance Revisited",
-         ARRAY("Ginger Perng", "Michael K. Reiter", "Chenxi Wang"),
-         "This paper proposes a formal model for censorship resistance. Given 
their model of an attacker, the authors show that censorship resistance 
requires private information retrieval (PIR), which has a complexity of O(n) 
for updates and queries. They demonstrate that almost none of the previously 
proposed systems is censorship resistant in this model. This is particularly 
interesting for GNUnet, despite the paper not mentioning GNUnet at all, for 
three reasons. First, the given formal notion of censorship resistance closely 
corresponds to what the content encoding in GNUnet (ECRS) is supposed to 
achieve. Secondly, the paper shows that for an adversary that is capable of 
guessing keywords (or content), PIR is required. Note that PIR is not 
practically feasible due to the O(n) cost associated with it. On the other 
hand, if the adversary did not have the ability to mount a successful guessing 
attack, the model matches the ECRS model used by GNUnet exactly. Given this type
  of atta
 cker, ECRS then delivers censorship resistance (in accordance with the model 
presented in this paper) with O(1) complexity. Unfortunately, the paper ignores 
this weaker attacker model as well as ECRS in its discussion. Nevertheless, the 
discussion of what censorship resistance means as well as the critique of other 
existing systems makes this paper an important contribution in the field of 
censorship resistant publishing.");
-bibEntry("papers/tangler.ps",
-         "Tangler: A Censorhsip-Resistant Publishing System Based On Document 
Entanglements",
-         ARRAY("Marc Waldman", "David Mazieres"),
-         "The basic idea is to protect documents by making it impossible to 
remove one document from the system without loosing others.  The underlying 
assumption that the adversary cares about collateral damage of this kind is a 
bit far fetched.  Also, the entanglement doubles the amount of data that needs 
to be moved to retrieve a document.");
-bibEntry("papers/eternity.ps",
-         "The Eternity Service",
-         ARRAY("Ross Anderson"),
-         "Proposal for a system that allows storing content anonymously with 
defenses against attacks.  Already a classic.");
-bibEntry("papers/fiat01censorship.ps",
-         "Censorship Resistant Peer-to-Peer Content Addressable Networks",
-         ARRAY("Amos Fiat", "Jared Saia"),
-         "");
-bibEntry("papers/server_anonymity.ps",
-         "Anonymizing Censorship Resistant Systems",
-         ARRAY("Andrei Serjantov"),
-         "");
-bibEntry("papers/redblue.pdf",
-         "The Economics of Censorship Resistance",
-         ARRAY("George Danezis", "Ross Anderson"),
-         "");
-bibEntry("papers/publius.pdf",
-         "Publius: A robust, tamper-evident, censorship-resistant web 
publishing system",
-         ARRAY("Mare Waldman", "Aviel Rubin", "Lorrie Cranor"),
-         "Censorship-resistance is accomplished by secret sharing, signing and 
redundant storage.");
-echo "</dl>";
-
-H3("Accounting and Trust");
-echo "<dl>";
-bibEntry("papers/Accountability-in-P2P-Democracy.ps",
-         "Accountability in P2P Democracy",
-         ARRAY("Mandar Kelaskar"),
-         "Great slides from a presentation that gives an overview on problems 
and current approaches to accountability in peer-to-peer networks.");
-bibEntry("papers/LCN.ps",
-         "Anonymity in Electronic Commerce",
-         ARRAY("Yiannis Tsiounis"),
-         "Slides why we need anonymous digital cash.");
-bibEntry("papers/micro-ecash.ps",
-         "Micropayments and Anonymous E-Cash",
-         ARRAY("Yiannis Tsiounis"),
-        "Slides about digital cash with minimal transaction costs suitable for 
micropayments.");
-bibEntry("papers/UWM.ps",
-        "Balancing Privacy and Accountability",
-        ARRAY("Yiannis Tsiounis"),
-        "More about anonymous digital cash and why we need anonymity.");
-bibEntry("papers/electronic_cash_thesis.ps",
-         "Efficient Electronic cash: New Notions and Techniques",
-         ARRAY("Yiannis Tsiounis"),
-        "Ph. D. Thesis.");
-bibEntry("papers/anonymity_control_ecash.ps",
-         "Anonymity Control in E-Cash Systems",
-        ARRAY("George Davida", "Yair Frankel", "Yiannis Tsiounis", "Moti 
Yung"),
-         "");
-bibEntry("papers/HubauxBC01a.ps",
-         "The Quest for Security in Mobile Ad Hoc Networks",
-         ARRAY("Jean-Pierre Hubaux", "Levente Buttyan", "Srdan Capkun"),
-         "A survey paper giving an introduction to security issues in 
distributed, dynamic networks.  This paper lists the major security issues and 
common paradigms to address them.  For their public key infrastructure model, 
see for comparrisson the original work on the PGP web of trust.");
-bibEntry("papers/trust_economies.pdf",
-         "Trust Economies in the Free Haven Project",
-         ARRAY("Brian Sniffen"),
-         "Bachelor Thesis.");
-bibEntry("papers/econws02.ps",
-         "On the Economics of Anonymity",
-        ARRAY("Roger Dingledine", "Paul Syverson"),
-         "");
-bibEntry("papers/jxtatrust.pdf",
-          "Poblano: A Distributed Trust Model for Peer-to-Peer Networks",
-        ARRAY("Rita Chen", "William Yeager"),
-       "");
-bibEntry("papers/ppay.pdf",
-          "PPay: Micropayments for Peer-to-Peer Systems",
-        ARRAY("Beverly Yang", "Hector Garcia-Molina"),
-       "");
-bibEntry("papers/accountability-ch16.html",
-         "Peer-To-Peer: Harnessing the Power of Disruptive Technologies, 
Chapter 16: Accountability",
-         ARRAY("Roger Dingledine", "Michael J. Freedman", "David Molnar"),
-         "");
-bibEntry("papers/casc-rep.ps",
-         "Reliable MIX Cascade Networks through Reputation",
-         ARRAY("Roger Dingledine", "Paul Syverson"),
-         "How to detect that a Mix (E-mail anonymizer) failed to deliver.");
-bibEntry("papers/mix-acc.ps",
-         "A Reputation System to Increase MIX-net Reliability",
-         ARRAY("Roger Dingledine", "Michael J. Freedman", "David Hopwood", 
"David Molnar"),
-        "");
-bibEntry("papers/incentives_for_sharing.ps",
-         "Incentives for Sharing in Peer-to-Peer Networks",
-         ARRAY("Philippe Golle", "Kevin Leyton-Brown", "Ilya Mironov", "Mark 
Lillibridge"),
-         "");
-bibEntry("papers/incentives-for-cooperation-in.pdf",
-        "Incentives for Cooperation in Peer-to-Peer Networks",
-         ARRAY("Kevin Lai", "Michael Feldman", "Ion Stoica", "John Chuang"),
-         "This paper discusses distributed incentive systems for peer-to-peer 
networks with zero-cost identities.  It compares decision making based on 
private histories (like in GNUnet) with shared histories and concludes that 
private histories do not scale to larger networks (since a given pair of peers 
is unlikely to interact repeatedly as the size of the network grows).  They 
note that shared histories also have problems (such as solving maximum-flow 
problems to establish reputation transitively in a secure fashion).  Note that 
they ignore properties like locality, which, in particular in an anonymizing 
network like GNUnet where interactions are hardly ever end-to-end, increases 
the chances that peers will interact repeatedly even in very large networks.");
-bibEntry("papers/when-can-autonomous.pdf",
-        "When Can an Autonomous Reputation Scheme Discourage Free-riding in a 
Peer-to-Peer System?",
-        ARRAY("Nazareno Andrade", "Miranda Mowbray", "Walfredo Cirne", 
"Francisco Brasilerio"),
-        "This work describes a scheme that is remarkably similar to the 
economic model used by GNUnet to discourage free-riding and enocurage 
contribution.  The major difference to GNUnet seems to be that resource 
consumption does not seem to result in penalizing the requester: all peers only 
total up the contributions received and allocate their resources to the highest 
donor, irrespective of the resources requested by that peer previously.  The 
discussion of related work in this paper is severely lacking.");
-echo "</dl>";
-
-H3("Legal issues");
-echo "<dl>";
-bibEntry("papers/H021153.PDF",
-         "DVD COPY CONTROL ASSOCIATION vs. ANDREW BUNNER",
-        ARRAY("Court of Appleal of the State of California, Sixth Appellate 
District"),
-        "");
-echo "</dl>";
-
-H3("Systems");
-echo "<dl>";
-bibEntry("papers/a-measurement-study-of.ps",
-         "A Measurement Study of Peer-to-Peer File Sharing Systems",
-         ARRAY("Stefan Saroiu", "P. Krishna Gummadi", "Steven Gribble"),
-         "Comparrisson between Napster and Gnutella (network topology, host 
characteristics, etc.).");
-bibEntry("papers/freenet.pdf",
-         "A Distributed Decentralized Information Storage and Retrieval 
System",
-        ARRAY("Ian Clarke"),
-               "Ph.D. Thesis.");
-bibEntry("papers/icsi-revised.ps",
-         "Freenet: A Distributed Anonymous Information Storage and Retrieval 
System",
-         ARRAY("Ian Clarke", "Oskar Sandberg", "Brandon Wiley", "Theodore 
Hong"),
-         "");
-bibEntry("papers/freehaven10.ps",
-         "The Free Haven Project: Design and Deployment of an Anonymous Secure 
Data Haven",
-         ARRAY("Roger Dingledine"),
-         "Master Thesis.");
-bibEntry("papers/dingledine00free.ps",
-         "The Free Haven Project: Distributed Anonymous Storage Service",
-         ARRAY("Roger Dingledine", "Michael Freedman", "David Molnar"),
-         "Description of an anonymous publication system with accounting.");
-bibEntry("papers/jxta_whitepaper.pdf",
-         "Project JXTA: An Open, Innovatie Collaboration",
-         ARRAY("Sun Microsystems"),
-         "Sun is building a p2p framework.");
-bibEntry("papers/herbivore-esigops.pdf",
-         "Eluding Carnivores: File Sharing with Strong Anonymity",
-         ARRAY("Emin G&uuml;n Sirer", "Sharad Goel", "Mark Robson", "Dogan 
Engin"),
-         "");
-bibEntry("papers/freehaven-ch12.html",
-         "Peer-To-Peer: Harnessing the Power of Disruptive Technologies -- 
Chapter 12: Free Haven",
-         ARRAY("Roger Dingledine", "Michael J. Freedman", "David Molnar"),
-         "Description of the problems that arise when one tries to combine 
anonymity and accountability.  Note that the Free Haven design described here 
charges for storing data in the network (downloads are free), whereas in GNUnet 
adding data is free and only the downloads are considered as utilization.");
-bibEntry("papers/gnutella_protocol.pdf",
-         "The Gnutella Protocol Specification v0.4",
-         ARRAY("Clip2"),
-         "A brief description of the gnutella protocol.");
-bibEntry("papers/mojonation.pdf",
-         "Experiences Deploying A Large-Scale Emergent Network",
-         ARRAY("Bryce Wilcox-O Hearn"),
-         "Describes the authors experiences with MojoNation..");
-bibEntry("papers/Dan_Klinedinst_GSEC.pdf",
-         "A New Generation of File Sharing Tools",
-         ARRAY("Dan Klinedinst"),
-         "Discussion of the advantages of Freenet and GNUnet over more 
traditional peer-to-peer networks.");
-bibEntry("papers/introducing-morphmix-peer-to.pdf",
-        "Introducing MorphMix: Peer-to-Peer based Anonymous Internet Usage 
with Collsion Detection",
-        ARRAY("Marc Rennhard", "Bernhard Plattner"),
-         "The paper describes the design of a peer-to-peer based mix network.  
The authors attempt to solve the problem of an adversary joining the network 
and collecting data using probabilistic assumptions about the behavior of the 
adversary.  The problem with this approach of detecting malicious nodes is that 
a good adversary can always just adapt to the detection scheme and thereby 
avoid detection.");
-// coral-iptps-03
-echo "</dl>";
-
-H3("Transports");
-echo "<dl>";
-bibEntry("papers/infranet.ps",
-         "Infranet: Circumventing Web Censorship and Surveillance",
-         ARRAY("Nick Feamster", "Magdalena Baazinska", "Greg Harfst", "Hari 
Balakrishnan", "David Karger"),
-         "How to steganographically hide prohibited accesses to the WWW in 
&quot;legitimate&quot; HTTP traffic.");
-bibEntry("papers/nat.pdf",
-        "Peer-to-Peer Communication Across Network Address Translators",
-        ARRAY("Bryan Ford", "Pyda Srisuresh", "Dan Kegel"),
-        "How to establish connections in a peer-to-peer network in the 
presence of NAT, with an empirical study of various NAT implementations.  Good 
stuff.  And Ian, with a bit of native code it can even be done in Java.");
-bibEntry("papers/4616.0.109-bauer.ps",
-         "New Covert Channels in HTTP",
-         ARRAY("Matthias Bauer"),
-         "");
-echo "</dl>";
-
-H3("Publish-Subscribe");
-echo "<dl>";
-bibEntry("papers/scribe.pdf",
-        "Scribe: A large-scale and decentralized application-level multicast 
infrastructure",
-        ARRAY("M. Castro", "Peter Druschel", "A. Kermarrec", "A. Rowstron"),
-        "The paper describes an implementation of a publish-subscribe system 
on top of Pastry.  The paper presents a simple interface and a message routing 
algorithm that is inverting Pastry&rsquo;s lookup algorithm.  The authors 
provide extensive amounts of empirical measurements of their implementation of 
the approach on various network topologies and group sizes.");
-bibEntry("papers/herald.pdf",
-         "Herald: Achieving a Global Event Notification Service",
-         ARRAY("L. Cabrera", "M. Jones", "M. Theimer"),
-         "The paper describes the design goals (and non-goals) of a scalable, 
peer-to-peer event notification system.  Its primary contribution is a 
comprehensive listing of the problems that any such system will face, such as 
unreliable or malicious peers or the requirement for heuristics that 
automatically make reasonable choices for degrees of replication.");
-bibEntry("papers/debs04perng.pdf",
-         "Providing content-based services in a peer-to-peer environment",
-         ARRAY("Ginger Perng", "Chenxi Wang", "Michael K. Reiter"),
-         "");
-echo "</dl>";
-
-H3("Other");
-echo "<dl>";
-bibEntry("papers/p422-bloom.pdf",
-         "Space/Time Trade-offs in Hash Coding with Allowable Errors",
-         ARRAY("Burton Bloom"),
-         "The original paper on Bloom filters.  The author describes how this 
probabilistic datastructure can be used to speed up dictionary lookups. This is 
pretty much what libextractor is doing for the dictionary-based 
<tt>printable</tt> plugins.");
-bibEntry("papers/ccs02.ps",
-        "A Reputation-Based Approach for Choosing Reliable Resources in 
Peer-to-Peer Networks",
-        ARRAY("Ernesto Damiani", "De Capitani di Vimercati", "Stefano 
Paraboschi", "Pierangela Samarati", "Fabio Violante"),
-        "");
-bibEntry("papers/privacy-gratification.pdf",
-         "Privacy in Electronic Commerce and the Economics of Immediate 
Gratification",
-         ARRAY("Alessandro Acquisti"),
-         "");
-bibEntry("papers/goldreich98secure.ps",
-         "Secure Multi-Party Computation",
-         ARRAY("Oded Goldreich"),
-         "");
-echo "</dl>";
-
-include("html_footer.php3");
-?>

Deleted: GNUnet-docs/WWW/philosophy.php3
===================================================================
--- GNUnet-docs/WWW/philosophy.php3     2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/philosophy.php3     2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,233 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet Documentation: Copyright and Philosophy";
-$description="GNUnet Documentation - a secure peer-to-peer framework starring 
anonymous file sharing with an excess based trust-economy";
-include("html_header.php3");
-/*
-Add HTML
-describing structure:
-Copyright, Design Goals & Philo, Concepts
-*/
-
-ANCHOR("copyright");
-H3("Copyright and Contributions");
-BP();
-W("GNUnet is part of the %s.",
-  extlink_("http://www.gnu.org/","GNU project"));
-W("All code contributions must thus be put under the %s.",
-  extlink_("http://www.gnu.org/copyleft/gpl.html";, "GNU Public License 
(GPL)"));
-W("All documentation should be put under FSF approved licenses (see %s).",
-  extlink_("http://www.gnu.org/copyleft/fdl.html","fdl";));
-W("GNU standards and the %s should be adhered to.",
-  extlink_("http://www.gnu.org/philosophy/philosophy.html","GNU philosophy"));
-
-EP();
-
-ANCHOR("goals");
-H3("Design Goals and Philosophy");
-
-BP();
-W("The foremost goal of the GNUnet project is to become a widely used, 
reliable, open, nondiscriminating, egalitarian, unfettered and 
censorship-resistant system of free information exchange.");
-W("We value free speech above state secrets, law-enforcement or intellectual 
property.");
-W("GNUnet is supposed to be an anarchistic network, where the only limitation 
for peers is that they must contribute enough back to the network such that 
their resource consumption does not have a significant impact on other users.");
-W("GNUnet should be more than just another file-sharing network.");
-W("The plan is to offer many other services and in particular to serve as a 
development platform for the next generation of decentralized Internet 
protocols.");
-EP();
-
-ANCHOR("Privacy");
-H4("Privacy");
-BP();
-W("GNUnet&rsquo;s primary design goals are to protect the privacy of its users 
and to guard itself against attacks or abuse.");
-W("GNUnet does not have any mechanisms to control, track or censor users.");
-W("Instead, the GNUnet protocols aim to make it as hard as possible to find 
out what is happening on the network or to disrupt operations.");
-EP();
-
-ANCHOR("Versatility");
-H4("Versatility");
-BP();
-W("We call GNUnet a peer-to-peer framework because we want to support many 
different forms of peer-to-peer applications.");
-W("GNUnet uses a plugin architecture to make the system extensible and to 
encourage code reuse.");
-W("While the first versions of the system only supported anonymous 
file-sharing, other applications are being worked on and more will hopefully 
follow in the future.");
-W("A powerful synergy regarding anonymity services is created by a large 
community utilizing many diverse applications over the same software 
infrastructure.");
-W("The reason is that link encryption hides the specifics of the traffic for 
non-participating observers.");
-W("This way, anonymity can get stronger with additional (GNUnet) traffic, even 
if the additional traffic is not related to anonymous communication.");
-W("Increasing anonymity is the primary reason why GNUnet is developed to 
become a peer-to-peer framework.");
-EP();
-
-
-ANCHOR("Practicality");
-H4("Pracicality");
-
-BP();
-W("GNUnet allows participants to trade various amounts of security in exchange 
for increased efficiency.");
-W("However, it is not possible for any user's security and efficiency 
requirements to compromise the security and efficiency of any other user.");
-
-P();
-W("For GNUnet, efficiency is not paramount.");
-W("If there is a more secure and still practical approach, we would choose to 
take the more secure alternative.");
-W("<tt>telnet</tt> is more efficient than <tt>ssh</tt>, yet it is obsolete.");
-W("Hardware gets faster, and code can be optimized.");
-W("Fixing security issues as an afterthought is much harder.");
-P();
-W("While security is paramount, practicability is still a requirement.");
-W("The most secure system is always the one that nobody can use.");
-W("Similarly, any anonymous system that is extremely inefficient will only 
find few users.");
-W("However, good anonymity requires a large and diverse userbase.");
-W("Since individual security requirements may vary, the only good solution 
here is to allow individuals to trade-off security and efficiency.");
-W("The primary challenge in allowing this is to ensure that the economic 
incentives work properly.");
-W("In particular, this means that it must be impossible for a user to gain 
security at the expense of other users.");
-W("Many designs (e.g. anonymity via broadcast) fail to give users an incentive 
to choose a less secure but more efficient mode of operation.");
-W("GNUnet should avoid wherever possible to rely on protocols that will only 
work if the participants are benevolent.");
-W("While some designs have had widespread success while relying on parties to 
observe a protocol that may be sub-optimal for the individuals (e.g.  TCP 
Nagle), a protocol that ensures that individual goals never conflict with the 
goals of the group is always preferable.");
-EP();
-
-ANCHOR("concepts");
-H3("Concepts");
-
-BP();
-W("In this section, the fundamental concepts of GNUnet are explained.");
-W("Most of them are also described in our research papers.");
-W("First, some of the concepts used in the GNUnet framework are detailed.");
-W("The second part describes concepts specific to anonymous file-sharing.");
-EP();
-
-gnunetlogo();
-H4("Authentication");
-
-BP();
-W("Almost all peer-to-peer communications in GNUnet are between mutually 
authenticated peers.");
-W("The authentication works by having each peer sign a secret session key with 
its RSA key.");
-W("Furthermore, the session key is encrypted with the public key of the other 
peer.");
-W("That session key is then used to encrypt the communication between the two 
peers using 256-bit AES.");
-W("A each peer independently generates such a session key for the data that 
this peer will transmit to the other peer.");
-W("As only the two participating hosts know the two session keys, this 
authenticates each packet without requiring signatures each time.");
-W("GNUnet uses SHA-512 hash codes to verify the integrity of messages.");
-
-P();
-W("In GNUnet, the identity of a host is the (SHA-512) hash of its public 
key.");
-W("For that reason, man-in-the-middle attacks will not break the 
authentication or accounting goals.");
-W("Essentially, for GNUnet, the IP of the host does not matter.");
-W("As the public key is the only thing that truly matters, faking an IP, a 
port or any other property of the underlying transport protocol is 
irrelevant.");
-
-P();
-
-W("GNUnet uses a special type of message to communicate a binding between 
public (RSA) keys to their current network address.");
-W("These messages are commonly called HELOs or peer advertisements.");
-W("They contain the public key of the peer and a signature with its current 
network address for a specific transport service.");
-W("A transport service is a special kind of shared library that enables 
unreliable, out-of-order message delivery between peers.");
-W("For the UDP and TCP transport services, a network address is an IP and a 
port.");
-W("GNUnet can also use other transports (HTTP, SMTP, etc.) which use various 
other forms of addresses.");
-W("Note that any node can have many different active transport services at the 
same time, and each of these can have a different address.");
-W("Binding messages expire after at most a week (the timeout can be shorter if 
the user configures the node appropriately).");
-W("This expiration ensures that the network will eventually get rid of 
outdated advertisements.");
-W("More details can be found in %s.",
-  extlink_("download/transport.ps", "this paper"));
-
-
-EP();
-H4("Accounting to Encourage Resource Sharing");
-
-BP();
-W("Most distributed P2P networks suffer from a lack of defenses or precautions 
against attacks in the form of freeloading.");
-W("While the intentions of an attacker and a freeloader are different, their 
effect on the network is the same; they both render it useless.");
-W("Most simple attacks on networks such as Gnutella involve flooding the 
network with traffic, particularly with queries that are, in the worst case, 
multiplied by the network.");
-
-P();
-
-W("In order to ensure that freeloaders or attackers have a minimal impact on 
the network, GNUnet tries to distinguish good (contributing) nodes from 
malicious (freeloading) nodes.");
-W("In GNUnet, every node keeps track of the behavior of every other node it 
has been in contact with.");
-W("Many requests (depending on the application) are transmitted with a 
priority (or importance) level.");
-W("That priority is used to establish how important the sender believes this 
request is.");
-W("If a peer responds to an important request, the recipient will increase its 
trust in the responder: the responder contributed resources.");
-W("If a peer is too busy to answer all requests, it needs to prioritize.");
-W("For that, peers to not take the priorities of the requests received at face 
value.");
-W("First, they check how much they trust the sender, and depending on that 
amount of trust they assign the request a (possibly lower) effective 
priority.");
-W("Then, they drop the requests with the lowest effective priority to satisfy 
their resource constraints.");
-W("This way, GNUnet&rsquo;s economic model ensures that nodes that are not 
currently considered to have a surplus in contributions will not be served if 
the network load is high.");
-W("More details can be found in %s.",
-  extlink_("download/ebe.ps", "this paper"));
-
-EP();
-H4("Confidentiality");
-
-BP();
-W("Adversaries outside of GNUnet are not supposed to know what kind of actions 
a peer is involved in.");
-W("Only the specific neighbor of a peer that is the corresponding sender or 
recipient of a message may know its contents, and even then application 
protocols may place further restrictions on that knowledge.");
-W("In order to ensure confidentiality, GNUnet uses link encryption, that is 
each message exchanged between two peers is encrypted using a pair of keys only 
known to these two peers.");
-W("Encrypting traffic like this makes any kind of traffic analysis much 
harder.");
-W("Naturally, for some applications, it may still be desirable if even 
neighbors cannot determine the concrete contents of a message.");
-W("In GNUnet, this problem is addressed by the specific application-level 
protocols (see for example, %s and %s in anonymous file sharing).",
-  ARRAY(extlink_("#deniability", "deniability"),
-        extlink_("#anonymity", "anonymity")));
-
-
-EP();
-afslogo();
-ANCHOR("anonymity");
-H4("Anonymity");
-
-BP();
-W("Providing anonymity for users is the central goal for the anonymous 
file-sharing application.");
-W("Many other design decisions follow in the footsteps of this requirement.");
-W("Anonymity is never absolute.");
-W("While there are various %s that can help quantify the level of anonymity 
that a given mechanism provides, there is no such thing as complete anonymity.",
-  extlink_("papers/tmAnon.ps", "scientific metrics"));
-W("GNUnet allows users to select for each operation (publish, search, 
download) the desired level of anonymity.");
-W("The metric used is the amount of cover traffic available to hide the 
request.");
-W("While this metric is not as good as the theoretical metric given in %s, it 
is probably the best metric available to a peer with a purely local view of the 
world that does not rely on unreliable external information.",
- extlink_("papers/tmAnon.ps", "scientific metrics"));
-W("The default anonymity level is 1, which uses anonymous routing but imposes 
no minimal requirements on cover traffic.");
-W("It is possible to forego anonymity when this is not required.");
-W("The anonymity level of 0 allows GNUnet to use more efficient, non-anonymous 
routing.");
-EP();
-
-H5("How GNUnet achieves Anonymity");
-
-BP();
-W("Contrary to other designs, we do not believe that users achieve strong 
anonymity just because their requests are obfuscated by a couple of 
indirections.");
-W("This is not sufficient if the adversary uses traffic analysis.");
-W("The thread model used for anonymous file sharing in GNUnet assumes that the 
adversary is quite powerful.");
-W("In particular, we assume that the adversary can see all the traffic on the 
Internet.");
-W("And while we assume that the adversary can not break our encryption, we 
assume that the adversary has many participating nodes in the network and that 
it can thus see many of the node-to-node interactions since it controls some of 
the nodes.");
-
-P();
-
-W("The system tries to achieve anonymity based on the idea that users can be 
anonymous if they can hide their actions in the traffic created by other 
users.");
-W("Hiding actions in the traffic of other users requires participating in the 
traffic, bringing back the traditional technique of using indirection and 
source rewriting.");
-W("Source rewriting is required to gain anonymity since otherwise an adversary 
could tell if a message originated from a host by looking at the source 
address.");
-W("If all packets look like they originate from a node, the adversary can not 
tell which ones originate from that node and which ones were routed.");
-W("Note that in this mindset, any node can decide to break the 
source-rewriting paradigm without violating the protocol, as this only reduces 
the amount of traffic that a node can hide its own traffic in.");
-
-P();
-
-W("If we want to hide our actions in the traffic of other nodes, we must make 
our traffic indistinguishable from the traffic that we route for others.");
-W("As our queries must have us as the receiver of the reply (otherwise they 
would be useless), we must put ourselves as the receiver of replies that 
actually go to other hosts; in other words, we must indirect replies.");
-W("Unlike other systems, in anonymous file-sharing as implemented on top of 
GNUnet we do not have to indirect the replies if we don&rsquo;t think we need 
more traffic to hide our own actions.");
-W("This increases the efficiency of the network as we can indirect less under 
higher load.");
-W("More details can be found in %s.",
-  extlink_("download/aff.ps", "this paper"));
-
-
-EP();
-ANCHOR("deniability");
-H4("Deniability");
-
-BP();
-W("Even if the user that downloads data and the server that provides data are 
anonymous, the intermediaries may still be targets.");
-W("In particular, if the intermediaries can find out which queries or which 
content they are processing, a strong adversary could try to force them to 
censor certain materials.");
-
-P();
-
-W("With the file-encoding used by GNUnet's anonymous file-sharing, this 
problem does not arise.");
-W("The reason is that queries and replies are transmitted in an encrypted 
format such that intermediaries cannot tell what the query is for or what the 
content is about.");
-W("Mind that this is not the same encryption as the link-encryption between 
the nodes.");
-W("GNUnet has encryption on the network layer (link encryption, 
confidentiality, authentication) and again on the application layer (provided 
by <tt>gnunet-insert</tt>, <tt>gnunet-download</tt>, <tt>gnunet-search</tt> and 
<tt>gnunet-gtk</tt>).");
-
-W("More details can be found in %s.",
-  extlink_("download/ecrs.ps", "this paper"));
-
-EP();
-
-
-include("html_footer.php3");
-?>

Deleted: GNUnet-docs/WWW/protocol.php3
===================================================================
--- GNUnet-docs/WWW/protocol.php3       2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/protocol.php3       2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,43 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet Documentation: The Protocols";
-$description="Overview over the GNUnet protocol families.";
-include("html_header.php3");
-
-H2("The Protocols");
-BP();
-W("GNUnet uses protocols in three different contexts.");
-EP();
-echo "<ol><li>";
-W("The first and most important protocol family is the peer-to-peer 
protocol.");
-W("This protocol defines how nodes in the network exchange information with 
each other.");
-W("The peer-to-peer protocol defines messages for peer discovery, encryption, 
availability and other, application specific messages.");
-W("All peers in the network must support a certain core subset of the 
peer-to-peer messages.");
-W("The peer-to-peer messages are exchanged between <tt>gnunetd</tt> 
processes.");
-W("The mechanisms of exchange are encapsulated in the <em>transport</em> 
services.");
-echo "</li><li>";
-W("The second protocol family is the client-server protocol.");
-W("The client-server protocol is used between <tt>gnunetd</tt> and the GNUnet 
tools.");
-W("Since <tt>gnunetd</tt> is a deamon process that runs in the background, the 
user must be able to interact with <tt>gnunetd</tt>.");
-W("GNUnet uses a TCP connection, typically via loopback, to allow GNUnet 
clients to send requests to <tt>gnunetd</tt>.");
-W("For these clients, the GNUnet tools, <tt>gnunetd</tt> acts as a server, and 
not as a peer.");
-W("Note that GNUnet clients are ultimately trusted.");
-W("GNUnet does not encrypt the TCP traffic between client and server since 
this connection should only ever be allowed either via loopback or on a trusted 
LAN.");
-W("Which hosts are allowed to connect as clients to <tt>gnunetd</tt> is 
specified in the configuration file.");
-echo "</li><li>";
-W("The third family of GNUnet protocols is used in the transport layer.");
-W("The transport layer encapsulates the sending and receiving of peer-to-peer 
messages.");
-W("Every GNUnet peer must support at least one transport protocol.");
-W("Transport protocols differ in performance, system requirements and 
ease-of-use.");
-W("Each transport protocol also defines its own format for a host address.");
-W("Host addresses can be anything from a simple IP:PORT combination to an http 
URL or an E-mail address.");
-W("While a single peer can have as many addresses as transports, every peer is 
uniquely identified by its identity, which is the hash of its public key.");
-echo "</li></ol>";
-
-H2("Overview");
-BP();
-W("The protocols are described in the following sections:");
-EP();
-include("protocol_index.inc");
-include("html_footer.php3");
-?>

Deleted: GNUnet-docs/WWW/protocol_cs.php3
===================================================================
--- GNUnet-docs/WWW/protocol_cs.php3    2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/protocol_cs.php3    2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,30 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet Documentation: The Client-Server Protocol";
-$description="Description of the protocol used for GNUnet client-server 
communication.";
-include("html_header.php3");
-
-ANCHOR("CSprotocol");H3("GNUnet Protocol: client-to-node");
-BP();
-W("This section describes the protocol that is used on the 
<strong>trusted</strong>, reliable TCP connection between <tt>gnunetd</tt> and 
the clients (such as <tt>gnunet-insert</tt>, <tt>gnunet-search</tt>, 
<tt>gnunet-download</tt> or <tt>gnunet-gtk</tt>).");
-W("TCP is stream oriented, but GNUnet breaks the stream into records.");
-W("The different messages between GNUnet and the clients all have the 
following basic format:");
-EP();
-LAYOUT("GNUNET_MessageHeader",
-       F(ARRAY(N("message size", NBO_()) => 2,
-               N("request type", NBO_()) => 2,
-               N("(size - 4) bytes of data", "") => 0)));
-BP();
-W("The message type constants are defined in <tt>gnunet_protocols.h</tt> and 
all have names starting with <tt>GNUNET_CS_PROTO_</tt>.");
-W("The suffix <tt>REQUEST</tt> is used for messages from the client to 
<tt>gnunetd</tt>.");
-W("<tt>REPLY</tt> is used for messages from <tt>gnunetd</tt> to the client.");
-W("If <tt>gnunetd</tt> receives a REQUEST that it does not understand, it 
closes the connection (to prevent the client from blocking on a reply that may 
never come).");
-P();
-W("See also %s.",
-  extlink_("doxygen/html/tcpio_8c-source.html","tcpio.c"));
-
-W("The following groups of client-server messages are currently documented:");
-EP();
-include("protocol_cs_index.inc");
-include("html_footer.php3");
-?>
\ No newline at end of file

Deleted: GNUnet-docs/WWW/protocol_cs_afs.php3
===================================================================
--- GNUnet-docs/WWW/protocol_cs_afs.php3        2012-08-27 18:40:59 UTC (rev 
23449)
+++ GNUnet-docs/WWW/protocol_cs_afs.php3        2012-08-27 18:51:04 UTC (rev 
23450)
@@ -1,173 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet Documentation: File-Sharing Client-to-Node protocol";
-$description="Protocol between client and node for (anonymous) file sharing";
-include("html_header.php3");
-
-H3("GNUnet Protocol: client-to-node: File Sharing");
-BP();
-afslogo();
-W("The file-sharing procotol currently defines the following messages between 
client and server:");
-EP();
-echo "<ul>\n";
-LILI("#CS_QUERY","QUERY_START");
-LILI("#CS_RESULT","RESULT");
-LILI("#CS_INSERT","INSERT");
-LILI("#CS_INDEX","INDEX");
-LILI("#CS_DELETE","DELETE");
-LILI("#CS_UNINDEX","UNINDEX");
-LILI("#CS_TESTINDEX","TESTINDEX");
-LILI("#CS_INIT_INDEX","INIT_INDEX");
-echo "</ul>\n";
-
-ANCHOR("CS_QUERY");H4("QUERY_START");
-BP();
-W("The client sends a message of this form whenever it is searching or 
downloading.");
-W("The server is expected to perform the search and send results back to the 
client.");
-W("The server can send any number of results with any delay.");
-W("The client can stop searching by closing the connection.");
-W("If the server closes the connection, the client will need to re-send the 
search request using a new connection to continue searching.");
-W("This should only happen if the server is restarted by the user.");
-W("The format of the message is:");
-EP();
-LAYOUT("CS_fs_request_search_MESSAGE",
-       F(ARRAY(N("message size (144 or 208)", NBO_()) => 2,
-               V("request type", 8, NBO_()) => 2,
-               V("reserved", 0, NBO_()) => 4,
-               N("type", NBO_()) => 4,
-               N("anonymity level", NBO_()) => 4,
-               N("target (if known, otherwise all zeros)", "") => 64,
-               N("query", "") => 64,
-               N("namespace (optional)", "") => 64)));
-
-
-ANCHOR("CS_RESULT");H4("RESULT");
-BP();
-W("If <tt>gnunetd</tt> finds a search result to a %s, it sends back the data 
encapsulated in this message.",
-  extlink_("#CS_QUERY","QUERY_START"));
-W("The format of the  message is:");
-EP();
-LAYOUT("CS_fs_reply_content_MESSAGE",
-       F(ARRAY(N("message size (4+X)", NBO_()) => 2,
-               V("request type", 9, NBO_()) => 2,
-               N("anonymity level (of content, 0 for unknown)",  NBO_()) => 4,
-               N("data (ECRS encoded)", "") => 0)));
-
-ANCHOR("CS_INSERT");H4("INSERT");
-BP();
-W("Clients send this message to insert data into the network.");
-W("The server is supposed to store the data and share it with other nodes.");
-W("Note that there are two ways to share data, via insertion and via %s.",
-  extlink_("#CS_INDEX","indexing"));
-W("Indexing only applies to downloads and never to search results.");
-W("The importance in this message tells the server how important it is to 
store this content, so that the server can decide which content to discard if 
it is running out of space.");
-P();
-W("If the insertion was successful, the server replies with a %s containing 
<tt>OK</tt>, otherwise the server replies with <tt>SYSERR</tt>.",
-  intlink_("protocol_cs_core.php3","RETURN_VALUE"));
-P();
-W("The format of the message is:");
-EP();
-LAYOUT("CS_fs_request_insert_MESSAGE",
-       F(ARRAY(N("message size (20+X)", NBO_()) => 2,
-               V("request type", 10, NBO_()) => 2,
-               V("reserved", 0, NBO_()) => 4,
-               N("priority", NBO_()) => 4,
-               N("anonymity level", NBO_()) => 4,
-               N("expiration (cron_t)", NBO_()) => 8,
-              N("data (ECRS encoded)", "") => 0)));
-
-ANCHOR("CS_INDEX");H4("INDEX");
-BP();
-W("Clients send this message to index content to make it available to the 
network.");
-W("The indexing message does not only contain the data but also describes a 
way for the server to possibly find it on-demand.");
-W("This is achieved using the <tt>file ID</tt>, a hash of the entire file.");
-W("This hash thus uniquely identifies the file.");
-W("The client should send an <tt>INDEX_INIT</tt> message earlier that tells 
the server the location of a file with that hash in the filesystem.</tt>");
-W("If <tt>gnunetd</tt> can access that file, it will create a symbolic link 
instead of copying <tt>data</tt> into its internal database.");
-W("If <tt>gnunetd</tt> cannot access the file, it will create a copy of the 
file using the <tt>data</tt> contained in the <tt>INDEX</tt> messages.");
-W("In both cases <tt>gnunetd</tt> will store an index of the file in its 
database in order to be able to retrieve the blocks on-demand.");
-P();
-W("If the indexing was successful, the server replies with a %s containing 
<tt>OK</tt>, otherwise the server replies with <tt>SYSERR</tt>.",
-  intlink_("protocol_cs_core.php3","RETURN_VALUE"));
-W("The format of the message is:");
-EP();
-LAYOUT("CS_fs_request_index_MESSAGE",
-       F(ARRAY(N("message size (92+X)", NBO_()) => 2,
-               V("request type", 11, NBO_()) => 2,
-               V("reserved", 0, NBO_()) => 4,
-               N("priority", NBO_()) => 4,
-               N("anonymity level", NBO_()) => 4,
-               N("expiration (cron_t)", NBO_()) => 8,
-               N("offset of data in file", NBO_()) => 8,
-               N("file ID (SHA-512 of entire file)", "") => 64,
-              N("data (X bytes in plaintext)", "") => 0)));
-
-
-ANCHOR("CS_DELETE");H4("DELETE");
-BP();
-W("This message is used by clients to request the deletion of specific content 
by <tt>gnunetd</tt> from the local datastore.");
-W("The format of the message is:");
-EP();
-LAYOUT("CS_fs_request_delete_MESSAGE",
-       F(ARRAY(N("message size (4+X)", NBO_()) => 2,
-               V("request type", 12, NBO_()) => 2,
-               V("reserved", 0, NBO_()) => 4,
-              N("data (ECRS encoded)", "") => 0)));
-
-
-ANCHOR("CS_UNINDEX");H4("UNINDEX");
-BP();
-W("This message is used to request the removal of an entire indexed file from 
the database of <tt>gnunetd</tt>.");
-W("<tt>gnunetd</tt> will use the original file to reconstruct the individual 
blocks stored in the index.");
-W("For that, <tt>gnunetd</tt> needs to know the <tt>blocksize</tt> that was 
used during the construction of the original index.");
-W("The format of the message is:");
-EP();
-LAYOUT("CS_fs_request_unindex_MESSAGE",
-       F(ARRAY(N("message size (72)", NBO_()) => 2,
-               V("request type", 13, NBO_()) => 2,
-               N("blocksize", NBO_()) => 4,
-               N("file ID (SHA-512 of entire file)", "") => 64)));
-
-
-ANCHOR("CS_TESTINDEX");H4("TESTINDEX");
-BP();
-W("This message is used by the client to test if a given file is already 
indexed.");
-W("The server replies with a %s containing <tt>YES</tt> or <tt>NO</tt>.",
-  intlink_("protocol_cs_core.php3","RETURN_VALUE"));
-W("The format of the message is:");
-EP();
-LAYOUT("CS_fs_request_test_index_MESSAGE",
-       F(ARRAY(V("message size", 72, NBO_()) => 2,
-               V("request type", 14, NBO_()) => 2,
-               V("reserved", 0, NBO_()) => 4,
-               N("file ID (SHA-512 of entire file)", "") => 64)));
-EP();
-
-
-ANCHOR("CS_INIT_INDEX"); H4("INIT_INDEX");
-
-BP();
-W("This message is used by the client to initiate the indexing process of a 
file.");
-W("The file is identified by its SHA-512 hash.");
-
-W("The message is used to give <tt>gnunetd</tt> a chance to create a symbolic 
link instead of creating a copy.");
-W("The given filename is the target name on the machine where the client is 
running.");
-W("In other words, the file may not exist on the machine where 
<tt>gnunetd</tt> is running.");
-W("Also, file permissions maybe set such that <tt>gnunetd</tt> cannot access 
the file.");
-W("<tt>gnunetd</tt> must verify that the file is accessible AND that the 
contents match the provided SHA-512 hash.");
-W("<tt>gnunetd</tt> signals success or error with a %s_VALUE of OK or SYSERR.",
-  intlink_("protocol_cs_core.php3","RETURN_VALUE"));
-// FIXME: what does "success" mean? Not always symlinking, right?
-W("The format of the message is:");
-
-
-LAYOUT("CS_fs_request_init_index_MESSAGE",
-       F(ARRAY(N("message size (72+X)", NBO_()) => 2,
-               V("request type", 15, NBO_()) => 2,
-              V("reserved", 0, NBO_())=>4,
-              N("file ID (SHA-512 of the file)", "")=> 64,
-              N("filename", "") => 0)));
-
-
-include("html_footer.php3");
-?>

Deleted: GNUnet-docs/WWW/protocol_cs_core.php3
===================================================================
--- GNUnet-docs/WWW/protocol_cs_core.php3       2012-08-27 18:40:59 UTC (rev 
23449)
+++ GNUnet-docs/WWW/protocol_cs_core.php3       2012-08-27 18:51:04 UTC (rev 
23450)
@@ -1,43 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet Documentation: Client-to-Node protocol";
-$description="Documentation of the CS messages implemented by the GNUnet 
core.";
-include("html_header.php3");
-
-H3("GNUnet Protocol: client-to-node: core");
-BP();
-W("The following messages are not specific to any particular appliation.");
-W("They are implemented by the core and always available.");
-W("The RETURN_VALUE message is also used as part of application-specific CS 
protocols.");
-EP();
-echo "<ul>\n";
-LILI("#GNUNET_MessageReturnValue","RETURN VALUE");
-LILI("#SHUTDOWN_REQUEST","SHUTDOWN REQUEST");
-echo "</ul>\n";
-
-ANCHOR("GNUNET_MessageReturnValue");H4("RETURN VALUE");
-BP();
-W("The RETURN VALUE message is used to communicate simple (int) return values 
from TCP requests.");
-W("It is always send in response to another, specific request.");
-W("The format of the RETURN_VALUE message is:");
-EP();
-LAYOUT("GNUNET_MessageReturnValue",
-       F(ARRAY(V("message size", 8, NBO_()) => 2,
-               V("request type", 0, NBO_()) => 2,
-               N("return value", NBO_()) => 4)));
-
-
-ANCHOR("SHUTDOWN_REQUEST");H4("SHUTDOWN REQUEST");
-BP();
-W("With this message, the client can request gnunetd to shutdown.");
-W("The format of the SHUTDOWN REQUEST message is:");
-EP();
-LAYOUT("GNUNET_MessageHeader",
-       F(ARRAY(V("message size", 4, NBO_()) => 2,
-               V("request type", 1, NBO_()) => 2)));
-BP();
-W("The server responds with a RETURN VALUE message with the contents OK if it 
is shutting down.");
-EP();
-
-include("html_footer.php3");
-?>

Deleted: GNUnet-docs/WWW/protocol_cs_getoption.php3
===================================================================
--- GNUnet-docs/WWW/protocol_cs_getoption.php3  2012-08-27 18:40:59 UTC (rev 
23449)
+++ GNUnet-docs/WWW/protocol_cs_getoption.php3  2012-08-27 18:51:04 UTC (rev 
23450)
@@ -1,43 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet Documentation: getoption CS protocol";
-$description="Documentation of the client-server getoption protocol";
-include("html_header.php3");
-
-H3("GNUnet Protocol: client-to-node: getoption");
-BP();
-W("The %s messages are implemented by the %s service.",
-  ARRAY("GET_OPTION", "getoption"));
-EP();
-echo "<ul>\n";
-LILI("#CS_getoption_request_MESSAGE","GET_OPTION_REQUEST");
-LILI("#CS_getoption_reply_MESSAGE","GET_OPTION_REPLY");
-echo "</ul>\n";
-
-ANCHOR("GET_OPTION_REQUEST");H4("GET_OPTION_REQUEST");
-BP();
-W("With this message, the client can request the value of an option from the 
gnunetd configuration.");
-W("The format of the GET_OPTION_REQUEST message is:");
-EP();
-LAYOUT("CS_getoption_request_MESSAGE",
-       F(ARRAY(V("message size", 68, NBO_()) => 2,
-               V("request type", 2, NBO_()) => 2,
-               N("section name", "") => 32,
-               N("option name", "") => 32)));
-BP();
-W("The server responds with a GET_OPTION_REPLY message.");
-EP();
-
-ANCHOR("GET_OPTION_REPLY");H4("GET_OPTION_REPLY");
-BP();
-W("With this message, the server notifies the client about the value of an 
option.");
-W("The format of the GET_OPTION_REPLY message is:");
-EP();
-LAYOUT("CS_getoption_reply_MESSAGE",
-       F(ARRAY(N("message size", NBO_()) => 2,
-               V("request type", 3, NBO_()) => 2,
-               N("value (size - 4 bytes), 0-terminated", "") => 0)));
-
-include("html_footer.php3");
-
-?>

Deleted: GNUnet-docs/WWW/protocol_cs_index.inc
===================================================================
--- GNUnet-docs/WWW/protocol_cs_index.inc       2012-08-27 18:40:59 UTC (rev 
23449)
+++ GNUnet-docs/WWW/protocol_cs_index.inc       2012-08-27 18:51:04 UTC (rev 
23450)
@@ -1,10 +0,0 @@
-<ol>
-<li><?php intlink("protocol_cs_core.php3","GNUnet core"); ?></li>
-<li><?php intlink("protocol_cs_getoption.php3","getoption"); ?></li>
-<li><?php intlink("protocol_cs_stats.php3","stats"); ?></li>
-<li><?php intlink("protocol_cs_traffic.php3","traffic"); ?></li>
-<li><?php intlink("protocol_cs_afs.php3","fs"); ?></li>
-<!-- li><?php intlink("protocol_cs_chat.php3","chat"); ?></li -->
-<!-- li><?php intlink("protocol_cs_tbench.php3","tbench"); ?></li -->
-<!-- li><?php intlink("protocol_cs_tracekit.php3","tracekit"); ?></li -->
-</ol>

Deleted: GNUnet-docs/WWW/protocol_cs_stats.php3
===================================================================
--- GNUnet-docs/WWW/protocol_cs_stats.php3      2012-08-27 18:40:59 UTC (rev 
23449)
+++ GNUnet-docs/WWW/protocol_cs_stats.php3      2012-08-27 18:51:04 UTC (rev 
23450)
@@ -1,72 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet Documentation: stats CS protocol";
-$description="Documentation of the CS stats protocol";
-include("html_header.php3");
-
-H3("GNUnet Protocol: client-to-node: stats");
-BP();
-W("The %s messages are implemented by the %s service.",
-  ARRAY("STATISTICS", "stats"));
-EP();
-echo "<ul>\n";
-LILI("#CS_GET_STATISTICS","GET_STATISTICS");
-LILI("#CS_STATISTICS","STATISTICS");
-LILI("#CS_GET_MESSAGE_SUPPORTED","GET_MESSAGE_SUPPORTED");
-echo "</ul>\n";
-
-ANCHOR("CS_GET_STATISTICS");H4("GET_STATISTICS");
-BP();
-W("With this message, the client can request statistics from the server.");
-W("The server always replies with a %s message.",
-  extlink_("#CS_STATISTICS","STATISTICS"));
-P();
-W("The format of the message is:");
-EP();
-LAYOUT("CS_MESSAGE_HEADER",
-       F(ARRAY(V("message size", 4, NBO_()) => 2,
-               V("request type", 36, NBO_()) => 2)));
-
-
-ANCHOR("CS_STATISTICS");H4("STATISTICS");
-BP();
-W("The available statistical information may change between GNUnet versions.");
-W("It also depends on which modules are loaded.");
-W("The format of the message is:");
-EP();
-
-LAYOUT("CS_stats_reply_MESSAGE",
-       F(ARRAY(N("message size", NBO_()) => 2,
-               V("request type", 37, NBO_()) => 2,
-               V("reserved", 0, NBO_()) => 4,
-               N("start time (cron_t)", NBO_()) => 8,
-               N("total", NBO_()) => 4,
-               N("count", NBO_()) => 4,
-               N("values (count unsigned long longs)", NBO_()) => 0,
-              N("names (count 0-terminated strings)", "") => 0)));
-BP();
-W("The server sends potentially several STATISTICS messages until the sum of 
<tt>count</tt> in all messages equals the <tt>total</tt> advertised.");
-W("The last decription string is also zero-terminated.");
-W("Thus the last character in every of these messages is 0.");
-EP();
-
-
-
-ANCHOR("CS_GET_MESSAGE_SUPPORTED");H4("GET_MESSAGE_SUPPORTED");
-BP();
-W("This message can be used to test if <tt>gnunetd</tt> currently supports a 
certain type of P2P or CS message.");
-W("The <tt>type</tt> specifies which type of message the question is about.");
-W("The <tt>category</tt> specifies if it is about P2P (0: plaintext, 1: 
ciphertext, 2: either) or CS (3) messages.");
-W("<tt>gnunetd</tt> responds with a %s message with the answer YES or NO.",
-  intlink_("protocol_cs_core.php3", "RETURN_VALUE"));
-W("The format of the message is:");
-EP();
-LAYOUT("CS_stats_reply_MESSAGE",
-       F(ARRAY(V("message size", 8, NBO_()) => 2,
-               V("request type", 38, NBO_()) => 2,
-               N("type", NBO_()) => 2,
-               N("category", NBO_()) => 2)));
-
-
-include("html_footer.php3");
-?>

Deleted: GNUnet-docs/WWW/protocol_cs_traffic.php3
===================================================================
--- GNUnet-docs/WWW/protocol_cs_traffic.php3    2012-08-27 18:40:59 UTC (rev 
23449)
+++ GNUnet-docs/WWW/protocol_cs_traffic.php3    2012-08-27 18:51:04 UTC (rev 
23450)
@@ -1,56 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet Documentation: traffic CS protocol";
-$description="Documentation of the CS traffic protocol";
-include("html_header.php3");
-
-H3("GNUnet Protocol: client-to-node: traffic");
-BP();
-W("The %s messages are implemented by the %s service.",
-  ARRAY("TRAFFIC", "traffic"));
-EP();
-echo "<ul>\n";
-LILI("#CS_traffic_request_MESSAGE","TRAFFIC_REQUEST");
-LILI("#CS_traffic_info_MESSAGE","TRAFFIC_INFO");
-echo "</ul>\n";
-
-
-ANCHOR("CS_traffic_request_MESSAGE");H4("TRAFFIC_REQUEST");
-BP();
-W("With this message, the client can request traffic statistics from 
<tt>gnunetd</tt>.");
-W("The time period specfied in the message specifies which traffic is 
interesting for the request (in terms of not older than time period time 
units).");
-W("The server responds with a TRAFFIC_INFO message.");
-W("The format of the message is:");
-EP();
-LAYOUT("CS_traffic_request_MESSAGE",
-       F(ARRAY(V("message size", 8, NBO_()) => 2,
-               V("request type", 33, NBO_()) => 2,
-               N("time interval", NBO_()) => 4)));
-
-
-ANCHOR("CS_traffic_info_MESSAGE");H4("TRAFFIC_INFO");
-BP();
-W("With this message, the server sends traffic information to the client.");
-W("The format of the message is:");
-EP();
-
-LAYOUT("CS_traffic_info_MESSAGE",
-       F(ARRAY(N("message size", NBO_()) => 2,
-               V("request type", 34, NBO_()) => 2,
-               N("count", NBO_()) => 4,
-               N("&quot;count&quot; traffic counters") => 0)));
-BP();
-W("The traffic counters have the following format:");
-EP();
-
-LAYOUT("TRAFFIC_COUNTER",
-       F(ARRAY(N("flags (see TC_ constants)", NBO_()) => 2,
-               N("message type", NBO_()) => 2,
-               N("number of messages of this type that were processed", 
NBO_()) => 4,
-               N("average message size", NBO_()) => 4,
-               N("bitmask indicating in which of the last 32 time units a 
message was processed", NBO_()) => 4)));
-
-
-
-include("html_footer.php3");
-?>

Deleted: GNUnet-docs/WWW/protocol_index.inc
===================================================================
--- GNUnet-docs/WWW/protocol_index.inc  2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/protocol_index.inc  2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,11 +0,0 @@
-<ol>
-<li><?php intlink("protocol_p2p","Peer-to-Peer");
-          include("protocol_p2p_index.inc"); ?>
-</li>
-<li><?php intlink("protocol_cs","Client-Server");
-          include("protocol_cs_index.inc"); ?>
-</li>
-<li><?php intlink("protocol_transport","Transport Services");
-          include("protocol_transport_index.inc"); ?>
-</li>
-</ol>
\ No newline at end of file

Deleted: GNUnet-docs/WWW/protocol_p2p.php3
===================================================================
--- GNUnet-docs/WWW/protocol_p2p.php3   2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/protocol_p2p.php3   2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,46 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet Documentation: The Peer-to-Peer Protocols";
-$description="GNUnet Documentation: The protocol for inter-node 
communication.";
-include("html_header.php3");
-
-ANCHOR("protocol");H3("GNUnet Protocols: node-to-node");
-BP();
-W("A packet exchanged between GNUnet hosts can contain any number of 
messages.");
-W("The total packet size is limited by the MTU of the transport service that 
is used.");
-W("Packets are assembled from individual messages by the GNUnet core.");
-W("They are padded with noise until they have the size of the MTU of the 
specific transport service used to transmit the message.");
-
-W("The GNUnet core also computes a checksum of the plaintext message and 
encrypts the data with AES-256.");
-W("The transport service only needs to transmit the information.");
-W("The data that the transport service needs to communicate is the sender 
identity, the checksum, the total message size, a flag indicating whether or 
not the message is in plaintext or encrypted, and the packet itself.");
-W("The transport layer implementation is responsible for wrapping the packet 
appropriately.");
-W("Different transports can send message very differently.");
-W("For example, TCP needs to communicate the size explicitly but the sender 
identity is only communicated once (at the time where the connection is 
established).");
-W("UDP on the other hand does not need to explicitly communicate the size 
(datagrams!), but it needs to supply the sender identity each time 
(stateless!).");
-
-W("For received packets, the transport is not responsible for checking the 
checksum.");
-W("If the checksum does not verify the core will discard the message 
silently.");
-P();
-W("Each of the messages in the plaintext packet has the following header:");
-EP();
-
-LAYOUT("GNUNET_MessageHeader",
-       F(ARRAY(N("message size", NBO_()) => 2,
-              N("request type", NBO_()) => 2,
-              N("(size - 4) bytes of data", "") => 0)));
-
-BP();
-W("The header is followed by <tt>message size</tt> octets for the message.");
-W("GNUnet clients are required to skip unknown request types.");
-W("The <tt>message size</tt> field is the size of the message in octets 
including the header.");
-P();
-W("The following groups of peer-to-peer messages are documented:");
-include("protocol_p2p_index.inc");
-W("Note that peers are guaranteed to support the core protocols, but all 
others are optional.");
-W("Peers that do not support a protocol are expected to simply ignore those 
unsupported messages.");
-EP();
-
-include("html_footer.php3");
-?>
-

Deleted: GNUnet-docs/WWW/protocol_p2p_afs.php3
===================================================================
--- GNUnet-docs/WWW/protocol_p2p_afs.php3       2012-08-27 18:40:59 UTC (rev 
23449)
+++ GNUnet-docs/WWW/protocol_p2p_afs.php3       2012-08-27 18:51:04 UTC (rev 
23450)
@@ -1,115 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet: The GAP Peer-to-Peer Protocol";
-$description="The protocol used between GNUnet peers for anonymous 
file-sharing.";
-include("html_header.php3");
-
-afslogo();
-ANCHOR("ROUTING");H4("Anonymous Routing: GAP");
-BP();
-W("First, a &quot;correct&quot; implementation of the GAP protocol does not 
have to implement routing exactly as described henceforth.");
-W("The described algorithm is the best we could come up with so far (while 
achieving good anonymity).");
-W("Peers can implement a different algorithm and still be protocol 
compatible.");
-P();
-W("Whenever a peer receives a query, it makes a couple of decisions.");
-W("The peer first decides whether to just ignore the query.");
-W("This is done if the local load is far too high, if the query is expired or 
if the query has already been processed recently.");
-W("This first question is among the most difficult.");
-W("GAP uses a time-to-live per query, which is a relative, possibly negative 
lifetime in milliseconds.");
-W("From this timestamp GAP computes an absolute time and compares it with its 
(finite) routing table.");
-W("If the query has less time to live than an existing query in the table, it 
is dropped.");
-P();
-
-W("Once GAP has decided that a query will be processed, it performs a local 
lookup.");
-W("Potential replies are sent back (with a random delay) if the bandwidth 
allocation code permits it.");
-W("The code then decides on forwarding the query (with decremented 
time-to-live) to a subset of the connected peers.");
-W("A number of peers is selected based on a biased random selection.");
-W("The selection is biased towards peers that have recently replied to other 
queries that had the same predecessor as the current query.");
-W("The exact code can be found %s.",
-  extlink_("doxygen/html/plan_8c.html",
-           "here (plan.c)"));
-P();
-
-W("If GAP receives a reply, it checks its routing table for a matching 
entry.");
-W("It is possible that there is no corresponding query in the routing table 
(anymore), in which case the reply is dropped (or, given enough space, 
replicated in the local datastore anyway).");
-W("If there is a routing table entry, it is used to evaluate the economic 
importance of the reply, which again may or may not lead to replicating the 
reply in the local datastore.");
-W("Furthermore, the reply is scheduled for delivery to all peers (and local 
client processes) waiting for the response.");
-W("The response is delivered instantly to local clients and with a (random) 
delay to other peers.");
-W("The query stays in the routing table if there is a possibility that it may 
yield additional results.");
-W("In order to handle queries that can yield multiple results, each peer 
remembers which results have already been processed for a given query.");
-P();
-
-W("The philosophy of why this should achieve good anonymity is described in 
the %s.",
-  extlink_("download/aff.ps", "GAP paper"));
-W("The rationale behind correlating queries from the same predecessor lies in 
the %s which will yield correlations between successive queries from the same 
client.",
-  extlink_("download/ecrs.ps", "encoding scheme"));
-
-P();
-W("The GAP protocol defines the following messages:");
-echo "<ul>\n";
-LILI("#QUERY","P2P_gap_query_MESSAGE");
-LILI("#RESULT","GAP_RESULT");
-echo "</ul>\n";
-EP();
-
-ANCHOR("QUERY");H4("QUERY");
-BP();
-W("GAP queries consists of several GAP specific fields, a hash which is used 
for routing and for the database lookup, and possibly additional hash codes.");
-W("The semantics of these additional hash codes depend on the query type.");
-W("As far as GAP is concerend, the query type and those additional hash codes 
are merely passed along.");
-W("Peers that receive a GAP QUERY can respond with one or more GAP REPLY 
messages.");
-W("The GAP protocol uses the ECRS-core to verify that a response matches a 
query.");
-W("The details of how replies are verified are discussed in the %s paper.",
-  extlink_("download/ecrs.ps","ECRS"));
-EP();
-
-LAYOUT("P2P_gap_query_MESSAGE",
-       F(ARRAY(N("message size (152 + (Q-1) * 64 + X)", NBO_()) => 2,
-               V("request type", 16, NBO_()) => 2,
-               N("ECRS block type", NBO_()) => 4,
-               N("priority", NBO_()) => 4,
-               N("time-to-live", NBO_()) => 4,
-               N("filter mutator", NBO_()) => 4,
-               N("number of queries (Q = 1 or 2)", NBO_()) => 4,
-               N("return-to peer identity", NBO_()) => 64,
-               N("query hash", NBO_()) => 64,
-               N("namespace (optional, depending on block type, only if Q=2)", 
NBO_()) => 64,
-              N("Bloom filter", "") => 0)));
-BP();
-W("The priority is used to determine the value of the query.");
-W("Queries with lower priorities are more likely to be dropped.");
-W("For details see the paper on the %s for GNUnet.",
-  extlink_("download/ebe.ps", "economic model"));
-W("The time-to-live determines how long the peer is going to route replies.");
-W("Replies are transmitted to the peer that is specified in the <tt>return 
to</tt> field.");
-W("For details see the %s paper.",
-  extlink_("download/gap.ps", "GAP"));
-W("The type field and all hash codes after the first query are only passed 
along and used by the %s.",
-  extlink_("download/ecrs.ps", "ECRS encoding"));
-W("The current protocol uses at most one additional hash code for the 
namespace, but the GAP code should allow for any number of additional hash 
codes to be passed around (depending on the value of <tt>number of 
queries</tt>).");
-W("Finally, the query is optionally followed by a Bloom filter.");
-W("Its size can be determined from the size field of the request (and maybe 
zero).");
-W("The Bloom filter is used to communicate that certain results are not 
legal.");
-W("In order to determine if a result is not legal, the receiver is to hash the 
result, hash the <tt>filter mutator</tt>, XOR the two hash codes and test if 
the resulting value is matched by the Bloom filter.");
-W("If the Bloom filter matches the XOR'ed hash codes, the result is not 
acceptable.");
-
-EP();
-ANCHOR("RESULT");H4("RESULT");
-BP();
-W("A GAP RESULT message is a reply of a GNUnet node to a %s that was used to 
request a specific block of a file.",
-  extlink_("#QUERY","QUERY"));
-W("Note that the type of the result is encoded by ECRS in the data portion (in 
the first four bytes).");
-W("The size of the data portion of the result depends on the query type and is 
again defined by ECRS.");
-W("The hash for checking against the bloomfilter of a query should be done 
only over the ECRS-encoded data.");
-W("See also the %s and the %s for the way data is transmitted in GNUnet.",
-  ARRAY(extlink_("download/esed.ps","GNUnet encoding paper"),
-       extlink_("encoding.php3","encoding page")));
-EP();
-LAYOUT("P2P_gap_reply_MESSAGE",
-       F(ARRAY(N("message size", NBO_()) => 2,
-               V("request type", 17, NBO_()) => 2,
-               N("expiration time (unsigned, relative, in ms)", NBO_()) => 8,
-               N("ECRS-encoded data", NBO_()) => 0)));
-
-include("html_footer.php3");
-?>

Deleted: GNUnet-docs/WWW/protocol_p2p_core.php3
===================================================================
--- GNUnet-docs/WWW/protocol_p2p_core.php3      2012-08-27 18:40:59 UTC (rev 
23449)
+++ GNUnet-docs/WWW/protocol_p2p_core.php3      2012-08-27 18:51:04 UTC (rev 
23450)
@@ -1,271 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet Documentation: The Peer-to-Peer Protocols";
-$description="The core protocol, the fundamental messages underlying all 
GNUnet applications";
-include("html_header.php3");
-
-ANCHOR("protocol");H3("GNUnet Protocol: node-to-node: core messages");
-BP();
-W("The GNUnet node-to-node (peer-to-peer) procotol currently defines seven 
different messages that must be supported by all peers:");
-EP();
-echo "<ul>\n";
-LIV(extlink_("#HELLO","HELLO"));
-LIV(extlink_("#SETKEY","SETKEY"));
-LIV(extlink_("#PING","PING"));
-LIV(extlink_("#PONG","PONG"));
-LIV(extlink_("#HANGUP","HANGUP"));
-LIV(extlink_("#FRAGMENT","FRAGMENT"));
-LIV(extlink_("#NOISE","NOISE"));
-echo "</ul>\n";
-BP();
-W("These messages are typically not all implemented directly by the core 
itself, but rather by internal service plugins.");
-W("However, loading these plugins is not optional (the core will automatically 
do so on startup).");
-W("Thus it makes sense to refer to these messages as the core messages.");
-P();
-W("The most basic sequence is that a host sends a %s to any other host to 
notify it of its existance on the network.",
-  extlink_("#HELLO","HELLO"));
-W("The recipient of the HELLO sends back a %s to confirm that the host is 
actually reachable.",
-  extlink_("#PING","PING"));
-W("The receiver of the PING always sends back a %s to confirm receit.",
-  extlink_("#PONG","PONG"));
-P();
-W("Later, either of the hosts sends the other host an %s message with an 
encrypted %s to initiate a connection.",
-  ARRAY(extlink_("#SETKEY","SETKEY"),
-        extlink_("#PING", "PING")));
-W("The receiver acknowledges this with another SETKEY, which also contains a 
new PING and a %s that corresponds to the PING that was received earlier.",
-  extlink_("#PONG","PONG"));
-W("Again, the PING is answered with an encrypted %s.",
-  extlink_("#PONG","PONG"));
-W("If no PONG is received, either side can send another SETKEY and PING.");
-W("If an SETKEY is repeated after a short period of time, the secret key 
should not be changed.");
-W("This sequence is pretty much equivalent to the initial three-way handshake 
in TCP.");
-P();
-W("The following diagram illustrates a possible sequence of messages:");
-
-IMG("images/states.png",
-    "Illustration of a message exchange in GNUnet",
-    "CENTER",
-    444,
-    571);
-
-P();
-W("Nodes then exchange application specific mesages.");
-W("%s must be used to make packets look uniform in size.",
-  extlink_("#NOISE","NOISE"));
-W("The MTU is determined by the transport layer and advertised in the HELLO 
message.");
-W("%s can be used by any of the nodes to drop the connection.",
-  extlink_("#HANGUP","HANGUP"));
-W("A connection that is inactive for a long time (about 15 minutes) is also 
considered dropped.");
-W("The %s is neither acknowledged nor required, but implemented by all 
well-behaved nodes.",
-  extlink_("#HANGUP","HANGUP"));
-P();
-W("A packet exchanged between GNUnet hosts can contain any number of messages 
(only limited by the MTU of the transport layer).");
-P();
-
-W("In addition to encrypting the message, the GNUnet core also extends each 
message with additional information.");
-W("The GNUnet core adds a checksum, information about bandwidth limitations 
and sequencing information to prevent processing messages twice.");
-W("The encryption, decryption and verification is done by the GNUnet core and 
neither the application nor the transport code need to worry about it.");
-W("The format of the header that is added by the GNUnet core to each message 
is the following:");
-EP();
-LAYOUT("GNUNET_TransportPacket_HEADER",
-       F(ARRAY(N("hash of the plaintext (SHA-512)", "") => 64,
-               N("sequence number, 0 for plaintext", 11, NBO_()) => 4,
-               N("timestamp (in seconds)", NBO_()) => 4,
-               N("bandwidth limit (bytes per minute)", NBO_()) => 4)));
-BP();
-W("This header is followed by individual messages.");
-W("Note again that the identity of the sender must also be communicated such 
that the core can select the right key for decryption.");
-W("However, how this is done depends on the specific transport.");
-
-EP();
-ANCHOR("HELLO");H4("HELLO");
-
-BP();
-W("A HELLO packet is used to propagate information about participating nodes 
throughout GNUnet.");
-W("Each GNUnet node is identified by its public key K.");
-W("Throughout GNUnet, the public key of a node is often abbreviated by just 
the hash of K, short H(K).");
-P();
-W("The HELLO packet is the way nodes propagate public keys of other nodes.");
-W("Furthermore, the identity of the node is <strong>bound</strong> to an 
address.");
-W("How an address is specified depends on the underlying transport mechanism 
that is used.");
-W("For example, the UDP service uses the IP and the UDP port.");
-W("An SMTP transport implementation may choose to use an E-mail address.");
-W("GNUnet nodes can have multiple addresses and change addresses at any time, 
e.g. if the IP is dynamically assigned, like in DHCP or on dialup.");
-W("The %s is used to notify other hosts of a changed address.",
-  extlink_("doxygen/html/structGNUNET__MessageHello.html","HELLO message"));
-P();
-W("<strong>Security considerations</strong>.");
-W("Malicious nodes could disrupt GNUnet by telling nodes fake addresses.");
-W("As nodes forward HELLOs from other nodes, malicious hosts could replace the 
address of the original node by an invalid address.");
-W("In order to prevent this, the address portion of a HELLO must be signed 
with the private key of the node.");
-W("In order to prevent malicious hosts from forwarding outdated addresses, the 
signed portion of a HELLO also contains a timestamp stating how long the HELLO 
is going to be valid.");
-W("The administrator of each node can specify how long the HELLOs signed by 
that node are going to be valid; the administrator is in the best position to 
judge how long the current address will be valid.");
-P();
-W("Another security concern is where hosts send out valid, signed HELLO 
messages with IPs of non-participating machines.");
-W("The goal of this attack could either be to flood the non-participating 
hosts with traffic (trick GNUnet into performing an attack) or to make it hard 
for the receiver to find a valid GNUnet host in the ocean of addresses that it 
learned from the HELLOs.");
-W("GNUnet defends against this type of attack by sending a PING to the 
acclaimed host and only believes the HELLO of a PONG is received.");
-W("Thus the malicious host sending fake HELLOs will fail to trick GNUnet into 
repeatedly trying to connect to the non-participating host.");
-
-P();
-W("Receivers of HELLOs must verify the signature and check that the HELLO has 
not expired.");
-W("Nodes should delete HELLOs that have expired for a long time.");
-W("HELLOs that expired just a short time ago may belong to nodes that may 
re-appear.");
-W("GNUnet nodes may still keep trying to connect to these nodes, but their 
HELLOs should no longer be propagated.");
-W("HELLOs can be send to hosts without an established encrypted connection (in 
plaintext).");
-W("This is necessary because HELLOs and %ss are needed to form the encrypted 
channel in the first place.",
-  EXTLINK_("#SETKEY","SETKEY"));
-W("Once an encrypted channel was formed, nodes can exchange HELLOs via that 
channel.");
-EP();
-LAYOUT("GNUNET_MessageHello",
-       F(ARRAY(N("message size (600 + X)", NBO_()) => 2,
-              V("request type", 0, NBO_()) => 2,
-              N("RSA signature (signing data starting from sender id to end of 
HELLO)","") => 256,
-              V("size of public key (T)", 262, NBO_()) => 2,
-              V("size of n in bytes (N)", 256, NBO_()) => 2,
-              N("n in public RSA key (N bytes)", "") => 256,
-              N("e in public RSA key (T - N bytes)", "") => 2,
-              V("padding", 0, NBO_()) => 2,
-              N("sender id (SHA-512 of data from T to padding)", "") => 64,
-              N("expiration time (in seconds)", NBO_()) => 4,
-              N("MTU of the transport (in bytes)", NBO_()) => 4,
-              N("sender address size (X, in bytes)", NBO_()) => 2,
-              N("transport protocol", NBO_()) => 2,
-              N("sender address", "") => 0)));
-
-
-
-ANCHOR("SETKEY");H4("SETKEY");
-BP();
-W("Sessionkeys are 256 bit keys for AES-256, a symmetric cipher that is used 
for all communication between GNUnet nodes except %ss and SETKEYs themselves 
(for those, RSA with 2048 bit keys is used).",
-  extlink_("#HELLO","HELLO"));
-P();
-W("A session between two GNUnet nodes is the existance of a pair of 
sessionkeys between the two nodes that have been confirmed by receiving an 
encrypted PONG response to an encrypted PING challenge.");
-W("Even if the underlying protocol may be connectionless, the notion of a 
session is still meaningful for GNUnet.");
-P();
-W("A session key exchange may be initiated by either node.");
-W("SETKEYS are always encrypted with the public key of the receiving node.");
-W("The sender of a session key not only encrypts the key with the public key 
of the receiver but also signs it (together with an creation time) with its own 
private key.");
-W("The transmitted key is the key that the sender will use in the future.");
-W("An SETKEY always contains an encrypted PING message.");
-W("An SETKEY may furthermore contain an encrypted PONG message, in particular 
if the SETKEY is transmitted in response to an SETKEY+PING message.");
-W("The encrypted portion is part of the SETKEY message since the overall 
message is still in plaintext.");
-W("While the symmetric key is encrypted and signed using RSA, the PING (and 
PONG) are encrypted with the symmetric cipher.");
-W("SETKEY messages are usually not send through an encrypted channel.");
-W("If nodes that already have an SETKEY pair decide to exchange a fresh 
sessionkey, that key may be send via the encrypted channel.");
-W("However, even in that case, the key must also be encrypted with the public 
key of the receiving node.");
-P();
-
-W("The sender must remember the sessionkey and can start using it after 
receiving an acknowledgement in the form of a %s from the receiver.",
-  extlink_("#PONG","PONG"));
-W("The PONG must be encrypted and can be transmitted either as part of the 
symmetrically encrpyted portion of another SETKEY or as an ordinary encrypted 
message.");
-P();
-W("The format of an SETKEY message is the following:");
-EP();
-LAYOUT("P2P_setkey_MESSAGE",
-       F(ARRAY(N("message size (584 + X)", NBO_()) => 2,
-              V("request type", 1, NBO_()) => 2,
-              N("creation time (seconds)", NBO_()) => 4,
-              N("RSA encrypted data", "") => 256,
-              N("Intended recipient", "") => 64,
-              N("RSA signature", "") => 256,
-              N("AES-512 encrypted PINGs and PONGs", "") => 0)));
-BP();
-W("Note that X is always either 72 or 144 bytes.");
-W("The RSA encrypted data decrypts with the hostkey of the receiver to an 
AES-256 session key.");
-W("Before decrypting, the recipient checks that its own identity matches the 
intended recpient field.");
-W("This helps avoid wasting CPU time if the sender is mistaken about the 
identity of the target.");
-W("Using the RSA signature as the initialization vector, this key can be used 
to decrypt the PINGs and PONGs (if present).");
-W("The sessionkey is also used for all future communication with the peer 
(until HANGUP or timeout).");
-W("If PINGs are transmitted, the peer should respond by sending an encrypted 
PONG.");
-W("If the peer has not yet transmitted a session key, the PONG can be included 
in another SETKEY message that is transmitted in response.");
-W("If a PONG is included, this should be verified and if it matches a prior 
PING used as confirmation that the other peer has received an earlier 
sessionkey.");
-EP();
-
-ANCHOR("PING");H4("PING");
-BP();
-W("PINGs are used to test if a node receives messages correctly.");
-W("PINGs are exchanged in encrypted messages, as part of SETKEYs and in 
plaintext.");
-W("The receit of a PING must be answered by a PONG with identical body (the 
receiver just changes the type).");
-W("An encrypted PING must be answered by an encrypted PONG.");
-W("It does not matter if the encrypted PONG is encrypted as part of an SETKEY 
or part of an ordinary encrypted message.");
-W("The challenge number in a PING is a random number that is used to make it 
impractical for an adversary to guess the contents of the PING and thus hard to 
fake a PONG response.");
-P();
-W("The identity stored in the PING is the identity of the receiver.");
-W("If that identity does not match, the PING must be silently discarded.");
-EP();
-LAYOUT("P2P_pingpong_MESSAGE",
-       F(ARRAY(V("message size", 72, NBO_()) => 2,
-              V("request type", 2, NBO_()) => 2,
-              N("challenge", NBO_()) => 4,
-              N("Identity of receiver of PING", "") => 64)));
-
-
-ANCHOR("PONG");H4("PONG");
-BP();
-W("PONGs are responses to PINGs.");
-W("If the node is not aware of a corresponding PING (or if the challenge is 
wrong), the PONG is silently dropped.");
-W("Otherwise the appropriate action corresponding to the PING is triggered.");
-EP();
-LAYOUT("P2P_pingpong_MESSAGE",
-       F(ARRAY(V("message size", 72, NBO_()) => 2,
-              V("request type", 3, NBO_()) => 2,
-              N("challenge", NBO_()) => 4,
-              N("Identity of receiver of PING (sender for PONG)", "") => 64)));
-
-
-ANCHOR("HANGUP");H4("HANGUP");
-BP();
-W("When a HANGUP message is received, the node must stop using the current 
sessionkey (assuming the receiver is the other node involved in the 
corresponding session with the sender).");
-W("If the receiving node desires further communication with the sender, a new 
sessionkey must be exchanged.");
-W("The format of the HANGUP message is:");
-LAYOUT("P2P_hangup_MESSAGE",
-       F(ARRAY(V("message size", 68, NBO_()) => 2,
-              V("request type", 4, NBO_()) => 2,
-              N("Identity of sender", "") => 64)));
-
-
-ANCHOR("FRAGMENT");H4("FRAGMENT");
-BP();
-W("Fragments are used to communicate messages that are larger than the MTU of 
the transport.");
-W("The peer sending fragments should make sure to transmit all fragments in 
sequence.");
-W("No peer is expected to reassemble multiple fragments for the same sender at 
any time.");
-W("If the receiving peer does not receive all parts of a fragment, the entire 
message has to be discarded.");
-W("The messages constructed from fragments cannot be larger than 64k.");
-W("The format for fragments is:");
-EP();
-
-LAYOUT("P2P_fragmentation_MESSAGE",
-       F(ARRAY(N("message size (12 + X)", NBO_()) => 2,
-              V("request type", 5, NBO_()) => 2,
-              N("fragment id", NBO_()) => 4,
-              N("offset", NBO_()) => 2,
-              N("total length of fragmented message", NBO_()) => 2,           
-              N("(size - 12) bytes of fragmented message at <tt>offset</tt>", 
"") => 0)));
-BP();
-W("The N bytes of data from the fragment belong to a larger message of the 
given total size and are to be placed at the given offset.");
-W("Unlike IP fragmentation, GNUnet fragments should never be overlapping.");
-EP();
-
-
-
-ANCHOR("NOISE");H4("NOISE");
-BP();
-W("Noise is used to make it harder for adversaries to perform traffic 
analysis.");
-W("A node receiving noise should just silently ignore it.");
-W("Nodes may append noise to packets that are short to make all packets look 
more uniform in size.");
-W("Noise should only be used in encrypted traffic.");
-W("The format for noise is:");
-EP();
-LAYOUT("GNUNET_MessageHeader",
-       F(ARRAY(N("message size", NBO_()) => 2,
-              V("request type", 6, NBO_()) => 2,
-              N("(size - 4) random bytes", "") => 0)));
-
-BP();
-W("The number of bytes of noise should be a multiple of 4 to preserve 
alignment.");
-W("The noise in the packet should be (pseudo) random.");
-
-EP();
-
-include("html_footer.php3");
-?>

Deleted: GNUnet-docs/WWW/protocol_p2p_dht.php3
===================================================================
--- GNUnet-docs/WWW/protocol_p2p_dht.php3       2012-08-27 18:40:59 UTC (rev 
23449)
+++ GNUnet-docs/WWW/protocol_p2p_dht.php3       2012-08-27 18:51:04 UTC (rev 
23450)
@@ -1,75 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet Documentation: The Peer-to-Peer Protocols: DHT";
-$description="The distributed hash table (DHT) protocol in GNUnet";
-include("html_header.php3");
-ANCHOR("protocol");H3("GNUnet Protocol: node-to-node: DHT");
-BP();
-
-EP();
-ANCHOR("DHT_DISCOVERY");H4("DHT DISCOVERY");
-BP();
-W("A DISCOVERY message is used to let another peer know that the sender 
supports the DHT protocol and also to exchange topology information.");
-W("A DISCOVERY message contains the amount of space available for the DHT at 
the sender as well as the identities of other DHT participants known to the 
sender.");
-W("The format of the DISCOVERY message is the following:");
-EP();
-LAYOUT("P2P_DHT_Discovery",
-       F(ARRAY(N("message size (8 + N * 64)", NBO_()) => 2,
-              V("request type", 18, NBO_()) => 2,
-              N("available space (in bytes)", NBO_()) => 4,
-              N("known DHT participants", "") => 0)));
-ANCHOR("DHT_ASK_HELLO");H4("DHT ASK HELLO");
-BP();
-W("ASK HELLO messages are used by DHT peers if they would like to contact 
another peer in the network but do not have the necessary address 
information.");
-W("If possible, other peers respond to ASK HELLO messages with the respective 
HELLO message.");
-W("The format of the ASK HELLO message is the following:");
-EP();
-LAYOUT("P2P_DHT_ASK_HELLO",
-       F(ARRAY(V("message size", 72, NBO_()) => 2,
-              V("request type", 19, NBO_()) => 2,
-              V("resreved", 0, NBO_()) => 4,
-              N("identity of peer", "") => 64)));
-
-ANCHOR("DHT_GET");H4("DHT GET");
-BP();
-W("A DHT_GET message is used to ask other peers to find content matching a 
particular type and key.");
-W("Other peers should respond with the respective DHT RESULT message if they 
can find the data.");
-EP();
-LAYOUT("DHT_MESSAGE",
-       F(ARRAY(V("message size", 80, NBO_()) => 2,
-              V("request type", 20, NBO_()) => 2,
-              N("type of requested content", NBO_()) => 4,
-              N("hop count", NBO_()) => 4,
-              N("network size estimate", NBO_()) => 4,
-              N("key", "") => 64)));
-ANCHOR("DHT_PUT");H4("DHT PUT");
-BP();
-W("A DHT PUT message is used to store data in the DHT.");
-W("Peers should make an effort to store the data either in their own datastore 
or in the datastore of other peers (by forwarding the request).");
-W("Peers do not send any response or confirmation to a DHT PUT request.");
-W("Peers can validate the success of a PUT by issuing the corresponding GET 
request and wainting for results.");
-EP();
-LAYOUT("DHT_MESSAGE",
-       F(ARRAY(N("message size (80 + X)", NBO_()) => 2,
-              V("request type", 21, NBO_()) => 2,
-              N("type of requested content", NBO_()) => 4,
-              N("hop count", NBO_()) => 4,
-              N("network size estimate", NBO_()) => 4,
-              N("key", "") => 64,
-              N("data", NBO_()) => 0)));
-ANCHOR("DHT_RESULT");H4("DHT RESULT");
-BP();
-W("A DHT RESULT message is transmitted in response to a DHT GET request.");
-W("Peers should forward the result to the previous peer in the request chain 
(or the respective local client for local requests).");
-W("Peers do not send any response or confirmation to a DHT RESULT request.");
-EP();
-LAYOUT("DHT_MESSAGE",
-       F(ARRAY(N("message size (80 + X)", NBO_()) => 2,
-              V("request type", 22, NBO_()) => 2,
-              N("type of requested content", NBO_()) => 4,
-              N("hop count", NBO_()) => 4,
-              N("network size estimate", NBO_()) => 4,
-              N("key", "") => 64,
-              N("result data", NBO_()) => 0)));
-include("html_footer.php3");
-?>

Deleted: GNUnet-docs/WWW/protocol_p2p_index.inc
===================================================================
--- GNUnet-docs/WWW/protocol_p2p_index.inc      2012-08-27 18:40:59 UTC (rev 
23449)
+++ GNUnet-docs/WWW/protocol_p2p_index.inc      2012-08-27 18:51:04 UTC (rev 
23450)
@@ -1,9 +0,0 @@
-<ol>
-<li><?php intlink("protocol_p2p_core.php3","GNUnet core"); ?></li>
-<li><?php intlink("protocol_p2p_afs.php3","GAP"); ?></li>
-<li><?php intlink("protocol_p2p_rpc.php3","RPC"); ?></li>
-<li><?php intlink("protocol_p2p_dht.php3","DHT"); ?></li>
-<!-- li><?php intlink("protocol_p2p_chat.php3","Chat"); ?></li -->
-<!-- li><?php intlink("protocol_p2p_tbench.php3","TBench"); ?></li -->
-<!-- li><?php intlink("protocol_p2p_tracekit.php3","TraceKit"); ?></li -->
-</ol>
\ No newline at end of file

Deleted: GNUnet-docs/WWW/protocol_p2p_rpc.php3
===================================================================
--- GNUnet-docs/WWW/protocol_p2p_rpc.php3       2012-08-27 18:40:59 UTC (rev 
23449)
+++ GNUnet-docs/WWW/protocol_p2p_rpc.php3       2012-08-27 18:51:04 UTC (rev 
23450)
@@ -1,105 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet Documentation: The Peer-to-Peer Protocols: RPC";
-$description="Protocol for remote procedure calls in GNUnet";
-include("html_header.php3");
-
-ANCHOR("protocol");H3("GNUnet Protocol: node-to-node: RPC");
-BP();
-W("RPC is a service that can be run by a subset of the GNUnet network.");
-W("In other words, not all GNUnet peers necessarily support this service.");
-W("A peer that does not support RPC is supposed to ignore RPC requests.");
-W("The RPC service provides reliable hop-by-hop communication.");
-W("It does provide anything that is directly useful to an end-user.");
-W("The RPC service is intended to be used by other GNUnet protocols that need 
this kind of primitive.");
-W("How to use the RPC service is described on the %s page.",
-  intlink_("hacking_rpc.php3", "RPC hacking"));
-W("The GNUnet node-to-node (or peer-to-peer) RPC procotol currently defines 
three messages that must be supported by all peers that use RPC.");
-EP();
-echo "<ul>\n";
-LILI("#REQ","REQ");
-LILI("#RES","RES");
-LILI("#ACK","ACK");
-echo "</ul>\n";
-BP();
-W("The most basic sequence is that a peer sends a %s to any other host to 
request the execution of some function.",
-  extlink_("#REQ","REQ"));
-W("The recipient of the REQ sends back a %s to communicate the successful 
execution and to return some response code.",
-  extlink_("#RES","RES"));
-W("The receiver of the RES always sends back a %s to confirm receit and 
complete the 3-way handshake.",
-  extlink_("#ACK","ACK"));
-P();
-W("If the initiator does not receive a RES, it will typically retry the REQ 
(until timing out).");
-W("Similarly, if the responder does not receive the ACK, it will retry the RES 
(until timing out).");
-W("After receiving the ACK the responder frees all resources associated with 
the REQ.");
-W("Sequence numbers are used to prevent the responder from executing the 
function multiple times.");
-EP();
-ANCHOR("REQ");H4("REQ");
-
-BP();
-W("<strong>Security considerations</strong>.");
-W("The RPC module does not provide any access checks on RPC calls.");
-W("While the peer identity of the initiator has been established, there is no 
access control mechanism.");
-W("Clients that register RPC callbacks are supposed to take care of access 
checks themselves.");
-W("The priority communicated in the RPC message is currently unchecked by the 
implementation and only used to reserve bandwidth with the core.");
-W("The fact that the priority is not checked against economic constraints 
allows an attacker to obtain more bandwidth than the common GNUnet model would 
permit.");
-W("Note that the %s service currently suffers from the same &quot;bug&quot;.",
-  intlink_("protocol_p2p_tracekit.php3", "tracekit"));
-W("Future implementations of RPC will likely expose the priority to the RPC 
function.");
-
-W("The format of the REQ message is:");
-EP();
-LAYOUT("P2P_rpc_MESSAGE",
-       F(ARRAY(N("size", NBO_()) => 2,
-               V("type", 42, NBO_()) => 2,
-              N("sequence number", NBO_()) => 4,
-              N("importance", NBO_()) => 4,
-              N("number of arguments", NBO_()) => 2,
-              N("length of the function name", NBO_()) => 2,
-              N("function name", "") => 0,
-              N("arguments (see RPC_paramSerialize)", "") => 0)));
-BP();
-W("The format of the arguments is first a zero-terminated parameter name, 
followed by the size of the parameter (as an <tt>unsigned int</tt> in network 
byte order) followed by the actual argument.");
-W("The helper functions defined in %s should be used to serialize and 
deserialize the arguments.",
-  extlink_("doxygen/html/gnunet__rpc__service_8h.html",
-          "gnunet_rpc_service.h"));
-W("Each peer is expected to use strictly monotonically increasing sequence 
numbers.");
-W("There are currently no provisions to handle the integer overflow at 
2<sup>32</sup>-1.");
-EP();
-
-ANCHOR("RES");H4("RES");
-
-BP();
-W("The format of the RES message is:");
-EP();
-LAYOUT("P2P_rpc_MESSAGE",
-       F(ARRAY(N("size", NBO_()) => 2,
-               V("type", 43, NBO_()) => 2,
-              N("sequence number", NBO_()) => 4,
-              N("importance of the reply", NBO_()) => 4,
-              N("number of return values", NBO_()) => 2,
-              N("error code (0 for success)", NBO_()) => 2,
-              N("return values (see RPC_paramDeserialize)", "") => 0)));
-BP();
-W("The number of return values must be 0 if a non-zero error code is 
returned.");
-W("The sequence number must be identical to the number from the REQ message.");
-W("The format of the return values is first a zero-terminated return value 
identifier, followed by the size of the return value (as an unsigned int in 
network byte order) followed by the actual value.");
-W("The helper functions defined in %s should be used to serialize and 
deserialize the return values.",
-  extlink_("doxygen/html/gnunet__rpc__service_8h.html",
-          "gnunet_rpc_service.h"));
-W("Note that GNUnet RPCs can have multiple return values.");
-W("The most common error code returned by the RPC service is to indicate that 
no function under the given name has been registered at this peer.");
-EP();
-
-ANCHOR("ACK");H4("ACK");
-BP();
-W("An ACK is purely a notification that a RES was received.");
-W("The format of an ACK is the following:");
-EP();
-LAYOUT("RPC_ACK_Message",
-       F(ARRAY(V("size", 8, NBO_()) => 2,
-               V("type", 44, NBO_()) => 2,
-              N("sequence number", NBO_()) => 4)));
-
-include("html_footer.php3");
-?>

Deleted: GNUnet-docs/WWW/protocol_p2p_tracekit.php3
===================================================================
--- GNUnet-docs/WWW/protocol_p2p_tracekit.php3  2012-08-27 18:40:59 UTC (rev 
23449)
+++ GNUnet-docs/WWW/protocol_p2p_tracekit.php3  2012-08-27 18:51:04 UTC (rev 
23450)
@@ -1,70 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet Documentation: The Peer-to-Peer Protocols: Trace";
-$description="GNUnet Documentation - The Trace protocol";
-include("html_header.php3");
-
-ANCHOR("protocol");H3("GNUnet Protocol: node-to-node: Trace");
-
-BP();
-W("The <tt>tracekit</tt> module provides a protocol that allows tracing the 
GNUnet topology.");
-W("Not all GNUnet peers support this service, in fact peers that are concerned 
about anonymity should probably not support it at all since this protocol 
reveils too much information.");
-W("The primary purpose of <tt>tracekit</tt> is to help the GNUnet developers 
in investigating problems.");
-W("The results from <tt>tracekit</tt> are not necessarily accurate.");
-W("Peers may not respond, not respond in time or the responses may be lost.");
-W("The tracekit protocol only defines two messages:");
-echo "<ul>\n";
-LIV(extlink_("#PROBE","PROBE"));
-LIV(extlink_("#REPLY","REPLY"));
-echo "</ul>\n";
-W("The most basic sequence is that a peer sends a %s to any other host to 
request topology information.",
-  extlink_("#PROBE","PROBE"));
-W("The recipient of the PROBE checks if it has seen the probe previously and 
if not forwards it to all other neighbours, sends back a %s and also forwards 
all REPLY messages received from its neighbours.",
-  extlink_("#REPLY","REPLY"));
-EP();
-ANCHOR("PROBE");H4("PROBE");
-
-BP();
-W("The format of the %s is:",
-  extlink_("doxygen/html/structTRACEKIT__p2p__PROBE.html", "PROBE message"));
-LAYOUT("P2P_tracekit_probe_MESSAGE",
-       F(ARRAY(V("message size", 40, NBO_()) => 2,
-               V("message type", 36, NBO_()) => 2,
-               N("timestamp (unsigned)", NBO_()) => 4,
-               N("hops to go (unsigned)", NBO_()) => 4,
-               N("importance of the request (unsigned)", NBO_()) => 4,
-               N("internal client ID", NBO_()) => 4,
-               N("initiator peer identity", NBO_()) => 64)));
-W("If the responder has already seen a PROBE request from the same initiator 
with the same timestamp, the PROBE is discarded.");
-W("The timestamp is used by the responder who has bounded space to keep track 
of requests.");
-W("The responder is expected to discard the oldest request from the tracking 
table.");
-W("Abuse is prevented by having the responder discard requests with a 
timestamp in the future.");
-W("If a PROBE is received with a timestamp that is older than the oldest 
tracked PROBE, the request is discarded.");
-W("If the number of hops to go reaches zero the responder does not forward the 
request.");
-W("Otherwise the responder forwards the request to all neighbours with hops to 
go reduced by one.");
-W("REPLIES received from those neighbours are forwarded back to the previous 
peer that send the PROBE.");
-W("The initiator peer identity cannot be confirmed and is not checked in any 
way.");
-W("The current implementation does not use the economic system to limit the 
importance of requests.");
-EP();
-
-ANCHOR("REPLY");H4("REPLY");
-
-BP();
-W("The format of the REPLY is:");
-LAYOUT("P2P_tracekit_reply_MESSAGE",
-       F(ARRAY(N("message size (140 + N * 64)", NBO_()) => 2,
-               V("request type", 37, NBO_()) => 2,
-               N("initiator peer identity", NBO_()) => 64,
-               N("responder peer identity", NBO_()) => 64,
-               N("initiator timestamp (unsigned)", NBO_()) => 4,
-               N("internal client ID", NBO_()) => 4,
-               N("connected peers", NBO_()) => 0)));
-W("The responder peer identity is the identity of the peer that originally 
constructed this message.");
-W("Peers forwarding REPLY messages are not supposed to modify them in any 
way.");
-W("The internal client ID is copied unchanged from the original request.");
-W("The message contains a variable number of peer IDs for each connected 
peer.");
-W("If a peer has more connected peers than what can be fit into one message, 
it may construct multiple REPLIES.");
-EP();
-
-include("html_footer.php3");
-?>

Deleted: GNUnet-docs/WWW/protocol_transport.php3
===================================================================
--- GNUnet-docs/WWW/protocol_transport.php3     2012-08-27 18:40:59 UTC (rev 
23449)
+++ GNUnet-docs/WWW/protocol_transport.php3     2012-08-27 18:51:04 UTC (rev 
23450)
@@ -1,54 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet Documentation: The Protocol of the Transport Services";
-$description="GNUnet Documentation - a secure peer-to-peer framework starring 
anonymous file sharing with an excess based trust-economy";
-include("html_header.php3");
-
-BP();
-W("GNUnet uses a special type of message to bind public keys to their current 
address.");
-W("For the UDP, TCP and HTTP transport layers, an address consists of IPv4 
(and/or IPv6) addresses and a port.");
-W("Other transport mechanisms (SMTP, etc.) deploy various other forms of 
addresses.");
-W("Note that any node can have multiple addresses for the various transport 
mechanisms.");
-EP();
-
-include("protocol_transport_index.inc");
-
-BP();
-W("The configuration of the SMTP transport layer is described %s",
-  intlink_("smtp.php3","here"));
-
-W("The transport layer has, like the internet protocol (IP), best-effort 
semantics.");
-W("There is no guarantee that a message will be delivered.");
-W("We now describe how you can write your own transport mechanism for the 
GNUnet peer-to-peer framework.");
-
-EP();
-H4("How do I write a new transport mechanism for GNUnet?");
-
-BP();
-W("The best way to start implementing a new transport mechanism is to start 
with existing code that is semantically as close to the new mechanism as 
possible.");
-W("The most important criteria is if the connection is stateful and 
bidirectional (TCP, HTTP) or stateless and unidirectional (UDP, SMTP).");
-W("Implementations also can choose to only support messages of fixed size 
using some implemntation-dependent fixed MTU (UDP, SMTP), provide a streaming 
interface and use a stream (TCP) or internally convert a streaming interface 
into individual messages (HTTP).");
-W("Since reliability and delays are handled by the applications, these 
criteria are irrelevant for choosing an implementation to evolve from.");
-P();
-
-W("Every new transport mechanism must define an identification number in %s.",
-  extlink_("doxygen/html/gnunet__protocols_8h.html","gnunet_protocols.h"));
-W("Note that this number is used purely internally in GNUnet and does not have 
to correspond to the underlying protocol in any way.");
-P();
-W("For details on the transport API see our %s.",
-  extlink_("download/transport.ps","transport paper"));
-
-
-W("In addition to the message itself, the transport mechanism must communicate 
the sender identity (hash of public key) and the size of the message.");
-P();
-W("The transport layer implementation defines an appropriate message format to 
transmit this data.");
-W("The encapsulation format can be different for each transport.");
-W("Depending on the implementation of the transport mechanism, it may not be 
necessary to transmit the sender identity or the size explicitly in each 
message.");
-W("For example, a stateful transport such as TCP may only transmit the sender 
identity once and use special messages to switch between plaintext and 
encrypted messages.");
-W("UDP on the other hand must transmit the sender identity each time.");
-W("The HTTP transport encodes the sender identity in the request URL.");
-W("Also, some transports need to explicitly transmit the size of the message 
(TCP) whereas for other transports (such as UDP) the explicit packet size makes 
it unnecessary to explicitly transmit the message size.");
-EP();
-
-include("html_footer.php3");
-?>

Deleted: GNUnet-docs/WWW/protocol_transport_http.php3
===================================================================
--- GNUnet-docs/WWW/protocol_transport_http.php3        2012-08-27 18:40:59 UTC 
(rev 23449)
+++ GNUnet-docs/WWW/protocol_transport_http.php3        2012-08-27 18:51:04 UTC 
(rev 23450)
@@ -1,45 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet: The HTTP transport service";
-$description = "Documentation for the HTTP transport service protocol";
-include("html_header.php3");
-
-H2("The HTTP transport service");
-BP();
-W("The HTTP transport service uses both GET and POST/PUT requests to transmit 
data.");
-W("While bi-directional communication could just use GET requests, peers 
behind NAT could not be reached that way.");
-W("As a result, HTTP transports distinguish between the peer initiating the 
connection and the peer receiving the request.");
-W("The initiator performs a PUT request whenever the initiator wants to send a 
message.");
-W("The initiator also attempts to always have a GET request pending with the 
receiving peer.");
-W("The receiving peer can use that GET request to transmit its data to the 
initiator.");
-P();
-W("Both GET and POST/PUT requests use the encoded hash of the public key of 
the sender for the filename in the URL.");
-W("This enables the receiver to determine who is initiating the request.");
-W("No &quot;WELCOME&quot; message is exchanged; the initiator is expected to 
know who he wants to talk to.");
-W("More than such one message can be transmitted using the same GET or PUT 
request.");
-W("The transmission format uses the usual encapsulation with a 
<tt>GNUNET_MessageHeader</tt>.");
-W("That message has the following format:");
-EP();
-LAYOUT("GNUNET_MessageHeader",
-       F(ARRAY(N("size", NBO_()) => 2,
-               V("reserved", 0, NBO_()) => 2,
-               N("data", "") => 0)));
-BP();
-W("Here, <tt>data</tt> is the message as passed down by the GNUnet core.");
-P();
-W("For the HTTP transport service, the sender address in the HELLO has this 
format:");
-EP();
-LAYOUT("HostAddress",
-       F(ARRAY(N("IPv6 address", "") => 16,
-              N("IPv4 address", NBO_()) => 4,
-               N("port", NBO_()) => 2,
-               V("availability", 0, NBO_()) => 2)));
-BP();
-W("The <tt>availability</tt> field describes which of the IP protocols are 
supported.");
-W("If the lowest bit (1) is set, the given IPv4 address should be valid.");
-W("If the second lowest bit (2) is set, the given IPv6 address should be 
valid.");
-W("If both bits are set, both IPv4 and IPv6 can be used to contact the peer.");
-W("All other bits should be zero and ignored by peers at this point.");
-W("HELLOs where no bits in <tt>availability</tt> are set are invalid.");
-include("html_footer.php3");
-?>

Deleted: GNUnet-docs/WWW/protocol_transport_index.inc
===================================================================
--- GNUnet-docs/WWW/protocol_transport_index.inc        2012-08-27 18:40:59 UTC 
(rev 23449)
+++ GNUnet-docs/WWW/protocol_transport_index.inc        2012-08-27 18:51:04 UTC 
(rev 23450)
@@ -1,6 +0,0 @@
-<ol>
-<li><?php intlink("protocol_transport_udp.php3","UDP"); ?></li>
-<li><?php intlink("protocol_transport_tcp.php3","TCP"); ?></li>
-<li><?php intlink("protocol_transport_http.php3","HTTP"); ?></li>
-<li><?php intlink("smtp.php3","SMTP"); ?></li>
-</ol>

Deleted: GNUnet-docs/WWW/protocol_transport_tcp.php3
===================================================================
--- GNUnet-docs/WWW/protocol_transport_tcp.php3 2012-08-27 18:40:59 UTC (rev 
23449)
+++ GNUnet-docs/WWW/protocol_transport_tcp.php3 2012-08-27 18:51:04 UTC (rev 
23450)
@@ -1,41 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet: The TCP transport service";
-$description = "Documentation for the TCP transport service protocol";
-include("html_header.php3");
-
-H2("The TCP transport service");
-BP();
-W("In each TCP connection, the first data that is transmitted is a welcome 
message that tells the receiver the identity of the remote peer.");
-W("That message has the following format:");
-EP();
-LAYOUT("TCPWelcome",
-       F(ARRAY(V("size", 68, NBO_()) => 2,
-               V("reserved", 0, NBO_()) => 2,
-               N("sender identity", "") => 64)));
-BP();
-W("The individual messages exchanged over TCP then have the format:");
-EP();
-LAYOUT("GNUNET_MessageHeader",
-       F(ARRAY(N("size", NBO_()) => 2,
-               V("type", 0, NBO_()) => 2,
-               N("data", "") => 0)));
-BP();
-W("Here, <tt>data</tt> is the message as passed down by the GNUnet core.");
-P();
-W("For the TCP transport service, the sender address in the HELLO has this 
format:");
-EP();
-LAYOUT("HostAddress",
-       F(ARRAY(N("IPv6 address", "") => 16,
-              N("IPv4 address", NBO_()) => 4,
-               N("port", NBO_()) => 2,
-               V("availability", 0, NBO_()) => 2)));
-BP();
-W("The <tt>availability</tt> field describes which of the IP protocols are 
supported.");
-W("If the lowest bit (1) is set, the given IPv4 address should be valid.");
-W("If the second lowest bit (2) is set, the given IPv6 address should be 
valid.");
-W("If both bits are set, both IPv4 and IPv6 can be used to contact the peer.");
-W("All other bits should be zero and ignored by peers at this point.");
-W("HELLOs where no bits in <tt>availability</tt> are set are invalid.");
-include("html_footer.php3");
-?>

Deleted: GNUnet-docs/WWW/protocol_transport_udp.php3
===================================================================
--- GNUnet-docs/WWW/protocol_transport_udp.php3 2012-08-27 18:40:59 UTC (rev 
23449)
+++ GNUnet-docs/WWW/protocol_transport_udp.php3 2012-08-27 18:51:04 UTC (rev 
23450)
@@ -1,34 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet: The UDP transport service";
-$description = "Documentation for the UDP transport service protocol";
-include("html_header.php3");
-
-H2("The UDP transport service");
-BP();
-W("The current UDP implementation encapsulates messages in this format:");
-EP();
-LAYOUT("UDPMessage",
-       F(ARRAY(N("message size", NBO_()) => 2,
-               V("reserved", 0, NBO_()) => 2,
-               N("sender ID", NBO_()) => 64)));
-
-BP();
-W("Note that the actual data appears before this struct.");
-P();
-W("For the UDP transport service, the sender address in the HELLO has this 
format:");
-EP();
-LAYOUT("HostAddress",
-       F(ARRAY(N("IPv6 address", "") => 16,
-              N("IPv4 address", NBO_()) => 4,
-               N("port", NBO_()) => 2,
-               V("availability", 0, NBO_()) => 2)));
-BP();
-W("The <tt>availability</tt> field describes which of the IP protocols are 
supported.");
-W("If the lowest bit (1) is set, the given IPv4 address should be valid.");
-W("If the second lowest bit (2) is set, the given IPv6 address should be 
valid.");
-W("If both bits are set, both IPv4 and IPv6 can be used to contact the peer.");
-W("All other bits should be zero and ignored by peers at this point.");
-W("HELLOs where no bits in <tt>availability</tt> are set are invalid.");
-include("html_footer.php3");
-?>
\ No newline at end of file

Deleted: GNUnet-docs/WWW/robots.txt
===================================================================
--- GNUnet-docs/WWW/robots.txt  2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/robots.txt  2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,4 +0,0 @@
-User-agent: *
-Disallow: /i18nhtml/dig.php
-Disallow: /i18nhtml/translate.php
-

Deleted: GNUnet-docs/WWW/screenshots.php3
===================================================================
--- GNUnet-docs/WWW/screenshots.php3    2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/screenshots.php3    2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,105 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet Screenshots";
-$description="GNUnet Screenshots";
-include("html_header.php3");
-H2("GNUnet Screenshots");
-
-BP();
-W("Besides command line tools, GNUnet provides a graphical user interface: 
%s.", extlink_("gnunetgtk.php3", "gnunet-gtk"));
-W("Here are some screenshots of gnunet-gtk and its features and ports.");
-EP();
-IMG("screenshots/gnunet-gtk-fs-status-winxp.png",
-    "gnunet-gtk status page",
-    "CENTER",732,544);
-BP();
-W("Overview of all pending and completed filesharing operations (Windows 
XP).");
-EP();
-
-BR();
-
-IMG("screenshots/gnunet-gtk-directory-browser.png",
-    "gnunet-gtk download page",
-    "CENTER",732,592);
-BP();
-W("Search and download page with thumbnails (Linux, standard GTK theme).");
-EP();
-
-BR();
-
-IMG("screenshots/gnunet-gtk-stats-winxp.png",
-    "gnunet-gtk statistics page",
-    "CENTER",732,534);
-BP();
-W("Statistics of outgoing network traffic (Windows XP).");
-EP();
-
-H3("gnunet-qt");
-BR();
-
-IMG("screenshots/gnunet-qt-fs-search.png",
-    "gnunet-qt search and download on Windows XP",
-    "CENTER",808,634);
-BP();
-W("Search and download page with thumbnails (Windows XP, standard theme).");
-EP();
-
-IMG("screenshots/gnunet-qt-fs-stats.png",
-    "gnunet-qt filesharing overview on Linux, KDE",
-    "CENTER",808,629);
-BP();
-W("Filesharing overview (Linux, KDE).");
-EP();
-
-H3("gnunet-gtk in French");
-BR();
-
-IMG("screenshots/gnunet-gtk-fr1.png",
-    "gnunet-gtk search and download",
-    "CENTER",732,533);
-BP();
-W("Search and download page with thumbnails (Linux, standard GTK theme).");
-EP();
-
-IMG("screenshots/gnunet-gtk-fr2.png",
-    "gnunet-gtk publication dialog",
-    "CENTER",732,546);
-BP();
-W("Publication dialog (Linux, standard GTK theme).");
-EP();
-
-IMG("screenshots/gnunet-gtk-fr3.png",
-    "gnunet-gtk publication page",
-    "CENTER",732,550);
-BP();
-W("Publication page (Linux, standard GTK theme).");
-EP();
-
-IMG("screenshots/gnunet-gtk-fr4.png",
-    "gnunet-gtk status page",
-    "CENTER",732,546);
-BP();
-W("Overview of all pending and completed filesharing operations (Linux, 
standard GTK theme).");
-EP();
-
-IMG("screenshots/gnunet-gtk-fr5.png",
-    "gnunet-gtk publication dialog with thumbnail",
-    "CENTER",732,546);
-BP();
-W("Publication dialog with thumbnail (Linux, standard GTK theme).");
-EP();
-
-H3("GNUnet under Virtual Machines");
-
-BR();
-
-IMG("screenshots/gnunet-qemu.png",
-    "qemu running gnunet-gtk",
-    "CENTER",732,578);
-BP();
-W("qemu running gnunet-gtk (Linux on top of Linux).");
-EP();
-
-
-include("html_footer.php3");
-?>

Deleted: GNUnet-docs/WWW/scripts.inc
===================================================================
--- GNUnet-docs/WWW/scripts.inc 2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/scripts.inc 2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,136 +0,0 @@
-<?php
-include_once("i18nHTML/i18nhtml.php");
-
-// GNUnet specific functions
-
-function afslogo() {
-  img("logos/afs_small.png", "Anonymous file sharing logo", "RIGHT", 150, 115);
-}
-function gnunetlogo() {
-  img("logos/gnunet-logo-color.png", "GNUnet logo", "RIGHT", 73, 75);
-}
-
-function menu_bar() {
-?>
-      
-  <div id="navigation-bar">
-    <div id="navbar">
-    <ul>
-      <li><?php intlink("index.php","Welcome") ?></li>
-      <li><?php intlink("mailinglist.php3","Contact"); ?></li>
-      <li><?php extlink("/drupal/", "Community"); ?></li>
-      <li><?php intlink("faq.php3","FAQ"); ?></li>
-
-      <li><?php intlink("download.php3","Download"); ?></li>
-      <li><?php intlink("documentation.php3","Documentation"); ?></li>
-      <li><?php intlink("papers.php3","Papers"); ?></li>
-      <li><?php intlink("links.php3","Links"); ?></li>
-    </ul>
-    </div>
-  </div>
-<?php
-}
-
-// create an alement name consisting of the translation of $name
-// and the concrete value $name and possibly an NBO tag
-function V($name, $val, $nbo="") {
-  return W_($name) . " (" . $val . (($nbo == "")?"":",$nbo") . ")";
-}
-
-// create an alement name consisting of the translation of $name
-// and possibly an NBO tag
-function N($name, $nbo="") {
-  return W_($name) . (($nbo == "")?"":"($nbo)");
-}
-
-// formats a struct for showStructLayout
-// $elements is an (ordered!) list mapping a name
-// Todo: hack a bit more to give range for byte-offsets (i.e 4-13 bytes);
-// Also: for variable-size elements (size==0), improve "plusX" (and add 
-// also "plusY, plusZ" etc if multiple var-size ones happen to be used)
-function F($elements) {
-  $ret = ARRAY();
-  $offset = 0;
-  $currString = "";
-  $plusX = "";
-  foreach($elements as $name => $size) {
-    $osize = $size;
-    if (($offset % 4) == 0) {
-      if ( ($size >= 4) || ($size == 0) ) {
-        $ret[] = "<th class=\"tbl\">$offset$plusX</th><td class=\"tbl\" 
colspan=4>$name</td>";
-        $mod = $size % 4;
-        $offset += $size - $mod;
-        $size = $mod;
-      }
-      if ($size > 0) {
-        $currString = "<th class=\"tbl\">$offset$plusX</th><td class=\"tbl\" 
colspan=$size>$name</td>";
-        $offset += $size;
-      }
-    } else {
-      $left = 4 - ($offset % 4);
-      if ($left > $size)
-        $left = $size;
-      $currString = $currString . "<td class=\"tbl\" colspan=$left>$name</td>";
-      $offset += $left;
-      $size -= $left;
-      if (($offset % 4) == 0) {
-        $ret[] = $currString;
-        $currString = "";
-      }
-      if ($size > 0) {
-        $mod = $size % 4;
-        if ($size >= 4) {
-          $size -= $mod;
-         $ret[] = "<th class=\"tbl\">$offset$plusX</th><td class=\"tbl\" 
colspan=4>$name</td>";
-          $offset += $size;
-        }
-        if ($mod > 0) {
-          $currString = "<th class=\"tbl\">$offset$plusX</th><td class=\"tbl\" 
colspan=$mod>$name</td>";
-          $offset += $mod;        
-        }
-      }
-    }
-    if ($osize == 0)
-      $plusX = "+X";
-  }
-  if ($currString != "")
-    $ret[] = $currString;
-  return $ret;
-}
-
-// See the various protocol*.php3 files for how to use this 
-// one.  Rather complicated :-).  Used to display the layout
-// of a struct when describing protocols.
-function LAYOUT($structName,
-               $fieldArray) {  
-  echo "<center>\n";
-  echo "<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" 
width=\"90%\">\n";
-  echo "<tr><th colspan=5 valign=center><a href=\"doxygen/html/struct" . 
-       str_replace("_", "__", $structName) . ".html\">" . $structName . 
-       "</a></th></tr>";
-  echo "<tr><th rowspan=2 class=\"tbl\">" . W_("Offset") . 
-       "</th><th colspan=4 class=\"tbl\">" . W_("Bit position") . 
-       "</th></tr>\n";
-  echo "<tr><th class=\"tbl\">0-7</th><th class=\"tbl\">8-15</th><th 
class=\"tbl\">16-23</th><th class=\"tbl\">24-31</th></tr>\n";
-  $cnt = 0;
-  foreach($fieldArray as $value) {
-    echo "<tr>" . $value . "</tr>\n";
-    $cnt++;
-  }
-  if ($cnt > 5)
-    echo "<tr><th class=\"tbl\"></th><th class=\"tbl\">0-7</th><th 
class=\"tbl\">8-15</th><th class=\"tbl\">16-23</th><th 
class=\"tbl\">24-31</th></tr>\n";
-  echo "</table>\n";
-  echo "</center>\n";
-}
-
-
-function NBO_() {
-  global $haveNBO;
-  $haveNBO = 1;
-  return "<a href=\"#NBO\">NBO</a>";
-}
-function NBO() {
-  echo NBO_();
-}
-
-?>

Deleted: GNUnet-docs/WWW/scripts.php3
===================================================================
--- GNUnet-docs/WWW/scripts.php3        2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/scripts.php3        2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,6 +0,0 @@
-<?php
-if (! $scripts_once) {
-  $scripts_once = 1;
-  include("scripts.inc");
- }
-?>

Deleted: GNUnet-docs/WWW/search.php
===================================================================
--- GNUnet-docs/WWW/search.php  2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/search.php  2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,6 +0,0 @@
-<?php
-       $sstr = str_replace("+", "%2B", $_POST["words"]);
-       $sstr = str_replace("-", "%3A", $sstr);
-       $sstr = ereg_replace("[[:space:]]+", "+", $sstr);
-       header("Location: http://www.google.de/search?q=site%3Agnunet.org+"; . 
$sstr);
-?>
\ No newline at end of file

Deleted: GNUnet-docs/WWW/smtp.php3
===================================================================
--- GNUnet-docs/WWW/smtp.php3   2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/smtp.php3   2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,216 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet: The SMTP Transport";
-$description="GNUnet - an anonymous distributed backup system :-)";
-include("html_header.php3");
-
-H2("The GNUnet SMTP Transport Layer");
-
-BP();
-W("This page describes the new SMTP transport service for GNUnet.");
-W("It also describes the transport layer in more detail and gives some 
benchmarking results.");
-W("The performance results presented are quite old and maybe outdated at this 
point.");
-EP();
-echo "<ol>\n";
-LIV(extlink_("#why","Why use SMTP for a peer-to-peer transport?"));
-LIV(extlink_("#how","How does it work?"));
-LIV(extlink_("#cfg","How do I configure my peer?"));
-LIV(extlink_("#tst","How do I test if it works?"));
-LIV(extlink_("#perf","How fast is it?"));
-LIV(extlink_("#doc","Is there any additional documentation?"));
-echo "</ol>\n";
-
-ANCHOR("why");H3("Why use SMTP for a peer-to-peer transport?");
-BP();
-W("There are many reasons why one would not want to use SMTP:");
-EP();
-echo "<ul>\n";
-LI("SMTP is using more bandwidth than TCP, UDP or HTTP");
-LI("SMTP has a much higher latency.");
-LI("SMTP requires significantly more computation (encoding and decoding time)
-     for the peers.");
-LI("SMTP is significantly more complicated to configure.");
-LI("SMTP may be abused by tricking GNUnet into sending mail to
-     non-participating third parties.");
-echo "</ul>\n";
-BP();
-W("So why would anybody want to use SMTP?");
-EP();
-echo "<ul>\n";
-LI("SMTP can be used to contact peers behind NAT boxes (in virtual private 
networks).");
-LI("SMTP can be used to circumvent policies that limit or prohibit 
peer-to-peer traffic by masking as &quot;legitimate&quot; traffic.");
-LI("SMTP uses E-mail addresses which are independent of a specific IP, which 
can be useful to address peers that use dynamic IP addresses.");
-LI("SMTP can be used to initiate a connection (e.g. initial address exchange) 
and peers can then negotiate the use of a more efficient protocol (e.g. TCP) 
for the actual communication.");
-echo "</ul>\n";
-
-BP();
-W("In summary, SMTP can for example be used to send a message to a peer behind 
a NAT box that has a dynamic IP to tell the peer to establish a TCP connection 
to a peer outside of the private network.");
-W("Even an extraordinary overhead for this first message would be irrelevant 
in this type of situation.");
-EP();
-
-ANCHOR("how");H3("How does it work?");
-
-BP();
-W("When a GNUnet peer needs to send a message to another GNUnet peer that has 
advertised (only) an SMTP transport address, GNUnet base64-encodes the message 
and sends it in an E-mail to the advertised address.");
-W("The advertisement contains a <em>filter</em> which is placed in the E-mail 
header, such that the receiving host can filter the tagged E-mails and forward 
it to the GNUnet peer process.");
-W("The filter can be specified individually by each peer and be changed over 
time.");
-W("This makes it impossible to censor GNUnet E-mail messages by searching for 
a generic filter.");
-EP();
-
-ANCHOR("cfg");H3("How do I configure my peer?");
-
-BP();
-W("First, you need to configure <tt>procmail</tt> to filter your inbound 
E-mail for GNUnet traffic.");
-W("The GNUnet messages must be delivered into a pipe, for example 
<tt>/tmp/gnunet.smtp</tt>.");
-W("You also need to define a <em>filter</em> that is used by procmail to 
detect GNUnet messages.");
-W("You are free to choose whichever filter you like, but you should make sure 
that it does not occur in your other E-mail.");
-W("In our example, we will use <tt>X-mailer: GNUnet</tt>.");
-W("The <tt>~/.procmailrc</tt> configuration file then looks like this:");
-EP();
-
-PRE(":0:\n" .
-    "* ^X-mailer: GNUnet\n" .
-    "/tmp/gnunet.smtp\n" .
-    "# where do you want your other e-mail delivered to\n" .
-    "# (default: /var/spool/mail/$USER)\n" .
-    ":0:\n" .
-    "/var/spool/mail/$USER\n");
-
-BP();
-W("After adding this file, first make sure that your regular E-mail still 
works (e.g. by sending an E-mail to yourself).");
-W("Then edit the GNUnet configuration.");
-W("In the section <tt>SMTP</tt> you need to specify your E-mail address under 
<tt>EMAIL</tt>, your mail server (for outgoing mail) under <tt>SERVER</tt>, the 
filter (<em>X-mailer: GNUnet</em> in the example) under <tt>FILTER</tt> and the 
name of the pipe under <tt>PIPE</tt>.");
-W("The completed section could then look like this:");
-EP();
-
-PRE("EMAIL = address@hidden" .
-    "MTU = 65000\n" .
-    "SERVER = mail.gnu.org:25\n" .
-    "FILTER = \"X-mailer: GNUnet\"\n" .
-    "PIPE = /tmp/gnunet.smtp");
-    
-BP();
-W("Finally, you need to add <tt>smtp</tt> to the list of <tt>TRANSPORTS</tt> 
in the <tt>GNUNETD</tt> section.");
-W("GNUnet peers will use the E-mail address that you specified to contact your 
peer until the advertisement times out.");
-W("Thus, if you are not sure if everything works properly or if you are not 
planning to be online for a long time, you may want to configure this timeout 
to be short, e.g. just one hour.");
-W("For this, set <tt>HELLOEXPIRES</tt> to <tt>1</tt> in the <tt>GNUNETD</tt> 
section.");
-P();
-W("This should be it, but you may probably want to %s it first.\n",
-  extlink_("#tst","test"));
-
-ANCHOR("tst");H3("How do I test if it works?");
-
-BP();
-W("Any transport can be subjected to some rudimentary tests using the 
<tt>gnunet-transport-check</tt> tool.");
-W("The tool sends a message to the local node via the transport and checks 
that a valid message is received.");
-W("While this test does not involve other peers and can not check if firewalls 
or other network obstacles prohibit proper operation, this is a great testcase 
for the SMTP transport since it tests pretty much nearly all of the 
functionality.");
-P();
-
-W("<tt>gnunet-transport-check</tt> should only be used without running 
<tt>gnunetd</tt> at the same time.");
-W("By default, <tt>gnunet-transport-check</tt> tests all transports that are 
specified in the configuration file.");
-W("But you can specifically test SMTP by giving the option 
<tt>--transport=smtp</tt>.");
-P();
-
-W("Note that this test always checks if a transport can receive and send.");
-W("While you can configure most transports to only receive or only send 
messages, this test will only work if you have configured the transport to send 
and receive messages.");
-
-EP();
-ANCHOR("perf");H3("How fast is it?");
-
-BP();
-W("We have measured the performance of the UDP, TCP and SMTP transport layer 
directly and when used from an application using the GNUnet core.");
-W("Measureing just the transport layer gives the better view of the actual 
overhead of the protocol, whereas evaluating the transport from the application 
puts the overhead into perspective from a practical point of view.");
-P();
-
-W("The loopback measurements of the SMTP transport were performed on three 
different machines spanning a range of modern SMTP configurations.");
-W("We used a PIII-800 running RedHat 7.3 with the <em>Purdue</em> Computer 
Science configuration which includes filters for spam.");
-W("We also used a Xenon 2 GHZ with a vanilla <em>RedHat</em> 8.0 sendmail 
configuration.");
-W("Furthermore, we used qmail on a PIII-1000 running Sorcerer GNU Linux 
(<em>SGL</em>).");
-W("The numbers for UDP and TCP are provided using the SGL configuration.");
-W("The qmail benchmark uses qmail&rsquo;s internal filtering whereas the 
sendmail benchmarks relies on procmail to filter and deliver the mail.");
-W("We used the transport layer to send a message of b bytes (excluding 
transport protocol headers) directly to the local machine.");
-W("This way, network latency and packet loss on the wire have no impact on the 
timings.");
-W("n messages were sent sequentially over the transport layer, sending message 
i+1 after the i-th message was received.");
-W("All messages were sent over the same connection and the time to establish 
the connection was not taken into account since this overhead is miniscule in 
practice -- as long as a connection is used for a significant number of 
messages.");
-EP();
-
-echo "<center>\n";
-?>
-<table border="0" cellspacing="0" cellpadding="0" width="90%">
-       <tr>
-               <th class="tbl"><?php W("Transport"); ?></th>
-               <th class="tbl">UDP</th>
-               <th class="tbl">TCP</th>
-               <th class="tbl">SMTP (Purdue sendmail)</th>
-               <th class="tbl">SMTP (RH 8.0)</th>
-               <th class="tbl">SMTP (SGL qmail)</th>
-       </tr>
-       <tr>
-               <th class="tbl" stlye="text-align: right;">   11 bytes</th>
-               <td class="tbl" stlye="text-align: right;">31 ms</td>
-               <td class="tbl" stlye="text-align: right;">55 ms</td>
-               <td class="tbl" stlye="text-align: right;"> 781 s     </td>
-               <td class="tbl" stlye="text-align: right;">77 s </td>
-               <td class="tbl" stlye="text-align: right;">24 s </td>
-       </tr>
-       <tr>
-               <th class="tbl" stlye="text-align: right;">  407 bytes</th>
-               <td class="tbl" stlye="text-align: right;">37 ms</td>
-               <td class="tbl" stlye="text-align: right;">62 ms</td>
-               <td class="tbl" stlye="text-align: right;"> 789 s     </td>
-               <td class="tbl" stlye="text-align: right;">78 s </td>
-               <td class="tbl" stlye="text-align: right;">25 s </td>
-       </tr>
-       <tr>
-               <th class="tbl" stlye="text-align: right;">1,221 bytes</th>
-               <td class="tbl" stlye="text-align: right;">46 ms</td>
-               <td class="tbl" stlye="text-align: right;">73 ms</td>
-               <td class="tbl" stlye="text-align: right;"> 804 s     </td>
-               <td class="tbl" stlye="text-align: right;">78 s </td>
-               <td class="tbl" stlye="text-align: right;">25 s </td>
-       </tr>
-</table>
-<?php
-
-echo "</center>\n";
-BP();
-
-W("The benchmarks show that UDP and TCP are, as expected, both significantly 
faster compared with any of the SMTP services.");
-W("Among the SMTP implementations, there can be significant differences 
depending on the SMTP configuration.");
-W("Filtering with an external tool like procmail that needs to re-parse its 
configuration for each mail can be very expensive.");
-W("Applying spam filters can also significantly impact the performance of the 
underlying SMTP implementation.");
-W("The microbenchmark showa that SMTP can be a viable solution for initiating 
peer-to-peer sessions: a couple of seconds to connect to a peer are probably 
not even going to be noticed by users.");
-
-W("The next benchmark measures the possible throughput for a transport.");
-W("Throughput can be measured by sending multiple messages in parallel and 
measureing packet loss.");
-W("Note that not only UDP but also the TCP transport can actually loose 
messages since the TCP implementation drops messages if the <tt>write</tt> to 
the socket would block.");
-W("While the SMTP protocol never drops messages itself, it is often so slow 
that only a fraction of the messages can be sent and received in the given 
time-bounds.");
-W("For this benchmark we report the message loss after allowing t time for 
sending m messages.");
-W("If messages were not sent (or received) after an overall timeout of t, they 
were considered lost.");
-W("The benchmark was performed using two Xeon 2 GHZ machiens running RedHat 
8.0 with sendmail.");
-W("The machines were connected with a direct 100 MBit ethernet connection.");
-
-W("Figures %s, %s and %s show that the throughput for messages of size 1,200 
octects is 2,343 kbps, 3,310 kbps and 6 kbps for UDP, TCP and SMTP 
respectively.",
-  ARRAY(extlink_("images/udp_1200.png","udp1200"),
-       extlink_("images/tcp_1200.png","tcp1200"),
-       extlink_("images/smtp_mtus.png","smtp-MTUs")));
-W("The high per-message overhead of SMTP can be improved by increasing the 
MTU, for example, an MTU of 12,000 octets improves the throughput to 13 kbps as 
figure %s shows.",
-  extlink_("images/smtp_mtus.png","smtp-MTUs"));
-W("Our research paper (%s, %s) has some more details on the benchmarking 
results.",
-  ARRAY(extlink_("download/transport.ps","A4"),
-       extlink_("download/transport-us.ps","US-letter")));
-
-EP();
-ANCHOR("doc");H3("Is there any additional documentation?");
-
-BP();
-W("Sure.");
-W("We have the %s from our initial proposal, a research paper (%s, %s) that 
also discusses some security aspects of the design and a concluding %s.",
-  ARRAY(extlink_("download/transport-proposal.ps","slides"),
-       extlink_("download/transport.ps","A4"),
-       extlink_("download/transport-us.ps","US-letter"),
-       extlink_("download/transport-presentation.pdf","presentation")));
-EP();
-
-include("html_footer.php3");
-?>

Deleted: GNUnet-docs/WWW/t-shirt.ps
===================================================================
--- GNUnet-docs/WWW/t-shirt.ps  2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/t-shirt.ps  2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,700 +0,0 @@
-%!PS-Adobe-2.0
-%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software
-%%Title: sss.dvi
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 0 0 596 842
-%%DocumentPaperSizes: a4
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: dvips sss.dvi -o o.ps
-%DVIPSParameters: dpi=600, compressed
-%DVIPSSource:  TeX output 2003.07.19:1007
-%%BeginProcSet: texc.pro
-%!
-/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
-N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
-mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
-0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
-landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
-mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
-matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
-exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
-statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
-N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
-/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
-/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
-array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
-df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
-definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
-}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
-B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
-1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
-1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
-0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
-sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
-rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
-gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
-/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
-/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
-A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
-get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
-ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
-fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
-{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
-chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
-1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
-forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
-/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
-}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
-bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
-mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
-SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
-userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
-1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
-/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
-(LaserWriter 16/600)]{A length product length le{A length product exch 0
-exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
-end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
-grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
-imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
-exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
-fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
-delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
-B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
-p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
-rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
-
-%%EndProcSet
-%%BeginProcSet: special.pro
-%!
-TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N
-/vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N
-/rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N
-/@address@hidden div/hsc X}B/@address@hidden div/vsc X}B/@hsize{
-/hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho
-X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B
-/@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{
-/urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known
-{userdict/md get type/dicttype eq{userdict begin md length 10 add md
-maxlength ge{/md md dup length 20 add dict copy def}if end md begin
-/letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S
-atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{
-itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll
-transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll
-curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf
-pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}
-if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1
--1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3
-get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip
-yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub
-neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{
-noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop
-90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get
-neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr
-1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr
-2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4
--1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S
-TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{
-Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale
-}if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState
-save N userdict maxlength dict begin/magscale true def normalscale
-currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts
-/psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x
-psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx
-psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub
-TR/showpage{}N/erasepage{}N/copypage{}N/p 3 def @MacSetUp}N/doclip{
-psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2
-roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath
-moveto}N/endTexFig{end psf$SavedState restore}N/@beginspecial{SDict
-begin/SpecialSave save N gsave normalscale currentpoint TR
address@hidden count/ocount X/dcount countdictstack N}N/@setspecial{
-CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto
-closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx
-sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR
-}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse
-CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury
-lineto closepath clip}if/showpage{}N/erasepage{}N/copypage{}N newpath}N
-/@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{end}
-repeat grestore SpecialSave restore end}N/@defspecial{SDict begin}N
-/@fedspecial{end}B/li{lineto}B/rl{rlineto}B/rc{rcurveto}B/np{/SaveX
-currentpoint/SaveY X N 1 setlinecap newpath}N/st{stroke SaveX SaveY
-moveto}N/fil{fill SaveX SaveY moveto}N/ellipse{/endangle X/startangle X
-/yrad X/xrad X/savematrix matrix currentmatrix N TR xrad yrad scale 0 0
-1 startangle endangle arc savematrix setmatrix}N end
-
-%%EndProcSet
-TeXDict begin 39158280 55380996 1000 600 600 (sss.dvi)
address@hidden
-%DVIPSBitmapFont: Fa cmss10 14.4 1
-/Fa 1 50 df<EC03801407140F143F14FF1303131F0007B5FCB6FCA413FD13E1EAF80112
-00B3B3B3A5B8FCA7285175D03C>49 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fb cmcsc10 29.86 3
-/Fb 3 118 df[<962607FFF8160F4EB600C04B7E063F15F84DB8153F050F05C0147F053F
-05F014FF94B900FC5B0403DB80077F040F02F0C7393FFF8003043F91C800076D5A93B500
-F80300EBF00F030302E093383FF81F4B0280EE1FFC4B49CA3807FE3F033F01F8716C5A4B
-49050090B5FC92B548844A028084020791CC7E4A49854A49854A49854A49855E91B54885
-494A8649894991CEFC494987A2494987495B8B495B8B90B5FC4B875A5D488AA2485CA248
-1F7FA292D0FC5A203FA2485BA37AC7FC489CC8FCA35CA2B5FCB17EA280982603FFFCED0F
-FE9AB8FC7EA46C7F98C70007EDFC00E3001F14E06C775C6F86785C7E8A6C80A27E817E81
-7F817F817F6D7FA26D7F6D806D807F6E7F826E6D616E7F6E7F6E6D61020114C06E6E606F
-6D606F01FC60030F01FFF07FDF6F6E933801FF8F6F02F05E030002FC041F1307043FD9FF
-8092387FFE03040F02F8913907FFF8010403DAFFC090B5487E040092B700C0137F053F95
-C7123F050F05FC140F050105F06EC7FCDD003F048091C8FC060103F8CBFCDE000749CCFC
->135 133 115 257 159 103 D<B700E04DB46CECFFC07096B7FCA2828282A2D800076E
-DD0007EDF000D9003F6E050015800C3F49C7FC71060F13F871725B71725BA203BF6D725B
-71725B039F7F158F03877F7272C8FC15830381808403808082707F8482707F8470808270
-808582717F717F8583717F8583718071808683727F86727F84727F868472808772808473
-7F8785737F87737F85738088857380747F8886747F88747F8674808986748089757F8775
-7F8987757F1E807514C0877514E01EF0887613F81EFC7613FE887613FF67888888A28989
-A28989894A7E8989A24A6C85496D868A497F496D86011F01FF86017F14C00003B600F885
-B800E0848AA28A8BA201C0C7007F1A3E827F75FE98>110 D<D8FFF8DB7FFC4BB46CECFF
-C090B895B7FCA6D8001F03E0CA0007EDF00001014ACC15806D4A073F49C7FC6E49070F13
-F8785B6E49735BA2785B785BA479C8FCB3B3B3B26E646782A36E515AA2826E1B03676E1B
-0770626E1B0F676E6D191F676F6D183F6F505A7118FF6F6D96C9FC6F4F5A6F6D17036F6D
-4D5A6F6D4D5A6F6DEF3FF0706C4D5A7001C04B485A706D4B5B7001F8030F90CAFC7001FE
-ED7FFE0401D9FFC0903803FFF87002FC013F5B053F90B712C0050F5F05034CCBFCDD007F
-15F8061F15C006014ACCFCDE000F13E0828275FE98>117 D E
-%EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fc cmss10 29.86 6
-/Fc 6 117 df[<93B512C0033FECFF800203B712F8021F16FF91B912C0010318F0011F18
-FC017F18FF90BB7E00031AE0000F864886007F86BC7E876C922680007F158003F0C71203
-92C96C14C06C01FC041F14E002E0826C0180040314F049CA7E01F87114F86C5A01C07213
-FC5B6CCC7E00041BFECD7EA47413FFAB62A21CFEA262A25013FCA297B5FC1CF8614F14F0
-61071F14E0614F14C096B6FC4E15804E15004E5C4E5C634E5C4E5C4E5C95B65A50C7FC4D
-5C4D5C624D5C4D5CA24D5C4D91C8FC614D5BA294B55A615E61615E615E96C9FCA24C5BA2
-605E60A25E60A3605EA260A593B5FC60B3A293CCFCB3A60303B512E0B3A3>88
-175 114 302 117 63 D[<50B512F0087FECFFE00707B8FC073F17F04EBAFC060F19E006
-3F19F895BCFC05031BC0050F1BF0053F1BFC4DF3FF804CBE12C05E160F4C1D804C933880
-003F93B700F0C8FC4B048015074B03FCCAFC4B03F0171F4B03C0050714004B92CB12014B
-02FC727E4B4A191F92B600E019074A4B854A92CE5A4A4A1B7E4D1B1E4A4A1B0E4A4A1B06
-4A4A98C7FC4A5C5F91B6D1FC495CA2495C5E495C5B5E495CA2495CA24991D2FCA290B55A
-A2485CA25D5A5D5AA25D5A5DA35A5DA34891D3FCA5485BA7B55AB3A26C7F99B912F0A66C
-7FA56C80A3816C98C9FCA3817E81A27E817E81A26C80A26D7FA26D80A26D80A26D80827F
-6D80826D80A26D806E80836E806E806E806E80836E806E15C06E816F14F86F806F14FF6F
-15C06F03F05F6F03FC171F6FDBFF804BB6FC6F04F0153F043FDBFF80013FB7FC7093BAFC
-82160382706C1CC0711C00050F1BFC05031BF005001B80063F07FCC7FC060F19E0060196
-C8FCDE003F17F0070794C9FCDF007F15C0080102E0CAFC>132 178
-112 302 165 71 D<EF1FFF4CB512F8040F14FF047F15E04BB712F8030716FE031F824B
-17C092B97E4A844A18FC020F844A845C4A8591B6D8F80181499226C0001F80494AC71207
-04F8020180494A6E6C7F4902C081494A6F7F93C97E4949707F4949824B707F90B5488275
-1380485C4B83481CC04B834891CBFC7513E0485BA24A7213F05AA24A845A1DF84A84A348
-5BA291BCFCA21DFCA2BEFCAA02C0CEFCA66C7FA5807EA3807E80A27E80A26C7FA26C8081
-7E816C6E19106F19306D1BF06F18016D6D18076D6D180F04C0173F6D6E17FF6D6E040313
-F86D02FC160F6D02FF167F05C00203B5FC6D03F0141F6E02FF0107B6FC6E92B8FC800207
-1AF06E1AC06E1A806EF1FE00033F606F18F0030718C0030195C7FC6F6C16F8041F16C004
-034BC8FCDC007F14E0050301F8C9FC5E7678F26E>101 D<F0FFFC051FEBFFE0B500E091
-B612FC040315FF041F16C04C16F093B87E0303834B834B83033F844B8492BA7E14E102E3
-8502E7EC000F04F801008102EF01E0143F91B50080020F8093C812034B6F804B814B825D
-4B707FA24B82A24B82A292CA1580A25C86A25CA35CA65CB3B3B3AF59716DF080>110
-D<F0FFF8051FEBFFC04CB612FC040FEDFF80043F16E093B812F8030317FE030F717E4B84
-037F18F092BA7E4A85020719FF4A864A864ADB800F814A02F8C78191B600C0021F804992
-C80007804902FC0301804C814902E0043F7F494A7080494A708093CA7E49497180494971
-804B8390B548727FA2484A727F4B8448894B84488992CC7E481E804A85A2481EC04A85A2
-481EE0A24A85A2481EF0A44A86A2B51DF8AE6E97B5FCA26C1EF0A46E61A26C1EE0A26E61
-A26C1EC06E61A26C6E4E1480A36C6E4E14006F606C656F606C6E95B55AA26C6E4D5C6D6D
-4D5C6F5F6D6E4C5C705E6D6E4C5C6D02F893B65A6D6E4B92C7FC6D02FF03075C05C0141F
-6D03F891B65A6D9226FF800F5D6E92B85A6E626E62020797C8FC6E616E616E61033F18E0
-030F18806F95C9FC030117FC6F6C16F0040F1680040103FCCAFCDC003F14E0050101FCCB
-FC6D7679F27C>I[<913807FFFEB3AEBC1280AFC7000F49CAFCB3B3B3B082A47115806E17
-0171EC07C01A1F71143F71EB01FF6E6E010713E005FE90B5FC94B7FC1BF080A26E18F8A2
-811BE06F17806FEEFE006F16F06F16C06F4BC7FC6F15E06F6C49C8FC041F1380>77
-145 123 269 90 116 D E
-%EndDVIPSBitmapFont
-end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%BeginPaperSize: a4
-a4
-%%EndPaperSize
-
-%%EndSetup
-%%Page: 1 1
-1 0 bop 250 2571 a @beginspecial 0 @llx 0 @lly 136 @urx
-104 @ury 4080 @rwi @setspecial
-%%BeginDocument: afs.eps
-%!PS-Adobe-3.0 EPSF-3.0
-%%BoundingBox: 0 0 136 104
-%%HiResBoundingBox: 0.000000 0.000000 135.849731 103.306396
-%.........................................
-%%Title GNUnet Anonymous File Sharing Logo
-%%Creator: Alex Jones
-%%CreationDate: 2003/04/21 19:53:24
-%%DocumentData: Clean7Bit
-%%LanguageLevel: 2
-%%EndComments
-%%BeginProlog
-% This copyright applies to everything between here and the %%EndProlog:
-% Copyright (C) 2002 artofcode LLC, Benicia, CA.  All rights reserved.
-%%BeginResource: procset GS_epswrite_2_0_1001
-/GS_epswrite_2_0_1001 80 dict dup begin
-/PageSize 2 array def/setpagesize{ PageSize aload pop 3 index eq exch
-4 index eq and{ pop pop pop}{ PageSize dup  1
-5 -1 roll put 0 4 -1 roll put dup null eq {false} {dup where} ifelse{ exch get 
exec}
-{ pop/setpagedevice where
-{ pop 1 dict dup /PageSize PageSize put setpagedevice}
-{ /setpage where{ pop PageSize aload pop pageparams 3 {exch pop} repeat
-setpage}if}ifelse}ifelse}ifelse} bind def
-/!{bind def}bind def/#{load def}!/N/counttomark #
-/rG{3{3 -1 roll 255 div}repeat setrgbcolor}!/G{255 div setgray}!/K{0 G}!
-/r6{dup 3 -1 roll rG}!/r5{dup 3 1 roll rG}!/r3{dup rG}!
-/w/setlinewidth #/J/setlinecap #
-/j/setlinejoin #/M/setmiterlimit #/d/setdash #/i/setflat #
-/m/moveto #/l/lineto #/c/rcurveto #
-/p{N 2 idiv{N -2 roll rlineto}repeat}!
-/P{N 0 gt{N -2 roll moveto p}if}!
-/h{p closepath}!/H{P closepath}!
-/lx{0 rlineto}!/ly{0 exch rlineto}!/v{0 0 6 2 roll c}!/y{2 copy c}!
-/re{4 -2 roll m exch dup lx exch ly neg lx h}!
-/^{3 index neg 3 index neg}!
-/f{P fill}!/f*{P eofill}!/s{H stroke}!/S{P stroke}!
-/q/gsave #/Q/grestore #/rf{re fill}!
-/Y{P clip newpath}!/Y*{P eoclip newpath}!/rY{re Y}!
-/|={pop exch 4 1 roll 3 array astore cvx exch 1 index def exec}!
-/|{exch string readstring |=}!
-/+{dup type/nametype eq{2 index 7 add -3 bitshift 2 index mul}if}!
-/@/currentfile #/${+ @ |}!
-/B{{2 copy string{readstring pop}aload pop 4 array astore cvx
-3 1 roll}repeat pop pop true}!
-/Ix{[1 0 0 1 11 -2 roll exch neg exch neg]exch}!
-/,{true exch Ix imagemask}!/If{false exch Ix imagemask}!/I{exch Ix image}!
-/Ic{exch Ix false 3 colorimage}!
-/F{/Columns counttomark 3 add -2 roll/Rows exch/K -1/BlackIs1 true>>
-/CCITTFaxDecode filter}!/FX{<</EndOfBlock false F}!
-/X{/ASCII85Decode filter}!/@X{@ X}!/&2{2 index 2 index}!
-/@F{@ &2<<F}!/@address@hidden &2 FX}!
-/$X{+ @X |}!/&4{4 index 4 index}!/$F{+ @ &4<<F |}!/$C{+ @X &4 FX |}!
-/IC{3 1 roll 10 dict begin 1{/ImageType/Interpolate/Decode/DataSource
-/ImageMatrix/BitsPerComponent/Height/Width}{exch def}forall
-currentdict end image}!
-/~{@ read {pop} if}!
-end readonly def
-%%EndResource
-/pagesave null def
-%%EndProlog
-%%Page: 1 1
-%%BeginPageSetup
-GS_epswrite_2_0_1001 begin
-/pagesave save store 100 dict begin
-0.1 0.1 scale
-%%EndPageSetup
-gsave mark
-K
-0 0 0 0 rf
-Q q
-0 0 250000 0 0 250000 ^ Y
-255 G
-900 304 m
-1 0 2 0 3 0 c
-0 -1 0 -2 y
-0 0 0 -1 v
-1 -1 0 -3 -2 -4 c
-0 -1 0 -3 -1 -5 c
-0 -1 0 -1 -1 -2 c
-0 -1 -1 -2 -1 -4 c
--1 0 -2 -1 -2 -2 c
--1 -1 -1 -1 y
-0 -1 -1 -2 -1 -4 c
-1 0 2 0 v
-1 2 2 5 3 7 c
-3 8 5 15 8 23 c
--4 -1 -8 -2 -12 -5 c
--9 -4 -18 -8 -26 -12 c
--1 -1 p
--1 0 -2 -1 v
-0 -1 0 -2 0 -4 c
--1 -2 -1 -5 -1 -7 c
-1 0 2 1 y
--1 3 -2 5 -1 6 c
-1 1 1 2 2 2 c
-2 1 3 1 4 1 c
-1 3 3 4 7 5 c
-3 0 5 2 8 4 c
-1 1 2 2 3 3 c
-2 0 3 -1 4 -1 c
-1 1 1 2 2 2 c
-1 1 1 1 1 2 c
-1 0 2 0 y
-1 0 1 0 y
-f
-923 306 m
-2 0 3 -1 3 -2 c
-3 -4 4 -8 5 -13 c
-1 -2 1 -6 0 -11 c
-1 -4 1 -9 -2 -16 c
--1 -1 -1 -2 -2 -3 c
-0 0 0 -1 v
-0 0 0 -1 v
--1 0 -1 0 0 0 c
-0 -1 1 -3 1 -5 c
--1 -3 -2 -5 -3 -7 c
--1 0 -1 -1 -1 -2 c
--1 0 -1 -1 y
-0 -4 -1 -8 -2 -12 c
-0 1 p
-0 1 0 1 1 1 c
-1 0 2 -1 v
-1 5 2 10 4 15 c
-1 6 2 12 4 17 c
-6 37 -2 52 -25 44 c
--3 -8 -5 -15 -8 -23 c
--1 -2 -2 -5 -3 -7 c
-1 -1 2 -1 4 -2 c
-0 2 1 4 1 6 c
-0 3 1 6 3 9 c
-0 1 0 2 1 3 c
-0 1 0 2 0 3 c
-2 3 3 5 5 8 c
-0 0 1 0 v
-0 1 0 1 y
-1 0 2 0 3 0 c
-3 0 6 -1 9 -1 c
-f
-866 286 m
-0 2 0 3 0 4 c
--1 0 -2 -1 -4 -1 c
-1 -1 1 -2 1 -3 c
-1 -2 1 -5 2 -7 c
-0 2 0 5 1 7 c
-f
-907 203 m
--1 -1 -2 -3 -2 -5 c
--1 -1 -1 -2 -2 -2 c
--1 -7 -5 -12 -11 -15 c
--1 0 -1 -2 -2 -3 c
--2 -4 -5 -8 -8 -11 c
-1 0 1 -1 v
-10 10 18 21 26 34 c
-1 2 2 4 4 7 c
-1 3 2 6 4 9 c
--2 0 -2 1 -2 2 c
--3 -5 -5 -10 -8 -15 c
-f
-870 154 m
-1 0 2 1 2 2 c
-0 0 0 1 v
--1 0 -1 1 y
--1 -1 -2 -2 -4 -3 c
--1 0 -2 -1 -3 -3 c
-1 0 2 0 2 1 c
-2 0 3 0 4 1 c
-f
-851 139 m
-0 1 0 2 1 3 c
-0 1 1 1 1 2 c
--1 0 p
-0 -1 -1 -2 -3 -3 c
--3 -2 -6 -4 -10 -5 c
--3 -4 -7 -7 -12 -8 c
--2 -1 -5 -3 -7 -5 c
--5 -3 -9 -4 -14 -3 c
--7 -5 -14 -9 -23 -13 c
-1 0 p
-10 4 21 8 31 13 c
-3 1 7 3 11 5 c
-1 0 2 1 3 1 c
-5 3 10 6 15 9 c
-2 1 5 3 7 4 c
-f
-873 154 m
-0 0 1 0 v
--1 1 -1 1 y
-0 0 0 -1 v
-f
-12.5 w
-3.86371 M
-1 J
-1 j
-K
-1082 619 m
--1 -1 -2 -2 v
--4 -3 -9 -7 -15 -11 c
--13 -4 p
--7 0 -14 0 -19 2 c
--19 4 -35 13 -50 28 c
--18 16 -33 33 -46 53 c
--8 10 -14 21 -18 32 c
--4 10 -6 23 -6 37 c
-0 5 1 8 2 11 c
-1 2 2 4 4 6 c
-6 7 13 13 20 19 c
-3 3 6 6 9 8 c
-S
-452 801 m
--7 5 -15 9 -22 13 c
--5 2 -10 4 -16 7 c
--7 2 -13 4 -18 5 c
--6 2 -12 3 -18 4 c
--12 1 -25 2 -39 1 c
--38 -4 p
--24 -4 -45 -9 -63 -16 c
--2 -1 -5 -2 -8 -4 c
--12 -6 -25 -13 -37 -18 c
--9 -4 -16 -7 -24 -11 c
--24 -8 p
--10 -4 -21 -7 -32 -10 c
--18 -5 -31 -1 -40 10 c
--6 6 -10 14 -12 25 c
--1 5 -2 9 -3 13 c
--1 8 -2 15 -3 22 c
--1 20 0 40 3 61 c
-1 5 2 11 3 16 c
-1 5 2 9 4 14 c
-10 33 22 68 38 104 c
--17 -21 -32 -44 -45 -71 c
--4 -9 -8 -18 -12 -28 c
--2 -5 -4 -10 -6 -16 c
--2 -4 -3 -9 -5 -15 c
--2 -7 -5 -15 -7 -22 c
--2 -7 -4 -14 -5 -22 c
--2 -7 -3 -14 -4 -21 c
--3 -21 -4 -41 -2 -60 c
-1 -11 3 -21 6 -32 c
-2 -11 6 -23 10 -33 c
-1 -2 1 -4 2 -5 c
-5 -15 14 -27 23 -37 c
-4 -3 7 -6 11 -9 c
-24 -11 50 -10 74 4 c
-16 9 32 15 50 18 c
-7 2 15 3 24 3 c
-1 0 2 0 v
-1 0 3 0 5 0 c
-6 -1 13 -2 18 -5 c
-6 -3 11 -6 17 -9 c
-6 -2 11 -5 14 -8 c
-2 -2 4 -3 7 -5 c
-2 -2 5 -4 7 -7 c
-14 -16 p
-3 -4 7 -8 10 -12 c
-S
-452 801 m
-11 0 21 3 29 10 c
-11 7 22 13 31 18 c
-4 3 9 5 16 8 c
-48 25 100 39 157 41 c
-18 0 p
-14 1 28 1 41 0 c
-12 -1 25 -3 40 -4 c
-33 -7 65 -18 95 -36 c
-1 0 2 -1 3 -1 c
-10 -5 19 -11 27 -17 c
-5 -4 10 -7 15 -10 c
-6 -5 14 -9 24 -12 c
-S
-328 605 m
-6 -2 12 -3 18 -4 c
-3 0 5 0 8 0 c
-2 0 4 0 7 1 c
-1 0 2 0 4 0 c
-20 4 38 14 55 29 c
-16 13 29 27 42 41 c
-17 26 p
-6 10 11 21 14 32 c
-1 5 2 10 3 15 c
-0 2 0 4 0 5 c
-0 5 0 10 -1 14 c
--2 1 -4 4 -5 6 c
--2 2 -4 4 -6 6 c
--2 1 -4 3 -5 4 c
--2 2 -3 3 -5 4 c
-S
-474 784 m
--1 2 -3 4 -6 5 c
-0 0 p S
-468 789 m
--6 5 -11 8 -16 12 c
-S
-474 784 m
--2 2 -4 4 -6 5 c
-S
-418 516 m
-1 -1 2 -1 y
-3 -1 6 -3 8 -4 c
-5 -3 10 -6 14 -10 c
-5 -3 9 -8 13 -13 c
-6 0 12 -1 19 -1 c
-157 1 p
-1 3 2 5 4 7 c
-4 10 4 17 0 23 c
--2 2 -3 3 -4 4 c
--10 9 -30 13 -60 14 c
--23 1 -46 0 -68 -3 c
--21 -2 -41 -5 -61 -11 c
--5 -1 -9 -2 -14 -3 c
--3 -1 -5 -2 -8 -3 c
--1 0 -1 0 -2 0 c
-h
-S
-311 617 m
-1 0 2 -1 2 -2 c
-4 -3 8 -6 13 -9 c
-S
-1082 619 0 -195 P
-0 -34 -4 -66 -11 -98 c
-0 -1 0 -2 v
--9 -40 -24 -77 -43 -112 c
--3 -4 -5 -8 -7 -12 c
--2 -3 -4 -6 -5 -9 c
--3 -4 -6 -9 -9 -13 c
--5 -7 -10 -14 -16 -21 c
--1 -2 -2 -3 -3 -4 c
--18 -21 p
--12 -14 -25 -26 -38 -38 c
--17 -14 -35 -26 -53 -37 c
--5 -2 -9 -4 -13 -7 c
--34 -16 -70 -27 -108 -31 c
--4 0 -9 0 -13 -1 c
--46 -2 p
--5 0 -11 0 -16 1 c
--50 2 -95 13 -138 33 c
--43 21 -83 50 -119 89 c
--52 55 -87 117 -103 187 c
--8 31 -11 63 -12 97 c
-0 194 p S
-948 798 m
-9 8 17 13 26 17 c
-4 2 9 4 14 7 c
-6 3 12 5 17 6 c
-5 1 10 2 16 3 c
-11 1 22 2 33 1 c
-1 0 3 0 4 0 c
-28 -3 p
-1 0 2 0 3 0 c
-23 -4 43 -10 60 -17 c
-3 -1 5 -2 7 -4 c
-12 -6 23 -12 35 -18 c
-7 -4 14 -7 21 -10 c
-18 -8 p
-11 -3 23 -7 34 -10 c
-10 -3 18 -3 25 0 c
-11 4 18 16 22 35 c
-7 32 8 64 3 95 c
--1 6 -2 12 -3 17 c
--1 5 -3 9 -3 13 c
--6 19 -12 39 -19 60 c
--5 14 -10 29 -16 44 c
-6 -7 10 -15 16 -23 c
-14 -22 26 -47 36 -75 c
-2 -6 3 -11 5 -16 c
-2 -5 3 -10 5 -15 c
-3 -8 5 -15 7 -23 c
-1 -7 3 -14 5 -22 c
-7 -39 7 -76 0 -112 c
--3 -12 -6 -23 -10 -34 c
--1 -1 -1 -3 -2 -5 c
--7 -21 -18 -36 -32 -46 c
--5 -2 -10 -4 -14 -5 c
--18 -5 -35 -2 -53 10 c
--14 9 -29 15 -45 18 c
--8 1 -15 2 -22 2 c
--6 0 -12 -2 -18 -3 c
--7 -2 -12 -4 -17 -7 c
--5 -2 -9 -5 -13 -8 c
--2 -2 -4 -4 -7 -7 c
--21 -22 p
--3 -3 -5 -6 -7 -10 c
--2 -2 -3 -3 -4 -4 c
-S
-825 535 m
-43 2 84 -3 124 -14 c
-7 -1 15 -4 22 -6 c
--8 -4 -16 -8 -22 -14 c
--5 -4 -9 -8 -13 -14 c
--6 0 -12 -1 -18 -2 c
--149 2 p
--19 31 0 47 56 48 c
-h
-S
-620 235 m
--3 -2 -6 -5 -9 -9 c
--2 -3 -4 -7 -6 -12 c
-0 -1 -1 -4 -1 -6 c
-0 -3 1 -6 1 -9 c
-4 -11 11 -21 23 -32 c
-6 -5 12 -10 17 -15 c
-10 -7 20 -14 31 -20 c
-2 -1 4 -2 7 -4 c
-6 -3 12 -6 19 -9 c
-10 -5 19 -9 29 -12 c
-12 -3 24 -4 38 -3 c
-14 3 p S
-866 290 m
--1 0 -2 -1 -4 -1 c
--2 -1 -4 -2 -5 -3 c
--11 -4 -21 -7 -31 -11 c
--6 -2 -12 -4 -17 -5 c
--10 -3 -20 -5 -31 -8 c
-0 0 p
--2 0 -4 -1 -6 -1 c
--5 -1 -10 -2 -15 -3 c
--10 -1 -20 -3 -29 -4 c
--4 -1 -7 -1 -10 -1 c
--6 -1 -11 -2 -16 -2 c
--2 0 -4 0 -5 -1 c
--3 0 -5 0 -7 0 c
--1 0 -2 0 -3 -1 c
--2 0 -3 0 -4 0 c
--3 0 -5 0 -7 0 c
--2 -1 -6 -1 -8 -1 c
-0 0 -1 0 v
-S
-667 248 m
--2 0 -3 0 -5 0 c
--18 -1 -32 -6 -42 -13 c
-S
-907 309 m
--3 -8 -5 -15 -8 -23 c
--1 -2 -2 -5 -3 -7 c
--11 -22 -24 -41 -41 -55 c
--2 -2 -4 -3 -5 -5 c
-0 2 1 3 1 5 c
-5 14 10 33 14 55 c
-S
-866 290 m
-1 1 2 1 y
-1 1 p
-8 4 17 8 26 12 c
-4 3 8 4 12 5 c
-S
-865 279 m
-0 2 0 5 1 7 c
-0 2 0 3 0 4 c
-S
-907 309 m
-23 8 31 -7 25 -44 c
--2 -5 -3 -11 -4 -17 c
--2 -5 -3 -10 -4 -15 c
--7 -17 p
--2 -3 -3 -6 -4 -9 c
--2 -3 -3 -5 -4 -7 c
--8 -13 -16 -24 -26 -34 c
--11 -10 p
-0 -1 -1 -2 -2 -2 c
--19 -15 p
--2 -1 -5 -3 -7 -4 c
--5 -3 -10 -6 -15 -9 c
--1 0 -2 -1 -3 -1 c
--4 -2 -8 -4 -11 -5 c
--10 -5 -21 -9 -31 -13 c
-S
-667 248 m
--8 -38 -5 -63 8 -74 c
--27 12 -45 33 -55 61 c
-S
-cleartomark end end pagesave restore showpage
-%%PageTrailer
-%%Trailer
-%%Pages: 1
-
-%%EndDocument
- @endspecial 1265 3036 a Fc(Got)83 b Fb(gnu)p Fc(net?)3930
-5670 y Fa(1)p eop
-%%Trailer
-end
-userdict /end-hook known{end-hook}if
-%%EOF

Deleted: GNUnet-docs/WWW/todo
===================================================================
--- GNUnet-docs/WWW/todo        2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/todo        2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,7 +0,0 @@
-NEW content to be written:
-1) P2P tbench
-2) CS tbench, tracekit
-3) Internal Service APIs (stats, identity, pingpong, rpc, traffic, transport, 
dht)
-4) application library APIs (fs, ecrs, fsui, getoption, stats, traffic, dht)
-5) gtk plugins and gtkcommon API
-

Deleted: GNUnet-docs/WWW/user.php3
===================================================================
--- GNUnet-docs/WWW/user.php3   2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/user.php3   2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,24 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet Documentation: Using GNUnet";
-$description="Information for users (overview)";
-include("html_header.php3");
-
-H2("End-User Documentation");
-BP();
-W("GNUnet is a framework for peer-to-peer networking.");
-W("This means that based on a common codebase, GNUnet will be able to run a 
diverse set of applications.");
-W("The only useful application at the moment is %s.",
-  intlink_("user_afs.php3","anonymous file sharing"));
-W("In order to use any GNUnet application, a user must first install the 
software, then do some basic configuration of the framework and finally 
configure the specific application itself.");
-W("The configuration of the framework involves setting up the network and the 
specification which applications should be used.");
-P();
-
-W("The following pages describe first how to compile and configure GNUnet and 
then detail how to configure and use applications built with GNUnet.");
-EP();
-
-include("user_index.inc");
-
-P();
-include("html_footer.php3");
-?>

Deleted: GNUnet-docs/WWW/user_afs.php3
===================================================================
--- GNUnet-docs/WWW/user_afs.php3       2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/user_afs.php3       2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,579 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet Documentation: Using GNUnet for File Sharing";
-$description="Configuring and using GNUnet for (anonymous) file sharing";
-include("html_header.php3");
-H2("File Sharing with GNUnet");
-
-afslogo();
-echo "<ul>\n";
-LILI("#concepts","Concepts");
-echo "<ul>\n";
-LILI("#files","Files");
-LILI("#keywords","Keywords");
-LILI("#directories","Directories");
-LILI("#namespaces","Namespaces");
-LILI("#advertisements","Advertisements");
-LILI("#collections","Collections");
-LILI("#example","Example");
-echo "</ul>\n";
-LILI("#configuration","Configuration"); 
-echo "<ul>\n";
-LILI("#mysql","Setting up the mysql database");
-echo "</ul>\n";
-LILI("#afscommands","Shell Commands for File Sharing"); 
-echo "<ul>\n";
-LILI("#gnunetautoshare","gnunet-auto-share");
-LILI("#gnunetinsert","gnunet-insert");
-LILI("#gnunetsearch","gnunet-search");
-LILI("#gnunetdownload","gnunet-download");
-LILI("#gnunetunindex","gnunet-unindex");
-LILI("#gnunetdirectory","gnunet-directory");
-LILI("#gnunetpseudonym","gnunet-pseudonym");
-echo "</ul>\n";
-LILI("gnunetgtk.php3","gnunet-gtk");
-echo "</ul>\n";
-
-ANCHOR("concepts"); H3("Concepts");
-
-BP();
-W("Sharing files in GNUnet is not quite as simple as in traditional file 
sharing systems.");
-W("For example, it is not sufficient to just place files into a specific 
directory to share them.");
-W("In addition to anonymous routing GNUnet attempts to give users a better 
experience in searching for content.");
-W("GNUnet uses cryptography to safely break content into smaller pieces that 
can be obtained from different sources without allowing participants to corrupt 
files.");
-W("GNUnet makes it difficult for an adversary to send back bogus search 
results.");
-W("GNUnet enables content providers to group related content and to establish 
a reputation.");
-W("Furthermore, GNUnet allows updates to certain content to be made 
available.");
-W("This section is supposed to introduce users to the concepts that are used 
to achive this goals.");
-EP();
-
-ANCHOR("files"); H4("Files");
-BP();
-W("A file in GNUnet is just a sequence of bytes.");
-W("Any file-format is allowed and the maximum file size is theoretically 
2<sup>64</sup> bytes, except that it would take an impractical amount of time 
to share such a file.");
-W("GNUnet itself never interprets the contents of shared files, except when 
using %s to obtain keywords.",
-  intlink_("/libextractor/index.php", "libextractor"));
-EP();
-
-ANCHOR("keywords"); H4("Keywords");
-BP();
-W("Keywords are the most simple mechanism to find files on GNUnet.");
-W("Keywords are case-sensitive and the search string must always match exactly 
the keyword used by the person providing the file.");
-W("Keywords are never transmitted in plaintext, for details see the %s paper.",
-  extlink_("download/ecrs.ps", "ECRS"));
-W("Since providing keywords by hand for each shared file is tedious, GNUnet 
uses %s to help automate this process.",
-  intlink_("/libextractor/index.php", "libextractor"));
-W("Starting a keyword search on a slow machine can take a while since the 
keyword search involves computing a fresh RSA key to fomulate the request.");
-EP();
-
-ANCHOR("directories"); H4("Directories");
-BP();
-W("A directory in GNUnet is a list of file identifiers with meta-data.");
-W("The file identifiers provide sufficient information about the files to 
allow downloading the contents.");
-W("Once a directory has been created, it cannot be changed since it is treated 
just like an ordinary file by the network.");
-EP();
-
-ANCHOR("namespaces"); H4("Namespaces");
-BP();
-W("A namespace is a set of files that were signed by the same pseudonym.");
-W("A pseudonym is essentially a public-private RSA key.");
-W("Note that a pseudonym is NOT bound to a GNUnet peer.");
-W("There can be multiple pseudonyms for a single user, and users could share 
pseudonym keys (out-of-band).");
-W("Files (or directories) that have been signed and placed into a namespace 
can be updated.");
-W("Updates are identified as authentic if the same secret key was used to sign 
the update.");
-W("Namespaces are also useful to establish a reputation, since all of the 
content in the namespace comes from the same entity (which does not have to be 
the same person).");
-EP();
-
-ANCHOR("advertisements"); H4("Advertisements");
-BP();
-W("Advertisements are used to notify other users about the existence of a 
namespace.");
-W("Advertisements are propagated using the normal keyword search.");
-W("When an advertisement is received (in response to a search), it is NOT 
displayed immediately.");
-W("Instead, the namespace is added to the list of namespaces available in the 
namespace-search dialogs of <tt>gnunet-gtk</tt> and printed by 
<tt>gnunet-pseudonym</tt>.");
-W("Whenever a namespace is created, an appropriate advertisement can be 
generated.");
-W("The default keyword for the advertising of namespaces is 
<tt>namespace</tt>.");
-EP();
-
-ANCHOR("collections"); H4("Collections");
-
-BP();
-W("A collection is an automatically managed namespace.");
-W("The root of the namespace points to a directory with all of the files 
inserted by the user since the collection was initiated.");
-W("The root is updated upon request to reflect files published since the last 
update.");
-W("The construction of the directory and the update of the namespace are done 
automatically by GNUnet on each insertion and does not require work from the 
user.");
-W("Collections are advertised under the keyword <tt>collection</tt>.");
-EP();
-
-ANCHOR("example"); H4("Example");
-
-BP();
-W("Here is how to start a collection:");
-EP();
-PRE("$ gnunet-pseudonym -a -C NICKNAME -D DESCRIPTION -r AUTHORNAME\n" .
-    "$ gnunet-insert FILENAME\n" .
-    "$ gnunet-search collection\n" .
-    "$ gnunet-gtk");
-BP();
-W("In <tt>gnunet-gtk</tt> select <tt>Advanced-Search Namespace</tt>.");
-W("In the dialog, select the NICKNAME from the list of namespace 
identifiers.");
-W("The search key identifier will be filled out automatically to point to the 
root of the namespace.");
-W("The search should yield a directory which contains the file FILENAME.");
-W("After inserting additional files, additional directories with more files 
will show up in the search.");
-W("To stop the collection, use");
-EP();
-PRE("$ gnunet-pseudonym -E");
-BP();
-W("Note that the UI may not always be very pretty for collections since this 
is a new feature.");
-EP();
-
-ANCHOR("configuration");H3("File-sharing options in gnunet.conf");
-
-BP();
-W("This section describes the options in gnunet.conf that relate to anonymous 
file sharing.");
-W("Most options are in the configuration file for the gnunetd daemon, the 
others are specfically marked as client options.");
-EP();
-
-ANCHOR("gnunet.conf.diskquota");H4("FS: QUOTA");
-
-BP();
-W("Use this option to specify how much space GNUnet is allowed to use on the 
drive.");
-W("This does not include indexed files.");
-W("The value is specified in MB, the default is 1024.");
-W("Note that whenever you change this value, GNUnet may have to reorganize the 
database, which can take quite some time on the next start (obviously depending 
on the previous size of the database).");
-P();
-
-W("Large amounts of storage space may also have some impact on memory use, a 
typical value is around 250 kb memory per gigabyte of storage space.");
-W("Note that indexing files (instead of inserting, indexing is the default, 
insertion can be enforced with the <tt>-n</tt> switch) is much cheaper; the 
files will cause less memory usage, use less space in the database and the 
operation will be faster.");
-
-
-EP();
-ANCHOR("gnunet.conf.indexdirectory"); H4("FS: INDEX-DIRECTORY");
-
-BP();
-W("This option specifies the name of the directory where indexed files are 
either copied to or symlinked from.");
-W("When a file is indexed with the option <tt>-l</tt> and if <tt>gnunetd</tt> 
and the inserting process run on the same machine, then a symbolic link is 
created from the index-directory to that file.");
-W("Without the <tt>-l</tt> option or if <tt>gnunetd</tt> runs on a different 
machine, a copy of the file is made instead.");
-W("Note that the indexing process does a lot more than just this, thus moving 
files over to the index directory by hand will NOT share these files.");
-EP();
-
-ANCHOR("gnunet.conf.activemigration");H4("FS: ACTIVEMIGRATION");
-
-BP();
-W("Setting this option to <tt>YES</tt> allows <tt>gnunetd</tt> to migrate data 
to the local machine.");
-W("Setting this option to <tt>YES</tt> is highly recommended for efficiency.");
-W("Its also the default.");
-W("If you set this value to YES, GNUnet will store content on your machine 
that you cannot decrypt.");
-W("While this may protect you from liability if the judge is sane, it may not 
(IANAL).");
-W("If you put illegal content on your machine yourself, setting this option to 
YES will probably increase your chances to get away with it since you can 
plausibly deny that you inserted the content.");
-W("Note that in either case, your anonymity would have to be broken first 
(which may be possible depending on the size of the GNUnet network and the 
strength of the adversary).");
-
-EP();
-ANCHOR("gnunet.conf.extractors");H4("FS: EXTRACTORS");
-
-BP();
-W("This is a client option respected by <tt>gnunet-insert</tt> and 
<tt>gnunet-gtk</tt>.");
-W("This option specifies which additional extractors <tt>gnunet-insert</tt> 
should use for keyword extraction.");
-W("The default set of extractors from your local libextractor installation is 
always used.");
-W("Typically, an extractor for splitting keywords at word boundaries is added 
here.");
-
-EP();
-ANCHOR("gnunet.conf.databasetype");H4("MODULES: sqstore");
-
-BP();
-W("Which database type should be used for content?");
-W("Valid types are &quot;sqstore_sqlite&quot; and &quot;sqstore_mysql&quot;.");
-W("The libraries and header files for the specified type must have been 
available at compile time.");
-W("If the type is changed, you must stop <tt>gnunetd</tt> and run 
<tt>gnunet-update</tt> to convert the database.");
-P();
-W("The <tt>mysql</tt> module requires manual setup, described %s.",
-  extlink_("#mysql","here"));
-W("The sqlite databases only requires the installation of the respective 
database (with header files) before running configure.");
-EP();
-
-ANCHOR("mysql");H4("Setting up the mysql database");
-
-BP();
-W("MySQL 4.1 is required since GNUnet uses prepared statements.");
-W("First, here are some performance numbers comparing MySQL and SQlite:");
-?>
-<center>
-<table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <th class="tbl">DB</th>
- <th class="tbl">MySQL 4</th>
- <th class="tbl">MySQL 5</th>
- <th class="tbl">SQlite</th>
- </tr>
- <tr>
- <th class="tbl">1.6 GHZ AMD 64<br>
-     GNU/Linux, gcc 3.3.5<br>
-     IO: 53.67 MB/sec</th>
- <td class="tbl">Upload: 615 MB, 350s (1714 kbps)<br>
-        <br>
- </td>
- <td class="tbl">&nbsp;</td>
- <td class="tbl">Upload: 615 MB, 424s (1414 kbps)<br>
-        <br>
- </td>
- </tr>
- <tr>
-       <th class="tbl">
-               3 GHZ Pentium 4<br>
-               Windows XP, gcc 3.4.2<br>
-       </th>
-       <td class="tbl">
-               Upload: 615 MB, 6062s (99 kbps)
-       </td>
-       <td class="tbl">
-               Upload: 615 MB, 1388s (433 kbps)
-       </td>
-       <td class="tbl">
-               Upload: 615 MB, 517s (1162 kbps)
-       </td>
- </tr>
-</table>
-</center>
-<?php
-EP();
-H5("Highlights");
-BP();
-W("Pros:");
-EP();
-echo "<ul>";
-LI("On up-to-date hardware where mysql can be used comfortably, the overall 
performance is fairly good (according to our tests).");
-LI("It is often possible to recover the mysql database from internal 
inconsistencies.");
-echo "</ul>";
-BP();
-W("Cons:");
-EP();
-echo "<ul>";
-LI("Memory usage");
-LI("Manual setup");
-echo "</ul>";
-
-H5("Setup Instructions");
-
-BP();
-W("First, you must have mysql including the development files (headers) 
installed on the system when you configure GNUnet.");
-W("Not all binary distributions contain the mysql module, so you may also have 
to compile GNUnet by hand.");
-W("After you have mysql installed and GNUnet compiled with mysql support, do 
the following:");
-EP();
-echo "<ol><li>";
-BP();
-W("In /etc/gnunetd.conf, set");
-EP();
-PRE("sqstore = sqstore_mysql");
-echo "</li><li>";
-BP();
-W("Then access mysql as root (root of the database, not of the system):");
-EP();
-PRE("$ mysql -u root -p ");
-BP();
-W("and do the following.");
-W("[You should replace \$USER with the username that will be running the 
gnunetd process].");
-EP();
-PRE("CREATE DATABASE gnunet;\n" .
-    "GRANT select,insert,update,delete,create,alter,drop,create temporary 
tables ON gnunet.* TO address@hidden;\n" .
-    "SET PASSWORD FOR address@hidden(\"\$the_password_you_like\");\n" .
-    "FLUSH PRIVILEGES;");
-echo "</li><li>";
-BP();
-W("In the \$HOME directory of \$USER, create a &quot;.my.cnf&quot; file with 
the following lines:");
-EP();
-PRE("[client]\n" .
-    "user=\$USER\n" .
-    "password=\$the_password_you_like");
-BP();
-W("Note that .my.cnf file is a security risk since it exposes the password.");
-W("You may want to keep the file in a place where it is not easily accessed.");
-W("The \$HOME/.my.cnf can be a symbolic link.");
-W("It is also possible not to use any password if database security is no 
concern.");
-W("Note that $USER has only priviledges to mess up GNUnet&prime;s tables, 
nothing else (unless you give him more, of course).");
-EP();
-echo "</li><li>";
-BP();
-W("Finally, you may want to briefly try if the DB connection works.");
-W("First, login as \$USER.");
-W("Then use:");
-EP();
-PRE("# mysql -u \$USER -p\n" .
-    "mysql> use gnunet;");
-BP();
-W("If you get the message &quot;Database changed&quot; it probably works.");
-W("If you get &quot;ERROR 2002: Can&prime;t connect to local MySQL server 
through socket &prime;/tmp/mysql.sock&prime; (2)&quot; it may be resolvable by 
&quot;ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock&quot;");
-W("So there may be some additional trouble depending on your mysql setup.");
-W("Finally, after changing the configuration, you need to run 
<tt>gnunet-update</tt>.");
-echo "</li></ol>";
-EP();
-
-H5("REPAIRING TABLES");
-
-BP();
-W("Its probably healthy to check your tables for inconsistencies every now and 
then.");
-W("If you get odd SEGVs on gnunetd startup, it might be that the mysql 
databases have been corrupted.");
-P();
-W("The tables can be verified or fixed in the following ways:");
-EP();
-echo "<ol><li>";
-BP();
-W("by shutting down mysqld (mandatory!) and running");
-EP();
-PRE("# myisamchk -r *.MYI");
-BP();
-W("in /var/lib/mysql/gnunet/ (or wherever the tables are stored).");
-EP();
-echo "</li><li>";
-BP();
-W("Another repair command is <tt>mysqlcheck</tt>.");
-W("The usable command may depend on your mysql build/version.");
-EP();
-echo "</li><li>";
-BP();
-W("by executing ");
-EP();
-PRE("mysql> REPAIR TABLE gnXXXX");
-BP();
-W("for each table in the gnunet database (USE gnunet; SHOW TABLES;)");
-EP();
-echo "</li></ol>";
-BP();
-W("If you have problems related to the mysql module, your best friend is 
probably the mysql manual.");
-W("The first thing to check is that mysql is basically operational, that you 
can connect to it, create tables, issue queries and so on.");
-EP();
-HR();
-
-
-
-
-ANCHOR("commands");H3("Commands for File Sharing");
-
-afslogo();
-BP();
-W("The only useful application that is currently available for GNUnet is 
anonymous file-sharing.");
-W("The GUI interface is described %s.",
-  extlink_("#GUI","here"));
-W("For shell-gurus, five shell commands provide the interface:");
-EP();
-
-ANCHOR("gnunetautoshare");H4("gnunet-auto-share");
-BP();
-W("<tt>gnunet-auto-share</tt> can be used to &quot;automatically&quot; share 
all of the files in a given directory.");
-W("The basic format of the command is");
-EP();
-PRE("$ gnunet-auto-share DIRECTORY-NAME*");
-BP();
-W("After being started like this, <tt>gnunet-auto-share</tt> will put itself 
into the background (daemonize) and periodically check if new files have been 
copied into the given directories.");
-W("Working in the background, <tt>gnunet-auto-share</tt> will ensure that all 
files in the given directory are published to <tt>gnunetd</tt> and thus 
available to the network.");
-W("You will need to restart <tt>gnunet-auto-share</tt> whenever your computer 
is rebooted (just like you need to restart <tt>gnunetd</tt>).");
-W("While your distribution may contain a script to automatically restart 
<tt>gnunetd</tt>.");
-W("Writing such a script maybe a bit tricky since <tt>gnunet-auto-share</tt> 
would usually run as an ordinary user and needs to access the 
<tt>gnunet.conf</tt> configuration of that ordinary user (so that the user can 
add directories to share).");
-P();
-W("It is possible to manually specify keywords for the top-level files or 
directories shared using <tt>gnunet-auto-share</tt>.");
-W("This can be done by creating an additional configuration file (by default: 
<tt>~/.gnunet/metadata.conf</tt>).");
-W("Use the names of the shared files as section names, the type of the 
metadata as the key and the value of the metadata as the values.");
-W("The <tt>gnunet-auto-share</tt> man page contains a sample 
<tt>metadata.conf</tt> configuration file and more detailed descriptions of the 
various supported options.");
-EP();
-
-ANCHOR("gnunetinsert");H4("gnunet-insert");
-
-BP();
-W("The command <tt>gnunet-insert</tt> can be used to add content to the 
network.");
-W("The basic format of the command is");
-EP();
-
-PRE("$ gnunet-insert [-n] [-k KEYWORDS]* [-m TYPE:VALUE] FILENAME");
-
-BP();
-W("The option -k is used to specify keywords for the file that should be 
inserted.");
-W("You can supply any number of keywords, and each of the keywords will be 
sufficient to locate and retrieve the file.");
-W("The -m option is used to specify meta-data, such as descriptions.");
-W("You can use -m multiple times.");
-W("The TYPE passed must be from the list of meta-data types known to 
libextractor.");
-W("You can obtain this list by running <tt>extract -l</tt>.");
-W("Use quotes around the entire meta-data argument if the value contains 
spaces.");
-W("The meta-data is displayed to other users when they select which files to 
download.");
-W("The meta-data and the keywords are optional and maybe inferred by %s.",
-  intlink_("/libextractor/index.php", "libextactor"));
-P();
-
-W("By default, GNUnet indexes a file instead of copying it.");
-W("This is much more efficient, but requries the file to stay unaltered at the 
location where it was when it was indexed.");
-W("Indexed files also must be accessible for <tt>gnunetd</tt> using the same 
absolute path.");
-W("If indexing fails, make sure that the file permissions are set 
appropriately.");
-W("If you intend to move, delete or alter a file, consider using the option 
<tt>-n</tt> which will force GNUnet to make a copy of the file in the 
database.");
-W("Since it is much less efficient, this is strongly discouraged for large 
files.");
-
-W("When GNUnet indexes a file (default), GNUnet does <strong>not</strong> 
create an additional encrypted copy of the file but just computes a summary (or 
index) of the file.");
-W("That summary is approximately two percent of the size of the original file 
and is stored in GNUnet&rsquo;s %s.",
-  extlink_("#database", "database"));
-W("Whenever a request for a part of an indexed file reaches GNUnet, this part 
is encrypted on-demand and send out.");
-W("There is no need for an additional encrypted copy of the file to stay 
anywhere on the drive.");
-W("This is very different from other systems, such as %s, where each file that 
is put online must be in Freenet&rsquo;s database in encrypted format, doubling 
the space requirements if the user wants to preseve a directly accessible copy 
in plaintext.",
-  extlink_("http://www.freenetproject.org/","Freenet";));
-P();
-
-W("Thus indexing should be used for all files where the user will keep using 
this file (at the location given to gnunet-insert) and does not want to 
retrieve it back from GNUnet each time.");
-P();
-
-W("The option <tt>-n</tt> may be used if the user fears that the file might be 
found on his drive (assuming the computer comes under the control of an 
adversary).");
-W("When used with the <tt>-n</tt> flag, the user has a much better chance of 
denying knowledge of the existence of the file, even if it is still (encrypted) 
on the drive and the adversary is able to crack the encryption (e.g. by 
guessing the keyword.");
-P();
-W("gnunet-insert has a ton of additional options to handle namespaces and 
directories.");
-W("See the man-page for details.");
-W("If you want to remove a file that you have indexed from the local peer, use 
the tool <tt>gnunet-unindex</tt> to un-index the file.");
-EP();
-
-HR();
-
-ANCHOR("gnunetsearch");H4("gnunet-search");
-BP();
-W("The command <tt>gnunet-search</tt> can be used to search for content on 
GNUnet.");
-W("The format is:");
-EP();
-
-PRE("$ gnunet-search [-t TIMEOUT] KEYWORD [KEYWORD]*");
-
-BP();
-W("The -t option specifies that the query should timeout after approximately 
TIMEOUT seconds.");
-W("A value of zero is interpreted as <i>no timeout</i>.");
-W("If multiple words are passed as keywords the search generally searches for 
any of them.");
-W("Prefixing keywords with a + makes them mandatory.");
-W("Keywords are separated by spaces; use quotes for keywords that contain 
spaces."); 
-W("Thus,");
-EP();
-
-PRE("$ gnunet-search Das Kapital");
-
-BP();
-W("and");
-EP();
-
-PRE("$ gnunet-search \"Das Kapital\"");
-
-BP();
-W("are different.");
-
-P();
-W("Search results are printed by gnunet-search like this:");
-EP();
-PRE("gnunet://ecrs/chk/9E4MDN4VULE8KJG6U1C8FKH5HA8C5CHSJTILRTTPGK8MJ6VHORERHE68JU8Q0FDTOH1DGLUJ3NLE99N0ML0N9PIBAGKG7MNPBTT6UKG.1I823C58O3LKS24LLI9KB384LH82LGF9GUQRJHACCUINSCQH36SI4NF88CMAET3T3BHI93D4S0M5CC6MVDL1K8GFKVBN69Q6T307U6O.17992:\n"
 .
-    "gnunet-download -o \"COPYING\" 
gnunet://ecrs/chk/9E4MDN4VULE8KJG6U1C8FKH5HA8C5CHSJTILRTTPGK8MJ6VHORERHE68JU8Q0FDTOH1DGLUJ3NLE99N0ML0N9PIBAGKG7MNPBTT6UKG.1I823C58O3LKS24LLI9KB384LH82LGF9GUQRJHACCUINSCQH36SI4NF88CMAET3T3BHI93D4S0M5CC6MVDL1K8GFKVBN69Q6T307U6O.17992\n"
 .
-    "                    filename: COPYING\n" .
-    "                 description: The GNU Public License\n" .
-    "                      author: RMS\n" .
-    "            publication date: Sat Jun 25 08:29:13 2005");
-BP();
-W("The second line is the command you would have to enter to download the 
file.");
-W("The argument passed to <tt>-o</tt> is the suggested filename (you may 
change it to whatever you like).");
-W("The filename is followed by key for decrypting the file, the query for 
searching the file, a checksum (in hexadecimal) finally the size of the file in 
bytes.");
-W("The second line contains the description of the file; here this is 
&quot;The GNU Public License&quot;, the author and the publication date (see 
the options for gnunet-insert on how to change these).");
-
-EP();
-
-ANCHOR("gnunetdownload");H4("gnunet-download");
-BP();
-W("In order to download a file, you need the three values returned by 
<tt>gnunet-search</tt>.");
-W("You can then use the tool <tt>gnunet-download</tt> to obtain the file:");
-EP();
-PRE("$ gnunet-download -o FILENAME GNUNETURL");
-BP();
-W("FILENAME specifies the name of the file where GNUnet is supposed to write 
the result.");
-W("Existing files are overwritten.");
-W("If you want to download the GPL from the previous example, you do the 
following:");
-EP();
-PRE("$ gnunet-download -o \"COPYING\" 
gnunet://ecrs/chk/9E4MDN4VULE8KJG6U1C8FKH5HA8C5CHSJTILRTTPGK8MJ6VHORERHE68JU8Q0FDTOH1DGLUJ3NLE99N0ML0N9PIBAGKG7MNPBTT6UKG.1I823C58O3LKS24LLI9KB384LH82LGF9GUQRJHACCUINSCQH36SI4NF88CMAET3T3BHI93D4S0M5CC6MVDL1K8GFKVBN69Q6T307U6O.17992");
-BP();
-W("If you ever have to abort a download, you can continue it at any time by 
re-issuing <tt>gnunet-download</tt> with the same filename.");
-W("In that case, GNUnet will <strong>not</strong> download blocks again that 
are already present.");
-W("GNUnet&rsquo;s %s will ensure file integrity, even if the existing file was 
not downloaded from GNUnet in the first place.",
-  intlink_("encoding.php3","file-encoding mechanism"));
-W("You may want to use the <tt>-V</tt> switch (must be added before the 
<tt>--</tt>) to turn on verbose reporting.");
-W("In this case, <tt>gnunet-download</tt> will print the current number of 
bytes downloaded whenever new data was received.");
-EP();
-HR();
-BP();
-W("The option -c CONFIGFILE can be passed to each of the commands to override 
the default location of the configuration file.");
-W("The option -v shows the current version number.");
-W("Use -h to get a short description of the options.");
-EP();
-
-ANCHOR("gnunetunindex");H4("gnunet-unindex");
-BP();
-W("<tt>gnunet-unindex</tt> can be used to un-index files that were inserted 
into GNUnet (works only for files that were inserted locally and that are still 
present on the local drive).");
-EP();
-
-ANCHOR("gnunetdirectory");H4("gnunet-directory");
-BP();
-W("Directories are shared just like ordinary files.");
-W("If you download a directory with <tt>gnunet-download</tt>, you can use 
<tt>gnunet-directory</tt> to list its contents.");
-W("The contents of a directory are File Identifiers (FIs).");
-W("An FI contains all the information required by <tt>gnunet-download</tt> to 
retrieve the file.");
-W("Additionally, FIs can contain the mime-type, description, a filename and 
other meta information.");
-P();
-W("In order to make it possible to assemble directories, GNUnet stores all 
locally known FIs in a plaintext database, the FI database.");
-
-P("This <tt>gnunet-directory</tt> can also be used to list the contents of the 
FI database.");
-W("The option <tt>-l</tt> causes the display of all known FI entries.");
-W("The FI database can be flushed using the <tt>-k</tt> option.");
-W("There is currently no way to selectively remove a specific entry.");
-EP();
-
-HR();
-BP();
-W("Note that there is no command line tool to create a directory from the FI 
database.");
-W("To create a directory from the command line, you must use 
<tt>gnunet-insert</tt>.");
-W("The main use of the FI database is for building directories (and namespace 
entries) with <tt>gnunet-gtk</tt>.");
-
-EP();
-ANCHOR("gnunetpseudonym");
-H4("gnunet-pseudonym");
-BP();
-W("By default this tool lists all locally available pseudonyms.");
-W("With the <tt>-C NICK</tt> option it can also be used to create a new 
pseudonym.");
-W("A pseudonym is the virtual identity of the entity in control of a 
namespace.");
-W("Anyone can create any number of pseudonyms.");
-W("Note that creating a pseudonym can take a few minutes depending on the 
performance of the machine used.");
-P();
-W("With the <tt>-D NICK</tt> option pseudonyms can be deleted.");
-W("Once the pseudonym has been deleted it is impossible to add content to the 
corresponding namespace.");
-W("Deleting the pseudonym does not make the namespace or any content in it 
unavailable.");
-EP();
-H5("Advertising namespaces");
-BP();
-W("Each namespace is associated with meta-data that describes the namespace.");
-W("This meta-data is provided by the user at the time that the pseudonym was 
created.");
-W("Naturally all of the information is <tt>optional</tt> and maybe 
<tt>incorrect</tt> since it is provided by the user and cannot be verified.");
-W("The meta-data is published in what is called a namespace advertisement.");
-W("These advertisements are exchanged within GNUnet and can be found using 
normal keyword-searches.");
-W("This way, users can learn about new namespaces without relying on 
out-of-band communication or directories.");
-W("When a pseudonym is created, the namespace is by default advertised under 
the keyword <tt>namespace</tt>.");
-W("When a keyword-search finds a namespace advertisement, it is automatically 
stored in the local GNUnet database.");
-W("The advertisement is preserved for tools like <tt>gnunet-pseudonym</tt> and 
<tt>gnunet-gtk</tt> that can reproduce them when appropriate.");
-EP();
-H5("Namespace roots");
-BP();
-W("An item of particular interest in the namespace advertisement is the 
ROOT.");
-W("The ROOT is the identifier of a designated file in the namespace.");
-W("The idea is that the ROOT can be used to advertise an entry point to the 
content of the namespace.");
-W("Note that currently all of the meta-data must be provided at the time where 
the namespace is created and cannot be updated later.");
-EP();
-H5("Naming namespaces");
-BP();
-W("On the network, pseudonyms are uniquely identified using the hash of the 
corresponding public key.");
-W("As a result, links to content in namespaces can be rather long -- they need 
to incorporate a 512-bit binary hash!");
-W("In order to make using namespaces a bit more practical, NICKNAMEs are used 
to identify pseudonyms on each system.");
-W("The NICKNAME is derived from the metadata provided when the namespace was 
created.");
-W("Since metadata can be freely chosen by the creator of the namespace, 
conflicts are possible.");
-W("Different users may choose to create namespaces with the same meta-data 
resulting in identical base-names for different namespaces.");
-W("In order to ensure that there is only one namespace corresponding to a 
given name, a unique number is added to the base-name to ensure that the 
resulting NICKNAME is unique.");
-W("The resulting NICKNAME is (usually) short and unique for the local 
system.");
-P();
-w("However, other systems may have chosen different unique numbers for the 
same namespace.");
-W("For example, the same namespace may be called &quot;Alice-1&quot; on 
Carol's system and &quot;Alice-2&quot; on Bob's system, simply because Bob got 
an advertisement for another namespace &quot;Alice&quot; from Dave earlier (and 
hence Bob called that one &quot;Alice-1&quot;).");
-W("If Bob were to discuss namespaces with Carol, they should not use the 
NICKNAMEs (which may differ between systems) but instead should use the hash of 
the public keys.");
-W("Naturally, software can and should handle the necessary conversions between 
systems (by translating from NICKNAME to the hash of the public key and 
back).");
-EP();
-
-
-include("html_footer.php3");
-?>

Deleted: GNUnet-docs/WWW/user_chat.php3
===================================================================
--- GNUnet-docs/WWW/user_chat.php3      2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/user_chat.php3      2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,15 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet Documentation: gnunet-chat";
-$description="GNUnet Documentation - a secure peer-to-peer framework starring 
anonymous file sharing with an excess based trust-economy";
-include("html_header.php3");
-
-H2("gnunet-chat");
-BP();
-W("A rudimentary chat client has been implemented as reference code for how to 
implement other applications on top of the GNUnet peer-to-peer 
infrastructure.");
-W("At this point, it merely broadcasts messages to all other chat clients.");
-W("It is not really in any useable state.");
-
-EP();
-include("html_footer.php3");
-?>

Deleted: GNUnet-docs/WWW/user_gnunet.php3
===================================================================
--- GNUnet-docs/WWW/user_gnunet.php3    2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/user_gnunet.php3    2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,551 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet Documentation: GNUnet core setup";
-$description="How to configure the GNUnet peer-to-peer framework (excluding 
GNUnet applications)";
-include("html_header.php3");
-H2("GNUnet Documentation: GNUnet core");
-?>
-<ul>
- <li><a href="#installation"><?php W("Installation"); ?></a></li>
- <li><a href="#gnunet.conf"><?php W("The configuration file gnunet.conf"); 
?></a></li>
- <li><a href="#coretools"><?php W("GNUnet core tools"); ?></a>
-  <ul>
-   <li><a href="#transportcheck">gnunet-transport-check</a></li>
-   <li><a href="#stats">gnunet-stats</a></li>
-   <li><a href="#peerinfo">gnunet-peer-info</a></li>
-  </ul>
- </li>
-</ul>
-<?php
-ANCHOR("installation");
-H3("Installation");
-BP();
-W("First, in addition to the %s you must download the latest version of %s and 
install that library.",
-  ARRAY(intlink_("download.php3", "GNUnet sources"),
-       extlink_("/libextractor/", "libextractor")));
-W("libextractor has itself various mandatory and optional dependencies.");
-W("Please check the dependency list, both GNUnet and libextractor contain a 
file README.debian that lists the current package dependencies for Debian.");
-W("Note that in addition to satisfying the dependencies, you might have to 
make sure that development headers for the various libraries are also 
installed.");
-W("There maybe files for other distributions, or you might be able to find 
equivalent packages for your distribution.");
-W("If you are <tt>root</tt> and cannot find binary packages, you should 
install GNUnet and libextractor to <tt>/usr/local</tt> and run <tt>gnunetd</tt> 
as a special administrative user <tt>gnunet</tt>.");
-W("For that, change <tt>\$HOME</tt> in the instructions below to 
<tt>/usr/local</tt>.");
-W("The instructions below work when installing GNUnet as an ordinary user on 
most GNU/Linux systems.");
-W("Installing libextractor should be as simple as:");
-EP();
-PRE("$ ./configure --prefix=\$HOME\n" .
-    "$ make\n" .
-    "# make install\n");
-BP();
-W("For GNUnet, you should again check the dependency list.");
-W("Now compile and install GNUnet using:");
-EP();
-PRE("$ ./configure --prefix=\$HOME --with-extractor=\$HOME\n" .
-    "$ make\n" .
-    "# make install\n");
-BP();
-
-W("Finally, you probably want to compile <tt>gnunet-gtk</tt>:");
-EP();
-PRE("$ ./configure --prefix=\$HOME --with-extractor=\$HOME 
--with-gnunet=\$HOME\n" .
-    "$ make\n" .
-    "# make install\n");
-BP();
-W("If you are updating from a version from the 0.7.x series, you should (after 
stopping gnunetd) run:");
-EP();
-PRE("# gnunet-update\n");
-BP();
-W("This should trigger all necessary changes.");
-W("Note that you will also have to run <tt>gnunet-update</tt> after certain 
changes to the <tt>gnunetd.conf</tt> configuration file.");
-W("<tt>gnunetd</tt> will immediately exit with an error message if 
<tt>gnunet-update</tt> must be run.");
-P();
-W("If you are using GNUnet for the first time (or if you deleted all of your 
old files) you will probably want to run <tt>gnunet-setup</tt> at this point.");
-W("The setup tool supports various styles of user interfaces.");
-W("Invoke <tt>gnunet-setup</tt> without arguments to see the various styles 
supported on your platform.");
-W("You should run <tt>gnunet-setup</tt> with the <tt>-d</tt> option in order 
to configure <tt>gnunetd</tt>.");
-W("Unless you specify a different location with the <tt>-c</tt> option, the 
<tt>gnunetd</tt> configuration will be stored in <tt>/etc/gnunetd.conf</tt>.");
-W("In order to enable <tt>gnunet-setup</tt> to edit that file, you should run 
it as user <tt>root</tt>:");
-EP();
-PRE("# gnunet-setup -d wizard-gtk\n");
-BP();
-W("Using one of the wizards should allow a quick initial configuration.");
-P();
-W("After finishing the configuration with <tt>gnunet-setup</tt>, you can test 
the installation using");
-EP();
-PRE("# gnunet-transport-check\n");
-PRE("# gnunet-transport-check -p\n");
-BP();
-W("The first command tests your local transports (basics), the second one 
connectivity to the rest of the peer-to-peer network (ping).");
-W("If the test fails (i.e. <tt>gnunet-transport-check -p</tt> reports being 
able to connect to 0 peers), you should revisit your configuration, in 
particular your network setup.");
-W("Again, after changing the configuration, you should always run 
<tt>gnunet-update</tt> to allow GNUnet to perform necessary internal updates.");
-W("Note that it is <tt>normal</tt> for the NAT transport to be reported as 
not-working in some configurations.");
-W("Once configuration is complete and <tt>gnunet-update</tt> is done, start 
the server using:");
-EP();
-PRE("# gnunetd -d\n");
-BP();
-W("The &quot;-d&quot; option causes <tt>gnunetd</tt> to print all errors to 
the console and prevents <tt>gnunetd</tt> from detaching from the console.");
-W("If you get any errors, you may have to edit the configuration file:");
-EP();
-PRE("# gnunet-setup -d gconfig\n");
-BP();
-W("Some errors maybe related to the specific applications that are being used, 
so consult the documentation there.");
-W("Use the log-files and the tools described below to diagnose problems.");
-W("You may also want to increase the verbosity of the logging using the 
parameter &quot;-L DEBUG&quot;.");
-W("Read the man pages for additional information about command line options.");
-P();
-W("Once everything works and you get no error messages, press 
&quot;CTRL-C&quot; to abort <tt>gnunetd</tt> and restart it without the 
&quot;-d&quot; option.");
-W("Without the option, <tt>gnunetd</tt> will detach from the terminal and 
write errors into the logfile.");
-P();
-W("If you want to automatically start GNUnet each time your machine boots 
<tt>contrib/initgnunet</tt> contains an example script to start the server as 
user <em>gnunet</em> with a configuation in <tt>/etc/gnunet.conf</tt>.");
-W("If you installed a binary package, the installer probably already put the 
start-script into &quot;/etc/init.d/gnunetd&quot; or the appropriate location 
for your system.");
-W("Still, even in that case, you may have to activate the script.");
-
-EP();
-
-H3("General notes about the configuration");
-BP();
-
-W("GNUnet typically requires the configuration of four basic layers.");
-w("On the lowest layer, you need to configure the transport services that 
allow GNUnet to communicate with other peers.");
-W("A simple example is the specification of the port number used by a TCP or 
UDP transport.");
-
-W("The GNUnet core needs to know certain resource limitations, such as CPU 
load and bandwidth usage.");
-W("Both the configuration of the transport services and the GNUnet core are 
described below.");
-W("Additionally, the applications run on top of GNUnet may also require some 
configuration.");
-W("Finally, the user interface(s) that are used to interact with 
<tt>gnunetd</tt> are configured in a per-user configuration file.");
-EP();
-
-HR();
-
-ANCHOR("files");
-H3("The GNUnet configuration files");
-ANCHOR("gnunet.conf");
-
-BP();
-W("When a required configuration file is not present on startup, any GNUnet 
tool will attempt to create one by running <tt>gnunet-setup 
generate-defaults</tt> which dumps a copy of the default configuration file to 
<tt>~/.gnunet/gnunet.conf</tt>.");
-W("The option <tt>-c</tt> can be used for any GNUnet tool to specify an 
alternative location for the configuration file.");
-W("GNUnet uses two different configuration files (with the same syntax but 
different options), one for the server (<tt>gnunetd</tt>) and another one for 
all of the clients.");
-W("The rationale is that typcially the system administrator will setup 
<tt>gnunetd</tt> while ordinary users are executing the clients.");
-P();
-W("The default location for the configuration of <tt>gnunetd</tt> is 
<tt>/etc/gnunetd.conf</tt>.");
-W("A few tools that help setup and diagnose the daemon (like 
<tt>gnunet-transport-check</tt>) also use this configuration file.");
-W("A template for this configuration is in <tt>contrib/gnunetd.conf</tt>.");
-W("You should use <tt>gnunet-setup -d</tt> to create or modify 
<tt>/etc/gnunetd.conf</tt>.");
-P();
-W("The GNUnet clients (like <tt>gnunet-insert</tt> or <tt>gnunet-gtk</tt>) use 
a different configuration file.");
-W("All GNUnet clients expect this file to reside by default in 
<tt>\$HOME/.gnunet/gnunet.conf</tt>.");
-W("A template for this file is in <tt>contrib/gnunet.conf</tt>.");
-W("You should use <tt>gnunet-setup</tt> (without the <tt>-d</tt> option) to 
create or modify <tt>~/.gnunet/gnunet.conf</tt>.");
-W("If the configuration file is not found, all GNUnet tools will use default 
options for the various settings.");
-EP();
-
-ANCHOR("serveroptions"); H3("Server options");
-
-BP();
-W("All of the options described here refer to the server configuration.");
-W("This section describes the most important options to setup 
<tt>gnunetd</tt>.");
-W("The <tt>gnunet-setup</tt> tool gives more detailed descriptions for each 
option.");
-W("If you are on dialup, look at %s and probably %s.",
-  ARRAY(extlink_("#gnunet.conf.helloexpires", "HELLOEXPIRES"),
-       extlink_("#gnunet.conf.interfaces", "INTERFACES")));
-W("If you are behind a NAT box, look at %s.",
-  extlink_("#gnunet.conf.ip", "IP"));
-W("If you are a frontier host that is accessible from a trusted LAN and 
connected to the Internet, have a look at %s, %s and %s.",
-  ARRAY(extlink_("#gnunet.conf.trusted", "TRUSTED"),
-       extlink_("#gnunet.conf.blacklist", "BLACKLIST"),
-       extlink_("#gnunet.conf.heloexchange", "HELLOEXCHANGE")));
-P();
-W("The configuration of the SMTP transport layer is described %s",
-  intlink_("smtp.php3","here"));
-EP();
-
-ANCHOR("gnunet.conf.port");H4("NETWORK: PORT");
-
-BP();
-W("With this option, you can specify to which TCP port the gnunet-clients 
should connect.");
-W("It is also the choice of the port for <tt>gnunetd</tt>.");
-W("While you can restrict access to this port using the %s option, you may 
also want to firewall this port.",
-  extlink_("#gnunet.conf.trusted", "NETWORK: TRUSTED"));
-W("A different port must be used for the TCP and UDP peer-to-peer transport 
mechanism.");
-W("The default value is <tt>2087</tt>.");
-
-EP();
-ANCHOR("gnunet.conf.interface");H4("NETWORK: INTERFACE");
-
-BP();
-W("Use this option to specify which interface GNUnet should use to try to 
determine your IP.");
-W("The interface is also used to determine the network load.");
-W("Alternatively, you can use the %s option.",
-  extlink_("#gnunet.conf.ip", "IP"));
-W("If both an interface and an IP is specified, the IP option takes 
preference.");
-
-EP();
-ANCHOR("gnunet.conf.ip");H4("NETWORK: IP");
-
-BP();
-W("This option allows you to specify the advertised IP.");
-W("If you do not specify anything, GNUnet will attempt to detect the IP.");
-W("You really need this option if you are behind a NAT box.");
-W("In that case, you have to specify the IP of the NAT box here (you can use a 
hostname, DNS is supported).");
-W("For NAT boxes with changing IP, you may want to use %s.",
-  extlink_("http://www.technopagan.org/dynamic/";, "Dynamic DNS"));
-
-EP();
-ANCHOR("gnunet.conf.trusted");H4("NETWORK: TRUSTED");
-
-BP();
-W("With this option you can specfiy which addresses are trusted enough to 
connect to gnunetd via TCP as clients.");
-W("The default is only the local host.");
-W("If you are on a trusted LAN, you may want to specify the LAN network and 
netmask.");
-W("You must use IPs, DNS lookup is not supported.");
-W("The format of this option is <tt>IP/NETWORK;</tt>.");
-W("Multiple entries (seperated and terminated by a semicolon) are permitted.");
-W("The network can be specified using a bitmask (for example, 
<tt>/255.255.0.0</tt>) or the number of bits (for example, <tt>/16</tt>).");
-EP();
-ANCHOR("gnunet.conf.interfaces");H4("LOAD: INTERFACES");
-
-BP();
-W("Under this option you specify which interfaces GNUnet is going to monitor 
to determine the load.");
-W("If you have ethernet, the default is <tt>eth0</tt>.");
-W("If you have a modem, try <tt>ppp0</tt>.");
-W("In general, the command <tt>ifconfig</tt> (may not be in your path if you 
are logged in as a normal user, try <tt>/sbin/ifconfig</tt>) will show you the 
active devices.");
-
-EP();
-ANCHOR("gnunet.conf.basiclimiting");H4("LOAD: BASICLIMITING");
-
-BP();
-W("Use basic bandwidth limitation?");
-W("YES or NO.");
-W("The basic method notes only gnunet traffic and can be used to specify 
simple maximum bandwidth usage of GNUnet.");
-W("Choose the basic method if you don&rsquo;t want other network traffic to 
interfere with GNUnets operation, but still wish to constrain gnunet&rsquo;s 
bandwidth usage, or if you can&rsquo;t reliably measure the maximum 
capabilities of your
-connection.");
-W("The basic method might also be good when the used interface can transmit 
data to/from local network very fast compared to internet traffic (a condition 
that makes the advanced method unreliable).");
-
-P();
-
-W("The advanced bandwidth limitation measures total traffic over the chosen 
interface (including GNUnet traffic), and allows gnunetd to participate if the 
total traffic is low enough.");
-
-EP();
-ANCHOR("gnunet.conf.maxnetbpsuptotal");H4("LOAD: MAXNETBPSUPTOTAL");
-
-BP();
-W("If you use basic bandwidth limitation, this option specifies the maximum 
GNUnet can use for its internal traffic.");
-W("When using advanced limiting, use this option to specify your maximum 
upload speed (how many bytes per second your node can send).");
-W("In that case, do not specify how much you want GNUnet to use, but use the 
maximum theoretically available.");
-W("If you do not know your bandwidth, stick with the default of 50,000 bytes 
per second.");
-
-EP();
-ANCHOR("gnunet.conf.maxnetbpsdowntotal");H4("LOAD: MAXNETBPSDOWNTOTAL");
-
-BP();
-W("Same as %s but for download speeds.",
-  extlink_("#gnunet.conf.maxnetbpsuptotal", "MAXNETBPSUPTOTAL"));
-W("Note that GNUnet can not control exactly how much data other nodes are 
sending to your machine (an approximate control is attempted, but malicious 
peers can always ignore the protocol and send more data).");
-W("The upload limit is strictly enforced.");
-W("If we are above our boundaries for the download limits, GNUnet will notify 
peers to reduce the amount of traffic until we are back inside the limits.");
-W("Note that if you disable BASICLIMITING, GNUnet will sense if non-GNUnet 
traffic is going on and only use the specified amount of bandwidth if you are 
not using it otherwise.");
-
-EP();
-ANCHOR("gnunet.conf.maxcpuload");H4("LOAD: MAXCPULOAD");
-
-BP();
-W("Up to which CPU load will GNUnet process packets from other nodes.");
-W("If the average CPU load goes over this value (like for the network, this 
includes other applications), GNUnet will start dropping packets and reduce the 
load.");
-W("GNUnet may also do fewer of the expensive message-packing computations, 
trading bandwidth for CPU time.");
-W("For example, if you are running an application that takes up all of your 
CPU power, GNUnet will pretty much not serve any other nodes (the node is 
considered <em>busy</em>).");
-W("Only if the load is under the value specified here, GNUnet will serve other 
nodes.");
-W("The default is 50, which should keep your hosts responsive enough while 
being more than sufficient for GNUnet on any modern machine.");
-
-EP();
-ANCHOR("gnunet.conf.udp.port");H4("UDP: PORT");
-
-BP();
-W("Which port should the UDP transport layer use?");
-W("If no value is specified, GNUnet will try to find a port in 
<tt>/etc/services</tt>.");
-W("If you specify 0, this means that you do not want to open UDP for receiving 
messages (but, if you load the transport module, you can still send UDP 
traffic).");
-W("The default port is 2086 as assigned to GNUnet by %s.",
-  extlink_("http://www.iana.org";, "IANA"));
-W("Since other peers will try to connect to this port, you should configure 
your firewall to let all traffic through.");
-W("UDP is a stateless protocol, thus just allowing <tt>related</tt> traffic in 
a stateful firewall will not be sufficient.");
-
-EP();
-ANCHOR("gnunet.conf.blacklist");H4("UDP: BLACKLIST");
-
-BP();
-W("If your node receives advertisements for nodes on virtual private networks, 
it should not even attempt to connect to those networks.");
-W("You can use this option to specify a list of networks that are forbidden.");
-W("gnunetd will then never attempt to communicate with these addresses.");
-W("You will get an error if your own IP address is listed here.");
-W("The format of this option is <tt>IP/NETWORK;</tt>.");
-W("Multiple entries (seperated and terminated by a semicolon) are permitted.");
-W("The network can be specified using a bitmask (for example, 
<tt>/255.255.0.0</tt>) or the number of bits (for example, <tt>/16</tt>).");
-
-EP();
-ANCHOR("gnunet.conf.udp.mtu");H4("UDP: MTU");
-
-BP();
-W("This option specifies the maximum transfer unit, the maximum number of 
bytes that GNUnet will put in a UDP packet.");
-W("This does not include the IP or UDP headers.");
-W("Do not use more than your OS (and firewall) can support.");
-W("Typcially, your want to avoid fragmentation and should choose network-MTU 
minus 28.");
-W("You can determine your MTU using the <tt>ifconfig</tt> command.");
-W("For ethernet, the network MTU should be 1500 octets, resulting in 1472 
octets for the GNUnet MTU, which is also the default.");
-W("Do not use values smaller than 1200.");
-EP();
-
-ANCHOR("gnunet.conf.tcp.port");H4("TCP: PORT");
-
-BP();
-W("Which port should the TCP transport layer use?");
-W("If no value is specified, GNUnet will try to find a port in 
<tt>/etc/services</tt>.");
-W("If you specify 0, this means that you do not want to open TCP for receiving 
messages (but, if you load the transport module, you can still initiate 
bi-directional TCP connections).");
-W("Setting the TCP port to 0 is a common configuration for machines behind NAT 
boxes (these peers can then still initiate connections but other nodes will not 
attempt to connect).");
-W("The default port is 2086 as assigned to GNUnet by %s.",
-  extlink_("http://www.iana.org";, "IANA"));
-W("Since other peers will try to connect to this port, you should configure 
your firewall to let all traffic through.");
-W("Make sure that the port number you select here does not conflict with the 
client TCP port.");
-
-EP();
-ANCHOR("gnunet.conf.blacklist");H4("TCP: BLACKLIST");
-BP();
-W("If your node receives advertisements for nodes on virtual private networks, 
it should not even attempt to connect to those networks.");
-W("You can use this option to specify a list of networks that are forbidden.");
-W("gnunetd will then never attempt to communicate with these addresses.");
-W("You will get an error if your own IP address is listed here.");
-W("The format of this option is <tt>IP/NETWORK;</tt>.");
-W("Multiple entries (seperated and terminated by a semicolon) are permitted.");
-W("The network can be specified using a bitmask (for example, 
<tt>/255.255.0.0</tt>) or the number of bits (for example, <tt>/16</tt>).");
-
-EP();
-ANCHOR("gnunet.conf.tcp.mtu");H4("TCP: MTU");
-
-BP();
-W("This option specifies the maximum transfer unit, the maximum number of 
bytes that GNUnet will put in a TCP packet.");
-W("This does not include the IP or TCP headers.");
-W("Typcially, your want to avoid fragmentation and should choose network-MTU 
minus 40.");
-W("For ethernet, this would result in 1460 octets, which is also the 
default.");
-W("Do not use less than 1200.");
-
-EP();
-ANCHOR("gnunet.conf.nat.limited"); H4("NAT: LIMITED");
-
-BP();
-W("The NAT transport allows connections between machines using network-address 
translation (NAT) and &quot;normal&quot; peers with a globally unique IP 
address.");
-W("Thus in practice, all GNUnet peers that support TCP should also load the 
NAT transport service, either since they need it to connect themselves or 
because it allows them to connect to other peers that require NAT support.");
-W("NAT support requires loading the TCP transport service (IPv4 and/or 
IPv6).");
-W("The only option for the NAT transport is &quot;LIMITED&quot;.");
-W("The default value &quot;NO&quot; is used for peers that 
<strong>either</strong> have a globally routed IP address (are not using NAT at 
all) <strong>or</strong> for peers that advertise the IP of the NAT box and 
where the NAT box forwards the TCP port to the NAT-ed IP in the LAN.");
-W("Only if you can not configure your NAT box to forward the TCP port to your 
local machine you should set LIMITED to &quot;YES&quot;.");
-P();
-W("In summary, there are three possibilities.");
-W("If you use TCP and don&prime;t use NAT on your local network, load the NAT 
transport anyway, set LIMITED to &quot;NO&quot;.");
-W("If you use NAT on your local network and have control over your NAT box, 
configure the NAT box to forward the TCP (and if possibly UDP) ports to the 
machine running <tt>gnunetd</tt>, also load the NAT transport and also set 
LIMITED to &quot;NO&quot;.");
-W("If you use NAT on your local network and do NOT have control over the NAT 
box, you <strong>must</strong> load the TCP and the NAT transport, set the 
TCP-PORT to &quot;0&quot; and LIMITED to &quot;YES&quot;.");
-P();
-W("The last option is the worst since it limits whom you can connect to and 
thus limits your anonymity.");
-W("If you are adventurous, you can supplement the last option with the SMTP 
transport, which is difficult to configure but will allow NAT-to-NAT 
communication.");
-
-EP();
-ANCHOR("gnunet.conf.loglevel");H4("LOGGING: USER-LEVEL and ADMIN-LEVEL");
-
-BP();
-W("Loglevel, how much should be logged?");
-W("You can use NOTHING, FATAL, ERROR, WARNING, INFO, STATUS or DEBUG (which 
log more and more messages in this order).");
-W("Default is WARNING.");
-W("You can override this option at the commandline with the <tt>-L</tt> 
switch.");
-
-EP();
-ANCHOR("gnunet.conf.logfile");H4("GNUNETD: LOGFILE");
-
-BP();
-W("If <tt>gnunetd</tt> is not started with the <tt>-d</tt> option, it writes 
logging messages into this file (with <tt>-d</tt> all messages are written to 
the console).");
-W(" Read this %s if you are using logrotate.",
-  
extlink_("http://mail.gnu.org/archive/html/help-gnunet/2002-08/msg00012.html";, 
"mail"));
-
-EP();
-ANCHOR("gnunet.conf.pidfile");H4("GNUNETD: PIDFILE");
-
-BP();
-W("In which file should gnunetd write the process-id of the server?");
-W("If you run gnunetd as root, you may want to choose /var/run/gnunetd.pid.");
-W("It&rsquo;s not the default since gnunetd may not have write rights at that 
location.");
-
-EP();
-ANCHOR("gnunet.conf.hosts");H4("GNUNETD: HOSTS");
-
-BP();
-W("In this directory GNUnet stores the key and last known Internet address of 
each known GNUnet node.");
-W("Each file is about 600 bytes long (different transport protocols may have 
different address sizes).");
-W("On startup, GNUnet downloads a list of initial hosts from the specified 
<tt>HOSTLISTURL</tt>.");
-W("The files listed in the <tt>HOSTLISTURL</tt> are generated using:");
-EP();
-PRE("$ cat /var/lib/GNUnet/data/hosts/* > hostlist");
-BP();
-W("Running the command above and offering the generated <tt>hostlist</tt> file 
on a webserver is all it takes to run your own hostlist server.");
-W("<tt>gnunetd</tt> will try to download peer advertisements from a (random) 
server specified in the <tt>HOSTLISTURL</tt> only if too few peers are 
connected for a longer period of time.");
-P();
-W("Once connected, GNUnet hosts exchange information about other hosts 
automatically.");
-W("Thus except for the initial connection, there should be no pressing need to 
obtain a new list (except if a node was offline for a long time and the old 
list aged so much that it became useless).");
-W("If hosts cannot be reached and the time that the key has been signed to be 
valid by the sender has expired, GNUnet deletes their identities from 
<tt>data/hosts/</tt>.");
-W("Note that the trust information is kept &quot;forever&quot;.");
-
-EP();
-ANCHOR("gnunet.conf.hostlisturl");H4("GNUNETD: HOSTLISTURL");
-
-BP();
-W("Whenever <tt>gnunetd</tt> needs to learn about an initial set of peers that 
it can connect to, it downloads a list of initial nodes to connect to via 
http.");
-W("The URL to use is specified here.");
-W("Multiple URLs can be specified separated by spaces.");
-
-EP();
-ANCHOR("gnunet.conf.applications");H4("GNUNETD: APPLICATIONS");
-
-BP();
-W("Which applications should <tt>gnunetd</tt> support?");
-W("Specify the name of the dynamic shared object (DSO) that implements the 
service in the gnunetd core here.");
-W("Multiple DSOs can be specified, separated by spaces.");
-W("You should always specify &quot;advertising getoption&quot; since these are 
rather fundamental applications.");
-W("Add &quot;stats&quot; in order to be able to obtain statistics using 
<tt>gnunet-stats</tt>.");
-W("Add &quot;traffic&quot; to see statistics about traffic (also used by 
anonymous file sharing for cover traffic estimates).");
-W("Further additions depend on which specific applications you want to use.");
-W("Possible choices include &quot;%s chat tbench tracekit&quot;.",
-  intlink_("user_afs.php3","fs"));
-
-EP();
-ANCHOR("gnunet.conf.transports");H4("GNUNETD: TRANSPORTS");
-
-BP();
-W("Which transport services should be used?");
-W("Use space-separated list of the modules, for example  &quot;udp smtp tcp 
nat&quot;.");
-W("If you want to use SMTP, please read the %s for details.",
-  intlink_("smtp.php3","SMTP documentation"));
-
-P();
-W("The <tt>gnunet-setup</tt> tool also contains help texts for the various 
options.");
-
-EP();
-HR();
-
-ANCHOR("clientoptions"); H3("Client options");
-BP();
-W("These are options that should be specified in the per-user 
<tt>gnunet.conf</tt> configuration files.");
-W("They apply to the various user interfaces for GNUnet.");
-EP();
-ANCHOR("gnunet.conf.host");
-H4("NETWORK: HOST");
-
-BP();
-W("With this option, you can specify to which host the GNUnet clients should 
connect by default.");
-W("You can override the choice you make here with the <tt>-H</tt> option.");
-W("The default, <tt>localhost</tt> should be fine.");
-
-EP();
-
-ANCHOR("gnunet.conf.port");H4("NETWORK: PORT");
-
-BP();
-W("With this option, you can specify to which TCP port the gnunet-clients 
should connect.");
-W("It is also the choice of the port for <tt>gnunetd</tt>.");
-W("While you can restrict access to this port using the %s option, you may 
also want to firewall this port.",
-  extlink_("#gnunet.conf.trusted", "NETWORK: TRUSTED"));
-W("A different port must be used for the TCP and UDP peer-to-peer transport 
mechanism.");
-W("The default value is <tt>2087</tt>.");
-EP();
-
-HR();
-
-ANCHOR("coretools");
-H3("GNUnet core tools");
-
-ANCHOR("transportcheck");
-H4("gnunet-transport-check");
-
-BP();
-W("The <tt>gnunet-transport-check</tt> tool checks if a transport is 
configured correctly.");
-W("By default the tool checks if the transport is at least able to send a 
message to its own address.");
-W("This test is called the <em>loopback mode</em>.");
-W("This mode is useful to check basic transport functionality when new 
transports are implemented or when GNUnet is ported to a new platform.");
-W("By default, <tt>gnunet-transport-check</tt> tests all the transports that 
are currently specified in the configuration file.");
-P();
-W("With the option <tt>-p</tt> it is possible to run 
<tt>gnunet-transport-check</tt> in <em>ping mode</em>.");
-W("In ping mode <tt>gnunet-transport-check</tt> performs an http download of 
the peer list specified in the configuration (HOSTLISTURL option) and attempts 
to connect to each of these peers (if a matching transport is configured).");
-W("This way the tool is able to catch a variety of problems, including 
problems relating to NAT boxes, the firewall configuration and virtual private 
networks (VPNs).");
-W("Note that it is perfectly normal that not all peers from the hostlist can 
be reached, but for both common transports (tcp and udp) at least a few should 
succeed.");
-W("The default time that <tt>gnunet-transport-check</tt> waits for a reply is 
15s.");
-W("For a quick test the timeout can be reduced, for example to 500 ms with the 
option <tt>-T 500</tt>.");
-P();
-W("Note that you can not run <tt>gnunet-transport-check</tt> while 
<tt>gnunetd</tt> is running!");
-W("You must stop <tt>gnunetd</tt> before testing transports.");
-W("The output of <tt>gnunet-transport-check</tt> looks something like this:");
-EP();
-
-PRE("$ gnunet-transport-check\n" .
-    "Testing transport(s) udp tcp\n" .
-    "Transport OK, 0ms for 1 messages of size 11 bytes.\n" .
-    "Transport OK, 0ms for 1 messages of size 11 bytes.\n");
-
-BP();
-W("And for ping mode:");
-EP();
-
-PRE("$ gnunet-transport-check -p\n" .
-    "Available transport(s): udp tcp\n" .
-    ".....................\n" .
-    "8 out of 21 peers contacted successfully (0 times transport 
unavailable).\n");
-
-ANCHOR("peerinfo");
-H4("gnunet-peer-info");
-
-BP();
-W("The <tt>gnunet-peer-info</tt> tool displays the identities, trust earned 
and Internet addresses of all GNUnet peers that the local peer is aware of.");
-W("The output looks like this:");
-EP();
-
-PRE("$ gnunet-peer-info\n" .
-    "Peer \'CJ4J...\' with trust 31 and address \'31.79.24.1:2086 (TCP)\'\n" .
-    "Peer \'FA65...\' with trust  0 and address \'80.16.46.2:2086 (UDP)\'");
-
-ANCHOR("stats");H4("gnunet-stats");
-
-BP();
-W("<tt>gnunet-stats</tt> is a little tool that displays statistics.");
-W("Unlike the other core tools, it uses the client configuration and only 
works if <tt>gnunetd</tt> is already running.");
-W("<tt>gnunet-stats</tt> also only works if the <tt>stats</tt> module is 
loaded as an application.");
-W("The numbers are for the current <tt>gnunetd</tt> process only.");
-W("The output looks similar to the following example, but depends on which 
modules you have loaded and what your node has been doing so far.");
-EP();
-
-PRE("$ gnunet-stats\n" .
-    "Uptime (seconds)                                            :             
  47\n" .
-    "% of allowed network load                                   :             
   0\n" .
-    "% of allowed cpu load                                       :             
   0\n" .
-    "# bytes of noise received                                   :             
   0\n" .
-    "# bytes received from clients                               :             
   8\n" .
-    "# times outgoing msg sent (bandwidth ok)                    :             
   0\n" .
-    "# times outgoing msg dropped (bandwidth stressed)           :             
   0\n" .
-    "# times incoming msg accepted (cpu ok)                      :             
   0\n" .
-    "# times incoming msg dropped (cpu overloaded)               :             
   0\n" .
-    "# sessionkeys received                                      :             
   0\n" .
-    "# valid sessionkeys received                                :             
   0\n" .
-    "# sessionkeys sent                                          :             
   0\n" .
-    "# connections shutdown                                      :             
   0\n" .
-    "# currently connected nodes                                 :             
   0\n" .
-    "# bytes noise sent                                          :             
   0\n" .
-    "# encrypted bytes sent                                      :             
   0\n" .
-    "# bytes decrypted                                           :             
   0\n" .
-    "# ping messages sent                                        :             
   0\n" .
-    "# ping messages received                                    :             
   0\n" .
-    "# pong messages sent                                        :             
   0\n" .
-    "# pong messages received                                    :             
   0\n" .
-    "# HELLO messages received from http server                  :             
  34\n" .
-    "# HELLO messages received overall                           :             
   1\n" .
-    "# valid HELLO messages received                             :             
   0\n" .
-    "# HELLO messages forwarded from other peers                 :             
   0\n" .
-    "# HELLO messages originated                                 :             
   0\n");
-
-BP();
-W("The number of connected hosts is the nummber of hosts that the local node 
is directly connected to (1 hop).");
-W("The total number of hosts in the network must be larger or equal to this 
number.");
-EP();
-
-include("html_footer.php3");
-?>

Deleted: GNUnet-docs/WWW/user_index.inc
===================================================================
--- GNUnet-docs/WWW/user_index.inc      2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/user_index.inc      2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,13 +0,0 @@
-<?php 
-echo "<ol>\n";
-LILI("user_gnunet.php3","Compilation and Configuration of GNUnet");
-LILI("user_afs.php3","Configuration and Usage of GNUnet&rsquo;s (anonymous) 
file sharing");
-echo "<ul>\n";
-LILI("gnunetgtk.php3","Using <tt>gnunet-gtk</tt>");
-LILI("user_namespaces.php3", "Using namespaces with <tt>gnunet-gtk</tt>");
-echo "</ul>\n";
-// LILI("user_chat.php3","Broadcast chat");
-// LILI("user_tbench.php3","Measureing the transport performance");
-// LILI("user_tracekit.php3","Tracing the GNUnet topology");
-echo "</ol>\n";
-?>

Deleted: GNUnet-docs/WWW/user_namespaces.php3
===================================================================
--- GNUnet-docs/WWW/user_namespaces.php3        2012-08-27 18:40:59 UTC (rev 
23449)
+++ GNUnet-docs/WWW/user_namespaces.php3        2012-08-27 18:51:04 UTC (rev 
23450)
@@ -1,158 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet Documentation: A Tutorial for Using Namespaces";
-$description="How to create namespaces, add content to namespaces, update 
content and search namespaces";
-include("html_header.php3");
-H2("How to use namespaces");
-
-afslogo();
-ANCHOR("setup"); H3("Setup");
-BP();
-W("The first step to start with namespaces is to enable tracking of available 
content.");
-EP();
-IMG("screenshots/gnunet-gtk-namespace-1.png",
-    "The 'Advanced' Tab in file-sharing",
-    "CENTER",615,492);
-BP();
-W("This option is disabled by default since it would allow an adversary who 
takes control of the current machine to determine what metadata the local user 
has been exposed to.");
-W("Once you are done with your namespace operation, you may want to disable 
the checkbox and press the <tt>Clear</tt> button.");
-W("For this tutorial, we need to enable tracking of available content:");
-EP();
-IMG("screenshots/gnunet-gtk-namespace-2.png",
-    "The 'Advanced' Tab in file-sharing with tracking enabled",
-    "CENTER",615,492);
-
-
-ANCHOR("publish"); H3("Publish Content");
-BP();
-W("The next step is (usually) to publish some content using the normal 
publishing dialogs.");
-W("You could also add files that you did not upload yourself (and that you 
only found by searching the network) to a namespace, but since you could not 
know if those files were of high quality, we generally would advise against 
it.");
-W("The better method would be to download the content, check it and then 
re-publish it.");
-W("For this tutorial, we will assume that the content that you are publishing 
in your namespace is content that you are sharing.");
-EP();
-IMG("screenshots/gnunet-gtk-namespace-3.png",
-    "The 'Publication' Tab in file-sharing",
-    "CENTER",615,492);
-BP();
-W("As shown in the screenshot, select a file or directory from your local 
disk.");
-W("Any selections of the various options for publishing will work.");
-W("After clicking the <tt>Publish</tt> button, you can edit the meta-data for 
the content.");
-EP();
-IMG("screenshots/gnunet-gtk-namespace-4.png",
-    "Edit the meta-data for the publication",
-    "CENTER",712,482);
-BP();
-W("Finally, you should switch to the <tt>Status</tt> tab and wait for your 
upload to complete (blue bar full under Publications).");
-EP();
-IMG("screenshots/gnunet-gtk-namespace-5.png",
-    "The status tab shows the progress of uploads and downloads",
-    "CENTER",615,492);
-
-ANCHOR("create"); H3("Creating the Namespace");
-BP();
-W("If you switch back to the <tt>Advanced</tt> tab, you should now see the 
(tracked) content that you have published since enabling tracking in the 
list.");
-EP();
-IMG("screenshots/gnunet-gtk-namespace-6.png",
-    "The 'Advanced' Tab in file-sharing with tracked content",
-    "CENTER",615,492);
-BP();
-W("At this point, we can create our first namespace.");
-W("Select <tt>New</tt> and then <tt>Namespace</tt> from the menu.");
-W("A dialog will open where you can enter meta-data describing the 
namespace.");
-EP();
-IMG("screenshots/gnunet-gtk-namespace-7.png",
-    "Dialog for entering metadata about the namespace",
-    "CENTER",694,459);
-BP();
-W("You should at least provide a brief description, a title or an author.");
-W("Those values will be used for the nickname of the namespace.");
-W("If you fail to specify metadata for any of these types, your namespace will 
be called 'unknown'.");
-W("An important special entry in this dialog is the namespace root.");
-W("The namespace root is the identifier of some piece of content in your 
namespace that will be given to uses discovering the namespace.");
-W("Think of it as the name of the entry-point to your namespace.");
-W("A common choice is simply 'root'.");
-W("In the tutorial, 'gpl' will be used for the root.");
-P();
-W("You can also specify keywords for the namespace in this dialog.");
-W("An advertisement for your namespace will be published under those 
keywords.");
-W("Whenever users search for any of those keywords, they will learn about your 
namespace.");
-W("<tt>gnunet-gtk</tt> will take a few seconds to create the namespace after 
you press <tt>Ok</tt>.");
-W("Note that part of the process is generating a secret key, so if your system 
seems to hang, type randomly on your keyboard to generate entropy.");
-P();
-W("The <tt>Advanced</tt> tab should now look like this:");
-EP();
-IMG("screenshots/gnunet-gtk-namespace-8.png",
-    "Dialog for entering metadata about the namespace",
-    "CENTER",615,492);
-
-ANCHOR("insert"); H3("Inserting into the Namespace");
-BP();
-W("In order to add content to your namespace, select a file or directory under 
<tt>Available content</tt> and click <tt>Add</tt>.");
-W("A new dialog will pop up where you need to specify an identifier for the 
content.");
-EP();
-IMG("screenshots/gnunet-gtk-namespace-9.png",
-    "The 'Advanced' Tab in file-sharing",
-    "CENTER",487,177);
-BP();
-W("The identifier is like a keyword, except that users need to use the 
identifier in conjunction with the namespace to find the content.");
-W("While not required, the first bit of content that we will publish in the 
namespace will also be the root of the namespace, hence we will enter 'gpl' for 
the identifier.");
-W("The <tt>Next Identifier</tt> is the identifier that will be used for any 
updates to the content published under <tt>Identifier</tt>.");
-W("If users search the namespace using the identifier, they will automatically 
also search for such updates.");
-W("Knowing that we will publish the GPLv2 as the root, we determine that a 
good name for an update would be 'gpl3'.");
-EP();
-
-
-ANCHOR("update"); H3("Updating content");
-BP();
-W("In order to demonstrate updating, we need a second available file.");
-W("Following the same steps that we used for publishing the GPL, we added the 
GPLv3.");
-W("As a result, the <tt>Advanced</tt> tab should look like this:");
-EP();
-IMG("screenshots/gnunet-gtk-namespace-10.png",
-    "The 'Advanced' Tab in file-sharing with GPLv3",
-    "CENTER",615,492);
-BP();
-W("In the namespace tab, we select the original file that we want to publish 
an update for (here COPYING) and in the <tt>Available Content</tt> list we 
select the updated content (here gpl3.txt).");
-W("We can then press the <tt>Update</tt> button to create an update.");
-EP();
-IMG("screenshots/gnunet-gtk-namespace-11.png",
-    "The 'Advanced' Tab in file-sharing",
-    "CENTER",510,137);
-BP();
-W("This time, we are not prompted for an identifier -- 'gpl3' is automatically 
chosen for us (since we are updating COPYING).");
-W("We are given the opportunity to specify an identifier for the update to the 
update.");
-W("We can leave <tt>Next Identifier</tt> emtpy to express that there will 
never be an update to 'gpl3'.");
-W("The resulting namespace overview will then look like this:");
-EP();
-IMG("screenshots/gnunet-gtk-namespace-12.png",
-    "The 'Advanced' Tab in file-sharing with GPLv3 inserted",
-    "CENTER",615,492);
-
-
-ANCHOR("search"); H3("Search");
-BP();
-W("Users that have discovered the namespace using a keyword search can then 
select it from the drop-down list in the <tt>Search and Download</tt> tab 
(behind <tt>in namespace</tt>.");
-W("If a namespace is selected, the <tt>Keyword</tt> is automatically set to 
the root of the namespace (here 'gpl'):");
-EP();
-IMG("screenshots/gnunet-gtk-namespace-13.png",
-    "The 'Search and Download' Tab in file-sharing with the 'Free Software 
Licenses' namespace selected",
-    "CENTER",809,691);
-BP();
-W("The number behind the namespace identifier (here '0') can be used to assign 
the namespace a 'rank'.");
-W("The rank is not used by GNUnet; the idea is that users can use it to 
express (and remember) which namespaces they like best.");
-P();
-W("Now that a namespace has been selected, the <tt>Find</tt> button can be 
used to search it.");
-EP();
-IMG("screenshots/gnunet-gtk-namespace-14.png",
-    "The 'Search and Download' Tab in file-sharing with search results for the 
'Free Software Licenses' namespace",
-    "CENTER",809,691);
-BP();
-W("GNUnet will first find the search result for the identifier 'gpl'.");
-W("Since 'gpl' was specified with an update, GNUnet will then automatically 
search for the update under the identifier 'gpl3'.");
-W("All results found for 'gpl' and its (transitive) updates will be displayed 
in the result list.");
-P();
-W("In this example, using the keyword 'gpl3' would have only resulted in the 
'gpl3.txt' result.");
-EP();
-
-include("html_footer.php3");
-?>

Deleted: GNUnet-docs/WWW/user_testbed.php3
===================================================================
--- GNUnet-docs/WWW/user_testbed.php3   2012-08-27 18:40:59 UTC (rev 23449)
+++ GNUnet-docs/WWW/user_testbed.php3   2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,75 +0,0 @@
-<?php
-include("scripts.php3");
-$title = "GNUnet Documentation: Deploying a GNUnet P2P testbed";
-$description="GNUnet Documentation - An introduction to gnunet-testbed.";
-include("html_header.php3");
-
-H2("Deploying a GNUnet P2P testbed");
-
-BP();
-W("A P2P testbed is an environment in which P2P developers can test new 
ideas.");
-W("Ordinary users can help developers by making their machines available for 
testing.");
-W("This document describes how users can setup their machines to participate 
in a testbed (and details the risks involved) and how developers can use the 
testing infrastructure.");
-
-EP();
-H3("Setting up a testbed client");
-
-BP();
-W("Since setting up a testbed client is quite trivial, the most difficult step 
is to decide if it is a good idea.");
-W("The benefits of providing a client to developers are obvious, the 
developers may be able to develop and test their free software faster.");
-W("On the other hand, the risks are plentiful.");
-W("Setting up a testbed client will allow developers to run <em>arbitrary</em> 
code on the local machine.");
-W("This is a huge security risk.");
-W("While it is possible (and definitely advised) to restrict access to 
developers that use a specific IP, this is still equivalent to giving the 
developers a TELNET account.");
-W("Yes, I said TELNET, not SSH.");
-W("The connection used at the moment is by default not encrypted and not 
authenticated.");
-W("An advanced setup may add an SSH tunnel, but even then you grant developers 
direct access to your machine, with the explicit purpose of running new code.");
-W("The only piece of good news is that <tt>gnunetd</tt> does not require 
root-rights, so you do not have to grant root-access.");
-W("Of course, there are plenty more local root exploits out there than remote 
root exploits.");
-P();
-W("Still reading?");
-W("Ok, then here&prime;s how to do the setup.");
-W("This assumes that you have configured <tt>gnunetd</tt> for normal operation 
already.");
-W("For running a testbed peer, you need to add <tt>testbed</tt> to the list of 
<tt>APPLICATIONS</tt> in <tt>gnunet.conf</tt>.");
-W("You can keep all other applications, too, but you don&prime;t have to.");
-W("Developers will be able to add and remove application services as they 
please anyway -- as long as testbed is present.");
-W("Furthermore, you need to specify the IP address(es) of the developers under 
<tt>TRUSTED</tt>.");
-W("This will allow developers to connect to the peer.");
-W("Note that you may have to punch a hole into your firewall since this 
connection uses the client port (TCP/2087 by default), and not the peer-to-peer 
transports.");
-W("If you want to use an SSH tunnel, exchange an SSH key with the developers 
instead.");
-W("Developers can then use that to connect to the service via loopback.");
-W("Finally, the developers must be notified about the availability of your new 
test-peer.");
-W("The developers may be using an automatic web-based registration system, in 
which case you should follow the instructions there.");
-W("Note that that system could also be advertising an SSH key.");
-W("If there is no web-based registration system, you may want to contact the 
developers directly with your IP and port (you may have changed the 2086 
default).");
-
-EP();
-H3("Setting up a testbed meta-server");
-
-BP();
-W("The purpose of a testbed meta-server is to maintain a list of available 
peers for running tests.");
-W("A meta-server is typically a WWW server which is contacted by peers that 
register and unregister their service.");
-W("The <tt>contrib/</tt> directory contains a few PHP scripts that can be used 
to setup a meta-server that uses an MySQL database to store the list of 
available peers.");
-W("The scripts can be used to create a list of available IP addresses which is 
then fed into <tt>gnunet-testbed</tt>.");
-
-EP();
-H3("Using <tt>gnunet-testbed</tt>");
-BP();
-W("<tt>gnunet-testbed</tt> is the application that exercises control over the 
testbed peers.");
-W("It uses the same %s to communicate with the peers that all of the other 
GNUnet tools use.",
-  intlink_("protocol_cs.php3",
-           "basic client-server protocol"));
-W("The only major difference is that <tt>gnunet-testbed</tt> connects to 
multiple <tt>gnunetd</tt> servers at the same time.");
-W("<tt>gnunet-testbed</tt> excercises its control over the peers by sending 
them various commands.");
-W("The commands include network topology management, loading and unloading of 
other application modules, uploading of files (including code that can then be 
loaded as a module!), configuration, statistics and the execution of arbitrary 
commands.");
-W("<tt>gnunet-testbed</tt> features a shell (default is BASH) to script the 
execution.");
-W("BASH was chosen since this relieves the developers from implementing a new 
scripting language and the users from learning a new toy language.");
-W("When invoked, <tt>gnunet-testbed</tt> opens a BASH shell with the 
<tt>@GTB@</tt> prompt.");
-W("At that prompt, additional testbed specific commands are available in 
addition to everything else that can be done with the shell.");
-W("The results of the testbed commands (standard output and return values, to 
be precise), can be processed with other bash commands in the usual way.");
-W("For documentation on BASH itself, see <tt>man bash</tt>.");
-W("The complete list of testbed specific commands is changing frequently and 
should be documented in the <tt>gnunet-testbed</tt> man page.");
-EP();
-
-include("html_footer.php3");
-?>

Copied: gnunet-www/GNUnet/favicon.ico (from rev 23421, 
GNUnet-docs/WWW/favicon.ico)
===================================================================
(Binary files differ)

Copied: gnunet-www/GNUnet/logos/osx.png (from rev 23421, 
GNUnet-docs/WWW/logos/osx.png)
===================================================================
(Binary files differ)

Copied: gnunet-www/GNUnet/logos/vmware.png (from rev 23421, 
GNUnet-docs/WWW/logos/vmware.png)
===================================================================
(Binary files differ)

Deleted: gnunet-www/freeway-logos/contact.php
===================================================================
--- GNUnet-docs/WWW/freeway/contact.php 2012-08-25 14:19:21 UTC (rev 23421)
+++ gnunet-www/freeway-logos/contact.php        2012-08-27 18:51:04 UTC (rev 
23450)
@@ -1,10 +0,0 @@
-<?php
-include('scripts.inc.php');
-start('Freeway: Contact');
-
-H2('Bugtracker');
-P();
-W('Freeway uses %s.', extlink_('https://gnunet.org/mantis/', 'GNUnet\'s 
bugtracking system'));
-W('Always select "freeway" as the category when reporting bugs in Freeway.');
-stop();
-?>

Deleted: gnunet-www/freeway-logos/freeway.css
===================================================================
--- GNUnet-docs/WWW/freeway/freeway.css 2012-08-25 14:19:21 UTC (rev 23421)
+++ gnunet-www/freeway-logos/freeway.css        2012-08-27 18:51:04 UTC (rev 
23450)
@@ -1,19 +0,0 @@
-a {color: #8B4513; text-decoration: none;}
-a:visited {color: #665340;}
-#banner {background: #D2691E url("freeway.png") top right no-repeat; border: 
10px solid #D2691E; color: #D3D3D3; font-size: 12px; height: 75px;}
-#banner a {color: #D3D3D3;}
-#banner h1 a {color: #FFFFFF;}
-body {font-family: sans-serif; margin: 0;}
-.command {background: #D3D3D3; border: 1pt solid #808080; font-family: 
monospace; font-size: 10pt;}
-#copyright {background: #D3D3D3; border: 1pt solid #808080; font-family: 
monospace; font-size: 8pt; margin-bottom: 1em; margin-top: 1em; padding: 1em;}
-#edit {text-align: center; font-size: 10pt;}
-h1 {color: #FFFFFF; font-size: 35px; margin: 0; padding-top: 10px;}
-h2 {background: #D2691E; border: 1pt solid #8B4513; color: #FFFFFF; display: 
block; font-size: 16pt; padding: 0.1em; text-align: center;}
-hr {background: #808080; border: none; height: 1pt; width: 100%;}
-#i18nhtml {margin-top: 3em;}
-#languages {font-size: 8pt; margin: 0; padding: 0; text-align: center;}
-.navigation {width: 100%; border-collapse: collapse;}
-.navigation tr {background: #D3D3D3;}
-.navigation tr td {text-align: center;}
-.navigation tr td a {display: block; font-size: 10pt; font-weight: bold; 
padding: 0.1em;}
-p {font-size: 10pt; margin: 1em;}
\ No newline at end of file

Deleted: gnunet-www/freeway-logos/index.php
===================================================================
--- GNUnet-docs/WWW/freeway/index.php   2012-08-25 14:19:21 UTC (rev 23421)
+++ gnunet-www/freeway-logos/index.php  2012-08-27 18:51:04 UTC (rev 23450)
@@ -1,29 +0,0 @@
-<?php
-include('scripts.inc.php');
-start('Freeway');
-
-H2('Requirements');
-P();
-W('Freeway requires an installed copy of GNUnet in order to use the native 
modules.');
-W('Currently, Freeway will not work unless GNUnet has been installed.');
-W('You can obtain GNUnet from the %s.', intlink_('http://gnunet.org/', 'GNUnet 
website'));
-P();
-W('The Freeway build scripts use Sh, Autotools, Make, Ant, and Jikes.');
-W('You will also need a working C toolchain and Java runtime environment.');
-H2('Getting Freeway');
-P();
-W('There are no official releases available.');
-W('The latest developer code can be checked out of the %s.', 
extlink_('https://gnunet.org/svn/freeway/', 'SVN repository'));
-H2('Compiling');
-P();
-W('To generate the build scripts, run %s.', '<span class="command">sh 
bootstrap</span>');
-W('Then run %s.', '<span class="command">sh configure</span>');
-W('If configure doesn\'t find GNUnet, you may need to use %s.', '<span 
class="command">sh configure --with-gnunet=&lt;path to GNUnet&gt;</span>');
-W('Finally, build Freeway and its native components by running %s.', '<span 
class="command">sh build.sh</span>');
-H2('Running Freeway');
-P();
-W('After Freeway has been compiled, it can be run using %s.', '<span 
class="command">sh etc/gnunetd.sh</span>');
-W('Note: recent versions of Freeway probably only support the native %s 
application.', '<span class="command">gnunet-stats</span>');
-W('See also: %s', intlink_('doc/configuration.php', 
'documentation/configuration'));
-stop();
-?>

Deleted: gnunet-www/freeway-logos/scripts.inc.php
===================================================================
--- GNUnet-docs/WWW/freeway/scripts.inc.php     2012-08-25 14:19:21 UTC (rev 
23421)
+++ gnunet-www/freeway-logos/scripts.inc.php    2012-08-27 18:51:04 UTC (rev 
23450)
@@ -1,52 +0,0 @@
-<?php
-include_once('i18nHTML/i18nhtml.php');
-//$mypath = substr(__FILE__, strlen($_SERVER['DOCUMENT_ROOT']), 
strrpos(__FILE__, '/') - strlen($_SERVER['DOCUMENT_ROOT']));
-$mypath = '/freeway/';
-
-function start($title = 'Freeway') {
-global $mypath;
-?>
-<head>
-<?php TITLE($title); ?>
-<link rel="stylesheet" type="text/css" href="<?php echo $mypath 
?>/freeway.css"/>
-<link rel="icon" type="image/x-icon" href="<?php echo $mypath ?>/favicon.ico"/>
-<link rel="shortcut icon" type="image/x-icon" href="<?php echo $mypath 
?>/favicon.ico"/>
-</head>
-<body>
-<div id="banner">
-<h1><a href="http://gnunet.org/freeway/";>Freeway</a></h1>
-<?php W('%s in Java', intlink_('http://gnunet.org/', 'GNUnet'))?>
-</div>
-<?php
-navigation();
-generateLanguageBar();
-}
-
-function navigation() {
-global $mypath;?>
-<table class="navigation">
-<tr>
-<td><?php intlink($mypath . '/index.php', 'Welcome'); ?></td>
-<td><?php intlink($mypath . '/contact.php', 'Contact'); ?></td>
-<?php /* ?><td><?php intlink($mypath . '/community.php', 'Community'); ?></td>
-<td><?php intlink($mypath . '/faq.php', 'FAQ'); ?></td>
-<td><?php intlink($mypath . '/download.php', 'Download'); ?></td><?php */ ?>
-<td><?php intlink($mypath . '/doc/index.php', 'Documentation'); ?></td>
-<?php /* ?><td><?php intlink($mypath . '/papers.php', 'Papers'); ?></td>
-<td><?php intlink($mypath . '/links.php', 'Links'); ?></td><?php */ ?>
-</tr>
-</table><?php
-}
-
-function stop() {?>
-<hr/>
-<?php navigation(); ?>
-<hr/>
-<div id="copyright">Copyright (C) 2006<br/>
-Verbatim copying and distribution of this entire article<br/>
-is permitted in any medium, provided this notice is preserved.</div>
-<?php generateFooter(); ?>
-</body>
-</html><?php
-}
-?>

Deleted: gnunet-www/gnunet-logos/debian.png
===================================================================
(Binary files differ)

Deleted: gnunet-www/gnunet-logos/gentoo.png
===================================================================
(Binary files differ)

Copied: gnunet-www/gnunet-logos/gnu_with_net.png (from rev 23421, 
GNUnet-docs/WWW/gnu.org/gnu_with_net.png)
===================================================================
(Binary files differ)

Deleted: gnunet-www/gnunet-logos/mandriva.png
===================================================================
(Binary files differ)

Deleted: gnunet-www/gnunet-logos/osx.png
===================================================================
(Binary files differ)

Deleted: gnunet-www/gnunet-logos/suse.png
===================================================================
(Binary files differ)

Deleted: gnunet-www/gnunet-logos/ubuntu.png
===================================================================
(Binary files differ)

Deleted: gnunet-www/gnunet-logos/vmware.png
===================================================================
(Binary files differ)

Deleted: gnunet-www/gnunet-logos/windows.png
===================================================================
(Binary files differ)

Copied: gnunet-www/images/afs-t-shirt.ps (from rev 23421, 
GNUnet-docs/WWW/t-shirt.ps)
===================================================================
--- gnunet-www/images/afs-t-shirt.ps                            (rev 0)
+++ gnunet-www/images/afs-t-shirt.ps    2012-08-27 18:51:04 UTC (rev 23450)
@@ -0,0 +1,700 @@
+%!PS-Adobe-2.0
+%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software
+%%Title: sss.dvi
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 0 0 596 842
+%%DocumentPaperSizes: a4
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: dvips sss.dvi -o o.ps
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource:  TeX output 2003.07.19:1007
+%%BeginProcSet: texc.pro
+%!
+/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
+N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
+mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
+0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
+landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
+mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
+matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
+exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
+statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
+N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
+/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
+/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
+array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
+df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
+definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
+}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
+B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
+1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
+1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
+0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
+sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
+rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
+gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
+/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
+/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
+A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
+get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
+ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
+fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
+{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
+chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
+1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
+forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
+/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
+}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
+bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
+mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
+SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
+userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
+1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
+/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
+(LaserWriter 16/600)]{A length product length le{A length product exch 0
+exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
+end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
+grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
+imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
+exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
+fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
+delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
+B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
+p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
+rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
+
+%%EndProcSet
+%%BeginProcSet: special.pro
+%!
+TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N
+/vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N
+/rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N
+/@address@hidden div/hsc X}B/@address@hidden div/vsc X}B/@hsize{
+/hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho
+X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B
+/@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{
+/urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known
+{userdict/md get type/dicttype eq{userdict begin md length 10 add md
+maxlength ge{/md md dup length 20 add dict copy def}if end md begin
+/letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S
+atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{
+itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll
+transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll
+curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf
+pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}
+if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1
+-1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3
+get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip
+yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub
+neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{
+noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop
+90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get
+neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr
+1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr
+2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4
+-1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S
+TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{
+Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale
+}if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState
+save N userdict maxlength dict begin/magscale true def normalscale
+currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts
+/psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x
+psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx
+psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub
+TR/showpage{}N/erasepage{}N/copypage{}N/p 3 def @MacSetUp}N/doclip{
+psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2
+roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath
+moveto}N/endTexFig{end psf$SavedState restore}N/@beginspecial{SDict
+begin/SpecialSave save N gsave normalscale currentpoint TR
address@hidden count/ocount X/dcount countdictstack N}N/@setspecial{
+CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto
+closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx
+sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR
+}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse
+CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury
+lineto closepath clip}if/showpage{}N/erasepage{}N/copypage{}N newpath}N
+/@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{end}
+repeat grestore SpecialSave restore end}N/@defspecial{SDict begin}N
+/@fedspecial{end}B/li{lineto}B/rl{rlineto}B/rc{rcurveto}B/np{/SaveX
+currentpoint/SaveY X N 1 setlinecap newpath}N/st{stroke SaveX SaveY
+moveto}N/fil{fill SaveX SaveY moveto}N/ellipse{/endangle X/startangle X
+/yrad X/xrad X/savematrix matrix currentmatrix N TR xrad yrad scale 0 0
+1 startangle endangle arc savematrix setmatrix}N end
+
+%%EndProcSet
+TeXDict begin 39158280 55380996 1000 600 600 (sss.dvi)
address@hidden
+%DVIPSBitmapFont: Fa cmss10 14.4 1
+/Fa 1 50 df<EC03801407140F143F14FF1303131F0007B5FCB6FCA413FD13E1EAF80112
+00B3B3B3A5B8FCA7285175D03C>49 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fb cmcsc10 29.86 3
+/Fb 3 118 df[<962607FFF8160F4EB600C04B7E063F15F84DB8153F050F05C0147F053F
+05F014FF94B900FC5B0403DB80077F040F02F0C7393FFF8003043F91C800076D5A93B500
+F80300EBF00F030302E093383FF81F4B0280EE1FFC4B49CA3807FE3F033F01F8716C5A4B
+49050090B5FC92B548844A028084020791CC7E4A49854A49854A49854A49855E91B54885
+494A8649894991CEFC494987A2494987495B8B495B8B90B5FC4B875A5D488AA2485CA248
+1F7FA292D0FC5A203FA2485BA37AC7FC489CC8FCA35CA2B5FCB17EA280982603FFFCED0F
+FE9AB8FC7EA46C7F98C70007EDFC00E3001F14E06C775C6F86785C7E8A6C80A27E817E81
+7F817F817F6D7FA26D7F6D806D807F6E7F826E6D616E7F6E7F6E6D61020114C06E6E606F
+6D606F01FC60030F01FFF07FDF6F6E933801FF8F6F02F05E030002FC041F1307043FD9FF
+8092387FFE03040F02F8913907FFF8010403DAFFC090B5487E040092B700C0137F053F95
+C7123F050F05FC140F050105F06EC7FCDD003F048091C8FC060103F8CBFCDE000749CCFC
+>135 133 115 257 159 103 D<B700E04DB46CECFFC07096B7FCA2828282A2D800076E
+DD0007EDF000D9003F6E050015800C3F49C7FC71060F13F871725B71725BA203BF6D725B
+71725B039F7F158F03877F7272C8FC15830381808403808082707F8482707F8470808270
+808582717F717F8583717F8583718071808683727F86727F84727F868472808772808473
+7F8785737F87737F85738088857380747F8886747F88747F8674808986748089757F8775
+7F8987757F1E807514C0877514E01EF0887613F81EFC7613FE887613FF67888888A28989
+A28989894A7E8989A24A6C85496D868A497F496D86011F01FF86017F14C00003B600F885
+B800E0848AA28A8BA201C0C7007F1A3E827F75FE98>110 D<D8FFF8DB7FFC4BB46CECFF
+C090B895B7FCA6D8001F03E0CA0007EDF00001014ACC15806D4A073F49C7FC6E49070F13
+F8785B6E49735BA2785B785BA479C8FCB3B3B3B26E646782A36E515AA2826E1B03676E1B
+0770626E1B0F676E6D191F676F6D183F6F505A7118FF6F6D96C9FC6F4F5A6F6D17036F6D
+4D5A6F6D4D5A6F6DEF3FF0706C4D5A7001C04B485A706D4B5B7001F8030F90CAFC7001FE
+ED7FFE0401D9FFC0903803FFF87002FC013F5B053F90B712C0050F5F05034CCBFCDD007F
+15F8061F15C006014ACCFCDE000F13E0828275FE98>117 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fc cmss10 29.86 6
+/Fc 6 117 df[<93B512C0033FECFF800203B712F8021F16FF91B912C0010318F0011F18
+FC017F18FF90BB7E00031AE0000F864886007F86BC7E876C922680007F158003F0C71203
+92C96C14C06C01FC041F14E002E0826C0180040314F049CA7E01F87114F86C5A01C07213
+FC5B6CCC7E00041BFECD7EA47413FFAB62A21CFEA262A25013FCA297B5FC1CF8614F14F0
+61071F14E0614F14C096B6FC4E15804E15004E5C4E5C634E5C4E5C4E5C95B65A50C7FC4D
+5C4D5C624D5C4D5CA24D5C4D91C8FC614D5BA294B55A615E61615E615E96C9FCA24C5BA2
+605E60A25E60A3605EA260A593B5FC60B3A293CCFCB3A60303B512E0B3A3>88
+175 114 302 117 63 D[<50B512F0087FECFFE00707B8FC073F17F04EBAFC060F19E006
+3F19F895BCFC05031BC0050F1BF0053F1BFC4DF3FF804CBE12C05E160F4C1D804C933880
+003F93B700F0C8FC4B048015074B03FCCAFC4B03F0171F4B03C0050714004B92CB12014B
+02FC727E4B4A191F92B600E019074A4B854A92CE5A4A4A1B7E4D1B1E4A4A1B0E4A4A1B06
+4A4A98C7FC4A5C5F91B6D1FC495CA2495C5E495C5B5E495CA2495CA24991D2FCA290B55A
+A2485CA25D5A5D5AA25D5A5DA35A5DA34891D3FCA5485BA7B55AB3A26C7F99B912F0A66C
+7FA56C80A3816C98C9FCA3817E81A27E817E81A26C80A26D7FA26D80A26D80A26D80827F
+6D80826D80A26D806E80836E806E806E806E80836E806E15C06E816F14F86F806F14FF6F
+15C06F03F05F6F03FC171F6FDBFF804BB6FC6F04F0153F043FDBFF80013FB7FC7093BAFC
+82160382706C1CC0711C00050F1BFC05031BF005001B80063F07FCC7FC060F19E0060196
+C8FCDE003F17F0070794C9FCDF007F15C0080102E0CAFC>132 178
+112 302 165 71 D<EF1FFF4CB512F8040F14FF047F15E04BB712F8030716FE031F824B
+17C092B97E4A844A18FC020F844A845C4A8591B6D8F80181499226C0001F80494AC71207
+04F8020180494A6E6C7F4902C081494A6F7F93C97E4949707F4949824B707F90B5488275
+1380485C4B83481CC04B834891CBFC7513E0485BA24A7213F05AA24A845A1DF84A84A348
+5BA291BCFCA21DFCA2BEFCAA02C0CEFCA66C7FA5807EA3807E80A27E80A26C7FA26C8081
+7E816C6E19106F19306D1BF06F18016D6D18076D6D180F04C0173F6D6E17FF6D6E040313
+F86D02FC160F6D02FF167F05C00203B5FC6D03F0141F6E02FF0107B6FC6E92B8FC800207
+1AF06E1AC06E1A806EF1FE00033F606F18F0030718C0030195C7FC6F6C16F8041F16C004
+034BC8FCDC007F14E0050301F8C9FC5E7678F26E>101 D<F0FFFC051FEBFFE0B500E091
+B612FC040315FF041F16C04C16F093B87E0303834B834B83033F844B8492BA7E14E102E3
+8502E7EC000F04F801008102EF01E0143F91B50080020F8093C812034B6F804B814B825D
+4B707FA24B82A24B82A292CA1580A25C86A25CA35CA65CB3B3B3AF59716DF080>110
+D<F0FFF8051FEBFFC04CB612FC040FEDFF80043F16E093B812F8030317FE030F717E4B84
+037F18F092BA7E4A85020719FF4A864A864ADB800F814A02F8C78191B600C0021F804992
+C80007804902FC0301804C814902E0043F7F494A7080494A708093CA7E49497180494971
+804B8390B548727FA2484A727F4B8448894B84488992CC7E481E804A85A2481EC04A85A2
+481EE0A24A85A2481EF0A44A86A2B51DF8AE6E97B5FCA26C1EF0A46E61A26C1EE0A26E61
+A26C1EC06E61A26C6E4E1480A36C6E4E14006F606C656F606C6E95B55AA26C6E4D5C6D6D
+4D5C6F5F6D6E4C5C705E6D6E4C5C6D02F893B65A6D6E4B92C7FC6D02FF03075C05C0141F
+6D03F891B65A6D9226FF800F5D6E92B85A6E626E62020797C8FC6E616E616E61033F18E0
+030F18806F95C9FC030117FC6F6C16F0040F1680040103FCCAFCDC003F14E0050101FCCB
+FC6D7679F27C>I[<913807FFFEB3AEBC1280AFC7000F49CAFCB3B3B3B082A47115806E17
+0171EC07C01A1F71143F71EB01FF6E6E010713E005FE90B5FC94B7FC1BF080A26E18F8A2
+811BE06F17806FEEFE006F16F06F16C06F4BC7FC6F15E06F6C49C8FC041F1380>77
+145 123 269 90 116 D E
+%EndDVIPSBitmapFont
+end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%BeginPaperSize: a4
+a4
+%%EndPaperSize
+
+%%EndSetup
+%%Page: 1 1
+1 0 bop 250 2571 a @beginspecial 0 @llx 0 @lly 136 @urx
+104 @ury 4080 @rwi @setspecial
+%%BeginDocument: afs.eps
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 136 104
+%%HiResBoundingBox: 0.000000 0.000000 135.849731 103.306396
+%.........................................
+%%Title GNUnet Anonymous File Sharing Logo
+%%Creator: Alex Jones
+%%CreationDate: 2003/04/21 19:53:24
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 2
+%%EndComments
+%%BeginProlog
+% This copyright applies to everything between here and the %%EndProlog:
+% Copyright (C) 2002 artofcode LLC, Benicia, CA.  All rights reserved.
+%%BeginResource: procset GS_epswrite_2_0_1001
+/GS_epswrite_2_0_1001 80 dict dup begin
+/PageSize 2 array def/setpagesize{ PageSize aload pop 3 index eq exch
+4 index eq and{ pop pop pop}{ PageSize dup  1
+5 -1 roll put 0 4 -1 roll put dup null eq {false} {dup where} ifelse{ exch get 
exec}
+{ pop/setpagedevice where
+{ pop 1 dict dup /PageSize PageSize put setpagedevice}
+{ /setpage where{ pop PageSize aload pop pageparams 3 {exch pop} repeat
+setpage}if}ifelse}ifelse}ifelse} bind def
+/!{bind def}bind def/#{load def}!/N/counttomark #
+/rG{3{3 -1 roll 255 div}repeat setrgbcolor}!/G{255 div setgray}!/K{0 G}!
+/r6{dup 3 -1 roll rG}!/r5{dup 3 1 roll rG}!/r3{dup rG}!
+/w/setlinewidth #/J/setlinecap #
+/j/setlinejoin #/M/setmiterlimit #/d/setdash #/i/setflat #
+/m/moveto #/l/lineto #/c/rcurveto #
+/p{N 2 idiv{N -2 roll rlineto}repeat}!
+/P{N 0 gt{N -2 roll moveto p}if}!
+/h{p closepath}!/H{P closepath}!
+/lx{0 rlineto}!/ly{0 exch rlineto}!/v{0 0 6 2 roll c}!/y{2 copy c}!
+/re{4 -2 roll m exch dup lx exch ly neg lx h}!
+/^{3 index neg 3 index neg}!
+/f{P fill}!/f*{P eofill}!/s{H stroke}!/S{P stroke}!
+/q/gsave #/Q/grestore #/rf{re fill}!
+/Y{P clip newpath}!/Y*{P eoclip newpath}!/rY{re Y}!
+/|={pop exch 4 1 roll 3 array astore cvx exch 1 index def exec}!
+/|{exch string readstring |=}!
+/+{dup type/nametype eq{2 index 7 add -3 bitshift 2 index mul}if}!
+/@/currentfile #/${+ @ |}!
+/B{{2 copy string{readstring pop}aload pop 4 array astore cvx
+3 1 roll}repeat pop pop true}!
+/Ix{[1 0 0 1 11 -2 roll exch neg exch neg]exch}!
+/,{true exch Ix imagemask}!/If{false exch Ix imagemask}!/I{exch Ix image}!
+/Ic{exch Ix false 3 colorimage}!
+/F{/Columns counttomark 3 add -2 roll/Rows exch/K -1/BlackIs1 true>>
+/CCITTFaxDecode filter}!/FX{<</EndOfBlock false F}!
+/X{/ASCII85Decode filter}!/@X{@ X}!/&2{2 index 2 index}!
+/@F{@ &2<<F}!/@address@hidden &2 FX}!
+/$X{+ @X |}!/&4{4 index 4 index}!/$F{+ @ &4<<F |}!/$C{+ @X &4 FX |}!
+/IC{3 1 roll 10 dict begin 1{/ImageType/Interpolate/Decode/DataSource
+/ImageMatrix/BitsPerComponent/Height/Width}{exch def}forall
+currentdict end image}!
+/~{@ read {pop} if}!
+end readonly def
+%%EndResource
+/pagesave null def
+%%EndProlog
+%%Page: 1 1
+%%BeginPageSetup
+GS_epswrite_2_0_1001 begin
+/pagesave save store 100 dict begin
+0.1 0.1 scale
+%%EndPageSetup
+gsave mark
+K
+0 0 0 0 rf
+Q q
+0 0 250000 0 0 250000 ^ Y
+255 G
+900 304 m
+1 0 2 0 3 0 c
+0 -1 0 -2 y
+0 0 0 -1 v
+1 -1 0 -3 -2 -4 c
+0 -1 0 -3 -1 -5 c
+0 -1 0 -1 -1 -2 c
+0 -1 -1 -2 -1 -4 c
+-1 0 -2 -1 -2 -2 c
+-1 -1 -1 -1 y
+0 -1 -1 -2 -1 -4 c
+1 0 2 0 v
+1 2 2 5 3 7 c
+3 8 5 15 8 23 c
+-4 -1 -8 -2 -12 -5 c
+-9 -4 -18 -8 -26 -12 c
+-1 -1 p
+-1 0 -2 -1 v
+0 -1 0 -2 0 -4 c
+-1 -2 -1 -5 -1 -7 c
+1 0 2 1 y
+-1 3 -2 5 -1 6 c
+1 1 1 2 2 2 c
+2 1 3 1 4 1 c
+1 3 3 4 7 5 c
+3 0 5 2 8 4 c
+1 1 2 2 3 3 c
+2 0 3 -1 4 -1 c
+1 1 1 2 2 2 c
+1 1 1 1 1 2 c
+1 0 2 0 y
+1 0 1 0 y
+f
+923 306 m
+2 0 3 -1 3 -2 c
+3 -4 4 -8 5 -13 c
+1 -2 1 -6 0 -11 c
+1 -4 1 -9 -2 -16 c
+-1 -1 -1 -2 -2 -3 c
+0 0 0 -1 v
+0 0 0 -1 v
+-1 0 -1 0 0 0 c
+0 -1 1 -3 1 -5 c
+-1 -3 -2 -5 -3 -7 c
+-1 0 -1 -1 -1 -2 c
+-1 0 -1 -1 y
+0 -4 -1 -8 -2 -12 c
+0 1 p
+0 1 0 1 1 1 c
+1 0 2 -1 v
+1 5 2 10 4 15 c
+1 6 2 12 4 17 c
+6 37 -2 52 -25 44 c
+-3 -8 -5 -15 -8 -23 c
+-1 -2 -2 -5 -3 -7 c
+1 -1 2 -1 4 -2 c
+0 2 1 4 1 6 c
+0 3 1 6 3 9 c
+0 1 0 2 1 3 c
+0 1 0 2 0 3 c
+2 3 3 5 5 8 c
+0 0 1 0 v
+0 1 0 1 y
+1 0 2 0 3 0 c
+3 0 6 -1 9 -1 c
+f
+866 286 m
+0 2 0 3 0 4 c
+-1 0 -2 -1 -4 -1 c
+1 -1 1 -2 1 -3 c
+1 -2 1 -5 2 -7 c
+0 2 0 5 1 7 c
+f
+907 203 m
+-1 -1 -2 -3 -2 -5 c
+-1 -1 -1 -2 -2 -2 c
+-1 -7 -5 -12 -11 -15 c
+-1 0 -1 -2 -2 -3 c
+-2 -4 -5 -8 -8 -11 c
+1 0 1 -1 v
+10 10 18 21 26 34 c
+1 2 2 4 4 7 c
+1 3 2 6 4 9 c
+-2 0 -2 1 -2 2 c
+-3 -5 -5 -10 -8 -15 c
+f
+870 154 m
+1 0 2 1 2 2 c
+0 0 0 1 v
+-1 0 -1 1 y
+-1 -1 -2 -2 -4 -3 c
+-1 0 -2 -1 -3 -3 c
+1 0 2 0 2 1 c
+2 0 3 0 4 1 c
+f
+851 139 m
+0 1 0 2 1 3 c
+0 1 1 1 1 2 c
+-1 0 p
+0 -1 -1 -2 -3 -3 c
+-3 -2 -6 -4 -10 -5 c
+-3 -4 -7 -7 -12 -8 c
+-2 -1 -5 -3 -7 -5 c
+-5 -3 -9 -4 -14 -3 c
+-7 -5 -14 -9 -23 -13 c
+1 0 p
+10 4 21 8 31 13 c
+3 1 7 3 11 5 c
+1 0 2 1 3 1 c
+5 3 10 6 15 9 c
+2 1 5 3 7 4 c
+f
+873 154 m
+0 0 1 0 v
+-1 1 -1 1 y
+0 0 0 -1 v
+f
+12.5 w
+3.86371 M
+1 J
+1 j
+K
+1082 619 m
+-1 -1 -2 -2 v
+-4 -3 -9 -7 -15 -11 c
+-13 -4 p
+-7 0 -14 0 -19 2 c
+-19 4 -35 13 -50 28 c
+-18 16 -33 33 -46 53 c
+-8 10 -14 21 -18 32 c
+-4 10 -6 23 -6 37 c
+0 5 1 8 2 11 c
+1 2 2 4 4 6 c
+6 7 13 13 20 19 c
+3 3 6 6 9 8 c
+S
+452 801 m
+-7 5 -15 9 -22 13 c
+-5 2 -10 4 -16 7 c
+-7 2 -13 4 -18 5 c
+-6 2 -12 3 -18 4 c
+-12 1 -25 2 -39 1 c
+-38 -4 p
+-24 -4 -45 -9 -63 -16 c
+-2 -1 -5 -2 -8 -4 c
+-12 -6 -25 -13 -37 -18 c
+-9 -4 -16 -7 -24 -11 c
+-24 -8 p
+-10 -4 -21 -7 -32 -10 c
+-18 -5 -31 -1 -40 10 c
+-6 6 -10 14 -12 25 c
+-1 5 -2 9 -3 13 c
+-1 8 -2 15 -3 22 c
+-1 20 0 40 3 61 c
+1 5 2 11 3 16 c
+1 5 2 9 4 14 c
+10 33 22 68 38 104 c
+-17 -21 -32 -44 -45 -71 c
+-4 -9 -8 -18 -12 -28 c
+-2 -5 -4 -10 -6 -16 c
+-2 -4 -3 -9 -5 -15 c
+-2 -7 -5 -15 -7 -22 c
+-2 -7 -4 -14 -5 -22 c
+-2 -7 -3 -14 -4 -21 c
+-3 -21 -4 -41 -2 -60 c
+1 -11 3 -21 6 -32 c
+2 -11 6 -23 10 -33 c
+1 -2 1 -4 2 -5 c
+5 -15 14 -27 23 -37 c
+4 -3 7 -6 11 -9 c
+24 -11 50 -10 74 4 c
+16 9 32 15 50 18 c
+7 2 15 3 24 3 c
+1 0 2 0 v
+1 0 3 0 5 0 c
+6 -1 13 -2 18 -5 c
+6 -3 11 -6 17 -9 c
+6 -2 11 -5 14 -8 c
+2 -2 4 -3 7 -5 c
+2 -2 5 -4 7 -7 c
+14 -16 p
+3 -4 7 -8 10 -12 c
+S
+452 801 m
+11 0 21 3 29 10 c
+11 7 22 13 31 18 c
+4 3 9 5 16 8 c
+48 25 100 39 157 41 c
+18 0 p
+14 1 28 1 41 0 c
+12 -1 25 -3 40 -4 c
+33 -7 65 -18 95 -36 c
+1 0 2 -1 3 -1 c
+10 -5 19 -11 27 -17 c
+5 -4 10 -7 15 -10 c
+6 -5 14 -9 24 -12 c
+S
+328 605 m
+6 -2 12 -3 18 -4 c
+3 0 5 0 8 0 c
+2 0 4 0 7 1 c
+1 0 2 0 4 0 c
+20 4 38 14 55 29 c
+16 13 29 27 42 41 c
+17 26 p
+6 10 11 21 14 32 c
+1 5 2 10 3 15 c
+0 2 0 4 0 5 c
+0 5 0 10 -1 14 c
+-2 1 -4 4 -5 6 c
+-2 2 -4 4 -6 6 c
+-2 1 -4 3 -5 4 c
+-2 2 -3 3 -5 4 c
+S
+474 784 m
+-1 2 -3 4 -6 5 c
+0 0 p S
+468 789 m
+-6 5 -11 8 -16 12 c
+S
+474 784 m
+-2 2 -4 4 -6 5 c
+S
+418 516 m
+1 -1 2 -1 y
+3 -1 6 -3 8 -4 c
+5 -3 10 -6 14 -10 c
+5 -3 9 -8 13 -13 c
+6 0 12 -1 19 -1 c
+157 1 p
+1 3 2 5 4 7 c
+4 10 4 17 0 23 c
+-2 2 -3 3 -4 4 c
+-10 9 -30 13 -60 14 c
+-23 1 -46 0 -68 -3 c
+-21 -2 -41 -5 -61 -11 c
+-5 -1 -9 -2 -14 -3 c
+-3 -1 -5 -2 -8 -3 c
+-1 0 -1 0 -2 0 c
+h
+S
+311 617 m
+1 0 2 -1 2 -2 c
+4 -3 8 -6 13 -9 c
+S
+1082 619 0 -195 P
+0 -34 -4 -66 -11 -98 c
+0 -1 0 -2 v
+-9 -40 -24 -77 -43 -112 c
+-3 -4 -5 -8 -7 -12 c
+-2 -3 -4 -6 -5 -9 c
+-3 -4 -6 -9 -9 -13 c
+-5 -7 -10 -14 -16 -21 c
+-1 -2 -2 -3 -3 -4 c
+-18 -21 p
+-12 -14 -25 -26 -38 -38 c
+-17 -14 -35 -26 -53 -37 c
+-5 -2 -9 -4 -13 -7 c
+-34 -16 -70 -27 -108 -31 c
+-4 0 -9 0 -13 -1 c
+-46 -2 p
+-5 0 -11 0 -16 1 c
+-50 2 -95 13 -138 33 c
+-43 21 -83 50 -119 89 c
+-52 55 -87 117 -103 187 c
+-8 31 -11 63 -12 97 c
+0 194 p S
+948 798 m
+9 8 17 13 26 17 c
+4 2 9 4 14 7 c
+6 3 12 5 17 6 c
+5 1 10 2 16 3 c
+11 1 22 2 33 1 c
+1 0 3 0 4 0 c
+28 -3 p
+1 0 2 0 3 0 c
+23 -4 43 -10 60 -17 c
+3 -1 5 -2 7 -4 c
+12 -6 23 -12 35 -18 c
+7 -4 14 -7 21 -10 c
+18 -8 p
+11 -3 23 -7 34 -10 c
+10 -3 18 -3 25 0 c
+11 4 18 16 22 35 c
+7 32 8 64 3 95 c
+-1 6 -2 12 -3 17 c
+-1 5 -3 9 -3 13 c
+-6 19 -12 39 -19 60 c
+-5 14 -10 29 -16 44 c
+6 -7 10 -15 16 -23 c
+14 -22 26 -47 36 -75 c
+2 -6 3 -11 5 -16 c
+2 -5 3 -10 5 -15 c
+3 -8 5 -15 7 -23 c
+1 -7 3 -14 5 -22 c
+7 -39 7 -76 0 -112 c
+-3 -12 -6 -23 -10 -34 c
+-1 -1 -1 -3 -2 -5 c
+-7 -21 -18 -36 -32 -46 c
+-5 -2 -10 -4 -14 -5 c
+-18 -5 -35 -2 -53 10 c
+-14 9 -29 15 -45 18 c
+-8 1 -15 2 -22 2 c
+-6 0 -12 -2 -18 -3 c
+-7 -2 -12 -4 -17 -7 c
+-5 -2 -9 -5 -13 -8 c
+-2 -2 -4 -4 -7 -7 c
+-21 -22 p
+-3 -3 -5 -6 -7 -10 c
+-2 -2 -3 -3 -4 -4 c
+S
+825 535 m
+43 2 84 -3 124 -14 c
+7 -1 15 -4 22 -6 c
+-8 -4 -16 -8 -22 -14 c
+-5 -4 -9 -8 -13 -14 c
+-6 0 -12 -1 -18 -2 c
+-149 2 p
+-19 31 0 47 56 48 c
+h
+S
+620 235 m
+-3 -2 -6 -5 -9 -9 c
+-2 -3 -4 -7 -6 -12 c
+0 -1 -1 -4 -1 -6 c
+0 -3 1 -6 1 -9 c
+4 -11 11 -21 23 -32 c
+6 -5 12 -10 17 -15 c
+10 -7 20 -14 31 -20 c
+2 -1 4 -2 7 -4 c
+6 -3 12 -6 19 -9 c
+10 -5 19 -9 29 -12 c
+12 -3 24 -4 38 -3 c
+14 3 p S
+866 290 m
+-1 0 -2 -1 -4 -1 c
+-2 -1 -4 -2 -5 -3 c
+-11 -4 -21 -7 -31 -11 c
+-6 -2 -12 -4 -17 -5 c
+-10 -3 -20 -5 -31 -8 c
+0 0 p
+-2 0 -4 -1 -6 -1 c
+-5 -1 -10 -2 -15 -3 c
+-10 -1 -20 -3 -29 -4 c
+-4 -1 -7 -1 -10 -1 c
+-6 -1 -11 -2 -16 -2 c
+-2 0 -4 0 -5 -1 c
+-3 0 -5 0 -7 0 c
+-1 0 -2 0 -3 -1 c
+-2 0 -3 0 -4 0 c
+-3 0 -5 0 -7 0 c
+-2 -1 -6 -1 -8 -1 c
+0 0 -1 0 v
+S
+667 248 m
+-2 0 -3 0 -5 0 c
+-18 -1 -32 -6 -42 -13 c
+S
+907 309 m
+-3 -8 -5 -15 -8 -23 c
+-1 -2 -2 -5 -3 -7 c
+-11 -22 -24 -41 -41 -55 c
+-2 -2 -4 -3 -5 -5 c
+0 2 1 3 1 5 c
+5 14 10 33 14 55 c
+S
+866 290 m
+1 1 2 1 y
+1 1 p
+8 4 17 8 26 12 c
+4 3 8 4 12 5 c
+S
+865 279 m
+0 2 0 5 1 7 c
+0 2 0 3 0 4 c
+S
+907 309 m
+23 8 31 -7 25 -44 c
+-2 -5 -3 -11 -4 -17 c
+-2 -5 -3 -10 -4 -15 c
+-7 -17 p
+-2 -3 -3 -6 -4 -9 c
+-2 -3 -3 -5 -4 -7 c
+-8 -13 -16 -24 -26 -34 c
+-11 -10 p
+0 -1 -1 -2 -2 -2 c
+-19 -15 p
+-2 -1 -5 -3 -7 -4 c
+-5 -3 -10 -6 -15 -9 c
+-1 0 -2 -1 -3 -1 c
+-4 -2 -8 -4 -11 -5 c
+-10 -5 -21 -9 -31 -13 c
+S
+667 248 m
+-8 -38 -5 -63 8 -74 c
+-27 12 -45 33 -55 61 c
+S
+cleartomark end end pagesave restore showpage
+%%PageTrailer
+%%Trailer
+%%Pages: 1
+
+%%EndDocument
+ @endspecial 1265 3036 a Fc(Got)83 b Fb(gnu)p Fc(net?)3930
+5670 y Fa(1)p eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF




reply via email to

[Prev in Thread] Current Thread [Next in Thread]