[or-cvs] r9554: Added command support to metatroller. Now supports exit scan (in torflow/trunk: . certs)

mikeperry at seul.org mikeperry at seul.org
Sun Feb 11 03:29:18 UTC 2007


Author: mikeperry
Date: 2007-02-10 22:21:23 -0500 (Sat, 10 Feb 2007)
New Revision: 9554

Added:
   torflow/trunk/certs/
   torflow/trunk/certs/ERRORS/
   torflow/trunk/certs/addons.mozilla.org-63.245.209.31.pem
   torflow/trunk/certs/addons.mozilla.org.pem
   torflow/trunk/certs/chase.com-159.53.60.105.pem
   torflow/trunk/certs/chase.com.pem
   torflow/trunk/certs/login.yahoo.com-209.191.92.114.pem
   torflow/trunk/certs/login.yahoo.com-209.73.168.74.pem
   torflow/trunk/certs/login.yahoo.com-209.73.177.115.pem
   torflow/trunk/certs/login.yahoo.com-69.147.112.160.pem
   torflow/trunk/certs/login.yahoo.com.pem
   torflow/trunk/certs/mail.google.com-209.85.133.18.pem
   torflow/trunk/certs/mail.google.com-209.85.133.19.pem
   torflow/trunk/certs/mail.google.com-209.85.133.83.pem
   torflow/trunk/certs/mail.google.com-209.85.137.18.pem
   torflow/trunk/certs/mail.google.com-209.85.137.19.pem
   torflow/trunk/certs/mail.google.com-209.85.137.83.pem
   torflow/trunk/certs/mail.google.com-209.85.139.18.pem
   torflow/trunk/certs/mail.google.com-209.85.139.19.pem
   torflow/trunk/certs/mail.google.com-209.85.139.83.pem
   torflow/trunk/certs/mail.google.com-216.239.53.18.pem
   torflow/trunk/certs/mail.google.com-216.239.53.19.pem
   torflow/trunk/certs/mail.google.com-216.239.53.83.pem
   torflow/trunk/certs/mail.google.com-216.239.63.19.pem
   torflow/trunk/certs/mail.google.com-216.239.63.83.pem
   torflow/trunk/certs/mail.google.com-64.233.163.18.pem
   torflow/trunk/certs/mail.google.com-64.233.163.19.pem
   torflow/trunk/certs/mail.google.com-64.233.163.83.pem
   torflow/trunk/certs/mail.google.com-64.233.167.18.pem
   torflow/trunk/certs/mail.google.com-64.233.167.19.pem
   torflow/trunk/certs/mail.google.com-64.233.167.83.pem
   torflow/trunk/certs/mail.google.com-64.233.183.17.pem
   torflow/trunk/certs/mail.google.com-64.233.183.18.pem
   torflow/trunk/certs/mail.google.com-64.233.183.19.pem
   torflow/trunk/certs/mail.google.com-64.233.183.83.pem
   torflow/trunk/certs/mail.google.com-64.233.185.19.pem
   torflow/trunk/certs/mail.google.com-64.233.185.83.pem
   torflow/trunk/certs/mail.google.com-64.233.187.19.pem
   torflow/trunk/certs/mail.google.com-64.233.189.83.pem
   torflow/trunk/certs/mail.google.com-66.102.9.19.pem
   torflow/trunk/certs/mail.google.com-66.249.83.19.pem
   torflow/trunk/certs/mail.google.com-66.249.83.83.pem
   torflow/trunk/certs/mail.google.com-66.249.89.19.pem
   torflow/trunk/certs/mail.google.com-66.249.89.83.pem
   torflow/trunk/certs/mail.google.com-66.249.91.18.pem
   torflow/trunk/certs/mail.google.com-66.249.91.19.pem
   torflow/trunk/certs/mail.google.com-66.249.91.83.pem
   torflow/trunk/certs/mail.google.com-66.249.93.18.pem
   torflow/trunk/certs/mail.google.com-66.249.93.19.pem
   torflow/trunk/certs/mail.google.com-66.249.93.83.pem
   torflow/trunk/certs/mail.google.com-72.14.205.17.pem
   torflow/trunk/certs/mail.google.com-72.14.205.18.pem
   torflow/trunk/certs/mail.google.com-72.14.205.19.pem
   torflow/trunk/certs/mail.google.com-72.14.205.83.pem
   torflow/trunk/certs/mail.google.com-72.14.215.19.pem
   torflow/trunk/certs/mail.google.com-72.14.217.83.pem
   torflow/trunk/certs/mail.google.com-72.14.223.18.pem
   torflow/trunk/certs/mail.google.com-72.14.223.83.pem
   torflow/trunk/certs/mail.google.com-72.14.247.18.pem
   torflow/trunk/certs/mail.google.com-72.14.247.19.pem
   torflow/trunk/certs/mail.google.com-72.14.247.83.pem
   torflow/trunk/certs/mail.google.com.pem
   torflow/trunk/certs/www.e-gold.com-209.200.169.10.pem
   torflow/trunk/certs/www.fastmail.fm-66.111.4.55.pem
   torflow/trunk/certs/www.fastmail.fm-66.111.4.56.pem
   torflow/trunk/certs/www.fastmail.fm.pem
   torflow/trunk/certs/www.hushmail.com-65.39.178.42.pem
   torflow/trunk/certs/www.hushmail.com-65.39.178.58.pem
   torflow/trunk/certs/www.hushmail.com.pem
   torflow/trunk/certs/www.paypal.com-216.113.188.65.pem
   torflow/trunk/certs/www.relakks.com-82.209.182.9.pem
   torflow/trunk/certs/www.relakks.com.pem
   torflow/trunk/docs/
   torflow/trunk/soat.pl
   torflow/trunk/speed/
   torflow/trunk/wordlist.txt
Modified:
   torflow/trunk/TorCtl.py
   torflow/trunk/TorUtil.py
   torflow/trunk/metatroller.py
Log:
Added command support to metatroller. Now supports exit scanning with soat.pl
(no node statistics are gethered yet though). 



