From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Gustav_Wikstr=C3=B6m?= Subject: [RFC] [PATCH] Changes to Tag groups - allow nesting and regexps Date: Sun, 25 Jan 2015 12:07:16 +0100 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=047d7b15a627552e80050d78068e Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:51820) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YFL2H-0001AK-Vt for emacs-orgmode@gnu.org; Sun, 25 Jan 2015 06:07:23 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YFL2F-0001op-9d for emacs-orgmode@gnu.org; Sun, 25 Jan 2015 06:07:21 -0500 Received: from mail-pa0-x233.google.com ([2607:f8b0:400e:c03::233]:37936) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YFL2E-0001o8-Ng for emacs-orgmode@gnu.org; Sun, 25 Jan 2015 06:07:19 -0500 Received: by mail-pa0-f51.google.com with SMTP id fb1so6256277pad.10 for ; Sun, 25 Jan 2015 03:07:17 -0800 (PST) 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-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Org Mode List --047d7b15a627552e80050d78068e Content-Type: text/plain; charset=UTF-8 Hi! My name is Gustav and I'm a user of Orgmode since some time (..years) now. I've made minor contributions to this list before but mostly in discussions. This time I've made some changes in the code. More specifically in how tag groups function and would like them to be included in Orgmode. I suppose an FSF-assignment signature is needed before it can be included. I'll start with that process if this is something the community can agree to include. But until then; please take it for a ride. I've attached a file which can be used to test the functionality. There are a few more things to do too; Like updating the manual and improving the tag-selection UI. If you have the interest, please look into that ;-). I suspect some might have comments on the code too. The tag-expansion function, for example, (`ORG-TAGS-EXPAND') has grown a bit.. The changes are listed below: - Grouptags don't have to be unique on a headline if added with [ ] instead of with { }: ,---- | #+TAGS: [ group : include1 included2 ] `---- - Grouptags can have regular expressions as "sub-tags". The regular expressions in the group must be marked up within { }. Example use: ,---- | #+TAGS: [ Project : {^P@.+} ] `---- Searching for the tag Project will now list all tags also including regular expression matches for ^P@.+. it is good, for example, if tags for a certain project are tagged with a common project-identifier, i.e. P@2014_OrgTags. - Grouptags are not filtered when setting up tags (in `ORG--SETUP-PROCESS-TAGS'). This means they can exist multiple times in org-tag-alist. Will be usable if nesting of grouptags is ever to become reality. There is a slightly annoying side-effect when setting tags, in that a tag which is both a part of a grouptag and is a grouptag of its own will get multiple key-choices in the selection-UI. The whole selection-UI could use some refactoring. Especially with the addition of the point below. - Nesting grouptags. Allowing subtags to be defined as groups themselves. ,---- | #+TAGS: [ Group : SubOne(1) SubTwo ] | #+TAGS: [ SubOne : SubOne1 SubOne2 ] | #+TAGS: [ SubTwo : SubTwo1 SubTwo2 ] `---- Should be seen as a tree of tags: - Group - SubOne - SubOne1 - SubOne2 - SubTwo - SubTwo1 - SubTwo2 Searching for "Group" should return all tags defined above. A new variable is defined `ORG-GROUP-TAGS-MAX-DEPTH' that is used to limit the depth of recursion when expanding tags. It defaults to 2. - Filtering in the agenda on grouptags should filter also subcategories. Exception if filter is applied with a (double) prefix-argument. Filtering in the agenda on subcategories should not filter the "above" levels. If a grouptag contains a regular expression the regular expression is also used as a filter. - `ORG-AGENDA-REDO' expands the tag-filters when redrawing the agenda. It might be counterintuitive if a filter was applied with a double C-u argument just before to *not* expand tags in the filter. - Some bugs relating to grouptags have been fixed. - When filtering on tags in the agenda after using a grouptag, it no longer complains about wrong type. - Regular expressions with tag-names inside are not affected by group-expansion. Example: ,---- | #+TAGS: { Tag : Tag1 Tag2 } | search expression: {Tag.*} now works predictably. `---- I look forward to hearing what you think! Best regards Gustav --047d7b15a627552e80050d78068e Content-Type: application/octet-stream; name="Testfile.org" Content-Disposition: attachment; filename="Testfile.org" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i5cb2hzn0 IytUSVRMRTogVGVzdCBvZiBleHBhbmRlZCBUYWcgZ3JvdXAgZnVuY3Rpb25hbGl0eQ0KDQojK0JF R0lOX1NSQyBlbWFjcy1saXNwDQogIDtOZXcgdmFyaWFibGUsIHR3ZWFrIGlmIG5lZWRlZA0KICAo c2V0cSBvcmctZ3JvdXAtdGFncy1tYXgtZGVwdGggMikNCiMrRU5EX1NSQw0KDQoqKiBUYWdzOlBJ TSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA6UElNOg0KOlBST1BFUlRJRVM6DQo6Q0FURUdPUlk6IFRhZw0KOkVORDoNCiMrVEFHUzog WyBQSU0gOiBSZWYgUGVyc3AgQ29udHJvbCBdDQoqKiogUmVmZXJlbmNlIGluZm9ybWF0aW9uICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6UmVmOg0KIytUQUdT OiBbIFJlZiA6IENTIExhbmcgXQ0KKioqKiBDUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpDUzoNCiMrVEFHUzogWyBDUyA6 IERCIE9TIFNvZnR3YXJlIFBMYW5nIFByb2dyYW1taW5nIF0NCioqKioqIFBMYW5nICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6UExhbmc6 DQojK1RBR1M6IHsgUExhbmcgOiB7XlBMYW5nQC4rfSB9DQoqKioqIExhbmcgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpMYW5nOg0K IytUQUdTOiBbIExhbmcgOiBHcmFtbWFyIEVuIFJvIFN2IF0NCioqKiBQZXJzcGVjdGl2ZXMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6UGVyc3A6 DQojK1RBR1M6IHsgUGVyc3AgOiBWaXNpb24gR29hbCBBT0YgUHJvamVjdCB9DQoqKioqIFZpc2lv biAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA6VmlzaW9uOg0KIytUQUdTOiB7IFZpc2lvbiA6IHteVkAuK30gfQ0KKioqKiBHb2FsICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6 R29hbDoNCiMrVEFHUzogeyBHb2FsIDoge15HQC4rfSB9DQoqKioqIEFyZWEgb2YgRm9jdXMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6QU9GOg0K IytUQUdTOiB7IEFPRiA6IHteQU9GQC4rfSB9DQoqKioqIFByb2plY3QgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpQcm9qZWN0Og0KIytUQUdT OiB7IFByb2plY3QgOiB7XlBALit9IH0NCioqKioqIE9yZ21vZGUtcHJvamVjdCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOk9yZ1Byb2o6DQojK1RBR1M6IHsg T3JnUHJvaiA6IHtQQE9yZ18uK30gfQ0KKioqIENvbnRyb2wgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Q29udHJvbDoNCiMrVEFHUzogWyBD b250cm9sIDogQ29udGV4dCBdDQoqKioqIENvbnRleHQgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpDb250ZXh0Og0KIytUQUdTOiBbIENvbnRl eHQgOiB7XkAuK30gXQ0KDQoqKiBUZXN0DQo6UFJPUEVSVElFUzoNCjpDQVRFR09SWTogTm9kZQ0K OkVORDoNCioqKiBGaXJzdCBhcnRpY2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgOkdyYW1tYXI6DQoqKiogU2Vjb25kIGFydGljbGUgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOlBMYW5nQEVsaXNwOg0KDQoqKiog VGhpcmQgYXJ0aWNsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgOlByb2dyYW1taW5nOg0KDQoqKiogRm9ydGggYXJ0aWNsZSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOlN2Og0KOkxPR0JPT0s6DQpTdGF0 ZSAiRE9ORSIgICAgICAgZnJvbSAiVE9ETyIgICAgICAgWzIwMTQtMTItMTQgc8O2biAwNzo0N10N CjpFTkQ6DQpXaGF0IHRoZSBoZWxsIT8NCg0KKioqIFRPRE8gYWN0aXZpdHkgMSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6R0BUZXN0MToNCiAgU0NIRURV TEVEOiA8MjAxNC0xMi0xMCBvbnM+DQoNCioqKiBUT0RPIGFjdGl2aXR5IDIgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpBT0ZAVGVzdDE6DQogIFNDSEVEVUxF RDogPDIwMTQtMTItMjIgbcOlbj4NCg0KKioqIFRPRE8gYWN0aXZpdHkgMyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOlZpc2lvbjoNCiAgREVBRExJTkU6 IDwyMDE0LTEyLTEzIGzDtnI+DQoNCioqKiBUT0RPIGFjdGl2aXR5IDQgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOkdvYWw6DQogIERFQURMSU5FOiA8 MjAxNC0xMi0yMyB0aXM+DQoqKiogVE9ETyBhY3Rpdml0eSA1ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDpAaG9tZTpQQE9yZ18xNGdyb3VwdGFnOg0KICBTQ0hFRFVMRUQ6IDwyMDE0 LTEyLTEwIG9ucz4NCg0KKioqIFRPRE8gYWN0aXZpdHkgNiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA6QGVycmVuZDoNCiAgU0NIRURVTEVEOiA8MjAxNC0x Mi0yMiBtw6VuPg0KDQoqKiogVE9ETyBhY3Rpdml0eSA3ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDpAZXJyZW5kOg0KICBERUFETElORTogPDIwMTQtMTIt MTMgbMO2cj4NCg0KKioqIFRPRE8gYWN0aXZpdHkgOCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDpAY29tcDoNCiAgREVBRExJTkU6IDwyMDE0LTEyLTIz IHRpcz4NCg0KKioqIFRPRE8gYWN0aXZpdHkgOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA6QGhvbWU6UEBPcmdfMTRncm91cHRhZzoNCjpMT0dCT09LOg0KLSBTdGF0ZSAiVE9ETyIg ICAgICAgZnJvbSAiIiAgICAgICAgICAgWzIwMTUtMDEtMTkgTW9uIDAwOjIxXQ0KOkVORDoNCioq KiBQUk9KRUNUIEJldHRlciBncm91cHRhZ3MgZm9yIG9yZ21vZGUgICAgICAgICAgICAgICAgICAg OlBAT3JnXzE0Z3JvdXB0YWc6DQo= --047d7b15a627552e80050d78068e Content-Type: application/octet-stream; name="0001-Grouptags-not-unique-and-can-contain-regular-exp.patch" Content-Disposition: attachment; filename="0001-Grouptags-not-unique-and-can-contain-regular-exp.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i5cb2olo1 RnJvbSBhYTM0ZWNkNDBmNWI1NWM5YmRlOTE5NDE4Mzc2OGE2ZDY0OWY4YmYwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/R3VzdGF2PTIwV2lrc3RyPUMzPUI2bT89IDxn dXN0YXZAVVZTZXJ2ZXI+CkRhdGU6IFNhdCwgMjQgSmFuIDIwMTUgMDI6NDc6MjYgKzAxMDAKU3Vi amVjdDogW1BBVENIIDEvM10gR3JvdXB0YWdzOyBub3QgdW5pcXVlIGFuZCBjYW4gY29udGFpbiBy ZWd1bGFyIGV4cAoKLSBHcm91cHRhZ3MgZG9uJ3QgaGF2ZSB0byBiZSB1bmlxdWUgb24gYSBoZWFk bGluZSBpZiBhZGRlZCB3aXRoIFsgXQogIGluc3RlYWQgb2Ygd2l0aCB7IH06IDogWyBncm91cCA6 IGluY2x1ZGUxIGluY2x1ZGVkMiBdCgotIEdyb3VwdGFncyBjYW4gaGF2ZSByZWd1bGFyIGV4cHJl c3Npb25zIGFzICJzdWItdGFncyIuIFRoZSByZWd1bGFyCiAgZXhwcmVzc2lvbnMgaW4gdGhlIGdy b3VwIG11c3QgYmUgbWFya2VkIHVwIHdpdGhpbiB7IH0uICBFeGFtcGxlIHVzZToKCiAgOiAjK1RB R1M6IFsgUHJvamVjdCA6IHtQQC4rfSBdCgogIFNlYXJjaGluZyBmb3IgdGhlIHRhZyBQcm9qZWN0 IHdpbGwgbm93IGxpc3QgYWxsIHRhZ3MgYWxzbyBpbmNsdWRpbmcKICByZWd1bGFyIGV4cHJlc3Np b24gbWF0Y2hlcyBmb3IgUEAuKy4gR29vZCBmb3IgZXhhbXBsZSBpZiB0YWdzIGZvciBhCiAgY2Vy dGFpbiBwcm9qZWN0IGlzIHRhZ2dlZCB3aXRoIGEgY29tbW9uIHByb2plY3QtaWRlbnRpZmllciwK ICBpLmUuIFBAMjAxNF9PcmdUYWdzLgoKLSBHcm91cHRhZ3MgYXJlIG5vdCBmaWx0ZXJlZCB3aGVu IHNldHRpbmcgdXAgdGFncyAoaW4KICA9T1JHLS1TRVRVUC1QUk9DRVNTLVRBR1M9KS4gVGhpcyBt ZWFucyB0aGV5IGNhbiBleGlzdCBtdWx0aXBsZSB0aW1lcwogIGluIG9yZy10YWctYWxpc3QgbGlz dC4gV2lsbCBiZSB1c2FibGUgaWYgbmVzdGluZyBvZiBncm91cHRhZ3MgaXMKICBldmVyIHRvIGJl Y29tZSByZWFsaXR5LgoKICBUaGVyZSBpcyBhIHNsaWdodGx5IGFubm95aW5nIHNpZGUtZWZmZWN0 IHdoZW4gc2V0dGluZyB0YWdzIGluIHRoYXQgYQogIHRhZyB3aGljaCBpcyBib3RoIGEgcGFydCBv ZiBhIGdyb3VwdGFnIGFuZCBhIGdyb3VwdGFnIG9mIGl0J3Mgb3duCiAgd2lsbCBnZXQgbXVsdGlw bGUga2V5LWNob2ljZXMgaW4gdGhlIHNlbGVjdGlvbi1VSS4KLS0tCiBsaXNwL29yZy5lbCB8IDk5 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA3NSBpbnNlcnRpb25zKCspLCAyNCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9saXNwL29yZy5lbCBiL2xpc3Avb3JnLmVsCmluZGV4IGRiMmI2YzAuLjA1 YjczMDcgMTAwNzU1Ci0tLSBhL2xpc3Avb3JnLmVsCisrKyBiL2xpc3Avb3JnLmVsCkBAIC01MjE3 LDYgKzUyMTcsOCBAQCBGSUxFVEFHUyBpcyBhIGxpc3Qgb2YgdGFncywgYXMgc3RyaW5ncy4iCiAJ CSAgICAoY2FzZSAoY2FyIHRhZykKIAkJICAgICAgKDpzdGFydGdyb3VwICJ7IikKIAkJICAgICAg KDplbmRncm91cCAifSIpCisJCSAgICAgICg6c3RhcnRncm91cHRhZ3MgIlsiKQorCQkgICAgICAo OmVuZGdyb3VwdGFncyAiXSIpCiAJCSAgICAgICg6Z3JvdXB0YWdzICI6IikKIAkJICAgICAgKDpu ZXdsaW5lICJcXG4iKQogCQkgICAgICAob3RoZXJ3aXNlIChjb25jYXQgKGNhciB0YWcpCkBAIC01 MjM3LDEyICs1MjM5LDIwIEBAIEZJTEVUQUdTIGlzIGEgbGlzdCBvZiB0YWdzLCBhcyBzdHJpbmdz LiIKIAkgKChlcXVhbCBlICJ9IikKIAkgIChwdXNoICcoOmVuZGdyb3VwKSBvcmctdGFnLWFsaXN0 KQogCSAgKHNldHEgZ3JvdXAtZmxhZyBuaWwpKQorCSAoKGVxdWFsIGUgIlsiKQorCSAgKHB1c2gg Jyg6c3RhcnRncm91cHRhZ3MpIG9yZy10YWctYWxpc3QpCisJICAod2hlbiAoZXF1YWwgKG50aCAx IHRhZ3MpICI6IikgKHNldHEgZ3JvdXAtZmxhZyB0KSkpCisJICgoZXF1YWwgZSAiXSIpCisJICAo cHVzaCAnKDplbmRncm91cHRhZ3MpIG9yZy10YWctYWxpc3QpCisJICAoc2V0cSBncm91cC1mbGFn IG5pbCkpCiAJICgoZXF1YWwgZSAiOiIpCiAJICAocHVzaCAnKDpncm91cHRhZ3MpIG9yZy10YWct YWxpc3QpCiAJICAoc2V0cSBncm91cC1mbGFnICdhcHBlbmQpKQogCSAoKGVxdWFsIGUgIlxcbiIp IChwdXNoICcoOm5ld2xpbmUpIG9yZy10YWctYWxpc3QpKQogCSAoKHN0cmluZy1tYXRjaAotCSAg IChvcmctcmUgIlxcYFxcKFtbOmFsbnVtOl1fQCMlXStcXClcXCg/OihcXCguXFwpKVxcKT9cXCci KSBlKQorCSAgIChvcmctcmUgKGNvbmNhdCAiXFxgXFwoW1s6YWxudW06XV9AIyVdKyIKKwkJCSAg ICJcXHx7Lit9XFwpIiA7IHJlZ3VsYXIgZXhwcmVzc2lvbgorCQkJICAgIlxcKD86KFxcKC5cXCkp XFwpP1xcJyIpKSBlKQogCSAgKGxldCAoKHRhZyAobWF0Y2gtc3RyaW5nIDEgZSkpCiAJCShrZXkg KGFuZCAobWF0Y2gtYmVnaW5uaW5nIDIpCiAJCQkgIChzdHJpbmctdG8tY2hhciAobWF0Y2gtc3Ry aW5nIDIgZSkpKSkpCkBAIC01MjUwLDcgKzUyNjAsOCBAQCBGSUxFVEFHUyBpcyBhIGxpc3Qgb2Yg dGFncywgYXMgc3RyaW5ncy4iCiAJCSAgIChzZXRjYXIgb3JnLXRhZy1ncm91cHMtYWxpc3QKIAkJ CSAgIChhcHBlbmQgKGNhciBvcmctdGFnLWdyb3Vwcy1hbGlzdCkgKGxpc3QgdGFnKSkpKQogCQkg IChncm91cC1mbGFnIChwdXNoIChsaXN0IHRhZykgb3JnLXRhZy1ncm91cHMtYWxpc3QpKSkKLQkg ICAgKHVubGVzcyAoYXNzb2MgdGFnIG9yZy10YWctYWxpc3QpCisJICAgIDs7IFB1c2ggYWxsIHRh Z3MgaW4gZ3JvdXBzLCBubyBtYXR0ZXIgaWYgdGhleSBhbHJlYWR5IGV4aXN0LgorCSAgICAodW5s ZXNzIChhbmQgKG5vdCBncm91cC1mbGFnKSAoYXNzb2MgdGFnIG9yZy10YWctYWxpc3QpKQogCSAg ICAgIChwdXNoIChjb25zIHRhZyBrZXkpIG9yZy10YWctYWxpc3QpKSkpKSkpKQogICAoc2V0cSBv cmctdGFnLWFsaXN0IChucmV2ZXJzZSBvcmctdGFnLWFsaXN0KSkpCiAKQEAgLTE0NTQ0LDMyICsx NDU1NSw2MyBAQCBXaGVuIERPV05DQVNFIGlzIG5vbi1uaWwsIGV4cGFuZCBkb3duY2FzZWQgVEFH Uy4iCiAgIChpZiBvcmctZ3JvdXAtdGFncwogICAgICAgKGxldCogKChjYXNlLWZvbGQtc2VhcmNo IHQpCiAJICAgICAoc3RhYmxlIG9yZy1tb2RlLXN5bnRheC10YWJsZSkKLQkgICAgICh0YWwgKG9y IG9yZy10YWctZ3JvdXBzLWFsaXN0LWZvci1hZ2VuZGEKLQkJICAgICAgb3JnLXRhZy1ncm91cHMt YWxpc3QpKQotCSAgICAgKHRhbCAoaWYgZG93bmNhc2VkCi0JCSAgICAgIChtYXBjYXIgKGxhbWJk YSh0ZykgKG1hcGNhciAnZG93bmNhc2UgdGcpKSB0YWwpIHRhbCkpCi0JICAgICAodG1sIChtYXBj YXIgJ2NhciB0YWwpKQotCSAgICAgKHJ0bm1hdGNoIG1hdGNoKSBycGwpCisJICAgICAodGFnZ3Jv dXBzIChvciBvcmctdGFnLWdyb3Vwcy1hbGlzdC1mb3ItYWdlbmRhIG9yZy10YWctZ3JvdXBzLWFs aXN0KSkKKwkgICAgICh0YWdncm91cHMgKGlmIGRvd25jYXNlZCAobWFwY2FyIChsYW1iZGEodGcp IChtYXBjYXIgJ2Rvd25jYXNlIHRnKSkgdGFnZ3JvdXBzKSB0YWdncm91cHMpKQorCSAgICAgKHRh Z2dyb3Vwcy1rZXlzIChtYXBjYXIgJ2NhciB0YWdncm91cHMpKQorCSAgICAgKHJldHVybi1tYXRj aCAoaWYgZG93bmNhc2VkIChkb3duY2FzZSBtYXRjaCkgbWF0Y2gpKQorCSAgICAgKGNvdW50IDAp CisJICAgICByZWdleHBzLWluLW1hdGNoIHRhZ3MtaW4tZ3JvdXAgcmVnZXhwLWluLWdyb3VwIHJl Z2V4cC1pbi1ncm91cC1lc2NhcGVkKQogCTs7IEAgYW5kIF8gYXJlIGFsbG93ZWQgYXMgd29yZC1j b21wb25lbnRzIGluIHRhZ3MKIAkobW9kaWZ5LXN5bnRheC1lbnRyeSA/QCAidyIgc3RhYmxlKQog CShtb2RpZnktc3ludGF4LWVudHJ5ID9fICJ3IiBzdGFibGUpCi0JKHdoaWxlIChhbmQgdG1sCisJ OzsgVGVtcG9yYXJpbHkgcmVwbGFjZSByZWdleHAtZXhwcmVzc2lvbnMgaW4gdGhlIG1hdGNoLWV4 cHJlc3Npb24KKwkod2hpbGUgKHN0cmluZy1tYXRjaCAiey4rP30iIHJldHVybi1tYXRjaCkKKwkg IChzZXRxIGNvdW50ICgxKyBjb3VudCkpCisJICAoc2V0cSByZWdleHBzLWluLW1hdGNoIChjb25z IChtYXRjaC1zdHJpbmcgMCByZXR1cm4tbWF0Y2gpIHJlZ2V4cHMtaW4tbWF0Y2gpKQorCSAgKHNl dHEgcmV0dXJuLW1hdGNoIChyZXBsYWNlLW1hdGNoIChjb25jYXQgIjwiIChudW1iZXItdG8tc3Ry aW5nIGNvdW50KSAiPiIpIHQgbmlsIHJldHVybi1tYXRjaCkpKQorCSh3aGlsZSAoYW5kIHRhZ2dy b3Vwcy1rZXlzCiAJCSAgICAod2l0aC1zeW50YXgtdGFibGUgc3RhYmxlCiAJCSAgICAgIChzdHJp bmctbWF0Y2gKIAkJICAgICAgIChjb25jYXQgIlxcKD8xOlsrLV0/XFwpXFwoPzI6XFw8IgotCQkJ ICAgICAgIChyZWdleHAtb3B0IHRtbCkgIlxcPlxcKSIpIHJ0bm1hdGNoKSkpCi0JICAobGV0KiAo KGRpciAobWF0Y2gtc3RyaW5nIDEgcnRubWF0Y2gpKQotCQkgKHRhZyAobWF0Y2gtc3RyaW5nIDIg cnRubWF0Y2gpKQorCQkJICAgICAgIChyZWdleHAtb3B0IHRhZ2dyb3Vwcy1rZXlzKSAiXFw+XFwp IikgcmV0dXJuLW1hdGNoKSkpCisJICAobGV0KiAoKGRpciAobWF0Y2gtc3RyaW5nIDEgcmV0dXJu LW1hdGNoKSkKKwkJICh0YWcgKG1hdGNoLXN0cmluZyAyIHJldHVybi1tYXRjaCkpCiAJCSAodGFn IChpZiBkb3duY2FzZWQgKGRvd25jYXNlIHRhZykgdGFnKSkpCi0JICAgIChzZXRxIHRtbCAoZGVs ZXRlIHRhZyB0bWwpKQotCSAgICAod2hlbiAobm90IChnZXQtdGV4dC1wcm9wZXJ0eSAwICdncm91 cHRhZyAobWF0Y2gtc3RyaW5nIDIgcnRubWF0Y2gpKSkKLQkgICAgICAoc2V0cSBycGwgKGFwcGVu ZCAob3JnLXVuaXF1aWZ5IHJwbCkgKGFzc29jIHRhZyB0YWwpKSkKLQkgICAgICAoc2V0cSBycGwg KGNvbmNhdCBkaXIgIntcXDwiIChyZWdleHAtb3B0IHJwbCkgIlxcPn0iKSkKLQkgICAgICAoaWYg KHN0cmluZ3AgcnBsKSAob3JnLWFkZC1wcm9wcyBycGwgJyhncm91cHRhZyB0KSkpCi0JICAgICAg KHNldHEgcnRubWF0Y2ggKHJlcGxhY2UtbWF0Y2ggcnBsIHQgdCBydG5tYXRjaCkpKSkpCisJICAg ICh3aGVuIChub3QgKGdldC10ZXh0LXByb3BlcnR5IDAgJ2dyb3VwdGFnIChtYXRjaC1zdHJpbmcg MiByZXR1cm4tbWF0Y2gpKSkKKwkgICAgICAoc2V0cSB0YWdzLWluLWdyb3VwIChhc3NvYyB0YWcg dGFnZ3JvdXBzKSkKKwkgICAgICA7IEZpbHRlciB0YWctcmVnZXhwcyBmcm9tIHRhZ3MKKwkgICAg ICAoc2V0cSByZWdleHAtaW4tZ3JvdXAtZXNjYXBlZCAoZGVscSBuaWwgKG1hcGNhciAobGFtYmRh ICh4KQorCQkJCQkJCQkoaWYgKHN0cmluZ3AgeCkKKwkJCQkJCQkJICAgIChhbmQgKHN0cmluZy1w cmVmaXgtcCAieyIgeCkKKwkJCQkJCQkJCSAoc3RyaW5nLXN1ZmZpeC1wICJ9IiB4KQorCQkJCQkJ CQkJIHgpCisJCQkJCQkJCSAgeCkpIHRhZ3MtaW4tZ3JvdXApKQorCQkgICAgcmVnZXhwLWluLWdy b3VwIChtYXBjYXIgKGxhbWJkYSAoeCkgKHN1YnN0cmluZyB4IDEgLTEpKSByZWdleHAtaW4tZ3Jv dXAtZXNjYXBlZCkKKwkJICAgIHRhZ3MtaW4tZ3JvdXAgKGRlbHEgbmlsIChtYXBjYXIgKGxhbWJk YSAoeCkKKwkJCQkJCSAgICAgIChpZiAoc3RyaW5ncCB4KQorCQkJCQkJCSAgKGFuZCAobm90IChz dHJpbmctcHJlZml4LXAgInsiIHgpKQorCQkJCQkJCSAgICAgICAobm90IChzdHJpbmctc3VmZml4 LXAgIn0iIHgpKQorCQkJCQkJCSAgICAgICB4KQorCQkJCQkJCXgpKSB0YWdzLWluLWdyb3VwKSkp CisJICAgICAgOyBJZiBzaW5nbGUtYXMtbGlzdCwgZG8gbm8gbW9yZSBpbiB0aGUgd2hpbGUtbG9v cC4uLgorCSAgICAgIChpZiAobm90IHNpbmdsZS1hcy1saXN0KQorCQkgIChwcm9nbgorCQkgICAg KGlmIHJlZ2V4cC1pbi1ncm91cAorCQkJKHNldHEgcmVnZXhwLWluLWdyb3VwIChjb25jYXQgIlxc fCIgKG1hcGNvbmNhdCAnaWRlbnRpdHkgcmVnZXhwLWluLWdyb3VwICJcXHwiKSkpKQorCQkgICAg KHNldHEgdGFncy1pbi1ncm91cCAoY29uY2F0IGRpciAie1xcPCIgKHJlZ2V4cC1vcHQgdGFncy1p bi1ncm91cCkgcmVnZXhwLWluLWdyb3VwICAiXFw+fSIpKQorCQkgICAgKGlmIChzdHJpbmdwIHRh Z3MtaW4tZ3JvdXApIChvcmctYWRkLXByb3BzIHRhZ3MtaW4tZ3JvdXAgJyhncm91cHRhZyB0KSkp CisJCSAgICAoc2V0cSByZXR1cm4tbWF0Y2ggKHJlcGxhY2UtbWF0Y2ggdGFncy1pbi1ncm91cCB0 IHQgcmV0dXJuLW1hdGNoKSkpCisgCQkoc2V0cSB0YWdzLWluLWdyb3VwIChhcHBlbmQgcmVnZXhw LWluLWdyb3VwLWVzY2FwZWQgdGFncy1pbi1ncm91cCkpKSkKKyAJICAgIChzZXRxIHRhZ2dyb3Vw cy1rZXlzIChkZWxldGUgdGFnIHRhZ2dyb3Vwcy1rZXlzKSkpKQorCTs7IEFkZCB0aGUgcmVndWxh ciBleHByZXNzaW9ucyBiYWNrIGludG8gdGhlIG1hdGNoLWV4cHJlc3Npb24gYWdhaW4KKwkod2hp bGUgcmVnZXhwcy1pbi1tYXRjaAorCSAgKHNldHEgcmV0dXJuLW1hdGNoIChyZXBsYWNlLXJlZ2V4 cC1pbi1zdHJpbmcgKGNvbmNhdCAiPCIgKG51bWJlci10by1zdHJpbmcgY291bnQpICI+IikKKwkJ CQkJCSAgICAgICAocG9wIHJlZ2V4cHMtaW4tbWF0Y2gpCisJCQkJCQkgICAgICAgcmV0dXJuLW1h dGNoIHQgdCkpCisJICAoc2V0cSBjb3VudCAoMS0gY291bnQpKSkKIAkoaWYgc2luZ2xlLWFzLWxp c3QKLQkgICAgKG9yIChyZXZlcnNlIHJwbCkgKGxpc3QgcnRubWF0Y2gpKQotCSAgcnRubWF0Y2gp KQorCSAgICAoaWYgdGFncy1pbi1ncm91cCB0YWdzLWluLWdyb3VwIChsaXN0IHJldHVybi1tYXRj aCkpCisJICByZXR1cm4tbWF0Y2gpKQogICAgIChpZiBzaW5nbGUtYXMtbGlzdCAobGlzdCAoaWYg ZG93bmNhc2VkIChkb3duY2FzZSBtYXRjaCkgbWF0Y2gpKQogICAgICAgbWF0Y2gpKSkKIApAQCAt MTUwMjksNyArMTUwNzEsNyBAQCBSZXR1cm5zIHRoZSBuZXcgdGFncyBzdHJpbmcsIG9yIG5pbCB0 byBub3QgY2hhbmdlIHRoZSBjdXJyZW50IHNldHRpbmdzLiIKIAkgb3Ytc3RhcnQgb3YtZW5kIG92 LXByZWZpeAogCSAoZXhpdC1hZnRlci1uZXh0IG9yZy1mYXN0LXRhZy1zZWxlY3Rpb24tc2luZ2xl LWtleSkKIAkgKGRvbmUta2V5d29yZHMgb3JnLWRvbmUta2V5d29yZHMpCi0JIGdyb3VwcyBpbmdy b3VwKQorCSBncm91cHMgaW5ncm91cCBpbnRhZ2dyb3VwKQogICAgIChzYXZlLWV4Y3Vyc2lvbgog ICAgICAgKGJlZ2lubmluZy1vZi1saW5lIDEpCiAgICAgICAoaWYgKGxvb2tpbmctYXQKQEAgLTE1 MDcxLDYgKzE1MTEzLDE1IEBAIFJldHVybnMgdGhlIG5ldyB0YWdzIHN0cmluZywgb3IgbmlsIHRv IG5vdCBjaGFuZ2UgdGhlIGN1cnJlbnQgc2V0dGluZ3MuIgogCSAoKGVxdWFsIChjYXIgZSkgOmVu ZGdyb3VwKQogCSAgKHNldHEgaW5ncm91cCBuaWwgY250IDApCiAJICAoaW5zZXJ0ICJ9IiAoaWYg KGNkciBlKSAoZm9ybWF0ICIgKCVzKSAiIChjZHIgZSkpICIiKSAiXG4iKSkKKwkgKChlcXVhbCAo Y2FyIGUpIDpzdGFydGdyb3VwdGFncykKKwkgIChzZXRxIGludGFnZ3JvdXAgdCkKKwkgICh3aGVu IChub3QgKD0gY250IDApKQorCSAgICAoc2V0cSBjbnQgMCkKKwkgICAgKGluc2VydCAiXG4iKSkK KwkgIChpbnNlcnQgIlsgIikpCisJICgoZXF1YWwgKGNhciBlKSA6ZW5kZ3JvdXB0YWdzKQorCSAg KHNldHEgaW50YWdncm91cCBuaWwgY250IDApCisJICAoaW5zZXJ0ICJdXG4iKSkKIAkgKChlcXVh bCBlICcoOm5ld2xpbmUpKQogCSAgKHdoZW4gKG5vdCAoPSBjbnQgMCkpCiAJICAgIChzZXRxIGNu dCAwKQpAQCAtMTUwNzksNyArMTUxMzAsNyBAQCBSZXR1cm5zIHRoZSBuZXcgdGFncyBzdHJpbmcs IG9yIG5pbCB0byBub3QgY2hhbmdlIHRoZSBjdXJyZW50IHNldHRpbmdzLiIKIAkgICAgKHdoaWxl IChlcXVhbCAoY2FyIHRibCkgJyg6bmV3bGluZSkpCiAJICAgICAgKGluc2VydCAiXG4iKQogCSAg ICAgIChzZXRxIHRibCAoY2RyIHRibCkpKSkpCi0JICgoZXF1YWwgZSAnKDpncm91cHRhZ3MpKSBu aWwpCisJICgoZXF1YWwgZSAnKDpncm91cHRhZ3MpKSAoaW5zZXJ0ICIgOiAiKSkKIAkgKHQKIAkg IChzZXRxIHRnIChjb3B5LXNlcXVlbmNlIChjYXIgZSkpIGMyIG5pbCkKIAkgIChpZiAoY2RyIGUp CkBAIC0xNTEwMiwxMyArMTUxNTMsMTMgQEAgUmV0dXJucyB0aGUgbmV3IHRhZ3Mgc3RyaW5nLCBv ciBuaWwgdG8gbm90IGNoYW5nZSB0aGUgY3VycmVudCBzZXR0aW5ncy4iCiAJICAJCQkgICAoKG1l bWJlciB0ZyBpbmhlcml0ZWQpIGktZmFjZSkpKSkKIAkgIChpZiAoZXF1YWwgKGNhYXIgdGJsKSA6 Z3JvdXB0YWdzKQogCSAgICAgIChvcmctYWRkLXByb3BzIHRnIG5pbCAnZmFjZSAnb3JnLXRhZy1n cm91cCkpCi0JICAoaWYgKGFuZCAoPSBjbnQgMCkgKG5vdCBpbmdyb3VwKSkgKGluc2VydCAiICAi KSkKKwkgIChpZiAoYW5kICg9IGNudCAwKSAobm90IGluZ3JvdXApIChub3QgaW50YWdncm91cCkp IChpbnNlcnQgIiAiKSkKIAkgIChpbnNlcnQgIlsiIGMgIl0gIiB0ZyAobWFrZS1zdHJpbmcKIAkJ CQkgKC0gZndpZHRoIDQgKGxlbmd0aCB0ZykpID9cICkpCiAJICAocHVzaCAoY29ucyB0ZyBjKSBu dGFibGUpCiAJICAod2hlbiAoPSAoc2V0cSBjbnQgKDErIGNudCkpIG5jb2wpCiAJICAgIChpbnNl cnQgIlxuIikKLQkgICAgKGlmIGluZ3JvdXAgKGluc2VydCAiICAiKSkKKwkgICAgKGlmIChvciBp bmdyb3VwIGludGFnZ3JvdXApIChpbnNlcnQgIiAiKSkKIAkgICAgKHNldHEgY250IDApKSkpKQog ICAgICAgKHNldHEgbnRhYmxlIChucmV2ZXJzZSBudGFibGUpKQogICAgICAgKGluc2VydCAiXG4i KQotLSAKMS45LjEKCg== --047d7b15a627552e80050d78068e Content-Type: application/octet-stream; name="0002-Filtering-in-the-agenda-on-grouptags.patch" Content-Disposition: attachment; filename="0002-Filtering-in-the-agenda-on-grouptags.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i5cb2oly2 RnJvbSBjZWIyYWZkNjM4ODBjNjgzMWY3ODFkMGFkYmI3NTFhMTM3MTA0ZDJhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/R3VzdGF2PTIwV2lrc3RyPUMzPUI2bT89IDxn dXN0YXZAVVZTZXJ2ZXI+CkRhdGU6IFNhdCwgMjQgSmFuIDIwMTUgMDI6NDc6MzUgKzAxMDAKU3Vi amVjdDogW1BBVENIIDIvM10gRmlsdGVyaW5nIGluIHRoZSBhZ2VuZGEgb24gZ3JvdXB0YWdzCgot IEZpbHRlcmluZyBpbiB0aGUgYWdlbmRhIG9uIGdyb3VwdGFncyBzaG91bGQgZmlsdGVyIGFsc28K ICBzdWJjYXRlZ29yaWVzLiBFeGNlcHRpb24gaWYgZmlsdGVyIGlzIGFwcGxpZWQgd2l0aCBhIChk b3VibGUpCiAgcHJlZml4LWFyZ3VtZW50LgoKICBGaWx0ZXJpbmcgaW4gdGhlIGFnZW5kYSBvbiBz dWJjYXRlZ29yaWVzIHNob3VsZCBub3QgZmlsdGVyIHRoZQogICJhYm92ZSIgbGV2ZWxzLgoKICBJ ZiBhIGdyb3VwdGFnIGNvbnRhaW5zIGEgcmVndWxhciBleHByZXNzaW9uIHRoZSByZWd1bGFyIGV4 cHJlc3Npb24KICBpcyBhbHNvIHVzZWQgYXMgYSBmaWx0ZXIuCi0tLQogbGlzcC9vcmctYWdlbmRh LmVsIHwgMTE5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNjQgaW5zZXJ0aW9ucygrKSwgNTUgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvbGlzcC9vcmctYWdlbmRhLmVsIGIvbGlzcC9vcmctYWdlbmRhLmVsCmlu ZGV4IGFkNDAxOGQuLjk2ZmVjZjkgMTAwNjQ0Ci0tLSBhL2xpc3Avb3JnLWFnZW5kYS5lbAorKysg Yi9saXNwL29yZy1hZ2VuZGEuZWwKQEAgLTczMTcsNyArNzMxNyw3IEBAIGluIHRoZSBhZ2VuZGEu IgogCSAgKGNhdCAob3IgY2F0LWZpbHRlciBjYXQtcHJlc2V0KSkKIAkgIChlZmZvcnQgKG9yIGVm Zm9ydC1maWx0ZXIgZWZmb3J0LXByZXNldCkpCiAJICAocmUgKG9yIHJlLWZpbHRlciByZS1wcmVz ZXQpKSkKLSAgICAgICh3aGVuIHRhZyAob3JnLWFnZW5kYS1maWx0ZXItYXBwbHkgdGFnICd0YWcp KQorICAgICAgKHdoZW4gdGFnIChvcmctYWdlbmRhLWZpbHRlci1hcHBseSB0YWcgJ3RhZyB0KSkK ICAgICAgICh3aGVuIGNhdCAob3JnLWFnZW5kYS1maWx0ZXItYXBwbHkgY2F0ICdjYXRlZ29yeSkp CiAgICAgICAod2hlbiBlZmZvcnQgKG9yZy1hZ2VuZGEtZmlsdGVyLWFwcGx5IGVmZm9ydCAnZWZm b3J0KSkKICAgICAgICh3aGVuIHJlICAob3JnLWFnZW5kYS1maWx0ZXItYXBwbHkgcmUgJ3JlZ2V4 cCkpKQpAQCAtNzQzOSwxMyArNzQzOSwxNiBAQCBXaXRoIHR3byBwcmVmaXggYXJndW1lbnRzLCBy ZW1vdmUgdGhlIGVmZm9ydCBmaWx0ZXJzLiIKICAgICAob3JnLWFnZW5kYS1maWx0ZXItc2hvdy1h bGwtZWZmb3J0KSkKICAgKG9yZy1hZ2VuZGEtZmluYWxpemUpKQogCi0oZGVmdW4gb3JnLWFnZW5k YS1maWx0ZXItYnktdGFnIChzdHJpcCAmb3B0aW9uYWwgY2hhciBuYXJyb3cpCisoZGVmdW4gb3Jn LWFnZW5kYS1maWx0ZXItYnktdGFnIChhcmcgJm9wdGlvbmFsIGNoYXIgZXhjbHVkZSkKICAgIktl ZXAgb25seSB0aG9zZSBsaW5lcyBpbiB0aGUgYWdlbmRhIGJ1ZmZlciB0aGF0IGhhdmUgYSBzcGVj aWZpYyB0YWcuCiBUaGUgdGFnIGlzIHNlbGVjdGVkIHdpdGggaXRzIGZhc3Qgc2VsZWN0aW9uIGxl dHRlciwgYXMgY29uZmlndXJlZC4KLVdpdGggcHJlZml4IGFyZ3VtZW50IFNUUklQLCByZW1vdmUg YWxsIGxpbmVzIHRoYXQgZG8gaGF2ZSB0aGUgdGFnLgotQSBsaXNwIGNhbGxlciBjYW4gc3BlY2lm eSBDSEFSLiAgTkFSUk9XIG1lYW5zIHRoYXQgdGhlIG5ldyB0YWcgc2hvdWxkIGJlCi11c2VkIHRv IG5hcnJvdyB0aGUgc2VhcmNoIC0gdGhlIGludGVyYWN0aXZlIHVzZXIgY2FuIGFsc28gcHJlc3Mg YC0nIG9yIGArJwotdG8gc3dpdGNoIHRvIG5hcnJvd2luZy4iCitXaXRoIGEgc2luZ2xlIGBDLXUn IHByZWZpeCBBUkcsIGV4Y2x1ZGUgdGhlIGFnZW5kYSBzZWFyY2guICBXaXRoIGEKK2RvdWJsZSBg Qy11JyBwcmVmaXggQVJHLCBmaWx0ZXIgdGhlIGxpdGVyYWwgdGFnLiBJLmUuIGRvbid0IGZpbHRl ciBvbgorYWxsIGl0cyBncm91cCBtZW1iZXJzLgorCitBIGxpc3AgY2FsbGVyIGNhbiBzcGVjaWZ5 IENIQVIuICBFWENMVURFIG1lYW5zIHRoYXQgdGhlIG5ldyB0YWcgc2hvdWxkIGJlCit1c2VkIHRv IGV4Y2x1ZGUgdGhlIHNlYXJjaCAtIHRoZSBpbnRlcmFjdGl2ZSB1c2VyIGNhbiBhbHNvIHByZXNz IGAtJyBvciBgKycKK3RvIHN3aXRjaCBiZXR3ZWVuIGZpbHRlcmluZyBhbmQgZXhjbHVkaW5nLiIK ICAgKGludGVyYWN0aXZlICJQIikKICAgKGxldCogKChhbGlzdCBvcmctdGFnLWFsaXN0LWZvci1h Z2VuZGEpCiAJICh0YWctY2hhcnMgKG1hcGNvbmNhdApAQCAtNzQ1MywyMyArNzQ1NiwyNCBAQCB0 byBzd2l0Y2ggdG8gbmFycm93aW5nLiIKIAkJCQkJICAoY2RyIHgpKQogCQkJCSAgICAgKGNoYXIt dG8tc3RyaW5nIChjZHIgeCkpCiAJCQkJICAgIiIpKQotCQkgICAgIGFsaXN0ICIiKSkKKwkJICAg ICBvcmctdGFnLWFsaXN0LWZvci1hZ2VuZGEgIiIpKQorCSAoZXhjbHVkZSAoaWYgZXhjbHVkZSBl eGNsdWRlIChlcXVhbCBhcmcgJyg0KSkpKQorCSAoZXhwYW5kIChub3QgKGVxdWFsIGFyZyAnKDE2 KSkpKQogCSAoaW5oaWJpdC1yZWFkLW9ubHkgdCkKIAkgKGN1cnJlbnQgb3JnLWFnZW5kYS10YWct ZmlsdGVyKQogCSBhIG4gdGFnKQogICAgICh1bmxlc3MgY2hhcgotICAgICAgKG1lc3NhZ2UKLSAg ICAgICAiJXMgYnkgdGFnIFslcyBdLCBbVEFCXSwgJXNbL106b2ZmLCBbKy1dOm5hcnJvdyIKLSAg ICAgICAoaWYgbmFycm93ICJOYXJyb3ciICJGaWx0ZXIiKSB0YWctY2hhcnMKLSAgICAgICAoaWYg b3JnLWFnZW5kYS1hdXRvLWV4Y2x1ZGUtZnVuY3Rpb24gIltSRVRdLCAiICIiKSkKLSAgICAgIChz ZXRxIGNoYXIgKHJlYWQtY2hhci1leGNsdXNpdmUpKSkKLSAgICAod2hlbiAobWVtYmVyIGNoYXIg Jyg/KyA/LSkpCi0gICAgICA7OyBOYXJyb3dpbmcgZG93bgotICAgICAgKGNvbmQgKChlcXVhbCBj aGFyID8tKSAoc2V0cSBzdHJpcCB0IG5hcnJvdyB0KSkKLQkgICAgKChlcXVhbCBjaGFyID8rKSAo c2V0cSBzdHJpcCBuaWwgbmFycm93IHQpKSkKLSAgICAgIChtZXNzYWdlCi0gICAgICAgIk5hcnJv dyBieSB0YWcgWyVzIF0sIFtUQUJdLCBbL106b2ZmIiB0YWctY2hhcnMpCi0gICAgICAoc2V0cSBj aGFyIChyZWFkLWNoYXItZXhjbHVzaXZlKSkpCisgICAgICAod2hpbGUgKG5vdCAobWVtYmVyIGNo YXIgKGFwcGVuZCAnKD9cdCA/XHIgPy8gPy4gP1wgP3EpCisJCQkJICAgICAgIChzdHJpbmctdG8t bGlzdCB0YWctY2hhcnMpKSkpCisJKG1lc3NhZ2UKKwkgIiVzIGJ5IHRhZyBbJXMgXSwgW1RBQl0s ICVzWy9dOm9mZiwgWysvLV06ZmlsdGVyL2V4Y2x1ZGUlcywgW3FdOnF1aXQiCisJIChpZiBleGNs dWRlICJFeGNsdWRlIiAiRmlsdGVyIikgdGFnLWNoYXJzCisJIChpZiBvcmctYWdlbmRhLWF1dG8t ZXhjbHVkZS1mdW5jdGlvbiAiW1JFVF0sICIgIiIpCisJIChpZiBleHBhbmQgIiIgIiwgbm8gZ3Jv dXB0YWcgZXhwYW5kIikpCisJKHNldHEgY2hhciAocmVhZC1jaGFyLWV4Y2x1c2l2ZSkpCisJOzsg RXhjbHVkaW5nIG9yIGZpbHRlcmluZyBkb3duCisJKGNvbmQgKChlcXVhbCBjaGFyID8tKSAoc2V0 cSBleGNsdWRlIHQpKQorCSAgICAgICgoZXF1YWwgY2hhciA/KykgKHNldHEgZXhjbHVkZSBuaWwp KSkpKQogICAgICh3aGVuIChlcXVhbCBjaGFyID9cdCkKICAgICAgICh1bmxlc3MgKGxvY2FsLXZh cmlhYmxlLXAgJ29yZy1nbG9iYWwtdGFncy1jb21wbGV0aW9uLXRhYmxlIChjdXJyZW50LWJ1ZmZl cikpCiAJKG9yZy1zZXQtbG9jYWwgJ29yZy1nbG9iYWwtdGFncy1jb21wbGV0aW9uLXRhYmxlCkBA IC03NDg3LDI1ICs3NDkxLDI2IEBAIHRvIHN3aXRjaCB0byBuYXJyb3dpbmcuIgogCSAgICAoaWYg bW9kaWZpZXIKIAkJKHB1c2ggbW9kaWZpZXIgb3JnLWFnZW5kYS10YWctZmlsdGVyKSkpKQogCShp ZiAobm90IChudWxsIG9yZy1hZ2VuZGEtdGFnLWZpbHRlcikpCi0JICAgIChvcmctYWdlbmRhLWZp bHRlci1hcHBseSBvcmctYWdlbmRhLXRhZy1maWx0ZXIgJ3RhZykpKSkKKwkgICAgKG9yZy1hZ2Vu ZGEtZmlsdGVyLWFwcGx5IG9yZy1hZ2VuZGEtdGFnLWZpbHRlciAndGFnIGV4cGFuZCkpKSkKICAg ICAgKChlcXVhbCBjaGFyID8vKQogICAgICAgKG9yZy1hZ2VuZGEtZmlsdGVyLXNob3ctYWxsLXRh ZykKICAgICAgICh3aGVuIChnZXQgJ29yZy1hZ2VuZGEtdGFnLWZpbHRlciA6cHJlc2V0LWZpbHRl cikKLQkob3JnLWFnZW5kYS1maWx0ZXItYXBwbHkgb3JnLWFnZW5kYS10YWctZmlsdGVyICd0YWcp KSkKKwkob3JnLWFnZW5kYS1maWx0ZXItYXBwbHkgb3JnLWFnZW5kYS10YWctZmlsdGVyICd0YWcg ZXhwYW5kKSkpCiAgICAgICgoZXF1YWwgY2hhciA/LiApCiAgICAgICAoc2V0cSBvcmctYWdlbmRh LXRhZy1maWx0ZXIKIAkgICAgKG1hcGNhciAobGFtYmRhKHRhZykgKGNvbmNhdCAiKyIgdGFnKSkK IAkJICAgIChvcmctZ2V0LWF0LWJvbCAndGFncykpKQotICAgICAgKG9yZy1hZ2VuZGEtZmlsdGVy LWFwcGx5IG9yZy1hZ2VuZGEtdGFnLWZpbHRlciAndGFnKSkKKyAgICAgIChvcmctYWdlbmRhLWZp bHRlci1hcHBseSBvcmctYWdlbmRhLXRhZy1maWx0ZXIgJ3RhZyBleHBhbmQpKQorICAgICAoKGVx dWFsIGNoYXIgP3EpKSA7SWYgcSwgYWJvcnQgKGV2ZW4gaWYgdGhlcmUgaXMgYSBxLWtleSBmb3Ig YSB0YWcuLi4pCiAgICAgICgob3IgKGVxdWFsIGNoYXIgP1wgKQogCSAgKHNldHEgYSAocmFzc29j IGNoYXIgYWxpc3QpKQogCSAgKGFuZCB0YWcgKHNldHEgYSAoY29ucyB0YWcgbmlsKSkpKQogICAg ICAgKG9yZy1hZ2VuZGEtZmlsdGVyLXNob3ctYWxsLXRhZykKICAgICAgIChzZXRxIHRhZyAoY2Fy IGEpKQogICAgICAgKHNldHEgb3JnLWFnZW5kYS10YWctZmlsdGVyCi0JICAgIChjb25zIChjb25j YXQgKGlmIHN0cmlwICItIiAiKyIpIHRhZykKLQkJICAoaWYgbmFycm93IGN1cnJlbnQgbmlsKSkp Ci0gICAgICAob3JnLWFnZW5kYS1maWx0ZXItYXBwbHkgb3JnLWFnZW5kYS10YWctZmlsdGVyICd0 YWcpKQorCSAgICAoY29ucyAoY29uY2F0IChpZiBleGNsdWRlICItIiAiKyIpIHRhZykKKwkJICBj dXJyZW50KSkKKyAgICAgIChvcmctYWdlbmRhLWZpbHRlci1hcHBseSBvcmctYWdlbmRhLXRhZy1m aWx0ZXIgJ3RhZyBleHBhbmQpKQogICAgICAodCAoZXJyb3IgIkludmFsaWQgdGFnIHNlbGVjdGlv biBjaGFyYWN0ZXIgJWMiIGNoYXIpKSkpKQogCiAoZGVmdW4gb3JnLWFnZW5kYS1nZXQtcmVwcmVz ZW50ZWQtdGFncyAoKQpAQCAtNzUxOSwxMiArNzUyNCwxMiBAQCB0byBzd2l0Y2ggdG8gbmFycm93 aW5nLiIKIAkgICAgICAoZ2V0LXRleHQtcHJvcGVydHkgKHBvaW50KSAndGFncykpKSkKICAgICB0 YWdzKSkKIAotKGRlZnVuIG9yZy1hZ2VuZGEtZmlsdGVyLWJ5LXRhZy1yZWZpbmUgKHN0cmlwICZv cHRpb25hbCBjaGFyKQorKGRlZnVuIG9yZy1hZ2VuZGEtZmlsdGVyLWJ5LXRhZy1yZWZpbmUgKGFy ZyAmb3B0aW9uYWwgY2hhcikKICAgIlJlZmluZSB0aGUgY3VycmVudCBmaWx0ZXIuICBTZWUgYG9y Zy1hZ2VuZGEtZmlsdGVyLWJ5LXRhZycuIgogICAoaW50ZXJhY3RpdmUgIlAiKQotICAob3JnLWFn ZW5kYS1maWx0ZXItYnktdGFnIHN0cmlwIGNoYXIgJ3JlZmluZSkpCisgIChvcmctYWdlbmRhLWZp bHRlci1ieS10YWcgYXJnIGNoYXIgJ3JlZmluZSkpCiAKLShkZWZ1biBvcmctYWdlbmRhLWZpbHRl ci1tYWtlLW1hdGNoZXIgKGZpbHRlciB0eXBlKQorKGRlZnVuIG9yZy1hZ2VuZGEtZmlsdGVyLW1h a2UtbWF0Y2hlciAoZmlsdGVyIHR5cGUgJm9wdGlvbmFsIGV4cGFuZCkKICAgIkNyZWF0ZSB0aGUg Zm9ybSB0aGF0IHRlc3RzIGEgbGluZSBmb3IgYWdlbmRhIGZpbHRlci4iCiAgIChsZXQgKGYgZjEp CiAgICAgKGNvbmQKQEAgLTc1MzQsMjcgKzc1MzksMTMgQEAgdG8gc3dpdGNoIHRvIG5hcnJvd2lu Zy4iCiAJICAgIChkZWxldGUtZHVwcwogCSAgICAgKGFwcGVuZCAoZ2V0ICdvcmctYWdlbmRhLXRh Zy1maWx0ZXIgOnByZXNldC1maWx0ZXIpCiAJCSAgICAgZmlsdGVyKSkpCisgICAgICA7KGlmIGV4 cGFuZCAoc2V0cSBmaWx0ZXIgKG9yZy1hZ2VuZGEtZmlsdGVyLWV4cGFuZC10YWdzIGZpbHRlcikp KQogICAgICAgKGRvbGlzdCAoeCBmaWx0ZXIpCi0JKGxldCAoKG5maWx0ZXIgKG9yZy1hZ2VuZGEt ZmlsdGVyLWV4cGFuZC10YWdzIGZpbHRlcikpIG5mIG5mMQotCSAgICAgIChmZnVuYwotCSAgICAg ICAobGFtYmRhIChuZjAgbmYwMSBmbHRyIG5vdGdyb3VwIG9wKQotCQkgKGRvbGlzdCAoeCBmbHRy KQotCQkgICAoaWYgKG1lbWJlciB4ICcoIi0iICIrIikpCi0JCSAgICAgICAoc2V0cSBuZjAxIChp ZiAoZXF1YWwgeCAiLSIpICd0YWdzICcobm90IHRhZ3MpKSkKLQkJICAgICAoc2V0cSBuZjAxIChs aXN0ICdtZW1iZXIgKGRvd25jYXNlIChzdWJzdHJpbmcgeCAxKSkKLQkJCQkgICAgICAndGFncykp Ci0JCSAgICAgKHdoZW4gKGVxdWFsIChzdHJpbmctdG8tY2hhciB4KSA/LSkKLQkJICAgICAgIChz ZXRxIG5mMDEgKGxpc3QgJ25vdCBuZjAxKSkKLQkJICAgICAgICh3aGVuIChub3Qgbm90Z3JvdXAp IChzZXRxIG9wICdhbmQpKSkpCi0JCSAgIChwdXNoIG5mMDEgbmYwKSkKLQkJIChpZiBub3Rncm91 cAotCQkgICAgIChwdXNoIChjb25zICdhbmQgbmYwKSBmKQotCQkgICAocHVzaCAoY29ucyAob3Ig b3AgJ29yKSBuZjApIGYpKSkpKQotCSAgKGNvbmQgKChlcXVhbCBmaWx0ZXIgJygiKyIpKQotCQkg KHNldHEgZiAobGlzdCAobGlzdCAnbm90ICd0YWdzKSkpKQotCQkoKGVxdWFsIG5maWx0ZXIgZmls dGVyKQotCQkgKGZ1bmNhbGwgZmZ1bmMgZjEgZiBmaWx0ZXIgdCBuaWwpKQotCQkodCAoZnVuY2Fs bCBmZnVuYyBuZjEgbmYgbmZpbHRlciBuaWwgbmlsKSkpKSkpCisJKGxldCAoKG9wIChzdHJpbmct dG8tY2hhciB4KSkpCisJICAoaWYgZXhwYW5kIChzZXRxIHggKG9yZy1hZ2VuZGEtZmlsdGVyLWV4 cGFuZC10YWdzIChsaXN0IHgpIHQpKQorCSAgICAoc2V0cSB4IChsaXN0IHgpKSkKKwkgIChzZXRx IGYxIChvcmctYWdlbmRhLWZpbHRlci1tYWtlLW1hdGNoZXItdGFnLWV4cCB4IG9wKSkKKwkgIChw dXNoIGYxIGYpKSkpCiAgICAgIDs7IENhdGVnb3J5IGZpbHRlcgogICAgICAoKGVxIHR5cGUgJ2Nh dGVnb3J5KQogICAgICAgKHNldHEgZmlsdGVyCkBAIC03NTg3LDYgKzc1NzgsMjggQEAgdG8gc3dp dGNoIHRvIG5hcnJvd2luZy4iCiAJKHB1c2ggKG9yZy1hZ2VuZGEtZmlsdGVyLWVmZm9ydC1mb3Jt IHgpIGYpKSkpCiAgICAgKGNvbnMgJ2FuZCAobnJldmVyc2UgZikpKSkKIAorKGRlZnVuIG9yZy1h Z2VuZGEtZmlsdGVyLW1ha2UtbWF0Y2hlci10YWctZXhwICh0YWdzIG9wKQorICAobGV0IChmIGYx KSA7ZiA9IHJldHVybiBleHByZXNzaW9uLiBmMSA9IHdvcmtpbmctYXJlYQorICAgIChkb2xpc3Qg KHggdGFncykKKyAgICAgIChsZXQqICgodGFnIChzdWJzdHJpbmcgeCAxKSkKKwkgICAgIChpc3Jl Z2V4cCAoYW5kIChzdHJpbmctcHJlZml4LXAgInsiIHRhZykKKwkJCSAgICAoc3RyaW5nLXN1ZmZp eC1wICJ9IiB0YWcpKSkKKwkgICAgIHJlZ2V4cCkKKwkoY29uZAorCSAoaXNyZWdleHAKKwkgIChz ZXRxIHJlZ2V4cCAoc3Vic3RyaW5nIHRhZyAxIC0xKSkKKwkgIChzZXRxIGYxIChsaXN0ICdzdHJp bmctbWF0Y2ggcmVnZXhwICcoYXBwbHkgJ2NvbmNhdCAgdGFncykpKSkKKwkgKHQKKwkgIChzZXRx IGYxIChsaXN0ICdtZW1iZXIgKGRvd25jYXNlIHRhZykgJ3RhZ3MpKQorCSAgKHdoZW4gKGVxdWFs IG9wID8tKQorCSAgICAoc2V0cSBmMSAobGlzdCAnbm90IGYxKSkpKSkpCisgICAgICAocHVzaCBm MSBmKSkKKyAgICA7IGFueSBvZiB0aGUgZXhwcmVzc2lvbnMgY2FuIG1hdGNoIGlmIG9wID0gKwor ICAgIDsgYWxsIG11c3QgbWF0Y2ggaWYgdGhlIG9wZXJhdG9yIGlzIC0uIEFsbCBvCisgICAgKGlm IChlcXVhbCBvcCA/LSkKKwkoY29ucyAnYW5kIGYpCisgICAgICAoY29ucyAnb3IgZikpKSkKKwog KGRlZnVuIG9yZy1hZ2VuZGEtZmlsdGVyLWVmZm9ydC1mb3JtIChlKQogICAiUmV0dXJuIHRoZSBm b3JtIHRvIGNvbXBhcmUgdGhlIGVmZm9ydCBvZiB0aGUgY3VycmVudCBsaW5lIHdpdGggd2hhdCBF IHNheXMuCiBFIGxvb2tzIGxpa2UgXCIrPDI6MjVcIi4iCkBAIC03NjI1LDEyICs3NjM4LDEyIEBA IFdoZW4gTk8tT1BFUkFUT1IgaXMgbm9uLW5pbCwgZG8gbm90IGFkZCB0aGUgKyBvcGVyYXRvciB0 byByZXR1cm5lZCB0YWdzLiIKIAkocmV2ZXJzZSBydG4pKQogICAgIGZpbHRlcikpCiAKLShkZWZ1 biBvcmctYWdlbmRhLWZpbHRlci1hcHBseSAoZmlsdGVyIHR5cGUpCisoZGVmdW4gb3JnLWFnZW5k YS1maWx0ZXItYXBwbHkgKGZpbHRlciB0eXBlICZvcHRpb25hbCBleHBhbmQpCiAgICJTZXQgRklM VEVSIGFzIHRoZSBuZXcgYWdlbmRhIGZpbHRlciBhbmQgYXBwbHkgaXQuIgogICA7OyBEZWFjdGl2 YXRlIGBvcmctYWdlbmRhLWVudHJ5LXRleHQtbW9kZScgd2hlbiBmaWx0ZXJpbmcKICAgKGlmIG9y Zy1hZ2VuZGEtZW50cnktdGV4dC1tb2RlIChvcmctYWdlbmRhLWVudHJ5LXRleHQtbW9kZSkpCiAg IChsZXQgKHRhZ3MgY2F0IHR4dCkKLSAgICAoc2V0cSBvcmctYWdlbmRhLWZpbHRlci1mb3JtIChv cmctYWdlbmRhLWZpbHRlci1tYWtlLW1hdGNoZXIgZmlsdGVyIHR5cGUpKQorICAgIChzZXRxIG9y Zy1hZ2VuZGEtZmlsdGVyLWZvcm0gKG9yZy1hZ2VuZGEtZmlsdGVyLW1ha2UtbWF0Y2hlciBmaWx0 ZXIgdHlwZSBleHBhbmQpKQogICAgIDs7IE9ubHkgc2V0IGBvcmctYWdlbmRhLWZpbHRlcmVkLWJ5 LWNhdGVnb3J5JyB0byB0IHdoZW4gYSB1bmlxdWUKICAgICA7OyBjYXRlZ29yeSBpcyB1c2VkIGFz IHRoZSBmaWx0ZXI6CiAgICAgKHNldHEgb3JnLWFnZW5kYS1maWx0ZXJlZC1ieS1jYXRlZ29yeQpA QCAtNzY0MiwxMSArNzY1NSw3IEBAIFdoZW4gTk8tT1BFUkFUT1IgaXMgbm9uLW5pbCwgZG8gbm90 IGFkZCB0aGUgKyBvcGVyYXRvciB0byByZXR1cm5lZCB0YWdzLiIKICAgICAgICh3aGlsZSAobm90 IChlb2JwKSkKIAkoaWYgKG9yZy1nZXQtYXQtYm9sICdvcmctbWFya2VyKQogCSAgICAocHJvZ24K LQkgICAgICAoc2V0cSB0YWdzIDsgdXNlZCBpbiBldmFsCi0JCSAgICAoYXBwbHkgJ2FwcGVuZAot CQkJICAgKG1hcGNhciAobGFtYmRhIChmKQotCQkJCSAgICAgKG9yZy1hZ2VuZGEtZmlsdGVyLWV4 cGFuZC10YWdzIChsaXN0IGYpIHQpKQotCQkJCSAgIChvcmctZ2V0LWF0LWJvbCAndGFncykpKQor CSAgICAgIChzZXRxIHRhZ3MgKG9yZy1nZXQtYXQtYm9sICd0YWdzKQogCQkgICAgY2F0IChvcmct Z2V0LWF0LWVvbCAnb3JnLWNhdGVnb3J5IDEpCiAJCSAgICB0eHQgKG9yZy1nZXQtYXQtZW9sICd0 eHQgMSkpCiAJICAgICAgKGlmIChub3QgKGV2YWwgb3JnLWFnZW5kYS1maWx0ZXItZm9ybSkpCi0t IAoxLjkuMQoK --047d7b15a627552e80050d78068e Content-Type: application/octet-stream; name="0003-Nesting-grouptags.patch" Content-Disposition: attachment; filename="0003-Nesting-grouptags.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i5cb2om33 RnJvbSA4NjI1MThlYjYyMGJhOTU4OTliMmU5MmRjNGFkNWZkZWI1YjVmYWE1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/R3VzdGF2PTIwV2lrc3RyPUMzPUI2bT89IDxn dXN0YXZAVVZTZXJ2ZXI+CkRhdGU6IFNhdCwgMjQgSmFuIDIwMTUgMDI6NDc6NDcgKzAxMDAKU3Vi amVjdDogW1BBVENIIDMvM10gTmVzdGluZyBncm91cHRhZ3MKCi0gTmVzdGluZyBncm91cHRhZ3Mu IEFsbG93aW5nIHN1YnRhZ3MgdG8gYmUgZGVmaW5lZCBhcyBncm91cHMKICB0aGVtc2VsdmVzLgoK ICA6ICMrVEFHUzogWyBHcm91cCA6IFN1Yk9uZSgxKSBTdWJUd28gXQogIDogIytUQUdTOiBbIFN1 Yk9uZSA6IFN1Yk9uZTEgU3ViT25lMiBdCiAgOiAjK1RBR1M6IFsgU3ViVHdvIDogU3ViVHdvMSBT dWJUd28yIF0KCiAgU2hvdWxkIGJlIHNlZW4gYXMgYSB0cmVlIG9mIHRhZ3M6CiAgLSBHcm91cAog ICAgLSBTdWJPbmUKICAgICAgLSBTdWJPbmUxCiAgICAgIC0gU3ViT25lMgogICAgLSBTdWJUd28K ICAgICAgLSBTdWJUd28xCiAgICAgIC0gU3ViVHdvMgoKICBTZWFyY2hpbmcgZm9yICJHcm91cCIg c2hvdWxkIHJldHVybiBhbGwgdGFncyBkZWZpbmVkIGFib3ZlLgoKICBBIG5ldyB2YXJpYWJsZSBp cyBkZWZpbmVkID1PUkctR1JPVVAtVEFHUy1NQVgtREVQVEg9IHRoYXQgaXMgdXNlZCB0bwogIGxp bWl0IHRoZSBkZXB0aCBvZiByZWN1cnNpb24gd2hlbiBleHBhbmRpbmcgdGFncy4gSXQgZGVmYXVs dHMgdG8gMi4KCkNvbmZsaWN0czoKCWxpc3Avb3JnLmVsCi0tLQogbGlzcC9vcmcuZWwgfCAyNyAr KysrKysrKysrKysrKysrKysrKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCAyNiBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbGlzcC9vcmcuZWwgYi9saXNwL29yZy5l bAppbmRleCAwNWI3MzA3Li5mNGQ5M2ZiIDEwMDc1NQotLS0gYS9saXNwL29yZy5lbAorKysgYi9s aXNwL29yZy5lbApAQCAtNDkyOSw2ICs0OTI5LDEyIEBAIFRoaXMgY2FuIGJlIHR1cm5lZCBvbi9v ZmYgdGhyb3VnaCBgb3JnLXRvZ2dsZS10YWdzLWdyb3VwcycuIgogICA6Z3JvdXAgJ29yZy1zdGFy dHVwCiAgIDp0eXBlICdib29sZWFuKQogCisoZGVmY3VzdG9tIG9yZy1ncm91cC10YWdzLW1heC1k ZXB0aCAyCisgICJTcGVjaWZpZXMgdGhlIG1heGltdW0gcmVjdXJzaXZlIGRlcHRoIHRhZ3Mgd2ls bCBiZQorZXhwYW5kZWQuIE9ubHkgYXBwbGllcyBpZiBvcmctZ3JvdXAtdGFncyBpcyBhY3RpdmF0 ZWQuIgorICA6Z3JvdXAgJ29yZy10YWdzCisgIDp0eXBlICdpbnRlZ2VyKQorCiAoZGVmdmFyIG9y Zy1pbmhpYml0LXN0YXJ0dXAgbmlsKSAgICAgICAgOyBEeW5hbWljYWxseS1zY29wZWQgcGFyYW0u CiAKIChkZWZ1biBvcmctdG9nZ2xlLXRhZ3MtZ3JvdXBzICgpCkBAIC0xNDUyOCw3ICsxNDUzNCw3 IEBAIFNlZSBhbHNvIGBvcmctc2Nhbi10YWdzJy4KIAkJCSAgbWF0Y2hlcikpKQogICAgIChjb25z IG1hdGNoMCBtYXRjaGVyKSkpCiAKLShkZWZ1biBvcmctdGFncy1leHBhbmQgKG1hdGNoICZvcHRp b25hbCBzaW5nbGUtYXMtbGlzdCBkb3duY2FzZWQpCisoZGVmdW4gb3JnLXRhZ3MtZXhwYW5kICht YXRjaCAmb3B0aW9uYWwgc2luZ2xlLWFzLWxpc3QgZG93bmNhc2VkIHJlY3Vyc2lvbi1sZXZlbCkK ICAgIkV4cGFuZCBncm91cCB0YWdzIGluIE1BVENILgogCiBUaGlzIHJlcGxhY2VzIGV2ZXJ5IGdy b3VwIHRhZyBpbiBNQVRDSCB3aXRoIGEgcmVnZXhwIHRhZyBzZWFyY2guCkBAIC0xNDU3OSw2ICsx NDU4NSwyMCBAQCBXaGVuIERPV05DQVNFIGlzIG5vbi1uaWwsIGV4cGFuZCBkb3duY2FzZWQgVEFH Uy4iCiAJCSAodGFnIChpZiBkb3duY2FzZWQgKGRvd25jYXNlIHRhZykgdGFnKSkpCiAJICAgICh3 aGVuIChub3QgKGdldC10ZXh0LXByb3BlcnR5IDAgJ2dyb3VwdGFnIChtYXRjaC1zdHJpbmcgMiBy ZXR1cm4tbWF0Y2gpKSkKIAkgICAgICAoc2V0cSB0YWdzLWluLWdyb3VwIChhc3NvYyB0YWcgdGFn Z3JvdXBzKSkKKwkgICAgICA7IFJlY3Vyc2l2ZWx5IGV4cGFuZCBlYWNoIHRhZyBpbiB0aGUgZ3Jv dXAsIGlmIHRoZXJlIGFyZQorCSAgICAgIDsgbmVzdGVkIGdyb3VwcyBhbmQgb3JnLWdyb3VwLXRh Z3MtbWF4LWRlcHRoIGFsbG93cyBpdAorCSAgICAgIChpZiAob3IgKG5vdCByZWN1cnNpb24tbGV2 ZWwpCisJCSAgICAgICg+IG9yZy1ncm91cC10YWdzLW1heC1kZXB0aCByZWN1cnNpb24tbGV2ZWwp KQorCQkgIChsZXQgKChsdmwgKGlmIHJlY3Vyc2lvbi1sZXZlbCAoMSsgcmVjdXJzaW9uLWxldmVs KSAxKSkKKwkJCXRhZ3MtZXhwYW5kZWQtaW4tZ3JvdXApCisJCSAgICAoZG9saXN0ICh4IChjZHIg dGFncy1pbi1ncm91cCkpCisJCSAgICAgIChpZiAobWVtYmVyIHggdGFnZ3JvdXBzLWtleXMpCisJ CQkgIDsobWF0Y2ggJm9wdGlvbmFsIHNpbmdsZS1hcy1saXN0IGRvd25jYXNlZCByZWN1cnNpb24t bGV2ZWwpCisJCQkgIChzZXRxIHRhZ3MtZXhwYW5kZWQtaW4tZ3JvdXAgKGFwcGVuZCAob3JnLXRh Z3MtZXhwYW5kIHggdCBkb3duY2FzZWQgbHZsKQorCQkJCQkJCSAgICAgICB0YWdzLWV4cGFuZGVk LWluLWdyb3VwKSkKKwkJCShzZXRxIHRhZ3MtZXhwYW5kZWQtaW4tZ3JvdXAgKGFwcGVuZCAobGlz dCB4KSB0YWdzLWV4cGFuZGVkLWluLWdyb3VwKSkpKQorCQkgICAgKHNldHEgdGFncy1pbi1ncm91 cCAoY29ucyAoY2FyIHRhZ3MtaW4tZ3JvdXApCisJCQkJCSAgICAgIHRhZ3MtZXhwYW5kZWQtaW4t Z3JvdXApKSkpCiAJICAgICAgOyBGaWx0ZXIgdGFnLXJlZ2V4cHMgZnJvbSB0YWdzCiAJICAgICAg KHNldHEgcmVnZXhwLWluLWdyb3VwLWVzY2FwZWQgKGRlbHEgbmlsIChtYXBjYXIgKGxhbWJkYSAo eCkKIAkJCQkJCQkJKGlmIChzdHJpbmdwIHgpCkBAIC0xNDYwMCw2ICsxNDYyMCwxMSBAQCBXaGVu IERPV05DQVNFIGlzIG5vbi1uaWwsIGV4cGFuZCBkb3duY2FzZWQgVEFHUy4iCiAJCQkoc2V0cSBy ZWdleHAtaW4tZ3JvdXAgKGNvbmNhdCAiXFx8IiAobWFwY29uY2F0ICdpZGVudGl0eSByZWdleHAt aW4tZ3JvdXAgIlxcfCIpKSkpCiAJCSAgICAoc2V0cSB0YWdzLWluLWdyb3VwIChjb25jYXQgZGly ICJ7XFw8IiAocmVnZXhwLW9wdCB0YWdzLWluLWdyb3VwKSByZWdleHAtaW4tZ3JvdXAgICJcXD59 IikpCiAJCSAgICAoaWYgKHN0cmluZ3AgdGFncy1pbi1ncm91cCkgKG9yZy1hZGQtcHJvcHMgdGFn cy1pbi1ncm91cCAnKGdyb3VwdGFnIHQpKSkKKwkJICAgIDs7IFJlZG8gdGhlIHJlZ2V4cC1tYXRj aCBiZWNhdXNlIHRoZSByZWN1cnNpdmUgY2FsbHMgc2VlbXMgdG8gbWVzcyBpdCB1cC4uLgorCQkg ICAgKHdpdGgtc3ludGF4LXRhYmxlIHN0YWJsZQorCQkgICAgICAoc3RyaW5nLW1hdGNoCisJCSAg ICAgICAoY29uY2F0ICJcXCg/MTpbKy1dP1xcKVxcKD8yOlxcPCIKKwkJCSAgICAgICAocmVnZXhw LW9wdCB0YWdncm91cHMta2V5cykgIlxcPlxcKSIpIHJldHVybi1tYXRjaCkpCiAJCSAgICAoc2V0 cSByZXR1cm4tbWF0Y2ggKHJlcGxhY2UtbWF0Y2ggdGFncy1pbi1ncm91cCB0IHQgcmV0dXJuLW1h dGNoKSkpCiAgCQkoc2V0cSB0YWdzLWluLWdyb3VwIChhcHBlbmQgcmVnZXhwLWluLWdyb3VwLWVz Y2FwZWQgdGFncy1pbi1ncm91cCkpKSkKICAJICAgIChzZXRxIHRhZ2dyb3Vwcy1rZXlzIChkZWxl dGUgdGFnIHRhZ2dyb3Vwcy1rZXlzKSkpKQotLSAKMS45LjEKCg== --047d7b15a627552e80050d78068e--