From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Noah Lavine Newsgroups: gmane.lisp.guile.devel Subject: Re: [PATCH] Turn on more documentation Date: Thu, 3 May 2012 18:07:00 -0400 Message-ID: References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=e89a8f503536f0dc7404bf2905bf X-Trace: dough.gmane.org 1336082834 21350 80.91.229.3 (3 May 2012 22:07:14 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Thu, 3 May 2012 22:07:14 +0000 (UTC) To: guile-devel Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Fri May 04 00:07:13 2012 Return-path: Envelope-to: guile-devel@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 1SQ4B4-00081c-LX for guile-devel@m.gmane.org; Fri, 04 May 2012 00:07:11 +0200 Original-Received: from localhost ([::1]:57019 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SQ4B3-00054y-Qw for guile-devel@m.gmane.org; Thu, 03 May 2012 18:07:09 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:34578) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SQ4B0-0004um-3D for guile-devel@gnu.org; Thu, 03 May 2012 18:07:08 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SQ4Ay-0008SX-2w for guile-devel@gnu.org; Thu, 03 May 2012 18:07:05 -0400 Original-Received: from mail-yw0-f41.google.com ([209.85.213.41]:45978) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SQ4Ax-0008S8-Pt for guile-devel@gnu.org; Thu, 03 May 2012 18:07:04 -0400 Original-Received: by yhr47 with SMTP id 47so2828769yhr.0 for ; Thu, 03 May 2012 15:07:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:content-type; bh=Z4Dc4CM08tJo3nWaJsY1D4FMuvvN2x2+iSPsdpKH46o=; b=ShWOCRrtS+u35+ZuqwRfEOLvl2/MVpfU+rc+RSihmqHxHVLSF5Asj6jbw5xNt2bcwn WfP6oKastwKpGt1EPtSI689ROp4wU0OePfGLedzJsGXBDgcIimVfFmtJpZtYfri3n3w0 87ymzERpxWEfyBiM7cOz2beVj9OEEqkBCGLghpScyLH7u4QmmXSm4o/gD0x+Bgkag3wV 3EMyF1itfWmJI+De5NOqcXlwqITAj0wAYEvDByJzvNu35P47B9dHS3wMDEXKWEBDWYYr +qN/FqvqHnXmvvAIBiEVUcZcMKPgRDwcRC9/vaE3UaQxKJM4gv8R2miVsN/TlhIHv7Ga dO9Q== Original-Received: by 10.50.163.69 with SMTP id yg5mr1664508igb.56.1336082821077; Thu, 03 May 2012 15:07:01 -0700 (PDT) Original-Received: by 10.42.29.200 with HTTP; Thu, 3 May 2012 15:07:00 -0700 (PDT) In-Reply-To: X-Google-Sender-Auth: Xx_Anh_g94OMj7i9IGh-01mNa5U X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 209.85.213.41 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:14340 Archived-At: --e89a8f503536f0dc7404bf2905bf Content-Type: text/plain; charset=ISO-8859-1 Replying to myself, I've attached two more patches, which document two more modules. The approach I've been taking is to take the comments that modules already have and convert them to the documentation format that (texinfo reflection) understands. If people agree that this is a good approach, there are a few more modules I can convert easily, but I'd like to check that we want to use this approach before doing a lot of work and getting out of sync with the main repository. I can say more about the tradeoffs if anyone is interested, but I think this is the right choice because we can use it right now. Other options would give prettier documentation, but would be more work. Noah On Wed, May 2, 2012 at 11:20 PM, Noah Lavine wrote: > Hello all, > > As part of my investigation into modules that don't have > documentation, I discovered that several modules in ice-9/ actually > have usable documentation that we are just not using in our build > process. (For reference, everything in the "Standard Library" section > of the manual is snarfed from .scm source files.) This patch makes > Guile build documentation for (ice-9 binary-ports), (ice-9 > common-list), (ice-9 documentation), (ice-9 gap-buffer), (ice-9 runq), > (ice-9 serialize), and (ice-9 time). It gets incorporated into the > manual as part of the "Standard Library" section. > > This seems like an easy way to get documentation for a few more > modules. What do you think? > > (You may have to do "rm doc/ref/standard-library.texi && rm > doc/ref/guile.info*" in order to build with the change. The makefile > doesn't know about all of the dependencies that it should.) > > I also discovered while working on this that several modules have > in-line commentary and also hand-written texinfo pages. The list is > expect.scm, ftw.scm, futures.scm, getopt-long.scm, i18n.scm, > optargs.scm, q.scm, regex.scm, threads.scm, and vlist.scm. Was there a > reason for this? Perhaps the inline documentation format isn't as > flexible as writing it by hand? > > Thanks, > Noah --e89a8f503536f0dc7404bf2905bf Content-Type: application/octet-stream; name="0001-Document-ice-9-and-let-star.patch" Content-Disposition: attachment; filename="0001-Document-ice-9-and-let-star.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h1sd5br31 RnJvbSBmZmI4NjY0NjIxNjg0ZTQ0MjA2MmM3NTZiYTU0NWRhYTE2ZGE4MTVmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb2FoIExhdmluZSA8bm9haC5iLmxhdmluZUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgMyBNYXkgMjAxMiAxMDozMzo0MSAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMS8y XSBEb2N1bWVudCAoaWNlLTkgYW5kLWxldC1zdGFyKQoKICogbW9kdWxlL2ljZS05L2FuZC1sZXQt c3Rhci5zY206IGFkZCBjb21tZW50YXJ5IGFuZCBhIGRvY3N0cmluZy4KICogZG9jL3JlZi9zdGFu ZGFyZC1saWJyYXJ5LnNjbTogaW5jb3Jwb3JhdGUgKGljZS05IGFuZC1sZXQtc3RhcikKICAgY29t bWVudGFyeSBpbiB0aGUgYnVpbGQgc3lzdGVtLgogKiBkb2MvcmVmL3N0YW5kYXJkLWxpYnJhcnku YW06IGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20KICAgc3RhbmRhcmQtbGlicmFyeS5zY20u Ci0tLQogZG9jL3JlZi9zdGFuZGFyZC1saWJyYXJ5LmFtICAgfCAgICAyICstCiBkb2MvcmVmL3N0 YW5kYXJkLWxpYnJhcnkuc2NtICB8ICAgIDIgKysKIG1vZHVsZS9pY2UtOS9hbmQtbGV0LXN0YXIu c2NtIHwgICAgOSArKysrKysrKy0KIDMgZmlsZXMgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2MvcmVmL3N0YW5kYXJkLWxpYnJhcnkuYW0g Yi9kb2MvcmVmL3N0YW5kYXJkLWxpYnJhcnkuYW0KaW5kZXggZjkwMjQ2My4uNTZlODc1NSAxMDA2 NDQKLS0tIGEvZG9jL3JlZi9zdGFuZGFyZC1saWJyYXJ5LmFtCisrKyBiL2RvYy9yZWYvc3RhbmRh cmQtbGlicmFyeS5hbQpAQCAtMSwyICsxLDIgQEAKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQs IGRvIG5vdCBlZGl0Lgotc3RhbmRhcmRfbGlicmFyeV9zY21fZmlsZXMgPSAkKHRvcF9zcmNkaXIp L21vZHVsZS9zdGF0cHJvZi5zY20gJCh0b3Bfc3JjZGlyKS9tb2R1bGUvc3htbC9hcHBseS10ZW1w bGF0ZXMuc2NtICQodG9wX3NyY2RpcikvbW9kdWxlL3N4bWwvZm9sZC5zY20gJCh0b3Bfc3JjZGly KS9tb2R1bGUvc3htbC9zaW1wbGUuc2NtICQodG9wX3NyY2RpcikvbW9kdWxlL3N4bWwvc3NheC5z Y20gJCh0b3Bfc3JjZGlyKS9tb2R1bGUvc3htbC9zc2F4L2lucHV0LXBhcnNlLnNjbSAkKHRvcF9z cmNkaXIpL21vZHVsZS9zeG1sL3RyYW5zZm9ybS5zY20gJCh0b3Bfc3JjZGlyKS9tb2R1bGUvc3ht bC94cGF0aC5zY20gJCh0b3Bfc3JjZGlyKS9tb2R1bGUvdGV4aW5mby5zY20gJCh0b3Bfc3JjZGly KS9tb2R1bGUvdGV4aW5mby9kb2Nib29rLnNjbSAkKHRvcF9zcmNkaXIpL21vZHVsZS90ZXhpbmZv L2h0bWwuc2NtICQodG9wX3NyY2RpcikvbW9kdWxlL3RleGluZm8vaW5kZXhpbmcuc2NtICQodG9w X3NyY2RpcikvbW9kdWxlL3RleGluZm8vc3RyaW5nLXV0aWxzLnNjbSAkKHRvcF9zcmNkaXIpL21v ZHVsZS90ZXhpbmZvL3BsYWluLXRleHQuc2NtICQodG9wX3NyY2RpcikvbW9kdWxlL3RleGluZm8v c2VyaWFsaXplLnNjbSAkKHRvcF9zcmNkaXIpL21vZHVsZS90ZXhpbmZvL3JlZmxlY3Rpb24uc2Nt ICQodG9wX3NyY2RpcikvbW9kdWxlL2ljZS05L2JpbmFyeS1wb3J0cy5zY20gJCh0b3Bfc3JjZGly KS9tb2R1bGUvaWNlLTkvY29tbW9uLWxpc3Quc2NtICQodG9wX3NyY2RpcikvbW9kdWxlL2ljZS05 L2RvY3VtZW50YXRpb24uc2NtICQodG9wX3NyY2RpcikvbW9kdWxlL2ljZS05L2dhcC1idWZmZXIu c2NtICQodG9wX3NyY2RpcikvbW9kdWxlL2ljZS05L3J1bnEuc2NtICQodG9wX3NyY2RpcikvbW9k dWxlL2ljZS05L3NlcmlhbGl6ZS5zY20gJCh0b3Bfc3JjZGlyKS9tb2R1bGUvaWNlLTkvdGltZS5z Y20gClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorc3RhbmRhcmRfbGlicmFyeV9zY21fZmls ZXMgPSAkKHRvcF9zcmNkaXIpL21vZHVsZS9zdGF0cHJvZi5zY20gJCh0b3Bfc3JjZGlyKS9tb2R1 bGUvc3htbC9hcHBseS10ZW1wbGF0ZXMuc2NtICQodG9wX3NyY2RpcikvbW9kdWxlL3N4bWwvZm9s ZC5zY20gJCh0b3Bfc3JjZGlyKS9tb2R1bGUvc3htbC9zaW1wbGUuc2NtICQodG9wX3NyY2Rpcikv bW9kdWxlL3N4bWwvc3NheC5zY20gJCh0b3Bfc3JjZGlyKS9tb2R1bGUvc3htbC9zc2F4L2lucHV0 LXBhcnNlLnNjbSAkKHRvcF9zcmNkaXIpL21vZHVsZS9zeG1sL3RyYW5zZm9ybS5zY20gJCh0b3Bf c3JjZGlyKS9tb2R1bGUvc3htbC94cGF0aC5zY20gJCh0b3Bfc3JjZGlyKS9tb2R1bGUvdGV4aW5m by5zY20gJCh0b3Bfc3JjZGlyKS9tb2R1bGUvdGV4aW5mby9kb2Nib29rLnNjbSAkKHRvcF9zcmNk aXIpL21vZHVsZS90ZXhpbmZvL2h0bWwuc2NtICQodG9wX3NyY2RpcikvbW9kdWxlL3RleGluZm8v aW5kZXhpbmcuc2NtICQodG9wX3NyY2RpcikvbW9kdWxlL3RleGluZm8vc3RyaW5nLXV0aWxzLnNj bSAkKHRvcF9zcmNkaXIpL21vZHVsZS90ZXhpbmZvL3BsYWluLXRleHQuc2NtICQodG9wX3NyY2Rp cikvbW9kdWxlL3RleGluZm8vc2VyaWFsaXplLnNjbSAkKHRvcF9zcmNkaXIpL21vZHVsZS90ZXhp bmZvL3JlZmxlY3Rpb24uc2NtICQodG9wX3NyY2RpcikvbW9kdWxlL2ljZS05L2FuZC1sZXQtc3Rh ci5zY20gJCh0b3Bfc3JjZGlyKS9tb2R1bGUvaWNlLTkvYmluYXJ5LXBvcnRzLnNjbSAkKHRvcF9z cmNkaXIpL21vZHVsZS9pY2UtOS9jb21tb24tbGlzdC5zY20gJCh0b3Bfc3JjZGlyKS9tb2R1bGUv aWNlLTkvZG9jdW1lbnRhdGlvbi5zY20gJCh0b3Bfc3JjZGlyKS9tb2R1bGUvaWNlLTkvZ2FwLWJ1 ZmZlci5zY20gJCh0b3Bfc3JjZGlyKS9tb2R1bGUvaWNlLTkvcnVucS5zY20gJCh0b3Bfc3JjZGly KS9tb2R1bGUvaWNlLTkvc2VyaWFsaXplLnNjbSAkKHRvcF9zcmNkaXIpL21vZHVsZS9pY2UtOS90 aW1lLnNjbSAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kb2MvcmVm L3N0YW5kYXJkLWxpYnJhcnkuc2NtIGIvZG9jL3JlZi9zdGFuZGFyZC1saWJyYXJ5LnNjbQppbmRl eCAyODY5YzJlLi5lYzE0OTFiIDEwMDY0NAotLS0gYS9kb2MvcmVmL3N0YW5kYXJkLWxpYnJhcnku c2NtCisrKyBiL2RvYy9yZWYvc3RhbmRhcmQtbGlicmFyeS5zY20KQEAgLTM0LDYgKzM0LDggQEAK ICAgICAgIlJlbmRlciAiIChjb2RlICJzdGV4aSIpICIgYXMgdGV4aW5mbyIpCiAgICAgKCh0ZXhp bmZvIHJlZmxlY3Rpb24pCiAgICAgICJFbmFibGUgdGV4aW5mbyBhY3Jvc3MgR3VpbGUncyBoZWxw IHN5c3RlbSIpCisgICAgKChpY2UtOSBhbmQtbGV0LXN0YXIpCisgICAgICJUaGUgYW5kLWxldCog c3ludGF4IikKICAgICAoKGljZS05IGJpbmFyeS1wb3J0cykKICAgICAgIkFjY2VzcyB0byBiaW5h cnkgcG9ydHMiKQogICAgICgoaWNlLTkgY29tbW9uLWxpc3QpCmRpZmYgLS1naXQgYS9tb2R1bGUv aWNlLTkvYW5kLWxldC1zdGFyLnNjbSBiL21vZHVsZS9pY2UtOS9hbmQtbGV0LXN0YXIuc2NtCmlu ZGV4IGJmZDU5N2IuLmRkODQ4ZDQgMTAwNjQ0Ci0tLSBhL21vZHVsZS9pY2UtOS9hbmQtbGV0LXN0 YXIuc2NtCisrKyBiL21vZHVsZS9pY2UtOS9hbmQtbGV0LXN0YXIuc2NtCkBAIC0xNywxMSArMTcs MTggQEAKIDs7OzsgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0 ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogOzs7OyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp biBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCiAKKworOzs7 IENvbW1lbnRhcnk6CisKKzs7IFRoaXMgbW9kdWxlIHByb3ZpZGVzIHRoZSBhbmQtbGV0KiBzeW50 YXgsIGFzIGRlZmluZWQgaW4gU1JGSS0yLgorCis7OzsgQ29kZToKKwogKGRlZmluZS1tb2R1bGUg KGljZS05IGFuZC1sZXQtc3RhcikKICAgOmV4cG9ydC1zeW50YXggKGFuZC1sZXQqKSkKIAogKGRl Zm1hY3JvIGFuZC1sZXQqICh2YXJzIC4gYm9keSkKLQorICAiYW5kLWxldCogd29ya3MgbGlrZSBs ZXQqLCBleGNlcHQgdGhhdCBpZiBvbmUgb2YgaXRzIHZhbHVlIGV4cHJlc3Npb25zIHJldHVybnMg ZmFsc2UsIHRoZSByZW1haW5pbmcgdmFsdWUgZXhwcmVzc2lvbnMgYW5kIHRoZSBib2R5IGFyZSBu b3QgZXZhbHVhdGVkLCBhbmQgdGhlIGFuZC1sZXQqIHJldHVybnMgZmFsc2UuIgogICAoZGVmaW5l IChleHBhbmQgdmFycyBib2R5KQogICAgIChjb25kCiAgICAgICgobnVsbD8gdmFycykKLS0gCjEu Ny42Cgo= --e89a8f503536f0dc7404bf2905bf Content-Type: application/octet-stream; name="0002-Document-ice-9-calling.patch" Content-Disposition: attachment; filename="0002-Document-ice-9-calling.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h1sd5fwg2 RnJvbSAyNWY0OGVmOWJhMDUzMjRmOTZhNjBhNzQ5NWI0MWRlOWJlNDNlMGY1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb2FoIExhdmluZSA8bm9haC5iLmxhdmluZUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgMyBNYXkgMjAxMiAxMTo0NjoyOCAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMi8y XSBEb2N1bWVudCAoaWNlLTkgY2FsbGluZykKCiAqIG1vZHVsZS9pY2UtOS9jYWxsaW5nLnNjbTog cmVmb3JtYXQgZG9jdW1lbnRhdGlvbiBpbiBhIHdheSB0aGF0CiAgIHRoZSBidWlsZCBzeXN0ZW0g d2lsbCB1bmRlcnN0YW5kLgogKiBkb2MvcmVmL3N0YW5kYXJkLWxpYnJhcnkuc2NtOiBtYWtlIHRo ZSBidWlsZCBzeXN0ZW0gcGljayB1cAogICBkb2N1bWVudGF0aW9uIGZyb20gKGljZS05IGNhbGxp bmcpLgogKiBkb2MvcmVmL3N0YW5kYXJkLWxpYnJhcnkuYW06IGF1dG9tYXRpY2FsbHkgZ2VuZXJh dGVkIGZyb20KICAgc3RhbmRhcmQtbGlicmFyeS5zY20uCi0tLQogZG9jL3JlZi9zdGFuZGFyZC1s aWJyYXJ5LmFtICB8ICAgIDIgKy0KIGRvYy9yZWYvc3RhbmRhcmQtbGlicmFyeS5zY20gfCAgICAy ICsKIG1vZHVsZS9pY2UtOS9jYWxsaW5nLnNjbSAgICAgfCAgMjMwICsrKysrKysrKysrKysrKysr KystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCAxMDggaW5zZXJ0aW9u cygrKSwgMTI2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9yZWYvc3RhbmRhcmQtbGli cmFyeS5hbSBiL2RvYy9yZWYvc3RhbmRhcmQtbGlicmFyeS5hbQppbmRleCA1NmU4NzU1Li4yZWY2 MzBhIDEwMDY0NAotLS0gYS9kb2MvcmVmL3N0YW5kYXJkLWxpYnJhcnkuYW0KKysrIGIvZG9jL3Jl Zi9zdGFuZGFyZC1saWJyYXJ5LmFtCkBAIC0xLDIgKzEsMiBAQAogIyBBdXRvbWF0aWNhbGx5IGdl bmVyYXRlZCwgZG8gbm90IGVkaXQuCi1zdGFuZGFyZF9saWJyYXJ5X3NjbV9maWxlcyA9ICQodG9w X3NyY2RpcikvbW9kdWxlL3N0YXRwcm9mLnNjbSAkKHRvcF9zcmNkaXIpL21vZHVsZS9zeG1sL2Fw cGx5LXRlbXBsYXRlcy5zY20gJCh0b3Bfc3JjZGlyKS9tb2R1bGUvc3htbC9mb2xkLnNjbSAkKHRv cF9zcmNkaXIpL21vZHVsZS9zeG1sL3NpbXBsZS5zY20gJCh0b3Bfc3JjZGlyKS9tb2R1bGUvc3ht bC9zc2F4LnNjbSAkKHRvcF9zcmNkaXIpL21vZHVsZS9zeG1sL3NzYXgvaW5wdXQtcGFyc2Uuc2Nt ICQodG9wX3NyY2RpcikvbW9kdWxlL3N4bWwvdHJhbnNmb3JtLnNjbSAkKHRvcF9zcmNkaXIpL21v ZHVsZS9zeG1sL3hwYXRoLnNjbSAkKHRvcF9zcmNkaXIpL21vZHVsZS90ZXhpbmZvLnNjbSAkKHRv cF9zcmNkaXIpL21vZHVsZS90ZXhpbmZvL2RvY2Jvb2suc2NtICQodG9wX3NyY2RpcikvbW9kdWxl L3RleGluZm8vaHRtbC5zY20gJCh0b3Bfc3JjZGlyKS9tb2R1bGUvdGV4aW5mby9pbmRleGluZy5z Y20gJCh0b3Bfc3JjZGlyKS9tb2R1bGUvdGV4aW5mby9zdHJpbmctdXRpbHMuc2NtICQodG9wX3Ny Y2RpcikvbW9kdWxlL3RleGluZm8vcGxhaW4tdGV4dC5zY20gJCh0b3Bfc3JjZGlyKS9tb2R1bGUv dGV4aW5mby9zZXJpYWxpemUuc2NtICQodG9wX3NyY2RpcikvbW9kdWxlL3RleGluZm8vcmVmbGVj dGlvbi5zY20gJCh0b3Bfc3JjZGlyKS9tb2R1bGUvaWNlLTkvYW5kLWxldC1zdGFyLnNjbSAkKHRv cF9zcmNkaXIpL21vZHVsZS9pY2UtOS9iaW5hcnktcG9ydHMuc2NtICQodG9wX3NyY2RpcikvbW9k dWxlL2ljZS05L2NvbW1vbi1saXN0LnNjbSAkKHRvcF9zcmNkaXIpL21vZHVsZS9pY2UtOS9kb2N1 bWVudGF0aW9uLnNjbSAkKHRvcF9zcmNkaXIpL21vZHVsZS9pY2UtOS9nYXAtYnVmZmVyLnNjbSAk KHRvcF9zcmNkaXIpL21vZHVsZS9pY2UtOS9ydW5xLnNjbSAkKHRvcF9zcmNkaXIpL21vZHVsZS9p Y2UtOS9zZXJpYWxpemUuc2NtICQodG9wX3NyY2RpcikvbW9kdWxlL2ljZS05L3RpbWUuc2NtIApc IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK3N0YW5kYXJkX2xpYnJhcnlfc2NtX2ZpbGVzID0g JCh0b3Bfc3JjZGlyKS9tb2R1bGUvc3RhdHByb2Yuc2NtICQodG9wX3NyY2RpcikvbW9kdWxlL3N4 bWwvYXBwbHktdGVtcGxhdGVzLnNjbSAkKHRvcF9zcmNkaXIpL21vZHVsZS9zeG1sL2ZvbGQuc2Nt ICQodG9wX3NyY2RpcikvbW9kdWxlL3N4bWwvc2ltcGxlLnNjbSAkKHRvcF9zcmNkaXIpL21vZHVs ZS9zeG1sL3NzYXguc2NtICQodG9wX3NyY2RpcikvbW9kdWxlL3N4bWwvc3NheC9pbnB1dC1wYXJz ZS5zY20gJCh0b3Bfc3JjZGlyKS9tb2R1bGUvc3htbC90cmFuc2Zvcm0uc2NtICQodG9wX3NyY2Rp cikvbW9kdWxlL3N4bWwveHBhdGguc2NtICQodG9wX3NyY2RpcikvbW9kdWxlL3RleGluZm8uc2Nt ICQodG9wX3NyY2RpcikvbW9kdWxlL3RleGluZm8vZG9jYm9vay5zY20gJCh0b3Bfc3JjZGlyKS9t b2R1bGUvdGV4aW5mby9odG1sLnNjbSAkKHRvcF9zcmNkaXIpL21vZHVsZS90ZXhpbmZvL2luZGV4 aW5nLnNjbSAkKHRvcF9zcmNkaXIpL21vZHVsZS90ZXhpbmZvL3N0cmluZy11dGlscy5zY20gJCh0 b3Bfc3JjZGlyKS9tb2R1bGUvdGV4aW5mby9wbGFpbi10ZXh0LnNjbSAkKHRvcF9zcmNkaXIpL21v ZHVsZS90ZXhpbmZvL3NlcmlhbGl6ZS5zY20gJCh0b3Bfc3JjZGlyKS9tb2R1bGUvdGV4aW5mby9y ZWZsZWN0aW9uLnNjbSAkKHRvcF9zcmNkaXIpL21vZHVsZS9pY2UtOS9hbmQtbGV0LXN0YXIuc2Nt ICQodG9wX3NyY2RpcikvbW9kdWxlL2ljZS05L2JpbmFyeS1wb3J0cy5zY20gJCh0b3Bfc3JjZGly KS9tb2R1bGUvaWNlLTkvY2FsbGluZy5zY20gJCh0b3Bfc3JjZGlyKS9tb2R1bGUvaWNlLTkvY29t bW9uLWxpc3Quc2NtICQodG9wX3NyY2RpcikvbW9kdWxlL2ljZS05L2RvY3VtZW50YXRpb24uc2Nt ICQodG9wX3NyY2RpcikvbW9kdWxlL2ljZS05L2dhcC1idWZmZXIuc2NtICQodG9wX3NyY2Rpcikv bW9kdWxlL2ljZS05L3J1bnEuc2NtICQodG9wX3NyY2RpcikvbW9kdWxlL2ljZS05L3NlcmlhbGl6 ZS5zY20gJCh0b3Bfc3JjZGlyKS9tb2R1bGUvaWNlLTkvdGltZS5zY20gClwgTm8gbmV3bGluZSBh dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZG9jL3JlZi9zdGFuZGFyZC1saWJyYXJ5LnNjbSBi L2RvYy9yZWYvc3RhbmRhcmQtbGlicmFyeS5zY20KaW5kZXggZWMxNDkxYi4uZGQ5NmUyMSAxMDA2 NDQKLS0tIGEvZG9jL3JlZi9zdGFuZGFyZC1saWJyYXJ5LnNjbQorKysgYi9kb2MvcmVmL3N0YW5k YXJkLWxpYnJhcnkuc2NtCkBAIC0zOCw2ICszOCw4IEBACiAgICAgICJUaGUgYW5kLWxldCogc3lu dGF4IikKICAgICAoKGljZS05IGJpbmFyeS1wb3J0cykKICAgICAgIkFjY2VzcyB0byBiaW5hcnkg cG9ydHMiKQorICAgICgoaWNlLTkgY2FsbGluZykKKyAgICAgIlN5bnRheCBmb3IgY29tbW9uIGNh bGxpbmcgY29udmVudGlvbnMiKQogICAgICgoaWNlLTkgY29tbW9uLWxpc3QpCiAgICAgICJMaXN0 IG1hbmlwdWxhdGlvbiBmdW5jdGlvbnMgZnJvbSBDb21tb24gTGlzcCIpCiAgICAgKChpY2UtOSBk b2N1bWVudGF0aW9uKQpkaWZmIC0tZ2l0IGEvbW9kdWxlL2ljZS05L2NhbGxpbmcuc2NtIGIvbW9k dWxlL2ljZS05L2NhbGxpbmcuc2NtCmluZGV4IGY2NmJiYTIuLjgzNTMzMWQgMTAwNjQ0Ci0tLSBh L21vZHVsZS9pY2UtOS9jYWxsaW5nLnNjbQorKysgYi9tb2R1bGUvaWNlLTkvY2FsbGluZy5zY20K QEAgLTI3LDEwOSArMjcsOTcgQEAKIAkJICB3aXRoLWRlbGVnYXRpbmctY29uZmlndXJhdGlvbi1n ZXR0ZXItYW5kLXNldHRlcgogCQkgIGxldC13aXRoLWNvbmZpZ3VyYXRpb24tZ2V0dGVyLWFuZC1z ZXR0ZXIpKQogCi07Ozs7Cis7OzsgQ29tbWVudGFyeToKIDs7OwotOzs7IFRoaXMgZmlsZSBjb250 YWlucyBhIG51bWJlciBvZiBtYWNyb3MgdGhhdCBzdXBwb3J0IAorOzs7IFRoaXMgbW9kdWxlIGNv bnRhaW5zIGEgbnVtYmVyIG9mIG1hY3JvcyB0aGF0IHN1cHBvcnQgCiA7OzsgY29tbW9uIGNhbGxp bmcgY29udmVudGlvbnMuCiAKLTs7OwotOzs7IHdpdGgtZXhjdXJzaW9uLWZ1bmN0aW9uIDx2YXJz PiBwcm9jCi07OzsgIDx2YXJzPiBpcyBhbiB1bmV2YWx1YXRlZCBsaXN0IG9mIG5hbWVzIHRoYXQg YXJlIGJvdW5kIGluIHRoZSBjYWxsZXIuCi07OzsgIHByb2MgaXMgYSBwcm9jZWR1cmUsIGNhbGxl ZDoKLTs7OwkgICAgIChwcm9jIGV4Y3Vyc2lvbikKLTs7OwotOzs7ICBleGN1cnNpb24gaXMgYSBw cm9jZWR1cmUgaXNvbGF0ZXMgYWxsIGNoYW5nZXMgdG8gPHZhcnM+Ci07OzsgIGluIHRoZSBkeW5h bWljIHNjb3BlIG9mIHRoZSBjYWxsIHRvIHByb2MuICBJbiBvdGhlciB3b3JkcywKLTs7OyAgdGhl IHZhbHVlcyBvZiA8dmFycz4gYXJlIHNhdmVkIHdoZW4gcHJvYyBpcyBlbnRlcmVkLCBhbmQgd2hl bgotOzs7ICBwcm9jIHJldHVybnMsIHRob3NlIHZhbHVlcyBhcmUgcmVzdG9yZWQuICAgVmFsdWVz IGFyZSBhbHNvIHJlc3RvcmVkCi07OzsgIGVudGVyaW5nIGFuZCBsZWF2aW5nIHRoZSBjYWxsIHRv IHByb2Mgbm9uLWxvY2FsbHksIHN1Y2ggYXMgdXNpbmcKLTs7OyAgY2FsbC13aXRoLWN1cnJlbnQt Y29udGludWF0aW9uLCBlcnJvciwgb3IgdGhyb3cuCi07OzsKKzs7OyBDb2RlOgorCiAoZGVmbWFj cm8gd2l0aC1leGN1cnNpb24tZnVuY3Rpb24gKHZhcnMgcHJvYykKKyJ2YXJzIGlzIGFuIHVuZXZh bHVhdGVkIGxpc3Qgb2YgbmFtZXMgdGhhdCBhcmUgYm91bmQgaW4gdGhlIGNhbGxlci4KK3Byb2Mg aXMgYSBwcm9jZWR1cmUsIGNhbGxlZDoKKyAgICAgICAgICAgKHByb2MgZXhjdXJzaW9uKQorCitl eGN1cnNpb24gaXMgYSBwcm9jZWR1cmUgaXNvbGF0ZXMgYWxsIGNoYW5nZXMgdG8gdmFycworaW4g dGhlIGR5bmFtaWMgc2NvcGUgb2YgdGhlIGNhbGwgdG8gcHJvYy4gIEluIG90aGVyIHdvcmRzLAor dGhlIHZhbHVlcyBvZiB2YXJzIGFyZSBzYXZlZCB3aGVuIHByb2MgaXMgZW50ZXJlZCwgYW5kIHdo ZW4KK3Byb2MgcmV0dXJucywgdGhvc2UgdmFsdWVzIGFyZSByZXN0b3JlZC4gICBWYWx1ZXMgYXJl IGFsc28gcmVzdG9yZWQKK2VudGVyaW5nIGFuZCBsZWF2aW5nIHRoZSBjYWxsIHRvIHByb2Mgbm9u LWxvY2FsbHksIHN1Y2ggYXMgdXNpbmcKK2NhbGwtd2l0aC1jdXJyZW50LWNvbnRpbnVhdGlvbiwg ZXJyb3IsIG9yIHRocm93LiIKICAgYCgscHJvYyAsKGV4Y3Vyc2lvbi1mdW5jdGlvbi1zeW50YXgg dmFycykpKQogCisoZGVmbWFjcm8gd2l0aC1nZXR0ZXItYW5kLXNldHRlciAodmFycyBwcm9jKQor InZhcnMgaXMgYW4gdW5ldmFsdWF0ZWQgbGlzdCBvZiBuYW1lcyB0aGF0IGFyZSBib3VuZCBpbiB0 aGUgY2FsbGVyLgorcHJvYyBpcyBhIHByb2NlZHVyZSwgY2FsbGVkOgorICAgKHByb2MgZ2V0dGVy IHNldHRlcikKKworZ2V0dGVyIGFuZCBzZXR0ZXIgYXJlIHByb2NlZHVyZXMgdXNlZCB0byBhY2Nl c3MKK29yIG1vZGlmeSB2YXJzLgogCitzZXR0ZXIsIGNhbGxlZCB3aXRoIGtleXdvcmRzIGFyZ3Vt ZW50cywgbW9kaWZpZXMgdGhlIG5hbWVkCit2YWx1ZXMuICAgSWYgXCJmb29cIiBhbmQgXCJiYXJc IiBhcmUgYW1vbmcgdmFycywgdGhlbjoKIAotOzs7IHdpdGgtZ2V0dGVyLWFuZC1zZXR0ZXIgPHZh cnM+IHByb2MKLTs7OyAgPHZhcnM+IGlzIGFuIHVuZXZhbHVhdGVkIGxpc3Qgb2YgbmFtZXMgdGhh dCBhcmUgYm91bmQgaW4gdGhlIGNhbGxlci4KLTs7OyAgcHJvYyBpcyBhIHByb2NlZHVyZSwgY2Fs bGVkOgotOzs7CShwcm9jIGdldHRlciBzZXR0ZXIpCi07OzsgCi07OzsgIGdldHRlciBhbmQgc2V0 dGVyIGFyZSBwcm9jZWR1cmVzIHVzZWQgdG8gYWNjZXNzCi07OzsgIG9yIG1vZGlmeSA8dmFycz4u Ci07OzsgCi07OzsgIHNldHRlciwgY2FsbGVkIHdpdGgga2V5d29yZHMgYXJndW1lbnRzLCBtb2Rp ZmllcyB0aGUgbmFtZWQKLTs7OyAgdmFsdWVzLiAgIElmICJmb28iIGFuZCAiYmFyIiBhcmUgYW1v bmcgPHZhcnM+LCB0aGVuOgotOzs7IAotOzs7CShzZXR0ZXIgOmZvbyAxIDpiYXIgMikKLTs7Owk9 PSAoc2V0ISBmb28gMSBiYXIgMikKLTs7OyAKLTs7OyAgZ2V0dGVyLCBjYWxsZWQgd2l0aCBqdXN0 IGtleXdvcmRzLCByZXR1cm5zCi07OzsgIGEgbGlzdCBvZiB0aGUgY29ycmVzcG9uZGluZyB2YWx1 ZXMuICBGb3IgZXhhbXBsZSwKLTs7OyAgaWYgImZvbyIgYW5kICJiYXIiIGFyZSBhbW9uZyB0aGUg PHZhcnM+LCB0aGVuCi07OzsgCi07OzsJKGdldHRlciA6Zm9vIDpiYXIpCi07OzsJPT4gKDx2YWx1 ZS1vZi1mb28+IDx2YWx1ZS1vZi1iYXI+KQotOzs7IAotOzs7ICBnZXR0ZXIsIGNhbGxlZCB3aXRo IG5vIGFyZ3VtZW50cywgcmV0dXJucyBhIGxpc3Qgb2YgYWxsIGFjY2VwdGVkIAotOzs7ICBrZXl3 b3JkcyBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWVzLiAgSWYgImZvbyIgYW5kICJiYXIiIGFy ZQotOzs7ICB0aGUgKm9ubHkqIDx2YXJzPiwgdGhlbjoKLTs7OyAKLTs7OwkoZ2V0dGVyKQotOzs7 CT0+ICg6Zm9vIDx2YWx1ZS1vZi1iYXI+IDpiYXIgPHZhbHVlLW9mLWZvbz4pCi07OzsgCi07Ozsg IFRoZSB1bnVzdWFsIGNhbGxpbmcgc2VxdWVuY2Ugb2YgYSBnZXR0ZXIgc3VwcG9ydHMgdG9vIGhh bmR5Ci07OzsgIGlkaW9tczoKLTs7OyAKLTs7OwkoYXBwbHkgc2V0dGVyIChnZXR0ZXIpKQkJOzsg c2F2ZSBhbmQgcmVzdG9yZQotOzs7IAotOzs7CShhcHBseS10by1hcmdzIChnZXR0ZXIgOmZvbyA6 YmFyKQkJOzsgZmV0Y2ggYW5kIGJpbmQKLTs7OwkJICAgIChsYW1iZGEgKGZvbyBiYXIpIC4uLi4p KQotOzs7IAotOzs7ICAgICA7OyBbICJhcHBseS10by1hcmdzIiBpcyBqdXN0IGxpa2UgdHdvLWFy Z3VtZW50ICJhcHBseSIgZXhjZXB0IHRoYXQgaXQgCi07OzsJOzsgICB0YWtlcyBpdHMgYXJndW1l bnRzIGluIGEgZGlmZmVyZW50IG9yZGVyLgotOzs7IAotOzs7Ci0oZGVmbWFjcm8gd2l0aC1nZXR0 ZXItYW5kLXNldHRlciAodmFycyBwcm9jKQorICAgKHNldHRlciA6Zm9vIDEgOmJhciAyKQorICAg PT0gKHNldCEgZm9vIDEgYmFyIDIpCisKK2dldHRlciwgY2FsbGVkIHdpdGgganVzdCBrZXl3b3Jk cywgcmV0dXJucworYSBsaXN0IG9mIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlcy4gIEZvciBleGFt cGxlLAoraWYgXCJmb29cIiBhbmQgXCJiYXJcIiBhcmUgYW1vbmcgdGhlIHZhcnMsIHRoZW4KKwor ICAgKGdldHRlciA6Zm9vIDpiYXIpCisgICA9PiAoPHZhbHVlLW9mLWZvbz4gPHZhbHVlLW9mLWJh cj4pCisKK2dldHRlciwgY2FsbGVkIHdpdGggbm8gYXJndW1lbnRzLCByZXR1cm5zIGEgbGlzdCBv ZiBhbGwgYWNjZXB0ZWQgCitrZXl3b3JkcyBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWVzLiAg SWYgXCJmb29cIiBhbmQgXCJiYXJcIiBhcmUKK3RoZSAqb25seSogdmFycywgdGhlbjoKKworICAg KGdldHRlcikKKyAgID0+ICg6Zm9vIDx2YWx1ZS1vZi1iYXI+IDpiYXIgPHZhbHVlLW9mLWZvbz4p CisKK1RoZSB1bnVzdWFsIGNhbGxpbmcgc2VxdWVuY2Ugb2YgYSBnZXR0ZXIgc3VwcG9ydHMgdHdv IGhhbmR5CitpZGlvbXM6CisKKyAgIChhcHBseSBzZXR0ZXIgKGdldHRlcikpCQk7OyBzYXZlIGFu ZCByZXN0b3JlCisKKyAgIChhcHBseS10by1hcmdzIChnZXR0ZXIgOmZvbyA6YmFyKQkJOzsgZmV0 Y2ggYW5kIGJpbmQKKyAgIAkgICAgKGxhbWJkYSAoZm9vIGJhcikgLi4uLikpCisKKyAgIDs7IFsg XCJhcHBseS10by1hcmdzXCIgaXMganVzdCBsaWtlIHR3by1hcmd1bWVudCBcImFwcGx5XCIgZXhj ZXB0IHRoYXQgaXQgCisgICA7OyAgIHRha2VzIGl0cyBhcmd1bWVudHMgaW4gYSBkaWZmZXJlbnQg b3JkZXIuIgogICBgKCxwcm9jICxAIChnZXR0ZXItYW5kLXNldHRlci1zeW50YXggdmFycykpKQog Ci07Ozsgd2l0aC1nZXR0ZXIgdmFycyBwcm9jCi07OzsgICBBIHNob3J0LWhhbmQgZm9yIGEgY2Fs bCB0byB3aXRoLWdldHRlci1hbmQtc2V0dGVyLgotOzs7ICAgVGhlIHByb2NlZHVyZSBpcyBjYWxs ZWQ6Ci07OzsJCShwcm9jIGdldHRlcikKLTs7OwogKGRlZm1hY3JvIHdpdGgtZ2V0dGVyICh2YXJz IHByb2MpCisiQSBzaG9ydC1oYW5kIGZvciBhIGNhbGwgdG8gd2l0aC1nZXR0ZXItYW5kLXNldHRl ci4KK1RoZSBwcm9jZWR1cmUgaXMgY2FsbGVkOgorICAgICAocHJvYyBnZXR0ZXIpIgogICBgKCxw cm9jICwoY2FyIChnZXR0ZXItYW5kLXNldHRlci1zeW50YXggdmFycykpKSkKIAogCi07Ozsgd2l0 aC1kZWxlZ2F0aW5nLWdldHRlci1hbmQtc2V0dGVyIDx2YXJzPiBnZXQtZGVsZWdhdGUgc2V0LWRl bGVnYXRlIHByb2MKLTs7OyAgIENvbXBvc2UgZ2V0dGVycyBhbmQgc2V0dGVycy4KLTs7OyAKLTs7 OyAgIDx2YXJzPiBpcyBhbiB1bmV2YWx1YXRlZCBsaXN0IG9mIG5hbWVzIHRoYXQgYXJlIGJvdW5k IGluIHRoZSBjYWxsZXIuCi07OzsgICAKLTs7OyAgIGdldC1kZWxlZ2F0ZSBpcyBjYWxsZWQgYnkg dGhlIG5ldyBnZXR0ZXIgdG8gZXh0ZW5kIHRoZSBzZXQgb2YgCi07OzsJZ2V0dGFibGUgdmFyaWFi bGVzIGJleW9uZCBqdXN0IDx2YXJzPgotOzs7ICAgc2V0LWRlbGVnYXRlIGlzIGNhbGxlZCBieSB0 aGUgbmV3IHNldHRlciB0byBleHRlbmQgdGhlIHNldCBvZiAKLTs7OwlnZXR0YWJsZSB2YXJpYWJs ZXMgYmV5b25kIGp1c3QgPHZhcnM+Ci07OzsKLTs7OyAgIHByb2MgaXMgYSBwcm9jZWR1cmUgdGhh dCBpcyBjYWxsZWQKLTs7OwkJKHByb2MgZ2V0dGVyIHNldHRlcikKLTs7OwogKGRlZm1hY3JvIHdp dGgtZGVsZWdhdGluZy1nZXR0ZXItYW5kLXNldHRlciAodmFycyBnZXQtZGVsZWdhdGUgc2V0LWRl bGVnYXRlIHByb2MpCisiQ29tcG9zZSBnZXR0ZXJzIGFuZCBzZXR0ZXJzLgorCit2YXJzIGlzIGFu IHVuZXZhbHVhdGVkIGxpc3Qgb2YgbmFtZXMgdGhhdCBhcmUgYm91bmQgaW4gdGhlIGNhbGxlci4K KworZ2V0LWRlbGVnYXRlIGlzIGNhbGxlZCBieSB0aGUgbmV3IGdldHRlciB0byBleHRlbmQgdGhl IHNldCBvZiAKKwlnZXR0YWJsZSB2YXJpYWJsZXMgYmV5b25kIGp1c3QgdmFycworc2V0LWRlbGVn YXRlIGlzIGNhbGxlZCBieSB0aGUgbmV3IHNldHRlciB0byBleHRlbmQgdGhlIHNldCBvZiAKKwln ZXR0YWJsZSB2YXJpYWJsZXMgYmV5b25kIGp1c3QgdmFycworCitwcm9jIGlzIGEgcHJvY2VkdXJl IHRoYXQgaXMgY2FsbGVkCisJKHByb2MgZ2V0dGVyIHNldHRlcikiCiAgIGAoLHByb2MgLEAgKGRl bGVnYXRpbmctZ2V0dGVyLWFuZC1zZXR0ZXItc3ludGF4IHZhcnMgZ2V0LWRlbGVnYXRlIHNldC1k ZWxlZ2F0ZSkpKQogCiAKLTs7OyB3aXRoLWV4Y3Vyc2lvbi1nZXR0ZXItYW5kLXNldHRlciA8dmFy cz4gcHJvYwotOzs7ICAgPHZhcnM+IGlzIGFuIHVuZXZhbHVhdGVkIGxpc3Qgb2YgbmFtZXMgdGhh dCBhcmUgYm91bmQgaW4gdGhlIGNhbGxlci4KLTs7OyAgIHByb2MgaXMgY2FsbGVkOgotOzs7Ci07 OzsJCShwcm9jIGV4Y3Vyc2lvbiBnZXR0ZXIgc2V0dGVyKQotOzs7Ci07OzsgICBTZWUgYWxzbzoK LTs7Owl3aXRoLWdldHRlci1hbmQtc2V0dGVyCi07OzsJd2l0aC1leGN1cnNpb24tZnVuY3Rpb24K LTs7OwogKGRlZm1hY3JvIHdpdGgtZXhjdXJzaW9uLWdldHRlci1hbmQtc2V0dGVyICh2YXJzIHBy b2MpCisidmFycyBpcyBhbiB1bmV2YWx1YXRlZCBsaXN0IG9mIG5hbWVzIHRoYXQgYXJlIGJvdW5k IGluIHRoZSBjYWxsZXIuCitwcm9jIGlzIGNhbGxlZDoKKworCShwcm9jIGV4Y3Vyc2lvbiBnZXR0 ZXIgc2V0dGVyKQorCitTZWUgYWxzbzoKKwl3aXRoLWdldHRlci1hbmQtc2V0dGVyCisJd2l0aC1l eGN1cnNpb24tZnVuY3Rpb24iCiAgIGAoLHByb2MgICwoZXhjdXJzaW9uLWZ1bmN0aW9uLXN5bnRh eCB2YXJzKQogCSAgLEAgKGdldHRlci1hbmQtc2V0dGVyLXN5bnRheCB2YXJzKSkpCiAKQEAgLTIy OSwzMyArMjE3LDI4IEBACiAJCQkoLGxvb3AtbmFtZSAoY2RkciAsYXJncy1uYW1lKSkpKSkpKSkp CiAKIAorKGRlZm1hY3JvIHdpdGgtY29uZmlndXJhdGlvbi1nZXR0ZXItYW5kLXNldHRlciAodmFy cy1ldGMgcHJvYykKKyJDcmVhdGUgYSBnZXR0ZXIgYW5kIHNldHRlciB0aGF0IGNhbiB0cmlnZ2Vy IGFyYml0cmFyeSBjb21wdXRhdGlvbi4KIAordmFycy1ldGMgaXMgYSBsaXN0IG9mIHZhcmlhYmxl IHNwZWNpZmllcnMsIGV4cGxhaW5lZCBiZWxvdy4KK3Byb2MgaXMgY2FsbGVkOgogCi07Ozsgd2l0 aC1jb25maWd1cmF0aW9uLWdldHRlci1hbmQtc2V0dGVyIDx2YXJzLWV0Yz4gcHJvYwotOzs7Ci07 OzsgIENyZWF0ZSBhIGdldHRlciBhbmQgc2V0dGVyIHRoYXQgY2FuIHRyaWdnZXIgYXJiaXRyYXJ5 IGNvbXB1dGF0aW9uLgotOzs7Ci07OzsgIDx2YXJzLWV0Yz4gaXMgYSBsaXN0IG9mIHZhcmlhYmxl IHNwZWNpZmllcnMsIGV4cGxhaW5lZCBiZWxvdy4KLTs7OyAgcHJvYyBpcyBjYWxsZWQ6Ci07OzsK LTs7OwkJKHByb2MgZ2V0dGVyIHNldHRlcikKLTs7OwotOzs7ICAgRWFjaCBlbGVtZW50IG9mIHRo ZSA8dmFycy1ldGM+IGxpc3QgaXMgb2YgdGhlIGZvcm06Ci07OzsKLTs7OwkoPHZhcj4gZ2V0dGVy LWhvb2sgc2V0dGVyLWhvb2spCi07OzsKLTs7OyAgIEJvdGggaG9vayBlbGVtZW50cyBhcmUgZXZh bHVhdGVkOyB0aGUgdmFyaWFibGUgbmFtZSBpcyBub3QuCi07OzsgICBFaXRoZXIgaG9vayBtYXkg YmUgI2Ygb3IgcHJvY2VkdXJlLgotOzs7Ci07OzsgICBBIGdldHRlciBob29rIGlzIGEgdGh1bmsg dGhhdCByZXR1cm5zIGEgdmFsdWUgZm9yIHRoZSBjb3JyZXNwb25kaW5nCi07OzsgICB2YXJpYWJs ZS4gICBJZiBvbWl0dGVkICgjZiBpcyBwYXNzZWQpLCB0aGUgYmluZGluZyBvZiA8dmFyPiBpcwot Ozs7ICAgcmV0dXJuZWQuCi07OzsKLTs7OyAgIEEgc2V0dGVyIGhvb2sgaXMgYSBwcm9jZWR1cmUg b2Ygb25lIGFyZ3VtZW50IHRoYXQgYWNjZXB0cyBhIG5ldyB2YWx1ZQotOzs7ICAgZm9yIHRoZSBj b3JyZXNwb25kaW5nIHZhcmlhYmxlLiAgSWYgb21pdHRlZCwgdGhlIGJpbmRpbmcgb2YgPHZhcj4K LTs7OyAgIGlzIHNpbXBseSBzZXQgdXNpbmcgc2V0IS4KLTs7OwotKGRlZm1hY3JvIHdpdGgtY29u ZmlndXJhdGlvbi1nZXR0ZXItYW5kLXNldHRlciAodmFycy1ldGMgcHJvYykKKyAgCShwcm9jIGdl dHRlciBzZXR0ZXIpCisKK0VhY2ggZWxlbWVudCBvZiB0aGUgdmFycy1ldGMgbGlzdCBpcyBvZiB0 aGUgZm9ybToKKworCSh2YXIgZ2V0dGVyLWhvb2sgc2V0dGVyLWhvb2spCisKK0JvdGggaG9vayBl bGVtZW50cyBhcmUgZXZhbHVhdGVkOyB0aGUgdmFyaWFibGUgbmFtZSBpcyBub3QuCitFaXRoZXIg aG9vayBtYXkgYmUgI2Ygb3IgcHJvY2VkdXJlLgorCitBIGdldHRlciBob29rIGlzIGEgdGh1bmsg dGhhdCByZXR1cm5zIGEgdmFsdWUgZm9yIHRoZSBjb3JyZXNwb25kaW5nCit2YXJpYWJsZS4gICBJ ZiBvbWl0dGVkICgjZiBpcyBwYXNzZWQpLCB0aGUgYmluZGluZyBvZiB2YXIgaXMKK3JldHVybmVk LgorCitBIHNldHRlciBob29rIGlzIGEgcHJvY2VkdXJlIG9mIG9uZSBhcmd1bWVudCB0aGF0IGFj Y2VwdHMgYSBuZXcgdmFsdWUKK2ZvciB0aGUgY29ycmVzcG9uZGluZyB2YXJpYWJsZS4gIElmIG9t aXR0ZWQsIHRoZSBiaW5kaW5nIG9mIHZhcgoraXMgc2ltcGx5IHNldCB1c2luZyBzZXQhLiIKICAg YCgobGFtYmRhIChzaW1wbGVyLWdldCBzaW1wbGVyLXNldCBib2R5LXByb2MpCiAgICAgICAod2l0 aC1kZWxlZ2F0aW5nLWdldHRlci1hbmQtc2V0dGVyICgpCiAJc2ltcGxlci1nZXQgc2ltcGxlci1z ZXQgYm9keS1wcm9jKSkKQEAgLTMwNCwyMyArMjg3LDIwIEBACiAgICAgLHByb2MpKQogCiAKLTs7 OyBsZXQtY29uZmlndXJhdGlvbi1nZXR0ZXItYW5kLXNldHRlciA8dmFycy1ldGM+IHByb2MKLTs7 OwotOzs7ICAgVGhpcyBwcm9jZWR1cmUgaXMgbGlrZSB3aXRoLWNvbmZpZ3VyYXRpb24tZ2V0dGVy LWFuZC1zZXR0ZXIgKHEudi4pCi07OzsgICBleGNlcHQgdGhhdCBlYWNoIGVsZW1lbnQgb2YgPHZh cnMtZXRjPiBpczoKLTs7OwotOzs7CQkoPHZhcj4gaW5pdGlhbC12YWx1ZSBnZXR0ZXItaG9vayBz ZXR0ZXItaG9vaykKLTs7OwotOzs7ICAgVW5saWtlIHdpdGgtY29uZmlndXJhdGlvbi1nZXR0ZXIt YW5kLXNldHRlciwgbGV0LWNvbmZpZ3VyYXRpb24tZ2V0dGVyLWFuZC1zZXR0ZXIKLTs7OyAgIGlu dHJvZHVjZXMgYmluZGluZ3MgZm9yIHRoZSB2YXJpYWJsZXMgbmFtZWQgaW4gPHZhcnMtZXRjPi4K LTs7OyAgIEl0IGlzIHNob3J0LWhhbmQgZm9yOgotOzs7Ci07OzsJCShsZXQgKCg8dmFyMT4gaW5p dGlhbC12YWx1ZS0xKQotOzs7CQkgICAgICAoPHZhcjI+IGluaXRpYWwtdmFsdWUtMikKLTs7OwkJ CS4uLikKLTs7OwkJICAod2l0aC1jb25maWd1cmF0aW9uLWdldHRlci1hbmQtc2V0dGVyICgoPHZh cjE+IHYxLWdldCB2MS1zZXQpIC4uLikgcHJvYykpCi07OzsKIChkZWZtYWNybyBsZXQtd2l0aC1j b25maWd1cmF0aW9uLWdldHRlci1hbmQtc2V0dGVyICh2YXJzLWV0YyBwcm9jKQorIlRoaXMgcHJv Y2VkdXJlIGlzIGxpa2Ugd2l0aC1jb25maWd1cmF0aW9uLWdldHRlci1hbmQtc2V0dGVyIChxLnYu KQorZXhjZXB0IHRoYXQgZWFjaCBlbGVtZW50IG9mIHZhcnMtZXRjIGlzOgorCisJKHZhciBpbml0 aWFsLXZhbHVlIGdldHRlci1ob29rIHNldHRlci1ob29rKQorCitVbmxpa2Ugd2l0aC1jb25maWd1 cmF0aW9uLWdldHRlci1hbmQtc2V0dGVyLCBsZXQtY29uZmlndXJhdGlvbi1nZXR0ZXItYW5kLXNl dHRlcgoraW50cm9kdWNlcyBiaW5kaW5ncyBmb3IgdGhlIHZhcmlhYmxlcyBuYW1lZCBpbiB2YXJz LWV0Yy4KK0l0IGlzIHNob3J0LWhhbmQgZm9yOgorCisJKGxldCAoKHZhcjEgaW5pdGlhbC12YWx1 ZS0xKQorCSAgICAgICh2YXIyIGluaXRpYWwtdmFsdWUtMikKKwkJLi4uKQorCSAgKHdpdGgtY29u ZmlndXJhdGlvbi1nZXR0ZXItYW5kLXNldHRlciAoKHZhcjEgdjEtZ2V0IHYxLXNldCkgLi4uKSBw cm9jKSkiCiAgIGAobGV0ICwobWFwIChsYW1iZGEgKHYpIGAoLChjYXIgdikgLChjYWRyIHYpKSkg dmFycy1ldGMpCiAgICAgICh3aXRoLWNvbmZpZ3VyYXRpb24tZ2V0dGVyLWFuZC1zZXR0ZXIgLCht YXAgKGxhbWJkYSAodikgYCgsKGNhciB2KSAsKGNhZGRyIHYpICwoY2FkZGRyIHYpKSkgdmFycy1l dGMpCiAJCQkJCSAgICxwcm9jKSkpCi0tIAoxLjcuNgoK --e89a8f503536f0dc7404bf2905bf--