Modified: torflow/trunk/TorCtl.py
===================================================================
--- torflow/trunk/TorCtl.py	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/TorCtl.py	2007-02-11 03:21:23 UTC (rev 9554)
@@ -513,12 +513,14 @@
         """
         if circid is None:
             circid = "0"
-        lines = self._sendAndRecv("EXTENDCIRCUIT %s %s\r\n"
+        plog("DEBUG", "Extending circuit")
+        lines = self._sendAndRecv("EXTENDCIRCUIT %d %s\r\n"
                                   %(circid, ",".join(hops)))
         tp,msg,_ = lines[0]
         m = re.match(r'EXTENDED (\S*)', msg)
         if not m:
             raise ProtocolError("Bad extended line %r",msg)
+        plog("DEBUG", "Circuit extended")
         return int(m.group(1))
 
     def build_circuit(self, pathlen, nodesel):
@@ -540,22 +542,23 @@
     def redirect_stream(self, streamid, newaddr, newport=""):
         """DOCDOC"""
         if newport:
-            self._sendAndRecv("REDIRECTSTREAM %s %s %s\r\n"%(streamid, newaddr, newport))
+            self._sendAndRecv("REDIRECTSTREAM %d %s %s\r\n"%(streamid, newaddr, newport))
         else:
-            self._sendAndRecv("REDIRECTSTREAM %s %s\r\n"%(streamid, newaddr))
+            self._sendAndRecv("REDIRECTSTREAM %d %s\r\n"%(streamid, newaddr))
 
     def attach_stream(self, streamid, circid):
         """DOCDOC"""
-        self._sendAndRecv("ATTACHSTREAM %s %s\r\n"%(streamid, circid))
+        plog("DEBUG", "Attaching stream: "+str(streamid)+" to "+str(circid))
+        self._sendAndRecv("ATTACHSTREAM %d %d\r\n"%(streamid, circid))
 
     def close_stream(self, streamid, reason=0, flags=()):
         """DOCDOC"""
-        self._sendAndRecv("CLOSESTREAM %s %s %s\r\n"
+        self._sendAndRecv("CLOSESTREAM %d %s %s\r\n"
                           %(streamid, reason, "".join(flags)))
 
     def close_circuit(self, circid, reason=0, flags=()):
         """DOCDOC"""
-        self._sendAndRecv("CLOSECIRCUIT %s %s %s\r\n"
+        self._sendAndRecv("CLOSECIRCUIT %d %s %s\r\n"
                           %(circid, reason, "".join(flags)))
 
     def post_descriptor(self, desc):
@@ -777,7 +780,7 @@
     def new_desc(self, eventtype, identities):
         print " ".join((eventtype, " ".join(identities)))
    
-    def or_conn_status(self, eventtype, status, target, age, read, wrote, 
+    def or_conn_status(self, eventtype, status, target, age, read, wrote,
                        reason, ncircs):
         if age: age = "AGE="+str(age)
         else: age = ""

Modified: torflow/trunk/TorUtil.py
===================================================================
--- torflow/trunk/TorUtil.py	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/TorUtil.py	2007-02-11 03:21:23 UTC (rev 9554)
@@ -21,7 +21,7 @@
 
 __all__ = ["Enum", "Enum2", "quote", "escape_dots", "unescape_dots",
             "BufSock", "secret_to_key", "urandom_rng", "s2k_gen", "s2k_check",
-            "plog"]
+            "plog", "ListenSocket"]
 
 class Enum:
     # Helper: define an ordered dense name-to-number 1-1 mapping.
@@ -87,8 +87,9 @@
 
         while 1:
             s = self._s.recv(128)
-            if not s:
-                raise TorCtlClosed()
+            if not s: return None
+            # XXX: This really does need an exception
+            #    raise ConnectionClosed()
             idx = s.find('\n')
             if idx >= 0:
                 self._buf.append(s[:idx+1])
@@ -108,6 +109,39 @@
     def close(self):
         self._s.close()
 
+# SocketServer.TCPServer is nuts.. 
+class ListenSocket:
+    def __init__(self, listen_ip, port):
+        msg = None
+        self.s = None
+        for res in socket.getaddrinfo(listen_ip, port, socket.AF_UNSPEC,
+                          socket.SOCK_STREAM, 0, socket.AI_PASSIVE):
+            af, socktype, proto, canonname, sa = res
+            try:
+                self.s = socket.socket(af, socktype, proto)
+                self.s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
+            except socket.error, msg:
+                self.s = None
+                continue
+            try:
+                self.s.bind(sa)
+                self.s.listen(1)
+            except socket.error, msg:
+                self.s.close()
+                self.s = None
+                continue
+            break
+        if self.s is None:
+            raise socket.error(msg)
+
+    def accept(self):
+        conn, addr = self.s.accept()
+        return conn
+
+    def close(self):
+        self.s.close()
+
+
 def secret_to_key(secret, s2k_specifier):
     """Used to generate a hashed password string. DOCDOC."""
     c = ord(s2k_specifier[8])

Added: torflow/trunk/certs/addons.mozilla.org-63.245.209.31.pem
===================================================================
--- torflow/trunk/certs/addons.mozilla.org-63.245.209.31.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/addons.mozilla.org-63.245.209.31.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,24 @@
+-----BEGIN CERTIFICATE-----
+MIIEGTCCAwGgAwIBAgIKago1EwAAAAAXOjANBgkqhkiG9w0BAQUFADCBkTELMAkG
+A1UEBhMCVVMxDjAMBgNVBAgTBVRleGFzMRQwEgYDVQQHEwtTYW4gQW50b25pbzEO
+MAwGA1UECxMFR1MgQ0ExJDAiBgNVBAoTG1hSYW1wIFNlY3VyaXR5IFNlcnZpY2Vz
+IEluYzEmMCQGA1UEAxMdWFJhbXAgU2VjdXJpdHkgU2VydmljZXMgR1MgQ0EwHhcN
+MDUwMTA1MDUyNDM2WhcNMDgwMTA1MDU0MDE5WjCBrjELMAkGA1UEBhMCVVMxEzAR
+BgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxGzAZBgNV
+BAoTEk1vemlsbGEgRm91bmRhdGlvbjEWMBQGA1UECxMNKi5tb3ppbGxhLm9yZzEW
+MBQGA1UEAxQNKi5tb3ppbGxhLm9yZzElMCMGCSqGSIb3DQEJARYWaG9zdG1hc3Rl
+ckBtb3ppbGxhLm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAoQtFh92I
+clVWClhIwH2E9KtfVnPPSdjHARF/VLwVF+bzro4IWw3cg02oVUn+bIJF+eJlQ6C6
+v679vH3fDqfFn+eGVKDf5/tOTPxd/o+doY2t1MrB4LRLAgok1He96Fk4dBosDYW3
+IahlqOdq7OcShsWhEB4VvoCRQto6xGLEc20CAwEAAaOB1zCB1DAdBgNVHQ4EFgQU
+tBu4rYOLSwF84VNRzSH3IV5Bd1YwHwYDVR0jBBgwFoAUnh+lTk7x6EgEEPP9bW8K
+Bq//xzswOwYDVR0fBDQwMjAwoC6gLIYqaHR0cDovL2NybC54cmFtcHNlY3VyaXR5
+LmNvbS9YUmFtcEdTQ0EuY3JsMFUGA1UdIAROMEwwSgYLYIZIAYb4RQEHFwMwOzA5
+BggrBgEFBQcCARYtaHR0cDovL3d3dy54cmFtcHNlY3VyaXR5LmNvbS9sZWdhbC9p
+c3N1ZXIuYXNwMA0GCSqGSIb3DQEBBQUAA4IBAQDAZeMy1t7cU2E5Mc966CLESJCs
+9TEFOSi1Mh0flkgpLj/s7eQKXYORTf19kGV2f1TMAJDAyQDsxKjhdKeXacgHDd8K
+S370bEFih/TSUGnUcAoQ/5UfNPG2CvlCOg/1NdRznsqLtmITc/aGH6+VZxzVzcbg
+hTxFQ4Td+qgUAsaRYjfEECRnc2XyEg1Fj2m/CvkAjPqv8m5eL3NLsxjby7/aqwrH
+OL041apxYRre/cmKB/HMbpzFuBET2G426cu23eRRRdGj5QkM6/8VtbfEUOECyH0k
+N6SfHKmfc0GwixX3/RDlllasv+JOSzfb9WrCGg/9lElyDFwrz0QhEVQbIZUp
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/addons.mozilla.org.pem
===================================================================
--- torflow/trunk/certs/addons.mozilla.org.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/addons.mozilla.org.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,24 @@
+-----BEGIN CERTIFICATE-----
+MIIEGTCCAwGgAwIBAgIKago1EwAAAAAXOjANBgkqhkiG9w0BAQUFADCBkTELMAkG
+A1UEBhMCVVMxDjAMBgNVBAgTBVRleGFzMRQwEgYDVQQHEwtTYW4gQW50b25pbzEO
+MAwGA1UECxMFR1MgQ0ExJDAiBgNVBAoTG1hSYW1wIFNlY3VyaXR5IFNlcnZpY2Vz
+IEluYzEmMCQGA1UEAxMdWFJhbXAgU2VjdXJpdHkgU2VydmljZXMgR1MgQ0EwHhcN
+MDUwMTA1MDUyNDM2WhcNMDgwMTA1MDU0MDE5WjCBrjELMAkGA1UEBhMCVVMxEzAR
+BgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxGzAZBgNV
+BAoTEk1vemlsbGEgRm91bmRhdGlvbjEWMBQGA1UECxMNKi5tb3ppbGxhLm9yZzEW
+MBQGA1UEAxQNKi5tb3ppbGxhLm9yZzElMCMGCSqGSIb3DQEJARYWaG9zdG1hc3Rl
+ckBtb3ppbGxhLm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAoQtFh92I
+clVWClhIwH2E9KtfVnPPSdjHARF/VLwVF+bzro4IWw3cg02oVUn+bIJF+eJlQ6C6
+v679vH3fDqfFn+eGVKDf5/tOTPxd/o+doY2t1MrB4LRLAgok1He96Fk4dBosDYW3
+IahlqOdq7OcShsWhEB4VvoCRQto6xGLEc20CAwEAAaOB1zCB1DAdBgNVHQ4EFgQU
+tBu4rYOLSwF84VNRzSH3IV5Bd1YwHwYDVR0jBBgwFoAUnh+lTk7x6EgEEPP9bW8K
+Bq//xzswOwYDVR0fBDQwMjAwoC6gLIYqaHR0cDovL2NybC54cmFtcHNlY3VyaXR5
+LmNvbS9YUmFtcEdTQ0EuY3JsMFUGA1UdIAROMEwwSgYLYIZIAYb4RQEHFwMwOzA5
+BggrBgEFBQcCARYtaHR0cDovL3d3dy54cmFtcHNlY3VyaXR5LmNvbS9sZWdhbC9p
+c3N1ZXIuYXNwMA0GCSqGSIb3DQEBBQUAA4IBAQDAZeMy1t7cU2E5Mc966CLESJCs
+9TEFOSi1Mh0flkgpLj/s7eQKXYORTf19kGV2f1TMAJDAyQDsxKjhdKeXacgHDd8K
+S370bEFih/TSUGnUcAoQ/5UfNPG2CvlCOg/1NdRznsqLtmITc/aGH6+VZxzVzcbg
+hTxFQ4Td+qgUAsaRYjfEECRnc2XyEg1Fj2m/CvkAjPqv8m5eL3NLsxjby7/aqwrH
+OL041apxYRre/cmKB/HMbpzFuBET2G426cu23eRRRdGj5QkM6/8VtbfEUOECyH0k
+N6SfHKmfc0GwixX3/RDlllasv+JOSzfb9WrCGg/9lElyDFwrz0QhEVQbIZUp
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/chase.com-159.53.60.105.pem
===================================================================
--- torflow/trunk/certs/chase.com-159.53.60.105.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/chase.com-159.53.60.105.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,26 @@
+-----BEGIN CERTIFICATE-----
+MIIEYzCCA8ygAwIBAgIQL6jbE3mIxuSP3TfiSumwUDANBgkqhkiG9w0BAQUFADCB
+ujEfMB0GA1UEChMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazEXMBUGA1UECxMOVmVy
+aVNpZ24sIEluYy4xMzAxBgNVBAsTKlZlcmlTaWduIEludGVybmF0aW9uYWwgU2Vy
+dmVyIENBIC0gQ2xhc3MgMzFJMEcGA1UECxNAd3d3LnZlcmlzaWduLmNvbS9DUFMg
+SW5jb3JwLmJ5IFJlZi4gTElBQklMSVRZIExURC4oYyk5NyBWZXJpU2lnbjAeFw0w
+NjA4MjEwMDAwMDBaFw0wNzA4MjEyMzU5NTlaMIGnMQswCQYDVQQGEwJVUzERMA8G
+A1UECBMITmV3IFlvcmsxETAPBgNVBAcUCE5ldyBZb3JrMRcwFQYDVQQKFA5KUE1v
+cmdhbiBDaGFzZTEMMAoGA1UECxQDQ0lHMTMwMQYDVQQLFCpUZXJtcyBvZiB1c2Ug
+YXQgd3d3LnZlcmlzaWduLmNvbS9ycGEgKGMpMDAxFjAUBgNVBAMUDXd3dy5jaGFz
+ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKwbqjpAo2kgOR+pgkrm
+xOC0rdE5ww6ImOYeBcVR72J5R0QUA3AyJDvD02WoYWXbsBPQfsahdFQJPI7bJAZQ
+QqudgZB4fpLDBaLuOp4Ztw0IxmUPzWUO8cXYQmnGH9fDb4xW8WUbAiLKnw30xRT6
+MFRBchaACoz/KamBsf2J3NWVAgMBAAGjggF5MIIBdTAJBgNVHRMEAjAAMAsGA1Ud
+DwQEAwIFoDBGBgNVHR8EPzA9MDugOaA3hjVodHRwOi8vY3JsLnZlcmlzaWduLmNv
+bS9DbGFzczNJbnRlcm5hdGlvbmFsU2VydmVyLmNybDBEBgNVHSAEPTA7MDkGC2CG
+SAGG+EUBBxcDMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LnZlcmlzaWduLmNv
+bS9ycGEwKAYDVR0lBCEwHwYJYIZIAYb4QgQBBggrBgEFBQcDAQYIKwYBBQUHAwIw
+NAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC52ZXJpc2ln
+bi5jb20wbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAH
+BgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
+aXNpZ24uY29tL3ZzbG9nby5naWYwDQYJKoZIhvcNAQEFBQADgYEAknpryGawWL6a
+Jzc3/RgQv6BNoQopTJPut2JvVx7hypqJfNPUc2uwl9ihRKrbjjiFaaeU/KsWURH7
+wO1oY6SLpUECLsCy9/UyIXrB+pTi8ioXRM1PL/fSiMg9C8ZgchvkWzY7N4Uoo9fp
+tUNpFDSzViRguIrzKOjZPBo3dn3mhZU=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/chase.com.pem
===================================================================
--- torflow/trunk/certs/chase.com.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/chase.com.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,26 @@
+-----BEGIN CERTIFICATE-----
+MIIEYzCCA8ygAwIBAgIQL6jbE3mIxuSP3TfiSumwUDANBgkqhkiG9w0BAQUFADCB
+ujEfMB0GA1UEChMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazEXMBUGA1UECxMOVmVy
+aVNpZ24sIEluYy4xMzAxBgNVBAsTKlZlcmlTaWduIEludGVybmF0aW9uYWwgU2Vy
+dmVyIENBIC0gQ2xhc3MgMzFJMEcGA1UECxNAd3d3LnZlcmlzaWduLmNvbS9DUFMg
+SW5jb3JwLmJ5IFJlZi4gTElBQklMSVRZIExURC4oYyk5NyBWZXJpU2lnbjAeFw0w
+NjA4MjEwMDAwMDBaFw0wNzA4MjEyMzU5NTlaMIGnMQswCQYDVQQGEwJVUzERMA8G
+A1UECBMITmV3IFlvcmsxETAPBgNVBAcUCE5ldyBZb3JrMRcwFQYDVQQKFA5KUE1v
+cmdhbiBDaGFzZTEMMAoGA1UECxQDQ0lHMTMwMQYDVQQLFCpUZXJtcyBvZiB1c2Ug
+YXQgd3d3LnZlcmlzaWduLmNvbS9ycGEgKGMpMDAxFjAUBgNVBAMUDXd3dy5jaGFz
+ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKwbqjpAo2kgOR+pgkrm
+xOC0rdE5ww6ImOYeBcVR72J5R0QUA3AyJDvD02WoYWXbsBPQfsahdFQJPI7bJAZQ
+QqudgZB4fpLDBaLuOp4Ztw0IxmUPzWUO8cXYQmnGH9fDb4xW8WUbAiLKnw30xRT6
+MFRBchaACoz/KamBsf2J3NWVAgMBAAGjggF5MIIBdTAJBgNVHRMEAjAAMAsGA1Ud
+DwQEAwIFoDBGBgNVHR8EPzA9MDugOaA3hjVodHRwOi8vY3JsLnZlcmlzaWduLmNv
+bS9DbGFzczNJbnRlcm5hdGlvbmFsU2VydmVyLmNybDBEBgNVHSAEPTA7MDkGC2CG
+SAGG+EUBBxcDMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LnZlcmlzaWduLmNv
+bS9ycGEwKAYDVR0lBCEwHwYJYIZIAYb4QgQBBggrBgEFBQcDAQYIKwYBBQUHAwIw
+NAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC52ZXJpc2ln
+bi5jb20wbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAH
+BgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
+aXNpZ24uY29tL3ZzbG9nby5naWYwDQYJKoZIhvcNAQEFBQADgYEAknpryGawWL6a
+Jzc3/RgQv6BNoQopTJPut2JvVx7hypqJfNPUc2uwl9ihRKrbjjiFaaeU/KsWURH7
+wO1oY6SLpUECLsCy9/UyIXrB+pTi8ioXRM1PL/fSiMg9C8ZgchvkWzY7N4Uoo9fp
+tUNpFDSzViRguIrzKOjZPBo3dn3mhZU=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/login.yahoo.com-209.191.92.114.pem
===================================================================
--- torflow/trunk/certs/login.yahoo.com-209.191.92.114.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/login.yahoo.com-209.191.92.114.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC7TCCAlagAwIBAgIDBaBMMA0GCSqGSIb3DQEBBQUAME4xCzAJBgNVBAYTAlVT
+MRAwDgYDVQQKEwdFcXVpZmF4MS0wKwYDVQQLEyRFcXVpZmF4IFNlY3VyZSBDZXJ0
+aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYwMTA0MTcwOTA2WhcNMTEwMTA0MTcwOTA2
+WjB4MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEUMBIGA1UEBxML
+U2FudGEgQ2xhcmExFDASBgNVBAoUC1lhaG9vISBJbmMuMQ4wDAYDVQQLEwVZYWhv
+bzEYMBYGA1UEAxMPbG9naW4ueWFob28uY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GN
+ADCBiQKBgQC1bE/u7xsEXb5wSthVHYp3DcFFAPU7GhDd1/e7emVUf2DSFru9EqV4
+eNazUE66F0gneiJvKnwdojYi2FmirjoL1NIbig5aiankmv/bPwTim3XBjcWMBaHz
+tZJeoURJGeSQtOnv5F2yIG35I3a4stSvowb1ngOPuIIFIRElRDqABQIDAQABo4Gu
+MIGrMA4GA1UdDwEB/wQEAwIE8DAdBgNVHQ4EFgQUoB5uDJtuauvSrlpKGP8Ok0Ya
+1jIwOgYDVR0fBDMwMTAvoC2gK4YpaHR0cDovL2NybC5nZW90cnVzdC5jb20vY3Js
+cy9zZWN1cmVjYS5jcmwwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gjIBBPM5iQn9Qw
+HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA0GCSqGSIb3DQEBBQUAA4GB
+AFAlZRBD4XSDL4+cntx0ZE5xJ04qbkoSe0xBLmFKEQtBprFSyxN2tkXkjdQAmjsC
+x4IpAaPuffe5AoidPsMc5j3TkPycVtsZnauoA4B9xOLECTOeWFt3N4lZo4aOod+z
+uwLtIWL7usK66NSPZsGlX635P88imxdXoMooxnYDpMTn
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/login.yahoo.com-209.73.168.74.pem
===================================================================
--- torflow/trunk/certs/login.yahoo.com-209.73.168.74.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/login.yahoo.com-209.73.168.74.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC7TCCAlagAwIBAgIDBaBMMA0GCSqGSIb3DQEBBQUAME4xCzAJBgNVBAYTAlVT
+MRAwDgYDVQQKEwdFcXVpZmF4MS0wKwYDVQQLEyRFcXVpZmF4IFNlY3VyZSBDZXJ0
+aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYwMTA0MTcwOTA2WhcNMTEwMTA0MTcwOTA2
+WjB4MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEUMBIGA1UEBxML
+U2FudGEgQ2xhcmExFDASBgNVBAoUC1lhaG9vISBJbmMuMQ4wDAYDVQQLEwVZYWhv
+bzEYMBYGA1UEAxMPbG9naW4ueWFob28uY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GN
+ADCBiQKBgQC1bE/u7xsEXb5wSthVHYp3DcFFAPU7GhDd1/e7emVUf2DSFru9EqV4
+eNazUE66F0gneiJvKnwdojYi2FmirjoL1NIbig5aiankmv/bPwTim3XBjcWMBaHz
+tZJeoURJGeSQtOnv5F2yIG35I3a4stSvowb1ngOPuIIFIRElRDqABQIDAQABo4Gu
+MIGrMA4GA1UdDwEB/wQEAwIE8DAdBgNVHQ4EFgQUoB5uDJtuauvSrlpKGP8Ok0Ya
+1jIwOgYDVR0fBDMwMTAvoC2gK4YpaHR0cDovL2NybC5nZW90cnVzdC5jb20vY3Js
+cy9zZWN1cmVjYS5jcmwwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gjIBBPM5iQn9Qw
+HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA0GCSqGSIb3DQEBBQUAA4GB
+AFAlZRBD4XSDL4+cntx0ZE5xJ04qbkoSe0xBLmFKEQtBprFSyxN2tkXkjdQAmjsC
+x4IpAaPuffe5AoidPsMc5j3TkPycVtsZnauoA4B9xOLECTOeWFt3N4lZo4aOod+z
+uwLtIWL7usK66NSPZsGlX635P88imxdXoMooxnYDpMTn
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/login.yahoo.com-209.73.177.115.pem
===================================================================
--- torflow/trunk/certs/login.yahoo.com-209.73.177.115.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/login.yahoo.com-209.73.177.115.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC7TCCAlagAwIBAgIDBaBMMA0GCSqGSIb3DQEBBQUAME4xCzAJBgNVBAYTAlVT
+MRAwDgYDVQQKEwdFcXVpZmF4MS0wKwYDVQQLEyRFcXVpZmF4IFNlY3VyZSBDZXJ0
+aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYwMTA0MTcwOTA2WhcNMTEwMTA0MTcwOTA2
+WjB4MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEUMBIGA1UEBxML
+U2FudGEgQ2xhcmExFDASBgNVBAoUC1lhaG9vISBJbmMuMQ4wDAYDVQQLEwVZYWhv
+bzEYMBYGA1UEAxMPbG9naW4ueWFob28uY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GN
+ADCBiQKBgQC1bE/u7xsEXb5wSthVHYp3DcFFAPU7GhDd1/e7emVUf2DSFru9EqV4
+eNazUE66F0gneiJvKnwdojYi2FmirjoL1NIbig5aiankmv/bPwTim3XBjcWMBaHz
+tZJeoURJGeSQtOnv5F2yIG35I3a4stSvowb1ngOPuIIFIRElRDqABQIDAQABo4Gu
+MIGrMA4GA1UdDwEB/wQEAwIE8DAdBgNVHQ4EFgQUoB5uDJtuauvSrlpKGP8Ok0Ya
+1jIwOgYDVR0fBDMwMTAvoC2gK4YpaHR0cDovL2NybC5nZW90cnVzdC5jb20vY3Js
+cy9zZWN1cmVjYS5jcmwwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gjIBBPM5iQn9Qw
+HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA0GCSqGSIb3DQEBBQUAA4GB
+AFAlZRBD4XSDL4+cntx0ZE5xJ04qbkoSe0xBLmFKEQtBprFSyxN2tkXkjdQAmjsC
+x4IpAaPuffe5AoidPsMc5j3TkPycVtsZnauoA4B9xOLECTOeWFt3N4lZo4aOod+z
+uwLtIWL7usK66NSPZsGlX635P88imxdXoMooxnYDpMTn
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/login.yahoo.com-69.147.112.160.pem
===================================================================
--- torflow/trunk/certs/login.yahoo.com-69.147.112.160.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/login.yahoo.com-69.147.112.160.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC7TCCAlagAwIBAgIDBaBMMA0GCSqGSIb3DQEBBQUAME4xCzAJBgNVBAYTAlVT
+MRAwDgYDVQQKEwdFcXVpZmF4MS0wKwYDVQQLEyRFcXVpZmF4IFNlY3VyZSBDZXJ0
+aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYwMTA0MTcwOTA2WhcNMTEwMTA0MTcwOTA2
+WjB4MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEUMBIGA1UEBxML
+U2FudGEgQ2xhcmExFDASBgNVBAoUC1lhaG9vISBJbmMuMQ4wDAYDVQQLEwVZYWhv
+bzEYMBYGA1UEAxMPbG9naW4ueWFob28uY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GN
+ADCBiQKBgQC1bE/u7xsEXb5wSthVHYp3DcFFAPU7GhDd1/e7emVUf2DSFru9EqV4
+eNazUE66F0gneiJvKnwdojYi2FmirjoL1NIbig5aiankmv/bPwTim3XBjcWMBaHz
+tZJeoURJGeSQtOnv5F2yIG35I3a4stSvowb1ngOPuIIFIRElRDqABQIDAQABo4Gu
+MIGrMA4GA1UdDwEB/wQEAwIE8DAdBgNVHQ4EFgQUoB5uDJtuauvSrlpKGP8Ok0Ya
+1jIwOgYDVR0fBDMwMTAvoC2gK4YpaHR0cDovL2NybC5nZW90cnVzdC5jb20vY3Js
+cy9zZWN1cmVjYS5jcmwwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gjIBBPM5iQn9Qw
+HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA0GCSqGSIb3DQEBBQUAA4GB
+AFAlZRBD4XSDL4+cntx0ZE5xJ04qbkoSe0xBLmFKEQtBprFSyxN2tkXkjdQAmjsC
+x4IpAaPuffe5AoidPsMc5j3TkPycVtsZnauoA4B9xOLECTOeWFt3N4lZo4aOod+z
+uwLtIWL7usK66NSPZsGlX635P88imxdXoMooxnYDpMTn
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/login.yahoo.com.pem
===================================================================
--- torflow/trunk/certs/login.yahoo.com.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/login.yahoo.com.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,18 @@
+-----BEGIN CERTIFICATE-----
+MIIC7TCCAlagAwIBAgIDBaBMMA0GCSqGSIb3DQEBBQUAME4xCzAJBgNVBAYTAlVT
+MRAwDgYDVQQKEwdFcXVpZmF4MS0wKwYDVQQLEyRFcXVpZmF4IFNlY3VyZSBDZXJ0
+aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYwMTA0MTcwOTA2WhcNMTEwMTA0MTcwOTA2
+WjB4MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEUMBIGA1UEBxML
+U2FudGEgQ2xhcmExFDASBgNVBAoUC1lhaG9vISBJbmMuMQ4wDAYDVQQLEwVZYWhv
+bzEYMBYGA1UEAxMPbG9naW4ueWFob28uY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GN
+ADCBiQKBgQC1bE/u7xsEXb5wSthVHYp3DcFFAPU7GhDd1/e7emVUf2DSFru9EqV4
+eNazUE66F0gneiJvKnwdojYi2FmirjoL1NIbig5aiankmv/bPwTim3XBjcWMBaHz
+tZJeoURJGeSQtOnv5F2yIG35I3a4stSvowb1ngOPuIIFIRElRDqABQIDAQABo4Gu
+MIGrMA4GA1UdDwEB/wQEAwIE8DAdBgNVHQ4EFgQUoB5uDJtuauvSrlpKGP8Ok0Ya
+1jIwOgYDVR0fBDMwMTAvoC2gK4YpaHR0cDovL2NybC5nZW90cnVzdC5jb20vY3Js
+cy9zZWN1cmVjYS5jcmwwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gjIBBPM5iQn9Qw
+HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA0GCSqGSIb3DQEBBQUAA4GB
+AFAlZRBD4XSDL4+cntx0ZE5xJ04qbkoSe0xBLmFKEQtBprFSyxN2tkXkjdQAmjsC
+x4IpAaPuffe5AoidPsMc5j3TkPycVtsZnauoA4B9xOLECTOeWFt3N4lZo4aOod+z
+uwLtIWL7usK66NSPZsGlX635P88imxdXoMooxnYDpMTn
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-209.85.133.18.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-209.85.133.18.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-209.85.133.18.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-209.85.133.19.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-209.85.133.19.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-209.85.133.19.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-209.85.133.83.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-209.85.133.83.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-209.85.133.83.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-209.85.137.18.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-209.85.137.18.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-209.85.137.18.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-209.85.137.19.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-209.85.137.19.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-209.85.137.19.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-209.85.137.83.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-209.85.137.83.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-209.85.137.83.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-209.85.139.18.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-209.85.139.18.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-209.85.139.18.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-209.85.139.19.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-209.85.139.19.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-209.85.139.19.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-209.85.139.83.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-209.85.139.83.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-209.85.139.83.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-216.239.53.18.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-216.239.53.18.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-216.239.53.18.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-216.239.53.19.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-216.239.53.19.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-216.239.53.19.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-216.239.53.83.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-216.239.53.83.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-216.239.53.83.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-216.239.63.19.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-216.239.63.19.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-216.239.63.19.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-216.239.63.83.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-216.239.63.83.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-216.239.63.83.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-64.233.163.18.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-64.233.163.18.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-64.233.163.18.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-64.233.163.19.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-64.233.163.19.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-64.233.163.19.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-64.233.163.83.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-64.233.163.83.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-64.233.163.83.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-64.233.167.18.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-64.233.167.18.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-64.233.167.18.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-64.233.167.19.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-64.233.167.19.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-64.233.167.19.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-64.233.167.83.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-64.233.167.83.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-64.233.167.83.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-64.233.183.17.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-64.233.183.17.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-64.233.183.17.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-64.233.183.18.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-64.233.183.18.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-64.233.183.18.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-64.233.183.19.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-64.233.183.19.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-64.233.183.19.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-64.233.183.83.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-64.233.183.83.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-64.233.183.83.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-64.233.185.19.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-64.233.185.19.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-64.233.185.19.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-64.233.185.83.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-64.233.185.83.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-64.233.185.83.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-64.233.187.19.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-64.233.187.19.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-64.233.187.19.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-64.233.189.83.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-64.233.189.83.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-64.233.189.83.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-66.102.9.19.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-66.102.9.19.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-66.102.9.19.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-66.249.83.19.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-66.249.83.19.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-66.249.83.19.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-66.249.83.83.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-66.249.83.83.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-66.249.83.83.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-66.249.89.19.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-66.249.89.19.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-66.249.89.19.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-66.249.89.83.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-66.249.89.83.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-66.249.89.83.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-66.249.91.18.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-66.249.91.18.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-66.249.91.18.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-66.249.91.19.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-66.249.91.19.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-66.249.91.19.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-66.249.91.83.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-66.249.91.83.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-66.249.91.83.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-66.249.93.18.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-66.249.93.18.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-66.249.93.18.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-66.249.93.19.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-66.249.93.19.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-66.249.93.19.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-66.249.93.83.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-66.249.93.83.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-66.249.93.83.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-72.14.205.17.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-72.14.205.17.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-72.14.205.17.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-72.14.205.18.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-72.14.205.18.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-72.14.205.18.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-72.14.205.19.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-72.14.205.19.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-72.14.205.19.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-72.14.205.83.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-72.14.205.83.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-72.14.205.83.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-72.14.215.19.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-72.14.215.19.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-72.14.215.19.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-72.14.217.83.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-72.14.217.83.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-72.14.217.83.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-72.14.223.18.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-72.14.223.18.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-72.14.223.18.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-72.14.223.83.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-72.14.223.83.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-72.14.223.83.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-72.14.247.18.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-72.14.247.18.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-72.14.247.18.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-72.14.247.19.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-72.14.247.19.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-72.14.247.19.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com-72.14.247.83.pem
===================================================================
--- torflow/trunk/certs/mail.google.com-72.14.247.83.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com-72.14.247.83.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/mail.google.com.pem
===================================================================
--- torflow/trunk/certs/mail.google.com.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/mail.google.com.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,19 @@
+-----BEGIN CERTIFICATE-----
+MIIDIjCCAougAwIBAgIQIT8Ci6feCCuSNvHb22bkRjANBgkqhkiG9w0BAQQFADBM
+MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg
+THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wNjA1MTYxNzI0MDFaFw0w
+NzA1MTYxNzI0MDFaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh
+MRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgSW5jMRgw
+FgYDVQQDEw9tYWlsLmdvb2dsZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
+AoGBAMnUudLUhHv3cpy0A47K38oOYK9CeH93UMzH1QA/FYwwhRrcEkQjwSrddNqF
+RLBJMv+KWKFbMbTzMSR69VQCJJ26cKSOg95hhuIsRf6Y8MRfynWK4nfun8ubF8If
+LfISfrzTX8/nw8jmtL0zaNNSCZWs6UNzptkK085tRO2KoeZ5AgMBAAGjgecwgeQw
+KAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhCBAEwNgYDVR0f
+BC8wLTAroCmgJ4YlaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVNHQ0NBLmNy
+bDByBggrBgEFBQcBAQRmMGQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0
+ZS5jb20wPgYIKwYBBQUHMAKGMmh0dHA6Ly93d3cudGhhd3RlLmNvbS9yZXBvc2l0
+b3J5L1RoYXd0ZV9TR0NfQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEE
+BQADgYEASZvjLilr8yszxgTQWbCGrw8ck8kOLqv6VkLBfwdeUONhPvd7TtUdG9Mc
+2OfHJfK0gM6WRuElxCV9k+PGH7MClZUKzfLhNvn4kKLK2fxfi2+x/TsSKtksEqsq
+3TkheYZzR2inWM3a3qr00dj742P7O/kKnzLOtNBQo1DTreq4//c=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/www.e-gold.com-209.200.169.10.pem
===================================================================
--- torflow/trunk/certs/www.e-gold.com-209.200.169.10.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/www.e-gold.com-209.200.169.10.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,28 @@
+-----BEGIN CERTIFICATE-----
+MIIEujCCBCOgAwIBAgIQeHJXVGKIcbyZmn2xRm6TEzANBgkqhkiG9w0BAQUFADCB
+ujEfMB0GA1UEChMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazEXMBUGA1UECxMOVmVy
+aVNpZ24sIEluYy4xMzAxBgNVBAsTKlZlcmlTaWduIEludGVybmF0aW9uYWwgU2Vy
+dmVyIENBIC0gQ2xhc3MgMzFJMEcGA1UECxNAd3d3LnZlcmlzaWduLmNvbS9DUFMg
+SW5jb3JwLmJ5IFJlZi4gTElBQklMSVRZIExURC4oYyk5NyBWZXJpU2lnbjAeFw0w
+NjExMjEwMDAwMDBaFw0wOTEyMDEyMzU5NTlaMIG/MQswCQYDVQQGEwJVUzEQMA4G
+A1UECBMHRmxvcmlkYTESMBAGA1UEBxQJTWVsYm91cm5lMSIwIAYDVQQKFBlHb2xk
+ICZTaWx2ZXIgUmVzZXJ2ZSBJbmMuMRgwFgYDVQQLFA9lLWdvbGQgT3BlcmF0b3Ix
+MzAxBgNVBAsUKlRlcm1zIG9mIHVzZSBhdCB3d3cudmVyaXNpZ24uY29tL3JwYSAo
+YykwNTEXMBUGA1UEAxQOd3d3LmUtZ29sZC5jb20wgZ8wDQYJKoZIhvcNAQEBBQAD
+gY0AMIGJAoGBAJeY1+XKd/AiJPBL3Qxhr3nBJcrXy0tqqiAuKEIbgBS9XJIIjIUp
+UZOWMFii8bf+QtDvdtZWYF61bihU5vS3K0wmJj2wT91KbWtuNMbgkp2iDz59RED8
+SfUxLRWTKt4Uczp66KY4bFPje9rDRQLN0bpPxUi2H2hM/DOXCEcvNU6LAgMBAAGj
+ggG4MIIBtDAJBgNVHRMEAjAAMAsGA1UdDwQEAwIFoDBEBgNVHSAEPTA7MDkGC2CG
+SAGG+EUBBxcDMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LnZlcmlzaWduLmNv
+bS9ycGEwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL1NWUkludGwtY3JsLnZlcmlz
+aWduLmNvbS9TVlJJbnRsLmNybDA0BgNVHSUELTArBggrBgEFBQcDAQYIKwYBBQUH
+AwIGCWCGSAGG+EIEAQYKKwYBBAGCNwoDAzBxBggrBgEFBQcBAQRlMGMwJAYIKwYB
+BQUHMAGGGGh0dHA6Ly9vY3NwLnZlcmlzaWduLmNvbTA7BggrBgEFBQcwAoYvaHR0
+cDovL1NWUkludGwtYWlhLnZlcmlzaWduLmNvbS9TVlJJbnRsLWFpYS5jZXIwbQYI
+KwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAHBgUrDgMCGgQU
+j+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24uY29t
+L3ZzbG9nby5naWYwDQYJKoZIhvcNAQEFBQADgYEAh348qSaQ5vf3gfL8HYO4Nskw
+uf5v9crVWuLX11jKseKn22MdkNo2uhfYZ42WdzSxvd+emxuDKgi8zAir20XsUTrN
+VporvO8CuNqb35T3RriqX71X1KIrllRPSZUNtKCgE9bNCvVC3pFmqSeBF2dXGKAP
+XSgqQQekD753NDEt6rU=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/www.fastmail.fm-66.111.4.55.pem
===================================================================
--- torflow/trunk/certs/www.fastmail.fm-66.111.4.55.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/www.fastmail.fm-66.111.4.55.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDfDCCAuWgAwIBAgIQID27SkIftMaSTpI5z5+LhzANBgkqhkiG9w0BAQQFADCB
+zjELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJ
+Q2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UE
+CxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhh
+d3RlIFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNl
+cnZlckB0aGF3dGUuY29tMB4XDTA2MDQyMTA3MDc1MFoXDTA3MDUyMTA5MjE0Nlow
+gYAxCzAJBgNVBAYTAkFVMRgwFgYDVQQIEw9OZXcgU291dGggV2FsZXMxEzARBgNV
+BAcTCkNyb3dzIE5lc3QxKDAmBgNVBAoTH09wdGltYWwgRGVjaXNpb25zIEdyb3Vw
+IFB0eSBMdGQxGDAWBgNVBAMTD3d3dy5mYXN0bWFpbC5mbTCBnzANBgkqhkiG9w0B
+AQEFAAOBjQAwgYkCgYEAyJMTIn/14CHIrAYGi3913dMk1khF1C1M4f6/JlmIv7Xl
+HlOT+GJNcal38wsS/VxXTSrKgPcXDDK0kYGg/1WU6wF8HJ64LEXHou558PDBDnnp
+4pw2ayB5mVy9E3YFez0a/NHEBDKrkngmQmWQxmcVzBLNDYhoR/NQPQ6JZjtR1kMC
+AwEAAaOBpjCBozAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwQAYDVR0f
+BDkwNzA1oDOgMYYvaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVByZW1pdW1T
+ZXJ2ZXJDQS5jcmwwMgYIKwYBBQUHAQEEJjAkMCIGCCsGAQUFBzABhhZodHRwOi8v
+b2NzcC50aGF3dGUuY29tMAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEEBQADgYEA
+Fe4MzPp3KVX+IPDHyhxMoNWgX1wi1VyoaFO2Cxg7MKXfP0c/7HuhuDY6O3LC8GtY
+crDQapKQjTDpBOsCrh2vWVGHTurTVI/bMcfUZXul25qQQfFdjopE96RG+ocLjwDq
+6ZOdU+GQPYZP1dcsYFKUrJSpcZZywU2l2T1iTt9iVGY=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/www.fastmail.fm-66.111.4.56.pem
===================================================================
--- torflow/trunk/certs/www.fastmail.fm-66.111.4.56.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/www.fastmail.fm-66.111.4.56.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDfDCCAuWgAwIBAgIQID27SkIftMaSTpI5z5+LhzANBgkqhkiG9w0BAQQFADCB
+zjELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJ
+Q2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UE
+CxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhh
+d3RlIFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNl
+cnZlckB0aGF3dGUuY29tMB4XDTA2MDQyMTA3MDc1MFoXDTA3MDUyMTA5MjE0Nlow
+gYAxCzAJBgNVBAYTAkFVMRgwFgYDVQQIEw9OZXcgU291dGggV2FsZXMxEzARBgNV
+BAcTCkNyb3dzIE5lc3QxKDAmBgNVBAoTH09wdGltYWwgRGVjaXNpb25zIEdyb3Vw
+IFB0eSBMdGQxGDAWBgNVBAMTD3d3dy5mYXN0bWFpbC5mbTCBnzANBgkqhkiG9w0B
+AQEFAAOBjQAwgYkCgYEAyJMTIn/14CHIrAYGi3913dMk1khF1C1M4f6/JlmIv7Xl
+HlOT+GJNcal38wsS/VxXTSrKgPcXDDK0kYGg/1WU6wF8HJ64LEXHou558PDBDnnp
+4pw2ayB5mVy9E3YFez0a/NHEBDKrkngmQmWQxmcVzBLNDYhoR/NQPQ6JZjtR1kMC
+AwEAAaOBpjCBozAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwQAYDVR0f
+BDkwNzA1oDOgMYYvaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVByZW1pdW1T
+ZXJ2ZXJDQS5jcmwwMgYIKwYBBQUHAQEEJjAkMCIGCCsGAQUFBzABhhZodHRwOi8v
+b2NzcC50aGF3dGUuY29tMAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEEBQADgYEA
+Fe4MzPp3KVX+IPDHyhxMoNWgX1wi1VyoaFO2Cxg7MKXfP0c/7HuhuDY6O3LC8GtY
+crDQapKQjTDpBOsCrh2vWVGHTurTVI/bMcfUZXul25qQQfFdjopE96RG+ocLjwDq
+6ZOdU+GQPYZP1dcsYFKUrJSpcZZywU2l2T1iTt9iVGY=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/www.fastmail.fm.pem
===================================================================
--- torflow/trunk/certs/www.fastmail.fm.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/www.fastmail.fm.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDfDCCAuWgAwIBAgIQID27SkIftMaSTpI5z5+LhzANBgkqhkiG9w0BAQQFADCB
+zjELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJ
+Q2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UE
+CxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhh
+d3RlIFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNl
+cnZlckB0aGF3dGUuY29tMB4XDTA2MDQyMTA3MDc1MFoXDTA3MDUyMTA5MjE0Nlow
+gYAxCzAJBgNVBAYTAkFVMRgwFgYDVQQIEw9OZXcgU291dGggV2FsZXMxEzARBgNV
+BAcTCkNyb3dzIE5lc3QxKDAmBgNVBAoTH09wdGltYWwgRGVjaXNpb25zIEdyb3Vw
+IFB0eSBMdGQxGDAWBgNVBAMTD3d3dy5mYXN0bWFpbC5mbTCBnzANBgkqhkiG9w0B
+AQEFAAOBjQAwgYkCgYEAyJMTIn/14CHIrAYGi3913dMk1khF1C1M4f6/JlmIv7Xl
+HlOT+GJNcal38wsS/VxXTSrKgPcXDDK0kYGg/1WU6wF8HJ64LEXHou558PDBDnnp
+4pw2ayB5mVy9E3YFez0a/NHEBDKrkngmQmWQxmcVzBLNDYhoR/NQPQ6JZjtR1kMC
+AwEAAaOBpjCBozAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwQAYDVR0f
+BDkwNzA1oDOgMYYvaHR0cDovL2NybC50aGF3dGUuY29tL1RoYXd0ZVByZW1pdW1T
+ZXJ2ZXJDQS5jcmwwMgYIKwYBBQUHAQEEJjAkMCIGCCsGAQUFBzABhhZodHRwOi8v
+b2NzcC50aGF3dGUuY29tMAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEEBQADgYEA
+Fe4MzPp3KVX+IPDHyhxMoNWgX1wi1VyoaFO2Cxg7MKXfP0c/7HuhuDY6O3LC8GtY
+crDQapKQjTDpBOsCrh2vWVGHTurTVI/bMcfUZXul25qQQfFdjopE96RG+ocLjwDq
+6ZOdU+GQPYZP1dcsYFKUrJSpcZZywU2l2T1iTt9iVGY=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/www.hushmail.com-65.39.178.42.pem
===================================================================
--- torflow/trunk/certs/www.hushmail.com-65.39.178.42.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/www.hushmail.com-65.39.178.42.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,32 @@
+-----BEGIN CERTIFICATE-----
+MIIFfzCCBGegAwIBAgIQQwk9pisVt8sDSr+Oaywv8zANBgkqhkiG9w0BAQUFADCB
+3DELMAkGA1UEBhMCR0IxFzAVBgNVBAoTDkNvbW9kbyBMaW1pdGVkMR0wGwYDVQQL
+ExRDb21vZG8gVHJ1c3QgTmV0d29yazFGMEQGA1UECxM9VGVybXMgYW5kIENvbmRp
+dGlvbnMgb2YgdXNlOiBodHRwOi8vd3d3LmNvbW9kby5uZXQvcmVwb3NpdG9yeTEf
+MB0GA1UECxMWKGMpMjAwMiBDb21vZG8gTGltaXRlZDEsMCoGA1UEAxMjQ29tb2Rv
+IENsYXNzIDMgU2VjdXJpdHkgU2VydmljZXMgQ0EwHhcNMDUwNTA2MDAwMDAwWhcN
+MDgwNTA1MjM1OTU5WjCCAQkxCzAJBgNVBAYTAkNBMRAwDgYDVQQREwdWNkcgMVQx
+MQswCQYDVQQIEwJCQzESMBAGA1UEBxMJVmFuY291dmVyMSQwIgYDVQQJExtTdWl0
+ZSAyMDMgNDU1IEdyYW52aWxsZSBTdC4xKTAnBgNVBAoTIEh1c2ggQ29tbXVuaWNh
+dGlvbnMgQ2FuYWRhLCBJbmMuMUYwRAYDVQQLEz1Jc3N1ZWQgdGhyb3VnaCBIdXNo
+IENvbW11bmljYXRpb25zIENhbmFkYSwgSW5jLiBFLVBLSSBNYW5hZ2VyMRMwEQYD
+VQQLEwpQcmVtaXVtU1NMMRkwFwYDVQQDExB3d3cuaHVzaG1haWwuY29tMIGfMA0G
+CSqGSIb3DQEBAQUAA4GNADCBiQKBgQDoUcuKVaEp51nYtn4qO24CPmeYMTC3hnto
+A/4+9vOl35U1ANucaE0SxaU1tsa6ySaYEw/hhLFv8jGPUf4a66M8fDvij9oRuH3O
+lzm3tS1JuIUXS/hFWITksf5yWK/3fHXAChWOyl+XwxE8UegpNmyOCY231kQYIpKJ
+BYGM0xLcWwIDAQABo4IBjzCCAYswHwYDVR0jBBgwFoAUNuDofG2dRZHumeVCdk1w
+s1AwrF4wHQYDVR0OBBYEFCNVDZI7EnBEsu75HUJuAHKLj905MA4GA1UdDwEB/wQE
+AwIFoDAMBgNVHRMBAf8EAjAAMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcD
+AjBGBgNVHSAEPzA9MDsGDCsGAQQBsjEBAgEDBDArMCkGCCsGAQUFBwIBFh1odHRw
+czovL3NlY3VyZS5jb21vZG8ubmV0L0NQUzCBsAYDVR0fBIGoMIGlMDigNqA0hjJo
+dHRwOi8vY3JsLmNvbW9kby5uZXQvQ2xhc3MzU2VjdXJpdHlTZXJ2aWNlc18zLmNy
+bDA6oDigNoY0aHR0cDovL2NybC5jb21vZG9jYS5jb20vQ2xhc3MzU2VjdXJpdHlT
+ZXJ2aWNlc18zLmNybDAtoCugKYEnQ2xhc3MzU2VjdXJpdHlTZXJ2aWNlc18zQGNy
+bC5jb21vZG8ubmV0MBEGCWCGSAGG+EIBAQQEAwIGwDANBgkqhkiG9w0BAQUFAAOC
+AQEAGVyRbaxusNkWyAbcSFjolo9DCsPJBxz9HNpc/88kLmnUoid6+zD/uyXfp6W0
+pL4sQoQNuBHsBmc9z95S3X88gMZJ9SSxW3jgfV4X0/YSYNW1gfhVd9xaEBg6KqCD
+vYVAk3B7DxU98xKsgchUQGPB5/hcDZg0Df2FI1feySs45TsZ8cbQMd7FywTgYHcp
+IrdT8RWjdH8N0dXQpp4vFQQHYL7FGKzHItOXda1pdRp57MF6eqF3blzp5wb7+nT+
+LVEjJP9LcSHriTWCkK+RUQlT8mutNzQ8ecOK8zzxd9rBex7iVP1gkqhgE5eAbw2p
+VeOiM9M8qpfBNH/hA+ydczCvIQ==
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/www.hushmail.com-65.39.178.58.pem
===================================================================
--- torflow/trunk/certs/www.hushmail.com-65.39.178.58.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/www.hushmail.com-65.39.178.58.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDazCCAtSgAwIBAgIDISvZMA0GCSqGSIb3DQEBBAUAMIHOMQswCQYDVQQGEwJa
+QTEVMBMGA1UECBMMV2VzdGVybiBDYXBlMRIwEAYDVQQHEwlDYXBlIFRvd24xHTAb
+BgNVBAoTFFRoYXd0ZSBDb25zdWx0aW5nIGNjMSgwJgYDVQQLEx9DZXJ0aWZpY2F0
+aW9uIFNlcnZpY2VzIERpdmlzaW9uMSEwHwYDVQQDExhUaGF3dGUgUHJlbWl1bSBT
+ZXJ2ZXIgQ0ExKDAmBgkqhkiG9w0BCQEWGXByZW1pdW0tc2VydmVyQHRoYXd0ZS5j
+b20wHhcNMDUwNTA2MjI1MzU2WhcNMDYwNTA2MjI1MzU2WjB9MQswCQYDVQQGEwJB
+STERMA8GA1UECBMIQW5ndWlsbGExEzARBgNVBAcTClRoZSBWYWxsZXkxKzApBgNV
+BAoTIkh1c2ggQ29tbXVuaWNhdGlvbnMgQW5ndWlsbGEsIEluYy4xGTAXBgNVBAMT
+EHd3dy5odXNobWFpbC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOhR
+y4pVoSnnWdi2fio7bgI+Z5gxMLeGe2gD/j7286XflTUA25xoTRLFpTW2xrrJJpgT
+D+GEsW/yMY9R/hrrozx8O+KP2hG4fc6XObe1LUm4hRdL+EVYhOSx/nJYr/d8dcAK
+FY7KX5fDETxR6Ck2bI4JjbfWRBgikokFgYzTEtxbAgMBAAGjgaYwgaMwHQYDVR0l
+BBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMEAGA1UdHwQ5MDcwNaAzoDGGL2h0dHA6
+Ly9jcmwudGhhd3RlLmNvbS9UaGF3dGVQcmVtaXVtU2VydmVyQ0EuY3JsMDIGCCsG
+AQUFBwEBBCYwJDAiBggrBgEFBQcwAYYWaHR0cDovL29jc3AudGhhd3RlLmNvbTAM
+BgNVHRMBAf8EAjAAMA0GCSqGSIb3DQEBBAUAA4GBABcxCj2OF1TOgpU1YINxqsKD
+TKoGE256audOijLryg/s8X1dufwTOs5Wujl+vxhCro32a7YaxNeKnjRQtA06giLN
+uYtK0Gi8ZLQIJb30k1sS8q6RoerahfxJ0auX2lnuLwnfQn0mx6MGxuD6OJTpR/4C
+fGAw77gp8HO3Kme658XM
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/www.hushmail.com.pem
===================================================================
--- torflow/trunk/certs/www.hushmail.com.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/www.hushmail.com.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,32 @@
+-----BEGIN CERTIFICATE-----
+MIIFfzCCBGegAwIBAgIQQwk9pisVt8sDSr+Oaywv8zANBgkqhkiG9w0BAQUFADCB
+3DELMAkGA1UEBhMCR0IxFzAVBgNVBAoTDkNvbW9kbyBMaW1pdGVkMR0wGwYDVQQL
+ExRDb21vZG8gVHJ1c3QgTmV0d29yazFGMEQGA1UECxM9VGVybXMgYW5kIENvbmRp
+dGlvbnMgb2YgdXNlOiBodHRwOi8vd3d3LmNvbW9kby5uZXQvcmVwb3NpdG9yeTEf
+MB0GA1UECxMWKGMpMjAwMiBDb21vZG8gTGltaXRlZDEsMCoGA1UEAxMjQ29tb2Rv
+IENsYXNzIDMgU2VjdXJpdHkgU2VydmljZXMgQ0EwHhcNMDUwNTA2MDAwMDAwWhcN
+MDgwNTA1MjM1OTU5WjCCAQkxCzAJBgNVBAYTAkNBMRAwDgYDVQQREwdWNkcgMVQx
+MQswCQYDVQQIEwJCQzESMBAGA1UEBxMJVmFuY291dmVyMSQwIgYDVQQJExtTdWl0
+ZSAyMDMgNDU1IEdyYW52aWxsZSBTdC4xKTAnBgNVBAoTIEh1c2ggQ29tbXVuaWNh
+dGlvbnMgQ2FuYWRhLCBJbmMuMUYwRAYDVQQLEz1Jc3N1ZWQgdGhyb3VnaCBIdXNo
+IENvbW11bmljYXRpb25zIENhbmFkYSwgSW5jLiBFLVBLSSBNYW5hZ2VyMRMwEQYD
+VQQLEwpQcmVtaXVtU1NMMRkwFwYDVQQDExB3d3cuaHVzaG1haWwuY29tMIGfMA0G
+CSqGSIb3DQEBAQUAA4GNADCBiQKBgQDoUcuKVaEp51nYtn4qO24CPmeYMTC3hnto
+A/4+9vOl35U1ANucaE0SxaU1tsa6ySaYEw/hhLFv8jGPUf4a66M8fDvij9oRuH3O
+lzm3tS1JuIUXS/hFWITksf5yWK/3fHXAChWOyl+XwxE8UegpNmyOCY231kQYIpKJ
+BYGM0xLcWwIDAQABo4IBjzCCAYswHwYDVR0jBBgwFoAUNuDofG2dRZHumeVCdk1w
+s1AwrF4wHQYDVR0OBBYEFCNVDZI7EnBEsu75HUJuAHKLj905MA4GA1UdDwEB/wQE
+AwIFoDAMBgNVHRMBAf8EAjAAMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcD
+AjBGBgNVHSAEPzA9MDsGDCsGAQQBsjEBAgEDBDArMCkGCCsGAQUFBwIBFh1odHRw
+czovL3NlY3VyZS5jb21vZG8ubmV0L0NQUzCBsAYDVR0fBIGoMIGlMDigNqA0hjJo
+dHRwOi8vY3JsLmNvbW9kby5uZXQvQ2xhc3MzU2VjdXJpdHlTZXJ2aWNlc18zLmNy
+bDA6oDigNoY0aHR0cDovL2NybC5jb21vZG9jYS5jb20vQ2xhc3MzU2VjdXJpdHlT
+ZXJ2aWNlc18zLmNybDAtoCugKYEnQ2xhc3MzU2VjdXJpdHlTZXJ2aWNlc18zQGNy
+bC5jb21vZG8ubmV0MBEGCWCGSAGG+EIBAQQEAwIGwDANBgkqhkiG9w0BAQUFAAOC
+AQEAGVyRbaxusNkWyAbcSFjolo9DCsPJBxz9HNpc/88kLmnUoid6+zD/uyXfp6W0
+pL4sQoQNuBHsBmc9z95S3X88gMZJ9SSxW3jgfV4X0/YSYNW1gfhVd9xaEBg6KqCD
+vYVAk3B7DxU98xKsgchUQGPB5/hcDZg0Df2FI1feySs45TsZ8cbQMd7FywTgYHcp
+IrdT8RWjdH8N0dXQpp4vFQQHYL7FGKzHItOXda1pdRp57MF6eqF3blzp5wb7+nT+
+LVEjJP9LcSHriTWCkK+RUQlT8mutNzQ8ecOK8zzxd9rBex7iVP1gkqhgE5eAbw2p
+VeOiM9M8qpfBNH/hA+ydczCvIQ==
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/www.paypal.com-216.113.188.65.pem
===================================================================
--- torflow/trunk/certs/www.paypal.com-216.113.188.65.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/www.paypal.com-216.113.188.65.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,34 @@
+-----BEGIN CERTIFICATE-----
+MIIF5jCCBM6gAwIBAgIQbmuco/dSNbSVN4bU5RNUqTANBgkqhkiG9w0BAQUFADCB
+vjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
+ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTswOQYDVQQLEzJUZXJtcyBvZiB1c2Ug
+YXQgaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JwYSAoYykwNjE4MDYGA1UEAxMv
+VmVyaVNpZ24gQ2xhc3MgMyBFeHRlbmRlZCBWYWxpZGF0aW9uIFNTTCBTR0MgQ0Ew
+HhcNMDcwMTMwMDAwMDAwWhcNMDkwMTI5MjM1OTU5WjCCAR4xEDAOBgNVBAUTBzMw
+MTQyNjcxEzARBgsrBgEEAYI3PAIBAxMCVVMxGTAXBgsrBgEEAYI3PAIBAhMIRGVs
+YXdhcmUxCzAJBgNVBAYTAlVTMRMwEQYDVQQRFAo5NTEzMS0yMDIxMQswCQYDVQQI
+EwJDQTERMA8GA1UEBxQIU2FuIEpvc2UxFjAUBgNVBAkUDTIyMTEgTiAxc3QgU3Qx
+FDASBgNVBAoUC1BheXBhbCBJbmMuMRwwGgYDVQQLFBNJbmZvcm1hdGlvbiBTeXN0
+ZW1zMTMwMQYDVQQLFCpUZXJtcyBvZiB1c2UgYXQgd3d3LnZlcmlzaWduLmNvbS9y
+cGEgKGMpMDYxFzAVBgNVBAMUDnd3dy5wYXlwYWwuY29tMIGfMA0GCSqGSIb3DQEB
+AQUAA4GNADCBiQKBgQC0ldZuxq9UVX26JfEnMM+U7pM+husarblH+rS18AyT8Aqf
+0oOZJ+439TESAQ521/9zDqXYpm5++VoNN5/M3HbQ63ksuqDILhA+G1sU0jA9RD38
+z992oazPJQDTfmeK+amv50+4okUT8QTDkb9WHjUI/gpf14AYQ628UFQQGO6WlQID
+AQABo4IB/zCCAfswCQYDVR0TBAIwADAdBgNVHQ4EFgQU7VBMXqBNGpJwm/AUUdLW
+nWziydAwCwYDVR0PBAQDAgWgMD4GA1UdHwQ3MDUwM6AxoC+GLWh0dHA6Ly9FVklu
+dGwtY3JsLnZlcmlzaWduLmNvbS9FVkludGwyMDA2LmNybDBEBgNVHSAEPTA7MDkG
+C2CGSAGG+EUBBxcGMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LnZlcmlzaWdu
+LmNvbS9ycGEwNAYDVR0lBC0wKwYIKwYBBQUHAwEGCCsGAQUFBwMCBglghkgBhvhC
+BAEGCisGAQQBgjcKAwMwHwYDVR0jBBgwFoAUTkPIHXbvN1N6T/JYb5TzOOLVvd8w
+dgYIKwYBBQUHAQEEajBoMCsGCCsGAQUFBzABhh9odHRwOi8vRVZJbnRsLW9jc3Au
+dmVyaXNpZ24uY29tMDkGCCsGAQUFBzAChi1odHRwOi8vRVZJbnRsLWFpYS52ZXJp
+c2lnbi5jb20vRVZJbnRsMjAwNi5jZXIwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcw
+VRYJaW1hZ2UvZ2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4w
+JRYjaHR0cDovL2xvZ28udmVyaXNpZ24uY29tL3ZzbG9nby5naWYwDQYJKoZIhvcN
+AQEFBQADggEBADGj5/xJrl7mzkgcE6zf44jzT0Iw+/BLAzcerNixC3xZ57rPPhxu
+WRMKVzgIDYQzu/ed2oLRz6eefjF2Xs9XqLK1RDYRyDldksxP/AxB52AEGoBbufQ1
+xKWziRJXaUmqA27FBbx89lYrj3m6VQkkJ7bK+IpP9vQzpg86ZBQs0UWtxsQbO9zp
+D8IaeI+K97d5CgRfXixgfUR3OttmhofzmR9Zfawcui+MoEu0lrjeZNgAkEaCVlcH
+m0iL1rOpmhX/7b5DUpTWN3jopw9/VQTCqxcu+0zoEcNU02yadEVCNumWAEllTJ5D
+ePLh8FkejTsIkNexlknGZX4eQJYBo90wUok=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/www.relakks.com-82.209.182.9.pem
===================================================================
--- torflow/trunk/certs/www.relakks.com-82.209.182.9.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/www.relakks.com-82.209.182.9.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDcDCCAtmgAwIBAgIDBDtPMA0GCSqGSIb3DQEBBAUAMFoxCzAJBgNVBAYTAlVT
+MRwwGgYDVQQKExNFcXVpZmF4IFNlY3VyZSBJbmMuMS0wKwYDVQQDEyRFcXVpZmF4
+IFNlY3VyZSBHbG9iYWwgZUJ1c2luZXNzIENBLTEwHhcNMDYwNzAzMTEyOTAzWhcN
+MDkwNzAzMTEyOTAzWjCB3zELMAkGA1UEBhMCU0UxGDAWBgNVBAoTD3d3dy5yZWxh
+a2tzLmNvbTE4MDYGA1UECxMvYnVzaW5lc3Nwcm9maWxlLmdlb3RydXN0LmNvbS9n
+ZXQuanNwP0dUMjUzNDI1NjYxMTAvBgNVBAsTKFNlZSB3d3cuZ2VvdHJ1c3QuY29t
+L3Jlc291cmNlcy9jcHMgKGMpMDUxLzAtBgNVBAsTJkRvbWFpbiBDb250cm9sIFZh
+bGlkYXRlZCAtIFF1aWNrU1NMKFIpMRgwFgYDVQQDEw93d3cucmVsYWtrcy5jb20w
+gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAL77GWG65k1hoA4+G9pETbmzq7Cw
+rxB9NnxQ/TZCaQYuMganKJzRRqDDyX4tcJFcXmhDrRWj9wYYoWlsm3y14hiBvDFK
+H9xcod/KEFkm7Yh2ksBxNeijNsMcYoC79QQtr4Z6LCNiivkjvaxM2ozasJdVrcbn
+Y/LmQCcN6IvN7+a/AgMBAAGjgb0wgbowDgYDVR0PAQH/BAQDAgTwMB0GA1UdDgQW
+BBThvmeVe31jE/7Jy0CtPLR23EKNgDA7BgNVHR8ENDAyMDCgLqAshipodHRwOi8v
+Y3JsLmdlb3RydXN0LmNvbS9jcmxzL2dsb2JhbGNhMS5jcmwwHwYDVR0jBBgwFoAU
+vqigdHJQa0S3ySPY+6j/s1draGwwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUF
+BwMCMAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEEBQADgYEAkJTRyzTfour5CL6t
+k6R9s3RwoQBIHLpHEPHqGfD45RvXxwwn3QZDuFjUk6PvzTehfMuMU1L9u1kTk1++
+HUmUsAOKNRbkwOMc00wqo4LfUuYEXdoW4F8TVQD++Rx3zDbzMXQ7i1duXhIUkzEi
+A7sCn9f6ss0R1pb8f9dsFDAFMTM=
+-----END CERTIFICATE-----

Added: torflow/trunk/certs/www.relakks.com.pem
===================================================================
--- torflow/trunk/certs/www.relakks.com.pem	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/certs/www.relakks.com.pem	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDcDCCAtmgAwIBAgIDBDtPMA0GCSqGSIb3DQEBBAUAMFoxCzAJBgNVBAYTAlVT
+MRwwGgYDVQQKExNFcXVpZmF4IFNlY3VyZSBJbmMuMS0wKwYDVQQDEyRFcXVpZmF4
+IFNlY3VyZSBHbG9iYWwgZUJ1c2luZXNzIENBLTEwHhcNMDYwNzAzMTEyOTAzWhcN
+MDkwNzAzMTEyOTAzWjCB3zELMAkGA1UEBhMCU0UxGDAWBgNVBAoTD3d3dy5yZWxh
+a2tzLmNvbTE4MDYGA1UECxMvYnVzaW5lc3Nwcm9maWxlLmdlb3RydXN0LmNvbS9n
+ZXQuanNwP0dUMjUzNDI1NjYxMTAvBgNVBAsTKFNlZSB3d3cuZ2VvdHJ1c3QuY29t
+L3Jlc291cmNlcy9jcHMgKGMpMDUxLzAtBgNVBAsTJkRvbWFpbiBDb250cm9sIFZh
+bGlkYXRlZCAtIFF1aWNrU1NMKFIpMRgwFgYDVQQDEw93d3cucmVsYWtrcy5jb20w
+gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAL77GWG65k1hoA4+G9pETbmzq7Cw
+rxB9NnxQ/TZCaQYuMganKJzRRqDDyX4tcJFcXmhDrRWj9wYYoWlsm3y14hiBvDFK
+H9xcod/KEFkm7Yh2ksBxNeijNsMcYoC79QQtr4Z6LCNiivkjvaxM2ozasJdVrcbn
+Y/LmQCcN6IvN7+a/AgMBAAGjgb0wgbowDgYDVR0PAQH/BAQDAgTwMB0GA1UdDgQW
+BBThvmeVe31jE/7Jy0CtPLR23EKNgDA7BgNVHR8ENDAyMDCgLqAshipodHRwOi8v
+Y3JsLmdlb3RydXN0LmNvbS9jcmxzL2dsb2JhbGNhMS5jcmwwHwYDVR0jBBgwFoAU
+vqigdHJQa0S3ySPY+6j/s1draGwwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUF
+BwMCMAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEEBQADgYEAkJTRyzTfour5CL6t
+k6R9s3RwoQBIHLpHEPHqGfD45RvXxwwn3QZDuFjUk6PvzTehfMuMU1L9u1kTk1++
+HUmUsAOKNRbkwOMc00wqo4LfUuYEXdoW4F8TVQD++Rx3zDbzMXQ7i1duXhIUkzEi
+A7sCn9f6ss0R1pb8f9dsFDAFMTM=
+-----END CERTIFICATE-----

Modified: torflow/trunk/metatroller.py
===================================================================
--- torflow/trunk/metatroller.py	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/metatroller.py	2007-02-11 03:21:23 UTC (rev 9554)
@@ -5,7 +5,6 @@
 Metatroller - Tor Meta controller
 """
 
