From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?iso-8859-1?Q?Gustav_Wikstr=F6m?= Subject: [RFC] Org document concept + document property drawers Date: Sat, 31 Aug 2019 18:49:42 +0000 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="_003_HE1PR02MB30335B0720ABF7B9780A305FDABC0HE1PR02MB3033eurp_" Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:50432) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i48Rc-0000HC-Ke for emacs-orgmode@gnu.org; Sat, 31 Aug 2019 14:49:53 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1i48RZ-00083B-QI for emacs-orgmode@gnu.org; Sat, 31 Aug 2019 14:49:51 -0400 Received: from mail-eopbgr70130.outbound.protection.outlook.com ([40.107.7.130]:2754 helo=EUR04-HE1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1i48RX-00080h-9W for emacs-orgmode@gnu.org; Sat, 31 Aug 2019 14:49:48 -0400 Content-Language: en-US List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: "emacs-orgmode@gnu.org" Cc: Carsten Dominik , Nicolas Goaziou --_003_HE1PR02MB30335B0720ABF7B9780A305FDABC0HE1PR02MB3033eurp_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi! I'm continuing on my proposal to introduce a "document" element in org-mode and the idea of seeing everything before the first headline as the base level 0 outline for a file. I've attached two patches that I'd like some public review of before pushing to master. Patch 0001 introduces the document element into org-element.el, and some restructuring related to that. Patch 0002 makes it possible to use property drawers at the document level. I've hopefully covered all related commands to make this work. And I've added a bunch of tests to guard against future regressions. Waiting for your comments! Kind regards Gustav --_003_HE1PR02MB30335B0720ABF7B9780A305FDABC0HE1PR02MB3033eurp_ Content-Type: application/octet-stream; name="0001-New-top-level-document-concept-and-minor-restructure.patch" Content-Description: 0001-New-top-level-document-concept-and-minor-restructure.patch Content-Disposition: attachment; filename="0001-New-top-level-document-concept-and-minor-restructure.patch"; size=26795; creation-date="Sat, 31 Aug 2019 18:45:20 GMT"; modification-date="Sat, 31 Aug 2019 18:45:20 GMT" Content-Transfer-Encoding: base64 RnJvbSAyYzI4MTgzZjg4MDNkODEzOTcwZmNiZjAzMGM5MDAxMzAwNTQ0NDgwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/R3VzdGF2PTIwV2lrc3RyPUMzPUI2bT89IDxn dXN0YXZAd2hpbC5zZT4KRGF0ZTogU3VuLCAyNiBNYXkgMjAxOSAyMTo0NjozMSArMDIwMApTdWJq ZWN0OiBbUEFUQ0ggMS8yXSBOZXcgdG9wIGxldmVsIGRvY3VtZW50IGNvbmNlcHQgYW5kIG1pbm9y IHJlc3RydWN0dXJlIGZvcgoga2V5d29yZHMKClRvcC1sZXZlbCBkb2N1bWVudCBlbGVtZW50IGFu ZCBhY2NvbXBhbnlpbmcgbW9kaWZpY2F0aW9ucyB0aHJvdWdoIHRoZQpzeXN0ZW0gdG8gbWFrZSBp dCB3b3JrIGFuZCBmaXQgdG9nZXRoZXIgbmljZWx5LgoKQWxzbyBzb21lIHJlc3RydWN0dXJpbmcg aW4gY29kZSB0aGF0IHdvcmtzIHdpdGgga2V5d29yZHMsIHNpbmNlIG1vc3QKa2V5d29yZHMgcmVs YXRlIHRvIHRoZSBkb2N1bWVudCBhbmQgaXQgaGVscHMgdG8gbWFrZSBpdCBleHBsaWNpdCBpbgpj b2RlIHdoaWNoIGtleXdvcmRzIGRvIHRoYXQgYW5kIHdoaWNoIGtleXdvcmRzIGRvbid0LgoKKiBs aXNwL29yZy5lbAoKKiogKG5ldykgb3JnLWtleXdvcmQtcmVnZXhwCkFkZGl0aW9uIG9mIHJlZ2V4 cCBmb3Iga2V5d29yZHMuICBMZXQncyB0cnkgdG8gdXNlIHBhcmFtZXRlcnMgYW5kCmNvbnN0YW50 cyBpbnN0ZWFkIG9mIGhhcmRjb2RpbmcgdGhlc2UgdGhpbmdzIGFsbCBvdmVyIHRoZSBwbGFjZS4u LgoKKiogKHJlbW92ZWQpIG9yZy1vcHRpb25zLWtleXdvcmRzLgpUaGlzIG5hbWluZyBvZiB0aGlz IGxpc3QgaXMgaW5jb25ncnVlbnQgd2l0aCB0aGUgbWFudWFsIGFuZCB0aGUKY29uY2VwdHMgdXNl ZCB0aHJvdWdob3V0IG9yZy1tb2RlLiAgSXQgYWxzbyBmaXRzIGJldHRlciBpbgpvcmctZWxlbWVu dC4gU28gSSdtIHJlbW92aW5nIHRoaXMgbGlzdCBpbiBmYXZvdXIgb2YgbmV3IGxpc3RzIGZvcgpr ZXl3b3JkcyBpbiB0aGF0IGZpbGUuCgoqKiAocmVuYW1lZCwgbW9kaWZpZWQpIG9yZy0tc2V0dXAt Y29sbGVjdC1rZXl3b3JkcyAtPiBvcmctY29sbGVjdC1rZXl3b3JkcwpSZW5hbWVkIGFuZCBnZW5l cmFsaXplZCBvcmctLXNldHVwLWNvbGxlY3Qta2V5d29yZHMgdG8gbWFrZSBpdCB3b3JrCmZvciBt dWx0aXBsZSBwdXJwb3Nlcy4gIElzIG5vdCBsaW1pdGVkIHRvIGEgZml4ZWQgc2V0IG9mIGtleXdv cmRzIGFueQpsb25nZXIuICBOZXcgbmFtZTogb3JnLWNvbGxlY3Qta2V5d29yZHMuCgoqKiAocmVu YW1lZCwgbW9kaWZpZWQpIG9yZy1tYWtlLW9wdGlvbnMtcmVnZXhwIC0+IG9yZy1tYWtlLWtleXdv cmQtcmVnZXhwClRoZSBFWFRSQSBhcmd1bWVudCBpcyBuZXZlciB1c2VkIHNvIGl0IGlzIHJlbW92 ZWQuICBObyBuZWVkIGZvcgpwb3RlbnRpYWwgKG9yIG9sZD8pIGZ1bmN0aW9uYXRsaXR5IHRoYXQg YWRkcyBjb21wbGV4aXR5LiAgQ2FuIGJlIHVzZWQKdG9nZXRoZXIgd2l0aCBvcmctY29sbGVjdC1r ZXl3b3JkcyB0byBzcGVlZCB1cCBwcm9jZXNzaW5nLgoKKiogKHJlbmFtZWQpIG9yZy1zZXQtcmVn ZXhwcy1hbmQtb3B0aW9ucyAtPiBvcmctc2V0LXJlZ2V4cHMtYW5kLWtleXdvcmRzClJlbmFtZWQg dG8gbW9yZSBwcm9wZXJ0bHkgbWF0Y2ggd2hhdCBpdCBpcyBkb2luZy4KCiogbGlzcC9vcmctZWxl bWVudC5lbApBZGRpdGlvbiBvZiBkb2N1bWVudCBhcyBhIGNvbmNlcHQgYW5kIGFzIGEgdG9wLWxl dmVsIG5vZGUgaW4gdGhlCmNvbnRlbnQgb2Ygb3JnLWRhdGEuICBUaGUgY29udGVudCBvZiBhIGRv Y3VtZW50IGVsZW1lbnQgaXMgZXZlcnl0aGluZwp0aGF0IHByZXZpb3VzbHkgd2FzIHRoZSBjb250 ZW50IG9mIG9yZy1kYXRhLgoKKiogb3JnLWVsZW1lbnQtKi1rZXl3b3JkcwpJbnN0ZWFkIG9mIG9y Zy1vcHRpb25zLWtleXdvcmRzLCBhIGNvdXBsZSBvZiBsaXN0cyBhcmUgYWRkZWQgdG8Kb3JnLWVs ZW1lbnQgZm9yIGtleXdvcmRzLiAgTXVsdGlwbGUgbGlzdHMgYXJlIHVzZWQgdG8gaW5kaWNhdGUK ZGlmZmVyZW50IHVzZS1jYXNlcyBmb3IgcGFydGljdWxhciBzZXRzIG9mIGtleXdvcmRzLgoKKioq IChuZXcpIG9yZy1lbGVtZW50LWRvY3VtZW50LWtleXdvcmRzCktleXdvcmRzIGluIHRoaXMgY29u c3RhbnQgYXJlIHRob3NlIHRoYXQgYXBwbHkgZm9yIHRoZSB3aG9sZSBkb2N1bWVudC4KCioqKiAo bmV3KSBvcmctZWxlbWVudC1leHBvcnQta2V5d29yZHMKTGlzdCBvZiBrZXl3b3JkcyBicmFuZGVk IGFzIGV4cG9ydCBrZXl3b3Jkcy4gIFRoZXNlIGtleXdvcmRzIGFyZQpzdXBwb3NlZCB0byBiZSBz dXBwb3J0ZWQgYnkgYWxsIGV4cG9ydCBiYWNrZW5kcy4KCioqKiAobmV3KSBvcmctZWxlbWVudC1p bmxpbmUta2V5d29yZHMKTGlzdCBvZiBrZXl3b3JkcyB0aGF0IHByb3ZpZGUgY29udGVudCBhdCBh IGNlcnRhaW4gcG9zaXRpb24gaW4gdGhlCm91dGxpbmUuCgoqKiogKG5ldykgb3JnLWVsZW1lbnQt LWdldC1kb2N1bWVudC1rZXl3b3JkcwpQYXJzZXMgYSBkb2N1bWVudCBmb3Iga2V5d29yZHMgdGhh dCBhcmUgbm90IGRlcGVuZGVudCBvbiB0aGVpcgpwb3NpdGlvbiBhbmQgc2hvdWxkIGJlIHJlZ2Fy ZGVkIGFzIGFwcGx5aW5nIHRvIHRoZSB3aG9sZSBkb2N1bWVudC4KClJldHVybiBkb2N1bWVudCBh bmQgZG9jdW1lbnQgZXhwb3J0IGtleXdvcmRzIGJhc2VkIG9uIHJld29ya2VkCmZ1bmN0aW9uIGlu IG9yZy5lbDsgb3JnLWNvbGxlY3Qta2V5d29yZHMuCgoqKiAobW9kaWZpZWQpIG9yZy1lbGVtZW50 LWtleXdvcmQtcGFyc2VyClVzZXMgKG5ldykgb3JnLWtleXdvcmQtcmVnZXhwIGluc3RlYWQgb2Yg aGFyZGNvZGluZyBpdCdzIG93biByZWdleHAuCgoqIGxpc3Avb3guZWwKRml4aW5nIGNvZGUgc28g dGhhdCBpdCByZXNwZWN0cyB0aGUgbmV3IGRvY3VtZW50IGVsZW1lbnQgYW5kIHVzZXMKb3JnLWVs ZW1lbnQgZnVuY3Rpb25zIGluc3RlYWQgb2YgcGFyc2luZyBvcmctZWxlbWVudC1jb250ZW50cyBp dHNlbGYuCgoqIGxpc3Avb2ItY29yZS5lbApVbnVzZWQgZGVjbGFyYXRpb24gZm9yIGZ1bmN0aW9u LCBvcmctbWFrZS1vcHRpb25zLXJlZ2V4cCwgaXMgcmVtb3ZlZC4KSXQgaXMgcmVtb3ZlZCBzaW5j ZSB0aGUgZnVuY3Rpb24gd2FzIHJlbmFtZWQgaW4gbGlzcC9vcmcuZWwgYW5kIGZvdW5kCmhlcmUg ZHVlIHRvIGEgZGVwZW5kZW5jeSBjaGVjay4KCiogbGlzcC9vcmctcGNvbXBsZXRlLmVsCkNhc2Nh ZGluZyBmaXhlcyBkdWUgdG8gY2xlYW51cCBpbiBvcmcgYW5kIG9yZy1lbGVtZW50LgoKKiB0ZXN0 aW5nL2xpc3AvdGVzdC1vcmctZWxlbWVudC5lbApGaXggZXhpc3RpbmcgdGVzdHMgc28gdGhleSBj YXJlIGZvciB0aGUgZG9jdW1lbnQgZWxlbWVudC4KCiogb3JnLmVsCi0tLQogbGlzcC9vYi1jb3Jl LmVsICAgICAgICAgICAgICAgICAgfCAgIDEgLQogbGlzcC9vcmctZWxlbWVudC5lbCAgICAgICAg ICAgICAgfCAxMjIgKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQogbGlzcC9vcmctcGNv bXBsZXRlLmVsICAgICAgICAgICAgfCAgMTMgKystLQogbGlzcC9vcmcuZWwgICAgICAgICAgICAg ICAgICAgICAgfCAgNTkgKysrKysrKystLS0tLS0tCiBsaXNwL294LmVsICAgICAgICAgICAgICAg ICAgICAgICB8ICAzMyArKysrKy0tLS0KIHRlc3RpbmcvbGlzcC90ZXN0LW9yZy1lbGVtZW50LmVs IHwgICA0ICstCiB0ZXN0aW5nL2xpc3AvdGVzdC1vcmcuZWwgICAgICAgICB8ICAgMiArLQogNyBm aWxlcyBjaGFuZ2VkLCAxNTkgaW5zZXJ0aW9ucygrKSwgNzUgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvbGlzcC9vYi1jb3JlLmVsIGIvbGlzcC9vYi1jb3JlLmVsCmluZGV4IDk3ZWMxOGZkMS4u YTgzNjZlZTMzIDEwMDY0NAotLS0gYS9saXNwL29iLWNvcmUuZWwKKysrIGIvbGlzcC9vYi1jb3Jl LmVsCkBAIC02Niw3ICs2Niw2IEBACiAoZGVjbGFyZS1mdW5jdGlvbiBvcmctbGlzdC10by1nZW5l cmljICJvcmctbGlzdCIgKExJU1QgUEFSQU1TKSkKIChkZWNsYXJlLWZ1bmN0aW9uIG9yZy1saXN0 LXRvLWxpc3AgIm9yZy1saXN0IiAoJm9wdGlvbmFsIGRlbGV0ZSkpCiAoZGVjbGFyZS1mdW5jdGlv biBvcmctbWFjcm8tZXNjYXBlLWFyZ3VtZW50cyAib3JnLW1hY3JvIiAoJnJlc3QgYXJncykpCi0o ZGVjbGFyZS1mdW5jdGlvbiBvcmctbWFrZS1vcHRpb25zLXJlZ2V4cCAib3JnIiAoa3dkcyAmb3B0 aW9uYWwgZXh0cmEpKQogKGRlY2xhcmUtZnVuY3Rpb24gb3JnLW1hcmstcmluZy1wdXNoICJvcmci ICgmb3B0aW9uYWwgcG9zIGJ1ZmZlcikpCiAoZGVjbGFyZS1mdW5jdGlvbiBvcmctbmFycm93LXRv LXN1YnRyZWUgIm9yZyIgKCkpCiAoZGVjbGFyZS1mdW5jdGlvbiBvcmctbmV4dC1ibG9jayAib3Jn IiAoYXJnICZvcHRpb25hbCBiYWNrd2FyZCBibG9jay1yZWdleHApKQpkaWZmIC0tZ2l0IGEvbGlz cC9vcmctZWxlbWVudC5lbCBiL2xpc3Avb3JnLWVsZW1lbnQuZWwKaW5kZXggNTZiM2NjNDEzLi5j ZGQzZWI2N2YgMTAwNjQ0Ci0tLSBhL2xpc3Avb3JnLWVsZW1lbnQuZWwKKysrIGIvbGlzcC9vcmct ZWxlbWVudC5lbApAQCAtNDEsNyArNDEsMTAgQEAKIDs7IFRoZSBuZXh0IHBhcnQgaW1wbGVtZW50 cyBhIHBhcnNlciBhbmQgYW4gaW50ZXJwcmV0ZXIgZm9yIGVhY2gKIDs7IGVsZW1lbnQgYW5kIG9i amVjdCB0eXBlIGluIE9yZyBzeW50YXguCiA7OwotOzsgVGhlIGZvbGxvd2luZyBwYXJ0IGNyZWF0 ZXMgYSBmdWxseSByZWN1cnNpdmUgYnVmZmVyIHBhcnNlci4gIEl0Cis7OyBPcmctZWxlbWVudCBj YW4gcGFyc2Ugb3JnLW1vZGUgZG9jdW1lbnRzLiAgVGhlIHRvcC1ub2RlIGluIHRoZQorOzsgcGFy c2UtdHJlZSB3aWxsIGFsd2F5cyBoYXZlIFRZUEUgYG9yZy1kYXRhJyBhbmQgUFJPUEVSVElFUyBu aWwuCis7OworOzsgVGhlIGZvbGxvd2luZyBwYXJ0IGNyZWF0ZXMgYSBmdWxseSByZWN1cnNpdmUg b3JnLW1vZGUgcGFyc2VyLiAgSXQKIDs7IGFsc28gcHJvdmlkZXMgYSB0b29sIHRvIG1hcCBhIGZ1 bmN0aW9uIHRvIGVsZW1lbnRzIG9yIG9iamVjdHMKIDs7IG1hdGNoaW5nIHNvbWUgY3JpdGVyaWEg aW4gdGhlIHBhcnNlIHRyZWUuICBGdW5jdGlvbnMgb2YgaW50ZXJlc3QKIDs7IGFyZSBgb3JnLWVs ZW1lbnQtcGFyc2UtYnVmZmVyJywgYG9yZy1lbGVtZW50LW1hcCcgYW5kLCB0byBhIGxlc3NlcgpA QCAtOTIsNiArOTUsNyBAQAogKGRlZnZhciBvcmctZWRpdC1zcmMtY29udGVudC1pbmRlbnRhdGlv bikKIChkZWZ2YXIgb3JnLWVtcGgtcmUpCiAoZGVmdmFyIG9yZy1lbXBoYXNpcy1yZWdleHAtY29t cG9uZW50cykKKyhkZWZ2YXIgb3JnLWtleXdvcmQtcmVnZXhwKQogKGRlZnZhciBvcmcta2V5d29y ZC10aW1lLW5vdC1jbG9jay1yZWdleHApCiAoZGVmdmFyIG9yZy1tYXRjaC1zdWJzdHJpbmctcmVn ZXhwKQogKGRlZnZhciBvcmctb2RkLWxldmVscy1vbmx5KQpAQCAtMjIwLDggKzIyNCw4IEBAIHNw ZWNpYWxseSBpbiBgb3JnLWVsZW1lbnQtLW9iamVjdC1sZXgnLiIpCiAgIChvcmctZWxlbWVudC1j YWNoZS1yZXNldCAnYWxsKSkKIAogKGRlZmNvbnN0IG9yZy1lbGVtZW50LWFsbC1lbGVtZW50cwot ICAnKGJhYmVsLWNhbGwgY2VudGVyLWJsb2NrIGNsb2NrIGNvbW1lbnQgY29tbWVudC1ibG9jayBk aWFyeS1zZXhwIGRyYXdlcgotCSAgICAgICBkeW5hbWljLWJsb2NrIGV4YW1wbGUtYmxvY2sgZXhw b3J0LWJsb2NrIGZpeGVkLXdpZHRoCisgICcoYmFiZWwtY2FsbCBjZW50ZXItYmxvY2sgY2xvY2sg Y29tbWVudCBjb21tZW50LWJsb2NrIGRpYXJ5LXNleHAgZG9jdW1lbnQKKwkgICAgICAgZHJhd2Vy IGR5bmFtaWMtYmxvY2sgZXhhbXBsZS1ibG9jayBleHBvcnQtYmxvY2sgZml4ZWQtd2lkdGgKIAkg ICAgICAgZm9vdG5vdGUtZGVmaW5pdGlvbiBoZWFkbGluZSBob3Jpem9udGFsLXJ1bGUgaW5saW5l dGFzayBpdGVtCiAJICAgICAgIGtleXdvcmQgbGF0ZXgtZW52aXJvbm1lbnQgbm9kZS1wcm9wZXJ0 eSBwYXJhZ3JhcGggcGxhaW4tbGlzdAogCSAgICAgICBwbGFubmluZyBwcm9wZXJ0eS1kcmF3ZXIg cXVvdGUtYmxvY2sgc2VjdGlvbgpAQCAtMjI5LDkgKzIzMyw5IEBAIHNwZWNpYWxseSBpbiBgb3Jn LWVsZW1lbnQtLW9iamVjdC1sZXgnLiIpCiAgICJDb21wbGV0ZSBsaXN0IG9mIGVsZW1lbnQgdHlw ZXMuIikKIAogKGRlZmNvbnN0IG9yZy1lbGVtZW50LWdyZWF0ZXItZWxlbWVudHMKLSAgJyhjZW50 ZXItYmxvY2sgZHJhd2VyIGR5bmFtaWMtYmxvY2sgZm9vdG5vdGUtZGVmaW5pdGlvbiBoZWFkbGlu ZSBpbmxpbmV0YXNrCi0JCSBpdGVtIHBsYWluLWxpc3QgcHJvcGVydHktZHJhd2VyIHF1b3RlLWJs b2NrIHNlY3Rpb24KLQkJIHNwZWNpYWwtYmxvY2sgdGFibGUpCisgICcoY2VudGVyLWJsb2NrIGRv Y3VtZW50IGRyYXdlciBkeW5hbWljLWJsb2NrIGZvb3Rub3RlLWRlZmluaXRpb24gaGVhZGxpbmUK KwkJIGlubGluZXRhc2sgaXRlbSBwbGFpbi1saXN0IHByb3BlcnR5LWRyYXdlciBxdW90ZS1ibG9j aworCQkgc2VjdGlvbiBzcGVjaWFsLWJsb2NrIHRhYmxlKQogICAiTGlzdCBvZiByZWN1cnNpdmUg ZWxlbWVudCB0eXBlcyBha2EgR3JlYXRlciBFbGVtZW50cy4iKQogCiAoZGVmY29uc3Qgb3JnLWVs ZW1lbnQtYWxsLW9iamVjdHMKQEAgLTI1MCw2ICsyNTQsMjcgQEAgc3BlY2lhbGx5IGluIGBvcmct ZWxlbWVudC0tb2JqZWN0LWxleCcuIikKICAgKGFwcGVuZCBvcmctZWxlbWVudC1yZWN1cnNpdmUt b2JqZWN0cyAnKHBhcmFncmFwaCB0YWJsZS1yb3cgdmVyc2UtYmxvY2spKQogICAiTGlzdCBvZiBv YmplY3Qgb3IgZWxlbWVudCB0eXBlcyB0aGF0IGNhbiBkaXJlY3RseSBjb250YWluIG9iamVjdHMu IikKIAorKGRlZmNvbnN0IG9yZy1lbGVtZW50LWRvY3VtZW50LWtleXdvcmRzCisgICcoIkFSQ0hJ VkUiICJCSU5EIiAiQ0FURUdPUlkiICJDT0xVTU5TIiAiQ09OU1RBTlRTIiAiRklMRVRBR1MiICJM SU5LIgorICAgICJNQUNSTyIgIk9QVElPTlMiICJQUklPUklUSUVTIiAiUFJPUEVSVFkiICJTRVFf VE9ETyIgIlNFVFVQRklMRSIKKyAgICAiU1RBUlRVUCIgIlRBR1MiICJUT0RPIiAiVFlQX1RPRE8i KQorICAiTGlzdCBvZiBzdXBwb3J0ZWQga2V5d29yZHMgdGhhdCBhcmUgdXNlZCB0byBjb25maWd1 cmUgZG9jdW1lbnQKKyAgZ2xvYmFsIG9wdGlvbnMgYW5kIHByb3BlcnRpZXMuIikKKworKGRlZmNv bnN0IG9yZy1lbGVtZW50LWV4cG9ydC1rZXl3b3JkcworICAnKCJBVVRIT1IiICJDUkVBVE9SIiAi REFURSIgIkVNQUlMIiAiRVhDTFVERV9UQUdTIiAiTEFOR1VBR0UiCisgICAgIlNFTEVDVF9UQUdT IiAiVElUTEUiICJFWFBPUlRfRklMRV9OQU1FIikKKyAgIkxpc3Qgb2Yga2V5d29yZHMgdGhhdCBh cmUgbWVudGlvbmVkIGluIHRoZSBtYW51YWwgYXMgc29tZXRoaW5nCisgIHRoYXQgc2hvdWxkIGJl IHN1cHBvcnRlZCBieSBhbGwgZXhwb3J0IGJhY2tlbmRzLiAgTW9yZSBrZXl3b3JkcworICBtaWdo dCBleGlzdCB0aGF0IGFyZSBzcGVjaWZpYyBmb3IgY2VydGFpbiBiYWNrZW5kcy4iKQorCisoZGVm Y29uc3Qgb3JnLWVsZW1lbnQtaW5saW5lLWtleXdvcmRzCisgICcoIklOQ0xVREUiICJUT0MiICJJ TkRFWCIgIkFTQ0lJIiAiSFRNTCIgIkxBVEVYIiAiT0RUIiAiVEVYSU5GTyIgIkJFQU1FUiIpCisg ICJMaXN0IG9mIGtleXdvcmRzIHRoYXQgcHJvdmlkZSBjb250ZW50IGF0IGNlcnRhaW4gcG9zaXRp b25zIGluCisgIHRoZSBvdXRsaW5lLiAgVGhlc2Uga2V5d29yZHMgYXJlIGNvbnNpZGVyZWQgYXMg YSBwYXJ0IG9mIHRoZQorICBkb2N1bWVudCBvdXRsaW5lIHJhdGhlciB0aGFuIGFzIHByb3BlcnRp ZXMgb2YgdGhlIGRvY3VtZW50CisgIGVsZW1lbnQuIikKKwogKGRlZmNvbnN0IG9yZy1lbGVtZW50 LWFmZmlsaWF0ZWQta2V5d29yZHMKICAgJygiQ0FQVElPTiIgIkRBVEEiICJIRUFERVIiICJIRUFE RVJTIiAiTEFCRUwiICJOQU1FIiAiUExPVCIgIlJFU05BTUUiICJSRVNVTFQiCiAgICAgIlJFU1VM VFMiICJTT1VSQ0UiICJTUkNOQU1FIiAiVEJMTkFNRSIpCkBAIC03MjYsNiArNzUxLDUxIEBAIEFz c3VtZSBwb2ludCBpcyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBibG9jay4iCiBDT05URU5UUyBp cyB0aGUgY29udGVudHMgb2YgdGhlIGVsZW1lbnQuIgogICAoZm9ybWF0ICIjK2JlZ2luX2NlbnRl clxuJXMjK2VuZF9jZW50ZXIiIGNvbnRlbnRzKSkKIAorOzs7OyBEb2N1bWVudAorCisoZGVmdW4g b3JnLWVsZW1lbnQtLWdldC1kb2N1bWVudC1rZXl3b3JkcyAoKQorICAiUmV0dXJuIGtleXdvcmRz IHRoYXQgYXNzb2NpYXRlIHdpdGggdGhlIGRvY3VtZW50LgorUmV0dXJucyBhIHBsaXN0IHdpdGgg b25lIGtleSwgYDpkb2N1bWVudC1rZXl3b3JkcycsIGFuZCBhbiBhbGlzdAorb2YgYWxsIGtleXdv cmRzIHJlbGF0ZWQgdG8gdGhlIHdob2xlIGRvY3VtZW50IHdpdGggdGhlaXIKK2NvcnJlc3BvbmRp bmcgdmFsdWVzLiAgRG9lcyBub3QgZXhwYW5kIHNldHVwZmlsZSBrZXl3b3JkcyB0byBnZXQKK2lu aGVyaXRlZCBwcm9wZXJ0aWVzLiIKKyAgKGxldCAoKGRvY3VtZW50LWtleXdvcmRzIChvcmctY29s bGVjdC1rZXl3b3JkcworCQkJICAgIChvcmctbWFrZS1rZXl3b3JkLXJlZ2V4cAorCQkJICAgICBv cmctZWxlbWVudC1kb2N1bWVudC1rZXl3b3JkcykKKwkJCSAgICBuaWwgbmlsIHQpKQorCShleHBv cnQta2V5d29yZHMgKG9yZy1jb2xsZWN0LWtleXdvcmRzCisJCQkgIChvcmctbWFrZS1rZXl3b3Jk LXJlZ2V4cAorCQkJICAgb3JnLWVsZW1lbnQtZXhwb3J0LWtleXdvcmRzKQorCQkJICBuaWwgbmls IHQpKSkKKyAgICAobGlzdCA6ZG9jdW1lbnQta2V5d29yZHMgZG9jdW1lbnQta2V5d29yZHMKKwkg IDpleHBvcnQta2V5d29yZHMgZXhwb3J0LWtleXdvcmRzKSkpCisKKyhkZWZ1biBvcmctZWxlbWVu dC1kb2N1bWVudC1wYXJzZXIgKCkKKyAgIlBhcnNlIGEgZG9jdW1lbnQgZm9yIGl0J3Mgc2V0dGlu Z3MgYW5kIHByb3BlcnRpZXMuCitSZXR1cm4gYSBsaXN0IHdob3NlIENBUiBpcyBgZG9jdW1lbnQn IGFuZCBDRFIgaXMgYSBwbGlzdAorY29udGFpbmluZyBgOmJ1ZmZlcicsIGA6ZmlsZScsIGA6bGV2 ZWwnLCBgOmNvbnRlbnRzLWJlZ2luJywKK2A6Y29udGVudHMtZW5kJyBhbmQgYDpwb3N0LWJsYW5r Jy4KKworSW4gYWRkaXRpb24gdG8gdGhlIGFib3ZlLCB0aGUgcGxpc3QgYWxzbyBjb250YWlucyBj b25maWd1cmF0aW9ucworYW5kIHByb3BlcnRpZXMgdGhhdCBhcHBsaWVzIGZvciB0aGUgd2hvbGUg ZG9jdW1lbnQsIGNvbWluZyBmcm9tCitkb2N1bWVudCBrZXl3b3Jkcy4iCisgIChzYXZlLWV4Y3Vy c2lvbgorICAgIChsaXN0ICdkb2N1bWVudAorCSAgKG5jb25jCisJICAgKGxpc3QgOmJ1ZmZlciAo Y3VycmVudC1idWZmZXIpCisJCSA6ZmlsZSBidWZmZXItZmlsZS1uYW1lCisJCSA6bGV2ZWwgMAor CQkgOmNvbnRlbnRzLWJlZ2luIChwb2ludC1taW4pCisJCSA6Y29udGVudHMtZW5kIChwb2ludC1t YXgpCisJCSA6YmVnaW4gKHBvaW50LW1pbikKKwkJIDplbmQgKHBvaW50LW1heCkKKwkJIDpwb3N0 LWJsYW5rIDApCisJICAgKG9yZy1lbGVtZW50LS1nZXQtZG9jdW1lbnQta2V5d29yZHMpKSkpKQor CisoZGVmdW4gb3JnLWVsZW1lbnQtZG9jdW1lbnQtaW50ZXJwcmV0ZXIgKF8gY29udGVudHMpCisg ICJJbnRlcnByZXQgZG9jdW1lbnQgZWxlbWVudCBhcyBPcmcgc3ludGF4LgorQ09OVEVOVFMgaXMg dGhlIGNvbnRlbnRzIG9mIHRoZSBlbGVtZW50LiIKKyAgY29udGVudHMpCiAKIDs7OzsgRHJhd2Vy CiAKQEAgLTIxOTUsMTAgKzIyNjUsOSBAQCBjb250YWluaW5nIGA6a2V5JywgYDp2YWx1ZScsIGA6 YmVnaW4nLCBgOmVuZCcsIGA6cG9zdC1ibGFuaycgYW5kCiAgICAgOzsgdGhpcyBjb3JuZXIgY2Fz ZS4KICAgICAobGV0ICgoYmVnaW4gKG9yIChjYXIgYWZmaWxpYXRlZCkgKHBvaW50KSkpCiAJICAo cG9zdC1hZmZpbGlhdGVkIChwb2ludCkpCi0JICAoa2V5IChwcm9nbiAobG9va2luZy1hdCAiWyBc dF0qI1xcK1xcKFxcUy0qXFwpOiIpCisJICAoa2V5IChwcm9nbiAobG9va2luZy1hdCBvcmcta2V5 d29yZC1yZWdleHApCiAJCSAgICAgICh1cGNhc2UgKG1hdGNoLXN0cmluZy1uby1wcm9wZXJ0aWVz IDEpKSkpCi0JICAodmFsdWUgKG9yZy10cmltIChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRp ZXMKLQkJCSAgICAobWF0Y2gtZW5kIDApIChwb2ludC1hdC1lb2wpKSkpCisJICAodmFsdWUgKG9y Zy10cmltIChtYXRjaC1zdHJpbmctbm8tcHJvcGVydGllcyAyKSkpCiAJICAocG9zLWJlZm9yZS1i bGFuayAocHJvZ24gKGZvcndhcmQtbGluZSkgKHBvaW50KSkpCiAJICAoZW5kIChwcm9nbiAoc2tp cC1jaGFycy1mb3J3YXJkICIgXHJcdFxuIiBsaW1pdCkKIAkJICAgICAgKGlmIChlb2JwKSAocG9p bnQpIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikpKSkpCkBAIC0zODQ3LDcgKzM5MTYsNyBAQCBy ZWN1cnNpb24uICBBbGxvd2VkIHZhbHVlcyBhcmUgYGhlYWRsaW5lJywgYGdyZWF0ZXItZWxlbWVu dCcsCiBuaWwpLCBzZWNvbmRhcnkgdmFsdWVzIHdpbGwgbm90IGJlIHBhcnNlZCwgc2luY2UgdGhl eSBvbmx5CiBjb250YWluIG9iamVjdHMuCiAKLU9wdGlvbmFsIGFyZ3VtZW50IE1PREUsIHdoZW4g bm9uLW5pbCwgY2FuIGJlIGVpdGhlcgorT3B0aW9uYWwgYXJndW1lbnQgTU9ERSwgd2hlbiBub24t bmlsLCBjYW4gYmUgZWl0aGVyIGBkb2N1bWVudCcsCiBgZmlyc3Qtc2VjdGlvbicsIGBzZWN0aW9u JywgYHBsYW5uaW5nJywgYGl0ZW0nLCBgbm9kZS1wcm9wZXJ0eScKIGFuZCBgdGFibGUtcm93Jy4K IApAQCAtMzg2Myw2ICszOTMyLDkgQEAgZWxlbWVudCBpdCBoYXMgdG8gcGFyc2UuIgogCSAgOzsg YG9yZy1lbGVtZW50LXNlY29uZGFyeS12YWx1ZS1hbGlzdCcuCiAJICAocmF3LXNlY29uZGFyeS1w IChhbmQgZ3JhbnVsYXJpdHkgKG5vdCAoZXEgZ3JhbnVsYXJpdHkgJ29iamVjdCkpKSkpCiAgICAg ICAoY29uZAorICAgICAgIDs7IERvY3VtZW50CisgICAgICAgKChlcSBtb2RlICdkb2N1bWVudCkK Kwkob3JnLWVsZW1lbnQtZG9jdW1lbnQtcGFyc2VyKSkKICAgICAgICA7OyBJdGVtLgogICAgICAg ICgoZXEgbW9kZSAnaXRlbSkKIAkob3JnLWVsZW1lbnQtaXRlbS1wYXJzZXIgbGltaXQgc3RydWN0 dXJlIHJhdy1zZWNvbmRhcnktcCkpCkBAIC0zODc1LDYgKzM5NDcsOCBAQCBlbGVtZW50IGl0IGhh cyB0byBwYXJzZS4iCiAgICAgICAgIChvcmctZWxlbWVudC1oZWFkbGluZS1wYXJzZXIgbGltaXQg cmF3LXNlY29uZGFyeS1wKSkKICAgICAgICA7OyBTZWN0aW9ucyAobXVzdCBiZSBjaGVja2VkIGFm dGVyIGhlYWRsaW5lKS4KICAgICAgICAoKGVxIG1vZGUgJ3NlY3Rpb24pIChvcmctZWxlbWVudC1z ZWN0aW9uLXBhcnNlciBsaW1pdCkpCisgICAgICAgOzsgRmlyc3Qtc2VjdGlvbi4gIFNwZWNpYWwg bW9kZSBmb3IgZGVhbGluZyB3aXRoIHRoZSBmaXJzdCBzZWN0aW9uCisgICAgICAgOzsgaW4gYSBk b2N1bWVudCwgd2hpY2ggbWlnaHQgb3IgbWlnaHQgbm90IGJlIGJlZm9yZSBmaXJzdCBoZWFkbGlu ZS4KICAgICAgICAoKGVxIG1vZGUgJ2ZpcnN0LXNlY3Rpb24pCiAJKG9yZy1lbGVtZW50LXNlY3Rp b24tcGFyc2VyCiAJIChvciAoc2F2ZS1leGN1cnNpb24gKG9yZy13aXRoLWxpbWl0ZWQtbGV2ZWxz IChvdXRsaW5lLW5leHQtaGVhZGluZykpKQpAQCAtNDEyMSw5ICs0MTk1LDEwIEBAIFRoaXMgZnVu Y3Rpb24gYXNzdW1lcyB0aGF0IGN1cnJlbnQgbWFqb3IgbW9kZSBpcyBgb3JnLW1vZGUnLiIKICAg ICAob3JnLXNraXAtd2hpdGVzcGFjZSkKICAgICAob3JnLWVsZW1lbnQtLXBhcnNlLWVsZW1lbnRz CiAgICAgIChwb2ludC1hdC1ib2wpIChwb2ludC1tYXgpCi0gICAgIDs7IFN0YXJ0IGluIGBmaXJz dC1zZWN0aW9uJyBtb2RlIHNvIHRleHQgYmVmb3JlIHRoZSBmaXJzdAotICAgICA7OyBoZWFkbGlu ZSBiZWxvbmdzIHRvIGEgc2VjdGlvbi4KLSAgICAgJ2ZpcnN0LXNlY3Rpb24gbmlsIGdyYW51bGFy aXR5IHZpc2libGUtb25seSAobGlzdCAnb3JnLWRhdGEgbmlsKSkpKQorICAgICA7OyBTdGFydCBp biBgZG9jdW1lbnQnIG1vZGUgc28gcHJvcGV0aWVzIGFuZCBwb3RlbnRpYWwgb3RoZXIKKyAgICAg OzsgY29udGVudCBiZWZvcmUgdGhlIGZpcnN0IGhlYWRsaW5lIGJlbG9uZ3MgdG8gdGhlIGRvY3Vt ZW50CisgICAgIDs7IG5vZGUuCisgICAgICdkb2N1bWVudCBuaWwgZ3JhbnVsYXJpdHkgdmlzaWJs ZS1vbmx5IChsaXN0ICdvcmctZGF0YSBuaWwpKSkpCiAKIChkZWZ1biBvcmctZWxlbWVudC1wYXJz ZS1zZWNvbmRhcnktc3RyaW5nIChzdHJpbmcgcmVzdHJpY3Rpb24gJm9wdGlvbmFsIHBhcmVudCkK ICAgIlJlY3Vyc2l2ZWx5IHBhcnNlIG9iamVjdHMgaW4gU1RSSU5HIGFuZCByZXR1cm4gc3RydWN0 dXJlLgpAQCAtNDMyNCwxMSArNDM5OSwxMiBAQCBsb29raW5nIGludG8gY2FwdGlvbnM6CiAgICJS ZXR1cm4gbmV4dCBzcGVjaWFsIG1vZGUgYWNjb3JkaW5nIHRvIFRZUEUsIG9yIG5pbC4KIFRZUEUg aXMgYSBzeW1ib2wgcmVwcmVzZW50aW5nIHRoZSB0eXBlIG9mIGFuIGVsZW1lbnQgb3Igb2JqZWN0 CiBjb250YWluaW5nIG5leHQgZWxlbWVudCBpZiBQQVJFTlRQIGlzIG5vbi1uaWwsIG9yIGJlZm9y ZSBpdAotb3RoZXJ3aXNlLiAgTW9kZXMgY2FuIGJlIGVpdGhlciBgZmlyc3Qtc2VjdGlvbicsIGBp dGVtJywKLWBub2RlLXByb3BlcnR5JywgYHBsYW5uaW5nJywgYHByb3BlcnR5LWRyYXdlcicsIGBz ZWN0aW9uJywKLWB0YWJsZS1yb3cnIG9yIG5pbC4iCitvdGhlcndpc2UuICBNb2RlcyBjYW4gYmUg ZWl0aGVyIGBkb2N1bWVudCcsIGBmaXJzdC1zZWN0aW9uJywKK2BpdGVtJywgYG5vZGUtcHJvcGVy dHknLCBgcGxhbm5pbmcnLCBgcHJvcGVydHktZHJhd2VyJywKK2BzZWN0aW9uJywgYHRhYmxlLXJv dycgb3IgbmlsLiIKICAgKGlmIHBhcmVudHAKICAgICAgIChwY2FzZSB0eXBlCisJKGBkb2N1bWVu dCAnZmlyc3Qtc2VjdGlvbikKIAkoYGhlYWRsaW5lICdzZWN0aW9uKQogCShgaW5saW5ldGFzayAn cGxhbm5pbmcpCiAJKGBwbGFpbi1saXN0ICdpdGVtKQpAQCAtNDM0Niw4ICs0NDIyLDggQEAgb3Ro ZXJ3aXNlLiAgTW9kZXMgY2FuIGJlIGVpdGhlciBgZmlyc3Qtc2VjdGlvbicsIGBpdGVtJywKICAg IlBhcnNlIGVsZW1lbnRzIGJldHdlZW4gQkVHIGFuZCBFTkQgcG9zaXRpb25zLgogCiBNT0RFIHBy aW9yaXRpemVzIHNvbWUgZWxlbWVudHMgb3ZlciB0aGUgb3RoZXJzLiAgSXQgY2FuIGJlIHNldCB0 bwotYGZpcnN0LXNlY3Rpb24nLCBgc2VjdGlvbicsIGBwbGFubmluZycsIGBpdGVtJywgYG5vZGUt cHJvcGVydHknCi1vciBgdGFibGUtcm93Jy4KK2Bkb2N1bWVudCcsIGBmaXJzdC1zZWN0aW9uJywg YHNlY3Rpb24nLCBgcGxhbm5pbmcnLCBgaXRlbScsCitgbm9kZS1wcm9wZXJ0eScgb3IgYHRhYmxl LXJvdycuCiAKIFdoZW4gdmFsdWUgaXMgYGl0ZW0nLCBTVFJVQ1RVUkUgd2lsbCBiZSB1c2VkIGFz IHRoZSBjdXJyZW50IGxpc3QKIHN0cnVjdHVyZS4KQEAgLTQzNzUsNyArNDQ1MSw4IEBAIEVsZW1l bnRzIGFyZSBhY2N1bXVsYXRlZCBpbnRvIEFDQy4iCiAJKGxldCogKChlbGVtZW50IChvcmctZWxl bWVudC0tY3VycmVudC1lbGVtZW50CiAJCQkgZW5kIGdyYW51bGFyaXR5IG1vZGUgc3RydWN0dXJl KSkKIAkgICAgICAgKHR5cGUgKG9yZy1lbGVtZW50LXR5cGUgZWxlbWVudCkpCi0JICAgICAgIChj YmVnIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6Y29udGVudHMtYmVnaW4gZWxlbWVudCkpKQorCSAg ICAgICAoY2JlZyAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmNvbnRlbnRzLWJlZ2luIGVsZW1lbnQp KQorCSAgICAgICAoY2VuZCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmNvbnRlbnRzLWVuZCBlbGVt ZW50KSkpCiAJICAoZ290by1jaGFyIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6ZW5kIGVsZW1lbnQp KQogCSAgOzsgVmlzaWJsZSBvbmx5OiBza2lwIGludmlzaWJsZSBwYXJ0cyBiZXR3ZWVuIHNpYmxp bmdzLgogCSAgKHdoZW4gKGFuZCB2aXNpYmxlLW9ubHkgKG9yZy1pbnZpc2libGUtcDIpKQpAQCAt NDM5Miw5ICs0NDY5LDEwIEBAIEVsZW1lbnRzIGFyZSBhY2N1bXVsYXRlZCBpbnRvIEFDQy4iCiAJ CSAob3IgKG1lbXEgZ3JhbnVsYXJpdHkgJyhlbGVtZW50IG9iamVjdCBuaWwpKQogCQkgICAgIChh bmQgKGVxIGdyYW51bGFyaXR5ICdncmVhdGVyLWVsZW1lbnQpCiAJCQkgIChlcSB0eXBlICdzZWN0 aW9uKSkKLQkJICAgICAoZXEgdHlwZSAnaGVhZGxpbmUpKSkKKwkJICAgICAoZXEgdHlwZSAnaGVh ZGxpbmUpCisJCSAgICAgKGVxIHR5cGUgJ2RvY3VtZW50KSkpCiAJICAgIChvcmctZWxlbWVudC0t cGFyc2UtZWxlbWVudHMKLQkgICAgIGNiZWcgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpjb250ZW50 cy1lbmQgZWxlbWVudCkKKwkgICAgIGNiZWcgY2VuZAogCSAgICAgOzsgUG9zc2libHkgc3dpdGNo IHRvIGEgc3BlY2lhbCBtb2RlLgogCSAgICAgKG9yZy1lbGVtZW50LS1uZXh0LW1vZGUgdHlwZSB0 KQogCSAgICAgKGFuZCAobWVtcSB0eXBlICcoaXRlbSBwbGFpbi1saXN0KSkKQEAgLTQ0MDQsNyAr NDQ4Miw3IEBAIEVsZW1lbnRzIGFyZSBhY2N1bXVsYXRlZCBpbnRvIEFDQy4iCiAJICAgOzsgR1JB TlVMQVJJVFkgYWxsb3dzIGl0LgogCSAgICgobWVtcSBncmFudWxhcml0eSAnKG9iamVjdCBuaWwp KQogCSAgICAob3JnLWVsZW1lbnQtLXBhcnNlLW9iamVjdHMKLQkgICAgIGNiZWcgKG9yZy1lbGVt ZW50LXByb3BlcnR5IDpjb250ZW50cy1lbmQgZWxlbWVudCkgZWxlbWVudAorCSAgICAgY2JlZyBj ZW5kIGVsZW1lbnQKIAkgICAgIChvcmctZWxlbWVudC1yZXN0cmljdGlvbiB0eXBlKSkpKQogCSAg KHB1c2ggKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBlbGVtZW50IDpwYXJlbnQgYWNjKSBlbGVt ZW50cykKIAkgIDs7IFVwZGF0ZSBtb2RlLgpkaWZmIC0tZ2l0IGEvbGlzcC9vcmctcGNvbXBsZXRl LmVsIGIvbGlzcC9vcmctcGNvbXBsZXRlLmVsCmluZGV4IDVhN2ZiNTdjOS4uOGJhOWMwNzE0IDEw MDY0NAotLS0gYS9saXNwL29yZy1wY29tcGxldGUuZWwKKysrIGIvbGlzcC9vcmctcGNvbXBsZXRl LmVsCkBAIC01MSw2ICs1MSw5IEBACiAoZGVmdmFyIG9yZy1kZWZhdWx0LXByaW9yaXR5KQogKGRl ZnZhciBvcmctZHJhd2VyLXJlZ2V4cCkKIChkZWZ2YXIgb3JnLWVsZW1lbnQtYWZmaWxpYXRlZC1r ZXl3b3JkcykKKyhkZWZ2YXIgb3JnLWVsZW1lbnQtZG9jdW1lbnQta2V5d29yZHMpCisoZGVmdmFy IG9yZy1lbGVtZW50LWV4cG9ydC1rZXl3b3JkcykKKyhkZWZ2YXIgb3JnLWVsZW1lbnQtaW5saW5l LWtleXdvcmRzKQogKGRlZnZhciBvcmctZW50aXRpZXMpCiAoZGVmdmFyIG9yZy1leHBvcnQtZGVm YXVsdC1sYW5ndWFnZSkKIChkZWZ2YXIgb3JnLWV4cG9ydC1leGNsdWRlLXRhZ3MpCkBAIC02MCw3 ICs2Myw2IEBACiAoZGVmdmFyIG9yZy1saW5rLWFiYnJldi1hbGlzdCkKIChkZWZ2YXIgb3JnLWxp bmstYWJicmV2LWFsaXN0LWxvY2FsKQogKGRlZnZhciBvcmctbG93ZXN0LXByaW9yaXR5KQotKGRl ZnZhciBvcmctb3B0aW9ucy1rZXl3b3JkcykKIChkZWZ2YXIgb3JnLW91dGxpbmUtcmVnZXhwKQog KGRlZnZhciBvcmctcHJvcGVydHktcmUpCiAoZGVmdmFyIG9yZy1zdGFydHVwLW9wdGlvbnMpCkBA IC0xOTcsMTAgKzE5OSwxMSBAQCBXaGVuIGNvbXBsZXRpbmcgZm9yICMrU1RBUlRVUCwgZm9yIGV4 YW1wbGUsIHRoaXMgZnVuY3Rpb24gcmV0dXJucwogICAocmVxdWlyZSAnb3JnLWVsZW1lbnQpCiAg IChwY29tcGxldGUtaGVyZQogICAgKG9yZy1wY29tcGxldGUtY2FzZS1kb3VibGUKLSAgICAoYXBw ZW5kIChtYXBjYXIgKGxhbWJkYSAoa2V5d29yZCkgKGNvbmNhdCBrZXl3b3JkICIgIikpCi0JCSAg ICBvcmctb3B0aW9ucy1rZXl3b3JkcykKLQkgICAgKG1hcGNhciAobGFtYmRhIChrZXl3b3JkKSAo Y29uY2F0IGtleXdvcmQgIjogIikpCi0JCSAgICBvcmctZWxlbWVudC1hZmZpbGlhdGVkLWtleXdv cmRzKQorICAgIChhcHBlbmQgKG1hcGNhciAobGFtYmRhIChrZXl3b3JkKSAoY29uY2F0IGtleXdv cmQgIjogIikpCisJCSAgICAoYXBwZW5kIG9yZy1lbGVtZW50LWRvY3VtZW50LWtleXdvcmRzCisJ CQkgICAgb3JnLWVsZW1lbnQtZXhwb3J0LWtleXdvcmRzCisJCQkgICAgb3JnLWVsZW1lbnQtaW5s aW5lLWtleXdvcmRzCisJCQkgICAgb3JnLWVsZW1lbnQtYWZmaWxpYXRlZC1rZXl3b3JkcykpCiAJ ICAgIChsZXQgKGJsb2NrLW5hbWVzKQogCSAgICAgIChkb2xpc3QgKG5hbWUKIAkJICAgICAgICco IkNFTlRFUiIgIkNPTU1FTlQiICJFWEFNUExFIiAiRVhQT1JUIiAiUVVPVEUiICJTUkMiCmRpZmYg LS1naXQgYS9saXNwL29yZy5lbCBiL2xpc3Avb3JnLmVsCmluZGV4IGRiOTU3YTExMi4uMzU4OTg5 MDcwIDEwMDY0NAotLS0gYS9saXNwL29yZy5lbAorKysgYi9saXNwL29yZy5lbApAQCAtMzUwLDYg KzM1MCw5IEBAIEZVTEwgaXMgZ2l2ZW4uIgogCiAMCiA7OzsgU3ludGF4IENvbnN0YW50cworOzs7 OyBLZXl3b3JkCisoZGVmY29uc3Qgb3JnLWtleXdvcmQtcmVnZXhwICJeWyBcdF0qI1xcK1xcKFxc Uy0rP1xcKTpbIFx0XSpcXCguKlxcKSQiCisgICJSZWd1bGFyIGV4cHJlc3Npb24gZm9yIGtleXdv cmQtbGluZXMiKQogCiA7Ozs7IEJsb2NrCiAKQEAgLTQzMDQsMTMgKzQzMDcsMTMgQEAgU2VlIGBv cmctdGFnLWFsaXN0JyBmb3IgdGhlaXIgc3RydWN0dXJlLiIKICAgICAgIDs7IFByZXNlcnZlIG9y ZGVyIG9mIEFMSVNUMS4KICAgICAgIChhcHBlbmQgKG5yZXZlcnNlIHRvLWFkZCkgYWxpc3QyKSkp KSkKIAotKGRlZnVuIG9yZy1zZXQtcmVnZXhwcy1hbmQtb3B0aW9ucyAoJm9wdGlvbmFsIHRhZ3Mt b25seSkKLSAgIlByZWNvbXB1dGUgcmVndWxhciBleHByZXNzaW9ucyB1c2VkIGluIHRoZSBjdXJy ZW50IGJ1ZmZlci4KKyhkZWZ1biBvcmctc2V0LXJlZ2V4cHMtYW5kLWtleXdvcmRzICgmb3B0aW9u YWwgdGFncy1vbmx5KQorICAiUHJlY29tcHV0ZSByZWd1bGFyIGV4cHJlc3Npb25zIGFuZCBzZXQg dmFyaWFibGVzIGJhc2VkIG9uIGtleXdvcmRzLgogV2hlbiBvcHRpb25hbCBhcmd1bWVudCBUQUdT LU9OTFkgaXMgbm9uLW5pbCwgb25seSBjb21wdXRlIHRhZ3MKIHJlbGF0ZWQgZXhwcmVzc2lvbnMu IgogICAod2hlbiAoZGVyaXZlZC1tb2RlLXAgJ29yZy1tb2RlKQotICAgIChsZXQgKChhbGlzdCAo b3JnLS1zZXR1cC1jb2xsZWN0LWtleXdvcmRzCi0JCSAgKG9yZy1tYWtlLW9wdGlvbnMtcmVnZXhw CisgICAgKGxldCAoKGFsaXN0IChvcmctY29sbGVjdC1rZXl3b3JkcworCQkgIChvcmctbWFrZS1r ZXl3b3JkLXJlZ2V4cAogCQkgICAoYXBwZW5kICcoIkZJTEVUQUdTIiAiVEFHUyIgIlNFVFVQRklM RSIpCiAJCQkgICAoYW5kIChub3QgdGFncy1vbmx5KQogCQkJCScoIkFSQ0hJVkUiICJDQVRFR09S WSIgIkNPTFVNTlMiICJDT05TVEFOVFMiCkBAIC00NDY1LDE2ICs0NDY4LDE3IEBAIHJlbGF0ZWQg ZXhwcmVzc2lvbnMuIgogCQkgICAgICAiWyBcdF0qJCIpKQogCShvcmctY29tcHV0ZS1sYXRleC1h bmQtcmVsYXRlZC1yZWdleHApKSkpKQogCi0oZGVmdW4gb3JnLS1zZXR1cC1jb2xsZWN0LWtleXdv cmRzIChyZWdleHAgJm9wdGlvbmFsIGZpbGVzIGFsaXN0KQotICAiUmV0dXJuIHNldHVwIGtleXdv cmRzIHZhbHVlcyBhcyBhbiBhbGlzdC4KLQotUkVHRVhQIG1hdGNoZXMgYSBzdWJzZXQgb2Ygc2V0 dXAga2V5d29yZHMuICBGSUxFUyBpcyBhIGxpc3Qgb2YKLWZpbGUgbmFtZXMgYWxyZWFkeSB2aXNp dGVkLiAgSXQgaXMgdXNlZCB0byBhdm9pZCBjaXJjdWxhciBzZXR1cAotZmlsZXMuICBBTElTVCwg d2hlbiBub24tbmlsLCBpcyB0aGUgYWxpc3QgY29tcHV0ZWQgc28gZmFyLgotCi1SZXR1cm4gdmFs dWUgY29udGFpbnMgdGhlIGZvbGxvd2luZyBrZXlzOiBgYXJjaGl2ZScsIGBjYXRlZ29yeScsCi1g Y29sdW1ucycsIGBjb25zdGFudHMnLCBgZmlsZXRhZ3MnLCBgbGluaycsIGBwcmlvcml0aWVzJywK LWBwcm9wZXJ0eScsIGBzY3JpcHRzJywgYHN0YXJ0dXAnLCBgdGFncycgYW5kIGB0b2RvJy4iCiso ZGVmdW4gb3JnLWNvbGxlY3Qta2V5d29yZHMgKCZvcHRpb25hbCByZWdleHAgZmlsZXMgYWxpc3Qg bm8tc2V0dXBmaWxlLWV4cGFuc2lvbikKKyAgIlJldHVybiBrZXl3b3JkcyB2YWx1ZXMgYXMgYW4g YWxpc3QuCisKK1JFR0VYUCBjYW4gYmUgcHJvdmlkZWQgdG8gb3ZlcnJpZGUgZGVmYXVsdCBrZXl3 b3JkIHJlZ2V4cCBpZiBvbmx5CithIHN1YnNldCBvZiBrZXl3b3JkcyBhcmUgaW50ZXJlc3Rpbmcs IGZvciBwZXJmb3JtYW5jZSBwdXJwb3Nlcy4KK0ZJTEVTIGlzIGEgbGlzdCBvZiBmaWxlIG5hbWVz IGFscmVhZHkgdmlzaXRlZC4gIEl0IGlzIHVzZWQgdG8KK2F2b2lkIGNpcmN1bGFyIHNldHVwIGZp bGVzLiAgQUxJU1QsIHdoZW4gbm9uLW5pbCwgaXMgdGhlIGFsaXN0Citjb21wdXRlZCBzbyBmYXIu ICBOTy1TRVRVUEZJTEUtRVhQQU5TSU9OIGNhbiBiZSB1c2VkIHRvIG5vdAorcmVjdXJzZSBpbnRv IHNldHVwZmlsZXMuICBJbiB0aGF0IGNhc2UgdGhlIGBzZXR1cGZpbGUnIGtleXdvcmQKK2FuZCB2 YWx1ZSB3aWxsIGJlIHJldHVybmVkIGluc3RlYWQsIGlmIGl0IGV4aXN0LiIKKyAgKHNldHEgcmVn ZXhwIChvciByZWdleHAgb3JnLWtleXdvcmQtcmVnZXhwKSkKICAgKG9yZy13aXRoLXdpZGUtYnVm ZmVyCiAgICAoZ290by1jaGFyIChwb2ludC1taW4pKQogICAgKGxldCAoKGNhc2UtZm9sZC1zZWFy Y2ggdCkpCkBAIC00NTU0LDcgKzQ1NTgsOSBAQCBSZXR1cm4gdmFsdWUgY29udGFpbnMgdGhlIGZv bGxvd2luZyBrZXlzOiBgYXJjaGl2ZScsIGBjYXRlZ29yeScsCiAJCSAoaWYgdG9kbyAocHVzaCB2 YWx1ZSAoY2RyIHRvZG8pKQogCQkgICAocHVzaCAobGlzdCAndG9kbyB2YWx1ZSkgYWxpc3QpKSkp CiAJICAgICAgKChlcXVhbCBrZXkgIlNFVFVQRklMRSIpCi0JICAgICAgICh1bmxlc3MgYnVmZmVy LXJlYWQtb25seSA7IERvIG5vdCBjaGVjayBpbiBHbnVzIG1lc3NhZ2VzLgorCSAgICAgICAoaWYg KG9yIGJ1ZmZlci1yZWFkLW9ubHkgOyBEbyBub3QgY2hlY2sgaW4gR251cyBtZXNzYWdlcy4KKwkJ ICAgICAgIG5vLXNldHVwZmlsZS1leHBhbnNpb24pCisJCSAgIChwdXNoIChjb25zICdzZXR1cGZp bGUgdmFsdWUpIGFsaXN0KQogCQkgKGxldCAoKGYgKGFuZCAob3JnLXN0cmluZy1udy1wIHZhbHVl KQogCQkJICAgICAgIChleHBhbmQtZmlsZS1uYW1lIChvcmctc3RyaXAtcXVvdGVzIHZhbHVlKSkp KSkKIAkJICAgKHdoZW4gKGFuZCBmIChmaWxlLXJlYWRhYmxlLXAgZikgKG5vdCAobWVtYmVyIGYg ZmlsZXMpKSkKQEAgLTQ1NjUsOCArNDU3MSwxMCBAQCBSZXR1cm4gdmFsdWUgY29udGFpbnMgdGhl IGZvbGxvd2luZyBrZXlzOiBgYXJjaGl2ZScsIGBjYXRlZ29yeScsCiAJCQkgICAgIDs7IEZha2Ug T3JnIG1vZGUgdG8gYmVuZWZpdCBmcm9tIGNhY2hlCiAJCQkgICAgIDs7IHdpdGhvdXQgcmVjdXJy aW5nIG5lZWRsZXNzbHkuCiAJCQkgICAgIChsZXQgKChtYWpvci1tb2RlICdvcmctbW9kZSkpCi0J CQkgICAgICAgKG9yZy0tc2V0dXAtY29sbGVjdC1rZXl3b3JkcwotCQkJCXJlZ2V4cCAoY29ucyBm IGZpbGVzKSBhbGlzdCkpKSkpKSkpKSkpKSkpKQorCQkJICAgICAgIChvcmctY29sbGVjdC1rZXl3 b3JkcworCQkJCXJlZ2V4cCAoY29ucyBmIGZpbGVzKSBhbGlzdCkpKSkpKSkpCisJICAgICAgKHQK KwkgICAgICAgKHB1c2ggKGNvbnMgKG1ha2Utc3ltYm9sIChkb3duY2FzZSBrZXkpKSB2YWx1ZSkg YWxpc3QpKSkpKSkpKSkKICAgYWxpc3QpCiAKIChkZWZ1biBvcmctdGFnLXN0cmluZy10by1hbGlz dCAocykKQEAgLTQ4NDMsNyArNDg1MSw3IEBAIFRoZSBmb2xsb3dpbmcgY29tbWFuZHMgYXJlIGF2 YWlsYWJsZToKICAgICAgKHZjb25jYXQgKG1hcGNhciAobGFtYmRhIChjKSAobWFrZS1nbHlwaC1j b2RlIGMgJ29yZy1lbGxpcHNpcykpCiAJCSAgICAgIG9yZy1lbGxpcHNpcykpKQogICAgIChzZXRx IGJ1ZmZlci1kaXNwbGF5LXRhYmxlIG9yZy1kaXNwbGF5LXRhYmxlKSkKLSAgKG9yZy1zZXQtcmVn ZXhwcy1hbmQtb3B0aW9ucykKKyAgKG9yZy1zZXQtcmVnZXhwcy1hbmQta2V5d29yZHMpCiAgIChv cmctc2V0LWZvbnQtbG9jay1kZWZhdWx0cykKICAgKHdoZW4gKGFuZCBvcmctdGFnLWZhY2VzIChu b3Qgb3JnLXRhZ3Mtc3BlY2lhbC1mYWNlcy1yZSkpCiAgICAgOzsgdGFnIGZhY2VzIHNldCBvdXRz aWRlIGN1c3RvbWl6ZS4uLi4gZm9yY2UgaW5pdGlhbGl6YXRpb24uCkBAIC05NzIyLDEzICs5NzMw LDYgQEAga2V5d29yZHMgcmVsYXRpdmUgdG8gZWFjaCByZWdpc3RlcmVkIGV4cG9ydCBiYWNrLWVu ZC4iCiAJOzsgQmFjay1lbmQgb3B0aW9ucy4KIAkocHVzaCAobnRoIDEgb3B0aW9uLWVudHJ5KSBr ZXl3b3JkcykpKSkpCiAKLShkZWZjb25zdCBvcmctb3B0aW9ucy1rZXl3b3JkcwotICAnKCJBUkNI SVZFOiIgIkFVVEhPUjoiICJCSU5EOiIgIkNBVEVHT1JZOiIgIkNPTFVNTlM6IiAiQ1JFQVRPUjoi ICJEQVRFOiIKLSAgICAiREVTQ1JJUFRJT046IiAiRFJBV0VSUzoiICJFTUFJTDoiICJFWENMVURF X1RBR1M6IiAiRklMRVRBR1M6IiAiSU5DTFVERToiCi0gICAgIklOREVYOiIgIktFWVdPUkRTOiIg IkxBTkdVQUdFOiIgIk1BQ1JPOiIgIk9QVElPTlM6IiAiUFJPUEVSVFk6IgotICAgICJQUklPUklU SUVTOiIgIlNFTEVDVF9UQUdTOiIgIlNFUV9UT0RPOiIgIlNFVFVQRklMRToiICJTVEFSVFVQOiIg IlRBR1M6IgotICAgICJUSVRMRToiICJUT0RPOiIgIlRZUF9UT0RPOiIgIlNFTEVDVF9UQUdTOiIg IkVYQ0xVREVfVEFHUzoiKSkKLQogKGRlZmN1c3RvbSBvcmctc3RydWN0dXJlLXRlbXBsYXRlLWFs aXN0CiAgICcoKCJhIiAuICJleHBvcnQgYXNjaWkiKQogICAgICgiYyIgLiAiY2VudGVyIikKQEAg LTE1ODcwLDcgKzE1ODcxLDcgQEAgV2hlbiBhIGJ1ZmZlciBpcyB1bm1vZGlmaWVkLCBpdCBpcyBq dXN0IGtpbGxlZC4gIFdoZW4gbW9kaWZpZWQsIGl0IGlzIHNhdmVkCiAJICAgICAgKG9yZy1jaGVj ay1hZ2VuZGEtZmlsZSBmaWxlKQogCSAgICAgIChzZXQtYnVmZmVyIChvcmctZ2V0LWFnZW5kYS1m aWxlLWJ1ZmZlciBmaWxlKSkpCiAJICAgICh3aWRlbikKLQkgICAgKG9yZy1zZXQtcmVnZXhwcy1h bmQtb3B0aW9ucyAndGFncy1vbmx5KQorCSAgICAob3JnLXNldC1yZWdleHBzLWFuZC1rZXl3b3Jk cyAndGFncy1vbmx5KQogCSAgICAoc2V0cSBwb3MgKHBvaW50KSkKIAkgICAgKG9yIChtZW1xICdj YXRlZ29yeSBvcmctYWdlbmRhLWlnbm9yZS1wcm9wZXJ0aWVzKQogCQkob3JnLXJlZnJlc2gtY2F0 ZWdvcnktcHJvcGVydGllcykpCkBAIC0yMTE1NiwxMyArMjExNTcsMTEgQEAgbW9kaWZpZWQuIgog CQkgICAgICAob3JnLWRvLXJlbW92ZS1pbmRlbnRhdGlvbikpKSkpKSkpCiAgICAgKGZ1bmNhbGwg dW5pbmRlbnQtdHJlZSAob3JnLWVsZW1lbnQtY29udGVudHMgcGFyc2UtdHJlZSkpKSkKIAotKGRl ZnVuIG9yZy1tYWtlLW9wdGlvbnMtcmVnZXhwIChrd2RzICZvcHRpb25hbCBleHRyYSkKKyhkZWZ1 biBvcmctbWFrZS1rZXl3b3JkLXJlZ2V4cCAoa3dkcykKICAgIk1ha2UgYSByZWd1bGFyIGV4cHJl c3Npb24gZm9yIGtleXdvcmQgbGluZXMuCi1LV0RTIGlzIGEgbGlzdCBvZiBrZXl3b3JkcywgYXMg c3RyaW5ncy4gIE9wdGlvbmFsIGFyZ3VtZW50IEVYVFJBLAotd2hlbiBub24tbmlsLCBpcyBhIHJl Z2V4cCBtYXRjaGluZyBrZXl3b3JkcyBuYW1lcy4iCitLV0RTIGlzIGEgbGlzdCBvZiBrZXl3b3Jk cywgYXMgc3RyaW5ncy4iCiAgIChjb25jYXQgIl5bIFx0XSojXFwrXFwoIgogCSAgKHJlZ2V4cC1v cHQga3dkcykKLQkgIChhbmQgZXh0cmEgKGNvbmNhdCAoYW5kIGt3ZHMgIlxcfCIpIGV4dHJhKSkK IAkgICJcXCk6WyBcdF0qXFwoLipcXCkiKSkKIAogDApkaWZmIC0tZ2l0IGEvbGlzcC9veC5lbCBi L2xpc3Avb3guZWwKaW5kZXggMWI1NzlmNTBlLi41OTJjYjkxMDAgMTAwNjQ0Ci0tLSBhL2xpc3Av b3guZWwKKysrIGIvbGlzcC9veC5lbApAQCAtMTc0MSwxMyArMTc0MSwxNSBAQCBSZXR1cm4gdXBk YXRlZCBwbGlzdC4iCiBEQVRBIGlzIHBhcnNlZCB0cmVlIGFzIHJldHVybmVkIGJ5IGBvcmctZWxl bWVudC1wYXJzZS1idWZmZXInLgogT1BUSU9OUyBpcyBhIHBsaXN0IGhvbGRpbmcgZXhwb3J0IG9w dGlvbnMuIgogICAoY2F0Y2ggJ2V4aXQKLSAgICAobGV0ICgobWluLWxldmVsIDEwMDAwKSkKLSAg ICAgIChkb2xpc3QgKGRhdHVtIChvcmctZWxlbWVudC1jb250ZW50cyBkYXRhKSkKLQkod2hlbiAo YW5kIChlcSAob3JnLWVsZW1lbnQtdHlwZSBkYXR1bSkgJ2hlYWRsaW5lKQotCQkgICAobm90IChv cmctZWxlbWVudC1wcm9wZXJ0eSA6Zm9vdG5vdGUtc2VjdGlvbi1wIGRhdHVtKSkKLQkJICAgKG5v dCAobWVtcSBkYXR1bSAocGxpc3QtZ2V0IG9wdGlvbnMgOmlnbm9yZS1saXN0KSkpKQotCSAgKHNl dHEgbWluLWxldmVsIChtaW4gKG9yZy1lbGVtZW50LXByb3BlcnR5IDpsZXZlbCBkYXR1bSkgbWlu LWxldmVsKSkKLQkgICh3aGVuICg9IG1pbi1sZXZlbCAxKSAodGhyb3cgJ2V4aXQgMSkpKSkKKyAg ICAobGV0ICgoaWdub3JlLWxpc3QgKHBsaXN0LWdldCBvcHRpb25zIDppZ25vcmUtbGlzdCkpCisg ICAgICAgICAgKG1pbi1sZXZlbCAxMDAwMCkpCisgICAgICAob3JnLWVsZW1lbnQtbWFwIGRhdGEg J2hlYWRsaW5lCisgICAgICAgIChsYW1iZGEgKGhsKQorICAgICAgICAgICh3aGVuIChhbmQKKyAg ICAgICAgICAgICAgICAgKG5vdCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmZvb3Rub3RlLXNlY3Rp b24tcCBobCkpCisgICAgICAgICAgICAgICAgIChub3QgKG1lbXEgaGwgaWdub3JlLWxpc3QpKSkK KyAgICAgICAgICAgIChzZXRxIG1pbi1sZXZlbCAobWluIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6 bGV2ZWwgaGwpIG1pbi1sZXZlbCkpCisgICAgICAgICAgICAod2hlbiAoPSBtaW4tbGV2ZWwgMSkg KHRocm93ICdleGl0IDEpKSkpKQogICAgICAgOzsgSWYgbm8gaGVhZGxpbmUgd2FzIGZvdW5kLCBm b3IgdGhlIHNha2Ugb2YgY29uc2lzdGVuY3ksIHNldAogICAgICAgOzsgbWluaW11bSBsZXZlbCB0 byAxIG5vbmV0aGVsZXNzLgogICAgICAgKGlmICg9IG1pbi1sZXZlbCAxMDAwMCkgMSBtaW4tbGV2 ZWwpKSkpCkBAIC0xOTM0LDcgKzE5MzYsOCBAQCBub3QgZXhwb3J0ZWQuIgogSU5GTyBpcyBhIHBs aXN0IGNvbnRhaW5pbmcgZXhwb3J0IGRpcmVjdGl2ZXMuIgogICAobGV0ICgodHlwZSAob3JnLWVs ZW1lbnQtdHlwZSBibG9iKSkpCiAgICAgOzsgUmV0dXJuIGNvbnRlbnRzIG9ubHkgZm9yIGNvbXBs ZXRlIHBhcnNlIHRyZWVzLgotICAgIChpZiAoZXEgdHlwZSAnb3JnLWRhdGEpIChsYW1iZGEgKF9k YXR1bSBjb250ZW50cyBfaW5mbykgY29udGVudHMpCisgICAgKGlmIChtZW1iZXIgdHlwZSAnKG9y Zy1kYXRhIGRvY3VtZW50KSkKKwkobGFtYmRhIChfZGF0dW0gY29udGVudHMgX2luZm8pIGNvbnRl bnRzKQogICAgICAgKGxldCAoKHRyYW5zY29kZXIgKGNkciAoYXNzcSB0eXBlIChwbGlzdC1nZXQg aW5mbyA6dHJhbnNsYXRlLWFsaXN0KSkpKSkKIAkoYW5kIChmdW5jdGlvbnAgdHJhbnNjb2Rlcikg dHJhbnNjb2RlcikpKSkpCiAKQEAgLTI3NTUsOSArMjc1OCwxMSBAQCBmcm9tIHRyZWUuIgogICAg IDs7IElmIGEgc2VsZWN0IHRhZyBpcyBhY3RpdmUsIGFsc28gaWdub3JlIHRoZSBzZWN0aW9uIGJl Zm9yZSB0aGUKICAgICA7OyBmaXJzdCBoZWFkbGluZSwgaWYgYW55LgogICAgICh3aGVuIHNlbGVj dGVkCi0gICAgICAobGV0ICgoZmlyc3QtZWxlbWVudCAoY2FyIChvcmctZWxlbWVudC1jb250ZW50 cyBkYXRhKSkpKQotCSh3aGVuIChlcSAob3JnLWVsZW1lbnQtdHlwZSBmaXJzdC1lbGVtZW50KSAn c2VjdGlvbikKLQkgIChvcmctZWxlbWVudC1leHRyYWN0LWVsZW1lbnQgZmlyc3QtZWxlbWVudCkp KSkKKyAgICAgIChvcmctZWxlbWVudC1tYXAgZGF0YSAnZG9jdW1lbnQKKwkobGFtYmRhIChkb2N1 bWVudCkKKwkgIChsZXQgKChmaXJzdC1lbGVtZW50IChjYXIgKG9yZy1lbGVtZW50LWNvbnRlbnRz IGRvY3VtZW50KSkpKQorCSAgICAod2hlbiAoZXEgKG9yZy1lbGVtZW50LXR5cGUgZmlyc3QtZWxl bWVudCkgJ3NlY3Rpb24pCisJICAgICAgKG9yZy1lbGVtZW50LWV4dHJhY3QtZWxlbWVudCBmaXJz dC1lbGVtZW50KSkpKSkpCiAgICAgOzsgUHJ1bmUgdHJlZSBhbmQgY29tbXVuaWNhdGlvbiBjaGFu bmVsLgogICAgIChmdW5jYWxsIHdhbGstZGF0YSBkYXRhKQogICAgIChkb2xpc3QgKGVudHJ5IChh cHBlbmQKQEAgLTMwNDAsNyArMzA0NSw3IEBAIFJldHVybiBjb2RlIGFzIGEgc3RyaW5nLiIKIAkJ CQlwYXJzZWQta2V5d29yZHMpCiAJIDs7IFJlZnJlc2ggYnVmZmVyIHByb3BlcnRpZXMgYW5kIHJh ZGlvIHRhcmdldHMgYWZ0ZXIgcHJldmlvdXMKIAkgOzsgcG90ZW50aWFsbHkgaW52YXNpdmUgY2hh bmdlcy4KLQkgKG9yZy1zZXQtcmVnZXhwcy1hbmQtb3B0aW9ucykKKwkgKG9yZy1zZXQtcmVnZXhw cy1hbmQta2V5d29yZHMpCiAJIChvcmctdXBkYXRlLXJhZGlvLXRhcmdldC1yZWdleHApCiAJIDs7 ICBQb3NzaWJseSBleGVjdXRlIEJhYmVsIGNvZGUuICBSZS1ydW4gYSBtYWNybyBleHBhbnNpb24K IAkgOzsgIHNwZWNpZmljYWxseSBmb3Ige3t7cmVzdWx0c319fSBzaW5jZSBpbmxpbmUgc291cmNl IGJsb2NrcwpAQCAtMzA0OSw3ICszMDU0LDcgQEAgUmV0dXJuIGNvZGUgYXMgYSBzdHJpbmcuIgog CSAod2hlbiBvcmctZXhwb3J0LXVzZS1iYWJlbAogCSAgIChvcmctYmFiZWwtZXhwLXByb2Nlc3Mt YnVmZmVyKQogCSAgIChvcmctbWFjcm8tcmVwbGFjZS1hbGwgJygoInJlc3VsdHMiIC4gIiQxIikp IHBhcnNlZC1rZXl3b3JkcykKLQkgICAob3JnLXNldC1yZWdleHBzLWFuZC1vcHRpb25zKQorCSAg IChvcmctc2V0LXJlZ2V4cHMtYW5kLWtleXdvcmRzKQogCSAgIChvcmctdXBkYXRlLXJhZGlvLXRh cmdldC1yZWdleHApKQogCSA7OyBSdW4gbGFzdCBob29rIHdpdGggY3VycmVudCBiYWNrLWVuZCdz IG5hbWUgYXMgYXJndW1lbnQuCiAJIDs7IFVwZGF0ZSBidWZmZXIgcHJvcGVydGllcyBhbmQgcmFk aW8gdGFyZ2V0cyBvbmUgbGFzdCB0aW1lCkBAIC0zMDU4LDcgKzMwNjMsNyBAQCBSZXR1cm4gY29k ZSBhcyBhIHN0cmluZy4iCiAJIChzYXZlLWV4Y3Vyc2lvbgogCSAgIChydW4taG9vay13aXRoLWFy Z3MgJ29yZy1leHBvcnQtYmVmb3JlLXBhcnNpbmctaG9vawogCQkJICAgICAgIChvcmctZXhwb3J0 LWJhY2tlbmQtbmFtZSBiYWNrZW5kKSkpCi0JIChvcmctc2V0LXJlZ2V4cHMtYW5kLW9wdGlvbnMp CisJIChvcmctc2V0LXJlZ2V4cHMtYW5kLWtleXdvcmRzKQogCSAob3JnLXVwZGF0ZS1yYWRpby10 YXJnZXQtcmVnZXhwKQogCSA7OyBVcGRhdGUgY29tbXVuaWNhdGlvbiBjaGFubmVsIHdpdGggZW52 aXJvbm1lbnQuCiAJIChzZXRxIGluZm8KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvbGlzcC90ZXN0LW9y Zy1lbGVtZW50LmVsIGIvdGVzdGluZy9saXNwL3Rlc3Qtb3JnLWVsZW1lbnQuZWwKaW5kZXggZjJh YjM4MDMxLi4yYTE3MTYxMzQgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvbGlzcC90ZXN0LW9yZy1lbGVt ZW50LmVsCisrKyBiL3Rlc3RpbmcvbGlzcC90ZXN0LW9yZy1lbGVtZW50LmVsCkBAIC0xOTgsNyAr MTk4LDcgQEAgU29tZSBvdGhlciB0ZXh0CiAgICAoZXF1YWwgJyhvcmctZGF0YSBuaWwpCiAJICAo b3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQgIiogSGVhZGxpbmUiCiAJICAgIChsZXQqICgodHJlZSAo b3JnLWVsZW1lbnQtcGFyc2UtYnVmZmVyKSkKLQkJICAgKGVsZW1lbnQgKG9yZy1lbGVtZW50LW1h cCB0cmVlICdoZWFkbGluZSAnaWRlbnRpdHkgbmlsIHQpKSkKKwkJICAgKGVsZW1lbnQgKG9yZy1l bGVtZW50LW1hcCB0cmVlICdkb2N1bWVudCAnaWRlbnRpdHkgbmlsIHQpKSkKIAkgICAgICAob3Jn LWVsZW1lbnQtZXh0cmFjdC1lbGVtZW50IGVsZW1lbnQpCiAJICAgICAgdHJlZSkpKSkKICAgOzsg RXh0cmFjdCBhbiBlbGVtZW50LgpAQCAtMzY1Myw3ICszNjUzLDcgQEAgVGV4dAogCSAgICAgICIq IEgxXG4qKiBIMlxuIytCRUdJTl9DRU5URVJcbipib2xkPHBvaW50PipcbiMrRU5EX0NFTlRFUiIK IAkgICAgKG1hcGNhciAjJ2NhciAob3JnLWVsZW1lbnQtbGluZWFnZSAob3JnLWVsZW1lbnQtY29u dGV4dCkpKSkpKQogICAoc2hvdWxkCi0gICAoZXF1YWwgJyhwYXJhZ3JhcGggY2VudGVyLWJsb2Nr IHNlY3Rpb24gaGVhZGxpbmUgaGVhZGxpbmUgb3JnLWRhdGEpCisgICAoZXF1YWwgJyhwYXJhZ3Jh cGggY2VudGVyLWJsb2NrIHNlY3Rpb24gaGVhZGxpbmUgaGVhZGxpbmUgZG9jdW1lbnQgb3JnLWRh dGEpCiAJICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQKIAkgICAgICAiKiBIMVxuKiogSDJcbiMr QkVHSU5fQ0VOVEVSXG4qYm9sZDxwb2ludD4qXG4jK0VORF9DRU5URVIiCiAJICAgIChtYXBjYXIg IydjYXIKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvbGlzcC90ZXN0LW9yZy5lbCBiL3Rlc3RpbmcvbGlz cC90ZXN0LW9yZy5lbAppbmRleCAyMTVkOGZkYjAuLjAxZTk2NWVhNyAxMDA2NDQKLS0tIGEvdGVz dGluZy9saXNwL3Rlc3Qtb3JnLmVsCisrKyBiL3Rlc3RpbmcvbGlzcC90ZXN0LW9yZy5lbApAQCAt MjA5NSw3ICsyMDk1LDcgQEAgU0NIRURVTEVEOiA8MjAxNC0wMy0wNCB0dWUuPiIKIDs7OyBLZXl3 b3JkcwogCiAoZXJ0LWRlZnRlc3QgdGVzdC1vcmcvc2V0LXJlZ2V4cHMtYW5kLW9wdGlvbnMgKCkK LSAgIlRlc3QgYG9yZy1zZXQtcmVnZXhwcy1hbmQtb3B0aW9ucycgc3BlY2lmaWNhdGlvbnMuIgor ICAiVGVzdCBgb3JnLXNldC1yZWdleHBzLWFuZC1rZXl3b3Jkcycgc3BlY2lmaWNhdGlvbnMuIgog ICA7OyBUQUdTIGtleXdvcmQuCiAgIChzaG91bGQKICAgIChlcXVhbCAnKCgiQSIpKQotLSAKMi4x Ny4xCgo= --_003_HE1PR02MB30335B0720ABF7B9780A305FDABC0HE1PR02MB3033eurp_ Content-Type: application/octet-stream; name="0002-Org-document-property-drawers.patch" Content-Description: 0002-Org-document-property-drawers.patch Content-Disposition: attachment; filename="0002-Org-document-property-drawers.patch"; size=50647; creation-date="Sat, 31 Aug 2019 18:45:20 GMT"; modification-date="Sat, 31 Aug 2019 18:45:20 GMT" Content-Transfer-Encoding: base64 RnJvbSA1OWZhOTdlZmZmMmI4ZWU1MGJkYTU1ZTYzOTAzY2Y3ZGIxZjRhZjJiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/R3VzdGF2PTIwV2lrc3RyPUMzPUI2bT89IDxn dXN0YXZAd2hpbC5zZT4KRGF0ZTogU3VuLCAyNiBNYXkgMjAxOSAyMjoxMzowOSArMDIwMApTdWJq ZWN0OiBbUEFUQ0ggMi8yXSBPcmcgZG9jdW1lbnQgcHJvcGVydHktZHJhd2VycwoKKiBkb2Mvb3Jn LW1hbnVhbC5vcmcKCkRlc2NyaWJlIHRoZSBuZXcgcG9zc2liaWxpdHkgdG8gZGVmaW5lIHByb3Bl cnR5LWJsb2NrcyBvbiBkb2N1bWVudApsZXZlbCwgaW4gYWRkaXRpb24gdG8gYXQgaGVhZGxpbmUg bGV2ZWwuCgoqIGV0Yy9PUkctTkVXUwoKTWVudGlvbiB0aGUgY2hhbmdlCgoqIGxpc3Avb3JnLmVs CgpDb2RlIGlzIG1vZGlmaWVkIHRvIHdvcmsgd2l0aCB0aGUgY29uY2VwdCBvZiBhIG5vZGUtbGV2 ZWwgb2YgMCBmb3IKYWxsIHRleHQgYmVmb3JlIHRoZSBmaXJzdCBoZWFkbGluZS4gIFByb3BlcnR5 IGRyYXdlcnMgb24KZG9jdW1lbnQtbGV2ZWwsIGkuZSBub2RlLWxldmVsIDAsIHdvcmsgZXhhY3Rs eSB0aGUgc2FtZSBhcyBwcm9wZXJ0eQpkcmF3ZXJzIG9uIGhlYWRsaW5lcy4KClByb3BlcnR5IGRy YXdlcnMgb24gZG9jdW1lbnQgbGV2ZWwgY2FuIChvbmx5KSBiZSBkZWZpbmVkIGF0IHRoZSB0b3Ag b2YKYSBkb2N1bWVudC4KCioqIChSZW5hbWVkKSBvcmctZmlsZS1wcm9wZXJ0aWVzIC0+IG9yZy1r ZXl3b3JkLXByb3BlcnRpZXMKRHVlIHRvIHRoZSBmYWN0IHRoYXQgcHJvcGVydGllcyBjYW4gYmUg ZGVmaW5lZCBmb3IgdGhlIHdob2xlIGRvY3VtZW50CnVzaW5nIHByb3BlcnR5IGRyYXdlcnMgdGhp cyBsb2NhbCB2YXJpYWJsZSBuZWVkcyBhIHJlbmFtZSB0byBtYWtlIGl0cwpuYW1lIGxlc3MgYW1i aWdvdXMuCgoqKiAoTW9kaWZpZWQpIG9yZy1yZWZyZXNoLXByb3BlcnRpZXMKTWFkZSB0byB3b3Jr IGFsc28gYmVmb3JlIGZpcnN0IGhlYWRsaW5lLgoKKiogKE1vZGlmaWVkKSBvcmctcmVmcmVzaC1w cm9wZXJ0eQpNYWRlIHRvIHdvcmsgYWxzbyBiZWZvcmUgZmlyc3QgaGVhZGxpbmUuCgoqKiAoTW9k aWZpZWQpIG9yZy1yZWZyZXNoLWNhdGVnb3J5LXByb3BlcnRpZXMKTWFkZSB0byB3b3JrIGJlZm9y ZSBmaXJzdCBoZWFkbGluZSBkdWUgdG8gcHJvcGVydHkgZHJhd2VycyBiZWluZwphdmFpbGFibGUg dGhlcmUgbm93IQoKKiogKE1vZGlmaWVkKSBvcmctZ2V0LXByb3BlcnR5LWJsb2NrCk1ha2UgaXQg d29yayBhbHNvIGJlZm9yZSBmaXJzdCBoZWFkbGluZS4KCioqIChOZXcpIG9yZy1hdC1wcm9wZXJ0 eS1ibG9jay1wCk5ldyBmdW5jdGlvbiB0byB2YWxpZGF0ZSBpZiBwb2ludCBpcyBhdCB0aGUgc3Rh cnQgb2YgYSBwcm9wZXJ0eQpibG9jay4KCioqIChNb2RpZmllZCkgb3JnLWVudHJ5LXByb3BlcnRp ZXMKTWFrZSBpdCB3b3JrIGJlZm9yZSBmaXJzdCBoZWFkbGluZQoKKiogKFJlbmFtZWQpIG9yZy1w cm9wZXJ0eS1nbG9iYWwtdmFsdWUgLT4gb3JnLXByb3BlcnR5LWdsb2JhbC1vci1rZXl3b3JkLXZh bHVlClJlbmFtZWQgdG8gbWFrZSBpdHMgbmFtZSBtYXRjaCBpdHMgZnVuY3Rpb25hbGl0eS4KCioq IChNb2RpZmllZCkgb3JnLWVudHJ5LWdldC13aXRoLWluaGVyaXRhbmNlCk1ha2UgaXQgd29yayBh bHNvIGJlZm9yZSBmaXJzdCBoZWFkbGluZS4KCioqIChNb2RpZmllZCkgb3JnLWVudHJ5LXB1dApN YWtlIGl0IHdvcmsgYWxzbyBiZWZvcmUgZmlyc3QgaGVhZGxpbmUuCgoqKiAoTW9kaWZpZWQpIG9y Zy1pbnNlcnQtcHJvcGVydHktZHJhd2VyCk1ha2UgaXQgd29yayBhbHNvIGJlZm9yZSBmaXJzdCBo ZWFkbGluZS4KCioqIChOZXcpIG9yZy1iYWNrLXRvLWhlYWRpbmctb3ItcG9pbnQtbWluCk5ldyBm dW5jdGlvbiB0byBtYWtlIGEgZG9jdW1lbnQgd29yayBhcyBhIGxldmVsIDAgbm9kZSBpbiB0aGUg b3V0bGluZS4KCioqIChOZXcpIG9yZy1hdC1rZXl3b3JkLXAKUHJlZGljYXRlIGZ1bmN0aW9uIHRv IGFuc3dlciB0byBpZiB3ZSdyZSBjdXJyZW50bHkgYXQgYSBrZXl3b3JkIGxpbmUKb3Igbm90LgoK KiogKE5ldykgb3JnLXVwLWhlYWRpbmctb3ItcG9pbnQtbWluCk5ldyBmdW5jdGlvbiB0byBtYWtl IGEgZG9jdW1lbnQgd29yayBhcyBhIGxldmVsIDAgbm9kZSBpbiB0aGUgb3V0bGluZS4KCioqIChN b2RpZmllZCkgb3JnLWVuZC1vZi1zdWJ0cmVlCk1ha2UgaXQgd29yayBmb3IgdGhlIHdob2xlIGJ1 ZmZlciwgbm90IGp1c3QgaW5zaWRlIGhlYWRsaW5lcy4gVGhlIGVuZApvZiB0aGUgYnVmZmVyICJz dWJ0cmVlIiBpcyB0aGUgZW5kIG9mIHRoZSBmaWxlLgoKKiBsaXNwL29yZy1lbGVtZW50LmVsCgpB ZGQgcHJvcGVydGllcyBib3RoIGZyb20gcHJvcGVydHkgZHJhd2VyIGFuZCBwcm9wZXJ0eSBrZXl3 b3JkcyB0bwpkb2N1bWVudCBlbGVtZW50LiBEcmF3ZXIgaGFzIHByZWNlZGVuY2UgaWYgcHJvcGVy dGllcyBhcmUgZGVmaW5lZCBpbgpib3RoLgoKQWRkIHBvc3QtYmxhbmsgcHJvcGVydHkgdG8gZG9j dW1lbnQgZWxlbWVudCAgcG9zdC1lbGVtZW50IGlzIGFjY29yZGluZwp0byBkdWN1bWVudGF0aW9u IGEgcHJvcGVydHkgdGhhdCBhbGwgZWxlbWVudHMgc2hvdWxkIGhhdmUuCgoqKiAobmV3KSBvcmct ZWxlbWVudC0tZ2V0LWRvY3VtZW50LXByb3BlcnRpZXMKQ29sbGVjdCBwcm9wZXJ0aWVzIGZvciB3 aG9sZSBkb2N1bWVudHMgZnJvbSB0aGUgcHJvcGVydHkga2V5d29yZHMgYW5kCmZyb20gdGhlIGRv Y3VtZW50IHByb3BlcnR5IGRyYXdlci4KCioqIChtb2RpZmllZCkgb3JnLWVsZW1lbnQtZG9jdW1l bnQtcGFyc2VyCkFkZCBkb2N1bWVudCBwcm9wZXJ0aWVzIHRvIHRoZSBkb2N1bWVudCBwYXJzZXIu CgoqKiAocmVuYW1lZCkgb3JnLWVsZW1lbnQtLWdldC1ub2RlLXByb3BlcnRpZXMgLT4KICAgb3Jn LWVsZW1lbnQtLWdldC1oZWFkbGluZS1wcm9wZXJ0aWVzCldpdGggdGhlIGludHJvZHVjdGlvbiBv ZiBkb2N1bWVudCBwcm9wZXJ0eSBkcmF3ZXJzIHdoaWxlIHN0aWxsCm1haW50YWluaW5nIHRoZSBj b25jZXB0IG9mIGBub2RlLXByb3BlcnR5JyBmb3IgYSBwcm9wZXJ0eSB3aXRoaW4gYQpwcm9wZXJ0 eSBkcmF3ZXIsIHRoZSBmdW5jdGlvbiB0byBnZXQgcHJvcGVydGllcyBmcm9tIGhlYWRsaW5lcwpw cm9wZXJ0eSBkcmF3ZXJzIG5lZWQgdG8gYmUgcmVuYW1lZCB0byBub3QgYmUgY29uZnVzaW5nLgoK KEkgc3VwcG9zZSB0aGUgY29uY2VwdCBvZiBgbm9kZS1wcm9wZXJ0eScgY291bGQgYmUgcmVtb3Zl ZCBpbiBmYXZvdXIKb2YgdGhlIG1vcmUgZ2VuZXJhbCBgcHJvcGVydHknIGNvbmNlcHQuICBJIGNv dWxkbid0IGNhbGN1bGF0ZSB0aGUKc2lkZS1lZmZlY3RzIG9mIGRvaW5nIHRoYXQgdGhvdWdoLiAg QW5kIGl0IHdvdWxkIG1lYW4gbWFraW5nIGNoYW5nZXMgaW4KZmFyIG1vcmUgZmlsZXMpCgoqKiAo bW9kaWZpZWQpIG9yZy1lbGVtZW50LS1jdXJyZW50LWVsZW1lbnQKQ2FuIG5vdyBkZXRlY3QgcHJv cGVydHktYmxvY2tzIGJlZm9yZSBmaXJzdCBoZWFkbGluZSBhY2NvcmRpbmcgdG8gaXQncwpwb3Np dGlvbmFsIHJ1bGVzLgoKKiBsaXNwL29yZy1hdHRhY2guZWwKCioqIChNb2RpZmllZCkgb3JnLWF0 dGFjaApNYWtlIGl0IHBvc3NpYmxlIHRvIGNhbGwgdGhlIGF0dGFjaG1lbnQgZGlzcGF0Y2hlciAo b3JnLWF0dGFjaCkgYWxzbwpiZWZvcmUgdGhlIGZpcnN0IGhlYWRsaW5lLCBzaW5jZSBkb2N1bWVu dCBwcm9wZXJ0eSBkcmF3ZXJzIG1ha2UKYXR0YWNobWVudHMgcG9zc2libGUgZm9yIHRoZSB3aG9s ZSBkb2N1bWVudCBub3cuCgoqIGxpc3Avb3JnLWNhcHR1cmUuZWwKCk1vZGlmaWVkIG9ubHkgZHVl IHRvIHJlbmFtZSBvZiBmdW5jdGlvbiBpbiBvcmcuZWwuCgoqIHRlc3RpbmcvbGlzcC90ZXN0LW9y Zy5lbAoKQWRkIHRlc3RzIHRvIG1ha2Ugc3VyZSB0aGUgc3BlY2lmaWNhdGlvbiBvZiBkb2N1bWVu dC1sZXZlbApwcm9wZXJ0eS1ibG9ja3MgY2FuIGJlIG1haW50YWluZWQgb3ZlciB0aW1lIQoKQWRk aXRpb25zIHRvIGV4aXN0aW5nOgotIC9pbnNlcnQtcHJvcGVydHktZHJhd2VyCi0gL3NldC1wcm9w ZXJ0eQotIC9kZWxldGUtcHJvcGVydHkKLSAvZGVsZXRlLXByb3BlcnR5LWdsb2JhbGx5CgpBZGRl ZDoKLSAvYXQtcHJvcGVydHktcAotIC9hdC1wcm9wZXJ0eS1ibG9jay1wCi0gL2dldC1wcm9wZXJ0 eS1ibG9jawotIC9lbnRyeS1nZXQKLSAvcmVmcmVzaC1wcm9wZXJ0aWVzCgoqIHRlc3RpbmcvZXhh bXBsZXMvcHJvcGVydHktaW5oZXJpdGFuY2Uub3JnCgpTd2l0Y2ggZnJvbSBwcm9wZXJ0eS1rZXl3 b3JkcyB0byBhIHByb3BlcnR5LWRyYXdlciBpbiB0aGUgdGVzdGZpbGUuCkZ1bmN0aW9uYWxpdHkg c2hvdWxkIGJlIHRoZSBzYW1lLCBidXQgbm93IHVzaW5nIGEgZG9jdW1lbnQgZHJhd2VyCmluc3Rl YWQgb2YgcHJvcGVydHkta2V5d29yZHMuCgpSZWFzb24gZm9yIHN3aXRjaGluZyBpcyB0aGF0IEkn ZCBsaWtlIHVzIHRvIHNsb3dseSBkZXByaWNhdGUKcHJvcGVydHkta2V5d29yZHMuCgoqIHRlc3Rp bmcvbGlzcC90ZXN0LW9yZy1lbGVtZW50LmVsCgpBZGRpdGlvbiB0byBleGlzdGluZyB0ZXN0IGRl ZmluaXRpb25zOgotIC9ub2RlLXByb3BlcnR5Ci0gL3Byb3BlcnR5LWRyYXdlci1wYXJzZXIKCiog Y29udHJpYi9saXNwL294LXRhc2tqdWdnbGVyLmVsCgpBIGNvbW1lbnQgaXMgbW9kaWZpZWQgb25s eSBkdWUgdG8gcmVuYW1lIG9mIGZ1bmN0aW9uIGluIG9yZy5lbC4KLS0tCiBjb250cmliL2xpc3Av b3gtdGFza2p1Z2dsZXIuZWwgICAgICAgICAgICB8ICAgMiArLQogZG9jL29yZy1tYW51YWwub3Jn ICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjcgKy0KIGV0Yy9PUkctTkVXUyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICA4ICsKIGxpc3Avb3JnLWF0dGFjaC5lbCAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAyICstCiBsaXNwL29yZy1jYXB0dXJlLmVsICAgICAgICAgICAgICAg ICAgICAgICB8ICAgNCArLQogbGlzcC9vcmctZWxlbWVudC5lbCAgICAgICAgICAgICAgICAgICAg ICAgfCAgNTUgKysrLQogbGlzcC9vcmcuZWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAyNjcgKysrKysrKysrKysrLS0tLS0tLQogdGVzdGluZy9leGFtcGxlcy9wcm9wZXJ0eS1pbmhl cml0YW5jZS5vcmcgfCAgIDYgKy0KIHRlc3RpbmcvbGlzcC90ZXN0LW9yZy1lbGVtZW50LmVsICAg ICAgICAgIHwgIDIxICsrCiB0ZXN0aW5nL2xpc3AvdGVzdC1vcmcuZWwgICAgICAgICAgICAgICAg ICB8IDMwNiArKysrKysrKysrKysrKysrKysrKystCiAxMCBmaWxlcyBjaGFuZ2VkLCA1NzYgaW5z ZXJ0aW9ucygrKSwgMTIyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvbGlzcC9v eC10YXNranVnZ2xlci5lbCBiL2NvbnRyaWIvbGlzcC9veC10YXNranVnZ2xlci5lbAppbmRleCAx NmE2YTNhNzQuLmJjOTBiOTNhNCAxMDA2NDQKLS0tIGEvY29udHJpYi9saXNwL294LXRhc2tqdWdn bGVyLmVsCisrKyBiL2NvbnRyaWIvbGlzcC9veC10YXNranVnZ2xlci5lbApAQCAtMTM3LDcgKzEz Nyw3IEBACiA7OyAgIDpFTkQ6CiA7OwogOzs7OyAqIFRPRE8KLTs7ICAgLSBMb29rIGF0IG9yZy1m aWxlLXByb3BlcnRpZXMsIG9yZy1nbG9iYWwtcHJvcGVydGllcyBhbmQKKzs7ICAgLSBMb29rIGF0 IG9yZy1rZXl3b3JkLXByb3BlcnRpZXMsIG9yZy1nbG9iYWwtcHJvcGVydGllcyBhbmQKIDs7ICAg ICBvcmctZ2xvYmFsLXByb3BlcnRpZXMtZml4ZWQKIDs7ICAgLSBXaGF0IGFib3V0IHByb3BlcnR5 IGluaGVyaXRhbmNlIGFuZCBvcmctcHJvcGVydHktaW5oZXJpdC1wPwogOzsgICAtIFVzZSBUWVBF X1RPRE8gYXMgYW4gd2F5IHRvIGFzc2lnbiByZXNvdXJjZXMKZGlmZiAtLWdpdCBhL2RvYy9vcmct bWFudWFsLm9yZyBiL2RvYy9vcmctbWFudWFsLm9yZwppbmRleCBlYjBhMWU5MzkuLjM4NTViOTU0 MyAxMDA2NDQKLS0tIGEvZG9jL29yZy1tYW51YWwub3JnCisrKyBiL2RvYy9vcmctbWFudWFsLm9y ZwpAQCAtNDk1MSw3ICs0OTUxLDcgQEAgd2l0aCBtYW55IGV4YW1wbGVzLCBzZWUgW1sqTWF0Y2hp bmcgdGFncyBhbmQgcHJvcGVydGllc11dLgogCiBBIHByb3BlcnR5IGlzIGEga2V5LXZhbHVlIHBh aXIgYXNzb2NpYXRlZCB3aXRoIGFuIGVudHJ5LiAgUHJvcGVydGllcwogY2FuIGJlIHNldCBzbyB0 aGV5IGFyZSBhc3NvY2lhdGVkIHdpdGggYSBzaW5nbGUgZW50cnksIHdpdGggZXZlcnkKLWVudHJ5 IGluIGEgdHJlZSwgb3Igd2l0aCBldmVyeSBlbnRyeSBpbiBhbiBPcmcgZmlsZS4KK2VudHJ5IGlu IGEgdHJlZSwgb3Igd2l0aCB0aGUgd2hvbGUgYnVmZmVyLgogCiBUaGVyZSBhcmUgdHdvIG1haW4g YXBwbGljYXRpb25zIGZvciBwcm9wZXJ0aWVzIGluIE9yZyBtb2RlLiAgRmlyc3QsCiBwcm9wZXJ0 aWVzIGFyZSBsaWtlIHRhZ3MsIGJ1dCB3aXRoIGEgdmFsdWUuICBJbWFnaW5lIG1haW50YWluaW5n CkBAIC01MDE1LDggKzUwMTUsMTMgQEAgZGlza3MgaW4gYSBib3ggbGlrZSB0aGlzOgogICA6RU5E OgogIytlbmRfZXhhbXBsZQogCi1JZiB5b3Ugd2FudCB0byBzZXQgcHJvcGVydGllcyB0aGF0IGNh biBiZSBpbmhlcml0ZWQgYnkgYW55IGVudHJ5IGluCi1hIGZpbGUsIHVzZSBhIGxpbmUgbGlrZToK K1Byb3BlcnRpZXMgY2FuIGJlIGluc2VydGVkIG9uIGJ1ZmZlciBsZXZlbC4gIFRoYXQgbWVhbnMg dGhleSBhcHBseQorYmVmb3JlIHRoZSBmaXJzdCBoZWFkbGluZSBhbmQgY2FuIGJlIGluaGVyaXRl ZCBieSBhbGwgZW50cmllcyBpbiBhCitmaWxlLiAgUHJvcGVydHkgYmxvY2tzIGRlZmluZWQgYmVm b3JlIGZpcnN0IGhlYWRsaW5lIG5lZWRzIHRvIGJlCitsb2NhdGVkIGF0IHRoZSB0b3Agb2YgdGhl IGJ1ZmZlciwgYWxsb3dpbmcgb25seSBjb21tZW50cyBhbmQga2V5d29yZHMKK2Fib3ZlLgorCitQ cm9wZXJ0aWVzIGNhbiBhbHNvIGJlIGRlZmluZWQgdXNpbmcgbGluZXMgbGlrZToKIAogIytjaW5k ZXg6IEBzYW1we19BTEx9IHN1ZmZpeCwgaW4gcHJvcGVydGllcwogIytjaW5kZXg6IEBzYW1we1BS T1BFUlRZfSwga2V5d29yZApAQCAtNTA4MSw3ICs1MDg2LDkgQEAgVGhlIGZvbGxvd2luZyBjb21t YW5kcyBoZWxwIHRvIHdvcmsgd2l0aCBwcm9wZXJ0aWVzOgogICAjK2ZpbmRleDogb3JnLWluc2Vy dC1kcmF3ZXIKICAgSW5zZXJ0IGEgcHJvcGVydHkgZHJhd2VyIGludG8gdGhlIGN1cnJlbnQgZW50 cnkuICBUaGUgZHJhd2VyIGlzCiAgIGluc2VydGVkIGVhcmx5IGluIHRoZSBlbnRyeSwgYnV0IGFm dGVyIHRoZSBsaW5lcyB3aXRoIHBsYW5uaW5nCi0gIGluZm9ybWF0aW9uIGxpa2UgZGVhZGxpbmVz LgorICBpbmZvcm1hdGlvbiBsaWtlIGRlYWRsaW5lcy4gIElmIGJlZm9yZSBmaXJzdCBoZWFkbGlu ZSB0aGUgZHJhd2VyIGlzCisgIGluc2VydGVkIGF0IHRoZSB0b3Agb2YgdGhlIGRyYXdlciBhZnRl ciBhbnkgcG90ZW50aWFsIGNvbW1lbnRzIG9yCisgIGtleXdvcmRzLgogCiAtIHt7e2tiZChDLWMg Qy1jKX19fSAofm9yZy1wcm9wZXJ0eS1hY3Rpb25+KSA6OgogCkBAIC01MzA0LDExICs1MzExLDYg QEAgZG9uZSBieSBkZWZpbmluZyBhIGNvbHVtbiBmb3JtYXQgbGluZS4KIDpERVNDUklQVElPTjog V2hlcmUgZGVmaW5lZCwgd2hlcmUgdmFsaWQ/CiA6RU5EOgogCi1UbyBkZWZpbmUgYSBjb2x1bW4g Zm9ybWF0IGZvciBhbiBlbnRpcmUgZmlsZSwgdXNlIGEgbGluZSBsaWtlOgotCi0jK2NpbmRleDog QHNhbXB7Q09MVU1OU30sIGtleXdvcmQKLTogIytDT0xVTU5TOiAlMjVJVEVNICVUQUdTICVQUklP UklUWSAlVE9ETwotCiBUbyBzcGVjaWZ5IGEgZm9ybWF0IHRoYXQgb25seSBhcHBsaWVzIHRvIGEg c3BlY2lmaWMgdHJlZSwgYWRkCiBhID1DT0xVTU5TPSBwcm9wZXJ0eSB0byB0aGUgdG9wIG5vZGUg b2YgdGhhdCB0cmVlLCBmb3IgZXhhbXBsZToKIApAQCAtNTMxOSw2ICs1MzIxLDEzIEBAIGEgPUNP TFVNTlM9IHByb3BlcnR5IHRvIHRoZSB0b3Agbm9kZSBvZiB0aGF0IHRyZWUsIGZvciBleGFtcGxl OgogICAgOkVORDoKICMrZW5kX2V4YW1wbGUKIAorQSA9Q09MVU1OUz0gcHJvcGVydHkgd2l0aGlu IGEgcHJvcGVydHkgZHJhd2VyIGJlZm9yZSBmaXJzdCBoZWFkbGluZQord2lsbCBhcHBseSB0byB0 aGUgZW50aXJlIGZpbGUuICBBcyBhbiBhZGRpdGlvbiB0byBwcm9wZXJ0eSBkcmF3ZXJzLAora2V5 d29yZHMgY2FuIGFsc28gYmUgZGVmaW5lZCBmb3IgYW4gZW50aXJlIGZpbGUgdXNpbmcgYSBsaW5l IGxpa2U6CisKKyMrY2luZGV4OiBAc2FtcHtDT0xVTU5TfSwga2V5d29yZAorOiAjK0NPTFVNTlM6 ICUyNUlURU0gJVRBR1MgJVBSSU9SSVRZICVUT0RPCisKIElmIGEgPUNPTFVNTlM9IHByb3BlcnR5 IGlzIHByZXNlbnQgaW4gYW4gZW50cnksIGl0IGRlZmluZXMgY29sdW1ucyBmb3IKIHRoZSBlbnRy eSBpdHNlbGYsIGFuZCBmb3IgdGhlIGVudGlyZSBzdWJ0cmVlIGJlbG93IGl0LiAgU2luY2UgdGhl CiBjb2x1bW4gZGVmaW5pdGlvbiBpcyBwYXJ0IG9mIHRoZSBoaWVyYXJjaGljYWwgc3RydWN0dXJl IG9mIHRoZQpkaWZmIC0tZ2l0IGEvZXRjL09SRy1ORVdTIGIvZXRjL09SRy1ORVdTCmluZGV4IDA4 OWY2Mjk5NS4uODZmYmE1NDRmIDEwMDY0NAotLS0gYS9ldGMvT1JHLU5FV1MKKysrIGIvZXRjL09S Ry1ORVdTCkBAIC0xMjMsNiArMTIzLDE0IEBAIGF1dG8tY29tbWl0IGF0dGFjaG1lbnRzIHRvIGdp dDoKICAgb25lIG5lZWQgdG8gcmVxdWlyZSB0aGUgPW9yZy1hdHRhY2gtZ2l0PSBtb2R1bGUgaW4g dGhlIHN0YXJ0dXAuCiAKICoqIE5ldyBmZWF0dXJlcworKioqIFByb3BlcnR5IGRyYXdlcnMgYmVm b3JlIGZpcnN0IGhlYWRsaW5lLCBvdXRsaW5lICBsZXZlbCAwCitQcm9wZXJ0eSBkcmF3ZXJzIHdp bGwgbm93IHdvcmsgYmVmb3JlIGZpcnN0IGhlYWRsaW5lIGFuZCBvcmctbW9kZSBpcworbW92aW5n IG1vcmUgdG93YXJkcyBtYWtpbmcgdGhpbmdzIGJlZm9yZSB0aGUgZmlyc3QgaGVhZGxpbmUgYmVo YXZlCitqdXN0IGFzIGlmIGl0IHdhcyBhdCBvdXRsaW5lIGxldmVsIDAuICBJbmhlcml0YW5jZSBm b3IgcHJvcGVydGllcyB3aWxsCit3b3JrIGFsc28gZm9yIHRoaXMgbGV2ZWwuICBJbiBvdGhlciB3 b3JkczsgZGVmaW5pbmcgdGhpbmdzIGluIGEKK3Byb3BlcnR5IGRyYXdlciBiZWZvcmUgdGhlIGZp cnN0IGhlYWRsaW5lIHdpbGwgbWFrZSB0aGVtICJpbmhlcml0YWJsZSIKK2ZvciBhbGwgaGVhZGxp bmVzLgorCiAqKiogQWRkIHNwbGl0LXdpbmRvdy1yaWdodCBvcHRpb24gZm9yIHNyYyBibG9jayBl ZGl0IHdpbmRvdyBwbGFjZW1lbnQKIEdpdmVuIHRoZSBpbmNyZWFzaW5nIHBvcHVsYXJpdHkgb2Yg d2lkZSBzY3JlZW4gbW9uaXRvcnMsIHNwbGl0dGluZwogaG9yaXpvbnRhbGx5IG1heSBtYWtlIG1v cmUgc2Vuc2UgdGhhbiBzcGxpdHRpbmcgdmVydGljYWxseS4gIEFuCmRpZmYgLS1naXQgYS9saXNw L29yZy1hdHRhY2guZWwgYi9saXNwL29yZy1hdHRhY2guZWwKaW5kZXggNzI2MDg1MDE0Li5mMWM5 ZDY5ZDggMTAwNjQ0Ci0tLSBhL2xpc3Avb3JnLWF0dGFjaC5lbAorKysgYi9saXNwL29yZy1hdHRh Y2guZWwKQEAgLTI0Myw3ICsyNDMsNyBAQCBTaG93cyBhIGxpc3Qgb2YgY29tbWFuZHMgYW5kIHBy b21wdHMgZm9yIGFub3RoZXIga2V5IHRvIGV4ZWN1dGUgYSBjb21tYW5kLiIKICAgICAgICh3aGVu IG1hcmtlcgogCShzZXQtYnVmZmVyIChtYXJrZXItYnVmZmVyIG1hcmtlcikpCiAJKGdvdG8tY2hh ciBtYXJrZXIpKQotICAgICAgKG9yZy1iYWNrLXRvLWhlYWRpbmcgdCkKKyAgICAgIChvcmctYmFj ay10by1oZWFkaW5nLW9yLXBvaW50LW1pbiB0KQogICAgICAgKHNhdmUtZXhjdXJzaW9uCiAJKHNh dmUtd2luZG93LWV4Y3Vyc2lvbgogCSAgKHVubGVzcyBvcmctYXR0YWNoLWV4cGVydApkaWZmIC0t Z2l0IGEvbGlzcC9vcmctY2FwdHVyZS5lbCBiL2xpc3Avb3JnLWNhcHR1cmUuZWwKaW5kZXggNGY5 N2UxN2VhLi42NzM0M2UwMmEgMTAwNjQ0Ci0tLSBhL2xpc3Avb3JnLWNhcHR1cmUuZWwKKysrIGIv bGlzcC9vcmctY2FwdHVyZS5lbApAQCAtMTczNiwxMSArMTczNiwxMSBAQCBUaGUgdGVtcGxhdGUg bWF5IHN0aWxsIGNvbnRhaW4gXCIlP1wiIGZvciBjdXJzb3IgcG9zaXRpb25pbmcuIgogCQkJIChf IChlcnJvciAiSW52YWxpZCBgb3JnLWNhcHR1cmUtLWNsaXBib2FyZHMnIHZhbHVlOiAlUyIKIAkJ CQkgICBvcmctY2FwdHVyZS0tY2xpcGJvYXJkcykpKSkpCiAJCSAgICAoInAiCi0JCSAgICAgOzsg V2UgcmVtb3ZlIGZpbGUgcHJvcGVydGllcyBpbmhlcml0ZWQgZnJvbQorCQkgICAgIDs7IFdlIHJl bW92ZSBrZXl3b3JkIHByb3BlcnRpZXMgaW5oZXJpdGVkIGZyb20KIAkJICAgICA7OyB0YXJnZXQg YnVmZmVyIHNvIGBvcmctcmVhZC1wcm9wZXJ0eS12YWx1ZScgaGFzCiAJCSAgICAgOzsgYSBjaGFu Y2UgdG8gZmluZCBhbGxvd2VkIHZhbHVlcyBpbiBzdWItdHJlZXMKIAkJICAgICA7OyBmcm9tIHRo ZSB0YXJnZXQgYnVmZmVyLgotCQkgICAgIChzZXRxLWxvY2FsIG9yZy1maWxlLXByb3BlcnRpZXMg bmlsKQorCQkgICAgIChzZXRxLWxvY2FsIG9yZy1rZXl3b3JkLXByb3BlcnRpZXMgbmlsKQogCQkg ICAgIChsZXQqICgob3JpZ2luIChzZXQtbWFya2VyIChtYWtlLW1hcmtlcikKIAkJCQkJCShvcmct Y2FwdHVyZS1nZXQgOnBvcykKIAkJCQkJCShvcmctY2FwdHVyZS1nZXQgOmJ1ZmZlcikpKQpkaWZm IC0tZ2l0IGEvbGlzcC9vcmctZWxlbWVudC5lbCBiL2xpc3Avb3JnLWVsZW1lbnQuZWwKaW5kZXgg Y2RkM2ViNjdmLi5lZTVjN2E3MzUgMTAwNjQ0Ci0tLSBhL2xpc3Avb3JnLWVsZW1lbnQuZWwKKysr IGIvbGlzcC9vcmctZWxlbWVudC5lbApAQCAtNzMsNiArNzMsOSBAQAogKHJlcXVpcmUgJ29yZy10 YWJsZSkKIAogKGRlY2xhcmUtZnVuY3Rpb24gb3JnLWF0LWhlYWRpbmctcCAib3JnIiAoJm9wdGlv bmFsIF8pKQorKGRlY2xhcmUtZnVuY3Rpb24gb3JnLWJlZm9yZS1maXJzdC1oZWFkaW5nLXAgIm9y ZyIpCisoZGVjbGFyZS1mdW5jdGlvbiBvcmctYXQtY29tbWVudC1wICJvcmciICgpKQorKGRlY2xh cmUtZnVuY3Rpb24gb3JnLWF0LWtleXdvcmQtcCAib3JnIiAoKSkKIChkZWNsYXJlLWZ1bmN0aW9u IG9yZy1lbmQtb2Ytc3VidHJlZSAib3JnIiAoJm9wdGlvbmFsIGludmlzaWJsZS1vayB0by1oZWFk aW5nKSkKIChkZWNsYXJlLWZ1bmN0aW9uIG9yZy1lc2NhcGUtY29kZS1pbi1zdHJpbmcgIm9yZy1z cmMiIChzKSkKIChkZWNsYXJlLWZ1bmN0aW9uIG9yZy1maW5kLXZpc2libGUgIm9yZyIgKCkpCkBA IC03NzAsNiArNzczLDQyIEBAIGluaGVyaXRlZCBwcm9wZXJ0aWVzLiIKICAgICAobGlzdCA6ZG9j dW1lbnQta2V5d29yZHMgZG9jdW1lbnQta2V5d29yZHMKIAkgIDpleHBvcnQta2V5d29yZHMgZXhw b3J0LWtleXdvcmRzKSkpCiAKKyhkZWZ1biBvcmctZWxlbWVudC0tZ2V0LWRvY3VtZW50LXByb3Bl cnRpZXMgKCkKKyAgIlJldHVybiBkb2N1bWVudCBwcm9wZXJ0aWVzIGFzc29jaWF0ZWQgdG8gdGhl IHdob2xlIGRvY3VtZW50LgorVXBjYXNlIHByb3BlcnR5IG5hbWVzIHRvIGF2b2lkIGNvbmZ1c2lv biBiZXR3ZWVuIHByb3BlcnRpZXMKK29idGFpbmVkIHRocm91Z2ggcHJvcGVydHkgZHJhd2VyIGFu ZCBkZWZhdWx0IHByb3BlcnRpZXMgZnJvbSB0aGUKK3BhcnNlciAoZS5nLiBgOmVuZCcgYW5kIDpF TkQ6KS4gIFJldHVybiB2YWx1ZSBpcyBhIHBsaXN0LiIKKyAgKGxldCAoKGtleXdvcmQtcHJvcGVy dGllcworCSAoYWxpc3QtZ2V0ICdwcm9wZXJ0eQorCQkgICAgKG9yZy1jb2xsZWN0LWtleXdvcmRz CisJCSAgICAgKG9yZy1tYWtlLWtleXdvcmQtcmVnZXhwCisJCSAgICAgICcoIlBST1BFUlRZIikp KSkpCisJcHJvcGVydGllcykKKyAgICA7OyBQYXJzZSBwcm9wZXJ0aWVzIGZyb20ga2V5d29yZHMg Zmlyc3QuCisgICAgKGRvbGlzdCAoY29ucyBrZXl3b3JkLXByb3BlcnRpZXMpCisgICAgICAoc2V0 cSBwcm9wZXJ0aWVzCisJICAgIChwbGlzdC1wdXQgcHJvcGVydGllcworCQkgICAgICAgKGludGVy biAoY29uY2F0ICI6IiAoY2FyIGNvbnMpKSkKKwkJICAgICAgIChjZHIgY29ucykpKSkKKyAgICA7 OyBJZiB0aGUgZG9jdW1lbnQgcHJvcGVydHkgZHJhd2VyIGV4aXN0LCBsZXQgcHJvcGVydGllcwor ICAgIDs7IHNldCB0aGVyZSBvdmVycmlkZSBwcm9wZXJ0aWVzIGZyb20ga2V5d29yZHMuCisgICAg KHNhdmUtZXhjdXJzaW9uCisgICAgICAoZ290by1jaGFyIChwb2ludC1taW4pKQorICAgICAgKHdo ZW4gKG9yZy1iZWZvcmUtZmlyc3QtaGVhZGluZy1wKQorCSh3aGlsZSAoYW5kIChvcmctYXQtY29t bWVudC1wKSAoYm9scCkpIChmb3J3YXJkLWxpbmUpKQorCSh3aGlsZSAoYW5kIChvcmctYXQta2V5 d29yZC1wKSAoYm9scCkpIChmb3J3YXJkLWxpbmUpKSkKKyAgICAgICh3aGVuIChsb29raW5nLWF0 IG9yZy1wcm9wZXJ0eS1kcmF3ZXItcmUpCisJKGZvcndhcmQtbGluZSkKKwkobGV0ICgoZW5kICht YXRjaC1lbmQgMCkpKQorCSAgKHdoaWxlICg8IChsaW5lLWVuZC1wb3NpdGlvbikgZW5kKQorCSAg ICAobG9va2luZy1hdCBvcmctcHJvcGVydHktcmUpCisJICAgIChzZXRxIHByb3BlcnRpZXMKKwkJ ICAocGxpc3QtcHV0IHByb3BlcnRpZXMKKwkJCSAgICAgKGludGVybiAoY29uY2F0ICI6IiAodXBj YXNlIChtYXRjaC1zdHJpbmcgMikpKSkKKwkJCSAgICAgKG1hdGNoLXN0cmluZy1uby1wcm9wZXJ0 aWVzIDMpKSkKKwkgICAgKGZvcndhcmQtbGluZSkpKSkpCisgICAgcHJvcGVydGllcykpCisKIChk ZWZ1biBvcmctZWxlbWVudC1kb2N1bWVudC1wYXJzZXIgKCkKICAgIlBhcnNlIGEgZG9jdW1lbnQg Zm9yIGl0J3Mgc2V0dGluZ3MgYW5kIHByb3BlcnRpZXMuCiBSZXR1cm4gYSBsaXN0IHdob3NlIENB UiBpcyBgZG9jdW1lbnQnIGFuZCBDRFIgaXMgYSBwbGlzdApAQCAtNzc4LDcgKzgxNyw3IEBAIGNv bnRhaW5pbmcgYDpidWZmZXInLCBgOmZpbGUnLCBgOmxldmVsJywgYDpjb250ZW50cy1iZWdpbics CiAKIEluIGFkZGl0aW9uIHRvIHRoZSBhYm92ZSwgdGhlIHBsaXN0IGFsc28gY29udGFpbnMgY29u ZmlndXJhdGlvbnMKIGFuZCBwcm9wZXJ0aWVzIHRoYXQgYXBwbGllcyBmb3IgdGhlIHdob2xlIGRv Y3VtZW50LCBjb21pbmcgZnJvbQotZG9jdW1lbnQga2V5d29yZHMuIgorZG9jdW1lbnQga2V5d29y ZHMgYW5kIHRoZSBkb2N1bWVudCBwcm9wZXJ0eSBkcmF3ZXIuIgogICAoc2F2ZS1leGN1cnNpb24K ICAgICAobGlzdCAnZG9jdW1lbnQKIAkgIChuY29uYwpAQCAtNzkwLDYgKzgyOSw3IEBAIGRvY3Vt ZW50IGtleXdvcmRzLiIKIAkJIDpiZWdpbiAocG9pbnQtbWluKQogCQkgOmVuZCAocG9pbnQtbWF4 KQogCQkgOnBvc3QtYmxhbmsgMCkKKwkgICAob3JnLWVsZW1lbnQtLWdldC1kb2N1bWVudC1wcm9w ZXJ0aWVzKQogCSAgIChvcmctZWxlbWVudC0tZ2V0LWRvY3VtZW50LWtleXdvcmRzKSkpKSkKIAog KGRlZnVuIG9yZy1lbGVtZW50LWRvY3VtZW50LWludGVycHJldGVyIChfIGNvbnRlbnRzKQpAQCAt MTAwMSw4ICsxMDQxLDggQEAgQ09OVEVOVFMgaXMgdGhlIGNvbnRlbnRzIG9mIHRoZSBmb290bm90 ZS1kZWZpbml0aW9uLiIKIAogOzs7OyBIZWFkbGluZQogCi0oZGVmdW4gb3JnLWVsZW1lbnQtLWdl dC1ub2RlLXByb3BlcnRpZXMgKCkKLSAgIlJldHVybiBub2RlIHByb3BlcnRpZXMgYXNzb2NpYXRl ZCB0byBoZWFkbGluZSBhdCBwb2ludC4KKyhkZWZ1biBvcmctZWxlbWVudC0tZ2V0LWhlYWRsaW5l LXByb3BlcnRpZXMgKCkKKyAgIlJldHVybiBwcm9wZXJ0aWVzIGFzc29jaWF0ZWQgdG8gaGVhZGxp bmUgYXQgcG9pbnQuCiBVcGNhc2UgcHJvcGVydHkgbmFtZXMuICBJdCBhdm9pZHMgY29uZnVzaW9u IGJldHdlZW4gcHJvcGVydGllcwogb2J0YWluZWQgdGhyb3VnaCBwcm9wZXJ0eSBkcmF3ZXIgYW5k IGRlZmF1bHQgcHJvcGVydGllcyBmcm9tIHRoZQogcGFyc2VyIChlLmcuIGA6ZW5kJyBhbmQgOkVO RDopLiAgUmV0dXJuIHZhbHVlIGlzIGEgcGxpc3QuIgpAQCAtMTA4OCw3ICsxMTI4LDcgQEAgQXNz dW1lIHBvaW50IGlzIGF0IGJlZ2lubmluZyBvZiB0aGUgaGVhZGxpbmUuIgogCSAgIChhcmNoaXZl ZHAgKG1lbWJlciBvcmctYXJjaGl2ZS10YWcgdGFncykpCiAJICAgKGZvb3Rub3RlLXNlY3Rpb24t cCAoYW5kIG9yZy1mb290bm90ZS1zZWN0aW9uCiAJCQkJICAgIChzdHJpbmc9IG9yZy1mb290bm90 ZS1zZWN0aW9uIHJhdy12YWx1ZSkpKQotCSAgIChzdGFuZGFyZC1wcm9wcyAob3JnLWVsZW1lbnQt LWdldC1ub2RlLXByb3BlcnRpZXMpKQorCSAgIChzdGFuZGFyZC1wcm9wcyAob3JnLWVsZW1lbnQt LWdldC1oZWFkbGluZS1wcm9wZXJ0aWVzKSkKIAkgICAodGltZS1wcm9wcyAob3JnLWVsZW1lbnQt LWdldC10aW1lLXByb3BlcnRpZXMpKQogCSAgIChlbmQgKG1pbiAoc2F2ZS1leGN1cnNpb24gKG9y Zy1lbmQtb2Ytc3VidHJlZSB0IHQpKSBsaW1pdCkpCiAJICAgKGNvbnRlbnRzLWJlZ2luIChzYXZl LWV4Y3Vyc2lvbgpAQCAtMTIzMyw3ICsxMjczLDcgQEAgQXNzdW1lIHBvaW50IGlzIGF0IGJlZ2lu bmluZyBvZiB0aGUgaW5saW5lIHRhc2suIgogCQkgICAgICAgKGFuZCAocmUtc2VhcmNoLWZvcndh cmQgb3JnLW91dGxpbmUtcmVnZXhwLWJvbCBsaW1pdCB0KQogCQkJICAgIChsb29raW5nLWF0LXAg IlsgXHRdKkVORFsgXHRdKiQiKQogCQkJICAgIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikpKSkK LQkgICAoc3RhbmRhcmQtcHJvcHMgKGFuZCB0YXNrLWVuZCAob3JnLWVsZW1lbnQtLWdldC1ub2Rl LXByb3BlcnRpZXMpKSkKKwkgICAoc3RhbmRhcmQtcHJvcHMgKGFuZCB0YXNrLWVuZCAob3JnLWVs ZW1lbnQtLWdldC1oZWFkbGluZS1wcm9wZXJ0aWVzKSkpCiAJICAgKHRpbWUtcHJvcHMgKGFuZCB0 YXNrLWVuZCAob3JnLWVsZW1lbnQtLWdldC10aW1lLXByb3BlcnRpZXMpKSkKIAkgICAoY29udGVu dHMtYmVnaW4gKGFuZCB0YXNrLWVuZAogCQkJCSg8IChwb2ludCkgdGFzay1lbmQpCkBAIC0zOTg0 LDcgKzQwMjQsMTAgQEAgZWxlbWVudCBpdCBoYXMgdG8gcGFyc2UuIgogCSAgICAgOzsgTGFUZVgg RW52aXJvbm1lbnQuCiAJICAgICAoKGxvb2tpbmctYXQgb3JnLWVsZW1lbnQtLWxhdGV4LWJlZ2lu LWVudmlyb25tZW50KQogCSAgICAgIChvcmctZWxlbWVudC1sYXRleC1lbnZpcm9ubWVudC1wYXJz ZXIgbGltaXQgYWZmaWxpYXRlZCkpCi0JICAgICA7OyBEcmF3ZXIgYW5kIFByb3BlcnR5IERyYXdl ci4KKwkgICAgIDs7IFByb3BlcnR5IGRyYXdlciAoYmVmb3JlIGZpcnN0IGhlYWRsaW5lLCBlbHNl IGl0J3MgY2F0Y2hlZCBhYm92ZSkuCisJICAgICAoKG9yZy1hdC1wcm9wZXJ0eS1ibG9jay1wKQor CSAgICAgIChvcmctZWxlbWVudC1wcm9wZXJ0eS1kcmF3ZXItcGFyc2VyIGxpbWl0KSkKKwkgICAg IDs7IERyYXdlci4KIAkgICAgICgobG9va2luZy1hdCBvcmctZHJhd2VyLXJlZ2V4cCkKIAkgICAg ICAob3JnLWVsZW1lbnQtZHJhd2VyLXBhcnNlciBsaW1pdCBhZmZpbGlhdGVkKSkKIAkgICAgIDs7 IEZpeGVkIFdpZHRoCmRpZmYgLS1naXQgYS9saXNwL29yZy5lbCBiL2xpc3Avb3JnLmVsCmluZGV4 IDM1ODk4OTA3MC4uNWMyMWUxMzBjIDEwMDY0NAotLS0gYS9saXNwL29yZy5lbAorKysgYi9saXNw L29yZy5lbApAQCAtMzE4NSw4ICszMTg1LDEzIEBAIFRoaXMgbGlzdCB3aWxsIGJlIGNvbWJpbmVk IHdpdGggdGhlIGNvbnN0YW50IGBvcmctZ2xvYmFsLXByb3BlcnRpZXMtZml4ZWQnLgogVGhlIGVu dHJpZXMgaW4gdGhpcyBsaXN0IGFyZSBjb25zIGNlbGxzIHdoZXJlIHRoZSBjYXIgaXMgYSBwcm9w ZXJ0eQogbmFtZSBhbmQgY2RyIGlzIGEgc3RyaW5nIHdpdGggdGhlIHZhbHVlLgogCi1Zb3UgY2Fu IHNldCBidWZmZXItbG9jYWwgdmFsdWVzIGZvciB0aGUgc2FtZSBwdXJwb3NlIGluIHRoZSB2YXJp YWJsZQotYG9yZy1maWxlLXByb3BlcnRpZXMnIHRoaXMgYnkgYWRkaW5nIGxpbmVzIGxpa2UKK0J1 ZmZlciBsb2NhbCBwcm9wZXJ0aWVzIGFyZSBhZGRlZCBlaXRoZXIgYnkgYSBkb2N1bWVudCBwcm9w ZXJ0eSBkcmF3ZXIKKworOlBST1BFUlRJRVM6Cis6TkFNRTogVkFMVUUKKzpFTkQ6CisKK29yIGJ5 IGFkZGluZyBsaW5lcyBsaWtlCiAKICMrUFJPUEVSVFk6IE5BTUUgVkFMVUUiCiAgIDpncm91cCAn b3JnLXByb3BlcnRpZXMKQEAgLTMxOTQsMTAgKzMxOTksMTQgQEAgWW91IGNhbiBzZXQgYnVmZmVy LWxvY2FsIHZhbHVlcyBmb3IgdGhlIHNhbWUgcHVycG9zZSBpbiB0aGUgdmFyaWFibGUKIAkgIChj b25zIChzdHJpbmcgOnRhZyAiUHJvcGVydHkiKQogCQkoc3RyaW5nIDp0YWcgIlZhbHVlIikpKSkK IAotKGRlZnZhci1sb2NhbCBvcmctZmlsZS1wcm9wZXJ0aWVzIG5pbAorKGRlZnZhci1sb2NhbCBv cmcta2V5d29yZC1wcm9wZXJ0aWVzIG5pbAogICAiTGlzdCBvZiBwcm9wZXJ0eS92YWx1ZSBwYWly cyB0aGF0IGNhbiBiZSBpbmhlcml0ZWQgYnkgYW55IGVudHJ5LgotVmFsaWQgZm9yIHRoZSBjdXJy ZW50IGJ1ZmZlci4KLVRoaXMgdmFyaWFibGUgaXMgcG9wdWxhdGVkIGZyb20gIytQUk9QRVJUWSBs aW5lcy4iKQorVmFsaWQgZm9yIHRoZSBjdXJyZW50IGJ1ZmZlci4gIFRoaXMgdmFyaWFibGUgaXMg cG9wdWxhdGVkIGZyb20KKyMrUFJPUEVSVFkgbGluZXMuCisKK05vdGUgdGhhdCBwcm9wZXJ0aWVz IGFyZSBkZWZpbmVkIGFsc28gaW4gcHJvcGVydHkgZHJhd2Vycy4KK1Byb3BlcnRpZXMgZGVmaW5l ZCB0aGVyZSB3aWxsIHRha2UgcHJlY2VkZW5jZSBvdmVyIHByb3BlcnRpZXMKK2RlZmluZWQgYXMg a2V5d29yZHMuIikKIAogKGRlZmdyb3VwIG9yZy1hZ2VuZGEgbmlsCiAgICJPcHRpb25zIGNvbmNl cm5pbmcgYWdlbmRhIHZpZXdzIGluIE9yZyBtb2RlLiIKQEAgLTMyMDYsMTEgKzMyMTUsMTggQEAg VGhpcyB2YXJpYWJsZSBpcyBwb3B1bGF0ZWQgZnJvbSAjK1BST1BFUlRZIGxpbmVzLiIpCiAKIChk ZWZ2YXItbG9jYWwgb3JnLWNhdGVnb3J5IG5pbAogICAiVmFyaWFibGUgdXNlZCBieSBPcmcgZmls ZXMgdG8gc2V0IGEgY2F0ZWdvcnkgZm9yIGFnZW5kYSBkaXNwbGF5LgotU3VjaCBmaWxlcyBzaG91 bGQgdXNlIGEgZmlsZSB2YXJpYWJsZSB0byBzZXQgaXQsIGZvciBleGFtcGxlCitUaGVyZSBhcmUg bXVsdGlwbGUgd2F5cyB0byBzZXQgdGhlIGNhdGVnb3J5LiAgT25lIHdheSBpcyB0byBzZXQKK2l0 IGluIHRoZSBkb2N1bWVudCBwcm9wZXJ0eSBkcmF3ZXIuICBGb3IgZXhhbXBsZToKKworOlBST1BF UlRJRVM6Cis6Q0FURUdPUlk6IEVMaXNwCis6RU5EOgorCitPdGhlciB3YXlzIHRvIGRlZmluZSBp dCBpcyBhcyBhbiBlbWFjcyBmaWxlIHZhcmlhYmxlLCBmb3IgZXhhbXBsZQogCiAjICAgLSotIG1v ZGU6IG9yZzsgb3JnLWNhdGVnb3J5OiBcIkVMaXNwXCIKIAotb3IgY29udGFpbiBhIHNwZWNpYWwg bGluZQorb3IgZm9yIHRoZSBmaWxlIHRvIGNvbnRhaW4gYSBzcGVjaWFsIGxpbmU6CiAKICMrQ0FU RUdPUlk6IEVMaXNwCiAKQEAgLTQzNDMsOCArNDM1OSw4IEBAIHJlbGF0ZWQgZXhwcmVzc2lvbnMu IgogICAgICAgKHNldHEgb3JnLXRhZy1ncm91cHMtYWxpc3QKIAkgICAgKG9yZy10YWctYWxpc3Qt dG8tZ3JvdXBzIG9yZy1jdXJyZW50LXRhZy1hbGlzdCkpCiAgICAgICAodW5sZXNzIHRhZ3Mtb25s eQotCTs7IEZpbGUgcHJvcGVydGllcy4KLQkoc2V0cS1sb2NhbCBvcmctZmlsZS1wcm9wZXJ0aWVz IChjZHIgKGFzc3EgJ3Byb3BlcnR5IGFsaXN0KSkpCisJOzsgUHJvcGVydGllcy4KKwkoc2V0cS1s b2NhbCBvcmcta2V5d29yZC1wcm9wZXJ0aWVzIChjZHIgKGFzc3EgJ3Byb3BlcnR5IGFsaXN0KSkp CiAJOzsgQXJjaGl2ZSBsb2NhdGlvbi4KIAkobGV0ICgoYXJjaGl2ZSAoY2RyIChhc3NxICdhcmNo aXZlIGFsaXN0KSkpKQogCSAgKHdoZW4gYXJjaGl2ZSAoc2V0cS1sb2NhbCBvcmctYXJjaGl2ZS1s b2NhdGlvbiBhcmNoaXZlKSkpCkBAIC00MzUyLDkgKzQzNjgsOSBAQCByZWxhdGVkIGV4cHJlc3Np b25zLiIKIAkobGV0ICgoY2F0IChvcmctc3RyaW5nLW53LXAgKGNkciAoYXNzcSAnY2F0ZWdvcnkg YWxpc3QpKSkpKQogCSAgKHdoZW4gY2F0CiAJICAgIChzZXRxLWxvY2FsIG9yZy1jYXRlZ29yeSAo aW50ZXJuIGNhdCkpCi0JICAgIChzZXRxLWxvY2FsIG9yZy1maWxlLXByb3BlcnRpZXMKKwkgICAg KHNldHEtbG9jYWwgb3JnLWtleXdvcmQtcHJvcGVydGllcwogCQkJKG9yZy0tdXBkYXRlLXByb3Bl cnR5LXBsaXN0Ci0JCQkgIkNBVEVHT1JZIiBjYXQgb3JnLWZpbGUtcHJvcGVydGllcykpKSkKKwkJ CSAiQ0FURUdPUlkiIGNhdCBvcmcta2V5d29yZC1wcm9wZXJ0aWVzKSkpKQogCTs7IENvbHVtbnMu CiAJKGxldCAoKGNvbHVtbiAoY2RyIChhc3NxICdjb2x1bW5zIGFsaXN0KSkpKQogCSAgKHdoZW4g Y29sdW1uIChzZXRxLWxvY2FsIG9yZy1jb2x1bW5zLWRlZmF1bHQtZm9ybWF0IGNvbHVtbikpKQpA QCAtODI3NiwxMyArODI5MiwxNCBAQCB0aGUgdmFsdWUgb2YgdGhlIGRyYXdlciBwcm9wZXJ0eS4i CiAJIChpbmhpYml0LXJlYWQtb25seSB0KQogCSAoaW5oZXJpdD8gKG9yZy1wcm9wZXJ0eS1pbmhl cml0LXAgZHByb3ApKQogCSAocHJvcGVydHktcmUgKG9yZy1yZS1wcm9wZXJ0eSAoY29uY2F0IChy ZWdleHAtcXVvdGUgZHByb3ApICJcXCs/IikgdCkpCi0JIChnbG9iYWwgKGFuZCBpbmhlcml0PyAo b3JnLS1wcm9wZXJ0eS1nbG9iYWwtdmFsdWUgZHByb3AgbmlsKSkpKQorCSAoZ2xvYmFsLW9yLWtl eXdvcmQgKGFuZCBpbmhlcml0PworCQkJCSAob3JnLS1wcm9wZXJ0eS1nbG9iYWwtb3Ita2V5d29y ZC12YWx1ZSBkcHJvcCBuaWwpKSkpCiAgICAgKHdpdGgtc2lsZW50LW1vZGlmaWNhdGlvbnMKICAg ICAgIChvcmctd2l0aC1wb2ludC1hdCAxCi0JOzsgU2V0IGdsb2JhbCB2YWx1ZXMgKGUuZy4sIHZh bHVlcyBkZWZpbmVkIHRocm91Z2gKLQk7OyAiIytQUk9QRVJUWToiIGtleXdvcmRzKSB0byB0aGUg d2hvbGUgYnVmZmVyLgotCSh3aGVuIGdsb2JhbCAocHV0LXRleHQtcHJvcGVydHkgKHBvaW50LW1p bikgKHBvaW50LW1heCkgdHByb3AgZ2xvYmFsKSkKLQk7OyBTZXQgbG9jYWwgdmFsdWVzLgorCTs7 IFNldCBnbG9iYWwgYW5kIGtleXdvcmQgYmFzZWQgdmFsdWVzIHRvIHRoZSB3aG9sZSBidWZmZXIu CisJKHdoZW4gZ2xvYmFsLW9yLWtleXdvcmQKKwkgIChwdXQtdGV4dC1wcm9wZXJ0eSAocG9pbnQt bWluKSAocG9pbnQtbWF4KSB0cHJvcCBnbG9iYWwtb3Ita2V5d29yZCkpCisJOzsgU2V0IHZhbHVl cyBiYXNlZCBvbiBwcm9wZXJ0eS1kcmF3ZXJzIHRocm91Z2hvdXQgdGhlIGRvY3VtZW50LgogCSh3 aGlsZSAocmUtc2VhcmNoLWZvcndhcmQgcHJvcGVydHktcmUgbmlsIHQpCiAJICAod2hlbiAob3Jn LWF0LXByb3BlcnR5LXApCiAJICAgIChvcmctcmVmcmVzaC1wcm9wZXJ0eSB0cHJvcCAob3JnLWVu dHJ5LWdldCAocG9pbnQpIGRwcm9wKSBpbmhlcml0PykpCkBAIC04MjkwLDIxICs4MzA3LDI5IEBA IHRoZSB2YWx1ZSBvZiB0aGUgZHJhd2VyIHByb3BlcnR5LiIKIAogKGRlZnVuIG9yZy1yZWZyZXNo LXByb3BlcnR5ICh0cHJvcCBwICZvcHRpb25hbCBpbmhlcml0KQogICAiUmVmcmVzaCB0aGUgYnVm ZmVyIHRleHQgcHJvcGVydHkgVFBST1AgZnJvbSB0aGUgZHJhd2VyIHByb3BlcnR5IFAuCi1UaGUg cmVmcmVzaCBoYXBwZW5zIG9ubHkgZm9yIHRoZSBjdXJyZW50IGhlYWRsaW5lLCBvciB0aGUgd2hv bGUKLXN1Yi10cmVlIGlmIG9wdGlvbmFsIGFyZ3VtZW50IElOSEVSSVQgaXMgbm9uLW5pbC4iCi0g ICh1bmxlc3MgKG9yZy1iZWZvcmUtZmlyc3QtaGVhZGluZy1wKQotICAgIChzYXZlLWV4Y3Vyc2lv bgotICAgICAgKG9yZy1iYWNrLXRvLWhlYWRpbmcgdCkKLSAgICAgIChsZXQgKChzdGFydCAocG9p bnQpKQotCSAgICAoZW5kIChzYXZlLWV4Y3Vyc2lvbgotCQkgICAoaWYgaW5oZXJpdCAob3JnLWVu ZC1vZi1zdWJ0cmVlIHQgdCkKLQkJICAgICAob3IgKG91dGxpbmUtbmV4dC1oZWFkaW5nKSAocG9p bnQtbWF4KSkpKSkpCi0JKGlmIChzeW1ib2xwIHRwcm9wKQotCSAgICA7OyBUUFJPUCBpcyBhIHRl eHQgcHJvcGVydHkgc3ltYm9sLgotCSAgICAocHV0LXRleHQtcHJvcGVydHkgc3RhcnQgZW5kIHRw cm9wIHApCi0JICA7OyBUUFJPUCBpcyBhbiBhbGlzdCB3aXRoIChwcm9wZXJ0eSAuIGZ1bmN0aW9u KSBlbGVtZW50cy4KLQkgIChwY2FzZS1kb2xpc3QgKGAoLHByb3AgLiAsZikgdHByb3ApCi0JICAg IChwdXQtdGV4dC1wcm9wZXJ0eSBzdGFydCBlbmQgcHJvcCAoZnVuY2FsbCBmIHApKSkpKSkpKQor VGhlIHJlZnJlc2ggaGFwcGVucyBvbmx5IGZvciB0aGUgY3VycmVudCBlbnRyeSwgb3IgdGhlIHdo b2xlCitzdWItdHJlZSBpZiBvcHRpb25hbCBhcmd1bWVudCBJTkhFUklUIGlzIG5vbi1uaWwuCisK K0lmIHBvaW50IGlzIGJlZm9yZSBmaXJzdCBoZWFkbGluZSwgdGhlIGZ1bmN0aW9uIGFwcGxpZXMg dG8gdGhlCitwYXJ0IGJlZm9yZSB0aGUgZmlyc3QgaGVhZGxpbmUuICBJbiB0aGF0IHBhcnRpY3Vs YXIgY2FzZSwgd2hlbgorb3B0aW9uYWwgYXJndW1lbnQgSU5IRVJJVCBpcyBub24tbmlsLCBpdCBy ZWZyZXNoZXMgcHJvcGVydGllcyBmb3IKK3RoZSB3aG9sZSBidWZmZXIuIgorICAoc2F2ZS1leGN1 cnNpb24KKyAgICAob3JnLWJhY2stdG8taGVhZGluZy1vci1wb2ludC1taW4gdCkKKyAgICAobGV0 ICgoc3RhcnQgKHBvaW50KSkKKwkgIChlbmQgKHNhdmUtZXhjdXJzaW9uCisJCSAoY29uZCAoKGFu ZCBpbmhlcml0IChvcmctYmVmb3JlLWZpcnN0LWhlYWRpbmctcCkpCisJCQkocG9pbnQtbWF4KSkK KwkJICAgICAgIChpbmhlcml0CisJCQkob3JnLWVuZC1vZi1zdWJ0cmVlIHQgdCkpCisJCSAgICAg ICAoKG91dGxpbmUtbmV4dC1oZWFkaW5nKSkKKwkJICAgICAgICgocG9pbnQtbWF4KSkpKSkpCisg ICAgICAoaWYgKHN5bWJvbHAgdHByb3ApCisJICA7OyBUUFJPUCBpcyBhIHRleHQgcHJvcGVydHkg c3ltYm9sLgorCSAgKHB1dC10ZXh0LXByb3BlcnR5IHN0YXJ0IGVuZCB0cHJvcCBwKQorCTs7IFRQ Uk9QIGlzIGFuIGFsaXN0IHdpdGggKHByb3BlcnR5IC4gZnVuY3Rpb24pIGVsZW1lbnRzLgorCShw Y2FzZS1kb2xpc3QgKGAoLHByb3AgLiAsZikgdHByb3ApCisJICAocHV0LXRleHQtcHJvcGVydHkg c3RhcnQgZW5kIHByb3AgKGZ1bmNhbGwgZiBwKSkpKSkpKQogCiAoZGVmdW4gb3JnLXJlZnJlc2gt Y2F0ZWdvcnktcHJvcGVydGllcyAoKQogICAiUmVmcmVzaCBjYXRlZ29yeSB0ZXh0IHByb3BlcnRp ZXMgaW4gdGhlIGJ1ZmZlci4iCkBAIC04MzIwLDkgKzgzNDUsOSBAQCBzdWItdHJlZSBpZiBvcHRp b25hbCBhcmd1bWVudCBJTkhFUklUIGlzIG5vbi1uaWwuIgogCQkodCBvcmctY2F0ZWdvcnkpKSkp CiAgICAgKHdpdGgtc2lsZW50LW1vZGlmaWNhdGlvbnMKICAgICAgIChvcmctd2l0aC13aWRlLWJ1 ZmZlcgotICAgICAgIDs7IFNldCBidWZmZXItd2lkZSBjYXRlZ29yeS4gIFNlYXJjaCBsYXN0ICMr Q0FURUdPUlkga2V5d29yZC4KLSAgICAgICA7OyBUaGlzIGlzIHRoZSBkZWZhdWx0IGNhdGVnb3J5 IGZvciB0aGUgYnVmZmVyLiAgSWYgbm9uZSBpcwotICAgICAgIDs7IGZvdW5kLCBmYWxsLWJhY2sg dG8gYG9yZy1jYXRlZ29yeScgb3IgYnVmZmVyIGZpbGUgbmFtZS4KKyAgICAgICA7OyBTZXQgYnVm ZmVyLXdpZGUgcHJvcGVydHkgZnJvbSBrZXl3b3JkLiAgU2VhcmNoIGxhc3QgIytDQVRFR09SWQor ICAgICAgIDs7IGtleXdvcmQuICBJZiBub25lIGlzIGZvdW5kLCBmYWxsLWJhY2sgdG8gYG9yZy1j YXRlZ29yeScgb3IKKyAgICAgICA7OyBidWZmZXIgZmlsZSBuYW1lLCBvciBzZXQgaXQgYnkgdGhl IGRvY3VtZW50IHByb3BlcnR5IGRyYXdlci4KICAgICAgICAocHV0LXRleHQtcHJvcGVydHkKIAko cG9pbnQtbWluKSAocG9pbnQtbWF4KQogCSdvcmctY2F0ZWdvcnkKQEAgLTgzMzQsMTUgKzgzNTks MjAgQEAgc3ViLXRyZWUgaWYgb3B0aW9uYWwgYXJndW1lbnQgSU5IRVJJVCBpcyBub24tbmlsLiIK IAkJKHRocm93ICdidWZmZXItY2F0ZWdvcnkKIAkJICAgICAgIChvcmctZWxlbWVudC1wcm9wZXJ0 eSA6dmFsdWUgZWxlbWVudCkpKSkpCiAJICBkZWZhdWx0LWNhdGVnb3J5KSkKLSAgICAgICA7OyBT ZXQgc3ViLXRyZWUgc3BlY2lmaWMgY2F0ZWdvcmllcy4KKyAgICAgICA7OyBTZXQgY2F0ZWdvcmll cyBmcm9tIHRoZSBkb2N1bWVudCBwcm9wZXJ0eSBkcmF3ZXIgb3IKKyAgICAgICA7OyBwcm9wZXJ0 eSBkcmF3ZXJzIGluIHRoZSBvdXRsaW5lLiAgSWYgY2F0ZWdvcnkgaXMgZm91bmQgaW4KKyAgICAg ICA7OyB0aGUgcHJvcGVydHkgZHJhd2VyIGZvciB0aGUgd2hvbGUgYnVmZmVyIHRoYXQgdmFsdWUK KyAgICAgICA7OyBvdmVycmlkZXMgdGhlIGtleXdvcmQtYmFzZWQgdmFsdWUgc2V0IGFib3ZlLgog ICAgICAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCiAgICAgICAgKGxldCAoKHJlZ2V4cCAob3Jn LXJlLXByb3BlcnR5ICJDQVRFR09SWSIpKSkKIAkgKHdoaWxlIChyZS1zZWFyY2gtZm9yd2FyZCBy ZWdleHAgbmlsIHQpCiAJICAgKGxldCAoKHZhbHVlIChtYXRjaC1zdHJpbmctbm8tcHJvcGVydGll cyAzKSkpCiAJICAgICAod2hlbiAob3JnLWF0LXByb3BlcnR5LXApCiAJICAgICAgIChwdXQtdGV4 dC1wcm9wZXJ0eQotCQkoc2F2ZS1leGN1cnNpb24gKG9yZy1iYWNrLXRvLWhlYWRpbmcgdCkgKHBv aW50KSkKLQkJKHNhdmUtZXhjdXJzaW9uIChvcmctZW5kLW9mLXN1YnRyZWUgdCB0KSAocG9pbnQp KQorCQkoc2F2ZS1leGN1cnNpb24gKG9yZy1iYWNrLXRvLWhlYWRpbmctb3ItcG9pbnQtbWluIHQp KQorCQkoc2F2ZS1leGN1cnNpb24gKGlmIChvcmctYmVmb3JlLWZpcnN0LWhlYWRpbmctcCkKKwkJ CQkgICAgKHBvaW50LW1heCkKKwkJCQkgIChvcmctZW5kLW9mLXN1YnRyZWUgdCB0KSkpCiAJCSdv cmctY2F0ZWdvcnkKIAkJdmFsdWUpKSkpKSkpKSkKIApAQCAtMTA2NDYsNyArMTA2NzYsNyBAQCBw cmVmZXIgYSBzdGF0ZSBpbiB0aGUgY3VycmVudCBzZXF1ZW5jZSBvdmVyIG9uIGluIGFub3RoZXIg c2VxdWVuY2UuIgogCSAgICAoc2V0cSB0ZyAob3JnLWFkZC1wcm9wcyB0ZyBuaWwgJ2ZhY2UKIAkJ CQkgICAgKG9yZy1nZXQtdG9kby1mYWNlIHRnKSkpCiAJICAgICh3aGVuIChhbmQgKD0gY250IDAp IChub3QgaW5ncm91cCkpIChpbnNlcnQgIiAgIikpCi0JICAgIChzZXRxIHByb21wdCAoY29uY2F0 IHByb21wdCAiWyIgKGNoYXItdG8tc3RyaW5nIGMpICJdICIgdGcgIiAiKSkgCisJICAgIChzZXRx IHByb21wdCAoY29uY2F0IHByb21wdCAiWyIgKGNoYXItdG8tc3RyaW5nIGMpICJdICIgdGcgIiAi KSkKIAkgICAgKGluc2VydCAiWyIgYyAiXSAiIHRnIChtYWtlLXN0cmluZwogCQkJCSAgICgtIGZ3 aWR0aCA0IChsZW5ndGggdGcpKSA/XCApKQogCSAgICAod2hlbiAoYW5kICg9IChzZXRxIGNudCAo MSsgY250KSkgbmNvbCkKQEAgLTEyOTIxLDMwICsxMjk1MSw0NSBAQCBNb2RpZmljYXRpb25zIGFy ZSBtYWRlIGJ5IHNpZGUtZWZmZWN0LiAgUmV0dXJuIG5ldyBhbGlzdC4iCiAKIChkZWZ1biBvcmct Z2V0LXByb3BlcnR5LWJsb2NrICgmb3B0aW9uYWwgYmVnIGZvcmNlKQogICAiUmV0dXJuIHRoZSAo YmVnIC4gZW5kKSByYW5nZSBvZiB0aGUgYm9keSBvZiB0aGUgcHJvcGVydHkgZHJhd2VyLgotQkVH IGlzIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGN1cnJlbnQgc3VidHJlZSwgb3Igb2YgdGhlIHBhcnQK LWJlZm9yZSB0aGUgZmlyc3QgaGVhZGxpbmUuICBJZiBpdCBpcyBub3QgZ2l2ZW4sIGl0IHdpbGwg YmUgZm91bmQuCi1JZiB0aGUgZHJhd2VyIGRvZXMgbm90IGV4aXN0LCBjcmVhdGUgaXQgaWYgRk9S Q0UgaXMgbm9uLW5pbCwgb3IKLXJldHVybiBuaWwuIgorQkVHIGlzIHRoZSBiZWdpbm5pbmcgb2Yg dGhlIGN1cnJlbnQgc3VidHJlZSBvciB0aGUgYmVnaW5uaW5nIG9mCit0aGUgZG9jdW1lbnQgaWYg YmVmb3JlIHRoZSBmaXJzdCBoZWFkbGluZS4gIElmIGl0IGlzIG5vdCBnaXZlbiwKK2l0IHdpbGwg YmUgZm91bmQuICBJZiB0aGUgZHJhd2VyIGRvZXMgbm90IGV4aXN0LCBjcmVhdGUgaXQgaWYKK0ZP UkNFIGlzIG5vbi1uaWwsIG9yIHJldHVybiBuaWwuIgogICAob3JnLXdpdGgtd2lkZS1idWZmZXIK LSAgICh3aGVuIGJlZyAoZ290by1jaGFyIGJlZykpCi0gICAodW5sZXNzIChvcmctYmVmb3JlLWZp cnN0LWhlYWRpbmctcCkKLSAgICAgKGxldCAoKGJlZyAoY29uZCAoYmVnKQorICAgKGxldCAoKGJl ZyAoY29uZCAoYmVnIChnb3RvLWNoYXIgYmVnKSkKIAkJICAgICAgKChvciAobm90IChmZWF0dXJl cCAnb3JnLWlubGluZXRhc2spKQogCQkJICAgKG9yZy1pbmxpbmV0YXNrLWluLXRhc2stcCkpCi0J CSAgICAgICAob3JnLWJhY2stdG8taGVhZGluZyB0KSkKLQkJICAgICAgKHQgKG9yZy13aXRoLWxp bWl0ZWQtbGV2ZWxzIChvcmctYmFjay10by1oZWFkaW5nIHQpKSkpKSkKLSAgICAgICAoZm9yd2Fy ZC1saW5lKQotICAgICAgICh3aGVuIChsb29raW5nLWF0LXAgb3JnLXBsYW5uaW5nLWxpbmUtcmUp IChmb3J3YXJkLWxpbmUpKQotICAgICAgIChjb25kICgobG9va2luZy1hdCBvcmctcHJvcGVydHkt ZHJhd2VyLXJlKQotCSAgICAgIChmb3J3YXJkLWxpbmUpCi0JICAgICAgKGNvbnMgKHBvaW50KSAo cHJvZ24gKGdvdG8tY2hhciAobWF0Y2gtZW5kIDApKQotCQkJCSAgIChsaW5lLWJlZ2lubmluZy1w b3NpdGlvbikpKSkKLQkgICAgIChmb3JjZQotCSAgICAgIChnb3RvLWNoYXIgYmVnKQotCSAgICAg IChvcmctaW5zZXJ0LXByb3BlcnR5LWRyYXdlcikKLQkgICAgICAobGV0ICgocG9zIChzYXZlLWV4 Y3Vyc2lvbiAoc2VhcmNoLWZvcndhcmQgIjpFTkQ6IikKLQkJCQkJIChsaW5lLWJlZ2lubmluZy1w b3NpdGlvbikpKSkKLQkJKGNvbnMgcG9zIHBvcykpKSkpKSkpCisJCSAgICAgICAob3JnLWJhY2st dG8taGVhZGluZy1vci1wb2ludC1taW4gdCkgKHBvaW50KSkKKwkJICAgICAgKHQgKG9yZy13aXRo LWxpbWl0ZWQtbGV2ZWxzCisJCQkgIChvcmctYmFjay10by1oZWFkaW5nLW9yLXBvaW50LW1pbiB0 KSkKKwkJCSAocG9pbnQpKSkpKQorICAgICA7OyBNb3ZlIHBvaW50IHRvIGl0cyBwb3NpdGlvbiBh Y2NvcmRpbmcgdG8gaXRzIHBvc2l0aW9uYWwgcnVsZXMuCisgICAgIChjb25kICgob3JnLWJlZm9y ZS1maXJzdC1oZWFkaW5nLXApCisJICAgICh3aGlsZSAoYW5kIChib2xwKSAob3IgKG9yZy1hdC1r ZXl3b3JkLXApIChvcmctYXQtY29tbWVudC1wKSkpIChmb3J3YXJkLWxpbmUpKSkKKwkgICAodCAo Zm9yd2FyZC1saW5lKQorCSAgICAgICh3aGVuIChsb29raW5nLWF0LXAgb3JnLXBsYW5uaW5nLWxp bmUtcmUpIChmb3J3YXJkLWxpbmUpKSkpCisgICAgIChjb25kICgobG9va2luZy1hdCBvcmctcHJv cGVydHktZHJhd2VyLXJlKQorCSAgICAoZm9yd2FyZC1saW5lKQorCSAgICAoY29ucyAocG9pbnQp IChwcm9nbiAoZ290by1jaGFyIChtYXRjaC1lbmQgMCkpCisJCQkJIChsaW5lLWJlZ2lubmluZy1w b3NpdGlvbikpKSkKKwkgICAoZm9yY2UKKwkgICAgKGdvdG8tY2hhciBiZWcpCisJICAgIChvcmct aW5zZXJ0LXByb3BlcnR5LWRyYXdlcikKKwkgICAgKGxldCAoKHBvcyAoc2F2ZS1leGN1cnNpb24g KHJlLXNlYXJjaC1mb3J3YXJkIG9yZy1wcm9wZXJ0eS1kcmF3ZXItcmUpCisJCQkJICAgICAgIChs aW5lLWJlZ2lubmluZy1wb3NpdGlvbikpKSkKKwkgICAgICAoY29ucyBwb3MgcG9zKSkpKSkpKQor CisoZGVmdW4gb3JnLWF0LXByb3BlcnR5LWJsb2NrLXAgKCkKKyAgIk5vbi1uaWwgd2hlbiBwb2lu dCBpcyBhdCB0aGUgZmlyc3QgbGluZSBvZiBhIHByb3BlcnR5IGRyYXdlci4KK1RoZSBwcm9wZXJ0 eSBkcmF3ZXIgaXMgdmFsaWRhdGVkIGFjY29yZGluZyB0byBpdHMgcG9zaXRpb25hbAorcnVsZXMg dXNpbmcgYG9yZy1nZXQtcHJvcGVydHktYmxvY2snLiIKKyAgKHNhdmUtZXhjdXJzaW9uCisgICAg KGJlZ2lubmluZy1vZi1saW5lKQorICAgIChhbmQgKGxvb2tpbmctYXQgb3JnLXByb3BlcnR5LXN0 YXJ0LXJlKQorCSAoZm9yd2FyZC1saW5lKQorCSAobGV0ICgocHJvcGVydHktZHJhd2VyIChvcmct Z2V0LXByb3BlcnR5LWJsb2NrKSkpCisJICAgKGFuZCBwcm9wZXJ0eS1kcmF3ZXIKKwkJKD0gKHBv aW50KSAoY2FyIHByb3BlcnR5LWRyYXdlcikpKSkpKSkKIAogKGRlZnVuIG9yZy1hdC1wcm9wZXJ0 eS1wICgpCiAgICJOb24tbmlsIHdoZW4gcG9pbnQgaXMgaW5zaWRlIGEgcHJvcGVydHkgZHJhd2Vy LgpAQCAtMTMwMjksNyArMTMwNzQsNyBAQCBSZXR1cm4gdmFsdWUgaXMgYW4gYWxpc3QuICBLZXlz IGFyZSBwcm9wZXJ0aWVzLCBhcyB1cGNhc2VkCiBzdHJpbmdzLiIKICAgKG9yZy13aXRoLXBvaW50 LWF0IHBvbQogICAgICh3aGVuIChhbmQgKGRlcml2ZWQtbW9kZS1wICdvcmctbW9kZSkKLQkgICAg ICAgKGlnbm9yZS1lcnJvcnMgKG9yZy1iYWNrLXRvLWhlYWRpbmcgdCkpKQorCSAgICAgICAob3Jn LWJhY2stdG8taGVhZGluZy1vci1wb2ludC1taW4gdCkpCiAgICAgICAoY2F0Y2ggJ2V4aXQKIAko bGV0KiAoKGJlZyAocG9pbnQpKQogCSAgICAgICAoc3BlY2lmaWMgKGFuZCAoc3RyaW5ncCB3aGlj aCkgKHVwY2FzZSB3aGljaCkpKQpAQCAtMTMyMzgsMTMgKzEzMjgzLDEzIEBAIHVubGVzcyBMSVRF UkFMLU5JTCBpcyBub24tbmlsLiIKIAk7OyBSZXR1cm4gZmluYWwgdmFsdWVzLgogCShhbmQgKG5v dCAoZXF1YWwgdmFsdWUgJyhuaWwpKSkgKG5yZXZlcnNlIHZhbHVlKSkpKSkpCiAKLShkZWZ1biBv cmctLXByb3BlcnR5LWdsb2JhbC12YWx1ZSAocHJvcGVydHkgbGl0ZXJhbC1uaWwpCi0gICJSZXR1 cm4gdmFsdWUgZm9yIFBST1BFUlRZIGluIGN1cnJlbnQgYnVmZmVyLgorKGRlZnVuIG9yZy0tcHJv cGVydHktZ2xvYmFsLW9yLWtleXdvcmQtdmFsdWUgKHByb3BlcnR5IGxpdGVyYWwtbmlsKQorICAi UmV0dXJuIHZhbHVlIGZvciBQUk9QRVJUWSBhcyBkZWZpbmVkIGJ5IGdsb2JhbCBwcm9wZXJ0aWVz IG9yIGJ5IGtleXdvcmQuCiBSZXR1cm4gdmFsdWUgaXMgYSBzdHJpbmcuICBSZXR1cm4gbmlsIGlm IHByb3BlcnR5IGlzIG5vdCBzZXQKLWdsb2JhbGx5LiAgQWxzbyByZXR1cm4gbmlsIHdoZW4gUFJP UEVSVFkgaXMgc2V0IHRvIFwibmlsXCIsCi11bmxlc3MgTElURVJBTC1OSUwgaXMgbm9uLW5pbC4i CitnbG9iYWxseSBvciBieSBrZXl3b3JkLiAgQWxzbyByZXR1cm4gbmlsIHdoZW4gUFJPUEVSVFkg aXMgc2V0IHRvCitcIm5pbFwiLCB1bmxlc3MgTElURVJBTC1OSUwgaXMgbm9uLW5pbC4iCiAgIChs ZXQgKChnbG9iYWwKLQkgKGNkciAob3IgKGFzc29jLXN0cmluZyBwcm9wZXJ0eSBvcmctZmlsZS1w cm9wZXJ0aWVzIHQpCisJIChjZHIgKG9yIChhc3NvYy1zdHJpbmcgcHJvcGVydHkgb3JnLWtleXdv cmQtcHJvcGVydGllcyB0KQogCQkgIChhc3NvYy1zdHJpbmcgcHJvcGVydHkgb3JnLWdsb2JhbC1w cm9wZXJ0aWVzIHQpCiAJCSAgKGFzc29jLXN0cmluZyBwcm9wZXJ0eSBvcmctZ2xvYmFsLXByb3Bl cnRpZXMtZml4ZWQgdCkpKSkpCiAgICAgKGlmIGxpdGVyYWwtbmlsIGdsb2JhbCAob3JnLW5vdC1u aWwgZ2xvYmFsKSkpKQpAQCAtMTMzOTMsMTIgKzEzNDM4LDEyIEBAIEhvd2V2ZXIsIGlmIExJVEVS QUwtTklMIGlzIHNldCwgcmV0dXJuIHRoZSBzdHJpbmcgdmFsdWUgXCJuaWxcIiBpbnN0ZWFkLiIK IAkJCSAgIHZhbHVlKSkpCiAJICAgKGNvbmQKIAkgICAgKChjYXIgdikKLQkgICAgIChvcmctYmFj ay10by1oZWFkaW5nIHQpCisJICAgICAob3JnLWJhY2stdG8taGVhZGluZy1vci1wb2ludC1taW4g dCkKIAkgICAgIChtb3ZlLW1hcmtlciBvcmctZW50cnktcHJvcGVydHktaW5oZXJpdGVkLWZyb20g KHBvaW50KSkKIAkgICAgICh0aHJvdyAnZXhpdCBuaWwpKQotCSAgICAoKG9yZy11cC1oZWFkaW5n LXNhZmUpKQorCSAgICAoKG9yZy11cC1oZWFkaW5nLW9yLXBvaW50LW1pbikpCiAJICAgICh0Ci0J ICAgICAobGV0ICgoZ2xvYmFsIChvcmctLXByb3BlcnR5LWdsb2JhbC12YWx1ZSBwcm9wZXJ0eSBs aXRlcmFsLW5pbCkpKQorCSAgICAgKGxldCAoKGdsb2JhbCAob3JnLS1wcm9wZXJ0eS1nbG9iYWwt b3Ita2V5d29yZC12YWx1ZSBwcm9wZXJ0eSBsaXRlcmFsLW5pbCkpKQogCSAgICAgICAoY29uZCAo KG5vdCBnbG9iYWwpKQogCQkgICAgICh2YWx1ZSAoc2V0cSB2YWx1ZSAoY29uY2F0IGdsb2JhbCAi ICIgdmFsdWUpKSkKIAkJICAgICAodCAoc2V0cSB2YWx1ZSBnbG9iYWwpKSkpCkBAIC0xMzQzMCw4 ICsxMzQ3NSw4IEBAIGRlY3JlYXNlcyBzY2hlZHVsZWQgb3IgZGVhZGxpbmUgZGF0ZSBieSBvbmUg ZGF5LiIKIAkgKHVzZXItZXJyb3IgIkludmFsaWQgcHJvcGVydHkgbmFtZTogXCIlc1wiIiBwcm9w ZXJ0eSkpKQogICAob3JnLXdpdGgtcG9pbnQtYXQgcG9tCiAgICAgKGlmIChvciAobm90IChmZWF0 dXJlcCAnb3JnLWlubGluZXRhc2spKSAob3JnLWlubGluZXRhc2staW4tdGFzay1wKSkKLQkob3Jn LWJhY2stdG8taGVhZGluZyB0KQotICAgICAgKG9yZy13aXRoLWxpbWl0ZWQtbGV2ZWxzIChvcmct YmFjay10by1oZWFkaW5nIHQpKSkKKwkob3JnLWJhY2stdG8taGVhZGluZy1vci1wb2ludC1taW4g dCkKKyAgICAgIChvcmctd2l0aC1saW1pdGVkLWxldmVscyAob3JnLWJhY2stdG8taGVhZGluZy1v ci1wb2ludC1taW4gdCkpKQogICAgIChsZXQgKChiZWcgKHBvaW50KSkpCiAgICAgICAoY29uZAog ICAgICAgICgoZXF1YWwgcHJvcGVydHkgIlRPRE8iKQpAQCAtMTM1NjcsMTkgKzEzNjEyLDI2IEBA IENPTFVNTiBmb3JtYXRzIGluIHRoZSBjdXJyZW50IGJ1ZmZlci4iCiBEbyBub3RoaW5nIGlmIHRo ZSBkcmF3ZXIgYWxyZWFkeSBleGlzdHMuICBUaGUgbmV3bHkgY3JlYXRlZAogZHJhd2VyIGlzIGlt bWVkaWF0ZWx5IGhpZGRlbi4iCiAgIChvcmctd2l0aC13aWRlLWJ1ZmZlcgorICAgOzsgU2V0IHBv aW50IHRvIHRoZSBwb3NpdGlvbiB3aGVyZSB0aGUgZHJhd2VyIHNob3VsZCBiZSBpbnNlcnRlZC4K ICAgIChpZiAob3IgKG5vdCAoZmVhdHVyZXAgJ29yZy1pbmxpbmV0YXNrKSkgKG9yZy1pbmxpbmV0 YXNrLWluLXRhc2stcCkpCi0gICAgICAgKG9yZy1iYWNrLXRvLWhlYWRpbmcgdCkKLSAgICAgKG9y Zy13aXRoLWxpbWl0ZWQtbGV2ZWxzIChvcmctYmFjay10by1oZWFkaW5nIHQpKSkKLSAgIChmb3J3 YXJkLWxpbmUpCi0gICAod2hlbiAobG9va2luZy1hdC1wIG9yZy1wbGFubmluZy1saW5lLXJlKSAo Zm9yd2FyZC1saW5lKSkKKyAgICAgICAob3JnLWJhY2stdG8taGVhZGluZy1vci1wb2ludC1taW4g dCkKKyAgICAgKG9yZy13aXRoLWxpbWl0ZWQtbGV2ZWxzIChvcmctYmFjay10by1oZWFkaW5nLW9y LXBvaW50LW1pbiB0KSkpCisgICAoaWYgKG9yZy1iZWZvcmUtZmlyc3QtaGVhZGluZy1wKQorICAg ICAgICh3aGlsZSAoYW5kIChib2xwKSAob3IgKG9yZy1hdC1rZXl3b3JkLXApIChvcmctYXQtY29t bWVudC1wKSkpIChmb3J3YXJkLWxpbmUpKQorICAgICAocHJvZ24KKyAgICAgICAoZm9yd2FyZC1s aW5lKQorICAgICAgICh3aGVuIChsb29raW5nLWF0LXAgb3JnLXBsYW5uaW5nLWxpbmUtcmUpIChm b3J3YXJkLWxpbmUpKSkpCiAgICAodW5sZXNzIChsb29raW5nLWF0LXAgb3JnLXByb3BlcnR5LWRy YXdlci1yZSkKICAgICAgOzsgTWFrZSBzdXJlIHdlIHN0YXJ0IGVkaXRpbmcgYSBsaW5lIGZyb20g Y3VycmVudCBlbnRyeSwgbm90IGZyb20KICAgICAgOzsgbmV4dCBvbmUuICBJdCBwcmV2ZW50cyBl eHRlbmRpbmcgdGV4dCBwcm9wZXJ0aWVzIG9yIG92ZXJsYXlzCiAgICAgIDs7IGJlbG9uZ2luZyB0 byB0aGUgbGF0dGVyLgotICAgICAod2hlbiAoYm9scCkgKGJhY2t3YXJkLWNoYXIpKQotICAgICAo bGV0ICgoYmVnaW4gKDErIChwb2ludCkpKQorICAgICAod2hlbiAoYW5kIChib2xwKSAoPiAocG9p bnQpIChwb2ludC1taW4pKSkgKGJhY2t3YXJkLWNoYXIpKQorICAgICAobGV0ICgoYmVnaW4gKGlm ICg9IChwb2ludCkgKHBvaW50LW1pbikpCisJCSAgICAgIChwb2ludCkKKwkJICAgICgxKyAocG9p bnQpKSkpCiAJICAgKGluaGliaXQtcmVhZC1vbmx5IHQpKQotICAgICAgIChpbnNlcnQgIlxuOlBS T1BFUlRJRVM6XG46RU5EOiIpCisgICAgICAgKHVubGVzcyAoPSBiZWdpbiAocG9pbnQtbWluKSkg KGluc2VydCAiXG4iKSkKKyAgICAgICAoaW5zZXJ0ICI6UFJPUEVSVElFUzpcbjpFTkQ6IikKICAg ICAgICAob3JnLWZsYWctZHJhd2VyIHQgbmlsIChsaW5lLWVuZC1wb3NpdGlvbiAwKSAocG9pbnQp KQogICAgICAgICh3aGVuIChlb2JwKSAoaW5zZXJ0ICJcbiIpKQogICAgICAgIChvcmctaW5kZW50 LXJlZ2lvbiBiZWdpbiAocG9pbnQpKSkpKSkKQEAgLTIwNDg0LDYgKzIwNTM2LDE1IEBAIGludGVy YWN0aXZlIGNvbW1hbmQgd2l0aCBzaW1pbGFyIGJlaGF2aW9yLiIKICAgICAoZXJyb3IgKGVycm9y ICJCZWZvcmUgZmlyc3QgaGVhZGxpbmUgYXQgcG9zaXRpb24gJWQgaW4gYnVmZmVyICVzIgogCQkg IChwb2ludCkgKGN1cnJlbnQtYnVmZmVyKSkpKSkKIAorKGRlZnVuIG9yZy1iYWNrLXRvLWhlYWRp bmctb3ItcG9pbnQtbWluICgmb3B0aW9uYWwgaW52aXNpYmxlLW9rKQorICAiR28gYmFjayB0byBo ZWFkaW5nIG9yIGZpcnN0IHBvaW50IGluIGJ1ZmZlci4KK0lmIHBvaW50IGlzIGJlZm9yZSBmaXJz dCBoZWFkaW5nIGdvIHRvIGZpcnN0IHBvaW50IGluIGJ1ZmZlcgoraW5zdGVhZCBvZiBiYWNrIHRv IGhlYWRpbmcuIgorICAoY29uZGl0aW9uLWNhc2UgbmlsCisgICAgICAob3V0bGluZS1iYWNrLXRv LWhlYWRpbmcgaW52aXNpYmxlLW9rKQorICAgIChlcnJvcgorICAgICAoZ290by1jaGFyIChwb2lu dC1taW4pKSkpKQorCiAoZGVmdW4gb3JnLWJlZm9yZS1maXJzdC1oZWFkaW5nLXAgKCkKICAgIkJl Zm9yZSBmaXJzdCBoZWFkaW5nPyIKICAgKG9yZy13aXRoLWxpbWl0ZWQtbGV2ZWxzCkBAIC0yMDUx Nyw2ICsyMDU3OCwxMiBAQCB1bmxlc3Mgb3B0aW9uYWwgYXJndW1lbnQgTk8tSU5IRVJJVEFOQ0Ug aXMgbm9uLW5pbC4iCiAgICAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCiAgICAgICAobG9va2luZy1h dCAiXlsgXHRdKiMgIikpKSkKIAorKGRlZnVuIG9yZy1hdC1rZXl3b3JkLXAgbmlsCisgICJJcyBj dXJzb3IgYXQgYSBrZXl3b3JkLWxpbmU/IgorICAoc2F2ZS1leGN1cnNpb24KKyAgICAobW92ZS1i ZWdpbm5pbmctb2YtbGluZSAxKQorICAgIChsb29raW5nLWF0IG9yZy1rZXl3b3JkLXJlZ2V4cCkp KQorCiAoZGVmdW4gb3JnLWF0LWRyYXdlci1wIG5pbAogICAiSXMgY3Vyc29yIGF0IGEgZHJhd2Vy IGtleXdvcmQ/IgogICAoc2F2ZS1leGN1cnNpb24KQEAgLTIwNTY0LDYgKzIwNjMxLDE3IEBAIG1h a2UgYSBzaWduaWZpY2FudCBkaWZmZXJlbmNlIGluIG91dGxpbmVzIHdpdGggdmVyeSBtYW55IHNp YmxpbmdzLiIKIAkgICAocmUtc2VhcmNoLWJhY2t3YXJkIChmb3JtYXQgIl5cXCpcXHsxLCVkXFx9 ICIgbGV2ZWwtdXApIG5pbCB0KQogCSAgIChmdW5jYWxsIG91dGxpbmUtbGV2ZWwpKSkpKQogCiso ZGVmdW4gb3JnLXVwLWhlYWRpbmctb3ItcG9pbnQtbWluICgpCisgICJNb3ZlIHRvIHRoZSBoZWFk aW5nIGxpbmUgb2Ygd2hpY2ggdGhlIHByZXNlbnQgaXMgYSBzdWJoZWFkaW5nLCBvciBwb2ludC1t aW4uCitUaGlzIHZlcnNpb24gaXMgbmVlZGVkIHRvIG1ha2UgcG9pbnQtbWluIGJlaGF2ZSBsaWtl IGEgdmlydHVhbAoraGVhZGluZyBvZiBsZXZlbCAwIGZvciBwcm9wZXJ0eS1pbmhlcml0YW5jZS4g IEl0IHdpbGwgcmV0dXJuIHRoZQorbGV2ZWwgb2YgdGhlIGhlYWRsaW5lIGZvdW5kIChkb3duIHRv IDApIG9yIG5pbCBpZiBhbHJlYWR5IGF0IGEKK3BvaW50IGJlZm9yZSB0aGUgZmlyc3QgaGVhZGxp bmUgb3IgYXQgcG9pbnQtbWluLiIKKyAgKHdoZW4gKGlnbm9yZS1lcnJvcnMgKG9yZy1iYWNrLXRv LWhlYWRpbmcgdCkpCisgICAgKGlmICg8IDEgKGZ1bmNhbGwgb3V0bGluZS1sZXZlbCkpCisJKG9y Zy11cC1oZWFkaW5nLXNhZmUpCisgICAgICAodW5sZXNzICg9IChwb2ludCkgKHBvaW50LW1pbikp IChnb3RvLWNoYXIgKHBvaW50LW1pbikpKSkpKQorCiAoZGVmdW4gb3JnLWZpcnN0LXNpYmxpbmct cCAoKQogICAiSXMgdGhpcyBoZWFkaW5nIHRoZSBmaXJzdCBjaGlsZCBvZiBpdHMgcGFyZW50cz8i CiAgIChpbnRlcmFjdGl2ZSkKQEAgLTIwNjY0LDI4ICsyMDc0MiwzMSBAQCBJZiB0aGVyZSBpcyBu byBzdWNoIGhlYWRpbmcsIHJldHVybiBuaWwuIgogKGRlZnVuIG9yZy1lbmQtb2Ytc3VidHJlZSAo Jm9wdGlvbmFsIGludmlzaWJsZS1vayB0by1oZWFkaW5nKQogICAiR290byB0byB0aGUgZW5kIG9m IGEgc3VidHJlZS4iCiAgIDs7IFRoaXMgY29udGFpbnMgYW4gZXhhY3QgY29weSBvZiB0aGUgb3Jp Z2luYWwgZnVuY3Rpb24sIGJ1dCBpdCB1c2VzCi0gIDs7IGBvcmctYmFjay10by1oZWFkaW5nJywg dG8gbWFrZSBpdCB3b3JrIGFsc28gaW4gaW52aXNpYmxlCi0gIDs7IHRyZWVzLiAgQW5kIGlzIHVz ZXMgYW4gaW52aXNpYmxlLW9rIGFyZ3VtZW50LgorICA7OyBgb3JnLWJhY2stdG8taGVhZGluZy1v ci1wb2ludC1taW4nLCB0byBtYWtlIGl0IHdvcmsgYWxzbyBpbiBpbnZpc2libGUKKyAgOzsgdHJl ZXMgYW5kIGJlZm9yZSBmaXJzdCBoZWFkbGluZS4gIEFuZCBpcyB1c2VzIGFuIGludmlzaWJsZS1v ayBhcmd1bWVudC4KICAgOzsgVW5kZXIgRW1hY3MgdGhpcyBpcyBub3QgbmVlZGVkLCBidXQgdGhl IG9sZCBvdXRsaW5lLmVsIG5lZWRzIHRoaXMgZml4LgogICA7OyBGdXJ0aGVybW9yZSwgd2hlbiB1 c2VkIGluc2lkZSBPcmcsIGZpbmRpbmcgdGhlIGVuZCBvZiBhIGxhcmdlIHN1YnRyZWUKICAgOzsg d2l0aCBtYW55IGNoaWxkcmVuIGFuZCBncmFuZGNoaWxkcmVuIGV0YywgdGhpcyBjYW4gYmUgbXVj aCBmYXN0ZXIKICAgOzsgdGhhbiB0aGUgb3V0bGluZSB2ZXJzaW9uLgotICAob3JnLWJhY2stdG8t aGVhZGluZyBpbnZpc2libGUtb2spCisgIChvcmctYmFjay10by1oZWFkaW5nLW9yLXBvaW50LW1p biBpbnZpc2libGUtb2spCiAgIChsZXQgKChmaXJzdCB0KQogCShsZXZlbCAoZnVuY2FsbCBvdXRs aW5lLWxldmVsKSkpCi0gICAgKGlmIChhbmQgKGRlcml2ZWQtbW9kZS1wICdvcmctbW9kZSkgKDwg bGV2ZWwgMTAwMCkpCi0JOzsgQSB0cnVlIGhlYWRpbmcgKG5vdCBhIHBsYWluIGxpc3QgaXRlbSks IGluIE9yZwotCTs7IFRoaXMgbWVhbnMgd2UgY2FuIGVhc2lseSBmaW5kIHRoZSBlbmQgYnkgbG9v a2luZwotCTs7IG9ubHkgZm9yIHRoZSByaWdodCBudW1iZXIgb2Ygc3RhcnMuICBVc2luZyBhIHJl Z2V4cCB0byBkbwotCTs7IHRoaXMgaXMgc28gbXVjaCBmYXN0ZXIgdGhhbiB1c2luZyBhIExpc3Ag bG9vcC4KLQkobGV0ICgocmUgKGNvbmNhdCAiXlxcKlxcezEsIiAoaW50LXRvLXN0cmluZyBsZXZl bCkgIlxcfSAiKSkpCi0JICAoZm9yd2FyZC1jaGFyIDEpCi0JICAoYW5kIChyZS1zZWFyY2gtZm9y d2FyZCByZSBuaWwgJ21vdmUpIChiZWdpbm5pbmctb2YtbGluZSAxKSkpCi0gICAgICA7OyBzb21l dGhpbmcgZWxzZSwgZG8gaXQgdGhlIHNsb3cgd2F5Ci0gICAgICAod2hpbGUgKGFuZCAobm90IChl b2JwKSkKLQkJICAob3IgZmlyc3QgKD4gKGZ1bmNhbGwgb3V0bGluZS1sZXZlbCkgbGV2ZWwpKSkK LQkoc2V0cSBmaXJzdCBuaWwpCi0JKG91dGxpbmUtbmV4dC1oZWFkaW5nKSkpCisgICAgKGNvbmQg KCg9IGxldmVsIDApCisJICAgKGdvdG8tY2hhciAocG9pbnQtbWF4KSkpCisJICAoKGFuZCAoZGVy aXZlZC1tb2RlLXAgJ29yZy1tb2RlKSAoPCBsZXZlbCAxMDAwKSkKKwkgICA7OyBBIHRydWUgaGVh ZGluZyAobm90IGEgcGxhaW4gbGlzdCBpdGVtKSwgaW4gT3JnCisJICAgOzsgVGhpcyBtZWFucyB3 ZSBjYW4gZWFzaWx5IGZpbmQgdGhlIGVuZCBieSBsb29raW5nCisJICAgOzsgb25seSBmb3IgdGhl IHJpZ2h0IG51bWJlciBvZiBzdGFycy4gIFVzaW5nIGEgcmVnZXhwIHRvIGRvCisJICAgOzsgdGhp cyBpcyBzbyBtdWNoIGZhc3RlciB0aGFuIHVzaW5nIGEgTGlzcCBsb29wLgorCSAgIChsZXQgKChy ZSAoY29uY2F0ICJeXFwqXFx7MSwiIChpbnQtdG8tc3RyaW5nIGxldmVsKSAiXFx9ICIpKSkKKwkg ICAgIChmb3J3YXJkLWNoYXIgMSkKKwkgICAgIChhbmQgKHJlLXNlYXJjaC1mb3J3YXJkIHJlIG5p bCAnbW92ZSkgKGJlZ2lubmluZy1vZi1saW5lIDEpKSkpCisJICAodAorCSAgIDs7IHNvbWV0aGlu ZyBlbHNlLCBkbyBpdCB0aGUgc2xvdyB3YXkKKwkgICAod2hpbGUgKGFuZCAobm90IChlb2JwKSkK KwkJICAgICAgIChvciBmaXJzdCAoPiAoZnVuY2FsbCBvdXRsaW5lLWxldmVsKSBsZXZlbCkpKQor CSAgICAgKHNldHEgZmlyc3QgbmlsKQorCSAgICAgKG91dGxpbmUtbmV4dC1oZWFkaW5nKSkpKQog ICAgICh1bmxlc3MgdG8taGVhZGluZwogICAgICAgKHdoZW4gKG1lbXEgKHByZWNlZGluZy1jaGFy KSAnKD9cbiA/XF5NKSkKIAk7OyBHbyB0byBlbmQgb2YgbGluZSBiZWZvcmUgaGVhZGluZwpkaWZm IC0tZ2l0IGEvdGVzdGluZy9leGFtcGxlcy9wcm9wZXJ0eS1pbmhlcml0YW5jZS5vcmcgYi90ZXN0 aW5nL2V4YW1wbGVzL3Byb3BlcnR5LWluaGVyaXRhbmNlLm9yZwppbmRleCA2OTc5ZGU1OTUuLjlj MGI3ZTY2MiAxMDA2NDQKLS0tIGEvdGVzdGluZy9leGFtcGxlcy9wcm9wZXJ0eS1pbmhlcml0YW5j ZS5vcmcKKysrIGIvdGVzdGluZy9leGFtcGxlcy9wcm9wZXJ0eS1pbmhlcml0YW5jZS5vcmcKQEAg LTEsNSArMSw3IEBACi0jK3Byb3BlcnR5OiBoZWFkZXItYXJncyA6dmFyICBmb289MQotIytwcm9w ZXJ0eTogaGVhZGVyLWFyZ3MrIDp2YXIgYmFyPTIKKzpQUk9QRVJUSUVTOgorOmhlYWRlci1hcmdz OiA6dmFyIGZvbz0xCis6aGVhZGVyLWFyZ3MrOiA6dmFyIGJhcj0yCis6RU5EOgogCiAjK2JlZ2lu X3NyYyBlbWFjcy1saXNwCiAgICgrIGZvbyBiYXIpCmRpZmYgLS1naXQgYS90ZXN0aW5nL2xpc3Av dGVzdC1vcmctZWxlbWVudC5lbCBiL3Rlc3RpbmcvbGlzcC90ZXN0LW9yZy1lbGVtZW50LmVsCmlu ZGV4IDJhMTcxNjEzNC4uOWU5Y2JiMzgxIDEwMDY0NAotLS0gYS90ZXN0aW5nL2xpc3AvdGVzdC1v cmctZWxlbWVudC5lbAorKysgYi90ZXN0aW5nL2xpc3AvdGVzdC1vcmctZWxlbWVudC5lbApAQCAt MTkyNSw2ICsxOTI1LDE1IEBAIGVee2lcXHBpfSsxPTAKIAkgICAgKGxldCAoKGVsZW1lbnQgKG9y Zy1lbGVtZW50LWF0LXBvaW50KSkpCiAJICAgICAgKGxpc3QgKG9yZy1lbGVtZW50LXByb3BlcnR5 IDprZXkgZWxlbWVudCkKIAkJICAgIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6dmFsdWUgZWxlbWVu dCkpKSkpKQorICA7OyBUaGUgaW5zaWRlcyBvZiBwcm9wZXJ0eSBibG9ja3Mgb24gZG9jdW1lbnQg bGV2ZWwgYXJlIHBhcnNlZCB0aGUKKyAgOzsgc2FtZSB3YXkgYXMgaGVhZGxpbmUgcHJvcGVydHkg YmxvY2tzLiAgSS5lLiB0aGUgY29uY2VwdCBvZgorICA7OyBgbm9kZS1wcm9wZXJ0eScgYXBwbHkg YWxzbyBmb3IgcHJvcGVydGllcyBpbiB0aG9zZSBibG9ja3MuCisgIChzaG91bGQKKyAgIChlcXVh bCAnKCJhYmMiICJ2YWx1ZSIpCisJICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQgIjpQUk9QRVJU SUVTOlxuPHBvaW50PjphYmM6IHZhbHVlXG46RU5EOiIKKwkgICAgKGxldCAoKGVsZW1lbnQgKG9y Zy1lbGVtZW50LWF0LXBvaW50KSkpCisJICAgICAgKGxpc3QgKG9yZy1lbGVtZW50LXByb3BlcnR5 IDprZXkgZWxlbWVudCkKKwkJICAgIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6dmFsdWUgZWxlbWVu dCkpKSkpKQogICA7OyBWYWx1ZSBzaG91bGQgYmUgdHJpbW1lZC4KICAgKHNob3VsZAogICAgKGVx dWFsICJ2YWx1ZSIKQEAgLTIxMTEsNiArMjEyMCwxOCBAQCBPdXRzaWRlIGxpc3QiCiAgICAgICAg KG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0CiAJICAgIiogSFxuREVBRExJTkU6IDwyMDE0LTAzLTA0 IHR1ZS4+XG48cG9pbnQ+OlBST1BFUlRJRVM6XG46cHJvcDogdmFsdWVcbjpFTkQ6IgogCSAob3Jn LWVsZW1lbnQtdHlwZSAob3JnLWVsZW1lbnQtYXQtcG9pbnQpKSkpKQorICAoc2hvdWxkCisgICAo ZXEgJ3Byb3BlcnR5LWRyYXdlcgorICAgICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dCAiPHBv aW50PjpQUk9QRVJUSUVTOlxuOnByb3A6IHZhbHVlXG46RU5EOiIKKwkgKG9yZy1lbGVtZW50LXR5 cGUgKG9yZy1lbGVtZW50LWF0LXBvaW50KSkpKSkKKyAgKHNob3VsZAorICAgKGVxICdwcm9wZXJ0 eS1kcmF3ZXIKKyAgICAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQgIiMgQ1xuIytLZXk6IFZc biMgQ1xuPHBvaW50PjpQUk9QRVJUSUVTOlxuOnByb3A6IHZhbHVlXG46RU5EOiIKKwkgKG9yZy1l bGVtZW50LXR5cGUgKG9yZy1lbGVtZW50LWF0LXBvaW50KSkpKSkKKyAgKHNob3VsZC1ub3QKKyAg IChlcSAncHJvcGVydHktZHJhd2VyCisgICAgICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0ICJc bjxwb2ludD46UFJPUEVSVElFUzpcbjpwcm9wOiB2YWx1ZVxuOkVORDoiCisJIChvcmctZWxlbWVu dC10eXBlIChvcmctZWxlbWVudC1hdC1wb2ludCkpKSkpCiAgIDs7IEFsbG93IHByb3BlcnRpZXMg d2l0aG91dCB2YWx1ZSBhbmQgbm8gcHJvcGVydHkgYXQgYWxsLgogICAoc2hvdWxkCiAgICAoZXEg J3Byb3BlcnR5LWRyYXdlcgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9saXNwL3Rlc3Qtb3JnLmVsIGIv dGVzdGluZy9saXNwL3Rlc3Qtb3JnLmVsCmluZGV4IDAxZTk2NWVhNy4uMmI1ZDNkMjgwIDEwMDY0 NAotLS0gYS90ZXN0aW5nL2xpc3AvdGVzdC1vcmcuZWwKKysrIGIvdGVzdGluZy9saXNwL3Rlc3Qt b3JnLmVsCkBAIC0zODYsMTAgKzM4NiwxMTcgQEAKIAwKIDs7OyBEcmF3ZXJzCiAKKyhlcnQtZGVm dGVzdCB0ZXN0LW9yZy9hdC1wcm9wZXJ0eS1wICgpCisgICJUZXN0IGBvcmctYXQtcHJvcGVydHkt cCcgc3BlY2lmaWNhdGlvbnMuIgorICAoc2hvdWxkCisgICAoZXF1YWwgJ3QKKwkgIChvcmctdGVz dC13aXRoLXRlbXAtdGV4dCAiKiBIXG46UFJPUEVSVElFUzpcbjxwb2ludD46UFJPUDogdFxuOkVO RDpcbiIKKwkgICAgKG9yZy1hdC1wcm9wZXJ0eS1wKSkpKQorICAoc2hvdWxkCisgICAoZXF1YWwg J3QKKwkgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dCAiOlBST1BFUlRJRVM6XG48cG9pbnQ+OlBS T1A6IHRcbjpFTkQ6XG4iCisJICAgIChvcmctYXQtcHJvcGVydHktcCkpKSkpCisKKyhlcnQtZGVm dGVzdCB0ZXN0LW9yZy9hdC1wcm9wZXJ0eS1ibG9jay1wICgpCisgICJUZXN0IGBvcmctYXQtcHJv cGVydHktYmxvY2stcCcgc3BlY2lmaWNhdGlvbnMuIgorICAoc2hvdWxkCisgICAoZXF1YWwgJ3QK KwkgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dCAiKiBIXG48cG9pbnQ+OlBST1BFUlRJRVM6XG46 UFJPUDogdFxuOkVORDpcbiIKKwkgICAgKG9yZy1hdC1wcm9wZXJ0eS1ibG9jay1wKSkpKQorICAo c2hvdWxkCisgICAoZXF1YWwgJ3QKKwkgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dCAiOlBST1BF UlRJRVM6XG46UFJPUDogdFxuOkVORDpcbiIKKwkgICAgKG9yZy1hdC1wcm9wZXJ0eS1ibG9jay1w KSkpKQorICA7OyBUaGUgZnVuY3Rpb24gb25seSByZXR1cm5zIHQgaWYgcG9pbnQgaXMgYXQgdGhl IGZpcnN0IGxpbmUgb2YgYQorICA7OyBwcm9wZXJ0eSBibG9jay4KKyAgKHNob3VsZC1ub3QKKyAg IChlcXVhbCAndAorCSAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0ICI6UFJPUEVSVElFUzpcbjxw b2ludD46UFJPUDogdFxuOkVORDpcbiIKKwkgICAgKG9yZy1hdC1wcm9wZXJ0eS1ibG9jay1wKSkp KQorICAoc2hvdWxkKSkKKworKGVydC1kZWZ0ZXN0IHRlc3Qtb3JnL2dldC1wcm9wZXJ0eS1ibG9j ayAoKQorICAiVGVzdCBgb3JnLWdldC1wcm9wZXJ0eS1ibG9jaycgc3BlY2lmaWNhdGlvbnMuIgor ICAoc2hvdWxkCisgICAoZXF1YWwgJygxNCAuIDE0KQorCSAgKG9yZy10ZXN0LXdpdGgtdGVtcC10 ZXh0ICI6UFJPUEVSVElFUzpcbjpFTkQ6XG4qIEhcbiIKKwkgICAgKG9yZy1nZXQtcHJvcGVydHkt YmxvY2spKSkpCisgIChzaG91bGQKKyAgIChlcXVhbCAnKDE0IC4gMTQpCisJICAob3JnLXRlc3Qt d2l0aC10ZW1wLXRleHQgIjpQUk9QRVJUSUVTOlxuOkVORDpcbiIKKwkgICAgKG9yZy1nZXQtcHJv cGVydHktYmxvY2spKSkpCisgIDs7IENvbW1lbnRzIGFib3ZlIGEgZG9jdW1lbnQgcHJvcGVydHkg YmxvY2sgaXMgb2suCisgIChzaG91bGQKKyAgIChlcXVhbCAnKDE4IC4gMTgpCisJICAob3JnLXRl c3Qtd2l0aC10ZW1wLXRleHQgIiMgQ1xuOlBST1BFUlRJRVM6XG46RU5EOlxuIgorCSAgICAob3Jn LWdldC1wcm9wZXJ0eS1ibG9jaykpKSkKKyAgOzsgS2V5d29yZHMgYWJvdmUgYSBkb2N1bWVudCBw cm9wZXJ0eSBibG9jayBpcyBvay4KKyAgKHNob3VsZAorICAgKGVxdWFsICcoMjMgLiAyMykKKwkg IChvcmctdGVzdC13aXRoLXRlbXAtdGV4dCAiIytLZXk6IHZcbjpQUk9QRVJUSUVTOlxuOkVORDpc biIKKwkgICAgKG9yZy1nZXQtcHJvcGVydHktYmxvY2spKSkpCisgIDs7IENvbW1lbnRzIGFuZCBr ZXl3b3JkcyBhcmUgYWxsb3dlZCBiZWZvcmUgYSBkb2N1bWVudCBwcm9wZXJ0eSBibG9jay4KKyAg KHNob3VsZAorICAgKGVxdWFsICcoMjcgLiAzNikKKwkgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4 dCAiIyBDXG4jK2tleTogdlxuOlBST1BFUlRJRVM6XG46S0VZOiBWOlxuOkVORDpcbiIKKwkgICAg KG9yZy1nZXQtcHJvcGVydHktYmxvY2spKSkpCisgIChzaG91bGQKKyAgIChlcXVhbCAnKDM2IC4g NDUpCisJICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQgIiMrS2V5OiB2XG4jIENcbiMrS2V5OiB2 XG46UFJPUEVSVElFUzpcbjpLRVk6IFY6XG46RU5EOlxuIgorCSAgICAob3JnLWdldC1wcm9wZXJ0 eS1ibG9jaykpKSkKKyAgOzsgQSBkb2N1bWVudCBwcm9wZXJ0eSBibG9jayB3aWxsIG5vdCBiZSB2 YWxpZCBpZiB0aGVyZSBhcmUgbGluZXMKKyAgOzsgd2l0aCB3aGl0ZXNwYWNlIGFib3ZlIGl0Cisg IChzaG91bGQtbm90CisgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQgIlxuOlBST1BFUlRJRVM6 XG46RU5EOlxuIgorICAgICAob3JnLWdldC1wcm9wZXJ0eS1ibG9jaykpKQorICAoc2hvdWxkCisg ICAoZXF1YWwgJygxOCAuIDE4KQorCSAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0ICIqIEhcbjpQ Uk9QRVJUSUVTOlxuOkVORDpcbjxwb2ludD4iCisJICAgIChvcmctZ2V0LXByb3BlcnR5LWJsb2Nr KSkpKQorICAoc2hvdWxkCisgICAoZXF1YWwgIiogSFxuOlBST1BFUlRJRVM6XG46RU5EOlxuIgor CSAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0ICIqIEgiCisJICAgIChsZXQgKChvcmctYWRhcHQt aW5kZW50YXRpb24gbmlsKSkKKwkgICAgICAob3JnLWdldC1wcm9wZXJ0eS1ibG9jayBuaWwgJ2Zv cmNlKSkKKwkgICAgKGJ1ZmZlci1zdHJpbmcpKSkpCisgIChzaG91bGQKKyAgIChlcXVhbCAiOlBS T1BFUlRJRVM6XG46RU5EOlxuIgorCSAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0ICIiCisJICAg IChvcmctZ2V0LXByb3BlcnR5LWJsb2NrIG5pbCAnZm9yY2UpCisJICAgIChidWZmZXItc3RyaW5n KSkpKQorICAoc2hvdWxkCisgICAoZXF1YWwgIiogSDFcbiAgOlBST1BFUlRJRVM6XG4gIDpFTkQ6 XG4qIEgyIgorCSAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0ICIqIEgxXG4qIEgyIgorCSAgICAo bGV0ICgob3JnLWFkYXB0LWluZGVudGF0aW9uIHQpKQorCSAgICAgIChvcmctZ2V0LXByb3BlcnR5 LWJsb2NrIG5pbCAnZm9yY2UpKQorCSAgICAoYnVmZmVyLXN0cmluZykpKSkpCisKIChlcnQtZGVm dGVzdCB0ZXN0LW9yZy9pbnNlcnQtcHJvcGVydHktZHJhd2VyICgpCiAgICJUZXN0IGBvcmctaW5z ZXJ0LXByb3BlcnR5LWRyYXdlcicgc3BlY2lmaWNhdGlvbnMuIgotICA7OyBFcnJvciBiZWZvcmUg Zmlyc3QgaGVhZGxpbmUuCi0gIChzaG91bGQtZXJyb3IgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0 ICIiIChvcmctaW5zZXJ0LXByb3BlcnR5LWRyYXdlcikpKQorICA7OyBJbnNlcnQgZHJhd2VyIGlu IGVtcHR5IGJ1ZmZlcgorICAoc2hvdWxkCisgICAoZXF1YWwgIjpQUk9QRVJUSUVTOlxuOkVORDpc biIKKwkgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dCAiIgorCSAgICAobGV0ICgob3JnLWFkYXB0 LWluZGVudGF0aW9uIG5pbCkpIChvcmctaW5zZXJ0LXByb3BlcnR5LWRyYXdlcikpCisJICAgIChi dWZmZXItc3RyaW5nKSkpKQorICA7OyBJbnNlcnQgZHJhd2VyIGluIGRvY3VtZW50IGhlYWRlciB3 aXRoIGV4aXN0aW5nIGNvbW1lbnQgYW5kCisgIDs7IGtleXdvcmQuCisgIChzaG91bGQKKyAgIChl cXVhbCAiIyBDXG4jK1RJVExFOiBUXG46UFJPUEVSVElFUzpcbjpFTkQ6XG4iCisJICAob3JnLXRl c3Qtd2l0aC10ZW1wLXRleHQgIiMgQ1xuIytUSVRMRTogVCIKKwkgICAgKGxldCAoKG9yZy1hZGFw dC1pbmRlbnRhdGlvbiBuaWwpKSAob3JnLWluc2VydC1wcm9wZXJ0eS1kcmF3ZXIpKQorCSAgICAo YnVmZmVyLXN0cmluZykpKSkKKyAgKHNob3VsZAorICAgKGVxdWFsICI6UFJPUEVSVElFUzpcbjpF TkQ6IgorCSAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0ICI6UFJPUEVSVElFUzpcbjpFTkQ6Igor CSAgICAobGV0ICgob3JnLWFkYXB0LWluZGVudGF0aW9uIG5pbCkpIChvcmctaW5zZXJ0LXByb3Bl cnR5LWRyYXdlcikpCisJICAgIChidWZmZXItc3RyaW5nKSkpKQorICA7OyBJbnNlcnQgZHJhd2Vy IGluIGRvY3VtZW50IGhlYWRlciB3aXRoIG9uZSBleGlzdGluZyBoZWFkaW5nIGluIGJ1ZmZlci4K KyAgKHNob3VsZAorICAgKGVxdWFsICI6UFJPUEVSVElFUzpcbjpFTkQ6XG4qIFRcbiIKKwkgIChv cmctdGVzdC13aXRoLXRlbXAtdGV4dCAiPHBvaW50PlxuKiBUXG4iCisJICAgIChsZXQgKChvcmct YWRhcHQtaW5kZW50YXRpb24gbmlsKSkgKG9yZy1pbnNlcnQtcHJvcGVydHktZHJhd2VyKSkKKwkg ICAgKGJ1ZmZlci1zdHJpbmcpKSkpCiAgIDs7IEluc2VydCBkcmF3ZXIgcmlnaHQgYWZ0ZXIgaGVh ZGxpbmUgaWYgdGhlcmUgaXMgbm8gcGxhbm5pbmcgbGluZSwKICAgOzsgb3IgYWZ0ZXIgaXQgb3Ro ZXJ3aXNlLgogICAoc2hvdWxkCkBAIC0yMTc4LDE5ICsyMjg1LDE5IEBAIFNDSEVEVUxFRDogPDIw MTQtMDMtMDQgdHVlLj4iCiAgICAoZXF1YWwgImZvbz0xIgogCSAgKG9yZy10ZXN0LXdpdGgtdGVt cC10ZXh0ICIjK1BST1BFUlRZOiB2YXIgZm9vPTEiCiAJICAgIChvcmctbW9kZS1yZXN0YXJ0KQot CSAgICAoY2RyIChhc3NvYyAidmFyIiBvcmctZmlsZS1wcm9wZXJ0aWVzKSkpKSkKKwkgICAgKGNk ciAoYXNzb2MgInZhciIgb3JnLWtleXdvcmQtcHJvcGVydGllcykpKSkpCiAgIChzaG91bGQKICAg IChlcXVhbAogICAgICJmb289MSBiYXI9MiIKICAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQg IiMrUFJPUEVSVFk6IHZhciBmb289MVxuIytQUk9QRVJUWTogdmFyKyBiYXI9MiIKICAgICAgIChv cmctbW9kZS1yZXN0YXJ0KQotICAgICAgKGNkciAoYXNzb2MgInZhciIgb3JnLWZpbGUtcHJvcGVy dGllcykpKSkpCisgICAgICAoY2RyIChhc3NvYyAidmFyIiBvcmcta2V5d29yZC1wcm9wZXJ0aWVz KSkpKSkKICAgKHNob3VsZAogICAgKGVxdWFsCiAgICAgImZvbz0xIGJhcj0yIgogICAgIChvcmct dGVzdC13aXRoLXRlbXAtdGV4dCAiIytQUk9QRVJUWTogdmFyIGZvbz0xXG4jK1BST1BFUlRZOiBW QVIrIGJhcj0yIgogICAgICAgKG9yZy1tb2RlLXJlc3RhcnQpCi0gICAgICAoY2RyIChhc3NvYyAi dmFyIiBvcmctZmlsZS1wcm9wZXJ0aWVzKSkpKSkKKyAgICAgIChjZHIgKGFzc29jICJ2YXIiIG9y Zy1rZXl3b3JkLXByb3BlcnRpZXMpKSkpKQogICA7OyBBUkNISVZFIGtleXdvcmQuCiAgIChzaG91 bGQKICAgIChlcXVhbCAiJXNfZG9uZTo6IgpAQCAtMjIwNyw3ICsyMzE0LDcgQEAgU0NIRURVTEVE OiA8MjAxNC0wMy0wNCB0dWUuPiIKICAgIChlcXVhbCAidGVzdCIKIAkgIChvcmctdGVzdC13aXRo LXRlbXAtdGV4dCAiIytDQVRFR09SWTogdGVzdCIKIAkgICAgKG9yZy1tb2RlLXJlc3RhcnQpCi0J ICAgIChjZHIgKGFzc29jICJDQVRFR09SWSIgb3JnLWZpbGUtcHJvcGVydGllcykpKSkpCisJICAg IChjZHIgKGFzc29jICJDQVRFR09SWSIgb3JnLWtleXdvcmQtcHJvcGVydGllcykpKSkpCiAgIDs7 IENPTFVNTlMga2V5d29yZC4KICAgKHNob3VsZAogICAgKGVxdWFsICIlMjVJVEVNICVUQUdTICVQ UklPUklUWSAlVE9ETyIKQEAgLTIyOTEsNyArMjM5OCw3IEBAIFNDSEVEVUxFRDogPDIwMTQtMDMt MDQgdHVlLj4iCiAJICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQKIAkgICAgICAoZm9ybWF0ICIj K1NFVFVQRklMRTogXCIlcy9leGFtcGxlcy9zZXR1cGZpbGUub3JnXCIiIG9yZy10ZXN0LWRpcikK IAkgICAgKG9yZy1tb2RlLXJlc3RhcnQpCi0JICAgIChjZHIgKGFzc29jICJhIiBvcmctZmlsZS1w cm9wZXJ0aWVzKSkpKSkpCisJICAgIChjZHIgKGFzc29jICJhIiBvcmcta2V5d29yZC1wcm9wZXJ0 aWVzKSkpKSkpCiAKIAogDApAQCAtNDk0MSw2ICs1MDQ4LDY2IEBAIFBhcmFncmFwaDxwb2ludD4i CiAJICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQgIiogSFxuOlBST1BFUlRJRVM6XG46QTogMVxu OkErOiAyXG46RU5EOiIKIAkgICAgKG9yZy1wcm9wZXJ0eS12YWx1ZXMgIkEiKSkpKSkKIAorKGVy dC1kZWZ0ZXN0IHRlc3Qtb3JnL3NldC1wcm9wZXJ0eSAoKQorICAiVGVzdCBgb3JnLXNldC1wcm9w ZXJ0eScgc3BlY2lmaWNhdGlvbnMuIgorICAoc2hvdWxkCisgICAoZXF1YWwKKyAgICAiOlBST1BF UlRJRVM6XG46VEVTVDogdFxuOkVORDpcbiIKKyAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQg IiIKKyAgICAgIChsZXQgKChvcmctcHJvcGVydHktZm9ybWF0ICIlcyAlcyIpKQorCShvcmctc2V0 LXByb3BlcnR5ICJURVNUIiAidCIpKQorICAgICAgKGJ1ZmZlci1zdHJpbmcpKSkpCisgIChzaG91 bGQKKyAgIChlcXVhbAorICAgICIqIEhcbjpQUk9QRVJUSUVTOlxuOlRFU1Q6IHRcbjpFTkQ6XG4i CisgICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0ICIqIEgiCisgICAgICAobGV0ICgob3JnLWFk YXB0LWluZGVudGF0aW9uIG5pbCkKKwkgICAgKG9yZy1wcm9wZXJ0eS1mb3JtYXQgIiVzICVzIikp CisJKG9yZy1zZXQtcHJvcGVydHkgIlRFU1QiICJ0IikpCisgICAgICAoYnVmZmVyLXN0cmluZykp KSkpCisKKyhlcnQtZGVmdGVzdCB0ZXN0LW9yZy9kZWxldGUtcHJvcGVydHkgKCkKKyAgIlRlc3Qg YG9yZy1kZWxldGUtcHJvcGVydHknIHNwZWNpZmljYXRpb25zLiIKKyAgKHNob3VsZAorICAgKGVx dWFsCisgICAgIiIKKyAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQgIjpQUk9QRVJUSUVTOlxu OlRFU1Q6IHRcbjpFTkQ6XG4iCisgICAgICAob3JnLWRlbGV0ZS1wcm9wZXJ0eSAiVEVTVCIpCisg ICAgICAoYnVmZmVyLXN0cmluZykpKSkKKyAgKHNob3VsZAorICAgKGVxdWFsCisgICAgIjpQUk9Q RVJUSUVTOlxuOlRFU1QxOiB0XG46RU5EOlxuIgorICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4 dCAiOlBST1BFUlRJRVM6XG46VEVTVDE6IHRcbjpURVNUMjogdFxuOkVORDpcbiIKKyAgICAgIChv cmctZGVsZXRlLXByb3BlcnR5ICJURVNUMiIpCisgICAgICAoYnVmZmVyLXN0cmluZykpKSkKKyAg KHNob3VsZAorICAgKGVxdWFsCisgICAgIiogSFxuIgorICAgIChvcmctdGVzdC13aXRoLXRlbXAt dGV4dCAiKiBIXG46UFJPUEVSVElFUzpcbjpURVNUOiB0XG46RU5EOlxuIgorICAgICAgKG9yZy1k ZWxldGUtcHJvcGVydHkgIlRFU1QiKQorICAgICAgKGJ1ZmZlci1zdHJpbmcpKSkpCisgIChzaG91 bGQKKyAgIChlcXVhbAorICAgICIqIEhcbjpQUk9QRVJUSUVTOlxuOlRFU1QxOiB0XG46RU5EOlxu IgorICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dCAiKiBIXG46UFJPUEVSVElFUzpcbjpURVNU MTogdFxuOlRFU1QyOiB0XG46RU5EOlxuIgorICAgICAgKG9yZy1kZWxldGUtcHJvcGVydHkgIlRF U1QyIikKKyAgICAgIChidWZmZXItc3RyaW5nKSkpKSkKKworKGVydC1kZWZ0ZXN0IHRlc3Qtb3Jn L2RlbGV0ZS1wcm9wZXJ0eS1nbG9iYWxseSAoKQorICAiVGVzdCBgb3JnLWRlbGV0ZS1wcm9wZXJ0 eS1nbG9iYWwnIHNwZWNpZmljYXRpb25zLiIKKyAgKHNob3VsZAorICAgKGVxdWFsCisgICAgIiIK KyAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQgIjpQUk9QRVJUSUVTOlxuOlRFU1Q6IHRcbjpF TkQ6XG4iCisgICAgICAob3JnLWRlbGV0ZS1wcm9wZXJ0eS1nbG9iYWxseSAiVEVTVCIpCisgICAg ICAoYnVmZmVyLXN0cmluZykpKSkKKyAgKHNob3VsZAorICAgKGVxdWFsCisgICAgIiogSFxuIgor ICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dCAiOlBST1BFUlRJRVM6XG46VEVTVDogdFxuOkVO RDpcbiogSFxuOlBST1BFUlRJRVM6XG46VEVTVDogbmlsXG46RU5EOiIKKyAgICAgIChvcmctZGVs ZXRlLXByb3BlcnR5LWdsb2JhbGx5ICJURVNUIikKKyAgICAgIChidWZmZXItc3RyaW5nKSkpKSkK KwogKGVydC1kZWZ0ZXN0IHRlc3Qtb3JnL2ZpbmQtcHJvcGVydHkgKCkKICAgIlRlc3QgYG9yZy1m aW5kLXByb3BlcnR5JyBzcGVjaWZpY2F0aW9ucy4iCiAgIDs7IFJlZ3VsYXIgdGVzdC4KQEAgLTUw MjIsNiArNTE4OSwxMCBAQCBQYXJhZ3JhcGg8cG9pbnQ+IgogKGVydC1kZWZ0ZXN0IHRlc3Qtb3Jn L2VudHJ5LWdldCAoKQogICAiVGVzdCBgb3JnLWVudHJ5LWdldCcgc3BlY2lmaWNhdGlvbnMuIgog ICA7OyBSZWd1bGFyIHRlc3QuCisgIChzaG91bGQKKyAgIChlcXVhbCAiMSIKKwkgIChvcmctdGVz dC13aXRoLXRlbXAtdGV4dCAiOlBST1BFUlRJRVM6XG46QTogMVxuOkVORDoiCisJICAgIChvcmct ZW50cnktZ2V0IChwb2ludCkgIkEiKSkpKQogICAoc2hvdWxkCiAgICAoZXF1YWwgIjEiCiAJICAo b3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQgIiogSFxuOlBST1BFUlRJRVM6XG46QTogMVxuOkVORDoi CkBAIC01MDYxLDYgKzUyMzIsMTEgQEAgUGFyYWdyYXBoPHBvaW50PiIKICAgICAgKG9yZy1lbnRy eS1nZXQgKHBvaW50KSAiQiIgbmlsIHQpKSkKICAgOzsgSGFuZGxlIGluaGVyaXRhbmNlLCB3aGVu IGFsbG93ZWQuICBJbmNsdWRlIGV4dGVuZGVkIHZhbHVlcyBhbmQKICAgOzsgcG9zc2libHkgZ2xv YmFsIHZhbHVlcy4KKyAgKHNob3VsZAorICAgKGVxdWFsCisgICAgIjEiCisgICAgKG9yZy10ZXN0 LXdpdGgtdGVtcC10ZXh0ICI6UFJPUEVSVElFUzpcbjpBOiAxXG46RU5EOlxuKiBIIgorICAgICAg KG9yZy1lbnRyeS1nZXQgKHBvaW50LW1heCkgIkEiIHQpKSkpCiAgIChzaG91bGQKICAgIChlcXVh bAogICAgICIxIgpAQCAtNTA3NiwxMiArNTI1MiwzMCBAQCBQYXJhZ3JhcGg8cG9pbnQ+IgogICAg KG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0ICIqIEhcbjpQUk9QRVJUSUVTOlxuOkE6IDFcbjpFTkQ6 XG4qKiBIMiIKICAgICAgKGxldCAoKG9yZy11c2UtcHJvcGVydHktaW5oZXJpdGFuY2UgbmlsKSkK ICAgICAgICAob3JnLWVudHJ5LWdldCAocG9pbnQtbWF4KSAiQSIgJ3NlbGVjdGl2ZSkpKSkKKyAg KHNob3VsZAorICAgKGVxdWFsCisgICAgIjEgMiIKKyAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRl eHQKKwkiOlBST1BFUlRJRVM6XG46QTogMVxuOkVORDpcbiogSFxuOlBST1BFUlRJRVM6XG46QSs6 IDJcbjpFTkQ6IgorICAgICAgKG9yZy1lbnRyeS1nZXQgKHBvaW50LW1heCkgIkEiIHQpKSkpCiAg IChzaG91bGQKICAgIChlcXVhbAogICAgICIxIDIiCiAgICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10 ZXh0CiAJIiogSFxuOlBST1BFUlRJRVM6XG46QTogMVxuOkVORDpcbioqIEgyXG46UFJPUEVSVElF UzpcbjpBKzogMlxuOkVORDoiCiAgICAgICAob3JnLWVudHJ5LWdldCAocG9pbnQtbWF4KSAiQSIg dCkpKSkKKyAgKHNob3VsZAorICAgKGVxdWFsCisgICAgIjEgMiIKKyAgICAob3JnLXRlc3Qtd2l0 aC10ZW1wLXRleHQKKwkiOlBST1BFUlRJRVM6XG46QTogMVxuOkVORDpcbiogSDFcbiogSDJcbjpQ Uk9QRVJUSUVTOlxuOkErOiAyXG46RU5EOiIKKyAgICAgIChvcmctZW50cnktZ2V0IChwb2ludC1t YXgpICJBIiB0KSkpKQorICAoc2hvdWxkCisgICAoZXF1YWwKKyAgICAiMSAyIgorICAgIChvcmct dGVzdC13aXRoLXRlbXAtdGV4dAorCSIqIEgxXG46UFJPUEVSVElFUzpcbjpBOiAxXG46RU5EOlxu KiBIMi4xXG4qIEgyLjJcbjpQUk9QRVJUSUVTOlxuOkErOiAyXG46RU5EOiIKKyAgICAgIChvcmct ZW50cnktZ2V0IChwb2ludC1tYXgpICJBIiB0KSkpKQogICAoc2hvdWxkCiAgICAoZXF1YWwgIjEi CiAJICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQKQEAgLTUwOTMsNiArNTI4NywxNCBAQCBQYXJh Z3JhcGg8cG9pbnQ+IgogCSAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0CiAJICAgICAgIiMrUFJP UEVSVFk6IEEgMFxuKiBIXG46UFJPUEVSVElFUzpcbjpBKzogMVxuOkVORDoiCiAJICAgIChvcmct bW9kZS1yZXN0YXJ0KQorCSAgICAob3JnLWVudHJ5LWdldCAocG9pbnQtbWF4KSAiQSIgdCkpKSkK KyAgOzsgZG9jdW1lbnQgbGV2ZWwgcHJvcGVydHktZHJhd2VyIGhhcyBwcmVjZWRhbmNlIG92ZXIK KyAgOzsgZ2xvYmFsLXByb3BlcnR5IGJ5IFBST1BFUlRZLWtleXdvcmQuCisgIChzaG91bGQKKyAg IChlcXVhbCAiMCAyIgorCSAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0CisJICAgICAgIjpQUk9Q RVJUSUVTOlxuOkE6IDBcbjpFTkQ6XG4jK1BST1BFUlRZOiBBIDFcbiogSFxuOlBST1BFUlRJRVM6 XG46QSs6IDJcbjpFTkQ6IgorCSAgICAob3JnLW1vZGUtcmVzdGFydCkKIAkgICAgKG9yZy1lbnRy eS1nZXQgKHBvaW50LW1heCkgIkEiIHQpKSkpKQogCiAoZXJ0LWRlZnRlc3QgdGVzdC1vcmcvZW50 cnktcHJvcGVydGllcyAoKQpAQCAtNTQxNiw4ICs1NjE4LDQ0IEBAIFBhcmFncmFwaDxwb2ludD4i CiAJICAgIChsZXQgKChvcmctdXNlLXByb3BlcnR5LWluaGVyaXRhbmNlIHQpKQogCSAgICAgIChv cmctcmVmcmVzaC1wcm9wZXJ0aWVzICJBIiAnb3JnLXRlc3QpKQogCSAgICAoZ2V0LXRleHQtcHJv cGVydHkgKHBvaW50KSAnb3JnLXRlc3QpKSkpCisgIDs7IFdoZW4gYSBkb2N1bWVudCBsZXZlbCBw cm9wZXJ0eS1kcmF3ZXIgaXMgdXNlZCwgdGhvc2UgcHJvcGVydGllcworICA7OyBzaG91bGQgd29y ayBleGFjdGx5IGxpa2UgaGVhZGxpbmUtcHJvcGVydGllcyBhcyBpZiBhdCBhCisgIDs7IGhlYWRs aW5lLWxldmVsIDAuCisgIChzaG91bGQKKyAgIChlcXVhbCAiMSIKKwkgIChvcmctdGVzdC13aXRo LXRlbXAtdGV4dAorCSAgICAgICI6UFJPUEVSVElFUzpcbjpBOiAxXG46RU5EOlxuIgorCSAgICAo b3JnLW1vZGUtcmVzdGFydCkKKwkgICAgKGxldCAoKG9yZy11c2UtcHJvcGVydHktaW5oZXJpdGFu Y2UgdCkpCisJICAgICAgKG9yZy1yZWZyZXNoLXByb3BlcnRpZXMgIkEiICdvcmctdGVzdCkpCisJ ICAgIChnZXQtdGV4dC1wcm9wZXJ0eSAocG9pbnQpICdvcmctdGVzdCkpKSkKKyAgKHNob3VsZC1u b3QKKyAgIChlcXVhbCAiMSIKKwkgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dAorCSAgICAgICI6 UFJPUEVSVElFUzpcbjpBOiAxXG46RU5EOlxuPHBvaW50PiogSDEiCisJICAgIChvcmctbW9kZS1y ZXN0YXJ0KQorCSAgICAobGV0ICgob3JnLXVzZS1wcm9wZXJ0eS1pbmhlcml0YW5jZSBuaWwpKQor CSAgICAgIChvcmctcmVmcmVzaC1wcm9wZXJ0aWVzICJBIiAnb3JnLXRlc3QpKQorCSAgICAoZ2V0 LXRleHQtcHJvcGVydHkgKHBvaW50KSAnb3JnLXRlc3QpKSkpCisgIChzaG91bGQKKyAgIChlcXVh bCAiMSIKKwkgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dAorCSAgICAgICI6UFJPUEVSVElFUzpc bjpBOiAxXG46RU5EOlxuPHBvaW50PiogSDEiCisJICAgIChvcmctbW9kZS1yZXN0YXJ0KQorCSAg ICAobGV0ICgob3JnLXVzZS1wcm9wZXJ0eS1pbmhlcml0YW5jZSB0KSkKKwkgICAgICAob3JnLXJl ZnJlc2gtcHJvcGVydGllcyAiQSIgJ29yZy10ZXN0KSkKKwkgICAgKGdldC10ZXh0LXByb3BlcnR5 IChwb2ludCkgJ29yZy10ZXN0KSkpKQorICAoc2hvdWxkCisgICAoZXF1YWwgIjIiCisJICAob3Jn LXRlc3Qtd2l0aC10ZW1wLXRleHQKKwkgICAgICAiOlBST1BFUlRJRVM6XG46QTogMVxuOkVORDpc bjxwb2ludD4qIEgxXG46UFJPUEVSVElFUzpcbjpBOiAyXG46RU5EOiIKKwkgICAgKG9yZy1tb2Rl LXJlc3RhcnQpCisJICAgIChsZXQgKChvcmctdXNlLXByb3BlcnR5LWluaGVyaXRhbmNlIHQpKQor CSAgICAgIChvcmctcmVmcmVzaC1wcm9wZXJ0aWVzICJBIiAnb3JnLXRlc3QpKQorCSAgICAoZ2V0 LXRleHQtcHJvcGVydHkgKHBvaW50KSAnb3JnLXRlc3QpKSkpCiAgIDs7IFdoZW4gcHJvcGVydHkg aXMgaW5oZXJpdGVkLCB1c2UgZ2xvYmFsIHZhbHVlIGFjcm9zcyB0aGUgd2hvbGUKLSAgOzsgYnVm ZmVyLiAgSG93ZXZlciBsb2NhbCB2YWx1ZXMgaGF2ZSBwcmVjZWRlbmNlLgorICA7OyBidWZmZXIu ICBIb3dldmVyIGxvY2FsIHZhbHVlcyBoYXZlIHByZWNlZGVuY2UsIGFzIHdlbGwgYXMgdGhlCisg IDs7IGRvY3VtZW50IGxldmVsIHByb3BlcnR5LWRyYXdlci4KICAgKHNob3VsZC1ub3QKICAgIChl cXVhbCAiMSIKIAkgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dCAiIytQUk9QRVJUWTogQSAxXG48 cG9pbnQ+KiBIMSIKQEAgLTU0MzcsMTAgKzU2NzUsNjIgQEAgUGFyYWdyYXBoPHBvaW50PiIKIAkg IChvcmctdGVzdC13aXRoLXRlbXAtdGV4dAogCSAgICAgICIjK1BST1BFUlRZOiBBIDFcbjxwb2lu dD4qIEhcbjpQUk9QRVJUSUVTOlxuOkE6IDJcbjpFTkQ6IgogCSAgICAob3JnLW1vZGUtcmVzdGFy dCkKKwkgICAgKGxldCAoKG9yZy11c2UtcHJvcGVydHktaW5oZXJpdGFuY2UgdCkpCisJICAgICAg KG9yZy1yZWZyZXNoLXByb3BlcnRpZXMgIkEiICdvcmctdGVzdCkpCisJICAgIChnZXQtdGV4dC1w cm9wZXJ0eSAocG9pbnQpICdvcmctdGVzdCkpKSkKKyAgOzsgV2hlbiBib3RoIGtleXdvcmQtcHJv cGVydHkgYW5kIGRvY3VtZW50LWxldmVsIHByb3BlcnR5LWJsb2NrIGlzCisgIDs7IGRlZmluZWQs IHRoZSBwcm9wZXJ0eS1ibG9jayBoYXMgcHJlY2VkYW5jZS4KKyAgKHNob3VsZAorICAgKGVxdWFs ICIxIgorCSAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0CisJICAgICAgIjpQUk9QRVJUSUVTOlxu OkE6IDFcbjpFTkQ6XG4jK1BST1BFUlRZOiBBIDJcbjxwb2ludD4qIEgxIgorCSAgICAob3JnLW1v ZGUtcmVzdGFydCkKIAkgICAgKGxldCAoKG9yZy11c2UtcHJvcGVydHktaW5oZXJpdGFuY2UgdCkp CiAJICAgICAgKG9yZy1yZWZyZXNoLXByb3BlcnRpZXMgIkEiICdvcmctdGVzdCkpCiAJICAgIChn ZXQtdGV4dC1wcm9wZXJ0eSAocG9pbnQpICdvcmctdGVzdCkpKSkpCiAKKyhlcnQtZGVmdGVzdCB0 ZXN0LW9yZy9yZWZyZXNoLWNhdGVnb3J5LXByb3BlcnRpZXMgKCkKKyAgIlRlc3QgYG9yZy1yZWZy ZXNoLWNhdGVnb3J5LXByb3BlcnRpZXMnIHNwZWNpZmljYXRpb25zIgorICAoc2hvdWxkCisgICAo ZXF1YWwgImNhdDEiCisJICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQKKwkgICAgICAiOlBST1BF UlRJRVM6XG46Q0FURUdPUlk6IGNhdDFcbjpFTkQ6IgorCSAgICAob3JnLXJlZnJlc2gtY2F0ZWdv cnktcHJvcGVydGllcykKKwkgICAgKGdldC10ZXh0LXByb3BlcnR5IChwb2ludCkgJ29yZy1jYXRl Z29yeSkpKSkKKyAgKHNob3VsZAorICAgKGVxdWFsICJjYXQxIgorCSAgKG9yZy10ZXN0LXdpdGgt dGVtcC10ZXh0CisJICAgICAgIiogSFxuOlBST1BFUlRJRVM6XG46Q0FURUdPUlk6IGNhdDFcbjpF TkQ6IgorCSAgICAob3JnLXJlZnJlc2gtY2F0ZWdvcnktcHJvcGVydGllcykKKwkgICAgKGdldC10 ZXh0LXByb3BlcnR5IChwb2ludCkgJ29yZy1jYXRlZ29yeSkpKSkKKyAgOzsgRXZlbiB0aG91Z2gg cHJvcGVydHktaW5oZXJpdGFuY2UgaXMgZGVhY3RpdmF0ZWQsIGNhdGVnb3J5CisgIDs7IHByb3Bl cnR5IHNob3VsZCBiZSBpbmhlcml0ZWQuICBBcyBkZXNjcmliZWQgaW4KKyAgOzsgYG9yZy11c2Ut cHJvcGVydHktaW5oZXJpdGFuY2UnLgorICAoc2hvdWxkCisgICAoZXF1YWwgImNhdDEiCisJICAo b3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQKKwkgICAgICAiOlBST1BFUlRJRVM6XG46Q0FURUdPUlk6 IGNhdDFcbjpFTkQ6XG48cG9pbnQ+KiBIIgorCSAgICAob3JnLW1vZGUtcmVzdGFydCkKKwkgICAg KGxldCAoKG9yZy11c2UtcHJvcGVydHktaW5oZXJpdGFuY2UgbmlsKSkKKwkgICAgICAob3JnLXJl ZnJlc2gtY2F0ZWdvcnktcHJvcGVydGllcykpCisJICAgIChnZXQtdGV4dC1wcm9wZXJ0eSAocG9p bnQpICdvcmctY2F0ZWdvcnkpKSkpCisgIChzaG91bGQKKyAgIChlcXVhbCAiY2F0MSIKKwkgIChv cmctdGVzdC13aXRoLXRlbXAtdGV4dAorCSAgICAgICI6UFJPUEVSVElFUzpcbjpDQVRFR09SWTog Y2F0MVxuOkVORDpcbjxwb2ludD4qIEgiCisJICAgIChvcmctbW9kZS1yZXN0YXJ0KQorCSAgICAo bGV0ICgob3JnLXVzZS1wcm9wZXJ0eS1pbmhlcml0YW5jZSB0KSkKKwkgICAgICAob3JnLXJlZnJl c2gtY2F0ZWdvcnktcHJvcGVydGllcykpCisJICAgIChnZXQtdGV4dC1wcm9wZXJ0eSAocG9pbnQp ICdvcmctY2F0ZWdvcnkpKSkpCisgIChzaG91bGQKKyAgIChlcXVhbCAiY2F0MiIKKwkgIChvcmct dGVzdC13aXRoLXRlbXAtdGV4dAorCSAgICAgICI6UFJPUEVSVElFUzpcbjpDQVRFR09SWTogY2F0 MVxuOkVORDpcbjxwb2ludD4qIEhcbjpQUk9QRVJUSUVTOlxuOkNBVEVHT1JZOiBjYXQyXG46RU5E OlxuIgorCSAgICAob3JnLW1vZGUtcmVzdGFydCkKKwkgICAgKGxldCAoKG9yZy11c2UtcHJvcGVy dHktaW5oZXJpdGFuY2UgdCkpCisJICAgICAgKG9yZy1yZWZyZXNoLWNhdGVnb3J5LXByb3BlcnRp ZXMpKQorCSAgICAoZ2V0LXRleHQtcHJvcGVydHkgKHBvaW50KSAnb3JnLWNhdGVnb3J5KSkpKSkK KwogDAogOzs7IFJlZmlsZQogCi0tIAoyLjE3LjEKCg== --_003_HE1PR02MB30335B0720ABF7B9780A305FDABC0HE1PR02MB3033eurp_--