[COMMIT] Reduce regexp usage, now CL-oriented non-regexp code available, core Lisp
Aidan Kehoe <[email protected]> Wed, 1 Apr 2015 14:30:03 +0100
| Newsgroups | gmane.emacs.xemacs.patches |
|---|---|
| Message-ID | <[email protected]> |
CkFQUFJPVkUgQ09NTUlUCgpOT1RFOiBUaGlzIHBhdGNoIGhhcyBiZWVuIGNvbW1pdHRlZC4KCiMg SEcgY2hhbmdlc2V0IHBhdGNoCiMgVXNlciBBaWRhbiBLZWhvZSA8a2Vob2VhQHBhcmhhc2FyZC5u ZXQ+CiMgRGF0ZSAxNDI3ODk0OTAwIC0zNjAwCiMgICAgICBXZWQgQXByIDAxIDE0OjI4OjIwIDIw MTUgKzAxMDAKIyBOb2RlIElEIGJiZTQxNDY2MDNkYmRmYzhjNmU0YjUyOTlkN2RlYjZlOWVkMWE1 NjIKIyBQYXJlbnQgIDMxZGQyNzVmYTY4M2Y3MzUyZGY5Y2ZlMmZlNjQ2MjAzN2I1M2FhYTkKUmVk dWNlIHJlZ2V4cCB1c2FnZSwgbm93IENMLW9yaWVudGVkIG5vbi1yZWdleHAgY29kZSBhdmFpbGFi bGUsIGNvcmUgTGlzcAoKbGlzcC9DaGFuZ2VMb2cgYWRkaXRpb246CgoyMDE1LTA0LTAxICBBaWRh biBLZWhvZSAgPGtlaG9lYUBwYXJoYXNhcmQubmV0PgoKCVdoZW4gY2FsbGluZyAjJ3N0cmluZy1t YXRjaCB3aXRoIGEgUkVHRVhQIHdpdGhvdXQgcmVndWxhcgoJZXhwcmVzc2lvbiBzcGVjaWFsIGNo YXJhY3RlcnMsIGNhbGwgIydzZWFyY2gsICMnbWlzbWF0Y2gsICMnZmluZCwKCWV0Yy4gaW5zdGVh ZCwgbWFraW5nIG91ciBjb2RlIGxlc3MgbGlrZWx5IHRvIHNpZGUtZWZmZWN0IG90aGVyCglmdW5j dGlvbnMnIG1hdGNoIGRhdGEgYW5kIGEgbGl0dGxlIGZhc3Rlci4KCgkqIGFwcm9wb3MuZWwgKGFw cm9wb3MtY29tbWFuZCk6CgkqIGFwcm9wb3MuZWwgKGFwcm9wb3MpOgoJQ2FsbCAocG9zaXRpb24g P1xuIC4uLikgcmF0aGVyIHRoYW4gKHN0cmluZy1tYXRjaCAiXG4iIC4uLikgaGVyZS4KCSogYnVm Zi1tZW51LmVsOgoJKiBidWZmLW1lbnUuZWwgKGJ1ZmZlcnMtbWVudS1vbWl0LWludmlzaWJsZS1i dWZmZXJzKToKCURvbid0IGZpcmUgdXAgdGhlIHJlZ2V4cCBlbmdpbmUganVzdCB0byBjaGVjayBp ZiBhIHN0cmluZyBzdGFydHMKCXdpdGggYSBzcGFjZS4KCSogYnVmZi1tZW51LmVsIChzZWxlY3Qt YnVmZmVycy10YWItYnVmZmVycy1ieS1tb2RlKToKCURvbid0IGZpcmUgdXAgdGhlIHJlZ2V4cCBl bmdpbmUganVzdCB0byBjb21wYXJlIG1vZGUgYmFzZW5hbWVzLgoJKiBidWZmLW1lbnUuZWwgKGZv cm1hdC1idWZmZXJzLXRhYi1saW5lKToKCSogYnVmZi1tZW51LmVsIChidWlsZC1idWZmZXJzLXRh Yi1pbnRlcm5hbCk6IE1vdmVkIHRvIGJlaW5nIGEKCWxhYmVsIHdpdGhpbiB0aGUgZm9sbG93aW5n LgoJKiBidWZmLW1lbnUuZWwgKGJ1ZmZlcnMtdGFiLWl0ZW1zKTogVXNlIHRoZSBsYWJlbC4KCSog Ynl0ZWNvbXAuZWwgKGJ5dGUtY29tcGlsZS1sb2ctMSk6CglEb24ndCBmaXJlIHVwIHRoZSByZWdl eHAgZW5naW5lIGp1c3QgdG8gbG9vayBmb3IgYSBuZXdsaW5lLgoJKiBjdXMtZWRpdC5lbCAoZ2V0 KToKCURpdHRvLgoJKiBjdXMtZWRpdC5lbCAoY3VzdG9tLXZhcmlhYmxlLXZhbHVlLWNyZWF0ZSk6 CglEaXR0bywgYnV0IGZvciBhIGNvbG9uLgoJKiBkZXNjci10ZXh0LmVsIChkZXNjcmliZS10ZXh0 LXNleHApOgoJRGl0dG8uCgkqIGRlc2NyLXRleHQuZWwgKGRlc2NyaWJlLWNoYXItdW5pY29kZS1k YXRhKToKCVVzZSAjJ3NwbGl0LXN0cmluZy1ieS1jaGFyIGdpdmVuIHRoYXQgd2UncmUganVzdCBs b29raW5nIGZvciBhCglzZW1pY29sb24uCgkqIGRlc2NyLXRleHQuZWwgKGRlc2NyaWJlLWNoYXIp OgoJRG9uJ3QgZmlyZSB1cCB0aGUgcmVnZXhwIGVuZ2luZSBqdXN0IHRvIGxvb2sgZm9yIGEgbmV3 bGluZS4KCSogZGlzYXNzLmVsIChkaXNhc3NlbWJsZS1pbnRlcm5hbCk6CglEaXR0by4KCSogZmls ZXMuZWwgKGZpbGUtbmFtZS1zYW5zLWV4dGVuc2lvbik6CglJbXBsZW1lbnQgdGhpcyB1c2luZyAj J3Bvc2l0aW9uLgoJKiBmaWxlcy5lbCAoZmlsZS1uYW1lLWV4dGVuc2lvbik6CglDb3JyZWN0IHRo aXMgZnVuY3Rpb24ncyBkb2NzdHJpbmcsIGltcGxlbWVudCBpdCBpbiB0ZXJtcyBvZgoJIydwb3Np dGlvbi4KCSogZmlsZXMuZWwgKGluc2VydC1kaXJlY3RvcnkpOgoJRG9uJ3QgZmlyZSB1cCB0aGUg cmVnZXhwIGVuZ2luZSB0byBzcGxpdCBhIHN0cmluZyBieSBzcGFjZTsgZG9uJ3QKCXJldmVyc2Ug dGhlIGxpc3Qgb2Ygc3dpdGNoZXMsIHRoaXMgaXMgYWN0dWFsbHkgYSBsb25nc3RhbmQgYnVnIGFz CglmYXIgYXMgSSBjYW4gc2VlLgoJKiBnbnVzZXJ2LmVsIChnbnVzZXJ2LXByb2Nlc3MtZmlsdGVy KToKCVVzZSAjJ3Bvc2l0aW9uIGhlcmUsIGluc3RlYWQgb2YgY29uc2luZyBpbnNpZGUgIydzcGxp dC1zdHJpbmcKCW5lZWRsZXNzbHkuCgkqIGd0ay1maWxlLWRpYWxvZy5lbCAoZ3RrLWZpbGUtZGlh bG9nLXVwZGF0ZS1kcm9wZG93bik6CglVc2UgIydzcGxpdC1zdHJpbmctYnktY2hhciBoZXJlLCBk b24ndCBmaXJlIHVwICMnc3BsaXQtc3RyaW5nIGZvcgoJZGlyZWN0b3J5LXNlcC1jaGFyLgoJKiBn dGstZm9udC1tZW51LmVsIChoYWNrLWZvbnQtdHJ1ZW5hbWUpOgoJSW1wbGVtZW50IHRoaXMgbW9y ZSBjaGVhcGx5IGluIHRlcm1zIG9mICMnZmluZCwKCSMnc3BsaXQtc3RyaW5nLWJ5LWNoYXIsICMn ZXF1YWwsIHJhdGhlciB0aGFuICMnc3RyaW5nLW1hdGNoLAoJIydzcGxpdC1zdHJpbmcsICMnc3Ry aW5nLWVxdWFsLgoJKiBoeXBlci1hcHJvcG9zLmVsIChoeXBlci1hcHJvcG9zLWdyb2stZnVuY3Rp b25zKToKCSogaHlwZXItYXByb3Bvcy5lbCAoaHlwZXItYXByb3Bvcy1ncm9rLXZhcmlhYmxlcyk6 CglMb29rIGZvciBhIG5ld2xpbmUgdXNpbmcgIydwb3NpdGlvbiByYXRoZXIgdGhhbiAjJ3N0cmlu Zy1tYXRjaCBpbgoJdGhlc2UgZnVuY3Rpb25zLgoJKiBpbmZvLmVsIChJbmZvLWluc2VydC1kaXIp OgoJKiBpbmZvLmVsIChJbmZvLWluc2VydC1maWxlLWNvbnRlbnRzKToKCSogaW5mby5lbCAoSW5m by1mb2xsb3ctcmVmZXJlbmNlKToKCSogaW5mby5lbCAoSW5mby1leHRyYWN0LW1lbnUtbm9kZS1u YW1lKToKCSogaW5mby5lbCAoSW5mby1tZW51KToKCUxvb2sgZm9yIGZpeGVkIHN0cmluZ3MgdXNp bmcgIydwb3NpdGlvbiBvciAjJ3NlYXJjaCBhcyBhcHByb3ByaWF0ZQoJaW4gdGhpcyBmaWxlLgoJ KiBsZGFwLmVsIChsZGFwLWRlY29kZS1zdHJpbmcpOgoJKiBsZGFwLmVsIChsZGFwLWVuY29kZS1z dHJpbmcpOgoJIydlbmNvZGUtY29kaW5nLXN0cmluZywgIydkZWNvZGUtY29kaW5nLXN0cmluZyBh cmUgYWx3YXlzCglhdmFpbGFibGUsIGRvbid0IGNoZWNrIGlmIHRoZXkncmUgZmJvdW5kcC4KCSog bGRhcC5lbCAobGRhcC1kZWNvZGUtYWRkcmVzcyk6CgkqIGxkYXAuZWwgKGxkYXAtZW5jb2RlLWFk ZHJlc3MpOgoJVXNlICMnc3BsaXQtc3RyaW5nLWJ5LWNoYXIgaW4gdGhlc2UgZnVuY3Rpb25zLgoJ KiBsaXNwLW1udC5lbCAobG0tY3JlYXRpb24tZGF0ZSk6CgkqIGxpc3AtbW50LmVsIChsbS1sYXN0 LW1vZGlmaWVkLWRhdGUpOgoJRG9uJ3QgZmlyZSB1cCB0aGUgcmVnZXhwIGVuZ2luZSBqdXN0IHRv IGxvb2sgZm9yIHNwYWNlcyBpbiB0aGlzIGZpbGUuCgkqIG1lbnViYXItaXRlbXMuZWwgKGRlZmF1 bHQtbWVudWJhcik6CglVc2UgKG5vdCAobWlzbWF0Y2ggLi4uKSkgcmF0aGVyIHRoYW4gIydzdHJp bmctbWF0Y2ggaGVyZSwgZm9yCglzaW1wbGUgcmVnZXhwLgoJVXNlIChzZWFyY2ggImJldGEiIC4u LikgcmF0aGVyIHRoYW4gKHN0cmluZy1tYXRjaCAiYmV0YSIgLi4uKQoJKiBtZW51YmFyLWl0ZW1z LmVsIChzb3J0LWJ1ZmZlcnMtbWVudS1hbHBoYWJldGljYWxseSk6CgkqIG1lbnViYXItaXRlbXMu ZWwgKHNvcnQtYnVmZmVycy1tZW51LWJ5LW1vZGUtdGhlbi1hbHBoYWJldGljYWxseSk6CgkqIG1l bnViYXItaXRlbXMuZWwgKGdyb3VwLWJ1ZmZlcnMtbWVudS1ieS1tb2RlLXRoZW4tYWxwaGFiZXRp Y2FsbHkpOgoJRG9uJ3QgZmlyZSB1cCB0aGUgcmVnZXhwIGVuZ2luZSB0byBjaGVjayBpZiBhIHN0 cmluZyBzdGFydHMgd2l0aAoJYSBzcGFjZSBvciBhbiBhc3Rlcmlzay4KCVVzZSB0aGUgbW9yZSBm aW5lLWdyYWluZWQgcmVzdWx0cyBvZiAjJ2NvbXBhcmUtc3RyaW5nczsgY29tcGFyZQoJY2FzZS1p bnNlbnNpdGl2ZWx5IGZvciB0aGUgYnVmZmVyIG1lbnUuCgkqIG1lbnViYXItaXRlbXMuZWwgKGxp c3QtYWxsLWJ1ZmZlcnMpOgoJKiBtZW51YmFyLWl0ZW1zLmVsICh0dXRvcmlhbHMtbWVudS1maWx0 ZXIpOgoJVXNlICMnZXF1YWwgcmF0aGVyIHRoYW4gIydzdHJpbmctZXF1YWwsIHdoaWNoLCBpbiB0 aGlzIGNvbnRleHQsCgloYXMgdGhlIGRyYXdiYWNrIG9mIG5vdCBoYXZpbmcgYSBieXRlY29kZSwg YW5kIG5vIHJlZGVlbWluZwoJZmVhdHVyZXMuCgkqIG1pbmlidWYuZWw6CgkqIG1pbmlidWYuZWwg KHVuLXN1YnN0aXR1dGUtaW4tZmlsZS1uYW1lKToKCVVzZSAjJ2NvdW50LCByYXRoZXIgdGhhbiBj b3VudGluZyB0aGUgb2NjdXJlbmNlcyBvZiAkIHVzaW5nIHRoZQoJcmVnZXhwIGVuZ2luZS4KCSog bWluaWJ1Zi5lbCAocmVhZC1maWxlLW5hbWUtaW50ZXJuYWwtMSk6CglEb24ndCBmaXJlIHVwIHRo ZSByZWdleHAgZW5naW5lIHRvIHNlYXJjaCBmb3IgPz0uCgkqIG1vdXNlLmVsIChtb3VzZS1ldmFs LXNleHApOgoJQ2hlY2sgZm9yIG5ld2xpbmUgd2l0aCAjJ2ZpbmQuCgkqIG1zdy1mb250LW1lbnUu ZWwgKG1zd2luZG93cy1yZXNldC1kZXZpY2UtZm9udC1tZW51cyk6CglTcGxpdCBhIHN0cmluZyBi eSBuZXdsaW5lIHdpdGggIydzcGxpdC1zdHJpbmctYnktY2hhci4KCSogbXVsZS9qYXBhbmVzZS5l bDoKCSogbXVsZS9qYXBhbmVzZS5lbCAoIkphcGFuZXNlIik6CglVc2UgIydzZWFyY2ggcmF0aGVy IHRoYW4gIydzdHJpbmctbWF0Y2g7IGNhbm9uY2FzZSBiZWZvcmUKCWNvbXBhcmluZzsgZml4IGEg YnVnIEkgaGFkIGludHJvZHVjZWQgd2hlcmUgSSBoYWQgYmVlbiBtYWtpbmcgY2FzZQoJaW5zZW5z aXRpdmUgY29tcGFyaXNvbnMgd2hlcmUgdGhlIGNhc2UgbWF0dGVyZWQuCgkqIG11bGUva29yZWEt dXRpbC5lbCAoZGVmYXVsdC1rb3JlYW4ta2V5Ym9hcmQpOgoJTG9vayBmb3IgPzMgdXNpbmcgIydm aW5kLCBub3QgIydzdHJpbmctbWFyY2guCgkqIG11bGUva29yZWEtdXRpbC5lbCAocXVhaWwtaGFu Z3VsLXN3aXRjaC1oYW5qYSk6CglTZWFyY2ggZm9yIGEgZml4ZWQgc3RyaW5nIHVzaW5nICMnc2Vh cmNoLgoJKiBtdWxlL211bGUtY21kcy5lbCAoc2V0LWxvY2FsZS1mb3ItbGFuZ3VhZ2UtZW52aXJv bm1lbnQpOgoJIydwb3NpdGlvbiwgIydzdWJzdGl0dXRlIHJhdGhlciB0aGFuICMnc3RyaW5nLW1h dGNoLAoJIydyZXBsYWNlLWluLXN0cmluZy4KCSogbmV3Y29tbWVudC5lbCAoY29tbWVudC1tYWtl LWV4dHJhLWxpbmVzKToKCVVzZSAjJ3NlYXJjaCByYXRoZXIgdGhhbiAjJ3N0cmluZy1tYXRjaCBm b3IgYSBzaW1wbGUgc3RyaW5nLgoJKiBwYWNrYWdlLWdldC5lbCAocGFja2FnZS1nZXQtcmVtb3Rl LWZpbGVuYW1lKToKCVVzZSAjJ3Bvc2l0aW9uIHdoZW4gbG9va2luZyBmb3IgP0AKCSogcHJvY2Vz cy5lbCAoc2V0ZW52KToKCSogcHJvY2Vzcy5lbCAocmVhZC1lbnZ2YXItbmFtZSk6CglVc2UgIydw b3NpdGlvbiB3aGVuIGxvb2tpbmcgZm9yID89LgoJKiByZXBsYWNlLmVsIChtYXAtcXVlcnktcmVw bGFjZS1yZWdleHApOgoJVXNlICMnc3BsaXQtc3RyaW5nLWJ5LWNoYXIgaW5zdGVhZCBvZiB1c2lu ZyBhbiBpbmxpbmUKCWltcGxlbWVudGF0aW9uIG9mIGl0LgoJKiBzZWxlY3QuZWwgKHNlbGVjdC1j b252ZXJ0LWZyb20tY2YtdGV4dCk6CgkqIHNlbGVjdC5lbCAoc2VsZWN0LWNvbnZlcnQtZnJvbS1j Zi11bmljb2RldGV4dCk6CglVc2UgIydwb3NpdGlvbiByYXRoZXIgdGhhbiAjJ3N0cmluZy1tYXRj aCBpbiB0aGVzZSBmdW5jdGlvbnMuCgkqIHNldHVwLXBhdGhzLmVsIChwYXRocy1lbWFjcy1kYXRh LXJvb3QtcCk6CglVc2UgIydzZWFyY2ggd2hlbiBsb29raW5nIGZvciBzaW1wbGUgc3RyaW5nLgoJ KiBzb3VuZC5lbCAobG9hZC1zb3VuZC1maWxlKToKCVVzZSAjJ3NwbGl0LXN0cmluZy1ieS1jaGFy IHJhdGhlciB0aGFuIGFuIGlubGluZSByZWltcGxlbWVudGF0aW9uCglvZiBzYW1lLgoJKiBzdGFy dHVwLmVsIChzcGxhc2gtc2NyZWVuLXdpbmRvdy1ib2R5KToKCSogc3RhcnR1cC5lbCAoc3BsYXNo LXNjcmVlbi10dHktYm9keSk6CglTZWFyY2ggZm9yIHNpbXBsZSBzdHJpbmdzIHVzaW5nICMnc2Vh cmNoLgoJKiB2ZXJzaW9uLmVsIChlbWFjcy12ZXJzaW9uKToKCURpdHRvLgoJKiB4LWZvbnQtbWVu dS5lbCAoaGFjay1mb250LXRydWVuYW1lKToKCUltcGxlbWVudCB0aGlzIG1vcmUgY2hlYXBseSBp biB0ZXJtcyBvZiAjJ2ZpbmQsCgkjJ3NwbGl0LXN0cmluZy1ieS1jaGFyLCAjJ2VxdWFsLCByYXRo ZXIgdGhhbiAjJ3N0cmluZy1tYXRjaCwKCSMnc3BsaXQtc3RyaW5nLCAjJ3N0cmluZy1lcXVhbC4K CSogeC1mb250LW1lbnUuZWwgKHgtcmVzZXQtZGV2aWNlLWZvbnQtbWVudXMtY29yZSk6CglVc2Ug IydzcGxpdC1zdHJpbmctYnktY2hhciBoZXJlLgoJKiB4LWluaXQuZWwgKHgtaW5pdGlhbGl6ZS1r ZXlib2FyZCk6CglTZWFyY2ggZm9yIGEgc2ltcGxlIHN0cmluZyB1c2luZyAjJ3NlYXJjaC4KCmRp ZmYgLXIgMzFkZDI3NWZhNjgzIC1yIGJiZTQxNDY2MDNkYiBsaXNwL0NoYW5nZUxvZwotLS0gYS9s aXNwL0NoYW5nZUxvZwlUdWUgTWFyIDMxIDE4OjQyOjIxIDIwMTUgKzAxMDAKKysrIGIvbGlzcC9D aGFuZ2VMb2cJV2VkIEFwciAwMSAxNDoyODoyMCAyMDE1ICswMTAwCkBAIC0xLDMgKzEsMTQ4IEBA CisyMDE1LTA0LTAxICBBaWRhbiBLZWhvZSAgPGtlaG9lYUBwYXJoYXNhcmQubmV0PgorCisJV2hl biBjYWxsaW5nICMnc3RyaW5nLW1hdGNoIHdpdGggYSBSRUdFWFAgd2l0aG91dCByZWd1bGFyCisJ ZXhwcmVzc2lvbiBzcGVjaWFsIGNoYXJhY3RlcnMsIGNhbGwgIydzZWFyY2gsICMnbWlzbWF0Y2gs ICMnZmluZCwKKwlldGMuIGluc3RlYWQsIG1ha2luZyBvdXIgY29kZSBsZXNzIGxpa2VseSB0byBz aWRlLWVmZmVjdCBvdGhlcgorCWZ1bmN0aW9ucycgbWF0Y2ggZGF0YSBhbmQgYSBsaXR0bGUgZmFz dGVyLgorCisJKiBhcHJvcG9zLmVsIChhcHJvcG9zLWNvbW1hbmQpOgorCSogYXByb3Bvcy5lbCAo YXByb3Bvcyk6CisJQ2FsbCAocG9zaXRpb24gP1xuIC4uLikgcmF0aGVyIHRoYW4gKHN0cmluZy1t YXRjaCAiXG4iIC4uLikgaGVyZS4KKwkqIGJ1ZmYtbWVudS5lbDoKKwkqIGJ1ZmYtbWVudS5lbCAo YnVmZmVycy1tZW51LW9taXQtaW52aXNpYmxlLWJ1ZmZlcnMpOgorCURvbid0IGZpcmUgdXAgdGhl IHJlZ2V4cCBlbmdpbmUganVzdCB0byBjaGVjayBpZiBhIHN0cmluZyBzdGFydHMKKwl3aXRoIGEg c3BhY2UuCisJKiBidWZmLW1lbnUuZWwgKHNlbGVjdC1idWZmZXJzLXRhYi1idWZmZXJzLWJ5LW1v ZGUpOgorCURvbid0IGZpcmUgdXAgdGhlIHJlZ2V4cCBlbmdpbmUganVzdCB0byBjb21wYXJlIG1v ZGUgYmFzZW5hbWVzLgorCSogYnVmZi1tZW51LmVsIChmb3JtYXQtYnVmZmVycy10YWItbGluZSk6 CisJKiBidWZmLW1lbnUuZWwgKGJ1aWxkLWJ1ZmZlcnMtdGFiLWludGVybmFsKTogTW92ZWQgdG8g YmVpbmcgYQorCWxhYmVsIHdpdGhpbiB0aGUgZm9sbG93aW5nLgorCSogYnVmZi1tZW51LmVsIChi dWZmZXJzLXRhYi1pdGVtcyk6IFVzZSB0aGUgbGFiZWwuCisJKiBieXRlY29tcC5lbCAoYnl0ZS1j b21waWxlLWxvZy0xKToKKwlEb24ndCBmaXJlIHVwIHRoZSByZWdleHAgZW5naW5lIGp1c3QgdG8g bG9vayBmb3IgYSBuZXdsaW5lLgorCSogY3VzLWVkaXQuZWwgKGdldCk6CisJRGl0dG8uCisJKiBj dXMtZWRpdC5lbCAoY3VzdG9tLXZhcmlhYmxlLXZhbHVlLWNyZWF0ZSk6CisJRGl0dG8sIGJ1dCBm b3IgYSBjb2xvbi4KKwkqIGRlc2NyLXRleHQuZWwgKGRlc2NyaWJlLXRleHQtc2V4cCk6CisJRGl0 dG8uCisJKiBkZXNjci10ZXh0LmVsIChkZXNjcmliZS1jaGFyLXVuaWNvZGUtZGF0YSk6CisJVXNl ICMnc3BsaXQtc3RyaW5nLWJ5LWNoYXIgZ2l2ZW4gdGhhdCB3ZSdyZSBqdXN0IGxvb2tpbmcgZm9y IGEKKwlzZW1pY29sb24uCisJKiBkZXNjci10ZXh0LmVsIChkZXNjcmliZS1jaGFyKToKKwlEb24n dCBmaXJlIHVwIHRoZSByZWdleHAgZW5naW5lIGp1c3QgdG8gbG9vayBmb3IgYSBuZXdsaW5lLgor CSogZGlzYXNzLmVsIChkaXNhc3NlbWJsZS1pbnRlcm5hbCk6CisJRGl0dG8uCisJKiBmaWxlcy5l bCAoZmlsZS1uYW1lLXNhbnMtZXh0ZW5zaW9uKToKKwlJbXBsZW1lbnQgdGhpcyB1c2luZyAjJ3Bv c2l0aW9uLgorCSogZmlsZXMuZWwgKGZpbGUtbmFtZS1leHRlbnNpb24pOgorCUNvcnJlY3QgdGhp cyBmdW5jdGlvbidzIGRvY3N0cmluZywgaW1wbGVtZW50IGl0IGluIHRlcm1zIG9mCisJIydwb3Np dGlvbi4KKwkqIGZpbGVzLmVsIChpbnNlcnQtZGlyZWN0b3J5KToKKwlEb24ndCBmaXJlIHVwIHRo ZSByZWdleHAgZW5naW5lIHRvIHNwbGl0IGEgc3RyaW5nIGJ5IHNwYWNlOyBkb24ndAorCXJldmVy c2UgdGhlIGxpc3Qgb2Ygc3dpdGNoZXMsIHRoaXMgaXMgYWN0dWFsbHkgYSBsb25nc3RhbmQgYnVn IGFzCisJZmFyIGFzIEkgY2FuIHNlZS4KKwkqIGdudXNlcnYuZWwgKGdudXNlcnYtcHJvY2Vzcy1m aWx0ZXIpOgorCVVzZSAjJ3Bvc2l0aW9uIGhlcmUsIGluc3RlYWQgb2YgY29uc2luZyBpbnNpZGUg IydzcGxpdC1zdHJpbmcKKwluZWVkbGVzc2x5LgorCSogZ3RrLWZpbGUtZGlhbG9nLmVsIChndGst ZmlsZS1kaWFsb2ctdXBkYXRlLWRyb3Bkb3duKToKKwlVc2UgIydzcGxpdC1zdHJpbmctYnktY2hh ciBoZXJlLCBkb24ndCBmaXJlIHVwICMnc3BsaXQtc3RyaW5nIGZvcgorCWRpcmVjdG9yeS1zZXAt Y2hhci4gCisJKiBndGstZm9udC1tZW51LmVsIChoYWNrLWZvbnQtdHJ1ZW5hbWUpOgorCUltcGxl bWVudCB0aGlzIG1vcmUgY2hlYXBseSBpbiB0ZXJtcyBvZiAjJ2ZpbmQsCisJIydzcGxpdC1zdHJp bmctYnktY2hhciwgIydlcXVhbCwgcmF0aGVyIHRoYW4gIydzdHJpbmctbWF0Y2gsCisJIydzcGxp dC1zdHJpbmcsICMnc3RyaW5nLWVxdWFsLgorCSogaHlwZXItYXByb3Bvcy5lbCAoaHlwZXItYXBy b3Bvcy1ncm9rLWZ1bmN0aW9ucyk6CisJKiBoeXBlci1hcHJvcG9zLmVsIChoeXBlci1hcHJvcG9z LWdyb2stdmFyaWFibGVzKToKKwlMb29rIGZvciBhIG5ld2xpbmUgdXNpbmcgIydwb3NpdGlvbiBy YXRoZXIgdGhhbiAjJ3N0cmluZy1tYXRjaCBpbgorCXRoZXNlIGZ1bmN0aW9ucy4KKwkqIGluZm8u ZWwgKEluZm8taW5zZXJ0LWRpcik6CisJKiBpbmZvLmVsIChJbmZvLWluc2VydC1maWxlLWNvbnRl bnRzKToKKwkqIGluZm8uZWwgKEluZm8tZm9sbG93LXJlZmVyZW5jZSk6CisJKiBpbmZvLmVsIChJ bmZvLWV4dHJhY3QtbWVudS1ub2RlLW5hbWUpOgorCSogaW5mby5lbCAoSW5mby1tZW51KToKKwlM b29rIGZvciBmaXhlZCBzdHJpbmdzIHVzaW5nICMncG9zaXRpb24gb3IgIydzZWFyY2ggYXMgYXBw cm9wcmlhdGUKKwlpbiB0aGlzIGZpbGUuCisJKiBsZGFwLmVsIChsZGFwLWRlY29kZS1zdHJpbmcp OgorCSogbGRhcC5lbCAobGRhcC1lbmNvZGUtc3RyaW5nKToKKwkjJ2VuY29kZS1jb2Rpbmctc3Ry aW5nLCAjJ2RlY29kZS1jb2Rpbmctc3RyaW5nIGFyZSBhbHdheXMKKwlhdmFpbGFibGUsIGRvbid0 IGNoZWNrIGlmIHRoZXkncmUgZmJvdW5kcC4KKwkqIGxkYXAuZWwgKGxkYXAtZGVjb2RlLWFkZHJl c3MpOgorCSogbGRhcC5lbCAobGRhcC1lbmNvZGUtYWRkcmVzcyk6CisJVXNlICMnc3BsaXQtc3Ry aW5nLWJ5LWNoYXIgaW4gdGhlc2UgZnVuY3Rpb25zLgorCSogbGlzcC1tbnQuZWwgKGxtLWNyZWF0 aW9uLWRhdGUpOgorCSogbGlzcC1tbnQuZWwgKGxtLWxhc3QtbW9kaWZpZWQtZGF0ZSk6CisJRG9u J3QgZmlyZSB1cCB0aGUgcmVnZXhwIGVuZ2luZSBqdXN0IHRvIGxvb2sgZm9yIHNwYWNlcyBpbiB0 aGlzIGZpbGUuCisJKiBtZW51YmFyLWl0ZW1zLmVsIChkZWZhdWx0LW1lbnViYXIpOgorCVVzZSAo bm90IChtaXNtYXRjaCAuLi4pKSByYXRoZXIgdGhhbiAjJ3N0cmluZy1tYXRjaCBoZXJlLCBmb3IK KwlzaW1wbGUgcmVnZXhwLgorCVVzZSAoc2VhcmNoICJiZXRhIiAuLi4pIHJhdGhlciB0aGFuIChz dHJpbmctbWF0Y2ggImJldGEiIC4uLikKKwkqIG1lbnViYXItaXRlbXMuZWwgKHNvcnQtYnVmZmVy cy1tZW51LWFscGhhYmV0aWNhbGx5KToKKwkqIG1lbnViYXItaXRlbXMuZWwgKHNvcnQtYnVmZmVy cy1tZW51LWJ5LW1vZGUtdGhlbi1hbHBoYWJldGljYWxseSk6CisJKiBtZW51YmFyLWl0ZW1zLmVs IChncm91cC1idWZmZXJzLW1lbnUtYnktbW9kZS10aGVuLWFscGhhYmV0aWNhbGx5KToKKwlEb24n dCBmaXJlIHVwIHRoZSByZWdleHAgZW5naW5lIHRvIGNoZWNrIGlmIGEgc3RyaW5nIHN0YXJ0cyB3 aXRoCisJYSBzcGFjZSBvciBhbiBhc3Rlcmlzay4KKwlVc2UgdGhlIG1vcmUgZmluZS1ncmFpbmVk IHJlc3VsdHMgb2YgIydjb21wYXJlLXN0cmluZ3M7IGNvbXBhcmUKKwljYXNlLWluc2Vuc2l0aXZl bHkgZm9yIHRoZSBidWZmZXIgbWVudS4KKwkqIG1lbnViYXItaXRlbXMuZWwgKGxpc3QtYWxsLWJ1 ZmZlcnMpOgorCSogbWVudWJhci1pdGVtcy5lbCAodHV0b3JpYWxzLW1lbnUtZmlsdGVyKToKKwlV c2UgIydlcXVhbCByYXRoZXIgdGhhbiAjJ3N0cmluZy1lcXVhbCwgd2hpY2gsIGluIHRoaXMgY29u dGV4dCwKKwloYXMgdGhlIGRyYXdiYWNrIG9mIG5vdCBoYXZpbmcgYSBieXRlY29kZSwgYW5kIG5v IHJlZGVlbWluZworCWZlYXR1cmVzLgorCSogbWluaWJ1Zi5lbDoKKwkqIG1pbmlidWYuZWwgKHVu LXN1YnN0aXR1dGUtaW4tZmlsZS1uYW1lKToKKwlVc2UgIydjb3VudCwgcmF0aGVyIHRoYW4gY291 bnRpbmcgdGhlIG9jY3VyZW5jZXMgb2YgJCB1c2luZyB0aGUKKwlyZWdleHAgZW5naW5lLgorCSog bWluaWJ1Zi5lbCAocmVhZC1maWxlLW5hbWUtaW50ZXJuYWwtMSk6CisJRG9uJ3QgZmlyZSB1cCB0 aGUgcmVnZXhwIGVuZ2luZSB0byBzZWFyY2ggZm9yID89LgorCSogbW91c2UuZWwgKG1vdXNlLWV2 YWwtc2V4cCk6CisJQ2hlY2sgZm9yIG5ld2xpbmUgd2l0aCAjJ2ZpbmQuCisJKiBtc3ctZm9udC1t ZW51LmVsIChtc3dpbmRvd3MtcmVzZXQtZGV2aWNlLWZvbnQtbWVudXMpOgorCVNwbGl0IGEgc3Ry aW5nIGJ5IG5ld2xpbmUgd2l0aCAjJ3NwbGl0LXN0cmluZy1ieS1jaGFyLgorCSogbXVsZS9qYXBh bmVzZS5lbDoKKwkqIG11bGUvamFwYW5lc2UuZWwgKCJKYXBhbmVzZSIpOgorCVVzZSAjJ3NlYXJj aCByYXRoZXIgdGhhbiAjJ3N0cmluZy1tYXRjaDsgY2Fub25jYXNlIGJlZm9yZQorCWNvbXBhcmlu ZzsgZml4IGEgYnVnIEkgaGFkIGludHJvZHVjZWQgd2hlcmUgSSBoYWQgYmVlbiBtYWtpbmcgY2Fz ZQorCWluc2Vuc2l0aXZlIGNvbXBhcmlzb25zIHdoZXJlIHRoZSBjYXNlIG1hdHRlcmVkLgorCSog bXVsZS9rb3JlYS11dGlsLmVsIChkZWZhdWx0LWtvcmVhbi1rZXlib2FyZCk6CisJTG9vayBmb3Ig PzMgdXNpbmcgIydmaW5kLCBub3QgIydzdHJpbmctbWFyY2guCisJKiBtdWxlL2tvcmVhLXV0aWwu ZWwgKHF1YWlsLWhhbmd1bC1zd2l0Y2gtaGFuamEpOgorCVNlYXJjaCBmb3IgYSBmaXhlZCBzdHJp bmcgdXNpbmcgIydzZWFyY2guCisJKiBtdWxlL211bGUtY21kcy5lbCAoc2V0LWxvY2FsZS1mb3It bGFuZ3VhZ2UtZW52aXJvbm1lbnQpOgorCSMncG9zaXRpb24sICMnc3Vic3RpdHV0ZSByYXRoZXIg dGhhbiAjJ3N0cmluZy1tYXRjaCwKKwkjJ3JlcGxhY2UtaW4tc3RyaW5nLgorCSogbmV3Y29tbWVu dC5lbCAoY29tbWVudC1tYWtlLWV4dHJhLWxpbmVzKToKKwlVc2UgIydzZWFyY2ggcmF0aGVyIHRo YW4gIydzdHJpbmctbWF0Y2ggZm9yIGEgc2ltcGxlIHN0cmluZy4KKwkqIHBhY2thZ2UtZ2V0LmVs IChwYWNrYWdlLWdldC1yZW1vdGUtZmlsZW5hbWUpOgorCVVzZSAjJ3Bvc2l0aW9uIHdoZW4gbG9v a2luZyBmb3IgP0AKKwkqIHByb2Nlc3MuZWwgKHNldGVudik6CisJKiBwcm9jZXNzLmVsIChyZWFk LWVudnZhci1uYW1lKToKKwlVc2UgIydwb3NpdGlvbiB3aGVuIGxvb2tpbmcgZm9yID89LgorCSog cmVwbGFjZS5lbCAobWFwLXF1ZXJ5LXJlcGxhY2UtcmVnZXhwKToKKwlVc2UgIydzcGxpdC1zdHJp bmctYnktY2hhciBpbnN0ZWFkIG9mIHVzaW5nIGFuIGlubGluZQorCWltcGxlbWVudGF0aW9uIG9m IGl0LgorCSogc2VsZWN0LmVsIChzZWxlY3QtY29udmVydC1mcm9tLWNmLXRleHQpOgorCSogc2Vs ZWN0LmVsIChzZWxlY3QtY29udmVydC1mcm9tLWNmLXVuaWNvZGV0ZXh0KToKKwlVc2UgIydwb3Np dGlvbiByYXRoZXIgdGhhbiAjJ3N0cmluZy1tYXRjaCBpbiB0aGVzZSBmdW5jdGlvbnMuCisJKiBz ZXR1cC1wYXRocy5lbCAocGF0aHMtZW1hY3MtZGF0YS1yb290LXApOgorCVVzZSAjJ3NlYXJjaCB3 aGVuIGxvb2tpbmcgZm9yIHNpbXBsZSBzdHJpbmcuCisJKiBzb3VuZC5lbCAobG9hZC1zb3VuZC1m aWxlKToKKwlVc2UgIydzcGxpdC1zdHJpbmctYnktY2hhciByYXRoZXIgdGhhbiBhbiBpbmxpbmUg cmVpbXBsZW1lbnRhdGlvbgorCW9mIHNhbWUuCisJKiBzdGFydHVwLmVsIChzcGxhc2gtc2NyZWVu LXdpbmRvdy1ib2R5KToKKwkqIHN0YXJ0dXAuZWwgKHNwbGFzaC1zY3JlZW4tdHR5LWJvZHkpOgor CVNlYXJjaCBmb3Igc2ltcGxlIHN0cmluZ3MgdXNpbmcgIydzZWFyY2guCisJKiB2ZXJzaW9uLmVs IChlbWFjcy12ZXJzaW9uKToKKwlEaXR0by4KKwkqIHgtZm9udC1tZW51LmVsIChoYWNrLWZvbnQt dHJ1ZW5hbWUpOgorCUltcGxlbWVudCB0aGlzIG1vcmUgY2hlYXBseSBpbiB0ZXJtcyBvZiAjJ2Zp bmQsCisJIydzcGxpdC1zdHJpbmctYnktY2hhciwgIydlcXVhbCwgcmF0aGVyIHRoYW4gIydzdHJp bmctbWF0Y2gsCisJIydzcGxpdC1zdHJpbmcsICMnc3RyaW5nLWVxdWFsLgorCSogeC1mb250LW1l bnUuZWwgKHgtcmVzZXQtZGV2aWNlLWZvbnQtbWVudXMtY29yZSk6CisJVXNlICMnc3BsaXQtc3Ry aW5nLWJ5LWNoYXIgaGVyZS4KKwkqIHgtaW5pdC5lbCAoeC1pbml0aWFsaXplLWtleWJvYXJkKToK KwlTZWFyY2ggZm9yIGEgc2ltcGxlIHN0cmluZyB1c2luZyAjJ3NlYXJjaC4KKwogMjAxNS0wMy0x NiAgQWlkYW4gS2Vob2UgIDxrZWhvZWFAcGFyaGFzYXJkLm5ldD4KIAogCSogdHR5LWluaXQuZWwg KG1ha2UtZnJhbWUtYWZ0ZXItaW5pdC1lbnRyeS1wb2ludCk6CmRpZmYgLXIgMzFkZDI3NWZhNjgz IC1yIGJiZTQxNDY2MDNkYiBsaXNwL2Fwcm9wb3MuZWwKLS0tIGEvbGlzcC9hcHJvcG9zLmVsCVR1 ZSBNYXIgMzEgMTg6NDI6MjEgMjAxNSArMDEwMAorKysgYi9saXNwL2Fwcm9wb3MuZWwJV2VkIEFw ciAwMSAxNDoyODoyMCAyMDE1ICswMTAwCkBAIC0xNzcsNyArMTc3LDcgQEAKIAkJCQkJICAoZG9j dW1lbnRhdGlvbiBzeW1ib2wgdCkKIAkJCQkJKHZvaWQtZnVuY3Rpb24gIihhbGlhc2VkIHRvIHVu ZGVmaW5lZCBmdW5jdGlvbikiKQogCQkJCQkoZXJyb3IgIih1bmV4cGVjdGVkIGVycm9yIGZyb20g YGRvY3VtZW50aW9uJykiKSkpKQotCQkJICAgIChzdWJzdHJpbmcgZG9jIDAgKHN0cmluZy1tYXRj aCAiXG4iIGRvYykpCisJCQkgICAgKHN1YnNlcSBkb2MgMCAocG9zaXRpb24gP1xuIGRvYykpCiAJ CQkgICIobm90IGRvY3VtZW50ZWQpIikpCiAJCSAgICAoYW5kIGRvLWFsbAogCQkJICh1c2VyLXZh cmlhYmxlLXAgc3ltYm9sKQpAQCAtMTg4LDggKzE4OCw3IEBACiAJCQkJICAgICh2YXJpYWJsZS1v YnNvbGV0ZW5lc3MtZG9jIHN5bWJvbCkKIAkJCQkgICAgKGRvY3VtZW50YXRpb24tcHJvcGVydHkK IAkJCQkgICAgIHN5bWJvbCAndmFyaWFibGUtZG9jdW1lbnRhdGlvbiB0KSkpCi0JCQkgICAgIChz dWJzdHJpbmcgZG9jIDAKLQkJCQkJICAgIChzdHJpbmctbWF0Y2ggIlxuIiBkb2MpKSkpKSkKKwkJ CSAgICAgKHN1YnNlcSBkb2MgMCAocG9zaXRpb24gP1xuIGRvYykpKSkpKQogCSAoc2V0cSBwIChj ZHIgcCkpKSkpCiAgICBuaWwpKQogCkBAIC0yMzAsNyArMjI5LDcgQEAKIAkJCQkJICAoZG9jdW1l bnRhdGlvbiBzeW1ib2wgdCkKIAkJCQkJKHZvaWQtZnVuY3Rpb24gIihhbGlhc2VkIHRvIHVuZGVm aW5lZCBmdW5jdGlvbikiKQogCQkJCQkoZXJyb3IgIih1bmV4cGVjdGVkIGVycm9yIGZyb20gYGRv Y3VtZW50aW9uJykiKSkpKQotCQkJICAgIChzdWJzdHJpbmcgZG9jIDAgKHN0cmluZy1tYXRjaCAi XG4iIGRvYykpCisJCQkgICAgKHN1YnNlcSBkb2MgMCAocG9zaXRpb24gP1xuIGRvYykpCiAJCQkg ICIobm90IGRvY3VtZW50ZWQpIikpCiAJCSAgICAoaWYgKGJvdW5kcCBzeW1ib2wpCiAJCQkoaWYg KHNldHEgZG9jCkBAIC0yNDAsOCArMjM5LDcgQEAKIAkJCQkgICAodmFyaWFibGUtb2Jzb2xldGVu ZXNzLWRvYyBzeW1ib2wpCiAJCQkJICAgKGRvY3VtZW50YXRpb24tcHJvcGVydHkKIAkJCQkgICAg c3ltYm9sICd2YXJpYWJsZS1kb2N1bWVudGF0aW9uIHQpKSkKLQkJCSAgICAoc3Vic3RyaW5nIGRv YyAwCi0JCQkJICAgICAgIChzdHJpbmctbWF0Y2ggIlxuIiBkb2MpKQorCQkJICAgIChzdWJzZXEg ZG9jIDAgKHBvc2l0aW9uID9cbiBkb2MpKQogCQkJICAiKG5vdCBkb2N1bWVudGVkKSIpKQogCQkg ICAgKGlmIChzZXRxIGRvYyAoc3ltYm9sLXBsaXN0IHN5bWJvbCkpCiAJCQkoaWYgKGVxICgvIChs ZW5ndGggZG9jKSAyKSAxKQpAQCAtMjUwLDE5ICsyNDgsMTYgQEAKIAkJICAgIChpZiAoZ2V0IHN5 bWJvbCAnd2lkZ2V0LXR5cGUpCiAJCQkoaWYgKHNldHEgZG9jIChkb2N1bWVudGF0aW9uLXByb3Bl cnR5CiAJCQkJICAgICAgIHN5bWJvbCAnd2lkZ2V0LWRvY3VtZW50YXRpb24gdCkpCi0JCQkgICAg KHN1YnN0cmluZyBkb2MgMAotCQkJCSAgICAgICAoc3RyaW5nLW1hdGNoICJcbiIgZG9jKSkKKwkJ CSAgICAoc3Vic2VxIGRvYyAwIChwb3NpdGlvbiA/XG4gZG9jKSkKIAkJCSAgIihub3QgZG9jdW1l bnRlZCkiKSkKIAkJICAgIChpZiAoZmluZC1mYWNlIHN5bWJvbCkKIAkJCShpZiAoc2V0cSBkb2Mg KGZhY2UtZG9jLXN0cmluZyBzeW1ib2wpKQotCQkJICAgIChzdWJzdHJpbmcgZG9jIDAKLQkJCQkg ICAgICAgKHN0cmluZy1tYXRjaCAiXG4iIGRvYykpCisJCQkgICAgKHN1YnNlcSBkb2MgMCAocG9z aXRpb24gP1xuIGRvYykpCiAJCQkgICIobm90IGRvY3VtZW50ZWQpIikpCiAJCSAgICAod2hlbiAo Z2V0IHN5bWJvbCAnY3VzdG9tLWdyb3VwKQogCQkgICAgICAoaWYgKHNldHEgZG9jIChkb2N1bWVu dGF0aW9uLXByb3BlcnR5CiAJCQkJICAgICBzeW1ib2wgJ2dyb3VwLWRvY3VtZW50YXRpb24gdCkp Ci0JCQkgIChzdWJzdHJpbmcgZG9jIDAKLQkJCQkgICAgIChzdHJpbmctbWF0Y2ggIlxuIiBkb2Mp KQorCQkJICAoc3Vic2VxIGRvYyAwIChwb3NpdGlvbiA/XG4gZG9jKSkKIAkJCSIobm90IGRvY3Vt ZW50ZWQpIikpKSkKIAkgKHNldHEgcCAoY2RyIHApKSkpKQogICAgbmlsKSkKZGlmZiAtciAzMWRk Mjc1ZmE2ODMgLXIgYmJlNDE0NjYwM2RiIGxpc3AvYnVmZi1tZW51LmVsCi0tLSBhL2xpc3AvYnVm Zi1tZW51LmVsCVR1ZSBNYXIgMzEgMTg6NDI6MjEgMjAxNSArMDEwMAorKysgYi9saXNwL2J1ZmYt bWVudS5lbAlXZWQgQXByIDAxIDE0OjI4OjIwIDIwMTUgKzAxMDAKQEAgLTY0OSwxMCArNjQ5LDEw IEBACiAJCQkgICAgIGZpbGVzLW9ubHkpKQogICAgIGJ1ZmZlcikpCiAKLShkZWZ1biBidWZmZXJz LW1lbnUtb21pdC1pbnZpc2libGUtYnVmZmVycyAoYnVmKQorKGRlZnVuIGJ1ZmZlcnMtbWVudS1v bWl0LWludmlzaWJsZS1idWZmZXJzIChidWZmZXIpCiAgICJGb3IgdXNlIGFzIGEgdmFsdWUgb2Yg YGJ1ZmZlcnMtbWVudS1vbWl0LWZ1bmN0aW9uJy4KIE9taXRzIG5vcm1hbGx5IGludmlzaWJsZSBi dWZmZXJzICh0aG9zZSB3aG9zZSBuYW1lIGJlZ2lucyB3aXRoIGEgc3BhY2UpLiIKLSAgKG5vdCAo bnVsbCAoc3RyaW5nLW1hdGNoICJcXGAgIiAoYnVmZmVyLW5hbWUgYnVmKSkpKSkKKyAgKGVxbCA/ XCAgKGVsdCAoYnVmZmVyLW5hbWUgYnVmZmVyKSAwKSkpCiAKIDs7OyBUaGUgQnVmZmVycyB0YWIK IApAQCAtNzg4LDE0ICs3ODgsMTQgQEAKIAkobW9kZTIgKHN5bWJvbC1uYW1lIChzeW1ib2wtdmFs dWUtaW4tYnVmZmVyICdtYWpvci1tb2RlIAogCQkJCQkJICAgIGJ1ZmZlci10by1zZWxlY3QpKSkK IAkobW9kZW5tMSAoc3ltYm9sLXZhbHVlLWluLWJ1ZmZlciAnbW9kZS1uYW1lIGJ1ZjEpKQotCSht b2Rlbm0yIChzeW1ib2wtdmFsdWUtaW4tYnVmZmVyICdtb2RlLW5hbWUgYnVmZmVyLXRvLXNlbGVj dCkpKQorCShtb2Rlbm0yIChzeW1ib2wtdmFsdWUtaW4tYnVmZmVyICdtb2RlLW5hbWUgYnVmZmVy LXRvLXNlbGVjdCkpCisgICAgICAgIHBvc2l0aW9uIG1pc21hdGNoKQogICAgIChjb25kICgob3Ig KGVxIG1vZGUxIG1vZGUyKQogCSAgICAgICAoZXEgbW9kZW5tMSBtb2Rlbm0yKQotCSAgICAgICAo YW5kIChzdHJpbmctbWF0Y2ggIl5bXi1dKy0iIG1vZGUxKQotCQkgICAgKHN0cmluZy1tYXRjaAot CQkgICAgIChjb25jYXQgIl4iIChyZWdleHAtcXVvdGUgCi0JCQkJICAoc3Vic3RyaW5nIG1vZGUx IDAgKG1hdGNoLWVuZCAwKSkpKQotCQkgICAgIG1vZGUyKSkKKwkgICAgICAgKGFuZCAoc2V0cSBw b3NpdGlvbiAocG9zaXRpb24gPy0gbW9kZTEpKSAoPiBwb3NpdGlvbiAwKQorICAgICAgICAgICAg ICAgICAgICAocHJvZzIKKyAgICAgICAgICAgICAgICAgICAgICAgIChzZXRxIG1pc21hdGNoICht aXNtYXRjaCBtb2RlMSBtb2RlMiA6ZW5kMSBwb3NpdGlvbikpCisgICAgICAgICAgICAgICAgICAg ICAgICAobm90IChvciAobnVsbCBtaXNtYXRjaCkgKGVxbCBtaXNtYXRjaCBwb3NpdGlvbikpKSkp CiAJICAgICAgIChhbmQgYnVmZmVycy10YWItZ3JvdXBpbmctcmVnZXhwCiAJCSAgICAoZmluZC1p ZiAjJyhsYW1iZGEgKHgpCiAJCQkJIChvcgpAQCAtODEwLDMwICs4MTAsMTYgQEAKIChkZWZ1biBm b3JtYXQtYnVmZmVycy10YWItbGluZSAoYnVmZmVyKQogICAiRm9yIHVzZSBhcyBhIHZhbHVlIG9m IGBidWZmZXJzLXRhYi1mb3JtYXQtYnVmZmVyLWxpbmUtZnVuY3Rpb24nLgogVGhpcyBqdXN0IHJl dHVybnMgdGhlIGJ1ZmZlcidzIG5hbWUsIG9wdGlvbmFsbHkgdHJ1bmNhdGVkLiIKLSAgKGxldCAo KGxlbiAoc3BlY2lmaWVyLWluc3RhbmNlIGJ1ZmZlcnMtdGFiLWRlZmF1bHQtYnVmZmVyLWxpbmUt bGVuZ3RoKSkpCi0gICAgKGlmIChhbmQgKD4gbGVuIDApCi0JICAgICAoPiAobGVuZ3RoIChidWZm ZXItbmFtZSBidWZmZXIpKSBsZW4pKQotCShpZiAoc3RyaW5nLW1hdGNoICIuKjwuPiQiIChidWZm ZXItbmFtZSBidWZmZXIpKQotCSAgICAoY29uY2F0IChzdWJzdHJpbmcgKGJ1ZmZlci1uYW1lIGJ1 ZmZlcikgCi0JCQkgICAgICAgMCAoLSBsZW4gNikpICIuLi4iCi0JCQkgICAgICAgKHN1YnN0cmlu ZyAoYnVmZmVyLW5hbWUgYnVmZmVyKSAtMykpCi0JICAoY29uY2F0IChzdWJzdHJpbmcgKGJ1ZmZl ci1uYW1lIGJ1ZmZlcikKLQkJCSAgICAgMCAoLSBsZW4gMykpICIuLi4iKSkKLSAgICAgIChidWZm ZXItbmFtZSBidWZmZXIpKSkpCi0KLShkZWZzdWJzdCBidWlsZC1idWZmZXJzLXRhYi1pbnRlcm5h bCAoYnVmZmVycykKLSAgKGxldCAoKHNlbGVjdGVkIHQpKQotICAgIChtYXBjYXIKLSAgICAgIyco bGFtYmRhIChidWZmZXIpCi0JIChwcm9nMQotCSAgICAgKHZlY3RvciAKLQkgICAgICAoZnVuY2Fs bCBidWZmZXJzLXRhYi1mb3JtYXQtYnVmZmVyLWxpbmUtZnVuY3Rpb24KLQkJICAgICAgIGJ1ZmZl cikKLQkgICAgICAobGlzdCBidWZmZXJzLXRhYi1zd2l0Y2gtdG8tYnVmZmVyLWZ1bmN0aW9uCi0J CSAgICAoYnVmZmVyLW5hbWUgYnVmZmVyKSkKLQkgICAgICA6c2VsZWN0ZWQgc2VsZWN0ZWQpCi0J ICAgKHdoZW4gc2VsZWN0ZWQgKHNldHEgc2VsZWN0ZWQgbmlsKSkpKQotICAgICBidWZmZXJzKSkp CisgIChsZXQqICgobGVuIChzcGVjaWZpZXItaW5zdGFuY2UgYnVmZmVycy10YWItZGVmYXVsdC1i dWZmZXItbGluZS1sZW5ndGgpKQorICAgICAgICAgKGJ1ZmZlci1uYW1lIChidWZmZXItbmFtZSBi dWZmZXIpKQorICAgICAgICAgKGxlbjEgKGxlbmd0aCBidWZmZXItbmFtZSkpKQorICAgIChpZiAo YW5kICg+IGxlbiAwKSAoPiBsZW4xIGxlbikpCisJKGlmIChhbmQgKD4gbGVuMSAzKSAoZXFsID88 IChhcmVmIGJ1ZmZlci1uYW1lICgtIGxlbjEgMykpKQorICAgICAgICAgICAgICAgICAoZXFsID8+ IChhcmVmIGJ1ZmZlci1uYW1lICgxLSBsZW4xKSkpKQorCSAgICAoY29uY2F0IChzdWJzZXEgYnVm ZmVyLW5hbWUgMCAoLSBsZW4gNikpCisgICAgICAgICAgICAgICAgICAgICIuLi4iIChzdWJzZXEg YnVmZmVyLW5hbWUgLTMpKQorICAgICAgICAgIChjb25jYXQgKHN1YnNlcSBidWZmZXItbmFtZSAw ICgtIGxlbiAzKSkgIi4uLiIpKQorICAgICAgYnVmZmVyLW5hbWUpKSkKIAogOzs7ICMjIyMgU0pU IHdvdWxkIGxpa2UgdGhpcyBmdW5jdGlvbiB0byBoYXZlIGEgc29ydCBmdW5jdGlvbiBsaXN0LiBJ CiA7OzsgZG9uJ3Qgc2VlIGhvdyB0aGlzIGNvdWxkIHdvcmsgZ2l2ZW4gdGhhdCBzb3J0aW5nIGlz IG5vdApAQCAtODY4LDE2ICs4NTQsMTQgQEAKICAgICAgIDs7IGZpbHRlciBidWZmZXJzCiAgICAg ICAod2hlbiBidWZmZXJzLXRhYi1maWx0ZXItZnVuY3Rpb25zCiAJKHNldHEgYnVmZmVycwotCSAg ICAgIChkZWxldGUtaWYgCi0JICAgICAgICMnbnVsbCAKLQkgICAgICAgKG1hcGNhciAjJyhsYW1i ZGEgKGJ1ZikKLQkJCSAgIChsZXQgKCh0bXAtYnVmIGJ1ZikpCi0JCQkgICAgIChtYXBjICMnKGxh bWJkYSAoZnVuKQotCQkJCSAgICAgICAodW5sZXNzIChmdW5jYWxsIGZ1biBidWYgZmlyc3QtYnVm KQotCQkJCQkgKHNldHEgdG1wLWJ1ZiBuaWwpKSkKLQkJCQkgICBidWZmZXJzLXRhYi1maWx0ZXIt ZnVuY3Rpb25zKQotCQkJICAgICB0bXAtYnVmKSkKLQkJICAgICAgIGJ1ZmZlcnMpKSkpCisgICAg ICAgICAgICAgIChtYXBjYW4gIycobGFtYmRhIChidWYpCisgICAgICAgICAgICAgICAgICAgICAg ICAgIChsZXQgKCh0bXAtYnVmIGJ1ZikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1h cGMgIycobGFtYmRhIChmdW4pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICh1bmxlc3MgKGZ1bmNhbGwgZnVuIGJ1ZiBmaXJzdC1idWYpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKHNldHEgdG1wLWJ1ZiBuaWwpKSkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBidWZmZXJzLXRhYi1maWx0ZXItZnVuY3Rpb25zKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChhbmQgdG1wLWJ1ZiAobGlzdCB0bXAtYnVmKSkpKQorICAg ICAgICAgICAgICAgICAgICAgIGJ1ZmZlcnMpKSkKICAgICAgIDs7IG1heWJlIHNob3J0ZW4gbGlz dCBvZiBidWZmZXJzCiAgICAgICAoYW5kIChpbnRlZ2VycCBidWZmZXJzLXRhYi1tYXgtc2l6ZSkK IAkgICAoPiBidWZmZXJzLXRhYi1tYXgtc2l6ZSAxKQpAQCAtODg2LDkgKzg3MCwyMyBAQAogICAg ICAgOzsgc29ydCBidWZmZXJzIGluIGdyb3VwIChkZWZhdWx0IGlzIG1vc3QtcmVjZW50bHktc2Vs ZWN0ZWQpCiAgICAgICAod2hlbiBidWZmZXJzLXRhYi1zb3J0LWZ1bmN0aW9uCiAJKHNldHEgYnVm ZmVycyAoZnVuY2FsbCBidWZmZXJzLXRhYi1zb3J0LWZ1bmN0aW9uIGJ1ZmZlcnMpKSkKLSAgICAg IDs7IGNvbnZlcnQgbGlzdCBvZiBidWZmZXJzIHRvIGxpc3Qgb2Ygc3RydWN0dXJlcyB1c2VkIGJ5 IHRhYiB3aWRnZXQKLSAgICAgIChzZXRxIGJ1ZmZlcnMgKGJ1aWxkLWJ1ZmZlcnMtdGFiLWludGVy bmFsIGJ1ZmZlcnMpKQotICAgICAgYnVmZmVycykpKQorICAgICAgKGxhYmVscworICAgICAgICAg ICgoYnVpbGQtYnVmZmVycy10YWItaW50ZXJuYWwgKGJ1ZmZlcnMpCisgICAgICAgICAgICAgKGxl dCAoKHNlbGVjdGVkIHQpKQorICAgICAgICAgICAgICAgKG1hcGNhcgorICAgICAgICAgICAgICAg ICMnKGxhbWJkYSAoYnVmZmVyKQorICAgICAgICAgICAgICAgICAgICAocHJvZzEKKyAgICAgICAg ICAgICAgICAgICAgICAgICh2ZWN0b3IgCisgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bmNh bGwgYnVmZmVycy10YWItZm9ybWF0LWJ1ZmZlci1saW5lLWZ1bmN0aW9uCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYnVmZmVyKQorICAgICAgICAgICAgICAgICAgICAgICAgIChs aXN0IGJ1ZmZlcnMtdGFiLXN3aXRjaC10by1idWZmZXItZnVuY3Rpb24KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoYnVmZmVyLW5hbWUgYnVmZmVyKSkKKzpzZWxlY3RlZCBzZWxlY3Rl ZCkKKyAgICAgICAgICAgICAgICAgICAgICAod2hlbiBzZWxlY3RlZCAoc2V0cSBzZWxlY3RlZCBu aWwpKSkpCisgICAgICAgICAgICAgICAgYnVmZmVycykpKSkKKyAgICAgICAgOzsgY29udmVydCBs aXN0IG9mIGJ1ZmZlcnMgdG8gbGlzdCBvZiBzdHJ1Y3R1cmVzIHVzZWQgYnkgdGFiIHdpZGdldAor ICAgICAgICAoc2V0cSBidWZmZXJzIChidWlsZC1idWZmZXJzLXRhYi1pbnRlcm5hbCBidWZmZXJz KSkKKyAgICAgICAgYnVmZmVycykpKSkKIAogKHByb3ZpZGUgJ2J1ZmYtbWVudSkKIApkaWZmIC1y IDMxZGQyNzVmYTY4MyAtciBiYmU0MTQ2NjAzZGIgbGlzcC9ieXRlY29tcC5lbAotLS0gYS9saXNw L2J5dGVjb21wLmVsCVR1ZSBNYXIgMzEgMTg6NDI6MjEgMjAxNSArMDEwMAorKysgYi9saXNwL2J5 dGVjb21wLmVsCVdlZCBBcHIgMDEgMTQ6Mjg6MjAgMjAxNSArMDEwMApAQCAtMTI0Myw3ICsxMjQz LDcgQEAKIAkgIChpbnNlcnQgKGN1cnJlbnQtdGltZS1zdHJpbmcpICJcbiIpKQogCSh3aGVuIHdo aWxlLWNvbXBpbGluZy1tc2cgKGluc2VydCB3aGlsZS1jb21waWxpbmctbXNnICJcbiIpKQogCShp bnNlcnQgIiAgIiBzdHJpbmcgIlxuIikKLQkod2hlbiAoYW5kIGZpbGwgKG5vdCAoc3RyaW5nLW1h dGNoICJcbiIgc3RyaW5nKSkpCisJKHdoZW4gKGFuZCBmaWxsIChub3QgKGZpbmQgP1xuIHN0cmlu ZykpKQogCSAgKGxldCAoKGZpbGwtcHJlZml4ICIgICAgICIpCiAJCShmaWxsLWNvbHVtbiA3OCkp CiAJICAgIChmaWxsLXBhcmFncmFwaCBuaWwpKSkpKQpkaWZmIC1yIDMxZGQyNzVmYTY4MyAtciBi YmU0MTQ2NjAzZGIgbGlzcC9jdXMtZWRpdC5lbAotLS0gYS9saXNwL2N1cy1lZGl0LmVsCVR1ZSBN YXIgMzEgMTg6NDI6MjEgMjAxNSArMDEwMAorKysgYi9saXNwL2N1cy1lZGl0LmVsCVdlZCBBcHIg MDEgMTQ6Mjg6MjAgMjAxNSArMDEwMApAQCAtMTM0MCw3ICsxMzQwLDcgQEAKIAkgICAgOmN1c3Rv bS1zaG93IChsYW1iZGEgKHdpZGdldCB2YWx1ZSkKIAkJCSAgIDs7IFRoaXMgdXNlZCB0byBjYWxs IHBwLXRvLXN0cmluZwogCQkJICAgKGxldCAoKHBwICh3aWRnZXQtcHJldHR5cHJpbnQtdG8tc3Ry aW5nIHZhbHVlKSkpCi0JCQkgICAgIChjb25kICgoc3RyaW5nLW1hdGNoICJcbiIgcHApCisJCQkg ICAgIChjb25kICgoZmluZCA/XG4gcHApCiAJCQkJICAgIG5pbCkKIAkJCQkgICAoKD4gKGxlbmd0 aCBwcCkgNDApCiAJCQkJICAgIG5pbCkKQEAgLTIxMTksMTEgKzIxMTksMTEgQEAKIAkgICh0CiAJ ICAgOzsgRWRpdCBtb2RlLgogCSAgIChsZXQqICgoZm9ybWF0ICh3aWRnZXQtZ2V0IHR5cGUgOmZv cm1hdCkpCi0JCSAgdGFnLWZvcm1hdCB2YWx1ZS1mb3JtYXQpCi0JICAgICAod2hpbGUgKG5vdCAo c3RyaW5nLW1hdGNoICI6IiBmb3JtYXQpKQorCQkgIHRhZy1mb3JtYXQgdmFsdWUtZm9ybWF0IHBv c2l0aW9uKQorICAgICAgICAgICAgICh3aGlsZSAobm90IChzZXRxIHBvc2l0aW9uIChwb3NpdGlv biA/OiBmb3JtYXQpKSkKIAkgICAgICAgKHNldHEgZm9ybWF0IChzaWduYWwgJ2Vycm9yIChsaXN0 ICJCYWQgZm9ybWF0IiBmb3JtYXQpKSkpCi0JICAgICAoc2V0cSB0YWctZm9ybWF0IChzdWJzdHJp bmcgZm9ybWF0IDAgKG1hdGNoLWVuZCAwKSkpCi0JICAgICAoc2V0cSB2YWx1ZS1mb3JtYXQgKHN1 YnN0cmluZyBmb3JtYXQgKG1hdGNoLWVuZCAwKSkpCisJICAgICAoc2V0cSB0YWctZm9ybWF0IChz dWJzZXEgZm9ybWF0IDAgKDErIHBvc2l0aW9uKSkKKyAgICAgICAgICAgICAgICAgICB2YWx1ZS1m b3JtYXQgKHN1YnNlcSBmb3JtYXQgKDErIHBvc2l0aW9uKSkpCiAJICAgICAocHVzaCAod2lkZ2V0 LWNyZWF0ZS1jaGlsZC1hbmQtY29udmVydAogCQkgICAgd2lkZ2V0ICdpdGVtCiAJCSAgICA6Zm9y bWF0IHRhZy1mb3JtYXQKZGlmZiAtciAzMWRkMjc1ZmE2ODMgLXIgYmJlNDE0NjYwM2RiIGxpc3Av ZGVzY3ItdGV4dC5lbAotLS0gYS9saXNwL2Rlc2NyLXRleHQuZWwJVHVlIE1hciAzMSAxODo0Mjoy MSAyMDE1ICswMTAwCisrKyBiL2xpc3AvZGVzY3ItdGV4dC5lbAlXZWQgQXByIDAxIDE0OjI4OjIw IDIwMTUgKzAxMDAKQEAgLTc2MCwxMCArNzYwLDEwIEBACiAJCSAgIGxhc3QgKDw9IGNoYXIgbGFz dCkpCiAJICAgICAgKHNldHEgZm91bmQgdCkpKQogCShpZiBmb3VuZAotCSAgICAobGV0ICgoZmll bGRzIChjZHIgKG5zdWJzdCBuaWwgIiIgKHNwbGl0LXN0cmluZworCSAgICAobGV0ICgoZmllbGRz IChjZHIgKG5zdWJzdCBuaWwgIiIgKHNwbGl0LXN0cmluZy1ieS1jaGFyCiAJCQkJCSAgICAgICAo YnVmZmVyLXN1YnN0cmluZwogCQkJCQkJKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKQotCQkJCQkJ KGxpbmUtZW5kLXBvc2l0aW9uKSkgIjsiKQorCQkJCQkJKGxpbmUtZW5kLXBvc2l0aW9uKSkgP1w7 KQogCQkJCSAgICAgICA6dGVzdCAnZXF1YWwpKSkpCiAJICAgICAgOzsgVGhlIGxlbmd0aCBkZXBl bmRzIG9uIHdoZXRoZXIgdGhlIGxhc3QgZmllbGQgd2FzIGVtcHR5LgogCSAgICAgICh1bmxlc3Mg KG9yIChlcWwgMTMgKGxlbmd0aCBmaWVsZHMpKQpAQCAtMTIzNSw4ICsxMjM1LDcgQEAKICAgICAg ICAgICAgICAgICAgKGlmIChjb25zcCBjbG0pCiAgICAgICAgICAgICAgICAgICAgICAocHJvZ24g KGluc2VydCAiICIpIChldmFsIGNsbSkpCiAgICAgICAgICAgICAgICAgICAgKHdoZW4gKD49ICgr IChjdXJyZW50LWNvbHVtbikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9yIChz dHJpbmctbWF0Y2ggIlxuIiBjbG0pCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoc3RyaW5nLXdpZHRoIGNsbSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChv ciAocG9zaXRpb24gP1xuIGNsbSkgKHN0cmluZy13aWR0aCBjbG0pKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod2luZG93 LXdpZHRoKSkKICAgICAgICAgICAgICAgICAgICAgIChpbnNlcnQgIlxuIikKZGlmZiAtciAzMWRk Mjc1ZmE2ODMgLXIgYmJlNDE0NjYwM2RiIGxpc3AvZGlzYXNzLmVsCi0tLSBhL2xpc3AvZGlzYXNz LmVsCVR1ZSBNYXIgMzEgMTg6NDI6MjEgMjAxNSArMDEwMAorKysgYi9saXNwL2Rpc2Fzcy5lbAlX ZWQgQXByIDAxIDE0OjI4OjIwIDIwMTUgKzAxMDAKQEAgLTExNyw5ICsxMTcsMTAgQEAKIAkgIChw cm9nbiAoYW5kIChjb25zcCBvYmopIChzZXRxIG9iaiAoY2RyIG9iaikpKQogCQkgKGluZGVudC10 byBpbmRlbnQpCiAJCSAocHJpbmMgIiAgZG9jOiAgIiAoY3VycmVudC1idWZmZXIpKQotCQkgKGxl dCAoKGZyb2JiZWQgbmlsKSkKLQkJICAgKGlmIChzdHJpbmctbWF0Y2ggIlxuIiBkb2MpCi0JCSAg ICAgICAoc2V0cSBkb2MgKHN1YnN0cmluZyBkb2MgMCAobWF0Y2gtYmVnaW5uaW5nIDApKQorCQkg KGxldCAoKGZyb2JiZWQgbmlsKQorICAgICAgICAgICAgICAgICAgICAgICAocG9zaXRpb24gKHBv c2l0aW9uID9cbiBkb2MpKSkKKwkJICAgKGlmIHBvc2l0aW9uCisJCSAgICAgICAoc2V0cSBkb2Mg KHN1YnNlcSBkb2MgMCBwb3NpdGlvbikKIAkJCSAgICAgZnJvYmJlZCB0KSkKIAkJICAgKGlmICg+ IChsZW5ndGggZG9jKSA3MCkKIAkJICAgICAgIChzZXRxIGRvYyAoc3Vic3RyaW5nIGRvYyAwIDY1 KSBmcm9iYmVkIHQpKQpkaWZmIC1yIDMxZGQyNzVmYTY4MyAtciBiYmU0MTQ2NjAzZGIgbGlzcC9m aWxlcy5lbAotLS0gYS9saXNwL2ZpbGVzLmVsCVR1ZSBNYXIgMzEgMTg6NDI6MjEgMjAxNSArMDEw MAorKysgYi9saXNwL2ZpbGVzLmVsCVdlZCBBcHIgMDEgMTQ6Mjg6MjAgMjAxNSArMDEwMApAQCAt MjQ4NywzMSArMjQ4NywyOSBAQAogKGRlZnVuIGZpbGUtbmFtZS1zYW5zLWV4dGVuc2lvbiAoZmls ZW5hbWUpCiAgICJSZXR1cm4gRklMRU5BTUUgc2FucyBmaW5hbCBcImV4dGVuc2lvblwiLgogVGhl IGV4dGVuc2lvbiwgaW4gYSBmaWxlIG5hbWUsIGlzIHRoZSBwYXJ0IHRoYXQgZm9sbG93cyB0aGUg bGFzdCBgLicuIgotICAoc2F2ZS1tYXRjaC1kYXRhCi0gICAgKGxldCAoKGZpbGUgKGZpbGUtbmFt ZS1zYW5zLXZlcnNpb25zIChmaWxlLW5hbWUtbm9uZGlyZWN0b3J5IGZpbGVuYW1lKSkpCi0JICBk aXJlY3RvcnkpCi0gICAgICAoaWYgKHN0cmluZy1tYXRjaCAiXFwuW14uXSpcXCciIGZpbGUpCi0J ICAoaWYgKHNldHEgZGlyZWN0b3J5IChmaWxlLW5hbWUtZGlyZWN0b3J5IGZpbGVuYW1lKSkKLQkg ICAgICAoZXhwYW5kLWZpbGUtbmFtZSAoc3Vic3RyaW5nIGZpbGUgMCAobWF0Y2gtYmVnaW5uaW5n IDApKQotCQkJCWRpcmVjdG9yeSkKLQkgICAgKHN1YnN0cmluZyBmaWxlIDAgKG1hdGNoLWJlZ2lu bmluZyAwKSkpCi0JZmlsZW5hbWUpKSkpCisgIChsZXQqICgoZmlsZSAoZmlsZS1uYW1lLXNhbnMt dmVyc2lvbnMgKGZpbGUtbmFtZS1ub25kaXJlY3RvcnkgZmlsZW5hbWUpKSkKKyAgICAgICAgIChw b3NpdGlvbiAocG9zaXRpb24gPy4gZmlsZSA6ZnJvbS1lbmQgdCkpCisgICAgICAgICAoZGlyZWN0 b3J5IChhbmQgcG9zaXRpb24gKGZpbGUtbmFtZS1kaXJlY3RvcnkgZmlsZW5hbWUpKSkpCisgICAg KGlmIHBvc2l0aW9uCisgICAgICAgIChpZiBkaXJlY3RvcnkKKyAgICAgICAgICAgIChleHBhbmQt ZmlsZS1uYW1lIChzdWJzZXEgZmlsZSAwIHBvc2l0aW9uKSBkaXJlY3RvcnkpCisgICAgICAgICAg KHN1YnNlcSBmaWxlIDAgcG9zaXRpb24pKQorICAgICAgZmlsZW5hbWUpKSkKIAogKGRlZnVuIGZp bGUtbmFtZS1leHRlbnNpb24gKGZpbGVuYW1lICZvcHRpb25hbCBwZXJpb2QpCiAgICJSZXR1cm4g RklMRU5BTUUncyBmaW5hbCBcImV4dGVuc2lvblwiLgogVGhlIGV4dGVuc2lvbiwgaW4gYSBmaWxl IG5hbWUsIGlzIHRoZSBwYXJ0IHRoYXQgZm9sbG93cyB0aGUgbGFzdCBgLicuCiBSZXR1cm4gbmls IGZvciBleHRlbnNpb25sZXNzIGZpbGUgbmFtZXMgc3VjaCBhcyBgZm9vJy4KLVJldHVybiB0aGUg ZW1wdHkgc3RyaW5nIGZvciBmaWxlIG5hbWVzIHN1Y2ggYXMgYGZvbycuCitSZXR1cm4gdGhlIGVt cHR5IHN0cmluZyBmb3IgZmlsZSBuYW1lcyBzdWNoIGFzIGBmb28uJwogCiBJZiBQRVJJT0QgaXMg bm9uLW5pbCwgdGhlbiB0aGUgcmV0dXJuZWQgdmFsdWUgaW5jbHVkZXMgdGhlIHBlcmlvZAogdGhh dCBkZWxpbWl0cyB0aGUgZXh0ZW5zaW9uLCBhbmQgaWYgRklMRU5BTUUgaGFzIG5vIGV4dGVuc2lv biwKIHRoZSB2YWx1ZSBpcyBcIlwiLiIKLSAgKHNhdmUtbWF0Y2gtZGF0YQotICAgIChsZXQgKChm aWxlIChmaWxlLW5hbWUtc2Fucy12ZXJzaW9ucyAoZmlsZS1uYW1lLW5vbmRpcmVjdG9yeSBmaWxl bmFtZSkpKSkKLSAgICAgIChpZiAoc3RyaW5nLW1hdGNoICJcXC5bXi5dKlxcJyIgZmlsZSkKLSAg ICAgICAgICAoc3Vic3RyaW5nIGZpbGUgKCsgKG1hdGNoLWJlZ2lubmluZyAwKSAoaWYgcGVyaW9k IDAgMSkpKQotICAgICAgICAoaWYgcGVyaW9kCi0gICAgICAgICAgICAiIikpKSkpCisgIChsZXQq ICgoZmlsZSAoZmlsZS1uYW1lLXNhbnMtdmVyc2lvbnMgKGZpbGUtbmFtZS1ub25kaXJlY3Rvcnkg ZmlsZW5hbWUpKSkKKyAgICAgICAgIChwb3NpdGlvbiAocG9zaXRpb24gPy4gZmlsZSA6ZnJvbS1l bmQgdCkpKQorICAgIChpZiAoYW5kIHBvc2l0aW9uIChub3QgKGVxbCBwb3NpdGlvbiAwKSkpCisg ICAgICAgIChzdWJzZXEgZmlsZSAoKyBwb3NpdGlvbiAoaWYgcGVyaW9kIDAgMSkpKQorICAgICAg KGlmIHBlcmlvZCAiIikpKSkKIAogKGRlZmN1c3RvbSBtYWtlLWJhY2t1cC1maWxlLW5hbWUtZnVu Y3Rpb24gbmlsCiAgICJBIGZ1bmN0aW9uIHRvIHVzZSBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IGBt YWtlLWJhY2t1cC1maWxlLW5hbWUnLgpAQCAtNDI0NywyNSArNDI0NSwxMyBAQAogCQk7OyBkaXJl Y3RvcnkgaWYgRklMRSBpcyBhIHN5bWJvbGljIGxpbmsuCiAJCShhcHBseSAnY2FsbC1wcm9jZXNz CiAJCSAgICAgICBpbnNlcnQtZGlyZWN0b3J5LXByb2dyYW0gbmlsIHQgbmlsCi0JCSAgICAgICAo bGV0IChsaXN0KQotCQkJIChpZiAobGlzdHAgc3dpdGNoZXMpCi0JCQkgICAgIChzZXRxIGxpc3Qg c3dpdGNoZXMpCi0JCQkgICAoaWYgKG5vdCAoZXF1YWwgc3dpdGNoZXMgIiIpKQotCQkJICAgICAg IChsZXQgKChzd2l0Y2hlcyBzd2l0Y2hlcykpCi0JCQkJIDs7IFNwbGl0IHRoZSBzd2l0Y2hlcyBh dCBhbnkgc3BhY2VzCi0JCQkJIDs7IHNvIHdlIGNhbiBwYXNzIHNlcGFyYXRlIG9wdGlvbnMgYXMg c2VwYXJhdGUgYXJncy4KLQkJCQkgKHdoaWxlIChzdHJpbmctbWF0Y2ggIiAiIHN3aXRjaGVzKQot CQkJCSAgIChzZXRxIGxpc3QgKGNvbnMgKHN1YnN0cmluZyBzd2l0Y2hlcyAwIChtYXRjaC1iZWdp bm5pbmcgMCkpCi0JCQkJCQkgICAgbGlzdCkKLQkJCQkJIHN3aXRjaGVzIChzdWJzdHJpbmcgc3dp dGNoZXMgKG1hdGNoLWVuZCAwKSkpKQotCQkJCSAoc2V0cSBsaXN0IChjb25zIHN3aXRjaGVzIGxp c3QpKSkpKQotCQkJIChhcHBlbmQgbGlzdAotCQkJCSAobGlzdAotCQkJCSAgKGlmIGZ1bGwtZGly ZWN0b3J5LXAKLQkJCQkgICAgICAoY29uY2F0IChmaWxlLW5hbWUtYXMtZGlyZWN0b3J5IGZpbGUp Ci0JCQkJCSAgICAgIDs7IyMjIyBVbml4LXNwZWNpZmljCi0JCQkJCSAgICAgICIuIikKLQkJCQkg ICAgZmlsZSkpKSkpKSkpCisgICAgICAgICAgICAgICAgICAgICAgIChhcHBlbmQgKGlmIChsaXN0 cCBzd2l0Y2hlcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoZXMK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzcGxpdC1zdHJpbmctYnktY2hhciBz d2l0Y2hlcyA/XCApKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiBmdWxsLWRpcmVjdG9yeS1wCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uY2F0IChmaWxlLW5hbWUtYXMtZGlyZWN0 b3J5IGZpbGUpICIuIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlKSkp KSkpKQogCiAJICA7OyBJZiB3ZSBnb3QgIi8vRElSRUQvLyIgaW4gdGhlIG91dHB1dCwgaXQgbWVh bnMgd2UgZ290IGEgcmVhbAogCSAgOzsgZGlyZWN0b3J5IGxpc3RpbmcsIGV2ZW4gaWYgYGxzJyBy ZXR1cm5lZCBub256ZXJvLgpAQCAtNDI5NCw3ICs0MjgwLDcgQEAKIAkJICAgICAoYnVmZmVyLXN0 cmluZykpKSkKIAkgICAgICAoaWYgKHN0cmluZy1tYXRjaCAibHMgKC4qdXRpbHMpIFxcKFswLTku XSpcXCkkIiB2ZXJzaW9uLW91dCkKIAkJICAobGV0KiAoKHZlcnNpb24gKG1hdGNoLXN0cmluZyAx IHZlcnNpb24tb3V0KSkKLQkJCSAoc3BsaXQgKHNwbGl0LXN0cmluZyB2ZXJzaW9uICJbLl0iKSkK KwkJCSAoc3BsaXQgKHNwbGl0LXN0cmluZy1ieS1jaGFyIHZlcnNpb24gPy4pKQogCQkJIChudW1i ZXJzIChtYXBjYXIgJ3N0cmluZy10by1pbnQgc3BsaXQpKQogCQkJIChtaW4gJyg1IDIgMSkpCiAJ CQkgY29tcGFyaXNvbikKZGlmZiAtciAzMWRkMjc1ZmE2ODMgLXIgYmJlNDE0NjYwM2RiIGxpc3Av Z251c2Vydi5lbAotLS0gYS9saXNwL2dudXNlcnYuZWwJVHVlIE1hciAzMSAxODo0MjoyMSAyMDE1 ICswMTAwCisrKyBiL2xpc3AvZ251c2Vydi5lbAlXZWQgQXByIDAxIDE0OjI4OjIwIDIwMTUgKzAx MDAKQEAgLTM2OCw3ICszNjgsOCBAQAogCQkgICAgIChzaWduYWwgJ3F1aXQgbmlsKSkpCiAJICAg ICAoc2V0cSBnbnVzZXJ2LXN0cmluZyAiIikpKQogCSAgKHQKLQkgICAobGV0ICgocmVzcG9uc2Ug KGNhciAoc3BsaXQtc3RyaW5nIGdudXNlcnYtc3RyaW5nICJcQy1kIikpKSkKKwkgICAobGV0ICgo cmVzcG9uc2UgKHN1YnNlcSBnbnVzZXJ2LXN0cmluZyAwCisJCQkJICAgKHBvc2l0aW9uID9cQy1k IGdudXNlcnYtc3RyaW5nKSkpKQogCSAgICAgKHNldHEgZ251c2Vydi1zdHJpbmcgIiIpCiAJICAg ICAoZXJyb3IgIiVzOiBpbnZhbGlkIHJlc3BvbnNlIGZyb20gZ251c2VydiIgcmVzcG9uc2UpKSkp KSkKIApkaWZmIC1yIDMxZGQyNzVmYTY4MyAtciBiYmU0MTQ2NjAzZGIgbGlzcC9ndGstZmlsZS1k aWFsb2cuZWwKLS0tIGEvbGlzcC9ndGstZmlsZS1kaWFsb2cuZWwJVHVlIE1hciAzMSAxODo0Mjoy MSAyMDE1ICswMTAwCisrKyBiL2xpc3AvZ3RrLWZpbGUtZGlhbG9nLmVsCVdlZCBBcHIgMDEgMTQ6 Mjg6MjAgMjAxNSArMDEwMApAQCAtMTAzLDEyICsxMDMsOSBAQAogCiAoZGVmdW4gZ3RrLWZpbGUt ZGlhbG9nLXVwZGF0ZS1kcm9wZG93biAoZGlhbG9nIGRpcikKICAgKGxldCAoKGNvbWJvLWJveCAo Z2V0IGRpYWxvZyAneC1maWxlLWRpYWxvZy1zZWxlY3QtbGlzdCkpCi0JKGNvbXBvbmVudHMgKHJl dmVyc2UKLQkJICAgICAoZGVsZXRlICIiCi0JCQkgICAgIChzcGxpdC1zdHJpbmcgZGlyCi0JCQkJ CSAgIChjb25jYXQgIlsiIChjaGFyLXRvLXN0cmluZyBkaXJlY3Rvcnktc2VwLWNoYXIpICJdIikp KSkpCisJKGNvbXBvbmVudHMgKG5yZXZlcnNlCisJCSAgICAgKGRlbGV0ZSAiIiAoc3BsaXQtc3Ry aW5nLWJ5LWNoYXIgZGlyIGRpcmVjdG9yeS1zZXAtY2hhcikpKSkKIAkoZW50cmllcyBuaWwpKQot CiAgICAgKHdoaWxlIGNvbXBvbmVudHMKICAgICAgIChwdXNoIChjb25jYXQgIi8iIChtYXBjb25j YXQgJ2lkZW50aXR5IChyZXZlcnNlIGNvbXBvbmVudHMpCiAJCQkJICAgKGNoYXItdG8tc3RyaW5n IGRpcmVjdG9yeS1zZXAtY2hhcikpKQpkaWZmIC1yIDMxZGQyNzVmYTY4MyAtciBiYmU0MTQ2NjAz ZGIgbGlzcC9ndGstZm9udC1tZW51LmVsCi0tLSBhL2xpc3AvZ3RrLWZvbnQtbWVudS5lbAlUdWUg TWFyIDMxIDE4OjQyOjIxIDIwMTUgKzAxMDAKKysrIGIvbGlzcC9ndGstZm9udC1tZW51LmVsCVdl ZCBBcHIgMDEgMTQ6Mjg6MjAgMjAxNSArMDEwMApAQCAtNjIsMTcgKzYyLDE3IEBACiAoZGVmdW4g aGFjay1mb250LXRydWVuYW1lIChmbikKICAgOzsgIyMjIyBUaGlzIGlzIGR1cGxpY2F0ZWQgZnJv bSB4LWZvbnQtbWVudS5lbC4KICAgIkZpbHRlciB0aGUgb3V0cHV0IG9mIGBmb250LWluc3RhbmNl LXRydWVuYW1lJyB0byBkZWFsIHdpdGggZm9udCBzZXRzLiIKLSAgKGlmIChzdHJpbmctbWF0Y2gg IiwiIChmb250LWluc3RhbmNlLXRydWVuYW1lIGZuKSkKLSAgICAgIChsZXQgKChmcG50IChudGgg OCAoc3BsaXQtc3RyaW5nIChmb250LWluc3RhbmNlLW5hbWUgZm4pICItIikpKQotCSAgICAoZmxp c3QgKHNwbGl0LXN0cmluZyAoZm9udC1pbnN0YW5jZS10cnVlbmFtZSBmbikgIiwiKSkKLQkgICAg cmV0KQotCSh3aGlsZSBmbGlzdAotCSAgKGlmIChzdHJpbmctZXF1YWwgZnBudCAobnRoIDggKHNw bGl0LXN0cmluZyAoY2FyIGZsaXN0KSAiLSIpKSkKLQkgICAgICAocHJvZ24gKHNldHEgcmV0IChj YXIgZmxpc3QpKSAoc2V0cSBmbGlzdCBuaWwpKQotCSAgICAoc2V0cSBmbGlzdCAoY2RyIGZsaXN0 KSkKLQkgICAgKSkKLQlyZXQpCi0gICAgKGZvbnQtaW5zdGFuY2UtdHJ1ZW5hbWUgZm4pKSkKKyAg KGxldCAoKGZvbnQtaW5zdGFuY2UtdHJ1ZW5hbWUgKGZvbnQtaW5zdGFuY2UtdHJ1ZW5hbWUgZm4p KSkKKyAgICAoaWYgKGZpbmQgPywgZm9udC1pbnN0YW5jZS10cnVlbmFtZSkKKyAgICAgICAgKGxl dCAoKGZwbnQgKG50aCA4IChzcGxpdC1zdHJpbmctYnktY2hhciAoZm9udC1pbnN0YW5jZS1uYW1l IGZuKSA/LSkpKQorICAgICAgICAgICAgICAoZmxpc3QgKHNwbGl0LXN0cmluZy1ieS1jaGFyIGZv bnQtaW5zdGFuY2UtdHJ1ZW5hbWUgPywpKQorICAgICAgICAgICAgICByZXQpCisgICAgICAgICAg KHdoaWxlIGZsaXN0CisgICAgICAgICAgICAoaWYgKGVxdWFsIGZwbnQgKG50aCA4IChzcGxpdC1z dHJpbmcgKGNhciBmbGlzdCkgIi0iKSkpCisgICAgICAgICAgICAgICAgKHByb2duIChzZXRxIHJl dCAoY2FyIGZsaXN0KSkgKHNldHEgZmxpc3QgbmlsKSkKKyAgICAgICAgICAgICAgKHNldHEgZmxp c3QgKGNkciBmbGlzdCkpKSkKKyAgICAgICAgICByZXQpCisgICAgICBmb250LWluc3RhbmNlLXRy dWVuYW1lKSkpCiAKIChkZWZ2YXIgZ3RrLWZvbnQtcmVnZXhwLWFzY2lpIG5pbAogICAiVGhpcyBp cyB1c2VkIHRvIGZpbHRlciBvdXQgZm9udCBmYW1pbGllcyB0aGF0IGNhbid0IGRpc3BsYXkgQVND SUkgdGV4dC4KZGlmZiAtciAzMWRkMjc1ZmE2ODMgLXIgYmJlNDE0NjYwM2RiIGxpc3AvaHlwZXIt YXByb3Bvcy5lbAotLS0gYS9saXNwL2h5cGVyLWFwcm9wb3MuZWwJVHVlIE1hciAzMSAxODo0Mjoy MSAyMDE1ICswMTAwCisrKyBiL2xpc3AvaHlwZXItYXByb3Bvcy5lbAlXZWQgQXByIDAxIDE0OjI4 OjIwIDIwMTUgKzAxMDAKQEAgLTM1MCwxNiArMzUwLDEzIEBACiAJCSAgKHN0cmluZy1tYXRjaAog CQkgICAiXFxgKFteXG5cdCApXStbXHQgXSpcXChbXlxuKV0rXFwpPylcXCg6W1x0IF0qXFx8XG4/ XFwnXFwpIgogCQkgICBkb2MpKQotCQkgKHNldHEgZG9jIChzdWJzdHJpbmcgZG9jIChtYXRjaC1l bmQgMCkKLQkJCQkgICAgICAoc3RyaW5nLW1hdGNoICJcbiIgZG9jKSkpKQorCQkgKHNldHEgZG9j IChzdWJzZXEgZG9jIChtYXRjaC1lbmQgMCkgKHBvc2l0aW9uID9cbiBkb2MpKSkpCiAJICAgICA7 OyBTa2lwIGVycmFudCBuZXdsaW5lcyBhdCBiZWdpbm5pbmcgb2YgZG9jCiAJICAgICAoaWYgKGFu ZCBkb2MKIAkJICAgICAgKHN0cmluZy1tYXRjaCAiXFxgXG4rIiBkb2MpKQogCQkgKHNldHEgZG9j IChzdWJzdHJpbmcgZG9jIChtYXRjaC1lbmQgMCkpKSkKIAkgICAgIChpbnNlcnQtZmFjZSAoaWYg ZG9jCi0JCQkgICAgICAoY29uY2F0ICIgLSAiCi0JCQkJICAgICAgKHN1YnN0cmluZyBkb2MgMAot CQkJCQkJIChzdHJpbmctbWF0Y2ggIlxuIiBkb2MpKSkKKwkJCSAgICAgIChjb25jYXQgIiAtICIg KHN1YnNlcSBkb2MgMCAocG9zaXRpb24gP1xuIGRvYykpKQogCQkJICAgICIgLSBOb3QgZG9jdW1l bnRlZC4iKQogCQkJICAnaHlwZXItYXByb3Bvcy1kb2N1bWVudGF0aW9uKSkpCiAgICAgICAoaW5z ZXJ0ID9cbikpKSkKQEAgLTM4Myw5ICszODAsOCBAQAogCQkgICAgICAoc3RyaW5nLW1hdGNoICJc XGBcbisiIGRvYykpCiAJCSAoc2V0cSBkb2MgKHN1YnN0cmluZyBkb2MgKG1hdGNoLWVuZCAwKSkp KQogCSAgICAgKGluc2VydC1mYWNlIChpZiBkb2MKLQkJCSAgICAgIChjb25jYXQgIiAtICIgKHN1 YnN0cmluZwotCQkJCQkgICAgIGRvYyAoaWYgdXNlcnAgMSAwKQotCQkJCQkgICAgIChzdHJpbmct bWF0Y2ggIlxuIiBkb2MpKSkKKwkJCSAgICAgIChjb25jYXQgIiAtICIgKHN1YnNlcSBkb2MgKGlm IHVzZXJwIDEgMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAocG9zaXRpb24gP1xuIGRvYykpKQogCQkJICAgICIgLSBOb3QgZG9jdW1lbnRlZC4i KQogCQkJICAnaHlwZXItYXByb3Bvcy1kb2N1bWVudGF0aW9uKSkpCiAgICAgICAoaW5zZXJ0ID9c bikpKSkKZGlmZiAtciAzMWRkMjc1ZmE2ODMgLXIgYmJlNDE0NjYwM2RiIGxpc3AvaW5mby5lbAot LS0gYS9saXNwL2luZm8uZWwJVHVlIE1hciAzMSAxODo0MjoyMSAyMDE1ICswMTAwCisrKyBiL2xp c3AvaW5mby5lbAlXZWQgQXByIDAxIDE0OjI4OjIwIDIwMTUgKzAxMDAKQEAgLTkxMywxMiArOTEz LDEzIEBACiAJCQkgIChtZXNzYWdlICJDb21wb3NpbmcgbWFpbiBJbmZvIGRpcmVjdG9yeS4uLiIp KQogCQkgICAgICAoc2V0LWJ1ZmZlciAob3IgYnVmCiAJCQkJICAgICAgKGdlbmVyYXRlLW5ldy1i dWZmZXIKLQkJCQkgICAgICAgKGlmIChzdHJpbmctbWF0Y2ggImxvY2FsZGlyIiBmaWxlKQorCQkJ CSAgICAgICAoaWYgKHNlYXJjaCAibG9jYWxkaXIiIGZpbGUKKzp0ZXN0ICMnZXF1YWxwKQogCQkJ CQkgICAibG9jYWxkaXIiCiAJCQkJCSAiaW5mbyBkaXIiKSkpKQogCQkgICAgICAoaWYgKG5vdCBi dWYpCiAJCQkgIChpbnNlcnQtZmlsZS1jb250ZW50cyBmaWxlKSkKLQkJICAgICAgKGlmIChzdHJp bmctbWF0Y2ggImxvY2FsZGlyIiAoYnVmZmVyLW5hbWUpKQorCQkgICAgICAoaWYgKHNlYXJjaCAi bG9jYWxkaXIiIChidWZmZXItbmFtZSkgOnRlc3QgIydlcXVhbHApCiAJCQkgIChzZXRxIGxidWZm ZXJzIChjb25zIChjdXJyZW50LWJ1ZmZlcikgbGJ1ZmZlcnMpKQogCQkJKHNldHEgYnVmZmVycyAo Y29ucyAoY3VycmVudC1idWZmZXIpIGJ1ZmZlcnMpKSkKIAkJICAgICAgKGlmIGF0dHJzCkBAIC05 NTQsNyArOTU1LDcgQEAKICAgICAgICh3aGlsZSBvdGhlcnMKIAkobGV0ICgob3RoZXIgKGNhciBv dGhlcnMpKQogCSAgICAgIChpbmZvLWJ1ZmZlciAoY3VycmVudC1idWZmZXIpKSkKLQkgIChpZiAo c3RyaW5nLW1hdGNoICJsb2NhbGRpciIgKGJ1ZmZlci1uYW1lIG90aGVyKSkKKwkgIChpZiAoc2Vh cmNoICJsb2NhbGRpciIgKGJ1ZmZlci1uYW1lIG90aGVyKSkKIAkgICAgICAoc2F2ZS1leGN1cnNp b24KIAkJKHNldC1idWZmZXIgaW5mby1idWZmZXIpCiAJCShnb3RvLWNoYXIgKHBvaW50LW1heCkp CkBAIC0xNTI3LDcgKzE1MjgsNyBAQAogCQkJICkpKQogICAgICAgKHNldHEgc3VmZiAoY2RyIHN1 ZmYpKSkKICAgICAoaWYgKHN0cmluZ3AgKGNkciAoY2FyIHN1ZmYpKSkKLQkobGV0ICgoY29tbWFu ZCAoaWYgKHN0cmluZy1tYXRjaCAiJXMiIChjZHIgKGNhciBzdWZmKSkpCisJKGxldCAoKGNvbW1h bmQgKGlmIChzZWFyY2ggIiVzIiAoY2RyIChjYXIgc3VmZikpKQogCQkJICAgKGZvcm1hdCAoY2Ry IChjYXIgc3VmZikpIGZpbGUpCiAJCQkgKGNvbmNhdCAoY2RyIChjYXIgc3VmZikpICIgPCAiIGZp bGUpKSkpCiAJICAobWVzc2FnZSAiJXMuLi4iIGNvbW1hbmQpCkBAIC0xOTU4LDkgKzE5NTksOSBA QAogCSAgICAgICAobGlzdCBkZWZhdWx0KQogCSAgICAgKGxpc3QgaXRlbSkpKQogICAgICAgIChl cnJvciAiTm8gY3Jvc3MtcmVmZXJlbmNlcyBpbiB0aGlzIG5vZGUiKSkpKQotICAobGV0ICh0YXJn ZXQgaSAoc3RyIChjb25jYXQgIlxcKiIgSW5mby1mb290bm90ZS10YWcgIiAiCi0JCQkgICAgICAo cmVnZXhwLXF1b3RlIGZvb3Rub3RlbmFtZSkpKSkKLSAgICAod2hpbGUgKHNldHEgaSAoc3RyaW5n LW1hdGNoICIgIiBzdHIgaSkpCisgIChsZXQgKHRhcmdldCAoaSAwKSAoc3RyIChjb25jYXQgIlxc KiIgSW5mby1mb290bm90ZS10YWcgIiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHJlZ2V4cC1xdW90ZSBmb290bm90ZW5hbWUpKSkpCisgICAgKHdoaWxlIChzZXRxIGkgKHBv c2l0aW9uID9cICBzdHIgOnN0YXJ0IGkpKQogICAgICAgKHNldHEgc3RyIChjb25jYXQgKHN1YnN0 cmluZyBzdHIgMCBpKSAiXFwoWyBcdFxuXStcXCkiCiAJCQkoc3Vic3RyaW5nIHN0ciAoMSsgaSkp KSkKICAgICAgIChzZXRxIGkgKCsgaSAxMCkpKQpAQCAtMjAyOSw4ICsyMDMwLDcgQEAKIAogKGRl ZnVuIEluZm8tZXh0cmFjdC1tZW51LW5vZGUtbmFtZSAoJm9wdGlvbmFsIGVycm1lc3NhZ2UgbXVs dGktbGluZSkKICAgKHNraXAtY2hhcnMtZm9yd2FyZCAiIFx0XG4iKQotICAobGV0ICgoc3RhcnQg KHBvaW50KSkKLQlzdHIgaSkKKyAgKGxldCAoKHN0YXJ0IChwb2ludCkpIHN0cikKICAgICAoc2tp cC1jaGFycy1mb3J3YXJkICJeOiIpCiAgICAgKGZvcndhcmQtY2hhciAxKQogICAgIChzZXRxIHN0 cgpAQCAtMjA1MCw5ICsyMDUwLDcgQEAKIAkJICAgICA7OyBTa2lwcyBzZXF1ZW50aWFsIGRvdHMu CiAJCSAgICAgIl1cXHxcXC4rW14gXHRcbildXFwpK1xcKSIpKQogCSAgICAobWF0Y2gtc3RyaW5n IDEpKSkKLSAgICAod2hpbGUgKHNldHEgaSAoc3RyaW5nLW1hdGNoICJcbiIgc3RyIGkpKQotICAg ICAgKGFzZXQgc3RyIGkgP1wgKSkKLSAgICBzdHIpKQorICAgIChzdWJzdGl0dXRlID9cICA/XG4g c3RyKSkpCiAKIChkZWZ1biBJbmZvLW1lbnUgKG1lbnUtaXRlbSkKICAgIkdvIHRvIG5vZGUgZm9y IG1lbnUgaXRlbSBuYW1lZCAob3IgYWJicmV2aWF0ZWQpIE5BTUUuCmRpZmYgLXIgMzFkZDI3NWZh NjgzIC1yIGJiZTQxNDY2MDNkYiBsaXNwL2xkYXAuZWwKLS0tIGEvbGlzcC9sZGFwLmVsCVR1ZSBN YXIgMzEgMTg6NDI6MjEgMjAxNSArMDEwMAorKysgYi9saXNwL2xkYXAuZWwJV2VkIEFwciAwMSAx NDoyODoyMCAyMDE1ICswMTAwCkBAIC00MDMsMjMgKzQwMywxNiBAQAogICAgICAgKGVycm9yICJJ bnZhbGlkIGNvdW50cnkgc3RyaW5nOiAlcyIgc3RyKSkpCiAKIChkZWZ1biBsZGFwLWRlY29kZS1z dHJpbmcgKHN0cikKLSAgKGlmIChmYm91bmRwICdkZWNvZGUtY29kaW5nLXN0cmluZykKLSAgICAg IChkZWNvZGUtY29kaW5nLXN0cmluZyBzdHIgbGRhcC1jb2Rpbmctc3lzdGVtKSkpCisgIChkZWNv ZGUtY29kaW5nLXN0cmluZyBzdHIgbGRhcC1jb2Rpbmctc3lzdGVtKSkKIAogKGRlZnVuIGxkYXAt ZW5jb2RlLXN0cmluZyAoc3RyKQotICAgKGlmIChmYm91bmRwICdlbmNvZGUtY29kaW5nLXN0cmlu ZykKLSAgICAgICAoZW5jb2RlLWNvZGluZy1zdHJpbmcgc3RyIGxkYXAtY29kaW5nLXN5c3RlbSkp KQorICAoZW5jb2RlLWNvZGluZy1zdHJpbmcgc3RyIGxkYXAtY29kaW5nLXN5c3RlbSkpCiAKIChk ZWZ1biBsZGFwLWRlY29kZS1hZGRyZXNzIChzdHIpCi0gIChtYXBjb25jYXQgJ2xkYXAtZGVjb2Rl LXN0cmluZwotCSAgICAgKHNwbGl0LXN0cmluZyBzdHIgIlxcJCIpCi0JICAgICAiXG4iKSkKKyAg KG1hcGNvbmNhdCAnbGRhcC1kZWNvZGUtc3RyaW5nIChzcGxpdC1zdHJpbmctYnktY2hhciBzdHIg PyQpICJcbiIpKQogCiAoZGVmdW4gbGRhcC1lbmNvZGUtYWRkcmVzcyAoc3RyKQotICAobWFwY29u Y2F0ICdsZGFwLWVuY29kZS1zdHJpbmcKLQkgICAgIChzcGxpdC1zdHJpbmcgc3RyICJcbiIpCi0J ICAgICAiJCIpKQotCisgIChtYXBjb25jYXQgJ2xkYXAtZW5jb2RlLXN0cmluZyAoc3BsaXQtc3Ry aW5nLWJ5LWNoYXIgc3RyID9cbikgIiQiKSkKIAogOzsgTERBUCBwcm90b2NvbCBmdW5jdGlvbnMK IApkaWZmIC1yIDMxZGQyNzVmYTY4MyAtciBiYmU0MTQ2NjAzZGIgbGlzcC9saXNwLW1udC5lbAot LS0gYS9saXNwL2xpc3AtbW50LmVsCVR1ZSBNYXIgMzEgMTg6NDI6MjEgMjAxNSArMDEwMAorKysg Yi9saXNwL2xpc3AtbW50LmVsCVdlZCBBcHIgMDEgMTQ6Mjg6MjAgMjAxNSArMDEwMApAQCAtMzA2 LDExICszMDYsOSBAQAogCShvciAobG0taGVhZGVyICJjcmVhdGVkIikKIAkgICAgKGxldCAoKGRh dGUtYW5kLXRpbWUgKGxtLWhlYWRlciAiT1JJRy1EQVRFIikpKQogCSAgICAgIChpZiBkYXRlLWFu ZC10aW1lCi0JCSAgKHN1YnN0cmluZyBkYXRlLWFuZC10aW1lIDAKLQkJCSAgICAgKHN0cmluZy1t YXRjaCAiICIgZGF0ZS1hbmQtdGltZSkpKSkpCisJCSAgKHN1YnNlcSBkYXRlLWFuZC10aW1lIDAg KHBvc2l0aW9uID9cICBkYXRlLWFuZC10aW1lKSkpKSkKICAgICAgIChpZiBmaWxlCi0JICAoa2ls bC1idWZmZXIgKGN1cnJlbnQtYnVmZmVyKSkpCi0gICAgICApKSkKKwkgIChraWxsLWJ1ZmZlciAo Y3VycmVudC1idWZmZXIpKSkpKSkKIAogKGRlZnVuIGxtLWxhc3QtbW9kaWZpZWQtZGF0ZSAoJm9w dGlvbmFsIGZpbGUpCiAgICJSZXR1cm4gdGhlIG1vZGlmeS1kYXRlIGdpdmVuIGluIGZpbGUgRklM RSwgb3IgY3VycmVudCBidWZmZXIgaWYgRklMRSBpcyBuaWwuIgpAQCAtMzMzLDExICszMzEsOSBA QAogCSAgOzsgWEVtYWNzIGNoYW5nZSAoSW5mb2RvY2sgY2hhbmdlPyAtc2IpCiAJICAobGV0ICgo ZGF0ZS1hbmQtdGltZSAobG0taGVhZGVyICJMQVNULU1PRCIpKSkKIAkgICAgKGlmIGRhdGUtYW5k LXRpbWUKLQkJKHN1YnN0cmluZyBkYXRlLWFuZC10aW1lIDAKLQkJCSAgIChzdHJpbmctbWF0Y2gg IiAiIGRhdGUtYW5kLXRpbWUpKSkpKQorCQkoc3Vic2VxIGRhdGUtYW5kLXRpbWUgMCAocG9zaXRp b24gP1wgIGRhdGUtYW5kLXRpbWUpKSkpKQogICAgICAgKGlmIGZpbGUKLQkgIChraWxsLWJ1ZmZl ciAoY3VycmVudC1idWZmZXIpKSkKLSAgICAgICkpKQorCSAgKGtpbGwtYnVmZmVyIChjdXJyZW50 LWJ1ZmZlcikpKSkpKQogCiAoZGVmdW4gbG0tdmVyc2lvbiAoJm9wdGlvbmFsIGZpbGUpCiAgICJS ZXR1cm4gdGhlIHZlcnNpb24gbGlzdGVkIGluIGZpbGUgRklMRSwgb3IgY3VycmVudCBidWZmZXIg aWYgRklMRSBpcyBuaWwuCmRpZmYgLXIgMzFkZDI3NWZhNjgzIC1yIGJiZTQxNDY2MDNkYiBsaXNw L21lbnViYXItaXRlbXMuZWwKLS0tIGEvbGlzcC9tZW51YmFyLWl0ZW1zLmVsCVR1ZSBNYXIgMzEg MTg6NDI6MjEgMjAxNSArMDEwMAorKysgYi9saXNwL21lbnViYXItaXRlbXMuZWwJV2VkIEFwciAw MSAxNDoyODoyMCAyMDE1ICswMTAwCkBAIC0xNDM5LDExICsxNDM5LDEzIEBACiAgICAgIFsiRWRp dCBJJV9uaXQgRmlsZSIKICAgICAgIDs7ICMjIyMgdGhlcmUgc2hvdWxkIGJlIHNvbWV0aGluZyB0 aGF0IGhvbGRzIHRoZSBuYW1lIHRoYXQgdGhlIGluaXQKICAgICAgIDs7IGZpbGUgc2hvdWxkIGJl IGNyZWF0ZWQgYXMsIHdoZW4gaXQncyBub3QgcHJlc2VudC4KLSAgICAgIChsZXQgKChlbC1maWxl IChvciB1c2VyLWluaXQtZmlsZSAifi8ueGVtYWNzL2luaXQuZWwiKSkKLSAgICAgICAgICAgIGVs LWZpbGUtZGlyZWN0b3J5KQotCShpZiAoc3RyaW5nLW1hdGNoICJcXC5lbGMkIiBlbC1maWxlKQor ICAgICAgKGxldCogKChlbC1maWxlIChvciB1c2VyLWluaXQtZmlsZSAifi8ueGVtYWNzL2luaXQu ZWwiKSkKKyAgICAgICAgICAgICAocG9zaXRpb24gKHBvc2l0aW9uID8uIGVsLWZpbGUgOmZyb20t ZW5kIHQpKQorICAgICAgICAgICAgIGVsLWZpbGUtZGlyZWN0b3J5KQorCShpZiAobm90IChtaXNt YXRjaCBlbC1maWxlICIuZWxjIgorOnN0YXJ0MSAob3IgcG9zaXRpb24gKGxlbmd0aCBlbC1maWxl KSkpKQogCSAgICAoc2V0cSBlbC1maWxlCi0JCSAgKHN1YnN0cmluZyB1c2VyLWluaXQtZmlsZSAw ICgxLSAobGVuZ3RoIGVsLWZpbGUpKSkpKQorCQkgIChzdWJzZXEgdXNlci1pbml0LWZpbGUgMCAt MSkpKQogICAgICAgICAodW5sZXNzIChmaWxlLWRpcmVjdG9yeS1wCiAgICAgICAgICAgICAgICAg IChzZXRxIGVsLWZpbGUtZGlyZWN0b3J5IChmaWxlLW5hbWUtZGlyZWN0b3J5IGVsLWZpbGUpKSkK ICAgICAgICAgICAobWVzc2FnZSAiQ3JlYXRpbmcgJXMuLi4gIiBlbC1maWxlLWRpcmVjdG9yeSkK QEAgLTE0NzksNyArMTQ4MSw3IEBACiAgICAgICBbIiVfSG9tZSBQYWdlICh3d3cueGVtYWNzLm9y ZykiIHhlbWFjcy13d3ctcGFnZQogICAgICAgIDphY3RpdmUgKGZib3VuZHAgJ2Jyb3dzZS11cmwp XSkKICAgICAgWyJCJV9ldGEgSW5mbyIgZGVzY3JpYmUtYmV0YQotOmluY2x1ZGVkIChzdHJpbmct bWF0Y2ggImJldGEiIGVtYWNzLXZlcnNpb24pXQorOmluY2x1ZGVkIChzZWFyY2ggImJldGEiIGVt YWNzLXZlcnNpb24pXQogICAgICAiLS0tLS0iCiAgICAgICgiJV9JbmZvIChPbmxpbmUgRG9jcyki CiAgICAgICBbIiVfSW5mbyBDb250ZW50cyIgKEluZm8tZ290by1ub2RlICIoZGlyKSIpXQpAQCAt MTcxMSwxMCArMTcxMywxMiBAQAogd2l0aCBhIHN0YXIgYXQgdGhlIGVuZCBvZiB0aGUgbGlzdC4i CiAgIChsZXQqICgobmFtMSAoYnVmZmVyLW5hbWUgYnVmMSkpCiAJIChuYW0yIChidWZmZXItbmFt ZSBidWYyKSkKLQkgKGludjFwIChub3QgKG51bGwgKHN0cmluZy1tYXRjaCAiXFxgICIgbmFtMSkp KSkKLQkgKGludjJwIChub3QgKG51bGwgKHN0cmluZy1tYXRjaCAiXFxgICIgbmFtMikpKSkKLQkg KHN0YXIxcCAobm90IChudWxsIChzdHJpbmctbWF0Y2ggIlxcYCoiIG5hbTEpKSkpCi0JIChzdGFy MnAgKG5vdCAobnVsbCAoc3RyaW5nLW1hdGNoICJcXGAqIiBuYW0yKSkpKSkKKyAgICAgICAgIChs ZW4xIChsZW5ndGggbmFtMSkpCisgICAgICAgICAobGVuMiAobGVuZ3RoIG5hbTIpKQorCSAoaW52 MXAgKGVxbCA/XCAoYW5kICg+IGxlbjEgMCkgKGFyZWYgbmFtMSAwKSkpKQorCSAoaW52MnAgKGVx bCA/XCAoYW5kICg+IGxlbjIgMCkgKGFyZWYgbmFtMiAwKSkpKQorCSAoc3RhcjFwIChlcWwgPyog KGFuZCAoPiBsZW4xIDApIChhcmVmIG5hbTEgMCkpKSkKKyAgICAgICAgIChzdGFyMnAgKGVxbCA/ KiAoYW5kICg+IGxlbjIgMCkgKGFyZWYgbmFtMiAwKSkpKSkKICAgICAoY29uZCAoKG5vdCAoZXEg aW52MXAgaW52MnApKQogCSAgIChub3QgaW52MXApKQogCSAgKChub3QgKGVxIHN0YXIxcCBzdGFy MnApKQpAQCAtMTcyOCwyMyArMTczMiwzNyBAQAogYmVnaW5uaW5nIHdpdGggYSBzdGFyIGF0IHRo ZSBlbmQgb2YgdGhlIGxpc3QuIgogICAobGV0KiAoKG5hbTEgKGJ1ZmZlci1uYW1lIGJ1ZjEpKQog CSAobmFtMiAoYnVmZmVyLW5hbWUgYnVmMikpCi0JIChpbnYxcCAobm90IChudWxsIChzdHJpbmct bWF0Y2ggIlxcYCAiIG5hbTEpKSkpCi0JIChpbnYycCAobm90IChudWxsIChzdHJpbmctbWF0Y2gg IlxcYCAiIG5hbTIpKSkpCi0JIChzdGFyMXAgKG5vdCAobnVsbCAoc3RyaW5nLW1hdGNoICJcXGAq IiBuYW0xKSkpKQotCSAoc3RhcjJwIChub3QgKG51bGwgKHN0cmluZy1tYXRjaCAiXFxgKiIgbmFt MikpKSkKLQkgKG1vZGUxIChzeW1ib2wtdmFsdWUtaW4tYnVmZmVyICdtYWpvci1tb2RlIGJ1ZjEp KQotCSAobW9kZTIgKHN5bWJvbC12YWx1ZS1pbi1idWZmZXIgJ21ham9yLW1vZGUgYnVmMikpKQor CSAoZmlyc3QxIChlbHQgbmFtMSAwKSkKKwkgKGZpcnN0MiAoZWx0IG5hbTIgMCkpCisJIChpbnYx cCAoZXFsID9cICBmaXJzdDEpKQorCSAoaW52MnAgKGVxbCA/XCAgZmlyc3QyKSkKKwkgKHN0YXIx cCAoZXFsID8qIGZpcnN0MSkpCisgICAgICAgICAoc3RhcjJwIChlcWwgPyogZmlyc3QyKSkKKwkg Y29tcGFyZS1zdHJpbmdzKQogICAgIChjb25kICgobm90IChlcSBpbnYxcCBpbnYycCkpCiAJICAg KG5vdCBpbnYxcCkpCiAJICAoKG5vdCAoZXEgc3RhcjFwIHN0YXIycCkpCiAJICAgKG5vdCBzdGFy MXApKQotCSAgKChhbmQgc3RhcjFwIHN0YXIycCAoc3RyaW5nLWxlc3NwIG5hbTEgbmFtMikpKQot CSAgKChzdHJpbmctbGVzc3AgbW9kZTEgbW9kZTIpCi0JICAgdCkKLQkgICgoc3RyaW5nLWxlc3Nw IG1vZGUyIG1vZGUxKQotCSAgIG5pbCkKLQkgICh0Ci0JICAgKHN0cmluZy1sZXNzcCBuYW0xIG5h bTIpKSkpKQorCSAgKChhbmQgc3RhcjFwIHN0YXIycCAocHJvZzIgCisJCQkJICAoc2V0cSBjb21w YXJlLXN0cmluZ3MKKwkJCQkJKGNvbXBhcmUtc3RyaW5ncyBuYW0xIDAgbmlsCisJCQkJCQkJIG5h bTIgMCBuaWwgdCkpCisJCQkJICAoYW5kIChmaXhudW1wIGNvbXBhcmUtc3RyaW5ncykKKwkJCQkg ICAgICAgKG1pbnVzcCBjb21wYXJlLXN0cmluZ3MpKSkpKQorCSAgKChlcSAoc2V0cSBjb21wYXJl LXN0cmluZ3MKKyAgICAgICAgICAgICAgICAgICAgIChjb21wYXJlLXN0cmluZ3MgKHN5bWJvbC1u YW1lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3ltYm9sLXZhbHVl LWluLWJ1ZmZlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYWpv ci1tb2RlIGJ1ZjEpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwIG5p bAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3ltYm9sLW5hbWUKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzeW1ib2wtdmFsdWUtaW4tYnVm ZmVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21ham9yLW1vZGUg YnVmMikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAgbmlsIHQpKQor CSAgICAgICB0KQorCSAgIChzZXRxIGNvbXBhcmUtc3RyaW5ncyAoY29tcGFyZS1zdHJpbmdzIG5h bTEgMCBuaWwKKwkJCQkJCSAgbmFtMiAwIG5pbCB0KSkKKwkgICAoYW5kIChmaXhudW1wIGNvbXBh cmUtc3RyaW5ncykgKG1pbnVzcCBjb21wYXJlLXN0cmluZ3MpKSkKKwkgICh0IChtaW51c3AgY29t cGFyZS1zdHJpbmdzKSkpKSkKIAogOzsgdGhpcyB2ZXJzaW9uIGlzIHRvbyBzbG93IG9uIHNvbWUg bWFjaGluZXMuCiA7OyAodmludGFnZSAxOTkwLCB0aGF0IGlzKQpAQCAtMTc3MiwxNCArMTc5MCwx OCBAQAogVGhpcyBncm91cHMgYnVmZmVycyBieSBtYWpvciBtb2RlLiAgSXQgb25seSByZWFsbHkg bWFrZXMgc2Vuc2UgaWYKIGBidWZmZXJzLW1lbnUtc29ydGluZy1mdW5jdGlvbicgaXMKIGBzb3J0 LWJ1ZmZlcnMtbWVudS1ieS1tb2RlLXRoZW4tYWxwaGFiZXRpY2FsbHknLiIKLSAgKGNvbmQgKChz dHJpbmctbWF0Y2ggIlxcYCoiIChidWZmZXItbmFtZSBidWYxKSkKLQkgKGFuZCAobnVsbCBidWYy KSAiKk1pc2MqIikpCi0JKChvciAobnVsbCBidWYyKQotCSAgICAgKHN0cmluZy1tYXRjaCAiXFxg KiIgKGJ1ZmZlci1uYW1lIGJ1ZjIpKQotCSAgICAgKG5vdCAoZXEgKHN5bWJvbC12YWx1ZS1pbi1i dWZmZXIgJ21ham9yLW1vZGUgYnVmMSkKLQkJICAgICAgKHN5bWJvbC12YWx1ZS1pbi1idWZmZXIg J21ham9yLW1vZGUgYnVmMikpKSkKLQkgKHN5bWJvbC12YWx1ZS1pbi1idWZmZXIgJ21vZGUtbmFt ZSBidWYxKSkKLQkodCBuaWwpKSkKKyAgKGxldCogKChuYW0xIChidWZmZXItbmFtZSBidWYxKSkK KwkgKG5hbTIgKGJ1ZmZlci1uYW1lIGJ1ZjIpKQorICAgICAgICAgKGxlbjEgKGxlbmd0aCBuYW0x KSkKKyAgICAgICAgIChsZW4yIChsZW5ndGggbmFtMikpKQorICAgIChjb25kICgoZXFsID8qIChh bmQgKD4gbGVuMSAwKSAoYXJlZiBuYW0xIDApKSkKKyAgICAgICAgICAgKGFuZCAobnVsbCBidWYy KSAiKk1pc2MqIikpCisgICAgICAgICAgKChvciAobnVsbCBidWYyKQorICAgICAgICAgICAgICAg KGVxbCA/KiAoYW5kICg+IGxlbjIgMCkgKGFyZWYgbmFtMiAwKSkpCisgICAgICAgICAgICAgICAo bm90IChlcSAoc3ltYm9sLXZhbHVlLWluLWJ1ZmZlciAnbWFqb3ItbW9kZSBidWYxKQorICAgICAg ICAgICAgICAgICAgICAgICAgKHN5bWJvbC12YWx1ZS1pbi1idWZmZXIgJ21ham9yLW1vZGUgYnVm MikpKSkKKyAgICAgICAgICAgKHN5bWJvbC12YWx1ZS1pbi1idWZmZXIgJ21vZGUtbmFtZSBidWYx KSkKKyAgICAgICAgICAodCBuaWwpKSkpCiAKIChkZWZ1biBidWZmZXItbWVudS1zYXZlLWJ1ZmZl ciAoYnVmZmVyKQogICAoc2F2ZS1leGN1cnNpb24KQEAgLTE5MDIsNyArMTkyNCw3IEBACiAoZGVm dW4gbGlzdC1hbGwtYnVmZmVycyAoKQogICAiRGlzcGxheSBhIGxpc3Qgb2YgYnVmZmVycy4gIENh bGxzIGBsaXN0LWFsbC1idWZmZXJzLWZ1bmN0aW9uJy4iCiAgIChpbnRlcmFjdGl2ZSkKLSAgKGZ1 bmNhbGwgKGlmIChmYm91bmRwIGxpc3QtYWxsLWJ1ZmZlcnMtZnVuY3Rpb24pCisgIChmdW5jYWxs IChpZiAoZnVuY3Rpb25wIGxpc3QtYWxsLWJ1ZmZlcnMtZnVuY3Rpb24pCiAJICAgICAgIGxpc3Qt YWxsLWJ1ZmZlcnMtZnVuY3Rpb24KIAkgICAgICdsaXN0LWJ1ZmZlcnMpKSkKIApAQCAtMTkyNiwx MCArMTk0OCwxMCBAQAogCShtYXBjYW4gIycobGFtYmRhIChsYW5nKQogCQkgICAgKGxldCAoKHR1 dCAoYXNzcSAndHV0b3JpYWwgbGFuZykpKQogCQkgICAgICAoYW5kIHR1dAotCQkJICAgKG5vdCAo c3RyaW5nPSAoY2FyIGxhbmcpICJBU0NJSSIpKQorCQkJICAgKG5vdCAoZXF1YWwgKGNhciBsYW5n KSAiQVNDSUkiKSkKIAkJCSAgIDs7IHNraXAgY3VycmVudCBsYW5ndWFnZSwgc2luY2Ugd2UgYWxy ZWFkeQogCQkJICAgOzsgaW5jbHVkZWQgaXQgZmlyc3QKLQkJCSAgIChub3QgKHN0cmluZz0gKGNh ciBsYW5nKQorCQkJICAgKG5vdCAoZXF1YWwgKGNhciBsYW5nKQogCQkJCQkgY3VycmVudC1sYW5n dWFnZS1lbnZpcm9ubWVudCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBIYWNraXNo IGFwcHJvYWNoOyBpZiBhIGxhbmd1YWdlIGVudmlyb25tZW50CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICA7OyBkb2Vzbid0IGhhdmUgYXNzb2NpYXRlZCBsb2NhbGUgaW5mb3JtYXRpb24sCmRp ZmYgLXIgMzFkZDI3NWZhNjgzIC1yIGJiZTQxNDY2MDNkYiBsaXNwL21pbmlidWYuZWwKLS0tIGEv bGlzcC9taW5pYnVmLmVsCVR1ZSBNYXIgMzEgMTg6NDI6MjEgMjAxNSArMDEwMAorKysgYi9saXNw L21pbmlidWYuZWwJV2VkIEFwciAwMSAxNDoyODoyMCAyMDE1ICswMTAwCkBAIC0xNDgzLDE1ICsx NDgzLDExIEBACiAKIDs7IFF1b3RlICIkIiBhcyAiJCQiIHRvIGdldCBpdCBwYXN0IHN1YnN0aXR1 dGUtaW4tZmlsZS1uYW1lCiAoZGVmdW4gdW4tc3Vic3RpdHV0ZS1pbi1maWxlLW5hbWUgKHN0cmlu ZykKLSAgKGxldCAoKHJlZ2V4cCAiXFwkIikKKyAgKGxldCAoKG4gKGNvdW50ID8kIHN0cmluZykp CiAgICAgICAgIChvbGVuIChsZW5ndGggc3RyaW5nKSkKLSAgICAgICAgbmV3Ci0gICAgICAgIG4g byBjaCkKLSAgICAoaWYgKG5vdCAoc3RyaW5nLW1hdGNoIHJlZ2V4cCBzdHJpbmcpKQorICAgICAg ICBuZXcgbyBjaCkKKyAgICAoaWYgKGVxbCBuIDApCiAJc3RyaW5nCi0gICAgICAoc2V0cSBuIDEp Ci0gICAgICAod2hpbGUgKHN0cmluZy1tYXRjaCByZWdleHAgc3RyaW5nIChtYXRjaC1lbmQgMCkp Ci0JKHNldHEgbiAoMSsgbikpKQogICAgICAgKHNldHEgbmV3IChtYWtlLXN0cmluZyAoKyBvbGVu IG4pID8kKSkKICAgICAgIChzZXRxIG4gMCBvIDApCiAgICAgICAod2hpbGUgKDwgbyBvbGVuKQpA QCAtMTUwMyw3ICsxNDk5LDYgQEAKIAkgICAgKHNldHEgbiAoMSsgbikpKSkKICAgICAgIG5ldykp KQogCi0KIDs7IFdyYXBwZXIgZm9yIGBkaXJlY3RvcnktZmlsZXMnIGZvciB1c2UgaW4gZ2VuZXJh dGluZyBjb21wbGV0aW9uIGxpc3RzLgogOzsgR2VuZXJhdGVzIG91dHB1dCBpbiB0aGUgc2FtZSBm b3JtYXQgYXMgYGZpbGUtbmFtZS1hbGwtY29tcGxldGlvbnMnLgogOzsKQEAgLTE3NzUsOSArMTc3 MCw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCkpKSkKICAg ICAgICAgICAgICAoaGVhZCAoc3Vic3RyaW5nIHN0cmluZyAwICgxLSBzdGFydCkpKQogICAgICAg ICAgICAgIChhbGlzdCAjJyhsYW1iZGEgKCkKLSAgICAgICAgICAgICAgICAgICAgICAgIChtYXBj YXIgIycobGFtYmRhICh4KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNv bnMgKHN1YnN0cmluZyB4IDAgKHN0cmluZy1tYXRjaCAiPSIgeCkpCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBuaWwpKQorICAgICAgICAgICAgICAgICAgICAgICAg KG1hcGNhciAjJyhsYW1iZGEgKHgpIChzdWJzZXEgeCAwIChwb3NpdGlvbiA/PSB4KSkpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3MtZW52aXJvbm1lbnQpKSkpCiAKIAko Y29uZCAoKGVxIGFjdGlvbiAnbGFtYmRhKQpkaWZmIC1yIDMxZGQyNzVmYTY4MyAtciBiYmU0MTQ2 NjAzZGIgbGlzcC9tb3VzZS5lbAotLS0gYS9saXNwL21vdXNlLmVsCVR1ZSBNYXIgMzEgMTg6NDI6 MjEgMjAxNSArMDEwMAorKysgYi9saXNwL21vdXNlLmVsCVdlZCBBcHIgMDEgMTQ6Mjg6MjAgMjAx NSArMDEwMApAQCAtMjc0LDcgKzI3NCw3IEBACiAgICAgOzsgIyMjIyAtLSBuZWVkIGJldHRlciB0 ZXN0CiAgICAgKGlmIChhbmQgKG5vdCBmb3JjZS13aW5kb3cpCiAJICAgICAoPD0gKGxlbmd0aCBy ZXN1bHQtc3RyKSAod2luZG93LXdpZHRoIChzZWxlY3RlZC13aW5kb3cpKSkKLSAgICAgICAgICAg ICAobm90IChzdHJpbmctbWF0Y2ggIlxuIiByZXN1bHQtc3RyKSkpCisgICAgICAgICAgICAgKG5v dCAoZmluZCA/XG4gcmVzdWx0LXN0cikpKQogCShtZXNzYWdlICIlcyIgcmVzdWx0LXN0cikKICAg ICAgICh3aXRoLW91dHB1dC10by10ZW1wLWJ1ZmZlciAiKk1vdXNlLUV2YWwqIgogICAgICAgICAo bG9vcApkaWZmIC1yIDMxZGQyNzVmYTY4MyAtciBiYmU0MTQ2NjAzZGIgbGlzcC9tc3ctZm9udC1t ZW51LmVsCi0tLSBhL2xpc3AvbXN3LWZvbnQtbWVudS5lbAlUdWUgTWFyIDMxIDE4OjQyOjIxIDIw MTUgKzAxMDAKKysrIGIvbGlzcC9tc3ctZm9udC1tZW51LmVsCVdlZCBBcHIgMDEgMTQ6Mjg6MjAg MjAxNSArMDEwMApAQCAtNzcsNyArNzcsNyBAQAogCWRldi1jYWNoZSBjYWNoZSBmYW1pbGllcyBz aXplcyB3ZWlnaHRzKQogICAgIChkb2xpc3QgKG5hbWUgKGNvbmQgKChudWxsIGRlYnVnKQk7IGRl YnVnZ2luZyBrbHVkZ2UKIAkJCSAoZm9udC1saXN0ICI6Ojo6IiBkZXZpY2UpKQotCQkJKChzdHJp bmdwIGRlYnVnKSAoc3BsaXQtc3RyaW5nIGRlYnVnICJcbiIpKQorCQkJKChzdHJpbmdwIGRlYnVn KSAoc3BsaXQtc3RyaW5nLWJ5LWNoYXIgZGVidWcgP1xuKSkKIAkJCSh0IGRlYnVnKSkpCiAgICAg ICAod2hlbiAoYW5kIChzdHJpbmctbWF0Y2ggbXN3aW5kb3dzLWZvbnQtcmVnZXhwLWFzY2lpIG5h bWUpCiAJCSAoc3RyaW5nLW1hdGNoIG1zd2luZG93cy1mb250LXJlZ2V4cCBuYW1lKSkKZGlmZiAt ciAzMWRkMjc1ZmE2ODMgLXIgYmJlNDE0NjYwM2RiIGxpc3AvbXVsZS9qYXBhbmVzZS5lbAotLS0g YS9saXNwL211bGUvamFwYW5lc2UuZWwJVHVlIE1hciAzMSAxODo0MjoyMSAyMDE1ICswMTAwCisr KyBiL2xpc3AvbXVsZS9qYXBhbmVzZS5lbAlXZWQgQXByIDAxIDE0OjI4OjIwIDIwMTUgKzAxMDAK QEAgLTQ0NCwzNiArNDQ0LDQzIEBACiAgICAgICAgICAgICAgICAgICAgJ25hdGl2ZS1jb2Rpbmct c3lzdGVtCiAgICAgICAgICAgICAgICAgICAgOzsgZmlyc3QsIHNlZSBpZiBhbiBleHBsaWNpdCBl bmNvZGluZyB3YXMgZ2l2ZW4uCiAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAobG9jYWxlKQot ICAgICAgICAgICAgICAgICAgICAgKGxldCAoKGNhc2UtZm9sZC1zZWFyY2ggdCkpCi0gICAgICAg ICAgICAgICAgICAgICAgIChjb25kCi0gICAgICAgICAgICAgICAgICAgICAgICA7OyBtYW55IHVu aXggdmVyc2lvbnMKLSAgICAgICAgICAgICAgICAgICAgICAgICgoc3RyaW5nLW1hdGNoICJcXC5l dWMiIGxvY2FsZSkgJ2V1Yy1qcCkKLSAgICAgICAgICAgICAgICAgICAgICAgICgoc3RyaW5nLW1h dGNoICJcXC5zamlzIiBsb2NhbGUpICdzaGlmdC1qaXMpCisgICAgICAgICAgICAgICAgICAgICAo b3IKKyAgICAgICAgICAgICAgICAgICAgICAobGV0ICgobG9jYWxlIChjYW5vbmNhc2UgbG9jYWxl KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAoY29uZAorICAgICAgICAgICAgICAgICAgICAg ICAgICA7OyBtYW55IHVuaXggdmVyc2lvbnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKChz ZWFyY2ggIi5ldWMiIGxvY2FsZSkgJ2V1Yy1qcCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg KChzZWFyY2ggIi5zamlzIiBsb2NhbGUpICdzaGlmdC1qaXMpCiAKLSAgICAgICAgICAgICAgICAg ICAgICAgIDs7IFgxMVI2IChDSktWIHAuIDQ3MSkKLSAgICAgICAgICAgICAgICAgICAgICAgICgo c3RyaW5nLW1hdGNoICJcXC5qaXM3IiBsb2NhbGUpICdqaXM3KQotICAgICAgICAgICAgICAgICAg ICAgICAgKChzdHJpbmctbWF0Y2ggIlxcLmppczgiIGxvY2FsZSkgJ2ppczgpCi0gICAgICAgICAg ICAgICAgICAgICAgICAoKHN0cmluZy1tYXRjaCAiXFwubXNjb2RlIiBsb2NhbGUpICdzaGlmdC1q aXMpCi0gICAgICAgICAgICAgICAgICAgICAgICAoKHN0cmluZy1tYXRjaCAiXFwucGppcyIgbG9j YWxlKSAnaXNvLTIwMjItanApCi0gICAgICAgICAgICAgICAgICAgICAgICAoKHN0cmluZy1tYXRj aCAiXFwudWppcyIgbG9jYWxlKSAnZXVjLWpwKQorICAgICAgICAgICAgICAgICAgICAgICAgICA7 OyBYMTFSNiAoQ0pLViBwLiA0NzEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICgoc2VhcmNo ICIuamlzNyIgbG9jYWxlKSAnamlzNykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKChzZWFy Y2ggIi5qaXM4IiBsb2NhbGUpICdqaXM4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAoKHNl YXJjaCAiLm1zY29kZSIgbG9jYWxlKSAnc2hpZnQtamlzKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAoKHNlYXJjaCAiLnBqaXMiIGxvY2FsZSkgJ2lzby0yMDIyLWpwKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAoKHNlYXJjaCAiLnVqaXMiIGxvY2FsZSkgJ2V1Yy1qcCkKIAotICAgICAg ICAgICAgICAgICAgICAgICAgOzsgb3RoZXIgbmFtZXMgaW4gWDExUjYgbG9jYWxlLmFsaWFzCi0g ICAgICAgICAgICAgICAgICAgICAgICAoKHN0cmluZy1tYXRjaCAiXFwuYWplYyIgbG9jYWxlKSAn ZXVjLWpwKQotICAgICAgICAgICAgICAgICAgICAgICAgKChzdHJpbmctbWF0Y2ggIi1ldWMiIGxv Y2FsZSkgJ2V1Yy1qcCkKLSAgICAgICAgICAgICAgICAgICAgICAgICgoc3RyaW5nLW1hdGNoICJc XC5pc28tMjAyMi1qcCIgbG9jYWxlKSAnaXNvLTIwMjItanApCi0gICAgICAgICAgICAgICAgICAg ICAgICAoKHN0cmluZy1tYXRjaCAiXFwuamlzIiBsb2NhbGUpICdqaXM3KSA7OyBvciBqdXN0IGpp cz8KLQotICAgICAgICAgICAgICAgICAgICAgICAgOzsgYWl4IChDSktWIHAuIDQ2NSkKLSAgICAg ICAgICAgICAgICAgICAgICAgICgoYW5kIChlcSBzeXN0ZW0tdHlwZSAnYWl4KQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy1tYXRjaCAiXkphX0pQIiBsb2NhbGUpKSAnc2hp ZnQtamlzKQotICAgICAgICAgICAgICAgICAgICAgICAgKChhbmQgKGVxIHN5c3RlbS10eXBlICdh aXgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLW1hdGNoICJeamFfSlAi IGxvY2FsZSkpICdldWMtanApCi0KLSAgICAgICAgICAgICAgICAgICAgICAgOzsgb3RoZXIgWDEx UjYgbG9jYWxlLmFsaWFzCi0gICAgICAgICAgICAgICAgICAgICAgICgoc3RyaW5nLW1hdGNoICJe SnBfSlAiIGxvY2FsZSkgJ2V1Yy1qcCkKLSAgICAgICAgICAgICAgICAgICAgICAgKChhbmQgKGVx IHN5c3RlbS10eXBlICdocHV4KSAoZXEgbG9jYWxlICJqYXBhbmVzZSIpKQotICAgICAgICAgICAg ICAgICAgICAgICAgJ3NoaWZ0LWppcykKLSAgICAgICAgICAgICAgICAgICAgICAgOzsgZmFsbGJh Y2sKLSAgICAgICAgICAgICAgICAgICAgICAgKHQgJ2V1Yy1qcCkpKSkpCisgICAgICAgICAgICAg ICAgICAgICAgICAgIDs7IG90aGVyIG5hbWVzIGluIFgxMVI2IGxvY2FsZS5hbGlhcworICAgICAg ICAgICAgICAgICAgICAgICAgICAoKHNlYXJjaCAiLmFqZWMiIGxvY2FsZSkgJ2V1Yy1qcCkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgKChzZWFyY2ggIi1ldWMiIGxvY2FsZSkgJ2V1Yy1qcCkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgKChzZWFyY2ggIi5pc28tMjAyMi1qcCIgbG9jYWxl KSAnaXNvLTIwMjItanApCisgICAgICAgICAgICAgICAgICAgICAgICAgICgoc2VhcmNoICIuamlz IiBsb2NhbGUpICdqaXM3KSkpIDs7IG9yIGp1c3QgamlzPworICAgICAgICAgICAgICAgICAgICAg IDs7IGFpeCAoQ0pLViBwLiA0NjUpCisgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gKGVxIHN5 c3RlbS10eXBlICdhaXgpCisgICAgICAgICAgICAgICAgICAgICAgICAoY29uZAorICAgICAgICAg ICAgICAgICAgICAgICAgICA7OyBDYXNlIHNlbnNpdGl2ZSEKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgKChub3QgKG1pc21hdGNoICJKYV9KUCIgbG9jYWxlCis6ZW5kMiAobGVuZ3RoICJKYV9K UCIpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICdzaGlmdC1qaXMpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICgobm90IChtaXNtYXRjaCAiamFfSlAiIGxvY2FsZQorOmVuZDIgKGxl bmd0aCAiamFfSlAiKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnZXVjLWpwKSkpCisg ICAgICAgICAgICAgICAgICAgICAgKGNvbmQKKyAgICAgICAgICAgICAgICAgICAgICAgIDs7IG90 aGVyIFgxMVI2IGxvY2FsZS5hbGlhcworICAgICAgICAgICAgICAgICAgICAgICAgKChub3QgKG1p c21hdGNoICJKcF9KUCIgbG9jYWxlIDplbmQyIChsZW5ndGggIkpwX0pQIikpKQorICAgICAgICAg ICAgICAgICAgICAgICAgICdldWMtanApCisgICAgICAgICAgICAgICAgICAgICAgICAoKGFuZCAo ZXEgc3lzdGVtLXR5cGUgJ2hwdXgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXF1 YWxwIGxvY2FsZSAiamFwYW5lc2UiKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAnc2hpZnQt amlzKQorICAgICAgICAgICAgICAgICAgICAgICAgOzsgZmFsbGJhY2sKKyAgICAgICAgICAgICAg ICAgICAgICAgICh0ICdldWMtanApKSkpKQogCiA7OzsgamFwYW5lc2UuZWwgZW5kcyBoZXJlCmRp ZmYgLXIgMzFkZDI3NWZhNjgzIC1yIGJiZTQxNDY2MDNkYiBsaXNwL211bGUva29yZWEtdXRpbC5l bAotLS0gYS9saXNwL211bGUva29yZWEtdXRpbC5lbAlUdWUgTWFyIDMxIDE4OjQyOjIxIDIwMTUg KzAxMDAKKysrIGIvbGlzcC9tdWxlL2tvcmVhLXV0aWwuZWwJV2VkIEFwciAwMSAxNDoyODoyMCAy MDE1ICswMTAwCkBAIC0zMSw3ICszMSw3IEBACiAKIDs7OyMjI2F1dG9sb2FkCiAoZGVmdmFyIGRl ZmF1bHQta29yZWFuLWtleWJvYXJkCi0gIChpZiAoc3RyaW5nLW1hdGNoICIzIiAob3IgKGdldGVu diAiSEFOR1VMX0tFWUJPQVJEX1RZUEUiKSAiIikpCisgIChpZiAoZmluZCA/MyAoZ2V0ZW52ICJI QU5HVUxfS0VZQk9BUkRfVFlQRSIpKQogICAgICAgIjMiCiAgICAgIiIpCiAgICIqVGhlIGtpbmQg b2YgS29yZWFuIGtleWJvYXJkIGZvciBLb3JlYW4gaW5wdXQgbWV0aG9kLgpAQCAtNjAsNyArNjAs NyBAQAogICAiU3dpdGggdG8vZnJvbSBLb3JlYW4gaGFuamEgcGFja2FnZS4iCiAgIChpbnRlcmFj dGl2ZSAiaSIpCiAgIChhbmQgY3VycmVudC1pbnB1dC1tZXRob2QKLSAgICAgICAoaWYgKHN0cmlu Zy1tYXRjaCAia29yZWFuLWhhbmphIiBjdXJyZW50LWlucHV0LW1ldGhvZCkKKyAgICAgICAoaWYg KHNlYXJjaCAia29yZWFuLWhhbmphIiBjdXJyZW50LWlucHV0LW1ldGhvZCA6dGVzdCAjJ2VxdWFs cCkKIAkgICAoYWN0aXZhdGUtaW5wdXQtbWV0aG9kIChjb25jYXQgImtvcmVhbi1oYW5ndWwiCiAJ CQkJCSAgZGVmYXVsdC1rb3JlYW4ta2V5Ym9hcmQpKQogCSAoYWN0aXZhdGUtaW5wdXQtbWV0aG9k IChjb25jYXQgImtvcmVhbi1oYW5qYSIKZGlmZiAtciAzMWRkMjc1ZmE2ODMgLXIgYmJlNDE0NjYw M2RiIGxpc3AvbXVsZS9tdWxlLWNtZHMuZWwKLS0tIGEvbGlzcC9tdWxlL211bGUtY21kcy5lbAlU dWUgTWFyIDMxIDE4OjQyOjIxIDIwMTUgKzAxMDAKKysrIGIvbGlzcC9tdWxlL211bGUtY21kcy5l bAlXZWQgQXByIDAxIDE0OjI4OjIwIDIwMTUgKzAxMDAKQEAgLTEyODUsOSArMTI4NSwxMCBAQAog CQkgOzsgYXNzdW1lIGl0J3MgREVGQVVMVCBvciBORVVUUkFMIChvciBzb21ldGhpbmcgZWxzZQog CQkgOzsgd2l0aG91dCB0aGUgbGFuZ3VhZ2UgaW4gaXQ/KSBhbmQgcHJlcGVuZCB0aGUKIAkJIDs7 IGxhbmd1YWdlLgotCQkgKGlmIChzdHJpbmctbWF0Y2ggIl8iIChjZHIgbXMtbG9jYWxlKSkKLQkJ ICAgICAocmVwbGFjZS1pbi1zdHJpbmcKLQkJICAgICAgKHJlcGxhY2UtbWF0Y2ggIi0iIG5pbCBu aWwgKGNkciBtcy1sb2NhbGUpKSAiXyIgIiAiKQorCQkgKGlmIChzZXRxIHBvc2l0aW9uIChwb3Np dGlvbiA/XyAoY2RyIG1zLWxvY2FsZSkpKQorICAgICAgICAgICAgICAgICAgICAgKHN1YnN0aXR1 dGUgP1wgID9fCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3Vic3RpdHV0ZSA/ LSA/XyAoY2RyIG1zLWxvY2FsZSkKKzplbmQgKDErIHBvc2l0aW9uKSkpCiAJCSAgIChmb3JtYXQg IiVzLSVzIiAoY2FyIG1zLWxvY2FsZSkgKGNkciBtcy1sb2NhbGUpKSkpCiAJCTs7ID8/Pz8gaHVo ID8/Pz8gaWYgZmFpbHVyZSwganVzdCB0cnkgdGhlIGxhbmd1YWdlCiAJCTs7IG5hbWUuCmRpZmYg LXIgMzFkZDI3NWZhNjgzIC1yIGJiZTQxNDY2MDNkYiBsaXNwL25ld2NvbW1lbnQuZWwKLS0tIGEv bGlzcC9uZXdjb21tZW50LmVsCVR1ZSBNYXIgMzEgMTg6NDI6MjEgMjAxNSArMDEwMAorKysgYi9s aXNwL25ld2NvbW1lbnQuZWwJV2VkIEFwciAwMSAxNDoyODoyMCAyMDE1ICswMTAwCkBAIC03MzYs NyArNzM2LDcgQEAKIAkJCQkgICAgICAgKG1hdGNoLWJlZ2lubmluZyAwKSBsY3MgMykpIGMpKSkK IAkoc2V0cSBjcyAocmVwbGFjZS1tYXRjaCBmaWxsIHQgdCBzKSkKIAkod2hlbiAoYW5kIChub3Qg KHN0cmluZy1tYXRjaCBjb21tZW50LXN0YXJ0LXNraXAgY3MpKQotCQkgICAoc3RyaW5nLW1hdGNo ICJhPW0iIHMpKQorCQkgICAoc2VhcmNoICJhPW0iIHMpKQogCSAgOzsgVGhlIHdoaXRlc3BhY2Ug YXJvdW5kIENTIGNhbm5vdCBiZSBpZ25vcmVkOiBwdXQgaXQgYmFjay4KIAkgIChzZXRxIHJlICJh PW0iKQogCSAgKHNldHEgZmlsbCAobWFrZS1zdHJpbmcgKC0gd2lkdGggbGNzKSBjKSkKZGlmZiAt ciAzMWRkMjc1ZmE2ODMgLXIgYmJlNDE0NjYwM2RiIGxpc3AvcGFja2FnZS1nZXQuZWwKLS0tIGEv bGlzcC9wYWNrYWdlLWdldC5lbAlUdWUgTWFyIDMxIDE4OjQyOjIxIDIwMTUgKzAxMDAKKysrIGIv bGlzcC9wYWNrYWdlLWdldC5lbAlXZWQgQXByIDAxIDE0OjI4OjIwIDIwMTUgKzAxMDAKQEAgLTEy MjIsNyArMTIyMiw3IEBACiAgICAgKGxldCAoKGRpciAoY2FkciBzZWFyY2gpKSkKICAgICAgIChj b25jYXQgKHdoZW4gKGNhciBzZWFyY2gpCiAJCShjb25jYXQKLQkJIChpZiAoc3RyaW5nLW1hdGNo ICJAIiAoY2FyIHNlYXJjaCkpCisJCSAoaWYgKHBvc2l0aW9uID9AIChjYXIgc2VhcmNoKSkKIAkJ ICAgICAiLyIKIAkJICAgIi9hbm9ueW1vdXNAIikKIAkJIChjYXIgc2VhcmNoKSAiOiIpKQpkaWZm IC1yIDMxZGQyNzVmYTY4MyAtciBiYmU0MTQ2NjAzZGIgbGlzcC9wcm9jZXNzLmVsCi0tLSBhL2xp c3AvcHJvY2Vzcy5lbAlUdWUgTWFyIDMxIDE4OjQyOjIxIDIwMTUgKzAxMDAKKysrIGIvbGlzcC9w cm9jZXNzLmVsCVdlZCBBcHIgMDEgMTQ6Mjg6MjAgMjAxNSArMDEwMApAQCAtNjM3LDEwICs2Mzcs OCBAQAogT3B0aW9uYWwgc2Vjb25kIGFyZyBNVVNUTUFUQ0gsIGlmIG5vbi1uaWwsIG1lYW5zIHJl cXVpcmUgZXhpc3RpbmcgZW52dmFyIG5hbWUuCiBJZiBpdCBpcyBhbHNvIG5vdCB0LCBSRVQgZG9l cyBub3QgZXhpdCBpZiBpdCBkb2VzIG5vbi1udWxsIGNvbXBsZXRpb24uIgogICAoY29tcGxldGlu Zy1yZWFkIHByb21wdAotCQkgICAobWFwY2FyIChmdW5jdGlvbgotCQkJICAgIChsYW1iZGEgKGVu dmVudHJ5KQotCQkJICAgICAgKGxpc3QgKHN1YnN0cmluZyBlbnZlbnRyeSAwCi0JCQkJCSAgICAg ICAoc3RyaW5nLW1hdGNoICI9IiBlbnZlbnRyeSkpKSkpCisJCSAgIChtYXBjYXIgIycobGFtYmRh ICh2YXJpYWJsZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3Vic3RyaW5nIHZh cmlhYmxlIDAgKHBvc2l0aW9uID89IHZhcmlhYmxlKSkpCiAJCQkgICBwcm9jZXNzLWVudmlyb25t ZW50KQogCQkgICBuaWwgbXVzdG1hdGNoIG5pbCAncmVhZC1lbnZ2YXItbmFtZS1oaXN0b3J5KSkK IApAQCAtNzIxLDcgKzcxOSw3IEBACiAKICAgOzsgQnV0IHRoZW4gcmlnaHQgbm93IG91ciBmaW5k LWNvZGluZy1zeXN0ZW1zIGFuYWxvZ3VlIGlzIGluIHBhY2thZ2VzLgogCi0gIChpZiAoc3RyaW5n LW1hdGNoICI9IiB2YXJpYWJsZSkKKyAgKGlmIChwb3NpdGlvbiA/PSB2YXJpYWJsZSkKICAgICAg IChlcnJvciAiRW52aXJvbm1lbnQgdmFyaWFibGUgbmFtZSBgJXMnIGNvbnRhaW5zIGA9JyIgdmFy aWFibGUpCiAgICAgKGxldCAoKHBhdHRlcm4gKGNvbmNhdCAiXFxgIiAocmVnZXhwLXF1b3RlIChj b25jYXQgdmFyaWFibGUgIj0iKSkpKQogCSAgKGNhc2UtZm9sZC1zZWFyY2ggbmlsKQpkaWZmIC1y IDMxZGQyNzVmYTY4MyAtciBiYmU0MTQ2NjAzZGIgbGlzcC9yZXBsYWNlLmVsCi0tLSBhL2xpc3Av cmVwbGFjZS5lbAlUdWUgTWFyIDMxIDE4OjQyOjIxIDIwMTUgKzAxMDAKKysrIGIvbGlzcC9yZXBs YWNlLmVsCVdlZCBBcHIgMDEgMTQ6Mjg6MjAgMjAxNSArMDEwMApAQCAtMTQ4LDIwICsxNDgsMTAg QEAKIAkgICAgICAgbmlsIG5pbCBuaWwKIAkgICAgICAgJ3F1ZXJ5LXJlcGxhY2UtaGlzdG9yeSkp CiAgICAgIChsaXN0IGZyb20gdG8gY3VycmVudC1wcmVmaXgtYXJnKSkpCi0gIChsZXQgKHJlcGxh Y2VtZW50cykKLSAgICAoaWYgKGxpc3RwIHRvLXN0cmluZ3MpCi0JKHNldHEgcmVwbGFjZW1lbnRz IHRvLXN0cmluZ3MpCi0gICAgICAod2hpbGUgKG5vdCAoZXFsIChsZW5ndGggdG8tc3RyaW5ncykg MCkpCi0JKGlmIChzdHJpbmctbWF0Y2ggIiAiIHRvLXN0cmluZ3MpCi0JICAgIChzZXRxIHJlcGxh Y2VtZW50cwotCQkgIChhcHBlbmQgcmVwbGFjZW1lbnRzCi0JCQkgIChsaXN0IChzdWJzdHJpbmcg dG8tc3RyaW5ncyAwCi0JCQkJCSAgIChzdHJpbmctbWF0Y2ggIiAiIHRvLXN0cmluZ3MpKSkpCi0J CSAgdG8tc3RyaW5ncyAoc3Vic3RyaW5nIHRvLXN0cmluZ3MKLQkJCQkgICAgICAgKDErIChzdHJp bmctbWF0Y2ggIiAiIHRvLXN0cmluZ3MpKSkpCi0JICAoc2V0cSByZXBsYWNlbWVudHMgKGFwcGVu ZCByZXBsYWNlbWVudHMgKGxpc3QgdG8tc3RyaW5ncykpCi0JCXRvLXN0cmluZ3MgIiIpKSkpCi0g ICAgKHBlcmZvcm0tcmVwbGFjZSByZWdleHAgcmVwbGFjZW1lbnRzIHQgdCBuaWwgYXJnKSkpCisg IChwZXJmb3JtLXJlcGxhY2UgcmVnZXhwIChpZiAobGlzdHAgdG8tc3RyaW5ncykKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHRvLXN0cmluZ3MKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoc3BsaXQtc3RyaW5nLWJ5LWNoYXIgdG8tc3RyaW5ncyA/XCApKQorICAgICAgICAgICAg ICAgICAgIHQgdCBuaWwgYXJnKSkKIAogKGRlZnVuIHJlcGxhY2Utc3RyaW5nIChmcm9tLXN0cmlu ZyB0by1zdHJpbmcgJm9wdGlvbmFsIGRlbGltaXRlZCkKICAgIlJlcGxhY2Ugb2NjdXJyZW5jZXMg b2YgRlJPTS1TVFJJTkcgd2l0aCBUTy1TVFJJTkcuCmRpZmYgLXIgMzFkZDI3NWZhNjgzIC1yIGJi ZTQxNDY2MDNkYiBsaXNwL3NlbGVjdC5lbAotLS0gYS9saXNwL3NlbGVjdC5lbAlUdWUgTWFyIDMx IDE4OjQyOjIxIDIwMTUgKzAxMDAKKysrIGIvbGlzcC9zZWxlY3QuZWwJV2VkIEFwciAwMSAxNDoy ODoyMCAyMDE1ICswMTAwCkBAIC03ODIsMTggKzc4MiwxNiBAQAogOzs7IENGX3h4eCBjb252ZXJz aW9ucwogKGRlZnVuIHNlbGVjdC1jb252ZXJ0LWZyb20tY2YtdGV4dCAoc2VsZWN0aW9uIHR5cGUg dmFsdWUpCiAgIChpZiAoZmluZC1jb2Rpbmctc3lzdGVtICdtc3dpbmRvd3MtbXVsdGlieXRlKQot ICAgICAgKGxldCAoKHZhbHVlIChkZWNvZGUtY29kaW5nLXN0cmluZyB2YWx1ZSAnbXN3aW5kb3dz LW11bHRpYnl0ZSkpKQotCShyZXBsYWNlLWluLXN0cmluZyAoaWYgKHN0cmluZy1tYXRjaCAiXDAi IHZhbHVlKQotCQkJICAgICAgIChzdWJzdHJpbmcgdmFsdWUgMCAobWF0Y2gtYmVnaW5uaW5nIDAp KQotCQkJICAgICB2YWx1ZSkKKyAgICAgIChsZXQqICgodmFsdWUgKGRlY29kZS1jb2Rpbmctc3Ry aW5nIHZhbHVlICdtc3dpbmRvd3MtbXVsdGlieXRlKSkKKyAgICAgICAgICAgICAocG9zaXRpb24g KHBvc2l0aW9uID9ceDAwIHZhbHVlKSkpCisJKHJlcGxhY2UtaW4tc3RyaW5nIChzdWJzZXEgdmFs dWUgMCBwb3NpdGlvbikKIAkJCSAgICJcXChcclxuXFx8XG5cclxcKSIgIlxuIiB0KSkpKQogCiAo ZGVmdW4gc2VsZWN0LWNvbnZlcnQtZnJvbS1jZi11bmljb2RldGV4dCAoc2VsZWN0aW9uIHR5cGUg dmFsdWUpCiAgIChpZiAoZmluZC1jb2Rpbmctc3lzdGVtICdtc3dpbmRvd3MtdW5pY29kZSkKLSAg ICAgIChsZXQgKCh2YWx1ZSAoZGVjb2RlLWNvZGluZy1zdHJpbmcgdmFsdWUgJ21zd2luZG93cy11 bmljb2RlKSkpCi0JKHJlcGxhY2UtaW4tc3RyaW5nIChpZiAoc3RyaW5nLW1hdGNoICJcMCIgdmFs dWUpCi0JCQkgICAgICAgKHN1YnN0cmluZyB2YWx1ZSAwIChtYXRjaC1iZWdpbm5pbmcgMCkpCi0J CQkgICAgIHZhbHVlKQorICAgICAgKGxldCogKCh2YWx1ZSAoZGVjb2RlLWNvZGluZy1zdHJpbmcg dmFsdWUgJ21zd2luZG93cy11bmljb2RlKSkKKyAgICAgICAgICAgICAocG9zaXRpb24gKHBvc2l0 aW9uID9ceDAwIHZhbHVlKSkpCisJKHJlcGxhY2UtaW4tc3RyaW5nIChzdWJzZXEgdmFsdWUgMCBw b3NpdGlvbikKIAkJCSAgICJcXChcclxuXFx8XG5cclxcKSIgIlxuIiB0KSkpKQogCiAoZGVmdW4g c2VsZWN0LWNvbnZlcnQtdG8tY2YtdGV4dCAoc2VsZWN0aW9uIHR5cGUgdmFsdWUpCmRpZmYgLXIg MzFkZDI3NWZhNjgzIC1yIGJiZTQxNDY2MDNkYiBsaXNwL3NldHVwLXBhdGhzLmVsCi0tLSBhL2xp c3Avc2V0dXAtcGF0aHMuZWwJVHVlIE1hciAzMSAxODo0MjoyMSAyMDE1ICswMTAwCisrKyBiL2xp c3Avc2V0dXAtcGF0aHMuZWwJV2VkIEFwciAwMSAxNDoyODoyMCAyMDE1ICswMTAwCkBAIC0xMDcs NyArMTA3LDcgQEAKIAogICAgOzsgc2VhcmNoaW5nIGZvciBhIHBhY2thZ2UgZGlyZWN0b3J5CiAg ICAoYW5kCi0gICAgKHN0cmluZy1tYXRjaCAid2luMzIiIHN5c3RlbS1jb25maWd1cmF0aW9uKQor ICAgIChzZWFyY2ggIndpbjMyIiBzeXN0ZW0tY29uZmlndXJhdGlvbikKICAgICAocGF0aHMtZmls ZS1yZWFkYWJsZS1kaXJlY3RvcnktcCAocGF0aHMtY29uc3RydWN0LXBhdGggKGxpc3QgZGlyZWN0 b3J5CiAJCQkJCQkJCSAieGVtYWNzLXBhY2thZ2VzIikpKSkpKQogCmRpZmYgLXIgMzFkZDI3NWZh NjgzIC1yIGJiZTQxNDY2MDNkYiBsaXNwL3NvdW5kLmVsCi0tLSBhL2xpc3Avc291bmQuZWwJVHVl IE1hciAzMSAxODo0MjoyMSAyMDE1ICswMTAwCisrKyBiL2xpc3Avc291bmQuZWwJV2VkIEFwciAw MSAxNDoyODoyMCAyMDE1ICswMTAwCkBAIC0xNTksNyArMTU5LDcgQEAKIAkJICAgICAgKGlmIChm aWxlLW5hbWUtYWJzb2x1dGUtcCBmaWxlbmFtZSkKIAkJCSAgKGxpc3QgKGZpbGUtbmFtZS1kaXJl Y3RvcnkgZmlsZW5hbWUpKQogCQkJZGVmYXVsdC1zb3VuZC1kaXJlY3RvcnktbGlzdCkKLQkJICAg ICAgKHNwbGl0LXN0cmluZyBzb3VuZC1leHRlbnNpb24tbGlzdCAiOiIpKSkKKwkJICAgICAgKHNw bGl0LXN0cmluZy1ieS1jaGFyIHNvdW5kLWV4dGVuc2lvbi1saXN0ID86KSkpCiAJYnVmIGRhdGEp CiAgICAgKHVubGVzcyBmaWxlCiAgICAgICAoZXJyb3IgIkNvdWxkbid0IGxvYWQgc291bmQgZmls ZSAlcyIgZmlsZW5hbWUpKQpkaWZmIC1yIDMxZGQyNzVmYTY4MyAtciBiYmU0MTQ2NjAzZGIgbGlz cC9zdGFydHVwLmVsCi0tLSBhL2xpc3Avc3RhcnR1cC5lbAlUdWUgTWFyIDMxIDE4OjQyOjIxIDIw MTUgKzAxMDAKKysrIGIvbGlzcC9zdGFydHVwLmVsCVdlZCBBcHIgMDEgMTQ6Mjg6MjAgMjAxNSAr MDEwMApAQCAtMTMwMSw3ICsxMzAxLDcgQEAKICAgYCgKICAgICAgKGZhY2UgKGJsdWUgYm9sZCB1 bmRlcmxpbmUpCiAJICAgIlVzZWZ1bCBIZWxwLW1lbnUgZW50cmllczpcblxuIikKLSAgICAgLEAo aWYgKHN0cmluZy1tYXRjaCAiYmV0YSIgZW1hY3MtdmVyc2lvbikKKyAgICAgLEAoaWYgKHNlYXJj aCAiYmV0YSIgZW1hY3MtdmVyc2lvbikKIAkgICBgKChmYWNlIGJvbGQgIkJldGEgSW5mbzoiKQog CSAgICAgKGZhY2UgKHJlZCBib2xkKQogCQkgICAiICAgICAgICAgICAgICAgICAgICAgIFRoaXMg aXMgYW4gRXhwZXJpbWVudGFsIHZlcnNpb24gb2YgWEVtYWNzLlxuIikpCkBAIC0xMzQ5LDcgKzEz NDksNyBAQAogKGRlZnVuIHNwbGFzaC1zY3JlZW4tdHR5LWJvZHkgKCkKICAgYCgKICAgICAoZmFj ZSBpdGFsaWMgIltgQy0nIG1lYW5zIHRoZSBjb250cm9sIGtleSwgYE0tJyBtZWFucyB0aGUgbWV0 YSBrZXldXG5cbiIpCi0gICAgICxAKGlmIChzdHJpbmctbWF0Y2ggImJldGEiIGVtYWNzLXZlcnNp b24pCisgICAgICxAKGlmIChzZWFyY2ggImJldGEiIGVtYWNzLXZlcnNpb24pCiAJICAgYCgoa2V5 IGRlc2NyaWJlLWJldGEpCiAJICAgICAiOiAiIChmYWNlIChyZWQgYm9sZCkKIAkJCSJUaGlzIGlz IGFuIEV4cGVyaW1lbnRhbCB2ZXJzaW9uIG9mIFhFbWFjcy5cbiIpKQpkaWZmIC1yIDMxZGQyNzVm YTY4MyAtciBiYmU0MTQ2NjAzZGIgbGlzcC92ZXJzaW9uLmVsCi0tLSBhL2xpc3AvdmVyc2lvbi5l bAlUdWUgTWFyIDMxIDE4OjQyOjIxIDIwMTUgKzAxMDAKKysrIGIvbGlzcC92ZXJzaW9uLmVsCVdl ZCBBcHIgMDEgMTQ6Mjg6MjAgMjAxNSArMDEwMApAQCAtODksNyArODksNyBAQAogICAgIChsZXQg KCh2ZXJzaW9uLXN0cmluZwogCSAgIChmb3JtYXQKIAkgICAgIlhFbWFjcyAlcyAlcyglcyVzKSBv ZiAlcyAlcyBvbiAlcyIKLQkgICAgKHN1YnN0cmluZyBlbWFjcy12ZXJzaW9uIDAgKHN0cmluZy1t YXRjaCAiIFhFbWFjcyIgZW1hY3MtdmVyc2lvbikpCisJICAgIChzdWJzZXEgZW1hY3MtdmVyc2lv biAwIChzZWFyY2ggIiBYRW1hY3MiIGVtYWNzLXZlcnNpb24pKQogICAgICAgICAgICAgIltMdWNp ZF0gIgogCSAgICBzeXN0ZW0tY29uZmlndXJhdGlvbgogCSAgICAoY29uZCAoKG9yIChhbmQgKGZi b3VuZHAgJ2ZlYXR1cmVwKQpkaWZmIC1yIDMxZGQyNzVmYTY4MyAtciBiYmU0MTQ2NjAzZGIgbGlz cC94LWZvbnQtbWVudS5lbAotLS0gYS9saXNwL3gtZm9udC1tZW51LmVsCVR1ZSBNYXIgMzEgMTg6 NDI6MjEgMjAxNSArMDEwMAorKysgYi9saXNwL3gtZm9udC1tZW51LmVsCVdlZCBBcHIgMDEgMTQ6 Mjg6MjAgMjAxNSArMDEwMApAQCAtODUsMTcgKzg1LDE3IEBACiAgIDs7ICMjIyMgSXMgdGhpcyB1 c2VmdWwgaWYgbm90IGNvbmZpZ3VyZSdkIC0td2l0aC14ZnM/CiAgIDs7ICMjIyMgVGhpcyBpcyBk dXBsaWNhdGVkIGluIGd0ay1mb250LW1lbnUuZWwuCiAgICJGaWx0ZXIgdGhlIG91dHB1dCBvZiBg Zm9udC1pbnN0YW5jZS10cnVlbmFtZScgdG8gZGVhbCB3aXRoIGZvbnQgc2V0cy4iCi0gIChpZiAo c3RyaW5nLW1hdGNoICIsIiAoZm9udC1pbnN0YW5jZS10cnVlbmFtZSBmbikpCi0gICAgICAobGV0 ICgoZnBudCAobnRoIDggKHNwbGl0LXN0cmluZyAoZm9udC1pbnN0YW5jZS1uYW1lIGZuKSAiLSIp KSkKLQkgICAgKGZsaXN0IChzcGxpdC1zdHJpbmcgKGZvbnQtaW5zdGFuY2UtdHJ1ZW5hbWUgZm4p ICIsIikpCi0JICAgIHJldCkKLQkod2hpbGUgZmxpc3QKLQkgIChpZiAoc3RyaW5nLWVxdWFsIGZw bnQgKG50aCA4IChzcGxpdC1zdHJpbmcgKGNhciBmbGlzdCkgIi0iKSkpCi0JICAgICAgKHByb2du IChzZXRxIHJldCAoY2FyIGZsaXN0KSkgKHNldHEgZmxpc3QgbmlsKSkKLQkgICAgKHNldHEgZmxp c3QgKGNkciBmbGlzdCkpCi0JICAgICkpCi0JcmV0KQotICAgIChmb250LWluc3RhbmNlLXRydWVu YW1lIGZuKSkpCisgIChsZXQgKChmb250LWluc3RhbmNlLXRydWVuYW1lIChmb250LWluc3RhbmNl LXRydWVuYW1lIGZuKSkpCisgICAgKGlmIChmaW5kID8sIGZvbnQtaW5zdGFuY2UtdHJ1ZW5hbWUp CisgICAgICAgIChsZXQgKChmcG50IChudGggOCAoc3BsaXQtc3RyaW5nLWJ5LWNoYXIgKGZvbnQt aW5zdGFuY2UtbmFtZSBmbikgPy0pKSkKKyAgICAgICAgICAgICAgKGZsaXN0IChzcGxpdC1zdHJp bmctYnktY2hhciBmb250LWluc3RhbmNlLXRydWVuYW1lID8sKSkKKyAgICAgICAgICAgICAgcmV0 KQorICAgICAgICAgICh3aGlsZSBmbGlzdAorICAgICAgICAgICAgKGlmIChlcXVhbCBmcG50IChu dGggOCAoc3BsaXQtc3RyaW5nLWJ5LWNoYXIgKGNhciBmbGlzdCkgPy0pKSkKKyAgICAgICAgICAg ICAgICAocHJvZ24gKHNldHEgcmV0IChjYXIgZmxpc3QpKSAoc2V0cSBmbGlzdCBuaWwpKQorICAg ICAgICAgICAgICAoc2V0cSBmbGlzdCAoY2RyIGZsaXN0KSkpKQorICAgICAgICAgIHJldCkKKyAg ICAgIGZvbnQtaW5zdGFuY2UtdHJ1ZW5hbWUpKSkKIAogKGRlZnZhciB4LWZvbnQtcmVnZXhwLWFz Y2lpIG5pbAogICAiVGhpcyBpcyB1c2VkIHRvIGZpbHRlciBvdXQgZm9udCBmYW1pbGllcyB0aGF0 IGNhbid0IGRpc3BsYXkgQVNDSUkgdGV4dC4KQEAgLTE4Nyw3ICsxODcsNyBAQAogICAgIChkb2xp c3QgKG5hbWUgKGNvbmQgKChudWxsIGRlYnVnKQk7IGRlYnVnZ2luZyBrbHVkZ2UKIAkJCSAoZm9u dC1saXN0ICIqLSotKi0qLSotKi0qLSotKi0qLSotKi0qLSoiIGRldmljZQogCQkJCSAgICAgZm9u dC1tZW51LW1heC1udW1iZXIpKQotCQkJKChzdHJpbmdwIGRlYnVnKSAoc3BsaXQtc3RyaW5nIGRl YnVnICJcbiIpKQorCQkJKChzdHJpbmdwIGRlYnVnKSAoc3BsaXQtc3RyaW5nLWJ5LWNoYXIgZGVi dWcgP1xuKSkKIAkJCSh0IGRlYnVnKSkpCiAgICAgICAod2hlbiAoYW5kIChzdHJpbmctbWF0Y2gg eC1mb250LXJlZ2V4cC1hc2NpaSBuYW1lKQogCQkgKHN0cmluZy1tYXRjaCB4LWZvbnQtcmVnZXhw IG5hbWUpKQpkaWZmIC1yIDMxZGQyNzVmYTY4MyAtciBiYmU0MTQ2NjAzZGIgbGlzcC94LWluaXQu ZWwKLS0tIGEvbGlzcC94LWluaXQuZWwJVHVlIE1hciAzMSAxODo0MjoyMSAyMDE1ICswMTAwCisr KyBiL2xpc3AveC1pbml0LmVsCVdlZCBBcHIgMDEgMTQ6Mjg6MjAgMjAxNSArMDEwMApAQCAtMTQ3 LDcgKzE0Nyw3IEBACiAgIDs7IEFQSXMgdG8gaWRlbnRpZnkgdGhlIGtleWJvYXJkIC0gdGhvc2Ug b25seSB3b3JrIG9uIHRoZSBjb25zb2xlLgogICA7OyB4a2V5Y2FwcyBoYXMgdGhlIHNhbWUgcHJv YmxlbSB3aGVuIHJ1bm5pbmcgYHJlbW90ZWx5Jy4KICAgKGxldCAoKHZlbmRvciAoeC1zZXJ2ZXIt dmVuZG9yIGRldmljZSkpKQotICAgIChjb25kICgob3IgKHN0cmluZy1tYXRjaCAiU3VuIE1pY3Jv c3lzdGVtcyIgdmVuZG9yKQorICAgIChjb25kICgob3IgKHNlYXJjaCAiU3VuIE1pY3Jvc3lzdGVt cyIgdmVuZG9yKQogCSAgICAgICA7OyBNSVQgbG9zaW5nbHkgZmFpbHMgdG8gdGVsbCB1cyB3aGF0 IGhhcmR3YXJlIHRoZSBYIHNlcnZlcgogCSAgICAgICA7OyBpcyBtYW5hZ2luZywgc28gYXNzdW1l IGFsbCBNSVQgZGlzcGxheXMgYXJlIFN1bnMuLi4gIEhBIEhBIQogCSAgICAgICAoc3RyaW5nLWVx dWFsICJNSVQgWCBDb25zb3J0aXVtIiB2ZW5kb3IpCgoKLS0gCuKAmFRyYW1hZG9sIGlzIGZ1cnRo ZXIgZmVkIHRvIGNhdHRsZSBb4oCmXSB3aGVuIHdvcmtpbmcgdGhlbSBb4oCmXSAoYXMgZHJhZnQK YW5pbWFscykgc28gdGhhdCB0aGUgYW5pbWFscyBkbyBub3QgZ2V0IHRpcmVkIHF1aWNrbHkuIOKA puKAmQoJ4oCUIEFuZ2V3YW5kdGUgQ2hlbWllLCBTZXB0IDIwMTQsIGRlc2NyaWJpbmcgdGhlIHNv Y2lhbCBjb250ZXh0IG9mCgkoc3ludGhldGljKSB0cmFtYWRvbCBoYXZpbmcgYmVlbiBmb3VuZCBp biBDYW1lcm9vbiB0cmVlIHJvb3RzLgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KWEVtYWNzLVBhdGNoZXMgbWFpbGluZyBsaXN0ClhFbWFjcy1QYXRjaGVz QHhlbWFjcy5vcmcKaHR0cDovL2xpc3RzLnhlbWFjcy5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW1h Y3MtcGF0Y2hlcwo=