-
 import TorCtl
 import atexit
 import sys
@@ -14,7 +13,8 @@
 import traceback
 import re
 import random
-import time
+import datetime
+import threading
 from TorUtil import *
 
 routers = {} # indexed by idhex
@@ -29,15 +29,33 @@
 circuits = {} # map from ID # to circuit object
 streams = {} # map from stream id to circuit
 
-exit_port_idx = {} # Used in ordered exits mode
 
+version = "0.1.0-dev"
+
 # TODO: Move these to config file
 # TODO: Option to ignore guard flag
 control_host = "127.0.0.1"
-control_port = 9061
+control_port = 9051
+meta_host = "127.0.0.1"
+meta_port = 9052
 max_detach = 3
+order_exits = False
 
+# Thread shared variables. Relying on GIL for weak atomicity (really
+# we only care about corruption.. GIL prevents that, so no locking needed)
+# http://effbot.org/pyfaq/can-t-we-get-rid-of-the-global-interpreter-lock.htm
+# http://effbot.org/pyfaq/what-kinds-of-global-value-mutation-are-thread-safe.htm
 
+last_exit = None
+resolve_port = 0
+percent_fast = 100
+percent_skip = 0
+pathlen = 3
+min_bw = 0
+num_circuits = 1 # TODO: Use
+use_all_exits = False
+new_nym = False
+
 # Technically we could just add member vars as we need them, but this
 # is a bit more clear
 class MetaRouter(TorCtl.Router):
