From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Radon Rosborough Newsgroups: gmane.emacs.devel Subject: Re: [PATCH] Fixing package-initialize, adding early init file Date: Wed, 24 Jan 2018 20:35:00 -0800 Message-ID: References: <83po9vos4z.fsf@gnu.org> <87shelv2m6.fsf@udel.edu> <83vajgh4xe.fsf@gnu.org> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="089e0823dc34f036130563924f39" X-Trace: blaine.gmane.org 1516854881 31190 195.159.176.226 (25 Jan 2018 04:34:41 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Thu, 25 Jan 2018 04:34:41 +0000 (UTC) Cc: emacs-devel To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Jan 25 05:34:36 2018 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eeZFC-0007cv-Rw for ged-emacs-devel@m.gmane.org; Thu, 25 Jan 2018 05:34:35 +0100 Original-Received: from localhost ([::1]:42040 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eeZHB-0005X4-9H for ged-emacs-devel@m.gmane.org; Wed, 24 Jan 2018 23:36:37 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:46287) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eeZGK-0005Wa-Ln for emacs-devel@gnu.org; Wed, 24 Jan 2018 23:35:45 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eeZGJ-0007SY-ND for emacs-devel@gnu.org; Wed, 24 Jan 2018 23:35:44 -0500 Original-Received: from mail-lf0-x231.google.com ([2a00:1450:4010:c07::231]:34059) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eeZGI-0007RS-OR for emacs-devel@gnu.org; Wed, 24 Jan 2018 23:35:43 -0500 Original-Received: by mail-lf0-x231.google.com with SMTP id k19so8091051lfj.1 for ; Wed, 24 Jan 2018 20:35:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=Tp0IDXU59XOaOkZ8vnyAZJG8KR6ZzEPZ2G/1kOgMfrM=; b=cKp0Se3ULy1Uwsb/kVv7SNUdj8UrpBV+BptDpUTjmInypD89IMKWbhVckXZ+0ZBjvo y75qvKP8diRcPM6WEpoVTHHtb6lRnjGK30TTUtHDt74HgKFdH8MpHnh54RDAfMLN2Rsq fbCsyWw5QAy4muBGsQ/qKFWVRHjtDjSTXkGGOQpMaQtxQrMIAqMbEfALMuAUaPdq4+ff Ty4H4/KFYuaZ5sZu+rKTr7GqThl+iQ3hSjyE+BXZEzPknu6U/dNeBq4neXhJmiPDGbB/ r0zHfnhz0nGqoRozEyclXU1yZQkO7r8b3g+Z8L4A4sqJuSpA72bpenuBxo0nxJUvAteT rapg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=Tp0IDXU59XOaOkZ8vnyAZJG8KR6ZzEPZ2G/1kOgMfrM=; b=nGQfU0BDDrQcLNBQpQ7opks/2FQJRCq/SzxX5kAHgejAEO9Gxn6QB/Sy2qJOQXBKbD 76IObO2NgsBK732CAmuOSDe1EGUpu2HagoV64vRvh6HrT32O89VLMF6mNynDIGoKqBr/ 5mSpQdEgIJw5ucoU6crOj6hjgQ0VkhIYtgYchN3JxYcm8RiGoijmzkxFncj0gtEGZRN0 Ki/VzFAmclfJuNGfLQsZ3BZypwA0XlirwpVCITD2hne3CcOw3QiknWv0GfhWiZSSTfU9 tKCShxutaTVOxNpeRIqd4ivlC4yqRUFugyrHgXnX6a0CILBFoqps8CL7dRHngoNwt7iq EwQA== X-Gm-Message-State: AKwxyte1Y9TNoyBBBWrCYMc8X93SN4YyeSbK8KtAfplH9DhAe/nnsDBt yC2D2aPuNujRpGg4ab/vkf8fJ1UgilWcUnzL2/VVbsEv X-Google-Smtp-Source: AH8x226XP+rCqIHEPJLJyKkzk6EwmHAPFZtf0EkyhCJExAIOQiuevsBrm/EeUHTs3EYT1dcxHzwWvTOLzsHB6sNy9GA= X-Received: by 10.46.56.24 with SMTP id f24mr5364871lja.113.1516854941044; Wed, 24 Jan 2018 20:35:41 -0800 (PST) Original-Received: by 10.25.16.101 with HTTP; Wed, 24 Jan 2018 20:35:00 -0800 (PST) In-Reply-To: X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4010:c07::231 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 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" Xref: news.gmane.org gmane.emacs.devel:222216 Archived-At: --089e0823dc34f036130563924f39 Content-Type: text/plain; charset="UTF-8" Since it has been more than a month with no response, I am re-posting the patch which fixes the problems previously discussed [1] [2] [3] with `package-initialize' by adding a second (optional) init-file `early-init.el'. This patch includes some refactoring of the code in `startup.el' to provide for loading any number of init-files in an extensible way. I hope that the change can be included in Emacs 26.2 or Emacs 27. Feedback much appreciated. Best, Radon Rosborough [1]: https://lists.gnu.org/archive/html/emacs-devel/2017-08/msg00154.html [2]: https://lists.gnu.org/archive/html/emacs-devel/2017-08/msg00433.html [3]: https://lists.gnu.org/archive/html/emacs-devel/2017-09/msg00023.html --089e0823dc34f036130563924f39 Content-Type: application/octet-stream; name="0001-Add-early-init-file-stop-package-initialize-insertio.patch" Content-Disposition: attachment; filename="0001-Add-early-init-file-stop-package-initialize-insertio.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_jcu02vxf1 RnJvbSBjNzQwOTNhYjNkZGU5MDQyYTUwZWI2NWU3YWY0NjYyNWE4MzRiNjg5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSYWRvbiBSb3Nib3JvdWdoIDxyYWRvbi5uZW9uQGdtYWlsLmNv bT4KRGF0ZTogU3VuLCAxNyBEZWMgMjAxNyAxNzozMToxNyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hd IEFkZCBlYXJseSBpbml0IGZpbGUsIHN0b3AgcGFja2FnZS1pbml0aWFsaXplIGluc2VydGlvbgoK KiBsaXNwL3N0YXJ0dXAuZWwgKGVhcmx5LWluaXQtZmlsZSk6IE5ldyB2YXJpYWJsZSwgZm9yIHRo ZSBmaWxlbmFtZSBvZgogIHRoZSBlYXJseSBpbml0IGZpbGUgYWZ0ZXIgaXQgaGFzIGJlZW4gbG9h ZGVkLgoKKiBsaXNwL3N0YXJ0dXAuZWwgKGxvYWQtdXNlci1pbml0LWZpbGUpOiBOZXcgZnVuY3Rp b24sIHVzZWQgdG8KICBlbGltaW5hdGUgZHVwbGljYXRlIGNvZGUgaW4gbG9hZGluZyB0aGUgZWFy bHkgYW5kIHJlZ3VsYXIgaW5pdAogIGZpbGVzLgoKKiBsaXNwL3N0YXJ0dXAuZWwgKGNvbW1hbmQt bGluZSk6IExvYWQgdGhlIGVhcmx5IGluaXQgZmlsZSB1c2luZwogIGBsb2FkLXVzZXItaW5pdC1m aWxlJy4gTW92ZSB0aGUgY2hlY2sgZm9yIGFuIGludmFsaWQgdXNlcm5hbWUgdG8KICBqdXN0IGJl Zm9yZSB0aGF0LCBhbmQgbW92ZSB0aGUgaW5pdGlhbGl6YXRpb24gb2YgdGhlIHBhY2thZ2Ugc3lz dGVtCiAgdG8ganVzdCBhZnRlci4gTG9hZCB0aGUgcmVndWxhciBpbml0IGZpbGUgdXNpbmcKICBg bG9hZC11c2VyLWluaXQtZmlsZScuCgoqIHNyYy9scmVhZC5jIChWdXNlcl9pbml0X2ZpbGUpOiBO b3RlIGNoYW5nZSBpbiBzZW1hbnRpY3MgZHVlIHRvIGl0cwogIHVzYWdlIHdoaWxlIGxvYWRpbmcg dGhlIGVhcmx5IGluaXQgZmlsZS4KCiogbGlzcC9lbWFjcy1saXNwL3BhY2thZ2UuZWwgKHBhY2th Z2UtLWVuc3VyZS1pbml0LWZpbGUpOiBSZW1vdmUKICBkZWZpbml0aW9uLCB1c2FnZSwgYW5kIGRv Y3VtZW50YXRpb24uCgoqIGxpc3AvZW1hY3MtbGlzcC9wYWNrYWdlLmVsIChwYWNrYWdlLS1pbml0 LWZpbGUtZW5zdXJlZCk6IFJlbW92ZQogIGRlZmluaXRpb24gYW5kIHVzYWdlLgoKKiBkb2MvbGlz cHJlZi9vcy50ZXhpOiBEb2N1bWVudCBlYXJseSBpbml0IGZpbGUuCgoqIGRvYy9saXNwcmVmL3Bh Y2thZ2UudGV4aTogRG9jdW1lbnQgY2hhbmdlcyB0byB3aGVuCiAgcGFja2FnZS1pbml0aWFsaXpl IGlzIGNhbGxlZCwgYW5kIGFkdmlzZSBhZ2FpbnN0IGNhbGxpbmcgaXQgaW4gdGhlCiAgaW5pdCBm aWxlLgoKKiBkb2MvZW1hY3MvcGFja2FnZS50ZXhpOiBEb2N1bWVudCBjaGFuZ2VzIHRvIHdoZW4g cGFja2FnZS1pbml0aWFsaXplCiAgaXMgY2FsbGVkLgoKKiBkb2MvbWlzYy9vcmcudGV4aTogRG9u J3QgcmVjb21tZW5kIHRvIGNhbGwgcGFja2FnZS1pbml0aWFsaXplIGluIHRoZQogIGluaXQgZmls ZS4KCiogZXRjL05FV1M6IERvY3VtZW50IGNoYW5nZXMgdG8gc3RhcnR1cCBhbmQgcGFja2FnZS5l bC4KCkRpc2N1c3Npb24gb24gZW1hY3MtZGV2ZWwgbGVhZGluZyB1cCB0byB0aGlzIGNoYW5nZSAo YXBwcm94aW1hdGVseSAxNTAKbWVzc2FnZXMpOgoKLSBodHRwczovL2xpc3RzLmdudS5vcmcvYXJj aGl2ZS9odG1sL2VtYWNzLWRldmVsLzIwMTctMDgvbXNnMDAxNTQuaHRtbAotIGh0dHBzOi8vbGlz dHMuZ251Lm9yZy9hcmNoaXZlL2h0bWwvZW1hY3MtZGV2ZWwvMjAxNy0wOC9tc2cwMDQzMy5odG1s Ci0gaHR0cHM6Ly9saXN0cy5nbnUub3JnL2FyY2hpdmUvaHRtbC9lbWFjcy1kZXZlbC8yMDE3LTA5 L21zZzAwMDIzLmh0bWwKLSBodHRwczovL2xpc3RzLmdudS5vcmcvYXJjaGl2ZS9odG1sL2VtYWNz LWRldmVsLzIwMTctMDkvbXNnMDA1OTkuaHRtbAotIGh0dHBzOi8vbGlzdHMuZ251Lm9yZy9hcmNo aXZlL2h0bWwvZW1hY3MtZGV2ZWwvMjAxNy0xMC9tc2cwMDMzMi5odG1sCi0tLQogZG9jL2VtYWNz L3BhY2thZ2UudGV4aSAgICAgfCAgMjggKy0tCiBkb2MvbGlzcHJlZi9vcy50ZXhpICAgICAgICB8 ICAxNCArKwogZG9jL2xpc3ByZWYvcGFja2FnZS50ZXhpICAgfCAgMTYgKy0KIGRvYy9taXNjL29y Zy50ZXhpICAgICAgICAgIHwgICA0ICstCiBldGMvTkVXUyAgICAgICAgICAgICAgICAgICB8ICAx OCArKwogbGlzcC9lbWFjcy1saXNwL3BhY2thZ2UuZWwgfCAgNzEgKy0tLS0tLS0KIGxpc3Avc3Rh cnR1cC5lbCAgICAgICAgICAgIHwgNDI1ICsrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0t LS0tLS0tLS0tLS0tLQogc3JjL2xyZWFkLmMgICAgICAgICAgICAgICAgfCAgIDIgKy0KIDggZmls ZXMgY2hhbmdlZCwgMjg5IGluc2VydGlvbnMoKyksIDI4OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kb2MvZW1hY3MvcGFja2FnZS50ZXhpIGIvZG9jL2VtYWNzL3BhY2thZ2UudGV4aQppbmRl eCAyMTVmNTBjYjQwLi5iZDdjY2NjZTZjIDEwMDY0NAotLS0gYS9kb2MvZW1hY3MvcGFja2FnZS50 ZXhpCisrKyBiL2RvYy9lbWFjcy9wYWNrYWdlLnRleGkKQEAgLTI1MywzMCArMjUzLDE2IEBAIFBh Y2thZ2UgSW5zdGFsbGF0aW9uCiBjb25zdWx0IHRoZSBwYWNrYWdlJ3MgaGVscCBidWZmZXIuCiAK ICAgQnkgZGVmYXVsdCwgRW1hY3MgYWxzbyBhdXRvbWF0aWNhbGx5IGxvYWRzIGFsbCBpbnN0YWxs ZWQgcGFja2FnZXMgaW4KLXN1YnNlcXVlbnQgRW1hY3Mgc2Vzc2lvbnMuICBUaGlzIGhhcHBlbnMg YXQgc3RhcnR1cCwgYWZ0ZXIgcHJvY2Vzc2luZwotdGhlIGluaXQgZmlsZSAoQHB4cmVme0luaXQg RmlsZX0pLiAgQXMgYW4gZXhjZXB0aW9uLCBFbWFjcyBkb2VzIG5vdAotbG9hZCBwYWNrYWdlcyBh dCBzdGFydHVwIGlmIGludm9rZWQgd2l0aCB0aGUgQHNhbXB7LXF9IG9yCi1Ac2FtcHstLW5vLWlu aXQtZmlsZX0gb3B0aW9ucyAoQHB4cmVme0luaXRpYWwgT3B0aW9uc30pLgorc3Vic2VxdWVudCBF bWFjcyBzZXNzaW9ucy4gIFRoaXMgaGFwcGVucyBhdCBzdGFydHVwLCBiZWZvcmUgcHJvY2Vzc2lu ZwordGhlIGluaXQgZmlsZSBidXQgYWZ0ZXIgcHJvY2Vzc2luZyB0aGUgZWFybHkgaW5pdCBmaWxl IChAcHhyZWZ7RWFybHkKK0luaXQgRmlsZSwsLCBlbGlzcCwgVGhlIEVtYWNzIExpc3AgUmVmZXJl bmNlIE1hbnVhbH0pLiAgQXMgYW4KK2V4Y2VwdGlvbiwgRW1hY3MgZG9lcyBub3QgbG9hZCBwYWNr YWdlcyBhdCBzdGFydHVwIGlmIGludm9rZWQgd2l0aCB0aGUKK0BzYW1wey1xfSBvciBAc2FtcHst LW5vLWluaXQtZmlsZX0gb3B0aW9ucyAoQHhyZWZ7SW5pdGlhbCBPcHRpb25zfSkuCiAKIEB2aW5k ZXggcGFja2FnZS1lbmFibGUtYXQtc3RhcnR1cAogICBUbyBkaXNhYmxlIGF1dG9tYXRpYyBwYWNr YWdlIGxvYWRpbmcsIGNoYW5nZSB0aGUgdmFyaWFibGUKLUBjb2Rle3BhY2thZ2UtZW5hYmxlLWF0 LXN0YXJ0dXB9IHRvIEBjb2Rle25pbH0uCi0KLUBmaW5kZXggcGFja2FnZS1pbml0aWFsaXplCi0g IFRoZSByZWFzb24gYXV0b21hdGljIHBhY2thZ2UgbG9hZGluZyBvY2N1cnMgYWZ0ZXIgbG9hZGlu ZyB0aGUgaW5pdAotZmlsZSBpcyB0aGF0IHVzZXIgb3B0aW9ucyBvbmx5IHJlY2VpdmUgdGhlaXIg Y3VzdG9taXplZCB2YWx1ZXMgYWZ0ZXIKLWxvYWRpbmcgdGhlIGluaXQgZmlsZSwgaW5jbHVkaW5n IHVzZXIgb3B0aW9ucyB3aGljaCBhZmZlY3QgdGhlCi1wYWNrYWdpbmcgc3lzdGVtLiAgSW4gc29t ZSBjaXJjdW1zdGFuY2VzLCB5b3UgbWF5IHdhbnQgdG8gbG9hZAotcGFja2FnZXMgZXhwbGljaXRs eSBpbiB5b3VyIGluaXQgZmlsZSAodXN1YWxseSBiZWNhdXNlIHNvbWUgb3RoZXIgY29kZQotaW4g eW91ciBpbml0IGZpbGUgZGVwZW5kcyBvbiBhIHBhY2thZ2UpLiAgSW4gdGhhdCBjYXNlLCB5b3Vy IGluaXQgZmlsZQotc2hvdWxkIGNhbGwgdGhlIGZ1bmN0aW9uIEBjb2Rle3BhY2thZ2UtaW5pdGlh bGl6ZX0uICBJdCBpcyB1cCB0byB5b3UKLXRvIGVuc3VyZSB0aGF0IHJlbGV2YW50IHVzZXIgb3B0 aW9ucywgc3VjaCBhcyBAY29kZXtwYWNrYWdlLWxvYWQtbGlzdH0KLShzZWUgYmVsb3cpLCBhcmUg c2V0IHVwIHByaW9yIHRvIHRoZSBAY29kZXtwYWNrYWdlLWluaXRpYWxpemV9IGNhbGwuCi1UaGlz IHdpbGwgYXV0b21hdGljYWxseSBzZXQgQGNvZGV7cGFja2FnZS1lbmFibGUtYXQtc3RhcnR1cH0g dG8gQGNvZGV7bmlsfSwgdG8KLWF2b2lkIGxvYWRpbmcgdGhlIHBhY2thZ2VzIGFnYWluIGFmdGVy IHByb2Nlc3NpbmcgdGhlIGluaXQgZmlsZS4KLUFsdGVybmF0aXZlbHksIHlvdSBtYXkgY2hvb3Nl IHRvIGNvbXBsZXRlbHkgaW5oaWJpdCBwYWNrYWdlIGxvYWRpbmcgYXQKLXN0YXJ0dXAsIGFuZCBp bnZva2UgdGhlIGNvbW1hbmQgQGtiZHtNLXggcGFja2FnZS1pbml0aWFsaXplfSB0byBsb2FkCi15 b3VyIHBhY2thZ2VzIG1hbnVhbGx5LgorQGNvZGV7cGFja2FnZS1lbmFibGUtYXQtc3RhcnR1cH0g dG8gQGNvZGV7bmlsfS4gIFlvdSBtdXN0IGRvIHRoaXMgaW4KK3RoZSBlYXJseSBpbml0IGZpbGUu ICBDdXJyZW50bHkgaXQgY2Fubm90IGJlIGRvbmUgdmlhIEN1c3RvbWl6ZS4KIAogQHZpbmRleCBw YWNrYWdlLWxvYWQtbGlzdAogICBGb3IgZmluZXIgY29udHJvbCBvdmVyIHBhY2thZ2UgbG9hZGlu ZywgeW91IGNhbiB1c2UgdGhlIHZhcmlhYmxlCmRpZmYgLS1naXQgYS9kb2MvbGlzcHJlZi9vcy50 ZXhpIGIvZG9jL2xpc3ByZWYvb3MudGV4aQppbmRleCA1MDE5NjBiZGMzLi5jNjk5MDkwOWFiIDEw MDY0NAotLS0gYS9kb2MvbGlzcHJlZi9vcy50ZXhpCisrKyBiL2RvYy9saXNwcmVmL29zLnRleGkK QEAgLTM2MSw2ICszNjEsNyBAQCBJbml0IEZpbGUKIEBjaW5kZXggaW5pdCBmaWxlCiBAY2luZGV4 IEBmaWxley5lbWFjc30KIEBjaW5kZXggQGZpbGV7aW5pdC5lbH0KK0BjaW5kZXggQGZpbGV7ZWFy bHktaW5pdC5lbH0KIAogICBXaGVuIHlvdSBzdGFydCBFbWFjcywgaXQgbm9ybWFsbHkgYXR0ZW1w dHMgdG8gbG9hZCB5b3VyIEBkZm57aW5pdAogZmlsZX0uICBUaGlzIGlzIGVpdGhlciBhIGZpbGUg bmFtZWQgQGZpbGV7LmVtYWNzfSBvciBAZmlsZXsuZW1hY3MuZWx9CkBAIC0zODQsNiArMzg1LDE5 IEBAIEluaXQgRmlsZQogZmlsZS4gIElmIHRob3NlIGVudmlyb25tZW50IHZhcmlhYmxlcyBhcmUg YWJzZW50LCB0aG91Z2gsIEVtYWNzIHVzZXMKIHlvdXIgdXNlci1pZCB0byBmaW5kIHlvdXIgaG9t ZSBkaXJlY3RvcnkuCiAKK0BjaW5kZXggZWFybHkgaW5pdCBmaWxlCisgIEVtYWNzIGFsc28gYXR0 ZW1wdHMgdG8gbG9hZCBhIHNlY29uZCBpbml0IGZpbGUsIGNhbGxlZCB0aGUKKyAgQGRmbntlYXJs eSBpbml0IGZpbGV9LCBpZiBpdCBleGlzdHMuICBUaGlzIGlzIGEgZmlsZSBuYW1lZAorICBAZmls ZXtlYXJseS1pbml0LmVsfSBpbiBhIHN1YmRpcmVjdG9yeSBuYW1lZCBAZmlsZXsuZW1hY3MuZH0g aW4geW91cgorICBob21lIGRpcmVjdG9yeS4gIFRoZSBkaWZmZXJlbmNlIGlzIHRoYXQgdGhlIGVh cmx5IGluaXQgZmlsZSBpcworICBsb2FkZWQgbXVjaCBlYXJsaWVyIGR1cmluZyB0aGUgc3RhcnR1 cCBwcm9jZXNzLCBzbyB5b3UgY2FuIHVzZSBpdCB0bworICBjdXN0b21pemUgc29tZSB0aGluZ3Mg dGhhdCBhcmUgaW5pdGlhbGl6ZWQgYmVmb3JlIGxvYWRpbmcgdGhlCisgIHJlZ3VsYXIgaW5pdCBm aWxlLiAgRm9yIGV4YW1wbGUsIGhlcmUgeW91IGNhbiBjdXN0b21pemUgdGhlIHByb2Nlc3MKKyAg b2YgbG9hZGluZyBpbnN0YWxsZWQgcGFja2FnZXMsIGJ5IHNldHRpbmcgdmFyaWFibGVzIHN1Y2gg YXMKKyAgQHZhcntwYWNrYWdlLWxvYWQtbGlzdH0gb3IKKyAgQHZhcntwYWNrYWdlLWVuYWJsZS1h dC1zdGFydHVwfS4gQHhyZWZ7UGFja2FnZSBJbnN0YWxsYXRpb24sLCwKKyAgZW1hY3MsVGhlIEdO VSBFbWFjcyBNYW51YWx9LgorCiBAY2luZGV4IGRlZmF1bHQgaW5pdCBmaWxlCiAgIEFuIEVtYWNz IGluc3RhbGxhdGlvbiBtYXkgaGF2ZSBhIEBkZm57ZGVmYXVsdCBpbml0IGZpbGV9LCB3aGljaCBp cyBhCiBMaXNwIGxpYnJhcnkgbmFtZWQgQGZpbGV7ZGVmYXVsdC5lbH0uICBFbWFjcyBmaW5kcyB0 aGlzIGZpbGUgdGhyb3VnaApkaWZmIC0tZ2l0IGEvZG9jL2xpc3ByZWYvcGFja2FnZS50ZXhpIGIv ZG9jL2xpc3ByZWYvcGFja2FnZS50ZXhpCmluZGV4IDE1M2VlNDg3NDEuLjJlOTNmMjliZDIgMTAw NjQ0Ci0tLSBhL2RvYy9saXNwcmVmL3BhY2thZ2UudGV4aQorKysgYi9kb2MvbGlzcHJlZi9wYWNr YWdlLnRleGkKQEAgLTEwNiwxMCArMTA2LDEyIEBAIFBhY2thZ2luZyBCYXNpY3MKIAogICBXaGVu ZXZlciBFbWFjcyBzdGFydHMgdXAsIGl0IGF1dG9tYXRpY2FsbHkgY2FsbHMgdGhlIGZ1bmN0aW9u CiBAY29kZXtwYWNrYWdlLWluaXRpYWxpemV9IHRvIGxvYWQgaW5zdGFsbGVkIHBhY2thZ2VzLiAg VGhpcyBpcyBkb25lCi1hZnRlciBsb2FkaW5nIHRoZSBpbml0IGZpbGUgYW5kIGFiYnJldiBmaWxl IChpZiBhbnkpIGFuZCBiZWZvcmUKLXJ1bm5pbmcgQGNvZGV7YWZ0ZXItaW5pdC1ob29rfSAoQHB4 cmVme1N0YXJ0dXAgU3VtbWFyeX0pLiAgQXV0b21hdGljCi1wYWNrYWdlIGxvYWRpbmcgaXMgZGlz YWJsZWQgaWYgdGhlIHVzZXIgb3B0aW9uCi1AY29kZXtwYWNrYWdlLWVuYWJsZS1hdC1zdGFydHVw fSBpcyBAY29kZXtuaWx9LgorYWZ0ZXIgbG9hZGluZyB0aGUgZWFybHkgaW5pdCBmaWxlLCBidXQg YmVmb3JlIGxvYWRpbmcgdGhlIGVhcmx5IGluaXQKK2ZpbGUgYW5kIGFiYnJldiBmaWxlIChpZiBh bnkpIGFuZCBiZWZvcmUgcnVubmluZworQGNvZGV7YWZ0ZXItaW5pdC1ob29rfSAoQHB4cmVme1N0 YXJ0dXAgU3VtbWFyeX0pLiAgQXV0b21hdGljIHBhY2thZ2UKK2xvYWRpbmcgaXMgZGlzYWJsZWQg aWYgdGhlIHVzZXIgb3B0aW9uCitAY29kZXtwYWNrYWdlLWVuYWJsZS1hdC1zdGFydHVwfSBpcyBA Y29kZXtuaWx9LiAgKE9mIGNvdXJzZSwgdGhlCitzZXR0aW5nIG9mIHRoaXMgdXNlciBvcHRpb24g bXVzdCBiZSBkb25lIGluIHRoZSBlYXJseSBpbml0IGZpbGUuKQogCiBAZGVmZm4gQ29tbWFuZCBw YWNrYWdlLWluaXRpYWxpemUgJm9wdGlvbmFsIG5vLWFjdGl2YXRlCiBUaGlzIGZ1bmN0aW9uIGlu aXRpYWxpemVzIEVtYWNzJyBpbnRlcm5hbCByZWNvcmQgb2Ygd2hpY2ggcGFja2FnZXMgYXJlCkBA IC0xMjMsNiArMTI1LDEyIEBAIFBhY2thZ2luZyBCYXNpY3MKIFRoZSBvcHRpb25hbCBhcmd1bWVu dCBAdmFye25vLWFjdGl2YXRlfSwgaWYgbm9uLUBjb2Rle25pbH0sIGNhdXNlcwogRW1hY3MgdG8g dXBkYXRlIGl0cyByZWNvcmQgb2YgaW5zdGFsbGVkIHBhY2thZ2VzIHdpdGhvdXQgYWN0dWFsbHkK IGxvYWRpbmcgdGhlbTsgaXQgaXMgZm9yIGludGVybmFsIHVzZSBvbmx5LgorCitJbiBtb3N0IGNh c2VzLCB5b3Ugc2hvdWxkIG5vdCBuZWVkIHRvIGNhbGwgQGNvZGV7cGFja2FnZS1pbml0aWFsaXpl fSwKK2FzIHRoaXMgaXMgZG9uZSBhdXRvbWF0aWNhbGx5IGR1cmluZyBzdGFydHVwLiAgU2ltcGx5 IG1ha2Ugc3VyZSB0byBwdXQKK2FueSBjb2RlIHRoYXQgc2hvdWxkIHJ1biBiZWZvcmUgQGNvZGV7 cGFja2FnZS1pbml0aWFsaXplfSBpbiB0aGUgZWFybHkKK2luaXQgZmlsZSwgYW5kIGFueSBjb2Rl IHRoYXQgc2hvdWxkIHJ1biBhZnRlciBpbiB0aGUgcHJpbWFyeSBpbml0CitmaWxlIChAeHJlZntJ bml0IEZpbGUsLCwgZW1hY3MsIFRoZSBHTlUgRW1hY3MgTWFudWFsfSkuCiBAZW5kIGRlZmZuCiAK IEBub2RlIFNpbXBsZSBQYWNrYWdlcwpkaWZmIC0tZ2l0IGEvZG9jL21pc2Mvb3JnLnRleGkgYi9k b2MvbWlzYy9vcmcudGV4aQppbmRleCAxZjZlMTAyODdkLi4zNmI3Zjg3MjQ4IDEwMDY0NAotLS0g YS9kb2MvbWlzYy9vcmcudGV4aQorKysgYi9kb2MvbWlzYy9vcmcudGV4aQpAQCAtODkwLDkgKzg5 MCw3IEBAIEluc3RhbGxhdGlvbgogYmVlbiB2aXNpdGVkLCBpLmUuLCB3aGVyZSBubyBPcmcgYnVp bHQtaW4gZnVuY3Rpb24gaGF2ZSBiZWVuIGxvYWRlZC4KIE90aGVyd2lzZSBhdXRvbG9hZCBPcmcg ZnVuY3Rpb25zIHdpbGwgbWVzcyB1cCB0aGUgaW5zdGFsbGF0aW9uLgogCi1UaGVuLCB0byBtYWtl IHN1cmUgeW91ciBPcmcgY29uZmlndXJhdGlvbiBpcyB0YWtlbiBpbnRvIGFjY291bnQsIGluaXRp YWxpemUKLXRoZSBwYWNrYWdlIHN5c3RlbSB3aXRoIEBjb2RleyhwYWNrYWdlLWluaXRpYWxpemUp fSBpbiB5b3VyIEVtYWNzIGluaXQgZmlsZQotYmVmb3JlIHNldHRpbmcgYW55IE9yZyBvcHRpb24u ICBJZiB5b3Ugd2FudCB0byB1c2UgT3JnJ3MgcGFja2FnZSByZXBvc2l0b3J5LAorSWYgeW91IHdh bnQgdG8gdXNlIE9yZydzIHBhY2thZ2UgcmVwb3NpdG9yeSwKIGNoZWNrIG91dCB0aGUgQHVyZWZ7 aHR0cDovL29yZ21vZGUub3JnL2VscGEuaHRtbCwgT3JnIEVMUEEgcGFnZX0uCiAKIEBzdWJzdWJo ZWFkaW5nIERvd25sb2FkaW5nIE9yZyBhcyBhbiBhcmNoaXZlCmRpZmYgLS1naXQgYS9ldGMvTkVX UyBiL2V0Yy9ORVdTCmluZGV4IDEzODJmOTZhMzcuLjRiYmYzZTIzN2EgMTAwNjQ0Ci0tLSBhL2V0 Yy9ORVdTCisrKyBiL2V0Yy9ORVdTCkBAIC00MSw2ICs0MSwyNCBAQCBjYW4gZW5hYmxlIGl0IHdo ZW4gY29uZmlndXJpbmcsIGUuZy4sICcuL2NvbmZpZ3VyZSBDRkxBR1M9Ii1nMyAtTzIKIAwKICog U3RhcnR1cCBDaGFuZ2VzIGluIEVtYWNzIDI3LjEKIAorKysrCisqKiBFbWFjcyBjYW4gbm93IGJl IGNvbmZpZ3VyZWQgdXNpbmcgYW4gZWFybHkgaW5pdCBmaWxlLgorVGhlIGZpbGUgaXMgY2FsbGVk IGVhcmx5LWluaXQuZWwsIGluIGB1c2VyLWVtYWNzLWRpcmVjdG9yeScuICBJdCBpcworbG9hZGVk IHZlcnkgZWFybHkgaW4gdGhlIHN0YXJ0dXAgcHJvY2VzczogaW4gcGFydGljdWxhciwgYmVmb3Jl CitncmFwaGljYWwgZWxlbWVudHMgc3VjaCBhcyB0aGUgdG9vbCBiYXIgYXJlIGluaXRpYWxpemVk LCBhbmQgYmVmb3JlCit0aGUgcGFja2FnZSBtYW5hZ2VyIGlzIGluaXRpYWxpemVkLgorCisrKysK KyoqIEVtYWNzIG5vdyBpbml0aWFsaXplcyBwYWNrYWdlLmVsIGJlZm9yZSBsb2FkaW5nIHRoZSBp bml0LWZpbGUuCitUaGlzIGlzIHBhcnQgb2YgYSBjaGFuZ2UgaW50ZW5kZWQgdG8gZWxpbWluYXRl IHRoZSBiZWhhdmlvciBvZgorcGFja2FnZS5lbCBpbnNlcnRpbmcgYSBjYWxsIHRvIChwYWNrYWdl LWluaXRpYWxpemUpIGludG8gdGhlCitpbml0LWZpbGUsIHdoaWNoIHdhcyBwcmV2aW91c2x5IGRv bmUgd2hlbiBFbWFjcyB3YXMgc3RhcnRlZC4gIFVzZXJzCit3aG8gZG8gbm90IGNvbmZpZ3VyZSBw YWNrYWdlLmVsIHZhcmlhYmxlcyBzdWNoIGFzIGBwYWNrYWdlLWxvYWQtbGlzdCcKK2FuZCBgcGFj a2FnZS11c2VyLWRpcicgbmVlZCBub3QgbWFrZSBhbnkgY29uZmlndXJhdGlvbiBjaGFuZ2VzLiAg VXNlcnMKK3dobyBkbyBjb25maWd1cmUgc3VjaCB2YXJpYWJsZXMgc2hvdWxkIHBsYWNlIHRoZSBj b25maWd1cmF0aW9uIGludG8KK3RoZSBuZXdseSBpbnRyb2R1Y2VkIGVhcmx5IGluaXQgZmlsZSwg d2hpY2ggaXMgbG9hZGVkIGJlZm9yZQorcGFja2FnZS5lbCBpcyBpbml0aWFsaXplZC4KKwogDAog KiBDaGFuZ2VzIGluIEVtYWNzIDI3LjEKIApkaWZmIC0tZ2l0IGEvbGlzcC9lbWFjcy1saXNwL3Bh Y2thZ2UuZWwgYi9saXNwL2VtYWNzLWxpc3AvcGFja2FnZS5lbAppbmRleCBmOGI0Y2M4ODhkLi44 MTViNjc5Y2FlIDEwMDY0NAotLS0gYS9saXNwL2VtYWNzLWxpc3AvcGFja2FnZS5lbAorKysgYi9s aXNwL2VtYWNzLWxpc3AvcGFja2FnZS5lbApAQCAtMTQzMSwxNiArMTQzMSwxMSBAQCBwYWNrYWdl LXJlYWQtYWxsLWFyY2hpdmUtY29udGVudHMKIDs7IGF2YWlsYWJsZSBvbiBkaXNrLgogKGRlZnZh ciBwYWNrYWdlLS1pbml0aWFsaXplZCBuaWwpCiAKLShkZWZ2YXIgcGFja2FnZS0taW5pdC1maWxl LWVuc3VyZWQgbmlsCi0gICJXaGV0aGVyIHdlIGtub3cgdGhlIGluaXQgZmlsZSBoYXMgcGFja2Fn ZS1pbml0aWFsaXplLiIpCi0KIDs7OyMjI2F1dG9sb2FkCiAoZGVmdW4gcGFja2FnZS1pbml0aWFs aXplICgmb3B0aW9uYWwgbm8tYWN0aXZhdGUpCiAgICJMb2FkIEVtYWNzIExpc3AgcGFja2FnZXMs IGFuZCBhY3RpdmF0ZSB0aGVtLgogVGhlIHZhcmlhYmxlIGBwYWNrYWdlLWxvYWQtbGlzdCcgY29u dHJvbHMgd2hpY2ggcGFja2FnZXMgdG8gbG9hZC4KIElmIG9wdGlvbmFsIGFyZyBOTy1BQ1RJVkFU RSBpcyBub24tbmlsLCBkb24ndCBhY3RpdmF0ZSBwYWNrYWdlcy4KLUlmIGB1c2VyLWluaXQtZmls ZScgZG9lcyBub3QgbWVudGlvbiBgKHBhY2thZ2UtaW5pdGlhbGl6ZSknLCBhZGQKLWl0IHRvIHRo ZSBmaWxlLgogSWYgY2FsbGVkIGFzIHBhcnQgb2YgbG9hZGluZyBgdXNlci1pbml0LWZpbGUnLCBz ZXQKIGBwYWNrYWdlLWVuYWJsZS1hdC1zdGFydHVwJyB0byBuaWwsIHRvIHByZXZlbnQgYWNjaWRl bnRhbGx5CiBsb2FkaW5nIHBhY2thZ2VzIHR3aWNlLgpAQCAtMTQ0OSwxMyArMTQ0NCw3IEBAIHBh Y2thZ2UtaW5pdGlhbGl6ZQogdGFrZW4gY2FyZSBvZiBieSBgcGFja2FnZS1pbml0aWFsaXplJy4i CiAgIChpbnRlcmFjdGl2ZSkKICAgKHNldHEgcGFja2FnZS1hbGlzdCBuaWwpCi0gIChpZiBhZnRl ci1pbml0LXRpbWUKLSAgICAgIChwYWNrYWdlLS1lbnN1cmUtaW5pdC1maWxlKQotICAgIDs7IElm IGBwYWNrYWdlLWluaXRpYWxpemUnIGlzIGJlZm9yZSB3ZSBmaW5pc2hlZCBsb2FkaW5nIHRoZSBp bml0Ci0gICAgOzsgZmlsZSwgaXQncyBvYnZpb3VzIHdlIGRvbid0IG5lZWQgdG8gZW5zdXJlLWlu aXQuCi0gICAgKHNldHEgcGFja2FnZS0taW5pdC1maWxlLWVuc3VyZWQgdAotICAgICAgICAgIDs7 IEFuZCBsaWtlbHkgd2UgZG9uJ3QgbmVlZCB0byBydW4gaXQgYWdhaW4gYWZ0ZXIgaW5pdC4KLSAg ICAgICAgICBwYWNrYWdlLWVuYWJsZS1hdC1zdGFydHVwIG5pbCkpCisgIChzZXRxIHBhY2thZ2Ut ZW5hYmxlLWF0LXN0YXJ0dXAgbmlsKQogICAocGFja2FnZS1sb2FkLWFsbC1kZXNjcmlwdG9ycykK ICAgKHBhY2thZ2UtcmVhZC1hbGwtYXJjaGl2ZS1jb250ZW50cykKICAgKHVubGVzcyBuby1hY3Rp dmF0ZQpAQCAtMTg3Miw2NCArMTg2MSw2IEBAIHBhY2thZ2UtZG93bmxvYWQtdHJhbnNhY3Rpb24K IHVzaW5nIGBwYWNrYWdlLWNvbXB1dGUtdHJhbnNhY3Rpb24nLiIKICAgKG1hcGMgIydwYWNrYWdl LWluc3RhbGwtZnJvbS1hcmNoaXZlIHBhY2thZ2VzKSkKIAotKGRlZnVuIHBhY2thZ2UtLWVuc3Vy ZS1pbml0LWZpbGUgKCkKLSAgIkVuc3VyZSB0aGF0IHRoZSB1c2VyJ3MgaW5pdCBmaWxlIGhhcyBg cGFja2FnZS1pbml0aWFsaXplJy4KLWBwYWNrYWdlLWluaXRpYWxpemUnIGRvZXNuJ3QgaGF2ZSB0 byBiZSBjYWxsZWQsIGFzIGxvbmcgYXMgaXQgaXMKLXByZXNlbnQgc29tZXdoZXJlIGluIHRoZSBm aWxlLCBldmVuIGFzIGEgY29tbWVudC4gIElmIGl0IGlzIG5vdCwKLWFkZCBhIGNhbGwgdG8gaXQg YWxvbmcgd2l0aCBzb21lIGV4cGxhbmF0b3J5IGNvbW1lbnRzLiIKLSAgOzsgRG9uJ3QgbWVzcyB3 aXRoIHRoZSBpbml0LWZpbGUgZnJvbSAiZW1hY3MgLVEiLgotICAod2hlbiAoYW5kIChzdHJpbmdw IHVzZXItaW5pdC1maWxlKQotICAgICAgICAgICAgIChub3QgcGFja2FnZS0taW5pdC1maWxlLWVu c3VyZWQpCi0gICAgICAgICAgICAgKGZpbGUtcmVhZGFibGUtcCB1c2VyLWluaXQtZmlsZSkKLSAg ICAgICAgICAgICAoZmlsZS13cml0YWJsZS1wIHVzZXItaW5pdC1maWxlKSkKLSAgICAobGV0KiAo KGJ1ZmZlciAoZmluZC1idWZmZXItdmlzaXRpbmcgdXNlci1pbml0LWZpbGUpKQotICAgICAgICAg ICBidWZmZXItbmFtZQotICAgICAgICAgICAoY29udGFpbnMtaW5pdAotICAgICAgICAgICAgKGlm IGJ1ZmZlcgotICAgICAgICAgICAgICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIGJ1ZmZlcgotICAg ICAgICAgICAgICAgICAgKHNhdmUtZXhjdXJzaW9uCi0gICAgICAgICAgICAgICAgICAgIChzYXZl LXJlc3RyaWN0aW9uCi0gICAgICAgICAgICAgICAgICAgICAgKHdpZGVuKQotICAgICAgICAgICAg ICAgICAgICAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCi0gICAgICAgICAgICAgICAgICAgICAg KHJlLXNlYXJjaC1mb3J3YXJkICIocGFja2FnZS1pbml0aWFsaXplXFxfPiIgbmlsICdub2Vycm9y KSkpKQotICAgICAgICAgICAgICA7OyBEb24ndCB2aXNpdCB0aGUgZmlsZSBpZiB3ZSBkb24ndCBo YXZlIHRvLgotICAgICAgICAgICAgICAod2l0aC10ZW1wLWJ1ZmZlcgotICAgICAgICAgICAgICAg IChpbnNlcnQtZmlsZS1jb250ZW50cyB1c2VyLWluaXQtZmlsZSkKLSAgICAgICAgICAgICAgICAo Z290by1jaGFyIChwb2ludC1taW4pKQotICAgICAgICAgICAgICAgIChyZS1zZWFyY2gtZm9yd2Fy ZCAiKHBhY2thZ2UtaW5pdGlhbGl6ZVxcXz4iIG5pbCAnbm9lcnJvcikpKSkpCi0gICAgICAodW5s ZXNzIGNvbnRhaW5zLWluaXQKLSAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgKG9yIGJ1ZmZl cgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKGRlbGF5LW1vZGUtaG9v a3MgdCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmaW5kLWZpbGUt dmlzaXQtdHJ1ZW5hbWUgdCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChm aW5kLWZpbGUtbm9zZWxlY3QgdXNlci1pbml0LWZpbGUpKSkKLSAgICAgICAgICAod2hlbiBidWZm ZXIKLSAgICAgICAgICAgIChzZXRxIGJ1ZmZlci1uYW1lIChidWZmZXItZmlsZS1uYW1lKSkKLSAg ICAgICAgICAgIChzZXQtdmlzaXRlZC1maWxlLW5hbWUgKGZpbGUtY2hhc2UtbGlua3MgdXNlci1p bml0LWZpbGUpKSkKLSAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KLSAgICAgICAgICAgIChzYXZl LXJlc3RyaWN0aW9uCi0gICAgICAgICAgICAgICh3aWRlbikKLSAgICAgICAgICAgICAgKGdvdG8t Y2hhciAocG9pbnQtbWluKSkKLSAgICAgICAgICAgICAgKHdoaWxlIChhbmQgKGxvb2tpbmctYXQt cCAiW1s6Ymxhbms6XV0qXFwoO1xcfCRcXCkiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAo bm90IChlb2JwKSkpCi0gICAgICAgICAgICAgICAgKGZvcndhcmQtbGluZSAxKSkKLSAgICAgICAg ICAgICAgKGluc2VydAotICAgICAgICAgICAgICAgIlxuIgotICAgICAgICAgICAgICAgIjs7IEFk ZGVkIGJ5IFBhY2thZ2UuZWwuICBUaGlzIG11c3QgY29tZSBiZWZvcmUgY29uZmlndXJhdGlvbnMg b2ZcbiIKLSAgICAgICAgICAgICAgICI7OyBpbnN0YWxsZWQgcGFja2FnZXMuICBEb24ndCBkZWxl dGUgdGhpcyBsaW5lLiAgSWYgeW91IGRvbid0IHdhbnQgaXQsXG4iCi0gICAgICAgICAgICAgICAi OzsganVzdCBjb21tZW50IGl0IG91dCBieSBhZGRpbmcgYSBzZW1pY29sb24gdG8gdGhlIHN0YXJ0 IG9mIHRoZSBsaW5lLlxuIgotICAgICAgICAgICAgICAgIjs7IFlvdSBtYXkgZGVsZXRlIHRoZXNl IGV4cGxhbmF0b3J5IGNvbW1lbnRzLlxuIgotICAgICAgICAgICAgICAgIihwYWNrYWdlLWluaXRp YWxpemUpXG4iKQotICAgICAgICAgICAgICAodW5sZXNzIChsb29raW5nLWF0LXAgIiQiKQotICAg ICAgICAgICAgICAgIChpbnNlcnQgIlxuIikpCi0gICAgICAgICAgICAgIChsZXQgKChmaWxlLXBy ZWNpb3VzLWZsYWcgdCkpCi0gICAgICAgICAgICAgICAgKHNhdmUtYnVmZmVyKSkKLSAgICAgICAg ICAgICAgKGlmIGJ1ZmZlcgotICAgICAgICAgICAgICAgICAgKHByb2duCi0gICAgICAgICAgICAg ICAgICAgIChzZXQtdmlzaXRlZC1maWxlLW5hbWUgYnVmZmVyLW5hbWUpCi0gICAgICAgICAgICAg ICAgICAgIChzZXQtYnVmZmVyLW1vZGlmaWVkLXAgbmlsKSkKLSAgICAgICAgICAgICAgICAoa2ls bC1idWZmZXIgKGN1cnJlbnQtYnVmZmVyKSkpKSkpKSkpCi0gIChzZXRxIHBhY2thZ2UtLWluaXQt ZmlsZS1lbnN1cmVkIHQpKQotCiA7OzsjIyNhdXRvbG9hZAogKGRlZnVuIHBhY2thZ2UtaW5zdGFs bCAocGtnICZvcHRpb25hbCBkb250LXNlbGVjdCkKICAgIkluc3RhbGwgdGhlIHBhY2thZ2UgUEtH LgpkaWZmIC0tZ2l0IGEvbGlzcC9zdGFydHVwLmVsIGIvbGlzcC9zdGFydHVwLmVsCmluZGV4IDQ1 NzVmMWY5NGQuLmRlODU5MzM5ODMgMTAwNjQ0Ci0tLSBhL2xpc3Avc3RhcnR1cC5lbAorKysgYi9s aXNwL3N0YXJ0dXAuZWwKQEAgLTMxMiw2ICszMTIsMTUgQEAgaW5oaWJpdC1zdGFydHVwLWhvb2tz CiBDdXJyZW50bHkgdGhpcyBhcHBsaWVzIHRvOiBgZW1hY3Mtc3RhcnR1cC1ob29rJywgYHRlcm0t c2V0dXAtaG9vaycsCiBhbmQgYHdpbmRvdy1zZXR1cC1ob29rJy4iKQogCisoZGVmdmFyIGVhcmx5 LWluaXQtZmlsZSBuaWwKKyAgIkZpbGUgbmFtZSwgaW5jbHVkaW5nIGRpcmVjdG9yeSwgb2YgdXNl cidzIGVhcmx5IGluaXQgZmlsZS4KK0lmIHRoZSBmaWxlIGxvYWRlZCBoYWQgZXh0ZW5zaW9uIGAu ZWxjJywgYW5kIHRoZSBjb3JyZXNwb25kaW5nCitzb3VyY2UgZmlsZSBleGlzdHMsIHRoaXMgdmFy aWFibGUgY29udGFpbnMgdGhlIG5hbWUgb2Ygc291cmNlCitmaWxlLCBzdWl0YWJsZSBmb3IgdXNl IGJ5IGZ1bmN0aW9ucyBsaWtlIGBjdXN0b20tc2F2ZS1hbGwnIHdoaWNoCitlZGl0IHRoZSBpbml0 IGZpbGUuICBXaGlsZSBFbWFjcyBsb2FkcyBhbmQgZXZhbHVhdGVzIHRoZSBpbml0CitmaWxlLCB2 YWx1ZSBpcyB0aGUgcmVhbCBuYW1lIG9mIHRoZSBmaWxlLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIK K29yIG5vdCBpdCBoYXMgdGhlIGAuZWxjJyBleHRlbnNpb24uIikKKwogKGRlZnZhciBrZXlib2Fy ZC10eXBlIG5pbAogICAiVGhlIGJyYW5kIG9mIGtleWJvYXJkIHlvdSBhcmUgdXNpbmcuCiBUaGlz IHZhcmlhYmxlIGlzIHVzZWQgdG8gZGVmaW5lIHRoZSBwcm9wZXIgZnVuY3Rpb24gYW5kIGtleXBh ZApAQCAtODcwLDYgKzg3OSwxMjkgQEAgc3RhcnR1cC0tc2V0dXAtcXVvdGUtZGlzcGxheQogICAg ICAgICAgICh3aGVuIHN0YW5kYXJkLWRpc3BsYXktdGFibGUKICAgICAgICAgICAgIChhc2V0IHN0 YW5kYXJkLWRpc3BsYXktdGFibGUgY2hhciBuaWwpKSkpKSkpCiAKKyhkZWZ1biBsb2FkLXVzZXIt aW5pdC1maWxlCisgICAgKGNvbXB1dGUtZmlsZW5hbWUgJm9wdGlvbmFsIGNvbXB1dGUtYWx0ZXJu YXRlLWZpbGVuYW1lIGxvYWQtZGVmYXVsdHMpCisgICJMb2FkIGEgdXNlciBpbml0LWZpbGUuCitD T01QVVRFLUZJTEVOQU1FIGlzIGNhbGxlZCB3aXRoIG5vIGFyZ3VtZW50cyBhbmQgc2hvdWxkIHJl dHVybgordGhlIG5hbWUgb2YgdGhlIGluaXQtZmlsZSB0byBsb2FkLiBJZiB0aGlzIGZpbGUgY2Fu bm90IGJlIGxvYWRlZCwKK2FuZCBDT01QVVRFLUFMVEVSTkFURS1GSUxFTkFNRSBpcyBub24tbmls LCB0aGVuIGl0IGlzIGNhbGxlZCB3aXRoCitubyBhcmd1bWVudHMgYW5kIHNob3VsZCByZXR1cm4g dGhlIG5hbWUgb2YgYW4gYWx0ZXJuYXRlIGluaXQtZmlsZQordG8gbG9hZC4gSWYgTE9BRC1ERUZB VUxUUyBpcyBub24tbmlsLCB0aGVuIGxvYWQgZGVmYXVsdC5lbCBhZnRlcgordGhlIGluaXQtZmls ZS4KKworVGhpcyBmdW5jdGlvbiBzZXRzIGB1c2VyLWluaXQtZmlsZScgdG8gdGhlIG5hbWUgb2Yg dGhlIGxvYWRlZAoraW5pdC1maWxlLCBvciB0byBhIGRlZmF1bHQgdmFsdWUgaWYgbG9hZGluZyBp cyBub3QgcG9zc2libGUuIgorICAobGV0ICgoZGVidWctb24tZXJyb3ItZnJvbS1pbml0LWZpbGUg bmlsKQorICAgICAgICAoZGVidWctb24tZXJyb3Itc2hvdWxkLWJlLXNldCBuaWwpCisgICAgICAg IChkZWJ1Zy1vbi1lcnJvci1pbml0aWFsCisgICAgICAgICAoaWYgKGVxIGluaXQtZmlsZS1kZWJ1 ZyB0KQorICAgICAgICAgICAgICdzdGFydHVwCisgICAgICAgICAgIGluaXQtZmlsZS1kZWJ1Zykp CisgICAgICAgIChvcmlnLWVuYWJsZS1tdWx0aWJ5dGUgKGRlZmF1bHQtdmFsdWUgJ2VuYWJsZS1t dWx0aWJ5dGUtY2hhcmFjdGVycykpKQorICAgIChsZXQgKChkZWJ1Zy1vbi1lcnJvciBkZWJ1Zy1v bi1lcnJvci1pbml0aWFsKQorICAgICAgICAgIDs7IFdlIGNyZWF0ZSBhbiBhbm9ueW1vdXMgZnVu Y3Rpb24gaGVyZSBzbyB0aGF0IHdlIGNhbiBjYWxsCisgICAgICAgICAgOzsgaXQgaW4gZGlmZmVy ZW50IGNvbnRleHRzIGRlcGVuZGluZyBvbiB0aGUgdmFsdWUgb2YKKyAgICAgICAgICA7OyBgZGVi dWctb24tZXJyb3InLgorICAgICAgICAgIChyZWFkLWluaXQtZmlsZQorICAgICAgICAgICAobGFt YmRhICgpCisgICAgICAgICAgICAgKHdoZW4gaW5pdC1maWxlLXVzZXIKKyAgICAgICAgICAgICAg IChsZXQgKChpbml0LWZpbGUtbmFtZSAoZnVuY2FsbCBjb21wdXRlLWZpbGVuYW1lKSkpCisKKyAg ICAgICAgICAgICAgICAgOzsgSWYgYHVzZXItaW5pdC1maWxlJyBpcyB0LCB0aGVuIGBsb2FkJyB3 aWxsIHN0b3JlCisgICAgICAgICAgICAgICAgIDs7IHRoZSBuYW1lIG9mIHRoZSBmaWxlIHRoYXQg aXQgbG9hZHMgaW50bworICAgICAgICAgICAgICAgICA7OyBgdXNlci1pbml0LWZpbGUnLgorICAg ICAgICAgICAgICAgICAoc2V0cSB1c2VyLWluaXQtZmlsZSB0KQorICAgICAgICAgICAgICAgICAo bG9hZCBpbml0LWZpbGUtbmFtZSAnbm9lcnJvciAnbm9tZXNzYWdlKQorCisgICAgICAgICAgICAg ICAgICh3aGVuIChlcSB1c2VyLWluaXQtZmlsZSB0KQorICAgICAgICAgICAgICAgICAgIChsZXQg KChhbHQtZmlsZS1uYW1lIChmdW5jYWxsIGNvbXB1dGUtYWx0ZXJuYXRlLWZpbGVuYW1lKSkpCisg ICAgICAgICAgICAgICAgICAgICAobG9hZCBhbHQtZmlsZS1uYW1lICdub2Vycm9yICdub21lc3Nh Z2UpCisKKyAgICAgICAgICAgICAgICAgICAgIDs7IElmIHdlIGRpZCBub3QgZmluZCB0aGUgdXNl cidzIGluaXQgZmlsZSwgc2V0CisgICAgICAgICAgICAgICAgICAgICA7OyB1c2VyLWluaXQtZmls ZSBjb25jbHVzaXZlbHkuICBEb24ndCBsZXQgaXQgYmUKKyAgICAgICAgICAgICAgICAgICAgIDs7 IHNldCBmcm9tIGRlZmF1bHQuZWwuCisgICAgICAgICAgICAgICAgICAgICAod2hlbiAoZXEgdXNl ci1pbml0LWZpbGUgdCkKKyAgICAgICAgICAgICAgICAgICAgICAgKHNldHEgdXNlci1pbml0LWZp bGUgaW5pdC1maWxlLW5hbWUpKSkpKQorCisgICAgICAgICAgICAgICA7OyBJZiB3ZSBsb2FkZWQg YSBjb21waWxlZCBmaWxlLCBzZXQgYHVzZXItaW5pdC1maWxlJyB0bworICAgICAgICAgICAgICAg OzsgdGhlIHNvdXJjZSB2ZXJzaW9uIGlmIHRoYXQgZXhpc3RzLgorICAgICAgICAgICAgICAgKHdo ZW4gKGVxdWFsIChmaWxlLW5hbWUtZXh0ZW5zaW9uIHVzZXItaW5pdC1maWxlKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJlbGMiKQorICAgICAgICAgICAgICAgICAobGV0KiAoKHNvdXJj ZSAoZmlsZS1uYW1lLXNhbnMtZXh0ZW5zaW9uIHVzZXItaW5pdC1maWxlKSkKKyAgICAgICAgICAg ICAgICAgICAgICAgIChhbHQgKGNvbmNhdCBzb3VyY2UgIi5lbCIpKSkKKyAgICAgICAgICAgICAg ICAgICAoc2V0cSBzb3VyY2UgKGNvbmQgKChmaWxlLWV4aXN0cy1wIGFsdCkgYWx0KQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGZpbGUtZXhpc3RzLXAgc291cmNlKSBz b3VyY2UpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0IG5pbCkpKQor ICAgICAgICAgICAgICAgICAgICh3aGVuIHNvdXJjZQorICAgICAgICAgICAgICAgICAgICAgKHdo ZW4gKGZpbGUtbmV3ZXItdGhhbi1maWxlLXAgc291cmNlIHVzZXItaW5pdC1maWxlKQorICAgICAg ICAgICAgICAgICAgICAgICAobWVzc2FnZSAiV2FybmluZzogJXMgaXMgbmV3ZXIgdGhhbiAlcyIK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlIHVzZXItaW5pdC1maWxlKQor ICAgICAgICAgICAgICAgICAgICAgICAoc2l0LWZvciAxKSkKKyAgICAgICAgICAgICAgICAgICAg IChzZXRxIHVzZXItaW5pdC1maWxlIHNvdXJjZSkpKSkKKworICAgICAgICAgICAgICAgKHdoZW4g bG9hZC1kZWZhdWx0cworCisgICAgICAgICAgICAgICAgIDs7IFByZXZlbnQgZGVmYXVsdC5lbCBm cm9tIGNoYW5naW5nIHRoZSB2YWx1ZSBvZgorICAgICAgICAgICAgICAgICA7OyBgaW5oaWJpdC1z dGFydHVwLXNjcmVlbicuCisgICAgICAgICAgICAgICAgIChsZXQgKChpbmhpYml0LXN0YXJ0dXAt c2NyZWVuIG5pbCkpCisgICAgICAgICAgICAgICAgICAgKGxvYWQgImRlZmF1bHQiICdub2Vycm9y ICdub21lc3NhZ2UpKSkpKSkpCisgICAgICA7OyBOb3cgY2FsbCBvdXIgYW5vbnltb3VzIGZ1bmN0 aW9uLgorICAgICAgKGlmIGluaXQtZmlsZS1kZWJ1ZworICAgICAgICAgIDs7IERvIHRoaXMgd2l0 aG91dCBhIGBjb25kaXRpb24tY2FzZScgaWYgdGhlIHVzZXIgd2FudHMgdG8KKyAgICAgICAgICA7 OyBkZWJ1Zy4KKyAgICAgICAgICAoZnVuY2FsbCByZWFkLWluaXQtZmlsZSkKKyAgICAgICAgKGNv bmRpdGlvbi1jYXNlIGVycm9yCisgICAgICAgICAgICAocHJvZ24KKyAgICAgICAgICAgICAgKGZ1 bmNhbGwgcmVhZC1pbml0LWZpbGUpCisKKyAgICAgICAgICAgICAgOzsgSWYgYSBwcmV2aW91cyBp bml0LWZpbGUgaGFkIGFuIGVycm9yLCBkb24ndCBmb3JnZXQKKyAgICAgICAgICAgICAgOzsgYWJv dXQgdGhhdC4KKyAgICAgICAgICAgICAgKHVubGVzcyBpbml0LWZpbGUtaGFkLWVycm9yCisgICAg ICAgICAgICAgICAgKHNldHEgaW5pdC1maWxlLWhhZC1lcnJvciBuaWwpKSkKKyAgICAgICAgICAo ZXJyb3IKKyAgICAgICAgICAgKGRpc3BsYXktd2FybmluZworICAgICAgICAgICAgJ2luaXRpYWxp emF0aW9uCisgICAgICAgICAgICAoZm9ybWF0LW1lc3NhZ2UgIlwKK0FuIGVycm9yIG9jY3VycmVk IHdoaWxlIGxvYWRpbmcgYCVzJzpcblxuJXMlcyVzXG5cblwKK1RvIGVuc3VyZSBub3JtYWwgb3Bl cmF0aW9uLCB5b3Ugc2hvdWxkIGludmVzdGlnYXRlIGFuZCByZW1vdmUgdGhlCitjYXVzZSBvZiB0 aGUgZXJyb3IgaW4geW91ciBpbml0aWFsaXphdGlvbiBmaWxlLiAgU3RhcnQgRW1hY3Mgd2l0aAor dGhlIGAtLWRlYnVnLWluaXQnIG9wdGlvbiB0byB2aWV3IGEgY29tcGxldGUgZXJyb3IgYmFja3Ry YWNlLiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyLWluaXQtZmlsZQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChnZXQgKGNhciBlcnJvcikgJ2Vycm9yLW1lc3NhZ2UpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChjZHIgZXJyb3IpICI6ICIgIiIpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKG1hcGNvbmNhdCAobGFtYmRhIChzKSAocHJpbjEtdG8t c3RyaW5nIHMgdCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2Ry IGVycm9yKSAiLCAiKSkKKyAgICAgICAgICAgIDp3YXJuaW5nKQorICAgICAgICAgICAoc2V0cSBp bml0LWZpbGUtaGFkLWVycm9yIHQpKSkpCisKKyAgICAgIDs7IElmIHdlIGNhbiB0ZWxsIHRoYXQg dGhlIGluaXQgZmlsZSBhbHRlcmVkIGRlYnVnLW9uLWVycm9yLAorICAgICAgOzsgYXJyYW5nZSB0 byBwcmVzZXJ2ZSB0aGUgdmFsdWUgdGhhdCBpdCBzZXQgdXAuCisgICAgICAob3IgKGVxIGRlYnVn LW9uLWVycm9yIGRlYnVnLW9uLWVycm9yLWluaXRpYWwpCisgICAgICAgICAgKHNldHEgZGVidWct b24tZXJyb3Itc2hvdWxkLWJlLXNldCB0CisgICAgICAgICAgICAgICAgZGVidWctb24tZXJyb3It ZnJvbS1pbml0LWZpbGUgZGVidWctb24tZXJyb3IpKSkKKworICAgICh3aGVuIGRlYnVnLW9uLWVy cm9yLXNob3VsZC1iZS1zZXQKKyAgICAgIChzZXRxIGRlYnVnLW9uLWVycm9yIGRlYnVnLW9uLWVy cm9yLWZyb20taW5pdC1maWxlKSkKKworICAgICh1bmxlc3MgKG9yIChkZWZhdWx0LXZhbHVlICdl bmFibGUtbXVsdGlieXRlLWNoYXJhY3RlcnMpCisgICAgICAgICAgICAgICAgKGVxIG9yaWctZW5h YmxlLW11bHRpYnl0ZSAoZGVmYXVsdC12YWx1ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAnZW5hYmxlLW11bHRpYnl0ZS1jaGFyYWN0ZXJzKSkpCisKKyAgICAg IDs7IEluaXQgZmlsZSBjaGFuZ2VkIHRvIHVuaWJ5dGUuICBSZXNldCBleGlzdGluZyBtdWx0aWJ5 dGUKKyAgICAgIDs7IGJ1ZmZlcnMgKHByb2JhYmx5ICpzY3JhdGNoKiwgKk1lc3NhZ2VzKiwgKk1p bmlidWYtMCopLgorICAgICAgOzsgQXJndWFibHkgdGhpcyBzaG91bGQgb25seSBiZSBkb25lIGlm IHRoZXkncmUgZnJlZSBvZgorICAgICAgOzsgbXVsdGlieXRlIGNoYXJhY3RlcnMuCisgICAgICAo bWFwYyAobGFtYmRhIChidWZmZXIpCisgICAgICAgICAgICAgICh3aXRoLWN1cnJlbnQtYnVmZmVy IGJ1ZmZlcgorICAgICAgICAgICAgICAgIChpZiBlbmFibGUtbXVsdGlieXRlLWNoYXJhY3RlcnMK KyAgICAgICAgICAgICAgICAgICAgKHNldC1idWZmZXItbXVsdGlieXRlIG5pbCkpKSkKKyAgICAg ICAgICAgIChidWZmZXItbGlzdCkpCisKKyAgICAgIDs7IEFsc28gcmUtc2V0IHRoZSBsYW5ndWFn ZSBlbnZpcm9ubWVudCBpbiBjYXNlIGl0IHdhcworICAgICAgOzsgb3JpZ2luYWxseSBkb25lIGJl Zm9yZSB1bmlieXRlIHdhcyBzZXQgYW5kIGlzIHNlbnNpdGl2ZSB0bworICAgICAgOzsgdW5pYnl0 ZSAoZGlzcGxheSB0YWJsZSwgdGVybWluYWwgY29kaW5nIHN5c3RlbSAmYykuCisgICAgICAoc2V0 LWxhbmd1YWdlLWVudmlyb25tZW50IGN1cnJlbnQtbGFuZ3VhZ2UtZW52aXJvbm1lbnQpKSkpCisK IChkZWZ1biBjb21tYW5kLWxpbmUgKCkKICAgIkEgc3Vicm91dGluZSBvZiBgbm9ybWFsLXRvcC1s ZXZlbCcuCiBBbW9uZ3N0IGFub3RoZXIgdGhpbmdzLCBpdCBwYXJzZXMgdGhlIGNvbW1hbmQtbGlu ZSBhcmd1bWVudHMuIgpAQCAtMTAyMSw2ICsxMTUzLDY5IEBAIGNvbW1hbmQtbGluZQogICAgIChh bmQgY29tbWFuZC1saW5lLWFyZ3MKICAgICAgICAgIChzZXRjZHIgY29tbWFuZC1saW5lLWFyZ3Mg YXJncykpKQogCisgIDs7IFdhcm4gZm9yIGludmFsaWQgdXNlciBuYW1lLgorICAod2hlbiBpbml0 LWZpbGUtdXNlcgorICAgIChpZiAoc3RyaW5nLW1hdGNoICJbfi86XG5dIiBpbml0LWZpbGUtdXNl cikKKyAgICAgICAgKGRpc3BsYXktd2FybmluZyAnaW5pdGlhbGl6YXRpb24KKyAgICAgICAgICAg ICAgICAgICAgICAgICAoZm9ybWF0ICJJbnZhbGlkIHVzZXIgbmFtZSAlcyIKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGluaXQtZmlsZS11c2VyKQorICAgICAgICAgICAgICAgICAg ICAgICAgIDplcnJvcikKKyAgICAgIChpZiAoZmlsZS1kaXJlY3RvcnktcCAoZXhwYW5kLWZpbGUt bmFtZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBXZSBkb24ndCBzdXBwb3J0IH5V U0VSIG9uIE1TLVdpbmRvd3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgYW5kIE1T LURPUyBleGNlcHQgZm9yIHRoZSBjdXJyZW50CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDs7IHVzZXIsIGFuZCBhbHdheXMgbG9hZCAuZW1hY3MgZnJvbQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA7OyB0aGUgY3VycmVudCB1c2VyJ3MgaG9tZSBkaXJlY3RvcnkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgOzsgKHNlZSBiZWxvdykuICBTbyBhbHdheXMgY2hlY2sgIn4i LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBldmVuIGlmIGludm9rZWQgd2l0aCAi LXUgVVNFUiIsIG9yCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IGlmICRVU0VSIG9y ICRMT0dOQU1FIGFyZSBzZXQgdG8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgc29t ZXRoaW5nIGRpZmZlcmVudC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChtZW1x IHN5c3RlbS10eXBlICcod2luZG93cy1udCBtcy1kb3MpKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIn4iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbmNhdCAi fiIgaW5pdC1maWxlLXVzZXIpKSkpCisgICAgICAgICAgbmlsCisgICAgICAgIChkaXNwbGF5LXdh cm5pbmcgJ2luaXRpYWxpemF0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcm1hdCAi VXNlciAlcyBoYXMgbm8gaG9tZSBkaXJlY3RvcnkiCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoaWYgKGVxdWFsIGluaXQtZmlsZS11c2VyICIiKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICh1c2VyLXJlYWwtbG9naW4tbmFtZSkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaW5pdC1maWxlLXVzZXIpKQorICAgICAgICAgICAgICAgICAg ICAgICAgIDplcnJvcikpKSkKKworICA7OyBMb2FkIHRoZSBlYXJseSBpbml0IGZpbGUsIGlmIGZv dW5kLgorICAobG9hZC11c2VyLWluaXQtZmlsZQorICAgKGxhbWJkYSAoKQorICAgICAoZXhwYW5k LWZpbGUtbmFtZQorICAgICAgImVhcmx5LWluaXQiCisgICAgICAoZmlsZS1uYW1lLWFzLWRpcmVj dG9yeQorICAgICAgIChjb25jYXQgIn4iIGluaXQtZmlsZS11c2VyICIvLmVtYWNzLmQiKSkpKSkK KyAgKHNldHEgZWFybHktaW5pdC1maWxlIHVzZXItaW5pdC1maWxlKQorCisgIDs7IElmIGFueSBw YWNrYWdlIGRpcmVjdG9yeSBleGlzdHMsIGluaXRpYWxpemUgdGhlIHBhY2thZ2Ugc3lzdGVtLgor ICAoYW5kIHVzZXItaW5pdC1maWxlCisgICAgICAgcGFja2FnZS1lbmFibGUtYXQtc3RhcnR1cAor ICAgICAgIChjYXRjaCAncGFja2FnZS1kaXItZm91bmQKKwkgKGxldCAoZGlycykKKwkgICAoaWYg KGJvdW5kcCAncGFja2FnZS1kaXJlY3RvcnktbGlzdCkKKwkgICAgICAgKHNldHEgZGlycyBwYWNr YWdlLWRpcmVjdG9yeS1saXN0KQorCSAgICAgKGRvbGlzdCAoZiBsb2FkLXBhdGgpCisJICAgICAg IChhbmQgKHN0cmluZ3AgZikKKwkJICAgIChlcXVhbCAoZmlsZS1uYW1lLW5vbmRpcmVjdG9yeSBm KSAic2l0ZS1saXNwIikKKwkJICAgIChwdXNoIChleHBhbmQtZmlsZS1uYW1lICJlbHBhIiBmKSBk aXJzKSkpKQorCSAgIChwdXNoIChpZiAoYm91bmRwICdwYWNrYWdlLXVzZXItZGlyKQorCQkgICAg IHBhY2thZ2UtdXNlci1kaXIKKwkJICAgKGxvY2F0ZS11c2VyLWVtYWNzLWZpbGUgImVscGEiKSkK KwkJIGRpcnMpCisJICAgKGRvbGlzdCAoZGlyIGRpcnMpCisJICAgICAod2hlbiAoZmlsZS1kaXJl Y3RvcnktcCBkaXIpCisJICAgICAgIChkb2xpc3QgKHN1YmRpciAoZGlyZWN0b3J5LWZpbGVzIGRp cikpCisJCSAod2hlbiAobGV0ICgoc3ViZGlyIChleHBhbmQtZmlsZS1uYW1lIHN1YmRpciBkaXIp KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAoYW5kIChmaWxlLWRpcmVjdG9yeS1wIHN1YmRp cikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmaWxlLWV4aXN0cy1wCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGV4cGFuZC1maWxlLW5hbWUKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKHBhY2thZ2UtLWRlc2NyaXB0aW9uLWZpbGUgc3ViZGlyKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJkaXIpKSkpCisJCSAgICh0aHJvdyAncGFj a2FnZS1kaXItZm91bmQgdCkpKSkpKSkKKyAgICAgICAocGFja2FnZS1pbml0aWFsaXplKSkKKwog ICA7OyBNYWtlIHN1cmUgd2luZG93IHN5c3RlbSdzIGluaXQgZmlsZSB3YXMgbG9hZGVkIGluIGxv YWR1cC5lbCBpZgogICA7OyB1c2luZyBhIHdpbmRvdyBzeXN0ZW0uCiAgIDs7IEluaXRpYWxpemUg dGhlIHdpbmRvdy1zeXN0ZW0gb25seSBhZnRlciBwcm9jZXNzaW5nIHRoZSBjb21tYW5kLWxpbmUK QEAgLTExMjcsMTcwICsxMzIyLDQ3IEBAIGNvbW1hbmQtbGluZQogICAgIDs7IHRoZSBzdGFydHVw IHNjcmVlbi4KICAgICAoc2V0cSBpbmhpYml0LXN0YXJ0dXAtc2NyZWVuIG5pbCkKIAotICAgIDs7 IFdhcm4gZm9yIGludmFsaWQgdXNlciBuYW1lLgotICAgICh3aGVuIGluaXQtZmlsZS11c2VyCi0g ICAgICAoaWYgKHN0cmluZy1tYXRjaCAiW34vOlxuXSIgaW5pdC1maWxlLXVzZXIpCi0JICAoZGlz cGxheS13YXJuaW5nICdpbml0aWFsaXphdGlvbgotCQkJICAgKGZvcm1hdCAiSW52YWxpZCB1c2Vy IG5hbWUgJXMiCi0JCQkJICAgaW5pdC1maWxlLXVzZXIpCi0JCQkgICA6ZXJyb3IpCi0JKGlmIChm aWxlLWRpcmVjdG9yeS1wIChleHBhbmQtZmlsZS1uYW1lCi0JCQkgICAgICAgOzsgV2UgZG9uJ3Qg c3VwcG9ydCB+VVNFUiBvbiBNUy1XaW5kb3dzCi0JCQkgICAgICAgOzsgYW5kIE1TLURPUyBleGNl cHQgZm9yIHRoZSBjdXJyZW50Ci0JCQkgICAgICAgOzsgdXNlciwgYW5kIGFsd2F5cyBsb2FkIC5l bWFjcyBmcm9tCi0JCQkgICAgICAgOzsgdGhlIGN1cnJlbnQgdXNlcidzIGhvbWUgZGlyZWN0b3J5 Ci0JCQkgICAgICAgOzsgKHNlZSBiZWxvdykuICBTbyBhbHdheXMgY2hlY2sgIn4iLAotCQkJICAg ICAgIDs7IGV2ZW4gaWYgaW52b2tlZCB3aXRoICItdSBVU0VSIiwgb3IKLQkJCSAgICAgICA7OyBp ZiAkVVNFUiBvciAkTE9HTkFNRSBhcmUgc2V0IHRvCi0JCQkgICAgICAgOzsgc29tZXRoaW5nIGRp ZmZlcmVudC4KLQkJCSAgICAgICAoaWYgKG1lbXEgc3lzdGVtLXR5cGUgJyh3aW5kb3dzLW50IG1z LWRvcykpCi0JCQkJICAgIn4iCi0JCQkJIChjb25jYXQgIn4iIGluaXQtZmlsZS11c2VyKSkpKQot CSAgICBuaWwKLQkgIChkaXNwbGF5LXdhcm5pbmcgJ2luaXRpYWxpemF0aW9uCi0JCQkgICAoZm9y bWF0ICJVc2VyICVzIGhhcyBubyBob21lIGRpcmVjdG9yeSIKLQkJCQkgICAoaWYgKGVxdWFsIGlu aXQtZmlsZS11c2VyICIiKQotCQkJCSAgICAgICAodXNlci1yZWFsLWxvZ2luLW5hbWUpCi0JCQkJ ICAgICBpbml0LWZpbGUtdXNlcikpCi0JCQkgICA6ZXJyb3IpKSkpCi0KICAgICA7OyBMb2FkIHRo YXQgdXNlcidzIGluaXQgZmlsZSwgb3IgdGhlIGRlZmF1bHQgb25lLCBvciBub25lLgotICAgIChs ZXQgKGRlYnVnLW9uLWVycm9yLWZyb20taW5pdC1maWxlCi0JICBkZWJ1Zy1vbi1lcnJvci1zaG91 bGQtYmUtc2V0Ci0JICAoZGVidWctb24tZXJyb3ItaW5pdGlhbAotCSAgIChpZiAoZXEgaW5pdC1m aWxlLWRlYnVnIHQpICdzdGFydHVwIGluaXQtZmlsZS1kZWJ1ZykpCi0JICAob3JpZy1lbmFibGUt bXVsdGlieXRlIChkZWZhdWx0LXZhbHVlICdlbmFibGUtbXVsdGlieXRlLWNoYXJhY3RlcnMpKSkK LSAgICAgIChsZXQgKChkZWJ1Zy1vbi1lcnJvciBkZWJ1Zy1vbi1lcnJvci1pbml0aWFsKQotCSAg ICA7OyBUaGlzIGZ1bmN0aW9uIGFjdHVhbGx5IHJlYWRzIHRoZSBpbml0IGZpbGVzLgotCSAgICAo aW5uZXIKLQkgICAgIChmdW5jdGlvbgotCSAgICAgIChsYW1iZGEgKCkKLQkJKGlmIGluaXQtZmls ZS11c2VyCi0JCSAgICAobGV0ICgodXNlci1pbml0LWZpbGUtMQotCQkJICAgKGNvbmQKLQkJCSAg ICAgKChlcSBzeXN0ZW0tdHlwZSAnbXMtZG9zKQotCQkJICAgICAgKGNvbmNhdCAifiIgaW5pdC1m aWxlLXVzZXIgIi9fZW1hY3MiKSkKLQkJCSAgICAgKChub3QgKGVxIHN5c3RlbS10eXBlICd3aW5k b3dzLW50KSkKLQkJCSAgICAgIChjb25jYXQgIn4iIGluaXQtZmlsZS11c2VyICIvLmVtYWNzIikp Ci0JCQkgICAgIDs7IEVsc2UgZGVhbCB3aXRoIHRoZSBXaW5kb3dzIHNpdHVhdGlvbgotCQkJICAg ICAoKGRpcmVjdG9yeS1maWxlcyAifiIgbmlsICJeXFwuZW1hY3NcXChcXC5lbGM/XFwpPyQiKQot CQkJICAgICAgOzsgUHJlZmVyIC5lbWFjcyBvbiBXaW5kb3dzLgotCQkJICAgICAgIn4vLmVtYWNz IikKLQkJCSAgICAgKChkaXJlY3RvcnktZmlsZXMgIn4iIG5pbCAiXl9lbWFjc1xcKFxcLmVsYz9c XCk/JCIpCi0JCQkgICAgICA7OyBBbHNvIHN1cHBvcnQgX2VtYWNzIGZvciBjb21wYXRpYmlsaXR5 LCBidXQgd2FybiBhYm91dCBpdC4KLQkJCSAgICAgIChwdXNoIGAoaW5pdGlhbGl6YXRpb24KLQkJ CQkgICAgICAsKGZvcm1hdC1tZXNzYWdlCi0JCQkJCSJgX2VtYWNzJyBpbml0IGZpbGUgaXMgZGVw cmVjYXRlZCwgcGxlYXNlIHVzZSBgLmVtYWNzJyIpKQotCQkJCSAgICBkZWxheWVkLXdhcm5pbmdz LWxpc3QpCi0JCQkgICAgICAifi9fZW1hY3MiKQotCQkJICAgICAodCA7OyBCdXQgZGVmYXVsdCB0 byAuZW1hY3MgaWYgX2VtYWNzIGRvZXMgbm90IGV4aXN0LgotCQkJICAgICAgIn4vLmVtYWNzIikp KSkKLQkJICAgICAgOzsgVGhpcyB0ZWxscyBgbG9hZCcgdG8gc3RvcmUgdGhlIGZpbGUgbmFtZSBm b3VuZAotCQkgICAgICA7OyBpbnRvIHVzZXItaW5pdC1maWxlLgotCQkgICAgICAoc2V0cSB1c2Vy LWluaXQtZmlsZSB0KQotCQkgICAgICAobG9hZCB1c2VyLWluaXQtZmlsZS0xIHQgdCkKLQotCQkg ICAgICAod2hlbiAoZXEgdXNlci1pbml0LWZpbGUgdCkKLQkJCTs7IElmIHdlIGRpZCBub3QgZmlu ZCB+Ly5lbWFjcywgdHJ5Ci0JCQk7OyB+Ly5lbWFjcy5kL2luaXQuZWwuCi0JCQkobGV0ICgob3Ro ZXJmaWxlCi0JCQkgICAgICAgKGV4cGFuZC1maWxlLW5hbWUKLQkJCQkiaW5pdCIKLQkJCQkoZmls ZS1uYW1lLWFzLWRpcmVjdG9yeQotCQkJCSAoY29uY2F0ICJ+IiBpbml0LWZpbGUtdXNlciAiLy5l bWFjcy5kIikpKSkpCi0JCQkgIChsb2FkIG90aGVyZmlsZSB0IHQpCi0KLQkJCSAgOzsgSWYgd2Ug ZGlkIG5vdCBmaW5kIHRoZSB1c2VyJ3MgaW5pdCBmaWxlLAotCQkJICA7OyBzZXQgdXNlci1pbml0 LWZpbGUgY29uY2x1c2l2ZWx5LgotCQkJICA7OyBEb24ndCBsZXQgaXQgYmUgc2V0IGZyb20gZGVm YXVsdC5lbC4KLQkJCSAgKHdoZW4gKGVxIHVzZXItaW5pdC1maWxlIHQpCi0JCQkgICAgKHNldHEg dXNlci1pbml0LWZpbGUgdXNlci1pbml0LWZpbGUtMSkpKSkKLQotCQkgICAgICA7OyBJZiB3ZSBs b2FkZWQgYSBjb21waWxlZCBmaWxlLCBzZXQKLQkJICAgICAgOzsgYHVzZXItaW5pdC1maWxlJyB0 byB0aGUgc291cmNlIHZlcnNpb24gaWYgdGhhdAotCQkgICAgICA7OyBleGlzdHMuCi0JCSAgICAg ICh3aGVuIChhbmQgdXNlci1pbml0LWZpbGUKLQkJCQkgKGVxdWFsIChmaWxlLW5hbWUtZXh0ZW5z aW9uIHVzZXItaW5pdC1maWxlKQotCQkJCQkiZWxjIikpCi0JCQkobGV0KiAoKHNvdXJjZSAoZmls ZS1uYW1lLXNhbnMtZXh0ZW5zaW9uIHVzZXItaW5pdC1maWxlKSkKLQkJCSAgICAgICAoYWx0IChj b25jYXQgc291cmNlICIuZWwiKSkpCi0JCQkgIChzZXRxIHNvdXJjZSAoY29uZCAoKGZpbGUtZXhp c3RzLXAgYWx0KSBhbHQpCi0JCQkJCSAgICAgKChmaWxlLWV4aXN0cy1wIHNvdXJjZSkgc291cmNl KQotCQkJCQkgICAgICh0IG5pbCkpKQotCQkJICAod2hlbiBzb3VyY2UKLQkJCSAgICAod2hlbiAo ZmlsZS1uZXdlci10aGFuLWZpbGUtcCBzb3VyY2UgdXNlci1pbml0LWZpbGUpCi0JCQkgICAgICAo bWVzc2FnZSAiV2FybmluZzogJXMgaXMgbmV3ZXIgdGhhbiAlcyIKLQkJCQkgICAgICAgc291cmNl IHVzZXItaW5pdC1maWxlKQotCQkJICAgICAgKHNpdC1mb3IgMSkpCi0JCQkgICAgKHNldHEgdXNl ci1pbml0LWZpbGUgc291cmNlKSkpKQotCi0JCSAgICAgICh1bmxlc3MgaW5oaWJpdC1kZWZhdWx0 LWluaXQKLSAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgKChpbmhpYml0LXN0YXJ0dXAtc2Ny ZWVuIG5pbCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIDs7IFVzZXJzIGFyZSBzdXBwb3Nl ZCB0byBiZSB0b2xkIHRoZWlyIHJpZ2h0cy4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgOzsg KFBsdXMgaG93IHRvIGdldCBoZWxwIGFuZCBob3cgdG8gdW5kby4pCi0gICAgICAgICAgICAgICAg ICAgICAgICAgIDs7IERvbid0IHlvdSBkYXJlIHR1cm4gdGhpcyBvZmYgZm9yIGFueW9uZQotICAg ICAgICAgICAgICAgICAgICAgICAgICA7OyBleGNlcHQgeW91cnNlbGYuCi0gICAgICAgICAgICAg ICAgICAgICAgICAgIChsb2FkICJkZWZhdWx0IiB0IHQpKSkpKSkpKSkKLQkoaWYgaW5pdC1maWxl LWRlYnVnCi0JICAgIDs7IERvIHRoaXMgd2l0aG91dCBhIGNvbmRpdGlvbi1jYXNlIGlmIHRoZSB1 c2VyIHdhbnRzIHRvIGRlYnVnLgotCSAgICAoZnVuY2FsbCBpbm5lcikKLQkgIChjb25kaXRpb24t Y2FzZSBlcnJvcgotCSAgICAgIChwcm9nbgotCQkoZnVuY2FsbCBpbm5lcikKLQkJKHNldHEgaW5p dC1maWxlLWhhZC1lcnJvciBuaWwpKQotCSAgICAoZXJyb3IKLQkgICAgIChkaXNwbGF5LXdhcm5p bmcKLQkgICAgICAnaW5pdGlhbGl6YXRpb24KLQkgICAgICAoZm9ybWF0LW1lc3NhZ2UgIlwKLUFu IGVycm9yIG9jY3VycmVkIHdoaWxlIGxvYWRpbmcgYCVzJzpcblxuJXMlcyVzXG5cblwKLVRvIGVu c3VyZSBub3JtYWwgb3BlcmF0aW9uLCB5b3Ugc2hvdWxkIGludmVzdGlnYXRlIGFuZCByZW1vdmUg dGhlCi1jYXVzZSBvZiB0aGUgZXJyb3IgaW4geW91ciBpbml0aWFsaXphdGlvbiBmaWxlLiAgU3Rh cnQgRW1hY3Mgd2l0aAotdGhlIGAtLWRlYnVnLWluaXQnIG9wdGlvbiB0byB2aWV3IGEgY29tcGxl dGUgZXJyb3IgYmFja3RyYWNlLiIKLQkJICAgICAgdXNlci1pbml0LWZpbGUKLQkJICAgICAgKGdl dCAoY2FyIGVycm9yKSAnZXJyb3ItbWVzc2FnZSkKLQkJICAgICAgKGlmIChjZHIgZXJyb3IpICI6 ICIgIiIpCi0JCSAgICAgIChtYXBjb25jYXQgKGxhbWJkYSAocykgKHByaW4xLXRvLXN0cmluZyBz IHQpKQotCQkJCSAoY2RyIGVycm9yKSAiLCAiKSkKLQkgICAgICA6d2FybmluZykKLQkgICAgIChz ZXRxIGluaXQtZmlsZS1oYWQtZXJyb3IgdCkpKSkKLQotICAgICAgKGlmIChhbmQgZGVhY3RpdmF0 ZS1tYXJrIHRyYW5zaWVudC1tYXJrLW1vZGUpCi0JICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyICh3 aW5kb3ctYnVmZmVyKQotCSAgICAgIChkZWFjdGl2YXRlLW1hcmspKSkKLQotCTs7IElmIHRoZSB1 c2VyIGhhcyBhIGZpbGUgb2YgYWJicmV2cywgcmVhZCBpdCAodW5sZXNzIC1iYXRjaCkuCi0JKHdo ZW4gKGFuZCAobm90IG5vbmludGVyYWN0aXZlKQotCQkgICAoZmlsZS1leGlzdHMtcCBhYmJyZXYt ZmlsZS1uYW1lKQotCQkgICAoZmlsZS1yZWFkYWJsZS1wIGFiYnJldi1maWxlLW5hbWUpKQotCSAg ICAocXVpZXRseS1yZWFkLWFiYnJldi1maWxlIGFiYnJldi1maWxlLW5hbWUpKQotCi0JOzsgSWYg dGhlIGFiYnJldnMgY2FtZSBlbnRpcmVseSBmcm9tIHRoZSBpbml0IGZpbGUgb3IgdGhlCi0JOzsg YWJicmV2cyBmaWxlLCB0aGV5IGRvIG5vdCBuZWVkIHNhdmluZy4KLQkoc2V0cSBhYmJyZXZzLWNo YW5nZWQgbmlsKQotCi0JOzsgSWYgd2UgY2FuIHRlbGwgdGhhdCB0aGUgaW5pdCBmaWxlIGFsdGVy ZWQgZGVidWctb24tZXJyb3IsCi0JOzsgYXJyYW5nZSB0byBwcmVzZXJ2ZSB0aGUgdmFsdWUgdGhh dCBpdCBzZXQgdXAuCi0JKG9yIChlcSBkZWJ1Zy1vbi1lcnJvciBkZWJ1Zy1vbi1lcnJvci1pbml0 aWFsKQotCSAgICAoc2V0cSBkZWJ1Zy1vbi1lcnJvci1zaG91bGQtYmUtc2V0IHQKLQkJICBkZWJ1 Zy1vbi1lcnJvci1mcm9tLWluaXQtZmlsZSBkZWJ1Zy1vbi1lcnJvcikpKQotICAgICAgKGlmIGRl YnVnLW9uLWVycm9yLXNob3VsZC1iZS1zZXQKLQkgIChzZXRxIGRlYnVnLW9uLWVycm9yIGRlYnVn LW9uLWVycm9yLWZyb20taW5pdC1maWxlKSkKLSAgICAgICh1bmxlc3MgKG9yIChkZWZhdWx0LXZh bHVlICdlbmFibGUtbXVsdGlieXRlLWNoYXJhY3RlcnMpCi0JCSAgKGVxIG9yaWctZW5hYmxlLW11 bHRpYnl0ZSAoZGVmYXVsdC12YWx1ZQotCQkJCQkgICAgICAnZW5hYmxlLW11bHRpYnl0ZS1jaGFy YWN0ZXJzKSkpCi0JOzsgSW5pdCBmaWxlIGNoYW5nZWQgdG8gdW5pYnl0ZS4gIFJlc2V0IGV4aXN0 aW5nIG11bHRpYnl0ZQotCTs7IGJ1ZmZlcnMgKHByb2JhYmx5ICpzY3JhdGNoKiwgKk1lc3NhZ2Vz KiwgKk1pbmlidWYtMCopLgotCTs7IEFyZ3VhYmx5IHRoaXMgc2hvdWxkIG9ubHkgYmUgZG9uZSBp ZiB0aGV5J3JlIGZyZWUgb2YKLQk7OyBtdWx0aWJ5dGUgY2hhcmFjdGVycy4KLQkobWFwYyAobGFt YmRhIChidWZmZXIpCi0JCSh3aXRoLWN1cnJlbnQtYnVmZmVyIGJ1ZmZlcgotCQkgIChpZiBlbmFi bGUtbXVsdGlieXRlLWNoYXJhY3RlcnMKLQkJICAgICAgKHNldC1idWZmZXItbXVsdGlieXRlIG5p bCkpKSkKLQkgICAgICAoYnVmZmVyLWxpc3QpKQotCTs7IEFsc28gcmUtc2V0IHRoZSBsYW5ndWFn ZSBlbnZpcm9ubWVudCBpbiBjYXNlIGl0IHdhcwotCTs7IG9yaWdpbmFsbHkgZG9uZSBiZWZvcmUg dW5pYnl0ZSB3YXMgc2V0IGFuZCBpcyBzZW5zaXRpdmUgdG8KLQk7OyB1bmlieXRlIChkaXNwbGF5 IHRhYmxlLCB0ZXJtaW5hbCBjb2Rpbmcgc3lzdGVtICZjKS4KLQkoc2V0LWxhbmd1YWdlLWVudmly b25tZW50IGN1cnJlbnQtbGFuZ3VhZ2UtZW52aXJvbm1lbnQpKSkKKyAgICAobG9hZC11c2VyLWlu aXQtZmlsZQorICAgICAobGFtYmRhICgpCisgICAgICAgKGNvbmQKKyAgICAgICAgKChlcSBzeXN0 ZW0tdHlwZSAnbXMtZG9zKQorICAgICAgICAgKGNvbmNhdCAifiIgaW5pdC1maWxlLXVzZXIgIi9f ZW1hY3MiKSkKKyAgICAgICAgKChub3QgKGVxIHN5c3RlbS10eXBlICd3aW5kb3dzLW50KSkKKyAg ICAgICAgIChjb25jYXQgIn4iIGluaXQtZmlsZS11c2VyICIvLmVtYWNzIikpCisgICAgICAgIDs7 IEVsc2UgZGVhbCB3aXRoIHRoZSBXaW5kb3dzIHNpdHVhdGlvbi4KKyAgICAgICAgKChkaXJlY3Rv cnktZmlsZXMgIn4iIG5pbCAiXlxcLmVtYWNzXFwoXFwuZWxjP1xcKT8kIikKKyAgICAgICAgIDs7 IFByZWZlciAuZW1hY3Mgb24gV2luZG93cy4KKyAgICAgICAgICJ+Ly5lbWFjcyIpCisgICAgICAg ICgoZGlyZWN0b3J5LWZpbGVzICJ+IiBuaWwgIl5fZW1hY3NcXChcXC5lbGM/XFwpPyQiKQorICAg ICAgICAgOzsgQWxzbyBzdXBwb3J0IF9lbWFjcyBmb3IgY29tcGF0aWJpbGl0eSwgYnV0IHdhcm4g YWJvdXQgaXQuCisgICAgICAgICAocHVzaCBgKGluaXRpYWxpemF0aW9uCisgICAgICAgICAgICAg ICAgICwoZm9ybWF0LW1lc3NhZ2UKKyAgICAgICAgICAgICAgICAgICAiYF9lbWFjcycgaW5pdCBm aWxlIGlzIGRlcHJlY2F0ZWQsIHBsZWFzZSB1c2UgYC5lbWFjcyciKSkKKyAgICAgICAgICAgICAg IGRlbGF5ZWQtd2FybmluZ3MtbGlzdCkKKyAgICAgICAgICJ+L19lbWFjcyIpCisgICAgICAgICh0 IDs7IEJ1dCBkZWZhdWx0IHRvIC5lbWFjcyBpZiBfZW1hY3MgZG9lcyBub3QgZXhpc3QuCisgICAg ICAgICAifi8uZW1hY3MiKSkpCisgICAgIChsYW1iZGEgKCkKKyAgICAgICAoZXhwYW5kLWZpbGUt bmFtZQorICAgICAgICAiaW5pdCIKKyAgICAgICAgKGZpbGUtbmFtZS1hcy1kaXJlY3RvcnkKKyAg ICAgICAgIChjb25jYXQgIn4iIGluaXQtZmlsZS11c2VyICIvLmVtYWNzLmQiKSkpKQorICAgICAo bm90IGluaGliaXQtZGVmYXVsdC1pbml0KSkKKworICAgICh3aGVuIChhbmQgZGVhY3RpdmF0ZS1t YXJrIHRyYW5zaWVudC1tYXJrLW1vZGUpCisgICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciAod2lu ZG93LWJ1ZmZlcikKKyAgICAgICAgKGRlYWN0aXZhdGUtbWFyaykpKQorCisgICAgOzsgSWYgdGhl IHVzZXIgaGFzIGEgZmlsZSBvZiBhYmJyZXZzLCByZWFkIGl0ICh1bmxlc3MgLWJhdGNoKS4KKyAg ICAod2hlbiAoYW5kIChub3Qgbm9uaW50ZXJhY3RpdmUpCisgICAgICAgICAgICAgICAoZmlsZS1l eGlzdHMtcCBhYmJyZXYtZmlsZS1uYW1lKQorICAgICAgICAgICAgICAgKGZpbGUtcmVhZGFibGUt cCBhYmJyZXYtZmlsZS1uYW1lKSkKKyAgICAgIChxdWlldGx5LXJlYWQtYWJicmV2LWZpbGUgYWJi cmV2LWZpbGUtbmFtZSkpCisKKyAgICA7OyBJZiB0aGUgYWJicmV2cyBjYW1lIGVudGlyZWx5IGZy b20gdGhlIGluaXQgZmlsZSBvciB0aGUKKyAgICA7OyBhYmJyZXZzIGZpbGUsIHRoZXkgZG8gbm90 IG5lZWQgc2F2aW5nLgorICAgIChzZXRxIGFiYnJldnMtY2hhbmdlZCBuaWwpCiAKICAgICA7OyBE byB0aGlzIGhlcmUgaW4gY2FzZSB0aGUgaW5pdCBmaWxlIHNldHMgbWFpbC1ob3N0LWFkZHJlc3Mu CiAgICAgKGFuZCBtYWlsLWhvc3QtYWRkcmVzcwpAQCAtMTMxMiwzMyArMTM4NCw2IEBAIGNvbW1h bmQtbGluZQogCQkgKGVxIGZhY2UtaWdub3JlZC1mb250cyBvbGQtZmFjZS1pZ25vcmVkLWZvbnRz KSkKICAgICAgIChjbGVhci1mYWNlLWNhY2hlKSkpCiAKLSAgOzsgSWYgYW55IHBhY2thZ2UgZGly ZWN0b3J5IGV4aXN0cywgaW5pdGlhbGl6ZSB0aGUgcGFja2FnZSBzeXN0ZW0uCi0gIChhbmQgdXNl ci1pbml0LWZpbGUKLSAgICAgICBwYWNrYWdlLWVuYWJsZS1hdC1zdGFydHVwCi0gICAgICAgKGNh dGNoICdwYWNrYWdlLWRpci1mb3VuZAotCSAobGV0IChkaXJzKQotCSAgIChpZiAoYm91bmRwICdw YWNrYWdlLWRpcmVjdG9yeS1saXN0KQotCSAgICAgICAoc2V0cSBkaXJzIHBhY2thZ2UtZGlyZWN0 b3J5LWxpc3QpCi0JICAgICAoZG9saXN0IChmIGxvYWQtcGF0aCkKLQkgICAgICAgKGFuZCAoc3Ry aW5ncCBmKQotCQkgICAgKGVxdWFsIChmaWxlLW5hbWUtbm9uZGlyZWN0b3J5IGYpICJzaXRlLWxp c3AiKQotCQkgICAgKHB1c2ggKGV4cGFuZC1maWxlLW5hbWUgImVscGEiIGYpIGRpcnMpKSkpCi0J ICAgKHB1c2ggKGlmIChib3VuZHAgJ3BhY2thZ2UtdXNlci1kaXIpCi0JCSAgICAgcGFja2FnZS11 c2VyLWRpcgotCQkgICAobG9jYXRlLXVzZXItZW1hY3MtZmlsZSAiZWxwYSIpKQotCQkgZGlycykK LQkgICAoZG9saXN0IChkaXIgZGlycykKLQkgICAgICh3aGVuIChmaWxlLWRpcmVjdG9yeS1wIGRp cikKLQkgICAgICAgKGRvbGlzdCAoc3ViZGlyIChkaXJlY3RvcnktZmlsZXMgZGlyKSkKLQkJICh3 aGVuIChsZXQgKChzdWJkaXIgKGV4cGFuZC1maWxlLW5hbWUgc3ViZGlyIGRpcikpKQotICAgICAg ICAgICAgICAgICAgICAgICAgIChhbmQgKGZpbGUtZGlyZWN0b3J5LXAgc3ViZGlyKQotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGZpbGUtZXhpc3RzLXAKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoZXhwYW5kLWZpbGUtbmFtZQotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAocGFja2FnZS0tZGVzY3JpcHRpb24tZmlsZSBzdWJkaXIpCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN1YmRpcikpKSkKLQkJICAgKHRocm93ICdwYWNrYWdlLWRpci1m b3VuZCB0KSkpKSkpKQotICAgICAgIChwYWNrYWdlLWluaXRpYWxpemUpKQotCiAgIChzZXRxIGFm dGVyLWluaXQtdGltZSAoY3VycmVudC10aW1lKSkKICAgOzsgRGlzcGxheSBhbnkgYWNjdW11bGF0 ZWQgd2FybmluZ3MgYWZ0ZXIgYWxsIGZ1bmN0aW9ucyBpbgogICA7OyBgYWZ0ZXItaW5pdC1ob29r JyBsaWtlIGBkZXNrdG9wLXJlYWQnIGhhdmUgZmluYWxpemVkIHBvc3NpYmxlCmRpZmYgLS1naXQg YS9zcmMvbHJlYWQuYyBiL3NyYy9scmVhZC5jCmluZGV4IDUyODk3YjRmY2MuLjVmZjQzODA0MWIg MTAwNjQ0Ci0tLSBhL3NyYy9scmVhZC5jCisrKyBiL3NyYy9scmVhZC5jCkBAIC00ODkyLDcgKzQ4 OTIsNyBAQCBkaXJlY3RvcnkuICBUaGVzZSBmaWxlIG5hbWVzIGFyZSBjb252ZXJ0ZWQgdG8gYWJz b2x1dGUgYXQgc3RhcnR1cC4gICovKTsKIElmIHRoZSBmaWxlIGxvYWRlZCBoYWQgZXh0ZW5zaW9u IGAuZWxjJywgYW5kIHRoZSBjb3JyZXNwb25kaW5nIHNvdXJjZSBmaWxlCiBleGlzdHMsIHRoaXMg dmFyaWFibGUgY29udGFpbnMgdGhlIG5hbWUgb2Ygc291cmNlIGZpbGUsIHN1aXRhYmxlIGZvciB1 c2UKIGJ5IGZ1bmN0aW9ucyBsaWtlIGBjdXN0b20tc2F2ZS1hbGwnIHdoaWNoIGVkaXQgdGhlIGlu aXQgZmlsZS4KLVdoaWxlIEVtYWNzIGxvYWRzIGFuZCBldmFsdWF0ZXMgdGhlIGluaXQgZmlsZSwg dmFsdWUgaXMgdGhlIHJlYWwgbmFtZQorV2hpbGUgRW1hY3MgbG9hZHMgYW5kIGV2YWx1YXRlcyBh bnkgaW5pdCBmaWxlLCB2YWx1ZSBpcyB0aGUgcmVhbCBuYW1lCiBvZiB0aGUgZmlsZSwgcmVnYXJk bGVzcyBvZiB3aGV0aGVyIG9yIG5vdCBpdCBoYXMgdGhlIGAuZWxjJyBleHRlbnNpb24uICAqLyk7 CiAgIFZ1c2VyX2luaXRfZmlsZSA9IFFuaWw7CiAKLS0gCjIuMTQuMwoK --089e0823dc34f036130563924f39--