From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 104248 invoked by alias); 23 Jul 2016 09:25:41 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 104233 invoked by uid 89); 23 Jul 2016 09:25:40 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: =?ISO-8859-1?Q?No, score=0.8 required=5.0 tests=AWL,BAYES_00,BODY_8BITS,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,GARBLED_BODY,KAM_LOTSOFHASH,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=no version=3.3.2 spammy=browse, =d0=be=d0=b2, ribbon, =d0=bb=d0=b0=d1?= X-HELO: mail-lf0-f65.google.com Received: from mail-lf0-f65.google.com (HELO mail-lf0-f65.google.com) (209.85.215.65) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Sat, 23 Jul 2016 09:25:30 +0000 Received: by mail-lf0-f65.google.com with SMTP id l69so8672659lfg.1 for ; Sat, 23 Jul 2016 02:25:29 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:to:from:subject:message-id :disposition-notification-to:date:user-agent:mime-version; bh=07s29K0gSoB18nZS7YOv4i+PDt6rpaqTfPZgsG56T/w=; b=H9iKatq665xY2+TqHExIHQfnqfEbjZ1fT89vmFIGTWzRnP6D9aY/hP4XyPe8eKomQO R9NNc+4LN4d0++Gnn2Stsa1mmGTYfug2et3Kqcgld4LszYlEPRQTKeUtD7+hkDRR3hIW TTT+WVo1Ynf3yXv1jcvGolINpTmJ59/esO+dG538DWvymMZQypu1rhu2DBQRAM2+rjyg clcEv4YKCFgxUS3ELV6TuNcv+oQ3Rwoo8NAkdX4o93KjiV16AvkJlDfsTUdWlf75j6PD IN4GsUVJZxPv2mw0hGeLcU7ND5vD6mmAHYwmMhNBNpp54Njm7DZ7xcXsENZ2V7/t2Ff6 DELA== X-Gm-Message-State: AEkoouuxvXm8Lf+EtxD1PxsytlQcFGNOTsQZQhECcAgeQoNSM6tOsOU2YcsvYZVZ3uNOmw== X-Received: by 10.25.161.76 with SMTP id k73mr4415236lfe.26.1469265926610; Sat, 23 Jul 2016 02:25:26 -0700 (PDT) Received: from [192.168.4.39] (broadband-95-84-200-6.nationalcablenetworks.ru. [95.84.200.6]) by smtp.gmail.com with ESMTPSA id 78sm3699028lfv.39.2016.07.23.02.25.25 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 23 Jul 2016 02:25:25 -0700 (PDT) To: gdb-patches@sourceware.org From: LRN Subject: Program-assigned thread names on Windows Message-ID: <5052d495-ea40-b364-96ea-9e68c90bd747@gmail.com> Date: Sat, 23 Jul 2016 09:25:00 -0000 User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:50.0) Gecko/20100101 Thunderbird/50.0a1 MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="4uEcIvFW9vS9mQUXNaDR21xAfHO831jXB" X-IsSubscribed: yes X-SW-Source: 2016-07/txt/msg00307.txt.bz2 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --4uEcIvFW9vS9mQUXNaDR21xAfHO831jXB Content-Type: multipart/mixed; boundary="SLJaoRHeS7dn0oxL6q5n1vvKfR3ek0fed" From: LRN To: gdb-patches@sourceware.org Message-ID: <5052d495-ea40-b364-96ea-9e68c90bd747@gmail.com> Subject: Program-assigned thread names on Windows --SLJaoRHeS7dn0oxL6q5n1vvKfR3ek0fed Content-Type: multipart/mixed; boundary="------------812D51DC25F3BC5FA81B3E73" This is a multi-part message in MIME format. --------------812D51DC25F3BC5FA81B3E73 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Content-length: 673 The attached patch adds thread naming support on Windows. This works as documented[1] on MSDN - by catching a specific exception that the program throws. Setting thread name this way is supported by glib[2] and winpthreads[3] at least, as well as any program developed with MS toolchain (because WinDbg supported this for a long time). [1] https://msdn.microsoft.com/en-us/library/xcb2z8hs.aspx [2] https://git.gnome.org/browse/glib/commit/glib/gthread-win32.c?id=3De1188564= 30a798bbc529691ad235fd0b0684439d [3] https://sourceforge.net/p/mingw-w64/mingw-w64/ci/0d95c795b44b76e1b60dfc119f= d93cfd0cb35816/ --=20 O< ascii ribbon - stop html email! - www.asciiribbon.org --------------812D51DC25F3BC5FA81B3E73 Content-Type: text/plain; charset=UTF-8; name="0001-Support-settings-thread-name-MS-Windows.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-Support-settings-thread-name-MS-Windows.patch" Content-length: 5466 RnJvbSBiOTM5Yjg3ZjA2YjAzNjUzZWFlYTg3Mzg3NTJjY2UxMTU1ZTkwOGYx IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUQw PUEwPUQxPTgzPUQxPTgxPUQwPUJCPUQwPUIwPUQwPUJEPTIwPUQwPTk4PUQw PUI2PUQwPUIxPz0KID0/VVRGLTg/cT89RDE9ODM9RDA9QkI9RDA9QjA9RDE9 ODI9RDA9QkU9RDA9QjI/PSA8bHJuMTk4NkBnbWFpbC5jb20+CkRhdGU6IFN1 biwgMjYgSnVuIDIwMTYgMTE6MTQ6NDkgKzAwMDAKU3ViamVjdDogW1BBVENI IDEvM10gU3VwcG9ydCBzZXR0aW5ncyB0aHJlYWQgbmFtZSAoTVMtV2luZG93 cykKClRoaXMgaXMgZG9uZSBieSBjYXRjaGluZyBhbiBleGNlcHRpb24gbnVt YmVyIDB4NDA2RDEzODgKKGl0IGhhcyBubyBkb2N1bWVudGVkIG5hbWUpLCB3 aGljaCBpcyB0aHJvd24gYnkgdGhlIHByb2dyYW0uClRoZSBleGNlcHRpb24g cmVjb3JkIGNvbnRhaW5zIGFuIElEIG9mIGEgdGhyZWFkIGFuZCBhIG5hbWUg dG8KZ2l2ZSBpdC4KClRoaXMgcmVxdWlyZXMgcm9sbGluZyBiYWNrIHNvbWUg Y2hhbmdlcyBpbiBoYW5kbGVfZXhjZXB0aW9uKCksCndoaWNoIG5vdyBhZ2Fp biByZXR1cm5zIG1vcmUgdGhhbiB0d28gZGlzdGluY3QgdmFsdWVzLiBUaGUg Y29kZQoyIG1lYW5zIHRoYXQgZ2RiIHNob3VsZCBqdXN0IGNvbnRpbnVlLCB3 aXRob3V0IHJldHVybmluZwp0aHJlYWQgSUQgdXAgdGhlIHN0YWNrICh3aGlj aCB3aWxsIHJlc3VsdCBpbiBmdXJ0aGVyIGhhbmRsaW5nCm9mIHRoZSBleGNl cHRpb24sIHdoaWNoIGlzIG5vdCB3aGF0IHdlIHdhbnQpLgotLS0KIGdkYi93 aW5kb3dzLW5hdC5jIHwgNTUgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQs IDUwIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZ2RiL3dpbmRvd3MtbmF0LmMgYi9nZGIvd2luZG93cy1uYXQuYwppbmRl eCAzZjY3NDg2Li4wMWU3OTU0IDEwMDY0NAotLS0gYS9nZGIvd2luZG93cy1u YXQuYworKysgYi9nZGIvd2luZG93cy1uYXQuYwpAQCAtMTc0LDYgKzE3NCw5 IEBAIHN0YXRpYyBpbnQgZGVidWdfcmVnaXN0ZXJzX3VzZWQ7CiBzdGF0aWMg aW50IHdpbmRvd3NfaW5pdGlhbGl6YXRpb25fZG9uZTsKICNkZWZpbmUgRFI2 X0NMRUFSX1ZBTFVFIDB4ZmZmZjBmZjAKIAorI2RlZmluZSBXSU5ET1dTX1RI UkVBRE5BTUVfRVhDRVBUSU9OIDB4NDA2RDEzODgKKyNkZWZpbmUgV0lORE9X U19USFJFQUROQU1FX0VYQ0VQVElPTl9TICIweDQwNkQxMzg4IgorCiAvKiBU aGUgc3RyaW5nIHNlbnQgYnkgY3lnd2luIHdoZW4gaXQgcHJvY2Vzc2VzIGEg c2lnbmFsLgogICAgRklYTUU6IFRoaXMgc2hvdWxkIGJlIGluIGEgY3lnd2lu IGluY2x1ZGUgZmlsZS4gICovCiAjaWZuZGVmIF9DWUdXSU5fU0lHTkFMX1NU UklORwpAQCAtMTAzNSw2ICsxMDM4LDcgQEAgc3RhdGljIGludAogaGFuZGxl X2V4Y2VwdGlvbiAoc3RydWN0IHRhcmdldF93YWl0c3RhdHVzICpvdXJzdGF0 dXMpCiB7CiAgIERXT1JEIGNvZGUgPSBjdXJyZW50X2V2ZW50LnUuRXhjZXB0 aW9uLkV4Y2VwdGlvblJlY29yZC5FeGNlcHRpb25Db2RlOworICBpbnQgcmVz dWx0ID0gMTsKIAogICBvdXJzdGF0dXMtPmtpbmQgPSBUQVJHRVRfV0FJVEtJ TkRfU1RPUFBFRDsKIApAQCAtMTE0MCw2ICsxMTQ0LDM4IEBAIGhhbmRsZV9l eGNlcHRpb24gKHN0cnVjdCB0YXJnZXRfd2FpdHN0YXR1cyAqb3Vyc3RhdHVz KQogICAgICAgREVCVUdfRVhDRVBUSU9OX1NJTVBMRSAoIkVYQ0VQVElPTl9O T05DT05USU5VQUJMRV9FWENFUFRJT04iKTsKICAgICAgIG91cnN0YXR1cy0+ dmFsdWUuc2lnID0gR0RCX1NJR05BTF9JTEw7CiAgICAgICBicmVhazsKKyAg ICBjYXNlIFdJTkRPV1NfVEhSRUFETkFNRV9FWENFUFRJT046CisgICAgICBE RUJVR19FWENFUFRJT05fU0lNUExFIChXSU5ET1dTX1RIUkVBRE5BTUVfRVhD RVBUSU9OX1MpOworICAgICAgb3Vyc3RhdHVzLT52YWx1ZS5zaWcgPSBHREJf U0lHTkFMX1RSQVA7CisgICAgICBpZiAoY3VycmVudF9ldmVudC51LkV4Y2Vw dGlvbi5FeGNlcHRpb25SZWNvcmQuTnVtYmVyUGFyYW1ldGVycyA9PSA0KQor CXsKKwkgIERXT1JEIG5hbWVkX3RocmVhZF9pZDsKKwkgIHB0aWRfdCBuYW1l ZF90aHJlYWRfcHRpZDsKKwkgIHN0cnVjdCB0aHJlYWRfaW5mbyAqbmFtZWRf dGhyZWFkOworCSAgdWludHB0cl90IHRocmVhZF9uYW1lX3RhcmdldDsKKwkg IGNoYXIgKnRocmVhZF9uYW1lOworCisJICBuYW1lZF90aHJlYWRfaWQgPSAo RFdPUkQpIGN1cnJlbnRfZXZlbnQudS5FeGNlcHRpb24uRXhjZXB0aW9uUmVj b3JkLkV4Y2VwdGlvbkluZm9ybWF0aW9uWzJdOworCSAgdGhyZWFkX25hbWVf dGFyZ2V0ID0gKHVpbnRwdHJfdCkgY3VycmVudF9ldmVudC51LkV4Y2VwdGlv bi5FeGNlcHRpb25SZWNvcmQuRXhjZXB0aW9uSW5mb3JtYXRpb25bMV07CisK KwkgIGlmIChuYW1lZF90aHJlYWRfaWQgPT0gKERXT1JEKSAtMSkKKwkgICAg bmFtZWRfdGhyZWFkX2lkID0gY3VycmVudF9ldmVudC5kd1RocmVhZElkOwor CisJICBuYW1lZF90aHJlYWRfcHRpZCA9IHB0aWRfYnVpbGQgKGN1cnJlbnRf ZXZlbnQuZHdQcm9jZXNzSWQsIDAsIG5hbWVkX3RocmVhZF9pZCksCisJICBu YW1lZF90aHJlYWQgPSBmaW5kX3RocmVhZF9wdGlkIChuYW1lZF90aHJlYWRf cHRpZCk7CisKKwkgIHRocmVhZF9uYW1lID0gTlVMTDsKKwkgIGlmICghdGFy Z2V0X3JlYWRfc3RyaW5nICgoQ09SRV9BRERSKSB0aHJlYWRfbmFtZV90YXJn ZXQsICZ0aHJlYWRfbmFtZSwgMTAyNCwgMCkKKwkgICAgICB8fCAhdGhyZWFk X25hbWUgfHwgISp0aHJlYWRfbmFtZSkKKwkgICAgLyogbm90aGluZyB0byBk byAqLzsKKwkgIGVsc2UKKwkgICAgeworCSAgICAgIHhmcmVlIChuYW1lZF90 aHJlYWQtPm5hbWUpOworCSAgICAgIG5hbWVkX3RocmVhZC0+bmFtZSA9IHRo cmVhZF9uYW1lOworCSAgICB9CisJICByZXN1bHQgPSAyOworCX0KKyAgICAg IGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAvKiBUcmVhdCB1bmhhbmRs ZWQgZmlyc3QgY2hhbmNlIGV4Y2VwdGlvbnMgc3BlY2lhbGx5LiAgKi8KICAg ICAgIGlmIChjdXJyZW50X2V2ZW50LnUuRXhjZXB0aW9uLmR3Rmlyc3RDaGFu Y2UpCkBAIC0xMTUzLDcgKzExODksNyBAQCBoYW5kbGVfZXhjZXB0aW9uIChz dHJ1Y3QgdGFyZ2V0X3dhaXRzdGF0dXMgKm91cnN0YXR1cykKICAgICB9CiAg IGV4Y2VwdGlvbl9jb3VudCsrOwogICBsYXN0X3NpZyA9IG91cnN0YXR1cy0+ dmFsdWUuc2lnOwotICByZXR1cm4gMTsKKyAgcmV0dXJuIHJlc3VsdDsKIH0K IAogLyogUmVzdW1lIHRocmVhZCBzcGVjaWZpZWQgYnkgSUQsIG9yIGFsbCBh cnRpZmljaWFsbHkgc3VzcGVuZGVkCkBAIC0xNTEwLDEwICsxNTQ2LDE5IEBA IGdldF93aW5kb3dzX2RlYnVnX2V2ZW50IChzdHJ1Y3QgdGFyZ2V0X29wcyAq b3BzLAogCQkgICAgICJFWENFUFRJT05fREVCVUdfRVZFTlQiKSk7CiAgICAg ICBpZiAoc2F3X2NyZWF0ZSAhPSAxKQogCWJyZWFrOwotICAgICAgaWYgKGhh bmRsZV9leGNlcHRpb24gKG91cnN0YXR1cykpCi0JdGhyZWFkX2lkID0gY3Vy cmVudF9ldmVudC5kd1RocmVhZElkOwotICAgICAgZWxzZQotCWNvbnRpbnVl X3N0YXR1cyA9IERCR19FWENFUFRJT05fTk9UX0hBTkRMRUQ7CisgICAgICBz d2l0Y2ggKGhhbmRsZV9leGNlcHRpb24gKG91cnN0YXR1cykpCisJeworCWNh c2UgMDoKKwlkZWZhdWx0OgorCSAgY29udGludWVfc3RhdHVzID0gREJHX0VY Q0VQVElPTl9OT1RfSEFORExFRDsKKwkgIGJyZWFrOworCWNhc2UgMToKKwkg IHRocmVhZF9pZCA9IGN1cnJlbnRfZXZlbnQuZHdUaHJlYWRJZDsKKwkgIGJy ZWFrOworCWNhc2UgMjoKKwkgIGNvbnRpbnVlX3N0YXR1cyA9IERCR19DT05U SU5VRTsKKwkgIGJyZWFrOworCX0KICAgICAgIGJyZWFrOwogCiAgICAgY2Fz ZSBPVVRQVVRfREVCVUdfU1RSSU5HX0VWRU5UOgkvKiBNZXNzYWdlIGZyb20g dGhlIGtlcm5lbC4gICovCi0tIAoyLjQuMAoK --------------812D51DC25F3BC5FA81B3E73 Content-Type: text/plain; charset=UTF-8; name="0002-Add-the-thread-naming-support-to-NEWS-file.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0002-Add-the-thread-naming-support-to-NEWS-file.patch" Content-length: 1107 RnJvbSBkNWI0ZGFhZmU4ZWUyM2VmNjliNDcwNDhhYTY4YjlhMjU0MmVlNzQw IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUQw PUEwPUQxPTgzPUQxPTgxPUQwPUJCPUQwPUIwPUQwPUJEPTIwPUQwPTk4PUQw PUI2PUQwPUIxPz0KID0/VVRGLTg/cT89RDE9ODM9RDA9QkI9RDA9QjA9RDE9 ODI9RDA9QkU9RDA9QjI/PSA8bHJuMTk4NkBnbWFpbC5jb20+CkRhdGU6IFNh dCwgMjMgSnVsIDIwMTYgMDg6NTk6MDUgKzAwMDAKU3ViamVjdDogW1BBVENI IDIvM10gQWRkIHRoZSB0aHJlYWQgbmFtaW5nIHN1cHBvcnQgdG8gTkVXUyBm aWxlCgotLS0KIGdkYi9ORVdTIHwgNiArKysrKysKIDEgZmlsZSBjaGFuZ2Vk LCA2IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9nZGIvTkVXUyBiL2dk Yi9ORVdTCmluZGV4IDBlMzM5ZGQuLmIyNmRmMmYgMTAwNjQ0Ci0tLSBhL2dk Yi9ORVdTCisrKyBiL2dkYi9ORVdTCkBAIC02MCw2ICs2MCwxMiBAQAogICBm b3IgaXRzIG93biBjb250cm9sIGFuZCBzeW5jaHJvbml6YXRpb24sIGludmlz aWJsZSB0byB0aGUgY29tbWFuZAogICBsaW5lLgogCisqIFN1cHBvcnQgZm9y IHRocmVhZCBuYW1lcyBvbiBNUy1XaW5kb3dzLgorCisgIEdEQiB3aWxsIGNh dGNoIGFuZCBjb3JyZWN0bHkgaGFuZGxlIHRoZSBzcGVjaWFsIGV4Y2VwdGlv biB0aGF0CisgIHByb2dyYW1zIHJ1bm5pbmcgb24gTVMtV2luZG93cyB1c2Ug dG8gYXNzaWduIG5hbWVzIHRvIHRocmVhZHMKKyAgaW4gdGhlIGRlYnVnZ2Vy LgorCiAqIE5ldyBjb21tYW5kcwogCiBza2lwIC1maWxlIGZpbGUKLS0gCjIu NC4wCgo= --------------812D51DC25F3BC5FA81B3E73 Content-Type: text/plain; charset=UTF-8; name="0003-Add-a-ChangeLog-entry-for-thread-naming-on-MS-Window.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0003-Add-a-ChangeLog-entry-for-thread-naming-on-MS-Window.pa"; filename*1="tch" Content-length: 1151 RnJvbSA0ZTdlOTEyZDg0NjIwOTUwZTI0OWMwZjEwYTAwZTBhYWQ0OWY3ZjUw IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUQw PUEwPUQxPTgzPUQxPTgxPUQwPUJCPUQwPUIwPUQwPUJEPTIwPUQwPTk4PUQw PUI2PUQwPUIxPz0KID0/VVRGLTg/cT89RDE9ODM9RDA9QkI9RDA9QjA9RDE9 ODI9RDA9QkU9RDA9QjI/PSA8bHJuMTk4NkBnbWFpbC5jb20+CkRhdGU6IFNh dCwgMjMgSnVsIDIwMTYgMDk6MDA6MzggKzAwMDAKU3ViamVjdDogW1BBVENI IDMvM10gQWRkIGEgQ2hhbmdlTG9nIGVudHJ5IGZvciB0aHJlYWQgbmFtaW5n IG9uIE1TLVdpbmRvd3MKCi0tLQogZ2RiL0NoYW5nZUxvZyB8IDYgKysrKysr CiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0 IGEvZ2RiL0NoYW5nZUxvZyBiL2dkYi9DaGFuZ2VMb2cKaW5kZXggMGY0YThi Ni4uYmQwOWNiNSAxMDA2NDQKLS0tIGEvZ2RiL0NoYW5nZUxvZworKysgYi9n ZGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOSBAQAorMjAxNi0wNy0yMyAg0KDR g9GB0LvQsNC9INCY0LbQsdGD0LvQsNGC0L7QsiAgPGxybjE5ODZAZ21haWwu Y29tPgorCisJKiB3aW5kb3dzLW5hdC5jIChoYW5kbGVfZXhjZXB0aW9uKTog SGFuZGxlIGV4Y2VwdGlvbiAweDQwNkQxMzg4CisJdGhhdCBpcyB1c2VkIHRv IHNldCB0aHJlYWQgbmFtZS4KKwkqIE5FV1M6IE1lbnRpb24gdGhlIHRocmVh ZCBuYW1pbmcgc3VwcG9ydCBvbiBNUy1XaW5kb3dzLgorCiAyMDE2LTA2LTMw ICDQoNGD0YHQu9Cw0L0g0JjQttCx0YPQu9Cw0YLQvtCyICA8bHJuMTk4NkBn bWFpbC5jb20+CiAKIAlQUiBnZGIvMTQ1MjkKLS0gCjIuNC4wCgo= --------------812D51DC25F3BC5FA81B3E73 Content-Type: application/pgp-keys; name="0x6759BA74.asc" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0x6759BA74.asc" Content-length: 3718 -----BEGIN PGP PUBLIC KEY BLOCK-----=0A= Version: GnuPG v2=0A= =0A= mQINBFd+4e0BEACxh5wQhm5pG3DMdXokYTZYyncAc0MGQkuCG7+0CUa06VW+qVz3=0A= x+wkWRSJSbFrltSzNpKY67kOGPc1b7e1V4vIQ5ubNSYNOnwqFedEorBCyA6jvpfE=0A= vmLHcWJyK6emZC2s09ToxN1ovzcJBkQMgpJNYj4jZHdHEJ0PD+qEp7bKTXlxzWXM=0A= oHjPdykSLPDuTzQ1Gi09OakKhzOUvg+3Lgqo1aAf+r8HtysM19wUE06h1BYpsMo/=0A= gP87w/uhyqrqqAPBb3tpJtAhw8OcUREsJ4GC5zsp80eHy7IS6LIrPB3nf9XyIxvd=0A= 5qql9y1XclbB/sTGfD2Z27gYLLqFDIlYxXKT1z999yGN71gXYoLi9wbqpP0VSbdh=0A= tr8LVhGiuP+BPNq1y62wKyBKpJulBq2TnYWhukYowI1tCkCFeL1F0yG2M0RTvo3P=0A= dUp6YSHiNbuvgiFzoow2YVCPW+w2MBFR2S1Si72Yegq2+tf5Dd0mSOEKOhaChz/X=0A= L3gFlbjgaF0qA879Q/8pppjdsmwDY+q48WV4NnI3bPsTlZ6dKnI0ZMpct9Kfi7E5=0A= dmexGdOCde4RbEs4dOsdMhjFl9B1YQPjKpTmh7FtoTDJqMklZEAzBr+pEDb7BorM=0A= Beh2aHsJ0Z7Qd52BCaUAIuPUXjwXDI4qzf7UyWLFS66BkeDXBRDRWaRL5QARAQAB=0A= tBdMUk4gPGxybjE5ODZAZ21haWwuY29tPokCPwQTAQgAKQUCV37h7QIbIwUJCWYB=0A= gAcLCQgHAwIBBhUIAgkKCwQWAgMBAh4BAheAAAoJEI2t6SdnWbp0qtoQAIjcnzeN=0A= riwftAfLsnXKYBrxmdbfPsmu4G7cQxsabst841sOrvWFPHTkEZk/xpfyQgxpZEiB=0A= 8uF82XKNbHNh9+nWqiDyt/Y9v23IIt1fIodOuB1q3Jdbh7nraflgzeji91rR3BuP=0A= mKcbpX+t4zlOg2RNh3dG+xoY91C5gXXWqBZ73kyGDHkpp2jGFXNStzdlcR4qLBiV=0A= dbtXfU/mnmB3tFuojx/zgL71816G2toBZzeWT/6c7UnmrubarvbNIVPbYufM0Xzw=0A= 7sK1y+i6p+QnZPZJ7nytINAVAZJ3pxle1Ajwb5p4QAVSsau78iG04/9cNU+gtftT=0A= kwNOIJ0LDnj+S6A58uLIr2Ebl4Jr4g0MPlw74CsUIspQz9sb6/yANLQ98kz3PrUa=0A= MpodI2dNpV8UROoJ/t96ys755FcEb/09SDJcTUx7QlPukgoq4mrWqB59kVID7CKq=0A= HRRDanuoyR/+ITDUxXUEUIJkWGYzUfKzjI8ditBCI6zxNftWCaiw5XkrEEpctvzS=0A= CBbNE7KjAoFbZDnsXHgg9xZWpAzYYP6aCmBvpjISMGihXbw1oS6mJvvHTFSzjTvX=0A= QHShvyO8XLI7Q+NwrYV+mVNvtBX+mQaTsQdS9knSpoHHO/N0QlCUzbnPIEOVKjN6=0A= Hw7bcBokYeI0ez3yMZlf/bU/yyMRfxskOqxciQEcBBMBCAAGBQJXfuIzAAoJEOs4=0A= Jb6SI2CwxPgIAJtQBb/79MSdZZb3kggOC0ClZ7WDRSdP31R272gdckcbqVqm7vMl=0A= 0OZxQH5G4QRuFNLMSJG5ytf//qoxYj5CmvQS5NkP/sgnMaHvjHG+jRaBfB9t00Um=0A= h24BBL04Ac0lv3eiBc64nUJT37dEBUNEE8fgQ67gnV1hacqybVXqWIm1RXluL+Un=0A= fdFsbD6KWHLY2uPrARXdLYT7veUPnEgziw4s/2AVrGHiSgNZV1Z8pFMsuiUGpCRr=0A= 1K0r8b6hP3nxa0xxzk83NrKI6ZL1Jyhlqe7dLSWaSVofHk9WmcARZ+hJ/PlP+9N5=0A= Fd5ZuJ9R5t8C0gUB5v1ID4vPxt/YFCeiVJy5Ag0EV37h7QEQAKcbtHNm2vc6aYgR=0A= /eK0cJmJOqV3S0PtXychIV6zYj2/DppUOttsQN39nEgTBui1QFYfVgYNv3S0DBZY=0A= ESSijTLrzyCbzYL9AL/OzIgo++m8F0lERhhMKsVKtdZWLBflkQgPgCpMdwqhGdRP=0A= 5WrximbRtHN7JD4TCfupCqepefqvxyYv/pHYcDTFEycEChkRgCpc88tTxNdAyd2+=0A= F7lfvMxsgGmNcMa5IzIm1GXjKQONyiMffmjYT0Sod/AS/RA7z3aTv9/2Sm4TLgae=0A= 4BtV+ZU39VMkfA8c2DsnVi4zVKOBho7MH/Lwar2bQwKZ8U1TKhKDwK0Q1eYTq+3U=0A= Nc6Rk/9QolYpYup7/lH5wWppPvipqlltTQa6F0csD6AIc9W7rO7RVFo+lqvrEZAw=0A= AUXrRCTFtBijg715eZenDzS0QZw9WtQ6ufhsAamap6hJQmIZD3HdWdrHCT1TQ/Tt=0A= JzPAyIYbRbKCe2hoxUojF0A/P1ZL90kf/OZPQ6Oisl5XMyuyiJFgVbdbXYMJ+f+k=0A= 3pTrVxB9vASmGxX3LXCxVJAZ9xJWdBC73VK7rwit0tA8ijekrmkhSjZlIZCKvDYA=0A= j9fV4O6QXRuuFZKo4xGYWCIPFwe802jOrbvQw8YT5CgN7hGMUyHV/GCH50uUoVJD=0A= andFGy7hvTckfXk85oXARMswdyQ3ABEBAAGJAiUEGAEIAA8FAld+4e0CGwwFCQlm=0A= AYAACgkQja3pJ2dZunQeVQ/9FtseE5WqnmvPGc5NPGvbWhrd5x9CpStPG9b+xsBu=0A= 91ZXrMHsNOVQ0SxFdB708OT15sTy1ldeemxUK62E5XO1bvFJ4R1gHkWe6K/j9TfG=0A= Fshbyl3J6WKwG2qwT2JpNVpb+6QShFZVRe9a1rn3D/DNZurj3XYgVQGWlYVYT/LA=0A= 32zmBjQEzSXMbDBR/wSiJzYqgTB+9udGkcrYVgrmNz5YSA2mp6l1+PH/i++FD4j/=0A= KWFVnmqt1QqT8Q0l4MYQH65MdzHdspwfMt0XZ5abnubWIO78ImbOA/CD7MwbuWvy=0A= zezkiDcqQQ2G8mu/ER3oByfQ84iMIxGv1V608EBddHWygd6YQIKdScay0D+54IUz=0A= DXyv9tcnAAnxvMM5wzJyjWytOwL2H7FvSVAtfdywaF2wZA0iHho5Df8OeZdPEZhF=0A= 85GngH3hOBE0EAUMSFwThhRU7a2oMLSTFXRg0bKC3n0MoNExAV/oKiSM5HC06PsP=0A= exONpT/8WHL6GRk6vfsj09m7qScZSvyX35TxggnEHNwNW5/aYKIuhsXohxhLkUqM=0A= Bzu9/Xdq0xPOTyJSTberO8LR1TdWwi2WtPEBOtD25VMtEwhHrX3BKBkmYVu5f7vr=0A= CZikOLr7N8a5zJHJIiEdA2uljajBVTkPRCbMVsIBN2VVPcY2YOyNmG4gAtYmuDRL=0A= rb8=3D=0A= =3D8FDv=0A= -----END PGP PUBLIC KEY BLOCK-----=0A= --------------812D51DC25F3BC5FA81B3E73-- --SLJaoRHeS7dn0oxL6q5n1vvKfR3ek0fed-- --4uEcIvFW9vS9mQUXNaDR21xAfHO831jXB Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" Content-length: 819 -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCAAGBQJXkzgDAAoJEI2t6SdnWbp0vIMP/1yyhHr0rwQHRWxDRekkW6hy yZ3qJULrsnkzBdx6+1YhfLJiJcMuQS5LMwJeGRF6TlphgzpGVcyyQdcqcHXCA5oz X8sX0aBgxlNW7WXrnoy4mXmtRSfdGBv99FKC89e5foSdW1+8aPrI4a+ykP4YGXCC oMkBaztHuAjMnDh6n2XrT6Rdp73OYH9p6M3fegljeQQwp6+hbcMNuxSlf8EK/9W2 VeUi9vgFHhYMoT6Xsl779udO56OzbKsvTPEeHIJqQq15cY5DawPPl/ft5FPoQGlZ EF22xkG8V2a43d0Cetk5RGNFE21EtVWp2IHBGIGAKRsR2Y+6efzPzFL5M85DLuia 6ZLdOWekjPY65DmRAxEGbKltvlo9JOuWCPe30iCzmhOgi/ShCfK+bP5rAK6sfFKT aaT+0F4Toe1e5cFKRmBgjumAEmyOPiTenLXAlFCFiEx3nGDX8OeC4XE63+jm8/f3 vkodXyIsZDSPW6EkfAAMChoKpL01gqm4DETDWqDBqIWmO57QLZfUiUV/mPYQKwkM vQoI5++L7gPomzZpQL8N4ZLXOPw2/ASGLyOaOwGrevHxOGmVm5wB35rPARv8BK7Y OQJsWOTGQWkSsIEv6PJtP9nE1xhQUe2+t9uCeFtquUH9HFwunDq1D0GSf0uy2FZ2 0S5QR4/EMfKxmUU65cM0 =Vyhw -----END PGP SIGNATURE----- --4uEcIvFW9vS9mQUXNaDR21xAfHO831jXB--