@@ -56,7 +74,7 @@
         self.built = False
         self.detached_cnt = 0
         self.used_cnt = 0
-        self.created_at = time.time()
+        self.created_at = datetime.datetime.now()
         self.pending_streams = [] # Which stream IDs are pending us
 
     
@@ -70,30 +88,94 @@
         self.port = port
 
 # TODO: Obviously we need other node selector implementations
+#  - BwWeightedSelector
+#  - Restrictors (puts self.r_is_ok() into list):
+#    - Subnet16
+#    - AvoidWastingExits
+#    - VersionRange (Less than, greater than, in-range)
+#    - OSSelector (ex Yes: Linux, *BSD; No: Windows, Solaris)
+#    - OceanPhobicRestrictor (avoids Pacific Ocean or two atlantic crossings)
+#      - Mathematical proof of predecessor expectation
+#        - If middle node is on the same continent as exit, exit learns nothing
+#        - else, exit knows the continent of origin of user
+#          - Language and browser accept string determine this anyway
+#    - ExitCountry
+#    - AllCountry
 
 class UniformSelector(TorCtl.NodeSelector):
     "Uniform node selection"
-    # FIXME: Technically we should obey fast and valid
+
+    next_exit_by_port = {} # class member (aka C++ 'static')
+
+    def __init__(self, host, port):
+        if not port:
+            plog("DEBUG", "Using resolve: "+host+":"+str(resolve_port))
+            port = resolve_port
+        TorCtl.NodeSelector.__init__(self, host, port)
+        self.pct_fast = percent_fast
+        self.pct_skip = percent_skip
+        self.min_bw = min_bw
+        self.order_exits = order_exits
+        self.all_exits = use_all_exits
+        
+    def r_is_ok(self, r):
+        if r.bw < self.min_bw or not r.valid or not r.fast:
+            return False
+        else:
+            return True
+
+    def pick_r(self, r_list):
+        idx = random.randint(len(r_list)*self.pct_skip/100,
+                             len(r_list)*self.pct_fast/100)
+        return r_list[idx]
+
     def entry_chooser(self, path):
