From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Gideon Stupp Newsgroups: gmane.emacs.devel Subject: [PATCH] Conkeror like hints for incremental search Date: Mon, 23 Jan 2012 19:52:04 +0200 Message-ID: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=14dae9399ce73960c704b735b056 X-Trace: dough.gmane.org 1327376685 11172 80.91.229.12 (24 Jan 2012 03:44:45 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Tue, 24 Jan 2012 03:44:45 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Jan 24 04:44:40 2012 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1RpXJI-0007Wu-5C for ged-emacs-devel@m.gmane.org; Tue, 24 Jan 2012 04:44:40 +0100 Original-Received: from localhost ([::1]:54542 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RpXJH-0004Ul-PF for ged-emacs-devel@m.gmane.org; Mon, 23 Jan 2012 22:44:39 -0500 Original-Received: from eggs.gnu.org ([140.186.70.92]:41304) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RpO3v-0005jb-S1 for emacs-devel@gnu.org; Mon, 23 Jan 2012 12:52:13 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RpO3q-0005TB-N7 for emacs-devel@gnu.org; Mon, 23 Jan 2012 12:52:11 -0500 Original-Received: from mail-tul01m020-f169.google.com ([209.85.214.169]:63679) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RpO3q-0005Sg-Gw for emacs-devel@gnu.org; Mon, 23 Jan 2012 12:52:06 -0500 Original-Received: by obbta7 with SMTP id ta7so4190803obb.0 for ; Mon, 23 Jan 2012 09:52:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; bh=dOBv/l+RtmRC55W7gp5AwjmUhW/m28Y+1mzZQz6Y7nM=; b=uiWGTHpPW405xqzFjSatXaM7zZHvFqfqXyXT2E5o/w9VY3q8zx+KR9kBxithUlPE62 ZGom94mTY+w8svSQZMUePLsXWF8G/z9ZtSwpX62Z0tSNRPtO/bs+tTLDQPITw8Z9tPCe a5evcfbddONXZ1fnMmlRAsttJ/7FJpfj3eBMY= Original-Received: by 10.182.144.68 with SMTP id sk4mr2347261obb.4.1327341124542; Mon, 23 Jan 2012 09:52:04 -0800 (PST) Original-Received: by 10.182.81.193 with HTTP; Mon, 23 Jan 2012 09:52:04 -0800 (PST) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 209.85.214.169 X-Mailman-Approved-At: Mon, 23 Jan 2012 22:44:37 -0500 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:147862 Archived-At: --14dae9399ce73960c704b735b056 Content-Type: text/plain; charset=ISO-8859-1 This patch adds Conkeror like hints to incremental-search's currently matched strings. This way it is possible to choose one of the highlighted possibilities without completing the search string (useful when using incremental search for navigation). The hints can be toggled on or off at any point during the search with isearch-toggle-hints (which is mapped to C-f by default). Note that to save keystrokes characters are used as hints instead of just numbers. Anyway, please review it and if there is any interest in it merge it. Thanks, Gideon. --14dae9399ce73960c704b735b056 Content-Type: text/x-patch; charset=US-ASCII; name="0001-Conkeror-like-hints-for-isearch-highlight.patch" Content-Disposition: attachment; filename="0001-Conkeror-like-hints-for-isearch-highlight.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: file0 RnJvbSBhYTEyYTNkNmFjN2UyZGFlOWUzZjI1MzM2YzRmMDFhMzUwNzkxM2I0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBnc3R1cHAgPGdzdHVwcEBkZWJpYW4uKG5vbmUpPgpEYXRlOiBT dW4sIDIyIEphbiAyMDEyIDE3OjIyOjQwICswMjAwClN1YmplY3Q6IFtQQVRDSF0gQ29ua2Vyb3Ig bGlrZSBoaW50cyBmb3IgaW5jcmVtZW50YWwgc2VhcmNoCgpUaGlzIHBhdGNoIGFkZHMgQ29ua2Vy b3IgbGlrZSBoaW50cyB0byBpbmNyZW1lbnRhbC1zZWFyY2gncyBjdXJyZW50bHkgbWF0Y2hlZCBz dHJpbmdzLgpUaGlzIHdheSBpdCBpcyBwb3NzaWJsZSB0byBjaG9vc2Ugb25lIG9mIHRoZSBoaWdo bGlnaHRlZCBwb3NzaWJpbGl0aWVzCndpdGhvdXQgY29tcGxldGluZyB0aGUgc2VhcmNoIHN0cmlu ZyAodXNlZnVsIHdoZW4gdXNpbmcgaW5jcmVtZW50YWwgc2VhcmNoIGZvciBuYXZpZ2F0aW9uKS4K VGhlIGhpbnRzIGNhbiBiZSB0b2dnbGVkIG9uIG9yIG9mZiBhdCBhbnkgcG9pbnQgZHVyaW5nIHRo ZSBzZWFyY2ggd2l0aCBpc2VhcmNoLXRvZ2dsZS1oaW50cyAod2hpY2ggaXMgbWFwcGVkIHRvIEMt ZiBieSBkZWZhdWx0KS4KVG8gc2F2ZSBrZXlzdHJva2VzIGNoYXJhY3RlcnMgYXJlIHVzZWQgYXMg aGludHMgaW5zdGVhZCBvZiBqdXN0IG51bWJlcnMuCgotLS0KIGxpc3AvaXNlYXJjaC5lbCAgICAg ICAgICB8ICAxMzggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0t CiBsaXNwL3JlcGxhY2UuZWwgICAgICAgICAgfCAgICAzICstCiBsaXNwL3RleHRtb2Rlcy9pc3Bl bGwuZWwgfCAgICAzICstCiAzIGZpbGVzIGNoYW5nZWQsIDEyMCBpbnNlcnRpb25zKCspLCAyNCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saXNwL2lzZWFyY2guZWwgYi9saXNwL2lzZWFyY2gu ZWwKaW5kZXggY2U3NTkxMS4uZmZiZjZkZSAxMDA2NDQKLS0tIGEvbGlzcC9pc2VhcmNoLmVsCisr KyBiL2xpc3AvaXNlYXJjaC5lbApAQCAtMzE1LDYgKzMxNSwxMSBAQCBBIHZhbHVlIG9mIG5pbCBt ZWFucyBoaWdobGlnaHQgYWxsIG1hdGNoZXMuIgogCQkgKGludGVnZXIgOnRhZyAiU29tZSIpKQog ICA6Z3JvdXAgJ2xhenktaGlnaGxpZ2h0KQogCisoZGVmY3VzdG9tIGxhenktaGlnaGxpZ2h0LWhp bnQtY2hhcnMgKHB1cmVjb3B5ICJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejEyMzQ1Njc4OTBB QkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiIpCisgICJTZXQgb2YgY2hhcmFjdGVycyB0byB1c2Ug Zm9yIGhpbnRzLiIKKyAgOnR5cGUgJ3N0cmluZworICA6Z3JvdXAgJ2xhenktaGlnaGxpZ2h0KQor CiAoZGVmZmFjZSBsYXp5LWhpZ2hsaWdodAogICAnKCgoKGNsYXNzIGNvbG9yKSAobWluLWNvbG9y cyA4OCkgKGJhY2tncm91bmQgbGlnaHQpKQogICAgICAoOmJhY2tncm91bmQgInBhbGV0dXJxdW9p c2UiKSkKQEAgLTMzMyw2ICszMzgsMjIgQEAgQSB2YWx1ZSBvZiBuaWwgbWVhbnMgaGlnaGxpZ2h0 IGFsbCBtYXRjaGVzLiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2xhenktaGln aGxpZ2h0LWZhY2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjIyLjEiKQogKGRl ZnZhciBsYXp5LWhpZ2hsaWdodC1mYWNlICdsYXp5LWhpZ2hsaWdodCkKKworKGRlZmZhY2UgbGF6 eS1oaWdobGlnaHQtaGludAorICAnKCgoKGNsYXNzIGNvbG9yKSAobWluLWNvbG9ycyA4OCkgKGJh Y2tncm91bmQgbGlnaHQpKQorICAgICAoOmJhY2tncm91bmQgInBhbGV0dXJxdW9pc2UiIDpib2xk IHQpKQorICAgICgoKGNsYXNzIGNvbG9yKSAobWluLWNvbG9ycyA4OCkgKGJhY2tncm91bmQgZGFy aykpCisgICAgICg6YmFja2dyb3VuZCAicGFsZXR1cnF1b2lzZTQiIDpib2xkIHQpKQorICAgICgo KGNsYXNzIGNvbG9yKSAobWluLWNvbG9ycyAxNikpCisgICAgICg6YmFja2dyb3VuZCAidHVycXVv aXNlMyIgOmJvbGQgdCkpCisgICAgKCgoY2xhc3MgY29sb3IpIChtaW4tY29sb3JzIDgpKQorICAg ICAoOmJhY2tncm91bmQgInR1cnF1b2lzZTMiIDpib2xkIHQpKQorICAgICh0ICg6dW5kZXJsaW5l IHQpKSkKKyAgIkZhY2UgZm9yIGxhenkgaGlnaGxpZ2h0aW5nIGhpbnRzLiIKKyAgOmdyb3VwICds YXp5LWhpZ2hsaWdodAorICA6Z3JvdXAgJ2Jhc2ljLWZhY2VzKQorCisoZGVmdmFyIGhpbnQtbWFw IChtYWtlLWhhc2gtdGFibGUgOnRlc3QgJ2VxdWFsKSkKIAwKIDs7IERlZmluZSBpc2VhcmNoIGhl bHAgbWFwLgogCkBAIC00OTksNiArNTIwLDcgQEAgVGhpcyBpcyBsaWtlIGBkZXNjcmliZS1iaW5k aW5ncycsIGJ1dCBkaXNwbGF5cyBvbmx5IElzZWFyY2gga2V5cy4iCiAgICAgOzsgU3VnZ2VzdCBz b21lIGFsdGVybmF0ZXMuLi4KICAgICAoZGVmaW5lLWtleSBtYXAgIlxNLWMiICdpc2VhcmNoLXRv Z2dsZS1jYXNlLWZvbGQpCiAgICAgKGRlZmluZS1rZXkgbWFwICJcTS1yIiAnaXNlYXJjaC10b2dn bGUtcmVnZXhwKQorICAgIChkZWZpbmUta2V5IG1hcCAiXEMtZiIgJ2lzZWFyY2gtdG9nZ2xlLWhp bnRzKQogICAgIChkZWZpbmUta2V5IG1hcCAiXE0tZSIgJ2lzZWFyY2gtZWRpdC1zdHJpbmcpCiAK ICAgICAoZGVmaW5lLWtleSBtYXAgIlxNLXNyIiAnaXNlYXJjaC10b2dnbGUtcmVnZXhwKQpAQCAt NTUzLDcgKzU3NSw3IEBAIEVhY2ggc2V0IGlzIGEgdmVjdG9yIG9mIHRoZSBmb3JtOgogICAiUmVj b3JkZWQgbWluaW11bS9tYXhpbWFsIHBvaW50IGZvciB0aGUgY3VycmVudCBzZWFyY2guIikKIChk ZWZ2YXIgaXNlYXJjaC1qdXN0LXN0YXJ0ZWQgbmlsKQogKGRlZnZhciBpc2VhcmNoLXN0YXJ0LWhz Y3JvbGwgMCkJOyBoc2Nyb2xsIHdoZW4gc3RhcnRpbmcgdGhlIHNlYXJjaC4KLQorKGRlZnZhciBp c2VhcmNoLWhpbnRzIG5pbCkKIDs7IGNhc2UtZm9sZC1zZWFyY2ggd2hpbGUgc2VhcmNoaW5nLgog OzsgICBlaXRoZXIgbmlsLCB0LCBvciAneWVzLiAgJ3llcyBtZWFucyB0aGUgc2FtZSBhcyB0IGV4 Y2VwdCB0aGF0IG1peGVkCiA7OyAgIGNhc2UgaW4gdGhlIHNlYXJjaCBzdHJpbmcgaXMgaWdub3Jl ZC4KQEAgLTY1Myw2ICs2NzUsNyBAQCBJZiB5b3UgdHJ5IHRvIGV4aXQgd2l0aCB0aGUgc2VhcmNo IHN0cmluZyBzdGlsbCBlbXB0eSwgaXQgaW52b2tlcwogVHlwZSBcXFtpc2VhcmNoLXRvZ2dsZS1j YXNlLWZvbGRdIHRvIHRvZ2dsZSBzZWFyY2ggY2FzZS1zZW5zaXRpdml0eS4KIFR5cGUgXFxbaXNl YXJjaC10b2dnbGUtcmVnZXhwXSB0byB0b2dnbGUgcmVndWxhci1leHByZXNzaW9uIG1vZGUuCiBU eXBlIFxcW2lzZWFyY2gtdG9nZ2xlLXdvcmRdIHRvIHRvZ2dsZSB3b3JkIG1vZGUuCitUeXBlIFxc W2lzZWFyY2gtdG9nZ2xlLWhpbnRzXSB0byB0b2dnbGUgaGludHMgb24vb2ZmLgogVHlwZSBcXFtp c2VhcmNoLWVkaXQtc3RyaW5nXSB0byBlZGl0IHRoZSBzZWFyY2ggc3RyaW5nIGluIHRoZSBtaW5p YnVmZmVyLgogCiBBbHNvIHN1cHBvcnRlZCBpcyBhIHNlYXJjaCByaW5nIG9mIHRoZSBwcmV2aW91 cyAxNiBzZWFyY2ggc3RyaW5ncy4KQEAgLTc2Nyw2ICs3OTAsNyBAQCBJdCBpcyBjYWxsZWQgYnkg dGhlIGZ1bmN0aW9uIGBpc2VhcmNoLWZvcndhcmQnIGFuZCBvdGhlciByZWxhdGVkIGZ1bmN0aW9u cy4iCiAJaXNlYXJjaC1hZGp1c3RlZCBuaWwKIAlpc2VhcmNoLXlhbmstZmxhZyBuaWwKIAlpc2Vh cmNoLWVycm9yIG5pbAorCWlzZWFyY2gtaGludHMgbmlsCiAJaXNlYXJjaC1zbG93LXRlcm1pbmFs LW1vZGUgKGFuZCAoPD0gYmF1ZC1yYXRlIHNlYXJjaC1zbG93LXNwZWVkKQogCQkJCQkoPiAod2lu ZG93LWhlaWdodCkKIAkJCQkJICAgKCogNApAQCAtOTI3LDcgKzk1MSw2IEBAIE5PUFVTSCBpcyB0 IGFuZCBFRElUIGlzIHQuIgogICAgIChraWxsLWxvY2FsLXZhcmlhYmxlICdpbnB1dC1tZXRob2Qt ZnVuY3Rpb24pKQogCiAgIChmb3JjZS1tb2RlLWxpbmUtdXBkYXRlKQotCiAgIDs7IElmIHdlIGVu ZGVkIGluIHRoZSBtaWRkbGUgb2Ygc29tZSBpbnRhbmdpYmxlIHRleHQsCiAgIDs7IG1vdmUgdG8g dGhlIGZ1cnRoZXIgZW5kIG9mIHRoYXQgaW50YW5naWJsZSB0ZXh0LgogICAobGV0ICgoYWZ0ZXIg KGlmIChlb2JwKSBuaWwKQEAgLTEzODAsNiArMTQwMywxMyBAQCBVc2UgYGlzZWFyY2gtZXhpdCcg dG8gcXVpdCB3aXRob3V0IHNpZ25hbGluZy4iCiAgIChzaXQtZm9yIDEpCiAgIChpc2VhcmNoLXVw ZGF0ZSkpCiAKKyhkZWZ1biBpc2VhcmNoLXRvZ2dsZS1oaW50cyAoKQorICAiVG9nZ2xlIGhpbnRz IG9uIG9yIG9mZi4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKHNldHEgaXNlYXJjaC1oaW50cyAobm90 IGlzZWFyY2gtaGludHMpKQorICAoc2V0cSBpc2VhcmNoLWVycm9yIG5pbCkKKyAgKGlzZWFyY2gt dXBkYXRlKSkKKwogKGRlZnVuIGlzZWFyY2gtcXVlcnktcmVwbGFjZSAoJm9wdGlvbmFsIGRlbGlt aXRlZCByZWdleHAtZmxhZykKICAgIlN0YXJ0IGBxdWVyeS1yZXBsYWNlJyB3aXRoIHN0cmluZyB0 byByZXBsYWNlIGZyb20gbGFzdCBzZWFyY2ggc3RyaW5nLgogVGhlIGFyZyBERUxJTUlURUQgKHBy ZWZpeCBhcmcgaWYgaW50ZXJhY3RpdmUpLCBpZiBub24tbmlsLCBtZWFucyByZXBsYWNlCkBAIC0y MDc4LDkgKzIxMDgsMjQgQEAgSXNlYXJjaCBtb2RlLiIKICAgICAgKGlzZWFyY2gtdGV4dC1jaGFy LWRlc2NyaXB0aW9uIGNoYXIpKSkpCiAKIChkZWZ1biBpc2VhcmNoLXByb2Nlc3Mtc2VhcmNoLXN0 cmluZyAoc3RyaW5nIG1lc3NhZ2UpCi0gIChzZXRxIGlzZWFyY2gtc3RyaW5nIChjb25jYXQgaXNl YXJjaC1zdHJpbmcgc3RyaW5nKQotCWlzZWFyY2gtbWVzc2FnZSAoY29uY2F0IGlzZWFyY2gtbWVz c2FnZSBtZXNzYWdlKSkKLSAgKGlzZWFyY2gtc2VhcmNoLWFuZC11cGRhdGUpKQorICAobGV0KiAo KGhpbnQtcG9zaXRpb24gKGdldGhhc2ggc3RyaW5nIGhpbnQtbWFwKSkpCisgICAgKGlmIGhpbnQt cG9zaXRpb24KKwkocHJvZ24KKwkgIChzZXRxIGlzZWFyY2gtc3VjY2VzcyB0CisJCWlzZWFyY2gt ZXJyb3IgbmlsKQorCSAgKGlmIGlzZWFyY2gtZm9yd2FyZAorCSAgICAgIChwcm9nbgorCQkoc2V0 cSBpc2VhcmNoLW90aGVyLWVuZCAoY2FyIGhpbnQtcG9zaXRpb24pKQorCQkoZ290by1jaGFyIChj YWRyIGhpbnQtcG9zaXRpb24pKSkKKwkgICAgKHByb2duCisJICAgICAgKHNldHEgaXNlYXJjaC1v dGhlci1lbmQgKGNhZHIgaGludC1wb3NpdGlvbikpCisJCShnb3RvLWNoYXIgKGNhciBoaW50LXBv c2l0aW9uKSkpKQorCSAgKGlzZWFyY2gtZG9uZSkKKwkgIChpc2VhcmNoLWNsZWFuLW92ZXJsYXlz KSkKKyAgICAgIChwcm9nbgorCShzZXRxIGlzZWFyY2gtc3RyaW5nIChjb25jYXQgaXNlYXJjaC1z dHJpbmcgc3RyaW5nKQorCSAgICBpc2VhcmNoLW1lc3NhZ2UgKGNvbmNhdCBpc2VhcmNoLW1lc3Nh Z2UgbWVzc2FnZSkpCisJKGlzZWFyY2gtc2VhcmNoLWFuZC11cGRhdGUpKSkpKQogCiAMCiA7OyBT ZWFyY2ggUmluZwpAQCAtMjYyMyw2ICsyNjY4LDcgQEAgc2luY2UgdGhleSBoYXZlIHNwZWNpYWwg bWVhbmluZyBpbiBhIHJlZ2V4cC4iCiAoZGVmdmFyIGlzZWFyY2gtbGF6eS1oaWdobGlnaHQtd2lu ZG93LWVuZCBuaWwpCiAoZGVmdmFyIGlzZWFyY2gtbGF6eS1oaWdobGlnaHQtY2FzZS1mb2xkLXNl YXJjaCBuaWwpCiAoZGVmdmFyIGlzZWFyY2gtbGF6eS1oaWdobGlnaHQtcmVnZXhwIG5pbCkKKyhk ZWZ2YXIgaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC1oaW50cyBuaWwpCiAoZGVmdmFyIGlzZWFyY2gt bGF6eS1oaWdobGlnaHQtc3BhY2UtcmVnZXhwIG5pbCkKIChkZWZ2YXIgaXNlYXJjaC1sYXp5LWhp Z2hsaWdodC13b3JkIG5pbCkKIChkZWZ2YXIgaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC1mb3J3YXJk IG5pbCkKQEAgLTI2MzksNiArMjY4NSw3IEBAIGlzIG5pbC4gIFRoaXMgZnVuY3Rpb24gaXMgY2Fs bGVkIHdoZW4gZXhpdGluZyBhbiBpbmNyZW1lbnRhbCBzZWFyY2ggaWYKICAgICAgICAgKGRlbGV0 ZS1vdmVybGF5IChjYXIgaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC1vdmVybGF5cykpCiAgICAgICAg IChzZXRxIGlzZWFyY2gtbGF6eS1oaWdobGlnaHQtb3ZlcmxheXMKICAgICAgICAgICAgICAgKGNk ciBpc2VhcmNoLWxhenktaGlnaGxpZ2h0LW92ZXJsYXlzKSkpKQorICAoY2xyaGFzaCBoaW50LW1h cCkKICAgKHdoZW4gaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC10aW1lcgogICAgIChjYW5jZWwtdGlt ZXIgaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC10aW1lcikKICAgICAoc2V0cSBpc2VhcmNoLWxhenkt aGlnaGxpZ2h0LXRpbWVyIG5pbCkpKQpAQCAtMjY2NSw2ICsyNzEyLDggQEAgYnkgb3RoZXIgRW1h Y3MgZmVhdHVyZXMuIgogCQkJICBpc2VhcmNoLXJlZ2V4cCkpCiAJCSAobm90IChlcSBpc2VhcmNo LWxhenktaGlnaGxpZ2h0LXdvcmQKIAkJCSAgaXNlYXJjaC13b3JkKSkKKwkJIChub3QgKGVxIGlz ZWFyY2gtbGF6eS1oaWdobGlnaHQtaGludHMKKwkJCSAgaXNlYXJjaC1oaW50cykpCiAgICAgICAg ICAgICAgICAgIChub3QgKD0gKHdpbmRvdy1zdGFydCkKICAgICAgICAgICAgICAgICAgICAgICAg ICBpc2VhcmNoLWxhenktaGlnaGxpZ2h0LXdpbmRvdy1zdGFydCkpCiAgICAgICAgICAgICAgICAg IChub3QgKD0gKHdpbmRvdy1lbmQpICAgOyBXaW5kb3cgbWF5IGhhdmUgYmVlbiBzcGxpdC9qb2lu ZWQuCkBAIC0yNjkxLDYgKzI3NDAsNyBAQCBieSBvdGhlciBFbWFjcyBmZWF0dXJlcy4iCiAJICBp c2VhcmNoLWxhenktaGlnaGxpZ2h0LWxhc3Qtc3RyaW5nICBpc2VhcmNoLXN0cmluZwogCSAgaXNl YXJjaC1sYXp5LWhpZ2hsaWdodC1jYXNlLWZvbGQtc2VhcmNoIGlzZWFyY2gtY2FzZS1mb2xkLXNl YXJjaAogCSAgaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC1yZWdleHAgICAgICAgaXNlYXJjaC1yZWdl eHAKKwkgIGlzZWFyY2gtbGF6eS1oaWdobGlnaHQtaGludHMgICAgICAgICBpc2VhcmNoLWhpbnRz CiAJICBpc2VhcmNoLWxhenktaGlnaGxpZ2h0LXNwYWNlLXJlZ2V4cCBzZWFyY2gtd2hpdGVzcGFj ZS1yZWdleHAKIAkgIGlzZWFyY2gtbGF6eS1oaWdobGlnaHQtd29yZCAgICAgICAgIGlzZWFyY2gt d29yZAogCSAgaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC1mb3J3YXJkICAgICAgaXNlYXJjaC1mb3J3 YXJkKQpAQCAtMjczNSwxMCArMjc4NSw2NSBAQCBBdHRlbXB0IHRvIGRvIHRoZSBzZWFyY2ggZXhh Y3RseSB0aGUgd2F5IHRoZSBwZW5kaW5nIElzZWFyY2ggd291bGQuIgogCXN1Y2Nlc3MpCiAgICAg KGVycm9yIG5pbCkpKQogCisoZGVmdmFyIGlzZWFyY2gtbGF6eS1oaWdobGlnaHQtZGVmZXJyZWQt b3ZlcmxheXMgIk92ZXJsYXkgZGVmaW5pdGlvbnMgY2FjaGVkIHVudGlsIHByZXNlbnRlZCIpCisK KyhkZWZ1biBpc2VhcmNoLWxhenktaGlnaGxpZ2h0LW92ZXJsYXktdGhyb3R0bGVkLXNldHVwICgp CisiU2V0dXAgdGhlIG92ZXJsYXlzIGFuZCByZWdpc3RlciBoaW50IGFjdGlvbiIKKyhsZXQgKCht YXggbGF6eS1oaWdobGlnaHQtbWF4LWF0LWEtdGltZSkKKyAgICAgIChsb29waW5nIHQpKQorICAo d2hpbGUgKGFuZCBsb29waW5nIGlzZWFyY2gtbGF6eS1oaWdobGlnaHQtZGVmZXJyZWQtb3Zlcmxh eXMpCisgICAgKGxldCogKChtIChwb3AgaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC1kZWZlcnJlZC1v dmVybGF5cykpCisJICAgKG1iIChudGggMCBtKSkKKwkgICAobWUgKG50aCAxIG0pKQorCSAgICho aW50IChudGggMiBtKSkKKwkgICAob3YgKG1ha2Utb3ZlcmxheSBtYiBtZSkpKQorICAgICAgKGlm IGhpbnQKKwkgIChwcm9nbiAoc2V0LXRleHQtcHJvcGVydGllcyAwIDEgJyhmYWNlIGxhenktaGln aGxpZ2h0LWhpbnQpIGhpbnQpCisJCSAob3ZlcmxheS1wdXQgb3YgJ2JlZm9yZS1zdHJpbmcgaGlu dCkKKwkJIChwdXRoYXNoIGhpbnQgKGxpc3QgbWIgbWUpIGhpbnQtbWFwKQorCQkgKSkKKyAgICAg IChwdXNoIG92IGlzZWFyY2gtbGF6eS1oaWdobGlnaHQtb3ZlcmxheXMpCisgICAgICA7OyAxMDAw IGlzIGhpZ2hlciB0aGFuIGVkaWZmJ3MgMTAwKywKKyAgICAgIDs7IGJ1dCBsb3dlciB0aGFuIGlz ZWFyY2ggbWFpbiBvdmVybGF5J3MgMTAwMQorICAgICAgKG92ZXJsYXktcHV0IG92ICdwcmlvcml0 eSAxMDAwKQorICAgICAgKG92ZXJsYXktcHV0IG92ICdmYWNlIGxhenktaGlnaGxpZ2h0LWZhY2Up CisgICAgICAob3ZlcmxheS1wdXQgb3YgJ3dpbmRvdyAoc2VsZWN0ZWQtd2luZG93KSkKKworICAg ICAgKHdoZW4gbWF4CisJKHNldHEgbWF4ICgxLSBtYXgpKQorCShpZiAoPD0gbWF4IDApCisJICAg IChzZXRxIGxvb3BpbmcgbmlsKSkpKSkKKworICA7OyBTdGlsbCBtb3JlIHdvcmsgdG8gZG8KKyAg KGlmIGlzZWFyY2gtbGF6eS1oaWdobGlnaHQtZGVmZXJyZWQtb3ZlcmxheXMKKyAgICAgIChzZXRx IGlzZWFyY2gtbGF6eS1oaWdobGlnaHQtdGltZXIKKwkgICAgKHJ1bi1hdC10aW1lIGxhenktaGln aGxpZ2h0LWludGVydmFsIG5pbAorCQkJICdpc2VhcmNoLWxhenktaGlnaGxpZ2h0LW92ZXJsYXkt dGhyb3R0bGVkLXNldHVwKSkpKSkKKworKGRlZnVuIGlzZWFyY2gtbGF6eS1oaWdobGlnaHQtYWRk LWhpbnRzIChpbmxpc3QpCisgIChsZXQgKChoaW50LWNoYXJzIChtYXBjYXIgJ3N0cmluZyAoYXBw ZW5kIGxhenktaGlnaGxpZ2h0LWhpbnQtY2hhcnMgbmlsKSkpCisJKGdldC1mb2xsb3dpbmctY2hh cnMtZnVuYyAoZnVuY3Rpb24gKGxhbWJkYSAoYXJnKSAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9w ZXJ0aWVzIChudGggMSBhcmcpICgxKyAobnRoIDEgYXJnKSkpKSkpCisJb3V0IG1iIG1lIHMgdG1w IG5leHQtaGludCkKKyAgICAoaWYgIGlzZWFyY2gtbGF6eS1oaWdobGlnaHQtaGludHMKKwkocHJv Z24KKwkgIDs7IEdhdGhlciBhbGwgdGhlIGNoYXJzIGltbWVkaWF0ZWx5IGFmdGVyIG91ciBvdmVy bGF5cyBhbmQgYXZvaWQgdXNpbmcgdGhlbQorCSAgKHNldHEgdG1wIChkZWxldGUtZHVwcyAobWFw Y2FyIGdldC1mb2xsb3dpbmctY2hhcnMtZnVuYyBpbmxpc3QpKSkKKwkgIDs7IEZpbHRlciBvdXQg dGhlIGNoYXJzIHdlIGZvdW5kIGZyb20gaGludC1jaGFycworCSAgKHNldHEgaGludC1jaGFycyAo ZGVscSBuaWwgKG1hcGNhciAnKGxhbWJkYSAoYykgKGlmIChub3QgKG1lbWJlciBjIHRtcCkpIGMp KSBoaW50LWNoYXJzKSkpCisJICAoZG9saXN0IChtIGlubGlzdCBuaWwpCisJICAgIChzZXRxIG1i IChjYXIgbSkpCisJICAgIChzZXRxIG1lIChjYWRyIG0pKQorCSAgICAoc2V0cSBzIG5pbCkKKwkg ICAgKHNldHEgbmV4dC1oaW50IChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMgbWUgKDEr IG1lKSkpCisJICAgIChzZXRxIHMgKHBvcCBoaW50LWNoYXJzKSkKKwkgICAgKHB1c2ggKGxpc3Qg bWIgbWUgcykgb3V0KSkpCisgICAgICAoc2V0cSBvdXQgaW5saXN0KSkKKyAgICBvdXQpKQorCiAo ZGVmdW4gaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC11cGRhdGUgKCkKICAgIlVwZGF0ZSBoaWdobGln aHRpbmcgb2Ygb3RoZXIgbWF0Y2hlcyBmb3IgY3VycmVudCBzZWFyY2guIgotICAobGV0ICgobWF4 IGxhenktaGlnaGxpZ2h0LW1heC1hdC1hLXRpbWUpCi0gICAgICAgIChsb29waW5nIHQpCisgIChs ZXQgKChsb29waW5nIHQpCisJKGRlZmVycmVkLW92ZXJsYXlzIG5pbCkKICAgICAgICAgbm9tb3Jl KQogICAgICh3aXRoLWxvY2FsLXF1aXQKICAgICAgIChzYXZlLXNlbGVjdGVkLXdpbmRvdwpAQCAt Mjc1MiwxMCArMjg1Nyw2IEBAIEF0dGVtcHQgdG8gZG8gdGhlIHNlYXJjaCBleGFjdGx5IHRoZSB3 YXkgdGhlIHBlbmRpbmcgSXNlYXJjaCB3b3VsZC4iCiAJCQkgaXNlYXJjaC1sYXp5LWhpZ2hsaWdo dC1zdGFydCkpCiAJICAgICh3aGlsZSBsb29waW5nCiAJICAgICAgKGxldCAoKGZvdW5kIChpc2Vh cmNoLWxhenktaGlnaGxpZ2h0LXNlYXJjaCkpKQotCQkod2hlbiBtYXgKLQkJICAoc2V0cSBtYXgg KDEtIG1heCkpCi0JCSAgKGlmICg8PSBtYXggMCkKLQkJICAgICAgKHNldHEgbG9vcGluZyBuaWwp KSkKIAkJKGlmIGZvdW5kCiAJCSAgICAobGV0ICgobWIgKG1hdGNoLWJlZ2lubmluZyAwKSkKIAkJ CSAgKG1lIChtYXRjaC1lbmQgMCkpKQpAQCAtMjc3MywxMyArMjg3NCw3IEBAIEF0dGVtcHQgdG8g ZG8gdGhlIHNlYXJjaCBleGFjdGx5IHRoZSB3YXkgdGhlIHBlbmRpbmcgSXNlYXJjaCB3b3VsZC4i CiAJCQkgICAgICAoZm9yd2FyZC1jaGFyIC0xKSkpCiAKIAkJCTs7IG5vbi16ZXJvLWxlbmd0aCBt YXRjaAotCQkJKGxldCAoKG92IChtYWtlLW92ZXJsYXkgbWIgbWUpKSkKLQkJCSAgKHB1c2ggb3Yg aXNlYXJjaC1sYXp5LWhpZ2hsaWdodC1vdmVybGF5cykKLQkJCSAgOzsgMTAwMCBpcyBoaWdoZXIg dGhhbiBlZGlmZidzIDEwMCssCi0JCQkgIDs7IGJ1dCBsb3dlciB0aGFuIGlzZWFyY2ggbWFpbiBv dmVybGF5J3MgMTAwMQotCQkJICAob3ZlcmxheS1wdXQgb3YgJ3ByaW9yaXR5IDEwMDApCi0JCQkg IChvdmVybGF5LXB1dCBvdiAnZmFjZSBsYXp5LWhpZ2hsaWdodC1mYWNlKQotCQkJICAob3Zlcmxh eS1wdXQgb3YgJ3dpbmRvdyAoc2VsZWN0ZWQtd2luZG93KSkpKQorCQkJKHB1c2ggKGxpc3QgbWIg bWUpIGRlZmVycmVkLW92ZXJsYXlzKSkKIAkJICAgICAgKGlmIGlzZWFyY2gtbGF6eS1oaWdobGln aHQtZm9yd2FyZAogCQkJICAoc2V0cSBpc2VhcmNoLWxhenktaGlnaGxpZ2h0LWVuZCAocG9pbnQp KQogCQkJKHNldHEgaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC1zdGFydCAocG9pbnQpKSkpKQpAQCAt Mjc5OCwxMCArMjg5Myw5IEBAIEF0dGVtcHQgdG8gZG8gdGhlIHNlYXJjaCBleGFjdGx5IHRoZSB3 YXkgdGhlIHBlbmRpbmcgSXNlYXJjaCB3b3VsZC4iCiAJCQkoc2V0cSBpc2VhcmNoLWxhenktaGln aGxpZ2h0LXN0YXJ0ICh3aW5kb3ctZW5kKSkKIAkJCShnb3RvLWNoYXIgKG1pbiAob3IgaXNlYXJj aC1sYXp5LWhpZ2hsaWdodC1lbmQtbGltaXQgKHBvaW50LW1heCkpCiAJCQkJCSh3aW5kb3ctZW5k KSkpKSkpKSkKLQkgICAgKHVubGVzcyBub21vcmUKLQkgICAgICAoc2V0cSBpc2VhcmNoLWxhenkt aGlnaGxpZ2h0LXRpbWVyCi0JCSAgICAocnVuLWF0LXRpbWUgbGF6eS1oaWdobGlnaHQtaW50ZXJ2 YWwgbmlsCi0JCQkJICdpc2VhcmNoLWxhenktaGlnaGxpZ2h0LXVwZGF0ZSkpKSkpKSkpKQorCSAg ICAoc2V0cSBpc2VhcmNoLWxhenktaGlnaGxpZ2h0LWRlZmVycmVkLW92ZXJsYXlzCisJCSAgICAg IChpc2VhcmNoLWxhenktaGlnaGxpZ2h0LWFkZC1oaW50cyAocmV2ZXJzZSBkZWZlcnJlZC1vdmVy bGF5cykpKQorCSAgICAoaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC1vdmVybGF5LXRocm90dGxlZC1z ZXR1cCkpKSkpKSkKIAogKGRlZnVuIGlzZWFyY2gtcmVzdW1lIChzdHJpbmcgcmVnZXhwIHdvcmQg Zm9yd2FyZCBtZXNzYWdlIGNhc2UtZm9sZCkKICAgIlJlc3VtZSBhbiBpbmNyZW1lbnRhbCBzZWFy Y2guCmRpZmYgLS1naXQgYS9saXNwL3JlcGxhY2UuZWwgYi9saXNwL3JlcGxhY2UuZWwKaW5kZXgg Y2I2ZDdkMi4uNjEwYzk4NCAxMDA2NDQKLS0tIGEvbGlzcC9yZXBsYWNlLmVsCisrKyBiL2xpc3Av cmVwbGFjZS5lbApAQCAtMjExNiw3ICsyMTE2LDggQEAgbWFrZSwgb3IgdGhlIHVzZXIgZGlkbid0 IGNhbmNlbCB0aGUgY2FsbC4iCiAJICAgIChzZWFyY2gtd2hpdGVzcGFjZS1yZWdleHAgbmlsKQog CSAgICAoaXNlYXJjaC1jYXNlLWZvbGQtc2VhcmNoIGNhc2UtZm9sZCkKIAkgICAgKGlzZWFyY2gt Zm9yd2FyZCB0KQotCSAgICAoaXNlYXJjaC1lcnJvciBuaWwpKQorCSAgICAoaXNlYXJjaC1lcnJv ciBuaWwpCisJICAgIChpc2VhcmNoLWhpbnRzIG5pbCkpCiAJOzsgU2V0IGlzZWFyY2gtd29yZCB0 byBuaWwgYmVjYXVzZSB3b3JkLXJlcGxhY2UgaXMgcmVnZXhwLWJhc2VkLAogCTs7IHNvIGBpc2Vh cmNoLXNlYXJjaC1mdW4nIHNob3VsZCBub3QgdXNlIGB3b3JkLXNlYXJjaC1mb3J3YXJkJy4KIAko aWYgKGFuZCBpc2VhcmNoLXdvcmQgaXNlYXJjaC1yZWdleHApIChzZXRxIGlzZWFyY2gtd29yZCBu aWwpKQpkaWZmIC0tZ2l0IGEvbGlzcC90ZXh0bW9kZXMvaXNwZWxsLmVsIGIvbGlzcC90ZXh0bW9k ZXMvaXNwZWxsLmVsCmluZGV4IGMxZmNiNjAuLmU4MmFkZmQgMTAwNjQ0Ci0tLSBhL2xpc3AvdGV4 dG1vZGVzL2lzcGVsbC5lbAorKysgYi9saXNwL3RleHRtb2Rlcy9pc3BlbGwuZWwKQEAgLTI0NTUs NyArMjQ1NSw4IEBAIFRoZSB2YXJpYWJsZSBgaXNwZWxsLWhpZ2hsaWdodC1mYWNlJyBzZWxlY3Rz IHRoZSBmYWNlIHRvIHVzZSBmb3IgaGlnaGxpZ2h0aW5nLiIKIAkJICAocmVnZXhwLXF1b3RlIChi dWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMgc3RhcnQgZW5kKSkKIAkJICAiXFxiIikpCiAJ CShpc2VhcmNoLXJlZ2V4cCB0KQotCQkoaXNlYXJjaC1jYXNlLWZvbGQtc2VhcmNoIG5pbCkpCisJ CShpc2VhcmNoLWNhc2UtZm9sZC1zZWFyY2ggbmlsKQorCQkoaXNlYXJjaC1oaW50cyBuaWwpKQog CSAgICAoaXNlYXJjaC1sYXp5LWhpZ2hsaWdodC1uZXctbG9vcAogCSAgICAgKGlmIChib3VuZHAg J3JlZy1zdGFydCkgcmVnLXN0YXJ0KQogCSAgICAgKGlmIChib3VuZHAgJ3JlZy1lbmQpICAgcmVn LWVuZCkpKQotLSAKMS43LjIuNQoK --14dae9399ce73960c704b735b056--