diff --git a/.cvsignore b/.cvsignore
index cfd21f2..5498935 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -201,3 +201,4 @@ system-config-printer-1.1.6.tar.bz2
system-config-printer-1.1.7.tar.bz2
pycups-1.9.46.tar.bz2
system-config-printer-1.1.8.tar.bz2
+system-config-printer-1.1.10.tar.bz2
diff --git a/sources b/sources
index 3a9fa6f..35e7fe9 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
ac8f98a40b0fc4b6ab4470f10489887a pysmbc-1.0.6.tar.bz2
895d4170542ec80c74d41746a9474409 pycups-1.9.46.tar.bz2
-fa520cbf9cd86dc6fa8becd872bbbfa9 system-config-printer-1.1.8.tar.bz2
+18d7455f832a9bc5b72d15e5e38913cd system-config-printer-1.1.10.tar.bz2
diff --git a/system-config-printer-1.1.10.tar.bz2.sig b/system-config-printer-1.1.10.tar.bz2.sig
new file mode 100644
index 0000000..6ffcf3b
Binary files /dev/null and b/system-config-printer-1.1.10.tar.bz2.sig differ
diff --git a/system-config-printer-arrows.patch b/system-config-printer-arrows.patch
deleted file mode 100644
index d04e80f..0000000
--- a/system-config-printer-arrows.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-diff -up system-config-printer-1.1.8/glade/NewPrinterWindow.glade.arrows system-config-printer-1.1.8/glade/NewPrinterWindow.glade
---- system-config-printer-1.1.8/glade/NewPrinterWindow.glade.arrows 2009-06-03 09:20:26.000000000 +0100
-+++ system-config-printer-1.1.8/glade/NewPrinterWindow.glade 2009-07-03 18:18:50.640997051 +0100
-@@ -3662,6 +3662,7 @@ DTR/DSR (Hardware)
- False
- False
- False
-+
-
-
-
-@@ -3693,6 +3694,7 @@ DTR/DSR (Hardware)
-
-
- True
-+ False
- True
- True
- GTK_RELIEF_NORMAL
-@@ -3771,6 +3773,7 @@ DTR/DSR (Hardware)
-
-
- True
-+ False
- True
- True
- GTK_RELIEF_NORMAL
-@@ -3823,6 +3826,7 @@ DTR/DSR (Hardware)
- False
- False
- False
-+
-
-
-
-diff -up system-config-printer-1.1.8/system-config-printer.py.arrows system-config-printer-1.1.8/system-config-printer.py
---- system-config-printer-1.1.8/system-config-printer.py.arrows 2009-07-03 18:18:36.478996538 +0100
-+++ system-config-printer-1.1.8/system-config-printer.py 2009-07-03 18:18:50.643996718 +0100
-@@ -174,7 +174,6 @@ def moveClassMembers(treeview_from, tree
- for row in rows:
- path = row.get_path()
- iter = model_from.get_iter(path)
--
- row_data = model_from.get(iter, 0)
- model_to.append(row_data)
- model_from.remove(iter)
-@@ -3547,6 +3546,8 @@ class NewPrinterGUI(GtkGUI):
- "entNPTDevice",
- "tvNCMembers",
- "tvNCNotMembers",
-+ "btnNCAddMember",
-+ "btnNCDelMember",
- "ntbkPPDSource",
- "rbtnNPPPD",
- "tvNPMakes",
-@@ -4089,11 +4090,23 @@ class NewPrinterGUI(GtkGUI):
- moveClassMembers(self.tvNCNotMembers, self.tvNCMembers)
- self.btnNPApply.set_sensitive(
- bool(getCurrentClassMembers(self.tvNCMembers)))
-+ button.set_sensitive(False)
-
- def on_btnNCDelMember_clicked(self, button):
- moveClassMembers(self.tvNCMembers, self.tvNCNotMembers)
- self.btnNPApply.set_sensitive(
- bool(getCurrentClassMembers(self.tvNCMembers)))
-+ button.set_sensitive(False)
-+
-+ def on_tvNCMembers_cursor_changed(self, widget):
-+ selection = widget.get_selection()
-+ model_from, rows = selection.get_selected_rows()
-+ self.btnNCDelMember.set_sensitive(rows != [])
-+
-+ def on_tvNCNotMembers_cursor_changed(self, widget):
-+ selection = widget.get_selection()
-+ model_from, rows = selection.get_selected_rows()
-+ self.btnNCAddMember.set_sensitive(rows != [])
-
- # Navigation buttons
-
diff --git a/system-config-printer-bug507489.patch b/system-config-printer-bug507489.patch
deleted file mode 100644
index 29e8121..0000000
--- a/system-config-printer-bug507489.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up system-config-printer-1.1.8/system-config-printer.py.bug507489 system-config-printer-1.1.8/system-config-printer.py
---- system-config-printer-1.1.8/system-config-printer.py.bug507489 2009-06-17 18:39:51.000000000 +0100
-+++ system-config-printer-1.1.8/system-config-printer.py 2009-06-23 12:23:49.888572438 +0100
-@@ -6644,6 +6644,11 @@ class NewPrinterGUI(GtkGUI):
-
- iter = model.iter_next (iter)
-
-+ # Load information about the printer,
-+ # e.g. self.mainapp.server_side_options and self.mainapp.ppd
-+ # (both used below).
-+ self.mainapp.fillPrinterTab (name)
-+
- if check:
- try:
- self.checkDriverExists (name, ppd=checkppd)
diff --git a/system-config-printer-gutenprint.patch b/system-config-printer-gutenprint.patch
deleted file mode 100644
index f3f35ad..0000000
--- a/system-config-printer-gutenprint.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -up system-config-printer-1.1.8/cupshelpers/cupshelpers.py.gutenprint system-config-printer-1.1.8/cupshelpers/cupshelpers.py
---- system-config-printer-1.1.8/cupshelpers/cupshelpers.py.gutenprint 2009-06-17 18:39:51.000000000 +0100
-+++ system-config-printer-1.1.8/cupshelpers/cupshelpers.py 2009-07-03 18:09:03.598995561 +0100
-@@ -736,8 +736,10 @@ def missingPackagesAndExecutables(ppd):
- # IJS servers (used by foomatic)
- 'hpijs': 'hpijs',
- 'ijsgutenprint.5.0': 'gutenprint',
-+ 'ijsgutenprint.5.2': 'gutenprint',
- # CUPS filters
- 'rastertogutenprint.5.0': 'gutenprint-cups',
-+ 'rastertogutenprint.5.2': 'gutenprint-cups',
- 'commandtoepson': 'gutenprint-cups',
- 'commandtocanon': 'gutenprint-cups',
- }
diff --git a/system-config-printer-https.patch b/system-config-printer-https.patch
deleted file mode 100644
index 25185a6..0000000
--- a/system-config-printer-https.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-diff -up system-config-printer-1.1.8/system-config-printer.py.https system-config-printer-1.1.8/system-config-printer.py
---- system-config-printer-1.1.8/system-config-printer.py.https 2009-06-24 10:46:14.873192155 +0100
-+++ system-config-printer-1.1.8/system-config-printer.py 2009-06-24 10:46:25.057317039 +0100
-@@ -5431,7 +5431,13 @@ class NewPrinterGUI(GtkGUI):
- (host, port) = urllib.splitnport (host, defport=port)
-
- try:
-- c = cups.Connection (host=host, port=port)
-+ if self.device.type == "https":
-+ encrypt = cups.HTTP_ENCRYPT_ALWAYS
-+ else:
-+ encrypt = cups.HTTP_ENCRYPT_IF_REQUESTED
-+
-+ c = cups.Connection (host=host, port=port,
-+ encryption=encrypt)
- printers = c.getPrinters ()
- del c
- except cups.IPPError, (e, m):
-@@ -5492,6 +5498,10 @@ class NewPrinterGUI(GtkGUI):
- self.entNPTIPPHostname.set_text (match.group (2))
- self.entNPTIPPQueuename.set_text (match.group (3))
-
-+ if self.device.type == "https" and uri.startswith ("ipp:"):
-+ # Use https in our device URI for this printer.
-+ uri = "https:" + uri[4:]
-+
- self.lblIPPURI.set_text (uri)
- self.lblIPPURI.show()
- self.setNPButtons()
diff --git a/system-config-printer-incorrect-auth.patch b/system-config-printer-incorrect-auth.patch
deleted file mode 100644
index c5989e1..0000000
--- a/system-config-printer-incorrect-auth.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up system-config-printer-1.1.8/authconn.py.incorrect-auth system-config-printer-1.1.8/authconn.py
---- system-config-printer-1.1.8/authconn.py.incorrect-auth 2009-06-18 16:45:49.000000000 +0100
-+++ system-config-printer-1.1.8/authconn.py 2009-06-25 17:51:23.943329108 +0100
-@@ -389,6 +389,8 @@ class Connection:
- _("The password may be incorrect."))
- if self._lock:
- d.connect ("response", self._on_not_authorized_dialog_response)
-+ d.show_all ()
-+ d.show_now ()
- gtk.gdk.threads_leave ()
- else:
- d.run ()
diff --git a/system-config-printer-ipp-nonfatal-exception.patch b/system-config-printer-ipp-nonfatal-exception.patch
deleted file mode 100644
index 66038d9..0000000
--- a/system-config-printer-ipp-nonfatal-exception.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up system-config-printer-1.1.8/system-config-printer.py.ipp-nonfatal-exception system-config-printer-1.1.8/system-config-printer.py
---- system-config-printer-1.1.8/system-config-printer.py.ipp-nonfatal-exception 2009-06-24 10:28:47.773317435 +0100
-+++ system-config-printer-1.1.8/system-config-printer.py 2009-06-24 10:29:24.339192122 +0100
-@@ -4167,6 +4167,8 @@ class NewPrinterGUI(GtkGUI):
- self.entNPDescription.set_text (info)
- if len (location) > 0:
- self.entNPLocation.set_text (location)
-+ except RuntimeError:
-+ pass
- except:
- nonfatalException ()
-
diff --git a/system-config-printer-nmblookup-failure.patch b/system-config-printer-nmblookup-failure.patch
deleted file mode 100644
index 20e9cca..0000000
--- a/system-config-printer-nmblookup-failure.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -U0 system-config-printer-1.1.8/ChangeLog.nmblookup-failure system-config-printer-1.1.8/ChangeLog
-diff -up system-config-printer-1.1.8/troubleshoot/CheckPrinterSanity.py.nmblookup-failure system-config-printer-1.1.8/troubleshoot/CheckPrinterSanity.py
---- system-config-printer-1.1.8/troubleshoot/CheckPrinterSanity.py.nmblookup-failure 2009-05-12 10:36:36.000000000 +0100
-+++ system-config-printer-1.1.8/troubleshoot/CheckPrinterSanity.py 2009-06-25 17:49:39.628328710 +0100
-@@ -99,7 +99,8 @@ class CheckPrinterSanity(Question):
- if line.startswith ("querying"):
- continue
- spc = line.find (' ')
-- if spc != -1:
-+ if (spc != -1 and
-+ not line[spc:].startswith (" failed ")):
- # Remember the IP address.
- self.answers['remote_server_name'] = line[:spc]
- break
diff --git a/system-config-printer-packagekit.patch b/system-config-printer-packagekit.patch
deleted file mode 100644
index 9ba4fc8..0000000
--- a/system-config-printer-packagekit.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-diff -up system-config-printer-1.1.8/installpackage.py.packagekit system-config-printer-1.1.8/installpackage.py
---- system-config-printer-1.1.8/installpackage.py.packagekit 2009-05-12 10:36:36.000000000 +0100
-+++ system-config-printer-1.1.8/installpackage.py 2009-07-03 18:07:09.560995667 +0100
-@@ -2,8 +2,8 @@
-
- ## system-config-printer
-
--## Copyright (C) 2008 Red Hat, Inc.
--## Copyright (C) 2008 Tim Waugh
-+## Copyright (C) 2008, 2009 Red Hat, Inc.
-+## Copyright (C) 2008, 2009 Tim Waugh
-
- ## This program is free software; you can redistribute it and/or modify
- ## it under the terms of the GNU General Public License as published by
-@@ -19,53 +19,18 @@
- ## along with this program; if not, write to the Free Software
- ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
--import dbus
--import xml.etree.ElementTree
--from dbus.mainloop.glib import DBusGMainLoop
--DBusGMainLoop (set_as_default=True)
-+import os
-+import glib
-
- class PackageKit:
- def __init__ (self):
-- bus = dbus.SessionBus ()
-- obj = bus.get_object ("org.freedesktop.PackageKit",
-- "/org/freedesktop/PackageKit")
--
-- # Find out which API is required.
-- num_args = -1
-- introsp = dbus.Interface (obj, "org.freedesktop.DBus.Introspectable")
-- api = introsp.Introspect ()
-- top = xml.etree.ElementTree.XML (api)
-- for interface in top.findall ("interface"):
-- if interface.attrib.get ("name") != "org.freedesktop.PackageKit":
-- continue
--
-- for method in interface.findall ("method"):
-- if method.attrib.get ("name") != "InstallPackageName":
-- continue
-+ for dir in os.environ.get ("PATH", "").split (":"):
-+ path = dir + os.path.sep + "gpk-install-package-name"
-+ if os.access (path, os.X_OK):
-+ self.gpk_install_package_name = path
-+ return
-
-- num_args = len (method.findall ("arg"))
-- break
--
-- if num_args == -1:
-- raise RuntimeError, "Introspection failed for PackageKit"
--
-- self.proxy = dbus.Interface (obj, "org.freedesktop.PackageKit")
-- self.num_args = num_args
-+ raise RuntimeError, "No gpk-install-package-name program available"
-
- def InstallPackageName (self, xid, timestamp, name):
-- proxy = self.proxy
-- if self.num_args == 3:
-- return proxy.InstallPackageName (xid, timestamp, name,
-- reply_handler=self.reply_handler,
-- error_handler=self.error_handler)
-- else:
-- # Old PackageKit interface
-- return proxy.InstallPackageName (name,
-- reply_handler=self.reply_handler,
-- error_handler=self.error_handler)
--
-- def reply_handler (self, *args):
-- pass
--
-- def error_handler (self, *args):
-- pass
-+ glib.spawn_async ([self.gpk_install_package_name, name])
diff --git a/system-config-printer-properties-cancel.patch b/system-config-printer-properties-cancel.patch
deleted file mode 100644
index 7127a08..0000000
--- a/system-config-printer-properties-cancel.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -up system-config-printer-1.1.8/system-config-printer.py.properties-cancel system-config-printer-1.1.8/system-config-printer.py
---- system-config-printer-1.1.8/system-config-printer.py.properties-cancel 2009-06-25 17:50:16.256328643 +0100
-+++ system-config-printer-1.1.8/system-config-printer.py 2009-06-25 17:50:37.650328968 +0100
-@@ -1045,7 +1045,7 @@ class GUI(GtkGUI, monitor.Watcher):
-
- if ((response == gtk.RESPONSE_OK and not success) or
- response == gtk.RESPONSE_CANCEL):
-- del self.printer
-+ self.printer = None
- dialog.hide ()
-
- def dests_iconview_selection_changed (self, iconview):
diff --git a/system-config-printer-remote-location-field.patch b/system-config-printer-remote-location-field.patch
deleted file mode 100644
index bef4b98..0000000
--- a/system-config-printer-remote-location-field.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -up system-config-printer-1.1.8/system-config-printer.py.remote-location-field system-config-printer-1.1.8/system-config-printer.py
---- system-config-printer-1.1.8/system-config-printer.py.remote-location-field 2009-06-25 17:46:36.895328974 +0100
-+++ system-config-printer-1.1.8/system-config-printer.py 2009-06-25 17:46:52.622454030 +0100
-@@ -5791,8 +5791,12 @@ class NewPrinterGUI(GtkGUI):
- try:
- if len (location) == 0 and self.device.device_class == "direct":
- # Set location to the name of this host.
-- u = os.uname ()
-- location = u[1]
-+ if (self.mainapp.connect_server == 'localhost' or
-+ self.mainapp.connect_server[0] == '/'):
-+ u = os.uname ()
-+ location = u[1]
-+ else:
-+ location = self.mainapp.connect_server
-
- # Pre-fill location field.
- self.entNPLocation.set_text (location)
diff --git a/system-config-printer-stopped-jobs.patch b/system-config-printer-stopped-jobs.patch
deleted file mode 100644
index a0e0c1f..0000000
--- a/system-config-printer-stopped-jobs.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff -up system-config-printer-1.1.8/jobviewer.py.stopped-jobs system-config-printer-1.1.8/jobviewer.py
---- system-config-printer-1.1.8/jobviewer.py.stopped-jobs 2009-06-17 18:39:51.000000000 +0100
-+++ system-config-printer-1.1.8/jobviewer.py 2009-07-03 18:08:28.040995881 +0100
-@@ -1375,7 +1375,10 @@ class JobViewer (GtkGUI, monitor.Watcher
- self.notify_completed_job (jobid)
-
- # Look out for stopped jobs.
-- if (self.trayicon and eventname == 'job-stopped' and
-+ if (self.trayicon and
-+ (eventname == 'job-stopped' or
-+ (eventname == 'job-state-changed' and
-+ event['job-state'] == cups.IPP_JOB_STOPPED))and
- not jobid in self.stopped_job_prompts):
- # Why has the job stopped? It might be due to a job error
- # of some sort, or it might be that the backend requires
diff --git a/system-config-printer.spec b/system-config-printer.spec
index f42a5e8..4ac1d6f 100644
--- a/system-config-printer.spec
+++ b/system-config-printer.spec
@@ -6,25 +6,14 @@
Summary: A printer administration tool
Name: system-config-printer
-Version: 1.1.8
-Release: 6%{?dist}
+Version: 1.1.10
+Release: 1%{?dist}
License: GPLv2+
URL: http://cyberelk.net/tim/software/system-config-printer/
Group: System Environment/Base
Source0: http://cyberelk.net/tim/data/system-config-printer/1.1/system-config-printer-%{version}.tar.bz2
Source1: http://cyberelk.net/tim/data/pycups/pycups-%{pycups_version}.tar.bz2
Source2: http://cyberelk.net/tim/data/pysmbc/pysmbc-%{pysmbc_version}.tar.bz2
-Patch1: system-config-printer-bug507489.patch
-Patch2: system-config-printer-ipp-nonfatal-exception.patch
-Patch3: system-config-printer-https.patch
-Patch4: system-config-printer-remote-location-field.patch
-Patch5: system-config-printer-nmblookup-failure.patch
-Patch6: system-config-printer-properties-cancel.patch
-Patch7: system-config-printer-incorrect-auth.patch
-Patch8: system-config-printer-packagekit.patch
-Patch9: system-config-printer-stopped-jobs.patch
-Patch10: system-config-printer-gutenprint.patch
-Patch11: system-config-printer-arrows.patch
BuildRequires: cups-devel >= 1.2
BuildRequires: python-devel >= 2.4
@@ -32,6 +21,7 @@ BuildRequires: libsmbclient-devel >= 3.2
BuildRequires: desktop-file-utils >= 0.2.92
BuildRequires: gettext-devel
BuildRequires: intltool
+BuildRequires: libusb-devel, libudev-devel
BuildRequires: xmlto
BuildRequires: epydoc
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -73,22 +63,22 @@ Provides: pysmbc = %{pysmbc_version}
The common code used by both the graphical and non-graphical parts of
the configuration tool.
+%package udev
+Summary: Rules for udev for automatic configuration of USB printers
+Group: System Environment/Base
+Requires: system-config-printer-libs = %{version}-%{release}
+Obsoletes: hal-cups-utils <= 0.6.20
+Provides: hal-cups-utils = 0.6.20
+
+%description udev
+The udev rules and helper programs for automatically configuring USB
+printers.
+
%prep
%setup -q -a 1 -a 2
-%patch1 -p1 -b .bug507489
-%patch2 -p1 -b .ipp-nonfatal-exception
-%patch3 -p1 -b .https
-%patch4 -p1 -b .remote-location-field
-%patch5 -p1 -b .nmblookup-failure
-%patch6 -p1 -b .properties-cancel
-%patch7 -p1 -b .incorrect-auth
-%patch8 -p1 -b .packagekit
-%patch9 -p1 -b .stopped-jobs
-%patch10 -p1 -b .gutenprint
-%patch11 -p1 -b .arrows
%build
-%configure
+%configure --with-udev-rules
pushd pycups-%{pycups_version}
make
@@ -133,6 +123,11 @@ rm -rf %buildroot
%{python_sitelib}/cupshelpers/ppds.py*
%{python_sitelib}/*.egg-info
+%files udev
+%defattr(-,root,root,-)
+%{_sysconfdir}/udev/rules.d/*.rules
+/lib/udev/*
+
%files
%defattr(-,root,root,-)
%doc ChangeLog README
@@ -188,6 +183,19 @@ rm -rf %buildroot
exit 0
%changelog
+* Wed Jul 22 2009 Tim Waugh 1.1.10-1
+- 1.1.10:
+ - New udev rules for adding/enabling/disabling USB printers
+ automatically.
+ - Now uses gnome-packagekit utility to install packages
+ instead of the D-Bus API.
+ - Fixed detection of stopped jobs with CUPS 1.4.
+ - Fixed tracebacks when adding a new printer and when receiving
+ IPP notifications.
+ - Fixed 'location' field for printers added on remote CUPS servers.
+ - Fixed handling of incorrect authentication.
+ - Some UI and troubleshooter fixes have been made.
+
* Mon Jul 6 2009 Tim Waugh 1.1.8-6
- Requires gnome-packagekit for gpk-install-package-name.
diff --git a/upstream-key.gpg b/upstream-key.gpg
index 9e01c60..b9adba8 100644
--- a/upstream-key.gpg
+++ b/upstream-key.gpg
@@ -1,36 +1,36 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.4.7 (GNU/Linux)
+Version: GnuPG v1.4.9 (GNU/Linux)
-mQGiBEa5fNcRBACJCPsz2q0hj0p5pJABzMKTb4r5lko0upe6ZYOQ2NFZw61upKzI
-uFanlwDVi3MaEHIGf8hsYr82GxTFUc+O2DFskKwEuZ3O4Q50qqkHAnMLZ2VFKXyF
-VJRPUrezpiXifbRjdV3ED0ikc7+ANArUStqbaIvjM3zJOo5GuEcO7AAPiwCgofNk
-1DG1GNH8cBxqGQoEPYrm/pkD/1e7OsMk50XXTQd77hZW1ViIQK8P4tkj65FWBgNg
-d5PyXNqGfOcskn+iVbx9cGsTgAbfP5IVlnxCmf3QE2rLelJtX++aCUmM4irDclTv
-9hn5UQf1QPqvwHFr+h6FHAg8WjHhdORc8hDlWMntmAArjmqFY4FcF/DZMzddZNgf
-jklwA/0aOef82dkwMbgmtLMcx1m0QTSBV04x2z3UIuBLdG9klhzTSCzr0EbtoSWe
-8JN5LdZr//BDJV5elyEWuiQP5uMhXkrVWCZlt3hJ8zvncO/1gnPQPzRty3IuoAyO
-j4uIWLupjdHVqqBDhJEmc+MvjRgQvUkdt07PEm5ehaRxaB36I7QdVGltIFdhdWdo
-IDx0d2F1Z2hAcmVkaGF0LmNvbT6IZgQTEQIAJgUCRrl9JAIbAwUJA8JnAAYLCQgH
-AwIEFQIIAwQWAgMBAh4BAheAAAoJEGklkaMet5kjzfYAoIjd5Y/5+BKxYMXndh4a
-54MVmEXoAJ0f1pdb+zMVcCMs/lyB2oF/+nMWwYhGBBARAgAGBQJGuX11AAoJEO3n
-xuaBAwm9DF0AnAnBbra0+WvYa1TLgdIA/ME9r/NNAJ9hXtoFm8s/rAw3YUM79wK1
-8P1RIrQcVGltIFdhdWdoIDx0aW1AY3liZXJlbGsubmV0PohmBBMRAgAmBQJGuXzX
-AhsDBQkDwmcABgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQaSWRox63mSPQowCg
-jEKmAQght3t/7JVPX6H29kZyqFYAni3DbBuKULwKMuL71PA556bVbdsMiEYEEBEC
-AAYFAka5fXUACgkQ7efG5oEDCb3VrwCfft0SMdCYReiyNoazvWmVvfPk1hgAn2JH
-1pdBUCMeMVrxbIBfngNM6Me0uQINBEa5fNcQCACqm3SBctiw150XfY5AWUFPwmJB
-xX2YTG867RiuaXntFCdERybikjmgNVVlCRudufdqs2bqeqY+oFvS3TMz7SOQmSwv
-QJbEx7WrR7RWU9l0UWMPmiOZ6ZMZjwl2qArvR28RME+n2ooFjuOV3xzb1f4itbo0
-KDshdhoXvcr93z7+vSMjAGLwrLButh1BwbadSAFyIkIyguakKak+vY5kcBPbYUh6
-AnLKWZJF/UNzC6gU4fqc1kLM7RbPLO8oXMgghqcEDK7AVQoXD13xXL6+oDCtwv1u
-zZ6HTYK4l7Dcnpr9nQALF/yepD0xqpRcAA5GFrElFxdVoF24kRKy56+eOOkTAAMG
-B/9npM+/tnF49zw4onQjqEtie1lxDKZAgOmbu34aaH0udF8n37XQdmd4z7M2/Jf8
-qFBqeO01MfYmuAfZ9esM+Sneh3/Nvmi5++kz7IKS4V6EE4DndLZW+hnO09i498Fe
-dwEkhsxpU3YqB9IL6iNjKjQgYtfYBlDJvBwtlgUzKK80toAH6XPA6j/SBjJM6vZb
-P1XpZajWbkvhKzYfqXtjXZ2dqIGbtSW8uJr1Ighr9ZYQvK0r6XkhZBoUorteQUS4
-IrweKXRGnUeOHuUXr8d7rzsufSP6ZNhQQvwG80vr8V4Z++8YKpfyv8uOwAc3GK/u
-9O+CLk4lvD4SBCVoZaSCv/9aiE8EGBECAA8FAka5fNcCGwwFCQPCZwAACgkQaSWR
-ox63mSPTcgCfUiOr+XPLLhqJEQLQHp+Y8FvU7voAnRQuODX6A2Siap8Aw09esWVq
-L7PW
-=wzDO
+mQGiBEpnDbARBADRsKGwS54yxqAoniGaI8X+saG4ezdZ1OmPr9f7L4PugzjjL7qR
+p9O7hj+RZNVM7QR9nPUFTawBTfWQisyS8/a3xiBbQxlhW8uuORhM2gTkVGGlGbCc
+jH+RT0T8t/75m6n2IXKATqugrMH60NXreQQuCKWgCrT6TroMldlVQpBaFwCgx/s0
+1KlfCY42Er0YA/DDpMgTYhUEAI0PgOpD6C8ncEpqvSYSs1qyvRsrpp86M/nyi+pm
+15+7IZhlXE53gXeSLT+dTutvVQtbXbf2DwJmAKdjQw1Y4esjxwH1bPYnPnTlIlZ6
+CHQbYO0n6u2pDnSF8sxi3ene6BSuL7NvKpejwXqLEQFGjaop5eAdDs6YvHNU3Yev
+os0UA/4t9TstI4laLwvCqZ7npwsNxT/1sXa5F09d26oTSZlJwSEmGe6+tOqAbDYn
+1mrCajNt40pGPBKXhE2UNJIBrrWSjZCAp4LSmj6KCEXs35fpmUhUp54V79cC4AI/
+rezLlZIB6l4Dey1is5bkw1yOsBT6Qf4lGJHkggyUfW/ymGZfqbQdVGltIFdhdWdo
+IDx0d2F1Z2hAcmVkaGF0LmNvbT6IZgQTEQIAJgUCSmcOPwIbAwUJA8JnAAYLCQgH
+AwIEFQIIAwQWAgMBAh4BAheAAAoJEAS0Gn2aStrXYHMAoLxVaLxFP6P6rRlQtla+
+NO1KSkMBAJ9jNppMaAf2pHi1b9CoD4f4MEvOS4hGBBARAgAGBQJKZxDHAAoJEO3n
+xuaBAwm91N0AoJROznoZyHKXRxgzLyXemIA4TYMAAJ9Y9HdZOenEMw9HMg36guZK
+dBIVLLQcVGltIFdhdWdoIDx0aW1AY3liZXJlbGsubmV0PohmBBMRAgAmBQJKZw2w
+AhsDBQkDwmcABgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQBLQafZpK2tet4gCf
+VKhWbUJAcIlNpWpYD0kYgGty/ucAoIfsKq9FNBPw9pQPaDnxbKDyserxiEYEEBEC
+AAYFAkpnEMcACgkQ7efG5oEDCb0RvACePTmfisPxeKkGo6QoA42MFH5wtPIAn329
+9ur6BKDz/QrKVT13CxRoKosLuQINBEpnDbAQCACCZaJHH6EctIyz+PYBCzz889PR
+iLAOyKlbrgaR4KhVGBFttKyOJkEk+UvxLUuRkOOY6i6TWbT3qNUnZT6QkftGulal
+8MAtBf2xnJXEsyKgPkRkeDAx3uvMBfrW0wgxcFw9K6E+p8x76bFFD+FtrduDRfxk
+2jDwJgyYubnM3+nPZzZXfuFnxSRYjJcoAq4O61YdH8O79TElEGqTwd/BHeIexEf2
+BkBAscE4GCmGXTYCsLByY8sGD13U7OO3Kk4ul4FgI/mzM25zgqqhbAObjsIwJqE+
+6MXqkkylmo+noTe3zlfNdnR1xkmYUCfUc4+WeFyziHRiXMkt5OYY5wDW5WGnAAMF
+B/4gvjt8SXekSxgdFCuEOQ0J2YM4DElQkaf+Tggbr9F3hnsWfJ49gEipCWEhKPt2
+ks4kDexO/Cn6SI7SQUPiNUWylm80G1Dd+xaQ9qrN1KTsReACXOCKoRgz64MooSOj
+Qs8YIGI/ejLzPkn6mUEmFRHssd4jmmSCbF99AmVh6Z4VnkKLTG+z3KQUymF0ng5b
+AAcwTOJhlAR7xrBJGfhnRUTIaNtD+UnBsoxApeUJie2lc84Pc10p56TGomkEy3Ib
+se1kk4w3mZ8kkR57voh/PovSl/8NyPmv81oVHbJnGLKAVku4XT0IBQOBdDKeRKHB
+tlPLsK9KFx2LxhtAmQN4C/j5iE8EGBECAA8FAkpnDbACGwwFCQPCZwAACgkQBLQa
+fZpK2teQogCgg68475moQ7dh/HIUHRNJKZJfmoQAoIw92pM7V5VYMpz9kW+701Fu
+JofS
+=vrpj
-----END PGP PUBLIC KEY BLOCK-----