-        r = random.choice(sorted_g)
-        while r.idhex in path:
-            r = random.choice(sorted_g)
+        r = self.pick_r(sorted_g)
+        while not self.r_is_ok(r) or r.idhex in path:
+            r = self.pick_r(sorted_g)
         return r
 
     def middle_chooser(self, path):
-        r = random.choice(sorted_r)
-        while r.idhex in path:
-            r = random.choice(sorted_r)
+        r = self.pick_r(sorted_r)
+        while not self.r_is_ok(r) or r.idhex in path:
+            r = self.pick_r(sorted_r)
         return r
 
     def exit_chooser(self, path):
+        if self.order_exits:
+            if self.to_port not in self.next_exit_by_port or self.next_exit_by_port[self.to_port] >= len(sorted_r):
+                self.next_exit_by_port[self.to_port] = 0
+                
+            r = sorted_r[self.next_exit_by_port[self.to_port]]
+            self.next_exit_by_port[self.to_port] += 1
+            while not r.will_exit_to(self.to_ip, self.to_port):
+                r = sorted_r[self.next_exit_by_port[self.to_port]]
+                self.next_exit_by_port[self.to_port] += 1
+                if self.next_exit_by_port[self.to_port] >= len(sorted_r):
+                    self.next_exit_by_port[self.to_port] = 0
+            return r
+
+        # FIXME: This should apply to ORDEREXITS (for speedracer?)
+        if self.all_exits:
+            min_bw = self.min_bw
+            pct_fast = self.pct_fast
+            pct_skip = self.pct_skip
+            self.min_bw = self.pct_skip = 0
+            self.pct_fast = 100
+     
         allowed = []
         for r in sorted_r:
-            if r.will_exit_to(self.to_ip, self.to_port):
+            if self.r_is_ok(r) and not r.badexit and r.will_exit_to(self.to_ip, self.to_port):
                 allowed.append(r)
-        r = random.choice(allowed)
+        r = self.pick_r(allowed)
         while r.idhex in path:
-            r = random.choice(allowed)
+            r = self.pick_r(allowed)
+
+        if self.all_exits:
+            self.min_bw = min_bw
+            self.pct_fast = pct_fast
+            self.pct_skip = pct_skip
+ 
         return r
 
  
@@ -130,6 +212,9 @@
                 total_g_bw += r.bw
                 sorted_g.append(r)
 
+# TODO: Make passive mode so people can get aggregate node reliability 
+# stats for normal usage without us attaching streams
+
 # Make eventhandler
 class SnakeHandler(TorCtl.EventHandler):
     def __init__(self, c):
@@ -137,20 +222,39 @@
         self.c = c
 
     def attach_stream_any(self, stream, badcircs):
+        # Newnym, and warn if not built plus pending
+        unattached_streams = [stream]
+        global new_nym
+        if new_nym:
+            new_nym = False
+            plog("DEBUG", "Obeying new nym")
+            for key in circuits.keys():
+                if len(circuits[key].pending_streams):
+                    plog("WARN", "New nym called, destroying circuit "+str(key)
+                         +" with "+str(len(circuits[key].pending_streams))
+                         +" pending streams")
+                    unattached_streams.extend(circuits[key].pending_streams)
+                # FIXME: Consider actually closing circ if no streams.
+                # Or send Tor a SIGNAL NEWNYM and let it do it.
+                del circuits[key]
+            
         for circ in circuits.itervalues():
             if circ.built and circ.cid not in badcircs:
                 if circ.exit.will_exit_to(stream.host, stream.port):
                     self.c.attach_stream(stream.sid, circ.cid)
-                    stream.pending_circ = None
-                    stream.circ = circ
-                    circ.used_cnt += 1
+                    stream.pending_circ = circ # Only one stream possible here
+                    circ.pending_streams.append(stream)
                     break
         else:
