From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Daniel Kahn Gillmor Newsgroups: gmane.emacs.bugs Subject: bug#34121: 26.1; elisp crashes on OpenPGP certificates with User IDs without an e-mail address Date: Fri, 18 Jan 2019 03:18:48 -0500 Message-ID: <87zhryl6on.fsf@fifthhorseman.net> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-Trace: blaine.gmane.org 1547799487 16563 195.159.176.226 (18 Jan 2019 08:18:07 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Fri, 18 Jan 2019 08:18:07 +0000 (UTC) To: 34121@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri Jan 18 09:18:02 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gkPLj-00044q-Sf for geb-bug-gnu-emacs@m.gmane.org; Fri, 18 Jan 2019 09:18:00 +0100 Original-Received: from localhost ([127.0.0.1]:34290 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gkPNq-0001qw-UB for geb-bug-gnu-emacs@m.gmane.org; Fri, 18 Jan 2019 03:20:10 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:51879) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gkPNj-0001of-Dy for bug-gnu-emacs@gnu.org; Fri, 18 Jan 2019 03:20:04 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gkPNi-0007WE-8S for bug-gnu-emacs@gnu.org; Fri, 18 Jan 2019 03:20:03 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:36348) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gkPNi-0007W3-4n for bug-gnu-emacs@gnu.org; Fri, 18 Jan 2019 03:20:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1gkPNh-0001wR-SO for bug-gnu-emacs@gnu.org; Fri, 18 Jan 2019 03:20:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Daniel Kahn Gillmor Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 18 Jan 2019 08:20:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 34121 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.15477995517396 (code B ref -1); Fri, 18 Jan 2019 08:20:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 18 Jan 2019 08:19:11 +0000 Original-Received: from localhost ([127.0.0.1]:35629 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gkPMs-0001vE-Ib for submit@debbugs.gnu.org; Fri, 18 Jan 2019 03:19:10 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:41476) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gkPMq-0001v1-WB for submit@debbugs.gnu.org; Fri, 18 Jan 2019 03:19:09 -0500 Original-Received: from lists.gnu.org ([209.51.188.17]:59696) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gkPMk-0005r6-Jr for submit@debbugs.gnu.org; Fri, 18 Jan 2019 03:19:02 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:51676) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gkPMj-0001kn-8f for bug-gnu-emacs@gnu.org; Fri, 18 Jan 2019 03:19:02 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gkPMi-0005na-30 for bug-gnu-emacs@gnu.org; Fri, 18 Jan 2019 03:19:01 -0500 Original-Received: from che.mayfirst.org ([2001:470:1:116::7]:52274) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gkPMh-0005jM-Ss for bug-gnu-emacs@gnu.org; Fri, 18 Jan 2019 03:19:00 -0500 Original-Received: from fifthhorseman.net (ool-6c3a0662.static.optonline.net [108.58.6.98]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by che.mayfirst.org (Postfix) with ESMTPSA id 7333CF99A for ; Fri, 18 Jan 2019 03:18:56 -0500 (EST) Original-Received: by fifthhorseman.net (Postfix, from userid 1000) id A29982021C; Fri, 18 Jan 2019 03:18:52 -0500 (EST) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:154541 Archived-At: --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Attached is an OpenPGP certificate (dkg@aclu.org.key) which has three User IDs, one of which is "dkg@aclu.org" but another has no e-mail address at all (it's just "Daniel Kahn Gillmor"). From=20a new, empty user account, i did the following: gpg --batch --import < dkg@aclu.org.key Then, in a new emacs window, in *scratch*, i ran the following: (require 'mml) (mml-secure-find-usable-keys (epg-make-context 'OpenPGP) "" 'encrypt) it crashes with the following backtrace: Debugger entered--Lisp error: (wrong-type-argument char-or-string-p nil) mml-secure-check-user-id(#s(epg-key :owner-trust ultimate :sub-key-list (= #s(epg-sub-key :validity ultimate :capability (sign certify) :secret-p nil = :algorithm 1 :length 3072 :id "138F5AB68615C560" :creation-time (23350 . 32= 581) :expiration-time (24312 . 58949) :fingerprint "888E6BEAC41959269EAA177= F138F5AB68615C560") #s(epg-sub-key :validity ultimate :capability (encrypt)= :secret-p nil :algorithm 1 :length 3072 :id "9ED30DE244D1D77F" :creation-t= ime (23350 . 32581) :expiration-time nil :fingerprint "9E2D1F76B4070A6BD491= 9CEA9ED30DE244D1D77F")) :user-id-list (#s(epg-user-id :validity ultimate :s= tring "Daniel Kahn Gillmor" :signature-list nil) #s(epg-user-id :validity u= ltimate :string "dkgillmor@aclu.org" :signature-list nil) #s(epg-user-id :v= alidity ultimate :string "dkg@aclu.org" :signature-list nil))) "") mml-secure-find-usable-keys(#s(epg-context :protocol OpenPGP :program "/u= sr/bin/gpg2" :home-directory nil :armor nil :textmode nil :include-certs ni= l :cipher-algorithm nil :digest-algorithm nil :compress-algorithm nil :pass= phrase-callback (epg-passphrase-callback-function) :progress-callback nil := edit-callback nil :signers nil :sig-notations nil :process nil :output-file= nil :result nil :operation nil :pinentry-mode nil :error-output "" :error-= buffer nil) "" encrypt) eval((mml-secure-find-usable-keys (epg-make-context 'OpenPGP) "" 'encrypt) nil) This appears to be because mml-secure-check-user-id chokes on the User ID without any e-mail address. The attached patch appears to fix the issue. please include it in emacs! (i previously reported this to debian as https://bugs.debian.org/919642) --dkg Configured using: 'configure --build x86_64-linux-gnu --prefix=3D/usr --sharedstatedir=3D/var/lib --libexecdir=3D/usr/lib --localstatedir=3D/var/lib --infodir=3D/usr/share/info --mandir=3D/usr/share/man --enable-libsystemd --with-pop=3Dyes --enable-locallisppath=3D/etc/emacs:/usr/local/share/emacs/26.1/site-lisp:= /usr/local/share/emacs/site-lisp:/usr/share/emacs/26.1/site-lisp:/usr/share= /emacs/site-lisp --with-sound=3Dalsa --without-gconf --with-mailutils --build x86_64-linux-gnu --prefix=3D/usr --sharedstatedir=3D/var/lib --libexecdir=3D/usr/lib --localstatedir=3D/var/lib --infodir=3D/usr/share/info --mandir=3D/usr/share/man --enable-libsystemd --with-pop=3Dyes --enable-locallisppath=3D/etc/emacs:/usr/local/share/emacs/26.1/site-lisp:= /usr/local/share/emacs/site-lisp:/usr/share/emacs/26.1/site-lisp:/usr/share= /emacs/site-lisp --with-sound=3Dalsa --without-gconf --with-mailutils --with-x=3Dyes --with-x-toolkit=3Dgtk3 --with-toolkit-scroll-bars 'CFLAGS=3D-g -O2 -fdebug-prefix-map=3D/build/emacs-3ThesY/emacs-26.1+1=3D. -fstack-protecto= r-strong -Wformat -Werror=3Dformat-security -Wall' 'CPPFLAGS=3D-Wdate-time -D_FORTIFY_SOURCE=3D2' LDFLAGS=3D-Wl,-z,relro' Configured features: XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GSETTINGS NOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 THREADS LIBSYSTEMD LCMS2 Important settings: value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: Lisp Interaction --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0001-Avoid-elisp-crash-for-OpenPGP-User-IDs-with-no-e-mai.patch Content-Transfer-Encoding: quoted-printable From=20856d4f2358df9c8977637a0ac007084d0b40b9f2 Mon Sep 17 00:00:00 2001 From: Daniel Kahn Gillmor Date: Fri, 18 Jan 2019 03:12:07 -0500 Subject: [PATCH] Avoid elisp crash for OpenPGP User IDs with no e-mail addr= ess * lisp/gnus/mml-sec.el: (mml-secure-check-user-id) verify that there is an e-mail address in the current User ID before trying to downcase it. Signed-off-by: Daniel Kahn Gillmor =2D-- lisp/gnus/mml-sec.el | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lisp/gnus/mml-sec.el b/lisp/gnus/mml-sec.el index a6d989a45f..db7489fbf1 100644 =2D-- a/lisp/gnus/mml-sec.el +++ b/lisp/gnus/mml-sec.el @@ -659,6 +659,8 @@ The passphrase is read and cached." (catch 'break (dolist (uid uids nil) (if (and (stringp (epg-user-id-string uid)) + (car (mail-header-parse-address + (epg-user-id-string uid))) (equal (downcase (car (mail-header-parse-address (epg-user-id-string uid)))) (downcase (car (mail-header-parse-address =2D-=20 2.20.1 --=-=-= Content-Type: application/pgp-keys Content-Disposition: attachment; filename="dkg@aclu.org.key" Content-Transfer-Encoding: base64 LS0tLS1CRUdJTiBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tCgptUUdOQkZzMmYwVUJEQUMxV0Ru ZStZUFFlWHdEYUhNdGpsZmVGVHJGZGEydXcyOS81bTdyMTlhTUt2eXRLLzExCjEvVzNYaUZReFFD MGFhZTVxM01Dd2FidXV5T2Y1SWF5b0p4N2h0cjBqcCswNmZPc3lMWjlpVVRqVGhrMmVUMHgKdFNo UkYvdTNlNWh3dEthMEMzRXpjSU03NnNlTmVJM0Zlc3BRc0dYbGtiSlBRR0hLQ3dQWE9nQW1IYkkr V1lSQwpmTHNqZSswbEVIVnNoTC9YYjlhZ3BtK0pDT3MrK3dscVBoUityTG9aRjZVSGxjb1A5cko2 Z0Q2UWRkdzY5bmpwCjZtZVRHOWdoaWV6ditMWjJCWUFRcUlvdTlpcWhWS2U5QTBJeFhNeEhPazEw S2Y3cUQrSG54VnhaM2s3d3IrZzEKNmtZSE1lTWNkYm1sVnI4d3ZFTlJGenNJcnlIUEdpYkZiVzdz enMyVjZ5NWVKY3F3bEE0RUw4QkFWMC9EOVJISQpLeWZxQ3pHMGNRZzVqWHBISmxNMmJ6RjRralRC N1JMaERXbklYTmttTHZkaXRmb1lBZzc0cTY3QzY1MGc2RlNTCkRWUy9BSmFHTXFRNTNZTGJWakYv cm5vaFJ2ci9Gd1FIS3dUbHZuMXgwR3NwUkRoNW1WZjdTWldYSDFoZ1NmZWcKUXViMWxvNmx4Um9B MDRNQUVRRUFBYlFUUkdGdWFXVnNJRXRoYUc0Z1IybHNiRzF2Y29rQjF3UVRBUW9BUVFJYgpBd1VK QThKbkFBVUxDUWdIQXdVVkNna0lDd1VXQWdNQkFBSWVBUUlYZ0JZaEJJaU9hK3JFR1ZrbW5xb1hm eE9QCldyYUdGY1ZnQlFKY05OalJBaGtCQUFvSkVCT1BXcmFHRmNWZ2w4WUwvaUFJWURFRFpYVXFp cURUYzdDbGZ4ZmcKZ2NVcUJDR3hSdHE5Q2MzZ0E4cDE4S09PWWI1dFNiaWI5WFBpOEFaS0FUbm03 N2NtRndrUVc5aFhkdGRIYXJFZgpxV1VtNVJYWStmODV0Z01reXIwT0VHNjQxL2d3WU01TWljaVpC N0R6RE5ubVRENFJ3L3hmby9WWnVnWHJZL0VvCjZPWmZ0cldYYUtPV1ZERzBRcGNDRjhYby9wckJS ZldKNkQwVGp2SnNQNElCU3gyOGxWd0dsczRJbmM1Z2MvK2UKRDcrS3loRU1lNzQ5K2pKOEhsV0Nj UEhWRUo2bG5zZm9KbngrS0RKTTBiZjVBUmx5bW51MkxjSTZyUk8zMkcwaAo5aFRzbWR5ZER3Y09G eWxDUndYWERlTDd6dDFOQUN4S3hDTy9zYlNjZjRFd2lvS1A3SzlNRmFLZEhGWm15aWppClQ4ZEk3 UGRYaE5zbEZ3TG8zRlB6eW1IR2JSWitIM2cxQkd0R1JYQXdPeWJyLzZwSDZIV09TMnlzMUpIQmtZ TTUKakM1YWRmdHhKZjg2TDROamNyeDhqdG5JMEp1WDFPQjNYQURYSzd5bGdpR2NTRXI0TUNWMEdn Y0dkUkJwWGkrNApVMzhQTzdpeXdPeTVoZUliZXFaZ0lYVkd3SzY1S0dFcFVKTXhUN3FyaHJRU1pH dG5hV3hzYlc5eVFHRmpiSFV1CmIzSm5pUUhVQkJNQkNnQStGaUVFaUk1cjZzUVpXU2FlcWhkL0U0 OWF0b1lWeFdBRkFsdzAyS3NDR3dNRkNRUEMKWndBRkN3a0lCd01GRlFvSkNBc0ZGZ0lEQVFBQ0hn RUNGNEFBQ2drUUU0OWF0b1lWeFdCZzd3d0FpODdIVDZINwpqZmhHRkJndzNObHdMUFRqWjJ0UXp6 dUlGSG44MDJqVkxVWS8ybnFDY1hiRkRRalFzRVlOeDRMRDgyU2NuSU5KClJWa253U3BMU2p0MHhm aGo2VHlHaFpGRHpuNmV1QStReG1aOVNXMStIZEVsdnpLQSsvMXlwQnd3dW84TnNDV3gKa09VYmIv cGpqclVNWHVTR1RnRldTMEVEd0Fuamg4UzVReEFBdlFKY2xRQi9DNEd3aXo5OFlpWGVuUUUzdFUx dgpJK1laZDEzMkZZZ0ZlZHJQWERCSXoxQUcxUmZMblkxZ3Y4MUl1US9BeVIzSzdKV0h1N29WRDZS YS9DZmtscFhKCkFjMy9pSFBkMkFIN1psQ0dHRGFlQWxXeG1UQ1JWNHNuV1k2RFZxYzIwM2c5dnhz OGdROFcwS1k5WWtnTklCTGwKZHZPTytzTHhMQzd3RlhtZ0JFaXRKVm9NUjYzTTFWL1IxV24zQnI3 VURVQXExbm5wQVJsMHcyNGg2TWhxZDRQRwpTVEl5MmQ2OFhtWnFaTHVUTGpnSkJvV0FGdER6L3Ji SGh0bDZxL1haampja3Q4dGs3WHJrT29VNWpXSjBQMzQ0CkNQRWoxRlg5TTRwOW81eEdKVEptTUJy QzFSMXA4TGd1c3daK3hVWjB4a1VSeTFkUlVrUW14eXJidEF4a2EyZEEKWVdOc2RTNXZjbWVKQWRR RUV3RUtBRDRXSVFTSWptdnF4QmxaSnA2cUYzOFRqMXEyaGhYRllBVUNXem8yb0FJYgpBd1VKQThK bkFBVUxDUWdIQXdVVkNna0lDd1VXQWdNQkFBSWVBUUlYZ0FBS0NSQVRqMXEyaGhYRllFN1ZEQUNl CmE2Ynh5RFA4WnhVeDUwMzBwQk1BSGNteGZFZlRnQ1NEaXZ5TmRVa0hPVzBnZVFJcDlKNTFTeXp3 ZGpuZyt0bHUKckpkWUtNd2ZMdkxmMVl6VEdhaVd3SW1XbFpMbEJYUlBibEh6Z1ZFbjlhR01YaHJ6 Rmlhd1BhMUxQNFppVnRWcAo1OVFZZXdjZWVIOGNCWkJvL2ZZWnVpTS9jeHlDaktSNDg5UTFPUXRx OUcwSHVoSWFWSG5ER2JLWWMxdmFSUEMvCnhoR3R0MVZNemdQaHQ5cUhkOUVGYVFzQWpMbWwzaWdk L2xFZlZWZkw5RGpERDAxUithSThQakNLN1RQNkdzSXUKVEdzY1Y5L2U1ZHg4MjR5N0orTzVzeWIx UnBNR1N2WXl5bTBENU9ZVmlhZW1BVm5WU3dabHhsVlgwdGF2MmxBVQpwRTJFYzRpLzdqRUZOY1dS VTQvVkJYZ0ZSeXU2Q1ZEdm5sUWxjbllUT1Z4MTYvby90TlRGV0o2ellpTzRVOXFiCjVxYWpSbTJY SjlIYkI3NE5YUG1Zek5Kd3pYRGZVOGpFeHpLUXE4RnBNRmY4RUNFQmpiZFNNZVJRc3Uwc3V4N1cK N3hpMkdpbjc5Rkl5bmZHajErRHA3K2xScVRwa0hDSzZNaGFyN1VFV2dkZko2M3RwZUNhbDVlVk8y TWFjT1crNQpBWTBFV3paL1JRRU1BTUdtSVVVNFJNekRvQXNyS1ZhZFBiSVBDSWxpNGUwaXFmQzZ4 WG9kK0VWRGZMZi81WGwzCk9vNWE5OXAxZFNOc0xtRGo1b3l1amVZQmJDamdNd1JxVWRjbXhQaXpo bUh2L01qVVFYUE5idC9SZ1hOSVVnZmYKR2UwVzE1eCtJQlZuZ21iU0ZQU3RvZE9PYUdTS0U5OG5h Y0hjMU1Fc3NuakpXTGJ6VFlCM3BmL3N3TXlDVXNITgorRkM3aEdYTlFPNVFXRzFTY3QyUmhHcVZV NFBWWEtzYUZMNXB2L253NXlqMk5mVW5BRlNEYU9rQ2s5ZUVCOWRZCktOLzNYck1neFFvNDBMeDU0 R3NsUDhESnJ6YmhQZ3ppRVplYWhPMUdad3hrcGpyUElQWmw0ZnpoUzBQL010Z3QKYm8zRm5GdHZT aVRBeDVpMUtZVjhKcldtdzV5aGo3alBMRmlVVUdDbmlaV0I5b3pubzFuUU1yaVg5S3NWbjY4MwpK V2RHT3Vua0xDRDg2NStqUUNGcEVEa0JCOXIzYStNZG9FS2JCbHBPcTdzdWI1aU9XaVRJT1BveDl5 emlJMGxtCmV5akRsMXBDUUltYkRMUnN6LzFKNzRlOEJkTGNGeDZRcTZDV1Z6RVZ5b1VUL290SnRl bGNQN2dzOFVjVC9janIKbnNweFo3VjFOR0ZtVlFBUkFRQUJpUUcyQkJnQkNnQWdGaUVFaUk1cjZz UVpXU2FlcWhkL0U0OWF0b1lWeFdBRgpBbHMyZjBVQ0d3d0FDZ2tRRTQ5YXRvWVZ4V0Naa3d3QXJi WEQvNFNxZmFLWDRlRXlET0VHcXFGSEtiV0w0dFN5CkhGM2hObHF2MVY3RW5pcUFvc0FqbVcxTjRY MkZjR3ZhMGEzL3FmeWU3REVLT2xQdXNVVURrM3J6UU0xUzFrblIKdFB6YzM3Y25mOHVXdnR0bHVF QWc4OFpwN0hidmdhcWI0NGFPallZbjAxd3VsSEZXVkhQVGFKUlNoWGNVM041NApDSjRLazRXM2FO c1EyMVU5WTlmTEJOY3liNmZMMU5TamRDNUZ4ZStEVUp4aUllSUFjdFhRRjBpNGNFMXdXdHBLCmFP Z1lIUm9YR3F6TmxPL3lISkZpUHpPcTNhWlpVTzhBdEprRUdSMUtIeEU4WWpqZmpqWElnRURpZ1RQ bURYeEUKK0ZCZGc4VDRYS09Ja283OUdtSk9RbERwSVJuOCtyOEJ1SCtoLzNsa3JRK3dDUGltMERZ c25FZVVvaDZGRkRPcwp1MFFpSk01bTN6VUQ2NDhURFQvZHg5U1NoRUUzZE8vYU5heEt2bXJHQlJz VTdNZSsydHQxSDh2S3VmellLWDlrCk1YWGE0S0VSSHFONDZERFo1UTRWK3hoSG4zbGV2WWp0Yjdl aWdEUXY4bVJOclU2bDZWaU42bk4zb0x1UUxvdTYKdTEzNGpvTVRsNWNtNFZQcVkxNFpXc1o3TVF0 SnAzcHQKPWdRK1EKLS0tLS1FTkQgUEdQIFBVQkxJQyBLRVkgQkxPQ0stLS0tLQo= --=-=-=-- --==-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iHUEARYKAB0WIQTTaP514aqS9uSbmdJsHx7ezFD6UwUCXEGL6AAKCRBsHx7ezFD6 UyfYAQC0EdZ4awnvrdZx3IiptAceakV/bNzorX9u1Y3IZbT+egD5AbfOmphdDAzM P74Lo/C09RbaHRopfUnGmehcVvugNQQ= =cPlF -----END PGP SIGNATURE----- --==-=-=--