diff -Narup --exclude CVS --exclude Makefile --exclude Makefile.in gst-plugins-bad.orig/tests/check/Makefile.am gst-plugins-bad/tests/check/Makefile.am
--- gst-plugins-bad.orig/tests/check/Makefile.am	2008-01-18 10:54:59.000000000 +0100
+++ gst-plugins-bad/tests/check/Makefile.am	2008-01-22 05:00:06.000000000 +0100
@@ -15,6 +15,8 @@ TESTS_ENVIRONMENT = \
         GST_PLUGIN_PATH=$(top_builddir)/gst:$(top_builddir)/sys:$(top_builddir)/ext:$(GSTPB_PLUGINS_DIR):$(GST_PLUGINS_DIR) \
         STATE_IGNORE_ELEMENTS="vcdsrc nassink glimagesink"
 
+EXTRA_DIST = test-cert.pem test-key.pem
+
 plugindir = $(libdir)/gstreamer-@GST_MAJORMINOR@
 
 # override to _not_ install the test plugins
@@ -45,6 +47,12 @@ else
 check_neon = 
 endif
 
+if USE_SOUP
+check_soup = elements/souphttpsrc
+else
+check_soup = 
+endif
+
 if USE_TIMIDITY
 check_timidity=elements/timidity
 else
@@ -64,6 +72,7 @@ check_PROGRAMS = \
 	$(check_gio)  \
 	$(check_mpeg2enc)  \
 	$(check_neon)      \
+	$(check_soup)      \
 	$(check_timidity)  \
 	elements/bpwsinc  \
 	elements/equalizer  \