-            circ = MetaCircuit(self.c.build_circuit(3,
+            circ = MetaCircuit(self.c.build_circuit(pathlen,
                                  UniformSelector(stream.host, stream.port)))
-            stream.pending_circ = circ
-            circ.pending_streams.append(stream)
+            for u in unattached_streams:
+                plog("DEBUG", "Attach pending build: "+str(u.sid))
+                u.pending_circ = circ
+            circ.pending_streams.extend(unattached_streams)
             circuits[circ.cid] = circ
+        global last_exit # Last attempted exit
+        last_exit = circ.exit
 
     def circ_status(self, eventtype, circID, status, path, reason, remote):
         output = [eventtype, str(circID), status]
@@ -159,11 +263,14 @@
         if remote: output.append("REMOTE_REASON=" + remote)
         plog("DEBUG", " ".join(output))
         # Circuits we don't control get built by Tor
-        if circID not in circuits: return
+        if circID not in circuits:
+            plog("DEBUG", "Ignoring circ " + str(circID))
+            return
         if status == "FAILED" or status == "CLOSED":
             circ = circuits[circID]
             del circuits[circID]
             for stream in circ.pending_streams:
+                plog("DEBUG", "Finding new circ for " + str(stream.sid))
                 self.attach_stream_any(stream, stream.detached_from)
         elif status == "BUILT":
             circuits[circID].built = True
@@ -190,16 +297,33 @@
             if streamID not in streams:
                 plog("WARN", "Detached stream "+str(streamID)+" not found")
                 streams[streamID] = Stream(streamID, target_host, target_port)
-            # FIXME Stats
+            # FIXME Stats (differentiate Resolved streams also..)
             if not circID:
                 plog("WARN", "Stream "+str(streamID)+" detached from no circuit!")
             else:
                 streams[streamID].detached_from.append(circID)
 
+            
+            if streams[streamID] in streams[streamID].pending_circ.pending_streams:
+                streams[streamID].pending_circ.pending_streams.remove(streams[streamID])
+            streams[streamID].pending_circ = None
             self.attach_stream_any(streams[streamID],
                                    streams[streamID].detached_from)
+        elif status == "SUCCEEDED":
+            if streamID not in streams:
+                plog("NOTICE", "Succeeded stream "+str(streamID)+" not found")
+                return
+            streams[streamID].circ = streams[streamID].pending_circ
+            streams[streamID].circ.pending_streams.remove(streams[streamID])
+            streams[streamID].pending_circ = None
+            streams[streamID].circ.used_cnt += 1
         elif status == "FAILED" or status == "CLOSED":
             # FIXME stats
+            if status == "FAILED": # We get failed and closed for each stream
+                return
+            if streamID not in streams:
+                plog("NOTICE", "Failed stream "+str(streamID)+" not found")
+                return
             if streams[streamID].pending_circ:
                 streams[streamID].pending_circ.pending_streams.remove(streams[streamID])
             del streams[streamID]
@@ -225,12 +349,122 @@
         plog("DEBUG", "Read " + str(len(identities)) + " desc => " 
              + str(len(sorted_r)) + " routers")
         
-def metaloop(c):
+
+def commandloop(s):
+    s.write("220 Welcome to the Tor Metatroller "+version+"! Try HELP for Info\r\n\r\n")
+    while 1:
+        buf = s.readline()
+        if not buf: break
+        
+        m = re.search(r"^(\S+)(?:\s(\S+))?", buf)
+        if not m:
+            s.write("500 Guido insults you for thinking '"+buf+
+                    "' could possibly be a metatroller command\r\n")
+            continue
+        (command, arg) = m.groups()
+        if command == "GETLASTEXIT":
+            le = last_exit # Consistency (avoids need for lock w/ GIL)
+            s.write("250 LASTEXIT=$"+le.idhex.upper()+" ("+le.name+") OK\r\n")
+        elif command == "NEWEXIT" or command == "NEWNYM":
+            global new_nym
+            new_nym = True
+            plog("DEBUG", "Got new nym")
+            s.write("250 NEWNYM OK\r\n")
+        elif command == "GETDNSEXIT":
+            pass # TODO
+        elif command == "RESETSTATS":
+            s.write("250 OK\r\n")
+        elif command == "ORDEREXITS":
+            global order_exits
+            try:
+                if arg: order_exits = int(arg)
+                s.write("250 ORDEREXITS="+str(order_exits)+" OK\r\n")
+            except ValueError:
+                s.write("510 Integer expected\r\n")
+        elif command == "USEALLEXITS":
+            global use_all_exits
+            try:
+                if arg: use_all_exits = int(arg)
+                s.write("250 USEALLEXITS="+str(use_all_exits)+" OK\r\n")
+            except ValueError:
+                s.write("510 Integer expected\r\n")
+        elif command == "PRECIRCUITS":
+            global num_circuits
+            try:
+                if arg: num_circuits = int(arg)
+                s.write("250 PRECIRCUITS="+str(num_circuits)+" OK\r\n")
+            except ValueError:
+                s.write("510 Integer expected\r\n")
+        elif command == "RESOLVEPORT":
+            global resolve_port
+            try:
+                if arg: resolve_port = int(arg)
+                s.write("250 RESOLVEPORT="+str(resolve_port)+" OK\r\n")
+            except ValueError:
+                s.write("510 Integer expected\r\n")
+        elif command == "PERCENTFAST":
+            global percent_fast
+            try:
+                if arg: percent_fast = int(arg)
+                s.write("250 PERCENTFAST="+str(percent_fast)+" OK\r\n")
+            except ValueError:
+                s.write("510 Integer expected\r\n")
+        elif command == "PERCENTSKIP":
+            global percent_skip
+            try:
+                if arg: percent_skip = int(arg)
+                s.write("250 PERCENTSKIP="+str(percent_skip)+" OK\r\n")
+            except ValueError:
+                s.write("510 Integer expected\r\n")
+        elif command == "BWCUTOFF":
+            global min_bw
+            try:
+                if arg: min_bw = int(arg)
+                s.write("250 BWCUTOFF="+str(min_bw)+" OK\r\n")
+            except ValueError:
+                s.write("510 Integer expected\r\n")
+        elif command == "UNIFORM":
+            s.write("250 OK\r\n")
+        elif command == "PATHLEN":
+            global pathlen
+            try:
+                if arg: pathlen = int(arg)
+                s.write("250 PATHLEN="+str(pathlen)+" OK\r\n")
+            except ValueError:
+                s.write("510 Integer expected\r\n")
+        elif command == "SETEXIT":
+            s.write("250 OK\r\n")
+        elif command == "GUARDNODES":
+            s.write("250 OK\r\n")
+        elif command == "SAVESTATS":
+            s.write("250 OK\r\n")
+        elif command == "RESETSTATS":
+            s.write("250 OK\r\n")
+        elif command == "HELP":
+            s.write("250 OK\r\n")
+        else:
+            s.write("510 Guido slaps you for thinking '"+command+
+                    "' could possibly be a metatroller command\r\n")
+    s.close()
+
+def cleanup(c, s):
+    c.set_option("__LeaveStreamsUnattached", "0")
+    s.close()
+
+def listenloop(c):
     """Loop that handles metatroller commands"""
     nslist = c.get_network_status()
     read_routers(c, nslist)
+    c.set_option("__LeaveStreamsUnattached", "1")
     plog("INFO", "Read "+str(len(sorted_r))+"/"+str(len(nslist))+" routers")
-    # XXX: Loop for commands on socket
+    srv = ListenSocket(meta_host, meta_port)
+    atexit.register(cleanup, *(c, srv))
+    while 1:
+        client = srv.accept()
+        if not client: break
+        thr = threading.Thread(None, lambda: commandloop(BufSock(client)))
+        thr.run()
+    srv.close()
 
 def main(argv):
     s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
@@ -239,14 +473,10 @@
     c.set_event_handler(SnakeHandler(c))
     th = c.launch_thread()
     c.authenticate()
-    atexit.register(lambda:
-                       c.set_option("__LeaveStreamsUnattached", "0"))
-    c.set_option("__LeaveStreamsUnattached", "1")
     c.set_events([TorCtl.EVENT_TYPE.STREAM,
                   TorCtl.EVENT_TYPE.NS,
                   TorCtl.EVENT_TYPE.CIRC,
                   TorCtl.EVENT_TYPE.NEWDESC], True)
-    metaloop(c)
-    th.join()
+    listenloop(c)
 
 main(sys.argv)

Added: torflow/trunk/soat.pl
===================================================================
--- torflow/trunk/soat.pl	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/soat.pl	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,1108 @@
+#!/usr/bin/perl -w
+
+# ZOMG SNAKES ON A TOR1111 - v0.0.5
+
+use strict;
+use IO::Socket;
+use IO::Socket::INET;
+
+my $META_PORT = "9052";
+my $META_HOST = "127.0.0.1";
+
+my $WORD_LIST = "./wordlist.txt";
+my $CERT_DIR = "./certs";
+my $DOC_DIR = "./docs";
+my $USER_AGENT = "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1) Gecko/20061010 Firefox/2.0";
+#my $USER_AGENT = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)";
+
+#Privoxy is a bad idea since it rewrites shit that will mess with our 
+#baseline md5s of html
+my $SOCKS_PROXY = "127.0.0.1:9050";
+
+my @TO_SCAN = ("ssl", "urls");
+my $ALLOW_NEW_SSL_IPS = 1;
+
+# doc and ppt may also be good ones to check.. They are frequently vulnerable
+# also, since we automatically weed out dynamic content, you can also add
+# php, cgi, etc to this list.. The multiple "all" filetypes mean 2 * 5 sets
+# of results without a filetype. Hopefully we can snag some static php,
+# shtml, cgi files.
+my @FILETYPES = ("all", "all"); #"xpi", "exe", "msi", "doc", "ppt", "all", "all"); 
+my $RESULTS_PER_TYPE = 3;
+
+# Maxium number of tries before giving up on a URL
+my $MAX_TRIES = 3; 
+
+# Urls to fetch in addition to queried ones. 
+# These should end in one of the @FILETYPES extensions so failures
+# are stored properly.
+my @DOC_URLS = (
+#    "http://www.cypherpunks.ca/otr/index.html",
+#    "http://www.cypherpunks.ca/otr/press/index.html"
+);
+
+my @HTTPS_SITES = (
+        "www.paypal.com",
+        "www.e-gold.com",
+        "chase.com",
+#        "bankusa.com",
+#        "citibank.com",
+#        "www.mailvault.com",
+        "mail.google.com",
+        "www.relakks.com",
+        "www.hushmail.com",
+        "login.yahoo.com",
+        "www.fastmail.fm",
+        "addons.mozilla.org"
+);
+
+
+my $LOG_LEVEL = "DEBUG";
+my %log_levels = ("DEBUG", 0, "INFO", 1, "NOTICE", 2, "WARN", 3, "ERROR", 4);
+
+
+my %mt_circ_sel_counts;
+my %mt_strm_sel_counts;
+my %mt_reason_counts;
+my %mt_fail_counts;
+my %mt_fail_totals; # actually 5 vars in metatroller
+
+my %mt_suspect_circ_sel_counts;
+my %mt_suspect_strm_sel_counts;
+my %mt_suspect_reason_counts;
+my %mt_suspect_counts;
+
+my %total_circ_sel_counts;
+my %total_strm_sel_counts;
+my %total_reason_counts;
+my %total_fail_counts;
+my %total_fail_totals; # actually 5 vars in metatroller
+
+my %total_suspect_circ_sel_counts;
+my %total_suspect_strm_sel_counts;
+my %total_suspect_counts;
+my %total_suspect_reason_counts;
+
+
+my %key_names;
+
+sub plog
+{
+    my $level = shift;
+    my $msg = shift;
+    my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
+
+    $year += 1900; # lame.
+    $mon += 1;
+    
+    #print "$level \[$year-$mon-$mday $hour:$min:$sec\]: " . $msg if($log_levels{$level} >= $log_levels{$LOG_LEVEL})
+    print "$level \[" . localtime() . "\]: " . $msg if($log_levels{$level} >= $log_levels{$LOG_LEVEL})
+}
+
+sub is_in
+{
+    my $element = shift;
+    my $ary = shift;
+    my $is_there = 0;
+    foreach (@$ary) {
+        if ($_ eq $element) {
+            $is_there = 1;
+            last;
+        }
+    }
+
+    return $is_there;
+}
+
+sub compare_arrays {
+    my ($first, $second) = @_;
+    no warnings;  # silence spurious -w undef complaints
+        return 0 unless @$first == @$second;
+    for (my $i = 0; $i < @$first; $i++) {
+        return 0 if $first->[$i] ne $second->[$i];
+    }
+    return 1;
+}
+
+
+sub get_doc_list
+{
+    my @words = &load_wordlist($WORD_LIST);
+    my @returns = &get_url_list(@words);
+
+    return @returns;
+}
+
+sub load_wordlist
+{
+    my @wordlist;
+
+    open(WORDFILE, '<', $_[0]);
+    while (<WORDFILE>) {s/\n//; s/\r//; push(@wordlist, $_);}
+    close(WORDFILE);
+
+    return @wordlist;
+}
+
+sub get_url_list
+{
+    my @wordlist = @_;
+    my @returns;
+
+    # Get a few URL's for each file type
+    foreach (@FILETYPES) {
+        my @prereturns;
+        my @urls;
+        my $type = $_;
+        mkdir("$DOC_DIR/$_");
+
+        my $numresults = $RESULTS_PER_TYPE;
+        while($#prereturns+1 < $numresults) {
+
+            my @queries = ($wordlist[int(rand(@wordlist))],
+                    $wordlist[int(rand(@wordlist))],
+                    $wordlist[int(rand(@wordlist))]);
+
+            foreach(@queries) {
+                my @queryret = &discover_urls($type, $_);
+                foreach(@queryret) {
+                    push(@prereturns, $_) if(not is_in($_, \@prereturns));
+                }
+            }
+        }
+        for(my $i = 0; $i < $numresults;) {
+            my $url = $prereturns[int(rand(@prereturns))];
+            if(not is_in($url, \@urls)) {
+                push(@returns, $url);
+                push(@urls, $url);
+                $i++;
+            }
+        }
+        plog "INFO", "URL List for $type:\n " . join("\n ", @urls) . "\n\n";
+    }
+
+
+    return @returns;
+}
+
+
+sub discover_urls
+{
+    my $filetype = shift;
+    my $query = shift;
+    my @results;
+    my @returns;
+
+    # Craft Google URL
+    my $base_url = "http://www.google.com/search?q=";
+    my $url;
+    if($filetype eq "all") {
+        $url = $base_url . $query;
+    } else {
+        $url = $base_url . $query . "+filetype%3A" . $filetype;
+    }
+
+    # Execute this query
+    open(QUERY, '-|', "wget -T 600 -U \"$USER_AGENT\" \'$url\' -O - 2> /dev/null");
+    #open(QUERY, '-|', "curl -A \"$USER_AGENT\" \'$url\' 2> /dev/null");
+    @results = <QUERY>;
+    close(QUERY);
+
+    # Extract all valid URLS
+    my $line = join('', @results);
+    if($filetype eq "all") {
+        @results = $line =~ /http:\/\/[^<>\s"]+/g;
+    } else {
+        @results = $line =~ /http:\/\/[^<>\?\&#"]+\.$filetype/g;
+    }
+
+    # Filter out links to google services and cgi
+    foreach (@results) {
+        if (not /oxyshare/) { #and not /google/) {
+            push(@returns, $_);
+        }
+    }
+
+    return @returns;
+}
+
+sub get_https_list()
+{
+    return \@HTTPS_SITES;    
+}
+
+sub query_exit
+{
+    my $mcp = shift;
+    my $line;
+    my $exit;
+    print $mcp "GETLASTEXIT\r\n";
+    $line = <$mcp>;
+    $line =~ /LASTEXIT=([\S]+)/;
+    $exit = $1;
+
+    if($exit eq "0") {
+        plog "NOTICE", "Got 0 exit\n";
+    }
+    
+    return $exit;    
+}
+
+sub openssl_check_one
+{
+    my $mcp = shift;
+    my $ssl_host = shift;
+    my $cert_dir = shift;
+    my $resolve = shift;
+    my $empty_ssl = 1;
+    my $resolv_exit;
+    my $ssl_ip;
+    my $fq_ssl;
+    my @ssl_data;
+    my @ssl_cert;
+    my $i;
+
+
+    if($resolve) {
+        do {
+            if(not open(TORRESOLVE, '-|', "tor-resolve $ssl_host $SOCKS_PROXY")) {
+                die "Cant call tor-resolve for $ssl_host";
+            }
+
+            $ssl_ip = <TORRESOLVE>;
+            chomp($ssl_ip) if($ssl_ip);
+            close(TORRESOLVE);
+            if(not $ssl_ip) {
+                plog "NOTICE", "tor-resolve failed to resolve $ssl_host\n";
+            }
+        } while(not $ssl_ip or not $ssl_ip =~ /^[\d]+/);
+
+        $resolv_exit = query_exit($mcp);
+
+        # Redundant, but keeping in case we need to add a max_tries counter..
+        if(not $ssl_ip or not $ssl_ip =~ /^[\d]+/) {
+            plog "WARN", "tor-resolve failed to resolve $ssl_host\n";
+            $ssl_ip = $fq_ssl = $ssl_host;
+        } else {
+            $fq_ssl = $ssl_host . "-" . $ssl_ip;
+        }
+    } else {
+        $ssl_ip = $fq_ssl = $ssl_host;
+    }
+    
+    my $cmd = "echo | tsocks openssl s_client -connect " . $ssl_ip . ":443 2> /dev/null";
+    open(OPENSSL, '-|', $cmd);
+
+    @ssl_data = <OPENSSL>;
+
+    for($i = 0; $i <= $#ssl_data; $i++) {
+        if($ssl_data[$i] =~ /BEGIN CERTIFICATE/) {
+            $empty_ssl = 0;
+            while(not $ssl_data[$i] =~ /END CERTIFICATE/) {
+                push(@ssl_cert, $ssl_data[$i]);
+                $i++;
+            }
+            push(@ssl_cert, $ssl_data[$i]);
+            last;
+        }
+    }
+    
+    close(OPENSSL);
+
+    if($empty_ssl) {
+        my $exit_node = query_exit($mcp);
+        plog "WARN", "$exit_node closed SSL for $fq_ssl before we got a cert\n";
+        return 0;
+    }
+
+    my $cert_exists = 0;
+
+    if(not ($cert_exists = open(CERTFILE, '<', $cert_dir . "/" . $fq_ssl . ".pem"))
+            and $ALLOW_NEW_SSL_IPS) {
+        plog "INFO", "Cert $fq_ssl never seen before. Storing it.\n";
+        open(CERTFILE, '>', $cert_dir . "/" . $fq_ssl . ".pem");
+        print CERTFILE @ssl_cert;
+        close(CERTFILE);
+    } else {
+        my $exit_node = query_exit($mcp);    
+        my @stored_cert;
+
+        if($cert_exists) {
+            @stored_cert = <CERTFILE>;
+            close(CERTFILE);
+        }
+        
+        if(not $exit_node eq $resolv_exit) {
+            plog "NOTICE", "SSL fetch exit $exit_node is not the resolution exit ($resolv_exit)\n";
+            $exit_node = $exit_node . "+" . $resolv_exit; 
+        }
+        
+        if($cert_exists and compare_arrays(\@stored_cert, \@ssl_cert)) {
+            plog "DEBUG", "Cert $fq_ssl OK\n";
+        } else {
+
+            if($cert_exists) {
+                plog "WARN", "Error on cert $fq_ssl for exit $exit_node\n";
+            } else {
+                plog "WARN", "New unseen cert IP $fq_ssl for exit $exit_node\n";
+            }
+            my $i = 0;
+            for($i = 0; (stat($cert_dir . "/ERRORS/" . $fq_ssl . ".pem-" . $exit_node . "-$i"))[0]; $i++) 
+            { }
+
+            open(CERTFILE, '>', $cert_dir . "/ERRORS/" . $fq_ssl . ".pem" . 
+                    "-" . $exit_node . "-$i");
+            print CERTFILE @ssl_data;
+            close(CERTFILE);
+
+        }
+
+    }
+    return 1;
+}
+
+sub openssl_check_all
+{
+    my $mcp = shift;
+    my $ssl_list = shift;
+
+    print $mcp "RESOLVEPORT 443\r\n";
+    my $line = <$mcp>;
+    die "Error setting resolution port: $line" if (not $line =~ /^250/);
+
+    foreach(@$ssl_list) {    
+        print $mcp "NEWEXIT\r\n";
+        $line = <$mcp>;
+        die "Error on newnym: $line\r\n" if(not $line =~ /^250/);
+        for(my $try = 0; $try < $MAX_TRIES; $try++) {
+            last if openssl_check_one($mcp, $_, $CERT_DIR, 1);
+        }
+    }
+    plog "INFO", "Checked all SSL certs\n";
+}
+
+sub load_table
+{
+    my $table = shift;
+    my $file = shift;
+    my @hash_list;
+
+    if(not open(TABLEFILE, '<', $file)) {
+        return;
+    }
+
+    @hash_list = <TABLEFILE>;
+    chomp(@hash_list);
+    %$table = @hash_list;
+
+    close(TABLEFILE);
+}
+
+sub write_table
+{
+    my $table = shift;
+    my $file = shift;
+
+    if(not open(TABLEFILE, '>', $file)) {
+        die "Can't open $file to save md5 state table";
+    }
+
+    while (my($k,$v) = each %$table) {
+        print TABLEFILE "$k\n$v\n";
+    }
+
+    close(TABLEFILE);
+}
+
+sub docs_check_one
+{
+    my $mcp = shift;
+    my $doc_url = shift;
+    my $md5_table = shift;
+    my $doc_dir = shift;
+    my $tsocks = shift;
+    my $md5;
+    my $exit_node = "unknown";
+    my $line;
+
+    plog "DEBUG", "$doc_url\n";
+    my $ret = system("$tsocks wget -T 600 -U \"$USER_AGENT\" \'$doc_url\' -O $doc_dir/tmp-$tsocks >& /dev/null");
+    #my $ret = 
+    #    system("$tsocks curl -m 1200 -A \"$USER_AGENT\" \'$doc_url\' -o $doc_dir/tmp-$tsocks &> /dev/null");
+
+    if($tsocks eq "") {
+        $exit_node = "none. (Direct test)";
+    } else {
+        $exit_node = query_exit($mcp);
+    }
+
+    # TODO: It may be nice to make a metatroller REPORTFAILURE command
+    # to cover the event where wget's internal timeout was triggered before
+    # Tors. Download rate info would also be nice for stats.
+    if($ret != 0) {
+        if($ret == 2) {
+            plog "NOTICE", "wget got SIGINT. Exiting\n";
+            exit;
+        }
+        plog "NOTICE", "wget returned $? for |$doc_url| at $exit_node\n";
+        return -1;
+    }
+   
+    if(not open(MD5SUM, '-|', "md5sum $doc_dir/tmp-$tsocks")) {
+        plog "WARN", "md5sum pipe failed for |$doc_url| at $exit_node\n";
+        return -1;
+    }
+
+    $md5 = <MD5SUM>;
+    if(not $md5) {
+        plog "WARN", "Failed to read MD5 from pipe for |$doc_url| at $exit_node\n";
+        return -1;
+    }
+    
+    $md5 =~ s/[\s]*$doc_dir\/tmp-$tsocks$//;
+    chomp($md5);
+
+    close(MD5SUM);
+
+    plog "DEBUG", " = $md5\n";
+
+    if(not defined($$md5_table{$doc_url})) {
+        $$md5_table{$doc_url} = $md5;
+    } elsif (not $$md5_table{$doc_url} eq $md5) {
+        my $new_url = $doc_url;
+
+        $new_url =~ s/\//\\/g;
+        $new_url =~ /\.([^\s\.]+)$/;
+        my $extn = $1;
+        if(not $extn or not is_in($extn, \@FILETYPES)) {
+            $extn = "all";
+        }
+
+        
+        if(not $tsocks eq "") {
+            my $i = 0;
+
+            if(not docs_check_one($mcp, $doc_url, $md5_table, $doc_dir, "")) {
+                # Doc has actually changed.. 
+                return 2;
+            }
+            
+            for($i = 0; (stat("$doc_dir/$extn/$new_url-$exit_node-$i"))[0]; $i++) 
+            { }
+            rename("$doc_dir/tmp-$tsocks", "$doc_dir/$extn/$new_url-$exit_node-$i");
+            plog "WARN", "Mismatch of md5 for $doc_url ($extn) at $exit_node (|$md5| vs |$$md5_table{$doc_url}|)\n";
+        }
+
+        return 0;
+    }
+    return 1;
+}
+
+sub docs_test_all
+{
+    my $mcp = shift;
+    my $doc_list = shift;
+    my $doc_dir = shift;
+    my @killed;
+    my %doc_table;
+    my $md5;
+
+    load_table(\%doc_table, $doc_dir . "/md5_table");
+   
+    for(my $i = 0; $i <= $#$doc_list; $i++) {
+        if(docs_check_one($mcp, $$doc_list[$i], \%doc_table, $doc_dir, "") <= 0) {
+            push(@killed, $$doc_list[$i]);
+            splice(@$doc_list, $i, 1);
+            $i--;
+        }
+    }
+
+    write_table(\%doc_table, $doc_dir . "/md5_table");
+
+    if($#killed >= 0) {
+        plog "NOTICE", "Discarded " . ($#killed+1) . " dead/dynamic url(s):\n " . join("\n ", @killed) . "\n\n";
+    }
+}
+
+sub docs_check_all
+{
+    my $mcp = shift;
+    my $doc_list = shift;
+    my $doc_dir = shift;
+    my %doc_table;
+    my $md5;
+
+    print $mcp "RESOLVEPORT 80\r\n";
+    my $line = <$mcp>;
+    die "Error setting resolution port: $line" if (not $line =~ /^250/);
+
+    load_table(\%doc_table, $doc_dir . "/md5_table");
+    
+    for(my $i = 0; $i <= $#$doc_list; $i++) {
+        my $ret = 0;
+        print $mcp "NEWEXIT\r\n";
+        $line = <$mcp>;
+        die "Error on newnym: $line\r\n" if(not $line =~ /^250/);
+        for(my $try = 0; $try < $MAX_TRIES; $try++) {
+            last if (($ret = docs_check_one($mcp, $$doc_list[$i], \%doc_table, $doc_dir, "tsocks")) >= 0);
+        }
+
+        if($ret == 2) {
+            # Splice it. Change $i
+            plog "NOTICE", $$doc_list[$i] . " has changed independent of Tor. Removing...\n";
+            splice(@$doc_list, $i, 1);
+            $i--;
+        }
+    }
+
+    write_table(\%doc_table, $doc_dir . "/md5_table");
+    plog "INFO", "Checked all urls\n";
+}
+
+sub openssh_check_one
+{
+    my $mcp = shift;
+    my $key_file = shift;
+    my $host = shift;
+    my $resolve = shift;
+    my $resolv_exit;
+    my $host_ip;
+    my $fq_host;
+    my @usernames = ("root", "operator", "bin", "nobody", "sshd", "news");
+    my @result;
+    my $username = $usernames[int(rand(@usernames))];
+
+
+    # TODO: http://www.monkey.org/~provos/scanssh/
+
+    plog "DEBUG", "Host: |$host|\n";
+    do {  
+        if(not open(TORRESOLVE, '-|', "tor-resolve $host $SOCKS_PROXY")) {
+            die "Cant call tor-resolve for $host";
+        }
+
+        $host_ip = <TORRESOLVE>;
+        chomp($host_ip) if($host_ip);
+        close(TORRESOLVE);
+        if(not $host_ip or not $host_ip =~ /^[\d]+/) {
+            plog "NOTICE", "tor-resolve failed to resolve |$host|\n";
+        }
+
+    } while(not $host_ip or not $host_ip =~ /^[\d]+/);
+
+    $resolv_exit = query_exit($mcp);
+
+    # Redundant, but maybe we want a max tries..
+    if(not $host_ip or not $host_ip =~ /^[\d]+/) {
+        plog "WARN", "tor-resolve failed to resolve |$host|\n";
+        $host_ip = $fq_host = $host;
+    } else {
+        $fq_host = $host . "-" . $host_ip;
+    }
+
+    plog "DEBUG", "tsocks ssh -o UserKnownHostsFile=$key_file -o PreferredAuthentications=hostbased -o PasswordAuthentication=no -o StrictHostKeyChecking=yes $username\@$host_ip\n";
+    if(not open(SSH, '-|', "tsocks ssh -o UserKnownHostsFile=$key_file -o PreferredAuthentications=hostbased -o PasswordAuthentication=no -o StrictHostKeyChecking=yes $username\@$host_ip 2>&1")) {
+# \"/bin/ls >& /dev/null\"")) {
+        plog "WARN", "ssh pipe failed for $fq_host\n";
+        return -1;
+    }
+    
+    @result = <SSH>;
+    close(SSH);
+    
+    my $resline = join("", @result);
+    my $exit_node = query_exit($mcp);
+
+    if(not $exit_node eq $resolv_exit) {
+        plog "NOTICE", "SSH fetch exit $exit_node is not the resolution exit ($resolv_exit)\n";
+        $exit_node = $exit_node . "+" . $resolv_exit; 
+    }
+    
+    plog "DEBUG", "Result: " . $resline . "\n";
+    if($resline =~ /Connection refused/) {
+        plog "NOTICE", "Connection refused for ssh host: $fq_host\n";
+        return -1;
+    }
+
+    if(not $resline =~ /Permission denied/
+            and not $resline =~ /Connection closed by/
+            and not $resline =~ /Write failed: Broken pipe/) {
+        my $i = 0;
+        my $line;
+
+        plog "WARN", "SSH error for $fq_host via $exit_node\n";
+
+        for($i = 0; (stat("$DOC_DIR/ssh/$fq_host-$exit_node-$i"))[0]; $i++) 
+        { }
+
+        if(not open(ERR, '>', "$DOC_DIR/ssh/$fq_host-$exit_node-$i")) {
+            plog "WARN", "Can't save ssh error in $DOC_DIR/ssh/$fq_host-$exit_node-$i\n";
+            return -1;
+        }
+        
+        print ERR "$resline\n";
+        close(ERR);
+        return 0;
+    }
+    return 1;
+}
+
+sub openssh_check_all
+{
+    my $mcp = shift;
+    my $key_file = shift;
+        
+    mkdir("$DOC_DIR/ssh");
+
+    if(not open(KEYFILE, '<', $key_file)) {
+        return;
+    }
+
+    print $mcp "RESOLVEPORT 22\r\n";
+    my $line = <$mcp>;
+    die "Error setting resolution port: $line" if (not $line =~ /^250/);
+
+    while(<KEYFILE>) {
+        next if(/^10\./ or /^192.168/ or /^127/ or /^172/);
+        /^([^,\s]+)/;
+        my $host = $1; 
+
+        if(not $host) {
+            plog "WARN", "No ssh host found in $_\n";
+            next;
+        }
+        
+        print $mcp "NEWEXIT\r\n";
+        $line = <$mcp>;
+        die "Error on newnym: $line\r\n" if(not $line =~ /^250/);
+        openssh_check_one($mcp, $key_file, $host);
+    }
+    
+    plog "INFO", "Checked all ssh hosts\n";
+}
+
+sub parse_failrates
+{
+    my $file = shift;
+    my $hash_fail = shift;
+    my $hash_circ = shift;
+    my $hash_strm = shift;
+    my $hash_totals = shift;
+
+    while(1) {
+        my $line = <$file>;
+        
+        if($line =~ /^250 FAILCOUNT/) {
+            $line =~ /FAILCOUNT ([\S]+) \(([\S]+)\) = ([\d]+)\//;
+            my $key = $1;
+            my $name = $2;
+            my $fail = $3;
+            # Hack because for reason failure lines there is an extra element
+            # (middle=total failures)
+            $line =~ /\/([\d]+)\+([\d]+)/;
+            my $circ_sel = $1;
+            my $strm_sel = $2;
+
+            if($key_names{$key} and (not $key_names{$key} eq $name)) {
+                plog "NOTICE", "$name for $key is not the same as $key_names{$key}\n";
+            }
+            $key_names{$key} = $name;
+            if($$hash_fail{$key}) {
+                $$hash_fail{$key} += $fail;
+            } else {
+                $$hash_fail{$key} = $fail;
+            }
+
+            if($hash_circ) {
+                if($$hash_circ{$key}) {
+                    $$hash_circ{$key} += $circ_sel;
+                } else {
+                    $$hash_circ{$key} = $circ_sel;
+                }
+            }
+            if($hash_strm) {
+                if($$hash_strm{$key}) {
+                    $$hash_strm{$key} += $strm_sel;
+                } else {
+                    $$hash_strm{$key} = $strm_sel;
+                }
+            }
+
+        } else {
+            if($hash_totals) {
+                if($line =~ /^250 FAILTOTALS ([\d]+)\/([\d]+) ([\d]+)\+([\d]+)\/([\d]+)/) {
+                    $$hash_totals{"CIRCUITFAILED"} = $1;
+                    $$hash_totals{"CIRCUITCOUNTS"} = $2;
+                    $$hash_totals{"STREAMDETACHED"} = $3;
+                    $$hash_totals{"STREAMFAILURES"} = $4;
+                    $$hash_totals{"STREAMCOUNTS"} = $5;
+                    plog "DEBUG", "Got fail totals\n";
+                }
+            }
+            last;
+        }
+    }
+}
+
+sub read_failrates
+{
+    my $mcp = shift;
+    my $file = shift;
+    my $cmd = shift;
+    my $mt_fcnt = shift;
+    my $tot_fcnt = shift; 
+    my $mt_circ_sel_cnt = shift;
+    my $tot_circ_sel_cnt = shift;
+    my $mt_strm_sel_cnt = shift;
+    my $tot_strm_sel_cnt = shift;
+    my $mt_totals = shift;
+    my $tot_totals = shift;
+    
+    return;
+    # Hack to avoid counting previous run
+    print $mcp "$cmd\r\n";
+    parse_failrates($mcp, $mt_fcnt, $mt_circ_sel_cnt, $mt_strm_sel_cnt, $mt_totals);
+
+    if(not open(FAILFILE, '<', $file)) {
+        return;
+    }
+
+    parse_failrates(*FAILFILE, $tot_fcnt, $tot_circ_sel_cnt, $tot_strm_sel_cnt, $tot_totals);
+    close(FAILFILE);
+}
+
+sub write_failrates
+{
+    my $mcp = shift;
+    my $file = shift;
+    my $cmd = shift;
+    my $mt_fcnt = shift;
+    my $tot_fcnt = shift;
+    my $mt_circ_sel_cnt = shift;
+    my $tot_circ_sel_cnt = shift;
+    my $mt_strm_sel_cnt = shift;
+    my $tot_strm_sel_cnt = shift;
+    my $mt_totals = shift;
+    my $tot_totals = shift;
+    my %fail_counts;
+    my %circ_counts;
+    my %strm_counts;
+    my %rate_totals;
+    return;
+
+    print $mcp "$cmd\r\n";
+    parse_failrates($mcp, \%fail_counts, \%circ_counts, \%strm_counts, \%rate_totals);
+
+    # Get delta
+    foreach(keys(%fail_counts)) {
+        if(not $$tot_fcnt{$_}) {
+            $$tot_circ_sel_cnt{$_} = 0;
+            $$tot_strm_sel_cnt{$_} = 0;
+            $$tot_fcnt{$_} = 0;
+        }
+
+        if(not $$mt_fcnt{$_}) {
+            $$mt_fcnt{$_} = 0;
+            $$mt_circ_sel_cnt{$_} = 0;
+            $$mt_strm_sel_cnt{$_} = 0;
+        }
+
+        # Update our totals only if the change is positive (ie no restart)
+        if(($fail_counts{$_} - $$mt_fcnt{$_}) > 0) {
+            $$tot_fcnt{$_} += ($fail_counts{$_} - $$mt_fcnt{$_});
+            $$tot_circ_sel_cnt{$_} += ($circ_counts{$_} - $$mt_circ_sel_cnt{$_});
+            $$tot_strm_sel_cnt{$_} += ($strm_counts{$_} - $$mt_strm_sel_cnt{$_});
+        }
+
+        # Store MT totals
+        $$mt_fcnt{$_} = $fail_counts{$_};
+        $$mt_circ_sel_cnt{$_} = $circ_counts{$_};
+        $$mt_strm_sel_cnt{$_} = $strm_counts{$_};
+    }
+
+    if($tot_totals) {
+        
+        if(($rate_totals{"STREAMCOUNTS"} - $$mt_totals{"STREAMCOUNTS"}) > 0) {
+
+            $$tot_totals{"CIRCUITFAILED"} += 
+                $rate_totals{"CIRCUITFAILED"} - $$mt_totals{"CIRCUITFAILED"};
+            $$tot_totals{"CIRCUITCOUNTS"} +=
+                $rate_totals{"CIRCUITCOUNTS"} - $$mt_totals{"CIRCUITCOUNTS"};
+            $$tot_totals{"STREAMDETACHED"} +=
+                $rate_totals{"STREAMDETACHED"} - $$mt_totals{"STREAMDETACHED"};
+            $$tot_totals{"STREAMFAILURES"} +=
+                $rate_totals{"STREAMFAILURES"} - $$mt_totals{"STREAMFAILURES"};
+            $$tot_totals{"STREAMCOUNTS"} +=
+                $rate_totals{"STREAMCOUNTS"} - $$mt_totals{"STREAMCOUNTS"};
+
+        }
+        $$mt_totals{"CIRCUITFAILED"} = $rate_totals{"CIRCUITFAILED"};
+        $$mt_totals{"CIRCUITCOUNTS"} = $rate_totals{"CIRCUITCOUNTS"};
+        $$mt_totals{"STREAMDETACHED"} = $rate_totals{"STREAMDETACHED"};
+        $$mt_totals{"STREAMFAILURES"} = $rate_totals{"STREAMFAILURES"};
+        $$mt_totals{"STREAMCOUNTS"} = $rate_totals{"STREAMCOUNTS"};
+
+    }
+
+    # Use global, not arg (which may be undef)
+    my @sorted_r = sort {
+        $$tot_fcnt{$b} <=> $$tot_fcnt{$a}
+    } keys %$tot_fcnt;
+
+    if(not open(FAILFILE, '>', $file)) {
+        die "Can't open $file to save fail rate table";
+    }
+
+    foreach(@sorted_r) {
+        print FAILFILE "250 FAILCOUNT $_ ($key_names{$_}) = $$tot_fcnt{$_}/$$tot_circ_sel_cnt{$_}+$$tot_strm_sel_cnt{$_}\n";
+    }
+
+    if($tot_totals) { 
+        print FAILFILE "250 FAILTOTALS " . $$tot_totals{"CIRCUITFAILED"} ."/". 
+            $$tot_totals{"CIRCUITCOUNTS"} ." ". $$tot_totals{"STREAMDETACHED"} ."+". 
+             $$tot_totals{"STREAMFAILURES"} ."/". $$tot_totals{"STREAMCOUNTS"} ." OK\n";
+    } else { 
+        print FAILFILE "250 OK\n";
+    }
+    
+    close(FAILFILE);
+    plog "INFO", "Updated failure counts\n";
+}
+
+
+sub parse_reasons
+{
+    my $file = shift;
+    my $hash = shift;
+
+    while( 1 ) {
+        my $line = <$file>;
+        my $reason;
+        if($line =~ /^250 REASON=([\S]+)/) {
+            $reason = $1;
+        } elsif($line =~ /^250 OK/) {
+            plog "DEBUG", "End reason parsing on $line\n";
+            return;
+        } else {
+            plog "NOTICE", "Weird end line $line\n";
+            return;
+        }
+
+        if(not $$hash{$reason}) {
+            $$hash{$reason} = {};
+        }
+
+        parse_failrates($file, $$hash{$reason});
+    }
+}
+
+sub read_reasons
+{
+    my $mcp = shift;
+    my $file = shift;
+    my $cmd = shift;
+    my $mt_rc = shift;
+    my $tot_rc = shift;
+    return;
+
+    # Hack to avoid double-counting
+    print $mcp "$cmd\r\n";
+    parse_reasons($mcp, $mt_rc);
+    
+    if(not open(FAILFILE, '<', $file)) {
+        return;
+    }
+
+    parse_reasons(*FAILFILE, $tot_rc);
+    close(FAILFILE);
+}
+
+sub write_reasons
+{
+    my $mcp = shift;
+    my $file = shift;
+    my $cmd = shift;
+    my $mt_rcnt = shift;
+    my $tot_rcnt = shift;
+    my $tot_fcnt = shift;
+    my $tot_circ_sel_cnt = shift;
+    my $tot_strm_sel_cnt = shift;
+    my %curr_reason_counts;
+
+    return;
+    print $mcp "$cmd\r\n";
+    parse_reasons($mcp, \%curr_reason_counts);
+
+    # Get delta
+    foreach(keys(%curr_reason_counts)) {
+        if(not $$tot_rcnt{$_}) {
+            $$tot_rcnt{$_} = {};
+        } 
+        if(not $$mt_rcnt{$_}) {
+            $$mt_rcnt{$_} = {};
+        } 
+        my $curr_hash = $curr_reason_counts{$_};
+        my $total_hash = $$tot_rcnt{$_};
+        my $mt_hash = $$mt_rcnt{$_};
+
+        foreach(keys(%$curr_hash)) {
+
+            if(not $$total_hash{$_}) {
+                $$total_hash{$_} = 0;
+            }
+
+            if(not $$mt_hash{$_}) {
+                $$mt_hash{$_} = 0;
+            }
+
+            # Update our totals 
+            if(($$curr_hash{$_} - $$mt_hash{$_}) > 0) {
+                $$total_hash{$_} += ($$curr_hash{$_} - $$mt_hash{$_});
+            }
+
+            # Store MT totals
+            $$mt_hash{$_} = $$curr_hash{$_};
+        }
+    }
+
+    my $failed_total = 0;
+    foreach(keys(%$tot_fcnt)) {
+        $failed_total += $$tot_fcnt{$_};
+    }
+
+    if(not open(FAILFILE, '>', $file)) {
+        die "Can't open $file to save fail rate table";
+    }
+
+    foreach(keys(%$tot_rcnt)) {
+        print FAILFILE "250 REASON=$_\r\n";
+        my $reason_hash = $$tot_rcnt{$_};
+        my $reason_total = 0;
+
+        my @sorted_r = sort {
+            $$reason_hash{$b} <=> $$reason_hash{$a}
+        } keys %$reason_hash;
+
+        foreach(@sorted_r) {
+            print FAILFILE "250 FAILCOUNT $_ ($key_names{$_}) = $$reason_hash{$_}/$$tot_fcnt{$_}/$$tot_circ_sel_cnt{$_}+$$tot_strm_sel_cnt{$_}\r\n";
+            $reason_total += $$reason_hash{$_};
+        }
+        print FAILFILE "250 REASONTOTAL $reason_total/$failed_total\r\n";
+    }
+    print FAILFILE "250 OK\r\n";
+   
+    close(FAILFILE);
+    plog "INFO", "Updated failure counts\n";
+}
+
+
+sub main
+{
+    my $mcp = IO::Socket::INET->new(
+            Proto    => "tcp",
+            PeerAddr => $META_HOST,
+            PeerPort => $META_PORT)
+        or die "The Metatroller is not enabled";
+    my $line = <$mcp>;
+    $line = <$mcp>;
+
+    print $mcp "PATHLEN 3\r\n";
+    $line = <$mcp>;
+    die "Error setting pathlen: $line" if (not $line =~ /^250/);
+    print $mcp "PERCENTFAST 88\r\n";
+    $line = <$mcp>;
+    die "Error setting percentfast: $line" if (not $line =~ /^250/);
+    print $mcp "USEALLEXITS 1\r\n";
+    $line = <$mcp>;
+    die "Error setting fastexits: $line" if (not $line =~ /^250/);
+    print $mcp "UNIFORM 1\r\n";
+    $line = <$mcp>;
+    die "Error setting uniform: $line" if (not $line =~ /^250/);
+    print $mcp "BWCUTOFF 1\r\n";
+    $line = <$mcp>;
+    die "Error setting BWCUTOFF: $line" if (not $line =~ /^250/);
+    print $mcp "ORDEREXITS 1\r\n";
+    $line = <$mcp>;
+    die "Error setting ORDEREXITS: $line" if (not $line =~ /^250/);
+    print $mcp "GUARDNODES 0\r\n";
+    $line = <$mcp>;
+    die "Error setting Guard Nodes: $line" if (not $line =~ /^250/);
+    print $mcp "RESETSTATS\r\n";
+    $line = <$mcp>;
+    die "Error on RESETSTATS: $line" if (not $line =~ /^250/);
+ 
+    delete $ENV{"http_proxy"};
+    delete $ENV{"HTTP_PROXY"};
+    delete $ENV{"proxy"};
+    delete $ENV{"PROXY"};
+   
+    read_failrates($mcp, $DOC_DIR . "/naive_fail_rates",
+            "FAILRATES", \%mt_fail_counts, \%total_fail_counts,
+            \%mt_circ_sel_counts, \%total_circ_sel_counts,
+            \%mt_strm_sel_counts, \%total_strm_sel_counts,
+            \%mt_fail_totals, \%total_fail_totals);
+    read_failrates($mcp, $DOC_DIR . "/suspected_rates",
+            "SUSPECTRATES", \%mt_suspect_counts, \%total_suspect_counts,
+            \%mt_suspect_circ_sel_counts, \%total_suspect_circ_sel_counts,
+            \%mt_suspect_strm_sel_counts, \%total_suspect_strm_sel_counts);
+    
+    read_reasons($mcp, $DOC_DIR . "/naive_fail_reasons", 
+            "FAILREASONS", \%mt_reason_counts, \%total_reason_counts);
+    read_reasons($mcp, $DOC_DIR . "/suspected_reasons", 
+            "SUSPECTREASONS", \%mt_suspect_reason_counts, 
+            \%total_suspect_reason_counts);
+  
+    if(is_in("urls", \@TO_SCAN)) {   
+        @DOC_URLS = (@DOC_URLS, get_doc_list());
+
+        plog "INFO", "Checking doc list for dynamic content\n";
+        
+        # Perform 3 checks to eliminate obvious dynamic content
+        docs_test_all($mcp, \@DOC_URLS, $DOC_DIR);
+        docs_test_all($mcp, \@DOC_URLS, $DOC_DIR);
+        docs_test_all($mcp, \@DOC_URLS, $DOC_DIR);
+   
+        plog "NOTICE", "Final URL List:\n " . join("\n ", @DOC_URLS) . "\n\n";
+    }
+    plog "INFO", "Beginning scan loop\n";
+        
+    while(1) {
+        my $scan = $TO_SCAN[int(rand(@TO_SCAN))];
+        plog "DEBUG", "Looped\n";
+        if($scan eq "ssl") {
+            openssl_check_all($mcp, \@HTTPS_SITES);
+        } elsif($scan eq "urls") {
+            docs_check_all($mcp, \@DOC_URLS, $DOC_DIR);
+            if($#DOC_URLS <= (($#FILETYPES+1) * $RESULTS_PER_TYPE)/2) {
+                plog "NOTICE", "Adding more URLS\n";
+                @DOC_URLS = (@DOC_URLS, get_doc_list());
+                docs_test_all($mcp, \@DOC_URLS, $DOC_DIR);
+                docs_test_all($mcp, \@DOC_URLS, $DOC_DIR);
+                docs_test_all($mcp, \@DOC_URLS, $DOC_DIR);
+            }
+        } elsif($scan eq "ssh") {
+            openssh_check_all($mcp, "./known_hosts");
+        }
+
+        write_failrates($mcp, $DOC_DIR . "/naive_fail_rates", 
+                "FAILRATES", \%mt_fail_counts, \%total_fail_counts, 
+                \%mt_circ_sel_counts, \%total_circ_sel_counts,
+                \%mt_strm_sel_counts, \%total_strm_sel_counts,
+                \%mt_fail_totals, \%total_fail_totals);
+        write_failrates($mcp, $DOC_DIR . "/suspected_rates", 
+                "SUSPECTRATES", \%mt_suspect_counts, \%total_suspect_counts,
+                \%mt_suspect_circ_sel_counts, \%total_suspect_circ_sel_counts,
+                \%mt_suspect_strm_sel_counts, \%total_suspect_strm_sel_counts);
+        
+        write_reasons($mcp, $DOC_DIR . "/naive_fail_reasons",
+                "FAILREASONS", \%mt_reason_counts, \%total_reason_counts,
+                \%total_fail_counts, \%total_circ_sel_counts, \%total_strm_sel_counts);
+        write_reasons($mcp, $DOC_DIR . "/suspected_reasons",
+                "SUSPECTREASONS", \%mt_suspect_reason_counts,
+                \%total_suspect_reason_counts, \%total_suspect_counts,
+                \%total_suspect_circ_sel_counts,
+                \%total_suspect_strm_sel_counts);
+    }
+}
+
+main();


Property changes on: torflow/trunk/soat.pl
___________________________________________________________________
Name: svn:executable
   + *

Added: torflow/trunk/wordlist.txt
===================================================================
--- torflow/trunk/wordlist.txt	2007-02-11 02:36:51 UTC (rev 9553)
+++ torflow/trunk/wordlist.txt	2007-02-11 03:21:23 UTC (rev 9554)
@@ -0,0 +1,30 @@
+document
+important
+download
+setup
+install
+plugin
+file
+program
+run
+microsoft
+windows
+xp
+installer
+slides
+presentation
+paper
+browser
+winscp
+vidalia+bundle
+putty
+torpark
+firefox+setup
+mozilla
+privoxy
+privacy
+extension
+firefox+extension
+example
+sample
+censorship



More information about the tor-commits mailing list