From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Gregory Heytings Newsgroups: gmane.emacs.bugs Subject: bug#48042: 26.3; Macros don't work with french-postfix input method Date: Sat, 15 May 2021 18:47:00 +0000 Message-ID: References: <86pmyghqf1.fsf@upmc.fr> <425cd7715bc9fae8b39a@heytings.org> <831ra9zi4x.fsf@gnu.org> <425cd7715bda5353110e@heytings.org> <83y2chxvg4.fsf@gnu.org> <425cd7715b4c15a15813@heytings.org> <83v97lxu0f.fsf@gnu.org> <425cd7715b770b248347@heytings.org> <834kf4xppr.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="9j6sPOk5vg" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="12619"; mail-complaints-to="usenet@ciao.gmane.io" Cc: monnier@iro.umontreal.ca, harven@free.fr, 48042@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sat May 15 20:48:10 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lhzKc-000332-F6 for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 15 May 2021 20:48:10 +0200 Original-Received: from localhost ([::1]:46140 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lhzKa-0002uw-Ih for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 15 May 2021 14:48:08 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:59840) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lhzKT-0002uR-VI for bug-gnu-emacs@gnu.org; Sat, 15 May 2021 14:48:01 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:37691) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lhzKT-0008HX-OM for bug-gnu-emacs@gnu.org; Sat, 15 May 2021 14:48:01 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1lhzKT-0004Jb-Mh for bug-gnu-emacs@gnu.org; Sat, 15 May 2021 14:48:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Gregory Heytings Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 15 May 2021 18:48:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 48042 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: confirmed Original-Received: via spool by 48042-submit@debbugs.gnu.org id=B48042.162110442516520 (code B ref 48042); Sat, 15 May 2021 18:48:01 +0000 Original-Received: (at 48042) by debbugs.gnu.org; 15 May 2021 18:47:05 +0000 Original-Received: from localhost ([127.0.0.1]:49237 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lhzJY-0004IO-FQ for submit@debbugs.gnu.org; Sat, 15 May 2021 14:47:05 -0400 Original-Received: from heytings.org ([95.142.160.155]:52250) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lhzJV-0004Hx-TX for 48042@debbugs.gnu.org; Sat, 15 May 2021 14:47:03 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=heytings.org; s=20210101; t=1621104420; bh=ZkfLeMAFH6I0QsIvOOXPfLdeCXy2R2OGd/aCDVfxRYw=; h=Date:From:To:cc:Subject:In-Reply-To:Message-ID:References:From; b=O2fiu6YFW/iPzeSuhzJRPc2O5EQK49F+wHjBdrR2K5jU79vdZbeFtVvLpFU5JcVcz SIRuUL+Y2GsxuXcZHWAlOWEOUaubPKsjSgbIM1iTmpbsja0jpPwFyzd1qZlvbu3A4w NF6kjCEpEkGs5kMJvI4ejqWMU7i7U57c1FpEwJ2Sl+rhh3qva2B1vNV1nygp4bR2fh hSK9yXjsQUp1jlOTeDxgDMg9Sb87IQvmq4f/xfys7VkgQl4BWwzfLPvJ0PzibXJeuf szulTUvCaa1RPWZeJ3fqZmnmE/aqwexuI/PjCnJGy+ctTrGWGE6jCVidyjsj5bGqw4 fLRIaNoyLM6Kg== In-Reply-To: <834kf4xppr.fsf@gnu.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list 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-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:206617 Archived-At: --9j6sPOk5vg Content-Type: text/plain; format=flowed; charset=us-ascii I attach the updated patch. Some comments below: > > To tell you the truth, I'm a bit worried that you inhibit recording > everywhere in quail.el, which seems to contradict my analysis from back > when I made the inhibit--record-char. How many different input methods > did you try with macros and "C-h l" to make sure this change indeed > causes Emacs to record each produced character just once, and nothing is > either omitted or recorded more than once? Did you try some CJK input > methods, for example, which offer several alternatives for each key > sequence the user typed? > I tried french-postfix, russian-computer, ucs, TeX, arabic, japanese and chinese-py. From what I can see, everything works as expected, but I don't speak or read these languages, and there are more than 200 input methods, I cannot test them all. >> +When RESET is non-nil, the events in `unread-command-events' are first >> +discarded." > > I'm not sure we need this as part of the function: it makes the function > more complicated for no good reason. Why not reset > unread-command-events "by hand" in the one place where that is needed? > Or maybe even explicitly use (no-record . 7) in that one place, and then > you can avoid calling this function, since that one place does something > very different from the rest. > I did this to simplify future debugging sessions. Having Quail interact with unread-command-events in a single place will make that easier. And the added complexity is really small. >> @@ -883,6 +882,9 @@ terminal-init-xterm >> (xterm--init-bracketed-paste-mode) >> ;; We likewise unconditionally enable support for focus tracking. >> (xterm--init-focus-tracking) >> + ;; Clear the lossage to discard the responses of the terminal emulator >> + ;; during initialization (Bug#44908) >> + (clear-this-command-keys) > > Btw, what happens if while this code runs, the user types something? We > don't want those events to be cleared. > It's quite hard to type something at that moment AFAICS, the whole terminal initialization typically takes at most 50 ms. I tried to type something as fast as possible during the terminal initialization, and what happens is this (visible in *Messages*): q is undefined M-] is undefined ; is undefined r is undefined g is undefined b is undefined : is undefined f is undefined [4 times] / is undefined f is undefined [4 times] / is undefined f is undefined [4 times] or this: q is undefined M-[ > is undefined ; is undefined [2 times] c is undefined The first key is the pressed key ("q"), the other keys are some of the keys of the terminal initialization process (the digits are bound to digit-argument in the *GNU Emacs* buffer and are therefore not undefined): ESC [ > ESC [ > 4 1 ; 3 6 6 ; 0 c ESC ] 1 1 ; r g b : f f f f / f f f f / f f f f ESC \ IOW, if the user presses something at that moment, the terminal initialization process does not work as expected. (FWIW, I would have closed bug#44908 as a wontfix, seeing a few unwanted keys in the lossage after starting Emacs is a really minor annoyance.) --9j6sPOk5vg Content-Type: text/x-diff; name=Fix-key-recording-bug-when-an-input-method-is-activa.patch Content-Transfer-Encoding: base64 Content-ID: Content-Description: Content-Disposition: attachment; filename=Fix-key-recording-bug-when-an-input-method-is-activa.patch RnJvbSA2YWQzZjEzYmZjZjJmMmE0MWEyNmQzYWU1NjE4MzY0NjIxMzNmMjM1 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQ0KRnJvbTogR3JlZ29yeSBIZXl0 aW5ncyA8Z3JlZ29yeUBoZXl0aW5ncy5vcmc+DQpEYXRlOiBTYXQsIDE1IE1h eSAyMDIxIDE4OjMyOjMxICswMDAwDQpTdWJqZWN0OiBbUEFUQ0hdIEZpeCBr ZXkgcmVjb3JkaW5nIGJ1ZyB3aGVuIGFuIGlucHV0IG1ldGhvZCBpcyBhY3Rp dmF0ZWQNCg0KKiBsaXNwL2ludGVybmF0aW9uYWwvcXVhaWwuZWwgKHF1YWls LWFkZC11bnJlYWQtY29tbWFuZC1ldmVudHMpOg0KTmV3IGZ1bmN0aW9uLg0K KHF1YWlsLXN0YXJ0LXRyYW5zbGF0aW9uLCBxdWFpbC1zdGFydC1jb252ZXJz aW9uLA0KcXVhaWwtdXBkYXRlLXRyYW5zbGF0aW9uLCBxdWFpbC1uZXh0LXRy YW5zbGF0aW9uLA0KcXVhaWwtcHJldi10cmFuc2xhdGlvbiwgcXVhaWwtbmV4 dC10cmFuc2xhdGlvbi1ibG9jaywNCnF1YWlsLXByZXYtdHJhbnNsYXRpb24t YmxvY2ssIHF1YWlsLW1pbmlidWZmZXItbWVzc2FnZSk6IFVzZSB0aGUNCm5l dyBmdW5jdGlvbiAoYW5kIHBhcnRseSByZXZlcnQgMDNlMzQ0MGRiYikuDQoN CiogbGlzcC9zdWJyLmVsIChpbmhpYml0LS1yZWNvcmQtY2hhcik6IE5ldyBv YnNvbGV0ZSB2YXJpYWJsZS4NCg0KKiBsaXNwL3Rlcm0veHRlcm0uZWwgKHh0 ZXJtLS1pbml0KTogTmV3IGZ1bmN0aW9uLCB3aXRoIG1vc3Qgb2YgdGhlDQpj b2RlIG9mIGZvcm1lciB0ZXJtaW5hbC1pbml0LXh0ZXJtLg0KKHRlcm1pbmFs LWluaXQteHRlcm0pOiBDbGVhciB0aGUgbG9zc2FnZSBhZnRlciB0ZXJtaW5h bA0KaW5pdGlhbGl6YXRpb24gKHNlZSBCdWcjNDQ5MDgpLg0KKHh0ZXJtLS1y ZWFkLWV2ZW50LWZvci1xdWVyeSk6IERvIG5vdCB1c2UgaW5oaWJpdC0tcmVj b3JkLWNoYXINCmFueW1vcmUgKHJldmVydCAzZTY1MjVkNjlmKS4NCg0KKiBz cmMva2V5Ym9hcmQuYyAoc3ltc19vZl9rZXlib2FyZCk6IFJlbW92ZSBpbmhp Yml0LS1yZWNvcmQtY2hhcg0KKHBhcnRseSByZXZlcnQgMDNlMzQ0MGRiYiku DQoocmVjb3JkX2NoYXIsIHN5bXNfb2Zfa2V5Ym9hcmRfZm9yX3BkdW1wZXIp OiBEbyBub3QgdXNlDQppbmhpYml0X3JlY29yZF9jaGFyIGFueW1vcmUuDQot LS0NCiBsaXNwL2ludGVybmF0aW9uYWwvcXVhaWwuZWwgfCA3MiArKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tDQogbGlzcC9zdWJyLmVs ICAgICAgICAgICAgICAgIHwgIDYgKysrKw0KIGxpc3AvdGVybS94dGVybS5l bCAgICAgICAgICB8IDE3ICsrKysrKy0tLQ0KIHNyYy9rZXlib2FyZC5jICAg ICAgICAgICAgICB8IDEzIC0tLS0tLS0NCiA0IGZpbGVzIGNoYW5nZWQsIDUz IGluc2VydGlvbnMoKyksIDU1IGRlbGV0aW9ucygtKQ0KDQpkaWZmIC0tZ2l0 IGEvbGlzcC9pbnRlcm5hdGlvbmFsL3F1YWlsLmVsIGIvbGlzcC9pbnRlcm5h dGlvbmFsL3F1YWlsLmVsDQppbmRleCBmZmYwNmRlZWU4Li4zMzg1MWYwOWEx IDEwMDY0NA0KLS0tIGEvbGlzcC9pbnRlcm5hdGlvbmFsL3F1YWlsLmVsDQor KysgYi9saXNwL2ludGVybmF0aW9uYWwvcXVhaWwuZWwNCkBAIC0xMzY4LDYg KzEzNjgsMjcgQEAgcXVhaWwtZGVsZXRlLXJlZ2lvbg0KICAgICAgIChkZWxl dGUtcmVnaW9uIChvdmVybGF5LXN0YXJ0IHF1YWlsLW92ZXJsYXkpDQogCQkg ICAgIChvdmVybGF5LWVuZCBxdWFpbC1vdmVybGF5KSkpKQ0KIA0KKyhkZWZ1 biBxdWFpbC1hZGQtdW5yZWFkLWNvbW1hbmQtZXZlbnRzIChrZXkgJm9wdGlv bmFsIHJlc2V0KQ0KKyAgIkFkZCBLRVkgdG8gYHVucmVhZC1jb21tYW5kLWV2 ZW50cycsIGVuc3VyaW5nIHRoYXQgaXQgaXMgbm90IHJlY29yZGVkLg0KK0lm IEtFWSBpcyBhIGNoYXJhY3RlciwgaXQgaXMgcHJlcGVuZGVkIHRvIGB1bnJl YWQtY29tbWFuZC1ldmVudHMnIGFzDQorYSBjb25zIGNlbGwgb2YgdGhlIGZv cm0gKG5vLXJlY29yZCAuIEtFWSkuDQorSWYgS0VZIGlzIGEgdmVjdG9yIG9m IGV2ZW50cywgdGhlIGV2ZW50cyBpbiB0aGUgdmVjdG9yIGFyZSBwcmVwZW5k ZWQNCit0byBgdW5yZWFkLWNvbW1hbmQtZXZlbnRzJywgYWZ0ZXIgY29udmVy dGluZyBlYWNoIGV2ZW50IHRvIGEgY29ucyBjZWxsDQorb2YgdGhlIGZvcm0g KG5vLXJlY29yZCAuIEVWRU5UKS4NCitRdWFpbCBwdXRzIGtleXMgYmFjayBp biBgdW5yZWFkLWNvbW1hbmQtZXZlbnRzJyB0byBiZSBoYW5kbGVkIGFnYWlu LA0KK2FuZCB3aGVuIGl0IGRvZXMgdGhpcyB0aGVzZSBrZXlzIGhhdmUgYWxy ZWFkeSBiZWVuIHJlY29yZGVkIGluIHRoZQ0KK3JlY2VudCBrZXlzIGFuZCBp biB0aGUga2V5Ym9hcmQgbWFjcm8gYmVpbmcgZGVmaW5lZCwgd2hpY2ggbWVh bnMgdGhhdA0KK3JlY29yZGluZyB0aGVtIGFnYWluIHdvdWxkIGNyZWF0ZSBk dXBsaWNhdGVzLg0KK1doZW4gUkVTRVQgaXMgbm9uLW5pbCwgdGhlIGV2ZW50 cyBpbiBgdW5yZWFkLWNvbW1hbmQtZXZlbnRzJyBhcmUgZmlyc3QNCitkaXNj YXJkZWQuIg0KKyAgKGlmIHJlc2V0IChzZXRxIHVucmVhZC1jb21tYW5kLWV2 ZW50cyBuaWwpKQ0KKyAgKHNldHEgdW5yZWFkLWNvbW1hbmQtZXZlbnRzDQor ICAgICAgICAoaWYgKGNoYXJhY3RlcnAga2V5KQ0KKyAgICAgICAgICAgIChj b25zIChjb25zICduby1yZWNvcmQga2V5KSB1bnJlYWQtY29tbWFuZC1ldmVu dHMpDQorICAgICAgICAgIChhcHBlbmQgKG1hcGNhbiAobGFtYmRhIChlKSAo bGlzdCAoY29ucyAnbm8tcmVjb3JkIGUpKSkNCisgICAgICAgICAgICAgICAg ICAgICAgICAgIChhcHBlbmQga2V5IG5pbCkpDQorICAgICAgICAgICAgICAg ICAgdW5yZWFkLWNvbW1hbmQtZXZlbnRzKSkpKQ0KKw0KIChkZWZ1biBxdWFp bC1zdGFydC10cmFuc2xhdGlvbiAoa2V5KQ0KICAgIlN0YXJ0IHRyYW5zbGF0 aW9uIG9mIHRoZSB0eXBlZCBjaGFyYWN0ZXIgS0VZIGJ5IHRoZSBjdXJyZW50 IFF1YWlsIHBhY2thZ2UuDQogUmV0dXJuIHRoZSBpbnB1dCBzdHJpbmcuIg0K QEAgLTEzODUsMTMgKzE0MDYsMTEgQEAgcXVhaWwtc3RhcnQtdHJhbnNsYXRp b24NCiAJICAgICA7OyAoZ2VuZXJhdGVkLWV2ZW50cyBuaWwpICAgICA7RklY TUU6IFdoYXQgaXMgdGhpcz8NCiAJICAgICAoaW5wdXQtbWV0aG9kLWZ1bmN0 aW9uIG5pbCkNCiAJICAgICAobW9kaWZpZWQtcCAoYnVmZmVyLW1vZGlmaWVk LXApKQ0KLQkgICAgIGxhc3QtY29tbWFuZC1ldmVudCBsYXN0LWNvbW1hbmQg dGhpcy1jb21tYW5kIGluaGliaXQtcmVjb3JkKQ0KKwkgICAgIGxhc3QtY29t bWFuZC1ldmVudCBsYXN0LWNvbW1hbmQgdGhpcy1jb21tYW5kKQ0KIAkoc2V0 cSBxdWFpbC1jdXJyZW50LWtleSAiIg0KIAkgICAgICBxdWFpbC1jdXJyZW50 LXN0ciAiIg0KIAkgICAgICBxdWFpbC10cmFuc2xhdGluZyB0KQ0KLQkoaWYg a2V5DQotCSAgICAoc2V0cSB1bnJlYWQtY29tbWFuZC1ldmVudHMgKGNvbnMg a2V5IHVucmVhZC1jb21tYW5kLWV2ZW50cykNCi0gICAgICAgICAgICAgICAg ICBpbmhpYml0LXJlY29yZCB0KSkNCisJKGlmIGtleSAocXVhaWwtYWRkLXVu cmVhZC1jb21tYW5kLWV2ZW50cyBrZXkpKQ0KIAkod2hpbGUgcXVhaWwtdHJh bnNsYXRpbmcNCiAJICAoc2V0LWJ1ZmZlci1tb2RpZmllZC1wIG1vZGlmaWVk LXApDQogCSAgKHF1YWlsLXNob3ctZ3VpZGFuY2UpDQpAQCAtMTQwMCwxMyAr MTQxOSw4IEBAIHF1YWlsLXN0YXJ0LXRyYW5zbGF0aW9uDQogCQkJCSAgICAg KG9yIGlucHV0LW1ldGhvZC1wcmV2aW91cy1tZXNzYWdlICIiKQ0KIAkJCQkg ICAgIHF1YWlsLWN1cnJlbnQtc3RyDQogCQkJCSAgICAgcXVhaWwtZ3VpZGFu Y2Utc3RyKSkpDQotICAgICAgICAgICAgICAgICA7OyBXZSBpbmhpYml0IHJl Y29yZF9jaGFyIG9ubHkgZm9yIHRoZSBmaXJzdCBrZXksDQotICAgICAgICAg ICAgICAgICA7OyBiZWNhdXNlIGl0IHdhcyBhbHJlYWR5IHJlY29yZGVkIGJl Zm9yZSByZWFkX2NoYXINCi0gICAgICAgICAgICAgICAgIDs7IGNhbGxlZCBx dWFpbC1pbnB1dC1tZXRob2QuDQotICAgICAgICAgICAgICAgICAoaW5oaWJp dC0tcmVjb3JkLWNoYXIgaW5oaWJpdC1yZWNvcmQpDQogCQkgKGtleXNlcSAo cmVhZC1rZXktc2VxdWVuY2UgcHJvbXB0IG5pbCBuaWwgdCkpDQogCQkgKGNt ZCAobG9va3VwLWtleSAocXVhaWwtdHJhbnNsYXRpb24ta2V5bWFwKSBrZXlz ZXEpKSkNCi0gICAgICAgICAgICAoc2V0cSBpbmhpYml0LXJlY29yZCBuaWwp DQogCSAgICAoaWYgKGlmIGtleQ0KIAkJICAgIChhbmQgKGNvbW1hbmRwIGNt ZCkgKG5vdCAoZXEgY21kICdxdWFpbC1vdGhlci1jb21tYW5kKSkpDQogCQkg IChlcSBjbWQgJ3F1YWlsLXNlbGYtaW5zZXJ0LWNvbW1hbmQpKQ0KQEAgLTE0 MjAsOSArMTQzNCw3IEBAIHF1YWlsLXN0YXJ0LXRyYW5zbGF0aW9uDQogCQkg ICAgKHF1YWlsLWVycm9yIChtZXNzYWdlICIlcyIgKGNkciBlcnIpKSAoYmVl cCkpKSkNCiAJICAgICAgOzsgS0VZU0VRIGlzIG5vdCBkZWZpbmVkIGluIHRo ZSB0cmFuc2xhdGlvbiBrZXltYXAuDQogCSAgICAgIDs7IExldCdzIHJldHVy biB0aGUgZXZlbnQocykgdG8gdGhlIGNhbGxlci4NCi0JICAgICAgKHNldHEg dW5yZWFkLWNvbW1hbmQtZXZlbnRzDQotCQkgICAgKGFwcGVuZCAodGhpcy1z aW5nbGUtY29tbWFuZC1yYXcta2V5cykNCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgdW5yZWFkLWNvbW1hbmQtZXZlbnRzKSkNCisJICAgICAgKHF1 YWlsLWFkZC11bnJlYWQtY29tbWFuZC1ldmVudHMgKHRoaXMtc2luZ2xlLWNv bW1hbmQtcmF3LWtleXMpKQ0KIAkgICAgICAoc2V0cSBxdWFpbC10cmFuc2xh dGluZyBuaWwpKSkpDQogCShxdWFpbC1kZWxldGUtcmVnaW9uKQ0KIAlxdWFp bC1jdXJyZW50LXN0cikNCkBAIC0xNDUwLDE1ICsxNDYyLDEzIEBAIHF1YWls LXN0YXJ0LWNvbnZlcnNpb24NCiAJICAgICA7OyAoZ2VuZXJhdGVkLWV2ZW50 cyBuaWwpICAgICA7RklYTUU6IFdoYXQgaXMgdGhpcz8NCiAJICAgICAoaW5w dXQtbWV0aG9kLWZ1bmN0aW9uIG5pbCkNCiAJICAgICAobW9kaWZpZWQtcCAo YnVmZmVyLW1vZGlmaWVkLXApKQ0KLQkgICAgIGxhc3QtY29tbWFuZC1ldmVu dCBsYXN0LWNvbW1hbmQgdGhpcy1jb21tYW5kIGluaGliaXQtcmVjb3JkKQ0K KwkgICAgIGxhc3QtY29tbWFuZC1ldmVudCBsYXN0LWNvbW1hbmQgdGhpcy1j b21tYW5kKQ0KIAkoc2V0cSBxdWFpbC1jdXJyZW50LWtleSAiIg0KIAkgICAg ICBxdWFpbC1jdXJyZW50LXN0ciAiIg0KIAkgICAgICBxdWFpbC10cmFuc2xh dGluZyB0DQogCSAgICAgIHF1YWlsLWNvbnZlcnRpbmcgdA0KIAkgICAgICBx dWFpbC1jb252ZXJzaW9uLXN0ciAiIikNCi0JKGlmIGtleQ0KLQkgICAgKHNl dHEgdW5yZWFkLWNvbW1hbmQtZXZlbnRzIChjb25zIGtleSB1bnJlYWQtY29t bWFuZC1ldmVudHMpDQotICAgICAgICAgICAgICAgICAgaW5oaWJpdC1yZWNv cmQgdCkpDQorCShpZiBrZXkgKHF1YWlsLWFkZC11bnJlYWQtY29tbWFuZC1l dmVudHMga2V5KSkNCiAJKHdoaWxlIHF1YWlsLWNvbnZlcnRpbmcNCiAJICAo c2V0LWJ1ZmZlci1tb2RpZmllZC1wIG1vZGlmaWVkLXApDQogCSAgKG9yIHF1 YWlsLXRyYW5zbGF0aW5nDQpAQCAtMTQ3NCwxMyArMTQ4NCw4IEBAIHF1YWls LXN0YXJ0LWNvbnZlcnNpb24NCiAJCQkJICAgICBxdWFpbC1jb252ZXJzaW9u LXN0cg0KIAkJCQkgICAgIHF1YWlsLWN1cnJlbnQtc3RyDQogCQkJCSAgICAg cXVhaWwtZ3VpZGFuY2Utc3RyKSkpDQotICAgICAgICAgICAgICAgICA7OyBX ZSBpbmhpYml0IHJlY29yZF9jaGFyIG9ubHkgZm9yIHRoZSBmaXJzdCBrZXks DQotICAgICAgICAgICAgICAgICA7OyBiZWNhdXNlIGl0IHdhcyBhbHJlYWR5 IHJlY29yZGVkIGJlZm9yZSByZWFkX2NoYXINCi0gICAgICAgICAgICAgICAg IDs7IGNhbGxlZCBxdWFpbC1pbnB1dC1tZXRob2QuDQotICAgICAgICAgICAg ICAgICAoaW5oaWJpdC0tcmVjb3JkLWNoYXIgaW5oaWJpdC1yZWNvcmQpDQog CQkgKGtleXNlcSAocmVhZC1rZXktc2VxdWVuY2UgcHJvbXB0IG5pbCBuaWwg dCkpDQogCQkgKGNtZCAobG9va3VwLWtleSAocXVhaWwtY29udmVyc2lvbi1r ZXltYXApIGtleXNlcSkpKQ0KLSAgICAgICAgICAgIChzZXRxIGluaGliaXQt cmVjb3JkIG5pbCkNCiAJICAgIChpZiAoaWYga2V5IChjb21tYW5kcCBjbWQp IChlcSBjbWQgJ3F1YWlsLXNlbGYtaW5zZXJ0LWNvbW1hbmQpKQ0KIAkJKHBy b2duDQogCQkgIChzZXRxIGxhc3QtY29tbWFuZC1ldmVudCAoYXJlZiBrZXlz ZXEgKDEtIChsZW5ndGgga2V5c2VxKSkpDQpAQCAtMTUwMyw5ICsxNTA4LDcg QEAgcXVhaWwtc3RhcnQtY29udmVyc2lvbg0KIAkJCSAgICAoc2V0cSBxdWFp bC1jb252ZXJ0aW5nIG5pbCkpKSkpDQogCSAgICAgIDs7IEtFWVNFUSBpcyBu b3QgZGVmaW5lZCBpbiB0aGUgY29udmVyc2lvbiBrZXltYXAuDQogCSAgICAg IDs7IExldCdzIHJldHVybiB0aGUgZXZlbnQocykgdG8gdGhlIGNhbGxlci4N Ci0JICAgICAgKHNldHEgdW5yZWFkLWNvbW1hbmQtZXZlbnRzDQotCQkgICAg KGFwcGVuZCAodGhpcy1zaW5nbGUtY29tbWFuZC1yYXcta2V5cykNCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgdW5yZWFkLWNvbW1hbmQtZXZlbnRz KSkNCisJICAgICAgKHF1YWlsLWFkZC11bnJlYWQtY29tbWFuZC1ldmVudHMg KHRoaXMtc2luZ2xlLWNvbW1hbmQtcmF3LWtleXMpKQ0KIAkgICAgICAoc2V0 cSBxdWFpbC1jb252ZXJ0aW5nIG5pbCkpKSkNCiAJKHNldHEgcXVhaWwtdHJh bnNsYXRpbmcgbmlsKQ0KIAkoaWYgKG92ZXJsYXktc3RhcnQgcXVhaWwtY29u di1vdmVybGF5KQ0KQEAgLTE1NTEsOSArMTU1NCw4IEBAIHF1YWlsLXVwZGF0 ZS10cmFuc2xhdGlvbg0KIAkgICAgICAgKG9yIGlucHV0LW1ldGhvZC1leGl0 LW9uLWZpcnN0LWNoYXINCiAJCSAgICh3aGlsZSAoPiBsZW4gY29udHJvbC1m bGFnKQ0KIAkJICAgICAoc2V0cSBsZW4gKDEtIGxlbikpDQotCQkgICAgIChz ZXRxIHVucmVhZC1jb21tYW5kLWV2ZW50cw0KLQkJCSAgIChjb25zIChhcmVm IHF1YWlsLWN1cnJlbnQta2V5IGxlbikNCi0JCQkJIHVucmVhZC1jb21tYW5k LWV2ZW50cykpKSkpKQ0KKwkJICAgICAocXVhaWwtYWRkLXVucmVhZC1jb21t YW5kLWV2ZW50cw0KKwkJICAgICAgKGFyZWYgcXVhaWwtY3VycmVudC1rZXkg bGVuKSkpKSkpDQogCSAgICAoKG51bGwgY29udHJvbC1mbGFnKQ0KIAkgICAg ICh1bmxlc3MgcXVhaWwtY3VycmVudC1zdHINCiAJICAgICAgIChzZXRxIHF1 YWlsLWN1cnJlbnQtc3RyDQpAQCAtMTc5OSw4ICsxODAxLDcgQEAgcXVhaWwt bmV4dC10cmFuc2xhdGlvbg0KIAkgIChzZXRjYXIgaW5kaWNlcyAoMSsgKGNh ciBpbmRpY2VzKSkpDQogCSAgKHF1YWlsLXVwZGF0ZS1jdXJyZW50LXRyYW5z bGF0aW9ucykNCiAJICAocXVhaWwtdXBkYXRlLXRyYW5zbGF0aW9uIG5pbCkp KQ0KLSAgICAoc2V0cSB1bnJlYWQtY29tbWFuZC1ldmVudHMNCi0JICAoY29u cyBsYXN0LWNvbW1hbmQtZXZlbnQgdW5yZWFkLWNvbW1hbmQtZXZlbnRzKSkN CisgICAgKHF1YWlsLWFkZC11bnJlYWQtY29tbWFuZC1ldmVudHMgbGFzdC1j b21tYW5kLWV2ZW50KQ0KICAgICAocXVhaWwtdGVybWluYXRlLXRyYW5zbGF0 aW9uKSkpDQogDQogKGRlZnVuIHF1YWlsLXByZXYtdHJhbnNsYXRpb24gKCkN CkBAIC0xODE0LDggKzE4MTUsNyBAQCBxdWFpbC1wcmV2LXRyYW5zbGF0aW9u DQogCSAgKHNldGNhciBpbmRpY2VzICgxLSAoY2FyIGluZGljZXMpKSkNCiAJ ICAocXVhaWwtdXBkYXRlLWN1cnJlbnQtdHJhbnNsYXRpb25zKQ0KIAkgIChx dWFpbC11cGRhdGUtdHJhbnNsYXRpb24gbmlsKSkpDQotICAgIChzZXRxIHVu cmVhZC1jb21tYW5kLWV2ZW50cw0KLQkgIChjb25zIGxhc3QtY29tbWFuZC1l dmVudCB1bnJlYWQtY29tbWFuZC1ldmVudHMpKQ0KKyAgICAocXVhaWwtYWRk LXVucmVhZC1jb21tYW5kLWV2ZW50cyBsYXN0LWNvbW1hbmQtZXZlbnQpDQog ICAgIChxdWFpbC10ZXJtaW5hdGUtdHJhbnNsYXRpb24pKSkNCiANCiAoZGVm dW4gcXVhaWwtbmV4dC10cmFuc2xhdGlvbi1ibG9jayAoKQ0KQEAgLTE4MzAs OCArMTgzMCw3IEBAIHF1YWlsLW5leHQtdHJhbnNsYXRpb24tYmxvY2sNCiAJ ICAoc2V0Y2FyIGluZGljZXMgKCsgKG50aCAyIGluZGljZXMpIG9mZnNldCkp DQogCSAgKHF1YWlsLXVwZGF0ZS1jdXJyZW50LXRyYW5zbGF0aW9ucykNCiAJ ICAocXVhaWwtdXBkYXRlLXRyYW5zbGF0aW9uIG5pbCkpKQ0KLSAgICAoc2V0 cSB1bnJlYWQtY29tbWFuZC1ldmVudHMNCi0JICAoY29ucyBsYXN0LWNvbW1h bmQtZXZlbnQgdW5yZWFkLWNvbW1hbmQtZXZlbnRzKSkNCisgICAgKHF1YWls LWFkZC11bnJlYWQtY29tbWFuZC1ldmVudHMgbGFzdC1jb21tYW5kLWV2ZW50 KQ0KICAgICAocXVhaWwtdGVybWluYXRlLXRyYW5zbGF0aW9uKSkpDQogDQog KGRlZnVuIHF1YWlsLXByZXYtdHJhbnNsYXRpb24tYmxvY2sgKCkNCkBAIC0x ODUwLDggKzE4NDksNyBAQCBxdWFpbC1wcmV2LXRyYW5zbGF0aW9uLWJsb2Nr DQogCQkoc2V0Y2FyIGluZGljZXMgKCsgKG50aCAxIGluZGljZXMpIG9mZnNl dCkpDQogCQkocXVhaWwtdXBkYXRlLWN1cnJlbnQtdHJhbnNsYXRpb25zKSkp DQogCSAgKHF1YWlsLXVwZGF0ZS10cmFuc2xhdGlvbiBuaWwpKSkNCi0gICAg KHNldHEgdW5yZWFkLWNvbW1hbmQtZXZlbnRzDQotCSAgKGNvbnMgbGFzdC1j b21tYW5kLWV2ZW50IHVucmVhZC1jb21tYW5kLWV2ZW50cykpDQorICAgIChx dWFpbC1hZGQtdW5yZWFkLWNvbW1hbmQtZXZlbnRzIGxhc3QtY29tbWFuZC1l dmVudCkNCiAgICAgKHF1YWlsLXRlcm1pbmF0ZS10cmFuc2xhdGlvbikpKQ0K IA0KIChkZWZ1biBxdWFpbC1hYm9ydC10cmFuc2xhdGlvbiAoKQ0KQEAgLTIw MDYsOCArMjAwNCw4IEBAIHF1YWlsLW1pbmlidWZmZXItbWVzc2FnZQ0KICAg ICAoc2l0LWZvciAxMDAwMDAwKQ0KICAgICAoZGVsZXRlLXJlZ2lvbiBwb2lu dC1tYXggKHBvaW50LW1heCkpDQogICAgICh3aGVuIHF1aXQtZmxhZw0KLSAg ICAgIChzZXRxIHF1aXQtZmxhZyBuaWwNCi0JICAgIHVucmVhZC1jb21tYW5k LWV2ZW50cyAnKDcpKSkpKQ0KKyAgICAgIChzZXRxIHF1aXQtZmxhZyBuaWwp DQorICAgICAgKHF1YWlsLWFkZC11bnJlYWQtY29tbWFuZC1ldmVudHMgNyB0 KSkpKQ0KIA0KIChkZWZ1biBxdWFpbC1zaG93LWd1aWRhbmNlICgpDQogICAi RGlzcGxheSBhIGd1aWRhbmNlIGZvciBRdWFpbCBpbnB1dCBtZXRob2QgaW4g c29tZSB3aW5kb3cuDQpkaWZmIC0tZ2l0IGEvbGlzcC9zdWJyLmVsIGIvbGlz cC9zdWJyLmVsDQppbmRleCA3YTA1NWYyYmExLi41NTcyZTY0NDY4IDEwMDY0 NA0KLS0tIGEvbGlzcC9zdWJyLmVsDQorKysgYi9saXNwL3N1YnIuZWwNCkBA IC0xNzU3LDYgKzE3NTcsMTIgQEAgJ2luaGliaXQtbnVsLWJ5dGUtZGV0ZWN0 aW9uDQogKG1ha2Utb2Jzb2xldGUtdmFyaWFibGUgJ2xvYWQtZGFuZ2Vyb3Vz LWxpYnJhcmllcw0KICAgICAgICAgICAgICAgICAgICAgICAgICJubyBsb25n ZXIgdXNlZC4iICIyNy4xIikNCiANCisoZGVmdmFyIGluaGliaXQtLXJlY29y ZC1jaGFyIG5pbA0KKyAgIk9ic29sZXRlIHZhcmlhYmxlLg0KK1RoaXMgd2Fz IHVzZWQgaW50ZXJuYWxseSBieSBxdWFpbC5lbCBhbmQga2V5Ym9hcmQuYyBp biBFbWFjcyAyNy4NCitJdCBkb2VzIG5vdGhpbmcgaW4gRW1hY3MgMjguIikN CisobWFrZS1vYnNvbGV0ZS12YXJpYWJsZSAnaW5oaWJpdC0tcmVjb3JkLWNo YXIgbmlsICIyOC4xIikNCisNCiA7OyBXZSBjYW4ndCBhY3R1YWxseSBtYWtl IGB2YWx1ZXMnIG9ic29sZXRlLCBiZWNhdXNlIHRoYXQgd2lsbCByZXN1bHQN CiA7OyBpbiB3YXJuaW5ncyB3aGVuIHVzaW5nIGB2YWx1ZXMnIGluIGxldC1i aW5kaW5ncy4NCiA7OyhtYWtlLW9ic29sZXRlLXZhcmlhYmxlICd2YWx1ZXMg Im5vIGxvbmdlciB1c2VkIiAiMjguMSIpDQpkaWZmIC0tZ2l0IGEvbGlzcC90 ZXJtL3h0ZXJtLmVsIGIvbGlzcC90ZXJtL3h0ZXJtLmVsDQppbmRleCBlZWFm ODA1OTMwLi43N2U5NTg5NGU0IDEwMDY0NA0KLS0tIGEvbGlzcC90ZXJtL3h0 ZXJtLmVsDQorKysgYi9saXNwL3Rlcm0veHRlcm0uZWwNCkBAIC03NzAsOCAr NzcwLDcgQEAgeHRlcm0tLXJlYWQtZXZlbnQtZm9yLXF1ZXJ5DQogQnkgbm90 IHJlZGlzcGxheWluZyByaWdodCBhd2F5IGZvciB4dGVybSBxdWVyaWVzLCB3 ZSBjYW4gYXZvaWQNCiB1bnNpZ2h0bHkgZmxhc2hpbmcgZHVyaW5nIGluaXRp YWxpemF0aW9uLiBHaXZlIHVwIGFuZCByZWRpc3BsYXkNCiBhbnl3YXkgaWYg d2UndmUgYmVlbiB3YWl0aW5nIGEgbGl0dGxlIHdoaWxlLiINCi0gIChsZXQg KChzdGFydC10aW1lIChjdXJyZW50LXRpbWUpKQ0KLSAgICAgICAgKGluaGli aXQtLXJlY29yZC1jaGFyIHQpKQ0KKyAgKGxldCAoKHN0YXJ0LXRpbWUgKGN1 cnJlbnQtdGltZSkpKQ0KICAgICAob3IgKGxldCAoKGluaGliaXQtcmVkaXNw bGF5IHQpKQ0KICAgICAgICAgICAocmVhZC1ldmVudCBuaWwgbmlsIHh0ZXJt LXF1ZXJ5LXJlZGlzcGxheS10aW1lb3V0KSkNCiAgICAgICAgIChyZWFkLWV2 ZW50IG5pbCBuaWwNCkBAIC04MzksOCArODM4LDggQEAgeHRlcm0tLXB1c2gt bWFwDQogICAgYmFzZW1hcA0KICAgIChtYWtlLWNvbXBvc2VkLWtleW1hcCBt YXAgKGtleW1hcC1wYXJlbnQgYmFzZW1hcCkpKSkNCiANCi0oZGVmdW4gdGVy bWluYWwtaW5pdC14dGVybSAoKQ0KLSAgIlRlcm1pbmFsIGluaXRpYWxpemF0 aW9uIGZ1bmN0aW9uIGZvciB4dGVybS4iDQorKGRlZnVuIHh0ZXJtLS1pbml0 ICgpDQorICAiSW5pdGlhbGl6ZSB0aGUgdGVybWluYWwgZm9yIHh0ZXJtLiIN CiAgIDs7IHJ4dnQgdGVybWluYWxzIHNvbWV0aW1lcyBzZXQgdGhlIFRFUk0g dmFyaWFibGUgdG8gInh0ZXJtIiwgYnV0DQogICA7OyByeHZ0J3Mga2V5Ymlu ZGluZ3MgYXJlIGluY29tcGF0aWJsZSB3aXRoIHh0ZXJtJ3MuIEl0IGlzDQog ICA7OyBiZXR0ZXIgaW4gdGhhdCBjYXNlIHRvIHVzZSByeHZ0J3MgaW5pdGlh bGl6YXRpb24gZnVuY3Rpb24uDQpAQCAtODgyLDcgKzg4MSwxNSBAQCB0ZXJt aW5hbC1pbml0LXh0ZXJtDQogICA7OyBzdXBwb3J0IGl0IGp1c3QgaWdub3Jl IHRoZSBzZXF1ZW5jZS4NCiAgICh4dGVybS0taW5pdC1icmFja2V0ZWQtcGFz dGUtbW9kZSkNCiAgIDs7IFdlIGxpa2V3aXNlIHVuY29uZGl0aW9uYWxseSBl bmFibGUgc3VwcG9ydCBmb3IgZm9jdXMgdHJhY2tpbmcuDQotICAoeHRlcm0t LWluaXQtZm9jdXMtdHJhY2tpbmcpDQorICAoeHRlcm0tLWluaXQtZm9jdXMt dHJhY2tpbmcpKQ0KKw0KKyhkZWZ1biB0ZXJtaW5hbC1pbml0LXh0ZXJtICgp DQorICAiVGVybWluYWwgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24gZm9yIHh0 ZXJtLiINCisgICh1bndpbmQtcHJvdGVjdA0KKyAgICAgICh4dGVybS0taW5p dCkNCisgICAgOzsgQ2xlYXIgdGhlIGxvc3NhZ2UgdG8gZGlzY2FyZCB0aGUg cmVzcG9uc2VzIG9mIHRoZSB0ZXJtaW5hbCBlbXVsYXRvcg0KKyAgICA7OyBk dXJpbmcgaW5pdGlhbGl6YXRpb247IG90aGVyd2lzZSB0aGV5IGFwcGVhciBp biB0aGUgcmVjZW50IGtleXMuDQorICAgIChjbGVhci10aGlzLWNvbW1hbmQt a2V5cykpDQogDQogICAocnVuLWhvb2tzICd0ZXJtaW5hbC1pbml0LXh0ZXJt LWhvb2spKQ0KIA0KZGlmZiAtLWdpdCBhL3NyYy9rZXlib2FyZC5jIGIvc3Jj L2tleWJvYXJkLmMNCmluZGV4IDQ3YjVlNTkwMjQuLmM4NTVkNDVhZmEgMTAw NjQ0DQotLS0gYS9zcmMva2V5Ym9hcmQuYw0KKysrIGIvc3JjL2tleWJvYXJk LmMNCkBAIC0zMjMzLDEwICszMjMzLDYgQEAgaGVscF9jaGFyX3AgKExpc3Bf T2JqZWN0IGMpDQogc3RhdGljIHZvaWQNCiByZWNvcmRfY2hhciAoTGlzcF9P YmplY3QgYykNCiB7DQotICAvKiBxdWFpbC5lbCBiaW5kcyB0aGlzIHRvIGF2 b2lkIHJlY29yZGluZyBrZXlzIHR3aWNlLiAgKi8NCi0gIGlmIChpbmhpYml0 X3JlY29yZF9jaGFyKQ0KLSAgICByZXR1cm47DQotDQogICBpbnQgcmVjb3Jk ZWQgPSAwOw0KIA0KICAgaWYgKENPTlNQIChjKSAmJiAoRVEgKFhDQVIgKGMp LCBRaGVscF9lY2hvKSB8fCBFUSAoWENBUiAoYyksIFFtb3VzZV9tb3ZlbWVu dCkpKQ0KQEAgLTEyMzQzLDEzICsxMjMzOSw2IEBAIHN5bXNfb2Zfa2V5Ym9h cmQgKHZvaWQpDQogICAgICAgICAgICAgICAgVndoaWxlX25vX2lucHV0X2ln bm9yZV9ldmVudHMsDQogICAgICAgICAgICAgICAgZG9jOiAvKiBJZ25vcmVk IGV2ZW50cyBmcm9tIHdoaWxlLW5vLWlucHV0LiAgKi8pOw0KIA0KLSAgREVG VkFSX0JPT0wgKCJpbmhpYml0LS1yZWNvcmQtY2hhciIsDQotCSAgICAgICBp bmhpYml0X3JlY29yZF9jaGFyLA0KLQkgICAgICAgZG9jOiAvKiBJZiBub24t bmlsLCBkb24ndCByZWNvcmQgaW5wdXQgZXZlbnRzLg0KLVRoaXMgaW5oaWJp dHMgcmVjb3JkaW5nIGlucHV0IGV2ZW50cyBmb3IgdGhlIHB1cnBvc2VzIG9m IGtleWJvYXJkDQotbWFjcm9zLCBkcmliYmxlIGZpbGUsIGFuZCBgcmVjZW50 LWtleXMnLg0KLUludGVybmFsIHVzZSBvbmx5LiAgKi8pOw0KLQ0KICAgcGR1 bXBlcl9kb19ub3dfYW5kX2FmdGVyX2xvYWQgKHN5bXNfb2Zfa2V5Ym9hcmRf Zm9yX3BkdW1wZXIpOw0KIH0NCiANCkBAIC0xMjM4Myw4ICsxMjM3Miw2IEBA IHN5bXNfb2Zfa2V5Ym9hcmRfZm9yX3BkdW1wZXIgKHZvaWQpDQogICAvKiBD cmVhdGUgdGhlIGluaXRpYWwga2V5Ym9hcmQuICBRdCBtZWFucyAndW5zZXQn LiAgKi8NCiAgIGVhc3NlcnQgKGluaXRpYWxfa2JvYXJkID09IE5VTEwpOw0K ICAgaW5pdGlhbF9rYm9hcmQgPSBhbGxvY2F0ZV9rYm9hcmQgKFF0KTsNCi0N Ci0gIGluaGliaXRfcmVjb3JkX2NoYXIgPSBmYWxzZTsNCiB9DQogDQogdm9p ZA0KLS0gDQoyLjMwLjINCg0K --9j6sPOk5vg--