@@ -87,3 +96,5 @@ elements_timidity_LDADD = $(GST_BASE_LIB
 pipelines_gio_CFLAGS = $(GIO_CFLAGS) $(AM_CFLAGS)
 pipelines_gio_LDADD = $(GIO_LIBS) $(LDADD)
 
+elements_souphttpsrc_CFLAGS = $(SOUP_CFLAGS) $(AM_CFLAGS)
+elements_souphttpsrc_LDADD = $(SOUP_LIBS) $(LDADD)
diff -Narup --exclude CVS --exclude Makefile --exclude Makefile.in gst-plugins-bad.orig/tests/check/elements/.cvsignore gst-plugins-bad/tests/check/elements/.cvsignore
--- gst-plugins-bad.orig/tests/check/elements/.cvsignore	2008-01-21 08:54:02.000000000 +0100
+++ gst-plugins-bad/tests/check/elements/.cvsignore	2008-01-22 05:00:38.000000000 +0100
@@ -8,6 +8,7 @@ interleave
 lpwsinc
 mpeg2enc
 neonhttpsrc
+souphttpsrc
 rganalysis
 rglimiter
 rgvolume
diff -Narup --exclude CVS --exclude Makefile --exclude Makefile.in gst-plugins-bad.orig/tests/check/elements/souphttpsrc.c gst-plugins-bad/tests/check/elements/souphttpsrc.c
--- gst-plugins-bad.orig/tests/check/elements/souphttpsrc.c	1970-01-01 01:00:00.000000000 +0100
+++ gst-plugins-bad/tests/check/elements/souphttpsrc.c	2008-01-22 04:41:37.000000000 +0100
@@ -0,0 +1,460 @@
+/* GStreamer unit tests for the souphttpsrc element
+ * Copyright (C) 2006-2007 Tim-Philipp Müller <tim centricular net>
+ * Copyright (C) 2008 Wouter Cloetens <wouter@mind.be>
+ * Copyright (C) 2001-2003, Ximian, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <glib.h>
+#include <libsoup/soup-address.h>
+#include <libsoup/soup-message.h>
+#include <libsoup/soup-server.h>
+#include <gst/check/gstcheck.h>
+
+static int http_port = 0, https_port = 0;
+gboolean redirect = TRUE;
+
+static int run_server (int *http_port, int *https_port);
+
+
+static void
+handoff_cb (GstElement * fakesink, GstBuffer * buf, GstPad * pad,
+    GstBuffer ** p_outbuf)
+{
+  GST_LOG ("handoff, buf = %p", buf);
+  if (*p_outbuf == NULL)
+    *p_outbuf = gst_buffer_ref (buf);
+}
+
+int run_test (const char *format, ...)
+{
+  GstStateChangeReturn ret;
+  GstElement *pipe, *src, *sink;
+  GstBuffer *buf = NULL;
+  GstMessage *msg;
+  gchar *url;
+  va_list args;
+  int rc = -1;
+
+  pipe = gst_pipeline_new (NULL);
+
+  src = gst_element_factory_make ("souphttpsrc", NULL);
+  fail_unless (src != NULL);
+
+  sink = gst_element_factory_make ("fakesink", NULL);
+  fail_unless (sink != NULL);
+
+  gst_bin_add (GST_BIN (pipe), src);
+  gst_bin_add (GST_BIN (pipe), sink);
+  fail_unless (gst_element_link (src, sink));
+
+  if (http_port == 0) {
+    GST_DEBUG ("failed to start soup http server");
+  }
+  fail_unless (http_port != 0);
+  va_start(args, format);
+  g_vasprintf(&url, format, args);
+  va_end(args);
+  fail_unless (url != NULL);
+  g_object_set (src, "location", url, NULL);
+  g_free (url);
+
+  g_object_set (src, "automatic-redirect", redirect, NULL);
+  g_object_set (sink, "signal-handoffs", TRUE, NULL);
+  g_signal_connect (sink, "preroll-handoff", G_CALLBACK (handoff_cb), &buf);
+
+  ret = gst_element_set_state (pipe, GST_STATE_PAUSED);
+  if (ret != GST_STATE_CHANGE_ASYNC) {
+    GST_DEBUG ("failed to start up soup http src, ret = %d", ret);
+    goto done;
+  }
+
+  gst_element_set_state (pipe, GST_STATE_PLAYING);
+  msg = gst_bus_poll (GST_ELEMENT_BUS (pipe),
+      GST_MESSAGE_EOS | GST_MESSAGE_ERROR, -1);
+  if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR) {
+    gchar *debug = NULL;
+    GError *err = NULL;
+
+    gst_message_parse_error (msg, &err, &debug);
+    GST_INFO ("error: %s", err->message);
+    if (g_str_has_suffix (err->message, "Not Found"))
+      rc = 404;
+    else if (g_str_has_suffix (err->message, "Forbidden"))
+      rc = 403;
+    else if (g_str_has_suffix (err->message, "Found"))
+      rc = 302;
+    GST_INFO ("debug: %s", debug);
+    g_error_free (err);
+    g_free(debug);
+    gst_message_unref (msg);
+    goto done;
+  }
+  gst_message_unref (msg);
+
+  /* don't wait for more than 10 seconds */
+  ret = gst_element_get_state (pipe, NULL, NULL, 10 * GST_SECOND);
+  GST_LOG ("ret = %u", ret);
+
+  if (buf == NULL) {
+    /* we want to test the buffer offset, nothing else; if there's a failure
+     * it might be for lots of reasons (no network connection, whatever), we're
+     * not interested in those */
+    GST_DEBUG ("didn't manage to get data within 10 seconds, skipping test");
+    goto done;
+  }
+
+  GST_DEBUG ("buffer offset = %" G_GUINT64_FORMAT, GST_BUFFER_OFFSET (buf));
+
+  /* first buffer should have a 0 offset */
+  fail_unless (GST_BUFFER_OFFSET (buf) == 0);
+  gst_buffer_unref (buf);
+  rc = 0;
+
+done:
+
+  gst_element_set_state (pipe, GST_STATE_NULL);
+  gst_object_unref (pipe);
+  return rc;
+}
+
+GST_START_TEST (test_first_buffer_has_offset)
+{
+  fail_unless (run_test("http://127.0.0.1:%d/", http_port) == 0);
+}
+GST_END_TEST;
+
+GST_START_TEST (test_not_found)
+{
+  fail_unless (run_test("http://127.0.0.1:%d/404", http_port) == 404);
+}
+GST_END_TEST;
+
+GST_START_TEST (test_forbidden)
+{
+  fail_unless (run_test("http://127.0.0.1:%d/403", http_port) == 403);
+}
+GST_END_TEST;
+
+GST_START_TEST (test_redirect_no)
+{
+  redirect = FALSE;
+  fail_unless (run_test("http://127.0.0.1:%d/302", http_port) == 302);
+}
+GST_END_TEST;
+
+GST_START_TEST (test_redirect_yes)
+{
+  redirect = TRUE;
+  fail_unless (run_test("http://127.0.0.1:%d/302", http_port) == 0);
+}
+GST_END_TEST;
+
+GST_START_TEST (test_https)
+{
+  if (!https_port)
+    GST_INFO ("Failed to start an HTTPS server; let's just skip this test.");
+  else
+    fail_unless (run_test("https://127.0.0.1:%d/", https_port) == 0);
+}
+GST_END_TEST;
+
+GST_START_TEST (test_icy_stream)
+{
+  GstElement *pipe, *src, *sink;
+  GstMessage *msg;
+
+  pipe = gst_pipeline_new (NULL);
+
+  src = gst_element_factory_make ("souphttpsrc", NULL);
+  fail_unless (src != NULL);
+
+  sink = gst_element_factory_make ("fakesink", NULL);
+  fail_unless (sink != NULL);
+
+  gst_bin_add (GST_BIN (pipe), src);
+  gst_bin_add (GST_BIN (pipe), sink);
+  fail_unless (gst_element_link (src, sink));
+
+  /* First try Virgin Radio Ogg stream, to see if there's connectivity and all
+   * (which is an attempt to work around the completely horrid error reporting
+   * and that we can't distinguish different types of failures here). */
+
+  g_object_set (src, "location", "http://ogg2.smgradio.com/vr32.ogg", NULL);
+  g_object_set (src, "num-buffers", 1, NULL);
+  gst_element_set_state (pipe, GST_STATE_PLAYING);
+
+  msg = gst_bus_poll (GST_ELEMENT_BUS (pipe),
+      GST_MESSAGE_EOS | GST_MESSAGE_ERROR, -1);
+  if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR) {
+    GST_INFO ("looks like there's no net connectivity or sgmradio.com is "
+        "down. In any case, let's just skip this test");
+    gst_message_unref (msg);
+    goto done;
+  }
+  gst_message_unref (msg);
+  msg = NULL;
+  gst_element_set_state (pipe, GST_STATE_NULL);
+
+  /* Now, if the ogg stream works, the mp3 shoutcast stream should work as
+   * well (time will tell if that's true) */
+
+  /* Virgin Radio 32kbps mp3 shoutcast stream */
+  g_object_set (src, "location", "http://mp3-vr-32.smgradio.com:80/", NULL);
+
+
+  /* EOS after the first buffer */
+  g_object_set (src, "num-buffers", 1, NULL);
+
+  gst_element_set_state (pipe, GST_STATE_PLAYING);
+  msg = gst_bus_poll (GST_ELEMENT_BUS (pipe),
+      GST_MESSAGE_EOS | GST_MESSAGE_ERROR, -1);
+
+  if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_EOS) {
+    GST_DEBUG ("success, we're done here");
+    gst_message_unref (msg);
+    goto done;
+  }
+
+  {
+    GError *err = NULL;
+
+    gst_message_parse_error (msg, &err, NULL);
+    gst_message_unref (msg);
+    g_error ("Error with ICY mp3 shoutcast stream: %s", err->message);
+    g_error_free (err);
+  }
+
+done:
+
+  gst_element_set_state (pipe, GST_STATE_NULL);
+  gst_object_unref (pipe);
+}
+
+GST_END_TEST;
+
+static Suite *
+souphttpsrc_suite (void)
+{
+  g_type_init ();
+  g_thread_init (NULL);
+
+  Suite *s = suite_create ("souphttpsrc");
+  TCase *tc_chain = tcase_create ("general");
+
+  suite_add_tcase (s, tc_chain);
+  run_server (&http_port, &https_port);
+  tcase_add_test (tc_chain, test_first_buffer_has_offset);
+  tcase_add_test (tc_chain, test_https);
+  tcase_add_test (tc_chain, test_redirect_yes);
+  tcase_add_test (tc_chain, test_redirect_no);
+  tcase_add_test (tc_chain, test_not_found);
+  tcase_add_test (tc_chain, test_forbidden);
+  tcase_add_test (tc_chain, test_icy_stream);
+
+  return s;
+}
+
+GST_CHECK_MAIN (souphttpsrc);
+
+#ifndef SOUP_API_VERSION_2_4
+#define soup_message_headers_get soup_message_get_header
+#define soup_message_headers_append soup_message_add_header
+#define soup_message_headers_remove soup_message_remove_header
+#define soup_message_headers_foreach soup_message_foreach_header
+#endif
+
+static void
+do_get (SoupMessage *msg, const char *path)
+{
+  char *uri;
+  int buflen = 4096;
+  SoupKnownStatusCode status = SOUP_STATUS_OK;
+  uri = soup_uri_to_string (soup_message_get_uri (msg), FALSE);
+  GST_DEBUG ("request: \"%s\"", uri);
+
+  if (!strcmp (path, "/301"))
+      status = SOUP_STATUS_MOVED_PERMANENTLY;
+  else if (!strcmp (path, "/302"))
+      status = SOUP_STATUS_MOVED_TEMPORARILY;
+  else if (!strcmp (path, "/307"))
+    status = SOUP_STATUS_TEMPORARY_REDIRECT;
+  else if (!strcmp (path, "/403"))
+    status = SOUP_STATUS_FORBIDDEN;
+  else if (!strcmp (path, "/404"))
+    status = SOUP_STATUS_NOT_FOUND;
+
+  if (SOUP_STATUS_IS_REDIRECTION (status)) {
+      char *redir_uri;
+
+      redir_uri = g_strdup_printf ("%s-redirected", uri);
+      soup_message_headers_append (msg->response_headers,
+                                   "Location", redir_uri);
+      g_free (redir_uri);
+  }
+  if (status != SOUP_STATUS_OK)
+    goto leave;
+
+#ifdef SOUP_API_VERSION_2_4
+  if (msg->method == SOUP_METHOD_GET) {
+    char *buf;
+
+    buf = g_malloc (buflen);
+    memset (buf, 0, buflen);
+    soup_message_body_append (msg->response_body, SOUP_MEMORY_TAKE,
+        buf, buflen);
+  } else /* msg->method == SOUP_METHOD_HEAD */ {
+    char *length;
+
+    /* We could just use the same code for both GET and
+     * HEAD. But we'll optimize and avoid the extra
+     * malloc.
+     */
+    length = g_strdup_printf ("%lu", (gulong)buflen);
+    soup_message_headers_append (msg->response_headers,
+        "Content-Length", length);
+    g_free (length);
+  }
+#else
+  msg->response.owner = SOUP_BUFFER_SYSTEM_OWNED;
+  msg->response.length = buflen;
+
+  if (soup_method_get_id (msg->method) == SOUP_METHOD_ID_GET) {
+    msg->response.body = g_malloc (msg->response.length);
+    memset (msg->response.body, 0, msg->response.length);
+  } else /* method == SOUP_METHOD_ID_HEAD */ {
+    /* SoupServer will ignore response.body and only use
+     * response.length when responding to HEAD, so we
+     * could just use the same code for both GET and HEAD.
+     * But we'll optimize and avoid the extra malloc.
+     */
+    msg->response.body = NULL;
+  }
+#endif
+
+leave:
+  soup_message_set_status (msg, status);
+  g_free (uri);
+}
+
+static void
+#ifdef SOUP_API_VERSION_2_4
+print_header (const char *name, const char *value, gpointer data)
+#else
+print_header (gpointer name, gpointer value, gpointer data)
+#endif
+{
+  GST_DEBUG ("header: %s: %s", name, value);
+}
+
+#ifdef SOUP_API_VERSION_2_4
+static void
+server_callback (SoupServer *server, SoupMessage *msg,
+                 const char *path, GHashTable *query,
+                 SoupClientContext *context, gpointer data)
+#else
+static void
+server_callback (SoupServerContext *context, SoupMessage *msg, gpointer data)
+#endif
+{
+#ifndef SOUP_API_VERSION_2_4
+  char *path;
+  SoupMethodId method;
+
+  path = soup_uri_to_string (soup_message_get_uri (msg), TRUE);
+  method = soup_method_get_id (msg->method);
+#endif
+  GST_DEBUG ("%s %s HTTP/1.%d", msg->method, path,
+      soup_message_get_http_version (msg));
+  soup_message_headers_foreach (msg->request_headers, print_header, NULL);
+#ifdef SOUP_API_VERSION_2_4
+  if (msg->request_body->length)
+    GST_DEBUG ("%s", msg->request_body->data);
+#else
+  if (msg->request.length)
+    GST_DEBUG  ("%.*s\n", msg->request.length, msg->request.body);
+#endif
+
+#ifdef SOUP_API_VERSION_2_4
+  if (msg->method == SOUP_METHOD_GET || msg->method == SOUP_METHOD_HEAD)
+#else
+  if (method == SOUP_METHOD_ID_GET || method == SOUP_METHOD_ID_HEAD)
+#endif
+    do_get (msg, path);
+  else
+    soup_message_set_status (msg, SOUP_STATUS_NOT_IMPLEMENTED);
+
+  GST_DEBUG ("  -> %d %s", msg->status_code, msg->reason_phrase);
+}
+
+int
+run_server (int *http_port, int *https_port)
+{
+  SoupServer *server, *ssl_server;
+  int port = SOUP_ADDRESS_ANY_PORT;
+  int ssl_port = SOUP_ADDRESS_ANY_PORT;
+  const char *ssl_cert_file = "test-cert.pem", *ssl_key_file = "test-key.pem";
+  static int server_running = 0;
+
+  if (server_running)
+    return 0;
+  server_running = 1;
+
+  *http_port = *https_port = 0;
+
+  server = soup_server_new (SOUP_SERVER_PORT, port,
+                            NULL);
+  if (!server) {
+    GST_DEBUG ("Unable to bind to server port %d", port);
+    return 1;
+  }
+  *http_port = soup_server_get_port (server);
+  GST_INFO ("HTTP server listening on port %d", *http_port);
+  soup_server_add_handler (server, NULL,
+#ifndef SOUP_API_VERSION_2_4
+      NULL,
+#endif
+      server_callback, NULL, NULL);
+  soup_server_run_async (server);
+
+  if (ssl_cert_file && ssl_key_file) {
+    ssl_server = soup_server_new (
+        SOUP_SERVER_PORT, ssl_port,
+        SOUP_SERVER_SSL_CERT_FILE, ssl_cert_file,
+        SOUP_SERVER_SSL_KEY_FILE, ssl_key_file,
+        NULL);
+
+    if (!ssl_server) {
+      GST_DEBUG ("Unable to bind to SSL server port %d", ssl_port);
+      return 1;
+    }
+    *https_port = soup_server_get_port (ssl_server);
+    GST_INFO ("HTTPS server listening on port %d", *https_port);
+    soup_server_add_handler (ssl_server, NULL,
+#ifndef SOUP_API_VERSION_2_4
+        NULL,
+#endif
+        server_callback, NULL, NULL);
+    soup_server_run_async (ssl_server);
+  }
+
+  return 0;
+}
diff -Narup --exclude CVS --exclude Makefile --exclude Makefile.in gst-plugins-bad.orig/tests/check/test-cert.pem gst-plugins-bad/tests/check/test-cert.pem
--- gst-plugins-bad.orig/tests/check/test-cert.pem	1970-01-01 01:00:00.000000000 +0100
+++ gst-plugins-bad/tests/check/test-cert.pem	2008-01-22 01:32:53.000000000 +0100
@@ -0,0 +1,22 @@
+-----BEGIN CERTIFICATE-----
+MIIDjzCCAvigAwIBAgIBADANBgkqhkiG9w0BAQQFADCBkjELMAkGA1UEBhMCVVMx
+FjAUBgNVBAgTDU1hc3NhY2h1c2V0dHMxDzANBgNVBAcTBkJvc3RvbjEPMA0GA1UE
+ChMGWGltaWFuMRUwEwYDVQQLEwxTb3VwIEtpdGNoZW4xEjAQBgNVBAMTCWxvY2Fs
+aG9zdDEeMBwGCSqGSIb3DQEJARYPc291cEB4aW1pYW4uY29tMB4XDTAzMDkyMzE4
+Mzc0MVoXDTEzMDkyMzE4Mzc0MVowgZIxCzAJBgNVBAYTAlVTMRYwFAYDVQQIEw1N
+YXNzYWNodXNldHRzMQ8wDQYDVQQHEwZCb3N0b24xDzANBgNVBAoTBlhpbWlhbjEV
+MBMGA1UECxMMU291cCBLaXRjaGVuMRIwEAYDVQQDEwlsb2NhbGhvc3QxHjAcBgkq
+hkiG9w0BCQEWD3NvdXBAeGltaWFuLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
+gYkCgYEAwzT/WxfdXqb2hbyjQav3FtN7tLxj3UbZKCKDYlizBsNLxb9exfebhV4h
+CoAcaSNvLUnk3tAXnk+BDsIC1V4SbwqHYR17PnO3YZ8fkNwh5RGZwNx+zafdfFyu
++3Sh+mE03bljpDlTsgPL8CiFCd68MPRnuHoKt5iTpSyLC6Df0qcCAwEAAaOB8jCB
+7zAdBgNVHQ4EFgQU9A9omrgBK5Kkl6FRxrgJU2voj4Uwgb8GA1UdIwSBtzCBtIAU
+9A9omrgBK5Kkl6FRxrgJU2voj4WhgZikgZUwgZIxCzAJBgNVBAYTAlVTMRYwFAYD
+VQQIEw1NYXNzYWNodXNldHRzMQ8wDQYDVQQHEwZCb3N0b24xDzANBgNVBAoTBlhp
+bWlhbjEVMBMGA1UECxMMU291cCBLaXRjaGVuMRIwEAYDVQQDEwlsb2NhbGhvc3Qx
+HjAcBgkqhkiG9w0BCQEWD3NvdXBAeGltaWFuLmNvbYIBADAMBgNVHRMEBTADAQH/
+MA0GCSqGSIb3DQEBBAUAA4GBAGCV56N7bEDNdE76T8i68gS00NIVVosVQjS39Ojd
+ED+rvq0YYvuc2UXlzAonuCJfwFc73g4wSIjS0xijF5rnugZ+aay0LNv2y+Rf34CQ
+RNswrwurFjlxgTOO+Wx2IM64mAnBfj43M8uKEZFqAiGKrZZ0xIqyUMlku0FgXDH2
+Jvpg
+-----END CERTIFICATE-----
diff -Narup --exclude CVS --exclude Makefile --exclude Makefile.in gst-plugins-bad.orig/tests/check/test-key.pem gst-plugins-bad/tests/check/test-key.pem
--- gst-plugins-bad.orig/tests/check/test-key.pem	1970-01-01 01:00:00.000000000 +0100
+++ gst-plugins-bad/tests/check/test-key.pem	2008-01-22 01:33:00.000000000 +0100
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICWwIBAAKBgQDDNP9bF91epvaFvKNBq/cW03u0vGPdRtkoIoNiWLMGw0vFv17F
+95uFXiEKgBxpI28tSeTe0BeeT4EOwgLVXhJvCodhHXs+c7dhnx+Q3CHlEZnA3H7N
+p918XK77dKH6YTTduWOkOVOyA8vwKIUJ3rww9Ge4egq3mJOlLIsLoN/SpwIDAQAB
+AoGAOGAi6zzuKrrPcXo0L/ApEQeMr3rE4I/ogUXOaeWx9l8KkBafmU7UNGUl57Fu
+AxM/tXWkypCQcaEGZau0Q8jCS5wKgynNi72F4OzBqgjgW4vvtrjfC1LagnCd2ZMX
+V5XVECjO/sEDg0hJeOsXlKbECAgvHMU3dSCGO7DmuG9tIxkCQQDsth1VvVjOdfp6
+klOfYzbAM1p9HIcNPJMeuBFqq//UHX4aPqh/6G6W06TOTN+bjZBmitG9yjV958t2
+rPxl64f7AkEA0x0WOLm5S0LNsv7zwjXuTcj+NCHL36b3dK90oxX8Gq69PANL/EJY
+ItpHNLgzzo4DRmQy8q0WZlC9HYk1YljERQJAEN7+AkFnlfeErb3GJgMNQO+oEGi7
+G29o0PSvkRnHNxgPB9HVcqBfWXKmOWnzOgQB+b0FK/DAlUOzFbdImf8KhwJAFLty
+hzeV/tIcqUtoXNY3BOSMMkpvXxNikc75QVrTWzt10gLw32EUjreo7oB4dfx0TeFh
+L3vYC0w6hkAHQhU9kQJAPSEQ+Bqzlk6BrQNrNFEVzi1Rwpz7LOzhOjuYW6bsiAdX
+axA4r6Xh25x08ZU7cqX7gwVLHL6pgrEKuUs0Nc5Klg==
+-----END RSA PRIVATE KEY-----
