From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Barry OReilly Newsgroups: gmane.emacs.bugs Subject: bug#16818: Acknowledgement (Undo in region after markers in undo history relocated) Date: Sun, 23 Mar 2014 18:49:32 -0400 Message-ID: References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=089e013d0dc0ae3ddc04f54dee75 X-Trace: ger.gmane.org 1395615012 25287 80.91.229.3 (23 Mar 2014 22:50:12 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 23 Mar 2014 22:50:12 +0000 (UTC) Cc: 16818@debbugs.gnu.org To: Stefan Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Mar 23 23:50:21 2014 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1WRrDh-0001yq-6o for geb-bug-gnu-emacs@m.gmane.org; Sun, 23 Mar 2014 23:50:21 +0100 Original-Received: from localhost ([::1]:33726 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WRrDg-0004mA-Rb for geb-bug-gnu-emacs@m.gmane.org; Sun, 23 Mar 2014 18:50:20 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:52689) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WRrDZ-0004g3-CJ for bug-gnu-emacs@gnu.org; Sun, 23 Mar 2014 18:50:17 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WRrDP-0002S6-OB for bug-gnu-emacs@gnu.org; Sun, 23 Mar 2014 18:50:13 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:45181) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WRrDP-0002QZ-Ke for bug-gnu-emacs@gnu.org; Sun, 23 Mar 2014 18:50:03 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1WRrDO-0005Aw-BZ for bug-gnu-emacs@gnu.org; Sun, 23 Mar 2014 18:50:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Barry OReilly Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 23 Mar 2014 22:50:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 16818 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 16818-submit@debbugs.gnu.org id=B16818.139561498219852 (code B ref 16818); Sun, 23 Mar 2014 22:50:02 +0000 Original-Received: (at 16818) by debbugs.gnu.org; 23 Mar 2014 22:49:42 +0000 Original-Received: from localhost ([127.0.0.1]:46363 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WRrD2-0005A6-FH for submit@debbugs.gnu.org; Sun, 23 Mar 2014 18:49:42 -0400 Original-Received: from mail-oa0-f50.google.com ([209.85.219.50]:44516) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WRrCv-00059q-Ak for 16818@debbugs.gnu.org; Sun, 23 Mar 2014 18:49:35 -0400 Original-Received: by mail-oa0-f50.google.com with SMTP id i7so4956608oag.23 for <16818@debbugs.gnu.org>; Sun, 23 Mar 2014 15:49:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=jTtj1HBtSl4GZ/QU+xEGmNoiInpVXWoUdPHjPARhfCo=; b=B02XqLEoCn15GzYq+326nNFXNYFjyaDS6lnYWpJUVjGRvWJFZ68eB5k3Osem1jvRyo LQG8tI8N6t2EnsLdjh0xW37lkC08fTEtPSRnQVYa88Yv7d+DW0vD26OkCcwHXOZAzK8Y UdMJJDLgclQ1WABNr9W+wlY9IFVhG/DxtG1QIR0jUv0eBrSzuBajuM3ojCyimaythGEV fbk9zxsxOpFFLzSOv4BMCg1VCG+I6uImXlHTrMYXLjwQ7crl2e3e5Ui01g+iXMe1KY+B a2QkYtYarrAJMlSw2p6JMtTDtJmuhwHxew3/QzKrVKzJgCglvo8BVi53JhG0qonnrp2K SK9g== X-Received: by 10.182.153.226 with SMTP id vj2mr23842068obb.26.1395614972454; Sun, 23 Mar 2014 15:49:32 -0700 (PDT) Original-Received: by 10.76.6.44 with HTTP; Sun, 23 Mar 2014 15:49:32 -0700 (PDT) In-Reply-To: X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.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-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:87262 Archived-At: --089e013d0dc0ae3ddc04f54dee75 Content-Type: multipart/alternative; boundary=089e013d0dc0ae3dd804f54dee73 --089e013d0dc0ae3dd804f54dee73 Content-Type: text/plain; charset=ISO-8859-1 >> Value: (nil >> (#(" " 0 3 >> (fontified t)) >> . 12) >> (# . -2) >> (# . -2) >> (# . -3) >> (# . -2) >> (t 20985 26927 0 0)) > Oh, right. That would be good as well. At least as good as option 1. > So I'd go with whichever of option 1 or 2 is simpler. Attached is the new patch to solve this, implementing option 2 and incorporating your feedback. --089e013d0dc0ae3dd804f54dee73 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
>>=A0=A0 Value: (nil
>>=A0=A0=A0 (#("= =A0=A0 " 0 3
>>=A0=A0=A0=A0=A0=A0 (fontified t))
>>= =A0=A0=A0=A0 . 12)
>>=A0=A0=A0 (#<marker at 12 in foo.py> . = -2)
>>=A0=A0=A0 (#<marker at 12 in foo.py> . -2)
>>=A0=A0=A0 (#<marker in no buffer> . -3)
>>=A0=A0=A0 = (#<marker in no buffer> . -2)
>>=A0=A0=A0 (t 20985 26927 0 0= ))

> Oh, right. That would be good as well. At least as good as o= ption 1.
> So I'd go with whichever of option 1 or 2 is simpler.<= br>
Attached is the new patch to solve this, implementing option 2 and
i= ncorporating your feedback.

--089e013d0dc0ae3dd804f54dee73-- --089e013d0dc0ae3ddc04f54dee75 Content-Type: text/plain; charset=US-ASCII; name="undo-marker-record.diff" Content-Disposition: attachment; filename="undo-marker-record.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ht4x3esd0 ZGlmZiAtLWdpdCBhL2RvYy9saXNwcmVmL0NoYW5nZUxvZyBiL2RvYy9saXNwcmVmL0NoYW5nZUxv ZwppbmRleCA2ZmZkODBiLi43NGE3NTZlIDEwMDY0NAotLS0gYS9kb2MvbGlzcHJlZi9DaGFuZ2VM b2cKKysrIGIvZG9jL2xpc3ByZWYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTAgQEAKKzIwMTQtMDMt MTMgIEJhcnJ5IE8nUmVpbGx5ICA8Z3VuZGFldGlhcG9AZ21haWwuY29tPgorCSogbWFya2Vycy50 ZXhpIChNb3ZpbmcgTWFya2VyIFBvc2l0aW9ucyk6IFRoZSAyMDE0LTAzLTAyIGRvYworCWNoYW5n ZSBtZW50aW9uaW5nIHVuZG8ncyBpbmFiaWxpdHkgdG8gaGFuZGxlIHJlbG9jYXRlZCBtYXJrZXJz IG5vCisJbG9uZ2VyIGFwcGxpZXMuICBTZWUgYnVnIzE2ODE4LgorCSogdGV4dC50ZXhpIChVbmRv KTogRXhwYW5kIGRvY3VtZW50YXRpb24gb2YgKFRFWFQgLiBQT1MpIGFuZAorCShNQVJLRVIgLiBB REpVU1RNRU5UKSB1bmRvIGVsZW1lbnRzLgorCiAyMDE0LTAzLTA5ICBNYXJ0aW4gUnVkYWxpY3Mg IDxydWRhbGljc0BnbXguYXQ+CiAKIAkqIGVsaXNwLnRleGkgKFRvcCk6IFJlbmFtZSBzZWN0aW9u ICJXaWR0aCIgdG8gIlNpemUgb2YgRGlzcGxheWVkCmRpZmYgLS1naXQgYS9kb2MvbGlzcHJlZi9t YXJrZXJzLnRleGkgYi9kb2MvbGlzcHJlZi9tYXJrZXJzLnRleGkKaW5kZXggMTkzODZkNi4uNTFi ODdhYiAxMDA2NDQKLS0tIGEvZG9jL2xpc3ByZWYvbWFya2Vycy50ZXhpCisrKyBiL2RvYy9saXNw cmVmL21hcmtlcnMudGV4aQpAQCAtMzQ0LDEyICszNDQsMTAgQEAgc3BlY2lmeSB0aGUgaW5zZXJ0 aW9uIHR5cGUsIGNyZWF0ZSB0aGVtIHdpdGggaW5zZXJ0aW9uIHR5cGUKIEBzZWN0aW9uIE1vdmlu ZyBNYXJrZXIgUG9zaXRpb25zCiAKICAgVGhpcyBzZWN0aW9uIGRlc2NyaWJlcyBob3cgdG8gY2hh bmdlIHRoZSBwb3NpdGlvbiBvZiBhbiBleGlzdGluZwotbWFya2VyLiAgV2hlbiB5b3UgZG8gdGhp cywgYmUgc3VyZSB5b3Uga25vdyBob3cgdGhlIG1hcmtlciBpcyB1c2VkCi1vdXRzaWRlIG9mIHlv dXIgcHJvZ3JhbS4gIEZvciBleGFtcGxlLCBtb3ZpbmcgYSBtYXJrZXIgdG8gYW4gdW5yZWxhdGVk Ci1uZXcgcG9zaXRpb24gY2FuIGNhdXNlIHVuZG8gdG8gbGF0ZXIgYWRqdXN0IHRoZSBtYXJrZXIg aW5jb3JyZWN0bHkuCi1PZnRlbiB3aGVuIHlvdSB3aXNoIHRvIHJlbG9jYXRlIGEgbWFya2VyIHRv IGFuIHVucmVsYXRlZCBwb3NpdGlvbiwgaXQKLWlzIHByZWZlcmFibGUgdG8gbWFrZSBhIG5ldyBt YXJrZXIgYW5kIHNldCB0aGUgcHJpb3Igb25lIHRvIHBvaW50Ci1ub3doZXJlLgorbWFya2VyLiAg V2hlbiB5b3UgZG8gdGhpcywgYmUgc3VyZSB5b3Uga25vdyB3aGV0aGVyIHRoZSBtYXJrZXIgaXMg dXNlZAorb3V0c2lkZSBvZiB5b3VyIHByb2dyYW0sIGFuZCwgaWYgc28sIHdoYXQgZWZmZWN0cyB3 aWxsIHJlc3VsdCBmcm9tCittb3ZpbmcgaXQtLS1vdGhlcndpc2UsIGNvbmZ1c2luZyB0aGluZ3Mg bWF5IGhhcHBlbiBpbiBvdGhlciBwYXJ0cyBvZgorRW1hY3MuCiAKIEBkZWZ1biBzZXQtbWFya2Vy IG1hcmtlciBwb3NpdGlvbiAmb3B0aW9uYWwgYnVmZmVyCiBUaGlzIGZ1bmN0aW9uIG1vdmVzIEB2 YXJ7bWFya2VyfSB0byBAdmFye3Bvc2l0aW9ufQpkaWZmIC0tZ2l0IGEvZG9jL2xpc3ByZWYvdGV4 dC50ZXhpIGIvZG9jL2xpc3ByZWYvdGV4dC50ZXhpCmluZGV4IGQ5M2Y5MzcuLmQ5YmU4N2QgMTAw NjQ0Ci0tLSBhL2RvYy9saXNwcmVmL3RleHQudGV4aQorKysgYi9kb2MvbGlzcHJlZi90ZXh0LnRl eGkKQEAgLTEyNzAsNyArMTI3MCw4IEBAIFRoaXMga2luZCBvZiBlbGVtZW50IGluZGljYXRlcyBo b3cgdG8gcmVpbnNlcnQgdGV4dCB0aGF0IHdhcyBkZWxldGVkLgogVGhlIGRlbGV0ZWQgdGV4dCBp dHNlbGYgaXMgdGhlIHN0cmluZyBAdmFye3RleHR9LiAgVGhlIHBsYWNlIHRvCiByZWluc2VydCBp dCBpcyBAY29kZXsoYWJzIEB2YXJ7cG9zaXRpb259KX0uICBJZiBAdmFye3Bvc2l0aW9ufSBpcwog cG9zaXRpdmUsIHBvaW50IHdhcyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBkZWxldGVkIHRleHQs IG90aGVyd2lzZSBpdAotd2FzIGF0IHRoZSBlbmQuCit3YXMgYXQgdGhlIGVuZC4gIFplcm8gb3Ig bW9yZSBAdmFye21hcmtlcn0gLiBAdmFye2FkanVzdG1lbnR9KQorZWxlbWVudHMgZm9sbG93IGlt bWVkaWF0ZWx5IGFmdGVyIHRoaXMgZWxlbWVudC4KIAogQGl0ZW0gKHQgLiBAdmFye3RpbWUtZmxh Z30pCiBUaGlzIGtpbmQgb2YgZWxlbWVudCBpbmRpY2F0ZXMgdGhhdCBhbiB1bm1vZGlmaWVkIGJ1 ZmZlciBiZWNhbWUKQEAgLTEyOTYsOCArMTI5NywxMCBAQCBIZXJlJ3MgaG93IHlvdSBtaWdodCB1 bmRvIHRoZSBjaGFuZ2U6CiBAaXRlbSAoQHZhcnttYXJrZXJ9IC4gQHZhcnthZGp1c3RtZW50fSkK IFRoaXMga2luZCBvZiBlbGVtZW50IHJlY29yZHMgdGhlIGZhY3QgdGhhdCB0aGUgbWFya2VyIEB2 YXJ7bWFya2VyfSB3YXMKIHJlbG9jYXRlZCBkdWUgdG8gZGVsZXRpb24gb2Ygc3Vycm91bmRpbmcg dGV4dCwgYW5kIHRoYXQgaXQgbW92ZWQKLUB2YXJ7YWRqdXN0bWVudH0gY2hhcmFjdGVyIHBvc2l0 aW9ucy4gIFVuZG9pbmcgdGhpcyBlbGVtZW50IG1vdmVzCi1AdmFye21hcmtlcn0gQG1pbnVze30g QHZhcnthZGp1c3RtZW50fSBjaGFyYWN0ZXJzLgorQHZhcnthZGp1c3RtZW50fSBjaGFyYWN0ZXIg cG9zaXRpb25zLiAgSWYgdGhlIG1hcmtlcidzIGxvY2F0aW9uIGlzCitjb25zaXN0ZW50IHdpdGgg dGhlIChAdmFye3RleHR9IC4gQHZhcntwb3NpdGlvbn0pIGVsZW1lbnQgcHJlY2VkaW5nIGl0Citp biB0aGUgdW5kbyBsaXN0LCB0aGVuIHVuZG9pbmcgdGhpcyBlbGVtZW50IG1vdmVzIEB2YXJ7bWFy a2VyfQorQG1pbnVze30gQHZhcnthZGp1c3RtZW50fSBjaGFyYWN0ZXJzLgogCiBAaXRlbSAoYXBw bHkgQHZhcntmdW5uYW1lfSAuIEB2YXJ7YXJnc30pCiBUaGlzIGlzIGFuIGV4dGVuc2libGUgdW5k byBpdGVtLCB3aGljaCBpcyB1bmRvbmUgYnkgY2FsbGluZwpkaWZmIC0tZ2l0IGEvbGlzcC9DaGFu Z2VMb2cgYi9saXNwL0NoYW5nZUxvZwppbmRleCBhMWVlNWJiLi40ZjJjMjU4IDEwMDY0NAotLS0g YS9saXNwL0NoYW5nZUxvZworKysgYi9saXNwL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisy MDE0LTAzLTEzICBCYXJyeSBPJ1JlaWxseSAgPGd1bmRhZXRpYXBvQGdtYWlsLmNvbT4KKworCSog c2ltcGxlLmVsIChwcmltaXRpdmUtdW5kbyk6IE9ubHkgcHJvY2VzcyBtYXJrZXIgYWRqdXN0bWVu dHMKKwl2YWxpZGF0ZWQgYWdhaW5zdCB0aGVpciBjb3JyZXNwb25kaW5nIChURVhUIC4gUE9TKS4g IElzc3VlIHdhcm5pbmcKKwlmb3IgbG9uZSBtYXJrZXIgYWRqdXN0bWVudHMgaW4gdW5kbyBoaXN0 b3J5LiAgKEJ1ZyMxNjgxOCkKKwkodW5kby1tYWtlLXNlbGVjdGl2ZS1saXN0KTogQWRkIG1hcmtl ciBhZGp1c3RtZW50cyB0byBzZWxlY3RpdmUKKwl1bmRvIGxpc3QgYmFzZWQgb24gd2hldGhlciB0 aGVpciBjb3JyZXNwb25kaW5nIChURVhUIC4gUE9TKSBpcyBpbgorCXRoZSByZWdpb24uICBSZW1v dmUgdmFyaWFibGUgYWRqdXN0ZWQtbWFya2Vycywgd2hpY2ggd2FzIHVudXNlZAorCWFuZCBvbmx5 IG5vbiBuaWwgZHVyaW5nIHVuZG8tbWFrZS1zZWxlY3RpdmUtbGlzdC4KKwkodW5kby1lbHQtaW4t cmVnaW9uKTogUmV0dXJuIG5pbCB3aGVuIHBhc3NlZCBhIG1hcmtlciBhZGp1c3RtZW50CisJYW5k IGV4cGxhaW4gaW4gZnVuY3Rpb24gZG9jLgorCiAyMDE0LTAzLTEzICBEbWl0cnkgR3V0b3YgIDxk Z3V0b3ZAeWFuZGV4LnJ1PgogCiAJKiBwcm9nbW9kZXMvcnVieS1tb2RlLmVsIChydWJ5LWZvbnQt bG9jay1rZXl3b3Jkcyk6IEZvbnRpZnkKZGlmZiAtLWdpdCBhL2xpc3Avc2ltcGxlLmVsIGIvbGlz cC9zaW1wbGUuZWwKaW5kZXggODgxYTYzMy4uZWU3MDExMyAxMDA2NDQKLS0tIGEvbGlzcC9zaW1w bGUuZWwKKysrIGIvbGlzcC9zaW1wbGUuZWwKQEAgLTIyODksMjQgKzIyODksMzcgQEAgUmV0dXJu IHdoYXQgcmVtYWlucyBvZiB0aGUgbGlzdC4iCiAgICAgICAgICAgICh3aGVuIChsZXQgKChhcG9z IChhYnMgcG9zKSkpCiAgICAgICAgICAgICAgICAgICAgKG9yICg8IGFwb3MgKHBvaW50LW1pbikp ICg+IGFwb3MgKHBvaW50LW1heCkpKSkKICAgICAgICAgICAgICAoZXJyb3IgIkNoYW5nZXMgdG8g YmUgdW5kb25lIGFyZSBvdXRzaWRlIHZpc2libGUgcG9ydGlvbiBvZiBidWZmZXIiKSkKKyAgICAg ICAgICAgKGxldCAodmFsaWQtbWFya2VyLWFkanVzdG1lbnRzKQorICAgICAgICAgICAgIDs7IENo ZWNrIHRoYXQgbWFya2VyIGFkanVzdG1lbnRzIHdoaWNoIHdlcmUgcmVjb3JkZWQKKyAgICAgICAg ICAgICA7OyB3aXRoIHRoZSAoU1RSSU5HIC4gUE9TKSByZWNvcmQgYXJlIHN0aWxsIHZhbGlkLCBp ZQorICAgICAgICAgICAgIDs7IHRoZSBtYXJrZXJzIGhhdmVuJ3QgbW92ZWQuICBXZSBjaGVjayB0 aGVpciB2YWxpZGl0eQorICAgICAgICAgICAgIDs7IGJlZm9yZSByZWluc2VydGluZyB0aGUgc3Ry aW5nIHNvIGFzIHdlIGRvbid0IG5lZWQgdG8KKyAgICAgICAgICAgICA7OyBtaW5kIG1hcmtlciBp bnNlcnRpb24tdHlwZS4KKyAgICAgICAgICAgICAod2hpbGUgKGFuZCAoY29uc3AgKGNhciBsaXN0 KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAobWFya2VycCAoY2FhciBsaXN0KSkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcnAgKGNkYXIgbGlzdCkpKQorICAgICAgICAgICAg ICAgKGFuZCAoZXEgKG1hcmtlci1idWZmZXIgKGNhYXIgbGlzdCkpCisgICAgICAgICAgICAgICAg ICAgICAgICAoY3VycmVudC1idWZmZXIpKQorICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcnAg KG1hcmtlci1wb3NpdGlvbiAoY2FhciBsaXN0KSkpCisgICAgICAgICAgICAgICAgICAgICg9IHBv cyAoY2FhciBsaXN0KSkKKyAgICAgICAgICAgICAgICAgICAgKHB1c2ggKGNhciBsaXN0KSB2YWxp ZC1tYXJrZXItYWRqdXN0bWVudHMpKQorICAgICAgICAgICAgICAgKHBvcCBsaXN0KSkKKyAgICAg ICAgICAgICA7OyBJbnNlcnQgc3RyaW5nIGFuZCBhZGp1c3QgcG9pbnQKICAgICAgICAgICAgKGlm ICg8IHBvcyAwKQogICAgICAgICAgICAgICAgKHByb2duCiAgICAgICAgICAgICAgICAgIChnb3Rv LWNoYXIgKC0gcG9zKSkKICAgICAgICAgICAgICAgICAgKGluc2VydCBzdHJpbmcpKQogICAgICAg ICAgICAgIChnb3RvLWNoYXIgcG9zKQotICAgICAgICAgICAgIDs7IE5vdyB0aGF0IHdlIHJlY29y ZCBtYXJrZXIgYWRqdXN0bWVudHMKLSAgICAgICAgICAgICA7OyAoY2F1c2VkIGJ5IGRlbGV0aW9u KSBmb3IgdW5kbywKLSAgICAgICAgICAgICA7OyB3ZSBzaG91bGQgYWx3YXlzIGluc2VydCBhZnRl ciBtYXJrZXJzLAotICAgICAgICAgICAgIDs7IHNvIHRoYXQgdW5kb2luZyB0aGUgbWFya2VyIGFk anVzdG1lbnRzCi0gICAgICAgICAgICAgOzsgcHV0IHRoZSBtYXJrZXJzIGJhY2sgaW4gdGhlIHJp Z2h0IHBsYWNlLgogICAgICAgICAgICAgIChpbnNlcnQgc3RyaW5nKQotICAgICAgICAgICAgIChn b3RvLWNoYXIgcG9zKSkpCisgICAgICAgICAgICAgICAoZ290by1jaGFyIHBvcykpCisgICAgICAg ICAgICAgOzsgQWRqdXN0IHRoZSB2YWxpZCBtYXJrZXIgYWRqdXN0bWVudHMKKyAgICAgICAgICAg ICAoZG9saXN0IChhZGogdmFsaWQtbWFya2VyLWFkanVzdG1lbnRzKQorICAgICAgICAgICAgICAg KHNldC1tYXJrZXIgKGNhciBhZGopCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoLSAoY2Fy IGFkaikgKGNkciBhZGopKSkpKSkKICAgICAgICAgICA7OyAoTUFSS0VSIC4gT0ZGU0VUKSBtZWFu cyBhIG1hcmtlciBNQVJLRVIgd2FzIGFkanVzdGVkIGJ5IE9GRlNFVC4KICAgICAgICAgICAoYCgs KGFuZCBtYXJrZXIgKHByZWQgbWFya2VycCkpIC4gLChhbmQgb2Zmc2V0IChwcmVkIGludGVnZXJw KSkpCi0gICAgICAgICAgICh3aGVuIChtYXJrZXItYnVmZmVyIG1hcmtlcikKLSAgICAgICAgICAg ICAoc2V0LW1hcmtlciBtYXJrZXIKLSAgICAgICAgICAgICAgICAgICAgICAgICAoLSBtYXJrZXIg b2Zmc2V0KQotICAgICAgICAgICAgICAgICAgICAgICAgIChtYXJrZXItYnVmZmVyIG1hcmtlcikp KSkKKyAgICAgICAgICAgKHdhcm4gIkVuY291bnRlcmVkICVTIGVudHJ5IGluIHVuZG8gbGlzdCB3 aXRoIG5vIG1hdGNoaW5nIChURVhUIC4gUE9TKSBlbnRyeSIKKyAgICAgICAgICAgICAgICAgbmV4 dCkpCiAgICAgICAgICAgKF8gKGVycm9yICJVbnJlY29nbml6ZWQgZW50cnkgaW4gdW5kbyBsaXN0 ICVTIiBuZXh0KSkpKQogICAgICAgKHNldHEgYXJnICgxLSBhcmcpKSkKICAgICA7OyBNYWtlIHN1 cmUgYW4gYXBwbHkgZW50cnkgcHJvZHVjZXMgYXQgbGVhc3Qgb25lIHVuZG8gZW50cnksCkBAIC0y MzQxLDggKzIzNTQsNiBAQCBhcmUgaWdub3JlZC4gIElmIEJFRyBhbmQgRU5EIGFyZSBuaWwsIGFs bCB1bmRvIGVsZW1lbnRzIGFyZSB1c2VkLiIKIAkgICAgKHVuZG8tbWFrZS1zZWxlY3RpdmUtbGlz dCAobWluIGJlZyBlbmQpIChtYXggYmVnIGVuZCkpCiAJICBidWZmZXItdW5kby1saXN0KSkpCiAK LShkZWZ2YXIgdW5kby1hZGp1c3RlZC1tYXJrZXJzKQotCiAoZGVmdW4gdW5kby1tYWtlLXNlbGVj dGl2ZS1saXN0IChzdGFydCBlbmQpCiAgICJSZXR1cm4gYSBsaXN0IG9mIHVuZG8gZWxlbWVudHMg Zm9yIHRoZSByZWdpb24gU1RBUlQgdG8gRU5ELgogVGhlIGVsZW1lbnRzIGNvbWUgZnJvbSBgYnVm ZmVyLXVuZG8tbGlzdCcsIGJ1dCB3ZSBrZWVwIG9ubHkKQEAgLTIzNTEsNyArMjM2Miw2IEBAIElm IHdlIGZpbmQgYW4gZWxlbWVudCB0aGF0IGNyb3NzZXMgYW4gZWRnZSBvZiB0aGlzIHJlZ2lvbiwK IHdlIHN0b3AgYW5kIGlnbm9yZSBhbGwgZnVydGhlciBlbGVtZW50cy4iCiAgIChsZXQgKCh1bmRv LWxpc3QtY29weSAodW5kby1jb3B5LWxpc3QgYnVmZmVyLXVuZG8tbGlzdCkpCiAJKHVuZG8tbGlz dCAobGlzdCBuaWwpKQotCXVuZG8tYWRqdXN0ZWQtbWFya2VycwogCXNvbWUtcmVqZWN0ZWQKIAl1 bmRvLWVsdCB0ZW1wLXVuZG8tbGlzdCBkZWx0YSkKICAgICAod2hpbGUgdW5kby1saXN0LWNvcHkK QEAgLTIzNjcsOSArMjM3NywyMiBAQCB3ZSBzdG9wIGFuZCBpZ25vcmUgYWxsIGZ1cnRoZXIgZWxl bWVudHMuIgogCSAgICAocHJvZ24KIAkgICAgICAoc2V0cSBlbmQgKCsgZW5kIChjZHIgKHVuZG8t ZGVsdGEgdW5kby1lbHQpKSkpCiAJICAgICAgOzsgRG9uJ3QgcHV0IHR3byBuaWxzIHRvZ2V0aGVy IGluIHRoZSBsaXN0Ci0JICAgICAgKGlmIChub3QgKGFuZCAoZXEgKGNhciB1bmRvLWxpc3QpIG5p bCkKKwkgICAgICAod2hlbiAobm90IChhbmQgKGVxIChjYXIgdW5kby1saXN0KSBuaWwpCiAJCQkg ICAgKGVxIHVuZG8tZWx0IG5pbCkpKQotCQkgIChzZXRxIHVuZG8tbGlzdCAoY29ucyB1bmRvLWVs dCB1bmRvLWxpc3QpKSkpCisgICAgICAgICAgICAgICAgKHNldHEgdW5kby1saXN0IChjb25zIHVu ZG8tZWx0IHVuZG8tbGlzdCkpCisgICAgICAgICAgICAgICAgOzsgSWYgKFRFWFQgLiBQT1MpLCAi a2VlcCIgaXRzIHN1YnNlcXVlbnQgKE1BUktFUgorICAgICAgICAgICAgICAgIDs7IC4gQURKVVNU TUVOVCkgd2hvc2UgbWFya2VycyBoYXZlbid0IG1vdmVkLgorICAgICAgICAgICAgICAgICh3aGVu IChhbmQgKGNvbnNwIHVuZG8tZWx0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmlu Z3AgKGNhciB1bmRvLWVsdCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcnAg KGNkciB1bmRvLWVsdCkpKQorICAgICAgICAgICAgICAgICAgKGxldCAoKGxpc3QtaSAoY2RyIHVu ZG8tbGlzdC1jb3B5KSkpCisgICAgICAgICAgICAgICAgICAgICh3aGlsZSAobWFya2VycCAoY2Fh ciBsaXN0LWkpKQorICAgICAgICAgICAgICAgICAgICAgIChhbmQgKGVxIChtYXJrZXItYnVmZmVy IChjYWFyIGxpc3QtaSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGN1cnJlbnQt YnVmZmVyKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VycCAobWFya2VyLXBv c2l0aW9uIChjYWFyIGxpc3QtaSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKD0gKGNk ciB1bmRvLWVsdCkgKGNhYXIgbGlzdC1pKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChw dXNoIChjYXIgbGlzdC1pKSB1bmRvLWxpc3QpKQorICAgICAgICAgICAgICAgICAgICAgIChwb3Ag bGlzdC1pKSkpKSkpCiAJICAoaWYgKHVuZG8tZWx0LWNyb3NzZXMtcmVnaW9uIHVuZG8tZWx0IHN0 YXJ0IGVuZCkKIAkgICAgICAoc2V0cSB1bmRvLWxpc3QtY29weSBuaWwpCiAJICAgIChzZXRxIHNv bWUtcmVqZWN0ZWQgdCkKQEAgLTI0MTcsNyArMjQ0MCwxMiBAQCB3ZSBzdG9wIGFuZCBpZ25vcmUg YWxsIGZ1cnRoZXIgZWxlbWVudHMuIgogCiAoZGVmdW4gdW5kby1lbHQtaW4tcmVnaW9uICh1bmRv LWVsdCBzdGFydCBlbmQpCiAgICJEZXRlcm1pbmUgd2hldGhlciBVTkRPLUVMVCBmYWxscyBpbnNp ZGUgdGhlIHJlZ2lvbiBTVEFSVCAuLi4gRU5ELgotSWYgaXQgY3Jvc3NlcyB0aGUgZWRnZSwgd2Ug cmV0dXJuIG5pbC4iCitJZiBpdCBjcm9zc2VzIHRoZSBlZGdlLCB3ZSByZXR1cm4gbmlsLgorCitH ZW5lcmFsbHkgdGhpcyBmdW5jdGlvbiBpcyBub3QgdXNlZnVsIGZvciBkZXRlcm1pbmluZword2hl dGhlciAoTUFSS0VSIC4gQURKVVNUTUVOVCkgdW5kbyBlbGVtZW50cyBhcmUgaW4gdGhlIHJlZ2lv biwKK2JlY2F1c2UgbWFya2VycyBjYW4gYmUgYXJiaXRyYXJpbHkgcmVsb2NhdGVkLiAgSW5zdGVh ZCwgcGFzcyB0aGUKK21hcmtlciBhZGp1c3RtZW50J3MgY29ycmVzcG9uZGluZyAoVEVYVCAuIFBP UykgZWxlbWVudC4iCiAgIChjb25kICgoaW50ZWdlcnAgdW5kby1lbHQpCiAJIChhbmQgKD49IHVu ZG8tZWx0IHN0YXJ0KQogCSAgICAgICg8PSB1bmRvLWVsdCBlbmQpKSkKQEAgLTI0MzAsMTcgKzI0 NTgsOCBAQCBJZiBpdCBjcm9zc2VzIHRoZSBlZGdlLCB3ZSByZXR1cm4gbmlsLiIKIAkgKGFuZCAo Pj0gKGFicyAoY2RyIHVuZG8tZWx0KSkgc3RhcnQpCiAJICAgICAgKDw9IChhYnMgKGNkciB1bmRv LWVsdCkpIGVuZCkpKQogCSgoYW5kIChjb25zcCB1bmRvLWVsdCkgKG1hcmtlcnAgKGNhciB1bmRv LWVsdCkpKQotCSA7OyBUaGlzIGlzIGEgbWFya2VyLWFkanVzdG1lbnQgZWxlbWVudCAoTUFSS0VS IC4gQURKVVNUTUVOVCkuCi0JIDs7IFNlZSBpZiBNQVJLRVIgaXMgaW5zaWRlIHRoZSByZWdpb24u Ci0JIChsZXQgKChhbGlzdC1lbHQgKGFzc3EgKGNhciB1bmRvLWVsdCkgdW5kby1hZGp1c3RlZC1t YXJrZXJzKSkpCi0JICAgKHVubGVzcyBhbGlzdC1lbHQKLQkgICAgIChzZXRxIGFsaXN0LWVsdCAo Y29ucyAoY2FyIHVuZG8tZWx0KQotCQkJCSAgIChtYXJrZXItcG9zaXRpb24gKGNhciB1bmRvLWVs dCkpKSkKLQkgICAgIChzZXRxIHVuZG8tYWRqdXN0ZWQtbWFya2VycwotCQkgICAoY29ucyBhbGlz dC1lbHQgdW5kby1hZGp1c3RlZC1tYXJrZXJzKSkpCi0JICAgKGFuZCAoY2RyIGFsaXN0LWVsdCkK LQkJKD49IChjZHIgYWxpc3QtZWx0KSBzdGFydCkKLQkJKDw9IChjZHIgYWxpc3QtZWx0KSBlbmQp KSkpCisJIDs7IChNQVJLRVIgLiBBREpVU1RNRU5UKQorICAgICAgICAgbmlsKQogCSgobnVsbCAo Y2FyIHVuZG8tZWx0KSkKIAkgOzsgKG5pbCBQUk9QRVJUWSBWQUxVRSBCRUcgLiBFTkQpCiAJIChs ZXQgKCh0YWlsIChudGhjZHIgMyB1bmRvLWVsdCkpKQpkaWZmIC0tZ2l0IGEvc3JjL0NoYW5nZUxv ZyBiL3NyYy9DaGFuZ2VMb2cKaW5kZXggYzExNThmYy4uNDFmYTg5OCAxMDA2NDQKLS0tIGEvc3Jj L0NoYW5nZUxvZworKysgYi9zcmMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTQtMDMt MTMgIEJhcnJ5IE8nUmVpbGx5ICA8Z3VuZGFldGlhcG9AZ21haWwuY29tPgorCisJSGF2ZSAoTUFS S0VSIC4gQURKVVNUTUVOVCkgdW5kbyByZWNvcmRzIGFsd2F5cyBiZSBpbW1lZGlhdGVseQorCWFm dGVyIHRoZWlyIGNvcnJlc3BvbmRpbmcgKFRFWFQgLiBQT1MpIHJlY29yZCBpbiB1bmRvIGxpc3Qu CisJKEJ1ZyMxNjgxOCkKKwkqIGxpc3AuaCAocmVjb3JkLWRlbGV0ZSk6IE5ldyBhcmcgcmVjb3Jk X21hcmtlcnMuCisJKHJlY29yZF9tYXJrZXJfYWRqdXN0bWVudCk6IE5vIGxvbmdlciBuZWVkZWQg b3V0c2lkZSB1bmRvLmMuCisJKiBpbnNkZWwuYyAoYWRqdXN0X21hcmtlcnNfZm9yX2RlbGV0ZSk6 IE1vdmUgY2FsY3VsYXRpb24gb2YgbWFya2VyCisJYWRqdXN0bWVudHMgdG8gdW5kby5jJ3MgcmVj b3JkX21hcmtlcl9hZGp1c3RtZW50cy4gIE5vdGUgdGhhdAorCWZpbGVpby5jJ3MgZGVjaWRlX2Nv ZGluZ191bndpbmQgaXMgYW5vdGhlciBjYWxsZXIgdG8KKwlhZGp1c3RfbWFya2Vyc19mb3JfZGVs ZXRlLiAgQmVjYXVzZSBpdCBoYXMgdW5kbyBsaXN0IGJvdW5kIHRvIHQsCisJaXQgZG9lcyBub3Qg cmVseSBvbiBhZGp1c3RfbWFya2Vyc19mb3JfZGVsZXRlIHRvIHJlY29yZCBtYXJrZXIKKwlhZGp1 c3RtZW50cy4KKwkoZGVsX3JhbmdlXzIpOiBTd2FwIGNhbGwgdG8gcmVjb3JkX2RlbGV0ZSBhbmQK KwlhZGp1c3RfbWFya2Vyc19mb3JfZGVsZXRlIHNvIGFzIHVuZG8gbWFya2VyIGFkanVzdG1lbnRz IGFyZQorCXJlY29yZGVkIGJlZm9yZSBjdXJyZW50IGRlbGV0aW9uJ3MgYWRqdXN0bWVudHMsIGFz IGJlZm9yZS4KKwkoYWRqdXN0X2FmdGVyX3JlcGxhY2UpOgorCShyZXBsYWNlX3JhbmdlKTogUGFz cyB2YWx1ZSBmb3IgbmV3IHJlY29yZF9tYXJrZXJzIGFyZyB0bworCWRlbGV0ZV9yZWNvcmQuCisJ KiB1bmRvLmMgKHJlY29yZF9tYXJrZXJfYWRqdXN0bWVudCk6IFJlbmFtZWQgdG8KKwlyZWNvcmRf bWFya2VyX2FkanVzdG1lbnRzIGFuZCBtYWRlIHN0YXRpYy4KKwkocmVjb3JkX2RlbGV0ZSk6IENo ZWNrIHJlY29yZF9tYXJrZXJzIGFyZyBhbmQgY2FsbAorCXJlY29yZF9tYXJrZXJfYWRqdXN0bWVu dHMuCisJKHJlY29yZF9jaGFuZ2UpOiBQYXNzIHZhbHVlIGZvciBuZXcgcmVjb3JkX21hcmtlcnMg YXJnIHRvCisJZGVsZXRlX3JlY29yZC4KKwkocmVjb3JkX3BvaW50KTogYXRfYm91bmRhcnkgY2Fs Y3VsYXRpb24gbm8gbG9uZ2VyIG5lZWRzIHRvIGFjY291bnQKKwlmb3IgbWFya2VyIGFkanVzdG1l bnRzLgorCiAyMDE0LTAzLTEyICBNYXJ0aW4gUnVkYWxpY3MgIDxydWRhbGljc0BnbXguYXQ+CiAK IAkqIGZyYW1lLmMgKHhfc2V0X2ZyYW1lX3BhcmFtZXRlcnMpOiBBbHdheXMgY2FsY3VsYXRlIG5l dyBzaXplcwpkaWZmIC0tZ2l0IGEvc3JjL2luc2RlbC5jIGIvc3JjL2luc2RlbC5jCmluZGV4IDFj OWJhZmQuLmViMWFkNjIgMTAwNjQ0Ci0tLSBhL3NyYy9pbnNkZWwuYworKysgYi9zcmMvaW5zZGVs LmMKQEAgLTIzMywzNCArMjMzLDkgQEAgYWRqdXN0X21hcmtlcnNfZm9yX2RlbGV0ZSAocHRyZGlm Zl90IGZyb20sIHB0cmRpZmZfdCBmcm9tX2J5dGUsCiAgICAgICAvKiBIZXJlJ3MgdGhlIGNhc2Ug d2hlcmUgYSBtYXJrZXIgaXMgaW5zaWRlIHRleHQgYmVpbmcgZGVsZXRlZC4gICovCiAgICAgICBl bHNlIGlmIChjaGFycG9zID4gZnJvbSkKIAl7Ci0JICBpZiAoISBtLT5pbnNlcnRpb25fdHlwZSkK LQkgICAgeyAvKiBOb3JtYWwgbWFya2VycyB3aWxsIGVuZCB1cCBhdCB0aGUgYmVnaW5uaW5nIG9m IHRoZQotCSAgICAgICByZS1pbnNlcnRlZCB0ZXh0IGFmdGVyIHVuZG9pbmcgYSBkZWxldGlvbiwg YW5kIG11c3QgYmUKLQkgICAgICAgYWRqdXN0ZWQgdG8gbW92ZSB0aGVtIHRvIHRoZSBjb3JyZWN0 IHBsYWNlLiAgKi8KLQkgICAgICBYU0VUTUlTQyAobWFya2VyLCBtKTsKLQkgICAgICByZWNvcmRf bWFya2VyX2FkanVzdG1lbnQgKG1hcmtlciwgZnJvbSAtIGNoYXJwb3MpOwotCSAgICB9Ci0JICBl bHNlIGlmIChjaGFycG9zIDwgdG8pCi0JICAgIHsgLyogQmVmb3JlLWluc2VydGlvbiBtYXJrZXJz IHdpbGwgYXV0b21hdGljYWxseSBtb3ZlIGZvcndhcmQKLQkgICAgICAgdXBvbiByZS1pbnNlcnRp bmcgdGhlIGRlbGV0ZWQgdGV4dCwgc28gd2UgaGF2ZSB0byBhcnJhbmdlCi0JICAgICAgIGZvciB0 aGVtIHRvIG1vdmUgYmFja3dhcmQgdG8gdGhlIGNvcnJlY3QgcG9zaXRpb24uICAqLwotCSAgICAg IFhTRVRNSVNDIChtYXJrZXIsIG0pOwotCSAgICAgIHJlY29yZF9tYXJrZXJfYWRqdXN0bWVudCAo bWFya2VyLCB0byAtIGNoYXJwb3MpOwotCSAgICB9CiAJICBtLT5jaGFycG9zID0gZnJvbTsKIAkg IG0tPmJ5dGVwb3MgPSBmcm9tX2J5dGU7CiAJfQotICAgICAgLyogSGVyZSdzIHRoZSBjYXNlIHdo ZXJlIGEgYmVmb3JlLWluc2VydGlvbiBtYXJrZXIgaXMgaW1tZWRpYXRlbHkKLQkgYmVmb3JlIHRo ZSBkZWxldGVkIHJlZ2lvbi4gICovCi0gICAgICBlbHNlIGlmIChjaGFycG9zID09IGZyb20gJiYg bS0+aW5zZXJ0aW9uX3R5cGUpCi0JewotCSAgLyogVW5kb2luZyB0aGUgY2hhbmdlIHVzZXMgbm9y bWFsIGluc2VydGlvbiwgd2hpY2ggd2lsbAotCSAgICAgaW5jb3JyZWN0bHkgbWFrZSBNQVJLRVIg bW92ZSBmb3J3YXJkLCBzbyB3ZSBhcnJhbmdlIGZvciBpdAotCSAgICAgdG8gdGhlbiBtb3ZlIGJh Y2t3YXJkIHRvIHRoZSBjb3JyZWN0IHBsYWNlIGF0IHRoZSBiZWdpbm5pbmcKLQkgICAgIG9mIHRo ZSBkZWxldGVkIHJlZ2lvbi4gICovCi0JICBYU0VUTUlTQyAobWFya2VyLCBtKTsKLQkgIHJlY29y ZF9tYXJrZXJfYWRqdXN0bWVudCAobWFya2VyLCB0byAtIGZyb20pOwotCX0KICAgICB9CiB9CiAK QEAgLTEyMTksNyArMTE5NCw3IEBAIGFkanVzdF9hZnRlcl9yZXBsYWNlIChwdHJkaWZmX3QgZnJv bSwgcHRyZGlmZl90IGZyb21fYnl0ZSwKIAkJCSAgICAgICBmcm9tICsgbGVuLCBmcm9tX2J5dGUg KyBsZW5fYnl0ZSwgMCk7CiAKICAgaWYgKG5jaGFyc19kZWwgPiAwKQotICAgIHJlY29yZF9kZWxl dGUgKGZyb20sIHByZXZfdGV4dCk7CisgICAgcmVjb3JkX2RlbGV0ZSAoZnJvbSwgcHJldl90ZXh0 LCBmYWxzZSk7CiAgIHJlY29yZF9pbnNlcnQgKGZyb20sIGxlbik7CiAKICAgaWYgKGxlbiA+IG5j aGFyc19kZWwpCkBAIC0xMzg0LDcgKzEzNTksNyBAQCByZXBsYWNlX3JhbmdlIChwdHJkaWZmX3Qg ZnJvbSwgcHRyZGlmZl90IHRvLCBMaXNwX09iamVjdCBuZXcsCiAgIGlmICghTklMUCAoZGVsZXRp b24pKQogICAgIHsKICAgICAgIHJlY29yZF9pbnNlcnQgKGZyb20gKyBTQ0hBUlMgKGRlbGV0aW9u KSwgaW5zY2hhcnMpOwotICAgICAgcmVjb3JkX2RlbGV0ZSAoZnJvbSwgZGVsZXRpb24pOworICAg ICAgcmVjb3JkX2RlbGV0ZSAoZnJvbSwgZGVsZXRpb24sIGZhbHNlKTsKICAgICB9CiAKICAgR0FQ X1NJWkUgLT0gb3V0Z29pbmdfaW5zYnl0ZXM7CkBAIC0xNzE2LDEzICsxNjkxLDE0IEBAIGRlbF9y YW5nZV8yIChwdHJkaWZmX3QgZnJvbSwgcHRyZGlmZl90IGZyb21fYnl0ZSwKICAgZWxzZQogICAg IGRlbGV0aW9uID0gUW5pbDsKIAotICAvKiBSZWxvY2F0ZSBhbGwgbWFya2VycyBwb2ludGluZyBp bnRvIHRoZSBuZXcsIGxhcmdlciBnYXAKLSAgICAgdG8gcG9pbnQgYXQgdGhlIGVuZCBvZiB0aGUg dGV4dCBiZWZvcmUgdGhlIGdhcC4KLSAgICAgRG8gdGhpcyBiZWZvcmUgcmVjb3JkaW5nIHRoZSBk ZWxldGlvbiwKLSAgICAgc28gdGhhdCB1bmRvIGhhbmRsZXMgdGhpcyBhZnRlciByZWluc2VydGlu ZyB0aGUgdGV4dC4gICovCisgIC8qIFJlY29yZCBtYXJrZXIgYWRqdXN0bWVudHMsIGFuZCB0ZXh0 IGRlbGV0aW9uIGludG8gdW5kbworICAgICBoaXN0b3J5LiAgKi8KKyAgcmVjb3JkX2RlbGV0ZSAo ZnJvbSwgZGVsZXRpb24sIHRydWUpOworCisgIC8qIFJlbG9jYXRlIGFsbCBtYXJrZXJzIHBvaW50 aW5nIGludG8gdGhlIG5ldywgbGFyZ2VyIGdhcCB0byBwb2ludAorICAgICBhdCB0aGUgZW5kIG9m IHRoZSB0ZXh0IGJlZm9yZSB0aGUgZ2FwLiAgKi8KICAgYWRqdXN0X21hcmtlcnNfZm9yX2RlbGV0 ZSAoZnJvbSwgZnJvbV9ieXRlLCB0bywgdG9fYnl0ZSk7CiAKLSAgcmVjb3JkX2RlbGV0ZSAoZnJv bSwgZGVsZXRpb24pOwogICBNT0RJRkYrKzsKICAgQ0hBUlNfTU9ESUZGID0gTU9ESUZGOwogCmRp ZmYgLS1naXQgYS9zcmMvbGlzcC5oIGIvc3JjL2xpc3AuaAppbmRleCAyZjlhMzBmLi4zMGY1MmI5 IDEwMDY0NAotLS0gYS9zcmMvbGlzcC5oCisrKyBiL3NyYy9saXNwLmgKQEAgLTQxOTgsOSArNDE5 OCw4IEBAIGV4dGVybiB2b2lkIHN5bXNfb2ZfbWFjcm9zICh2b2lkKTsKIGV4dGVybiBMaXNwX09i amVjdCBRYXBwbHk7CiBleHRlcm4gTGlzcF9PYmplY3QgUWluaGliaXRfcmVhZF9vbmx5OwogZXh0 ZXJuIHZvaWQgdHJ1bmNhdGVfdW5kb19saXN0IChzdHJ1Y3QgYnVmZmVyICopOwotZXh0ZXJuIHZv aWQgcmVjb3JkX21hcmtlcl9hZGp1c3RtZW50IChMaXNwX09iamVjdCwgcHRyZGlmZl90KTsKIGV4 dGVybiB2b2lkIHJlY29yZF9pbnNlcnQgKHB0cmRpZmZfdCwgcHRyZGlmZl90KTsKLWV4dGVybiB2 b2lkIHJlY29yZF9kZWxldGUgKHB0cmRpZmZfdCwgTGlzcF9PYmplY3QpOworZXh0ZXJuIHZvaWQg cmVjb3JkX2RlbGV0ZSAocHRyZGlmZl90LCBMaXNwX09iamVjdCwgYm9vbCk7CiBleHRlcm4gdm9p ZCByZWNvcmRfZmlyc3RfY2hhbmdlICh2b2lkKTsKIGV4dGVybiB2b2lkIHJlY29yZF9jaGFuZ2Ug KHB0cmRpZmZfdCwgcHRyZGlmZl90KTsKIGV4dGVybiB2b2lkIHJlY29yZF9wcm9wZXJ0eV9jaGFu Z2UgKHB0cmRpZmZfdCwgcHRyZGlmZl90LApkaWZmIC0tZ2l0IGEvc3JjL3VuZG8uYyBiL3NyYy91 bmRvLmMKaW5kZXggNzI4NmQ0MC4uYjAxMzc2MyAxMDA2NDQKLS0tIGEvc3JjL3VuZG8uYworKysg Yi9zcmMvdW5kby5jCkBAIC03NSwyNyArNzUsOCBAQCByZWNvcmRfcG9pbnQgKHB0cmRpZmZfdCBw dCkKICAgICBGdW5kb19ib3VuZGFyeSAoKTsKICAgbGFzdF91bmRvX2J1ZmZlciA9IGN1cnJlbnRf YnVmZmVyOwogCi0gIGlmIChDT05TUCAoQlZBUiAoY3VycmVudF9idWZmZXIsIHVuZG9fbGlzdCkp KQotICAgIHsKLSAgICAgIC8qIFNldCBBVF9CT1VOREFSWSBvbmx5IHdoZW4gd2UgaGF2ZSBub3Ro aW5nIG90aGVyIHRoYW4KLSAgICAgICAgIG1hcmtlciBhZGp1c3RtZW50IGJlZm9yZSB1bmRvIGJv dW5kYXJ5LiAgKi8KLQotICAgICAgTGlzcF9PYmplY3QgdGFpbCA9IEJWQVIgKGN1cnJlbnRfYnVm ZmVyLCB1bmRvX2xpc3QpLCBlbHQ7Ci0KLSAgICAgIHdoaWxlICgxKQotCXsKLQkgIGlmIChOSUxQ ICh0YWlsKSkKLQkgICAgZWx0ID0gUW5pbDsKLQkgIGVsc2UKLQkgICAgZWx0ID0gWENBUiAodGFp bCk7Ci0JICBpZiAoTklMUCAoZWx0KSB8fCAhIChDT05TUCAoZWx0KSAmJiBNQVJLRVJQIChYQ0FS IChlbHQpKSkpCi0JICAgIGJyZWFrOwotCSAgdGFpbCA9IFhDRFIgKHRhaWwpOwotCX0KLSAgICAg IGF0X2JvdW5kYXJ5ID0gTklMUCAoZWx0KTsKLSAgICB9Ci0gIGVsc2UKLSAgICBhdF9ib3VuZGFy eSA9IDE7CisgIGF0X2JvdW5kYXJ5ID0gISBDT05TUCAoQlZBUiAoY3VycmVudF9idWZmZXIsIHVu ZG9fbGlzdCkpCisgICAgICAgICAgICAgICAgfHwgTklMUCAoWENBUiAoQlZBUiAoY3VycmVudF9i dWZmZXIsIHVuZG9fbGlzdCkpKTsKIAogICBpZiAoTU9ESUZGIDw9IFNBVkVfTU9ESUZGKQogICAg IHJlY29yZF9maXJzdF9jaGFuZ2UgKCk7CkBAIC0xNDcsMTEgKzEyOCw2MCBAQCByZWNvcmRfaW5z ZXJ0IChwdHJkaWZmX3QgYmVnLCBwdHJkaWZmX3QgbGVuZ3RoKQogCQkgIEZjb25zIChGY29ucyAo bGJlZywgbGVuZCksIEJWQVIgKGN1cnJlbnRfYnVmZmVyLCB1bmRvX2xpc3QpKSk7CiB9CiAKLS8q IFJlY29yZCB0aGF0IGEgZGVsZXRpb24gaXMgYWJvdXQgdG8gdGFrZSBwbGFjZSwKLSAgIG9mIHRo ZSBjaGFyYWN0ZXJzIGluIFNUUklORywgYXQgbG9jYXRpb24gQkVHLiAgKi8KKy8qIFJlY29yZCB0 aGUgZmFjdCB0aGF0IE1BUktFUiBpcyBhYm91dCB0byBiZSBhZGp1c3RlZCBieSBBREpVU1RNRU5U LgorICAgVGhpcyBpcyBkb25lIG9ubHkgd2hlbiBhIG1hcmtlciBwb2ludHMgd2l0aGluIHRleHQg YmVpbmcgZGVsZXRlZCwKKyAgIGJlY2F1c2UgdGhhdCdzIHRoZSBvbmx5IGNhc2Ugd2hlcmUgYW4g YXV0b21hdGljIG1hcmtlciBhZGp1c3RtZW50CisgICB3b24ndCBiZSBpbnZlcnRlZCBhdXRvbWF0 aWNhbGx5IGJ5IHVuZG9pbmcgdGhlIGJ1ZmZlciBtb2RpZmljYXRpb24uICAqLworCitzdGF0aWMg dm9pZAorcmVjb3JkX21hcmtlcl9hZGp1c3RtZW50cyAocHRyZGlmZl90IGZyb20sIHB0cmRpZmZf dCB0bykKK3sKKyAgTGlzcF9PYmplY3QgbWFya2VyOworICByZWdpc3RlciBzdHJ1Y3QgTGlzcF9N YXJrZXIgKm07CisgIHJlZ2lzdGVyIHB0cmRpZmZfdCBjaGFycG9zLCBhZGp1c3RtZW50OworCisg IC8qIEFsbG9jYXRlIGEgY29ucyBjZWxsIHRvIGJlIHRoZSB1bmRvIGJvdW5kYXJ5IGFmdGVyIHRo aXMgY29tbWFuZC4gICovCisgIGlmIChOSUxQIChwZW5kaW5nX2JvdW5kYXJ5KSkKKyAgICBwZW5k aW5nX2JvdW5kYXJ5ID0gRmNvbnMgKFFuaWwsIFFuaWwpOworCisgIGlmIChjdXJyZW50X2J1ZmZl ciAhPSBsYXN0X3VuZG9fYnVmZmVyKQorICAgIEZ1bmRvX2JvdW5kYXJ5ICgpOworICBsYXN0X3Vu ZG9fYnVmZmVyID0gY3VycmVudF9idWZmZXI7CisKKyAgZm9yIChtID0gQlVGX01BUktFUlMgKGN1 cnJlbnRfYnVmZmVyKTsgbTsgbSA9IG0tPm5leHQpCisgICAgeworICAgICAgY2hhcnBvcyA9IG0t PmNoYXJwb3M7CisgICAgICBlYXNzZXJ0IChjaGFycG9zIDw9IFopOworICAgICAgYWRqdXN0bWVu dCA9IDA7CisKKyAgICAgIC8qIE5vcm1hbCBtYXJrZXJzIHdpbGwgZW5kIHVwIGF0IHRoZSBiZWdp bm5pbmcgb2YgdGhlCisJcmUtaW5zZXJ0ZWQgdGV4dCBhZnRlciB1bmRvaW5nIGEgZGVsZXRpb24s IGFuZCBtdXN0IGJlCisJYWRqdXN0ZWQgdG8gbW92ZSB0aGVtIHRvIHRoZSBjb3JyZWN0IHBsYWNl LiAgKi8KKyAgICAgIGlmICghIG0tPmluc2VydGlvbl90eXBlICYmIGZyb20gPCBjaGFycG9zICYm IGNoYXJwb3MgPD0gdG8pCisgICAgICAgIGFkanVzdG1lbnQgPSBmcm9tIC0gY2hhcnBvczsKKyAg ICAgIC8qIEJlZm9yZS1pbnNlcnRpb24gbWFya2VycyB3aWxsIGF1dG9tYXRpY2FsbHkgbW92ZSBm b3J3YXJkIHVwb24KKwlyZS1pbnNlcnRpbmcgdGhlIGRlbGV0ZWQgdGV4dCwgc28gd2UgaGF2ZSB0 byBhcnJhbmdlIGZvciB0aGVtCisJdG8gbW92ZSBiYWNrd2FyZCB0byB0aGUgY29ycmVjdCBwb3Np dGlvbi4gICovCisgICAgICBlbHNlIGlmIChtLT5pbnNlcnRpb25fdHlwZSAmJiBmcm9tIDw9IGNo YXJwb3MgJiYgY2hhcnBvcyA8IHRvKQorICAgICAgICBhZGp1c3RtZW50ID0gdG8gLSBjaGFycG9z OworCisgICAgICBpZiAoYWRqdXN0bWVudCkKKyAgICAgICAgeworICAgICAgICAgIFhTRVRNSVND IChtYXJrZXIsIG0pOworICAgICAgICAgIGJzZXRfdW5kb19saXN0CisgICAgICAgICAgICAoY3Vy cmVudF9idWZmZXIsCisgICAgICAgICAgICAgRmNvbnMgKEZjb25zIChtYXJrZXIsIG1ha2VfbnVt YmVyIChhZGp1c3RtZW50KSksCisgICAgICAgICAgICAgICAgICAgIEJWQVIgKGN1cnJlbnRfYnVm ZmVyLCB1bmRvX2xpc3QpKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8qIFJlY29yZCB0aGF0 IGEgZGVsZXRpb24gaXMgYWJvdXQgdG8gdGFrZSBwbGFjZSwgb2YgdGhlIGNoYXJhY3RlcnMgaW4K KyAgIFNUUklORywgYXQgbG9jYXRpb24gQkVHLiAgT3B0aW9uYWxseSByZWNvcmQgYWRqdXN0bWVu dHMgZm9yIG1hcmtlcnMKKyAgIGluIHRoZSByZWdpb24gU1RSSU5HIG9jY3VwaWVzIGluIHRoZSBj dXJyZW50IGJ1ZmZlci4gICovCiAKIHZvaWQKLXJlY29yZF9kZWxldGUgKHB0cmRpZmZfdCBiZWcs IExpc3BfT2JqZWN0IHN0cmluZykKK3JlY29yZF9kZWxldGUgKHB0cmRpZmZfdCBiZWcsIExpc3Bf T2JqZWN0IHN0cmluZywgYm9vbCByZWNvcmRfbWFya2VycykKIHsKICAgTGlzcF9PYmplY3Qgc2Jl ZzsKIApAQCAtMTY5LDM0ICsxOTksMTUgQEAgcmVjb3JkX2RlbGV0ZSAocHRyZGlmZl90IGJlZywg TGlzcF9PYmplY3Qgc3RyaW5nKQogICAgICAgcmVjb3JkX3BvaW50IChiZWcpOwogICAgIH0KIAot ICBic2V0X3VuZG9fbGlzdAotICAgIChjdXJyZW50X2J1ZmZlciwKLSAgICAgRmNvbnMgKEZjb25z IChzdHJpbmcsIHNiZWcpLCBCVkFSIChjdXJyZW50X2J1ZmZlciwgdW5kb19saXN0KSkpOwotfQot Ci0vKiBSZWNvcmQgdGhlIGZhY3QgdGhhdCBNQVJLRVIgaXMgYWJvdXQgdG8gYmUgYWRqdXN0ZWQg YnkgQURKVVNUTUVOVC4KLSAgIFRoaXMgaXMgZG9uZSBvbmx5IHdoZW4gYSBtYXJrZXIgcG9pbnRz IHdpdGhpbiB0ZXh0IGJlaW5nIGRlbGV0ZWQsCi0gICBiZWNhdXNlIHRoYXQncyB0aGUgb25seSBj YXNlIHdoZXJlIGFuIGF1dG9tYXRpYyBtYXJrZXIgYWRqdXN0bWVudAotICAgd29uJ3QgYmUgaW52 ZXJ0ZWQgYXV0b21hdGljYWxseSBieSB1bmRvaW5nIHRoZSBidWZmZXIgbW9kaWZpY2F0aW9uLiAg Ki8KLQotdm9pZAotcmVjb3JkX21hcmtlcl9hZGp1c3RtZW50IChMaXNwX09iamVjdCBtYXJrZXIs IHB0cmRpZmZfdCBhZGp1c3RtZW50KQotewotICBpZiAoRVEgKEJWQVIgKGN1cnJlbnRfYnVmZmVy LCB1bmRvX2xpc3QpLCBRdCkpCi0gICAgcmV0dXJuOwotCi0gIC8qIEFsbG9jYXRlIGEgY29ucyBj ZWxsIHRvIGJlIHRoZSB1bmRvIGJvdW5kYXJ5IGFmdGVyIHRoaXMgY29tbWFuZC4gICovCi0gIGlm IChOSUxQIChwZW5kaW5nX2JvdW5kYXJ5KSkKLSAgICBwZW5kaW5nX2JvdW5kYXJ5ID0gRmNvbnMg KFFuaWwsIFFuaWwpOwotCi0gIGlmIChjdXJyZW50X2J1ZmZlciAhPSBsYXN0X3VuZG9fYnVmZmVy KQotICAgIEZ1bmRvX2JvdW5kYXJ5ICgpOwotICBsYXN0X3VuZG9fYnVmZmVyID0gY3VycmVudF9i dWZmZXI7CisgIC8qIHByaW1pdGl2ZS11bmRvIGFzc3VtZXMgbWFya2VyIGFkanVzdG1lbnRzIGFy ZSByZWNvcmRlZAorICAgICBpbW1lZGlhdGVseSBiZWZvcmUgdGhlIGRlbGV0aW9uIGlzIHJlY29y ZGVkLiAgU2VlIGJ1ZyAxNjgxOAorICAgICBkaXNjdXNzaW9uLiAgKi8KKyAgaWYgKHJlY29yZF9t YXJrZXJzKQorICAgIHJlY29yZF9tYXJrZXJfYWRqdXN0bWVudHMgKGJlZywgYmVnICsgU0NIQVJT IChzdHJpbmcpKTsKIAogICBic2V0X3VuZG9fbGlzdAogICAgIChjdXJyZW50X2J1ZmZlciwKLSAg ICAgRmNvbnMgKEZjb25zIChtYXJrZXIsIG1ha2VfbnVtYmVyIChhZGp1c3RtZW50KSksCi0JICAg IEJWQVIgKGN1cnJlbnRfYnVmZmVyLCB1bmRvX2xpc3QpKSk7CisgICAgIEZjb25zIChGY29ucyAo c3RyaW5nLCBzYmVnKSwgQlZBUiAoY3VycmVudF9idWZmZXIsIHVuZG9fbGlzdCkpKTsKIH0KIAog LyogUmVjb3JkIHRoYXQgYSByZXBsYWNlbWVudCBpcyBhYm91dCB0byB0YWtlIHBsYWNlLApAQCAt MjA2LDcgKzIxNyw3IEBAIHJlY29yZF9tYXJrZXJfYWRqdXN0bWVudCAoTGlzcF9PYmplY3QgbWFy a2VyLCBwdHJkaWZmX3QgYWRqdXN0bWVudCkKIHZvaWQKIHJlY29yZF9jaGFuZ2UgKHB0cmRpZmZf dCBiZWcsIHB0cmRpZmZfdCBsZW5ndGgpCiB7Ci0gIHJlY29yZF9kZWxldGUgKGJlZywgbWFrZV9i dWZmZXJfc3RyaW5nIChiZWcsIGJlZyArIGxlbmd0aCwgMSkpOworICByZWNvcmRfZGVsZXRlIChi ZWcsIG1ha2VfYnVmZmVyX3N0cmluZyAoYmVnLCBiZWcgKyBsZW5ndGgsIDEpLCBmYWxzZSk7CiAg IHJlY29yZF9pbnNlcnQgKGJlZywgbGVuZ3RoKTsKIH0KIAwKZGlmZiAtLWdpdCBhL3Rlc3QvQ2hh bmdlTG9nIGIvdGVzdC9DaGFuZ2VMb2cKaW5kZXggYzg3MDIyYy4uY2JmOWVhYSAxMDA2NDQKLS0t IGEvdGVzdC9DaGFuZ2VMb2cKKysrIGIvdGVzdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMSBAQAor MjAxNC0wMy0xMyAgQmFycnkgTydSZWlsbHkgIDxndW5kYWV0aWFwb0BnbWFpbC5jb20+CisKKwkq IHVuZG8tdGVzdHMuZWwgKHVuZG8tdGVzdC1tYXJrZXItYWRqdXN0bWVudC1ub21pbmFsKToKKwko dW5kby10ZXN0LXJlZ2lvbi10LW1hcmtlcik6IE5ldyB0ZXN0cyBvZiBtYXJrZXIgYWRqdXN0bWVu dHMuCisJKHVuZG8tdGVzdC1tYXJrZXItYWRqdXN0bWVudC1tb3ZlZCk6CisJKHVuZG8tdGVzdC1y ZWdpb24tbWFyay1hZGp1c3RtZW50KTogTmV3IHRlc3RzIHRvIGRlbW9uc3RyYXRlCisJYnVnIzE2 ODE4LCB3aGljaCBmYWlsIHdpdGhvdXQgdGhlIGZpeC4KKwogMjAxNC0wMy0wNyAgTWljaGFlbCBB bGJpbnVzICA8bWljaGFlbC5hbGJpbnVzQGdteC5kZT4KIAogCSogYXV0b21hdGVkL3RyYW1wLXRl c3RzLmVsICh0cmFtcC1jb3B5LXNpemUtbGltaXQpOiBEZWNsYXJlLgpkaWZmIC0tZ2l0IGEvdGVz dC9hdXRvbWF0ZWQvdW5kby10ZXN0cy5lbCBiL3Rlc3QvYXV0b21hdGVkL3VuZG8tdGVzdHMuZWwK aW5kZXggOGE5NjNmMS4uNmVjYWMzNiAxMDA2NDQKLS0tIGEvdGVzdC9hdXRvbWF0ZWQvdW5kby10 ZXN0cy5lbAorKysgYi90ZXN0L2F1dG9tYXRlZC91bmRvLXRlc3RzLmVsCkBAIC0yNjgsNiArMjY4 LDEwNCBAQAogICAgIChzaG91bGQgKHN0cmluZz0gKGJ1ZmZlci1zdHJpbmcpCiAgICAgICAgICAg ICAgICAgICAgICAiVGhpcyBzZW50ZW5jZSBjb3JydXB0ZWQ/YWFhIikpKSkKIAorKGVydC1kZWZ0 ZXN0IHVuZG8tdGVzdC1tYXJrZXItYWRqdXN0bWVudC1ub21pbmFsICgpCisgICJUZXN0IG5vbWlu YWwgYmVoYXZpb3Igb2YgbWFya2VyIGFkanVzdG1lbnRzLiIKKyAgKHdpdGgtdGVtcC1idWZmZXIK KyAgICAoYnVmZmVyLWVuYWJsZS11bmRvKQorICAgIChpbnNlcnQgImFiY2RlZmciKQorICAgICh1 bmRvLWJvdW5kYXJ5KQorICAgIChsZXQgKChtIChtYWtlLW1hcmtlcikpKQorICAgICAgKHNldC1t YXJrZXIgbSAyIChjdXJyZW50LWJ1ZmZlcikpCisgICAgICAoZ290by1jaGFyIChwb2ludC1taW4p KQorICAgICAgKGRlbGV0ZS1mb3J3YXJkLWNoYXIgMykKKyAgICAgICh1bmRvLWJvdW5kYXJ5KQor ICAgICAgKHNob3VsZCAoPSAocG9pbnQtbWluKSAobWFya2VyLXBvc2l0aW9uIG0pKSkKKyAgICAg ICh1bmRvKQorICAgICAgKHVuZG8tYm91bmRhcnkpCisgICAgICAoc2hvdWxkICg9IDIgKG1hcmtl ci1wb3NpdGlvbiBtKSkpKSkpCisKKyhlcnQtZGVmdGVzdCB1bmRvLXRlc3QtcmVnaW9uLXQtbWFy a2VyICgpCisgICJUZXN0IHVuZG8gaW4gcmVnaW9uIGNvbnRhaW5pbmcgbWFya2VyIHdpdGggdCBp bnNlcnRpb24tdHlwZS4iCisgICh3aXRoLXRlbXAtYnVmZmVyCisgICAgKGJ1ZmZlci1lbmFibGUt dW5kbykKKyAgICAodHJhbnNpZW50LW1hcmstbW9kZSAxKQorICAgIChpbnNlcnQgImFiY2RlZmci KQorICAgICh1bmRvLWJvdW5kYXJ5KQorICAgIChsZXQgKChtIChtYWtlLW1hcmtlcikpKQorICAg ICAgKHNldC1tYXJrZXItaW5zZXJ0aW9uLXR5cGUgbSB0KQorICAgICAgKHNldC1tYXJrZXIgbSAo cG9pbnQtbWluKSAoY3VycmVudC1idWZmZXIpKSA7IG0gYXQgYQorICAgICAgKGdvdG8tY2hhciAo KyAyIChwb2ludC1taW4pKSkKKyAgICAgIChwdXNoLW1hcmsgKHBvaW50KSB0IHQpCisgICAgICAo c2V0cSBtYXJrLWFjdGl2ZSB0KQorICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKKyAgICAg IChkZWxldGUtZm9yd2FyZC1jaGFyIDEpIDs7IGRlbGV0ZSByZWdpb24gY292ZXJpbmcgImFiIgor ICAgICAgKHVuZG8tYm91bmRhcnkpCisgICAgICAoc2hvdWxkICg9IChwb2ludC1taW4pIChtYXJr ZXItcG9zaXRpb24gbSkpKQorICAgICAgOzsgUmVzdXJyZWN0ICJhYiIuIG0ncyBpbnNlcnRpb24g dHlwZSBtZWFucyB0aGUgcmVpbnNlcnRpb24KKyAgICAgIDs7IG1vdmVzIGl0IGZvcndhcmQgMiwg YW5kIHRoZW4gdGhlIG1hcmtlciBhZGp1c3RtZW50IHJldHVybnMgaXQKKyAgICAgIDs7IHRvIGl0 cyByaWdodGZ1bCBwbGFjZS4KKyAgICAgICh1bmRvKQorICAgICAgKHVuZG8tYm91bmRhcnkpCisg ICAgICAoc2hvdWxkICg9IChwb2ludC1taW4pIChtYXJrZXItcG9zaXRpb24gbSkpKSkpKQorCiso ZXJ0LWRlZnRlc3QgdW5kby10ZXN0LW1hcmtlci1hZGp1c3RtZW50LW1vdmVkICgpCisgICJUZXN0 IG1hcmtlciBhZGp1c3RtZW50IGJlaGF2aW9yIHdoZW4gdGhlIG1hcmtlciBtb3Zlcy4KK0RlbW9u c3RyYXRlcyBidWcgMTY4MTguIgorICAod2l0aC10ZW1wLWJ1ZmZlcgorICAgIChidWZmZXItZW5h YmxlLXVuZG8pCisgICAgKGluc2VydCAiYWJjZGVmZ2hpamsiKQorICAgICh1bmRvLWJvdW5kYXJ5 KQorICAgIChsZXQgKChtIChtYWtlLW1hcmtlcikpKQorICAgICAgKHNldC1tYXJrZXIgbSAyIChj dXJyZW50LWJ1ZmZlcikpIDsgbSBhdCBiCisgICAgICAoZ290by1jaGFyIChwb2ludC1taW4pKQor ICAgICAgKGRlbGV0ZS1mb3J3YXJkLWNoYXIgMykgOyBtIGF0IGQKKyAgICAgICh1bmRvLWJvdW5k YXJ5KQorICAgICAgKHNldC1tYXJrZXIgbSA0KSA7IG0gYXQgZworICAgICAgKHVuZG8pCisgICAg ICAodW5kby1ib3VuZGFyeSkKKyAgICAgIDs7IG0gc3RpbGwgYXQgZywgYnV0IHNoaWZ0ZWQgMyBi ZWNhdXNlIGRlbGV0aW9uIHVuZG9uZQorICAgICAgKHNob3VsZCAoPSA3IChtYXJrZXItcG9zaXRp b24gbSkpKSkpKQorCisoZXJ0LWRlZnRlc3QgdW5kby10ZXN0LXJlZ2lvbi1tYXJrLWFkanVzdG1l bnQgKCkKKyAgIlRlc3QgdGhhdCB0aGUgbWFyaydzIG1hcmtlciBhZGp1c3RtZW50IGluIHVuZG8g aGlzdG9yeSBkb2Vzbid0CitvYnN0cnVjdCB1bmRvIGluIHJlZ2lvbiBmcm9tIGZpbmRpbmcgdGhl IGNvcnJlY3QgY2hhbmdlIGdyb3VwLgorRGVtb25zdHJhdGVzIGJ1ZyAxNjgxOC4iCisgICh3aXRo LXRlbXAtYnVmZmVyCisgICAgKGJ1ZmZlci1lbmFibGUtdW5kbykKKyAgICAodHJhbnNpZW50LW1h cmstbW9kZSAxKQorICAgIChpbnNlcnQgIkZpcnN0IGxpbmVcbiIpCisgICAgKGluc2VydCAiU2Vj b25kIGxpbmVcbiIpCisgICAgKHVuZG8tYm91bmRhcnkpCisKKyAgICAoZ290by1jaGFyIChwb2lu dC1taW4pKQorICAgIChpbnNlcnQgImFhYSIpCisgICAgKHVuZG8tYm91bmRhcnkpCisKKyAgICAo dW5kbykKKyAgICAodW5kby1ib3VuZGFyeSkKKworICAgIChnb3RvLWNoYXIgKHBvaW50LW1heCkp CisgICAgKGluc2VydCAiYmJiIikKKyAgICAodW5kby1ib3VuZGFyeSkKKworICAgIChwdXNoLW1h cmsgKHBvaW50KSB0IHQpCisgICAgKHNldHEgbWFyay1hY3RpdmUgdCkKKyAgICAoZ290by1jaGFy ICgtIChwb2ludCkgMykpCisgICAgKGRlbGV0ZS1mb3J3YXJkLWNoYXIgMSkKKyAgICAodW5kby1i b3VuZGFyeSkKKworICAgIChpbnNlcnQgImJiYiIpCisgICAgKHVuZG8tYm91bmRhcnkpCisKKyAg ICAoZ290by1jaGFyIChwb2ludC1taW4pKQorICAgIChwdXNoLW1hcmsgKHBvaW50KSB0IHQpCisg ICAgKHNldHEgbWFyay1hY3RpdmUgdCkKKyAgICAoZ290by1jaGFyICgrIChwb2ludCkgMykpCisg ICAgKHVuZG8pCisgICAgKHVuZG8tYm91bmRhcnkpCisKKyAgICAoc2hvdWxkIChzdHJpbmc9IChi dWZmZXItc3RyaW5nKSAiYWFhRmlyc3QgbGluZVxuU2Vjb25kIGxpbmVcbmJiYiIpKSkpCisKIChk ZWZ1biB1bmRvLXRlc3QtYWxsICgmb3B0aW9uYWwgaW50ZXJhY3RpdmUpCiAgICJSdW4gYWxsIHRl c3RzIGZvciBcXFt1bmRvXS4iCiAgIChpbnRlcmFjdGl2ZSAicCIpCg== --089e013d0dc0ae3ddc04f54dee75--