From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id gHY9F7wQ5mEIAgAAgWs5BA (envelope-from ) for ; Tue, 18 Jan 2022 01:58:36 +0100 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id yEMXFLwQ5mG0ZAAAauVa8A (envelope-from ) for ; Tue, 18 Jan 2022 01:58:36 +0100 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 972A021C85 for ; Tue, 18 Jan 2022 01:58:31 +0100 (CET) Received: from localhost ([::1]:55724 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n9cpS-0008MF-C3 for larch@yhetil.org; Mon, 17 Jan 2022 19:58:30 -0500 Received: from eggs.gnu.org ([209.51.188.92]:44576) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n9clf-0006wQ-Bn for emacs-orgmode@gnu.org; Mon, 17 Jan 2022 19:54:35 -0500 Received: from [2a00:1450:4864:20::336] (port=44804 helo=mail-wm1-x336.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n9clX-0000Xt-LB for emacs-orgmode@gnu.org; Mon, 17 Jan 2022 19:54:31 -0500 Received: by mail-wm1-x336.google.com with SMTP id f141-20020a1c1f93000000b003497aec3f86so3219250wmf.3 for ; Mon, 17 Jan 2022 16:54:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=GFRsa4N7wSG3pmAsdylfzJOIN017y6YrUpra5zu/HqY=; b=YCxeTQt5cdWBTtdC7Qml3qCjtn1wg/+XGQM9mkIrw2rjGQP4bwAoKE9gxsqCireX4P DbdstbYWJQBFUML3/em0sVc2ncqberkeVbyOWQt5dWIfYM1g1XGktY7/fSWStdgWtGNa 0AnnOuB3xE2GKAgB+nYaZPnzbkIAQocbZsIqxnMjnfCq4oedTO7bZxTAmNR/bsWgWeiT sTTMw7BGXdqu37NVnhJVqjzmpDsSkCQUg7zKhhaqcaOTgZL1Lfhc2nHw6ygg+jxJ678e 4/JhFGygg2RwZkdD1gbq1u7jlrrVetsIw/BN7UiOXi8C2sdK39735lHfRWebokwnfgp1 INyA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=GFRsa4N7wSG3pmAsdylfzJOIN017y6YrUpra5zu/HqY=; b=JqlZ7L7w8c5OcbPXgJw5NKrWc/Kssj3lmL9tRqYAysU1FqrAaHweCS5yZI7b+ZmQvB ZvhMl4E6ZxDnSY4dICQWkgHOQYPd8wC3KAYGRVQ33LH5Y8npFf3WILg9ejTSxK7K25rz tlm/OetpWeMb5DA3Be7A/beuqLz3r2x7QYTERfHzyJ9MvTv5UxUlHw0bFsFo7DkwcVNo GGZn/ZrMAR/lbWbjPiqNA+5nyf5l9fn8ws7hY8QSghRhd9UIVqw8BBvv1D8y+1Srg6y6 wOf7Dr2liv0+0ouJGZE9zBw02sUi+huVF9ZPlWng3doTjVoJFMJ2G+uzsD4f/KyKfVNZ /ctg== X-Gm-Message-State: AOAM530TN8Q2ZbbydQqPu7j3pEu/DYSzuD7UWEY4NszTJeX48qevseOL XZ5AEZMlL7z2HFr2VbOMcN+M7uns4S5kaees/r8= X-Google-Smtp-Source: ABdhPJx4qvtM4DMYUm0+0m8KiQe0IAdq1xBxVLijjRcLUrvejtl78p/psK8PhsUfcTFQFBQny8GV4Ur+OASuq1+nkvo= X-Received: by 2002:a05:600c:6013:: with SMTP id az19mr16495212wmb.53.1642467265215; Mon, 17 Jan 2022 16:54:25 -0800 (PST) MIME-Version: 1.0 References: <871r1g936z.fsf@gmail.com> In-Reply-To: <871r1g936z.fsf@gmail.com> From: Tom Gillespie Date: Mon, 17 Jan 2022 19:54:13 -0500 Message-ID: Subject: Re: Org Syntax Specification To: Timothy Content-Type: multipart/mixed; boundary="000000000000e6151b05d5d0b5b5" X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a00:1450:4864:20::336 (failed) Received-SPF: pass client-ip=2a00:1450:4864:20::336; envelope-from=tgbugs@gmail.com; helo=mail-wm1-x336.google.com X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, PDS_HP_HELO_NORDNS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: org-mode-email , Nicolas Goaziou Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: "Emacs-orgmode" X-Migadu-Flow: FLOW_IN X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1642467512; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=GFRsa4N7wSG3pmAsdylfzJOIN017y6YrUpra5zu/HqY=; b=ecpk0B+WZRzVcactf5Gg5PcmRmFbr7FXjtQaV4ATbL0r9obtx66QoNRogfgKdskVVUXrlI CFKz+M/Gu4oLxxkxCXl2zB6Dz8HtE23drNo4foiF06pVdU7tc91cf7WrQoO9ZV6MQfIsPL JeaBFlgIf1BNaanR6IVwC/cfr38uya5tfCyjmuYjIrzvapgywXrBFE4TTXQS1RbmvYo9y7 Z8WxuZm+zYAU7j89bEvw1B+PygioKs3mS205Pewst4q/QRFALZVzVMONqwOvx6zGZvjwTD GlHb739rHTsdnd4s6Nd9URSBdaDYAtivNZe4050cEXrs5F0twXia7aza2RdefQ== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1642467512; a=rsa-sha256; cv=none; b=B1pgNZeEUZ1GYFJMiovBBe/mjhISWU2pG8ILa7DJHnwU4ks1LAILJCTIZOGtq8LvTz1hy4 4opKLLMa5p1AQLzE7cmoeUpwIg6EPjH7wjeldSIp5rq698ConVr9W6Y4qEtpzwvPOaPnLB Asznc5rnmv8tjmMOxFl0qkynQ1Jl3NC/K4b50RLL6I/pScM7yLFyMdjBdZAw/aCJER+Cxn FPqGYa1Z4VFMVtkxG3Wj0zzj2ugp0VX8WnenEj1lvPTrpiMTXMDD3hCyP5B2Rx7OXj2v3b RE+S9o5VsDe1NngqyX7eelEfg+A6vP54SM5sU9PkbLjGVnNHYKD0EtLfK0/qSA== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=YCxeTQt5; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: -3.22 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=YCxeTQt5; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: 972A021C85 X-Spam-Score: -3.22 X-Migadu-Scanner: scn1.migadu.com X-TUID: s4k6E0aiR2gB --000000000000e6151b05d5d0b5b5 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Timothy, I have attached a patch with some modifications and a bunch of comments (as footnotes). More replies in line. Thank you for all your work on this! Tom > Marking this as depreciated would have no effect on Org=E2=80=99s current= behaviour, but we could: > > Mark as depreciated now-ish > Add a utility to convert from TeX-style to LaTeX-style > Add org lint/fortification warnings > A while later (half a decade? more?) actually remove support In favor of this. There are good alternatives for this now. > The other component of the syntax which feels particularly awkward to me = is source block switches. They seem a bit odd, and since arguments exist, c= ompletely redundant. Extremely in favor of removing switches. There are so many better ways to do this now that aren't like some eldritch unix horror crawling up out of the abyss and into the eBNF :) --000000000000e6151b05d5d0b5b5 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Tom-s-comments-and-modifications-to-org-syntax-edite.patch" Content-Disposition: attachment; filename="0001-Tom-s-comments-and-modifications-to-org-syntax-edite.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kyjela5m0 RnJvbSAzNTI3MzMxZjAyZTU5M2VjNmJhNmNiNGM4YmRlM2Y2NGRlM2FkMjE2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUb20gR2lsbGVzcGllIDx0Z2J1Z3NAZ21haWwuY29tPgpEYXRl OiBNb24sIDE3IEphbiAyMDIyIDE5OjM0OjIxIC0wNTAwClN1YmplY3Q6IFtQQVRDSF0gVG9tJ3Mg Y29tbWVudHMgYW5kIG1vZGlmaWNhdGlvbnMgdG8gb3JnIHN5bnRheCBlZGl0ZWQKCkkgcmVtb3Zl ZCBhbnkgbWVudGlvbiBvZiBtYXJrZG93biBiZWNhdXNlIGl0IGlzIGEgZGlzdHJhY3Rpb24gaW4g dGhpcwpkb2N1bWVudCBhbmQgaXMgbm90IHNvbWV0aGluZyB3ZSB3YW50IGFueW9uZSBhdHRlbmRp bmcgdG8gaGVyZS4KCkkgY2hhbmdlICJ0b3AgbGV2ZWwgc2VjdGlvbiIgdG8gInplcm90aCBzZWN0 aW9uIiB3aGljaCBJIHRoaW5rIGlzIG1vcmUKY29uc2lzdGVudCB0ZXJtaW5vbG9neSBiZWNhdXNl IGxldmVsIGlzIG9mdGVuIHVzZWQgdG8gcmVmZXIgdG8gdGhlCmRlcHRoIG9mIHBhcnNpbmcgYXQg YW55IGdpdmVuIHBvaW50IGluIHRoZSBmaWxlIGFuZCB0aGUgdG9wIGxldmVsCnJlZmVycyB0byBh bnl0aGluZyB0aGF0IGNhbiBiZSBwYXJzZWQgd2l0aG91dCBjb250ZXh0LiBaZXJvdGggbWFrZXMg aXQKY2xlYXIgdGhhdCB3ZSBhcmUgdGFsa2luZyBhYm91dCB0aGUgYWN0dWFsIHplcm90aCBvY2N1 cnJlbmNlIG9mIGEKc2VjdGlvbiBpbiBhIGZpbGUvYnVmZmVyL3N0cmVhbS4KLS0tCiBkZXYvb3Jn LXN5bnRheC1lZGl0ZWQub3JnIHwgMzk5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKyst LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMzMxIGluc2VydGlvbnMoKyksIDY4IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2Rldi9vcmctc3ludGF4LWVkaXRlZC5vcmcgYi9kZXYvb3JnLXN5bnRh eC1lZGl0ZWQub3JnCmluZGV4IGMzMjU5NDczLi4yZTk5MDcwZCAxMDA2NDQKLS0tIGEvZGV2L29y Zy1zeW50YXgtZWRpdGVkLm9yZworKysgYi9kZXYvb3JnLXN5bnRheC1lZGl0ZWQub3JnCkBAIC0x OSw5ICsxOSw3IEBAIHVuZGVyIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2MyBvciBs YXRlci4KIE9yZyBpcyBhIHBsYWludGV4dCBmb3JtYXQgY29tcG9zZWQgb2Ygc2ltcGxlLCB5ZXQg dmVyc2F0aWxlLCBmb3Jtcwogd2hpY2ggcmVwcmVzZW50IGZvcm1hdHRpbmcgYW5kIHN0cnVjdHVy YWwgaW5mb3JtYXRpb24uICBJdCBpcyBkZXNpZ25lZAogdG8gYmUgYm90aCBpbnR1aXRpdmUgdG8g dXNlLCBhbmQgY2FwYWJsZSBvZiByZXByZXNlbnRpbmcgY29tcGxleAotZG9jdW1lbnRzLiAgTGlr ZSBbW2h0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNzc2M11bTWFya2Rv d25dXSwgT3JnIG1heSBiZSBjb25zaWRlcmVkIGEgbGlnaHR3ZWlnaHQgbWFya3VwCi1sYW5ndWFn ZS4gIEhvd2V2ZXIsIHdoaWxlIE1hcmtkb3duIHJlZmVycyB0byBhIGNvbGxlY3Rpb24gb2Ygc2lt aWxhcgotc3ludGF4ZXMsIE9yZyBpcyBhIHNpbmdsZSBzeW50YXguCitkb2N1bWVudHMuCiAKIFRo aXMgZG9jdW1lbnQgZGVzY3JpYmVzIGFuZCBjb21tZW50cyBvbiBPcmcgc3ludGF4IGFzIGl0IGlz IGN1cnJlbnRseQogcmVhZCBieSBpdHMgcGFyc2VyICg9b3JnLWVsZW1lbnQuZWw9KSBhbmQsIHRo ZXJlZm9yZSwgYnkgdGhlIGV4cG9ydApAQCAtMzIsMTQgKzMwLDEzIEBAIGZyYW1ld29yay4KICoq IE9iamVjdHMgYW5kIEVsZW1lbnRzCiAKIFRoZSBjb21wb25lbnRzIG9mIHRoaXMgc3ludGF4IGNh biBiZSBkaXZpZGVkIGludG8gdHdvIGNsYXNzZXM6Ci0iW1sjT2JqZWN0c11bb2JqZWN0c11dIiBh bmQgIltbI0VsZW1lbnRzXVtlbGVtZW50c11dIi4gIFRvIGJldHRlciB1bmRlcnN0YW5kIHRoZXNl IGNsYXNzZXMsCi1jb25zaWRlciB0aGUgcGFyYWdyYXBoIGFzIGEgdW5pdCBvZiBtZWFzdXJlbWVu dC4gIC9FbGVtZW50cy8gYXJlCi1zeW50YWN0aWMgY29tcG9uZW50cyB0aGF0IGV4aXN0IGF0IHRo ZSBzYW1lIG9yIGdyZWF0ZXIgc2NvcGUgdGhhbiBhCi1wYXJhZ3JhcGgsIGkuZS4gd2hpY2ggY291 bGQgbm90IGJlIGNvbnRhaW5lZCBieSBhIHBhcmFncmFwaC4KLUNvbnZlcnNlbHksIC9vYmplY3Rz LyBhcmUgc3ludGFjdGljIGNvbXBvbmVudHMgdGhhdCBleGlzdCB3aXRoIGEgc21hbGxlcgotc2Nv cGUgdGhhbiBhIHBhcmFncmFwaCwgYW5kIHNvIGNhbiBiZSBjb250YWluZWQgd2l0aGluIGEgcGFy YWdyYXBoLgotCi1FbGVtZW50cyBjYW4gYmUgc3RyYXRpZmllZCBpbnRvICJbWyNIZWFkaW5nc11b aGVhZGluZ3NdXSIsICJbWyNTZWN0aW9uc11bc2VjdGlvbnNdXSIsICJbWyNHcmVhdGVyX0VsZW1l bnRzXVtncmVhdGVyCisiW1sjRWxlbWVudHNdW2VsZW1lbnRzXV0iIGFuZCAiW1sjT2JqZWN0c11b b2JqZWN0c11dIi4gIEVsZW1lbnRzIGFyZQorc3ludGFjdGljIGNvbXBvbmVudHMgdGhhdCBoYXZl IHRoZSBzYW1lIHByaW9yaXR5IGFzIG9yIGdyZWF0ZXIKK3ByaW9yaXR5IHRoYW4gYSBwYXJhZ3Jh cGguIE9iamVjdHMgYXJlIHN5bnRhY3RpYyBjb21wb25lbnRzIHRoYXQgYXJlCitvbmx5IHJlY29n bml6ZWQgaW5zaWRlIGEgcGFyYWdyYXBoIG9yIG90aGVyIHBhcmFncmFwaC1saWtlIGVsZW1lbnRz CitzdWNoIGFzIGhlYWRpbmcgdGl0bGVzLgorCitFbGVtZW50cyBhcmUgZnVydGhlciBkaXZpZGVk IGludG8gIltbI0hlYWRpbmdzXVtoZWFkaW5nc11dIiwgIltbI1NlY3Rpb25zXVtzZWN0aW9uc11d Iltmbjo6c2VjdGlvbnMgYXJlIG5vdCBlbGVtZW50c10sICJbWyNHcmVhdGVyX0VsZW1lbnRzXVtn cmVhdGVyCiBlbGVtZW50c11dIiwgYW5kICJbWyNMZXNzZXJfRWxlbWVudHNdW2xlc3NlciBlbGVt ZW50c11dIiwgZnJvbSBicm9hZGVzdCBzY29wZSB0bwogbmFycm93ZXN0LiAgQWxvbmcgd2l0aCBv YmplY3RzLCB0aGVzZSBzdWItY2xhc3NlcyBkZWZpbmUgY2F0ZWdvcmllcyBvZgogc3ludGFjdGlj IGVudmlyb25tZW50cy4gIE9ubHkgW1sjSGVhZGluZ3NdW2hlYWRpbmdzXV0sIFtbI1NlY3Rpb25z XVtzZWN0aW9uc11dLCBbWyNQcm9wZXJ0eV9EcmF3ZXJzXVtwcm9wZXJ0eSBkcmF3ZXJzXV0sIGFu ZApAQCAtNTIsNyArNDksMTIgQEAgZWxlbWVudHMgdGhhdCBjYW5ub3QgY29udGFpbiBhbnkgb3Ro ZXIgZWxlbWVudHMuICBBcyBzdWNoLCBhIHBhcmFncmFwaAogaXMgY29uc2lkZXJlZCBhIGxlc3Nl ciBlbGVtZW50LiAgR3JlYXRlciBlbGVtZW50cyBjYW4gdGhlbXNlbHZlcwogY29udGFpbiBncmVh dGVyIGVsZW1lbnRzIG9yIGxlc3NlciBlbGVtZW50cy4gU2VjdGlvbnMgY29udGFpbiBib3RoCiBn cmVhdGVyIGFuZCBsZXNzZXIgZWxlbWVudHMsIGFuZCBoZWFkaW5ncyBjYW4gY29udGFpbiBhIHNl Y3Rpb24gYW5kCi1vdGhlciBoZWFkaW5ncy4KK290aGVyIGhlYWRpbmdzLiBbZm46dG9tMjpJIHdv dWxkIG5vdCBkaXNjdXNzIHN0cmF0YSBoZXJlIGJlY2F1c2UgaXQgaXMKK25vdCByZWxhdGVkIHRv IHRoZSBzeW50YXggb2YgdGhlIGRvY3VtZW50LiBJdCBpcyByZWxhdGVkIHRvIGhvdyB0aGF0Citz eW50YXggaXMgaW50ZXJwcmV0ZWQgYnkgb3JnIG1vZGUuIFRoZSBzdHJhdGEgYXJlIG5lc3Rpbmcg cnVsZXMgdGhhdAorYXJlIGluZGVwZW5kZW50IG9mIHRoZSBzeW50YXgsIGFuZCBkaXNjdXNzaW5n IHRoYXQgaGVyZSBpbiB0aGUgc3ludGF4Citkb2N1bWVudCBpcyBjb25mdXNpbmcsIGJlY2F1c2Ug dGhlIG5lc3RpbmcgaXMgbm90IHNvbWV0aGluZyB0aGF0IGNhbiBiZQorcGFyc2VkIGRpcmVjdGx5 IGJlY2F1c2UgaXQgZGVwZW5kcyBvbiB0aGUgbnVtYmVyIG9mIGFzdGVyaXNrcy5dCiAKICoqIFRo ZSBtaW5pbWFsIGFuZCBzdGFuZGFyZCBzZXRzIG9mIG9iamVjdHMKIApAQCAtNjAsMjUgKzYyLDMz IEBAIFRvIHNpbXBsaWZ5IHJlZmVyZW5jZXMgdG8gY29tbW9uIGNvbGxlY3Rpb25zIG9mIG9iamVj dHMsIHdlIGRlZmluZSB0d28KIHVzZWZ1bCBzZXRzLiAgVGhlIC88PDxtaW5pbWFsIHNldD4+PiBv ZiBvYmplY3RzLyByZWZlcnMgdG8gW1sjUGxhaW5fVGV4dF1bcGxhaW4gdGV4dF1dLCBbWyNFbXBo YXNpc19NYXJrZXJzXVt0ZXh0CiBtYXJrdXBdXSwgW1sjRW50aXRpZXNdW2VudGl0aWVzXV0sIFtb I0xhVGVYX0ZyYWdtZW50c11bTGFUZVggZnJhZ21lbnRzXV0sIFtbI1N1YnNjcmlwdF9hbmRfU3Vw ZXJzY3JpcHRdW3N1cGVyc2NyaXB0cyBhbmQgc3Vic2NyaXB0c11dLiAgVGhlCiAvPDw8c3RhbmRh cmQgc2V0Pj4+IG9mIG9iamVjdHMvIHJlZmVycyB0byB0aGUgZW50aXJlIHNldCBvZiBvYmplY3Rz LCBleGNsdWRpbmcKLWNpdGF0aW9uIHJlZmVyZW5jZXMgYW5kIFtbI1RhYmxlX0NlbGxzXVt0YWJs ZSBjZWxsc11dLgorY2l0YXRpb24gcmVmZXJlbmNlcyBhbmQgW1sjVGFibGVfQ2VsbHNdW3RhYmxl IGNlbGxzXV0uW2ZuOnRvbTM6VGFibGUgY2VsbHMgc2hvdWxkCitiZSB0cmVhdGVkIGluIGEgd2F5 IHRoYXQgaXMgZW50aXJlbHkgc2VwYXJhdGUgZnJvbSBvYmplY3RzLiBUaGlzIGRvY3VtZW50IGhh cyBpbmNsdWRlZAordGhlbSBhcyBzdWNoIGFzIGhhcyBvcmctZWxlbWVudCAoaWlyYykgaG93ZXZl ciBzaW5jZSB0aGV5IGNhbiBuZXZlciBhcHBlYXIgaW4gYSBwYXJhZ3JhcGgKK2FuZCBiZWNhdXNl IHRhYmxlcyBhcmUgY29tcGxldGVseSBzZXBhcmF0ZSBzeW50YWN0aWNhbGx5LCB3ZSBzaG91bGQg cHJvYmFibHkgZHJvcCB0aGUKK2lkZWEgdGhhdCB0YWJsZSBjZWxscyBhcmUgb2JqZWN0cy4gSSBy ZWFsaXplIHRoYXQgdGhpcyBtaWdodCBtZWFuIHRoZSBjcmVhdGlvbiBvZiBhCitkaXN0aW5jdGlv biBiZXR3ZWVuIHBhcmFncmFwaC1vYmplY3RzLCB0aXRsZS1vYmplY3RzLCB0YWJsZS1vYmplY3Rz IGV0Yy5dCiAKICoqIEJsYW5rIGxpbmVzCiAKIEEgbGluZSBjb250YWluaW5nIG9ubHkgc3BhY2Vz LCB0YWJzLCBuZXdsaW5lcywgYW5kIGxpbmUgZmVlZHMgKD1cdFxuXHI9KQotaXMgY29uc2lkZXJl ZCBhIC9ibGFuayBsaW5lLy4gIEJsYW5rIGxpbmVzIGNhbiBiZSB1c2VkIHRvIHNlcGFyYXRlCitp cyBjb25zaWRlcmVkIGEgL2JsYW5rIGxpbmUvLiAgQmxhbmsgbGluZXMgc2VwYXJhdGUKIHBhcmFn cmFwaHMgYW5kIG90aGVyIGVsZW1lbnRzLgogCiBXaXRoIHRoZSBleGNlcHRpb24gb2YgW1sjSXRl bXNdW2xpc3QgaXRlbXNdXSwgYmxhbmsgbGluZXMgYmVsb25nIHRvIHRoZSBwcmVjZWRpbmcKIGVs ZW1lbnQgd2l0aCB0aGUgbmFycm93ZXN0IHBvc3NpYmxlIHNjb3BlLiAgRm9yIGV4YW1wbGUsIGlm IGF0IHRoZSBlbmQKIG9mIGEgc2VjdGlvbiB3ZSBoYXZlIGEgcGFyYWdyYXBoIGFuZCBhIGJsYW5r IGxpbmUsIHRoYXQgYmxhbmsgbGluZSBpcwotY29uc2lkZXJlZCBwYXJ0IG9mIHRoZSBwYXJhZ3Jh cGguCitjb25zaWRlcmVkIHBhcnQgb2YgdGhlIHBhcmFncmFwaC5bZm46dG9tNDpJIGRvbid0IHRo aW5rIHdlIG5lZWQgdG8gZGlzY3VzcworbmVzdGluZyBzY29wZSBoZXJlLCBpdCBpcyBjb25mdXNp bmcsIGl0IGlzIGFsd2F5cyB0aGUgaW1tZWRpYXRlbHkgcHJpb3IKKyhsZXNzZXI/KSBlbGVtZW50 Ll0KIAogKiogSW5kZW50YXRpb24KIAogSW5kZW50YXRpb24gY29uc2lzdHMgb2YgYSBzZXJpZXMg b2Ygc3BhY2UgYW5kIHRhYiBjaGFyYWN0ZXJzIGF0IHRoZQogYmVnaW5uaW5nIG9mIGEgbGluZS4g TW9zdCBlbGVtZW50cyBjYW4gYmUgaW5kZW50YXRlZCwgd2l0aCB0aGUKIGV4Y2VwdGlvbiBvZiBb WyNIZWFkaW5nc11baGVhZGluZ3NdXSwgW1sjSW5saW5ldGFza3NdW2lubGluZXRhc2tzXV0sIFtb I0Zvb3Rub3RlX0RlZmluaXRpb25zXVtmb290bm90ZSBkZWZpbml0aW9uc11dLCBhbmQgW1sjRGlh cnlfU2V4cF1bZGlhcnkKLXNleHBzXV0uCitzZXhwc11dLiBbZm46Ok1heWJlIGEgbm90ZSB0aGF0 IGluZGVudGF0aW9uIGlzIG9ubHkgbWVhbmluZ2Z1bCBpbiBwbGFpbiBsaXN0cworYW5kIGZvciBn cmVhdGVyIGJsb2NrcyBpcyBhbGlnbmVkIHRvIHRoZSBpbmRlbnRhdGlvbiBvZiB0aGUgIytlbmRf IGJsb2NrP10KIAogKiogU3ludGF4IHBhdHRlcm5zCiAKQEAgLTk3LDcgKzEwNyw4IEBAIG1lYW5p bmcsIEZvciBpbnN0YW5jZSwgIktFWSIgYW5kICJWQUxVRSIgd2hlbiBkZXNjcmliaW5nCiBlbGVt ZW50cyBvciBvYmplY3RzLgogCiBVbmxlc3Mgb3RoZXJ3aXNlIHNwZWNpZmllZCwgYSBzcGFjZSBp biBhIHBhdHRlcm4gcmVwcmVzZW50cyBvbmUgb3IKLW1vcmUgaG9yaXpvbnRhbCB3aGl0ZXNwYWNl IGNoYXJhY3RlcnMuCittb3JlIGhvcml6b250YWwgd2hpdGVzcGFjZSBjaGFyYWN0ZXJzLltmbjo6 VGhpcyBzaG91bGQgYmUgaW4gYm9sZAorc28gdGhhdCBwZW9wbGUgZG9uJ3QgbWlzcyBpdC5dCiAK IFBhdHRlcm5zIHdpbGwgb2Z0ZW4gYWxzbyBjb250YWluIHN0YXRpYyBzdHJ1Y3R1cmVzIHRoYXQg c2VydmUgdG8KIGRpZmZlcmVudGlhdGUgYSBwYXJ0aWN1bGFyIGVsZW1lbnQgb3Igb2JqZWN0IHR5 cGUgZnJvbSBvdGhlcnMsIGJ1dApAQCAtMTQxLDI1ICsxNTIsMzQgQEAgSW4gdGhpcyBkb2N1bWVu dCwgdW5sZXNzIHNwZWNpZmllZCBvdGhlcndpc2UsIGNhc2UgaXMgaW5zaWduaWZpY2FudC4KIDpD VVNUT01fSUQ6IEhlYWRpbmdzCiA6RU5EOgogCi1BIEhlYWRpbmcgaXMgYSAvdW5pbmRlbnRlZC8g bGluZSBzdHJ1Y3R1cmVkIGFjY29yZGluZyB0byB0aGUgZm9sbG93aW5nIHBhdHRlcm46CitBIEhl YWRpbmcgaXMgYW4gL3VuaW5kZW50ZWQvIGxpbmUgc3RydWN0dXJlZCBhY2NvcmRpbmcgdG8gdGhl IGZvbGxvd2luZyBwYXR0ZXJuOgogCiAjK2JlZ2luX2V4YW1wbGUKIFNUQVJTIEtFWVdPUkQgUFJJ T1JJVFkgVElUTEUgVEFHUwogIytlbmRfZXhhbXBsZQogCi0rIFNUQVJTIDo6IEEgc3RyaW5nIGNv bnNpc3Rpbmcgb2Ygb25lIG9yIG1vcmUgYXN0ZXJpc2tzICh1cCB0bwotICB+b3JnLWlubGluZXRh c2stbWluLWxldmVsfiBpZiB0aGUgPW9yZy1pbmxpbmV0YXNrPSBsaWJyYXJ5IGlzIGxvYWRlZCkK KysgU1RBUlMgOjogQSBzdHJpbmcgY29uc2lzdGluZyBvZiBvbmUgb3IgbW9yZSBhc3Rlcmlza3Nb Zm46OnJlbW92ZWQKKyAgbm90ZSBhYm91dCBpbmxpbmUgdGFza3MgYmVjYXVzZSBpdCBpcyBzdGls bCBhIGhlYWRpbmcsIGFueSBtZW50aW9uCisgIG9mIGEgY29uY3JldGUgbnVtYmVyIHNob3VsZCBu b3QgYXBwZWFyIGluIHRoZSBzcGVjaWZpY2F0aW9uIG9mIHN5bnRheC5dCiAgIGFuZCBlbmRlZCBi eSBhIHNwYWNlIGNoYXJhY3Rlci4gIFRoZSBudW1iZXIgb2YgYXN0ZXJpc2tzIGlzIHVzZWQgdG8K LSAgZGVmaW5lIHRoZSBsZXZlbCBvZiB0aGUgaGVhZGluZy4KKyAgZGVmaW5lIHRoZSBsZXZlbCBv ZiB0aGUgaGVhZGluZy4gW2ZuOjpJbXBsZW1lbnRhdGlvbiBub3RlOiB3aGVuIHBhcnNpbmcKKyAg c3RhcnMgdGhlIHNwYWNlIGZvbGxvd2luZyB0aGUgc3RhcnMgTVVTVCBOT1QgQkUgQ09OU1VNRUQg YW5kIHRoZSBuZXh0CisgIHBoYXNlIG9mIHBhcnNpbmcgTVVTVCBzdGFydCB3aXRoIHRoZSBzcGFj ZSBzbyB0aGF0IGl0IGlzIHBvc3NpYmxlIHRvIGhhdmUKKyAgYSBoZWFkaW5nIHdpdGggbm8gdGl0 bGUgdGhhdCBhbHNvIGhhcyB0YWdzLl0KIAogKyBLRVlXT1JEIChvcHRpb25hbCkgOjogQSBzdHJp bmcgd2hpY2ggaXMgYSBtZW1iZXIgb2YKICAgfm9yZy10b2RvLWtleXdvcmRzLTF+W2ZuOm90a3cx OkJ5IGRlZmF1bHQsIH5vcmctdG9kby1rZXl3b3Jkcy0xfiBvbmx5Ci0gIGNvbnRhaW5zID1UT0RP PSBhbmQgPURPTkU9LCBob3dldmVyIHRoaXMgaXMgbGlhYmxlIHRvIGNoYW5nZS5dLiAgQ2FzZSBp cwotICBzaWduaWZpY2FudC4gIFRoaXMgaXMgY2FsbGVkIGEgIlRPRE8ga2V5d29yZCIuCi0KLSsg UFJJT1JJVFkgKG9wdGlvbmFsKSA6OiBBIHNpbmdsZSBhbHBoYW51bWVyaWMgY2hhcmFjdGVyIHBy ZWNlZGVkIGJ5IGEKLSAgaGFzaCBzaWduID0jPSBhbmQgZW5jbG9zZWQgd2l0aGluIHNxdWFyZSBi cmFja2V0cyAoZS5nLiA9WyNBXT0gb3IgPVsjMV09KS4gIFRoaXMKLSAgaXMgY2FsbGVkIGEgInBy aW9yaXR5IGNvb2tpZSIuCisgIGNvbnRhaW5zID1UT0RPPSBhbmQgPURPTkU9LCBob3dldmVyIG9y Zy10b2RvLWtleXdvcmRzLTEgaXMgYSBidWZmZXIgbG9jYWwKKyAgdmFyaWFibGUgYW5kIGNhbiBi ZSBzZXQgYnkgdXNlcnMgaW4gYW4gb3JnIGZpbGUgdXNpbmcgPSMrdG9kbzo9Ll0uCisgIENhc2Ug aXMgc2lnbmlmaWNhbnQuICBUaGlzIGlzIGNhbGxlZCBhICJUT0RPIGtleXdvcmQiLiBbZm46Oklt cGxlbWVudGF0aW9uIG5vdGU6CisgIFRPRE8ga2V5d29yZHMgY2Fubm90IGJlIGhhcmRjb2RlZCBp biBhIHRva2VuaXplciwgdGhlIHRva2VuaXplciBtdXN0CisgIGJlIGNvbmZpZ3VyYWJsZSBhdCBy dW50aW1lIHNvIHRoYXQgaW4tZmlsZSBUT0RPIGtleXdvcmRzIGFyZSBwcm9wZXJseSBpbnRlcnBy ZXRlZC5dCisKKysgUFJJT1JJVFkgKG9wdGlvbmFsKSA6OiBBIHNpbmdsZSBsZXR0ZXIgcHJlY2Vk ZWQgYnkgYQorICBoYXNoIHNpZ24gPSM9IGFuZCBlbmNsb3NlZCB3aXRoaW4gc3F1YXJlIGJyYWNr ZXRzIChlLmcuID1bI0FdPSBvciA9WyNEXT0pLiAgVGhpcworICBpcyBjYWxsZWQgYSAicHJpb3Jp dHkgY29va2llIi5bZm46Ok51bWVyaWMgdmFsdWVzIGFyZSBub3Qgc3VwcG9ydGVkCisgIGl0IGlz IGEgcXVpcmsgb2YgdGhlIGVsaXNwIGltcGxlbWVudGF0aW9uIHRoYXQgdGhleSBhcHBlYXIgdG8g d29yaywKKyAgaG93ZXZlciB0aGV5IGJyZWFrIGluIG5hc3R5IGFuZCB1bmV4cGVjdGVkIHdheXMu XQogCiArIFRJVExFIChvcHRpb25hbCkgOjogQSBzZXJpZXMgb2Ygb2JqZWN0cyBmcm9tIHRoZSBz dGFuZGFyZCBzZXQsCiAgIGV4Y2x1ZGluZyBsaW5lIGJyZWFrIG9iamVjdHMuICBJdCBpcyBtYXRj aGVkIGFmdGVyIGV2ZXJ5IG90aGVyIHBhcnQuCkBAIC0xODAsMTUgKzIwMCwxNyBAQCBTVEFSUyBL RVlXT1JEIFBSSU9SSVRZIFRJVExFIFRBR1MKIElmIHRoZSBmaXJzdCB3b3JkIGFwcGVhcmluZyBp biB0aGUgdGl0bGUgaXMgPUNPTU1FTlQ9LCB0aGUgaGVhZGluZwogd2lsbCBiZSBjb25zaWRlcmVk IGFzICJjb21tZW50ZWQiLiAgQ2FzZSBpcyBzaWduaWZpY2FudC4KIAotSWYgaXRzIHRpdGxlIGlz IHRoZSB2YWx1ZSBvZiB+b3JnLWZvb3Rub3RlLXNlY3Rpb25+ICg9Rm9vdG5vdGVzPSBieQotZGVm YXVsdCksIGl0IHdpbGwgYmUgY29uc2lkZXJlZCBhcyBhICJmb290bm90ZSBzZWN0aW9uIi4gIENh c2UgaXMKLXNpZ25pZmljYW50LgorSWYgdGhlIHRpdGxlIG9mIGEgaGVhZGluZyBpcyBleGFjdGx5 IHRoZSB2YWx1ZSBvZiB+b3JnLWZvb3Rub3RlLXNlY3Rpb25+CisoPUZvb3Rub3Rlcz0gYnkgZGVm YXVsdCksIGl0IHdpbGwgYmUgY29uc2lkZXJlZCBhcyBhICJmb290bm90ZSBzZWN0aW9uIi4KK0Nh c2UgaXMgc2lnbmlmaWNhbnQuCiAKIElmID1BUkNISVZFPSBpcyBvbmUgb2YgdGhlIHRhZ3MgZ2l2 ZW4sIHRoZSBoZWFkaW5nIHdpbGwgYmUgY29uc2lkZXJlZCBhcwogImFyY2hpdmVkIi4gIENhc2Ug aXMgc2lnbmlmaWNhbnQuCiAKLUEgaGVhZGluZyBjb250YWlucyBkaXJlY3RseSBvbmUgc2VjdGlv biAob3B0aW9uYWxseSksIGZvbGxvd2VkIGJ5Ci1hbnkgbnVtYmVyIG9mIGRlZXBlciBsZXZlbCBo ZWFkaW5ncy4KK1RoZSBsZXZlbCBvZiBhIGhlYWRpbmcgY2FuIGJlIHVzZWQgdG8gY29uc3RydWN0 IGEgbmVzdGVkIHN0cnVjdHVyZS4KK0FsbCBjb250ZW50IGZvbGxvd2luZyBhIGhlYWRpbmcgdGhh dCBhcHBlYXJzIGJlZm9yZSB0aGUgbmV4dCBoZWFkaW5nCisocmVnYXJkbGVzcyBvZiB0aGUgbGV2 ZWwgb2YgdGhhdCBuZXh0IGhlYWRpbmcpIGlzIGEgc2VjdGlvbi4gSW4gYWRkaXRpb24sCit0ZXh0 IGJlZm9yZSB0aGUgZmlyc3QgaGVhZGluZyBpbiBhbiBvcmcgZG9jdW1lbnQgaXMgYWxzbyBhIHNl Y3Rpb24uCiAKICoqKiBTZWN0aW9ucwogOlBST1BFUlRJRVM6CkBAIC0xOTcsNyArMjE5LDE1IEBA IGFueSBudW1iZXIgb2YgZGVlcGVyIGxldmVsIGhlYWRpbmdzLgogCiBTZWN0aW9ucyBjb250YWlu IG9uZSBvciBtb3JlIG5vbi1oZWFkaW5nIGVsZW1lbnRzLiAgV2l0aCB0aGUgZXhjZXB0aW9uCiBv ZiB0aGUgdGV4dCBiZWZvcmUgdGhlIGZpcnN0IGhlYWRpbmcgaW4gYSBkb2N1bWVudCAod2hpY2gg aXMKLWNvbnNpZGVyZWQgYSBzZWN0aW9uKSwgc2VjdGlvbnMgb25seSBvY2N1ciB3aXRoaW4gaGVh ZGluZ3MuCitjb25zaWRlcmVkIGEgc2VjdGlvbiksIHNlY3Rpb25zIG9ubHkgb2NjdXIgd2l0aGlu IGhlYWRpbmdzLltmbjo6IFRoZQorY2hvaWNlIHRvIGNhbGwgdGhpcyBzeW50YWN0aWMgY29tcG9u ZW50IGEgc2VjdGlvbiBpcyBjb25mdXNpbmcgYmVjYXVzZQoraXQgaXMgYXQgb2RkcyB3aXRoIHRo ZSB1c3VhbCBub3Rpb24gb2YgYSBzZWN0aW9uLCBuYW1lbHkgdGhhdCB0aGUKK3VzdWFsIGNvbmNl cHQgb2YgYSBzZWN0aW9uIGltcGxpZXMgdGhhdCBpdCBpbmNsdWRlcyBuZXN0ZWQgY29udGVudC4g IEkKK3BlcnNvbmFsbHkgZGlkbid0IHJlYWxpemUgdGhhdCBpdCBlbmRlZCBhdCB0aGUgbmV4dCBo ZWFkaW5nIHVudGlsCit3cml0aW5nIHRoaXMgY29tbWVudCAoYXMgY2FuIGJlIHNlZW4gZnJvbSBy ZWFkaW5nIG15IGNvbW1lbnRzIGluIHRoZQorbGF1bmRyeSBpbXBsZW1lbnRhdGlvbikuIFRoZXJl Zm9yZSBJIHN1Z2dlc3QgdGhhdCB3ZSBsb29rIGZvciBhbgorYWx0ZXJuYXRlIG5hbWUgZm9yIHRo aXMgc3ludGFjdGljIGNvbXBvbmVudC4gTWF5YmUgInNlZ21lbnQiIG9yCitzb21ldGhpbmcgc2lt aWxhciB0aGF0IGluZGljYXRlcyB0aGF0IGl0IGlzIHRydW5jYXRlZD9dCiAKICpFeGFtcGxlKgog CkBAIC0yMjQsMzEgKzI1NCw2NyBAQCBJdHMgaW50ZXJuYWwgc3RydWN0dXJlIGNvdWxkIGJlIHN1 bW1hcml6ZWQgYXM6CiAgICAoaGVhZGluZykpKSkKICMrZW5kX2V4YW1wbGUKIAotKioqIFRoZSB0 b3AgbGV2ZWwgc2VjdGlvbgorKioqIFRoZSB6ZXJvdGggc2VjdGlvbgogOlBST1BFUlRJRVM6Ci06 Q1VTVE9NX0lEOiBUb3BfbGV2ZWxfc2VjdGlvbgorOkNVU1RPTV9JRDogWmVyb3RoX3NlY3Rpb24K IDpFTkQ6CiAKIEFsbCBlbGVtZW50cyBiZWZvcmUgdGhlIGZpcnN0IGhlYWRpbmcgaW4gYSBkb2N1 bWVudCBsaWUgaW4gYSBzcGVjaWFsCi1zZWN0aW9uIGNhbGxlZCB0aGUgL3RvcCBsZXZlbCBzZWN0 aW9uLy4gIEl0IG1heSBiZSBwcmVjZWRlZCBieSBibGFuawotbGluZXMuICBVbmxpa2UgYSBub3Jt YWwgc2VjdGlvbiwgdGhlIHRvcCBsZXZlbCBzZWN0aW9uIGNhbiBpbW1lZGlhdGVseQorc2VjdGlv biBjYWxsZWQgdGhlIC96ZXJvdGggc2VjdGlvbi8uICBJdCBtYXkgYmUgcHJlY2VkZWQgYnkgYmxh bmsKK2xpbmVzLiAgVW5saWtlIGEgbm9ybWFsIHNlY3Rpb24sIHRoZSB6ZXJvdGggc2VjdGlvbiBj YW4gaW1tZWRpYXRlbHkKIGNvbnRhaW4gYSBbWyNQcm9wZXJ0eV9EcmF3ZXJzXVtwcm9wZXJ0eSBk cmF3ZXJdXSwgb3B0aW9uYWxseSBwcmVjZWRlZCBieSBbWyNDb21tZW50c11bY29tbWVudHNdXS4g IEl0IGNhbm5vdAotaG93ZXZlciwgY29udGFpbiBbW1BsYW5uaW5nXVtwbGFubmluZ11dLgoraG93 ZXZlciwgY29udGFpbiBbW1BsYW5uaW5nXVtwbGFubmluZ11dLltmbjo6VGhpcyBpcyB3cm9uZz8g SWYgaXQgaXMgbm90Cit3cm9uZywgdGhlbiBpdCBzaG91bGQgYmUuIFByb3BlcnR5IGRyYXdlcnMg YXJlIGFscmVhZHkgYW5ub3lpbmcgdG8gaW1wbGVtZW50CitiZWNhdXNlIHRoZXkgc2hhcmUgc3lu dGF4IHdpdGggcmVndWxhciBkcmF3ZXJzLCBhbmQgYWxsb3dpbmcgYSBwcm9wZXJ0eSBkcmF3ZXIK K2F0IHRoZSB0b3Agb2YgYSBmaWxlIHdpdGhvdXQgYSBoZWFkaW5nIG1lYW5zIHRoYXQgaXQgc2hv dWxkIGJlIGEgcmVndWxhciBkcmF3ZXIKK25vdCBhIHByb3BlcnR5IGRyYXdlciwgb3RoZXJ3aXNl IHlvdSBoYXZlIHRvIHNwZWNpYWwgY2FzZSB0aGUgaGFuZGxpbmcgb2YgZHJhd2VycworaW4gdGhl IHplcm90aCBzZWN0aW9uLiBXaGF0IGlzIHRoZSB1c2UgY2FzZSBmb3IgYSBwcm9wZXJ0eSBkcmF3 ZXIgYXMgb3Bwb3NlZCB0bworYSAjK3Byb3BlcnR5OiBsaW5lIGluIHRoZSB6ZXJvdGggc2VjdGlv bj8gSSBtYXkgY29tZSBhcm91bmQgb24gdGhpcyBhdCBzb21lIHBvaW50LAorYnV0IHJpZ2h0IG5v dyBpdCBzZWVtcyBtb3JlIGNvbXBsZXgsIGhvd2V2ZXIgaXQgbWlnaHQgYWN0dWFsbHkgYmUgbW9y ZSBjb25zaXN0ZW50CitpZiB3ZSBpbWFnaW5lIHRoZSB6ZXJvdGggc2VjdGlvbiBhcyBiZWluZyBu ZXN0ZWQgaW5zaWRlIGEgc2luZ2xlIGhlYWRpbmcgdGhhdCBoYXMKK2xldmVsIHplcm8gaW1wbGlj aXRseSBhdCB0aGUgdG9wIG9mIGEgZG9jdW1lbnQuIFVuZm9ydHVuYXRlbHkgdGhhdCBtZWFucyB0 aGF0IHN1Y2gKK3Byb3BlcnR5IGRyYXdlcnMgY2Fubm90IGJlIGRldGVybWluZWQgZnJvbSBhIGhv bW9nZW5lb3VzIHN5bnRheCBidXQgaW5zdGVhZCByZXF1aXJlCitzb21lIG9wZXJhdGlvbnMgb24g dGhlIGludGVybmFsIHJlcHJlc2VudGF0aW9uLiBOb3RlIGFsc28gdGhhdCBpZiB0aGlzIHdlcmUg YWxsb3dlZAordGhlbiB0aGUgcHJvcGVydHkgZHJhd2VyIHNob3VsZCBvbmx5IGJlIGFsbG93ZWQg YXMgdGhlIHZlcnkgZmlyc3QgbGluZSBvZiBhIGZpbGUKK2JlY2F1c2UgbmV3bGluZXMgYXQgdGhl IHN0YXJ0IG9mIGEgZmlsZSBuZWVkIHRvIGJlIHByZXNlcnZlZC4gTW9yZSB0aG91Z2ggcmVxdWly ZWQuXQogCiAqKiBBZmZpbGlhdGVkIEtleXdvcmRzCiA6UFJPUEVSVElFUzoKIDpDVVNUT01fSUQ6 IEFmZmlsaWF0ZWRfS2V5d29yZHMKIDpFTkQ6CiAKKyBbZm46OldpdGhvdXQgZ29pbmcgaW50byB0 byBtdWNoIGRldGFpbCwgYWZmaWxpYXRlZCBrZXl3b3JkcyBzaG91bGQKK25vdCBiZSBkaXN0aW5n dWlzaGVkIGZyb20gb3RoZXIga2V5d29yZHMgYXQgdGhlIGxldmVsIG9mIHRoZSBzeW50YXguCitU aGUgZmFjdCB0aGF0IHRoZXkgYXJlIGlzIGFuIGFydGlmYWN0IG9mIHRoZSBlbGlzcCBpbXBsZW1l bnRhdGlvbi4KK1RoZSBkZXRlcm1pbmF0aW9uIG9mIHRoZSBiZWhhdmlvciBvZiBhIGtleXdvcmQg d2l0aCByZWdhcmQgdG8KK2FmZmlsaWF0aW5nIGJlaGF2aW9yIHNob3VsZCBiZSBkZXRlcm1pbmVk IGluIGEgbGF0ZXIgcGFzcywgZXZlbiBpZiBpbgorc29tZSBjYXNlcyBzb21lIGltcGxlbWVudGF0 aW9ucyBtYXkgd2FudCB0byBtYXRlcmlhbGl6ZSB0aGVtIGludG8gdGhlCitwYXJzZXIgZm9yIHBl cmZvcm1hbmNlIHJlYXNvbnMuIEFsbG93aW5nIHVzZXJzIHRvIHByb21vdGUgYSBrZXl3b3JkIHRv CitiZSBhbiBhZmZpbGlhdGVkIGtleXdvcmQgd291bGQgYmUgaW5jcmVkaWJseSBwb3dlcmZ1bCBm b3IgYXR0YWNoaW5nCittZXRhZGF0YSB0byBwYXJ0cyBvZiBvcmctZmlsZXMgaW4gYSB3YXkgdGhh dCBpcyB1c2VyIGV4dGVuc2libGUuIEl0CittYXkgc3RpbGwgYmUgZGVzaXJhYmxlIHRvIGRlc2Ny aWJlIHRoZSBiZWhhdmlvciBvZiBhZmZpbGlhdGVkIGtleXdvcmRzCitoZXJlLCBidXQgdGhleSBh cmUgbm90IGluIGFueSB3YXkgZGlzdGluY3QgZnJvbSBvdGhlciBrZXl3b3JkcyBhdCB0aGUKK2xl dmVsIG9mIG9yZyBzeW50YXggYW5kIHRyeWluZyB0byBpbXBsZW1lbnQgdGhlbSBhcyBzdWNoIGlz IHVzdWFsbHkgYQorbWlzdGFrZSAodGhhdCBJIGhhdmUgbWFkZSkuXQorCiBXaXRoIHRoZSBleGNl cHRpb24gb2YgW1sjQ29tbWVudHNdW2NvbW1lbnRzXV0sIFtbI0Nsb2Nrc11bY2xvY2tzXV0sIFtb I0hlYWRpbmdzXVtoZWFkaW5nc11dLCBbWyNJbmxpbmV0YXNrc11baW5saW5ldGFza3NdXSwKIFtb I0l0ZW1zXVtpdGVtc11dLCBbWyNOb2RlX1Byb3BlcnRpZXNdW25vZGUgcHJvcGVydGllc11dLCBb WyNQbGFubmluZ11bcGxhbm5pbmddXSwgW1sjUHJvcGVydHlfRHJhd2Vyc11bcHJvcGVydHkgZHJh d2Vyc11dLCBbWyNTZWN0aW9uc11bc2VjdGlvbnNdXSwgYW5kCiBbWyNUYWJsZV9Sb3dzXVt0YWJs ZSByb3dzXV0sIGV2ZXJ5IG90aGVyIGVsZW1lbnQgdHlwZSBjYW4gYmUgYXNzaWduZWQgYXR0cmli dXRlcy4KKyBbZm46OlRlY2huaWNhbGx5IHRhYmxlcyBjYW4gYmUgYXNzaWduZWQgYXR0cmlidXRl cywgaWYgeW91IHRyeSB0byBhZmZpbGlhdGUgdG8gYSB0YWJsZQorcm93IHlvdSBhcmUgYWNjaWRl bnRhbGx5IGNyZWF0aW5nIGEgbmV3IHRhYmxlLiBBbHNvLCBjb21tZW50cyBwcm9iYWJseSBzaG91 bGRuJ3QgYmUKK2luIHRoaXMgbGlzdCwgYnV0IEkgbmVlZCB0byByZXZpZXcgd2hhdCB0aGUgYmVo YXZpb3Igd2FzIHdoZW4gdHJ5aW5nIHRvIGFmZmlsaWF0ZQordG8gYSBwYXJhZ3JhcGggd2hlcmUg dGhlcmUgaXMgYSBjb21tZW50IGluIGJldHdlZW4sIEknbSBwcmV0dHkgc3VyZSBpdCBkb2Vzbid0 IHdvcmsKK3Rob3VnaCBzb21lIG9mIHRoZSByZW9yZGVyaW5nIHZpYSBvcmctZWxlbWVudCBkb2Vz IC4uLi4gQmVpbmcgYWJsZSB0byBhZmZpbGlhdGUgdG8KK2NvbW1lbnRzIGNvdWxkIGJlIHF1aXRl IHBvd2VyZnVsIGZvciBzb21lIHNwZWNpYWxpemVkIHVzZSBjYXNlcy5dCiAKIFRoaXMgaXMgZG9u ZSBieSBhZGRpbmcgc3BlY2lmaWMgW1sjS2V5d29yZHNdW2tleXdvcmRzXV0sIG5hbWVkIC9hZmZp bGlhdGVkLyBrZXl3b3JkcywKIGltbWVkaWF0ZWx5IGFib3ZlIHRoZSBlbGVtZW50IGNvbnNpZGVy ZWQgKGEgYmxhbmsgbGluZSBjYW5ub3QgbGllCiBiZXR3ZWVuIHRoZSBhZmZpbGlhdGVkIGtleXdv cmQgYW5kIGVsZW1lbnQpLiBTdHJ1Y3R1cmFsbHksIGFmZmlsaWF0ZWQKIGtleXdvcmQgYXJlIG5v dCBjb25zaWRlcmVkIGFuIGVsZW1lbnQgaW4gdGhlaXIgb3duIHJpZ2h0IGJ1dCBhCi1wcm9wZXJ0 eSBvZiB0aGUgZWxlbWVudCB0aGV5IGFwcGx5IHRvLgorcHJvcGVydHkgb2YgdGhlIGVsZW1lbnQg dGhleSBhcHBseSB0by4gW2ZuOjpXaGlsZSBpdCBpcyB0ZW1wdGluZyB0byB0cnkKK3RvIGRvIHRo aXMgYXQgdGhlIGxldmVsIG9mIHRoZSBncmFtbWFyIGl0IGluZHVjZXMgYSBudW1iZXIgb2YgbmFz dHkKK2FtYmlndWl0aWVzIGluIHByYWN0aWNlLiBJdCBpcyBzYW5lciB0byBoYXZlIGEgc2luZ2xl IHVuaWZpZWQga2V5d29yZAorc3ludGF4IGFuZCB0aGVuIHRvIGRldGVybWluZSBhZmZpbGlhdGlv biBiZWhhdmlvciBpbiBhIGxhdGVyIHBhc3MuXQogCiBBZmZpbGlhdGVkIGtleXdvcmRzIGFyZSBz dHJ1Y3R1cmVkIGFjY29yZGluZyB0byBvbmUgb2YgdGhlIGZvbGxvd2luZyBwYXR0ZXJuOgogCkBA IC0yNjgsMTkgKzMzNCw0MiBAQCBBZmZpbGlhdGVkIGtleXdvcmRzIGFyZSBzdHJ1Y3R1cmVkIGFj Y29yZGluZyB0byBvbmUgb2YgdGhlIGZvbGxvd2luZyBwYXR0ZXJuOgogKyBPUFRWQUwgKG9wdGlv bmFsKSA6OiBBIHN0cmluZyBjb25zaXN0aW5nIG9mIGFueSBjaGFyYWN0ZXJzIGJ1dCBhCiAgIG5l d2xpbmUuICBUaGlzIHRlcm0gaXMgb25seSB2YWxpZCB3aGVuIEtFWSBpcyBhIG1lbWJlciBvZgog ICB+b3JnLWVsZW1lbnQtZHVhbC1rZXl3b3Jkc35bZm46b2Vka3c6QnkgZGVmYXVsdCwKLSAgfm9y Zy1lbGVtZW50LWR1YWwta2V5d29yZHN+IGNvbnRhaW5zID1DQVBUSU9OPSBhbmQgPVJFU1VMVFM9 Ll0uCisgIH5vcmctZWxlbWVudC1kdWFsLWtleXdvcmRzfiBjb250YWlucyA9Q0FQVElPTj0gYW5k ID1SRVNVTFRTPS5dLltmbjo6CisgIEFsbCBrZXl3b3JkcyBzaG91bGQgYWxsb3cgT1BUVkFMLCBp dCByZWd1bGFyaXplcyBhbmQgc2ltcGxpZmllcyB0aGUgc3ludGF4Ll0KICsgVkFMVUUgOjogQSBz dHJpbmcgY29uc2lzdGluZyBvZiBhbnkgY2hhcmFjdGVycyBidXQgYSBuZXdsaW5lLCBleGNlcHQK ICAgaW4gdGhlIGNhc2Ugd2hlcmUgS0VZIGlzIG1lbWJlciBvZgogICB+b3JnLWVsZW1lbnQtcGFy c2VkLWtleXdvcmRzfltmbjpvZXBrdzpCeSBkZWZhdWx0LAogICB+b3JnLWVsZW1lbnQtcGFyc2Vk LWtleXdvcmRzfiBjb250YWlucyA9Q0FQVElPTj0uXSBpbiB3aGljaCBjYXNlIFZBTFVFCiAgIGlz IGEgc2VyaWVzIG9mIG9iamVjdHMgZnJvbSB0aGUgc3RhbmRhcmQgc2V0LCBleGNsdWRpbmcgZm9v dG5vdGUKLSAgcmVmZXJlbmNlcy4KLQotUmVwZWF0aW5nIGFuIGFmZmlsaWF0ZWQga2V5d29yZCBi ZWZvcmUgYW4gZWxlbWVudCB3aWxsIHVzdWFsbHkgcmVzdWx0Ci1pbiB0aGUgcHJpb3IgVkFMVUVz IGJlaW5nIG92ZXJ3cml0dGVuIGJ5IHRoZSBsYXN0IGluc3RhbmNlIG9mIEtFWS4KLVRoZXJlIGFy ZSB0d28gc2l0dWF0aW9ucyB1bmRlciB3aGljaCB0aGUgVkFMVUVzIHdpbGwgYmUgY29uY2F0ZW5h dGVkOgorICByZWZlcmVuY2VzIChhbmQgbGluZSBicmVha3MgPz8/KS5bZm46OlRoaXMgaXMgY29u ZnVzaW5nLiAgQQorICA9IytjYXB0aW9uOj0gY2Fubm90IGNvbnRhaW4gYSBAQGV4cG9ydDogc25p cHBldEBAIHdpdGggYSBuZXdsaW5lIGluCisgIGl0LCB3aGljaCB0aGlzIHRleHQgc2VlbXMgdG8g aW1wbHkuIEEgYmV0dGVyIHdvcmRpbmcgd291bGQgYmUgdG8KKyAgc3RhdGUgdGhhdCB0aGVyZSBh cmUgc29tZSBrZXl3b3JkcyB3aGVyZSB0aGUgY29udGVudHMgb2YgVkFMVUUgd2lsbAorICBiZSBm dXJ0aGVyIHBhcnNlZCBhcyBwYXJhZ3JhcGhzIChvciB3aGF0ZXZlciB3ZSBhcmUgY2FsbGluZyB0 aGF0CisgIHRoaW5nIG5vdy4gSSB0aGluayB3ZSBhcmUgc3RpbGwgbWlzc2luZyB0aGUgdGVybSBm b3IgIm9iamVjdAorICBjb250YWluaW5nIHN5bnRheCBjb21wb25lbnQiKV0KKworIFtmbjo6VGhl IGJlaGF2aW9yIG9mIGFmZmlsaWF0ZWQga2V5d29yZHMgd2l0aCByZXNwZWN0IHRvIHNoYWRvd2lu ZworbmVlZHMgdG8gYmUgZnVsbHkgc3BlY2lmaWVkIGJlY2F1c2UgaXQgaGFzIG1ham9yIHNlbWFu dGljcyBpbXBsaWNhdGlvbnMsCithbmQgZm9yIG9yZyBiYWJlbCBoZWFkZXJzIGl0IGhhcyBzZWN1 cml0eSBpbXBsaWNhdGlvbnMuXQorQnkgZGVmYXVsdCB3aGVuIHRoZXJlIGFyZSBtdWx0aXBsZSBh ZmZpbGlhdGVkIGtleXdvcmRzIHRoYXQgbGFzdCBvY2N1cnJlbmNlCitvZiBhIGdpdmVuIGtleXdv cmQgaXMgdGhlIG9uZSB0aGF0IGhhcyBwcmlvcml0eS4gTm9ybWFsbHkgdXNlcnMgc2hvdWxkIG5v dAorc3BlY2lmeSBtb3JlIHRoYW4gYSBzaW5nbGUgaW5zdGFuY2Ugb2YgYW4gYWZmaWxpYXRlZCBr ZXl3b3JkIHBlciBlbGVtZW50LCBidXQKK2lmIHRoZXkgZG8gdGhlIGxhc3Qgb25lIG9uIHRoZSBw YWdlIHdpbnMuCisKK1RoZSBkZWZhdWx0IGJlaGF2aW9yIGlzIE5PVCBmb2xsb3dlZCBmb3IgdGhl IH4jK2hlYWRlcjp+IGtleXdvcmQgdGhhdAoraXMgdXNlZCBmb3Igb3JnLWJhYmVsIGJsb2Nrcy4g fiMraGVhZGVyOn4ga2V5d29yZHMgY29tYmluZSBoZWFkZXIKK2ZpZWxkcyBhbmQgcmVzb2x2ZSBj b25mbGljdHMgYnkgaGF2aW5nIHRoZSB0b3AgcmlnaHQgbW9zdCAoZmlyc3QgbGluZQorbGFzdCBp bnN0YW5jZSBvbiB0aGUgbGluZSkgaW5zdGFuY2Ugb2YgZmllbGQgdGFrZSBwcmlvcml0eS4gW2Zu OjpUaGlzCitiZWhhdmlvciBpcyBjcml0aWNhbCBmb3Igb3JnIGJhYmVsIGFuZCBjb2RlIGV4ZWN1 dGlvbiBzZWN1cml0eS4gSWYKK3RoZXJlIGFyZSBjYXNlcyB3aGVyZSBhZmYga2V5d29yZHMgYXJl IG5vdCBmb2xsb3dpbmcgdGhpcyBiZWhhdmlvcgordGhlbiB0aGV5IG5lZWQgdG8gYmUgZml4ZWQu IFRoZSByZWFzb24gdG8gZG8gZmlyc3Qgb25lIHdpbnMgaW4gY2FzZXMKK2xpa2UgdGhpcyBpcyBz byB0aGF0IHVzZXJzIGRvIG5vdCBoYXZlIHRvIGluc2VydCBsaW5lcyBiZWxvdyB3aGljaAorbGVh ZCB0byBoYXJkIHRvIHVuZGVyc3RhbmQgZGlmZnMuXQorCitJbiBhZGRpdGlvbiwgdGhlcmUgYXJl IHR3byBzaXR1YXRpb25zIGluIHdoaWNoIHRoZSBWQUxVRXMgd2lsbCBiZSBjb25jYXRlbmF0ZWQ6 CiAxLiBJZiBLRVkgaXMgYSBtZW1iZXIgb2Ygfm9yZy1lbGVtZW50LWR1YWwta2V5d29yZHN+W2Zu Om9lZGt3XS4KLTIuIElmIHRoZSBhZmZpbGlhdGVkIGtleXdvcmQgaXMgYW4gaW5zdGFuY2Ugb2Yg dGhlIHBhdHRlbgorMi4gSWYgdGhlIGFmZmlsaWF0ZWQga2V5d29yZCBpcyBhbiBpbnN0YW5jZSBv ZiB0aGUgcGF0dGVybgogICAgPSMrYXR0cl9CQUNLRU5EOiBWQUxVRT0uCiAKIFRoZSBmb2xsb3dp bmcgZXhhbXBsZSBjb250YWlucyB0aHJlZSBhZmZpbGlhdGVkIGtleXdvcmRzOgpAQCAtMjk2LDE2 ICszODUsMjAgQEAgVGhlIGZvbGxvd2luZyBleGFtcGxlIGNvbnRhaW5zIHRocmVlIGFmZmlsaWF0 ZWQga2V5d29yZHM6CiA6Q1VTVE9NX0lEOiBHcmVhdGVyX0VsZW1lbnRzCiA6RU5EOgogCi1Vbmxl c3Mgc3BlY2lmaWVkIG90aGVyd2lzZSwgZ3JlYXRlciBlbGVtZW50cyBjYW4gY29udGFpbiBkaXJl Y3RseQorVW5sZXNzIG90aGVyd2lzZSBzcGVjaWZpZWQsIGdyZWF0ZXIgZWxlbWVudHMgY2FuIGRp cmVjdGx5IGNvbnRhaW4KIGFueSBncmVhdGVyIG9yIFtbI0xlc3Nlcl9FbGVtZW50c11bbGVzc2Vy IGVsZW1lbnRdXSBleGNlcHQ6CiArIEVsZW1lbnRzIG9mIHRoZWlyIG93biB0eXBlLgogKyBbWyNQ bGFubmluZ11bUGxhbm5pbmddXSwgd2hpY2ggbWF5IG9ubHkgb2NjdXIgaW4gYSBbWyNIZWFkaW5n c11baGVhZGluZ11dLgotKyBbWyNQcm9wZXJ0eV9EcmF3ZXJzXVtQcm9wZXJ0eSBkcmF3ZXJzXV0s IHdoaWNoIG1heSBvbmx5IG9jY3VyIGluIGEgW1sjSGVhZGluZ3NdW2hlYWRpbmddXSBvciB0aGUg W1sjVG9wX2xldmVsX3NlY3Rpb25dW3RvcCBsZXZlbAorKyBbWyNQcm9wZXJ0eV9EcmF3ZXJzXVtQ cm9wZXJ0eSBkcmF3ZXJzXV0sIHdoaWNoIG1heSBvbmx5IG9jY3VyIGluIGEgW1sjSGVhZGluZ3Nd W2hlYWRpbmddXSBvciB0aGUgW1sjWmVyb3RoX3NlY3Rpb25dW3plcm90aAogICBzZWN0aW9uXV0u CiArIFtbI05vZGVfUHJvcGVydGllc11bTm9kZSBwcm9wZXJ0aWVzXV0sIHdoaWNoIGNhbiBvbmx5 IGJlIGZvdW5kIGluIFtbI1Byb3BlcnR5X0RyYXdlcnNdW3Byb3BlcnR5IGRyYXdlcnNdXS4KICsg W1sjSXRlbXNdW0l0ZW1zXV0sIHdoaWNoIG1heSBvbmx5IG9jY3VyIGluIFtbI1BsYWluX0xpc3Rz XVtwbGFpbiBsaXN0c11dLgogKyBbWyNUYWJsZV9Sb3dzXVtUYWJsZSByb3dzXV0sIHdoaWNoIG1h eSBvbmx5IG9jY3VyIGluIFtbI1RhYmxlc11bdGFibGVzXV0uCiAKKyBbZm46OlRoaXMgaXMgc29t ZXdoYXQgY29uZnVzaW5nIGJlY2F1c2UgaXQgbGlzdHMgY29tYmluYXRpb25zIHRoYXQKK3Nob3Vs ZCBhbHJlYWR5IGJlIGltcG9zc2libGUgYnkgZGVmYXVsdCBiZWNhdXNlIGUuZy4gaXRlbXMgYXJl IG1lYW5pbmdsZXNzCitvdXRzaWRlIHBsYWluIGxpc3RzIGFuZCBzaG91bGQgbm90IGV2ZW4gYmUg bWVudGlvbmVkIG91dHNpZGUgb2YgdGhhdCBjb250ZXh0Ll0KKwogKioqIEdyZWF0ZXIgQmxvY2tz CiA6UFJPUEVSVElFUzoKIDpDVVNUT01fSUQ6IEdyZWF0ZXJfQmxvY2tzCkBAIC0zMjksMTAgKzQy MiwxNCBAQCBDT05URU5UUwogICB0aGFuIGEgbmV3bGluZS4KICsgQ09OVEVOVFMgOjogQSBjb2xs ZWN0aW9uIG9mIHplcm8gb3IgbW9yZSBlbGVtZW50cywgc3ViamVjdCB0byB0d28KICAgY29uZGl0 aW9uczoKLSAgLSBObyBsaW5lIG1heSBzdGFydCB3aXRoID0jK2VuZF9OQU1FPS4KKyAgLSBObyBs aW5lIGluIHRoZSBibG9jayBtYXkgc3RhcnQgd2l0aCA9IytlbmRfTkFNRT0uCiAgIC0gTGluZXMg YmVnaW5uaW5nIHdpdGggYW4gYXN0ZXJpc2sgbXVzdCBiZSBxdW90ZWQgYnkgYSBjb21tYSAoPSwq PSkuCiAgIEZ1cnRoZXJtb3JlLCBsaW5lcyBzdGFydGluZyB3aXRoID0jKz0gbWF5IGJlIHF1b3Rl ZCBieSBhIGNvbW1hICg9LCMrPSkuCiAKKyBbZm46OkltcGxlbWVudGF0aW9uIG5vdGU6IH4jK2Jl Z2luX25hbWV+IHRvIH4jK2VuZF9uYW1lfiB1c3VhbGx5IG5lZWRzIHRvCitiZSBpbXBsZW1lbnRl ZCBpbiB0aGUgdG9rZW5pemF0aW9uIHN0ZXAuIFRoZSBzdWJzdHJ1Y3R1cmUgZGlzY3Vzc2VkIGhl cmUKK2lzIHRodXMgdXN1YWxseSBoYW5kbGVkIGluIGEgc2Vjb25kIHBhc3MuXQorCiAqKiogRHJh d2VycyBhbmQgUHJvcGVydHkgRHJhd2VycwogOlBST1BFUlRJRVM6CiA6Q1VTVE9NX0lEOiBEcmF3 ZXJzCkBAIC0zNDksNiArNDQ2LDggQEAgQ09OVEVOVFMKICAgYW5kIHVuZGVyc2NvcmVzICg9LV89 KS4KICsgQ09OVEVOVFMgOjogQSBjb2xsZWN0aW9uIG9mIHplcm8gb3IgbW9yZSBlbGVtZW50cywg ZXhjZXB0IGFub3RoZXIgZHJhd2VyLgogCisgW2ZuOjogfjplbmQ6fiBtYXkgYmUgY2FwaXRhbGl6 ZWQgKGxlZ2FjeSBzdXBwb3J0KV0KKwogKioqIER5bmFtaWMgQmxvY2tzCiA6UFJPUEVSVElFUzoK IDpDVVNUT01fSUQ6IER5bmFtaWNfQmxvY2tzCkBAIC0zNjYsMTIgKzQ2NSwyMCBAQCBDT05URU5U UwogKyBDT05URU5UUyA6OiBBIGNvbGxlY3Rpb24gb2YgemVybyBvciBtb3JlIGVsZW1lbnRzLCBl eGNlcHQgYW5vdGhlcgogICBkeW5hbWljIGJsb2NrLgogCisgW2ZuOjpUaGUgc3BlYyBuZWVkcyB0 byBjbGFyaWZ5IGhvdyB0byBoYW5kbGUgfiMrYmVnaW46fiBhbG9uZSBvbiBhIGxpbmUgb3IgZm9s bG93IGJ5Citvbmx5IHdoaXRlc3BhY2UuIEl0IGlzIHF1aXRlIG5hc3R5IHRvIGhhdmUgdGhlIGJl aGF2aW9yIG9mIH4jK2JlZ2luOn4gY2hhbmdlIGlmIGl0IGlzCitvciBpcyBub3QgZm9sbG93ZWQg YnkgaW52aXNpYmxlIHdoaXRlc3BhY2UuIEkgc3VnZ2VzdCB0aGF0IHdlIGNoYW5nZSB0aGUgYmVo YXZpb3Igb2YKK34jK2JlZ2luOn4gd2l0aG91dCB3aGl0ZXNwYWNlIHRvIHJlZ3VsYXJpemUgaXQg c28gdGhhdCBpdCBpcyBfYWx3YXlzXyB0aGUgc3RhcnQgb2YgYQorZHluYW1pYyBibG9jayBzaW5j ZSB0aGUgfiMrYmVnaW46fiBrZXl3b3JkIGJ5IGl0c2VsZiBpcyBwcmV0dHkgbXVjaCBjb21wbGV0 ZWx5IHVzZWxlc3MKK3NpbmNlIGlmIHlvdSBwdXQgYW55dGhpbmcgYWZ0ZXIgaXQsIGl0IGJlY29t ZXMgdGhlIHN0YXJ0IG9mIGEgZHluYW1pYyBibG9jayBhbnl3YXkuXQorCiAqKiogRm9vdG5vdGUg RGVmaW5pdGlvbnMKIDpQUk9QRVJUSUVTOgogOkNVU1RPTV9JRDogRm9vdG5vdGVfRGVmaW5pdGlv bnMKIDpFTkQ6CiAKLUZvb3Rub3RlIGRlZmluaXRpb25zIG11c3Qgb2NjdXIgYXQgdGhlIHN0YXJ0 IG9mIGFuIC91bmluZGVudGVkLyBsaW5lLAorRm9vdG5vdGUgZGVmaW5pdGlvbnMgbXVzdCBvY2N1 ciBhdCB0aGUgc3RhcnQgb2YgYW4gL3VuaW5kZW50ZWQvIGxpbmUKKyh0aGV5IG11c3QgYmUgcHJl Y2VlZGVkIGJ5IG9ubHkgYSBuZXdsaW5lLCBub3RoaW5nIGVsc2UpLAogYW5kIGFyZSBzdHJ1Y3R1 cmVkIGFjY29yZGluZyB0byB0aGUgZm9sbG93aW5nIHBhdHRlcm46CiAjK2JlZ2luX2V4YW1wbGUK IFtmbjpMQUJFTF0gQ09OVEVOVFMKQEAgLTQwMSw2ICs1MDgsMTMgQEAgSXQgZXZlbiBjb250YWlu cyBhIHNpbmdsZSBibGFuayBsaW5lLgogOkNVU1RPTV9JRDogSW5saW5ldGFza3MKIDpFTkQ6CiAK KyBbZm46Okkgc3VnZ2VzdCB0aGF0IHdlIHJlbW92ZSBpbmxpbmV0YXNrcyBmcm9tIHRoaXMgZG9j dW1lbnQuCitUaGV5IGFyZSBhIGhhY2sgdGhhdCBjYW5ub3QgYmUgaW1wbGVtZW50ZWQgYXMgcGFy dCBvZiBhIGdyYW1tYXIKK2JlY2F1c2UgdGhleSByZXF1aXJlIGEgY29uY3JldGUgdmFsdWUgdG8g YmUgc3BlY2lmaWVkIHdoaWNoIGJyZWFrcwordGhlIGFyYml0cmFyeSBuZXN0aW5nIGRlcHRoIG9m IGhlYWRpbmdzLiBJIHRoaW5rIEkgd3JvdGUgdGhpcyBzb21ld2hlcmUKK2Vsc2UgYXMgd2VsbCwg YnV0IGlubGluZSB0YXNrcyBjYW4gb25seSBiZSBhIGxheWVyIG9uIHRvcCBvZiBoZWFkaW5ncywK K3RoZXkgY2Fubm90IGRpc3BsYWNlIHRoZW0uXQorCiBJbmxpbmV0YXNrcyBhcmUgc3ludGFjdGlj YWxseSBhIFtbI0hlYWRpbmdzXVtoZWFkaW5nXV0gd2l0aCBhIGxldmVsIG9mIGF0IGxlYXN0CiB+ b3JnLWlubGluZXRhc2stbWluLWxldmVsfltmbjpvaW1sOlRoZSBkZWZhdWx0IHZhbHVlIG9mCiB+ b3JnLWlubGluZXRhc2stbWluLWxldmVsfiBpcyA9MTU9Ll0sIGkuZS4gc3RhcnRpbmcgd2l0aCBh dCBsZWFzdCB0aGF0CkBAIC00NDgsOCArNTYyLDggQEAgQlVMTEVUIENPVU5URVItU0VUIENIRUNL LUJPWCBUQUcgQ09OVEVOVFMKICAgY2hhcmFjdGVyLCBvciBhIGh5cGhlbiBlbmNsb3NlZCBieSBz cXVhcmUgYnJhY2tldHMgKGkuZS4gPVsgXT0sID1bWF09LCBvciA9Wy1dPSkuCiArIFRBRyAob3B0 aW9uYWwpIDo6IEFuIGluc3RhbmNlIG9mIHRoZSBwYXR0ZXJuID1UQUctVEVYVCA6Oj0gd2hlcmUK ICAgPVRBRy1URVhUPSByZXByZXNlbnRzIGEgc3RyaW5nIGNvbnNpc3Rpbmcgb2Ygbm9uLW5ld2xp bmUgY2hhcmFjdGVycwotICB0aGF0IGRvZXMgbm90IGNvbnRhaW4gdGhlIHN1YnN0cmluZyAiXG5i c3B7fTo6XG5ic3B7fSIgKHR3byBjb2xvbnMgc3Vycm91bmRlZCBieQotICB3aGl0ZXNwYWNlKS4K KyAgdGhhdCBkb2VzIG5vdCBjb250YWluIHRoZSBzdWJzdHJpbmcgfiIgOjogIn4gKHR3byBjb2xv bnMgc3Vycm91bmRlZCBieQorICB3aGl0ZXNwYWNlIHdpdGhvdXQgdGhlIHF1b3RlcykuCiArIENP TlRFTlRTIChvcHRpb25hbCkgOjogQSBjb2xsZWN0aW9uIG9mIHplcm8gb3IgbW9yZSBlbGVtZW50 cywgZW5kaW5nCiAgIGF0IHRoZSBmaXJzdCBpbnN0YW5jZSBvZiBvbmUgb2YgdGhlIGZvbGxvd2lu ZzoKICAgLSBUaGUgbmV4dCBpdGVtLgpAQCAtNDU3LDYgKzU3MSwyMiBAQCBCVUxMRVQgQ09VTlRF Ui1TRVQgQ0hFQ0stQk9YIFRBRyBDT05URU5UUwogICAgIG5vdCBjb3VudGluZyBsaW5lcyB3aXRo aW4gb3RoZXIgZWxlbWVudHMgb3IgW1sjSW5saW5ldGFza3NdW2lubGluZXRhc2tdXSBib3VuZGFy aWVzLgogICAtIFR3byBjb25zZWN1dGl2ZSBibGFuayBsaW5lcy4KIAorIFtmbjo6IFRoZSBkZXNj cmlwdGlvbiBvZiBDT05URU5UUyBpcyBjb25mdXNpbmcgc2luY2UgaXQgY2Fubm90IGNvbnRhaW4K K2EgaGVhZGluZywgd2hpY2ggaXMgaW1wbGljaXQgaW4gdGhlIGluZGVudGF0aW9uIHJ1bGUgYnV0 IG5vdAorb2J2aW91cy4gSW4gYWRkaXRpb24sIGNvbnRlbnRzIG1heSBub3QgYWN0dWFsbHkgY29u dGFpbiB6ZXJvIG9yIG1vcmUKK2VsZW1lbnRzIGJlY2F1c2UgbWFueSBlbGVtZW50cyBtdXN0IHN0 YXJ0IG9uIHRoZWlyIG93biBsaW5lLiBTbworZS5nLiAxLiAjK2JlZ2luX3NyYyBkb2VzIG5vdCB3 b3JrLCBob3dldmVyLCB0aGUgd29yZGluZyBzZWVtcyB0bworaW5kaWNhdGUgdGhhdCBpdCBzaG91 bGQsIHdoaWNoIGlzIG1pc2xlYWRpbmcuIEZ1cnRoZXIsIGl0IGlzIGFjdHVhbGx5Citub3QgcG9z c2libGUgdG8gaW1wbGVtZW50IGNvbnRlbnRzIGFzIHNwZWNpZmllZCBiZWNhdXNlIGdyYW1tYXJz CitjYW5ub3QgdHJhY2sgdGhlIGluZGVudGF0aW9uIGxldmVsIHRoYXQgaXMgcmVxdWlyZWQgdG8g cmVjb25zdHJ1Y3QKK2xpc3QgaXRlbXMgY29ycmVjdGx5LiBUaGVyZWZvcmUgQ09OVEVOVFMgc2hv dWxkIG5vdCBiZSBkZWZpbmVkIGFzIHN1Y2gKK2J1dCBzaG91bGQgb25seSBzcGVjaWZ5IHRoYXQg dGhleSBjYW4gYmUgYW55dGhpbmcgZXhjZXB0IGEgbmV3bGluZS4gSQordGhpbmsgdGhhdCB0aGUg aW50ZW50IG9mIHRoaXMgZG9jdW1lbnQgaXMgc29tZXdoYXQgYSBjb25mbGF0aW9uIG9mIHRoZQor c3ludGF4IGZvciBvcmcgYW5kIG9mIHRoZSBzZW1hbnRpY3MgYXMgZGV0ZXJtaW5lZCBieSBleHBv cnQgYmFja2VuZHMKK2FuZC9vciBvcmctZWxlbWVudCwgaG93ZXZlciBpdCBtYWtlcyBpdCBleHRy ZW1lbHkgY29uZnVzaW5nIGJlY2F1c2UgaXQKK2lzIG5vdCBhY3R1YWxseSBwb3NzaWJsZSB0byBw YXJzZSBDT05URU5UUywgdGhleSBtdXN0IGJlIHJlY29uc3RydWN0ZWQKK2Zyb20gdGhlIHBhcnNl IHRyZWUuXQorCiAqRXhhbXBsZXMqCiAKICMrYmVnaW5fZXhhbXBsZQpAQCAtNDcxLDExICs2MDEs MTcgQEAgQlVMTEVUIENPVU5URVItU0VUIENIRUNLLUJPWCBUQUcgQ09OVEVOVFMKIDpFTkQ6CiAK IEEgL3BsYWluIGxpc3QvIGlzIGEgc2V0IG9mIGNvbnNlY3V0aXZlIFtbI0l0ZW1zXVtpdGVtc11d IG9mIHRoZSBzYW1lIGluZGVudGF0aW9uLgorIFtmbjo6VGhpcyBpcyBjb25mdXNpbmcgYmVjYXVz ZSB0aGUgZGVmaW5pdGlvbiBvZiBjb250ZW50cyBhYm92ZSBpcworY29uZnVzaW5nLCBpdCBhbHNv IGltcGxpZXMgdGhhdCBwbGFpbiBsaXN0cyBjYW5ub3QgYmUgbmVzdGVkLCBvciBhcmUKK25vdCBz b21laG93IG5lc3RlZCwgd2hpY2ggaXMgYWxzbyBjb25mdXNpbmcuIE1heWJlIGEgbGluZSB0byB0 aGUgZWZmZWN0Cit0aGF0IHBsYWluIGxpc3RzIG1heSBiZSBuZXN0ZWQgYWxvbmcgd2l0aCBhbnkg b3RoZXIgZWxlbWVudCB0aGF0IGlzCitwcm9wZXJseSBpbmRlbnRlZCBvciBzb21ldGhpbmc/XQog CiBJZiBmaXJzdCBpdGVtIGluIGEgcGxhaW4gbGlzdCBoYXMgYSBDT1VOVEVSIGluIGl0cyBCVUxM RVQsIHRoZSBwbGFpbgogbGlzdCB3aWxsIGJlIGFuICJvcmRlcmVkIHBsYWluLWxpc3QiLiAgSWYg aXQgY29udGFpbnMgYSBUQUcsIGl0IHdpbGwKIGJlIGEgImRlc2NyaXB0aXZlIGxpc3QiLiAgT3Ro ZXJ3aXNlLCBpdCB3aWxsIGJlIGFuICJ1bm9yZGVyZWQgbGlzdCIuCi1MaXN0IHR5cGVzIGFyZSBt dXR1YWxseSBleGNsdXNpdmUuCitMaXN0IHR5cGVzIGFyZSBtdXR1YWxseSBleGNsdXNpdmUgYXQg dGhlIHNhbWUgbGV2ZWwgb2YgaW5kZW50YXRpb24sIGlmCitib3RoIHR5cGVzIGFyZSBwcmVzZW50 IGNvbnNlY3V0aXZlbHkgdGhlbiB0aGV5IHBhcnNlIGFzIHNlcGFyYXRlIGxpc3RzLgogCiBGb3Ig ZXhhbXBsZSwgY29uc2lkZXIgdGhlIGZvbGxvd2luZyBleGNlcnB0IG9mIGFuIE9yZyBkb2N1bWVu dDoKIApAQCAtNTI0LDYgKzY2MCwxMyBAQCBDT05URU5UUwogKyBDT05URU5UUyA6OiBBIGNvbGxl Y3Rpb24gb2YgemVybyBvciBtb3JlIFtbI05vZGVfUHJvcGVydGllc11bbm9kZSBwcm9wZXJ0aWVz XV0sIG5vdAogICBzZXBhcmF0ZWQgYnkgYmxhbmsgbGluZXMuCiAKKyBbZm46OlRoZSBmYWlsdXJl IG1vZGUgZm9yIG1hbGZvcm1lZCBjb250ZW50cyBuZWVkcyB0byBiZQorZGV0ZXJtaW5lZCBtb3Jl IGNsZWFybHkgaGVyZS4gV2UgZG9uJ3Qgd2FudCBwcm9wZXJ0eSBkcmF3cyB0byBzdWRkZW5seQor YmVjb21lIHBsYWluIGRyYXdlcnMganVzdCBiZWNhdXNlIGEgdXNlciBoYXMgYSBtYWxmb3JtZWQg bGluZSwgdGhhdAorY291bGQgYmUgZGlzYXN0cm91cyBpZiBjZXJ0YWluIHNldHRpbmdzIGluIHRo ZSBwcm9wZXJ0eSBkcmF3ZXIgbWFzaworc2V0dGluZ3MgZnJvbSBmdXJ0aGVyIHVwIHRoZSB0cmVl LiAgSW4gc2hvcnQsIG1hbGZvcm1lZCBjb250ZW50cworc2hvdWxkIG5vdCBwb2lzb24gdGhlIHdo b2xlIHByb3BlcnR5IGRyYXdlci5dCisKICpFeGFtcGxlKgogCiAjK2JlZ2luX2V4YW1wbGUKQEAg LTUzNywxMSArNjgwLDI0IEBAIENPTlRFTlRTCiA6Q1VTVE9NX0lEOiBUYWJsZXMKIDpFTkQ6CiAK KyBbZm46OkkgdGhpbmsgdGhhdCB0aGlzIHNlY3Rpb24gbmVlZHMgdG8gYmUgc3BsaXQgaW50byB0 d28gc2VwYXJhdGUKK3NlY3Rpb25zIG9uZSBmb3IgZWFjaCBncmFtbWFyLiBJdCB3aWxsIG1ha2Ug aXQgbXVjaCBlYXNpZXIgdG8gc3BlY2lmeQorZWFjaCBncmFtbWFyLCBhbmQgaXQgd2lsbCBhbHNv IG1ha2UgaXQgY2xlYXIgdGhhdCB0aGV5IGFyZSBub3QKK3N5bnRhY3RpYyBlbGVtZW50cyB0aGF0 IGFyZSB0cml2aWFsbHkgaW50ZXJjaGFuZ2VhYmxlIHNpbmNlIG9ubHkgYQorc3Vic2V0IG9mIHRh Ymxlcy5lbCB0YWJsZXMgY2FuIGJlIGNvbnZlcnRlZCB0byBvcmcgdGFibGUgc3ludGF4IChhdAor dGhlIG1vbWVudCkuIEknbSB3aWxsaW5nIHRvIHRha2UgYSBzaG90IGF0IGl0Ll0KKwogVGFibGVz IGFyZSBzdGFydGVkIGJ5IGEgbGluZSBiZWdpbm5pbmcgd2l0aCBlaXRoZXI6CiArIEEgdmVydGlj YWwgYmFyICg9fD0pLCBmb3JtaW5nIGFuICJvcmciIHR5cGUgdGFibGUuCiArIFRoZSBzdHJpbmcg PSstPSBmb2xsb3dlZCBieSBhIHNlcXVlbmNlIG9mIHBsdXMgKD0rPSkgYW5kIG1pbnVzICg9LT0p CiAgIHNpZ25zLCBmb3JtaW5nIGEgInRhYmxlLmVsIiB0eXBlIHRhYmxlLgogCisgW2ZuOjpDb25z aWRlciB3aGV0aGVyIHRhYmxlcy5lbCB0YWJsZXMgc2hvdWxkIGJlIHN1cHBvcnRlZCBieSB0aGUK K3N5bnRheCBvdXRzaWRlIG9mIGVsaXNwIG9yZyBtb2RlLiBUaGVyZSBhcmUgc29tZSBzbGlnaHRs eSBkaXZlcmdlbnQKK3VzZSBjYXNlcyBhbmQgZmVhdHVyZXMgYW5kIHdlIGxpa2VseSBuZWVkL3dh bnQgdG8gZXhwbG9yZSBzb21lIG9mCit0aGUgYWx0ZXJuYXRpdmVzIHByb3Bvc2VkIGZvciBob3cg dG8gYWxsb3cgcHVyZSBvcmcgdGFibGVzIHRvIHN1cHBvcnQKK3RoZSBmZWF0dXJlcyB0aGF0IGFy ZSBjdXJyZW50bHkgb25seSBwb3NzaWJsZSBmb3IgdGFibGVzLmVsIHRhYmxlcy5dCisKIFRhYmxl cyBjYW5ub3QgYmUgaW1tZWRpYXRlbHkgcHJlY2VkZWQgYnkgc3VjaCBsaW5lcywgYXMgdGhlIGN1 cnJlbnQKIGxpbmUgd291bGQgdGhlIGJlIHBhcnQgb2YgdGhlIGVhcmxpZXIgdGFibGUuCiAKQEAg LTU3Nyw2ICs3MzMsMTEgQEAgYmxvY2tzXV0sIFtbI1BhcmFncmFwaHNdW3BhcmFncmFwaHNdXSBv ciBbWyNUYWJsZV9Sb3dzXVt0YWJsZSByb3dzXV0gY2FuIGNvbnRhaW4KIDpDVVNUT01fSUQ6IEJh YmVsX0NhbGwKIDpFTkQ6CiAKKyBbZm46OkFzIHdpdGggdGhlIG90aGVyIGtleXdvcmQtbGlrZSB0 aGluZ3MgYW5kIHN5bnRheCwgSSBzdWdnZXN0IHRoYXQKK3dlIHVsdGltYXRlbHkgbW92ZSBiYWJl bCBjYWxscyB0byBsaXZlIHVuZGVyIGEgc2VjdGlvbiBvbiBrZXl3b3JkCitjb250ZW50IHBhcnNl cnMgc28gdGhhdCBpdCBpcyBjbGVhciB0aGF0IHRoZXkgc2hvdWxkIG5vdCBiZSB0cmVhdGVkIGFz CitzZXBhcmF0ZSBzeW50YWN0aWMgY29tcG9uZW50cy5dCisKIEJhYmVsIGNhbGxzIGFyZSBzdHJ1 Y3R1cmVkIGFjY29yZGluZyB0byBvbmUgb2YgdGhlIGZvbGxvd2luZyBwYXR0ZXJuczoKICMrYmVn aW5fZXhhbXBsZQogLCMrY2FsbDogTkFNRShBUkdVTUVOVFMpCkBAIC01OTMsMTEgKzc1NCwyMCBA QCBCYWJlbCBjYWxscyBhcmUgc3RydWN0dXJlZCBhY2NvcmRpbmcgdG8gb25lIG9mIHRoZSBmb2xs b3dpbmcgcGF0dGVybnM6CiAgIG5vbi1uZXdsaW5lIGNoYXJhY3RlcnMuICBPcGVuaW5nIGFuZCBj bG9zaW5nIHNxdWFyZSBicmFja2V0cyBtdXN0IGJlCiAgIGJhbGFuY2VkLgogCisgW2ZuOjpOZXN0 aW5nIHJ1bGVzIGZvciB0aGUgcGFyZW5zIGFuZCBzcXVhcmUgYnJhY2tldHMgbmVlZCByZXZpZSBo ZXJlCithbmQgZWxzZXdoZXJlLiBUaGUgIm11c3QgYmUgYmFsYW5jZWQiIHJlcXVpcmVtZW50IGlz IGltcGxlbWVudGVkIHdpdGgKK2FuIGV4dHJlbWVseSBuYXN0eSBtYXRlcmlhbGl6ZWQgcmVnZXgg d2hpY2ggb25seSB3b3JrcyBmb3IgMyBvciA0IGxldmVscworb2YgbmVzdGluZyBhbmQgdGh1cyBp cyByZWFsbHkgbGlrZWx5IHRvIG5vdCBiZSB3aGF0IHdlIHdhbnQuXQorCiAqKiogQmxvY2tzCiA6 UFJPUEVSVElFUzoKIDpDVVNUT01fSUQ6IEJsb2NrcwogOkVORDoKIAorIFtmbjo6VGhlc2UgcHJv YmFibHkgc2hvdWxkIG5vdCBhY3R1YWxseSBiZSBkaXN0aW5jdCBmcm9tIGdyZWF0ZXIgYmxvY2tz LgordGhlIHN5bnRheCBpcyB0aGUgc2FtZSwgdGhlIG9ubHkgZGlmZmVyZW5jZSBpcyB0aGF0IHRo ZXJlIGFyZSA1IHR5cGVzIHRoYXQKK2hhdmUgc3BlY2lhbCBzcGVjaWZpZWQgaGFuZGxpbmcuXQor CiBMaWtlIFtbI0dyZWF0ZXJfQmxvY2tzXVtncmVhdGVyIGJsb2Nrc11dLCBibG9ja3MgYXJlIHN0 cnVjdHVyZWQgYWNjb3JkaW5nIHRvIHRoZSBmb2xsb3dpbmcgcGF0dGVybjoKIAogIytiZWdpbl9l eGFtcGxlCkBAIC02MjIsNyArNzkyLDggQEAgQ09OVEVOVFMKICAgICB0aGUgcGF0dGVybiA9TEFO R1VBR0UgU1dJVENIRVMgQVJHVU1FTlRTPSB3aXRoOgogICAgICsgTEFOR1VBR0UgOjogQSBzdHJp bmcgY29uc2lzdGluZyBvZiBhbnkgbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVycwogICAgICsgU1dJ VENIRVMgOjogQW55IG51bWJlciBvZiBTV0lUQ0ggcGF0dGVybnMsIHNlcGFyYXRlZCBieSBhIHNp bmdsZQotICAgICAgc3BhY2UgY2hhcmFjdGVyCisgICAgICBzcGFjZSBjaGFyYWN0ZXIgW2ZuOjpG b3IgdGhlIGxvdmUgb2YgYWxsIHRoYXQgaXMgc2FuZSBjYW4gd2UKKyAgICAgIHBsZWFzZSBqdXN0 IHJlbW92ZSB0aGlzIGZyb20gdGhlIHNwZWMgb3IgbWFyayBpdCBhcyBsZWdhY3kuXQogICAgICAg LSBTV0lUQ0ggOjogRWl0aGVyIHRoZSBwYXR0ZXJuID0tbCAiRk9STUFUIj0gd2hlcmUgPUZPUk1B VD0KICAgICAgICAgcmVwcmVzZW50cyBhIHN0cmluZyBjb25zaXN0aW5nIG9mIGFueSBjaGFyYWN0 ZXJzIGJ1dCBhIGRvdWJsZQogICAgICAgICBxdW90ZSAoPSI9KSBvciBuZXdsaW5lLCBvciB0aGUg cGF0dGVybiA9LVM9IG9yID0rUz0gd2hlcmUgPVM9CkBAIC02MzEsNyArODAyLDcgQEAgQ09OVEVO VFMKICsgQ09OVEVOVFMgKG9wdGlvbmFsKSA6OiBBIHN0cmluZyBjb25zaXN0aW5nIG9mIGFueSBj aGFyYWN0ZXJzCiAgIChpbmNsdWRpbmcgbmV3bGluZXMpIHN1YmplY3QgdG8gdGhlIHNhbWUgdHdv IGNvbmRpdGlvbnMgb2YgZ3JlYXRlcgogICBibG9jaydzIENPTlRFTlRTLCBpLmUuCi0gIC0gTm8g bGluZSBtYXkgc3RhcnQgd2l0aCA9IytlbmRfTkFNRT0uCisgIC0gTm8gbGluZSBpbiB0aGUgYmxv Y2sgbWF5IHN0YXJ0IHdpdGggPSMrZW5kX05BTUU9LgogICAtIExpbmVzIGJlZ2lubmluZyB3aXRo IGFuIGFzdGVyaXNrIG11c3QgYmUgcXVvdGVkIGJ5IGEgY29tbWEgKD0sKj0pLgogICBBcyB3aXRo IGdyZWF0ZXIgYmxvY2tzLCBsaW5lcyBzdGFydGluZyB3aXRoID0jKz0gbWF5IGJlIHF1b3RlZCBi eSBhCiAgIGNvbW1hICg9LCMrPSkuCkBAIC02NTUsNiArODI2LDEwIEBAIENPTlRFTlRTCiA6Q1VT VE9NX0lEOiBDbG9ja3MKIDpFTkQ6CiAKKyBbZm46OlRoaXMgc2VjdGlvbiBzZWVtcyB0byBoYXZl IGJlZW4gbWFkZSB3YXkgdG9vIHNpbXBsZT8gT3IgaXMgdGhlCitzcGVjaWZpY2FsbHkgdGhlIGNs b2NraW5nLWNsb2NrPyBJZiBpdCBpcyB0aGUgY2xvY2tpbmctY2xvY2sgdGhlbgordGhhdCBzaG91 bGQgYmUgY2xhcmlmaWVkLl0KKwogQSBjbG9jayBlbGVtZW50IGlzIHN0cnVjdHVyZWQgYWNjb3Jk aW5nIHRvIHRoZSBmb2xsb3dpbmcgcGF0dGVybjoKIAogIytiZWdpbl9leGFtcGxlCkBAIC02NzQs NyArODQ5LDYgQEAgY2xvY2s6IElOQUNUSVZFLVRJTUVTVEFNUC1SQU5HRSBEVVJBVElPTgogY2xv Y2s6IFsyMDI0LTEwLTEyXQogIytlbmRfZXhhbXBsZQogCi0KICoqKiBEaWFyeSBTZXhwCiA6UFJP UEVSVElFUzoKIDpDVVNUT01fSUQ6IERpYXJ5X1NleHAKQEAgLTcwMSw2ICs4NzUsOSBAQCBBIGRp YXJ5IHNleHBbZm46OkEgY29tbW9uIGFiYnJldmlhdGlvbiBmb3IgUy1leHByZXNzaW9uXSBlbGVt ZW50IGlzIGFuCiA6Q1VTVE9NX0lEOiBQbGFubmluZwogOkVORDoKIAorIFtmbjo6SSB0aGluayB0 aGlzIGFuZCBwcm9wZXJ0eSBkcmF3ZXJzIHNob3VsZCBiZSBtb3ZlZCB0byBiZSBjbG9zZXIKK3Rv IHRoZSBoZWFkaW5nIHNwZWMgc2VjdGlvbj9dCisKIEEgcGxhbm5pbmcgZWxlbWVudCBpcyBzdHJ1 Y3R1cmVkIGFjY29yZGluZyB0byB0aGUgZm9sbG93aW5nIHBhdHRlcm46CiAKICMrYmVnaW5fZXhh bXBsZQpAQCAtNzA5LDEzICs4ODYsMTUgQEAgUExBTk5JTkcKICMrZW5kX2V4YW1wbGUKIAogKyBI RUFESU5HIDo6IEEgW1sjSGVhZGluZ3NdW2hlYWRpbmddXSBlbGVtZW50LgotKyBQTEFOTklORyA6 OiBBIGxpbmUgY29uc2lzdGluZyBvZiBhIHNlcmllcyBvZiA9S0VZV09SRDogVElNRVNUQU1QPQor KyBQTEFOTklORyA6OiBBIGxpbmUgY29uc2lzdGluZyBvZiBvbmUgb3IgbW9yZSA9S0VZV09SRDog VElNRVNUQU1QPQogICBwYXR0ZXJucyAodGVybWVkICJpbmZvIiBwYXR0ZXJucykuCi0gIC0gS0VZ V09SRCA6OiBFaXRoZXIgdGhlIHN0cmluZyA9REVBRExJTkU9LCA9U0NIRURVTEVEPSwgb3IgPUNM T1NFRD0uCisgIC0gS0VZV09SRCA6OiBFaXRoZXIgdGhlIHN0cmluZyA9REVBRExJTkU9LCA9U0NI RURVTEVEPSwgb3IgPUNMT1NFRD0uIFtmbjo6CisgICAgUmVxdWVzdCB0byBhZGQgdGhlID1PUEVO RUQ9IGtleXdvcmQgdG8gdHJhY2sgd2hlbiBhIHRhc2sgd2FzIGZpcnN0IGtub3duL2VudGVyZWQg aW50byBhIGZpbGUuXQogICAtIFRJTUVTVEFNUCA6OiBBIFtbI1RpbWVzdGFtcHNdW3RpbWVzdGFt cF1dIG9iamVjdC4KIAotSXQgaXMgbm90IHBlcm1pdHRlZCBmb3IgYW55IGJsYW5rIGxpbmVzIHRv IGxpZSBiZXR3ZWVuIEhFQURJTkcgYW5kCi1QTEFOTklORy4KK1BMQU5OSU5HIG11c3QgZGlyZWN0 bHkgZm9sbG93IEhFQURJTkcgd2l0aG91dCBhbnkgYmxhbmsgbGluZXMgaW4gYmV0d2Vlbi4gCisK KyBbZm46Ok5lZWQgYSBzcGVjIGZvciBob3cgdG8gaGFuZGxlIG11bHRpcGxlIGluc3RhbmNlcyBv ZiB0aGUgc2FtZSBrZXl3b3JkIHdpdGggZGlmZmVyZW50IHZhbHVlcy5dCiAKICpFeGFtcGxlKgog CkBAIC03NDIsNyArOTIxLDYgQEAgQ29tbWVudHMgY29uc2lzdCBvZiBvbmUgb3IgbW9yZSBjb25z ZWN1dGl2ZSBjb21tZW50IGxpbmVzLgogIyBPdmVyIG11bHRpcGxlIGxpbmVzCiAjK2VuZF9leGFt cGxlCiAKLQogKioqIEZpeGVkIFdpZHRoIEFyZWFzCiA6UFJPUEVSVElFUzoKIDpDVVNUT01fSUQ6 IEZpeGVkX1dpZHRoX0FyZWFzCkBAIC03NzMsNiArOTUxLDkgQEAgY29uc2VjdXRpdmUgaHlwaGVu cyAoPS0tLS0tPSkuCiA6Q1VTVE9NX0lEOiBLZXl3b3JkcwogOkVORDoKIAorIFtmbjo6UmVtaW5k ZXIgYWJvdXQgcmVndWxhcml6aW5nIGtleXdvcmQgc3ludGF4IHNvIHRoYXQgaXQKK2Fsd2F5cyBz dXBwb3J0cyB+IytrZXlbb3B0XTp2YWx1ZX4gc3ludGF4Ll0KKwogS2V5d29yZHMgYXJlIHN0cnVj dHVyZWQgYWNjb3JkaW5nIHRvIHRoZSBmb2xsb3dpbmcgcGF0dGVybjoKIAogIytiZWdpbl9leGFt cGxlCkBAIC03ODAsNyArOTYxLDExIEBAIEtleXdvcmRzIGFyZSBzdHJ1Y3R1cmVkIGFjY29yZGlu ZyB0byB0aGUgZm9sbG93aW5nIHBhdHRlcm46CiAjK2VuZF9leGFtcGxlCiAKICsgS0VZIDo6IEEg c3RyaW5nIGNvbnNpc3Rpbmcgb2YgYW55IG5vbi13aGl0ZXNwYWNlIGNoYXJhY3RlcnMsIG90aGVy Ci0gIHRoYW4gPWNhbGw9ICh3aGljaCB3b3VsZCBmb3JtcyBhIFtbI0JhYmVsX0NhbGxdW2JhYmVs IGNhbGxdXSBlbGVtZW50KS4KKyAgdGhhbiA9Y2FsbD0gKHdoaWNoIHdvdWxkIGZvcm1zIGEgW1sj QmFiZWxfQ2FsbF1bYmFiZWwgY2FsbF1dIGVsZW1lbnQpLiBbZm46OlRoaXMgaXMKKyAgd2h5IEkg aGF2ZSB0aGUgbm90ZSBvbiB0aGUgfiMrY2FsbDp+IHNlY3Rpb24uIElmIHNvbWVvbmUgdHJpZXMg dG8KKyAgaW1wbGVtZW50IHRoaXMgdGhleSBhcmUgZ29pbmcgdG8gYmUgaW4gYSB3b3JsZCBvZiBw YWluIGJlY2F1c2UgdGhlcmUKKyAgaXMgYSBjb25jcmV0ZSB2YWx1ZSBoZXJlLiBUaGlzIGlzIGJl Y2F1c2UgdGhhdCBkaXN0aW5jdGlvbiBpcyBub3QgaW4KKyAgdGhlIHN5bnRheCBidXQgaW5zdGVh ZCBzaG91bGQgYmUgaW4gYSBsYXRlciBzdGFnZS5dCiArIFZBTFVFIDo6IEEgc3RyaW5nIGNvbnNp c3Rpbmcgb2YgYW55IGNoYXJhY3RlcnMgYnV0IGEgbmV3bGluZS4KIAogV2hlbiBLRVkgaXMgYSBt ZW1iZXIgb2Ygfm9yZy1lbGVtZW50LXBhcnNlZC1rZXl3b3Jkc35bZm46b2Vwa3ddLCBWQUxVRSBj YW4gY29udGFpbgpAQCAtNzkxLDcgKzk3Niw5IEBAIE5vdGUgdGhhdCB3aGlsZSBpbnN0YW5jZXMg b2YgdGhpcyBwYXR0ZXJuIGFyZSBwcmVmZXJlbnRpYWxseSBwYXJzZWQgYXMKIGtleXdvcmQgbWF5 IG9jY3VyIHNvIGxvbmcgYXMgaXQgaXMgbm90IGltbWVkaWF0ZWx5IHByZWNlZGluZyBhIHZhbGlk CiBlbGVtZW50IHRoYXQgY2FuIGJlIGFmZmlsaWF0ZWQuICBGb3IgZXhhbXBsZSwgYW4gaW5zdGFu Y2Ugb2YKID0jK2NhcHRpb246IGhpPSBmb2xsb3dlZCBieSBhIGJsYW5rIGxpbmUgd2lsbCBiZSBw YXJzZWQgYXMgYSBrZXl3b3JkLAotbm90IGFuIGFmZmlsaWF0ZWQga2V5d29yZC4KK25vdCBhbiBh ZmZpbGlhdGVkIGtleXdvcmQuIFtmbjo6QSBmdWxsIHNwZWMgZm9yIHVzZXIgZGVmaW5lZCBhZmYg a2V5d29yZHMKK3dpbGwgcmVxdWlyZSBhIGJpdCBtb3JlIGNsYXJpdHkgZm9yIGhvdyBsb25lbHkg YWZmaWxpYXRlZCBrZXl3b3JkcyBzaG91bGQKK2JlaGF2ZS5dCiAKICoqKiBMYVRlWCBFbnZpcm9u bWVudHMKIDpQUk9QRVJUSUVTOgpAQCAtODM4LDYgKzEwMjUsMTYgQEAgYWNjb3JkaW5nIHRvIG9u ZSBvZiB0aGUgZm9sbG93aW5nIHBhdHRlcm5zOgogICB3aGljaCBkb2VzIG5vdCBlbmQgaW4gYSBw bHVzIGNoYXJhY3RlcnMgKD0rPSkuCiArIFZBTFVFIChvcHRpb25hbCkgOjogQSBzdHJpbmcgY29u dGFpbmluZyBhbnkgY2hhcmFjdGVycyBidXQgYSBuZXdsaW5lLgogCisgW2ZuOjpUaGlzIHNwZWMg aXMgbm90IGNvbnNpc3RlbnQgd2l0aCB0aGUgYmVoYXZpb3IgYW5kIGhhcyBiYWQgZGVzaWduLgor TmFtZSBzaG91bGQgYmUgYWxsb3dlZCB0byBiZSBlbXB0eSwgc2FtZSBhcyB3aXRoIGhlYWRpbmcg dGFncy4gSXQgaXMKK2NyaXRpY2FsIHRvIGluY2x1ZGUgdGhlIGVtcHR5IHN0cmluZyBhcyBwYXJ0 IG9mIGEgZ3JhbW1hciBsaWtlIHRoaXMgc28KK3RoYXQgaXQgaXMgY2xvc2VkLCBvdGhlcndpc2Ug d2UgZ2V0IG5hc3R5IGVkZ2UgY2FzZXMuIEZvciBleGFtcGxlIGl0CitzaG91bGQgYmUgdGhlIGNh c2UgdGhhdCB+Ois6fiBpcyBzeW50YWN0aWNhbGx5IHZhbGlkIGFzIGEgbm9kZQorcHJvcGVydHku ICBUaGUgZmFjdCB0aGF0IGl0IHdvbid0IGFwcGx5IHRvIGFueXRoaW5nIGlzIG9rLCBpdCBtaWdo dAorYWxzbyBiZSB1c2VmdWwgaWYgd2UgcmVndWxhcml6ZSB+IytiZWdpbl9OQU1FfiB0byBhbGxv dyB0aGUgZW1wdHkKK3N0cmluZyBmb3IgTkFNRS4gTm90ZSB0aGF0IH46Kzp+IGlzIGFscmVhZHkg dHJlYXRlZCBhcyBzeW50YWN0aWNhbGx5Cit2YWxpZCBmb3IgZm9udCBsb2NraW5nIGFuZCBmb3Ig cHJvcGVydHkgZHJhd2VyIGRldGVjdGlvbiAoSSB0aGluaykuXQorCiAqKiogUGFyYWdyYXBocwog OlBST1BFUlRJRVM6CiA6Q1VTVE9NX0lEOiBQYXJhZ3JhcGhzCkBAIC04NTAsMTEgKzEwNDcsMjEg QEAgRW1wdHkgbGluZXMgYW5kIG90aGVyIGVsZW1lbnRzIGVuZCBwYXJhZ3JhcGhzLgogCiBQYXJh Z3JhcGhzIGNhbiBjb250YWluIHRoZSBzdGFuZGFyZCBzZXQgb2Ygb2JqZWN0cy4KIAorIFtmbjo6 SW1wbGVtZW50YXRpb24gbm90ZTogaXQgaXMgcG9zc2libGUgdG8gZGVmaW5lCitwYXJhZ3JhcGhz IGNvbnN0cnVjdGl2ZWx5IGluc3RlYWQgb2YgYXMgdGhleSBhcmUgZGVmaW5lZAoraGVyZSBhcyB0 aGUgbmVnYXRpb24gb3IgZmFsbCB0aHJvdWdoIG9mIGFsbCBvdGhlciB0aGluZ3MuCitXZSBzaG91 bGQgdXBkYXRlIHRoaXMgc2VjdGlvbiB3aXRoIHRoZSBwb3NpdGl2ZSBkZWZpbml0aW9uCitvbmNl IEkgaGF2ZSBpdCBuYWlsZWQgZG93bi5dCisKICoqKiBUYWJsZSBSb3dzCiA6UFJPUEVSVElFUzoK IDpDVVNUT01fSUQ6IFRhYmxlX1Jvd3MKIDpFTkQ6CiAKKyBbZm46Okkgc3VnZ2VzdCB3ZSByb2xs IHRoaXMgdXAgaW50byB0aGUgb3JnIHRhYmxlcyBzZWN0aW9uCitzcGVjIHNvIHRoYXQgd2UgZG9u J3QgaGF2ZSB0byB3b3JyeSBhYm91dCBtYWtpbmcgYSBub3RlIHRoYXQKK3RoZXNlIG9ubHkgb2Nj dXIgaW4gdGFibGVzLl0KKwogQSB0YWJsZSByb3cgY29uc2lzdHMgb2YgYSB2ZXJ0aWNhbCBiYXIg KD18PSkgZm9sbG93ZWQgYnk6CiArIEFueSBudW1iZXIgb2YgW1sjVGFibGVfQ2VsbHNdW3RhYmxl IGNlbGxzXV0sIGZvcm1pbmcgYSAic3RhbmRhcmQiIHR5cGUgcm93LgogKyBBIGh5cGhlbiAoPS09 KSwgZm9ybWluZyBhICJydWxlIiB0eXBlIHJvdy4gIEFueSBub24tbmV3bGluZSBjaGFyYWN0ZXJz CkBAIC04OTIsNiArMTA5OSwxMyBAQCBzdWNoIGFzIGEgcGFyYWdyYXBoLgogOkNVU1RPTV9JRDog RW50aXRpZXMKIDpFTkQ6CiAKKyBbZm46OkFzIEkgdGhpbmsgSSBtZW50aW9uIGVsc2V3aGVyZSwg dGhlIGNvbmNyZXRlIG5hbWVzIGhlcmUKK3Nob3VsZCBOT1QgYmUgcGFydCBvZiB0aGUgc3ludGF4 LCBpdCBtYWtlcyB0aGUgcGFyc2VyIGJyaXR0bGUKK2FuZCBoYXJkIHRvIG1haW50YWluLiBEaWZm ZXJlbnRpYXRpb24gYmV0d2VlbiBlbnRpdGllcyBhbmQgZnJhZ21lbnRzCitzaG91bGQgYmUgaGFu ZGxlZCBhdCB0aGUgc3ludGF4IGxldmVsIGZvciBjYXNlcyB3aGVyZSB0aGUgZnJhZ21lbnQKK2hh cyBicmFja2V0cywgYW5kIHRoZW4gaW4gYSBzZWNvbmQgcGFzcyBmb3IgdmFsdWVzIHRoYXQgYXJl CitzeW50YWN0aWNhbGx5IGVudGl0eS1vci1mcmFnbWVudCBhbmQgbXVzdCBiZSBkZXRlcm1pbmVk IGFmdGVyCit0aGUgZmFjdC5dCiBFbnRpdGllcyBhcmUgc3RydWN0dXJlZCBhY2NvcmRpbmcgdG8g dGhlIGZvbGxvd2luZyBwYXR0ZXJuOgogCiAjK2JlZ2luX2V4YW1wbGUKQEAgLTk4Nyw2ICsxMjAx LDcgQEAgb3VnaHQgdG8gYmUgcmVtb3ZlZC4KIFRoZXkgYXJlIHNsb3cgdG8gcGFyc2UsIGZyYWdp bGUsIHJlZHVuZGFudCBhbmQgaW1wbHkgZmFsc2UKIHBvc2l0aXZlcy4gIC0tLSBuZ3oKICMrZW5k X3F1b3RlCisgW2ZuOjpTdHJvbmcgc3VwcG9ydCBmb3IgcmVtb3ZpbmcgdGhlc2UuXQogCiAqKiBF eHBvcnQgU25pcHBldHMKIDpQUk9QRVJUSUVTOgpAQCAtMTAwMiw2ICsxMjE3LDEyIEBAIEV4cG9y dCBzbmlwcGV0cyBhcmUgc3RydWN0dXJlZCBhY2NvcmRpbmcgdG8gdGhlIGZvbGxvd2luZyBwYXR0 ZXJuOgogKyBCQUNLRU5EIDo6IEEgc3RyaW5nIGNvbnNpc3Rpbmcgb2YgYWxwaGFudW1lcmljIGNo YXJhY3RlcnMgYW5kIGh5cGhlbnMuCiArIFZBTFVFIChvcHRpb25hbCkgOjogQSBzdHJpbmcgY29u dGFpbmluZyBhbnl0aGluZyBidXQgdGhlIHN0cmluZyA9QEA9LgogCisgW2ZuOjpXZSBwcm9iYWJs eSB3YW50IHRvIG5vZGUgdGhhdCBCQUNLRU5EIGNhbiBiZSB0aGUgZW1wdHkgc3RyaW5nCitwZXIg dGhhdCB0aHJlYWQgb24gaG93IHRvIGRlYWwgd2l0aCBpbnRyYS13b3JkIG1hcmt1cC4gQWdhaW4g dGhpcworYWxzbyB0b3VjaGVzIG9uIHRoZSBnZW5lcmFsIHByaW5jaXBsZSBvZiB3YW50aW5nIHRv IGNsb3NlIG92ZXIgdGhlCitlbXB0eSBzdHJpbmcgc28gdGhhdCB1c2VycyBhcmVuJ3Qgc3VycHJp c2VkIHdoZW4gfkBAOmxvbEBAfiBzdWRkZW5seQorYXBwZWFycyBpbiBwbGFpbiB0ZXh0IGp1c3Qg YmVjYXVzZSBubyBiYWNrZW5kIHdhcyBzcGVjaWZpZWQuXQorCiAqKiBGb290bm90ZSBSZWZlcmVu Y2VzCiA6UFJPUEVSVElFUzoKIDpDVVNUT01fSUQ6IEZvb3Rub3RlX1JlZmVyZW5jZXMKQEAgLTEw MTksMTQgKzEyNDAsMTcgQEAgRm9vdG5vdGUgcmVmZXJlbmNlcyBhcmUgc3RydWN0dXJlZCBhY2Nv cmRpbmcgdG8gb25lIG9mIHRoZSBmb2xsb3dpbmcgcGF0dGVybnM6CiAgIGh5cGhlbnMgYW5kIHVu ZGVyc2NvcmVzICg9LV89KS4KICsgREVGSU5JVElPTiAob3B0aW9uYWwpIDo6IEEgc2VyaWVzIG9m IG9iamVjdHMgZnJvbSB0aGUgc3RhbmRhcmQgc2V0LAogICBzbyBsb25nIGFzIG9wZW5pbmcgYW5k IGNsb3Npbmcgc3F1YXJlIGJyYWNrZXRzIGFyZSBiYWxhbmNlZCB3aXRoaW4KLSAgREVGSU5JVElP Ti4KKyAgREVGSU5JVElPTi4gW2ZuOjpBcyBub3RlZCBlbHNld2hlcmUsIHRoZSBiYWxhbmNlZCBi cmFja2V0cworICByZXF1aXJlbWVudCBpcyBhIG5pZ2h0bWFyZSBhbmQgbmVlZHMgYSByZXZpZXcu XQogCiBJZiB0aGUgcmVmZXJlbmNlIGZvbGxvd3MgdGhlIHNlY29uZCBwYXR0ZXJuLCBpdCBpcyBj YWxsZWQgYW4gImlubGluZQogZm9vdG5vdGUiLiAgSWYgaXQgZm9sbG93cyB0aGUgdGhpcmQgcGF0 dGVybiwgaS5lLiBpZiBMQUJFTCBpcyBvbWl0dGVkLAogaXQgaXMgY2FsbGVkIGFuICJhbm9ueW1v dXMgZm9vdG5vdGUiLgogCiBOb3RlIHRoYXQgdGhlIGZpcnN0IHBhdHRlcm4gbWF5IG5vdCBvY2N1 ciBvbiBhbiAvdW5pbmRlbnRlZC8gbGluZSwgYXMgaXQKLWlzIHRoZW4gYSBbWyNGb290bm90ZV9E ZWZpbml0aW9uc11bZm9vdG5vdGUgZGVmaW5pdGlvbl1dLgoraXMgdGhlbiBhIFtbI0Zvb3Rub3Rl X0RlZmluaXRpb25zXVtmb290bm90ZSBkZWZpbml0aW9uXV0uIFtmbjo6SSdtIG5vdCBzdXJlIHRo aXMgaXMgcXVpdGUgcmlnaHQ/Cit0aGUgZm9udCBsb2NraW5nIGNvZGUgaXMgbm90IGNvbnNpc3Rl bnQgd2l0aCBhY3R1YWwgYmVoYXZpb3IsIG5lZWQgdG8KK3JldmlldyB0aGUgbGF1bmRyeSB0ZXN0 IGNhc2VzIGFuZCBleGFtcGxlIGZpbGVzLl0KIAogKiogQ2l0YXRpb25zCiA6UFJPUEVSVElFUzoK QEAgLTExMjcsNyArMTM1MSw4IEBAIHNyY19MQU5HW0hFQURFUlNde0JPRFl9CiArIExBTkcgOjog QSBzdHJpbmcgY29uc2lzdGluZyBvZiBhbnkgbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVycy4KICsg SEVBREVSUyAob3B0aW9uYWwpLCBCT0RZIChvcHRpb25hbCkgOjogQSBzdHJpbmcgY29uc2lzdGlu ZyBvZiBhbnkKICAgY2hhcmFjdGVycyBidXQgYSBuZXdsaW5lLiAgT3BlbmluZyBhbmQgY2xvc2lu ZyBzcXVhcmUgYnJhY2tldHMgbXVzdAotICBiZSBiYWxhbmNlZC4KKyAgYmUgYmFsYW5jZWQuIFtm bjo6TmVzdGluZyBpc3N1ZXMgbmVlZCByZXZpZXcuIFN1Z2dlc3Rpb24gdG8gZG8KKyAgc29tZXRo aW5nIGxpa2Ugd2hhdCBSYWNrZXQgc2NyaWJibGUgZG9lcy5dCiAKICoqIExpbmUgQnJlYWtzCiA6 UFJPUEVSVElFUzoKQEAgLTEzNjYsNiArMTU5MSwxMCBAQCBTSUdOIENIQVJTIEZJTkFMCiA6Q1VT VE9NX0lEOiBUYWJsZV9DZWxscwogOkVORDoKIAorIFtmbjo6TmVlZCB0byBjb25kZW5zZSB0aGlz IHdpdGggdGFibGVzIGFuZCB0YWJsZSByb3dzIGJlY2F1c2UKK3NwcmVhZGluZyB0aGVzZSBvdXQg bWFrZXMgaXQgc3VwZXIgaGFyZCB0byB1bmRlcnN0YW5kIHRoZSB0YWJsZSBzeW50YXgKK2ZvciBi YXNpY2FsbHkgbm8gcmVhc29uLl0KKwogVGFibGUgY2VsbHMgYXJlIHN0cnVjdHVyZWQgYWNjb3Jk aW5nIHRvIHRoZSBmb2xsb3dpbmcgcGF0dGVybjoKIAogIytiZWdpbl9leGFtcGxlCkBAIC0xMzc1 LDcgKzE2MDQsMTIgQEAgQ09OVEVOVFMgU1BBQ0VTfAogKyBDT05URU5UUyA6OiBBIHNlcmllcyBv ZiBvYmplY3RzIG5vdCBjb250YWluaW5nIHRoZSB2ZXJ0aWNhbCBiYXIKICAgY2hhcmFjdGVyICg9 fD0pLiAgSXQgY2FuIGNvbnRhaW4gdGhlIG1pbmltYWwgc2V0IG9mIG9iamVjdHMsCiAgIFtbI0Np dGF0aW9uc11bY2l0YXRpb25zXV0sIFtbI0V4cG9ydF9TbmlwcGV0c11bZXhwb3J0IHNuaXBwZXRz XV0sIFtbI0Zvb3Rub3RlX1JlZmVyZW5jZXNdW2Zvb3Rub3RlIHJlZmVyZW5jZXNdXSwgW1sjTGlu a3NdW2xpbmtzXV0sIFtbI01hY3Jvc11bbWFjcm9zXV0sCi0gIFtbI1RhcmdldHNfYW5kX1JhZGlv X1RhcmdldHNdW3JhZGlvIHRhcmdldHNdXSwgW1sjVGFyZ2V0c19hbmRfUmFkaW9fVGFyZ2V0c11b dGFyZ2V0c11dLCBhbmQgW1sjVGltZXN0YW1wc11bdGltZXN0YW1wc11dLgorICBbWyNUYXJnZXRz X2FuZF9SYWRpb19UYXJnZXRzXVtyYWRpbyB0YXJnZXRzXV0sIFtbI1RhcmdldHNfYW5kX1JhZGlv X1RhcmdldHNdW3RhcmdldHNdXSwgYW5kIFtbI1RpbWVzdGFtcHNdW3RpbWVzdGFtcHNdXS4gW2Zu OjpMaWtlIGZvciB0aGUgY29tbWEgaW4KKyAgbWFjcm9zLCBJIHRoaW5rIGl0IHdvdWxkIGJlIHNh ZmUgdG8gYWRkIH5cfH4gYXMgYW4gZXNjYXBlIGNoYXJhY3Rlci4KKyAgVGhlIGlzc3VlIGluIHRo ZSBlbGlzcCBpbXBsZW1lbnRhdGlvbiBpcyBub3QgYWN0dWFsbHkgYXQgdGhlIGxldmVsCisgIG9m IHRoZSBzeW50YXgsIGJ1dCBpcyBhY3R1YWxseSBpbiB0aGUgZXhwb3J0IGJhY2tlbmRzIG9yIHNv bWV3aGVyZQorICBkZWVwZXIsIGJlY2F1c2UgZXZlbiB1c2luZyBhIG1hY3JvIHRoYXQgZXhwYW5k cyB0byBiZSBhIHBpcGUgfnx+CisgIGJyZWFrcyB0aGUgdGFibGUgKHdoaWNoIGlzIHJlYWxseSBi YWQpLl0KICsgU1BBQ0VTIDo6IEEgc3RyaW5nIGNvbnNpc3Rpbmcgb2YgemVybyBvciBtb3JlIG9m IHNwYWNlIGNoYXJhY3RlcnMsCiAgIHVzZWQgdG8gYWxpZ24gdGhlIHRhYmxlIGNvbHVtbnMuCiAK QEAgLTEzODYsNiArMTYyMCwxMCBAQCBUaGUgZmluYWwgdmVydGljYWwgYmFyICg9fD0pIG1heSBi ZSBvbWl0dGVkIGluIHRoZSBsYXN0IGNlbGwgb2YgYSByb3cuCiA6Q1VTVE9NX0lEOiBUaW1lc3Rh bXBzCiA6RU5EOgogCisgW2ZuOjpJIGhhdmUgc29tZSBzdWdnZXN0aW9ucyBmb3IgZXh0ZW5zaW9u cyB0byB0aW1lc3RhbXAgc3ludGF4IHRvCitzdXBwb3J0IGhpc3RvcmljYWwgYW5kIGZhciBmdXR1 cmUgZGF0ZXMsIGFzIHdlbGwgdGltZXpvbmUgb2Zmc2V0cyAoTk9UCit0aGUgMyBsZXR0ZXIgYW1i aWd1b3VzIGRpc2FzdGVyKSBhbmQgc2Vjb25kcyBhbmQgc3ViLXNlY29uZCB0aW1lcy5dCisKIFRp bWVzdGFtcHMgYXJlIHN0cnVjdHVyZWQgYWNjb3JkaW5nIHRvIG9uZSBvZiB0aGUgc2V2ZW4gZm9s bG93aW5nIHBhdHRlcm5zOgogCiAjK2JlZ2luX2V4YW1wbGUKQEAgLTE0NzAsNiArMTcwOCwxMCBA QCBCT1JERVIgQk9EWSBCT1JERVIKICsgW1sjU3BlY2lhbF9Ub2tlbnNdW1BPU1RdXSA6OiBFaXRo ZXIgYSB3aGl0ZXNwYWNlIGNoYXJhY3RlciwgPS09LCA9Lj0sID0sPSwgPTs9LCA9Oj0sID0hPSwg PT89LCA9Jz0sID0pPSwgPX09LAogICA9Wz0sID0iPSwgb3IgdGhlIGVuZCBvZiBhIGxpbmUuCiAK K1RoZSBmb3VyID0qL18rPSBtYXkgYmUgYXJiaXRyYXJpbHkgbmVzdGVkIHRvIGFueSBkZXB0aC4g VmVyYmF0aW0gYW5kCitjb2RlID09fj0gbWF5IGJlIG5lc3RlZCBpbnNpZGUgYW55IG90aGVyIG1h cmt1cCwgYnV0IG5vIG90aGVyIG1hcmt1cAord2lsbCBiZSBpbnRlcnByZXRlZCBpbnNpZGUgb2Yg dGhlbSBzaW5jZSB0aGV5IGFyZSBpbnRlcnByZXRlZCBleGFjdGx5LgorCiAqRXhhbXBsZXMqCiAK ICMrYmVnaW5fZXhhbXBsZQpAQCAtMTQ4MywxMiArMTcyNSwxNiBAQCBmdW5jdGlvbnMgc3RhcnRp bmcgd2l0aCB+b3JnLWVsZW1lbnQtfi4KIDpDVVNUT01fSUQ6IFBsYWluX1RleHQKIDpFTkQ6CiAK KyBbZm46OkknbSBub3Qgc3VyZSBJIHdvdWxkIGFkZCB0aGlzLCB0aGUgZmFsbCB0aHJvdWdoIGlz IHNsb3BweQorYW5kIGl0IGlzIGJldHRlciB0byBzcGVjaWZ5IHZhbHVlcyBjb25zdHJ1Y3RpdmVs eS5dCisKIEFueSBzdHJpbmcgdGhhdCBkb2Vzbid0IG1hdGNoIGFueSBvdGhlciBvYmplY3QgY2Fu IGJlIGNvbnNpZGVyZWQgYQogcGxhaW4gdGV4dCBvYmplY3QuW2ZuOjpJbiB+b3JnLWVsZW1lbnQu ZWx+IHBsYWluIHRleHQgb2JqZWN0cyBhcmUKIGFic3RyYWN0ZWQgYXdheSB0byBzdHJpbmdzIGZv ciBwZXJmb3JtYW5jZSByZWFzb25zLl0KIFdpdGhpbiBhIHBsYWluIHRleHQgb2JqZWN0LCBhbGwg d2hpdGVzcGFjZSBpcyBjb2xsYXBzZWQgdG8gYSBzaW5nbGUKIHNwYWNlLiBGb3IgaW5zdGFuY2Us ID1oZWxsb1xuIHRoZXJlPSBpcyBlcXVpdmFsZW50IHRvID1oZWxsbyB0aGVyZT0uCiAKKwogKiBG b290bm90ZXMKIAogW2ZuOjFdIEluIHBhcnRpY3VsYXIsIHRoZSBwYXJzZXIgcmVxdWlyZXMgc3Rh cnMgYXQgY29sdW1uIDAgdG8gYmUKQEAgLTE0OTcsNyArMTc0MywxMCBAQCBxdW90ZWQgYnkgYSBj b21tYSB3aGVuIHRoZXkgZG8gbm90IGRlZmluZSBhIGhlYWRpbmcuCiBbZm46Ml0gSXQgYWxzbyBt ZWFucyB0aGF0IG9ubHkgaGVhZGluZ3MgYW5kIHNlY3Rpb25zIGNhbiBiZSByZWNvZ25pemVkCiBq dXN0IGJ5IGxvb2tpbmcgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgbGluZS4gIFBsYW5uaW5nIGxp bmVzIGFuZAogcHJvcGVydHkgZHJhd2VycyBjYW4gYmUgcmVjb2duaXplZCBieSBsb29raW5nIGF0 IG9uZSBvciB0d28gbGluZXMKLWFib3ZlLgorYWJvdmUuIFtmbjo6VGhpcyBpcyBpbmNvcnJlY3Qu IFRoZXJlIGFyZSBtYW55IGVsZW1lbnRzIHRoYXQgY2FuIGJlCityZWNvZ25pemVkIGJ5IGxvb2tp bmcgYXQgdGhlIHN0YXJ0IG9mIGEgbGluZSwgaG93ZXZlciB0aGUgY29uZmxhdGlvbgorYmV0d2Vl biBwdXJlIHN5bnRheCBsZXZlbCBhbmQgb3RoZXIgbGV2ZWxzIG9mIHBhcnNpbmcgYW5kIHByb2Nl c3NpbmcKK29ic2N1cmUgdGhpcy5dCiAKIEFzIGEgY29uc2VxdWVuY2UsIHVzaW5nIH5vcmctZWxl bWVudC1hdC1wb2ludH4gb3Igfm9yZy1lbGVtZW50LWNvbnRleHR+CiB3aWxsIG1vdmUgdXAgdG8g dGhlIHBhcmVudCBoZWFkaW5nLCBhbmQgcGFyc2UgdG9wLWRvd24gZnJvbSB0aGVyZQpAQCAtMTU3 MSw2ICsxODIwLDIwIEBAIHVudGlsIGNvbnRleHQgYXJvdW5kIHRoZSBvcmlnaW5hbCBsb2NhdGlv biBpcyBmb3VuZC4KIDpDVVNUT01fSUQ6IEVudGl0aWVzX0xpc3QKIDpFTkQ6CiAKKyBbZm46OlRo ZSBvcmcgZW50aXRpZXMgc2VjdGlvbiBpcyB1c2VmdWwsIGJ1dCBJIHN1Z2dlc3Qgbm90IGluY2x1 ZGluZwordGhhdCBzZWN0aW9uIGF0IGFsbCByaWdodCBub3cuIFRoZXJlIGlzIGEgd2F5IHRvIGRl ZmluZSBhbmQgYWJzdHJhY3QKK3N5bnRheCB0aGF0IGRvZXMgbm90IHJlcXVpcmUgdGhlIHBhcnNl ciB0byBwdWxsIGluIGFsbCB0aG9zZSBjb25jcmV0ZQorZm9ybXMgd2hpY2ggcmVmbGVjdHMgaG93 IG9yZyBtb2RlIGltcGxlbWVudHMgdGhhdCBmdW5jdGlvbmFsaXR5IGJ1dAorc2hvdWxkIG5vdCBi ZSBzcGVjaWZpZWQgYXMgcGFydCBvZiB0aGUgc3ludGF4IGRvY3VtZW50LiBUaGVyZSBhcmUgc29t ZQorc2lnbmlmaWNhbnQgZWRnZSBjYXNlcyB0aGF0IG5lZWQgdG8gYmUgd29ya2VkIG91dCBpbiB0 aGUgZ3JhbW1hciBmb3IKK3RoaXMgdGhhdCBoYXZpbmcgYSBoYXJkY29kZWQgbGlzdCBtYXNrcy4g SSBzdWdnZXN0IHdlIHdvcmsgdGhhdAorcG9ydGlvbiBvdXQgYmVmb3JlIGNvbW1pdHRpbmcgYW55 IG9mIHRoYXQgdG8gYSBzcGVjIGRvYy4gSXQgaXMgYWxzbyBhCitiYWQgaWRlYSB0byBsaXN0IG9m IGFsbCBvZiB0aG9zZSBpbiB0aGUgc3BlYyBkb2MgYmVjYXVzZSBpdCB3aWxsCitsaWtlbHkgZ2V0 IG91dCBvZiBzeW5jIHdpdGggdGhlIGNvZGUgdGhhdCBpbXBsZW1lbnRzIHN1Y2ggZGV0ZWN0aW9u IGluCitlbGlzcCAoZGVzcGl0ZSB0aGUgZmFjdCB0aGF0IHRoZSBsaXN0IGlzIGJlaW5nIGF1dG8g Z2VuZXJhdGVkIHZpYSBhCitjb2RlIGJsb2NrKS4gTWF5YmUgaXQgbWFrZXMgc2Vuc2UgdG8gaW5j bHVkZSB0aGUgY29kZSBibG9jayBzbyB0aGF0CitkZXZzIGFuZCB1c2VycyBjYW4gZGlzY292ZXIg aXQgZm9yIHRoZW1zZWx2ZXM/XQorCiAjK2JlZ2luX3NyYyBlbWFjcy1saXNwIDpyZXN1bHRzIHJh dyA6ZXhwb3J0cyByZXN1bHRzCiAoY29uY2F0ICJ8IE5hbWUgfCBDaGFyYWN0ZXIgfFxufC1cbiIK ICAgICAgICAgKG1hcGNvbmNhdAotLSAKMi4zNC4xCgo= --000000000000e6151b05d5d0b5b5--