From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from inbox.vuxu.org (inbox.vuxu.org [IPv6:::1]) by inbox.vuxu.org (Postfix) with ESMTP id 52A2327BF8 for ; Tue, 2 Apr 2024 23:26:37 +0200 (CEST) Content-Type: multipart/mixed; boundary="===============0147347542232380650==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_=5BBETA=5D_sagemath=3A_update_to_10=2E4=2Ebeta0?= To: ml@inbox.vuxu.org From: tornaria Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Tue, 02 Apr 2024 23:26:37 +0200 List-Id: Message-Id: <20240402212637.52A2327BF8@inbox.vuxu.org> GitHub notification mails are now in MIME to allow UTF8. --===============0147347542232380650== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgdG9ybmFyaWEgYWdhaW5zdCBtYXN0 ZXIgb24gdGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29tL3Rv cm5hcmlhL3ZvaWQtcGFja2FnZXMgc2FnZW1hdGgKaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGlu dXgvdm9pZC1wYWNrYWdlcy9wdWxsLzQ5NTcxCgpbQkVUQV0gc2FnZW1hdGg6IHVwZGF0ZSB0byAx MC40LmJldGEwCjwhLS0gVW5jb21tZW50IHJlbGV2YW50IHNlY3Rpb25zIGFuZCBkZWxldGUgb3B0 aW9ucyB3aGljaCBhcmUgbm90IGFwcGxpY2FibGUgLS0+DQoNCi0gMTAuNC5iZXRhMDogSSdtIGlu Y2x1ZGluZyBwYXRjaGVzIGZvciBjeXRob24gbm9leGNlcHQgc3R1ZmYgZnJvbSBodHRwczovL2dp dGh1Yi5jb20vc2FnZW1hdGgvc2FnZS9wdWxsLzM3NjY3IHRoYXQgSSBleHBlY3Qgd2lsbCBiZSBt ZXJnZWQgaW4gYmV0YTEgb3IgYmV0YTIuIEZvciBjb252ZW5pZW5jZSBJIGFsc28gYWRkIHBhdGNo ZXMgZm9yIGN5dGhvbiAobWVyZ2VkLCBJIGV4cGVjdCBpdCB3aWxsIGJlIGluY2x1ZGVkIGluIDMu MC4xMCkgYW5kIG51bXB5IChtZXJnZWQsIEkgZXhwZWN0IGl0IHdpbGwgYmUgaW5jbHVkZWQgaW4g MS4yNi41KS4NCg0KQGRrd28gdHJhY2tpbmcgaGVyZSBzYWdlbWF0aCAxMC40IHByZXJlbGVhc2UN Cg0KIyMjIyBUZXN0aW5nIHRoZSBjaGFuZ2VzDQotIEkgdGVzdGVkIHRoZSBjaGFuZ2VzIGluIHRo aXMgUFI6ICoqYnJpZWZseSoqDQoNCjwhLS0NCiMjIyMgTmV3IHBhY2thZ2UNCi0gVGhpcyBuZXcg cGFja2FnZSBjb25mb3JtcyB0byB0aGUgW3BhY2thZ2UgcmVxdWlyZW1lbnRzXShodHRwczovL2dp dGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2Jsb2IvbWFzdGVyL0NPTlRSSUJVVElO Ry5tZCNwYWNrYWdlLXJlcXVpcmVtZW50cyk6ICoqWUVTKip8KipOTyoqDQotLT4NCg0KPCEtLSBO b3RlOiBJZiB0aGUgYnVpbGQgaXMgbGlrZWx5IHRvIHRha2UgbW9yZSB0aGFuIDIgaG91cnMsIHBs ZWFzZSBhZGQgY2kgc2tpcCB0YWcgYXMgZGVzY3JpYmVkIGluDQpodHRwczovL2dpdGh1Yi5jb20v dm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2Jsb2IvbWFzdGVyL0NPTlRSSUJVVElORy5tZCNjb250 aW51b3VzLWludGVncmF0aW9uDQphbmQgdGVzdCBhdCBsZWFzdCBvbmUgbmF0aXZlIGJ1aWxkIGFu ZCwgaWYgc3VwcG9ydGVkLCBhdCBsZWFzdCBvbmUgY3Jvc3MgYnVpbGQuDQpJZ25vcmUgdGhpcyBz ZWN0aW9uIGlmIHRoaXMgUFIgaXMgbm90IHNraXBwaW5nIENJLg0KLS0+DQo8IS0tDQojIyMjIExv Y2FsIGJ1aWxkIHRlc3RpbmcNCi0gSSBidWlsdCB0aGlzIFBSIGxvY2FsbHkgZm9yIG15IG5hdGl2 ZSBhcmNoaXRlY3R1cmUsIChBUkNILUxJQkMpDQotIEkgYnVpbHQgdGhpcyBQUiBsb2NhbGx5IGZv ciB0aGVzZSBhcmNoaXRlY3R1cmVzIChpZiBzdXBwb3J0ZWQuIG1hcmsgY3Jvc3NidWlsZHMpOg0K ICAtIGFhcmNoNjQtbXVzbA0KICAtIGFybXY3bA0KICAtIGFybXY2bC1tdXNsDQotLT4NCgoKQSBw YXRjaCBmaWxlIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdl cy9wdWxsLzQ5NTcxLnBhdGNoIGlzIGF0dGFjaGVk --===============0147347542232380650== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-sagemath-49571.patch" RnJvbSA2MDM2MTRiMTY3ZjA2NmNkMTg4MGE1ZmE0ZGM0MmU4NTk3ZTg3Njk4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/R29uemFsbz0yMFRvcm5hcj1DMz1BRGE/PSA8 dG9ybmFyaWFAY21hdC5lZHUudXk+CkRhdGU6IE1vbiwgMTEgTWFyIDIwMjQgMjA6NTk6MTUgLTAz MDAKU3ViamVjdDogW1BBVENIIDEvNF0gcHl0aG9uMy1udW1weTogYWRkIG1pc3Npbmcgbm9leGNl cHQgY2xhdXNlcwoKLS0tCiAuLi4yMjAyMWY5OTE3ZDZjNWFkNzdkYTliMjk1MTljN2MyMjEwNmMu cGF0Y2ggfCAxNTEgKysrKysrKysrKysrKysrKysrCiBzcmNwa2dzL3B5dGhvbjMtbnVtcHkvdGVt cGxhdGUgICAgICAgICAgICAgICAgfCAgIDIgKy0KIDIgZmlsZXMgY2hhbmdlZCwgMTUyIGluc2Vy dGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3B5dGhv bjMtbnVtcHkvcGF0Y2hlcy9taXNzaW5nX25vZXhjZXB0LTliMjcyMjAyMWY5OTE3ZDZjNWFkNzdk YTliMjk1MTljN2MyMjEwNmMucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3B5dGhvbjMtbnVt cHkvcGF0Y2hlcy9taXNzaW5nX25vZXhjZXB0LTliMjcyMjAyMWY5OTE3ZDZjNWFkNzdkYTliMjk1 MTljN2MyMjEwNmMucGF0Y2ggYi9zcmNwa2dzL3B5dGhvbjMtbnVtcHkvcGF0Y2hlcy9taXNzaW5n X25vZXhjZXB0LTliMjcyMjAyMWY5OTE3ZDZjNWFkNzdkYTliMjk1MTljN2MyMjEwNmMucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAuLmE2ZjgwNmJiYTMxYjU1 Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9weXRob24zLW51bXB5L3BhdGNoZXMvbWlzc2lu Z19ub2V4Y2VwdC05YjI3MjIwMjFmOTkxN2Q2YzVhZDc3ZGE5YjI5NTE5YzdjMjIxMDZjLnBhdGNo CkBAIC0wLDAgKzEsMTUxIEBACitTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9udW1weS9udW1weS9w dWxsLzI2MTI5CisKK0Zyb20gOWIyNzIyMDIxZjk5MTdkNmM1YWQ3N2RhOWIyOTUxOWM3YzIyMTA2 YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/cT9Hb256YWxvPTIwVG9y bmFyPUMzPUFEYT89IDx0b3JuYXJpYUBjbWF0LmVkdS51eT4KK0RhdGU6IE1vbiwgMTEgTWFyIDIw MjQgMDg6NTI6NTYgLTAzMDAKK1N1YmplY3Q6IFtQQVRDSF0gTUFJTlQ6IGFkZCBtaXNzaW5nIG5v ZXhjZXB0IGNsYXVzZXMgKDEvMikKKworQWZ0ZXIgaHR0cHM6Ly9naXRodWIuY29tL2N5dGhvbi9j eXRob24vcHVsbC82MDg3IGl0J3MgbXVjaCBlYXNpZXIgdG8KK2ZpZ3VyZSBvdXQgdGhlIG1pc3Np bmcgbm9leGNlcHQgY2xhdXNlcy4gSW5kZWVkLCBjeXRob24gdXAgdG8gMy4wLjkgaGFzCithIHdh cm5pbmcgdGhhdCBnaXZlcyBsb3RzIG9mIGZhbHNlIHBvc2l0aXZlcywgYnV0IHdpdGggdGhlIFBS IGFib3ZlCisoYWxyZWFkeSBtZXJnZWQgaW4gY3l0aG9uIG1hc3RlciBhbmQgYmFja3BvcnRlZCB0 byAzLjAueCkgYWxsIHRoZQord2FybmluZ3MgYXJlIGluZGVlZCBjYXNlcyBvZiBtaXNzaW5nIG5v ZXhjZXB0CisKK1RvIHRlc3QgdXNlIHRoaXMgZmlsZSBgdGVzdF9jaW1wb3J0LnB5eGA6CitgYGAK KyMgY3l0aG9uOiBsYW5ndWFnZV9sZXZlbD0zCitjaW1wb3J0IG51bXB5CitjaW1wb3J0IG51bXB5 LnJhbmRvbQorY2ltcG9ydCBudW1weS5yYW5kb20uX2JvdW5kZWRfaW50ZWdlcnMKK2NpbXBvcnQg bnVtcHkucmFuZG9tLl9jb21tb24KK2NpbXBvcnQgbnVtcHkucmFuZG9tLmJpdF9nZW5lcmF0b3IK K2NpbXBvcnQgbnVtcHkucmFuZG9tLmNfZGlzdHJpYnV0aW9ucworYGBgCithbmQgYnVpbGQgd2l0 aCBgY3l0aG9uIC1YIGxlZ2FjeV9pbXBsaWNpdF9ub2V4Y2VwdD1UcnVlIHRlc3RfY2ltcG9ydC5w eXhgCisKK1RoaXMgY29tbWl0IGFwcGxpZXMgY2xlYW5seSB0byB0aGUgMS4yNi54IGJyYW5jaCBh bmQgaXMgbWVhbnQgdG8KK2JhY2twb3J0LiBUaGUgbmV4dCBjb21taXQgZml4ZXMgdGhlIHJlbWFp bmluZyBpbnN0YW5jZXMuCistLS0KKyBudW1weS9fX2luaXRfXy5jeXRob24tMzAucHhkICAgICAg ICAgIHwgMjQgKysrKysrKysrKysrLS0tLS0tLS0tLS0tCisgbnVtcHkvcmFuZG9tL19ib3VuZGVk X2ludGVnZXJzLnB4ZC5pbiB8ICAyICstCisgMiBmaWxlcyBjaGFuZ2VkLCAxMyBpbnNlcnRpb25z KCspLCAxMyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL251bXB5L19faW5pdF9fLmN5dGhv bi0zMC5weGQgYi9udW1weS9fX2luaXRfXy5jeXRob24tMzAucHhkCitpbmRleCA3NDRhNTA5NTZi NTYuLmYwYTJmN2ViNmY4NCAxMDA2NDQKKy0tLSBhL251bXB5L19faW5pdF9fLmN5dGhvbi0zMC5w eGQKKysrKyBiL251bXB5L19faW5pdF9fLmN5dGhvbi0zMC5weGQKK0BAIC0zNjMsNyArMzYzLDcg QEAgY2RlZiBleHRlcm4gZnJvbSAibnVtcHkvYXJyYXlvYmplY3QuaCI6CisgICAgICAgICAjIElu c3RlYWQsIHdlIHVzZSBwcm9wZXJ0aWVzIHRoYXQgbWFwIHRvIHRoZSBjb3JyZXNwb25kaW5nIEMt QVBJIGZ1bmN0aW9ucy4KKyAKKyAgICAgICAgIEBwcm9wZXJ0eQorLSAgICAgICAgY2RlZiBpbmxp bmUgUHlPYmplY3QqIGJhc2Uoc2VsZikgbm9naWw6CisrICAgICAgICBjZGVmIGlubGluZSBQeU9i amVjdCogYmFzZShzZWxmKSBub2V4Y2VwdCBub2dpbDoKKyAgICAgICAgICAgICAiIiJSZXR1cm5z IGEgYm9ycm93ZWQgcmVmZXJlbmNlIHRvIHRoZSBvYmplY3Qgb3duaW5nIHRoZSBkYXRhL21lbW9y eS4KKyAgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgICByZXR1cm4gUHlBcnJheV9CQVNFKHNl bGYpCitAQCAtMzc1LDEzICszNzUsMTMgQEAgY2RlZiBleHRlcm4gZnJvbSAibnVtcHkvYXJyYXlv YmplY3QuaCI6CisgICAgICAgICAgICAgcmV0dXJuIDxkdHlwZT5QeUFycmF5X0RFU0NSKHNlbGYp CisgCisgICAgICAgICBAcHJvcGVydHkKKy0gICAgICAgIGNkZWYgaW5saW5lIGludCBuZGltKHNl bGYpIG5vZ2lsOgorKyAgICAgICAgY2RlZiBpbmxpbmUgaW50IG5kaW0oc2VsZikgbm9leGNlcHQg bm9naWw6CisgICAgICAgICAgICAgIiIiUmV0dXJucyB0aGUgbnVtYmVyIG9mIGRpbWVuc2lvbnMg aW4gdGhlIGFycmF5LgorICAgICAgICAgICAgICIiIgorICAgICAgICAgICAgIHJldHVybiBQeUFy cmF5X05ESU0oc2VsZikKKyAKKyAgICAgICAgIEBwcm9wZXJ0eQorLSAgICAgICAgY2RlZiBpbmxp bmUgbnB5X2ludHAgKnNoYXBlKHNlbGYpIG5vZ2lsOgorKyAgICAgICAgY2RlZiBpbmxpbmUgbnB5 X2ludHAgKnNoYXBlKHNlbGYpIG5vZXhjZXB0IG5vZ2lsOgorICAgICAgICAgICAgICIiIlJldHVy bnMgYSBwb2ludGVyIHRvIHRoZSBkaW1lbnNpb25zL3NoYXBlIG9mIHRoZSBhcnJheS4KKyAgICAg ICAgICAgICBUaGUgbnVtYmVyIG9mIGVsZW1lbnRzIG1hdGNoZXMgdGhlIG51bWJlciBvZiBkaW1l bnNpb25zIG9mIHRoZSBhcnJheSAobmRpbSkuCisgICAgICAgICAgICAgQ2FuIHJldHVybiBOVUxM IGZvciAwLWRpbWVuc2lvbmFsIGFycmF5cy4KK0BAIC0zODksMjAgKzM4OSwyMCBAQCBjZGVmIGV4 dGVybiBmcm9tICJudW1weS9hcnJheW9iamVjdC5oIjoKKyAgICAgICAgICAgICByZXR1cm4gUHlB cnJheV9ESU1TKHNlbGYpCisgCisgICAgICAgICBAcHJvcGVydHkKKy0gICAgICAgIGNkZWYgaW5s aW5lIG5weV9pbnRwICpzdHJpZGVzKHNlbGYpIG5vZ2lsOgorKyAgICAgICAgY2RlZiBpbmxpbmUg bnB5X2ludHAgKnN0cmlkZXMoc2VsZikgbm9leGNlcHQgbm9naWw6CisgICAgICAgICAgICAgIiIi UmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIHN0cmlkZXMgb2YgdGhlIGFycmF5LgorICAgICAgICAg ICAgIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgbWF0Y2hlcyB0aGUgbnVtYmVyIG9mIGRpbWVuc2lv bnMgb2YgdGhlIGFycmF5IChuZGltKS4KKyAgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgICBy ZXR1cm4gUHlBcnJheV9TVFJJREVTKHNlbGYpCisgCisgICAgICAgICBAcHJvcGVydHkKKy0gICAg ICAgIGNkZWYgaW5saW5lIG5weV9pbnRwIHNpemUoc2VsZikgbm9naWw6CisrICAgICAgICBjZGVm IGlubGluZSBucHlfaW50cCBzaXplKHNlbGYpIG5vZXhjZXB0IG5vZ2lsOgorICAgICAgICAgICAg ICIiIlJldHVybnMgdGhlIHRvdGFsIHNpemUgKGluIG51bWJlciBvZiBlbGVtZW50cykgb2YgdGhl IGFycmF5LgorICAgICAgICAgICAgICIiIgorICAgICAgICAgICAgIHJldHVybiBQeUFycmF5X1NJ WkUoc2VsZikKKyAKKyAgICAgICAgIEBwcm9wZXJ0eQorLSAgICAgICAgY2RlZiBpbmxpbmUgY2hh ciogZGF0YShzZWxmKSBub2dpbDoKKysgICAgICAgIGNkZWYgaW5saW5lIGNoYXIqIGRhdGEoc2Vs Zikgbm9leGNlcHQgbm9naWw6CisgICAgICAgICAgICAgIiIiVGhlIHBvaW50ZXIgdG8gdGhlIGRh dGEgYnVmZmVyIGFzIGEgY2hhciouCisgICAgICAgICAgICAgVGhpcyBpcyBwcm92aWRlZCBmb3Ig bGVnYWN5IHJlYXNvbnMgdG8gYXZvaWQgZGlyZWN0IHN0cnVjdCBmaWVsZCBhY2Nlc3MuCisgICAg ICAgICAgICAgRm9yIG5ldyBjb2RlIHRoYXQgbmVlZHMgdGhpcyBhY2Nlc3MsIHlvdSBwcm9iYWJs eSB3YW50IHRvIGNhc3QgdGhlIHJlc3VsdAorQEAgLTEwMDcsNyArMTAwNyw3IEBAIGNkZWYgZXh0 ZXJuIGZyb20gIm51bXB5L3VmdW5jb2JqZWN0LmgiOgorIAorICAgICBpbnQgX2ltcG9ydF91bWF0 aCgpIGV4Y2VwdCAtMQorIAorLWNkZWYgaW5saW5lIHZvaWQgc2V0X2FycmF5X2Jhc2UobmRhcnJh eSBhcnIsIG9iamVjdCBiYXNlKToKKytjZGVmIGlubGluZSB2b2lkIHNldF9hcnJheV9iYXNlKG5k YXJyYXkgYXJyLCBvYmplY3QgYmFzZSkgZXhjZXB0ICo6CisgICAgIFB5X0lOQ1JFRihiYXNlKSAj IGltcG9ydGFudCB0byBkbyB0aGlzIGJlZm9yZSBzdGVhbGluZyB0aGUgcmVmZXJlbmNlIGJlbG93 IQorICAgICBQeUFycmF5X1NldEJhc2VPYmplY3QoYXJyLCBiYXNlKQorIAorQEAgLTEwMzgsNyAr MTAzOCw3IEBAIGNkZWYgaW5saW5lIGludCBpbXBvcnRfdWZ1bmMoKSBleGNlcHQgLTE6CisgICAg ICAgICByYWlzZSBJbXBvcnRFcnJvcigibnVtcHkuX2NvcmUudW1hdGggZmFpbGVkIHRvIGltcG9y dCIpCisgCisgCistY2RlZiBpbmxpbmUgYmludCBpc190aW1lZGVsdGE2NF9vYmplY3Qob2JqZWN0 IG9iaik6CisrY2RlZiBpbmxpbmUgYmludCBpc190aW1lZGVsdGE2NF9vYmplY3Qob2JqZWN0IG9i aikgbm9leGNlcHQ6CisgICAgICIiIgorICAgICBDeXRob24gZXF1aXZhbGVudCBvZiBgaXNpbnN0 YW5jZShvYmosIG5wLnRpbWVkZWx0YTY0KWAKKyAKK0BAIC0xMDUzLDcgKzEwNTMsNyBAQCBjZGVm IGlubGluZSBiaW50IGlzX3RpbWVkZWx0YTY0X29iamVjdChvYmplY3Qgb2JqKToKKyAgICAgcmV0 dXJuIFB5T2JqZWN0X1R5cGVDaGVjayhvYmosICZQeVRpbWVkZWx0YUFyclR5cGVfVHlwZSkKKyAK KyAKKy1jZGVmIGlubGluZSBiaW50IGlzX2RhdGV0aW1lNjRfb2JqZWN0KG9iamVjdCBvYmopOgor K2NkZWYgaW5saW5lIGJpbnQgaXNfZGF0ZXRpbWU2NF9vYmplY3Qob2JqZWN0IG9iaikgbm9leGNl cHQ6CisgICAgICIiIgorICAgICBDeXRob24gZXF1aXZhbGVudCBvZiBgaXNpbnN0YW5jZShvYmos IG5wLmRhdGV0aW1lNjQpYAorIAorQEAgLTEwNjgsNyArMTA2OCw3IEBAIGNkZWYgaW5saW5lIGJp bnQgaXNfZGF0ZXRpbWU2NF9vYmplY3Qob2JqZWN0IG9iaik6CisgICAgIHJldHVybiBQeU9iamVj dF9UeXBlQ2hlY2sob2JqLCAmUHlEYXRldGltZUFyclR5cGVfVHlwZSkKKyAKKyAKKy1jZGVmIGlu bGluZSBucHlfZGF0ZXRpbWUgZ2V0X2RhdGV0aW1lNjRfdmFsdWUob2JqZWN0IG9iaikgbm9naWw6 CisrY2RlZiBpbmxpbmUgbnB5X2RhdGV0aW1lIGdldF9kYXRldGltZTY0X3ZhbHVlKG9iamVjdCBv YmopIG5vZXhjZXB0IG5vZ2lsOgorICAgICAiIiIKKyAgICAgcmV0dXJucyB0aGUgaW50NjQgdmFs dWUgdW5kZXJseWluZyBzY2FsYXIgbnVtcHkgZGF0ZXRpbWU2NCBvYmplY3QKKyAKK0BAIC0xMDc4 LDE0ICsxMDc4LDE0IEBAIGNkZWYgaW5saW5lIG5weV9kYXRldGltZSBnZXRfZGF0ZXRpbWU2NF92 YWx1ZShvYmplY3Qgb2JqKSBub2dpbDoKKyAgICAgcmV0dXJuICg8UHlEYXRldGltZVNjYWxhck9i amVjdCo+b2JqKS5vYnZhbAorIAorIAorLWNkZWYgaW5saW5lIG5weV90aW1lZGVsdGEgZ2V0X3Rp bWVkZWx0YTY0X3ZhbHVlKG9iamVjdCBvYmopIG5vZ2lsOgorK2NkZWYgaW5saW5lIG5weV90aW1l ZGVsdGEgZ2V0X3RpbWVkZWx0YTY0X3ZhbHVlKG9iamVjdCBvYmopIG5vZXhjZXB0IG5vZ2lsOgor ICAgICAiIiIKKyAgICAgcmV0dXJucyB0aGUgaW50NjQgdmFsdWUgdW5kZXJseWluZyBzY2FsYXIg bnVtcHkgdGltZWRlbHRhNjQgb2JqZWN0CisgICAgICIiIgorICAgICByZXR1cm4gKDxQeVRpbWVk ZWx0YVNjYWxhck9iamVjdCo+b2JqKS5vYnZhbAorIAorIAorLWNkZWYgaW5saW5lIE5QWV9EQVRF VElNRVVOSVQgZ2V0X2RhdGV0aW1lNjRfdW5pdChvYmplY3Qgb2JqKSBub2dpbDoKKytjZGVmIGlu bGluZSBOUFlfREFURVRJTUVVTklUIGdldF9kYXRldGltZTY0X3VuaXQob2JqZWN0IG9iaikgbm9l eGNlcHQgbm9naWw6CisgICAgICIiIgorICAgICByZXR1cm5zIHRoZSB1bml0IHBhcnQgb2YgdGhl IGR0eXBlIGZvciBhIG51bXB5IGRhdGV0aW1lNjQgb2JqZWN0LgorICAgICAiIiIKK2RpZmYgLS1n aXQgYS9udW1weS9yYW5kb20vX2JvdW5kZWRfaW50ZWdlcnMucHhkLmluIGIvbnVtcHkvcmFuZG9t L19ib3VuZGVkX2ludGVnZXJzLnB4ZC5pbgoraW5kZXggNWFlNWE4MDY3MTVjLi5iZGNiMzJhN2Uy MTIgMTAwNjQ0CistLS0gYS9udW1weS9yYW5kb20vX2JvdW5kZWRfaW50ZWdlcnMucHhkLmluCisr KysgYi9udW1weS9yYW5kb20vX2JvdW5kZWRfaW50ZWdlcnMucHhkLmluCitAQCAtNiw3ICs2LDcg QEAgY3R5cGVkZWYgbnAubnB5X2Jvb2wgYm9vbF90CisgCisgZnJvbSBudW1weS5yYW5kb20gY2lt cG9ydCBiaXRnZW5fdAorIAorLWNkZWYgaW5saW5lIHVpbnQ2NF90IF9nZW5fbWFzayh1aW50NjRf dCBtYXhfdmFsKSBub2dpbDoKKytjZGVmIGlubGluZSB1aW50NjRfdCBfZ2VuX21hc2sodWludDY0 X3QgbWF4X3ZhbCkgbm9leGNlcHQgbm9naWw6CisgICAgICIiIk1hc2sgZ2VuZXJhdG9yIGZvciB1 c2UgaW4gYm91bmRlZCByYW5kb20gbnVtYmVycyIiIgorICAgICAjIFNtYWxsZXN0IGJpdCBtYXNr ID49IG1heAorICAgICBjZGVmIHVpbnQ2NF90IG1hc2sgPSBtYXhfdmFsCmRpZmYgLS1naXQgYS9z cmNwa2dzL3B5dGhvbjMtbnVtcHkvdGVtcGxhdGUgYi9zcmNwa2dzL3B5dGhvbjMtbnVtcHkvdGVt cGxhdGUKaW5kZXggZTZiNmFjY2I0MmFiNGEuLmE1MjhlMGQ0YTc2ODNmIDEwMDY0NAotLS0gYS9z cmNwa2dzL3B5dGhvbjMtbnVtcHkvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9weXRob24zLW51bXB5 L3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncHl0aG9uMy1u dW1weScKIHBrZ25hbWU9cHl0aG9uMy1udW1weQogdmVyc2lvbj0xLjI2LjQKLXJldmlzaW9uPTEK K3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPXB5dGhvbjMtcGVwNTE3CiBidWlsZF9oZWxwZXI9Im1l c29uIHFlbXUiCiBtYWtlX2J1aWxkX2FyZ3M9Ii1Dc2V0dXAtYXJncz0tRGRpc2FibGUtc3ZtbD10 cnVlCgpGcm9tIGVhNjU4NjBkNTE3MWM2ODAyYWY4NDI4N2I0NWE5NWRhNWRkYTlmYzQgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9Hb256YWxvPTIwVG9ybmFyPUMzPUFE YT89IDx0b3JuYXJpYUBjbWF0LmVkdS51eT4KRGF0ZTogTW9uLCAxMSBNYXIgMjAyNCAyMzo1Njoz MiAtMDMwMApTdWJqZWN0OiBbUEFUQ0ggMi80XSBzYWdlbWF0aDogYWRqdXN0IG5vZXhjZXB0IGNs YXVzZXMKCi0tLQogLi4uL3BhdGNoZXMvMDM3NjY3LWZpeF9ub2V4Y2VwdC5wYXRjaCAgICAgICAg IHwgMzk2NjAgKysrKysrKysrKysrKysrKwogLi4uL3BhdGNoZXMvMzc0OTItc2luZ3VsYXJfNC4z LjJwMTYucGF0Y2ggICAgIHwgICAgMTQgKy0KIHNyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hlcy9nZXRf cGF0Y2hlcyAgICAgICAgICB8ICAgICAxICsKIDMgZmlsZXMgY2hhbmdlZCwgMzk2NjggaW5zZXJ0 aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3NhZ2Vt YXRoL3BhdGNoZXMvMDM3NjY3LWZpeF9ub2V4Y2VwdC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3Br Z3Mvc2FnZW1hdGgvcGF0Y2hlcy8wMzc2NjctZml4X25vZXhjZXB0LnBhdGNoIGIvc3JjcGtncy9z YWdlbWF0aC9wYXRjaGVzLzAzNzY2Ny1maXhfbm9leGNlcHQucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAuLmZhNTA4NmVkNmJlMmE0Ci0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9zYWdlbWF0aC9wYXRjaGVzLzAzNzY2Ny1maXhfbm9leGNlcHQucGF0Y2gK QEAgLTAsMCArMSwzOTY2MCBAQAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2FsZ2VicmFzL2NsaWZm b3JkX2FsZ2VicmFfZWxlbWVudC5weGQgYi9zcmMvc2FnZS9hbGdlYnJhcy9jbGlmZm9yZF9hbGdl YnJhX2VsZW1lbnQucHhkCitpbmRleCBiZTA4ZTA2ZjkyMi4uMTRkNWE3YTYyNWMgMTAwNjQ0Cist LS0gYS9zcmMvc2FnZS9hbGdlYnJhcy9jbGlmZm9yZF9hbGdlYnJhX2VsZW1lbnQucHhkCisrKysg Yi9zcmMvc2FnZS9hbGdlYnJhcy9jbGlmZm9yZF9hbGdlYnJhX2VsZW1lbnQucHhkCitAQCAtNSw4 ICs1LDggQEAgZnJvbSBzYWdlLm1vZHVsZXMud2l0aF9iYXNpcy5pbmRleGVkX2VsZW1lbnQgY2lt cG9ydCBJbmRleGVkRnJlZU1vZHVsZUVsZW1lbnQKKyBmcm9tIHNhZ2UuZGF0YV9zdHJ1Y3R1cmVz LmJpdHNldCBjaW1wb3J0IEZyb3plbkJpdHNldAorIAorIGNkZWYgY2xhc3MgQ2xpZmZvcmRBbGdl YnJhRWxlbWVudChJbmRleGVkRnJlZU1vZHVsZUVsZW1lbnQpOgorLSAgICBjZGVmIENsaWZmb3Jk QWxnZWJyYUVsZW1lbnQgX211bF9zZWxmX3Rlcm0oc2VsZiwgRnJvemVuQml0c2V0IHN1cHAsIGNv ZWZmKSBub2V4Y2VwdAorLSAgICBjZGVmIENsaWZmb3JkQWxnZWJyYUVsZW1lbnQgX211bF90ZXJt X3NlbGYoc2VsZiwgRnJvemVuQml0c2V0IHN1cHAsIGNvZWZmKSBub2V4Y2VwdAorKyAgICBjZGVm IENsaWZmb3JkQWxnZWJyYUVsZW1lbnQgX211bF9zZWxmX3Rlcm0oc2VsZiwgRnJvemVuQml0c2V0 IHN1cHAsIGNvZWZmKQorKyAgICBjZGVmIENsaWZmb3JkQWxnZWJyYUVsZW1lbnQgX211bF90ZXJt X3NlbGYoc2VsZiwgRnJvemVuQml0c2V0IHN1cHAsIGNvZWZmKQorIAorIGNkZWYgY2xhc3MgRXh0 ZXJpb3JBbGdlYnJhRWxlbWVudChDbGlmZm9yZEFsZ2VicmFFbGVtZW50KToKKyAgICAgcGFzcwor ZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2FsZ2VicmFzL2NsaWZmb3JkX2FsZ2VicmFfZWxlbWVudC5w eXggYi9zcmMvc2FnZS9hbGdlYnJhcy9jbGlmZm9yZF9hbGdlYnJhX2VsZW1lbnQucHl4CitpbmRl eCA1NzE5ZjhmOWY1Yy4uNTJiOTk0ZjQ4YWYgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9hbGdlYnJh cy9jbGlmZm9yZF9hbGdlYnJhX2VsZW1lbnQucHl4CisrKysgYi9zcmMvc2FnZS9hbGdlYnJhcy9j bGlmZm9yZF9hbGdlYnJhX2VsZW1lbnQucHl4CitAQCAtNjUsNyArNjUsNyBAQCBjZGVmIGNsYXNz IENsaWZmb3JkQWxnZWJyYUVsZW1lbnQoSW5kZXhlZEZyZWVNb2R1bGVFbGVtZW50KToKKyAgICAg ICAgICIiIgorICAgICAgICAgcmV0dXJuIHJlcHJfZnJvbV9tb25vbWlhbHMoc2VsZi5saXN0KCks IHNlbGYuX3BhcmVudC5fbGF0ZXhfdGVybSwgVHJ1ZSkKKyAKKy0gICAgY2RlZiBfbXVsXyhzZWxm LCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNkZWYgX211bF8oc2VsZiwgb3RoZXIpOgorICAgICAg ICAgIiIiCisgICAgICAgICBSZXR1cm4gYGBzZWxmYGAgbXVsdGlwbGllZCBieSBgYG90aGVyYGAu CisgCitAQCAtMTc2LDcgKzE3Niw3IEBAIGNkZWYgY2xhc3MgQ2xpZmZvcmRBbGdlYnJhRWxlbWVu dChJbmRleGVkRnJlZU1vZHVsZUVsZW1lbnQpOgorIAorICAgICAgICAgcmV0dXJuIHNlbGYuX19j bGFzc19fKHNlbGYucGFyZW50KCksIGQpCisgCistICAgIGNkZWYgQ2xpZmZvcmRBbGdlYnJhRWxl bWVudCBfbXVsX3NlbGZfdGVybShzZWxmLCBGcm96ZW5CaXRzZXQgc3VwcCwgY29lZmYpIG5vZXhj ZXB0OgorKyAgICBjZGVmIENsaWZmb3JkQWxnZWJyYUVsZW1lbnQgX211bF9zZWxmX3Rlcm0oc2Vs ZiwgRnJvemVuQml0c2V0IHN1cHAsIGNvZWZmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIE11 bHRpcGx5IGBgc2VsZiAqIHRlcm1gYCB3aXRoIHRoZSBgYHRlcm1gYCBoYXZpbmcgc3VwcG9ydCBg YHN1cHBgYAorICAgICAgICAgYW5kIGNvZWZmaWNpZW50IGBgY29lZmZgYC4KK0BAIC0yMjQsNyAr MjI0LDcgQEAgY2RlZiBjbGFzcyBDbGlmZm9yZEFsZ2VicmFFbGVtZW50KEluZGV4ZWRGcmVlTW9k dWxlRWxlbWVudCk6CisgCisgICAgICAgICByZXR1cm4gdHlwZShzZWxmKShzZWxmLl9wYXJlbnQs IHtzdXBwOiBjb2VmZn0pICogc2VsZgorIAorLSAgICBjZGVmIENsaWZmb3JkQWxnZWJyYUVsZW1l bnQgX211bF90ZXJtX3NlbGYoc2VsZiwgRnJvemVuQml0c2V0IHN1cHAsIGNvZWZmKSBub2V4Y2Vw dDoKKysgICAgY2RlZiBDbGlmZm9yZEFsZ2VicmFFbGVtZW50IF9tdWxfdGVybV9zZWxmKHNlbGYs IEZyb3plbkJpdHNldCBzdXBwLCBjb2VmZik6CisgICAgICAgICByIiIiCisgICAgICAgICBNdWx0 aXBseSBgYHRlcm0gKiBzZWxmYGAgd2l0aCB0aGUgYGB0ZXJtYGAgaGF2aW5nIHN1cHBvcnQgYGBz dXBwYGAKKyAgICAgICAgIGFuZCBjb2VmZmljaWVudCBgYGNvZWZmYGAuCitAQCAtNDAwLDcgKzQw MCw3IEBAIGNkZWYgY2xhc3MgRXh0ZXJpb3JBbGdlYnJhRWxlbWVudChDbGlmZm9yZEFsZ2VicmFF bGVtZW50KToKKyAgICAgIiIiCisgICAgIEFuIGVsZW1lbnQgb2YgYW4gZXh0ZXJpb3IgYWxnZWJy YS4KKyAgICAgIiIiCistICAgIGNkZWYgX211bF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0OgorKyAg ICBjZGVmIF9tdWxfKHNlbGYsIG90aGVyKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJu IGBgc2VsZmBgIG11bHRpcGxpZWQgYnkgYGBvdGhlcmBgLgorIAorQEAgLTUyMCw3ICs1MjAsNyBA QCBjZGVmIGNsYXNzIEV4dGVyaW9yQWxnZWJyYUVsZW1lbnQoQ2xpZmZvcmRBbGdlYnJhRWxlbWVu dCk6CisgCisgICAgICAgICByZXR1cm4gc2VsZi5fX2NsYXNzX18oUCwgZCkKKyAKKy0gICAgY2Rl ZiBDbGlmZm9yZEFsZ2VicmFFbGVtZW50IF9tdWxfc2VsZl90ZXJtKHNlbGYsIEZyb3plbkJpdHNl dCBzdXBwLCBjb2VmZikgbm9leGNlcHQ6CisrICAgIGNkZWYgQ2xpZmZvcmRBbGdlYnJhRWxlbWVu dCBfbXVsX3NlbGZfdGVybShzZWxmLCBGcm96ZW5CaXRzZXQgc3VwcCwgY29lZmYpOgorICAgICAg ICAgciIiIgorICAgICAgICAgTXVsdGlwbHkgYGBzZWxmICogdGVybWBgIHdpdGggdGhlIGBgdGVy bWBgIGhhdmluZyBzdXBwb3J0IGBgc3VwcGBgCisgICAgICAgICBhbmQgY29lZmZpY2llbnQgYGBj b2VmZmBgLgorQEAgLTYxMCw3ICs2MTAsNyBAQCBjZGVmIGNsYXNzIEV4dGVyaW9yQWxnZWJyYUVs ZW1lbnQoQ2xpZmZvcmRBbGdlYnJhRWxlbWVudCk6CisgICAgICAgICAgICAgICAgIGRlbCBkW2td CisgICAgICAgICByZXR1cm4gdHlwZShzZWxmKShzZWxmLl9wYXJlbnQsIGQpCisgCistICAgIGNk ZWYgQ2xpZmZvcmRBbGdlYnJhRWxlbWVudCBfbXVsX3Rlcm1fc2VsZihzZWxmLCBGcm96ZW5CaXRz ZXQgc3VwcCwgY29lZmYpIG5vZXhjZXB0OgorKyAgICBjZGVmIENsaWZmb3JkQWxnZWJyYUVsZW1l bnQgX211bF90ZXJtX3NlbGYoc2VsZiwgRnJvemVuQml0c2V0IHN1cHAsIGNvZWZmKToKKyAgICAg ICAgIHIiIiIKKyAgICAgICAgIE11bHRpcGx5IGBgdGVybSAqIHNlbGZgYCB3aXRoIHRoZSBgYHRl cm1gYCBoYXZpbmcgc3VwcG9ydCBgYHN1cHBgYAorICAgICAgICAgYW5kIGNvZWZmaWNpZW50IGBg Y29lZmZgYC4KK0BAIC05MzksNyArOTM5LDcgQEAgY2RlZiBjbGFzcyBDb2hvbW9sb2d5UkFBR0Vs ZW1lbnQoQ2xpZmZvcmRBbGdlYnJhRWxlbWVudCk6CisgCisgICAgICAgICA6Y2xhc3M6YH5zYWdl Lmdyb3Vwcy5yYWFnLkNvaG9tb2xvZ3lSQUFHYAorICAgICAiIiIKKy0gICAgY2RlZiBfbXVsXyhz ZWxmLCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNkZWYgX211bF8oc2VsZiwgb3RoZXIpOgorICAg ICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYGBzZWxmYGAgbXVsdGlwbGllZCBieSBgYG90aGVy YGAuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvYWxnZWJyYXMvZXh0ZXJpb3JfYWxnZWJyYV9n cm9lYm5lci5weGQgYi9zcmMvc2FnZS9hbGdlYnJhcy9leHRlcmlvcl9hbGdlYnJhX2dyb2VibmVy LnB4ZAoraW5kZXggYmY1ZWUyNGVhMjIuLjJmMmEwZmY1Y2Q4IDEwMDY0NAorLS0tIGEvc3JjL3Nh Z2UvYWxnZWJyYXMvZXh0ZXJpb3JfYWxnZWJyYV9ncm9lYm5lci5weGQKKysrKyBiL3NyYy9zYWdl L2FsZ2VicmFzL2V4dGVyaW9yX2FsZ2VicmFfZ3JvZWJuZXIucHhkCitAQCAtOCw3ICs4LDcgQEAg ZnJvbSBzYWdlLnN0cnVjdHVyZS5wYXJlbnQgY2ltcG9ydCBQYXJlbnQKKyBmcm9tIHNhZ2Uuc3Ry dWN0dXJlLmVsZW1lbnQgY2ltcG9ydCBNb25vaWRFbGVtZW50CisgCisgY2RlZiBsb25nIGRlZ3Jl ZShGcm96ZW5CaXRzZXQgWCkgbm9leGNlcHQKKy1jZGVmIENsaWZmb3JkQWxnZWJyYUVsZW1lbnQg YnVpbGRfbW9ub21pYWwoUGFyZW50IEUsIEZyb3plbkJpdHNldCBzdXBwKSBub2V4Y2VwdAorK2Nk ZWYgQ2xpZmZvcmRBbGdlYnJhRWxlbWVudCBidWlsZF9tb25vbWlhbChQYXJlbnQgRSwgRnJvemVu Qml0c2V0IHN1cHApCisgCisgY2RlZiBjbGFzcyBHQkVsZW1lbnQ6CisgICAgIGNkZWYgQ2xpZmZv cmRBbGdlYnJhRWxlbWVudCBlbHQKK0BAIC0yNCwyNSArMjQsMjUgQEAgY2RlZiBjbGFzcyBHcm9l Ym5lclN0cmF0ZWd5OgorICAgICBjZGVmIEludGVnZXIgcmFuaworICAgICBjZGVmIHB1YmxpYyB0 dXBsZSBncm9lYm5lcl9iYXNpcworIAorLSAgICBjZGVmIGlubGluZSBHQkVsZW1lbnQgYnVpbGRf ZWx0KHNlbGYsIENsaWZmb3JkQWxnZWJyYUVsZW1lbnQgZikgbm9leGNlcHQKKy0gICAgY2RlZiBp bmxpbmUgR0JFbGVtZW50IHByb2RfR0JfdGVybShzZWxmLCBHQkVsZW1lbnQgZiwgRnJvemVuQml0 c2V0IHQpIG5vZXhjZXB0CistICAgIGNkZWYgaW5saW5lIEdCRWxlbWVudCBwcm9kX3Rlcm1fR0Io c2VsZiwgRnJvemVuQml0c2V0IHQsIEdCRWxlbWVudCBmKSBub2V4Y2VwdAorKyAgICBjZGVmIGlu bGluZSBHQkVsZW1lbnQgYnVpbGRfZWx0KHNlbGYsIENsaWZmb3JkQWxnZWJyYUVsZW1lbnQgZikK KysgICAgY2RlZiBpbmxpbmUgR0JFbGVtZW50IHByb2RfR0JfdGVybShzZWxmLCBHQkVsZW1lbnQg ZiwgRnJvemVuQml0c2V0IHQpCisrICAgIGNkZWYgaW5saW5lIEdCRWxlbWVudCBwcm9kX3Rlcm1f R0Ioc2VsZiwgRnJvemVuQml0c2V0IHQsIEdCRWxlbWVudCBmKQorICAgICBjZGVmIGlubGluZSBi aW50IGJ1aWxkX1NfcG9seShzZWxmLCBHQkVsZW1lbnQgZiwgR0JFbGVtZW50IGcpIG5vZXhjZXB0 CisgCistICAgIGNkZWYgaW5saW5lIEZyb3plbkJpdHNldCBsZWFkaW5nX3N1cHBvcnQoc2VsZiwg Q2xpZmZvcmRBbGdlYnJhRWxlbWVudCBmKSBub2V4Y2VwdAorLSAgICBjZGVmIGlubGluZSBwYXJ0 aWFsX1NfcG9seV9sZWZ0KHNlbGYsIEdCRWxlbWVudCBmLCBHQkVsZW1lbnQgZykgbm9leGNlcHQK Ky0gICAgY2RlZiBpbmxpbmUgcGFydGlhbF9TX3BvbHlfcmlnaHQoc2VsZiwgR0JFbGVtZW50IGYs IEdCRWxlbWVudCBnKSBub2V4Y2VwdAorLSAgICBjZGVmIHNldCBwcmVwcm9jZXNzaW5nKHNlbGYs IGxpc3QgUCwgbGlzdCBHKSBub2V4Y2VwdAorLSAgICBjZGVmIGxpc3QgcmVkdWN0aW9uKHNlbGYs IGxpc3QgUCwgbGlzdCBHKSBub2V4Y2VwdAorKyAgICBjZGVmIGlubGluZSBGcm96ZW5CaXRzZXQg bGVhZGluZ19zdXBwb3J0KHNlbGYsIENsaWZmb3JkQWxnZWJyYUVsZW1lbnQgZikKKysgICAgY2Rl ZiBpbmxpbmUgcGFydGlhbF9TX3BvbHlfbGVmdChzZWxmLCBHQkVsZW1lbnQgZiwgR0JFbGVtZW50 IGcpCisrICAgIGNkZWYgaW5saW5lIHBhcnRpYWxfU19wb2x5X3JpZ2h0KHNlbGYsIEdCRWxlbWVu dCBmLCBHQkVsZW1lbnQgZykKKysgICAgY2RlZiBzZXQgcHJlcHJvY2Vzc2luZyhzZWxmLCBsaXN0 IFAsIGxpc3QgRykKKysgICAgY2RlZiBsaXN0IHJlZHVjdGlvbihzZWxmLCBsaXN0IFAsIGxpc3Qg RykKKyAKKy0gICAgY3BkZWYgQ2xpZmZvcmRBbGdlYnJhRWxlbWVudCByZWR1Y2Uoc2VsZiwgQ2xp ZmZvcmRBbGdlYnJhRWxlbWVudCBmKSBub2V4Y2VwdAorKyAgICBjcGRlZiBDbGlmZm9yZEFsZ2Vi cmFFbGVtZW50IHJlZHVjZShzZWxmLCBDbGlmZm9yZEFsZ2VicmFFbGVtZW50IGYpCisgICAgIGNk ZWYgYmludCByZWR1Y2Vfc2luZ2xlKHNlbGYsIENsaWZmb3JkQWxnZWJyYUVsZW1lbnQgZiwgQ2xp ZmZvcmRBbGdlYnJhRWxlbWVudCBnKSBleGNlcHQgLTEKKyAgICAgY2RlZiBpbnQgcmVkdWNlZF9n YihzZWxmLCBsaXN0IEcpIGV4Y2VwdCAtMQorIAorICAgICAjIFRoZXNlIGFyZSB0aGUgbWV0aG9k cyB0aGF0IGRldGVybWluZSB0aGUgb3JkZXJpbmcgb2YgdGhlIG1vbm9taWFscy4KKyAgICAgIyBU aGVzZSBtdXN0IGJlIGltcGxlbWVudGVkIGluIHN1YmNsYXNzZXMuIERlY2xhcmUgdGhlbSBhcyAi aW5saW5lIiB0aGVyZS4KKy0gICAgY2RlZiBJbnRlZ2VyIGJpdHNldF90b19pbnQoc2VsZiwgRnJv emVuQml0c2V0IFgpIG5vZXhjZXB0CistICAgIGNkZWYgRnJvemVuQml0c2V0IGludF90b19iaXRz ZXQoc2VsZiwgSW50ZWdlciBuKSBub2V4Y2VwdAorKyAgICBjZGVmIEludGVnZXIgYml0c2V0X3Rv X2ludChzZWxmLCBGcm96ZW5CaXRzZXQgWCkKKysgICAgY2RlZiBGcm96ZW5CaXRzZXQgaW50X3Rv X2JpdHNldChzZWxmLCBJbnRlZ2VyIG4pCisgCisgY2RlZiBjbGFzcyBHcm9lYm5lclN0cmF0ZWd5 TmVnTGV4KEdyb2VibmVyU3RyYXRlZ3kpOgorICAgICBwYXNzCitkaWZmIC0tZ2l0IGEvc3JjL3Nh Z2UvYWxnZWJyYXMvZXh0ZXJpb3JfYWxnZWJyYV9ncm9lYm5lci5weXggYi9zcmMvc2FnZS9hbGdl YnJhcy9leHRlcmlvcl9hbGdlYnJhX2dyb2VibmVyLnB5eAoraW5kZXggM2FmYzkyNGU3YWUuLmQy OTZiYWU2NGYzIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvYWxnZWJyYXMvZXh0ZXJpb3JfYWxnZWJy YV9ncm9lYm5lci5weXgKKysrKyBiL3NyYy9zYWdlL2FsZ2VicmFzL2V4dGVyaW9yX2FsZ2VicmFf Z3JvZWJuZXIucHl4CitAQCAtMzcsNyArMzcsNyBAQCBjZGVmIGlubGluZSBsb25nIGRlZ3JlZShG cm96ZW5CaXRzZXQgWCkgbm9leGNlcHQ6CisgICAgIHJldHVybiBiaXRzZXRfbGVuKFguX2JpdHNl dCkKKyAKKyAKKy1jZGVmIGlubGluZSBDbGlmZm9yZEFsZ2VicmFFbGVtZW50IGJ1aWxkX21vbm9t aWFsKFBhcmVudCBFLCBGcm96ZW5CaXRzZXQgc3VwcCkgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUg Q2xpZmZvcmRBbGdlYnJhRWxlbWVudCBidWlsZF9tb25vbWlhbChQYXJlbnQgRSwgRnJvemVuQml0 c2V0IHN1cHApOgorICAgICAiIiIKKyAgICAgSGVscGVyIGZ1bmN0aW9uIGZvciB0aGUgZmFzdGVz dCB3YXkgdG8gYnVpbGQgYSBtb25vbWlhbC4KKyAgICAgIiIiCitAQCAtMTMwLDE0ICsxMzAsMTQg QEAgY2RlZiBjbGFzcyBHcm9lYm5lclN0cmF0ZWd5OgorICAgICAgICAgZWxzZToKKyAgICAgICAg ICAgICBzZWxmLnNpZGUgPSAyCisgCistICAgIGNkZWYgaW5saW5lIEZyb3plbkJpdHNldCBsZWFk aW5nX3N1cHBvcnQoc2VsZiwgQ2xpZmZvcmRBbGdlYnJhRWxlbWVudCBmKSBub2V4Y2VwdDoKKysg ICAgY2RlZiBpbmxpbmUgRnJvemVuQml0c2V0IGxlYWRpbmdfc3VwcG9ydChzZWxmLCBDbGlmZm9y ZEFsZ2VicmFFbGVtZW50IGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGxl YWRpbmcgc3VwcG9ydCBvZiB0aGUgZXh0ZXJpb3IgYWxnZWJyYSBlbGVtZW50IGBgZmBgLgorICAg ICAgICAgIiIiCisgICAgICAgICBjZGVmIGRpY3QgbWMgPSA8ZGljdD4gZi5fbW9ub21pYWxfY29l ZmZpY2llbnRzCisgICAgICAgICByZXR1cm4gc2VsZi5pbnRfdG9fYml0c2V0KG1heChzZWxmLmJp dHNldF90b19pbnQoaykgZm9yIGsgaW4gbWMpKQorIAorLSAgICBjZGVmIGlubGluZSBwYXJ0aWFs X1NfcG9seV9sZWZ0KHNlbGYsIEdCRWxlbWVudCBmLCBHQkVsZW1lbnQgZykgbm9leGNlcHQ6Cisr ICAgIGNkZWYgaW5saW5lIHBhcnRpYWxfU19wb2x5X2xlZnQoc2VsZiwgR0JFbGVtZW50IGYsIEdC RWxlbWVudCBnKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIENvbXB1dGUgb25lIGhhbGYgb2Yg dGhlIGBTYC1wb2x5bm9taWFsIGZvciBgYGZgYCBhbmQgYGBnYGAuCisgCitAQCAtMTU0LDcgKzE1 NCw3IEBAIGNkZWYgY2xhc3MgR3JvZWJuZXJTdHJhdGVneToKKyAgICAgICAgICAgICByZXQuZWx0 Ll9tb25vbWlhbF9jb2VmZmljaWVudHNba10gKj0gaW52CisgICAgICAgICByZXR1cm4gcmV0Cisg CistICAgIGNkZWYgaW5saW5lIHBhcnRpYWxfU19wb2x5X3JpZ2h0KHNlbGYsIEdCRWxlbWVudCBm LCBHQkVsZW1lbnQgZykgbm9leGNlcHQ6CisrICAgIGNkZWYgaW5saW5lIHBhcnRpYWxfU19wb2x5 X3JpZ2h0KHNlbGYsIEdCRWxlbWVudCBmLCBHQkVsZW1lbnQgZyk6CisgICAgICAgICByIiIiCisg ICAgICAgICBDb21wdXRlIG9uZSBoYWxmIG9mIHRoZSBgU2AtcG9seW5vbWlhbCBmb3IgYGBmYGAg YW5kIGBgZ2BgLgorIAorQEAgLTE3MSw3ICsxNzEsNyBAQCBjZGVmIGNsYXNzIEdyb2VibmVyU3Ry YXRlZ3k6CisgICAgICAgICAgICAgcmV0LmVsdC5fbW9ub21pYWxfY29lZmZpY2llbnRzW2tdICo9 IGludgorICAgICAgICAgcmV0dXJuIHJldAorIAorLSAgICBjZGVmIGlubGluZSBHQkVsZW1lbnQg YnVpbGRfZWx0KHNlbGYsIENsaWZmb3JkQWxnZWJyYUVsZW1lbnQgZikgbm9leGNlcHQ6CisrICAg IGNkZWYgaW5saW5lIEdCRWxlbWVudCBidWlsZF9lbHQoc2VsZiwgQ2xpZmZvcmRBbGdlYnJhRWxl bWVudCBmKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ29udmVydCBgYGZgYCBpbnRvIGEgYGBH QkVsZW1lbnRgYC4KKyAgICAgICAgICIiIgorQEAgLTE4MSw3ICsxODEsNyBAQCBjZGVmIGNsYXNz IEdyb2VibmVyU3RyYXRlZ3k6CisgICAgICAgICBjZGVmIEludGVnZXIgciA9IDxJbnRlZ2VyPiBt YXgoc2VsZi5iaXRzZXRfdG9faW50KGspIGZvciBrIGluIG1jKQorICAgICAgICAgcmV0dXJuIEdC RWxlbWVudChmLCBzZWxmLmludF90b19iaXRzZXQociksIHIpCisgCistICAgIGNkZWYgaW5saW5l IEdCRWxlbWVudCBwcm9kX0dCX3Rlcm0oc2VsZiwgR0JFbGVtZW50IGYsIEZyb3plbkJpdHNldCB0 KSBub2V4Y2VwdDoKKysgICAgY2RlZiBpbmxpbmUgR0JFbGVtZW50IHByb2RfR0JfdGVybShzZWxm LCBHQkVsZW1lbnQgZiwgRnJvemVuQml0c2V0IHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBS ZXR1cm4gdGhlIEdCRWxlbWVudCBjb3JyZXNwb25kaW5nIHRvIGBgZiAqIHRgYC4KKyAKK0BAIC0x OTMsNyArMTkzLDcgQEAgY2RlZiBjbGFzcyBHcm9lYm5lclN0cmF0ZWd5OgorICAgICAgICAgY2Rl ZiBGcm96ZW5CaXRzZXQgbHMgPSA8RnJvemVuQml0c2V0PiBmLmxzLl91bmlvbih0KQorICAgICAg ICAgcmV0dXJuIEdCRWxlbWVudCg8Q2xpZmZvcmRBbGdlYnJhRWxlbWVudD4gcmV0LCBscywgc2Vs Zi5iaXRzZXRfdG9faW50KGxzKSkKKyAKKy0gICAgY2RlZiBpbmxpbmUgR0JFbGVtZW50IHByb2Rf dGVybV9HQihzZWxmLCBGcm96ZW5CaXRzZXQgdCwgR0JFbGVtZW50IGYpIG5vZXhjZXB0OgorKyAg ICBjZGVmIGlubGluZSBHQkVsZW1lbnQgcHJvZF90ZXJtX0dCKHNlbGYsIEZyb3plbkJpdHNldCB0 LCBHQkVsZW1lbnQgZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgR0JFbGVt ZW50IGNvcnJlc3BvbmRpbmcgdG8gYGB0ICogZmBgLgorIAorQEAgLTIyMCw3ICsyMjAsNyBAQCBj ZGVmIGNsYXNzIEdyb2VibmVyU3RyYXRlZ3k6CisgCisgICAgICAgICByZXR1cm4gKDxGcm96ZW5C aXRzZXQ+IGYubHMuaW50ZXJzZWN0aW9uKGcubHMpKS5pc2VtcHR5KCkKKyAKKy0gICAgY2RlZiBp bmxpbmUgc2V0IHByZXByb2Nlc3Npbmcoc2VsZiwgbGlzdCBQLCBsaXN0IEcpIG5vZXhjZXB0Ogor KyAgICBjZGVmIGlubGluZSBzZXQgcHJlcHJvY2Vzc2luZyhzZWxmLCBsaXN0IFAsIGxpc3QgRyk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIFBlcmZvcm0gdGhlIHByZXByb2Nlc3Npbmcgc3RlcC4K KyAgICAgICAgICIiIgorQEAgLTI2Niw3ICsyNjYsNyBAQCBjZGVmIGNsYXNzIEdyb2VibmVyU3Ry YXRlZ3k6CisgICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgcmV0dXJuIEwKKyAK Ky0gICAgY2RlZiBpbmxpbmUgbGlzdCByZWR1Y3Rpb24oc2VsZiwgbGlzdCBQLCBsaXN0IEcpIG5v ZXhjZXB0OgorKyAgICBjZGVmIGlubGluZSBsaXN0IHJlZHVjdGlvbihzZWxmLCBsaXN0IFAsIGxp c3QgRyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFBlcmZvcm0gdGhlIHJlZHVjdGlvbiBvZiBg YFBgYCBtb2QgYGBHYGAgaW4gYGBFYGAuCisgICAgICAgICAiIiIKK0BAIC00NTEsNyArNDUxLDcg QEAgY2RlZiBjbGFzcyBHcm9lYm5lclN0cmF0ZWd5OgorICAgICAgICAgY2RlZiBsaXN0IEcgPSBb c2VsZi5idWlsZF9lbHQoZikgZm9yIGYgaW4gc2VsZi5ncm9lYm5lcl9iYXNpc10KKyAgICAgICAg IHNlbGYucmVkdWNlZF9nYihHKQorIAorLSAgICBjcGRlZiBDbGlmZm9yZEFsZ2VicmFFbGVtZW50 IHJlZHVjZShzZWxmLCBDbGlmZm9yZEFsZ2VicmFFbGVtZW50IGYpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBDbGlmZm9yZEFsZ2VicmFFbGVtZW50IHJlZHVjZShzZWxmLCBDbGlmZm9yZEFsZ2VicmFF bGVtZW50IGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZWR1Y2UgYGBmYGAgbW9kdWxvIHRo ZSBpZGVhbCB3aXRoIEdyw7ZibmVyIGJhc2lzIGBgR2BgLgorIAorQEAgLTUzMywxMCArNTMzLDEw IEBAIGNkZWYgY2xhc3MgR3JvZWJuZXJTdHJhdGVneToKKyAgICAgICAgICAgICAgICAgaWF4cHko LWNvZWZmLCBncC5fbW9ub21pYWxfY29lZmZpY2llbnRzLCBmLl9tb25vbWlhbF9jb2VmZmljaWVu dHMpCisgICAgICAgICByZXR1cm4gd2FzX3JlZHVjZWQKKyAKKy0gICAgY2RlZiBJbnRlZ2VyIGJp dHNldF90b19pbnQoc2VsZiwgRnJvemVuQml0c2V0IFgpIG5vZXhjZXB0OgorKyAgICBjZGVmIElu dGVnZXIgYml0c2V0X3RvX2ludChzZWxmLCBGcm96ZW5CaXRzZXQgWCk6CisgICAgICAgICByYWlz ZSBOb3RJbXBsZW1lbnRlZEVycm9yCisgCistICAgIGNkZWYgRnJvemVuQml0c2V0IGludF90b19i aXRzZXQoc2VsZiwgSW50ZWdlciBuKSBub2V4Y2VwdDoKKysgICAgY2RlZiBGcm96ZW5CaXRzZXQg aW50X3RvX2JpdHNldChzZWxmLCBJbnRlZ2VyIG4pOgorICAgICAgICAgcmFpc2UgTm90SW1wbGVt ZW50ZWRFcnJvcgorIAorICAgICBkZWYgc29ydGVkX21vbm9taWFscyhzZWxmLCBhc19kaWN0PUZh bHNlKToKK0BAIC02MTUsNyArNjE1LDcgQEAgY2RlZiBjbGFzcyBHcm9lYm5lclN0cmF0ZWd5TmVn TGV4KEdyb2VibmVyU3RyYXRlZ3kpOgorICAgICAiIiIKKyAgICAgR3LDtmJuZXIgYmFzaXMgc3Ry YXRlZ3kgaW1wbGVtZW50aW5nIG5lZ2xleCBvcmRlcmluZy4KKyAgICAgIiIiCistICAgIGNkZWYg aW5saW5lIEludGVnZXIgYml0c2V0X3RvX2ludChzZWxmLCBGcm96ZW5CaXRzZXQgWCkgbm9leGNl cHQ6CisrICAgIGNkZWYgaW5saW5lIEludGVnZXIgYml0c2V0X3RvX2ludChzZWxmLCBGcm96ZW5C aXRzZXQgWCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIENvbnZlcnQgYGBYYGAgdG8gYW4gOmNs YXNzOmBJbnRlZ2VyYC4KKyAgICAgICAgICIiIgorQEAgLTYyNiw3ICs2MjYsNyBAQCBjZGVmIGNs YXNzIEdyb2VibmVyU3RyYXRlZ3lOZWdMZXgoR3JvZWJuZXJTdHJhdGVneSk6CisgICAgICAgICAg ICAgZWx0ID0gYml0c2V0X25leHQoWC5fYml0c2V0LCBlbHQgKyAxKQorICAgICAgICAgcmV0dXJu IHJldAorIAorLSAgICBjZGVmIGlubGluZSBGcm96ZW5CaXRzZXQgaW50X3RvX2JpdHNldChzZWxm LCBJbnRlZ2VyIG4pIG5vZXhjZXB0OgorKyAgICBjZGVmIGlubGluZSBGcm96ZW5CaXRzZXQgaW50 X3RvX2JpdHNldChzZWxmLCBJbnRlZ2VyIG4pOgorICAgICAgICAgIiIiCisgICAgICAgICBDb252 ZXJ0IGEgbm9ubmVnYXRpdmUgaW50ZWdlciBgYG5gYCB0byBhIDpjbGFzczpgRnJvemVuQml0c2V0 YC4KKyAgICAgICAgICIiIgorQEAgLTY0Niw3ICs2NDYsNyBAQCBjZGVmIGNsYXNzIEdyb2VibmVy U3RyYXRlZ3lEZWdSZXZMZXgoR3JvZWJuZXJTdHJhdGVneSk6CisgICAgICIiIgorICAgICBHcsO2 Ym5lciBiYXNpcyBzdHJhdGVneSBpbXBsZW1lbnRpbmcgZGVncmVlIHJldmxleCBvcmRlcmluZy4K KyAgICAgIiIiCistICAgIGNkZWYgaW5saW5lIEludGVnZXIgYml0c2V0X3RvX2ludChzZWxmLCBG cm96ZW5CaXRzZXQgWCkgbm9leGNlcHQ6CisrICAgIGNkZWYgaW5saW5lIEludGVnZXIgYml0c2V0 X3RvX2ludChzZWxmLCBGcm96ZW5CaXRzZXQgWCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIENv bnZlcnQgYGBYYGAgdG8gYW4gOmNsYXNzOmBJbnRlZ2VyYC4KKyAgICAgICAgICIiIgorQEAgLTY2 NSw3ICs2NjUsNyBAQCBjZGVmIGNsYXNzIEdyb2VibmVyU3RyYXRlZ3lEZWdSZXZMZXgoR3JvZWJu ZXJTdHJhdGVneSk6CisgICAgICAgICAgICAgZWx0ID0gYml0c2V0X25leHQoWC5fYml0c2V0LCBl bHQgKyAxKQorICAgICAgICAgcmV0dXJuIEludGVnZXIoc3VtKG4uYmlub21pYWwoaSkgZm9yIGkg aW4gcmFuZ2UoZGVnKzEpKSAtIHQgLSAxKQorIAorLSAgICBjZGVmIGlubGluZSBGcm96ZW5CaXRz ZXQgaW50X3RvX2JpdHNldChzZWxmLCBJbnRlZ2VyIG4pIG5vZXhjZXB0OgorKyAgICBjZGVmIGlu bGluZSBGcm96ZW5CaXRzZXQgaW50X3RvX2JpdHNldChzZWxmLCBJbnRlZ2VyIG4pOgorICAgICAg ICAgIiIiCisgICAgICAgICBDb252ZXJ0IGEgbm9ubmVnYXRpdmUgaW50ZWdlciBgYG5gYCB0byBh IDpjbGFzczpgRnJvemVuQml0c2V0YC4KKyAgICAgICAgICIiIgorQEAgLTY4Nyw3ICs2ODcsNyBA QCBjZGVmIGNsYXNzIEdyb2VibmVyU3RyYXRlZ3lEZWdMZXgoR3JvZWJuZXJTdHJhdGVneSk6Cisg ICAgICIiIgorICAgICBHcsO2Ym5lciBiYXNpcyBzdHJhdGVneSBpbXBsZW1lbnRpbmcgZGVncmVl IGxleCBvcmRlcmluZy4KKyAgICAgIiIiCistICAgIGNkZWYgaW5saW5lIEludGVnZXIgYml0c2V0 X3RvX2ludChzZWxmLCBGcm96ZW5CaXRzZXQgWCkgbm9leGNlcHQ6CisrICAgIGNkZWYgaW5saW5l IEludGVnZXIgYml0c2V0X3RvX2ludChzZWxmLCBGcm96ZW5CaXRzZXQgWCk6CisgICAgICAgICAi IiIKKyAgICAgICAgIENvbnZlcnQgYGBYYGAgdG8gYW4gOmNsYXNzOmBJbnRlZ2VyYC4KKyAgICAg ICAgICIiIgorQEAgLTcwNiw3ICs3MDYsNyBAQCBjZGVmIGNsYXNzIEdyb2VibmVyU3RyYXRlZ3lE ZWdMZXgoR3JvZWJuZXJTdHJhdGVneSk6CisgICAgICAgICAgICAgZWx0ID0gYml0c2V0X25leHQo WC5fYml0c2V0LCBlbHQgKyAxKQorICAgICAgICAgcmV0dXJuIEludGVnZXIoc3VtKG4uYmlub21p YWwoaSkgZm9yIGkgaW4gcmFuZ2UoZGVnKzEpKSAtIHQgLSAxKQorIAorLSAgICBjZGVmIGlubGlu ZSBGcm96ZW5CaXRzZXQgaW50X3RvX2JpdHNldChzZWxmLCBJbnRlZ2VyIG4pIG5vZXhjZXB0Ogor KyAgICBjZGVmIGlubGluZSBGcm96ZW5CaXRzZXQgaW50X3RvX2JpdHNldChzZWxmLCBJbnRlZ2Vy IG4pOgorICAgICAgICAgIiIiCisgICAgICAgICBDb252ZXJ0IGEgbm9ubmVnYXRpdmUgaW50ZWdl ciBgYG5gYCB0byBhIDpjbGFzczpgRnJvemVuQml0c2V0YC4KKyAgICAgICAgICIiIgorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL2FsZ2VicmFzL2Zpbml0ZV9kaW1lbnNpb25hbF9hbGdlYnJhcy9maW5p dGVfZGltZW5zaW9uYWxfYWxnZWJyYV9lbGVtZW50LnB4ZCBiL3NyYy9zYWdlL2FsZ2VicmFzL2Zp bml0ZV9kaW1lbnNpb25hbF9hbGdlYnJhcy9maW5pdGVfZGltZW5zaW9uYWxfYWxnZWJyYV9lbGVt ZW50LnB4ZAoraW5kZXggZGQ1Zjg1YmU5ZmIuLmMxM2I4ZGJhYjA3IDEwMDY0NAorLS0tIGEvc3Jj L3NhZ2UvYWxnZWJyYXMvZmluaXRlX2RpbWVuc2lvbmFsX2FsZ2VicmFzL2Zpbml0ZV9kaW1lbnNp b25hbF9hbGdlYnJhX2VsZW1lbnQucHhkCisrKysgYi9zcmMvc2FnZS9hbGdlYnJhcy9maW5pdGVf ZGltZW5zaW9uYWxfYWxnZWJyYXMvZmluaXRlX2RpbWVuc2lvbmFsX2FsZ2VicmFfZWxlbWVudC5w eGQKK0BAIC02LDQgKzYsNCBAQCBjZGVmIGNsYXNzIEZpbml0ZURpbWVuc2lvbmFsQWxnZWJyYUVs ZW1lbnQoQWxnZWJyYUVsZW1lbnQpOgorICAgICBjZGVmIE1hdHJpeCBfX21hdHJpeAorICAgICBj ZGVmIEZpbml0ZURpbWVuc2lvbmFsQWxnZWJyYUVsZW1lbnQgX19pbnZlcnNlCisgCistY3BkZWYg RmluaXRlRGltZW5zaW9uYWxBbGdlYnJhRWxlbWVudCB1bnBpY2tsZV9GaW5pdGVEaW1lbnNpb25h bEFsZ2VicmFFbGVtZW50KEEsIHZlYywgbWF0KSBub2V4Y2VwdAorK2NwZGVmIEZpbml0ZURpbWVu c2lvbmFsQWxnZWJyYUVsZW1lbnQgdW5waWNrbGVfRmluaXRlRGltZW5zaW9uYWxBbGdlYnJhRWxl bWVudChBLCB2ZWMsIG1hdCkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9hbGdlYnJhcy9maW5pdGVf ZGltZW5zaW9uYWxfYWxnZWJyYXMvZmluaXRlX2RpbWVuc2lvbmFsX2FsZ2VicmFfZWxlbWVudC5w eXggYi9zcmMvc2FnZS9hbGdlYnJhcy9maW5pdGVfZGltZW5zaW9uYWxfYWxnZWJyYXMvZmluaXRl X2RpbWVuc2lvbmFsX2FsZ2VicmFfZWxlbWVudC5weXgKK2luZGV4IDliMDg1ZjZmZDhhLi4wOGZl YjIyOGU1ZSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2FsZ2VicmFzL2Zpbml0ZV9kaW1lbnNpb25h bF9hbGdlYnJhcy9maW5pdGVfZGltZW5zaW9uYWxfYWxnZWJyYV9lbGVtZW50LnB5eAorKysrIGIv c3JjL3NhZ2UvYWxnZWJyYXMvZmluaXRlX2RpbWVuc2lvbmFsX2FsZ2VicmFzL2Zpbml0ZV9kaW1l bnNpb25hbF9hbGdlYnJhX2VsZW1lbnQucHl4CitAQCAtMjAsNyArMjAsNyBAQCBmcm9tIHNhZ2Uu cmluZ3MuaW50ZWdlciBpbXBvcnQgSW50ZWdlcgorIAorIGZyb20gY3B5dGhvbi5vYmplY3QgY2lt cG9ydCBQeU9iamVjdF9SaWNoQ29tcGFyZSBhcyByaWNoY21wCisgCistY3BkZWYgRmluaXRlRGlt ZW5zaW9uYWxBbGdlYnJhRWxlbWVudCB1bnBpY2tsZV9GaW5pdGVEaW1lbnNpb25hbEFsZ2VicmFF bGVtZW50KEEsIHZlYywgbWF0KSBub2V4Y2VwdDoKKytjcGRlZiBGaW5pdGVEaW1lbnNpb25hbEFs Z2VicmFFbGVtZW50IHVucGlja2xlX0Zpbml0ZURpbWVuc2lvbmFsQWxnZWJyYUVsZW1lbnQoQSwg dmVjLCBtYXQpOgorICAgICAiIiIKKyAgICAgSGVscGVyIGZvciB1bnBpY2tsaW5nIG9mIGZpbml0 ZSBkaW1lbnNpb25hbCBhbGdlYnJhIGVsZW1lbnRzLgorIAorQEAgLTM2NSw3ICszNjUsNyBAQCBj ZGVmIGNsYXNzIEZpbml0ZURpbWVuc2lvbmFsQWxnZWJyYUVsZW1lbnQoQWxnZWJyYUVsZW1lbnQp OgorICAgICAgICAgcmV0dXJuIHNlbGYuX3ZlY3Rvci5uY29scygpCisgCisgICAgICMgKFJpY2gp IGNvbXBhcmlzb24KKy0gICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIHJpZ2h0LCBpbnQgb3ApIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgcmlnaHQsIGludCBvcCk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC00MDAsNyArNDAwLDcgQEAgY2Rl ZiBjbGFzcyBGaW5pdGVEaW1lbnNpb25hbEFsZ2VicmFFbGVtZW50KEFsZ2VicmFFbGVtZW50KToK KyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHJpY2hjbXAoc2VsZi5fdmVjdG9yLCA8Rmlu aXRlRGltZW5zaW9uYWxBbGdlYnJhRWxlbWVudD5yaWdodC5fdmVjdG9yLCBvcCkKKyAKKy0gICAg Y3BkZWYgX2FkZF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWRkXyhzZWxm LCBvdGhlcik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC00MTEs NyArNDExLDcgQEAgY2RlZiBjbGFzcyBGaW5pdGVEaW1lbnNpb25hbEFsZ2VicmFFbGVtZW50KEFs Z2VicmFFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX3BhcmVu dC5lbGVtZW50X2NsYXNzKHNlbGYuX3BhcmVudCwgc2VsZi5fdmVjdG9yICsgPEZpbml0ZURpbWVu c2lvbmFsQWxnZWJyYUVsZW1lbnQ+b3RoZXIuX3ZlY3RvcikKKyAKKy0gICAgY3BkZWYgX3N1Yl8o c2VsZiwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc3ViXyhzZWxmLCBvdGhlcik6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC00MjIsNyArNDIyLDcgQEAg Y2RlZiBjbGFzcyBGaW5pdGVEaW1lbnNpb25hbEFsZ2VicmFFbGVtZW50KEFsZ2VicmFFbGVtZW50 KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX3BhcmVudC5lbGVtZW50X2Ns YXNzKHNlbGYuX3BhcmVudCwgc2VsZi5fdmVjdG9yIC0gPEZpbml0ZURpbWVuc2lvbmFsQWxnZWJy YUVsZW1lbnQ+b3RoZXIuX3ZlY3RvcikKKyAKKy0gICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbXVsXyhzZWxmLCBvdGhlcik6CisgICAgICAgICAiIiIK KyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC00MzQsNyArNDM0LDcgQEAgY2RlZiBjbGFzcyBG aW5pdGVEaW1lbnNpb25hbEFsZ2VicmFFbGVtZW50KEFsZ2VicmFFbGVtZW50KToKKyAgICAgICAg ICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX3BhcmVudC5lbGVtZW50X2NsYXNzKHNlbGYuX3Bh cmVudCwgc2VsZi5fdmVjdG9yICogPEZpbml0ZURpbWVuc2lvbmFsQWxnZWJyYUVsZW1lbnQ+KG90 aGVyKS5fbWF0cml4KQorIAorLSAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCBvdGhlcikg bm9leGNlcHQ6CisrICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IG90aGVyKToKKyAgICAg ICAgICIiIgorICAgICAgICAgVEVTVFM6OgorIAorQEAgLTQ1MCw3ICs0NTAsNyBAQCBjZGVmIGNs YXNzIEZpbml0ZURpbWVuc2lvbmFsQWxnZWJyYUVsZW1lbnQoQWxnZWJyYUVsZW1lbnQpOgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAuZm9ybWF0KHNlbGYucGFyZW50KCksIG90aGVyLnBh cmVudCgpKSkKKyAgICAgICAgIHJldHVybiBzZWxmLl9wYXJlbnQuZWxlbWVudF9jbGFzcyhzZWxm Ll9wYXJlbnQsIHNlbGYuX3ZlY3RvciAqIG90aGVyKQorIAorLSAgICBjcGRlZiBfcm11bF8oc2Vs ZiwgRWxlbWVudCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9ybXVsXyhzZWxmLCBFbGVt ZW50IG90aGVyKToKKyAgICAgICAgICIiIgorICAgICAgICAgVEVTVFM6OgorIAorZGlmZiAtLWdp dCBhL3NyYy9zYWdlL2FsZ2VicmFzL2Z1c2lvbl9yaW5ncy9mYXN0X3BhcmFsbGVsX2ZtYXRzX21l dGhvZHMucHhkIGIvc3JjL3NhZ2UvYWxnZWJyYXMvZnVzaW9uX3JpbmdzL2Zhc3RfcGFyYWxsZWxf Zm1hdHNfbWV0aG9kcy5weGQKK2luZGV4IDE5ZTk4YWExMzdkLi5lMDkwOGFiNTg4NCAxMDA2NDQK Ky0tLSBhL3NyYy9zYWdlL2FsZ2VicmFzL2Z1c2lvbl9yaW5ncy9mYXN0X3BhcmFsbGVsX2ZtYXRz X21ldGhvZHMucHhkCisrKysgYi9zcmMvc2FnZS9hbGdlYnJhcy9mdXNpb25fcmluZ3MvZmFzdF9w YXJhbGxlbF9mbWF0c19tZXRob2RzLnB4ZAorQEAgLTEsNCArMSw0IEBACistY2RlZiBfZm1hdChm dmFycywgTmtfaWosIG9uZSwgYSwgYiwgYywgZCwgeCwgeSkgbm9leGNlcHQKKy1jcGRlZiBfYmFj a3dhcmRfc3VicyhmYWN0b3J5LCBiaW50IGZsYXR0ZW49Kikgbm9leGNlcHQKKy1jcGRlZiBleGVj dXRvcih0dXBsZSBwYXJhbXMpIG5vZXhjZXB0CistY3BkZWYgX3NvbHZlX2Zvcl9saW5lYXJfdGVy bXMoZmFjdG9yeSwgbGlzdCBlcW5zPSopIG5vZXhjZXB0CisrY2RlZiBfZm1hdChmdmFycywgTmtf aWosIG9uZSwgYSwgYiwgYywgZCwgeCwgeSkKKytjcGRlZiBfYmFja3dhcmRfc3VicyhmYWN0b3J5 LCBiaW50IGZsYXR0ZW49KikKKytjcGRlZiBleGVjdXRvcih0dXBsZSBwYXJhbXMpCisrY3BkZWYg X3NvbHZlX2Zvcl9saW5lYXJfdGVybXMoZmFjdG9yeSwgbGlzdCBlcW5zPSopCitkaWZmIC0tZ2l0 IGEvc3JjL3NhZ2UvYWxnZWJyYXMvZnVzaW9uX3JpbmdzL2Zhc3RfcGFyYWxsZWxfZm1hdHNfbWV0 aG9kcy5weXggYi9zcmMvc2FnZS9hbGdlYnJhcy9mdXNpb25fcmluZ3MvZmFzdF9wYXJhbGxlbF9m bWF0c19tZXRob2RzLnB5eAoraW5kZXggYjc5MzcwYzdmMmMuLmE5YjdlYjUwZmFiIDEwMDY0NAor LS0tIGEvc3JjL3NhZ2UvYWxnZWJyYXMvZnVzaW9uX3JpbmdzL2Zhc3RfcGFyYWxsZWxfZm1hdHNf bWV0aG9kcy5weXgKKysrKyBiL3NyYy9zYWdlL2FsZ2VicmFzL2Z1c2lvbl9yaW5ncy9mYXN0X3Bh cmFsbGVsX2ZtYXRzX21ldGhvZHMucHl4CitAQCAtMzIsNyArMzIsNyBAQCBmcm9tIHNhZ2Uucmlu Z3MucG9seW5vbWlhbC5wb2x5bm9taWFsX3JpbmdfY29uc3RydWN0b3IgaW1wb3J0IFBvbHlub21p YWxSaW5nCisgIyAgIEZhc3QgY2xhc3MgbWV0aG9kcyAgICMKKyAjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIworIAorLWNwZGVmIF9zb2x2ZV9mb3JfbGluZWFyX3Rlcm1zKGZhY3RvcnksIGxpc3Qg ZXFucz1Ob25lKSBub2V4Y2VwdDoKKytjcGRlZiBfc29sdmVfZm9yX2xpbmVhcl90ZXJtcyhmYWN0 b3J5LCBsaXN0IGVxbnM9Tm9uZSk6CisgICAgIHIiIiIKKyAgICAgU29sdmUgZm9yIGEgbGluZWFy IHRlcm0gb2NjdXJyaW5nIGluIGEgdHdvLXRlcm0gZXF1YXRpb24sIGFuZCBmb3IKKyAgICAgdmFy aWFibGVzIGFwcGVhcmluZyBpbiB1bml2YXJpYXRlIHNpbmdsZS10ZXJtIGVxdWF0aW9ucy4KK0BA IC0xMDcsNyArMTA3LDcgQEAgY3BkZWYgX3NvbHZlX2Zvcl9saW5lYXJfdGVybXMoZmFjdG9yeSwg bGlzdCBlcW5zPU5vbmUpIG5vZXhjZXB0OgorICAgICAgICAgICAgICAgICAjIGFzc2VydCBfdW5m bGF0dGVuX2NvZWZmcyhmYWN0b3J5Ll9maWVsZCwgZmFjdG9yeS50ZXN0X2Z2YXJzW3NdKSA9PSBm dmFyc1tzXSwgIk9HIHZhbHVlIHt9LCBTaGFyZWQ6IHt9Ii5mb3JtYXQoZmFjdG9yeS50ZXN0X2Z2 YXJzW3NdLCBmdmFyc1tzXSkKKyAgICAgcmV0dXJuIGxpbmVhcl90ZXJtc19leGlzdAorIAorLWNw ZGVmIF9iYWNrd2FyZF9zdWJzKGZhY3RvcnksIGJpbnQgZmxhdHRlbj1UcnVlKSBub2V4Y2VwdDoK KytjcGRlZiBfYmFja3dhcmRfc3VicyhmYWN0b3J5LCBiaW50IGZsYXR0ZW49VHJ1ZSk6CisgICAg IHIiIiIKKyAgICAgUGVyZm9ybSBiYWNrd2FyZCBzdWJzdGl0dXRpb24gb24gYGBzZWxmLmlkZWFs X2Jhc2lzYGAsIHRyYXZlcnNpbmcKKyAgICAgdmFyaWFibGVzIGluIHJldmVyc2UgbGV4aWNvZ3Jh cGhpY2FsIG9yZGVyLgorQEAgLTE3MSw3ICsxNzEsNyBAQCBjcGRlZiBfYmFja3dhcmRfc3Vicyhm YWN0b3J5LCBiaW50IGZsYXR0ZW49VHJ1ZSkgbm9leGNlcHQ6CisgICAgICAgICAgICAgZnZhcnNb c2V4dHVwbGVdID0gcmVzCisgCisgCistY2RlZiBfZm1hdChmdmFycywgX05rX2lqLCBpZF9hbnlv biwgYSwgYiwgYywgZCwgeCwgeSkgbm9leGNlcHQ6CisrY2RlZiBfZm1hdChmdmFycywgX05rX2lq LCBpZF9hbnlvbiwgYSwgYiwgYywgZCwgeCwgeSk6CisgICAgICIiIgorICAgICBDeXRob24gdmVy c2lvbiBvZiBmbWF0IGNsYXNzIG1ldGhvZC4gVXNpbmcgY2RlZiBmb3IgZmFzdGVzdCBkaXNwYXRj aAorICAgICAiIiIKK0BAIC0yMTQsNyArMjE0LDcgQEAgY2RlZiBfZm1hdChmdmFycywgX05rX2lq LCBpZF9hbnlvbiwgYSwgYiwgYywgZCwgeCwgeSkgbm9leGNlcHQ6CisgIyAgIE1hcHBlcnMgICAj CisgIyMjIyMjIyMjIyMjIyMjCisgCistY2RlZiByZXFfY3kodHVwbGUgYmFzaXMsIHJfbWF0cml4 LCBkaWN0IGZ2YXJzLCBOa19paiwgaWRfYW55b24sIHR1cGxlIHNleHR1cGxlKSBub2V4Y2VwdDoK KytjZGVmIHJlcV9jeSh0dXBsZSBiYXNpcywgcl9tYXRyaXgsIGRpY3QgZnZhcnMsIE5rX2lqLCBp ZF9hbnlvbiwgdHVwbGUgc2V4dHVwbGUpOgorICAgICAiIiIKKyAgICAgR2l2ZW4gYW4gRk1hdHJp eCBmYWN0b3J5IGFuZCBhIHNleHR1cGxlLCByZXR1cm4gYSBoZXhhZ29uIGVxdWF0aW9uCisgICAg IGFzIGEgcG9seW5vbWlhbCBvYmplY3QuCitAQCAtMjMyLDcgKzIzMiw3IEBAIGNkZWYgcmVxX2N5 KHR1cGxlIGJhc2lzLCByX21hdHJpeCwgZGljdCBmdmFycywgTmtfaWosIGlkX2FueW9uLCB0dXBs ZSBzZXh0dXBsZSkKKyBAY3l0aG9uLndyYXBhcm91bmQoRmFsc2UpCisgQGN5dGhvbi5ub25lY2hl Y2soRmFsc2UpCisgQGN5dGhvbi5jZGl2aXNpb24oVHJ1ZSkKKy1jZGVmIGdldF9yZWR1Y2VkX2hl eGFnb25zKGZhY3RvcnksIHR1cGxlIG1wX3BhcmFtcykgbm9leGNlcHQ6CisrY2RlZiBnZXRfcmVk dWNlZF9oZXhhZ29ucyhmYWN0b3J5LCB0dXBsZSBtcF9wYXJhbXMpOgorICAgICAiIiIKKyAgICAg U2V0IHVwIGFuZCByZWR1Y2UgdGhlIGhleGFnb24gZXF1YXRpb25zIGNvcnJlc3BvbmRpbmcgdG8g dGhpcyB3b3JrZXIuCisgICAgICIiIgorQEAgLTI4Miw3ICsyODIsNyBAQCBjZGVmIGdldF9yZWR1 Y2VkX2hleGFnb25zKGZhY3RvcnksIHR1cGxlIG1wX3BhcmFtcykgbm9leGNlcHQ6CisgCisgICAg IHJldHVybiBjb2xsZWN0X2VxbnMod29ya2VyX3Jlc3VsdHMpCisgCistY2RlZiBNUG9seW5vbWlh bF9saWJzaW5ndWxhciBmZXFfY3kodHVwbGUgYmFzaXMsIGZ2YXJzLCBOa19paiwgaWRfYW55b24s IHplcm8sIHR1cGxlIG5vbnVwbGUsIGJpbnQgcHJ1bmU9RmFsc2UpIG5vZXhjZXB0OgorK2NkZWYg TVBvbHlub21pYWxfbGlic2luZ3VsYXIgZmVxX2N5KHR1cGxlIGJhc2lzLCBmdmFycywgTmtfaWos IGlkX2FueW9uLCB6ZXJvLCB0dXBsZSBub251cGxlLCBiaW50IHBydW5lPUZhbHNlKToKKyAgICAg ciIiIgorICAgICBHaXZlbiBhbiBGTWF0cml4IGZhY3RvcnkgYW5kIGEgbm9udXBsZSwgcmV0dXJu IGEgcGVudGFnb24gZXF1YXRpb24KKyAgICAgYXMgYSBwb2x5bm9taWFsIG9iamVjdC4KK0BAIC0z MDEsNyArMzAxLDcgQEAgY2RlZiBNUG9seW5vbWlhbF9saWJzaW5ndWxhciBmZXFfY3kodHVwbGUg YmFzaXMsIGZ2YXJzLCBOa19paiwgaWRfYW55b24sIHplcm8sIHQKKyBAY3l0aG9uLndyYXBhcm91 bmQoRmFsc2UpCisgQGN5dGhvbi5ub25lY2hlY2soRmFsc2UpCisgQGN5dGhvbi5jZGl2aXNpb24o VHJ1ZSkKKy1jZGVmIGdldF9yZWR1Y2VkX3BlbnRhZ29ucyhmYWN0b3J5LCB0dXBsZSBtcF9wYXJh bXMpIG5vZXhjZXB0OgorK2NkZWYgZ2V0X3JlZHVjZWRfcGVudGFnb25zKGZhY3RvcnksIHR1cGxl IG1wX3BhcmFtcyk6CisgICAgIHIiIiIKKyAgICAgU2V0IHVwIGFuZCByZWR1Y2UgdGhlIHBlbnRh Z29uIGVxdWF0aW9ucyBjb3JyZXNwb25kaW5nIHRvIHRoaXMgd29ya2VyLgorICAgICAiIiIKK0BA IC0zNDksNyArMzQ5LDcgQEAgY2RlZiBnZXRfcmVkdWNlZF9wZW50YWdvbnMoZmFjdG9yeSwgdHVw bGUgbXBfcGFyYW1zKSBub2V4Y2VwdDoKKyAgICAgICAgICAgICAgICAgd29ya2VyX3Jlc3VsdHMu YXBwZW5kKHJlZCkKKyAgICAgcmV0dXJuIGNvbGxlY3RfZXFucyh3b3JrZXJfcmVzdWx0cykKKyAK Ky1jZGVmIGxpc3QgdXBkYXRlX3JlZHVjZShmYWN0b3J5LCBsaXN0IGVxbnMpIG5vZXhjZXB0Ogor K2NkZWYgbGlzdCB1cGRhdGVfcmVkdWNlKGZhY3RvcnksIGxpc3QgZXFucyk6CisgICAgIHIiIiIK KyAgICAgU3Vic3RpdHV0ZSBrbm93biB2YWx1ZXMsIGtub3duIHNxdWFyZXMsIGFuZCByZWR1Y2Uu CisgICAgICIiIgorQEAgLTM4MSw3ICszODEsNyBAQCBjZGVmIGxpc3QgdXBkYXRlX3JlZHVjZShm YWN0b3J5LCBsaXN0IGVxbnMpIG5vZXhjZXB0OgorICAgICAgICAgcmVzLmFwcGVuZChyZWQpCisg ICAgIHJldHVybiBjb2xsZWN0X2VxbnMocmVzKQorIAorLWNkZWYgbGlzdCBjb21wdXRlX2diKGZh Y3RvcnksIHR1cGxlIGFyZ3MpIG5vZXhjZXB0OgorK2NkZWYgbGlzdCBjb21wdXRlX2diKGZhY3Rv cnksIHR1cGxlIGFyZ3MpOgorICAgICByIiIiCisgICAgIENvbXB1dGUgdGhlIHJlZHVjZWQgR3Jv ZWJuZXIgYmFzaXMgZm9yIGdpdmVuIGVxdWF0aW9ucyBpdGVyYWJsZS4KKyAgICAgIiIiCitAQCAt NDI1LDcgKzQyNSw3IEBAIGNkZWYgbGlzdCBjb21wdXRlX2diKGZhY3RvcnksIHR1cGxlIGFyZ3Mp IG5vZXhjZXB0OgorICMgICBSZWR1Y2VycyAgICMKKyAjIyMjIyMjIyMjIyMjIyMjCisgCistY2Rl ZiBpbmxpbmUgbGlzdCBjb2xsZWN0X2VxbnMobGlzdCBlcW5zKSBub2V4Y2VwdDoKKytjZGVmIGlu bGluZSBsaXN0IGNvbGxlY3RfZXFucyhsaXN0IGVxbnMpOgorICAgICByIiIiCisgICAgIEhlbHBl ciBmdW5jdGlvbiBmb3IgcmV0dXJuaW5nIHByb2Nlc3NlZCByZXN1bHRzIGJhY2sgdG8gcGFyZW50 IHByb2Nlc3MuCisgCitAQCAtNDUwLDcgKzQ1MCw3IEBAIGNkZWYgZGljdCBtYXBwZXJzID0gewor ICAgICAicGVudF92ZXJpZnkiOiBwZW50X3ZlcmlmeQorICAgICB9CisgCistY3BkZWYgZXhlY3V0 b3IodHVwbGUgcGFyYW1zKSBub2V4Y2VwdDoKKytjcGRlZiBleGVjdXRvcih0dXBsZSBwYXJhbXMp OgorICAgICByIiIiCisgICAgIEV4ZWN1dGUgYSBmdW5jdGlvbiBkZWZpbmVkIGluIHRoaXMgbW9k dWxlCisgICAgIChgYHNhZ2UuYWxnZWJyYXMuZnVzaW9uX3JpbmdzLmZhc3RfcGFyYWxsZWxfZm1h dHNfbWV0aG9kc2BgKSBpbiBhIHdvcmtlcgorQEAgLTQ5Nyw3ICs0OTcsNyBAQCBjcGRlZiBleGVj dXRvcih0dXBsZSBwYXJhbXMpIG5vZXhjZXB0OgorICMgICBWZXJpZmljYXRpb24gICAjCisgIyMj IyMjIyMjIyMjIyMjIyMjIyMKKyAKKy1jZGVmIGZlcV92ZXJpZihmYWN0b3J5LCB3b3JrZXJfcmVz dWx0cywgZnZhcnMsIE5rX2lqLCBpZF9hbnlvbiwgdHVwbGUgbm9udXBsZSwgZmxvYXQgdG9sPTVl LTgpIG5vZXhjZXB0OgorK2NkZWYgZmVxX3ZlcmlmKGZhY3RvcnksIHdvcmtlcl9yZXN1bHRzLCBm dmFycywgTmtfaWosIGlkX2FueW9uLCB0dXBsZSBub251cGxlLCBmbG9hdCB0b2w9NWUtOCk6Cisg ICAgIHIiIiIKKyAgICAgQ2hlY2sgdGhlIHBlbnRhZ29uIGVxdWF0aW9uIGNvcnJlc3BvbmRpbmcg dG8gdGhlIGdpdmVuIG5vbnVwbGUuCisgICAgICIiIgorQEAgLTUxNiw3ICs1MTYsNyBAQCBjZGVm IGZlcV92ZXJpZihmYWN0b3J5LCB3b3JrZXJfcmVzdWx0cywgZnZhcnMsIE5rX2lqLCBpZF9hbnlv biwgdHVwbGUgbm9udXBsZSwgZgorIEBjeXRob24ud3JhcGFyb3VuZChGYWxzZSkKKyBAY3l0aG9u Lm5vbmVjaGVjayhGYWxzZSkKKyBAY3l0aG9uLmNkaXZpc2lvbihUcnVlKQorLWNkZWYgcGVudF92 ZXJpZnkoZmFjdG9yeSwgdHVwbGUgbXBfcGFyYW1zKSBub2V4Y2VwdDoKKytjZGVmIHBlbnRfdmVy aWZ5KGZhY3RvcnksIHR1cGxlIG1wX3BhcmFtcyk6CisgICAgIHIiIiIKKyAgICAgR2VuZXJhdGUg YWxsIHRoZSBwZW50YWdvbiBlcXVhdGlvbnMgYXNzaWduZWQgdG8gdGhpcyBwcm9jZXNzLAorICAg ICBhbmQgcmVkdWNlIHRoZW0uCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvYWxnZWJyYXMvZnVzaW9u X3JpbmdzL2Zhc3RfcGFyYWxsZWxfZnVzaW9uX3JpbmdfYnJhaWRfcmVwbi5weGQgYi9zcmMvc2Fn ZS9hbGdlYnJhcy9mdXNpb25fcmluZ3MvZmFzdF9wYXJhbGxlbF9mdXNpb25fcmluZ19icmFpZF9y ZXBuLnB4ZAoraW5kZXggOWZkZTFmMGM1ZTguLmE5OTJmMDMzOWE0IDEwMDY0NAorLS0tIGEvc3Jj L3NhZ2UvYWxnZWJyYXMvZnVzaW9uX3JpbmdzL2Zhc3RfcGFyYWxsZWxfZnVzaW9uX3JpbmdfYnJh aWRfcmVwbi5weGQKKysrKyBiL3NyYy9zYWdlL2FsZ2VicmFzL2Z1c2lvbl9yaW5ncy9mYXN0X3Bh cmFsbGVsX2Z1c2lvbl9yaW5nX2JyYWlkX3JlcG4ucHhkCitAQCAtMSwyICsxLDIgQEAKKy1jcGRl ZiBfdW5mbGF0dGVuX2VudHJpZXMoZmFjdG9yeSwgbGlzdCBlbnRyaWVzKSBub2V4Y2VwdAorLWNw ZGVmIGV4ZWN1dG9yKHR1cGxlIHBhcmFtcykgbm9leGNlcHQKKytjcGRlZiBfdW5mbGF0dGVuX2Vu dHJpZXMoZmFjdG9yeSwgbGlzdCBlbnRyaWVzKQorK2NwZGVmIGV4ZWN1dG9yKHR1cGxlIHBhcmFt cykKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9hbGdlYnJhcy9mdXNpb25fcmluZ3MvZmFzdF9wYXJh bGxlbF9mdXNpb25fcmluZ19icmFpZF9yZXBuLnB5eCBiL3NyYy9zYWdlL2FsZ2VicmFzL2Z1c2lv bl9yaW5ncy9mYXN0X3BhcmFsbGVsX2Z1c2lvbl9yaW5nX2JyYWlkX3JlcG4ucHl4CitpbmRleCBi ZDgwOWFjZDVjZi4uYWQ2ZThhMTYyMWUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9hbGdlYnJhcy9m dXNpb25fcmluZ3MvZmFzdF9wYXJhbGxlbF9mdXNpb25fcmluZ19icmFpZF9yZXBuLnB5eAorKysr IGIvc3JjL3NhZ2UvYWxnZWJyYXMvZnVzaW9uX3JpbmdzL2Zhc3RfcGFyYWxsZWxfZnVzaW9uX3Jp bmdfYnJhaWRfcmVwbi5weXgKK0BAIC0xOCw3ICsxOCw3IEBAIGZyb20gc2FnZS5yaW5ncy5xcWJh ciBpbXBvcnQgUVFiYXIKKyAjICAgTWFwcGVycyAgICMKKyAjIyMjIyMjIyMjIyMjIyMKKyAKKy1j ZGVmIG1pZF9zaWdfaWooZnVzaW9uX3JpbmcsIHJvdywgY29sLCBhLCBiKSBub2V4Y2VwdDoKKytj ZGVmIG1pZF9zaWdfaWooZnVzaW9uX3JpbmcsIHJvdywgY29sLCBhLCBiKToKKyAgICAgciIiIgor ICAgICBDb21wdXRlIHRoZSAoeGksIHlpKSwgKHhqLCB5aikgZW50cnkgb2YgZ2VuZXJhdG9yIGJy YWlkaW5nIHRoZSBtaWRkbGUgdHdvCisgICAgIHN0cmFuZHMgaW4gdGhlIHRyZWUgYiAtPiB4aSAj IHlpIC0+IChhICMgYSkgIyAoYSAjIGEpLCB3aGljaCByZXN1bHRzIGluCitAQCAtNDgsNyArNDgs NyBAQCBjZGVmIG1pZF9zaWdfaWooZnVzaW9uX3JpbmcsIHJvdywgY29sLCBhLCBiKSBub2V4Y2Vw dDoKKyAgICAgICAgICAgICBlbnRyeSArPSBmMSAqIGYyICogciAqIGYzICogZjQKKyAgICAgcmV0 dXJuIGVudHJ5CisgCistY2RlZiBvZGRfb25lX291dF9paihmdXNpb25fcmluZywgeGksIHhqLCBh LCBiKSBub2V4Y2VwdDoKKytjZGVmIG9kZF9vbmVfb3V0X2lqKGZ1c2lvbl9yaW5nLCB4aSwgeGos IGEsIGIpOgorICAgICByIiIiCisgICAgIENvbXB1dGUgdGhlIGB4aWAsIGB4amAgZW50cnkgb2Yg dGhlIGJyYWlkIGdlbmVyYXRvciBvbiB0aGUgdHdvIHJpZ2h0LW1vc3QKKyAgICAgc3RyYW5kcywg Y29ycmVzcG9uZGluZyB0byB0aGUgdHJlZSBiIC0+ICh4aSAjIGEpIC0+IChhICMgYSkgIyBhLCB3 aGljaAorQEAgLTc2LDcgKzc2LDcgQEAgY2RlZiBvZGRfb25lX291dF9paihmdXNpb25fcmluZywg eGksIHhqLCBhLCBiKSBub2V4Y2VwdDoKKyBjZGVmIG9kZF9vbmVfb3V0X2lqX2NhY2hlID0gZGlj dCgpCisgY2RlZiBtaWRfc2lnX2lqX2NhY2hlID0gZGljdCgpCisgCistY2RlZiBjYWNoZWRfbWlk X3NpZ19paihmdXNpb25fcmluZywgcm93LCBjb2wsIGEsIGIpIG5vZXhjZXB0OgorK2NkZWYgY2Fj aGVkX21pZF9zaWdfaWooZnVzaW9uX3JpbmcsIHJvdywgY29sLCBhLCBiKToKKyAgICAgciIiIgor ICAgICBDYWNoZWQgdmVyc2lvbiBvZiA6bWV0aDpgbWlkX3NpZ19pamAuCisgICAgICIiIgorQEAg LTg2LDcgKzg2LDcgQEAgY2RlZiBjYWNoZWRfbWlkX3NpZ19paihmdXNpb25fcmluZywgcm93LCBj b2wsIGEsIGIpIG5vZXhjZXB0OgorICAgICBtaWRfc2lnX2lqX2NhY2hlW3JvdywgY29sLCBhLCBi XSA9IGVudHJ5CisgICAgIHJldHVybiBlbnRyeQorIAorLWNkZWYgY2FjaGVkX29kZF9vbmVfb3V0 X2lqKGZ1c2lvbl9yaW5nLCB4aSwgeGosIGEsIGIpIG5vZXhjZXB0OgorK2NkZWYgY2FjaGVkX29k ZF9vbmVfb3V0X2lqKGZ1c2lvbl9yaW5nLCB4aSwgeGosIGEsIGIpOgorICAgICByIiIiCisgICAg IENhY2hlZCB2ZXJzaW9uIG9mIDptZXRoOmBvZGRfb25lX291dF9pamAuCisgICAgICIiIgorQEAg LTk5LDcgKzk5LDcgQEAgY2RlZiBjYWNoZWRfb2RkX29uZV9vdXRfaWooZnVzaW9uX3JpbmcsIHhp LCB4aiwgYSwgYikgbm9leGNlcHQ6CisgCisgQGN5dGhvbi5ub25lY2hlY2soRmFsc2UpCisgQGN5 dGhvbi5jZGl2aXNpb24oVHJ1ZSkKKy1jZGVmIHNpZ18yayhmdXNpb25fcmluZywgdHVwbGUgYXJn cykgbm9leGNlcHQ6CisrY2RlZiBzaWdfMmsoZnVzaW9uX3JpbmcsIHR1cGxlIGFyZ3MpOgorICAg ICByIiIiCisgICAgIENvbXB1dGUgZW50cmllcyBvZiB0aGUgYDJrYC10aCBicmFpZCBnZW5lcmF0 b3IKKyAgICAgIiIiCitAQCAtMTc5LDcgKzE3OSw3IEBAIGNkZWYgc2lnXzJrKGZ1c2lvbl9yaW5n LCB0dXBsZSBhcmdzKSBub2V4Y2VwdDoKKyAKKyBAY3l0aG9uLm5vbmVjaGVjayhGYWxzZSkKKyBA Y3l0aG9uLmNkaXZpc2lvbihUcnVlKQorLWNkZWYgb2RkX29uZV9vdXQoZnVzaW9uX3JpbmcsIHR1 cGxlIGFyZ3MpIG5vZXhjZXB0OgorK2NkZWYgb2RkX29uZV9vdXQoZnVzaW9uX3JpbmcsIHR1cGxl IGFyZ3MpOgorICAgICByIiIiCisgICAgIENvbXB1dGUgZW50cmllcyBvZiB0aGUgcmlnaHRtb3N0 IGJyYWlkIGdlbmVyYXRvciwgaW4gY2FzZSB3ZSBoYXZlIGFuCisgICAgIG9kZCBudW1iZXIgb2Yg c3RyYW5kcy4KK0BAIC0yNjMsNyArMjYzLDcgQEAgY2RlZiBkaWN0IG1hcHBlcnMgPSB7CisgICAg ICJvZGRfb25lX291dCI6IG9kZF9vbmVfb3V0CisgfQorIAorLWNwZGVmIGV4ZWN1dG9yKHR1cGxl IHBhcmFtcykgbm9leGNlcHQ6CisrY3BkZWYgZXhlY3V0b3IodHVwbGUgcGFyYW1zKToKKyAgICAg ciIiIgorICAgICBFeGVjdXRlIGEgZnVuY3Rpb24gcmVnaXN0ZXJlZCBpbiB0aGlzIG1vZHVsZSdz IGBgbWFwcGVyc2BgCisgICAgIGluIGEgd29ya2VyIHByb2Nlc3MsIGFuZCBzdXBwbHkgdGhlIGBg RnVzaW9uUmluZ2BgIHBhcmFtZXRlciBieQorQEAgLTMwNSw3ICszMDUsNyBAQCBjcGRlZiBleGVj dXRvcih0dXBsZSBwYXJhbXMpIG5vZXhjZXB0OgorICMgICBQaWNrbGluZyBjaXJjdW12ZW50aW9u IGhlbHBlcnMgICAjCisgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAK Ky1jcGRlZiBfdW5mbGF0dGVuX2VudHJpZXMoZnVzaW9uX3JpbmcsIGxpc3QgZW50cmllcykgbm9l eGNlcHQ6CisrY3BkZWYgX3VuZmxhdHRlbl9lbnRyaWVzKGZ1c2lvbl9yaW5nLCBsaXN0IGVudHJp ZXMpOgorICAgICByIiIiCisgICAgIFJlc3RvcmUgY3ljbG90b21pYyBjb2VmZmljaWVudCBvYmpl Y3QgZnJvbSBpdHMgdHVwbGUgb2YgcmF0aW9uYWwKKyAgICAgY29lZmZpY2llbnRzIHJlcHJlc2Vu dGF0aW9uLgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2FsZ2VicmFzL2Z1c2lvbl9yaW5ncy9wb2x5 X3R1cF9lbmdpbmUucHhkIGIvc3JjL3NhZ2UvYWxnZWJyYXMvZnVzaW9uX3JpbmdzL3BvbHlfdHVw X2VuZ2luZS5weGQKK2luZGV4IGFjMmM1MDQxZGU5Li41MDQ5MzY5MWYyOSAxMDA2NDQKKy0tLSBh L3NyYy9zYWdlL2FsZ2VicmFzL2Z1c2lvbl9yaW5ncy9wb2x5X3R1cF9lbmdpbmUucHhkCisrKysg Yi9zcmMvc2FnZS9hbGdlYnJhcy9mdXNpb25fcmluZ3MvcG9seV90dXBfZW5naW5lLnB4ZAorQEAg LTMsMjEgKzMsMjEgQEAgZnJvbSBzYWdlLnJpbmdzLm51bWJlcl9maWVsZC5udW1iZXJfZmllbGRf ZWxlbWVudCBjaW1wb3J0IE51bWJlckZpZWxkRWxlbWVudF9hYnMKKyBmcm9tIHNhZ2UucmluZ3Mu cG9seW5vbWlhbC5tdWx0aV9wb2x5bm9taWFsX2xpYnNpbmd1bGFyIGNpbXBvcnQgTVBvbHlub21p YWxfbGlic2luZ3VsYXIsIE1Qb2x5bm9taWFsUmluZ19saWJzaW5ndWxhcgorIGZyb20gc2FnZS5y aW5ncy5wb2x5bm9taWFsLnBvbHlkaWN0IGNpbXBvcnQgRVR1cGxlCisgCistY3BkZWYgdHVwbGUg cG9seV90b190dXAoTVBvbHlub21pYWxfbGlic2luZ3VsYXIgcG9seSkgbm9leGNlcHQKKy1jcGRl ZiBNUG9seW5vbWlhbF9saWJzaW5ndWxhciBfdHVwX3RvX3BvbHkodHVwbGUgZXFfdHVwLCBNUG9s eW5vbWlhbFJpbmdfbGlic2luZ3VsYXIgcGFyZW50KSBub2V4Y2VwdAorLWNwZGVmIHR1cGxlIHJl c2l6ZSh0dXBsZSBlcV90dXAsIGRpY3QgaWR4X21hcCwgaW50IG52YXJzKSBub2V4Y2VwdAorLWNw ZGVmIGxpc3QgZ2V0X3ZhcmlhYmxlc19kZWdyZWVzKGxpc3QgZXFucywgaW50IG52YXJzKSBub2V4 Y2VwdAorLWNwZGVmIGxpc3QgdmFyaWFibGVzKHR1cGxlIGVxX3R1cCkgbm9leGNlcHQKKy1jcGRl ZiBjb25zdGFudF9jb2VmZih0dXBsZSBlcV90dXAsIGZpZWxkKSBub2V4Y2VwdAorLWNwZGVmIHR1 cGxlIGFwcGx5X2NvZWZmX21hcCh0dXBsZSBlcV90dXAsIGNvZWZmX21hcCkgbm9leGNlcHQKKytj cGRlZiB0dXBsZSBwb2x5X3RvX3R1cChNUG9seW5vbWlhbF9saWJzaW5ndWxhciBwb2x5KQorK2Nw ZGVmIE1Qb2x5bm9taWFsX2xpYnNpbmd1bGFyIF90dXBfdG9fcG9seSh0dXBsZSBlcV90dXAsIE1Q b2x5bm9taWFsUmluZ19saWJzaW5ndWxhciBwYXJlbnQpCisrY3BkZWYgdHVwbGUgcmVzaXplKHR1 cGxlIGVxX3R1cCwgZGljdCBpZHhfbWFwLCBpbnQgbnZhcnMpCisrY3BkZWYgbGlzdCBnZXRfdmFy aWFibGVzX2RlZ3JlZXMobGlzdCBlcW5zLCBpbnQgbnZhcnMpCisrY3BkZWYgbGlzdCB2YXJpYWJs ZXModHVwbGUgZXFfdHVwKQorK2NwZGVmIGNvbnN0YW50X2NvZWZmKHR1cGxlIGVxX3R1cCwgZmll bGQpCisrY3BkZWYgdHVwbGUgYXBwbHlfY29lZmZfbWFwKHR1cGxlIGVxX3R1cCwgY29lZmZfbWFw KQorICMgY3BkZWYgYmludCB0dXBfZml4ZXNfc3EodHVwbGUgZXFfdHVwKQorIGNkZWYgYmludCB0 dXBfZml4ZXNfc3EodHVwbGUgZXFfdHVwKSBub2V4Y2VwdAorLWNkZWYgZGljdCBzdWJzX3NxdWFy ZXMoZGljdCBlcV9kaWN0LCBLU0hhbmRsZXIga25vd25fc3EpIG5vZXhjZXB0CistY3BkZWYgZGlj dCBjb21wdXRlX2tub3duX3Bvd2VycyhtYXhfZGVncywgZGljdCB2YWxfZGljdCwgb25lKSBub2V4 Y2VwdAorLWNkZWYgZGljdCBzdWJzKHR1cGxlIHBvbHlfdHVwLCBkaWN0IGtub3duX3Bvd2Vycywg b25lKSBub2V4Y2VwdAorLWNwZGVmIHR1cF90b191bml2X3BvbHkodHVwbGUgZXFfdHVwLCB1bml2 X3BvbHlfcmluZykgbm9leGNlcHQKKy1jcGRlZiB0dXBsZSBwb2x5X3R1cF9zb3J0a2V5KHR1cGxl IGVxX3R1cCkgbm9leGNlcHQKKy1jZGVmIHR1cGxlIHJlZHVjZV9wb2x5X2RpY3QoZGljdCBlcV9k aWN0LCBFVHVwbGUgbm9ueiwgS1NIYW5kbGVyIGtub3duX3NxLCBOdW1iZXJGaWVsZEVsZW1lbnRf YWJzb2x1dGUgb25lKSBub2V4Y2VwdAorLWNkZWYgdHVwbGUgX2ZsYXR0ZW5fY29lZmZzKHR1cGxl IGVxX3R1cCkgbm9leGNlcHQKKy1jcGRlZiB0dXBsZSBfdW5mbGF0dGVuX2NvZWZmcyhmaWVsZCwg dHVwbGUgZXFfdHVwKSBub2V4Y2VwdAorK2NkZWYgZGljdCBzdWJzX3NxdWFyZXMoZGljdCBlcV9k aWN0LCBLU0hhbmRsZXIga25vd25fc3EpCisrY3BkZWYgZGljdCBjb21wdXRlX2tub3duX3Bvd2Vy cyhtYXhfZGVncywgZGljdCB2YWxfZGljdCwgb25lKQorK2NkZWYgZGljdCBzdWJzKHR1cGxlIHBv bHlfdHVwLCBkaWN0IGtub3duX3Bvd2Vycywgb25lKQorK2NwZGVmIHR1cF90b191bml2X3BvbHko dHVwbGUgZXFfdHVwLCB1bml2X3BvbHlfcmluZykKKytjcGRlZiB0dXBsZSBwb2x5X3R1cF9zb3J0 a2V5KHR1cGxlIGVxX3R1cCkKKytjZGVmIHR1cGxlIHJlZHVjZV9wb2x5X2RpY3QoZGljdCBlcV9k aWN0LCBFVHVwbGUgbm9ueiwgS1NIYW5kbGVyIGtub3duX3NxLCBOdW1iZXJGaWVsZEVsZW1lbnRf YWJzb2x1dGUgb25lKQorK2NkZWYgdHVwbGUgX2ZsYXR0ZW5fY29lZmZzKHR1cGxlIGVxX3R1cCkK KytjcGRlZiB0dXBsZSBfdW5mbGF0dGVuX2NvZWZmcyhmaWVsZCwgdHVwbGUgZXFfdHVwKQorIGNk ZWYgaW50IGhhc19hcHByb3ByaWF0ZV9saW5lYXJfdGVybSh0dXBsZSBlcV90dXApIG5vZXhjZXB0 CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvYWxnZWJyYXMvZnVzaW9uX3JpbmdzL3BvbHlfdHVwX2Vu Z2luZS5weXggYi9zcmMvc2FnZS9hbGdlYnJhcy9mdXNpb25fcmluZ3MvcG9seV90dXBfZW5naW5l LnB5eAoraW5kZXggMjdmNGZmMWViNzEuLmU0NGZiNjhiODM2IDEwMDY0NAorLS0tIGEvc3JjL3Nh Z2UvYWxnZWJyYXMvZnVzaW9uX3JpbmdzL3BvbHlfdHVwX2VuZ2luZS5weXgKKysrKyBiL3NyYy9z YWdlL2FsZ2VicmFzL2Z1c2lvbl9yaW5ncy9wb2x5X3R1cF9lbmdpbmUucHl4CitAQCAtMTIsNyAr MTIsNyBAQCBBcml0aG1ldGljIEVuZ2luZSBmb3IgUG9seW5vbWlhbHMgYXMgVHVwbGVzCisgIyAg IEFQSSAgICMKKyAjIyMjIyMjIyMjIworIAorLWNwZGVmIGlubGluZSB0dXBsZSBwb2x5X3RvX3R1 cChNUG9seW5vbWlhbF9saWJzaW5ndWxhciBwb2x5KSBub2V4Y2VwdDoKKytjcGRlZiBpbmxpbmUg dHVwbGUgcG9seV90b190dXAoTVBvbHlub21pYWxfbGlic2luZ3VsYXIgcG9seSk6CisgICAgIHIi IiIKKyAgICAgQ29udmVydCBhIHBvbHlub21pYWwgb2JqZWN0IGludG8gdGhlIGludGVybmFsIHJl cHJlc2VudGF0aW9uIGFzIHR1cGxlIG9mCisgICAgIGBgKEVUdXBsZSBleHAsIE51bWJlckZpZWxk RWxlbWVudCBjb2VmZilgYCBwYWlycy4KK0BAIC0yOCw3ICsyOCw3IEBAIGNwZGVmIGlubGluZSB0 dXBsZSBwb2x5X3RvX3R1cChNUG9seW5vbWlhbF9saWJzaW5ndWxhciBwb2x5KSBub2V4Y2VwdDoK KyAgICAgIiIiCisgICAgIHJldHVybiB0dXBsZShwb2x5LmRpY3QoKS5pdGVtcygpKQorIAorLWNw ZGVmIGlubGluZSBNUG9seW5vbWlhbF9saWJzaW5ndWxhciBfdHVwX3RvX3BvbHkodHVwbGUgZXFf dHVwLCBNUG9seW5vbWlhbFJpbmdfbGlic2luZ3VsYXIgcGFyZW50KSBub2V4Y2VwdDoKKytjcGRl ZiBpbmxpbmUgTVBvbHlub21pYWxfbGlic2luZ3VsYXIgX3R1cF90b19wb2x5KHR1cGxlIGVxX3R1 cCwgTVBvbHlub21pYWxSaW5nX2xpYnNpbmd1bGFyIHBhcmVudCk6CisgICAgIHIiIiIKKyAgICAg UmV0dXJuIGEgcG9seW5vbWlhbCBvYmplY3QgZnJvbSBpdHMgdHVwbGUgb2YgcGFpcnMgcmVwcmVz ZW50YXRpb24uCisgCitAQCAtNzQsNyArNzQsNyBAQCBjcGRlZiBpbmxpbmUgTVBvbHlub21pYWxf bGlic2luZ3VsYXIgX3R1cF90b19wb2x5KHR1cGxlIGVxX3R1cCwgTVBvbHlub21pYWxSaW5nXwor ICAgICAiIiIKKyAgICAgcmV0dXJuIHBhcmVudC5fZWxlbWVudF9jb25zdHJ1Y3Rvcl8oZGljdChl cV90dXApLCBjaGVjaz1GYWxzZSkKKyAKKy1jZGVmIGlubGluZSB0dXBsZSBfZmxhdHRlbl9jb2Vm ZnModHVwbGUgZXFfdHVwKSBub2V4Y2VwdDoKKytjZGVmIGlubGluZSB0dXBsZSBfZmxhdHRlbl9j b2VmZnModHVwbGUgZXFfdHVwKToKKyAgICAgciIiIgorICAgICBGbGF0dGVuIGN5Y2xvdG9taWMg Y29lZmZpY2llbnRzIHRvIGEgcmVwcmVzZW50YXRpb24gYXMgYSB0dXBsZSBvZiByYXRpb25hbAor ICAgICBjb2VmZmljaWVudHMuCitAQCAtODgsNyArODgsNyBAQCBjZGVmIGlubGluZSB0dXBsZSBf ZmxhdHRlbl9jb2VmZnModHVwbGUgZXFfdHVwKSBub2V4Y2VwdDoKKyAgICAgICAgIGZsYXQuYXBw ZW5kKChleHAsIHR1cGxlKGN5Y19jb2VmZi5fY29lZmZpY2llbnRzKCkpKSkKKyAgICAgcmV0dXJu IHR1cGxlKGZsYXQpCisgCistY3BkZWYgdHVwbGUgX3VuZmxhdHRlbl9jb2VmZnMoZmllbGQsIHR1 cGxlIGVxX3R1cCkgbm9leGNlcHQ6CisrY3BkZWYgdHVwbGUgX3VuZmxhdHRlbl9jb2VmZnMoZmll bGQsIHR1cGxlIGVxX3R1cCk6CisgICAgIHIiIiIKKyAgICAgUmVzdG9yZSBjeWNsb3RvbWljIGNv ZWZmaWNpZW50IG9iamVjdCBmcm9tIGl0cyB0dXBsZSBvZiByYXRpb25hbAorICAgICBjb2VmZmlj aWVudHMgcmVwcmVzZW50YXRpb24uCitAQCAtMTQ5LDcgKzE0OSw3IEBAIGNkZWYgaW5saW5lIGlu dCBoYXNfYXBwcm9wcmlhdGVfbGluZWFyX3Rlcm0odHVwbGUgZXFfdHVwKSBub2V4Y2VwdDoKKyAj ICAgIkNoYW5nZSByaW5ncyIgICAjCisgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIAorLWNwZGVm IGlubGluZSB0dXBfdG9fdW5pdl9wb2x5KHR1cGxlIGVxX3R1cCwgdW5pdl9wb2x5X3JpbmcpIG5v ZXhjZXB0OgorK2NwZGVmIGlubGluZSB0dXBfdG9fdW5pdl9wb2x5KHR1cGxlIGVxX3R1cCwgdW5p dl9wb2x5X3JpbmcpOgorICAgICByIiIiCisgICAgIEdpdmVuIGEgdHVwbGUgb2YgcGFpcnMgcmVw cmVzZW50aW5nIGEgdW5pdmFyaWF0ZSBwb2x5bm9taWFsIGFuZCBhIHVuaXZhcmlhdGUKKyAgICAg cG9seW5vbWlhbCByaW5nLCByZXR1cm4gYSB1bml2YXJpYXRlIHBvbHlub21pYWwgb2JqZWN0Lgor QEAgLTE3Nyw3ICsxNzcsNyBAQCBjcGRlZiBpbmxpbmUgdHVwX3RvX3VuaXZfcG9seSh0dXBsZSBl cV90dXAsIHVuaXZfcG9seV9yaW5nKSBub2V4Y2VwdDoKKyAgICAgY2RlZiBOdW1iZXJGaWVsZEVs ZW1lbnRfYWJzb2x1dGUgYworICAgICByZXR1cm4gdW5pdl9wb2x5X3Jpbmcoe2V4cC5fZGF0YVsx XSBpZiBleHAuX25vbnplcm8gZWxzZSAwOiBjIGZvciBleHAsIGMgaW4gZXFfdHVwfSkKKyAKKy1j cGRlZiBpbmxpbmUgdHVwbGUgcmVzaXplKHR1cGxlIGVxX3R1cCwgZGljdCBpZHhfbWFwLCBpbnQg bnZhcnMpIG5vZXhjZXB0OgorK2NwZGVmIGlubGluZSB0dXBsZSByZXNpemUodHVwbGUgZXFfdHVw LCBkaWN0IGlkeF9tYXAsIGludCBudmFycyk6CisgICAgIHIiIiIKKyAgICAgUmV0dXJuIGEgdHVw bGUgcmVwcmVzZW50aW5nIGEgcG9seW5vbWlhbCBpbiBhIHJpbmcgd2l0aAorICAgICBgYGxlbihz b3J0ZWRfdmFycylgYCBnZW5lcmF0b3JzLgorQEAgLTIxOCw3ICsyMTgsNyBAQCBjcGRlZiBpbmxp bmUgdHVwbGUgcmVzaXplKHR1cGxlIGVxX3R1cCwgZGljdCBpZHhfbWFwLCBpbnQgbnZhcnMpIG5v ZXhjZXB0OgorICMgICBDb252ZW5pZW5jZSBtZXRob2RzICAgIworICMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworIAorLWNkZWYgaW5saW5lIEVUdXBsZSBkZWdyZWVzKHR1cGxlIHBvbHlfdHVw KSBub2V4Y2VwdDoKKytjZGVmIGlubGluZSBFVHVwbGUgZGVncmVlcyh0dXBsZSBwb2x5X3R1cCk6 CisgICAgIHIiIiIKKyAgICAgUmV0dXJuIHRoZSBtYXhpbWFsIGRlZ3JlZSBvZiBlYWNoIHZhcmlh YmxlIGluIHRoZSBwb2x5bm9taWFsLgorICAgICAiIiIKK0BAIC0yMzIsNyArMjMyLDcgQEAgY2Rl ZiBpbmxpbmUgRVR1cGxlIGRlZ3JlZXModHVwbGUgcG9seV90dXApIG5vZXhjZXB0OgorICAgICAg ICAgbWF4X2RlZ3MgPSBtYXhfZGVncy5lbWF4KDxFVHVwbGU+ICg8dHVwbGU+IHBvbHlfdHVwW2ld KVswXSkKKyAgICAgcmV0dXJuIG1heF9kZWdzCisgCistY3BkZWYgbGlzdCBnZXRfdmFyaWFibGVz X2RlZ3JlZXMobGlzdCBlcW5zLCBpbnQgbnZhcnMpIG5vZXhjZXB0OgorK2NwZGVmIGxpc3QgZ2V0 X3ZhcmlhYmxlc19kZWdyZWVzKGxpc3QgZXFucywgaW50IG52YXJzKToKKyAgICAgciIiIgorICAg ICBGaW5kIG1heGltdW0gZGVncmVlcyBmb3IgZWFjaCB2YXJpYWJsZSBpbiBlcXVhdGlvbnMuCisg CitAQCAtMjU3LDcgKzI1Nyw3IEBAIGNwZGVmIGxpc3QgZ2V0X3ZhcmlhYmxlc19kZWdyZWVzKGxp c3QgZXFucywgaW50IG52YXJzKSBub2V4Y2VwdDoKKyAgICAgICAgIGRlbnNlW21heF9kZWcuX2Rh dGFbMippXV0gPSBtYXhfZGVnLl9kYXRhWzIqaSsxXQorICAgICByZXR1cm4gZGVuc2UKKyAKKy1j cGRlZiBsaXN0IHZhcmlhYmxlcyh0dXBsZSBlcV90dXApIG5vZXhjZXB0OgorK2NwZGVmIGxpc3Qg dmFyaWFibGVzKHR1cGxlIGVxX3R1cCk6CisgICAgICIiIgorICAgICBSZXR1cm4gaW5kaWNlcyBv ZiBhbGwgdmFyaWFibGVzIGFwcGVhcmluZyBpbiBlcV90dXAKKyAKK0BAIC0yNzcsNyArMjc3LDcg QEAgY3BkZWYgbGlzdCB2YXJpYWJsZXModHVwbGUgZXFfdHVwKSBub2V4Y2VwdDoKKyAgICAgIiIi CisgICAgIHJldHVybiBkZWdyZWVzKGVxX3R1cCkubm9uemVyb19wb3NpdGlvbnMoKQorIAorLWNw ZGVmIGNvbnN0YW50X2NvZWZmKHR1cGxlIGVxX3R1cCwgZmllbGQpIG5vZXhjZXB0OgorK2NwZGVm IGNvbnN0YW50X2NvZWZmKHR1cGxlIGVxX3R1cCwgZmllbGQpOgorICAgICByIiIiCisgICAgIFJl dHVybiB0aGUgY29uc3RhbnQgY29lZmZpY2llbnQgb2YgdGhlIHBvbHlub21pYWwgcmVwcmVzZW50 ZWQgYnkKKyAgICAgZ2l2ZW4gdHVwbGUuCitAQCAtMzAwLDcgKzMwMCw3IEBAIGNwZGVmIGNvbnN0 YW50X2NvZWZmKHR1cGxlIGVxX3R1cCwgZmllbGQpIG5vZXhjZXB0OgorICAgICAgICAgICAgIHJl dHVybiBjb2VmZgorICAgICByZXR1cm4gZmllbGQuemVybygpCisgCistY3BkZWYgdHVwbGUgYXBw bHlfY29lZmZfbWFwKHR1cGxlIGVxX3R1cCwgY29lZmZfbWFwKSBub2V4Y2VwdDoKKytjcGRlZiB0 dXBsZSBhcHBseV9jb2VmZl9tYXAodHVwbGUgZXFfdHVwLCBjb2VmZl9tYXApOgorICAgICAiIiIK KyAgICAgQXBwbHkgYGBjb2VmZl9tYXBgYCB0byBjb2VmZmljaWVudHMuCisgCitAQCAtMzQyLDcg KzM0Miw3IEBAIGNkZWYgaW5saW5lIGJpbnQgdHVwX2ZpeGVzX3NxKHR1cGxlIGVxX3R1cCkgbm9l eGNlcHQ6CisgIyAgIFNpbXBsaWZpY2F0aW9uICAgIworICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK KyAKKy1jZGVmIGRpY3Qgc3Vic19zcXVhcmVzKGRpY3QgZXFfZGljdCwgS1NIYW5kbGVyIGtub3du X3NxKSBub2V4Y2VwdDoKKytjZGVmIGRpY3Qgc3Vic19zcXVhcmVzKGRpY3QgZXFfZGljdCwgS1NI YW5kbGVyIGtub3duX3NxKToKKyAgICAgciIiIgorICAgICBTdWJzdGl0dXRlIGZvciBrbm93biBz cXVhcmVzIGludG8gYSBnaXZlbiBwb2x5bm9taWFsLgorIAorQEAgLTM3OSw3ICszNzksNyBAQCBj ZGVmIGRpY3Qgc3Vic19zcXVhcmVzKGRpY3QgZXFfZGljdCwgS1NIYW5kbGVyIGtub3duX3NxKSBu b2V4Y2VwdDoKKyAgICAgICAgICAgICBzdWJiZWRbZXhwXSA9IGNvZWZmCisgICAgIHJldHVybiBz dWJiZWQKKyAKKy1jZGVmIGRpY3QgcmVtb3ZlX2djZihkaWN0IGVxX2RpY3QsIEVUdXBsZSBub256 KSBub2V4Y2VwdDoKKytjZGVmIGRpY3QgcmVtb3ZlX2djZihkaWN0IGVxX2RpY3QsIEVUdXBsZSBu b256KToKKyAgICAgciIiIgorICAgICBSZXR1cm4gYSBkaWN0aW9uYXJ5IG9mIGBgKEVUdXBsZSwg Y29lZmYpYGAgcGFpcnMgZGVzY3JpYmluZyB0aGUKKyAgICAgcG9seW5vbWlhbCBgYGVxIC8gR0NG KGVxKWBgLgorQEAgLTM5OSw3ICszOTksNyBAQCBjZGVmIGRpY3QgcmVtb3ZlX2djZihkaWN0IGVx X2RpY3QsIEVUdXBsZSBub256KSBub2V4Y2VwdDoKKyAgICAgICAgIHJldFtleHAuZXN1Yihjb21t b25fcG93ZXJzKV0gPSBjCisgICAgIHJldHVybiByZXQKKyAKKy1jZGVmIHR1cGxlIHRvX21vbmlj KGRpY3QgZXFfZGljdCwgb25lKSBub2V4Y2VwdDoKKytjZGVmIHR1cGxlIHRvX21vbmljKGRpY3Qg ZXFfZGljdCwgb25lKToKKyAgICAgIiIiCisgICAgIFJldHVybiB0dXBsZSBvZiBwYWlycyBgYChF VHVwbGUsIGNvZWZmKWBgIGRlc2NyaWJpbmcgdGhlIG1vbmljIHBvbHlub21pYWwKKyAgICAgYXNz b2NpYXRlZCB0byBgYGVxX2RpY3RgYC4KK0BAIC00MjIsNyArNDIyLDcgQEAgY2RlZiB0dXBsZSB0 b19tb25pYyhkaWN0IGVxX2RpY3QsIG9uZSkgbm9leGNlcHQ6CisgICAgICAgICByZXQuYXBwZW5k KChvcmRfbW9ub21zW24tMi1pXSwgaW52X2xjICogZXFfZGljdFtvcmRfbW9ub21zW24tMi1pXV0p KQorICAgICByZXR1cm4gdHVwbGUocmV0KQorIAorLWNkZWYgdHVwbGUgcmVkdWNlX3BvbHlfZGlj dChkaWN0IGVxX2RpY3QsIEVUdXBsZSBub256LCBLU0hhbmRsZXIga25vd25fc3EsIE51bWJlckZp ZWxkRWxlbWVudF9hYnNvbHV0ZSBvbmUpIG5vZXhjZXB0OgorK2NkZWYgdHVwbGUgcmVkdWNlX3Bv bHlfZGljdChkaWN0IGVxX2RpY3QsIEVUdXBsZSBub256LCBLU0hhbmRsZXIga25vd25fc3EsIE51 bWJlckZpZWxkRWxlbWVudF9hYnNvbHV0ZSBvbmUpOgorICAgICAiIiIKKyAgICAgUmV0dXJuIGEg dHVwbGUgZGVzY3JpYmluZyBhIG1vbmljIHBvbHlub21pYWwgd2l0aCBubyBrbm93biBub256ZXJv CisgICAgIGdjZiBhbmQgbm8ga25vd24gc3F1YXJlcy4KK0BAIC00MzcsNyArNDM3LDcgQEAgY2Rl ZiB0dXBsZSByZWR1Y2VfcG9seV9kaWN0KGRpY3QgZXFfZGljdCwgRVR1cGxlIG5vbnosIEtTSGFu ZGxlciBrbm93bl9zcSwgTnVtYmUKKyAjICAgU3Vic3RpdHV0aW9uICAgIworICMjIyMjIyMjIyMj IyMjIyMjIyMjCisgCistY3BkZWYgZGljdCBjb21wdXRlX2tub3duX3Bvd2VycyhtYXhfZGVncywg ZGljdCB2YWxfZGljdCwgb25lKSBub2V4Y2VwdDoKKytjcGRlZiBkaWN0IGNvbXB1dGVfa25vd25f cG93ZXJzKG1heF9kZWdzLCBkaWN0IHZhbF9kaWN0LCBvbmUpOgorICAgICAiIiIKKyAgICAgUHJl LWNvbXB1dGUgcG93ZXJzIG9mIGtub3duIHZhbHVlcyBmb3IgZWZmaWNpZW5jeSB3aGVuIHByZXBh cmluZyB0bworICAgICBzdWJzdGl0dXRlIGludG8gYSBsaXN0IG9mIHBvbHlub21pYWxzLgorQEAg LTQ4Miw3ICs0ODIsNyBAQCBjcGRlZiBkaWN0IGNvbXB1dGVfa25vd25fcG93ZXJzKG1heF9kZWdz LCBkaWN0IHZhbF9kaWN0LCBvbmUpIG5vZXhjZXB0OgorICAgICAgICAgICAgIGtub3duX3Bvd2Vy c1t2YXJfaWR4XVtwb3dlcisxXSA9IHR1cF9tdWwoa25vd25fcG93ZXJzW3Zhcl9pZHhdW3Bvd2Vy XSwgdmFsX2RpY3RbdmFyX2lkeF0pCisgICAgIHJldHVybiBrbm93bl9wb3dlcnMKKyAKKy1jZGVm IGRpY3Qgc3Vicyh0dXBsZSBwb2x5X3R1cCwgZGljdCBrbm93bl9wb3dlcnMsIG9uZSkgbm9leGNl cHQ6CisrY2RlZiBkaWN0IHN1YnModHVwbGUgcG9seV90dXAsIGRpY3Qga25vd25fcG93ZXJzLCBv bmUpOgorICAgICAiIiIKKyAgICAgU3Vic3RpdHV0ZSBnaXZlbiB2YXJpYWJsZXMgaW50byBhIHBv bHlub21pYWwgdHVwbGUuCisgICAgICIiIgorQEAgLTUwNSw3ICs1MDUsNyBAQCBjZGVmIGRpY3Qg c3Vicyh0dXBsZSBwb2x5X3R1cCwgZGljdCBrbm93bl9wb3dlcnMsIG9uZSkgbm9leGNlcHQ6Cisg ICAgICAgICAgICAgICAgIHN1YmJlZFtzaGlmdGVkX2V4cF0gPSBjb2VmZiAqIGMKKyAgICAgcmV0 dXJuIHN1YmJlZAorIAorLWNkZWYgdHVwbGUgdHVwX211bCh0dXBsZSBwMSwgdHVwbGUgcDIpIG5v ZXhjZXB0OgorK2NkZWYgdHVwbGUgdHVwX211bCh0dXBsZSBwMSwgdHVwbGUgcDIpOgorICAgICBy IiIiCisgICAgIE11bHRpcGxpY2F0aW9uIG9mIHR3byBwb2x5bm9taWFsIHR1cGxlcyB1c2luZyBz Y2hvb2xib29rIG11bHRpcGxpY2F0aW9uLgorICAgICAiIiIKK0BAIC01MjQsNyArNTI0LDcgQEAg Y2RlZiB0dXBsZSB0dXBfbXVsKHR1cGxlIHAxLCB0dXBsZSBwMikgbm9leGNlcHQ6CisgIyAgIFNv cnRpbmcgICAjCisgIyMjIyMjIyMjIyMjIyMjCisgCistY2RlZiB0dXBsZSBtb25vbV9zb3J0a2V5 KEVUdXBsZSBleHApIG5vZXhjZXB0OgorK2NkZWYgdHVwbGUgbW9ub21fc29ydGtleShFVHVwbGUg ZXhwKToKKyAgICAgciIiIgorICAgICBQcm9kdWNlIGEgc29ydGtleSBmb3IgYSBtb25vbWlhbCBl eHBvbmVudCB3aXRoIHJlc3BlY3QgdG8gZGVncmVlCisgICAgIHJldmVyc2VkIGxleGljb2dyYXBo aWMgb3JkZXJpbmcuCitAQCAtNTM1LDcgKzUzNSw3IEBAIGNkZWYgdHVwbGUgbW9ub21fc29ydGtl eShFVHVwbGUgZXhwKSBub2V4Y2VwdDoKKyAgICAgY2RlZiBFVHVwbGUgcmV2ID0gZXhwLnJldmVy c2VkKCkuZW11bCgtMSkKKyAgICAgcmV0dXJuIChkZWcsIHJldikKKyAKKy1jcGRlZiB0dXBsZSBw b2x5X3R1cF9zb3J0a2V5KHR1cGxlIGVxX3R1cCkgbm9leGNlcHQ6CisrY3BkZWYgdHVwbGUgcG9s eV90dXBfc29ydGtleSh0dXBsZSBlcV90dXApOgorICAgICByIiIiCisgICAgIFJldHVybiB0aGUg c29ydGtleSBvZiBhIHBvbHlub21pYWwgcmVwcmVzZW50ZWQgYXMgYSB0dXBsZSBvZgorICAgICBg YChFVHVwbGUsIGNvZWZmKWBgIHBhaXJzIHdpdGggcmVzcGVjdCB0byB0aGUgZGVncmVlCitkaWZm IC0tZ2l0IGEvc3JjL3NhZ2UvYWxnZWJyYXMvZnVzaW9uX3JpbmdzL3NobV9tYW5hZ2Vycy5weGQg Yi9zcmMvc2FnZS9hbGdlYnJhcy9mdXNpb25fcmluZ3Mvc2htX21hbmFnZXJzLnB4ZAoraW5kZXgg ZjFlMmVkNzQ3MTQuLjViMTU3NmJiNjc3IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvYWxnZWJyYXMv ZnVzaW9uX3JpbmdzL3NobV9tYW5hZ2Vycy5weGQKKysrKyBiL3NyYy9zYWdlL2FsZ2VicmFzL2Z1 c2lvbl9yaW5ncy9zaG1fbWFuYWdlcnMucHhkCitAQCAtOSw5ICs5LDkgQEAgY2RlZiBjbGFzcyBL U0hhbmRsZXI6CisgICAgIGNkZWYgcHVibGljIG9iamVjdCBzaG0KKyAKKyAgICAgY2RlZiBiaW50 IGNvbnRhaW5zKHNlbGYsIGludCBpZHgpIG5vZXhjZXB0CistICAgIGNkZWYgTnVtYmVyRmllbGRF bGVtZW50X2Fic29sdXRlIGdldChzZWxmLCBpbnQgaWR4KSBub2V4Y2VwdAorLSAgICBjZGVmIHNl dGl0ZW0oc2VsZiwgaW50IGlkeCwgcmhzKSBub2V4Y2VwdAorLSAgICBjcGRlZiB1cGRhdGUoc2Vs ZiwgbGlzdCBlcW5zKSBub2V4Y2VwdAorKyAgICBjZGVmIE51bWJlckZpZWxkRWxlbWVudF9hYnNv bHV0ZSBnZXQoc2VsZiwgaW50IGlkeCkKKysgICAgY2RlZiBzZXRpdGVtKHNlbGYsIGludCBpZHgs IHJocykKKysgICAgY3BkZWYgdXBkYXRlKHNlbGYsIGxpc3QgZXFucykKKyAKKyBjZGVmIGNsYXNz IEZ2YXJzSGFuZGxlcjoKKyAgICAgY2RlZiBkaWN0IHNleHRfdG9faWR4LCBvYmpfY2FjaGUKK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9hbGdlYnJhcy9mdXNpb25fcmluZ3Mvc2htX21hbmFnZXJzLnB5 eCBiL3NyYy9zYWdlL2FsZ2VicmFzL2Z1c2lvbl9yaW5ncy9zaG1fbWFuYWdlcnMucHl4CitpbmRl eCBkY2ZhMjc0YjVlYS4uNDBkMmViOWM4MDUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9hbGdlYnJh cy9mdXNpb25fcmluZ3Mvc2htX21hbmFnZXJzLnB5eAorKysrIGIvc3JjL3NhZ2UvYWxnZWJyYXMv ZnVzaW9uX3JpbmdzL3NobV9tYW5hZ2Vycy5weXgKK0BAIC0xNDQsNyArMTQ0LDcgQEAgY2RlZiBj bGFzcyBLU0hhbmRsZXI6CisgICAgIEBjeXRob24ubm9uZWNoZWNrKEZhbHNlKQorICAgICBAY3l0 aG9uLndyYXBhcm91bmQoRmFsc2UpCisgICAgIEBjeXRob24uYm91bmRzY2hlY2soRmFsc2UpCist ICAgIGNkZWYgTnVtYmVyRmllbGRFbGVtZW50X2Fic29sdXRlIGdldChzZWxmLCBpbnQgaWR4KSBu b2V4Y2VwdDoKKysgICAgY2RlZiBOdW1iZXJGaWVsZEVsZW1lbnRfYWJzb2x1dGUgZ2V0KHNlbGYs IGludCBpZHgpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0cmlldmUgdGhlIGtub3duIHNx dWFyZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbiBpbmRleCwKKyAgICAgICAgIGlmIGl0IGV4 aXN0cy4KK0BAIC0xNzUsNyArMTc1LDcgQEAgY2RlZiBjbGFzcyBLU0hhbmRsZXI6CisgICAgICAg ICBzZWxmLm9ial9jYWNoZVtpZHhdID0gY3ljX2NvZWZmCisgICAgICAgICByZXR1cm4gY3ljX2Nv ZWZmCisgCistICAgIGNwZGVmIHVwZGF0ZShzZWxmLCBsaXN0IGVxbnMpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiB1cGRhdGUoc2VsZiwgbGlzdCBlcW5zKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAg IFVwZGF0ZSBgYGBzZWxmYGAncyBgYHNoYXJlZF9tZW1vcnlgYC1iYWNrZWQgZGljdGlvbmFyeSBv ZiBrbm93bgorICAgICAgICAgc3F1YXJlcy4gS2V5cyBhcmUgdmFyaWFibGUgaW5kaWNlcyBhbmQg Y29ycmVzcG9uZGluZyB2YWx1ZXMKK0BAIC0yNDIsNyArMjQyLDcgQEAgY2RlZiBjbGFzcyBLU0hh bmRsZXI6CisgICAgIEBjeXRob24ubm9uZWNoZWNrKEZhbHNlKQorICAgICBAY3l0aG9uLndyYXBh cm91bmQoRmFsc2UpCisgICAgIEBjeXRob24uaW5mZXJfdHlwZXMoRmFsc2UpCistICAgIGNkZWYg c2V0aXRlbShzZWxmLCBpbnQgaWR4LCByaHMpIG5vZXhjZXB0OgorKyAgICBjZGVmIHNldGl0ZW0o c2VsZiwgaW50IGlkeCwgcmhzKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ3JlYXRlIGFuIGVu dHJ5IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVuIGluZGV4LgorIAorZGlmZiAtLWdpdCBhL3Ny Yy9zYWdlL2FsZ2VicmFzL2xldHRlcnBsYWNlL2ZyZWVfYWxnZWJyYV9lbGVtZW50X2xldHRlcnBs YWNlLnB4ZCBiL3NyYy9zYWdlL2FsZ2VicmFzL2xldHRlcnBsYWNlL2ZyZWVfYWxnZWJyYV9lbGVt ZW50X2xldHRlcnBsYWNlLnB4ZAoraW5kZXggZGRkNzdlOTRiZTcuLmQyMmZlNGU5YTQwIDEwMDY0 NAorLS0tIGEvc3JjL3NhZ2UvYWxnZWJyYXMvbGV0dGVycGxhY2UvZnJlZV9hbGdlYnJhX2VsZW1l bnRfbGV0dGVycGxhY2UucHhkCisrKysgYi9zcmMvc2FnZS9hbGdlYnJhcy9sZXR0ZXJwbGFjZS9m cmVlX2FsZ2VicmFfZWxlbWVudF9sZXR0ZXJwbGFjZS5weGQKK0BAIC0xMyw1ICsxMyw1IEBAIGZy b20gc2FnZS5hbGdlYnJhcy5sZXR0ZXJwbGFjZS5mcmVlX2FsZ2VicmFfbGV0dGVycGxhY2UgY2lt cG9ydCBGcmVlQWxnZWJyYV9sZXR0CisgCisgY2RlZiBjbGFzcyBGcmVlQWxnZWJyYUVsZW1lbnRf bGV0dGVycGxhY2UoQWxnZWJyYUVsZW1lbnQpOgorICAgICBjZGVmIE1Qb2x5bm9taWFsX2xpYnNp bmd1bGFyIF9wb2x5CistICAgIGNwZGVmIF9hZGRfKHNlbGYsIG90aGVyKSBub2V4Y2VwdAorLSAg ICBjcGRlZiBfbXVsXyhzZWxmLCBvdGhlcikgbm9leGNlcHQKKysgICAgY3BkZWYgX2FkZF8oc2Vs Ziwgb3RoZXIpCisrICAgIGNwZGVmIF9tdWxfKHNlbGYsIG90aGVyKQorZGlmZiAtLWdpdCBhL3Ny Yy9zYWdlL2FsZ2VicmFzL2xldHRlcnBsYWNlL2ZyZWVfYWxnZWJyYV9lbGVtZW50X2xldHRlcnBs YWNlLnB5eCBiL3NyYy9zYWdlL2FsZ2VicmFzL2xldHRlcnBsYWNlL2ZyZWVfYWxnZWJyYV9lbGVt ZW50X2xldHRlcnBsYWNlLnB5eAoraW5kZXggOGE5NTI2MjQxMGUuLjBlMjNlZDJmZWVhIDEwMDY0 NAorLS0tIGEvc3JjL3NhZ2UvYWxnZWJyYXMvbGV0dGVycGxhY2UvZnJlZV9hbGdlYnJhX2VsZW1l bnRfbGV0dGVycGxhY2UucHl4CisrKysgYi9zcmMvc2FnZS9hbGdlYnJhcy9sZXR0ZXJwbGFjZS9m cmVlX2FsZ2VicmFfZWxlbWVudF9sZXR0ZXJwbGFjZS5weXgKK0BAIC00NDEsNyArNDQxLDcgQEAg Y2RlZiBjbGFzcyBGcmVlQWxnZWJyYUVsZW1lbnRfbGV0dGVycGxhY2UoQWxnZWJyYUVsZW1lbnQp OgorICAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICAgcmV0dXJuIEZhbHNlCisg CistICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCBvdGhlciwgaW50IG9wKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIG90aGVyLCBpbnQgb3ApOgorICAgICAgICAgIiIiCisg ICAgICAgICBJbXBsZW1lbnQgY29tcGFyaXNvbnMsIHVzaW5nIHRoZSBDeXRob24gcmljaGNtcCBj b252ZW50aW9uLgorIAorQEAgLTQ1OCw3ICs0NTgsNyBAQCBjZGVmIGNsYXNzIEZyZWVBbGdlYnJh RWxlbWVudF9sZXR0ZXJwbGFjZShBbGdlYnJhRWxlbWVudCk6CisgCisgICAgICMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgICAgICMgQXJpdGhtZXRpYworLSAgICBjcGRlZiBfbmVn XyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX25lZ18oc2VsZik6CisgICAgICAgICAiIiIK KyAgICAgICAgIFRFU1RTOjoKKyAKK0BAIC00NzQsNyArNDc0LDcgQEAgY2RlZiBjbGFzcyBGcmVl QWxnZWJyYUVsZW1lbnRfbGV0dGVycGxhY2UoQWxnZWJyYUVsZW1lbnQpOgorICAgICAgICAgcmV0 dXJuIEZyZWVBbGdlYnJhRWxlbWVudF9sZXR0ZXJwbGFjZShzZWxmLl9wYXJlbnQsIC1zZWxmLl9w b2x5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVj az1GYWxzZSkKKyAKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBfYWRkXyhzZWxmLCBvdGhlcik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEFkZGl0 aW9uLCB1bmRlciB0aGUgc2lkZSBjb25kaXRpb24gdGhhdCBlaXRoZXIgb25lIHN1bW1hbmQKKyAg ICAgICAgIGlzIHplcm8sIG9yIGJvdGggc3VtbWFuZHMgaGF2ZSB0aGUgc2FtZSBkZWdyZWUuCitA QCAtNTA4LDcgKzUwOCw3IEBAIGNkZWYgY2xhc3MgRnJlZUFsZ2VicmFFbGVtZW50X2xldHRlcnBs YWNlKEFsZ2VicmFFbGVtZW50KToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5fcG9seSArIHJpZ2h0Ll9wb2x5LAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVjaz1GYWxzZSkKKyAKKy0gICAgY3BkZWYg X3N1Yl8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc3ViXyhzZWxmLCBvdGhl cik6CisgICAgICAgICAiIiIKKyAgICAgICAgIERpZmZlcmVuY2UsIHVuZGVyIHRoZSBzaWRlIGNv bmRpdGlvbiB0aGF0IGVpdGhlciBvbmUgc3VtbWFuZAorICAgICAgICAgaXMgemVybyBvciBib3Ro IGhhdmUgdGhlIHNhbWUgd2VpZ2h0ZWQgZGVncmVlLgorQEAgLTU0OCw3ICs1NDgsNyBAQCBjZGVm IGNsYXNzIEZyZWVBbGdlYnJhRWxlbWVudF9sZXR0ZXJwbGFjZShBbGdlYnJhRWxlbWVudCk6Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3BvbHkg LSByaWdodC5fcG9seSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY2hlY2s9RmFsc2UpCisgCistICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IHJp Z2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgcmlnaHQpOgor ICAgICAgICAgIiIiCisgICAgICAgICBNdWx0aXBsaWNhdGlvbiBmcm9tIHRoZSByaWdodCB3aXRo IGFuIGVsZW1lbnQgb2YgdGhlIGJhc2UgcmluZy4KKyAKK0BAIC01NjMsNyArNTYzLDcgQEAgY2Rl ZiBjbGFzcyBGcmVlQWxnZWJyYUVsZW1lbnRfbGV0dGVycGxhY2UoQWxnZWJyYUVsZW1lbnQpOgor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9wb2x5 Ll9sbXVsXyhyaWdodCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNoZWNrPUZhbHNlKQorIAorLSAgICBjcGRlZiBfcm11bF8oc2VsZiwgRWxlbWVudCBs ZWZ0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3JtdWxfKHNlbGYsIEVsZW1lbnQgbGVmdCk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIE11bHRpcGxpY2F0aW9uIGZyb20gdGhlIGxlZnQgd2l0aCBh biBlbGVtZW50IG9mIHRoZSBiYXNlIHJpbmcuCisgCitAQCAtNTc4LDcgKzU3OCw3IEBAIGNkZWYg Y2xhc3MgRnJlZUFsZ2VicmFFbGVtZW50X2xldHRlcnBsYWNlKEFsZ2VicmFFbGVtZW50KToKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcG9seS5f cm11bF8obGVmdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNoZWNrPUZhbHNlKQorIAorLSAgICBjcGRlZiBfbXVsXyhzZWxmLCBvdGhlcikgbm9leGNl cHQ6CisrICAgIGNwZGVmIF9tdWxfKHNlbGYsIG90aGVyKToKKyAgICAgICAgICIiIgorICAgICAg ICAgUHJvZHVjdCBvZiB0d28gZnJlZSBhbGdlYnJhIGVsZW1lbnRzIGluIGxldHRlcnBsYWNlIGlt cGxlbWVudGF0aW9uLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2FsZ2VicmFzL2xldHRlcnBs YWNlL2ZyZWVfYWxnZWJyYV9sZXR0ZXJwbGFjZS5weGQgYi9zcmMvc2FnZS9hbGdlYnJhcy9sZXR0 ZXJwbGFjZS9mcmVlX2FsZ2VicmFfbGV0dGVycGxhY2UucHhkCitpbmRleCBhNzI2MjYyNTQ2Yi4u NDdhNzI3NWFiYTAgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9hbGdlYnJhcy9sZXR0ZXJwbGFjZS9m cmVlX2FsZ2VicmFfbGV0dGVycGxhY2UucHhkCisrKysgYi9zcmMvc2FnZS9hbGdlYnJhcy9sZXR0 ZXJwbGFjZS9mcmVlX2FsZ2VicmFfbGV0dGVycGxhY2UucHhkCitAQCAtMjksNiArMjksNiBAQCBj ZGVmIGNsYXNzIEZyZWVBbGdlYnJhX2xldHRlcnBsYWNlKEFsZ2VicmEpOgorICAgICBjZGVmIGlu dCBfbmdlbnMKKyAgICAgY2RlZiBpbnQgX25iX3NsYWNrdmFycworICAgICBjZGVmIG9iamVjdCBf X21vbm9pZAorLSAgICBjZGVmIHN0ciBleHBvbmVudHNfdG9fc3RyaW5nKHNlbGYsIEUpIG5vZXhj ZXB0CistICAgIGNkZWYgc3RyIGV4cG9uZW50c190b19sYXRleChzZWxmLCBFKSBub2V4Y2VwdAor KyAgICBjZGVmIHN0ciBleHBvbmVudHNfdG9fc3RyaW5nKHNlbGYsIEUpCisrICAgIGNkZWYgc3Ry IGV4cG9uZW50c190b19sYXRleChzZWxmLCBFKQorICAgICBjZGVmIHR1cGxlIF9kZWdyZWVzCitk aWZmIC0tZ2l0IGEvc3JjL3NhZ2UvYWxnZWJyYXMvbGV0dGVycGxhY2UvZnJlZV9hbGdlYnJhX2xl dHRlcnBsYWNlLnB5eCBiL3NyYy9zYWdlL2FsZ2VicmFzL2xldHRlcnBsYWNlL2ZyZWVfYWxnZWJy YV9sZXR0ZXJwbGFjZS5weXgKK2luZGV4IDg0NGE1MDEzN2E3Li4yNzg1OTZjYzE3NyAxMDA2NDQK Ky0tLSBhL3NyYy9zYWdlL2FsZ2VicmFzL2xldHRlcnBsYWNlL2ZyZWVfYWxnZWJyYV9sZXR0ZXJw bGFjZS5weXgKKysrKyBiL3NyYy9zYWdlL2FsZ2VicmFzL2xldHRlcnBsYWNlL2ZyZWVfYWxnZWJy YV9sZXR0ZXJwbGFjZS5weXgKK0BAIC0xMzcsNyArMTM3LDcgQEAgZnJlZUFsZ2VicmEgPSBzaW5n dWxhcl9mdW5jdGlvbigiZnJlZUFsZ2VicmEiKQorICMjIyMjIyMjIyMjIyMjIyMjIyMjIworICMg QXV4aWxpYXJ5IGZ1bmN0aW9ucworIAorLWNkZWYgTVBvbHlub21pYWxSaW5nX2xpYnNpbmd1bGFy IG1ha2VfbGV0dGVycGxhY2VfcmluZyhiYXNlX3JpbmcsIGJsb2Nrcykgbm9leGNlcHQ6CisrY2Rl ZiBNUG9seW5vbWlhbFJpbmdfbGlic2luZ3VsYXIgbWFrZV9sZXR0ZXJwbGFjZV9yaW5nKGJhc2Vf cmluZywgYmxvY2tzKToKKyAgICAgIiIiCisgICAgIENyZWF0ZSBhIHBvbHlub21pYWwgcmluZyBp biBibG9jayBvcmRlci4KKyAKK0BAIC01NjMsNyArNTYzLDcgQEAgY2RlZiBjbGFzcyBGcmVlQWxn ZWJyYV9sZXR0ZXJwbGFjZShBbGdlYnJhKToKKyAgICAgICAgIHJldHVybiBzZWxmLl9fbW9ub2lk CisgCisgICAgICMgQXV4aWxpYXIgbWV0aG9kcworLSAgICBjZGVmIHN0ciBleHBvbmVudHNfdG9f c3RyaW5nKHNlbGYsIEUpIG5vZXhjZXB0OgorKyAgICBjZGVmIHN0ciBleHBvbmVudHNfdG9fc3Ry aW5nKHNlbGYsIEUpOgorICAgICAgICAgIiIiCisgICAgICAgICBUaGlzIGF1eGlsaWFyeSBtZXRo b2QgaXMgdXNlZCBmb3IgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBlbGVtZW50cyBvZiB0 aGlzIGZyZWUgYWxnZWJyYS4KKyAKK0BAIC02MDUsNyArNjA1LDcgQEAgY2RlZiBjbGFzcyBGcmVl QWxnZWJyYV9sZXR0ZXJwbGFjZShBbGdlYnJhKToKKyAgICAgICAgIHJldHVybiAnKicuam9pbihv dXQpCisgCisgICAgICMgQXV4aWxpYXIgbWV0aG9kcworLSAgICBjZGVmIHN0ciBleHBvbmVudHNf dG9fbGF0ZXgoc2VsZiwgRSkgbm9leGNlcHQ6CisrICAgIGNkZWYgc3RyIGV4cG9uZW50c190b19s YXRleChzZWxmLCBFKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFRoaXMgYXV4aWxpYXJ5IG1l dGhvZCBpcyB1c2VkIGZvciB0aGUgcmVwcmVzZW50YXRpb24gb2YgZWxlbWVudHMgb2YgdGhpcyBm cmVlIGFsZ2VicmEgYXMgYSBsYXRleCBzdHJpbmcuCisgCitAQCAtNjg5LDcgKzY4OSw3IEBAIGNk ZWYgY2xhc3MgRnJlZUFsZ2VicmFfbGV0dGVycGxhY2UoQWxnZWJyYSk6CisgCisgICAgICMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworICAgICAjIENvZXJjaW9uCistICAgIGNwZGVmIF9jb2Vy Y2VfbWFwX2Zyb21fKHNlbGYsIFMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfY29lcmNlX21hcF9m cm9tXyhzZWxmLCBTKToKKyAgICAgICAgICIiIgorICAgICAgICAgQSByaW5nIGBgUmBgIGNvZXJj ZXMgaW50byBzZWxmLCBpZgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2FsZ2VicmFzL2xpZV9h bGdlYnJhcy9saWVfYWxnZWJyYV9lbGVtZW50LnB4ZCBiL3NyYy9zYWdlL2FsZ2VicmFzL2xpZV9h bGdlYnJhcy9saWVfYWxnZWJyYV9lbGVtZW50LnB4ZAoraW5kZXggMjI3Y2UyNTU5ZjkuLjM2Nzdl YjI5NTg3IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvYWxnZWJyYXMvbGllX2FsZ2VicmFzL2xpZV9h bGdlYnJhX2VsZW1lbnQucHhkCisrKysgYi9zcmMvc2FnZS9hbGdlYnJhcy9saWVfYWxnZWJyYXMv bGllX2FsZ2VicmFfZWxlbWVudC5weGQKK0BAIC00LDI0ICs0LDI0IEBAIGZyb20gc2FnZS5zdHJ1 Y3R1cmUuc2FnZV9vYmplY3QgY2ltcG9ydCBTYWdlT2JqZWN0CisgZnJvbSBzYWdlLm1vZHVsZXMu d2l0aF9iYXNpcy5pbmRleGVkX2VsZW1lbnQgY2ltcG9ydCBJbmRleGVkRnJlZU1vZHVsZUVsZW1l bnQKKyAKKyBjZGVmIGNsYXNzIExpZUFsZ2VicmFFbGVtZW50KEluZGV4ZWRGcmVlTW9kdWxlRWxl bWVudCk6CistICAgIGNwZGVmIGxpZnQoc2VsZikgbm9leGNlcHQKKysgICAgY3BkZWYgbGlmdChz ZWxmKQorIAorIGNkZWYgY2xhc3MgTGllQWxnZWJyYUVsZW1lbnRXcmFwcGVyKEVsZW1lbnRXcmFw cGVyKToKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0CistICAgIGNwZGVm IF9zdWJfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdAorKyAgICBjcGRlZiBfYWRkXyhzZWxmLCByaWdo dCkKKysgICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQpCisgCisgY2RlZiBjbGFzcyBMaWVBbGdl YnJhTWF0cml4V3JhcHBlcihMaWVBbGdlYnJhRWxlbWVudFdyYXBwZXIpOgorICAgICBwYXNzCisg CisgY2RlZiBjbGFzcyBMaWVTdWJhbGdlYnJhRWxlbWVudFdyYXBwZXIoTGllQWxnZWJyYUVsZW1l bnRXcmFwcGVyKToKKyAgICAgY2RlZiBkaWN0IF9tb25vbWlhbF9jb2VmZmljaWVudHMKKy0gICAg Y3BkZWYgZGljdCBtb25vbWlhbF9jb2VmZmljaWVudHMoc2VsZiwgYmludCBjb3B5PSopIG5vZXhj ZXB0CisrICAgIGNwZGVmIGRpY3QgbW9ub21pYWxfY29lZmZpY2llbnRzKHNlbGYsIGJpbnQgY29w eT0qKQorIAorIGNkZWYgY2xhc3MgU3RydWN0dXJlQ29lZmZpY2llbnRzRWxlbWVudChMaWVBbGdl YnJhTWF0cml4V3JhcHBlcik6CistICAgIGNwZGVmIGJyYWNrZXQoc2VsZiwgcmlnaHQpIG5vZXhj ZXB0CistICAgIGNwZGVmIF9icmFja2V0XyhzZWxmLCByaWdodCkgbm9leGNlcHQKKy0gICAgY3Bk ZWYgdG9fdmVjdG9yKHNlbGYsIGJpbnQgc3BhcnNlPSopIG5vZXhjZXB0CistICAgIGNwZGVmIGRp Y3QgbW9ub21pYWxfY29lZmZpY2llbnRzKHNlbGYsIGJpbnQgY29weT0qKSBub2V4Y2VwdAorKyAg ICBjcGRlZiBicmFja2V0KHNlbGYsIHJpZ2h0KQorKyAgICBjcGRlZiBfYnJhY2tldF8oc2VsZiwg cmlnaHQpCisrICAgIGNwZGVmIHRvX3ZlY3RvcihzZWxmLCBiaW50IHNwYXJzZT0qKQorKyAgICBj cGRlZiBkaWN0IG1vbm9taWFsX2NvZWZmaWNpZW50cyhzZWxmLCBiaW50IGNvcHk9KikKKyAgICAg IyBjcGRlZiBsaWZ0KHNlbGYpCisgCisgY2RlZiBjbGFzcyBVbnR3aXN0ZWRBZmZpbmVMaWVBbGdl YnJhRWxlbWVudChFbGVtZW50KToKK0BAIC0zMCwyMyArMzAsMjMgQEAgY2RlZiBjbGFzcyBVbnR3 aXN0ZWRBZmZpbmVMaWVBbGdlYnJhRWxlbWVudChFbGVtZW50KToKKyAgICAgY2RlZiBfZF9jb2Vm ZgorICAgICBjZGVmIGxvbmcgX2hhc2gKKyAKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwgb3RoZXIp IG5vZXhjZXB0CistICAgIGNwZGVmIF9zdWJfKHNlbGYsIG90aGVyKSBub2V4Y2VwdAorLSAgICBj cGRlZiBfbmVnXyhzZWxmKSBub2V4Y2VwdAorKyAgICBjcGRlZiBfYWRkXyhzZWxmLCBvdGhlcikK KysgICAgY3BkZWYgX3N1Yl8oc2VsZiwgb3RoZXIpCisrICAgIGNwZGVmIF9uZWdfKHNlbGYpCisg CistICAgIGNwZGVmIGRpY3QgdF9kaWN0KHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIGNfY29l ZmZpY2llbnQoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgZF9jb2VmZmljaWVudChzZWxmKSBu b2V4Y2VwdAorKyAgICBjcGRlZiBkaWN0IHRfZGljdChzZWxmKQorKyAgICBjcGRlZiBjX2NvZWZm aWNpZW50KHNlbGYpCisrICAgIGNwZGVmIGRfY29lZmZpY2llbnQoc2VsZikKKyAKKy0gICAgY3Bk ZWYgYnJhY2tldChzZWxmLCB5KSBub2V4Y2VwdAorLSAgICBjcGRlZiBfYnJhY2tldF8oc2VsZiwg eSkgbm9leGNlcHQKKy0gICAgY3BkZWYgY2Fub25pY2FsX2Rlcml2YXRpb24oc2VsZikgbm9leGNl cHQKKy0gICAgY3BkZWYgbW9ub21pYWxfY29lZmZpY2llbnRzKHNlbGYsIGJpbnQgY29weT0qKSBu b2V4Y2VwdAorKyAgICBjcGRlZiBicmFja2V0KHNlbGYsIHkpCisrICAgIGNwZGVmIF9icmFja2V0 XyhzZWxmLCB5KQorKyAgICBjcGRlZiBjYW5vbmljYWxfZGVyaXZhdGlvbihzZWxmKQorKyAgICBj cGRlZiBtb25vbWlhbF9jb2VmZmljaWVudHMoc2VsZiwgYmludCBjb3B5PSopCisgCisgY2RlZiBj bGFzcyBMaWVPYmplY3QoU2FnZU9iamVjdCk6CisgICAgIGNkZWYgdHVwbGUgX3dvcmQKKyAgICAg Y2RlZiBwdWJsaWMgdHVwbGUgX2luZGV4X3dvcmQKKy0gICAgY3BkZWYgdHVwbGUgdG9fd29yZChz ZWxmKSBub2V4Y2VwdAorKyAgICBjcGRlZiB0dXBsZSB0b193b3JkKHNlbGYpCisgCisgY2RlZiBj bGFzcyBMaWVHZW5lcmF0b3IoTGllT2JqZWN0KToKKyAgICAgY2RlZiBwdWJsaWMgc3RyIF9uYW1l CitAQCAtNTcsNyArNTcsNyBAQCBjZGVmIGNsYXNzIExpZUJyYWNrZXQoTGllT2JqZWN0KToKKyAg ICAgY2RlZiBwdWJsaWMgTGllT2JqZWN0IF9yaWdodAorICAgICBjZGVmIGxvbmcgX2hhc2gKKyAK Ky0gICAgY3BkZWYgbGlmdChzZWxmLCBkaWN0IFVFQV9nZW5zX2RpY3QpIG5vZXhjZXB0CisrICAg IGNwZGVmIGxpZnQoc2VsZiwgZGljdCBVRUFfZ2Vuc19kaWN0KQorIAorIGNkZWYgY2xhc3MgR3Jh ZGVkTGllQnJhY2tldChMaWVCcmFja2V0KToKKyAgICAgY2RlZiBwdWJsaWMgX2dyYWRlCitkaWZm IC0tZ2l0IGEvc3JjL3NhZ2UvYWxnZWJyYXMvbGllX2FsZ2VicmFzL2xpZV9hbGdlYnJhX2VsZW1l bnQucHl4IGIvc3JjL3NhZ2UvYWxnZWJyYXMvbGllX2FsZ2VicmFzL2xpZV9hbGdlYnJhX2VsZW1l bnQucHl4CitpbmRleCBjYTUzNzUzMTUzYi4uOGM5NDc4ZDNlZjYgMTAwNjQ0CistLS0gYS9zcmMv c2FnZS9hbGdlYnJhcy9saWVfYWxnZWJyYXMvbGllX2FsZ2VicmFfZWxlbWVudC5weXgKKysrKyBi L3NyYy9zYWdlL2FsZ2VicmFzL2xpZV9hbGdlYnJhcy9saWVfYWxnZWJyYV9lbGVtZW50LnB5eAor QEAgLTEyNCw3ICsxMjQsNyBAQCBjZGVmIGNsYXNzIExpZUFsZ2VicmFFbGVtZW50KEluZGV4ZWRG cmVlTW9kdWxlRWxlbWVudCk6CisgICAgICAgICByZXR1cm4gY29kb21haW4uc3VtKGJhc2VfbWFw KGMpICogdC5faW1fZ2Vuc18oY29kb21haW4sIGltX2dlbnMsIG5hbWVzKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBmb3IgdCwgYyBpbiBzZWxmLl9tb25vbWlhbF9jb2VmZmljaWVudHMu aXRlbXMoKSkKKyAKKy0gICAgY3BkZWYgbGlmdChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg bGlmdChzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgTGlmdCBgYHNlbGZgYCB0byB0aGUg dW5pdmVyc2FsIGVudmVsb3BpbmcgYWxnZWJyYS4KKyAKK0BAIC0yNzUsNyArMjc1LDcgQEAgY2Rl ZiBjbGFzcyBMaWVBbGdlYnJhRWxlbWVudFdyYXBwZXIoRWxlbWVudFdyYXBwZXIpOgorICAgICAg ICAgIiIiCisgICAgICAgICByZXR1cm4gYm9vbChzZWxmLnZhbHVlKQorIAorLSAgICBjcGRlZiBf YWRkXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0 KToKKyAgICAgICAgICIiIgorICAgICAgICAgQWRkIGBgc2VsZmBgIGFuZCBgYHJoc2BgLgorIAor QEAgLTI4OCw3ICsyODgsNyBAQCBjZGVmIGNsYXNzIExpZUFsZ2VicmFFbGVtZW50V3JhcHBlcihF bGVtZW50V3JhcHBlcik6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiB0eXBlKHNlbGYp KHNlbGYuX3BhcmVudCwgc2VsZi52YWx1ZSArIHJpZ2h0LnZhbHVlKQorIAorLSAgICBjcGRlZiBf c3ViXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0 KToKKyAgICAgICAgICIiIgorICAgICAgICAgU3VidHJhY3QgYGBzZWxmYGAgYW5kIGBgcmhzYGAu CisgCitAQCAtMzc2LDcgKzM3Niw3IEBAIGNkZWYgY2xhc3MgTGllQWxnZWJyYUVsZW1lbnRXcmFw cGVyKEVsZW1lbnRXcmFwcGVyKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYg KiAofngpCisgCistICAgIGNwZGVmIF9hY3RlZF91cG9uXyhzZWxmLCBzY2FsYXIsIGJpbnQgc2Vs Zl9vbl9sZWZ0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FjdGVkX3Vwb25fKHNlbGYsIHNjYWxh ciwgYmludCBzZWxmX29uX2xlZnQpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhl IGFjdGlvbiBvZiBhIHNjYWxhciBvbiBgYHNlbGZgYC4KKyAKK0BAIC01NzIsNyArNTcyLDcgQEAg Y2RlZiBjbGFzcyBMaWVTdWJhbGdlYnJhRWxlbWVudFdyYXBwZXIoTGllQWxnZWJyYUVsZW1lbnRX cmFwcGVyKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX3BhcmVudC5tb2R1 bGUoKShzZWxmLnZhbHVlLnRvX3ZlY3RvcihzcGFyc2U9c3BhcnNlKSkKKyAKKy0gICAgY3BkZWYg ZGljdCBtb25vbWlhbF9jb2VmZmljaWVudHMoc2VsZiwgYmludCBjb3B5PVRydWUpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBkaWN0IG1vbm9taWFsX2NvZWZmaWNpZW50cyhzZWxmLCBiaW50IGNvcHk9 VHJ1ZSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gYSBkaWN0aW9uYXJ5IHdob3Nl IGtleXMgYXJlIGluZGljZXMgb2YgYmFzaXMgZWxlbWVudHMKKyAgICAgICAgIGluIHRoZSBzdXBw b3J0IG9mIGBgc2VsZmBgIGFuZCB3aG9zZSB2YWx1ZXMgYXJlIHRoZQorQEAgLTYwNSw3ICs2MDUs NyBAQCBjZGVmIGNsYXNzIExpZVN1YmFsZ2VicmFFbGVtZW50V3JhcHBlcihMaWVBbGdlYnJhRWxl bWVudFdyYXBwZXIpOgorICAgICAgICAgICAgIHJldHVybiBkaWN0KHNlbGYuX21vbm9taWFsX2Nv ZWZmaWNpZW50cykKKyAgICAgICAgIHJldHVybiBzZWxmLl9tb25vbWlhbF9jb2VmZmljaWVudHMK KyAKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBf YWRkXyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEFkZCBgYHNlbGZgYCBh bmQgYGByaHNgYC4KKyAKK0BAIC02MzEsNyArNjMxLDcgQEAgY2RlZiBjbGFzcyBMaWVTdWJhbGdl YnJhRWxlbWVudFdyYXBwZXIoTGllQWxnZWJyYUVsZW1lbnRXcmFwcGVyKToKKyAgICAgICAgICAg ICByZXQuX21vbm9taWFsX2NvZWZmaWNpZW50cyA9IG1jCisgICAgICAgICByZXR1cm4gcmV0Cisg CistICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3N1 Yl8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBTdWJ0cmFjdCBgYHNlbGZg YCBhbmQgYGByaHNgYC4KKyAKK0BAIC02NTcsNyArNjU3LDcgQEAgY2RlZiBjbGFzcyBMaWVTdWJh bGdlYnJhRWxlbWVudFdyYXBwZXIoTGllQWxnZWJyYUVsZW1lbnRXcmFwcGVyKToKKyAgICAgICAg ICAgICByZXQuX21vbm9taWFsX2NvZWZmaWNpZW50cyA9IG1jCisgICAgICAgICByZXR1cm4gcmV0 CisgCistICAgIGNwZGVmIF9hY3RlZF91cG9uXyhzZWxmLCBzY2FsYXIsIGJpbnQgc2VsZl9vbl9s ZWZ0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FjdGVkX3Vwb25fKHNlbGYsIHNjYWxhciwgYmlu dCBzZWxmX29uX2xlZnQpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGFjdGlv biBvZiBhIHNjYWxhciBvbiBgYHNlbGZgYC4KKyAKK0BAIC03NTcsNyArNzU3LDcgQEAgY2RlZiBj bGFzcyBTdHJ1Y3R1cmVDb2VmZmljaWVudHNFbGVtZW50KExpZUFsZ2VicmFNYXRyaXhXcmFwcGVy KToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGFyX211bHQ9 J8K3JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaXBfb25l PVRydWUpKQorIAorLSAgICBjcGRlZiBicmFja2V0KHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgYnJhY2tldChzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJl dHVybiB0aGUgTGllIGJyYWNrZXQgYGBbc2VsZiwgcmlnaHRdYGAuCisgCitAQCAtNzc3LDcgKzc3 Nyw3IEBAIGNkZWYgY2xhc3MgU3RydWN0dXJlQ29lZmZpY2llbnRzRWxlbWVudChMaWVBbGdlYnJh TWF0cml4V3JhcHBlcik6CisgCisgICAgICMgV2UgbmVlZCB0aGlzIG1ldGhvZCBiZWNhdXNlIHRo ZSBMaWVBbGdlYnJhLmJyYWNrZXQgbWV0aG9kIChmcm9tIHRoZQorICAgICAjICAgY2F0ZWdvcnkp IGNhbGxzIHRoaXMsIHdoZXJlIHdlIGFyZSBndWFyYW50ZWVkIHRvIGhhdmUgdGhlIHNhbWUgcGFy ZW50LgorLSAgICBjcGRlZiBfYnJhY2tldF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBfYnJhY2tldF8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1 cm4gdGhlIExpZSBicmFja2V0IGBgW3NlbGYsIHJpZ2h0XWBgLgorIAorQEAgLTgzMiw3ICs4MzIs NyBAQCBjZGVmIGNsYXNzIFN0cnVjdHVyZUNvZWZmaWNpZW50c0VsZW1lbnQoTGllQWxnZWJyYU1h dHJpeFdyYXBwZXIpOgorICAgICAgICAgICAgIGlmIHYgIT0gemVybzoKKyAgICAgICAgICAgICAg ICAgeWllbGQgKElbaV0sIHYpCisgCistICAgIGNwZGVmIHRvX3ZlY3RvcihzZWxmLCBiaW50IHNw YXJzZT1GYWxzZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHRvX3ZlY3RvcihzZWxmLCBiaW50IHNw YXJzZT1GYWxzZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBgYHNlbGZgYCBhcyBh IHZlY3Rvci4KKyAKK0BAIC04NjUsNyArODY1LDcgQEAgY2RlZiBjbGFzcyBTdHJ1Y3R1cmVDb2Vm ZmljaWVudHNFbGVtZW50KExpZUFsZ2VicmFNYXRyaXhXcmFwcGVyKToKKyAgICAgICAgIGdlbnMg PSBVRUEuZ2VucygpCisgICAgICAgICByZXR1cm4gVUVBLnN1bShjICogZ2Vuc1tpXSBmb3IgaSwg YyBpbiBzZWxmLnZhbHVlLml0ZW1zKCkpCisgCistICAgIGNwZGVmIGRpY3QgbW9ub21pYWxfY29l ZmZpY2llbnRzKHNlbGYsIGJpbnQgY29weT1UcnVlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZGlj dCBtb25vbWlhbF9jb2VmZmljaWVudHMoc2VsZiwgYmludCBjb3B5PVRydWUpOgorICAgICAgICAg IiIiCisgICAgICAgICBSZXR1cm4gdGhlIG1vbm9taWFsIGNvZWZmaWNpZW50cyBvZiBgYHNlbGZg YCBhcyBhIGRpY3Rpb25hcnkuCisgCitAQCAtMTA3Miw3ICsxMDcyLDcgQEAgY2RlZiBjbGFzcyBV bnR3aXN0ZWRBZmZpbmVMaWVBbGdlYnJhRWxlbWVudChFbGVtZW50KToKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbGFtYmRhIHQ6ICJ0IiArIHVuaWNvZGVfc3VwZXJzY3JpcHQo dCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaWNvZGVfYXJ0KCfii4Un KSwgdW5pY29kZV9hcnQoJ+KKlycpKQorIAorLSAgICBjcGRlZiBkaWN0IHRfZGljdChzZWxmKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgZGljdCB0X2RpY3Qoc2VsZik6CisgICAgICAgICByIiIiCisg ICAgICAgICBSZXR1cm4gdGhlIGBgZGljdGBgLCB3aG9zZSBrZXlzIGFyZSBwb3dlcnMgb2YgYHRg IGFuZCB2YWx1ZXMgYXJlCisgICAgICAgICBlbGVtZW50cyBvZiB0aGUgY2xhc3NpY2FsIExpZSBh bGdlYnJhLCBvZiBgYHNlbGZgYC4KK0BAIC0xMDg4LDcgKzEwODgsNyBAQCBjZGVmIGNsYXNzIFVu dHdpc3RlZEFmZmluZUxpZUFsZ2VicmFFbGVtZW50KEVsZW1lbnQpOgorICAgICAgICAgIiIiCisg ICAgICAgICByZXR1cm4gc2VsZi5fdF9kaWN0LmNvcHkoKQorIAorLSAgICBjcGRlZiBjX2NvZWZm aWNpZW50KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjX2NvZWZmaWNpZW50KHNlbGYpOgor ICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBjb2VmZmljaWVudCBvZiBgY2Agb2Yg YGBzZWxmYGAuCisgCitAQCAtMTEwMSw3ICsxMTAxLDcgQEAgY2RlZiBjbGFzcyBVbnR3aXN0ZWRB ZmZpbmVMaWVBbGdlYnJhRWxlbWVudChFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAg cmV0dXJuIHNlbGYuX2NfY29lZmYKKyAKKy0gICAgY3BkZWYgZF9jb2VmZmljaWVudChzZWxmKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgZF9jb2VmZmljaWVudChzZWxmKToKKyAgICAgICAgIHIiIiIK KyAgICAgICAgIFJldHVybiB0aGUgY29lZmZpY2llbnQgb2YgYGRgIG9mIGBgc2VsZmBgLgorIAor QEAgLTExMTQsNyArMTExNCw3IEBAIGNkZWYgY2xhc3MgVW50d2lzdGVkQWZmaW5lTGllQWxnZWJy YUVsZW1lbnQoRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9k X2NvZWZmCisgCistICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCBvdGhlciwgaW50IG9wKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIG90aGVyLCBpbnQgb3ApOgorICAgICAg ICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHJpY2ggY29tcGFyaXNvbiBvZiBgYHNlbGZgYCB3 aXRoIGBgb3RoZXJgYC4KKyAKK0BAIC0xMTc3LDcgKzExNzcsNyBAQCBjZGVmIGNsYXNzIFVudHdp c3RlZEFmZmluZUxpZUFsZ2VicmFFbGVtZW50KEVsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAg ICAgICByZXR1cm4gYm9vbChzZWxmLl90X2RpY3QpIG9yIGJvb2woc2VsZi5fY19jb2VmZikgb3Ig Ym9vbChzZWxmLl9kX2NvZWZmKQorIAorLSAgICBjcGRlZiBfYWRkXyhzZWxmLCBvdGhlcikgbm9l eGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIG90aGVyKToKKyAgICAgICAgICIiIgorICAg ICAgICAgQWRkIGBgc2VsZmBgIGFuZCBgYG90aGVyYGAuCisgCitAQCAtMTE5Myw3ICsxMTkzLDcg QEAgY2RlZiBjbGFzcyBVbnR3aXN0ZWRBZmZpbmVMaWVBbGdlYnJhRWxlbWVudChFbGVtZW50KToK KyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2NfY29lZmYgKyBydC5fY19jb2VmZiwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2RfY29lZmYgKyBydC5fZF9jb2VmZikK KyAKKy0gICAgY3BkZWYgX3N1Yl8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBf c3ViXyhzZWxmLCBvdGhlcik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFN1YnRyYWN0IGBgc2Vs ZmBgIGFuZCBgYG90aGVyYGAuCisgCitAQCAtMTIxNyw3ICsxMjE3LDcgQEAgY2RlZiBjbGFzcyBV bnR3aXN0ZWRBZmZpbmVMaWVBbGdlYnJhRWxlbWVudChFbGVtZW50KToKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuX2NfY29lZmYgLSBydC5fY19jb2VmZiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuX2RfY29lZmYgLSBydC5fZF9jb2VmZikKKyAKKy0gICAgY3BkZWYg X25lZ18oc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9uZWdfKHNlbGYpOgorICAgICAgICAg IiIiCisgICAgICAgICBOZWdhdGUgYGBzZWxmYGAuCisgCitAQCAtMTIzMiw3ICsxMjMyLDcgQEAg Y2RlZiBjbGFzcyBVbnR3aXN0ZWRBZmZpbmVMaWVBbGdlYnJhRWxlbWVudChFbGVtZW50KToKKyAg ICAgICAgIHJldHVybiB0eXBlKHNlbGYpKHNlbGYuX3BhcmVudCwgbmVnYXRlKHNlbGYuX3RfZGlj dCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAtc2VsZi5fY19jb2VmZiwgLXNlbGYuX2Rf Y29lZmYpCisgCistICAgIGNwZGVmIF9hY3RlZF91cG9uXyhzZWxmLCBzY2FsYXIsIGJpbnQgc2Vs Zl9vbl9sZWZ0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FjdGVkX3Vwb25fKHNlbGYsIHNjYWxh ciwgYmludCBzZWxmX29uX2xlZnQpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYGBz ZWxmYGAgYWN0ZWQgdXBvbiBieSBgYHNjYWxhcmBgLgorIAorQEAgLTEyNjIsNyArMTI2Miw3IEBA IGNkZWYgY2xhc3MgVW50d2lzdGVkQWZmaW5lTGllQWxnZWJyYUVsZW1lbnQoRWxlbWVudCk6Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsYXIgKiBzZWxmLl9jX2NvZWZmLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2NhbGFyICogc2VsZi5fZF9jb2VmZikKKyAKKy0gICAgY3Bk ZWYgbW9ub21pYWxfY29lZmZpY2llbnRzKHNlbGYsIGJpbnQgY29weT1UcnVlKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgbW9ub21pYWxfY29lZmZpY2llbnRzKHNlbGYsIGJpbnQgY29weT1UcnVlKToK KyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBtb25vbWlhbCBjb2VmZmljaWVudHMg b2YgYGBzZWxmYGAuCisgCitAQCAtMTI5Miw3ICsxMjkyLDcgQEAgY2RlZiBjbGFzcyBVbnR3aXN0 ZWRBZmZpbmVMaWVBbGdlYnJhRWxlbWVudChFbGVtZW50KToKKyAgICAgICAgICAgICBkWydkJ10g PSBzZWxmLl9kX2NvZWZmCisgICAgICAgICByZXR1cm4gZAorIAorLSAgICBjcGRlZiBicmFja2V0 KHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgYnJhY2tldChzZWxmLCByaWdodCk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgTGllIGJyYWNrZXQgYGBbc2VsZiwg cmlnaHRdYGAuCisgCitAQCAtMTMxNSw3ICsxMzE1LDcgQEAgY2RlZiBjbGFzcyBVbnR3aXN0ZWRB ZmZpbmVMaWVBbGdlYnJhRWxlbWVudChFbGVtZW50KToKKyAgICAgICAgICAgICBzZWxmLCByaWdo dCA9IGNvZXJjaW9uX21vZGVsLmNhbm9uaWNhbF9jb2VyY2lvbihzZWxmLCByaWdodCkKKyAgICAg ICAgIHJldHVybiBzZWxmLl9icmFja2V0XyhyaWdodCkKKyAKKy0gICAgY3BkZWYgX2JyYWNrZXRf KHNlbGYsIHkpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYnJhY2tldF8oc2VsZiwgeSk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgTGllIGJyYWNrZXQgYGBbc2VsZiwgeV1gYC4K KyAKK0BAIC0xMzgzLDcgKzEzODMsNyBAQCBjZGVmIGNsYXNzIFVudHdpc3RlZEFmZmluZUxpZUFs Z2VicmFFbGVtZW50KEVsZW1lbnQpOgorICAgICAgICAgcmV0dXJuIHR5cGUoc2VsZikoc2VsZi5f cGFyZW50LCBkLCBjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcGFyZW50LmJh c2VfcmluZygpLnplcm8oKSkKKyAKKy0gICAgY3BkZWYgY2Fub25pY2FsX2Rlcml2YXRpb24oc2Vs Zikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGNhbm9uaWNhbF9kZXJpdmF0aW9uKHNlbGYpOgorICAg ICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBjYW5vbmljYWwgZGVyaXZhdGlvbiBgZGAg YXBwbGllZCB0byBgYHNlbGZgYC4KKyAKK0BAIC0xNTIzLDcgKzE1MjMsNyBAQCBjZGVmIGNsYXNz IExpZU9iamVjdChTYWdlT2JqZWN0KToKKyAgICAgIiIiCisgICAgIEFic3RyYWN0IGJhc2UgY2xh c3MgZm9yIDpjbGFzczpgTGllR2VuZXJhdG9yYCBhbmQgOmNsYXNzOmBMaWVCcmFja2V0YC4KKyAg ICAgIiIiCistICAgIGNwZGVmIHR1cGxlIHRvX3dvcmQoc2VsZikgbm9leGNlcHQ6CisrICAgIGNw ZGVmIHR1cGxlIHRvX3dvcmQoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0 aGUgd29yZCAoImZsYXR0ZW5pbmciKSBvZiBgYHNlbGZgYC4KKyAKK0BAIC0xNjU3LDcgKzE2NTcs NyBAQCBjZGVmIGNsYXNzIExpZUdlbmVyYXRvcihMaWVPYmplY3QpOgorICAgICAgICAgIiIiCisg ICAgICAgICByZXR1cm4gaW1fZ2Vuc1tuYW1lcy5pbmRleChzZWxmLl9uYW1lKV0KKyAKKy0gICAg Y3BkZWYgdHVwbGUgdG9fd29yZChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgdHVwbGUgdG9f d29yZChzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSB3b3JkICgiZmxh dHRlbmluZyIpIG9mIGBgc2VsZmBgLgorIAorQEAgLTE4NjIsNyArMTg2Miw3IEBAIGNkZWYgY2xh c3MgTGllQnJhY2tldChMaWVPYmplY3QpOgorICAgICAgICAgcmV0dXJuIGNvZG9tYWluLmJyYWNr ZXQoc2VsZi5fbGVmdC5faW1fZ2Vuc18oY29kb21haW4sIGltX2dlbnMsIG5hbWVzKSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3JpZ2h0Ll9pbV9nZW5zXyhjb2RvbWFp biwgaW1fZ2VucywgbmFtZXMpKQorIAorLSAgICBjcGRlZiBsaWZ0KHNlbGYsIGRpY3QgVUVBX2dl bnNfZGljdCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGxpZnQoc2VsZiwgZGljdCBVRUFfZ2Vuc19k aWN0KToKKyAgICAgICAgICIiIgorICAgICAgICAgTGlmdCBgYHNlbGZgYCB0byB0aGUgdW5pdmVy c2FsIGVudmVsb3BpbmcgYWxnZWJyYS4KKyAKK0BAIC0xODkxLDcgKzE4OTEsNyBAQCBjZGVmIGNs YXNzIExpZUJyYWNrZXQoTGllT2JqZWN0KToKKyAKKyAgICAgICAgIHJldHVybiBsKnIgLSByKmwK KyAKKy0gICAgY3BkZWYgdHVwbGUgdG9fd29yZChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg dHVwbGUgdG9fd29yZChzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSB3 b3JkICgiZmxhdHRlbmluZyIpIG9mIGBgc2VsZmBgLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdl L2FsZ2VicmFzL29jdG9uaW9uX2FsZ2VicmEucHhkIGIvc3JjL3NhZ2UvYWxnZWJyYXMvb2N0b25p b25fYWxnZWJyYS5weGQKK2luZGV4IDQ1OWU4ZWEzMDcwLi43ODUwMDcyOWJkYyAxMDA2NDQKKy0t LSBhL3NyYy9zYWdlL2FsZ2VicmFzL29jdG9uaW9uX2FsZ2VicmEucHhkCisrKysgYi9zcmMvc2Fn ZS9hbGdlYnJhcy9vY3Rvbmlvbl9hbGdlYnJhLnB4ZAorQEAgLTgsMTIgKzgsMTIgQEAgZnJvbSBz YWdlLm1vZHVsZXMuZnJlZV9tb2R1bGVfZWxlbWVudCBjaW1wb3J0IEZyZWVNb2R1bGVFbGVtZW50 CisgY2RlZiBjbGFzcyBPY3Rvbmlvbl9nZW5lcmljKEFsZ2VicmFFbGVtZW50KToKKyAgICAgY2Rl ZiBGcmVlTW9kdWxlRWxlbWVudCB2ZWMKKyAKKy0gICAgY3BkZWYgT2N0b25pb25fZ2VuZXJpYyBj b25qdWdhdGUoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgcXVhZHJhdGljX2Zvcm0oc2VsZikg bm9leGNlcHQKKy0gICAgY3BkZWYgbm9ybShzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBhYnMo c2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgcmVhbF9wYXJ0KHNlbGYpIG5vZXhjZXB0CistICAg IGNwZGVmIE9jdG9uaW9uX2dlbmVyaWMgaW1hZ19wYXJ0KHNlbGYpIG5vZXhjZXB0CisrICAgIGNw ZGVmIE9jdG9uaW9uX2dlbmVyaWMgY29uanVnYXRlKHNlbGYpCisrICAgIGNwZGVmIHF1YWRyYXRp Y19mb3JtKHNlbGYpCisrICAgIGNwZGVmIG5vcm0oc2VsZikKKysgICAgY3BkZWYgYWJzKHNlbGYp CisrICAgIGNwZGVmIHJlYWxfcGFydChzZWxmKQorKyAgICBjcGRlZiBPY3Rvbmlvbl9nZW5lcmlj IGltYWdfcGFydChzZWxmKQorIAorIGNkZWYgY2xhc3MgT2N0b25pb24oT2N0b25pb25fZ2VuZXJp Yyk6CisgICAgIHBhc3MKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9hbGdlYnJhcy9vY3Rvbmlvbl9h bGdlYnJhLnB5eCBiL3NyYy9zYWdlL2FsZ2VicmFzL29jdG9uaW9uX2FsZ2VicmEucHl4CitpbmRl eCBlZTY5YWNhNmE3ZS4uM2MxZDI4YzIxMDYgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9hbGdlYnJh cy9vY3Rvbmlvbl9hbGdlYnJhLnB5eAorKysrIGIvc3JjL3NhZ2UvYWxnZWJyYXMvb2N0b25pb25f YWxnZWJyYS5weXgKK0BAIC0xMTcsNyArMTE3LDcgQEAgY2RlZiBjbGFzcyBPY3Rvbmlvbl9nZW5l cmljKEFsZ2VicmFFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIChzZWxm Ll9fY2xhc3NfXywgKHNlbGYuX3BhcmVudCwgc2VsZi52ZWMpKQorIAorLSAgICBjcGRlZiBfcmlj aGNtcF8oc2VsZiwgb3RoZXIsIGludCBvcCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21w XyhzZWxmLCBvdGhlciwgaW50IG9wKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIENvbXBhcmUg YGBzZWxmYGAgdG8gYGBvdGhlcmBgIHdpdGggdHlwZSBgYG9wYGAuCisgCitAQCAtMTQ4LDcgKzE0 OCw3IEBAIGNkZWYgY2xhc3MgT2N0b25pb25fZ2VuZXJpYyhBbGdlYnJhRWxlbWVudCk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIHJldHVybiBoYXNoKHNlbGYudmVjKQorIAorLSAgICBjcGRlZiBf YWRkXyhzZWxmLCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIG90aGVy KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBgYHNlbGZgYCBwbHVzIGBgb3RoZXJg YC4KKyAKK0BAIC0xNjIsNyArMTYyLDcgQEAgY2RlZiBjbGFzcyBPY3Rvbmlvbl9nZW5lcmljKEFs Z2VicmFFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX19jbGFz c19fKHNlbGYuX3BhcmVudCwgc2VsZi52ZWMgKyAoPE9jdG9uaW9uX2dlbmVyaWM+IG90aGVyKS52 ZWMpCisgCistICAgIGNwZGVmIF9zdWJfKHNlbGYsIG90aGVyKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgX3N1Yl8oc2VsZiwgb3RoZXIpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIGBg c2VsZmBgIG1pbnVzIGBgb3RoZXJgYC4KKyAKK0BAIC0xOTIsNyArMTkyLDcgQEAgY2RlZiBjbGFz cyBPY3Rvbmlvbl9nZW5lcmljKEFsZ2VicmFFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAg ICAgcmV0dXJuIHNlbGYuX19jbGFzc19fKHNlbGYuX3BhcmVudCwgLXNlbGYudmVjKQorIAorLSAg ICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9sbXVsXyhzZWxmLCBFbGVtZW50IG90aGVyKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJl dHVybiBgYHNlbGYgKiBvdGhlcmBgIGZvciBhIHNjYWxhciBgYG90aGVyYGAuCisgCitAQCAtMjA2 LDcgKzIwNiw3IEBAIGNkZWYgY2xhc3MgT2N0b25pb25fZ2VuZXJpYyhBbGdlYnJhRWxlbWVudCk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9fY2xhc3NfXyhzZWxmLl9wYXJl bnQsIHNlbGYudmVjICogb3RoZXIpCisgCistICAgIGNwZGVmIF9ybXVsXyhzZWxmLCBFbGVtZW50 IG90aGVyKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3JtdWxfKHNlbGYsIEVsZW1lbnQgb3RoZXIp OgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIGBgc2VsZiAqIG90aGVyYGAgZm9yIGEg c2NhbGFyIGBgb3RoZXJgYC4KKyAKK0BAIC0yMjAsNyArMjIwLDcgQEAgY2RlZiBjbGFzcyBPY3Rv bmlvbl9nZW5lcmljKEFsZ2VicmFFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0 dXJuIHNlbGYuX19jbGFzc19fKHNlbGYuX3BhcmVudCwgb3RoZXIgKiBzZWxmLnZlYykKKyAKKy0g ICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbXVsXyhz ZWxmLCBvdGhlcik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gYGBzZWxmYGAgbXVs dGlwbGllZCBieSBgYG90aGVyYGAuCisgCitAQCAtMjY4LDcgKzI2OCw3IEBAIGNkZWYgY2xhc3Mg T2N0b25pb25fZ2VuZXJpYyhBbGdlYnJhRWxlbWVudCk6CisgICAgICAgICAgICAgICAgIHJldFtr XSArPSBjbCAqIGNyICogY29lZmYKKyAgICAgICAgIHJldHVybiBzZWxmLl9fY2xhc3NfXyhQLCBQ Ll9tb2R1bGUocmV0KSkKKyAKKy0gICAgY3BkZWYgX2Rpdl8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBfZGl2XyhzZWxmLCBvdGhlcik6CisgICAgICAgICAiIiIKKyAgICAgICAg IFJldHVybiBgYHNlbGZgYCBkaXZpZGVkIGJ5IGBgb3RoZXJgYC4KKyAKK0BAIC0zNTcsNyArMzU3 LDcgQEAgY2RlZiBjbGFzcyBPY3Rvbmlvbl9nZW5lcmljKEFsZ2VicmFFbGVtZW50KToKKyAgICAg ICAgICAgICByYWlzZSBaZXJvRGl2aXNpb25FcnJvcgorICAgICAgICAgcmV0dXJuIHNlbGYucXVh ZHJhdGljX2Zvcm0oKS5pbnZlcnNlX29mX3VuaXQoKSAqIHNlbGYuY29uanVnYXRlKCkKKyAKKy0g ICAgY3BkZWYgT2N0b25pb25fZ2VuZXJpYyBjb25qdWdhdGUoc2VsZikgbm9leGNlcHQ6CisrICAg IGNwZGVmIE9jdG9uaW9uX2dlbmVyaWMgY29uanVnYXRlKHNlbGYpOgorICAgICAgICAgciIiIgor ICAgICAgICAgUmV0dXJuIHRoZSBjb25qdWdhdGUgb2YgYGBzZWxmYGAuCisgCitAQCAtMzczLDcg KzM3Myw3IEBAIGNkZWYgY2xhc3MgT2N0b25pb25fZ2VuZXJpYyhBbGdlYnJhRWxlbWVudCk6Cisg ICAgICAgICB2LnNldF91bnNhZmUoMCwgLXYuZ2V0X3Vuc2FmZSgwKSkKKyAgICAgICAgIHJldHVy biBzZWxmLl9fY2xhc3NfXyhzZWxmLl9wYXJlbnQsIHYpCisgCistICAgIGNwZGVmIHF1YWRyYXRp Y19mb3JtKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBxdWFkcmF0aWNfZm9ybShzZWxmKToK KyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgcXVhZHJhdGljIGZvcm0gb2YgYGBz ZWxmYGAuCisgCitAQCAtMzk2LDcgKzM5Niw3IEBAIGNkZWYgY2xhc3MgT2N0b25pb25fZ2VuZXJp YyhBbGdlYnJhRWxlbWVudCk6CisgICAgICAgICAgICAgcmV0ICs9IC0oPHR1cGxlPiB0YWJsZVtp XSlbaV1bMV0gKiBzZWxmLnZlYy5nZXRfdW5zYWZlKGkpICoqIDIKKyAgICAgICAgIHJldHVybiBy ZXQKKyAKKy0gICAgY3BkZWYgbm9ybShzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgbm9ybShz ZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgbm9ybSBvZiBgYHNlbGZg YC4KKyAKK0BAIC00MjQsNyArNDI0LDcgQEAgY2RlZiBjbGFzcyBPY3Rvbmlvbl9nZW5lcmljKEFs Z2VicmFFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNxcnQoc2VsZi5x dWFkcmF0aWNfZm9ybSgpKQorIAorLSAgICBjcGRlZiBhYnMoc2VsZikgbm9leGNlcHQ6CisrICAg IGNwZGVmIGFicyhzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYWJz b2x1dGUgdmFsdWUgb2YgYGBzZWxmYGAuCisgCitAQCAtNDQ3LDcgKzQ0Nyw3IEBAIGNkZWYgY2xh c3MgT2N0b25pb25fZ2VuZXJpYyhBbGdlYnJhRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIHJldHVybiBzZWxmLm5vcm0oKQorIAorLSAgICBjcGRlZiByZWFsX3BhcnQoc2VsZikgbm9l eGNlcHQ6CisrICAgIGNwZGVmIHJlYWxfcGFydChzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAg ICAgIFJldHVybiB0aGUgcmVhbCBwYXJ0IG9mIGBgc2VsZmBgLgorIAorQEAgLTQ2Nyw3ICs0Njcs NyBAQCBjZGVmIGNsYXNzIE9jdG9uaW9uX2dlbmVyaWMoQWxnZWJyYUVsZW1lbnQpOgorICAgICAg ICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi52ZWMuZ2V0X3Vuc2FmZSgwKQorIAorLSAgICBj cGRlZiBPY3Rvbmlvbl9nZW5lcmljIGltYWdfcGFydChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgT2N0b25pb25fZ2VuZXJpYyBpbWFnX3BhcnQoc2VsZik6CisgICAgICAgICByIiIiCisgICAg ICAgICBSZXR1cm4gdGhlIGltZ2luYXJ5IHBhcnQgb2YgYGBzZWxmYGAuCisgCitAQCAtNTQzLDcg KzU0Myw3IEBAIGNkZWYgY2xhc3MgT2N0b25pb24oT2N0b25pb25fZ2VuZXJpYyk6CisgICAgIFRo aXMgaXMgYW4gZWxlbWVudCBvZiB0aGUgb2N0b25pb24gYWxnZWJyYSB3aXRoIHBhcmFtZXRlcnMK KyAgICAgYGEgPSBiID0gYyA9IC0xYCwgd2hpY2ggaXMgYSBjbGFzc2ljYWwgb2N0b25pb24gbnVt YmVyLgorICAgICAiIiIKKy0gICAgY3BkZWYgcXVhZHJhdGljX2Zvcm0oc2VsZikgbm9leGNlcHQ6 CisrICAgIGNwZGVmIHF1YWRyYXRpY19mb3JtKHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAg ICAgUmV0dXJuIHRoZSBxdWFkcmF0aWMgZm9ybSBvZiBgYHNlbGZgYC4KKyAKK0BAIC01NjIsNyAr NTYyLDcgQEAgY2RlZiBjbGFzcyBPY3RvbmlvbihPY3Rvbmlvbl9nZW5lcmljKToKKyAgICAgICAg ICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYudmVjICogc2VsZi52ZWMKKyAKKy0gICAgY3BkZWYg bm9ybShzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgbm9ybShzZWxmKToKKyAgICAgICAgIHIi IiIKKyAgICAgICAgIFJldHVybiB0aGUgbm9ybSBvZiBgYHNlbGZgYC4KKyAKK2RpZmYgLS1naXQg YS9zcmMvc2FnZS9hbGdlYnJhcy9xdWF0YWxnL3F1YXRlcm5pb25fYWxnZWJyYV9lbGVtZW50LnB4 ZCBiL3NyYy9zYWdlL2FsZ2VicmFzL3F1YXRhbGcvcXVhdGVybmlvbl9hbGdlYnJhX2VsZW1lbnQu cHhkCitpbmRleCA1YTRmODExNDQzYS4uOTNjOThiM2UwNDUgMTAwNjQ0CistLS0gYS9zcmMvc2Fn ZS9hbGdlYnJhcy9xdWF0YWxnL3F1YXRlcm5pb25fYWxnZWJyYV9lbGVtZW50LnB4ZAorKysrIGIv c3JjL3NhZ2UvYWxnZWJyYXMvcXVhdGFsZy9xdWF0ZXJuaW9uX2FsZ2VicmFfZWxlbWVudC5weGQK K0BAIC04LDEwICs4LDEwIEBAIGZyb20gc2FnZS5jYXRlZ29yaWVzLm1vcnBoaXNtIGNpbXBvcnQg TW9ycGhpc20KKyAKKyBjZGVmIGNsYXNzIFF1YXRlcm5pb25BbGdlYnJhRWxlbWVudF9hYnN0cmFj dChBbGdlYnJhRWxlbWVudCk6CisgICAgIGNwZGVmIGJpbnQgaXNfY29uc3RhbnQoc2VsZikgbm9l eGNlcHQKKy0gICAgY2RlZiBfZG9fcHJpbnQoc2VsZiwgeCwgeSwgeiwgdykgbm9leGNlcHQKKy0g ICAgY3BkZWYgY29uanVnYXRlKHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIHJlZHVjZWRfbm9y bShzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiByZWR1Y2VkX3RyYWNlKHNlbGYpIG5vZXhjZXB0 CisrICAgIGNkZWYgX2RvX3ByaW50KHNlbGYsIHgsIHksIHosIHcpCisrICAgIGNwZGVmIGNvbmp1 Z2F0ZShzZWxmKQorKyAgICBjcGRlZiByZWR1Y2VkX25vcm0oc2VsZikKKysgICAgY3BkZWYgcmVk dWNlZF90cmFjZShzZWxmKQorIAorIGNkZWYgY2xhc3MgUXVhdGVybmlvbkFsZ2VicmFFbGVtZW50 X2dlbmVyaWMoUXVhdGVybmlvbkFsZ2VicmFFbGVtZW50X2Fic3RyYWN0KToKKyAgICAgY2RlZiBv YmplY3QgeCwgeSwgeiwgdworQEAgLTIxLDggKzIxLDggQEAgY2RlZiBjbGFzcyBRdWF0ZXJuaW9u QWxnZWJyYUVsZW1lbnRfZ2VuZXJpYyhRdWF0ZXJuaW9uQWxnZWJyYUVsZW1lbnRfYWJzdHJhY3Qp OgorIGNkZWYgY2xhc3MgUXVhdGVybmlvbkFsZ2VicmFFbGVtZW50X251bWJlcl9maWVsZChRdWF0 ZXJuaW9uQWxnZWJyYUVsZW1lbnRfYWJzdHJhY3QpOgorICAgICBjZGVmIGZtcHpfcG9seV90IHgs IHksIHosIHcsIGEsIGIsIG1vZHVsdXMKKyAgICAgY2RlZiBtcHpfdCBkCistICAgIGNkZWYgaW5s aW5lIGNhbm9uaWNhbGl6ZShzZWxmKSBub2V4Y2VwdAorKyAgICBjZGVmIGlubGluZSBjYW5vbmlj YWxpemUoc2VsZikKKyAKKyBjZGVmIGNsYXNzIFF1YXRlcm5pb25BbGdlYnJhRWxlbWVudF9yYXRp b25hbF9maWVsZChRdWF0ZXJuaW9uQWxnZWJyYUVsZW1lbnRfYWJzdHJhY3QpOgorICAgICBjZGVm IG1wel90IHgsIHksIHosIHcsIGEsIGIsIGQKKy0gICAgY2RlZiBpbmxpbmUgY2Fub25pY2FsaXpl KHNlbGYpIG5vZXhjZXB0CisrICAgIGNkZWYgaW5saW5lIGNhbm9uaWNhbGl6ZShzZWxmKQorZGlm ZiAtLWdpdCBhL3NyYy9zYWdlL2FsZ2VicmFzL3F1YXRhbGcvcXVhdGVybmlvbl9hbGdlYnJhX2Vs ZW1lbnQucHl4IGIvc3JjL3NhZ2UvYWxnZWJyYXMvcXVhdGFsZy9xdWF0ZXJuaW9uX2FsZ2VicmFf ZWxlbWVudC5weXgKK2luZGV4IGY2ZmE4ZWYzYjM1Li5kMTc1NjZjOGMyMiAxMDA2NDQKKy0tLSBh L3NyYy9zYWdlL2FsZ2VicmFzL3F1YXRhbGcvcXVhdGVybmlvbl9hbGdlYnJhX2VsZW1lbnQucHl4 CisrKysgYi9zcmMvc2FnZS9hbGdlYnJhcy9xdWF0YWxnL3F1YXRlcm5pb25fYWxnZWJyYV9lbGVt ZW50LnB5eAorQEAgLTU0LDcgKzU0LDcgQEAgZnJvbSBzYWdlLmxpYnMuZmxpbnQubnRsX2ludGVy ZmFjZSBjaW1wb3J0ICoKKyBjZGVmIG1wel90IFQxLCBUMiwgdDMsIHQ0LCB0NSwgdDYsIHQ3LCB0 OCwgczEsIHMyLCBVMSwgVTIKKyBjZGVmIGZtcHpfcG9seV90IGZUMSwgZlQyLCBmdDMsIGZ0NCwg ZnQ1LCBmdDYsIGZ0NywgZnQ4LCBmczEsIGZzMiwgZlUxLCBmVTIKKyAKKy1jZGVmIF9jbGVhcl9n bG9iYWxzKCkgbm9leGNlcHQ6CisrY2RlZiBfY2xlYXJfZ2xvYmFscygpOgorICAgICAiIiIKKyAg ICAgQ2xlYXIgYWxsIGdsb2JhbCB2YXJpYWJsZXMgYWxsb2NhdGVkIGZvciBvcHRpbWl6YXRpb24g b2YKKyAgICAgcXVhdGVybmlvbiBhbGdlYnJhIGFyaXRobWV0aWMuCitAQCAtOTEsNyArOTEsNyBA QCBjZGVmIF9jbGVhcl9nbG9iYWxzKCkgbm9leGNlcHQ6CisgICAgIGZtcHpfcG9seV9jbGVhcihm VTEpCisgICAgIGZtcHpfcG9seV9jbGVhcihmVTIpCisgCistY2RlZiBfaW5pdF9nbG9iYWxzKCkg bm9leGNlcHQ6CisrY2RlZiBfaW5pdF9nbG9iYWxzKCk6CisgICAgICIiIgorICAgICBJbml0aWFs aXplIGFsbCBnbG9iYWwgdmFyaWFibGVzIGFsbG9jYXRlZCBmb3Igb3B0aW1pemF0aW9uIG9mCisg ICAgIHF1YXRlcm5pb24gYWxnZWJyYSBhcml0aG1ldGljLCBhbmQgcmVnaXN0ZXIgYSBob29rIHRv IGV2ZW50dWFsbHkKK0BAIC0xMzgsNyArMTM4LDcgQEAgY2RlZiBfaW5pdF9nbG9iYWxzKCkgbm9l eGNlcHQ6CisgIyBJbml0aWFsaXplIG1vZHVsZS1zY29wZSBnbG9iYWwgQyB2YXJpYWJsZXMuCisg X2luaXRfZ2xvYmFscygpCisgCistY2RlZiB0b19xdWF0ZXJuaW9uKFIsIHgpIG5vZXhjZXB0Ogor K2NkZWYgdG9fcXVhdGVybmlvbihSLCB4KToKKyAgICAgIiIiCisgICAgIEludGVybmFsIGZ1bmN0 aW9uIHVzZWQgaW1wbGljaXRseSBieSBxdWF0ZXJuaW9uIGFsZ2VicmEgY3JlYXRpb24uCisgCitA QCAtMTYyLDcgKzE2Miw3IEBAIGNkZWYgdG9fcXVhdGVybmlvbihSLCB4KSBub2V4Y2VwdDoKKyAg ICAgZWxzZToKKyAgICAgICAgIHJldHVybiBSKHgpLCBSKDApLCBSKDApLCBSKDApCisgCistY2Rl ZiBpbmxpbmUgcHJpbnRfY29lZmYoeSwgaSwgYmludCBhdG9taWMpIG5vZXhjZXB0OgorK2NkZWYg aW5saW5lIHByaW50X2NvZWZmKHksIGksIGJpbnQgYXRvbWljKToKKyAgICAgIiIiCisgICAgIElu dGVybmFsIGZ1bmN0aW9uIHVzZWQgaW1wbGljaXRseSBieSBhbGwgcXVhdGVybmlvbiBhbGdlYnJh IHByaW50aW5nLgorIAorQEAgLTMzNiw3ICszMzYsNyBAQCBjZGVmIGNsYXNzIFF1YXRlcm5pb25B bGdlYnJhRWxlbWVudF9hYnN0cmFjdChBbGdlYnJhRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIHJldHVybiBzZWxmWzBdIG9yIHNlbGZbMV0gb3Igc2VsZlsyXSBvciBzZWxmWzNdCisg CistICAgIGNkZWYgX2RvX3ByaW50KHNlbGYsIHgsIHksIHosIHcpIG5vZXhjZXB0OgorKyAgICBj ZGVmIF9kb19wcmludChzZWxmLCB4LCB5LCB6LCB3KToKKyAgICAgICAgICIiIgorICAgICAgICAg VXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBwcmludCBmdW5jdGlvbi4KKyAKK0BAIC0zODUsNyArMzg1 LDcgQEAgY2RlZiBjbGFzcyBRdWF0ZXJuaW9uQWxnZWJyYUVsZW1lbnRfYWJzdHJhY3QoQWxnZWJy YUVsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fZG9fcHJpbnQo c2VsZlswXSwgc2VsZlsxXSwgc2VsZlsyXSwgc2VsZlszXSkKKyAKKy0gICAgY3BkZWYgX3JpY2hj bXBfKHNlbGYsIHJpZ2h0LCBpbnQgb3ApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmljaGNtcF8o c2VsZiwgcmlnaHQsIGludCBvcCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIENvbXBhcmluZyBl bGVtZW50cy4KKyAKK0BAIC00MTMsNyArNDEzLDcgQEAgY2RlZiBjbGFzcyBRdWF0ZXJuaW9uQWxn ZWJyYUVsZW1lbnRfYWJzdHJhY3QoQWxnZWJyYUVsZW1lbnQpOgorICAgICAgICAgICAgICAgICBy ZXR1cm4gcmVzCisgICAgICAgICByZXR1cm4gcmljaF90b19ib29sKG9wLCAwKQorIAorLSAgICBj cGRlZiBjb25qdWdhdGUoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGNvbmp1Z2F0ZShzZWxm KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBjb25qdWdhdGUgb2YgdGhlIHF1 YXRlcm5pb246IGlmIGBcXHRoZXRhID0geCArIHlpICsgemogKyB3a2AsCisgICAgICAgICByZXR1 cm4gYHggLSB5aSAtIHpqIC0gd2tgOyB0aGF0IGlzLCByZXR1cm4gdGhldGEucmVkdWNlZF90cmFj ZSgpIC0gdGhldGEuCitAQCAtNDM3LDcgKzQzNyw3IEBAIGNkZWYgY2xhc3MgUXVhdGVybmlvbkFs Z2VicmFFbGVtZW50X2Fic3RyYWN0KEFsZ2VicmFFbGVtZW50KToKKyAgICAgICAgICIiIgorICAg ICAgICAgcmV0dXJuIHNlbGYuX19jbGFzc19fKHNlbGYuX3BhcmVudCwgKHNlbGZbMF0sIC1zZWxm WzFdLCAtc2VsZlsyXSwgLXNlbGZbM10pLCBjaGVjaz1GYWxzZSkKKyAKKy0gICAgY3BkZWYgcmVk dWNlZF90cmFjZShzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcmVkdWNlZF90cmFjZShzZWxm KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSByZWR1Y2VkIHRyYWNlIG9mIHNl bGY6IGlmIGBcXHRoZXRhID0geCArIHlpICsgemogKworICAgICAgICAgd2tgLCB0aGVuIGBcXHRo ZXRhYCBoYXMgcmVkdWNlZCB0cmFjZSBgMnhgLgorQEAgLTQ1Miw3ICs0NTIsNyBAQCBjZGVmIGNs YXNzIFF1YXRlcm5pb25BbGdlYnJhRWxlbWVudF9hYnN0cmFjdChBbGdlYnJhRWxlbWVudCk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiAyKnNlbGZbMF0KKyAKKy0gICAgY3BkZWYgcmVk dWNlZF9ub3JtKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiByZWR1Y2VkX25vcm0oc2VsZik6 CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgcmVkdWNlZCBub3JtIG9mIHNlbGY6 IGlmIGBcXHRoZXRhID0geCArIHlpICsgemogKworICAgICAgICAgd2tgLCB0aGVuIGBcXHRoZXRh YCBoYXMgcmVkdWNlZCBub3JtIGB4XjIgLSBheV4yIC0gYnpeMiArCitAQCAtNTA5LDcgKzUwOSw3 IEBAIGNkZWYgY2xhc3MgUXVhdGVybmlvbkFsZ2VicmFFbGVtZW50X2Fic3RyYWN0KEFsZ2VicmFF bGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIH5zZWxmLnJlZHVjZWRfbm9y bSgpICogc2VsZi5jb25qdWdhdGUoKQorIAorLSAgICBjcGRlZiBfcm11bF8oc2VsZiwgRWxlbWVu dCBsZWZ0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3JtdWxfKHNlbGYsIEVsZW1lbnQgbGVmdCk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBsZWZ0KnNlbGYsIHdoZXJlIGxlZnQgaXMg aW4gdGhlIGJhc2UgcmluZy4KKyAKK0BAIC01MjQsNyArNTI0LDcgQEAgY2RlZiBjbGFzcyBRdWF0 ZXJuaW9uQWxnZWJyYUVsZW1lbnRfYWJzdHJhY3QoQWxnZWJyYUVsZW1lbnQpOgorICAgICAgICAg IiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fX2NsYXNzX18oc2VsZi5fcGFyZW50LCAobGVmdCpz ZWxmWzBdLCBsZWZ0KnNlbGZbMV0sIGxlZnQqc2VsZlsyXSwgbGVmdCpzZWxmWzNdKSwgY2hlY2s9 RmFsc2UpCisgCistICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IHJpZ2h0KSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgcmlnaHQpOgorICAgICAgICAgIiIi CisgICAgICAgICBSZXR1cm4gc2VsZipyaWdodCwgd2hlcmUgcmlnaHQgaXMgaW4gdGhlIGJhc2Ug cmluZy4KKyAKK0BAIC01MzksNyArNTM5LDcgQEAgY2RlZiBjbGFzcyBRdWF0ZXJuaW9uQWxnZWJy YUVsZW1lbnRfYWJzdHJhY3QoQWxnZWJyYUVsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAg ICByZXR1cm4gc2VsZi5fX2NsYXNzX18oc2VsZi5fcGFyZW50LCAoc2VsZlswXSpyaWdodCwgc2Vs ZlsxXSpyaWdodCwgc2VsZlsyXSpyaWdodCwgc2VsZlszXSpyaWdodCksIGNoZWNrPUZhbHNlKQor IAorLSAgICBjcGRlZiBfZGl2XyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9k aXZfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHF1b3RpZW50 IG9mIHNlbGYgYnkgcmlnaHQuCisgCitAQCAtNzk0LDcgKzc5NCw3IEBAIGNkZWYgY2xhc3MgUXVh dGVybmlvbkFsZ2VicmFFbGVtZW50X2dlbmVyaWMoUXVhdGVybmlvbkFsZ2VicmFFbGVtZW50X2Fi c3RyYWN0KToKKyAgICAgICAgIHJldHVybiAodW5waWNrbGVfUXVhdGVybmlvbkFsZ2VicmFFbGVt ZW50X2dlbmVyaWNfdjAsCisgICAgICAgICAgICAgICAgIChzZWxmLl9wYXJlbnQsIChzZWxmLngs IHNlbGYueSwgc2VsZi56LCBzZWxmLncpKSkKKyAKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwgX3Jp Z2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FkZF8oc2VsZiwgX3JpZ2h0KToKKyAgICAgICAg ICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBzdW0gb2Ygc2VsZiBhbmQgX3JpZ2h0LgorIAorQEAg LTgxMCw3ICs4MTAsNyBAQCBjZGVmIGNsYXNzIFF1YXRlcm5pb25BbGdlYnJhRWxlbWVudF9nZW5l cmljKFF1YXRlcm5pb25BbGdlYnJhRWxlbWVudF9hYnN0cmFjdCk6CisgICAgICAgICAjIFRPRE8g LS0gbWFrZSB0aGlzLCBldGMuIHVzZSBfX25ld19fCisgICAgICAgICByZXR1cm4gUXVhdGVybmlv bkFsZ2VicmFFbGVtZW50X2dlbmVyaWMoc2VsZi5fcGFyZW50LCAoc2VsZi54ICsgcmlnaHQueCwg c2VsZi55ICsgcmlnaHQueSwgc2VsZi56ICsgcmlnaHQueiwgc2VsZi53ICsgcmlnaHQudyksIGNo ZWNrPUZhbHNlKQorIAorLSAgICBjcGRlZiBfc3ViXyhzZWxmLCBfcmlnaHQpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBfc3ViXyhzZWxmLCBfcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBS ZXR1cm4gdGhlIGRpZmZlcmVuY2Ugb2Ygc2VsZiBhbmQgX3JpZ2h0LgorIAorQEAgLTgyNSw3ICs4 MjUsNyBAQCBjZGVmIGNsYXNzIFF1YXRlcm5pb25BbGdlYnJhRWxlbWVudF9nZW5lcmljKFF1YXRl cm5pb25BbGdlYnJhRWxlbWVudF9hYnN0cmFjdCk6CisgICAgICAgICBjZGVmIFF1YXRlcm5pb25B bGdlYnJhRWxlbWVudF9nZW5lcmljIHJpZ2h0ID0gX3JpZ2h0CisgICAgICAgICByZXR1cm4gUXVh dGVybmlvbkFsZ2VicmFFbGVtZW50X2dlbmVyaWMoc2VsZi5fcGFyZW50LCAoc2VsZi54IC0gcmln aHQueCwgc2VsZi55IC0gcmlnaHQueSwgc2VsZi56IC0gcmlnaHQueiwgc2VsZi53IC0gcmlnaHQu dyksIGNoZWNrPUZhbHNlKQorIAorLSAgICBjcGRlZiBfbXVsXyhzZWxmLCBfcmlnaHQpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBfbXVsXyhzZWxmLCBfcmlnaHQpOgorICAgICAgICAgIiIiCisgICAg ICAgICBSZXR1cm4gdGhlIHByb2R1Y3Qgb2Ygc2VsZiBhbmQgX3JpZ2h0LgorIAorQEAgLTk4OSw3 ICs5ODksNyBAQCBjZGVmIGNsYXNzIFF1YXRlcm5pb25BbGdlYnJhRWxlbWVudF9yYXRpb25hbF9m aWVsZChRdWF0ZXJuaW9uQWxnZWJyYUVsZW1lbnRfYWJzdAorICAgICAgICAgIiIiCisgICAgICAg ICByZXR1cm4gYm9vbChtcHpfc2duKHNlbGYueCkgb3IgbXB6X3NnbihzZWxmLnkpIG9yIG1wel9z Z24oc2VsZi56KSBvciBtcHpfc2duKHNlbGYudykpCisgCistICAgIGNwZGVmIF9yaWNoY21wXyhz ZWxmLCBfcmlnaHQsIGludCBvcCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhzZWxm LCBfcmlnaHQsIGludCBvcCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIENvbXBhcmUgdHdvIHF1 YXRlcm5pb25zLgorIAorQEAgLTExNTAsNyArMTE1MCw3IEBAIGNkZWYgY2xhc3MgUXVhdGVybmlv bkFsZ2VicmFFbGVtZW50X3JhdGlvbmFsX2ZpZWxkKFF1YXRlcm5pb25BbGdlYnJhRWxlbWVudF9h YnN0CisgICAgICAgICByZXR1cm4gKHVucGlja2xlX1F1YXRlcm5pb25BbGdlYnJhRWxlbWVudF9y YXRpb25hbF9maWVsZF92MCwKKyAgICAgICAgICAgICAgICAgKHNlbGYuX3BhcmVudCwgKHNlbGZb MF0sIHNlbGZbMV0sIHNlbGZbMl0sIHNlbGZbM10pKSkKKyAKKy0gICAgY3BkZWYgX2FkZF8oc2Vs ZiwgX3JpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FkZF8oc2VsZiwgX3JpZ2h0KToKKyAg ICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTEyMDYsNyArMTIwNiw3IEBA IGNkZWYgY2xhc3MgUXVhdGVybmlvbkFsZ2VicmFFbGVtZW50X3JhdGlvbmFsX2ZpZWxkKFF1YXRl cm5pb25BbGdlYnJhRWxlbWVudF9hYnN0CisgICAgICAgICBtcHpfc2V0KHJlc3VsdC5iLCBzZWxm LmIpCisgICAgICAgICByZXR1cm4gcmVzdWx0CisgCistICAgIGNwZGVmIF9zdWJfKHNlbGYsIF9y aWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9zdWJfKHNlbGYsIF9yaWdodCk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0xMjQ3LDcgKzEyNDcsNyBAQCBjZGVm IGNsYXNzIFF1YXRlcm5pb25BbGdlYnJhRWxlbWVudF9yYXRpb25hbF9maWVsZChRdWF0ZXJuaW9u QWxnZWJyYUVsZW1lbnRfYWJzdAorICAgICAgICAgbXB6X3NldChyZXN1bHQuYiwgc2VsZi5iKQor ICAgICAgICAgcmV0dXJuIHJlc3VsdAorIAorLSAgICBjcGRlZiBfbXVsXyhzZWxmLCBfcmlnaHQp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbXVsXyhzZWxmLCBfcmlnaHQpOgorICAgICAgICAgIiIi CisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMTM2MCw3ICsxMzYwLDcgQEAgY2RlZiBjbGFz cyBRdWF0ZXJuaW9uQWxnZWJyYUVsZW1lbnRfcmF0aW9uYWxfZmllbGQoUXVhdGVybmlvbkFsZ2Vi cmFFbGVtZW50X2Fic3QKKyAKKyAgICAgICAgIHJldHVybiByZXN1bHQKKyAKKy0gICAgY3BkZWYg cmVkdWNlZF9ub3JtKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiByZWR1Y2VkX25vcm0oc2Vs Zik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgcmVkdWNlZCBub3JtIG9mIGBg c2VsZmBgLgorIAorQEAgLTE0MDEsNyArMTQwMSw3IEBAIGNkZWYgY2xhc3MgUXVhdGVybmlvbkFs Z2VicmFFbGVtZW50X3JhdGlvbmFsX2ZpZWxkKFF1YXRlcm5pb25BbGdlYnJhRWxlbWVudF9hYnN0 CisgCisgICAgICAgICByZXR1cm4gcmVzdWx0CisgCistICAgIGNwZGVmIGNvbmp1Z2F0ZShzZWxm KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgY29uanVnYXRlKHNlbGYpOgorICAgICAgICAgIiIiCisg ICAgICAgICBSZXR1cm4gdGhlIGNvbmp1Z2F0ZSBvZiB0aGlzIHF1YXRlcm5pb24uCisgCitAQCAt MTQzMiw3ICsxNDMyLDcgQEAgY2RlZiBjbGFzcyBRdWF0ZXJuaW9uQWxnZWJyYUVsZW1lbnRfcmF0 aW9uYWxfZmllbGQoUXVhdGVybmlvbkFsZ2VicmFFbGVtZW50X2Fic3QKKyAKKyAgICAgICAgIHJl dHVybiByZXN1bHQKKyAKKy0gICAgY3BkZWYgcmVkdWNlZF90cmFjZShzZWxmKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgcmVkdWNlZF90cmFjZShzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAg UmV0dXJuIHRoZSByZWR1Y2VkIHRyYWNlIG9mIGBgc2VsZmBgLgorIAorQEAgLTE0NTYsNyArMTQ1 Niw3IEBAIGNkZWYgY2xhc3MgUXVhdGVybmlvbkFsZ2VicmFFbGVtZW50X3JhdGlvbmFsX2ZpZWxk KFF1YXRlcm5pb25BbGdlYnJhRWxlbWVudF9hYnN0CisgICAgICAgICBtcHFfY2Fub25pY2FsaXpl KHJlc3VsdC52YWx1ZSkKKyAgICAgICAgIHJldHVybiByZXN1bHQKKyAKKy0gICAgY2RlZiBpbmxp bmUgY2Fub25pY2FsaXplKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIGlubGluZSBjYW5vbmlj YWxpemUoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFB1dCB0aGUgcmVwcmVzZW50YXRp b24gb2YgdGhpcyBxdWF0ZXJuaW9uIGVsZW1lbnQgaW50bworICAgICAgICAgc21hbGxlc3QgZm9y bS4gRm9yIGBhID0gKDEvZCkoeCArIHlpICsgemogKyB3aylgIHdlCitAQCAtMTgxMiw3ICsxODEy LDcgQEAgY2RlZiBjbGFzcyBRdWF0ZXJuaW9uQWxnZWJyYUVsZW1lbnRfbnVtYmVyX2ZpZWxkKFF1 YXRlcm5pb25BbGdlYnJhRWxlbWVudF9hYnN0cmEKKyAgICAgICAgIHJldHVybiAodW5waWNrbGVf UXVhdGVybmlvbkFsZ2VicmFFbGVtZW50X251bWJlcl9maWVsZF92MCwKKyAgICAgICAgICAgICAg ICAgKHNlbGYuX3BhcmVudCwgKHNlbGZbMF0sIHNlbGZbMV0sIHNlbGZbMl0sIHNlbGZbM10pKSkK KyAKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwgX3JpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X2FkZF8oc2VsZiwgX3JpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgQWRkIHNlbGYgYW5k IF9yaWdodDoKKyAKK0BAIC0xODg2LDcgKzE4ODYsNyBAQCBjZGVmIGNsYXNzIFF1YXRlcm5pb25B bGdlYnJhRWxlbWVudF9udW1iZXJfZmllbGQoUXVhdGVybmlvbkFsZ2VicmFFbGVtZW50X2Fic3Ry YQorIAorICAgICAgICAgcmV0dXJuIHJlc3VsdAorIAorLSAgICBjcGRlZiBfc3ViXyhzZWxmLCBf cmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc3ViXyhzZWxmLCBfcmlnaHQpOgorICAgICAg ICAgIiIiCisgICAgICAgICBTdWJ0cmFjdCBfcmlnaHQgZnJvbSBzZWxmLgorIAorQEAgLTE5Mzcs NyArMTkzNyw3IEBAIGNkZWYgY2xhc3MgUXVhdGVybmlvbkFsZ2VicmFFbGVtZW50X251bWJlcl9m aWVsZChRdWF0ZXJuaW9uQWxnZWJyYUVsZW1lbnRfYWJzdHJhCisgCisgICAgICAgICByZXR1cm4g cmVzdWx0CisgCistICAgIGNwZGVmIF9tdWxfKHNlbGYsIF9yaWdodCkgbm9leGNlcHQ6CisrICAg IGNwZGVmIF9tdWxfKHNlbGYsIF9yaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIE11bHRp cGx5IHNlbGYgYW5kIF9yaWdodC4KKyAKK0BAIC0yMDg1LDcgKzIwODUsNyBAQCBjZGVmIGNsYXNz IFF1YXRlcm5pb25BbGdlYnJhRWxlbWVudF9udW1iZXJfZmllbGQoUXVhdGVybmlvbkFsZ2VicmFF bGVtZW50X2Fic3RyYQorIAorICAgICAgICAgcmV0dXJuIHJlc3VsdAorIAorLSAgICBjZGVmIGlu bGluZSBjYW5vbmljYWxpemUoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgaW5saW5lIGNhbm9u aWNhbGl6ZShzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUHV0IHRoZSByZXByZXNlbnRh dGlvbiBvZiB0aGlzIHF1YXRlcm5pb24gZWxlbWVudCBpbnRvCisgICAgICAgICBzbWFsbGVzdCBm b3JtLiBGb3IgYSA9IGAoMS9kKSh4ICsgeWkgKyB6aiArIHdrKWAgd2UKK2RpZmYgLS1naXQgYS9z cmMvc2FnZS9hcml0aC9mdW5jdGlvbnMucHhkIGIvc3JjL3NhZ2UvYXJpdGgvZnVuY3Rpb25zLnB4 ZAoraW5kZXggNThhZDEzYTMwYjcuLjlkZGZjMzhiMzhiIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uv YXJpdGgvZnVuY3Rpb25zLnB4ZAorKysrIGIvc3JjL3NhZ2UvYXJpdGgvZnVuY3Rpb25zLnB4ZAor QEAgLTEsMyArMSwzIEBACistY3BkZWYgTENNX2xpc3Qodikgbm9leGNlcHQKKytjcGRlZiBMQ01f bGlzdCh2KQorIAorLWNkZWYgTENNX2dlbmVyaWMoaXRyLCByZXQpIG5vZXhjZXB0CisrY2RlZiBM Q01fZ2VuZXJpYyhpdHIsIHJldCkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9hcml0aC9mdW5jdGlv bnMucHl4IGIvc3JjL3NhZ2UvYXJpdGgvZnVuY3Rpb25zLnB5eAoraW5kZXggNWJmMTdlODEzYjQu LmYwYzdjMDMyMjBlIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvYXJpdGgvZnVuY3Rpb25zLnB5eAor KysrIGIvc3JjL3NhZ2UvYXJpdGgvZnVuY3Rpb25zLnB5eAorQEAgLTEyNCw3ICsxMjQsNyBAQCBk ZWYgbGNtKGEsIGI9Tm9uZSk6CisgICAgIHJhaXNlIFR5cGVFcnJvcihmInVuYWJsZSB0byBmaW5k IGxjbSBvZiB7YSFyfSBhbmQge2Ihcn0iKQorIAorIAorLWNwZGVmIExDTV9saXN0KHYpIG5vZXhj ZXB0OgorK2NwZGVmIExDTV9saXN0KHYpOgorICAgICAiIiIKKyAgICAgUmV0dXJuIHRoZSBMQ00g b2YgYW4gaXRlcmFibGUgYGB2YGAuCisgCitAQCAtMjA2LDcgKzIwNiw3IEBAIGNwZGVmIExDTV9s aXN0KHYpIG5vZXhjZXB0OgorICAgICByZXR1cm4gegorIAorIAorLWNkZWYgTENNX2dlbmVyaWMo aXRyLCByZXQpIG5vZXhjZXB0OgorK2NkZWYgTENNX2dlbmVyaWMoaXRyLCByZXQpOgorICAgICAi IiIKKyAgICAgUmV0dXJuIHRoZSBsZWFzdCBjb21tb24gbXVsdGlwbGUgb2YgdGhlIGVsZW1lbnQg YGByZXRgYCBhbmQgdGhlCisgICAgIGVsZW1lbnRzIGluIHRoZSBpdGVyYWJsZSBgYGl0cmBgLgor ZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2FyaXRoL211bHRpX21vZHVsYXIucHhkIGIvc3JjL3NhZ2Uv YXJpdGgvbXVsdGlfbW9kdWxhci5weGQKK2luZGV4IDYyNTM0ZmNlNDNjLi4zMDBiYmYyOTAwOCAx MDA2NDQKKy0tLSBhL3NyYy9zYWdlL2FyaXRoL211bHRpX21vZHVsYXIucHhkCisrKysgYi9zcmMv c2FnZS9hcml0aC9tdWx0aV9tb2R1bGFyLnB4ZAorQEAgLTE0LDcgKzE0LDcgQEAgY2RlZiBjbGFz cyBNdWx0aU1vZHVsYXJCYXNpc19iYXNlKCk6CisgCisgICAgIGNkZWYgbW9kX2ludCBfbmV3X3Jh bmRvbV9wcmltZShzZWxmLCBzZXQga25vd25fcHJpbWVzKSBleGNlcHQgMQorICAgICBjZGVmIG1v ZF9pbnQgbGFzdF9wcmltZShzZWxmKSBub2V4Y2VwdAorLSAgICBjZGVmIF9yZWFsbG9jX3RvX25l d19jb3VudChzZWxmLCBuZXdfY291bnQpIG5vZXhjZXB0CisrICAgIGNkZWYgX3JlYWxsb2NfdG9f bmV3X2NvdW50KHNlbGYsIG5ld19jb3VudCkKKyAgICAgY2RlZiBpbnQgX2V4dGVuZF9tb2R1bGlf dG9faGVpZ2h0X2Moc2VsZiwgbXB6X3QgaGVpZ2h0KSBleGNlcHQgLTEKKyAgICAgY2RlZiB2b2lk IF9yZWZyZXNoX3Byb2R1Y3RzKHNlbGYsIGludCBzdGFydCkgbm9leGNlcHQKKyAgICAgY2RlZiB2 b2lkIF9yZWZyZXNoX3Byb2Qoc2VsZikgbm9leGNlcHQKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9h cml0aC9tdWx0aV9tb2R1bGFyLnB5eCBiL3NyYy9zYWdlL2FyaXRoL211bHRpX21vZHVsYXIucHl4 CitpbmRleCAxYzgxZDc1NWNiZS4uZjkyNTI2MjRlZWMgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9h cml0aC9tdWx0aV9tb2R1bGFyLnB5eAorKysrIGIvc3JjL3NhZ2UvYXJpdGgvbXVsdGlfbW9kdWxh ci5weXgKK0BAIC0xMDEsNyArMTAxLDcgQEAgY2RlZiBjbGFzcyBNdWx0aU1vZHVsYXJCYXNpc19i YXNlKCk6CisgICAgICAgICBtcHpfaW5pdChzZWxmLnByb2R1Y3QpCisgICAgICAgICBtcHpfaW5p dChzZWxmLmhhbGZfcHJvZHVjdCkKKyAKKy0gICAgY2RlZiBfcmVhbGxvY190b19uZXdfY291bnQo c2VsZiwgbmV3X2NvdW50KSBub2V4Y2VwdDoKKysgICAgY2RlZiBfcmVhbGxvY190b19uZXdfY291 bnQoc2VsZiwgbmV3X2NvdW50KToKKyAgICAgICAgIHNlbGYubW9kdWxpID0gPG1vZF9pbnQqPmNo ZWNrX3JlYWxsb2NhcnJheShzZWxmLm1vZHVsaSwgbmV3X2NvdW50LCBzaXplb2YobW9kX2ludCkp CisgICAgICAgICBzZWxmLnBhcnRpYWxfcHJvZHVjdHMgPSA8bXB6X3QqPmNoZWNrX3JlYWxsb2Nh cnJheShzZWxmLnBhcnRpYWxfcHJvZHVjdHMsIG5ld19jb3VudCwgc2l6ZW9mKG1wel90KSkKKyAg ICAgICAgIHNlbGYuQyA9IDxtb2RfaW50Kj5jaGVja19yZWFsbG9jYXJyYXkoc2VsZi5DLCBuZXdf Y291bnQsIHNpemVvZihtb2RfaW50KSkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9hcml0aC9wb3dl ci5weGQgYi9zcmMvc2FnZS9hcml0aC9wb3dlci5weGQKK2luZGV4IDMzZjA0M2U5NTUxLi43NjUx MjQ1ZDJlYiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2FyaXRoL3Bvd2VyLnB4ZAorKysrIGIvc3Jj L3NhZ2UvYXJpdGgvcG93ZXIucHhkCitAQCAtNywxMiArNywxMiBAQCBjdHlwZWRlZiBmdXNlZCB1 bG9uZ19vcl9vYmplY3Q6CisgICAgIG9iamVjdAorIAorIAorLWNwZGVmIGdlbmVyaWNfcG93ZXIo YSwgbikgbm9leGNlcHQKKy1jZGVmIGdlbmVyaWNfcG93ZXJfbG9uZyhhLCBsb25nIG4pIG5vZXhj ZXB0CistY2RlZiBnZW5lcmljX3Bvd2VyX3BvcyhhLCB1bG9uZ19vcl9vYmplY3Qgbikgbm9leGNl cHQgICMgbiA+IDAKKytjcGRlZiBnZW5lcmljX3Bvd2VyKGEsIG4pCisrY2RlZiBnZW5lcmljX3Bv d2VyX2xvbmcoYSwgbG9uZyBuKQorK2NkZWYgZ2VuZXJpY19wb3dlcl9wb3MoYSwgdWxvbmdfb3Jf b2JqZWN0IG4pICAjIG4gPiAwCisgCisgCistY2RlZiBpbmxpbmUgaW52ZXJ0KGEpIG5vZXhjZXB0 OgorK2NkZWYgaW5saW5lIGludmVydChhKToKKyAgICAgIiIiCisgICAgIFJldHVybiBgYGFeKC0x KWBgLgorICAgICAiIiIKK0BAIC0yMSw3ICsyMSw3IEBAIGNkZWYgaW5saW5lIGludmVydChhKSBu b2V4Y2VwdDoKKyAgICAgcmV0dXJuIFB5TnVtYmVyX1RydWVEaXZpZGUodHlwZShhKSgxKSwgYSkK KyAKKyAKKy1jZGVmIGlubGluZSBvbmUoYSkgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUgb25lKGEp OgorICAgICAiIiIKKyAgICAgUmV0dXJuIGBgYV4wYGAuCisgICAgICIiIgorZGlmZiAtLWdpdCBh L3NyYy9zYWdlL2FyaXRoL3Bvd2VyLnB5eCBiL3NyYy9zYWdlL2FyaXRoL3Bvd2VyLnB5eAoraW5k ZXggMmI0Y2JkMDk5ZDEuLmU5YTFmNzk3MmViIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvYXJpdGgv cG93ZXIucHl4CisrKysgYi9zcmMvc2FnZS9hcml0aC9wb3dlci5weXgKK0BAIC0yMCw3ICsyMCw3 IEBAIGZyb20gY3lzaWduYWxzLnNpZ25hbHMgY2ltcG9ydCBzaWdfY2hlY2sKKyBmcm9tIHNhZ2Uu YXJpdGgubG9uZyBjaW1wb3J0IGludGVnZXJfY2hlY2tfbG9uZworIAorIAorLWNwZGVmIGdlbmVy aWNfcG93ZXIoYSwgbikgbm9leGNlcHQ6CisrY3BkZWYgZ2VuZXJpY19wb3dlcihhLCBuKToKKyAg ICAgIiIiCisgICAgIFJldHVybiBgYV5uYC4KKyAKK0BAIC04OCw3ICs4OCw3IEBAIGNwZGVmIGdl bmVyaWNfcG93ZXIoYSwgbikgbm9leGNlcHQ6CisgICAgIHJldHVybiBnZW5lcmljX3Bvd2VyX3Bv cyhhLCBuKQorIAorIAorLWNkZWYgZ2VuZXJpY19wb3dlcl9sb25nKGEsIGxvbmcgbikgbm9leGNl cHQ6CisrY2RlZiBnZW5lcmljX3Bvd2VyX2xvbmcoYSwgbG9uZyBuKToKKyAgICAgIiIiCisgICAg IEFzIGBgZ2VuZXJpY19wb3dlcmBgIGJ1dCB3aGVyZSBgYG5gYCBpcyBhIEMgbG9uZy4KKyAgICAg IiIiCitAQCAtMTAyLDcgKzEwMiw3IEBAIGNkZWYgZ2VuZXJpY19wb3dlcl9sb25nKGEsIGxvbmcg bikgbm9leGNlcHQ6CisgICAgIHJldHVybiBnZW5lcmljX3Bvd2VyX3BvcyhhLCB1KQorIAorIAor LWNkZWYgZ2VuZXJpY19wb3dlcl9wb3MoYSwgdWxvbmdfb3Jfb2JqZWN0IG4pIG5vZXhjZXB0Ogor K2NkZWYgZ2VuZXJpY19wb3dlcl9wb3MoYSwgdWxvbmdfb3Jfb2JqZWN0IG4pOgorICAgICAiIiIK KyAgICAgUmV0dXJuIGBhXm5gIHdoZXJlIGBuID4gMGAuCisgICAgICIiIgorZGlmZiAtLWdpdCBh L3NyYy9zYWdlL2NhbGN1bHVzL2ludGVycG9sYXRpb24ucHhkIGIvc3JjL3NhZ2UvY2FsY3VsdXMv aW50ZXJwb2xhdGlvbi5weGQKK2luZGV4IDJkNzI5MjI4MTQ5Li45ZDYwNDU5YTAzYiAxMDA2NDQK Ky0tLSBhL3NyYy9zYWdlL2NhbGN1bHVzL2ludGVycG9sYXRpb24ucHhkCisrKysgYi9zcmMvc2Fn ZS9jYWxjdWx1cy9pbnRlcnBvbGF0aW9uLnB4ZAorQEAgLTgsNSArOCw1IEBAIGNkZWYgY2xhc3Mg U3BsaW5lOgorICAgICBjZGVmIGludCBzdGFydGVkCisgICAgIGNkZWYgb2JqZWN0IHYKKyAKKy0g ICAgY2RlZiBzdGFydF9pbnRlcnAoc2VsZikgbm9leGNlcHQKKy0gICAgY2RlZiBzdG9wX2ludGVy cChzZWxmKSBub2V4Y2VwdAorKyAgICBjZGVmIHN0YXJ0X2ludGVycChzZWxmKQorKyAgICBjZGVm IHN0b3BfaW50ZXJwKHNlbGYpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvY2FsY3VsdXMvaW50ZXJw b2xhdGlvbi5weXggYi9zcmMvc2FnZS9jYWxjdWx1cy9pbnRlcnBvbGF0aW9uLnB5eAoraW5kZXgg YTEyZjM3MmQxMzkuLmMyYWNhYjY0ZmQ5IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvY2FsY3VsdXMv aW50ZXJwb2xhdGlvbi5weXgKKysrKyBiL3NyYy9zYWdlL2NhbGN1bHVzL2ludGVycG9sYXRpb24u cHl4CitAQCAtMjQzLDcgKzI0Myw3IEBAIGNkZWYgY2xhc3MgU3BsaW5lOgorICAgICAgICAgIiIi CisgICAgICAgICByZXR1cm4gc3RyKHNlbGYudikKKyAKKy0gICAgY2RlZiBzdGFydF9pbnRlcnAo c2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgc3RhcnRfaW50ZXJwKHNlbGYpOgorICAgICAgICAg aWYgc2VsZi5zdGFydGVkOgorICAgICAgICAgICAgIHNpZ19mcmVlKHNlbGYueCkKKyAgICAgICAg ICAgICBzaWdfZnJlZShzZWxmLnkpCitAQCAtMjcxLDcgKzI3MSw3IEBAIGNkZWYgY2xhc3MgU3Bs aW5lOgorICAgICAgICAgZ3NsX3NwbGluZV9pbml0IChzZWxmLnNwbGluZSwgc2VsZi54LCBzZWxm LnksIG4pCisgICAgICAgICBzZWxmLnN0YXJ0ZWQgPSAxCisgCistICAgIGNkZWYgc3RvcF9pbnRl cnAoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgc3RvcF9pbnRlcnAoc2VsZik6CisgICAgICAg ICBpZiBub3Qgc2VsZi5zdGFydGVkOgorICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgc2ln X2ZyZWUoc2VsZi54KQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2NhbGN1bHVzL29kZS5weXggYi9z cmMvc2FnZS9jYWxjdWx1cy9vZGUucHl4CitpbmRleCBkN2QwZmMxMzNmOC4uMDgxYjRmNmJkODMg MTAwNjQ0CistLS0gYS9zcmMvc2FnZS9jYWxjdWx1cy9vZGUucHl4CisrKysgYi9zcmMvc2FnZS9j YWxjdWx1cy9vZGUucHl4CitAQCAtMzMsNyArMzMsNyBAQCBjZGVmIGNsYXNzIFB5RnVuY3Rpb25X cmFwcGVyOgorICAgICBjZGVmIG9iamVjdCB0aGVfcGFyYW1ldGVycworICAgICBjZGVmIGludCB5 X24KKyAKKy0gICAgY2RlZiBzZXRfeW4oc2VsZix4KSBub2V4Y2VwdDoKKysgICAgY2RlZiBzZXRf eW4oc2VsZix4KToKKyAgICAgICAgIHNlbGYueV9uID0geAorIAorIGNkZWYgY2xhc3Mgb2RlX3N5 c3RlbToKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9jYWxjdWx1cy9yaWVtYW5uLnB5eCBiL3NyYy9z YWdlL2NhbGN1bHVzL3JpZW1hbm4ucHl4CitpbmRleCAwYjgwYTI5ZGE3MC4uYTRmOTU0NWJmZmIg MTAwNjQ0CistLS0gYS9zcmMvc2FnZS9jYWxjdWx1cy9yaWVtYW5uLnB5eAorKysrIGIvc3JjL3Nh Z2UvY2FsY3VsdXMvcmllbWFubi5weXgKK0BAIC0yOTEsNyArMjkxLDcgQEAgY2RlZiBjbGFzcyBS aWVtYW5uX01hcDoKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuICJBIFJpZW1hbm4gb3Ig QWhsZm9ycyBtYXBwaW5nIG9mIGEgZmlndXJlIHRvIHRoZSB1bml0IGNpcmNsZS4iCisgCistICAg IGNkZWYgX2dlbmVyYXRlX3RoZXRhX2FycmF5KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9n ZW5lcmF0ZV90aGV0YV9hcnJheShzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgR2VuZXJh dGVzIHRoZSBlc3NlbnRpYWwgZGF0YSBmb3IgdGhlIFJpZW1hbm4gbWFwLCBwcmltYXJpbHkgdGhl CisgICAgICAgICBTemVnxZEga2VybmVsIGFuZCBib3VuZGFyeSBjb3JyZXNwb25kZW5jZS4KK0BA IC01MTUsNyArNTE1LDcgQEAgY2RlZiBjbGFzcyBSaWVtYW5uX01hcDoKKyAgICAgICAgICAgICBy ZXR1cm4gbnAuY29sdW1uX3N0YWNrKAorICAgICAgICAgICAgICAgICBbc2VsZi50azIsIHNlbGYu dGhldGFfYXJyYXlbYm91bmRhcnldXSkudG9saXN0KCkKKyAKKy0gICAgY2RlZiBfZ2VuZXJhdGVf aW50ZXJpb3JfbWFwcGVyKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9nZW5lcmF0ZV9pbnRl cmlvcl9tYXBwZXIoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEdlbmVyYXRlcyB0aGUg ZGF0YSBuZWNlc3NhcnkgdG8gdXNlIHRoZSA6bWV0aDpgcmllbWFubl9tYXBgIGZ1bmN0aW9uLgor ICAgICAgICAgQXMgbXVjaCBzZXR1cCBhcyBwb3NzaWJsZSBpcyBkb25lIGhlcmUgdG8gbWluaW1p emUgdGhlIGNvbXB1dGF0aW9uCitAQCAtNTY4LDcgKzU2OCw3IEBAIGNkZWYgY2xhc3MgUmllbWFu bl9NYXA6CisgICAgICAgICBjZGVmIG5wLm5kYXJyYXlbZG91YmxlIGNvbXBsZXgsIG5kaW09MV0g cHEgPSBzZWxmLmNwc1s6LGxpc3QocmFuZ2UoTikpK1swXV0uZmxhdHRlbigpCisgICAgICAgICBz ZWxmLnByZV9xX3ZlY3RvciA9IHBxCisgCistICAgIGNwZGVmIHJpZW1hbm5fbWFwKHNlbGYsIENP TVBMRVhfVCBwdCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHJpZW1hbm5fbWFwKHNlbGYsIENPTVBM RVhfVCBwdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgUmllbWFubiBtYXBw aW5nIG9mIGEgcG9pbnQuCisgCitAQCAtNjE5LDcgKzYxOSw3IEBAIGNkZWYgY2xhc3MgUmllbWFu bl9NYXA6CisgICAgICAgICAgICAgICAgIHNlbGYucHJlX3FfdmVjdG9yIC0gcHQxKQorICAgICAg ICAgICAgIHJldHVybiAtbnAuZG90KHNlbGYucF92ZWN0b3IsIHFfdmVjdG9yKQorIAorLSAgICBj ZGVmIF9nZW5lcmF0ZV9pbnZlcnNlX21hcHBlcihzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBf Z2VuZXJhdGVfaW52ZXJzZV9tYXBwZXIoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEdl bmVyYXRlcyB0aGUgZGF0YSBuZWNlc3NhcnkgdG8gdXNlIHRoZQorICAgICAgICAgOm1ldGg6YGlu dmVyc2VfcmllbWFubl9tYXBgIGZ1bmN0aW9uLiBBcyBtdWNoIHNldHVwIGFzIHBvc3NpYmxlIGlz CitAQCAtNjU2LDcgKzY1Niw3IEBAIGNkZWYgY2xhc3MgUmllbWFubl9NYXA6CisgICAgICAgICAg ICAgZm9yIGkgaW4gcmFuZ2UoTik6CisgICAgICAgICAgICAgICAgIHNlbGYuY29zYWxwaGFbaywg aV0gPSBjb3MoLXRoZXRhX2FycmF5W2ssIGldKQorIAorLSAgICBjcGRlZiBpbnZlcnNlX3JpZW1h bm5fbWFwKHNlbGYsIENPTVBMRVhfVCBwdCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGludmVyc2Vf cmllbWFubl9tYXAoc2VsZiwgQ09NUExFWF9UIHB0KToKKyAgICAgICAgICIiIgorICAgICAgICAg UmV0dXJuIHRoZSBpbnZlcnNlIFJpZW1hbm4gbWFwcGluZyBvZiBhIHBvaW50LgorIAorQEAgLTc2 NCw3ICs3NjQsNyBAQCBjZGVmIGNsYXNzIFJpZW1hbm5fTWFwOgorICAgICAgICAgICAgICAgICAg ICAgcG9pbnRzaXplPXRoaWNrbmVzcykKKyAgICAgICAgIHJldHVybiBzdW0ocGxvdHMpCisgCist ICAgIGNwZGVmIGNvbXB1dGVfb25fZ3JpZChzZWxmLCBwbG90X3JhbmdlLCBpbnQgeF9wb2ludHMp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBjb21wdXRlX29uX2dyaWQoc2VsZiwgcGxvdF9yYW5nZSwg aW50IHhfcG9pbnRzKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ29tcHV0ZSB0aGUgUmllbWFu biBtYXAgb24gYSBncmlkIG9mIHBvaW50cy4KKyAKK0BAIC0xMDYwLDcgKzEwNjAsNyBAQCBjZGVm IGNsYXNzIFJpZW1hbm5fTWFwOgorICAgICAgICAgICAgICh5bWluLCB5bWF4KSxvcHRpb25zKSkK KyAgICAgICAgIHJldHVybiBnCisgCistY2RlZiBjb21wX3B0KGNsaXN0LCBsb29wPVRydWUpIG5v ZXhjZXB0OgorK2NkZWYgY29tcF9wdChjbGlzdCwgbG9vcD1UcnVlKToKKyAgICAgIiIiCisgICAg IFV0aWxpdHkgZnVuY3Rpb24gdG8gY29udmVydCB0aGUgbGlzdCBvZiBjb21wbGV4IG51bWJlcnMK KyAgICAgYGB4ZGVyaXZzID0gZ2V0X2Rlcml2YXRpdmVzKHpfdmFsdWVzLCB4c3RlcCwgeXN0ZXAp WzBdYGAgdG8gdGhlIHBsb3R0YWJsZQorQEAgLTEwOTAsNyArMTA5MCw3IEBAIGNkZWYgY29tcF9w dChjbGlzdCwgbG9vcD1UcnVlKSBub2V4Y2VwdDoKKyAgICAgcmV0dXJuIGxpc3QyCisgCisgY3Bk ZWYgZ2V0X2Rlcml2YXRpdmVzKG5wLm5kYXJyYXlbQ09NUExFWF9ULCBuZGltPTJdIHpfdmFsdWVz LCBGTE9BVF9UIHhzdGVwLAorLSAgICBGTE9BVF9UIHlzdGVwKSBub2V4Y2VwdDoKKysgICAgRkxP QVRfVCB5c3RlcCk6CisgICAgICIiIgorICAgICBDb21wdXRlcyB0aGUgciplXihJKnRoZXRhKSBm b3JtIG9mIGRlcml2YXRpdmVzIGZyb20gdGhlIGdyaWQgb2YgcG9pbnRzLiBUaGUKKyAgICAgZGVy aXZhdGl2ZXMgYXJlIGNvbXB1dGVkIHVzaW5nIHF1aWNrLWFuZC1kaXJ0eSB0YXlsb3IgZXhwYW5z aW9uIGFuZAorQEAgLTExNDYsNyArMTE0Niw3IEBAIGNwZGVmIGdldF9kZXJpdmF0aXZlcyhucC5u ZGFycmF5W0NPTVBMRVhfVCwgbmRpbT0yXSB6X3ZhbHVlcywgRkxPQVRfVCB4c3RlcCwKKyAKKyBj cGRlZiBjb21wbGV4X3RvX3NwaWRlcndlYihucC5uZGFycmF5W0NPTVBMRVhfVCwgbmRpbSA9IDJd IHpfdmFsdWVzLAorICAgICBucC5uZGFycmF5W0ZMT0FUX1QsIG5kaW0gPSAyXSBkciwgbnAubmRh cnJheVtGTE9BVF9ULCBuZGltID0gMl0gZHRoZXRhLAorLSAgICBzcG9rZXMsIGNpcmNsZXMsIHJn YmNvbG9yLCB0aGlja25lc3MsIHdpdGhjb2xvciwgbWluX21hZykgbm9leGNlcHQ6CisrICAgIHNw b2tlcywgY2lyY2xlcywgcmdiY29sb3IsIHRoaWNrbmVzcywgd2l0aGNvbG9yLCBtaW5fbWFnKToK KyAgICAgIiIiCisgICAgIENvbnZlcnRzIGEgZ3JpZCBvZiBjb21wbGV4IG51bWJlcnMgaW50byBh IG1hdHJpeCBjb250YWluaW5nIHJnYiBkYXRhCisgICAgIGZvciB0aGUgUmllbWFubiBzcGlkZXJ3 ZWIgcGxvdC4KK0BAIC0xMjYzLDcgKzEyNjMsNyBAQCBjcGRlZiBjb21wbGV4X3RvX3NwaWRlcndl YihucC5uZGFycmF5W0NPTVBMRVhfVCwgbmRpbSA9IDJdIHpfdmFsdWVzLAorICAgICByZXR1cm4g cmdiCisgCisgCistY3BkZWYgY29tcGxleF90b19yZ2IobnAubmRhcnJheVtDT01QTEVYX1QsIG5k aW0gPSAyXSB6X3ZhbHVlcykgbm9leGNlcHQ6CisrY3BkZWYgY29tcGxleF90b19yZ2IobnAubmRh cnJheVtDT01QTEVYX1QsIG5kaW0gPSAyXSB6X3ZhbHVlcyk6CisgICAgIHIiIiIKKyAgICAgQ29u dmVydCBmcm9tIGEgKE51bXB5KSBhcnJheSBvZiBjb21wbGV4IG51bWJlcnMgdG8gaXRzIGNvcnJl c3BvbmRpbmcKKyAgICAgbWF0cml4IG9mIFJHQiB2YWx1ZXMuICBGb3IgaW50ZXJuYWwgdXNlIG9m IDptZXRoOmB+UmllbWFubl9NYXAucGxvdF9jb2xvcmVkYAorQEAgLTEzNjgsNyArMTM2OCw3IEBA IGNwZGVmIGNvbXBsZXhfdG9fcmdiKG5wLm5kYXJyYXlbQ09NUExFWF9ULCBuZGltID0gMl0gel92 YWx1ZXMpIG5vZXhjZXB0OgorICAgICBzaWdfb2ZmKCkKKyAgICAgcmV0dXJuIHJnYgorIAorLWNw ZGVmIGFuYWx5dGljX2JvdW5kYXJ5KEZMT0FUX1QgdCwgaW50IG4sIEZMT0FUX1QgZXBzaWxvbikg bm9leGNlcHQ6CisrY3BkZWYgYW5hbHl0aWNfYm91bmRhcnkoRkxPQVRfVCB0LCBpbnQgbiwgRkxP QVRfVCBlcHNpbG9uKToKKyAgICAgIiIiCisgICAgIFByb3ZpZGVzIGFuIGV4YWN0IChmb3IgbiA9 IGluZmluaXR5KSBSaWVtYW5uIGJvdW5kYXJ5CisgICAgIGNvcnJlc3BvbmRlbmNlIGZvciB0aGUg ZWxsaXBzZSB3aXRoIGF4ZXMgMSArIGVwc2lsb24gYW5kIDEgLSBlcHNpbG9uLiBUaGUKK0BAIC0x NDE3LDcgKzE0MTcsNyBAQCBjcGRlZiBhbmFseXRpY19ib3VuZGFyeShGTE9BVF9UIHQsIGludCBu LCBGTE9BVF9UIGVwc2lsb24pIG5vZXhjZXB0OgorICAgICByZXR1cm4gcmVzdWx0CisgCisgCist Y3BkZWYgY2F1Y2h5X2tlcm5lbCh0LCBhcmdzKSBub2V4Y2VwdDoKKytjcGRlZiBjYXVjaHlfa2Vy bmVsKHQsIGFyZ3MpOgorICAgICAiIiIKKyAgICAgSW50ZXJtZWRpYXRlIGZ1bmN0aW9uIGZvciB0 aGUgaW50ZWdyYXRpb24gaW4gOm1ldGg6YH5SaWVtYW5uX01hcC5hbmFseXRpY19pbnRlcmlvcmAu CisgCitAQCAtMTQ2Myw3ICsxNDYzLDcgQEAgY3BkZWYgY2F1Y2h5X2tlcm5lbCh0LCBhcmdzKSBu b2V4Y2VwdDoKKyAgICAgICAgIHJldHVybiBOb25lCisgCisgCistY3BkZWYgYW5hbHl0aWNfaW50 ZXJpb3IoQ09NUExFWF9UIHosIGludCBuLCBGTE9BVF9UIGVwc2lsb24pIG5vZXhjZXB0OgorK2Nw ZGVmIGFuYWx5dGljX2ludGVyaW9yKENPTVBMRVhfVCB6LCBpbnQgbiwgRkxPQVRfVCBlcHNpbG9u KToKKyAgICAgIiIiCisgICAgIFByb3ZpZGVzIGEgbmVhcmx5IGV4YWN0IGNvbXB1dGF0aW9uIG9m IHRoZSBSaWVtYW5uIE1hcCBvZiBhbiBpbnRlcmlvcgorICAgICBwb2ludCBvZiB0aGUgZWxsaXBz ZSB3aXRoIGF4ZXMgMSArIGVwc2lsb24gYW5kIDEgLSBlcHNpbG9uLiBJdCBpcworZGlmZiAtLWdp dCBhL3NyYy9zYWdlL2NhdGVnb3JpZXMvYWN0aW9uLnB4ZCBiL3NyYy9zYWdlL2NhdGVnb3JpZXMv YWN0aW9uLnB4ZAoraW5kZXggYTIyYTM3Y2MyMmEuLjU4ODNhZGViYzk3IDEwMDY0NAorLS0tIGEv c3JjL3NhZ2UvY2F0ZWdvcmllcy9hY3Rpb24ucHhkCisrKysgYi9zcmMvc2FnZS9jYXRlZ29yaWVz L2FjdGlvbi5weGQKK0BAIC04LDEwICs4LDEwIEBAIGNkZWYgY2xhc3MgQWN0aW9uKEZ1bmN0b3Ip OgorICAgICBjZGVmIHJlYWRvbmx5IG9wCisgICAgIGNkZWYgcmVhZG9ubHkgYmludCBfaXNfbGVm dAorICAgICBjZGVmIFVTCistICAgIGNkZWYgdW5kZXJseWluZ19zZXQoc2VsZikgbm9leGNlcHQK KysgICAgY2RlZiB1bmRlcmx5aW5nX3NldChzZWxmKQorIAorLSAgICBjZGVmIF9hY3RfY29udmVy dChzZWxmLCBnLCB4KSBub2V4Y2VwdAorLSAgICBjcGRlZiBfYWN0XyhzZWxmLCBnLCB4KSBub2V4 Y2VwdAorKyAgICBjZGVmIF9hY3RfY29udmVydChzZWxmLCBnLCB4KQorKyAgICBjcGRlZiBfYWN0 XyhzZWxmLCBnLCB4KQorIAorIAorIGNkZWYgY2xhc3MgSW52ZXJzZUFjdGlvbihBY3Rpb24pOgor ZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2NhdGVnb3JpZXMvYWN0aW9uLnB5eCBiL3NyYy9zYWdlL2Nh dGVnb3JpZXMvYWN0aW9uLnB5eAoraW5kZXggNmM2ZWEwNzIwNTMuLjlmMDBiMTNjMmUxIDEwMDY0 NAorLS0tIGEvc3JjL3NhZ2UvY2F0ZWdvcmllcy9hY3Rpb24ucHl4CisrKysgYi9zcmMvc2FnZS9j YXRlZ29yaWVzL2FjdGlvbi5weXgKK0BAIC02Niw3ICs2Niw3IEBAIGZyb20gc2FnZS5jYXRlZ29y aWVzIGltcG9ydCBob21zZXQKKyBmcm9tIHdlYWtyZWYgaW1wb3J0IHJlZgorIAorIAorLWNkZWYg aW5saW5lIGNhdGVnb3J5KHgpIG5vZXhjZXB0OgorK2NkZWYgaW5saW5lIGNhdGVnb3J5KHgpOgor ICAgICB0cnk6CisgICAgICAgICByZXR1cm4geC5jYXRlZ29yeSgpCisgICAgIGV4Y2VwdCBBdHRy aWJ1dGVFcnJvcjoKK0BAIC0xNzgsNyArMTc4LDcgQEAgY2RlZiBjbGFzcyBBY3Rpb24oRnVuY3Rv cik6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiYWN0aW9u cyBzaG91bGQgYmUgY2FsbGVkIHdpdGggMSBvciAyIGFyZ3VtZW50cyIpCisgCistICAgIGNkZWYg X2FjdF9jb252ZXJ0KHNlbGYsIGcsIHgpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9hY3RfY29udmVy dChzZWxmLCBnLCB4KToKKyAgICAgICAgICIiIgorICAgICAgICAgTGV0IGBgZ2BgIGFjdCBvbiBg YHhgYCB1bmRlciB0aGlzIGFjdGlvbiwgY29udmVydGluZyBgYGdgYAorICAgICAgICAgYW5kIGBg eGBgIHRvIHRoZSBjb3JyZWN0IHBhcmVudHMgZmlyc3QuCitAQCAtMTkwLDcgKzE5MCw3IEBAIGNk ZWYgY2xhc3MgQWN0aW9uKEZ1bmN0b3IpOgorICAgICAgICAgICAgIHggPSBVKHgpCisgICAgICAg ICByZXR1cm4gc2VsZi5fYWN0XyhnLCB4KQorIAorLSAgICBjcGRlZiBfYWN0XyhzZWxmLCBnLCB4 KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FjdF8oc2VsZiwgZywgeCk6CisgICAgICAgICAiIiIK KyAgICAgICAgIExldCBgYGdgYCBhY3Qgb24gYGB4YGAgdW5kZXIgdGhpcyBhY3Rpb24uCisgCitA QCAtMjUxLDcgKzI1MSw3IEBAIGNkZWYgY2xhc3MgQWN0aW9uKEZ1bmN0b3IpOgorICAgICBkZWYg YWN0b3Ioc2VsZik6CisgICAgICAgICByZXR1cm4gc2VsZi5HCisgCistICAgIGNkZWYgdW5kZXJs eWluZ19zZXQoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgdW5kZXJseWluZ19zZXQoc2VsZik6 CisgICAgICAgICAiIiIKKyAgICAgICAgIFRoZSBzZXQgb24gd2hpY2ggdGhlIGFjdG9yIGFjdHMg KGl0IGlzIG5vdCBuZWNlc3NhcmlseSB0aGUgY29kb21haW4gb2YKKyAgICAgICAgIHRoZSBhY3Rp b24pLgorQEAgLTQxMCw3ICs0MTAsNyBAQCBjZGVmIGNsYXNzIEludmVyc2VBY3Rpb24oQWN0aW9u KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuICh0eXBlKHNlbGYpLCAoc2VsZi5fYWN0 aW9uLCkpCisgCistICAgIGNwZGVmIF9hY3RfKHNlbGYsIGcsIHgpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBfYWN0XyhzZWxmLCBnLCB4KToKKyAgICAgICAgIGlmIHNlbGYuU19wcmVjb21wb3NpdGlv biBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICB4ID0gc2VsZi5TX3ByZWNvbXBvc2l0aW9uKHgp CisgICAgICAgICByZXR1cm4gc2VsZi5fYWN0aW9uLl9hY3RfKH5nLCB4KQorQEAgLTQ5OCw3ICs0 OTgsNyBAQCBjZGVmIGNsYXNzIFByZWNvbXBvc2VkQWN0aW9uKEFjdGlvbik6CisgICAgICAgICAi IiIKKyAgICAgICAgIHJldHVybiAodHlwZShzZWxmKSwgKHNlbGYuX2FjdGlvbiwgc2VsZi5HX3By ZWNvbXBvc2l0aW9uLCBzZWxmLlNfcHJlY29tcG9zaXRpb24pKQorIAorLSAgICBjcGRlZiBfYWN0 XyhzZWxmLCBnLCB4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FjdF8oc2VsZiwgZywgeCk6Cisg ICAgICAgICBpZiBzZWxmLkdfcHJlY29tcG9zaXRpb24gaXMgbm90IE5vbmU6CisgICAgICAgICAg ICAgZyA9IHNlbGYuR19wcmVjb21wb3NpdGlvbi5fY2FsbF8oZykKKyAgICAgICAgIGlmIHNlbGYu U19wcmVjb21wb3NpdGlvbiBpcyBub3QgTm9uZToKK0BAIC01NjksNyArNTY5LDcgQEAgY2RlZiBj bGFzcyBBY3Rpb25FbmRvbW9ycGhpc20oTW9ycGhpc20pOgorICAgICAgICAgc2VsZi5fYWN0aW9u ID0gYWN0aW9uCisgICAgICAgICBzZWxmLl9nID0gZworIAorLSAgICBjZGVmIGRpY3QgX2V4dHJh X3Nsb3RzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYp OgorICAgICAgICAgIiIiCisgICAgICAgICBIZWxwZXIgZm9yIHBpY2tsaW5nIGFuZCBjb3B5aW5n LgorIAorQEAgLTU5MSw3ICs1OTEsNyBAQCBjZGVmIGNsYXNzIEFjdGlvbkVuZG9tb3JwaGlzbShN b3JwaGlzbSk6CisgICAgICAgICBzbG90c1snX2cnXSA9IHNlbGYuX2cKKyAgICAgICAgIHJldHVy biBzbG90cworIAorLSAgICBjZGVmIF91cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpIG5v ZXhjZXB0OgorKyAgICBjZGVmIF91cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpOgorICAg ICAgICAgIiIiCisgICAgICAgICBIZWxwZXIgZm9yIHBpY2tsaW5nIGFuZCBjb3B5aW5nLgorIAor QEAgLTYxMiw3ICs2MTIsNyBAQCBjZGVmIGNsYXNzIEFjdGlvbkVuZG9tb3JwaGlzbShNb3JwaGlz bSk6CisgICAgICAgICBzZWxmLl9nID0gX3Nsb3RzWydfZyddCisgICAgICAgICBNb3JwaGlzbS5f dXBkYXRlX3Nsb3RzKHNlbGYsIF9zbG90cykKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8o c2VsZiwgeCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpOgor ICAgICAgICAgcmV0dXJuIHNlbGYuX2FjdGlvbi5fYWN0XyhzZWxmLl9nLCB4KQorIAorICAgICBk ZWYgX3JlcHJfKHNlbGYpOgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2NhdGVnb3JpZXMvY2F0ZWdv cnlfY3lfaGVscGVyLnB4ZCBiL3NyYy9zYWdlL2NhdGVnb3JpZXMvY2F0ZWdvcnlfY3lfaGVscGVy LnB4ZAoraW5kZXggYzdiZjM3NTk3MTIuLmY1MGNlNGU4MjI2IDEwMDY0NAorLS0tIGEvc3JjL3Nh Z2UvY2F0ZWdvcmllcy9jYXRlZ29yeV9jeV9oZWxwZXIucHhkCisrKysgYi9zcmMvc2FnZS9jYXRl Z29yaWVzL2NhdGVnb3J5X2N5X2hlbHBlci5weGQKK0BAIC0xLDcgKzEsNyBAQAorLWNwZGVmIHR1 cGxlIF9zb3J0X3VuaXEoY2F0ZWdvcmllcykgbm9leGNlcHQKKytjcGRlZiB0dXBsZSBfc29ydF91 bmlxKGNhdGVnb3JpZXMpCisgY2RlZiBjbGFzcyBBeGlvbUNvbnRhaW5lcihkaWN0KToKKyAgICAg cGFzcworLWNwZGVmIHR1cGxlIGNhbm9uaWNhbGl6ZV9heGlvbXMoQXhpb21Db250YWluZXIgYWxs X2F4aW9tcywgYXhpb21zKSBub2V4Y2VwdAorK2NwZGVmIHR1cGxlIGNhbm9uaWNhbGl6ZV9heGlv bXMoQXhpb21Db250YWluZXIgYWxsX2F4aW9tcywgYXhpb21zKQorIGZyb20gc2FnZS5taXNjLmNs YXNzY2FsbF9tZXRhY2xhc3MgY2ltcG9ydCBDbGFzc2NhbGxNZXRhY2xhc3MKKy1jcGRlZiB0dXBs ZSBfZmxhdHRlbl9jYXRlZ29yaWVzKGNhdGVnb3JpZXMsIENsYXNzY2FsbE1ldGFjbGFzcyBKb2lu Q2F0ZWdvcnkpIG5vZXhjZXB0CistY3BkZWYgdHVwbGUgam9pbl9hc190dXBsZSh0dXBsZSBjYXRl Z29yaWVzLCB0dXBsZSBheGlvbXMsIHR1cGxlIGlnbm9yZV9heGlvbXMpIG5vZXhjZXB0CisrY3Bk ZWYgdHVwbGUgX2ZsYXR0ZW5fY2F0ZWdvcmllcyhjYXRlZ29yaWVzLCBDbGFzc2NhbGxNZXRhY2xh c3MgSm9pbkNhdGVnb3J5KQorK2NwZGVmIHR1cGxlIGpvaW5fYXNfdHVwbGUodHVwbGUgY2F0ZWdv cmllcywgdHVwbGUgYXhpb21zLCB0dXBsZSBpZ25vcmVfYXhpb21zKQorZGlmZiAtLWdpdCBhL3Ny Yy9zYWdlL2NhdGVnb3JpZXMvY2F0ZWdvcnlfY3lfaGVscGVyLnB5eCBiL3NyYy9zYWdlL2NhdGVn b3JpZXMvY2F0ZWdvcnlfY3lfaGVscGVyLnB5eAoraW5kZXggNmVkMzhmNGQwMGUuLmQzODU5MjIx YzEzIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvY2F0ZWdvcmllcy9jYXRlZ29yeV9jeV9oZWxwZXIu cHl4CisrKysgYi9zcmMvc2FnZS9jYXRlZ29yaWVzL2NhdGVnb3J5X2N5X2hlbHBlci5weXgKK0BA IC0yMSw3ICsyMSw3IEBAIEFVVEhPUjoKKyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKKyAjICBTb3J0aW5nCisgCistY3BkZWYgaW5saW5lIHR1cGxlIGNhdGVnb3J5X3Nv cnRfa2V5KG9iamVjdCBjYXRlZ29yeSkgbm9leGNlcHQ6CisrY3BkZWYgaW5saW5lIHR1cGxlIGNh dGVnb3J5X3NvcnRfa2V5KG9iamVjdCBjYXRlZ29yeSk6CisgICAgICIiIgorICAgICBSZXR1cm4g YGBjYXRlZ29yeS5fY21wX2tleWBgLgorIAorQEAgLTM4LDcgKzM4LDcgQEAgY3BkZWYgaW5saW5l IHR1cGxlIGNhdGVnb3J5X3NvcnRfa2V5KG9iamVjdCBjYXRlZ29yeSkgbm9leGNlcHQ6CisgICAg ICIiIgorICAgICByZXR1cm4gY2F0ZWdvcnkuX2NtcF9rZXkKKyAKKy1jcGRlZiB0dXBsZSBfc29y dF91bmlxKGNhdGVnb3JpZXMpIG5vZXhjZXB0OgorK2NwZGVmIHR1cGxlIF9zb3J0X3VuaXEoY2F0 ZWdvcmllcyk6CisgICAgICIiIgorICAgICBSZXR1cm4gdGhlIGNhdGVnb3JpZXMgYWZ0ZXIgc29y dGluZyB0aGVtIGFuZCByZW1vdmluZyByZWR1bmRhbnQgY2F0ZWdvcmllcy4KKyAKK0BAIC03Miw3 ICs3Miw3IEBAIGNwZGVmIHR1cGxlIF9zb3J0X3VuaXEoY2F0ZWdvcmllcykgbm9leGNlcHQ6Cisg ICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChjYXRlZ29yeSkKKyAgICAgcmV0dXJuIHR1cGxlKHJl c3VsdCkKKyAKKy1jcGRlZiB0dXBsZSBfZmxhdHRlbl9jYXRlZ29yaWVzKGNhdGVnb3JpZXMsIENs YXNzY2FsbE1ldGFjbGFzcyBKb2luQ2F0ZWdvcnkpIG5vZXhjZXB0OgorK2NwZGVmIHR1cGxlIF9m bGF0dGVuX2NhdGVnb3JpZXMoY2F0ZWdvcmllcywgQ2xhc3NjYWxsTWV0YWNsYXNzIEpvaW5DYXRl Z29yeSk6CisgICAgICIiIgorICAgICBSZXR1cm4gdGhlIHR1cGxlIG9mIGNhdGVnb3JpZXMgaW4g YGBjYXRlZ29yaWVzYGAsIHdoaWxlCisgICAgIGZsYXR0ZW5pbmcgam9pbiBjYXRlZ29yaWVzLgor QEAgLTExNiw3ICsxMTYsNyBAQCBjZGVmIGJpbnQgaXNfc3VwZXJjYXRlZ29yeV9vZl9kb25lKG5l d19jYXQsIGRpY3QgZG9uZSkgbm9leGNlcHQ6CisgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAg ICAgcmV0dXJuIEZhbHNlCisgCistY3BkZWYgdHVwbGUgam9pbl9hc190dXBsZSh0dXBsZSBjYXRl Z29yaWVzLCB0dXBsZSBheGlvbXMsIHR1cGxlIGlnbm9yZV9heGlvbXMpIG5vZXhjZXB0OgorK2Nw ZGVmIHR1cGxlIGpvaW5fYXNfdHVwbGUodHVwbGUgY2F0ZWdvcmllcywgdHVwbGUgYXhpb21zLCB0 dXBsZSBpZ25vcmVfYXhpb21zKToKKyAgICAgIiIiCisgICAgIEhlbHBlciBmb3IgOm1ldGg6YH5z YWdlLmNhdGVnb3JpZXMuY2F0ZWdvcnkuQ2F0ZWdvcnkuam9pbmAuCisgCitAQCAtMjY3LDcgKzI2 Nyw3IEBAIGNkZWYgY2xhc3MgQXhpb21Db250YWluZXIoZGljdCk6CisgICAgICAgICByZXR1cm4g c2VsZgorIAorIAorLWNwZGVmIGlubGluZSBnZXRfYXhpb21faW5kZXgoQXhpb21Db250YWluZXIg YWxsX2F4aW9tcywgc3RyIGF4aW9tKSBub2V4Y2VwdDoKKytjcGRlZiBpbmxpbmUgZ2V0X2F4aW9t X2luZGV4KEF4aW9tQ29udGFpbmVyIGFsbF9heGlvbXMsIHN0ciBheGlvbSk6CisgICAgICIiIgor ICAgICBIZWxwZXIgZnVuY3Rpb246IFJldHVybiB0aGUgcmFuayBvZiBhbiBheGlvbS4KKyAKK0BA IC0yODYsNyArMjg2LDcgQEAgY3BkZWYgaW5saW5lIGdldF9heGlvbV9pbmRleChBeGlvbUNvbnRh aW5lciBhbGxfYXhpb21zLCBzdHIgYXhpb20pIG5vZXhjZXB0OgorICAgICByZXR1cm4gKDxkaWN0 PmFsbF9heGlvbXMpW2F4aW9tXQorIAorIAorLWNwZGVmIHR1cGxlIGNhbm9uaWNhbGl6ZV9heGlv bXMoQXhpb21Db250YWluZXIgYWxsX2F4aW9tcywgYXhpb21zKSBub2V4Y2VwdDoKKytjcGRlZiB0 dXBsZSBjYW5vbmljYWxpemVfYXhpb21zKEF4aW9tQ29udGFpbmVyIGFsbF9heGlvbXMsIGF4aW9t cyk6CisgICAgIHIiIiIKKyAgICAgQ2Fub25pY2FsaXplIGEgc2V0IG9mIGF4aW9tcy4KKyAKK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9jYXRlZ29yaWVzL2V4YW1wbGVzL3NlbWlncm91cHNfY3l0aG9u LnB5eCBiL3NyYy9zYWdlL2NhdGVnb3JpZXMvZXhhbXBsZXMvc2VtaWdyb3Vwc19jeXRob24ucHl4 CitpbmRleCAyYjdiNzZjMDBlMy4uYjQ1NmMyODY4ZjggMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9j YXRlZ29yaWVzL2V4YW1wbGVzL3NlbWlncm91cHNfY3l0aG9uLnB5eAorKysrIGIvc3JjL3NhZ2Uv Y2F0ZWdvcmllcy9leGFtcGxlcy9zZW1pZ3JvdXBzX2N5dGhvbi5weXgKK0BAIC04NSw3ICs4NSw3 IEBAIGNkZWYgY2xhc3MgTGVmdFplcm9TZW1pZ3JvdXBFbGVtZW50KEVsZW1lbnQpOgorICAgICAg ICAgIiIiCisgICAgICAgICByZXR1cm4gTGVmdFplcm9TZW1pZ3JvdXBFbGVtZW50LCAoc2VsZi5f cGFyZW50LCBzZWxmLl92YWx1ZSkKKyAKKy0gICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIG90aGVy LCBpbnQgb3ApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgb3RoZXIsIGlu dCBvcCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0xMDAsNyAr MTAwLDcgQEAgY2RlZiBjbGFzcyBMZWZ0WmVyb1NlbWlncm91cEVsZW1lbnQoRWxlbWVudCk6Cisg ICAgICAgICByaWdodCA9ICg8TGVmdFplcm9TZW1pZ3JvdXBFbGVtZW50Pm90aGVyKS5fdmFsdWUK KyAgICAgICAgIHJldHVybiBQeU9iamVjdF9SaWNoQ29tcGFyZShsZWZ0LCByaWdodCwgb3ApCisg CistICAgIGNwZGVmIF9tdWxfKHNlbGYsIG90aGVyKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX211 bF8oc2VsZiwgb3RoZXIpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitk aWZmIC0tZ2l0IGEvc3JjL3NhZ2UvY2F0ZWdvcmllcy9tYXAucHhkIGIvc3JjL3NhZ2UvY2F0ZWdv cmllcy9tYXAucHhkCitpbmRleCA5OGM3NGQ4NjJlNC4uMDQ2N2I4NzIzNTMgMTAwNjQ0CistLS0g YS9zcmMvc2FnZS9jYXRlZ29yaWVzL21hcC5weGQKKysrKyBiL3NyYy9zYWdlL2NhdGVnb3JpZXMv bWFwLnB4ZAorQEAgLTgsMTIgKzgsMTIgQEAgY2RlZiBjbGFzcyBNYXAoRWxlbWVudCk6CisgICAg ICMgYSByb3VnaCBtZWFzdXJlIG9mIHRoZSBjb3N0IG9mIHVzaW5nIHRoaXMgbW9ycGhpc20gaW4g dGhlIGNvZXJjaW9uIHN5c3RlbS4KKyAgICAgIyAxMCBieSBkZWZhdWx0LCAxMDAgaWYgYSBEZWZh dWx0Q29lcmNpb25Nb3JwaGlzbSwgMTAwMDAgaWYgaW5leGFjdC4KKyAKKy0gICAgY2RlZiBfdXBk YXRlX3Nsb3RzKHNlbGYsIGRpY3QpIG5vZXhjZXB0CistICAgIGNkZWYgZGljdCBfZXh0cmFfc2xv dHMoc2VsZikgbm9leGNlcHQKKysgICAgY2RlZiBfdXBkYXRlX3Nsb3RzKHNlbGYsIGRpY3QpCisr ICAgIGNkZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZikKKyAKKyAgICAgIyB0aGVzZSBtZXRob2Rz IHJlcXVpcmUgeCBpcyBhbiBlbGVtZW50IG9mIGRvbWFpbiwgYW5kIHJldHVybnMgYW4gZWxlbWVu dCB3aXRoIHBhcmVudCBjb2RvbWFpbgorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4 KSBub2V4Y2VwdAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsX3dpdGhfYXJncyhzZWxmLCB4LCBh cmdzPSosIGt3ZHM9Kikgbm9leGNlcHQKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwg eCkKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF93aXRoX2FyZ3Moc2VsZiwgeCwgYXJncz0qLCBr d2RzPSopCisgCisgICAgIGNkZWYgcHVibGljIGRvbWFpbiAgICAjIHdpbGwgYmUgZWl0aGVyIGEg d2Vha3JlZiBvciBhIGNvbnN0YW50IG1hcAorICAgICBjZGVmIHB1YmxpYyBjb2RvbWFpbiAgIyB3 aWxsIGJlIGEgY29uc3RhbnQgbWFwCitAQCAtMjMsNyArMjMsNyBAQCBjZGVmIGNsYXNzIE1hcChF bGVtZW50KToKKyAgICAgY2RlZiBwdWJsaWMgX3JlcHJfdHlwZV9zdHIKKyAgICAgY2RlZiBwdWJs aWMgYmludCBfaXNfY29lcmNpb24KKyAKKy0gICAgY3BkZWYgX3Bvd19pbnQoc2VsZiwgbikgbm9l eGNlcHQKKysgICAgY3BkZWYgX3Bvd19pbnQoc2VsZiwgbikKKyAKKyAKKyBjZGVmIGNsYXNzIFNl Y3Rpb24oTWFwKToKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9jYXRlZ29yaWVzL21hcC5weXggYi9z cmMvc2FnZS9jYXRlZ29yaWVzL21hcC5weXgKK2luZGV4IDI5NjEzZjE2Mjg1Li5iNDFiNzUzOGM1 OSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2NhdGVnb3JpZXMvbWFwLnB5eAorKysrIGIvc3JjL3Nh Z2UvY2F0ZWdvcmllcy9tYXAucHl4CitAQCAtMzg5LDcgKzM4OSw3IEBAIGNkZWYgY2xhc3MgTWFw KEVsZW1lbnQpOgorICAgICAgICAgc2VsZi5kb21haW4gPSBDb25zdGFudEZ1bmN0aW9uKEQpCisg ICAgICAgICBzZWxmLl9wYXJlbnQgPSBob21zZXQuSG9tKEQsIEMsIHNlbGYuX2NhdGVnb3J5X2Zv cikKKyAKKy0gICAgY2RlZiBfdXBkYXRlX3Nsb3RzKHNlbGYsIGRpY3Qgc2xvdHMpIG5vZXhjZXB0 OgorKyAgICBjZGVmIF91cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBzbG90cyk6CisgICAgICAgICAi IiIKKyAgICAgICAgIFNldCB2YXJpb3VzIGF0dHJpYnV0ZXMgb2YgdGhpcyBtYXAgdG8gaW1wbGVt ZW50IHVucGlja2xpbmcuCisgCitAQCAtNDUxLDcgKzQ1MSw3IEBAIGNkZWYgY2xhc3MgTWFwKEVs ZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAgICBzZWxmLl91cGRhdGVfc2xvdHMoX3Nsb3Rz KQorIAorLSAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBj ZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1 cm4gYSBkaWN0IHdpdGggYXR0cmlidXRlcyB0byBwaWNrbGUgYW5kIGNvcHkgdGhpcyBtYXAuCisg ICAgICAgICAiIiIKK0BAIC04MTYsNyArODE2LDcgQEAgY2RlZiBjbGFzcyBNYXAoRWxlbWVudCk6 CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2NhbGxfKHgpCisgICAgICAgICByZXR1cm4gc2Vs Zi5fY2FsbF93aXRoX2FyZ3MoeCwgYXJncywga3dkcykKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBf Y2FsbF8oc2VsZiwgeCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYs IHgpOgorICAgICAgICAgIiIiCisgICAgICAgICBDYWxsIG1ldGhvZCB3aXRoIGEgc2luZ2xlIGFy Z3VtZW50LCBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIGJhc2UgY2xhc3MuCisgCitAQCAtODMxLDcg KzgzMSw3IEBAIGNkZWYgY2xhc3MgTWFwKEVsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAg ICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKHR5cGUoc2VsZikpCisgCistICAgIGNwZGVmIEVs ZW1lbnQgX2NhbGxfd2l0aF9hcmdzKHNlbGYsIHgsIGFyZ3M9KCksIGt3ZHM9e30pIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsX3dpdGhfYXJncyhzZWxmLCB4LCBhcmdzPSgpLCBr d2RzPXt9KToKKyAgICAgICAgICIiIgorICAgICAgICAgQ2FsbCBtZXRob2Qgd2l0aCBtdWx0aXBs ZSBhcmd1bWVudHMsIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgYmFzZSBjbGFzcy4KKyAKK0BAIC0x MjIyLDcgKzEyMjIsNyBAQCBjZGVmIGNsYXNzIE1hcChFbGVtZW50KToKKyAgICAgICAgICIiIgor ICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcih0eXBlKHNlbGYpKQorIAorLSAgICBj cGRlZiBfcG93X2ludChzZWxmLCBuKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3Bvd19pbnQoc2Vs Ziwgbik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRFU1RTOjoKKyAKK0BAIC0xMzY4LDcgKzEz NjgsNyBAQCBjZGVmIGNsYXNzIFNlY3Rpb24oTWFwKToKKyAgICAgICAgIE1hcC5fX2luaXRfXyhz ZWxmLCBIb20obWFwLmNvZG9tYWluKCksIG1hcC5kb21haW4oKSwgU2V0c1dpdGhQYXJ0aWFsTWFw cygpKSkKKyAgICAgICAgIHNlbGYuX2ludmVyc2UgPSBtYXAgICAgIyBUT0RPOiBVc2UgdGhpcyBh dHRyaWJ1dGUgc29tZXdoZXJlIQorIAorLSAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYp IG5vZXhjZXB0OgorKyAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpOgorICAgICAgICAg IiIiCisgICAgICAgICBIZWxwZXIgZm9yIHBpY2tsaW5nIGFuZCBjb3B5aW5nLgorIAorQEAgLTEz ODcsNyArMTM4Nyw3IEBAIGNkZWYgY2xhc3MgU2VjdGlvbihNYXApOgorICAgICAgICAgc2xvdHNb J19pbnZlcnNlJ10gPSBzZWxmLl9pbnZlcnNlCisgICAgICAgICByZXR1cm4gc2xvdHMKKyAKKy0g ICAgY2RlZiBfdXBkYXRlX3Nsb3RzKHNlbGYsIGRpY3QgX3Nsb3RzKSBub2V4Y2VwdDoKKysgICAg Y2RlZiBfdXBkYXRlX3Nsb3RzKHNlbGYsIGRpY3QgX3Nsb3RzKToKKyAgICAgICAgICIiIgorICAg ICAgICAgSGVscGVyIGZvciBwaWNrbGluZyBhbmQgY29weWluZy4KKyAKK0BAIC0xNTc2LDcgKzE1 NzYsNyBAQCBjZGVmIGNsYXNzIEZvcm1hbENvbXBvc2l0ZU1hcChNYXApOgorICAgICAgICAgIiIi CisgICAgICAgICByZXR1cm4gRm9ybWFsQ29tcG9zaXRlTWFwKHNlbGYucGFyZW50KCksIFtmLl9f Y29weV9fKCkgZm9yIGYgaW4gc2VsZi5fX2xpc3RdKQorIAorLSAgICBjZGVmIF91cGRhdGVfc2xv dHMoc2VsZiwgZGljdCBfc2xvdHMpIG5vZXhjZXB0OgorKyAgICBjZGVmIF91cGRhdGVfc2xvdHMo c2VsZiwgZGljdCBfc2xvdHMpOgorICAgICAgICAgIiIiCisgICAgICAgICBVc2VkIGluIHBpY2ts aW5nIGFuZCBjb3B5aW5nLgorIAorQEAgLTE1OTUsNyArMTU5NSw3IEBAIGNkZWYgY2xhc3MgRm9y bWFsQ29tcG9zaXRlTWFwKE1hcCk6CisgICAgICAgICBzZWxmLl9fbGlzdCA9IF9zbG90c1snX19s aXN0J10KKyAgICAgICAgIE1hcC5fdXBkYXRlX3Nsb3RzKHNlbGYsIF9zbG90cykKKyAKKy0gICAg Y2RlZiBkaWN0IF9leHRyYV9zbG90cyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBkaWN0IF9l eHRyYV9zbG90cyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgVXNlZCBpbiBwaWNrbGlu ZyBhbmQgY29weWluZy4KKyAKK0BAIC0xNzA4LDcgKzE3MDgsNyBAQCBjZGVmIGNsYXNzIEZvcm1h bENvbXBvc2l0ZU1hcChNYXApOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5f X2xpc3RbaV0KKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCkgbm9leGNlcHQ6 CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpOgorICAgICAgICAgIiIiCisgICAg ICAgICBDYWxsIHdpdGggYSBzaW5nbGUgYXJndW1lbnQKKyAKK0BAIC0xNzI2LDcgKzE3MjYsNyBA QCBjZGVmIGNsYXNzIEZvcm1hbENvbXBvc2l0ZU1hcChNYXApOgorICAgICAgICAgICAgIHggPSBm Ll9jYWxsXyh4KQorICAgICAgICAgcmV0dXJuIHgKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2Fs bF93aXRoX2FyZ3Moc2VsZiwgeCwgYXJncz0oKSwga3dkcz17fSkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIEVsZW1lbnQgX2NhbGxfd2l0aF9hcmdzKHNlbGYsIHgsIGFyZ3M9KCksIGt3ZHM9e30pOgor ICAgICAgICAgIiIiCisgICAgICAgICBBZGRpdGlvbmFsIGFyZ3VtZW50cyBhcmUgb25seSBwYXNz ZWQgdG8gdGhlIGxhc3QgYXBwbGllZCBtYXAuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvY2F0 ZWdvcmllcy9tb3JwaGlzbS5weXggYi9zcmMvc2FnZS9jYXRlZ29yaWVzL21vcnBoaXNtLnB5eAor aW5kZXggZTM2YzMyYjM0YmMuLjBlNDgwNWVmMWI0IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvY2F0 ZWdvcmllcy9tb3JwaGlzbS5weXgKKysrKyBiL3NyYy9zYWdlL2NhdGVnb3JpZXMvbW9ycGhpc20u cHl4CitAQCAtMzQ1LDcgKzM0NSw3IEBAIGNkZWYgY2xhc3MgTW9ycGhpc20oTWFwKToKKyAgICAg ICAgICAgICBkZWZpbml0aW9uID0gcmVwcihzZWxmKQorICAgICAgICAgcmV0dXJuIGhhc2goKGRv bWFpbiwgY29kb21haW4sIGRlZmluaXRpb24pKQorIAorLSAgICBjcGRlZiBfcmljaGNtcF8oc2Vs Ziwgb3RoZXIsIGludCBvcCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCBv dGhlciwgaW50IG9wKToKKyAgICAgICAgICIiIgorICAgICAgICAgR2VuZXJpYyBjb21wYXJpc29u IGZ1bmN0aW9uIGZvciBtb3JwaGlzbXMuCisgCitAQCAtNDU0LDcgKzQ1NCw3IEBAIGNkZWYgY2xh c3MgRm9ybWFsQ29lcmNpb25Nb3JwaGlzbShNb3JwaGlzbSk6CisgICAgIGRlZiBfcmVwcl90eXBl KHNlbGYpOgorICAgICAgICAgcmV0dXJuICJDb2VyY2lvbiIKKyAKKy0gICAgY3BkZWYgRWxlbWVu dCBfY2FsbF8oc2VsZiwgeCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNl bGYsIHgpOgorICAgICAgICAgcmV0dXJuIHNlbGYuX2NvZG9tYWluLmNvZXJjZSh4KQorIAorIGNk ZWYgY2xhc3MgQ2FsbE1vcnBoaXNtKE1vcnBoaXNtKToKK0BAIC00NjIsNyArNDYyLDcgQEAgY2Rl ZiBjbGFzcyBDYWxsTW9ycGhpc20oTW9ycGhpc20pOgorICAgICBkZWYgX3JlcHJfdHlwZShzZWxm KToKKyAgICAgICAgIHJldHVybiAiQ2FsbCIKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8o c2VsZiwgeCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpOgor ICAgICAgICAgcmV0dXJuIHNlbGYuX2NvZG9tYWluKHgpCisgCisgY2RlZiBjbGFzcyBJZGVudGl0 eU1vcnBoaXNtKE1vcnBoaXNtKToKK0BAIC00NzYsMTAgKzQ3NiwxMCBAQCBjZGVmIGNsYXNzIElk ZW50aXR5TW9ycGhpc20oTW9ycGhpc20pOgorICAgICBkZWYgX3JlcHJfdHlwZShzZWxmKToKKyAg ICAgICAgIHJldHVybiAiSWRlbnRpdHkiCisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNl bGYsIHgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KToKKyAg ICAgICAgIHJldHVybiB4CisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfd2l0aF9hcmdzKHNl bGYsIHgsIGFyZ3M9KCksIGt3ZHM9e30pIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9j YWxsX3dpdGhfYXJncyhzZWxmLCB4LCBhcmdzPSgpLCBrd2RzPXt9KToKKyAgICAgICAgIGlmIG5v dCBhcmdzIGFuZCBub3Qga3dkczoKKyAgICAgICAgICAgICByZXR1cm4geAorICAgICAgICAgY2Rl ZiBQYXJlbnQgQyA9IHNlbGYuX2NvZG9tYWluCitAQCAtNTAwLDcgKzUwMCw3IEBAIGNkZWYgY2xh c3MgSWRlbnRpdHlNb3JwaGlzbShNb3JwaGlzbSk6CisgICAgICAgICBlbHNlOgorICAgICAgICAg ICAgIHJldHVybiBsZWZ0CisgCistICAgIGNwZGVmIF9wb3dfaW50KHNlbGYsIG4pIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBfcG93X2ludChzZWxmLCBuKToKKyAgICAgICAgIHJldHVybiBzZWxmCisg CisgICAgIGRlZiBfX2ludmVydF9fKHNlbGYpOgorQEAgLTU4Nyw3ICs1ODcsNyBAQCBjZGVmIGNs YXNzIFNldE1vcnBoaXNtKE1vcnBoaXNtKToKKyAgICAgICAgIE1vcnBoaXNtLl9faW5pdF9fKHNl bGYsIHBhcmVudCkKKyAgICAgICAgIHNlbGYuX2Z1bmN0aW9uID0gZnVuY3Rpb24KKyAKKy0gICAg Y3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1l bnQgX2NhbGxfKHNlbGYsIHgpOgorICAgICAgICAgIiIiCisgICAgICAgICBJTlBVVDoKKyAKK0BA IC02MDgsNyArNjA4LDcgQEAgY2RlZiBjbGFzcyBTZXRNb3JwaGlzbShNb3JwaGlzbSk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9mdW5jdGlvbih4KQorIAorLSAgICBjcGRl ZiBFbGVtZW50IF9jYWxsX3dpdGhfYXJncyhzZWxmLCB4LCBhcmdzPSgpLCBrd2RzPXt9KSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF93aXRoX2FyZ3Moc2VsZiwgeCwgYXJncz0o KSwga3dkcz17fSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEV4dHJhIGFyZ3VtZW50cyBhcmUg cGFzc2VkIHRvIHRoZSBkZWZpbmluZyBmdW5jdGlvbi4KKyAKK0BAIC02MzAsNyArNjMwLDcgQEAg Y2RlZiBjbGFzcyBTZXRNb3JwaGlzbShNb3JwaGlzbSk6CisgICAgICAgICBleGNlcHQgRXhjZXB0 aW9uOgorICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiVW5kZXJseWluZyBtYXAgJXMgZG9l cyBub3QgYWNjZXB0IGFkZGl0aW9uYWwgYXJndW1lbnRzIiAlIHR5cGUoc2VsZi5fZnVuY3Rpb24p KQorIAorLSAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBj ZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBJTlBV VDoKKyAKK0BAIC02NTIsNyArNjUyLDcgQEAgY2RlZiBjbGFzcyBTZXRNb3JwaGlzbShNb3JwaGlz bSk6CisgICAgICAgICBzbG90c1snX2Z1bmN0aW9uJ10gPSBzZWxmLl9mdW5jdGlvbgorICAgICAg ICAgcmV0dXJuIHNsb3RzCisgCistICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0IF9z bG90cykgbm9leGNlcHQ6CisrICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0IF9zbG90 cyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIElOUFVUOgorIAorZGlmZiAtLWdpdCBhL3NyYy9z YWdlL2NvZGluZy9jb2RlY2FuL2NvZGVjYW4ucHhkIGIvc3JjL3NhZ2UvY29kaW5nL2NvZGVjYW4v Y29kZWNhbi5weGQKK2luZGV4IGI3NjYwOGQ2OGUzLi4yNzk2ODhkMjMzMyAxMDA2NDQKKy0tLSBh L3NyYy9zYWdlL2NvZGluZy9jb2RlY2FuL2NvZGVjYW4ucHhkCisrKysgYi9zcmMvc2FnZS9jb2Rp bmcvY29kZWNhbi9jb2RlY2FuLnB4ZAorQEAgLTE3LDIwICsxNywyMCBAQCBjZGVmIGNsYXNzIElu bmVyR3JvdXA6CisgICAgIGNkZWYgaW5saW5lIGludCBnZXRfcmVwKHNlbGYsIGludCBwb3MpIG5v ZXhjZXB0CisgICAgIGNkZWYgaW5saW5lIGludCBqb2luX3Jvd3Moc2VsZiwgaW50IHJlcDEsIGlu dCByZXAyKSBub2V4Y2VwdAorIAorLSAgICBjZGVmIElubmVyR3JvdXAgX25ld19jKHNlbGYpIG5v ZXhjZXB0CisrICAgIGNkZWYgSW5uZXJHcm91cCBfbmV3X2Moc2VsZikKKyAgICAgY2RlZiB2b2lk IGNvcHlfZnJvbShzZWxmLCBJbm5lckdyb3VwIG90aGVyKSBub2V4Y2VwdAorICAgICBjZGVmIGJp bnQgaGFzX3NlbWlsaW5lYXJfYWN0aW9uKHNlbGYpIG5vZXhjZXB0CistICAgIGNkZWYgbWluaW1p emVfYnlfcm93X211bHQoc2VsZiwgRnJlZU1vZHVsZUVsZW1lbnQgdikgbm9leGNlcHQKKysgICAg Y2RlZiBtaW5pbWl6ZV9ieV9yb3dfbXVsdChzZWxmLCBGcmVlTW9kdWxlRWxlbWVudCB2KQorICAg ICBjZGVmIG1pbmltaXplX21hdHJpeF9jb2woc2VsZiwgb2JqZWN0IG0sIGludCBwb3MsIGxpc3Qg Zml4ZWRfbWluaW1pemVkX2NvbHMsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW50 ICpncm91cF9jaGFuZ2VkKSBub2V4Y2VwdAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YmludCAqZ3JvdXBfY2hhbmdlZCkKKyAgICAgY2RlZiB2b2lkIGdhdXNzaWFuX2VsaW1pbmF0aW9u KHNlbGYsIG9iamVjdCBtLCBpbnQgcG9zLCBpbnQgcGl2b3QsIGxpc3QgbnpfcG9zKSBub2V4Y2Vw dAorICAgICBjZGVmIHZvaWQgbWluaW1pemVfYnlfZnJvYmVuaXVzKHNlbGYsIG9iamVjdCB2LCBp bnQgKmFwcGxpZWRfZnJvYiwgaW50ICpzdGFiX3Bvdykgbm9leGNlcHQKKyAKKy0gICAgY2RlZiBT ZW1pbW9ub21pYWxUcmFuc2Zvcm1hdGlvbiBnZXRfdHJhbnNwb3J0ZXIoc2VsZikgbm9leGNlcHQK KysgICAgY2RlZiBTZW1pbW9ub21pYWxUcmFuc2Zvcm1hdGlvbiBnZXRfdHJhbnNwb3J0ZXIoc2Vs ZikKKyAKKyAgICAgY2RlZiBiaW50IGhhc19zZW1pbGluZWFyX2FjdGlvbihzZWxmKSBub2V4Y2Vw dAorICAgICBjcGRlZiBpbnQgZ2V0X2Zyb2JfcG93KHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVm IGNvbHVtbl9ibG9ja3Moc2VsZiwgbWF0KSBub2V4Y2VwdAorKyAgICBjcGRlZiBjb2x1bW5fYmxv Y2tzKHNlbGYsIG1hdCkKKyAKKyBjZGVmIGNsYXNzIFBhcnRpdGlvblJlZmluZW1lbnRMaW5lYXJD b2RlKFBhcnRpdGlvblJlZmluZW1lbnRfZ2VuZXJpYyk6CisgICAgIGNkZWYgaW50IF9rLCBfcQor QEAgLTU4LDUgKzU4LDUgQEAgY2RlZiBjbGFzcyBQYXJ0aXRpb25SZWZpbmVtZW50TGluZWFyQ29k ZShQYXJ0aXRpb25SZWZpbmVtZW50X2dlbmVyaWMpOgorICAgICBjZGVmIGJpbnQgX2h5cF9yZWZp bmUoc2VsZiwgYmludCAqY2hhbmdlZF9wYXJ0aXRpb24pIG5vZXhjZXB0CisgCisgICAgICMgc29t ZSBhZGRpdGlvbmFsIG1ldGhvZHMKKy0gICAgY2RlZiBfY29tcHV0ZV9ncm91cF9lbGVtZW50KHNl bGYsIFNlbWltb25vbWlhbFRyYW5zZm9ybWF0aW9uIHRyYW5zLCBzdHIgYWxnb3JpdGhtX3R5cGUp IG5vZXhjZXB0CistICAgIGNkZWYgX2luaXRfcG9pbnRfaHlwZXJwbGFuZV9pbmNpZGVuY2Uoc2Vs Zikgbm9leGNlcHQKKysgICAgY2RlZiBfY29tcHV0ZV9ncm91cF9lbGVtZW50KHNlbGYsIFNlbWlt b25vbWlhbFRyYW5zZm9ybWF0aW9uIHRyYW5zLCBzdHIgYWxnb3JpdGhtX3R5cGUpCisrICAgIGNk ZWYgX2luaXRfcG9pbnRfaHlwZXJwbGFuZV9pbmNpZGVuY2Uoc2VsZikKK2RpZmYgLS1naXQgYS9z cmMvc2FnZS9jb2RpbmcvY29kZWNhbi9jb2RlY2FuLnB5eCBiL3NyYy9zYWdlL2NvZGluZy9jb2Rl Y2FuL2NvZGVjYW4ucHl4CitpbmRleCAyNWZkZmE4ZTViMS4uODlhMDRkNjE0MzMgMTAwNjQ0Cist LS0gYS9zcmMvc2FnZS9jb2RpbmcvY29kZWNhbi9jb2RlY2FuLnB5eAorKysrIGIvc3JjL3NhZ2Uv Y29kaW5nL2NvZGVjYW4vY29kZWNhbi5weXgKK0BAIC0yMjEsNyArMjIxLDcgQEAgY2RlZiBjbGFz cyBJbm5lckdyb3VwOgorICAgICAgICAgc2VsZi5wZXJtdXRhdGlvbmFsX29ubHkgPSBvdGhlci5w ZXJtdXRhdGlvbmFsX29ubHkKKyAgICAgICAgIE9QX2NvcHlfZnJvbV90byhvdGhlci5yb3dfcGFy dGl0aW9uLCBzZWxmLnJvd19wYXJ0aXRpb24pCisgCistICAgIGNkZWYgbWluaW1pemVfYnlfcm93 X211bHQoc2VsZiwgRnJlZU1vZHVsZUVsZW1lbnQgdykgbm9leGNlcHQ6CisrICAgIGNkZWYgbWlu aW1pemVfYnlfcm93X211bHQoc2VsZiwgRnJlZU1vZHVsZUVsZW1lbnQgdyk6CisgICAgICAgICBy IiIiCisgICAgICAgICBXZSBzdXBwb3NlIGB2IFxpbiBcR0Z7cX1ea2AgYW5kIHRoZSBlbnRyaWVz IGB2X2kgPSAwYCBmb3IgYWxsCisgICAgICAgICBgYGkgPj0gc2VsZi5yYW5rYGAuCitAQCAtMjQ5 LDcgKzI0OSw3IEBAIGNkZWYgY2xhc3MgSW5uZXJHcm91cDoKKyAgICAgICAgIHJldHVybiBkLCB2 CisgCisgICAgIGNkZWYgbWluaW1pemVfbWF0cml4X2NvbChzZWxmLCBvYmplY3QgbSwgaW50IHBv cywgbGlzdCBmaXhlZF9taW5pbWl6ZWRfY29scywKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGJpbnQgKmdyb3VwX2NoYW5nZWQpIG5vZXhjZXB0OgorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYmludCAqZ3JvdXBfY2hhbmdlZCk6CisgICAgICAgICByIiIiCisgICAgICAgICBN aW5pbWl6ZSB0aGUgY29sdW1uIGF0IHBvc2l0aW9uIGBgcG9zYGAgb2YgdGhlIG1hdHJpeCBgYG1g YCBieSB0aGUKKyAgICAgICAgIGFjdGlvbiBvZiBgYHNlbGZgYC4gYGBtYGAgc2hvdWxkIGhhdmUg bm8gemVybyBjb2x1bW4uIGBgc2VsZmBgIGlzIHNldCB0bworQEAgLTM0Nyw3ICszNDcsNyBAQCBj ZGVmIGNsYXNzIElubmVyR3JvdXA6CisgICAgICAgICBpZiBwaXZvdCAhPSBzZWxmLnJhbms6Cisg ICAgICAgICAgICAgbS5zd2FwX3Jvd3Moc2VsZi5yYW5rLCBwaXZvdCkKKyAKKy0gICAgY2RlZiBJ bm5lckdyb3VwIF9uZXdfYyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBJbm5lckdyb3VwIF9u ZXdfYyhzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIE1ha2UgYSBuZXcgY29weSBvZiBg YHNlbGZgYC4KKyAgICAgICAgICIiIgorQEAgLTM1OCw3ICszNTgsNyBAQCBjZGVmIGNsYXNzIElu bmVyR3JvdXA6CisgICAgICAgICByZXMucGVybXV0YXRpb25hbF9vbmx5ID0gc2VsZi5wZXJtdXRh dGlvbmFsX29ubHkKKyAgICAgICAgIHJldHVybiByZXMKKyAKKy0gICAgY2RlZiBTZW1pbW9ub21p YWxUcmFuc2Zvcm1hdGlvbiBnZXRfdHJhbnNwb3J0ZXIoc2VsZikgbm9leGNlcHQ6CisrICAgIGNk ZWYgU2VtaW1vbm9taWFsVHJhbnNmb3JtYXRpb24gZ2V0X3RyYW5zcG9ydGVyKHNlbGYpOgorICAg ICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBncm91cCBlbGVtZW50IHdlIGhhdmUgYXBw bGllZC4gU2hvdWxkIG9ubHkgYmUgY2FsbGVkIGlmCisgICAgICAgICB3ZSBwYXNzZWQgYW4gZWxl bWVudCBpbgorQEAgLTQzMSw3ICs0MzEsNyBAQCBjZGVmIGNsYXNzIElubmVyR3JvdXA6CisgICAg ICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLmZyb2JfcG93CisgCistICAgIGNwZGVmIGNv bHVtbl9ibG9ja3Moc2VsZiwgbWF0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgY29sdW1uX2Jsb2Nr cyhzZWxmLCBtYXQpOgorICAgICAgICAgciIiIgorICAgICAgICAgTGV0IGBgbWF0YGAgYmUgYSBt YXRyaXggd2hpY2ggaXMgc3RhYmlsaXplZCBieSBgYHNlbGZgYCBoYXZpbmcgbm8gemVybworICAg ICAgICAgY29sdW1ucy4gV2Uga25vdyB0aGF0IGZvciBlYWNoIGNvbHVtbiBvZiBgYG1hdGBgIHRo ZXJlIGlzIGEgdW5pcXVlbHkKK0BAIC02NDYsNyArNjQ2LDcgQEAgY2RlZiBjbGFzcyBQYXJ0aXRp b25SZWZpbmVtZW50TGluZWFyQ29kZShQYXJ0aXRpb25SZWZpbmVtZW50X2dlbmVyaWMpOgorICAg ICAgICAgICAgIHNlbGYuX2F1dG9tX2dyb3VwX2dlbmVyYXRvcnMuYXBwZW5kKHRyYW5zcF9pbnYg KiB4ICogc2VsZi5fdHJhbnNwb3J0ZXIpCisgICAgICAgICAgICAgc2VsZi5faW5uZXJfZ3JvdXBf c3RhYmlsaXplcl9vcmRlciAqPSBJbnRlZ2VyKEYuZGVncmVlKCkgLyByZW1haW5pbmdfaW5uZXJf Z3JvdXAuZ2V0X2Zyb2JfcG93KCkpCisgCistICAgIGNkZWYgX2NvbXB1dGVfZ3JvdXBfZWxlbWVu dChzZWxmLCBTZW1pbW9ub21pYWxUcmFuc2Zvcm1hdGlvbiB0cmFucywgc3RyIGFsZ29yaXRobV90 eXBlKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfY29tcHV0ZV9ncm91cF9lbGVtZW50KHNlbGYsIFNl bWltb25vbWlhbFRyYW5zZm9ybWF0aW9uIHRyYW5zLCBzdHIgYWxnb3JpdGhtX3R5cGUpOgorICAg ICAgICAgIiIiCisgICAgICAgICBBcHBseSBgYHRyYW5zYGAgdG8gYGBzZWxmLl9yb290X21hdHJp eGBgIGFuZCBtaW5pbWl6ZSB0aGlzIG1hdHJpeAorICAgICAgICAgY29sdW1uIGJ5IGNvbHVtbiB1 bmRlciB0aGUgaW5uZXIgbWluaW1pemF0aW9uLiBUaGUgYWN0aW9uIGlzCitAQCAtNzM4LDcgKzcz OCw3IEBAIGNkZWYgY2xhc3MgUGFydGl0aW9uUmVmaW5lbWVudExpbmVhckNvZGUoUGFydGl0aW9u UmVmaW5lbWVudF9nZW5lcmljKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYu X2lubmVyX2dyb3VwX3N0YWJpbGl6ZXJfb3JkZXIKKyAKKy0gICAgY2RlZiBfaW5pdF9wb2ludF9o eXBlcnBsYW5lX2luY2lkZW5jZShzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfaW5pdF9wb2lu dF9oeXBlcnBsYW5lX2luY2lkZW5jZShzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIENv bXB1dGUgYSBzZXQgb2YgY29kZXdvcmRzIGBXYCBvZiBgQ2AgKGdlbmVyYXRlZCBieSBzZWxmKSB3 aGljaCBpcyBjb21wYXRpYmxlCisgICAgICAgICB3aXRoIHRoZSBncm91cCBhY3Rpb24sIGkuZS4g aWYgd2Ugc3RhcnQgd2l0aCBzb21lIG90aGVyIGNvZGUgYChnLFxwaSlDYAorQEAgLTEwNDUsNyAr MTA0NSw3IEBAIGNkZWYgY2xhc3MgUGFydGl0aW9uUmVmaW5lbWVudExpbmVhckNvZGUoUGFydGl0 aW9uUmVmaW5lbWVudF9nZW5lcmljKToKKyAgICAgICAgICAgICBzZWxmLl9oeXBfcGFydC5kZXB0 aCAtPSAxCisgICAgICAgICByZXR1cm4gcmV0X3ZhbFswXQorIAorLSAgICBjZGVmIHR1cGxlIF9z dG9yZV9zdGF0ZV8oc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgdHVwbGUgX3N0b3JlX3N0YXRl XyhzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFN0b3JlIHRoZSBjdXJyZW50IHN0YXRl IG9mIHRoZSBub2RlIHRvIGEgdHVwbGUsIHN1Y2ggdGhhdCBpdCBjYW4gYmUKKyAgICAgICAgIHJl c3RvcmVkIGJ5IDptZXRoOmBfcmVzdG9yZV9zdGF0ZV9gLgorZGlmZiAtLWdpdCBhL3NyYy9zYWdl L2NvbWJpbmF0L2NvbWJpbmF0X2N5dGhvbi5weGQgYi9zcmMvc2FnZS9jb21iaW5hdC9jb21iaW5h dF9jeXRob24ucHhkCitpbmRleCBkZmFmZTQ1ZjU4OS4uNDBjYWUwMGE3ODEgMTAwNjQ0CistLS0g YS9zcmMvc2FnZS9jb21iaW5hdC9jb21iaW5hdF9jeXRob24ucHhkCisrKysgYi9zcmMvc2FnZS9j b21iaW5hdC9jb21iaW5hdF9jeXRob24ucHhkCitAQCAtMSw1ICsxLDUgQEAKKyBmcm9tIHNhZ2Uu bGlicy5nbXAuYWxsIGNpbXBvcnQgbXB6X3QKKyAKKy1jZGVmIG1wel9zdGlybGluZ19zMihtcHpf dCBzLCB1bnNpZ25lZCBsb25nIG4sIHVuc2lnbmVkIGxvbmcgaykgbm9leGNlcHQKKytjZGVmIG1w el9zdGlybGluZ19zMihtcHpfdCBzLCB1bnNpZ25lZCBsb25nIG4sIHVuc2lnbmVkIGxvbmcgaykK KyAKKy1jZGVmIGxpc3QgY29udmVydChQeV9zc2l6ZV90KiBmLCBQeV9zc2l6ZV90IG4pIG5vZXhj ZXB0CisrY2RlZiBsaXN0IGNvbnZlcnQoUHlfc3NpemVfdCogZiwgUHlfc3NpemVfdCBuKQorZGlm ZiAtLWdpdCBhL3NyYy9zYWdlL2NvbWJpbmF0L2NvbWJpbmF0X2N5dGhvbi5weXggYi9zcmMvc2Fn ZS9jb21iaW5hdC9jb21iaW5hdF9jeXRob24ucHl4CitpbmRleCAzYjhmYjdhZWZhMy4uNDIxOTk0 Mzk0YzIgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9jb21iaW5hdC9jb21iaW5hdF9jeXRob24ucHl4 CisrKysgYi9zcmMvc2FnZS9jb21iaW5hdC9jb21iaW5hdF9jeXRob24ucHl4CitAQCAtMzgsNyAr MzgsNyBAQCBjZGVmIHZvaWQgbXB6X2FkZG11bF9hbHQobXB6X3QgcywgbXB6X3QgdCwgbXB6X3Qg dSwgdW5zaWduZWQgbG9uZyBwYXJpdHkpIG5vZXhjZQorICAgICAgICAgbXB6X2FkZG11bChzLCB0 LCB1KQorIAorIAorLWNkZWYgbXB6X3N0aXJsaW5nX3MyKG1wel90IHMsIHVuc2lnbmVkIGxvbmcg biwgdW5zaWduZWQgbG9uZyBrKSBub2V4Y2VwdDoKKytjZGVmIG1wel9zdGlybGluZ19zMihtcHpf dCBzLCB1bnNpZ25lZCBsb25nIG4sIHVuc2lnbmVkIGxvbmcgayk6CisgICAgICIiIgorICAgICBT ZXQgcyA9IFMobixrKSB3aGVyZSBTKG4saykgZGVub3RlcyBhIFN0aXJsaW5nIG51bWJlciBvZiB0 aGUKKyAgICAgc2Vjb25kIGtpbmQuCitAQCAtMjgwLDcgKzI4MCw3IEBAIGRlZiBwZXJmZWN0X21h dGNoaW5nc19pdGVyYXRvcihQeV9zc2l6ZV90IG4pOgorICAgICBzaWdfZnJlZShmKQorIAorIAor LWNkZWYgbGlzdCBjb252ZXJ0KFB5X3NzaXplX3QqIGYsIFB5X3NzaXplX3Qgbikgbm9leGNlcHQ6 CisrY2RlZiBsaXN0IGNvbnZlcnQoUHlfc3NpemVfdCogZiwgUHlfc3NpemVfdCBuKToKKyAgICAg IiIiCisgICAgIENvbnZlcnQgYSBsaXN0IGBgZmBgIHJlcHJlc2VudGluZyBhIGZpeGVkLXBvaW50 IGZyZWUgaW52b2x1dGlvbgorICAgICB0byBhIHNldCBwYXJ0aXRpb24uCitkaWZmIC0tZ2l0IGEv c3JjL3NhZ2UvY29tYmluYXQvY3J5c3RhbHMvbGV0dGVycy5weGQgYi9zcmMvc2FnZS9jb21iaW5h dC9jcnlzdGFscy9sZXR0ZXJzLnB4ZAoraW5kZXggZTQ3M2EwMmRjMjQuLjRmOGUyNWRhNDExIDEw MDY0NAorLS0tIGEvc3JjL3NhZ2UvY29tYmluYXQvY3J5c3RhbHMvbGV0dGVycy5weGQKKysrKyBi L3NyYy9zYWdlL2NvbWJpbmF0L2NyeXN0YWxzL2xldHRlcnMucHhkCitAQCAtNSwzOCArNSwzOCBA QCBjZGVmIGNsYXNzIExldHRlcihFbGVtZW50KToKKyAKKyBjZGVmIGNsYXNzIEVtcHR5TGV0dGVy KEVsZW1lbnQpOgorICAgICBjZGVmIHJlYWRvbmx5IHN0ciB2YWx1ZQorLSAgICBjcGRlZiBlKHNl bGYsIGludCBpKSBub2V4Y2VwdAorLSAgICBjcGRlZiBmKHNlbGYsIGludCBpKSBub2V4Y2VwdAor KyAgICBjcGRlZiBlKHNlbGYsIGludCBpKQorKyAgICBjcGRlZiBmKHNlbGYsIGludCBpKQorICAg ICBjcGRlZiBpbnQgZXBzaWxvbihzZWxmLCBpbnQgaSkgbm9leGNlcHQKKyAgICAgY3BkZWYgaW50 IHBoaShzZWxmLCBpbnQgaSkgbm9leGNlcHQKKyAKKyBjZGVmIGNsYXNzIENyeXN0YWxfb2ZfbGV0 dGVyc190eXBlX0FfZWxlbWVudChMZXR0ZXIpOgorLSAgICBjcGRlZiBMZXR0ZXIgZShzZWxmLCBp bnQgaSkgbm9leGNlcHQKKy0gICAgY3BkZWYgTGV0dGVyIGYoc2VsZiwgaW50IGkpIG5vZXhjZXB0 CisrICAgIGNwZGVmIExldHRlciBlKHNlbGYsIGludCBpKQorKyAgICBjcGRlZiBMZXR0ZXIgZihz ZWxmLCBpbnQgaSkKKyAgICAgY3BkZWYgaW50IGVwc2lsb24oc2VsZiwgaW50IGkpIG5vZXhjZXB0 CisgICAgIGNwZGVmIGludCBwaGkoc2VsZiwgaW50IGkpIG5vZXhjZXB0CisgCisgY2RlZiBjbGFz cyBDcnlzdGFsX29mX2xldHRlcnNfdHlwZV9CX2VsZW1lbnQoTGV0dGVyKToKKy0gICAgY3BkZWYg TGV0dGVyIGUoc2VsZiwgaW50IGkpIG5vZXhjZXB0CistICAgIGNwZGVmIExldHRlciBmKHNlbGYs IGludCBpKSBub2V4Y2VwdAorKyAgICBjcGRlZiBMZXR0ZXIgZShzZWxmLCBpbnQgaSkKKysgICAg Y3BkZWYgTGV0dGVyIGYoc2VsZiwgaW50IGkpCisgICAgIGNwZGVmIGludCBlcHNpbG9uKHNlbGYs IGludCBpKSBub2V4Y2VwdAorICAgICBjcGRlZiBpbnQgcGhpKHNlbGYsIGludCBpKSBub2V4Y2Vw dAorIAorIGNkZWYgY2xhc3MgQ3J5c3RhbF9vZl9sZXR0ZXJzX3R5cGVfQ19lbGVtZW50KExldHRl cik6CistICAgIGNwZGVmIExldHRlciBlKHNlbGYsIGludCBpKSBub2V4Y2VwdAorLSAgICBjcGRl ZiBMZXR0ZXIgZihzZWxmLCBpbnQgaSkgbm9leGNlcHQKKysgICAgY3BkZWYgTGV0dGVyIGUoc2Vs ZiwgaW50IGkpCisrICAgIGNwZGVmIExldHRlciBmKHNlbGYsIGludCBpKQorICAgICBjcGRlZiBp bnQgZXBzaWxvbihzZWxmLCBpbnQgaSkgbm9leGNlcHQKKyAgICAgY3BkZWYgaW50IHBoaShzZWxm LCBpbnQgaSkgbm9leGNlcHQKKyAKKyBjZGVmIGNsYXNzIENyeXN0YWxfb2ZfbGV0dGVyc190eXBl X0RfZWxlbWVudChMZXR0ZXIpOgorLSAgICBjcGRlZiBMZXR0ZXIgZShzZWxmLCBpbnQgaSkgbm9l eGNlcHQKKy0gICAgY3BkZWYgTGV0dGVyIGYoc2VsZiwgaW50IGkpIG5vZXhjZXB0CisrICAgIGNw ZGVmIExldHRlciBlKHNlbGYsIGludCBpKQorKyAgICBjcGRlZiBMZXR0ZXIgZihzZWxmLCBpbnQg aSkKKyAgICAgY3BkZWYgaW50IGVwc2lsb24oc2VsZiwgaW50IGkpIG5vZXhjZXB0CisgICAgIGNw ZGVmIGludCBwaGkoc2VsZiwgaW50IGkpIG5vZXhjZXB0CisgCisgY2RlZiBjbGFzcyBDcnlzdGFs X29mX2xldHRlcnNfdHlwZV9HX2VsZW1lbnQoTGV0dGVyKToKKy0gICAgY3BkZWYgTGV0dGVyIGUo c2VsZiwgaW50IGkpIG5vZXhjZXB0CistICAgIGNwZGVmIExldHRlciBmKHNlbGYsIGludCBpKSBu b2V4Y2VwdAorKyAgICBjcGRlZiBMZXR0ZXIgZShzZWxmLCBpbnQgaSkKKysgICAgY3BkZWYgTGV0 dGVyIGYoc2VsZiwgaW50IGkpCisgICAgIGNwZGVmIGludCBlcHNpbG9uKHNlbGYsIGludCBpKSBu b2V4Y2VwdAorICAgICBjcGRlZiBpbnQgcGhpKHNlbGYsIGludCBpKSBub2V4Y2VwdAorIAorQEAg LTQ2LDMzICs0NiwzMyBAQCBjZGVmIGNsYXNzIExldHRlclR1cGxlKEVsZW1lbnQpOgorICAgICBj cGRlZiBpbnQgcGhpKHNlbGYsIGludCBpKSBub2V4Y2VwdAorIAorIGNkZWYgY2xhc3MgQ3J5c3Rh bF9vZl9sZXR0ZXJzX3R5cGVfRTZfZWxlbWVudChMZXR0ZXJUdXBsZSk6CistICAgIGNwZGVmIExl dHRlclR1cGxlIGUoc2VsZiwgaW50IGkpIG5vZXhjZXB0CistICAgIGNwZGVmIExldHRlclR1cGxl IGYoc2VsZiwgaW50IGkpIG5vZXhjZXB0CisrICAgIGNwZGVmIExldHRlclR1cGxlIGUoc2VsZiwg aW50IGkpCisrICAgIGNwZGVmIExldHRlclR1cGxlIGYoc2VsZiwgaW50IGkpCisgCisgY2RlZiBj bGFzcyBDcnlzdGFsX29mX2xldHRlcnNfdHlwZV9FNl9lbGVtZW50X2R1YWwoTGV0dGVyVHVwbGUp OgorLSAgICBjcGRlZiBMZXR0ZXJUdXBsZSBsaWZ0KHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVm IExldHRlclR1cGxlIHJldHJhY3Qoc2VsZiwgTGV0dGVyVHVwbGUgcCkgbm9leGNlcHQKKy0gICAg Y3BkZWYgTGV0dGVyVHVwbGUgZShzZWxmLCBpbnQgaSkgbm9leGNlcHQKKy0gICAgY3BkZWYgTGV0 dGVyVHVwbGUgZihzZWxmLCBpbnQgaSkgbm9leGNlcHQKKysgICAgY3BkZWYgTGV0dGVyVHVwbGUg bGlmdChzZWxmKQorKyAgICBjcGRlZiBMZXR0ZXJUdXBsZSByZXRyYWN0KHNlbGYsIExldHRlclR1 cGxlIHApCisrICAgIGNwZGVmIExldHRlclR1cGxlIGUoc2VsZiwgaW50IGkpCisrICAgIGNwZGVm IExldHRlclR1cGxlIGYoc2VsZiwgaW50IGkpCisgCisgY2RlZiBjbGFzcyBDcnlzdGFsX29mX2xl dHRlcnNfdHlwZV9FN19lbGVtZW50KExldHRlclR1cGxlKToKKy0gICAgY3BkZWYgTGV0dGVyVHVw bGUgZShzZWxmLCBpbnQgaSkgbm9leGNlcHQKKy0gICAgY3BkZWYgTGV0dGVyVHVwbGUgZihzZWxm LCBpbnQgaSkgbm9leGNlcHQKKysgICAgY3BkZWYgTGV0dGVyVHVwbGUgZShzZWxmLCBpbnQgaSkK KysgICAgY3BkZWYgTGV0dGVyVHVwbGUgZihzZWxmLCBpbnQgaSkKKyAKKyBjZGVmIGNsYXNzIEJL S0xldHRlcihMZXR0ZXIpOgorLSAgICBjcGRlZiBMZXR0ZXIgZShzZWxmLCBpbnQgaSkgbm9leGNl cHQKKy0gICAgY3BkZWYgTGV0dGVyIGYoc2VsZiwgaW50IGkpIG5vZXhjZXB0CisrICAgIGNwZGVm IExldHRlciBlKHNlbGYsIGludCBpKQorKyAgICBjcGRlZiBMZXR0ZXIgZihzZWxmLCBpbnQgaSkK KyAKKyBjZGVmIGNsYXNzIFF1ZWVyTGV0dGVyX2VsZW1lbnQoTGV0dGVyKToKKy0gICAgY3BkZWYg TGV0dGVyIGUoc2VsZiwgaW50IGkpIG5vZXhjZXB0CistICAgIGNwZGVmIExldHRlciBmKHNlbGYs IGludCBpKSBub2V4Y2VwdAorKyAgICBjcGRlZiBMZXR0ZXIgZShzZWxmLCBpbnQgaSkKKysgICAg Y3BkZWYgTGV0dGVyIGYoc2VsZiwgaW50IGkpCisgICAgIGNwZGVmIGludCBlcHNpbG9uKHNlbGYs IGludCBpKSBub2V4Y2VwdAorICAgICBjcGRlZiBpbnQgcGhpKHNlbGYsIGludCBpKSBub2V4Y2Vw dAorIAorIGNkZWYgY2xhc3MgTGV0dGVyV3JhcHBlZChFbGVtZW50KToKKyAgICAgY2RlZiByZWFk b25seSBFbGVtZW50IHZhbHVlCistICAgIGNwZGVmIHR1cGxlIF90b190dXBsZShzZWxmKSBub2V4 Y2VwdAorLSAgICBjcGRlZiBMZXR0ZXJXcmFwcGVkIGUoc2VsZiwgaW50IGkpIG5vZXhjZXB0Cist ICAgIGNwZGVmIExldHRlcldyYXBwZWQgZihzZWxmLCBpbnQgaSkgbm9leGNlcHQKKysgICAgY3Bk ZWYgdHVwbGUgX3RvX3R1cGxlKHNlbGYpCisrICAgIGNwZGVmIExldHRlcldyYXBwZWQgZShzZWxm LCBpbnQgaSkKKysgICAgY3BkZWYgTGV0dGVyV3JhcHBlZCBmKHNlbGYsIGludCBpKQorICAgICBj cGRlZiBpbnQgZXBzaWxvbihzZWxmLCBpbnQgaSkgbm9leGNlcHQKKyAgICAgY3BkZWYgaW50IHBo aShzZWxmLCBpbnQgaSkgbm9leGNlcHQKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9jb21iaW5hdC9j cnlzdGFscy9sZXR0ZXJzLnB5eCBiL3NyYy9zYWdlL2NvbWJpbmF0L2NyeXN0YWxzL2xldHRlcnMu cHl4CitpbmRleCAzNjhkY2UzYTlmZC4uZjU0YTQ3MDUwNDcgMTAwNjQ0CistLS0gYS9zcmMvc2Fn ZS9jb21iaW5hdC9jcnlzdGFscy9sZXR0ZXJzLnB5eAorKysrIGIvc3JjL3NhZ2UvY29tYmluYXQv Y3J5c3RhbHMvbGV0dGVycy5weXgKK0BAIC00NjQsNyArNDY0LDcgQEAgY2RlZiBjbGFzcyBMZXR0 ZXIoRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLnZhbHVlCisg CistICAgIGNwZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdodCwgaW50IG9wKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgX3JpY2hjbXBfKGxlZnQsIHJpZ2h0LCBpbnQgb3ApOgorICAgICAgICAgIiIiCisg ICAgICAgICBSZXR1cm4gYGBUcnVlYGAgaWYgYGBsZWZ0YGAgY29tcGFyZXMgd2l0aCBgYHJpZ2h0 YGAgYmFzZWQgb24gYGBvcGBgLgorIAorQEAgLTU4NSw3ICs1ODUsNyBAQCBjZGVmIGNsYXNzIEVt cHR5TGV0dGVyKEVsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gaGFzaChz ZWxmLnZhbHVlKQorIAorLSAgICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCkg bm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdodCwgaW50IG9wKToKKyAg ICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGBgVHJ1ZWBgIGlmIGBgbGVmdGBgIGNvbXBhcmVz IHdpdGggYGByaWdodGBgIGJhc2VkIG9uIGBgb3BgYC4KKyAKK0BAIC02MjUsNyArNjI1LDcgQEAg Y2RlZiBjbGFzcyBFbXB0eUxldHRlcihFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAg cmV0dXJuIHNlbGYuX3BhcmVudC53ZWlnaHRfbGF0dGljZV9yZWFsaXphdGlvbigpLnplcm8oKQor IAorLSAgICBjcGRlZiBlKHNlbGYsIGludCBpKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZShzZWxm LCBpbnQgaSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBgZV9pYCBvZiBgYHNlbGZg YCB3aGljaCBpcyBgYE5vbmVgYC4KKyAKK0BAIC02MzYsNyArNjM2LDcgQEAgY2RlZiBjbGFzcyBF bXB0eUxldHRlcihFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIE5vbmUK KyAKKy0gICAgY3BkZWYgZihzZWxmLCBpbnQgaSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGYoc2Vs ZiwgaW50IGkpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYGZfaWAgb2YgYGBzZWxm YGAgd2hpY2ggaXMgYGBOb25lYGAuCisgCitAQCAtNzExLDcgKzcxMSw3IEBAIGNkZWYgY2xhc3Mg Q3J5c3RhbF9vZl9sZXR0ZXJzX3R5cGVfQV9lbGVtZW50KExldHRlcik6CisgICAgICAgICAiIiIK KyAgICAgICAgIHJldHVybiBzZWxmLl9wYXJlbnQud2VpZ2h0X2xhdHRpY2VfcmVhbGl6YXRpb24o KS5tb25vbWlhbChzZWxmLnZhbHVlLTEpCisgCistICAgIGNwZGVmIExldHRlciBlKHNlbGYsIGlu dCBpKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgTGV0dGVyIGUoc2VsZiwgaW50IGkpOgorICAgICAg ICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBhY3Rpb24gb2YgYGVfaWAgb24gYGBzZWxmYGAu CisgCitAQCAtNzI2LDcgKzcyNiw3IEBAIGNkZWYgY2xhc3MgQ3J5c3RhbF9vZl9sZXR0ZXJzX3R5 cGVfQV9lbGVtZW50KExldHRlcik6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJldHVy biBOb25lCisgCistICAgIGNwZGVmIExldHRlciBmKHNlbGYsIGludCBpKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgTGV0dGVyIGYoc2VsZiwgaW50IGkpOgorICAgICAgICAgciIiIgorICAgICAgICAg UmV0dXJuIHRoZSBhY3Rpb24gb2YgYGZfaWAgb24gYGBzZWxmYGAuCisgCitAQCAtODA0LDcgKzgw NCw3IEBAIGNkZWYgY2xhc3MgQ3J5c3RhbF9vZl9sZXR0ZXJzX3R5cGVfQl9lbGVtZW50KExldHRl cik6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJldHVybiBzZWxmLl9wYXJlbnQud2Vp Z2h0X2xhdHRpY2VfcmVhbGl6YXRpb24oKSgwKQorIAorLSAgICBjcGRlZiBMZXR0ZXIgZShzZWxm LCBpbnQgaSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIExldHRlciBlKHNlbGYsIGludCBpKToKKyAg ICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYWN0aW9uIG9mIGBlX2lgIG9uIGBgc2Vs ZmBgLgorIAorQEAgLTgzMyw3ICs4MzMsNyBAQCBjZGVmIGNsYXNzIENyeXN0YWxfb2ZfbGV0dGVy c190eXBlX0JfZWxlbWVudChMZXR0ZXIpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICBy ZXR1cm4gTm9uZQorIAorLSAgICBjcGRlZiBMZXR0ZXIgZihzZWxmLCBpbnQgaSkgbm9leGNlcHQ6 CisrICAgIGNwZGVmIExldHRlciBmKHNlbGYsIGludCBpKToKKyAgICAgICAgIHIiIiIKKyAgICAg ICAgIFJldHVybiB0aGUgYWN0aW9ucyBvZiBgZl9pYCBvbiBgYHNlbGZgYC4KKyAKK0BAIC05NDIs NyArOTQyLDcgQEAgY2RlZiBjbGFzcyBDcnlzdGFsX29mX2xldHRlcnNfdHlwZV9DX2VsZW1lbnQo TGV0dGVyKToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3BhcmVu dC53ZWlnaHRfbGF0dGljZV9yZWFsaXphdGlvbigpKDApCisgCistICAgIGNwZGVmIExldHRlciBl KHNlbGYsIGludCBpKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgTGV0dGVyIGUoc2VsZiwgaW50IGkp OgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBhY3Rpb24gb2YgYGVfaWAgb24g YGBzZWxmYGAuCisgCitAQCAtOTY1LDcgKzk2NSw3IEBAIGNkZWYgY2xhc3MgQ3J5c3RhbF9vZl9s ZXR0ZXJzX3R5cGVfQ19lbGVtZW50KExldHRlcik6CisgICAgICAgICBlbHNlOgorICAgICAgICAg ICAgIHJldHVybiBOb25lCisgCistICAgIGNwZGVmIExldHRlciBmKHNlbGYsIGludCBpKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgTGV0dGVyIGYoc2VsZiwgaW50IGkpOgorICAgICAgICAgciIiIgor ICAgICAgICAgUmV0dXJuIHRoZSBhY3Rpb24gb2YgYGZfaWAgb24gYGBzZWxmYGAuCisgCitAQCAt MTA0OSw3ICsxMDQ5LDcgQEAgY2RlZiBjbGFzcyBDcnlzdGFsX29mX2xldHRlcnNfdHlwZV9EX2Vs ZW1lbnQoTGV0dGVyKToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYu X3BhcmVudC53ZWlnaHRfbGF0dGljZV9yZWFsaXphdGlvbigpKDApCisgCistICAgIGNwZGVmIExl dHRlciBlKHNlbGYsIGludCBpKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgTGV0dGVyIGUoc2VsZiwg aW50IGkpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBhY3Rpb24gb2YgYGVf aWAgb24gYGBzZWxmYGAuCisgCitAQCAtMTA4Miw3ICsxMDgyLDcgQEAgY2RlZiBjbGFzcyBDcnlz dGFsX29mX2xldHRlcnNfdHlwZV9EX2VsZW1lbnQoTGV0dGVyKToKKyAgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAKKy0gICAgY3BkZWYgTGV0dGVyIGYoc2VsZiwgaW50 IGkpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBMZXR0ZXIgZihzZWxmLCBpbnQgaSk6CisgICAgICAg ICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGFjdGlvbiBvZiBgZl9pYCBvbiBgYHNlbGZgYC4K KyAKK0BAIC0xMTg4LDcgKzExODgsNyBAQCBjZGVmIGNsYXNzIENyeXN0YWxfb2ZfbGV0dGVyc190 eXBlX0dfZWxlbWVudChMZXR0ZXIpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByYWlz ZSBSdW50aW1lRXJyb3IoIkcyIGNyeXN0YWwgb2YgbGV0dGVycyBlbGVtZW50ICVkIG5vdCB2YWxp ZCIgJSBzZWxmLnZhbHVlKQorIAorLSAgICBjcGRlZiBMZXR0ZXIgZShzZWxmLCBpbnQgaSkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIExldHRlciBlKHNlbGYsIGludCBpKToKKyAgICAgICAgIHIiIiIK KyAgICAgICAgIFJldHVybiB0aGUgYWN0aW9uIG9mIGBlX2lgIG9uIGBgc2VsZmBgLgorIAorQEAg LTEyMjIsNyArMTIyMiw3IEBAIGNkZWYgY2xhc3MgQ3J5c3RhbF9vZl9sZXR0ZXJzX3R5cGVfR19l bGVtZW50KExldHRlcik6CisgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgcmV0 dXJuIE5vbmUKKyAKKy0gICAgY3BkZWYgTGV0dGVyIGYoc2VsZiwgaW50IGkpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBMZXR0ZXIgZihzZWxmLCBpbnQgaSk6CisgICAgICAgICByIiIiCisgICAgICAg ICBSZXR1cm4gdGhlIGFjdGlvbiBvZiBgZl9pYCBvbiBgYHNlbGZgYC4KKyAKK0BAIC0xMzU4LDcg KzEzNTgsNyBAQCBjZGVmIGNsYXNzIExldHRlclR1cGxlKEVsZW1lbnQpOgorICAgICAgICAgIiIi CisgICAgICAgICByZXR1cm4gaGFzaChzZWxmLnZhbHVlKQorIAorLSAgICBjcGRlZiBfcmljaGNt cF8obGVmdCwgcmlnaHQsIGludCBvcCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhs ZWZ0LCByaWdodCwgaW50IG9wKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ2hlY2sgY29tcGFy aXNvbiBiZXR3ZWVuIGBgbGVmdGBgIGFuZCBgYHJpZ2h0YGAgYmFzZWQgb24gYGBvcGBgCisgCitA QCAtMTU1NSw3ICsxNTU1LDcgQEAgY2RlZiBjbGFzcyBDcnlzdGFsX29mX2xldHRlcnNfdHlwZV9F Nl9lbGVtZW50KExldHRlclR1cGxlKToKKyAgICAgICAgIFIgPSBzZWxmLl9wYXJlbnQud2VpZ2h0 X2xhdHRpY2VfcmVhbGl6YXRpb24oKS5mdW5kYW1lbnRhbF93ZWlnaHRzKCkKKyAgICAgICAgIHJl dHVybiBzdW0oSW50ZWdlcihpKS5zaWduKCkgKiBSW2FicyhpKV0gZm9yIGkgaW4gc2VsZi52YWx1 ZSkKKyAKKy0gICAgY3BkZWYgTGV0dGVyVHVwbGUgZShzZWxmLCBpbnQgaSkgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIExldHRlclR1cGxlIGUoc2VsZiwgaW50IGkpOgorICAgICAgICAgciIiIgorICAg ICAgICAgUmV0dXJuIHRoZSBhY3Rpb24gb2YgYGVfaWAgb24gYGBzZWxmYGAuCisgCitAQCAtMTY0 Myw3ICsxNjQzLDcgQEAgY2RlZiBjbGFzcyBDcnlzdGFsX29mX2xldHRlcnNfdHlwZV9FNl9lbGVt ZW50KExldHRlclR1cGxlKToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmV0dXJuIE5v bmUKKyAKKy0gICAgY3BkZWYgTGV0dGVyVHVwbGUgZihzZWxmLCBpbnQgaSkgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIExldHRlclR1cGxlIGYoc2VsZiwgaW50IGkpOgorICAgICAgICAgciIiIgorICAg ICAgICAgUmV0dXJuIHRoZSBhY3Rpb24gb2YgYGZfaWAgb24gYGBzZWxmYGAuCisgCitAQCAtMTc3 NCw3ICsxNzc0LDcgQEAgY2RlZiBjbGFzcyBDcnlzdGFsX29mX2xldHRlcnNfdHlwZV9FNl9lbGVt ZW50X2R1YWwoTGV0dGVyVHVwbGUpOgorICAgICAgICAgICAgIHJldHVybiBsW3NlbGYuX3BhcmVu dC5saXN0KCkuaW5kZXgoc2VsZildCisgICAgICAgICByZXR1cm4gcmVwcihzZWxmLnZhbHVlKQor IAorLSAgICBjcGRlZiBMZXR0ZXJUdXBsZSBsaWZ0KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBMZXR0ZXJUdXBsZSBsaWZ0KHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBMaWZ0IGFu IGVsZW1lbnQgb2YgYGBzZWxmYGAgdG8gdGhlIGNyeXN0YWwgb2YgbGV0dGVycworICAgICAgICAg YGBjcnlzdGFscy5MZXR0ZXJzKFsnRScsNl0pYGAgYnkgdGFraW5nIGl0cyBpbnZlcnNlIHdlaWdo dC4KK0BAIC0xNzkxLDcgKzE3OTEsNyBAQCBjZGVmIGNsYXNzIENyeXN0YWxfb2ZfbGV0dGVyc190 eXBlX0U2X2VsZW1lbnRfZHVhbChMZXR0ZXJUdXBsZSk6CisgICAgICAgICAjICB0dXBsZSBmcm9t IGEgbGlzdAorICAgICAgICAgcmV0dXJuIHNlbGYuX3BhcmVudC5fYW1iaWVudCh0dXBsZShbLWkg Zm9yIGkgaW4gc2VsZi52YWx1ZV0pKQorIAorLSAgICBjcGRlZiBMZXR0ZXJUdXBsZSByZXRyYWN0 KHNlbGYsIExldHRlclR1cGxlIHApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBMZXR0ZXJUdXBsZSBy ZXRyYWN0KHNlbGYsIExldHRlclR1cGxlIHApOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXRy YWN0IGVsZW1lbnQgYGBwYGAsIHdoaWNoIGlzIGFuIGVsZW1lbnQgaW4KKyAgICAgICAgIGBgY3J5 c3RhbHMuTGV0dGVycyhbJ0UnLDZdKWBgIHRvIGFuIGVsZW1lbnQgaW4KK0BAIC0xODE0LDcgKzE4 MTQsNyBAQCBjZGVmIGNsYXNzIENyeXN0YWxfb2ZfbGV0dGVyc190eXBlX0U2X2VsZW1lbnRfZHVh bChMZXR0ZXJUdXBsZSk6CisgICAgICAgICAjICB0dXBsZSBmcm9tIGEgbGlzdAorICAgICAgICAg cmV0dXJuIHNlbGYuX3BhcmVudC5fZWxlbWVudF9jb25zdHJ1Y3Rvcl8odHVwbGUoWy1pIGZvciBp IGluIHAudmFsdWVdKSkKKyAKKy0gICAgY3BkZWYgTGV0dGVyVHVwbGUgZShzZWxmLCBpbnQgaSkg bm9leGNlcHQ6CisrICAgIGNwZGVmIExldHRlclR1cGxlIGUoc2VsZiwgaW50IGkpOgorICAgICAg ICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBhY3Rpb24gb2YgYGVfaWAgb24gYGBzZWxmYGAu CisgCitAQCAtMTgyNiw3ICsxODI2LDcgQEAgY2RlZiBjbGFzcyBDcnlzdGFsX29mX2xldHRlcnNf dHlwZV9FNl9lbGVtZW50X2R1YWwoTGV0dGVyVHVwbGUpOgorICAgICAgICAgIiIiCisgICAgICAg ICByZXR1cm4gc2VsZi5yZXRyYWN0KHNlbGYubGlmdCgpLmYoaSkpCisgCistICAgIGNwZGVmIExl dHRlclR1cGxlIGYoc2VsZiwgaW50IGkpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBMZXR0ZXJUdXBs ZSBmKHNlbGYsIGludCBpKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYWN0 aW9uIG9mIGBmX2lgIG9uIGBgc2VsZmBgLgorIAorQEAgLTE5NTYsNyArMTk1Niw3IEBAIGNkZWYg Y2xhc3MgQ3J5c3RhbF9vZl9sZXR0ZXJzX3R5cGVfRTdfZWxlbWVudChMZXR0ZXJUdXBsZSk6Cisg ICAgICAgICBSID0gc2VsZi5fcGFyZW50LndlaWdodF9sYXR0aWNlX3JlYWxpemF0aW9uKCkuZnVu ZGFtZW50YWxfd2VpZ2h0cygpCisgICAgICAgICByZXR1cm4gc3VtKEludGVnZXIoaSkuc2lnbigp ICogUlthYnMoaSldIGZvciBpIGluIHNlbGYudmFsdWUpCisgCistICAgIGNwZGVmIExldHRlclR1 cGxlIGUoc2VsZiwgaW50IGkpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBMZXR0ZXJUdXBsZSBlKHNl bGYsIGludCBpKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYWN0aW9uIG9m IGBlX2lgIG9uIGBgc2VsZmBgLgorIAorQEAgLTIxMzgsNyArMjEzOCw3IEBAIGNkZWYgY2xhc3Mg Q3J5c3RhbF9vZl9sZXR0ZXJzX3R5cGVfRTdfZWxlbWVudChMZXR0ZXJUdXBsZSk6CisgICAgICAg ICBlbHNlOgorICAgICAgICAgICAgIHJldHVybiBOb25lCisgCistICAgIGNwZGVmIExldHRlclR1 cGxlIGYoc2VsZiwgaW50IGkpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBMZXR0ZXJUdXBsZSBmKHNl bGYsIGludCBpKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYWN0aW9uIG9m IGBmX2lgIG9uIGBgc2VsZmBgLgorIAorQEAgLTIzOTUsNyArMjM5NSw3IEBAIGNkZWYgY2xhc3Mg QktLTGV0dGVyKExldHRlcik6CisgICAgICAgICAgICAgcmV0ID0gIlxcdW5kZXJsaW5le3t7fX19 Ii5mb3JtYXQocmV0KQorICAgICAgICAgcmV0dXJuIHJldAorIAorLSAgICBjcGRlZiBMZXR0ZXIg ZShzZWxmLCBpbnQgaSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIExldHRlciBlKHNlbGYsIGludCBp KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYWN0aW9uIG9mIGBlX2lgIG9u IGBgc2VsZmBgLgorIAorQEAgLTI0MzUsNyArMjQzNSw3IEBAIGNkZWYgY2xhc3MgQktLTGV0dGVy KExldHRlcik6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3BhcmVudC5fZWxlbWVudF9jb25z dHJ1Y3Rvcl8oLTEpCisgICAgICAgICByZXR1cm4gTm9uZQorIAorLSAgICBjcGRlZiBMZXR0ZXIg ZihzZWxmLCBpbnQgaSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIExldHRlciBmKHNlbGYsIGludCBp KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYWN0aW9uIG9mIGBmX2lgIG9u IGBgc2VsZmBgLgorIAorQEAgLTI3MTUsNyArMjcxNSw3IEBAIGNkZWYgY2xhc3MgUXVlZXJMZXR0 ZXJfZWxlbWVudChMZXR0ZXIpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5f cGFyZW50LndlaWdodF9sYXR0aWNlX3JlYWxpemF0aW9uKCkubW9ub21pYWwoc2VsZi52YWx1ZS0x KQorIAorLSAgICBjcGRlZiBMZXR0ZXIgZShzZWxmLCBpbnQgaSkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIExldHRlciBlKHNlbGYsIGludCBpKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVy biB0aGUgYWN0aW9uIG9mIGBlX2lgIG9uIGBgc2VsZmBgLgorIAorQEAgLTI3MzEsNyArMjczMSw3 IEBAIGNkZWYgY2xhc3MgUXVlZXJMZXR0ZXJfZWxlbWVudChMZXR0ZXIpOgorICAgICAgICAgICAg IHJldHVybiBzZWxmLl9wYXJlbnQuX2VsZW1lbnRfY29uc3RydWN0b3JfKHNlbGYudmFsdWUtMSkK KyAgICAgICAgIHJldHVybiBOb25lCisgCistICAgIGNwZGVmIExldHRlciBmKHNlbGYsIGludCBp KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgTGV0dGVyIGYoc2VsZiwgaW50IGkpOgorICAgICAgICAg ciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBhY3Rpb24gb2YgYGZfaWAgb24gYGBzZWxmYGAuCisg CitAQCAtMjgyMyw3ICsyODIzLDcgQEAgY2RlZiBjbGFzcyBMZXR0ZXJXcmFwcGVkKEVsZW1lbnQp OgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gaGFzaChzZWxmLnZhbHVlKQorIAorLSAg ICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdodCwgaW50IG9wKToKKyAgICAgICAgICIiIgorICAgICAg ICAgQ2hlY2sgY29tcGFyaXNvbiBiZXR3ZWVuIGBgbGVmdGBgIGFuZCBgYHJpZ2h0YGAgYmFzZWQg b24gYGBvcGBgCisgCitAQCAtMjg1NCw3ICsyODU0LDcgQEAgY2RlZiBjbGFzcyBMZXR0ZXJXcmFw cGVkKEVsZW1lbnQpOgorICAgICAgICAgICAgIHJldHVybiBzZWxmLnZhbHVlID09IHgudmFsdWUg b3IgeC5fcGFyZW50Lmx0X2VsZW1lbnRzKHgsIHNlbGYpCisgICAgICAgICByZXR1cm4gRmFsc2UK KyAKKy0gICAgY3BkZWYgdHVwbGUgX3RvX3R1cGxlKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiB0dXBsZSBfdG9fdHVwbGUoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4g YSB0dXBsZSBlbmNvZGluZyB0aGUgYFx2YXJlcHNpbG9uX2lgIGFuZCBgXHZhcnBoaV9pYAorICAg ICAgICAgdmFsdWVzIG9mIGBgZWx0YGAuCitAQCAtMjkyMyw3ICsyOTIzLDcgQEAgY2RlZiBjbGFz cyBMZXR0ZXJXcmFwcGVkKEVsZW1lbnQpOgorICAgICAgICAgICAgICAgICByZXQrPSByZXByKHYp CisgICAgICAgICByZXR1cm4gcmV0ICsgIlxccmlnaHQpIgorIAorLSAgICBjcGRlZiBMZXR0ZXJX cmFwcGVkIGUoc2VsZiwgaW50IGkpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBMZXR0ZXJXcmFwcGVk IGUoc2VsZiwgaW50IGkpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIGBlX2lgIG9m IGBgc2VsZmBgLgorIAorQEAgLTI5MzksNyArMjkzOSw3IEBAIGNkZWYgY2xhc3MgTGV0dGVyV3Jh cHBlZChFbGVtZW50KToKKyAgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICAgcmV0dXJu IHR5cGUoc2VsZikoc2VsZi5fcGFyZW50LCByZXQpCisgCistICAgIGNwZGVmIExldHRlcldyYXBw ZWQgZihzZWxmLCBpbnQgaSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIExldHRlcldyYXBwZWQgZihz ZWxmLCBpbnQgaSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gYGZfaWAgb2YgYGBz ZWxmYGAuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvY29tYmluYXQvY3J5c3RhbHMvcGJ3X2Rh dHVtLnB4ZCBiL3NyYy9zYWdlL2NvbWJpbmF0L2NyeXN0YWxzL3Bid19kYXR1bS5weGQKK2luZGV4 IGVjZmJmNjBiODQyLi45YzNhYWIwODNkZiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2NvbWJpbmF0 L2NyeXN0YWxzL3Bid19kYXR1bS5weGQKKysrKyBiL3NyYy9zYWdlL2NvbWJpbmF0L2NyeXN0YWxz L3Bid19kYXR1bS5weGQKK0BAIC0xLDMgKzEsMyBAQAorLWNwZGVmIHR1cGxlIGNvbXB1dGVfbmV3 X2x1c3p0aWdfZGF0dW0obGlzdCBlbmhhbmNlZF9icmFpZF9jaGFpbiwgaW5pdGlhbF9sdXN6dGln X2RhdHVtKSBub2V4Y2VwdAorLWNwZGVmIHR1cGxlIHRyb3BpY2FsX3BsdWNrZXJfcmVsYXRpb24o dHVwbGUgYSwgbHVzenRpZ19kYXR1bSkgbm9leGNlcHQKKy1jcGRlZiBsaXN0IGVuaGFuY2VfYnJh aWRfbW92ZV9jaGFpbihicmFpZF9tb3ZlX2NoYWluLCBjYXJ0YW5fdHlwZSkgbm9leGNlcHQKKytj cGRlZiB0dXBsZSBjb21wdXRlX25ld19sdXN6dGlnX2RhdHVtKGxpc3QgZW5oYW5jZWRfYnJhaWRf Y2hhaW4sIGluaXRpYWxfbHVzenRpZ19kYXR1bSkKKytjcGRlZiB0dXBsZSB0cm9waWNhbF9wbHVj a2VyX3JlbGF0aW9uKHR1cGxlIGEsIGx1c3p0aWdfZGF0dW0pCisrY3BkZWYgbGlzdCBlbmhhbmNl X2JyYWlkX21vdmVfY2hhaW4oYnJhaWRfbW92ZV9jaGFpbiwgY2FydGFuX3R5cGUpCitkaWZmIC0t Z2l0IGEvc3JjL3NhZ2UvY29tYmluYXQvY3J5c3RhbHMvcGJ3X2RhdHVtLnB5eCBiL3NyYy9zYWdl L2NvbWJpbmF0L2NyeXN0YWxzL3Bid19kYXR1bS5weXgKK2luZGV4IGE4MTczMmNkYzczLi4yYWRj YjA5ZDkwMiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2NvbWJpbmF0L2NyeXN0YWxzL3Bid19kYXR1 bS5weXgKKysrKyBiL3NyYy9zYWdlL2NvbWJpbmF0L2NyeXN0YWxzL3Bid19kYXR1bS5weXgKK0BA IC0yODIsNyArMjgyLDcgQEAgY2xhc3MgUEJXRGF0YSgpOiAjIFVuaXF1ZVJlcHJlc2VudGF0aW9u PworICMgZW5oYW5jZWRfYnJhaWRfY2hhaW4gaXMgYW4gdWdseSBkYXRhIHN0cnVjdHVyZS4KKyBA Y3l0aG9uLmJvdW5kc2NoZWNrKEZhbHNlKQorIEBjeXRob24ud3JhcGFyb3VuZChGYWxzZSkKKy1j cGRlZiB0dXBsZSBjb21wdXRlX25ld19sdXN6dGlnX2RhdHVtKGxpc3QgZW5oYW5jZWRfYnJhaWRf Y2hhaW4sIGluaXRpYWxfbHVzenRpZ19kYXR1bSkgbm9leGNlcHQ6CisrY3BkZWYgdHVwbGUgY29t cHV0ZV9uZXdfbHVzenRpZ19kYXR1bShsaXN0IGVuaGFuY2VkX2JyYWlkX2NoYWluLCBpbml0aWFs X2x1c3p0aWdfZGF0dW0pOgorICAgICAiIiIKKyAgICAgUmV0dXJuIHRoZSBMdXN6dGlnIGRhdHVt IG9idGFpbmVkIGJ5IGFwcGx5aW5nIHRyb3BpY2FsIFBsw7xja2VyCisgICAgIHJlbGF0aW9ucyBh bG9uZyBgYGVuaGFuY2VkX2JyYWlkX2NoYWluYGAgc3RhcnRpbmcgd2l0aAorQEAgLTMzMCw3ICsz MzAsNyBAQCBjcGRlZiB0dXBsZSBjb21wdXRlX25ld19sdXN6dGlnX2RhdHVtKGxpc3QgZW5oYW5j ZWRfYnJhaWRfY2hhaW4sIGluaXRpYWxfbHVzenRpZworICMgVGhlIHRyb3BpY2FsIFBsw7xja2Vy IHJlbGF0aW9ucworIEBjeXRob24uYm91bmRzY2hlY2soRmFsc2UpCisgQGN5dGhvbi53cmFwYXJv dW5kKEZhbHNlKQorLWNwZGVmIHR1cGxlIHRyb3BpY2FsX3BsdWNrZXJfcmVsYXRpb24odHVwbGUg YSwgbHVzenRpZ19kYXR1bSkgbm9leGNlcHQ6CisrY3BkZWYgdHVwbGUgdHJvcGljYWxfcGx1Y2tl cl9yZWxhdGlvbih0dXBsZSBhLCBsdXN6dGlnX2RhdHVtKToKKyAgICAgciIiIgorICAgICBBcHBs eSB0aGUgdHJvcGljYWwgUGzDvGNrZXIgcmVsYXRpb24gb2YgdHlwZSBgYGFgYCB0byBgYGx1c3p0 aWdfZGF0dW1gYC4KKyAKK0BAIC00MDMsNyArNDAzLDcgQEAgY3BkZWYgdHVwbGUgdHJvcGljYWxf cGx1Y2tlcl9yZWxhdGlvbih0dXBsZSBhLCBsdXN6dGlnX2RhdHVtKSBub2V4Y2VwdDoKKyAjIFRP RE86IE1vdmUgdG8gUEJXX2RhdGE/CisgQGN5dGhvbi5ib3VuZHNjaGVjayhGYWxzZSkKKyBAY3l0 aG9uLndyYXBhcm91bmQoRmFsc2UpCistY3BkZWYgbGlzdCBlbmhhbmNlX2JyYWlkX21vdmVfY2hh aW4oYnJhaWRfbW92ZV9jaGFpbiwgY2FydGFuX3R5cGUpIG5vZXhjZXB0OgorK2NwZGVmIGxpc3Qg ZW5oYW5jZV9icmFpZF9tb3ZlX2NoYWluKGJyYWlkX21vdmVfY2hhaW4sIGNhcnRhbl90eXBlKToK KyAgICAgciIiIgorICAgICBSZXR1cm4gYSBsaXN0IG9mIHR1cGxlcyB0aGF0IHJlY29yZHMgdGhl IGRhdGEgb2YgdGhlIGxvbmcgd29yZHMgaW4KKyAgICAgYGBicmFpZF9tb3ZlX2NoYWluYGAgcGx1 cyB0aGUgZGF0YSBvZiB0aGUgaW50ZXJ2YWxzIHdoZXJlIHRoZSBicmFpZCBtb3ZlcworZGlmZiAt LWdpdCBhL3NyYy9zYWdlL2NvbWJpbmF0L2NyeXN0YWxzL3NwaW5zLnB4ZCBiL3NyYy9zYWdlL2Nv bWJpbmF0L2NyeXN0YWxzL3NwaW5zLnB4ZAoraW5kZXggYTk4ZjE3MDI1MDguLjNlZjVlMGI3YzVm IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvY29tYmluYXQvY3J5c3RhbHMvc3BpbnMucHhkCisrKysg Yi9zcmMvc2FnZS9jb21iaW5hdC9jcnlzdGFscy9zcGlucy5weGQKK0BAIC01LDE2ICs1LDE2IEBA IGNkZWYgY2xhc3MgU3BpbihFbGVtZW50KToKKyAgICAgY2RlZiBpbnQgX24KKyAgICAgY2RlZiBs b25nIF9oYXNoCisgCistICAgIGNkZWYgU3BpbiBfbmV3X2Moc2VsZiwgYmludCogdmFsdWUpIG5v ZXhjZXB0CisrICAgIGNkZWYgU3BpbiBfbmV3X2Moc2VsZiwgYmludCogdmFsdWUpCisgCisgY2Rl ZiBjbGFzcyBTcGluX2NyeXN0YWxfdHlwZV9CX2VsZW1lbnQoU3Bpbik6CistICAgIGNwZGVmIFNw aW4gZShzZWxmLCBpbnQgaSkgbm9leGNlcHQKKy0gICAgY3BkZWYgU3BpbiBmKHNlbGYsIGludCBp KSBub2V4Y2VwdAorKyAgICBjcGRlZiBTcGluIGUoc2VsZiwgaW50IGkpCisrICAgIGNwZGVmIFNw aW4gZihzZWxmLCBpbnQgaSkKKyAgICAgY3BkZWYgaW50IGVwc2lsb24oc2VsZiwgaW50IGkpIG5v ZXhjZXB0CisgICAgIGNwZGVmIGludCBwaGkoc2VsZiwgaW50IGkpIG5vZXhjZXB0CisgCisgY2Rl ZiBjbGFzcyBTcGluX2NyeXN0YWxfdHlwZV9EX2VsZW1lbnQoU3Bpbik6CistICAgIGNwZGVmIFNw aW4gZShzZWxmLCBpbnQgaSkgbm9leGNlcHQKKy0gICAgY3BkZWYgU3BpbiBmKHNlbGYsIGludCBp KSBub2V4Y2VwdAorKyAgICBjcGRlZiBTcGluIGUoc2VsZiwgaW50IGkpCisrICAgIGNwZGVmIFNw aW4gZihzZWxmLCBpbnQgaSkKKyAgICAgY3BkZWYgaW50IGVwc2lsb24oc2VsZiwgaW50IGkpIG5v ZXhjZXB0CisgICAgIGNwZGVmIGludCBwaGkoc2VsZiwgaW50IGkpIG5vZXhjZXB0CitkaWZmIC0t Z2l0IGEvc3JjL3NhZ2UvY29tYmluYXQvY3J5c3RhbHMvc3BpbnMucHl4IGIvc3JjL3NhZ2UvY29t YmluYXQvY3J5c3RhbHMvc3BpbnMucHl4CitpbmRleCA5N2U4MTU3YWZkNS4uNjIyOTlhNDM0ZjUg MTAwNjQ0CistLS0gYS9zcmMvc2FnZS9jb21iaW5hdC9jcnlzdGFscy9zcGlucy5weXgKKysrKyBi L3NyYy9zYWdlL2NvbWJpbmF0L2NyeXN0YWxzL3NwaW5zLnB5eAorQEAgLTI5Nyw3ICsyOTcsNyBA QCBjZGVmIGNsYXNzIFNwaW4oRWxlbWVudCk6CisgICAgICAgICAgICAgc2VsZi5fdmFsdWVbaV0g PSAodmFsW2ldICE9IDEpCisgICAgICAgICBFbGVtZW50Ll9faW5pdF9fKHNlbGYsIHBhcmVudCkK KyAKKy0gICAgY2RlZiBTcGluIF9uZXdfYyhzZWxmLCBiaW50KiB2YWx1ZSkgbm9leGNlcHQ6Cisr ICAgIGNkZWYgU3BpbiBfbmV3X2Moc2VsZiwgYmludCogdmFsdWUpOgorICAgICAgICAgciIiIgor ICAgICAgICAgRmFzdCBjcmVhdGlvbiBvZiBhIHNwaW4gZWxlbWVudC4KKyAgICAgICAgICIiIgor QEAgLTM0OSw3ICszNDksNyBAQCBjZGVmIGNsYXNzIFNwaW4oRWxlbWVudCk6CisgICAgICAgICB0 dXAgPSB0dXBsZShbLTEgaWYgc2VsZi5fdmFsdWVbaV0gZWxzZSAxIGZvciBpIGluIHJhbmdlKHNl bGYuX24pXSkKKyAgICAgICAgIHJldHVybiAoc2VsZi5fcGFyZW50LCAodHVwLCkpCisgCistICAg IGNwZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdodCwgaW50IG9wKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgX3JpY2hjbXBfKGxlZnQsIHJpZ2h0LCBpbnQgb3ApOgorICAgICAgICAgIiIiCisgICAgICAg ICBSZXR1cm4gYGBUcnVlYGAgaWYgYGBsZWZ0YGAgY29tcGFyZXMgd2l0aCBgYHJpZ2h0YGAgYmFz ZWQgb24gYGBvcGBgLgorIAorQEAgLTUzNCw3ICs1MzQsNyBAQCBjZGVmIGNsYXNzIFNwaW5fY3J5 c3RhbF90eXBlX0JfZWxlbWVudChTcGluKToKKyAgICAgciIiIgorICAgICBUeXBlIEIgc3BpbiBy ZXByZXNlbnRhdGlvbiBjcnlzdGFsIGVsZW1lbnQKKyAgICAgIiIiCistICAgIGNwZGVmIFNwaW4g ZShzZWxmLCBpbnQgaSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIFNwaW4gZShzZWxmLCBpbnQgaSk6 CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGFjdGlvbiBvZiBgZV9pYCBvbiBg YHNlbGZgYC4KKyAKK0BAIC01NjcsNyArNTY3LDcgQEAgY2RlZiBjbGFzcyBTcGluX2NyeXN0YWxf dHlwZV9CX2VsZW1lbnQoU3Bpbik6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX25ld19jKHJl dCkKKyAgICAgICAgIHJldHVybiBOb25lCisgCistICAgIGNwZGVmIFNwaW4gZihzZWxmLCBpbnQg aSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIFNwaW4gZihzZWxmLCBpbnQgaSk6CisgICAgICAgICBy IiIiCisgICAgICAgICBSZXR1cm4gdGhlIGFjdGlvbiBvZiBgZl9pYCBvbiBgYHNlbGZgYC4KKyAK K0BAIC02MzgsNyArNjM4LDcgQEAgY2RlZiBjbGFzcyBTcGluX2NyeXN0YWxfdHlwZV9EX2VsZW1l bnQoU3Bpbik6CisgICAgIHIiIiIKKyAgICAgVHlwZSBEIHNwaW4gcmVwcmVzZW50YXRpb24gY3J5 c3RhbCBlbGVtZW50CisgICAgICIiIgorLSAgICBjcGRlZiBTcGluIGUoc2VsZiwgaW50IGkpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBTcGluIGUoc2VsZiwgaW50IGkpOgorICAgICAgICAgciIiIgor ICAgICAgICAgUmV0dXJuIHRoZSBhY3Rpb24gb2YgYGVfaWAgb24gYGBzZWxmYGAuCisgCitAQCAt Njc5LDcgKzY3OSw3IEBAIGNkZWYgY2xhc3MgU3Bpbl9jcnlzdGFsX3R5cGVfRF9lbGVtZW50KFNw aW4pOgorICAgICAgICAgICAgIHJldHVybiBzZWxmLl9uZXdfYyhyZXQpCisgICAgICAgICByZXR1 cm4gTm9uZQorIAorLSAgICBjcGRlZiBTcGluIGYoc2VsZiwgaW50IGkpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBTcGluIGYoc2VsZiwgaW50IGkpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0 dXJuIHRoZSBhY3Rpb24gb2YgYGZfaWAgb24gYGBzZWxmYGAuCisgCitkaWZmIC0tZ2l0IGEvc3Jj L3NhZ2UvY29tYmluYXQvY3J5c3RhbHMvdGVuc29yX3Byb2R1Y3RfZWxlbWVudC5weGQgYi9zcmMv c2FnZS9jb21iaW5hdC9jcnlzdGFscy90ZW5zb3JfcHJvZHVjdF9lbGVtZW50LnB4ZAoraW5kZXgg YzFhZjRlMWNiMjAuLjc5MmQ2ZDMzNTFlIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvY29tYmluYXQv Y3J5c3RhbHMvdGVuc29yX3Byb2R1Y3RfZWxlbWVudC5weGQKKysrKyBiL3NyYy9zYWdlL2NvbWJp bmF0L2NyeXN0YWxzL3RlbnNvcl9wcm9kdWN0X2VsZW1lbnQucHhkCitAQCAtMSwxNCArMSwxNCBA QAorIGZyb20gc2FnZS5zdHJ1Y3R1cmUubGlzdF9jbG9uZSBjaW1wb3J0IENsb25hYmxlQXJyYXkK KyAKKyBjZGVmIGNsYXNzIEltbXV0YWJsZUxpc3RXaXRoUGFyZW50KENsb25hYmxlQXJyYXkpOgor LSAgICBjcGRlZiBfc2V0X2luZGV4KHNlbGYsIGssIHZhbHVlKSBub2V4Y2VwdAorKyAgICBjcGRl ZiBfc2V0X2luZGV4KHNlbGYsIGssIHZhbHVlKQorIAorIGNkZWYgY2xhc3MgVGVuc29yUHJvZHVj dE9mQ3J5c3RhbHNFbGVtZW50KEltbXV0YWJsZUxpc3RXaXRoUGFyZW50KToKKyAgICAgcGFzcwor IAorIGNkZWYgY2xhc3MgVGVuc29yUHJvZHVjdE9mUmVndWxhckNyeXN0YWxzRWxlbWVudChUZW5z b3JQcm9kdWN0T2ZDcnlzdGFsc0VsZW1lbnQpOgorLSAgICBjcGRlZiBwb3NpdGlvbl9vZl9sYXN0 X3VubWF0Y2hlZF9taW51cyhzZWxmLCBpKSBub2V4Y2VwdAorLSAgICBjcGRlZiBwb3NpdGlvbl9v Zl9maXJzdF91bm1hdGNoZWRfcGx1cyhzZWxmLCBpKSBub2V4Y2VwdAorKyAgICBjcGRlZiBwb3Np dGlvbl9vZl9sYXN0X3VubWF0Y2hlZF9taW51cyhzZWxmLCBpKQorKyAgICBjcGRlZiBwb3NpdGlv bl9vZl9maXJzdF91bm1hdGNoZWRfcGx1cyhzZWxmLCBpKQorIAorIGNkZWYgY2xhc3MgQ3J5c3Rh bE9mVGFibGVhdXhFbGVtZW50KFRlbnNvclByb2R1Y3RPZlJlZ3VsYXJDcnlzdGFsc0VsZW1lbnQp OgorICAgICBwYXNzCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvY29tYmluYXQvY3J5c3RhbHMvdGVu c29yX3Byb2R1Y3RfZWxlbWVudC5weXggYi9zcmMvc2FnZS9jb21iaW5hdC9jcnlzdGFscy90ZW5z b3JfcHJvZHVjdF9lbGVtZW50LnB5eAoraW5kZXggMjk5MjFjOTU4MzguLjQyYTdmMjcxMDkyIDEw MDY0NAorLS0tIGEvc3JjL3NhZ2UvY29tYmluYXQvY3J5c3RhbHMvdGVuc29yX3Byb2R1Y3RfZWxl bWVudC5weXgKKysrKyBiL3NyYy9zYWdlL2NvbWJpbmF0L2NyeXN0YWxzL3RlbnNvcl9wcm9kdWN0 X2VsZW1lbnQucHl4CitAQCAtNzMsNyArNzMsNyBAQCBjZGVmIGNsYXNzIEltbXV0YWJsZUxpc3RX aXRoUGFyZW50KENsb25hYmxlQXJyYXkpOgorICAgICAgICAgc2VsZi5faXNfaW1tdXRhYmxlID0g VHJ1ZQorICAgICAgICAgc2VsZi5faGFzaCA9IDAKKyAKKy0gICAgY3BkZWYgX3NldF9pbmRleChz ZWxmLCBrLCB2YWx1ZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9zZXRfaW5kZXgoc2VsZiwgaywg dmFsdWUpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIGEgc2libGluZyBvZiBgYHNl bGZgYCBvYnRhaW5lZCBieSBzZXR0aW5nIHRoZQorICAgICAgICAgYGtee3RofWAgZW50cnkgb2Yg c2VsZiB0byB2YWx1ZS4KK0BAIC01NzMsNyArNTczLDcgQEAgY2RlZiBjbGFzcyBUZW5zb3JQcm9k dWN0T2ZSZWd1bGFyQ3J5c3RhbHNFbGVtZW50KFRlbnNvclByb2R1Y3RPZkNyeXN0YWxzRWxlbWVu dCkKKyAgICAgICAgICAgICAgICAgaGVpZ2h0ID0gaGVpZ2h0IC0gbWludXMgKyBwbHVzCisgICAg ICAgICByZXR1cm4gaGVpZ2h0CisgCistICAgIGNwZGVmIHBvc2l0aW9uX29mX2xhc3RfdW5tYXRj aGVkX21pbnVzKHNlbGYsIGkpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBwb3NpdGlvbl9vZl9sYXN0 X3VubWF0Y2hlZF9taW51cyhzZWxmLCBpKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJu IHRoZSBwb3NpdGlvbiBvZiB0aGUgbGFzdCB1bm1hdGNoZWQgYC1gIG9yIGBgTm9uZWBgIGlmCisg ICAgICAgICB0aGVyZSBpcyBubyB1bm1hdGNoZWQgYC1gLgorQEAgLTU5OSw3ICs1OTksNyBAQCBj ZGVmIGNsYXNzIFRlbnNvclByb2R1Y3RPZlJlZ3VsYXJDcnlzdGFsc0VsZW1lbnQoVGVuc29yUHJv ZHVjdE9mQ3J5c3RhbHNFbGVtZW50KQorICAgICAgICAgICAgICAgICBoZWlnaHQgPSBoZWlnaHQg LSBtaW51cyArIHBsdXMKKyAgICAgICAgIHJldHVybiB1bm1hdGNoZWRfbWludXMKKyAKKy0gICAg Y3BkZWYgcG9zaXRpb25fb2ZfZmlyc3RfdW5tYXRjaGVkX3BsdXMoc2VsZiwgaSkgbm9leGNlcHQ6 CisrICAgIGNwZGVmIHBvc2l0aW9uX29mX2ZpcnN0X3VubWF0Y2hlZF9wbHVzKHNlbGYsIGkpOgor ICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHBvc2l0aW9uIG9mIHRoZSBmaXJzdCB1 bm1hdGNoZWQgYCtgIG9yIGBgTm9uZWBgIGlmCisgICAgICAgICB0aGVyZSBpcyBubyB1bm1hdGNo ZWQgYCtgLgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2NvbWJpbmF0L2RlYnJ1aWpuX3NlcXVlbmNl LnB5eCBiL3NyYy9zYWdlL2NvbWJpbmF0L2RlYnJ1aWpuX3NlcXVlbmNlLnB5eAoraW5kZXggMThm ZTkyMTI1MDQuLjAyZTIyNDI4M2MyIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvY29tYmluYXQvZGVi cnVpam5fc2VxdWVuY2UucHl4CisrKysgYi9zcmMvc2FnZS9jb21iaW5hdC9kZWJydWlqbl9zZXF1 ZW5jZS5weXgKK0BAIC05NSw3ICs5NSw3IEBAIGRlZiBkZWJydWlqbl9zZXF1ZW5jZShpbnQgaywg aW50IG4pOgorICAgICByZXR1cm4gc2VxdWVuY2UKKyAKKyAKKy1jZGVmIGdlbihpbnQgdCwgaW50 IHAsIGssIG4pIG5vZXhjZXB0OgorK2NkZWYgZ2VuKGludCB0LCBpbnQgcCwgaywgbik6CisgICAg ICIiIgorICAgICBUaGUgaW50ZXJuYWwgZ2VuZXJhdGlvbiBmdW5jdGlvbi4gVGhpcyBzaG91bGQg bm90IGJlIGFjY2Vzc2VkIGJ5IHRoZQorICAgICB1c2VyLgorZGlmZiAtLWdpdCBhL3NyYy9zYWdl L2NvbWJpbmF0L2RlZ3JlZV9zZXF1ZW5jZXMucHl4IGIvc3JjL3NhZ2UvY29tYmluYXQvZGVncmVl X3NlcXVlbmNlcy5weXgKK2luZGV4IGIyNWU3NmQ5MjA4Li42YTBiMDcwYTQ0ZSAxMDA2NDQKKy0t LSBhL3NyYy9zYWdlL2NvbWJpbmF0L2RlZ3JlZV9zZXF1ZW5jZXMucHl4CisrKysgYi9zcmMvc2Fn ZS9jb21iaW5hdC9kZWdyZWVfc2VxdWVuY2VzLnB5eAorQEAgLTQxNCw3ICs0MTQsNyBAQCBjbGFz cyBEZWdyZWVTZXF1ZW5jZXM6CisgICAgICAgICBzaWdfZnJlZShzZXEpCisgCisgCistY2RlZiBp bml0KGludCBuKSBub2V4Y2VwdDoKKytjZGVmIGluaXQoaW50IG4pOgorICAgICAiIiIKKyAgICAg SW5pdGlhbGl6ZXMgdGhlIG1lbW9yeSBhbmQgc3RhcnRzIHRoZSBlbnVtZXJhdGlvbiBhbGdvcml0 aG0uCisgICAgICIiIgorQEAgLTQzOCw3ICs0MzgsNyBAQCBjZGVmIGluaXQoaW50IG4pIG5vZXhj ZXB0OgorICAgICBzaWdfZnJlZShzZXEpCisgICAgIHJldHVybiBzZXF1ZW5jZXMKKyAKKy1jZGVm IGlubGluZSBhZGRfc2VxKCkgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUgYWRkX3NlcSgpOgorICAg ICAiIiIKKyAgICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbmV2ZXIgYSBzZXF1ZW5jZSBp cyBmb3VuZC4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9jb21iaW5hdC9kZXNpZ25zL2Rlc2ln bnNfcHl4LnB4ZCBiL3NyYy9zYWdlL2NvbWJpbmF0L2Rlc2lnbnMvZGVzaWduc19weXgucHhkCitp bmRleCA4ZmY2YmVlNWJkNC4uMzQ1YTQxZjI5NDUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9jb21i aW5hdC9kZXNpZ25zL2Rlc2lnbnNfcHl4LnB4ZAorKysrIGIvc3JjL3NhZ2UvY29tYmluYXQvZGVz aWducy9kZXNpZ25zX3B5eC5weGQKK0BAIC0xNyw0ICsxNyw0IEBAIGNkZWYgc3RydWN0IGNhY2hl X2VudHJ5OgorIGNkZWYgY2FjaGVfZW50cnkgKiBfT0FfY2FjaGUKKyBjZGVmIGludCBfT0FfY2Fj aGVfc2l6ZQorIAorLWNwZGVmIF9PQV9jYWNoZV9nZXQoaW50IGssIGludCBuKSBub2V4Y2VwdAor K2NwZGVmIF9PQV9jYWNoZV9nZXQoaW50IGssIGludCBuKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdl L2NvbWJpbmF0L2Rlc2lnbnMvZGVzaWduc19weXgucHl4IGIvc3JjL3NhZ2UvY29tYmluYXQvZGVz aWducy9kZXNpZ25zX3B5eC5weXgKK2luZGV4IGQxODAwZDQzODJlLi40YTIzN2VjODJiMyAxMDA2 NDQKKy0tLSBhL3NyYy9zYWdlL2NvbWJpbmF0L2Rlc2lnbnMvZGVzaWduc19weXgucHl4CisrKysg Yi9zcmMvc2FnZS9jb21iaW5hdC9kZXNpZ25zL2Rlc2lnbnNfcHl4LnB5eAorQEAgLTk1NCw3ICs5 NTQsNyBAQCBfT0FfY2FjaGVbMF0ubWF4X3RydWUgPSAtMQorIF9PQV9jYWNoZVsxXS5tYXhfdHJ1 ZSA9IC0xCisgX09BX2NhY2hlX3NpemUgPSAyCisgCistY3BkZWYgX09BX2NhY2hlX3NldChpbnQg ayxpbnQgbix0cnV0aF92YWx1ZSkgbm9leGNlcHQ6CisrY3BkZWYgX09BX2NhY2hlX3NldChpbnQg ayxpbnQgbix0cnV0aF92YWx1ZSk6CisgICAgIHIiIiIKKyAgICAgU2V0cyBhIHZhbHVlIGluIHRo ZSBPQSBjYWNoZSBvZiBleGlzdGVuY2UgcmVzdWx0cworIAorQEAgLTk4OSw3ICs5ODksNyBAQCBj cGRlZiBfT0FfY2FjaGVfc2V0KGludCBrLGludCBuLHRydXRoX3ZhbHVlKSBub2V4Y2VwdDoKKyAg ICAgZWxzZToKKyAgICAgICAgIF9PQV9jYWNoZVtuXS5taW5fZmFsc2UgICA9IGsgaWYgazxfT0Ff Y2FjaGVbbl0ubWluX2ZhbHNlICAgZWxzZSBfT0FfY2FjaGVbbl0ubWluX2ZhbHNlCisgCistY3Bk ZWYgX09BX2NhY2hlX2dldChpbnQgayxpbnQgbikgbm9leGNlcHQ6CisrY3BkZWYgX09BX2NhY2hl X2dldChpbnQgayxpbnQgbik6CisgICAgIHIiIiIKKyAgICAgR2V0cyBhIHZhbHVlIGZyb20gdGhl IE9BIGNhY2hlIG9mIGV4aXN0ZW5jZSByZXN1bHRzCisgCitAQCAtMTAwOCw3ICsxMDA4LDcgQEAg Y3BkZWYgX09BX2NhY2hlX2dldChpbnQgayxpbnQgbikgbm9leGNlcHQ6CisgCisgICAgIHJldHVy biBOb25lCisgCistY3BkZWYgX09BX2NhY2hlX2NvbnN0cnVjdGlvbl9hdmFpbGFibGUoaW50IGss aW50IG4pIG5vZXhjZXB0OgorK2NwZGVmIF9PQV9jYWNoZV9jb25zdHJ1Y3Rpb25fYXZhaWxhYmxl KGludCBrLGludCBuKToKKyAgICAgciIiIgorICAgICBUZXN0cyBpZiBhIGNvbnN0cnVjdGlvbiBp cyBpbXBsZW1lbnRlZCB1c2luZyB0aGUgY2FjaGUncyBpbmZvcm1hdGlvbgorIAorZGlmZiAtLWdp dCBhL3NyYy9zYWdlL2NvbWJpbmF0L2Rlc2lnbnMvb3J0aG9nb25hbF9hcnJheXNfZmluZF9yZWN1 cnNpdmUucHl4IGIvc3JjL3NhZ2UvY29tYmluYXQvZGVzaWducy9vcnRob2dvbmFsX2FycmF5c19m aW5kX3JlY3Vyc2l2ZS5weXgKK2luZGV4IGRiNmJiM2MyOTRhLi43ZTgwYWIwMDAzNCAxMDA2NDQK Ky0tLSBhL3NyYy9zYWdlL2NvbWJpbmF0L2Rlc2lnbnMvb3J0aG9nb25hbF9hcnJheXNfZmluZF9y ZWN1cnNpdmUucHl4CisrKysgYi9zcmMvc2FnZS9jb21iaW5hdC9kZXNpZ25zL29ydGhvZ29uYWxf YXJyYXlzX2ZpbmRfcmVjdXJzaXZlLnB5eAorQEAgLTExNiw3ICsxMTYsNyBAQCBkZWYgZmluZF9y ZWN1cnNpdmVfY29uc3RydWN0aW9uKGssIG4pOgorICAgICByZXR1cm4gRmFsc2UKKyAKKyAKKy1j cGRlZiBmaW5kX3Byb2R1Y3RfZGVjb21wb3NpdGlvbihpbnQgayxpbnQgbikgbm9leGNlcHQ6Cisr Y3BkZWYgZmluZF9wcm9kdWN0X2RlY29tcG9zaXRpb24oaW50IGssaW50IG4pOgorICAgICByIiIi CisgICAgIEZpbmQgYG5fMW5fMj1uYCB0byBvYnRhaW4gYW4gYE9BKGssbilgIGJ5IHRoZSBwcm9k dWN0IGNvbnN0cnVjdGlvbi4KKyAKK0BAIC0xNTcsNyArMTU3LDcgQEAgY3BkZWYgZmluZF9wcm9k dWN0X2RlY29tcG9zaXRpb24oaW50IGssaW50IG4pIG5vZXhjZXB0OgorICAgICAgICAgICAgIHJl dHVybiB3aWxzb25fY29uc3RydWN0aW9uLCAoTm9uZSxrLG4xLG4yLCgpLEZhbHNlKQorICAgICBy ZXR1cm4gRmFsc2UKKyAKKy1jcGRlZiBmaW5kX3dpbHNvbl9kZWNvbXBvc2l0aW9uX3dpdGhfb25l X3RydW5jYXRlZF9ncm91cChpbnQgayxpbnQgbikgbm9leGNlcHQ6CisrY3BkZWYgZmluZF93aWxz b25fZGVjb21wb3NpdGlvbl93aXRoX29uZV90cnVuY2F0ZWRfZ3JvdXAoaW50IGssaW50IG4pOgor ICAgICByIiIiCisgICAgIEZpbmQgYHJtK3U9bmAgdG8gb2J0YWluIGFuIGBPQShrLG4pYCBieSBX aWxzb24ncyBjb25zdHJ1Y3Rpb24gd2l0aCBvbmUgdHJ1bmNhdGVkIGNvbHVtbi4KKyAKK0BAIC0y MDgsNyArMjA4LDcgQEAgY3BkZWYgZmluZF93aWxzb25fZGVjb21wb3NpdGlvbl93aXRoX29uZV90 cnVuY2F0ZWRfZ3JvdXAoaW50IGssaW50IG4pIG5vZXhjZXB0OgorIAorICAgICByZXR1cm4gRmFs c2UKKyAKKy1jcGRlZiBmaW5kX3dpbHNvbl9kZWNvbXBvc2l0aW9uX3dpdGhfdHdvX3RydW5jYXRl ZF9ncm91cHMoaW50IGssaW50IG4pIG5vZXhjZXB0OgorK2NwZGVmIGZpbmRfd2lsc29uX2RlY29t cG9zaXRpb25fd2l0aF90d29fdHJ1bmNhdGVkX2dyb3VwcyhpbnQgayxpbnQgbik6CisgICAgIHIi IiIKKyAgICAgRmluZCBgcm0rcl8xK3JfMj1uYCB0byBvYnRhaW4gYW4gYE9BKGssbilgIGJ5IFdp bHNvbidzIGNvbnN0cnVjdGlvbiB3aXRoIHR3byB0cnVuY2F0ZWQgY29sdW1ucy4KKyAKK0BAIC0y NzAsNyArMjcwLDcgQEAgY3BkZWYgZmluZF93aWxzb25fZGVjb21wb3NpdGlvbl93aXRoX3R3b190 cnVuY2F0ZWRfZ3JvdXBzKGludCBrLGludCBuKSBub2V4Y2VwdDoKKyAgICAgICAgICAgICAgICAg ICAgIHJldHVybiB3aWxzb25fY29uc3RydWN0aW9uLCAoTm9uZSxrLHIsbSwocjEscjIpLEZhbHNl KQorICAgICByZXR1cm4gRmFsc2UKKyAKKy1jcGRlZiBmaW5kX2NvbnN0cnVjdGlvbl8zXzMoaW50 IGssaW50IG4pIG5vZXhjZXB0OgorK2NwZGVmIGZpbmRfY29uc3RydWN0aW9uXzNfMyhpbnQgayxp bnQgbik6CisgICAgIHIiIiIKKyAgICAgRmluZCBhIGRlY29tcG9zaXRpb24gZm9yIGNvbnN0cnVj dGlvbiAzLjMgZnJvbSBbQUMwN11fCisgCitAQCAtMzA5LDcgKzMwOSw3IEBAIGNwZGVmIGZpbmRf Y29uc3RydWN0aW9uXzNfMyhpbnQgayxpbnQgbikgbm9leGNlcHQ6CisgICAgICAgICAgICAgICAg IGZyb20gc2FnZS5jb21iaW5hdC5kZXNpZ25zLm9ydGhvZ29uYWxfYXJyYXlzX2J1aWxkX3JlY3Vy c2l2ZSBpbXBvcnQgY29uc3RydWN0aW9uXzNfMworICAgICAgICAgICAgICAgICByZXR1cm4gY29u c3RydWN0aW9uXzNfMywgKGssbm4sbW0saSkKKyAKKy1jcGRlZiBmaW5kX2NvbnN0cnVjdGlvbl8z XzQoaW50IGssaW50IG4pIG5vZXhjZXB0OgorK2NwZGVmIGZpbmRfY29uc3RydWN0aW9uXzNfNChp bnQgayxpbnQgbik6CisgICAgIHIiIiIKKyAgICAgRmluZCBhIGRlY29tcG9zaXRpb24gZm9yIGNv bnN0cnVjdGlvbiAzLjQgZnJvbSBbQUMwN11fCisgCitAQCAtMzUyLDcgKzM1Miw3IEBAIGNwZGVm IGZpbmRfY29uc3RydWN0aW9uXzNfNChpbnQgayxpbnQgbikgbm9leGNlcHQ6CisgICAgICAgICAg ICAgICAgICAgICBmcm9tIHNhZ2UuY29tYmluYXQuZGVzaWducy5vcnRob2dvbmFsX2FycmF5c19i dWlsZF9yZWN1cnNpdmUgaW1wb3J0IGNvbnN0cnVjdGlvbl8zXzQKKyAgICAgICAgICAgICAgICAg ICAgIHJldHVybiBjb25zdHJ1Y3Rpb25fM180LCAoayxubixtbSxyLHMpCisgCistY3BkZWYgZmlu ZF9jb25zdHJ1Y3Rpb25fM181KGludCBrLGludCBuKSBub2V4Y2VwdDoKKytjcGRlZiBmaW5kX2Nv bnN0cnVjdGlvbl8zXzUoaW50IGssaW50IG4pOgorICAgICByIiIiCisgICAgIEZpbmQgYSBkZWNv bXBvc2l0aW9uIGZvciBjb25zdHJ1Y3Rpb24gMy41IGZyb20gW0FDMDddXworIAorQEAgLTQwMiw3 ICs0MDIsNyBAQCBjcGRlZiBmaW5kX2NvbnN0cnVjdGlvbl8zXzUoaW50IGssaW50IG4pIG5vZXhj ZXB0OgorICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gc2FnZS5jb21iaW5hdC5kZXNpZ25z Lm9ydGhvZ29uYWxfYXJyYXlzX2J1aWxkX3JlY3Vyc2l2ZSBpbXBvcnQgY29uc3RydWN0aW9uXzNf NQorICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb25zdHJ1Y3Rpb25fM181LCAoayxu bixtbSxyLHMsdCkKKyAKKy1jcGRlZiBmaW5kX2NvbnN0cnVjdGlvbl8zXzYoaW50IGssaW50IG4p IG5vZXhjZXB0OgorK2NwZGVmIGZpbmRfY29uc3RydWN0aW9uXzNfNihpbnQgayxpbnQgbik6Cisg ICAgIHIiIiIKKyAgICAgRmluZCBhIGRlY29tcG9zaXRpb24gZm9yIGNvbnN0cnVjdGlvbiAzLjYg ZnJvbSBbQUMwN11fCisgCitAQCAtNDQzLDcgKzQ0Myw3IEBAIGNwZGVmIGZpbmRfY29uc3RydWN0 aW9uXzNfNihpbnQgayxpbnQgbikgbm9leGNlcHQ6CisgICAgICAgICAgICAgICAgIGZyb20gc2Fn ZS5jb21iaW5hdC5kZXNpZ25zLm9ydGhvZ29uYWxfYXJyYXlzX2J1aWxkX3JlY3Vyc2l2ZSBpbXBv cnQgY29uc3RydWN0aW9uXzNfNgorICAgICAgICAgICAgICAgICByZXR1cm4gY29uc3RydWN0aW9u XzNfNiwgKGssbm4sbW0saSkKKyAKKy1jcGRlZiBmaW5kX3FfeChpbnQgayxpbnQgbikgbm9leGNl cHQ6CisrY3BkZWYgZmluZF9xX3goaW50IGssaW50IG4pOgorICAgICByIiIiCisgICAgIEZpbmQg aW50ZWdlcnMgYHEseGAgc3VjaCB0aGF0IHRoZSBgcS14YCBjb25zdHJ1Y3Rpb24geWllbGRzIGFu IGBPQShrLG4pYC4KKyAKK0BAIC00OTYsNyArNDk2LDcgQEAgY3BkZWYgZmluZF9xX3goaW50IGss aW50IG4pIG5vZXhjZXB0OgorICAgICAgICAgICAgIHJldHVybiBjb25zdHJ1Y3Rpb25fcV94LCAo ayxxLHgpCisgICAgIHJldHVybiBGYWxzZQorIAorLWNwZGVmIGZpbmRfdGh3YXJ0X2xlbW1hXzNf NShpbnQgayxpbnQgTikgbm9leGNlcHQ6CisrY3BkZWYgZmluZF90aHdhcnRfbGVtbWFfM181KGlu dCBrLGludCBOKToKKyAgICAgciIiIgorICAgICBGaW5kIHRoZSB2YWx1ZXMgb24gd2hpY2ggTGVt bWEgMy41IGZyb20gW1Rod2FydHNdXyBhcHBsaWVzLgorIAorQEAgLTYxNyw3ICs2MTcsNyBAQCBj cGRlZiBmaW5kX3Rod2FydF9sZW1tYV8zXzUoaW50IGssaW50IE4pIG5vZXhjZXB0OgorIAorICAg ICByZXR1cm4gRmFsc2UKKyAKKy1jcGRlZiBmaW5kX3Rod2FydF9sZW1tYV80XzEoaW50IGssaW50 IG4pIG5vZXhjZXB0OgorK2NwZGVmIGZpbmRfdGh3YXJ0X2xlbW1hXzRfMShpbnQgayxpbnQgbik6 CisgICAgIHIiIiIKKyAgICAgRmluZCBhIGRlY29tcG9zaXRpb24gZm9yIExlbW1hIDQuMSBmcm9t IFtUaHdhcnRzXV8uCisgCitAQCAtNjY2LDcgKzY2Niw3IEBAIGNwZGVmIGZpbmRfdGh3YXJ0X2xl bW1hXzRfMShpbnQgayxpbnQgbikgbm9leGNlcHQ6CisgCisgICAgIHJldHVybiBGYWxzZQorIAor LWNwZGVmIGZpbmRfdGhyZWVfZmFjdG9yX3Byb2R1Y3QoaW50IGssaW50IG4pIG5vZXhjZXB0Ogor K2NwZGVmIGZpbmRfdGhyZWVfZmFjdG9yX3Byb2R1Y3QoaW50IGssaW50IG4pOgorICAgICByIiIi CisgICAgIEZpbmQgYG5fMW5fMm5fMz1uYCB0byBvYnRhaW4gYW4gYE9BKGssbilgIGJ5IHRoZSB0 aHJlZS1mYWN0b3IgcHJvZHVjdCBmcm9tIFtEdWtlc0xpbmcxNF1fCisgCitAQCAtNzExLDcgKzcx MSw3IEBAIGNwZGVmIGZpbmRfdGhyZWVfZmFjdG9yX3Byb2R1Y3QoaW50IGssaW50IG4pIG5vZXhj ZXB0OgorIAorICAgICByZXR1cm4gRmFsc2UKKyAKKy1jcGRlZiBmaW5kX2Jyb3V3ZXJfc2VwYXJh YmxlX2Rlc2lnbihpbnQgayxpbnQgbikgbm9leGNlcHQ6CisrY3BkZWYgZmluZF9icm91d2VyX3Nl cGFyYWJsZV9kZXNpZ24oaW50IGssaW50IG4pOgorICAgICByIiIiCisgICAgIEZpbmQgYHQocV4y K3ErMSkreD1uYCB0byBvYnRhaW4gYW4gYE9BKGssbilgIGJ5IEJyb3V3ZXIncyBzZXBhcmFibGUg ZGVzaWduIGNvbnN0cnVjdGlvbi4KKyAKK0BAIC04ODIsNyArODgyLDcgQEAgZGVmIGludF9hc19z dW0oaW50IHZhbHVlLCBsaXN0IFMsIGludCBrX21heCk6CisgICAgIHJldHVybiBOb25lCisgCisg CistY3BkZWYgZmluZF9icm91d2VyX3Zhbl9yZWVzX3dpdGhfb25lX3RydW5jYXRlZF9jb2x1bW4o aW50IGssaW50IG4pIG5vZXhjZXB0OgorK2NwZGVmIGZpbmRfYnJvdXdlcl92YW5fcmVlc193aXRo X29uZV90cnVuY2F0ZWRfY29sdW1uKGludCBrLGludCBuKToKKyAgICAgciIiIgorICAgICBGaW5k IGBybSt4XzErLi4uK3hfYz1uYCBzdWNoIHRoYXQgdGhlIEJyb3V3ZXItdmFuIFJlZXMgY29uc3Ry dWN0aW9ucyB5aWVsZHMgYSBgT0EoayxuKWAuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvY29t YmluYXQvZGVzaWducy9zdWJoeXBlcmdyYXBoX3NlYXJjaC5weXggYi9zcmMvc2FnZS9jb21iaW5h dC9kZXNpZ25zL3N1Ymh5cGVyZ3JhcGhfc2VhcmNoLnB5eAoraW5kZXggYzMxZThkY2QyMjkuLjk2 ODE1OWI5MDEyIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvY29tYmluYXQvZGVzaWducy9zdWJoeXBl cmdyYXBoX3NlYXJjaC5weXgKKysrKyBiL3NyYy9zYWdlL2NvbWJpbmF0L2Rlc2lnbnMvc3ViaHlw ZXJncmFwaF9zZWFyY2gucHl4CitAQCAtMjI5LDcgKzIyOSw3IEBAIGNkZWYgaW5saW5lIHZvaWQg cGVybXV0ZShoeXBlcmdyYXBoICogaCxpbnQgbjEsaW50IG4yKSBub2V4Y2VwdDoKKyAgICAgICAg IGJzX3NldChoLnNldHNbaV0sbjEsYjIpCisgICAgICAgICBic19zZXQoaC5zZXRzW2ldLG4yLGIx KQorIAorLWNkZWYgaW5kdWNlZF9oeXBlcmdyYXBoKGh5cGVyZ3JhcGggKiBoLCBpbnQgbiwgaHlw ZXJncmFwaCAqIHRtcCkgbm9leGNlcHQ6CisrY2RlZiBpbmR1Y2VkX2h5cGVyZ3JhcGgoaHlwZXJn cmFwaCAqIGgsIGludCBuLCBoeXBlcmdyYXBoICogdG1wKToKKyAgICAgciIiIgorICAgICBGaWxs cyB0bXAgd2l0aCB0aGUgaHlwZXJncmFwaCBpbmR1Y2VkIGJ5IHBvaW50cyB7MCwuLi4sbi0xfSBp biBoLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2NvbWJpbmF0L2VudW1lcmF0aW9uX21vZF9w ZXJtZ3JvdXAucHhkIGIvc3JjL3NhZ2UvY29tYmluYXQvZW51bWVyYXRpb25fbW9kX3Blcm1ncm91 cC5weGQKK2luZGV4IDZkNzNmNDAyMzIxLi4yNGEwZTE1MjE3YyAxMDA2NDQKKy0tLSBhL3NyYy9z YWdlL2NvbWJpbmF0L2VudW1lcmF0aW9uX21vZF9wZXJtZ3JvdXAucHhkCisrKysgYi9zcmMvc2Fn ZS9jb21iaW5hdC9lbnVtZXJhdGlvbl9tb2RfcGVybWdyb3VwLnB4ZAorQEAgLTEsOSArMSw5IEBA CisgZnJvbSBzYWdlLnN0cnVjdHVyZS5saXN0X2Nsb25lIGNpbXBvcnQgQ2xvbmFibGVJbnRBcnJh eQorIAorLWNwZGVmIGxpc3QgYWxsX2NoaWxkcmVuKENsb25hYmxlSW50QXJyYXkgdiwgaW50IG1h eF9wYXJ0KSBub2V4Y2VwdAorK2NwZGVmIGxpc3QgYWxsX2NoaWxkcmVuKENsb25hYmxlSW50QXJy YXkgdiwgaW50IG1heF9wYXJ0KQorIGNwZGVmIGludCBsZXhfY21wX3BhcnRpYWwoQ2xvbmFibGVJ bnRBcnJheSB0MSwgQ2xvbmFibGVJbnRBcnJheSB0MiwgaW50IHN0ZXApIG5vZXhjZXB0CisgY3Bk ZWYgaW50IGxleF9jbXAoQ2xvbmFibGVJbnRBcnJheSB0MSwgQ2xvbmFibGVJbnRBcnJheSB0Mikg bm9leGNlcHQKKyBjcGRlZiBiaW50IGlzX2Nhbm9uaWNhbChsaXN0IHNncywgQ2xvbmFibGVJbnRB cnJheSB2KSBleGNlcHQgLTEKKy1jcGRlZiBDbG9uYWJsZUludEFycmF5IGNhbm9uaWNhbF9yZXBy ZXNlbnRhdGl2ZV9vZl9vcmJpdF9vZihsaXN0IHNncywgQ2xvbmFibGVJbnRBcnJheSB2KSBub2V4 Y2VwdAorLWNwZGVmIGxpc3QgY2Fub25pY2FsX2NoaWxkcmVuKGxpc3Qgc2dzLCBDbG9uYWJsZUlu dEFycmF5IHYsIGludCBtYXhfcGFydCkgbm9leGNlcHQKKy1jcGRlZiBzZXQgb3JiaXQobGlzdCBz Z3MsIENsb25hYmxlSW50QXJyYXkgdikgbm9leGNlcHQKKytjcGRlZiBDbG9uYWJsZUludEFycmF5 IGNhbm9uaWNhbF9yZXByZXNlbnRhdGl2ZV9vZl9vcmJpdF9vZihsaXN0IHNncywgQ2xvbmFibGVJ bnRBcnJheSB2KQorK2NwZGVmIGxpc3QgY2Fub25pY2FsX2NoaWxkcmVuKGxpc3Qgc2dzLCBDbG9u YWJsZUludEFycmF5IHYsIGludCBtYXhfcGFydCkKKytjcGRlZiBzZXQgb3JiaXQobGlzdCBzZ3Ms IENsb25hYmxlSW50QXJyYXkgdikKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9jb21iaW5hdC9lbnVt ZXJhdGlvbl9tb2RfcGVybWdyb3VwLnB5eCBiL3NyYy9zYWdlL2NvbWJpbmF0L2VudW1lcmF0aW9u X21vZF9wZXJtZ3JvdXAucHl4CitpbmRleCA3NDIyMDJkMDRhZC4uNzBiMDVjNjI3NmIgMTAwNjQ0 CistLS0gYS9zcmMvc2FnZS9jb21iaW5hdC9lbnVtZXJhdGlvbl9tb2RfcGVybWdyb3VwLnB5eAor KysrIGIvc3JjL3NhZ2UvY29tYmluYXQvZW51bWVyYXRpb25fbW9kX3Blcm1ncm91cC5weXgKK0BA IC0xMyw3ICsxMyw3IEBAIFRvb2xzIGZvciBlbnVtZXJhdGlvbiBtb2R1bG8gdGhlIGFjdGlvbiBv ZiBhIHBlcm11dGF0aW9uIGdyb3VwCisgCisgZnJvbSBzYWdlLmdyb3Vwcy5wZXJtX2dwcy5wZXJt Z3JvdXBfZWxlbWVudCBjaW1wb3J0IFBlcm11dGF0aW9uR3JvdXBFbGVtZW50CisgCistY3BkZWYg bGlzdCBhbGxfY2hpbGRyZW4oQ2xvbmFibGVJbnRBcnJheSB2LCBpbnQgbWF4X3BhcnQpIG5vZXhj ZXB0OgorK2NwZGVmIGxpc3QgYWxsX2NoaWxkcmVuKENsb25hYmxlSW50QXJyYXkgdiwgaW50IG1h eF9wYXJ0KToKKyAgICAgciIiIgorICAgICBSZXR1cm5zIGFsbCB0aGUgY2hpbGRyZW4gb2YgYW4g aW50ZWdlciB2ZWN0b3IgKDpjbGFzczpgfnNhZ2Uuc3RydWN0dXJlLmxpc3RfY2xvbmUuQ2xvbmFi bGVJbnRBcnJheWApCisgICAgIGBgdmBgIGluIHRoZSB0cmVlIG9mIGVudW1lcmF0aW9uIGJ5IGxl eGljb2dyYXBoaWMgb3JkZXIuIFRoZSBjaGlsZHJlbiBvZgorQEAgLTE4NCw3ICsxODQsNyBAQCBj cGRlZiBiaW50IGlzX2Nhbm9uaWNhbChsaXN0IHNncywgQ2xvbmFibGVJbnRBcnJheSB2KSBleGNl cHQgLTE6CisgICAgIHJldHVybiBUcnVlCisgCisgCistY3BkZWYgQ2xvbmFibGVJbnRBcnJheSBj YW5vbmljYWxfcmVwcmVzZW50YXRpdmVfb2Zfb3JiaXRfb2YobGlzdCBzZ3MsIENsb25hYmxlSW50 QXJyYXkgdikgbm9leGNlcHQ6CisrY3BkZWYgQ2xvbmFibGVJbnRBcnJheSBjYW5vbmljYWxfcmVw cmVzZW50YXRpdmVfb2Zfb3JiaXRfb2YobGlzdCBzZ3MsIENsb25hYmxlSW50QXJyYXkgdik6Cisg ICAgIHIiIiIKKyAgICAgUmV0dXJucyB0aGUgbWF4aW1hbCB2ZWN0b3IgZm9yIHRoZSBsZXhpY29n cmFwaGljIG9yZGVyIGxpdmluZyBpbgorICAgICB0aGUgb3JiaXQgb2YgYHZgIHVuZGVyIHRoZSBh Y3Rpb24gb2YgdGhlIHBlcm11dGF0aW9uIGdyb3VwIHdob3NlCitAQCAtMjMwLDcgKzIzMCw3IEBA IGNwZGVmIENsb25hYmxlSW50QXJyYXkgY2Fub25pY2FsX3JlcHJlc2VudGF0aXZlX29mX29yYml0 X29mKGxpc3Qgc2dzLCBDbG9uYWJsZUluCisgICAgICAgICByZXByZXNlbnRhdGl2ZSA9IG1heCh0 b19hbmFseXNlKQorICAgICByZXR1cm4gcmVwcmVzZW50YXRpdmUKKyAKKy1jcGRlZiBsaXN0IGNh bm9uaWNhbF9jaGlsZHJlbihsaXN0IHNncywgQ2xvbmFibGVJbnRBcnJheSB2LCBpbnQgbWF4X3Bh cnQpIG5vZXhjZXB0OgorK2NwZGVmIGxpc3QgY2Fub25pY2FsX2NoaWxkcmVuKGxpc3Qgc2dzLCBD bG9uYWJsZUludEFycmF5IHYsIGludCBtYXhfcGFydCk6CisgICAgIHIiIiIKKyAgICAgUmV0dXJu cyB0aGUgY2Fub25pY2FsIGNoaWxkcmVuIG9mIHRoZSBpbnRlZ2VyIHZlY3RvciBgYHZgYC4gVGhp cworICAgICBmdW5jdGlvbiBjb21wdXRlcyBhbGwgY2hpbGRyZW4gb2YgdGhlIGludGVnZXIgdmVj dG9yIGBgdmBgIHZpYSB0aGUKK0BAIC0yNTEsNyArMjUxLDcgQEAgY3BkZWYgbGlzdCBjYW5vbmlj YWxfY2hpbGRyZW4obGlzdCBzZ3MsIENsb25hYmxlSW50QXJyYXkgdiwgaW50IG1heF9wYXJ0KSBu b2V4Y2UKKyAgICAgY2RlZiBDbG9uYWJsZUludEFycmF5IGNoaWxkCisgICAgIHJldHVybiBbY2hp bGQgZm9yIGNoaWxkIGluIGFsbF9jaGlsZHJlbih2LCBtYXhfcGFydCkgaWYgaXNfY2Fub25pY2Fs KHNncywgY2hpbGQpXQorIAorLWNwZGVmIHNldCBvcmJpdChsaXN0IHNncywgQ2xvbmFibGVJbnRB cnJheSB2KSBub2V4Y2VwdDoKKytjcGRlZiBzZXQgb3JiaXQobGlzdCBzZ3MsIENsb25hYmxlSW50 QXJyYXkgdik6CisgICAgIHIiIiIKKyAgICAgUmV0dXJucyB0aGUgb3JiaXQgb2YgdGhlIGludGVn ZXIgdmVjdG9yIGBgdmBgIHVuZGVyIHRoZSBhY3Rpb24gb2YgdGhlCisgICAgIHBlcm11dGF0aW9u IGdyb3VwIHdob3NlIHN0cm9uZyBnZW5lcmF0aW5nIHN5c3RlbSBpcyBgYHNnc2BgLgorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL2NvbWJpbmF0L2Zhc3RfdmVjdG9yX3BhcnRpdGlvbnMucHl4IGIvc3Jj L3NhZ2UvY29tYmluYXQvZmFzdF92ZWN0b3JfcGFydGl0aW9ucy5weXgKK2luZGV4IDUxNDJlYjc5 MTA4Li5mZTkzN2I3NWVlNyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2NvbWJpbmF0L2Zhc3RfdmVj dG9yX3BhcnRpdGlvbnMucHl4CisrKysgYi9zcmMvc2FnZS9jb21iaW5hdC9mYXN0X3ZlY3Rvcl9w YXJ0aXRpb25zLnB5eAorQEAgLTMwLDcgKzMwLDcgQEAgQVVUSE9SUzoKKyAjCisgIyBUbyB1bmRl cnN0YW5kIHRoZSBjb2RlIGJlbG93LCBjb25zdWx0IHRoZSBBTEdPUklUSE0uCisgCistY2RlZiBs aXN0IHZlY3Rvcl9oYWx2ZShsaXN0IHYpIG5vZXhjZXB0OgorK2NkZWYgbGlzdCB2ZWN0b3JfaGFs dmUobGlzdCB2KToKKyAgICAgciIiIgorICAgICBSZXR1cm4gdGhlIHZlY3RvciBoYWxmd2F5IChs ZXhpY29ncmFwaGljYWxseSkgYmV0d2VlbiBgYHZgYCBhbmQgemVyby4KKyAKK0BAIC0yMzEsNyAr MjMxLDcgQEAgZGVmIHdpdGhpbl9mcm9tX3RvKGxpc3QgbSwgbGlzdCBzLCBsaXN0IGUpOgorICAg ICB5aWVsZCBmcm9tIHJlY3Vyc2l2ZV93aXRoaW5fZnJvbV90byhtLCBzcywgZSwgVHJ1ZSwgVHJ1 ZSkKKyAKKyAKKy1jZGVmIGlubGluZSBsaXN0IHZlY3Rvcl9zdWIobGlzdCBhLCBsaXN0IGIpIG5v ZXhjZXB0OgorK2NkZWYgaW5saW5lIGxpc3QgdmVjdG9yX3N1YihsaXN0IGEsIGxpc3QgYik6Cisg ICAgICIiIgorICAgICBSZXR1cm4gYGBhIC0gYmBgIGNvbnNpZGVyZWQgYXMgdmVjdG9ycy4KKyAK K2RpZmYgLS1naXQgYS9zcmMvc2FnZS9jb21iaW5hdC9wZXJtdXRhdGlvbl9jeXRob24ucHhkIGIv c3JjL3NhZ2UvY29tYmluYXQvcGVybXV0YXRpb25fY3l0aG9uLnB4ZAoraW5kZXggOTc0NGIyZjU0 OWUuLjA5NGRhZmM4ZGRjIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvY29tYmluYXQvcGVybXV0YXRp b25fY3l0aG9uLnB4ZAorKysrIGIvc3JjL3NhZ2UvY29tYmluYXQvcGVybXV0YXRpb25fY3l0aG9u LnB4ZAorQEAgLTMsOSArMyw5IEBAIGZyb20gY3B5dGhvbi5hcnJheSBjaW1wb3J0IGFycmF5Cisg Y2RlZiB2b2lkIHJlc2V0X3N3YXAoaW50IG4sIGludCAqYywgaW50ICpvKSBub2V4Y2VwdAorIGNk ZWYgaW50IG5leHRfc3dhcChpbnQgbiwgaW50ICpjLCBpbnQgKm8pIG5vZXhjZXB0CisgY3BkZWYg YmludCBuZXh0X3Blcm0oYXJyYXkgbCkgbm9leGNlcHQKKy1jcGRlZiBtYXBfdG9fbGlzdChhcnJh eSBsLCB0dXBsZSB2YWx1ZXMsIGludCBuKSBub2V4Y2VwdAorLWNwZGVmIGxpc3QgbGVmdF9hY3Rp b25fc2FtZV9uKGxpc3QgbCwgbGlzdCByKSBub2V4Y2VwdAorLWNwZGVmIGxpc3QgcmlnaHRfYWN0 aW9uX3NhbWVfbihsaXN0IGwsIGxpc3Qgcikgbm9leGNlcHQKKy1jcGRlZiBsaXN0IGxlZnRfYWN0 aW9uX3Byb2R1Y3QobGlzdCBsLCBsaXN0IHIpIG5vZXhjZXB0CistY3BkZWYgbGlzdCByaWdodF9h Y3Rpb25fcHJvZHVjdChsaXN0IGwsIGxpc3Qgcikgbm9leGNlcHQKKytjcGRlZiBtYXBfdG9fbGlz dChhcnJheSBsLCB0dXBsZSB2YWx1ZXMsIGludCBuKQorK2NwZGVmIGxpc3QgbGVmdF9hY3Rpb25f c2FtZV9uKGxpc3QgbCwgbGlzdCByKQorK2NwZGVmIGxpc3QgcmlnaHRfYWN0aW9uX3NhbWVfbihs aXN0IGwsIGxpc3QgcikKKytjcGRlZiBsaXN0IGxlZnRfYWN0aW9uX3Byb2R1Y3QobGlzdCBsLCBs aXN0IHIpCisrY3BkZWYgbGlzdCByaWdodF9hY3Rpb25fcHJvZHVjdChsaXN0IGwsIGxpc3QgcikK KyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9jb21iaW5hdC9wZXJtdXRhdGlvbl9jeXRob24ucHl4 IGIvc3JjL3NhZ2UvY29tYmluYXQvcGVybXV0YXRpb25fY3l0aG9uLnB5eAoraW5kZXggMTcwMTA0 NzZjZDkuLmQxNmEwYjE3NWE5IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvY29tYmluYXQvcGVybXV0 YXRpb25fY3l0aG9uLnB5eAorKysrIGIvc3JjL3NhZ2UvY29tYmluYXQvcGVybXV0YXRpb25fY3l0 aG9uLnB5eAorQEAgLTI1NSw3ICsyNTUsNyBAQCBjcGRlZiBiaW50IG5leHRfcGVybShhcnJheSBs KSBub2V4Y2VwdDoKKyAKKyAKKyBAY3l0aG9uLmJvdW5kc2NoZWNrKEZhbHNlKQorLWNwZGVmIG1h cF90b19saXN0KGFycmF5IGwsIHR1cGxlIHZhbHVlcywgaW50IG4pIG5vZXhjZXB0OgorK2NwZGVm IG1hcF90b19saXN0KGFycmF5IGwsIHR1cGxlIHZhbHVlcywgaW50IG4pOgorICAgICAiIiIKKyAg ICAgQnVpbGQgYSBsaXN0IGJ5IG1hcHBpbmcgdGhlIGFycmF5IGBgbGBgIHVzaW5nIGBgdmFsdWVz YGAuCisgCitAQCAtMjkxLDcgKzI5MSw3IEBAIGNwZGVmIG1hcF90b19saXN0KGFycmF5IGwsIHR1 cGxlIHZhbHVlcywgaW50IG4pIG5vZXhjZXB0OgorICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworICMjIE11bHRpcGxp Y2F0aW9uIGZ1bmN0aW9ucyBmb3IgcGVybXV0YXRpb25zCisgCistY3BkZWYgbGlzdCBsZWZ0X2Fj dGlvbl9zYW1lX24obGlzdCBTLCBsaXN0IGxwKSBub2V4Y2VwdDoKKytjcGRlZiBsaXN0IGxlZnRf YWN0aW9uX3NhbWVfbihsaXN0IFMsIGxpc3QgbHApOgorICAgICByIiIiCisgICAgIFJldHVybiB0 aGUgcGVybXV0YXRpb24gb2J0YWluZWQgYnkgY29tcG9zaW5nIGEgcGVybXV0YXRpb24KKyAgICAg YGBTYGAgd2l0aCBhIHBlcm11dGF0aW9uIGBgbHBgYCBpbiBzdWNoIGFuIG9yZGVyIHRoYXQgYGBs cGBgCitAQCAtMzE4LDcgKzMxOCw3IEBAIGNwZGVmIGxpc3QgbGVmdF9hY3Rpb25fc2FtZV9uKGxp c3QgUywgbGlzdCBscCkgbm9leGNlcHQ6CisgICAgICAgICByZXQuYXBwZW5kKFNbaS0xXSkKKyAg ICAgcmV0dXJuIHJldAorIAorLWNwZGVmIGxpc3QgcmlnaHRfYWN0aW9uX3NhbWVfbihsaXN0IFMs IGxpc3QgcnApIG5vZXhjZXB0OgorK2NwZGVmIGxpc3QgcmlnaHRfYWN0aW9uX3NhbWVfbihsaXN0 IFMsIGxpc3QgcnApOgorICAgICAiIiIKKyAgICAgUmV0dXJuIHRoZSBwZXJtdXRhdGlvbiBvYnRh aW5lZCBieSBjb21wb3NpbmcgYSBwZXJtdXRhdGlvbgorICAgICBgYFNgYCB3aXRoIGEgcGVybXV0 YXRpb24gYGBycGBgIGluIHN1Y2ggYW4gb3JkZXIgdGhhdCBgYFNgYCBpcworQEAgLTM0NSw3ICsz NDUsNyBAQCBjcGRlZiBsaXN0IHJpZ2h0X2FjdGlvbl9zYW1lX24obGlzdCBTLCBsaXN0IHJwKSBu b2V4Y2VwdDoKKyAgICAgICAgIHJldC5hcHBlbmQocnBbaS0xXSkKKyAgICAgcmV0dXJuIHJldAor IAorLWNwZGVmIGxpc3QgbGVmdF9hY3Rpb25fcHJvZHVjdChsaXN0IFMsIGxpc3QgbHApIG5vZXhj ZXB0OgorK2NwZGVmIGxpc3QgbGVmdF9hY3Rpb25fcHJvZHVjdChsaXN0IFMsIGxpc3QgbHApOgor ICAgICByIiIiCisgICAgIFJldHVybiB0aGUgcGVybXV0YXRpb24gb2J0YWluZWQgYnkgY29tcG9z aW5nIGEgcGVybXV0YXRpb24KKyAgICAgYGBTYGAgd2l0aCBhIHBlcm11dGF0aW9uIGBgbHBgYCBp biBzdWNoIGFuIG9yZGVyIHRoYXQgYGBscGBgIGlzCitAQCAtMzc5LDcgKzM3OSw3IEBAIGNwZGVm IGxpc3QgbGVmdF9hY3Rpb25fcHJvZHVjdChsaXN0IFMsIGxpc3QgbHApIG5vZXhjZXB0OgorICAg ICAgICAgbHAuYXBwZW5kKGkpCisgICAgIHJldHVybiBsZWZ0X2FjdGlvbl9zYW1lX24oUywgbHAp CisgCistY3BkZWYgbGlzdCByaWdodF9hY3Rpb25fcHJvZHVjdChsaXN0IFMsIGxpc3QgcnApIG5v ZXhjZXB0OgorK2NwZGVmIGxpc3QgcmlnaHRfYWN0aW9uX3Byb2R1Y3QobGlzdCBTLCBsaXN0IHJw KToKKyAgICAgIiIiCisgICAgIFJldHVybiB0aGUgcGVybXV0YXRpb24gb2J0YWluZWQgYnkgY29t cG9zaW5nIGEgcGVybXV0YXRpb24KKyAgICAgYGBTYGAgd2l0aCBhIHBlcm11dGF0aW9uIGBgcnBg YCBpbiBzdWNoIGFuIG9yZGVyIHRoYXQgYGBTYGAgaXMKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9j b21iaW5hdC9wb3NldHMvaGFzc2VfY3l0aG9uX2ZsaW50LnB5eCBiL3NyYy9zYWdlL2NvbWJpbmF0 L3Bvc2V0cy9oYXNzZV9jeXRob25fZmxpbnQucHl4CitpbmRleCBmYjAxZDU5NjdmMi4uNWQyYzVi OTY3YWUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9jb21iaW5hdC9wb3NldHMvaGFzc2VfY3l0aG9u X2ZsaW50LnB5eAorKysrIGIvc3JjL3NhZ2UvY29tYmluYXQvcG9zZXRzL2hhc3NlX2N5dGhvbl9m bGludC5weXgKK0BAIC0yMiw3ICsyMiw3IEBAIGZyb20gc2FnZS5tYXRyaXgubWF0cml4X3NwYWNl IGltcG9ydCBNYXRyaXhTcGFjZQorIGZyb20gc2FnZS5yaW5ncy5pbnRlZ2VyX3JpbmcgaW1wb3J0 IFpaCisgCisgCistY3BkZWYgTWF0cml4X2ludGVnZXJfZGVuc2UgbW9lYml1c19tYXRyaXhfZmFz dChsaXN0IHBvc2l0aW9ucykgbm9leGNlcHQ6CisrY3BkZWYgTWF0cml4X2ludGVnZXJfZGVuc2Ug bW9lYml1c19tYXRyaXhfZmFzdChsaXN0IHBvc2l0aW9ucyk6CisgICAgICIiIgorICAgICBDb21w dXRlIHRoZSBNw7ZiaXVzIG1hdHJpeCBvZiBhIHBvc2V0IGJ5IGEgc3BlY2lmaWMgdHJpYW5ndWxh ciBpbnZlcnNpb24uCisgCitAQCAtODEsNyArODEsNyBAQCBjcGRlZiBNYXRyaXhfaW50ZWdlcl9k ZW5zZSBtb2ViaXVzX21hdHJpeF9mYXN0KGxpc3QgcG9zaXRpb25zKSBub2V4Y2VwdDoKKyAgICAg cmV0dXJuIEEKKyAKKyAKKy1jcGRlZiBNYXRyaXhfaW50ZWdlcl9kZW5zZSBjb3hldGVyX21hdHJp eF9mYXN0KGxpc3QgcG9zaXRpb25zKSBub2V4Y2VwdDoKKytjcGRlZiBNYXRyaXhfaW50ZWdlcl9k ZW5zZSBjb3hldGVyX21hdHJpeF9mYXN0KGxpc3QgcG9zaXRpb25zKToKKyAgICAgIiIiCisgICAg IENvbXB1dGUgdGhlIENveGV0ZXIgbWF0cml4IG9mIGEgcG9zZXQgYnkgYSBzcGVjaWZpYyBhbGdv cml0aG0uCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvY29tYmluYXQvcmlnZ2VkX2NvbmZpZ3Vy YXRpb25zL3JpZ2dlZF9wYXJ0aXRpb24ucHhkIGIvc3JjL3NhZ2UvY29tYmluYXQvcmlnZ2VkX2Nv bmZpZ3VyYXRpb25zL3JpZ2dlZF9wYXJ0aXRpb24ucHhkCitpbmRleCA5YjMzM2I0ZmRjNi4uZTk5 MjU4ZjMzYjIgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9jb21iaW5hdC9yaWdnZWRfY29uZmlndXJh dGlvbnMvcmlnZ2VkX3BhcnRpdGlvbi5weGQKKysrKyBiL3NyYy9zYWdlL2NvbWJpbmF0L3JpZ2dl ZF9jb25maWd1cmF0aW9ucy9yaWdnZWRfcGFydGl0aW9uLnB4ZAorQEAgLTYsOSArNiw5IEBAIGNk ZWYgY2xhc3MgUmlnZ2VkUGFydGl0aW9uKFNhZ2VPYmplY3QpOgorICAgICBjZGVmIHB1YmxpYyBs aXN0IHJpZ2dpbmcKKyAgICAgY2RlZiBsb25nIF9oYXNoCisgCistICAgIGNwZGVmIGdldF9udW1f Y2VsbHNfdG9fY29sdW1uKHNlbGYsIGludCBlbmRfY29sdW1uLCB0PSopIG5vZXhjZXB0CistICAg IGNwZGVmIGluc2VydF9jZWxsKHNlbGYsIGludCBtYXhfd2lkdGgpIG5vZXhjZXB0CistICAgIGNw ZGVmIHJlbW92ZV9jZWxsKHNlbGYsIHJvdywgaW50IG51bV9jZWxscz0qKSBub2V4Y2VwdAorKyAg ICBjcGRlZiBnZXRfbnVtX2NlbGxzX3RvX2NvbHVtbihzZWxmLCBpbnQgZW5kX2NvbHVtbiwgdD0q KQorKyAgICBjcGRlZiBpbnNlcnRfY2VsbChzZWxmLCBpbnQgbWF4X3dpZHRoKQorKyAgICBjcGRl ZiByZW1vdmVfY2VsbChzZWxmLCByb3csIGludCBudW1fY2VsbHM9KikKKyAKKyBjZGVmIGNsYXNz IFJpZ2dlZFBhcnRpdGlvblR5cGVCKFJpZ2dlZFBhcnRpdGlvbik6CisgICAgIHBhc3MKK2RpZmYg LS1naXQgYS9zcmMvc2FnZS9jb21iaW5hdC9yaWdnZWRfY29uZmlndXJhdGlvbnMvcmlnZ2VkX3Bh cnRpdGlvbi5weXggYi9zcmMvc2FnZS9jb21iaW5hdC9yaWdnZWRfY29uZmlndXJhdGlvbnMvcmln Z2VkX3BhcnRpdGlvbi5weXgKK2luZGV4IDk4YTkwNDdkNmM5Li45N2ZmNDhkNzkxOCAxMDA2NDQK Ky0tLSBhL3NyYy9zYWdlL2NvbWJpbmF0L3JpZ2dlZF9jb25maWd1cmF0aW9ucy9yaWdnZWRfcGFy dGl0aW9uLnB5eAorKysrIGIvc3JjL3NhZ2UvY29tYmluYXQvcmlnZ2VkX2NvbmZpZ3VyYXRpb25z L3JpZ2dlZF9wYXJ0aXRpb24ucHl4CitAQCAtMzU0LDcgKzM1NCw3IEBAIGNkZWYgY2xhc3MgUmln Z2VkUGFydGl0aW9uKFNhZ2VPYmplY3QpOgorIAorICAgICAjIFNob3VsZCB3ZSBtb3ZlIHRoZXNl IGZ1bmN0aW9ucyB0byB0aGUgQ1AgLT4gUkMgYmlqZWN0aW9ucz8KKyAKKy0gICAgY3BkZWYgZ2V0 X251bV9jZWxsc190b19jb2x1bW4oc2VsZiwgaW50IGVuZF9jb2x1bW4sIHQ9MSkgbm9leGNlcHQ6 CisrICAgIGNwZGVmIGdldF9udW1fY2VsbHNfdG9fY29sdW1uKHNlbGYsIGludCBlbmRfY29sdW1u LCB0PTEpOgorICAgICAgICAgciIiIgorICAgICAgICAgR2V0IHRoZSBudW1iZXIgb2YgY2VsbHMg aW4gYWxsIGNvbHVtbnMgYmVmb3JlIHRoZSBgYGVuZF9jb2x1bW5gYC4KKyAKK0BAIC0zOTQsNyAr Mzk0LDcgQEAgY2RlZiBjbGFzcyBSaWdnZWRQYXJ0aXRpb24oU2FnZU9iamVjdCk6CisgCisgICAg ICAgICByZXR1cm4gc3VtX2NlbGxzCisgCistICAgIGNwZGVmIGluc2VydF9jZWxsKHNlbGYsIGlu dCBtYXhfd2lkdGgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBpbnNlcnRfY2VsbChzZWxmLCBpbnQg bWF4X3dpZHRoKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIEluc2VydCBhIGNlbGwgZ2l2ZW4g YXQgYSBzaW5ndWxhciB2YWx1ZSBhcyBsb25nIGFzIGl0cyBsZXNzIHRoYW4gdGhlCisgICAgICAg ICBzcGVjaWZpZWQgd2lkdGguCitAQCAtNDQ2LDcgKzQ0Niw3IEBAIGNkZWYgY2xhc3MgUmlnZ2Vk UGFydGl0aW9uKFNhZ2VPYmplY3QpOgorICAgICAgICAgc2VsZi5yaWdnaW5nW21heF9wb3NdID0g Tm9uZSAjIFN0YXRlIHRoYXQgd2UndmUgY2hhbmdlZCB0aGlzIHJvdworICAgICAgICAgcmV0dXJu IHNlbGYuX2xpc3RbbWF4X3Bvc10gLSAxCisgCistICAgIGNwZGVmIHJlbW92ZV9jZWxsKHNlbGYs IHJvdywgaW50IG51bV9jZWxscz0xKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcmVtb3ZlX2NlbGwo c2VsZiwgcm93LCBpbnQgbnVtX2NlbGxzPTEpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmVt b3ZlcyBhIGNlbGwgYXQgdGhlIHNwZWNpZmllZCBgYHJvd2BgLgorIAorZGlmZiAtLWdpdCBhL3Ny Yy9zYWdlL2NvbWJpbmF0L3Jvb3Rfc3lzdGVtL2JyYWlkX29yYml0LnB5eCBiL3NyYy9zYWdlL2Nv bWJpbmF0L3Jvb3Rfc3lzdGVtL2JyYWlkX29yYml0LnB5eAoraW5kZXggYzc5ODNlZWI0M2EuLjUx MDcwMzhkZjRjIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvY29tYmluYXQvcm9vdF9zeXN0ZW0vYnJh aWRfb3JiaXQucHl4CisrKysgYi9zcmMvc2FnZS9jb21iaW5hdC9yb290X3N5c3RlbS9icmFpZF9v cmJpdC5weXgKK0BAIC03LDcgKzcsNyBAQCBDeXRob24gZnVuY3Rpb24gdG8gY29tcHV0ZSB0aGUg b3JiaXQgb2YgdGhlIGJyYWlkIG1vdmVzIG9uIGEgcmVkdWNlZCB3b3JkLgorIGZyb20gY3lzaWdu YWxzLnNpZ25hbHMgY2ltcG9ydCBzaWdfY2hlY2sKKyAKKyAKKy1jcGRlZiBzZXQgQnJhaWRPcmJp dChsaXN0IHdvcmQsIGxpc3QgcmVscykgbm9leGNlcHQ6CisrY3BkZWYgc2V0IEJyYWlkT3JiaXQo bGlzdCB3b3JkLCBsaXN0IHJlbHMpOgorICAgICByIiIiCisgICAgIFJldHVybiB0aGUgb3JiaXQg b2YgYGB3b3JkYGAgYnkgYWxsIHJlcGxhY2VtZW50cyBnaXZlbiBieSBgYHJlbHNgYC4KKyAKK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9jb21iaW5hdC9yb290X3N5c3RlbS9yZWZsZWN0aW9uX2dyb3Vw X2MucHl4IGIvc3JjL3NhZ2UvY29tYmluYXQvcm9vdF9zeXN0ZW0vcmVmbGVjdGlvbl9ncm91cF9j LnB5eAoraW5kZXggYTQ0YTU4NzRiN2YuLmRiZmM3NjI4MmY4IDEwMDY0NAorLS0tIGEvc3JjL3Nh Z2UvY29tYmluYXQvcm9vdF9zeXN0ZW0vcmVmbGVjdGlvbl9ncm91cF9jLnB5eAorKysrIGIvc3Jj L3NhZ2UvY29tYmluYXQvcm9vdF9zeXN0ZW0vcmVmbGVjdGlvbl9ncm91cF9jLnB5eAorQEAgLTMy LDcgKzMyLDcgQEAgY2RlZiBjbGFzcyBJdGVyYXRvcigpOgorICAgICBjZGVmIGxpc3Qgbm9uY29t CisgICAgIGNkZWYgbGlzdCBvcmRlcgorIAorLSAgICBjZGVmIGxpc3Qgbm9uY29tX2xldHRlcnMo c2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgbGlzdCBub25jb21fbGV0dGVycyhzZWxmKToKKyAg ICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGEgbGlzdCBgYExgYCBvZiBsaXN0cyBzdWNoIHRo YXQgLi4uCisgCitAQCAtOTAsNyArOTAsNyBAQCBjZGVmIGNsYXNzIEl0ZXJhdG9yKCk6CisgCisg ICAgICAgICAjIHNlbGYubm9uY29tID0gc2VsZi5ub25jb21fbGV0dGVycygpCisgCistICAgIGNk ZWYgbGlzdCBzdWNjKHNlbGYsIFBlcm11dGF0aW9uR3JvdXBFbGVtZW50IHUsIGludCBmaXJzdCkg bm9leGNlcHQ6CisrICAgIGNkZWYgbGlzdCBzdWNjKHNlbGYsIFBlcm11dGF0aW9uR3JvdXBFbGVt ZW50IHUsIGludCBmaXJzdCk6CisgICAgICAgICBjZGVmIFBlcm11dGF0aW9uR3JvdXBFbGVtZW50 IHNpCisgICAgICAgICBjZGVmIGludCBpCisgICAgICAgICBjZGVmIGxpc3Qgc3VjY2Vzc29ycyA9 IFtdCitAQCAtMTEwLDcgKzExMCw3IEBAIGNkZWYgY2xhc3MgSXRlcmF0b3IoKToKKyAgICAgICAg ICAgICAgICAgICAgIHN1Y2Nlc3NvcnMuYXBwZW5kKChfbmV3X211bF8oc2ksIHUpLCBpKSkKKyAg ICAgICAgIHJldHVybiBzdWNjZXNzb3JzCisgCistICAgIGNkZWYgbGlzdCBzdWNjX3dvcmRzKHNl bGYsIFBlcm11dGF0aW9uR3JvdXBFbGVtZW50IHUsIGxpc3Qgd29yZCwgaW50IGZpcnN0KSBub2V4 Y2VwdDoKKysgICAgY2RlZiBsaXN0IHN1Y2Nfd29yZHMoc2VsZiwgUGVybXV0YXRpb25Hcm91cEVs ZW1lbnQgdSwgbGlzdCB3b3JkLCBpbnQgZmlyc3QpOgorICAgICAgICAgY2RlZiBQZXJtdXRhdGlv bkdyb3VwRWxlbWVudCB1MSwgc2kKKyAgICAgICAgIGNkZWYgaW50IGkKKyAgICAgICAgIGNkZWYg bGlzdCBzdWNjZXNzb3JzID0gW10KK0BAIC00NjAsNyArNDYwLDcgQEAgY2RlZiBpbnQgZmlyc3Rf ZGVzY2VudF9pbl9wYXJhYm9saWMoUGVybXV0YXRpb25Hcm91cEVsZW1lbnQgdywgbGlzdCBwYXJh Ym9saWMsCisgCisgCisgY3BkZWYgUGVybXV0YXRpb25Hcm91cEVsZW1lbnQgcmVkdWNlX2luX2Nv c2V0KFBlcm11dGF0aW9uR3JvdXBFbGVtZW50IHcsIHR1cGxlIFMsCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QgcGFyYWJvbGljLCBpbnQgTiwgYmlu dCByaWdodCkgbm9leGNlcHQ6CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxpc3QgcGFyYWJvbGljLCBpbnQgTiwgYmludCByaWdodCk6CisgICAgIHIiIiIK KyAgICAgUmV0dXJuIHRoZSBtaW5pbWFsIGxlbmd0aCBjb3NldCByZXByZXNlbnRhdGl2ZSBvZiBg YHdgYCBvZiB0aGUgcGFyYWJvbGljCisgICAgIHN1Ymdyb3VwIGluZGV4ZWQgYnkgYGBwYXJhYm9s aWNgYCAod2l0aCBpbmRpY2VzIGBcezAsIFxsZG90cywgblx9YCkuCitAQCAtNTA0LDcgKzUwNCw3 IEBAIGNwZGVmIFBlcm11dGF0aW9uR3JvdXBFbGVtZW50IHJlZHVjZV9pbl9jb3NldChQZXJtdXRh dGlvbkdyb3VwRWxlbWVudCB3LCB0dXBsZSBTCisgICAgICAgICAgICAgdyA9IF9uZXdfbXVsXyh3 LCBzaSkKKyAKKyBjZGVmIGxpc3QgcmVkdWNlZF9jb3NldF9yZXByZXNlbnRhdGl2ZXMoVywgbGlz dCBwYXJhYm9saWNfYmlnLCBsaXN0IHBhcmFib2xpY19zbWFsbCwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYmludCByaWdodCkgbm9leGNlcHQ6CisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbnQgcmlnaHQpOgorICAgICBjZGVmIHR1 cGxlIFMgPSB0dXBsZShXLnNpbXBsZV9yZWZsZWN0aW9ucygpKQorICAgICBjZGVmIGludCBOID0g Vy5udW1iZXJfb2ZfcmVmbGVjdGlvbnMoKQorICAgICBjZGVmIHNldCB0b3Rlc3QgPSBzZXQoW1cu b25lKCldKQorQEAgLTUyMSw3ICs1MjEsNyBAQCBjZGVmIGxpc3QgcmVkdWNlZF9jb3NldF9yZXBy ZXNlbnRhdGl2ZXMoVywgbGlzdCBwYXJhYm9saWNfYmlnLCBsaXN0IHBhcmFib2xpY19zbQorICAg ICAgICAgdG90ZXN0ID0gbmV3LmRpZmZlcmVuY2UocmVzKSAgIyBbdyBmb3IgdyBpbiBuZXcgaWYg dyBub3QgaW4gcmVzXQorICAgICByZXR1cm4gbGlzdChyZXMpCisgCistY2RlZiBwYXJhYm9saWNf cmVjdXJzaXZlKFBlcm11dGF0aW9uR3JvdXBFbGVtZW50IHgsIGxpc3QgdiwgZikgbm9leGNlcHQ6 CisrY2RlZiBwYXJhYm9saWNfcmVjdXJzaXZlKFBlcm11dGF0aW9uR3JvdXBFbGVtZW50IHgsIGxp c3QgdiwgZik6CisgICAgIGlmIG5vdCB2OgorICAgICAgICAgZih4KQorICAgICBlbHNlOgorQEAg LTU2Miw3ICs1NjIsNyBAQCBkZWYgcGFyYWJvbGljX2l0ZXJhdGlvbl9hcHBsaWNhdGlvbihXLCBm KToKKyAgICAgcGFyYWJvbGljX3JlY3Vyc2l2ZShXLm9uZSgpLCBjb3NldF9yZXBzLCBmKQorIAor IAorLWNwZGVmIGxpc3QgcmVkdWNlZF93b3JkX2MoVywgUGVybXV0YXRpb25Hcm91cEVsZW1lbnQg dykgbm9leGNlcHQ6CisrY3BkZWYgbGlzdCByZWR1Y2VkX3dvcmRfYyhXLCBQZXJtdXRhdGlvbkdy b3VwRWxlbWVudCB3KToKKyAgICAgciIiIgorICAgICBDb21wdXRlcyBhIHJlZHVjZWQgd29yZCBm b3IgdGhlIGVsZW1lbnQgYGB3YGAgaW4gdGhlCisgICAgIHJlZmxlY3Rpb24gZ3JvdXAgYGBXYGAg aW4gdGhlIHBvc2l0aW9ucyBgYHJhbmdlKG4pYGAuCitAQCAtNTg4LDcgKzU4OCw3IEBAIGNwZGVm IGxpc3QgcmVkdWNlZF93b3JkX2MoVywgUGVybXV0YXRpb25Hcm91cEVsZW1lbnQgdykgbm9leGNl cHQ6CisgICAgICAgICB3b3JkLmFwcGVuZChmZGVzKQorICAgICByZXR1cm4gd29yZAorIAorLWNk ZWYgUGVybXV0YXRpb25Hcm91cEVsZW1lbnQgX25ld19tdWxfKFBlcm11dGF0aW9uR3JvdXBFbGVt ZW50IGxlZnQsIFBlcm11dGF0aW9uR3JvdXBFbGVtZW50IHJpZ2h0KSBub2V4Y2VwdDoKKytjZGVm IFBlcm11dGF0aW9uR3JvdXBFbGVtZW50IF9uZXdfbXVsXyhQZXJtdXRhdGlvbkdyb3VwRWxlbWVu dCBsZWZ0LCBQZXJtdXRhdGlvbkdyb3VwRWxlbWVudCByaWdodCk6CisgICAgICIiIgorICAgICBN dWx0aXBseSB0d28gOmNsYXNzOmBQZXJtdXRhdGlvbkdyb3VwRWxlbWVudGAgZGlyZWN0bHkgd2l0 aG91dCB0aGUKKyAgICAgY29lcmNpb24gZnJhbWV3b3JrLgorZGlmZiAtLWdpdCBhL3NyYy9zYWdl L2NvbWJpbmF0L3Jvb3Rfc3lzdGVtL3JlZmxlY3Rpb25fZ3JvdXBfZWxlbWVudC5weGQgYi9zcmMv c2FnZS9jb21iaW5hdC9yb290X3N5c3RlbS9yZWZsZWN0aW9uX2dyb3VwX2VsZW1lbnQucHhkCitp bmRleCAxOTQ2ODhlMjViNi4uMjE4ZGQ2YzI1NzUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9jb21i aW5hdC9yb290X3N5c3RlbS9yZWZsZWN0aW9uX2dyb3VwX2VsZW1lbnQucHhkCisrKysgYi9zcmMv c2FnZS9jb21iaW5hdC9yb290X3N5c3RlbS9yZWZsZWN0aW9uX2dyb3VwX2VsZW1lbnQucHhkCitA QCAtMSwxMSArMSwxMSBAQAorIGZyb20gc2FnZS5ncm91cHMucGVybV9ncHMucGVybWdyb3VwX2Vs ZW1lbnQgY2ltcG9ydCBQZXJtdXRhdGlvbkdyb3VwRWxlbWVudAorIAorIGNkZWYgY2xhc3MgQ29t cGxleFJlZmxlY3Rpb25Hcm91cEVsZW1lbnQoUGVybXV0YXRpb25Hcm91cEVsZW1lbnQpOgorLSAg ICBjcGRlZiBhY3Rpb24oc2VsZiwgdmVjLCBvbl9zcGFjZT0qKSBub2V4Y2VwdAorLSAgICBjcGRl ZiBhY3Rpb25fb25fcm9vdF9pbmRpY2VzKHNlbGYsIGkpIG5vZXhjZXB0CisrICAgIGNwZGVmIGFj dGlvbihzZWxmLCB2ZWMsIG9uX3NwYWNlPSopCisrICAgIGNwZGVmIGFjdGlvbl9vbl9yb290X2lu ZGljZXMoc2VsZiwgaSkKKyAKKyBjZGVmIGNsYXNzIFJlYWxSZWZsZWN0aW9uR3JvdXBFbGVtZW50 KENvbXBsZXhSZWZsZWN0aW9uR3JvdXBFbGVtZW50KToKKyAgICAgY3BkZWYgYmludCBoYXNfbGVm dF9kZXNjZW50KHNlbGYsIGkpIG5vZXhjZXB0CisgICAgIGNwZGVmIGJpbnQgaGFzX2Rlc2NlbnQo c2VsZiwgaSwgc2lkZT0qLCBwb3NpdGl2ZT0qKSBub2V4Y2VwdAorLSAgICBjcGRlZiBhY3Rpb24o c2VsZiwgdmVjLCBzaWRlPSosIG9uX3NwYWNlPSopIG5vZXhjZXB0CistICAgIGNwZGVmIGFjdGlv bl9vbl9yb290X2luZGljZXMoc2VsZiwgaSwgc2lkZT0qKSBub2V4Y2VwdAorKyAgICBjcGRlZiBh Y3Rpb24oc2VsZiwgdmVjLCBzaWRlPSosIG9uX3NwYWNlPSopCisrICAgIGNwZGVmIGFjdGlvbl9v bl9yb290X2luZGljZXMoc2VsZiwgaSwgc2lkZT0qKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2Nv bWJpbmF0L3Jvb3Rfc3lzdGVtL3JlZmxlY3Rpb25fZ3JvdXBfZWxlbWVudC5weXggYi9zcmMvc2Fn ZS9jb21iaW5hdC9yb290X3N5c3RlbS9yZWZsZWN0aW9uX2dyb3VwX2VsZW1lbnQucHl4CitpbmRl eCA2ODBlNDBmMTZjZC4uM2Q4MWE4NGZmNGIgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9jb21iaW5h dC9yb290X3N5c3RlbS9yZWZsZWN0aW9uX2dyb3VwX2VsZW1lbnQucHl4CisrKysgYi9zcmMvc2Fn ZS9jb21iaW5hdC9yb290X3N5c3RlbS9yZWZsZWN0aW9uX2dyb3VwX2VsZW1lbnQucHl4CitAQCAt MzQ4LDcgKzM0OCw3IEBAIGNkZWYgY2xhc3MgQ29tcGxleFJlZmxlY3Rpb25Hcm91cEVsZW1lbnQo UGVybXV0YXRpb25Hcm91cEVsZW1lbnQpOgorICAgICAgICAgbWF0LnNldF9pbW11dGFibGUoKQor ICAgICAgICAgcmV0dXJuIG1hdAorIAorLSAgICBjcGRlZiBhY3Rpb24oc2VsZiwgdmVjLCBvbl9z cGFjZT0icHJpbWFsIikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGFjdGlvbihzZWxmLCB2ZWMsIG9u X3NwYWNlPSJwcmltYWwiKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgaW1h Z2Ugb2YgYGB2ZWNgYCB1bmRlciB0aGUgYWN0aW9uIG9mIGBgc2VsZmBgLgorIAorQEAgLTM3Myw3 ICszNzMsNyBAQCBjZGVmIGNsYXNzIENvbXBsZXhSZWZsZWN0aW9uR3JvdXBFbGVtZW50KFBlcm11 dGF0aW9uR3JvdXBFbGVtZW50KToKKyAgICAgICAgIG1hdCA9IHNlbGYubWF0cml4KG9uX3NwYWNl PW9uX3NwYWNlKQorICAgICAgICAgcmV0dXJuIHZlYyAqIG1hdAorIAorLSAgICBjcGRlZiBfYWN0 X29uXyhzZWxmLCB2ZWMsIGJpbnQgc2VsZl9vbl9sZWZ0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X2FjdF9vbl8oc2VsZiwgdmVjLCBiaW50IHNlbGZfb25fbGVmdCk6CisgICAgICAgICByIiIiCisg ICAgICAgICBEZWZpbmVzIHRoZSBhY3Rpb24gb2YgYGBzZWxmYGAgYXMgYSBsaW5lYXIgdHJhbnNm b3JtYXRpb24KKyAgICAgICAgIG9uIHRoZSB2ZWN0b3Igc3BhY2UsIGluIHRoZSBiYXNpcyBnaXZl biBieSB0aGUgc2ltcGxlCitAQCAtMzk3LDcgKzM5Nyw3IEBAIGNkZWYgY2xhc3MgQ29tcGxleFJl ZmxlY3Rpb25Hcm91cEVsZW1lbnQoUGVybXV0YXRpb25Hcm91cEVsZW1lbnQpOgorICAgICAgICAg ICAgIHJldHVybiAofnNlbGYpLmFjdGlvbih2ZWMpCisgICAgICAgICByZXR1cm4gc2VsZi5hY3Rp b24odmVjKQorIAorLSAgICBjcGRlZiBhY3Rpb25fb25fcm9vdF9pbmRpY2VzKHNlbGYsIGkpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBhY3Rpb25fb25fcm9vdF9pbmRpY2VzKHNlbGYsIGkpOgorICAg ICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHJpZ2h0IGFjdGlvbiBvbiB0aGUgc2V0IG9m IHJvb3RzLgorIAorQEAgLTk1OSw3ICs5NTksNyBAQCBjZGVmIGNsYXNzIFJlYWxSZWZsZWN0aW9u R3JvdXBFbGVtZW50KENvbXBsZXhSZWZsZWN0aW9uR3JvdXBFbGVtZW50KToKKyAKKyAgICAgbWF0 cml4ID0gdG9fbWF0cml4CisgCistICAgIGNwZGVmIGFjdGlvbihzZWxmLCB2ZWMsIHNpZGU9InJp Z2h0Iiwgb25fc3BhY2U9InByaW1hbCIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBhY3Rpb24oc2Vs ZiwgdmVjLCBzaWRlPSJyaWdodCIsIG9uX3NwYWNlPSJwcmltYWwiKToKKyAgICAgICAgIHIiIiIK KyAgICAgICAgIFJldHVybiB0aGUgaW1hZ2Ugb2YgYGB2ZWNgYCB1bmRlciB0aGUgYWN0aW9uIG9m IGBgc2VsZmBgLgorIAorQEAgLTEwMjIsNyArMTAyMiw3IEBAIGNkZWYgY2xhc3MgUmVhbFJlZmxl Y3Rpb25Hcm91cEVsZW1lbnQoQ29tcGxleFJlZmxlY3Rpb25Hcm91cEVsZW1lbnQpOgorICAgICAg ICAgZWxzZToKKyAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdvbl9zcGFjZSBtdXN0IGJl ICJwcmltYWwiIG9yICJkdWFsIicpCisgCistICAgIGNwZGVmIF9hY3Rfb25fKHNlbGYsIHZlYywg YmludCBzZWxmX29uX2xlZnQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWN0X29uXyhzZWxmLCB2 ZWMsIGJpbnQgc2VsZl9vbl9sZWZ0KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIEdpdmUgdGhl IGFjdGlvbiBvZiBgYHNlbGZgYCBhcyBhIGxpbmVhciB0cmFuc2Zvcm1hdGlvbiBvbgorICAgICAg ICAgdGhlIHZlY3RvciBzcGFjZSwgaW4gdGhlIGJhc2lzIGdpdmVuIGJ5IHRoZSBzaW1wbGUgcm9v dHMuCitAQCAtMTA1NCw3ICsxMDU0LDcgQEAgY2RlZiBjbGFzcyBSZWFsUmVmbGVjdGlvbkdyb3Vw RWxlbWVudChDb21wbGV4UmVmbGVjdGlvbkdyb3VwRWxlbWVudCk6CisgICAgICAgICAgICAgcmV0 dXJuIHNlbGYuYWN0aW9uKHZlYywgc2lkZT0ibGVmdCIpCisgICAgICAgICByZXR1cm4gc2VsZi5h Y3Rpb24odmVjLCBzaWRlPSJyaWdodCIpCisgCistICAgIGNwZGVmIGFjdGlvbl9vbl9yb290X2lu ZGljZXMoc2VsZiwgaSwgc2lkZT0icmlnaHQiKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgYWN0aW9u X29uX3Jvb3RfaW5kaWNlcyhzZWxmLCBpLCBzaWRlPSJyaWdodCIpOgorICAgICAgICAgIiIiCisg ICAgICAgICBSZXR1cm4gdGhlIGFjdGlvbiBvbiB0aGUgc2V0IG9mIHJvb3RzLgorIAorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL2NvbWJpbmF0L3NldF9wYXJ0aXRpb25faXRlcmF0b3IucHl4IGIvc3Jj L3NhZ2UvY29tYmluYXQvc2V0X3BhcnRpdGlvbl9pdGVyYXRvci5weXgKK2luZGV4IDdjOWJjMGVh YWY1Li5mZjdkMmU3YzZjMyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2NvbWJpbmF0L3NldF9wYXJ0 aXRpb25faXRlcmF0b3IucHl4CisrKysgYi9zcmMvc2FnZS9jb21iaW5hdC9zZXRfcGFydGl0aW9u X2l0ZXJhdG9yLnB5eAorQEAgLTcsNyArNyw3IEBAIGNpbXBvcnQgY3l0aG9uCisgCisgQGN5dGhv bi53cmFwYXJvdW5kKEZhbHNlKQorIEBjeXRob24uYm91bmRzY2hlY2soRmFsc2UpCistY2RlZiBs aXN0IGZyb21fd29yZChsaXN0IHcsIGxpc3QgYmFzZV9zZXQpIG5vZXhjZXB0OgorK2NkZWYgbGlz dCBmcm9tX3dvcmQobGlzdCB3LCBsaXN0IGJhc2Vfc2V0KToKKyAgICAgY2RlZiBsaXN0IHNwID0g W10KKyAgICAgY2RlZiBQeV9zc2l6ZV90IGkKKyAgICAgY2RlZiBQeV9zc2l6ZV90IGIKK2RpZmYg LS1naXQgYS9zcmMvc2FnZS9jb21iaW5hdC9zdWJ3b3JkX2NvbXBsZXhfYy5weXggYi9zcmMvc2Fn ZS9jb21iaW5hdC9zdWJ3b3JkX2NvbXBsZXhfYy5weXgKK2luZGV4IDMxYTk4NWY4Njc1Li41YjE1 NWVmZGE3NSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2NvbWJpbmF0L3N1YndvcmRfY29tcGxleF9j LnB5eAorKysrIGIvc3JjL3NhZ2UvY29tYmluYXQvc3Vid29yZF9jb21wbGV4X2MucHl4CitAQCAt NjMsNyArNjMsNyBAQCBjcGRlZiBpbnQgX2ZsaXBfYyhXLCBzZXQgcG9zaXRpb25zLCBsaXN0IGV4 dGVuZGVkX3Jvb3RfY29uZl9pbmRpY2VzLAorICAgICByZXR1cm4gagorIAorIAorLWNwZGVmIGxp c3QgX2NvbnN0cnVjdF9mYWNldHNfYyh0dXBsZSBRLCB3LCBpbnQgbj0tMSwgaW50IHBvcz0wLCBp bnQgbD0tMSkgbm9leGNlcHQ6CisrY3BkZWYgbGlzdCBfY29uc3RydWN0X2ZhY2V0c19jKHR1cGxl IFEsIHcsIGludCBuPS0xLCBpbnQgcG9zPTAsIGludCBsPS0xKToKKyAgICAgciIiIgorICAgICBS ZXR1cm4gdGhlIGxpc3Qgb2YgZmFjZXRzIG9mIHRoZSBzdWJ3b3JkIGNvbXBsZXggYXNzb2NpYXRl ZCB0byB0aGUKKyAgICAgd29yZCBgUWAgYW5kIHRoZSBlbGVtZW50IGB3YCBpbiBhIENveGV0ZXIg Z3JvdXAgYFdgLgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2NvbWJpbmF0L3dvcmRzL3dvcmRfY2hh ci5weXggYi9zcmMvc2FnZS9jb21iaW5hdC93b3Jkcy93b3JkX2NoYXIucHl4CitpbmRleCBiMzRi YmFkN2MxOS4uMDY5ZjE3ZmJjYmMgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9jb21iaW5hdC93b3Jk cy93b3JkX2NoYXIucHl4CisrKysgYi9zcmMvc2FnZS9jb21iaW5hdC93b3Jkcy93b3JkX2NoYXIu cHl4CitAQCAtMTAwLDcgKzEwMCw3IEBAIGNkZWYgY2xhc3MgV29yZERhdGF0eXBlX2NoYXIoV29y ZERhdGF0eXBlKToKKyAKKyAgICAgQGN5dGhvbi5ib3VuZHNjaGVjayhGYWxzZSkgICMgYXNzdW1l IHRoYXQgaW5kZXhpbmcgd2lsbCBub3QgY2F1c2UgYW55IEluZGV4RXJyb3JzCisgICAgIEBjeXRo b24ud3JhcGFyb3VuZChGYWxzZSkgICMgbm90IGNoZWNrIG5vdCBjb3JyZWN0bHkgaGFuZGxlIG5l Z2F0aXZlIGluZGljZXMKKy0gICAgY2RlZiBfc2V0X2RhdGEoc2VsZiwgZGF0YSkgbm9leGNlcHQ6 CisrICAgIGNkZWYgX3NldF9kYXRhKHNlbGYsIGRhdGEpOgorICAgICAgICAgciIiIgorICAgICAg ICAgc2V0IHRoZSBhdHRyaWJ1dGUgLl9kYXRhIGFuZCAuX2xlbmd0aCBmcm9tIHRoZSBzZXF1ZW5j ZSBkYXRhCisgICAgICAgICAodXN1YWxseSBkYXRhIGlzIGEgd29yZCwgYSB0dXBsZSBvciBhIGxp c3QpCitAQCAtMjA5LDcgKzIwOSw3IEBAIGNkZWYgY2xhc3MgV29yZERhdGF0eXBlX2NoYXIoV29y ZERhdGF0eXBlKToKKyAgICAgICAgIGJpdHNldF9mcmVlKHNlZW4pCisgICAgICAgICByZXR1cm4g cmVzCisgCistICAgIGNkZWYgX25ld19jKHNlbGYsIHVuc2lnbmVkIGNoYXIgKiBkYXRhLCBzaXpl X3QgbGVuZ3RoLCBXb3JkRGF0YXR5cGVfY2hhciBtYXN0ZXIpIG5vZXhjZXB0OgorKyAgICBjZGVm IF9uZXdfYyhzZWxmLCB1bnNpZ25lZCBjaGFyICogZGF0YSwgc2l6ZV90IGxlbmd0aCwgV29yZERh dGF0eXBlX2NoYXIgbWFzdGVyKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFRPIERJU0NVU1M6 IGluIEludGVnZXIgKHNhZ2UucmluZ3MuaW50ZWdlcikgdGhpcyBtZXRob2QgaXMgYWN0dWFsbHkg YW4KKyAgICAgICAgIGV4dGVybmFsIGZ1bmN0aW9uLiBCdXQgd2UgbWlnaHQgd2FudCB0byBoYXZl IHNldmVyYWwgcG9zc2libGUgaW5oZXJpdGFuY2UuCitAQCAtNDI1LDcgKzQyNSw3IEBAIGNkZWYg Y2xhc3MgV29yZERhdGF0eXBlX2NoYXIoV29yZERhdGF0eXBlKToKKyAgICAgICAgICIiIgorICAg ICAgICAgcmV0dXJuIHJldmVyc2VkX3dvcmRfaXRlcmF0b3Ioc2VsZikKKyAKKy0gICAgY2RlZiBf Y29uY2F0ZW5hdGUoc2VsZiwgV29yZERhdGF0eXBlX2NoYXIgb3RoZXIpIG5vZXhjZXB0OgorKyAg ICBjZGVmIF9jb25jYXRlbmF0ZShzZWxmLCBXb3JkRGF0YXR5cGVfY2hhciBvdGhlcik6CisgICAg ICAgICBjZGVmIHVuc2lnbmVkIGNoYXIgKiBkYXRhCisgICAgICAgICBkYXRhID0gPHVuc2lnbmVk IGNoYXIgKj5jaGVja19hbGxvY2FycmF5KHNlbGYuX2xlbmd0aCArIG90aGVyLl9sZW5ndGgsIHNp emVvZih1bnNpZ25lZCBjaGFyKSkKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9jb21iaW5hdC93 b3Jkcy93b3JkX2RhdGF0eXBlcy5weXggYi9zcmMvc2FnZS9jb21iaW5hdC93b3Jkcy93b3JkX2Rh dGF0eXBlcy5weXgKK2luZGV4IDlhYjg4ZDc5OWJhLi42MjEzMmM2NDAzMiAxMDA2NDQKKy0tLSBh L3NyYy9zYWdlL2NvbWJpbmF0L3dvcmRzL3dvcmRfZGF0YXR5cGVzLnB5eAorKysrIGIvc3JjL3Nh Z2UvY29tYmluYXQvd29yZHMvd29yZF9kYXRhdHlwZXMucHl4CitAQCAtNDE5LDcgKzQxOSw3IEBA IGNkZWYgY2xhc3MgV29yZERhdGF0eXBlX3N0cihXb3JkRGF0YXR5cGUpOgorICAgICAgICAgZWxz ZToKKyAgICAgICAgICAgICByZXR1cm4gYSBpbiBzZWxmLl9kYXRhCisgCistICAgIGNwZGVmIF9o YXNfZmFjdG9yX25haXZlKHNlbGYsIHcpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfaGFzX2ZhY3Rv cl9uYWl2ZShzZWxmLCB3KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIEEgbmFpdmUgdGVzdCBm b3IgdGVzdGluZyB3aGV0aGVyIHRoZSB3b3JkIGNvbnRhaW5zIGBgd2BgIGFzIGEgZmFjdG9yLgor IAorQEAgLTQ0OSw3ICs0NDksNyBAQCBjZGVmIGNsYXNzIFdvcmREYXRhdHlwZV9zdHIoV29yZERh dGF0eXBlKToKKyAgICAgICAgICAgICByZXR1cm4gdyBpbiBzZWxmLl9kYXRhCisgICAgICAgICBy YWlzZSBWYWx1ZUVycm9yCisgCistICAgIGNwZGVmIGZpbmQoc2VsZiwgc3ViLCBzdGFydD0wLCBl bmQ9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGZpbmQoc2VsZiwgc3ViLCBzdGFydD0wLCBl bmQ9Tm9uZSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm5zIHRoZSBpbmRleCBvZiB0 aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiBzdWIgaW4gc2VsZiwKKyAgICAgICAgIHN1Y2ggdGhhdCBz dWIgaXMgY29udGFpbmVkIHdpdGhpbiBzZWxmW3N0YXJ0OmVuZF0uCitkaWZmIC0tZ2l0IGEvc3Jj L3NhZ2UvY3B5dGhvbi9nZXRhdHRyLnB4ZCBiL3NyYy9zYWdlL2NweXRob24vZ2V0YXR0ci5weGQK K2luZGV4IDI5OTUwOWEwMGRjLi5lMDk4N2NmYTRjNSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2Nw eXRob24vZ2V0YXR0ci5weGQKKysrKyBiL3NyYy9zYWdlL2NweXRob24vZ2V0YXR0ci5weGQKK0BA IC01LDQgKzUsNCBAQCBjZGVmIGNsYXNzIEF0dHJpYnV0ZUVycm9yTWVzc2FnZToKKyAgICAgY2Rl ZiBwdWJsaWMgY2xzCisgICAgIGNkZWYgcHVibGljIG5hbWUKKyAKKy1jcGRlZiBnZXRhdHRyX2Zy b21fb3RoZXJfY2xhc3Moc2VsZiwgY2xzLCBuYW1lKSBub2V4Y2VwdAorK2NwZGVmIGdldGF0dHJf ZnJvbV9vdGhlcl9jbGFzcyhzZWxmLCBjbHMsIG5hbWUpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uv Y3B5dGhvbi9nZXRhdHRyLnB5eCBiL3NyYy9zYWdlL2NweXRob24vZ2V0YXR0ci5weXgKK2luZGV4 IDVkZjI4ODBkODM1Li5kOGE1Nzk1YzBjNCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2NweXRob24v Z2V0YXR0ci5weXgKKysrKyBiL3NyYy9zYWdlL2NweXRob24vZ2V0YXR0ci5weXgKK0BAIC0xMTEs NyArMTExLDcgQEAgY2RlZiBjbGFzcyBBdHRyaWJ1dGVFcnJvck1lc3NhZ2U6CisgY2RlZiBBdHRy aWJ1dGVFcnJvck1lc3NhZ2UgZHVtbXlfZXJyb3JfbWVzc2FnZSA9IEF0dHJpYnV0ZUVycm9yTWVz c2FnZSgpCisgCisgCistY3BkZWYgcmF3X2dldGF0dHIob2JqLCBuYW1lKSBub2V4Y2VwdDoKKytj cGRlZiByYXdfZ2V0YXR0cihvYmosIG5hbWUpOgorICAgICAiIiIKKyAgICAgTGlrZSBgYGdldGF0 dHIob2JqLCBuYW1lKWBgIGJ1dCB3aXRob3V0IGludm9raW5nIHRoZSBiaW5kaW5nCisgICAgIGJl aGF2aW9yIG9mIGRlc2NyaXB0b3JzIHVuZGVyIG5vcm1hbCBhdHRyaWJ1dGUgYWNjZXNzLgorQEAg LTIyNyw3ICsyMjcsNyBAQCBjcGRlZiByYXdfZ2V0YXR0cihvYmosIG5hbWUpIG5vZXhjZXB0Ogor ICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcihkdW1teV9lcnJvcl9tZXNzYWdlKQorIAorIAorLWNw ZGVmIGdldGF0dHJfZnJvbV9vdGhlcl9jbGFzcyhzZWxmLCBjbHMsIG5hbWUpIG5vZXhjZXB0Ogor K2NwZGVmIGdldGF0dHJfZnJvbV9vdGhlcl9jbGFzcyhzZWxmLCBjbHMsIG5hbWUpOgorICAgICAi IiIKKyAgICAgRW11bGF0ZSBgYGdldGF0dHIoc2VsZiwgbmFtZSlgYCwgYXMgaWYgYGBzZWxmYGAg d2FzIGFuIGluc3RhbmNlIG9mCisgICAgIGBgY2xzYGAuCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uv Y3B5dGhvbi9zdHJpbmcucHhkIGIvc3JjL3NhZ2UvY3B5dGhvbi9zdHJpbmcucHhkCitpbmRleCBk YmYxYzkxYzA4Yi4uMWZkZTBhZWMwZGUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9jcHl0aG9uL3N0 cmluZy5weGQKKysrKyBiL3NyYy9zYWdlL2NweXRob24vc3RyaW5nLnB4ZAorQEAgLTEzLDcgKzEz LDcgQEAgY2RlZiBleHRlcm4gZnJvbSAic3RyaW5nX2ltcGwuaCI6CisgICAgIGJ5dGVzIF9zdHJf dG9fYnl0ZXMocywgZW5jb2RpbmcsIGVycm9ycykKKyAKKyAKKy1jZGVmIGlubGluZSBzdHIgY2hh cl90b19zdHIoY29uc3QgY2hhciogYywgZW5jb2Rpbmc9Tm9uZSwgZXJyb3JzPU5vbmUpIG5vZXhj ZXB0OgorK2NkZWYgaW5saW5lIHN0ciBjaGFyX3RvX3N0cihjb25zdCBjaGFyKiBjLCBlbmNvZGlu Zz1Ob25lLCBlcnJvcnM9Tm9uZSk6CisgICAgIHIiIiIKKyAgICAgQ29udmVydCBhIEMgc3RyaW5n IHRvIGEgUHl0aG9uIGBgc3RyYGAuCisgICAgICIiIgorQEAgLTIzLDcgKzIzLDcgQEAgY2RlZiBp bmxpbmUgc3RyIGNoYXJfdG9fc3RyKGNvbnN0IGNoYXIqIGMsIGVuY29kaW5nPU5vbmUsIGVycm9y cz1Ob25lKSBub2V4Y2VwdDoKKyAgICAgcmV0dXJuIF9jc3RyX3RvX3N0cihjLCBlbmNvZGluZywg ZXJyb3JzKQorIAorIAorLWNwZGVmIGlubGluZSBzdHIgYnl0ZXNfdG9fc3RyKGIsIGVuY29kaW5n PU5vbmUsIGVycm9ycz1Ob25lKSBub2V4Y2VwdDoKKytjcGRlZiBpbmxpbmUgc3RyIGJ5dGVzX3Rv X3N0cihiLCBlbmNvZGluZz1Ob25lLCBlcnJvcnM9Tm9uZSk6CisgICAgIHIiIiIKKyAgICAgQ29u dmVydCBgYGJ5dGVzYGAgdG8gYGBzdHJgYC4KKyAKK0BAIC00OSw3ICs0OSw3IEBAIGNwZGVmIGlu bGluZSBzdHIgYnl0ZXNfdG9fc3RyKGIsIGVuY29kaW5nPU5vbmUsIGVycm9ycz1Ob25lKSBub2V4 Y2VwdDoKKyAgICAgcmV0dXJuIF9jc3RyX3RvX3N0cig8Ynl0ZXM+YiwgZW5jb2RpbmcsIGVycm9y cykKKyAKKyAKKy1jcGRlZiBpbmxpbmUgYnl0ZXMgc3RyX3RvX2J5dGVzKHMsIGVuY29kaW5nPU5v bmUsIGVycm9ycz1Ob25lKSBub2V4Y2VwdDoKKytjcGRlZiBpbmxpbmUgYnl0ZXMgc3RyX3RvX2J5 dGVzKHMsIGVuY29kaW5nPU5vbmUsIGVycm9ycz1Ob25lKToKKyAgICAgciIiIgorICAgICBDb252 ZXJ0IGBgc3RyYGAgb3IgYGB1bmljb2RlYGAgdG8gYGBieXRlc2BgLgorIAorZGlmZiAtLWdpdCBh L3NyYy9zYWdlL2NweXRob24vd3JhcHBlcmRlc2NyLnB4ZCBiL3NyYy9zYWdlL2NweXRob24vd3Jh cHBlcmRlc2NyLnB4ZAoraW5kZXggMjI2MGMwNjJmMWYuLmI2Nzc1ODYwNzEwIDEwMDY0NAorLS0t IGEvc3JjL3NhZ2UvY3B5dGhvbi93cmFwcGVyZGVzY3IucHhkCisrKysgYi9zcmMvc2FnZS9jcHl0 aG9uL3dyYXBwZXJkZXNjci5weGQKK0BAIC0yNCw3ICsyNCw3IEBAIGNkZWYgZXh0ZXJuIGZyb20g KjoKKyAgICAgUHlEZXNjcl9OZXdXcmFwcGVyKFB5VHlwZU9iamVjdCogY2xzLCB3cmFwcGVyYmFz ZSogd3JhcHBlciwgdm9pZCogd3JhcHBlZCkKKyAKKyAKKy1jZGVmIHdyYXBwZXJkZXNjcl9mYXN0 Y2FsbCh3cmFwcGVyX2Rlc2NyaXB0b3Igc2xvdHdyYXBwZXIsIHNlbGYsIGFyZ3MsIGt3ZHMpIG5v ZXhjZXB0CisrY2RlZiB3cmFwcGVyZGVzY3JfZmFzdGNhbGwod3JhcHBlcl9kZXNjcmlwdG9yIHNs b3R3cmFwcGVyLCBzZWxmLCBhcmdzLCBrd2RzKQorIAorIAorIGNkZWYgaW5saW5lIHdyYXBwZXJi YXNlKiBnZXRfc2xvdGRlZih3cmFwcGVyX2Rlc2NyaXB0b3Igc2xvdHdyYXBwZXIpIGV4Y2VwdCBO VUxMOgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2NweXRob24vd3JhcHBlcmRlc2NyLnB5eCBiL3Ny Yy9zYWdlL2NweXRob24vd3JhcHBlcmRlc2NyLnB5eAoraW5kZXggNTczOGE4N2FmNDYuLjc3NmU0 ZmU5NGE4IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvY3B5dGhvbi93cmFwcGVyZGVzY3IucHl4Cisr KysgYi9zcmMvc2FnZS9jcHl0aG9uL3dyYXBwZXJkZXNjci5weXgKK0BAIC04Nyw3ICs4Nyw3IEBA IGRlZiB3cmFwcGVyZGVzY3JfY2FsbChzbG90d3JhcHBlciwgc2VsZiwgKmFyZ3MsICoqa3dkcyk6 CisgICAgIHJldHVybiB3cmFwcGVyZGVzY3JfZmFzdGNhbGwoc2xvdHdyYXBwZXIsIHNlbGYsIGFy Z3MsIGt3ZHMpCisgCisgCistY2RlZiB3cmFwcGVyZGVzY3JfZmFzdGNhbGwod3JhcHBlcl9kZXNj cmlwdG9yIHNsb3R3cmFwcGVyLCBzZWxmLCBhcmdzLCBrd2RzKSBub2V4Y2VwdDoKKytjZGVmIHdy YXBwZXJkZXNjcl9mYXN0Y2FsbCh3cmFwcGVyX2Rlc2NyaXB0b3Igc2xvdHdyYXBwZXIsIHNlbGYs IGFyZ3MsIGt3ZHMpOgorICAgICAjIEN5dGhvbiBpbXBsZW1lbnRhdGlvbiBvZiB3cmFwcGVyZGVz Y3JfY2FsbAorICAgICBjZGVmIHdyYXBwZXJiYXNlKiBzbG90ZGVmID0gc2xvdHdyYXBwZXIuZF9i YXNlCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvY3J5cHRvL2Jvb2xlYW5fZnVuY3Rpb24ucHhk IGIvc3JjL3NhZ2UvY3J5cHRvL2Jvb2xlYW5fZnVuY3Rpb24ucHhkCitpbmRleCBkOWZkMTAxN2Zj ZC4uNTcwMzk0MzEyM2MgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9jcnlwdG8vYm9vbGVhbl9mdW5j dGlvbi5weGQKKysrKyBiL3NyYy9zYWdlL2NyeXB0by9ib29sZWFuX2Z1bmN0aW9uLnB4ZAorQEAg LTYsNCArNiw0IEBAIGNkZWYgaW5saW5lIHVuc2lnbmVkIGludCBoYW1taW5nX3dlaWdodCh1bnNp Z25lZCBpbnQgeCkgbm9leGNlcHQ6CisgICAgIHggKj0gMHgwMTAxMDEwMVVMCisgICAgIHJldHVy biB4Pj4yNAorIAorLWNkZWYgd2Fsc2hfaGFkYW1hcmQobG9uZyAqZiwgaW50IGxkbikgbm9leGNl cHQKKytjZGVmIHdhbHNoX2hhZGFtYXJkKGxvbmcgKmYsIGludCBsZG4pCitkaWZmIC0tZ2l0IGEv c3JjL3NhZ2UvY3J5cHRvL2Jvb2xlYW5fZnVuY3Rpb24ucHl4IGIvc3JjL3NhZ2UvY3J5cHRvL2Jv b2xlYW5fZnVuY3Rpb24ucHl4CitpbmRleCA2MTkwMTI5Mjc4Zi4uNzA4MzNjNjNkYzMgMTAwNjQ0 CistLS0gYS9zcmMvc2FnZS9jcnlwdG8vYm9vbGVhbl9mdW5jdGlvbi5weXgKKysrKyBiL3NyYy9z YWdlL2NyeXB0by9ib29sZWFuX2Z1bmN0aW9uLnB5eAorQEAgLTUxLDcgKzUxLDcgQEAgZXhjZXB0 IEltcG9ydEVycm9yOgorICMgd2Fsc2hfaGFkYW1hcmQgdHJhbnNmb3JtLCByZWVkX211bGxlciB0 cmFuc2Zvcm0sIGFuZCBhIGxvdAorICMgbW9yZSwgc2VlICdNYXR0ZXJzIGNvbXB1dGF0aW9uYWwn IGF2YWlsYWJsZSBvbiB3d3cuampqLmRlLgorIAorLWNkZWYgd2Fsc2hfaGFkYW1hcmQobG9uZyAq ZiwgaW50IGxkbikgbm9leGNlcHQ6CisrY2RlZiB3YWxzaF9oYWRhbWFyZChsb25nICpmLCBpbnQg bGRuKToKKyAgICAgciIiIgorICAgICBUaGUgV2Fsc2ggSGFkYW1hcmQgdHJhbnNmb3JtIGlzIGFu IG9ydGhvZ29uYWwgdHJhbnNmb3JtIGVxdWl2YWxlbnQKKyAgICAgdG8gYSBtdWx0aWRpbWVuc2lv bmFsIGRpc2NyZXRlIEZvdXJpZXIgdHJhbnNmb3JtIG9mIHNpemUgMngyeC4uLngyLgorQEAgLTEw OSw3ICsxMDksNyBAQCBjZGVmIGxvbmcgeWVsbG93X2NvZGUodW5zaWduZWQgbG9uZyBhKSBub2V4 Y2VwdDoKKyAgICAgICAgIG0gXj0gKG08PHMpCisgICAgIHJldHVybiByCisgCistY2RlZiByZWVk X211bGxlcihtcF9saW1iX3QqIGYsIGludCBsZG4pIG5vZXhjZXB0OgorK2NkZWYgcmVlZF9tdWxs ZXIobXBfbGltYl90KiBmLCBpbnQgbGRuKToKKyAgICAgciIiIgorICAgICBUaGUgUmVlZCBNdWxs ZXIgdHJhbnNmb3JtIChhbHNvIGtub3duIGFzIGJpbmFyeSBNw7ZiaXVzIHRyYW5zZm9ybSkKKyAg ICAgaXMgYW4gb3J0aG9nb25hbCB0cmFuc2Zvcm0uIEZvciBhIGZ1bmN0aW9uIGBmYCBkZWZpbmVk IGJ5CitAQCAtNjk1LDcgKzY5NSw3IEBAIGNkZWYgY2xhc3MgQm9vbGVhbkZ1bmN0aW9uKFNhZ2VP YmplY3QpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fd2Fsc2hfaGFkYW1h cmRfdHJhbnNmb3JtCisgCistICAgIGNwZGVmIHR1cGxlIHdhbHNoX2hhZGFtYXJkX3RyYW5zZm9y bShzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgdHVwbGUgd2Fsc2hfaGFkYW1hcmRfdHJhbnNm b3JtKHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgQ29tcHV0ZSB0aGUgV2Fsc2ggSGFk YW1hcmQgdHJhbnNmb3JtIGBXYCBvZiB0aGUgZnVuY3Rpb24gYGZgLgorIAorZGlmZiAtLWdpdCBh L3NyYy9zYWdlL2NyeXB0by9zYm94LnB5eCBiL3NyYy9zYWdlL2NyeXB0by9zYm94LnB5eAoraW5k ZXggMzZhMmM0YTRlNjYuLjMyMmY3Y2E1ZjQ1IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvY3J5cHRv L3Nib3gucHl4CisrKysgYi9zcmMvc2FnZS9jcnlwdG8vc2JveC5weXgKK0BAIC0yNjgsNyArMjY4 LDcgQEAgY2RlZiBjbGFzcyBTQm94KFNhZ2VPYmplY3QpOgorICAgICAgICAgIiIiCisgICAgICAg ICByZXR1cm4gbm90IHNlbGYuX19lcV9fKG90aGVyKQorIAorLSAgICBjcGRlZiBsaXN0IHRvX2Jp dHMoc2VsZiwgeCwgbj1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgbGlzdCB0b19iaXRzKHNl bGYsIHgsIG49Tm9uZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBiaXRzdHJpbmcg b2YgbGVuZ3RoIGBgbmBgIGZvciBpbnRlZ2VyIGBgeGBgLiBUaGUKKyAgICAgICAgIHJldHVybmVk IGJpdHN0cmluZyBpcyBndWFyYW50ZWVkIHRvIGhhdmUgbGVuZ3RoIGBgbmBgLgorQEAgLTMzMyw3 ICszMzMsNyBAQCBjZGVmIGNsYXNzIFNCb3goU2FnZU9iamVjdCk6CisgCisgICAgICAgICByZXR1 cm4gWlooc2VsZi5fcnBhZCh4LCBuKSwgMikKKyAKKy0gICAgY2RlZiBsaXN0IF9ycGFkKHNlbGYs IGxpc3QgeCwgUHlfc3NpemVfdCBuPS0xKSBub2V4Y2VwdDoKKysgICAgY2RlZiBsaXN0IF9ycGFk KHNlbGYsIGxpc3QgeCwgUHlfc3NpemVfdCBuPS0xKToKKyAgICAgICAgICIiIgorICAgICAgICAg UmlnaHQgcGFkcyBgYHhgYCBzdWNoIHRoYXQgYGBsZW4oeCkgPT0gbmBgLgorIAorQEAgLTE5Nzcs NyArMTk3Nyw3IEBAIGNkZWYgUHlfc3NpemVfdCBtaXN0eV9zdWJzdGl0dXRlKFB5X3NzaXplX3Qg eCwgUHlfc3NpemVfdCBpbnB1dF9zaXplLCBsaXN0IHNib3hlCisgY3R5cGVkZWYgUHlfc3NpemVf dCAoKl9TQk9YX0NPTlNUUikgKFB5X3NzaXplX3QsIFB5X3NzaXplX3QsIGxpc3QpIG5vZXhjZXB0 CisgCisgCistY2RlZiBzYm94X2NvbnN0cnVjdGlvbihfU0JPWF9DT05TVFIgY29uc3RydWN0aW9u LCBsaXN0IGFyZ3MpIG5vZXhjZXB0OgorK2NkZWYgc2JveF9jb25zdHJ1Y3Rpb24oX1NCT1hfQ09O U1RSIGNvbnN0cnVjdGlvbiwgbGlzdCBhcmdzKToKKyAgICAgIiIiCisgICAgIENvbnN0cnVjdCBh biBTYm94IGZyb20gdGhlIGdpdmVuIGlucHV0IHNib3hlcyB0aGF0IGhhcyBhIHR3aWNlCisgICAg IGFzIGJpZyBpbnB1dCBzaXplLgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2RhdGFfc3RydWN0dXJl cy9iaW5hcnlfbWF0cml4LnB4ZCBiL3NyYy9zYWdlL2RhdGFfc3RydWN0dXJlcy9iaW5hcnlfbWF0 cml4LnB4ZAoraW5kZXggODQ4NDg5ZTc2OTcuLmEyZWI4ZDcwOWJiIDEwMDY0NAorLS0tIGEvc3Jj L3NhZ2UvZGF0YV9zdHJ1Y3R1cmVzL2JpbmFyeV9tYXRyaXgucHhkCisrKysgYi9zcmMvc2FnZS9k YXRhX3N0cnVjdHVyZXMvYmluYXJ5X21hdHJpeC5weGQKK0BAIC0xMjYsNyArMTI2LDcgQEAgY2Rl ZiBpbmxpbmUgYmludCBiaW5hcnlfbWF0cml4X2dldChiaW5hcnlfbWF0cml4X3QgbSwgbXBfYml0 Y250X3Qgcm93LCBtcF9iaXRjbnQKKyAgICAgIiIiCisgICAgIHJldHVybiBiaXRzZXRfaW4obS5y b3dzW3Jvd10sIGNvbCkKKyAKKy1jZGVmIGlubGluZSBiaW5hcnlfbWF0cml4X3ByaW50KGJpbmFy eV9tYXRyaXhfdCBtKSBub2V4Y2VwdDoKKytjZGVmIGlubGluZSBiaW5hcnlfbWF0cml4X3ByaW50 KGJpbmFyeV9tYXRyaXhfdCBtKToKKyAgICAgciIiIgorICAgICBQcmludCB0aGUgYmluYXJ5IG1h dHJpeAorICAgICAiIiIKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9kYXRhX3N0cnVjdHVyZXMvYml0 c2V0LnB4ZCBiL3NyYy9zYWdlL2RhdGFfc3RydWN0dXJlcy9iaXRzZXQucHhkCitpbmRleCAwZDcy ZjdlYjZlZC4uMzUzNDNmYTI4YWUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9kYXRhX3N0cnVjdHVy ZXMvYml0c2V0LnB4ZAorKysrIGIvc3JjL3NhZ2UvZGF0YV9zdHJ1Y3R1cmVzL2JpdHNldC5weGQK K0BAIC0xMiwyOSArMTIsMjkgQEAgZnJvbSBzYWdlLmRhdGFfc3RydWN0dXJlcy5iaXRzZXRfYmFz ZSBjaW1wb3J0IGJpdHNldF90CisgIyBQeXRob24gbGF5ZXIgb3ZlciBiaXRzZXRfdAorIGNkZWYg Y2xhc3MgRnJvemVuQml0c2V0OgorICAgICBjZGVmIGJpdHNldF90IF9iaXRzZXQKKy0gICAgY2Rl ZiBGcm96ZW5CaXRzZXQgX25ldyhzZWxmLGxvbmcgaW50IGNhcGFjaXR5KSBub2V4Y2VwdAorLSAg ICBjcGRlZiBGcm96ZW5CaXRzZXQgX2xhcmdlcl9jYXBhY2l0eV8oc2VsZiwgbG9uZyBzaXplKSBu b2V4Y2VwdAorKyAgICBjZGVmIEZyb3plbkJpdHNldCBfbmV3KHNlbGYsbG9uZyBpbnQgY2FwYWNp dHkpCisrICAgIGNwZGVmIEZyb3plbkJpdHNldCBfbGFyZ2VyX2NhcGFjaXR5XyhzZWxmLCBsb25n IHNpemUpCisgICAgIGNwZGVmIGxvbmcgY2FwYWNpdHkoc2VsZikgbm9leGNlcHQKKyAgICAgY3Bk ZWYgYmludCBpc2VtcHR5KHNlbGYpIG5vZXhjZXB0CisgICAgIGNwZGVmIGJpbnQgaXNzdWJzZXQo c2VsZiwgRnJvemVuQml0c2V0IG90aGVyKSBleGNlcHQgLTEKKyAgICAgY3BkZWYgYmludCBpc3N1 cGVyc2V0KHNlbGYsIEZyb3plbkJpdHNldCBvdGhlcikgZXhjZXB0IC0xCisgICAgIGNwZGVmIGJp bnQgaXNkaXNqb2ludChzZWxmLCBGcm96ZW5CaXRzZXQgb3RoZXIpIGV4Y2VwdCAtMQorLSAgICBj cGRlZiBfdW5pb24oc2VsZiwgRnJvemVuQml0c2V0IG90aGVyKSBub2V4Y2VwdAorLSAgICBjcGRl ZiBpbnRlcnNlY3Rpb24oc2VsZiwgRnJvemVuQml0c2V0IG90aGVyKSBub2V4Y2VwdAorLSAgICBj cGRlZiBkaWZmZXJlbmNlKHNlbGYsIEZyb3plbkJpdHNldCBvdGhlcikgbm9leGNlcHQKKy0gICAg Y3BkZWYgc3ltbWV0cmljX2RpZmZlcmVuY2Uoc2VsZiwgRnJvemVuQml0c2V0IG90aGVyKSBub2V4 Y2VwdAorLSAgICBjcGRlZiBjb21wbGVtZW50KHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIF9f Y29weV9fKHNlbGYpIG5vZXhjZXB0CisrICAgIGNwZGVmIF91bmlvbihzZWxmLCBGcm96ZW5CaXRz ZXQgb3RoZXIpCisrICAgIGNwZGVmIGludGVyc2VjdGlvbihzZWxmLCBGcm96ZW5CaXRzZXQgb3Ro ZXIpCisrICAgIGNwZGVmIGRpZmZlcmVuY2Uoc2VsZiwgRnJvemVuQml0c2V0IG90aGVyKQorKyAg ICBjcGRlZiBzeW1tZXRyaWNfZGlmZmVyZW5jZShzZWxmLCBGcm96ZW5CaXRzZXQgb3RoZXIpCisr ICAgIGNwZGVmIGNvbXBsZW1lbnQoc2VsZikKKysgICAgY3BkZWYgX19jb3B5X18oc2VsZikKKyAK KyBjZGVmIGNsYXNzIEJpdHNldChGcm96ZW5CaXRzZXQpOgorLSAgICBjcGRlZiBfX2NvcHlfXyhz ZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiB1cGRhdGUoc2VsZiwgRnJvemVuQml0c2V0IG90aGVy KSBub2V4Y2VwdAorLSAgICBjcGRlZiBpbnRlcnNlY3Rpb25fdXBkYXRlKHNlbGYsIEZyb3plbkJp dHNldCBvdGhlcikgbm9leGNlcHQKKy0gICAgY3BkZWYgZGlmZmVyZW5jZV91cGRhdGUoc2VsZiwg RnJvemVuQml0c2V0IG90aGVyKSBub2V4Y2VwdAorLSAgICBjcGRlZiBzeW1tZXRyaWNfZGlmZmVy ZW5jZV91cGRhdGUoc2VsZiwgRnJvemVuQml0c2V0IG90aGVyKSBub2V4Y2VwdAorLSAgICBjcGRl ZiBhZGQoc2VsZiwgdW5zaWduZWQgbG9uZyBuKSBub2V4Y2VwdAorLSAgICBjcGRlZiByZW1vdmUo c2VsZiwgdW5zaWduZWQgbG9uZyBuKSBub2V4Y2VwdAorLSAgICBjcGRlZiBkaXNjYXJkKHNlbGYs IHVuc2lnbmVkIGxvbmcgbikgbm9leGNlcHQKKy0gICAgY3BkZWYgcG9wKHNlbGYpIG5vZXhjZXB0 CistICAgIGNwZGVmIGNsZWFyKHNlbGYpIG5vZXhjZXB0CisrICAgIGNwZGVmIF9fY29weV9fKHNl bGYpCisrICAgIGNwZGVmIHVwZGF0ZShzZWxmLCBGcm96ZW5CaXRzZXQgb3RoZXIpCisrICAgIGNw ZGVmIGludGVyc2VjdGlvbl91cGRhdGUoc2VsZiwgRnJvemVuQml0c2V0IG90aGVyKQorKyAgICBj cGRlZiBkaWZmZXJlbmNlX3VwZGF0ZShzZWxmLCBGcm96ZW5CaXRzZXQgb3RoZXIpCisrICAgIGNw ZGVmIHN5bW1ldHJpY19kaWZmZXJlbmNlX3VwZGF0ZShzZWxmLCBGcm96ZW5CaXRzZXQgb3RoZXIp CisrICAgIGNwZGVmIGFkZChzZWxmLCB1bnNpZ25lZCBsb25nIG4pCisrICAgIGNwZGVmIHJlbW92 ZShzZWxmLCB1bnNpZ25lZCBsb25nIG4pCisrICAgIGNwZGVmIGRpc2NhcmQoc2VsZiwgdW5zaWdu ZWQgbG9uZyBuKQorKyAgICBjcGRlZiBwb3Aoc2VsZikKKysgICAgY3BkZWYgY2xlYXIoc2VsZikK KyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9kYXRhX3N0cnVjdHVyZXMvYml0c2V0LnB5eCBiL3Ny Yy9zYWdlL2RhdGFfc3RydWN0dXJlcy9iaXRzZXQucHl4CitpbmRleCBlZTNlNjRhODEwNy4uOGE1 ZTkxYzBhOWEgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9kYXRhX3N0cnVjdHVyZXMvYml0c2V0LnB5 eAorKysrIGIvc3JjL3NhZ2UvZGF0YV9zdHJ1Y3R1cmVzL2JpdHNldC5weXgKK0BAIC00MDQsNyAr NDA0LDcgQEAgY2RlZiBjbGFzcyBGcm96ZW5CaXRzZXQ6CisgICAgICAgICAgICAgZm9yIG4gaW4g aXRlcjoKKyAgICAgICAgICAgICAgICAgYml0c2V0X2FkZChzZWxmLl9iaXRzZXQsIG4pCisgCist ICAgIGNkZWYgRnJvemVuQml0c2V0IF9uZXcoc2VsZiwgbG9uZyBpbnQgY2FwYWNpdHkpIG5vZXhj ZXB0OgorKyAgICBjZGVmIEZyb3plbkJpdHNldCBfbmV3KHNlbGYsIGxvbmcgaW50IGNhcGFjaXR5 KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBhbiBvYmplY3Qgb2YgdGhlIHNhbWUg dHlwZSBhcyBgYHNlbGZgYCwgaW5pdGlhbGl6ZWQgd2l0aCBhCisgICAgICAgICBiaXRzZXQgb2Yg Y2FwYWNpdHkgYGBjYXBhY2l0eWBgLgorQEAgLTQ3MSw3ICs0NzEsNyBAQCBjZGVmIGNsYXNzIEZy b3plbkJpdHNldDoKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHJldmVyc2VkKGJpdHNl dF9saXN0KHNlbGYuX2JpdHNldCkpCisgCistICAgIGNwZGVmIEZyb3plbkJpdHNldCBfbGFyZ2Vy X2NhcGFjaXR5XyhzZWxmLCBsb25nIGNhcGFjaXR5KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRnJv emVuQml0c2V0IF9sYXJnZXJfY2FwYWNpdHlfKHNlbGYsIGxvbmcgY2FwYWNpdHkpOgorICAgICAg ICAgIiIiCisgICAgICAgICBSZXR1cm4gYSBjb3B5IG9mIGBgc2VsZmBgIHdoZXJlIHRoZSBiaXRz ZXQgaGFzIHRoZSBtYXhpbXVtIG9mIHRoZQorICAgICAgICAgY3VycmVudCBjYXBhY2l0eSBhbmQg dGhlIGNhcGFjaXR5IHBhc3NlZC4gIElmIG5vIHJlc2l6aW5nIGlzIG5lZWRlZCwKK0BAIC04NzIs NyArODcyLDcgQEAgY2RlZiBjbGFzcyBGcm96ZW5CaXRzZXQ6CisgICAgICAgICAiIiIKKyAgICAg ICAgIHJldHVybiBzdHIoc2VsZikKKyAKKy0gICAgY3BkZWYgX3VuaW9uKHNlbGYsIEZyb3plbkJp dHNldCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF91bmlvbihzZWxmLCBGcm96ZW5CaXRz ZXQgb3RoZXIpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHVuaW9uIG9mIGBg c2VsZmBgIGFuZCBgYG90aGVyYGAuCisgCitAQCAtOTcxLDcgKzk3MSw3IEBAIGNkZWYgY2xhc3Mg RnJvemVuQml0c2V0OgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fdW5pb24o b3RoZXIpCisgCistICAgIGNwZGVmIGludGVyc2VjdGlvbihzZWxmLCBGcm96ZW5CaXRzZXQgb3Ro ZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBpbnRlcnNlY3Rpb24oc2VsZiwgRnJvemVuQml0c2V0 IG90aGVyKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBpbnRlcnNlY3Rpb24g b2YgYGBzZWxmYGAgYW5kIGBgb3RoZXJgYC4KKyAKK0BAIC0xMDQxLDcgKzEwNDEsNyBAQCBjZGVm IGNsYXNzIEZyb3plbkJpdHNldDoKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYu aW50ZXJzZWN0aW9uKG90aGVyKQorIAorLSAgICBjcGRlZiBkaWZmZXJlbmNlKHNlbGYsIEZyb3pl bkJpdHNldCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGRpZmZlcmVuY2Uoc2VsZiwgRnJv emVuQml0c2V0IG90aGVyKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBkaWZm ZXJlbmNlIG9mIGBgc2VsZmBgIGFuZCBgYG90aGVyYGAuCisgCitAQCAtMTExMCw3ICsxMTEwLDcg QEAgY2RlZiBjbGFzcyBGcm96ZW5CaXRzZXQ6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVy biBzZWxmLmRpZmZlcmVuY2Uob3RoZXIpCisgCistICAgIGNwZGVmIHN5bW1ldHJpY19kaWZmZXJl bmNlKHNlbGYsIEZyb3plbkJpdHNldCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIHN5bW1l dHJpY19kaWZmZXJlbmNlKHNlbGYsIEZyb3plbkJpdHNldCBvdGhlcik6CisgICAgICAgICAiIiIK KyAgICAgICAgIFJldHVybiB0aGUgc3ltbWV0cmljIGRpZmZlcmVuY2Ugb2YgYGBzZWxmYGAgYW5k IGBgb3RoZXJgYC4KKyAKK0BAIC0xMTgzLDcgKzExODMsNyBAQCBjZGVmIGNsYXNzIEZyb3plbkJp dHNldDoKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuc3ltbWV0cmljX2RpZmZl cmVuY2Uob3RoZXIpCisgCistICAgIGNwZGVmIGNvbXBsZW1lbnQoc2VsZikgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIGNvbXBsZW1lbnQoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVy biB0aGUgY29tcGxlbWVudCBvZiBzZWxmLgorIAorQEAgLTEyMjksNyArMTIyOSw3IEBAIGNkZWYg Y2xhc3MgRnJvemVuQml0c2V0OgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5j b21wbGVtZW50KCkKKyAKKy0gICAgY3BkZWYgIF9fY29weV9fKHNlbGYpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiAgX19jb3B5X18oc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBg YHNlbGZgYCAoc2luY2UgYGBzZWxmYGAgaXMgaW1tdXRhYmxlKS4KKyAKK0BAIC0xMjg3LDcgKzEy ODcsNyBAQCBjZGVmIGNsYXNzIEJpdHNldChGcm96ZW5CaXRzZXQpOgorICAgICAgICAgVHJ1ZQor ICAgICAiIiIKKyAKKy0gICAgY3BkZWYgX19jb3B5X18oc2VsZikgbm9leGNlcHQ6CisrICAgIGNw ZGVmIF9fY29weV9fKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYSBjb3B5 IG9mIGBgc2VsZmBgLgorIAorQEAgLTE0MjcsNyArMTQyNyw3IEBAIGNkZWYgY2xhc3MgQml0c2V0 KEZyb3plbkJpdHNldCk6CisgICAgICAgICBlbGlmIG9wID09IFB5X0dFOgorICAgICAgICAgICAg IHJldHVybiBiaXRzZXRfaXNzdXBlcnNldChsZWZ0Ll9iaXRzZXQsIHJpZ2h0Ll9iaXRzZXQpCisg CistICAgIGNkZWYgRnJvemVuQml0c2V0IF9uZXcoc2VsZiwgbG9uZyBpbnQgY2FwYWNpdHkpIG5v ZXhjZXB0OgorKyAgICBjZGVmIEZyb3plbkJpdHNldCBfbmV3KHNlbGYsIGxvbmcgaW50IGNhcGFj aXR5KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGFuIG9iamVjdCBvZiB0aGUgc2Ft ZSB0eXBlIGFzIGBgc2VsZmBgLCBpbml0aWFsaXplZCB3aXRoIGEKKyAgICAgICAgIGJpdHNldCBv ZiBjYXBhY2l0eSBgYGNhcGFjaXR5YGAuCitAQCAtMTQzNiw3ICsxNDM2LDcgQEAgY2RlZiBjbGFz cyBCaXRzZXQoRnJvemVuQml0c2V0KToKKyAgICAgICAgIGIgPSBCaXRzZXQuX19uZXdfXyhCaXRz ZXQsIE5vbmUsIGNhcGFjaXR5KQorICAgICAgICAgcmV0dXJuIGIKKyAKKy0gICAgY3BkZWYgdXBk YXRlKHNlbGYsIEZyb3plbkJpdHNldCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIHVwZGF0 ZShzZWxmLCBGcm96ZW5CaXRzZXQgb3RoZXIpOgorICAgICAgICAgIiIiCisgICAgICAgICBVcGRh dGUgdGhlIGJpdHNldCB0byBpbmNsdWRlIGl0ZW1zIGluIGBgb3RoZXJgYC4KKyAKK0BAIC0xNTA4 LDcgKzE1MDgsNyBAQCBjZGVmIGNsYXNzIEJpdHNldChGcm96ZW5CaXRzZXQpOgorICAgICAgICAg c2VsZi51cGRhdGUob3RoZXIpCisgICAgICAgICByZXR1cm4gc2VsZgorIAorLSAgICBjcGRlZiBp bnRlcnNlY3Rpb25fdXBkYXRlKHNlbGYsIEZyb3plbkJpdHNldCBvdGhlcikgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIGludGVyc2VjdGlvbl91cGRhdGUoc2VsZiwgRnJvemVuQml0c2V0IG90aGVyKToK KyAgICAgICAgICIiIgorICAgICAgICAgVXBkYXRlIHRoZSBiaXRzZXQgdG8gdGhlIGludGVyc2Vj dGlvbiBvZiBgYHNlbGZgYCBhbmQgYGBvdGhlcmBgLgorIAorQEAgLTE1NzcsNyArMTU3Nyw3IEBA IGNkZWYgY2xhc3MgQml0c2V0KEZyb3plbkJpdHNldCk6CisgICAgICAgICBzZWxmLmludGVyc2Vj dGlvbl91cGRhdGUob3RoZXIpCisgICAgICAgICByZXR1cm4gc2VsZgorIAorLSAgICBjcGRlZiBk aWZmZXJlbmNlX3VwZGF0ZShzZWxmLCBGcm96ZW5CaXRzZXQgb3RoZXIpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBkaWZmZXJlbmNlX3VwZGF0ZShzZWxmLCBGcm96ZW5CaXRzZXQgb3RoZXIpOgorICAg ICAgICAgIiIiCisgICAgICAgICBVcGRhdGUgdGhlIGJpdHNldCB0byB0aGUgZGlmZmVyZW5jZSBv ZiBgYHNlbGZgYCBhbmQgYGBvdGhlcmBgLgorIAorQEAgLTE2NzQsNyArMTY3NCw3IEBAIGNkZWYg Y2xhc3MgQml0c2V0KEZyb3plbkJpdHNldCk6CisgICAgICAgICBzZWxmLmRpZmZlcmVuY2VfdXBk YXRlKG90aGVyKQorICAgICAgICAgcmV0dXJuIHNlbGYKKyAKKy0gICAgY3BkZWYgc3ltbWV0cmlj X2RpZmZlcmVuY2VfdXBkYXRlKHNlbGYsIEZyb3plbkJpdHNldCBvdGhlcikgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIHN5bW1ldHJpY19kaWZmZXJlbmNlX3VwZGF0ZShzZWxmLCBGcm96ZW5CaXRzZXQg b3RoZXIpOgorICAgICAgICAgIiIiCisgICAgICAgICBVcGRhdGUgdGhlIGJpdHNldCB0byB0aGUg c3ltbWV0cmljIGRpZmZlcmVuY2Ugb2YgYGBzZWxmYGAgYW5kCisgICAgICAgICBgYG90aGVyYGAu CitAQCAtMTc2Nyw3ICsxNzY3LDcgQEAgY2RlZiBjbGFzcyBCaXRzZXQoRnJvemVuQml0c2V0KToK KyAgICAgICAgIHNlbGYuc3ltbWV0cmljX2RpZmZlcmVuY2VfdXBkYXRlKG90aGVyKQorICAgICAg ICAgcmV0dXJuIHNlbGYKKyAKKy0gICAgY3BkZWYgYWRkKHNlbGYsIHVuc2lnbmVkIGxvbmcgbikg bm9leGNlcHQ6CisrICAgIGNwZGVmIGFkZChzZWxmLCB1bnNpZ25lZCBsb25nIG4pOgorICAgICAg ICAgIiIiCisgICAgICAgICBVcGRhdGUgdGhlIGJpdHNldCBieSBhZGRpbmcgYGBuYGAuCisgCitA QCAtMTc5Niw3ICsxNzk2LDcgQEAgY2RlZiBjbGFzcyBCaXRzZXQoRnJvemVuQml0c2V0KToKKyAg ICAgICAgICAgICBiaXRzZXRfcmVhbGxvYyhzZWxmLl9iaXRzZXQsIG4gKyAxKQorICAgICAgICAg Yml0c2V0X2FkZChzZWxmLl9iaXRzZXQsIG4pCisgCistICAgIGNwZGVmIHJlbW92ZShzZWxmLCB1 bnNpZ25lZCBsb25nIG4pIG5vZXhjZXB0OgorKyAgICBjcGRlZiByZW1vdmUoc2VsZiwgdW5zaWdu ZWQgbG9uZyBuKToKKyAgICAgICAgICIiIgorICAgICAgICAgVXBkYXRlIHRoZSBiaXRzZXQgYnkg cmVtb3ZpbmcgYGBuYGAuICBSYWlzZXMgYGBLZXlFcnJvcmBgIGlmIGBgbmBgIGlzCisgICAgICAg ICBub3QgY29udGFpbmVkIGluIHRoZSBiaXRzZXQuCitAQCAtMTgzNiw3ICsxODM2LDcgQEAgY2Rl ZiBjbGFzcyBCaXRzZXQoRnJvemVuQml0c2V0KToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAg ICAgYml0c2V0X3JlbW92ZShzZWxmLl9iaXRzZXQsIG4pCisgCistICAgIGNwZGVmIGRpc2NhcmQo c2VsZiwgdW5zaWduZWQgbG9uZyBuKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZGlzY2FyZChzZWxm LCB1bnNpZ25lZCBsb25nIG4pOgorICAgICAgICAgIiIiCisgICAgICAgICBVcGRhdGUgdGhlIGJp dHNldCBieSByZW1vdmluZyBgYG5gYC4KKyAKK0BAIC0xODY5LDcgKzE4NjksNyBAQCBjZGVmIGNs YXNzIEJpdHNldChGcm96ZW5CaXRzZXQpOgorICAgICAgICAgaWYgbiA8IHNlbGYuX2JpdHNldC5z aXplOgorICAgICAgICAgICAgIGJpdHNldF9kaXNjYXJkKHNlbGYuX2JpdHNldCwgbikKKyAKKy0g ICAgY3BkZWYgcG9wKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBwb3Aoc2VsZik6CisgICAg ICAgICAiIiIKKyAgICAgICAgIFJlbW92ZSBhbmQgcmV0dXJuIGFuIGFyYml0cmFyeSBlbGVtZW50 IGZyb20gdGhlIHNldC4gUmFpc2VzCisgICAgICAgICBgYEtleUVycm9yYGAgaWYgdGhlIHNldCBp cyBlbXB0eS4KK0BAIC0xODk3LDcgKzE4OTcsNyBAQCBjZGVmIGNsYXNzIEJpdHNldChGcm96ZW5C aXRzZXQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gYml0c2V0X3BvcChzZWxmLl9i aXRzZXQpCisgCistICAgIGNwZGVmIGNsZWFyKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBj bGVhcihzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmVtb3ZlcyBhbGwgZWxlbWVudHMg ZnJvbSB0aGUgYml0c2V0LgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2RhdGFfc3RydWN0dXJl cy9iaXRzZXRfYmFzZS5weGQgYi9zcmMvc2FnZS9kYXRhX3N0cnVjdHVyZXMvYml0c2V0X2Jhc2Uu cHhkCitpbmRleCA0NTBlODY1NmMzNS4uZGY0MGQ2NjZkODYgMTAwNjQ0CistLS0gYS9zcmMvc2Fn ZS9kYXRhX3N0cnVjdHVyZXMvYml0c2V0X2Jhc2UucHhkCisrKysgYi9zcmMvc2FnZS9kYXRhX3N0 cnVjdHVyZXMvYml0c2V0X2Jhc2UucHhkCitAQCAtOTExLDEyICs5MTEsMTIgQEAgY2RlZiBpbnQg Yml0c2V0X2Zyb21fY2hhcihiaXRzZXRfdCBiaXRzLCBjaGFyKiBzLCBjaGFyIHplcm89KiwgY2hh ciBvbmU9KikgZXhjZXAKKyAKKyBjZGVmIGludCBiaXRzZXRfZnJvbV9zdHIoYml0c2V0X3QgYml0 cywgb2JqZWN0IHMsIGNoYXIgemVybz0qLCBjaGFyIG9uZT0qKSBleGNlcHQgLTEKKyAKKy1jZGVm IGJpdHNldF9zdHJpbmcoZnVzZWRfYml0c2V0X3QgYml0cykgbm9leGNlcHQKKytjZGVmIGJpdHNl dF9zdHJpbmcoZnVzZWRfYml0c2V0X3QgYml0cykKKyAKKy1jZGVmIGJpdHNldF9ieXRlcyhmdXNl ZF9iaXRzZXRfdCBiaXRzKSBub2V4Y2VwdAorK2NkZWYgYml0c2V0X2J5dGVzKGZ1c2VkX2JpdHNl dF90IGJpdHMpCisgCistY2RlZiBsaXN0IGJpdHNldF9saXN0KGZ1c2VkX2JpdHNldF90IGJpdHMp IG5vZXhjZXB0CisrY2RlZiBsaXN0IGJpdHNldF9saXN0KGZ1c2VkX2JpdHNldF90IGJpdHMpCisg CistY2RlZiBiaXRzZXRfcGlja2xlKGJpdHNldF90IGJzKSBub2V4Y2VwdAorK2NkZWYgYml0c2V0 X3BpY2tsZShiaXRzZXRfdCBicykKKyAKKy1jZGVmIGJpdHNldF91bnBpY2tsZShiaXRzZXRfdCBi cywgdHVwbGUgaW5wdXQpIG5vZXhjZXB0CisrY2RlZiBiaXRzZXRfdW5waWNrbGUoYml0c2V0X3Qg YnMsIHR1cGxlIGlucHV0KQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2RhdGFfc3RydWN0dXJlcy9i aXRzZXRfYmFzZS5weXggYi9zcmMvc2FnZS9kYXRhX3N0cnVjdHVyZXMvYml0c2V0X2Jhc2UucHl4 CitpbmRleCA2MTZlM2IxYWIwNC4uMTgyODEyYTg5MWYgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9k YXRhX3N0cnVjdHVyZXMvYml0c2V0X2Jhc2UucHl4CisrKysgYi9zcmMvc2FnZS9kYXRhX3N0cnVj dHVyZXMvYml0c2V0X2Jhc2UucHl4CitAQCAtNDcsMTMgKzQ3LDEzIEBAIGNkZWYgaW50IGJpdHNl dF9mcm9tX3N0cihiaXRzZXRfdCBiaXRzLCBvYmplY3QgcywgY2hhciB6ZXJvPWMnMCcsIGNoYXIg b25lPWMnMScpCisgICAgIGNkZWYgYnl0ZXMgYiA9IHN0cl90b19ieXRlcyhzKQorICAgICByZXR1 cm4gYml0c2V0X2Zyb21fY2hhcihiaXRzLCBiLCB6ZXJvLCBvbmUpCisgCistY2RlZiBiaXRzZXRf c3RyaW5nKGZ1c2VkX2JpdHNldF90IGJpdHMpIG5vZXhjZXB0OgorK2NkZWYgYml0c2V0X3N0cmlu ZyhmdXNlZF9iaXRzZXRfdCBiaXRzKToKKyAgICAgIiIiCisgICAgIFJldHVybiBhIHB5dGhvbiBz dHJpbmcgcmVwcmVzZW50aW5nIHRoZSBiaXRzZXQuCisgICAgICIiIgorICAgICByZXR1cm4gYnl0 ZXNfdG9fc3RyKGJpdHNldF9ieXRlcyhiaXRzKSkKKyAKKy1jZGVmIGJpdHNldF9ieXRlcyhmdXNl ZF9iaXRzZXRfdCBiaXRzKSBub2V4Y2VwdDoKKytjZGVmIGJpdHNldF9ieXRlcyhmdXNlZF9iaXRz ZXRfdCBiaXRzKToKKyAgICAgIiIiCisgICAgIFJldHVybiBhIHB5dGhvbiBieXRlcyBzdHJpbmcg cmVwcmVzZW50aW5nIHRoZSBiaXRzZXQuCisgCitAQCAtNjYsNyArNjYsNyBAQCBjZGVmIGJpdHNl dF9ieXRlcyhmdXNlZF9iaXRzZXRfdCBiaXRzKSBub2V4Y2VwdDoKKyAgICAgc2lnX2ZyZWUocykK KyAgICAgcmV0dXJuIHB5X3MKKyAKKy1jZGVmIGxpc3QgYml0c2V0X2xpc3QoZnVzZWRfYml0c2V0 X3QgYml0cykgbm9leGNlcHQ6CisrY2RlZiBsaXN0IGJpdHNldF9saXN0KGZ1c2VkX2JpdHNldF90 IGJpdHMpOgorICAgICAiIiIKKyAgICAgUmV0dXJuIGEgbGlzdCBvZiBlbGVtZW50cyBpbiB0aGUg Yml0c2V0LgorICAgICAiIiIKK0BAIC03Nyw3ICs3Nyw3IEBAIGNkZWYgbGlzdCBiaXRzZXRfbGlz dChmdXNlZF9iaXRzZXRfdCBiaXRzKSBub2V4Y2VwdDoKKyAgICAgICAgIGVsdCA9IGJpdHNldF9u ZXh0KGJpdHMsIGVsdCArIDEpCisgICAgIHJldHVybiBlbHRzCisgCistY2RlZiBiaXRzZXRfcGlj a2xlKGJpdHNldF90IGJzKSBub2V4Y2VwdDoKKytjZGVmIGJpdHNldF9waWNrbGUoYml0c2V0X3Qg YnMpOgorICAgICAiIiIKKyAgICAgQ29udmVydCBgYGJzYGAgdG8gYSByZWFzb25hYmx5IGNvbXBh Y3QgUHl0aG9uIHN0cnVjdHVyZS4KKyAKK0BAIC05MSw3ICs5MSw3IEBAIGNkZWYgYml0c2V0X3Bp Y2tsZShiaXRzZXRfdCBicykgbm9leGNlcHQ6CisgICAgICAgICBkYXRhLmFwcGVuZChicy5iaXRz W2ldKQorICAgICByZXR1cm4gKHZlcnNpb24sIGJzLnNpemUsIGJzLmxpbWJzLCBzaXplb2YodW5z aWduZWQgbG9uZyksIHR1cGxlKGRhdGEpKQorIAorLWNkZWYgYml0c2V0X3VucGlja2xlKGJpdHNl dF90IGJzLCB0dXBsZSBpbnB1dCkgbm9leGNlcHQ6CisrY2RlZiBiaXRzZXRfdW5waWNrbGUoYml0 c2V0X3QgYnMsIHR1cGxlIGlucHV0KToKKyAgICAgIiIiCisgICAgIENvbnZlcnQgdGhlIGRhdGEg aW50byBhIGJpdHNldC4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9kYXRhX3N0cnVjdHVyZXMv Ymxhc19kaWN0LnB4ZCBiL3NyYy9zYWdlL2RhdGFfc3RydWN0dXJlcy9ibGFzX2RpY3QucHhkCitp bmRleCAzZGVmNGY1YTk1MC4uNzQ2NGMwZGFiYTggMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9kYXRh X3N0cnVjdHVyZXMvYmxhc19kaWN0LnB4ZAorKysrIGIvc3JjL3NhZ2UvZGF0YV9zdHJ1Y3R1cmVz L2JsYXNfZGljdC5weGQKK0BAIC0xLDExICsxLDExIEBACisgY3BkZWYgaW50IGlheHB5KGEsIGRp Y3QgWCwgZGljdCBZLCBiaW50IHJlbW92ZV96ZXJvcz0qLCBiaW50IGZhY3Rvcl9vbl9sZWZ0PSop IGV4Y2VwdCAtMQorLWNwZGVmIGRpY3QgYXhweShhLCBkaWN0IFgsIGRpY3QgWSwgYmludCBmYWN0 b3Jfb25fbGVmdD0qKSBub2V4Y2VwdAorLWNwZGVmIGRpY3QgbmVnYXRlKGRpY3QgRCkgbm9leGNl cHQKKy1jcGRlZiBkaWN0IHNjYWwoYSwgZGljdCBELCBiaW50IGZhY3Rvcl9vbl9sZWZ0PSopIG5v ZXhjZXB0CistY3BkZWYgZGljdCBhZGQoZGljdCBELCBkaWN0IEQyKSBub2V4Y2VwdAorLWNwZGVm IGRpY3Qgc3VtKGRpY3RfaXRlcikgbm9leGNlcHQKKy1jcGRlZiBkaWN0IGxpbmVhcl9jb21iaW5h dGlvbihkaWN0X2ZhY3Rvcl9pdGVyLCBiaW50IGZhY3Rvcl9vbl9sZWZ0PSopIG5vZXhjZXB0Cist Y3BkZWYgZGljdCBzdW1fb2ZfbW9ub21pYWxzKG1vbm9taWFscywgc2NhbGFyKSBub2V4Y2VwdAor LWNwZGVmIGRpY3Qgc3VtX29mX3Rlcm1zKGluZGV4X2NvZWZmX3BhaXJzKSBub2V4Y2VwdAorLWNk ZWYgZGljdCByZW1vdmVfemVyb3MoZGljdCBEKSBub2V4Y2VwdAorLWNwZGVmIGRpY3QgY29udmVy dF9yZW1vdmVfemVyb2VzKGRpY3QgRCwgUikgbm9leGNlcHQKKytjcGRlZiBkaWN0IGF4cHkoYSwg ZGljdCBYLCBkaWN0IFksIGJpbnQgZmFjdG9yX29uX2xlZnQ9KikKKytjcGRlZiBkaWN0IG5lZ2F0 ZShkaWN0IEQpCisrY3BkZWYgZGljdCBzY2FsKGEsIGRpY3QgRCwgYmludCBmYWN0b3Jfb25fbGVm dD0qKQorK2NwZGVmIGRpY3QgYWRkKGRpY3QgRCwgZGljdCBEMikKKytjcGRlZiBkaWN0IHN1bShk aWN0X2l0ZXIpCisrY3BkZWYgZGljdCBsaW5lYXJfY29tYmluYXRpb24oZGljdF9mYWN0b3JfaXRl ciwgYmludCBmYWN0b3Jfb25fbGVmdD0qKQorK2NwZGVmIGRpY3Qgc3VtX29mX21vbm9taWFscyht b25vbWlhbHMsIHNjYWxhcikKKytjcGRlZiBkaWN0IHN1bV9vZl90ZXJtcyhpbmRleF9jb2VmZl9w YWlycykKKytjZGVmIGRpY3QgcmVtb3ZlX3plcm9zKGRpY3QgRCkKKytjcGRlZiBkaWN0IGNvbnZl cnRfcmVtb3ZlX3plcm9lcyhkaWN0IEQsIFIpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvZGF0YV9z dHJ1Y3R1cmVzL2JsYXNfZGljdC5weXggYi9zcmMvc2FnZS9kYXRhX3N0cnVjdHVyZXMvYmxhc19k aWN0LnB5eAoraW5kZXggYzYyNGFhNmEyZDUuLmMxM2NhYjJhYWI5IDEwMDY0NAorLS0tIGEvc3Jj L3NhZ2UvZGF0YV9zdHJ1Y3R1cmVzL2JsYXNfZGljdC5weXgKKysrKyBiL3NyYy9zYWdlL2RhdGFf c3RydWN0dXJlcy9ibGFzX2RpY3QucHl4CitAQCAtMTQzLDcgKzE0Myw3IEBAIGNwZGVmIGludCBp YXhweShhLCBkaWN0IFgsIGRpY3QgWSwgYmludCByZW1vdmVfemVyb3M9VHJ1ZSwgYmludCBmYWN0 b3Jfb25fbGVmdD1UCisgICAgICAgICAgICAgZGVsIFlba2V5XQorICAgICByZXR1cm4gMAorIAor LWNwZGVmIGRpY3QgYXhweShhLCBkaWN0IFgsIGRpY3QgWSwgYmludCBmYWN0b3Jfb25fbGVmdD1U cnVlKSBub2V4Y2VwdDoKKytjcGRlZiBkaWN0IGF4cHkoYSwgZGljdCBYLCBkaWN0IFksIGJpbnQg ZmFjdG9yX29uX2xlZnQ9VHJ1ZSk6CisgICAgICIiIgorICAgICBSZXR1cm4gYGEgWCArIFlgLgor IAorQEAgLTIwMyw3ICsyMDMsNyBAQCBjcGRlZiBkaWN0IGF4cHkoYSwgZGljdCBYLCBkaWN0IFks IGJpbnQgZmFjdG9yX29uX2xlZnQ9VHJ1ZSkgbm9leGNlcHQ6CisgICAgICAgICBpYXhweShhLCBY LCBZLCBUcnVlLCBmYWN0b3Jfb25fbGVmdCkKKyAgICAgcmV0dXJuIFkKKyAKKy1jcGRlZiBkaWN0 IG5lZ2F0ZShkaWN0IEQpIG5vZXhjZXB0OgorK2NwZGVmIGRpY3QgbmVnYXRlKGRpY3QgRCk6Cisg ICAgIHIiIiIKKyAgICAgUmV0dXJuIGEgZGljdGlvbmFyeSByZXByZXNlbnRpbmcgdGhlIHZlY3Rv ciBgLVhgLgorIAorQEAgLTIyMCw3ICsyMjAsNyBAQCBjcGRlZiBkaWN0IG5lZ2F0ZShkaWN0IEQp IG5vZXhjZXB0OgorICAgICAiIiIKKyAgICAgcmV0dXJuIHsga2V5OiAtdmFsdWUgZm9yIGtleSwg dmFsdWUgaW4gRC5pdGVyaXRlbXMoKSB9CisgCistY3BkZWYgZGljdCBzY2FsKGEsIGRpY3QgRCwg YmludCBmYWN0b3Jfb25fbGVmdD1UcnVlKSBub2V4Y2VwdDoKKytjcGRlZiBkaWN0IHNjYWwoYSwg ZGljdCBELCBiaW50IGZhY3Rvcl9vbl9sZWZ0PVRydWUpOgorICAgICByIiIiCisgICAgIFJldHVy biBhIGRpY3Rpb25hcnkgcmVwcmVzZW50aW5nIHRoZSB2ZWN0b3IgYGEqWGAuCisgCitAQCAtMjQy LDcgKzI0Miw3IEBAIGNwZGVmIGRpY3Qgc2NhbChhLCBkaWN0IEQsIGJpbnQgZmFjdG9yX29uX2xl ZnQ9VHJ1ZSkgbm9leGNlcHQ6CisgICAgICMgU28gZm9yIG5vdyB3ZSBqdXN0IGRlbGVnYXRlIHRv IGF4cHkuCisgICAgIHJldHVybiBheHB5KGEsIEQsIHt9LCBmYWN0b3Jfb25fbGVmdD1mYWN0b3Jf b25fbGVmdCkKKyAKKy1jcGRlZiBkaWN0IGFkZChkaWN0IEQsIGRpY3QgRDIpIG5vZXhjZXB0Ogor K2NwZGVmIGRpY3QgYWRkKGRpY3QgRCwgZGljdCBEMik6CisgICAgIHIiIiIKKyAgICAgUmV0dXJu IHRoZSBwb2ludHdpc2UgYWRkaXRpb24gb2YgZGljdGlvbmFyaWVzIGBgRGBgIGFuZCBgYEQyYGAu CisgCitAQCAtMjY5LDcgKzI2OSw3IEBAIGNwZGVmIGRpY3QgYWRkKGRpY3QgRCwgZGljdCBEMikg bm9leGNlcHQ6CisgICAgICAgICBELCBEMiA9IEQyLCBECisgICAgIHJldHVybiBheHB5KDEsIEQy LCBEKQorIAorLWNwZGVmIGRpY3Qgc3VtKGRpY3RfaXRlcikgbm9leGNlcHQ6CisrY3BkZWYgZGlj dCBzdW0oZGljdF9pdGVyKToKKyAgICAgciIiIgorICAgICBSZXR1cm4gdGhlIHBvaW50d2lzZSBh ZGRpdGlvbiBvZiBkaWN0aW9uYXJpZXMgd2l0aCBjb2VmZmljaWVudHMuCisgCitAQCAtMzEwLDcg KzMxMCw3IEBAIGNwZGVmIGRpY3Qgc3VtKGRpY3RfaXRlcikgbm9leGNlcHQ6CisgCisgICAgIHJl dHVybiByZW1vdmVfemVyb3MocmVzdWx0KQorIAorLWNwZGVmIGRpY3QgbGluZWFyX2NvbWJpbmF0 aW9uKGRpY3RfZmFjdG9yX2l0ZXIsIGJpbnQgZmFjdG9yX29uX2xlZnQ9VHJ1ZSkgbm9leGNlcHQ6 CisrY3BkZWYgZGljdCBsaW5lYXJfY29tYmluYXRpb24oZGljdF9mYWN0b3JfaXRlciwgYmludCBm YWN0b3Jfb25fbGVmdD1UcnVlKToKKyAgICAgciIiIgorICAgICBSZXR1cm4gdGhlIHBvaW50d2lz ZSBhZGRpdGlvbiBvZiBkaWN0aW9uYXJpZXMgd2l0aCBjb2VmZmljaWVudHMuCisgCitAQCAtMzU1 LDcgKzM1NSw3IEBAIGNwZGVmIGRpY3QgbGluZWFyX2NvbWJpbmF0aW9uKGRpY3RfZmFjdG9yX2l0 ZXIsIGJpbnQgZmFjdG9yX29uX2xlZnQ9VHJ1ZSkgbm9leGNlCisgCisgICAgIHJldHVybiByZW1v dmVfemVyb3MocmVzdWx0KQorIAorLWNwZGVmIGRpY3Qgc3VtX29mX21vbm9taWFscyhtb25vbWlh bHMsIHNjYWxhcikgbm9leGNlcHQ6CisrY3BkZWYgZGljdCBzdW1fb2ZfbW9ub21pYWxzKG1vbm9t aWFscywgc2NhbGFyKToKKyAgICAgciIiIgorICAgICBSZXR1cm4gdGhlIHBvaW50d2lzZSBhZGRp dGlvbiBvZiBgYG1vbm9taWFsc2BgLgorIAorQEAgLTM4Myw3ICszODMsNyBAQCBjcGRlZiBkaWN0 IHN1bV9vZl9tb25vbWlhbHMobW9ub21pYWxzLCBzY2FsYXIpIG5vZXhjZXB0OgorICAgICAgICAg ICAgIHJlc3VsdFttXSA9IHNjYWxhcgorICAgICByZXR1cm4gcmVtb3ZlX3plcm9zKHJlc3VsdCkK KyAKKy1jcGRlZiBkaWN0IHN1bV9vZl90ZXJtcyhpbmRleF9jb2VmZl9wYWlycykgbm9leGNlcHQ6 CisrY3BkZWYgZGljdCBzdW1fb2ZfdGVybXMoaW5kZXhfY29lZmZfcGFpcnMpOgorICAgICByIiIi CisgICAgIFJldHVybiB0aGUgbGluZWFyIGNvbWJpbmF0aW9uIG9mIGEgbW9ub21pYWwgc2NhbGVk IGJ5IGEgY29lZmZpY2llbnQuCisgCitAQCAtNDExLDcgKzQxMSw3IEBAIGNwZGVmIGRpY3Qgc3Vt X29mX3Rlcm1zKGluZGV4X2NvZWZmX3BhaXJzKSBub2V4Y2VwdDoKKyAgICAgICAgICAgICByZXN1 bHRbaW5kZXhdID0gY29lZmYKKyAgICAgcmV0dXJuIHJlbW92ZV96ZXJvcyhyZXN1bHQpCisgCist Y2RlZiBkaWN0IHJlbW92ZV96ZXJvcyhkaWN0IEQpIG5vZXhjZXB0OgorK2NkZWYgZGljdCByZW1v dmVfemVyb3MoZGljdCBEKToKKyAgICAgIiIiCisgICAgIFJlbW92ZSBhbGwga2V5cyB3aG9zZSB2 YWx1ZSBpcyB6ZXJvIGZyb20gYGBEYGAuCisgICAgICIiIgorQEAgLTQyMiw3ICs0MjIsNyBAQCBj ZGVmIGRpY3QgcmVtb3ZlX3plcm9zKGRpY3QgRCkgbm9leGNlcHQ6CisgICAgICAgICBkZWwgRFtp bmRleF0KKyAgICAgcmV0dXJuIEQKKyAKKy1jcGRlZiBkaWN0IGNvbnZlcnRfcmVtb3ZlX3plcm9l cyhkaWN0IEQsIFIpIG5vZXhjZXB0OgorK2NwZGVmIGRpY3QgY29udmVydF9yZW1vdmVfemVyb2Vz KGRpY3QgRCwgUik6CisgICAgICIiIgorICAgICBSZW1vdmUgYWxsIGtleXMgd2hvc2UgdmFsdWUg aXMgemVybyBmcm9tIGBgRGBgCisgICAgIGFmdGVyIGNvZXJjaW5nIGludG8gdGhlIHJpbmcgYGBS YGAuCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvZGF0YV9zdHJ1Y3R1cmVzL2JvdW5kZWRfaW50ZWdl cl9zZXF1ZW5jZXMucHhkIGIvc3JjL3NhZ2UvZGF0YV9zdHJ1Y3R1cmVzL2JvdW5kZWRfaW50ZWdl cl9zZXF1ZW5jZXMucHhkCitpbmRleCA0NDI2N2I0ZmI0Ni4uYzg3ZmM5MTQ5MjEgMTAwNjQ0Cist LS0gYS9zcmMvc2FnZS9kYXRhX3N0cnVjdHVyZXMvYm91bmRlZF9pbnRlZ2VyX3NlcXVlbmNlcy5w eGQKKysrKyBiL3NyYy9zYWdlL2RhdGFfc3RydWN0dXJlcy9ib3VuZGVkX2ludGVnZXJfc2VxdWVu Y2VzLnB4ZAorQEAgLTM2LDcgKzM2LDcgQEAgY3R5cGVkZWYgYmlzZXFfcyBiaXNlcV90WzFdCisg Y2RlZiBiaW50IGJpc2VxX2luaXQoYmlzZXFfdCBSLCBtcF9zaXplX3QgbCwgbXBfYml0Y250X3Qg aXRlbXNpemUpIGV4Y2VwdCAtMQorIGNkZWYgdm9pZCBiaXNlcV9kZWFsbG9jKGJpc2VxX3QgUykg bm9leGNlcHQKKyBjZGVmIGJpbnQgYmlzZXFfaW5pdF9jb3B5KGJpc2VxX3QgUiwgYmlzZXFfdCBT KSBleGNlcHQgLTEKKy1jZGVmIHR1cGxlIGJpc2VxX3BpY2tsZShiaXNlcV90IFMpIG5vZXhjZXB0 CisrY2RlZiB0dXBsZSBiaXNlcV9waWNrbGUoYmlzZXFfdCBTKQorIGNkZWYgYmludCBiaXNlcV91 bnBpY2tsZShiaXNlcV90IFIsIHR1cGxlIGJpdHNldF9kYXRhLCBtcF9iaXRjbnRfdCBpdGVtYml0 c2l6ZSwgbXBfc2l6ZV90IGxlbmd0aCkgZXhjZXB0IC0xCisgY2RlZiBiaW50IGJpc2VxX2luaXRf bGlzdChiaXNlcV90IFIsIGxpc3QgZGF0YSwgc2l6ZV90IGJvdW5kKSBleGNlcHQgLTEKKyBjZGVm IFB5X2hhc2hfdCBiaXNlcV9oYXNoKGJpc2VxX3QgUykgbm9leGNlcHQKK0BAIC00Nyw3ICs0Nyw3 IEBAIGNkZWYgbXBfc2l6ZV90IGJpc2VxX2NvbnRhaW5zKGJpc2VxX3QgUzEsIGJpc2VxX3QgUzIs IG1wX3NpemVfdCBzdGFydCkgZXhjZXB0IC0yCisgY2RlZiBtcF9zaXplX3QgYmlzZXFfc3RhcnRz d2l0aF90YWlsKGJpc2VxX3QgUzEsIGJpc2VxX3QgUzIsIG1wX3NpemVfdCBzdGFydCkgZXhjZXB0 IC0yCisgY2RlZiBtcF9zaXplX3QgYmlzZXFfaW5kZXgoYmlzZXFfdCBTLCBzaXplX3QgaXRlbSwg bXBfc2l6ZV90IHN0YXJ0KSBleGNlcHQgLTIKKyBjZGVmIHNpemVfdCBiaXNlcV9nZXRpdGVtKGJp c2VxX3QgUywgbXBfc2l6ZV90IGluZGV4KSBub2V4Y2VwdAorLWNkZWYgYmlzZXFfZ2V0aXRlbV9w eShiaXNlcV90IFMsIG1wX3NpemVfdCBpbmRleCkgbm9leGNlcHQKKytjZGVmIGJpc2VxX2dldGl0 ZW1fcHkoYmlzZXFfdCBTLCBtcF9zaXplX3QgaW5kZXgpCisgY2RlZiB2b2lkIGJpc2VxX2luaXRp dGVtKGJpc2VxX3QgUywgbXBfc2l6ZV90IGluZGV4LCBzaXplX3QgaXRlbSkgbm9leGNlcHQKKyBj ZGVmIHZvaWQgYmlzZXFfY2xlYXJpdGVtKGJpc2VxX3QgUywgbXBfc2l6ZV90IGluZGV4KSBub2V4 Y2VwdAorIGNkZWYgYmludCBiaXNlcV9pbml0X3NsaWNlKGJpc2VxX3QgUiwgYmlzZXFfdCBTLCBt cF9zaXplX3Qgc3RhcnQsIG1wX3NpemVfdCBzdG9wLCBtcF9zaXplX3Qgc3RlcCkgZXhjZXB0IC0x CitAQCAtNTUsNyArNTUsNyBAQCBjZGVmIGJpbnQgYmlzZXFfaW5pdF9zbGljZShiaXNlcV90IFIs IGJpc2VxX3QgUywgbXBfc2l6ZV90IHN0YXJ0LCBtcF9zaXplX3Qgc3RvcAorIGNkZWYgY2xhc3Mg Qm91bmRlZEludGVnZXJTZXF1ZW5jZToKKyAgICAgY2RlZiBiaXNlcV90IGRhdGEKKyAgICAgY3Bk ZWYgYmludCBzdGFydHN3aXRoKHNlbGYsIEJvdW5kZWRJbnRlZ2VyU2VxdWVuY2Ugb3RoZXIpIG5v ZXhjZXB0CistICAgIGNwZGVmIGxpc3QgbGlzdChzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBC b3VuZGVkSW50ZWdlclNlcXVlbmNlIG1heGltYWxfb3ZlcmxhcChzZWxmLCBCb3VuZGVkSW50ZWdl clNlcXVlbmNlIG90aGVyKSBub2V4Y2VwdAorKyAgICBjcGRlZiBsaXN0IGxpc3Qoc2VsZikKKysg ICAgY3BkZWYgQm91bmRlZEludGVnZXJTZXF1ZW5jZSBtYXhpbWFsX292ZXJsYXAoc2VsZiwgQm91 bmRlZEludGVnZXJTZXF1ZW5jZSBvdGhlcikKKyAKKy1jcGRlZiBCb3VuZGVkSW50ZWdlclNlcXVl bmNlIE5ld0JJU0VRKHR1cGxlIGJpdHNldF9kYXRhLCBtcF9iaXRjbnRfdCBpdGVtYml0c2l6ZSwg bXBfc2l6ZV90IGxlbmd0aCkgbm9leGNlcHQKKytjcGRlZiBCb3VuZGVkSW50ZWdlclNlcXVlbmNl IE5ld0JJU0VRKHR1cGxlIGJpdHNldF9kYXRhLCBtcF9iaXRjbnRfdCBpdGVtYml0c2l6ZSwgbXBf c2l6ZV90IGxlbmd0aCkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9kYXRhX3N0cnVjdHVyZXMvYm91 bmRlZF9pbnRlZ2VyX3NlcXVlbmNlcy5weXggYi9zcmMvc2FnZS9kYXRhX3N0cnVjdHVyZXMvYm91 bmRlZF9pbnRlZ2VyX3NlcXVlbmNlcy5weXgKK2luZGV4IDI0NTVlY2M3NGZlLi40MDYzOGFiMzk5 YyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2RhdGFfc3RydWN0dXJlcy9ib3VuZGVkX2ludGVnZXJf c2VxdWVuY2VzLnB5eAorKysrIGIvc3JjL3NhZ2UvZGF0YV9zdHJ1Y3R1cmVzL2JvdW5kZWRfaW50 ZWdlcl9zZXF1ZW5jZXMucHl4CitAQCAtMTYxLDcgKzE2MSw3IEBAIGNkZWYgYmludCBiaXNlcV9p bml0X2NvcHkoYmlzZXFfdCBSLCBiaXNlcV90IFMpIGV4Y2VwdCAtMToKKyAjIFBpY2tsaW5nCisg IworIAorLWNkZWYgdHVwbGUgYmlzZXFfcGlja2xlKGJpc2VxX3QgUykgbm9leGNlcHQ6CisrY2Rl ZiB0dXBsZSBiaXNlcV9waWNrbGUoYmlzZXFfdCBTKToKKyAgICAgcmV0dXJuIChiaXRzZXRfcGlj a2xlKFMuZGF0YSksIFMuaXRlbWJpdHNpemUsIFMubGVuZ3RoKQorIAorIGNkZWYgYmludCBiaXNl cV91bnBpY2tsZShiaXNlcV90IFIsIHR1cGxlIGJpdHNldF9kYXRhLCBtcF9iaXRjbnRfdCBpdGVt Yml0c2l6ZSwgbXBfc2l6ZV90IGxlbmd0aCkgZXhjZXB0IC0xOgorQEAgLTI4OCw3ICsyODgsNyBA QCBjZGVmIGlubGluZSBzaXplX3QgYmlzZXFfZ2V0aXRlbShiaXNlcV90IFMsIG1wX3NpemVfdCBp bmRleCkgbm9leGNlcHQ6CisgICAgICAgICBvdXQgfD0gKFMuZGF0YS5iaXRzW2xpbWJfaW5kZXgr MV0pIDw8IChHTVBfTElNQl9CSVRTIC0gYml0X2luZGV4KQorICAgICByZXR1cm4gb3V0ICYgUy5t YXNrX2l0ZW0KKyAKKy1jZGVmIGJpc2VxX2dldGl0ZW1fcHkoYmlzZXFfdCBTLCBtcF9zaXplX3Qg aW5kZXgpIG5vZXhjZXB0OgorK2NkZWYgYmlzZXFfZ2V0aXRlbV9weShiaXNlcV90IFMsIG1wX3Np emVfdCBpbmRleCk6CisgICAgICIiIgorICAgICBHZXQgaXRlbSBgYFNbaW5kZXhdYGAgYXMgYSBQ eXRob24gYGBpbnRgYCwgd2l0aG91dAorICAgICBjaGVja2luZyBtYXJnaW5zLgorQEAgLTEwNDEs NyArMTA0MSw3IEBAIGNkZWYgY2xhc3MgQm91bmRlZEludGVnZXJTZXF1ZW5jZToKKyAgICAgICAg ICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgIHJldHVybiBiaXNlcV9jb250YWlucyhzZWxmLmRh dGEsIHJpZ2h0LmRhdGEsIDApID49IDAKKyAKKy0gICAgY3BkZWYgbGlzdCBsaXN0KHNlbGYpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBsaXN0IGxpc3Qoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAg ICAgIENvbnZlcnRzIHRoaXMgYm91bmRlZCBpbnRlZ2VyIHNlcXVlbmNlIHRvIGEgbGlzdAorIAor QEAgLTEyMzYsNyArMTIzNiw3IEBAIGNkZWYgY2xhc3MgQm91bmRlZEludGVnZXJTZXF1ZW5jZToK KyAgICAgICAgIGJpc2VxX2luaXRfY29uY2F0KG91dC5kYXRhLCBteXNlbGYuZGF0YSwgcmlnaHQu ZGF0YSkKKyAgICAgICAgIHJldHVybiBvdXQKKyAKKy0gICAgY3BkZWYgQm91bmRlZEludGVnZXJT ZXF1ZW5jZSBtYXhpbWFsX292ZXJsYXAoc2VsZiwgQm91bmRlZEludGVnZXJTZXF1ZW5jZSBvdGhl cikgbm9leGNlcHQ6CisrICAgIGNwZGVmIEJvdW5kZWRJbnRlZ2VyU2VxdWVuY2UgbWF4aW1hbF9v dmVybGFwKHNlbGYsIEJvdW5kZWRJbnRlZ2VyU2VxdWVuY2Ugb3RoZXIpOgorICAgICAgICAgIiIi CisgICAgICAgICBSZXR1cm4gYGBzZWxmYGAncyBtYXhpbWFsIHRyYWlsaW5nIHN1Yi1zZXF1ZW5j ZSB0aGF0IGBgb3RoZXJgYCBzdGFydHMgd2l0aC4KKyAKK0BAIC0xMzU1LDcgKzEzNTUsNyBAQCBj ZGVmIGNsYXNzIEJvdW5kZWRJbnRlZ2VyU2VxdWVuY2U6CisgICAgICAgICAgICAgcmV0dXJuIDAK KyAgICAgICAgIHJldHVybiBoCisgCistY3BkZWYgQm91bmRlZEludGVnZXJTZXF1ZW5jZSBOZXdC SVNFUSh0dXBsZSBiaXRzZXRfZGF0YSwgbXBfYml0Y250X3QgaXRlbWJpdHNpemUsIG1wX3NpemVf dCBsZW5ndGgpIG5vZXhjZXB0OgorK2NwZGVmIEJvdW5kZWRJbnRlZ2VyU2VxdWVuY2UgTmV3QklT RVEodHVwbGUgYml0c2V0X2RhdGEsIG1wX2JpdGNudF90IGl0ZW1iaXRzaXplLCBtcF9zaXplX3Qg bGVuZ3RoKToKKyAgICAgIiIiCisgICAgIEhlbHBlciBmdW5jdGlvbiBmb3IgdW5waWNrbGluZyBv ZiA6Y2xhc3M6YEJvdW5kZWRJbnRlZ2VyU2VxdWVuY2VgLgorIAorZGlmZiAtLWdpdCBhL3NyYy9z YWdlL2R5bmFtaWNzL2FyaXRobWV0aWNfZHluYW1pY3MvcHJvamVjdGl2ZV9kc19oZWxwZXIucHl4 IGIvc3JjL3NhZ2UvZHluYW1pY3MvYXJpdGhtZXRpY19keW5hbWljcy9wcm9qZWN0aXZlX2RzX2hl bHBlci5weXgKK2luZGV4IDliMDAwOTYyOWRlLi41N2Q2MDQ3YTBkZiAxMDA2NDQKKy0tLSBhL3Ny Yy9zYWdlL2R5bmFtaWNzL2FyaXRobWV0aWNfZHluYW1pY3MvcHJvamVjdGl2ZV9kc19oZWxwZXIu cHl4CisrKysgYi9zcmMvc2FnZS9keW5hbWljcy9hcml0aG1ldGljX2R5bmFtaWNzL3Byb2plY3Rp dmVfZHNfaGVscGVyLnB5eAorQEAgLTI0LDcgKzI0LDcgQEAgZnJvbSBzYWdlLnJpbmdzLmZpbml0 ZV9yaW5ncy5maW5pdGVfZmllbGRfY29uc3RydWN0b3IgaW1wb3J0IEdGCisgZnJvbSBzYWdlLmNv bWJpbmF0LnN1YnNldCBpbXBvcnQgc3Vic2V0cworIAorIAorLWNwZGVmIF9mYXN0X3Bvc3NpYmxl X3BlcmlvZHMoc2VsZiwgcmV0dXJuX3BvaW50cz1GYWxzZSkgbm9leGNlcHQ6CisrY3BkZWYgX2Zh c3RfcG9zc2libGVfcGVyaW9kcyhzZWxmLCByZXR1cm5fcG9pbnRzPUZhbHNlKToKKyAgICAgciIi IgorICAgICBSZXR1cm4gdGhlIGxpc3Qgb2YgcG9zc2libGUgbWluaW1hbCBwZXJpb2RzIG9mIGEg cGVyaW9kaWMgcG9pbnQKKyAgICAgb3ZlciBgXFFRYCBhbmQgKG9wdGlvbmFsbHkpIGEgcG9pbnQg aW4gZWFjaCBjeWNsZS4KK0BAIC0xOTgsNyArMTk4LDcgQEAgY3BkZWYgaW50IF9oYXNoKGxpc3Qg UG9pbnQsIGludCBwcmltZSkgbm9leGNlcHQ6CisgCisgICAgIHJldHVybiBoYXNoX3EKKyAKKy1j cGRlZiBsaXN0IF9nZXRfcG9pbnRfZnJvbV9oYXNoKGludCB2YWx1ZSwgaW50IHByaW1lLCBpbnQg ZGltZW5zaW9uKSBub2V4Y2VwdDoKKytjcGRlZiBsaXN0IF9nZXRfcG9pbnRfZnJvbV9oYXNoKGlu dCB2YWx1ZSwgaW50IHByaW1lLCBpbnQgZGltZW5zaW9uKToKKyAgICAgIiIiCisgICAgIEhhc2gg dW5pcXVlIG51bWJlciB0byBwb2ludCBhcyBhIGxpc3QuCisgCitAQCAtMjQwLDcgKzI0MCw3IEBA IGNkZWYgaW5saW5lIGludCBfbW9kX2ludihpbnQgbnVtLCBpbnQgcHJpbWUpIG5vZXhjZXB0Ogor ICAgICBlbHNlOgorICAgICAgICAgcmV0dXJuIHkKKyAKKy1jcGRlZiBfbm9ybWFsaXplX2Nvb3Jk aW5hdGVzKGxpc3QgcG9pbnQsIGludCBwcmltZSwgaW50IGxlbl9wb2ludHMpIG5vZXhjZXB0Ogor K2NwZGVmIF9ub3JtYWxpemVfY29vcmRpbmF0ZXMobGlzdCBwb2ludCwgaW50IHByaW1lLCBpbnQg bGVuX3BvaW50cyk6CisgICAgICIiIgorICAgICBOb3JtYWxpemUgdGhlIGNvb3JkaW5hdGVzIG9m IHRoZSBwb2ludCBmb3IgdGhlIGdpdmVuIHByaW1lLgorIAorQEAgLTI2OSw3ICsyNjksNyBAQCBj cGRlZiBfbm9ybWFsaXplX2Nvb3JkaW5hdGVzKGxpc3QgcG9pbnQsIGludCBwcmltZSwgaW50IGxl bl9wb2ludHMpIG5vZXhjZXB0OgorICAgICBmb3IgY29lZmZpY2llbnQgaW4gcmFuZ2UobGVuX3Bv aW50cyk6CisgICAgICAgICBwb2ludFtjb2VmZmljaWVudF0gPSAocG9pbnRbY29lZmZpY2llbnRd ICogbW9kX2ludmVyc2UpICUgcHJpbWUKKyAKKy1jcGRlZiBfYWxsX3BlcmlvZGljX3BvaW50cyhz ZWxmKSBub2V4Y2VwdDoKKytjcGRlZiBfYWxsX3BlcmlvZGljX3BvaW50cyhzZWxmKToKKyAgICAg IiIiCisgICAgIEZpbmQgYWxsIHBlcmlvZGljIHBvaW50cyBvdmVyIGEgZmluaXRlIGZpZWxkLgor IAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2R5bmFtaWNzL2NvbXBsZXhfZHluYW1pY3MvbWFuZGVs X2p1bGlhX2hlbHBlci5weXggYi9zcmMvc2FnZS9keW5hbWljcy9jb21wbGV4X2R5bmFtaWNzL21h bmRlbF9qdWxpYV9oZWxwZXIucHl4CitpbmRleCAzMmZmYjFlZmZlNS4uNDNjZTBlZmZkNTggMTAw NjQ0CistLS0gYS9zcmMvc2FnZS9keW5hbWljcy9jb21wbGV4X2R5bmFtaWNzL21hbmRlbF9qdWxp YV9oZWxwZXIucHl4CisrKysgYi9zcmMvc2FnZS9keW5hbWljcy9jb21wbGV4X2R5bmFtaWNzL21h bmRlbF9qdWxpYV9oZWxwZXIucHl4CitAQCAtNjEsNyArNjEsNyBAQCBkZWYgX2NvbG9yX3RvX1JH Qihjb2xvcik6CisgCisgY3BkZWYgZmFzdF9tYW5kZWxicm90X3Bsb3QoZG91YmxlIHhfY2VudGVy LCBkb3VibGUgeV9jZW50ZXIsCisgIGRvdWJsZSBpbWFnZV93aWR0aCwgbG9uZyBtYXhfaXRlcmF0 aW9uLCBsb25nIHBpeGVsX2NvdW50LAorLSBsb25nIGxldmVsX3NlcCwgbG9uZyBjb2xvcl9udW0s IGJhc2VfY29sb3IpIG5vZXhjZXB0OgorKyBsb25nIGxldmVsX3NlcCwgbG9uZyBjb2xvcl9udW0s IGJhc2VfY29sb3IpOgorICAgICByIiIiCisgICAgIFBsb3RzIHRoZSBNYW5kZWxicm90IHNldCBp biB0aGUgY29tcGxleCBwbGFuZSBmb3IgdGhlIG1hcCBgUV9jKHopID0gel4yICsgY2AuCisgCitA QCAtMTc5LDcgKzE3OSw3IEBAIGNwZGVmIGZhc3RfbWFuZGVsYnJvdF9wbG90KGRvdWJsZSB4X2Nl bnRlciwgZG91YmxlIHlfY2VudGVyLAorIAorIAorIGNwZGVmIGZhc3RfZXh0ZXJuYWxfcmF5KGRv dWJsZSB0aGV0YSwgbG9uZyBEPTMwLCBsb25nIFM9MTAsIGxvbmcgUj0xMDAsCistIGxvbmcgcGl4 ZWxfY291bnQ9NTAwLCBkb3VibGUgaW1hZ2Vfd2lkdGg9NCwgbG9uZyBwcmVjPTMwMCkgbm9leGNl cHQ6CisrIGxvbmcgcGl4ZWxfY291bnQ9NTAwLCBkb3VibGUgaW1hZ2Vfd2lkdGg9NCwgbG9uZyBw cmVjPTMwMCk6CisgICAgIHIiIiIKKyAgICAgUmV0dXJuIGEgbGlzdCBvZiBwb2ludHMgdGhhdCBh cHByb3hpbWF0ZSB0aGUgZXh0ZXJuYWwgcmF5IGZvciBhIGdpdmVuIGFuZ2xlLgorIAorQEAgLTI5 MCw3ICsyOTAsNyBAQCBjcGRlZiBmYXN0X2V4dGVybmFsX3JheShkb3VibGUgdGhldGEsIGxvbmcg RD0zMCwgbG9uZyBTPTEwLCBsb25nIFI9MTAwLAorICAgICByZXR1cm4gY19saXN0CisgCisgY3Bk ZWYgY29udmVydF90b19waXhlbHMocG9pbnRfbGlzdCwgZG91YmxlIHhfMCwgZG91YmxlIHlfMCwg ZG91YmxlIHdpZHRoLAorLSBsb25nIG51bWJlcl9vZl9waXhlbHMpIG5vZXhjZXB0OgorKyBsb25n IG51bWJlcl9vZl9waXhlbHMpOgorICAgICByIiIiCisgICAgIENvbnZlcnRzIGNhcnRlc2lhbiBj b29yZGluYXRlcyB0byBwaXhlbHMgd2l0aGluIGEgc3BlY2lmaWVkIHdpbmRvdy4KKyAKK0BAIC0z MzQsNyArMzM0LDcgQEAgY3BkZWYgY29udmVydF90b19waXhlbHMocG9pbnRfbGlzdCwgZG91Ymxl IHhfMCwgZG91YmxlIHlfMCwgZG91YmxlIHdpZHRoLAorICAgICAgICAgcGl4ZWxfbGlzdC5hcHBl bmQoKHhfcGl4ZWwsIHlfcGl4ZWwpKQorICAgICByZXR1cm4gcGl4ZWxfbGlzdAorIAorLWNwZGVm IGdldF9saW5lKHN0YXJ0LCBlbmQpIG5vZXhjZXB0OgorK2NwZGVmIGdldF9saW5lKHN0YXJ0LCBl bmQpOgorICAgICByIiIiCisgICAgIFByb2R1Y2VzIGEgbGlzdCBvZiBwaXhlbCBjb29yZGluYXRl cyBhcHByb3hpbWF0aW5nIGEgbGluZSBmcm9tIGEgc3RhcnRpbmcKKyAgICAgcG9pbnQgdG8gYW4g ZW5kaW5nIHBvaW50IHVzaW5nIHRoZSBCcmVzZW5oYW0ncyBMaW5lIEFsZ29yaXRobS4KK0BAIC00 MjEsNyArNDIxLDcgQEAgY3BkZWYgZ2V0X2xpbmUoc3RhcnQsIGVuZCkgbm9leGNlcHQ6CisgY3Bk ZWYgZmFzdF9qdWxpYV9wbG90KGRvdWJsZSBjX3JlYWwsIGRvdWJsZSBjX2ltYWcsCisgICBkb3Vi bGUgeF9jZW50ZXI9MCwgZG91YmxlIHlfY2VudGVyPTAsIGRvdWJsZSBpbWFnZV93aWR0aD00LAor ICAgbG9uZyBtYXhfaXRlcmF0aW9uPTUwMCwgbG9uZyBwaXhlbF9jb3VudD01MDAsIGxvbmcgbGV2 ZWxfc2VwPTIsCistICBsb25nIGNvbG9yX251bT00MCwgYmFzZV9jb2xvcj1bNTAsIDUwLCA1MF0p IG5vZXhjZXB0OgorKyAgbG9uZyBjb2xvcl9udW09NDAsIGJhc2VfY29sb3I9WzUwLCA1MCwgNTBd KToKKyAgICAgciIiIgorICAgICBQbG90cyB0aGUgSnVsaWEgc2V0IGZvciBhIGdpdmVuIGBjYCB2 YWx1ZSBpbiB0aGUgY29tcGxleCBwbGFuZSBmb3IgdGhlIG1hcCBgUV9jKHopID0gel4yICsgY2Au CisgCitAQCAtNTQwLDcgKzU0MCw3IEBAIGNwZGVmIGZhc3RfanVsaWFfcGxvdChkb3VibGUgY19y ZWFsLCBkb3VibGUgY19pbWFnLAorIGNwZGVmIGp1bGlhX2hlbHBlcihkb3VibGUgY19yZWFsLCBk b3VibGUgY19pbWFnLCBkb3VibGUgeF9jZW50ZXI9MCwKKyAgZG91YmxlIHlfY2VudGVyPTAsIGRv dWJsZSBpbWFnZV93aWR0aD00LCBsb25nIG1heF9pdGVyYXRpb249NTAwLAorICBsb25nIHBpeGVs X2NvdW50PTUwMCwgbG9uZyBsZXZlbF9zZXA9MiwgbG9uZyBjb2xvcl9udW09NDAsCistIGJhc2Vf Y29sb3I9WzUwLCA1MCwgNTBdLCBwb2ludF9jb2xvcj1bMjU1LCAwLCAwXSkgbm9leGNlcHQ6Cisr IGJhc2VfY29sb3I9WzUwLCA1MCwgNTBdLCBwb2ludF9jb2xvcj1bMjU1LCAwLCAwXSk6CisgICAg IHIiIiIKKyAgICAgSGVscGVyIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyB0aGUgaW1hZ2Ugb2YgYSBK dWxpYSBzZXQgZm9yIGEgZ2l2ZW4KKyAgICAgYGNgIHZhbHVlIHNpZGUgYnkgc2lkZSB3aXRoIHRo ZSBNYW5kZWxicm90IHNldCB3aXRoIGEgcG9pbnQgZGVub3RpbmcKK0BAIC02MzEsNyArNjMxLDcg QEAgY3BkZWYganVsaWFfaGVscGVyKGRvdWJsZSBjX3JlYWwsIGRvdWJsZSBjX2ltYWcsIGRvdWJs ZSB4X2NlbnRlcj0wLAorIAorIGNwZGVmIHBvbHlub21pYWxfbWFuZGVsYnJvdChmLCBwYXJhbWV0 ZXI9Tm9uZSwgZG91YmxlIHhfY2VudGVyPTAsCisgIGRvdWJsZSB5X2NlbnRlcj0wLCBpbWFnZV93 aWR0aD00LCBpbnQgbWF4X2l0ZXJhdGlvbj01MCwgaW50IHBpeGVsX2NvdW50PTUwMCwKKy0gaW50 IGxldmVsX3NlcD0xLCBpbnQgY29sb3JfbnVtPTMwLCBiYXNlX2NvbG9yPUNvbG9yKCdyZWQnKSkg bm9leGNlcHQ6CisrIGludCBsZXZlbF9zZXA9MSwgaW50IGNvbG9yX251bT0zMCwgYmFzZV9jb2xv cj1Db2xvcigncmVkJykpOgorICAgICByIiIiCisgICAgIFBsb3RzIHRoZSBNYW5kZWxicm90IHNl dCBpbiB0aGUgY29tcGxleCBwbGFuZSBmb3IgYSBmYW1pbHkgb2YgcG9seW5vbWlhbCBtYXBzLgor IAorQEAgLTkzNCw3ICs5MzQsNyBAQCBjcGRlZiBwb2x5bm9taWFsX21hbmRlbGJyb3QoZiwgcGFy YW1ldGVyPU5vbmUsIGRvdWJsZSB4X2NlbnRlcj0wLAorIAorIGNwZGVmIGdlbmVyYWxfanVsaWEo ZiwgZG91YmxlIHhfY2VudGVyPTAsIGRvdWJsZSB5X2NlbnRlcj0wLCBpbWFnZV93aWR0aD00LAor ICBpbnQgbWF4X2l0ZXJhdGlvbj01MCwgaW50IHBpeGVsX2NvdW50PTUwMCwgaW50IGxldmVsX3Nl cD0xLCBpbnQgY29sb3JfbnVtPTMwLAorLSBiYXNlX2NvbG9yPVs1MCw1MCw1MF0pIG5vZXhjZXB0 OgorKyBiYXNlX2NvbG9yPVs1MCw1MCw1MF0pOgorICAgICByIiIiCisgICAgIFBsb3RzIEp1bGlh IHNldHMgZm9yIGdlbmVyYWwgcG9seW5vbWlhbHMuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uv ZXh0L2Zhc3RfY2FsbGFibGUucHl4IGIvc3JjL3NhZ2UvZXh0L2Zhc3RfY2FsbGFibGUucHl4Citp bmRleCBhOTM3OTlhYjE5YS4uYjkwNzJkYTYxYzUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9leHQv ZmFzdF9jYWxsYWJsZS5weXgKKysrKyBiL3NyYy9zYWdlL2V4dC9mYXN0X2NhbGxhYmxlLnB5eAor QEAgLTE1NzgsNyArMTU3OCw3IEBAIGNkZWYgY2xhc3MgRXhwcmVzc2lvbkNob2ljZShFeHByZXNz aW9uKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXByKHNlbGYu X2NvbmQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcHIoc2Vs Zi5faWZmYWxzZSkpCisgCistY3BkZWYgX2V4cHJlc3Npb25fYmlub3BfaGVscGVyKHMsIG8sIG9w KSBub2V4Y2VwdDoKKytjcGRlZiBfZXhwcmVzc2lvbl9iaW5vcF9oZWxwZXIocywgbywgb3ApOgor ICAgICByIiIiCisgICAgIE1ha2UgYW4gRXhwcmVzc2lvbiBmb3IgKHMgb3AgbykuICBFaXRoZXIg cyBvciBvIChvciBib3RoKSBtdXN0IGFscmVhZHkKKyAgICAgYmUgYW4gZXhwcmVzc2lvbi4KK0BA IC0xNzE0LDcgKzE3MTQsNyBAQCBjbGFzcyBJbnRlZ2VyUG93ZXJGdW5jdGlvbigpOgorICAgICAg ICAgcmV0dXJuIHgqKnNlbGYuZXhwb25lbnQKKyAKKyBjZGVmIGRpY3QgYnVpbHRpbl9mdW5jdGlv bnMgPSBOb25lCistY3BkZWYgZGljdCBnZXRfYnVpbHRpbl9mdW5jdGlvbnMoKSBub2V4Y2VwdDoK KytjcGRlZiBkaWN0IGdldF9idWlsdGluX2Z1bmN0aW9ucygpOgorICAgICByIiIiCisgICAgIFRv IGhhbmRsZSBFeHByZXNzaW9uQ2FsbCwgd2UgbmVlZCB0byBtYXAgZnJvbSBTYWdlIGFuZAorICAg ICBQeXRob24gZnVuY3Rpb25zIHRvIG9wY29kZSBuYW1lcy4KK0BAIC0xNzY4LDcgKzE3NjgsNyBA QCBjcGRlZiBkaWN0IGdldF9idWlsdGluX2Z1bmN0aW9ucygpIG5vZXhjZXB0OgorIAorIGNkZWYg Y2xhc3MgSW5zdHJ1Y3Rpb25TdHJlYW0gICMgZm9yd2FyZCBkZWNsYXJhdGlvbgorIAorLWNwZGVm IGdlbmVyYXRlX2NvZGUoRXhwcmVzc2lvbiBleHByLCBJbnN0cnVjdGlvblN0cmVhbSBzdHJlYW0p IG5vZXhjZXB0OgorK2NwZGVmIGdlbmVyYXRlX2NvZGUoRXhwcmVzc2lvbiBleHByLCBJbnN0cnVj dGlvblN0cmVhbSBzdHJlYW0pOgorICAgICByIiIiCisgICAgIEdlbmVyYXRlIGNvZGUgZnJvbSBh biBFeHByZXNzaW9uIHRyZWU7IHdyaXRlIHRoZSByZXN1bHQgaW50byBhbgorICAgICBJbnN0cnVj dGlvblN0cmVhbS4KK0BAIC0yMTkyLDcgKzIxOTIsNyBAQCBjZGVmIGNsYXNzIEluc3RydWN0aW9u U3RyZWFtOgorICAgICAgICAgIiIiCisgICAgICAgICBzZWxmLmluc3RyMChvcG5hbWUsIGFyZ3Mp CisgCistICAgIGNkZWYgaW5zdHIwKHNlbGYsIG9wbmFtZSwgdHVwbGUgYXJncykgbm9leGNlcHQ6 CisrICAgIGNkZWYgaW5zdHIwKHNlbGYsIG9wbmFtZSwgdHVwbGUgYXJncyk6CisgICAgICAgICAi IiIKKyAgICAgICAgIENkZWYgdmVyc2lvbiBvZiBpbnN0ci4gKENhbid0IGNwZGVmIGJlY2F1c2Ug b2Ygc3RhciBhcmdzLikKKyAgICAgICAgICIiIgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2V4dC9z dGRzYWdlLnB4ZCBiL3NyYy9zYWdlL2V4dC9zdGRzYWdlLnB4ZAoraW5kZXggNzI0OWZiZjg0ZDgu LmRkZDNmZDc2NTA0IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvZXh0L3N0ZHNhZ2UucHhkCisrKysg Yi9zcmMvc2FnZS9leHQvc3Rkc2FnZS5weGQKK0BAIC0xMyw3ICsxMyw3IEBAIFN0YW5kYXJkIEMg aGVscGVyIGNvZGUgZm9yIEN5dGhvbiBtb2R1bGVzCisgZnJvbSBjcHl0aG9uLm9iamVjdCBjaW1w b3J0IFB5X1RZUEUsIFB5VHlwZU9iamVjdCwgUHlPYmplY3QKKyAKKyAKKy1jZGVmIGlubGluZSBQ WV9ORVcodHlwZSB0KSBub2V4Y2VwdDoKKytjZGVmIGlubGluZSBQWV9ORVcodHlwZSB0KToKKyAg ICAgIiIiCisgICAgIFJldHVybiBgYHQuX19uZXdfXyh0KWBgLiAgVGhpcyB3b3JrcyBldmVuIGZv ciB0eXBlcyBsaWtlCisgICAgIDpjbGFzczpgSW50ZWdlcmAgd2hlcmUgd2UgY2hhbmdlIGBgdHBf bmV3YGAgYXQgcnVudGltZSAoQ3l0aG9uCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvZnVuY3Rpb25z L3ByaW1lX3BpLnB5eCBiL3NyYy9zYWdlL2Z1bmN0aW9ucy9wcmltZV9waS5weXgKK2luZGV4IDUw YmU0ZDI0YTc0Li44ZGVkZTA5NDIyOSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2Z1bmN0aW9ucy9w cmltZV9waS5weXgKKysrKyBiL3NyYy9zYWdlL2Z1bmN0aW9ucy9wcmltZV9waS5weXgKK0BAIC0y MTAsNyArMjEwLDcgQEAgY2RlZiBjbGFzcyBQcmltZVBpKEJ1aWx0aW5GdW5jdGlvbik6CisgcHJp bWVfcGkgPSBQcmltZVBpKCkKKyAKKyAKKy1jcGRlZiBJbnRlZ2VyIGxlZ2VuZHJlX3BoaSh4LCBh KSBub2V4Y2VwdDoKKytjcGRlZiBJbnRlZ2VyIGxlZ2VuZHJlX3BoaSh4LCBhKToKKyAgICAgciIi IgorICAgICBMZWdlbmRyZSdzIGZvcm11bGEsIGFsc28ga25vd24gYXMgdGhlIHBhcnRpYWwgc2ll dmUgZnVuY3Rpb24sIGlzIGEgdXNlZnVsCisgICAgIGNvbWJpbmF0b3JpYWwgZnVuY3Rpb24gZm9y IGNvbXB1dGluZyB0aGUgcHJpbWUgY291bnRpbmcgZnVuY3Rpb24gKHRoZQorZGlmZiAtLWdpdCBh L3NyYy9zYWdlL2dlb21ldHJ5L2ludGVncmFsX3BvaW50cy5weGkgYi9zcmMvc2FnZS9nZW9tZXRy eS9pbnRlZ3JhbF9wb2ludHMucHhpCitpbmRleCA1YTEwZWJmZTU0OC4uNDBmMjZlMzlkNjkgMTAw NjQ0CistLS0gYS9zcmMvc2FnZS9nZW9tZXRyeS9pbnRlZ3JhbF9wb2ludHMucHhpCisrKysgYi9z cmMvc2FnZS9nZW9tZXRyeS9pbnRlZ3JhbF9wb2ludHMucHhpCitAQCAtNzAsNyArNzAsNyBAQCBm cm9tIHNhZ2UubW9kdWxlcy5mcmVlX21vZHVsZSBpbXBvcnQgRnJlZU1vZHVsZQorICMgICAgICBl eGlzdGluZyBsYXR0aWNlIHBvaW50IGFuZCB0aGVuIGNvcHkgaXQhCisgCisgCistY3BkZWYgdHVw bGUgcGFyYWxsZWxvdG9wZV9wb2ludHMoc3Bhbm5pbmdfcG9pbnRzLCBsYXR0aWNlKSBub2V4Y2Vw dDoKKytjcGRlZiB0dXBsZSBwYXJhbGxlbG90b3BlX3BvaW50cyhzcGFubmluZ19wb2ludHMsIGxh dHRpY2UpOgorICAgICByIiIiCisgICAgIFJldHVybiBpbnRlZ3JhbCBwb2ludHMgaW4gdGhlIHBh cmFsbGVsb3RvcGUgc3RhcnRpbmcgYXQgdGhlIG9yaWdpbgorICAgICBhbmQgc3Bhbm5lZCBieSB0 aGUgYGBzcGFubmluZ19wb2ludHNgYC4KK0BAIC0xNDMsNyArMTQzLDcgQEAgY3BkZWYgdHVwbGUg cGFyYWxsZWxvdG9wZV9wb2ludHMoc3Bhbm5pbmdfcG9pbnRzLCBsYXR0aWNlKSBub2V4Y2VwdDoK KyAgICAgcmV0dXJuIHBvaW50cworIAorIAorLWNwZGVmIHR1cGxlIHJheV9tYXRyaXhfbm9ybWFs X2Zvcm0oUikgbm9leGNlcHQ6CisrY3BkZWYgdHVwbGUgcmF5X21hdHJpeF9ub3JtYWxfZm9ybShS KToKKyAgICAgciIiIgorICAgICBDb21wdXRlIHRoZSBTbWl0aCBub3JtYWwgZm9ybSBvZiB0aGUg cmF5IG1hdHJpeCBmb3IKKyAgICAgOmZ1bmM6YHBhcmFsbGVsb3RvcGVfcG9pbnRzYC4KK0BAIC0x NzksNyArMTc5LDcgQEAgY3BkZWYgdHVwbGUgcmF5X21hdHJpeF9ub3JtYWxfZm9ybShSKSBub2V4 Y2VwdDoKKyAjIFRoZSBvcHRpbWl6ZWQgdmVyc2lvbiBhdm9pZHMgY29uc3RydWN0aW5nIG5ldyBt YXRyaWNlcywgdmVjdG9ycywgYW5kIGxhdHRpY2UgcG9pbnRzCisgY3BkZWYgdHVwbGUgbG9vcF9v dmVyX3BhcmFsbGVsb3RvcGVfcG9pbnRzKGUsIGQsIE1hdHJpeENsYXNzIFZEaW52LAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRyaXhDbGFzcyBSLCBsYXR0 aWNlLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBPU5vbmUs IGI9Tm9uZSkgbm9leGNlcHQ6CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEE9Tm9uZSwgYj1Ob25lKToKKyAgICAgciIiIgorICAgICBUaGUgaW5uZXIgbG9vcCBv ZiA6ZnVuYzpgcGFyYWxsZWxvdG9wZV9wb2ludHNgLgorIAorQEAgLTI0NCw3ICsyNDQsNyBAQCBj cGRlZiB0dXBsZSBsb29wX292ZXJfcGFyYWxsZWxvdG9wZV9wb2ludHMoZSwgZCwgTWF0cml4Q2xh c3MgVkRpbnYsCisgCisgCisgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCistY3BkZWYgdHVwbGUgc2lt cGxleF9wb2ludHModmVydGljZXMpIG5vZXhjZXB0OgorK2NwZGVmIHR1cGxlIHNpbXBsZXhfcG9p bnRzKHZlcnRpY2VzKToKKyAgICAgciIiIgorICAgICBSZXR1cm4gdGhlIGludGVncmFsIHBvaW50 cyBpbiBhIGxhdHRpY2Ugc2ltcGxleC4KKyAKK0BAIC0zMjksNyArMzI5LDcgQEAgY3BkZWYgdHVw bGUgc2ltcGxleF9wb2ludHModmVydGljZXMpIG5vZXhjZXB0OgorICAgICByZXR1cm4gcG9pbnRz CisgCisgCistY2RlZiB0cmFuc2xhdGVfcG9pbnRzKHZfbGlzdCwgVmVjdG9yQ2xhc3MgZGVsdGEp IG5vZXhjZXB0OgorK2NkZWYgdHJhbnNsYXRlX3BvaW50cyh2X2xpc3QsIFZlY3RvckNsYXNzIGRl bHRhKToKKyAgICAgciIiIgorICAgICBBZGQgYGBkZWx0YWBgIHRvIGVhY2ggdmVjdG9yIGluIGBg dl9saXN0YGAuCisgICAgICIiIgorQEAgLTM0OCw3ICszNDgsNyBAQCBjZGVmIHRyYW5zbGF0ZV9w b2ludHModl9saXN0LCBWZWN0b3JDbGFzcyBkZWx0YSkgbm9leGNlcHQ6CisgCisgY3BkZWYgcmVj dGFuZ3VsYXJfYm94X3BvaW50cyhsaXN0IGJveF9taW4sIGxpc3QgYm94X21heCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHBvbHloZWRyb249Tm9uZSwgY291bnRfb25seT1GYWxzZSwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybl9zYXR1cmF0ZWQ9RmFsc2UpIG5v ZXhjZXB0OgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuX3NhdHVyYXRlZD1G YWxzZSk6CisgICAgIHIiIiIKKyAgICAgUmV0dXJuIHRoZSBpbnRlZ3JhbCBwb2ludHMgaW4gdGhl IGxhdHRpY2UgYm91bmRpbmcgYm94IHRoYXQgYXJlCisgICAgIGFsc28gY29udGFpbmVkIGluIHRo ZSBnaXZlbiBwb2x5aGVkcm9uLgorQEAgLTU4Myw3ICs1ODMsNyBAQCBjcGRlZiByZWN0YW5ndWxh cl9ib3hfcG9pbnRzKGxpc3QgYm94X21pbiwgbGlzdCBib3hfbWF4LAorIAorICAgICByZXR1cm4g dHVwbGUocG9pbnRzKQorIAorLWNkZWYgbGlzdCBwZXJtX2FjdGlvbihsaXN0IHAsIGxpc3QgbHN0 KSBub2V4Y2VwdDoKKytjZGVmIGxpc3QgcGVybV9hY3Rpb24obGlzdCBwLCBsaXN0IGxzdCk6Cisg ICAgICIiIgorICAgICBSZXR1cm4gdGhlIGFjdGlvbiBvZiBhIHBlcm11dGF0aW9uIGBgcGBgIG9m IGAoMCwgLi4uLCBuLTEpYAorICAgICBvbiBhIGxpc3Qgb2YgbGVuZ3RoIGBuYC4KK0BAIC01OTIs NyArNTkyLDcgQEAgY2RlZiBsaXN0IHBlcm1fYWN0aW9uKGxpc3QgcCwgbGlzdCBsc3QpIG5vZXhj ZXB0OgorIAorIGNkZWYgbG9vcF9vdmVyX3JlY3Rhbmd1bGFyX2JveF9wb2ludHMobGlzdCBib3hf bWluLCBsaXN0IGJveF9tYXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJbmVxdWFsaXR5Q29sbGVjdGlvbiBpbmVxdWFsaXRpZXMsCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbnQgZCwgYmludCBjb3VudF9vbmx5KSBub2V4Y2VwdDoKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkLCBiaW50IGNvdW50X29u bHkpOgorICAgICAiIiIKKyAgICAgVGhlIGlubmVyIGxvb3Agb2YgOmZ1bmM6YHJlY3Rhbmd1bGFy X2JveF9wb2ludHNgLgorIAorQEAgLTY2Niw3ICs2NjYsNyBAQCBjZGVmIGxvb3Bfb3Zlcl9yZWN0 YW5ndWxhcl9ib3hfcG9pbnRzKGxpc3QgYm94X21pbiwgbGlzdCBib3hfbWF4LAorIAorIGNkZWYg bG9vcF9vdmVyX3JlY3Rhbmd1bGFyX2JveF9wb2ludHNfc2F0dXJhdGVkKGxpc3QgYm94X21pbiwg bGlzdCBib3hfbWF4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEluZXF1YWxpdHlDb2xsZWN0aW9uIGluZXF1YWxpdGllcywKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZCkgbm9leGNlcHQ6CisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGQpOgorICAg ICAiIiIKKyAgICAgVGhlIGFuYWxvZyBvZiA6ZnVuYzpgcmVjdGFuZ3VsYXJfYm94X3BvaW50c2Ag ZXhjZXB0IHRoYXQgaXQga2VlcHMKKyAgICAgdHJhY2sgb2Ygd2hpY2ggaW5lcXVhbGl0aWVzIGFy ZSBzYXR1cmF0ZWQuCitAQCAtNzkwLDcgKzc5MCw3IEBAIGNkZWYgY2xhc3MgSW5lcXVhbGl0eV9n ZW5lcmljOgorICAgICAgICAgcyArPSAnKSB4ICsgJyArIHN0cihzZWxmLmIpICsgJyA+PSAwJwor ICAgICAgICAgcmV0dXJuIHMKKyAKKy0gICAgY2RlZiBwcmVwYXJlX25leHRfdG9faW5uZXJfbG9v cChzZWxmLCBwKSBub2V4Y2VwdDoKKysgICAgY2RlZiBwcmVwYXJlX25leHRfdG9faW5uZXJfbG9v cChzZWxmLCBwKToKKyAgICAgICAgICIiIgorICAgICAgICAgSW4gOmNsYXNzOmBJbmVxdWFsaXR5 X2ludGAgdGhpcyBtZXRob2QgaXMgdXNlZCB0byBwZWVsIG9mIHRoZQorICAgICAgICAgbmV4dC10 by1pbm5lciBsb29wLgorQEAgLTc5OSw3ICs3OTksNyBAQCBjZGVmIGNsYXNzIEluZXF1YWxpdHlf Z2VuZXJpYzoKKyAgICAgICAgICIiIgorICAgICAgICAgcGFzcworIAorLSAgICBjZGVmIHByZXBh cmVfaW5uZXJfbG9vcChzZWxmLCBwKSBub2V4Y2VwdDoKKysgICAgY2RlZiBwcmVwYXJlX2lubmVy X2xvb3Aoc2VsZiwgcCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFBlZWwgb2ZmIHRoZSBpbm5l ciBsb29wLgorIAorQEAgLTk1Niw3ICs5NTYsNyBAQCBjZGVmIGNsYXNzIEluZXF1YWxpdHlfaW50 OgorICAgICAgICAgcyArPSAnKSB4ICsgJyArIHN0cihzZWxmLmIpICsgJyA+PSAwJworICAgICAg ICAgcmV0dXJuIHMKKyAKKy0gICAgY2RlZiBwcmVwYXJlX25leHRfdG9faW5uZXJfbG9vcChJbmVx dWFsaXR5X2ludCBzZWxmLCBwKSBub2V4Y2VwdDoKKysgICAgY2RlZiBwcmVwYXJlX25leHRfdG9f aW5uZXJfbG9vcChJbmVxdWFsaXR5X2ludCBzZWxmLCBwKToKKyAgICAgICAgICIiIgorICAgICAg ICAgUGVlbCBvZmYgdGhlIG5leHQtdG8taW5uZXIgbG9vcC4KKyAKK0BAIC05NjcsNyArOTY3LDcg QEAgY2RlZiBjbGFzcyBJbmVxdWFsaXR5X2ludDoKKyAgICAgICAgIGZvciBqIGluIHJhbmdlKDIs IHNlbGYuZGltKToKKyAgICAgICAgICAgICBzZWxmLmNhY2hlX25leHQgKz0gc2VsZi5BW2pdICog cFtqXQorIAorLSAgICBjZGVmIHByZXBhcmVfaW5uZXJfbG9vcChJbmVxdWFsaXR5X2ludCBzZWxm LCBwKSBub2V4Y2VwdDoKKysgICAgY2RlZiBwcmVwYXJlX2lubmVyX2xvb3AoSW5lcXVhbGl0eV9p bnQgc2VsZiwgcCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFBlZWwgb2ZmIHRoZSBpbm5lciBs b29wLgorIAorQEAgLTEwNTQsNyArMTA1NCw3IEBAIGNkZWYgY2xhc3MgSW5lcXVhbGl0eUNvbGxl Y3Rpb246CisgICAgICAgICAgICAgcyArPSBzdHIoPEluZXF1YWxpdHlfZ2VuZXJpYz5pbmVxKSAr ICdcbicKKyAgICAgICAgIHJldHVybiBzLnN0cmlwKCkKKyAKKy0gICAgY3BkZWYgdHVwbGUgX21h a2VfQV9iKHNlbGYsIEhyZXBfb2JqLCBsaXN0IHBlcm11dGF0aW9uKSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgdHVwbGUgX21ha2VfQV9iKHNlbGYsIEhyZXBfb2JqLCBsaXN0IHBlcm11dGF0aW9uKToK KyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgY29lZmZpY2llbnRzIGFuZCBjb25z dGFudCBvZiB0aGUgSC1yZXByZXNlbnRhdGlvbgorICAgICAgICAgb2JqZWN0LgorQEAgLTExMjQs NyArMTEyNCw3IEBAIGNkZWYgY2xhc3MgSW5lcXVhbGl0eUNvbGxlY3Rpb246CisgICAgICAgICAg ICAgICAgIHJhaXNlIFR5cGVFcnJvcignQ2Fubm90IGV4dHJhY3QgSHJlcHJlc2VudGF0aW9uIGRh dGEgZnJvbSBwb2x5aGVkcm9uLicpCisgCisgICAgIGNkZWYgX2Npbml0X2Zyb21fUFBMKHNlbGYs IGxpc3QgbWF4X2Fic19jb29yZGluYXRlcywgbGlzdCBwZXJtdXRhdGlvbiwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgcG9seWhlZHJvbikgbm9leGNlcHQ6CisrICAgICAgICAgICAgICAgICAg ICAgICAgIHBvbHloZWRyb24pOgorICAgICAgICAgIiIiCisgICAgICAgICBJbml0aWFsaXplIHRo ZSBpbmVxdWFsaXRpZXMgZnJvbSBhIFBQTCBDX1BvbHloZWRyb24KKyAKK0BAIC0xMTczLDcgKzEx NzMsNyBAQCBjZGVmIGNsYXNzIEluZXF1YWxpdHlDb2xsZWN0aW9uOgorICAgICAgICAgICAgICAg ICAgICAgc2VsZi5pbmVxc19nZW5lcmljLmFwcGVuZChIKQorIAorICAgICBjZGVmIF9jaW5pdF9m cm9tX1BvbHloZWRyb24oc2VsZiwgbGlzdCBtYXhfYWJzX2Nvb3JkaW5hdGVzLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGlzdCBwZXJtdXRhdGlvbiwgcG9seWhlZHJvbikgbm9l eGNlcHQ6CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0IHBlcm11dGF0aW9u LCBwb2x5aGVkcm9uKToKKyAgICAgICAgICIiIgorICAgICAgICAgSW5pdGlhbGl6ZSB0aGUgaW5l cXVhbGl0aWVzIGZyb20gYSBTYWdlIFBvbHloZWRyb24KKyAKK0BAIC0xMjI1LDcgKzEyMjUsNyBA QCBjZGVmIGNsYXNzIEluZXF1YWxpdHlDb2xsZWN0aW9uOgorICAgICAgICAgICAgICAgICBIID0g SW5lcXVhbGl0eV9nZW5lcmljKEEsIGIsIEhyZXBfb2JqLmluZGV4KCkpCisgICAgICAgICAgICAg ICAgIHNlbGYuaW5lcXNfZ2VuZXJpYy5hcHBlbmQoSCkKKyAKKy0gICAgY3BkZWYgcHJlcGFyZV9u ZXh0X3RvX2lubmVyX2xvb3Aoc2VsZiwgcCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHByZXBhcmVf bmV4dF90b19pbm5lcl9sb29wKHNlbGYsIHApOgorICAgICAgICAgciIiIgorICAgICAgICAgUGVl bCBvZmYgdGhlIG5leHQtdG8taW5uZXIgbG9vcC4KKyAKK0BAIC0xMjYzLDcgKzEyNjMsNyBAQCBj ZGVmIGNsYXNzIEluZXF1YWxpdHlDb2xsZWN0aW9uOgorICAgICAgICAgZm9yIGluZXEgaW4gc2Vs Zi5pbmVxc19nZW5lcmljOgorICAgICAgICAgICAgICg8SW5lcXVhbGl0eV9nZW5lcmljPmluZXEp LnByZXBhcmVfbmV4dF90b19pbm5lcl9sb29wKHApCisgCistICAgIGNwZGVmIHByZXBhcmVfaW5u ZXJfbG9vcChzZWxmLCBwKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcHJlcGFyZV9pbm5lcl9sb29w KHNlbGYsIHApOgorICAgICAgICAgciIiIgorICAgICAgICAgUGVlbCBvZmYgdGhlIGlubmVyIGxv b3AuCisgCitAQCAtMTMwMiw3ICsxMzAyLDcgQEAgY2RlZiBjbGFzcyBJbmVxdWFsaXR5Q29sbGVj dGlvbjoKKyAgICAgICAgIGZvciBpbmVxIGluIHNlbGYuaW5lcXNfZ2VuZXJpYzoKKyAgICAgICAg ICAgICAoPEluZXF1YWxpdHlfZ2VuZXJpYz5pbmVxKS5wcmVwYXJlX2lubmVyX2xvb3AocCkKKyAK Ky0gICAgY3BkZWYgc3dhcF9pbmVxX3RvX2Zyb250KHNlbGYsIGludCBpKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgc3dhcF9pbmVxX3RvX2Zyb250KHNlbGYsIGludCBpKToKKyAgICAgICAgIHIiIiIK KyAgICAgICAgIFN3YXAgdGhlIGBgaWBgLXRoIGVudHJ5IG9mIHRoZSBsaXN0IHRvIHRoZSBmcm9u dCBvZiB0aGUgbGlzdCBvZiBpbmVxdWFsaXRpZXMuCisgCitAQCAtMTM3Nyw3ICsxMzc3LDcgQEAg Y2RlZiBjbGFzcyBJbmVxdWFsaXR5Q29sbGVjdGlvbjoKKyAgICAgICAgICAgICAgICAgcmV0dXJu IEZhbHNlCisgICAgICAgICByZXR1cm4gVHJ1ZQorIAorLSAgICBjcGRlZiBmcm96ZW5zZXQgc2F0 aXNmaWVkX2FzX2VxdWFsaXRpZXMoc2VsZiwgaW5uZXJfbG9vcF92YXJpYWJsZSkgbm9leGNlcHQ6 CisrICAgIGNwZGVmIGZyb3plbnNldCBzYXRpc2ZpZWRfYXNfZXF1YWxpdGllcyhzZWxmLCBpbm5l cl9sb29wX3ZhcmlhYmxlKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBpbmVx dWFsaXRpZXMgKGJ5IHRoZWlyIGluZGV4KSB0aGF0IGFyZSBzYXRpc2ZpZWQgYXMKKyAgICAgICAg IGVxdWFsaXRpZXMuCitAQCAtMTQyMyw3ICsxNDIzLDcgQEAgY2RlZiBjbGFzcyBJbmVxdWFsaXR5 Q29sbGVjdGlvbjoKKyAKKyAKKyAKKy1jcGRlZiBwcmludF9jYWNoZShJbmVxdWFsaXR5Q29sbGVj dGlvbiBpbmVxdWFsaXR5X2NvbGxlY3Rpb24pIG5vZXhjZXB0OgorK2NwZGVmIHByaW50X2NhY2hl KEluZXF1YWxpdHlDb2xsZWN0aW9uIGluZXF1YWxpdHlfY29sbGVjdGlvbik6CisgICAgIHIiIiIK KyAgICAgUHJpbnQgdGhlIGNhY2hlZCB2YWx1ZXMgaW4gOmNsYXNzOmBJbmVxdWFsaXR5X2ludGAg KGZvcgorICAgICBkZWJ1Z2dpbmcvZG9jdGVzdGluZyBvbmx5KS4KK2RpZmYgLS1naXQgYS9zcmMv c2FnZS9nZW9tZXRyeS9wb2x5aGVkcm9uL2NvbWJpbmF0b3JpYWxfcG9seWhlZHJvbi9iYXNlLnB4 ZCBiL3NyYy9zYWdlL2dlb21ldHJ5L3BvbHloZWRyb24vY29tYmluYXRvcmlhbF9wb2x5aGVkcm9u L2Jhc2UucHhkCitpbmRleCAzNTA2YWFiNjViYi4uYTA0YTExODY4NzYgMTAwNjQ0CistLS0gYS9z cmMvc2FnZS9nZW9tZXRyeS9wb2x5aGVkcm9uL2NvbWJpbmF0b3JpYWxfcG9seWhlZHJvbi9iYXNl LnB4ZAorKysrIGIvc3JjL3NhZ2UvZ2VvbWV0cnkvcG9seWhlZHJvbi9jb21iaW5hdG9yaWFsX3Bv bHloZWRyb24vYmFzZS5weGQKK0BAIC0zMSwzNCArMzEsMzQgQEAgY2RlZiBjbGFzcyBDb21iaW5h dG9yaWFsUG9seWhlZHJvbihTYWdlT2JqZWN0KToKKyAgICAgY2RlZiBMaXN0T2ZQYWlycyBfZmFj ZV9sYXR0aWNlX2luY2lkZW5jZXMgICMgc3RvcmVzIGluY2lkZW5jZXMgaW4gSGFzc2UgZGlhZ3Jh bSBsYWJlbGVkIGluZGljZXMgb2YgdGhlIGZhY2VzCisgICAgIGNkZWYgUG9seWhlZHJvbkZhY2VM YXR0aWNlIF9hbGxfZmFjZXMgICAgICMgY2xhc3MgdG8gZ2VuZXJhdGUgSGFzc2UgZGlhZ3JhbSBp bmNpZGVuY2VzCisgCistICAgIGNkZWYgdHVwbGUgVnJlcChzZWxmKSBub2V4Y2VwdAorLSAgICBj ZGVmIHR1cGxlIGZhY2V0X25hbWVzKHNlbGYpIG5vZXhjZXB0CistICAgIGNkZWYgdHVwbGUgZXF1 YXRpb25zKHNlbGYpIG5vZXhjZXB0CistICAgIGNkZWYgdHVwbGUgZXF1YWxpdGllcyhzZWxmKSBu b2V4Y2VwdAorKyAgICBjZGVmIHR1cGxlIFZyZXAoc2VsZikKKysgICAgY2RlZiB0dXBsZSBmYWNl dF9uYW1lcyhzZWxmKQorKyAgICBjZGVmIHR1cGxlIGVxdWF0aW9ucyhzZWxmKQorKyAgICBjZGVm IHR1cGxlIGVxdWFsaXRpZXMoc2VsZikKKyAgICAgY2RlZiB1bnNpZ25lZCBpbnQgbl9WcmVwcmVz ZW50YXRpb24oc2VsZikgbm9leGNlcHQKKyAgICAgY2RlZiB1bnNpZ25lZCBpbnQgbl9IcmVwcmVz ZW50YXRpb24oc2VsZikgbm9leGNlcHQKKyAgICAgY2RlZiBiaW50IGlzX2JvdW5kZWQoc2VsZikg bm9leGNlcHQKKy0gICAgY2RlZiBMaXN0T2ZGYWNlcyBiaXRyZXBfZmFjZXRzKHNlbGYpIG5vZXhj ZXB0CistICAgIGNkZWYgTGlzdE9mRmFjZXMgYml0cmVwX1ZyZXAoc2VsZikgbm9leGNlcHQKKy0g ICAgY2RlZiB0dXBsZSBmYXJfZmFjZV90dXBsZShzZWxmKSBub2V4Y2VwdAorKyAgICBjZGVmIExp c3RPZkZhY2VzIGJpdHJlcF9mYWNldHMoc2VsZikKKysgICAgY2RlZiBMaXN0T2ZGYWNlcyBiaXRy ZXBfVnJlcChzZWxmKQorKyAgICBjZGVmIHR1cGxlIGZhcl9mYWNlX3R1cGxlKHNlbGYpCisgICAg IGNkZWYgaW50IF9hbGdvcml0aG1fdG9fZHVhbChzZWxmLCBhbGdvcml0aG0pIGV4Y2VwdCAtMgor IAorICAgICAjIE1ldGhvZHMgdG8gaW5pdGlhbGl6ZSB0aGUgY29tYmluYXRvcmlhbCBwb2x5aGVk cm9uLgorLSAgICBjZGVmIF9pbml0X2Zyb21fcG9seWhlZHJvbihzZWxmLCBkYXRhKSBub2V4Y2Vw dAorLSAgICBjZGVmIF9pbml0X2Zyb21fbGF0dGljZV9wb2x5dG9wZShzZWxmLCBkYXRhKSBub2V4 Y2VwdAorLSAgICBjZGVmIF9pbml0X2Zyb21fY29uZShzZWxmLCBkYXRhKSBub2V4Y2VwdAorLSAg ICBjZGVmIF9pbml0X2ZhY2V0X25hbWVzKHNlbGYsIGZhY2V0cykgbm9leGNlcHQKKy0gICAgY2Rl ZiBfaW5pdF9mcm9tX2luY2lkZW5jZV9tYXRyaXgoc2VsZiwgZGF0YSkgbm9leGNlcHQKKy0gICAg Y2RlZiBfaW5pdF9mcm9tX2xpc3Rfb2ZfZmFjZXRzKHNlbGYsIGRhdGEpIG5vZXhjZXB0CistICAg IGNkZWYgX2luaXRfZnJvbV9MaXN0T2ZGYWNlcyhzZWxmLCBMaXN0T2ZGYWNlcyBmYWNldHMsIExp c3RPZkZhY2VzIFZyZXApIG5vZXhjZXB0CistICAgIGNkZWYgX2luaXRpYWxpemVfZmFyX2ZhY2Uo c2VsZikgbm9leGNlcHQKKy0gICAgY2RlZiBfaW5pdF9hc190cml2aWFsX3BvbHloZWRyb24oc2Vs ZiwgaW50IGRpbWVuc2lvbikgbm9leGNlcHQKKysgICAgY2RlZiBfaW5pdF9mcm9tX3BvbHloZWRy b24oc2VsZiwgZGF0YSkKKysgICAgY2RlZiBfaW5pdF9mcm9tX2xhdHRpY2VfcG9seXRvcGUoc2Vs ZiwgZGF0YSkKKysgICAgY2RlZiBfaW5pdF9mcm9tX2NvbmUoc2VsZiwgZGF0YSkKKysgICAgY2Rl ZiBfaW5pdF9mYWNldF9uYW1lcyhzZWxmLCBmYWNldHMpCisrICAgIGNkZWYgX2luaXRfZnJvbV9p bmNpZGVuY2VfbWF0cml4KHNlbGYsIGRhdGEpCisrICAgIGNkZWYgX2luaXRfZnJvbV9saXN0X29m X2ZhY2V0cyhzZWxmLCBkYXRhKQorKyAgICBjZGVmIF9pbml0X2Zyb21fTGlzdE9mRmFjZXMoc2Vs ZiwgTGlzdE9mRmFjZXMgZmFjZXRzLCBMaXN0T2ZGYWNlcyBWcmVwKQorKyAgICBjZGVmIF9pbml0 aWFsaXplX2Zhcl9mYWNlKHNlbGYpCisrICAgIGNkZWYgX2luaXRfYXNfdHJpdmlhbF9wb2x5aGVk cm9uKHNlbGYsIGludCBkaW1lbnNpb24pCisgCisgICAgICMgTWV0aG9kcyB0byBvYnRhaW4gYSBk aWZmZXJlbnQgY29tYmluYXRvcmlhbCBwb2x5aGVkcm9uLgorLSAgICBjcGRlZiBDb21iaW5hdG9y aWFsUG9seWhlZHJvbiBkdWFsKHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIENvbWJpbmF0b3Jp YWxQb2x5aGVkcm9uIHB5cmFtaWQoc2VsZiwgbmV3X3ZlcnRleD0qLCBuZXdfZmFjZXQ9Kikgbm9l eGNlcHQKKysgICAgY3BkZWYgQ29tYmluYXRvcmlhbFBvbHloZWRyb24gZHVhbChzZWxmKQorKyAg ICBjcGRlZiBDb21iaW5hdG9yaWFsUG9seWhlZHJvbiBweXJhbWlkKHNlbGYsIG5ld192ZXJ0ZXg9 KiwgbmV3X2ZhY2V0PSopCisgCistICAgIGNkZWYgRmFjZUl0ZXJhdG9yIF9mYWNlX2l0ZXIoc2Vs ZiwgYmludCBkdWFsLCBpbnQgZGltZW5zaW9uKSBub2V4Y2VwdAorKyAgICBjZGVmIEZhY2VJdGVy YXRvciBfZmFjZV9pdGVyKHNlbGYsIGJpbnQgZHVhbCwgaW50IGRpbWVuc2lvbikKKyAgICAgY2Rl ZiBpbnQgX2NvbXB1dGVfZl92ZWN0b3Ioc2VsZiwgc2l6ZV90IG51bV90aHJlYWRzLCBzaXplX3Qg cGFyYWxsZWxpemF0aW9uX2RlcHRoLCBpbnQgZHVhbCkgZXhjZXB0IC0xCisgICAgIGNkZWYgaW50 IF9wZXJzaXN0X2ZfdmVjdG9yKHNlbGYsIHNpemVfdCogaW5wdXRfZl92ZWN0b3IsIGJpbnQgaW5w dXRfaXNfcmV2ZXJzZWQpIGV4Y2VwdCAtMQorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2dlb21l dHJ5L3BvbHloZWRyb24vY29tYmluYXRvcmlhbF9wb2x5aGVkcm9uL2Jhc2UucHl4IGIvc3JjL3Nh Z2UvZ2VvbWV0cnkvcG9seWhlZHJvbi9jb21iaW5hdG9yaWFsX3BvbHloZWRyb24vYmFzZS5weXgK K2luZGV4IDhkOWQwNTY3MTAwLi4zNjcwNDliOWZjMCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2dl b21ldHJ5L3BvbHloZWRyb24vY29tYmluYXRvcmlhbF9wb2x5aGVkcm9uL2Jhc2UucHl4CisrKysg Yi9zcmMvc2FnZS9nZW9tZXRyeS9wb2x5aGVkcm9uL2NvbWJpbmF0b3JpYWxfcG9seWhlZHJvbi9i YXNlLnB5eAorQEAgLTM5Nyw3ICszOTcsNyBAQCBjZGVmIGNsYXNzIENvbWJpbmF0b3JpYWxQb2x5 aGVkcm9uKFNhZ2VPYmplY3QpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICBzZWxmLl9p bml0X2Zyb21fbGlzdF9vZl9mYWNldHMoZGF0YSkKKyAKKy0gICAgY2RlZiBfaW5pdF9mcm9tX3Bv bHloZWRyb24oc2VsZiwgZGF0YSkgbm9leGNlcHQ6CisrICAgIGNkZWYgX2luaXRfZnJvbV9wb2x5 aGVkcm9uKHNlbGYsIGRhdGEpOgorICAgICAgICAgcicnJworICAgICAgICAgSW5pdGlhbGl6ZSBm cm9tIDpjbGFzczpgfnNhZ2UuZ2VvbWV0cnkucG9seWhlZHJvbi5wYXJlbnQuUG9seWhlZHJvbl9i YXNlYC4KKyAgICAgICAgICcnJworQEAgLTQxNCw3ICs0MTQsNyBAQCBjZGVmIGNsYXNzIENvbWJp bmF0b3JpYWxQb2x5aGVkcm9uKFNhZ2VPYmplY3QpOgorIAorICAgICAgICAgcmV0dXJuIHNlbGYu X2luaXRfZnJvbV9pbmNpZGVuY2VfbWF0cml4KGRhdGEuaW5jaWRlbmNlX21hdHJpeCgpKQorIAor LSAgICBjZGVmIF9pbml0X2Zyb21fbGF0dGljZV9wb2x5dG9wZShzZWxmLCBkYXRhKSBub2V4Y2Vw dDoKKysgICAgY2RlZiBfaW5pdF9mcm9tX2xhdHRpY2VfcG9seXRvcGUoc2VsZiwgZGF0YSk6Cisg ICAgICAgICByJycnCisgICAgICAgICBJbml0aWFsaXplIGZyb20gOmNsYXNzOmB+c2FnZS5nZW9t ZXRyeS5sYXR0aWNlX3BvbHl0b3BlLkxhdHRpY2VQb2x5dG9wZUNsYXNzYC4KKyAgICAgICAgICcn JworQEAgLTQyNCw3ICs0MjQsNyBAQCBjZGVmIGNsYXNzIENvbWJpbmF0b3JpYWxQb2x5aGVkcm9u KFNhZ2VPYmplY3QpOgorICAgICAgICAgc2VsZi5fZGltZW5zaW9uID0gZGF0YS5kaW1lbnNpb24o KQorICAgICAgICAgcmV0dXJuIHNlbGYuX2luaXRfZnJvbV9pbmNpZGVuY2VfbWF0cml4KGRhdGEu aW5jaWRlbmNlX21hdHJpeCgpKQorIAorLSAgICBjZGVmIF9pbml0X2Zyb21fY29uZShzZWxmLCBk YXRhKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfaW5pdF9mcm9tX2NvbmUoc2VsZiwgZGF0YSk6Cisg ICAgICAgICByJycnCisgICAgICAgICBJbml0aWFsaXplIGZyb20gOmNsYXNzOmB+c2FnZS5nZW9t ZXRyeS5jb25lLkNvbnZleFJhdGlvbmFsUG9seWhlZHJhbENvbmVgLgorICAgICAgICAgJycnCitA QCAtNDM5LDcgKzQzOSw3IEBAIGNkZWYgY2xhc3MgQ29tYmluYXRvcmlhbFBvbHloZWRyb24oU2Fn ZU9iamVjdCk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgW1taWi5vbmUo KSBmb3IgXyBpbiByYW5nZShsZW4oZGF0YS5mYWNldF9ub3JtYWxzKCkpKV1dKQorICAgICAgICAg cmV0dXJuIHNlbGYuX2luaXRfZnJvbV9pbmNpZGVuY2VfbWF0cml4KGluY2lkZW5jZV9tYXRyaXgp CisgCistICAgIGNkZWYgX2luaXRfZmFjZXRfbmFtZXMoc2VsZiwgZmFjZXRzKSBub2V4Y2VwdDoK KysgICAgY2RlZiBfaW5pdF9mYWNldF9uYW1lcyhzZWxmLCBmYWNldHMpOgorICAgICAgICAgJycn CisgICAgICAgICBTdG9yZSBmYWNldCBuYW1lcyBhbmQgY29tcHV0ZSBlcXVhdGlvbnMuCisgICAg ICAgICAnJycKK0BAIC00NjAsNyArNDYwLDcgQEAgY2RlZiBjbGFzcyBDb21iaW5hdG9yaWFsUG9s eWhlZHJvbihTYWdlT2JqZWN0KToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgc2VsZi5f ZmFjZXRfbmFtZXMgPSBOb25lCisgCistICAgIGNkZWYgX2luaXRfZnJvbV9pbmNpZGVuY2VfbWF0 cml4KHNlbGYsIGRhdGEpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9pbml0X2Zyb21faW5jaWRlbmNl X21hdHJpeChzZWxmLCBkYXRhKToKKyAgICAgICAgICIiIgorICAgICAgICAgSW5pdGlhbGl6ZSBm cm9tIGFuIGluY2lkZW5jZSBtYXRyaXguCisgICAgICAgICAiIiIKK0BAIC00OTYsNyArNDk2LDcg QEAgY2RlZiBjbGFzcyBDb21iaW5hdG9yaWFsUG9seWhlZHJvbihTYWdlT2JqZWN0KToKKyAKKyAg ICAgICAgIHNlbGYuX2luaXRpYWxpemVfZmFyX2ZhY2UoKQorIAorLSAgICBjZGVmIF9pbml0X2Zy b21fbGlzdF9vZl9mYWNldHMoc2VsZiwgZGF0YSkgbm9leGNlcHQ6CisrICAgIGNkZWYgX2luaXRf ZnJvbV9saXN0X29mX2ZhY2V0cyhzZWxmLCBkYXRhKToKKyAgICAgICAgICIiIgorICAgICAgICAg SW5pdGlhbGl6ZSBmcm9tIGEgbGlzdCBvZiBmYWNldHMuCisgCitAQCAtNTQxLDcgKzU0MSw3IEBA IGNkZWYgY2xhc3MgQ29tYmluYXRvcmlhbFBvbHloZWRyb24oU2FnZU9iamVjdCk6CisgCisgICAg ICAgICBzZWxmLl9pbml0aWFsaXplX2Zhcl9mYWNlKCkKKyAKKy0gICAgY2RlZiBfaW5pdF9mcm9t X0xpc3RPZkZhY2VzKHNlbGYsIExpc3RPZkZhY2VzIGZhY2V0cywgTGlzdE9mRmFjZXMgVnJlcCkg bm9leGNlcHQ6CisrICAgIGNkZWYgX2luaXRfZnJvbV9MaXN0T2ZGYWNlcyhzZWxmLCBMaXN0T2ZG YWNlcyBmYWNldHMsIExpc3RPZkZhY2VzIFZyZXApOgorICAgICAgICAgIiIiCisgICAgICAgICBJ bml0aWFsaXplIHNlbGYgZnJvbSB0d28gYGBMaXN0T2ZGYWNlc2BgLgorICAgICAgICAgIiIiCitA QCAtNTU0LDcgKzU1NCw3IEBAIGNkZWYgY2xhc3MgQ29tYmluYXRvcmlhbFBvbHloZWRyb24oU2Fn ZU9iamVjdCk6CisgCisgICAgICAgICBzZWxmLl9pbml0aWFsaXplX2Zhcl9mYWNlKCkKKyAKKy0g ICAgY2RlZiBfaW5pdGlhbGl6ZV9mYXJfZmFjZShzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBf aW5pdGlhbGl6ZV9mYXJfZmFjZShzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgSW5pdGlh bGl6ZSBmYXJfZmFjZSBpZiB1bmJvdW5kZWQuCisgICAgICAgICAiIiIKK0BAIC01NjIsNyArNTYy LDcgQEAgY2RlZiBjbGFzcyBDb21iaW5hdG9yaWFsUG9seWhlZHJvbihTYWdlT2JqZWN0KToKKyAg ICAgICAgICAgICBmYWNlX2luaXQoc2VsZi5fZmFyX2ZhY2UsIHNlbGYuYml0cmVwX2ZhY2V0cygp Lm5fYXRvbXMoKSwgc2VsZi5fbl9mYWNldHMpCisgICAgICAgICAgICAgVnJlcF9saXN0X3RvX2Jp dF9yZXAodHVwbGUoc2VsZi5fZmFyX2ZhY2VfdHVwbGUpLCBzZWxmLl9mYXJfZmFjZSkKKyAKKy0g ICAgY2RlZiBfaW5pdF9hc190cml2aWFsX3BvbHloZWRyb24oc2VsZiwgaW50IGRpbWVuc2lvbikg bm9leGNlcHQ6CisrICAgIGNkZWYgX2luaXRfYXNfdHJpdmlhbF9wb2x5aGVkcm9uKHNlbGYsIGlu dCBkaW1lbnNpb24pOgorICAgICAgICAgIiIiCisgICAgICAgICBJbml0aWFsaXplIHBvbHloZWRy b24gZXF1YWwgdG8gaXRzIGFmZmluZSBodWxsLgorICAgICAgICAgIiIiCitAQCAtMjgwMSw3ICsy ODAxLDcgQEAgY2RlZiBjbGFzcyBDb21iaW5hdG9yaWFsUG9seWhlZHJvbihTYWdlT2JqZWN0KToK KyAKKyAgICAgZmFjZV9pdGVyID0gZmFjZV9nZW5lcmF0b3IKKyAKKy0gICAgY2RlZiBGYWNlSXRl cmF0b3IgX2ZhY2VfaXRlcihzZWxmLCBiaW50IGR1YWwsIGludCBkaW1lbnNpb24pIG5vZXhjZXB0 OgorKyAgICBjZGVmIEZhY2VJdGVyYXRvciBfZmFjZV9pdGVyKHNlbGYsIGJpbnQgZHVhbCwgaW50 IGRpbWVuc2lvbik6CisgICAgICAgICByIiIiCisgICAgICAgICBBIG1ldGhvZCB0byBvYnRhaW4g dGhlIEZhY2VJdGVyYXRvciBhcyBDeXRob24gb2JqZWN0LgorIAorQEAgLTMyNTEsMTMgKzMyNTEs MTMgQEAgY2RlZiBjbGFzcyBDb21iaW5hdG9yaWFsUG9seWhlZHJvbihTYWdlT2JqZWN0KToKKyAg ICAgICAgICAgICAgICAgdGVzdGVyLmFzc2VydFRydWUoYWxsKGogaW4gZi5hbWJpZW50X1ZfaW5k aWNlcygpIGZvciBmIGluIGIpKQorICAgICAgICAgICAgICAgICB0ZXN0ZXIuYXNzZXJ0VHJ1ZShh bGwoaSBpbiBmLmFtYmllbnRfSF9pbmRpY2VzKCkgZm9yIGYgaW4gYikpCisgCistICAgIGNkZWYg dHVwbGUgVnJlcChzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiB0dXBsZSBWcmVwKHNlbGYpOgor ICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBuYW1lcyBvZiB0aGUgVnJlcHJlc2Vu dGF0aW9uLCBpZiB0aGV5IGV4aXN0LiBFbHNlIHJldHVybiBgYE5vbmVgYC4KKyAgICAgICAgICIi IgorICAgICAgICAgcmV0dXJuIHNlbGYuX1ZyZXAKKyAKKy0gICAgY2RlZiB0dXBsZSBmYWNldF9u YW1lcyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiB0dXBsZSBmYWNldF9uYW1lcyhzZWxmKToK KyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgbmFtZXMgSHJlcHJlc2VudGF0aXZl cywgd2hpY2ggYXJlIGZhY2V0cy4KKyAKK0BAIC0zMjY1LDcgKzMyNjUsNyBAQCBjZGVmIGNsYXNz IENvbWJpbmF0b3JpYWxQb2x5aGVkcm9uKFNhZ2VPYmplY3QpOgorICAgICAgICAgIiIiCisgICAg ICAgICByZXR1cm4gc2VsZi5fZmFjZXRfbmFtZXMKKyAKKy0gICAgY2RlZiB0dXBsZSBlcXVhdGlv bnMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgdHVwbGUgZXF1YXRpb25zKHNlbGYpOgorICAg ICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBuYW1lcyBvZiB0aGUgZXF1YXRpb25zLgor IAorQEAgLTMyNzMsNyArMzI3Myw3IEBAIGNkZWYgY2xhc3MgQ29tYmluYXRvcmlhbFBvbHloZWRy b24oU2FnZU9iamVjdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9lcXVh dGlvbnMKKyAKKy0gICAgY2RlZiB0dXBsZSBlcXVhbGl0aWVzKHNlbGYpIG5vZXhjZXB0OgorKyAg ICBjZGVmIHR1cGxlIGVxdWFsaXRpZXMoc2VsZik6CisgICAgICAgICBmcm9tIHNhZ2UubWlzYy5z dXBlcnNlZGVkIGltcG9ydCBkZXByZWNhdGlvbgorICAgICAgICAgZGVwcmVjYXRpb24oMzE4MzQs ICJ0aGUgbWV0aG9kIGVxdWFsaXRpZXMgb2YgQ29tYmluYXRvcmlhbFBvbHloZWRyb24gaXMgZGVw cmVjYXRlZDsgdXNlIGVxdWF0aW9ucyIsIDMpCisgICAgICAgICByZXR1cm4gc2VsZi5lcXVhdGlv bnMoKQorQEAgLTMzMTcsMTkgKzMzMTcsMTkgQEAgY2RlZiBjbGFzcyBDb21iaW5hdG9yaWFsUG9s eWhlZHJvbihTYWdlT2JqZWN0KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYu X2JvdW5kZWQKKyAKKy0gICAgY2RlZiBMaXN0T2ZGYWNlcyBiaXRyZXBfZmFjZXRzKHNlbGYpIG5v ZXhjZXB0OgorKyAgICBjZGVmIExpc3RPZkZhY2VzIGJpdHJlcF9mYWNldHMoc2VsZik6CisgICAg ICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGZhY2V0cyBpbiBiaXQgcmVwcmVzZW50YXRp b24uCisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9iaXRyZXBfZmFjZXRzCisg CistICAgIGNkZWYgTGlzdE9mRmFjZXMgYml0cmVwX1ZyZXAoc2VsZikgbm9leGNlcHQ6CisrICAg IGNkZWYgTGlzdE9mRmFjZXMgYml0cmVwX1ZyZXAoc2VsZik6CisgICAgICAgICByIiIiCisgICAg ICAgICBSZXR1cm4gdGhlIFZyZXByZXNlbnRhdGlvbnMgaW4gYml0IHJlcHJlc2VudGF0aW9uLgor ICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fYml0cmVwX1ZyZXAKKyAKKy0gICAg Y2RlZiB0dXBsZSBmYXJfZmFjZV90dXBsZShzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiB0dXBs ZSBmYXJfZmFjZV90dXBsZShzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0 aGUgZmFyIGZhY2UgYXMgaXQgd2FzIGdpdmVuIG9uIGluaXRpYWxpemF0aW9uLgorICAgICAgICAg IiIiCitAQCAtMzM1Miw3ICszMzUyLDcgQEAgY2RlZiBjbGFzcyBDb21iaW5hdG9yaWFsUG9seWhl ZHJvbihTYWdlT2JqZWN0KToKKyAKKyAgICAgIyBNZXRob2RzIHRvIG9idGFpbiBhIGRpZmZlcmVu dCBjb21iaW5hdG9yaWFsIHBvbHloZWRyb24uCisgCistICAgIGNwZGVmIENvbWJpbmF0b3JpYWxQ b2x5aGVkcm9uIGR1YWwoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIENvbWJpbmF0b3JpYWxQ b2x5aGVkcm9uIGR1YWwoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhl IGR1YWwvcG9sYXIgb2Ygc2VsZi4KKyAKK0BAIC0zMzk1LDcgKzMzOTUsNyBAQCBjZGVmIGNsYXNz IENvbWJpbmF0b3JpYWxQb2x5aGVkcm9uKFNhZ2VPYmplY3QpOgorIAorICAgICBwb2xhciA9IGR1 YWwKKyAKKy0gICAgY3BkZWYgQ29tYmluYXRvcmlhbFBvbHloZWRyb24gcHlyYW1pZChzZWxmLCBu ZXdfdmVydGV4PU5vbmUsIG5ld19mYWNldD1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgQ29t YmluYXRvcmlhbFBvbHloZWRyb24gcHlyYW1pZChzZWxmLCBuZXdfdmVydGV4PU5vbmUsIG5ld19m YWNldD1Ob25lKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgcHlyYW1pZCBv ZiBgYHNlbGZgYC4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9nZW9tZXRyeS9wb2x5aGVkcm9u L2NvbWJpbmF0b3JpYWxfcG9seWhlZHJvbi9jb21iaW5hdG9yaWFsX2ZhY2UucHhkIGIvc3JjL3Nh Z2UvZ2VvbWV0cnkvcG9seWhlZHJvbi9jb21iaW5hdG9yaWFsX3BvbHloZWRyb24vY29tYmluYXRv cmlhbF9mYWNlLnB4ZAoraW5kZXggYWZjMDE5MDRkYTIuLmYzOTI4NGFjZTY4IDEwMDY0NAorLS0t IGEvc3JjL3NhZ2UvZ2VvbWV0cnkvcG9seWhlZHJvbi9jb21iaW5hdG9yaWFsX3BvbHloZWRyb24v Y29tYmluYXRvcmlhbF9mYWNlLnB4ZAorKysrIGIvc3JjL3NhZ2UvZ2VvbWV0cnkvcG9seWhlZHJv bi9jb21iaW5hdG9yaWFsX3BvbHloZWRyb24vY29tYmluYXRvcmlhbF9mYWNlLnB4ZAorQEAgLTMy LDcgKzMyLDcgQEAgY2RlZiBjbGFzcyBDb21iaW5hdG9yaWFsRmFjZShTYWdlT2JqZWN0KToKKyAg ICAgIyBJZiBgYGR1YWwgPT0gMGBgLCB0aGVuIGNvYXRvbXMgYXJlIGZhY2V0cywgYXRvbXMgdmVy dGljZXMgYW5kIHZpY2UgdmVyc2EuCisgICAgIGNkZWYgTGlzdE9mRmFjZXMgYXRvbXMsIGNvYXRv bXMKKyAKKy0gICAgY3BkZWYgZGltZW5zaW9uKHNlbGYpIG5vZXhjZXB0CisrICAgIGNwZGVmIGRp bWVuc2lvbihzZWxmKQorICAgICBjZGVmIHNpemVfdCBuX2F0b21fcmVwKHNlbGYpIGV4Y2VwdCAt MQorICAgICBjZGVmIHNpemVfdCBzZXRfY29hdG9tX3JlcChzZWxmKSBleGNlcHQgLTEKKyAgICAg Y2RlZiBzaXplX3Qgc2V0X2F0b21fcmVwKHNlbGYpIGV4Y2VwdCAtMQorZGlmZiAtLWdpdCBhL3Ny Yy9zYWdlL2dlb21ldHJ5L3BvbHloZWRyb24vY29tYmluYXRvcmlhbF9wb2x5aGVkcm9uL2NvbWJp bmF0b3JpYWxfZmFjZS5weXggYi9zcmMvc2FnZS9nZW9tZXRyeS9wb2x5aGVkcm9uL2NvbWJpbmF0 b3JpYWxfcG9seWhlZHJvbi9jb21iaW5hdG9yaWFsX2ZhY2UucHl4CitpbmRleCA4MWRjN2MyNjlk Yi4uZmI3ODBlMjkzNTMgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9nZW9tZXRyeS9wb2x5aGVkcm9u L2NvbWJpbmF0b3JpYWxfcG9seWhlZHJvbi9jb21iaW5hdG9yaWFsX2ZhY2UucHl4CisrKysgYi9z cmMvc2FnZS9nZW9tZXRyeS9wb2x5aGVkcm9uL2NvbWJpbmF0b3JpYWxfcG9seWhlZHJvbi9jb21i aW5hdG9yaWFsX2ZhY2UucHl4CitAQCAtNDk3LDcgKzQ5Nyw3IEBAIGNkZWYgY2xhc3MgQ29tYmlu YXRvcmlhbEZhY2UoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAg ICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigiaXNfc3ViZmFjZSBvbmx5IGltcGxlbWVu dGVkIGZvciBmYWNlcyBvZiB0aGUgc2FtZSBwb2x5aGVkcm9uIikKKyAKKy0gICAgY3BkZWYgZGlt ZW5zaW9uKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBkaW1lbnNpb24oc2VsZik6CisgICAg ICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGRpbWVuc2lvbiBvZiB0aGUgZmFjZS4KKyAK K2RpZmYgLS1naXQgYS9zcmMvc2FnZS9nZW9tZXRyeS9wb2x5aGVkcm9uL2NvbWJpbmF0b3JpYWxf cG9seWhlZHJvbi9mYWNlX2l0ZXJhdG9yLnB4ZCBiL3NyYy9zYWdlL2dlb21ldHJ5L3BvbHloZWRy b24vY29tYmluYXRvcmlhbF9wb2x5aGVkcm9uL2ZhY2VfaXRlcmF0b3IucHhkCitpbmRleCA4N2Uz ZTg3YzFjNi4uM2MwMTU5NzNkZDEgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9nZW9tZXRyeS9wb2x5 aGVkcm9uL2NvbWJpbmF0b3JpYWxfcG9seWhlZHJvbi9mYWNlX2l0ZXJhdG9yLnB4ZAorKysrIGIv c3JjL3NhZ2UvZ2VvbWV0cnkvcG9seWhlZHJvbi9jb21iaW5hdG9yaWFsX3BvbHloZWRyb24vZmFj ZV9pdGVyYXRvci5weGQKK0BAIC03MCw3ICs3MCw3IEBAIGNkZWYgY2xhc3MgRmFjZUl0ZXJhdG9y X2Jhc2UoU2FnZU9iamVjdCk6CisgICAgICMgSWYgYGBkdWFsID09IDBgYCwgdGhlbiBjb2F0b21z IGFyZSBmYWNldHMsIGF0b21zIHZlcnRpY2VzIGFuZCB2aWNlIHZlcnNhLgorICAgICBjZGVmIExp c3RPZkZhY2VzIGF0b21zLCBjb2F0b21zLCBjb2F0b21zX2NvYXRvbV9yZXAKKyAKKy0gICAgY2Rl ZiBpbmxpbmUgQ29tYmluYXRvcmlhbEZhY2UgbmV4dF9mYWNlKHNlbGYpIG5vZXhjZXB0CisrICAg IGNkZWYgaW5saW5lIENvbWJpbmF0b3JpYWxGYWNlIG5leHRfZmFjZShzZWxmKQorICAgICBjZGVm IGlubGluZSBpbnQgbmV4dF9kaW1lbnNpb24oc2VsZikgZXhjZXB0IC0xCisgICAgIGNkZWYgaW5s aW5lIGludCBuZXh0X2ZhY2VfbG9vcChzZWxmKSBleGNlcHQgLTEKKyAgICAgY2RlZiBzaXplX3Qg bl9hdG9tX3JlcChzZWxmKSBleGNlcHQgLTEKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9nZW9tZXRy eS9wb2x5aGVkcm9uL2NvbWJpbmF0b3JpYWxfcG9seWhlZHJvbi9mYWNlX2l0ZXJhdG9yLnB5eCBi L3NyYy9zYWdlL2dlb21ldHJ5L3BvbHloZWRyb24vY29tYmluYXRvcmlhbF9wb2x5aGVkcm9uL2Zh Y2VfaXRlcmF0b3IucHl4CitpbmRleCA3NjIyN2NmZTNjZi4uY2E1NjM0ZDMxYTcgMTAwNjQ0Cist LS0gYS9zcmMvc2FnZS9nZW9tZXRyeS9wb2x5aGVkcm9uL2NvbWJpbmF0b3JpYWxfcG9seWhlZHJv bi9mYWNlX2l0ZXJhdG9yLnB5eAorKysrIGIvc3JjL3NhZ2UvZ2VvbWV0cnkvcG9seWhlZHJvbi9j b21iaW5hdG9yaWFsX3BvbHloZWRyb24vZmFjZV9pdGVyYXRvci5weXgKK0BAIC0xMTk5LDcgKzEx OTksNyBAQCBjZGVmIGNsYXNzIEZhY2VJdGVyYXRvcl9iYXNlKFNhZ2VPYmplY3QpOgorICAgICAg ICAgIyBmb3IgdGhlIGRpbWVuc2lvbi4gQnkgdGhpcyB0aW1lIHRoZSBjdXJyZW50IGRpbWVuc2lv biBoYXMgY2hhbmdlZC4KKyAgICAgICAgIHNlbGYuc3RydWN0dXJlLmhpZ2hlc3RfZGltZW5zaW9u ID0gc2VsZi5zdHJ1Y3R1cmUuY3VycmVudF9kaW1lbnNpb24gLSAxCisgCistICAgIGNkZWYgaW5s aW5lIENvbWJpbmF0b3JpYWxGYWNlIG5leHRfZmFjZShzZWxmKSBub2V4Y2VwdDoKKysgICAgY2Rl ZiBpbmxpbmUgQ29tYmluYXRvcmlhbEZhY2UgbmV4dF9mYWNlKHNlbGYpOgorICAgICAgICAgciIi IgorICAgICAgICAgU2V0IGF0dHJpYnV0ZSBgYGZhY2VgYCB0byB0aGUgbmV4dCBmYWNlIGFuZCBy ZXR1cm4gaXQgYXMKKyAgICAgICAgIDpjbGFzczpgc2FnZS5nZW9tZXRyeS5wb2x5aGVkcm9uLmNv bWJpbmF0b3JpYWxfcG9seWhlZHJvbi5jb21iaW5hdG9yaWFsX2ZhY2UuQ29tYmluYXRvcmlhbEZh Y2VgLgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2dlb21ldHJ5L3BvbHloZWRyb24vY29tYmluYXRv cmlhbF9wb2x5aGVkcm9uL2xpc3Rfb2ZfZmFjZXMucHhkIGIvc3JjL3NhZ2UvZ2VvbWV0cnkvcG9s eWhlZHJvbi9jb21iaW5hdG9yaWFsX3BvbHloZWRyb24vbGlzdF9vZl9mYWNlcy5weGQKK2luZGV4 IGM2NjAyNDBmYmM0Li42MmJhNWI5ODdjZiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2dlb21ldHJ5 L3BvbHloZWRyb24vY29tYmluYXRvcmlhbF9wb2x5aGVkcm9uL2xpc3Rfb2ZfZmFjZXMucHhkCisr KysgYi9zcmMvc2FnZS9nZW9tZXRyeS9wb2x5aGVkcm9uL2NvbWJpbmF0b3JpYWxfcG9seWhlZHJv bi9saXN0X29mX2ZhY2VzLnB4ZAorQEAgLTgsNyArOCw3IEBAIGNkZWYgY2xhc3MgTGlzdE9mRmFj ZXM6CisgICAgICMgSXQgd2lsbCBiZSBvZiAidHlwZSIgYGB1aW50NjRfdFtuX2ZhY2VzXVtmYWNl X2xlbmd0aF1gYAorICAgICBjZGVmIGZhY2VfbGlzdF90IGRhdGEKKyAKKy0gICAgY3BkZWYgTGlz dE9mRmFjZXMgX19jb3B5X18oc2VsZikgbm9leGNlcHQKKysgICAgY3BkZWYgTGlzdE9mRmFjZXMg X19jb3B5X18oc2VsZikKKyAKKyAgICAgY3BkZWYgaW50IGNvbXB1dGVfZGltZW5zaW9uKHNlbGYp IGV4Y2VwdCAtMgorIAorQEAgLTE5LDEyICsxOSwxMiBAQCBjZGVmIGNsYXNzIExpc3RPZkZhY2Vz OgorICAgICBjZGVmIGlubGluZSBzaXplX3Qgbl9jb2F0b21zKHNlbGYpIG5vZXhjZXB0OgorICAg ICAgICAgcmV0dXJuIHNlbGYuZGF0YS5uX2NvYXRvbXMKKyAKKy0gICAgY3BkZWYgTGlzdE9mRmFj ZXMgcHlyYW1pZChzZWxmKSBub2V4Y2VwdAorKyAgICBjcGRlZiBMaXN0T2ZGYWNlcyBweXJhbWlk KHNlbGYpCisgCistICAgIGNkZWYgTGlzdE9mRmFjZXMgZGVsZXRlX2F0b21zX3Vuc2FmZShzZWxm LCBiaW50KiBkZWxldGUsIGZhY2VfdCBmYWNlKSBub2V4Y2VwdCAgIyBub3QgaW4gcGxhY2UKKysg ICAgY2RlZiBMaXN0T2ZGYWNlcyBkZWxldGVfYXRvbXNfdW5zYWZlKHNlbGYsIGJpbnQqIGRlbGV0 ZSwgZmFjZV90IGZhY2UpICAjIG5vdCBpbiBwbGFjZQorICAgICBjZGVmIHZvaWQgZGVsZXRlX2Zh Y2VzX3Vuc2FmZShzZWxmLCBiaW50KiBkZWxldGUsIGZhY2VfdCBmYWNlKSBub2V4Y2VwdCAgIyBp biBwbGFjZQorIAorICAgICBjZGVmIHZvaWQgZ2V0X25vdF9pbmNsdXNpb25fbWF4aW1hbF91bnNh ZmUoc2VsZiwgYmludCAqbm90X2luY2x1c2lvbl9tYXhpbWFsKSBub2V4Y2VwdAorICAgICBjZGVm IHZvaWQgZ2V0X2ZhY2VzX2FsbF9zZXRfdW5zYWZlKHNlbGYsIGJpbnQgKmFsbF9zZXQpIG5vZXhj ZXB0CisgCistY2RlZiB0dXBsZSBmYWNlX2FzX2NvbWJpbmF0b3JpYWxfcG9seWhlZHJvbihMaXN0 T2ZGYWNlcyBmYWNldHMsIExpc3RPZkZhY2VzIFZyZXAsIGZhY2VfdCBmYWNlLCBiaW50IGR1YWwp IG5vZXhjZXB0CisrY2RlZiB0dXBsZSBmYWNlX2FzX2NvbWJpbmF0b3JpYWxfcG9seWhlZHJvbihM aXN0T2ZGYWNlcyBmYWNldHMsIExpc3RPZkZhY2VzIFZyZXAsIGZhY2VfdCBmYWNlLCBiaW50IGR1 YWwpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvZ2VvbWV0cnkvcG9seWhlZHJvbi9jb21iaW5hdG9y aWFsX3BvbHloZWRyb24vbGlzdF9vZl9mYWNlcy5weXggYi9zcmMvc2FnZS9nZW9tZXRyeS9wb2x5 aGVkcm9uL2NvbWJpbmF0b3JpYWxfcG9seWhlZHJvbi9saXN0X29mX2ZhY2VzLnB5eAoraW5kZXgg Y2Q3YjczMTZhNDMuLjQ2ODM0N2Y1MjU2IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvZ2VvbWV0cnkv cG9seWhlZHJvbi9jb21iaW5hdG9yaWFsX3BvbHloZWRyb24vbGlzdF9vZl9mYWNlcy5weXgKKysr KyBiL3NyYy9zYWdlL2dlb21ldHJ5L3BvbHloZWRyb24vY29tYmluYXRvcmlhbF9wb2x5aGVkcm9u L2xpc3Rfb2ZfZmFjZXMucHl4CitAQCAtMTc4LDcgKzE3OCw3IEBAIGNkZWYgY2xhc3MgTGlzdE9m RmFjZXM6CisgICAgICAgICAiIiIKKyAgICAgICAgIGFzc2VydCBmYWNlX2xpc3RfY2hlY2tfYWxp Z25tZW50KHNlbGYuZGF0YSkKKyAKKy0gICAgY3BkZWYgTGlzdE9mRmFjZXMgX19jb3B5X18oc2Vs Zikgbm9leGNlcHQ6CisrICAgIGNwZGVmIExpc3RPZkZhY2VzIF9fY29weV9fKHNlbGYpOgorICAg ICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIGEgY29weSBvZiBzZWxmLgorIAorQEAgLTMwMyw3 ICszMDMsNyBAQCBjZGVmIGNsYXNzIExpc3RPZkZhY2VzOgorICAgICAgICAgIyBieSBjYWxjdWxh dGluZyBkaW1lbnNpb24gb2Ygb25lIG9mIGl0cyBmYWNlcy4KKyAgICAgICAgIHJldHVybiBuZXdf ZmFjZXMuY29tcHV0ZV9kaW1lbnNpb24oKSArIDEKKyAKKy0gICAgY3BkZWYgTGlzdE9mRmFjZXMg cHlyYW1pZChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgTGlzdE9mRmFjZXMgcHlyYW1pZChz ZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgbGlzdCBvZiBmYWNlcyBv ZiB0aGUgcHlyYW1pZC4KKyAKK0BAIC0zODEsNyArMzgxLDcgQEAgY2RlZiBjbGFzcyBMaXN0T2ZG YWNlczoKKyAKKyAgICAgICAgIHJldHVybiBjb3B5CisgCistICAgIGNkZWYgTGlzdE9mRmFjZXMg ZGVsZXRlX2F0b21zX3Vuc2FmZShzZWxmLCBiaW50ICpkZWxldGUsIGZhY2VfdCBmYWNlKSBub2V4 Y2VwdDoKKysgICAgY2RlZiBMaXN0T2ZGYWNlcyBkZWxldGVfYXRvbXNfdW5zYWZlKHNlbGYsIGJp bnQgKmRlbGV0ZSwgZmFjZV90IGZhY2UpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJu IGEgY29weSBvZiBgYHNlbGZgYCB3aGVyZSBiaXRzIGluIGBgZGVsZXRlYGAgaGF2ZSBiZWVuCisg ICAgICAgICByZW1vdmVkL2NvbnRyYWN0ZWQuCitAQCAtNTE4LDcgKzUxOCw3IEBAIGNkZWYgY2xh c3MgTGlzdE9mRmFjZXM6CisgICAgICAgICBNLnNldF9pbW11dGFibGUoKQorICAgICAgICAgcmV0 dXJuIE0KKyAKKy1jZGVmIHR1cGxlIGZhY2VfYXNfY29tYmluYXRvcmlhbF9wb2x5aGVkcm9uKExp c3RPZkZhY2VzIGZhY2V0cywgTGlzdE9mRmFjZXMgVnJlcCwgZmFjZV90IGZhY2UsIGJpbnQgZHVh bCkgbm9leGNlcHQ6CisrY2RlZiB0dXBsZSBmYWNlX2FzX2NvbWJpbmF0b3JpYWxfcG9seWhlZHJv bihMaXN0T2ZGYWNlcyBmYWNldHMsIExpc3RPZkZhY2VzIFZyZXAsIGZhY2VfdCBmYWNlLCBiaW50 IGR1YWwpOgorICAgICByIiIiCisgICAgIE9idGFpbiBmYWNldHMgYW5kIFZyZXByZXNlbnRhdGlv biBvZiBgYGZhY2VgYCBhcyBuZXcgY29tYmluYXRvcmlhbCBwb2x5aGVkcm9uLgorIAorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL2dlb21ldHJ5L3BvbHloZWRyb24vY29tYmluYXRvcmlhbF9wb2x5aGVk cm9uL3BvbHloZWRyb25fZmFjZV9sYXR0aWNlLnB4ZCBiL3NyYy9zYWdlL2dlb21ldHJ5L3BvbHlo ZWRyb24vY29tYmluYXRvcmlhbF9wb2x5aGVkcm9uL3BvbHloZWRyb25fZmFjZV9sYXR0aWNlLnB4 ZAoraW5kZXggYWZlOTU2NjcyZmYuLjgyNGI4MzJmMjM4IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uv Z2VvbWV0cnkvcG9seWhlZHJvbi9jb21iaW5hdG9yaWFsX3BvbHloZWRyb24vcG9seWhlZHJvbl9m YWNlX2xhdHRpY2UucHhkCisrKysgYi9zcmMvc2FnZS9nZW9tZXRyeS9wb2x5aGVkcm9uL2NvbWJp bmF0b3JpYWxfcG9seWhlZHJvbi9wb2x5aGVkcm9uX2ZhY2VfbGF0dGljZS5weGQKK0BAIC00MSw3 ICs0MSw3IEBAIGNkZWYgY2xhc3MgUG9seWhlZHJvbkZhY2VMYXR0aWNlOgorIAorICAgICBjZGVm IGludCBfc29ydChzZWxmKSBleGNlcHQgLTEKKyAgICAgY2RlZiBpbmxpbmUgc2l6ZV90IGZpbmRf ZmFjZShzZWxmLCBpbnQgZGltZW5zaW9uLCBmYWNlX3QgZmFjZSkgZXhjZXB0IC0yCistICAgIGNw ZGVmIENvbWJpbmF0b3JpYWxGYWNlIGdldF9mYWNlKHNlbGYsIGludCBkaW1lbnNpb24sIHNpemVf dCBpbmRleCkgbm9leGNlcHQKKysgICAgY3BkZWYgQ29tYmluYXRvcmlhbEZhY2UgZ2V0X2ZhY2Uo c2VsZiwgaW50IGRpbWVuc2lvbiwgc2l6ZV90IGluZGV4KQorICAgICBjZGVmIHNpemVfdCBzZXRf Y29hdG9tX3JlcChzZWxmLCBpbnQgZGltZW5zaW9uLCBzaXplX3QgaW5kZXgpIGV4Y2VwdCAtMQor ICAgICBjZGVmIHNpemVfdCBzZXRfYXRvbV9yZXAoc2VsZiwgaW50IGRpbWVuc2lvbiwgc2l6ZV90 IGluZGV4KSBleGNlcHQgLTEKKyAgICAgY2RlZiB2b2lkIGluY2lkZW5jZV9pbml0KHNlbGYsIGlu dCBkaW1lbnNpb25fb25lLCBpbnQgZGltZW5zaW9uX3R3bykgbm9leGNlcHQKK2RpZmYgLS1naXQg YS9zcmMvc2FnZS9nZW9tZXRyeS9wb2x5aGVkcm9uL2NvbWJpbmF0b3JpYWxfcG9seWhlZHJvbi9w b2x5aGVkcm9uX2ZhY2VfbGF0dGljZS5weXggYi9zcmMvc2FnZS9nZW9tZXRyeS9wb2x5aGVkcm9u L2NvbWJpbmF0b3JpYWxfcG9seWhlZHJvbi9wb2x5aGVkcm9uX2ZhY2VfbGF0dGljZS5weXgKK2lu ZGV4IDVhMmMzMWY2NDUzLi5kMDA2NDc5NWZhNSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2dlb21l dHJ5L3BvbHloZWRyb24vY29tYmluYXRvcmlhbF9wb2x5aGVkcm9uL3BvbHloZWRyb25fZmFjZV9s YXR0aWNlLnB5eAorKysrIGIvc3JjL3NhZ2UvZ2VvbWV0cnkvcG9seWhlZHJvbi9jb21iaW5hdG9y aWFsX3BvbHloZWRyb24vcG9seWhlZHJvbl9mYWNlX2xhdHRpY2UucHl4CitAQCAtMzEzLDcgKzMx Myw3IEBAIGNkZWYgY2xhc3MgUG9seWhlZHJvbkZhY2VMYXR0aWNlOgorIAorICAgICAgICAgcmV0 dXJuIGZpbmRfZmFjZShmYWNlLCBzZWxmLmZhY2VzW2RpbWVuc2lvbisxXSkKKyAKKy0gICAgY3Bk ZWYgQ29tYmluYXRvcmlhbEZhY2UgZ2V0X2ZhY2Uoc2VsZiwgaW50IGRpbWVuc2lvbiwgc2l6ZV90 IGluZGV4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgQ29tYmluYXRvcmlhbEZhY2UgZ2V0X2ZhY2Uo c2VsZiwgaW50IGRpbWVuc2lvbiwgc2l6ZV90IGluZGV4KToKKyAgICAgICAgIHIiIiIKKyAgICAg ICAgIFJldHVybiB0aGUgZmFjZSBvZiBkaW1lbnNpb24gYGBkaW1lbnNpb25gYCBhbmQgaW5kZXgg YGBpbmRleGBgLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2dlb21ldHJ5L3RvcmljX2xhdHRp Y2VfZWxlbWVudC5weXggYi9zcmMvc2FnZS9nZW9tZXRyeS90b3JpY19sYXR0aWNlX2VsZW1lbnQu cHl4CitpbmRleCA2MDc4MmE4MDVmNC4uOGEyZjg3NzYyZWIgMTAwNjQ0CistLS0gYS9zcmMvc2Fn ZS9nZW9tZXRyeS90b3JpY19sYXR0aWNlX2VsZW1lbnQucHl4CisrKysgYi9zcmMvc2FnZS9nZW9t ZXRyeS90b3JpY19sYXR0aWNlX2VsZW1lbnQucHl4CitAQCAtMjIzLDcgKzIyMyw3IEBAIGNkZWYg Y2xhc3MgVG9yaWNMYXR0aWNlRWxlbWVudChWZWN0b3JfaW50ZWdlcl9kZW5zZSk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIHJldHVybiBWZWN0b3JfaW50ZWdlcl9kZW5zZS5fX2hhc2hfXyhzZWxm KQorIAorLSAgICBjcGRlZiBfYWN0X29uXyhzZWxmLCBvdGhlciwgYmludCBzZWxmX29uX2xlZnQp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWN0X29uXyhzZWxmLCBvdGhlciwgYmludCBzZWxmX29u X2xlZnQpOgorICAgICAgICAgIiIiCisgICAgICAgICBBY3Qgb24gYGBvdGhlcmBgLgorIAorQEAg LTI5OCw3ICsyOTgsNyBAQCBjZGVmIGNsYXNzIFRvcmljTGF0dGljZUVsZW1lbnQoVmVjdG9yX2lu dGVnZXJfZGVuc2UpOgorICAgICAjIFdlIG5lZWQgdG8gb3ZlcnJpZGUgdGhpcyBmdW5jdGlvbiB0 byBwcm9oaWJpdCBkZWZhdWx0IGJlaGF2aW91ci4KKyAgICAgIyBJdCBzZWVtcyB0byBiZSBjYWxs ZWQgd2hlbiByaWdodCBpcyBpbiB0aGUgc2FtZSBsYXR0aWNlIGFzIHNlbGYsIHdoaWNoCisgICAg ICMgaXMgd3JvbmcgZnJvbSBvdXIgcG9pbnQgb2Ygdmlldy4KKy0gICAgY3BkZWYgX2RvdF9wcm9k dWN0XyhzZWxmLCBWZWN0b3IgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZG90X3Byb2R1 Y3RfKHNlbGYsIFZlY3RvciByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJhaXNlIGEg OmNsYXNzOmBUeXBlRXJyb3JgIGV4Y2VwdGlvbi4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9n ZW9tZXRyeS90cmlhbmd1bGF0aW9uL2Jhc2UucHl4IGIvc3JjL3NhZ2UvZ2VvbWV0cnkvdHJpYW5n dWxhdGlvbi9iYXNlLnB5eAoraW5kZXggMzE2MWQxOWFmYmEuLmNiOWNiOTQ4MjU2IDEwMDY0NAor LS0tIGEvc3JjL3NhZ2UvZ2VvbWV0cnkvdHJpYW5ndWxhdGlvbi9iYXNlLnB5eAorKysrIGIvc3Jj L3NhZ2UvZ2VvbWV0cnkvdHJpYW5ndWxhdGlvbi9iYXNlLnB5eAorQEAgLTEwOSw3ICsxMDksNyBA QCBjZGVmIGNsYXNzIFBvaW50KFNhZ2VPYmplY3QpOgorICAgICAgICAgIiIiCisgICAgICAgICBy ZXR1cm4gaGFzaChzZWxmLl9wb2ludF9jb25maWd1cmF0aW9uKSBeICg8bG9uZz5zZWxmLl9pbmRl eCkKKyAKKy0gICAgY3BkZWYgcG9pbnRfY29uZmlndXJhdGlvbihzZWxmKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgcG9pbnRfY29uZmlndXJhdGlvbihzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAg ICAgIFJldHVybiB0aGUgcG9pbnQgY29uZmlndXJhdGlvbiB0byB3aGljaCB0aGUgcG9pbnQgYmVs b25ncy4KKyAKK0BAIC0xNTgsNyArMTU4LDcgQEAgY2RlZiBjbGFzcyBQb2ludChTYWdlT2JqZWN0 KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIGxlbihzZWxmLl9hZmZpbmUpCisgCist ICAgIGNwZGVmIGluZGV4KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBpbmRleChzZWxmKToK KyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgcG9pbnQgaW4g dGhlIHBvaW50IGNvbmZpZ3VyYXRpb24uCisgCitAQCAtMTcyLDcgKzE3Miw3IEBAIGNkZWYgY2xh c3MgUG9pbnQoU2FnZU9iamVjdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxm Ll9pbmRleAorIAorLSAgICBjcGRlZiBwcm9qZWN0aXZlKHNlbGYpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBwcm9qZWN0aXZlKHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRo ZSBwcm9qZWN0aXZlIGNvb3JkaW5hdGVzIG9mIHRoZSBwb2ludCBpbiB0aGUgYW1iaWVudCBzcGFj ZS4KKyAKK0BAIC0xOTgsNyArMTk4LDcgQEAgY2RlZiBjbGFzcyBQb2ludChTYWdlT2JqZWN0KToK KyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX3Byb2plY3RpdmUKKyAKKy0gICAg Y3BkZWYgYWZmaW5lKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBhZmZpbmUoc2VsZik6Cisg ICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGFmZmluZSBjb29yZGluYXRlcyBvZiB0 aGUgcG9pbnQgaW4gdGhlIGFtYmllbnQgc3BhY2UuCisgCitAQCAtMjI0LDcgKzIyNCw3IEBAIGNk ZWYgY2xhc3MgUG9pbnQoU2FnZU9iamVjdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVy biBzZWxmLl9hZmZpbmUKKyAKKy0gICAgY3BkZWYgcmVkdWNlZF9hZmZpbmUoc2VsZikgbm9leGNl cHQ6CisrICAgIGNwZGVmIHJlZHVjZWRfYWZmaW5lKHNlbGYpOgorICAgICAgICAgciIiIgorICAg ICAgICAgUmV0dXJuIHRoZSBhZmZpbmUgY29vcmRpbmF0ZXMgb2YgdGhlIHBvaW50IG9uIHRoZSBo eXBlcnBsYW5lCisgICAgICAgICBzcGFubmVkIGJ5IHRoZSBwb2ludCBjb25maWd1cmF0aW9uLgor QEAgLTI1MSw3ICsyNTEsNyBAQCBjZGVmIGNsYXNzIFBvaW50KFNhZ2VPYmplY3QpOgorICAgICAg ICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fcmVkdWNlZF9hZmZpbmUKKyAKKy0gICAgY3Bk ZWYgcmVkdWNlZF9wcm9qZWN0aXZlKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiByZWR1Y2Vk X3Byb2plY3RpdmUoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHBy b2plY3RpdmUgY29vcmRpbmF0ZXMgb2YgdGhlIHBvaW50IG9uIHRoZSBoeXBlcnBsYW5lCisgICAg ICAgICBzcGFubmVkIGJ5IHRoZSBwb2ludCBjb25maWd1cmF0aW9uLgorQEAgLTI3OCw3ICsyNzgs NyBAQCBjZGVmIGNsYXNzIFBvaW50KFNhZ2VPYmplY3QpOgorICAgICAgICAgIiIiCisgICAgICAg ICByZXR1cm4gdHVwbGUoc2VsZi5fcmVkdWNlZF9hZmZpbmUpKygxLCkKKyAKKy0gICAgY3BkZWYg cmVkdWNlZF9hZmZpbmVfdmVjdG9yKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiByZWR1Y2Vk X2FmZmluZV92ZWN0b3Ioc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUg YWZmaW5lIGNvb3JkaW5hdGVzIG9mIHRoZSBwb2ludCBvbiB0aGUgaHlwZXJwbGFuZQorICAgICAg ICAgc3Bhbm5lZCBieSB0aGUgcG9pbnQgY29uZmlndXJhdGlvbi4KK0BAIC0zMDUsNyArMzA1LDcg QEAgY2RlZiBjbGFzcyBQb2ludChTYWdlT2JqZWN0KToKKyAgICAgICAgICIiIgorICAgICAgICAg cmV0dXJuIHNlbGYuX3JlZHVjZWRfYWZmaW5lX3ZlY3RvcgorIAorLSAgICBjcGRlZiByZWR1Y2Vk X3Byb2plY3RpdmVfdmVjdG9yKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiByZWR1Y2VkX3By b2plY3RpdmVfdmVjdG9yKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhl IGFmZmluZSBjb29yZGluYXRlcyBvZiB0aGUgcG9pbnQgb24gdGhlIGh5cGVycGxhbmUKKyAgICAg ICAgIHNwYW5uZWQgYnkgdGhlIHBvaW50IGNvbmZpZ3VyYXRpb24uCitAQCAtMzM0LDcgKzMzNCw3 IEBAIGNkZWYgY2xhc3MgUG9pbnQoU2FnZU9iamVjdCk6CisgICAgICAgICAiIiIKKyAgICAgICAg IHJldHVybiBzZWxmLl9yZWR1Y2VkX3Byb2plY3RpdmVfdmVjdG9yCisgCistICAgIGNwZGVmIF9y ZXByXyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3JlcHJfKHNlbGYpOgorICAgICAgICAg IiIiCisgICAgICAgICBSZXR1cm4gYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHBvaW50 LgorIAorQEAgLTM5Niw3ICszOTYsNyBAQCBjZGVmIGNsYXNzIFBvaW50Q29uZmlndXJhdGlvbl9i YXNlKFBhcmVudCk6CisgICAgIGNkZWYgYmludCBfaXNfYWZmaW5lCisgICAgIGNkZWYgb2JqZWN0 IF9yZWR1Y2VkX2FmZmluZV92ZWN0b3Jfc3BhY2UsIF9yZWR1Y2VkX3Byb2plY3RpdmVfdmVjdG9y X3NwYWNlCisgCistICAgIGNkZWYgX2luaXRfcG9pbnRzKHNlbGYsIHR1cGxlIHByb2plY3RpdmVf cG9pbnRzKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfaW5pdF9wb2ludHMoc2VsZiwgdHVwbGUgcHJv amVjdGl2ZV9wb2ludHMpOgorICAgICAgICAgIiIiCisgICAgICAgICBJbnRlcm5hbCBtZXRob2Qg dG8gZGV0ZXJtaW5lIGNvb3JkaW5hdGVzIG9mIHBvaW50cy4KKyAKK0BAIC00NjYsNyArNDY2LDcg QEAgY2RlZiBjbGFzcyBQb2ludENvbmZpZ3VyYXRpb25fYmFzZShQYXJlbnQpOgorICAgICAgICAg IiIiCisgICAgICAgICByZXR1cm4gaGFzaF9ieV9pZCg8dm9pZCAqPiBzZWxmKQorIAorLSAgICBj cGRlZiByZWR1Y2VkX2FmZmluZV92ZWN0b3Jfc3BhY2Uoc2VsZikgbm9leGNlcHQ6CisrICAgIGNw ZGVmIHJlZHVjZWRfYWZmaW5lX3ZlY3Rvcl9zcGFjZShzZWxmKToKKyAgICAgICAgICIiIgorICAg ICAgICAgUmV0dXJuIHRoZSB2ZWN0b3Igc3BhY2UgdGhhdCBjb250YWlucyB0aGUgYWZmaW5lIHBv aW50cy4KKyAKK0BAIC00ODYsNyArNDg2LDcgQEAgY2RlZiBjbGFzcyBQb2ludENvbmZpZ3VyYXRp b25fYmFzZShQYXJlbnQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fcmVk dWNlZF9hZmZpbmVfdmVjdG9yX3NwYWNlCisgCistICAgIGNwZGVmIHJlZHVjZWRfcHJvamVjdGl2 ZV92ZWN0b3Jfc3BhY2Uoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIHJlZHVjZWRfcHJvamVj dGl2ZV92ZWN0b3Jfc3BhY2Uoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0 aGUgdmVjdG9yIHNwYWNlIHRoYXQgaXMgc3Bhbm5lZCBieSB0aGUgaG9tb2dlbmVvdXMKKyAgICAg ICAgIGNvb3JkaW5hdGVzLgorQEAgLTUwNyw3ICs1MDcsNyBAQCBjZGVmIGNsYXNzIFBvaW50Q29u ZmlndXJhdGlvbl9iYXNlKFBhcmVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBz ZWxmLl9yZWR1Y2VkX3Byb2plY3RpdmVfdmVjdG9yX3NwYWNlCisgCistICAgIGNwZGVmIGFtYmll bnRfZGltKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBhbWJpZW50X2RpbShzZWxmKToKKyAg ICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBkaW1lbnNpb24gb2YgdGhlIGFtYmllbnQg c3BhY2Ugb2YgdGhlIHBvaW50CisgICAgICAgICBjb25maWd1cmF0aW9uLgorQEAgLTUyNCw3ICs1 MjQsNyBAQCBjZGVmIGNsYXNzIFBvaW50Q29uZmlndXJhdGlvbl9iYXNlKFBhcmVudCk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9hbWJpZW50X2RpbQorIAorLSAgICBjcGRl ZiBkaW0oc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGRpbShzZWxmKToKKyAgICAgICAgICIi IgorICAgICAgICAgUmV0dXJuIHRoZSBhY3R1YWwgZGltZW5zaW9uIG9mIHRoZSBwb2ludCBjb25m aWd1cmF0aW9uLgorIAorQEAgLTU0MCw3ICs1NDAsNyBAQCBjZGVmIGNsYXNzIFBvaW50Q29uZmln dXJhdGlvbl9iYXNlKFBhcmVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxm Ll9kaW0KKyAKKy0gICAgY3BkZWYgYmFzZV9yaW5nKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBiYXNlX3Jpbmcoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGJh c2UgcmluZywgdGhhdCBpcywgdGhlIHJpbmcgY29udGFpbmluZyB0aGUKKyAgICAgICAgIGNvb3Jk aW5hdGVzIG9mIHRoZSBwb2ludHMuCitAQCAtNjMyLDcgKzYzMiw3IEBAIGNkZWYgY2xhc3MgUG9p bnRDb25maWd1cmF0aW9uX2Jhc2UoUGFyZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0 dXJuIHNlbGYuX3B0c1tpXQorIAorLSAgICBjcGRlZiBuX3BvaW50cyhzZWxmKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgbl9wb2ludHMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVy biB0aGUgbnVtYmVyIG9mIHBvaW50cy4KKyAKK0BAIC02NTMsNyArNjUzLDcgQEAgY2RlZiBjbGFz cyBQb2ludENvbmZpZ3VyYXRpb25fYmFzZShQYXJlbnQpOgorICAgICAgICAgIiIiCisgICAgICAg ICByZXR1cm4gbGVuKHNlbGYuX3B0cykKKyAKKy0gICAgY3BkZWYgcG9pbnRzKHNlbGYpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBwb2ludHMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJl dHVybiBhIGxpc3Qgb2YgdGhlIHBvaW50cy4KKyAKK0BAIC03MzEsNyArNzMxLDcgQEAgY2RlZiBj bGFzcyBQb2ludENvbmZpZ3VyYXRpb25fYmFzZShQYXJlbnQpOgorICAgICAgICAgIiIiCisgICAg ICAgICByZXR1cm4gbGVuKHNlbGYuX3B0cykKKyAKKy0gICAgY3BkZWYgc2ltcGxleF90b19pbnQo c2VsZiwgc2ltcGxleCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHNpbXBsZXhfdG9faW50KHNlbGYs IHNpbXBsZXgpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIGFuIGludGVnZXIgdGhh dCB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSBnaXZlbiBzaW1wbGV4LgorIAorQEAgLTc3Niw3ICs3 NzYsNyBAQCBjZGVmIGNsYXNzIFBvaW50Q29uZmlndXJhdGlvbl9iYXNlKFBhcmVudCk6CisgICAg ICAgICAgICAgayA9IGwrMQorICAgICAgICAgcmV0dXJuIHMKKyAKKy0gICAgY3BkZWYgaW50X3Rv X3NpbXBsZXgoc2VsZiwgaW50IHMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBpbnRfdG9fc2ltcGxl eChzZWxmLCBpbnQgcyk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXZlcnNlIHRoZSBlbnVt ZXJhdGlvbiBvZiBwb3NzaWJsZSBzaW1wbGljZXMgaW4KKyAgICAgICAgIDptZXRoOmBzaW1wbGV4 X3RvX2ludGAuCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvZ3JhcGhzL2FzdGVyb2lkYWxfdHJpcGxl cy5weXggYi9zcmMvc2FnZS9ncmFwaHMvYXN0ZXJvaWRhbF90cmlwbGVzLnB5eAoraW5kZXggZmM1 Y2MzZmYwOWIuLmQyNDIzYzkxMmUzIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvZ3JhcGhzL2FzdGVy b2lkYWxfdHJpcGxlcy5weXgKKysrKyBiL3NyYy9zYWdlL2dyYXBocy9hc3Rlcm9pZGFsX3RyaXBs ZXMucHl4CitAQCAtMTg0LDcgKzE4NCw3IEBAIGNkZWYgbGlzdCBpc19hc3Rlcm9pZGFsX3RyaXBs ZV9mcmVlX0ModWludDMyX3QgbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNob3J0X2RpZ3JhcGggc2QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1aW50MzJfdCoqIGNvbm5lY3RlZF9zdHJ1Y3R1cmUsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCogd2FpdGluZ19saXN0LAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYml0c2V0X3Qgc2Vlbikgbm9leGNlcHQ6CisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaXRzZXRfdCBzZWVuKToKKyAgICAg IiIiCisgICAgIElOUFVUOgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2dyYXBocy9iYXNlL2Jv b3N0X2dyYXBoLnB5eCBiL3NyYy9zYWdlL2dyYXBocy9iYXNlL2Jvb3N0X2dyYXBoLnB5eAoraW5k ZXggODg1NmRhNWExNjUuLmI0NDc0YTk2YmQ2IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvZ3JhcGhz L2Jhc2UvYm9vc3RfZ3JhcGgucHl4CisrKysgYi9zcmMvc2FnZS9ncmFwaHMvYmFzZS9ib29zdF9n cmFwaC5weXgKK0BAIC01NSw3ICs1NSw3IEBAIGZyb20gbGliY3BwLnNldCBjaW1wb3J0IHNldCBh cyBjc2V0CisgZnJvbSBsaWJjcHAucGFpciBjaW1wb3J0IHBhaXIKKyAKKyAKKy1jZGVmIGJvb3N0 X2dyYXBoX2Zyb21fc2FnZV9ncmFwaChCb29zdEdlbkdyYXBoICpnLCBnX3NhZ2UsIHZlcnRleF90 b19pbnQsIHJldmVyc2U9RmFsc2UpIG5vZXhjZXB0OgorK2NkZWYgYm9vc3RfZ3JhcGhfZnJvbV9z YWdlX2dyYXBoKEJvb3N0R2VuR3JhcGggKmcsIGdfc2FnZSwgdmVydGV4X3RvX2ludCwgcmV2ZXJz ZT1GYWxzZSk6CisgICAgIHIiIiIKKyAgICAgSW5pdGlhbGl6ZSB0aGUgQm9vc3QgZ3JhcGggYGBn YGAgdG8gYmUgZXF1YWwgdG8gYGBnX3NhZ2VgYC4KKyAKK0BAIC05OCw3ICs5OCw3IEBAIGNkZWYg Ym9vc3Rfd2VpZ2h0ZWRfZ3JhcGhfZnJvbV9zYWdlX2dyYXBoKEJvb3N0V2VpZ2h0ZWRHcmFwaCAq ZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3NhZ2UsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVydGV4X3RvX2ludCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWlnaHRfZnVuY3Rp b249Tm9uZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXZl cnNlPUZhbHNlKSBub2V4Y2VwdDoKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICByZXZlcnNlPUZhbHNlKToKKyAgICAgciIiIgorICAgICBJbml0aWFsaXplIHRoZSBC b29zdCB3ZWlnaHRlZCBncmFwaCBgYGdgYCB0byBiZSBlcXVhbCB0byBgYGdfc2FnZWBgLgorIAor QEAgLTE2OSw3ICsxNjksNyBAQCBjZGVmIGJvb3N0X3dlaWdodGVkX2dyYXBoX2Zyb21fc2FnZV9n cmFwaChCb29zdFdlaWdodGVkR3JhcGggKmcsCisgICAgICAgICAgICAgICAgIGcuYWRkX2VkZ2Uo dmVydGV4X3RvX2ludFt1XSwgdmVydGV4X3RvX2ludFt2XSwgMSkKKyAKKyAKKy1jZGVmIGJvb3N0 X2VkZ2VfY29ubmVjdGl2aXR5KEJvb3N0VmVjR2VuR3JhcGggKmcpIG5vZXhjZXB0OgorK2NkZWYg Ym9vc3RfZWRnZV9jb25uZWN0aXZpdHkoQm9vc3RWZWNHZW5HcmFwaCAqZyk6CisgICAgIHIiIiIK KyAgICAgQ29tcHV0ZSB0aGUgZWRnZSBjb25uZWN0aXZpdHkgb2YgdGhlIGlucHV0IEJvb3N0IGdy YXBoLgorIAorQEAgLTE4OSw3ICsxODksNyBAQCBjZGVmIGJvb3N0X2VkZ2VfY29ubmVjdGl2aXR5 KEJvb3N0VmVjR2VuR3JhcGggKmcpIG5vZXhjZXB0OgorICAgICByZXR1cm4gKHJlc3VsdC5lYywg ZWRnZXMpCisgCisgCistY3BkZWYgZWRnZV9jb25uZWN0aXZpdHkoZykgbm9leGNlcHQ6CisrY3Bk ZWYgZWRnZV9jb25uZWN0aXZpdHkoZyk6CisgICAgIHIiIiIKKyAgICAgQ29tcHV0ZSB0aGUgZWRn ZSBjb25uZWN0aXZpdHkgb2YgdGhlIGlucHV0IGdyYXBoLCB1c2luZyBCb29zdC4KKyAKK0BAIC0y NDQsNyArMjQ0LDcgQEAgY3BkZWYgZWRnZV9jb25uZWN0aXZpdHkoZykgbm9leGNlcHQ6CisgICAg IHJldHVybiAoZWMsIFsoaW50X3RvX3ZlcnRleFt1XSwgaW50X3RvX3ZlcnRleFt2XSkgZm9yIHUs IHYgaW4gZWRnZXNdKQorIAorIAorLWNkZWYgYm9vc3RfY2x1c3RlcmluZ19jb2VmZihCb29zdEdl bkdyYXBoICpnLCB2ZXJ0aWNlcykgbm9leGNlcHQ6CisrY2RlZiBib29zdF9jbHVzdGVyaW5nX2Nv ZWZmKEJvb3N0R2VuR3JhcGggKmcsIHZlcnRpY2VzKToKKyAgICAgciIiIgorICAgICBDb21wdXRl IHRoZSBjbHVzdGVyaW5nIGNvZWZmaWNpZW50IG9mIGFsbCB2ZXJ0aWNlcyBpbiB0aGUgbGlzdCBw cm92aWRlZC4KKyAKK0BAIC0yNzYsNyArMjc2LDcgQEAgY2RlZiBib29zdF9jbHVzdGVyaW5nX2Nv ZWZmKEJvb3N0R2VuR3JhcGggKmcsIHZlcnRpY2VzKSBub2V4Y2VwdDoKKyAgICAgICAgIHJldHVy biAoKHN1bShjbHVzdF9vZl92Lml0ZXJ2YWx1ZXMoKSkgLyBsZW4oY2x1c3Rfb2ZfdikpLCBjbHVz dF9vZl92KQorIAorIAorLWNwZGVmIGNsdXN0ZXJpbmdfY29lZmYoZywgdmVydGljZXM9Tm9uZSkg bm9leGNlcHQ6CisrY3BkZWYgY2x1c3RlcmluZ19jb2VmZihnLCB2ZXJ0aWNlcz1Ob25lKToKKyAg ICAgciIiIgorICAgICBDb21wdXRlIHRoZSBjbHVzdGVyaW5nIGNvZWZmaWNpZW50IG9mIHRoZSBp bnB1dCBncmFwaCwgdXNpbmcgQm9vc3QuCisgCitAQCAtMzQzLDcgKzM0Myw3IEBAIGNwZGVmIGNs dXN0ZXJpbmdfY29lZmYoZywgdmVydGljZXM9Tm9uZSkgbm9leGNlcHQ6CisgCisgCisgQGN5dGhv bi5iaW5kaW5nKFRydWUpCistY3BkZWYgZG9taW5hdG9yX3RyZWUoZywgcm9vdCwgcmV0dXJuX2Rp Y3Q9RmFsc2UsIHJldmVyc2U9RmFsc2UpIG5vZXhjZXB0OgorK2NwZGVmIGRvbWluYXRvcl90cmVl KGcsIHJvb3QsIHJldHVybl9kaWN0PUZhbHNlLCByZXZlcnNlPUZhbHNlKToKKyAgICAgciIiIgor ICAgICBVc2UgQm9vc3QgdG8gY29tcHV0ZSB0aGUgZG9taW5hdG9yIHRyZWUgb2YgYGBnYGAsIHJv b3RlZCBhdCBgYHJvb3RgYC4KKyAKK0BAIC01MDAsNyArNTAwLDcgQEAgY3BkZWYgZG9taW5hdG9y X3RyZWUoZywgcm9vdCwgcmV0dXJuX2RpY3Q9RmFsc2UsIHJldmVyc2U9RmFsc2UpIG5vZXhjZXB0 OgorICAgICAgICAgICAgIHJldHVybiBHcmFwaChlZGdlcykKKyAKKyAKKy1jcGRlZiBiYW5kd2lk dGhfaGV1cmlzdGljcyhnLCBhbGdvcml0aG09J2N1dGhpbGxfbWNrZWUnKSBub2V4Y2VwdDoKKytj cGRlZiBiYW5kd2lkdGhfaGV1cmlzdGljcyhnLCBhbGdvcml0aG09J2N1dGhpbGxfbWNrZWUnKToK KyAgICAgciIiIgorICAgICBVc2UgQm9vc3QgaGV1cmlzdGljcyB0byBhcHByb3hpbWF0ZSB0aGUg YmFuZHdpZHRoIG9mIHRoZSBpbnB1dCBncmFwaC4KKyAKK0BAIC02MjEsNyArNjIxLDcgQEAgY3Bk ZWYgYmFuZHdpZHRoX2hldXJpc3RpY3MoZywgYWxnb3JpdGhtPSdjdXRoaWxsX21ja2VlJykgbm9l eGNlcHQ6CisgCisgY3BkZWYgbWluX3NwYW5uaW5nX3RyZWUoZywKKyAgICAgICAgICAgICAgICAg ICAgICAgICB3ZWlnaHRfZnVuY3Rpb249Tm9uZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICBh bGdvcml0aG09J0tydXNrYWwnKSBub2V4Y2VwdDoKKysgICAgICAgICAgICAgICAgICAgICAgICBh bGdvcml0aG09J0tydXNrYWwnKToKKyAgICAgciIiIgorICAgICBVc2UgQm9vc3QgdG8gY29tcHV0 ZSB0aGUgbWluaW11bSBzcGFubmluZyB0cmVlIG9mIHRoZSBpbnB1dCBncmFwaC4KKyAKK0BAIC03 NDYsNyArNzQ2LDcgQEAgY3BkZWYgbWluX3NwYW5uaW5nX3RyZWUoZywKKyAgICAgcmV0dXJuIFso dSwgdiwgZy5lZGdlX2xhYmVsKHUsIHYpKSBmb3IgdSwgdiBpbiBlZGdlc10KKyAKKyAKKy1jcGRl ZiBibG9ja3NfYW5kX2N1dF92ZXJ0aWNlcyhnKSBub2V4Y2VwdDoKKytjcGRlZiBibG9ja3NfYW5k X2N1dF92ZXJ0aWNlcyhnKToKKyAgICAgciIiIgorICAgICBDb21wdXRlIHRoZSBibG9ja3MgYW5k IGN1dCB2ZXJ0aWNlcyBvZiB0aGUgZ3JhcGguCisgCitAQCAtODQxLDcgKzg0MSw3IEBAIGNwZGVm IGJsb2Nrc19hbmRfY3V0X3ZlcnRpY2VzKGcpIG5vZXhjZXB0OgorICAgICByZXR1cm4gKHJlc3Vs dF9ibG9ja3MsIGxpc3QocmVzdWx0X2N1dCkpCisgCisgCistY3BkZWYgc2hvcnRlc3RfcGF0aHMo Zywgc3RhcnQsIHdlaWdodF9mdW5jdGlvbj1Ob25lLCBhbGdvcml0aG09Tm9uZSkgbm9leGNlcHQ6 CisrY3BkZWYgc2hvcnRlc3RfcGF0aHMoZywgc3RhcnQsIHdlaWdodF9mdW5jdGlvbj1Ob25lLCBh bGdvcml0aG09Tm9uZSk6CisgICAgIHIiIiIKKyAgICAgQ29tcHV0ZSB0aGUgc2hvcnRlc3QgcGF0 aHMgZnJvbSBgYHN0YXJ0YGAgdG8gYWxsIG90aGVyIHZlcnRpY2VzLgorIAorQEAgLTEwMzksNyAr MTAzOSw3IEBAIGNwZGVmIHNob3J0ZXN0X3BhdGhzKGcsIHN0YXJ0LCB3ZWlnaHRfZnVuY3Rpb249 Tm9uZSwgYWxnb3JpdGhtPU5vbmUpIG5vZXhjZXB0OgorICAgICByZXR1cm4gKGRpc3QsIHByZWQp CisgCisgCistY2RlZiBnZXRfcHJlZGVjZXNzb3JzKEJvb3N0V2VpZ2h0ZWRHcmFwaCBnLCByZXN1 bHQsIGludF90b192LCBkaXJlY3RlZCwgd2VpZ2h0X3R5cGUpIG5vZXhjZXB0OgorK2NkZWYgZ2V0 X3ByZWRlY2Vzc29ycyhCb29zdFdlaWdodGVkR3JhcGggZywgcmVzdWx0LCBpbnRfdG9fdiwgZGly ZWN0ZWQsIHdlaWdodF90eXBlKToKKyAgICAgciIiIgorICAgICBSZXR1cm4gdGhlIHByZWRlY2Vz c29yIG1hdHJpeCBmcm9tIHRoZSBkaXN0YW5jZSBtYXRyaXggb2YgdGhlIGdyYXBoLgorIAorQEAg LTEwOTYsNyArMTA5Niw3IEBAIGNkZWYgZ2V0X3ByZWRlY2Vzc29ycyhCb29zdFdlaWdodGVkR3Jh cGggZywgcmVzdWx0LCBpbnRfdG9fdiwgZGlyZWN0ZWQsIHdlaWdodF90CisgICAgIHJldHVybiBw cmVkCisgCisgCistY3BkZWYgam9obnNvbl9zaG9ydGVzdF9wYXRocyhnLCB3ZWlnaHRfZnVuY3Rp b249Tm9uZSwgZGlzdGFuY2VzPVRydWUsIHByZWRlY2Vzc29ycz1GYWxzZSkgbm9leGNlcHQ6Cisr Y3BkZWYgam9obnNvbl9zaG9ydGVzdF9wYXRocyhnLCB3ZWlnaHRfZnVuY3Rpb249Tm9uZSwgZGlz dGFuY2VzPVRydWUsIHByZWRlY2Vzc29ycz1GYWxzZSk6CisgICAgIHIiIiIKKyAgICAgVXNlIEpv aG5zb24gYWxnb3JpdGhtIHRvIHNvbHZlIHRoZSBhbGwtcGFpcnMtc2hvcnRlc3QtcGF0aHMuCisg CitAQCAtMTI1MSw3ICsxMjUxLDcgQEAgY3BkZWYgam9obnNvbl9zaG9ydGVzdF9wYXRocyhnLCB3 ZWlnaHRfZnVuY3Rpb249Tm9uZSwgZGlzdGFuY2VzPVRydWUsIHByZWRlY2Vzc28KKyAgICAgICAg IHJldHVybiBwcmVkCisgCisgCistY3BkZWYgZmxveWRfd2Fyc2hhbGxfc2hvcnRlc3RfcGF0aHMo Zywgd2VpZ2h0X2Z1bmN0aW9uPU5vbmUsIGRpc3RhbmNlcz1UcnVlLCBwcmVkZWNlc3NvcnM9RmFs c2UpIG5vZXhjZXB0OgorK2NwZGVmIGZsb3lkX3dhcnNoYWxsX3Nob3J0ZXN0X3BhdGhzKGcsIHdl aWdodF9mdW5jdGlvbj1Ob25lLCBkaXN0YW5jZXM9VHJ1ZSwgcHJlZGVjZXNzb3JzPUZhbHNlKToK KyAgICAgciIiIgorICAgICBVc2UgRmxveWQtV2Fyc2hhbGwgYWxnb3JpdGhtIHRvIHNvbHZlIHRo ZSBhbGwtcGFpcnMtc2hvcnRlc3QtcGF0aHMuCisgCitAQCAtMTQwNyw3ICsxNDA3LDcgQEAgY3Bk ZWYgZmxveWRfd2Fyc2hhbGxfc2hvcnRlc3RfcGF0aHMoZywgd2VpZ2h0X2Z1bmN0aW9uPU5vbmUs IGRpc3RhbmNlcz1UcnVlLCBwcmUKKyAgICAgICAgIHJldHVybiBwcmVkCisgCisgCistY3BkZWYg am9obnNvbl9jbG9zZW5lc3NfY2VudHJhbGl0eShnLCB3ZWlnaHRfZnVuY3Rpb249Tm9uZSkgbm9l eGNlcHQ6CisrY3BkZWYgam9obnNvbl9jbG9zZW5lc3NfY2VudHJhbGl0eShnLCB3ZWlnaHRfZnVu Y3Rpb249Tm9uZSk6CisgICAgIHIiIiIKKyAgICAgVXNlIEpvaG5zb24gYWxnb3JpdGhtIHRvIGNv bXB1dGUgdGhlIGNsb3NlbmVzcyBjZW50cmFsaXR5IG9mIGFsbCB2ZXJ0aWNlcy4KKyAKK0BAIC0x NTEyLDcgKzE1MTIsNyBAQCBjcGRlZiBqb2huc29uX2Nsb3NlbmVzc19jZW50cmFsaXR5KGcsIHdl aWdodF9mdW5jdGlvbj1Ob25lKSBub2V4Y2VwdDoKKyAgICAgcmV0dXJuIHt2OiBjbG9zZW5lc3Nb aV0gZm9yIGksIHYgaW4gZW51bWVyYXRlKGludF90b192KSBpZiBjbG9zZW5lc3NbaV0gIT0gc3lz LmZsb2F0X2luZm8ubWF4fQorIAorIAorLWNwZGVmIG1pbl9jeWNsZV9iYXNpcyhnX3NhZ2UsIHdl aWdodF9mdW5jdGlvbj1Ob25lLCBieV93ZWlnaHQ9RmFsc2UpIG5vZXhjZXB0OgorK2NwZGVmIG1p bl9jeWNsZV9iYXNpcyhnX3NhZ2UsIHdlaWdodF9mdW5jdGlvbj1Ob25lLCBieV93ZWlnaHQ9RmFs c2UpOgorICAgICByIiIiCisgICAgIFJldHVybiBhIG1pbmltdW0gd2VpZ2h0IGN5Y2xlIGJhc2lz IG9mIHRoZSBpbnB1dCBncmFwaCBgYGdfc2FnZWBgLgorIAorQEAgLTE2MzEsNyArMTYzMSw3IEBA IGNwZGVmIG1pbl9jeWNsZV9iYXNpcyhnX3NhZ2UsIHdlaWdodF9mdW5jdGlvbj1Ob25lLCBieV93 ZWlnaHQ9RmFsc2UpIG5vZXhjZXB0OgorICAgICByZXR1cm4gY3ljbGVfYmFzaXMKKyAKKyAKKy1j cGRlZiBlY2NlbnRyaWNpdHlfREhWKGcsIHZlcnRleF9saXN0PU5vbmUsIHdlaWdodF9mdW5jdGlv bj1Ob25lLCBjaGVja193ZWlnaHQ9VHJ1ZSkgbm9leGNlcHQ6CisrY3BkZWYgZWNjZW50cmljaXR5 X0RIVihnLCB2ZXJ0ZXhfbGlzdD1Ob25lLCB3ZWlnaHRfZnVuY3Rpb249Tm9uZSwgY2hlY2tfd2Vp Z2h0PVRydWUpOgorICAgICByIiIiCisgICAgIFJldHVybiB0aGUgdmVjdG9yIG9mIGVjY2VudHJp Y2l0aWVzIHVzaW5nIHRoZSBhbGdvcml0aG0gb2YgW0RyYWdhbjIwMThdXy4KKyAKK0BAIC0xODE5 LDcgKzE4MTksNyBAQCBjcGRlZiBlY2NlbnRyaWNpdHlfREhWKGcsIHZlcnRleF9saXN0PU5vbmUs IHdlaWdodF9mdW5jdGlvbj1Ob25lLCBjaGVja193ZWlnaHQ9VAorICAgICByZXR1cm4gZWNjZW50 cmljaXR5CisgCisgCistY3BkZWYgcmFkaXVzX0RIVihnLCB3ZWlnaHRfZnVuY3Rpb249Tm9uZSwg Y2hlY2tfd2VpZ2h0PVRydWUpIG5vZXhjZXB0OgorK2NwZGVmIHJhZGl1c19ESFYoZywgd2VpZ2h0 X2Z1bmN0aW9uPU5vbmUsIGNoZWNrX3dlaWdodD1UcnVlKToKKyAgICAgciIiIgorICAgICBSZXR1 cm4gdGhlIHJhZGl1cyBvZiB3ZWlnaHRlZCBncmFwaCBgZ2AuCisgCitAQCAtMTk1Niw3ICsxOTU2 LDcgQEAgY3BkZWYgcmFkaXVzX0RIVihnLCB3ZWlnaHRfZnVuY3Rpb249Tm9uZSwgY2hlY2tfd2Vp Z2h0PVRydWUpIG5vZXhjZXB0OgorICAgICByZXR1cm4gVUIKKyAKKyAKKy1jcGRlZiBkaWFtZXRl cl9ESFYoZywgd2VpZ2h0X2Z1bmN0aW9uPU5vbmUsIGNoZWNrX3dlaWdodD1UcnVlKSBub2V4Y2Vw dDoKKytjcGRlZiBkaWFtZXRlcl9ESFYoZywgd2VpZ2h0X2Z1bmN0aW9uPU5vbmUsIGNoZWNrX3dl aWdodD1UcnVlKToKKyAgICAgciIiIgorICAgICBSZXR1cm4gdGhlIGRpYW1ldGVyIG9mIHdlaWdo dGVkIGdyYXBoIGBnYC4KKyAKK0BAIC0yMTI5LDcgKzIxMjksNyBAQCBjcGRlZiBkaWFtZXRlcl9E SFYoZywgd2VpZ2h0X2Z1bmN0aW9uPU5vbmUsIGNoZWNrX3dlaWdodD1UcnVlKSBub2V4Y2VwdDoK KyBjZGVmIHR1cGxlIGRpYW1ldGVyX2xvd2VyX2JvdW5kXzJEc3dlZXAoQm9vc3RWZWNXZWlnaHRl ZERpR3JhcGhVIGdfYm9vc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEJvb3N0VmVjV2VpZ2h0ZWREaUdyYXBoVSByZXZfZ19ib29zdCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdl9pbmRleCBzb3VyY2UsCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ciBhbGdvcml0aG0pIG5vZXhjZXB0OgorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIgYWxnb3JpdGhtKToKKyAg ICAgciIiIgorICAgICBSZXR1cm4gYSBsb3dlciBib3VuZCBvbiB0aGUgZGlhbWV0ZXIgb2YgYEdg LgorIAorQEAgLTI0OTAsNyArMjQ5MCw3IEBAIGNkZWYgZG91YmxlIGRpYW1ldGVyX0RpRlVCKEJv b3N0VmVjV2VpZ2h0ZWREaUdyYXBoVSBnX2Jvb3N0LAorICAgICByZXR1cm4gTEIKKyAKKyBjcGRl ZiBkaWFtZXRlcihHLCBhbGdvcml0aG09Tm9uZSwgc291cmNlPU5vbmUsCistICAgICAgICAgICAg ICAgd2VpZ2h0X2Z1bmN0aW9uPU5vbmUsIGNoZWNrX3dlaWdodD1UcnVlKSBub2V4Y2VwdDoKKysg ICAgICAgICAgICAgICB3ZWlnaHRfZnVuY3Rpb249Tm9uZSwgY2hlY2tfd2VpZ2h0PVRydWUpOgor ICAgICByIiIiCisgICAgIFJldHVybiB0aGUgZGlhbWV0ZXIgb2YgYEdgLgorIAorQEAgLTI2MjYs NyArMjYyNiw3IEBAIGNwZGVmIGRpYW1ldGVyKEcsIGFsZ29yaXRobT1Ob25lLCBzb3VyY2U9Tm9u ZSwKKyAgICAgICAgIHJldHVybiBMQgorIAorIGNwZGVmIHNob3J0ZXN0X3BhdGhzX2Zyb21fdmVy dGljZXMoZywgdmVydGV4X2xpc3Q9Tm9uZSwgb3JkZXI9Tm9uZSwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHdlaWdodF9mdW5jdGlvbj1Ob25lLCBhbGdvcml0aG09Tm9uZSkg bm9leGNlcHQ6CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWlnaHRfZnVu Y3Rpb249Tm9uZSwgYWxnb3JpdGhtPU5vbmUpOgorICAgICByIiIiCisgICAgIENvbXB1dGUgdGhl IHNob3J0ZXN0IHBhdGhzIHRvIGFsbCB2ZXJ0aWNlcyBmcm9tIGVhY2ggdmVydGV4IGluCisgICAg IGBgdmVydGV4X2xpc3RgYC4KK0BAIC0yODY5LDcgKzI4NjksNyBAQCBjcGRlZiBzaG9ydGVzdF9w YXRoc19mcm9tX3ZlcnRpY2VzKGcsIHZlcnRleF9saXN0PU5vbmUsIG9yZGVyPU5vbmUsCisgCisg ICAgIHJldHVybiBkaXN0YW5jZXMsIHByZWRlY2Vzc29ycworIAorLWNwZGVmIHdpZW5lcl9pbmRl eChnLCBhbGdvcml0aG09Tm9uZSwgd2VpZ2h0X2Z1bmN0aW9uPU5vbmUsIGNoZWNrX3dlaWdodD1U cnVlKSBub2V4Y2VwdDoKKytjcGRlZiB3aWVuZXJfaW5kZXgoZywgYWxnb3JpdGhtPU5vbmUsIHdl aWdodF9mdW5jdGlvbj1Ob25lLCBjaGVja193ZWlnaHQ9VHJ1ZSk6CisgICAgIHIiIiIKKyAgICAg UmV0dXJuIHRoZSBXaWVuZXIgaW5kZXggb2YgdGhlIGdyYXBoLgorIAorZGlmZiAtLWdpdCBhL3Ny Yy9zYWdlL2dyYXBocy9iYXNlL2NfZ3JhcGgucHhkIGIvc3JjL3NhZ2UvZ3JhcGhzL2Jhc2UvY19n cmFwaC5weGQKK2luZGV4IGIyOWNjM2M5NTI3Li45Y2Q2NzBjY2JjNSAxMDA2NDQKKy0tLSBhL3Ny Yy9zYWdlL2dyYXBocy9iYXNlL2NfZ3JhcGgucHhkCisrKysgYi9zcmMvc2FnZS9ncmFwaHMvYmFz ZS9jX2dyYXBoLnB4ZAorQEAgLTIxLDEzICsyMSwxMyBAQCBjZGVmIGNsYXNzIENHcmFwaDoKKyAg ICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAKKyAgICAgY3BkZWYgYmlu dCBoYXNfdmVydGV4KHNlbGYsIGludCBuKSBleGNlcHQgLTEKKy0gICAgY3BkZWYgY2hlY2tfdmVy dGV4KHNlbGYsIGludCBuKSBub2V4Y2VwdAorLSAgICBjcGRlZiBkZWxfdmVydGV4KHNlbGYsIGlu dCB2KSBub2V4Y2VwdAorKyAgICBjcGRlZiBjaGVja192ZXJ0ZXgoc2VsZiwgaW50IG4pCisrICAg IGNwZGVmIGRlbF92ZXJ0ZXgoc2VsZiwgaW50IHYpCisgICAgIGNwZGVmIGludCBjdXJyZW50X2Fs bG9jYXRpb24oc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgbGlzdCB2ZXJ0cyhzZWxmKSBub2V4 Y2VwdAorLSAgICBjcGRlZiBhZGRfdmVydGljZXMoc2VsZiwgdmVydHMpIG5vZXhjZXB0CisrICAg IGNwZGVmIGxpc3QgdmVydHMoc2VsZikKKysgICAgY3BkZWYgYWRkX3ZlcnRpY2VzKHNlbGYsIHZl cnRzKQorICAgICBjZGVmIGludCBkZWxfdmVydGV4X3Vuc2FmZShzZWxmLCBpbnQpIGV4Y2VwdCAt MQorLSAgICBjcGRlZiByZWFsbG9jKHNlbGYsIGludCkgbm9leGNlcHQKKysgICAgY3BkZWYgcmVh bGxvYyhzZWxmLCBpbnQpCisgICAgIGNkZWYgaW50IGFkZF92ZXJ0ZXhfdW5zYWZlKHNlbGYsIGlu dCkgZXhjZXB0IC0xCisgCisgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CitAQCAtNDIsOSArNDIsOSBAQCBjZGVmIGNsYXNzIENHcmFwaDoKKyAKKyAgICAgY2RlZiBpbnQg ZGVsX2FyY191bnNhZmUoc2VsZiwgaW50LCBpbnQpIGV4Y2VwdCAtMQorIAorLSAgICBjcGRlZiBh ZGRfYXJjKHNlbGYsIGludCB1LCBpbnQgdikgbm9leGNlcHQKKysgICAgY3BkZWYgYWRkX2FyYyhz ZWxmLCBpbnQgdSwgaW50IHYpCisgICAgIGNwZGVmIGJpbnQgaGFzX2FyYyhzZWxmLCBpbnQgdSwg aW50IHYpIGV4Y2VwdCAtMQorLSAgICBjcGRlZiBkZWxfYWxsX2FyY3Moc2VsZiwgaW50IHUsIGlu dCB2KSBub2V4Y2VwdAorKyAgICBjcGRlZiBkZWxfYWxsX2FyY3Moc2VsZiwgaW50IHUsIGludCB2 KQorIAorICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworICAgICAjIExh YmVsZWQgRWRnZSBGdW5jdGlvbnMKK0BAIC01Nyw4ICs1Nyw4IEBAIGNkZWYgY2xhc3MgQ0dyYXBo OgorICAgICBjZGVmIGludCBhbGxfYXJjc191bnNhZmUoc2VsZiwgaW50LCBpbnQsIGludCAqLCBp bnQpIGV4Y2VwdCAtMQorIAorICAgICBjcGRlZiBpbnQgYXJjX2xhYmVsKHNlbGYsIGludCB1LCBp bnQgdikgbm9leGNlcHQKKy0gICAgY3BkZWYgbGlzdCBhbGxfYXJjcyhzZWxmLCBpbnQgdSwgaW50 IHYpIG5vZXhjZXB0CistICAgIGNwZGVmIGRlbF9hcmNfbGFiZWwoc2VsZiwgaW50IHUsIGludCB2 LCBpbnQgbCkgbm9leGNlcHQKKysgICAgY3BkZWYgbGlzdCBhbGxfYXJjcyhzZWxmLCBpbnQgdSwg aW50IHYpCisrICAgIGNwZGVmIGRlbF9hcmNfbGFiZWwoc2VsZiwgaW50IHUsIGludCB2LCBpbnQg bCkKKyAgICAgY3BkZWYgYmludCBoYXNfYXJjX2xhYmVsKHNlbGYsIGludCB1LCBpbnQgdiwgaW50 IGwpIG5vZXhjZXB0CisgCisgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CitAQCAtNzYsMTYgKzc2LDE2IEBAIGNkZWYgY2xhc3MgQ0dyYXBoOgorIAorICAgICBjZGVmIGlu dCBuZXh0X291dF9uZWlnaGJvcl91bnNhZmUoc2VsZiwgaW50LCBpbnQsIGludCopIGV4Y2VwdCAt MgorICAgICBjZGVmIGludCBuZXh0X2luX25laWdoYm9yX3Vuc2FmZShzZWxmLCBpbnQsIGludCwg aW50KikgZXhjZXB0IC0yCistICAgIGNkZWYgYWRqYWNlbmN5X3NlcXVlbmNlX291dChzZWxmLCBp bnQgbiwgaW50ICp2ZXJ0aWNlcywgaW50IHYsIGludCogc2VxdWVuY2UpIG5vZXhjZXB0CistICAg IGNkZWYgYWRqYWNlbmN5X3NlcXVlbmNlX2luKHNlbGYsIGludCBuLCBpbnQgKnZlcnRpY2VzLCBp bnQgdiwgaW50KiBzZXF1ZW5jZSkgbm9leGNlcHQKKy0gICAgY3BkZWYgbGlzdCBpbl9uZWlnaGJv cnMoc2VsZiwgaW50IHYpIG5vZXhjZXB0CistICAgIGNwZGVmIGxpc3Qgb3V0X25laWdoYm9ycyhz ZWxmLCBpbnQgdSkgbm9leGNlcHQKKysgICAgY2RlZiBhZGphY2VuY3lfc2VxdWVuY2Vfb3V0KHNl bGYsIGludCBuLCBpbnQgKnZlcnRpY2VzLCBpbnQgdiwgaW50KiBzZXF1ZW5jZSkKKysgICAgY2Rl ZiBhZGphY2VuY3lfc2VxdWVuY2VfaW4oc2VsZiwgaW50IG4sIGludCAqdmVydGljZXMsIGludCB2 LCBpbnQqIHNlcXVlbmNlKQorKyAgICBjcGRlZiBsaXN0IGluX25laWdoYm9ycyhzZWxmLCBpbnQg dikKKysgICAgY3BkZWYgbGlzdCBvdXRfbmVpZ2hib3JzKHNlbGYsIGludCB1KQorIAorIAorIGNk ZWYgY2xhc3MgQ0dyYXBoQmFja2VuZChHZW5lcmljR3JhcGhCYWNrZW5kKToKKyAgICAgY2RlZiBp bnQgZ2V0X3ZlcnRleChzZWxmLCB1KSBleGNlcHQgPyAtMgorICAgICBjZGVmIGludCBnZXRfdmVy dGV4X2NoZWNrZWQoc2VsZiwgdSkgZXhjZXB0ID8gLTIKKy0gICAgY2RlZiB2ZXJ0ZXhfbGFiZWwo c2VsZiwgaW50IHVfaW50KSBub2V4Y2VwdAorKyAgICBjZGVmIHZlcnRleF9sYWJlbChzZWxmLCBp bnQgdV9pbnQpCisgICAgIGNkZWYgaW50IGNoZWNrX2xhYmVsbGVkX3ZlcnRleChzZWxmLCB1LCBi aW50IHJldmVyc2UpIGV4Y2VwdCA/IC0xCisgICAgICNjZGVmIENHcmFwaCBfY2cgICMgYSBjaGls ZCBjbGFzcyBzaG91bGQgZGVjbGFyZSB0aGlzIGFjY29yZGluZ2x5CisgICAgIGNkZWYgYmludCBf ZGlyZWN0ZWQKK0BAIC05NCwxMiArOTQsMTIgQEAgY2RlZiBjbGFzcyBDR3JhcGhCYWNrZW5kKEdl bmVyaWNHcmFwaEJhY2tlbmQpOgorICAgICBjZGVmIGRpY3QgZWRnZV9sYWJlbHMKKyAgICAgY2Rl ZiBiaW50IF9sb29wcworICAgICBjZGVmIGJpbnQgX211bHRpcGxlX2VkZ2VzCistICAgIGNkZWYg Q0dyYXBoIGNnKHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIGFkZF9lZGdlKHNlbGYsIG9iamVj dCB1LCBvYmplY3Qgdiwgb2JqZWN0IGwsIGJpbnQgZGlyZWN0ZWQpIG5vZXhjZXB0CistICAgIGNw ZGVmIGRlbF9lZGdlKHNlbGYsIG9iamVjdCB1LCBvYmplY3Qgdiwgb2JqZWN0IGwsIGJpbnQgZGly ZWN0ZWQpIG5vZXhjZXB0CisrICAgIGNkZWYgQ0dyYXBoIGNnKHNlbGYpCisrICAgIGNwZGVmIGFk ZF9lZGdlKHNlbGYsIG9iamVjdCB1LCBvYmplY3Qgdiwgb2JqZWN0IGwsIGJpbnQgZGlyZWN0ZWQp CisrICAgIGNwZGVmIGRlbF9lZGdlKHNlbGYsIG9iamVjdCB1LCBvYmplY3Qgdiwgb2JqZWN0IGws IGJpbnQgZGlyZWN0ZWQpCisgICAgIGNkZWYgYmludCBfaGFzX2xhYmVsZWRfZWRnZV91bnNhZmUo c2VsZiwgaW50LCBpbnQsIG9iamVjdCkgZXhjZXB0IC0xCisgICAgIGNkZWYgYmludCBfZGVsZXRl X2VkZ2VfYmVmb3JlX2FkZGluZyhzZWxmKSBub2V4Y2VwdAorICAgICBjZGVmIGludCBuZXdfZWRn ZV9sYWJlbChzZWxmLCBvYmplY3QgbCkgZXhjZXB0IC0xCisgICAgIGNkZWYgaW50IGZyZWVfZWRn ZV9sYWJlbChzZWxmLCBpbnQgbF9pbnQpIGV4Y2VwdCAtMQorICAgICBjZGVmIGludCBfdXNlX2Vk Z2VfaXRlcmF0b3Jfb25fc3ViZ3JhcGgoc2VsZiwgQ0dyYXBoQmFja2VuZCBvdGhlciwgb2JqZWN0 IHZlcnRpY2VzLCBjb25zdCBpbnQgbW9kdXMpIGV4Y2VwdCAtMQorLSAgICBjZGVmIGxpc3QgX2Fs bF9lZGdlX2xhYmVscyhzZWxmLCBpbnQgdSwgaW50IHYsIHVpbnQzMl90KiBlZGdlPSopIG5vZXhj ZXB0CisrICAgIGNkZWYgbGlzdCBfYWxsX2VkZ2VfbGFiZWxzKHNlbGYsIGludCB1LCBpbnQgdiwg dWludDMyX3QqIGVkZ2U9KikKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9ncmFwaHMvYmFzZS9jX2dy YXBoLnB5eCBiL3NyYy9zYWdlL2dyYXBocy9iYXNlL2NfZ3JhcGgucHl4CitpbmRleCA5YjlkYWM2 OTE3Yi4uYzhkNjhjNDgzN2YgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9ncmFwaHMvYmFzZS9jX2dy YXBoLnB5eAorKysrIGIvc3JjL3NhZ2UvZ3JhcGhzL2Jhc2UvY19ncmFwaC5weXgKK0BAIC0xMjYs NyArMTI2LDcgQEAgY2RlZiBjbGFzcyBDR3JhcGg6CisgICAgICAgICAgICAgICAgIDxtcF9iaXRj bnRfdD5uIDwgc2VsZi5hY3RpdmVfdmVydGljZXMuc2l6ZSBhbmQKKyAgICAgICAgICAgICAgICAg Yml0c2V0X2luKHNlbGYuYWN0aXZlX3ZlcnRpY2VzLCBuKSkKKyAKKy0gICAgY3BkZWYgY2hlY2tf dmVydGV4KHNlbGYsIGludCBuKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgY2hlY2tfdmVydGV4KHNl bGYsIGludCBuKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ2hlY2sgdGhhdCBgYG5gYCBpcyBh IHZlcnRleCBvZiBgYHNlbGZgYC4KKyAKK0BAIC0zMzMsNyArMzMzLDcgQEAgY2RlZiBjbGFzcyBD R3JhcGg6CisgICAgICAgICAgICAgc2VsZi5yZWFsbG9jKDIgKiBzZWxmLmFjdGl2ZV92ZXJ0aWNl cy5zaXplKQorICAgICAgICAgcmV0dXJuIHNlbGYuYWRkX3ZlcnRleF91bnNhZmUoaykKKyAKKy0g ICAgY3BkZWYgYWRkX3ZlcnRpY2VzKHNlbGYsIHZlcnRzKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg YWRkX3ZlcnRpY2VzKHNlbGYsIHZlcnRzKToKKyAgICAgICAgICIiIgorICAgICAgICAgQWRkIHZl cnRpY2VzIGZyb20gdGhlIGl0ZXJhYmxlIGBgdmVydHNgYC4KKyAKK0BAIC00MzMsNyArNDMzLDcg QEAgY2RlZiBjbGFzcyBDR3JhcGg6CisgICAgICAgICBzZWxmLm51bV92ZXJ0cyAtPSAxCisgICAg ICAgICBiaXRzZXRfcmVtb3ZlKHNlbGYuYWN0aXZlX3ZlcnRpY2VzLCB2KQorIAorLSAgICBjcGRl ZiBkZWxfdmVydGV4KHNlbGYsIGludCB2KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZGVsX3ZlcnRl eChzZWxmLCBpbnQgdik6CisgICAgICAgICAiIiIKKyAgICAgICAgIERlbGV0ZSB0aGUgdmVydGV4 IGBgdmBgLCBhbG9uZyB3aXRoIGFsbCBlZGdlcyBpbmNpZGVudCB0byBpdC4KKyAKK0BAIC01ODEs NyArNTgxLDcgQEAgY2RlZiBjbGFzcyBDR3JhcGg6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJl dHVybiBzZWxmLmFjdGl2ZV92ZXJ0aWNlcy5zaXplCisgCistICAgIGNwZGVmIGxpc3QgdmVydHMo c2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGxpc3QgdmVydHMoc2VsZik6CisgICAgICAgICAi IiIKKyAgICAgICAgIFJldHVybiBhIGxpc3Qgb2YgdGhlIHZlcnRpY2VzIGluIGBgc2VsZmBgLgor IAorQEAgLTYxNCw3ICs2MTQsNyBAQCBjZGVmIGNsYXNzIENHcmFwaDoKKyAgICAgICAgICIiIgor ICAgICAgICAgcmV0dXJuIGJpdHNldF9saXN0KHNlbGYuYWN0aXZlX3ZlcnRpY2VzKQorIAorLSAg ICBjcGRlZiByZWFsbG9jKHNlbGYsIGludCB0b3RhbCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHJl YWxsb2Moc2VsZiwgaW50IHRvdGFsKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmVhbGxvY2F0 ZSB0aGUgbnVtYmVyIG9mIHZlcnRpY2VzIHRvIHVzZSwgd2l0aG91dCBhY3R1YWxseSBhZGRpbmcg YW55LgorIAorQEAgLTcyNSw3ICs3MjUsNyBAQCBjZGVmIGNsYXNzIENHcmFwaDoKKyAgICAgY2Rl ZiBpbnQgZGVsX2FyY191bnNhZmUoc2VsZiwgaW50IHUsIGludCB2KSBleGNlcHQgLTE6CisgICAg ICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKKyAKKy0gICAgY3BkZWYgYWRkX2FyYyhz ZWxmLCBpbnQgdSwgaW50IHYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBhZGRfYXJjKHNlbGYsIGlu dCB1LCBpbnQgdik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEFkZCBhcmMgYGAodSwgdilgYCB0 byB0aGUgZ3JhcGguCisgCitAQCAtODIzLDcgKzgyMyw3IEBAIGNkZWYgY2xhc3MgQ0dyYXBoOgor ICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgcmV0dXJuIHNlbGYuaGFzX2FyY191 bnNhZmUodSwgdikgPT0gMQorIAorLSAgICBjcGRlZiBkZWxfYWxsX2FyY3Moc2VsZiwgaW50IHUs IGludCB2KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZGVsX2FsbF9hcmNzKHNlbGYsIGludCB1LCBp bnQgdik6CisgICAgICAgICAiIiIKKyAgICAgICAgIERlbGV0ZSBhbGwgYXJjcyBmcm9tIGBgdWBg IHRvIGBgdmBgLgorIAorQEAgLTkzMyw3ICs5MzMsNyBAQCBjZGVmIGNsYXNzIENHcmFwaDoKKyAg ICAgICAgIHNlbGYuY2hlY2tfdmVydGV4KHYpCisgICAgICAgICByZXR1cm4gc2VsZi5hcmNfbGFi ZWxfdW5zYWZlKHUsIHYpCisgCistICAgIGNwZGVmIGxpc3QgYWxsX2FyY3Moc2VsZiwgaW50IHUs IGludCB2KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgbGlzdCBhbGxfYXJjcyhzZWxmLCBpbnQgdSwg aW50IHYpOgorICAgICAgICAgIiIiCisgICAgICAgICBHaXZlcyB0aGUgbGFiZWxzIG9mIGFsbCBh cmNzIGBgKHUsIHYpYGAuIEFuIHVubGFiZWxlZCBhcmMgaXMgaW50ZXJwcmV0ZWQgYXMKKyAgICAg ICAgIGhhdmluZyBsYWJlbCAwLgorQEAgLTk3Myw3ICs5NzMsNyBAQCBjZGVmIGNsYXNzIENHcmFw aDoKKyAgICAgICAgIHNpZ19mcmVlKGFyY19sYWJlbHMpCisgICAgICAgICByZXR1cm4gb3V0cHV0 CisgCistICAgIGNwZGVmIGRlbF9hcmNfbGFiZWwoc2VsZiwgaW50IHUsIGludCB2LCBpbnQgbCkg bm9leGNlcHQ6CisrICAgIGNwZGVmIGRlbF9hcmNfbGFiZWwoc2VsZiwgaW50IHUsIGludCB2LCBp bnQgbCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIERlbGV0ZSBhbiBhcmMgYGAodSwgdilgYCB3 aXRoIGxhYmVsIGBgbGBgLgorIAorQEAgLTExMjQsNyArMTEyNCw3IEBAIGNkZWYgY2xhc3MgQ0dy YXBoOgorICAgICBjZGVmIGludCBuZXh0X2luX25laWdoYm9yX3Vuc2FmZShzZWxmLCBpbnQgdiwg aW50IHUsIGludCogbCkgZXhjZXB0IC0yOgorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRF cnJvcigpCisgCistICAgIGNkZWYgYWRqYWNlbmN5X3NlcXVlbmNlX291dChzZWxmLCBpbnQgbiwg aW50ICp2ZXJ0aWNlcywgaW50IHYsIGludCogc2VxdWVuY2UpIG5vZXhjZXB0OgorKyAgICBjZGVm IGFkamFjZW5jeV9zZXF1ZW5jZV9vdXQoc2VsZiwgaW50IG4sIGludCAqdmVydGljZXMsIGludCB2 LCBpbnQqIHNlcXVlbmNlKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYWRq YWNlbmN5IHNlcXVlbmNlIGNvcnJlc3BvbmRpbmcgdG8gYSBsaXN0IG9mIHZlcnRpY2VzIGFuZCBh CisgICAgICAgICB2ZXJ0ZXguCitAQCAtMTE2NCw3ICsxMTY0LDcgQEAgY2RlZiBjbGFzcyBDR3Jh cGg6CisgICAgICAgICBmb3IgaSBpbiByYW5nZShuKToKKyAgICAgICAgICAgICBzZXF1ZW5jZVtp XSA9IHNlbGYuaGFzX2FyY191bnNhZmUodiwgdmVydGljZXNbaV0pCisgCistICAgIGNkZWYgYWRq YWNlbmN5X3NlcXVlbmNlX2luKHNlbGYsIGludCBuLCBpbnQgKnZlcnRpY2VzLCBpbnQgdiwgaW50 KiBzZXF1ZW5jZSkgbm9leGNlcHQ6CisrICAgIGNkZWYgYWRqYWNlbmN5X3NlcXVlbmNlX2luKHNl bGYsIGludCBuLCBpbnQgKnZlcnRpY2VzLCBpbnQgdiwgaW50KiBzZXF1ZW5jZSk6CisgICAgICAg ICByIiIiCisgICAgICAgICBDb21wdXRlIHRoZSBhZGphY2VuY3kgc2VxdWVuY2UgY29ycmVzcG9u ZGluZyB0byBhIGxpc3Qgb2YgdmVydGljZXMgYW5kIGEKKyAgICAgICAgIHZlcnRleC4KK0BAIC0x MjAzLDcgKzEyMDMsNyBAQCBjZGVmIGNsYXNzIENHcmFwaDoKKyAgICAgICAgIGZvciBpIGluIHJh bmdlKG4pOgorICAgICAgICAgICAgIHNlcXVlbmNlW2ldID0gc2VsZi5oYXNfYXJjX3Vuc2FmZSh2 ZXJ0aWNlc1tpXSwgdikKKyAKKy0gICAgY3BkZWYgbGlzdCBvdXRfbmVpZ2hib3JzKHNlbGYsIGlu dCB1KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgbGlzdCBvdXRfbmVpZ2hib3JzKHNlbGYsIGludCB1 KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBsaXN0IG9mIG91dC1uZWlnaGJv cnMgb2YgdGhlIHZlcnRleCBgYHVgYC4KKyAKK0BAIC0xMjU3LDcgKzEyNTcsNyBAQCBjZGVmIGNs YXNzIENHcmFwaDoKKyAgICAgICAgIHNpZ19mcmVlKG5laWdoYm9ycykKKyAgICAgICAgIHJldHVy biBvdXRwdXQKKyAKKy0gICAgY3BkZWYgbGlzdCBpbl9uZWlnaGJvcnMoc2VsZiwgaW50IHYpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBsaXN0IGluX25laWdoYm9ycyhzZWxmLCBpbnQgdik6CisgICAg ICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgbGlzdCBvZiBpbi1uZWlnaGJvcnMgb2YgdGhl IHZlcnRleCBgYHZgYC4KKyAKK0BAIC0xMzc1LDcgKzEzNzUsNyBAQCBjZGVmIGNsYXNzIENHcmFw aEJhY2tlbmQoR2VuZXJpY0dyYXBoQmFja2VuZCk6CisgICAgICMgQmFzaWMgQWNjZXNzCisgICAg ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgCistICAgIGNkZWYgQ0dyYXBo IGNnKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIENHcmFwaCBjZyhzZWxmKToKKyAgICAgICAg IHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYXR0cmlidXRlIGBgX2NnYGAgY2FzdGVkIGludG8g YGBDR3JhcGhgYC4KKyAgICAgICAgICIiIgorQEAgLTE2MzEsNyArMTYzMSw3IEBAIGNkZWYgY2xh c3MgQ0dyYXBoQmFja2VuZChHZW5lcmljR3JhcGhCYWNrZW5kKToKKyAgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICAgcmV0dXJuIC0xCisgCistICAgIGNkZWYgdmVydGV4X2xhYmVsKHNlbGYsIGlu dCB1X2ludCkgbm9leGNlcHQ6CisrICAgIGNkZWYgdmVydGV4X2xhYmVsKHNlbGYsIGludCB1X2lu dCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgb2JqZWN0IHJlcHJlc2VudGVk IGJ5IGBgdV9pbnRgYCwgb3IgYGBOb25lYGAgaWYgdGhpcyBkb2VzIG5vdAorICAgICAgICAgcmVw cmVzZW50IGEgdmVydGV4LgorQEAgLTIzNTcsNyArMjM1Nyw3IEBAIGNkZWYgY2xhc3MgQ0dyYXBo QmFja2VuZChHZW5lcmljR3JhcGhCYWNrZW5kKToKKyAgICAgICAgICAgICAgICAgY29udGludWUK KyAgICAgICAgICAgICBzZWxmLmFkZF9lZGdlKHUsIHYsIGwsIGRpcmVjdGVkKQorIAorLSAgICBj cGRlZiBhZGRfZWRnZShzZWxmLCBvYmplY3QgdSwgb2JqZWN0IHYsIG9iamVjdCBsLCBiaW50IGRp cmVjdGVkKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgYWRkX2VkZ2Uoc2VsZiwgb2JqZWN0IHUsIG9i amVjdCB2LCBvYmplY3QgbCwgYmludCBkaXJlY3RlZCk6CisgICAgICAgICAiIiIKKyAgICAgICAg IEFkZCB0aGUgZWRnZSBgYCh1LHYpYGAgdG8gc2VsZi4KKyAKK0BAIC0yNDg5LDcgKzI0ODksNyBA QCBjZGVmIGNsYXNzIENHcmFwaEJhY2tlbmQoR2VuZXJpY0dyYXBoQmFja2VuZCk6CisgICAgICAg ICAgICAgICAgIGwgPSBOb25lCisgICAgICAgICAgICAgc2VsZi5kZWxfZWRnZSh1LCB2LCBsLCBk aXJlY3RlZCkKKyAKKy0gICAgY3BkZWYgZGVsX2VkZ2Uoc2VsZiwgb2JqZWN0IHUsIG9iamVjdCB2 LCBvYmplY3QgbCwgYmludCBkaXJlY3RlZCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGRlbF9lZGdl KHNlbGYsIG9iamVjdCB1LCBvYmplY3Qgdiwgb2JqZWN0IGwsIGJpbnQgZGlyZWN0ZWQpOgorICAg ICAgICAgIiIiCisgICAgICAgICBEZWxldGUgZWRnZSBgYCh1LCB2LCBsKWBgLgorIAorQEAgLTI2 MDcsNyArMjYwNyw3IEBAIGNkZWYgY2xhc3MgQ0dyYXBoQmFja2VuZChHZW5lcmljR3JhcGhCYWNr ZW5kKToKKyAgICAgY2RlZiBpbnQgZnJlZV9lZGdlX2xhYmVsKHNlbGYsIGludCBsX2ludCkgZXhj ZXB0IC0xOgorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigpCisgCistICAgIGNk ZWYgbGlzdCBfYWxsX2VkZ2VfbGFiZWxzKHNlbGYsIGludCB1LCBpbnQgdiwgdWludDMyX3QqIGVk Z2U9TlVMTCkgbm9leGNlcHQ6CisrICAgIGNkZWYgbGlzdCBfYWxsX2VkZ2VfbGFiZWxzKHNlbGYs IGludCB1LCBpbnQgdiwgdWludDMyX3QqIGVkZ2U9TlVMTCk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIEdpdmVzIHRoZSBsYWJlbHMgb2YgYWxsIGFyY3MgZnJvbSBgYHVgYCB0byBgYHZgYC4KKyAK K0BAIC00ODg1LDcgKzQ4ODUsNyBAQCBjZGVmIGNsYXNzIFNlYXJjaF9pdGVyYXRvcjoKKyAgICAg ICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYKKyAKKy0gICAgY2RlZiBpbmxpbmUgbmV4dF9i cmVhZHRoX2ZpcnN0X3NlYXJjaChzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBpbmxpbmUgbmV4 dF9icmVhZHRoX2ZpcnN0X3NlYXJjaChzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJl dHVybiB0aGUgbmV4dCB2ZXJ0ZXggaW4gYSBicmVhZHRoIGZpcnN0IHNlYXJjaCB0cmF2ZXJzYWwg b2YgYSBncmFwaC4KKyAKK0BAIC00OTQ3LDcgKzQ5NDcsNyBAQCBjZGVmIGNsYXNzIFNlYXJjaF9p dGVyYXRvcjoKKyAgICAgICAgICAgICByZXR1cm4gdmFsdWVfcHJldiwgdmFsdWUKKyAgICAgICAg IHJldHVybiB2YWx1ZQorIAorLSAgICBjZGVmIGlubGluZSBuZXh0X2RlcHRoX2ZpcnN0X3NlYXJj aChzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBpbmxpbmUgbmV4dF9kZXB0aF9maXJzdF9zZWFy Y2goc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIG5leHQgdmVydGV4 IGluIGEgZGVwdGggZmlyc3Qgc2VhcmNoIHRyYXZlcnNhbCBvZiBhIGdyYXBoLgorIAorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL2dyYXBocy9iYXNlL2RlbnNlX2dyYXBoLnB4ZCBiL3NyYy9zYWdlL2dy YXBocy9iYXNlL2RlbnNlX2dyYXBoLnB4ZAoraW5kZXggNmM0MTQ1Njk0ZmUuLjgyNjU5NzEzYmQ5 IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvZ3JhcGhzL2Jhc2UvZGVuc2VfZ3JhcGgucHhkCisrKysg Yi9zcmMvc2FnZS9ncmFwaHMvYmFzZS9kZW5zZV9ncmFwaC5weGQKK0BAIC0yMSw1ICsyMSw1IEBA IGNkZWYgaW50IGNvcHlfZGVuc2VfZ3JhcGgoRGVuc2VHcmFwaCBkZXN0LCBEZW5zZUdyYXBoIHNy YykgZXhjZXB0IC0xCisgCisgY2RlZiBjbGFzcyBEZW5zZUdyYXBoQmFja2VuZChDR3JhcGhCYWNr ZW5kKToKKyAgICAgY2RlZiBEZW5zZUdyYXBoIF9jZworLSAgICBjZGVmIGlubGluZSBDR3JhcGgg Y2coc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgaW5saW5lIENHcmFwaCBjZyhzZWxmKToKKyAg ICAgICAgIHJldHVybiA8Q0dyYXBoPiBzZWxmLl9jZworZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2dy YXBocy9iYXNlL2RlbnNlX2dyYXBoLnB5eCBiL3NyYy9zYWdlL2dyYXBocy9iYXNlL2RlbnNlX2dy YXBoLnB5eAoraW5kZXggZGI0YTAyYTVhM2YuLmVjYThkZTZhZmVkIDEwMDY0NAorLS0tIGEvc3Jj L3NhZ2UvZ3JhcGhzL2Jhc2UvZGVuc2VfZ3JhcGgucHl4CisrKysgYi9zcmMvc2FnZS9ncmFwaHMv YmFzZS9kZW5zZV9ncmFwaC5weXgKK0BAIC0xOTUsNyArMTk1LDcgQEAgY2RlZiBjbGFzcyBEZW5z ZUdyYXBoKENHcmFwaCk6CisgICAgICAgICBzaWdfZnJlZShzZWxmLm91dF9kZWdyZWVzKQorICAg ICAgICAgYml0c2V0X2ZyZWUoc2VsZi5hY3RpdmVfdmVydGljZXMpCisgCistICAgIGNwZGVmIHJl YWxsb2Moc2VsZiwgaW50IHRvdGFsX3ZlcnRzKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcmVhbGxv YyhzZWxmLCBpbnQgdG90YWxfdmVydHMpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZWFsbG9j YXRlIHRoZSBudW1iZXIgb2YgdmVydGljZXMgdG8gdXNlLCB3aXRob3V0IGFjdHVhbGx5IGFkZGlu ZyBhbnkuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvZ3JhcGhzL2Jhc2Uvc3BhcnNlX2dyYXBo LnB4ZCBiL3NyYy9zYWdlL2dyYXBocy9iYXNlL3NwYXJzZV9ncmFwaC5weGQKK2luZGV4IDM3OTVj OGZmMGYwLi41NDBhODgyNzgwMSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2dyYXBocy9iYXNlL3Nw YXJzZV9ncmFwaC5weGQKKysrKyBiL3NyYy9zYWdlL2dyYXBocy9iYXNlL3NwYXJzZV9ncmFwaC5w eGQKK0BAIC03MCw1ICs3MCw1IEBAIGNkZWYgY2xhc3MgU3BhcnNlR3JhcGhCYWNrZW5kKENHcmFw aEJhY2tlbmQpOgorICAgICBjZGVmIGludCBlZGdlX2xhYmVsc19tYXgKKyAgICAgY2RlZiBsaXN0 IGVkZ2VfbGFiZWxzX2F2YWlsYWJsZV9pZHMKKyAgICAgY2RlZiBTcGFyc2VHcmFwaCBfY2cKKy0g ICAgY2RlZiBpbmxpbmUgQ0dyYXBoIGNnKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIGlubGlu ZSBDR3JhcGggY2coc2VsZik6CisgICAgICAgICByZXR1cm4gPENHcmFwaD4gc2VsZi5fY2cKK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9ncmFwaHMvYmFzZS9zcGFyc2VfZ3JhcGgucHl4IGIvc3JjL3Nh Z2UvZ3JhcGhzL2Jhc2Uvc3BhcnNlX2dyYXBoLnB5eAoraW5kZXggZTUxMjgzMmQ5NTguLjg2NzI5 NDBjNDA0IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvZ3JhcGhzL2Jhc2Uvc3BhcnNlX2dyYXBoLnB5 eAorKysrIGIvc3JjL3NhZ2UvZ3JhcGhzL2Jhc2Uvc3BhcnNlX2dyYXBoLnB5eAorQEAgLTM3MCw3 ICszNzAsNyBAQCBjZGVmIGNsYXNzIFNwYXJzZUdyYXBoKENHcmFwaCk6CisgICAgICAgICBzaWdf ZnJlZShzZWxmLm91dF9kZWdyZWVzKQorICAgICAgICAgYml0c2V0X2ZyZWUoc2VsZi5hY3RpdmVf dmVydGljZXMpCisgCistICAgIGNwZGVmIHJlYWxsb2Moc2VsZiwgaW50IHRvdGFsKSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgcmVhbGxvYyhzZWxmLCBpbnQgdG90YWwpOgorICAgICAgICAgIiIiCisg ICAgICAgICBSZWFsbG9jYXRlIHRoZSBudW1iZXIgb2YgdmVydGljZXMgdG8gdXNlLCB3aXRob3V0 IGFjdHVhbGx5IGFkZGluZyBhbnkuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvZ3JhcGhzL2Jh c2Uvc3RhdGljX2RlbnNlX2dyYXBoLnB4ZCBiL3NyYy9zYWdlL2dyYXBocy9iYXNlL3N0YXRpY19k ZW5zZV9ncmFwaC5weGQKK2luZGV4IGQxYzJhMGFhM2Y5Li4wZTU4MGEwMmI1NyAxMDA2NDQKKy0t LSBhL3NyYy9zYWdlL2dyYXBocy9iYXNlL3N0YXRpY19kZW5zZV9ncmFwaC5weGQKKysrKyBiL3Ny Yy9zYWdlL2dyYXBocy9iYXNlL3N0YXRpY19kZW5zZV9ncmFwaC5weGQKK0BAIC0xLDQgKzEsNCBA QAorIGZyb20gc2FnZS5kYXRhX3N0cnVjdHVyZXMuYmluYXJ5X21hdHJpeCBjaW1wb3J0IGJpbmFy eV9tYXRyaXhfdAorIGZyb20gbGliYy5zdGRpbnQgY2ltcG9ydCB1aW50MzJfdCwgdWludDY0X3QK KyAKKy1jZGVmIGRpY3QgZGVuc2VfZ3JhcGhfaW5pdChiaW5hcnlfbWF0cml4X3QgbSwgZywgdHJh bnNsYXRpb24gPSA/LCBmb3JjZV91bmRpcmVjdGVkID0gPykgbm9leGNlcHQKKytjZGVmIGRpY3Qg ZGVuc2VfZ3JhcGhfaW5pdChiaW5hcnlfbWF0cml4X3QgbSwgZywgdHJhbnNsYXRpb24gPSA/LCBm b3JjZV91bmRpcmVjdGVkID0gPykKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9ncmFwaHMvYmFzZS9z dGF0aWNfZGVuc2VfZ3JhcGgucHl4IGIvc3JjL3NhZ2UvZ3JhcGhzL2Jhc2Uvc3RhdGljX2RlbnNl X2dyYXBoLnB5eAoraW5kZXggZmUzNTZkOTM5ZDYuLmIyM2VhYjY2YTNiIDEwMDY0NAorLS0tIGEv c3JjL3NhZ2UvZ3JhcGhzL2Jhc2Uvc3RhdGljX2RlbnNlX2dyYXBoLnB5eAorKysrIGIvc3JjL3Nh Z2UvZ3JhcGhzL2Jhc2Uvc3RhdGljX2RlbnNlX2dyYXBoLnB5eAorQEAgLTU0LDcgKzU0LDcgQEAg ZnJvbSBpdGVydG9vbHMgaW1wb3J0IHByb2R1Y3QKKyBmcm9tIHNhZ2UubWlzYy5mbGF0dGVuIGlt cG9ydCBmbGF0dGVuCisgCisgCistY2RlZiBkaWN0IGRlbnNlX2dyYXBoX2luaXQoYmluYXJ5X21h dHJpeF90IG0sIGcsIHRyYW5zbGF0aW9uPU5vbmUsIGZvcmNlX3VuZGlyZWN0ZWQ9RmFsc2UpIG5v ZXhjZXB0OgorK2NkZWYgZGljdCBkZW5zZV9ncmFwaF9pbml0KGJpbmFyeV9tYXRyaXhfdCBtLCBn LCB0cmFuc2xhdGlvbj1Ob25lLCBmb3JjZV91bmRpcmVjdGVkPUZhbHNlKToKKyAgICAgciIiIgor ICAgICBGaWxsIGEgYmluYXJ5IG1hdHJpeCB3aXRoIHRoZSBpbmZvcm1hdGlvbiBmcm9tIGEgU2Fn ZSAoZGkpZ3JhcGguCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvZ3JhcGhzL2Jhc2Uvc3RhdGlj X3NwYXJzZV9iYWNrZW5kLnB4ZCBiL3NyYy9zYWdlL2dyYXBocy9iYXNlL3N0YXRpY19zcGFyc2Vf YmFja2VuZC5weGQKK2luZGV4IGZiNzJhODkxODBiLi4zMWYzYjE3MmE5NCAxMDA2NDQKKy0tLSBh L3NyYy9zYWdlL2dyYXBocy9iYXNlL3N0YXRpY19zcGFyc2VfYmFja2VuZC5weGQKKysrKyBiL3Ny Yy9zYWdlL2dyYXBocy9iYXNlL3N0YXRpY19zcGFyc2VfYmFja2VuZC5weGQKK0BAIC0yMSw2ICsy MSw2IEBAIGNkZWYgY2xhc3MgU3RhdGljU3BhcnNlQmFja2VuZChDR3JhcGhCYWNrZW5kKToKKyAg ICAgY2RlZiBsaXN0IF92ZXJ0ZXhfdG9fbGFiZWxzCisgICAgIGNkZWYgZGljdCBfdmVydGV4X3Rv X2ludAorICAgICBjZGVmIFN0YXRpY1NwYXJzZUNHcmFwaCBfY2cKKy0gICAgY2RlZiBpbmxpbmUg Q0dyYXBoIGNnKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIGlubGluZSBDR3JhcGggY2coc2Vs Zik6CisgICAgICAgICByZXR1cm4gPENHcmFwaD4gc2VsZi5fY2cKKyAgICAgY2RlZiBpbnQgX3Vz ZV9lZGdlX2l0ZXJhdG9yX29uX3N1YmdyYXBoKHNlbGYsIENHcmFwaEJhY2tlbmQgb3RoZXIsIG9i amVjdCB2ZXJ0aWNlcywgY29uc3QgaW50IG1vZHVzKSBleGNlcHQgLTEKK2RpZmYgLS1naXQgYS9z cmMvc2FnZS9ncmFwaHMvYmFzZS9zdGF0aWNfc3BhcnNlX2JhY2tlbmQucHl4IGIvc3JjL3NhZ2Uv Z3JhcGhzL2Jhc2Uvc3RhdGljX3NwYXJzZV9iYWNrZW5kLnB5eAoraW5kZXggNjc4ZDdlODZjOGEu LjFkYzUxN2E5NTdhIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvZ3JhcGhzL2Jhc2Uvc3RhdGljX3Nw YXJzZV9iYWNrZW5kLnB5eAorKysrIGIvc3JjL3NhZ2UvZ3JhcGhzL2Jhc2Uvc3RhdGljX3NwYXJz ZV9iYWNrZW5kLnB5eAorQEAgLTE5Niw3ICsxOTYsNyBAQCBjZGVmIGNsYXNzIFN0YXRpY1NwYXJz ZUNHcmFwaChDR3JhcGgpOgorICAgICAgICAgIiIiCisgICAgICAgICBzZWxmLmFkZF92ZXJ0ZXhf dW5zYWZlKGspCisgCistICAgIGNwZGVmIGRlbF92ZXJ0ZXgoc2VsZiwgaW50IGspIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBkZWxfdmVydGV4KHNlbGYsIGludCBrKToKKyAgICAgICAgIHIiIiIKKyAg ICAgICAgIFJlbW92ZSBhIHZlcnRleCBmcm9tIHRoZSBncmFwaC4gTm8gd2F5LgorIAorQEAgLTIx MSw3ICsyMTEsNyBAQCBjZGVmIGNsYXNzIFN0YXRpY1NwYXJzZUNHcmFwaChDR3JhcGgpOgorICAg ICAgICAgIiIiCisgICAgICAgICBzZWxmLmRlbF92ZXJ0ZXhfdW5zYWZlKGspCisgCistICAgIGNw ZGVmIGxpc3QgdmVydHMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGxpc3QgdmVydHMoc2Vs Zik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm5zIHRoZSBsaXN0IG9mIHZlcnRpY2Vz CisgCitAQCAtMzE4LDcgKzMxOCw3IEBAIGNkZWYgY2xhc3MgU3RhdGljU3BhcnNlQ0dyYXBoKENH cmFwaCk6CisgICAgICAgICAgICAgbmVpZ2hib3JzW2ldID0gc2VsZi5nX3Jldi5uZWlnaGJvcnNb dV1baV0KKyAgICAgICAgIHJldHVybiAtMSBpZiBzaXplIDwgZGVncmVlIGVsc2UgZGVncmVlCisg CistICAgIGNwZGVmIGxpc3Qgb3V0X25laWdoYm9ycyhzZWxmLCBpbnQgdSkgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIGxpc3Qgb3V0X25laWdoYm9ycyhzZWxmLCBpbnQgdSk6CisgICAgICAgICByIiIi CisgICAgICAgICBMaXN0IHRoZSBvdXQtbmVpZ2hib3JzIG9mIGEgdmVydGV4CisgCitAQCAtMzQz LDcgKzM0Myw3IEBAIGNkZWYgY2xhc3MgU3RhdGljU3BhcnNlQ0dyYXBoKENHcmFwaCk6CisgICAg ICAgICBjZGVmIGludCBpCisgICAgICAgICByZXR1cm4gWzxpbnQ+IHNlbGYuZy5uZWlnaGJvcnNb dV1baV0gZm9yIGkgaW4gcmFuZ2Uob3V0X2RlZ3JlZShzZWxmLmcsIHUpKV0KKyAKKy0gICAgY3Bk ZWYgbGlzdCBpbl9uZWlnaGJvcnMoc2VsZiwgaW50IHUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBs aXN0IGluX25laWdoYm9ycyhzZWxmLCBpbnQgdSk6CisgICAgICAgICByIiIiCisgICAgICAgICBS ZXR1cm4gdGhlIGluLW5laWdoYm9ycyBvZiBhIHZlcnRleAorIAorQEAgLTU1Niw3ICs1NTYsNyBA QCBjZGVmIGNsYXNzIFN0YXRpY1NwYXJzZUJhY2tlbmQoQ0dyYXBoQmFja2VuZCk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIHJldHVybiB2IGluIHNlbGYuX3ZlcnRleF90b19pbnQKKyAKKy0gICAg Y3BkZWYgYWRkX2VkZ2Uoc2VsZiwgb2JqZWN0IHUsIG9iamVjdCB2LCBvYmplY3QgbCwgYmludCBk aXJlY3RlZCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGFkZF9lZGdlKHNlbGYsIG9iamVjdCB1LCBv YmplY3Qgdiwgb2JqZWN0IGwsIGJpbnQgZGlyZWN0ZWQpOgorICAgICAgICAgciIiIgorICAgICAg ICAgU2V0IGVkZ2UgbGFiZWwuIE5vIHdheS4KKyAKK0BAIC02MDEsNyArNjAxLDcgQEAgY2RlZiBj bGFzcyBTdGF0aWNTcGFyc2VCYWNrZW5kKENHcmFwaEJhY2tlbmQpOgorICAgICAgICAgIiIiCisg ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJncmFwaCBpcyBpbW11dGFibGU7IHBsZWFzZSBjaGFu Z2UgYSBjb3B5IGluc3RlYWQgKHVzZSBmdW5jdGlvbiBjb3B5KCkpIikKKyAKKy0gICAgY3BkZWYg ZGVsX2VkZ2Uoc2VsZiwgb2JqZWN0IHUsIG9iamVjdCB2LCBvYmplY3QgbCwgYmludCBkaXJlY3Rl ZCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGRlbF9lZGdlKHNlbGYsIG9iamVjdCB1LCBvYmplY3Qg diwgb2JqZWN0IGwsIGJpbnQgZGlyZWN0ZWQpOgorICAgICAgICAgciIiIgorICAgICAgICAgU2V0 IGVkZ2UgbGFiZWwuIE5vIHdheS4KKyAKK0BAIC02OTgsNyArNjk4LDcgQEAgY2RlZiBjbGFzcyBT dGF0aWNTcGFyc2VCYWNrZW5kKENHcmFwaEJhY2tlbmQpOgorICAgICAgICAgICAgIHJldHVybiBz ZWxmLl9hbGxfZWRnZV9sYWJlbHModSwgdiwgZWRnZSkKKyAgICAgICAgIHJldHVybiBlZGdlX2xh YmVsKGNnLmcsIGVkZ2UpCisgCistICAgIGNkZWYgaW5saW5lIGxpc3QgX2FsbF9lZGdlX2xhYmVs cyhzZWxmLCBpbnQgdSwgaW50IHYsIHVpbnQzMl90KiBlZGdlPU5VTEwpIG5vZXhjZXB0OgorKyAg ICBjZGVmIGlubGluZSBsaXN0IF9hbGxfZWRnZV9sYWJlbHMoc2VsZiwgaW50IHUsIGludCB2LCB1 aW50MzJfdCogZWRnZT1OVUxMKToKKyAgICAgICAgICIiIgorICAgICAgICAgR2l2ZXMgdGhlIGxh YmVscyBvZiBhbGwgYXJjcyBmcm9tIGBgdWBgIHRvIGBgdmBgLgorIAorZGlmZiAtLWdpdCBhL3Ny Yy9zYWdlL2dyYXBocy9iYXNlL3N0YXRpY19zcGFyc2VfZ3JhcGgucHhkIGIvc3JjL3NhZ2UvZ3Jh cGhzL2Jhc2Uvc3RhdGljX3NwYXJzZV9ncmFwaC5weGQKK2luZGV4IDRhNDI3ZjgxMjM3Li5iZWNl Njk0NmJlMyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2dyYXBocy9iYXNlL3N0YXRpY19zcGFyc2Vf Z3JhcGgucHhkCisrKysgYi9zcmMvc2FnZS9ncmFwaHMvYmFzZS9zdGF0aWNfc3BhcnNlX2dyYXBo LnB4ZAorQEAgLTI3LDcgKzI3LDcgQEAgY2RlZiB2b2lkIGZyZWVfc2hvcnRfZGlncmFwaChzaG9y dF9kaWdyYXBoIGcpIG5vZXhjZXB0CisgY2RlZiBpbnQgaW5pdF9yZXZlcnNlKHNob3J0X2RpZ3Jh cGggZHN0LCBzaG9ydF9kaWdyYXBoIHNyYykgZXhjZXB0IC0xCisgY2RlZiBpbnQgb3V0X2RlZ3Jl ZShzaG9ydF9kaWdyYXBoIGcsIGludCB1KSBub2V4Y2VwdAorIGNkZWYgdWludDMyX3QgKiBoYXNf ZWRnZShzaG9ydF9kaWdyYXBoIGcsIGludCB1LCBpbnQgdikgbm9leGNlcHQKKy1jZGVmIG9iamVj dCBlZGdlX2xhYmVsKHNob3J0X2RpZ3JhcGggZywgdWludDMyX3QgKiBlZGdlKSBub2V4Y2VwdAor K2NkZWYgb2JqZWN0IGVkZ2VfbGFiZWwoc2hvcnRfZGlncmFwaCBnLCB1aW50MzJfdCAqIGVkZ2Up CisgY2RlZiBpbnQgdGFyamFuX3N0cm9uZ2x5X2Nvbm5lY3RlZF9jb21wb25lbnRzX0Moc2hvcnRf ZGlncmFwaCBnLCBpbnQgKnNjYykgbm9leGNlcHQKKyBjZGVmIHZvaWQgc3Ryb25nbHlfY29ubmVj dGVkX2NvbXBvbmVudHNfZGlncmFwaF9DKHNob3J0X2RpZ3JhcGggZywgaW50IG5zY2MsIGludCAq c2NjLCBzaG9ydF9kaWdyYXBoIG91dHB1dCkgbm9leGNlcHQKKyAKK2RpZmYgLS1naXQgYS9zcmMv c2FnZS9ncmFwaHMvYmFzZS9zdGF0aWNfc3BhcnNlX2dyYXBoLnB5eCBiL3NyYy9zYWdlL2dyYXBo cy9iYXNlL3N0YXRpY19zcGFyc2VfZ3JhcGgucHl4CitpbmRleCAzNWYzZGU2N2M5OC4uNGM2OGY0 MDQzZDMgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9ncmFwaHMvYmFzZS9zdGF0aWNfc3BhcnNlX2dy YXBoLnB5eAorKysrIGIvc3JjL3NhZ2UvZ3JhcGhzL2Jhc2Uvc3RhdGljX3NwYXJzZV9ncmFwaC5w eXgKK0BAIC00MTgsNyArNDE4LDcgQEAgY2RlZiBpbmxpbmUgdWludDMyX3QgKiBoYXNfZWRnZShz aG9ydF9kaWdyYXBoIGcsIGludCB1LCBpbnQgdikgbm9leGNlcHQ6CisgICAgIHJldHVybiA8dWlu dDMyX3QgKj4gYnNlYXJjaCgmdiwgZy5uZWlnaGJvcnNbdV0sIGcubmVpZ2hib3JzW3UgKyAxXSAt IGcubmVpZ2hib3JzW3VdLCBzaXplb2YodWludDMyX3QpLCBjb21wYXJlX3VpbnQzMl9wKQorIAor IAorLWNkZWYgaW5saW5lIG9iamVjdCBlZGdlX2xhYmVsKHNob3J0X2RpZ3JhcGggZywgdWludDMy X3QgKiBlZGdlKSBub2V4Y2VwdDoKKytjZGVmIGlubGluZSBvYmplY3QgZWRnZV9sYWJlbChzaG9y dF9kaWdyYXBoIGcsIHVpbnQzMl90ICogZWRnZSk6CisgICAgIHIiIiIKKyAgICAgUmV0dXJuIHRo ZSBsYWJlbCBhc3NvY2lhdGVkIHdpdGggYSBnaXZlbiBlZGdlCisgICAgICIiIgorQEAgLTg4Nyw3 ICs4ODcsNyBAQCBkZWYgc3Ryb25nbHlfY29ubmVjdGVkX2NvbXBvbmVudHNfZGlncmFwaChHKToK KyAgICAgcmV0dXJuIG91dHB1dCwge3Y6IHNjY1tpXSBmb3IgaSwgdiBpbiBlbnVtZXJhdGUoaW50 X3RvX3ZlcnRleCl9CisgCisgCistY2RlZiBzdHJvbmdseV9jb25uZWN0ZWRfY29tcG9uZW50X2Nv bnRhaW5pbmdfdmVydGV4KHNob3J0X2RpZ3JhcGggZywgc2hvcnRfZGlncmFwaCBnX3JldmVyc2Vk LCBpbnQgdiwgYml0c2V0X3Qgc2NjKSBub2V4Y2VwdDoKKytjZGVmIHN0cm9uZ2x5X2Nvbm5lY3Rl ZF9jb21wb25lbnRfY29udGFpbmluZ192ZXJ0ZXgoc2hvcnRfZGlncmFwaCBnLCBzaG9ydF9kaWdy YXBoIGdfcmV2ZXJzZWQsIGludCB2LCBiaXRzZXRfdCBzY2MpOgorICAgICAiIiIKKyAgICAgRmVl ZCBgYHNjY2BgIHdpdGggdGhlIHZlcnRpY2VzIGluIHRoZSBzdHJvbmdseSBjb25uZWN0ZWQgY29t cG9uZW50IG9mIGBgdmBgLgorICAgICAiIiIKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9ncmFwaHMv Y2VudHJhbGl0eS5weXggYi9zcmMvc2FnZS9ncmFwaHMvY2VudHJhbGl0eS5weXgKK2luZGV4IDEx OGVkZDVkN2IwLi5kNzNjNzU3MWQxOCAxMDA3NTUKKy0tLSBhL3NyYy9zYWdlL2dyYXBocy9jZW50 cmFsaXR5LnB5eAorKysrIGIvc3JjL3NhZ2UvZ3JhcGhzL2NlbnRyYWxpdHkucHl4CitAQCAtMTIz LDcgKzEyMyw3IEBAIGRlZiBjZW50cmFsaXR5X2JldHdlZW5uZXNzKEcsIGJpbnQgZXhhY3Q9RmFs c2UsIGJpbnQgbm9ybWFsaXplPVRydWUpOgorIAorIAorIEBjeXRob24uY2RpdmlzaW9uKFRydWUp CistY2RlZiBkaWN0IGNlbnRyYWxpdHlfYmV0d2Vlbm5lc3NfQyhHLCBudW1lcmljYWxfdHlwZSBf LCBiaW50IG5vcm1hbGl6ZT1UcnVlKSBub2V4Y2VwdDoKKytjZGVmIGRpY3QgY2VudHJhbGl0eV9i ZXR3ZWVubmVzc19DKEcsIG51bWVyaWNhbF90eXBlIF8sIGJpbnQgbm9ybWFsaXplPVRydWUpOgor ICAgICByIiIiCisgICAgIFJldHVybiB0aGUgY2VudHJhbGl0eSBiZXR3ZWVubmVzcyBvZiBHIChD IGltcGxlbWVudGF0aW9uKQorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2dyYXBocy9jb25uZWN0 aXZpdHkucHhkIGIvc3JjL3NhZ2UvZ3JhcGhzL2Nvbm5lY3Rpdml0eS5weGQKK2luZGV4IDVlNDll NjZjYzNhLi5mNTI5ZDJlYmRlYSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2dyYXBocy9jb25uZWN0 aXZpdHkucHhkCisrKysgYi9zcmMvc2FnZS9ncmFwaHMvY29ubmVjdGl2aXR5LnB4ZAorQEAgLTE2 LDkgKzE2LDkgQEAgY2RlZiBjbGFzcyBfQ29tcG9uZW50OgorICAgICBjZGVmIF9MaW5rZWRMaXN0 ICogZWRnZV9saXN0CisgICAgIGNkZWYgaW50IGNvbXBvbmVudF90eXBlCisgCistICAgIGNkZWYg YWRkX2VkZ2Uoc2VsZiwgUHlfc3NpemVfdCBlX2luZGV4KSBub2V4Y2VwdAorLSAgICBjZGVmIGZp bmlzaF90cmljX29yX3BvbHkoc2VsZiwgUHlfc3NpemVfdCBlX2luZGV4KSBub2V4Y2VwdAorLSAg ICBjZGVmIGxpc3QgZ2V0X2VkZ2VfbGlzdChzZWxmKSBub2V4Y2VwdAorKyAgICBjZGVmIGFkZF9l ZGdlKHNlbGYsIFB5X3NzaXplX3QgZV9pbmRleCkKKysgICAgY2RlZiBmaW5pc2hfdHJpY19vcl9w b2x5KHNlbGYsIFB5X3NzaXplX3QgZV9pbmRleCkKKysgICAgY2RlZiBsaXN0IGdldF9lZGdlX2xp c3Qoc2VsZikKKyAKKyBjZGVmIGNsYXNzIFRyaWNvbm5lY3Rpdml0eVNQUVI6CisgICAgIGNkZWYg TWVtb3J5QWxsb2NhdG9yIG1lbQorQEAgLTg4LDcgKzg4LDcgQEAgY2RlZiBjbGFzcyBUcmljb25u ZWN0aXZpdHlTUFFSOgorIAorICAgICAjID09PSBNZXRob2RzID09PQorIAorLSAgICBjZGVmIGlu bGluZSBfX3RzdGFja19wdXNoKHNlbGYsIGludCBoLCBpbnQgYSwgaW50IGIpIG5vZXhjZXB0Ogor KyAgICBjZGVmIGlubGluZSBfX3RzdGFja19wdXNoKHNlbGYsIGludCBoLCBpbnQgYSwgaW50IGIp OgorICAgICAgICAgIiIiCisgICAgICAgICBQdXNoIGBgKGgsIGEsIGIpYGAgdHJpcGxlIG9uIGBg VHN0YWNrYGAuCisgICAgICAgICAiIiIKK0BAIC05Nyw3ICs5Nyw3IEBAIGNkZWYgY2xhc3MgVHJp Y29ubmVjdGl2aXR5U1BRUjoKKyAgICAgICAgIHNlbGYudF9zdGFja19hW3NlbGYudF9zdGFja190 b3BdID0gYQorICAgICAgICAgc2VsZi50X3N0YWNrX2Jbc2VsZi50X3N0YWNrX3RvcF0gPSBiCisg CistICAgIGNkZWYgaW5saW5lIF9fdHN0YWNrX3B1c2hfZW9zKHNlbGYpIG5vZXhjZXB0OgorKyAg ICBjZGVmIGlubGluZSBfX3RzdGFja19wdXNoX2VvcyhzZWxmKToKKyAgICAgICAgICIiIgorICAg ICAgICAgUHVzaCBlbmQtb2Ytc3RhY2sgbWFya2VyIG9uIGBgVHN0YWNrYGAuCisgICAgICAgICAi IiIKK0BAIC0xMTYsNyArMTE2LDcgQEAgY2RlZiBjbGFzcyBUcmljb25uZWN0aXZpdHlTUFFSOgor ICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gPGludD4gc2VsZi5lX3N0YWNrLnBvcCgpCisg CistICAgIGNkZWYgaW5saW5lIF9fbmV3X2NvbXBvbmVudChzZWxmLCBsaXN0IGVkZ2VzLCBpbnQg dHlwZV9jKSBub2V4Y2VwdDoKKysgICAgY2RlZiBpbmxpbmUgX19uZXdfY29tcG9uZW50KHNlbGYs IGxpc3QgZWRnZXMsIGludCB0eXBlX2MpOgorICAgICAgICAgIiIiCisgICAgICAgICBDcmVhdGUg YSBuZXcgY29tcG9uZW50IGFuZCBhZGQgYGBlZGdlc2BgIHRvIGl0LgorIAorQEAgLTE0NSwxMiAr MTQ1LDEyIEBAIGNkZWYgY2xhc3MgVHJpY29ubmVjdGl2aXR5U1BRUjoKKyAgICAgY2RlZiBpbnQg X19uZXdfdmlydHVhbF9lZGdlKHNlbGYsIGludCB1LCBpbnQgdikgbm9leGNlcHQKKyAgICAgY2Rl ZiBfTGlua2VkTGlzdE5vZGUgKiBfX25ld19MaW5rZWRMaXN0Tm9kZShzZWxmLCBQeV9zc2l6ZV90 IGVfaW5kZXgpIG5vZXhjZXB0CisgICAgIGNkZWYgUHlfc3NpemVfdCBfX2hpZ2goc2VsZiwgUHlf c3NpemVfdCB2KSBub2V4Y2VwdAorLSAgICBjZGVmIF9fZGVsX2hpZ2goc2VsZiwgaW50IGVfaW5k ZXgpIG5vZXhjZXB0CistICAgIGNkZWYgX19zcGxpdF9tdWx0aXBsZV9lZGdlcyhzZWxmKSBub2V4 Y2VwdAorKyAgICBjZGVmIF9fZGVsX2hpZ2goc2VsZiwgaW50IGVfaW5kZXgpCisrICAgIGNkZWYg X19zcGxpdF9tdWx0aXBsZV9lZGdlcyhzZWxmKQorICAgICBjZGVmIGludCBfX2RmczEoc2VsZiwg aW50IHN0YXJ0LCBiaW50IGNoZWNrPSopIG5vZXhjZXB0CistICAgIGNkZWYgX19idWlsZF9hY2Nl cHRhYmxlX2Fkal9zdHJ1Y3Qoc2VsZikgbm9leGNlcHQKKy0gICAgY2RlZiBfX3BhdGhfZmluZGVy KHNlbGYsIGludCBzdGFydCkgbm9leGNlcHQKKy0gICAgY2RlZiBfX2RmczIoc2VsZikgbm9leGNl cHQKKysgICAgY2RlZiBfX2J1aWxkX2FjY2VwdGFibGVfYWRqX3N0cnVjdChzZWxmKQorKyAgICBj ZGVmIF9fcGF0aF9maW5kZXIoc2VsZiwgaW50IHN0YXJ0KQorKyAgICBjZGVmIF9fZGZzMihzZWxm KQorICAgICBjZGVmIGludCBfX3BhdGhfc2VhcmNoKHNlbGYsIGludCBzdGFydCkgZXhjZXB0IC0x CistICAgIGNkZWYgX19hc3NlbWJsZV90cmljb25uZWN0ZWRfY29tcG9uZW50cyhzZWxmKSBub2V4 Y2VwdAorLSAgICBjZGVmIF9fYnVpbGRfc3Bxcl90cmVlKHNlbGYpIG5vZXhjZXB0CisrICAgIGNk ZWYgX19hc3NlbWJsZV90cmljb25uZWN0ZWRfY29tcG9uZW50cyhzZWxmKQorKyAgICBjZGVmIF9f YnVpbGRfc3Bxcl90cmVlKHNlbGYpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvZ3JhcGhzL2Nvbm5l Y3Rpdml0eS5weXggYi9zcmMvc2FnZS9ncmFwaHMvY29ubmVjdGl2aXR5LnB5eAoraW5kZXggZDk3 ZjNhMjgxOWEuLmVlMzg3YWIzNTJiIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvZ3JhcGhzL2Nvbm5l Y3Rpdml0eS5weXgKKysrKyBiL3NyYy9zYWdlL2dyYXBocy9jb25uZWN0aXZpdHkucHl4CitAQCAt MjY3Niw3ICsyNjc2LDcgQEAgZGVmIHNwcXJfdHJlZV90b19ncmFwaChUKToKKyAjIEhlbHBlciBt ZXRob2RzIGZvciBgYFRyaWNvbm5lY3Rpdml0eVNQUVJgYC4KKyAjIERlZmluZSBhIGRvdWJseSBs aW5rZWQgbGlzdAorIAorLWNkZWYgaW5saW5lIF9MaW5rZWRMaXN0Tm9kZV9pbml0aWFsaXplKF9M aW5rZWRMaXN0Tm9kZSAqIG5vZGUsIFB5X3NzaXplX3QgZGF0YSkgbm9leGNlcHQ6CisrY2RlZiBp bmxpbmUgX0xpbmtlZExpc3ROb2RlX2luaXRpYWxpemUoX0xpbmtlZExpc3ROb2RlICogbm9kZSwg UHlfc3NpemVfdCBkYXRhKToKKyAgICAgIiIiCisgICAgIEluaXRpYWxpemUgdGhlIGBgX0xpbmtl ZExpc3ROb2RlYGAgd2l0aCB2YWx1ZSBkYXRhLgorICAgICAiIiIKK0BAIC0yNjg1LDcgKzI2ODUs NyBAQCBjZGVmIGlubGluZSBfTGlua2VkTGlzdE5vZGVfaW5pdGlhbGl6ZShfTGlua2VkTGlzdE5v ZGUgKiBub2RlLCBQeV9zc2l6ZV90IGRhdGEpCisgICAgIG5vZGUuZGF0YSA9IGRhdGEKKyAKKyAK Ky1jZGVmIGlubGluZSBfTGlua2VkTGlzdF9pbml0aWFsaXplKF9MaW5rZWRMaXN0ICogbGwpIG5v ZXhjZXB0OgorK2NkZWYgaW5saW5lIF9MaW5rZWRMaXN0X2luaXRpYWxpemUoX0xpbmtlZExpc3Qg KiBsbCk6CisgICAgICIiIgorICAgICBJbml0aWFsaXplIHRoZSBgYF9MaW5rZWRMaXN0YGAuCisg ICAgICIiIgorQEAgLTI2OTMsNyArMjY5Myw3IEBAIGNkZWYgaW5saW5lIF9MaW5rZWRMaXN0X2lu aXRpYWxpemUoX0xpbmtlZExpc3QgKiBsbCkgbm9leGNlcHQ6CisgICAgIGxsLnRhaWwgPSBOVUxM CisgICAgIGxsLmxlbmd0aCA9IDAKKyAKKy1jZGVmIF9MaW5rZWRMaXN0X3NldF9oZWFkKF9MaW5r ZWRMaXN0ICogbGwsIF9MaW5rZWRMaXN0Tm9kZSAqIGgpIG5vZXhjZXB0OgorK2NkZWYgX0xpbmtl ZExpc3Rfc2V0X2hlYWQoX0xpbmtlZExpc3QgKiBsbCwgX0xpbmtlZExpc3ROb2RlICogaCk6Cisg ICAgICIiIgorICAgICBTZXQgdGhlIG5vZGUgYGBoYGAgYXMgdGhlIGhlYWQgYW5kIHRhaWwgb2Yg dGhlIGxpbmtlZCBsaXN0IGBgbGxgYC4KKyAgICAgIiIiCitAQCAtMjcxMyw3ICsyNzEzLDcgQEAg Y2RlZiBpbmxpbmUgUHlfc3NpemVfdCBfTGlua2VkTGlzdF9nZXRfbGVuZ3RoKF9MaW5rZWRMaXN0 ICogbGwpIG5vZXhjZXB0OgorICAgICAiIiIKKyAgICAgcmV0dXJuIGxsLmxlbmd0aAorIAorLWNk ZWYgX0xpbmtlZExpc3RfYXBwZW5kKF9MaW5rZWRMaXN0ICogbGwsIF9MaW5rZWRMaXN0Tm9kZSAq IG5vZGUpIG5vZXhjZXB0OgorK2NkZWYgX0xpbmtlZExpc3RfYXBwZW5kKF9MaW5rZWRMaXN0ICog bGwsIF9MaW5rZWRMaXN0Tm9kZSAqIG5vZGUpOgorICAgICAiIiIKKyAgICAgQXBwZW5kIHRoZSBu b2RlIGBgbm9kZWBgIHRvIHRoZSBsaW5rZWQgbGlzdCBgYGxsYGAuCisgICAgICIiIgorQEAgLTI3 MjUsNyArMjcyNSw3IEBAIGNkZWYgX0xpbmtlZExpc3RfYXBwZW5kKF9MaW5rZWRMaXN0ICogbGws IF9MaW5rZWRMaXN0Tm9kZSAqIG5vZGUpIG5vZXhjZXB0OgorICAgICAgICAgbGwudGFpbCA9IG5v ZGUKKyAgICAgICAgIGxsLmxlbmd0aCArPSAxCisgCistY2RlZiBfTGlua2VkTGlzdF9yZW1vdmUo X0xpbmtlZExpc3QgKiBsbCwgX0xpbmtlZExpc3ROb2RlICogbm9kZSkgbm9leGNlcHQ6CisrY2Rl ZiBfTGlua2VkTGlzdF9yZW1vdmUoX0xpbmtlZExpc3QgKiBsbCwgX0xpbmtlZExpc3ROb2RlICog bm9kZSk6CisgICAgICIiIgorICAgICBSZW1vdmUgdGhlIG5vZGUgYGBub2RlYGAgZnJvbSB0aGUg bGlua2VkIGxpc3QgYGBsbGBgLgorICAgICAiIiIKK0BAIC0yNzQzLDcgKzI3NDMsNyBAQCBjZGVm IF9MaW5rZWRMaXN0X3JlbW92ZShfTGlua2VkTGlzdCAqIGxsLCBfTGlua2VkTGlzdE5vZGUgKiBu b2RlKSBub2V4Y2VwdDoKKyAgICAgICAgIG5vZGUubmV4dC5wcmV2ID0gbm9kZS5wcmV2CisgICAg IGxsLmxlbmd0aCAtPSAxCisgCistY2RlZiBfTGlua2VkTGlzdF9wdXNoX2Zyb250KF9MaW5rZWRM aXN0ICogbGwsIF9MaW5rZWRMaXN0Tm9kZSAqIG5vZGUpIG5vZXhjZXB0OgorK2NkZWYgX0xpbmtl ZExpc3RfcHVzaF9mcm9udChfTGlua2VkTGlzdCAqIGxsLCBfTGlua2VkTGlzdE5vZGUgKiBub2Rl KToKKyAgICAgIiIiCisgICAgIEFkZCBub2RlIGBgbm9kZWBgIHRvIHRoZSBiZWdpbm5pbmcgb2Yg dGhlIGxpbmtlZCBsaXN0IGBgbGxgYC4KKyAgICAgIiIiCitAQCAtMjc1NSw3ICsyNzU1LDcgQEAg Y2RlZiBfTGlua2VkTGlzdF9wdXNoX2Zyb250KF9MaW5rZWRMaXN0ICogbGwsIF9MaW5rZWRMaXN0 Tm9kZSAqIG5vZGUpIG5vZXhjZXB0OgorICAgICAgICAgbGwuaGVhZCA9IG5vZGUKKyAgICAgICAg IGxsLmxlbmd0aCArPSAxCisgCistY2RlZiBfTGlua2VkTGlzdF9jb25jYXRlbmF0ZShfTGlua2Vk TGlzdCAqIGxzdDEsIF9MaW5rZWRMaXN0ICogbHN0Mikgbm9leGNlcHQ6CisrY2RlZiBfTGlua2Vk TGlzdF9jb25jYXRlbmF0ZShfTGlua2VkTGlzdCAqIGxzdDEsIF9MaW5rZWRMaXN0ICogbHN0Mik6 CisgICAgICIiIgorICAgICBDb25jYXRlbmF0ZSBsc3QyIHRvIGxzdDEuCisgCitAQCAtMjc2OCw3 ICsyNzY4LDcgQEAgY2RlZiBfTGlua2VkTGlzdF9jb25jYXRlbmF0ZShfTGlua2VkTGlzdCAqIGxz dDEsIF9MaW5rZWRMaXN0ICogbHN0Mikgbm9leGNlcHQ6CisgICAgIGxzdDIuaGVhZCA9IE5VTEwK KyAgICAgbHN0Mi5sZW5ndGggPSAwCisgCistY2RlZiBzdHIgX0xpbmtlZExpc3RfdG9fc3RyaW5n KF9MaW5rZWRMaXN0ICogbGwpIG5vZXhjZXB0OgorK2NkZWYgc3RyIF9MaW5rZWRMaXN0X3RvX3N0 cmluZyhfTGlua2VkTGlzdCAqIGxsKToKKyAgICAgIiIiCisgICAgIFJldHVybiBhIHN0cmluZyBy ZXByZXNlbnRhdGlvbiBvZiBzZWxmLgorICAgICAiIiIKK0BAIC0yODI3LDcgKzI4MjcsNyBAQCBj ZGVmIGNsYXNzIF9Db21wb25lbnQ6CisgICAgICAgICAgICAgc2VsZi5hZGRfZWRnZShlX2luZGV4 KQorICAgICAgICAgc2VsZi5jb21wb25lbnRfdHlwZSA9IHR5cGVfYworIAorLSAgICBjZGVmIGFk ZF9lZGdlKHNlbGYsIFB5X3NzaXplX3QgZV9pbmRleCkgbm9leGNlcHQ6CisrICAgIGNkZWYgYWRk X2VkZ2Uoc2VsZiwgUHlfc3NpemVfdCBlX2luZGV4KToKKyAgICAgICAgICIiIgorICAgICAgICAg QWRkIGVkZ2UgaW5kZXggYGBlX2luZGV4YGAgdG8gdGhlIGNvbXBvbmVudC4KKyAgICAgICAgICIi IgorQEAgLTI4MzUsNyArMjgzNSw3IEBAIGNkZWYgY2xhc3MgX0NvbXBvbmVudDoKKyAgICAgICAg IF9MaW5rZWRMaXN0Tm9kZV9pbml0aWFsaXplKG5vZGUsIGVfaW5kZXgpCisgICAgICAgICBfTGlu a2VkTGlzdF9hcHBlbmQoc2VsZi5lZGdlX2xpc3QsIG5vZGUpCisgCistICAgIGNkZWYgZmluaXNo X3RyaWNfb3JfcG9seShzZWxmLCBQeV9zc2l6ZV90IGVfaW5kZXgpIG5vZXhjZXB0OgorKyAgICBj ZGVmIGZpbmlzaF90cmljX29yX3BvbHkoc2VsZiwgUHlfc3NpemVfdCBlX2luZGV4KToKKyAgICAg ICAgIHIiIiIKKyAgICAgICAgIEZpbmFsaXplIHRoZSBjb21wb25lbnQgYnkgYWRkaW5nIGVkZ2Ug YGBlYGAuCisgCitAQCAtMjg3Myw3ICsyODczLDcgQEAgY2RlZiBjbGFzcyBfQ29tcG9uZW50Ogor ICAgICAgICAgICAgIHR5cGVfc3RyID0gIlRyaWNvbm5lY3RlZDogIgorICAgICAgICAgcmV0dXJu IHR5cGVfc3RyICsgX0xpbmtlZExpc3RfdG9fc3RyaW5nKHNlbGYuZWRnZV9saXN0KQorIAorLSAg ICBjZGVmIGxpc3QgZ2V0X2VkZ2VfbGlzdChzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBsaXN0 IGdldF9lZGdlX2xpc3Qoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUg bGlzdCBvZiBlZGdlcyBiZWxvbmdpbmcgdG8gdGhlIGNvbXBvbmVudC4KKyAgICAgICAgICIiIgor QEAgLTMzMDEsNyArMzMwMSw3IEBAIGNkZWYgY2xhc3MgVHJpY29ubmVjdGl2aXR5U1BRUjoKKyAg ICAgICAgICAgICByZXR1cm4gaGVhZC5kYXRhCisgICAgICAgICByZXR1cm4gMAorIAorLSAgICBj ZGVmIF9fZGVsX2hpZ2goc2VsZiwgaW50IGVfaW5kZXgpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9f ZGVsX2hpZ2goc2VsZiwgaW50IGVfaW5kZXgpOgorICAgICAgICAgIiIiCisgICAgICAgICBEZWxl dGUgZWRnZSBgYGVgYCBmcm9tIHRoZSBgYGhpZ2hwdGBgIGxpc3Qgb2YgdGhlIGVuZHBvaW50IGBg dmBgCisgICAgICAgICBpdCBiZWxvbmdzIHRvLgorQEAgLTMzMTUsNyArMzMxNSw3IEBAIGNkZWYg Y2xhc3MgVHJpY29ubmVjdGl2aXR5U1BRUjoKKyAgICAgICAgICAgICAgICAgdiA9IHNlbGYuZWRn ZV9leHRyZW1pdHlfc2Vjb25kW2VfaW5kZXhdCisgICAgICAgICAgICAgX0xpbmtlZExpc3RfcmVt b3ZlKHNlbGYuaGlnaHB0W3ZdLCBpdCkKKyAKKy0gICAgY2RlZiBfX3NwbGl0X211bHRpcGxlX2Vk Z2VzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9fc3BsaXRfbXVsdGlwbGVfZWRnZXMoc2Vs Zik6CisgICAgICAgICAiIiIKKyAgICAgICAgIE1ha2UgdGhlIGdyYXBoIHNpbXBsZSBhbmQgYnVp bGQgYm9uZHMgcmVjb3JkaW5nIG11bHRpcGxlIGVkZ2VzLgorIAorQEAgLTM0ODcsNyArMzQ4Nyw3 IEBAIGNkZWYgY2xhc3MgVHJpY29ubmVjdGl2aXR5U1BRUjoKKyAKKyAgICAgICAgIHJldHVybiBj dXRfdmVydGV4ICAjIGN1dF92ZXJ0ZXggaXMgLTEgaWYgZ3JhcGggZG9lcyBub3QgaGF2ZSBhIGN1 dCB2ZXJ0ZXgKKyAKKy0gICAgY2RlZiBfX2J1aWxkX2FjY2VwdGFibGVfYWRqX3N0cnVjdChzZWxm KSBub2V4Y2VwdDoKKysgICAgY2RlZiBfX2J1aWxkX2FjY2VwdGFibGVfYWRqX3N0cnVjdChzZWxm KToKKyAgICAgICAgICIiIgorICAgICAgICAgQnVpbGQgdGhlIGFkamFjZW5jeSBsaXN0cyBmb3Ig ZWFjaCB2ZXJ0ZXggd2l0aCBjZXJ0YWluIHByb3BlcnRpZXMgb2YKKyAgICAgICAgIHRoZSBvcmRl cmluZywgdXNpbmcgdGhlIGBgbG93cHQxYGAgYW5kIGBgbG93cHQyYGAgdmFsdWVzLgorQEAgLTM1 NDIsNyArMzU0Miw3IEBAIGNkZWYgY2xhc3MgVHJpY29ubmVjdGl2aXR5U1BRUjoKKyAgICAgICAg ICAgICAgICAgICAgIF9MaW5rZWRMaXN0X2FwcGVuZChzZWxmLmFkaltzZWxmLmVkZ2VfZXh0cmVt aXR5X2ZpcnN0W2VfaW5kZXhdXSwgbm9kZSkKKyAgICAgICAgICAgICAgICAgc2VsZi5pbl9hZGpb ZV9pbmRleF0gPSBub2RlCisgCistICAgIGNkZWYgX19wYXRoX2ZpbmRlcihzZWxmLCBpbnQgc3Rh cnQpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9fcGF0aF9maW5kZXIoc2VsZiwgaW50IHN0YXJ0KToK KyAgICAgICAgICIiIgorICAgICAgICAgVGhpcyBmdW5jdGlvbiBpcyBhIGhlbHBlciBmdW5jdGlv biBmb3IgOm1ldGg6YF9fZGZzMmAgZnVuY3Rpb24uCisgCitAQCAtMzYwMSw3ICszNjAxLDcgQEAg Y2RlZiBjbGFzcyBUcmljb25uZWN0aXZpdHlTUFFSOgorICAgICAgICAgICAgICAgICBzZWxmLmRm c19jb3VudGVyIC09IDEKKyAgICAgICAgICAgICAgICAgc3RhY2tfdG9wIC09IDEKKyAKKy0gICAg Y2RlZiBfX2RmczIoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgX19kZnMyKHNlbGYpOgorICAg ICAgICAgIiIiCisgICAgICAgICBVcGRhdGUgdGhlIHZhbHVlcyBvZiBgYGxvd3B0MWBgIGFuZCBg YGxvd3B0MmBgIGxpc3RzIHdpdGggdGhlCisgICAgICAgICBoZWxwIG9mIG5ldyBudW1iZXJpbmcg b2J0YWluZWQgZnJvbSA6bWV0aDpgX19wYXRoX2ZpbmRlcmAuCitAQCAtMzk4NCw3ICszOTg0LDcg QEAgY2RlZiBjbGFzcyBUcmljb25uZWN0aXZpdHlTUFFSOgorICAgICAgICAgICAgICMgR28gdG8g bmV4dCBlZGdlIGluIGFkamFjZW5jeSBsaXN0CisgICAgICAgICAgICAgZV9ub2RlX2RpY3Rbdl0g PSBlX25vZGUubmV4dAorIAorLSAgICBjZGVmIF9fYXNzZW1ibGVfdHJpY29ubmVjdGVkX2NvbXBv bmVudHMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgX19hc3NlbWJsZV90cmljb25uZWN0ZWRf Y29tcG9uZW50cyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgSXRlcmF0ZSB0aHJvdWdo IGFsbCB0aGUgc3BsaXQgY29tcG9uZW50cyBidWlsdCBieSA6bWV0aDpgX19wYXRoX2ZpbmRlcmAK KyAgICAgICAgIGFuZCBtZXJnZXMgdHdvIGJvbmRzIG9yIHR3byBwb2x5Z29ucyB0aGF0IHNoYXJl IGFuIGVkZ2UgZm9yIGNvbnN0cnVjdGluZworQEAgLTQxMTEsNyArNDExMSw3IEBAIGNkZWYgY2xh c3MgVHJpY29ubmVjdGl2aXR5U1BRUjoKKyAgICAgICAgICAgICAgICAgc2VsZi5jb21wX3R5cGUu YXBwZW5kKCg8X0NvbXBvbmVudD4gY29tcCkuY29tcG9uZW50X3R5cGUpCisgICAgICAgICAgICAg ICAgIHNlbGYuY29tcF9maW5hbF9lZGdlX2xpc3QuYXBwZW5kKGVfbGlzdF9uZXcpCisgCistICAg IGNkZWYgX19idWlsZF9zcHFyX3RyZWUoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgX19idWls ZF9zcHFyX3RyZWUoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEJ1aWxkIHRoZSBTUFFS LXRyZWUgb2YgdGhlIGdyYXBoIGFuZCBzdG9yZSBpdCBpbiB2YXJpYWJsZQorICAgICAgICAgYGBz ZWxmLnNwcXJfdHJlZWBgLiBTZWUKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9ncmFwaHMvY29udmV4 aXR5X3Byb3BlcnRpZXMucHhkIGIvc3JjL3NhZ2UvZ3JhcGhzL2NvbnZleGl0eV9wcm9wZXJ0aWVz LnB4ZAoraW5kZXggY2M4MGUyMTRlYTUuLmY2YzFiNjhiNmI4IDEwMDY0NAorLS0tIGEvc3JjL3Nh Z2UvZ3JhcGhzL2NvbnZleGl0eV9wcm9wZXJ0aWVzLnB4ZAorKysrIGIvc3JjL3NhZ2UvZ3JhcGhz L2NvbnZleGl0eV9wcm9wZXJ0aWVzLnB4ZAorQEAgLTcsOSArNyw5IEBAIGNkZWYgY2xhc3MgQ29u dmV4aXR5UHJvcGVydGllczoKKyAgICAgY2RlZiBkaWN0IF9kaWN0X3ZlcnRpY2VzX3RvX2ludGVn ZXJzCisgICAgIGNkZWYgYmluYXJ5X21hdHJpeF90IF9jYWNoZV9odWxsX3BhaXJzCisgCistICAg IGNkZWYgbGlzdCBfdmVydGljZXNfdG9faW50ZWdlcnMoc2VsZiwgdmVydGljZXMpIG5vZXhjZXB0 CistICAgIGNkZWYgbGlzdCBfaW50ZWdlcnNfdG9fdmVydGljZXMoc2VsZiwgbGlzdCBpbnRlZ2Vy cykgbm9leGNlcHQKKy0gICAgY2RlZiBfYml0c2V0X2NvbnZleF9odWxsKHNlbGYsIGJpdHNldF90 IGh1bGwpIG5vZXhjZXB0CistICAgIGNwZGVmIGh1bGwoc2VsZiwgbGlzdCB2ZXJ0aWNlcykgbm9l eGNlcHQKKy0gICAgY2RlZiBfZ3JlZWR5X2luY3JlYXNlKHNlbGYsIGJpdHNldF90IGJzKSBub2V4 Y2VwdAorLSAgICBjcGRlZiBodWxsX251bWJlcihzZWxmLCB2YWx1ZV9vbmx5ID0gKiwgdmVyYm9z ZSA9ICopIG5vZXhjZXB0CisrICAgIGNkZWYgbGlzdCBfdmVydGljZXNfdG9faW50ZWdlcnMoc2Vs ZiwgdmVydGljZXMpCisrICAgIGNkZWYgbGlzdCBfaW50ZWdlcnNfdG9fdmVydGljZXMoc2VsZiwg bGlzdCBpbnRlZ2VycykKKysgICAgY2RlZiBfYml0c2V0X2NvbnZleF9odWxsKHNlbGYsIGJpdHNl dF90IGh1bGwpCisrICAgIGNwZGVmIGh1bGwoc2VsZiwgbGlzdCB2ZXJ0aWNlcykKKysgICAgY2Rl ZiBfZ3JlZWR5X2luY3JlYXNlKHNlbGYsIGJpdHNldF90IGJzKQorKyAgICBjcGRlZiBodWxsX251 bWJlcihzZWxmLCB2YWx1ZV9vbmx5ID0gKiwgdmVyYm9zZSA9ICopCitkaWZmIC0tZ2l0IGEvc3Jj L3NhZ2UvZ3JhcGhzL2NvbnZleGl0eV9wcm9wZXJ0aWVzLnB5eCBiL3NyYy9zYWdlL2dyYXBocy9j b252ZXhpdHlfcHJvcGVydGllcy5weXgKK2luZGV4IDcwMjQzMjRmMzYyLi42MGM3OTQxMTQ3ZCAx MDA2NDQKKy0tLSBhL3NyYy9zYWdlL2dyYXBocy9jb252ZXhpdHlfcHJvcGVydGllcy5weXgKKysr KyBiL3NyYy9zYWdlL2dyYXBocy9jb252ZXhpdHlfcHJvcGVydGllcy5weXgKK0BAIC0yMjcsMjAg KzIyNywyMCBAQCBjZGVmIGNsYXNzIENvbnZleGl0eVByb3BlcnRpZXM6CisgICAgICAgICAiIiIK KyAgICAgICAgIGJpbmFyeV9tYXRyaXhfZnJlZShzZWxmLl9jYWNoZV9odWxsX3BhaXJzKQorIAor LSAgICBjZGVmIGxpc3QgX3ZlcnRpY2VzX3RvX2ludGVnZXJzKHNlbGYsIHZlcnRpY2VzKSBub2V4 Y2VwdDoKKysgICAgY2RlZiBsaXN0IF92ZXJ0aWNlc190b19pbnRlZ2VycyhzZWxmLCB2ZXJ0aWNl cyk6CisgICAgICAgICByIiIiCisgICAgICAgICBDb252ZXJ0cyBhIGxpc3Qgb2YgdmVydGljZXMg dG8gYSBsaXN0IG9mIGludGVnZXJzIHdpdGggdGhlIGNhY2hlZCBkYXRhLgorICAgICAgICAgIiIi CisgICAgICAgICByZXR1cm4gW3NlbGYuX2RpY3RfdmVydGljZXNfdG9faW50ZWdlcnNbdl0gZm9y IHYgaW4gdmVydGljZXNdCisgCistICAgIGNkZWYgbGlzdCBfaW50ZWdlcnNfdG9fdmVydGljZXMo c2VsZiwgbGlzdCBpbnRlZ2Vycykgbm9leGNlcHQ6CisrICAgIGNkZWYgbGlzdCBfaW50ZWdlcnNf dG9fdmVydGljZXMoc2VsZiwgbGlzdCBpbnRlZ2Vycyk6CisgICAgICAgICByIiIiCisgICAgICAg ICBDb252ZXJ0IGEgbGlzdCBvZiBpbnRlZ2VycyB0byBhIGxpc3Qgb2YgdmVydGljZXMgd2l0aCB0 aGUgY2FjaGVkIGRhdGEuCisgICAgICAgICAiIiIKKyAgICAgICAgIGNkZWYgaW50IGkKKyAgICAg ICAgIHJldHVybiBbc2VsZi5fbGlzdF9pbnRlZ2Vyc190b192ZXJ0aWNlc1tpXSBmb3IgaSBpbiBp bnRlZ2Vyc10KKyAKKy0gICAgY2RlZiBfYml0c2V0X2NvbnZleF9odWxsKHNlbGYsIGJpdHNldF90 IGh1bGwpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9iaXRzZXRfY29udmV4X2h1bGwoc2VsZiwgYml0 c2V0X3QgaHVsbCk6CisgICAgICAgICByIiIiCisgICAgICAgICBDb21wdXRlIHRoZSBjb252ZXgg aHVsbCBvZiBhIGxpc3Qgb2YgdmVydGljZXMgZ2l2ZW4gYXMgYSBiaXRzZXQuCisgCitAQCAtMjkw LDcgKzI5MCw3IEBAIGNkZWYgY2xhc3MgQ29udmV4aXR5UHJvcGVydGllczoKKyAgICAgICAgICAg ICAjIE90aGVyd2lzZSwgdXBkYXRlIGFuZCBiYWNrIHRvIHRoZSBsb29wCisgICAgICAgICAgICAg Y291bnQgPSB0bXBfY291bnQKKyAKKy0gICAgY3BkZWYgaHVsbChzZWxmLCBsaXN0IHZlcnRpY2Vz KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgaHVsbChzZWxmLCBsaXN0IHZlcnRpY2VzKToKKyAgICAg ICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgY29udmV4IGh1bGwgb2YgYSBzZXQgb2YgdmVy dGljZXMuCisgCitAQCAtMzIxLDcgKzMyMSw3IEBAIGNkZWYgY2xhc3MgQ29udmV4aXR5UHJvcGVy dGllczoKKyAKKyAgICAgICAgIHJldHVybiBhbnN3ZXIKKyAKKy0gICAgY2RlZiBfZ3JlZWR5X2lu Y3JlYXNlKHNlbGYsIGJpdHNldF90IGJzKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfZ3JlZWR5X2lu Y3JlYXNlKHNlbGYsIGJpdHNldF90IGJzKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIEdpdmVu IGEgYml0c2V0IHdob3NlIGh1bGwgaXMgbm90IHRoZSB3aG9sZSBzZXQsIGdyZWVkaWx5IGFkZCB2 ZXJ0aWNlcworICAgICAgICAgYW5kIHN0b3AgYmVmb3JlIGl0cyBodWxsIGlzIHRoZSB3aG9sZSBz ZXQuCitAQCAtMzQzLDcgKzM0Myw3IEBAIGNkZWYgY2xhc3MgQ29udmV4aXR5UHJvcGVydGllczoK KyAKKyAgICAgICAgIGJpdHNldF9mcmVlKHRtcCkKKyAKKy0gICAgY3BkZWYgaHVsbF9udW1iZXIo c2VsZiwgdmFsdWVfb25seT1UcnVlLCB2ZXJib3NlPUZhbHNlKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgaHVsbF9udW1iZXIoc2VsZiwgdmFsdWVfb25seT1UcnVlLCB2ZXJib3NlPUZhbHNlKToKKyAg ICAgICAgIHIiIiIKKyAgICAgICAgIENvbXB1dGUgdGhlIGh1bGwgbnVtYmVyIGFuZCBhIGNvcnJl c3BvbmRpbmcgZ2VuZXJhdGluZyBzZXQuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvZ3JhcGhz L2Rpc3RhbmNlc19hbGxfcGFpcnMucHhkIGIvc3JjL3NhZ2UvZ3JhcGhzL2Rpc3RhbmNlc19hbGxf cGFpcnMucHhkCitpbmRleCA5ODMwMWI5MjIxMy4uZDg3YTAwMWQxNDMgMTAwNjQ0CistLS0gYS9z cmMvc2FnZS9ncmFwaHMvZGlzdGFuY2VzX2FsbF9wYWlycy5weGQKKysrKyBiL3NyYy9zYWdlL2dy YXBocy9kaXN0YW5jZXNfYWxsX3BhaXJzLnB4ZAorQEAgLTYsNiArNiw2IEBAIGNkZWYgYWxsX3Bh aXJzX3Nob3J0ZXN0X3BhdGhfQkZTKGdnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVuc2lnbmVkIHNob3J0ICogcHJlZGVjZXNzb3JzLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVuc2lnbmVkIHNob3J0ICogZGlzdGFuY2VzLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICAgICAgICogZWNjZW50cmljaXR5LAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRleF9saXN0PSopIG5vZXhjZXB0CisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVydGV4X2xpc3Q9KikKKyAKKyBjZGVmIHVp bnQzMl90ICogY19lY2NlbnRyaWNpdHkoRywgdmVydGV4X2xpc3Q9KikgZXhjZXB0IE5VTEwKK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9ncmFwaHMvZGlzdGFuY2VzX2FsbF9wYWlycy5weXggYi9zcmMv c2FnZS9ncmFwaHMvZGlzdGFuY2VzX2FsbF9wYWlycy5weXgKK2luZGV4IGRiNmRmNmIyY2IxLi4z ZWIxNTEyOWQxOSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2dyYXBocy9kaXN0YW5jZXNfYWxsX3Bh aXJzLnB5eAorKysrIGIvc3JjL3NhZ2UvZ3JhcGhzL2Rpc3RhbmNlc19hbGxfcGFpcnMucHl4CitA QCAtMTQ1LDcgKzE0NSw3IEBAIGZyb20gc2FnZS5ncmFwaHMuYmFzZS5zdGF0aWNfc3BhcnNlX2dy YXBoIGNpbXBvcnQgKHNob3J0X2RpZ3JhcGgsCisgY2RlZiBpbmxpbmUgY19hbGxfcGFpcnNfc2hv cnRlc3RfcGF0aF9CRlMoc2hvcnRfZGlncmFwaCBzZCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCogcHJlZGVjZXNzb3JzLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNob3J0KiBkaXN0 YW5jZXMsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMy X3QqIGVjY2VudHJpY2l0eSkgbm9leGNlcHQ6CisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdWludDMyX3QqIGVjY2VudHJpY2l0eSk6CisgICAgIHIiIiIKKyAgICAg U2VlIHRoZSBtb2R1bGUncyBkb2N1bWVudGF0aW9uLgorICAgICAiIiIKK0BAIC0yNjksNyArMjY5 LDcgQEAgY2RlZiBpbmxpbmUgYWxsX3BhaXJzX3Nob3J0ZXN0X3BhdGhfQkZTKGdnLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCogcHJlZGVj ZXNzb3JzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l ZCBzaG9ydCogZGlzdGFuY2VzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1aW50MzJfdCogZWNjZW50cmljaXR5LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB2ZXJ0ZXhfbGlzdD1Ob25lKSBub2V4Y2VwdDoKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVydGV4X2xpc3Q9Tm9uZSk6CisgICAgIHIiIiIK KyAgICAgU2VlIHRoZSBtb2R1bGUncyBkb2N1bWVudGF0aW9uLgorIAorQEAgLTExNDEsNyArMTE0 MSw3IEBAIGNkZWYgdWludDMyX3QgZGlhbWV0ZXJfbG93ZXJfYm91bmRfMnN3ZWVwKHNob3J0X2Rp Z3JhcGggZywKKyAKKyBjZGVmIHR1cGxlIGRpYW1ldGVyX2xvd2VyX2JvdW5kXzJEc3dlZXAoc2hv cnRfZGlncmFwaCBnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz aG9ydF9kaWdyYXBoIHJldl9nLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1aW50MzJfdCBzb3VyY2UpIG5vZXhjZXB0OgorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1aW50MzJfdCBzb3VyY2UpOgorICAgICByIiIiCisgICAgIExvd2Vy IGJvdW5kIG9uIHRoZSBkaWFtZXRlciBvZiBkaWdyYXBoIHVzaW5nIGRpcmVjdGVkIHZlcnNpb24g b2YgMi1zd2VlcC4KKyAKK0BAIC0xMjU1LDcgKzEyNTUsNyBAQCBjZGVmIHR1cGxlIGRpYW1ldGVy X2xvd2VyX2JvdW5kXzJEc3dlZXAoc2hvcnRfZGlncmFwaCBnLAorIAorIAorIGNkZWYgdHVwbGUg ZGlhbWV0ZXJfbG93ZXJfYm91bmRfbXVsdGlfc3dlZXAoc2hvcnRfZGlncmFwaCBnLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qgc291cmNlKSBu b2V4Y2VwdDoKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVp bnQzMl90IHNvdXJjZSk6CisgICAgICIiIgorICAgICBMb3dlciBib3VuZCBvbiB0aGUgZGlhbWV0 ZXIgdXNpbmcgbXVsdGktc3dlZXAuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvZ3JhcGhzL2Vk Z2VfY29ubmVjdGl2aXR5LnB5eCBiL3NyYy9zYWdlL2dyYXBocy9lZGdlX2Nvbm5lY3Rpdml0eS5w eXgKK2luZGV4IGEyZTM2N2JiNTc3Li5hZWY4ZTQzZDk4ZSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdl L2dyYXBocy9lZGdlX2Nvbm5lY3Rpdml0eS5weXgKKysrKyBiL3NyYy9zYWdlL2dyYXBocy9lZGdl X2Nvbm5lY3Rpdml0eS5weXgKK0BAIC0zMDAsNyArMzAwLDcgQEAgY2RlZiBjbGFzcyBHYWJvd0Vk Z2VDb25uZWN0aXZpdHk6CisgICAgICAgICBfID0gc2VsZi5jb21wdXRlX2VkZ2VfY29ubmVjdGl2 aXR5KCkKKyAgICAgICAgIHNpZ19jaGVjaygpCisgCistICAgIGNkZWYgYnVpbGRfZ3JhcGhfZGF0 YV9zdHJ1Y3R1cmUoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgYnVpbGRfZ3JhcGhfZGF0YV9z dHJ1Y3R1cmUoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBCdWlsZCBncmFwaCBkYXRh IHN0cnVjdHVyZXMuCisgCitAQCAtMTAyNCw3ICsxMDI0LDcgQEAgY2RlZiBjbGFzcyBHYWJvd0Vk Z2VDb25uZWN0aXZpdHk6CisgICAgICAgICAgICAgZSA9IGVwCisgICAgICAgICAgICAgZXAgPSBz ZWxmLmxhYmVsc1tlXQorIAorLSAgICBjZGVmIHJlX2luaXQoc2VsZiwgaW50IHRyZWUpIG5vZXhj ZXB0OgorKyAgICBjZGVmIHJlX2luaXQoc2VsZiwgaW50IHRyZWUpOgorICAgICAgICAgIiIiCisg ICAgICAgICBNYWtlIGZfdHJlZXMgYWN0aXZlIChleGNlcHQgdGhlIGZfdHJlZSBvZiB0aGUgcm9v dCksIHVwZGF0ZSBkZXB0aHMgYW5kCisgICAgICAgICBwYXJlbnQgdmFsdWVzLCBhbmQgY2xlYXIg dGhlIGxhYmVscy4KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9ncmFwaHMvZ2VuZXJpY19ncmFwaF9w eXgucHhkIGIvc3JjL3NhZ2UvZ3JhcGhzL2dlbmVyaWNfZ3JhcGhfcHl4LnB4ZAoraW5kZXggMWE0 NzJjNTlhNzAuLmEwOWMxZDY5MzMzIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvZ3JhcGhzL2dlbmVy aWNfZ3JhcGhfcHl4LnB4ZAorKysrIGIvc3JjL3NhZ2UvZ3JhcGhzL2dlbmVyaWNfZ3JhcGhfcHl4 LnB4ZAorQEAgLTgsNyArOCw3IEBAIGN0eXBlZGVmIGZ1c2VkIGRpbWVuc2lvbl90OgorICAgICBE X1RXTworICAgICBEX1RIUkVFCisgCistY2RlZiBydW5fc3ByaW5nKGludCwgZGltZW5zaW9uX3Qs IGRvdWJsZSosIGludCosIGludCwgaW50LCBiaW50KSBub2V4Y2VwdAorK2NkZWYgcnVuX3Nwcmlu ZyhpbnQsIGRpbWVuc2lvbl90LCBkb3VibGUqLCBpbnQqLCBpbnQsIGludCwgYmludCkKKyAKKyBj ZGVmIGNsYXNzIEdlbmVyaWNHcmFwaF9weXgoU2FnZU9iamVjdCk6CisgICAgIHBhc3MKK2RpZmYg LS1naXQgYS9zcmMvc2FnZS9ncmFwaHMvZ2VuZXJpY19ncmFwaF9weXgucHl4IGIvc3JjL3NhZ2Uv Z3JhcGhzL2dlbmVyaWNfZ3JhcGhfcHl4LnB5eAoraW5kZXggOWQwOTFjZGVlNTguLjc0YTZmMTNj MWM2IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvZ3JhcGhzL2dlbmVyaWNfZ3JhcGhfcHl4LnB5eAor KysrIGIvc3JjL3NhZ2UvZ3JhcGhzL2dlbmVyaWNfZ3JhcGhfcHl4LnB5eAorQEAgLTI1OCw3ICsy NTgsNyBAQCBkZWYgc3ByaW5nX2xheW91dF9mYXN0KEcsIGl0ZXJhdGlvbnM9NTAsIGludCBkaW09 MiwgdnBvcz1Ob25lLCBiaW50IHJlc2NhbGU9VHJ1ZQorIAorIAorIEBjeXRob24uY2RpdmlzaW9u KFRydWUpCistY2RlZiBydW5fc3ByaW5nKGludCBpdGVyYXRpb25zLCBkaW1lbnNpb25fdCBfZGlt LCBkb3VibGUqIHBvcywgaW50KiBlZGdlcywgaW50IG4sIGludCBtLCBiaW50IGhlaWdodCkgbm9l eGNlcHQ6CisrY2RlZiBydW5fc3ByaW5nKGludCBpdGVyYXRpb25zLCBkaW1lbnNpb25fdCBfZGlt LCBkb3VibGUqIHBvcywgaW50KiBlZGdlcywgaW50IG4sIGludCBtLCBiaW50IGhlaWdodCk6Cisg ICAgIHIiIiIKKyAgICAgRmluZCBhIGxvY2FsbHkgb3B0aW1hbCBsYXlvdXQgZm9yIHRoaXMgZ3Jh cGgsIGFjY29yZGluZyB0byB0aGUKKyAgICAgY29uc3RyYWludHMgdGhhdCBuZWlnaGJvcmluZyBu b2RlcyB3YW50IHRvIGJlIGEgZml4ZWQgZGlzdGFuY2UKK0BAIC0xMTU5LDcgKzExNTksNyBAQCBk ZWYgX3Rlc3RfdmVjdG9yc19lcXVhbF9pbmZlcmlvcigpOgorIAorIAorIGNwZGVmIHR1cGxlIGZp bmRfaGFtaWx0b25pYW4oRywgbG9uZyBtYXhfaXRlcj0xMDAwMDAsIGxvbmcgcmVzZXRfYm91bmQ9 MzAwMDAsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGJhY2t0cmFja19ib3Vu ZD0xMDAwLCBmaW5kX3BhdGg9RmFsc2UpIG5vZXhjZXB0OgorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbG9uZyBiYWNrdHJhY2tfYm91bmQ9MTAwMCwgZmluZF9wYXRoPUZhbHNlKToKKyAg ICAgciIiIgorICAgICBSYW5kb21pemVkIGJhY2t0cmFja2luZyBmb3IgZmluZGluZyBIYW1pbHRv bmlhbiBjeWNsZXMgYW5kIHBhdGhzLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2dyYXBocy9n ZW51cy5weXggYi9zcmMvc2FnZS9ncmFwaHMvZ2VudXMucHl4CitpbmRleCA0NDFmYWU3NTRkNi4u ZGFlNmY3MTMwOGYgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9ncmFwaHMvZ2VudXMucHl4CisrKysg Yi9zcmMvc2FnZS9ncmFwaHMvZ2VudXMucHl4CitAQCAtNDc3LDcgKzQ3Nyw3IEBAIGNkZWYgY2xh c3Mgc2ltcGxlX2Nvbm5lY3RlZF9nZW51c19iYWNrdHJhY2tlcjoKKyAgICAgY2RlZiBpbnQgZ2Vu dXNfYmFja3RyYWNrKHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY3V0 b2ZmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmludCByZWNvcmRfZW1iZWRkaW5n LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCAoKikoc2ltcGxlX2Nvbm5lY3Rl ZF9nZW51c19iYWNrdHJhY2tlciwgaW50LCBiaW50LCBpbnQpKWNoZWNrX2VtYmVkZGluZykgbm9l eGNlcHQ6CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ICgqKShzaW1wbGVfY29u bmVjdGVkX2dlbnVzX2JhY2t0cmFja2VyLCBpbnQsIGJpbnQsIGludCkgbm9leGNlcHQpIGNoZWNr X2VtYmVkZGluZykgbm9leGNlcHQ6CisgICAgICAgICAiIiIKKyAgICAgICAgIEhlcmUncyB0aGUg bWFpbiBiYWNrdHJhY2tpbmcgcm91dGluZS4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9ncmFw aHMvZ3JhcGhfY29sb3JpbmcucHl4IGIvc3JjL3NhZ2UvZ3JhcGhzL2dyYXBoX2NvbG9yaW5nLnB5 eAoraW5kZXggYzMwMGQ0ZjM5YTkuLmU0YjZkZDk4NzNlIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uv Z3JhcGhzL2dyYXBoX2NvbG9yaW5nLnB5eAorKysrIGIvc3JjL3NhZ2UvZ3JhcGhzL2dyYXBoX2Nv bG9yaW5nLnB5eAorQEAgLTMyNyw3ICszMjcsNyBAQCBkZWYgYWxsX2dyYXBoX2NvbG9yaW5ncyhH LCBuLCBjb3VudF9vbmx5PUZhbHNlLCBoZXhfY29sb3JzPUZhbHNlLAorICAgICAgICAgcmFpc2Ug UnVudGltZUVycm9yKCJ0b28gbXVjaCByZWN1cnNpb24sIEdyYXBoIGNvbG9yaW5nIGZhaWxlZCIp CisgCisgCistY3BkZWYgZmlyc3RfY29sb3JpbmcoRywgbj0wLCBoZXhfY29sb3JzPUZhbHNlKSBu b2V4Y2VwdDoKKytjcGRlZiBmaXJzdF9jb2xvcmluZyhHLCBuPTAsIGhleF9jb2xvcnM9RmFsc2Up OgorICAgICByIiIiCisgICAgIFJldHVybiB0aGUgZmlyc3QgdmVydGV4IGNvbG9yaW5nIGZvdW5k LgorIAorQEAgLTM2NSw3ICszNjUsNyBAQCBjcGRlZiBmaXJzdF9jb2xvcmluZyhHLCBuPTAsIGhl eF9jb2xvcnM9RmFsc2UpIG5vZXhjZXB0OgorICAgICAgICAgICAgIHJldHVybiBDCisgCisgCist Y3BkZWYgbnVtYmVyX29mX25fY29sb3JpbmdzKEcsIG4pIG5vZXhjZXB0OgorK2NwZGVmIG51bWJl cl9vZl9uX2NvbG9yaW5ncyhHLCBuKToKKyAgICAgciIiIgorICAgICBDb21wdXRlIHRoZSBudW1i ZXIgb2YgYG5gLWNvbG9yaW5ncyBvZiBhIGdyYXBoCisgCitAQCAtMzk3LDcgKzM5Nyw3IEBAIGNw ZGVmIG51bWJlcl9vZl9uX2NvbG9yaW5ncyhHLCBuKSBub2V4Y2VwdDoKKyAgICAgcmV0dXJuIG0K KyAKKyAKKy1jcGRlZiBudW1iZXJzX29mX2NvbG9yaW5ncyhHKSBub2V4Y2VwdDoKKytjcGRlZiBu dW1iZXJzX29mX2NvbG9yaW5ncyhHKToKKyAgICAgciIiIgorICAgICBDb21wdXRlIHRoZSBudW1i ZXIgb2YgY29sb3JpbmdzIG9mIGEgZ3JhcGguCisgCitAQCAtNDE2LDcgKzQxNiw3IEBAIGNwZGVm IG51bWJlcnNfb2ZfY29sb3JpbmdzKEcpIG5vZXhjZXB0OgorICAgICByZXR1cm4gYW5zd2VyCisg CisgCistY3BkZWYgY2hyb21hdGljX251bWJlcihHKSBub2V4Y2VwdDoKKytjcGRlZiBjaHJvbWF0 aWNfbnVtYmVyKEcpOgorICAgICByIiIiCisgICAgIFJldHVybiB0aGUgY2hyb21hdGljIG51bWJl ciBvZiB0aGUgZ3JhcGguCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvZ3JhcGhzL2dyYXBoX2Rl Y29tcG9zaXRpb25zL3Jhbmt3aWR0aC5weXggYi9zcmMvc2FnZS9ncmFwaHMvZ3JhcGhfZGVjb21w b3NpdGlvbnMvcmFua3dpZHRoLnB5eAoraW5kZXggNWJlNTQwYmFmZTIuLmQ4MTdjZjA0YTVkIDEw MDY0NAorLS0tIGEvc3JjL3NhZ2UvZ3JhcGhzL2dyYXBoX2RlY29tcG9zaXRpb25zL3Jhbmt3aWR0 aC5weXgKKysrKyBiL3NyYy9zYWdlL2dyYXBocy9ncmFwaF9kZWNvbXBvc2l0aW9ucy9yYW5rd2lk dGgucHl4CitAQCAtMzIxLDcgKzMyMSw3IEBAIGRlZiBta2dyYXBoKGludCBudW1fdmVydGljZXMp OgorICAgICByZXR1cm4gZworIAorIAorLWNkZWYgYml0c2V0X3RvX3ZlcnRleF9zZXQoc3Vic2V0 X3Qgcykgbm9leGNlcHQ6CisrY2RlZiBiaXRzZXRfdG9fdmVydGV4X3NldChzdWJzZXRfdCBzKToK KyAgICAgIiIiCisgICAgIFJldHVybiBhcyBhIFNldCBvYmplY3QgdGhlIHNldCBjb3JyZXNwb25k aW5nIHRvIHRoZSBnaXZlbiBzdWJzZXRfdAorICAgICB2YXJpYWJsZS4KK2RpZmYgLS1naXQgYS9z cmMvc2FnZS9ncmFwaHMvZ3JhcGhfZGVjb21wb3NpdGlvbnMvdmVydGV4X3NlcGFyYXRpb24ucHhk IGIvc3JjL3NhZ2UvZ3JhcGhzL2dyYXBoX2RlY29tcG9zaXRpb25zL3ZlcnRleF9zZXBhcmF0aW9u LnB4ZAoraW5kZXggZmJhZGM4OTM0MzYuLmZhNzU3YjJjMjhlIDEwMDY0NAorLS0tIGEvc3JjL3Nh Z2UvZ3JhcGhzL2dyYXBoX2RlY29tcG9zaXRpb25zL3ZlcnRleF9zZXBhcmF0aW9uLnB4ZAorKysr IGIvc3JjL3NhZ2UvZ3JhcGhzL2dyYXBoX2RlY29tcG9zaXRpb25zL3ZlcnRleF9zZXBhcmF0aW9u LnB4ZAorQEAgLTEsNCArMSw0IEBACisgZnJvbSBsaWJjLnN0ZGludCBjaW1wb3J0IHVpbnQ4X3QK KyBmcm9tIHNhZ2UuZ3JhcGhzLmdyYXBoX2RlY29tcG9zaXRpb25zLmZhc3RfZGlncmFwaCBjaW1w b3J0IEZhc3REaWdyYXBoCisgCistY2RlZiBsaXN0IGZpbmRfb3JkZXIoRmFzdERpZ3JhcGgsIHVp bnQ4X3QgKiwgaW50KSBub2V4Y2VwdAorK2NkZWYgbGlzdCBmaW5kX29yZGVyKEZhc3REaWdyYXBo LCB1aW50OF90ICosIGludCkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9ncmFwaHMvZ3JhcGhfZGVj b21wb3NpdGlvbnMvdmVydGV4X3NlcGFyYXRpb24ucHl4IGIvc3JjL3NhZ2UvZ3JhcGhzL2dyYXBo X2RlY29tcG9zaXRpb25zL3ZlcnRleF9zZXBhcmF0aW9uLnB5eAoraW5kZXggZWFlYzMxYjVjOTYu LjJkNDlmNGJkYjI5IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvZ3JhcGhzL2dyYXBoX2RlY29tcG9z aXRpb25zL3ZlcnRleF9zZXBhcmF0aW9uLnB5eAorKysrIGIvc3JjL3NhZ2UvZ3JhcGhzL2dyYXBo X2RlY29tcG9zaXRpb25zL3ZlcnRleF9zZXBhcmF0aW9uLnB5eAorQEAgLTEwNTIsNyArMTA1Miw3 IEBAIGNkZWYgaW5saW5lIGludCBleGlzdHMoRmFzdERpZ3JhcGggZywgdWludDhfdCogbmVpZ2hi b3Job29kcywgaW50IGN1cnJlbnQsIGludCBjCisgICAgIHJldHVybiBuZWlnaGJvcmhvb2RzW2N1 cnJlbnRdCisgCisgCistY2RlZiBsaXN0IGZpbmRfb3JkZXIoRmFzdERpZ3JhcGggZywgdWludDhf dCogbmVpZ2hib3Job29kcywgaW50IGNvc3QpIG5vZXhjZXB0OgorK2NkZWYgbGlzdCBmaW5kX29y ZGVyKEZhc3REaWdyYXBoIGcsIHVpbnQ4X3QqIG5laWdoYm9yaG9vZHMsIGludCBjb3N0KToKKyAg ICAgIiIiCisgICAgIFJldHVybiB0aGUgb3JkZXJpbmcgb25jZSB3ZSBhcmUgc3VyZSBpdCBleGlz dHMKKyAgICAgIiIiCitAQCAtMTc0MSw3ICsxNzQxLDcgQEAgZGVmIHZlcnRleF9zZXBhcmF0aW9u X0JBQihHLAorICAgICByZXR1cm4gKHdpZHRoIGlmIHdpZHRoIDwgdXBwZXJfYm91bmQgZWxzZSAt MSksIG9yZGVyCisgCisgCistY2RlZiBpbmxpbmUgX215X2ludmVydF9wb3NpdGlvbnMoaW50ICpw cmVmaXgsIGludCAqcG9zaXRpb25zLCBpbnQgcG9zX2EsIGludCBwb3NfYikgbm9leGNlcHQ6Cisr Y2RlZiBpbmxpbmUgX215X2ludmVydF9wb3NpdGlvbnMoaW50ICpwcmVmaXgsIGludCAqcG9zaXRp b25zLCBpbnQgcG9zX2EsIGludCBwb3NfYik6CisgICAgICIiIgorICAgICBQZXJtdXRlIHZlcnRp Y2VzIGF0IHBvc2l0aW9ucyBgYHBvc19hYGAgYW5kIGBgcG9zX2JgYCBpbiBhcnJheSBgYHByZWZp eGBgLAorICAgICBhbmQgcmVjb3JkIHRoZSBuZXcgcG9zaXRpb25zIGluIGFycmF5IGBgcG9zaXRp b25zYGAuCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvZ3JhcGhzL2h5cGVyYm9saWNpdHkucHl4IGIv c3JjL3NhZ2UvZ3JhcGhzL2h5cGVyYm9saWNpdHkucHl4CitpbmRleCA2NDc0ZTlkNjg2OS4uNzhi MzIwNWI2ZmQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9ncmFwaHMvaHlwZXJib2xpY2l0eS5weXgK KysrKyBiL3NyYy9zYWdlL2dyYXBocy9oeXBlcmJvbGljaXR5LnB5eAorQEAgLTI2Myw3ICsyNjMs NyBAQCBjZGVmIGlubGluZSBpbnQgX19oeXBfXyh1bnNpZ25lZCBzaG9ydCoqIGRpc3RhbmNlcywg aW50IGEsIGludCBiLCBpbnQgYywgaW50IGQpCisgCisgY2RlZiB0dXBsZSBoeXBlcmJvbGljaXR5 X2Jhc2ljX2FsZ29yaXRobShpbnQgTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVuc2lnbmVkIHNob3J0KiogZGlzdGFuY2VzLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdmVyYm9zZSkgbm9leGNlcHQ6CisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJib3NlKToKKyAgICAgIiIiCisgICAgIFJl dHVybiAqKnR3aWNlKiogdGhlIGh5cGVyYm9saWNpdHkgb2YgYSBncmFwaCwgYW5kIGEgY2VydGlm aWNhdGUuCisgCitAQCAtMzY4LDcgKzM2OCw3IEBAIGRlZiBfZ3JlZWR5X2RvbWluYXRpbmdfc2V0 KEgsIHZlcmJvc2U9RmFsc2UpOgorIGNkZWYgaW5saW5lIGRpc3RhbmNlc19hbmRfZmFyX2FwYXJ0 X3BhaXJzKGdnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu c2lnbmVkIHNob3J0KiBkaXN0YW5jZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdW5zaWduZWQgc2hvcnQqIGZhcl9hcGFydF9wYWlycywKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0IGludF90b192ZXJ0ZXgpIG5vZXhj ZXB0OgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QgaW50 X3RvX3ZlcnRleCk6CisgICAgICIiIgorICAgICBDb21wdXRlIGJvdGggZGlzdGFuY2VzIGJldHdl ZW4gYWxsIHBhaXJzIGFuZCBmYXItYXBhcnQgcGFpcnMuCisgCitAQCAtNTgzLDcgKzU4Myw3IEBA IGNkZWYgdHVwbGUgaHlwZXJib2xpY2l0eV9CQ0NNKGludCBOLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGludCBoX0xCLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZs b2F0IGFwcHJveGltYXRpb25fZmFjdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGZsb2F0IGFkZGl0aXZlX2dhcCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJi b3NlPUZhbHNlKSBub2V4Y2VwdDoKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJi b3NlPUZhbHNlKToKKyAgICAgIiIiCisgICAgIFJldHVybiB0aGUgaHlwZXJib2xpY2l0eSBvZiBh IGdyYXBoLgorIAorQEAgLTg0MSw3ICs4NDEsNyBAQCBjZGVmIHR1cGxlIGh5cGVyYm9saWNpdHlf Q0NMKGludCBOLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGhfTEIsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBhcHByb3hpbWF0aW9uX2ZhY3RvciwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IGFkZGl0aXZlX2dhcCwKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHZlcmJvc2U9RmFsc2UpIG5vZXhjZXB0OgorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdmVyYm9zZT1GYWxzZSk6CisgICAgICIiIgorICAgICBSZXR1 cm4gdGhlIGh5cGVyYm9saWNpdHkgb2YgYSBncmFwaC4KKyAKK0BAIC0xNDY1LDcgKzE0NjUsNyBA QCBkZWYgaHlwZXJib2xpY2l0eShHLAorICMgRGlzdHJpYnV0aW9uIG9mIHRoZSBoeXBlcmJvbGlj aXR5IG9mIDQtdHVwbGVzCisgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIAorLWNkZWYgZGljdCBfX2h5cGVyYm9s aWNpdHlfZGlzdHJpYnV0aW9uX18oaW50IE4sIHVuc2lnbmVkIHNob3J0KiogZGlzdGFuY2VzKSBu b2V4Y2VwdDoKKytjZGVmIGRpY3QgX19oeXBlcmJvbGljaXR5X2Rpc3RyaWJ1dGlvbl9fKGludCBO LCB1bnNpZ25lZCBzaG9ydCoqIGRpc3RhbmNlcyk6CisgICAgICIiIgorICAgICBSZXR1cm4gdGhl IGRpc3RyaWJ1dGlvbiBvZiB0aGUgaHlwZXJib2xpY2l0eSBvZiB0aGUgNC10dXBsZXMgb2YgdGhl IGdyYXBoLgorIAorQEAgLTE1MjYsNyArMTUyNiw3IEBAIGNkZWYgZXh0ZXJuIGZyb20gInN0ZGxp Yi5oIjoKKyAgICAgdm9pZCBjX2xpYmNfc3JhbmRvbSAic3JhbmRvbSIodW5zaWduZWQgaW50IHNl ZWQpCisgCisgCistY2RlZiBkaWN0IF9faHlwZXJib2xpY2l0eV9zYW1wbGluZ19fKGludCBOLCB1 bnNpZ25lZCBzaG9ydCoqIGRpc3RhbmNlcywgdWludDY0X3Qgc2FtcGxpbmdfc2l6ZSkgbm9leGNl cHQ6CisrY2RlZiBkaWN0IF9faHlwZXJib2xpY2l0eV9zYW1wbGluZ19fKGludCBOLCB1bnNpZ25l ZCBzaG9ydCoqIGRpc3RhbmNlcywgdWludDY0X3Qgc2FtcGxpbmdfc2l6ZSk6CisgICAgICIiIgor ICAgICBSZXR1cm4gYSBzYW1wbGluZyBvZiB0aGUgaHlwZXJib2xpY2l0eSBkaXN0cmlidXRpb24g b2YgdGhlIGdyYXBoLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2dyYXBocy9zdHJvbmdseV9y ZWd1bGFyX2RiLnB5eCBiL3NyYy9zYWdlL2dyYXBocy9zdHJvbmdseV9yZWd1bGFyX2RiLnB5eAor aW5kZXggOTU1Zjg3MjIyYTEuLjI3Y2ZkM2RhNTM1IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvZ3Jh cGhzL3N0cm9uZ2x5X3JlZ3VsYXJfZGIucHl4CisrKysgYi9zcmMvc2FnZS9ncmFwaHMvc3Ryb25n bHlfcmVndWxhcl9kYi5weXgKK0BAIC0xNzM2LDcgKzE3MzYsNyBAQCBkZWYgaXNfbm93aGVyZTBf dHdvd2VpZ2h0KGludCB2LCBpbnQgaywgaW50IGwsIGludCBtdSk6CisgICAgICAgICByZXR1cm4g KE5vd2hlcmUwV29yZHNUd29XZWlnaHRDb2RlR3JhcGgsIHEpCisgCisgCistY2RlZiBlaWdlbnZh bHVlcyhpbnQgdiwgaW50IGssIGludCBsLCBpbnQgbXUpIG5vZXhjZXB0OgorK2NkZWYgZWlnZW52 YWx1ZXMoaW50IHYsIGludCBrLCBpbnQgbCwgaW50IG11KToKKyAgICAgciIiIgorICAgICBSZXR1 cm4gdGhlIGVpZ2VudmFsdWVzIG9mIGEgKHYsayxsLG11KS1zdHJvbmdseSByZWd1bGFyIGdyYXBo LgorIAorQEAgLTE4NDYsNyArMTg0Niw3IEBAIGRlZiBlaWdlbm1hdHJpeChpbnQgdiwgaW50IGss IGludCBsLCBpbnQgbXUpOgorICAgICAgICAgcmV0dXJuIE1hdHJpeChaWiwgW1sxLCBrLCB2LWst MV0sIFsxLCByLCAtci0xXSwgWzEsIHMsIC1zLTFdXSkKKyAKKyAKKy1jcGRlZiBsYXRpbl9zcXVh cmVzX2dyYXBoX3BhcmFtZXRlcnMoaW50IHYsIGludCBrLCBpbnQgbCxpbnQgbXUpIG5vZXhjZXB0 OgorK2NwZGVmIGxhdGluX3NxdWFyZXNfZ3JhcGhfcGFyYW1ldGVycyhpbnQgdiwgaW50IGssIGlu dCBsLGludCBtdSk6CisgICAgIHIiIiIKKyAgICAgQ2hlY2sgd2hldGhlciAodixrLGwsbXUpLXN0 cm9uZ2x5IHJlZ3VsYXIgZ3JhcGggaGFzIHBhcmFtZXRlcnMgb2YgYW4gYExfZyhuKWAgcy5yLmcu CisgCitAQCAtMzI1Niw3ICszMjU2LDcgQEAgZGVmIF9idWlsZF9zbWFsbF9zcmdfZGF0YWJhc2Uo KToKKyAgICAgICAgICAgICBfc21hbGxfc3JnX2RhdGFiYXNlW04sIEssIGwsIG1dID0gW3N0cm9u Z2x5X3JlZ3VsYXJfZnJvbV90d29fd2VpZ2h0X2NvZGUsIGNvZGVbJ00nXV0KKyAKKyAKKy1jZGVm IGxvYWRfYnJvdXdlcl9kYXRhYmFzZSgpIG5vZXhjZXB0OgorK2NkZWYgbG9hZF9icm91d2VyX2Rh dGFiYXNlKCk6CisgICAgIHIiIiIKKyAgICAgTG9hZHMgQW5kcmllcyBCcm91d2VyJ3MgZGF0YWJh c2UgaW50byBfYnJvdXdlcl9kYXRhYmFzZS4KKyAgICAgIiIiCitkaWZmIC0tZ2l0IGEvc3JjL3Nh Z2UvZ3JhcGhzL3RyYXZlcnNhbHMucHhkIGIvc3JjL3NhZ2UvZ3JhcGhzL3RyYXZlcnNhbHMucHhk CitpbmRleCBjOWE4NDQ0YmUwYy4uYTgxYzcyZGNkOWQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9n cmFwaHMvdHJhdmVyc2Fscy5weGQKKysrKyBiL3NyYy9zYWdlL2dyYXBocy90cmF2ZXJzYWxzLnB4 ZAorQEAgLTUsNCArNSw0IEBAIGNkZWYgbWF4aW11bV9jYXJkaW5hbGl0eV9zZWFyY2hfTV9zaG9y dF9kaWdyYXBoKHNob3J0X2RpZ3JhcGggc2QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaW50KiBhbHBoYSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQqIGFscGhhX2ludiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0IEYsCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmludCogWCkgbm9leGNlcHQKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW50KiBYKQor ZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2dyYXBocy90cmF2ZXJzYWxzLnB5eCBiL3NyYy9zYWdlL2dy YXBocy90cmF2ZXJzYWxzLnB5eAoraW5kZXggYWU4NTE4ZDNiMjUuLmQ3ZGZhZDQ3YTMwIDEwMDY0 NAorLS0tIGEvc3JjL3NhZ2UvZ3JhcGhzL3RyYXZlcnNhbHMucHl4CisrKysgYi9zcmMvc2FnZS9n cmFwaHMvdHJhdmVyc2Fscy5weXgKK0BAIC0xMDcsNyArMTA3LDcgQEAgZGVmIF9pc192YWxpZF9s ZXhfQkZTX29yZGVyKEcsIEwpOgorICAgICByZXR1cm4gVHJ1ZQorIAorIAorLWNkZWYgbGV4X0JG U19mYXN0X3Nob3J0X2RpZ3JhcGgoc2hvcnRfZGlncmFwaCBzZCwgdWludDMyX3QgKnNpZ21hLCB1 aW50MzJfdCAqcHJlZCkgbm9leGNlcHQ6CisrY2RlZiBsZXhfQkZTX2Zhc3Rfc2hvcnRfZGlncmFw aChzaG9ydF9kaWdyYXBoIHNkLCB1aW50MzJfdCAqc2lnbWEsIHVpbnQzMl90ICpwcmVkKToKKyAg ICAgciIiIgorICAgICBQZXJmb3JtIGEgbGV4aWNvZ3JhcGhpYyBicmVhZHRoIGZpcnN0IHNlYXJj aCAoTGV4QkZTKSBvbiB0aGUgZ3JhcGguCisgCitAQCAtMTc0Nyw3ICsxNzQ3LDcgQEAgY2RlZiBp bmxpbmUgaW50IHN3YXAoaW50KiBhbHBoYSwgaW50KiBhbHBoYV9pbnYsIGludCB1LCBpbnQgbmV3 X3Bvc191KSBub2V4Y2VwdDoKKyAKKyAKKyBjZGVmIG1heGltdW1fY2FyZGluYWxpdHlfc2VhcmNo X01fc2hvcnRfZGlncmFwaChzaG9ydF9kaWdyYXBoIHNkLCBpbnQgaW5pdGlhbF92ZXJ0ZXgsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50KiBhbHBo YSwgaW50KiBhbHBoYV9pbnYsIGxpc3QgRiwgYmludCogWCkgbm9leGNlcHQ6CisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50KiBhbHBoYSwgaW50KiBh bHBoYV9pbnYsIGxpc3QgRiwgYmludCogWCk6CisgICAgIHIiIiIKKyAgICAgQ29tcHV0ZSB0aGUg b3JkZXJpbmcgYW5kIHRoZSBlZGdlcyBvZiB0aGUgdHJpYW5ndWxhdGlvbiBwcm9kdWNlZCBieSBN Q1MtTS4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9ncmFwaHMvd2Vha2x5X2Nob3JkYWwucHl4 IGIvc3JjL3NhZ2UvZ3JhcGhzL3dlYWtseV9jaG9yZGFsLnB5eAoraW5kZXggOTE1M2M4ZWU5M2Qu LmVhODIwNDJmOTk2IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvZ3JhcGhzL3dlYWtseV9jaG9yZGFs LnB5eAorKysrIGIvc3JjL3NhZ2UvZ3JhcGhzL3dlYWtseV9jaG9yZGFsLnB5eAorQEAgLTUxLDcg KzUxLDcgQEAgY2RlZiBpbmxpbmUgaXNfbG9uZ19ob2xlX2ZyZWVfcHJvY2VzcyhnLCBzaG9ydF9k aWdyYXBoIHNkLCBiaXRzZXRfdCBkZW5zZV9ncmFwaCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxpc3QgaWRfbGFiZWwsIGludCogcGF0aCwgaW50KiBJblBhdGgsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQqIG5laWdoYm9yX2luZGV4 LCBzZXQgVmlzaXRlZFAzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YmludCBjZXJ0aWZpY2F0ZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGludCBhLCBpbnQgYiwgaW50IGMsIGludCBuKSBub2V4Y2VwdDoKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGludCBhLCBpbnQgYiwgaW50IGMsIGludCBuKToKKyAgICAg IiIiCisgICAgIFRoaXMgbWV0aG9kIGlzIHBhcnQgb2YgbWV0aG9kIGBgaXNfbG9uZ19ob2xlX2Zy ZWVgYC4KKyAKK0BAIC0yNzksNyArMjc5LDcgQEAgY2RlZiBpbmxpbmUgaXNfbG9uZ19hbnRpaG9s ZV9mcmVlX3Byb2Nlc3MoZywgc2hvcnRfZGlncmFwaCBzZCwgYml0c2V0X3QgZGVuc2VfZ3IKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0IGlkX2xhYmVsLCBp bnQqIHBhdGgsIGludCogSW5QYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGludCogbmVpZ2hib3JfaW5kZXgsIHNldCBWaXNpdGVkUDMsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmludCBjZXJ0aWZpY2F0ZSwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYSwgaW50IGIsIGludCBj LCBpbnQgbikgbm9leGNlcHQ6CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW50IGEsIGludCBiLCBpbnQgYywgaW50IG4pOgorICAgICAiIiIKKyAgICAgVGhpcyBt ZXRob2QgaXMgcGFydCBvZiBtZXRob2QgYGBpc19sb25nX2FudGlob2xlX2ZyZWVgYC4KKyAKK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9ncm91cHMvbGliZ2FwX3dyYXBwZXIucHhkIGIvc3JjL3NhZ2Uv Z3JvdXBzL2xpYmdhcF93cmFwcGVyLnB4ZAoraW5kZXggMjU1OTllZWEyYTguLjBjNDNiMDk4MTQw IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvZ3JvdXBzL2xpYmdhcF93cmFwcGVyLnB4ZAorKysrIGIv c3JjL3NhZ2UvZ3JvdXBzL2xpYmdhcF93cmFwcGVyLnB4ZAorQEAgLTQsNSArNCw1IEBAIGZyb20g c2FnZS5saWJzLmdhcC5lbGVtZW50IGNpbXBvcnQgR2FwRWxlbWVudAorIAorIGNkZWYgY2xhc3Mg RWxlbWVudExpYkdBUChNdWx0aXBsaWNhdGl2ZUdyb3VwRWxlbWVudCk6CisgICAgIGNkZWYgR2Fw RWxlbWVudCBfbGliZ2FwCistICAgIGNwZGVmIEdhcEVsZW1lbnQgZ2FwKHNlbGYpIG5vZXhjZXB0 CistICAgIGNwZGVmIF9tdWxfKHNlbGYsIG90aGVyKSBub2V4Y2VwdAorKyAgICBjcGRlZiBHYXBF bGVtZW50IGdhcChzZWxmKQorKyAgICBjcGRlZiBfbXVsXyhzZWxmLCBvdGhlcikKK2RpZmYgLS1n aXQgYS9zcmMvc2FnZS9ncm91cHMvbGliZ2FwX3dyYXBwZXIucHl4IGIvc3JjL3NhZ2UvZ3JvdXBz L2xpYmdhcF93cmFwcGVyLnB5eAoraW5kZXggNjkzOTVlZDdlNzMuLjNkMjdlYzQ0ZWEwIDEwMDY0 NAorLS0tIGEvc3JjL3NhZ2UvZ3JvdXBzL2xpYmdhcF93cmFwcGVyLnB5eAorKysrIGIvc3JjL3Nh Z2UvZ3JvdXBzL2xpYmdhcF93cmFwcGVyLnB5eAorQEAgLTUxOCw3ICs1MTgsNyBAQCBjZGVmIGNs YXNzIEVsZW1lbnRMaWJHQVAoTXVsdGlwbGljYXRpdmVHcm91cEVsZW1lbnQpOgorICAgICAgICAg ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcignbmVlZCBhIGxpYmdh cCBncm91cCBlbGVtZW50IG9yICIxIiBpbiBjb25zdHJ1Y3RvcicpCisgCistICAgIGNwZGVmIEdh cEVsZW1lbnQgZ2FwKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBHYXBFbGVtZW50IGdhcChz ZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGEgTGliR0FQIHJlcHJlc2VudGF0 aW9uIG9mIHRoZSBlbGVtZW50LgorIAorQEAgLTY0MCw3ICs2NDAsNyBAQCBjZGVmIGNsYXNzIEVs ZW1lbnRMaWJHQVAoTXVsdGlwbGljYXRpdmVHcm91cEVsZW1lbnQpOgorICAgICAgICAgICAgIGZy b20gc2FnZS5taXNjLmxhdGV4IGltcG9ydCBsYXRleAorICAgICAgICAgICAgIHJldHVybiBsYXRl eChzZWxmLl9yZXByXygpKQorIAorLSAgICBjcGRlZiBfbXVsXyhsZWZ0LCByaWdodCkgbm9leGNl cHQ6CisrICAgIGNwZGVmIF9tdWxfKGxlZnQsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAg ICAgTXVsdGlwbGljYXRpb24gb2YgZ3JvdXAgZWxlbWVudHMKKyAKK0BAIC02NjIsNyArNjYyLDcg QEAgY2RlZiBjbGFzcyBFbGVtZW50TGliR0FQKE11bHRpcGxpY2F0aXZlR3JvdXBFbGVtZW50KToK KyAgICAgICAgIHJldHVybiBQLmVsZW1lbnRfY2xhc3MoUCwgKDxFbGVtZW50TGliR0FQPiBsZWZ0 KS5fbGliZ2FwICoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDxFbGVtZW50 TGliR0FQPiByaWdodCkuX2xpYmdhcCkKKyAKKy0gICAgY3BkZWYgX3JpY2hjbXBfKGxlZnQsIHJp Z2h0LCBpbnQgb3ApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQs IGludCBvcCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRoaXMgbWV0aG9kIGltcGxlbWVudHMg Y29tcGFyaXNvbi4KKyAKK0BAIC02ODIsNyArNjgyLDcgQEAgY2RlZiBjbGFzcyBFbGVtZW50TGli R0FQKE11bHRpcGxpY2F0aXZlR3JvdXBFbGVtZW50KToKKyAgICAgICAgIHJldHVybiByaWNoY21w KCg8RWxlbWVudExpYkdBUD5sZWZ0KS5fbGliZ2FwLAorICAgICAgICAgICAgICAgICAgICAgICAg KDxFbGVtZW50TGliR0FQPnJpZ2h0KS5fbGliZ2FwLCBvcCkKKyAKKy0gICAgY3BkZWYgX2Rpdl8o bGVmdCwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZGl2XyhsZWZ0LCByaWdodCk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIERpdmlzaW9uIG9mIGdyb3VwIGVsZW1lbnRzLgorIAorZGlm ZiAtLWdpdCBhL3NyYy9zYWdlL2dyb3Vwcy9tYXRyaXhfZ3BzL2dyb3VwX2VsZW1lbnQucHhkIGIv c3JjL3NhZ2UvZ3JvdXBzL21hdHJpeF9ncHMvZ3JvdXBfZWxlbWVudC5weGQKK2luZGV4IDFiMzJl ZWEzNjAyLi4zNmE1YTlmYzRjZSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2dyb3Vwcy9tYXRyaXhf Z3BzL2dyb3VwX2VsZW1lbnQucHhkCisrKysgYi9zcmMvc2FnZS9ncm91cHMvbWF0cml4X2dwcy9n cm91cF9lbGVtZW50LnB4ZAorQEAgLTEsMTAgKzEsMTAgQEAKKyBmcm9tIHNhZ2Uuc3RydWN0dXJl LmVsZW1lbnQgY2ltcG9ydCBNdWx0aXBsaWNhdGl2ZUdyb3VwRWxlbWVudCwgRWxlbWVudCwgTW9u b2lkRWxlbWVudCwgTWF0cml4CisgCistY3BkZWYgaXNfTWF0cml4R3JvdXBFbGVtZW50KHgpIG5v ZXhjZXB0CisrY3BkZWYgaXNfTWF0cml4R3JvdXBFbGVtZW50KHgpCisgCisgY2RlZiBjbGFzcyBN YXRyaXhHcm91cEVsZW1lbnRfZ2VuZXJpYyhNdWx0aXBsaWNhdGl2ZUdyb3VwRWxlbWVudCk6Cisg ICAgIGNkZWYgcHVibGljIE1hdHJpeCBfbWF0cml4CisgCistICAgIGNwZGVmIF9hY3Rfb25fKHNl bGYsIHgsIGJpbnQgc2VsZl9vbl9sZWZ0KSBub2V4Y2VwdAorLSAgICBjcGRlZiBfbXVsXyhzZWxm LCBvdGhlcikgbm9leGNlcHQKKy0gICAgY3BkZWYgbGlzdCBsaXN0KHNlbGYpIG5vZXhjZXB0Cisr ICAgIGNwZGVmIF9hY3Rfb25fKHNlbGYsIHgsIGJpbnQgc2VsZl9vbl9sZWZ0KQorKyAgICBjcGRl ZiBfbXVsXyhzZWxmLCBvdGhlcikKKysgICAgY3BkZWYgbGlzdCBsaXN0KHNlbGYpCitkaWZmIC0t Z2l0IGEvc3JjL3NhZ2UvZ3JvdXBzL21hdHJpeF9ncHMvZ3JvdXBfZWxlbWVudC5weXggYi9zcmMv c2FnZS9ncm91cHMvbWF0cml4X2dwcy9ncm91cF9lbGVtZW50LnB5eAoraW5kZXggZmE5MTRhOTQ5 OWQuLjM4YmYxZjAzMjc5IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvZ3JvdXBzL21hdHJpeF9ncHMv Z3JvdXBfZWxlbWVudC5weXgKKysrKyBiL3NyYy9zYWdlL2dyb3Vwcy9tYXRyaXhfZ3BzL2dyb3Vw X2VsZW1lbnQucHl4CitAQCAtODksNyArODksNyBAQCBleGNlcHQgSW1wb3J0RXJyb3I6CisgICAg IE1hdHJpeEdyb3VwRWxlbWVudF9nYXAgPSAoKQorIAorIAorLWNwZGVmIGlzX01hdHJpeEdyb3Vw RWxlbWVudCh4KSBub2V4Y2VwdDoKKytjcGRlZiBpc19NYXRyaXhHcm91cEVsZW1lbnQoeCk6Cisg ICAgICIiIgorICAgICBUZXN0IHdoZXRoZXIgYGB4YGAgaXMgYSBtYXRyaXggZ3JvdXAgZWxlbWVu dAorIAorQEAgLTIyMiw3ICsyMjIsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeEdyb3VwRWxlbWVudF9n ZW5lcmljKE11bHRpcGxpY2F0aXZlR3JvdXBFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAg ICAgcmV0dXJuIHNlbGYuX21hdHJpeC5fbGF0ZXhfKCkKKyAKKy0gICAgY3BkZWYgX2FjdF9vbl8o c2VsZiwgeCwgYmludCBzZWxmX29uX2xlZnQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWN0X29u XyhzZWxmLCB4LCBiaW50IHNlbGZfb25fbGVmdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVY QU1QTEVTOjoKKyAKK0BAIC0yNDUsNyArMjQ1LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhHcm91cEVs ZW1lbnRfZ2VuZXJpYyhNdWx0aXBsaWNhdGl2ZUdyb3VwRWxlbWVudCk6CisgICAgICAgICAgICAg ZXhjZXB0IFR5cGVFcnJvcjoKKyAgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAKKy0gICAg Y3BkZWYgX3JpY2hjbXBfKHNlbGYsIG90aGVyLCBpbnQgb3ApIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBfcmljaGNtcF8oc2VsZiwgb3RoZXIsIGludCBvcCk6CisgICAgICAgICAiIiIKKyAgICAgICAg IEVYQU1QTEVTOjoKKyAKK0BAIC0yNjYsNyArMjY2LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhHcm91 cEVsZW1lbnRfZ2VuZXJpYyhNdWx0aXBsaWNhdGl2ZUdyb3VwRWxlbWVudCk6CisgICAgICAgICBj ZGVmIE1hdHJpeEdyb3VwRWxlbWVudF9nZW5lcmljIHkgPSA8TWF0cml4R3JvdXBFbGVtZW50X2dl bmVyaWM+b3RoZXIKKyAgICAgICAgIHJldHVybiByaWNoY21wKHguX21hdHJpeCwgeS5fbWF0cml4 LCBvcCkKKyAKKy0gICAgY3BkZWYgbGlzdCBsaXN0KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBsaXN0IGxpc3Qoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBsaXN0IHJl cHJlc2VudGF0aW9uIG9mIHRoaXMgbWF0cml4LgorIAorQEAgLTMyNyw3ICszMjcsNyBAQCBjZGVm IGNsYXNzIE1hdHJpeEdyb3VwRWxlbWVudF9nZW5lcmljKE11bHRpcGxpY2F0aXZlR3JvdXBFbGVt ZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYubWF0cml4KCkKKyAKKy0g ICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbXVsXyhz ZWxmLCBvdGhlcik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgcHJvZHVjdCBv ZiBgYHNlbGZgYCBhbmRgYCBvdGhlcmBgLCB3aGljaCBtdXN0CisgICAgICAgICBoYXZlIGlkZW50 aWNhbCBwYXJlbnRzLgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2dyb3Vwcy9tYXRyaXhfZ3BzL2dy b3VwX2VsZW1lbnRfZ2FwLnB4ZCBiL3NyYy9zYWdlL2dyb3Vwcy9tYXRyaXhfZ3BzL2dyb3VwX2Vs ZW1lbnRfZ2FwLnB4ZAoraW5kZXggMjYzM2YyMTg5MmMuLmUwZWNiZWZlYTVjIDEwMDY0NAorLS0t IGEvc3JjL3NhZ2UvZ3JvdXBzL21hdHJpeF9ncHMvZ3JvdXBfZWxlbWVudF9nYXAucHhkCisrKysg Yi9zcmMvc2FnZS9ncm91cHMvbWF0cml4X2dwcy9ncm91cF9lbGVtZW50X2dhcC5weGQKK0BAIC0x LDUgKzEsNSBAQAorIGZyb20gc2FnZS5ncm91cHMubGliZ2FwX3dyYXBwZXIgY2ltcG9ydCBFbGVt ZW50TGliR0FQCisgCisgY2RlZiBjbGFzcyBNYXRyaXhHcm91cEVsZW1lbnRfZ2FwKEVsZW1lbnRM aWJHQVApOgorLSAgICBjcGRlZiBfYWN0X29uXyhzZWxmLCB4LCBiaW50IHNlbGZfb25fbGVmdCkg bm9leGNlcHQKKy0gICAgY3BkZWYgbGlzdCBsaXN0KHNlbGYpIG5vZXhjZXB0CisrICAgIGNwZGVm IF9hY3Rfb25fKHNlbGYsIHgsIGJpbnQgc2VsZl9vbl9sZWZ0KQorKyAgICBjcGRlZiBsaXN0IGxp c3Qoc2VsZikKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9ncm91cHMvbWF0cml4X2dwcy9ncm91cF9l bGVtZW50X2dhcC5weXggYi9zcmMvc2FnZS9ncm91cHMvbWF0cml4X2dwcy9ncm91cF9lbGVtZW50 X2dhcC5weXgKK2luZGV4IDdjNTgxMzc3ZjZmLi5iMDdjMGYwMWE0NCAxMDA2NDQKKy0tLSBhL3Ny Yy9zYWdlL2dyb3Vwcy9tYXRyaXhfZ3BzL2dyb3VwX2VsZW1lbnRfZ2FwLnB5eAorKysrIGIvc3Jj L3NhZ2UvZ3JvdXBzL21hdHJpeF9ncHMvZ3JvdXBfZWxlbWVudF9nYXAucHl4CitAQCAtMTM2LDcg KzEzNiw3IEBAIGNkZWYgY2xhc3MgTWF0cml4R3JvdXBFbGVtZW50X2dhcChFbGVtZW50TGliR0FQ KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYubWF0cml4KCkuX2xhdGV4Xygp CisgCistICAgIGNwZGVmIF9hY3Rfb25fKHNlbGYsIHgsIGJpbnQgc2VsZl9vbl9sZWZ0KSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgX2FjdF9vbl8oc2VsZiwgeCwgYmludCBzZWxmX29uX2xlZnQpOgor ICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMTU3LDcgKzE1Nyw3IEBA IGNkZWYgY2xhc3MgTWF0cml4R3JvdXBFbGVtZW50X2dhcChFbGVtZW50TGliR0FQKToKKyAgICAg ICAgICAgICBleGNlcHQgVHlwZUVycm9yOgorICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQor IAorLSAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgb3RoZXIsIGludCBvcCkgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCBvdGhlciwgaW50IG9wKToKKyAgICAgICAgICIiIgor ICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTIzMCw3ICsyMzAsNyBAQCBjZGVmIGNsYXNzIE1h dHJpeEdyb3VwRWxlbWVudF9nYXAoRWxlbWVudExpYkdBUCk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIHJldHVybiBzZWxmLm1hdHJpeCgpCisgCistICAgIGNwZGVmIGxpc3QgbGlzdChzZWxmKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgbGlzdCBsaXN0KHNlbGYpOgorICAgICAgICAgIiIiCisgICAg ICAgICBSZXR1cm4gbGlzdCByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG1hdHJpeC4KKyAKK2RpZmYg LS1naXQgYS9zcmMvc2FnZS9ncm91cHMvcGVybV9ncHMvcGFydG5fcmVmL2RhdGFfc3RydWN0dXJl cy5weGQgYi9zcmMvc2FnZS9ncm91cHMvcGVybV9ncHMvcGFydG5fcmVmL2RhdGFfc3RydWN0dXJl cy5weGQKK2luZGV4IDRjNzE1MmU1ZDZkLi5mNTMxODRiZDA4MiAxMDA2NDQKKy0tLSBhL3NyYy9z YWdlL2dyb3Vwcy9wZXJtX2dwcy9wYXJ0bl9yZWYvZGF0YV9zdHJ1Y3R1cmVzLnB4ZAorKysrIGIv c3JjL3NhZ2UvZ3JvdXBzL3Blcm1fZ3BzL3BhcnRuX3JlZi9kYXRhX3N0cnVjdHVyZXMucHhkCitA QCAtOTUsNyArOTUsNyBAQCBjZGVmIGlubGluZSBPcmJpdFBhcnRpdGlvbiAqT1BfY29weShPcmJp dFBhcnRpdGlvbiAqT1ApIG5vZXhjZXB0OgorICAgICBPUF9jb3B5X2Zyb21fdG8oT1AsIE9QMikK KyAgICAgcmV0dXJuIE9QMgorIAorLWNkZWYgT1Bfc3RyaW5nKE9yYml0UGFydGl0aW9uICpPUCkg bm9leGNlcHQKKytjZGVmIE9QX3N0cmluZyhPcmJpdFBhcnRpdGlvbiAqT1ApCisgCisgY2RlZiBp bmxpbmUgdm9pZCBPUF9jbGVhcihPcmJpdFBhcnRpdGlvbiAqT1ApIG5vZXhjZXB0OgorICAgICBj ZGVmIGludCBpLCBuID0gT1AuZGVncmVlCitAQCAtMjU1LDcgKzI1NSw3IEBAIGNkZWYgUGFydGl0 aW9uU3RhY2sgKlBTX2NvcHkoUGFydGl0aW9uU3RhY2sgKlBTKSBub2V4Y2VwdAorIAorIGNkZWYg dm9pZCBQU19kZWFsbG9jKFBhcnRpdGlvblN0YWNrICpQUykgbm9leGNlcHQKKyAKKy1jZGVmIFBT X3ByaW50KFBhcnRpdGlvblN0YWNrICpQUykgbm9leGNlcHQKKytjZGVmIFBTX3ByaW50KFBhcnRp dGlvblN0YWNrICpQUykKKyAKKyBjZGVmIHZvaWQgUFNfdW5pdF9wYXJ0aXRpb24oUGFydGl0aW9u U3RhY2sgKlBTKSBub2V4Y2VwdAorIAorQEAgLTI2Myw3ICsyNjMsNyBAQCBjZGVmIGludCBQU19m aXJzdF9zbWFsbGVzdChQYXJ0aXRpb25TdGFjayAqUFMsIGJpdHNldF90IGIsIGludCAqc2Vjb25k X3Bvcz0/KSBubworIAorIGNkZWYgUGFydGl0aW9uU3RhY2sgKlBTX2Zyb21fbGlzdChsaXN0IEwp IG5vZXhjZXB0CisgCistY2RlZiBsaXN0IFBTX3NpbmdsZXRvbnMoUGFydGl0aW9uU3RhY2sgKiBw YXJ0KSBub2V4Y2VwdAorK2NkZWYgbGlzdCBQU19zaW5nbGV0b25zKFBhcnRpdGlvblN0YWNrICog cGFydCkKKyAKKyBjZGVmIGludCBQU19hbGxfbmV3X2NlbGxzKFBhcnRpdGlvblN0YWNrICpQUywg Yml0c2V0X3QqKiBub25zaW5nbGV0b25zX3B0cikgbm9leGNlcHQKKyAKK2RpZmYgLS1naXQgYS9z cmMvc2FnZS9ncm91cHMvcGVybV9ncHMvcGFydG5fcmVmL2RhdGFfc3RydWN0dXJlcy5weXggYi9z cmMvc2FnZS9ncm91cHMvcGVybV9ncHMvcGFydG5fcmVmL2RhdGFfc3RydWN0dXJlcy5weXgKK2lu ZGV4IGQyZGE5NzZiYzg3Li5jYjI1ZjIzYTRkMyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2dyb3Vw cy9wZXJtX2dwcy9wYXJ0bl9yZWYvZGF0YV9zdHJ1Y3R1cmVzLnB5eAorKysrIGIvc3JjL3NhZ2Uv Z3JvdXBzL3Blcm1fZ3BzL3BhcnRuX3JlZi9kYXRhX3N0cnVjdHVyZXMucHl4CitAQCAtNjYsNyAr NjYsNyBAQCBjZGVmIGlubGluZSB2b2lkIE9QX2RlYWxsb2MoT3JiaXRQYXJ0aXRpb24gKk9QKSBu b2V4Y2VwdDoKKyAgICAgICAgIHNpZ19mcmVlKE9QLnBhcmVudCkKKyAgICAgICAgIHNpZ19mcmVl KE9QKQorIAorLWNkZWYgT1Bfc3RyaW5nKE9yYml0UGFydGl0aW9uICpPUCkgbm9leGNlcHQ6Cisr Y2RlZiBPUF9zdHJpbmcoT3JiaXRQYXJ0aXRpb24gKk9QKToKKyAgICAgIiIiCisgICAgIFJldHVy biBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgT3JiaXRQYXJ0aXRpb24uCisgICAgICIi IgorQEAgLTI2MCw3ICsyNjAsNyBAQCBjZGVmIFBhcnRpdGlvblN0YWNrICpQU19mcm9tX2xpc3Qo bGlzdCBMKSBub2V4Y2VwdDoKKyAgICAgUFMuZGVncmVlID0gbgorICAgICByZXR1cm4gUFMKKyAK Ky1jZGVmIFBTX3ByaW50KFBhcnRpdGlvblN0YWNrICpQUykgbm9leGNlcHQ6CisrY2RlZiBQU19w cmludChQYXJ0aXRpb25TdGFjayAqUFMpOgorICAgICAiIiIKKyAgICAgUHJpbnQgYSB2aXN1YWwg cmVwcmVzZW50YXRpb24gb2YgUFMuCisgICAgICIiIgorQEAgLTI2OCw3ICsyNjgsNyBAQCBjZGVm IFBTX3ByaW50KFBhcnRpdGlvblN0YWNrICpQUykgbm9leGNlcHQ6CisgICAgIGZvciBpIGluIHJh bmdlKFBTLmRlcHRoICsgMSk6CisgICAgICAgICBQU19wcmludF9wYXJ0aXRpb24oUFMsIGkpCisg CistY2RlZiBQU19wcmludF9wYXJ0aXRpb24oUGFydGl0aW9uU3RhY2sgKlBTLCBpbnQgaykgbm9l eGNlcHQ6CisrY2RlZiBQU19wcmludF9wYXJ0aXRpb24oUGFydGl0aW9uU3RhY2sgKlBTLCBpbnQg ayk6CisgICAgICIiIgorICAgICBQcmludCB0aGUgcGFydGl0aW9uIGF0IGRlcHRoIGsuCisgICAg ICIiIgorQEAgLTM4MSw3ICszODEsNyBAQCBjZGVmIGludCBQU19maW5kX2VsZW1lbnQoUGFydGl0 aW9uU3RhY2sgKlBTLCBiaXRzZXRfdCBiLCBpbnQgeCkgZXhjZXB0IC0xOgorICAgICAgICAgaSAr PSAxCisgICAgIHJldHVybiBsb2NhdGlvbgorIAorLWNkZWYgbGlzdCBQU19zaW5nbGV0b25zKFBh cnRpdGlvblN0YWNrICogcGFydCkgbm9leGNlcHQ6CisrY2RlZiBsaXN0IFBTX3NpbmdsZXRvbnMo UGFydGl0aW9uU3RhY2sgKiBwYXJ0KToKKyAgICAgIiIiCisgICAgIFJldHVybiB0aGUgbGlzdCBv ZiBhbGwgc2luZ2xldG9ucyBpbiB0aGUgUGFydGl0aW9uU3RhY2suCisgICAgICIiIgorQEAgLTgx OCw3ICs4MTgsNyBAQCBjZGVmIGludCBTQ19jb3B5X25vbWFsbG9jKFN0YWJpbGl6ZXJDaGFpbiAq U0NfZGVzdCwgU3RhYmlsaXplckNoYWluICpTQywgaW50IGxldgorICAgICAgICAgbWVtY3B5KFND X2Rlc3QuZ2VuX2ludmVyc2VzW2ldLCBTQy5nZW5faW52ZXJzZXNbaV0sIFNDLm51bV9nZW5zW2ld Km4gKiBzaXplb2YoaW50KSApCisgICAgIHJldHVybiAwCisgCistY2RlZiBTQ19wcmludF9sZXZl bChTdGFiaWxpemVyQ2hhaW4gKlNDLCBpbnQgbGV2ZWwpIG5vZXhjZXB0OgorK2NkZWYgU0NfcHJp bnRfbGV2ZWwoU3RhYmlsaXplckNoYWluICpTQywgaW50IGxldmVsKToKKyAgICAgY2RlZiBpbnQg aSwgaiwgbiA9IFNDLmRlZ3JlZQorICAgICBpZiBsZXZlbCA8IFNDLmJhc2Vfc2l6ZToKKyAgICAg ICAgIHByaW50KCcvIGxldmVsIHt9Jy5mb3JtYXQobGV2ZWwpKQorZGlmZiAtLWdpdCBhL3NyYy9z YWdlL2dyb3Vwcy9wZXJtX2dwcy9wYXJ0bl9yZWYyL3JlZmluZW1lbnRfZ2VuZXJpYy5weGQgYi9z cmMvc2FnZS9ncm91cHMvcGVybV9ncHMvcGFydG5fcmVmMi9yZWZpbmVtZW50X2dlbmVyaWMucHhk CitpbmRleCBjZjk2NGJmZDE3Yy4uOWJhNjZjYWZmNzAgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9n cm91cHMvcGVybV9ncHMvcGFydG5fcmVmMi9yZWZpbmVtZW50X2dlbmVyaWMucHhkCisrKysgYi9z cmMvc2FnZS9ncm91cHMvcGVybV9ncHMvcGFydG5fcmVmMi9yZWZpbmVtZW50X2dlbmVyaWMucHhk CitAQCAtMjMsNyArMjMsNyBAQCBjZGVmIGV4dGVybiBmcm9tICo6CisgCisgY2RlZiB0dXBsZSBQ U19yZWZpbmVtZW50KFBhcnRpdGlvblN0YWNrICogcGFydCwgbG9uZyAqcmVmaW5lX3ZhbHMsIGxv bmcgKmJlc3QsIAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYmVnaW4sIGludCBlbmQs CistICAgICAgICAgICAgICAgICAgICAgICAgIGJpbnQgKiBjYW5kX2luaXRpYWxpemVkLCBiaW50 ICpjaGFuZ2VkX3BhcnRpdGlvbikgbm9leGNlcHQKKysgICAgICAgICAgICAgICAgICAgICAgICAg YmludCAqIGNhbmRfaW5pdGlhbGl6ZWQsIGJpbnQgKmNoYW5nZWRfcGFydGl0aW9uKQorIAorIGNk ZWYgY2xhc3MgX0Jlc3RWYWxTdG9yZToKKyAgICAgY2RlZiBpbnQgZGVmYXVsdF9kYXRhX2xlbmd0 aAorQEAgLTM5LDcgKzM5LDcgQEAgY2RlZiBjbGFzcyBMYWJlbGxlZEJyYW5jaGluZzoKKyAgICAg Y2RlZiBHYXBFbGVtZW50IGdyb3VwLCBDbG9zdXJlR3JvdXAKKyAgICAgY2RlZiBQYXJlbnQgc3lt X2dwCisgICAgIGNkZWYgYmludCBoYXNfZW1wdHlfaW50ZXJzZWN0aW9uKHNlbGYsIFBhcnRpdGlv blN0YWNrICogcGFydCkgbm9leGNlcHQKKy0gICAgY3BkZWYgYWRkX2dlbihzZWxmLCBHYXBFbGVt ZW50X1Blcm11dGF0aW9uIGdlbikgbm9leGNlcHQKKysgICAgY3BkZWYgYWRkX2dlbihzZWxmLCBH YXBFbGVtZW50X1Blcm11dGF0aW9uIGdlbikKKyAKKyBjZGVmIGNsYXNzIFBhcnRpdGlvblJlZmlu ZW1lbnRfZ2VuZXJpYzoKKyAgICAgY2RlZiBQYXJ0aXRpb25TdGFjayAqIF9wYXJ0CitAQCAtNjUs NyArNjUsNyBAQCBjZGVmIGNsYXNzIFBhcnRpdGlvblJlZmluZW1lbnRfZ2VuZXJpYzoKKyAgICAg ICMgbWV0aG9kcyB3aGljaCBoYXZlIHRvIGJlIGltcGxlbWVudGVkIGluIGRlcml2ZWQgY2xhc3Nl cworICAgICBjZGVmIGJpbnQgX2lubmVyX21pbl8oc2VsZiwgaW50IHBvcywgYmludCogaW5uZXJf Z3JvdXBfY2hhbmdlZCkgbm9leGNlcHQKKyAgICAgY2RlZiBiaW50IF9yZWZpbmUoc2VsZiwgYmlu dCAqcGFydF9jaGFuZ2VkLCBiaW50IGlubmVyX2dyb3VwX2NoYW5nZWQsIGJpbnQgZmlyc3Rfc3Rl cCkgbm9leGNlcHQKKy0gICAgY2RlZiB0dXBsZSBfc3RvcmVfc3RhdGVfKHNlbGYpIG5vZXhjZXB0 CisrICAgIGNkZWYgdHVwbGUgX3N0b3JlX3N0YXRlXyhzZWxmKQorICAgICBjZGVmIHZvaWQgX3Jl c3RvcmVfc3RhdGVfKHNlbGYsIHR1cGxlIGFjdF9zdGF0ZSkgbm9leGNlcHQKKyAgICAgY2RlZiB2 b2lkIF9zdG9yZV9iZXN0XyhzZWxmKSBub2V4Y2VwdAorICAgICBjZGVmIGJpbnQgX21pbmltaXph dGlvbl9hbGxvd2VkX29uX2NvbChzZWxmLCBpbnQgcG9zKSBub2V4Y2VwdAorZGlmZiAtLWdpdCBh L3NyYy9zYWdlL2dyb3Vwcy9wZXJtX2dwcy9wYXJ0bl9yZWYyL3JlZmluZW1lbnRfZ2VuZXJpYy5w eXggYi9zcmMvc2FnZS9ncm91cHMvcGVybV9ncHMvcGFydG5fcmVmMi9yZWZpbmVtZW50X2dlbmVy aWMucHl4CitpbmRleCA0YTcyMzg3M2FlNy4uMjYxZDE5ODc4OTcgMTAwNjQ0CistLS0gYS9zcmMv c2FnZS9ncm91cHMvcGVybV9ncHMvcGFydG5fcmVmMi9yZWZpbmVtZW50X2dlbmVyaWMucHl4Cisr KysgYi9zcmMvc2FnZS9ncm91cHMvcGVybV9ncHMvcGFydG5fcmVmMi9yZWZpbmVtZW50X2dlbmVy aWMucHl4CitAQCAtMTkxLDcgKzE5MSw3IEBAIGZyb20gc2FnZS5kYXRhX3N0cnVjdHVyZXMuYml0 c2V0X2Jhc2UgY2ltcG9ydCAqCisgCisgY2RlZiB0dXBsZSBQU19yZWZpbmVtZW50KFBhcnRpdGlv blN0YWNrICogcGFydCwgbG9uZyAqcmVmaW5lX3ZhbHMsIGxvbmcgKmJlc3QsCisgICAgICAgICAg ICAgICAgICAgICAgICAgIGludCBiZWdpbiwgaW50IGVuZCwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgYmludCAqIGNhbmRfaW5pdGlhbGl6ZWQsIGJpbnQgKmNoYW5nZWRfcGFydGl0aW9uKSBu b2V4Y2VwdDoKKysgICAgICAgICAgICAgICAgICAgICAgICAgYmludCAqIGNhbmRfaW5pdGlhbGl6 ZWQsIGJpbnQgKmNoYW5nZWRfcGFydGl0aW9uKToKKyAgICAgIiIiCisgICAgIFJlZmluZSB0aGUg cGFydGl0aW9uIHN0YWNrIGJ5IHRoZSB2YWx1ZXMgZ2l2ZW4gYnkgYGByZWZpbmVfdmFsc2BgLgor ICAgICBXZSBhbHNvIGNvbXBhcmUgb3VyIGFjdHVhbCByZWZpbmVtZW50IHJlc3VsdCB3aXRoIHRo ZSB2ZWN0b3IgYGBiZXN0YGAgaW4gdGhlCitAQCAtMzU2LDcgKzM1Niw3IEBAIGNkZWYgY2xhc3Mg TGFiZWxsZWRCcmFuY2hpbmc6CisgICAgICAgICBzaWdfZnJlZShzZWxmLmZhdGhlcikKKyAgICAg ICAgIHNpZ19mcmVlKHNlbGYuYWN0X3Blcm0pCisgCistICAgIGNwZGVmIGFkZF9nZW4oc2VsZiwg R2FwRWxlbWVudF9QZXJtdXRhdGlvbiBnZW4pIG5vZXhjZXB0OgorKyAgICBjcGRlZiBhZGRfZ2Vu KHNlbGYsIEdhcEVsZW1lbnRfUGVybXV0YXRpb24gZ2VuKToKKyAgICAgICAgIHIiIiIKKyAgICAg ICAgIEFkZCBhIGZ1cnRoZXIgZ2VuZXJhdG9yIHRvIHRoZSBncm91cCBhbmQKKyAgICAgICAgIHVw ZGF0ZSB0aGUgY29tcGxldGUgbGFiZWxlZCBicmFuY2hpbmcuCitAQCAtNTI0LDcgKzUyNCw3IEBA IGNkZWYgY2xhc3MgUGFydGl0aW9uUmVmaW5lbWVudF9nZW5lcmljOgorICAgICAgICAgIiIiCisg ICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisgCistICAgIGNkZWYgdHVwbGUgX3N0 b3JlX3N0YXRlXyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiB0dXBsZSBfc3RvcmVfc3RhdGVf KHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgU3RvcmUgdGhlIGN1cnJlbnQgc3RhdGUg b2YgdGhlIG5vZGUgdG8gYSB0dXBsZSwgc3VjaCB0aGF0IGl0IGNhbiBiZQorICAgICAgICAgcmVz dG9yZWQgYnkgOm1ldGg6YF9yZXN0b3JlX3N0YXRlX2AuCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uv Z3JvdXBzL3Blcm1fZ3BzL3Blcm1ncm91cF9lbGVtZW50LnB4ZCBiL3NyYy9zYWdlL2dyb3Vwcy9w ZXJtX2dwcy9wZXJtZ3JvdXBfZWxlbWVudC5weGQKK2luZGV4IDJlM2YyMjE1MGU3Li4yMWI1MDlm MDZkMSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2dyb3Vwcy9wZXJtX2dwcy9wZXJtZ3JvdXBfZWxl bWVudC5weGQKKysrKyBiL3NyYy9zYWdlL2dyb3Vwcy9wZXJtX2dwcy9wZXJtZ3JvdXBfZWxlbWVu dC5weGQKK0BAIC04LDIyICs4LDIyIEBAIGNkZWYgY2xhc3MgUGVybXV0YXRpb25Hcm91cEVsZW1l bnQoTXVsdGlwbGljYXRpdmVHcm91cEVsZW1lbnQpOgorICAgICBjZGVmIGludCBuCisgICAgIGNk ZWYgaW50IHBlcm1fYnVmWzE1XSAjIHRvIGF2b2lkIG1hbGxvYyBmb3Igc21hbGwgZWxlbWVudHMK KyAgICAgY2RlZiBHYXBFbGVtZW50IF9saWJnYXAKKy0gICAgY2RlZiBQZXJtdXRhdGlvbkdyb3Vw RWxlbWVudCBfbmV3X2Moc2VsZikgbm9leGNlcHQKKy0gICAgY2RlZiBfYWxsb2Moc2VsZiwgaW50 KSBub2V4Y2VwdAorLSAgICBjcGRlZiBfc2V0X2lkZW50aXR5KHNlbGYpIG5vZXhjZXB0CistICAg IGNwZGVmIF9zZXRfbGlzdF9pbWFnZXMoc2VsZiwgdiwgYmludCBjb252ZXJ0KSBub2V4Y2VwdAor LSAgICBjcGRlZiBfc2V0X2xpYmdhcChzZWxmLCBHYXBFbGVtZW50IHApIG5vZXhjZXB0CistICAg IGNwZGVmIF9zZXRfbGlzdF9jeWNsZXMoc2VsZiwgYywgYmludCBjb252ZXJ0KSBub2V4Y2VwdAor LSAgICBjcGRlZiBfc2V0X3N0cmluZyhzZWxmLCBzdHIgcykgbm9leGNlcHQKKy0gICAgY3BkZWYg X3NldF9wZXJtdXRhdGlvbl9ncm91cF9lbGVtZW50KHNlbGYsIFBlcm11dGF0aW9uR3JvdXBFbGVt ZW50IHAsIGJpbnQgY29udmVydCkgbm9leGNlcHQKKysgICAgY2RlZiBQZXJtdXRhdGlvbkdyb3Vw RWxlbWVudCBfbmV3X2Moc2VsZikKKysgICAgY2RlZiBfYWxsb2Moc2VsZiwgaW50KQorKyAgICBj cGRlZiBfc2V0X2lkZW50aXR5KHNlbGYpCisrICAgIGNwZGVmIF9zZXRfbGlzdF9pbWFnZXMoc2Vs ZiwgdiwgYmludCBjb252ZXJ0KQorKyAgICBjcGRlZiBfc2V0X2xpYmdhcChzZWxmLCBHYXBFbGVt ZW50IHApCisrICAgIGNwZGVmIF9zZXRfbGlzdF9jeWNsZXMoc2VsZiwgYywgYmludCBjb252ZXJ0 KQorKyAgICBjcGRlZiBfc2V0X3N0cmluZyhzZWxmLCBzdHIgcykKKysgICAgY3BkZWYgX3NldF9w ZXJtdXRhdGlvbl9ncm91cF9lbGVtZW50KHNlbGYsIFBlcm11dGF0aW9uR3JvdXBFbGVtZW50IHAs IGJpbnQgY29udmVydCkKKyAKKy0gICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0 CistICAgIGNwZGVmIFBlcm11dGF0aW9uR3JvdXBFbGVtZW50IF90cmFuc3Bvc2VfbGVmdChzZWxm LCBqLCBrKSBub2V4Y2VwdAorLSAgICBjcGRlZiBQZXJtdXRhdGlvbkdyb3VwRWxlbWVudCBfZ2Vu ZXJhdGVfbmV3KHNlbGYsIGxpc3QgbmV3X2xpc3QpIG5vZXhjZXB0CistICAgIGNwZGVmIFBlcm11 dGF0aW9uR3JvdXBFbGVtZW50IF9nZW5lcmF0ZV9uZXdfR0FQKHNlbGYsIG9sZCkgbm9leGNlcHQK Ky0gICAgY3BkZWYgX2dhcF9saXN0KHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIGRvbWFpbihz ZWxmKSBub2V4Y2VwdAorKyAgICBjcGRlZiBfbXVsXyhzZWxmLCBvdGhlcikKKysgICAgY3BkZWYg UGVybXV0YXRpb25Hcm91cEVsZW1lbnQgX3RyYW5zcG9zZV9sZWZ0KHNlbGYsIGosIGspCisrICAg IGNwZGVmIFBlcm11dGF0aW9uR3JvdXBFbGVtZW50IF9nZW5lcmF0ZV9uZXcoc2VsZiwgbGlzdCBu ZXdfbGlzdCkKKysgICAgY3BkZWYgUGVybXV0YXRpb25Hcm91cEVsZW1lbnQgX2dlbmVyYXRlX25l d19HQVAoc2VsZiwgb2xkKQorKyAgICBjcGRlZiBfZ2FwX2xpc3Qoc2VsZikKKysgICAgY3BkZWYg ZG9tYWluKHNlbGYpCisgICAgIGNkZWYgcHVibGljIF9TYWdlT2JqZWN0X19jdXN0b21fbmFtZQor LSAgICBjcGRlZiBsaXN0IF9hY3Rfb25fbGlzdF9vbl9wb3NpdGlvbihzZWxmLCBsaXN0IHgpIG5v ZXhjZXB0CistICAgIGNwZGVmIENsb25hYmxlSW50QXJyYXkgX2FjdF9vbl9hcnJheV9vbl9wb3Np dGlvbihzZWxmLCBDbG9uYWJsZUludEFycmF5IHgpIG5vZXhjZXB0CistICAgIGNwZGVmIEVUdXBs ZSBfYWN0X29uX2V0dXBsZV9vbl9wb3NpdGlvbihzZWxmLCBFVHVwbGUgeCkgbm9leGNlcHQKKysg ICAgY3BkZWYgbGlzdCBfYWN0X29uX2xpc3Rfb25fcG9zaXRpb24oc2VsZiwgbGlzdCB4KQorKyAg ICBjcGRlZiBDbG9uYWJsZUludEFycmF5IF9hY3Rfb25fYXJyYXlfb25fcG9zaXRpb24oc2VsZiwg Q2xvbmFibGVJbnRBcnJheSB4KQorKyAgICBjcGRlZiBFVHVwbGUgX2FjdF9vbl9ldHVwbGVfb25f cG9zaXRpb24oc2VsZiwgRVR1cGxlIHgpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvZ3JvdXBzL3Bl cm1fZ3BzL3Blcm1ncm91cF9lbGVtZW50LnB5eCBiL3NyYy9zYWdlL2dyb3Vwcy9wZXJtX2dwcy9w ZXJtZ3JvdXBfZWxlbWVudC5weXgKK2luZGV4IDU4NjgwNTJhODc2Li4yODMxYmQwN2NmYyAxMDA2 NDQKKy0tLSBhL3NyYy9zYWdlL2dyb3Vwcy9wZXJtX2dwcy9wZXJtZ3JvdXBfZWxlbWVudC5weXgK KysrKyBiL3NyYy9zYWdlL2dyb3Vwcy9wZXJtX2dwcy9wZXJtZ3JvdXBfZWxlbWVudC5weXgKK0BA IC01MTMsNyArNTEzLDcgQEAgY2RlZiBjbGFzcyBQZXJtdXRhdGlvbkdyb3VwRWxlbWVudChNdWx0 aXBsaWNhdGl2ZUdyb3VwRWxlbWVudCk6CisgICAgICAgICAgICAgaWYgcCBub3QgaW4gUDoKKyAg ICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigncGVybXV0YXRpb24gJXMgbm90IGluICVz JyAlIChnLCBwYXJlbnQpKQorIAorLSAgICBjcGRlZiBfc2V0X2lkZW50aXR5KHNlbGYpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBfc2V0X2lkZW50aXR5KHNlbGYpOgorICAgICAgICAgciIiIgorICAg ICAgICAgVEVTVFM6OgorIAorQEAgLTUzMiw3ICs1MzIsNyBAQCBjZGVmIGNsYXNzIFBlcm11dGF0 aW9uR3JvdXBFbGVtZW50KE11bHRpcGxpY2F0aXZlR3JvdXBFbGVtZW50KToKKyAgICAgICAgIGZv ciBpIGluIHJhbmdlKHNlbGYubik6CisgICAgICAgICAgICAgc2VsZi5wZXJtW2ldID0gaQorIAor LSAgICBjcGRlZiBfc2V0X2xpc3RfaW1hZ2VzKHNlbGYsIHYsIGJpbnQgY29udmVydCkgbm9leGNl cHQ6CisrICAgIGNwZGVmIF9zZXRfbGlzdF9pbWFnZXMoc2VsZiwgdiwgYmludCBjb252ZXJ0KToK KyAgICAgICAgIHIiIiIKKyAgICAgICAgIFRFU1RTOjoKKyAKK0BAIC01NjYsNyArNTY2LDcgQEAg Y2RlZiBjbGFzcyBQZXJtdXRhdGlvbkdyb3VwRWxlbWVudChNdWx0aXBsaWNhdGl2ZUdyb3VwRWxl bWVudCk6CisgICAgICAgICBmb3IgaSBpbiByYW5nZSh2biwgc2VsZi5uKToKKyAgICAgICAgICAg ICBzZWxmLnBlcm1baV0gPSBpCisgCistICAgIGNwZGVmIF9zZXRfbGliZ2FwKHNlbGYsIEdhcEVs ZW1lbnQgcCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9zZXRfbGliZ2FwKHNlbGYsIEdhcEVsZW1l bnQgcCk6CisgICAgICAgICByIiIiCisgICAgICAgICBURVNUUzo6CisgCitAQCAtNjE1LDcgKzYx NSw3IEBAIGNkZWYgY2xhc3MgUGVybXV0YXRpb25Hcm91cEVsZW1lbnQoTXVsdGlwbGljYXRpdmVH cm91cEVsZW1lbnQpOgorIAorICAgICAgICAgc2VsZi5fbGliZ2FwID0gcAorIAorLSAgICBjcGRl ZiBfc2V0X3Blcm11dGF0aW9uX2dyb3VwX2VsZW1lbnQoc2VsZiwgUGVybXV0YXRpb25Hcm91cEVs ZW1lbnQgcCwgYmludCBjb252ZXJ0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3NldF9wZXJtdXRh dGlvbl9ncm91cF9lbGVtZW50KHNlbGYsIFBlcm11dGF0aW9uR3JvdXBFbGVtZW50IHAsIGJpbnQg Y29udmVydCk6CisgICAgICAgICByIiIiCisgICAgICAgICBURVNUUzo6CisgCitAQCAtNjY5LDcg KzY2OSw3IEBAIGNkZWYgY2xhc3MgUGVybXV0YXRpb25Hcm91cEVsZW1lbnQoTXVsdGlwbGljYXRp dmVHcm91cEVsZW1lbnQpOgorICAgICAgICAgICAgICAgICBmb3IgaSBpbiByYW5nZShwLm4sIHNl bGYubik6CisgICAgICAgICAgICAgICAgICAgICBzZWxmLnBlcm1baV0gPSBpCisgCistICAgIGNw ZGVmIF9zZXRfbGlzdF9jeWNsZXMoc2VsZiwgYywgYmludCBjb252ZXJ0KSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgX3NldF9saXN0X2N5Y2xlcyhzZWxmLCBjLCBiaW50IGNvbnZlcnQpOgorICAgICAg ICAgciIiIgorICAgICAgICAgVEVTVFM6OgorIAorQEAgLTcxNiw3ICs3MTYsNyBAQCBjZGVmIGNs YXNzIFBlcm11dGF0aW9uR3JvdXBFbGVtZW50KE11bHRpcGxpY2F0aXZlR3JvdXBFbGVtZW50KToK KyAgICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImludmFsaWQgbGlzdCBvZiBj eWNsZXMgdG8gaW5pdGlhbGl6ZSBhIHBlcm11dGF0aW9uIikKKyAgICAgICAgICAgICAgICAgc2Vs Zi5wZXJtW2pdID0gdFswXSAtIDEKKyAKKy0gICAgY3BkZWYgX3NldF9zdHJpbmcoc2VsZiwgc3Ry IHMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc2V0X3N0cmluZyhzZWxmLCBzdHIgcyk6CisgICAg ICAgICByIiIiCisgICAgICAgICBURVNUUzo6CisgCitAQCAtODA3LDcgKzgwNyw3IEBAIGNkZWYg Y2xhc3MgUGVybXV0YXRpb25Hcm91cEVsZW1lbnQoTXVsdGlwbGljYXRpdmVHcm91cEVsZW1lbnQp OgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gbWFrZV9wZXJtZ3JvdXBfZWxlbWVudF92 MiwgKHNlbGYuX3BhcmVudCwgc2VsZi5kb21haW4oKSwgc2VsZi5fcGFyZW50LmRvbWFpbigpKQor IAorLSAgICBjZGVmIF9hbGxvYyhzZWxmLCBpbnQgbikgbm9leGNlcHQ6CisrICAgIGNkZWYgX2Fs bG9jKHNlbGYsIGludCBuKToKKyAgICAgICAgIGlmIG4gPCAxNiBhbmQgc2VsZi5wZXJtID09IE5V TEw6CisgICAgICAgICAgICAgc2VsZi5wZXJtID0gc2VsZi5wZXJtX2J1ZgorICAgICAgICAgZWxp ZiBzZWxmLnBlcm0gPT0gTlVMTDoKK0BAIC04MTcsNyArODE3LDcgQEAgY2RlZiBjbGFzcyBQZXJt dXRhdGlvbkdyb3VwRWxlbWVudChNdWx0aXBsaWNhdGl2ZUdyb3VwRWxlbWVudCk6CisgCisgICAg ICAgICBzZWxmLm4gPSBuCisgCistICAgIGNkZWYgUGVybXV0YXRpb25Hcm91cEVsZW1lbnQgX25l d19jKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIFBlcm11dGF0aW9uR3JvdXBFbGVtZW50IF9u ZXdfYyhzZWxmKToKKyAgICAgICAgIGNkZWYgdHlwZSB0ID0gdHlwZShzZWxmKQorICAgICAgICAg Y2RlZiBQZXJtdXRhdGlvbkdyb3VwRWxlbWVudCBvdGhlciA9IHQuX19uZXdfXyh0KQorICAgICAg ICAgaWYgSEFTX0RJQ1RJT05BUlkoc2VsZik6CitAQCAtOTc1LDcgKzk3NSw3IEBAIGNkZWYgY2xh c3MgUGVybXV0YXRpb25Hcm91cEVsZW1lbnQoTXVsdGlwbGljYXRpdmVHcm91cEVsZW1lbnQpOgor ICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5jeWNsZXMoKVtpXQorIAorLSAgICBj cGRlZiBfcmljaGNtcF8oc2VsZiwgb3RoZXIsIGludCBvcCkgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9yaWNoY21wXyhzZWxmLCBvdGhlciwgaW50IG9wKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAg IENvbXBhcmUgZ3JvdXAgZWxlbWVudHMgYGBzZWxmYGAgYW5kIGBgb3RoZXJgYC4KKyAKK0BAIC0x MDg0LDcgKzEwODQsNyBAQCBjZGVmIGNsYXNzIFBlcm11dGF0aW9uR3JvdXBFbGVtZW50KE11bHRp cGxpY2F0aXZlR3JvdXBFbGVtZW50KToKKyAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAg ICAgICByZXR1cm4gZnJvbV9nYXBbaV0KKyAKKy0gICAgY3BkZWYgbGlzdCBfYWN0X29uX2xpc3Rf b25fcG9zaXRpb24oc2VsZiwgbGlzdCB4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgbGlzdCBfYWN0 X29uX2xpc3Rfb25fcG9zaXRpb24oc2VsZiwgbGlzdCB4KToKKyAgICAgICAgIHIiIiIKKyAgICAg ICAgIFJldHVybnMgdGhlIHJpZ2h0IGFjdGlvbiBvZiBgYHNlbGZgYCBvbiB0aGUgbGlzdCBgYHhg YC4gVGhpcyBpcyB0aGUKKyAgICAgICAgIGFjdGlvbiBvbiBwb3NpdGlvbnMuCitAQCAtMTExMiw3 ICsxMTEyLDcgQEAgY2RlZiBjbGFzcyBQZXJtdXRhdGlvbkdyb3VwRWxlbWVudChNdWx0aXBsaWNh dGl2ZUdyb3VwRWxlbWVudCk6CisgICAgICAgICBhc3NlcnQgbGVuKHgpID09IHNlbGYubiwgJyVz IGFuZCAlcyBzaG91bGQgaGF2ZSB0aGUgc2FtZSBsZW5ndGgnJShzZWxmLCB4KQorICAgICAgICAg cmV0dXJuIFsgeFtzZWxmLnBlcm1baV1dIGZvciBpIGluIHJhbmdlKHNlbGYubikgXQorIAorLSAg ICBjcGRlZiBDbG9uYWJsZUludEFycmF5IF9hY3Rfb25fYXJyYXlfb25fcG9zaXRpb24oc2VsZiwg Q2xvbmFibGVJbnRBcnJheSB4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgQ2xvbmFibGVJbnRBcnJh eSBfYWN0X29uX2FycmF5X29uX3Bvc2l0aW9uKHNlbGYsIENsb25hYmxlSW50QXJyYXkgeCk6Cisg ICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm5zIHRoZSByaWdodCBhY3Rpb24gb2YgYGBzZWxm YGAgb24gdGhlIENsb25hYmxlSW50QXJyYXkKKyAgICAgICAgIGBgeGBgLiBUaGlzIGlzIHRoZSBh Y3Rpb24gb24gcG9zaXRpb25zLgorQEAgLTExMzYsNyArMTEzNiw3IEBAIGNkZWYgY2xhc3MgUGVy bXV0YXRpb25Hcm91cEVsZW1lbnQoTXVsdGlwbGljYXRpdmVHcm91cEVsZW1lbnQpOgorICAgICAg ICAgeS5zZXRfaW1tdXRhYmxlKCkKKyAgICAgICAgIHJldHVybiB5CisgCistICAgIGNwZGVmIEVU dXBsZSBfYWN0X29uX2V0dXBsZV9vbl9wb3NpdGlvbihzZWxmLCBFVHVwbGUgeCkgbm9leGNlcHQ6 CisrICAgIGNwZGVmIEVUdXBsZSBfYWN0X29uX2V0dXBsZV9vbl9wb3NpdGlvbihzZWxmLCBFVHVw bGUgeCk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHJpZ2h0IGFjdGlvbiBv ZiB0aGlzIHBlcm11dGF0aW9uIG9uIHRoZSBFVHVwbGUgYGB4YGAuCisgCitAQCAtMTE3Niw3ICsx MTc2LDcgQEAgY2RlZiBjbGFzcyBQZXJtdXRhdGlvbkdyb3VwRWxlbWVudChNdWx0aXBsaWNhdGl2 ZUdyb3VwRWxlbWVudCk6CisgICAgICAgICBxc29ydChyZXN1bHQuX2RhdGEsIHJlc3VsdC5fbm9u emVybywgMiAqIHNpemVvZihpbnQpLCBldHVwbGVfaW5kZXhfY21wKQorICAgICAgICAgcmV0dXJu IHJlc3VsdAorIAorLSAgICBjcGRlZiBfYWN0X29uXyhzZWxmLCB4LCBiaW50IHNlbGZfb25fbGVm dCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hY3Rfb25fKHNlbGYsIHgsIGJpbnQgc2VsZl9vbl9s ZWZ0KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgcmVzdWx0IG9mIHRoZSBh Y3Rpb24gb2YgYGBzZWxmYGAgb24gYGB4YGAuCisgCitAQCAtMTI5Niw3ICsxMjk2LDcgQEAgY2Rl ZiBjbGFzcyBQZXJtdXRhdGlvbkdyb3VwRWxlbWVudChNdWx0aXBsaWNhdGl2ZUdyb3VwRWxlbWVu dCk6CisgCisgICAgICAgICByZXR1cm4gY29lcmNpb25fbW9kZWwuYmluX29wKGxlZnQsIHJpZ2h0 LCBvcGVyYXRvci5tdWwpCisgCistICAgIGNwZGVmIFBlcm11dGF0aW9uR3JvdXBFbGVtZW50IF90 cmFuc3Bvc2VfbGVmdChzZWxmLCBqLCBrKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgUGVybXV0YXRp b25Hcm91cEVsZW1lbnQgX3RyYW5zcG9zZV9sZWZ0KHNlbGYsIGosIGspOgorICAgICAgICAgciIi IgorICAgICAgICAgUmV0dXJuIHRoZSBwcm9kdWN0IG9mIHRoZSB0cmFuc3Bvc2l0aW9uIGAoaiwg aylgIHdpdGggYGBzZWxmYGAuCisgCitAQCAtMTMyOSw3ICsxMzI5LDcgQEAgY2RlZiBjbGFzcyBQ ZXJtdXRhdGlvbkdyb3VwRWxlbWVudChNdWx0aXBsaWNhdGl2ZUdyb3VwRWxlbWVudCk6CisgICAg ICAgICBwcm9kLnBlcm1baiAtIDFdLCBwcm9kLnBlcm1bayAtIDFdID0gc2VsZi5wZXJtW2sgLSAx XSwgc2VsZi5wZXJtW2ogLSAxXQorICAgICAgICAgcmV0dXJuIHByb2QKKyAKKy0gICAgY3BkZWYg X211bF8obGVmdCwgX3JpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX211bF8obGVmdCwgX3Jp Z2h0KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0xMzQ2LDcg KzEzNDYsNyBAQCBjZGVmIGNsYXNzIFBlcm11dGF0aW9uR3JvdXBFbGVtZW50KE11bHRpcGxpY2F0 aXZlR3JvdXBFbGVtZW50KToKKyAgICAgICAgICAgICBwcm9kLnBlcm1baV0gPSByaWdodC5wZXJt W2xlZnQucGVybVtpXV0KKyAgICAgICAgIHJldHVybiBwcm9kCisgCistICAgIGNwZGVmIFBlcm11 dGF0aW9uR3JvdXBFbGVtZW50IF9nZW5lcmF0ZV9uZXcoc2VsZiwgbGlzdCB2KSBub2V4Y2VwdDoK KysgICAgY3BkZWYgUGVybXV0YXRpb25Hcm91cEVsZW1lbnQgX2dlbmVyYXRlX25ldyhzZWxmLCBs aXN0IHYpOgorICAgICAgICAgciIiIgorICAgICAgICAgR2VuZXJhdGUgYSBuZXcgcGVybXV0YXRp b24gZ3JvdXAgZWxlbWVudCB3aXRoIHRoZSBzYW1lIHBhcmVudAorICAgICAgICAgYXMgYGBzZWxm YGAgZnJvbSBgYHZgYC4KK0BAIC0xMzY0LDcgKzEzNjQsNyBAQCBjZGVmIGNsYXNzIFBlcm11dGF0 aW9uR3JvdXBFbGVtZW50KE11bHRpcGxpY2F0aXZlR3JvdXBFbGVtZW50KToKKyAgICAgICAgIG5l dy5fc2V0X2xpc3RfaW1hZ2VzKHYsIEZhbHNlKQorICAgICAgICAgcmV0dXJuIG5ldworIAorLSAg ICBjcGRlZiBQZXJtdXRhdGlvbkdyb3VwRWxlbWVudCBfZ2VuZXJhdGVfbmV3X0dBUChzZWxmLCBs c3RfaW4pIG5vZXhjZXB0OgorKyAgICBjcGRlZiBQZXJtdXRhdGlvbkdyb3VwRWxlbWVudCBfZ2Vu ZXJhdGVfbmV3X0dBUChzZWxmLCBsc3RfaW4pOgorICAgICAgICAgciIiIgorICAgICAgICAgR2Vu ZXJhdGUgYSBuZXcgcGVybXV0YXRpb24gZ3JvdXAgZWxlbWVudCB3aXRoIHRoZSBzYW1lIHBhcmVu dAorICAgICAgICAgYXMgYGBzZWxmYGAgZnJvbSB0aGUgR0FQIGxpc3QgYGBsc3RfaW5gYC4KK0BA IC0xNDE1LDcgKzE0MTUsNyBAQCBjZGVmIGNsYXNzIFBlcm11dGF0aW9uR3JvdXBFbGVtZW50KE11 bHRpcGxpY2F0aXZlR3JvdXBFbGVtZW50KToKKyAgICAgICAgICAgICBpbnYucGVybVtzZWxmLnBl cm1baV1dID0gaQorICAgICAgICAgcmV0dXJuIGludgorIAorLSAgICBjcGRlZiBfZ2FwX2xpc3Qo c2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9nYXBfbGlzdChzZWxmKToKKyAgICAgICAgIHIi IiIKKyAgICAgICAgIFJldHVybnMgdGhpcyBwZXJtdXRhdGlvbiBpbiBsaXN0IG5vdGF0aW9uIGNv bXBhdGlibGUgd2l0aCB0aGUKKyAgICAgICAgIEdBUCBudW1iZXJpbmcuCitAQCAtMTQ2Myw3ICsx NDYzLDcgQEAgY2RlZiBjbGFzcyBQZXJtdXRhdGlvbkdyb3VwRWxlbWVudChNdWx0aXBsaWNhdGl2 ZUdyb3VwRWxlbWVudCk6CisgICAgICAgICBmcm9tIHNhZ2UuY29tYmluYXQucGVybXV0YXRpb24g aW1wb3J0IFBlcm11dGF0aW9uCisgICAgICAgICByZXR1cm4gUGVybXV0YXRpb24oc2VsZi5fZ2Fw X2xpc3QoKSkuY3ljbGVfc3RyaW5nKCkKKyAKKy0gICAgY3BkZWYgZG9tYWluKHNlbGYpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBkb21haW4oc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBS ZXR1cm4gdGhlIGRvbWFpbiBvZiBgYHNlbGZgYC4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9n cm91cHMvc2VtaW1vbm9taWFsX3RyYW5zZm9ybWF0aW9ucy9zZW1pbW9ub21pYWxfdHJhbnNmb3Jt YXRpb24ucHhkIGIvc3JjL3NhZ2UvZ3JvdXBzL3NlbWltb25vbWlhbF90cmFuc2Zvcm1hdGlvbnMv c2VtaW1vbm9taWFsX3RyYW5zZm9ybWF0aW9uLnB4ZAoraW5kZXggMTgwODEyOWM0YjcuLmJkNGY2 MmQ0OTdmIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvZ3JvdXBzL3NlbWltb25vbWlhbF90cmFuc2Zv cm1hdGlvbnMvc2VtaW1vbm9taWFsX3RyYW5zZm9ybWF0aW9uLnB4ZAorKysrIGIvc3JjL3NhZ2Uv Z3JvdXBzL3NlbWltb25vbWlhbF90cmFuc2Zvcm1hdGlvbnMvc2VtaW1vbm9taWFsX3RyYW5zZm9y bWF0aW9uLnB4ZAorQEAgLTQsNSArNCw1IEBAIGNkZWYgY2xhc3MgU2VtaW1vbm9taWFsVHJhbnNm b3JtYXRpb24oTXVsdGlwbGljYXRpdmVHcm91cEVsZW1lbnQpOgorICAgICBjZGVmIHR1cGxlIHYK KyAgICAgY2RlZiBvYmplY3QgcGVybSwgYWxwaGEKKyAKKy0gICAgY2RlZiBfbmV3X2Moc2VsZikg bm9leGNlcHQKKy0gICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0CisrICAgIGNk ZWYgX25ld19jKHNlbGYpCisrICAgIGNwZGVmIF9tdWxfKHNlbGYsIG90aGVyKQorZGlmZiAtLWdp dCBhL3NyYy9zYWdlL2dyb3Vwcy9zZW1pbW9ub21pYWxfdHJhbnNmb3JtYXRpb25zL3NlbWltb25v bWlhbF90cmFuc2Zvcm1hdGlvbi5weXggYi9zcmMvc2FnZS9ncm91cHMvc2VtaW1vbm9taWFsX3Ry YW5zZm9ybWF0aW9ucy9zZW1pbW9ub21pYWxfdHJhbnNmb3JtYXRpb24ucHl4CitpbmRleCA1MzY4 MzQwYzk4Zi4uYmFhZWZhMTk1MGUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9ncm91cHMvc2VtaW1v bm9taWFsX3RyYW5zZm9ybWF0aW9ucy9zZW1pbW9ub21pYWxfdHJhbnNmb3JtYXRpb24ucHl4Cisr KysgYi9zcmMvc2FnZS9ncm91cHMvc2VtaW1vbm9taWFsX3RyYW5zZm9ybWF0aW9ucy9zZW1pbW9u b21pYWxfdHJhbnNmb3JtYXRpb24ucHl4CitAQCAtMTM1LDcgKzEzNSw3IEBAIGNkZWYgY2xhc3Mg U2VtaW1vbm9taWFsVHJhbnNmb3JtYXRpb24oTXVsdGlwbGljYXRpdmVHcm91cEVsZW1lbnQpOgor ICAgICAgICAgc2VsZi5wZXJtID0gcGVybQorICAgICAgICAgc2VsZi5hbHBoYSA9IGFscGhhCisg CistICAgIGNkZWYgX25ld19jKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9uZXdfYyhzZWxm KToKKyAgICAgICAgICMgQ3JlYXRlIGEgY29weSBvZiBzZWxmLgorICAgICAgICAgY2RlZiBTZW1p bW9ub21pYWxUcmFuc2Zvcm1hdGlvbiB4CisgICAgICAgICB4ID0gU2VtaW1vbm9taWFsVHJhbnNm b3JtYXRpb24uX19uZXdfXyhTZW1pbW9ub21pYWxUcmFuc2Zvcm1hdGlvbikKK0BAIC0xNzMsNyAr MTczLDcgQEAgY2RlZiBjbGFzcyBTZW1pbW9ub21pYWxUcmFuc2Zvcm1hdGlvbihNdWx0aXBsaWNh dGl2ZUdyb3VwRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBoYXNoKHNl bGYudikgKyBoYXNoKHNlbGYucGVybSkgKyBoYXNoKHNlbGYuZ2V0X2F1dG9tKCkpCisgCistICAg IGNwZGVmIF9tdWxfKGxlZnQsIF9yaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9tdWxfKGxl ZnQsIF9yaWdodCk6CisgICAgICAgICByIiIiCisgICAgICAgICBNdWx0aXBsaWNhdGlvbiBvZiBl bGVtZW50cy4KKyAKK0BAIC0yNDcsNyArMjQ3LDcgQEAgY2RlZiBjbGFzcyBTZW1pbW9ub21pYWxU cmFuc2Zvcm1hdGlvbihNdWx0aXBsaWNhdGl2ZUdyb3VwRWxlbWVudCk6CisgICAgICAgICByZXR1 cm4gIiglczsgJXMsICVzKSIlKHNlbGYudiwgc2VsZi5wZXJtLmN5Y2xlX3N0cmluZygpLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmdldF9hdXRvbSgpKQorIAorLSAgICBj cGRlZiBfcmljaGNtcF8obGVmdCwgX3JpZ2h0LCBpbnQgb3ApIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBfcmljaGNtcF8obGVmdCwgX3JpZ2h0LCBpbnQgb3ApOgorICAgICAgICAgIiIiCisgICAgICAg ICBDb21wYXJlIGdyb3VwIGVsZW1lbnRzIGBgc2VsZmBgIGFuZCBgYHJpZ2h0YGAuCisgCitkaWZm IC0tZ2l0IGEvc3JjL3NhZ2UvaW50ZXJhY3RzL2xpYnJhcnlfY3l0aG9uLnB5eCBiL3NyYy9zYWdl L2ludGVyYWN0cy9saWJyYXJ5X2N5dGhvbi5weXgKK2luZGV4IGEyYjM2NDg5MTY1Li4zN2U3NWEx NmU3ZCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2ludGVyYWN0cy9saWJyYXJ5X2N5dGhvbi5weXgK KysrKyBiL3NyYy9zYWdlL2ludGVyYWN0cy9saWJyYXJ5X2N5dGhvbi5weXgKK0BAIC0xNiw3ICsx Niw3IEBAIEFVVEhPUlM6CisgIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgCisgCistY3BkZWYganVs aWEoZmZfaiwgeiwgaW50IGl0ZXJhdGlvbnMpIG5vZXhjZXB0OgorK2NwZGVmIGp1bGlhKGZmX2os IHosIGludCBpdGVyYXRpb25zKToKKyAgICAgIiIiCisgICAgIEhlbHBlciBmdW5jdGlvbiBmb3Ig dGhlIEp1bGlhIEZyYWN0YWwgaW50ZXJhY3QgZXhhbXBsZS4KKyAKK0BAIC00NCw3ICs0NCw3IEBA IGNwZGVmIGp1bGlhKGZmX2osIHosIGludCBpdGVyYXRpb25zKSBub2V4Y2VwdDoKKyAgICAgcmV0 dXJuIHoKKyAKKyAKKy1jcGRlZiBtYW5kZWwoZmZfbSwgeiwgaW50IGl0ZXJhdGlvbnMpIG5vZXhj ZXB0OgorK2NwZGVmIG1hbmRlbChmZl9tLCB6LCBpbnQgaXRlcmF0aW9ucyk6CisgICAgICIiIgor ICAgICBIZWxwZXIgZnVuY3Rpb24gZm9yIHRoZSBNYW5kZWxicm90IEZyYWN0YWwgaW50ZXJhY3Qg ZXhhbXBsZS4KKyAKK0BAIC03Myw3ICs3Myw3IEBAIGNwZGVmIG1hbmRlbChmZl9tLCB6LCBpbnQg aXRlcmF0aW9ucykgbm9leGNlcHQ6CisgICAgIHJldHVybiB6CisgCisgCistY3BkZWYgY2VsbHVs YXIocnVsZSwgaW50IE4pIG5vZXhjZXB0OgorK2NwZGVmIGNlbGx1bGFyKHJ1bGUsIGludCBOKToK KyAgICAgIiIiCisgICAgIEN5dGhvbml6ZWQgaGVscGVyIGZ1bmN0aW9uIGZvciB0aGUgY2VsbHVs YXJfYXV0b21hdGEgZnJhY3RhbC4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9sZnVuY3Rpb25z L3plcm9fc3Vtcy5weXggYi9zcmMvc2FnZS9sZnVuY3Rpb25zL3plcm9fc3Vtcy5weXgKK2luZGV4 IDQ2Zjg0ZDZmMTJkLi5jNWE0MjViNDQyOSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2xmdW5jdGlv bnMvemVyb19zdW1zLnB5eAorKysrIGIvc3JjL3NhZ2UvbGZ1bmN0aW9ucy96ZXJvX3N1bXMucHl4 CitAQCAtMTEwOSw3ICsxMTA5LDcgQEAgY2RlZiBjbGFzcyBMRnVuY3Rpb25aZXJvU3VtX0VsbGlw dGljQ3VydmUoTEZ1bmN0aW9uWmVyb1N1bV9hYnN0cmFjdCk6CisgICAgICAgICBsb2dwID0gY19s b2cocCkKKyAgICAgICAgIHJldHVybiAtKHQgLSBsb2dwKSAqIChsb2dwIC8gcCkgKiBhcAorIAor LSAgICBjcGRlZiBfemVyb3N1bV9zaW5jc3F1YXJlZF9mYXN0KHNlbGYsIERlbHRhPTEsIGJhZF9w cmltZXM9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF96ZXJvc3VtX3NpbmNzcXVhcmVkX2Zh c3Qoc2VsZiwgRGVsdGE9MSwgYmFkX3ByaW1lcz1Ob25lKToKKyAgICAgICAgIHIiIiIKKyAgICAg ICAgIEEgZmFzdGVyIGN5dGhvbml6ZWQgaW1wbGVtZW50YXRpb24gb2Ygc2VsZi5femVyb3N1bV9z aW5jc3F1YXJlZCgpLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvZWNsLnB5eCBiL3Ny Yy9zYWdlL2xpYnMvZWNsLnB5eAoraW5kZXggZjI2NjdkOWNlY2EuLjFjYzM4YTNhYjNhIDEwMDY0 NAorLS0tIGEvc3JjL3NhZ2UvbGlicy9lY2wucHl4CisrKysgYi9zcmMvc2FnZS9saWJzL2VjbC5w eXgKK0BAIC0yODksNyArMjg5LDcgQEAgZGVmIGluaXRfZWNsKCk6CisgICAgIGVjbF9oYXNfYm9v dGVkID0gMQorIAorIAorLWNkZWYgZWNsX3N0cmluZ190b19weXRob24oY2xfb2JqZWN0IHMpIG5v ZXhjZXB0OgorK2NkZWYgZWNsX3N0cmluZ190b19weXRob24oY2xfb2JqZWN0IHMpOgorICAgICBp ZiBiaW50X2Jhc2Vfc3RyaW5nX3Aocyk6CisgICAgICAgICByZXR1cm4gY2hhcl90b19zdHIoZWNs X2Jhc2Vfc3RyaW5nX3BvaW50ZXJfc2FmZShzKSkKKyAgICAgZWxzZToKK0BAIC00OTIsNyArNDky LDcgQEAgY2RlZiBjbF9vYmplY3QgcHl0aG9uX3RvX2VjbChweW9iaiwgYmludCByZWFkX3N0cmlu Z3MpIGV4Y2VwdCBOVUxMOgorICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJVbmltcGxlbWVudGVk IHR5cGUgZm9yIHB5dGhvbl90b19lY2wiKQorIAorIAorLWNkZWYgZWNsX3RvX3B5dGhvbihjbF9v YmplY3Qgbykgbm9leGNlcHQ6CisrY2RlZiBlY2xfdG9fcHl0aG9uKGNsX29iamVjdCBvKToKKyAg ICAgY2RlZiBjbF9vYmplY3QgcworICAgICBjZGVmIEludGVnZXIgTgorICAgICAjIGNvbnZlcnNp b25zIGZyb20gYW4gZWNsIG9iamVjdCB0byBhIHB5dGhvbiBvYmplY3QuCitAQCAtMTM0OCwxMyAr MTM0OCwxMyBAQCBjZGVmIGNsYXNzIEVjbExpc3RJdGVyYXRvcjoKKyAgICAgICAgIHJldHVybiBy CisgCisgIyBpbnB1dDogYSBjbC1vYmplY3QuIE91dHB1dDogRWNsT2JqZWN0IHdyYXBwaW5nIHRo YXQuCistY2RlZiBFY2xPYmplY3QgZWNsX3dyYXAoY2xfb2JqZWN0IG8pIG5vZXhjZXB0OgorK2Nk ZWYgRWNsT2JqZWN0IGVjbF93cmFwKGNsX29iamVjdCBvKToKKyAgICAgY2RlZiBFY2xPYmplY3Qg b2JqID0gRWNsT2JqZWN0Ll9fbmV3X18oRWNsT2JqZWN0KQorICAgICBvYmouc2V0X29iaihvKQor ICAgICByZXR1cm4gb2JqCisgCisgIyBjb252ZW5pZW5jZSByb3V0aW5lIHRvIG1vcmUgZWFzaWx5 IGV2YWx1YXRlIHN0cmluZ3MKKy1jcGRlZiBFY2xPYmplY3QgZWNsX2V2YWwoc3RyIHMpIG5vZXhj ZXB0OgorK2NwZGVmIEVjbE9iamVjdCBlY2xfZXZhbChzdHIgcyk6CisgICAgIHIiIiIKKyAgICAg UmVhZCBhbmQgZXZhbHVhdGUgc3RyaW5nIGluIExpc3AgYW5kIHJldHVybiB0aGUgcmVzdWx0Cisg CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbGlicy9lY2xpYi9tYXQucHhkIGIvc3JjL3NhZ2UvbGli cy9lY2xpYi9tYXQucHhkCitpbmRleCBkZThkOWU4MWFkMy4uNTA5YmQ0ZDBjZTggMTAwNjQ0Cist LS0gYS9zcmMvc2FnZS9saWJzL2VjbGliL21hdC5weGQKKysrKyBiL3NyYy9zYWdlL2xpYnMvZWNs aWIvbWF0LnB4ZAorQEAgLTQsNCArNCw0IEBAIGNkZWYgY2xhc3MgTWF0cml4OgorICAgICBjZGVm IG1hdCogTQorIAorIGNkZWYgY2xhc3MgTWF0cml4RmFjdG9yeToKKy0gICAgY2RlZiBuZXdfbWF0 cml4KHNlbGYsIG1hdCBNKSBub2V4Y2VwdAorKyAgICBjZGVmIG5ld19tYXRyaXgoc2VsZiwgbWF0 IE0pCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbGlicy9lY2xpYi9tYXQucHl4IGIvc3JjL3NhZ2Uv bGlicy9lY2xpYi9tYXQucHl4CitpbmRleCBiODNjZDc2YjVhNS4uYjRiNjA3ZWYwODMgMTAwNjQ0 CistLS0gYS9zcmMvc2FnZS9saWJzL2VjbGliL21hdC5weXgKKysrKyBiL3NyYy9zYWdlL2xpYnMv ZWNsaWIvbWF0LnB5eAorQEAgLTI0MCwxMSArMjQwLDExIEBAIGNkZWYgY2xhc3MgTWF0cml4Ogor IAorIAorIGNkZWYgY2xhc3MgTWF0cml4RmFjdG9yeToKKy0gICAgY2RlZiBuZXdfbWF0cml4KHNl bGYsIG1hdCBNKSBub2V4Y2VwdDoKKysgICAgY2RlZiBuZXdfbWF0cml4KHNlbGYsIG1hdCBNKToK KyAgICAgICAgIHJldHVybiBuZXdfTWF0cml4KE0pCisgCisgCistY2RlZiBNYXRyaXggbmV3X01h dHJpeChtYXQgTSkgbm9leGNlcHQ6CisrY2RlZiBNYXRyaXggbmV3X01hdHJpeChtYXQgTSk6Cisg ICAgIGNkZWYgTWF0cml4IEEgPSBNYXRyaXgoKQorICAgICBBLk0gPSBuZXcgbWF0KE0pCisgICAg IHJldHVybiBBCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbGlicy9lY2xpYi9td3JhbmsucHl4IGIv c3JjL3NhZ2UvbGlicy9lY2xpYi9td3JhbmsucHl4CitpbmRleCA0OWIyMGEzM2MwZS4uMTEyMTlk ZGVmYTYgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL2VjbGliL213cmFuay5weXgKKysrKyBi L3NyYy9zYWdlL2xpYnMvZWNsaWIvbXdyYW5rLnB5eAorQEAgLTY4LDcgKzY4LDcgQEAgY2RlZiBl eHRlcm4gZnJvbSAid3JhcC5jcHAiOgorICAgICBsb25nIHR3b19kZXNjZW50X2dldF9zZWxtZXJf cmFuayh0d29fZGVzY2VudCogdCkKKyAgICAgdm9pZCB0d29fZGVzY2VudF9zYXR1cmF0ZSh0d29f ZGVzY2VudCogdCwgbG9uZyBzYXRfYmQsIGxvbmcgc2F0X2xvd19iZCkKKyAKKy1jZGVmIG9iamVj dCBzdHJpbmdfc2lnb2ZmKGNoYXIqIHMpIG5vZXhjZXB0OgorK2NkZWYgb2JqZWN0IHN0cmluZ19z aWdvZmYoY2hhciogcyk6CisgICAgIHNpZ19vZmYoKQorICAgICAjIE1ha2VzIGEgcHl0aG9uIHN0 cmluZyBhbmQgZGVsZXRlcyB3aGF0IGlzIHBvaW50ZWQgdG8gYnkgcy4KKyAgICAgdCA9IGNoYXJf dG9fc3RyKHMpCitAQCAtMjM4LDcgKzIzOCw3IEBAIGNkZWYgY2xhc3MgX2JpZ2ludDoKKyAgICAg ICAgIHJldHVybiBzdHJpbmdfc2lnb2ZmKGJpZ2ludF90b19zdHIoc2VsZi54KSkKKyAKKyAKKy1j ZGVmIG1ha2VfYmlnaW50KGJpZ2ludCogeCkgbm9leGNlcHQ6CisrY2RlZiBtYWtlX2JpZ2ludChi aWdpbnQqIHgpOgorICAgICBjZGVmIF9iaWdpbnQgeQorICAgICBzaWdfb2ZmKCkKKyAgICAgeSA9 IF9iaWdpbnQuX19uZXdfXyhfYmlnaW50KQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvZmxp bnQvZm1wcV9wb2x5X3NhZ2UucHhkIGIvc3JjL3NhZ2UvbGlicy9mbGludC9mbXBxX3BvbHlfc2Fn ZS5weGQKK2luZGV4IDY2MTYyMzc0NWI0Li43ZWU1ZTU4YzM1NiAxMDA2NDQKKy0tLSBhL3NyYy9z YWdlL2xpYnMvZmxpbnQvZm1wcV9wb2x5X3NhZ2UucHhkCisrKysgYi9zcmMvc2FnZS9saWJzL2Zs aW50L2ZtcHFfcG9seV9zYWdlLnB4ZAorQEAgLTE4LDcgKzE4LDcgQEAgZnJvbSBzYWdlLmxpYnMu ZmxpbnQuZm1wcV9wb2x5IGNpbXBvcnQgZm1wcV9wb2x5X251bXJlZiwgZm1wcV9wb2x5X2xlbmd0 aAorIAorIAorICMgc2luY2UgdGhlIGZtcHFfcG9seSBoZWFkZXIgc2VlbXMgdG8gYmUgbGFja2lu ZyB0aGlzIGlubGluZSBmdW5jdGlvbgorLWNkZWYgaW5saW5lIHNhZ2VfZm1wcV9wb2x5X21heF9s aW1icyhjb25zdCBmbXBxX3BvbHlfdCBwb2x5KSBub2V4Y2VwdDoKKytjZGVmIGlubGluZSBzYWdl X2ZtcHFfcG9seV9tYXhfbGltYnMoY29uc3QgZm1wcV9wb2x5X3QgcG9seSk6CisgICAgIHJldHVy biBfZm1wel92ZWNfbWF4X2xpbWJzKGZtcHFfcG9seV9udW1yZWYocG9seSksIGZtcHFfcG9seV9s ZW5ndGgocG9seSkpCisgCisgIyBmdW5jdGlvbnMgcmVtb3ZlZCBmcm9tIGZsaW50IGJ1dCBzdGls bCBuZWVkZWQgaW4gc2FnZQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvZmxpbnQvZm1wel9m YWN0b3Jfc2FnZS5weGQgYi9zcmMvc2FnZS9saWJzL2ZsaW50L2ZtcHpfZmFjdG9yX3NhZ2UucHhk CitpbmRleCBlOTE5MzEwMDVjNy4uZjI5MTU1YjQ2ZTUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9s aWJzL2ZsaW50L2ZtcHpfZmFjdG9yX3NhZ2UucHhkCisrKysgYi9zcmMvc2FnZS9saWJzL2ZsaW50 L2ZtcHpfZmFjdG9yX3NhZ2UucHhkCitAQCAtMSwzICsxLDMgQEAKKyBmcm9tIC50eXBlcyBjaW1w b3J0ICoKKyAKKy1jZGVmIGZtcHpfZmFjdG9yX3RvX3BhaXJsaXN0KGNvbnN0IGZtcHpfZmFjdG9y X3QgZmFjdG9ycykgbm9leGNlcHQKKytjZGVmIGZtcHpfZmFjdG9yX3RvX3BhaXJsaXN0KGNvbnN0 IGZtcHpfZmFjdG9yX3QgZmFjdG9ycykKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL2ZsaW50 L2ZtcHpfZmFjdG9yX3NhZ2UucHl4IGIvc3JjL3NhZ2UvbGlicy9mbGludC9mbXB6X2ZhY3Rvcl9z YWdlLnB5eAoraW5kZXggYWViOWM3NmY5ZTMuLjMzMGJhM2Q0ZDRlIDEwMDY0NAorLS0tIGEvc3Jj L3NhZ2UvbGlicy9mbGludC9mbXB6X2ZhY3Rvcl9zYWdlLnB5eAorKysrIGIvc3JjL3NhZ2UvbGli cy9mbGludC9mbXB6X2ZhY3Rvcl9zYWdlLnB5eAorQEAgLTIsNyArMiw3IEBAIGZyb20gY3lzaWdu YWxzLnNpZ25hbHMgY2ltcG9ydCBzaWdfY2hlY2sKKyBmcm9tIHNhZ2UubGlicy5mbGludC5mbXB6 IGNpbXBvcnQgZm1wel9nZXRfbXB6CisgZnJvbSBzYWdlLnJpbmdzLmludGVnZXIgY2ltcG9ydCBJ bnRlZ2VyCisgCistY2RlZiBmbXB6X2ZhY3Rvcl90b19wYWlybGlzdChjb25zdCBmbXB6X2ZhY3Rv cl90IGZhY3RvcnMpIG5vZXhjZXB0OgorK2NkZWYgZm1wel9mYWN0b3JfdG9fcGFpcmxpc3QoY29u c3QgZm1wel9mYWN0b3JfdCBmYWN0b3JzKToKKyAgICAgciIiIgorICAgICBIZWxwZXIgZnVuY3Rp b24gdGhhdCBjb252ZXJ0cyBhIGZtcHpfZmFjdG9yX3QgaW50byBhIGxpc3Qgb2YKKyAgICAgKGZh Y3RvciwgZXhwb25lbnQpIHBhaXJzLiBUaGUgZmFjdG9ycyBhcmUgSW50ZWdlcnMsIGFuZCB0aGUK K2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL2ZsaW50L25tb2RfcG9seV9saW5rYWdlLnB4aSBi L3NyYy9zYWdlL2xpYnMvZmxpbnQvbm1vZF9wb2x5X2xpbmthZ2UucHhpCitpbmRleCA5ZmIxNjRi OGRkZi4uYjBmNjdkZmI5NDUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL2ZsaW50L25tb2Rf cG9seV9saW5rYWdlLnB4aQorKysrIGIvc3JjL3NhZ2UvbGlicy9mbGludC9ubW9kX3BvbHlfbGlu a2FnZS5weGkKK0BAIC02OCw3ICs2OCw3IEBAIGNkZWYgaW5saW5lIGludCBjZWxlbWVudF9nZW4o bm1vZF9wb2x5X3QgZSwgbG9uZyBpLCB1bnNpZ25lZCBsb25nIG4pIGV4Y2VwdCAtMjoKKyAgICAg bm1vZF9wb2x5X3plcm8oZSkKKyAgICAgbm1vZF9wb2x5X3NldF9jb2VmZl91aShlLCAxLCAxKQor IAorLWNkZWYgb2JqZWN0IGNlbGVtZW50X3JlcHIobm1vZF9wb2x5X3QgZSwgdW5zaWduZWQgbG9u ZyBuKSBub2V4Y2VwdDoKKytjZGVmIG9iamVjdCBjZWxlbWVudF9yZXByKG5tb2RfcG9seV90IGUs IHVuc2lnbmVkIGxvbmcgbik6CisgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKyAKKyBj ZGVmIGlubGluZSBpbnQgY2VsZW1lbnRfc2V0KG5tb2RfcG9seV90IHJlcywgbm1vZF9wb2x5X3Qg YSwgdW5zaWduZWQgbG9uZyBuKSBleGNlcHQgLTI6CitAQCAtNjE5LDcgKzYxOSw3IEBAIGNkZWYg aW5saW5lIGludCBjZWxlbWVudF94Z2NkKG5tb2RfcG9seV90IHJlcywgbm1vZF9wb2x5X3Qgcywg bm1vZF9wb2x5X3QgdCwgbm1vCisgICAgIG5tb2RfcG9seV94Z2NkKHJlcywgcywgdCwgYSwgYikK KyAKKyAKKy1jZGVmIGZhY3Rvcl9oZWxwZXIoUG9seW5vbWlhbF96bW9kX2ZsaW50IHBvbHksIGJp bnQgc3F1YXJlZnJlZT1GYWxzZSkgbm9leGNlcHQ6CisrY2RlZiBmYWN0b3JfaGVscGVyKFBvbHlu b21pYWxfem1vZF9mbGludCBwb2x5LCBiaW50IHNxdWFyZWZyZWU9RmFsc2UpOgorICAgICAiIiIK KyAgICAgRVhBTVBMRVM6OgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvZ2FwL2VsZW1l bnQucHhkIGIvc3JjL3NhZ2UvbGlicy9nYXAvZWxlbWVudC5weGQKK2luZGV4IDMyOTAwMWU3MmY1 Li5iYTQwMjhjZDkxYyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2xpYnMvZ2FwL2VsZW1lbnQucHhk CisrKysgYi9zcmMvc2FnZS9saWJzL2dhcC9lbGVtZW50LnB4ZAorQEAgLTE4LDE2ICsxOCwxNiBA QCBjZGVmIE9iaiBtYWtlX2dhcF9yZWNvcmQoc2FnZV9kaWN0KSBleGNlcHQgTlVMTAorIGNkZWYg T2JqIG1ha2VfZ2FwX2ludGVnZXIoc2FnZV9pbnQpIGV4Y2VwdCBOVUxMCisgY2RlZiBPYmogbWFr ZV9nYXBfc3RyaW5nKHNhZ2Vfc3RyaW5nKSBleGNlcHQgTlVMTAorIAorLWNkZWYgR2FwRWxlbWVu dCBtYWtlX2FueV9nYXBfZWxlbWVudChwYXJlbnQsIE9iaiBvYmopIG5vZXhjZXB0CistY2RlZiBH YXBFbGVtZW50IG1ha2VfR2FwRWxlbWVudChwYXJlbnQsIE9iaiBvYmopIG5vZXhjZXB0CistY2Rl ZiBHYXBFbGVtZW50X0xpc3QgbWFrZV9HYXBFbGVtZW50X0xpc3QocGFyZW50LCBPYmogb2JqKSBu b2V4Y2VwdAorLWNkZWYgR2FwRWxlbWVudF9SZWNvcmQgbWFrZV9HYXBFbGVtZW50X1JlY29yZChw YXJlbnQsIE9iaiBvYmopIG5vZXhjZXB0CistY2RlZiBHYXBFbGVtZW50X0ludGVnZXIgbWFrZV9H YXBFbGVtZW50X0ludGVnZXIocGFyZW50LCBPYmogb2JqKSBub2V4Y2VwdAorLWNkZWYgR2FwRWxl bWVudF9SYXRpb25hbCBtYWtlX0dhcEVsZW1lbnRfUmF0aW9uYWwocGFyZW50LCBPYmogb2JqKSBu b2V4Y2VwdAorLWNkZWYgR2FwRWxlbWVudF9TdHJpbmcgbWFrZV9HYXBFbGVtZW50X1N0cmluZyhw YXJlbnQsIE9iaiBvYmopIG5vZXhjZXB0CistY2RlZiBHYXBFbGVtZW50X0Jvb2xlYW4gbWFrZV9H YXBFbGVtZW50X0Jvb2xlYW4ocGFyZW50LCBPYmogb2JqKSBub2V4Y2VwdAorLWNkZWYgR2FwRWxl bWVudF9GdW5jdGlvbiBtYWtlX0dhcEVsZW1lbnRfRnVuY3Rpb24ocGFyZW50LCBPYmogb2JqKSBu b2V4Y2VwdAorLWNkZWYgR2FwRWxlbWVudF9QZXJtdXRhdGlvbiBtYWtlX0dhcEVsZW1lbnRfUGVy bXV0YXRpb24ocGFyZW50LCBPYmogb2JqKSBub2V4Y2VwdAorK2NkZWYgR2FwRWxlbWVudCBtYWtl X2FueV9nYXBfZWxlbWVudChwYXJlbnQsIE9iaiBvYmopCisrY2RlZiBHYXBFbGVtZW50IG1ha2Vf R2FwRWxlbWVudChwYXJlbnQsIE9iaiBvYmopCisrY2RlZiBHYXBFbGVtZW50X0xpc3QgbWFrZV9H YXBFbGVtZW50X0xpc3QocGFyZW50LCBPYmogb2JqKQorK2NkZWYgR2FwRWxlbWVudF9SZWNvcmQg bWFrZV9HYXBFbGVtZW50X1JlY29yZChwYXJlbnQsIE9iaiBvYmopCisrY2RlZiBHYXBFbGVtZW50 X0ludGVnZXIgbWFrZV9HYXBFbGVtZW50X0ludGVnZXIocGFyZW50LCBPYmogb2JqKQorK2NkZWYg R2FwRWxlbWVudF9SYXRpb25hbCBtYWtlX0dhcEVsZW1lbnRfUmF0aW9uYWwocGFyZW50LCBPYmog b2JqKQorK2NkZWYgR2FwRWxlbWVudF9TdHJpbmcgbWFrZV9HYXBFbGVtZW50X1N0cmluZyhwYXJl bnQsIE9iaiBvYmopCisrY2RlZiBHYXBFbGVtZW50X0Jvb2xlYW4gbWFrZV9HYXBFbGVtZW50X0Jv b2xlYW4ocGFyZW50LCBPYmogb2JqKQorK2NkZWYgR2FwRWxlbWVudF9GdW5jdGlvbiBtYWtlX0dh cEVsZW1lbnRfRnVuY3Rpb24ocGFyZW50LCBPYmogb2JqKQorK2NkZWYgR2FwRWxlbWVudF9QZXJt dXRhdGlvbiBtYWtlX0dhcEVsZW1lbnRfUGVybXV0YXRpb24ocGFyZW50LCBPYmogb2JqKQorIAor IGNkZWYgY2hhciAqY2FwdHVyZV9zdGRvdXQoT2JqLCBPYmopIG5vZXhjZXB0CisgY2RlZiBjaGFy ICpnYXBfZWxlbWVudF9zdHIoT2JqKSBub2V4Y2VwdAorQEAgLTQzLDE4ICs0MywxOCBAQCBjZGVm IGNsYXNzIEdhcEVsZW1lbnQoUmluZ0VsZW1lbnQpOgorICAgICBjZGVmIGJpbnQgX2NvbXBhcmVf YnlfaWQKKyAgICAgY2RlZiBiaW50IF9jb21wYXJlX2VxdWFsKHNlbGYsIEVsZW1lbnQgb3RoZXIp IGV4Y2VwdCAtMgorICAgICBjZGVmIGJpbnQgX2NvbXBhcmVfbGVzcyhzZWxmLCBFbGVtZW50IG90 aGVyKSBleGNlcHQgLTIKKy0gICAgY3BkZWYgX3NldF9jb21wYXJlX2J5X2lkKHNlbGYpIG5vZXhj ZXB0CistICAgIGNwZGVmIF9hc3NlcnRfY29tcGFyZV9ieV9pZChzZWxmKSBub2V4Y2VwdAorKyAg ICBjcGRlZiBfc2V0X2NvbXBhcmVfYnlfaWQoc2VsZikKKysgICAgY3BkZWYgX2Fzc2VydF9jb21w YXJlX2J5X2lkKHNlbGYpCisgCistICAgIGNkZWYgX2luaXRpYWxpemUoc2VsZiwgcGFyZW50LCBP Ymogb2JqKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfdHlwZV9udW1iZXIoc2VsZikgbm9leGNlcHQK Ky0gICAgY3BkZWYgaXNfYm9vbChzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfYWRkXyhzZWxm LCBvdGhlcikgbm9leGNlcHQKKy0gICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0 CistICAgIGNwZGVmIF9tb2RfKHNlbGYsIG90aGVyKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfcG93 XyhzZWxmLCBvdGhlcikgbm9leGNlcHQKKysgICAgY2RlZiBfaW5pdGlhbGl6ZShzZWxmLCBwYXJl bnQsIE9iaiBvYmopCisrICAgIGNwZGVmIF90eXBlX251bWJlcihzZWxmKQorKyAgICBjcGRlZiBp c19ib29sKHNlbGYpCisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIG90aGVyKQorKyAgICBjcGRlZiBf bXVsXyhzZWxmLCBvdGhlcikKKysgICAgY3BkZWYgX21vZF8oc2VsZiwgb3RoZXIpCisrICAgIGNw ZGVmIF9wb3dfKHNlbGYsIG90aGVyKQorIAorLSAgICBjcGRlZiBHYXBFbGVtZW50IGRlZXBjb3B5 KHNlbGYsIGJpbnQgbXV0KSBub2V4Y2VwdAorKyAgICBjcGRlZiBHYXBFbGVtZW50IGRlZXBjb3B5 KHNlbGYsIGJpbnQgbXV0KQorIAorIGNkZWYgY2xhc3MgR2FwRWxlbWVudF9JbnRlZ2VyKEdhcEVs ZW1lbnQpOgorICAgICBwYXNzCitAQCAtNjMsMTAgKzYzLDEwIEBAIGNkZWYgY2xhc3MgR2FwRWxl bWVudF9SYXRpb25hbChHYXBFbGVtZW50KToKKyAgICAgcGFzcworIAorIGNkZWYgY2xhc3MgR2Fw RWxlbWVudF9JbnRlZ2VyTW9kKEdhcEVsZW1lbnQpOgorLSAgICBjcGRlZiBHYXBFbGVtZW50X0lu dGVnZXIgbGlmdChzZWxmKSBub2V4Y2VwdAorKyAgICBjcGRlZiBHYXBFbGVtZW50X0ludGVnZXIg bGlmdChzZWxmKQorIAorIGNkZWYgY2xhc3MgR2FwRWxlbWVudF9GaW5pdGVGaWVsZChHYXBFbGVt ZW50KToKKy0gICAgY3BkZWYgR2FwRWxlbWVudF9JbnRlZ2VyIGxpZnQoc2VsZikgbm9leGNlcHQK KysgICAgY3BkZWYgR2FwRWxlbWVudF9JbnRlZ2VyIGxpZnQoc2VsZikKKyAKKyBjZGVmIGNsYXNz IEdhcEVsZW1lbnRfQ3ljbG90b21pYyhHYXBFbGVtZW50KToKKyAgICAgcGFzcworZGlmZiAtLWdp dCBhL3NyYy9zYWdlL2xpYnMvZ2FwL2VsZW1lbnQucHl4IGIvc3JjL3NhZ2UvbGlicy9nYXAvZWxl bWVudC5weXgKK2luZGV4IGIyYjA2ODFjMDUyLi5mMTQ4Mjk5N2I4NiAxMDA2NDQKKy0tLSBhL3Ny Yy9zYWdlL2xpYnMvZ2FwL2VsZW1lbnQucHl4CisrKysgYi9zcmMvc2FnZS9saWJzL2dhcC9lbGVt ZW50LnB5eAorQEAgLTI2Niw3ICsyNjYsNyBAQCBjZGVmIE9iaiBtYWtlX2dhcF9zdHJpbmcoc2Fn ZV9zdHJpbmcpIGV4Y2VwdCBOVUxMOgorICMjIyBnZW5lcmljIGNvbnN0cnVjdGlvbiBvZiBHYXBF bGVtZW50cyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCisgCistY2RlZiBHYXBFbGVtZW50IG1ha2VfYW55X2dhcF9lbGVtZW50KHBhcmVu dCwgT2JqIG9iaikgbm9leGNlcHQ6CisrY2RlZiBHYXBFbGVtZW50IG1ha2VfYW55X2dhcF9lbGVt ZW50KHBhcmVudCwgT2JqIG9iaik6CisgICAgICIiIgorICAgICBSZXR1cm4gdGhlIEdBUCBlbGVt ZW50IHdyYXBwZXIgb2YgYGBvYmpgYAorIAorQEAgLTM1NCw3ICszNTQsNyBAQCBjZGVmIEdhcEVs ZW1lbnQgbWFrZV9hbnlfZ2FwX2VsZW1lbnQocGFyZW50LCBPYmogb2JqKSBub2V4Y2VwdDoKKyAj IyMgR2FwRWxlbWVudCAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCisgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIAorLWNkZWYgR2FwRWxl bWVudCBtYWtlX0dhcEVsZW1lbnQocGFyZW50LCBPYmogb2JqKSBub2V4Y2VwdDoKKytjZGVmIEdh cEVsZW1lbnQgbWFrZV9HYXBFbGVtZW50KHBhcmVudCwgT2JqIG9iaik6CisgICAgIHIiIiIKKyAg ICAgVHVybiBhIEdhcCBDIG9iamVjdCAob2YgdHlwZSBgYE9iamBgKSBpbnRvIGEgQ3l0aG9uIGBg R2FwRWxlbWVudGBgLgorIAorQEAgLTM4Nyw3ICszODcsNyBAQCBjZGVmIEdhcEVsZW1lbnQgbWFr ZV9HYXBFbGVtZW50KHBhcmVudCwgT2JqIG9iaikgbm9leGNlcHQ6CisgICAgIHJldHVybiByCisg CisgCistY3BkZWYgX2Zyb21fc2FnZShlbGVtKSBub2V4Y2VwdDoKKytjcGRlZiBfZnJvbV9zYWdl KGVsZW0pOgorICAgICAiIiIKKyAgICAgQ3VycmVudGx5IGp1c3QgdXNlZCBmb3IgdW5waWNrbGlu ZzsgZXF1aXZhbGVudCB0byBjYWxsaW5nIGBgbGliZ2FwKGVsZW0pYGAKKyAgICAgdG8gY29udmVy dCBhIFNhZ2Ugb2JqZWN0IHRvIGEgYEdhcEVsZW1lbnRgIHdoZXJlIHBvc3NpYmxlLgorQEAgLTQ2 MCw3ICs0NjAsNyBAQCBjZGVmIGNsYXNzIEdhcEVsZW1lbnQoUmluZ0VsZW1lbnQpOgorICAgICAg ICAgIiIiCisgICAgICAgICByYWlzZSBUeXBlRXJyb3IoJ3RoaXMgY2xhc3MgY2Fubm90IGJlIGlu c3RhbnRpYXRlZCBmcm9tIFB5dGhvbicpCisgCistICAgIGNkZWYgX2luaXRpYWxpemUoc2VsZiwg cGFyZW50LCBPYmogb2JqKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfaW5pdGlhbGl6ZShzZWxmLCBw YXJlbnQsIE9iaiBvYmopOgorICAgICAgICAgciIiIgorICAgICAgICAgSW5pdGlhbGl6ZSB0aGUg R2FwRWxlbWVudC4KKyAKK0BAIC01NDQsNyArNTQ0LDcgQEAgY2RlZiBjbGFzcyBHYXBFbGVtZW50 KFJpbmdFbGVtZW50KToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYK KyAKKy0gICAgY3BkZWYgR2FwRWxlbWVudCBkZWVwY29weShzZWxmLCBiaW50IG11dCkgbm9leGNl cHQ6CisrICAgIGNwZGVmIEdhcEVsZW1lbnQgZGVlcGNvcHkoc2VsZiwgYmludCBtdXQpOgorICAg ICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIGEgZGVlcGNvcHkgb2YgdGhpcyBHYXAgb2JqZWN0 CisgCitAQCAtNjQ3LDcgKzY0Nyw3IEBAIGNkZWYgY2xhc3MgR2FwRWxlbWVudChSaW5nRWxlbWVu dCk6CisgICAgICAgICBHQVBfSU4gPSBsaWJnYXAuZXZhbChyJ1xpbicpCisgICAgICAgICByZXR1 cm4gR0FQX0lOKG90aGVyLCBzZWxmKS5zYWdlKCkKKyAKKy0gICAgY3BkZWYgX3R5cGVfbnVtYmVy KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfdHlwZV9udW1iZXIoc2VsZik6CisgICAgICAg ICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgR0FQIGludGVybmFsIHR5cGUgbnVtYmVyLgorIAor QEAgLTc3Niw3ICs3NzYsNyBAQCBjZGVmIGNsYXNzIEdhcEVsZW1lbnQoUmluZ0VsZW1lbnQpOgor ICAgICAgICAgcyA9IGNoYXJfdG9fc3RyKGdhcF9lbGVtZW50X3JlcHIoc2VsZi52YWx1ZSkpCisg ICAgICAgICByZXR1cm4gcy5zdHJpcCgpCisgCistICAgIGNwZGVmIF9zZXRfY29tcGFyZV9ieV9p ZChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3NldF9jb21wYXJlX2J5X2lkKHNlbGYpOgor ICAgICAgICAgIiIiCisgICAgICAgICBTZXQgY29tcGFyaXNvbiB0byBjb21wYXJlIGJ5IGBgaWRg YAorIAorQEAgLTgxNCw3ICs4MTQsNyBAQCBjZGVmIGNsYXNzIEdhcEVsZW1lbnQoUmluZ0VsZW1l bnQpOgorICAgICAgICAgIiIiCisgICAgICAgICBzZWxmLl9jb21wYXJlX2J5X2lkID0gVHJ1ZQor IAorLSAgICBjcGRlZiBfYXNzZXJ0X2NvbXBhcmVfYnlfaWQoc2VsZikgbm9leGNlcHQ6CisrICAg IGNwZGVmIF9hc3NlcnRfY29tcGFyZV9ieV9pZChzZWxmKToKKyAgICAgICAgICIiIgorICAgICAg ICAgRW5zdXJlIHRoYXQgY29tcGFyaXNvbiBpcyBieSBgYGlkYGAKKyAKK0BAIC04NTEsNyArODUx LDcgQEAgY2RlZiBjbGFzcyBHYXBFbGVtZW50KFJpbmdFbGVtZW50KToKKyAgICAgICAgICIiIgor ICAgICAgICAgcmV0dXJuIGhhc2goc3RyKHNlbGYpKQorIAorLSAgICBjcGRlZiBfcmljaGNtcF8o c2VsZiwgb3RoZXIsIGludCBvcCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhzZWxm LCBvdGhlciwgaW50IG9wKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ29tcGFyZSBgYHNlbGZg YCB3aXRoIGBgb3RoZXJgYC4KKyAKK0BAIC05NzMsNyArOTczLDcgQEAgY2RlZiBjbGFzcyBHYXBF bGVtZW50KFJpbmdFbGVtZW50KToKKyAgICAgICAgICAgICBHQVBfTGVhdmUoKQorICAgICAgICAg ICAgIHNpZ19vZmYoKQorIAorLSAgICBjcGRlZiBfYWRkXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6 CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAg IEFkZCB0d28gR2FwRWxlbWVudCBvYmplY3RzLgorIAorQEAgLTEwMDIsNyArMTAwMiw3IEBAIGNk ZWYgY2xhc3MgR2FwRWxlbWVudChSaW5nRWxlbWVudCk6CisgICAgICAgICAgICAgR0FQX0xlYXZl KCkKKyAgICAgICAgIHJldHVybiBtYWtlX2FueV9nYXBfZWxlbWVudChzZWxmLnBhcmVudCgpLCBy ZXN1bHQpCisgCistICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgciIiIgorICAgICAgICAgU3VidHJh Y3QgdHdvIEdhcEVsZW1lbnQgb2JqZWN0cy4KKyAKK0BAIC0xMDMxLDcgKzEwMzEsNyBAQCBjZGVm IGNsYXNzIEdhcEVsZW1lbnQoUmluZ0VsZW1lbnQpOgorICAgICAgICAgcmV0dXJuIG1ha2VfYW55 X2dhcF9lbGVtZW50KHNlbGYucGFyZW50KCksIHJlc3VsdCkKKyAKKyAKKy0gICAgY3BkZWYgX211 bF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbXVsXyhzZWxmLCByaWdodCk6 CisgICAgICAgICByIiIiCisgICAgICAgICBNdWx0aXBseSB0d28gR2FwRWxlbWVudCBvYmplY3Rz LgorIAorQEAgLTEwNjAsNyArMTA2MCw3IEBAIGNkZWYgY2xhc3MgR2FwRWxlbWVudChSaW5nRWxl bWVudCk6CisgICAgICAgICAgICAgR0FQX0xlYXZlKCkKKyAgICAgICAgIHJldHVybiBtYWtlX2Fu eV9nYXBfZWxlbWVudChzZWxmLnBhcmVudCgpLCByZXN1bHQpCisgCistICAgIGNwZGVmIF9kaXZf KHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2Rpdl8oc2VsZiwgcmlnaHQpOgor ICAgICAgICAgciIiIgorICAgICAgICAgRGl2aWRlIHR3byBHYXBFbGVtZW50IG9iamVjdHMuCisg CitAQCAtMTA5NCw3ICsxMDk0LDcgQEAgY2RlZiBjbGFzcyBHYXBFbGVtZW50KFJpbmdFbGVtZW50 KToKKyAgICAgICAgICAgICBHQVBfTGVhdmUoKQorICAgICAgICAgcmV0dXJuIG1ha2VfYW55X2dh cF9lbGVtZW50KHNlbGYucGFyZW50KCksIHJlc3VsdCkKKyAKKy0gICAgY3BkZWYgX21vZF8oc2Vs ZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbW9kXyhzZWxmLCByaWdodCk6CisgICAg ICAgICByIiIiCisgICAgICAgICBNb2R1bHVzIG9mIHR3byBHYXBFbGVtZW50IG9iamVjdHMuCisg CitAQCAtMTEyMSw3ICsxMTIxLDcgQEAgY2RlZiBjbGFzcyBHYXBFbGVtZW50KFJpbmdFbGVtZW50 KToKKyAgICAgICAgICAgICBHQVBfTGVhdmUoKQorICAgICAgICAgcmV0dXJuIG1ha2VfYW55X2dh cF9lbGVtZW50KHNlbGYucGFyZW50KCksIHJlc3VsdCkKKyAKKy0gICAgY3BkZWYgX3Bvd18oc2Vs Ziwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcG93XyhzZWxmLCBvdGhlcik6CisgICAg ICAgICByIiIiCisgICAgICAgICBFeHBvbmVudGlhdGlvbiBvZiB0d28gR2FwRWxlbWVudCBvYmpl Y3RzLgorIAorQEAgLTExNzAsNyArMTE3MCw3IEBAIGNkZWYgY2xhc3MgR2FwRWxlbWVudChSaW5n RWxlbWVudCk6CisgICAgICAgICAgICAgR0FQX0xlYXZlKCkKKyAgICAgICAgIHJldHVybiBtYWtl X2FueV9nYXBfZWxlbWVudChzZWxmLl9wYXJlbnQsIHJlc3VsdCkKKyAKKy0gICAgY3BkZWYgX3Bv d19pbnQoc2VsZiwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcG93X2ludChzZWxmLCBv dGhlcik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRFU1RTOjoKKyAKK0BAIC0xMjMyLDcgKzEy MzIsNyBAQCBjZGVmIGNsYXNzIEdhcEVsZW1lbnQoUmluZ0VsZW1lbnQpOgorICAgICAgICAgIiIi CisgICAgICAgICByZXR1cm4gR0FQX0lzUmVjb3JkKHNlbGYudmFsdWUpCisgCistICAgIGNwZGVm IGlzX2Jvb2woc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGlzX2Jvb2woc2VsZik6CisgICAg ICAgICByIiIiCisgICAgICAgICBSZXR1cm4gd2hldGhlciB0aGUgd3JhcHBlZCBHQVAgb2JqZWN0 IGlzIGEgR0FQIGJvb2xlYW4uCisgCitAQCAtMTQwMSw3ICsxNDAxLDcgQEAgY2RlZiBjbGFzcyBH YXBFbGVtZW50KFJpbmdFbGVtZW50KToKKyAjIyMgR2FwRWxlbWVudF9JbnRlZ2VyICMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworIAorLWNkZWYgR2FwRWxlbWVudF9JbnRlZ2VyIG1ha2VfR2FwRWxlbWVudF9J bnRlZ2VyKHBhcmVudCwgT2JqIG9iaikgbm9leGNlcHQ6CisrY2RlZiBHYXBFbGVtZW50X0ludGVn ZXIgbWFrZV9HYXBFbGVtZW50X0ludGVnZXIocGFyZW50LCBPYmogb2JqKToKKyAgICAgciIiIgor ICAgICBUdXJuIGEgR2FwIGludGVnZXIgb2JqZWN0IGludG8gYSBHYXBFbGVtZW50X0ludGVnZXIg U2FnZSBvYmplY3QKKyAKK0BAIC0xNTU1LDcgKzE1NTUsNyBAQCBjZGVmIGNsYXNzIEdhcEVsZW1l bnRfSW50ZWdlcihHYXBFbGVtZW50KToKKyAjIyMgR2FwRWxlbWVudF9GbG9hdCAjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworICMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCisgCistY2RlZiBHYXBFbGVtZW50X0Zsb2F0IG1ha2VfR2FwRWxlbWVudF9GbG9hdChw YXJlbnQsIE9iaiBvYmopIG5vZXhjZXB0OgorK2NkZWYgR2FwRWxlbWVudF9GbG9hdCBtYWtlX0dh cEVsZW1lbnRfRmxvYXQocGFyZW50LCBPYmogb2JqKToKKyAgICAgciIiIgorICAgICBUdXJuIGEg R2FwIG1hY2Zsb2F0IG9iamVjdCBpbnRvIGEgR2FwRWxlbWVudF9GbG9hdCBTYWdlIG9iamVjdAor IAorQEAgLTE2MjgsNyArMTYyOCw3IEBAIGNkZWYgY2xhc3MgR2FwRWxlbWVudF9GbG9hdChHYXBF bGVtZW50KToKKyAjIyMgR2FwRWxlbWVudF9JbnRlZ2VyTW9kICMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor IAorLWNkZWYgR2FwRWxlbWVudF9JbnRlZ2VyTW9kIG1ha2VfR2FwRWxlbWVudF9JbnRlZ2VyTW9k KHBhcmVudCwgT2JqIG9iaikgbm9leGNlcHQ6CisrY2RlZiBHYXBFbGVtZW50X0ludGVnZXJNb2Qg bWFrZV9HYXBFbGVtZW50X0ludGVnZXJNb2QocGFyZW50LCBPYmogb2JqKToKKyAgICAgciIiIgor ICAgICBUdXJuIGEgR2FwIGludGVnZXIgb2JqZWN0IGludG8gYSA6Y2xhc3M6YEdhcEVsZW1lbnRf SW50ZWdlck1vZGAgU2FnZSBvYmplY3QKKyAKK0BAIC0xNjU2LDcgKzE2NTYsNyBAQCBjZGVmIGNs YXNzIEdhcEVsZW1lbnRfSW50ZWdlck1vZChHYXBFbGVtZW50KToKKyAgICAgICAgIDxjbGFzcyAn c2FnZS5saWJzLmdhcC5lbGVtZW50LkdhcEVsZW1lbnRfSW50ZWdlck1vZCc+CisgICAgICIiIgor IAorLSAgICBjcGRlZiBHYXBFbGVtZW50X0ludGVnZXIgbGlmdChzZWxmKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgR2FwRWxlbWVudF9JbnRlZ2VyIGxpZnQoc2VsZik6CisgICAgICAgICAiIiIKKyAg ICAgICAgIFJldHVybiBhbiBpbnRlZ2VyIGxpZnQuCisgCitAQCAtMTcwOSw3ICsxNzA5LDcgQEAg Y2RlZiBjbGFzcyBHYXBFbGVtZW50X0ludGVnZXJNb2QoR2FwRWxlbWVudCk6CisgIyMjIEdhcEVs ZW1lbnRfRmluaXRlRmllbGQgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKKyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgCistY2RlZiBHYXBFbGVtZW50 X0Zpbml0ZUZpZWxkIG1ha2VfR2FwRWxlbWVudF9GaW5pdGVGaWVsZChwYXJlbnQsIE9iaiBvYmop IG5vZXhjZXB0OgorK2NkZWYgR2FwRWxlbWVudF9GaW5pdGVGaWVsZCBtYWtlX0dhcEVsZW1lbnRf RmluaXRlRmllbGQocGFyZW50LCBPYmogb2JqKToKKyAgICAgciIiIgorICAgICBUdXJuIGEgR0FQ IGZpbml0ZSBmaWVsZCBvYmplY3QgaW50byBhIDpjbGFzczpgR2FwRWxlbWVudF9GaW5pdGVGaWVs ZGAgU2FnZSBvYmplY3QKKyAKK0BAIC0xNzM3LDcgKzE3MzcsNyBAQCBjZGVmIGNsYXNzIEdhcEVs ZW1lbnRfRmluaXRlRmllbGQoR2FwRWxlbWVudCk6CisgICAgICAgICA8Y2xhc3MgJ3NhZ2UubGli cy5nYXAuZWxlbWVudC5HYXBFbGVtZW50X0Zpbml0ZUZpZWxkJz4KKyAgICAgIiIiCisgCistICAg IGNwZGVmIEdhcEVsZW1lbnRfSW50ZWdlciBsaWZ0KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBHYXBFbGVtZW50X0ludGVnZXIgbGlmdChzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAg UmV0dXJuIGFuIGludGVnZXIgbGlmdC4KKyAKK0BAIC0xODc2LDcgKzE4NzYsNyBAQCBjZGVmIGNs YXNzIEdhcEVsZW1lbnRfRmluaXRlRmllbGQoR2FwRWxlbWVudCk6CisgIyMjIEdhcEVsZW1lbnRf Q3ljbG90b21pYyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIworICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAKKy1jZGVmIEdhcEVsZW1lbnRfQ3ljbG90 b21pYyBtYWtlX0dhcEVsZW1lbnRfQ3ljbG90b21pYyhwYXJlbnQsIE9iaiBvYmopIG5vZXhjZXB0 OgorK2NkZWYgR2FwRWxlbWVudF9DeWNsb3RvbWljIG1ha2VfR2FwRWxlbWVudF9DeWNsb3RvbWlj KHBhcmVudCwgT2JqIG9iaik6CisgICAgIHIiIiIKKyAgICAgVHVybiBhIEdhcCBjeWNsb3RvbWlj IG9iamVjdCBpbnRvIGEgOmNsYXNzOmBHYXBFbGVtZW50X0N5Y2xvdG9taWNgIFNhZ2UKKyAgICAg b2JqZWN0LgorQEAgLTE5NjQsNyArMTk2NCw3IEBAIGNkZWYgY2xhc3MgR2FwRWxlbWVudF9DeWNs b3RvbWljKEdhcEVsZW1lbnQpOgorICMjIyBHYXBFbGVtZW50X1JhdGlvbmFsICMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCisgCistY2RlZiBHYXBFbGVtZW50X1JhdGlvbmFsIG1ha2VfR2FwRWxlbWVudF9SYXRp b25hbChwYXJlbnQsIE9iaiBvYmopIG5vZXhjZXB0OgorK2NkZWYgR2FwRWxlbWVudF9SYXRpb25h bCBtYWtlX0dhcEVsZW1lbnRfUmF0aW9uYWwocGFyZW50LCBPYmogb2JqKToKKyAgICAgciIiIgor ICAgICBUdXJuIGEgR2FwIFJhdGlvbmFsIG51bWJlciAob2YgdHlwZSBgYE9iamBgKSBpbnRvIGEg Q3l0aG9uIGBgR2FwRWxlbWVudF9SYXRpb25hbGBgLgorIAorQEAgLTIwMzYsNyArMjAzNiw3IEBA IGNkZWYgY2xhc3MgR2FwRWxlbWVudF9SYXRpb25hbChHYXBFbGVtZW50KToKKyAjIyMgR2FwRWxl bWVudF9SaW5nICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCisgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIAorLWNkZWYgR2FwRWxlbWVudF9SaW5nIG1h a2VfR2FwRWxlbWVudF9SaW5nKHBhcmVudCwgT2JqIG9iaikgbm9leGNlcHQ6CisrY2RlZiBHYXBF bGVtZW50X1JpbmcgbWFrZV9HYXBFbGVtZW50X1JpbmcocGFyZW50LCBPYmogb2JqKToKKyAgICAg ciIiIgorICAgICBUdXJuIGEgR2FwIGludGVnZXIgb2JqZWN0IGludG8gYSA6Y2xhc3M6YEdhcEVs ZW1lbnRfUmluZ2AgU2FnZQorICAgICBvYmplY3QuCitAQCAtMjIwMCw3ICsyMjAwLDcgQEAgY2Rl ZiBjbGFzcyBHYXBFbGVtZW50X1JpbmcoR2FwRWxlbWVudCk6CisgIyMjIEdhcEVsZW1lbnRfQm9v bGVhbiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAKKy1jZGVmIEdhcEVsZW1lbnRfQm9vbGVhbiBtYWtl X0dhcEVsZW1lbnRfQm9vbGVhbihwYXJlbnQsIE9iaiBvYmopIG5vZXhjZXB0OgorK2NkZWYgR2Fw RWxlbWVudF9Cb29sZWFuIG1ha2VfR2FwRWxlbWVudF9Cb29sZWFuKHBhcmVudCwgT2JqIG9iaik6 CisgICAgIHIiIiIKKyAgICAgVHVybiBhIEdhcCBCb29sZWFuIG51bWJlciAob2YgdHlwZSBgYE9i amBgKSBpbnRvIGEgQ3l0aG9uIGBgR2FwRWxlbWVudF9Cb29sZWFuYGAuCisgCitAQCAtMjI5Miw3 ICsyMjkyLDcgQEAgY2RlZiBjbGFzcyBHYXBFbGVtZW50X0Jvb2xlYW4oR2FwRWxlbWVudCk6Cisg IyMjIEdhcEVsZW1lbnRfU3RyaW5nICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKKyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgCistY2RlZiBHYXBFbGVt ZW50X1N0cmluZyBtYWtlX0dhcEVsZW1lbnRfU3RyaW5nKHBhcmVudCwgT2JqIG9iaikgbm9leGNl cHQ6CisrY2RlZiBHYXBFbGVtZW50X1N0cmluZyBtYWtlX0dhcEVsZW1lbnRfU3RyaW5nKHBhcmVu dCwgT2JqIG9iaik6CisgICAgIHIiIiIKKyAgICAgVHVybiBhIEdhcCBTdHJpbmcgKG9mIHR5cGUg YGBPYmpgYCkgaW50byBhIEN5dGhvbiBgYEdhcEVsZW1lbnRfU3RyaW5nYGAuCisgCitAQCAtMjM1 Miw3ICsyMzUyLDcgQEAgY2RlZiBjbGFzcyBHYXBFbGVtZW50X1N0cmluZyhHYXBFbGVtZW50KToK KyAjIyMgR2FwRWxlbWVudF9GdW5jdGlvbiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIAorLWNkZWYgR2Fw RWxlbWVudF9GdW5jdGlvbiBtYWtlX0dhcEVsZW1lbnRfRnVuY3Rpb24ocGFyZW50LCBPYmogb2Jq KSBub2V4Y2VwdDoKKytjZGVmIEdhcEVsZW1lbnRfRnVuY3Rpb24gbWFrZV9HYXBFbGVtZW50X0Z1 bmN0aW9uKHBhcmVudCwgT2JqIG9iaik6CisgICAgIHIiIiIKKyAgICAgVHVybiBhIEdhcCBDIGZ1 bmN0aW9uIG9iamVjdCAob2YgdHlwZSBgYE9iamBgKSBpbnRvIGEgQ3l0aG9uIGBgR2FwRWxlbWVu dF9GdW5jdGlvbmBgLgorIAorQEAgLTI1NjIsNyArMjU2Miw3IEBAIGNkZWYgY2xhc3MgR2FwRWxl bWVudF9GdW5jdGlvbihHYXBFbGVtZW50KToKKyAjIyMgR2FwRWxlbWVudF9NZXRob2RQcm94eSAj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworIAorLWNkZWYgR2FwRWxlbWVudF9NZXRob2RQcm94eSBtYWtlX0dhcEVs ZW1lbnRfTWV0aG9kUHJveHkocGFyZW50LCBPYmogZnVuY3Rpb24sIEdhcEVsZW1lbnQgYmFzZV9v YmplY3QpIG5vZXhjZXB0OgorK2NkZWYgR2FwRWxlbWVudF9NZXRob2RQcm94eSBtYWtlX0dhcEVs ZW1lbnRfTWV0aG9kUHJveHkocGFyZW50LCBPYmogZnVuY3Rpb24sIEdhcEVsZW1lbnQgYmFzZV9v YmplY3QpOgorICAgICByIiIiCisgICAgIFR1cm4gYSBHYXAgQyByZWMgb2JqZWN0IChvZiB0eXBl IGBgT2JqYGApIGludG8gYSBDeXRob24gYGBHYXBFbGVtZW50X1JlY29yZGBgLgorIAorQEAgLTI2 NTIsNyArMjY1Miw3IEBAIGNkZWYgY2xhc3MgR2FwRWxlbWVudF9NZXRob2RQcm94eShHYXBFbGVt ZW50X0Z1bmN0aW9uKToKKyAjIyMgR2FwRWxlbWVudF9MaXN0ICMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworIAorLWNkZWYgR2FwRWxlbWVudF9MaXN0IG1ha2VfR2FwRWxlbWVudF9MaXN0KHBhcmVudCwg T2JqIG9iaikgbm9leGNlcHQ6CisrY2RlZiBHYXBFbGVtZW50X0xpc3QgbWFrZV9HYXBFbGVtZW50 X0xpc3QocGFyZW50LCBPYmogb2JqKToKKyAgICAgciIiIgorICAgICBUdXJuIGEgR2FwIEMgTGlz dCBvYmplY3QgKG9mIHR5cGUgYGBPYmpgYCkgaW50byBhIEN5dGhvbiBgYEdhcEVsZW1lbnRfTGlz dGBgLgorIAorQEAgLTI5OTAsNyArMjk5MCw3IEBAIGNkZWYgY2xhc3MgR2FwRWxlbWVudF9MaXN0 KEdhcEVsZW1lbnQpOgorICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAKKyAKKy1jZGVmIEdhcEVsZW1l bnRfUGVybXV0YXRpb24gbWFrZV9HYXBFbGVtZW50X1Blcm11dGF0aW9uKHBhcmVudCwgT2JqIG9i aikgbm9leGNlcHQ6CisrY2RlZiBHYXBFbGVtZW50X1Blcm11dGF0aW9uIG1ha2VfR2FwRWxlbWVu dF9QZXJtdXRhdGlvbihwYXJlbnQsIE9iaiBvYmopOgorICAgICByIiIiCisgICAgIFR1cm4gYSBH YXAgQyBwZXJtdXRhdGlvbiBvYmplY3QgKG9mIHR5cGUgYGBPYmpgYCkgaW50byBhIEN5dGhvbiBg YEdhcEVsZW1lbnRfUGVybXV0YXRpb25gYC4KKyAKK0BAIC0zMDU1LDcgKzMwNTUsNyBAQCBjZGVm IGNsYXNzIEdhcEVsZW1lbnRfUGVybXV0YXRpb24oR2FwRWxlbWVudCk6CisgIyMjIEdhcEVsZW1l bnRfUmVjb3JkICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIworICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAKKy1jZGVmIEdhcEVsZW1lbnRfUmVjb3Jk IG1ha2VfR2FwRWxlbWVudF9SZWNvcmQocGFyZW50LCBPYmogb2JqKSBub2V4Y2VwdDoKKytjZGVm IEdhcEVsZW1lbnRfUmVjb3JkIG1ha2VfR2FwRWxlbWVudF9SZWNvcmQocGFyZW50LCBPYmogb2Jq KToKKyAgICAgciIiIgorICAgICBUdXJuIGEgR2FwIEMgcmVjIG9iamVjdCAob2YgdHlwZSBgYE9i amBgKSBpbnRvIGEgQ3l0aG9uIGBgR2FwRWxlbWVudF9SZWNvcmRgYC4KKyAKK2RpZmYgLS1naXQg YS9zcmMvc2FnZS9saWJzL2dhcC91dGlsLnB4ZCBiL3NyYy9zYWdlL2xpYnMvZ2FwL3V0aWwucHhk CitpbmRleCA4YjRhN2FhZGNlNy4uYmI1NTlmN2M2YTMgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9s aWJzL2dhcC91dGlsLnB4ZAorKysrIGIvc3JjL3NhZ2UvbGlicy9nYXAvdXRpbC5weGQKK0BAIC0x NywxMCArMTcsMTAgQEAgZnJvbSBzYWdlLmxpYnMuZ2FwLmdhcF9pbmNsdWRlcyBjaW1wb3J0IE9i agorIGNkZWYgY2xhc3MgT2JqV3JhcHBlcigpOgorICAgICBjZGVmIE9iaiB2YWx1ZQorIAorLWNk ZWYgT2JqV3JhcHBlciB3cmFwX29iaihPYmogb2JqKSBub2V4Y2VwdAorK2NkZWYgT2JqV3JhcHBl ciB3cmFwX29iaihPYmogb2JqKQorIAorICMgcmV0dXJucyB0aGUgcmVmY291bnQgZGljdGlvbmFy eSBmb3IgZGVidWdnaW5nIHB1cnBvc2VzCistY3BkZWYgZ2V0X293bmVkX29iamVjdHMoKSBub2V4 Y2VwdAorK2NwZGVmIGdldF9vd25lZF9vYmplY3RzKCkKKyAKKyAjIFJlZmVyZW5jZSBjb3VudCBH QVAgb2JqZWN0cyB0aGF0IHlvdSB3YW50IHRvIHByZXZlbnQgZnJvbSBiZWluZworICMgZ2FyYmFn ZSBjb2xsZWN0ZWQKK0BAIC0zNSw3ICszNSw3IEBAIGNkZWYgdm9pZCBnYXNtYW5fY2FsbGJhY2so KSBub2V4Y2VwdCB3aXRoIGdpbAorICMjIyBJbml0aWFsaXphdGlvbiBvZiBHQVAgIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCisgCistY2RlZiBpbml0aWFsaXplKCkgbm9leGNlcHQKKytjZGVmIGluaXRpYWxpemUo KQorIAorIAorICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJz L2dhcC91dGlsLnB5eCBiL3NyYy9zYWdlL2xpYnMvZ2FwL3V0aWwucHl4CitpbmRleCA4Njg1ZGMw OGZhNS4uYjBhZmQ1MDhiNGUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL2dhcC91dGlsLnB5 eAorKysrIGIvc3JjL3NhZ2UvbGlicy9nYXAvdXRpbC5weXgKK0BAIC0xMDMsNyArMTAzLDcgQEAg Y2RlZiBjbGFzcyBPYmpXcmFwcGVyKCk6CisgICAgICAgICByZXR1cm4gPFB5X2hhc2hfdD4oc2Vs Zi52YWx1ZSkKKyAKKyAKKy1jZGVmIE9ialdyYXBwZXIgd3JhcF9vYmooT2JqIG9iaikgbm9leGNl cHQ6CisrY2RlZiBPYmpXcmFwcGVyIHdyYXBfb2JqKE9iaiBvYmopOgorICAgICAiIiIKKyAgICAg Q29uc3RydWN0b3IgZnVuY3Rpb24gZm9yIDpjbGFzczpgT2JqV3JhcHBlcmAKKyAgICAgIiIiCitA QCAtMTIwLDcgKzEyMCw3IEBAIGNkZWYgZGljdCBvd25lZF9vYmplY3RzX3JlZmNvdW50ID0gZGlj dCgpCisgIworICMgdXNlZCBpbiBTYWdlJ3MgbGliZ2FwLkdhcC5jb3VudF9HQVBfb2JqZWN0cwor ICMKKy1jcGRlZiBnZXRfb3duZWRfb2JqZWN0cygpIG5vZXhjZXB0OgorK2NwZGVmIGdldF9vd25l ZF9vYmplY3RzKCk6CisgICAgICIiIgorICAgICBIZWxwZXIgdG8gYWNjZXNzIHRoZSByZWZjb3Vu dCBkaWN0aW9uYXJ5IGZyb20gUHl0aG9uIGNvZGUKKyAgICAgIiIiCitAQCAtMTg0LDcgKzE4NCw3 IEBAIE1ha2VJbW11dGFibGUobGliZ2FwX2Vycm91dCk7CisgIiIiCisgCisgCistY2RlZiBpbml0 aWFsaXplKCkgbm9leGNlcHQ6CisrY2RlZiBpbml0aWFsaXplKCk6CisgICAgICIiIgorICAgICBJ bml0aWFsaXplIHRoZSBHQVAgbGlicmFyeSwgaWYgaXQgaGFzbid0IGFscmVhZHkgYmVlbgorICAg ICBpbml0aWFsaXplZC4gIEl0IGlzIHNhZmUgdG8gY2FsbCB0aGlzIG11bHRpcGxlIHRpbWVzLiBP bmUgY2FuIHNldAorQEAgLTQwNSw3ICs0MDUsNyBAQCBjbGFzcyBHQVBFcnJvcihWYWx1ZUVycm9y KTogICMgVmFsdWVFcnJvciBmb3IgaGlzdG9yaWNhbCByZWFzb25zCisgICAgICIiIgorIAorIAor LWNkZWYgc3RyIGV4dHJhY3RfbGliZ2FwX2Vycm91dCgpIG5vZXhjZXB0OgorK2NkZWYgc3RyIGV4 dHJhY3RfbGliZ2FwX2Vycm91dCgpOgorICAgICAiIiIKKyAgICAgUmVhZHMgdGhlIGdsb2JhbCB2 YXJpYWJsZSBsaWJnYXBfZXJyb3V0IGFuZCByZXR1cm5zIGEgUHl0aG9uIHN0cmluZworICAgICBj b250YWluaW5nIHRoZSBlcnJvciBtZXNzYWdlICh3aXRoIHNvbWUgYm9pbGVycGxhdGUgcmVtb3Zl ZCkuCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbGlicy9nbXAvcHlsb25nLnB4ZCBiL3NyYy9zYWdl L2xpYnMvZ21wL3B5bG9uZy5weGQKK2luZGV4IDg0NjQ0NGQyMDgyLi4zMjVkNzQ3ZjU3YiAxMDA2 NDQKKy0tLSBhL3NyYy9zYWdlL2xpYnMvZ21wL3B5bG9uZy5weGQKKysrKyBiL3NyYy9zYWdlL2xp YnMvZ21wL3B5bG9uZy5weGQKK0BAIC01LDcgKzUsNyBAQCBWYXJpb3VzIGZ1bmN0aW9ucyB0byBk ZWFsIHdpdGggY29udmVyc2lvbiBtcHogPC0+IFB5dGhvbiBpbnQvbG9uZworIGZyb20gY3B5dGhv bi5sb25naW50cmVwciBjaW1wb3J0IHB5X2xvbmcKKyBmcm9tIHNhZ2UubGlicy5nbXAudHlwZXMg Y2ltcG9ydCAqCisgCistY2RlZiBtcHpfZ2V0X3B5bG9uZyhtcHpfc3JjcHRyIHopIG5vZXhjZXB0 CistY2RlZiBtcHpfZ2V0X3B5aW50bG9uZyhtcHpfc3JjcHRyIHopIG5vZXhjZXB0CisrY2RlZiBt cHpfZ2V0X3B5bG9uZyhtcHpfc3JjcHRyIHopCisrY2RlZiBtcHpfZ2V0X3B5aW50bG9uZyhtcHpf c3JjcHRyIHopCisgY2RlZiBpbnQgbXB6X3NldF9weWxvbmcobXB6X3B0ciB6LCBweV9sb25nIEwp IGV4Y2VwdCAtMQorIGNkZWYgUHlfaGFzaF90IG1wel9weXRob25oYXNoKG1wel9zcmNwdHIgeikg bm9leGNlcHQKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL2dtcC9weWxvbmcucHl4IGIvc3Jj L3NhZ2UvbGlicy9nbXAvcHlsb25nLnB5eAoraW5kZXggMjAyMDA4ZjQ1ODcuLjgwZjk4NDNlMDdj IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbGlicy9nbXAvcHlsb25nLnB5eAorKysrIGIvc3JjL3Nh Z2UvbGlicy9nbXAvcHlsb25nLnB5eAorQEAgLTU2LDcgKzU2LDcgQEAgY2RlZiBleHRlcm4gZnJv bSAqOgorIGNkZWYgc2l6ZV90IFB5TG9uZ19uYWlscyA9IDgqc2l6ZW9mKGRpZ2l0KSAtIFB5TG9u Z19TSElGVAorIAorIAorLWNkZWYgbXB6X2dldF9weWxvbmdfbGFyZ2UobXB6X3NyY3B0ciB6KSBu b2V4Y2VwdDoKKytjZGVmIG1wel9nZXRfcHlsb25nX2xhcmdlKG1wel9zcmNwdHIgeik6CisgICAg ICIiIgorICAgICBDb252ZXJ0IGEgbm9uLXplcm8gYGBtcHpgYCB0byBhIFB5dGhvbiBgYGxvbmdg YC4KKyAgICAgIiIiCitAQCAtNjgsNyArNjgsNyBAQCBjZGVmIG1wel9nZXRfcHlsb25nX2xhcmdl KG1wel9zcmNwdHIgeikgbm9leGNlcHQ6CisgICAgIHJldHVybiBMCisgCisgCistY2RlZiBtcHpf Z2V0X3B5bG9uZyhtcHpfc3JjcHRyIHopIG5vZXhjZXB0OgorK2NkZWYgbXB6X2dldF9weWxvbmco bXB6X3NyY3B0ciB6KToKKyAgICAgIiIiCisgICAgIENvbnZlcnQgYW4gYGBtcHpgYCB0byBhIFB5 dGhvbiBgYGxvbmdgYC4KKyAgICAgIiIiCitAQCAtNzcsNyArNzcsNyBAQCBjZGVmIG1wel9nZXRf cHlsb25nKG1wel9zcmNwdHIgeikgbm9leGNlcHQ6CisgICAgIHJldHVybiBtcHpfZ2V0X3B5bG9u Z19sYXJnZSh6KQorIAorIAorLWNkZWYgbXB6X2dldF9weWludGxvbmcobXB6X3NyY3B0ciB6KSBu b2V4Y2VwdDoKKytjZGVmIG1wel9nZXRfcHlpbnRsb25nKG1wel9zcmNwdHIgeik6CisgICAgICIi IgorICAgICBDb252ZXJ0IGFuIGBgbXB6YGAgdG8gYSBQeXRob24gYGBpbnRgYCBpZiBwb3NzaWJs ZSwgb3IgYSBgYGxvbmdgYAorICAgICBpZiB0aGUgdmFsdWUgaXMgdG9vIGxhcmdlLgorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL2xpYnMvbGluYm94L2NvbnZlcnNpb24ucHhkIGIvc3JjL3NhZ2UvbGli cy9saW5ib3gvY29udmVyc2lvbi5weGQKK2luZGV4IGE0Y2RkMDk3MTFkLi5hNDQzNDMxYWRiYiAx MDA2NDQKKy0tLSBhL3NyYy9zYWdlL2xpYnMvbGluYm94L2NvbnZlcnNpb24ucHhkCisrKysgYi9z cmMvc2FnZS9saWJzL2xpbmJveC9jb252ZXJzaW9uLnB4ZAorQEAgLTE2Nyw3ICsxNjcsNyBAQCBj ZGVmIGlubGluZSBEZW5zZVZlY3Rvcl9pbnRlZ2VyICogbmV3X2xpbmJveF92ZWN0b3JfaW50ZWdl cl9kZW5zZShaUmluZyAmWlosIFZlYworIAorICAgICByZXR1cm4gVgorIAorLWNkZWYgaW5saW5l IFZlY3Rvcl9pbnRlZ2VyX2RlbnNlIG5ld19zYWdlX3ZlY3Rvcl9pbnRlZ2VyX2RlbnNlKFAsIERl bnNlVmVjdG9yX2ludGVnZXIgJnYpIG5vZXhjZXB0OgorK2NkZWYgaW5saW5lIFZlY3Rvcl9pbnRl Z2VyX2RlbnNlIG5ld19zYWdlX3ZlY3Rvcl9pbnRlZ2VyX2RlbnNlKFAsIERlbnNlVmVjdG9yX2lu dGVnZXIgJnYpOgorICAgICByIiIiCisgICAgIFJldHVybiBhIG5ldyBTYWdlIHZlY3RvciBmcm9t IGEgTGluQm94IG9uZS4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL2xpbmthZ2VzL3Bh ZGljcy9Qb2x5bm9taWFsX3JhbS5weGkgYi9zcmMvc2FnZS9saWJzL2xpbmthZ2VzL3BhZGljcy9Q b2x5bm9taWFsX3JhbS5weGkKK2luZGV4IDIwNDhiYjBhM2MyLi5lMDU4NGVjYjhhZCAxMDA2NDQK Ky0tLSBhL3NyYy9zYWdlL2xpYnMvbGlua2FnZXMvcGFkaWNzL1BvbHlub21pYWxfcmFtLnB4aQor KysrIGIvc3JjL3NhZ2UvbGlicy9saW5rYWdlcy9wYWRpY3MvUG9seW5vbWlhbF9yYW0ucHhpCitA QCAtMzE4LDcgKzMxOCw3IEBAIGNkZWYgaW5saW5lIGludCBjcG93KGNlbGVtZW50IG91dCwgY2Vs ZW1lbnQgYSwgbXB6X3QgbiwgbG9uZyBwcmVjLCBQb3dDb21wdXRlcl8KKyBfZXhwYW5zaW9uX3pl cm8gPSBbXQorIAorICMgdGhlIGV4cGFuc2lvbl9tb2RlIGVudW0gaXMgZGVmaW5lZCBpbiBwYWRp Y190ZW1wbGF0ZV9lbGVtZW50X2hlYWRlci5weGkKKy1jZGVmIGlubGluZSBjZXhwYW5zaW9uX25l eHQoY2VsZW1lbnQgdmFsdWUsIGV4cGFuc2lvbl9tb2RlIG1vZGUsIGxvbmcgY3VycG93ZXIsIFBv d0NvbXB1dGVyXyBwcmltZV9wb3cpIG5vZXhjZXB0OgorK2NkZWYgaW5saW5lIGNleHBhbnNpb25f bmV4dChjZWxlbWVudCB2YWx1ZSwgZXhwYW5zaW9uX21vZGUgbW9kZSwgbG9uZyBjdXJwb3dlciwg UG93Q29tcHV0ZXJfIHByaW1lX3Bvdyk6CisgICAgIGlmIG1vZGUgPT0gdGVpY2htdWxsZXJfbW9k ZToKKyAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKyAgICAgIyBUaGlzIGlzIG5v dCB2ZXJ5IGVmZmljaWVudCwgYnV0IHRoZXJlJ3Mgbm8gY2xlYXIgYmV0dGVyIHdheS4KK0BAIC0z MzksNyArMzM5LDcgQEAgY2RlZiBpbmxpbmUgY2V4cGFuc2lvbl9uZXh0KGNlbGVtZW50IHZhbHVl LCBleHBhbnNpb25fbW9kZSBtb2RlLCBsb25nIGN1cnBvd2VyLAorICAgICBjc2hpZnRfbm90cnVu Yyh2YWx1ZSwgdmFsdWUsIC0xLCBjdXJwb3dlciwgcHJpbWVfcG93LCBGYWxzZSkKKyAgICAgcmV0 dXJuIHRlcm0KKyAKKy1jZGVmIGlubGluZSBjZXhwYW5zaW9uX2dldGl0ZW0oY2VsZW1lbnQgdmFs dWUsIGxvbmcgbSwgUG93Q29tcHV0ZXJfIHByaW1lX3Bvdykgbm9leGNlcHQ6CisrY2RlZiBpbmxp bmUgY2V4cGFuc2lvbl9nZXRpdGVtKGNlbGVtZW50IHZhbHVlLCBsb25nIG0sIFBvd0NvbXB1dGVy XyBwcmltZV9wb3cpOgorICAgICAiIiIKKyAgICAgUmV0dXJuIHRoZSBgbWB0aCBgcGAtYWRpYyBk aWdpdCBpbiB0aGUgYGBzaW1wbGVfbW9kZWBgIGV4cGFuc2lvbi4KKyAKK0BAIC0zODMsNyArMzgz LDcgQEAgY2RlZiBpbnQgY3RlaWNobXVsbGVyKGNlbGVtZW50IG91dCwgY2VsZW1lbnQgdmFsdWUs IGxvbmcgcHJlYywgUG93Q29tcHV0ZXJfIHByaW0KKyAgICAgZWxzZToKKyAgICAgICAgIG91dC5f Y29lZmZzID0gW3ZhbHVlWzBdLnBhcmVudCgpLnRlaWNobXVsbGVyKHZhbHVlWzBdKV0KKyAKKy1j ZGVmIGxpc3QgY2NvZWZmaWNpZW50cyhjZWxlbWVudCB4LCBsb25nIHZhbHNoaWZ0LCBsb25nIHBy ZWMsIFBvd0NvbXB1dGVyXyBwcmltZV9wb3cpIG5vZXhjZXB0OgorK2NkZWYgbGlzdCBjY29lZmZp Y2llbnRzKGNlbGVtZW50IHgsIGxvbmcgdmFsc2hpZnQsIGxvbmcgcHJlYywgUG93Q29tcHV0ZXJf IHByaW1lX3Bvdyk6CisgICAgICIiIgorICAgICBSZXR1cm4gYSBsaXN0IG9mIGNvZWZmaWNpZW50 cywgYXMgZWxlbWVudHMgdGhhdCBjYW4gYmUgY29udmVydGVkIGludG8gdGhlIGJhc2UgcmluZy4K KyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL2xpbmthZ2VzL3BhZGljcy9Qb2x5bm9taWFs X3NoYXJlZC5weGkgYi9zcmMvc2FnZS9saWJzL2xpbmthZ2VzL3BhZGljcy9Qb2x5bm9taWFsX3No YXJlZC5weGkKK2luZGV4IGIyMTBiNTNjZTE5Li4zNjdiYmMyZjMzZCAxMDA2NDQKKy0tLSBhL3Ny Yy9zYWdlL2xpYnMvbGlua2FnZXMvcGFkaWNzL1BvbHlub21pYWxfc2hhcmVkLnB4aQorKysrIGIv c3JjL3NhZ2UvbGlicy9saW5rYWdlcy9wYWRpY3MvUG9seW5vbWlhbF9zaGFyZWQucHhpCitAQCAt MzMyLDcgKzMzMiw3IEBAIGNkZWYgaW5saW5lIGludCBjY29weShjZWxlbWVudCBvdXQsIGNlbGVt ZW50IGEsIFBvd0NvbXB1dGVyXyBwcmltZV9wb3cpIGV4Y2VwdCAtCisgICAgICIiIgorICAgICBv dXQuX2NvZWZmcyA9IGEuX2NvZWZmc1s6XQorIAorLWNkZWYgaW5saW5lIGNwaWNrbGUoY2VsZW1l bnQgYSwgUG93Q29tcHV0ZXJfIHByaW1lX3Bvdykgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUgY3Bp Y2tsZShjZWxlbWVudCBhLCBQb3dDb21wdXRlcl8gcHJpbWVfcG93KToKKyAgICAgciIiIgorICAg ICBSZXR1cm4gYSByZXByZXNlbnRhdGlvbiBvZiBgYGFgYCBmb3IgcGlja2xpbmcuCisgCitkaWZm IC0tZ2l0IGEvc3JjL3NhZ2UvbGlicy9saW5rYWdlcy9wYWRpY3MvZm1wel9wb2x5X3VucmFtLnB4 aSBiL3NyYy9zYWdlL2xpYnMvbGlua2FnZXMvcGFkaWNzL2ZtcHpfcG9seV91bnJhbS5weGkKK2lu ZGV4IDE4ZjcxMGZhZDM2Li4yMTcxYjQyNjkxMSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2xpYnMv bGlua2FnZXMvcGFkaWNzL2ZtcHpfcG9seV91bnJhbS5weGkKKysrKyBiL3NyYy9zYWdlL2xpYnMv bGlua2FnZXMvcGFkaWNzL2ZtcHpfcG9seV91bnJhbS5weGkKK0BAIC00OTksNyArNDk5LDcgQEAg Y2RlZiBpbmxpbmUgaW50IGNjb3B5KGNlbGVtZW50IG91dCwgY2VsZW1lbnQgYSwgUG93Q29tcHV0 ZXJfIHByaW1lX3BvdykgZXhjZXB0IC0KKyAgICAgIiIiCisgICAgIGZtcHpfcG9seV9zZXQob3V0 LCBhKQorIAorLWNkZWYgaW5saW5lIGNwaWNrbGUoY2VsZW1lbnQgYSwgUG93Q29tcHV0ZXJfIHBy aW1lX3Bvdykgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUgY3BpY2tsZShjZWxlbWVudCBhLCBQb3dD b21wdXRlcl8gcHJpbWVfcG93KToKKyAgICAgIiIiCisgICAgIFNlcmlhbGl6YXRpb24gaW50byBv YmplY3RzIHRoYXQgU2FnZSBrbm93cyBob3cgdG8gcGlja2xlLgorIAorQEAgLTU0Niw3ICs1NDYs NyBAQCBjZGVmIGlubGluZSBsb25nIGNoYXNoKGNlbGVtZW50IGEsIGxvbmcgb3JkcCwgbG9uZyBw cmVjLCBQb3dDb21wdXRlcl8gcHJpbWVfcG93KQorICAgICBmbXB6X3BvbHlfZ2V0X2NvZWZmX21w eihoLnZhbHVlLCBhLCAwKQorICAgICByZXR1cm4gaGFzaChoKQorIAorLWNkZWYgaW5saW5lIGNt b2RwX3JlcChmbXB6X3BvbHlfdCByZXAsIGZtcHpfcG9seV90IHZhbHVlLCBleHBhbnNpb25fbW9k ZSBtb2RlLCBiaW50IHJldHVybl9saXN0LCBQb3dDb21wdXRlcl8gcHJpbWVfcG93KSBub2V4Y2Vw dDoKKytjZGVmIGlubGluZSBjbW9kcF9yZXAoZm1wel9wb2x5X3QgcmVwLCBmbXB6X3BvbHlfdCB2 YWx1ZSwgZXhwYW5zaW9uX21vZGUgbW9kZSwgYmludCByZXR1cm5fbGlzdCwgUG93Q29tcHV0ZXJf IHByaW1lX3Bvdyk6CisgICAgICIiIgorICAgICBDb21wdXRlIGEgcG9seW5vbWlhbCB0aGF0IGlz IHJlZHVjZWQgbW9kdWxvIHAgYW5kIGVxdWl2YWxlbnQgdG8gdGhlIGdpdmVuIHZhbHVlLgorIAor QEAgLTU3OSw3ICs1NzksNyBAQCBjZGVmIGlubGluZSBjbW9kcF9yZXAoZm1wel9wb2x5X3QgcmVw LCBmbXB6X3BvbHlfdCB2YWx1ZSwgZXhwYW5zaW9uX21vZGUgbW9kZSwgYgorICAgICAgICAgICAg IHJldHVybiBMCisgCisgIyB0aGUgZXhwYW5zaW9uX21vZGUgZW51bSBpcyBkZWZpbmVkIGluIHBh ZGljX3RlbXBsYXRlX2VsZW1lbnRfaGVhZGVyLnB4aQorLWNkZWYgaW5saW5lIGNleHBhbnNpb25f bmV4dChmbXB6X3BvbHlfdCB2YWx1ZSwgZXhwYW5zaW9uX21vZGUgbW9kZSwgbG9uZyBjdXJwb3dl ciwgUG93Q29tcHV0ZXJfIHByaW1lX3Bvdykgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUgY2V4cGFu c2lvbl9uZXh0KGZtcHpfcG9seV90IHZhbHVlLCBleHBhbnNpb25fbW9kZSBtb2RlLCBsb25nIGN1 cnBvd2VyLCBQb3dDb21wdXRlcl8gcHJpbWVfcG93KToKKyAgICAgIiIiCisgICAgIFJldHVybiB0 aGUgbmV4dCBkaWdpdCBpbiBhIGBwYC1hZGljIGV4cGFuc2lvbiBvZiBgYHZhbHVlYGAuCisgCitA QCAtNjA5LDcgKzYwOSw3IEBAIGNkZWYgaW5saW5lIGNleHBhbnNpb25fbmV4dChmbXB6X3BvbHlf dCB2YWx1ZSwgZXhwYW5zaW9uX21vZGUgbW9kZSwgbG9uZyBjdXJwb3dlCisgICAgIF9mbXB6X3Bv bHlfbm9ybWFsaXNlKHZhbHVlKQorICAgICByZXR1cm4gdHJpbV96ZXJvcyhhbnMpICMgZGVmaW5l ZCBpbiBzYWdlLnJpbmdzLnBhZGljcy5taXNjIGFuZCBpbXBvcnRlZCBpbiBwYWRpY190ZW1wbGF0 ZV9lbGVtZW50CisgCistY2RlZiBpbmxpbmUgY2V4cGFuc2lvbl9nZXRpdGVtKGZtcHpfcG9seV90 IHZhbHVlLCBsb25nIG0sIFBvd0NvbXB1dGVyXyBwcmltZV9wb3cpIG5vZXhjZXB0OgorK2NkZWYg aW5saW5lIGNleHBhbnNpb25fZ2V0aXRlbShmbXB6X3BvbHlfdCB2YWx1ZSwgbG9uZyBtLCBQb3dD b21wdXRlcl8gcHJpbWVfcG93KToKKyAgICAgIiIiCisgICAgIFJldHVybiB0aGUgYG1gdGggYHBg LWFkaWMgZGlnaXQgaW4gdGhlIGBgc2ltcGxlX21vZGVgYCBleHBhbnNpb24uCisgCitAQCAtNjM5 LDcgKzYzOSw3IEBAIGNkZWYgaW5saW5lIGNleHBhbnNpb25fZ2V0aXRlbShmbXB6X3BvbHlfdCB2 YWx1ZSwgbG9uZyBtLCBQb3dDb21wdXRlcl8gcHJpbWVfcG93CisgIyBUaGUgZWxlbWVudCBpcyBm aWxsZWQgaW4gZm9yIHplcm8gaW4gdGhlIHAtYWRpYyBleHBhbnNpb24gaWYgbmVjZXNzYXJ5Lgor IF9leHBhbnNpb25femVybyA9IFtdCisgCistY2RlZiBsaXN0IGNjb2VmZmljaWVudHMoY2VsZW1l bnQgeCwgbG9uZyB2YWxzaGlmdCwgbG9uZyBwcmVjLCBQb3dDb21wdXRlcl8gcHJpbWVfcG93KSBu b2V4Y2VwdDoKKytjZGVmIGxpc3QgY2NvZWZmaWNpZW50cyhjZWxlbWVudCB4LCBsb25nIHZhbHNo aWZ0LCBsb25nIHByZWMsIFBvd0NvbXB1dGVyXyBwcmltZV9wb3cpOgorICAgICAiIiIKKyAgICAg UmV0dXJuIGEgbGlzdCBvZiBjb2VmZmljaWVudHMsIGFzIGVsZW1lbnRzIHRoYXQgY2FuIGJlIGNv bnZlcnRlZCBpbnRvIHRoZSBiYXNlIHJpbmcuCisgCitAQCAtODQ5LDcgKzg0OSw3IEBAIGNkZWYg aW5saW5lIGludCBjY29udl9tcHpfdF9vdXQobXB6X3Qgb3V0LCBjZWxlbWVudCB4LCBsb25nIHZh bHNoaWZ0LCBsb25nIHByZWMsCisgCisgIyMgRXh0cmEgZnVuY3Rpb25zICMjCisgCistY2RlZiBj bWF0cml4X21vZF9wbihjZWxlbWVudCBhLCBsb25nIGFwcmVjLCBsb25nIHZhbHNoaWZ0LCBQb3dD b21wdXRlcl8gcHJpbWVfcG93KSBub2V4Y2VwdDoKKytjZGVmIGNtYXRyaXhfbW9kX3BuKGNlbGVt ZW50IGEsIGxvbmcgYXByZWMsIGxvbmcgdmFsc2hpZnQsIFBvd0NvbXB1dGVyXyBwcmltZV9wb3cp OgorICAgICByIiIiCisgICAgIFJldHVybnMgdGhlIG1hdHJpeCBvZiByaWdodCBtdWx0aXBsaWNh dGlvbiBieSB0aGUgZWxlbWVudCBvbgorICAgICB0aGUgcG93ZXIgYmFzaXMgYDEsIHgsIHheMiwg XGxkb3RzLCB4XntkLTF9YCBmb3IgdGhpcworZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvbGlu a2FnZXMvcGFkaWNzL21wei5weGkgYi9zcmMvc2FnZS9saWJzL2xpbmthZ2VzL3BhZGljcy9tcHou cHhpCitpbmRleCBiYThjMTQzZjNiNy4uM2E1NTVlNDQxZGMgMTAwNjQ0CistLS0gYS9zcmMvc2Fn ZS9saWJzL2xpbmthZ2VzL3BhZGljcy9tcHoucHhpCisrKysgYi9zcmMvc2FnZS9saWJzL2xpbmth Z2VzL3BhZGljcy9tcHoucHhpCitAQCAtNDM1LDcgKzQzNSw3IEBAIGNkZWYgaW5saW5lIGludCBj Y29weShtcHpfdCBvdXQsIG1wel90IGEsIFBvd0NvbXB1dGVyXyBwcmltZV9wb3cpIGV4Y2VwdCAt MToKKyAgICAgIiIiCisgICAgIG1wel9zZXQob3V0LCBhKQorIAorLWNkZWYgaW5saW5lIGNwaWNr bGUobXB6X3QgYSwgUG93Q29tcHV0ZXJfIHByaW1lX3Bvdykgbm9leGNlcHQ6CisrY2RlZiBpbmxp bmUgY3BpY2tsZShtcHpfdCBhLCBQb3dDb21wdXRlcl8gcHJpbWVfcG93KToKKyAgICAgIiIiCisg ICAgIFNlcmlhbGl6YXRpb24gaW50byBvYmplY3RzIHRoYXQgU2FnZSBrbm93cyBob3cgdG8gcGlj a2xlLgorIAorQEAgLTQ5Myw3ICs0OTMsNyBAQCBjZGVmIGlubGluZSBsb25nIGNoYXNoKG1wel90 IGEsIGxvbmcgb3JkcCwgbG9uZyBwcmVjLCBQb3dDb21wdXRlcl8gcHJpbWVfcG93KSBleAorICAg ICAgICAgcmV0dXJuIG4KKyAKKyAjIHRoZSBleHBhbnNpb25fbW9kZSBlbnVtIGlzIGRlZmluZWQg aW4gcGFkaWNfdGVtcGxhdGVfZWxlbWVudF9oZWFkZXIucHhpCistY2RlZiBpbmxpbmUgY2V4cGFu c2lvbl9uZXh0KG1wel90IHZhbHVlLCBleHBhbnNpb25fbW9kZSBtb2RlLCBsb25nIGN1cnBvd2Vy LCBQb3dDb21wdXRlcl8gcHJpbWVfcG93KSBub2V4Y2VwdDoKKytjZGVmIGlubGluZSBjZXhwYW5z aW9uX25leHQobXB6X3QgdmFsdWUsIGV4cGFuc2lvbl9tb2RlIG1vZGUsIGxvbmcgY3VycG93ZXIs IFBvd0NvbXB1dGVyXyBwcmltZV9wb3cpOgorICAgICAiIiIKKyAgICAgUmV0dXJuIHRoZSBuZXh0 IGRpZ2l0IGluIGEgYHBgLWFkaWMgZXhwYW5zaW9uIG9mIGBgdmFsdWVgYC4KKyAKK0BAIC01MjMs NyArNTIzLDcgQEAgY2RlZiBpbmxpbmUgY2V4cGFuc2lvbl9uZXh0KG1wel90IHZhbHVlLCBleHBh bnNpb25fbW9kZSBtb2RlLCBsb25nIGN1cnBvd2VyLCBQb3cKKyAgICAgICAgIG1wel9zdWIodmFs dWUsIHZhbHVlLCBwcmltZV9wb3cucG93X21wel90X3RtcChjdXJwb3dlcikpCisgICAgIHJldHVy biBhbnMKKyAKKy1jZGVmIGlubGluZSBjZXhwYW5zaW9uX2dldGl0ZW0obXB6X3QgdmFsdWUsIGxv bmcgbSwgUG93Q29tcHV0ZXJfIHByaW1lX3Bvdykgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUgY2V4 cGFuc2lvbl9nZXRpdGVtKG1wel90IHZhbHVlLCBsb25nIG0sIFBvd0NvbXB1dGVyXyBwcmltZV9w b3cpOgorICAgICAiIiIKKyAgICAgUmV0dXJuIHRoZSBgbWB0aCBgcGAtYWRpYyBkaWdpdCBpbiB0 aGUgYGBzaW1wbGVfbW9kZWBgIGV4cGFuc2lvbi4KKyAKK0BAIC01NDUsNyArNTQ1LDcgQEAgY2Rl ZiBpbmxpbmUgY2V4cGFuc2lvbl9nZXRpdGVtKG1wel90IHZhbHVlLCBsb25nIG0sIFBvd0NvbXB1 dGVyXyBwcmltZV9wb3cpIG5vZXgKKyAjIEl0IGNvdWxkIGJlIFtdIGZvciBzb21lIG90aGVyIGxp bmthZ2VzLgorIF9leHBhbnNpb25femVybyA9IEludGVnZXIoMCkKKyAKKy1jZGVmIGxpc3QgY2Nv ZWZmaWNpZW50cyhtcHpfdCB4LCBsb25nIHZhbHNoaWZ0LCBsb25nIHByZWMsIFBvd0NvbXB1dGVy XyBwcmltZV9wb3cpIG5vZXhjZXB0OgorK2NkZWYgbGlzdCBjY29lZmZpY2llbnRzKG1wel90IHgs IGxvbmcgdmFsc2hpZnQsIGxvbmcgcHJlYywgUG93Q29tcHV0ZXJfIHByaW1lX3Bvdyk6CisgICAg ICIiIgorICAgICBSZXR1cm4gYSBsaXN0IG9mIGNvZWZmaWNpZW50cywgYXMgZWxlbWVudHMgdGhh dCBjYW4gYmUgY29udmVydGVkIGludG8gdGhlIGJhc2UgcmluZy4KKyAKK2RpZmYgLS1naXQgYS9z cmMvc2FnZS9saWJzL2xpbmthZ2VzL3BhZGljcy9yZWxheGVkL2ZsaW50LnB4aSBiL3NyYy9zYWdl L2xpYnMvbGlua2FnZXMvcGFkaWNzL3JlbGF4ZWQvZmxpbnQucHhpCitpbmRleCBhMWNiZGVlZGY4 MS4uNzA4NWZkNzZhYzggMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL2xpbmthZ2VzL3BhZGlj cy9yZWxheGVkL2ZsaW50LnB4aQorKysrIGIvc3JjL3NhZ2UvbGlicy9saW5rYWdlcy9wYWRpY3Mv cmVsYXhlZC9mbGludC5weGkKK0BAIC02Nyw3ICs2Nyw3IEBAIGNkZWYgaW5saW5lIHZvaWQgZGln aXRfY2xlYXIoZm1wel90IGEpIG5vZXhjZXB0OgorIAorICMgZ2V0IGFuZCBzZXQKKyAKKy1jZGVm IGlubGluZSBJbnRlZ2VyIGRpZ2l0X2dldF9zYWdlKGZtcHpfdCBhKSBub2V4Y2VwdDoKKytjZGVm IGlubGluZSBJbnRlZ2VyIGRpZ2l0X2dldF9zYWdlKGZtcHpfdCBhKToKKyAgICAgciIiIgorICAg ICBDb252ZXJ0IGEgZGlnaXQgdG8gYSBTYWdlIGVsZW1lbnQuCisgCitAQCAtMzI5LDcgKzMyOSw3 IEBAIGNkZWYgaW5saW5lIHZvaWQgZWxlbWVudF9jbGVhcihmbXB6X3BvbHlfdCB4KSBub2V4Y2Vw dDoKKyAKKyAjIGdldCBhbmQgc2V0CisgCistY2RlZiBpbmxpbmUgSW50ZWdlciBlbGVtZW50X2dl dF9zYWdlKGZtcHpfcG9seV90IHgsIFBvd0NvbXB1dGVyX2ZsaW50IHByaW1lX3Bvdykgbm9leGNl cHQ6CisrY2RlZiBpbmxpbmUgSW50ZWdlciBlbGVtZW50X2dldF9zYWdlKGZtcHpfcG9seV90IHgs IFBvd0NvbXB1dGVyX2ZsaW50IHByaW1lX3Bvdyk6CisgICAgIHIiIiIKKyAgICAgQ29udmVydCBh IGRpZ2l0IHRvIGEgU2FnZSBlbGVtZW50LgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMv bXBtYXRoL2V4dF9pbXBsLnB4ZCBiL3NyYy9zYWdlL2xpYnMvbXBtYXRoL2V4dF9pbXBsLnB4ZAor aW5kZXggZjI1NDBkMzI2ZGQuLjU4NmQxMGQxN2YyIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbGli cy9tcG1hdGgvZXh0X2ltcGwucHhkCisrKysgYi9zcmMvc2FnZS9saWJzL21wbWF0aC9leHRfaW1w bC5weGQKK0BAIC00LDExICs0LDExIEBAIGN0eXBlZGVmIHN0cnVjdCBNUG9wdHM6CisgICAgIGxv bmcgcHJlYworICAgICBpbnQgcm91bmRpbmcKKyAKKy1jZGVmIG1wel9zZXRfaW50ZWdlcihtcHpf dCB2LCB4KSBub2V4Y2VwdAorLWNkZWYgbXB6aShtcHpfdCBuKSBub2V4Y2VwdAorLWNkZWYgbXB6 bChtcHpfdCBuKSBub2V4Y2VwdAorLWNkZWYgc3RyIHJuZG1vZGVfdG9fcHl0aG9uKGludCBybmQp IG5vZXhjZXB0CistY2RlZiBybmRtb2RlX2Zyb21fcHl0aG9uKHN0ciBybmQpIG5vZXhjZXB0Cisr Y2RlZiBtcHpfc2V0X2ludGVnZXIobXB6X3QgdiwgeCkKKytjZGVmIG1wemkobXB6X3QgbikKKytj ZGVmIG1wemwobXB6X3QgbikKKytjZGVmIHN0ciBybmRtb2RlX3RvX3B5dGhvbihpbnQgcm5kKQor K2NkZWYgcm5kbW9kZV9mcm9tX3B5dGhvbihzdHIgcm5kKQorIAorIGN0eXBlZGVmIHN0cnVjdCBN UEY6CisgICAgIG1wel90IG1hbgorQEAgLTIzLDIxICsyMywyMSBAQCBjZGVmIHZvaWQgTVBGX3Nl dF9vbmUoTVBGICp4KSBub2V4Y2VwdAorIGNkZWYgdm9pZCBNUEZfc2V0X25hbihNUEYgKngpIG5v ZXhjZXB0CisgY2RlZiB2b2lkIE1QRl9zZXRfaW5mKE1QRiAqeCkgbm9leGNlcHQKKyBjZGVmIHZv aWQgTVBGX3NldF9uaW5mKE1QRiAqeCkgbm9leGNlcHQKKy1jZGVmIE1QRl9zZXRfc2koTVBGICp4 LCBsb25nIG4pIG5vZXhjZXB0CistY2RlZiBNUEZfc2V0X2ludChNUEYgKngsIG4pIG5vZXhjZXB0 CistY2RlZiBNUEZfc2V0X21hbl9leHAoTVBGICp4LCBtYW4sIGV4cCkgbm9leGNlcHQKKy1jZGVm IE1QRl9zZXRfdHVwbGUoTVBGICp4LCB0dXBsZSB2YWx1ZSkgbm9leGNlcHQKKy1jZGVmIE1QRl90 b190dXBsZShNUEYgKngpIG5vZXhjZXB0CistY2RlZiBNUEZfc2V0X2RvdWJsZShNUEYgKnIsIGRv dWJsZSB4KSBub2V4Y2VwdAorK2NkZWYgTVBGX3NldF9zaShNUEYgKngsIGxvbmcgbikKKytjZGVm IE1QRl9zZXRfaW50KE1QRiAqeCwgbikKKytjZGVmIE1QRl9zZXRfbWFuX2V4cChNUEYgKngsIG1h biwgZXhwKQorK2NkZWYgTVBGX3NldF90dXBsZShNUEYgKngsIHR1cGxlIHZhbHVlKQorK2NkZWYg TVBGX3RvX3R1cGxlKE1QRiAqeCkKKytjZGVmIE1QRl9zZXRfZG91YmxlKE1QRiAqciwgZG91Ymxl IHgpCisgY2RlZiBkb3VibGUgTVBGX3RvX2RvdWJsZShNUEYgKngsIGJpbnQgc3RyaWN0KSBub2V4 Y2VwdAorLWNkZWYgTVBGX3RvX2ZpeGVkKG1wel90IHIsIE1QRiAqeCwgbG9uZyBwcmVjLCBiaW50 IHRydW5jYXRlKSBub2V4Y2VwdAorK2NkZWYgTVBGX3RvX2ZpeGVkKG1wel90IHIsIE1QRiAqeCwg bG9uZyBwcmVjLCBiaW50IHRydW5jYXRlKQorIGNkZWYgaW50IE1QRl9zZ24oTVBGICp4KSBub2V4 Y2VwdAorIGNkZWYgdm9pZCBNUEZfbmVnKE1QRiAqciwgTVBGICpzKSBub2V4Y2VwdAorIGNkZWYg dm9pZCBNUEZfYWJzKE1QRiAqciwgTVBGICpzKSBub2V4Y2VwdAorLWNkZWYgTVBGX25vcm1hbGl6 ZShNUEYgKngsIE1Qb3B0cyBvcHRzKSBub2V4Y2VwdAorK2NkZWYgTVBGX25vcm1hbGl6ZShNUEYg KngsIE1Qb3B0cyBvcHRzKQorIGNkZWYgdm9pZCBNUEZfcG9zKE1QRiAqeCwgTVBGICp5LCBNUG9w dHMgb3B0cykgbm9leGNlcHQKKy1jZGVmIE1QRl9hZGQoTVBGICpyLCBNUEYgKnMsIE1QRiAqdCwg TVBvcHRzIG9wdHMpIG5vZXhjZXB0CistY2RlZiBNUEZfc3ViKE1QRiAqciwgTVBGICpzLCBNUEYg KnQsIE1Qb3B0cyBvcHRzKSBub2V4Y2VwdAorK2NkZWYgTVBGX2FkZChNUEYgKnIsIE1QRiAqcywg TVBGICp0LCBNUG9wdHMgb3B0cykKKytjZGVmIE1QRl9zdWIoTVBGICpyLCBNUEYgKnMsIE1QRiAq dCwgTVBvcHRzIG9wdHMpCisgY2RlZiBiaW50IE1QRl9lcShNUEYgKnMsIE1QRiAqdCkgbm9leGNl cHQKKyBjZGVmIGJpbnQgTVBGX25lKE1QRiAqcywgTVBGICp0KSBub2V4Y2VwdAorIGNkZWYgaW50 IE1QRl9jbXAoTVBGICpzLCBNUEYgKnQpIG5vZXhjZXB0CitAQCAtNDUsMjIgKzQ1LDIyIEBAIGNk ZWYgYmludCBNUEZfbHQoTVBGICpzLCBNUEYgKnQpIG5vZXhjZXB0CisgY2RlZiBiaW50IE1QRl9s ZShNUEYgKnMsIE1QRiAqdCkgbm9leGNlcHQKKyBjZGVmIGJpbnQgTVBGX2d0KE1QRiAqcywgTVBG ICp0KSBub2V4Y2VwdAorIGNkZWYgYmludCBNUEZfZ2UoTVBGICpzLCBNUEYgKnQpIG5vZXhjZXB0 CistY2RlZiBNUEZfbXVsKE1QRiAqciwgTVBGICpzLCBNUEYgKnQsIE1Qb3B0cyBvcHRzKSBub2V4 Y2VwdAorLWNkZWYgTVBGX2RpdihNUEYgKnIsIE1QRiAqcywgTVBGICp0LCBNUG9wdHMgb3B0cykg bm9leGNlcHQKKytjZGVmIE1QRl9tdWwoTVBGICpyLCBNUEYgKnMsIE1QRiAqdCwgTVBvcHRzIG9w dHMpCisrY2RlZiBNUEZfZGl2KE1QRiAqciwgTVBGICpzLCBNUEYgKnQsIE1Qb3B0cyBvcHRzKQor IGNkZWYgaW50IE1QRl9zcXJ0KE1QRiAqciwgTVBGICpzLCBNUG9wdHMgb3B0cykgbm9leGNlcHQK Ky1jZGVmIE1QRl9oeXBvdChNUEYgKnIsIE1QRiAqYSwgTVBGICpiLCBNUG9wdHMgb3B0cykgbm9l eGNlcHQKKy1jZGVmIE1QRl9wb3dfaW50KE1QRiAqciwgTVBGICp4LCBtcHpfdCBuLCBNUG9wdHMg b3B0cykgbm9leGNlcHQKKy1jZGVmIE1QRl9zZXRfZG91YmxlKE1QRiAqciwgZG91YmxlIHgpIG5v ZXhjZXB0CistY2RlZiBNUEZfZXhwKE1QRiAqeSwgTVBGICp4LCBNUG9wdHMgb3B0cykgbm9leGNl cHQKKy1jZGVmIE1QRl9jb21wbGV4X3NxcnQoTVBGICpjLCBNUEYgKmQsIE1QRiAqYSwgTVBGICpi LCBNUG9wdHMgb3B0cykgbm9leGNlcHQKKy1jZGVmIE1QRl9jb21wbGV4X2V4cChNUEYgKnJlLCBN UEYgKmltLCBNUEYgKmEsIE1QRiAqYiwgTVBvcHRzIG9wdHMpIG5vZXhjZXB0CisrY2RlZiBNUEZf aHlwb3QoTVBGICpyLCBNUEYgKmEsIE1QRiAqYiwgTVBvcHRzIG9wdHMpCisrY2RlZiBNUEZfcG93 X2ludChNUEYgKnIsIE1QRiAqeCwgbXB6X3QgbiwgTVBvcHRzIG9wdHMpCisrY2RlZiBNUEZfc2V0 X2RvdWJsZShNUEYgKnIsIGRvdWJsZSB4KQorK2NkZWYgTVBGX2V4cChNUEYgKnksIE1QRiAqeCwg TVBvcHRzIG9wdHMpCisrY2RlZiBNUEZfY29tcGxleF9zcXJ0KE1QRiAqYywgTVBGICpkLCBNUEYg KmEsIE1QRiAqYiwgTVBvcHRzIG9wdHMpCisrY2RlZiBNUEZfY29tcGxleF9leHAoTVBGICpyZSwg TVBGICppbSwgTVBGICphLCBNUEYgKmIsIE1Qb3B0cyBvcHRzKQorIGNkZWYgaW50IE1QRl9sb2co TVBGICp5LCBNUEYgKngsIE1Qb3B0cyBvcHRzKSBub2V4Y2VwdAorLWNkZWYgTVBGX3NldF9waShN UEYgKngsIE1Qb3B0cyBvcHRzKSBub2V4Y2VwdAorLWNkZWYgTVBGX3NldF9sbjIoTVBGICp4LCBN UG9wdHMgb3B0cykgbm9leGNlcHQKKy1jZGVmIE1QRl9jb3MoTVBGICpjLCBNUEYgKngsIE1Qb3B0 cyBvcHRzKSBub2V4Y2VwdAorLWNkZWYgTVBGX3NpbihNUEYgKmMsIE1QRiAqeCwgTVBvcHRzIG9w dHMpIG5vZXhjZXB0CistY2RlZiBNUEZfY29zX3NpbihNUEYgKmMsIE1QRiAqcywgTVBGICp4LCBN UG9wdHMgb3B0cykgbm9leGNlcHQKKytjZGVmIE1QRl9zZXRfcGkoTVBGICp4LCBNUG9wdHMgb3B0 cykKKytjZGVmIE1QRl9zZXRfbG4yKE1QRiAqeCwgTVBvcHRzIG9wdHMpCisrY2RlZiBNUEZfY29z KE1QRiAqYywgTVBGICp4LCBNUG9wdHMgb3B0cykKKytjZGVmIE1QRl9zaW4oTVBGICpjLCBNUEYg KngsIE1Qb3B0cyBvcHRzKQorK2NkZWYgTVBGX2Nvc19zaW4oTVBGICpjLCBNUEYgKnMsIE1QRiAq eCwgTVBvcHRzIG9wdHMpCisgY2RlZiBpbnQgTVBGX3BvdyhNUEYgKnosIE1QRiAqeCwgTVBGICp5 LCBNUG9wdHMgb3B0cykgZXhjZXB0IC0xCistY2RlZiBNUEZfY29tcGxleF9wb3coTVBGICp6cmUs IE1QRiAqemltLCBNUEYgKnhyZSwgTVBGICp4aW0sIE1QRiAqeXJlLCBNUEYgKnlpbSwgTVBvcHRz IG9wdHMpIG5vZXhjZXB0CisrY2RlZiBNUEZfY29tcGxleF9wb3coTVBGICp6cmUsIE1QRiAqemlt LCBNUEYgKnhyZSwgTVBGICp4aW0sIE1QRiAqeXJlLCBNUEYgKnlpbSwgTVBvcHRzIG9wdHMpCisg Y2RlZiBNUEZfaHlwc3VtKE1QRiAqYSwgTVBGICpiLCBpbnQgcCwgaW50IHEsIHBhcmFtX3R5cGVz LCBzdHIgenR5cGUsIGNvZWZmcywgXAorLSAgICB6LCBsb25nIHByZWMsIGxvbmcgd3AsIGxvbmcg ZXBzc2hpZnQsIGRpY3QgbWFnbml0dWRlX2NoZWNrLCBrd2FyZ3MpIG5vZXhjZXB0CisrICAgIHos IGxvbmcgcHJlYywgbG9uZyB3cCwgbG9uZyBlcHNzaGlmdCwgZGljdCBtYWduaXR1ZGVfY2hlY2ss IGt3YXJncykKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL21wbWF0aC9leHRfaW1wbC5weXgg Yi9zcmMvc2FnZS9saWJzL21wbWF0aC9leHRfaW1wbC5weXgKK2luZGV4IDE4MjdiODViOTQ4Li5j NTg0OTM3NGZkZCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2xpYnMvbXBtYXRoL2V4dF9pbXBsLnB5 eAorKysrIGIvc3JjL3NhZ2UvbGlicy9tcG1hdGgvZXh0X2ltcGwucHl4CitAQCAtNDIsNyArNDIs NyBAQCBmcm9tIHNhZ2UucmluZ3MuaW50ZWdlciBjaW1wb3J0IEludGVnZXIKKyAKKyBmcm9tIHNh Z2UubGlicy5nbXAucHlsb25nIGNpbXBvcnQgKgorIAorLWNkZWYgbXB6X3NldF9pbnRlZ2VyKG1w el90IHYsIHgpIG5vZXhjZXB0OgorK2NkZWYgbXB6X3NldF9pbnRlZ2VyKG1wel90IHYsIHgpOgor ICAgICBpZiBpc2luc3RhbmNlKHgsIGludCk6CisgICAgICAgICBtcHpfc2V0X3B5bG9uZyh2LCB4 KQorICAgICBlbGlmIGlzaW5zdGFuY2UoeCwgSW50ZWdlcik6CitAQCAtNTcsMTAgKzU3LDEwIEBA IGNkZWYgaW5saW5lIHZvaWQgbXB6X2FkZF9zaShtcHpfdCBhLCBtcHpfdCBiLCBsb25nIHgpIG5v ZXhjZXB0OgorICAgICAgICAgIyBjYXJlZnVsOiBvdmVyZmxvdyB3aGVuIG5lZ2F0aW5nIElOVF9N SU4KKyAgICAgICAgIG1wel9zdWJfdWkoYSwgYiwgPHVuc2lnbmVkIGxvbmc+KC14KSkKKyAKKy1j ZGVmIGlubGluZSBtcHppKG1wel90IG4pIG5vZXhjZXB0OgorK2NkZWYgaW5saW5lIG1wemkobXB6 X3Qgbik6CisgICAgIHJldHVybiBtcHpfZ2V0X3B5aW50bG9uZyhuKQorIAorLWNkZWYgaW5saW5l IG1wemwobXB6X3Qgbikgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUgbXB6bChtcHpfdCBuKToKKyAg ICAgcmV0dXJuIG1wel9nZXRfcHlsb25nKG4pCisgCisgIyBUaGlzIHNob3VsZCBiZSBkb25lIGJl dHRlcgorQEAgLTEyMCwxNCArMTIwLDE0IEBAIERFRiBTX0lORiA9IDMKKyBERUYgU19OSU5GID0g NAorIERFRiBTX05BTiA9IDUKKyAKKy1jZGVmIGlubGluZSBzdHIgcm5kbW9kZV90b19weXRob24o aW50IHJuZCkgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUgc3RyIHJuZG1vZGVfdG9fcHl0aG9uKGlu dCBybmQpOgorICAgICBpZiBybmQgPT0gUk9VTkRfTjogcmV0dXJuICduJworICAgICBpZiBybmQg PT0gUk9VTkRfRjogcmV0dXJuICdmJworICAgICBpZiBybmQgPT0gUk9VTkRfQzogcmV0dXJuICdj JworICAgICBpZiBybmQgPT0gUk9VTkRfRDogcmV0dXJuICdkJworICAgICBpZiBybmQgPT0gUk9V TkRfVTogcmV0dXJuICd1JworIAorLWNkZWYgaW5saW5lIHJuZG1vZGVfZnJvbV9weXRob24oc3Ry IHJuZCkgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUgcm5kbW9kZV9mcm9tX3B5dGhvbihzdHIgcm5k KToKKyAgICAgaWYgcm5kID09ICduJzogcmV0dXJuIFJPVU5EX04KKyAgICAgaWYgcm5kID09ICdm JzogcmV0dXJuIFJPVU5EX0YKKyAgICAgaWYgcm5kID09ICdjJzogcmV0dXJuIFJPVU5EX0MKK0BA IC0yMDUsNyArMjA1LDcgQEAgY2RlZiBpbmxpbmUgdm9pZCBNUEZfc2V0X25pbmYoTVBGICp4KSBu b2V4Y2VwdDoKKyAgICAgIiIiU2V0IHZhbHVlIHRvIC1pbmZpbml0eS4iIiIKKyAgICAgeC5zcGVj aWFsID0gU19OSU5GCisgCistY2RlZiBNUEZfc2V0X3NpKE1QRiAqeCwgbG9uZyBuKSBub2V4Y2Vw dDoKKytjZGVmIE1QRl9zZXRfc2koTVBGICp4LCBsb25nIG4pOgorICAgICAiIiJTZXQgdmFsdWUg dG8gdGhhdCBvZiBhIGdpdmVuIEMgKGxvbmcpIGludGVnZXIuIiIiCisgICAgIGlmIG46CisgICAg ICAgICB4LnNwZWNpYWwgPSBTX05PUk1BTAorQEAgLTIxNSw3ICsyMTUsNyBAQCBjZGVmIE1QRl9z ZXRfc2koTVBGICp4LCBsb25nIG4pIG5vZXhjZXB0OgorICAgICBlbHNlOgorICAgICAgICAgTVBG X3NldF96ZXJvKHgpCisgCistY2RlZiBNUEZfc2V0X2ludChNUEYgKngsIG4pIG5vZXhjZXB0Ogor K2NkZWYgTVBGX3NldF9pbnQoTVBGICp4LCBuKToKKyAgICAgIiIiU2V0IHZhbHVlIHRvIHRoYXQg b2YgYSBnaXZlbiBQeXRob24gaW50ZWdlci4iIiIKKyAgICAgeC5zcGVjaWFsID0gU19OT1JNQUwK KyAgICAgbXB6X3NldF9pbnRlZ2VyKHgubWFuLCBuKQorQEAgLTIyNSw3ICsyMjUsNyBAQCBjZGVm IE1QRl9zZXRfaW50KE1QRiAqeCwgbikgbm9leGNlcHQ6CisgICAgIGVsc2U6CisgICAgICAgICBN UEZfc2V0X3plcm8oeCkKKyAKKy1jZGVmIE1QRl9zZXRfbWFuX2V4cChNUEYgKngsIG1hbiwgZXhw KSBub2V4Y2VwdDoKKytjZGVmIE1QRl9zZXRfbWFuX2V4cChNUEYgKngsIG1hbiwgZXhwKToKKyAg ICAgIiIiCisgICAgIFNldCB2YWx1ZSB0byBtYW4qMl5leHAgd2hlcmUgbWFuLCBleHAgbWF5IGJl IG9mIGFueSBhcHByb3ByaWF0ZQorICAgICBQeXRob24gaW50ZWdlciB0eXBlcy4KK0BAIC0yNjAs NyArMjYwLDcgQEAgY2RlZiB0dXBsZSBfbXBmX2ZuYW4gPSAoMCwgTVBaX1pFUk8sIC0xMjMsIC0x KQorIGNkZWYgdHVwbGUgX21wZl9maW5mID0gKDAsIE1QWl9aRVJPLCAtNDU2LCAtMikKKyBjZGVm IHR1cGxlIF9tcGZfZm5pbmYgPSAoMSwgTVBaX1pFUk8sIC03ODksIC0zKQorIAorLWNkZWYgTVBG X3NldF90dXBsZShNUEYgKngsIHR1cGxlIHZhbHVlKSBub2V4Y2VwdDoKKytjZGVmIE1QRl9zZXRf dHVwbGUoTVBGICp4LCB0dXBsZSB2YWx1ZSk6CisgICAgICIiIgorICAgICBTZXQgdmFsdWUgb2Yg YW4gTVBGIHRvIHRoYXQgb2YgYSBub3JtYWxpemVkIChzaWduLCBtYW4sIGV4cCwgYmMpIHR1cGxl CisgICAgIGluIHRoZSBmb3JtYXQgdXNlZCBieSBtcG1hdGgubGlibXAuCitAQCAtMjg5LDcgKzI4 OSw3IEBAIGNkZWYgTVBGX3NldF90dXBsZShNUEYgKngsIHR1cGxlIHZhbHVlKSBub2V4Y2VwdDoK KyAgICAgZWxzZToKKyAgICAgICAgIE1QRl9zZXRfbmFuKHgpCisgCistY2RlZiBNUEZfdG9fdHVw bGUoTVBGICp4KSBub2V4Y2VwdDoKKytjZGVmIE1QRl90b190dXBsZShNUEYgKngpOgorICAgICAi IiJDb252ZXJ0IE1QRiB2YWx1ZSB0byAoc2lnbiwgbWFuLCBleHAsIGJjKSB0dXBsZS4iIiIKKyAg ICAgY2RlZiBJbnRlZ2VyIG1hbgorICAgICBpZiB4LnNwZWNpYWw6CitAQCAtMzA5LDcgKzMwOSw3 IEBAIGNkZWYgTVBGX3RvX3R1cGxlKE1QRiAqeCkgbm9leGNlcHQ6CisgICAgIGJjID0gbXB6X3Np emVpbmJhc2UoeC5tYW4sIDIpCisgICAgIHJldHVybiAoc2lnbiwgbWFuLCBleHAsIGJjKQorIAor LWNkZWYgTVBGX3NldF9kb3VibGUoTVBGICpyLCBkb3VibGUgeCkgbm9leGNlcHQ6CisrY2RlZiBN UEZfc2V0X2RvdWJsZShNUEYgKnIsIGRvdWJsZSB4KToKKyAgICAgIiIiCisgICAgIFNldCByIHRv IHRoZSB2YWx1ZSBvZiBhIEMgZG91YmxlIHguCisgICAgICIiIgorQEAgLTM2Niw3ICszNjYsNyBA QCBjZGVmIGRvdWJsZSBNUEZfdG9fZG91YmxlKE1QRiAqeCwgYmludCBzdHJpY3QpIG5vZXhjZXB0 OgorICAgICAgICAgcmV0dXJuIF9kb3VibGVfbmluZgorICAgICByZXR1cm4gX2RvdWJsZV9uYW4K KyAKKy1jZGVmIE1QRl90b19maXhlZChtcHpfdCByLCBNUEYgKngsIGxvbmcgcHJlYywgYmludCB0 cnVuY2F0ZSkgbm9leGNlcHQ6CisrY2RlZiBNUEZfdG9fZml4ZWQobXB6X3QgciwgTVBGICp4LCBs b25nIHByZWMsIGJpbnQgdHJ1bmNhdGUpOgorICAgICAiIiIKKyAgICAgU2V0IHIgPSB4LCByIGJl aW5nIGluIHRoZSBmb3JtYXQgb2YgYSBmaXhlZC1wb2ludCBudW1iZXIgd2l0aCBwcmVjIGJpdHMu CisgICAgIEZsb29yIGRpdmlzaW9uIGlzIHVzZWQgdW5sZXNzIHRydW5jYXRlPVRydWUgaW4gd2hp Y2ggY2FzZQorQEAgLTQ0Myw3ICs0NDMsNyBAQCBjZGVmIHZvaWQgTVBGX2FicyhNUEYgKnIsIE1Q RiAqcykgbm9leGNlcHQ6CisgICAgIGlmIHIgaXMgbm90IHM6CisgICAgICAgICBtcHpfc2V0KHIu ZXhwLCBzLmV4cCkKKyAKKy1jZGVmIE1QRl9ub3JtYWxpemUoTVBGICp4LCBNUG9wdHMgb3B0cykg bm9leGNlcHQ6CisrY2RlZiBNUEZfbm9ybWFsaXplKE1QRiAqeCwgTVBvcHRzIG9wdHMpOgorICAg ICAiIiIKKyAgICAgTm9ybWFsaXplLgorIAorQEAgLTYxNiw3ICs2MTYsNyBAQCBjZGVmIHZvaWQg X211bF9zcGVjaWFsKE1QRiAqciwgTVBGICpzLCBNUEYgKnQpIG5vZXhjZXB0OgorICAgICAgICAg ZWxzZToKKyAgICAgICAgICAgICBNUEZfc2V0X25pbmYocikKKyAKKy1jZGVmIF9kaXZfc3BlY2lh bChNUEYgKnIsIE1QRiAqcywgTVBGICp0KSBub2V4Y2VwdDoKKytjZGVmIF9kaXZfc3BlY2lhbChN UEYgKnIsIE1QRiAqcywgTVBGICp0KToKKyAgICAgIyBUT0RPOiBoYW5kbGUgc2lnbmVkIHplcm9z IGNvcnJlY3RseQorICAgICBpZiBzLnNwZWNpYWwgPT0gU19OQU4gb3IgdC5zcGVjaWFsID09IFNf TkFOOgorICAgICAgICAgTVBGX3NldF9uYW4ocikKK0BAIC02MzcsNyArNjM3LDcgQEAgY2RlZiBf ZGl2X3NwZWNpYWwoTVBGICpyLCBNUEYgKnMsIE1QRiAqdCkgbm9leGNlcHQ6CisgICAgIGVsaWYg dC5zcGVjaWFsID09IFNfSU5GIG9yIHQuc3BlY2lhbCA9PSBTX05JTkY6CisgICAgICAgICBNUEZf c2V0X3plcm8ocikKKyAKKy1jZGVmIF9hZGRfcGVydHVyYmF0aW9uKE1QRiAqciwgTVBGICpzLCBp bnQgc2lnbiwgTVBvcHRzIG9wdHMpIG5vZXhjZXB0OgorK2NkZWYgX2FkZF9wZXJ0dXJiYXRpb24o TVBGICpyLCBNUEYgKnMsIGludCBzaWduLCBNUG9wdHMgb3B0cyk6CisgICAgIGNkZWYgbG9uZyBz aGlmdAorICAgICBpZiBvcHRzLnJvdW5kaW5nID09IFJPVU5EX046CisgICAgICAgICBNUEZfc2V0 KHIsIHMpCitAQCAtNjUwLDcgKzY1MCw3IEBAIGNkZWYgX2FkZF9wZXJ0dXJiYXRpb24oTVBGICpy LCBNUEYgKnMsIGludCBzaWduLCBNUG9wdHMgb3B0cykgbm9leGNlcHQ6CisgICAgICAgICBtcHpf c3ViX3VpKHIuZXhwLCBzLmV4cCwgc2hpZnQpCisgICAgICAgICBNUEZfbm9ybWFsaXplKHIsIG9w dHMpCisgCistY2RlZiBNUEZfYWRkKE1QRiAqciwgTVBGICpzLCBNUEYgKnQsIE1Qb3B0cyBvcHRz KSBub2V4Y2VwdDoKKytjZGVmIE1QRl9hZGQoTVBGICpyLCBNUEYgKnMsIE1QRiAqdCwgTVBvcHRz IG9wdHMpOgorICAgICAiIiIKKyAgICAgU2V0IHIgPSBzICsgdCwgd2l0aCBleGFjdCByb3VuZGlu Zy4KKyAKK0BAIC03MDQsNyArNzA0LDcgQEAgY2RlZiBNUEZfYWRkKE1QRiAqciwgTVBGICpzLCBN UEYgKnQsIE1Qb3B0cyBvcHRzKSBub2V4Y2VwdDoKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAg ICAgX2FkZF9wZXJ0dXJiYXRpb24ociwgdCwgbXB6X3NnbihzLm1hbiksIG9wdHMpCisgCistY2Rl ZiBNUEZfc3ViKE1QRiAqciwgTVBGICpzLCBNUEYgKnQsIE1Qb3B0cyBvcHRzKSBub2V4Y2VwdDoK KytjZGVmIE1QRl9zdWIoTVBGICpyLCBNUEYgKnMsIE1QRiAqdCwgTVBvcHRzIG9wdHMpOgorICAg ICAiIiIKKyAgICAgU2V0IHIgPSBzIC0gdCwgd2l0aCBleGFjdCByb3VuZGluZy4KKyAKK0BAIC04 NTAsNyArODUwLDcgQEAgY2RlZiBiaW50IE1QRl9nZShNUEYgKnMsIE1QRiAqdCkgbm9leGNlcHQ6 CisgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgcmV0dXJuIE1QRl9jbXAocywgdCkgPj0gMAor IAorLWNkZWYgTVBGX211bChNUEYgKnIsIE1QRiAqcywgTVBGICp0LCBNUG9wdHMgb3B0cykgbm9l eGNlcHQ6CisrY2RlZiBNUEZfbXVsKE1QRiAqciwgTVBGICpzLCBNUEYgKnQsIE1Qb3B0cyBvcHRz KToKKyAgICAgIiIiCisgICAgIFNldCByID0gcyAqIHQsIHdpdGggY29ycmVjdCByb3VuZGluZy4K KyAKK0BAIC04NjYsNyArODY2LDcgQEAgY2RlZiBNUEZfbXVsKE1QRiAqciwgTVBGICpzLCBNUEYg KnQsIE1Qb3B0cyBvcHRzKSBub2V4Y2VwdDoKKyAgICAgICAgIGlmIG9wdHMucHJlYzoKKyAgICAg ICAgICAgICBNUEZfbm9ybWFsaXplKHIsIG9wdHMpCisgCistY2RlZiBNUEZfZGl2KE1QRiAqciwg TVBGICpzLCBNUEYgKnQsIE1Qb3B0cyBvcHRzKSBub2V4Y2VwdDoKKytjZGVmIE1QRl9kaXYoTVBG ICpyLCBNUEYgKnMsIE1QRiAqdCwgTVBvcHRzIG9wdHMpOgorICAgICAiIiIKKyAgICAgU2V0IHIg PSBzIC8gdCwgd2l0aCBjb3JyZWN0IHJvdW5kaW5nLgorICAgICAiIiIKK0BAIC05NjEsNyArOTYx LDcgQEAgY2RlZiBpbnQgTVBGX3NxcnQoTVBGICpyLCBNUEYgKnMsIE1Qb3B0cyBvcHRzKSBub2V4 Y2VwdDoKKyAgICAgTVBGX25vcm1hbGl6ZShyLCBvcHRzKQorICAgICByZXR1cm4gMAorIAorLWNk ZWYgTVBGX2h5cG90KE1QRiAqciwgTVBGICphLCBNUEYgKmIsIE1Qb3B0cyBvcHRzKSBub2V4Y2Vw dDoKKytjZGVmIE1QRl9oeXBvdChNUEYgKnIsIE1QRiAqYSwgTVBGICpiLCBNUG9wdHMgb3B0cyk6 CisgICAgICIiIgorICAgICBTZXQgciA9IHNxcnQoYV4yICsgYl4yKQorICAgICAiIiIKK0BAIC05 ODEsNyArOTgxLDcgQEAgY2RlZiBNUEZfaHlwb3QoTVBGICpyLCBNUEYgKmEsIE1QRiAqYiwgTVBv cHRzIG9wdHMpIG5vZXhjZXB0OgorICAgICBNUEZfYWRkKHIsICZ0bXAxLCAmdG1wMiwgdG1wX29w dHMpCisgICAgIE1QRl9zcXJ0KHIsIHIsIG9wdHMpCisgCistY2RlZiBNUEZfcG93X2ludChNUEYg KnIsIE1QRiAqeCwgbXB6X3QgbiwgTVBvcHRzIG9wdHMpIG5vZXhjZXB0OgorK2NkZWYgTVBGX3Bv d19pbnQoTVBGICpyLCBNUEYgKngsIG1wel90IG4sIE1Qb3B0cyBvcHRzKToKKyAgICAgIiIiCisg ICAgIFNldCByID0geCAqKiBuLiBDdXJyZW50bHkgZmFsbHMgYmFjayB0byBtcG1hdGgubGlibXAK KyAgICAgdW5sZXNzIG4gaXMgdGlueS4KK0BAIC0xMDc0LDcgKzEwNzQsNyBAQCBjZGVmIGludCBf cGlfcHJlYyA9IC0xCisgY2RlZiBtcHpfdCBfbG4yX3ZhbHVlCisgY2RlZiBpbnQgX2xuMl9wcmVj ID0gLTEKKyAKKy1jZGVmIG1wel9zZXRfcGkobXB6X3QgeCwgaW50IHByZWMpIG5vZXhjZXB0Ogor K2NkZWYgbXB6X3NldF9waShtcHpfdCB4LCBpbnQgcHJlYyk6CisgICAgICIiIgorICAgICBTZXQg eCA9IHBpIGFzIGEgZml4ZWQtcG9pbnQgbnVtYmVyLgorICAgICAiIiIKK0BAIC0xMDkwLDcgKzEw OTAsNyBAQCBjZGVmIG1wel9zZXRfcGkobXB6X3QgeCwgaW50IHByZWMpIG5vZXhjZXB0OgorICAg ICAgICAgbXB6X3NldCh4LCBfcGlfdmFsdWUpCisgICAgICAgICBfcGlfcHJlYyA9IHByZWMKKyAK Ky1jZGVmIG1wel9zZXRfbG4yKG1wel90IHgsIGludCBwcmVjKSBub2V4Y2VwdDoKKytjZGVmIG1w el9zZXRfbG4yKG1wel90IHgsIGludCBwcmVjKToKKyAgICAgIiIiCisgICAgIFNldCB4ID0gbG4o MikgYXMgYSBmaXhlZC1wb2ludCBudW1iZXIuCisgICAgICIiIgorQEAgLTExMjIsNyArMTEyMiw3 IEBAIGNkZWYgdm9pZCBfY3lfZXhwX21wZnIobXB6X3QgeSwgbXB6X3QgeCwgaW50IHByZWMpIG5v ZXhjZXB0OgorICAgICBtcGZyX2NsZWFyKHlmKQorICAgICBtcGZyX2NsZWFyKHhmKQorIAorLWNk ZWYgY3lfZXhwX2Jhc2VjYXNlKG1wel90IHksIG1wel90IHgsIGludCBwcmVjKSBub2V4Y2VwdDoK KytjZGVmIGN5X2V4cF9iYXNlY2FzZShtcHpfdCB5LCBtcHpfdCB4LCBpbnQgcHJlYyk6CisgICAg ICIiIgorICAgICBDb21wdXRlcyB5ID0gZXhwKHgpIGZvciBmaXhlZC1wb2ludCBudW1iZXJzIHkg YW5kIHgsIGFzc3VtaW5nCisgICAgIHRoYXQgeCBpcyBzbWFsbCAofHh8IH48IDEpLiBBdCBzbWFs bCBwcmVjaXNpb25zLCB0aGlzIGZ1bmN0aW9uCitAQCAtMTE3NCw3ICsxMTc0LDcgQEAgY2RlZiBj eV9leHBfYmFzZWNhc2UobXB6X3QgeSwgbXB6X3QgeCwgaW50IHByZWMpIG5vZXhjZXB0OgorICAg ICBtcHpfY2xlYXIoYSkKKyAKKyAKKy1jZGVmIE1QRl9leHAoTVBGICp5LCBNUEYgKngsIE1Qb3B0 cyBvcHRzKSBub2V4Y2VwdDoKKytjZGVmIE1QRl9leHAoTVBGICp5LCBNUEYgKngsIE1Qb3B0cyBv cHRzKToKKyAgICAgIiIiCisgICAgIFNldCB5ID0gZXhwKHgpLgorICAgICAiIiIKK0BAIC0xMjI5 LDcgKzEyMjksNyBAQCBjZGVmIE1QRl9leHAoTVBGICp5LCBNUEYgKngsIE1Qb3B0cyBvcHRzKSBu b2V4Y2VwdDoKKyAgICAgTVBGX25vcm1hbGl6ZSh5LCBvcHRzKQorIAorIAorLWNkZWYgTVBGX2Nv bXBsZXhfc3FydChNUEYgKmMsIE1QRiAqZCwgTVBGICphLCBNUEYgKmIsIE1Qb3B0cyBvcHRzKSBu b2V4Y2VwdDoKKytjZGVmIE1QRl9jb21wbGV4X3NxcnQoTVBGICpjLCBNUEYgKmQsIE1QRiAqYSwg TVBGICpiLCBNUG9wdHMgb3B0cyk6CisgICAgICIiIgorICAgICBTZXQgYytkaSA9IHNxcnQoYSti aSkuCisgCitAQCAtMTMyMSw3ICsxMzIxLDcgQEAgY2RlZiBpbnQgTVBGX2dldF9tcGZyX292ZXJm bG93KG1wZnJfdCB5LCBNUEYgKngpIG5vZXhjZXB0OgorICAgICBlbHNlOgorICAgICAgICAgcmV0 dXJuIDEKKyAKKy1jZGVmIE1QRl9zZXRfbXBmcihNUEYgKnksIG1wZnJfdCB4LCBNUG9wdHMgb3B0 cykgbm9leGNlcHQ6CisrY2RlZiBNUEZfc2V0X21wZnIoTVBGICp5LCBtcGZyX3QgeCwgTVBvcHRz IG9wdHMpOgorICAgICAiIiIKKyAgICAgQ29udmVydCB0aGUgTVBGUiBudW1iZXIgeCB0byBhIG5v cm1hbGl6ZWQgTVBGIHkuCisgICAgIGluZi9uYW4gYW5kIHplcm8gYXJlIGhhbmRsZWQuCitAQCAt MTQwMCw3ICsxNDAwLDcgQEAgY2RlZiBpbnQgTVBGX2xvZyhNUEYgKnksIE1QRiAqeCwgTVBvcHRz IG9wdHMpIG5vZXhjZXB0OgorICAgICBtcGZyX2NsZWFyKHl5KQorICAgICByZXR1cm4gbmVnYXRp dmUKKyAKKy1jZGVmIE1QRl9zZXRfcGkoTVBGICp4LCBNUG9wdHMgb3B0cykgbm9leGNlcHQ6Cisr Y2RlZiBNUEZfc2V0X3BpKE1QRiAqeCwgTVBvcHRzIG9wdHMpOgorICAgICAiIiIKKyAgICAgU2V0 IHggPSBwaS4KKyAgICAgIiIiCitAQCAtMTQwOSw3ICsxNDA5LDcgQEAgY2RlZiBNUEZfc2V0X3Bp KE1QRiAqeCwgTVBvcHRzIG9wdHMpIG5vZXhjZXB0OgorICAgICBtcHpfc2V0X3NpKHguZXhwLCAt KG9wdHMucHJlYysyMCkpCisgICAgIE1QRl9ub3JtYWxpemUoeCwgb3B0cykKKyAKKy1jZGVmIE1Q Rl9zZXRfbG4yKE1QRiAqeCwgTVBvcHRzIG9wdHMpIG5vZXhjZXB0OgorK2NkZWYgTVBGX3NldF9s bjIoTVBGICp4LCBNUG9wdHMgb3B0cyk6CisgICAgICIiIgorICAgICBTZXQgeCA9IGxuKDIpLgor ICAgICAiIiIKK0BAIC0xNDkzLDcgKzE0OTMsNyBAQCBjZGVmIG1wel90IGxvZ19pbnRfY2FjaGVb TUFYX0xPR19JTlRfQ0FDSEUrMV0KKyBjZGVmIGxvbmcgbG9nX2ludF9jYWNoZV9wcmVjW01BWF9M T0dfSU5UX0NBQ0hFKzFdCisgY2RlZiBiaW50IGxvZ19pbnRfY2FjaGVfaW5pdGlhbGl6ZWQgPSAw CisgCistY2RlZiBtcHpfbG9nX2ludChtcHpfdCB2LCBtcHpfdCBuLCBpbnQgcHJlYykgbm9leGNl cHQ6CisrY2RlZiBtcHpfbG9nX2ludChtcHpfdCB2LCBtcHpfdCBuLCBpbnQgcHJlYyk6CisgICAg ICIiIgorICAgICBTZXQgdiA9IGxvZyhuKSB3aGVyZSBuIGlzIGFuIGludGVnZXIgYW5kIHYgaXMg YSBmaXhlZC1wb2ludCBudW1iZXIKKyAgICAgd2l0aCB0aGUgc3BlY2lmaWVkIHByZWNpc2lvbi4K K0BAIC0xNTQzLDcgKzE1NDMsNyBAQCBkZWYgbG9nX2ludF9maXhlZChuLCBsb25nIHByZWMsIGxu Mj1Ob25lKToKKyAgICAgcmV0dXJuIHQKKyAKKyAKKy1jZGVmIF9NUEZfY29zX3B5dGhvbihNUEYg KmMsIE1QRiAqeCwgTVBvcHRzIG9wdHMpIG5vZXhjZXB0OgorK2NkZWYgX01QRl9jb3NfcHl0aG9u KE1QRiAqYywgTVBGICp4LCBNUG9wdHMgb3B0cyk6CisgICAgICIiIgorICAgICBDb21wdXRlcyBj ID0gY29zKHgpIGJ5IGNhbGxpbmcgdGhlIG1wbWF0aC5saWJtcCBQeXRob24gaW1wbGVtZW50YXRp b24uCisgICAgICIiIgorQEAgLTE1NTIsNyArMTU1Miw3IEBAIGNkZWYgX01QRl9jb3NfcHl0aG9u KE1QRiAqYywgTVBGICp4LCBNUG9wdHMgb3B0cykgbm9leGNlcHQ6CisgICAgICAgICAgICAgcm5k bW9kZV90b19weXRob24ob3B0cy5yb3VuZGluZyksIDEsIEZhbHNlKQorICAgICBNUEZfc2V0X3R1 cGxlKGMsIGN0KQorIAorLWNkZWYgX01QRl9zaW5fcHl0aG9uKE1QRiAqcywgTVBGICp4LCBNUG9w dHMgb3B0cykgbm9leGNlcHQ6CisrY2RlZiBfTVBGX3Npbl9weXRob24oTVBGICpzLCBNUEYgKngs IE1Qb3B0cyBvcHRzKToKKyAgICAgIiIiCisgICAgIENvbXB1dGVzIHMgPSBzaW4oeCkgYnkgY2Fs bGluZyB0aGUgbXBtYXRoLmxpYm1wIFB5dGhvbiBpbXBsZW1lbnRhdGlvbi4KKyAgICAgIiIiCitA QCAtMTU2Miw3ICsxNTYyLDcgQEAgY2RlZiBfTVBGX3Npbl9weXRob24oTVBGICpzLCBNUEYgKngs IE1Qb3B0cyBvcHRzKSBub2V4Y2VwdDoKKyAgICAgTVBGX3NldF90dXBsZShzLCBzdCkKKyAKKyAK Ky1jZGVmIE1QRl9jb3MoTVBGICpjLCBNUEYgKngsIE1Qb3B0cyBvcHRzKSBub2V4Y2VwdDoKKytj ZGVmIE1QRl9jb3MoTVBGICpjLCBNUEYgKngsIE1Qb3B0cyBvcHRzKToKKyAgICAgIiIiCisgICAg IFNldCBjID0gY29zKHgpCisgICAgICIiIgorQEAgLTE1ODUsNyArMTU4NSw3IEBAIGNkZWYgTVBG X2NvcyhNUEYgKmMsIE1QRiAqeCwgTVBvcHRzIG9wdHMpIG5vZXhjZXB0OgorICAgICBtcGZyX2Ns ZWFyKHhmKQorICAgICBtcGZyX2NsZWFyKGNmKQorIAorLWNkZWYgTVBGX3NpbihNUEYgKnMsIE1Q RiAqeCwgTVBvcHRzIG9wdHMpIG5vZXhjZXB0OgorK2NkZWYgTVBGX3NpbihNUEYgKnMsIE1QRiAq eCwgTVBvcHRzIG9wdHMpOgorICAgICAiIiIKKyAgICAgU2V0IHMgPSBzaW4oeCkKKyAgICAgIiIi CitAQCAtMTYwOCw3ICsxNjA4LDcgQEAgY2RlZiBNUEZfc2luKE1QRiAqcywgTVBGICp4LCBNUG9w dHMgb3B0cykgbm9leGNlcHQ6CisgICAgIG1wZnJfY2xlYXIoeGYpCisgICAgIG1wZnJfY2xlYXIo c2YpCisgCistY2RlZiBNUEZfY29zX3NpbihNUEYgKmMsIE1QRiAqcywgTVBGICp4LCBNUG9wdHMg b3B0cykgbm9leGNlcHQ6CisrY2RlZiBNUEZfY29zX3NpbihNUEYgKmMsIE1QRiAqcywgTVBGICp4 LCBNUG9wdHMgb3B0cyk6CisgICAgICIiIgorICAgICBTZXQgYyA9IGNvcyh4KSwgcyA9IHNpbih4 KQorICAgICAiIiIKK0BAIC0xNjM4LDcgKzE2MzgsNyBAQCBjZGVmIE1QRl9jb3Nfc2luKE1QRiAq YywgTVBGICpzLCBNUEYgKngsIE1Qb3B0cyBvcHRzKSBub2V4Y2VwdDoKKyAgICAgbXBmcl9jbGVh cihzZikKKyAKKyAKKy1jZGVmIE1QRl9jb21wbGV4X2V4cChNUEYgKnJlLCBNUEYgKmltLCBNUEYg KmEsIE1QRiAqYiwgTVBvcHRzIG9wdHMpIG5vZXhjZXB0OgorK2NkZWYgTVBGX2NvbXBsZXhfZXhw KE1QRiAqcmUsIE1QRiAqaW0sIE1QRiAqYSwgTVBGICpiLCBNUG9wdHMgb3B0cyk6CisgICAgICIi IgorICAgICBTZXQgcmUraW0qaSA9IGV4cChhK2JpKQorICAgICAiIiIKK0BAIC0xNzUyLDcgKzE3 NTIsNyBAQCBjZGVmIGludCBNUEZfcG93KE1QRiAqeiwgTVBGICp4LCBNUEYgKnksIE1Qb3B0cyBv cHRzKSBleGNlcHQgLTE6CisgICAgIE1QRl9jbGVhcigmdykKKyAgICAgcmV0dXJuIDAKKyAKKy1j ZGVmIE1QRl9jb21wbGV4X3NxdWFyZShNUEYgKnJlLCBNUEYgKmltLCBNUEYgKmEsIE1QRiAqYiwg TVBvcHRzIG9wdHMpIG5vZXhjZXB0OgorK2NkZWYgTVBGX2NvbXBsZXhfc3F1YXJlKE1QRiAqcmUs IE1QRiAqaW0sIE1QRiAqYSwgTVBGICpiLCBNUG9wdHMgb3B0cyk6CisgICAgICIiIgorICAgICBT ZXQgcmUraW0qaSA9IChhK2JpKV4yID0gYV4yLWJeMiwgMmFiKmkuCisgICAgICIiIgorQEAgLTE3 NjksNyArMTc2OSw3IEBAIGNkZWYgTVBGX2NvbXBsZXhfc3F1YXJlKE1QRiAqcmUsIE1QRiAqaW0s IE1QRiAqYSwgTVBGICpiLCBNUG9wdHMgb3B0cykgbm9leGNlcHQ6CisgICAgIE1QRl9jbGVhcigm dSkKKyAKKyAKKy1jZGVmIE1QRl9jb21wbGV4X3JlY2lwcm9jYWwoTVBGICpyZSwgTVBGICppbSwg TVBGICphLCBNUEYgKmIsIE1Qb3B0cyBvcHRzKSBub2V4Y2VwdDoKKytjZGVmIE1QRl9jb21wbGV4 X3JlY2lwcm9jYWwoTVBGICpyZSwgTVBGICppbSwgTVBGICphLCBNUEYgKmIsIE1Qb3B0cyBvcHRz KToKKyAgICAgIiIiCisgICAgIFNldCByZStpbSppID0gMS8oYStiaSksIGkuZS4gY29tcHV0ZSB0 aGUgcmVjaXByb2NhbCBvZgorICAgICBhIGNvbXBsZXggbnVtYmVyLgorQEAgLTE3OTMsNyArMTc5 Myw3IEBAIGNkZWYgTVBGX2NvbXBsZXhfcmVjaXByb2NhbChNUEYgKnJlLCBNUEYgKmltLCBNUEYg KmEsIE1QRiAqYiwgTVBvcHRzIG9wdHMpIG5vZXhjCisgICAgIE1QRl9jbGVhcigmbSkKKyAKKyAK Ky1jZGVmIE1QRl9jb21wbGV4X3Bvd19pbnQoTVBGICp6cmUsIE1QRiAqemltLCBNUEYgKnhyZSwg TVBGICp4aW0sIG1wel90IG4sIE1Qb3B0cyBvcHRzKSBub2V4Y2VwdDoKKytjZGVmIE1QRl9jb21w bGV4X3Bvd19pbnQoTVBGICp6cmUsIE1QRiAqemltLCBNUEYgKnhyZSwgTVBGICp4aW0sIG1wel90 IG4sIE1Qb3B0cyBvcHRzKToKKyAgICAgIiIiCisgICAgIFNldCB6cmUremltKmkgPSAoeHJlK3hp bSkgXiBuLCBpLmUuIHJhaXNlIGEgY29tcGxleCBudW1iZXIgdG8gYW4gaW50ZWdlciBwb3dlci4K KyAgICAgIiIiCitAQCAtMTg1OSw3ICsxODU5LDcgQEAgY2RlZiBNUEZfY29tcGxleF9wb3dfaW50 KE1QRiAqenJlLCBNUEYgKnppbSwgTVBGICp4cmUsIE1QRiAqeGltLCBtcHpfdCBuLCBNUG9wdHMK KyAgICAgTVBGX3NldF90dXBsZSh6aW0sIHZpKQorIAorIAorLWNkZWYgTVBGX2NvbXBsZXhfcG93 X3JlKE1QRiAqenJlLCBNUEYgKnppbSwgTVBGICp4cmUsIE1QRiAqeGltLCBNUEYgKnksIE1Qb3B0 cyBvcHRzKSBub2V4Y2VwdDoKKytjZGVmIE1QRl9jb21wbGV4X3Bvd19yZShNUEYgKnpyZSwgTVBG ICp6aW0sIE1QRiAqeHJlLCBNUEYgKnhpbSwgTVBGICp5LCBNUG9wdHMgb3B0cyk6CisgICAgICIi IgorICAgICBTZXQgKHpyZSt6aW0qaSkgPSAoeHJlK3hpbSppKSBeIHksIGkuZS4gcmFpc2UgYSBj b21wbGV4IG51bWJlcgorICAgICB0byBhIHJlYWwgcG93ZXIuCitAQCAtMTkwNCw3ICsxOTA0LDcg QEAgY2RlZiBNUEZfY29tcGxleF9wb3dfcmUoTVBGICp6cmUsIE1QRiAqemltLCBNUEYgKnhyZSwg TVBGICp4aW0sIE1QRiAqeSwgTVBvcHRzIG8KKyAgICAgTVBGX3NldF90dXBsZSh6aW0sIHZpKQor IAorIAorLWNkZWYgTVBGX2NvbXBsZXhfcG93KE1QRiAqenJlLCBNUEYgKnppbSwgTVBGICp4cmUs IE1QRiAqeGltLCBNUEYgKnlyZSwgTVBGICp5aW0sIE1Qb3B0cyBvcHRzKSBub2V4Y2VwdDoKKytj ZGVmIE1QRl9jb21wbGV4X3BvdyhNUEYgKnpyZSwgTVBGICp6aW0sIE1QRiAqeHJlLCBNUEYgKnhp bSwgTVBGICp5cmUsIE1QRiAqeWltLCBNUG9wdHMgb3B0cyk6CisgICAgICIiIgorICAgICBTZXQg KHpyZSArIHppbSppKSA9ICh4cmUreGltKmkpIF4gKHlyZSt5aW0qaSkuCisgICAgICIiIgorQEAg LTE5MjIsNyArMTkyMiw3IEBAIGNkZWYgTVBGX2NvbXBsZXhfcG93KE1QRiAqenJlLCBNUEYgKnpp bSwgTVBGICp4cmUsIE1QRiAqeGltLCBNUEYgKnlyZSwgTVBGICp5aW0sCisgICAgIE1QRl9zZXRf dHVwbGUoemltLCB2aSkKKyAKKyAKKy1jZGVmIG1wel9zZXRfdHVwbGVfZml4ZWQobXB6X3QgeCwg dHVwbGUgdCwgbG9uZyBwcmVjKSBub2V4Y2VwdDoKKytjZGVmIG1wel9zZXRfdHVwbGVfZml4ZWQo bXB6X3QgeCwgdHVwbGUgdCwgbG9uZyBwcmVjKToKKyAgICAgIiIiCisgICAgIFNldCB0aGUgaW50 ZWdlciB4IHRvIGEgZml4ZWQtcG9pbnQgbnVtYmVyIHdpdGggc3BlY2lmaWVkIHByZWNpc2lvbgor ICAgICBhbmQgdGhlIHZhbHVlIG9mIHQgPSAoc2lnbixtYW4sZXhwLGJjKS4gVHJ1bmNhdGluZyBk aXZpc2lvbiBpcyB1c2VkCitAQCAtMTkzOSw3ICsxOTM5LDcgQEAgY2RlZiBtcHpfc2V0X3R1cGxl X2ZpeGVkKG1wel90IHgsIHR1cGxlIHQsIGxvbmcgcHJlYykgbm9leGNlcHQ6CisgICAgIGVsc2U6 CisgICAgICAgICBtcHpfdGRpdl9xXzJleHAoeCwgeCwgLW9mZnNldCkKKyAKKy1jZGVmIG1wel9z ZXRfY29tcGxleF90dXBsZV9maXhlZChtcHpfdCB4LCBtcHpfdCB5LCB0dXBsZSB0LCBsb25nIHBy ZWMpIG5vZXhjZXB0OgorK2NkZWYgbXB6X3NldF9jb21wbGV4X3R1cGxlX2ZpeGVkKG1wel90IHgs IG1wel90IHksIHR1cGxlIHQsIGxvbmcgcHJlYyk6CisgICAgICIiIgorICAgICBTZXQgdGhlIGlu dGVnZXJzICh4LHkpIHRvIGZpeGVkLXBvaW50IG51bWJlcnMgd2l0aCB0aGUgdmFsdWVzIG9mCisg ICAgIHRoZSBtcGYgcGFpciB0ID0gKCh4c2lnbix4bWFuLHhleHAseGJjKSwgKHlzaWduLHltYW4s eWV4cCx5YmMpKS4KK0BAIC0xOTQ3LDcgKzE5NDcsNyBAQCBjZGVmIG1wel9zZXRfY29tcGxleF90 dXBsZV9maXhlZChtcHpfdCB4LCBtcHpfdCB5LCB0dXBsZSB0LCBsb25nIHByZWMpIG5vZXhjZXB0 OgorICAgICBtcHpfc2V0X3R1cGxlX2ZpeGVkKHgsIHRbMF0sIHByZWMpCisgICAgIG1wel9zZXRf dHVwbGVfZml4ZWQoeSwgdFsxXSwgcHJlYykKKyAKKy1jZGVmIE1QRl9zZXRfZml4ZWQoTVBGICp4 LCBtcHpfdCBtYW4sIGxvbmcgd3AsIGxvbmcgcHJlYywgaW50IHJuZCkgbm9leGNlcHQ6CisrY2Rl ZiBNUEZfc2V0X2ZpeGVkKE1QRiAqeCwgbXB6X3QgbWFuLCBsb25nIHdwLCBsb25nIHByZWMsIGlu dCBybmQpOgorICAgICAiIiIKKyAgICAgU2V0IHZhbHVlIG9mIGFuIE1QRiBnaXZlbiBhIGZpeGVk LXBvaW50IG1hbnRpc3NhIG9mIHByZWNpc2lvbiB3cCwKKyAgICAgcm91bmRpbmcgdG8gdGhlIGdp dmVuIHByZWNpc2lvbiBhbmQgcm91bmRpbmcgbW9kZS4KK0BAIC0xOTc4LDcgKzE5NzgsNyBAQCBj ZGVmIG1wel90IEJDSU1bTUFYX1BBUkFNU10KKyAKKyAKKyBjZGVmIE1QRl9oeXBzdW0oTVBGICph LCBNUEYgKmIsIGludCBwLCBpbnQgcSwgcGFyYW1fdHlwZXMsIHN0ciB6dHlwZSwgY29lZmZzLCB6 LAorLSAgICBsb25nIHByZWMsIGxvbmcgd3AsIGxvbmcgZXBzc2hpZnQsIGRpY3QgbWFnbml0dWRl X2NoZWNrLCBrd2FyZ3MpIG5vZXhjZXB0OgorKyAgICBsb25nIHByZWMsIGxvbmcgd3AsIGxvbmcg ZXBzc2hpZnQsIGRpY3QgbWFnbml0dWRlX2NoZWNrLCBrd2FyZ3MpOgorICAgICAiIiIKKyAgICAg RXZhbHVhdGVzIGErYmkgPSBwRnEoLi4uLCB6KSBieSBzdW1taW5nIHRoZSBoeXBlcmdlb21ldHJp YworICAgICBzZXJpZXMgaW4gZml4ZWQtcG9pbnQgYXJpdGhtZXRpYy4KK2RpZmYgLS1naXQgYS9z cmMvc2FnZS9saWJzL21wbWF0aC9leHRfbWFpbi5weXggYi9zcmMvc2FnZS9saWJzL21wbWF0aC9l eHRfbWFpbi5weXgKK2luZGV4IDM0NzcxMmU2Y2FiLi4zNmEwMzVmNzU3MCAxMDA2NDQKKy0tLSBh L3NyYy9zYWdlL2xpYnMvbXBtYXRoL2V4dF9tYWluLnB5eAorKysrIGIvc3JjL3NhZ2UvbGlicy9t cG1hdGgvZXh0X21haW4ucHl4CitAQCAtMTA5LDcgKzEwOSw3IEBAIGNkZWYgY2xhc3MgY29uc3Rh bnQKKyBjZGVmIGNsYXNzIHdyYXBwZWRfbGlibXBfZnVuY3Rpb24KKyBjZGVmIGNsYXNzIHdyYXBw ZWRfc3BlY2Z1bgorIAorLWNkZWYgX19pc2ludChNUEYgKnYpIG5vZXhjZXB0OgorK2NkZWYgX19p c2ludChNUEYgKnYpOgorICAgICByZXR1cm4gdi5zcGVjaWFsID09IFNfWkVSTyBvciAodi5zcGVj aWFsID09IFNfTk9STUFMIGFuZCBtcHpfc2duKHYuZXhwKSA+PSAwKQorIAorIGNkZWYgaW50IE1Q Rl9zZXRfYW55KE1QRiAqcmUsIE1QRiAqaW0sIHgsIE1Qb3B0cyBvcHRzLCBiaW50IHN0cl90dXBs ZV9vaykgZXhjZXB0IC0xOgorQEAgLTE4NSw3ICsxODUsNyBAQCBjZGVmIGludCBNUEZfc2V0X2Fu eShNUEYgKnJlLCBNUEYgKmltLCB4LCBNUG9wdHMgb3B0cywgYmludCBzdHJfdHVwbGVfb2spIGV4 Y2VwdAorICAgICAgICAgICAgIHJldHVybiAxCisgICAgIHJldHVybiAwCisgCistY2RlZiBiaW5v cChpbnQgb3AsIHgsIHksIE1Qb3B0cyBvcHRzKSBub2V4Y2VwdDoKKytjZGVmIGJpbm9wKGludCBv cCwgeCwgeSwgTVBvcHRzIG9wdHMpOgorICAgICBjZGVmIGludCB0eXB4CisgICAgIGNkZWYgaW50 IHR5cHkKKyAgICAgY2RlZiBNUEYgeHJlLCB4aW0sIHlyZSwgeWltCitAQCAtNDk4LDcgKzQ5OCw3 IEBAIGNkZWYgY2xhc3MgQ29udGV4dDoKKyAKKyAgICAgX3ByZWNfcm91bmRpbmcgPSBwcm9wZXJ0 eShfZ2V0X3ByZWNfcm91bmRpbmcpCisgCistICAgIGNwZGVmIG1wZiBtYWtlX21wZihjdHgsIHR1 cGxlIHYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBtcGYgbWFrZV9tcGYoY3R4LCB0dXBsZSB2KToK KyAgICAgICAgICIiIgorICAgICAgICAgQ3JlYXRlcyBhbiBtcGYgZnJvbSB0dXBsZSBkYXRhIDo6 CisgCitAQCAtNTExLDcgKzUxMSw3IEBAIGNkZWYgY2xhc3MgQ29udGV4dDoKKyAgICAgICAgIE1Q Rl9zZXRfdHVwbGUoJngudmFsdWUsIHYpCisgICAgICAgICByZXR1cm4geAorIAorLSAgICBjcGRl ZiBtcGMgbWFrZV9tcGMoY3R4LCB0dXBsZSB2KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgbXBjIG1h a2VfbXBjKGN0eCwgdHVwbGUgdik6CisgICAgICAgICAiIiIKKyAgICAgICAgIENyZWF0ZXMgYW4g bXBjIGZyb20gdHVwbGUgZGF0YSA6OgorIAorQEAgLTk3Myw3ICs5NzMsNyBAQCBjZGVmIGNsYXNz IENvbnRleHQ6CisgCisgICAgICMgRG9pbmcgYStiIGRpcmVjdGx5IGRvZXNuJ3Qgd29yayB3aXRo IG1waSwgcHJlc3VtYWJseSBkdWUgdG8KKyAgICAgIyBDeXRob24gdHJ5aW5nIHRvIGJlIGNsZXZl ciB3aXRoIHRoZSBvcGVyYXRpb24gcmVzb2x1dGlvbgorLSAgICBjZGVmIF9zdHVwaWRfYWRkKGN0 eCwgYSwgYikgbm9leGNlcHQ6CisrICAgIGNkZWYgX3N0dXBpZF9hZGQoY3R4LCBhLCBiKToKKyAg ICAgICAgIHJldHVybiBhICsgYgorIAorICAgICBkZWYgX2NvbnZlcnRfcGFyYW0oY3R4LCB4KToK K2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL21wbWF0aC91dGlscy5weGQgYi9zcmMvc2FnZS9s aWJzL21wbWF0aC91dGlscy5weGQKK2luZGV4IDY0NmFmYTYxODk5Li42ODZiMTA4ZGE5YSAxMDA2 NDQKKy0tLSBhL3NyYy9zYWdlL2xpYnMvbXBtYXRoL3V0aWxzLnB4ZAorKysrIGIvc3JjL3NhZ2Uv bGlicy9tcG1hdGgvdXRpbHMucHhkCitAQCAtMSwzICsxLDMgQEAKKyBmcm9tIHNhZ2UubGlicy5t cGZyLnR5cGVzIGNpbXBvcnQgbXBmcl90CisgCistY2RlZiBtcGZyX3RvX21wZnZhbChtcGZyX3Qp IG5vZXhjZXB0CisrY2RlZiBtcGZyX3RvX21wZnZhbChtcGZyX3QpCitkaWZmIC0tZ2l0IGEvc3Jj L3NhZ2UvbGlicy9tcG1hdGgvdXRpbHMucHl4IGIvc3JjL3NhZ2UvbGlicy9tcG1hdGgvdXRpbHMu cHl4CitpbmRleCAxNTI4NmZhODMwYi4uOWZiZDZiNGVmNWMgMTAwNjQ0CistLS0gYS9zcmMvc2Fn ZS9saWJzL21wbWF0aC91dGlscy5weXgKKysrKyBiL3NyYy9zYWdlL2xpYnMvbXBtYXRoL3V0aWxz LnB5eAorQEAgLTQ2LDcgKzQ2LDcgQEAgY3BkZWYgaW50IGJpdGNvdW50KG4pIG5vZXhjZXB0Ogor ICAgICAgICAgcmV0dXJuIDAKKyAgICAgcmV0dXJuIG1wel9zaXplaW5iYXNlKG0udmFsdWUsIDIp CisgCistY3BkZWYgaXNxcnQobikgbm9leGNlcHQ6CisrY3BkZWYgaXNxcnQobik6CisgICAgICIi IgorICAgICBTcXVhcmUgcm9vdCAocm91bmRlZCB0byBmbG9vcikgb2YgYSBTYWdlIEludGVnZXIg b3IgUHl0aG9uIGludC9sb25nLgorICAgICBUaGUgcmVzdWx0IGlzIGEgU2FnZSBJbnRlZ2VyLgor QEAgLTc3LDcgKzc3LDcgQEAgY3BkZWYgaXNxcnQobikgbm9leGNlcHQ6CisgICAgIG1wel9zcXJ0 KHkudmFsdWUsIG0udmFsdWUpCisgICAgIHJldHVybiB5CisgCistY3BkZWYgZnJvbV9tYW5fZXhw KG1hbiwgZXhwLCBsb25nIHByZWMgPSAwLCBzdHIgcm5kID0gJ2QnKSBub2V4Y2VwdDoKKytjcGRl ZiBmcm9tX21hbl9leHAobWFuLCBleHAsIGxvbmcgcHJlYyA9IDAsIHN0ciBybmQgPSAnZCcpOgor ICAgICAiIiIKKyAgICAgQ3JlYXRlIG5vcm1hbGl6ZWQgbXBmIHZhbHVlIHR1cGxlIGZyb20gbWFu dGlzc2EgYW5kIGV4cG9uZW50LgorIAorQEAgLTEwNiw3ICsxMDYsNyBAQCBjcGRlZiBmcm9tX21h bl9leHAobWFuLCBleHAsIGxvbmcgcHJlYyA9IDAsIHN0ciBybmQgPSAnZCcpIG5vZXhjZXB0Ogor ICAgICBlbHNlOgorICAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZSgwLCByZXMsIGV4cCwgYmMsIHBy ZWMsIHJuZCkKKyAKKy1jcGRlZiBub3JtYWxpemUobG9uZyBzaWduLCBJbnRlZ2VyIG1hbiwgZXhw LCBsb25nIGJjLCBsb25nIHByZWMsIHN0ciBybmQpIG5vZXhjZXB0OgorK2NwZGVmIG5vcm1hbGl6 ZShsb25nIHNpZ24sIEludGVnZXIgbWFuLCBleHAsIGxvbmcgYmMsIGxvbmcgcHJlYywgc3RyIHJu ZCk6CisgICAgICIiIgorICAgICBDcmVhdGUgbm9ybWFsaXplZCBtcGYgdmFsdWUgdHVwbGUgZnJv bSBmdWxsIGxpc3Qgb2YgY29tcG9uZW50cy4KKyAKK0BAIC0xNTQsNyArMTU0LDcgQEAgY3BkZWYg bm9ybWFsaXplKGxvbmcgc2lnbiwgSW50ZWdlciBtYW4sIGV4cCwgbG9uZyBiYywgbG9uZyBwcmVj LCBzdHIgcm5kKSBub2V4Y2UKKyAgICAgYmMgPSBtcHpfc2l6ZWluYmFzZShyZXMudmFsdWUsIDIp CisgICAgIHJldHVybiAoc2lnbiwgcmVzLCBpbnQoZXhwKSwgYmMpCisgCistY2RlZiBtcGZyX2Zy b21fbXBmdmFsKG1wZnJfdCByZXMsIHR1cGxlIHgpIG5vZXhjZXB0OgorK2NkZWYgbXBmcl9mcm9t X21wZnZhbChtcGZyX3QgcmVzLCB0dXBsZSB4KToKKyAgICAgIiIiCisgICAgIFNldCB2YWx1ZSBv ZiBhbiBNUEZSIG51bWJlciAoaW4gcGxhY2UpIHRvIHRoYXQgb2YgYSBnaXZlbiBtcG1hdGggbXBm CisgICAgIGRhdGEgdHVwbGUuCitAQCAtMTgwLDcgKzE4MCw3IEBAIGNkZWYgbXBmcl9mcm9tX21w ZnZhbChtcGZyX3QgcmVzLCB0dXBsZSB4KSBub2V4Y2VwdDoKKyAgICAgZWxzZToKKyAgICAgICAg IG1wZnJfc2V0X25hbihyZXMpCisgCistY2RlZiBtcGZyX3RvX21wZnZhbChtcGZyX3QgdmFsdWUp IG5vZXhjZXB0OgorK2NkZWYgbXBmcl90b19tcGZ2YWwobXBmcl90IHZhbHVlKToKKyAgICAgIiIi CisgICAgIEdpdmVuIGFuIE1QRlIgdmFsdWUsIHJldHVybiBhbiBtcG1hdGggbXBmIGRhdGEgdHVw bGUgcmVwcmVzZW50aW5nCisgICAgIHRoZSBzYW1lIG51bWJlci4KK2RpZmYgLS1naXQgYS9zcmMv c2FnZS9saWJzL250bC9taXNjLnB4aSBiL3NyYy9zYWdlL2xpYnMvbnRsL21pc2MucHhpCitpbmRl eCBlMGQyNGIwMWE2MC4uZTlkY2Q5ODA3YjAgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL250 bC9taXNjLnB4aQorKysrIGIvc3JjL3NhZ2UvbGlicy9udGwvbWlzYy5weGkKK0BAIC04LDcgKzgs NyBAQCBmcm9tIGN5c2lnbmFscy5zaWduYWxzIGNpbXBvcnQgc2lnX29mZgorIGNkZWYgZXh0ZXJu IGZyb20gKjoKKyAgICAgdm9pZCBkZWxfY2hhcnN0YXIgImRlbGV0ZVtdIihjaGFyKikKKyAKKy1j ZGVmIG9iamVjdCBzdHJpbmcoY2hhciogcykgbm9leGNlcHQ6CisrY2RlZiBvYmplY3Qgc3RyaW5n KGNoYXIqIHMpOgorICAgICAiIiIKKyAgICAgVGFrZXMgYSBjaGFyKiBhbGxvY2F0ZWQgdXNpbmcg bWFsbG9jLCBhbmQgY29udmVydHMgaXQgdG8gYSBQeXRob24KKyAgICAgc3RyaW5nLCB0aGVuIGRl bGV0ZXMgdGhlIGFsbG9jYXRlZCBtZW1vcnkuICBBbHNvIHVuc2V0cyB0aGUgc2lnbmFsCitAQCAt MjAsNyArMjAsNyBAQCBjZGVmIG9iamVjdCBzdHJpbmcoY2hhciogcykgbm9leGNlcHQ6CisgICAg IHNpZ19mcmVlKHMpCisgICAgIHJldHVybiB0CisgCistY2RlZiBvYmplY3Qgc3RyaW5nX2RlbGV0 ZShjaGFyKiBzKSBub2V4Y2VwdDoKKytjZGVmIG9iamVjdCBzdHJpbmdfZGVsZXRlKGNoYXIqIHMp OgorICAgICAiIiIKKyAgICAgVGFrZXMgYSBjaGFyKiBhbGxvY2F0ZWQgdXNpbmcgQysrIG5ldywg YW5kIGNvbnZlcnRzIGl0IHRvIGEgUHl0aG9uCisgICAgIHN0cmluZywgdGhlbiBkZWxldGVzIHRo ZSBhbGxvY2F0ZWQgbWVtb3J5LiAgQWxzbyB1bnNldHMgdGhlIHNpZ25hbAorZGlmZiAtLWdpdCBh L3NyYy9zYWdlL2xpYnMvbnRsL250bF9HRjJFLnB4ZCBiL3NyYy9zYWdlL2xpYnMvbnRsL250bF9H RjJFLnB4ZAoraW5kZXggOTM1MzljZjhhYmYuLmMzNjI5MmM4NzQ4IDEwMDY0NAorLS0tIGEvc3Jj L3NhZ2UvbGlicy9udGwvbnRsX0dGMkUucHhkCisrKysgYi9zcmMvc2FnZS9saWJzL250bC9udGxf R0YyRS5weGQKK0BAIC00LDUgKzQsNSBAQCBmcm9tIHNhZ2UubGlicy5udGwubnRsX0dGMkVDb250 ZXh0IGNpbXBvcnQgbnRsX0dGMkVDb250ZXh0X2NsYXNzCisgY2RlZiBjbGFzcyBudGxfR0YyRSgp OgorICAgICBjZGVmIEdGMkVfYyB4CisgICAgIGNkZWYgbnRsX0dGMkVDb250ZXh0X2NsYXNzIGMK Ky0gICAgY2RlZiBudGxfR0YyRSBfbmV3KHNlbGYpIG5vZXhjZXB0CisrICAgIGNkZWYgbnRsX0dG MkUgX25ldyhzZWxmKQorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvbnRsL250bF9HRjJF LnB5eCBiL3NyYy9zYWdlL2xpYnMvbnRsL250bF9HRjJFLnB5eAoraW5kZXggZmE5NDE4MDQyOTMu LmUxNjJmMjFkZGM5IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbGlicy9udGwvbnRsX0dGMkUucHl4 CisrKysgYi9zcmMvc2FnZS9saWJzL250bC9udGxfR0YyRS5weXgKK0BAIC0xNTUsNyArMTU1LDcg QEAgY2RlZiBjbGFzcyBudGxfR0YyRSgpOgorICAgICAgICAgICAgIHNlbGYuYyA9IDxudGxfR0Yy RUNvbnRleHRfY2xhc3M+bnRsX0dGMkVDb250ZXh0KG1vZHVsdXMpCisgICAgICAgICAgICAgc2Vs Zi5jLnJlc3RvcmVfYygpCisgCistICAgIGNkZWYgbnRsX0dGMkUgX25ldyhzZWxmKSBub2V4Y2Vw dDoKKysgICAgY2RlZiBudGxfR0YyRSBfbmV3KHNlbGYpOgorICAgICAgICAgY2RlZiBudGxfR0Yy RSByCisgICAgICAgICBzZWxmLmMucmVzdG9yZV9jKCkKKyAgICAgICAgIHIgPSBudGxfR0YyRS5f X25ld19fKG50bF9HRjJFKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvbnRsL250bF9HRjJF WC5weGQgYi9zcmMvc2FnZS9saWJzL250bC9udGxfR0YyRVgucHhkCitpbmRleCAzOGM5NmE3ZmU1 Mi4uYmVjZDg5YTljNTcgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL250bC9udGxfR0YyRVgu cHhkCisrKysgYi9zcmMvc2FnZS9saWJzL250bC9udGxfR0YyRVgucHhkCitAQCAtNSw1ICs1LDUg QEAgZnJvbSBzYWdlLmxpYnMubnRsLm50bF9HRjJFIGNpbXBvcnQgbnRsX0dGMkUKKyBjZGVmIGNs YXNzIG50bF9HRjJFWCgpOgorICAgICBjZGVmIEdGMkVYX2MgeAorICAgICBjZGVmIG50bF9HRjJF Q29udGV4dF9jbGFzcyBjCistICAgIGNkZWYgbnRsX0dGMkUgX25ld19lbGVtZW50KHNlbGYpIG5v ZXhjZXB0CistICAgIGNkZWYgbnRsX0dGMkVYIF9uZXcoc2VsZikgbm9leGNlcHQKKysgICAgY2Rl ZiBudGxfR0YyRSBfbmV3X2VsZW1lbnQoc2VsZikKKysgICAgY2RlZiBudGxfR0YyRVggX25ldyhz ZWxmKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvbnRsL250bF9HRjJFWC5weXggYi9zcmMv c2FnZS9saWJzL250bC9udGxfR0YyRVgucHl4CitpbmRleCA0ZTFjNDMyNDkxNS4uMTU3ZTU5ZWZh ZWUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL250bC9udGxfR0YyRVgucHl4CisrKysgYi9z cmMvc2FnZS9saWJzL250bC9udGxfR0YyRVgucHl4CitAQCAtODUsMTQgKzg1LDE0IEBAIGNkZWYg Y2xhc3MgbnRsX0dGMkVYKCk6CisgICAgICAgICAgICAgc2VsZi5jID0gPG50bF9HRjJFQ29udGV4 dF9jbGFzcz5udGxfR0YyRUNvbnRleHQobW9kdWx1cykKKyAgICAgICAgICAgICBzZWxmLmMucmVz dG9yZV9jKCkKKyAKKy0gICAgY2RlZiBudGxfR0YyRSBfbmV3X2VsZW1lbnQoc2VsZikgbm9leGNl cHQ6CisrICAgIGNkZWYgbnRsX0dGMkUgX25ld19lbGVtZW50KHNlbGYpOgorICAgICAgICAgY2Rl ZiBudGxfR0YyRSByCisgICAgICAgICBzZWxmLmMucmVzdG9yZV9jKCkKKyAgICAgICAgIHIgPSBu dGxfR0YyRS5fX25ld19fKG50bF9HRjJFKQorICAgICAgICAgci5jID0gc2VsZi5jCisgICAgICAg ICByZXR1cm4gcgorIAorLSAgICBjZGVmIG50bF9HRjJFWCBfbmV3KHNlbGYpIG5vZXhjZXB0Ogor KyAgICBjZGVmIG50bF9HRjJFWCBfbmV3KHNlbGYpOgorICAgICAgICAgY2RlZiBudGxfR0YyRVgg cgorICAgICAgICAgc2VsZi5jLnJlc3RvcmVfYygpCisgICAgICAgICByID0gbnRsX0dGMkVYLl9f bmV3X18obnRsX0dGMkVYKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvbnRsL250bF9HRjJY X2xpbmthZ2UucHhpIGIvc3JjL3NhZ2UvbGlicy9udGwvbnRsX0dGMlhfbGlua2FnZS5weGkKK2lu ZGV4IGNmNDgwYTM0NjUzLi44ZjVlZGNlMTRjMSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2xpYnMv bnRsL250bF9HRjJYX2xpbmthZ2UucHhpCisrKysgYi9zcmMvc2FnZS9saWJzL250bC9udGxfR0Yy WF9saW5rYWdlLnB4aQorQEAgLTY3LDcgKzY3LDcgQEAgY2RlZiBpbnQgY2VsZW1lbnRfZ2VuKEdG MlhfYyAqZSwgbG9uZyBpLCBsb25nIHBhcmVudCkgZXhjZXB0IC0yOgorICAgICBjZGVmIHVuc2ln bmVkIGNoYXIgZyA9IDIKKyAgICAgR0YyWEZyb21CeXRlcyhlWzBdLCA8dW5zaWduZWQgY2hhciAq PigmZyksIDEpCisgCistY2RlZiBvYmplY3QgY2VsZW1lbnRfcmVwcihHRjJYX2MgKmUsIGxvbmcg cGFyZW50KSBub2V4Y2VwdDoKKytjZGVmIG9iamVjdCBjZWxlbWVudF9yZXByKEdGMlhfYyAqZSwg bG9uZyBwYXJlbnQpOgorICAgICAiIiIKKyAgICAgV2UgaWdub3JlIE5UTCdzIHByaW50aW5nLgor IAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvbnRsL250bF9aWi5weXggYi9zcmMvc2FnZS9s aWJzL250bC9udGxfWloucHl4CitpbmRleCAzN2FjZmVmNzlhOC4uZTRhMjIxNzQwMTIgMTAwNjQ0 CistLS0gYS9zcmMvc2FnZS9saWJzL250bC9udGxfWloucHl4CisrKysgYi9zcmMvc2FnZS9saWJz L250bC9udGxfWloucHl4CitAQCAtMzIsNyArMzIsNyBAQCBmcm9tIHNhZ2UubWlzYy5yYW5kc3Rh dGUgY2ltcG9ydCBjdXJyZW50X3JhbmRzdGF0ZQorIGZyb20gY3B5dGhvbi5vYmplY3QgY2ltcG9y dCBQeV9MVCwgUHlfTEUsIFB5X0VRLCBQeV9ORSwgUHlfR1QsIFB5X0dFCisgCisgCistY2RlZiBt YWtlX1paKFpaX2MqIHgpIG5vZXhjZXB0OgorK2NkZWYgbWFrZV9aWihaWl9jKiB4KToKKyAgICAg Y2RlZiBudGxfWlogeQorICAgICB5ID0gbnRsX1paKCkKKyAgICAgeS54ID0geFswXQorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL2xpYnMvbnRsL250bF9aWlgucHl4IGIvc3JjL3NhZ2UvbGlicy9udGwv bnRsX1paWC5weXgKK2luZGV4IDM0M2U1ODgzMTkxLi4zZTIzYmNkMTI1MCAxMDA2NDQKKy0tLSBh L3NyYy9zYWdlL2xpYnMvbnRsL250bF9aWlgucHl4CisrKysgYi9zcmMvc2FnZS9saWJzL250bC9u dGxfWlpYLnB5eAorQEAgLTM3LDcgKzM3LDcgQEAgZnJvbSBzYWdlLmFyaXRoLnBvd2VyIGNpbXBv cnQgZ2VuZXJpY19wb3dlcl9wb3MKKyAKKyBaWiA9IEludGVnZXJSaW5nKCkKKyAKKy1jZGVmIGlu bGluZSBudGxfWlogbWFrZV9aWihaWl9jKiB4KSBub2V4Y2VwdDoKKytjZGVmIGlubGluZSBudGxf WlogbWFrZV9aWihaWl9jKiB4KToKKyAgICAgIiIiIFRoZXNlIG1ha2VfWFhYWCBmdW5jdGlvbnMg YXJlIGRlcHJlY2F0ZWQgYW5kIHNob3VsZCBiZSBwaGFzZWQgb3V0LiIiIgorICAgICBjZGVmIG50 bF9aWiB5CisgICAgIHkgPSBudGxfWlooKQorQEAgLTQ2LDEyICs0NiwxMiBAQCBjZGVmIGlubGlu ZSBudGxfWlogbWFrZV9aWihaWl9jKiB4KSBub2V4Y2VwdDoKKyAgICAgcmV0dXJuIHkKKyAKKyAj IFlvdSBtdXN0IGRvIHNpZ19vbigpIGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24KKy1jZGVm IGlubGluZSBudGxfWlogbWFrZV9aWl9zaWdfb2ZmKFpaX2MqIHgpIG5vZXhjZXB0OgorK2NkZWYg aW5saW5lIG50bF9aWiBtYWtlX1paX3NpZ19vZmYoWlpfYyogeCk6CisgICAgIGNkZWYgbnRsX1pa IHkgPSBtYWtlX1paKHgpCisgICAgIHNpZ19vZmYoKQorICAgICByZXR1cm4geQorIAorLWNkZWYg aW5saW5lIG50bF9aWlggbWFrZV9aWlgoWlpYX2MqIHgpIG5vZXhjZXB0OgorK2NkZWYgaW5saW5l IG50bF9aWlggbWFrZV9aWlgoWlpYX2MqIHgpOgorICAgICAiIiIgVGhlc2UgbWFrZV9YWFhYIGZ1 bmN0aW9ucyBhcmUgZGVwcmVjYXRlZCBhbmQgc2hvdWxkIGJlIHBoYXNlZCBvdXQuIiIiCisgICAg IGNkZWYgbnRsX1paWCB5CisgICAgIHkgPSBudGxfWlpYKCkKK0BAIC02MCwxMyArNjAsMTMgQEAg Y2RlZiBpbmxpbmUgbnRsX1paWCBtYWtlX1paWChaWlhfYyogeCkgbm9leGNlcHQ6CisgICAgIHJl dHVybiB5CisgCisgIyBZb3UgbXVzdCBkbyBzaWdfb24oKSBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1 bmN0aW9uCistY2RlZiBpbmxpbmUgbnRsX1paWCBtYWtlX1paWF9zaWdfb2ZmKFpaWF9jKiB4KSBu b2V4Y2VwdDoKKytjZGVmIGlubGluZSBudGxfWlpYIG1ha2VfWlpYX3NpZ19vZmYoWlpYX2MqIHgp OgorICAgICBjZGVmIG50bF9aWlggeSA9IG1ha2VfWlpYKHgpCisgICAgIHNpZ19vZmYoKQorICAg ICByZXR1cm4geQorIAorIGZyb20gc2FnZS5zdHJ1Y3R1cmUucHJvb2YucHJvb2YgaW1wb3J0IGdl dF9mbGFnCistY2RlZiBwcm9vZl9mbGFnKHQpIG5vZXhjZXB0OgorK2NkZWYgcHJvb2ZfZmxhZyh0 KToKKyAgICAgcmV0dXJuIGdldF9mbGFnKHQsICJwb2x5bm9taWFsIikKKyAKKyAjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL250bC9udGxfWlpfcC5weGQg Yi9zcmMvc2FnZS9saWJzL250bC9udGxfWlpfcC5weGQKK2luZGV4IGE5MmM5NzY2MTEyLi44YmFj NmUwMTJlNCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2xpYnMvbnRsL250bF9aWl9wLnB4ZAorKysr IGIvc3JjL3NhZ2UvbGlicy9udGwvbnRsX1paX3AucHhkCitAQCAtNiw0ICs2LDQgQEAgY2RlZiBj bGFzcyBudGxfWlpfcCgpOgorICAgICBjZGVmIG50bF9aWl9wQ29udGV4dF9jbGFzcyBjCisgICAg IGNkZWYgaW50IGdldF9hc19pbnQobnRsX1paX3Agc2VsZikgbm9leGNlcHQKKyAgICAgY2RlZiB2 b2lkIHNldF9mcm9tX2ludChudGxfWlpfcCBzZWxmLCBpbnQgdmFsdWUpIG5vZXhjZXB0CistICAg IGNkZWYgbnRsX1paX3AgX25ldyhzZWxmKSBub2V4Y2VwdAorKyAgICBjZGVmIG50bF9aWl9wIF9u ZXcoc2VsZikKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL250bC9udGxfWlpfcC5weXggYi9z cmMvc2FnZS9saWJzL250bC9udGxfWlpfcC5weXgKK2luZGV4IGNjYTc2NzMwM2Y3Li40ZGMyYjc5 NWI3ZSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2xpYnMvbnRsL250bF9aWl9wLnB5eAorKysrIGIv c3JjL3NhZ2UvbGlicy9udGwvbnRsX1paX3AucHl4CitAQCAtMTU0LDcgKzE1NCw3IEBAIGNkZWYg Y2xhc3MgbnRsX1paX3AoKToKKyAgICAgICAgICAgICBzZWxmLmMgPSA8bnRsX1paX3BDb250ZXh0 X2NsYXNzPm50bF9aWl9wQ29udGV4dChtb2R1bHVzKQorICAgICAgICAgICAgIHNlbGYuYy5yZXN0 b3JlX2MoKQorIAorLSAgICBjZGVmIG50bF9aWl9wIF9uZXcoc2VsZikgbm9leGNlcHQ6CisrICAg IGNkZWYgbnRsX1paX3AgX25ldyhzZWxmKToKKyAgICAgICAgIGNkZWYgbnRsX1paX3AgcgorICAg ICAgICAgc2VsZi5jLnJlc3RvcmVfYygpCisgICAgICAgICByID0gbnRsX1paX3AuX19uZXdfXyhu dGxfWlpfcCkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL250bC9udGxfWlpfcENvbnRleHQu cHhkIGIvc3JjL3NhZ2UvbGlicy9udGwvbnRsX1paX3BDb250ZXh0LnB4ZAoraW5kZXggZDYwY2Fi OTFkNTUuLjFjYWI3Yjc3ZTM1IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbGlicy9udGwvbnRsX1pa X3BDb250ZXh0LnB4ZAorKysrIGIvc3JjL3NhZ2UvbGlicy9udGwvbnRsX1paX3BDb250ZXh0LnB4 ZAorQEAgLTE0LDcgKzE0LDcgQEAgY2RlZiBjbGFzcyBudGxfWlpfcENvbnRleHRfY2xhc3MoKToK KyAKKyBjZGVmIGNsYXNzIG50bF9aWl9wQ29udGV4dF9mYWN0b3J5KCk6CisgICAgIGNkZWYgb2Jq ZWN0IGNvbnRleHRfZGljdAorLSAgICBjZGVmIG50bF9aWl9wQ29udGV4dF9jbGFzcyBtYWtlX2Mo c2VsZiwgbnRsX1paIHYpIG5vZXhjZXB0CisrICAgIGNkZWYgbnRsX1paX3BDb250ZXh0X2NsYXNz IG1ha2VfYyhzZWxmLCBudGxfWlogdikKKyAKKyAKKyBjZGVmIGV4dGVybiBmcm9tICJudGx3cmFw LmgiOgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvbnRsL250bF9aWl9wQ29udGV4dC5weXgg Yi9zcmMvc2FnZS9saWJzL250bC9udGxfWlpfcENvbnRleHQucHl4CitpbmRleCA1MmMwNGUyNzdj ZC4uMzhmMjExYTVlYTEgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL250bC9udGxfWlpfcENv bnRleHQucHl4CisrKysgYi9zcmMvc2FnZS9saWJzL250bC9udGxfWlpfcENvbnRleHQucHl4CitA QCAtMTYyLDcgKzE2Miw3IEBAIGNkZWYgY2xhc3MgbnRsX1paX3BDb250ZXh0X2ZhY3RvcnkoKToK KyAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICAgc2VsZi5jb250ZXh0X2RpY3QgPSB7 fQorIAorLSAgICBjZGVmIG50bF9aWl9wQ29udGV4dF9jbGFzcyBtYWtlX2Moc2VsZiwgbnRsX1pa IHYpIG5vZXhjZXB0OgorKyAgICBjZGVmIG50bF9aWl9wQ29udGV4dF9jbGFzcyBtYWtlX2Moc2Vs ZiwgbnRsX1paIHYpOgorICAgICAgICAgIiIiCisgICAgICAgICBDcmVhdGVzIGEgbmV3IFpaX3BD b250ZXh0LgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvbnRsL250bF9aWl9wRS5weGQg Yi9zcmMvc2FnZS9saWJzL250bC9udGxfWlpfcEUucHhkCitpbmRleCBiMmExYWE3MDI5My4uYzYw ZWFiYTRhZDUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL250bC9udGxfWlpfcEUucHhkCisr KysgYi9zcmMvc2FnZS9saWJzL250bC9udGxfWlpfcEUucHhkCitAQCAtNSw2ICs1LDYgQEAgZnJv bSBzYWdlLmxpYnMubnRsLm50bF9aWl9wWCBjaW1wb3J0IG50bF9aWl9wWAorIGNkZWYgY2xhc3Mg bnRsX1paX3BFKCk6CisgICAgIGNkZWYgWlpfcEVfYyB4CisgICAgIGNkZWYgbnRsX1paX3BFQ29u dGV4dF9jbGFzcyBjCistICAgIGNkZWYgbnRsX1paX3BYIGdldF9hc19aWl9wWChudGxfWlpfcEUg c2VsZikgbm9leGNlcHQKKysgICAgY2RlZiBudGxfWlpfcFggZ2V0X2FzX1paX3BYKG50bF9aWl9w RSBzZWxmKQorICAgICBjZGVmIHZvaWQgc2V0X2Zyb21fWlpfcFgobnRsX1paX3BFIHNlbGYsIG50 bF9aWl9wWCB2YWx1ZSkgbm9leGNlcHQKKy0gICAgY2RlZiBudGxfWlpfcEUgX25ldyhzZWxmKSBu b2V4Y2VwdAorKyAgICBjZGVmIG50bF9aWl9wRSBfbmV3KHNlbGYpCitkaWZmIC0tZ2l0IGEvc3Jj L3NhZ2UvbGlicy9udGwvbnRsX1paX3BFLnB5eCBiL3NyYy9zYWdlL2xpYnMvbnRsL250bF9aWl9w RS5weXgKK2luZGV4IGIwODgyMjE3ZTg2Li5kMDY5Yjg5ZmNlZiAxMDA2NDQKKy0tLSBhL3NyYy9z YWdlL2xpYnMvbnRsL250bF9aWl9wRS5weXgKKysrKyBiL3NyYy9zYWdlL2xpYnMvbnRsL250bF9a Wl9wRS5weXgKK0BAIC0xNDksNyArMTQ5LDcgQEAgY2RlZiBjbGFzcyBudGxfWlpfcEUoKToKKyAg ICAgICAgICAgICBzZWxmLmMgPSA8bnRsX1paX3BFQ29udGV4dF9jbGFzcz5udGxfWlpfcEVDb250 ZXh0KG1vZHVsdXMpCisgICAgICAgICAgICAgc2VsZi5jLnJlc3RvcmVfYygpCisgCistICAgIGNk ZWYgbnRsX1paX3BFIF9uZXcoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgbnRsX1paX3BFIF9u ZXcoc2VsZik6CisgICAgICAgICBjZGVmIG50bF9aWl9wRSByCisgICAgICAgICBzZWxmLmMucmVz dG9yZV9jKCkKKyAgICAgICAgIHIgPSBudGxfWlpfcEUuX19uZXdfXyhudGxfWlpfcEUpCitAQCAt MjY4LDcgKzI2OCw3IEBAIGNkZWYgY2xhc3MgbnRsX1paX3BFKCk6CisgICAgICAgICByZXR1cm4g cgorIAorIAorLSAgICBjZGVmIG50bF9aWl9wWCBnZXRfYXNfWlpfcFgobnRsX1paX3BFIHNlbGYp IG5vZXhjZXB0OgorKyAgICBjZGVmIG50bF9aWl9wWCBnZXRfYXNfWlpfcFgobnRsX1paX3BFIHNl bGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJucyB2YWx1ZSBhcyBudGxfWlpfcFgu CisgICAgICAgICAiIiIKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL250bC9udGxfWlpfcEVY LnB4ZCBiL3NyYy9zYWdlL2xpYnMvbnRsL250bF9aWl9wRVgucHhkCitpbmRleCAyNmVmMmJhZjMw Mi4uYjU2Yjg1NTE5YTMgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL250bC9udGxfWlpfcEVY LnB4ZAorKysrIGIvc3JjL3NhZ2UvbGlicy9udGwvbnRsX1paX3BFWC5weGQKK0BAIC02LDQgKzYs NCBAQCBjZGVmIGNsYXNzIG50bF9aWl9wRVgoKToKKyAgICAgY2RlZiBudGxfWlpfcEVDb250ZXh0 X2NsYXNzIGMKKyAgICAgI2NkZWYgdm9pZCBzZXRpdGVtX2Zyb21faW50KG50bF9aWl9wWCBzZWxm LCBsb25nIGksIGludCB2YWx1ZSkKKyAgICAgI2NkZWYgaW50IGdldGl0ZW1fYXNfaW50KG50bF9a Wl9wWCBzZWxmLCBsb25nIGkpCistICAgIGNkZWYgbnRsX1paX3BFWCBfbmV3KHNlbGYpIG5vZXhj ZXB0CisrICAgIGNkZWYgbnRsX1paX3BFWCBfbmV3KHNlbGYpCitkaWZmIC0tZ2l0IGEvc3JjL3Nh Z2UvbGlicy9udGwvbnRsX1paX3BFWC5weXggYi9zcmMvc2FnZS9saWJzL250bC9udGxfWlpfcEVY LnB5eAoraW5kZXggNmViZGU5NTVhYTMuLmMxMmRmNzdjMmYwIDEwMDY0NAorLS0tIGEvc3JjL3Nh Z2UvbGlicy9udGwvbnRsX1paX3BFWC5weXgKKysrKyBiL3NyYy9zYWdlL2xpYnMvbnRsL250bF9a Wl9wRVgucHl4CitAQCAtMTMzLDcgKzEzMyw3IEBAIGNkZWYgY2xhc3MgbnRsX1paX3BFWCgpOgor ICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm1vZHVsdXMgbXVzdCBub3QgYmUgTm9uZSIp CisgICAgICAgICBzZWxmLmMucmVzdG9yZV9jKCkKKyAKKy0gICAgY2RlZiBudGxfWlpfcEVYIF9u ZXcoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgbnRsX1paX3BFWCBfbmV3KHNlbGYpOgorICAg ICAgICAgY2RlZiBudGxfWlpfcEVYIHIKKyAgICAgICAgIHNlbGYuYy5yZXN0b3JlX2MoKQorICAg ICAgICAgciA9IG50bF9aWl9wRVguX19uZXdfXyhudGxfWlpfcEVYKQorZGlmZiAtLWdpdCBhL3Ny Yy9zYWdlL2xpYnMvbnRsL250bF9aWl9wRVhfbGlua2FnZS5weGkgYi9zcmMvc2FnZS9saWJzL250 bC9udGxfWlpfcEVYX2xpbmthZ2UucHhpCitpbmRleCBiMDQ5N2ViMzYzMC4uM2EwYjhmMDY0M2Eg MTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL250bC9udGxfWlpfcEVYX2xpbmthZ2UucHhpCisr KysgYi9zcmMvc2FnZS9saWJzL250bC9udGxfWlpfcEVYX2xpbmthZ2UucHhpCitAQCAtODAsNyAr ODAsNyBAQCBjZGVmIGludCBjZWxlbWVudF9nZW4oWlpfcEVYX2MgKmUsIGxvbmcgaSwgY3BhcmVu dCBwYXJlbnQpIGV4Y2VwdCAtMjoKKyAgICAgICAgIHBhcmVudFswXS56enBlY1swXS5yZXN0b3Jl KCkKKyAgICAgWlpfcEVYX1NldFgoZVswXSkKKyAKKy1jZGVmIG9iamVjdCBjZWxlbWVudF9yZXBy KFpaX3BFWF9jICplLCBjcGFyZW50IHBhcmVudCkgbm9leGNlcHQ6CisrY2RlZiBvYmplY3QgY2Vs ZW1lbnRfcmVwcihaWl9wRVhfYyAqZSwgY3BhcmVudCBwYXJlbnQpOgorICAgICAiIiIKKyAgICAg V2UgaWdub3JlIE5UTCdzIHByaW50aW5nLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMv bnRsL250bF9aWl9wWC5weGQgYi9zcmMvc2FnZS9saWJzL250bC9udGxfWlpfcFgucHhkCitpbmRl eCAzODc5MmJjYTJkMS4uZDAyNTk2YjUxMjggMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL250 bC9udGxfWlpfcFgucHhkCisrKysgYi9zcmMvc2FnZS9saWJzL250bC9udGxfWlpfcFgucHhkCitA QCAtNiw3ICs2LDcgQEAgY2RlZiBjbGFzcyBudGxfWlpfcFgoKToKKyAgICAgY2RlZiBudGxfWlpf cENvbnRleHRfY2xhc3MgYworICAgICBjZGVmIHZvaWQgc2V0aXRlbV9mcm9tX2ludChudGxfWlpf cFggc2VsZiwgbG9uZyBpLCBpbnQgdmFsdWUpIG5vZXhjZXB0CisgICAgIGNkZWYgaW50IGdldGl0 ZW1fYXNfaW50KG50bF9aWl9wWCBzZWxmLCBsb25nIGkpIG5vZXhjZXB0CistICAgIGNkZWYgbnRs X1paX3BYIF9uZXcoc2VsZikgbm9leGNlcHQKKysgICAgY2RlZiBudGxfWlpfcFggX25ldyhzZWxm KQorIAorIGNkZWYgY2xhc3MgbnRsX1paX3BYX01vZHVsdXMoKToKKyAgICAgY2RlZiBaWl9wWF9N b2R1bHVzX2MgeAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvbnRsL250bF9aWl9wWC5weXgg Yi9zcmMvc2FnZS9saWJzL250bC9udGxfWlpfcFgucHl4CitpbmRleCAzNDIyMjM5YWFhYy4uNzVi NzM4YzE2MjUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL250bC9udGxfWlpfcFgucHl4Cisr KysgYi9zcmMvc2FnZS9saWJzL250bC9udGxfWlpfcFgucHl4CitAQCAtMzgsNyArMzgsNyBAQCBm cm9tIHNhZ2UubWlzYy5yYW5kc3RhdGUgY2ltcG9ydCBjdXJyZW50X3JhbmRzdGF0ZQorIGZyb20g c2FnZS5saWJzLmdtcC5tcHogY2ltcG9ydCAqCisgCisgCistY2RlZiBpbmxpbmUgbWFrZV9aWl9w KFpaX3BfYyogeCwgbnRsX1paX3BDb250ZXh0X2NsYXNzIGN0eCkgbm9leGNlcHQ6CisrY2RlZiBp bmxpbmUgbWFrZV9aWl9wKFpaX3BfYyogeCwgbnRsX1paX3BDb250ZXh0X2NsYXNzIGN0eCk6Cisg ICAgIGNkZWYgbnRsX1paX3AgeQorICAgICBzaWdfb2ZmKCkKKyAgICAgeSA9IG50bF9aWl9wKG1v ZHVsdXMgPSBjdHgpCitAQCAtNDcsNyArNDcsNyBAQCBjZGVmIGlubGluZSBtYWtlX1paX3AoWlpf cF9jKiB4LCBudGxfWlpfcENvbnRleHRfY2xhc3MgY3R4KSBub2V4Y2VwdDoKKyAgICAgcmV0dXJu IHkKKyAKKyAKKy1jZGVmIG1ha2VfWlpfcFgoWlpfcFhfYyogeCwgbnRsX1paX3BDb250ZXh0X2Ns YXNzIGN0eCkgbm9leGNlcHQ6CisrY2RlZiBtYWtlX1paX3BYKFpaX3BYX2MqIHgsIG50bF9aWl9w Q29udGV4dF9jbGFzcyBjdHgpOgorICAgICBjZGVmIG50bF9aWl9wWCB5CisgICAgIHkgPSA8bnRs X1paX3BYPm50bF9aWl9wWC5fX25ld19fKG50bF9aWl9wWCkKKyAgICAgeS5jID0gY3R4CitAQCAt MTM4LDcgKzEzOCw3IEBAIGNkZWYgY2xhc3MgbnRsX1paX3BYKCk6CisgICAgICAgICAgICAgc2Vs Zi5jID0gPG50bF9aWl9wQ29udGV4dF9jbGFzcz5udGxfWlpfcENvbnRleHQobnRsX1paKG1vZHVs dXMpKQorICAgICAgICAgICAgIHNlbGYuYy5yZXN0b3JlX2MoKQorIAorLSAgICBjZGVmIG50bF9a Wl9wWCBfbmV3KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIG50bF9aWl9wWCBfbmV3KHNlbGYp OgorICAgICAgICAgY2RlZiBudGxfWlpfcFggcgorICAgICAgICAgc2VsZi5jLnJlc3RvcmVfYygp CisgICAgICAgICByID0gbnRsX1paX3BYLl9fbmV3X18obnRsX1paX3BYKQorZGlmZiAtLWdpdCBh L3NyYy9zYWdlL2xpYnMvbnRsL250bF9senpfcC5weGQgYi9zcmMvc2FnZS9saWJzL250bC9udGxf bHp6X3AucHhkCitpbmRleCA2YjRhNmI4ZDNmMC4uNmU4YzQzZDg5OTcgMTAwNjQ0CistLS0gYS9z cmMvc2FnZS9saWJzL250bC9udGxfbHp6X3AucHhkCisrKysgYi9zcmMvc2FnZS9saWJzL250bC9u dGxfbHp6X3AucHhkCitAQCAtNCw0ICs0LDQgQEAgZnJvbSBzYWdlLmxpYnMubnRsLm50bF9senpf cENvbnRleHQgY2ltcG9ydCBudGxfenpfcENvbnRleHRfY2xhc3MKKyBjZGVmIGNsYXNzIG50bF96 el9wKCk6CisgICAgIGNkZWYgenpfcF9jIHgKKyAgICAgY2RlZiBudGxfenpfcENvbnRleHRfY2xh c3MgYworLSAgICBjZGVmIG50bF96el9wIF9uZXcobnRsX3p6X3Agc2VsZikgbm9leGNlcHQKKysg ICAgY2RlZiBudGxfenpfcCBfbmV3KG50bF96el9wIHNlbGYpCitkaWZmIC0tZ2l0IGEvc3JjL3Nh Z2UvbGlicy9udGwvbnRsX2x6el9wLnB5eCBiL3NyYy9zYWdlL2xpYnMvbnRsL250bF9senpfcC5w eXgKK2luZGV4IDBmN2ZkOGZkNWUzLi5hZjg2YjliY2Y2OSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdl L2xpYnMvbnRsL250bF9senpfcC5weXgKKysrKyBiL3NyYy9zYWdlL2xpYnMvbnRsL250bF9senpf cC5weXgKK0BAIC0xNTAsNyArMTUwLDcgQEAgY2RlZiBjbGFzcyBudGxfenpfcCgpOgorICAgICAg ICAgIyMgbm93IHRoYXQgd2UndmUgZGV0ZXJtaW5lZCB0aGUgbW9kdWx1cywgc2V0IHRoYXQgbW9k dWx1cy4KKyAgICAgICAgIHNlbGYuYy5yZXN0b3JlX2MoKQorIAorLSAgICBjZGVmIG50bF96el9w IF9uZXcoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgbnRsX3p6X3AgX25ldyhzZWxmKToKKyAg ICAgICAgICIiIgorICAgICAgICAgUXVpY2sgYW5kIGRpcnR5IHp6X3Agb2JqZWN0IGNyZWF0aW9u LgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvbnRsL250bF9senpfcFgucHhkIGIvc3Jj L3NhZ2UvbGlicy9udGwvbnRsX2x6el9wWC5weGQKK2luZGV4IDJjYzA5NDE5ZmU1Li4zYWI3OTA4 NDI5OSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2xpYnMvbnRsL250bF9senpfcFgucHhkCisrKysg Yi9zcmMvc2FnZS9saWJzL250bC9udGxfbHp6X3BYLnB4ZAorQEAgLTYsNCArNiw0IEBAIGZyb20g c2FnZS5saWJzLm50bC5udGxfbHp6X3BDb250ZXh0IGNpbXBvcnQgbnRsX3p6X3BDb250ZXh0X2Ns YXNzCisgY2RlZiBjbGFzcyBudGxfenpfcFgoKToKKyAgICAgY2RlZiB6el9wWF9jIHgKKyAgICAg Y2RlZiBudGxfenpfcENvbnRleHRfY2xhc3MgYworLSAgICBjZGVmIG50bF96el9wWCBfbmV3KHNl bGYpIG5vZXhjZXB0CisrICAgIGNkZWYgbnRsX3p6X3BYIF9uZXcoc2VsZikKK2RpZmYgLS1naXQg YS9zcmMvc2FnZS9saWJzL250bC9udGxfbHp6X3BYLnB5eCBiL3NyYy9zYWdlL2xpYnMvbnRsL250 bF9senpfcFgucHl4CitpbmRleCBiYmNkOWYxNGRlYy4uN2QxOWNjNTVlMzcgMTAwNjQ0CistLS0g YS9zcmMvc2FnZS9saWJzL250bC9udGxfbHp6X3BYLnB5eAorKysrIGIvc3JjL3NhZ2UvbGlicy9u dGwvbnRsX2x6el9wWC5weXgKK0BAIC0yMzIsNyArMjMyLDcgQEAgY2RlZiBjbGFzcyBudGxfenpf cFgoKToKKyAgICAgICAgIHp6X3BYX1NldENvZWZmX2xvbmcoc2VsZi54LCBpLCB2YWwpCisgICAg ICAgICByZXR1cm4KKyAKKy0gICAgY2RlZiBudGxfenpfcFggX25ldyhzZWxmKSBub2V4Y2VwdDoK KysgICAgY2RlZiBudGxfenpfcFggX25ldyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAg UXVpY2sgYW5kIGRpcnR5IG1ldGhvZCBmb3IgY3JlYXRpbmcgYSBuZXcgb2JqZWN0IHdpdGggdGhl CisgICAgICAgICBzYW1lIHp6X3BDb250ZXh0IGFzIHNlbGYuCitkaWZmIC0tZ2l0IGEvc3JjL3Nh Z2UvbGlicy9udGwvbnRsX21hdF9HRjIucHhkIGIvc3JjL3NhZ2UvbGlicy9udGwvbnRsX21hdF9H RjIucHhkCitpbmRleCA0MDQxZjlmOGYxNC4uNTYxN2VmOTg5MTUgMTAwNjQ0CistLS0gYS9zcmMv c2FnZS9saWJzL250bC9udGxfbWF0X0dGMi5weGQKKysrKyBiL3NyYy9zYWdlL2xpYnMvbnRsL250 bF9tYXRfR0YyLnB4ZAorQEAgLTMsNSArMyw1IEBAIGZyb20gc2FnZS5saWJzLm50bC5udGxfR0Yy IGNpbXBvcnQgbnRsX0dGMgorIAorIGNkZWYgY2xhc3MgbnRsX21hdF9HRjIoKToKKyAgICAgY2Rl ZiBtYXRfR0YyX2MgeAorLSAgICBjZGVmIG50bF9HRjIgX25ld19lbGVtZW50KHNlbGYpIG5vZXhj ZXB0CistICAgIGNkZWYgbnRsX21hdF9HRjIgX25ldyhzZWxmKSBub2V4Y2VwdAorKyAgICBjZGVm IG50bF9HRjIgX25ld19lbGVtZW50KHNlbGYpCisrICAgIGNkZWYgbnRsX21hdF9HRjIgX25ldyhz ZWxmKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvbnRsL250bF9tYXRfR0YyLnB5eCBiL3Ny Yy9zYWdlL2xpYnMvbnRsL250bF9tYXRfR0YyLnB5eAoraW5kZXggNzFkNGY4Yjc0OTEuLjMxODc0 N2U5YWRlIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbGlicy9udGwvbnRsX21hdF9HRjIucHl4Cisr KysgYi9zcmMvc2FnZS9saWJzL250bC9udGxfbWF0X0dGMi5weXgKK0BAIC0xMTgsMTIgKzExOCwx MiBAQCBjZGVmIGNsYXNzIG50bF9tYXRfR0YyKCk6CisgICAgICAgICAgICAgICAgICAgICBtYXRf R0YyX3NldGl0ZW0oJnNlbGYueCwgaSwgaiwgJig8bnRsX0dGMj5lbGVtKS54KQorICAgICAgICAg ICAgIHNpZ19vZmYoKQorIAorLSAgICBjZGVmIG50bF9HRjIgX25ld19lbGVtZW50KHNlbGYpIG5v ZXhjZXB0OgorKyAgICBjZGVmIG50bF9HRjIgX25ld19lbGVtZW50KHNlbGYpOgorICAgICAgICAg Y2RlZiBudGxfR0YyIHIKKyAgICAgICAgIHIgPSBudGxfR0YyLl9fbmV3X18obnRsX0dGMikKKyAg ICAgICAgIHJldHVybiByCisgCistICAgIGNkZWYgbnRsX21hdF9HRjIgX25ldyhzZWxmKSBub2V4 Y2VwdDoKKysgICAgY2RlZiBudGxfbWF0X0dGMiBfbmV3KHNlbGYpOgorICAgICAgICAgY2RlZiBu dGxfbWF0X0dGMiByCisgICAgICAgICByID0gbnRsX21hdF9HRjIuX19uZXdfXyhudGxfbWF0X0dG MikKKyAgICAgICAgIHIueC5TZXREaW1zKHNlbGYueC5OdW1Sb3dzKCksc2VsZi54Lk51bUNvbHMo KSkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL250bC9udGxfbWF0X0dGMkUucHhkIGIvc3Jj L3NhZ2UvbGlicy9udGwvbnRsX21hdF9HRjJFLnB4ZAoraW5kZXggMTU0MTU5NjVjNjYuLmZiYjU4 MzgyMzY4IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbGlicy9udGwvbnRsX21hdF9HRjJFLnB4ZAor KysrIGIvc3JjL3NhZ2UvbGlicy9udGwvbnRsX21hdF9HRjJFLnB4ZAorQEAgLTUsNSArNSw1IEBA IGZyb20gc2FnZS5saWJzLm50bC5udGxfR0YyRSBjaW1wb3J0IG50bF9HRjJFCisgY2RlZiBjbGFz cyBudGxfbWF0X0dGMkUoKToKKyAgICAgY2RlZiBtYXRfR0YyRV9jIHgKKyAgICAgY2RlZiBudGxf R0YyRUNvbnRleHRfY2xhc3MgYworLSAgICBjZGVmIG50bF9HRjJFIF9uZXdfZWxlbWVudChzZWxm KSBub2V4Y2VwdAorLSAgICBjZGVmIG50bF9tYXRfR0YyRSBfbmV3KHNlbGYpIG5vZXhjZXB0Cisr ICAgIGNkZWYgbnRsX0dGMkUgX25ld19lbGVtZW50KHNlbGYpCisrICAgIGNkZWYgbnRsX21hdF9H RjJFIF9uZXcoc2VsZikKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL250bC9udGxfbWF0X0dG MkUucHl4IGIvc3JjL3NhZ2UvbGlicy9udGwvbnRsX21hdF9HRjJFLnB5eAoraW5kZXggMDU4OGVh YWE3YTMuLjdhYjliOTJjMDIwIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbGlicy9udGwvbnRsX21h dF9HRjJFLnB5eAorKysrIGIvc3JjL3NhZ2UvbGlicy9udGwvbnRsX21hdF9HRjJFLnB5eAorQEAg LTEzNiwxNCArMTM2LDE0IEBAIGNkZWYgY2xhc3MgbnRsX21hdF9HRjJFKCk6CisgICAgICAgICAg ICAgc2VsZi5jID0gPG50bF9HRjJFQ29udGV4dF9jbGFzcz5udGxfR0YyRUNvbnRleHQobW9kdWx1 cykKKyAgICAgICAgICAgICBzZWxmLmMucmVzdG9yZV9jKCkKKyAKKy0gICAgY2RlZiBudGxfR0Yy RSBfbmV3X2VsZW1lbnQoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgbnRsX0dGMkUgX25ld19l bGVtZW50KHNlbGYpOgorICAgICAgICAgY2RlZiBudGxfR0YyRSByCisgICAgICAgICBzZWxmLmMu cmVzdG9yZV9jKCkKKyAgICAgICAgIHIgPSBudGxfR0YyRS5fX25ld19fKG50bF9HRjJFKQorICAg ICAgICAgci5jID0gc2VsZi5jCisgICAgICAgICByZXR1cm4gcgorIAorLSAgICBjZGVmIG50bF9t YXRfR0YyRSBfbmV3KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIG50bF9tYXRfR0YyRSBfbmV3 KHNlbGYpOgorICAgICAgICAgY2RlZiBudGxfbWF0X0dGMkUgcgorICAgICAgICAgc2VsZi5jLnJl c3RvcmVfYygpCisgICAgICAgICByID0gbnRsX21hdF9HRjJFLl9fbmV3X18obnRsX21hdF9HRjJF KQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvbnRsL250bF9tYXRfWloucHl4IGIvc3JjL3Nh Z2UvbGlicy9udGwvbnRsX21hdF9aWi5weXgKK2luZGV4IDM0OTA1NWRjMTgyLi5lZDRlMDEyYmIz MyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2xpYnMvbnRsL250bF9tYXRfWloucHl4CisrKysgYi9z cmMvc2FnZS9saWJzL250bC9udGxfbWF0X1paLnB5eAorQEAgLTMyLDcgKzMyLDcgQEAgZnJvbSBj cHl0aG9uLm9iamVjdCBjaW1wb3J0IFB5T2JqZWN0X1JpY2hDb21wYXJlCisgCisgZnJvbSBzYWdl LmxpYnMubnRsLm50bF9aWiBpbXBvcnQgdW5waWNrbGVfY2xhc3NfYXJncworIAorLWNkZWYgaW5s aW5lIG50bF9aWiBtYWtlX1paKFpaX2MqIHgpIG5vZXhjZXB0OgorK2NkZWYgaW5saW5lIG50bF9a WiBtYWtlX1paKFpaX2MqIHgpOgorICAgICBjZGVmIG50bF9aWiB5CisgICAgIHkgPSBudGxfWloo KQorICAgICB5LnggPSB4WzBdCitAQCAtNDAsMTIgKzQwLDEyIEBAIGNkZWYgaW5saW5lIG50bF9a WiBtYWtlX1paKFpaX2MqIHgpIG5vZXhjZXB0OgorICAgICByZXR1cm4geQorIAorICMgWW91IG11 c3QgZG8gc2lnX29uKCkgYmVmb3JlIGNhbGxpbmcgdGhpcyBmdW5jdGlvbgorLWNkZWYgaW5saW5l IG50bF9aWiBtYWtlX1paX3NpZ19vZmYoWlpfYyogeCkgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUg bnRsX1paIG1ha2VfWlpfc2lnX29mZihaWl9jKiB4KToKKyAgICAgY2RlZiBudGxfWlogeSA9IG1h a2VfWlooeCkKKyAgICAgc2lnX29mZigpCisgICAgIHJldHVybiB5CisgCistY2RlZiBpbmxpbmUg bnRsX21hdF9aWiBtYWtlX21hdF9aWihtYXRfWlpfYyogeCkgbm9leGNlcHQ6CisrY2RlZiBpbmxp bmUgbnRsX21hdF9aWiBtYWtlX21hdF9aWihtYXRfWlpfYyogeCk6CisgICAgIGNkZWYgbnRsX21h dF9aWiB5CisgICAgIHkgPSBudGxfbWF0X1paLl9fbmV3X18obnRsX21hdF9aWikKKyAgICAgeS54 ID0geFswXQorQEAgLTU1LDcgKzU1LDcgQEAgY2RlZiBpbmxpbmUgbnRsX21hdF9aWiBtYWtlX21h dF9aWihtYXRfWlpfYyogeCkgbm9leGNlcHQ6CisgICAgIHJldHVybiB5CisgCisgIyBZb3UgbXVz dCBkbyBzaWdfb24oKSBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uCistY2RlZiBpbmxpbmUg bnRsX21hdF9aWiBtYWtlX21hdF9aWl9zaWdfb2ZmKG1hdF9aWl9jKiB4KSBub2V4Y2VwdDoKKytj ZGVmIGlubGluZSBudGxfbWF0X1paIG1ha2VfbWF0X1paX3NpZ19vZmYobWF0X1paX2MqIHgpOgor ICAgICBjZGVmIG50bF9tYXRfWlogeSA9IG1ha2VfbWF0X1paKHgpCisgICAgIHNpZ19vZmYoKQor ICAgICByZXR1cm4geQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvcGFyaS9jb252ZXJ0X2Zs aW50LnB4ZCBiL3NyYy9zYWdlL2xpYnMvcGFyaS9jb252ZXJ0X2ZsaW50LnB4ZAoraW5kZXggM2Q2 MDAzZjU2YmQuLmMxMzk3MDNiOWE1IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbGlicy9wYXJpL2Nv bnZlcnRfZmxpbnQucHhkCisrKysgYi9zcmMvc2FnZS9saWJzL3BhcmkvY29udmVydF9mbGludC5w eGQKK0BAIC01LDkgKzUsOSBAQCBmcm9tIHNhZ2UubGlicy5mbGludC50eXBlcyBjaW1wb3J0IGZt cHpfdCwgZm1wel9tYXRfdCwgZm1wcV90LCBmbXBxX21hdF90CisgY2RlZiBHRU4gX25ld19HRU5f ZnJvbV9mbXB6X3QoZm1wel90IHZhbHVlKSBub2V4Y2VwdAorIGNkZWYgR0VOIF9uZXdfR0VOX2Zy b21fZm1wel9tYXRfdChmbXB6X21hdF90IEIpIG5vZXhjZXB0CisgY2RlZiBHRU4gX25ld19HRU5f ZnJvbV9mbXB6X21hdF90X3JvdGF0ZTkwKGZtcHpfbWF0X3QgQikgbm9leGNlcHQKKy1jZGVmIEdl biBpbnRlZ2VyX21hdHJpeChmbXB6X21hdF90IEIsIGJpbnQgcm90YXRlKSBub2V4Y2VwdAorK2Nk ZWYgR2VuIGludGVnZXJfbWF0cml4KGZtcHpfbWF0X3QgQiwgYmludCByb3RhdGUpCisgCisgY2Rl ZiBHRU4gX25ld19HRU5fZnJvbV9mbXBxX3QoZm1wcV90IHZhbHVlKSBub2V4Y2VwdAorIGNkZWYg R0VOIF9uZXdfR0VOX2Zyb21fZm1wcV9tYXRfdChmbXBxX21hdF90IEIpIG5vZXhjZXB0CisgY2Rl ZiBHRU4gX25ld19HRU5fZnJvbV9mbXBxX21hdF90X3JvdGF0ZTkwKGZtcHFfbWF0X3QgQikgbm9l eGNlcHQKKy1jZGVmIEdlbiByYXRpb25hbF9tYXRyaXgoZm1wcV9tYXRfdCBCLCBiaW50IHJvdGF0 ZSkgbm9leGNlcHQKKytjZGVmIEdlbiByYXRpb25hbF9tYXRyaXgoZm1wcV9tYXRfdCBCLCBiaW50 IHJvdGF0ZSkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL3BhcmkvY29udmVydF9mbGludC5w eXggYi9zcmMvc2FnZS9saWJzL3BhcmkvY29udmVydF9mbGludC5weXgKK2luZGV4IGVhZjA2M2Ew ZjYxLi5mZTBlNGY3NjQ4ZCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2xpYnMvcGFyaS9jb252ZXJ0 X2ZsaW50LnB5eAorKysrIGIvc3JjL3NhZ2UvbGlicy9wYXJpL2NvbnZlcnRfZmxpbnQucHl4CitA QCAtMTI2LDcgKzEyNiw3IEBAIGNkZWYgR0VOIF9uZXdfR0VOX2Zyb21fZm1wcV9tYXRfdF9yb3Rh dGU5MChmbXBxX21hdF90IEIpIG5vZXhjZXB0OgorICAgICByZXR1cm4gQQorIAorIAorLWNkZWYg R2VuIGludGVnZXJfbWF0cml4KGZtcHpfbWF0X3QgQiwgYmludCByb3RhdGUpIG5vZXhjZXB0Ogor K2NkZWYgR2VuIGludGVnZXJfbWF0cml4KGZtcHpfbWF0X3QgQiwgYmludCByb3RhdGUpOgorICAg ICAiIiIKKyAgICAgRVhBTVBMRVM6OgorIAorQEAgLTE0Miw3ICsxNDIsNyBAQCBjZGVmIEdlbiBp bnRlZ2VyX21hdHJpeChmbXB6X21hdF90IEIsIGJpbnQgcm90YXRlKSBub2V4Y2VwdDoKKyAgICAg cmV0dXJuIG5ld19nZW4oZykKKyAKKyAKKy1jZGVmIEdlbiByYXRpb25hbF9tYXRyaXgoZm1wcV9t YXRfdCBCLCBiaW50IHJvdGF0ZSkgbm9leGNlcHQ6CisrY2RlZiBHZW4gcmF0aW9uYWxfbWF0cml4 KGZtcHFfbWF0X3QgQiwgYmludCByb3RhdGUpOgorICAgICAiIiIKKyAgICAgRVhBTVBMRVM6Ogor IAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvcGFyaS9jb252ZXJ0X2dtcC5weGQgYi9zcmMv c2FnZS9saWJzL3BhcmkvY29udmVydF9nbXAucHhkCitpbmRleCBiNzQ1YTgyM2FiNS4uOGU5ODRl ZWRjZTggMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL3BhcmkvY29udmVydF9nbXAucHhkCisr KysgYi9zcmMvc2FnZS9saWJzL3BhcmkvY29udmVydF9nbXAucHhkCitAQCAtMiwxMiArMiwxMiBA QCBmcm9tIGN5cGFyaTIudHlwZXMgY2ltcG9ydCBHRU4KKyBmcm9tIGN5cGFyaTIuZ2VuIGNpbXBv cnQgR2VuCisgZnJvbSBzYWdlLmxpYnMuZ21wLnR5cGVzIGNpbXBvcnQgbXB6X3QsIG1wcV90LCBt cHpfcHRyLCBtcHFfcHRyCisgCistY2RlZiBHZW4gbmV3X2dlbl9mcm9tX21wel90KG1wel90IHZh bHVlKSBub2V4Y2VwdAorK2NkZWYgR2VuIG5ld19nZW5fZnJvbV9tcHpfdChtcHpfdCB2YWx1ZSkK KyBjZGVmIEdFTiBfbmV3X0dFTl9mcm9tX21wel90KG1wel90IHZhbHVlKSBub2V4Y2VwdAorLWNk ZWYgR2VuIG5ld19nZW5fZnJvbV9tcHFfdChtcHFfdCB2YWx1ZSkgbm9leGNlcHQKKytjZGVmIEdl biBuZXdfZ2VuX2Zyb21fbXBxX3QobXBxX3QgdmFsdWUpCisgY2RlZiBHRU4gX25ld19HRU5fZnJv bV9tcHFfdChtcHFfdCB2YWx1ZSkgbm9leGNlcHQKKy1jZGVmIEdlbiBuZXdfZ2VuX2Zyb21fcGFk aWMobG9uZyBvcmRwLCBsb25nIHJlbHByZWMsIG1wel90IHByaW1lLCBtcHpfdCBwX3BvdywgbXB6 X3QgdW5pdCkgbm9leGNlcHQKKytjZGVmIEdlbiBuZXdfZ2VuX2Zyb21fcGFkaWMobG9uZyBvcmRw LCBsb25nIHJlbHByZWMsIG1wel90IHByaW1lLCBtcHpfdCBwX3BvdywgbXB6X3QgdW5pdCkKKyBj ZGVmIEdFTiBfbmV3X0dFTl9mcm9tX21wcV90X21hdHJpeChtcHFfdCoqIEIsIGxvbmcgbnIsIGxv bmcgbmMpIG5vZXhjZXB0CistY2RlZiBHZW4gcmF0aW9uYWxfbWF0cml4KG1wcV90KiogQiwgbG9u ZyBuciwgbG9uZyBuYykgbm9leGNlcHQKKytjZGVmIEdlbiByYXRpb25hbF9tYXRyaXgobXBxX3Qq KiBCLCBsb25nIG5yLCBsb25nIG5jKQorIGNkZWYgdm9pZCBJTlRfdG9fbXB6KG1wel9wdHIgdmFs dWUsIEdFTiBnKSBub2V4Y2VwdAorIGNkZWYgdm9pZCBJTlRGUkFDX3RvX21wcShtcHFfcHRyIHZh bHVlLCBHRU4gZykgbm9leGNlcHQKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL3BhcmkvY29u dmVydF9nbXAucHl4IGIvc3JjL3NhZ2UvbGlicy9wYXJpL2NvbnZlcnRfZ21wLnB5eAoraW5kZXgg NzI4NzI5Yjg5ZDEuLjkxNjJmN2Q5YTI3IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbGlicy9wYXJp L2NvbnZlcnRfZ21wLnB5eAorKysrIGIvc3JjL3NhZ2UvbGlicy9wYXJpL2NvbnZlcnRfZ21wLnB5 eAorQEAgLTI3LDcgKzI3LDcgQEAgZnJvbSBzYWdlLmxpYnMuZ21wLmFsbCBjaW1wb3J0ICoKKyBm cm9tIGN5cGFyaTIucGFyaWRlY2wgY2ltcG9ydCAqCisgZnJvbSBjeXBhcmkyLnN0YWNrIGNpbXBv cnQgbmV3X2dlbgorIAorLWNkZWYgR2VuIG5ld19nZW5fZnJvbV9tcHpfdChtcHpfdCB2YWx1ZSkg bm9leGNlcHQ6CisrY2RlZiBHZW4gbmV3X2dlbl9mcm9tX21wel90KG1wel90IHZhbHVlKToKKyAg ICAgIiIiCisgICAgIENyZWF0ZSBhIG5ldyBQQVJJIEdlbiBvZiB0eXBlIGBgdF9JTlRgYCBmcm9t IGEgZ2l2ZW4KKyAgICAgR01QIGludGVnZXIgYGB2YWx1ZWBgLgorQEAgLTczLDcgKzczLDcgQEAg Y2RlZiBpbmxpbmUgR0VOIF9uZXdfR0VOX2Zyb21fbXB6X3QobXB6X3QgdmFsdWUpIG5vZXhjZXB0 OgorICAgICByZXR1cm4gegorIAorIAorLWNkZWYgR2VuIG5ld19nZW5fZnJvbV9tcHFfdChtcHFf dCB2YWx1ZSkgbm9leGNlcHQ6CisrY2RlZiBHZW4gbmV3X2dlbl9mcm9tX21wcV90KG1wcV90IHZh bHVlKToKKyAgICAgIiIiCisgICAgIENyZWF0ZSBhIG5ldyBQQVJJIEdlbiBvZiB0eXBlIGBgdF9J TlRgYCBvciBgYHRfRlJBQ2BgIGZyb20gYSBnaXZlbgorICAgICBHTVAgcmF0aW9uYWwgYGB2YWx1 ZWBgLgorQEAgLTEyMSw3ICsxMjEsNyBAQCBjZGVmIGlubGluZSBHRU4gX25ld19HRU5fZnJvbV9t cHFfdChtcHFfdCB2YWx1ZSkgbm9leGNlcHQ6CisgCisgCisgY2RlZiBHZW4gbmV3X2dlbl9mcm9t X3BhZGljKGxvbmcgb3JkcCwgbG9uZyByZWxwcmVjLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBtcHpfdCBwcmltZSwgbXB6X3QgcF9wb3csIG1wel90IHVuaXQpIG5vZXhjZXB0OgorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICBtcHpfdCBwcmltZSwgbXB6X3QgcF9wb3csIG1wel90 IHVuaXQpOgorICAgICAiIiIKKyAgICAgQ3JlYXRlIGEgbmV3IFBBUkkgR2VuIG9mIHR5cGUgYGB0 X1BBRElDYGAgZnJvbSB0aGUgZ2l2ZW4gaW5wdXQgZGF0YQorICAgICBhcyBHTVAgaW50ZWdlcnMu CitAQCAtMTU1LDcgKzE1NSw3IEBAIGNkZWYgR0VOIF9uZXdfR0VOX2Zyb21fbXBxX3RfbWF0cml4 KG1wcV90KiogQiwgbG9uZyBuciwgbG9uZyBuYykgbm9leGNlcHQ6CisgICAgIHJldHVybiBBCisg CisgCistY2RlZiBHZW4gcmF0aW9uYWxfbWF0cml4KG1wcV90KiogQiwgbG9uZyBuciwgbG9uZyBu Yykgbm9leGNlcHQ6CisrY2RlZiBHZW4gcmF0aW9uYWxfbWF0cml4KG1wcV90KiogQiwgbG9uZyBu ciwgbG9uZyBuYyk6CisgICAgICIiIgorICAgICBDcmVhdGUgYSBuZXcgUEFSSSBtYXRyaXggb2Yg dHlwZSBgYHRfTUFUYGAgZnJvbSBhIGdpdmVuCisgICAgIGFycmF5IG9mIEdNUCByYXRpb25hbHMg YGBtcHFfdGBgLgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvcGFyaS9jb252ZXJ0X3NhZ2Uu cHhkIGIvc3JjL3NhZ2UvbGlicy9wYXJpL2NvbnZlcnRfc2FnZS5weGQKK2luZGV4IGZmYTljMGVm NmMwLi5lZjgwZmY0MDMwZiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2xpYnMvcGFyaS9jb252ZXJ0 X3NhZ2UucHhkCisrKysgYi9zcmMvc2FnZS9saWJzL3BhcmkvY29udmVydF9zYWdlLnB4ZAorQEAg LTIsMTQgKzIsMTQgQEAgZnJvbSBjeXBhcmkyLmdlbiBjaW1wb3J0IEdlbgorIGZyb20gc2FnZS5y aW5ncy5pbnRlZ2VyIGNpbXBvcnQgSW50ZWdlcgorIGZyb20gc2FnZS5yaW5ncy5yYXRpb25hbCBj aW1wb3J0IFJhdGlvbmFsCisgCistY3BkZWYgZ2VuX3RvX3NhZ2UoR2VuIHosIGxvY2Fscz0qKSBu b2V4Y2VwdAorK2NwZGVmIGdlbl90b19zYWdlKEdlbiB6LCBsb2NhbHM9KikKKyAKKy1jcGRlZiBz ZXRfaW50ZWdlcl9mcm9tX2dlbihJbnRlZ2VyIHNlbGYsIEdlbiB4KSBub2V4Y2VwdAorLWNwZGVm IEdlbiBuZXdfZ2VuX2Zyb21faW50ZWdlcihJbnRlZ2VyIHNlbGYpIG5vZXhjZXB0CistY3BkZWYg c2V0X3JhdGlvbmFsX2Zyb21fZ2VuKFJhdGlvbmFsIHNlbGYsIEdlbiB4KSBub2V4Y2VwdAorLWNw ZGVmIEdlbiBuZXdfZ2VuX2Zyb21fcmF0aW9uYWwoUmF0aW9uYWwgc2VsZikgbm9leGNlcHQKKytj cGRlZiBzZXRfaW50ZWdlcl9mcm9tX2dlbihJbnRlZ2VyIHNlbGYsIEdlbiB4KQorK2NwZGVmIEdl biBuZXdfZ2VuX2Zyb21faW50ZWdlcihJbnRlZ2VyIHNlbGYpCisrY3BkZWYgc2V0X3JhdGlvbmFs X2Zyb21fZ2VuKFJhdGlvbmFsIHNlbGYsIEdlbiB4KQorK2NwZGVmIEdlbiBuZXdfZ2VuX2Zyb21f cmF0aW9uYWwoUmF0aW9uYWwgc2VsZikKKyAKKy1jcGRlZiBwYXJpX2lzX3ByaW1lKEludGVnZXIg cCkgbm9leGNlcHQKKy1jcGRlZiBwYXJpX2lzX3ByaW1lX3Bvd2VyKEludGVnZXIgcSwgYmludCBn ZXRfZGF0YSkgbm9leGNlcHQKKytjcGRlZiBwYXJpX2lzX3ByaW1lKEludGVnZXIgcCkKKytjcGRl ZiBwYXJpX2lzX3ByaW1lX3Bvd2VyKEludGVnZXIgcSwgYmludCBnZXRfZGF0YSkKKyBjcGRlZiB1 bnNpZ25lZCBsb25nIHBhcmlfbWF4cHJpbWUoKSBub2V4Y2VwdAorLWNwZGVmIGxpc3QgcGFyaV9w cmltZV9yYW5nZShsb25nIGNfc3RhcnQsIGxvbmcgY19zdG9wLCBiaW50IHB5X2ludHM9Kikgbm9l eGNlcHQKKytjcGRlZiBsaXN0IHBhcmlfcHJpbWVfcmFuZ2UobG9uZyBjX3N0YXJ0LCBsb25nIGNf c3RvcCwgYmludCBweV9pbnRzPSopCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbGlicy9wYXJpL2Nv bnZlcnRfc2FnZS5weXggYi9zcmMvc2FnZS9saWJzL3BhcmkvY29udmVydF9zYWdlLnB5eAoraW5k ZXggM2YyMWFlNDZhYjQuLmExNjNkYmYyYjMzIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbGlicy9w YXJpL2NvbnZlcnRfc2FnZS5weXgKKysrKyBiL3NyYy9zYWdlL2xpYnMvcGFyaS9jb252ZXJ0X3Nh Z2UucHl4CitAQCAtNTIsNyArNTIsNyBAQCBleGNlcHQgSW1wb3J0RXJyb3I6CisgcGFyaV90eXBf dG9fZW50cmllc190eXBlID0gTGF6eUltcG9ydCgnc2FnZS5saWJzLnBhcmkuY29udmVydF9zYWdl X21hdHJpeCcsICdwYXJpX3R5cF90b19lbnRyaWVzX3R5cGUnKQorIAorIAorLWNwZGVmIGdlbl90 b19zYWdlKEdlbiB6LCBsb2NhbHM9Tm9uZSkgbm9leGNlcHQ6CisrY3BkZWYgZ2VuX3RvX3NhZ2Uo R2VuIHosIGxvY2Fscz1Ob25lKToKKyAgICAgIiIiCisgICAgIENvbnZlcnQgYSBQQVJJIGdlbiB0 byBhIFNhZ2UvUHl0aG9uIG9iamVjdC4KKyAKK0BAIC0zMzksNyArMzM5LDcgQEAgY3BkZWYgZ2Vu X3RvX3NhZ2UoR2VuIHosIGxvY2Fscz1Ob25lKSBub2V4Y2VwdDoKKyAgICAgcmV0dXJuIHNhZ2Vf ZXZhbChzdHIoeiksIGxvY2Fscz1sb2NhbHMpCisgCisgCistY3BkZWYgc2V0X2ludGVnZXJfZnJv bV9nZW4oSW50ZWdlciBzZWxmLCBHZW4geCkgbm9leGNlcHQ6CisrY3BkZWYgc2V0X2ludGVnZXJf ZnJvbV9nZW4oSW50ZWdlciBzZWxmLCBHZW4geCk6CisgICAgIHIiIiIKKyAgICAgRVhBTVBMRVM6 OgorIAorQEAgLTM4Nyw3ICszODcsNyBAQCBjcGRlZiBzZXRfaW50ZWdlcl9mcm9tX2dlbihJbnRl Z2VyIHNlbGYsIEdlbiB4KSBub2V4Y2VwdDoKKyAgICAgSU5UX3RvX21weihzZWxmLnZhbHVlLCAo PEdlbj54KS5nKQorIAorIAorLWNwZGVmIEdlbiBuZXdfZ2VuX2Zyb21faW50ZWdlcihJbnRlZ2Vy IHNlbGYpIG5vZXhjZXB0OgorK2NwZGVmIEdlbiBuZXdfZ2VuX2Zyb21faW50ZWdlcihJbnRlZ2Vy IHNlbGYpOgorICAgICAiIiIKKyAgICAgVEVTVFM6OgorIAorQEAgLTM5OSw3ICszOTksNyBAQCBj cGRlZiBHZW4gbmV3X2dlbl9mcm9tX2ludGVnZXIoSW50ZWdlciBzZWxmKSBub2V4Y2VwdDoKKyAg ICAgcmV0dXJuIG5ld19nZW5fZnJvbV9tcHpfdChzZWxmLnZhbHVlKQorIAorIAorLWNwZGVmIHNl dF9yYXRpb25hbF9mcm9tX2dlbihSYXRpb25hbCBzZWxmLCBHZW4geCkgbm9leGNlcHQ6CisrY3Bk ZWYgc2V0X3JhdGlvbmFsX2Zyb21fZ2VuKFJhdGlvbmFsIHNlbGYsIEdlbiB4KToKKyAgICAgciIi IgorICAgICBFWEFNUExFUzo6CisgCitAQCAtNDE5LDcgKzQxOSw3IEBAIGNwZGVmIHNldF9yYXRp b25hbF9mcm9tX2dlbihSYXRpb25hbCBzZWxmLCBHZW4geCkgbm9leGNlcHQ6CisgICAgICAgICBt cHpfc2V0X3NpKG1wcV9kZW5yZWYoc2VsZi52YWx1ZSksIDEpCisgCisgCistY3BkZWYgR2VuIG5l d19nZW5fZnJvbV9yYXRpb25hbChSYXRpb25hbCBzZWxmKSBub2V4Y2VwdDoKKytjcGRlZiBHZW4g bmV3X2dlbl9mcm9tX3JhdGlvbmFsKFJhdGlvbmFsIHNlbGYpOgorICAgICAiIiIKKyAgICAgVEVT VFM6OgorIAorQEAgLTQzMSw3ICs0MzEsNyBAQCBjcGRlZiBHZW4gbmV3X2dlbl9mcm9tX3JhdGlv bmFsKFJhdGlvbmFsIHNlbGYpIG5vZXhjZXB0OgorICAgICByZXR1cm4gbmV3X2dlbl9mcm9tX21w cV90KHNlbGYudmFsdWUpCisgCisgCistY3BkZWYgbGlzdCBwYXJpX2Rpdmlzb3JzX3NtYWxsKElu dGVnZXIgc2VsZikgbm9leGNlcHQ6CisrY3BkZWYgbGlzdCBwYXJpX2Rpdmlzb3JzX3NtYWxsKElu dGVnZXIgc2VsZik6CisgICAgIHIiIiIKKyAgICAgUmV0dXJuIHRoZSBsaXN0IG9mIGRpdmlzb3Jz IG9mIHRoaXMgbnVtYmVyIHVzaW5nIFBBUkkgYGBkaXZpc29yc3VgYC4KKyAKK0BAIC00NzcsNyAr NDc3LDcgQEAgY3BkZWYgbGlzdCBwYXJpX2Rpdmlzb3JzX3NtYWxsKEludGVnZXIgc2VsZikgbm9l eGNlcHQ6CisgICAgICAgICBhdm1hID0gbHRvcAorIAorIAorLWNwZGVmIHBhcmlfaXNfcHJpbWUo SW50ZWdlciBwKSBub2V4Y2VwdDoKKytjcGRlZiBwYXJpX2lzX3ByaW1lKEludGVnZXIgcCk6Cisg ICAgIHIiIiIKKyAgICAgUmV0dXJuIHdoZXRoZXIgYGBwYGAgaXMgYSBwcmltZS4KKyAKK0BAIC01 MDQsNyArNTA0LDcgQEAgY3BkZWYgcGFyaV9pc19wcmltZShJbnRlZ2VyIHApIG5vZXhjZXB0Ogor ICAgICByZXR1cm4gYm9vbCh1aXNwcmltZShtcHpfZ2V0X3VpKHAudmFsdWUpKSkKKyAKKyAKKy1j cGRlZiBwYXJpX2lzX3ByaW1lX3Bvd2VyKEludGVnZXIgcSwgYmludCBnZXRfZGF0YSkgbm9leGNl cHQ6CisrY3BkZWYgcGFyaV9pc19wcmltZV9wb3dlcihJbnRlZ2VyIHEsIGJpbnQgZ2V0X2RhdGEp OgorICAgICByIiIiCisgICAgIFJldHVybiB3aGV0aGVyIGBgcWBgIGlzIGEgcHJpbWUgcG93ZXIu CisgCitAQCAtNTYxLDcgKzU2MSw3IEBAIGNwZGVmIHVuc2lnbmVkIGxvbmcgcGFyaV9tYXhwcmlt ZSgpIG5vZXhjZXB0OgorICAgICByZXR1cm4gbWF4cHJpbWUoKQorIAorIAorLWNwZGVmIGxpc3Qg cGFyaV9wcmltZV9yYW5nZShsb25nIGNfc3RhcnQsIGxvbmcgY19zdG9wLCBiaW50IHB5X2ludHM9 RmFsc2UpIG5vZXhjZXB0OgorK2NwZGVmIGxpc3QgcGFyaV9wcmltZV9yYW5nZShsb25nIGNfc3Rh cnQsIGxvbmcgY19zdG9wLCBiaW50IHB5X2ludHM9RmFsc2UpOgorICAgICAiIiIKKyAgICAgUmV0 dXJuIGEgbGlzdCBvZiBhbGwgcHJpbWVzIGJldHdlZW4gYGBzdGFydGBgIGFuZCBgYHN0b3AgLSAx YGAsIGluY2x1c2l2ZS4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL3BhcmkvY29udmVy dF9zYWdlX2NvbXBsZXhfZG91YmxlLnB4ZCBiL3NyYy9zYWdlL2xpYnMvcGFyaS9jb252ZXJ0X3Nh Z2VfY29tcGxleF9kb3VibGUucHhkCitpbmRleCA4MDM4OTJiMjc0YS4uNTEyOTlkNzc3NTkgMTAw NjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL3BhcmkvY29udmVydF9zYWdlX2NvbXBsZXhfZG91Ymxl LnB4ZAorKysrIGIvc3JjL3NhZ2UvbGlicy9wYXJpL2NvbnZlcnRfc2FnZV9jb21wbGV4X2RvdWJs ZS5weGQKK0BAIC0xLDEzICsxLDEzIEBACisgZnJvbSBjeXBhcmkyLmdlbiBjaW1wb3J0IEdlbgor IGZyb20gc2FnZS5yaW5ncy5jb21wbGV4X2RvdWJsZSBjaW1wb3J0IENvbXBsZXhEb3VibGVFbGVt ZW50CisgCistY3BkZWYgQ29tcGxleERvdWJsZUVsZW1lbnQgcGFyaV90b19jZGYoR2VuIGcpIG5v ZXhjZXB0CisrY3BkZWYgQ29tcGxleERvdWJsZUVsZW1lbnQgcGFyaV90b19jZGYoR2VuIGcpCisg CistY3BkZWYgR2VuIG5ld19nZW5fZnJvbV9jb21wbGV4X2RvdWJsZV9lbGVtZW50KENvbXBsZXhE b3VibGVFbGVtZW50IHNlbGYpIG5vZXhjZXB0CisrY3BkZWYgR2VuIG5ld19nZW5fZnJvbV9jb21w bGV4X2RvdWJsZV9lbGVtZW50KENvbXBsZXhEb3VibGVFbGVtZW50IHNlbGYpCisgCistY3BkZWYg Q29tcGxleERvdWJsZUVsZW1lbnQgY29tcGxleF9kb3VibGVfZWxlbWVudF9ldGEoQ29tcGxleERv dWJsZUVsZW1lbnQgc2VsZiwgaW50IGZsYWcpIG5vZXhjZXB0CistY3BkZWYgQ29tcGxleERvdWJs ZUVsZW1lbnQgY29tcGxleF9kb3VibGVfZWxlbWVudF9hZ20oQ29tcGxleERvdWJsZUVsZW1lbnQg c2VsZiwgcmlnaHQpIG5vZXhjZXB0CistY3BkZWYgQ29tcGxleERvdWJsZUVsZW1lbnQgY29tcGxl eF9kb3VibGVfZWxlbWVudF9kaWxvZyhDb21wbGV4RG91YmxlRWxlbWVudCBzZWxmKSBub2V4Y2Vw dAorLWNwZGVmIENvbXBsZXhEb3VibGVFbGVtZW50IGNvbXBsZXhfZG91YmxlX2VsZW1lbnRfZ2Ft bWEoQ29tcGxleERvdWJsZUVsZW1lbnQgc2VsZikgbm9leGNlcHQKKy1jcGRlZiBDb21wbGV4RG91 YmxlRWxlbWVudCBjb21wbGV4X2RvdWJsZV9lbGVtZW50X2dhbW1hX2luYyhDb21wbGV4RG91Ymxl RWxlbWVudCBzZWxmLCB0KSBub2V4Y2VwdAorLWNwZGVmIENvbXBsZXhEb3VibGVFbGVtZW50IGNv bXBsZXhfZG91YmxlX2VsZW1lbnRfemV0YShDb21wbGV4RG91YmxlRWxlbWVudCBzZWxmKSBub2V4 Y2VwdAorK2NwZGVmIENvbXBsZXhEb3VibGVFbGVtZW50IGNvbXBsZXhfZG91YmxlX2VsZW1lbnRf ZXRhKENvbXBsZXhEb3VibGVFbGVtZW50IHNlbGYsIGludCBmbGFnKQorK2NwZGVmIENvbXBsZXhE b3VibGVFbGVtZW50IGNvbXBsZXhfZG91YmxlX2VsZW1lbnRfYWdtKENvbXBsZXhEb3VibGVFbGVt ZW50IHNlbGYsIHJpZ2h0KQorK2NwZGVmIENvbXBsZXhEb3VibGVFbGVtZW50IGNvbXBsZXhfZG91 YmxlX2VsZW1lbnRfZGlsb2coQ29tcGxleERvdWJsZUVsZW1lbnQgc2VsZikKKytjcGRlZiBDb21w bGV4RG91YmxlRWxlbWVudCBjb21wbGV4X2RvdWJsZV9lbGVtZW50X2dhbW1hKENvbXBsZXhEb3Vi bGVFbGVtZW50IHNlbGYpCisrY3BkZWYgQ29tcGxleERvdWJsZUVsZW1lbnQgY29tcGxleF9kb3Vi bGVfZWxlbWVudF9nYW1tYV9pbmMoQ29tcGxleERvdWJsZUVsZW1lbnQgc2VsZiwgdCkKKytjcGRl ZiBDb21wbGV4RG91YmxlRWxlbWVudCBjb21wbGV4X2RvdWJsZV9lbGVtZW50X3pldGEoQ29tcGxl eERvdWJsZUVsZW1lbnQgc2VsZikKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL3BhcmkvY29u dmVydF9zYWdlX2NvbXBsZXhfZG91YmxlLnB5eCBiL3NyYy9zYWdlL2xpYnMvcGFyaS9jb252ZXJ0 X3NhZ2VfY29tcGxleF9kb3VibGUucHl4CitpbmRleCAxYzE2MmMxMmU1NS4uZDdkN2M1MzMzYTEg MTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL3BhcmkvY29udmVydF9zYWdlX2NvbXBsZXhfZG91 YmxlLnB5eAorKysrIGIvc3JjL3NhZ2UvbGlicy9wYXJpL2NvbnZlcnRfc2FnZV9jb21wbGV4X2Rv dWJsZS5weXgKK0BAIC04LDcgKzgsNyBAQCBmcm9tIGN5cGFyaTIucGFyaWRlY2wgY2ltcG9ydCAq CisgZnJvbSBjeXBhcmkyLmNvbnZlcnQgY2ltcG9ydCBuZXdfZ2VuX2Zyb21fZG91YmxlLCBuZXdf dF9DT01QTEVYX2Zyb21fZG91YmxlCisgCisgCistY3BkZWYgQ29tcGxleERvdWJsZUVsZW1lbnQg cGFyaV90b19jZGYoR2VuIGcpIG5vZXhjZXB0OgorK2NwZGVmIENvbXBsZXhEb3VibGVFbGVtZW50 IHBhcmlfdG9fY2RmKEdlbiBnKToKKyAgICAgIiIiCisgICAgIENyZWF0ZSBhIENERiBlbGVtZW50 IGZyb20gYSBQQVJJIGBgZ2VuYGAuCisgCitAQCAtNDIsNyArNDIsNyBAQCBjcGRlZiBDb21wbGV4 RG91YmxlRWxlbWVudCBwYXJpX3RvX2NkZihHZW4gZykgbm9leGNlcHQ6CisgICAgIHJldHVybiB6 CisgCisgCistY3BkZWYgR2VuIG5ld19nZW5fZnJvbV9jb21wbGV4X2RvdWJsZV9lbGVtZW50KENv bXBsZXhEb3VibGVFbGVtZW50IHNlbGYpIG5vZXhjZXB0OgorK2NwZGVmIEdlbiBuZXdfZ2VuX2Zy b21fY29tcGxleF9kb3VibGVfZWxlbWVudChDb21wbGV4RG91YmxlRWxlbWVudCBzZWxmKToKKyAg ICAgIiIiCisgICAgIFJldHVybiBQQVJJIHZlcnNpb24gb2YgYGBzZWxmYGAsIGFzIGBgdF9DT01Q TEVYYGAgb3IgYGB0X1JFQUxgYC4KKyAKK0BAIC02Miw3ICs2Miw3IEBAIGNwZGVmIEdlbiBuZXdf Z2VuX2Zyb21fY29tcGxleF9kb3VibGVfZWxlbWVudChDb21wbGV4RG91YmxlRWxlbWVudCBzZWxm KSBub2V4Y2VwCisgICAgICAgICByZXR1cm4gbmV3X3RfQ09NUExFWF9mcm9tX2RvdWJsZShHU0xf UkVBTChzZWxmLl9jb21wbGV4KSwgR1NMX0lNQUcoc2VsZi5fY29tcGxleCkpCisgCisgCistY3Bk ZWYgQ29tcGxleERvdWJsZUVsZW1lbnQgY29tcGxleF9kb3VibGVfZWxlbWVudF9ldGEoQ29tcGxl eERvdWJsZUVsZW1lbnQgc2VsZiwgaW50IGZsYWcpIG5vZXhjZXB0OgorK2NwZGVmIENvbXBsZXhE b3VibGVFbGVtZW50IGNvbXBsZXhfZG91YmxlX2VsZW1lbnRfZXRhKENvbXBsZXhEb3VibGVFbGVt ZW50IHNlbGYsIGludCBmbGFnKToKKyAgICAgIiIiCisgICAgIFRFU1RTOjoKKyAKK0BAIC03Niw3 ICs3Niw3IEBAIGNwZGVmIENvbXBsZXhEb3VibGVFbGVtZW50IGNvbXBsZXhfZG91YmxlX2VsZW1l bnRfZXRhKENvbXBsZXhEb3VibGVFbGVtZW50IHNlbGYsCisgICAgIHJldHVybiBwYXJpX3RvX2Nk ZihuZXdfZ2VuX2Zyb21fY29tcGxleF9kb3VibGVfZWxlbWVudChzZWxmKS5ldGEoZmxhZykpCisg CisgCistY3BkZWYgQ29tcGxleERvdWJsZUVsZW1lbnQgY29tcGxleF9kb3VibGVfZWxlbWVudF9h Z20oQ29tcGxleERvdWJsZUVsZW1lbnQgc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorK2NwZGVmIENv bXBsZXhEb3VibGVFbGVtZW50IGNvbXBsZXhfZG91YmxlX2VsZW1lbnRfYWdtKENvbXBsZXhEb3Vi bGVFbGVtZW50IHNlbGYsIHJpZ2h0KToKKyAgICAgIiIiCisgICAgIFRFU1RTOjoKKyAKK0BAIC04 Nyw3ICs4Nyw3IEBAIGNwZGVmIENvbXBsZXhEb3VibGVFbGVtZW50IGNvbXBsZXhfZG91YmxlX2Vs ZW1lbnRfYWdtKENvbXBsZXhEb3VibGVFbGVtZW50IHNlbGYsCisgICAgIHJldHVybiBwYXJpX3Rv X2NkZihuZXdfZ2VuX2Zyb21fY29tcGxleF9kb3VibGVfZWxlbWVudChzZWxmKS5hZ20ocmlnaHQp KQorIAorIAorLWNwZGVmIENvbXBsZXhEb3VibGVFbGVtZW50IGNvbXBsZXhfZG91YmxlX2VsZW1l bnRfZGlsb2coQ29tcGxleERvdWJsZUVsZW1lbnQgc2VsZikgbm9leGNlcHQ6CisrY3BkZWYgQ29t cGxleERvdWJsZUVsZW1lbnQgY29tcGxleF9kb3VibGVfZWxlbWVudF9kaWxvZyhDb21wbGV4RG91 YmxlRWxlbWVudCBzZWxmKToKKyAgICAgIiIiCisgICAgIFRFU1RTOjoKKyAKK0BAIC05OCw3ICs5 OCw3IEBAIGNwZGVmIENvbXBsZXhEb3VibGVFbGVtZW50IGNvbXBsZXhfZG91YmxlX2VsZW1lbnRf ZGlsb2coQ29tcGxleERvdWJsZUVsZW1lbnQgc2VsCisgICAgIHJldHVybiBwYXJpX3RvX2NkZihu ZXdfZ2VuX2Zyb21fY29tcGxleF9kb3VibGVfZWxlbWVudChzZWxmKS5kaWxvZygpKQorIAorIAor LWNwZGVmIENvbXBsZXhEb3VibGVFbGVtZW50IGNvbXBsZXhfZG91YmxlX2VsZW1lbnRfZ2FtbWEo Q29tcGxleERvdWJsZUVsZW1lbnQgc2VsZikgbm9leGNlcHQ6CisrY3BkZWYgQ29tcGxleERvdWJs ZUVsZW1lbnQgY29tcGxleF9kb3VibGVfZWxlbWVudF9nYW1tYShDb21wbGV4RG91YmxlRWxlbWVu dCBzZWxmKToKKyAgICAgIiIiCisgICAgIFRFU1RTOjoKKyAKK0BAIC0xMDksNyArMTA5LDcgQEAg Y3BkZWYgQ29tcGxleERvdWJsZUVsZW1lbnQgY29tcGxleF9kb3VibGVfZWxlbWVudF9nYW1tYShD b21wbGV4RG91YmxlRWxlbWVudCBzZWwKKyAgICAgcmV0dXJuIHBhcmlfdG9fY2RmKG5ld19nZW5f ZnJvbV9jb21wbGV4X2RvdWJsZV9lbGVtZW50KHNlbGYpLmdhbW1hKCkpCisgCisgCistY3BkZWYg Q29tcGxleERvdWJsZUVsZW1lbnQgY29tcGxleF9kb3VibGVfZWxlbWVudF9nYW1tYV9pbmMoQ29t cGxleERvdWJsZUVsZW1lbnQgc2VsZiwgdCkgbm9leGNlcHQ6CisrY3BkZWYgQ29tcGxleERvdWJs ZUVsZW1lbnQgY29tcGxleF9kb3VibGVfZWxlbWVudF9nYW1tYV9pbmMoQ29tcGxleERvdWJsZUVs ZW1lbnQgc2VsZiwgdCk6CisgICAgICIiIgorICAgICBURVNUUzo6CisgCitAQCAtMTIwLDcgKzEy MCw3IEBAIGNwZGVmIENvbXBsZXhEb3VibGVFbGVtZW50IGNvbXBsZXhfZG91YmxlX2VsZW1lbnRf Z2FtbWFfaW5jKENvbXBsZXhEb3VibGVFbGVtZW50CisgICAgIHJldHVybiBwYXJpX3RvX2NkZihu ZXdfZ2VuX2Zyb21fY29tcGxleF9kb3VibGVfZWxlbWVudChzZWxmKS5pbmNnYW0odCkpCisgCisg CistY3BkZWYgQ29tcGxleERvdWJsZUVsZW1lbnQgY29tcGxleF9kb3VibGVfZWxlbWVudF96ZXRh KENvbXBsZXhEb3VibGVFbGVtZW50IHNlbGYpIG5vZXhjZXB0OgorK2NwZGVmIENvbXBsZXhEb3Vi bGVFbGVtZW50IGNvbXBsZXhfZG91YmxlX2VsZW1lbnRfemV0YShDb21wbGV4RG91YmxlRWxlbWVu dCBzZWxmKToKKyAgICAgIiIiCisgICAgIFRFU1RTOjoKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2Fn ZS9saWJzL3BhcmkvY29udmVydF9zYWdlX3JlYWxfZG91YmxlLnB4ZCBiL3NyYy9zYWdlL2xpYnMv cGFyaS9jb252ZXJ0X3NhZ2VfcmVhbF9kb3VibGUucHhkCitpbmRleCBkZjIxMTlkMDM3MC4uMTJm YTc0MThlNjkgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL3BhcmkvY29udmVydF9zYWdlX3Jl YWxfZG91YmxlLnB4ZAorKysrIGIvc3JjL3NhZ2UvbGlicy9wYXJpL2NvbnZlcnRfc2FnZV9yZWFs X2RvdWJsZS5weGQKK0BAIC0xLDQgKzEsNCBAQAorIGZyb20gY3lwYXJpMi5nZW4gY2ltcG9ydCBH ZW4KKyBmcm9tIHNhZ2UucmluZ3MucmVhbF9kb3VibGUgY2ltcG9ydCBSZWFsRG91YmxlRWxlbWVu dAorIAorLWNwZGVmIEdlbiBuZXdfZ2VuX2Zyb21fcmVhbF9kb3VibGVfZWxlbWVudChSZWFsRG91 YmxlRWxlbWVudCBzZWxmKSBub2V4Y2VwdAorK2NwZGVmIEdlbiBuZXdfZ2VuX2Zyb21fcmVhbF9k b3VibGVfZWxlbWVudChSZWFsRG91YmxlRWxlbWVudCBzZWxmKQorZGlmZiAtLWdpdCBhL3NyYy9z YWdlL2xpYnMvcGFyaS9jb252ZXJ0X3NhZ2VfcmVhbF9kb3VibGUucHl4IGIvc3JjL3NhZ2UvbGli cy9wYXJpL2NvbnZlcnRfc2FnZV9yZWFsX2RvdWJsZS5weXgKK2luZGV4IGVlN2ViYTNmNGE4Li42 ZDdmZmU3MDM4ZSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2xpYnMvcGFyaS9jb252ZXJ0X3NhZ2Vf cmVhbF9kb3VibGUucHl4CisrKysgYi9zcmMvc2FnZS9saWJzL3BhcmkvY29udmVydF9zYWdlX3Jl YWxfZG91YmxlLnB5eAorQEAgLTEsNiArMSw2IEBACisgZnJvbSBjeXBhcmkyLmNvbnZlcnQgY2lt cG9ydCBuZXdfZ2VuX2Zyb21fZG91YmxlCisgCistY3BkZWYgR2VuIG5ld19nZW5fZnJvbV9yZWFs X2RvdWJsZV9lbGVtZW50KFJlYWxEb3VibGVFbGVtZW50IHNlbGYpIG5vZXhjZXB0OgorK2NwZGVm IEdlbiBuZXdfZ2VuX2Zyb21fcmVhbF9kb3VibGVfZWxlbWVudChSZWFsRG91YmxlRWxlbWVudCBz ZWxmKToKKyAgICAgIiIiCisgICAgIFJldHVybiBhIFBBUkkgcmVwcmVzZW50YXRpb24gb2YgYGBz ZWxmYGAuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbGlicy9wYXJpL2NvbnZlcnRfc2FnZV9y ZWFsX21wZnIucHhkIGIvc3JjL3NhZ2UvbGlicy9wYXJpL2NvbnZlcnRfc2FnZV9yZWFsX21wZnIu cHhkCitpbmRleCBhNzY3NDMwOTI1NS4uMzRmYmQyYmJlNDUgMTAwNjQ0CistLS0gYS9zcmMvc2Fn ZS9saWJzL3BhcmkvY29udmVydF9zYWdlX3JlYWxfbXBmci5weGQKKysrKyBiL3NyYy9zYWdlL2xp YnMvcGFyaS9jb252ZXJ0X3NhZ2VfcmVhbF9tcGZyLnB4ZAorQEAgLTMsNCArMyw0IEBAIGZyb20g Y3lwYXJpMi5nZW4gY2ltcG9ydCBHZW4KKyBmcm9tIHNhZ2UucmluZ3MucmVhbF9tcGZyIGNpbXBv cnQgUmVhbE51bWJlcgorIAorIGNwZGVmIEdlbiBuZXdfZ2VuX2Zyb21fcmVhbF9tcGZyX2VsZW1l bnQoUmVhbE51bWJlciBzZWxmKQorLWNwZGVmIGJpbnQgc2V0X3JlYWxfbXBmcl9lbGVtZW50X2Zy b21fZ2VuKFJlYWxOdW1iZXIgc2VsZiwgR2VuIHgpCisrY3BkZWYgYmludCBzZXRfcmVhbF9tcGZy X2VsZW1lbnRfZnJvbV9nZW4oUmVhbE51bWJlciBzZWxmLCBHZW4geCkgbm9leGNlcHQKK2RpZmYg LS1naXQgYS9zcmMvc2FnZS9saWJzL3BhcmkvY29udmVydF9zYWdlX3JlYWxfbXBmci5weXggYi9z cmMvc2FnZS9saWJzL3BhcmkvY29udmVydF9zYWdlX3JlYWxfbXBmci5weXgKK2luZGV4IDExOTk0 NGE1MjA5Li40NTQ2YzNkZWYyNCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2xpYnMvcGFyaS9jb252 ZXJ0X3NhZ2VfcmVhbF9tcGZyLnB5eAorKysrIGIvc3JjL3NhZ2UvbGlicy9wYXJpL2NvbnZlcnRf c2FnZV9yZWFsX21wZnIucHl4CitAQCAtNTYsNyArNTYsNyBAQCBjcGRlZiBHZW4gbmV3X2dlbl9m cm9tX3JlYWxfbXBmcl9lbGVtZW50KFJlYWxOdW1iZXIgc2VsZik6CisgICAgIHJldHVybiBuZXdf Z2VuKHBhcmlfZmxvYXQpCisgCisgCistY3BkZWYgYmludCBzZXRfcmVhbF9tcGZyX2VsZW1lbnRf ZnJvbV9nZW4oUmVhbE51bWJlciBzZWxmLCBHZW4geCk6CisrY3BkZWYgYmludCBzZXRfcmVhbF9t cGZyX2VsZW1lbnRfZnJvbV9nZW4oUmVhbE51bWJlciBzZWxmLCBHZW4geCkgbm9leGNlcHQ6Cisg ICAgIHIiIiIKKyAgICAgRVhBTVBMRVM6OgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMv cGFyaS9taXNjLnB4ZCBiL3NyYy9zYWdlL2xpYnMvcGFyaS9taXNjLnB4ZAoraW5kZXggZGExNjI3 NDJmMWQuLmFlODlhZmYwYjg0IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbGlicy9wYXJpL21pc2Mu cHhkCisrKysgYi9zcmMvc2FnZS9saWJzL3BhcmkvbWlzYy5weGQKK0BAIC0xLDMgKzEsMyBAQAor IGZyb20gY3lwYXJpMi5nZW4gY2ltcG9ydCBHZW4KKyAKKy1jZGVmIEdlbiBuZXdfdF9QT0xfZnJv bV9pbnRfc3RhcihpbnQqIHZhbHMsIHVuc2lnbmVkIGxvbmcgbGVuZ3RoLCBsb25nIHZhcm51bSkg bm9leGNlcHQKKytjZGVmIEdlbiBuZXdfdF9QT0xfZnJvbV9pbnRfc3RhcihpbnQqIHZhbHMsIHVu c2lnbmVkIGxvbmcgbGVuZ3RoLCBsb25nIHZhcm51bSkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9s aWJzL3BhcmkvbWlzYy5weXggYi9zcmMvc2FnZS9saWJzL3BhcmkvbWlzYy5weXgKK2luZGV4IDAy ZmQ4NDAzYjhlLi4xZWQ3NzRkNDE3YyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2xpYnMvcGFyaS9t aXNjLnB5eAorKysrIGIvc3JjL3NhZ2UvbGlicy9wYXJpL21pc2MucHl4CitAQCAtMyw3ICszLDcg QEAgZnJvbSBjeXBhcmkyLnBhcmlkZWNsIGNpbXBvcnQgKgorIGZyb20gY3lwYXJpMi5zdGFjayBj aW1wb3J0IG5ld19nZW4KKyAKKyAKKy1jZGVmIEdlbiBuZXdfdF9QT0xfZnJvbV9pbnRfc3Rhcihp bnQqIHZhbHMsIHVuc2lnbmVkIGxvbmcgbGVuZ3RoLCBsb25nIHZhcm51bSkgbm9leGNlcHQ6Cisr Y2RlZiBHZW4gbmV3X3RfUE9MX2Zyb21faW50X3N0YXIoaW50KiB2YWxzLCB1bnNpZ25lZCBsb25n IGxlbmd0aCwgbG9uZyB2YXJudW0pOgorICAgICAiIiIKKyAgICAgQ29udmVydCBhbiBhcnJheSBv ZiBpbnRzIHRvIGEgUEFSSSBwb2x5bm9taWFsLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xp YnMvc2luZ3VsYXIvZnVuY3Rpb24ucHhkIGIvc3JjL3NhZ2UvbGlicy9zaW5ndWxhci9mdW5jdGlv bi5weGQKK2luZGV4IDI5NzQ4YzAzOWM2Li5mYWNkY2FlNjc0YSAxMDA2NDQKKy0tLSBhL3NyYy9z YWdlL2xpYnMvc2luZ3VsYXIvZnVuY3Rpb24ucHhkCisrKysgYi9zcmMvc2FnZS9saWJzL3Npbmd1 bGFyL2Z1bmN0aW9uLnB4ZAorQEAgLTE5LDcgKzE5LDcgQEAgZnJvbSBzYWdlLmxpYnMuc2luZ3Vs YXIuZGVjbCBjaW1wb3J0IGxlZnR2LCBpZGhkbCwgc3lTdHJhdGVneSwgbWF0cml4LCBwb2x5LCBp ZGUKKyBmcm9tIHNhZ2UubGlicy5zaW5ndWxhci5kZWNsIGNpbXBvcnQgcmluZyBhcyBzaW5ndWxh cl9yaW5nCisgZnJvbSBzYWdlLnJpbmdzLnBvbHlub21pYWwubXVsdGlfcG9seW5vbWlhbF9saWJz aW5ndWxhciBjaW1wb3J0IE1Qb2x5bm9taWFsUmluZ19saWJzaW5ndWxhciwgTVBvbHlub21pYWxf bGlic2luZ3VsYXIKKyAKKy1jZGVmIG5ld19zYWdlX3BvbHlub21pYWwocmluZywgIHBvbHkgKnAp IG5vZXhjZXB0CisrY2RlZiBuZXdfc2FnZV9wb2x5bm9taWFsKHJpbmcsICBwb2x5ICpwKQorIGNk ZWYgcG9seSogYWNjZXNzX3Npbmd1bGFyX3BvbHkocCkgZXhjZXB0IDxwb2x5Kj4gLTEKKyBjZGVm IHNpbmd1bGFyX3JpbmcqIGFjY2Vzc19zaW5ndWxhcl9yaW5nKHIpIGV4Y2VwdCA8c2luZ3VsYXJf cmluZyo+IC0xCisgCitAQCAtNTAsMTEgKzUwLDExIEBAIGNkZWYgY2xhc3MgQ29udmVydGVyKFNh Z2VPYmplY3QpOgorICAgICBjZGVmIGxlZnR2ICogYXBwZW5kX21hdHJpeChzZWxmLCBhKSBleGNl cHQgTlVMTAorICAgICBjZGVmIGxlZnR2ICogYXBwZW5kX3Jpbmcoc2VsZiwgcikgZXhjZXB0IE5V TEwKKyAgICAgY2RlZiBsZWZ0diAqIGFwcGVuZF9tb2R1bGUoc2VsZiwgbSkgZXhjZXB0IE5VTEwK Ky0gICAgY2RlZiB0b19zYWdlX2ludGVnZXJfbWF0cml4KHNlbGYsIGludHZlYyAqbWF0KSBub2V4 Y2VwdAorLSAgICBjZGVmIG9iamVjdCB0b19zYWdlX21vZHVsZV9lbGVtZW50X3NlcXVlbmNlX2Rl c3RydWN0aXZlKHNlbGYsIGlkZWFsICppKSBub2V4Y2VwdAorLSAgICBjZGVmIHRvX3NhZ2VfdmVj dG9yX2Rlc3RydWN0aXZlKHNlbGYsIHBvbHkgKnAsIGZyZWVfbW9kdWxlID0gPykgbm9leGNlcHQK Ky0gICAgY2RlZiB0b19zYWdlX21hdHJpeChzZWxmLCBtYXRyaXgqIG1hdCkgbm9leGNlcHQKKy0g ICAgY2RlZiB0b19weXRob24oc2VsZiwgbGVmdHYqIHRvX2NvbnZlcnQpIG5vZXhjZXB0CisrICAg IGNkZWYgdG9fc2FnZV9pbnRlZ2VyX21hdHJpeChzZWxmLCBpbnR2ZWMgKm1hdCkKKysgICAgY2Rl ZiBvYmplY3QgdG9fc2FnZV9tb2R1bGVfZWxlbWVudF9zZXF1ZW5jZV9kZXN0cnVjdGl2ZShzZWxm LCBpZGVhbCAqaSkKKysgICAgY2RlZiB0b19zYWdlX3ZlY3Rvcl9kZXN0cnVjdGl2ZShzZWxmLCBw b2x5ICpwLCBmcmVlX21vZHVsZSA9ID8pCisrICAgIGNkZWYgdG9fc2FnZV9tYXRyaXgoc2VsZiwg bWF0cml4KiBtYXQpCisrICAgIGNkZWYgdG9fcHl0aG9uKHNlbGYsIGxlZnR2KiB0b19jb252ZXJ0 KQorIAorIGNkZWYgY2xhc3MgQmFzZUNhbGxIYW5kbGVyOgorICAgICBjZGVmIGxlZnR2KiBoYW5k bGVfY2FsbChzZWxmLCBDb252ZXJ0ZXIgYXJndW1lbnRfbGlzdCwgc2luZ3VsYXJfcmluZyAqX3Jp bmc9Pykgbm9leGNlcHQKK0BAIC03Miw5ICs3Miw5IEBAIGNkZWYgY2xhc3MgU2luZ3VsYXJGdW5j dGlvbihTYWdlT2JqZWN0KToKKyAgICAgY2RlZiBNUG9seW5vbWlhbFJpbmdfbGlic2luZ3VsYXIg X3JpbmcKKyAgICAgY2RlZiBCYXNlQ2FsbEhhbmRsZXIgY2FsbF9oYW5kbGVyCisgCistICAgIGNk ZWYgQmFzZUNhbGxIYW5kbGVyIGdldF9jYWxsX2hhbmRsZXIoc2VsZikgbm9leGNlcHQKKysgICAg Y2RlZiBCYXNlQ2FsbEhhbmRsZXIgZ2V0X2NhbGxfaGFuZGxlcihzZWxmKQorICAgICBjZGVmIGJp bnQgZnVuY3Rpb25fZXhpc3RzKHNlbGYpIG5vZXhjZXB0CistICAgIGNkZWYgY29tbW9uX3Jpbmco c2VsZiwgdHVwbGUgYXJncywgcmluZz0/KSBub2V4Y2VwdAorKyAgICBjZGVmIGNvbW1vbl9yaW5n KHNlbGYsIHR1cGxlIGFyZ3MsIHJpbmc9PykKKyAKKyBjZGVmIGNsYXNzIFNpbmd1bGFyTGlicmFy eUZ1bmN0aW9uKFNpbmd1bGFyRnVuY3Rpb24pOgorICAgICBwYXNzCitAQCAtODMsNCArODMsNCBA QCBjZGVmIGNsYXNzIFNpbmd1bGFyS2VybmVsRnVuY3Rpb24oU2luZ3VsYXJGdW5jdGlvbik6Cisg ICAgIHBhc3MKKyAKKyAjIHRoZSBtb3N0IGRpcmVjdCBmdW5jdGlvbiBjYWxsIGludGVyZmFjZQor LWNkZWYgY2FsbF9mdW5jdGlvbihTaW5ndWxhckZ1bmN0aW9uIHNlbGYsIHR1cGxlIGFyZ3MsIG9i amVjdCBSLCBiaW50IHNpZ25hbF9oYW5kbGVyPT8sIG9iamVjdCBhdHRyaWJ1dGVzPT8pIG5vZXhj ZXB0CisrY2RlZiBjYWxsX2Z1bmN0aW9uKFNpbmd1bGFyRnVuY3Rpb24gc2VsZiwgdHVwbGUgYXJn cywgb2JqZWN0IFIsIGJpbnQgc2lnbmFsX2hhbmRsZXI9Pywgb2JqZWN0IGF0dHJpYnV0ZXM9PykK K2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL3Npbmd1bGFyL2Z1bmN0aW9uLnB5eCBiL3NyYy9z YWdlL2xpYnMvc2luZ3VsYXIvZnVuY3Rpb24ucHl4CitpbmRleCA4MzRmZmQxNjNkOC4uMDEyMWZh NzZiNDcgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL3Npbmd1bGFyL2Z1bmN0aW9uLnB5eAor KysrIGIvc3JjL3NhZ2UvbGlicy9zaW5ndWxhci9mdW5jdGlvbi5weXgKK0BAIC0zNTMsNyArMzUz LDcgQEAgY2RlZiBsZWZ0diogbmV3X2xlZnR2KHZvaWQgKmRhdGEsIHJlc190eXBlKSBub2V4Y2Vw dDoKKyAgICAgcmVzLnJ0eXAgPSByZXNfdHlwZQorICAgICByZXR1cm4gcmVzCisgCistY2RlZiBm cmVlX2xlZnR2KGxlZnR2ICphcmdzLCByaW5nICpyID0gTlVMTCkgbm9leGNlcHQ6CisrY2RlZiBm cmVlX2xlZnR2KGxlZnR2ICphcmdzLCByaW5nICpyID0gTlVMTCk6CisgICAgICIiIgorICAgICBL aWxscyB0aGlzIGBgbGVmdHZgYCBhbmQgYWxsIGBgbGVmdHZgYHMgaW4gdGhlIHRhaWwuCisgCitA QCAtMzkzLDcgKzM5Myw3IEBAIGRlZiBpc19zYWdlX3dyYXBwZXJfZm9yX3Npbmd1bGFyX3Jpbmco cmluZyk6CisgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICByZXR1cm4gRmFsc2UKKyAKKy1jZGVm IG5ld19zYWdlX3BvbHlub21pYWwocmluZywgIHBvbHkgKnApIG5vZXhjZXB0OgorK2NkZWYgbmV3 X3NhZ2VfcG9seW5vbWlhbChyaW5nLCAgcG9seSAqcCk6CisgICAgIGlmIGlzaW5zdGFuY2Uocmlu ZywgTVBvbHlub21pYWxSaW5nX2xpYnNpbmd1bGFyKToKKyAgICAgICAgIHJldHVybiBuZXdfTVAo cmluZywgcCkKKyAgICAgZWxzZToKK0BAIC02NzgsNyArNjc4LDcgQEAgY2RlZiBjbGFzcyBDb252 ZXJ0ZXIoU2FnZU9iamVjdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9h cHBlbmRfbGVmdHYoIG5ld19sZWZ0dihkYXRhLCByZXNfdHlwZSkgKQorIAorLSAgICBjZGVmIHRv X3NhZ2VfbWF0cml4KHNlbGYsIG1hdHJpeCogbWF0KSBub2V4Y2VwdDoKKysgICAgY2RlZiB0b19z YWdlX21hdHJpeChzZWxmLCBtYXRyaXgqIG1hdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIENv bnZlcnQgc2luZ3VsYXIgbWF0cml4IHRvIG1hdHJpeCBvdmVyIHRoZSBwb2x5bm9taWFsIHJpbmcu CisgICAgICAgICAiIiIKK0BAIC02OTMsNyArNjkzLDcgQEAgY2RlZiBjbGFzcyBDb252ZXJ0ZXIo U2FnZU9iamVjdCk6CisgICAgICAgICAgICAgICAgIHJlc3VsdFtpLGpdID0gcAorICAgICAgICAg cmV0dXJuIHJlc3VsdAorIAorLSAgICBjZGVmIHRvX3NhZ2VfdmVjdG9yX2Rlc3RydWN0aXZlKHNl bGYsIHBvbHkgKnAsIGZyZWVfbW9kdWxlID0gTm9uZSkgbm9leGNlcHQ6CisrICAgIGNkZWYgdG9f c2FnZV92ZWN0b3JfZGVzdHJ1Y3RpdmUoc2VsZiwgcG9seSAqcCwgZnJlZV9tb2R1bGUgPSBOb25l KToKKyAgICAgICAgIGNkZWYgaW50IHJhbmsKKyAgICAgICAgIGlmIGZyZWVfbW9kdWxlOgorICAg ICAgICAgICAgIHJhbmsgPSBmcmVlX21vZHVsZS5yYW5rKCkKK0BAIC03MzMsNyArNzMzLDcgQEAg Y2RlZiBjbGFzcyBDb252ZXJ0ZXIoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAgcmVzdWx0LmFw cGVuZChuZXdfc2FnZV9wb2x5bm9taWFsKHNlbGYuX3NhZ2VfcmluZywgZmlyc3QpKQorICAgICAg ICAgcmV0dXJuIGZyZWVfbW9kdWxlKHJlc3VsdCkKKyAKKy0gICAgY2RlZiBvYmplY3QgdG9fc2Fn ZV9tb2R1bGVfZWxlbWVudF9zZXF1ZW5jZV9kZXN0cnVjdGl2ZSggc2VsZiwgaWRlYWwgKmkpIG5v ZXhjZXB0OgorKyAgICBjZGVmIG9iamVjdCB0b19zYWdlX21vZHVsZV9lbGVtZW50X3NlcXVlbmNl X2Rlc3RydWN0aXZlKCBzZWxmLCBpZGVhbCAqaSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIENv bnZlcnQgYSBTSU5HVUxBUiBtb2R1bGUgdG8gYSBTYWdlIFNlcXVlbmNlICh0aGUgZm9ybWF0IFNh Z2UKKyAgICAgICAgIHN0b3JlcyBhIEdyb2VibmVyIGJhc2lzIGluKS4KK0BAIC03NTYsNyArNzU2 LDcgQEAgY2RlZiBjbGFzcyBDb252ZXJ0ZXIoU2FnZU9iamVjdCk6CisgCisgICAgICAgICByZXR1 cm4gU2VxdWVuY2UobCwgY2hlY2s9RmFsc2UsIGltbXV0YWJsZT1UcnVlKQorIAorLSAgICBjZGVm IHRvX3NhZ2VfaW50ZWdlcl9tYXRyaXgoc2VsZiwgaW50dmVjKiBtYXQpIG5vZXhjZXB0OgorKyAg ICBjZGVmIHRvX3NhZ2VfaW50ZWdlcl9tYXRyaXgoc2VsZiwgaW50dmVjKiBtYXQpOgorICAgICAg ICAgIiIiCisgICAgICAgICBDb252ZXJ0IFNpbmd1bGFyIG1hdHJpeCB0byBtYXRyaXggb3ZlciB0 aGUgcG9seW5vbWlhbCByaW5nLgorICAgICAgICAgIiIiCitAQCAtOTA4LDcgKzkwOCw3IEBAIGNk ZWYgY2xhc3MgQ29udmVydGVyKFNhZ2VPYmplY3QpOgorICAgICAgICAgYiA9IHN0cl90b19ieXRl cyhuKQorICAgICAgICAgcmV0dXJuIHNlbGYuX2FwcGVuZChvbVN0ckR1cChiKSwgU1RSSU5HX0NN RCkKKyAKKy0gICAgY2RlZiB0b19weXRob24oc2VsZiwgbGVmdHYqIHRvX2NvbnZlcnQpIG5vZXhj ZXB0OgorKyAgICBjZGVmIHRvX3B5dGhvbihzZWxmLCBsZWZ0diogdG9fY29udmVydCk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIENvbnZlcnQgdGhlIGBgbGVmdHZgYCB0byBhIFB5dGhvbiBvYmpl Y3QuCisgCitAQCAtMTE2OCw3ICsxMTY4LDcgQEAgY2RlZiBjbGFzcyBTaW5ndWxhckZ1bmN0aW9u KFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgICAgICBjdXJyUmluZ0hkbC5kYXRhLnVyaW5nID0g PHJpbmcgKj5vbUFsbG9jMEJpbihzaXBfc3JpbmdfYmluKQorICAgICAgICAgICAgIGN1cnJSaW5n SGRsLmRhdGEudXJpbmcucmVmICs9IDEKKyAKKy0gICAgY2RlZiBCYXNlQ2FsbEhhbmRsZXIgZ2V0 X2NhbGxfaGFuZGxlcihzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBCYXNlQ2FsbEhhbmRsZXIg Z2V0X2NhbGxfaGFuZGxlcihzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGEg Y2FsbCBoYW5kbGVyIHdoaWNoIGRvZXMgdGhlIGFjdHVhbCB3b3JrLgorICAgICAgICAgIiIiCitA QCAtMTM1OCw3ICsxMzU4LDcgQEAgVGhlIFNpbmd1bGFyIGRvY3VtZW50YXRpb24gZm9yICclcycg aXMgZ2l2ZW4gYmVsb3cuCisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJldHVybiBwcmVm aXggKyAiXG46OlxuXG4iKyIgICAgU2luZ3VsYXIgZG9jdW1lbnRhdGlvbiBub3QgZm91bmQiCisg CistICAgIGNkZWYgY29tbW9uX3Jpbmcoc2VsZiwgdHVwbGUgYXJncywgcmluZz1Ob25lKSBub2V4 Y2VwdDoKKysgICAgY2RlZiBjb21tb25fcmluZyhzZWxmLCB0dXBsZSBhcmdzLCByaW5nPU5vbmUp OgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGNvbW1vbiByaW5nIGZvciB0aGUg YXJndW1lbnQgbGlzdCBgYGFyZ3NgYC4KKyAKK0BAIC0xNDQyLDcgKzE0NDIsNyBAQCBUaGUgU2lu Z3VsYXIgZG9jdW1lbnRhdGlvbiBmb3IgJyVzJyBpcyBnaXZlbiBiZWxvdy4KKyAgICAgICAgIHJl dHVybiByaWNoY21wKGx4Ll9uYW1lLCByeC5fbmFtZSwgb3ApCisgCisgCistY2RlZiBpbmxpbmUg Y2FsbF9mdW5jdGlvbihTaW5ndWxhckZ1bmN0aW9uIHNlbGYsIHR1cGxlIGFyZ3MsIG9iamVjdCBS LCBiaW50IHNpZ25hbF9oYW5kbGVyPVRydWUsIGF0dHJpYnV0ZXM9Tm9uZSkgbm9leGNlcHQ6Cisr Y2RlZiBpbmxpbmUgY2FsbF9mdW5jdGlvbihTaW5ndWxhckZ1bmN0aW9uIHNlbGYsIHR1cGxlIGFy Z3MsIG9iamVjdCBSLCBiaW50IHNpZ25hbF9oYW5kbGVyPVRydWUsIGF0dHJpYnV0ZXM9Tm9uZSk6 CisgICAgIGdsb2JhbCBjdXJyUmluZ0hkbAorICAgICBnbG9iYWwgZXJyb3JyZXBvcnRlZAorICAg ICBnbG9iYWwgY3VycmVudFZvaWNlCitAQCAtMTUzMCw3ICsxNTMwLDcgQEAgY2RlZiBjbGFzcyBT aW5ndWxhckxpYnJhcnlGdW5jdGlvbihTaW5ndWxhckZ1bmN0aW9uKToKKyAgICAgICAgIHN1cGVy KCkuX19pbml0X18obmFtZSkKKyAgICAgICAgIHNlbGYuY2FsbF9oYW5kbGVyID0gc2VsZi5nZXRf Y2FsbF9oYW5kbGVyKCkKKyAKKy0gICAgY2RlZiBCYXNlQ2FsbEhhbmRsZXIgZ2V0X2NhbGxfaGFu ZGxlcihzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBCYXNlQ2FsbEhhbmRsZXIgZ2V0X2NhbGxf aGFuZGxlcihzZWxmKToKKyAgICAgICAgIGNkZWYgaWRoZGwqIHNpbmd1bGFyX2lkaGRsID0gZ2dl dGlkKHN0cl90b19ieXRlcyhzZWxmLl9uYW1lKSkKKyAgICAgICAgIGlmIHNpbmd1bGFyX2lkaGRs PT1OVUxMOgorICAgICAgICAgICAgIHJhaXNlIE5hbWVFcnJvcigiU2luZ3VsYXIgbGlicmFyeSBm dW5jdGlvbiB7IXJ9IGlzIG5vdCBkZWZpbmVkIi5mb3JtYXQoc2VsZi5fbmFtZSkpCitAQCAtMTU3 Nyw3ICsxNTc3LDcgQEAgY2RlZiBjbGFzcyBTaW5ndWxhcktlcm5lbEZ1bmN0aW9uKFNpbmd1bGFy RnVuY3Rpb24pOgorICAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhuYW1lKQorICAgICAgICAgc2Vs Zi5jYWxsX2hhbmRsZXIgPSBzZWxmLmdldF9jYWxsX2hhbmRsZXIoKQorIAorLSAgICBjZGVmIEJh c2VDYWxsSGFuZGxlciBnZXRfY2FsbF9oYW5kbGVyKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVm IEJhc2VDYWxsSGFuZGxlciBnZXRfY2FsbF9oYW5kbGVyKHNlbGYpOgorICAgICAgICAgY2RlZiBp bnQgY21kX24gPSAwCisgICAgICAgICBhcml0eSA9IElzQ21kKHN0cl90b19ieXRlcyhzZWxmLl9u YW1lKSwgY21kX24pICMgY2FsbCBieSByZXZlcmVuY2UgZm9yIENNRF9uCisgICAgICAgICBpZiBu b3QgY21kX246CitAQCAtMTg0Miw3ICsxODQyLDcgQEAgZGVmIGxpc3Rfb2ZfZnVuY3Rpb25zKHBh Y2thZ2VzPUZhbHNlKToKKyAgICAgICAgIGggPSBJRE5FWFQoaCkKKyAgICAgcmV0dXJuIGwKKyAK Ky1jZGVmIGlubGluZSBSaW5nV3JhcCBuZXdfUmluZ1dyYXAocmluZyogcikgbm9leGNlcHQ6Cisr Y2RlZiBpbmxpbmUgUmluZ1dyYXAgbmV3X1JpbmdXcmFwKHJpbmcqIHIpOgorICAgICBjZGVmIFJp bmdXcmFwIHJpbmdfd3JhcF9yZXN1bHQgPSBSaW5nV3JhcC5fX25ld19fKFJpbmdXcmFwKQorICAg ICByaW5nX3dyYXBfcmVzdWx0Ll9yaW5nID0gcgorICAgICByaW5nX3dyYXBfcmVzdWx0Ll9yaW5n LnJlZiArPSAxCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbGlicy9zaW5ndWxhci9ncm9lYm5lcl9z dHJhdGVneS5weGQgYi9zcmMvc2FnZS9saWJzL3Npbmd1bGFyL2dyb2VibmVyX3N0cmF0ZWd5LnB4 ZAoraW5kZXggMzkxZjExYWVlOTcuLjYwNWUyNjc5MjI4IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uv bGlicy9zaW5ndWxhci9ncm9lYm5lcl9zdHJhdGVneS5weGQKKysrKyBiL3NyYy9zYWdlL2xpYnMv c2luZ3VsYXIvZ3JvZWJuZXJfc3RyYXRlZ3kucHhkCitAQCAtMTEsMTEgKzExLDExIEBAIGNkZWYg Y2xhc3MgR3JvZWJuZXJTdHJhdGVneShTYWdlT2JqZWN0KToKKyAgICAgY2RlZiBNUG9seW5vbWlh bFJpbmdfbGlic2luZ3VsYXIgX3BhcmVudAorICAgICBjZGVmIG9iamVjdCBfaWRlYWwKKyAKKy0g ICAgY3BkZWYgTVBvbHlub21pYWxfbGlic2luZ3VsYXIgbm9ybWFsX2Zvcm0oc2VsZiwgTVBvbHlu b21pYWxfbGlic2luZ3VsYXIgcCkgbm9leGNlcHQKKysgICAgY3BkZWYgTVBvbHlub21pYWxfbGli c2luZ3VsYXIgbm9ybWFsX2Zvcm0oc2VsZiwgTVBvbHlub21pYWxfbGlic2luZ3VsYXIgcCkKKyAK KyBjZGVmIGNsYXNzIE5DR3JvZWJuZXJTdHJhdGVneShTYWdlT2JqZWN0KToKKyAgICAgY2RlZiBz a1N0cmF0ZWd5ICpfc3RyYXQKKyAgICAgY2RlZiBOQ1BvbHlub21pYWxSaW5nX3BsdXJhbCBfcGFy ZW50CisgICAgIGNkZWYgb2JqZWN0IF9pZGVhbAorIAorLSAgICBjcGRlZiBOQ1BvbHlub21pYWxf cGx1cmFsIG5vcm1hbF9mb3JtKHNlbGYsIE5DUG9seW5vbWlhbF9wbHVyYWwgcCkgbm9leGNlcHQK KysgICAgY3BkZWYgTkNQb2x5bm9taWFsX3BsdXJhbCBub3JtYWxfZm9ybShzZWxmLCBOQ1BvbHlu b21pYWxfcGx1cmFsIHApCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbGlicy9zaW5ndWxhci9ncm9l Ym5lcl9zdHJhdGVneS5weXggYi9zcmMvc2FnZS9saWJzL3Npbmd1bGFyL2dyb2VibmVyX3N0cmF0 ZWd5LnB5eAoraW5kZXggY2VkYTg4YzYzNjIuLmY0ZjdlZWMzOTAyIDEwMDY0NAorLS0tIGEvc3Jj L3NhZ2UvbGlicy9zaW5ndWxhci9ncm9lYm5lcl9zdHJhdGVneS5weXgKKysrKyBiL3NyYy9zYWdl L2xpYnMvc2luZ3VsYXIvZ3JvZWJuZXJfc3RyYXRlZ3kucHl4CitAQCAtMjYwLDcgKzI2MCw3IEBA IGNkZWYgY2xhc3MgR3JvZWJuZXJTdHJhdGVneShTYWdlT2JqZWN0KToKKyAgICAgICAgICIiIgor ICAgICAgICAgcmV0dXJuIHVucGlja2xlX0dyb2VibmVyU3RyYXRlZ3kwLCAoc2VsZi5faWRlYWws KQorIAorLSAgICBjcGRlZiBNUG9seW5vbWlhbF9saWJzaW5ndWxhciBub3JtYWxfZm9ybShzZWxm LCBNUG9seW5vbWlhbF9saWJzaW5ndWxhciBwKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgTVBvbHlu b21pYWxfbGlic2luZ3VsYXIgbm9ybWFsX2Zvcm0oc2VsZiwgTVBvbHlub21pYWxfbGlic2luZ3Vs YXIgcCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIENvbXB1dGUgdGhlIG5vcm1hbCBmb3JtIG9m IGBgcGBgIHdpdGggcmVzcGVjdCB0byB0aGUKKyAgICAgICAgIGdlbmVyYXRvcnMgb2YgdGhpcyBv YmplY3QuCitAQCAtNTExLDcgKzUxMSw3IEBAIGNkZWYgY2xhc3MgTkNHcm9lYm5lclN0cmF0ZWd5 KFNhZ2VPYmplY3QpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gdW5waWNrbGVfTkNH cm9lYm5lclN0cmF0ZWd5MCwgKHNlbGYuX2lkZWFsLCkKKyAKKy0gICAgY3BkZWYgTkNQb2x5bm9t aWFsX3BsdXJhbCBub3JtYWxfZm9ybShzZWxmLCBOQ1BvbHlub21pYWxfcGx1cmFsIHApIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBOQ1BvbHlub21pYWxfcGx1cmFsIG5vcm1hbF9mb3JtKHNlbGYsIE5D UG9seW5vbWlhbF9wbHVyYWwgcCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIENvbXB1dGUgdGhl IG5vcm1hbCBmb3JtIG9mIGBgcGBgIHdpdGggcmVzcGVjdCB0byB0aGUKKyAgICAgICAgIGdlbmVy YXRvcnMgb2YgdGhpcyBvYmplY3QuCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbGlicy9zaW5ndWxh ci9wb2x5bm9taWFsLnB4ZCBiL3NyYy9zYWdlL2xpYnMvc2luZ3VsYXIvcG9seW5vbWlhbC5weGQK K2luZGV4IGRmMjcxNzlkYTU0Li41MmIxOWZiYmE3NSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL2xp YnMvc2luZ3VsYXIvcG9seW5vbWlhbC5weGQKKysrKyBiL3NyYy9zYWdlL2xpYnMvc2luZ3VsYXIv cG9seW5vbWlhbC5weGQKK0BAIC0xOCw3ICsxOCw4IEBAIGZyb20gc2FnZS5saWJzLnNpbmd1bGFy LmRlY2wgY2ltcG9ydCBwb2x5LCByaW5nCisgCisgY2RlZiBpbnQgc2luZ3VsYXJfcG9seW5vbWlh bF9jaGVjayhwb2x5ICpwLCByaW5nICpyKSBleGNlcHQgLTEKKyBjZGVmIGludCBzaW5ndWxhcl9w b2x5bm9taWFsX2FkZCAocG9seSAqKnJldCwgcG9seSAqcCwgcG9seSAqcSwgcmluZyAqcikgbm9l eGNlcHQKKy1jZGVmIGludCBzaW5ndWxhcl9wb2x5bm9taWFsX2NhbGwgKHBvbHkgKipyZXQsIHBv bHkgKnAsIHJpbmcgKnIsIGxpc3QgYXJncywgcG9seSAqKCpnZXRfZWxlbWVudCkob2JqZWN0KSkg bm9leGNlcHQKKytjZGVmIGludCBzaW5ndWxhcl9wb2x5bm9taWFsX2NhbGwgKHBvbHkgKipyZXQs IHBvbHkgKnAsIHJpbmcgKnIsIGxpc3QgYXJncywKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHBvbHkgKigqZ2V0X2VsZW1lbnQpKG9iamVjdCkgbm9leGNlcHQpIG5vZXhjZXB0 CisgY2RlZiBpbnQgc2luZ3VsYXJfcG9seW5vbWlhbF9jbXAgKHBvbHkgKnAsIHBvbHkgKnEsIHJp bmcgKnIpIG5vZXhjZXB0CisgY2RlZiBpbnQgc2luZ3VsYXJfcG9seW5vbWlhbF9ybXVsIChwb2x5 ICoqcmV0LCBwb2x5ICpwLCBSaW5nRWxlbWVudCBxLCByaW5nICpyKSBub2V4Y2VwdAorIGNkZWYg aW50IHNpbmd1bGFyX3BvbHlub21pYWxfbXVsIChwb2x5ICoqcmV0LCBwb2x5ICpwLCBwb2x5ICpx LCByaW5nICpyKSBleGNlcHQgLTEKK0BAIC0yNyw5ICsyOCw5IEBAIGNkZWYgaW50IHNpbmd1bGFy X3BvbHlub21pYWxfZGl2X2NvZWZmIChwb2x5ICoqcmV0LCBwb2x5ICpwLCBwb2x5ICpxLCByaW5n ICpyKSBlCisgY2RlZiBpbnQgc2luZ3VsYXJfcG9seW5vbWlhbF9wb3cgKHBvbHkgKipyZXQsIHBv bHkgKnAsIHVuc2lnbmVkIGxvbmcgZXhwLCByaW5nICpyKSBleGNlcHQgLTEKKyBjZGVmIGludCBz aW5ndWxhcl9wb2x5bm9taWFsX25lZyhwb2x5ICoqcmV0LCBwb2x5ICpwLCByaW5nICpyKSBub2V4 Y2VwdAorIAorLWNkZWYgb2JqZWN0IHNpbmd1bGFyX3BvbHlub21pYWxfbGF0ZXgocG9seSAqcCwg cmluZyAqciwgb2JqZWN0IGJhc2UsIG9iamVjdCBsYXRleF9nZW5zKSBub2V4Y2VwdAorLWNkZWYg b2JqZWN0IHNpbmd1bGFyX3BvbHlub21pYWxfc3RyKHBvbHkgKnAsIHJpbmcgKnIpIG5vZXhjZXB0 CistY2RlZiBvYmplY3Qgc2luZ3VsYXJfcG9seW5vbWlhbF9zdHJfd2l0aF9jaGFuZ2VkX3Zhcm5h bWVzKHBvbHkgKnAsIHJpbmcgKnIsIG9iamVjdCB2YXJuYW1lcykgbm9leGNlcHQKKytjZGVmIG9i amVjdCBzaW5ndWxhcl9wb2x5bm9taWFsX2xhdGV4KHBvbHkgKnAsIHJpbmcgKnIsIG9iamVjdCBi YXNlLCBvYmplY3QgbGF0ZXhfZ2VucykKKytjZGVmIG9iamVjdCBzaW5ndWxhcl9wb2x5bm9taWFs X3N0cihwb2x5ICpwLCByaW5nICpyKQorK2NkZWYgb2JqZWN0IHNpbmd1bGFyX3BvbHlub21pYWxf c3RyX3dpdGhfY2hhbmdlZF92YXJuYW1lcyhwb2x5ICpwLCByaW5nICpyLCBvYmplY3QgdmFybmFt ZXMpCisgY2RlZiBsb25nIHNpbmd1bGFyX3BvbHlub21pYWxfZGVnKHBvbHkgKnAsIHBvbHkgKngs IHJpbmcgKnIpIG5vZXhjZXB0CisgCisgY2RlZiBpbnQgc2luZ3VsYXJfcG9seW5vbWlhbF9sZW5n dGhfYm91bmRlZChwb2x5ICpwLCBpbnQgYm91bmQpIG5vZXhjZXB0CitkaWZmIC0tZ2l0IGEvc3Jj L3NhZ2UvbGlicy9zaW5ndWxhci9wb2x5bm9taWFsLnB5eCBiL3NyYy9zYWdlL2xpYnMvc2luZ3Vs YXIvcG9seW5vbWlhbC5weXgKK2luZGV4IDQzYTViN2IxYmUwLi5lM2E1ODgxMzgzZCAxMDA2NDQK Ky0tLSBhL3NyYy9zYWdlL2xpYnMvc2luZ3VsYXIvcG9seW5vbWlhbC5weXgKKysrKyBiL3NyYy9z YWdlL2xpYnMvc2luZ3VsYXIvcG9seW5vbWlhbC5weXgKK0BAIC0xMzIsNyArMTMyLDggQEAgY2Rl ZiBpbnQgc2luZ3VsYXJfcG9seW5vbWlhbF9ybXVsKHBvbHkgKipyZXQsIHBvbHkgKnAsIFJpbmdF bGVtZW50IG4sIHJpbmcgKnIpIG4KKyAgICAgbl9EZWxldGUoJl9uLCByLmNmKQorICAgICByZXR1 cm4gMAorIAorLWNkZWYgaW50IHNpbmd1bGFyX3BvbHlub21pYWxfY2FsbChwb2x5ICoqcmV0LCBw b2x5ICpwLCByaW5nICpyLCBsaXN0IGFyZ3MsIHBvbHkgKigqZ2V0X2VsZW1lbnQpKG9iamVjdCkp IG5vZXhjZXB0OgorK2NkZWYgaW50IHNpbmd1bGFyX3BvbHlub21pYWxfY2FsbChwb2x5ICoqcmV0 LCBwb2x5ICpwLCByaW5nICpyLCBsaXN0IGFyZ3MsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHBvbHkgKigqZ2V0X2VsZW1lbnQpKG9iamVjdCkgbm9leGNlcHQpIG5vZXhjZXB0 OgorICAgICAiIiIKKyAgICAgYGByZXRbMF0gPSBwKCphcmdzKWBgIHdoZXJlIGVhY2ggZW50cnkg aW4gYXJnICBpcyBhIHBvbHlub21pYWwgYW5kIGBgcGBgIGluIGBgcmBgLgorIAorQEAgLTQyNSw3 ICs0MjYsNyBAQCBjZGVmIGludCBzaW5ndWxhcl9wb2x5bm9taWFsX25lZyhwb2x5ICoqcmV0LCBw b2x5ICpwLCByaW5nICpyKSBub2V4Y2VwdDoKKyAgICAgcmV0WzBdID0gcF9OZWcocF9Db3B5KHAs cikscikKKyAgICAgcmV0dXJuIDAKKyAKKy1jZGVmIG9iamVjdCBzaW5ndWxhcl9wb2x5bm9taWFs X3N0cihwb2x5ICpwLCByaW5nICpyKSBub2V4Y2VwdDoKKytjZGVmIG9iamVjdCBzaW5ndWxhcl9w b2x5bm9taWFsX3N0cihwb2x5ICpwLCByaW5nICpyKToKKyAgICAgIiIiCisgICAgIFJldHVybiB0 aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGBgcGBgLgorIAorQEAgLTQ1MCw3ICs0NTEsNyBA QCBjZGVmIG9iamVjdCBzaW5ndWxhcl9wb2x5bm9taWFsX3N0cihwb2x5ICpwLCByaW5nICpyKSBu b2V4Y2VwdDoKKyAgICAgcyA9IHBhcmVudGh2YXJfcGF0dGVybi5zdWIoIlxcMSIsIHMpCisgICAg IHJldHVybiBzCisgCistY2RlZiBvYmplY3Qgc2luZ3VsYXJfcG9seW5vbWlhbF9sYXRleChwb2x5 ICpwLCByaW5nICpyLCBvYmplY3QgYmFzZSwgb2JqZWN0IGxhdGV4X2dlbnMpIG5vZXhjZXB0Ogor K2NkZWYgb2JqZWN0IHNpbmd1bGFyX3BvbHlub21pYWxfbGF0ZXgocG9seSAqcCwgcmluZyAqciwg b2JqZWN0IGJhc2UsIG9iamVjdCBsYXRleF9nZW5zKToKKyAgICAgciIiIgorICAgICBSZXR1cm4g dGhlIExhVGVYIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBgYHBgYC4KKyAKK0BAIC01MzIsNyAr NTMzLDcgQEAgY2RlZiBvYmplY3Qgc2luZ3VsYXJfcG9seW5vbWlhbF9sYXRleChwb2x5ICpwLCBy aW5nICpyLCBvYmplY3QgYmFzZSwgb2JqZWN0IGxhdGUKKyAgICAgICAgIHJldHVybiAiMCIKKyAg ICAgcmV0dXJuIHBvbHkKKyAKKy1jZGVmIG9iamVjdCBzaW5ndWxhcl9wb2x5bm9taWFsX3N0cl93 aXRoX2NoYW5nZWRfdmFybmFtZXMocG9seSAqcCwgcmluZyAqciwgb2JqZWN0IHZhcm5hbWVzKSBu b2V4Y2VwdDoKKytjZGVmIG9iamVjdCBzaW5ndWxhcl9wb2x5bm9taWFsX3N0cl93aXRoX2NoYW5n ZWRfdmFybmFtZXMocG9seSAqcCwgcmluZyAqciwgb2JqZWN0IHZhcm5hbWVzKToKKyAgICAgY2Rl ZiBjaGFyICoqX25hbWVzCisgICAgIGNkZWYgY2hhciAqKl9vcmlnX25hbWVzCisgICAgIGNkZWYg aW50IGkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL3Npbmd1bGFyL3JpbmcucHhkIGIvc3Jj L3NhZ2UvbGlicy9zaW5ndWxhci9yaW5nLnB4ZAoraW5kZXggNzBmZjc4OGYyMWMuLjU1NDAzNTIx ODg2IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbGlicy9zaW5ndWxhci9yaW5nLnB4ZAorKysrIGIv c3JjL3NhZ2UvbGlicy9zaW5ndWxhci9yaW5nLnB4ZAorQEAgLTU1LDQgKzU1LDQgQEAgY2RlZiBy aW5nICpzaW5ndWxhcl9yaW5nX3JlZmVyZW5jZShyaW5nICpleGlzdGluZ19yaW5nKSBleGNlcHQg TlVMTAorIGNkZWYgdm9pZCBzaW5ndWxhcl9yaW5nX2RlbGV0ZShyaW5nICpkb29tZWQpIG5vZXhj ZXB0CisgCisgIyBVc2VkIGludGVybmFsbHkgZm9yIHJlZmVyZW5jZSBjb3VudGluZworLWNkZWYg d3JhcF9yaW5nKHJpbmcqIFIpIG5vZXhjZXB0CisrY2RlZiB3cmFwX3JpbmcocmluZyogUikKK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL3Npbmd1bGFyL3JpbmcucHl4IGIvc3JjL3NhZ2UvbGli cy9zaW5ndWxhci9yaW5nLnB5eAoraW5kZXggY2FkNGQyN2M0OWYuLjBlZmZmNDU5MDRkIDEwMDY0 NAorLS0tIGEvc3JjL3NhZ2UvbGlicy9zaW5ndWxhci9yaW5nLnB5eAorKysrIGIvc3JjL3NhZ2Uv bGlicy9zaW5ndWxhci9yaW5nLnB5eAorQEAgLTYxOCw3ICs2MTgsNyBAQCBjZGVmIGNsYXNzIHJp bmdfd3JhcHBlcl9QeSgpOgorICAgICAgICAgcmV0dXJuIChzZWxmLl9yaW5nID09IHIuX3Jpbmcp ID09IChvcCA9PSBQeV9FUSkKKyAKKyAKKy1jZGVmIHdyYXBfcmluZyhyaW5nKiBSKSBub2V4Y2Vw dDoKKytjZGVmIHdyYXBfcmluZyhyaW5nKiBSKToKKyAgICAgIiIiCisgICAgIFdyYXAgYSBDIHJp bmcgcG9pbnRlciBpbnRvIGEgUHl0aG9uIG9iamVjdC4KKyAKK0BAIC03NDUsNyArNzQ1LDcgQEAg Y2RlZiB2b2lkIHNpbmd1bGFyX3JpbmdfZGVsZXRlKHJpbmcgKmRvb21lZCkgbm9leGNlcHQ6Cisg IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAjIGhlbHBlcnMgZm9yIGRlYnVnZ2luZworIAorLWNwZGVm IHBvaXNvbl9jdXJyUmluZyhmcmFtZSwgZXZlbnQsIGFyZykgbm9leGNlcHQ6CisrY3BkZWYgcG9p c29uX2N1cnJSaW5nKGZyYW1lLCBldmVudCwgYXJnKToKKyAgICAgIiIiCisgICAgIFBvaXNvbiB0 aGUgYGBjdXJyUmluZ2BgIHBvaW50ZXIuCisgCitAQCAtNzc4LDcgKzc3OCw3IEBAIGNwZGVmIHBv aXNvbl9jdXJyUmluZyhmcmFtZSwgZXZlbnQsIGFyZykgbm9leGNlcHQ6CisgICAgIHJldHVybiBw b2lzb25fY3VyclJpbmcKKyAKKyAKKy1jcGRlZiBwcmludF9jdXJyUmluZygpIG5vZXhjZXB0Ogor K2NwZGVmIHByaW50X2N1cnJSaW5nKCk6CisgICAgICIiIgorICAgICBQcmludCB0aGUgYGBjdXJy UmluZ2BgIHBvaW50ZXIuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbGlicy9zaW5ndWxhci9z aW5ndWxhci5weGQgYi9zcmMvc2FnZS9saWJzL3Npbmd1bGFyL3Npbmd1bGFyLnB4ZAoraW5kZXgg ZDk0M2ExMDE4YTIuLjA1ZjMyYjY4MDc5IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbGlicy9zaW5n dWxhci9zaW5ndWxhci5weGQKKysrKyBiL3NyYy9zYWdlL2xpYnMvc2luZ3VsYXIvc2luZ3VsYXIu cHhkCitAQCAtMTgsMjQgKzE4LDI0IEBAIGZyb20gc2FnZS5yaW5ncy5udW1iZXJfZmllbGQubnVt YmVyX2ZpZWxkX2Jhc2UgY2ltcG9ydCBOdW1iZXJGaWVsZAorICMgQ29udmVyc2lvbiBmcm9tIFNp bmd1bGFyIHRvIFNhZ2UgdHlwZXMKKyAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CisgCistY2RlZiBSYXRpb25hbCBzaTJzYV9RUShudW1iZXIgKCopLCBudW1iZXIgKios IHJpbmcgKCopKSBub2V4Y2VwdAorLWNkZWYgSW50ZWdlciAgc2kyc2FfWloobnVtYmVyICgqKSxy aW5nICgqKSkgbm9leGNlcHQKKytjZGVmIFJhdGlvbmFsIHNpMnNhX1FRKG51bWJlciAoKiksIG51 bWJlciAqKiwgcmluZyAoKikpCisrY2RlZiBJbnRlZ2VyICBzaTJzYV9aWihudW1iZXIgKCopLHJp bmcgKCopKQorIAorLWNkZWYgRkZnaXZFICAgc2kyc2FfR0ZxR2l2YXJvKG51bWJlciAqbiwgcmlu ZyAqX3JpbmcsIENhY2hlX2dpdmFybyBjYWNoZSkgbm9leGNlcHQKKy1jZGVmIEZGZ2YyZUUgIHNp MnNhX0dGcU5UTEdGMkUobnVtYmVyICpuLCByaW5nICpfcmluZywgQ2FjaGVfbnRsX2dmMmUgY2Fj aGUpIG5vZXhjZXB0CistY2RlZiBvYmplY3QgICBzaTJzYV9HRnFfZ2VuZXJpYyhudW1iZXIgKm4s IHJpbmcgKl9yaW5nLCBvYmplY3QgYmFzZSkgbm9leGNlcHQKKy1jZGVmIG9iamVjdCAgIHNpMnNh X1pabW9kKG51bWJlciAqbiwgcmluZyAqX3JpbmcsIG9iamVjdCBiYXNlKSBub2V4Y2VwdAorK2Nk ZWYgRkZnaXZFICAgc2kyc2FfR0ZxR2l2YXJvKG51bWJlciAqbiwgcmluZyAqX3JpbmcsIENhY2hl X2dpdmFybyBjYWNoZSkKKytjZGVmIEZGZ2YyZUUgIHNpMnNhX0dGcU5UTEdGMkUobnVtYmVyICpu LCByaW5nICpfcmluZywgQ2FjaGVfbnRsX2dmMmUgY2FjaGUpCisrY2RlZiBvYmplY3QgICBzaTJz YV9HRnFfZ2VuZXJpYyhudW1iZXIgKm4sIHJpbmcgKl9yaW5nLCBvYmplY3QgYmFzZSkKKytjZGVm IG9iamVjdCAgIHNpMnNhX1pabW9kKG51bWJlciAqbiwgcmluZyAqX3JpbmcsIG9iamVjdCBiYXNl KQorIAorLWNkZWYgb2JqZWN0ICAgc2kyc2FfTkYobnVtYmVyICpuLCByaW5nICpfcmluZywgb2Jq ZWN0IGJhc2UpIG5vZXhjZXB0CisrY2RlZiBvYmplY3QgICBzaTJzYV9ORihudW1iZXIgKm4sIHJp bmcgKl9yaW5nLCBvYmplY3QgYmFzZSkKKyAKKy1jZGVmIG9iamVjdCBzaTJzYV9pbnR2ZWMoaW50 dmVjICp2KSBub2V4Y2VwdAorK2NkZWYgb2JqZWN0IHNpMnNhX2ludHZlYyhpbnR2ZWMgKnYpCisg CisgIyBkaXNwYXRjaGVzIHRvIGFsbCB0aGUgYWJvdmUuCistY2RlZiBvYmplY3Qgc2kyc2EobnVt YmVyICpuLCByaW5nICpfcmluZywgb2JqZWN0IGJhc2UpIG5vZXhjZXB0CisrY2RlZiBvYmplY3Qg c2kyc2EobnVtYmVyICpuLCByaW5nICpfcmluZywgb2JqZWN0IGJhc2UpCisgCistY2RlZiBsaXN0 IHNpbmd1bGFyX21vbm9taWFsX2V4cG9uZW50cyhwb2x5ICpwLCByaW5nICpyKSBub2V4Y2VwdAor LWNwZGVmIGxpc3Qgc2kyc2FfcmVzb2x1dGlvbihSZXNvbHV0aW9uIHJlcykgbm9leGNlcHQKKy1j cGRlZiB0dXBsZSBzaTJzYV9yZXNvbHV0aW9uX2dyYWRlZChSZXNvbHV0aW9uIHJlcywgdHVwbGUg ZGVncmVlcykgbm9leGNlcHQKKytjZGVmIGxpc3Qgc2luZ3VsYXJfbW9ub21pYWxfZXhwb25lbnRz KHBvbHkgKnAsIHJpbmcgKnIpCisrY3BkZWYgbGlzdCBzaTJzYV9yZXNvbHV0aW9uKFJlc29sdXRp b24gcmVzKQorK2NwZGVmIHR1cGxlIHNpMnNhX3Jlc29sdXRpb25fZ3JhZGVkKFJlc29sdXRpb24g cmVzLCB0dXBsZSBkZWdyZWVzKQorIAorICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKyAjIENvbnZlcnNpb24gZnJvbSBTYWdlIHRvIFNpbmd1bGFyIHR5cGVzCitAQCAt NjAsNCArNjAsNCBAQCBjZGVmIG51bWJlciAqc2Eyc2koRWxlbWVudCBlbGVtLCByaW5nICogX3Jp bmcpIG5vZXhjZXB0CisgCisgY2RlZiBpbnQgb3ZlcmZsb3dfY2hlY2sodW5zaWduZWQgbG9uZyBl LCByaW5nICpfcmluZykgZXhjZXB0IC0xCisgCistY2RlZiBpbml0X2xpYnNpbmd1bGFyKCkgbm9l eGNlcHQKKytjZGVmIGluaXRfbGlic2luZ3VsYXIoKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xp YnMvc2luZ3VsYXIvc2luZ3VsYXIucHl4IGIvc3JjL3NhZ2UvbGlicy9zaW5ndWxhci9zaW5ndWxh ci5weXgKK2luZGV4IDA1MWUxZGVhMDFjLi4zNzEyOTNiNWY5OCAxMDA2NDQKKy0tLSBhL3NyYy9z YWdlL2xpYnMvc2luZ3VsYXIvc2luZ3VsYXIucHl4CisrKysgYi9zcmMvc2FnZS9saWJzL3Npbmd1 bGFyL3Npbmd1bGFyLnB5eAorQEAgLTU2LDcgKzU2LDcgQEAgY3R5cGVkZWYgc3RydWN0IGZyYWN0 aW9uICJmcmFjdGlvbk9iamVjdCI6CisgCisgX3NhdmVkX29wdGlvbnMgPSAoaW50KDApLDAsMCkK KyAKKy1jZGVmIFJhdGlvbmFsIHNpMnNhX1FRKG51bWJlciAqbiwgbnVtYmVyICoqbm4sIHJpbmcg Kl9yaW5nKSBub2V4Y2VwdDoKKytjZGVmIFJhdGlvbmFsIHNpMnNhX1FRKG51bWJlciAqbiwgbnVt YmVyICoqbm4sIHJpbmcgKl9yaW5nKToKKyAgICAgIiIiCisgICAgIENyZWF0ZSBhIHNhZ2UgcmF0 aW9uYWwgbnVtYmVyIGZyb20gYSBzaW5ndWxhciBvbmUuCisgCitAQCAtMTI4LDcgKzEyOCw3IEBA IGNkZWYgUmF0aW9uYWwgc2kyc2FfUVEobnVtYmVyICpuLCBudW1iZXIgKipubiwgcmluZyAqX3Jp bmcpIG5vZXhjZXB0OgorICAgICBtcHFfY2xlYXIoX3opCisgICAgIHJldHVybiB6CisgCistY2Rl ZiBJbnRlZ2VyIHNpMnNhX1paKG51bWJlciAqbiwgcmluZyAqX3JpbmcpIG5vZXhjZXB0OgorK2Nk ZWYgSW50ZWdlciBzaTJzYV9aWihudW1iZXIgKm4sIHJpbmcgKl9yaW5nKToKKyAgICAgIiIiCisg ICAgIENyZWF0ZSBhIHNhZ2UgaW50ZWdlciBudW1iZXIgZnJvbSBhIHNpbmd1bGFyIG9uZS4KKyAK K0BAIC0xNjMsNyArMTYzLDcgQEAgY2RlZiBJbnRlZ2VyIHNpMnNhX1paKG51bWJlciAqbiwgcmlu ZyAqX3JpbmcpIG5vZXhjZXB0OgorICAgICB6LnNldF9mcm9tX21weig8bXB6X3B0cj5uKQorICAg ICByZXR1cm4gegorIAorLWNkZWYgRkZnaXZFIHNpMnNhX0dGcUdpdmFybyhudW1iZXIgKm4sIHJp bmcgKl9yaW5nLCBDYWNoZV9naXZhcm8gY2FjaGUpIG5vZXhjZXB0OgorK2NkZWYgRkZnaXZFIHNp MnNhX0dGcUdpdmFybyhudW1iZXIgKm4sIHJpbmcgKl9yaW5nLCBDYWNoZV9naXZhcm8gY2FjaGUp OgorICAgICAiIiIKKyAgICAgQ3JlYXRlIGEgc2FnZSBlbGVtZW50IG9mIGEgc21hbGwgZmluaXRl IGZpZWxkIGZyb20gYSBzaW5ndWxhciBvbmUuCisgCitAQCAtMjE4LDcgKzIxOCw3IEBAIGNkZWYg RkZnaXZFIHNpMnNhX0dGcUdpdmFybyhudW1iZXIgKm4sIHJpbmcgKl9yaW5nLCBDYWNoZV9naXZh cm8gY2FjaGUpIG5vZXhjZXB0CisgICAgICAgICB6ID0gPHBvbHkqPnBOZXh0KDxwb2x5Kj56KQor ICAgICByZXR1cm4gKDxGRmdpdkU+Y2FjaGUuX3plcm9fZWxlbWVudCkuX25ld19jKHJldCkKKyAK Ky1jZGVmIEZGZ2YyZUUgc2kyc2FfR0ZxTlRMR0YyRShudW1iZXIgKm4sIHJpbmcgKl9yaW5nLCBD YWNoZV9udGxfZ2YyZSBjYWNoZSkgbm9leGNlcHQ6CisrY2RlZiBGRmdmMmVFIHNpMnNhX0dGcU5U TEdGMkUobnVtYmVyICpuLCByaW5nICpfcmluZywgQ2FjaGVfbnRsX2dmMmUgY2FjaGUpOgorICAg ICAiIiIKKyAgICAgQ3JlYXRlIGEgc2FnZSBlbGVtZW50IG9mIGEgZmluaXRlIGZpZWxkIG9mIGNo YXJhY3RlcmlzdGljIDIgZnJvbSBhCisgICAgIHNpbmd1bGFyIG9uZS4KK0BAIC0yNzAsNyArMjcw LDcgQEAgY2RlZiBGRmdmMmVFIHNpMnNhX0dGcU5UTEdGMkUobnVtYmVyICpuLCByaW5nICpfcmlu ZywgQ2FjaGVfbnRsX2dmMmUgY2FjaGUpIG5vZXgKKyAgICAgICAgIHogPSA8cG9seSo+cE5leHQo PHBvbHkqPnopCisgICAgIHJldHVybiByZXQKKyAKKy1jZGVmIG9iamVjdCBzaTJzYV9HRnFfZ2Vu ZXJpYyhudW1iZXIgKm4sIHJpbmcgKl9yaW5nLCBvYmplY3QgYmFzZSkgbm9leGNlcHQ6CisrY2Rl ZiBvYmplY3Qgc2kyc2FfR0ZxX2dlbmVyaWMobnVtYmVyICpuLCByaW5nICpfcmluZywgb2JqZWN0 IGJhc2UpOgorICAgICAiIiIKKyAgICAgQ3JlYXRlIGEgc2FnZSBlbGVtZW50IG9mIGEgZ2VuZXJp YyBmaW5pdGUgZmllbGQgZnJvbSBhIHNpbmd1bGFyIG9uZS4KKyAKK0BAIC0zMzIsNyArMzMyLDcg QEAgY2RlZiBvYmplY3Qgc2kyc2FfR0ZxX2dlbmVyaWMobnVtYmVyICpuLCByaW5nICpfcmluZywg b2JqZWN0IGJhc2UpIG5vZXhjZXB0OgorICAgICAgICAgeiA9IDxwb2x5Kj5wTmV4dCg8cG9seSo+ eikKKyAgICAgcmV0dXJuIHJldAorIAorLWNkZWYgb2JqZWN0IHNpMnNhX3RyYW5zZXh0X1FRKG51 bWJlciAqbiwgcmluZyAqX3JpbmcsIG9iamVjdCBiYXNlKSBub2V4Y2VwdDoKKytjZGVmIG9iamVj dCBzaTJzYV90cmFuc2V4dF9RUShudW1iZXIgKm4sIHJpbmcgKl9yaW5nLCBvYmplY3QgYmFzZSk6 CisgICAgICIiIgorICAgICBDcmVhdGUgYSBzYWdlIGVsZW1lbnQgb2YgYSB0cmFuc2NlbmRlbnRh bCBleHRlbnNpb24gb2YgYGBRUWBgIGZyb20gYQorICAgICBzaW5ndWxhciBvbmUuCitAQCAtNDIx LDcgKzQyMSw3IEBAIGNkZWYgb2JqZWN0IHNpMnNhX3RyYW5zZXh0X1FRKG51bWJlciAqbiwgcmlu ZyAqX3JpbmcsIG9iamVjdCBiYXNlKSBub2V4Y2VwdDoKKyAKKyAgICAgcmV0dXJuIHNudW1lci9z ZGVub20KKyAKKy1jZGVmIG9iamVjdCBzaTJzYV90cmFuc2V4dF9GRihudW1iZXIgKm4sIHJpbmcg Kl9yaW5nLCBvYmplY3QgYmFzZSkgbm9leGNlcHQ6CisrY2RlZiBvYmplY3Qgc2kyc2FfdHJhbnNl eHRfRkYobnVtYmVyICpuLCByaW5nICpfcmluZywgb2JqZWN0IGJhc2UpOgorICAgICAiIiIKKyAg ICAgQ3JlYXRlIGEgc2FnZSBlbGVtZW50IG9mIGEgdHJhbnNjZW5kZW50YWwgZXh0ZW5zaW9uIG9m IGEgcHJpbWUgZmllbGQgZnJvbSBhCisgICAgIHNpbmd1bGFyIG9uZS4KK0BAIC01MDQsNyArNTA0 LDcgQEAgY2RlZiBvYmplY3Qgc2kyc2FfdHJhbnNleHRfRkYobnVtYmVyICpuLCByaW5nICpfcmlu Zywgb2JqZWN0IGJhc2UpIG5vZXhjZXB0OgorIAorICAgICByZXR1cm4gc251bWVyL3NkZW5vbQor IAorLWNkZWYgb2JqZWN0IHNpMnNhX05GKG51bWJlciAqbiwgcmluZyAqX3JpbmcsIG9iamVjdCBi YXNlKSBub2V4Y2VwdDoKKytjZGVmIG9iamVjdCBzaTJzYV9ORihudW1iZXIgKm4sIHJpbmcgKl9y aW5nLCBvYmplY3QgYmFzZSk6CisgICAgICIiIgorICAgICBDcmVhdGUgYSBzYWdlIGVsZW1lbnQg b2YgYSBudW1iZXIgZmllbGQgZnJvbSBhIHNpbmd1bGFyIG9uZS4KKyAKK0BAIC01NzAsNyArNTcw LDcgQEAgY2RlZiBvYmplY3Qgc2kyc2FfTkYobnVtYmVyICpuLCByaW5nICpfcmluZywgb2JqZWN0 IGJhc2UpIG5vZXhjZXB0OgorICAgICAgICAgeiA9IDxwb2x5Kj5wTmV4dCg8cG9seSo+eikKKyAg ICAgcmV0dXJuIGJhc2UocmV0KQorIAorLWNkZWYgaW5saW5lIG9iamVjdCBzaTJzYV9aWm1vZChu dW1iZXIgKm4sIHJpbmcgKl9yaW5nLCBvYmplY3QgYmFzZSkgbm9leGNlcHQ6CisrY2RlZiBpbmxp bmUgb2JqZWN0IHNpMnNhX1pabW9kKG51bWJlciAqbiwgcmluZyAqX3JpbmcsIG9iamVjdCBiYXNl KToKKyAgICAgIiIiCisgICAgIENyZWF0ZSBhIHNhZ2UgZWxlbWVudCBvZiBhIHJpbmcgb2YgaW50 ZWdlcnMgbW9kdWxvIG4gZnJvbSBhIHNpbmd1bGFyIG9uZS4KKyAKK0BAIC02MzIsNyArNjMyLDcg QEAgY2RlZiBpbmxpbmUgb2JqZWN0IHNpMnNhX1pabW9kKG51bWJlciAqbiwgcmluZyAqX3Jpbmcs IG9iamVjdCBiYXNlKSBub2V4Y2VwdDoKKyAgICAgcmV0dXJuIGJhc2UoX3JpbmcuY2YuY2ZJbnQo bixfcmluZy5jZikpCisgCisgCistY2RlZiBsaXN0IHNpbmd1bGFyX21vbm9taWFsX2V4cG9uZW50 cyhwb2x5ICpwLCByaW5nICpyKSBub2V4Y2VwdDoKKytjZGVmIGxpc3Qgc2luZ3VsYXJfbW9ub21p YWxfZXhwb25lbnRzKHBvbHkgKnAsIHJpbmcgKnIpOgorICAgICByIiIiCisgICAgIFJldHVybiB0 aGUgbGlzdCBvZiBleHBvbmVudHMgb2YgbW9ub21pYWwgYGBwYGAuCisgICAgICIiIgorQEAgLTY0 Myw3ICs2NDMsNyBAQCBjZGVmIGxpc3Qgc2luZ3VsYXJfbW9ub21pYWxfZXhwb25lbnRzKHBvbHkg KnAsIHJpbmcgKnIpIG5vZXhjZXB0OgorICAgICAgICAgbWxbdi0xXSA9IHBfR2V0RXhwKHAsIHYs IHIpCisgICAgIHJldHVybiBtbAorIAorLWNwZGVmIGxpc3Qgc2kyc2FfcmVzb2x1dGlvbihSZXNv bHV0aW9uIHJlcykgbm9leGNlcHQ6CisrY3BkZWYgbGlzdCBzaTJzYV9yZXNvbHV0aW9uKFJlc29s dXRpb24gcmVzKToKKyAgICAgciIiIgorICAgICBQdWxsIHRoZSBkYXRhIGZyb20gU2luZ3VsYXIg cmVzb2x1dGlvbiBgYHJlc2BgIHRvIGNvbnN0cnVjdCBhIFNhZ2UKKyAgICAgcmVzb2x1dGlvbi4K K0BAIC03NjAsNyArNzYwLDcgQEAgY3BkZWYgbGlzdCBzaTJzYV9yZXNvbHV0aW9uKFJlc29sdXRp b24gcmVzKSBub2V4Y2VwdDoKKyAKKyAgICAgcmV0dXJuIHJlc19tYXRzCisgCistY3BkZWYgdHVw bGUgc2kyc2FfcmVzb2x1dGlvbl9ncmFkZWQoUmVzb2x1dGlvbiByZXMsIHR1cGxlIGRlZ3JlZXMp IG5vZXhjZXB0OgorK2NwZGVmIHR1cGxlIHNpMnNhX3Jlc29sdXRpb25fZ3JhZGVkKFJlc29sdXRp b24gcmVzLCB0dXBsZSBkZWdyZWVzKToKKyAgICAgIiIiCisgICAgIFB1bGwgdGhlIGRhdGEgZnJv bSBTaW5ndWxhciByZXNvbHV0aW9uIGBgcmVzYGAgdG8gY29uc3RydWN0IGEgU2FnZQorICAgICBy ZXNvbHV0aW9uLgorQEAgLTE1ODIsNyArMTU4Miw3IEBAIGNkZWYgaW5saW5lIG51bWJlciAqc2Ey c2lfWlptb2QoSW50ZWdlck1vZF9hYnN0cmFjdCBkLCByaW5nICpfcmluZykgbm9leGNlcHQ6Cisg ICAgIGVsc2U6CisgICAgICAgICByYWlzZSBWYWx1ZUVycm9yCisgCistY2RlZiBvYmplY3Qgc2ky c2EobnVtYmVyICpuLCByaW5nICpfcmluZywgb2JqZWN0IGJhc2UpIG5vZXhjZXB0OgorK2NkZWYg b2JqZWN0IHNpMnNhKG51bWJlciAqbiwgcmluZyAqX3JpbmcsIG9iamVjdCBiYXNlKToKKyAgICAg ciIiIgorICAgICBDcmVhdGUgYSBzYWdlIG51bWJlciBmcm9tIGEgc2luZ3VsYXIgb25lCisgCitA QCAtMTY4MSw3ICsxNjgxLDcgQEAgY2RlZiBudW1iZXIgKnNhMnNpKEVsZW1lbnQgZWxlbSwgcmlu ZyAqIF9yaW5nKSBub2V4Y2VwdDoKKyAKKyAgICAgcmFpc2UgVmFsdWVFcnJvcigiY2Fubm90IGNv bnZlcnQgdG8gU0lOR1VMQVIgbnVtYmVyIikKKyAKKy1jZGVmIG9iamVjdCBzaTJzYV9pbnR2ZWMo aW50dmVjICp2KSBub2V4Y2VwdDoKKytjZGVmIG9iamVjdCBzaTJzYV9pbnR2ZWMoaW50dmVjICp2 KToKKyAgICAgciIiIgorICAgICBjcmVhdGUgYSBzYWdlIHR1cGxlIGZyb20gYSBzaW5ndWxhciB2 ZWN0b3Igb2YgaW50ZWdlcnMKKyAKK0BAIC0xNzQ0LDcgKzE3NDQsNyBAQCBjZGVmIGludCBvdmVy Zmxvd19jaGVjayh1bnNpZ25lZCBsb25nIGUsIHJpbmcgKl9yaW5nKSBleGNlcHQgLTE6CisgICAg IGlmIHVubGlrZWx5KGUgPiBfcmluZy5iaXRtYXNrKToKKyAgICAgICAgIHJhaXNlIE92ZXJmbG93 RXJyb3IoImV4cG9uZW50IG92ZXJmbG93ICglZCkiJShlKSkKKyAKKy1jZGVmIGluaXRfbGlic2lu Z3VsYXIoKSBub2V4Y2VwdDoKKytjZGVmIGluaXRfbGlic2luZ3VsYXIoKToKKyAgICAgIiIiCisg ICAgIFRoaXMgaW5pdGlhbGl6ZXMgdGhlIFNJTkdVTEFSIGxpYnJhcnkuIFRoaXMgaXMgYSBoYWNr IHRvIHNvbWUKKyAgICAgZXh0ZW50LgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvc3ltbWV0 cmljYS9zYi5weGkgYi9zcmMvc2FnZS9saWJzL3N5bW1ldHJpY2Evc2IucHhpCitpbmRleCAzMWZh ZjdlM2Q5Ni4uYjg4NGQzM2RhZmQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9saWJzL3N5bW1ldHJp Y2Evc2IucHhpCisrKysgYi9zcmMvc2FnZS9saWJzL3N5bW1ldHJpY2Evc2IucHhpCitAQCAtMTIs NyArMTIsNyBAQCBjZGVmIGV4dGVybiBmcm9tICdzeW1tZXRyaWNhL2RlZi5oJzoKKyAgICAgSU5U IG11bHRfc2NodWJlcnRfcG9seW5vbShPUCBhLE9QIGIsT1AgYykKKyAKKyAKKy1jZGVmIG9iamVj dCBfY2hlY2tfc2NodWJlcnQob2JqZWN0IGEsIE9QIGNhKSBub2V4Y2VwdDoKKytjZGVmIG9iamVj dCBfY2hlY2tfc2NodWJlcnQob2JqZWN0IGEsIE9QIGNhKToKKyAgICAgaWYgYSBpbiBQZXJtdXRh dGlvbnMoKToKKyAgICAgICAgIGlmIGlzaW5zdGFuY2UoYSwgYnVpbHRpbmxpc3QpOgorICAgICAg ICAgICAgIGEgPSBQZXJtdXRhdGlvbihhKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvc3lt bWV0cmljYS9zeW1tZXRyaWNhLnB4aSBiL3NyYy9zYWdlL2xpYnMvc3ltbWV0cmljYS9zeW1tZXRy aWNhLnB4aQoraW5kZXggNjBjM2VjMjMwNzAuLjJiZGI1MWYxYThlIDEwMDY0NAorLS0tIGEvc3Jj L3NhZ2UvbGlicy9zeW1tZXRyaWNhL3N5bW1ldHJpY2EucHhpCisrKysgYi9zcmMvc2FnZS9saWJz L3N5bW1ldHJpY2Evc3ltbWV0cmljYS5weGkKK0BAIC00NjcsNyArNDY3LDcgQEAgY2RlZiB2b2lk IGxhdGVfaW1wb3J0KCkgbm9leGNlcHQ6CisgICAgIHNhZ2VfbWF4aW50ID0gSW50ZWdlcihtYXhp bnQpCisgCisgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCistY2Rl ZiBvYmplY3QgX3B5KE9QIGEpIG5vZXhjZXB0OgorK2NkZWYgb2JqZWN0IF9weShPUCBhKToKKyAg ICAgY2RlZiBPQkpFQ1RLSU5EIG9iamsKKyAgICAgb2JqayA9IHNfb19rKGEpCisgICAgIGlmIG9i amsgPT0gSU5URUdFUjoKK0BAIC01NjksNyArNTY5LDcgQEAgY2RlZiBpbnQgX29wX2ludChvYmpl Y3QgeCwgT1AgYSkgZXhjZXB0IC0xOgorICAgICBNX0lfSSh4LCBhKQorICAgICByZXR1cm4gMAor IAorLWNkZWYgb2JqZWN0IF9weV9pbnQoT1AgYSkgbm9leGNlcHQ6CisrY2RlZiBvYmplY3QgX3B5 X2ludChPUCBhKToKKyAgICAgbGF0ZV9pbXBvcnQoKQorICAgICByZXR1cm4gSW50ZWdlcihTX0lf SShhKSkKKyAKK0BAIC01OTcsNyArNTk3LDcgQEAgY2RlZiBpbnQgX29wX2xvbmdpbnQob2JqZWN0 IHgsIE9QIGEpIGV4Y2VwdCAtMToKKyAgICAgZnJlZWFsbChvcF9tYXhpbnRfbG9uZykKKyAgICAg cmV0dXJuIDAKKyAKKy1jZGVmIG9iamVjdCBfcHlfbG9uZ2ludChPUCBhKSBub2V4Y2VwdDoKKytj ZGVmIG9iamVjdCBfcHlfbG9uZ2ludChPUCBhKToKKyAgICAgbGF0ZV9pbXBvcnQoKQorICAgICBj ZGVmIGxvbmdpbnQgKnggPSBTX09fUyhhKS5vYl9sb25naW50CisgICAgIGNkZWYgbG9jICpsID0g eC5mbG9jCitAQCAtNjIwLDcgKzYyMCw3IEBAIGNkZWYgb2JqZWN0IF9weV9sb25naW50KE9QIGEp IG5vZXhjZXB0OgorICMjIyMjIyMjIyMjCisgI0ZyYWN0aW9ucyMKKyAjIyMjIyMjIyMjIworLWNk ZWYgb2JqZWN0IF9weV9mcmFjdGlvbihPUCBhKSBub2V4Y2VwdDoKKytjZGVmIG9iamVjdCBfcHlf ZnJhY3Rpb24oT1AgYSk6CisgICAgIHJldHVybiBfcHkoU19CX08oYSkpL19weShTX0JfVShhKSkK KyAKKyBjZGVmIGludCBfb3BfZnJhY3Rpb24ob2JqZWN0IGYsIE9QIGEpIGV4Y2VwdCAtMToKK0BA IC02MzIsNyArNjMyLDcgQEAgY2RlZiBpbnQgX29wX2ZyYWN0aW9uKG9iamVjdCBmLCBPUCBhKSBl eGNlcHQgLTE6CisgIyMjIyMjIyMjCisgI1ZlY3RvcnMjCisgIyMjIyMjIyMjCistY2RlZiBvYmpl Y3QgX3B5X3ZlY3RvcihPUCBhKSBub2V4Y2VwdDoKKytjZGVmIG9iamVjdCBfcHlfdmVjdG9yKE9Q IGEpOgorICAgICBjZGVmIElOVCBpCisgICAgIHJlcyA9IFtdCisgICAgIGZvciBpIGZyb20gMCA8 PSBpIDwgc192X2xpKGEpOgorQEAgLTY1MCw3ICs2NTAsNyBAQCBjZGVmIHZvaWQqIF9vcF9pbF92 ZWN0b3Iob2JqZWN0IGwsIE9QIGEpIG5vZXhjZXB0OgorICMjIyMjIyMjIworICNOdW1iZXJzIwor ICMjIyMjIyMjIworLWNkZWYgb2JqZWN0IF9weV9zcV9yYWRpY2FsKE9QIGEpIG5vZXhjZXB0Ogor K2NkZWYgb2JqZWN0IF9weV9zcV9yYWRpY2FsKE9QIGEpOgorICAgICBsYXRlX2ltcG9ydCgpCisg CisgICAgIGNkZWYgT1AgcHRyCitAQCAtNjg5LDcgKzY4OSw3IEBAIGNkZWYgdm9pZCogX29wX3Bh cnRpdGlvbihvYmplY3QgcCwgT1AgYSkgbm9leGNlcHQ6CisgICAgICAgICBfb3BfaW50ZWdlcihw W2ldLCBTX1BBX0koYSxqKSkKKyAgICAgICAgIGogPSBqICsgMQorIAorLWNkZWYgb2JqZWN0IF9w eV9wYXJ0aXRpb24oT1AgYSkgbm9leGNlcHQ6CisrY2RlZiBvYmplY3QgX3B5X3BhcnRpdGlvbihP UCBhKToKKyAgICAgY2RlZiBJTlQgbiwgaQorICAgICBsYXRlX2ltcG9ydCgpCisgICAgIHJlcyA9 IFtdCitAQCAtNzA5LDcgKzcwOSw3IEBAIGNkZWYgdm9pZCogX29wX3NrZXdfcGFydGl0aW9uKG9i amVjdCBwLCBPUCBhKSBub2V4Y2VwdDoKKyAgICAgX29wX3BhcnRpdGlvbihwWzFdLCBrbGVpbikK KyAgICAgYl9na19zcGEoZ3Jvc3MsIGtsZWluLCBhKQorIAorLWNkZWYgb2JqZWN0IF9weV9za2V3 X3BhcnRpdGlvbihPUCBhKSBub2V4Y2VwdDoKKytjZGVmIG9iamVjdCBfcHlfc2tld19wYXJ0aXRp b24oT1AgYSk6CisgICAgIGxhdGVfaW1wb3J0KCkKKyAgICAgcmV0dXJuIFNrZXdQYXJ0aXRpb24o IFsgX3B5X3BhcnRpdGlvbihzX3NwYV9nKGEpKSwgX3B5X3BhcnRpdGlvbihzX3NwYV9rKGEpKSBd ICkKKyAKK0BAIC03MjcsNyArNzI3LDcgQEAgY2RlZiB2b2lkKiBfb3BfcGVybXV0YXRpb24ob2Jq ZWN0IHAsIE9QIGEpIG5vZXhjZXB0OgorICAgICBmb3IgaSBmcm9tIDAgPD0gaSA8IG46CisgICAg ICAgICBfb3BfaW50ZWdlcihwW2ldLCBzX3BfaShhLGkpKQorIAorLWNkZWYgb2JqZWN0IF9weV9w ZXJtdXRhdGlvbihPUCBhKSBub2V4Y2VwdDoKKytjZGVmIG9iamVjdCBfcHlfcGVybXV0YXRpb24o T1AgYSk6CisgICAgIGxhdGVfaW1wb3J0KCkKKyAgICAgY2RlZiBJTlQgbiwgaQorICAgICByZXMg PSBbXQorQEAgLTc0Myw3ICs3NDMsNyBAQCBjZGVmIG9iamVjdCBfcHlfcGVybXV0YXRpb24oT1Ag YSkgbm9leGNlcHQ6CisgIyMjIyMjIworICNMaXN0cyMKKyAjIyMjIyMjCistY2RlZiBvYmplY3Qg X3B5X2xpc3QoT1AgYSkgbm9leGNlcHQ6CisrY2RlZiBvYmplY3QgX3B5X2xpc3QoT1AgYSk6Cisg ICAgIGNkZWYgT1AgeAorICAgICB4ID0gYQorICAgICByZXMgPSBbXQorQEAgLTc2MSw3ICs3NjEs NyBAQCBjZGVmIG9iamVjdCBfcHlfbGlzdChPUCBhKSBub2V4Y2VwdDoKKyAjIyMjIyMjIyMjIyMj CisgI1BvbHlub21pYWxzIworICMjIyMjIyMjIyMjIyMKKy1jZGVmIG9iamVjdCBfcHlfcG9seW5v bShPUCBhKSBub2V4Y2VwdDoKKytjZGVmIG9iamVjdCBfcHlfcG9seW5vbShPUCBhKToKKyAgICAg bGF0ZV9pbXBvcnQoKQorICAgICBjZGVmIGludCBtYXhuZWVkZWQgPSAwLCBpID0gMAorICAgICBj ZGVmIE9QIHBvaW50ZXIgPSBhCitAQCAtNzkyLDcgKzc5Miw3IEBAIGNkZWYgb2JqZWN0IF9weV9w b2x5bm9tKE9QIGEpIG5vZXhjZXB0OgorICAgICByZXR1cm4gUChkKQorIAorIAorLWNkZWYgb2Jq ZWN0IF9weV9wb2x5bm9tX2FscGhhYmV0KE9QIGEsIG9iamVjdCBhbHBoYWJldCwgb2JqZWN0IGxl bmd0aCkgbm9leGNlcHQ6CisrY2RlZiBvYmplY3QgX3B5X3BvbHlub21fYWxwaGFiZXQoT1AgYSwg b2JqZWN0IGFscGhhYmV0LCBvYmplY3QgbGVuZ3RoKToKKyAgICAgIiIiCisgICAgIENvbnZlcnRz IGEgc3ltbWV0cmljYSBtdWx0aXZhcmlhdGUgcG9seW5vbWlhbCBhIHRvIGEgU2FnZSBtdWx0aXZh cmlhdGUKKyAgICAgcG9seW5vbWlhbHMuICBBbHBoYWJldCBzcGVjaWZpZXMgdGhlIG5hbWVzIG9m IHRoZSB2YXJpYWJsZXMgd2hpY2ggYXJlCitAQCAtODI4LDcgKzgyOCw3IEBAIGNkZWYgb2JqZWN0 IF9weV9wb2x5bm9tX2FscGhhYmV0KE9QIGEsIG9iamVjdCBhbHBoYWJldCwgb2JqZWN0IGxlbmd0 aCkgbm9leGNlcHQ6CisgICAgICAgICBwb2ludGVyID0gc19wb19uKHBvaW50ZXIpCisgICAgIHJl dHVybiByZXMKKyAKKy1jZGVmIG9iamVjdCBfb3BfcG9seW5vbShvYmplY3QgZCwgT1AgcmVzKSBu b2V4Y2VwdDoKKytjZGVmIG9iamVjdCBfb3BfcG9seW5vbShvYmplY3QgZCwgT1AgcmVzKToKKyAg ICAgbGF0ZV9pbXBvcnQoKQorIAorICAgICBwb2x5X3JpbmcgPSBkLnBhcmVudCgpCitAQCAtODY1 LDcgKzg2NSw3IEBAIGNkZWYgb2JqZWN0IF9vcF9wb2x5bm9tKG9iamVjdCBkLCBPUCByZXMpIG5v ZXhjZXB0OgorICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworICNTY2h1 ciBzeW1tZXRyaWMgZnVuY3Rpb25zIGFuZCBmcmllbmRzIworICMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIworLWNkZWYgb2JqZWN0IF9weV9zY2h1cihPUCBhKSBub2V4Y2Vw dDoKKytjZGVmIG9iamVjdCBfcHlfc2NodXIoT1AgYSk6CisgICAgIGxhdGVfaW1wb3J0KCkKKyAg ICAgel9lbHQgPSBfcHlfc2NodXJfZ2VuZXJhbChhKQorICAgICBpZiBsZW4oel9lbHQpID09IDA6 CitAQCAtODgyLDcgKzg4Miw3IEBAIGNkZWYgb2JqZWN0IF9weV9zY2h1cihPUCBhKSBub2V4Y2Vw dDoKKyBjZGVmIHZvaWQqIF9vcF9zY2h1cihvYmplY3QgZCwgT1AgcmVzKSBub2V4Y2VwdDoKKyAg ICAgX29wX3NjaHVyX2dlbmVyYWwoZCwgcmVzKQorIAorLWNkZWYgb2JqZWN0IF9weV9tb25vbWlh bChPUCBhKSBub2V4Y2VwdDogI01vbm9taWFsIHN5bW1ldHJpYyBmdW5jdGlvbnMKKytjZGVmIG9i amVjdCBfcHlfbW9ub21pYWwoT1AgYSk6ICNNb25vbWlhbCBzeW1tZXRyaWMgZnVuY3Rpb25zCisg ICAgIGxhdGVfaW1wb3J0KCkKKyAgICAgel9lbHQgPSBfcHlfc2NodXJfZ2VuZXJhbChhKQorICAg ICBpZiBsZW4oel9lbHQpID09IDA6CitAQCAtOTAyLDcgKzkwMiw3IEBAIGNkZWYgdm9pZCogX29w X21vbm9taWFsKG9iamVjdCBkLCBPUCByZXMpIG5vZXhjZXB0OiAjTW9ub21pYWwgc3ltbWV0cmlj IGZ1bmN0aW9uCisgICAgICAgICBjX29fayhwb2ludGVyLCBNT05PTUlBTCkKKyAgICAgICAgIHBv aW50ZXIgPSBzX3Nfbihwb2ludGVyKQorIAorLWNkZWYgb2JqZWN0IF9weV9wb3dzeW0oT1AgYSkg bm9leGNlcHQ6ICAjUG93ZXItc3VtIHN5bW1ldHJpYyBmdW5jdGlvbnMKKytjZGVmIG9iamVjdCBf cHlfcG93c3ltKE9QIGEpOiAgI1Bvd2VyLXN1bSBzeW1tZXRyaWMgZnVuY3Rpb25zCisgICAgIGxh dGVfaW1wb3J0KCkKKyAgICAgel9lbHQgPSBfcHlfc2NodXJfZ2VuZXJhbChhKQorICAgICBpZiBs ZW4oel9lbHQpID09IDA6CitAQCAtOTIzLDcgKzkyMyw3IEBAIGNkZWYgdm9pZCogX29wX3Bvd3N5 bShvYmplY3QgZCwgT1AgcmVzKSBub2V4Y2VwdDogI1Bvd2VyLXN1bSBzeW1tZXRyaWMgZnVuY3Rp b25zCisgICAgICAgICBwb2ludGVyID0gc19zX24ocG9pbnRlcikKKyAKKyAKKy1jZGVmIG9iamVj dCBfcHlfZWxtc3ltKE9QIGEpIG5vZXhjZXB0OiAjRWxlbWVudGFyeSBzeW1tZXRyaWMgZnVuY3Rp b25zCisrY2RlZiBvYmplY3QgX3B5X2VsbXN5bShPUCBhKTogI0VsZW1lbnRhcnkgc3ltbWV0cmlj IGZ1bmN0aW9ucworICAgICBsYXRlX2ltcG9ydCgpCisgICAgIHpfZWx0ID0gX3B5X3NjaHVyX2dl bmVyYWwoYSkKKyAgICAgaWYgbGVuKHpfZWx0KSA9PSAwOgorQEAgLTk0NCw3ICs5NDQsNyBAQCBj ZGVmIHZvaWQqIF9vcF9lbG1zeW0ob2JqZWN0IGQsIE9QIHJlcykgbm9leGNlcHQ6ICNFbGVtZW50 YXJ5IHN5bW1ldHJpYyBmdW5jdGlvbgorICAgICAgICAgcG9pbnRlciA9IHNfc19uKHBvaW50ZXIp CisgCisgCistY2RlZiBvYmplY3QgX3B5X2hvbXN5bShPUCBhKSBub2V4Y2VwdDogI0hvbW9nZW5v dXMgc3ltbWV0cmljIGZ1bmN0aW9ucworK2NkZWYgb2JqZWN0IF9weV9ob21zeW0oT1AgYSk6ICNI b21vZ2Vub3VzIHN5bW1ldHJpYyBmdW5jdGlvbnMKKyAgICAgbGF0ZV9pbXBvcnQoKQorICAgICB6 X2VsdCA9IF9weV9zY2h1cl9nZW5lcmFsKGEpCisgICAgIGlmIGxlbih6X2VsdCkgPT0gMDoKK0BA IC05NjUsNyArOTY1LDcgQEAgY2RlZiB2b2lkKiBfb3BfaG9tc3ltKG9iamVjdCBkLCBPUCByZXMp IG5vZXhjZXB0OiAjSG9tb2dlbm91cyBzeW1tZXRyaWMgZnVuY3Rpb24KKyAgICAgICAgIHBvaW50 ZXIgPSBzX3Nfbihwb2ludGVyKQorIAorIAorLWNkZWYgb2JqZWN0IF9weV9zY2h1cl9nZW5lcmFs KE9QIGEpIG5vZXhjZXB0OgorK2NkZWYgb2JqZWN0IF9weV9zY2h1cl9nZW5lcmFsKE9QIGEpOgor ICAgICBjZGVmIE9QIHBvaW50ZXIgPSBhCisgICAgIGQgPSB7fQorICAgICBpZiBhID09IE5VTEw6 CitAQCAtMTA2OSw3ICsxMDY5LDcgQEAgY2RlZiB2b2lkKiBfb3Bfc2NodWJlcnRfZGljdChvYmpl Y3QgZCwgT1AgcmVzKSBub2V4Y2VwdDoKKyAKKyAgICAgICAgIGluc2VydChuZXh0LCByZXMsIE5V TEwsIE5VTEwpCisgCistY2RlZiBvYmplY3QgX3B5X3NjaHViZXJ0KE9QIGEpIG5vZXhjZXB0Ogor K2NkZWYgb2JqZWN0IF9weV9zY2h1YmVydChPUCBhKToKKyAgICAgbGF0ZV9pbXBvcnQoKQorICAg ICBjZGVmIE9QIHBvaW50ZXIgPSBhCisgICAgIGNkZWYgZGljdCB6X2VsdCA9IHt9CitAQCAtMTA5 Niw3ICsxMDk2LDcgQEAgY2RlZiBvYmplY3QgX3B5X3NjaHViZXJ0KE9QIGEpIG5vZXhjZXB0Ogor ICMjIyMjIyMjIyMKKyAjTWF0cmljZXMjCisgIyMjIyMjIyMjIworLWNkZWYgb2JqZWN0IF9weV9t YXRyaXgoT1AgYSkgbm9leGNlcHQ6CisrY2RlZiBvYmplY3QgX3B5X21hdHJpeChPUCBhKToKKyAK KyAgICAgbGF0ZV9pbXBvcnQoKQorIAorQEAgLTExMzYsNyArMTEzNiw3IEBAIGNkZWYgdm9pZCog X29wX21hdHJpeChvYmplY3QgYSwgT1AgcmVzKSBub2V4Y2VwdDoKKyAjIyMjIyMjIyMjCisgI1Rh YmxlYXV4IworICMjIyMjIyMjIyMKKy1jZGVmIG9iamVjdCBfcHlfdGFibGVhdShPUCB0KSBub2V4 Y2VwdDoKKytjZGVmIG9iamVjdCBfcHlfdGFibGVhdShPUCB0KToKKyAKKyAgICAgbGF0ZV9pbXBv cnQoKQorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJpeC9hY3Rpb24ucHl4IGIvc3JjL3Nh Z2UvbWF0cml4L2FjdGlvbi5weXgKK2luZGV4IDRiYjFmNGJiZTJhLi5lMTZiZmVjODU2YSAxMDA2 NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJpeC9hY3Rpb24ucHl4CisrKysgYi9zcmMvc2FnZS9tYXRy aXgvYWN0aW9uLnB5eAorQEAgLTIwMiw3ICsyMDIsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeE1hdHJp eEFjdGlvbihNYXRyaXhNdWxBY3Rpb24pOgorICAgICAgICAgcmV0dXJuIE1hdHJpeFNwYWNlKGJh c2UsIHNlbGYuRy5ucm93cygpLCBzZWxmLnVuZGVybHlpbmdfc2V0KCkubmNvbHMoKSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzcGFyc2UgPSBzZWxmLkcuaXNfc3BhcnNlKCkgYW5kIHNl bGYudW5kZXJseWluZ19zZXQoKS5pc19zcGFyc2UoKSkKKyAKKy0gICAgY3BkZWYgX2FjdF8oc2Vs ZiwgZywgcykgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hY3RfKHNlbGYsIGcsIHMpOgorICAgICAg ICAgIiIiCisgICAgICAgICBFWEFNUExFUzoKKyAKK0BAIC0zMTIsNyArMzEyLDcgQEAgY2RlZiBj bGFzcyBNYXRyaXhWZWN0b3JBY3Rpb24oTWF0cml4TXVsQWN0aW9uKToKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu dW5kZXJseWluZ19zZXQoKS5kZWdyZWUoKSkpCisgICAgICAgICByZXR1cm4gRnJlZU1vZHVsZShi YXNlLCBzZWxmLkcubnJvd3MoKSwgc3BhcnNlID0gc2VsZi5HLmlzX3NwYXJzZSgpKQorIAorLSAg ICBjcGRlZiBfYWN0XyhzZWxmLCBnLCBzKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FjdF8oc2Vs ZiwgZywgcyk6CisgICAgICAgICBjZGVmIE1hdHJpeCBBID0gPE1hdHJpeD5nCisgICAgICAgICBj ZGVmIFZlY3RvciB2ID0gPFZlY3Rvcj5zCisgICAgICAgICBpZiBBLl9wYXJlbnQuX2Jhc2UgaXMg bm90IHNlbGYuX2NvZG9tYWluLl9iYXNlOgorQEAgLTM2Myw3ICszNjMsNyBAQCBjZGVmIGNsYXNz IFZlY3Rvck1hdHJpeEFjdGlvbihNYXRyaXhNdWxBY3Rpb24pOgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi51bmRl cmx5aW5nX3NldCgpLmRlZ3JlZSgpKSkKKyAgICAgICAgIHJldHVybiBGcmVlTW9kdWxlKGJhc2Us IHNlbGYuRy5uY29scygpLCBzcGFyc2UgPSBzZWxmLkcuaXNfc3BhcnNlKCkpCisgCistICAgIGNw ZGVmIF9hY3RfKHNlbGYsIGcsIHMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWN0XyhzZWxmLCBn LCBzKToKKyAgICAgICAgIGNkZWYgTWF0cml4IEEgPSA8TWF0cml4PmcKKyAgICAgICAgIGNkZWYg VmVjdG9yIHYgPSA8VmVjdG9yPnMKKyAgICAgICAgIGlmIEEuX3BhcmVudC5fYmFzZSBpcyBub3Qg c2VsZi5fY29kb21haW4uX2Jhc2U6CitAQCAtNDIyLDcgKzQyMiw3IEBAIGNkZWYgY2xhc3MgTWF0 cml4UG9seW1hcEFjdGlvbihNYXRyaXhNdWxBY3Rpb24pOgorICAgICAgICAgICAgIHJldHVybiBF bmQoc2VsZi51bmRlcmx5aW5nX3NldCgpLmRvbWFpbigpLmNoYW5nZV9yaW5nKGJhc2UpKQorICAg ICAgICAgcmV0dXJuIEhvbShzZWxmLnVuZGVybHlpbmdfc2V0KCkuZG9tYWluKCkuY2hhbmdlX3Jp bmcoYmFzZSksIHNlbGYudW5kZXJseWluZ19zZXQoKS5jb2RvbWFpbigpLmNoYW5nZV9yaW5nKGJh c2UpKQorIAorLSAgICBjcGRlZiBfYWN0XyhzZWxmLCBtYXQsIGYpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBfYWN0XyhzZWxmLCBtYXQsIGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBDYWxsIHRo ZSBhY3Rpb24KKyAKK0BAIC00OTUsNyArNDk1LDcgQEAgY2RlZiBjbGFzcyBQb2x5bWFwTWF0cml4 QWN0aW9uKE1hdHJpeE11bEFjdGlvbik6CisgICAgICAgICAgICAgcmV0dXJuIEVuZChzZWxmLnVu ZGVybHlpbmdfc2V0KCkuZG9tYWluKCkuY2hhbmdlX3JpbmcoYmFzZSkpCisgICAgICAgICByZXR1 cm4gSG9tKHNlbGYudW5kZXJseWluZ19zZXQoKS5kb21haW4oKS5jaGFuZ2VfcmluZyhiYXNlKSwg c2VsZi51bmRlcmx5aW5nX3NldCgpLmNvZG9tYWluKCkuY2hhbmdlX3JpbmcoYmFzZSkpCisgCist ICAgIGNwZGVmIF9hY3RfKHNlbGYsIG1hdCwgZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hY3Rf KHNlbGYsIG1hdCwgZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIENhbGwgdGhlIGFjdGlvbi4K KyAKK0BAIC01NjMsNyArNTYzLDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhTY2hlbWVQb2ludEFjdGlv bihNYXRyaXhNdWxBY3Rpb24pOgorICAgICAgICAgYW1iID0gc2VsZi51bmRlcmx5aW5nX3NldCgp LmNvZG9tYWluKCkKKyAgICAgICAgIHJldHVybiBhbWIuY2hhbmdlX3JpbmcoYmFzZSkoYmFzZSkK KyAKKy0gICAgY3BkZWYgX2FjdF8oc2VsZiwgbWF0LCBQKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X2FjdF8oc2VsZiwgbWF0LCBQKToKKyAgICAgICAgICIiIgorICAgICAgICAgQWN0aW9uIG9mIG1h dHJpY2VzIG9uIHNjaGVtZSBwb2ludHMuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cml4 L2FyZ3MucHhkIGIvc3JjL3NhZ2UvbWF0cml4L2FyZ3MucHhkCitpbmRleCBmYzI2YmMzNTkxNC4u OWFiMDA0ZTE4ODcgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tYXRyaXgvYXJncy5weGQKKysrKyBi L3NyYy9zYWdlL21hdHJpeC9hcmdzLnB4ZAorQEAgLTMzLDcgKzMzLDcgQEAgY2RlZiBjbGFzcyBT cGFyc2VFbnRyeToKKyAgICAgY2RlZiBwdWJsaWMgb2JqZWN0IGVudHJ5CisgCisgCistY2RlZiBp bmxpbmUgU3BhcnNlRW50cnkgbWFrZV9TcGFyc2VFbnRyeShsb25nIGksIGxvbmcgaiwgZW50cnkp IG5vZXhjZXB0OgorK2NkZWYgaW5saW5lIFNwYXJzZUVudHJ5IG1ha2VfU3BhcnNlRW50cnkobG9u ZyBpLCBsb25nIGosIGVudHJ5KToKKyAgICAgZSA9IDxTcGFyc2VFbnRyeT5TcGFyc2VFbnRyeS5f X25ld19fKFNwYXJzZUVudHJ5KQorICAgICBlLmkgPSBpCisgICAgIGUuaiA9IGoKK0BAIC01Myw5 ICs1Myw5IEBAIGNkZWYgY2xhc3MgTWF0cml4QXJnczoKKyAgICAgY2RlZiBwdWJsaWMgZGljdCBr d2RzICAgICAjICoqa3dkcyBmb3IgTWF0cml4U3BhY2UoKQorICAgICBjZGVmIGJpbnQgaXNfZmlu YWxpemVkCisgCistICAgIGNwZGVmIE1hdHJpeCBtYXRyaXgoc2VsZiwgYmludCBjb252ZXJ0PT8p IG5vZXhjZXB0CistICAgIGNwZGVmIGxpc3QgbGlzdChzZWxmLCBiaW50IGNvbnZlcnQ9Pykgbm9l eGNlcHQKKy0gICAgY3BkZWYgZGljdCBkaWN0KHNlbGYsIGJpbnQgY29udmVydD0/KSBub2V4Y2Vw dAorKyAgICBjcGRlZiBNYXRyaXggbWF0cml4KHNlbGYsIGJpbnQgY29udmVydD0/KQorKyAgICBj cGRlZiBsaXN0IGxpc3Qoc2VsZiwgYmludCBjb252ZXJ0PT8pCisrICAgIGNwZGVmIGRpY3QgZGlj dChzZWxmLCBiaW50IGNvbnZlcnQ9PykKKyAKKyAgICAgY2RlZiBpbmxpbmUgYmludCByZWZfc2Fm ZShzZWxmKSBub2V4Y2VwdDoKKyAgICAgICAgICIiIgorQEAgLTExOSw0ICsxMTksNCBAQCBjZGVm IGNsYXNzIE1hdHJpeEFyZ3M6CisgICAgIGNkZWYgaW50IHNldF9zZXFfZmxhdChzZWxmLCBlbnRy aWVzKSBleGNlcHQgLTEKKyAKKyAKKy1jcGRlZiBNYXRyaXhBcmdzIE1hdHJpeEFyZ3NfaW5pdChz cGFjZSwgZW50cmllcykgbm9leGNlcHQKKytjcGRlZiBNYXRyaXhBcmdzIE1hdHJpeEFyZ3NfaW5p dChzcGFjZSwgZW50cmllcykKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyaXgvYXJncy5weXgg Yi9zcmMvc2FnZS9tYXRyaXgvYXJncy5weXgKK2luZGV4IDZiMjQ3NTk1MDU5Li5hOWE4N2U5MThl ZCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJpeC9hcmdzLnB5eAorKysrIGIvc3JjL3NhZ2Uv bWF0cml4L2FyZ3MucHl4CitAQCAtNjA2LDcgKzYwNiw3IEBAIGNkZWYgY2xhc3MgTWF0cml4QXJn czoKKyAgICAgICAgIHNlbGYuZmluYWxpemUoKQorICAgICAgICAgcmV0dXJuIHNlbGYubnJvd3Mg KiBzZWxmLm5jb2xzCisgCistICAgIGNwZGVmIE1hdHJpeCBtYXRyaXgoc2VsZiwgYmludCBjb252 ZXJ0PVRydWUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBNYXRyaXggbWF0cml4KHNlbGYsIGJpbnQg Y29udmVydD1UcnVlKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBlbnRyaWVz IG9mIHRoZSBtYXRyaXggYXMgYSBTYWdlIE1hdHJpeC4KKyAKK0BAIC02OTQsNyArNjk0LDcgQEAg Y2RlZiBjbGFzcyBNYXRyaXhBcmdzOgorICAgICAgICAgc2VsZi50eXAgPSBNQV9FTlRSSUVTX01B VFJJWAorICAgICAgICAgcmV0dXJuIE0KKyAKKy0gICAgY3BkZWYgbGlzdCBsaXN0KHNlbGYsIGJp bnQgY29udmVydD1UcnVlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgbGlzdCBsaXN0KHNlbGYsIGJp bnQgY29udmVydD1UcnVlKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBlbnRy aWVzIG9mIHRoZSBtYXRyaXggYXMgYSBmbGF0IGxpc3Qgb2Ygc2NhbGFycy4KKyAKK0BAIC03NjEs NyArNzYxLDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhBcmdzOgorICAgICAgICAgc2VsZi50eXAgPSBN QV9FTlRSSUVTX1NFUV9GTEFUCisgICAgICAgICByZXR1cm4gTAorIAorLSAgICBjcGRlZiBkaWN0 IGRpY3Qoc2VsZiwgYmludCBjb252ZXJ0PVRydWUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBkaWN0 IGRpY3Qoc2VsZiwgYmludCBjb252ZXJ0PVRydWUpOgorICAgICAgICAgIiIiCisgICAgICAgICBS ZXR1cm4gdGhlIGVudHJpZXMgb2YgdGhlIG1hdHJpeCBhcyBhIGRpY3QuIFRoZSBrZXlzIG9mIHRo aXMKKyAgICAgICAgIGRpY3QgYXJlIHRoZSBub24temVybyBwb3NpdGlvbnMgYGAoaSxqKWBgLiBU aGUgY29ycmVzcG9uZGluZworQEAgLTEzNjEsNyArMTM2MSw3IEBAIGNkZWYgY2xhc3MgTWF0cml4 QXJnczoKKyAgICAgICAgICAgICByZXR1cm4gTUFfRU5UUklFU19TRVFfU0VRCisgCisgCistY3Bk ZWYgTWF0cml4QXJncyBNYXRyaXhBcmdzX2luaXQoc3BhY2UsIGVudHJpZXMpIG5vZXhjZXB0Ogor K2NwZGVmIE1hdHJpeEFyZ3MgTWF0cml4QXJnc19pbml0KHNwYWNlLCBlbnRyaWVzKToKKyAgICAg IiIiCisgICAgIENvbnN0cnVjdCBhIDpjbGFzczpgTWF0cml4QXJnc2Agb2JqZWN0IGZyb20gYSBt YXRyaXggc3BhY2UgYW5kCisgICAgIGVudHJpZXMuIFRoaXMgaXMgdGhlIHR5cGljYWwgdXNlIGlu IGEgbWF0cml4IGNvbnN0cnVjdG9yLgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJpeC9tYXRy aXgwLnB4ZCBiL3NyYy9zYWdlL21hdHJpeC9tYXRyaXgwLnB4ZAoraW5kZXggZDIyNzZlZjQ4NmQu LmMxOGM3Y2RjNGEzIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeDAucHhkCisr KysgYi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4MC5weGQKK0BAIC0yMSw4ICsyMSw4IEBAIGNkZWYg Y2xhc3MgTWF0cml4KHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuTWF0cml4KToKKyAgICAgY2RlZiBw dWJsaWMgb2JqZWN0IF9iYXNlX3JpbmcKKyAgICAgY2RlZiBiaW50IF9pc19pbW11dGFibGUKKyAK Ky0gICAgY3BkZWYgX2FkZF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0CistICAgIGNwZGVmIF9zdWJf KHNlbGYsIG90aGVyKSBub2V4Y2VwdAorKyAgICBjcGRlZiBfYWRkXyhzZWxmLCBvdGhlcikKKysg ICAgY3BkZWYgX3N1Yl8oc2VsZiwgb3RoZXIpCisgCisgICAgIGNkZWYgYmludCBfd2lsbF91c2Vf c3RyYXNzZW4oc2VsZiwgTWF0cml4IHJpZ2h0KSBleGNlcHQgLTIKKyAgICAgY2RlZiBiaW50IF93 aWxsX3VzZV9zdHJhc3Nlbl9lY2hlbG9uKHNlbGYpIGV4Y2VwdCAtMgorQEAgLTM3LDMxICszNywz MSBAQCBjZGVmIGNsYXNzIE1hdHJpeChzYWdlLnN0cnVjdHVyZS5lbGVtZW50Lk1hdHJpeCk6Cisg ICAgIGNkZWYgcHVibGljIG9iamVjdCBfY2FjaGUKKyAgICAgY2RlZiBsb25nIGhhc2ggICMgY2Fj aGVkIGhhc2ggdmFsdWUKKyAgICAgY2RlZiB2b2lkIGNsZWFyX2NhY2hlKHNlbGYpIG5vZXhjZXB0 CistICAgIGNkZWYgZmV0Y2goc2VsZiwga2V5KSBub2V4Y2VwdAorLSAgICBjZGVmIGNhY2hlKHNl bGYsIGtleSwgeCkgbm9leGNlcHQKKysgICAgY2RlZiBmZXRjaChzZWxmLCBrZXkpCisrICAgIGNk ZWYgY2FjaGUoc2VsZiwga2V5LCB4KQorIAorICAgICAjIE11dGFiaWxpdHkgYW5kIGJvdW5kcyBj aGVja2luZworLSAgICBjZGVmIGNoZWNrX2JvdW5kcyhzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3Nz aXplX3Qgaikgbm9leGNlcHQKKy0gICAgY2RlZiBjaGVja19tdXRhYmlsaXR5KHNlbGYpIG5vZXhj ZXB0CistICAgIGNkZWYgY2hlY2tfYm91bmRzX2FuZF9tdXRhYmlsaXR5KHNlbGYsIFB5X3NzaXpl X3QgaSwgUHlfc3NpemVfdCBqKSBub2V4Y2VwdAorKyAgICBjZGVmIGNoZWNrX2JvdW5kcyhzZWxm LCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3QgaikKKysgICAgY2RlZiBjaGVja19tdXRhYmlsaXR5 KHNlbGYpCisrICAgIGNkZWYgY2hlY2tfYm91bmRzX2FuZF9tdXRhYmlsaXR5KHNlbGYsIFB5X3Nz aXplX3QgaSwgUHlfc3NpemVfdCBqKQorIAorICAgICAjIFVuc2FmZSBlbnRyeSBhY2Nlc3MKKy0g ICAgY2RlZiBzZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqLCBvYmpl Y3QgeCkgbm9leGNlcHQKKy0gICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSwg UHlfc3NpemVfdCBqKSBub2V4Y2VwdAorLSAgICBjZGVmIF9jb2VyY2VfZWxlbWVudChzZWxmLCB4 KSBub2V4Y2VwdAorKyAgICBjZGVmIHNldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9z c2l6ZV90IGosIG9iamVjdCB4KQorKyAgICBjZGVmIGdldF91bnNhZmUoc2VsZiwgUHlfc3NpemVf dCBpLCBQeV9zc2l6ZV90IGopCisrICAgIGNkZWYgX2NvZXJjZV9lbGVtZW50KHNlbGYsIHgpCisg ICAgIGNkZWYgYmludCBnZXRfaXNfemVyb191bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9z c2l6ZV90IGopIGV4Y2VwdCAtMQorIAorICAgICAjIFJvdyBhbmQgY29sdW1uIG9wZXJhdGlvbnMK Ky0gICAgY2RlZiBjaGVja19yb3dfYm91bmRzKHNlbGYsIFB5X3NzaXplX3QgcjEsIFB5X3NzaXpl X3QgcjIpIG5vZXhjZXB0CistICAgIGNkZWYgY2hlY2tfY29sdW1uX2JvdW5kcyhzZWxmLCBQeV9z c2l6ZV90IGMxLCBQeV9zc2l6ZV90IGMyKSBub2V4Y2VwdAorLSAgICBjZGVmIGNoZWNrX3Jvd19i b3VuZHNfYW5kX211dGFiaWxpdHkoc2VsZiwgUHlfc3NpemVfdCByMSwgUHlfc3NpemVfdCByMikg bm9leGNlcHQKKy0gICAgY2RlZiBjaGVja19jb2x1bW5fYm91bmRzX2FuZF9tdXRhYmlsaXR5KHNl bGYsIFB5X3NzaXplX3QgYzEsIFB5X3NzaXplX3QgYzIpIG5vZXhjZXB0CistICAgIGNkZWYgc3dh cF9yb3dzX2Moc2VsZiwgUHlfc3NpemVfdCByMSwgUHlfc3NpemVfdCByMikgbm9leGNlcHQKKy0g ICAgY2RlZiBzd2FwX2NvbHVtbnNfYyhzZWxmLCBQeV9zc2l6ZV90IGMxLCBQeV9zc2l6ZV90IGMy KSBub2V4Y2VwdAorLSAgICBjZGVmIGFkZF9tdWx0aXBsZV9vZl9yb3dfYyhzZWxmLCBQeV9zc2l6 ZV90IGksIFB5X3NzaXplX3QgaiwgICAgcywgUHlfc3NpemVfdCBjb2xfc3RhcnQpIG5vZXhjZXB0 CistICAgIGNkZWYgYWRkX211bHRpcGxlX29mX2NvbHVtbl9jKHNlbGYsIFB5X3NzaXplX3QgaSwg UHlfc3NpemVfdCBqLCBzLCBQeV9zc2l6ZV90IHJvd19zdGFydCkgbm9leGNlcHQKKy0gICAgY2Rl ZiByZXNjYWxlX3Jvd19jKHNlbGYsIFB5X3NzaXplX3QgaSwgcywgUHlfc3NpemVfdCBzdGFydF9j b2wpIG5vZXhjZXB0CistICAgIGNkZWYgcmVzY2FsZV9jb2xfYyhzZWxmLCBQeV9zc2l6ZV90IGks IHMsIFB5X3NzaXplX3Qgc3RhcnRfcm93KSBub2V4Y2VwdAorKyAgICBjZGVmIGNoZWNrX3Jvd19i b3VuZHMoc2VsZiwgUHlfc3NpemVfdCByMSwgUHlfc3NpemVfdCByMikKKysgICAgY2RlZiBjaGVj a19jb2x1bW5fYm91bmRzKHNlbGYsIFB5X3NzaXplX3QgYzEsIFB5X3NzaXplX3QgYzIpCisrICAg IGNkZWYgY2hlY2tfcm93X2JvdW5kc19hbmRfbXV0YWJpbGl0eShzZWxmLCBQeV9zc2l6ZV90IHIx LCBQeV9zc2l6ZV90IHIyKQorKyAgICBjZGVmIGNoZWNrX2NvbHVtbl9ib3VuZHNfYW5kX211dGFi aWxpdHkoc2VsZiwgUHlfc3NpemVfdCBjMSwgUHlfc3NpemVfdCBjMikKKysgICAgY2RlZiBzd2Fw X3Jvd3NfYyhzZWxmLCBQeV9zc2l6ZV90IHIxLCBQeV9zc2l6ZV90IHIyKQorKyAgICBjZGVmIHN3 YXBfY29sdW1uc19jKHNlbGYsIFB5X3NzaXplX3QgYzEsIFB5X3NzaXplX3QgYzIpCisrICAgIGNk ZWYgYWRkX211bHRpcGxlX29mX3Jvd19jKHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBq LCAgICBzLCBQeV9zc2l6ZV90IGNvbF9zdGFydCkKKysgICAgY2RlZiBhZGRfbXVsdGlwbGVfb2Zf Y29sdW1uX2Moc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9zc2l6ZV90IGosIHMsIFB5X3NzaXplX3Qg cm93X3N0YXJ0KQorKyAgICBjZGVmIHJlc2NhbGVfcm93X2Moc2VsZiwgUHlfc3NpemVfdCBpLCBz LCBQeV9zc2l6ZV90IHN0YXJ0X2NvbCkKKysgICAgY2RlZiByZXNjYWxlX2NvbF9jKHNlbGYsIFB5 X3NzaXplX3QgaSwgcywgUHlfc3NpemVfdCBzdGFydF9yb3cpCisgCisgICAgICMgSGVscGVyIGZ1 bmN0aW9uIGZvciBpbnZlcnNlIG9mIHNwYXJzZSBtYXRyaWNlcworLSAgICBjZGVmIGJ1aWxkX2lu dmVyc2VfZnJvbV9hdWdtZW50ZWRfc3BhcnNlKHNlbGYsIEEpIG5vZXhjZXB0CisrICAgIGNkZWYg YnVpbGRfaW52ZXJzZV9mcm9tX2F1Z21lbnRlZF9zcGFyc2Uoc2VsZiwgQSkKK2RpZmYgLS1naXQg YS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4MC5weXggYi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4MC5w eXgKK2luZGV4IDllYjNmOWY0MjEzLi5iNmUyMzhiM2RiYSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdl L21hdHJpeC9tYXRyaXgwLnB5eAorKysrIGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeDAucHl4CitA QCAtMzQxLDcgKzM0MSw3IEBAIGNkZWYgY2xhc3MgTWF0cml4KHNhZ2Uuc3RydWN0dXJlLmVsZW1l bnQuTWF0cml4KToKKyAgICAgICAgIHNlbGYuX2NhY2hlID0gTm9uZQorICAgICAgICAgc2VsZi5o YXNoID0gLTEKKyAKKy0gICAgY2RlZiBmZXRjaChzZWxmLCBrZXkpIG5vZXhjZXB0OgorKyAgICBj ZGVmIGZldGNoKHNlbGYsIGtleSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRyeSB0byBnZXQg YW4gZWxlbWVudCBmcm9tIHRoZSBjYWNoZTsgaWYgdGhlcmUgaXNuJ3QgYW55dGhpbmcKKyAgICAg ICAgIHRoZXJlLCByZXR1cm4gTm9uZS4KK0BAIC0zNTMsNyArMzUzLDcgQEAgY2RlZiBjbGFzcyBN YXRyaXgoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5NYXRyaXgpOgorICAgICAgICAgZXhjZXB0IEtl eUVycm9yOgorICAgICAgICAgICAgIHJldHVybiBOb25lCisgCistICAgIGNkZWYgY2FjaGUoc2Vs Ziwga2V5LCB4KSBub2V4Y2VwdDoKKysgICAgY2RlZiBjYWNoZShzZWxmLCBrZXksIHgpOgorICAg ICAgICAgIiIiCisgICAgICAgICBSZWNvcmQgeCBpbiB0aGUgY2FjaGUgd2l0aCBnaXZlbiBrZXku CisgICAgICAgICAiIiIKK0BAIC0zODAsNyArMzgwLDcgQEAgY2RlZiBjbGFzcyBNYXRyaXgoc2Fn ZS5zdHJ1Y3R1cmUuZWxlbWVudC5NYXRyaXgpOgorICAgICAjIE11dGFiaWxpdHkgYW5kIGJvdW5k cyBjaGVja2luZworICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIworIAorLSAgICBjZGVmIGNoZWNrX2JvdW5kcyhzZWxmLCBQeV9z c2l6ZV90IGksIFB5X3NzaXplX3Qgaikgbm9leGNlcHQ6CisrICAgIGNkZWYgY2hlY2tfYm91bmRz KHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqKToKKyAgICAgICAgICIiIgorICAgICAg ICAgVGhpcyBmdW5jdGlvbiBnZXRzIGNhbGxlZCB3aGVuIHlvdSdyZSBhYm91dCB0byBhY2Nlc3Mg dGhlIGksaiBlbnRyeQorICAgICAgICAgb2YgdGhpcyBtYXRyaXguIElmIGksIGogYXJlIG91dCBv ZiByYW5nZSwgYW4gOmNsYXNzOmBJbmRleEVycm9yYCBpcworQEAgLTM4OSw3ICszODksNyBAQCBj ZGVmIGNsYXNzIE1hdHJpeChzYWdlLnN0cnVjdHVyZS5lbGVtZW50Lk1hdHJpeCk6CisgICAgICAg ICBpZiBpIDwgMCBvciBpID49IHNlbGYuX25yb3dzIG9yIGogPCAwIG9yIGogPj0gc2VsZi5fbmNv bHM6CisgICAgICAgICAgICAgcmFpc2UgSW5kZXhFcnJvcigibWF0cml4IGluZGV4IG91dCBvZiBy YW5nZSIpCisgCistICAgIGNkZWYgY2hlY2tfbXV0YWJpbGl0eShzZWxmKSBub2V4Y2VwdDoKKysg ICAgY2RlZiBjaGVja19tdXRhYmlsaXR5KHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBU aGlzIGZ1bmN0aW9uIGdldHMgY2FsbGVkIHdoZW4geW91J3JlIGFib3V0IHRvIGNoYW5nZSB0aGlz IG1hdHJpeC4KKyAKK0BAIC00MDMsNyArNDAzLDcgQEAgY2RlZiBjbGFzcyBNYXRyaXgoc2FnZS5z dHJ1Y3R1cmUuZWxlbWVudC5NYXRyaXgpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICBz ZWxmLl9jYWNoZSA9IE5vbmUKKyAKKy0gICAgY2RlZiBjaGVja19ib3VuZHNfYW5kX211dGFiaWxp dHkoc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9zc2l6ZV90IGopIG5vZXhjZXB0OgorKyAgICBjZGVm IGNoZWNrX2JvdW5kc19hbmRfbXV0YWJpbGl0eShzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXpl X3Qgaik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRoaXMgZnVuY3Rpb24gZ2V0cyBjYWxsZWQg d2hlbiB5b3UncmUgYWJvdXQgdG8gc2V0IHRoZSBpLGogZW50cnkgb2YKKyAgICAgICAgIHRoaXMg bWF0cml4LiBJZiBpIG9yIGogaXMgb3V0IG9mIHJhbmdlLCBhbiA6Y2xhc3M6YEluZGV4RXJyb3Jg CitAQCAtNTE2LDcgKzUxNiw3IEBAIGNkZWYgY2xhc3MgTWF0cml4KHNhZ2Uuc3RydWN0dXJlLmVs ZW1lbnQuTWF0cml4KToKKyAgICAgIyBFbnRyeSBhY2Nlc3MKKyAgICAgIyAgICBUaGUgZmlyc3Qg dHdvIG11c3QgYmUgb3ZlcmxvYWRlZCBpbiB0aGUgZGVyaXZlZCBjbGFzcworICAgICAjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworLSAg ICBjZGVmIHNldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9zc2l6ZV90IGosIG9iamVj dCB4KSBub2V4Y2VwdDoKKysgICAgY2RlZiBzZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSwg UHlfc3NpemVfdCBqLCBvYmplY3QgeCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFNldCBlbnRy eSBxdWlja2x5IHdpdGhvdXQgZG9pbmcgYW55IGJvdW5kcyBjaGVja2luZy4gQ2FsbGluZyB0aGlz CisgICAgICAgICB3aXRoIGludmFsaWQgYXJndW1lbnRzIGlzIGFsbG93ZWQgdG8gcHJvZHVjZSBh IHNlZ21lbnRhdGlvbiBmYXVsdC4KK0BAIC01MjYsNyArNTI2LDcgQEAgY2RlZiBjbGFzcyBNYXRy aXgoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5NYXRyaXgpOgorICAgICAgICAgIiIiCisgICAgICAg ICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCJ0aGlzIG11c3QgYmUgZGVmaW5lZCBpbiB0aGUg ZGVyaXZlZCBjbGFzcyAodHlwZT0lcykiICUgdHlwZShzZWxmKSkKKyAKKy0gICAgY2RlZiBnZXRf dW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqKSBub2V4Y2VwdDoKKysgICAg Y2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqKToKKyAgICAg ICAgICIiIgorICAgICAgICAgRW50cnkgYWNjZXNzLCBidXQgZmFzdCBzaW5jZSBpdCBtaWdodCBi ZSB3aXRob3V0IGJvdW5kcyBjaGVja2luZy4KKyAKK0BAIC0xNTYyLDcgKzE1NjIsNyBAQCBjZGVm IGNsYXNzIE1hdHJpeChzYWdlLnN0cnVjdHVyZS5lbGVtZW50Lk1hdHJpeCk6CisgCisgCisgCist ICAgIGNkZWYgX2NvZXJjZV9lbGVtZW50KHNlbGYsIHgpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9j b2VyY2VfZWxlbWVudChzZWxmLCB4KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGNv ZXJjaW9uIG9mIHggaW50byB0aGUgYmFzZSByaW5nIG9mIHNlbGYuCisgICAgICAgICAiIiIKK0BA IC0yNDMxLDExICsyNDMxLDExIEBAIGNkZWYgY2xhc3MgTWF0cml4KHNhZ2Uuc3RydWN0dXJlLmVs ZW1lbnQuTWF0cml4KToKKyAgICAgIyBpbnZvbHZlIG11bHRpcGxpY2F0aW9uIG91dHNpZGUgYmFz ZSByaW5nLCBpbmNsdWRpbmcKKyAgICAgIyB3aXRoXyB2ZXJzaW9ucyBvZiB0aGVzZSBtZXRob2Rz IGZvciB0aGlzIHNpdHVhdGlvbgorICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKy0gICAgY2RlZiBjaGVja19yb3dfYm91bmRzKHNlbGYsIFB5 X3NzaXplX3QgcjEsIFB5X3NzaXplX3QgcjIpIG5vZXhjZXB0OgorKyAgICBjZGVmIGNoZWNrX3Jv d19ib3VuZHMoc2VsZiwgUHlfc3NpemVfdCByMSwgUHlfc3NpemVfdCByMik6CisgICAgICAgICBp ZiByMSA8IDAgb3IgcjEgPj0gc2VsZi5fbnJvd3Mgb3IgcjIgPCAwIG9yIHIyID49IHNlbGYuX25y b3dzOgorICAgICAgICAgICAgIHJhaXNlIEluZGV4RXJyb3IoIm1hdHJpeCByb3cgaW5kZXggb3V0 IG9mIHJhbmdlIikKKyAKKy0gICAgY2RlZiBjaGVja19yb3dfYm91bmRzX2FuZF9tdXRhYmlsaXR5 KHNlbGYsIFB5X3NzaXplX3QgcjEsIFB5X3NzaXplX3QgcjIpIG5vZXhjZXB0OgorKyAgICBjZGVm IGNoZWNrX3Jvd19ib3VuZHNfYW5kX211dGFiaWxpdHkoc2VsZiwgUHlfc3NpemVfdCByMSwgUHlf c3NpemVfdCByMik6CisgICAgICAgICBpZiBzZWxmLl9pc19pbW11dGFibGU6CisgICAgICAgICAg ICAgcmFpc2UgVmFsdWVFcnJvcigiTWF0cml4IGlzIGltbXV0YWJsZTsgcGxlYXNlIGNoYW5nZSBh IGNvcHkgaW5zdGVhZCAoaS5lLiwgdXNlIGNvcHkoTSkgdG8gY2hhbmdlIGEgY29weSBvZiBNKS4i KQorICAgICAgICAgZWxzZToKK0BAIC0yNDQzLDExICsyNDQzLDExIEBAIGNkZWYgY2xhc3MgTWF0 cml4KHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuTWF0cml4KToKKyAgICAgICAgIGlmIHIxIDwgMCBv ciByMSA+PSBzZWxmLl9ucm93cyBvciByMiA8IDAgb3IgcjIgPj0gc2VsZi5fbnJvd3M6CisgICAg ICAgICAgICAgcmFpc2UgSW5kZXhFcnJvcigibWF0cml4IHJvdyBpbmRleCBvdXQgb2YgcmFuZ2Ui KQorIAorLSAgICBjZGVmIGNoZWNrX2NvbHVtbl9ib3VuZHMoc2VsZiwgUHlfc3NpemVfdCBjMSwg UHlfc3NpemVfdCBjMikgbm9leGNlcHQ6CisrICAgIGNkZWYgY2hlY2tfY29sdW1uX2JvdW5kcyhz ZWxmLCBQeV9zc2l6ZV90IGMxLCBQeV9zc2l6ZV90IGMyKToKKyAgICAgICAgIGlmIGMxIDwgMCBv ciBjMSA+PSBzZWxmLl9uY29scyBvciBjMiA8IDAgb3IgYzIgPj0gc2VsZi5fbmNvbHM6CisgICAg ICAgICAgICAgcmFpc2UgSW5kZXhFcnJvcigibWF0cml4IGNvbHVtbiBpbmRleCBvdXQgb2YgcmFu Z2UiKQorIAorLSAgICBjZGVmIGNoZWNrX2NvbHVtbl9ib3VuZHNfYW5kX211dGFiaWxpdHkoc2Vs ZiwgUHlfc3NpemVfdCBjMSwgUHlfc3NpemVfdCBjMikgbm9leGNlcHQ6CisrICAgIGNkZWYgY2hl Y2tfY29sdW1uX2JvdW5kc19hbmRfbXV0YWJpbGl0eShzZWxmLCBQeV9zc2l6ZV90IGMxLCBQeV9z c2l6ZV90IGMyKToKKyAgICAgICAgIGlmIHNlbGYuX2lzX2ltbXV0YWJsZToKKyAgICAgICAgICAg ICByYWlzZSBWYWx1ZUVycm9yKCJNYXRyaXggaXMgaW1tdXRhYmxlOyBwbGVhc2UgY2hhbmdlIGEg Y29weSBpbnN0ZWFkIChpLmUuLCB1c2UgY29weShNKSB0byBjaGFuZ2UgYSBjb3B5IG9mIE0pLiIp CisgICAgICAgICBlbHNlOgorQEAgLTI2MzMsNyArMjYzMyw3IEBAIGNkZWYgY2xhc3MgTWF0cml4 KHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuTWF0cml4KToKKyAgICAgICAgICAgICAgICAgICAgIHRl bXAuc3dhcF9jb2x1bW5zX2MoY3ljbGVbMF0sIGVsdCkKKyAgICAgICAgIHJldHVybiB0ZW1wCisg CistICAgIGNkZWYgc3dhcF9jb2x1bW5zX2Moc2VsZiwgUHlfc3NpemVfdCBjMSwgUHlfc3NpemVf dCBjMikgbm9leGNlcHQ6CisrICAgIGNkZWYgc3dhcF9jb2x1bW5zX2Moc2VsZiwgUHlfc3NpemVf dCBjMSwgUHlfc3NpemVfdCBjMik6CisgICAgICAgICBjZGVmIFB5X3NzaXplX3QgcgorICAgICAg ICAgZm9yIHIgZnJvbSAwIDw9IHIgPCBzZWxmLl9ucm93czoKKyAgICAgICAgICAgICBhID0gc2Vs Zi5nZXRfdW5zYWZlKHIsIGMyKQorQEAgLTI4MTUsNyArMjgxNSw3IEBAIGNkZWYgY2xhc3MgTWF0 cml4KHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuTWF0cml4KToKKyAgICAgICAgICAgICAgICAgICAg IHRlbXAuc3dhcF9yb3dzX2MoY3ljbGVbMF0sIGVsdCkKKyAgICAgICAgIHJldHVybiB0ZW1wCisg CistICAgIGNkZWYgc3dhcF9yb3dzX2Moc2VsZiwgUHlfc3NpemVfdCByMSwgUHlfc3NpemVfdCBy Mikgbm9leGNlcHQ6CisrICAgIGNkZWYgc3dhcF9yb3dzX2Moc2VsZiwgUHlfc3NpemVfdCByMSwg UHlfc3NpemVfdCByMik6CisgICAgICAgICBjZGVmIFB5X3NzaXplX3QgYworICAgICAgICAgZm9y IGMgZnJvbSAwIDw9IGMgPCBzZWxmLl9uY29sczoKKyAgICAgICAgICAgICBhID0gc2VsZi5nZXRf dW5zYWZlKHIyLCBjKQorQEAgLTI5NTAsNyArMjk1MCw3IEBAIGNkZWYgY2xhc3MgTWF0cml4KHNh Z2Uuc3RydWN0dXJlLmVsZW1lbnQuTWF0cml4KToKKyAgICAgICAgIGV4Y2VwdCBUeXBlRXJyb3I6 CisgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCdNdWx0aXBseWluZyByb3cgYnkgJXMgZWxl bWVudCBjYW5ub3QgYmUgZG9uZSBvdmVyICVzLCB1c2UgY2hhbmdlX3Jpbmcgb3Igd2l0aF9hZGRl ZF9tdWx0aXBsZV9vZl9yb3cgaW5zdGVhZC4nICUgKHMucGFyZW50KCksIHNlbGYuYmFzZV9yaW5n KCkpKQorIAorLSAgICBjZGVmIGFkZF9tdWx0aXBsZV9vZl9yb3dfYyhzZWxmLCBQeV9zc2l6ZV90 IGksIFB5X3NzaXplX3QgaiwgcywgUHlfc3NpemVfdCBzdGFydF9jb2wpIG5vZXhjZXB0OgorKyAg ICBjZGVmIGFkZF9tdWx0aXBsZV9vZl9yb3dfYyhzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXpl X3QgaiwgcywgUHlfc3NpemVfdCBzdGFydF9jb2wpOgorICAgICAgICAgY2RlZiBQeV9zc2l6ZV90 IGMKKyAgICAgICAgIGZvciBjIGZyb20gc3RhcnRfY29sIDw9IGMgPCBzZWxmLl9uY29sczoKKyAg ICAgICAgICAgICBzZWxmLnNldF91bnNhZmUoaSwgYywgc2VsZi5nZXRfdW5zYWZlKGksIGMpICsg cypzZWxmLmdldF91bnNhZmUoaiwgYykpCitAQCAtMzAzNSw3ICszMDM1LDcgQEAgY2RlZiBjbGFz cyBNYXRyaXgoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5NYXRyaXgpOgorICAgICAgICAgZXhjZXB0 IFR5cGVFcnJvcjoKKyAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoJ011bHRpcGx5aW5nIGNv bHVtbiBieSAlcyBlbGVtZW50IGNhbm5vdCBiZSBkb25lIG92ZXIgJXMsIHVzZSBjaGFuZ2Vfcmlu ZyBvciB3aXRoX2FkZGVkX211bHRpcGxlX29mX2NvbHVtbiBpbnN0ZWFkLicgJSAocy5wYXJlbnQo KSwgc2VsZi5iYXNlX3JpbmcoKSkpCisgCistICAgIGNkZWYgYWRkX211bHRpcGxlX29mX2NvbHVt bl9jKHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqLCBzLCBQeV9zc2l6ZV90IHN0YXJ0 X3Jvdykgbm9leGNlcHQ6CisrICAgIGNkZWYgYWRkX211bHRpcGxlX29mX2NvbHVtbl9jKHNlbGYs IFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqLCBzLCBQeV9zc2l6ZV90IHN0YXJ0X3Jvdyk6Cisg ICAgICAgICBjZGVmIFB5X3NzaXplX3QgcgorICAgICAgICAgZm9yIHIgZnJvbSBzdGFydF9yb3cg PD0gciA8IHNlbGYuX25yb3dzOgorICAgICAgICAgICAgIHNlbGYuc2V0X3Vuc2FmZShyLCBpLCBz ZWxmLmdldF91bnNhZmUociwgaSkgKyBzKnNlbGYuZ2V0X3Vuc2FmZShyLCBqKSkKK0BAIC0zMTUw LDcgKzMxNTAsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeChzYWdlLnN0cnVjdHVyZS5lbGVtZW50Lk1h dHJpeCk6CisgICAgICAgICBleGNlcHQgVHlwZUVycm9yOgorICAgICAgICAgICAgIHJhaXNlIFR5 cGVFcnJvcignUmVzY2FsaW5nIHJvdyBieSAlcyBlbGVtZW50IGNhbm5vdCBiZSBkb25lIG92ZXIg JXMsIHVzZSBjaGFuZ2VfcmluZyBvciB3aXRoX3Jlc2NhbGVkX3JvdyBpbnN0ZWFkLicgJSAocy5w YXJlbnQoKSwgc2VsZi5iYXNlX3JpbmcoKSkpCisgCistICAgIGNkZWYgcmVzY2FsZV9yb3dfYyhz ZWxmLCBQeV9zc2l6ZV90IGksIHMsIFB5X3NzaXplX3Qgc3RhcnRfY29sKSBub2V4Y2VwdDoKKysg ICAgY2RlZiByZXNjYWxlX3Jvd19jKHNlbGYsIFB5X3NzaXplX3QgaSwgcywgUHlfc3NpemVfdCBz dGFydF9jb2wpOgorICAgICAgICAgY2RlZiBQeV9zc2l6ZV90IGoKKyAgICAgICAgIGZvciBqIGZy b20gc3RhcnRfY29sIDw9IGogPCBzZWxmLl9uY29sczoKKyAgICAgICAgICAgICBzZWxmLnNldF91 bnNhZmUoaSwgaiwgc2VsZi5nZXRfdW5zYWZlKGksIGopKnMpCitAQCAtMzI2NSw3ICszMjY1LDcg QEAgY2RlZiBjbGFzcyBNYXRyaXgoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5NYXRyaXgpOgorICAg ICAgICAgZXhjZXB0IFR5cGVFcnJvcjoKKyAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoJ1Jl c2NhbGluZyBjb2x1bW4gYnkgJXMgZWxlbWVudCBjYW5ub3QgYmUgZG9uZSBvdmVyICVzLCB1c2Ug Y2hhbmdlX3Jpbmcgb3Igd2l0aF9yZXNjYWxlZF9jb2wgaW5zdGVhZC4nICUgKHMucGFyZW50KCks IHNlbGYuYmFzZV9yaW5nKCkpKQorIAorLSAgICBjZGVmIHJlc2NhbGVfY29sX2Moc2VsZiwgUHlf c3NpemVfdCBpLCBzLCBQeV9zc2l6ZV90IHN0YXJ0X3Jvdykgbm9leGNlcHQ6CisrICAgIGNkZWYg cmVzY2FsZV9jb2xfYyhzZWxmLCBQeV9zc2l6ZV90IGksIHMsIFB5X3NzaXplX3Qgc3RhcnRfcm93 KToKKyAgICAgICAgIGNkZWYgUHlfc3NpemVfdCBqCisgICAgICAgICBmb3IgaiBmcm9tIHN0YXJ0 X3JvdyA8PSBqIDwgc2VsZi5fbnJvd3M6CisgICAgICAgICAgICAgc2VsZi5zZXRfdW5zYWZlKGos IGksIHNlbGYuZ2V0X3Vuc2FmZShqLCBpKSpzKQorQEAgLTUwMzgsNyArNTAzOCw3IEBAIGNkZWYg Y2xhc3MgTWF0cml4KHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuTWF0cml4KToKKyAgICAgIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgICAgICMgQXJp dGhtZXRpYworICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKKy0gICAgY2RlZiBfdmVjdG9yX3RpbWVzX21hdHJpeF8oc2VsZiwgVmVjdG9yIHYp IG5vZXhjZXB0OgorKyAgICBjZGVmIF92ZWN0b3JfdGltZXNfbWF0cml4XyhzZWxmLCBWZWN0b3Ig dik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHZlY3RvciB0aW1lcyBtYXRy aXggcHJvZHVjdC4KKyAKK0BAIC01MDk1LDcgKzUwOTUsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeChz YWdlLnN0cnVjdHVyZS5lbGVtZW50Lk1hdHJpeCk6CisgICAgICAgICByZXR1cm4gc3VtKFt2W2ld ICogc2VsZi5yb3coaSwgZnJvbV9saXN0PVRydWUpCisgICAgICAgICAgICAgICAgICAgICBmb3Ig aSBpbiByYW5nZShzZWxmLl9ucm93cyldLCBNKDApKQorIAorLSAgICBjZGVmIF9tYXRyaXhfdGlt ZXNfdmVjdG9yXyhzZWxmLCBWZWN0b3Igdikgbm9leGNlcHQ6CisrICAgIGNkZWYgX21hdHJpeF90 aW1lc192ZWN0b3JfKHNlbGYsIFZlY3RvciB2KToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhB TVBMRVM6OgorIAorQEAgLTUyMDYsNyArNTIwNiw3IEBAIGNkZWYgY2xhc3MgTWF0cml4KHNhZ2Uu c3RydWN0dXJlLmVsZW1lbnQuTWF0cml4KToKKyAgICAgICAgICAgICBNUyA9IHNlbGYubWF0cml4 X3NwYWNlKG4sIG0pCisgICAgICAgICAgICAgcmV0dXJuIE1TKFgpLnRyYW5zcG9zZSgpCisgCist ICAgIGNwZGVmIF9hZGRfKHNlbGYsIF9yaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRf KHNlbGYsIF9yaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEFkZCB0d28gbWF0cmljZXMg d2l0aCB0aGUgc2FtZSBwYXJlbnQuCisgCitAQCAtNTIzMCw3ICs1MjMwLDcgQEAgY2RlZiBjbGFz cyBNYXRyaXgoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5NYXRyaXgpOgorICAgICAgICAgICAgICAg ICBBLnNldF91bnNhZmUoaSwgaiwgc2VsZi5nZXRfdW5zYWZlKGksaikuX2FkZF8ocmlnaHQuZ2V0 X3Vuc2FmZShpLGopKSkKKyAgICAgICAgIHJldHVybiBBCisgCistICAgIGNwZGVmIF9zdWJfKHNl bGYsIF9yaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9zdWJfKHNlbGYsIF9yaWdodCk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIFN1YnRyYWN0IHR3byBtYXRyaWNlcyB3aXRoIHRoZSBzYW1l IHBhcmVudC4KKyAKK0BAIC01Mjk2LDcgKzUyOTYsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeChzYWdl LnN0cnVjdHVyZS5lbGVtZW50Lk1hdHJpeCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVy biBzZWxmLmNoYW5nZV9yaW5nKHNlbGYuX2Jhc2VfcmluZy5xdW90aWVudF9yaW5nKHApKQorIAor LSAgICBjcGRlZiBfcm11bF8oc2VsZiwgRWxlbWVudCBsZWZ0KSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgX3JtdWxfKHNlbGYsIEVsZW1lbnQgbGVmdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVY QU1QTEVTOjoKKyAKK0BAIC01MzM0LDcgKzUzMzQsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeChzYWdl LnN0cnVjdHVyZS5lbGVtZW50Lk1hdHJpeCk6CisgICAgICAgICAgICAgICAgIGFucy5zZXRfdW5z YWZlKHIsIGMsIHggKiBzZWxmLmdldF91bnNhZmUociwgYykpCisgICAgICAgICByZXR1cm4gYW5z CisgCistICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IHJpZ2h0KSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAg ICAgICBFWEFNUExFUzoKKyAKK0BAIC01Mzc4LDcgKzUzNzgsNyBAQCBjZGVmIGNsYXNzIE1hdHJp eChzYWdlLnN0cnVjdHVyZS5lbGVtZW50Lk1hdHJpeCk6CisgICAgICAgICAgICAgICAgIGFucy5z ZXRfdW5zYWZlKHIsIGMsIHNlbGYuZ2V0X3Vuc2FmZShyLCBjKSAqIHgpCisgICAgICAgICByZXR1 cm4gYW5zCisgCistICAgIGNkZWYgc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5NYXRyaXggX21hdHJp eF90aW1lc19tYXRyaXhfKHNlbGYsIHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuTWF0cml4IHJpZ2h0 KSBub2V4Y2VwdDoKKysgICAgY2RlZiBzYWdlLnN0cnVjdHVyZS5lbGVtZW50Lk1hdHJpeCBfbWF0 cml4X3RpbWVzX21hdHJpeF8oc2VsZiwgc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5NYXRyaXggcmln aHQpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBwcm9kdWN0IG9mIHR3byBt YXRyaWNlcy4KKyAKK0BAIC01NzcxLDcgKzU3NzEsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeChzYWdl LnN0cnVjdHVyZS5lbGVtZW50Lk1hdHJpeCk6CisgICAgICAgICAgICAgICAgICAgICByYWlzZSBa ZXJvRGl2aXNpb25FcnJvcigiaW5wdXQgbWF0cml4IG11c3QgYmUgbm9uc2luZ3VsYXIiKQorICAg ICAgICAgICAgIHJldHVybiBBLm1hdHJpeF9mcm9tX2NvbHVtbnMobGlzdChyYW5nZShzZWxmLl9u Y29scywgMiAqIHNlbGYuX25jb2xzKSkpCisgCistICAgIGNkZWYgYnVpbGRfaW52ZXJzZV9mcm9t X2F1Z21lbnRlZF9zcGFyc2Uoc2VsZiwgQSkgbm9leGNlcHQ6CisrICAgIGNkZWYgYnVpbGRfaW52 ZXJzZV9mcm9tX2F1Z21lbnRlZF9zcGFyc2Uoc2VsZiwgQSk6CisgICAgICAgICAjIFdlIGNhbiBk aXJlY3RseSB1c2UgdGhlIGRpY3QgZW50cmllcyBvZiBBCisgICAgICAgICBjZGVmIFB5X3NzaXpl X3QgaSwgbnJvd3MKKyAgICAgICAgIGNkZWYgZGljdCBkYXRhID0gPGRpY3Q+IEEuX2RpY3QoKQor QEAgLTYwNzQsNyArNjA3NCw3IEBAIGNkZWYgY2xhc3MgTWF0cml4KHNhZ2Uuc3RydWN0dXJlLmVs ZW1lbnQuTWF0cml4KToKKyAgICAgICAgICMgQ1swXSA9ICgxIC0gbSAqIChtIC0gMSkvMikgKiBD WzJdIC0gKG0gLSAxKSAqIENbMV0KKyAgICAgICAgIENbMF0gPSAoMSAtIG1tKSAqIENbMl0gLSAo bSAtIDEpICogQ1sxXQorIAorLSAgICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBv cCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdodCwgaW50IG9wKToK KyAgICAgICAgICIiIgorICAgICAgICAgQ29tcGFyZSB0d28gbWF0cmljZXMuCisgCitkaWZmIC0t Z2l0IGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeDEucHhkIGIvc3JjL3NhZ2UvbWF0cml4L21hdHJp eDEucHhkCitpbmRleCBlMzU4NWY5Y2FhYi4uZDI0NDY4YjgwZTEgMTAwNjQ0CistLS0gYS9zcmMv c2FnZS9tYXRyaXgvbWF0cml4MS5weGQKKysrKyBiL3NyYy9zYWdlL21hdHJpeC9tYXRyaXgxLnB4 ZAorQEAgLTEsNyArMSw3IEBACisgZnJvbSBzYWdlLm1hdHJpeC5tYXRyaXgwIGNpbXBvcnQgTWF0 cml4IGFzIE1hdHJpeDAKKyAKKyBjZGVmIGNsYXNzIE1hdHJpeChNYXRyaXgwKToKKy0gICAgY2Rl ZiBfc3RhY2tfaW1wbChzZWxmLCBib3R0b20pIG5vZXhjZXB0CisrICAgIGNkZWYgX3N0YWNrX2lt cGwoc2VsZiwgYm90dG9tKQorIAorLSAgICBjcGRlZiByb3dfYW1iaWVudF9tb2R1bGUoc2VsZiwg YmFzZV9yaW5nPSosIHNwYXJzZT0qKSBub2V4Y2VwdAorLSAgICBjcGRlZiBjb2x1bW5fYW1iaWVu dF9tb2R1bGUoc2VsZiwgYmFzZV9yaW5nPSosIHNwYXJzZT0qKSBub2V4Y2VwdAorKyAgICBjcGRl ZiByb3dfYW1iaWVudF9tb2R1bGUoc2VsZiwgYmFzZV9yaW5nPSosIHNwYXJzZT0qKQorKyAgICBj cGRlZiBjb2x1bW5fYW1iaWVudF9tb2R1bGUoc2VsZiwgYmFzZV9yaW5nPSosIHNwYXJzZT0qKQor ZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXgxLnB5eCBiL3NyYy9zYWdlL21hdHJp eC9tYXRyaXgxLnB5eAoraW5kZXggZWY4YWEzNWNlMDMuLjFkMjhhMjNlYzkwIDEwMDY0NAorLS0t IGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeDEucHl4CisrKysgYi9zcmMvc2FnZS9tYXRyaXgvbWF0 cml4MS5weXgKK0BAIC04NTQsNyArODU0LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXgoTWF0cml4MCk6 CisgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworICAgICAjIHJvd3Ms IGNvbHVtbnMsIHNwYXJzZV9yb3dzLCBzcGFyc2VfY29sdW1ucywgZGVuc2Vfcm93cywgZGVuc2Vf Y29sdW1ucywgcm93LCBjb2x1bW4KKyAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCistICAgIGNwZGVmIHJvd19hbWJpZW50X21vZHVsZShzZWxmLCBiYXNlX3Jpbmc9Tm9u ZSwgc3BhcnNlPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiByb3dfYW1iaWVudF9tb2R1bGUo c2VsZiwgYmFzZV9yaW5nPU5vbmUsIHNwYXJzZT1Ob25lKToKKyAgICAgICAgIHIiIiIKKyAgICAg ICAgIFJldHVybiB0aGUgZnJlZSBtb2R1bGUgdGhhdCBjb250YWlucyB0aGUgcm93cyBvZiB0aGUg bWF0cml4LgorIAorQEAgLTkxMSw3ICs5MTEsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeChNYXRyaXgw KToKKyAgICAgICAgIGRlcHJlY2F0aW9uKDMyOTg0LCAndGhlIG1ldGhvZCBfcm93X2FtYmllbnRf bW9kdWxlIGlzIGRlcHJlY2F0ZWQgdXNlIHJvd19hbWJpZW50X21vZHVsZSAod2l0aG91dCB1bmRl cnNjb3JlKSBpbnN0ZWFkJykKKyAgICAgICAgIHJldHVybiBzZWxmLnJvd19hbWJpZW50X21vZHVs ZShiYXNlX3JpbmcpCisgCistICAgIGNwZGVmIGNvbHVtbl9hbWJpZW50X21vZHVsZShzZWxmLCBi YXNlX3Jpbmc9Tm9uZSwgc3BhcnNlPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjb2x1bW5f YW1iaWVudF9tb2R1bGUoc2VsZiwgYmFzZV9yaW5nPU5vbmUsIHNwYXJzZT1Ob25lKToKKyAgICAg ICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgZnJlZSBtb2R1bGUgdGhhdCBjb250YWlucyB0 aGUgY29sdW1ucyBvZiB0aGUgbWF0cml4LgorIAorQEAgLTE3NDcsNyArMTc0Nyw3IEBAIGNkZWYg Y2xhc3MgTWF0cml4KE1hdHJpeDApOgorICAgICAgICAgICAgIFouX3N1YmRpdmlkZV9vbl9zdGFj ayhzZWxmLCBvdGhlcikKKyAgICAgICAgIHJldHVybiBaCisgCistICAgIGNkZWYgX3N0YWNrX2lt cGwoc2VsZiwgYm90dG9tKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfc3RhY2tfaW1wbChzZWxmLCBi b3R0b20pOgorICAgICAgICAgIiIiCisgICAgICAgICBJbXBsZW1lbnRhdGlvbiBvZiA6bWV0aDpg c3RhY2tgLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXgyLnB4ZCBiL3Ny Yy9zYWdlL21hdHJpeC9tYXRyaXgyLnB4ZAoraW5kZXggMWZkODVjNWYwODIuLmEyZTAyOTcyMjhj IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeDIucHhkCisrKysgYi9zcmMvc2Fn ZS9tYXRyaXgvbWF0cml4Mi5weGQKK0BAIC0xNSwxMCArMTUsMTAgQEAgR2VuZXJpYyBtYXRyaWNl cworIGZyb20gc2FnZS5tYXRyaXgubWF0cml4MSBjaW1wb3J0IE1hdHJpeCBhcyBNYXRyaXgxCisg CisgY2RlZiBjbGFzcyBNYXRyaXgoTWF0cml4MSk6CistICAgIGNkZWYgX2RldF9ieV9taW5vcnMo c2VsZiwgUHlfc3NpemVfdCBsZXZlbCkgbm9leGNlcHQKKy0gICAgY2RlZiBfcGZfYmZsKHNlbGYp IG5vZXhjZXB0CisrICAgIGNkZWYgX2RldF9ieV9taW5vcnMoc2VsZiwgUHlfc3NpemVfdCBsZXZl bCkKKysgICAgY2RlZiBfcGZfYmZsKHNlbGYpCisgICAgIGNkZWYgYmludCBfaXNfcG9zaXRpdmVf ZGVmaW5pdGVfb3Jfc2VtaWRlZmluaXRlKHNlbGYsIGJpbnQgc2VtaSkgZXhjZXB0IC0xCistICAg IGNkZWYgdHVwbGUgX2Jsb2NrX2xkbHQoc2VsZiwgYmludCBjbGFzc2ljYWwpIG5vZXhjZXB0Cist ICAgIGNwZGVmIF9lY2hlbG9uKHNlbGYsIHN0ciBhbGdvcml0aG0pIG5vZXhjZXB0CistICAgIGNw ZGVmIF9lY2hlbG9uX2luX3BsYWNlKHNlbGYsIHN0ciBhbGdvcml0aG0pIG5vZXhjZXB0CistICAg IGNwZGVmIG1hdHJpeF93aW5kb3coc2VsZiwgUHlfc3NpemVfdCByb3c9KiwgUHlfc3NpemVfdCBj b2w9KiwgUHlfc3NpemVfdCBucm93cz0qLCBQeV9zc2l6ZV90IG5jb2xzPSosIGJpbnQgY2hlY2s9 Kikgbm9leGNlcHQKKysgICAgY2RlZiB0dXBsZSBfYmxvY2tfbGRsdChzZWxmLCBiaW50IGNsYXNz aWNhbCkKKysgICAgY3BkZWYgX2VjaGVsb24oc2VsZiwgc3RyIGFsZ29yaXRobSkKKysgICAgY3Bk ZWYgX2VjaGVsb25faW5fcGxhY2Uoc2VsZiwgc3RyIGFsZ29yaXRobSkKKysgICAgY3BkZWYgbWF0 cml4X3dpbmRvdyhzZWxmLCBQeV9zc2l6ZV90IHJvdz0qLCBQeV9zc2l6ZV90IGNvbD0qLCBQeV9z c2l6ZV90IG5yb3dzPSosIFB5X3NzaXplX3QgbmNvbHM9KiwgYmludCBjaGVjaz0qKQorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXgyLnB5eCBiL3NyYy9zYWdlL21hdHJpeC9tYXRy aXgyLnB5eAoraW5kZXggNDdhODM2YTA5NTIuLjc2ZWZhZTk1NWI1IDEwMDY0NAorLS0tIGEvc3Jj L3NhZ2UvbWF0cml4L21hdHJpeDIucHl4CisrKysgYi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4Mi5w eXgKK0BAIC0yMTk5LDcgKzIxOTksNyBAQCBjZGVmIGNsYXNzIE1hdHJpeChNYXRyaXgxKToKKyAg ICAgICAgIHNlbGYuY2FjaGUoJ2RldCcsIGQpCisgICAgICAgICByZXR1cm4gZAorIAorLSAgICBj ZGVmIF9kZXRfYnlfbWlub3JzKHNlbGYsIFB5X3NzaXplX3QgbGV2ZWwpIG5vZXhjZXB0OgorKyAg ICBjZGVmIF9kZXRfYnlfbWlub3JzKHNlbGYsIFB5X3NzaXplX3QgbGV2ZWwpOgorICAgICAgICAg IiIiCisgICAgICAgICBDb21wdXRlIHRoZSBkZXRlcm1pbmFudCBvZiB0aGUgdXBwZXItbGVmdCBs ZXZlbCB4IGxldmVsIHN1Ym1hdHJpeAorICAgICAgICAgb2Ygc2VsZi4gRG9lcyBub3QgaGFuZGxl IGRlZ2VuZXJhdGUgY2FzZXMsIGxldmVsIE1VU1QgYmUgPj0gMgorQEAgLTI1NjksNyArMjU2OSw3 IEBAIGNkZWYgY2xhc3MgTWF0cml4KE1hdHJpeDEpOgorIAorICAgICAgICAgcmV0dXJuIHJlcwor IAorLSAgICBjZGVmIF9wZl9iZmwoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgX3BmX2JmbChz ZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIENvbXB1dGVzIHRoZSBQZmFmZmlhbiBvZiBg YHNlbGZgYCB1c2luZyB0aGUgQmFlci1GYWRkZWV2LUxlVmVycmllcgorICAgICAgICAgYWxnb3Jp dGhtLgorQEAgLTc5NjcsNyArNzk2Nyw3IEBAIGNkZWYgY2xhc3MgTWF0cml4KE1hdHJpeDEpOgor ICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXR1cm4gRQorIAorLSAgICBjcGRlZiBfZWNo ZWxvbihzZWxmLCBzdHIgYWxnb3JpdGhtKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2VjaGVsb24o c2VsZiwgc3RyIGFsZ29yaXRobSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUg ZWNoZWxvbiBmb3JtIG9mIGBgc2VsZmBgIHVzaW5nIGBgYWxnb3JpdGhtYGAuCisgCitAQCAtODA0 Nyw3ICs4MDQ3LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXgoTWF0cml4MSk6CisgICAgICAgICAiIiIK KyAgICAgICAgIHJldHVybiBzZWxmLl9lY2hlbG9uKCdjbGFzc2ljYWwnKQorIAorLSAgICBjcGRl ZiBfZWNoZWxvbl9pbl9wbGFjZShzZWxmLCBzdHIgYWxnb3JpdGhtKSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgX2VjaGVsb25faW5fcGxhY2Uoc2VsZiwgc3RyIGFsZ29yaXRobSk6CisgICAgICAgICAi IiIKKyAgICAgICAgIFRyYW5zZm9ybSBgYHNlbGZgYCBpbnRvIGVjaGVsb24gZm9ybSBhbmQgcmV0 dXJuIHRoZSBwaXZvdHMgb2YgYGBzZWxmYGAuCisgCitAQCAtODg3OCw3ICs4ODc4LDcgQEAgY2Rl ZiBjbGFzcyBNYXRyaXgoTWF0cml4MSk6CisgCisgICAgIGNwZGVmIG1hdHJpeF93aW5kb3coc2Vs ZiwgUHlfc3NpemVfdCByb3c9MCwgUHlfc3NpemVfdCBjb2w9MCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICBQeV9zc2l6ZV90IG5yb3dzPS0xLCBQeV9zc2l6ZV90IG5jb2xzPS0xLAorLSAgICAg ICAgICAgICAgICAgICAgICAgIGJpbnQgY2hlY2s9MSkgbm9leGNlcHQ6CisrICAgICAgICAgICAg ICAgICAgICAgICAgYmludCBjaGVjaz0xKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJu IHRoZSByZXF1ZXN0ZWQgbWF0cml4IHdpbmRvdy4KKyAKK0BAIC0xNDA3Myw3ICsxNDA3Myw3IEBA IGNkZWYgY2xhc3MgTWF0cml4KE1hdHJpeDEpOgorICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy b3IobXNnLmZvcm1hdChkKSkKKyAgICAgICAgIHJldHVybiBMLCB2ZWN0b3IoTC5iYXNlX3Jpbmco KSwgZCkKKyAKKy0gICAgY2RlZiB0dXBsZSBfYmxvY2tfbGRsdChzZWxmLCBiaW50IGNsYXNzaWNh bCkgbm9leGNlcHQ6CisrICAgIGNkZWYgdHVwbGUgX2Jsb2NrX2xkbHQoc2VsZiwgYmludCBjbGFz c2ljYWwpOgorICAgICAgICAgciIiIgorICAgICAgICAgUGVyZm9ybSBhIHVzZXItdW5mcmllbmRs eSBibG9jay1gTERMXntUfWAgZmFjdG9yaXphdGlvbiBvZiB0aGUKKyAgICAgICAgIEhlcm1pdGlh biBtYXRyaXggYEFgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9jZHYucHhk IGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9jZHYucHhkCitpbmRleCAyZGViNzJmMjVhMi4uZjc2 ODRkYTQ5ZjIgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2Nkdi5weGQKKysr KyBiL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfY2R2LnB4ZAorQEAgLTEsMyArMSwzIEBACisgZnJv bSBzYWdlLm1hdHJpeC5tYXRyaXhfZ2VuZXJpY19kZW5zZSBjaW1wb3J0IE1hdHJpeF9nZW5lcmlj X2RlbnNlCisgCistY3BkZWYgaGVzc2VuYmVyZ2l6ZV9jZHZmKE1hdHJpeF9nZW5lcmljX2RlbnNl KSBub2V4Y2VwdAorK2NwZGVmIGhlc3NlbmJlcmdpemVfY2R2ZihNYXRyaXhfZ2VuZXJpY19kZW5z ZSkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2Nkdi5weXggYi9zcmMvc2Fn ZS9tYXRyaXgvbWF0cml4X2Nkdi5weXgKK2luZGV4IGE1M2FlNzc3ZjIwLi43YTZiMTg4NzUxOCAx MDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfY2R2LnB5eAorKysrIGIvc3JjL3Nh Z2UvbWF0cml4L21hdHJpeF9jZHYucHl4CitAQCAtMjAsNyArMjAsNyBAQCBmcm9tIHNhZ2Uucmlu Z3MuaW5maW5pdHkgaW1wb3J0IEluZmluaXR5CisgCisgCisgIyBXZSBhc3N1bWUgdGhhdCBIIGlz IHNxdWFyZQorLWNwZGVmIGhlc3NlbmJlcmdpemVfY2R2ZihNYXRyaXhfZ2VuZXJpY19kZW5zZSBI KSBub2V4Y2VwdDoKKytjcGRlZiBoZXNzZW5iZXJnaXplX2NkdmYoTWF0cml4X2dlbmVyaWNfZGVu c2UgSCk6CisgICAgIHIiIiIKKyAgICAgUmVwbGFjZSBgSGAgd2l0aCBhIEhlc3NlbmJlcmcgZm9y bSBvZiBpdC4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2NvbXBsZXhf YmFsbF9kZW5zZS5weGQgYi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2NvbXBsZXhfYmFsbF9kZW5z ZS5weGQKK2luZGV4IDlhMTcwODlhMWM3Li5mNjM1NDQ2OWZhOSAxMDA2NDQKKy0tLSBhL3NyYy9z YWdlL21hdHJpeC9tYXRyaXhfY29tcGxleF9iYWxsX2RlbnNlLnB4ZAorKysrIGIvc3JjL3NhZ2Uv bWF0cml4L21hdHJpeF9jb21wbGV4X2JhbGxfZGVuc2UucHhkCitAQCAtNSw5ICs1LDkgQEAgZnJv bSBzYWdlLnN0cnVjdHVyZS5wYXJlbnQgY2ltcG9ydCBQYXJlbnQKKyAKKyBjZGVmIHZvaWQgbWF0 cml4X3RvX2FjYl9tYXQoYWNiX21hdF90IHRhcmdldCwgc291cmNlKSBub2V4Y2VwdAorIGNkZWYg TWF0cml4X2dlbmVyaWNfZGVuc2UgYWNiX21hdF90b19tYXRyaXgoCistICAgIGFjYl9tYXRfdCBz b3VyY2UsIFBhcmVudCBDSUYpIG5vZXhjZXB0CisrICAgIGFjYl9tYXRfdCBzb3VyY2UsIFBhcmVu dCBDSUYpCisgCisgY2RlZiBjbGFzcyBNYXRyaXhfY29tcGxleF9iYWxsX2RlbnNlKE1hdHJpeF9k ZW5zZSk6CisgICAgIGNkZWYgYWNiX21hdF90IHZhbHVlCistICAgIGNkZWYgTWF0cml4X2NvbXBs ZXhfYmFsbF9kZW5zZSBfbmV3KHNlbGYsIFB5X3NzaXplX3QgbnJvd3MsIFB5X3NzaXplX3QgbmNv bHMpIG5vZXhjZXB0CistICAgIGNwZGVmIF9wb3dfaW50KHNlbGYsIG4pIG5vZXhjZXB0CisrICAg IGNkZWYgTWF0cml4X2NvbXBsZXhfYmFsbF9kZW5zZSBfbmV3KHNlbGYsIFB5X3NzaXplX3QgbnJv d3MsIFB5X3NzaXplX3QgbmNvbHMpCisrICAgIGNwZGVmIF9wb3dfaW50KHNlbGYsIG4pCitkaWZm IC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9jb21wbGV4X2JhbGxfZGVuc2UucHl4IGIv c3JjL3NhZ2UvbWF0cml4L21hdHJpeF9jb21wbGV4X2JhbGxfZGVuc2UucHl4CitpbmRleCAyZjAx MzFmNDA2NC4uYzA2N2Q2YTkwMTcgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4 X2NvbXBsZXhfYmFsbF9kZW5zZS5weXgKKysrKyBiL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfY29t cGxleF9iYWxsX2RlbnNlLnB5eAorQEAgLTgwLDE0ICs4MCwxNCBAQCBjZGVmIHZvaWQgbWF0cml4 X3RvX2FjYl9tYXQoYWNiX21hdF90IHRhcmdldCwgc291cmNlKSBub2V4Y2VwdDoKKyAgICAgICAg ICAgICBDb21wbGV4SW50ZXJ2YWxGaWVsZEVsZW1lbnRfdG9fYWNiKGFjYl9tYXRfZW50cnkodGFy Z2V0LCByLCBjKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNvdXJjZVtyXVtjXSkKKyAKKy1jZGVmIENvbXBsZXhJbnRlcnZhbEZpZWxkRWxlbWVudCBf dG9fQ0lGKGFjYl90IHNvdXJjZSwgQ29tcGxleEludGVydmFsRmllbGRFbGVtZW50IHRlbXBsYXRl KSBub2V4Y2VwdDoKKytjZGVmIENvbXBsZXhJbnRlcnZhbEZpZWxkRWxlbWVudCBfdG9fQ0lGKGFj Yl90IHNvdXJjZSwgQ29tcGxleEludGVydmFsRmllbGRFbGVtZW50IHRlbXBsYXRlKToKKyAgICAg Y2RlZiBDb21wbGV4SW50ZXJ2YWxGaWVsZEVsZW1lbnQgcmVzdWx0CisgICAgIHJlc3VsdCA9IHRl bXBsYXRlLl9uZXcoKQorICAgICBhY2JfdG9fQ29tcGxleEludGVydmFsRmllbGRFbGVtZW50KAor ICAgICAgICAgcmVzdWx0LCBzb3VyY2UpCisgICAgIHJldHVybiByZXN1bHQKKyAKKy1jZGVmIE1h dHJpeF9nZW5lcmljX2RlbnNlIGFjYl9tYXRfdG9fbWF0cml4KGFjYl9tYXRfdCBzb3VyY2UsIFBh cmVudCBDSUYpIG5vZXhjZXB0OgorK2NkZWYgTWF0cml4X2dlbmVyaWNfZGVuc2UgYWNiX21hdF90 b19tYXRyaXgoYWNiX21hdF90IHNvdXJjZSwgUGFyZW50IENJRik6CisgICAgICIiIgorICAgICBD b252ZXJ0IGFuIGBgYWNiX21hdF90YGAgdG8gYSBtYXRyaXggY29udGFpbmluZyA6Y2xhc3M6YENv bXBsZXhJbnRlcnZhbEZpZWxkRWxlbWVudGAuCisgCitAQCAtMTU4LDcgKzE1OCw3IEBAIGNkZWYg Y2xhc3MgTWF0cml4X2NvbXBsZXhfYmFsbF9kZW5zZShNYXRyaXhfZGVuc2UpOgorICAgICAgICAg IiIiCisgICAgICAgICBhY2JfbWF0X2NsZWFyKHNlbGYudmFsdWUpCisgCistICAgIGNkZWYgTWF0 cml4X2NvbXBsZXhfYmFsbF9kZW5zZSBfbmV3KHNlbGYsIFB5X3NzaXplX3QgbnJvd3MsIFB5X3Nz aXplX3QgbmNvbHMpIG5vZXhjZXB0OgorKyAgICBjZGVmIE1hdHJpeF9jb21wbGV4X2JhbGxfZGVu c2UgX25ldyhzZWxmLCBQeV9zc2l6ZV90IG5yb3dzLCBQeV9zc2l6ZV90IG5jb2xzKToKKyAgICAg ICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBhIG5ldyBtYXRyaXggb3ZlciB0aGUgc2FtZSBiYXNl IHJpbmcuCisgICAgICAgICAiIiIKK0BAIC0yNTIsNyArMjUyLDcgQEAgY2RlZiBjbGFzcyBNYXRy aXhfY29tcGxleF9iYWxsX2RlbnNlKE1hdHJpeF9kZW5zZSk6CisgICAgICAgICAgICAgeiA9IDxD b21wbGV4QmFsbD5zZS5lbnRyeQorICAgICAgICAgICAgIGFjYl9zZXQoYWNiX21hdF9lbnRyeShz ZWxmLnZhbHVlLCBzZS5pLCBzZS5qKSwgei52YWx1ZSkKKyAKKy0gICAgY2RlZiBzZXRfdW5zYWZl KHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqLCBvYmplY3QgeCkgbm9leGNlcHQ6Cisr ICAgIGNkZWYgc2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3Qgaiwgb2Jq ZWN0IHgpOgorICAgICAgICAgIiIiCisgICAgICAgICBTZXQgcG9zaXRpb24gYGBpYGAsIGBgamBg IG9mIHRoaXMgbWF0cml4IHRvIGBgeGBgLgorIAorQEAgLTI3OCw3ICsyNzgsNyBAQCBjZGVmIGNs YXNzIE1hdHJpeF9jb21wbGV4X2JhbGxfZGVuc2UoTWF0cml4X2RlbnNlKToKKyAgICAgICAgICIi IgorICAgICAgICAgYWNiX3NldChhY2JfbWF0X2VudHJ5KHNlbGYudmFsdWUsIGksIGopLCAoPENv bXBsZXhCYWxsPiB4KS52YWx1ZSkKKyAKKy0gICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3Nz aXplX3QgaSwgUHlfc3NpemVfdCBqKSBub2V4Y2VwdDoKKysgICAgY2RlZiBnZXRfdW5zYWZlKHNl bGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqKToKKyAgICAgICAgICIiIgorICAgICAgICAg UmV0dXJuIGBgKGksIGopYGAgZW50cnkgb2YgdGhpcyBtYXRyaXggYXMgYSBuZXcgQ29tcGxleEJh bGwuCisgCitAQCAtMzA3LDcgKzMwNyw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X2NvbXBsZXhfYmFs bF9kZW5zZShNYXRyaXhfZGVuc2UpOgorICAgICAgICAgYWNiX3NldCh6LnZhbHVlLCBhY2JfbWF0 X2VudHJ5KHNlbGYudmFsdWUsIGksIGopKQorICAgICAgICAgcmV0dXJuIHoKKyAKKy0gICAgY3Bk ZWYgX3JpY2hjbXBfKGxlZnQsIHJpZ2h0LCBpbnQgb3ApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBf cmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCk6CisgICAgICAgICByIiIiCisgICAgICAgICBF WEFNUExFUzo6CisgCitAQCAtNDAxLDcgKzQwMSw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X2NvbXBs ZXhfYmFsbF9kZW5zZShNYXRyaXhfZGVuc2UpOgorICAgICAgICAgc2lnX29mZigpCisgICAgICAg ICByZXR1cm4gcmVzCisgCistICAgIGNwZGVmIF9hZGRfKHNlbGYsIG90aGVyKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgX2FkZF8oc2VsZiwgb3RoZXIpOgorICAgICAgICAgciIiIgorICAgICAgICAg VEVTVFM6OgorIAorQEAgLTQxNCw3ICs0MTQsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9jb21wbGV4 X2JhbGxfZGVuc2UoTWF0cml4X2RlbnNlKToKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAg cmV0dXJuIHJlcworIAorLSAgICBjcGRlZiBfc3ViXyhzZWxmLCBvdGhlcikgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIF9zdWJfKHNlbGYsIG90aGVyKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFRF U1RTOjoKKyAKK0BAIC00MjcsNyArNDI3LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfY29tcGxleF9i YWxsX2RlbnNlKE1hdHJpeF9kZW5zZSk6CisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJl dHVybiByZXMKKyAKKy0gICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgYSkgbm9leGNlcHQ6 CisrICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IGEpOgorICAgICAgICAgciIiIgorICAg ICAgICAgVEVTVFM6OgorIAorQEAgLTQ0MCw3ICs0NDAsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9j b21wbGV4X2JhbGxfZGVuc2UoTWF0cml4X2RlbnNlKToKKyAgICAgICAgIHNpZ19vZmYoKQorICAg ICAgICAgcmV0dXJuIHJlcworIAorLSAgICBjcGRlZiBfcm11bF8oc2VsZiwgRWxlbWVudCBhKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgX3JtdWxfKHNlbGYsIEVsZW1lbnQgYSk6CisgICAgICAgICBy IiIiCisgICAgICAgICBURVNUUzo6CisgCitAQCAtNDQ5LDcgKzQ0OSw3IEBAIGNkZWYgY2xhc3Mg TWF0cml4X2NvbXBsZXhfYmFsbF9kZW5zZShNYXRyaXhfZGVuc2UpOgorICAgICAgICAgIiIiCisg ICAgICAgICByZXR1cm4gc2VsZi5fbG11bF8oYSkKKyAKKy0gICAgY2RlZiBfbWF0cml4X3RpbWVz X21hdHJpeF8oc2VsZiwgTWF0cml4IG90aGVyKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfbWF0cml4 X3RpbWVzX21hdHJpeF8oc2VsZiwgTWF0cml4IG90aGVyKToKKyAgICAgICAgIHIiIiIKKyAgICAg ICAgIFRFU1RTOjoKKyAKK0BAIC00NjIsNyArNDYyLDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfY29t cGxleF9iYWxsX2RlbnNlKE1hdHJpeF9kZW5zZSk6CisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAg ICAgIHJldHVybiByZXMKKyAKKy0gICAgY3BkZWYgX3Bvd19pbnQoc2VsZiwgbikgbm9leGNlcHQ6 CisrICAgIGNwZGVmIF9wb3dfaW50KHNlbGYsIG4pOgorICAgICAgICAgciIiIgorICAgICAgICAg UmV0dXJuIHRoZSBgYG5gYC10aCBwb3dlciBvZiB0aGlzIG1hdHJpeC4KKyAKK0BAIC05NjEsNyAr OTYxLDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfY29tcGxleF9iYWxsX2RlbnNlKE1hdHJpeF9kZW5z ZSk6CisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKKy1jZGVmIF9h Y2JfdmVjX3RvX2xpc3QoYWNiX3B0ciB2ZWMsIGxvbmcgbiwgUGFyZW50IHBhcmVudCkgbm9leGNl cHQ6CisrY2RlZiBfYWNiX3ZlY190b19saXN0KGFjYl9wdHIgdmVjLCBsb25nIG4sIFBhcmVudCBw YXJlbnQpOgorICAgICBjZGVmIENvbXBsZXhCYWxsIGIKKyAgICAgcmVzID0gW10KKyAgICAgZm9y IGkgaW4gcmFuZ2Uobik6CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9jeWNs b19kZW5zZS5weGQgYi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2N5Y2xvX2RlbnNlLnB4ZAoraW5k ZXggZDZjODcxMWY4NjIuLjEzZjcyMzg5Y2Y1IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0cml4 L21hdHJpeF9jeWNsb19kZW5zZS5weGQKKysrKyBiL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfY3lj bG9fZGVuc2UucHhkCitAQCAtMTIsNSArMTIsNSBAQCBjZGVmIGNsYXNzIE1hdHJpeF9jeWNsb19k ZW5zZShNYXRyaXhfZGVuc2UpOgorICAgICBjZGVmIGludCBfbgorIAorICAgICBjZGVmIF9yYW5k b21pemVfcmF0aW9uYWxfY29sdW1uX3Vuc2FmZShNYXRyaXhfY3ljbG9fZGVuc2Ugc2VsZiwKKy0g ICAgICAgIFB5X3NzaXplX3QgY29sLCBtcHpfdCBudW1wMSwgbXB6X3QgZGVucDEsIGRpc3RyaWJ1 dGlvbj0/KSBub2V4Y2VwdAorKyAgICAgICAgUHlfc3NpemVfdCBjb2wsIG1wel90IG51bXAxLCBt cHpfdCBkZW5wMSwgZGlzdHJpYnV0aW9uPT8pCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWF0 cml4L21hdHJpeF9jeWNsb19kZW5zZS5weXggYi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2N5Y2xv X2RlbnNlLnB5eAoraW5kZXggYWJjYTZhNDUyNGQuLjhiZmZiYjkwNWQ4IDEwMDY0NAorLS0tIGEv c3JjL3NhZ2UvbWF0cml4L21hdHJpeF9jeWNsb19kZW5zZS5weXgKKysrKyBiL3NyYy9zYWdlL21h dHJpeC9tYXRyaXhfY3ljbG9fZGVuc2UucHl4CitAQCAtMTU5LDcgKzE1OSw3IEBAIGNkZWYgY2xh c3MgTWF0cml4X2N5Y2xvX2RlbnNlKE1hdHJpeF9kZW5zZSk6CisgICAgICAgICBRUW1hdCA9IE1h dHJpeF9yYXRpb25hbF9kZW5zZShRUXNwYWNlLCBMLCBGYWxzZSwgRmFsc2UpCisgICAgICAgICBz ZWxmLl9tYXRyaXggPSBRUW1hdC50cmFuc3Bvc2UoKQorIAorLSAgICBjZGVmIHNldF91bnNhZmUo c2VsZiwgUHlfc3NpemVfdCBpLCBQeV9zc2l6ZV90IGosIHZhbHVlKSBub2V4Y2VwdDoKKysgICAg Y2RlZiBzZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqLCB2YWx1ZSk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIFNldCB0aGUgaWotdGggZW50cnkgb2Ygc2VsZi4KKyAK K0BAIC0yODYsNyArMjg2LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfY3ljbG9fZGVuc2UoTWF0cml4 X2RlbnNlKToKKyAgICAgICAgIG1wel9jbGVhcihudW1lcikKKyAgICAgICAgIG1wel9jbGVhcihk ZW5vbSkKKyAKKy0gICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3Np emVfdCBqKSBub2V4Y2VwdDoKKysgICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3Qg aSwgUHlfc3NpemVfdCBqKToKKyAgICAgICAgICIiIgorICAgICAgICAgR2V0IHRoZSBpai10aCBv ZiBzZWxmLgorIAorQEAgLTQ4OCw3ICs0ODgsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9jeWNsb19k ZW5zZShNYXRyaXhfZGVuc2UpOgorICAgICAjICAgKiBfZGljdCAtLSBzcGFyc2UgZGljdGlvbmFy eSBvZiB1bmRlcmx5aW5nIGVsZW1lbnRzIChuZWVkIG5vdCBiZSBhIGNvcHkpCisgICAgICMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworIAorLSAgICBjcGRlZiBfYWRkXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0 dXJuIHRoZSBzdW0gb2YgdHdvIGRlbnNlIGN5Y2xvdG9taWMgbWF0cmljZXMuCisgCitAQCAtNTE2 LDcgKzUxNiw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X2N5Y2xvX2RlbnNlKE1hdHJpeF9kZW5zZSk6 CisgICAgICAgICBBLl9tYXRyaXggPSBzZWxmLl9tYXRyaXggKyAoPE1hdHJpeF9jeWNsb19kZW5z ZT5yaWdodCkuX21hdHJpeAorICAgICAgICAgcmV0dXJuIEEKKyAKKy0gICAgY3BkZWYgX3N1Yl8o c2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodCk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgZGlmZmVyZW5jZSBvZiB0d28gZGVuc2Ug Y3ljbG90b21pYyBtYXRyaWNlcy4KKyAKK0BAIC01NDMsNyArNTQzLDcgQEAgY2RlZiBjbGFzcyBN YXRyaXhfY3ljbG9fZGVuc2UoTWF0cml4X2RlbnNlKToKKyAgICAgICAgIEEuX21hdHJpeCA9IHNl bGYuX21hdHJpeCAtICg8TWF0cml4X2N5Y2xvX2RlbnNlPnJpZ2h0KS5fbWF0cml4CisgICAgICAg ICByZXR1cm4gQQorIAorLSAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCByaWdodCkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IHJpZ2h0KToKKyAgICAgICAg ICIiIgorICAgICAgICAgTXVsdGlwbHkgYSBkZW5zZSBjeWNsb3RvbWljIG1hdHJpeCBieSBhIHNj YWxhci4KKyAKK0BAIC01ODQsNyArNTg0LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfY3ljbG9fZGVu c2UoTWF0cml4X2RlbnNlKToKKyAgICAgICAgICAgICBBLl9tYXRyaXggPSBUICogc2VsZi5fbWF0 cml4CisgICAgICAgICByZXR1cm4gQQorIAorLSAgICBjZGVmIF9tYXRyaXhfdGltZXNfbWF0cml4 XyhzZWxmLCBiYXNlTWF0cml4IHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY2RlZiBfbWF0cml4X3Rp bWVzX21hdHJpeF8oc2VsZiwgYmFzZU1hdHJpeCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIFJldHVybiB0aGUgcHJvZHVjdCBvZiB0d28gY3ljbG90b21pYyBkZW5zZSBtYXRyaWNlcy4K KyAKK0BAIC03MTksNyArNzE5LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfY3ljbG9fZGVuc2UoTWF0 cml4X2RlbnNlKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIGhhc2goc2VsZi5fbWF0 cml4KQorIAorLSAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgcmlnaHQsIGludCBvcCkgbm9leGNl cHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCByaWdodCwgaW50IG9wKToKKyAgICAgICAg ICIiIgorICAgICAgICAgSW1wbGVtZW50IGNvbXBhcmlzb24gb2YgdHdvIGN5Y2xvdG9taWMgbWF0 cmljZXMgd2l0aAorICAgICAgICAgaWRlbnRpY2FsIHBhcmVudHMuCitAQCAtOTc3LDcgKzk3Nyw3 IEBAIGNkZWYgY2xhc3MgTWF0cml4X2N5Y2xvX2RlbnNlKE1hdHJpeF9kZW5zZSk6CisgICAgICAg ICByZXR1cm4gaHQKKyAKKyAgICAgY2RlZiBfcmFuZG9taXplX3JhdGlvbmFsX2NvbHVtbl91bnNh ZmUoTWF0cml4X2N5Y2xvX2RlbnNlIHNlbGYsCistICAgICAgICBQeV9zc2l6ZV90IGNvbCwgbXB6 X3QgbnVtcDEsIG1wel90IGRlbnAxLCBkaXN0cmlidXRpb249Tm9uZSkgbm9leGNlcHQ6CisrICAg ICAgICBQeV9zc2l6ZV90IGNvbCwgbXB6X3QgbnVtcDEsIG1wel90IGRlbnAxLCBkaXN0cmlidXRp b249Tm9uZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJhbmRvbWl6ZXMgYWxsIGVudHJpZXMg aW4gY29sdW1uIGBgY29sYGAuICBUaGlzIGlzIGEgaGVscGVyIG1ldGhvZAorICAgICAgICAgdXNl ZCBpbiB0aGUgaW1wbGVtZW50YXRpb24gb2YgZGVuc2UgbWF0cmljZXMgb3ZlciBjeWNsb3RvbWlj IGZpZWxkcy4KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2RlbnNlLnB5eCBi L3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfZGVuc2UucHl4CitpbmRleCBiMDRmYzcyNDhhZi4uYTk1 NGRkZTM5ZDIgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2RlbnNlLnB5eAor KysrIGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9kZW5zZS5weXgKK0BAIC01Myw3ICs1Myw3IEBA IGNkZWYgY2xhc3MgTWF0cml4X2RlbnNlKG1hdHJpeC5NYXRyaXgpOgorICAgICAgICAgZWxzZToK KyAgICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoInVua25vd24gbWF0cml4IHZlcnNpb24g KD0lcykiICUgdmVyc2lvbikKKyAKKy0gICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIHJpZ2h0LCBp bnQgb3ApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgcmlnaHQsIGludCBv cCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK2RpZmYgLS1naXQgYS9z cmMvc2FnZS9tYXRyaXgvbWF0cml4X2RvdWJsZV9kZW5zZS5weXggYi9zcmMvc2FnZS9tYXRyaXgv bWF0cml4X2RvdWJsZV9kZW5zZS5weXgKK2luZGV4IGVkZTA2ZjA3ZjdmLi4xNjBkY2M0ZGNkOSAx MDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfZG91YmxlX2RlbnNlLnB5eAorKysr IGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9kb3VibGVfZGVuc2UucHl4CitAQCAtMTQ2LDcgKzE0 Niw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X2RvdWJsZV9kZW5zZShNYXRyaXhfbnVtcHlfZGVuc2Up OgorICAgICAjIExFVkVMIDIgZnVuY3Rpb25hbGl0eQorICAgICAjICAgKiBkZWYgX3BpY2tsZQor ICAgICAjICAgKiBkZWYgX3VucGlja2xlCistICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisg ICAgICAgICBBZGQgdHdvIG1hdHJpY2VzIHRvZ2V0aGVyLgorIAorQEAgLTE2OSw3ICsxNjksNyBA QCBjZGVmIGNsYXNzIE1hdHJpeF9kb3VibGVfZGVuc2UoTWF0cml4X251bXB5X2RlbnNlKToKKyAg ICAgICAgIE0uX21hdHJpeF9udW1weSA9IF9sZWZ0Ll9tYXRyaXhfbnVtcHkgKyBfcmlnaHQuX21h dHJpeF9udW1weQorICAgICAgICAgcmV0dXJuIE0KKyAKKy0gICAgY3BkZWYgX3N1Yl8oc2VsZiwg cmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodCk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIFJldHVybiBzZWxmIC0gcmlnaHQKKyAKK0BAIC0yMjAsNyArMjIwLDcg QEAgY2RlZiBjbGFzcyBNYXRyaXhfZG91YmxlX2RlbnNlKE1hdHJpeF9udW1weV9kZW5zZSk6Cisg ICAgICMgZGVmIF9waWNrbGUoc2VsZik6ICAgICAgICAgICAgICAgICAgICAgICAgI3Vuc3VyZSBo b3cgdG8gaW1wbGVtZW50CisgICAgICMgZGVmIF91bnBpY2tsZShzZWxmLCBkYXRhLCBpbnQgdmVy c2lvbik6ICAgIyB1c2UgdmVyc2lvbiA+PSAwICN1bnN1cmUgaG93IHRvIGltcGxlbWVudAorICAg ICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCistICAgIGNkZWYgc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5NYXRyaXgg X21hdHJpeF90aW1lc19tYXRyaXhfKHNlbGYsIHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuTWF0cml4 IHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY2RlZiBzYWdlLnN0cnVjdHVyZS5lbGVtZW50Lk1hdHJp eCBfbWF0cml4X3RpbWVzX21hdHJpeF8oc2VsZiwgc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5NYXRy aXggcmlnaHQpOgorICAgICAgICAgciIiIgorICAgICAgICAgTXVsdGlwbHkgYGBzZWxmICogcmln aHRgYCBhcyBtYXRyaWNlcy4KKyAKK0BAIC0zNTg4LDcgKzM1ODgsNyBAQCBjZGVmIGNsYXNzIE1h dHJpeF9kb3VibGVfZGVuc2UoTWF0cml4X251bXB5X2RlbnNlKToKKyAgICAgICAgICAgICBwb3Nk ZWYgPSBzZWxmLmZldGNoKGNhY2hlX3N0cikKKyAgICAgICAgIHJldHVybiBwb3NkZWYKKyAKKy0g ICAgY2RlZiBfdmVjdG9yX3RpbWVzX21hdHJpeF8oc2VsZixWZWN0b3Igdikgbm9leGNlcHQ6Cisr ICAgIGNkZWYgX3ZlY3Rvcl90aW1lc19tYXRyaXhfKHNlbGYsVmVjdG9yIHYpOgorICAgICAgICAg aWYgc2VsZi5fbnJvd3MgPT0gMCBvciBzZWxmLl9uY29scyA9PSAwOgorICAgICAgICAgICAgIHJl dHVybiBzZWxmLnJvd19hbWJpZW50X21vZHVsZSgpLnplcm9fdmVjdG9yKCkKKyAgICAgICAgIGds b2JhbCBudW1weQorQEAgLTM2MDEsNyArMzYwMSw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X2RvdWJs ZV9kZW5zZShNYXRyaXhfbnVtcHlfZGVuc2UpOgorICAgICAgICAgYW5zID0gbnVtcHkuZG90KHZf bnVtcHksc2VsZi5fbWF0cml4X251bXB5KQorICAgICAgICAgcmV0dXJuIE0oYW5zKQorIAorLSAg ICBjZGVmIF9tYXRyaXhfdGltZXNfdmVjdG9yXyhzZWxmLFZlY3RvciB2KSBub2V4Y2VwdDoKKysg ICAgY2RlZiBfbWF0cml4X3RpbWVzX3ZlY3Rvcl8oc2VsZixWZWN0b3Igdik6CisgICAgICAgICBp ZiBzZWxmLl9ucm93cyA9PSAwIG9yIHNlbGYuX25jb2xzID09IDA6CisgICAgICAgICAgICAgcmV0 dXJuIHNlbGYuY29sdW1uX2FtYmllbnRfbW9kdWxlKCkuemVyb192ZWN0b3IoKQorIAorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfZ2FwLnB4ZCBiL3NyYy9zYWdlL21hdHJpeC9t YXRyaXhfZ2FwLnB4ZAoraW5kZXggZGE4ZmU3ZTEyNzcuLmYzNzhhZGJmYzJhIDEwMDY0NAorLS0t IGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9nYXAucHhkCisrKysgYi9zcmMvc2FnZS9tYXRyaXgv bWF0cml4X2dhcC5weGQKK0BAIC01LDUgKzUsNSBAQCBmcm9tIHNhZ2UubGlicy5nYXAuZWxlbWVu dCBjaW1wb3J0IEdhcEVsZW1lbnQKKyBjZGVmIGNsYXNzIE1hdHJpeF9nYXAoTWF0cml4X2RlbnNl KToKKyAgICAgY2RlZiBHYXBFbGVtZW50IF9saWJnYXAKKyAKKy0gICAgY3BkZWYgR2FwRWxlbWVu dCBnYXAoc2VsZikgbm9leGNlcHQKKy0gICAgY2RlZiBNYXRyaXhfZ2FwIF9uZXcoc2VsZiwgUHlf c3NpemVfdCBucm93cywgUHlfc3NpemVfdCBuY29scykgbm9leGNlcHQKKysgICAgY3BkZWYgR2Fw RWxlbWVudCBnYXAoc2VsZikKKysgICAgY2RlZiBNYXRyaXhfZ2FwIF9uZXcoc2VsZiwgUHlfc3Np emVfdCBucm93cywgUHlfc3NpemVfdCBuY29scykKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRy aXgvbWF0cml4X2dhcC5weXggYi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2dhcC5weXgKK2luZGV4 IDllMWQxMDY2YTQ4Li5iYjQyM2VlMDNkNSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJpeC9t YXRyaXhfZ2FwLnB5eAorKysrIGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9nYXAucHl4CitAQCAt MTI1LDcgKzEyNSw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X2dhcChNYXRyaXhfZGVuc2UpOgorICAg ICAgICAgICAgIG1hdC5hcHBlbmQocm93KQorICAgICAgICAgc2VsZi5fbGliZ2FwID0gbGliZ2Fw KG1hdCkKKyAKKy0gICAgY2RlZiBNYXRyaXhfZ2FwIF9uZXcoc2VsZiwgUHlfc3NpemVfdCBucm93 cywgUHlfc3NpemVfdCBuY29scykgbm9leGNlcHQ6CisrICAgIGNkZWYgTWF0cml4X2dhcCBfbmV3 KHNlbGYsIFB5X3NzaXplX3QgbnJvd3MsIFB5X3NzaXplX3QgbmNvbHMpOgorICAgICAgICAgaWYg bnJvd3MgPT0gc2VsZi5fbnJvd3MgYW5kIG5jb2xzID09IHNlbGYuX25jb2xzOgorICAgICAgICAg ICAgIFAgPSBzZWxmLl9wYXJlbnQKKyAgICAgICAgIGVsc2U6CitAQCAtMTY2LDcgKzE2Niw3IEBA IGNkZWYgY2xhc3MgTWF0cml4X2dhcChNYXRyaXhfZGVuc2UpOgorICAgICAgICAgIiIiCisgICAg ICAgICByZXR1cm4gc2VsZi5fcGFyZW50LCAoc2VsZi5saXN0KCksKQorIAorLSAgICBjcGRlZiBH YXBFbGVtZW50IGdhcChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgR2FwRWxlbWVudCBnYXAo c2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHVuZGVybHlpbmcgZ2Fw IG9iamVjdC4KKyAKK0BAIC0xODQsMTAgKzE4NCwxMCBAQCBjZGVmIGNsYXNzIE1hdHJpeF9nYXAo TWF0cml4X2RlbnNlKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX2xpYmdh cAorIAorLSAgICBjZGVmIGdldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9zc2l6ZV90 IGopIG5vZXhjZXB0OgorKyAgICBjZGVmIGdldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpLCBQ eV9zc2l6ZV90IGopOgorICAgICAgICAgcmV0dXJuIHNlbGYuX2Jhc2VfcmluZyhzZWxmLl9saWJn YXBbaSxqXSkKKyAKKy0gICAgY2RlZiBzZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSwgUHlf c3NpemVfdCBqLCBvYmplY3QgeCkgbm9leGNlcHQ6CisrICAgIGNkZWYgc2V0X3Vuc2FmZShzZWxm LCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3Qgaiwgb2JqZWN0IHgpOgorICAgICAgICAgciIiIgor ICAgICAgICAgVEVTVFM6OgorIAorQEAgLTIwNCw3ICsyMDQsNyBAQCBjZGVmIGNsYXNzIE1hdHJp eF9nYXAoTWF0cml4X2RlbnNlKToKKyAgICAgICAgICIiIgorICAgICAgICAgc2VsZi5fbGliZ2Fw W2ksal0gPSB4CisgCistICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCBvdGhlciwgaW50IG9wKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIG90aGVyLCBpbnQgb3ApOgorICAg ICAgICAgciIiIgorICAgICAgICAgQ29tcGFyZSBgYHNlbGZgYCBhbmQgYGByaWdodGBgLgorIAor QEAgLTI4NCw3ICsyODQsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9nYXAoTWF0cml4X2RlbnNlKToK KyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmV0dXJuIE1hdHJpeF9kZW5zZS5fX2ludmVy dF9fKHNlbGYpCisgCistICAgIGNwZGVmIF9hZGRfKGxlZnQsIHJpZ2h0KSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgX2FkZF8obGVmdCwgcmlnaHQpOgorICAgICAgICAgciIiIgorICAgICAgICAgVEVT VFM6OgorIAorQEAgLTI5Nyw3ICsyOTcsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9nYXAoTWF0cml4 X2RlbnNlKToKKyAgICAgICAgIGFucy5fbGliZ2FwID0gbGVmdC5fbGliZ2FwICsgKDxNYXRyaXhf Z2FwPiByaWdodCkuX2xpYmdhcAorICAgICAgICAgcmV0dXJuIGFucworIAorLSAgICBjcGRlZiBf c3ViXyhsZWZ0LCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9zdWJfKGxlZnQsIHJpZ2h0 KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFRFU1RTOjoKKyAKK0BAIC0zMTAsNyArMzEwLDcg QEAgY2RlZiBjbGFzcyBNYXRyaXhfZ2FwKE1hdHJpeF9kZW5zZSk6CisgICAgICAgICBhbnMuX2xp YmdhcCA9IGxlZnQuX2xpYmdhcCAtICg8TWF0cml4X2dhcD4gcmlnaHQpLl9saWJnYXAKKyAgICAg ICAgIHJldHVybiBhbnMKKyAKKy0gICAgY2RlZiBNYXRyaXggX21hdHJpeF90aW1lc19tYXRyaXhf KGxlZnQsIE1hdHJpeCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNkZWYgTWF0cml4IF9tYXRyaXhf dGltZXNfbWF0cml4XyhsZWZ0LCBNYXRyaXggcmlnaHQpOgorICAgICAgICAgciIiIgorICAgICAg ICAgVEVTVFM6OgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfZ2VuZXJp Y19kZW5zZS5weGQgYi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2dlbmVyaWNfZGVuc2UucHhkCitp bmRleCA4MzllZmQyMjE1OS4uYmEzNzQyOGNiMWYgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tYXRy aXgvbWF0cml4X2dlbmVyaWNfZGVuc2UucHhkCisrKysgYi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4 X2dlbmVyaWNfZGVuc2UucHhkCitAQCAtMyw0ICszLDQgQEAgZnJvbSBzYWdlLm1hdHJpeC5tYXRy aXhfZGVuc2UgY2ltcG9ydCBNYXRyaXhfZGVuc2UKKyAKKyBjZGVmIGNsYXNzIE1hdHJpeF9nZW5l cmljX2RlbnNlKE1hdHJpeF9kZW5zZSk6CisgICAgIGNkZWYgbGlzdCBfZW50cmllcworLSAgICBj ZGVmIE1hdHJpeF9nZW5lcmljX2RlbnNlIF9uZXcoc2VsZiwgUHlfc3NpemVfdCBucm93cywgUHlf c3NpemVfdCBuY29scykgbm9leGNlcHQKKysgICAgY2RlZiBNYXRyaXhfZ2VuZXJpY19kZW5zZSBf bmV3KHNlbGYsIFB5X3NzaXplX3QgbnJvd3MsIFB5X3NzaXplX3QgbmNvbHMpCitkaWZmIC0tZ2l0 IGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9nZW5lcmljX2RlbnNlLnB5eCBiL3NyYy9zYWdlL21h dHJpeC9tYXRyaXhfZ2VuZXJpY19kZW5zZS5weXgKK2luZGV4IDk2MDk0ZjU2NDZiLi40NDExMzg1 NjBiMCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfZ2VuZXJpY19kZW5zZS5w eXgKKysrKyBiL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfZ2VuZXJpY19kZW5zZS5weXgKK0BAIC04 MSw3ICs4MSw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X2dlbmVyaWNfZGVuc2UobWF0cml4X2RlbnNl Lk1hdHJpeF9kZW5zZSk6CisgICAgICAgICBtYSA9IE1hdHJpeEFyZ3NfaW5pdChwYXJlbnQsIGVu dHJpZXMpCisgICAgICAgICBzZWxmLl9lbnRyaWVzID0gbWEubGlzdChjb2VyY2UpCisgCistICAg IGNkZWYgTWF0cml4X2dlbmVyaWNfZGVuc2UgX25ldyhzZWxmLCBQeV9zc2l6ZV90IG5yb3dzLCBQ eV9zc2l6ZV90IG5jb2xzKSBub2V4Y2VwdDoKKysgICAgY2RlZiBNYXRyaXhfZ2VuZXJpY19kZW5z ZSBfbmV3KHNlbGYsIFB5X3NzaXplX3QgbnJvd3MsIFB5X3NzaXplX3QgbmNvbHMpOgorICAgICAg ICAgciIiIgorICAgICAgICAgUmV0dXJuIGEgbmV3IGRlbnNlIG1hdHJpeCB3aXRoIG5vIGVudHJp ZXMgc2V0LgorICAgICAgICAgIiIiCitAQCAtOTMsMTAgKzkzLDEwIEBAIGNkZWYgY2xhc3MgTWF0 cml4X2dlbmVyaWNfZGVuc2UobWF0cml4X2RlbnNlLk1hdHJpeF9kZW5zZSk6CisgICAgICAgICBj ZGVmIHR5cGUgdCA9IDx0eXBlPnR5cGUoc2VsZikKKyAgICAgICAgIHJldHVybiA8TWF0cml4X2dl bmVyaWNfZGVuc2U+dC5fX25ld19fKHQsIE1TKQorIAorLSAgICBjZGVmIHNldF91bnNhZmUoc2Vs ZiwgUHlfc3NpemVfdCBpLCBQeV9zc2l6ZV90IGosIHZhbHVlKSBub2V4Y2VwdDoKKysgICAgY2Rl ZiBzZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqLCB2YWx1ZSk6Cisg ICAgICAgICBzZWxmLl9lbnRyaWVzW2kqc2VsZi5fbmNvbHMgKyBqXSA9IHZhbHVlCisgCistICAg IGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3Qgaikgbm9leGNl cHQ6CisrICAgIGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3Qg aik6CisgICAgICAgICByZXR1cm4gc2VsZi5fZW50cmllc1tpKnNlbGYuX25jb2xzICsgal0KKyAK KyAKK0BAIC0yMDksNyArMjA5LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfZ2VuZXJpY19kZW5zZSht YXRyaXhfZGVuc2UuTWF0cml4X2RlbnNlKToKKyAKKyAgICAgQGN5dGhvbi5ib3VuZHNjaGVjayhG YWxzZSkKKyAgICAgQGN5dGhvbi53cmFwYXJvdW5kKEZhbHNlKQorLSAgICBjcGRlZiBfYWRkXyhz ZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KToKKyAg ICAgICAgICIiIgorICAgICAgICAgQWRkIHR3byBnZW5lcmljIGRlbnNlIG1hdHJpY2VzIHdpdGgg dGhlIHNhbWUgcGFyZW50LgorIAorQEAgLTIzMyw3ICsyMzMsNyBAQCBjZGVmIGNsYXNzIE1hdHJp eF9nZW5lcmljX2RlbnNlKG1hdHJpeF9kZW5zZS5NYXRyaXhfZGVuc2UpOgorIAorICAgICBAY3l0 aG9uLmJvdW5kc2NoZWNrKEZhbHNlKQorICAgICBAY3l0aG9uLndyYXBhcm91bmQoRmFsc2UpCist ICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3N1Yl8o c2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBTdWJ0cmFjdCB0d28gZ2VuZXJp YyBkZW5zZSBtYXRyaWNlcyB3aXRoIHRoZSBzYW1lIHBhcmVudC4KKyAKK2RpZmYgLS1naXQgYS9z cmMvc2FnZS9tYXRyaXgvbWF0cml4X2dlbmVyaWNfc3BhcnNlLnB5eCBiL3NyYy9zYWdlL21hdHJp eC9tYXRyaXhfZ2VuZXJpY19zcGFyc2UucHl4CitpbmRleCA1OWZmZmUzODhkMi4uZTY4NjFiZTRm YjggMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2dlbmVyaWNfc3BhcnNlLnB5 eAorKysrIGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9nZW5lcmljX3NwYXJzZS5weXgKK0BAIC0x ODcsNyArMTg3LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfZ2VuZXJpY19zcGFyc2UobWF0cml4X3Nw YXJzZS5NYXRyaXhfc3BhcnNlKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIGJvb2wo c2VsZi5fZW50cmllcykKKyAKKy0gICAgY2RlZiBzZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3Qg aSwgUHlfc3NpemVfdCBqLCB2YWx1ZSkgbm9leGNlcHQ6CisrICAgIGNkZWYgc2V0X3Vuc2FmZShz ZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3QgaiwgdmFsdWUpOgorICAgICAgICAgaWYgbm90 IHZhbHVlOgorICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgZGVsIHNlbGYuX2Vu dHJpZXNbKGksaildCitAQCAtMTk2LDcgKzE5Niw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X2dlbmVy aWNfc3BhcnNlKG1hdHJpeF9zcGFyc2UuTWF0cml4X3NwYXJzZSk6CisgICAgICAgICBlbHNlOgor ICAgICAgICAgICAgIHNlbGYuX2VudHJpZXNbKGksaildID0gdmFsdWUKKyAKKy0gICAgY2RlZiBn ZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqKSBub2V4Y2VwdDoKKysg ICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqKToKKyAg ICAgICAgIHJldHVybiBzZWxmLl9lbnRyaWVzLmdldCgoaSxqKSwgc2VsZi5femVybykKKyAKKyAg ICAgY2RlZiBiaW50IGdldF9pc196ZXJvX3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3Nz aXplX3QgaikgZXhjZXB0IC0xOgorQEAgLTI0Nyw3ICsyNDcsNyBAQCBjZGVmIGNsYXNzIE1hdHJp eF9nZW5lcmljX3NwYXJzZShtYXRyaXhfc3BhcnNlLk1hdHJpeF9zcGFyc2UpOgorICAgICAjIHgg ICogX2RpY3QgLS0gY29weSBvZiB0aGUgc3BhcnNlIGRpY3Rpb25hcnkgb2YgdW5kZXJseWluZyBl bGVtZW50cworICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwg X290aGVyKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FkZF8oc2VsZiwgX290aGVyKToKKyAgICAg ICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21h dHJpeC9tYXRyaXhfZ2YyZV9kZW5zZS5weGQgYi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2dmMmVf ZGVuc2UucHhkCitpbmRleCA0ODUyNjZlNTE3Yi4uZGNkMTAxOWYyMzAgMTAwNjQ0CistLS0gYS9z cmMvc2FnZS9tYXRyaXgvbWF0cml4X2dmMmVfZGVuc2UucHhkCisrKysgYi9zcmMvc2FnZS9tYXRy aXgvbWF0cml4X2dmMmVfZGVuc2UucHhkCitAQCAtOSw2ICs5LDYgQEAgY2RlZiBjbGFzcyBNYXRy aXhfZ2YyZV9kZW5zZShNYXRyaXhfZGVuc2UpOgorICAgICBjZGVmIG9iamVjdCBfemVybworICAg ICBjZGVmIG00cmlfd29yZCBfemVyb193b3JkICAjIG00cmlfd29yZCByZXByZXNlbnRhdGlvbiBv ZiBfemVybworIAorLSAgICBjcGRlZiBNYXRyaXhfZ2YyZV9kZW5zZSBfbXVsdGlwbHlfbmV3dG9u X2pvaG4oTWF0cml4X2dmMmVfZGVuc2Ugc2VsZiwgTWF0cml4X2dmMmVfZGVuc2UgcmlnaHQpIG5v ZXhjZXB0CistICAgIGNwZGVmIE1hdHJpeF9nZjJlX2RlbnNlIF9tdWx0aXBseV9rYXJhdHN1YmEo TWF0cml4X2dmMmVfZGVuc2Ugc2VsZiwgTWF0cml4X2dmMmVfZGVuc2UgcmlnaHQpIG5vZXhjZXB0 CistICAgIGNwZGVmIE1hdHJpeF9nZjJlX2RlbnNlIF9tdWx0aXBseV9zdHJhc3NlbihNYXRyaXhf Z2YyZV9kZW5zZSBzZWxmLCBNYXRyaXhfZ2YyZV9kZW5zZSByaWdodCwgY3V0b2ZmPSopIG5vZXhj ZXB0CisrICAgIGNwZGVmIE1hdHJpeF9nZjJlX2RlbnNlIF9tdWx0aXBseV9uZXd0b25fam9obihN YXRyaXhfZ2YyZV9kZW5zZSBzZWxmLCBNYXRyaXhfZ2YyZV9kZW5zZSByaWdodCkKKysgICAgY3Bk ZWYgTWF0cml4X2dmMmVfZGVuc2UgX211bHRpcGx5X2thcmF0c3ViYShNYXRyaXhfZ2YyZV9kZW5z ZSBzZWxmLCBNYXRyaXhfZ2YyZV9kZW5zZSByaWdodCkKKysgICAgY3BkZWYgTWF0cml4X2dmMmVf ZGVuc2UgX211bHRpcGx5X3N0cmFzc2VuKE1hdHJpeF9nZjJlX2RlbnNlIHNlbGYsIE1hdHJpeF9n ZjJlX2RlbnNlIHJpZ2h0LCBjdXRvZmY9KikKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyaXgv bWF0cml4X2dmMmVfZGVuc2UucHl4IGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9nZjJlX2RlbnNl LnB5eAoraW5kZXggZTc3OTY1NjEyZmMuLmEwODk3NzBlZjRjIDEwMDY0NAorLS0tIGEvc3JjL3Nh Z2UvbWF0cml4L21hdHJpeF9nZjJlX2RlbnNlLnB5eAorKysrIGIvc3JjL3NhZ2UvbWF0cml4L21h dHJpeF9nZjJlX2RlbnNlLnB5eAorQEAgLTIzMiw3ICsyMzIsNyBAQCBjZGVmIGNsYXNzIE1hdHJp eF9nZjJlX2RlbnNlKG1hdHJpeF9kZW5zZS5NYXRyaXhfZGVuc2UpOgorICAgICAgICAgICAgIHNl ID0gPFNwYXJzZUVudHJ5PnQKKyAgICAgICAgICAgICBtemVkX3dyaXRlX2VsZW0oc2VsZi5fZW50 cmllcywgc2UuaSwgc2UuaiwgcG9seV90b193b3JkKHNlLmVudHJ5KSkKKyAKKy0gICAgY2RlZiBz ZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqLCB2YWx1ZSkgbm9leGNl cHQ6CisrICAgIGNkZWYgc2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3Qg aiwgdmFsdWUpOgorICAgICAgICAgIiIiCisgICAgICAgICBBW2ksal0gPSB2YWx1ZSB3aXRob3V0 IGJvdW5kIGNoZWNrcworIAorQEAgLTI1OSw3ICsyNTksNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9n ZjJlX2RlbnNlKG1hdHJpeF9kZW5zZS5NYXRyaXhfZGVuc2UpOgorICAgICAgICAgIiIiCisgICAg ICAgICBtemVkX3dyaXRlX2VsZW0oc2VsZi5fZW50cmllcywgaSwgaiwgcG9seV90b193b3JkKHZh bHVlKSkKKyAKKy0gICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3Np emVfdCBqKSBub2V4Y2VwdDoKKysgICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3Qg aSwgUHlfc3NpemVfdCBqKToKKyAgICAgICAgICIiIgorICAgICAgICAgR2V0IEFbaSxqXSB3aXRo b3V0IGJvdW5kIGNoZWNrcy4KKyAKK0BAIC0yOTgsNyArMjk4LDcgQEAgY2RlZiBjbGFzcyBNYXRy aXhfZ2YyZV9kZW5zZShtYXRyaXhfZGVuc2UuTWF0cml4X2RlbnNlKToKKyAgICAgICAgICIiIgor ICAgICAgICAgcmV0dXJuIG16ZWRfcmVhZF9lbGVtKHNlbGYuX2VudHJpZXMsIGksIGopID09IHNl bGYuX3plcm9fd29yZAorIAorLSAgICBjcGRlZiBfYWRkXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6 CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAg UmV0dXJuIEErQgorIAorQEAgLTMyNCw3ICszMjQsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9nZjJl X2RlbnNlKG1hdHJpeF9kZW5zZS5NYXRyaXhfZGVuc2UpOgorIAorICAgICAgICAgcmV0dXJuIEEK KyAKKy0gICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBf c3ViXyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAK K0BAIC0zODUsNyArMzg1LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfZ2YyZV9kZW5zZShtYXRyaXhf ZGVuc2UuTWF0cml4X2RlbnNlKToKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJu IGFucworIAorLSAgICBjZGVmIF9tYXRyaXhfdGltZXNfbWF0cml4XyhzZWxmLCBNYXRyaXggcmln aHQpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9tYXRyaXhfdGltZXNfbWF0cml4XyhzZWxmLCBNYXRy aXggcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gQSpCCisgCitAQCAtNDI4 LDcgKzQyOCw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X2dmMmVfZGVuc2UobWF0cml4X2RlbnNlLk1h dHJpeF9kZW5zZSk6CisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiBhbnMKKyAK Ky0gICAgY3BkZWYgTWF0cml4X2dmMmVfZGVuc2UgX211bHRpcGx5X25ld3Rvbl9qb2huKE1hdHJp eF9nZjJlX2RlbnNlIHNlbGYsIE1hdHJpeF9nZjJlX2RlbnNlIHJpZ2h0KSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgTWF0cml4X2dmMmVfZGVuc2UgX211bHRpcGx5X25ld3Rvbl9qb2huKE1hdHJpeF9n ZjJlX2RlbnNlIHNlbGYsIE1hdHJpeF9nZjJlX2RlbnNlIHJpZ2h0KToKKyAgICAgICAgICIiIgor ICAgICAgICAgUmV0dXJuIEEqQiB1c2luZyBOZXd0b24tSm9obiB0YWJsZXMuCisgCitAQCAtNDkw LDcgKzQ5MCw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X2dmMmVfZGVuc2UobWF0cml4X2RlbnNlLk1h dHJpeF9kZW5zZSk6CisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiBhbnMKKyAK Ky0gICAgY3BkZWYgTWF0cml4X2dmMmVfZGVuc2UgX211bHRpcGx5X2thcmF0c3ViYShNYXRyaXhf Z2YyZV9kZW5zZSBzZWxmLCBNYXRyaXhfZ2YyZV9kZW5zZSByaWdodCkgbm9leGNlcHQ6CisrICAg IGNwZGVmIE1hdHJpeF9nZjJlX2RlbnNlIF9tdWx0aXBseV9rYXJhdHN1YmEoTWF0cml4X2dmMmVf ZGVuc2Ugc2VsZiwgTWF0cml4X2dmMmVfZGVuc2UgcmlnaHQpOgorICAgICAgICAgciIiIgorICAg ICAgICAgTWF0cml4IG11bHRpcGxpY2F0aW9uIHVzaW5nIEthcmF0c3ViYSBvdmVyIHBvbHlub21p YWxzIHdpdGgKKyAgICAgICAgIG1hdHJpeCBjb2VmZmljaWVudHMgb3ZlciBHRigyKS4KK0BAIC01 MzgsNyArNTM4LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfZ2YyZV9kZW5zZShtYXRyaXhfZGVuc2Uu TWF0cml4X2RlbnNlKToKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIGFucwor IAorLSAgICBjcGRlZiBNYXRyaXhfZ2YyZV9kZW5zZSBfbXVsdGlwbHlfc3RyYXNzZW4oTWF0cml4 X2dmMmVfZGVuc2Ugc2VsZiwgTWF0cml4X2dmMmVfZGVuc2UgcmlnaHQsIGN1dG9mZj0wKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgTWF0cml4X2dmMmVfZGVuc2UgX211bHRpcGx5X3N0cmFzc2VuKE1h dHJpeF9nZjJlX2RlbnNlIHNlbGYsIE1hdHJpeF9nZjJlX2RlbnNlIHJpZ2h0LCBjdXRvZmY9MCk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIFdpbm9ncmFkLVN0cmFzc2VuIG1hdHJpeCBtdWx0aXBs aWNhdGlvbiB3aXRoIE5ld3Rvbi1Kb2huCisgICAgICAgICBtdWx0aXBsaWNhdGlvbiBhcyBiYXNl IGNhc2UuCitAQCAtNTkyLDcgKzU5Miw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X2dmMmVfZGVuc2Uo bWF0cml4X2RlbnNlLk1hdHJpeF9kZW5zZSk6CisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAg IHJldHVybiBhbnMKKyAKKy0gICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgcmlnaHQpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCByaWdodCk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIFJldHVybiBgYGEqQmBgIGZvciBgYGFgYCBhbiBlbGVtZW50IG9mIHRo ZSBiYXNlIGZpZWxkLgorIAorQEAgLTYyNSw3ICs2MjUsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9n ZjJlX2RlbnNlKG1hdHJpeF9kZW5zZS5NYXRyaXhfZGVuc2UpOgorICAgICAgICAgIiIiCisgICAg ICAgICByZXR1cm4gc2VsZi5fX2NvcHlfXygpCisgCistICAgIGNwZGVmIF9yaWNoY21wXyhzZWxm LCByaWdodCwgaW50IG9wKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIHJp Z2h0LCBpbnQgb3ApOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAt OTkzLDcgKzk5Myw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X2dmMmVfZGVuc2UobWF0cml4X2RlbnNl Lk1hdHJpeF9kZW5zZSk6CisgCisgICAgICAgICByZXR1cm4gQQorIAorLSAgICBjZGVmIHJlc2Nh bGVfcm93X2Moc2VsZiwgUHlfc3NpemVfdCByb3csIG11bHRpcGxlLCBQeV9zc2l6ZV90IHN0YXJ0 X2NvbCkgbm9leGNlcHQ6CisrICAgIGNkZWYgcmVzY2FsZV9yb3dfYyhzZWxmLCBQeV9zc2l6ZV90 IHJvdywgbXVsdGlwbGUsIFB5X3NzaXplX3Qgc3RhcnRfY29sKToKKyAgICAgICAgICIiIgorICAg ICAgICAgUmV0dXJuIGBgbXVsdGlwbGUgKiBzZWxmW3Jvd11bc3RhcnRfY29sOl1gYAorIAorQEAg LTEwMzMsNyArMTAzMyw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X2dmMmVfZGVuc2UobWF0cml4X2Rl bnNlLk1hdHJpeF9kZW5zZSk6CisgICAgICAgICBjZGVmIG00cmlfd29yZCB4ID0gcG9seV90b193 b3JkKG11bHRpcGxlKQorICAgICAgICAgbXplZF9yZXNjYWxlX3JvdyhzZWxmLl9lbnRyaWVzLCBy b3csIHN0YXJ0X2NvbCwgeCkKKyAKKy0gICAgY2RlZiBhZGRfbXVsdGlwbGVfb2Zfcm93X2Moc2Vs ZiwgUHlfc3NpemVfdCByb3dfdG8sIFB5X3NzaXplX3Qgcm93X2Zyb20sIG11bHRpcGxlLCBQeV9z c2l6ZV90IHN0YXJ0X2NvbCkgbm9leGNlcHQ6CisrICAgIGNkZWYgYWRkX211bHRpcGxlX29mX3Jv d19jKHNlbGYsIFB5X3NzaXplX3Qgcm93X3RvLCBQeV9zc2l6ZV90IHJvd19mcm9tLCBtdWx0aXBs ZSwgUHlfc3NpemVfdCBzdGFydF9jb2wpOgorICAgICAgICAgIiIiCisgICAgICAgICBDb21wdXRl IGBgc2VsZltyb3dfdG9dW3N0YXJ0X2NvbDpdICs9IG11bHRpcGxlICogc2VsZltyb3dfZnJvbV1b c3RhcnRfY29sOl1gYC4KKyAKK0BAIC0xMDY3LDcgKzEwNjcsNyBAQCBjZGVmIGNsYXNzIE1hdHJp eF9nZjJlX2RlbnNlKG1hdHJpeF9kZW5zZS5NYXRyaXhfZGVuc2UpOgorICAgICAgICAgbXplZF9h ZGRfbXVsdGlwbGVfb2Zfcm93KHNlbGYuX2VudHJpZXMsIHJvd190bywgc2VsZi5fZW50cmllcywg cm93X2Zyb20sIHgsIHN0YXJ0X2NvbCkKKyAKKyAKKy0gICAgY2RlZiBzd2FwX3Jvd3NfYyhzZWxm LCBQeV9zc2l6ZV90IHJvdzEsIFB5X3NzaXplX3Qgcm93Mikgbm9leGNlcHQ6CisrICAgIGNkZWYg c3dhcF9yb3dzX2Moc2VsZiwgUHlfc3NpemVfdCByb3cxLCBQeV9zc2l6ZV90IHJvdzIpOgorICAg ICAgICAgIiIiCisgICAgICAgICBTd2FwIHJvd3MgYGByb3cxYGAgYW5kIGBgcm93MmBgLgorIAor QEAgLTEwOTEsNyArMTA5MSw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X2dmMmVfZGVuc2UobWF0cml4 X2RlbnNlLk1hdHJpeF9kZW5zZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIG16ZWRfcm93X3N3 YXAoc2VsZi5fZW50cmllcywgcm93MSwgcm93MikKKyAKKy0gICAgY2RlZiBzd2FwX2NvbHVtbnNf YyhzZWxmLCBQeV9zc2l6ZV90IGNvbDEsIFB5X3NzaXplX3QgY29sMikgbm9leGNlcHQ6CisrICAg IGNkZWYgc3dhcF9jb2x1bW5zX2Moc2VsZiwgUHlfc3NpemVfdCBjb2wxLCBQeV9zc2l6ZV90IGNv bDIpOgorICAgICAgICAgIiIiCisgICAgICAgICBTd2FwIGNvbHVtbnMgYGBjb2wxYGAgYW5kIGBg Y29sMmBgLgorIAorQEAgLTExODgsNyArMTE4OCw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X2dmMmVf ZGVuc2UobWF0cml4X2RlbnNlLk1hdHJpeF9kZW5zZSk6CisgICAgICAgICBBLl9lbnRyaWVzID0g bXplZF9jb25jYXQoQS5fZW50cmllcywgc2VsZi5fZW50cmllcywgcmlnaHQuX2VudHJpZXMpCisg ICAgICAgICByZXR1cm4gQQorIAorLSAgICBjZGVmIF9zdGFja19pbXBsKHNlbGYsIGJvdHRvbSkg bm9leGNlcHQ6CisrICAgIGNkZWYgX3N0YWNrX2ltcGwoc2VsZiwgYm90dG9tKToKKyAgICAgICAg IHIiIiIKKyAgICAgICAgIFN0YWNrIGBgc2VsZmBgIG9uIHRvcCBvZiBgYGJvdHRvbWBgLgorIAor ZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfaW50ZWdlcl9kZW5zZS5weGQgYi9z cmMvc2FnZS9tYXRyaXgvbWF0cml4X2ludGVnZXJfZGVuc2UucHhkCitpbmRleCBkY2M2OWRiNWQ3 Mi4uYzYwYjQ0MjJlOTcgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2ludGVn ZXJfZGVuc2UucHhkCisrKysgYi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2ludGVnZXJfZGVuc2Uu cHhkCitAQCAtMTEsMTEgKzExLDExIEBAIGNkZWYgY2xhc3MgTWF0cml4X2ludGVnZXJfZGVuc2Uo TWF0cml4X2RlbnNlKToKKyAgICAgY2RlZiBmbXB6X21hdF90IF9tYXRyaXgKKyAgICAgY2RlZiBv YmplY3QgX3Bpdm90cworICAgICBjZGVmIGludCBtcHpfaGVpZ2h0KHNlbGYsIG1wel90IGhlaWdo dCkgZXhjZXB0IC0xCistICAgIGNkZWYgX21vZF9pbnRfYyhzZWxmLCBtb2RfaW50IG1vZHVsdXMp IG5vZXhjZXB0CistICAgIGNkZWYgX21vZF90d28oc2VsZikgbm9leGNlcHQKKy0gICAgY2RlZiBf cGlja2xlX3ZlcnNpb24wKHNlbGYpIG5vZXhjZXB0CistICAgIGNkZWYgX3VucGlja2xlX3ZlcnNp b24wKHNlbGYsIGRhdGEpIG5vZXhjZXB0CistICAgIGNwZGVmIF9leHBvcnRfYXNfc3RyaW5nKHNl bGYsIGludCBiYXNlPT8pIG5vZXhjZXB0CisrICAgIGNkZWYgX21vZF9pbnRfYyhzZWxmLCBtb2Rf aW50IG1vZHVsdXMpCisrICAgIGNkZWYgX21vZF90d28oc2VsZikKKysgICAgY2RlZiBfcGlja2xl X3ZlcnNpb24wKHNlbGYpCisrICAgIGNkZWYgX3VucGlja2xlX3ZlcnNpb24wKHNlbGYsIGRhdGEp CisrICAgIGNwZGVmIF9leHBvcnRfYXNfc3RyaW5nKHNlbGYsIGludCBiYXNlPT8pCisgICAgIGNk ZWYgdm9pZCBzZXRfdW5zYWZlX21weihzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3Qgaiwg Y29uc3QgbXB6X3QgdmFsdWUpIG5vZXhjZXB0CisgICAgIGNkZWYgdm9pZCBzZXRfdW5zYWZlX2Rv dWJsZShzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3QgaiwgZG91YmxlIHZhbHVlKSBub2V4 Y2VwdAorICAgICBjZGVmIGlubGluZSB2b2lkIGdldF91bnNhZmVfbXB6KHNlbGYsIFB5X3NzaXpl X3QgaSwgUHlfc3NpemVfdCBqLCBtcHpfdCB2YWx1ZSkgbm9leGNlcHQKK0BAIC0yOCw3ICsyOCw3 IEBAIGNkZWYgY2xhc3MgTWF0cml4X2ludGVnZXJfZGVuc2UoTWF0cml4X2RlbnNlKToKKyAgICAg Y2RlZiBpbnQqIF9obmZfbW9kbl9pbXBsKE1hdHJpeF9pbnRlZ2VyX2RlbnNlIHNlbGYsIHVuc2ln bmVkIGludCBkZXQsCisgICAgICAgICAgICAgUHlfc3NpemVfdCBucm93cywgUHlfc3NpemVfdCBu Y29scykgZXhjZXB0IE5VTEwKKyAKKy0gICAgY2RlZiBNYXRyaXhfaW50ZWdlcl9kZW5zZSBfbmV3 KHNlbGYsIFB5X3NzaXplX3QgbnJvd3MsIFB5X3NzaXplX3QgbmNvbHMpIG5vZXhjZXB0CisrICAg IGNkZWYgTWF0cml4X2ludGVnZXJfZGVuc2UgX25ldyhzZWxmLCBQeV9zc2l6ZV90IG5yb3dzLCBQ eV9zc2l6ZV90IG5jb2xzKQorIAorIAorLWNwZGVmIF9saWZ0X2NydChNYXRyaXhfaW50ZWdlcl9k ZW5zZSBNLCByZXNpZHVlcywgbW9kdWxpPSopIG5vZXhjZXB0CisrY3BkZWYgX2xpZnRfY3J0KE1h dHJpeF9pbnRlZ2VyX2RlbnNlIE0sIHJlc2lkdWVzLCBtb2R1bGk9KikKK2RpZmYgLS1naXQgYS9z cmMvc2FnZS9tYXRyaXgvbWF0cml4X2ludGVnZXJfZGVuc2UucHl4IGIvc3JjL3NhZ2UvbWF0cml4 L21hdHJpeF9pbnRlZ2VyX2RlbnNlLnB5eAoraW5kZXggYjE5N2JhODgyNWUuLjYwOGQzOTUyMzQ0 IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9pbnRlZ2VyX2RlbnNlLnB5eAor KysrIGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9pbnRlZ2VyX2RlbnNlLnB5eAorQEAgLTMxMyw3 ICszMTMsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9pbnRlZ2VyX2RlbnNlKE1hdHJpeF9kZW5zZSk6 CisgICAgICAgICAgICAgeiA9IDxJbnRlZ2VyPnNlLmVudHJ5CisgICAgICAgICAgICAgZm1wel9z ZXRfbXB6KGZtcHpfbWF0X2VudHJ5KHNlbGYuX21hdHJpeCwgc2UuaSwgc2UuaiksIHoudmFsdWUp CisgCistICAgIGNkZWYgc2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3Qg aiwgb2JqZWN0IHgpIG5vZXhjZXB0OgorKyAgICBjZGVmIHNldF91bnNhZmUoc2VsZiwgUHlfc3Np emVfdCBpLCBQeV9zc2l6ZV90IGosIG9iamVjdCB4KToKKyAgICAgICAgICIiIgorICAgICAgICAg U2V0IHBvc2l0aW9uIGksaiBvZiB0aGlzIG1hdHJpeCB0byBgYHhgYC4KKyAKK0BAIC0zNzYsNyAr Mzc2LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfaW50ZWdlcl9kZW5zZShNYXRyaXhfZGVuc2UpOgor ICAgICAgICAgIiIiCisgICAgICAgICBmbXB6X3NldF9kKGZtcHpfbWF0X2VudHJ5KHNlbGYuX21h dHJpeCxpLGopLCB2YWx1ZSkKKyAKKy0gICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXpl X3QgaSwgUHlfc3NpemVfdCBqKSBub2V4Y2VwdDoKKysgICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYs IFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0 dXJuIHRoZSAoaSwgaikgZW50cnkgb2Ygc2VsZiBhcyBhIG5ldyBJbnRlZ2VyLgorIAorQEAgLTQ5 Miw3ICs0OTIsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9pbnRlZ2VyX2RlbnNlKE1hdHJpeF9kZW5z ZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9waWNrbGVfdmVyc2lvbjAo KSwgMAorIAorLSAgICBjZGVmIF9waWNrbGVfdmVyc2lvbjAoc2VsZikgbm9leGNlcHQ6CisrICAg IGNkZWYgX3BpY2tsZV92ZXJzaW9uMChzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhB TVBMRVM6OgorIAorQEAgLTUwMiw3ICs1MDIsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9pbnRlZ2Vy X2RlbnNlKE1hdHJpeF9kZW5zZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzdHJf dG9fYnl0ZXMoc2VsZi5fZXhwb3J0X2FzX3N0cmluZygzMiksICdhc2NpaScpCisgCistICAgIGNw ZGVmIF9leHBvcnRfYXNfc3RyaW5nKHNlbGYsIGludCBiYXNlPTEwKSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgX2V4cG9ydF9hc19zdHJpbmcoc2VsZiwgaW50IGJhc2U9MTApOgorICAgICAgICAgIiIi CisgICAgICAgICBSZXR1cm4gc3BhY2Ugc2VwYXJhdGVkIHN0cmluZyBvZiB0aGUgZW50cmllcyBp biB0aGlzIG1hdHJpeCwgaW4gdGhlCisgICAgICAgICBnaXZlbiBiYXNlLiBUaGlzIGlzIG9wdGlt aXplZCBmb3Igc3BlZWQuCitAQCAtNTg3LDcgKzU4Nyw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X2lu dGVnZXJfZGVuc2UoTWF0cml4X2RlbnNlKToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg cmFpc2UgUnVudGltZUVycm9yKCJ1bmtub3duIG1hdHJpeCB2ZXJzaW9uICg9JXMpIiV2ZXJzaW9u KQorIAorLSAgICBjZGVmIF91bnBpY2tsZV92ZXJzaW9uMChzZWxmLCBkYXRhKSBub2V4Y2VwdDoK KysgICAgY2RlZiBfdW5waWNrbGVfdmVyc2lvbjAoc2VsZiwgZGF0YSk6CisgICAgICAgICBjZGVm IFB5X3NzaXplX3QgaSwgaiwgbiwgaworICAgICAgICAgZGF0YSA9IGRhdGEuc3BsaXQoKQorICAg ICAgICAgbiA9IHNlbGYuX25yb3dzICogc2VsZi5fbmNvbHMKK0BAIC02MTMsNyArNjEzLDcgQEAg Y2RlZiBjbGFzcyBNYXRyaXhfaW50ZWdlcl9kZW5zZShNYXRyaXhfZGVuc2UpOgorICAgICAjIExF VkVMIDEgaGVscGVyczoKKyAgICAgIyAgIFRoZXNlIGZ1bmN0aW9uIHN1cHBvcnQgdGhlIGltcGxl bWVudGF0aW9uIG9mIHRoZSBsZXZlbCAxIGZ1bmN0aW9uYWxpdHkuCisgICAgICMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIworLSAgICBjZGVmIE1hdHJpeF9pbnRlZ2VyX2RlbnNlIF9uZXcoc2VsZiwgUHlfc3NpemVf dCBucm93cywgUHlfc3NpemVfdCBuY29scykgbm9leGNlcHQ6CisrICAgIGNkZWYgTWF0cml4X2lu dGVnZXJfZGVuc2UgX25ldyhzZWxmLCBQeV9zc2l6ZV90IG5yb3dzLCBQeV9zc2l6ZV90IG5jb2xz KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGEgbmV3IG1hdHJpeCBvdmVyIHRoZSBp bnRlZ2VycyBmcm9tIGdpdmVuIHBhcmVudAorICAgICAgICAgQWxsIG1lbW9yeSBpcyBhbGxvY2F0 ZWQgZm9yIHRoaXMgbWF0cml4LCBidXQgaXRzCitAQCAtODIyLDcgKzgyMiw3IEBAIGNkZWYgY2xh c3MgTWF0cml4X2ludGVnZXJfZGVuc2UoTWF0cml4X2RlbnNlKToKKyAgICAgICAgIGZtcHpfY2xl YXIocykKKyAgICAgICAgIHJldHVybiBNCisgCistICAgIGNkZWYgc2FnZS5zdHJ1Y3R1cmUuZWxl bWVudC5NYXRyaXggX21hdHJpeF90aW1lc19tYXRyaXhfKHNlbGYsIHNhZ2Uuc3RydWN0dXJlLmVs ZW1lbnQuTWF0cml4IHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY2RlZiBzYWdlLnN0cnVjdHVyZS5l bGVtZW50Lk1hdHJpeCBfbWF0cml4X3RpbWVzX21hdHJpeF8oc2VsZiwgc2FnZS5zdHJ1Y3R1cmUu ZWxlbWVudC5NYXRyaXggcmlnaHQpOgorICAgICAgICAgY2RlZiBNYXRyaXhfaW50ZWdlcl9kZW5z ZSBNCisgCisgICAgICAgICBpZiBzZWxmLl9uY29scyAhPSByaWdodC5fbnJvd3M6CitAQCAtODM1 LDcgKzgzNSw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X2ludGVnZXJfZGVuc2UoTWF0cml4X2RlbnNl KToKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIE0KKyAKKy0gICAgY3BkZWYg X2xtdWxfKHNlbGYsIEVsZW1lbnQgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbG11bF8o c2VsZiwgRWxlbWVudCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoK KyAKK0BAIC04NTUsNyArODU1LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfaW50ZWdlcl9kZW5zZShN YXRyaXhfZGVuc2UpOgorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1cm4gTQorIAor LSAgICBjcGRlZiBfYWRkXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRf KHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgQWRkIHR3byBkZW5zZSBtYXRy aWNlcyBvdmVyIFpaLgorIAorQEAgLTg4MCw3ICs4ODAsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9p bnRlZ2VyX2RlbnNlKE1hdHJpeF9kZW5zZSk6CisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAg IHJldHVybiBNCisgCistICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBTdWJ0 cmFjdCB0d28gZGVuc2UgbWF0cmljZXMgb3ZlciBaWi4KKyAKK0BAIC0xMDIwLDcgKzEwMjAsNyBA QCBjZGVmIGNsYXNzIE1hdHJpeF9pbnRlZ2VyX2RlbnNlKE1hdHJpeF9kZW5zZSk6CisgICAgICAg ICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiBNCisgCistICAgIGNwZGVmIF9yaWNoY21wXyhz ZWxmLCByaWdodCwgaW50IG9wKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYs IHJpZ2h0LCBpbnQgb3ApOgorICAgICAgICAgciIiIgorICAgICAgICAgQ29tcGFyZSBgYHNlbGZg YCB3aXRoIGBgcmlnaHRgYCwgZXhhbWluaW5nIGVudHJpZXMgaW4KKyAgICAgICAgIGxleGljb2dy YXBoaWMgKHJvdyBtYWpvcikgb3JkZXJpbmcuCitAQCAtMTA1NCw3ICsxMDU0LDcgQEAgY2RlZiBj bGFzcyBNYXRyaXhfaW50ZWdlcl9kZW5zZShNYXRyaXhfZGVuc2UpOgorICAgICAgICAgcmV0dXJu IHJpY2hfdG9fYm9vbChvcCwgMCkKKyAKKyAgICAgIyBUT0RPOiBJbXBsZW1lbnQgYmV0dGVyCist ICAgIGNkZWYgX3ZlY3Rvcl90aW1lc19tYXRyaXhfKHNlbGYsIFZlY3RvciB2KSBub2V4Y2VwdDoK KysgICAgY2RlZiBfdmVjdG9yX3RpbWVzX21hdHJpeF8oc2VsZiwgVmVjdG9yIHYpOgorICAgICAg ICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHZlY3RvciB0aW1lcyBtYXRyaXggcHJvZHVjdC4K KyAKK0BAIC0xNTc5LDcgKzE1NzksNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9pbnRlZ2VyX2RlbnNl KE1hdHJpeF9kZW5zZSk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJldHVybiBzZWxm Ll9tb2RfaW50X2MobW9kdWx1cykKKyAKKy0gICAgY2RlZiBfbW9kX3R3byhzZWxmKSBub2V4Y2Vw dDoKKysgICAgY2RlZiBfbW9kX3R3byhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgVEVT VFM6CisgCitAQCAtMTU5Myw3ICsxNTkzLDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfaW50ZWdlcl9k ZW5zZShNYXRyaXhfZGVuc2UpOgorICAgICAgICAgTVMgPSBtYXRyaXhfc3BhY2UuTWF0cml4U3Bh Y2UoR0YoMiksIHNlbGYuX25yb3dzLCBzZWxmLl9uY29scykKKyAgICAgICAgIHJldHVybiBNYXRy aXhfbW9kMl9kZW5zZShNUywgc2VsZiwgVHJ1ZSwgVHJ1ZSkKKyAKKy0gICAgY2RlZiBfbW9kX2lu dF9jKHNlbGYsIG1vZF9pbnQgcCkgbm9leGNlcHQ6CisrICAgIGNkZWYgX21vZF9pbnRfYyhzZWxm LCBtb2RfaW50IHApOgorICAgICAgICAgZnJvbSBzYWdlLm1hdHJpeC5tYXRyaXhfbW9kbl9kZW5z ZV9mbG9hdCBpbXBvcnQgTUFYX01PRFVMVVMgYXMgTUFYX01PRFVMVVNfRkxPQVQKKyAgICAgICAg IGZyb20gc2FnZS5tYXRyaXgubWF0cml4X21vZG5fZGVuc2VfZG91YmxlIGltcG9ydCBNQVhfTU9E VUxVUyBhcyBNQVhfTU9EVUxVU19ET1VCTEUKKyAKK0BAIC0xNjgwLDcgKzE2ODAsNyBAQCBjZGVm IGNsYXNzIE1hdHJpeF9pbnRlZ2VyX2RlbnNlKE1hdHJpeF9kZW5zZSk6CisgICAgICAgICBzaWdf ZnJlZShlbnRyeV9saXN0KQorICAgICAgICAgcmV0dXJuIHJlcworIAorLSAgICBjcGRlZiBfZWNo ZWxvbl9pbl9wbGFjZShzZWxmLCBzdHIgYWxnb3JpdGhtKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X2VjaGVsb25faW5fcGxhY2Uoc2VsZiwgc3RyIGFsZ29yaXRobSk6CisgICAgICAgICBjZGVmIE1h dHJpeF9pbnRlZ2VyX2RlbnNlIEUKKyAgICAgICAgIEUgPSBzZWxmLmVjaGVsb25fZm9ybSgpCisg ICAgICAgICBzaWdfb24oKQorQEAgLTUzMDEsNyArNTMwMSw3IEBAIGNkZWYgY2xhc3MgTWF0cml4 X2ludGVnZXJfZGVuc2UoTWF0cml4X2RlbnNlKToKKyAgICAgICAgICAgICBmbXB6X2dldF9tcHoo di5fZW50cmllc1tqXSwgZm1wel9tYXRfZW50cnkoc2VsZi5fbWF0cml4LCBqLCBpKSkKKyAgICAg ICAgIHJldHVybiB2CisgCistICAgIGNkZWYgX3N0YWNrX2ltcGwoc2VsZiwgYm90dG9tKSBub2V4 Y2VwdDoKKysgICAgY2RlZiBfc3RhY2tfaW1wbChzZWxmLCBib3R0b20pOgorICAgICAgICAgciIi IgorICAgICAgICAgUmV0dXJuIHRoZSBtYXRyaXggYGBzZWxmYGAgb24gdG9wIG9mIGBgYm90dG9t YGA6OgorIAorQEAgLTYwMTUsNyArNjAxNSw3IEBAIGNkZWYgaW5saW5lIEdFTiBwYXJpX0dFTihN YXRyaXhfaW50ZWdlcl9kZW5zZSBCKSBub2V4Y2VwdDoKKyAgICAgcmV0dXJuIEEKKyAKKyAKKy1j ZGVmIGV4dHJhY3RfaG5mX2Zyb21fcGFyaV9tYXRyaXgoTWF0cml4X2ludGVnZXJfZGVuc2Ugc2Vs ZiwgR2VuIEgsIGJpbnQgaW5jbHVkZV96ZXJvX3Jvd3MpIG5vZXhjZXB0OgorK2NkZWYgZXh0cmFj dF9obmZfZnJvbV9wYXJpX21hdHJpeChNYXRyaXhfaW50ZWdlcl9kZW5zZSBzZWxmLCBHZW4gSCwg YmludCBpbmNsdWRlX3plcm9fcm93cyk6CisgICAgIGNkZWYgbXB6X3QgdG1wCisgICAgIG1wel9p bml0KHRtcCkKKyAKK0BAIC02MDM3LDcgKzYwMzcsNyBAQCBjZGVmIGV4dHJhY3RfaG5mX2Zyb21f cGFyaV9tYXRyaXgoTWF0cml4X2ludGVnZXJfZGVuc2Ugc2VsZiwgR2VuIEgsIGJpbnQgaW5jbHVk ZQorICAgICByZXR1cm4gQgorIAorIAorLWNkZWYgX2NsZWFyX2NvbHVtbnMoTWF0cml4X2ludGVn ZXJfZGVuc2UgQSwgcGl2b3RzLCBQeV9zc2l6ZV90IG4pIG5vZXhjZXB0OgorK2NkZWYgX2NsZWFy X2NvbHVtbnMoTWF0cml4X2ludGVnZXJfZGVuc2UgQSwgcGl2b3RzLCBQeV9zc2l6ZV90IG4pOgor ICAgICAjIENsZWFyIGFsbCBjb2x1bW5zCisgICAgIGNkZWYgUHlfc3NpemVfdCBpLCBrLCBwLCBs LCBtID0gQS5fbmNvbHMKKyAgICAgY2RlZiBmbXB6X3QgYyx0CitAQCAtNjA2MCw3ICs2MDYwLDcg QEAgY2RlZiBfY2xlYXJfY29sdW1ucyhNYXRyaXhfaW50ZWdlcl9kZW5zZSBBLCBwaXZvdHMsIFB5 X3NzaXplX3Qgbikgbm9leGNlcHQ6CisgICAgIHNpZ19vZmYoKQorIAorIAorLWNwZGVmIF9saWZ0 X2NydChNYXRyaXhfaW50ZWdlcl9kZW5zZSBNLCByZXNpZHVlcywgbW9kdWxpPU5vbmUpIG5vZXhj ZXB0OgorK2NwZGVmIF9saWZ0X2NydChNYXRyaXhfaW50ZWdlcl9kZW5zZSBNLCByZXNpZHVlcywg bW9kdWxpPU5vbmUpOgorICAgICAiIiIKKyAgICAgSU5QVVQ6CisgCitkaWZmIC0tZ2l0IGEvc3Jj L3NhZ2UvbWF0cml4L21hdHJpeF9pbnRlZ2VyX3NwYXJzZS5weGQgYi9zcmMvc2FnZS9tYXRyaXgv bWF0cml4X2ludGVnZXJfc3BhcnNlLnB4ZAoraW5kZXggZmExMzBmOWU2ODAuLmZiZmE5YzlhNzkz IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9pbnRlZ2VyX3NwYXJzZS5weGQK KysrKyBiL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfaW50ZWdlcl9zcGFyc2UucHhkCitAQCAtNSw0 ICs1LDQgQEAgZnJvbSBzYWdlLm1hdHJpeC5tYXRyaXhfc3BhcnNlIGNpbXBvcnQgTWF0cml4X3Nw YXJzZQorIGNkZWYgY2xhc3MgTWF0cml4X2ludGVnZXJfc3BhcnNlKE1hdHJpeF9zcGFyc2UpOgor ICAgICBjZGVmIG1wel92ZWN0b3IqIF9tYXRyaXgKKyAKKy0gICAgY2RlZiBfbW9kX2ludF9jKHNl bGYsIG1vZF9pbnQgcCkgbm9leGNlcHQKKysgICAgY2RlZiBfbW9kX2ludF9jKHNlbGYsIG1vZF9p bnQgcCkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2ludGVnZXJfc3BhcnNl LnB5eCBiL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfaW50ZWdlcl9zcGFyc2UucHl4CitpbmRleCAx NWFmZDAzYzE3OS4uMzFjNmMxZTlkMWEgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tYXRyaXgvbWF0 cml4X2ludGVnZXJfc3BhcnNlLnB5eAorKysrIGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9pbnRl Z2VyX3NwYXJzZS5weXgKK0BAIC0xMTAsMTAgKzExMCwxMCBAQCBjZGVmIGNsYXNzIE1hdHJpeF9p bnRlZ2VyX3NwYXJzZShNYXRyaXhfc3BhcnNlKToKKyAgICAgICAgICAgICBpZiB6OgorICAgICAg ICAgICAgICAgICBtcHpfdmVjdG9yX3NldF9lbnRyeSgmc2VsZi5fbWF0cml4W3NlLmldLCBzZS5q LCB6LnZhbHVlKQorIAorLSAgICBjZGVmIHNldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpLCBQ eV9zc2l6ZV90IGosIHgpIG5vZXhjZXB0OgorKyAgICBjZGVmIHNldF91bnNhZmUoc2VsZiwgUHlf c3NpemVfdCBpLCBQeV9zc2l6ZV90IGosIHgpOgorICAgICAgICAgbXB6X3ZlY3Rvcl9zZXRfZW50 cnkoJnNlbGYuX21hdHJpeFtpXSwgaiwgKDxJbnRlZ2VyPiB4KS52YWx1ZSkKKyAKKy0gICAgY2Rl ZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqKSBub2V4Y2VwdDoK KysgICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqKToK KyAgICAgICAgIGNkZWYgSW50ZWdlciB4CisgICAgICAgICB4ID0gSW50ZWdlcigpCisgICAgICAg ICBtcHpfdmVjdG9yX2dldF9lbnRyeSh4LnZhbHVlLCAmc2VsZi5fbWF0cml4W2ldLCBqKQorQEAg LTE2MCw3ICsxNjAsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9pbnRlZ2VyX3NwYXJzZShNYXRyaXhf c3BhcnNlKToKKyAgICAgIyBkZWYgX211bHRpcGx5X2NsYXNzaWNhbChsZWZ0LCBtYXRyaXguTWF0 cml4IF9yaWdodCk6CisgICAgICMgZGVmIF9saXN0KHNlbGYpOgorIAorLSAgICBjcGRlZiBfbG11 bF8oc2VsZiwgRWxlbWVudCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9sbXVsXyhzZWxm LCBFbGVtZW50IHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAor QEAgLTE4Miw3ICsxODIsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9pbnRlZ2VyX3NwYXJzZShNYXRy aXhfc3BhcnNlKToKKyAgICAgICAgICAgICBtcHpfdmVjdG9yX3NjYWxhcl9tdWx0aXBseShNX3Jv dywgc2VsZl9yb3csIF94LnZhbHVlKQorICAgICAgICAgcmV0dXJuIE0KKyAKKy0gICAgY3BkZWYg X2FkZF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWRkXyhzZWxmLCByaWdo dCk6CisgICAgICAgICBjZGVmIFB5X3NzaXplX3QgaQorICAgICAgICAgY2RlZiBNYXRyaXhfaW50 ZWdlcl9zcGFyc2UgTQorIAorQEAgLTE5Niw3ICsxOTYsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9p bnRlZ2VyX3NwYXJzZShNYXRyaXhfc3BhcnNlKToKKyAgICAgICAgIG1wel9jbGVhcihtdWwpCisg ICAgICAgICByZXR1cm4gTQorIAorLSAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodCkgbm9leGNl cHQ6CisrICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgIGNkZWYgUHlfc3Np emVfdCBpCisgICAgICAgICBjZGVmIE1hdHJpeF9pbnRlZ2VyX3NwYXJzZSBNCisgCitAQCAtMjMx LDcgKzIzMSw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X2ludGVnZXJfc3BhcnNlKE1hdHJpeF9zcGFy c2UpOgorICAgICAgICAgc2VsZi5jYWNoZSgnZGljdCcsIGQpCisgICAgICAgICByZXR1cm4gZAor IAorLSAgICBjZGVmIHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuTWF0cml4IF9tYXRyaXhfdGltZXNf bWF0cml4XyhzZWxmLCBzYWdlLnN0cnVjdHVyZS5lbGVtZW50Lk1hdHJpeCBfcmlnaHQpIG5vZXhj ZXB0OgorKyAgICBjZGVmIHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuTWF0cml4IF9tYXRyaXhfdGlt ZXNfbWF0cml4XyhzZWxmLCBzYWdlLnN0cnVjdHVyZS5lbGVtZW50Lk1hdHJpeCBfcmlnaHQpOgor ICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHByb2R1Y3Qgb2YgdGhlIHNwYXJzZSBp bnRlZ2VyIG1hdHJpY2VzCisgICAgICAgICBgYHNlbGZgYCBhbmQgYGBfcmlnaHRgYC4KK0BAIC0z ODEsNyArMzgxLDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfaW50ZWdlcl9zcGFyc2UoTWF0cml4X3Nw YXJzZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9tb2RfaW50X2MobW9k dWx1cykKKyAKKy0gICAgY2RlZiBfbW9kX2ludF9jKHNlbGYsIG1vZF9pbnQgcCkgbm9leGNlcHQ6 CisrICAgIGNkZWYgX21vZF9pbnRfYyhzZWxmLCBtb2RfaW50IHApOgorICAgICAgICAgY2RlZiBQ eV9zc2l6ZV90IGksIGoKKyAgICAgICAgIGNkZWYgTWF0cml4X21vZG5fc3BhcnNlIHJlcworICAg ICAgICAgY2RlZiBtcHpfdmVjdG9yKiBzZWxmX3JvdworZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21h dHJpeC9tYXRyaXhfbW9kMl9kZW5zZS5weGQgYi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X21vZDJf ZGVuc2UucHhkCitpbmRleCA4MmRmODExNmE1Yy4uZWEzNTc1ZWYzYmUgMTAwNjQ0CistLS0gYS9z cmMvc2FnZS9tYXRyaXgvbWF0cml4X21vZDJfZGVuc2UucHhkCisrKysgYi9zcmMvc2FnZS9tYXRy aXgvbWF0cml4X21vZDJfZGVuc2UucHhkCitAQCAtNiw4ICs2LDggQEAgY2RlZiBjbGFzcyBNYXRy aXhfbW9kMl9kZW5zZShNYXRyaXhfZGVuc2UpOgorICAgICBjZGVmIG9iamVjdCBfb25lCisgICAg IGNkZWYgb2JqZWN0IF96ZXJvCisgCistICAgIGNwZGVmIE1hdHJpeF9tb2QyX2RlbnNlIF9tdWx0 aXBseV9tNHJtKE1hdHJpeF9tb2QyX2RlbnNlIHNlbGYsIE1hdHJpeF9tb2QyX2RlbnNlIHJpZ2h0 LCBpbnQgaykgbm9leGNlcHQKKy0gICAgY3BkZWYgTWF0cml4X21vZDJfZGVuc2UgX211bHRpcGx5 X3N0cmFzc2VuKE1hdHJpeF9tb2QyX2RlbnNlIHNlbGYsIE1hdHJpeF9tb2QyX2RlbnNlIHJpZ2h0 LCBpbnQgY3V0b2ZmKSBub2V4Y2VwdAorKyAgICBjcGRlZiBNYXRyaXhfbW9kMl9kZW5zZSBfbXVs dGlwbHlfbTRybShNYXRyaXhfbW9kMl9kZW5zZSBzZWxmLCBNYXRyaXhfbW9kMl9kZW5zZSByaWdo dCwgaW50IGspCisrICAgIGNwZGVmIE1hdHJpeF9tb2QyX2RlbnNlIF9tdWx0aXBseV9zdHJhc3Nl bihNYXRyaXhfbW9kMl9kZW5zZSBzZWxmLCBNYXRyaXhfbW9kMl9kZW5zZSByaWdodCwgaW50IGN1 dG9mZikKKyAKKyAgICAgIyBGb3IgY29udmVyc2lvbiB0byBvdGhlciBzeXN0ZW1zCistICAgIGNw ZGVmIF9leHBvcnRfYXNfc3RyaW5nKHNlbGYpIG5vZXhjZXB0CisrICAgIGNwZGVmIF9leHBvcnRf YXNfc3RyaW5nKHNlbGYpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9tb2Qy X2RlbnNlLnB5eCBiL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfbW9kMl9kZW5zZS5weXgKK2luZGV4 IDdmNTJjMTNkZDU0Li45ZGQ5ZmZjZjZiOCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJpeC9t YXRyaXhfbW9kMl9kZW5zZS5weXgKKysrKyBiL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfbW9kMl9k ZW5zZS5weXgKK0BAIC0zMzUsMTAgKzMzNSwxMCBAQCBjZGVmIGNsYXNzIE1hdHJpeF9tb2QyX2Rl bnNlKG1hdHJpeF9kZW5zZS5NYXRyaXhfZGVuc2UpOiAgICMgZGVuc2Ugb3Igc3BhcnNlCisgICAg ICAgICAiIiIKKyAgICAgICAgIG16ZF93cml0ZV9iaXQoc2VsZi5fZW50cmllcywgaSwgaiwgaW50 KHZhbHVlKSkKKyAKKy0gICAgY2RlZiBzZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSwgUHlf c3NpemVfdCBqLCB2YWx1ZSkgbm9leGNlcHQ6CisrICAgIGNkZWYgc2V0X3Vuc2FmZShzZWxmLCBQ eV9zc2l6ZV90IGksIFB5X3NzaXplX3QgaiwgdmFsdWUpOgorICAgICAgICAgbXpkX3dyaXRlX2Jp dChzZWxmLl9lbnRyaWVzLCBpLCBqLCBpbnQodmFsdWUpKQorIAorLSAgICBjZGVmIGdldF91bnNh ZmUoc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9zc2l6ZV90IGopIG5vZXhjZXB0OgorKyAgICBjZGVm IGdldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9zc2l6ZV90IGopOgorICAgICAgICAg aWYgbXpkX3JlYWRfYml0KHNlbGYuX2VudHJpZXMsIGksIGopOgorICAgICAgICAgICAgIHJldHVy biBzZWxmLl9vbmUKKyAgICAgICAgIGVsc2U6CitAQCAtNTIxLDcgKzUyMSw3IEBAIGNkZWYgY2xh c3MgTWF0cml4X21vZDJfZGVuc2UobWF0cml4X2RlbnNlLk1hdHJpeF9kZW5zZSk6ICAgIyBkZW5z ZSBvciBzcGFyc2UKKyAgICAgIyBkZWYgX3BpY2tsZShzZWxmKToKKyAgICAgIyBkZWYgX3VucGlj a2xlKHNlbGYsIGRhdGEsIGludCB2ZXJzaW9uKTogICAjIHVzZSB2ZXJzaW9uID49IDAKKyAKKy0g ICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWRkXyhz ZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIE1hdHJpeCBhZGRpdGlvbi4KKyAK K0BAIC01NTksNyArNTU5LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfbW9kMl9kZW5zZShtYXRyaXhf ZGVuc2UuTWF0cml4X2RlbnNlKTogICAjIGRlbnNlIG9yIHNwYXJzZQorIAorICAgICAgICAgcmV0 dXJuIEEKKyAKKy0gICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBfc3ViXyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIE1hdHJpeCBh ZGRpdGlvbi4KKyAKK0BAIC01NzUsNyArNTc1LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfbW9kMl9k ZW5zZShtYXRyaXhfZGVuc2UuTWF0cml4X2RlbnNlKTogICAjIGRlbnNlIG9yIHNwYXJzZQorICAg ICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fYWRkXyhyaWdodCkKKyAKKy0gICAgY2Rl ZiBfbWF0cml4X3RpbWVzX3ZlY3Rvcl8oc2VsZiwgVmVjdG9yIHYpIG5vZXhjZXB0OgorKyAgICBj ZGVmIF9tYXRyaXhfdGltZXNfdmVjdG9yXyhzZWxmLCBWZWN0b3Igdik6CisgICAgICAgICAiIiIK KyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC02MzMsNyArNjMzLDcgQEAgY2RlZiBjbGFzcyBN YXRyaXhfbW9kMl9kZW5zZShtYXRyaXhfZGVuc2UuTWF0cml4X2RlbnNlKTogICAjIGRlbnNlIG9y IHNwYXJzZQorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1cm4gYworIAorLSAgICBj ZGVmIF9tYXRyaXhfdGltZXNfbWF0cml4XyhzZWxmLCBNYXRyaXggcmlnaHQpIG5vZXhjZXB0Ogor KyAgICBjZGVmIF9tYXRyaXhfdGltZXNfbWF0cml4XyhzZWxmLCBNYXRyaXggcmlnaHQpOgorICAg ICAgICAgIiIiCisgICAgICAgICBNYXRyaXggbXVsdGlwbGljYXRpb24uCisgCitAQCAtNjQ2LDcg KzY0Niw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X21vZDJfZGVuc2UobWF0cml4X2RlbnNlLk1hdHJp eF9kZW5zZSk6ICAgIyBkZW5zZSBvciBzcGFyc2UKKyAKKyAgICAgICAgIHJldHVybiBzZWxmLl9t dWx0aXBseV9zdHJhc3NlbihyaWdodCwgMCkKKyAKKy0gICAgY3BkZWYgTWF0cml4X21vZDJfZGVu c2UgX211bHRpcGx5X200cm0oTWF0cml4X21vZDJfZGVuc2Ugc2VsZiwgTWF0cml4X21vZDJfZGVu c2UgcmlnaHQsIGludCBrKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgTWF0cml4X21vZDJfZGVuc2Ug X211bHRpcGx5X200cm0oTWF0cml4X21vZDJfZGVuc2Ugc2VsZiwgTWF0cml4X21vZDJfZGVuc2Ug cmlnaHQsIGludCBrKToKKyAgICAgICAgICIiIgorICAgICAgICAgTXVsdGlwbHkgbWF0cmljZXMg dXNpbmcgdGhlICdNZXRob2Qgb2YgdGhlIEZvdXIgUnVzc2lhbnMKKyAgICAgICAgIE11bHRpcGxp Y2F0aW9uJyAoTTRSTSkgb3IgS29ucm9kJ3MgbWV0aG9kLgorQEAgLTc3NSw3ICs3NzUsNyBAQCBj ZGVmIGNsYXNzIE1hdHJpeF9tb2QyX2RlbnNlKG1hdHJpeF9kZW5zZS5NYXRyaXhfZGVuc2UpOiAg ICMgZGVuc2Ugb3Igc3BhcnNlCisgICAgICAgICBBLl9lbnRyaWVzID0gbXpkX211bF9uYWl2ZShB Ll9lbnRyaWVzLCBzZWxmLl9lbnRyaWVzLCg8TWF0cml4X21vZDJfZGVuc2U+cmlnaHQpLl9lbnRy aWVzKQorICAgICAgICAgcmV0dXJuIEEKKyAKKy0gICAgY3BkZWYgTWF0cml4X21vZDJfZGVuc2Ug X211bHRpcGx5X3N0cmFzc2VuKE1hdHJpeF9tb2QyX2RlbnNlIHNlbGYsIE1hdHJpeF9tb2QyX2Rl bnNlIHJpZ2h0LCBpbnQgY3V0b2ZmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgTWF0cml4X21vZDJf ZGVuc2UgX211bHRpcGx5X3N0cmFzc2VuKE1hdHJpeF9tb2QyX2RlbnNlIHNlbGYsIE1hdHJpeF9t b2QyX2RlbnNlIHJpZ2h0LCBpbnQgY3V0b2ZmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFN0 cmFzc2VuLVdpbm9ncmFkIGBPKG5eezIuODA3fSlgIG11bHRpcGxpY2F0aW9uIFtTdHIxOTY5XV8u CisgCitAQCAtMTI1MCw3ICsxMjUwLDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfbW9kMl9kZW5zZSht YXRyaXhfZGVuc2UuTWF0cml4X2RlbnNlKTogICAjIGRlbnNlIG9yIHNwYXJzZQorICAgICAgICAg ICAgICAgICAgICAgICAgIG16ZF93cml0ZV9iaXQoc2VsZi5fZW50cmllcywgaSwgaiwgMSkKKyAg ICAgICAgICAgICBzaWdfb2ZmKCkKKyAKKy0gICAgY2RlZiByZXNjYWxlX3Jvd19jKHNlbGYsIFB5 X3NzaXplX3Qgcm93LCBtdWx0aXBsZSwgUHlfc3NpemVfdCBzdGFydF9jb2wpIG5vZXhjZXB0Ogor KyAgICBjZGVmIHJlc2NhbGVfcm93X2Moc2VsZiwgUHlfc3NpemVfdCByb3csIG11bHRpcGxlLCBQ eV9zc2l6ZV90IHN0YXJ0X2NvbCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoK KyAKK0BAIC0xMjYzLDcgKzEyNjMsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9tb2QyX2RlbnNlKG1h dHJpeF9kZW5zZS5NYXRyaXhfZGVuc2UpOiAgICMgZGVuc2Ugb3Igc3BhcnNlCisgICAgICAgICAg ICAgbXpkX3Jvd19jbGVhcl9vZmZzZXQoc2VsZi5fZW50cmllcywgcm93LCBzdGFydF9jb2wpCisg CisgICAgIGNkZWYgYWRkX211bHRpcGxlX29mX3Jvd19jKHNlbGYsIFB5X3NzaXplX3Qgcm93X3Rv LCBQeV9zc2l6ZV90IHJvd19mcm9tLCBtdWx0aXBsZSwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUHlfc3NpemVfdCBzdGFydF9jb2wpIG5vZXhjZXB0OgorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHN0YXJ0X2NvbCk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0xMjc2LDcgKzEyNzYsNyBAQCBjZGVmIGNsYXNzIE1h dHJpeF9tb2QyX2RlbnNlKG1hdHJpeF9kZW5zZS5NYXRyaXhfZGVuc2UpOiAgICMgZGVuc2Ugb3Ig c3BhcnNlCisgICAgICAgICBpZiBpbnQobXVsdGlwbGUpICUgMjoKKyAgICAgICAgICAgICBtemRf cm93X2FkZF9vZmZzZXQoc2VsZi5fZW50cmllcywgcm93X3RvLCByb3dfZnJvbSwgc3RhcnRfY29s KQorIAorLSAgICBjZGVmIHN3YXBfcm93c19jKHNlbGYsIFB5X3NzaXplX3Qgcm93MSwgUHlfc3Np emVfdCByb3cyKSBub2V4Y2VwdDoKKysgICAgY2RlZiBzd2FwX3Jvd3NfYyhzZWxmLCBQeV9zc2l6 ZV90IHJvdzEsIFB5X3NzaXplX3Qgcm93Mik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1Q TEVTOjoKKyAKK0BAIC0xMjkyLDcgKzEyOTIsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9tb2QyX2Rl bnNlKG1hdHJpeF9kZW5zZS5NYXRyaXhfZGVuc2UpOiAgICMgZGVuc2Ugb3Igc3BhcnNlCisgICAg ICAgICAiIiIKKyAgICAgICAgIG16ZF9yb3dfc3dhcChzZWxmLl9lbnRyaWVzLCByb3cxLCByb3cy KQorIAorLSAgICBjZGVmIHN3YXBfY29sdW1uc19jKHNlbGYsIFB5X3NzaXplX3QgY29sMSwgUHlf c3NpemVfdCBjb2wyKSBub2V4Y2VwdDoKKysgICAgY2RlZiBzd2FwX2NvbHVtbnNfYyhzZWxmLCBQ eV9zc2l6ZV90IGNvbDEsIFB5X3NzaXplX3QgY29sMik6CisgICAgICAgICAiIiIKKyAgICAgICAg IEVYQU1QTEVTOjoKKyAKK0BAIC0xNDIyLDcgKzE0MjIsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9t b2QyX2RlbnNlKG1hdHJpeF9kZW5zZS5NYXRyaXhfZGVuc2UpOiAgICMgZGVuc2Ugb3Igc3BhcnNl CisgICAgICAgICAgICAgQS5zdWJkaXZpZGUoKnNlbGYuc3ViZGl2aXNpb25zKCkpCisgICAgICAg ICByZXR1cm4gQQorIAorLSAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgcmlnaHQsIGludCBvcCkg bm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCByaWdodCwgaW50IG9wKToKKyAg ICAgICAgICIiIgorICAgICAgICAgQ29tcGFyZSBgYHNlbGZgYCB3aXRoIGBgcmlnaHRgYC4KKyAK K0BAIC0xNTcxLDcgKzE1NzEsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9tb2QyX2RlbnNlKG1hdHJp eF9kZW5zZS5NYXRyaXhfZGVuc2UpOiAgICMgZGVuc2Ugb3Igc3BhcnNlCisgICAgICAgICAgICAg Wi5fc3ViZGl2aWRlX29uX2F1Z21lbnQoc2VsZiwgb3RoZXIpCisgICAgICAgICByZXR1cm4gWgor IAorLSAgICBjZGVmIF9zdGFja19pbXBsKHNlbGYsIGJvdHRvbSkgbm9leGNlcHQ6CisrICAgIGNk ZWYgX3N0YWNrX2ltcGwoc2VsZiwgYm90dG9tKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFN0 YWNrIGBgc2VsZmBgIG9uIHRvcCBvZiBgYGJvdHRvbWBgLgorIAorQEAgLTE3NTgsNyArMTc1OCw3 IEBAIGNkZWYgY2xhc3MgTWF0cml4X21vZDJfZGVuc2UobWF0cml4X2RlbnNlLk1hdHJpeF9kZW5z ZSk6ICAgIyBkZW5zZSBvciBzcGFyc2UKKyAgICAgICAgIGdkSW1hZ2VEZXN0cm95KGltKQorICAg ICAgICAgcmV0dXJuIHVucGlja2xlX21hdHJpeF9tb2QyX2RlbnNlX3YyLCAocixjLCBkYXRhLCBz aXplLCBzZWxmLl9pc19pbW11dGFibGUpCisgCistICAgIGNwZGVmIF9leHBvcnRfYXNfc3RyaW5n KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZXhwb3J0X2FzX3N0cmluZyhzZWxmKToKKyAg ICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHNwYWNlIHNlcGFyYXRlZCBzdHJpbmcgb2YgdGhl IGVudHJpZXMgaW4gdGhpcyBtYXRyaXguCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cml4 L21hdHJpeF9tb2RuX2RlbnNlX2RvdWJsZS5weXggYi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X21v ZG5fZGVuc2VfZG91YmxlLnB5eAoraW5kZXggODU4YzNmY2I4ODcuLmIxMTJmZmJhOTEyIDEwMDY0 NAorLS0tIGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9tb2RuX2RlbnNlX2RvdWJsZS5weXgKKysr KyBiL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfbW9kbl9kZW5zZV9kb3VibGUucHl4CitAQCAtMTAx LDcgKzEwMSw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X21vZG5fZGVuc2VfZG91YmxlKE1hdHJpeF9t b2RuX2RlbnNlX3RlbXBsYXRlKToKKyAgICAgICAgICIiIgorICAgICAgICAgc2VsZi5fbWF0cml4 W2ldW2pdID0gPGRvdWJsZT52YWx1ZQorIAorLSAgICBjZGVmIHNldF91bnNhZmUoc2VsZiwgUHlf c3NpemVfdCBpLCBQeV9zc2l6ZV90IGosIHgpIG5vZXhjZXB0OgorKyAgICBjZGVmIHNldF91bnNh ZmUoc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9zc2l6ZV90IGosIHgpOgorICAgICAgICAgciIiIgor ICAgICAgICAgU2V0IHRoZSAoaSxqKSBlbnRyeSB3aXRoIG5vIGJvdW5kcy1jaGVja2luZywgb3Ig YW55IG90aGVyIGNoZWNrcy4KKyAKK0BAIC0xMzYsNyArMTM2LDcgQEAgY2RlZiBjbGFzcyBNYXRy aXhfbW9kbl9kZW5zZV9kb3VibGUoTWF0cml4X21vZG5fZGVuc2VfdGVtcGxhdGUpOgorICAgICAg ICAgZWxzZToKKyAgICAgICAgICAgICBzZWxmLl9tYXRyaXhbaV1bal0gPSA8ZG91YmxlPig8SW50 ZWdlck1vZF9pbnQ2ND54KS5pdmFsdWUKKyAKKy0gICAgY2RlZiBJbnRlZ2VyTW9kX2Fic3RyYWN0 IGdldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9zc2l6ZV90IGopIG5vZXhjZXB0Ogor KyAgICBjZGVmIEludGVnZXJNb2RfYWJzdHJhY3QgZ2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90 IGksIFB5X3NzaXplX3Qgaik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIChp LGopIGVudHJ5IHdpdGggbm8gYm91bmRzLWNoZWNraW5nLgorIAorZGlmZiAtLWdpdCBhL3NyYy9z YWdlL21hdHJpeC9tYXRyaXhfbW9kbl9kZW5zZV9mbG9hdC5weXggYi9zcmMvc2FnZS9tYXRyaXgv bWF0cml4X21vZG5fZGVuc2VfZmxvYXQucHl4CitpbmRleCAzMjVlNDkyZjVmYi4uNzNmYmUxNzVk OTUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X21vZG5fZGVuc2VfZmxvYXQu cHl4CisrKysgYi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X21vZG5fZGVuc2VfZmxvYXQucHl4CitA QCAtOTEsNyArOTEsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9tb2RuX2RlbnNlX2Zsb2F0KE1hdHJp eF9tb2RuX2RlbnNlX3RlbXBsYXRlKToKKyAgICAgICAgICIiIgorICAgICAgICAgc2VsZi5fbWF0 cml4W2ldW2pdID0gPGZsb2F0PnZhbHVlCisgCistICAgIGNkZWYgc2V0X3Vuc2FmZShzZWxmLCBQ eV9zc2l6ZV90IGksIFB5X3NzaXplX3QgaiwgeCkgbm9leGNlcHQ6CisrICAgIGNkZWYgc2V0X3Vu c2FmZShzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3QgaiwgeCk6CisgICAgICAgICByIiIi CisgICAgICAgICBTZXQgdGhlIChpLGopIGVudHJ5IHdpdGggbm8gYm91bmRzLWNoZWNraW5nLCBv ciBhbnkgb3RoZXIgY2hlY2tzLgorIAorQEAgLTEyMSw3ICsxMjEsNyBAQCBjZGVmIGNsYXNzIE1h dHJpeF9tb2RuX2RlbnNlX2Zsb2F0KE1hdHJpeF9tb2RuX2RlbnNlX3RlbXBsYXRlKToKKyAgICAg ICAgICIiIgorICAgICAgICAgc2VsZi5fbWF0cml4W2ldW2pdID0gPGZsb2F0Pig8SW50ZWdlck1v ZF9pbnQ+eCkuaXZhbHVlCisgCistICAgIGNkZWYgSW50ZWdlck1vZF9pbnQgZ2V0X3Vuc2FmZShz ZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3Qgaikgbm9leGNlcHQ6CisrICAgIGNkZWYgSW50 ZWdlck1vZF9pbnQgZ2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3Qgaik6 CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIChpLGopIGVudHJ5IHdpdGggbm8g Ym91bmRzLWNoZWNraW5nLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhf bW9kbl9kZW5zZV90ZW1wbGF0ZS5weGkgYi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X21vZG5fZGVu c2VfdGVtcGxhdGUucHhpCitpbmRleCBjODUxNzZkNTgzYi4uMDhmMDEyMDVkYTEgMTAwNjQ0Cist LS0gYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X21vZG5fZGVuc2VfdGVtcGxhdGUucHhpCisrKysg Yi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X21vZG5fZGVuc2VfdGVtcGxhdGUucHhpCitAQCAtMTMx LDcgKzEzMSw3IEBAIGZyb20gc2FnZS5jcHl0aG9uLnN0cmluZyBjaW1wb3J0IGNoYXJfdG9fc3Ry CisgY2RlZiBsb25nIG51bSA9IDEKKyBjZGVmIGJpbnQgbGl0dGxlX2VuZGlhbiA9ICg8Y2hhcio+ KCZudW0pKVswXQorIAorLWNkZWYgaW5saW5lIGNlbGVtZW50X2ludmVydChjZWxlbWVudCBhLCBj ZWxlbWVudCBuKSBub2V4Y2VwdDoKKytjZGVmIGlubGluZSBjZWxlbWVudF9pbnZlcnQoY2VsZW1l bnQgYSwgY2VsZW1lbnQgbik6CisgICAgICIiIgorICAgICBJbnZlcnQgdGhlIGZpbml0ZSBmaWVs ZCBlbGVtZW50IGBhYCBtb2R1bG8gYG5gLgorICAgICAiIiIKK0BAIC0xNzIsNyArMTcyLDcgQEAg Y2RlZiBpbmxpbmUgYmludCBsaW5ib3hfaXNfemVybyhjZWxlbWVudCBtb2R1bHVzLCBjZWxlbWVu dCogZW50cmllcywgUHlfc3NpemVfdAorICAgICAgICAgICAgICAgICByZXR1cm4gMAorICAgICBy ZXR1cm4gMQorIAorLWNkZWYgaW5saW5lIGxpbmJveF9lY2hlbG9uaXplKGNlbGVtZW50IG1vZHVs dXMsIGNlbGVtZW50KiBlbnRyaWVzLCBQeV9zc2l6ZV90IG5yb3dzLCBQeV9zc2l6ZV90IG5jb2xz KSBub2V4Y2VwdDoKKytjZGVmIGlubGluZSBsaW5ib3hfZWNoZWxvbml6ZShjZWxlbWVudCBtb2R1 bHVzLCBjZWxlbWVudCogZW50cmllcywgUHlfc3NpemVfdCBucm93cywgUHlfc3NpemVfdCBuY29s cyk6CisgICAgICIiIgorICAgICBSZXR1cm4gdGhlIHJlZHVjZWQgcm93IGVjaGVsb24gZm9ybSBv ZiB0aGlzIG1hdHJpeC4KKyAgICAgIiIiCitAQCAtMjEzLDcgKzIxMyw3IEBAIGNkZWYgaW5saW5l IGxpbmJveF9lY2hlbG9uaXplKGNlbGVtZW50IG1vZHVsdXMsIGNlbGVtZW50KiBlbnRyaWVzLCBQ eV9zc2l6ZV90IG5yCisgICAgIGRlbCBGCisgICAgIHJldHVybiByLCBwaXZvdHMKKyAKKy1jZGVm IGlubGluZSBsaW5ib3hfZWNoZWxvbml6ZV9lZmQoY2VsZW1lbnQgbW9kdWx1cywgY2VsZW1lbnQq IGVudHJpZXMsIFB5X3NzaXplX3QgbnJvd3MsIFB5X3NzaXplX3QgbmNvbHMpIG5vZXhjZXB0Ogor K2NkZWYgaW5saW5lIGxpbmJveF9lY2hlbG9uaXplX2VmZChjZWxlbWVudCBtb2R1bHVzLCBjZWxl bWVudCogZW50cmllcywgUHlfc3NpemVfdCBucm93cywgUHlfc3NpemVfdCBuY29scyk6CisgICAg ICMgU2VlIHRyYWMgIzEzODc4OiBUaGlzIGlzIHRvIGF2b2lkIHNlbmRpbmcgaW52YWxpZCBkYXRh IHRvIGxpbmJveCwKKyAgICAgIyB3aGljaCB3b3VsZCB5aWVsZCBhIHNlZ2ZhdWx0IGluIFNhZ2Un cyBkZWJ1ZyB2ZXJzaW9uLiBUT0RPOiBGaXgKKyAgICAgIyB0aGF0IGJ1ZyB1cHN0cmVhbS4KK0BA IC0zNDcsNyArMzQ3LDcgQEAgY2RlZiBpbmxpbmUgaW50IGxpbmJveF9tYXRyaXhfdmVjdG9yX211 bHRpcGx5KGNlbGVtZW50IG1vZHVsdXMsIGNlbGVtZW50KiBDLCBjZWwKKyAKKyAgICAgZGVsIEYK KyAKKy1jZGVmIGlubGluZSBsaW5ib3hfbWlucG9seShjZWxlbWVudCBtb2R1bHVzLCBQeV9zc2l6 ZV90IG5yb3dzLCBjZWxlbWVudCogZW50cmllcykgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUgbGlu Ym94X21pbnBvbHkoY2VsZW1lbnQgbW9kdWx1cywgUHlfc3NpemVfdCBucm93cywgY2VsZW1lbnQq IGVudHJpZXMpOgorICAgICAiIiIKKyAgICAgQ29tcHV0ZSB0aGUgbWluaW1hbCBwb2x5bm9taWFs LgorICAgICAiIiIKK0BAIC0zNjgsNyArMzY4LDcgQEAgY2RlZiBpbmxpbmUgbGluYm94X21pbnBv bHkoY2VsZW1lbnQgbW9kdWx1cywgUHlfc3NpemVfdCBucm93cywgY2VsZW1lbnQqIGVudHJpZXMK KyAgICAgZGVsIEYKKyAgICAgcmV0dXJuIGwKKyAKKy1jZGVmIGlubGluZSBsaW5ib3hfY2hhcnBv bHkoY2VsZW1lbnQgbW9kdWx1cywgUHlfc3NpemVfdCBucm93cywgY2VsZW1lbnQqIGVudHJpZXMp IG5vZXhjZXB0OgorK2NkZWYgaW5saW5lIGxpbmJveF9jaGFycG9seShjZWxlbWVudCBtb2R1bHVz LCBQeV9zc2l6ZV90IG5yb3dzLCBjZWxlbWVudCogZW50cmllcyk6CisgICAgICIiIgorICAgICBD b21wdXRlIHRoZSBjaGFyYWN0ZXJpc3RpYyAgcG9seW5vbWlhbC4KKyAgICAgIiIiCitAQCAtMzk2 LDcgKzM5Niw3IEBAIGNkZWYgaW5saW5lIGxpbmJveF9jaGFycG9seShjZWxlbWVudCBtb2R1bHVz LCBQeV9zc2l6ZV90IG5yb3dzLCBjZWxlbWVudCogZW50cmllCisgICAgIHJldHVybiBsCisgCisg CistY3BkZWYgX19tYXRyaXhfZnJvbV9yb3dzX29mX21hdHJpY2VzKFgpIG5vZXhjZXB0OgorK2Nw ZGVmIF9fbWF0cml4X2Zyb21fcm93c19vZl9tYXRyaWNlcyhYKToKKyAgICAgIiIiCisgICAgIFJl dHVybiBhIG1hdHJpeCB3aG9zZSByb3cgYGBpYGAgaXMgY29uc3RydWN0ZWQgZnJvbSB0aGUgZW50 cmllcyBvZgorICAgICBtYXRyaXggYGBYW2ldYGAuCitAQCAtODAyLDcgKzgwMiw3IEBAIGNkZWYg Y2xhc3MgTWF0cml4X21vZG5fZGVuc2VfdGVtcGxhdGUoTWF0cml4X2RlbnNlKToKKyAgICAgICAg IHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIE0KKyAKKy0gICAgY3BkZWYgX2xtdWxfKHNlbGYs IEVsZW1lbnQgbGVmdCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50 IGxlZnQpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtODU2LDcg Kzg1Niw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X21vZG5fZGVuc2VfdGVtcGxhdGUoTWF0cml4X2Rl bnNlKToKKyAgICAgICAgIHJldHVybiBBCisgCisgCistICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJp Z2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQpOgorICAgICAgICAg ciIiIgorICAgICAgICAgQWRkIHR3byBkZW5zZSBtYXRyaWNlcyBvdmVyIGBcWi9uXFpgCisgCitA QCAtOTAwLDcgKzkwMCw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X21vZG5fZGVuc2VfdGVtcGxhdGUo TWF0cml4X2RlbnNlKToKKyAgICAgICAgIHJldHVybiBNCisgCisgCistICAgIGNwZGVmIF9zdWJf KHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQpOgor ICAgICAgICAgciIiIgorICAgICAgICAgU3VidHJhY3QgdHdvIGRlbnNlIG1hdHJpY2VzIG92ZXIg YFxaL25cWmAKKyAKK0BAIC05MzYsNyArOTM2LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfbW9kbl9k ZW5zZV90ZW1wbGF0ZShNYXRyaXhfZGVuc2UpOgorICAgICAgICAgc2lnX29mZigpCisgICAgICAg ICByZXR1cm4gTQorIAorLSAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgcmlnaHQsIGludCBvcCkg bm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCByaWdodCwgaW50IG9wKToKKyAg ICAgICAgIHIiIiIKKyAgICAgICAgIENvbXBhcmUgdHdvIGRlbnNlIG1hdHJpY2VzIG92ZXIgYFxa L25cWmAuCisgCitAQCAtOTg4LDcgKzk4OCw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X21vZG5fZGVu c2VfdGVtcGxhdGUoTWF0cml4X2RlbnNlKToKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAg cmV0dXJuIHJpY2hfdG9fYm9vbChvcCwgMCkKKyAKKy0gICAgY2RlZiBfbWF0cml4X3RpbWVzX21h dHJpeF8oc2VsZiwgTWF0cml4IHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY2RlZiBfbWF0cml4X3Rp bWVzX21hdHJpeF8oc2VsZiwgTWF0cml4IHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAg cmV0dXJuIGBgc2VsZipyaWdodGBgCisgCitAQCAtMTE0Niw3ICsxMTQ2LDcgQEAgY2RlZiBjbGFz cyBNYXRyaXhfbW9kbl9kZW5zZV90ZW1wbGF0ZShNYXRyaXhfZGVuc2UpOgorIAorICAgICAgICAg cmV0dXJuIGFucworIAorLSAgICBjZGVmIF92ZWN0b3JfdGltZXNfbWF0cml4XyhzZWxmLCBWZWN0 b3Igdikgbm9leGNlcHQ6CisrICAgIGNkZWYgX3ZlY3Rvcl90aW1lc19tYXRyaXhfKHNlbGYsIFZl Y3RvciB2KToKKyAgICAgICAgICIiIgorICAgICAgICAgYGB2KnNlbGZgYAorIAorQEAgLTEyMDMs NyArMTIwMyw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X21vZG5fZGVuc2VfdGVtcGxhdGUoTWF0cml4 X2RlbnNlKToKKyAgICAgICAgIHNpZ19mcmVlKF9jKQorICAgICAgICAgcmV0dXJuIGMKKyAKKy0g ICAgY2RlZiBfbWF0cml4X3RpbWVzX3ZlY3Rvcl8oc2VsZiwgVmVjdG9yIHYpIG5vZXhjZXB0Ogor KyAgICBjZGVmIF9tYXRyaXhfdGltZXNfdmVjdG9yXyhzZWxmLCBWZWN0b3Igdik6CisgICAgICAg ICAiIiIKKyAgICAgICAgIGBgc2VsZip2YGAKKyAKK0BAIC0yMjgzLDcgKzIyODMsNyBAQCBjZGVm IGNsYXNzIE1hdHJpeF9tb2RuX2RlbnNlX3RlbXBsYXRlKE1hdHJpeF9kZW5zZSk6CisgICAgICAg ICBlbHNlOgorICAgICAgICAgICAgIHJldHVybiBNYXRyaXhfZGVuc2UuZGV0ZXJtaW5hbnQoc2Vs ZikKKyAKKy0gICAgY2RlZiB4Z2NkX2VsaW1pbmF0ZShzZWxmLCBjZWxlbWVudCAqIHJvdzEsIGNl bGVtZW50KiByb3cyLCBQeV9zc2l6ZV90IHN0YXJ0X2NvbCkgbm9leGNlcHQ6CisrICAgIGNkZWYg eGdjZF9lbGltaW5hdGUoc2VsZiwgY2VsZW1lbnQgKiByb3cxLCBjZWxlbWVudCogcm93MiwgUHlf c3NpemVfdCBzdGFydF9jb2wpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmVkdWNlcyBgYHJv dzFgYCBhbmQgYGByb3cyYGAgYnkgYSB1bmltb2R1bGFyIHRyYW5zZm9ybWF0aW9uCisgICAgICAg ICB1c2luZyB0aGUgeGdjZCByZWxhdGlvbiBiZXR3ZWVuIHRoZWlyIGZpcnN0IGNvZWZmaWNpZW50 cyBgYGFgYCBhbmQKK0BAIC0yMzI1LDcgKzIzMjUsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9tb2Ru X2RlbnNlX3RlbXBsYXRlKE1hdHJpeF9kZW5zZSk6CisgICAgICAgICAgICAgcm93MVtpXSA9IHRt cAorICAgICAgICAgcmV0dXJuIGcKKyAKKy0gICAgY2RlZiByZXNjYWxlX3Jvd19jKHNlbGYsIFB5 X3NzaXplX3Qgcm93LCBtdWx0aXBsZSwgUHlfc3NpemVfdCBzdGFydF9jb2wpIG5vZXhjZXB0Ogor KyAgICBjZGVmIHJlc2NhbGVfcm93X2Moc2VsZiwgUHlfc3NpemVfdCByb3csIG11bHRpcGxlLCBQ eV9zc2l6ZV90IHN0YXJ0X2NvbCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJlc2NhbGUgYGBz ZWxmW3Jvd11gYCBieSBgYG11bHRpcGxlYGAgYnV0IG9ubHkgc3RhcnQgYXQgY29sdW1uCisgICAg ICAgICBpbmRleCBgYHN0YXJ0X2NvbGBgLgorQEAgLTIzNzYsNyArMjM3Niw3IEBAIGNkZWYgY2xh c3MgTWF0cml4X21vZG5fZGVuc2VfdGVtcGxhdGUoTWF0cml4X2RlbnNlKToKKyAgICAgICAgIGZv ciBpIGZyb20gc3RhcnRfY29sIDw9IGkgPCBzZWxmLl9uY29sczoKKyAgICAgICAgICAgICB2W2ld ID0gKHZbaV0qPGNlbGVtZW50Pm11bHRpcGxlKSAlIHAKKyAKKy0gICAgY2RlZiByZXNjYWxlX2Nv bF9jKHNlbGYsIFB5X3NzaXplX3QgY29sLCBtdWx0aXBsZSwgUHlfc3NpemVfdCBzdGFydF9yb3cp IG5vZXhjZXB0OgorKyAgICBjZGVmIHJlc2NhbGVfY29sX2Moc2VsZiwgUHlfc3NpemVfdCBjb2ws IG11bHRpcGxlLCBQeV9zc2l6ZV90IHN0YXJ0X3Jvdyk6CisgICAgICAgICAiIiIKKyAgICAgICAg IEVYQU1QTEVTOjoKKyAKK0BAIC0yNDE5LDcgKzI0MTksNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9t b2RuX2RlbnNlX3RlbXBsYXRlKE1hdHJpeF9kZW5zZSk6CisgICAgICAgICBmb3IgaSBmcm9tIHN0 YXJ0X3JvdyA8PSBpIDwgc2VsZi5fbnJvd3M6CisgICAgICAgICAgICAgc2VsZi5fbWF0cml4W2ld W2NvbF0gPSAoc2VsZi5fbWF0cml4W2ldW2NvbF0qPGNlbGVtZW50Pm11bHRpcGxlKSAlIHAKKyAK Ky0gICAgY2RlZiBhZGRfbXVsdGlwbGVfb2Zfcm93X2Moc2VsZiwgUHlfc3NpemVfdCByb3dfdG8s IFB5X3NzaXplX3Qgcm93X2Zyb20sIG11bHRpcGxlLCBQeV9zc2l6ZV90IHN0YXJ0X2NvbCkgbm9l eGNlcHQ6CisrICAgIGNkZWYgYWRkX211bHRpcGxlX29mX3Jvd19jKHNlbGYsIFB5X3NzaXplX3Qg cm93X3RvLCBQeV9zc2l6ZV90IHJvd19mcm9tLCBtdWx0aXBsZSwgUHlfc3NpemVfdCBzdGFydF9j b2wpOgorICAgICAgICAgIiIiCisgICAgICAgICBBZGQgYGBtdWx0aXBsZWBgIHRpbWVzIGBgc2Vs Zltyb3dfZnJvbV1gYCB0byBgYHNlbGZbcm93X3RvXWBgCisgICAgICAgICBzdGF0dGluZyBpbiBj b2x1bW4gYGBzdGFydF9jb2xgYC4KK0BAIC0yNDU2LDcgKzI0NTYsNyBAQCBjZGVmIGNsYXNzIE1h dHJpeF9tb2RuX2RlbnNlX3RlbXBsYXRlKE1hdHJpeF9kZW5zZSk6CisgICAgICAgICBmb3IgaSBm cm9tIHN0YXJ0X2NvbCA8PSBpIDwgbmM6CisgICAgICAgICAgICAgdl90b1tpXSA9ICgoPGNlbGVt ZW50Pm11bHRpcGxlKSAqIHZfZnJvbVtpXSArICB2X3RvW2ldKSAlIHAKKyAKKy0gICAgY2RlZiBh ZGRfbXVsdGlwbGVfb2ZfY29sdW1uX2Moc2VsZiwgUHlfc3NpemVfdCBjb2xfdG8sIFB5X3NzaXpl X3QgY29sX2Zyb20sIG11bHRpcGxlLCBQeV9zc2l6ZV90IHN0YXJ0X3Jvdykgbm9leGNlcHQ6Cisr ICAgIGNkZWYgYWRkX211bHRpcGxlX29mX2NvbHVtbl9jKHNlbGYsIFB5X3NzaXplX3QgY29sX3Rv LCBQeV9zc2l6ZV90IGNvbF9mcm9tLCBtdWx0aXBsZSwgUHlfc3NpemVfdCBzdGFydF9yb3cpOgor ICAgICAgICAgIiIiCisgICAgICAgICBBZGQgYGBtdWx0aXBsZWBgIHRpbWVzIGBgc2VsZltyb3df ZnJvbV1gYCB0byBgYHNlbGZbcm93X3RvXWBgCisgICAgICAgICBzdGF0dGluZyBpbiBjb2x1bW4g YGBzdGFydF9jb2xgYC4KK0BAIC0yNDkxLDcgKzI0OTEsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9t b2RuX2RlbnNlX3RlbXBsYXRlKE1hdHJpeF9kZW5zZSk6CisgICAgICAgICBmb3IgaSBmcm9tIHN0 YXJ0X3JvdyA8PSBpIDwgc2VsZi5fbnJvd3M6CisgICAgICAgICAgICAgbVtpXVtjb2xfdG9dID0g KG1baV1bY29sX3RvXSArICg8Y2VsZW1lbnQ+bXVsdGlwbGUpICogbVtpXVtjb2xfZnJvbV0pICVw CisgCistICAgIGNkZWYgc3dhcF9yb3dzX2Moc2VsZiwgUHlfc3NpemVfdCByb3cxLCBQeV9zc2l6 ZV90IHJvdzIpIG5vZXhjZXB0OgorKyAgICBjZGVmIHN3YXBfcm93c19jKHNlbGYsIFB5X3NzaXpl X3Qgcm93MSwgUHlfc3NpemVfdCByb3cyKToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBM RVM6OgorIAorQEAgLTI1MDksNyArMjUwOSw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X21vZG5fZGVu c2VfdGVtcGxhdGUoTWF0cml4X2RlbnNlKToKKyAgICAgICAgICAgICByMVtpXSA9IHIyW2ldCisg ICAgICAgICAgICAgcjJbaV0gPSB0ZW1wCisgCistICAgIGNkZWYgc3dhcF9jb2x1bW5zX2Moc2Vs ZiwgUHlfc3NpemVfdCBjb2wxLCBQeV9zc2l6ZV90IGNvbDIpIG5vZXhjZXB0OgorKyAgICBjZGVm IHN3YXBfY29sdW1uc19jKHNlbGYsIFB5X3NzaXplX3QgY29sMSwgUHlfc3NpemVfdCBjb2wyKToK KyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTI2NzgsNyArMjY3OCw3 IEBAIGNkZWYgY2xhc3MgTWF0cml4X21vZG5fZGVuc2VfdGVtcGxhdGUoTWF0cml4X2RlbnNlKToK KyAgICAgICAgIHJldHVybiAnTWF0cml4KCVzLCVzLCVzLFN0cmluZ1RvSW50ZWdlclNlcXVlbmNl KCIlcyIpKSclKAorICAgICAgICAgICAgIHMsIHNlbGYuX25yb3dzLCBzZWxmLl9uY29scywgc2Vs Zi5fZXhwb3J0X2FzX3N0cmluZygpKQorIAorLSAgICBjcGRlZiBfZXhwb3J0X2FzX3N0cmluZyhz ZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2V4cG9ydF9hc19zdHJpbmcoc2VsZik6CisgICAg ICAgICAiIiIKKyAgICAgICAgIFJldHVybiBzcGFjZSBzZXBhcmF0ZWQgc3RyaW5nIG9mIHRoZSBl bnRyaWVzIGluIHRoaXMgbWF0cml4LgorIAorQEAgLTI4MzAsNyArMjgzMCw3IEBAIGNkZWYgY2xh c3MgTWF0cml4X21vZG5fZGVuc2VfdGVtcGxhdGUoTWF0cml4X2RlbnNlKToKKyAKKyAgICAgICAg IHJldHVybiBNCisgCistICAgIGNkZWYgX3N0YWNrX2ltcGwoc2VsZiwgYm90dG9tKSBub2V4Y2Vw dDoKKysgICAgY2RlZiBfc3RhY2tfaW1wbChzZWxmLCBib3R0b20pOgorICAgICAgICAgciIiIgor ICAgICAgICAgSW1wbGVtZW50YXRpb24gb2YgOm1ldGg6YHN0YWNrYCBieSByZXR1cm5pbmcgYSBu ZXcgbWF0cml4CisgICAgICAgICBmb3JtZWQgYnkgYXBwZW5kaW5nIHRoZSBtYXRyaXggYGBib3R0 b21gYCBiZW5lYXRoIGBgc2VsZmBgLgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJpeC9tYXRy aXhfbW9kbl9kZW5zZV90ZW1wbGF0ZV9oZWFkZXIucHhpIGIvc3JjL3NhZ2UvbWF0cml4L21hdHJp eF9tb2RuX2RlbnNlX3RlbXBsYXRlX2hlYWRlci5weGkKK2luZGV4IDE4ZTE0OWZiNWRlLi5iNWYx MmM2OTM5NyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfbW9kbl9kZW5zZV90 ZW1wbGF0ZV9oZWFkZXIucHhpCisrKysgYi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X21vZG5fZGVu c2VfdGVtcGxhdGVfaGVhZGVyLnB4aQorQEAgLTksNiArOSw2IEBAIGNkZWYgY2xhc3MgTWF0cml4 X21vZG5fZGVuc2VfdGVtcGxhdGUoTWF0cml4X2RlbnNlKToKKyAgICAgY2RlZiBjZWxlbWVudCAq Kl9tYXRyaXgKKyAgICAgY2RlZiBjZWxlbWVudCAqX2VudHJpZXMKKyAgICAgY2RlZiBtb2RfaW50 IHAKKy0gICAgY2RlZiB4Z2NkX2VsaW1pbmF0ZSAoc2VsZiwgY2VsZW1lbnQgKiByb3cxLCBjZWxl bWVudCogcm93MiwgUHlfc3NpemVfdCBzdGFydF9jb2wpIG5vZXhjZXB0CistICAgIGNwZGVmIF9l eHBvcnRfYXNfc3RyaW5nKHNlbGYpIG5vZXhjZXB0CisrICAgIGNkZWYgeGdjZF9lbGltaW5hdGUg KHNlbGYsIGNlbGVtZW50ICogcm93MSwgY2VsZW1lbnQqIHJvdzIsIFB5X3NzaXplX3Qgc3RhcnRf Y29sKQorKyAgICBjcGRlZiBfZXhwb3J0X2FzX3N0cmluZyhzZWxmKQorICAgICBjZGVmIGludCBf Y29weV9yb3dfdG9fbW9kX2ludF9hcnJheShzZWxmLCBtb2RfaW50ICp0bywgUHlfc3NpemVfdCBp KSBub2V4Y2VwdAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfbW9kbl9zcGFy c2UucHhkIGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9tb2RuX3NwYXJzZS5weGQKK2luZGV4IDM3 ZGQ5OWJmNWYzLi5kZGVkMDY5YjNkOCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJpeC9tYXRy aXhfbW9kbl9zcGFyc2UucHhkCisrKysgYi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X21vZG5fc3Bh cnNlLnB4ZAorQEAgLTQsNCArNCw0IEBAIGZyb20gc2FnZS5tb2R1bGVzLnZlY3Rvcl9tb2RuX3Nw YXJzZSBjaW1wb3J0ICoKKyBjZGVmIGNsYXNzIE1hdHJpeF9tb2RuX3NwYXJzZShNYXRyaXhfc3Bh cnNlKToKKyAgICAgY2RlZiBjX3ZlY3Rvcl9tb2RpbnQqIHJvd3MKKyAgICAgY2RlZiBwdWJsaWMg aW50IHAKKy0gICAgY2RlZiBzd2FwX3Jvd3NfYyhzZWxmLCBQeV9zc2l6ZV90IG4xLCBQeV9zc2l6 ZV90IG4yKSBub2V4Y2VwdAorKyAgICBjZGVmIHN3YXBfcm93c19jKHNlbGYsIFB5X3NzaXplX3Qg bjEsIFB5X3NzaXplX3QgbjIpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9t b2RuX3NwYXJzZS5weXggYi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X21vZG5fc3BhcnNlLnB5eAor aW5kZXggM2JlM2M2YjBmYzUuLjU1ZmQ2NWM2MDYxIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0 cml4L21hdHJpeF9tb2RuX3NwYXJzZS5weXgKKysrKyBiL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhf bW9kbl9zcGFyc2UucHl4CitAQCAtMTczLDEwICsxNzMsMTAgQEAgY2RlZiBjbGFzcyBNYXRyaXhf bW9kbl9zcGFyc2UoTWF0cml4X3NwYXJzZSk6CisgICAgICAgICAgICAgaWYgejoKKyAgICAgICAg ICAgICAgICAgc2V0X2VudHJ5KCZzZWxmLnJvd3Nbc2UuaV0sIHNlLmosIHopCisgCistICAgIGNk ZWYgc2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3QgaiwgdmFsdWUpIG5v ZXhjZXB0OgorKyAgICBjZGVmIHNldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9zc2l6 ZV90IGosIHZhbHVlKToKKyAgICAgICAgIHNldF9lbnRyeSgmc2VsZi5yb3dzW2ldLCBqLCAoPElu dGVnZXJNb2RfaW50PiB2YWx1ZSkuaXZhbHVlKQorIAorLSAgICBjZGVmIGdldF91bnNhZmUoc2Vs ZiwgUHlfc3NpemVfdCBpLCBQeV9zc2l6ZV90IGopIG5vZXhjZXB0OgorKyAgICBjZGVmIGdldF91 bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9zc2l6ZV90IGopOgorICAgICAgICAgY2RlZiBJ bnRlZ2VyTW9kX2ludCBuCisgICAgICAgICBuID0gIEludGVnZXJNb2RfaW50Ll9fbmV3X18oSW50 ZWdlck1vZF9pbnQpCisgICAgICAgICBJbnRlZ2VyTW9kX2Fic3RyYWN0Ll9faW5pdF9fKG4sIHNl bGYuX2Jhc2VfcmluZykKK0BAIC0yNTUsNyArMjU1LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfbW9k bl9zcGFyc2UoTWF0cml4X3NwYXJzZSk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJh aXNlIFZhbHVlRXJyb3IoInVua25vd24gbWF0cml4IGZvcm1hdCIpCisgCistICAgIGNkZWYgTWF0 cml4IF9tYXRyaXhfdGltZXNfbWF0cml4XyhzZWxmLCBNYXRyaXggX3JpZ2h0KSBub2V4Y2VwdDoK KysgICAgY2RlZiBNYXRyaXggX21hdHJpeF90aW1lc19tYXRyaXhfKHNlbGYsIE1hdHJpeCBfcmln aHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBUaGlzIGNvZGUgaXMgaW1wbGljaXRseSBjYWxs ZWQgZm9yIG11bHRpcGx5aW5nIHNlbGYgYnkgYW5vdGhlcgorICAgICAgICAgc3BhcnNlIG1hdHJp eC4KK0BAIC0zOTIsNyArMzkyLDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfbW9kbl9zcGFyc2UoTWF0 cml4X3NwYXJzZSk6CisgICAgICAgICBzZWxmLmNoZWNrX2JvdW5kc19hbmRfbXV0YWJpbGl0eShy MiwwKQorICAgICAgICAgc2VsZi5zd2FwX3Jvd3NfYyhyMSwgcjIpCisgCistICAgIGNkZWYgc3dh cF9yb3dzX2Moc2VsZiwgUHlfc3NpemVfdCBuMSwgUHlfc3NpemVfdCBuMikgbm9leGNlcHQ6Cisr ICAgIGNkZWYgc3dhcF9yb3dzX2Moc2VsZiwgUHlfc3NpemVfdCBuMSwgUHlfc3NpemVfdCBuMik6 CisgICAgICAgICAiIiIKKyAgICAgICAgIFN3YXAgdGhlIHJvd3MgaW4gcG9zaXRpb25zIG4xIGFu ZCBuMi4gTm8gYm91bmRzIGNoZWNraW5nLgorICAgICAgICAgIiIiCitAQCAtNDAxLDcgKzQwMSw3 IEBAIGNkZWYgY2xhc3MgTWF0cml4X21vZG5fc3BhcnNlKE1hdHJpeF9zcGFyc2UpOgorICAgICAg ICAgc2VsZi5yb3dzW24xXSA9IHNlbGYucm93c1tuMl0KKyAgICAgICAgIHNlbGYucm93c1tuMl0g PSB0bXAKKyAKKy0gICAgY3BkZWYgX2VjaGVsb25faW5fcGxhY2Uoc2VsZiwgc3RyIGFsZ29yaXRo bSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9lY2hlbG9uX2luX3BsYWNlKHNlbGYsIHN0ciBhbGdv cml0aG0pOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXBsYWNlIHNlbGYgYnkgaXRzIHJlZHVj dGlvbiB0byByZWR1Y2VkIHJvdyBlY2hlbG9uIGZvcm0uCisgCitkaWZmIC0tZ2l0IGEvc3JjL3Nh Z2UvbWF0cml4L21hdHJpeF9udW1weV9kZW5zZS5weGQgYi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4 X251bXB5X2RlbnNlLnB4ZAoraW5kZXggMTUwZjlkNTk1NTEuLjRmZTJjNjVlMGZjIDEwMDY0NAor LS0tIGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9udW1weV9kZW5zZS5weGQKKysrKyBiL3NyYy9z YWdlL21hdHJpeC9tYXRyaXhfbnVtcHlfZGVuc2UucHhkCitAQCAtOSw1ICs5LDUgQEAgY2RlZiBj bGFzcyBNYXRyaXhfbnVtcHlfZGVuc2UoTWF0cml4X2RlbnNlKToKKyAgICAgY2RlZiBvYmplY3Qg X3B5dGhvbl9kdHlwZQorICAgICBjZGVmIG9iamVjdCBfc2FnZV9kdHlwZQorICAgICBjZGVmIG9i amVjdCBfc2FnZV92ZWN0b3JfZHR5cGUKKy0gICAgY2RlZiBNYXRyaXhfbnVtcHlfZGVuc2UgX25l dyhzZWxmLCBpbnQgbnJvd3M9KiwgaW50IG5jb2xzPSopIG5vZXhjZXB0CisrICAgIGNkZWYgTWF0 cml4X251bXB5X2RlbnNlIF9uZXcoc2VsZiwgaW50IG5yb3dzPSosIGludCBuY29scz0qKQorICAg ICBjZGVmIGNudW1weS5uZGFycmF5IF9tYXRyaXhfbnVtcHkKK2RpZmYgLS1naXQgYS9zcmMvc2Fn ZS9tYXRyaXgvbWF0cml4X251bXB5X2RlbnNlLnB5eCBiL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhf bnVtcHlfZGVuc2UucHl4CitpbmRleCAzZTMzNTk5YmY3MC4uNDAxZjExNWVkNzggMTAwNjQ0Cist LS0gYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X251bXB5X2RlbnNlLnB5eAorKysrIGIvc3JjL3Nh Z2UvbWF0cml4L21hdHJpeF9udW1weV9kZW5zZS5weXgKK0BAIC0xNDUsNyArMTQ1LDcgQEAgY2Rl ZiBjbGFzcyBNYXRyaXhfbnVtcHlfZGVuc2UoTWF0cml4X2RlbnNlKToKKyAgICAgICAgICAgICBm b3IgaiBpbiByYW5nZShtYS5uY29scyk6CisgICAgICAgICAgICAgICAgIHNlbGYuc2V0X3Vuc2Fm ZShpLCBqLCBuZXh0KGl0KSkKKyAKKy0gICAgY2RlZiBzZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXpl X3QgaSwgUHlfc3NpemVfdCBqLCBvYmplY3QgdmFsdWUpIG5vZXhjZXB0OgorKyAgICBjZGVmIHNl dF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9zc2l6ZV90IGosIG9iamVjdCB2YWx1ZSk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIFNldCB0aGUgKGksaikgZW50cnkgdG8gdmFsdWUgd2l0 aG91dCBhbnkgYm91bmRzIGNoZWNraW5nLAorICAgICAgICAgbXV0YWJpbGl0eSBjaGVja2luZywg ZXRjLgorQEAgLTE2OSw3ICsxNjksNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9udW1weV9kZW5zZShN YXRyaXhfZGVuc2UpOgorICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3B5dGhvbl9kdHlw ZSh2YWx1ZSkpCisgICAgICAgICAjVE9ETzogVGhyb3cgYW4gZXJyb3IgaWYgc3RhdHVzID09IC0x CisgCistICAgIGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3Qg aikgbm9leGNlcHQ6CisrICAgIGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IGksIFB5 X3NzaXplX3Qgaik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEdldCB0aGUgKGksaikgZW50cnkg d2l0aG91dCBhbnkgYm91bmRzIGNoZWNraW5nLCBldGMuCisgICAgICAgICAiIiIKK0BAIC0xNzcs NyArMTc3LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfbnVtcHlfZGVuc2UoTWF0cml4X2RlbnNlKToK KyAgICAgICAgIHJldHVybiBzZWxmLl9zYWdlX2R0eXBlKGNudW1weS5QeUFycmF5X0dFVElURU0o c2VsZi5fbWF0cml4X251bXB5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNudW1weS5QeUFycmF5X0dFVFBUUjIoc2VsZi5fbWF0cml4X251bXB5LCBp LCBqKSkpCisgCistICAgIGNkZWYgTWF0cml4X251bXB5X2RlbnNlIF9uZXcoc2VsZiwgaW50IG5y b3dzPS0xLCBpbnQgbmNvbHM9LTEpIG5vZXhjZXB0OgorKyAgICBjZGVmIE1hdHJpeF9udW1weV9k ZW5zZSBfbmV3KHNlbGYsIGludCBucm93cz0tMSwgaW50IG5jb2xzPS0xKToKKyAgICAgICAgICIi IgorICAgICAgICAgUmV0dXJuIGEgbmV3IHVuaW5pdGlhbGl6ZWQgbWF0cml4IHdpdGggc2FtZSBw YXJlbnQgYXMgYGBzZWxmYGAuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cml4L21hdHJp eF9yYXRpb25hbF9kZW5zZS5weGQgYi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X3JhdGlvbmFsX2Rl bnNlLnB4ZAoraW5kZXggNmE2MzQ3ZjQ5MjYuLmQyZDk5NTVmZWZjIDEwMDY0NAorLS0tIGEvc3Jj L3NhZ2UvbWF0cml4L21hdHJpeF9yYXRpb25hbF9kZW5zZS5weGQKKysrKyBiL3NyYy9zYWdlL21h dHJpeC9tYXRyaXhfcmF0aW9uYWxfZGVuc2UucHhkCitAQCAtOCwxNCArOCwxNCBAQCBjZGVmIGNs YXNzIE1hdHJpeF9yYXRpb25hbF9kZW5zZShNYXRyaXhfZGVuc2UpOgorICAgICBjZGVmIGludCBm bXB6X2hlaWdodChzZWxmLCBmbXB6X3QgaGVpZ2h0KSBleGNlcHQgLTEKKyAjICAgIGNkZWYgaW50 IF9yZXNjYWxlKHNlbGYsIG1wcV90IGEpIGV4Y2VwdCAtMQorIAorLSAgICBjZGVmIF9waWNrbGVf dmVyc2lvbjAoc2VsZikgbm9leGNlcHQKKy0gICAgY2RlZiBfdW5waWNrbGVfdmVyc2lvbjAoc2Vs ZiwgZGF0YSkgbm9leGNlcHQKKy0gICAgY3BkZWYgX2V4cG9ydF9hc19zdHJpbmcoc2VsZiwgaW50 IGJhc2U9Pykgbm9leGNlcHQKKysgICAgY2RlZiBfcGlja2xlX3ZlcnNpb24wKHNlbGYpCisrICAg IGNkZWYgX3VucGlja2xlX3ZlcnNpb24wKHNlbGYsIGRhdGEpCisrICAgIGNwZGVmIF9leHBvcnRf YXNfc3RyaW5nKHNlbGYsIGludCBiYXNlPT8pCisgCistICAgIGNkZWYgX2FkZF91aV91bnNhZmVf YXNzdW1pbmdfaW50KHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqLCB1bnNpZ25lZCBs b25nIGludCBuKSBub2V4Y2VwdAorLSAgICBjZGVmIF9zdWJfdWlfdW5zYWZlX2Fzc3VtaW5nX2lu dChzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3QgaiwgdW5zaWduZWQgbG9uZyBpbnQgbikg bm9leGNlcHQKKysgICAgY2RlZiBfYWRkX3VpX3Vuc2FmZV9hc3N1bWluZ19pbnQoc2VsZiwgUHlf c3NpemVfdCBpLCBQeV9zc2l6ZV90IGosIHVuc2lnbmVkIGxvbmcgaW50IG4pCisrICAgIGNkZWYg X3N1Yl91aV91bnNhZmVfYXNzdW1pbmdfaW50KHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVf dCBqLCB1bnNpZ25lZCBsb25nIGludCBuKQorIAorLSAgICBjZGVmIGlubGluZSBNYXRyaXhfcmF0 aW9uYWxfZGVuc2UgX25ld19tYXRyaXgoc2VsZiwgUHlfc3NpemVfdCBucm93cywgUHlfc3NpemVf dCBuY29scykgbm9leGNlcHQKKysgICAgY2RlZiBpbmxpbmUgTWF0cml4X3JhdGlvbmFsX2RlbnNl IF9uZXdfbWF0cml4KHNlbGYsIFB5X3NzaXplX3QgbnJvd3MsIFB5X3NzaXplX3QgbmNvbHMpCisg CisgY2RlZiBjbGFzcyBNYXRyaXhXaW5kb3c6CisgICAgIGNkZWYgTWF0cml4X3JhdGlvbmFsX2Rl bnNlIF9tYXRyaXgKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X3JhdGlvbmFs X2RlbnNlLnB5eCBiL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfcmF0aW9uYWxfZGVuc2UucHl4Citp bmRleCAxNWU0ODE0OTMwNi4uODJkNTE0Y2I0MTggMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tYXRy aXgvbWF0cml4X3JhdGlvbmFsX2RlbnNlLnB5eAorKysrIGIvc3JjL3NhZ2UvbWF0cml4L21hdHJp eF9yYXRpb25hbF9kZW5zZS5weXgKK0BAIC0xNDcsNyArMTQ3LDcgQEAgY2RlZiBjbGFzcyBNYXRy aXhfcmF0aW9uYWxfZGVuc2UoTWF0cml4X2RlbnNlKToKKyAgICAgICAgIGZtcHFfbWF0X2luaXQo c2VsZi5fbWF0cml4LCBzZWxmLl9ucm93cywgc2VsZi5fbmNvbHMpCisgICAgICAgICBzaWdfb2Zm KCkKKyAKKy0gICAgY2RlZiBpbmxpbmUgTWF0cml4X3JhdGlvbmFsX2RlbnNlIF9uZXdfbWF0cml4 KHNlbGYsIFB5X3NzaXplX3QgbnJvd3MsIFB5X3NzaXplX3QgbmNvbHMpIG5vZXhjZXB0OgorKyAg ICBjZGVmIGlubGluZSBNYXRyaXhfcmF0aW9uYWxfZGVuc2UgX25ld19tYXRyaXgoc2VsZiwgUHlf c3NpemVfdCBucm93cywgUHlfc3NpemVfdCBuY29scyk6CisgICAgICAgICBpZiBucm93cyA9PSBz ZWxmLl9ucm93cyBhbmQgbmNvbHMgPT0gc2VsZi5fbmNvbHM6CisgICAgICAgICAgICAgcGFyZW50 ID0gc2VsZi5fcGFyZW50CisgICAgICAgICBlbHNlOgorQEAgLTI1NSwxMCArMjU1LDEwIEBAIGNk ZWYgY2xhc3MgTWF0cml4X3JhdGlvbmFsX2RlbnNlKE1hdHJpeF9kZW5zZSk6CisgICAgICAgICAg ICAgICAgICB0bXApCisgICAgICAgICBmbXBxX2NsZWFyKHRtcCkKKyAKKy0gICAgY2RlZiBzZXRf dW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqLCB2YWx1ZSkgbm9leGNlcHQ6 CisrICAgIGNkZWYgc2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3Qgaiwg dmFsdWUpOgorICAgICAgICAgZm1wcV9zZXRfbXBxKGZtcHFfbWF0X2VudHJ5KHNlbGYuX21hdHJp eCwgaSwgaiksICg8UmF0aW9uYWw+IHZhbHVlKS52YWx1ZSkKKyAKKy0gICAgY2RlZiBnZXRfdW5z YWZlKHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqKSBub2V4Y2VwdDoKKysgICAgY2Rl ZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqKToKKyAgICAgICAg IGNkZWYgUmF0aW9uYWwgeAorICAgICAgICAgeCA9IFJhdGlvbmFsLl9fbmV3X18oUmF0aW9uYWwp CisgICAgICAgICBmbXBxX2dldF9tcHEoeC52YWx1ZSwgZm1wcV9tYXRfZW50cnkoc2VsZi5fbWF0 cml4LCBpLCBqKSkKK0BAIC0yNzUsMTQgKzI3NSwxNCBAQCBjZGVmIGNsYXNzIE1hdHJpeF9yYXRp b25hbF9kZW5zZShNYXRyaXhfZGVuc2UpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4g Zm1wcV9pc196ZXJvKGZtcHFfbWF0X2VudHJ5KHNlbGYuX21hdHJpeCwgaSxqKSkKKyAKKy0gICAg Y2RlZiBfYWRkX3VpX3Vuc2FmZV9hc3N1bWluZ19pbnQoc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9z c2l6ZV90IGosIHVuc2lnbmVkIGxvbmcgaW50IG4pIG5vZXhjZXB0OgorKyAgICBjZGVmIF9hZGRf dWlfdW5zYWZlX2Fzc3VtaW5nX2ludChzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3Qgaiwg dW5zaWduZWQgbG9uZyBpbnQgbik6CisgICAgICAgICAjIGRvZXNuJ3QgY2hlY2sgaW1tdXRhYmls aXR5CisgICAgICAgICAjIGRvZXNuJ3QgZG8gYm91bmRzIGNoZWNrcy4KKyAgICAgICAgICMgYXNz dW1lcyB0aGF0IHNlbGZbaSxqXSBpcyBhbiBpbnRlZ2VyLgorICAgICAgICAgY2RlZiBmbXB6ICog ZW50cnkgPSBmbXBxX251bXJlZihmbXBxX21hdF9lbnRyeShzZWxmLl9tYXRyaXgsIGksIGopKQor ICAgICAgICAgZm1wel9hZGRfdWkoZW50cnksIGVudHJ5LCBuKQorIAorLSAgICBjZGVmIF9zdWJf dWlfdW5zYWZlX2Fzc3VtaW5nX2ludChzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3Qgaiwg dW5zaWduZWQgbG9uZyBpbnQgbikgbm9leGNlcHQ6CisrICAgIGNkZWYgX3N1Yl91aV91bnNhZmVf YXNzdW1pbmdfaW50KHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqLCB1bnNpZ25lZCBs b25nIGludCBuKToKKyAgICAgICAgICMgZG9lc24ndCBjaGVjayBpbW11dGFiaWxpdHkKKyAgICAg ICAgICMgZG9lc24ndCBkbyBib3VuZHMgY2hlY2tzLgorICAgICAgICAgIyBhc3N1bWVzIHRoYXQg c2VsZltpLGpdIGlzIGFuIGludGVnZXIuCitAQCAtMjk4LDEwICsyOTgsMTAgQEAgY2RlZiBjbGFz cyBNYXRyaXhfcmF0aW9uYWxfZGVuc2UoTWF0cml4X2RlbnNlKToKKyAgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCJ1bmtub3duIG1hdHJpeCB2ZXJzaW9uICg9 JXMpIiAlIHZlcnNpb24pCisgCistICAgIGNkZWYgX3BpY2tsZV92ZXJzaW9uMChzZWxmKSBub2V4 Y2VwdDoKKysgICAgY2RlZiBfcGlja2xlX3ZlcnNpb24wKHNlbGYpOgorICAgICAgICAgcmV0dXJu IHNlbGYuX2V4cG9ydF9hc19zdHJpbmcoMzIpCisgCistICAgIGNwZGVmIF9leHBvcnRfYXNfc3Ry aW5nKHNlbGYsIGludCBiYXNlPTEwKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2V4cG9ydF9hc19z dHJpbmcoc2VsZiwgaW50IGJhc2U9MTApOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4g c3BhY2Ugc2VwYXJhdGVkIHN0cmluZyBvZiB0aGUgZW50cmllcyBpbiB0aGlzIG1hdHJpeCwgaW4g dGhlCisgICAgICAgICBnaXZlbiBiYXNlLiBUaGlzIGlzIG9wdGltaXplZCBmb3Igc3BlZWQuCitA QCAtMzU2LDcgKzM1Niw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X3JhdGlvbmFsX2RlbnNlKE1hdHJp eF9kZW5zZSk6CisgICAgICAgICAgICAgc2lnX2ZyZWUocykKKyAgICAgICAgIHJldHVybiBkYXRh CisgCistICAgIGNkZWYgX3VucGlja2xlX3ZlcnNpb24wKHNlbGYsIGRhdGEpIG5vZXhjZXB0Ogor KyAgICBjZGVmIF91bnBpY2tsZV92ZXJzaW9uMChzZWxmLCBkYXRhKToKKyAgICAgICAgIHIiIiIK KyAgICAgICAgIFRFU1RTOjoKKyAKK0BAIC0zOTgsNyArMzk4LDcgQEAgY2RlZiBjbGFzcyBNYXRy aXhfcmF0aW9uYWxfZGVuc2UoTWF0cml4X2RlbnNlKToKKyAgICAgIyAgICogX2RpY3QgLS0gc3Bh cnNlIGRpY3Rpb25hcnkgb2YgdW5kZXJseWluZyBlbGVtZW50cyAobmVlZCBub3QgYmUgYSBjb3B5 KQorICAgICAjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgCistICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVt ZW50IHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgcmln aHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtNDE3LDcgKzQx Nyw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X3JhdGlvbmFsX2RlbnNlKE1hdHJpeF9kZW5zZSk6Cisg ICAgICAgICBmbXBxX2NsZWFyKHgpCisgICAgICAgICByZXR1cm4gTQorIAorLSAgICBjcGRlZiBf YWRkXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0 KToKKyAgICAgICAgICIiIgorICAgICAgICAgQWRkIHR3byBkZW5zZSBtYXRyaWNlcyBvdmVyIFFR LgorIAorQEAgLTQ0MCw3ICs0NDAsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9yYXRpb25hbF9kZW5z ZShNYXRyaXhfZGVuc2UpOgorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1cm4gYW5z CisgCistICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X3N1Yl8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBTdWJ0cmFjdCB0d28g ZGVuc2UgbWF0cmljZXMgb3ZlciBRUS4KKyAKK0BAIC00NjEsNyArNDYxLDcgQEAgY2RlZiBjbGFz cyBNYXRyaXhfcmF0aW9uYWxfZGVuc2UoTWF0cml4X2RlbnNlKToKKyAgICAgICAgIHNpZ19vZmYo KQorICAgICAgICAgcmV0dXJuIGFucworIAorLSAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgcmln aHQsIGludCBvcCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCByaWdodCwg aW50IG9wKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFRFU1RTOjoKKyAKK0BAIC01MDIsNyAr NTAyLDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfcmF0aW9uYWxfZGVuc2UoTWF0cml4X2RlbnNlKToK KyAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmljaF90b19ib29sKG9wLCAtMSkKKyAg ICAgICAgIHJldHVybiByaWNoX3RvX2Jvb2wob3AsIDApCisgCistICAgIGNkZWYgX3ZlY3Rvcl90 aW1lc19tYXRyaXhfKHNlbGYsIFZlY3RvciB2KSBub2V4Y2VwdDoKKysgICAgY2RlZiBfdmVjdG9y X3RpbWVzX21hdHJpeF8oc2VsZiwgVmVjdG9yIHYpOgorICAgICAgICAgciIiIgorICAgICAgICAg UmV0dXJuIHRoZSB2ZWN0b3IgdGltZXMgbWF0cml4IHByb2R1Y3QuCisgCitAQCAtMTEyNyw3ICsx MTI3LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfcmF0aW9uYWxfZGVuc2UoTWF0cml4X2RlbnNlKToK KyAgICAgICAgIHNlbGYuY2FjaGUoJ21pbnBvbHknLCBnKQorICAgICAgICAgcmV0dXJuIGcKKyAK Ky0gICAgY2RlZiBzYWdlLnN0cnVjdHVyZS5lbGVtZW50Lk1hdHJpeCBfbWF0cml4X3RpbWVzX21h dHJpeF8oc2VsZiwgc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5NYXRyaXggcmlnaHQpIG5vZXhjZXB0 OgorKyAgICBjZGVmIHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuTWF0cml4IF9tYXRyaXhfdGltZXNf bWF0cml4XyhzZWxmLCBzYWdlLnN0cnVjdHVyZS5lbGVtZW50Lk1hdHJpeCByaWdodCk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0xODA5LDcgKzE4MDksNyBAQCBj ZGVmIGNsYXNzIE1hdHJpeF9yYXRpb25hbF9kZW5zZShNYXRyaXhfZGVuc2UpOgorICAgICAgICAg Zm1wcV9tYXRfc3dhcChzZWxmLl9tYXRyaXgsICg8TWF0cml4X3JhdGlvbmFsX2RlbnNlPkUpLl9t YXRyaXgpCisgICAgICAgICByZXR1cm4gcGl2b3RzCisgCistICAgIGNkZWYgc3dhcF9yb3dzX2Mo c2VsZiwgUHlfc3NpemVfdCByMSwgUHlfc3NpemVfdCByMikgbm9leGNlcHQ6CisrICAgIGNkZWYg c3dhcF9yb3dzX2Moc2VsZiwgUHlfc3NpemVfdCByMSwgUHlfc3NpemVfdCByMik6CisgICAgICAg ICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0xODI1LDcgKzE4MjUsNyBAQCBjZGVm IGNsYXNzIE1hdHJpeF9yYXRpb25hbF9kZW5zZShNYXRyaXhfZGVuc2UpOgorICAgICAgICAgICAg IGZtcHFfc3dhcChmbXBxX21hdF9lbnRyeShzZWxmLl9tYXRyaXgsIHIxLCBjKSwKKyAgICAgICAg ICAgICAgICAgICAgICAgZm1wcV9tYXRfZW50cnkoc2VsZi5fbWF0cml4LCByMiwgYykpCisgCist ICAgIGNkZWYgc3dhcF9jb2x1bW5zX2Moc2VsZiwgUHlfc3NpemVfdCBjMSwgUHlfc3NpemVfdCBj Mikgbm9leGNlcHQ6CisrICAgIGNkZWYgc3dhcF9jb2x1bW5zX2Moc2VsZiwgUHlfc3NpemVfdCBj MSwgUHlfc3NpemVfdCBjMik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAK K0BAIC0yOTk2LDcgKzI5OTYsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9yYXRpb25hbF9kZW5zZShN YXRyaXhfZGVuc2UpOgorICAgICAgICAgcmV0dXJuIEEuaXNfTExMX3JlZHVjZWQoZGVsdGEsIGV0 YSkKKyAKKyAKKy1jZGVmIG5ld19tYXRyaXhfZnJvbV9wYXJpX0dFTihwYXJlbnQsIEdFTiBkKSBu b2V4Y2VwdDoKKytjZGVmIG5ld19tYXRyaXhfZnJvbV9wYXJpX0dFTihwYXJlbnQsIEdFTiBkKToK KyAgICAgIiIiCisgICAgIEdpdmVuIGEgUEFSSSBHRU4gd2l0aCBgYHRfSU5UYGAgb3IgYGB0X0ZS QUMgZW50cmllcywgY3JlYXRlIGEKKyAgICAgOmNsYXNzOmBNYXRyaXhfcmF0aW9uYWxfZGVuc2Vg IGZyb20gaXQuCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9yYXRpb25hbF9z cGFyc2UucHl4IGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9yYXRpb25hbF9zcGFyc2UucHl4Citp bmRleCA5NmQyNDAyZGQ4My4uZGFjMDZhM2NmZDMgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tYXRy aXgvbWF0cml4X3JhdGlvbmFsX3NwYXJzZS5weXgKKysrKyBiL3NyYy9zYWdlL21hdHJpeC9tYXRy aXhfcmF0aW9uYWxfc3BhcnNlLnB5eAorQEAgLTkzLDEwICs5MywxMCBAQCBjZGVmIGNsYXNzIE1h dHJpeF9yYXRpb25hbF9zcGFyc2UoTWF0cml4X3NwYXJzZSk6CisgICAgICAgICAgICAgaWYgejoK KyAgICAgICAgICAgICAgICAgbXBxX3ZlY3Rvcl9zZXRfZW50cnkoJnNlbGYuX21hdHJpeFtzZS5p XSwgc2Uuaiwgei52YWx1ZSkKKyAKKy0gICAgY2RlZiBzZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXpl X3QgaSwgUHlfc3NpemVfdCBqLCB4KSBub2V4Y2VwdDoKKysgICAgY2RlZiBzZXRfdW5zYWZlKHNl bGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqLCB4KToKKyAgICAgICAgIG1wcV92ZWN0b3Jf c2V0X2VudHJ5KCZzZWxmLl9tYXRyaXhbaV0sIGosICg8UmF0aW9uYWw+IHgpLnZhbHVlKQorIAor LSAgICBjZGVmIGdldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9zc2l6ZV90IGopIG5v ZXhjZXB0OgorKyAgICBjZGVmIGdldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9zc2l6 ZV90IGopOgorICAgICAgICAgY2RlZiBSYXRpb25hbCB4CisgICAgICAgICB4ID0gUmF0aW9uYWwo KQorICAgICAgICAgbXBxX3ZlY3Rvcl9nZXRfZW50cnkoeC52YWx1ZSwgJnNlbGYuX21hdHJpeFtp XSwgaikKK0BAIC0xNjgsNyArMTY4LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfcmF0aW9uYWxfc3Bh cnNlKE1hdHJpeF9zcGFyc2UpOgorICAgICAjICAgKiBfbGlzdCAtLSBsaXN0IG9mIHVuZGVybHlp bmcgZWxlbWVudHMgKG5lZWQgbm90IGJlIGEgY29weSkKKyAgICAgIyAgICogeCBfZGljdCAtLSBz cGFyc2UgZGljdGlvbmFyeSBvZiB1bmRlcmx5aW5nIGVsZW1lbnRzIChuZWVkIG5vdCBiZSBhIGNv cHkpCisgCistICAgIGNkZWYgc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5NYXRyaXggX21hdHJpeF90 aW1lc19tYXRyaXhfKHNlbGYsIHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuTWF0cml4IF9yaWdodCkg bm9leGNlcHQ6CisrICAgIGNkZWYgc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5NYXRyaXggX21hdHJp eF90aW1lc19tYXRyaXhfKHNlbGYsIHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuTWF0cml4IF9yaWdo dCk6CisgICAgICAgICBjZGVmIE1hdHJpeF9yYXRpb25hbF9zcGFyc2UgcmlnaHQsIGFucworICAg ICAgICAgcmlnaHQgPSBfcmlnaHQKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyaXgvbWF0 cml4X3JlYWxfZG91YmxlX2RlbnNlLnB4ZCBiL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfcmVhbF9k b3VibGVfZGVuc2UucHhkCitpbmRleCBkMGJhZGY0ODI0MC4uZDc4MWE4NGNlNDAgMTAwNjQ0Cist LS0gYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X3JlYWxfZG91YmxlX2RlbnNlLnB4ZAorKysrIGIv c3JjL3NhZ2UvbWF0cml4L21hdHJpeF9yZWFsX2RvdWJsZV9kZW5zZS5weGQKK0BAIC0yLDUgKzIs NSBAQCBmcm9tIHNhZ2UubWF0cml4Lm1hdHJpeF9kb3VibGVfZGVuc2UgY2ltcG9ydCBNYXRyaXhf ZG91YmxlX2RlbnNlCisgCisgCisgY2RlZiBjbGFzcyBNYXRyaXhfcmVhbF9kb3VibGVfZGVuc2Uo TWF0cml4X2RvdWJsZV9kZW5zZSk6CistICAgIGNkZWYgc2V0X3Vuc2FmZV9kb3VibGUoc2VsZiwg UHlfc3NpemVfdCBpLCBQeV9zc2l6ZV90IGosIGRvdWJsZSB2YWx1ZSkgbm9leGNlcHQKKysgICAg Y2RlZiBzZXRfdW5zYWZlX2RvdWJsZShzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3Qgaiwg ZG91YmxlIHZhbHVlKQorICAgICBjZGVmIGRvdWJsZSBnZXRfdW5zYWZlX2RvdWJsZShzZWxmLCBQ eV9zc2l6ZV90IGksIFB5X3NzaXplX3Qgaikgbm9leGNlcHQKK2RpZmYgLS1naXQgYS9zcmMvc2Fn ZS9tYXRyaXgvbWF0cml4X3JlYWxfZG91YmxlX2RlbnNlLnB5eCBiL3NyYy9zYWdlL21hdHJpeC9t YXRyaXhfcmVhbF9kb3VibGVfZGVuc2UucHl4CitpbmRleCAxMzM3NjQxYmIyNC4uMTBlYWVhYzRl NTYgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X3JlYWxfZG91YmxlX2RlbnNl LnB5eAorKysrIGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9yZWFsX2RvdWJsZV9kZW5zZS5weXgK K0BAIC05OSw3ICs5OSw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X3JlYWxfZG91YmxlX2RlbnNlKE1h dHJpeF9kb3VibGVfZGVuc2UpOgorICAgICAgICAgc2VsZi5fX2NyZWF0ZV9tYXRyaXhfXygpCisg ICAgICAgICByZXR1cm4KKyAKKy0gICAgY2RlZiBzZXRfdW5zYWZlX2RvdWJsZShzZWxmLCBQeV9z c2l6ZV90IGksIFB5X3NzaXplX3QgaiwgZG91YmxlIHZhbHVlKSBub2V4Y2VwdDoKKysgICAgY2Rl ZiBzZXRfdW5zYWZlX2RvdWJsZShzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3QgaiwgZG91 YmxlIHZhbHVlKToKKyAgICAgICAgICIiIgorICAgICAgICAgU2V0IHRoZSAoaSxqKSBlbnRyeSB0 byB2YWx1ZSB3aXRob3V0IGFueSB0eXBlIGNoZWNraW5nIG9yCisgICAgICAgICBib3VuZCBjaGVj a2luZy4KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X3NwYXJzZS5weXggYi9z cmMvc2FnZS9tYXRyaXgvbWF0cml4X3NwYXJzZS5weXgKK2luZGV4IDA2NDhmNDg4Zjk4Li4wMGQ4 ZWU3ZmJjOCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfc3BhcnNlLnB5eAor KysrIGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9zcGFyc2UucHl4CitAQCAtMzAxLDcgKzMwMSw3 IEBAIGNkZWYgY2xhc3MgTWF0cml4X3NwYXJzZShtYXRyaXguTWF0cml4KToKKyAKKyAgICAgICAg IHJldHVybiBsZWZ0Lm5ld19tYXRyaXgobGVmdC5fbnJvd3MsIHJpZ2h0Ll9uY29scywgZW50cmll cz1lLCBjb2VyY2U9RmFsc2UsIGNvcHk9RmFsc2UpCisgCistICAgIGNwZGVmIF9sbXVsXyhzZWxm LCBFbGVtZW50IHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1l bnQgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBMZWZ0IHNjYWxhciBtdWx0aXBsaWNh dGlvbi4gSW50ZXJuYWwgdXNhZ2Ugb25seS4KKyAKK0BAIC0zNzAsNyArMzcwLDcgQEAgY2RlZiBj bGFzcyBNYXRyaXhfc3BhcnNlKG1hdHJpeC5NYXRyaXgpOgorICAgICAgICAgZWxzZToKKyAgICAg ICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoInVua25vd24gbWF0cml4IHZlcnNpb24gKD0lcyki ICUgdmVyc2lvbikKKyAKKy0gICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIHJpZ2h0LCBpbnQgb3Ap IG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgcmlnaHQsIGludCBvcCk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIFJpY2ggY29tcGFyaXNvbi4KKyAKK0BAIC05NjgsNyArOTY4 LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfc3BhcnNlKG1hdHJpeC5NYXRyaXgpOgorICAgICAgICAg ICAgICAgICAgICAgICAgIEEuc2V0X3Vuc2FmZShuZXdfcm93LCBuZXdfY29sLCBlbnRyeSkKKyAg ICAgICAgIHJldHVybiBBCisgCistICAgIGNkZWYgX3N0YWNrX2ltcGwoc2VsZiwgYm90dG9tKSBu b2V4Y2VwdDoKKysgICAgY2RlZiBfc3RhY2tfaW1wbChzZWxmLCBib3R0b20pOgorICAgICAgICAg ciIiIgorICAgICAgICAgU3RhY2sgYGBzZWxmYGAgb24gdG9wIG9mIGBgYm90dG9tYGA6OgorIAor QEAgLTExMTksNyArMTExOSw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X3NwYXJzZShtYXRyaXguTWF0 cml4KToKKyAgICAgICAgICAgICBaLl9zdWJkaXZpZGVfb25fYXVnbWVudChzZWxmLCBvdGhlcikK KyAgICAgICAgIHJldHVybiBaCisgCistICAgIGNkZWYgX3ZlY3Rvcl90aW1lc19tYXRyaXhfKHNl bGYsIFZlY3RvciB2KSBub2V4Y2VwdDoKKysgICAgY2RlZiBfdmVjdG9yX3RpbWVzX21hdHJpeF8o c2VsZiwgVmVjdG9yIHYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHZlY3Rv ciB0aW1lcyBtYXRyaXggcHJvZHVjdC4KKyAKK0BAIC0xMTUyLDcgKzExNTIsNyBAQCBjZGVmIGNs YXNzIE1hdHJpeF9zcGFyc2UobWF0cml4Lk1hdHJpeCk6CisgICAgICAgICAgICAgc1tqXSArPSB2 W2ldICogYQorICAgICAgICAgcmV0dXJuIHMKKyAKKy0gICAgY2RlZiBfbWF0cml4X3RpbWVzX3Zl Y3Rvcl8oc2VsZiwgVmVjdG9yIHYpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9tYXRyaXhfdGltZXNf dmVjdG9yXyhzZWxmLCBWZWN0b3Igdik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0 aGUgbWF0cml4IHRpbWVzIHZlY3RvciBwcm9kdWN0LgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdl L21hdHJpeC9tYXRyaXhfd2luZG93LnB4ZCBiL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfd2luZG93 LnB4ZAoraW5kZXggYzMzZDVkMTY4MDYuLjA3MGYxZGVhZjI1IDEwMDY0NAorLS0tIGEvc3JjL3Nh Z2UvbWF0cml4L21hdHJpeF93aW5kb3cucHhkCisrKysgYi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4 X3dpbmRvdy5weGQKK0BAIC03LDMwICs3LDMwIEBAIGNkZWYgY2xhc3MgTWF0cml4V2luZG93Ogor ICAgICBjZGVmIG9iamVjdCBfY2FjaGVkX3plcm8KKyAKKyAgICAgIyBZT1UgKlJFQUxMWSBTSE9V TEQqIE9WRVJSSURFIFRIRVNFOgorLSAgICBjcGRlZiBhZGQoTWF0cml4V2luZG93IHNlbGYsIE1h dHJpeFdpbmRvdyBBKSBub2V4Y2VwdAorLSAgICBjcGRlZiBzdWJ0cmFjdChNYXRyaXhXaW5kb3cg c2VsZiwgTWF0cml4V2luZG93IEEpIG5vZXhjZXB0CistICAgIGNwZGVmIHNldF90b19zdW0oTWF0 cml4V2luZG93IHNlbGYsIE1hdHJpeFdpbmRvdyBBLCBNYXRyaXhXaW5kb3cgQikgbm9leGNlcHQK Ky0gICAgY3BkZWYgc2V0X3RvX2RpZmYoTWF0cml4V2luZG93IHNlbGYsIE1hdHJpeFdpbmRvdyBB LCBNYXRyaXhXaW5kb3cgQikgbm9leGNlcHQKKy0gICAgY3BkZWYgc2V0X3RvX3Byb2QoTWF0cml4 V2luZG93IHNlbGYsIE1hdHJpeFdpbmRvdyBBLCBNYXRyaXhXaW5kb3cgQikgbm9leGNlcHQKKy0g ICAgY3BkZWYgYWRkX3Byb2QoTWF0cml4V2luZG93IHNlbGYsIE1hdHJpeFdpbmRvdyBBLCBNYXRy aXhXaW5kb3cgQikgbm9leGNlcHQKKy0gICAgY3BkZWYgc3VidHJhY3RfcHJvZChNYXRyaXhXaW5k b3cgc2VsZiwgTWF0cml4V2luZG93IEEsIE1hdHJpeFdpbmRvdyBCKSBub2V4Y2VwdAorKyAgICBj cGRlZiBhZGQoTWF0cml4V2luZG93IHNlbGYsIE1hdHJpeFdpbmRvdyBBKQorKyAgICBjcGRlZiBz dWJ0cmFjdChNYXRyaXhXaW5kb3cgc2VsZiwgTWF0cml4V2luZG93IEEpCisrICAgIGNwZGVmIHNl dF90b19zdW0oTWF0cml4V2luZG93IHNlbGYsIE1hdHJpeFdpbmRvdyBBLCBNYXRyaXhXaW5kb3cg QikKKysgICAgY3BkZWYgc2V0X3RvX2RpZmYoTWF0cml4V2luZG93IHNlbGYsIE1hdHJpeFdpbmRv dyBBLCBNYXRyaXhXaW5kb3cgQikKKysgICAgY3BkZWYgc2V0X3RvX3Byb2QoTWF0cml4V2luZG93 IHNlbGYsIE1hdHJpeFdpbmRvdyBBLCBNYXRyaXhXaW5kb3cgQikKKysgICAgY3BkZWYgYWRkX3By b2QoTWF0cml4V2luZG93IHNlbGYsIE1hdHJpeFdpbmRvdyBBLCBNYXRyaXhXaW5kb3cgQikKKysg ICAgY3BkZWYgc3VidHJhY3RfcHJvZChNYXRyaXhXaW5kb3cgc2VsZiwgTWF0cml4V2luZG93IEEs IE1hdHJpeFdpbmRvdyBCKQorIAorICAgICBjcGRlZiBiaW50IGVsZW1lbnRfaXNfemVybyhNYXRy aXhXaW5kb3cgc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9zc2l6ZV90IGopIG5vZXhjZXB0CistICAg IGNwZGVmIHNldF90byhNYXRyaXhXaW5kb3cgc2VsZiwgTWF0cml4V2luZG93IEEpIG5vZXhjZXB0 CistICAgIGNwZGVmIHNldF90b196ZXJvKE1hdHJpeFdpbmRvdyBzZWxmKSBub2V4Y2VwdAorKyAg ICBjcGRlZiBzZXRfdG8oTWF0cml4V2luZG93IHNlbGYsIE1hdHJpeFdpbmRvdyBBKQorKyAgICBj cGRlZiBzZXRfdG9femVybyhNYXRyaXhXaW5kb3cgc2VsZikKKyAKKyAgICAgIyBGT1IgQkVUVEVS IFNQRUVELCBPVkVSUklERSBBTlkgU1VCU0VUIE9GIFRIRVNFIChPUFRJT05BTCk6CistICAgIGNw ZGVmIHNldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9zc2l6ZV90IGosIHgpIG5vZXhj ZXB0CistICAgIGNwZGVmIGdldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9zc2l6ZV90 IGopIG5vZXhjZXB0CistICAgIGNwZGVmIHRvX21hdHJpeChNYXRyaXhXaW5kb3cgc2VsZikgbm9l eGNlcHQKKy0gICAgY3BkZWYgbmV3X2VtcHR5X3dpbmRvdyhNYXRyaXhXaW5kb3cgc2VsZiwgUHlf c3NpemVfdCBucm93cywgUHlfc3NpemVfdCBuY29scykgbm9leGNlcHQKKysgICAgY3BkZWYgc2V0 X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3QgaiwgeCkKKysgICAgY3BkZWYg Z2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IGksIFB5X3NzaXplX3QgaikKKysgICAgY3BkZWYg dG9fbWF0cml4KE1hdHJpeFdpbmRvdyBzZWxmKQorKyAgICBjcGRlZiBuZXdfZW1wdHlfd2luZG93 KE1hdHJpeFdpbmRvdyBzZWxmLCBQeV9zc2l6ZV90IG5yb3dzLCBQeV9zc2l6ZV90IG5jb2xzKQor IAorICAgICAjIE5PIEJFTkVGSVQgVE8gT1ZFUlJJRElORyBUSEVTRToKKyAgICAgY3BkZWYgTWF0 cml4V2luZG93IG1hdHJpeF93aW5kb3coTWF0cml4V2luZG93IHNlbGYsIFB5X3NzaXplX3Qgcm93 LCBQeV9zc2l6ZV90IGNvbCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UHlfc3NpemVfdCBuX3Jvd3MsIFB5X3NzaXplX3Qgbl9jb2xzKSBub2V4Y2VwdAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IG5fcm93cywgUHlfc3NpemVf dCBuX2NvbHMpCisgICAgIGNwZGVmIE1hdHJpeFdpbmRvdyBuZXdfbWF0cml4X3dpbmRvdyhNYXRy aXhXaW5kb3cgc2VsZiwgTWF0cml4IG1hdHJpeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUHlfc3NpemVfdCByb3csIFB5X3NzaXplX3QgY29sLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBuX3Jvd3MsIFB5X3Nz aXplX3Qgbl9jb2xzKSBub2V4Y2VwdAorLSAgICBjcGRlZiBtYXRyaXgoTWF0cml4V2luZG93IHNl bGYpIG5vZXhjZXB0CistICAgIGNwZGVmIHN3YXBfcm93cyhNYXRyaXhXaW5kb3cgc2VsZiwgUHlf c3NpemVfdCBhLCBQeV9zc2l6ZV90IGIpIG5vZXhjZXB0CistICAgIGNkZWYgb2JqZWN0IF96ZXJv KHNlbGYpIG5vZXhjZXB0CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQeV9zc2l6ZV90IG5fcm93cywgUHlfc3NpemVfdCBuX2NvbHMpCisrICAgIGNwZGVmIG1hdHJp eChNYXRyaXhXaW5kb3cgc2VsZikKKysgICAgY3BkZWYgc3dhcF9yb3dzKE1hdHJpeFdpbmRvdyBz ZWxmLCBQeV9zc2l6ZV90IGEsIFB5X3NzaXplX3QgYikKKysgICAgY2RlZiBvYmplY3QgX3plcm8o c2VsZikKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X3dpbmRvdy5weXggYi9z cmMvc2FnZS9tYXRyaXgvbWF0cml4X3dpbmRvdy5weXgKK2luZGV4IDY3MWVlZTBhODQ1Li4xMWE4 YzBlZDFiMiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfd2luZG93LnB5eAor KysrIGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF93aW5kb3cucHl4CitAQCAtMjIsNyArMjIsNyBA QCBjZGVmIGNsYXNzIE1hdHJpeFdpbmRvdzoKKyAKKyAgICAgY3BkZWYgTWF0cml4V2luZG93IG5l d19tYXRyaXhfd2luZG93KE1hdHJpeFdpbmRvdyBzZWxmLCBNYXRyaXggbWF0cml4LAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCByb3csIFB5X3Nz aXplX3QgY29sLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9z c2l6ZV90IG5fcm93cywgUHlfc3NpemVfdCBuX2NvbHMpIG5vZXhjZXB0OgorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IG5fcm93cywgUHlfc3NpemVf dCBuX2NvbHMpOgorICAgICAgICAgIiIiCisgICAgICAgICBUaGlzIG1ldGhvZCBpcyBoZXJlIG9u bHkgdG8gcHJvdmlkZSBhIGZhc3QgY2RlZiB3YXkgb2YKKyAgICAgICAgIGNvbnN0cnVjdGluZyBu ZXcgbWF0cml4IHdpbmRvd3MuIFRoZSBvbmx5IGltcGxpY2l0IGFzc3VtcHRpb24KK0BAIC00Nywx MyArNDcsMTMgQEAgY2RlZiBjbGFzcyBNYXRyaXhXaW5kb3c6CisgICAgICAgICBzZWxmLl9ucm93 cyA9IG5yb3dzCisgICAgICAgICBzZWxmLl9uY29scyA9IG5jb2xzCisgCistICAgIGNkZWYgb2Jq ZWN0IF96ZXJvKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIG9iamVjdCBfemVybyhzZWxmKToK KyAgICAgICAgIGlmIHNlbGYuX2NhY2hlZF96ZXJvIGlzIE5vbmU6CisgICAgICAgICAgICAgc2Vs Zi5fY2FjaGVkX3plcm8gPSBzZWxmLl9tYXRyaXguYmFzZV9yaW5nKCkoMCkgICMgZXhwZW5zaXZl CisgICAgICAgICByZXR1cm4gc2VsZi5fY2FjaGVkX3plcm8KKyAKKyAgICAgY3BkZWYgTWF0cml4 V2luZG93IG1hdHJpeF93aW5kb3coTWF0cml4V2luZG93IHNlbGYsIFB5X3NzaXplX3Qgcm93LCBQ eV9zc2l6ZV90IGNvbCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9z c2l6ZV90IG5fcm93cywgUHlfc3NpemVfdCBuX2NvbHMpIG5vZXhjZXB0OgorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3Qgbl9yb3dzLCBQeV9zc2l6ZV90IG5f Y29scyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybnMgYSBtYXRyaXggd2luZG93IHJl bGF0aXZlIHRvIHRoaXMgd2luZG93IG9mIHRoZQorICAgICAgICAgdW5kZXJseWluZyBtYXRyaXgu CitAQCAtNjIsNyArNjIsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeFdpbmRvdzoKKyAgICAgICAgICAg ICByZXR1cm4gc2VsZgorICAgICAgICAgcmV0dXJuIHNlbGYubmV3X21hdHJpeF93aW5kb3coc2Vs Zi5fbWF0cml4LCBzZWxmLl9yb3cgKyByb3csIHNlbGYuX2NvbCArIGNvbCwgbl9yb3dzLCBuX2Nv bHMpCisgCistICAgIGNwZGVmIG5ld19lbXB0eV93aW5kb3coTWF0cml4V2luZG93IHNlbGYsIFB5 X3NzaXplX3QgbnJvd3MsIFB5X3NzaXplX3QgbmNvbHMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBu ZXdfZW1wdHlfd2luZG93KE1hdHJpeFdpbmRvdyBzZWxmLCBQeV9zc2l6ZV90IG5yb3dzLCBQeV9z c2l6ZV90IG5jb2xzKToKKyAgICAgICAgIGEgPSBzZWxmLl9tYXRyaXgubmV3X21hdHJpeChucm93 cywgbmNvbHMpCisgICAgICAgICByZXR1cm4gc2VsZi5uZXdfbWF0cml4X3dpbmRvdyhhLCAwLCAw LCBucm93cywgbmNvbHMpCisgCitAQCAtNzksMTAgKzc5LDEwIEBAIGNkZWYgY2xhc3MgTWF0cml4 V2luZG93OgorICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiUGFyZW50cyBtdXN0IGJlIGVx dWFsLiIpCisgICAgICAgICBzZWxmLnNldF90byhzcmMpCisgCistICAgIGNwZGVmIHNldF91bnNh ZmUoc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9zc2l6ZV90IGosIHgpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBzZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSwgUHlfc3NpemVfdCBqLCB4KToKKyAg ICAgICAgIHNlbGYuX21hdHJpeC5zZXRfdW5zYWZlKGkgKyBzZWxmLl9yb3csIGogKyBzZWxmLl9j b2wsIHgpCisgCistICAgIGNwZGVmIGdldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9z c2l6ZV90IGopIG5vZXhjZXB0OgorKyAgICBjcGRlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXpl X3QgaSwgUHlfc3NpemVfdCBqKToKKyAgICAgICAgIHJldHVybiBzZWxmLl9tYXRyaXguZ2V0X3Vu c2FmZShpICsgc2VsZi5fcm93LCBqICsgc2VsZi5fY29sKQorIAorICAgICBkZWYgX19zZXRpdGVt X18oc2VsZiwgaWosIHgpOgorQEAgLTExOSwxNCArMTE5LDE0IEBAIGNkZWYgY2xhc3MgTWF0cml4 V2luZG93OgorICAgICAgICAgICAgIGkgPSBpagorICAgICAgICAgICAgIHJldHVybiBzZWxmLnJv dyhpKQorIAorLSAgICBjcGRlZiBtYXRyaXgoTWF0cml4V2luZG93IHNlbGYpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBtYXRyaXgoTWF0cml4V2luZG93IHNlbGYpOgorICAgICAgICAgIiIiCisgICAg ICAgICBSZXR1cm5zIHRoZSB1bmRlcmx5aW5nIG1hdHJpeCB0aGF0IHRoaXMgd2luZG93IGlzIGEg dmlldyBvZi4KKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX21hdHJpeAorIAor IAorLSAgICBjcGRlZiB0b19tYXRyaXgoTWF0cml4V2luZG93IHNlbGYpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiB0b19tYXRyaXgoTWF0cml4V2luZG93IHNlbGYpOgorICAgICAgICAgIiIiCisgICAg ICAgICBSZXR1cm5zIGFuIGFjdHVhbCBtYXRyaXggb2JqZWN0IHJlcHJlc2VudGluZyB0aGlzIHZp ZXcuCisgICAgICAgICAiIiIKK0BAIC0xNDIsNyArMTQyLDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhX aW5kb3c6CisgICAgIGRlZiBuY29scyhNYXRyaXhXaW5kb3cgc2VsZik6CisgICAgICAgICByZXR1 cm4gc2VsZi5fbmNvbHMKKyAKKy0gICAgY3BkZWYgc2V0X3RvKE1hdHJpeFdpbmRvdyBzZWxmLCBN YXRyaXhXaW5kb3cgQSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHNldF90byhNYXRyaXhXaW5kb3cg c2VsZiwgTWF0cml4V2luZG93IEEpOgorICAgICAgICAgIiIiCisgICAgICAgICBDaGFuZ2Ugc2Vs ZiwgbWFraW5nIGl0IGVxdWFsIEEuCisgICAgICAgICAiIiIKK0BAIC0xNTQsMTQgKzE1NCwxNCBA QCBjZGVmIGNsYXNzIE1hdHJpeFdpbmRvdzoKKyAgICAgICAgICAgICAgICAgc2VsZi5zZXRfdW5z YWZlKGksIGosIEEuZ2V0X3Vuc2FmZShpLCBqKSkKKyAgICAgICAgIHJldHVybiAwCisgCistICAg IGNwZGVmIHNldF90b196ZXJvKE1hdHJpeFdpbmRvdyBzZWxmKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgc2V0X3RvX3plcm8oTWF0cml4V2luZG93IHNlbGYpOgorICAgICAgICAgY2RlZiBQeV9zc2l6 ZV90IGksIGoKKyAgICAgICAgIHogPSBzZWxmLl96ZXJvKCkKKyAgICAgICAgIGZvciBpIGZyb20g MCA8PSBpIDwgc2VsZi5fbnJvd3M6CisgICAgICAgICAgICAgZm9yIGogZnJvbSAwIDw9IGogPCBz ZWxmLl9uY29sczoKKyAgICAgICAgICAgICAgICAgc2VsZi5zZXRfdW5zYWZlKGksIGosIHopCisg CistICAgIGNwZGVmIGFkZChNYXRyaXhXaW5kb3cgc2VsZiwgTWF0cml4V2luZG93IEEpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBhZGQoTWF0cml4V2luZG93IHNlbGYsIE1hdHJpeFdpbmRvdyBBKToK KyAgICAgICAgIGNkZWYgUHlfc3NpemVfdCBpLCBqCisgICAgICAgICBpZiBzZWxmLl9ucm93cyAh PSBBLl9ucm93cyBvciBzZWxmLl9uY29scyAhPSBBLl9uY29sczoKKyAgICAgICAgICAgICByYWlz ZSBBcml0aG1ldGljRXJyb3IoImluY29tcGF0aWJsZSBkaW1lbnNpb25zIikKK0BAIC0xNjksNyAr MTY5LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhXaW5kb3c6CisgICAgICAgICAgICAgZm9yIGogZnJv bSAwIDw9IGogPCBzZWxmLl9uY29sczoKKyAgICAgICAgICAgICAgICAgc2VsZi5zZXRfdW5zYWZl KGksIGosIHNlbGYuZ2V0X3Vuc2FmZShpLCBqKSArIEEuZ2V0X3Vuc2FmZShpLCBqKSkKKyAKKy0g ICAgY3BkZWYgc3VidHJhY3QoTWF0cml4V2luZG93IHNlbGYsIE1hdHJpeFdpbmRvdyBBKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgc3VidHJhY3QoTWF0cml4V2luZG93IHNlbGYsIE1hdHJpeFdpbmRv dyBBKToKKyAgICAgICAgIGNkZWYgUHlfc3NpemVfdCBpLCBqCisgICAgICAgICBpZiBzZWxmLl9u cm93cyAhPSBBLl9ucm93cyBvciBzZWxmLl9uY29scyAhPSBBLl9uY29sczoKKyAgICAgICAgICAg ICByYWlzZSBBcml0aG1ldGljRXJyb3IoImluY29tcGF0aWJsZSBkaW1lbnNpb25zIikKK0BAIC0x NzcsNyArMTc3LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhXaW5kb3c6CisgICAgICAgICAgICAgZm9y IGogZnJvbSAwIDw9IGogPCBzZWxmLl9uY29sczoKKyAgICAgICAgICAgICAgICAgc2VsZi5zZXRf dW5zYWZlKGksIGosIHNlbGYuZ2V0X3Vuc2FmZShpLCBqKSAtIEEuZ2V0X3Vuc2FmZShpLCBqKSkK KyAKKy0gICAgY3BkZWYgc2V0X3RvX3N1bShNYXRyaXhXaW5kb3cgc2VsZiwgTWF0cml4V2luZG93 IEEsIE1hdHJpeFdpbmRvdyBCKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgc2V0X3RvX3N1bShNYXRy aXhXaW5kb3cgc2VsZiwgTWF0cml4V2luZG93IEEsIE1hdHJpeFdpbmRvdyBCKToKKyAgICAgICAg IGNkZWYgUHlfc3NpemVfdCBpLCBqCisgICAgICAgICBpZiBzZWxmLl9ucm93cyAhPSBBLl9ucm93 cyBvciBzZWxmLl9uY29scyAhPSBBLl9uY29sczoKKyAgICAgICAgICAgICByYWlzZSBBcml0aG1l dGljRXJyb3IoImluY29tcGF0aWJsZSBkaW1lbnNpb25zIikKK0BAIC0xODcsMTMgKzE4NywxMyBA QCBjZGVmIGNsYXNzIE1hdHJpeFdpbmRvdzoKKyAgICAgICAgICAgICBmb3IgaiBmcm9tIDAgPD0g aiA8IHNlbGYuX25jb2xzOgorICAgICAgICAgICAgICAgICBzZWxmLnNldF91bnNhZmUoaSwgaiwg QS5nZXRfdW5zYWZlKGksIGopICsgQi5nZXRfdW5zYWZlKGksIGopKQorIAorLSAgICBjcGRlZiBz ZXRfdG9fZGlmZihNYXRyaXhXaW5kb3cgc2VsZiwgTWF0cml4V2luZG93IEEsIE1hdHJpeFdpbmRv dyBCKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgc2V0X3RvX2RpZmYoTWF0cml4V2luZG93IHNlbGYs IE1hdHJpeFdpbmRvdyBBLCBNYXRyaXhXaW5kb3cgQik6CisgICAgICAgICBjZGVmIFB5X3NzaXpl X3QgaSwgagorICAgICAgICAgZm9yIGkgZnJvbSAwIDw9IGkgPCBzZWxmLl9ucm93czoKKyAgICAg ICAgICAgICBmb3IgaiBmcm9tIDAgPD0gaiA8IHNlbGYuX25jb2xzOgorICAgICAgICAgICAgICAg ICBzZWxmLnNldF91bnNhZmUoaSwgaiwgQS5nZXRfdW5zYWZlKGksIGopIC0gQi5nZXRfdW5zYWZl KGksIGopKQorIAorLSAgICBjcGRlZiBzZXRfdG9fcHJvZChNYXRyaXhXaW5kb3cgc2VsZiwgTWF0 cml4V2luZG93IEEsIE1hdHJpeFdpbmRvdyBCKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgc2V0X3Rv X3Byb2QoTWF0cml4V2luZG93IHNlbGYsIE1hdHJpeFdpbmRvdyBBLCBNYXRyaXhXaW5kb3cgQik6 CisgICAgICAgICBjZGVmIFB5X3NzaXplX3QgaSwgaiwgaworICAgICAgICAgaWYgQS5fbmNvbHMg IT0gQi5fbnJvd3Mgb3Igc2VsZi5fbnJvd3MgIT0gQS5fbnJvd3Mgb3Igc2VsZi5fbmNvbHMgIT0g Qi5fbmNvbHM6CisgICAgICAgICAgICAgcmFpc2UgQXJpdGhtZXRpY0Vycm9yKCJpbmNvbXBhdGli bGUgZGltZW5zaW9ucyIpCitAQCAtMjA0LDcgKzIwNCw3IEBAIGNkZWYgY2xhc3MgTWF0cml4V2lu ZG93OgorICAgICAgICAgICAgICAgICAgICAgcyA9IHMgKyBBLmdldF91bnNhZmUoaSwgaykgKiBC LmdldF91bnNhZmUoaywgaikKKyAgICAgICAgICAgICAgICAgc2VsZi5zZXRfdW5zYWZlKGksIGos IHMpCisgCistICAgIGNwZGVmIGFkZF9wcm9kKE1hdHJpeFdpbmRvdyBzZWxmLCBNYXRyaXhXaW5k b3cgQSwgTWF0cml4V2luZG93IEIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBhZGRfcHJvZChNYXRy aXhXaW5kb3cgc2VsZiwgTWF0cml4V2luZG93IEEsIE1hdHJpeFdpbmRvdyBCKToKKyAgICAgICAg IGNkZWYgUHlfc3NpemVfdCBpLCBqLCBrCisgICAgICAgICBpZiBBLl9uY29scyAhPSBCLl9ucm93 cyBvciBzZWxmLl9ucm93cyAhPSBBLl9ucm93cyBvciBzZWxmLl9uY29scyAhPSBCLl9uY29sczoK KyAgICAgICAgICAgICByYWlzZSBBcml0aG1ldGljRXJyb3IoImluY29tcGF0aWJsZSBkaW1lbnNp b25zIikKK0BAIC0yMTUsNyArMjE1LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhXaW5kb3c6CisgICAg ICAgICAgICAgICAgICAgICBzID0gcyArIEEuZ2V0X3Vuc2FmZShpLCBrKSAqIEIuZ2V0X3Vuc2Fm ZShrLCBqKQorICAgICAgICAgICAgICAgICBzZWxmLnNldF91bnNhZmUoaSwgaiwgcykKKyAKKy0g ICAgY3BkZWYgc3VidHJhY3RfcHJvZChNYXRyaXhXaW5kb3cgc2VsZiwgTWF0cml4V2luZG93IEEs IE1hdHJpeFdpbmRvdyBCKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgc3VidHJhY3RfcHJvZChNYXRy aXhXaW5kb3cgc2VsZiwgTWF0cml4V2luZG93IEEsIE1hdHJpeFdpbmRvdyBCKToKKyAgICAgICAg IGNkZWYgUHlfc3NpemVfdCBpLCBqLCBrCisgICAgICAgICBpZiBBLl9uY29scyAhPSBCLl9ucm93 cyBvciBzZWxmLl9ucm93cyAhPSBBLl9ucm93cyBvciBzZWxmLl9uY29scyAhPSBCLl9uY29sczoK KyAgICAgICAgICAgICByYWlzZSBBcml0aG1ldGljRXJyb3IoImluY29tcGF0aWJsZSBkaW1lbnNp b25zIikKK0BAIC0yMjYsNyArMjI2LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhXaW5kb3c6CisgICAg ICAgICAgICAgICAgICAgICBzID0gcyAtIEEuZ2V0X3Vuc2FmZShpLCBrKSAqIEIuZ2V0X3Vuc2Fm ZShrLCBqKQorICAgICAgICAgICAgICAgICBzZWxmLnNldF91bnNhZmUoaSwgaiwgcykKKyAKKy0g ICAgY3BkZWYgc3dhcF9yb3dzKE1hdHJpeFdpbmRvdyBzZWxmLCBQeV9zc2l6ZV90IGEsIFB5X3Nz aXplX3QgYikgbm9leGNlcHQ6CisrICAgIGNwZGVmIHN3YXBfcm93cyhNYXRyaXhXaW5kb3cgc2Vs ZiwgUHlfc3NpemVfdCBhLCBQeV9zc2l6ZV90IGIpOgorICAgICAgICAgc2VsZi5fbWF0cml4LnN3 YXBfcm93c19jKHNlbGYuX3JvdyArIGEsIHNlbGYuX3JvdyArIGIpCisgCisgICAgIGRlZiBlY2hl bG9uX2luX3BsYWNlKE1hdHJpeFdpbmRvdyBzZWxmKToKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9t YXRyaXgvc3RyYXNzZW4ucHl4IGIvc3JjL3NhZ2UvbWF0cml4L3N0cmFzc2VuLnB5eAoraW5kZXgg ZDQ1ZTUyMTY3NDcuLmU1NjgwMTFhZGI3IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0cml4L3N0 cmFzc2VuLnB5eAorKysrIGIvc3JjL3NhZ2UvbWF0cml4L3N0cmFzc2VuLnB5eAorQEAgLTUwLDcg KzUwLDcgQEAgZGVmIHN0cmFzc2VuX3dpbmRvd19tdWx0aXBseShDLCBBLEIsIGN1dG9mZik6Cisg CisgCisgY2RlZiBzdHJhc3Nlbl93aW5kb3dfbXVsdGlwbHlfYyhNYXRyaXhXaW5kb3cgQywgTWF0 cml4V2luZG93IEEsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRyaXhXaW5k b3cgQiwgUHlfc3NpemVfdCBjdXRvZmYpIG5vZXhjZXB0OgorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTWF0cml4V2luZG93IEIsIFB5X3NzaXplX3QgY3V0b2ZmKToKKyAgICAgIyB0 b2RvIC0tIEknbSBub3Qgc3VyZSBob3cgdG8gaW50ZXJwcmV0ICJjdXRvZmYiLiBTaG91bGQgaXQg YmUuLi4KKyAgICAgIyAoYSkgdGhlIG1pbmltdW0gc2lkZSBsZW5ndGggb2YgdGhlIG1hdHJpY2Vz IChjdXJyZW50bHkgaW1wbGVtZW50ZWQgYmVsb3cpCisgICAgICMgKGIpIHRoZSBtYXhpbXVtIHNp ZGUgbGVuZ3RoIG9mIHRoZSBtYXRyaWNlcworQEAgLTIzNSw3ICsyMzUsNyBAQCBjZGVmIHN0cmFz c2VuX3dpbmRvd19tdWx0aXBseV9jKE1hdHJpeFdpbmRvdyBDLCBNYXRyaXhXaW5kb3cgQSwKKyAg ICAgICAgIENfYnVsayA9IEMubWF0cml4X3dpbmRvdygwLCAwLCBBX3N1Yl9ucm93cyA8PCAxLCBC X3N1Yl9uY29scyA8PCAxKQorICAgICAgICAgQ19idWxrLmFkZF9wcm9kKEFfbGFzdF9jb2wsIEJf bGFzdF9yb3cpCisgCistY2RlZiBzdWJ0cmFjdF9zdHJhc3Nlbl9wcm9kdWN0KE1hdHJpeFdpbmRv dyByZXN1bHQsIE1hdHJpeFdpbmRvdyBBLCBNYXRyaXhXaW5kb3cgQiwgUHlfc3NpemVfdCBjdXRv ZmYpIG5vZXhjZXB0OgorK2NkZWYgc3VidHJhY3Rfc3RyYXNzZW5fcHJvZHVjdChNYXRyaXhXaW5k b3cgcmVzdWx0LCBNYXRyaXhXaW5kb3cgQSwgTWF0cml4V2luZG93IEIsIFB5X3NzaXplX3QgY3V0 b2ZmKToKKyAgICAgY2RlZiBNYXRyaXhXaW5kb3cgdG9fc3ViCisgICAgIGlmIChjdXRvZmYgPT0g LTEgb3IgcmVzdWx0Lm5jb2xzKCkgPD0gY3V0b2ZmIG9yIHJlc3VsdC5ucm93cygpIDw9IGN1dG9m Zik6CisgICAgICAgICByZXN1bHQuc3VidHJhY3RfcHJvZChBLCBCKQorQEAgLTMxMSw3ICszMTEs NyBAQCBkZWYgc3RyYXNzZW5fZWNoZWxvbihNYXRyaXhXaW5kb3cgQSwgY3V0b2ZmKToKKyAgICAg c2lnX29mZigpCisgCisgCistY2RlZiBzdHJhc3Nlbl9lY2hlbG9uX2MoTWF0cml4V2luZG93IEEs IFB5X3NzaXplX3QgY3V0b2ZmLCBQeV9zc2l6ZV90IG11bF9jdXRvZmYpIG5vZXhjZXB0OgorK2Nk ZWYgc3RyYXNzZW5fZWNoZWxvbl9jKE1hdHJpeFdpbmRvdyBBLCBQeV9zc2l6ZV90IGN1dG9mZiwg UHlfc3NpemVfdCBtdWxfY3V0b2ZmKToKKyAgICAgIyBUaGUgZm9sbG93aW5nIG5vdGF0aW9uIHdp bGwgYmUgdXNlZCBpbiB0aGUgY29tbWVudHMgYmVsb3csIHdoaWNoIHNob3VsZCBiZSB1bmRlcnN0 b29kIHRvIGdpdmUKKyAgICAgIyB0aGUgZ2VuZXJhbCBpZGVhIG9mIHdoYXQncyBnb2luZyBvbiwg YXMgaWYgdGhlcmUgd2VyZSBubyBpbmNvbnZlbmllbnQgbm9uLXBpdm90IGNvbHVtbnMuCisgICAg ICMgVGhlIG9yaWdpbmFsIG1hdHJpeCBpcyBnaXZlbiBieSBbIEEgQiBdCitkaWZmIC0tZ2l0IGEv c3JjL3NhZ2UvbWF0cm9pZHMvYmFzaXNfZXhjaGFuZ2VfbWF0cm9pZC5weGQgYi9zcmMvc2FnZS9t YXRyb2lkcy9iYXNpc19leGNoYW5nZV9tYXRyb2lkLnB4ZAoraW5kZXggNTg3N2Y2MmZjMDkuLjJh MzZlZDZhOTViIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0cm9pZHMvYmFzaXNfZXhjaGFuZ2Vf bWF0cm9pZC5weGQKKysrKyBiL3NyYy9zYWdlL21hdHJvaWRzL2Jhc2lzX2V4Y2hhbmdlX21hdHJv aWQucHhkCitAQCAtMTUsODYgKzE1LDg2IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJv aWQoTWF0cm9pZCk6CisgICAgIGNkZWYgX3dlYWtfaW52YXJpYW50X3ZhciwgX3N0cm9uZ19pbnZh cmlhbnRfdmFyLCBfaGV1cmlzdGljX2ludmFyaWFudF92YXIKKyAgICAgY2RlZiBTZXRTeXN0ZW0g X3dlYWtfcGFydGl0aW9uX3ZhciwgX3N0cm9uZ19wYXJ0aXRpb25fdmFyLCBfaGV1cmlzdGljX3Bh cnRpdGlvbl92YXIKKyAKKy0gICAgY2RlZiBfcmVsYWJlbChzZWxmLCBsKSBub2V4Y2VwdAorKyAg ICBjZGVmIF9yZWxhYmVsKHNlbGYsIGwpCisgCistICAgIGNkZWYgX3BhY2soc2VsZiwgYml0c2V0 X3QsIFgpIG5vZXhjZXB0CistICAgIGNkZWYgX191bnBhY2soc2VsZiwgYml0c2V0X3QpIG5vZXhj ZXB0CisrICAgIGNkZWYgX3BhY2soc2VsZiwgYml0c2V0X3QsIFgpCisrICAgIGNkZWYgX191bnBh Y2soc2VsZiwgYml0c2V0X3QpCisgICAgIGNkZWYgYmludCBfaXNfZXhjaGFuZ2VfcGFpcihzZWxm LCBsb25nIHgsIGxvbmcgeSkgZXhjZXB0IC0xCisgICAgIGNkZWYgaW50IF9leGNoYW5nZShzZWxm LCBsb25nIHgsIGxvbmcgeSkgZXhjZXB0IC0xCisgICAgIGNkZWYgaW50IF9tb3ZlKHNlbGYsIGJp dHNldF90IFgsIGJpdHNldF90IFkpIGV4Y2VwdCAtMQorLSAgICBjZGVmIF9fZnVuZGFtZW50YWxf Y29jaXJjdWl0KHNlbGYsIGJpdHNldF90LCBsb25nIHgpIG5vZXhjZXB0CistICAgIGNkZWYgX19m dW5kYW1lbnRhbF9jaXJjdWl0KHNlbGYsIGJpdHNldF90LCBsb25nIHkpIG5vZXhjZXB0CisrICAg IGNkZWYgX19mdW5kYW1lbnRhbF9jb2NpcmN1aXQoc2VsZiwgYml0c2V0X3QsIGxvbmcgeCkKKysg ICAgY2RlZiBfX2Z1bmRhbWVudGFsX2NpcmN1aXQoc2VsZiwgYml0c2V0X3QsIGxvbmcgeSkKKyAK Ky0gICAgY2RlZiBfX21heF9pbmRlcGVuZGVudChzZWxmLCBiaXRzZXRfdCwgYml0c2V0X3QpIG5v ZXhjZXB0CistICAgIGNkZWYgX19jaXJjdWl0KHNlbGYsIGJpdHNldF90LCBiaXRzZXRfdCkgbm9l eGNlcHQKKy0gICAgY2RlZiBfX2Nsb3N1cmUoc2VsZiwgYml0c2V0X3QsIGJpdHNldF90KSBub2V4 Y2VwdAorLSAgICBjZGVmIF9fbWF4X2NvaW5kZXBlbmRlbnQoc2VsZiwgYml0c2V0X3QsIGJpdHNl dF90KSBub2V4Y2VwdAorLSAgICBjZGVmIF9fY29jaXJjdWl0KHNlbGYsIGJpdHNldF90LCBiaXRz ZXRfdCkgbm9leGNlcHQKKy0gICAgY2RlZiBfY29jbG9zdXJlX2ludGVybmFsKHNlbGYsIGJpdHNl dF90LCBiaXRzZXRfdCkgbm9leGNlcHQKKysgICAgY2RlZiBfX21heF9pbmRlcGVuZGVudChzZWxm LCBiaXRzZXRfdCwgYml0c2V0X3QpCisrICAgIGNkZWYgX19jaXJjdWl0KHNlbGYsIGJpdHNldF90 LCBiaXRzZXRfdCkKKysgICAgY2RlZiBfX2Nsb3N1cmUoc2VsZiwgYml0c2V0X3QsIGJpdHNldF90 KQorKyAgICBjZGVmIF9fbWF4X2NvaW5kZXBlbmRlbnQoc2VsZiwgYml0c2V0X3QsIGJpdHNldF90 KQorKyAgICBjZGVmIF9fY29jaXJjdWl0KHNlbGYsIGJpdHNldF90LCBiaXRzZXRfdCkKKysgICAg Y2RlZiBfY29jbG9zdXJlX2ludGVybmFsKHNlbGYsIGJpdHNldF90LCBiaXRzZXRfdCkKKyAKKy0g ICAgY2RlZiBfX2F1Z21lbnQoc2VsZiwgYml0c2V0X3QsIGJpdHNldF90LCBiaXRzZXRfdCkgbm9l eGNlcHQKKysgICAgY2RlZiBfX2F1Z21lbnQoc2VsZiwgYml0c2V0X3QsIGJpdHNldF90LCBiaXRz ZXRfdCkKKyAgICAgY2RlZiBiaW50IF9faXNfaW5kZXBlbmRlbnQoc2VsZiwgYml0c2V0X3QgRikg ZXhjZXB0IC0xCistICAgIGNkZWYgX19tb3ZlX2N1cnJlbnRfYmFzaXMoc2VsZiwgYml0c2V0X3Qs IGJpdHNldF90KSBub2V4Y2VwdAorKyAgICBjZGVmIF9fbW92ZV9jdXJyZW50X2Jhc2lzKHNlbGYs IGJpdHNldF90LCBiaXRzZXRfdCkKKyAKKyAgICAgY2RlZiBiaW50IF9zZXRfY3VycmVudF9iYXNp cyhzZWxmLCBGKSBub2V4Y2VwdAorIAorLSAgICBjcGRlZiBncm91bmRzZXQoc2VsZikgbm9leGNl cHQKKy0gICAgY3BkZWYgZ3JvdW5kc2V0X2xpc3Qoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYg ZnVsbF9yYW5rKHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIGZ1bGxfY29yYW5rKHNlbGYpIG5v ZXhjZXB0CistCistICAgIGNwZGVmIGJhc2lzKHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIF9t b3ZlX2N1cnJlbnRfYmFzaXMoc2VsZiwgWCwgWSkgbm9leGNlcHQKKy0KKy0gICAgY3BkZWYgX21h eF9pbmRlcGVuZGVudChzZWxmLCBGKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfcmFuayhzZWxmLCBG KSBub2V4Y2VwdAorLSAgICBjcGRlZiBfY2lyY3VpdChzZWxmLCBGKSBub2V4Y2VwdAorLSAgICBj cGRlZiBfZnVuZGFtZW50YWxfY2lyY3VpdChzZWxmLCBCLCBlKSBub2V4Y2VwdAorLSAgICBjcGRl ZiBfY2xvc3VyZShzZWxmLCBGKSBub2V4Y2VwdAorLQorLSAgICBjcGRlZiBfbWF4X2NvaW5kZXBl bmRlbnQoc2VsZiwgRikgbm9leGNlcHQKKy0gICAgY3BkZWYgX2NvcmFuayhzZWxmLCBGKSBub2V4 Y2VwdAorLSAgICBjcGRlZiBfY29jaXJjdWl0KHNlbGYsIEYpIG5vZXhjZXB0CistICAgIGNwZGVm IF9mdW5kYW1lbnRhbF9jb2NpcmN1aXQoc2VsZiwgQiwgZSkgbm9leGNlcHQKKy0gICAgY3BkZWYg X2NvY2xvc3VyZShzZWxmLCBGKSBub2V4Y2VwdAorLQorLSAgICBjcGRlZiBfYXVnbWVudChzZWxm LCBYLCBZKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfaXNfaW5kZXBlbmRlbnQoc2VsZiwgRikgbm9l eGNlcHQKKy0KKy0gICAgY3BkZWYgZl92ZWN0b3Ioc2VsZikgbm9leGNlcHQKKy0gICAgY2RlZiAg X2ZfdmVjdG9yX3JlYyhzZWxmLCBvYmplY3QgZl92ZWMsIGJpdHNldF90KiBmbGF0cywgYml0c2V0 X3QqIHRvZG8sIGxvbmcgZWx0LCBsb25nIHJuaykgbm9leGNlcHQKKy0gICAgY3BkZWYgZmxhdHMo c2VsZiwgUikgbm9leGNlcHQKKy0gICAgY2RlZiAgX2ZsYXRzX3JlYyhzZWxmLCBTZXRTeXN0ZW0g UmZsYXRzLCBsb25nIFIsIGJpdHNldF90KiBmbGF0cywgYml0c2V0X3QqIHRvZG8sIGxvbmcgZWx0 LCBsb25nIHJuaykgbm9leGNlcHQKKy0gICAgY3BkZWYgY29mbGF0cyhzZWxmLCBSKSBub2V4Y2Vw dAorLSAgICBjZGVmICBfY29mbGF0c19yZWMoc2VsZiwgU2V0U3lzdGVtIFJjb2ZsYXRzLCBsb25n IFIsIGJpdHNldF90KiBjb2ZsYXRzLCBiaXRzZXRfdCogdG9kbywgbG9uZyBlbHQsIGxvbmcgY29y bmspIG5vZXhjZXB0CistICAgIGNkZWYgX2ZsYXRfZWxlbWVudF9pbnYoc2VsZiwgbG9uZyBrKSBu b2V4Y2VwdAorLSAgICBjZGVmICBfZmxhdF9lbGVtZW50X2ludl9yZWMoc2VsZiwgb2JqZWN0IGZf aW5jLCBsb25nIFIsIGJpdHNldF90KiBmbGF0cywgYml0c2V0X3QqIHRvZG8sIGxvbmcgZWx0LCBs b25nIGkpIG5vZXhjZXB0CistCistICAgIGNwZGVmIGJhc2VzX2NvdW50KHNlbGYpIG5vZXhjZXB0 CistICAgIGNwZGVmIGluZGVwZW5kZW50X3Jfc2V0cyhzZWxmLCBsb25nIHIpIG5vZXhjZXB0Cist ICAgIGNwZGVmIGJhc2VzKHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIGRlcGVuZGVudF9yX3Nl dHMoc2VsZiwgbG9uZyByKSBub2V4Y2VwdAorLSAgICBjcGRlZiBub25iYXNlcyhzZWxmKSBub2V4 Y2VwdAorLQorLSAgICBjcGRlZiBub25zcGFubmluZ19jaXJjdWl0cyhzZWxmKSBub2V4Y2VwdAor LSAgICBjcGRlZiBjb2NpcmN1aXRzKHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIGNpcmN1aXRz KHNlbGYpIG5vZXhjZXB0CistCistICAgIGNwZGVmIF9jaGFyYWN0ZXJpc3RpY19zZXRzeXN0ZW0o c2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgX3dlYWtfaW52YXJpYW50KHNlbGYpIG5vZXhjZXB0 CistICAgIGNwZGVmIF93ZWFrX3BhcnRpdGlvbihzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBf c3Ryb25nX2ludmFyaWFudChzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfc3Ryb25nX3BhcnRp dGlvbihzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfaGV1cmlzdGljX2ludmFyaWFudChzZWxm KSBub2V4Y2VwdAorLSAgICBjcGRlZiBfaGV1cmlzdGljX3BhcnRpdGlvbihzZWxmKSBub2V4Y2Vw dAorLSAgICBjZGVmIF9mbHVzaChzZWxmKSBub2V4Y2VwdAorLQorLSAgICBjcGRlZiBfZXF1aXRh YmxlX3BhcnRpdGlvbihzZWxmLCBQPSopIG5vZXhjZXB0CistICAgIGNwZGVmIF9pc19pc29tb3Jw aGljKHNlbGYsIG90aGVyLCBjZXJ0aWZpY2F0ZT0qKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfaXNv bW9ycGhpc20oc2VsZiwgb3RoZXIpIG5vZXhjZXB0CistICAgIGNwZGVmIF9pc19pc29tb3JwaGlz bShzZWxmLCBvdGhlciwgbW9ycGhpc20pIG5vZXhjZXB0CisrICAgIGNwZGVmIGdyb3VuZHNldChz ZWxmKQorKyAgICBjcGRlZiBncm91bmRzZXRfbGlzdChzZWxmKQorKyAgICBjcGRlZiBmdWxsX3Jh bmsoc2VsZikKKysgICAgY3BkZWYgZnVsbF9jb3Jhbmsoc2VsZikKKysKKysgICAgY3BkZWYgYmFz aXMoc2VsZikKKysgICAgY3BkZWYgX21vdmVfY3VycmVudF9iYXNpcyhzZWxmLCBYLCBZKQorKwor KyAgICBjcGRlZiBfbWF4X2luZGVwZW5kZW50KHNlbGYsIEYpCisrICAgIGNwZGVmIF9yYW5rKHNl bGYsIEYpCisrICAgIGNwZGVmIF9jaXJjdWl0KHNlbGYsIEYpCisrICAgIGNwZGVmIF9mdW5kYW1l bnRhbF9jaXJjdWl0KHNlbGYsIEIsIGUpCisrICAgIGNwZGVmIF9jbG9zdXJlKHNlbGYsIEYpCisr CisrICAgIGNwZGVmIF9tYXhfY29pbmRlcGVuZGVudChzZWxmLCBGKQorKyAgICBjcGRlZiBfY29y YW5rKHNlbGYsIEYpCisrICAgIGNwZGVmIF9jb2NpcmN1aXQoc2VsZiwgRikKKysgICAgY3BkZWYg X2Z1bmRhbWVudGFsX2NvY2lyY3VpdChzZWxmLCBCLCBlKQorKyAgICBjcGRlZiBfY29jbG9zdXJl KHNlbGYsIEYpCisrCisrICAgIGNwZGVmIF9hdWdtZW50KHNlbGYsIFgsIFkpCisrICAgIGNwZGVm IF9pc19pbmRlcGVuZGVudChzZWxmLCBGKQorKworKyAgICBjcGRlZiBmX3ZlY3RvcihzZWxmKQor KyAgICBjZGVmICBfZl92ZWN0b3JfcmVjKHNlbGYsIG9iamVjdCBmX3ZlYywgYml0c2V0X3QqIGZs YXRzLCBiaXRzZXRfdCogdG9kbywgbG9uZyBlbHQsIGxvbmcgcm5rKQorKyAgICBjcGRlZiBmbGF0 cyhzZWxmLCBSKQorKyAgICBjZGVmICBfZmxhdHNfcmVjKHNlbGYsIFNldFN5c3RlbSBSZmxhdHMs IGxvbmcgUiwgYml0c2V0X3QqIGZsYXRzLCBiaXRzZXRfdCogdG9kbywgbG9uZyBlbHQsIGxvbmcg cm5rKQorKyAgICBjcGRlZiBjb2ZsYXRzKHNlbGYsIFIpCisrICAgIGNkZWYgIF9jb2ZsYXRzX3Jl YyhzZWxmLCBTZXRTeXN0ZW0gUmNvZmxhdHMsIGxvbmcgUiwgYml0c2V0X3QqIGNvZmxhdHMsIGJp dHNldF90KiB0b2RvLCBsb25nIGVsdCwgbG9uZyBjb3JuaykKKysgICAgY2RlZiBfZmxhdF9lbGVt ZW50X2ludihzZWxmLCBsb25nIGspCisrICAgIGNkZWYgIF9mbGF0X2VsZW1lbnRfaW52X3JlYyhz ZWxmLCBvYmplY3QgZl9pbmMsIGxvbmcgUiwgYml0c2V0X3QqIGZsYXRzLCBiaXRzZXRfdCogdG9k bywgbG9uZyBlbHQsIGxvbmcgaSkKKysKKysgICAgY3BkZWYgYmFzZXNfY291bnQoc2VsZikKKysg ICAgY3BkZWYgaW5kZXBlbmRlbnRfcl9zZXRzKHNlbGYsIGxvbmcgcikKKysgICAgY3BkZWYgYmFz ZXMoc2VsZikKKysgICAgY3BkZWYgZGVwZW5kZW50X3Jfc2V0cyhzZWxmLCBsb25nIHIpCisrICAg IGNwZGVmIG5vbmJhc2VzKHNlbGYpCisrCisrICAgIGNwZGVmIG5vbnNwYW5uaW5nX2NpcmN1aXRz KHNlbGYpCisrICAgIGNwZGVmIGNvY2lyY3VpdHMoc2VsZikKKysgICAgY3BkZWYgY2lyY3VpdHMo c2VsZikKKysKKysgICAgY3BkZWYgX2NoYXJhY3RlcmlzdGljX3NldHN5c3RlbShzZWxmKQorKyAg ICBjcGRlZiBfd2Vha19pbnZhcmlhbnQoc2VsZikKKysgICAgY3BkZWYgX3dlYWtfcGFydGl0aW9u KHNlbGYpCisrICAgIGNwZGVmIF9zdHJvbmdfaW52YXJpYW50KHNlbGYpCisrICAgIGNwZGVmIF9z dHJvbmdfcGFydGl0aW9uKHNlbGYpCisrICAgIGNwZGVmIF9oZXVyaXN0aWNfaW52YXJpYW50KHNl bGYpCisrICAgIGNwZGVmIF9oZXVyaXN0aWNfcGFydGl0aW9uKHNlbGYpCisrICAgIGNkZWYgX2Zs dXNoKHNlbGYpCisrCisrICAgIGNwZGVmIF9lcXVpdGFibGVfcGFydGl0aW9uKHNlbGYsIFA9KikK KysgICAgY3BkZWYgX2lzX2lzb21vcnBoaWMoc2VsZiwgb3RoZXIsIGNlcnRpZmljYXRlPSopCisr ICAgIGNwZGVmIF9pc29tb3JwaGlzbShzZWxmLCBvdGhlcikKKysgICAgY3BkZWYgX2lzX2lzb21v cnBoaXNtKHNlbGYsIG90aGVyLCBtb3JwaGlzbSkKKyAgICAgY2RlZiBiaW50IF9faXNfaXNvbW9y cGhpc20oc2VsZiwgQmFzaXNFeGNoYW5nZU1hdHJvaWQgb3RoZXIsIG1vcnBoaXNtKSBub2V4Y2Vw dAorIAorLSAgICBjcGRlZiBpc192YWxpZChzZWxmKSBub2V4Y2VwdAorKyAgICBjcGRlZiBpc192 YWxpZChzZWxmKQorIAorIGNkZWYgYmludCBueGtzcmQoYml0c2V0X3MgKmIsIGxvbmcgbiwgbG9u ZyBrLCBiaW50IHN1Y2MpIG5vZXhjZXB0CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cm9pZHMv YmFzaXNfZXhjaGFuZ2VfbWF0cm9pZC5weXggYi9zcmMvc2FnZS9tYXRyb2lkcy9iYXNpc19leGNo YW5nZV9tYXRyb2lkLnB5eAoraW5kZXggYmZhMTNiNDRjMDIuLmE2YTM4YzU4MDgyIDEwMDY0NAor LS0tIGEvc3JjL3NhZ2UvbWF0cm9pZHMvYmFzaXNfZXhjaGFuZ2VfbWF0cm9pZC5weXgKKysrKyBi L3NyYy9zYWdlL21hdHJvaWRzL2Jhc2lzX2V4Y2hhbmdlX21hdHJvaWQucHl4CitAQCAtMTkxLDcg KzE5MSw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAg ICAgICBiaXRzZXRfZnJlZShzZWxmLl9vdXRwdXQpCisgICAgICAgICBiaXRzZXRfZnJlZShzZWxm Ll90ZW1wKQorIAorLSAgICBjZGVmIF9yZWxhYmVsKHNlbGYsIGwpIG5vZXhjZXB0OgorKyAgICBj ZGVmIF9yZWxhYmVsKHNlbGYsIGwpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZWxhYmVsIGVh Y2ggZWxlbWVudCBgZWAgYXMgYGxbZV1gLCB3aGVyZSBgbGAgaXMgYSBnaXZlbiBpbmplY3RpdmUg bWFwLgorIAorQEAgLTIzMCw3ICsyMzAsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRy b2lkKE1hdHJvaWQpOgorICAgICAgICAgICAgIHNlbGYuX2hldXJpc3RpY19wYXJ0aXRpb25fdmFy Ll9yZWxhYmVsKGwpCisgCisgICAgICMgdGhlIGVuZ2luZQorLSAgICBjZGVmIF9wYWNrKHNlbGYs IGJpdHNldF90IEksIEYpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9wYWNrKHNlbGYsIGJpdHNldF90 IEksIEYpOgorICAgICAgICAgIiIiCisgICAgICAgICBFbmNvZGUgYSBzdWJzZXQgRiBvZiB0aGUg Z3JvdW5kc2V0IGludG8gYSBiaXRwYWNrZWQgc2V0IG9mIGludGVnZXJzCisgICAgICAgICAiIiIK K0BAIC0yMzgsNyArMjM4LDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRy b2lkKToKKyAgICAgICAgIGZvciBmIGluIEY6CisgICAgICAgICAgICAgYml0c2V0X2FkZChJLCA8 bXBfYml0Y250X3Q+IHNlbGYuX2lkeFtmXSkKKyAKKy0gICAgY2RlZiBfX3VucGFjayhzZWxmLCBi aXRzZXRfdCBJKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfX3VucGFjayhzZWxmLCBiaXRzZXRfdCBJ KToKKyAgICAgICAgICIiIgorICAgICAgICAgVW5lbmNvZGUgYSBiaXRwYWNrZWQgc2V0IG9mIGlu dGVnZXJzIHRvIGEgc3Vic2V0IG9mIHRoZSBncm91bmRzZXQuCisgICAgICAgICAiIiIKK0BAIC0y ODUsNyArMjg1LDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToK KyAgICAgICAgICAgICAgICAgICAgIHkgPSBiaXRzZXRfbmV4dChZLCB5ICsgMSkKKyAgICAgICAg ICAgICB4ID0gYml0c2V0X25leHQoWCwgeCArIDEpCisgCistICAgIGNkZWYgX19mdW5kYW1lbnRh bF9jb2NpcmN1aXQoc2VsZiwgYml0c2V0X3QgQywgbG9uZyB4KSBub2V4Y2VwdDoKKysgICAgY2Rl ZiBfX2Z1bmRhbWVudGFsX2NvY2lyY3VpdChzZWxmLCBiaXRzZXRfdCBDLCBsb25nIHgpOgorICAg ICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHVuaXF1ZSBjb2NpcmN1aXQgdGhhdCBtZWV0 cyBgYHNlbGYuX2N1cnJlbnRfYmFzaXNgYCBpbiBleGFjdGx5IGVsZW1lbnQgYGB4YGAuCisgICAg ICAgICAiIiIKK0BAIC0yOTksNyArMjk5LDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0 cm9pZChNYXRyb2lkKToKKyAgICAgICAgICAgICB5ID0gYml0c2V0X25leHQoc2VsZi5fdGVtcCwg eSArIDEpCisgICAgICAgICBiaXRzZXRfYWRkKEMsIHgpCisgCistICAgIGNkZWYgX19mdW5kYW1l bnRhbF9jaXJjdWl0KHNlbGYsIGJpdHNldF90IEMsIGxvbmcgeSkgbm9leGNlcHQ6CisrICAgIGNk ZWYgX19mdW5kYW1lbnRhbF9jaXJjdWl0KHNlbGYsIGJpdHNldF90IEMsIGxvbmcgeSk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgdW5pcXVlIGNpcmN1aXQgY29udGFpbmVkIGlu IGBgc2VsZi5fY3VycmVudF9iYXNpc2BgIHVuaW9uIGBgeWBgLgorICAgICAgICAgIiIiCitAQCAt MzEyLDcgKzMxMiw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6 CisgICAgICAgICAgICAgeCA9IGJpdHNldF9uZXh0KHNlbGYuX2N1cnJlbnRfYmFzaXMsIHggKyAx KQorICAgICAgICAgYml0c2V0X2FkZChDLCB5KQorIAorLSAgICBjZGVmIF9fbWF4X2luZGVwZW5k ZW50KHNlbGYsIGJpdHNldF90IFIsIGJpdHNldF90IEYpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9f bWF4X2luZGVwZW5kZW50KHNlbGYsIGJpdHNldF90IFIsIGJpdHNldF90IEYpOgorICAgICAgICAg IiIiCisgICAgICAgICBCaXRwYWNrZWQgdmVyc2lvbiBvZiBgYG1heF9pbmRlcGVuZGVudGBgLgor ICAgICAgICAgIiIiCitAQCAtMzIxLDcgKzMyMSw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5n ZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICBzZWxmLl9tb3ZlKHNlbGYuX2luc2lkZSwgc2Vs Zi5fb3V0c2lkZSkKKyAgICAgICAgIGJpdHNldF9pbnRlcnNlY3Rpb24oUiwgc2VsZi5fY3VycmVu dF9iYXNpcywgRikKKyAKKy0gICAgY2RlZiBfX2NpcmN1aXQoc2VsZiwgYml0c2V0X3QgUiwgYml0 c2V0X3QgRikgbm9leGNlcHQ6CisrICAgIGNkZWYgX19jaXJjdWl0KHNlbGYsIGJpdHNldF90IFIs IGJpdHNldF90IEYpOgorICAgICAgICAgIiIiCisgICAgICAgICBCaXRwYWNrZWQgdmVyc2lvbiBv ZiBgYGNpcmN1aXRgYC4KKyAgICAgICAgICIiIgorQEAgLTM0OCw3ICszNDgsNyBAQCBjZGVmIGNs YXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgICAgICAgICByZXR1 cm4KKyAgICAgICAgICAgICB5ID0gYml0c2V0X25leHQoc2VsZi5fb3V0c2lkZSwgeSArIDEpCisg CistICAgIGNkZWYgX19jbG9zdXJlKHNlbGYsIGJpdHNldF90IFIsIGJpdHNldF90IEYpIG5vZXhj ZXB0OgorKyAgICBjZGVmIF9fY2xvc3VyZShzZWxmLCBiaXRzZXRfdCBSLCBiaXRzZXRfdCBGKToK KyAgICAgICAgICIiIgorICAgICAgICAgQml0cGFja2VkIHZlcnNpb24gb2YgYGBjbG9zdXJlYGAu CisgICAgICAgICAiIiIKK0BAIC0zNjIsNyArMzYyLDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hh bmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgICAgICBiaXRzZXRfZGlmZmVyZW5jZShSLCBS LCBGKQorICAgICAgICAgICAgIHggPSBiaXRzZXRfbmV4dChzZWxmLl9pbnNpZGUsIHggKyAxKQor IAorLSAgICBjZGVmIF9fbWF4X2NvaW5kZXBlbmRlbnQoc2VsZiwgYml0c2V0X3QgUiwgYml0c2V0 X3QgRikgbm9leGNlcHQ6CisrICAgIGNkZWYgX19tYXhfY29pbmRlcGVuZGVudChzZWxmLCBiaXRz ZXRfdCBSLCBiaXRzZXRfdCBGKToKKyAgICAgICAgICIiIgorICAgICAgICAgQml0cGFja2VkIHZl cnNpb24gb2YgYGBtYXhfY29pbmRlcGVuZGVudGBgLgorICAgICAgICAgIiIiCitAQCAtMzcyLDcg KzM3Miw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAg ICAgICBzZWxmLl9tb3ZlKHNlbGYuX2luc2lkZSwgc2VsZi5fb3V0c2lkZSkKKyAgICAgICAgIGJp dHNldF9kaWZmZXJlbmNlKFIsIEYsIHNlbGYuX2N1cnJlbnRfYmFzaXMpCisgCistICAgIGNkZWYg X19jb2NpcmN1aXQoc2VsZiwgYml0c2V0X3QgUiwgYml0c2V0X3QgRikgbm9leGNlcHQ6CisrICAg IGNkZWYgX19jb2NpcmN1aXQoc2VsZiwgYml0c2V0X3QgUiwgYml0c2V0X3QgRik6CisgICAgICAg ICAiIiIKKyAgICAgICAgIEJpdHBhY2tlZCB2ZXJzaW9uIG9mIGBgY29jaXJjdWl0YGAuCisgICAg ICAgICAiIiIKK0BAIC00MDAsNyArNDAwLDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0 cm9pZChNYXRyb2lkKToKKyAgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICAgeCA9 IGJpdHNldF9uZXh0KHNlbGYuX2luc2lkZSwgeCArIDEpCisgCistICAgIGNkZWYgX2NvY2xvc3Vy ZV9pbnRlcm5hbChzZWxmLCBiaXRzZXRfdCBSLCBiaXRzZXRfdCBGKSBub2V4Y2VwdDoKKysgICAg Y2RlZiBfY29jbG9zdXJlX2ludGVybmFsKHNlbGYsIGJpdHNldF90IFIsIGJpdHNldF90IEYpOgor ICAgICAgICAgIiIiCisgICAgICAgICBCaXRwYWNrZWQgdmVyc2lvbiBvZiBgYGNsb3N1cmVgYC4K KyAgICAgICAgICIiIgorQEAgLTQxNSw3ICs0MTUsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFu Z2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgICAgIGJpdHNldF9kaWZmZXJlbmNlKFIsIFIs IEYpCisgICAgICAgICAgICAgeSA9IGJpdHNldF9uZXh0KHNlbGYuX291dHNpZGUsIHkgKyAxKQor IAorLSAgICBjZGVmIF9fYXVnbWVudChzZWxmLCBiaXRzZXRfdCBSLCBiaXRzZXRfdCBYLCBiaXRz ZXRfdCBZKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfX2F1Z21lbnQoc2VsZiwgYml0c2V0X3QgUiwg Yml0c2V0X3QgWCwgYml0c2V0X3QgWSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEJpdHBhY2tl ZCB2ZXJzaW9uIG9mIGBgYXVnbWVudGBgLgorICAgICAgICAgIiIiCitAQCAtNDM2LDcgKzQzNiw3 IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICBz ZWxmLl9tb3ZlKHNlbGYuX2luc2lkZSwgc2VsZi5fb3V0c2lkZSkKKyAgICAgICAgIHJldHVybiBi aXRzZXRfaXNlbXB0eShzZWxmLl9vdXRzaWRlKQorIAorLSAgICBjZGVmIF9fbW92ZV9jdXJyZW50 X2Jhc2lzKHNlbGYsIGJpdHNldF90IFgsIGJpdHNldF90IFkpIG5vZXhjZXB0OgorKyAgICBjZGVm IF9fbW92ZV9jdXJyZW50X2Jhc2lzKHNlbGYsIGJpdHNldF90IFgsIGJpdHNldF90IFkpOgorICAg ICAgICAgIiIiCisgICAgICAgICBCaXRwYWNrZWQgdmVyc2lvbiBvZiBgYF9tb3ZlX2N1cnJlbnRf YmFzaXNgYC4KKyAgICAgICAgICIiIgorQEAgLTQ2MCw3ICs0NjAsNyBAQCBjZGVmIGNsYXNzIEJh c2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgcmV0dXJuIGJpdHNldF9pc2Vt cHR5KHNlbGYuX291dHNpZGUpIGFuZCBiaXRzZXRfaXNlbXB0eShzZWxmLl9pbnNpZGUpCisgCisg ICAgICMgZ3JvdW5kc2V0IGFuZCBmdWxsX3JhbmsKKy0gICAgY3BkZWYgZ3JvdW5kc2V0KHNlbGYp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBncm91bmRzZXQoc2VsZik6CisgICAgICAgICAiIiIKKyAg ICAgICAgIFJldHVybiB0aGUgZ3JvdW5kc2V0IG9mIHRoZSBtYXRyb2lkLgorIAorQEAgLTQ3OCw3 ICs0NzgsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAg ICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fZ3JvdW5kc2V0CisgCistICAgIGNwZGVm IGdyb3VuZHNldF9saXN0KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBncm91bmRzZXRfbGlz dChzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGEgbGlzdCBvZiBlbGVtZW50 cyBvZiB0aGUgZ3JvdW5kc2V0IG9mIHRoZSBtYXRyb2lkLgorIAorQEAgLTUyMyw3ICs1MjMsNyBA QCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgIiIi CisgICAgICAgICByZXR1cm4gc2VsZi5fZ3JvdW5kc2V0X3NpemUKKyAKKy0gICAgY3BkZWYgZnVs bF9yYW5rKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBmdWxsX3Jhbmsoc2VsZik6CisgICAg ICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHJhbmsgb2YgdGhlIG1hdHJvaWQuCisgCitA QCAtNTQ0LDcgKzU0NCw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9p ZCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9tYXRyb2lkX3JhbmsKKyAK Ky0gICAgY3BkZWYgZnVsbF9jb3Jhbmsoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGZ1bGxf Y29yYW5rKHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBjb3Jhbmsg b2YgdGhlIG1hdHJvaWQuCisgCitAQCAtNTcyLDcgKzU3Miw3IEBAIGNkZWYgY2xhc3MgQmFzaXNF eGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgCisgICAgICMgbWF0cm9pZCBvcmFjbGVzCisgCist ICAgIGNwZGVmIGJhc2lzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBiYXNpcyhzZWxmKToK KyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBhbiBhcmJpdHJhcnkgYmFzaXMgb2YgdGhl IG1hdHJvaWQuCisgCitAQCAtNjAwLDcgKzYwMCw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5n ZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9f dW5wYWNrKHNlbGYuX2N1cnJlbnRfYmFzaXMpCisgCistICAgIGNwZGVmIF9tb3ZlX2N1cnJlbnRf YmFzaXMoc2VsZiwgWCwgWSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9tb3ZlX2N1cnJlbnRfYmFz aXMoc2VsZiwgWCwgWSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIENoYW5nZSBjdXJyZW50IGJh c2lzIHNvIHRoYXQgaW50ZXJzZWN0aW9uIHdpdGggWCBpcyBtYXhpbWl6ZWQsCisgICAgICAgICBp bnRlcnNlY3Rpb24gd2l0aCBZIGlzIG1pbmltaXplZC4KK0BAIC02MzAsNyArNjMwLDcgQEAgY2Rl ZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgIHNlbGYuX3Bh Y2soc2VsZi5faW5wdXQyLCBZKQorICAgICAgICAgc2VsZi5fX21vdmVfY3VycmVudF9iYXNpcyhz ZWxmLl9pbnB1dCwgc2VsZi5faW5wdXQyKQorIAorLSAgICBjcGRlZiBfbWF4X2luZGVwZW5kZW50 KHNlbGYsIEYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbWF4X2luZGVwZW5kZW50KHNlbGYsIEYp OgorICAgICAgICAgIiIiCisgICAgICAgICBDb21wdXRlIGEgbWF4aW1hbCBpbmRlcGVuZGVudCBz dWJzZXQuCisgCitAQCAtNjYwLDcgKzY2MCw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1h dHJvaWQoTWF0cm9pZCk6CisgICAgICAgICBzZWxmLl9fbWF4X2luZGVwZW5kZW50KHNlbGYuX291 dHB1dCwgc2VsZi5faW5wdXQpCisgICAgICAgICByZXR1cm4gc2VsZi5fX3VucGFjayhzZWxmLl9v dXRwdXQpCisgCistICAgIGNwZGVmIF9yYW5rKHNlbGYsIEYpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBfcmFuayhzZWxmLCBGKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ29tcHV0ZSB0aGUgcmFu ayBvZiBhIHN1YnNldCBvZiB0aGUgZ3JvdW5kIHNldC4KKyAKK0BAIC02OTAsNyArNjkwLDcgQEAg Y2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgIHNlbGYu X19tYXhfaW5kZXBlbmRlbnQoc2VsZi5fb3V0cHV0LCBzZWxmLl9pbnB1dCkKKyAgICAgICAgIHJl dHVybiBiaXRzZXRfbGVuKHNlbGYuX291dHB1dCkKKyAKKy0gICAgY3BkZWYgX2NpcmN1aXQoc2Vs ZiwgRikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9jaXJjdWl0KHNlbGYsIEYpOgorICAgICAgICAg IiIiCisgICAgICAgICBSZXR1cm4gYSBtaW5pbWFsIGRlcGVuZGVudCBzdWJzZXQuCisgCitAQCAt NzI3LDcgKzcyNyw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6 CisgICAgICAgICBzZWxmLl9fY2lyY3VpdChzZWxmLl9vdXRwdXQsIHNlbGYuX2lucHV0KQorICAg ICAgICAgcmV0dXJuIHNlbGYuX191bnBhY2soc2VsZi5fb3V0cHV0KQorIAorLSAgICBjcGRlZiBf ZnVuZGFtZW50YWxfY2lyY3VpdChzZWxmLCBCLCBlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2Z1 bmRhbWVudGFsX2NpcmN1aXQoc2VsZiwgQiwgZSk6CisgICAgICAgICByIiIiCisgICAgICAgICBS ZXR1cm4gdGhlIGBCYC1mdW5kYW1lbnRhbCBjaXJjdWl0IHVzaW5nIGBlYC4KKyAKK0BAIC03NTQs NyArNzU0LDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAg ICAgICAgIHNlbGYuX19mdW5kYW1lbnRhbF9jaXJjdWl0KHNlbGYuX291dHB1dCwgc2VsZi5faWR4 W2VdKQorICAgICAgICAgcmV0dXJuIHNlbGYuX191bnBhY2soc2VsZi5fb3V0cHV0KQorIAorLSAg ICBjcGRlZiBfY2xvc3VyZShzZWxmLCBGKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2Nsb3N1cmUo c2VsZiwgRik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgY2xvc3VyZSBvZiBh IHNldC4KKyAKK0BAIC03ODQsNyArNzg0LDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0 cm9pZChNYXRyb2lkKToKKyAgICAgICAgIHNlbGYuX19jbG9zdXJlKHNlbGYuX291dHB1dCwgc2Vs Zi5faW5wdXQpCisgICAgICAgICByZXR1cm4gc2VsZi5fX3VucGFjayhzZWxmLl9vdXRwdXQpCisg CistICAgIGNwZGVmIF9tYXhfY29pbmRlcGVuZGVudChzZWxmLCBGKSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgX21heF9jb2luZGVwZW5kZW50KHNlbGYsIEYpOgorICAgICAgICAgIiIiCisgICAgICAg ICBDb21wdXRlIGEgbWF4aW1hbCBjb2luZGVwZW5kZW50IHN1YnNldC4KKyAKK0BAIC04MTQsNyAr ODE0LDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAg ICAgIHNlbGYuX19tYXhfY29pbmRlcGVuZGVudChzZWxmLl9vdXRwdXQsIHNlbGYuX2lucHV0KQor ICAgICAgICAgcmV0dXJuIHNlbGYuX191bnBhY2soc2VsZi5fb3V0cHV0KQorIAorLSAgICBjcGRl ZiBfY29yYW5rKHNlbGYsIEYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfY29yYW5rKHNlbGYsIEYp OgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGNvcmFuayBvZiBhIHNldC4KKyAK K0BAIC04NDQsNyArODQ0LDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRy b2lkKToKKyAgICAgICAgIHNlbGYuX19tYXhfY29pbmRlcGVuZGVudChzZWxmLl9vdXRwdXQsIHNl bGYuX2lucHV0KQorICAgICAgICAgcmV0dXJuIGJpdHNldF9sZW4oc2VsZi5fb3V0cHV0KQorIAor LSAgICBjcGRlZiBfY29jaXJjdWl0KHNlbGYsIEYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfY29j aXJjdWl0KHNlbGYsIEYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYSBtaW5pbWFs IGNvZGVwZW5kZW50IHN1YnNldC4KKyAKK0BAIC04ODEsNyArODgxLDcgQEAgY2RlZiBjbGFzcyBC YXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgIHNlbGYuX19jb2NpcmN1aXQo c2VsZi5fb3V0cHV0LCBzZWxmLl9pbnB1dCkKKyAgICAgICAgIHJldHVybiBzZWxmLl9fdW5wYWNr KHNlbGYuX291dHB1dCkKKyAKKy0gICAgY3BkZWYgX2Z1bmRhbWVudGFsX2NvY2lyY3VpdChzZWxm LCBCLCBlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2Z1bmRhbWVudGFsX2NvY2lyY3VpdChzZWxm LCBCLCBlKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYEJgLWZ1bmRhbWVu dGFsIGNpcmN1aXQgdXNpbmcgYGVgLgorIAorQEAgLTkwOCw3ICs5MDgsNyBAQCBjZGVmIGNsYXNz IEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgc2VsZi5fX2Z1bmRhbWVu dGFsX2NvY2lyY3VpdChzZWxmLl9vdXRwdXQsIHNlbGYuX2lkeFtlXSkKKyAgICAgICAgIHJldHVy biBzZWxmLl9fdW5wYWNrKHNlbGYuX291dHB1dCkKKyAKKy0gICAgY3BkZWYgX2NvY2xvc3VyZShz ZWxmLCBGKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2NvY2xvc3VyZShzZWxmLCBGKToKKyAgICAg ICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBjb2Nsb3N1cmUgb2YgYSBzZXQuCisgCitAQCAt OTM4LDcgKzkzOCw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6 CisgICAgICAgICBzZWxmLl9jb2Nsb3N1cmVfaW50ZXJuYWwoc2VsZi5fb3V0cHV0LCBzZWxmLl9p bnB1dCkKKyAgICAgICAgIHJldHVybiBzZWxmLl9fdW5wYWNrKHNlbGYuX291dHB1dCkKKyAKKy0g ICAgY3BkZWYgX2F1Z21lbnQoc2VsZiwgWCwgWSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hdWdt ZW50KHNlbGYsIFgsIFkpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIGEgbWF4aW1h bCBzdWJzZXQgYElgIG9mIGBZYCBzdWNoIHRoYXQgYHIoWCArIEkpPXIoWCkgKyByKEkpYC4KKyAK K0BAIC05NjgsNyArOTY4LDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRy b2lkKToKKyAgICAgICAgIHNlbGYuX19hdWdtZW50KHNlbGYuX291dHB1dCwgc2VsZi5faW5wdXQs IHNlbGYuX2lucHV0MikKKyAgICAgICAgIHJldHVybiBzZWxmLl9fdW5wYWNrKHNlbGYuX291dHB1 dCkKKyAKKy0gICAgY3BkZWYgX2lzX2luZGVwZW5kZW50KHNlbGYsIEYpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBfaXNfaW5kZXBlbmRlbnQoc2VsZiwgRik6CisgICAgICAgICAiIiIKKyAgICAgICAg IFRlc3QgaWYgaW5wdXQgaXMgaW5kZXBlbmRlbnQuCisgCitAQCAtMTAwMSw3ICsxMDAxLDcgQEAg Y2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAKKyAgICAgIyBjb25u ZWN0aXZpdHkKKyAKKy0gICAgY3BkZWYgY29tcG9uZW50cyhzZWxmKSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgY29tcG9uZW50cyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGFu IGl0ZXJhYmxlIGNvbnRhaW5pbmcgdGhlIGNvbXBvbmVudHMgb2YgdGhlIG1hdHJvaWQuCisgCitA QCAtMTA4NSw3ICsxMDg1LDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRy b2lkKToKKyAgICAgICAgIHNpZ19mcmVlKGNvbXApCisgICAgICAgICByZXR1cm4gcmVzCisgCist ICAgIGNwZGVmIF9saW5rKHNlbGYsIFMsIFQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbGluayhz ZWxmLCBTLCBUKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIEdpdmVuIGRpc2pvaW50IHN1YnNl dHMgYFNgIGFuZCBgVGAsIHJldHVybiBhIGNvbm5lY3RvciBgSWAgYW5kIGEgc2VwYXJhdGlvbiBg WGAsCisgICAgICAgICB3aGljaCBhcmUgb3B0aW1hbCBkdWFsIHNvbHV0aW9ucyBpbiBUdXR0ZSdz IExpbmtpbmcgVGhlb3JlbToKK0BAIC0xMjMyLDcgKzEyMzIsNyBAQCBjZGVmIGNsYXNzIEJhc2lz RXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorIAorICAgICAjIGVudW1lcmF0aW9uCisgCistICAg IGNwZGVmIGZfdmVjdG9yKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBmX3ZlY3RvcihzZWxm KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYGZgLXZlY3RvciBvZiB0aGUg bWF0cm9pZC4KKyAKK0BAIC0xMjcyLDcgKzEyNzIsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFu Z2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgc2lnX2ZyZWUodG9kbykKKyAgICAgICAgIHJl dHVybiBmX3ZlYworIAorLSAgICBjZGVmIF9mX3ZlY3Rvcl9yZWMoc2VsZiwgb2JqZWN0IGZfdmVj LCBiaXRzZXRfdCogZmxhdHMsIGJpdHNldF90KiB0b2RvLCBsb25nIGVsdCwgbG9uZyBpKSBub2V4 Y2VwdDoKKysgICAgY2RlZiBfZl92ZWN0b3JfcmVjKHNlbGYsIG9iamVjdCBmX3ZlYywgYml0c2V0 X3QqIGZsYXRzLCBiaXRzZXRfdCogdG9kbywgbG9uZyBlbHQsIGxvbmcgaSk6CisgICAgICAgICAi IiIKKyAgICAgICAgIFJlY3Vyc2lvbiBmb3IgdGhlIGZfdmVjdG9yIG1ldGhvZC4KKyAgICAgICAg ICIiIgorQEAgLTEyOTAsNyArMTI5MCw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJv aWQoTWF0cm9pZCk6CisgICAgICAgICAgICAgICAgIHNlbGYuX2ZfdmVjdG9yX3JlYyhmX3ZlYywg ZmxhdHMsIHRvZG8sIGUgKyAxLCBpICsgMSkKKyAgICAgICAgICAgICBlID0gYml0c2V0X25leHQo dG9kb1tpXSwgZSkKKyAKKy0gICAgY3BkZWYgZmxhdHMoc2VsZiwgcikgbm9leGNlcHQ6CisrICAg IGNwZGVmIGZsYXRzKHNlbGYsIHIpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhl IGNvbGxlY3Rpb24gb2YgZmxhdHMgb2YgdGhlIG1hdHJvaWQgb2Ygc3BlY2lmaWVkIHJhbmsuCisg CitAQCAtMTM0NSw3ICsxMzQ1LDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChN YXRyb2lkKToKKyAgICAgICAgIHNpZ19mcmVlKHRvZG8pCisgICAgICAgICByZXR1cm4gUmZsYXRz CisgCistICAgIGNkZWYgX2ZsYXRzX3JlYyhzZWxmLCBTZXRTeXN0ZW0gUmZsYXRzLCBsb25nIFIs IGJpdHNldF90KiBmbGF0cywgYml0c2V0X3QqIHRvZG8sIGxvbmcgZWx0LCBsb25nIGkpIG5vZXhj ZXB0OgorKyAgICBjZGVmIF9mbGF0c19yZWMoc2VsZiwgU2V0U3lzdGVtIFJmbGF0cywgbG9uZyBS LCBiaXRzZXRfdCogZmxhdHMsIGJpdHNldF90KiB0b2RvLCBsb25nIGVsdCwgbG9uZyBpKToKKyAg ICAgICAgICIiIgorICAgICAgICAgUmVjdXJzaW9uIGZvciB0aGUgYGBmbGF0c2BgIG1ldGhvZC4K KyAgICAgICAgICIiIgorQEAgLTEzNjUsNyArMTM2NSw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNo YW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICAgICAgICAgIHNlbGYuX2ZsYXRzX3JlYyhS ZmxhdHMsIFIsIGZsYXRzLCB0b2RvLCBlICsgMSwgaSArIDEpCisgICAgICAgICAgICAgZSA9IGJp dHNldF9uZXh0KHRvZG9baV0sIGUpCisgCistICAgIGNwZGVmIGNvZmxhdHMoc2VsZiwgcikgbm9l eGNlcHQ6CisrICAgIGNwZGVmIGNvZmxhdHMoc2VsZiwgcik6CisgICAgICAgICAiIiIKKyAgICAg ICAgIFJldHVybiB0aGUgY29sbGVjdGlvbiBvZiBjb2ZsYXRzIG9mIHRoZSBtYXRyb2lkIG9mIHNw ZWNpZmllZCBjb3JhbmsuCisgCitAQCAtMTQyMCw3ICsxNDIwLDcgQEAgY2RlZiBjbGFzcyBCYXNp c0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgIHNpZ19mcmVlKHRvZG8pCisgICAg ICAgICByZXR1cm4gUmNvZmxhdHMKKyAKKy0gICAgY2RlZiBfY29mbGF0c19yZWMoc2VsZiwgU2V0 U3lzdGVtIFJjb2ZsYXRzLCBsb25nIFIsIGJpdHNldF90KiBjb2ZsYXRzLCBiaXRzZXRfdCogdG9k bywgbG9uZyBlbHQsIGxvbmcgaSkgbm9leGNlcHQ6CisrICAgIGNkZWYgX2NvZmxhdHNfcmVjKHNl bGYsIFNldFN5c3RlbSBSY29mbGF0cywgbG9uZyBSLCBiaXRzZXRfdCogY29mbGF0cywgYml0c2V0 X3QqIHRvZG8sIGxvbmcgZWx0LCBsb25nIGkpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZWN1 cnNpb24gZm9yIHRoZSBgYGNvZmxhdHNgYCBtZXRob2QuCisgICAgICAgICAiIiIKK0BAIC0xNDQw LDcgKzE0NDAsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgor ICAgICAgICAgICAgICAgICBzZWxmLl9jb2ZsYXRzX3JlYyhSY29mbGF0cywgUiwgY29mbGF0cywg dG9kbywgZSArIDEsIGkgKyAxKQorICAgICAgICAgICAgIGUgPSBiaXRzZXRfbmV4dCh0b2RvW2ld LCBlKQorIAorLSAgICBjZGVmIF9mbGF0X2VsZW1lbnRfaW52KHNlbGYsIGxvbmcgaykgbm9leGNl cHQ6CisrICAgIGNkZWYgX2ZsYXRfZWxlbWVudF9pbnYoc2VsZiwgbG9uZyBrKToKKyAgICAgICAg ICIiIgorICAgICAgICAgQ29tcHV0ZSBhIGZsYXQtZWxlbWVudCBpbnZhcmlhbnQgb2YgdGhlIG1h dHJvaWQuCisgICAgICAgICAiIiIKK0BAIC0xNDc1LDcgKzE0NzUsNyBAQCBjZGVmIGNsYXNzIEJh c2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgZl92ZWMgPSB0dXBsZShbZl9p bmNbaV1bc2VsZi5fZ3JvdW5kc2V0X3NpemVdIGZvciBpIGluIHJhbmdlKGsgKyAxKV0pCisgICAg ICAgICByZXR1cm4gZmllLCBmX3ZlYworIAorLSAgICBjZGVmIF9mbGF0X2VsZW1lbnRfaW52X3Jl YyhzZWxmLCBvYmplY3QgZl9pbmMsIGxvbmcgUiwgYml0c2V0X3QqIGZsYXRzLCBiaXRzZXRfdCog dG9kbywgbG9uZyBlbHQsIGxvbmcgaSkgbm9leGNlcHQ6CisrICAgIGNkZWYgX2ZsYXRfZWxlbWVu dF9pbnZfcmVjKHNlbGYsIG9iamVjdCBmX2luYywgbG9uZyBSLCBiaXRzZXRfdCogZmxhdHMsIGJp dHNldF90KiB0b2RvLCBsb25nIGVsdCwgbG9uZyBpKToKKyAgICAgICAgICIiIgorICAgICAgICAg UmVjdXJzaW9uIGZvciBgYF9mbGF0X2VsZW1lbnRfaW52YGAuCisgICAgICAgICAiIiIKK0BAIC0x NTAyLDcgKzE1MDIsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQp OgorICAgICAgICAgICAgICAgICBzZWxmLl9mbGF0X2VsZW1lbnRfaW52X3JlYyhmX2luYywgUiwg ZmxhdHMsIHRvZG8sIGUgKyAxLCBpICsgMSkKKyAgICAgICAgICAgICBlID0gYml0c2V0X25leHQo dG9kb1tpXSwgZSkKKyAKKy0gICAgY3BkZWYgYmFzZXNfY291bnQoc2VsZikgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIGJhc2VzX2NvdW50KHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1 cm4gdGhlIG51bWJlciBvZiBiYXNlcyBvZiB0aGUgbWF0cm9pZC4KKyAKK0BAIC0xNTM1LDcgKzE1 MzUsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAg ICAgc2VsZi5fYmNvdW50ID0gcmVzCisgICAgICAgICByZXR1cm4gc2VsZi5fYmNvdW50CisgCist ICAgIGNwZGVmIGluZGVwZW5kZW50X3NldHMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGlu ZGVwZW5kZW50X3NldHMoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhl IGxpc3Qgb2YgaW5kZXBlbmRlbnQgc3Vic2V0cyBvZiB0aGUgbWF0cm9pZC4KKyAKK0BAIC0xNTkx LDcgKzE1OTEsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgor ICAgICAgICAgc2lnX2ZyZWUoVCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKKy0gICAgY3BkZWYg aW5kZXBlbmRlbnRfcl9zZXRzKHNlbGYsIGxvbmcgcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGlu ZGVwZW5kZW50X3Jfc2V0cyhzZWxmLCBsb25nIHIpOgorICAgICAgICAgIiIiCisgICAgICAgICBS ZXR1cm4gdGhlIGxpc3Qgb2Ygc2l6ZS1gYHJgYCBpbmRlcGVuZGVudCBzdWJzZXRzIG9mIHRoZSBt YXRyb2lkLgorIAorQEAgLTE2MjUsNyArMTYyNSw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5n ZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICAgICAgcmVwZWF0ID0gbnhrc3JkKHNlbGYuX2lu cHV0LCBzZWxmLl9ncm91bmRzZXRfc2l6ZSwgciwgVHJ1ZSkKKyAgICAgICAgIHJldHVybiBCQgor IAorLSAgICBjcGRlZiBiYXNlcyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgYmFzZXMoc2Vs Zik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgbGlzdCBvZiBiYXNlcyBvZiB0 aGUgbWF0cm9pZC4KKyAKK0BAIC0xNjQ1LDcgKzE2NDUsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhj aGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2Vs Zi5pbmRlcGVuZGVudF9yX3NldHMoc2VsZi5mdWxsX3JhbmsoKSkKKyAKKy0gICAgY3BkZWYgZGVw ZW5kZW50X3Jfc2V0cyhzZWxmLCBsb25nIHIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBkZXBlbmRl bnRfcl9zZXRzKHNlbGYsIGxvbmcgcik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0 aGUgbGlzdCBvZiBkZXBlbmRlbnQgc3Vic2V0cyBvZiBmaXhlZCBzaXplLgorIAorQEAgLTE2ODQs NyArMTY4NCw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6Cisg ICAgICAgICBOQi5yZXNpemUoKQorICAgICAgICAgcmV0dXJuIE5CCisgCistICAgIGNwZGVmIG5v bmJhc2VzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBub25iYXNlcyhzZWxmKToKKyAgICAg ICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBsaXN0IG9mIG5vbmJhc2VzIG9mIHRoZSBtYXRy b2lkLgorIAorQEAgLTE3MDksNyArMTcwOSw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1h dHJvaWQoTWF0cm9pZCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLmRlcGVu ZGVudF9yX3NldHMoc2VsZi5mdWxsX3JhbmsoKSkKKyAKKy0gICAgY3BkZWYgbm9uc3Bhbm5pbmdf Y2lyY3VpdHMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIG5vbnNwYW5uaW5nX2NpcmN1aXRz KHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGxpc3Qgb2Ygbm9uc3Bh bm5pbmcgY2lyY3VpdHMgb2YgdGhlIG1hdHJvaWQuCisgCitAQCAtMTc1OCw3ICsxNzU4LDcgQEAg Y2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgIE5TQy5y ZXNpemUoKQorICAgICAgICAgcmV0dXJuIE5TQworIAorLSAgICBjcGRlZiBub25jb3NwYW5uaW5n X2NvY2lyY3VpdHMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIG5vbmNvc3Bhbm5pbmdfY29j aXJjdWl0cyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBsaXN0IG9m IG5vbmNvc3Bhbm5pbmcgY29jaXJjdWl0cyBvZiB0aGUgbWF0cm9pZC4KKyAKK0BAIC0xODA4LDcg KzE4MDgsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAg ICAgICAgTlNDLnJlc2l6ZSgpCisgICAgICAgICByZXR1cm4gTlNDCisgCistICAgIGNwZGVmIGNv Y2lyY3VpdHMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGNvY2lyY3VpdHMoc2VsZik6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgbGlzdCBvZiBjb2NpcmN1aXRzIG9mIHRo ZSBtYXRyb2lkLgorIAorQEAgLTE4NTYsNyArMTg1Niw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNo YW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICBOU0MucmVzaXplKCkKKyAgICAgICAgIHJl dHVybiBOU0MKKyAKKy0gICAgY3BkZWYgY2lyY3VpdHMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNw ZGVmIGNpcmN1aXRzKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGxp c3Qgb2YgY2lyY3VpdHMgb2YgdGhlIG1hdHJvaWQuCisgCitAQCAtMTkwOCw3ICsxOTA4LDcgQEAg Y2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAKKyAgICAgIyBpc29t b3JwaGlzbQorIAorLSAgICBjcGRlZiBfY2hhcmFjdGVyaXN0aWNfc2V0c3lzdGVtKHNlbGYpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBfY2hhcmFjdGVyaXN0aWNfc2V0c3lzdGVtKHNlbGYpOgorICAg ICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIGEgY2hhcmFjdGVyaXN0aWMgc2V0LXN5c3RlbSBm b3IgdGhpcyBtYXRyb2lkLCBvbiB0aGUgc2FtZQorICAgICAgICAgZ3JvdW5kIHNldC4KK0BAIC0x OTMwLDcgKzE5MzAsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQp OgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZi5ub25jb3NwYW5uaW5n X2NvY2lyY3VpdHMoKQorIAorLSAgICBjcGRlZiBfd2Vha19pbnZhcmlhbnQoc2VsZikgbm9leGNl cHQ6CisrICAgIGNwZGVmIF93ZWFrX2ludmFyaWFudChzZWxmKToKKyAgICAgICAgICIiIgorICAg ICAgICAgUmV0dXJuIGFuIGlzb21vcnBoaXNtIGludmFyaWFudCBvZiB0aGUgbWF0cm9pZC4KKyAK K0BAIC0xOTYxLDcgKzE5NjEsNyBAQCBjZGVmIGNsYXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1h dHJvaWQpOgorICAgICAgICAgICAgICAgICBzZWxmLl93ZWFrX3BhcnRpdGlvbl92YXIgPSBTZXRT eXN0ZW0oc2VsZi5fRSwgW2ZpZVtmXSBmb3IgZiBpbiBzb3J0ZWQoZmllKV0pCisgICAgICAgICBy ZXR1cm4gc2VsZi5fd2Vha19pbnZhcmlhbnRfdmFyCisgCistICAgIGNwZGVmIF93ZWFrX3BhcnRp dGlvbihzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3dlYWtfcGFydGl0aW9uKHNlbGYpOgor ICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYW4gb3JkZXJlZCBwYXJ0aXRpb24gYmFzZWQg b24gdGhlIGluY2lkZW5jZXMgb2YgZWxlbWVudHMgd2l0aAorICAgICAgICAgbG93LWRpbWVuc2lv bmFsIGZsYXRzLgorQEAgLTE5NzUsNyArMTk3NSw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5n ZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICBzZWxmLl93ZWFrX2ludmFyaWFudCgpCisgICAg ICAgICByZXR1cm4gc2VsZi5fd2Vha19wYXJ0aXRpb25fdmFyCisgCistICAgIGNwZGVmIF9zdHJv bmdfaW52YXJpYW50KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc3Ryb25nX2ludmFyaWFu dChzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGFuIGlzb21vcnBoaXNtIGlu dmFyaWFudCBvZiB0aGUgbWF0cm9pZC4KKyAKK0BAIC0yMDAxLDcgKzIwMDEsNyBAQCBjZGVmIGNs YXNzIEJhc2lzRXhjaGFuZ2VNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgICAgIHNlbGYuX3N0 cm9uZ19pbnZhcmlhbnRfdmFyID0gQ1BbMl0KKyAgICAgICAgIHJldHVybiBzZWxmLl9zdHJvbmdf aW52YXJpYW50X3ZhcgorIAorLSAgICBjcGRlZiBfc3Ryb25nX3BhcnRpdGlvbihzZWxmKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgX3N0cm9uZ19wYXJ0aXRpb24oc2VsZik6CisgICAgICAgICAiIiIK KyAgICAgICAgIFJldHVybiBhbiBlcXVpdGFibGUgcGFydGl0aW9uIHdoaWNoIHJlZmluZXMgX3dl YWtfcGFydGl0aW9uKCkuCisgCitAQCAtMjAxNSw3ICsyMDE1LDcgQEAgY2RlZiBjbGFzcyBCYXNp c0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgIHNlbGYuX3N0cm9uZ19pbnZhcmlh bnQoKQorICAgICAgICAgcmV0dXJuIHNlbGYuX3N0cm9uZ19wYXJ0aXRpb25fdmFyCisgCistICAg IGNwZGVmIF9oZXVyaXN0aWNfaW52YXJpYW50KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBf aGV1cmlzdGljX2ludmFyaWFudChzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJu IGEgbnVtYmVyIGNoYXJhY3RlcmlzdGljIGZvciB0aGUgY29uc3RydWN0aW9uIG9mCisgICAgICAg ICBfaGV1cmlzdGljX3BhcnRpdGlvbigpLgorQEAgLTIwMzQsNyArMjAzNCw3IEBAIGNkZWYgY2xh c3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICAgICAgc2VsZi5faGV1 cmlzdGljX2ludmFyaWFudF92YXIgPSBDUFsyXQorICAgICAgICAgcmV0dXJuIHNlbGYuX2hldXJp c3RpY19pbnZhcmlhbnRfdmFyCisgCistICAgIGNwZGVmIF9oZXVyaXN0aWNfcGFydGl0aW9uKHNl bGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfaGV1cmlzdGljX3BhcnRpdGlvbihzZWxmKToKKyAg ICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGFuIG9yZGVyZWQgcGFydGl0aW9uIGludG8gc2lu Z2xldG9ucyB3aGljaCByZWZpbmVzIGFuIGVxdWl0YWJsZQorICAgICAgICAgcGFydGl0aW9uIG9m IHRoZSBtYXRyb2lkLgorQEAgLTIwNTgsNyArMjA1OCw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNo YW5nZU1hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICBzZWxmLl9oZXVyaXN0aWNfaW52YXJpYW50 KCkKKyAgICAgICAgIHJldHVybiBzZWxmLl9oZXVyaXN0aWNfcGFydGl0aW9uX3ZhcgorIAorLSAg ICBjZGVmIF9mbHVzaChzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfZmx1c2goc2VsZik6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIERlbGV0ZSBhbGwgaW52YXJpYW50cy4KKyAgICAgICAgICIi IgorQEAgLTIwNjYsNyArMjA2Niw3IEBAIGNkZWYgY2xhc3MgQmFzaXNFeGNoYW5nZU1hdHJvaWQo TWF0cm9pZCk6CisgICAgICAgICBzZWxmLl9zdHJvbmdfaW52YXJpYW50X3ZhciA9IE5vbmUKKyAg ICAgICAgIHNlbGYuX2hldXJpc3RpY19pbnZhcmlhbnRfdmFyID0gTm9uZQorIAorLSAgICBjcGRl ZiBfZXF1aXRhYmxlX3BhcnRpdGlvbihzZWxmLCBQPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBfZXF1aXRhYmxlX3BhcnRpdGlvbihzZWxmLCBQPU5vbmUpOgorICAgICAgICAgIiIiCisgICAg ICAgICBSZXR1cm4gdGhlIGVxdWl0YWJsZSByZWZpbmVtZW50IG9mIGEgZ2l2ZW4gb3JkZXJlZCBw YXJ0aXRpb24uCisgCitAQCAtMjA5Nyw3ICsyMDk3LDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hh bmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgICAgICBFUSA9IHNlbGYuX2NoYXJhY3Rlcmlz dGljX3NldHN5c3RlbSgpLl9lcXVpdGFibGVfcGFydGl0aW9uKCkKKyAgICAgICAgIHJldHVybiBF UVswXQorIAorLSAgICBjcGRlZiBfaXNfaXNvbW9ycGhpc20oc2VsZiwgb3RoZXIsIG1vcnBoaXNt KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2lzX2lzb21vcnBoaXNtKHNlbGYsIG90aGVyLCBtb3Jw aGlzbSk6CisgICAgICAgICByIiIiCisgICAgICAgICBWZXJzaW9uIG9mIGlzX2lzb21vcnBoaXNt KCkgdGhhdCBkb2VzIG5vIHR5cGUgY2hlY2tpbmcuCisgCitAQCAtMjE2NCw3ICsyMTY0LDcgQEAg Y2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgICAgICBy ZXBlYXQgPSBueGtzcmQoc2VsZi5faW5wdXQsIHNlbGYuX2dyb3VuZHNldF9zaXplLCBzZWxmLl9t YXRyb2lkX3JhbmssIFRydWUpCisgICAgICAgICByZXR1cm4gVHJ1ZQorIAorLSAgICBjcGRlZiBf aXNvbW9ycGhpc20oc2VsZiwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfaXNvbW9ycGhp c20oc2VsZiwgb3RoZXIpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYW4gaXNvbW9y cGhpc20gZm9ybSBgYHNlbGZgYCB0byBgYG90aGVyYGAsIGlmIG9uZSBleGlzdHMuCisgCitAQCAt MjI1Miw3ICsyMjUyLDcgQEAgY2RlZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lk KToKKyAKKyAgICAgICAgIHJldHVybiBzZWxmLl9jaGFyYWN0ZXJpc3RpY19zZXRzeXN0ZW0oKS5f aXNvbW9ycGhpc20ob3RoZXIuX2NoYXJhY3RlcmlzdGljX3NldHN5c3RlbSgpLCBQUywgUE8pCisg CistICAgIGNwZGVmIF9pc19pc29tb3JwaGljKHNlbGYsIG90aGVyLCBjZXJ0aWZpY2F0ZT1GYWxz ZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9pc19pc29tb3JwaGljKHNlbGYsIG90aGVyLCBjZXJ0 aWZpY2F0ZT1GYWxzZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRlc3QgaWYgYGBzZWxmYGAg aXMgaXNvbW9ycGhpYyB0byBgYG90aGVyYGAuCisgCitAQCAtMjMzOCw3ICsyMzM4LDcgQEAgY2Rl ZiBjbGFzcyBCYXNpc0V4Y2hhbmdlTWF0cm9pZChNYXRyb2lkKToKKyAKKyAgICAgICAgIHJldHVy biBzZWxmLl9jaGFyYWN0ZXJpc3RpY19zZXRzeXN0ZW0oKS5faXNvbW9ycGhpc20ob3RoZXIuX2No YXJhY3RlcmlzdGljX3NldHN5c3RlbSgpLCBQUywgUE8pIGlzIG5vdCBOb25lCisgCistICAgIGNw ZGVmIGlzX3ZhbGlkKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBpc192YWxpZChzZWxmKToK KyAgICAgICAgIHIiIiIKKyAgICAgICAgIFRlc3QgaWYgdGhlIGRhdGEgb2JleSB0aGUgbWF0cm9p ZCBheGlvbXMuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cm9pZHMvYmFzaXNfbWF0cm9p ZC5weGQgYi9zcmMvc2FnZS9tYXRyb2lkcy9iYXNpc19tYXRyb2lkLnB4ZAoraW5kZXggYWViNTlm ZGI2NmYuLjM3ODJiNTFjNWZhIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0cm9pZHMvYmFzaXNf bWF0cm9pZC5weGQKKysrKyBiL3NyYy9zYWdlL21hdHJvaWRzL2Jhc2lzX21hdHJvaWQucHhkCitA QCAtMTQsMzMgKzE0LDMzIEBAIGNkZWYgY2xhc3MgQmFzaXNNYXRyb2lkKEJhc2lzRXhjaGFuZ2VN YXRyb2lkKToKKyAgICAgY2RlZiBfYmFzZXNfaW52YXJpYW50M192YXIKKyAgICAgY2RlZiBTZXRT eXN0ZW0gX2Jhc2VzX3BhcnRpdGlvbjNfdmFyCisgCistICAgIGNkZWYgcmVzZXRfY3VycmVudF9i YXNpcyhzZWxmKSBub2V4Y2VwdAorLQorLSAgICBjcGRlZiBfaXNfYmFzaXMoc2VsZiwgWCkgbm9l eGNlcHQKKy0KKy0gICAgY3BkZWYgYmFzZXNfY291bnQoc2VsZikgbm9leGNlcHQKKy0gICAgY3Bk ZWYgYmFzZXMoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgbm9uYmFzZXMoc2VsZikgbm9leGNl cHQKKy0KKy0gICAgY3BkZWYgdHJ1bmNhdGlvbihzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBf ZXh0ZW5zaW9uKHNlbGYsIGUsIEgpIG5vZXhjZXB0CistICAgIGNwZGVmIF93aXRoX2NvbG9vcChz ZWxmLCBlKSBub2V4Y2VwdAorLSAgICBjcGRlZiByZWxhYmVsKHNlbGYsIGwpIG5vZXhjZXB0Cist CistICAgIGNwZGVmIF9iYXNlc19pbnZhcmlhbnQoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYg X2Jhc2VzX3BhcnRpdGlvbihzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfYmFzZXNfaW52YXJp YW50MihzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfYmFzZXNfcGFydGl0aW9uMihzZWxmKSBu b2V4Y2VwdAorLSAgICBjcGRlZiBfYmFzZXNfaW52YXJpYW50MyhzZWxmKSBub2V4Y2VwdAorLSAg ICBjcGRlZiBfYmFzZXNfcGFydGl0aW9uMyhzZWxmKSBub2V4Y2VwdAorLSAgICBjZGVmIF9yZXNl dF9pbnZhcmlhbnRzKHNlbGYpIG5vZXhjZXB0CisrICAgIGNkZWYgcmVzZXRfY3VycmVudF9iYXNp cyhzZWxmKQorKworKyAgICBjcGRlZiBfaXNfYmFzaXMoc2VsZiwgWCkKKysKKysgICAgY3BkZWYg YmFzZXNfY291bnQoc2VsZikKKysgICAgY3BkZWYgYmFzZXMoc2VsZikKKysgICAgY3BkZWYgbm9u YmFzZXMoc2VsZikKKysKKysgICAgY3BkZWYgdHJ1bmNhdGlvbihzZWxmKQorKyAgICBjcGRlZiBf ZXh0ZW5zaW9uKHNlbGYsIGUsIEgpCisrICAgIGNwZGVmIF93aXRoX2NvbG9vcChzZWxmLCBlKQor KyAgICBjcGRlZiByZWxhYmVsKHNlbGYsIGwpCisrCisrICAgIGNwZGVmIF9iYXNlc19pbnZhcmlh bnQoc2VsZikKKysgICAgY3BkZWYgX2Jhc2VzX3BhcnRpdGlvbihzZWxmKQorKyAgICBjcGRlZiBf YmFzZXNfaW52YXJpYW50MihzZWxmKQorKyAgICBjcGRlZiBfYmFzZXNfcGFydGl0aW9uMihzZWxm KQorKyAgICBjcGRlZiBfYmFzZXNfaW52YXJpYW50MyhzZWxmKQorKyAgICBjcGRlZiBfYmFzZXNf cGFydGl0aW9uMyhzZWxmKQorKyAgICBjZGVmIF9yZXNldF9pbnZhcmlhbnRzKHNlbGYpCisgICAg IGNwZGVmICBiaW50IGlzX2Rpc3Rpbmd1aXNoZWQoc2VsZiwgZSkgbm9leGNlcHQKKy0gICAgY3Bk ZWYgX2lzX3JlbGF4YXRpb24oc2VsZiwgTSwgbW9ycGhpc20pIG5vZXhjZXB0CistICAgIGNwZGVm IF9pc19pc29tb3JwaGlzbShzZWxmLCBNLCBtb3JwaGlzbSkgbm9leGNlcHQKKy0gICAgY3BkZWYg X2lzb21vcnBoaXNtKHNlbGYsIG90aGVyKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfaXNfaXNvbW9y cGhpYyhzZWxmLCBvdGhlciwgY2VydGlmaWNhdGU9Kikgbm9leGNlcHQKKysgICAgY3BkZWYgX2lz X3JlbGF4YXRpb24oc2VsZiwgTSwgbW9ycGhpc20pCisrICAgIGNwZGVmIF9pc19pc29tb3JwaGlz bShzZWxmLCBNLCBtb3JwaGlzbSkKKysgICAgY3BkZWYgX2lzb21vcnBoaXNtKHNlbGYsIG90aGVy KQorKyAgICBjcGRlZiBfaXNfaXNvbW9ycGhpYyhzZWxmLCBvdGhlciwgY2VydGlmaWNhdGU9KikK KyAKKyAKKy1jZGVmICBiaW5vbV9pbml0KGxvbmcgbiwgbG9uZyBrKSBub2V4Y2VwdAorK2NkZWYg IGJpbm9tX2luaXQobG9uZyBuLCBsb25nIGspCisgY2RlZiAgbG9uZyBzZXRfdG9faW5kZXgoYml0 c2V0X3QgUykgbm9leGNlcHQKKy1jZGVmICBpbmRleF90b19zZXQoYml0c2V0X3QsIGxvbmcsIGxv bmcsIGxvbmcpIG5vZXhjZXB0CisrY2RlZiAgaW5kZXhfdG9fc2V0KGJpdHNldF90LCBsb25nLCBs b25nLCBsb25nKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJvaWRzL2Jhc2lzX21hdHJvaWQu cHl4IGIvc3JjL3NhZ2UvbWF0cm9pZHMvYmFzaXNfbWF0cm9pZC5weXgKK2luZGV4IDEzN2VkYzIx ZDk0Li4xMTQ1OGNmNDg4ZCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJvaWRzL2Jhc2lzX21h dHJvaWQucHl4CisrKysgYi9zcmMvc2FnZS9tYXRyb2lkcy9iYXNpc19tYXRyb2lkLnB5eAorQEAg LTI4OCw3ICsyODgsNyBAQCBjZGVmIGNsYXNzIEJhc2lzTWF0cm9pZChCYXNpc0V4Y2hhbmdlTWF0 cm9pZCk6CisgICAgICAgICBiaXRzZXRfYWRkKHNlbGYuX2IsIHkpCisgICAgICAgICByZXR1cm4g Yml0c2V0X2luKHNlbGYuX2JiLCBzZXRfdG9faW5kZXgoc2VsZi5fYikpCisgCistICAgIGNkZWYg cmVzZXRfY3VycmVudF9iYXNpcyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiByZXNldF9jdXJy ZW50X2Jhc2lzKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBTZXQgdGhlIGN1cnJlbnQg YmFzaXMgdG8gdGhlIChsZXhpY29ncmFwaGljYWxseSkgZmlyc3QgYmFzaXMgb2YgdGhlCisgICAg ICAgICBtYXRyb2lkLgorQEAgLTI5Nyw3ICsyOTcsNyBAQCBjZGVmIGNsYXNzIEJhc2lzTWF0cm9p ZChCYXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgCisgICAgICMgYSBmdW5jdGlvbiB0aGF0IGlzIHZl cnkgZWZmaWNpZW50IGZvciB0aGlzIGNsYXNzCisgCistICAgIGNwZGVmIF9pc19iYXNpcyhzZWxm LCBYKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2lzX2Jhc2lzKHNlbGYsIFgpOgorICAgICAgICAg IiIiCisgICAgICAgICBUZXN0IGlmIGlucHV0IGlzIGEgYmFzaXMuCisgCitAQCAtMzI5LDcgKzMy OSw3IEBAIGNkZWYgY2xhc3MgQmFzaXNNYXRyb2lkKEJhc2lzRXhjaGFuZ2VNYXRyb2lkKToKKyAK KyAgICAgIyBkdWFsIGFuZCBtaW5vcnMKKyAKKy0gICAgY3BkZWYgZHVhbChzZWxmKSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgZHVhbChzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVy biB0aGUgZHVhbCBvZiB0aGUgbWF0cm9pZC4KKyAKK0BAIC0zNjksNyArMzY5LDcgQEAgY2RlZiBj bGFzcyBCYXNpc01hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJvaWQpOgorICAgICAgICAgRC5fYmNv dW50ID0gc2VsZi5fYmNvdW50CisgICAgICAgICByZXR1cm4gRAorIAorLSAgICBjcGRlZiBfbWlu b3Ioc2VsZiwgY29udHJhY3Rpb25zLCBkZWxldGlvbnMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBf bWlub3Ioc2VsZiwgY29udHJhY3Rpb25zLCBkZWxldGlvbnMpOgorICAgICAgICAgIiIiCisgICAg ICAgICBSZXR1cm4gYSBtaW5vci4KKyAKK0BAIC00MDUsNyArNDA1LDcgQEAgY2RlZiBjbGFzcyBC YXNpc01hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJvaWQpOgorICAgICAgICAgTkIgPSBbZnJvemVu c2V0KEIpIGZvciBCIGluIGNvbWJpbmF0aW9ucyhFLCBtcikgaWYgbm90IHNlbGYuX2lzX2Jhc2lz KGNvbnRyYWN0aW9ucyB8IGZyb3plbnNldChCKSldCisgICAgICAgICByZXR1cm4gQmFzaXNNYXRy b2lkKGdyb3VuZHNldD1FLCBub25iYXNlcz1OQiwgcmFuaz1tcikKKyAKKy0gICAgY3BkZWYgdHJ1 bmNhdGlvbihzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgdHJ1bmNhdGlvbihzZWxmKToKKyAg ICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBhIHJhbmstMSB0cnVuY2F0aW9uIG9mIHRoZSBt YXRyb2lkLgorIAorQEAgLTQzNyw3ICs0MzcsNyBAQCBjZGVmIGNsYXNzIEJhc2lzTWF0cm9pZChC YXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAg IHJldHVybiBCYXNpc01hdHJvaWQoZ3JvdW5kc2V0PXNlbGYuX0UsIG5vbmJhc2VzPXNlbGYuZGVw ZW5kZW50X3Jfc2V0cyhzZWxmLmZ1bGxfcmFuaygpIC0gMSksIHJhbms9c2VsZi5mdWxsX3Jhbmso KSAtIDEpCisgCistICAgIGNwZGVmIF9leHRlbnNpb24oc2VsZiwgZSwgSCkgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIF9leHRlbnNpb24oc2VsZiwgZSwgSCk6CisgICAgICAgICByIiIiCisgICAgICAg ICBFeHRlbmQgdGhlIG1hdHJvaWQgYnkgYSBuZXcgZWxlbWVudC4KKyAKK0BAIC00ODksNyArNDg5 LDcgQEAgY2RlZiBjbGFzcyBCYXNpc01hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJvaWQpOgorICAg ICAgICAgQkUgKz0gQkIKKyAgICAgICAgIHJldHVybiBCYXNpc01hdHJvaWQoZ3JvdW5kc2V0PXNl bGYuX0UgKyAoZSwpLCBiYXNlcz1CRSkKKyAKKy0gICAgY3BkZWYgX3dpdGhfY29sb29wKHNlbGYs IGUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfd2l0aF9jb2xvb3Aoc2VsZiwgZSk6CisgICAgICAg ICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIG1hdHJvaWQgdGhhdCBhcmlzZXMgYnkgYWRkaW5n IGFuIGVsZW1lbnQgYGVgIHRvIHRoZQorICAgICAgICAgZ3JvdW5kc2V0LCB0aGF0IGlzIGEgY29s b29wIG9mIHRoZSByZXN1bHRpbmcgbWF0cm9pZC4KK0BAIC01MTUsNyArNTE1LDcgQEAgY2RlZiBj bGFzcyBCYXNpc01hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJvaWQpOgorICAgICAgICAgY2RlZiBm cm96ZW5zZXQgc2UgPSBmcm96ZW5zZXQoW2VdKQorICAgICAgICAgcmV0dXJuIEJhc2lzTWF0cm9p ZChncm91bmRzZXQ9c2VsZi5fRSArIChlLCksIGJhc2VzPVtCIHwgc2UgZm9yIEIgaW4gc2VsZi5i YXNlcygpXSkKKyAKKy0gICAgY3BkZWYgcmVsYWJlbChzZWxmLCBsKSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgcmVsYWJlbChzZWxmLCBsKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGFu IGlzb21vcnBoaWMgbWF0cm9pZCB3aXRoIHJlbGFiZWxlZCBncm91bmRzZXQuCisgCitAQCAtNTU1 LDcgKzU1NSw3IEBAIGNkZWYgY2xhc3MgQmFzaXNNYXRyb2lkKEJhc2lzRXhjaGFuZ2VNYXRyb2lk KToKKyAKKyAgICAgIyBlbnVtZXJhdGlvbgorIAorLSAgICBjcGRlZiBiYXNlc19jb3VudChzZWxm KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgYmFzZXNfY291bnQoc2VsZik6CisgICAgICAgICByIiIi CisgICAgICAgICBSZXR1cm4gdGhlIG51bWJlciBvZiBiYXNlcyBvZiB0aGUgbWF0cm9pZC4KKyAK K0BAIC01NzUsNyArNTc1LDcgQEAgY2RlZiBjbGFzcyBCYXNpc01hdHJvaWQoQmFzaXNFeGNoYW5n ZU1hdHJvaWQpOgorICAgICAgICAgICAgIHNlbGYuX2Jjb3VudCA9IGJpdHNldF9sZW4oc2VsZi5f YmIpCisgICAgICAgICByZXR1cm4gc2VsZi5fYmNvdW50CisgCistICAgIGNwZGVmIGJhc2VzKHNl bGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBiYXNlcyhzZWxmKToKKyAgICAgICAgIHIiIiIKKyAg ICAgICAgIFJldHVybiB0aGUgbGlzdCBvZiBiYXNlcyBvZiB0aGUgbWF0cm9pZC4KKyAKK0BAIC02 MDYsNyArNjA2LDcgQEAgY2RlZiBjbGFzcyBCYXNpc01hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJv aWQpOgorICAgICAgICAgICAgIGIgPSBiaXRzZXRfbmV4dChzZWxmLl9iYiwgYiArIDEpCisgICAg ICAgICByZXR1cm4gQkIKKyAKKy0gICAgY3BkZWYgbm9uYmFzZXMoc2VsZikgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIG5vbmJhc2VzKHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJu IHRoZSBsaXN0IG9mIG5vbmJhc2VzIG9mIHRoZSBtYXRyb2lkLgorIAorQEAgLTY1MSw3ICs2NTEs NyBAQCBjZGVmIGNsYXNzIEJhc2lzTWF0cm9pZChCYXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgCisg ICAgICMgaXNvbW9ycGhpc20gdGVzdAorIAorLSAgICBjcGRlZiBfYmFzZXNfaW52YXJpYW50KHNl bGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYmFzZXNfaW52YXJpYW50KHNlbGYpOgorICAgICAg ICAgIiIiCisgICAgICAgICBSZXR1cm4gYW4gaXNvbW9ycGhpc20gaW52YXJpYW50IGJhc2VkIG9u IHRoZSBpbmNpZGVuY2VzIG9mIGdyb3VuZHNldAorICAgICAgICAgZWxlbWVudHMgd2l0aCBiYXNl cy4KK0BAIC02OTUsNyArNjk1LDcgQEAgY2RlZiBjbGFzcyBCYXNpc01hdHJvaWQoQmFzaXNFeGNo YW5nZU1hdHJvaWQpOgorICAgICAgICAgc2VsZi5fYmFzZXNfcGFydGl0aW9uX3ZhciA9IFNldFN5 c3RlbShzZWxmLl9FLCBbW3NlbGYuX0VbZV0gZm9yIGUgaW4gYmlbY11dIGZvciBjIGluIHNvcnRl ZChiaSldKQorICAgICAgICAgcmV0dXJuIHNlbGYuX2Jhc2VzX2ludmFyaWFudF92YXIKKyAKKy0g ICAgY3BkZWYgX2Jhc2VzX3BhcnRpdGlvbihzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2Jh c2VzX3BhcnRpdGlvbihzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGFuIG9y ZGVyZWQgcGFydGl0aW9uIGJhc2VkIG9uIHRoZSBpbmNpZGVuY2VzIG9mIGdyb3VuZHNldAorICAg ICAgICAgZWxlbWVudHMgd2l0aCBiYXNlcy4KK0BAIC03MTAsNyArNzEwLDcgQEAgY2RlZiBjbGFz cyBCYXNpc01hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJvaWQpOgorICAgICAgICAgc2VsZi5fYmFz ZXNfaW52YXJpYW50KCkKKyAgICAgICAgIHJldHVybiBzZWxmLl9iYXNlc19wYXJ0aXRpb25fdmFy CisgCistICAgIGNwZGVmIF9iYXNlc19pbnZhcmlhbnQyKHNlbGYpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBfYmFzZXNfaW52YXJpYW50MihzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0 dXJuIGFuIGlzb21vcnBoaXNtIGludmFyaWFudCBvZiB0aGUgbWF0cm9pZC4KKyAKK0BAIC03Mzcs NyArNzM3LDcgQEAgY2RlZiBjbGFzcyBCYXNpc01hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJvaWQp OgorICAgICAgICAgICAgIHNlbGYuX2Jhc2VzX2ludmFyaWFudDJfdmFyID0gQ1BbMl0KKyAgICAg ICAgIHJldHVybiBzZWxmLl9iYXNlc19pbnZhcmlhbnQyX3ZhcgorIAorLSAgICBjcGRlZiBfYmFz ZXNfcGFydGl0aW9uMihzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2Jhc2VzX3BhcnRpdGlv bjIoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBhbiBlcXVpdGFibGUgcGFy dGl0aW9uIHdoaWNoIHJlZmluZXMKKyAgICAgICAgIDptZXRoOmA8QmFzaXNNYXRyb2lkLl9iYXNl c19wYXJ0aXRpb24yPmAuCitAQCAtNzUyLDcgKzc1Miw3IEBAIGNkZWYgY2xhc3MgQmFzaXNNYXRy b2lkKEJhc2lzRXhjaGFuZ2VNYXRyb2lkKToKKyAgICAgICAgIHNlbGYuX2Jhc2VzX2ludmFyaWFu dDIoKQorICAgICAgICAgcmV0dXJuIHNlbGYuX2Jhc2VzX3BhcnRpdGlvbjJfdmFyCisgCistICAg IGNwZGVmIF9iYXNlc19pbnZhcmlhbnQzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYmFz ZXNfaW52YXJpYW50MyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGEgbnVt YmVyIGNoYXJhY3RlcmlzdGljIGZvciB0aGUgY29uc3RydWN0aW9uIG9mCisgICAgICAgICA6bWV0 aDpgPEJhc2lzTWF0cm9pZC5fYmFzZXNfcGFydGl0aW9uMz5gLgorQEAgLTc3MSw3ICs3NzEsNyBA QCBjZGVmIGNsYXNzIEJhc2lzTWF0cm9pZChCYXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgICAgICAg ICAgICAgc2VsZi5fYmFzZXNfaW52YXJpYW50M192YXIgPSBDUFsyXQorICAgICAgICAgcmV0dXJu IHNlbGYuX2Jhc2VzX2ludmFyaWFudDNfdmFyCisgCistICAgIGNwZGVmIF9iYXNlc19wYXJ0aXRp b24zKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYmFzZXNfcGFydGl0aW9uMyhzZWxmKToK KyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGFuIG9yZGVyZWQgcGFydGl0aW9uIGludG8g c2luZ2xldG9ucyB3aGljaCByZWZpbmVzIGFuIGVxdWl0YWJsZQorICAgICAgICAgcGFydGl0aW9u IG9mIHRoZSBtYXRyb2lkLgorQEAgLTc5NSw3ICs3OTUsNyBAQCBjZGVmIGNsYXNzIEJhc2lzTWF0 cm9pZChCYXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgICAgICAgICBzZWxmLl9iYXNlc19pbnZhcmlh bnQzKCkKKyAgICAgICAgIHJldHVybiBzZWxmLl9iYXNlc19wYXJ0aXRpb24zX3ZhcgorIAorLSAg ICBjZGVmIF9yZXNldF9pbnZhcmlhbnRzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9yZXNl dF9pbnZhcmlhbnRzKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZW1vdmUgYWxsIHBy ZWNvbXB1dGVkIGludmFyaWFudHMuCisgICAgICAgICAiIiIKK0BAIC04NTUsNyArODU1LDcgQEAg Y2RlZiBjbGFzcyBCYXNpc01hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJvaWQpOgorICAgICAgICAg ICAgICAgICBxID0gcTIKKyAgICAgICAgIHJldHVybiBlIGluIHEKKyAKKy0gICAgY3BkZWYgX2lz X3JlbGF4YXRpb24oc2VsZiwgb3RoZXIsIG1vcnBoaXNtKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X2lzX3JlbGF4YXRpb24oc2VsZiwgb3RoZXIsIG1vcnBoaXNtKToKKyAgICAgICAgICIiIgorICAg ICAgICAgUmV0dXJuIGlmIHRoZSBhcHBsaWNhdGlvbiBvZiBhIGdyb3VuZHNldCBtb3JwaGlzbSB0 byB0aGlzIG1hdHJvaWQKKyAgICAgICAgIHlpZWxkcyBhIHJlbGF4YXRpb24gb2YgdGhlIGdpdmVu IG1hdHJvaWQuCitAQCAtOTE1LDcgKzkxNSw3IEBAIGNkZWYgY2xhc3MgQmFzaXNNYXRyb2lkKEJh c2lzRXhjaGFuZ2VNYXRyb2lkKToKKyAgICAgICAgIGJpdHNldF9mcmVlKGJiX2NvbXApCisgICAg ICAgICByZXR1cm4gVHJ1ZQorIAorLSAgICBjcGRlZiBfaXNfaXNvbW9ycGhpc20oc2VsZiwgb3Ro ZXIsIG1vcnBoaXNtKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2lzX2lzb21vcnBoaXNtKHNlbGYs IG90aGVyLCBtb3JwaGlzbSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFZlcnNpb24gb2YgOm1l dGg6YGlzX2lzb21vcnBoaXNtYCB0aGF0IGRvZXMgbm8gdHlwZSBjaGVja2luZy4KKyAKK0BAIC05 NTMsNyArOTUzLDcgQEAgY2RlZiBjbGFzcyBCYXNpc01hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJv aWQpOgorICAgICAgICAgICAgIG90ID0gb3RoZXIKKyAgICAgICAgIHJldHVybiBzZWxmLmJhc2Vz X2NvdW50KCkgPT0gKDxCYXNpc01hdHJvaWQ+b3QpLmJhc2VzX2NvdW50KCkgYW5kIHNlbGYuX2lz X3JlbGF4YXRpb24ob3QsIG1vcnBoaXNtKQorIAorLSAgICBjcGRlZiBfaXNvbW9ycGhpc20oc2Vs Ziwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfaXNvbW9ycGhpc20oc2VsZiwgb3RoZXIp OgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gaXNvbW9ycGhpc20gZnJvbSBgYHNlbGZg YCB0byBgYG90aGVyYGAsIGlmIG9uZSBleGlzdHMuCisgCitAQCAtMTAzMiw3ICsxMDMyLDcgQEAg Y2RlZiBjbGFzcyBCYXNpc01hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJvaWQpOgorIAorICAgICAg ICAgcmV0dXJuIHNlbGYubm9uYmFzZXMoKS5faXNvbW9ycGhpc20ob3RoZXIubm9uYmFzZXMoKSwg UFMsIFBPKQorIAorLSAgICBjcGRlZiBfaXNfaXNvbW9ycGhpYyhzZWxmLCBvdGhlciwgY2VydGlm aWNhdGU9RmFsc2UpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfaXNfaXNvbW9ycGhpYyhzZWxmLCBv dGhlciwgY2VydGlmaWNhdGU9RmFsc2UpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4g aWYgdGhpcyBtYXRyb2lkIGlzIGlzb21vcnBoaWMgdG8gdGhlIGdpdmVuIG1hdHJvaWQuCisgCitA QCAtMTIzNSw3ICsxMjM1LDcgQEAgY2RlZiBjbGFzcyBCYXNpc01hdHJvaWQoQmFzaXNFeGNoYW5n ZU1hdHJvaWQpOgorIGNkZWYgbG9uZyBiaW5vbVsyOTU2XVszM10gICAjIENhY2hlZCBiaW5vbWlh bCB0YWJsZQorIAorIAorLWNkZWYgIGJpbm9tX2luaXQobG9uZyBOLCBsb25nIEspIG5vZXhjZXB0 OgorK2NkZWYgIGJpbm9tX2luaXQobG9uZyBOLCBsb25nIEspOgorICAgICAiIiIKKyAgICAgRmls bCB1cCB0aGUgY2FjaGVkIGJpbm9taWFsIHRhYmxlLgorICAgICAiIiIKK0BAIC0xMjc3LDcgKzEy NzcsNyBAQCBjZGVmIGxvbmcgc2V0X3RvX2luZGV4KGJpdHNldF90IFMpIG5vZXhjZXB0OgorICAg ICByZXR1cm4gaW5kZXgKKyAKKyAKKy1jZGVmICBpbmRleF90b19zZXQoYml0c2V0X3QgUywgbG9u ZyBpbmRleCwgbG9uZyBrLCBsb25nIG4pIG5vZXhjZXB0OgorK2NkZWYgIGluZGV4X3RvX3NldChi aXRzZXRfdCBTLCBsb25nIGluZGV4LCBsb25nIGssIGxvbmcgbik6CisgICAgIHIiIiIKKyAgICAg Q29tcHV0ZSB0aGUgay1zdWJzZXQgb2YgYFx7MCwgLi4uLCBuLTFcfWAgb2YgcmFuayBpbmRleAor ICAgICAiIiIKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyb2lkcy9jaXJjdWl0X2Nsb3N1cmVz X21hdHJvaWQucHhkIGIvc3JjL3NhZ2UvbWF0cm9pZHMvY2lyY3VpdF9jbG9zdXJlc19tYXRyb2lk LnB4ZAoraW5kZXggNWY0ZWRmMTA5YjcuLjdjN2I2MWVjMzVmIDEwMDY0NAorLS0tIGEvc3JjL3Nh Z2UvbWF0cm9pZHMvY2lyY3VpdF9jbG9zdXJlc19tYXRyb2lkLnB4ZAorKysrIGIvc3JjL3NhZ2Uv bWF0cm9pZHMvY2lyY3VpdF9jbG9zdXJlc19tYXRyb2lkLnB4ZAorQEAgLTUsMTEgKzUsMTEgQEAg Y2RlZiBjbGFzcyBDaXJjdWl0Q2xvc3VyZXNNYXRyb2lkKE1hdHJvaWQpOgorICAgICBjZGVmIGZy b3plbnNldCBfZ3JvdW5kc2V0ICAjIF9FCisgICAgIGNkZWYgZGljdCBfY2lyY3VpdF9jbG9zdXJl cyAgIyBfQ0MKKyAgICAgY2RlZiBpbnQgX21hdHJvaWRfcmFuayAgIyBfUgorLSAgICBjcGRlZiBn cm91bmRzZXQoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgX3Jhbmsoc2VsZiwgWCkgbm9leGNl cHQKKy0gICAgY3BkZWYgZnVsbF9yYW5rKHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIF9pc19p bmRlcGVuZGVudChzZWxmLCBGKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfbWF4X2luZGVwZW5kZW50 KHNlbGYsIEYpIG5vZXhjZXB0CistICAgIGNwZGVmIF9jaXJjdWl0KHNlbGYsIEYpIG5vZXhjZXB0 CistICAgIGNwZGVmIGNpcmN1aXRfY2xvc3VyZXMoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYg X2lzX2lzb21vcnBoaWMoc2VsZiwgb3RoZXIsIGNlcnRpZmljYXRlPSopIG5vZXhjZXB0CisrICAg IGNwZGVmIGdyb3VuZHNldChzZWxmKQorKyAgICBjcGRlZiBfcmFuayhzZWxmLCBYKQorKyAgICBj cGRlZiBmdWxsX3Jhbmsoc2VsZikKKysgICAgY3BkZWYgX2lzX2luZGVwZW5kZW50KHNlbGYsIEYp CisrICAgIGNwZGVmIF9tYXhfaW5kZXBlbmRlbnQoc2VsZiwgRikKKysgICAgY3BkZWYgX2NpcmN1 aXQoc2VsZiwgRikKKysgICAgY3BkZWYgY2lyY3VpdF9jbG9zdXJlcyhzZWxmKQorKyAgICBjcGRl ZiBfaXNfaXNvbW9ycGhpYyhzZWxmLCBvdGhlciwgY2VydGlmaWNhdGU9KikKK2RpZmYgLS1naXQg YS9zcmMvc2FnZS9tYXRyb2lkcy9jaXJjdWl0X2Nsb3N1cmVzX21hdHJvaWQucHl4IGIvc3JjL3Nh Z2UvbWF0cm9pZHMvY2lyY3VpdF9jbG9zdXJlc19tYXRyb2lkLnB5eAoraW5kZXggMzU3MGQ1OWM0 MjEuLjQyMjkzY2MyZmMzIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0cm9pZHMvY2lyY3VpdF9j bG9zdXJlc19tYXRyb2lkLnB5eAorKysrIGIvc3JjL3NhZ2UvbWF0cm9pZHMvY2lyY3VpdF9jbG9z dXJlc19tYXRyb2lkLnB5eAorQEAgLTE2NSw3ICsxNjUsNyBAQCBjZGVmIGNsYXNzIENpcmN1aXRD bG9zdXJlc01hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICAgICAgICAgIHNlbGYuX2NpcmN1aXRf Y2xvc3VyZXNba10gPSBmcm96ZW5zZXQoW2Zyb3plbnNldChYKSBmb3IgWCBpbiBjaXJjdWl0X2Ns b3N1cmVzW2tdXSkKKyAgICAgICAgIHNlbGYuX21hdHJvaWRfcmFuayA9IHNlbGYucmFuayhzZWxm Ll9ncm91bmRzZXQpCisgCistICAgIGNwZGVmIGdyb3VuZHNldChzZWxmKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgZ3JvdW5kc2V0KHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4g dGhlIGdyb3VuZHNldCBvZiB0aGUgbWF0cm9pZC4KKyAKK0BAIC0xODMsNyArMTgzLDcgQEAgY2Rl ZiBjbGFzcyBDaXJjdWl0Q2xvc3VyZXNNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgIiIiCisg ICAgICAgICByZXR1cm4gZnJvemVuc2V0KHNlbGYuX2dyb3VuZHNldCkKKyAKKy0gICAgY3BkZWYg X3Jhbmsoc2VsZiwgWCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yYW5rKHNlbGYsIFgpOgorICAg ICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHJhbmsgb2YgYSBzZXQgYGBYYGAuCisgCitA QCAtMjA3LDcgKzIwNyw3IEBAIGNkZWYgY2xhc3MgQ2lyY3VpdENsb3N1cmVzTWF0cm9pZChNYXRy b2lkKToKKyAgICAgICAgIHJldHVybiBsZW4oc2VsZi5fbWF4X2luZGVwZW5kZW50KFgpKQorIAor ICAgICAjIE9QVElPTkFMLCBPUFRJTUlaRUQgRk9SIFRISVMgQ0xBU1MKKy0gICAgY3BkZWYgZnVs bF9yYW5rKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBmdWxsX3Jhbmsoc2VsZik6CisgICAg ICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHJhbmsgb2YgdGhlIG1hdHJvaWQuCisgCitA QCAtMjI4LDcgKzIyOCw3IEBAIGNkZWYgY2xhc3MgQ2lyY3VpdENsb3N1cmVzTWF0cm9pZChNYXRy b2lkKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX21hdHJvaWRfcmFuawor IAorLSAgICBjcGRlZiBfaXNfaW5kZXBlbmRlbnQoc2VsZiwgRikgbm9leGNlcHQ6CisrICAgIGNw ZGVmIF9pc19pbmRlcGVuZGVudChzZWxmLCBGKToKKyAgICAgICAgICIiIgorICAgICAgICAgVGVz dCBpZiBpbnB1dCBpcyBpbmRlcGVuZGVudC4KKyAKK0BAIC0yNTgsNyArMjU4LDcgQEAgY2RlZiBj bGFzcyBDaXJjdWl0Q2xvc3VyZXNNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgICAgICAgICAg ICAgcmV0dXJuIEZhbHNlCisgICAgICAgICByZXR1cm4gVHJ1ZQorIAorLSAgICBjcGRlZiBfbWF4 X2luZGVwZW5kZW50KHNlbGYsIEYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbWF4X2luZGVwZW5k ZW50KHNlbGYsIEYpOgorICAgICAgICAgIiIiCisgICAgICAgICBDb21wdXRlIGEgbWF4aW1hbCBp bmRlcGVuZGVudCBzdWJzZXQuCisgCitAQCAtMjk1LDcgKzI5NSw3IEBAIGNkZWYgY2xhc3MgQ2ly Y3VpdENsb3N1cmVzTWF0cm9pZChNYXRyb2lkKToKKyAKKyAgICAgICAgIHJldHVybiBmcm96ZW5z ZXQoSSkKKyAKKy0gICAgY3BkZWYgX2NpcmN1aXQoc2VsZiwgRikgbm9leGNlcHQ6CisrICAgIGNw ZGVmIF9jaXJjdWl0KHNlbGYsIEYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYSBt aW5pbWFsIGRlcGVuZGVudCBzdWJzZXQuCisgCitAQCAtMzI4LDcgKzMyOCw3IEBAIGNkZWYgY2xh c3MgQ2lyY3VpdENsb3N1cmVzTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgICAgICAgICAgICAg IHJldHVybiBmcm96ZW5zZXQoUykKKyAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm5vIGNpcmN1 aXQgaW4gaW5kZXBlbmRlbnQgc2V0IikKKyAKKy0gICAgY3BkZWYgY2lyY3VpdF9jbG9zdXJlcyhz ZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgY2lyY3VpdF9jbG9zdXJlcyhzZWxmKToKKyAgICAg ICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBsaXN0IG9mIGNsb3N1cmVzIG9mIGNpcmN1aXRz IG9mIHRoZSBtYXRyb2lkLgorIAorQEAgLTM2Miw3ICszNjIsNyBAQCBjZGVmIGNsYXNzIENpcmN1 aXRDbG9zdXJlc01hdHJvaWQoTWF0cm9pZCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVy biBzZWxmLl9jaXJjdWl0X2Nsb3N1cmVzCisgCistICAgIGNwZGVmIF9pc19pc29tb3JwaGljKHNl bGYsIG90aGVyLCBjZXJ0aWZpY2F0ZT1GYWxzZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9pc19p c29tb3JwaGljKHNlbGYsIG90aGVyLCBjZXJ0aWZpY2F0ZT1GYWxzZSk6CisgICAgICAgICAiIiIK KyAgICAgICAgIFRlc3QgaWYgYGBzZWxmYGAgaXMgaXNvbW9ycGhpYyB0byBgYG90aGVyYGAuCisg CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cm9pZHMvY2lyY3VpdHNfbWF0cm9pZC5weGQgYi9z cmMvc2FnZS9tYXRyb2lkcy9jaXJjdWl0c19tYXRyb2lkLnB4ZAoraW5kZXggMmRlMDZiZDE2YWIu LjI2Zjg2YjJkYWMwIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0cm9pZHMvY2lyY3VpdHNfbWF0 cm9pZC5weGQKKysrKyBiL3NyYy9zYWdlL21hdHJvaWRzL2NpcmN1aXRzX21hdHJvaWQucHhkCitA QCAtNywyNSArNywyNSBAQCBjZGVmIGNsYXNzIENpcmN1aXRzTWF0cm9pZChNYXRyb2lkKToKKyAg ICAgY2RlZiBTZXRTeXN0ZW0gX0MgICMgY2lyY3VpdHMKKyAgICAgY2RlZiBkaWN0IF9rX0MgICMg ay1jaXJjdWl0cyAoaz1sZW4pCisgICAgIGNkZWYgYmludCBfbnNjX2RlZmluZWQKKy0gICAgY3Bk ZWYgZ3JvdW5kc2V0KHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIF9yYW5rKHNlbGYsIFgpIG5v ZXhjZXB0CistICAgIGNwZGVmIGZ1bGxfcmFuayhzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBf aXNfaW5kZXBlbmRlbnQoc2VsZiwgRikgbm9leGNlcHQKKy0gICAgY3BkZWYgX21heF9pbmRlcGVu ZGVudChzZWxmLCBGKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfY2lyY3VpdChzZWxmLCBGKSBub2V4 Y2VwdAorKyAgICBjcGRlZiBncm91bmRzZXQoc2VsZikKKysgICAgY3BkZWYgX3Jhbmsoc2VsZiwg WCkKKysgICAgY3BkZWYgZnVsbF9yYW5rKHNlbGYpCisrICAgIGNwZGVmIF9pc19pbmRlcGVuZGVu dChzZWxmLCBGKQorKyAgICBjcGRlZiBfbWF4X2luZGVwZW5kZW50KHNlbGYsIEYpCisrICAgIGNw ZGVmIF9jaXJjdWl0KHNlbGYsIEYpCisgCisgICAgICMgZW51bWVyYXRpb24KKy0gICAgY3BkZWYg YmFzZXMoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgY2lyY3VpdHMoc2VsZiwgaz0qKSBub2V4 Y2VwdAorLSAgICBjcGRlZiBub25zcGFubmluZ19jaXJjdWl0cyhzZWxmKSBub2V4Y2VwdAorLSAg ICBjcGRlZiBub19icm9rZW5fY2lyY3VpdHNfc2V0cyhzZWxmLCBvcmRlcmluZz0qKSBub2V4Y2Vw dAorKyAgICBjcGRlZiBiYXNlcyhzZWxmKQorKyAgICBjcGRlZiBjaXJjdWl0cyhzZWxmLCBrPSop CisrICAgIGNwZGVmIG5vbnNwYW5uaW5nX2NpcmN1aXRzKHNlbGYpCisrICAgIGNwZGVmIG5vX2Jy b2tlbl9jaXJjdWl0c19zZXRzKHNlbGYsIG9yZGVyaW5nPSopCisgCisgICAgICMgcHJvcGVydGll cworLSAgICBjcGRlZiBnaXJ0aChzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBpc19wYXZpbmco c2VsZikgbm9leGNlcHQKKysgICAgY3BkZWYgZ2lydGgoc2VsZikKKysgICAgY3BkZWYgaXNfcGF2 aW5nKHNlbGYpCisgCisgICAgICMgaXNvbW9ycGhpc20KKy0gICAgY3BkZWYgX2lzX2lzb21vcnBo aWMoc2VsZiwgb3RoZXIsIGNlcnRpZmljYXRlPSopIG5vZXhjZXB0CisrICAgIGNwZGVmIF9pc19p c29tb3JwaGljKHNlbGYsIG90aGVyLCBjZXJ0aWZpY2F0ZT0qKQorIAorICAgICAjIHZlcmlmaWNh dGlvbgorLSAgICBjcGRlZiBpc192YWxpZChzZWxmKSBub2V4Y2VwdAorKyAgICBjcGRlZiBpc192 YWxpZChzZWxmKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJvaWRzL2NpcmN1aXRzX21hdHJv aWQucHl4IGIvc3JjL3NhZ2UvbWF0cm9pZHMvY2lyY3VpdHNfbWF0cm9pZC5weXgKK2luZGV4IGJi Y2Y2Y2U4MzE5Li40MzM1ODE4MDFjYyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21hdHJvaWRzL2Np cmN1aXRzX21hdHJvaWQucHl4CisrKysgYi9zcmMvc2FnZS9tYXRyb2lkcy9jaXJjdWl0c19tYXRy b2lkLnB5eAorQEAgLTg0LDcgKzg0LDcgQEAgY2RlZiBjbGFzcyBDaXJjdWl0c01hdHJvaWQoTWF0 cm9pZCk6CisgICAgICAgICBzZWxmLl9tYXRyb2lkX3JhbmsgPSBzZWxmLnJhbmsoc2VsZi5fZ3Jv dW5kc2V0KQorICAgICAgICAgc2VsZi5fbnNjX2RlZmluZWQgPSBuc2NfZGVmaW5lZAorIAorLSAg ICBjcGRlZiBncm91bmRzZXQoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGdyb3VuZHNldChz ZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBncm91bmRzZXQgb2YgdGhl IG1hdHJvaWQuCisgCitAQCAtMTAwLDcgKzEwMCw3IEBAIGNkZWYgY2xhc3MgQ2lyY3VpdHNNYXRy b2lkKE1hdHJvaWQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fZ3JvdW5k c2V0CisgCistICAgIGNwZGVmIF9yYW5rKHNlbGYsIFgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBf cmFuayhzZWxmLCBYKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSByYW5rIG9m IGEgc2V0IGBgWGBgLgorIAorQEAgLTEyMyw3ICsxMjMsNyBAQCBjZGVmIGNsYXNzIENpcmN1aXRz TWF0cm9pZChNYXRyb2lkKToKKyAKKyAgICAgIyBvcHRpb25hbAorIAorLSAgICBjcGRlZiBmdWxs X3Jhbmsoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGZ1bGxfcmFuayhzZWxmKToKKyAgICAg ICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgcmFuayBvZiB0aGUgbWF0cm9pZC4KKyAKK0BA IC0xNDAsNyArMTQwLDcgQEAgY2RlZiBjbGFzcyBDaXJjdWl0c01hdHJvaWQoTWF0cm9pZCk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9tYXRyb2lkX3JhbmsKKyAKKy0gICAg Y3BkZWYgX2lzX2luZGVwZW5kZW50KHNlbGYsIEYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfaXNf aW5kZXBlbmRlbnQoc2VsZiwgRik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRlc3QgaWYgaW5w dXQgaXMgaW5kZXBlbmRlbnQuCisgCitAQCAtMTY4LDcgKzE2OCw3IEBAIGNkZWYgY2xhc3MgQ2ly Y3VpdHNNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBG YWxzZQorICAgICAgICAgcmV0dXJuIFRydWUKKyAKKy0gICAgY3BkZWYgX21heF9pbmRlcGVuZGVu dChzZWxmLCBGKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX21heF9pbmRlcGVuZGVudChzZWxmLCBG KToKKyAgICAgICAgICIiIgorICAgICAgICAgQ29tcHV0ZSBhIG1heGltYWwgaW5kZXBlbmRlbnQg c3Vic2V0LgorIAorQEAgLTE5NSw3ICsxOTUsNyBAQCBjZGVmIGNsYXNzIENpcmN1aXRzTWF0cm9p ZChNYXRyb2lkKToKKyAKKyAgICAgICAgIHJldHVybiBmcm96ZW5zZXQoSSkKKyAKKy0gICAgY3Bk ZWYgX2NpcmN1aXQoc2VsZiwgRikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9jaXJjdWl0KHNlbGYs IEYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYSBtaW5pbWFsIGRlcGVuZGVudCBz dWJzZXQuCisgCitAQCAtMjIzLDcgKzIyMyw3IEBAIGNkZWYgY2xhc3MgQ2lyY3VpdHNNYXRyb2lk KE1hdHJvaWQpOgorICAgICAgICAgICAgICAgICByZXR1cm4gQworICAgICAgICAgcmFpc2UgVmFs dWVFcnJvcigibm8gY2lyY3VpdCBpbiBpbmRlcGVuZGVudCBzZXQiKQorIAorLSAgICBjcGRlZiBf aXNfaXNvbW9ycGhpYyhzZWxmLCBvdGhlciwgY2VydGlmaWNhdGU9RmFsc2UpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBfaXNfaXNvbW9ycGhpYyhzZWxmLCBvdGhlciwgY2VydGlmaWNhdGU9RmFsc2Up OgorICAgICAgICAgIiIiCisgICAgICAgICBUZXN0IGlmIGBgc2VsZmBgIGlzIGlzb21vcnBoaWMg dG8gYGBvdGhlcmBgLgorIAorQEAgLTQxNSw3ICs0MTUsNyBAQCBjZGVmIGNsYXNzIENpcmN1aXRz TWF0cm9pZChNYXRyb2lkKToKKyAKKyAgICAgIyBlbnVtZXJhdGlvbgorIAorLSAgICBjcGRlZiBi YXNlcyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgYmFzZXMoc2VsZik6CisgICAgICAgICBy IiIiCisgICAgICAgICBSZXR1cm4gdGhlIGJhc2VzIG9mIHRoZSBtYXRyb2lkLgorIAorQEAgLTQ3 MCw3ICs0NzAsNyBAQCBjZGVmIGNsYXNzIENpcmN1aXRzTWF0cm9pZChNYXRyb2lkKToKKyAgICAg ICAgICAgICBpZiBub3QgYW55KEMgPD0gQiBmb3IgQyBpbiBOU0MpOgorICAgICAgICAgICAgICAg ICB5aWVsZCBCCisgCistICAgIGNwZGVmIGNpcmN1aXRzKHNlbGYsIGs9Tm9uZSkgbm9leGNlcHQ6 CisrICAgIGNwZGVmIGNpcmN1aXRzKHNlbGYsIGs9Tm9uZSk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIFJldHVybiB0aGUgY2lyY3VpdHMgb2YgdGhlIG1hdHJvaWQuCisgCitAQCAtNTM3LDcgKzUz Nyw3IEBAIGNkZWYgY2xhc3MgQ2lyY3VpdHNNYXRyb2lkKE1hdHJvaWQpOgorICAgICAgICAgICAg ICAgICBmb3IgQyBpbiBzZWxmLl9rX0NbaV06CisgICAgICAgICAgICAgICAgICAgICB5aWVsZCBD CisgCistICAgIGNwZGVmIG5vbnNwYW5uaW5nX2NpcmN1aXRzKHNlbGYpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBub25zcGFubmluZ19jaXJjdWl0cyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAg ICAgUmV0dXJuIHRoZSBub25zcGFubmluZyBjaXJjdWl0cyBvZiB0aGUgbWF0cm9pZC4KKyAKK0BA IC01NzIsNyArNTcyLDcgQEAgY2RlZiBjbGFzcyBDaXJjdWl0c01hdHJvaWQoTWF0cm9pZCk6Cisg ICAgICAgICAgICAgICAgIGZvciBDIGluIHNlbGYuX2tfQ1tpXToKKyAgICAgICAgICAgICAgICAg ICAgIHlpZWxkIEMKKyAKKy0gICAgY3BkZWYgbm9fYnJva2VuX2NpcmN1aXRzX3NldHMoc2VsZiwg b3JkZXJpbmc9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIG5vX2Jyb2tlbl9jaXJjdWl0c19z ZXRzKHNlbGYsIG9yZGVyaW5nPU5vbmUpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJu IHRoZSBubyBicm9rZW4gY2lyY3VpdHMgKE5CQykgc2V0cyBvZiBgYHNlbGZgYC4KKyAKK0BAIC02 NDEsNyArNjQxLDcgQEAgY2RlZiBjbGFzcyBDaXJjdWl0c01hdHJvaWQoTWF0cm9pZCk6CisgCisg ICAgICMgcHJvcGVydGllcworIAorLSAgICBjcGRlZiBnaXJ0aChzZWxmKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgZ2lydGgoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhl IGdpcnRoIG9mIHRoZSBtYXRyb2lkLgorIAorQEAgLTY1OSw3ICs2NTksNyBAQCBjZGVmIGNsYXNz IENpcmN1aXRzTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJu IG1pbihzZWxmLl9rX0MsIGRlZmF1bHQ9ZmxvYXQoJ2luZicpKQorIAorLSAgICBjcGRlZiBpc19w YXZpbmcoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGlzX3BhdmluZyhzZWxmKToKKyAgICAg ICAgICIiIgorICAgICAgICAgUmV0dXJuIGlmIGBgc2VsZmBgIGlzIHBhdmluZy4KKyAKK0BAIC02 NzgsNyArNjc4LDcgQEAgY2RlZiBjbGFzcyBDaXJjdWl0c01hdHJvaWQoTWF0cm9pZCk6CisgCisg ICAgICMgdmVyaWZpY2F0aW9uCisgCistICAgIGNwZGVmIGlzX3ZhbGlkKHNlbGYpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBpc192YWxpZChzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFRl c3QgaWYgYGBzZWxmYGAgb2JleXMgdGhlIG1hdHJvaWQgYXhpb21zLgorIAorZGlmZiAtLWdpdCBh L3NyYy9zYWdlL21hdHJvaWRzL2V4dGVuc2lvbi5weGQgYi9zcmMvc2FnZS9tYXRyb2lkcy9leHRl bnNpb24ucHhkCitpbmRleCA2YjZkNzk0OTc5NC4uYjQ4YTlhN2UwMmQgMTAwNjQ0CistLS0gYS9z cmMvc2FnZS9tYXRyb2lkcy9leHRlbnNpb24ucHhkCisrKysgYi9zcmMvc2FnZS9tYXRyb2lkcy9l eHRlbnNpb24ucHhkCitAQCAtNiwxMiArNiwxMiBAQCBjZGVmIGNsYXNzIEN1dE5vZGU6CisgICAg IGNkZWYgYml0c2V0X3QgX3BfZnJlZSwgX3BfaW4sIF9sMCwgX2wxCisgICAgIGNkZWYgbG9uZyBf bWwKKyAKKy0gICAgY2RlZiBDdXROb2RlIGNvcHkoc2VsZikgbm9leGNlcHQKKysgICAgY2RlZiBD dXROb2RlIGNvcHkoc2VsZikKKyAgICAgY2RlZiBiaW50IGluc2VydF9wbGFuZShzZWxmLCBsb25n IHAwKSBub2V4Y2VwdAorICAgICBjZGVmIGJpbnQgcmVtb3ZlX3BsYW5lKHNlbGYsIGxvbmcgcDAp IG5vZXhjZXB0CistICAgIGNkZWYgc2VsZWN0X3BsYW5lKHNlbGYpIG5vZXhjZXB0CisrICAgIGNk ZWYgc2VsZWN0X3BsYW5lKHNlbGYpCisgCistICAgIGNkZWYgbGlzdCBwbGFuZXMoc2VsZikgbm9l eGNlcHQKKysgICAgY2RlZiBsaXN0IHBsYW5lcyhzZWxmKQorIAorIGNkZWYgY2xhc3MgTGluZWFy U3ViY2xhc3Nlc0l0ZXI6CisgICAgIGNkZWYgTGluZWFyU3ViY2xhc3NlcyBfTUMKK2RpZmYgLS1n aXQgYS9zcmMvc2FnZS9tYXRyb2lkcy9leHRlbnNpb24ucHl4IGIvc3JjL3NhZ2UvbWF0cm9pZHMv ZXh0ZW5zaW9uLnB5eAoraW5kZXggYWIyNjYyYWY3ZmQuLmQ3M2I0NTgxNjc0IDEwMDY0NAorLS0t IGEvc3JjL3NhZ2UvbWF0cm9pZHMvZXh0ZW5zaW9uLnB5eAorKysrIGIvc3JjL3NhZ2UvbWF0cm9p ZHMvZXh0ZW5zaW9uLnB5eAorQEAgLTg3LDcgKzg3LDcgQEAgY2RlZiBjbGFzcyBDdXROb2RlOgor ICAgICAgICAgYml0c2V0X2ZyZWUoc2VsZi5fbDApCisgICAgICAgICBiaXRzZXRfZnJlZShzZWxm Ll9sMSkKKyAKKy0gICAgY2RlZiBDdXROb2RlIGNvcHkoc2VsZikgbm9leGNlcHQ6CisrICAgIGNk ZWYgQ3V0Tm9kZSBjb3B5KHNlbGYpOgorICAgICAgICAgcmV0dXJuIEN1dE5vZGUoc2VsZi5fTUMs IHNlbGYpCisgCisgICAgIGNkZWYgYmludCBpbnNlcnRfcGxhbmUoc2VsZiwgbG9uZyBwMCkgbm9l eGNlcHQ6CitAQCAtMTUzLDcgKzE1Myw3IEBAIGNkZWYgY2xhc3MgQ3V0Tm9kZToKKyAgICAgICAg ICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgIHJldHVybiBUcnVlCisgCist ICAgIGNkZWYgc2VsZWN0X3BsYW5lKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIHNlbGVjdF9w bGFuZShzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ2hvb3NlIGEgaHlwZXJwbGFuZSBm cm9tIHRoZSBsaW5lYXIgc3ViY2xhc3MuCisgICAgICAgICAiIiIKK0BAIC0xNjksNyArMTY5LDcg QEAgY2RlZiBjbGFzcyBDdXROb2RlOgorIAorICAgICAgICAgcmV0dXJuIGJpdHNldF9maXJzdChz ZWxmLl9wX2ZyZWUpCisgCistICAgIGNkZWYgbGlzdCBwbGFuZXMoc2VsZikgbm9leGNlcHQ6Cisr ICAgIGNkZWYgbGlzdCBwbGFuZXMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVy biBhbGwgaHlwZXJwbGFuZXMgZnJvbSB0aGUgbGluZWFyIHN1YmNsYXNzLgorICAgICAgICAgIiIi CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cm9pZHMvbGVhbl9tYXRyaXgucHhkIGIvc3JjL3Nh Z2UvbWF0cm9pZHMvbGVhbl9tYXRyaXgucHhkCitpbmRleCBmNzFlMjJmNjNlZS4uMzA5MWFmMTA3 ZDAgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tYXRyb2lkcy9sZWFuX21hdHJpeC5weGQKKysrKyBi L3NyYy9zYWdlL21hdHJvaWRzL2xlYW5fbWF0cml4LnB4ZAorQEAgLTUsMTggKzUsMTggQEAgY2Rl ZiBjbGFzcyBMZWFuTWF0cml4OgorICAgICBjZGVmIGxvbmcgX25yb3dzCisgICAgIGNkZWYgbG9u ZyBfbmNvbHMKKyAKKy0gICAgY2RlZiBMZWFuTWF0cml4IGNvcHkoc2VsZikgbm9leGNlcHQgICAj IERlcHJlY2F0ZWQgU2FnZSBtYXRyaXggb3BlcmF0aW9uCisrICAgIGNkZWYgTGVhbk1hdHJpeCBj b3B5KHNlbGYpICAgIyBEZXByZWNhdGVkIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorICAgICBjZGVm IGludCByZXNpemUoc2VsZiwgbG9uZyBrKSBleGNlcHQgLTEgICAjIE5vdCBhIFNhZ2UgbWF0cml4 IG9wZXJhdGlvbgorLSAgICBjZGVmIExlYW5NYXRyaXggc3RhY2soc2VsZiwgTGVhbk1hdHJpeCBN KSBub2V4Y2VwdAorLSAgICBjZGVmIExlYW5NYXRyaXggYXVnbWVudChzZWxmLCBMZWFuTWF0cml4 IE0pIG5vZXhjZXB0CistICAgIGNkZWYgTGVhbk1hdHJpeCBwcmVwZW5kX2lkZW50aXR5KHNlbGYp IG5vZXhjZXB0ICAgIyBOb3QgYSBTYWdlIG1hdHJpeCBvcGVyYXRpb24KKysgICAgY2RlZiBMZWFu TWF0cml4IHN0YWNrKHNlbGYsIExlYW5NYXRyaXggTSkKKysgICAgY2RlZiBMZWFuTWF0cml4IGF1 Z21lbnQoc2VsZiwgTGVhbk1hdHJpeCBNKQorKyAgICBjZGVmIExlYW5NYXRyaXggcHJlcGVuZF9p ZGVudGl0eShzZWxmKSAgICMgTm90IGEgU2FnZSBtYXRyaXggb3BlcmF0aW9uCisgCisgICAgIGNw ZGVmIGxvbmcgbmNvbHMoc2VsZikgZXhjZXB0IC0xCisgICAgIGNwZGVmIGxvbmcgbnJvd3Moc2Vs ZikgZXhjZXB0IC0xCistICAgIGNwZGVmIGJhc2VfcmluZyhzZWxmKSBub2V4Y2VwdAorLSAgICBj cGRlZiBjaGFyYWN0ZXJpc3RpYyhzZWxmKSBub2V4Y2VwdCAgICMgTm90IGEgU2FnZSBtYXRyaXgg b3BlcmF0aW9uCisrICAgIGNwZGVmIGJhc2VfcmluZyhzZWxmKQorKyAgICBjcGRlZiBjaGFyYWN0 ZXJpc3RpYyhzZWxmKSAgICMgTm90IGEgU2FnZSBtYXRyaXggb3BlcmF0aW9uCisgCistICAgIGNk ZWYgZ2V0X3Vuc2FmZShzZWxmLCBsb25nIHIsIGxvbmcgYykgbm9leGNlcHQKKysgICAgY2RlZiBn ZXRfdW5zYWZlKHNlbGYsIGxvbmcgciwgbG9uZyBjKQorICAgICBjZGVmIGludCBzZXRfdW5zYWZl KHNlbGYsIGxvbmcgciwgbG9uZyBjLCB4KSBleGNlcHQgLTEKKyAgICAgY2RlZiBiaW50IGlzX25v bnplcm8oc2VsZiwgbG9uZyByLCBsb25nIGMpIGV4Y2VwdCAtMiAgIyBOb3QgYSBTYWdlIG1hdHJp eCBvcGVyYXRpb24KKyAKK0BAIC0yNSwxNiArMjUsMTYgQEAgY2RlZiBjbGFzcyBMZWFuTWF0cml4 OgorICAgICBjZGVmIGludCByZXNjYWxlX3Jvd19jKHNlbGYsIGxvbmcgeCwgcywgYmludCBjb2xf c3RhcnQpIGV4Y2VwdCAtMQorICAgICBjZGVmIGludCByZXNjYWxlX2NvbHVtbl9jKHNlbGYsIGxv bmcgeSwgcywgYmludCBzdGFydF9yb3cpIGV4Y2VwdCAtMQorICAgICBjZGVmIGludCBwaXZvdChz ZWxmLCBsb25nIHgsIGxvbmcgeSkgZXhjZXB0IC0xICAjIE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJh dGlvbgorLSAgICBjZGVmIGxpc3QgZ2F1c3Nfam9yZGFuX3JlZHVjZShzZWxmLCBjb2x1bW5zKSBu b2V4Y2VwdCAgICMgTm90IGEgU2FnZSBtYXRyaXggb3BlcmF0aW9uCisrICAgIGNkZWYgbGlzdCBn YXVzc19qb3JkYW5fcmVkdWNlKHNlbGYsIGNvbHVtbnMpICAgIyBOb3QgYSBTYWdlIG1hdHJpeCBv cGVyYXRpb24KKyAKKy0gICAgY2RlZiBsaXN0IG5vbnplcm9fcG9zaXRpb25zX2luX3JvdyhzZWxm LCBsb25nIHIpIG5vZXhjZXB0CisrICAgIGNkZWYgbGlzdCBub256ZXJvX3Bvc2l0aW9uc19pbl9y b3coc2VsZiwgbG9uZyByKQorIAorLSAgICBjZGVmIExlYW5NYXRyaXggdHJhbnNwb3NlKHNlbGYp IG5vZXhjZXB0CistICAgIGNkZWYgTGVhbk1hdHJpeCBfbWF0cml4X3RpbWVzX21hdHJpeF8oc2Vs ZiwgTGVhbk1hdHJpeCBvdGhlcikgbm9leGNlcHQKKy0gICAgY2RlZiBMZWFuTWF0cml4IG1hdHJp eF9mcm9tX3Jvd3NfYW5kX2NvbHVtbnMoc2VsZiwgcm93cywgY29sdW1ucykgbm9leGNlcHQKKysg ICAgY2RlZiBMZWFuTWF0cml4IHRyYW5zcG9zZShzZWxmKQorKyAgICBjZGVmIExlYW5NYXRyaXgg X21hdHJpeF90aW1lc19tYXRyaXhfKHNlbGYsIExlYW5NYXRyaXggb3RoZXIpCisrICAgIGNkZWYg TGVhbk1hdHJpeCBtYXRyaXhfZnJvbV9yb3dzX2FuZF9jb2x1bW5zKHNlbGYsIHJvd3MsIGNvbHVt bnMpCisgCistICAgIGNkZWYgc2hpZnRpbmdfYWxsKHNlbGYsIFBfcm93cywgUF9jb2xzLCBRX3Jv d3MsIFFfY29scywgaW50IG0pIG5vZXhjZXB0CistICAgIGNkZWYgc2hpZnRpbmcoc2VsZiwgVV8x LCBWXzIsIFVfMiwgVl8xLCB6MiwgejEsIGludCBtKSBub2V4Y2VwdAorKyAgICBjZGVmIHNoaWZ0 aW5nX2FsbChzZWxmLCBQX3Jvd3MsIFBfY29scywgUV9yb3dzLCBRX2NvbHMsIGludCBtKQorKyAg ICBjZGVmIHNoaWZ0aW5nKHNlbGYsIFVfMSwgVl8yLCBVXzIsIFZfMSwgejIsIHoxLCBpbnQgbSkK KyAKKyBjZGVmIGNsYXNzIEdlbmVyaWNNYXRyaXgoTGVhbk1hdHJpeCk6CisgICAgIGNkZWYgX2Jh c2VfcmluZywgX2NoYXJhY3RlcmlzdGljCitAQCAtNDIsNyArNDIsNyBAQCBjZGVmIGNsYXNzIEdl bmVyaWNNYXRyaXgoTGVhbk1hdHJpeCk6CisgICAgIGNkZWYgX3plcm8KKyAgICAgY2RlZiBfb25l CisgCistICAgIGNkZWYgaW5saW5lIHJvd19pbm5lcl9wcm9kdWN0KHNlbGYsIGxvbmcgaSwgbG9u ZyBqKSBub2V4Y2VwdCAgICMgTm90IGEgU2FnZSBtYXRyaXggb3BlcmF0aW9uCisrICAgIGNkZWYg aW5saW5lIHJvd19pbm5lcl9wcm9kdWN0KHNlbGYsIGxvbmcgaSwgbG9uZyBqKSAgICMgTm90IGEg U2FnZSBtYXRyaXggb3BlcmF0aW9uCisgCisgY2RlZiBjbGFzcyBCaW5hcnlNYXRyaXgoTGVhbk1h dHJpeCk6CisgICAgIGNkZWYgYml0c2V0X3QqIF9NCitAQCAtNTQsMTcgKzU0LDE3IEBAIGNkZWYg Y2xhc3MgQmluYXJ5TWF0cml4KExlYW5NYXRyaXgpOgorICAgICBjZGVmIGlubGluZSBiaW50IGdl dChzZWxmLCBsb25nIHgsIGxvbmcgeSkgbm9leGNlcHQgICAjIE5vdCBhIFNhZ2UgbWF0cml4IG9w ZXJhdGlvbgorICAgICBjZGVmIGlubGluZSB2b2lkIHNldChzZWxmLCBsb25nIHgsIGxvbmcgeSkg bm9leGNlcHQgICAjIE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorIAorLSAgICBjZGVmIGlu bGluZSBsaXN0IHJvd19zdW0oc2VsZiwgb2JqZWN0IEwpIG5vZXhjZXB0ICAgIyBOb3QgYSBTYWdl IG1hdHJpeCBvcGVyYXRpb24KKy0gICAgY2RlZiBpbmxpbmUgbGlzdCByb3dfdW5pb24oc2VsZiwg b2JqZWN0IEwpIG5vZXhjZXB0ICAgIyBOb3QgYSBTYWdlIG1hdHJpeCBvcGVyYXRpb24KKysgICAg Y2RlZiBpbmxpbmUgbGlzdCByb3dfc3VtKHNlbGYsIG9iamVjdCBMKSAgICMgTm90IGEgU2FnZSBt YXRyaXggb3BlcmF0aW9uCisrICAgIGNkZWYgaW5saW5lIGxpc3Qgcm93X3VuaW9uKHNlbGYsIG9i amVjdCBMKSAgICMgTm90IGEgU2FnZSBtYXRyaXggb3BlcmF0aW9uCisgCistICAgIGNkZWYgTGVh bk1hdHJpeCBtYXRyaXhfZnJvbV9yb3dzX2FuZF9jb2x1bW5zKHNlbGYsIHJvd3MsIGNvbHVtbnMp IG5vZXhjZXB0CistICAgIGNkZWYgbWF0cml4X2Zyb21fcm93c19hbmRfY29sdW1uc19yZW9yZGVy ZWQoc2VsZiwgcm93cywgY29sdW1ucykgbm9leGNlcHQKKysgICAgY2RlZiBMZWFuTWF0cml4IG1h dHJpeF9mcm9tX3Jvd3NfYW5kX2NvbHVtbnMoc2VsZiwgcm93cywgY29sdW1ucykKKysgICAgY2Rl ZiBtYXRyaXhfZnJvbV9yb3dzX2FuZF9jb2x1bW5zX3Jlb3JkZXJlZChzZWxmLCByb3dzLCBjb2x1 bW5zKQorIAorLSAgICBjZGVmIGxpc3QgX2NoYXJhY3RlcihzZWxmLCBiaXRzZXRfdCB4KSBub2V4 Y2VwdAorLSAgICBjZGVmIEJpbmFyeU1hdHJpeCBfZGlzdGluZ3Vpc2hfYnkoc2VsZiwgQmluYXJ5 TWF0cml4IFApIG5vZXhjZXB0CistICAgIGNkZWYgQmluYXJ5TWF0cml4IF9zcGxpY2VfYnkoc2Vs ZiwgQmluYXJ5TWF0cml4IFApIG5vZXhjZXB0CistICAgIGNkZWYgQmluYXJ5TWF0cml4IF9pc29s YXRlKHNlbGYsIGxvbmcgcikgbm9leGNlcHQKKy0gICAgY2RlZiBCaW5hcnlNYXRyaXggZXF1aXRh YmxlX3BhcnRpdGlvbihzZWxmLCBCaW5hcnlNYXRyaXggUD0qKSBub2V4Y2VwdCAgICMgTm90IGEg U2FnZSBtYXRyaXggb3BlcmF0aW9uCisrICAgIGNkZWYgbGlzdCBfY2hhcmFjdGVyKHNlbGYsIGJp dHNldF90IHgpCisrICAgIGNkZWYgQmluYXJ5TWF0cml4IF9kaXN0aW5ndWlzaF9ieShzZWxmLCBC aW5hcnlNYXRyaXggUCkKKysgICAgY2RlZiBCaW5hcnlNYXRyaXggX3NwbGljZV9ieShzZWxmLCBC aW5hcnlNYXRyaXggUCkKKysgICAgY2RlZiBCaW5hcnlNYXRyaXggX2lzb2xhdGUoc2VsZiwgbG9u ZyByKQorKyAgICBjZGVmIEJpbmFyeU1hdHJpeCBlcXVpdGFibGVfcGFydGl0aW9uKHNlbGYsIEJp bmFyeU1hdHJpeCBQPSopICAgIyBOb3QgYSBTYWdlIG1hdHJpeCBvcGVyYXRpb24KKyAgICAgY2Rl ZiBiaW50IGlzX2lzb21vcnBoaWMoc2VsZiwgQmluYXJ5TWF0cml4IG90aGVyLCBCaW5hcnlNYXRy aXggc19lcT0qLCBCaW5hcnlNYXRyaXggb19lcT0qKSBleGNlcHQgLTIgICAjIE5vdCBhIFNhZ2Ug bWF0cml4IG9wZXJhdGlvbgorIAorIAorQEAgLTgyLDcgKzgyLDcgQEAgY2RlZiBjbGFzcyBUZXJu YXJ5TWF0cml4KExlYW5NYXRyaXgpOgorICAgICBjZGVmIGlubGluZSBsb25nIHJvd19pbm5lcl9w cm9kdWN0KHNlbGYsIGxvbmcgaSwgbG9uZyBqKSBub2V4Y2VwdCAgICMgTm90IGEgU2FnZSBtYXRy aXggb3BlcmF0aW9uCisgICAgIGNkZWYgdm9pZCByb3dfc3VicyhzZWxmLCBsb25nIHgsIGxvbmcg eSkgbm9leGNlcHQgICAjIE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorICAgICBjZGVmIHZv aWQgX3Jvd19uZWdhdGUoc2VsZiwgbG9uZyB4KSBub2V4Y2VwdAorLSAgICBjZGVmIG1hdHJpeF9m cm9tX3Jvd3NfYW5kX2NvbHVtbnNfcmVvcmRlcmVkKHNlbGYsIHJvd3MsIGNvbHVtbnMpIG5vZXhj ZXB0CisrICAgIGNkZWYgbWF0cml4X2Zyb21fcm93c19hbmRfY29sdW1uc19yZW9yZGVyZWQoc2Vs Ziwgcm93cywgY29sdW1ucykKKyAKKyBjZGVmIGNsYXNzIFF1YXRlcm5hcnlNYXRyaXgoTGVhbk1h dHJpeCk6CisgICAgIGNkZWYgYml0c2V0X3QgKl9NMCAgICAjIF9NMFtpXSA9IDEtc3VwcG9ydCBv ZiByb3cgaQorQEAgLTkwLDEzICs5MCwxMyBAQCBjZGVmIGNsYXNzIFF1YXRlcm5hcnlNYXRyaXgo TGVhbk1hdHJpeCk6CisgICAgIGNkZWYgYml0c2V0X3QgX3MsIF90LCBfdSAgICAjIHJlZ2lzdGVy cworICAgICBjZGVmIG9iamVjdCBfZ2Y0LCBfemVybywgX29uZSwgX3hfemVybywgX3hfb25lCisg CistICAgIGNkZWYgaW5saW5lIGdldChzZWxmLCBsb25nIHIsIGxvbmcgYykgbm9leGNlcHQgICAj IE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorKyAgICBjZGVmIGlubGluZSBnZXQoc2VsZiwg bG9uZyByLCBsb25nIGMpICAgIyBOb3QgYSBTYWdlIG1hdHJpeCBvcGVyYXRpb24KKyAgICAgY2Rl ZiBpbmxpbmUgaW50IHNldChzZWxmLCBsb25nIHIsIGxvbmcgYywgeCkgZXhjZXB0IC0xICAgIyBO b3QgYSBTYWdlIG1hdHJpeCBvcGVyYXRpb24KKyAKKyAgICAgY2RlZiBpbmxpbmUgbG9uZyByb3df bGVuKHNlbGYsIGxvbmcgaSkgZXhjZXB0IC0xICAgIyBOb3QgYSBTYWdlIG1hdHJpeCBvcGVyYXRp b24KKy0gICAgY2RlZiBpbmxpbmUgcm93X2lubmVyX3Byb2R1Y3Qoc2VsZiwgbG9uZyBpLCBsb25n IGopIG5vZXhjZXB0ICAgIyBOb3QgYSBTYWdlIG1hdHJpeCBvcGVyYXRpb24KKysgICAgY2RlZiBp bmxpbmUgcm93X2lubmVyX3Byb2R1Y3Qoc2VsZiwgbG9uZyBpLCBsb25nIGopICAgIyBOb3QgYSBT YWdlIG1hdHJpeCBvcGVyYXRpb24KKyAgICAgY2RlZiBpbmxpbmUgaW50IF9yb3dfZGl2KHNlbGYs IGxvbmcgeCwgb2JqZWN0IHMpIGV4Y2VwdCAtMQorLSAgICBjZGVmIG1hdHJpeF9mcm9tX3Jvd3Nf YW5kX2NvbHVtbnNfcmVvcmRlcmVkKHNlbGYsIHJvd3MsIGNvbHVtbnMpIG5vZXhjZXB0CisrICAg IGNkZWYgbWF0cml4X2Zyb21fcm93c19hbmRfY29sdW1uc19yZW9yZGVyZWQoc2VsZiwgcm93cywg Y29sdW1ucykKKyAgICAgY2RlZiB2b2lkIGNvbmp1Z2F0ZShzZWxmKSBub2V4Y2VwdCAgICMgTm90 IGEgU2FnZSBtYXRyaXggb3BlcmF0aW9uCisgCisgCitAQCAtMTA3LDcgKzEwNyw3IEBAIGNkZWYg Y2xhc3MgUGx1c01pbnVzT25lTWF0cml4KExlYW5NYXRyaXgpOgorICAgICBjZGVmIGlubGluZSB2 b2lkIHNldChzZWxmLCBsb25nIHIsIGxvbmcgYywgaW50IHgpIG5vZXhjZXB0ICAgIyBOb3QgYSBT YWdlIG1hdHJpeCBvcGVyYXRpb24KKyAKKyAgICAgY2RlZiBpbmxpbmUgbG9uZyByb3dfbGVuKHNl bGYsIGxvbmcgaSkgZXhjZXB0IC0xICAgIyBOb3QgYSBTYWdlIG1hdHJpeCBvcGVyYXRpb24KKy0g ICAgY2RlZiBpbmxpbmUgcm93X2lubmVyX3Byb2R1Y3Qoc2VsZiwgbG9uZyBpLCBsb25nIGopIG5v ZXhjZXB0ICAgIyBOb3QgYSBTYWdlIG1hdHJpeCBvcGVyYXRpb24KKysgICAgY2RlZiBpbmxpbmUg cm93X2lubmVyX3Byb2R1Y3Qoc2VsZiwgbG9uZyBpLCBsb25nIGopICAgIyBOb3QgYSBTYWdlIG1h dHJpeCBvcGVyYXRpb24KKyAKKyBjZGVmIGNsYXNzIFJhdGlvbmFsTWF0cml4KExlYW5NYXRyaXgp OgorICAgICBjZGVmIG1wcV90KiBfZW50cmllcworQEAgLTExNiwxMCArMTE2LDEwIEBAIGNkZWYg Y2xhc3MgUmF0aW9uYWxNYXRyaXgoTGVhbk1hdHJpeCk6CisgICAgIGNkZWYgaW5saW5lIHZvaWQg c2V0KHNlbGYsIGxvbmcgciwgbG9uZyBjLCBtcHFfdCB4KSBub2V4Y2VwdCAgICMgTm90IGEgU2Fn ZSBtYXRyaXggb3BlcmF0aW9uCisgCisgICAgIGNkZWYgaW5saW5lIGxvbmcgcm93X2xlbihzZWxm LCBsb25nIGkpIGV4Y2VwdCAtMSAgICMgTm90IGEgU2FnZSBtYXRyaXggb3BlcmF0aW9uCistICAg IGNkZWYgaW5saW5lIHJvd19pbm5lcl9wcm9kdWN0KHNlbGYsIGxvbmcgaSwgbG9uZyBqKSBub2V4 Y2VwdCAgICMgTm90IGEgU2FnZSBtYXRyaXggb3BlcmF0aW9uCisrICAgIGNkZWYgaW5saW5lIHJv d19pbm5lcl9wcm9kdWN0KHNlbGYsIGxvbmcgaSwgbG9uZyBqKSAgICMgTm90IGEgU2FnZSBtYXRy aXggb3BlcmF0aW9uCisgCisgICAgIGNkZWYgaW50IGFkZF9tdWx0aXBsZV9vZl9yb3dfbXBxKHNl bGYsIGxvbmcgeCwgbG9uZyB5LCBtcHFfdCBzLCBiaW50IGNvbF9zdGFydCkgZXhjZXB0IC0xCisg ICAgIGNkZWYgaW50IHJlc2NhbGVfcm93X21wcShzZWxmLCBsb25nIHgsIG1wcV90IHMsIGJpbnQg Y29sX3N0YXJ0KSBleGNlcHQgLTEKKyAgICAgY2RlZiBpbnQgcmVzY2FsZV9jb2x1bW5fbXBxKHNl bGYsIGxvbmcgeSwgbXBxX3QgcywgYmludCBzdGFydF9yb3cpIGV4Y2VwdCAtMQorIAorLWNwZGVm IEdlbmVyaWNNYXRyaXggZ2VuZXJpY19pZGVudGl0eShuLCByaW5nKSBub2V4Y2VwdAorK2NwZGVm IEdlbmVyaWNNYXRyaXggZ2VuZXJpY19pZGVudGl0eShuLCByaW5nKQorZGlmZiAtLWdpdCBhL3Ny Yy9zYWdlL21hdHJvaWRzL2xlYW5fbWF0cml4LnB5eCBiL3NyYy9zYWdlL21hdHJvaWRzL2xlYW5f bWF0cml4LnB5eAoraW5kZXggMWU3Njg3NzVmZGYuLjM0YzQ5OGIwMTZhIDEwMDY0NAorLS0tIGEv c3JjL3NhZ2UvbWF0cm9pZHMvbGVhbl9tYXRyaXgucHl4CisrKysgYi9zcmMvc2FnZS9tYXRyb2lk cy9sZWFuX21hdHJpeC5weXgKK0BAIC0xMTEsNyArMTExLDcgQEAgY2RlZiBjbGFzcyBMZWFuTWF0 cml4OgorICAgICAgICAgICAgICAgICBNW3IsIGNdID0gc2VsZi5nZXRfdW5zYWZlKHIsIGMpCisg ICAgICAgICByZXR1cm4gTQorIAorLSAgICBjZGVmIExlYW5NYXRyaXggY29weShzZWxmKSBub2V4 Y2VwdDogICAjIERlcHJlY2F0ZWQgU2FnZSBtYXRyaXggb3BlcmF0aW9uCisrICAgIGNkZWYgTGVh bk1hdHJpeCBjb3B5KHNlbGYpOiAgICMgRGVwcmVjYXRlZCBTYWdlIG1hdHJpeCBvcGVyYXRpb24K KyAgICAgICAgICIiIgorICAgICAgICAgTWFrZSBhIGNvcHkgb2YgYGBzZWxmYGAuCisgICAgICAg ICAiIiIKK0BAIC0xMjQsNyArMTI0LDcgQEAgY2RlZiBjbGFzcyBMZWFuTWF0cml4OgorICAgICAg ICAgIiIiCisgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisgCistICAgIGNkZWYg TGVhbk1hdHJpeCBzdGFjayhzZWxmLCBMZWFuTWF0cml4IE0pIG5vZXhjZXB0OgorKyAgICBjZGVm IExlYW5NYXRyaXggc3RhY2soc2VsZiwgTGVhbk1hdHJpeCBNKToKKyAgICAgICAgICIiIgorICAg ICAgICAgU3RhY2sgYGBzZWxmYGAgb24gdG9wIG9mIGBgTWBgLiBBc3N1bWVzIGBgc2VsZmBgIGFu ZCBgYE1gYCBhcmUgb2Ygc2FtZQorICAgICAgICAgdHlwZSwgYW5kIGNvbXBhdGlibGUgZGltZW5z aW9ucy4KK0BAIC0xNDEsNyArMTQxLDcgQEAgY2RlZiBjbGFzcyBMZWFuTWF0cml4OgorICAgICAg ICAgICAgICAgICBBLnNldF91bnNhZmUoaSArIHNyLCBqLCBNLmdldF91bnNhZmUoaSwgaikpCisg ICAgICAgICByZXR1cm4gQQorIAorLSAgICBjZGVmIExlYW5NYXRyaXggYXVnbWVudChzZWxmLCBM ZWFuTWF0cml4IE0pIG5vZXhjZXB0OgorKyAgICBjZGVmIExlYW5NYXRyaXggYXVnbWVudChzZWxm LCBMZWFuTWF0cml4IE0pOgorICAgICAgICAgIiIiCisgICAgICAgICBDb25jYXRlbmF0ZXMgYGBz ZWxmYGAgd2l0aCBgYE1gYCwgcGxhY2luZyBgYE1gYCB0byB0aGUgcmlnaHQgb2YKKyAgICAgICAg IGBgc2VsZmBgLiBBc3N1bWVzIGBgc2VsZmBgIGFuZCBgYE1gYCBhcmUgb2Ygc2FtZSB0eXBlLCBh bmQgY29tcGF0aWJsZQorQEAgLTE1OCw3ICsxNTgsNyBAQCBjZGVmIGNsYXNzIExlYW5NYXRyaXg6 CisgICAgICAgICAgICAgICAgIEEuc2V0X3Vuc2FmZShpLCBqICsgc2MsIE0uZ2V0X3Vuc2FmZShp LCBqKSkKKyAgICAgICAgIHJldHVybiBBCisgCistICAgIGNkZWYgTGVhbk1hdHJpeCBwcmVwZW5k X2lkZW50aXR5KHNlbGYpIG5vZXhjZXB0OiAgICMgTm90IGEgU2FnZSBtYXRyaXggb3BlcmF0aW9u CisrICAgIGNkZWYgTGVhbk1hdHJpeCBwcmVwZW5kX2lkZW50aXR5KHNlbGYpOiAgICMgTm90IGEg U2FnZSBtYXRyaXggb3BlcmF0aW9uCisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUg bWF0cml4IG9idGFpbmVkIGJ5IHByZXBlbmRpbmcgYW4gaWRlbnRpdHkgbWF0cml4LiBTcGVjaWFs CisgICAgICAgICBjYXNlIG9mIGBgYXVnbWVudGBgLgorQEAgLTE5Nyw3ICsxOTcsNyBAQCBjZGVm IGNsYXNzIExlYW5NYXRyaXg6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9u cm93cworIAorLSAgICBjcGRlZiBiYXNlX3Jpbmcoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVm IGJhc2VfcmluZyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBiYXNl IHJpbmcuCisgCitAQCAtMjEyLDcgKzIxMiw3IEBAIGNkZWYgY2xhc3MgTGVhbk1hdHJpeDoKKyAg ICAgICAgICIiIgorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigic3ViY2xhc3Nl cyBuZWVkIHRvIGltcGxlbWVudCB0aGlzLiIpCisgCistICAgIGNwZGVmIGNoYXJhY3RlcmlzdGlj KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjaGFyYWN0ZXJpc3RpYyhzZWxmKToKKyAgICAg ICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBjaGFyYWN0ZXJpc3RpYyBvZiBgYHNlbGYuYmFz ZV9yaW5nKClgYC4KKyAKK0BAIC0yMjUsNyArMjI1LDcgQEAgY2RlZiBjbGFzcyBMZWFuTWF0cml4 OgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5iYXNlX3JpbmcoKS5jaGFyYWN0 ZXJpc3RpYygpCisgCistICAgIGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBsb25nIHIsIGxvbmcgYykg bm9leGNlcHQ6CisrICAgIGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBsb25nIHIsIGxvbmcgYyk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgdmFsdWUgaW4gcm93IGBgcmBgLCBjb2x1 bW4gYGBjYGAuCisgICAgICAgICAiIiIKK0BAIC0zMDksNyArMzA5LDcgQEAgY2RlZiBjbGFzcyBM ZWFuTWF0cml4OgorICAgICAgICAgICAgICAgICBzZWxmLmFkZF9tdWx0aXBsZV9vZl9yb3dfYyhp LCB4LCAtcywgMCkKKyAgICAgICAgIHJldHVybiAwCisgCistICAgIGNkZWYgbGlzdCBnYXVzc19q b3JkYW5fcmVkdWNlKHNlbGYsIGNvbHVtbnMpIG5vZXhjZXB0OiAgICMgTm90IGEgU2FnZSBtYXRy aXggb3BlcmF0aW9uCisrICAgIGNkZWYgbGlzdCBnYXVzc19qb3JkYW5fcmVkdWNlKHNlbGYsIGNv bHVtbnMpOiAgICMgTm90IGEgU2FnZSBtYXRyaXggb3BlcmF0aW9uCisgICAgICAgICAiIiIKKyAg ICAgICAgIFJvdy1yZWR1Y2Ugc28gdGhlIGxleGljb2dyYXBoaWNhbGx5IGZpcnN0IGJhc2lzIGlu ZGV4ZXMgYW4gaWRlbnRpdHkKKyAgICAgICAgIHN1Ym1hdHJpeC4KK0BAIC0zMzQsMTMgKzMzNCwx MyBAQCBjZGVmIGNsYXNzIExlYW5NYXRyaXg6CisgICAgICAgICAgICAgICAgIGJyZWFrCisgICAg ICAgICByZXR1cm4gUAorIAorLSAgICBjZGVmIGxpc3Qgbm9uemVyb19wb3NpdGlvbnNfaW5fcm93 KHNlbGYsIGxvbmcgcikgbm9leGNlcHQ6CisrICAgIGNkZWYgbGlzdCBub256ZXJvX3Bvc2l0aW9u c19pbl9yb3coc2VsZiwgbG9uZyByKToKKyAgICAgICAgICIiIgorICAgICAgICAgR2V0IGNvb3Jk aW5hdGVzIG9mIG5vbnplcm8gZW50cmllcyBvZiByb3cgYGByYGAuCisgICAgICAgICAiIiIKKyAg ICAgICAgIHJldHVybiBbaSBmb3IgaSBpbiByYW5nZShzZWxmLl9uY29scykgaWYgc2VsZi5pc19u b256ZXJvKHIsIGkpXQorIAorLSAgICBjZGVmIExlYW5NYXRyaXggdHJhbnNwb3NlKHNlbGYpIG5v ZXhjZXB0OgorKyAgICBjZGVmIExlYW5NYXRyaXggdHJhbnNwb3NlKHNlbGYpOgorICAgICAgICAg IiIiCisgICAgICAgICBSZXR1cm4gdGhlIHRyYW5zcG9zZSBvZiB0aGUgbWF0cml4LgorICAgICAg ICAgIiIiCitAQCAtMzUxLDcgKzM1MSw3IEBAIGNkZWYgY2xhc3MgTGVhbk1hdHJpeDoKKyAgICAg ICAgICAgICAgICAgQS5zZXRfdW5zYWZlKGosIGksIHNlbGYuZ2V0X3Vuc2FmZShpLCBqKSkKKyAg ICAgICAgIHJldHVybiBBCisgCistICAgIGNkZWYgTGVhbk1hdHJpeCBfbWF0cml4X3RpbWVzX21h dHJpeF8oc2VsZiwgTGVhbk1hdHJpeCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNkZWYgTGVhbk1h dHJpeCBfbWF0cml4X3RpbWVzX21hdHJpeF8oc2VsZiwgTGVhbk1hdHJpeCBvdGhlcik6CisgICAg ICAgICAiIiIKKyAgICAgICAgIE11bHRpcGx5IHR3byBtYXRyaWNlcy4gQXNzdW1lcyBgYHNlbGZg YCBhbmQgYGBNYGAgYXJlIG9mIHNhbWUgdHlwZSwKKyAgICAgICAgIGFuZCBjb21wYXRpYmxlIGRp bWVuc2lvbnMuCitAQCAtMzY0LDcgKzM2NCw3IEBAIGNkZWYgY2xhc3MgTGVhbk1hdHJpeDoKKyAg ICAgICAgICAgICAgICAgICAgIEEuc2V0X3Vuc2FmZShpLCBqLCBzZWxmLmdldF91bnNhZmUoaSwg aykgKiBvdGhlci5nZXRfdW5zYWZlKGssIGopKQorICAgICAgICAgcmV0dXJuIEEKKyAKKy0gICAg Y2RlZiBMZWFuTWF0cml4IG1hdHJpeF9mcm9tX3Jvd3NfYW5kX2NvbHVtbnMoc2VsZiwgcm93cywg Y29sdW1ucykgbm9leGNlcHQ6CisrICAgIGNkZWYgTGVhbk1hdHJpeCBtYXRyaXhfZnJvbV9yb3dz X2FuZF9jb2x1bW5zKHNlbGYsIHJvd3MsIGNvbHVtbnMpOgorICAgICAgICAgIiIiCisgICAgICAg ICBSZXR1cm4gc3VibWF0cml4IGluZGV4ZWQgYnkgaW5kaWNhdGVkIHJvd3MgYW5kIGNvbHVtbnMu CisgICAgICAgICAiIiIKK0BAIC01MTcsNyArNTE3LDcgQEAgY2RlZiBjbGFzcyBMZWFuTWF0cml4 OgorICAgICAgICAgIiIiCisgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCJzdWJj bGFzc2VzIG5lZWQgdG8gaW1wbGVtZW50IHRoaXMuIikKKyAKKy0gICAgY2RlZiBzaGlmdGluZ19h bGwoc2VsZiwgUF9yb3dzLCBQX2NvbHMsIFFfcm93cywgUV9jb2xzLCBpbnQgbSkgbm9leGNlcHQ6 CisrICAgIGNkZWYgc2hpZnRpbmdfYWxsKHNlbGYsIFBfcm93cywgUF9jb2xzLCBRX3Jvd3MsIFFf Y29scywgaW50IG0pOgorICAgICAgICAgciIiIgorICAgICAgICAgR2l2ZW4gYSBwYXJ0aWFsIG1h dHJpeCBgTWAuIElmIHRoZSBzdWJtYXRyaXggYE1gIHVzaW5nIHJvd3MKKyAgICAgICAgIGBQX3Jv d3NgIGNvbHVtbnMgYFBfY29sc2AgYW5kIHN1Ym1hdHJpeCB1c2luZyByb3dzIGBRX3Jvd3NgIGNv bHVtbnMKK0BAIC01NjAsNyArNTYwLDcgQEAgY2RlZiBjbGFzcyBMZWFuTWF0cml4OgorICAgICAg ICAgICAgICAgICByZXR1cm4gVHJ1ZSwgY2VydAorICAgICAgICAgcmV0dXJuIEZhbHNlLCBOb25l CisgCistICAgIGNkZWYgc2hpZnRpbmcoc2VsZiwgVV8xLCBWXzIsIFVfMiwgVl8xLCB6MiwgejEs IGludCBtKSBub2V4Y2VwdDoKKysgICAgY2RlZiBzaGlmdGluZyhzZWxmLCBVXzEsIFZfMiwgVV8y LCBWXzEsIHoyLCB6MSwgaW50IG0pOgorICAgICAgICAgciIiIgorICAgICAgICAgTGV0IGBFXzFg IGJlIHRoZSBzdWJtYXRyaXggdXNpbmcgcm93cyBgVV8xYCBhbmQgY29sdW1ucyBgVl8yYCB3aXRo CisgICAgICAgICBvcHRpb25hbCBjb2x1bW4gYHoyYCBhdHRhY2hlZC4KK0BAIC03NTgsNyArNzU4 LDcgQEAgY2RlZiBjbGFzcyBHZW5lcmljTWF0cml4KExlYW5NYXRyaXgpOgorICAgICAgICAgIiIi CisgICAgICAgICByZXR1cm4gIkxlYW5NYXRyaXggaW5zdGFuY2Ugd2l0aCAiICsgc3RyKHNlbGYu X25yb3dzKSArICIgcm93cyBhbmQgIiArIHN0cihzZWxmLl9uY29scykgKyAiIGNvbHVtbnMgb3Zl ciAiICsgcmVwcihzZWxmLl9iYXNlX3JpbmcpCisgCistICAgIGNkZWYgTGVhbk1hdHJpeCBjb3B5 KHNlbGYpIG5vZXhjZXB0OiAgICMgRGVwcmVjYXRlZCBTYWdlIG1hdHJpeCBvcGVyYXRpb24KKysg ICAgY2RlZiBMZWFuTWF0cml4IGNvcHkoc2VsZik6ICAgIyBEZXByZWNhdGVkIFNhZ2UgbWF0cml4 IG9wZXJhdGlvbgorICAgICAgICAgY2RlZiBHZW5lcmljTWF0cml4IE0gPSBHZW5lcmljTWF0cml4 KHNlbGYuX25yb3dzLCBzZWxmLl9uY29scywgTT1zZWxmKQorICAgICAgICAgcmV0dXJuIE0KKyAK K0BAIC03NzQsNyArNzc0LDcgQEAgY2RlZiBjbGFzcyBHZW5lcmljTWF0cml4KExlYW5NYXRyaXgp OgorICAgICAgICAgc2VsZi5fbnJvd3MgPSBrCisgICAgICAgICByZXR1cm4gMAorIAorLSAgICBj ZGVmIExlYW5NYXRyaXggc3RhY2soc2VsZiwgTGVhbk1hdHJpeCBNKSBub2V4Y2VwdDoKKysgICAg Y2RlZiBMZWFuTWF0cml4IHN0YWNrKHNlbGYsIExlYW5NYXRyaXggTSk6CisgICAgICAgICAiIiIK KyAgICAgICAgIFdhcm5pbmc6IGFzc3VtZXMgYGBNYGAgaXMgYSBHZW5lcmljTWF0cml4IGluc3Rh bmNlIQorICAgICAgICAgIiIiCitAQCAtNzg1LDcgKzc4NSw3IEBAIGNkZWYgY2xhc3MgR2VuZXJp Y01hdHJpeChMZWFuTWF0cml4KToKKyAgICAgICAgIEEuX25jb2xzID0gc2VsZi5fbmNvbHMKKyAg ICAgICAgIHJldHVybiBBCisgCistICAgIGNkZWYgTGVhbk1hdHJpeCBhdWdtZW50KHNlbGYsIExl YW5NYXRyaXggTSkgbm9leGNlcHQ6CisrICAgIGNkZWYgTGVhbk1hdHJpeCBhdWdtZW50KHNlbGYs IExlYW5NYXRyaXggTSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFdhcm5pbmc6IGFzc3VtZXMg YGBNYGAgaXMgYSBHZW5lcmljTWF0cml4IGluc3RhbmNlIQorICAgICAgICAgIiIiCitAQCAtNzk4 LDE0ICs3OTgsMTQgQEAgY2RlZiBjbGFzcyBHZW5lcmljTWF0cml4KExlYW5NYXRyaXgpOgorICAg ICAgICAgICAgIEEuX2VudHJpZXNbaSAqIEEuX25jb2xzICsgc2VsZi5fbmNvbHM6KGkgKyAxKSAq IEEuX25jb2xzXT0oPEdlbmVyaWNNYXRyaXg+TSkuX2VudHJpZXNbaSAqIE1uOihpICsgMSkgKiBN bl0KKyAgICAgICAgIHJldHVybiBBCisgCistICAgIGNkZWYgTGVhbk1hdHJpeCBwcmVwZW5kX2lk ZW50aXR5KHNlbGYpIG5vZXhjZXB0OiAgICMgTm90IGEgU2FnZSBtYXRyaXggb3BlcmF0aW9uCisr ICAgIGNkZWYgTGVhbk1hdHJpeCBwcmVwZW5kX2lkZW50aXR5KHNlbGYpOiAgICMgTm90IGEgU2Fn ZSBtYXRyaXggb3BlcmF0aW9uCisgICAgICAgICBjZGVmIEdlbmVyaWNNYXRyaXggQSA9IEdlbmVy aWNNYXRyaXgoc2VsZi5fbnJvd3MsIHNlbGYuX25jb2xzICsgc2VsZi5fbnJvd3MsIHJpbmc9c2Vs Zi5fYmFzZV9yaW5nKQorICAgICAgICAgZm9yIGkgaW4gcmFuZ2Uoc2VsZi5fbnJvd3MpOgorICAg ICAgICAgICAgIEEuX2VudHJpZXNbaSAqIEEuX25jb2xzICsgaV0gPSBzZWxmLl9vbmUKKyAgICAg ICAgICAgICBBLl9lbnRyaWVzW2kgKiBBLl9uY29scyArIHNlbGYuX25yb3dzOihpICsgMSkgKiBB Ll9uY29sc109c2VsZi5fZW50cmllc1tpICogc2VsZi5fbmNvbHM6KGkgKyAxKSAqIHNlbGYuX25j b2xzXQorICAgICAgICAgcmV0dXJuIEEKKyAKKy0gICAgY3BkZWYgYmFzZV9yaW5nKHNlbGYpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBiYXNlX3Jpbmcoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAg ICAgIFJldHVybiB0aGUgYmFzZSByaW5nIG9mIGBgc2VsZmBgLgorIAorQEAgLTgxOCw3ICs4MTgs NyBAQCBjZGVmIGNsYXNzIEdlbmVyaWNNYXRyaXgoTGVhbk1hdHJpeCk6CisgICAgICAgICAiIiIK KyAgICAgICAgIHJldHVybiBzZWxmLl9iYXNlX3JpbmcKKyAKKy0gICAgY3BkZWYgY2hhcmFjdGVy aXN0aWMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGNoYXJhY3RlcmlzdGljKHNlbGYpOgor ICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGNoYXJhY3RlcmlzdGljIG9mIGBgc2Vs Zi5iYXNlX3JpbmcoKWBgLgorIAorQEAgLTgzMyw3ICs4MzMsNyBAQCBjZGVmIGNsYXNzIEdlbmVy aWNNYXRyaXgoTGVhbk1hdHJpeCk6CisgICAgICAgICAgICAgc2VsZi5fY2hhcmFjdGVyaXN0aWMg PSBzZWxmLl9iYXNlX3JpbmcuY2hhcmFjdGVyaXN0aWMoKQorICAgICAgICAgcmV0dXJuIHNlbGYu X2NoYXJhY3RlcmlzdGljCisgCistICAgIGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBsb25nIHIsIGxv bmcgYykgbm9leGNlcHQ6CisrICAgIGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBsb25nIHIsIGxvbmcg Yyk6CisgICAgICAgICByZXR1cm4gc2VsZi5fZW50cmllc1tyICogc2VsZi5fbmNvbHMgKyBjXQor IAorICAgICBjZGVmIGludCBzZXRfdW5zYWZlKHNlbGYsIGxvbmcgciwgbG9uZyBjLCB4KSBleGNl cHQgLTE6CitAQCAtODQ5LDcgKzg0OSw3IEBAIGNkZWYgY2xhc3MgR2VuZXJpY01hdHJpeChMZWFu TWF0cml4KToKKyAgICAgICAgIHNlbGYuX2VudHJpZXNbeSAqIHNlbGYuX25jb2xzOih5ICsgMSkg KiBzZWxmLl9uY29sc10gPSB0bXAKKyAgICAgICAgIHJldHVybiAwCisgCistICAgIGNkZWYgTGVh bk1hdHJpeCB0cmFuc3Bvc2Uoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgTGVhbk1hdHJpeCB0 cmFuc3Bvc2Uoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgdHJhbnNw b3NlIG9mIHRoZSBtYXRyaXguCisgICAgICAgICAiIiIKK0BAIC04NjEsNyArODYxLDcgQEAgY2Rl ZiBjbGFzcyBHZW5lcmljTWF0cml4KExlYW5NYXRyaXgpOgorICAgICAgICAgICAgICAgICBBLnNl dF91bnNhZmUoaiwgaSwgc2VsZi5nZXRfdW5zYWZlKGksIGopKQorICAgICAgICAgcmV0dXJuIEEK KyAKKy0gICAgY2RlZiBpbmxpbmUgcm93X2lubmVyX3Byb2R1Y3Qoc2VsZiwgbG9uZyBpLCBsb25n IGopIG5vZXhjZXB0OiAgICMgTm90IGEgU2FnZSBtYXRyaXggb3BlcmF0aW9uCisrICAgIGNkZWYg aW5saW5lIHJvd19pbm5lcl9wcm9kdWN0KHNlbGYsIGxvbmcgaSwgbG9uZyBqKTogICAjIE5vdCBh IFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhl IGlubmVyIHByb2R1Y3QgYmV0d2VlbiByb3dzIGBgaWBgIGFuZCBgYGpgYC4KKyAgICAgICAgICIi IgorQEAgLTg3NSw3ICs4NzUsNyBAQCBjZGVmIGNsYXNzIEdlbmVyaWNNYXRyaXgoTGVhbk1hdHJp eCk6CisgICAgICAgICAgICAgcmVzICs9IHggKiB5CisgICAgICAgICByZXR1cm4gcmVzCisgCist ICAgIGNkZWYgTGVhbk1hdHJpeCBfbWF0cml4X3RpbWVzX21hdHJpeF8oc2VsZiwgTGVhbk1hdHJp eCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNkZWYgTGVhbk1hdHJpeCBfbWF0cml4X3RpbWVzX21h dHJpeF8oc2VsZiwgTGVhbk1hdHJpeCBvdGhlcik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJl dHVybiB0aGUgcHJvZHVjdCBgYHNlbGYgKiBvdGhlcmBgLgorICAgICAgICAgIiIiCitAQCAtMTA4 Miw3ICsxMDgyLDcgQEAgY2RlZiBjbGFzcyBCaW5hcnlNYXRyaXgoTGVhbk1hdHJpeCk6CisgICAg ICAgICAgICAgICAgICAgICBNW2ksIGpdID0gMQorICAgICAgICAgcmV0dXJuIE0KKyAKKy0gICAg Y2RlZiBMZWFuTWF0cml4IGNvcHkoc2VsZikgbm9leGNlcHQ6ICAgIyBEZXByZWNhdGVkIFNhZ2Ug bWF0cml4IG9wZXJhdGlvbgorKyAgICBjZGVmIExlYW5NYXRyaXggY29weShzZWxmKTogICAjIERl cHJlY2F0ZWQgU2FnZSBtYXRyaXggb3BlcmF0aW9uCisgICAgICAgICBjZGVmIEJpbmFyeU1hdHJp eCBCCisgICAgICAgICBjZGVmIGxvbmcgaQorICAgICAgICAgQiA9IEJpbmFyeU1hdHJpeChzZWxm Lm5yb3dzKCksIHNlbGYubmNvbHMoKSkKK0BAIC0xMTA5LDcgKzExMDksNyBAQCBjZGVmIGNsYXNz IEJpbmFyeU1hdHJpeChMZWFuTWF0cml4KToKKyAgICAgICAgICAgICBzZWxmLl9ucm93cyA9IGsK KyAgICAgICAgIHJldHVybiAwCisgCistICAgIGNkZWYgTGVhbk1hdHJpeCBzdGFjayhzZWxmLCBM ZWFuTWF0cml4IE1NKSBub2V4Y2VwdDoKKysgICAgY2RlZiBMZWFuTWF0cml4IHN0YWNrKHNlbGYs IExlYW5NYXRyaXggTU0pOgorICAgICAgICAgIiIiCisgICAgICAgICBHaXZlbiBgYEFgYCBhbmQg YGBCYGAsIHJldHVybgorICAgICAgICAgW0FdCitAQCAtMTEyMyw3ICsxMTIzLDcgQEAgY2RlZiBj bGFzcyBCaW5hcnlNYXRyaXgoTGVhbk1hdHJpeCk6CisgICAgICAgICAgICAgYml0c2V0X2NvcHko Ui5fTVtpICsgc2VsZi5ucm93cygpXSwgTS5fTVtpXSkKKyAgICAgICAgIHJldHVybiBSCisgCist ICAgIGNkZWYgTGVhbk1hdHJpeCBhdWdtZW50KHNlbGYsIExlYW5NYXRyaXggTU0pIG5vZXhjZXB0 OgorKyAgICBjZGVmIExlYW5NYXRyaXggYXVnbWVudChzZWxmLCBMZWFuTWF0cml4IE1NKToKKyAg ICAgICAgICIiIgorICAgICAgICAgR2l2ZW4gYGBBYGAgYW5kIGBgQmBgLCByZXR1cm4KKyAgICAg ICAgIFtBIEJdCitAQCAtMTEzNyw3ICsxMTM3LDcgQEAgY2RlZiBjbGFzcyBCaW5hcnlNYXRyaXgo TGVhbk1hdHJpeCk6CisgICAgICAgICAgICAgICAgIGJpdHNldF9zZXRfdG8oUi5fTVtpXSwgc2Vs Zi5uY29scygpICsgaiwgYml0c2V0X2luKE0uX01baV0sIGopKQorICAgICAgICAgcmV0dXJuIFIK KyAKKy0gICAgY2RlZiBMZWFuTWF0cml4IHByZXBlbmRfaWRlbnRpdHkoc2VsZikgbm9leGNlcHQ6 ICAgIyBOb3QgYSBTYWdlIG1hdHJpeCBvcGVyYXRpb24KKysgICAgY2RlZiBMZWFuTWF0cml4IHBy ZXBlbmRfaWRlbnRpdHkoc2VsZik6ICAgIyBOb3QgYSBTYWdlIG1hdHJpeCBvcGVyYXRpb24KKyAg ICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBtYXRyaXggb2J0YWluZWQgYnkgcHJlcGVu ZGluZyBhbiBpZGVudGl0eSBtYXRyaXguIFNwZWNpYWwgY2FzZSBvZiBgYGF1Z21lbnRgYC4KKyAg ICAgICAgICIiIgorQEAgLTExNDgsNyArMTE0OCw3IEBAIGNkZWYgY2xhc3MgQmluYXJ5TWF0cml4 KExlYW5NYXRyaXgpOgorICAgICAgICAgICAgIEEuc2V0KGksIGkpCisgICAgICAgICByZXR1cm4g QQorIAorLSAgICBjcGRlZiBiYXNlX3Jpbmcoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGJh c2VfcmluZyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGBHRigyKWAuCisg CitAQCAtMTE2Miw3ICsxMTYyLDcgQEAgY2RlZiBjbGFzcyBCaW5hcnlNYXRyaXgoTGVhbk1hdHJp eCk6CisgICAgICAgICBnbG9iYWwgR0YyCisgICAgICAgICByZXR1cm4gR0YyCisgCistICAgIGNw ZGVmIGNoYXJhY3RlcmlzdGljKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjaGFyYWN0ZXJp c3RpYyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBjaGFyYWN0ZXJp c3RpYyBvZiBgYHNlbGYuYmFzZV9yaW5nKClgYC4KKyAKK0BAIC0xMTc1LDcgKzExNzUsNyBAQCBj ZGVmIGNsYXNzIEJpbmFyeU1hdHJpeChMZWFuTWF0cml4KToKKyAgICAgICAgICIiIgorICAgICAg ICAgcmV0dXJuIDIKKyAKKy0gICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIGxvbmcgciwgbG9uZyBj KSBub2V4Y2VwdDoKKysgICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIGxvbmcgciwgbG9uZyBjKToK KyAgICAgICAgIGdsb2JhbCBHRjJfb25lLCBHRjJfemVybworICAgICAgICAgaWYgYml0c2V0X2lu KHNlbGYuX01bcl0sIGMpOgorICAgICAgICAgICAgIHJldHVybiBHRjJfb25lCitAQCAtMTI0Mywx MyArMTI0MywxMyBAQCBjZGVmIGNsYXNzIEJpbmFyeU1hdHJpeChMZWFuTWF0cml4KToKKyAgICAg ICAgIGJpdHNldF9jb3B5KHNlbGYuX01bal0sIHNlbGYuX3RlbXApCisgICAgICAgICByZXR1cm4g MAorIAorLSAgICBjZGVmIGlubGluZSBsaXN0IG5vbnplcm9fcG9zaXRpb25zX2luX3JvdyhzZWxm LCBsb25nIGkpIG5vZXhjZXB0OgorKyAgICBjZGVmIGlubGluZSBsaXN0IG5vbnplcm9fcG9zaXRp b25zX2luX3JvdyhzZWxmLCBsb25nIGkpOgorICAgICAgICAgIiIiCisgICAgICAgICBHZXQgY29v cmRpbmF0ZXMgb2Ygbm9uemVybyBlbnRyaWVzIG9mIHJvdyBgYHJgYC4KKyAgICAgICAgICIiIgor ICAgICAgICAgcmV0dXJuIGJpdHNldF9saXN0KHNlbGYuX01baV0pCisgCistICAgIGNkZWYgaW5s aW5lIGxpc3Qgcm93X3N1bShzZWxmLCBvYmplY3QgTCkgbm9leGNlcHQ6ICAgIyBOb3QgYSBTYWdl IG1hdHJpeCBvcGVyYXRpb24KKysgICAgY2RlZiBpbmxpbmUgbGlzdCByb3dfc3VtKHNlbGYsIG9i amVjdCBMKTogICAjIE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorICAgICAgICAgIiIiCisg ICAgICAgICBSZXR1cm4gdGhlIG1vZC0yIHN1bSBvZiB0aGUgcm93cyBpbmRleGVkIGJ5IGBgTGBg LgorICAgICAgICAgIiIiCitAQCAtMTI1OCw3ICsxMjU4LDcgQEAgY2RlZiBjbGFzcyBCaW5hcnlN YXRyaXgoTGVhbk1hdHJpeCk6CisgICAgICAgICAgICAgYml0c2V0X3N5bW1ldHJpY19kaWZmZXJl bmNlKHNlbGYuX3RlbXAsIHNlbGYuX3RlbXAsIHNlbGYuX01bbF0pCisgICAgICAgICByZXR1cm4g Yml0c2V0X2xpc3Qoc2VsZi5fdGVtcCkKKyAKKy0gICAgY2RlZiBpbmxpbmUgbGlzdCByb3dfdW5p b24oc2VsZiwgb2JqZWN0IEwpIG5vZXhjZXB0OiAgICMgTm90IGEgU2FnZSBtYXRyaXggb3BlcmF0 aW9uCisrICAgIGNkZWYgaW5saW5lIGxpc3Qgcm93X3VuaW9uKHNlbGYsIG9iamVjdCBMKTogICAj IE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1 cm4gdGhlIGBgb3JgYCBvZiB0aGUgcm93cyBpbmRleGVkIGJ5IGBgTGBgLgorICAgICAgICAgIiIi CitAQCAtMTI2Nyw3ICsxMjY3LDcgQEAgY2RlZiBjbGFzcyBCaW5hcnlNYXRyaXgoTGVhbk1hdHJp eCk6CisgICAgICAgICAgICAgYml0c2V0X3VuaW9uKHNlbGYuX3RlbXAsIHNlbGYuX3RlbXAsIHNl bGYuX01bbF0pCisgICAgICAgICByZXR1cm4gYml0c2V0X2xpc3Qoc2VsZi5fdGVtcCkKKyAKKy0g ICAgY2RlZiBMZWFuTWF0cml4IHRyYW5zcG9zZShzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBM ZWFuTWF0cml4IHRyYW5zcG9zZShzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJu IHRoZSB0cmFuc3Bvc2Ugb2YgdGhlIG1hdHJpeC4KKyAgICAgICAgICIiIgorQEAgLTEyODEsNyAr MTI4MSw3IEBAIGNkZWYgY2xhc3MgQmluYXJ5TWF0cml4KExlYW5NYXRyaXgpOgorICAgICAgICAg ICAgICAgICBqID0gYml0c2V0X25leHQoc2VsZi5fTVtpXSwgaiArIDEpCisgICAgICAgICByZXR1 cm4gVAorIAorLSAgICBjZGVmIExlYW5NYXRyaXggX21hdHJpeF90aW1lc19tYXRyaXhfKHNlbGYs IExlYW5NYXRyaXggb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjZGVmIExlYW5NYXRyaXggX21hdHJp eF90aW1lc19tYXRyaXhfKHNlbGYsIExlYW5NYXRyaXggb3RoZXIpOgorICAgICAgICAgIiIiCisg ICAgICAgICBSZXR1cm4gdGhlIHByb2R1Y3QgYGBzZWxmICogb3RoZXJgYC4KKyAgICAgICAgICIi IgorQEAgLTEyOTYsNyArMTI5Niw3IEBAIGNkZWYgY2xhc3MgQmluYXJ5TWF0cml4KExlYW5NYXRy aXgpOgorICAgICAgICAgICAgICAgICBqID0gYml0c2V0X25leHQoc2VsZi5fTVtpXSwgaiArIDEp CisgICAgICAgICByZXR1cm4gTQorIAorLSAgICBjZGVmIExlYW5NYXRyaXggbWF0cml4X2Zyb21f cm93c19hbmRfY29sdW1ucyhzZWxmLCByb3dzLCBjb2x1bW5zKSBub2V4Y2VwdDoKKysgICAgY2Rl ZiBMZWFuTWF0cml4IG1hdHJpeF9mcm9tX3Jvd3NfYW5kX2NvbHVtbnMoc2VsZiwgcm93cywgY29s dW1ucyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBzdWJtYXRyaXggaW5kZXhlZCBi eSBpbmRpY2F0ZWQgcm93cyBhbmQgY29sdW1ucy4KKyAgICAgICAgICIiIgorQEAgLTEzMDgsNyAr MTMwOCw3IEBAIGNkZWYgY2xhc3MgQmluYXJ5TWF0cml4KExlYW5NYXRyaXgpOgorICAgICAgICAg ICAgICAgICAgICAgYml0c2V0X2FkZChBLl9NW3JdLCBjKQorICAgICAgICAgcmV0dXJuIEEKKyAK Ky0gICAgY2RlZiBtYXRyaXhfZnJvbV9yb3dzX2FuZF9jb2x1bW5zX3Jlb3JkZXJlZChzZWxmLCBy b3dzLCBjb2x1bW5zKSBub2V4Y2VwdDoKKysgICAgY2RlZiBtYXRyaXhfZnJvbV9yb3dzX2FuZF9j b2x1bW5zX3Jlb3JkZXJlZChzZWxmLCByb3dzLCBjb2x1bW5zKToKKyAgICAgICAgICIiIgorICAg ICAgICAgUmV0dXJuIGEgc3VibWF0cml4IGluZGV4ZWQgYnkgaW5kaWNhdGVkIHJvd3MgYW5kIGNv bHVtbnMsIGFzIHdlbGwgYXMKKyAgICAgICAgIHRoZSBjb2x1bW4gb3JkZXIgb2YgdGhlIHJlc3Vs dGluZyBzdWJtYXRyaXguCitAQCAtMTM2NSw3ICsxMzY1LDcgQEAgY2RlZiBjbGFzcyBCaW5hcnlN YXRyaXgoTGVhbk1hdHJpeCk6CisgICAgICAgICBiaXRzZXRfZnJlZShtYXNrKQorICAgICAgICAg cmV0dXJuIEEsIG9yZGVyCisgCistICAgIGNkZWYgbGlzdCBfY2hhcmFjdGVyKHNlbGYsIGJpdHNl dF90IHgpIG5vZXhjZXB0OiAgICMgTm90IGEgU2FnZSBtYXRyaXggb3BlcmF0aW9uCisrICAgIGNk ZWYgbGlzdCBfY2hhcmFjdGVyKHNlbGYsIGJpdHNldF90IHgpOiAgICMgTm90IGEgU2FnZSBtYXRy aXggb3BlcmF0aW9uCisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgdmVjdG9yIG9m IGludGVyc2VjdGlvbiBsZW5ndGhzIG9mIHRoZSByb3dzIHdpdGggYGB4YGAuCisgICAgICAgICAi IiIKK0BAIC0xMzc2LDcgKzEzNzYsNyBAQCBjZGVmIGNsYXNzIEJpbmFyeU1hdHJpeChMZWFuTWF0 cml4KToKKyAgICAgICAgICAgICBJLmFwcGVuZChiaXRzZXRfbGVuKHNlbGYuX3RlbXApKQorICAg ICAgICAgcmV0dXJuIEkKKyAKKy0gICAgY2RlZiBCaW5hcnlNYXRyaXggX2Rpc3Rpbmd1aXNoX2J5 KHNlbGYsIEJpbmFyeU1hdHJpeCBQKSBub2V4Y2VwdDoKKysgICAgY2RlZiBCaW5hcnlNYXRyaXgg X2Rpc3Rpbmd1aXNoX2J5KHNlbGYsIEJpbmFyeU1hdHJpeCBQKToKKyAgICAgICAgICIiIgorICAg ICAgICAgSGVscGVyIG1ldGhvZCBmb3IgZXF1aXRhYmxlIHBhcnRpdGlvbi4KKyAgICAgICAgICIi IgorQEAgLTEzOTcsNyArMTM5Nyw3IEBAIGNkZWYgY2xhc3MgQmluYXJ5TWF0cml4KExlYW5NYXRy aXgpOgorICAgICAgICAgICAgIGkgKz0gMQorICAgICAgICAgcmV0dXJuIFEKKyAKKy0gICAgY2Rl ZiBCaW5hcnlNYXRyaXggX3NwbGljZV9ieShzZWxmLCBCaW5hcnlNYXRyaXggUCkgbm9leGNlcHQ6 CisrICAgIGNkZWYgQmluYXJ5TWF0cml4IF9zcGxpY2VfYnkoc2VsZiwgQmluYXJ5TWF0cml4IFAp OgorICAgICAgICAgIiIiCisgICAgICAgICBIZWxwZXIgbWV0aG9kIGZvciBlcXVpdGFibGUgcGFy dGl0aW9uLgorICAgICAgICAgIiIiCitAQCAtMTQxNCw3ICsxNDE0LDcgQEAgY2RlZiBjbGFzcyBC aW5hcnlNYXRyaXgoTGVhbk1hdHJpeCk6CisgICAgICAgICBRLnJlc2l6ZShyKQorICAgICAgICAg cmV0dXJuIFEKKyAKKy0gICAgY2RlZiBCaW5hcnlNYXRyaXggX2lzb2xhdGUoc2VsZiwgbG9uZyBq KSBub2V4Y2VwdDoKKysgICAgY2RlZiBCaW5hcnlNYXRyaXggX2lzb2xhdGUoc2VsZiwgbG9uZyBq KToKKyAgICAgICAgICIiIgorICAgICAgICAgSGVscGVyIG1ldGhvZCBmb3IgaXNvbW9ycGhpc20g dGVzdC4KKyAgICAgICAgICIiIgorQEAgLTE0MjcsNyArMTQyNyw3IEBAIGNkZWYgY2xhc3MgQmlu YXJ5TWF0cml4KExlYW5NYXRyaXgpOgorICAgICAgICAgYml0c2V0X2FkZChRLl9NW3NlbGYuX25y b3dzXSwgaikKKyAgICAgICAgIHJldHVybiBRCisgCistICAgIGNkZWYgQmluYXJ5TWF0cml4IGVx dWl0YWJsZV9wYXJ0aXRpb24oc2VsZiwgQmluYXJ5TWF0cml4IFA9Tm9uZSkgbm9leGNlcHQ6Cisr ICAgIGNkZWYgQmluYXJ5TWF0cml4IGVxdWl0YWJsZV9wYXJ0aXRpb24oc2VsZiwgQmluYXJ5TWF0 cml4IFA9Tm9uZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIENvbXB1dGUgYW4gZXF1aXRhYmxl IHBhcnRpdGlvbiBvZiB0aGUgY29sdW1ucy4KKyAgICAgICAgICIiIgorQEAgLTE3MTgsNyArMTcx OCw3IEBAIGNkZWYgY2xhc3MgVGVybmFyeU1hdHJpeChMZWFuTWF0cml4KToKKyAgICAgICAgICAg ICAgICAgTVtpLCBqXSA9IHNlbGYuZ2V0KGksIGopCisgICAgICAgICByZXR1cm4gTQorIAorLSAg ICBjZGVmIGdldF91bnNhZmUoc2VsZiwgbG9uZyByLCBsb25nIGMpIG5vZXhjZXB0OgorKyAgICBj ZGVmIGdldF91bnNhZmUoc2VsZiwgbG9uZyByLCBsb25nIGMpOgorICAgICAgICAgZ2xvYmFsIEdG M196ZXJvLCBHRjNfb25lLCBHRjNfbWludXNfb25lCisgICAgICAgICBpZiBub3QgYml0c2V0X2lu KHNlbGYuX00wW3JdLCBjKToKKyAgICAgICAgICAgICByZXR1cm4gR0YzX3plcm8KK0BAIC0xNzMw LDcgKzE3MzAsNyBAQCBjZGVmIGNsYXNzIFRlcm5hcnlNYXRyaXgoTGVhbk1hdHJpeCk6CisgICAg ICAgICBzZWxmLnNldChyLCBjLCB4KQorICAgICAgICAgcmV0dXJuIDAKKyAKKy0gICAgY2RlZiBM ZWFuTWF0cml4IGNvcHkoc2VsZikgbm9leGNlcHQ6ICAgIyBEZXByZWNhdGVkIFNhZ2UgbWF0cml4 IG9wZXJhdGlvbgorKyAgICBjZGVmIExlYW5NYXRyaXggY29weShzZWxmKTogICAjIERlcHJlY2F0 ZWQgU2FnZSBtYXRyaXggb3BlcmF0aW9uCisgICAgICAgICBjZGVmIFRlcm5hcnlNYXRyaXggVAor ICAgICAgICAgY2RlZiBsb25nIGkKKyAgICAgICAgIFQgPSBUZXJuYXJ5TWF0cml4KHNlbGYuX25y b3dzLCBzZWxmLl9uY29scykKK0BAIC0xNzY0LDcgKzE3NjQsNyBAQCBjZGVmIGNsYXNzIFRlcm5h cnlNYXRyaXgoTGVhbk1hdHJpeCk6CisgICAgICAgICAgICAgc2VsZi5fbnJvd3MgPSBrCisgICAg ICAgICByZXR1cm4gMAorIAorLSAgICBjZGVmIExlYW5NYXRyaXggc3RhY2soc2VsZiwgTGVhbk1h dHJpeCBNTSkgbm9leGNlcHQ6CisrICAgIGNkZWYgTGVhbk1hdHJpeCBzdGFjayhzZWxmLCBMZWFu TWF0cml4IE1NKToKKyAgICAgICAgIGNkZWYgVGVybmFyeU1hdHJpeCBSCisgICAgICAgICBjZGVm IFRlcm5hcnlNYXRyaXggTSA9IDxUZXJuYXJ5TWF0cml4ID4gTU0KKyAgICAgICAgIGNkZWYgbG9u ZyBpCitAQCAtMTc3NCw3ICsxNzc0LDcgQEAgY2RlZiBjbGFzcyBUZXJuYXJ5TWF0cml4KExlYW5N YXRyaXgpOgorICAgICAgICAgICAgIGJpdHNldF9jb3B5KFIuX00xW2kgKyBzZWxmLm5yb3dzKCld LCBNLl9NMVtpXSkKKyAgICAgICAgIHJldHVybiBSCisgCistICAgIGNkZWYgTGVhbk1hdHJpeCBh dWdtZW50KHNlbGYsIExlYW5NYXRyaXggTU0pIG5vZXhjZXB0OgorKyAgICBjZGVmIExlYW5NYXRy aXggYXVnbWVudChzZWxmLCBMZWFuTWF0cml4IE1NKToKKyAgICAgICAgIGNkZWYgVGVybmFyeU1h dHJpeCBSCisgICAgICAgICBjZGVmIFRlcm5hcnlNYXRyaXggTSA9IDxUZXJuYXJ5TWF0cml4ID4g TU0KKyAgICAgICAgIGNkZWYgbG9uZyBpLCBqCitAQCAtMTc4NSw3ICsxNzg1LDcgQEAgY2RlZiBj bGFzcyBUZXJuYXJ5TWF0cml4KExlYW5NYXRyaXgpOgorICAgICAgICAgICAgICAgICBiaXRzZXRf c2V0X3RvKFIuX00xW2ldLCBzZWxmLm5jb2xzKCkgKyBqLCBiaXRzZXRfaW4oTS5fTTFbaV0sIGop KQorICAgICAgICAgcmV0dXJuIFIKKyAKKy0gICAgY2RlZiBMZWFuTWF0cml4IHByZXBlbmRfaWRl bnRpdHkoc2VsZikgbm9leGNlcHQ6ICAgIyBOb3QgYSBTYWdlIG1hdHJpeCBvcGVyYXRpb24KKysg ICAgY2RlZiBMZWFuTWF0cml4IHByZXBlbmRfaWRlbnRpdHkoc2VsZik6ICAgIyBOb3QgYSBTYWdl IG1hdHJpeCBvcGVyYXRpb24KKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBtYXRy aXggb2J0YWluZWQgYnkgcHJlcGVuZGluZyBhbiBpZGVudGl0eSBtYXRyaXguCisgCitAQCAtMTc5 OSw3ICsxNzk5LDcgQEAgY2RlZiBjbGFzcyBUZXJuYXJ5TWF0cml4KExlYW5NYXRyaXgpOgorICAg ICAgICAgICAgIEEuc2V0KGksIGksIDEpCisgICAgICAgICByZXR1cm4gQQorIAorLSAgICBjcGRl ZiBiYXNlX3Jpbmcoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGJhc2VfcmluZyhzZWxmKToK KyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIEdGKDMpLgorIAorQEAgLTE4MTMsNyArMTgx Myw3IEBAIGNkZWYgY2xhc3MgVGVybmFyeU1hdHJpeChMZWFuTWF0cml4KToKKyAgICAgICAgIGds b2JhbCBHRjMKKyAgICAgICAgIHJldHVybiBHRjMKKyAKKy0gICAgY3BkZWYgY2hhcmFjdGVyaXN0 aWMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGNoYXJhY3RlcmlzdGljKHNlbGYpOgorICAg ICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGNoYXJhY3RlcmlzdGljIG9mIGBgc2VsZi5i YXNlX3JpbmcoKWBgLgorIAorQEAgLTE5NDIsMTMgKzE5NDIsMTMgQEAgY2RlZiBjbGFzcyBUZXJu YXJ5TWF0cml4KExlYW5NYXRyaXgpOgorICAgICAgICAgICAgICAgICAgICAgc2VsZi5yb3dfc3Vi cyhpLCB4KQorICAgICAgICAgcmV0dXJuIDAKKyAKKy0gICAgY2RlZiBsaXN0IG5vbnplcm9fcG9z aXRpb25zX2luX3JvdyhzZWxmLCBsb25nIHIpIG5vZXhjZXB0OgorKyAgICBjZGVmIGxpc3Qgbm9u emVyb19wb3NpdGlvbnNfaW5fcm93KHNlbGYsIGxvbmcgcik6CisgICAgICAgICAiIiIKKyAgICAg ICAgIEdldCBjb29yZGluYXRlcyBvZiBub256ZXJvIGVudHJpZXMgb2Ygcm93IGBgcmBgLgorICAg ICAgICAgIiIiCisgICAgICAgICByZXR1cm4gYml0c2V0X2xpc3Qoc2VsZi5fTTBbcl0pCisgCist ICAgIGNkZWYgTGVhbk1hdHJpeCB0cmFuc3Bvc2Uoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYg TGVhbk1hdHJpeCB0cmFuc3Bvc2Uoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVy biB0aGUgdHJhbnNwb3NlIG9mIHRoZSBtYXRyaXguCisgICAgICAgICAiIiIKK0BAIC0xOTY0LDcg KzE5NjQsNyBAQCBjZGVmIGNsYXNzIFRlcm5hcnlNYXRyaXgoTGVhbk1hdHJpeCk6CisgICAgICAg ICAgICAgICAgIGogPSBiaXRzZXRfbmV4dChzZWxmLl9NMFtpXSwgaiArIDEpCisgICAgICAgICBy ZXR1cm4gVAorIAorLSAgICBjZGVmIExlYW5NYXRyaXggX21hdHJpeF90aW1lc19tYXRyaXhfKHNl bGYsIExlYW5NYXRyaXggb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjZGVmIExlYW5NYXRyaXggX21h dHJpeF90aW1lc19tYXRyaXhfKHNlbGYsIExlYW5NYXRyaXggb3RoZXIpOgorICAgICAgICAgIiIi CisgICAgICAgICBSZXR1cm4gdGhlIHByb2R1Y3QgYGBzZWxmICogb3RoZXJgYC4KKyAgICAgICAg ICIiIgorQEAgLTE5ODQsNyArMTk4NCw3IEBAIGNkZWYgY2xhc3MgVGVybmFyeU1hdHJpeChMZWFu TWF0cml4KToKKyAgICAgICAgIE0ucmVzaXplKHNlbGYuX25yb3dzKQorICAgICAgICAgcmV0dXJu IE0KKyAKKy0gICAgY2RlZiBtYXRyaXhfZnJvbV9yb3dzX2FuZF9jb2x1bW5zX3Jlb3JkZXJlZChz ZWxmLCByb3dzLCBjb2x1bW5zKSBub2V4Y2VwdDoKKysgICAgY2RlZiBtYXRyaXhfZnJvbV9yb3dz X2FuZF9jb2x1bW5zX3Jlb3JkZXJlZChzZWxmLCByb3dzLCBjb2x1bW5zKToKKyAgICAgICAgICIi IgorICAgICAgICAgUmV0dXJuIGEgc3VibWF0cml4IGluZGV4ZWQgYnkgaW5kaWNhdGVkIHJvd3Mg YW5kIGNvbHVtbnMsIGFzIHdlbGwgYXMKKyAgICAgICAgIHRoZSBjb2x1bW4gb3JkZXIgb2YgdGhl IHJlc3VsdGluZyBzdWJtYXRyaXguCitAQCAtMjI5Niw3ICsyMjk2LDcgQEAgY2RlZiBjbGFzcyBR dWF0ZXJuYXJ5TWF0cml4KExlYW5NYXRyaXgpOgorICAgICAgICAgICAgICAgICBNW2ksIGpdID0g c2VsZi5nZXQoaSwgaikKKyAgICAgICAgIHJldHVybiBNCisgCistICAgIGNkZWYgaW5saW5lIGdl dChzZWxmLCBsb25nIHIsIGxvbmcgYykgbm9leGNlcHQ6ICAgIyBOb3QgYSBTYWdlIG1hdHJpeCBv cGVyYXRpb24KKysgICAgY2RlZiBpbmxpbmUgZ2V0KHNlbGYsIGxvbmcgciwgbG9uZyBjKTogICAj IE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorICAgICAgICAgaWYgYml0c2V0X2luKHNlbGYu X00wW3JdLCBjKToKKyAgICAgICAgICAgICBpZiBiaXRzZXRfaW4oc2VsZi5fTTFbcl0sIGMpOgor ICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5feF9vbmUKK0BAIC0yMzIzLDcgKzIzMjMsNyBA QCBjZGVmIGNsYXNzIFF1YXRlcm5hcnlNYXRyaXgoTGVhbk1hdHJpeCk6CisgICAgICAgICAgICAg Yml0c2V0X2FkZChzZWxmLl9NMVtyXSwgYykKKyAgICAgICAgIHJldHVybiAwCisgCistICAgIGNk ZWYgZ2V0X3Vuc2FmZShzZWxmLCBsb25nIHIsIGxvbmcgYykgbm9leGNlcHQ6CisrICAgIGNkZWYg Z2V0X3Vuc2FmZShzZWxmLCBsb25nIHIsIGxvbmcgYyk6CisgICAgICAgICByZXR1cm4gc2VsZi5n ZXQociwgYykKKyAKKyAgICAgY2RlZiBpbnQgc2V0X3Vuc2FmZShzZWxmLCBsb25nIHIsIGxvbmcg YywgeCkgZXhjZXB0IC0xOgorQEAgLTIzMzMsNyArMjMzMyw3IEBAIGNkZWYgY2xhc3MgUXVhdGVy bmFyeU1hdHJpeChMZWFuTWF0cml4KToKKyAgICAgY2RlZiBpbmxpbmUgYmludCBpc19ub256ZXJv KHNlbGYsIGxvbmcgciwgbG9uZyBjKSBleGNlcHQgLTI6ICAgIyBOb3QgYSBTYWdlIG1hdHJpeCBv cGVyYXRpb24KKyAgICAgICAgIHJldHVybiBiaXRzZXRfaW4oc2VsZi5fTTBbcl0sIGMpIG9yIGJp dHNldF9pbihzZWxmLl9NMVtyXSwgYykKKyAKKy0gICAgY2RlZiBMZWFuTWF0cml4IGNvcHkoc2Vs Zikgbm9leGNlcHQ6ICAgIyBEZXByZWNhdGVkIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorKyAgICBj ZGVmIExlYW5NYXRyaXggY29weShzZWxmKTogICAjIERlcHJlY2F0ZWQgU2FnZSBtYXRyaXggb3Bl cmF0aW9uCisgICAgICAgICBjZGVmIFF1YXRlcm5hcnlNYXRyaXggVAorICAgICAgICAgY2RlZiBs b25nIGkKKyAgICAgICAgIFQgPSBRdWF0ZXJuYXJ5TWF0cml4KHNlbGYuX25yb3dzLCBzZWxmLl9u Y29scywgcmluZz1zZWxmLl9nZjQpCitAQCAtMjM2Niw3ICsyMzY2LDcgQEAgY2RlZiBjbGFzcyBR dWF0ZXJuYXJ5TWF0cml4KExlYW5NYXRyaXgpOgorICAgICAgICAgICAgIHNlbGYuX25yb3dzID0g aworICAgICAgICAgcmV0dXJuIDAKKyAKKy0gICAgY2RlZiBMZWFuTWF0cml4IHN0YWNrKHNlbGYs IExlYW5NYXRyaXggTU0pIG5vZXhjZXB0OgorKyAgICBjZGVmIExlYW5NYXRyaXggc3RhY2soc2Vs ZiwgTGVhbk1hdHJpeCBNTSk6CisgICAgICAgICBjZGVmIFF1YXRlcm5hcnlNYXRyaXggUgorICAg ICAgICAgY2RlZiBRdWF0ZXJuYXJ5TWF0cml4IE0gPSA8UXVhdGVybmFyeU1hdHJpeCA+IE1NCisg ICAgICAgICBjZGVmIGxvbmcgaQorQEAgLTIzNzYsNyArMjM3Niw3IEBAIGNkZWYgY2xhc3MgUXVh dGVybmFyeU1hdHJpeChMZWFuTWF0cml4KToKKyAgICAgICAgICAgICBiaXRzZXRfY29weShSLl9N MVtpICsgc2VsZi5ucm93cygpXSwgTS5fTTFbaV0pCisgICAgICAgICByZXR1cm4gUgorIAorLSAg ICBjZGVmIExlYW5NYXRyaXggYXVnbWVudChzZWxmLCBMZWFuTWF0cml4IE1NKSBub2V4Y2VwdDoK KysgICAgY2RlZiBMZWFuTWF0cml4IGF1Z21lbnQoc2VsZiwgTGVhbk1hdHJpeCBNTSk6CisgICAg ICAgICBjZGVmIFF1YXRlcm5hcnlNYXRyaXggUgorICAgICAgICAgY2RlZiBRdWF0ZXJuYXJ5TWF0 cml4IE0gPSA8UXVhdGVybmFyeU1hdHJpeCA+IE1NCisgICAgICAgICBjZGVmIGxvbmcgaSwgagor QEAgLTIzODcsNyArMjM4Nyw3IEBAIGNkZWYgY2xhc3MgUXVhdGVybmFyeU1hdHJpeChMZWFuTWF0 cml4KToKKyAgICAgICAgICAgICAgICAgYml0c2V0X3NldF90byhSLl9NMVtpXSwgc2VsZi5uY29s cygpICsgaiwgYml0c2V0X2luKE0uX00xW2ldLCBqKSkKKyAgICAgICAgIHJldHVybiBSCisgCist ICAgIGNkZWYgTGVhbk1hdHJpeCBwcmVwZW5kX2lkZW50aXR5KHNlbGYpIG5vZXhjZXB0OiAgICMg Tm90IGEgU2FnZSBtYXRyaXggb3BlcmF0aW9uCisrICAgIGNkZWYgTGVhbk1hdHJpeCBwcmVwZW5k X2lkZW50aXR5KHNlbGYpOiAgICMgTm90IGEgU2FnZSBtYXRyaXggb3BlcmF0aW9uCisgICAgICAg ICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgbWF0cml4IG9idGFpbmVkIGJ5IHByZXBlbmRpbmcg YW4gaWRlbnRpdHkgbWF0cml4LiBTcGVjaWFsCisgICAgICAgICBjYXNlIG9mIGBgYXVnbWVudGBg LgorQEAgLTI0MDAsNyArMjQwMCw3IEBAIGNkZWYgY2xhc3MgUXVhdGVybmFyeU1hdHJpeChMZWFu TWF0cml4KToKKyAgICAgICAgICAgICBBLnNldChpLCBpLCAxKQorICAgICAgICAgcmV0dXJuIEEK KyAKKy0gICAgY3BkZWYgYmFzZV9yaW5nKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBiYXNl X3Jpbmcoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBjb3B5IG9mIGBHRig0 KWAgd2l0aCBhcHByb3ByaWF0ZSBnZW5lcmF0b3IuCisgCitAQCAtMjQxMyw3ICsyNDEzLDcgQEAg Y2RlZiBjbGFzcyBRdWF0ZXJuYXJ5TWF0cml4KExlYW5NYXRyaXgpOgorICAgICAgICAgIiIiCisg ICAgICAgICByZXR1cm4gc2VsZi5fZ2Y0CisgCistICAgIGNwZGVmIGNoYXJhY3RlcmlzdGljKHNl bGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjaGFyYWN0ZXJpc3RpYyhzZWxmKToKKyAgICAgICAg ICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBjaGFyYWN0ZXJpc3RpYyBvZiBgYHNlbGYuYmFzZV9y aW5nKClgYC4KKyAKK0BAIC0yNDMzLDcgKzI0MzMsNyBAQCBjZGVmIGNsYXNzIFF1YXRlcm5hcnlN YXRyaXgoTGVhbk1hdHJpeCk6CisgICAgICAgICBiaXRzZXRfdW5pb24oc2VsZi5fdCwgc2VsZi5f TTBbaV0sIHNlbGYuX00xW2ldKQorICAgICAgICAgcmV0dXJuIGJpdHNldF9sZW4oc2VsZi5fdCkK KyAKKy0gICAgY2RlZiBpbmxpbmUgcm93X2lubmVyX3Byb2R1Y3Qoc2VsZiwgbG9uZyBpLCBsb25n IGopIG5vZXhjZXB0OiAgICMgTm90IGEgU2FnZSBtYXRyaXggb3BlcmF0aW9uCisrICAgIGNkZWYg aW5saW5lIHJvd19pbm5lcl9wcm9kdWN0KHNlbGYsIGxvbmcgaSwgbG9uZyBqKTogICAjIE5vdCBh IFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhl IGlubmVyIHByb2R1Y3QgYmV0d2VlbiByb3dzIGBgaWBgIGFuZCBgYGpgYC4KKyAgICAgICAgICIi IgorQEAgLTI1MjUsMTQgKzI1MjUsMTQgQEAgY2RlZiBjbGFzcyBRdWF0ZXJuYXJ5TWF0cml4KExl YW5NYXRyaXgpOgorICAgICAgICAgICAgICAgICBzZWxmLmFkZF9tdWx0aXBsZV9vZl9yb3dfYyhp LCB4LCBzZWxmLmdldChpLCB5KSwgMCkKKyAgICAgICAgIHJldHVybiAwCisgCistICAgIGNkZWYg bGlzdCBub256ZXJvX3Bvc2l0aW9uc19pbl9yb3coc2VsZiwgbG9uZyByKSBub2V4Y2VwdDoKKysg ICAgY2RlZiBsaXN0IG5vbnplcm9fcG9zaXRpb25zX2luX3JvdyhzZWxmLCBsb25nIHIpOgorICAg ICAgICAgIiIiCisgICAgICAgICBHZXQgY29vcmRpbmF0ZXMgb2Ygbm9uemVybyBlbnRyaWVzIG9m IHJvdyBgYHJgYC4KKyAgICAgICAgICIiIgorICAgICAgICAgYml0c2V0X3VuaW9uKHNlbGYuX3Qs IHNlbGYuX00wW3JdLCBzZWxmLl9NMVtyXSkKKyAgICAgICAgIHJldHVybiBiaXRzZXRfbGlzdChz ZWxmLl90KQorIAorLSAgICBjZGVmIExlYW5NYXRyaXggdHJhbnNwb3NlKHNlbGYpIG5vZXhjZXB0 OgorKyAgICBjZGVmIExlYW5NYXRyaXggdHJhbnNwb3NlKHNlbGYpOgorICAgICAgICAgIiIiCisg ICAgICAgICBSZXR1cm4gdGhlIHRyYW5zcG9zZSBvZiB0aGUgbWF0cml4LgorICAgICAgICAgIiIi CitAQCAtMjU1Miw3ICsyNTUyLDcgQEAgY2RlZiBjbGFzcyBRdWF0ZXJuYXJ5TWF0cml4KExlYW5N YXRyaXgpOgorICAgICAgICAgZm9yIGkgaW4gcmFuZ2Uoc2VsZi5fbnJvd3MpOgorICAgICAgICAg ICAgIGJpdHNldF9zeW1tZXRyaWNfZGlmZmVyZW5jZShzZWxmLl9NMFtpXSwgc2VsZi5fTTBbaV0s IHNlbGYuX00xW2ldKQorIAorLSAgICBjZGVmIExlYW5NYXRyaXggX21hdHJpeF90aW1lc19tYXRy aXhfKHNlbGYsIExlYW5NYXRyaXggb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjZGVmIExlYW5NYXRy aXggX21hdHJpeF90aW1lc19tYXRyaXhfKHNlbGYsIExlYW5NYXRyaXggb3RoZXIpOgorICAgICAg ICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHByb2R1Y3QgYGBzZWxmICogb3RoZXJgYC4KKyAg ICAgICAgICIiIgorQEAgLTI1NjgsNyArMjU2OCw3IEBAIGNkZWYgY2xhc3MgUXVhdGVybmFyeU1h dHJpeChMZWFuTWF0cml4KToKKyAgICAgICAgIE0ucmVzaXplKHNlbGYuX25yb3dzKQorICAgICAg ICAgcmV0dXJuIE0KKyAKKy0gICAgY2RlZiBtYXRyaXhfZnJvbV9yb3dzX2FuZF9jb2x1bW5zX3Jl b3JkZXJlZChzZWxmLCByb3dzLCBjb2x1bW5zKSBub2V4Y2VwdDoKKysgICAgY2RlZiBtYXRyaXhf ZnJvbV9yb3dzX2FuZF9jb2x1bW5zX3Jlb3JkZXJlZChzZWxmLCByb3dzLCBjb2x1bW5zKToKKyAg ICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGEgc3VibWF0cml4IGluZGV4ZWQgYnkgaW5kaWNh dGVkIHJvd3MgYW5kIGNvbHVtbnMsIGFzIHdlbGwgYXMKKyAgICAgICAgIHRoZSBjb2x1bW4gb3Jk ZXIgb2YgdGhlIHJlc3VsdGluZyBzdWJtYXRyaXguCitAQCAtMjcyNCw3ICsyNzI0LDcgQEAgY2Rl ZiBjbGFzcyBRdWF0ZXJuYXJ5TWF0cml4KExlYW5NYXRyaXgpOgorICAgICAgICAgZGF0YSA9IChz ZWxmLm5yb3dzKCksIHNlbGYubmNvbHMoKSwgcmluZywgdmVyc2lvbkIsIHNpemUsIGxpbWJzLCBs b25nc2l6ZSwgTTAsIE0xKQorICAgICAgICAgcmV0dXJuIHNhZ2UubWF0cm9pZHMudW5waWNrbGlu Zy51bnBpY2tsZV9xdWF0ZXJuYXJ5X21hdHJpeCwgKHZlcnNpb24sIGRhdGEpCisgCistY3BkZWYg R2VuZXJpY01hdHJpeCBnZW5lcmljX2lkZW50aXR5KG4sIHJpbmcpIG5vZXhjZXB0OgorK2NwZGVm IEdlbmVyaWNNYXRyaXggZ2VuZXJpY19pZGVudGl0eShuLCByaW5nKToKKyAgICAgIiIiCisgICAg IFJldHVybiBhIEdlbmVyaWNNYXRyaXggaW5zdGFuY2UgY29udGFpbmluZyB0aGUgYG4gXHRpbWVz IG5gIGlkZW50aXR5CisgICAgIG1hdHJpeCBvdmVyIGBgcmluZ2BgLgorQEAgLTI4NTIsNyArMjg1 Miw3IEBAIGNkZWYgY2xhc3MgUGx1c01pbnVzT25lTWF0cml4KExlYW5NYXRyaXgpOgorICAgICBj ZGVmIGlubGluZSB2b2lkIHNldChzZWxmLCBsb25nIHIsIGxvbmcgYywgaW50IHgpIG5vZXhjZXB0 OiAgICMgTm90IGEgU2FnZSBtYXRyaXggb3BlcmF0aW9uCisgICAgICAgICBzZWxmLl9lbnRyaWVz W3IgKiBzZWxmLl9uY29scyArIGNdID0geAorIAorLSAgICBjZGVmIGdldF91bnNhZmUoc2VsZiwg bG9uZyByLCBsb25nIGMpIG5vZXhjZXB0OgorKyAgICBjZGVmIGdldF91bnNhZmUoc2VsZiwgbG9u ZyByLCBsb25nIGMpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYSBTYWdlIEludGVn ZXIsIGZvciBzYWZldHkgZG93biB0aGUgbGluZSB3aGVuIGRpdmlkaW5nLgorIAorQEAgLTI4ODEs NyArMjg4MSw3IEBAIGNkZWYgY2xhc3MgUGx1c01pbnVzT25lTWF0cml4KExlYW5NYXRyaXgpOgor ICAgICBjZGVmIGJpbnQgaXNfbm9uemVybyhzZWxmLCBsb25nIHIsIGxvbmcgYykgZXhjZXB0IC0y OiAgICMgTm90IGEgU2FnZSBtYXRyaXggb3BlcmF0aW9uCisgICAgICAgICByZXR1cm4gc2VsZi5n ZXQociwgYykgIT0gMAorIAorLSAgICBjZGVmIExlYW5NYXRyaXggY29weShzZWxmKSBub2V4Y2Vw dDogICAjIERlcHJlY2F0ZWQgU2FnZSBtYXRyaXggb3BlcmF0aW9uCisrICAgIGNkZWYgTGVhbk1h dHJpeCBjb3B5KHNlbGYpOiAgICMgRGVwcmVjYXRlZCBTYWdlIG1hdHJpeCBvcGVyYXRpb24KKyAg ICAgICAgIGNkZWYgUGx1c01pbnVzT25lTWF0cml4IE0gPSBQbHVzTWludXNPbmVNYXRyaXgoc2Vs Zi5fbnJvd3MsIHNlbGYuX25jb2xzKQorICAgICAgICAgbWVtY3B5KE0uX2VudHJpZXMsIHNlbGYu X2VudHJpZXMsIHNlbGYuX25yb3dzICogc2VsZi5fbmNvbHMgKiBzaXplb2YoaW50KSkKKyAgICAg ICAgIHJldHVybiBNCitAQCAtMjg5OSw3ICsyODk5LDcgQEAgY2RlZiBjbGFzcyBQbHVzTWludXNP bmVNYXRyaXgoTGVhbk1hdHJpeCk6CisgICAgICAgICBzZWxmLl9ucm93cyA9IGsKKyAgICAgICAg IHJldHVybiAwCisgCistICAgIGNkZWYgTGVhbk1hdHJpeCBzdGFjayhzZWxmLCBMZWFuTWF0cml4 IE0pIG5vZXhjZXB0OgorKyAgICBjZGVmIExlYW5NYXRyaXggc3RhY2soc2VsZiwgTGVhbk1hdHJp eCBNKToKKyAgICAgICAgICIiIgorICAgICAgICAgV2FybmluZzogYXNzdW1lcyBgYE1gYCBpcyBh IFBsdXNNaW51c09uZU1hdHJpeCBpbnN0YW5jZSBvZiByaWdodAorICAgICAgICAgZGltZW5zaW9u cyEKK0BAIC0yOTEwLDcgKzI5MTAsNyBAQCBjZGVmIGNsYXNzIFBsdXNNaW51c09uZU1hdHJpeChM ZWFuTWF0cml4KToKKyAgICAgICAgIG1lbWNweShBLl9lbnRyaWVzICsgc2VsZi5fbnJvd3MgKiBz ZWxmLl9uY29scywgKDxQbHVzTWludXNPbmVNYXRyaXg+TSkuX2VudHJpZXMsIE0ubnJvd3MoKSAq IE0ubmNvbHMoKSAqIHNpemVvZihpbnQpKQorICAgICAgICAgcmV0dXJuIEEKKyAKKy0gICAgY2Rl ZiBMZWFuTWF0cml4IGF1Z21lbnQoc2VsZiwgTGVhbk1hdHJpeCBNKSBub2V4Y2VwdDoKKysgICAg Y2RlZiBMZWFuTWF0cml4IGF1Z21lbnQoc2VsZiwgTGVhbk1hdHJpeCBNKToKKyAgICAgICAgICIi IgorICAgICAgICAgV2FybmluZzogYXNzdW1lcyBgYE1gYCBpcyBhIFBsdXNNaW51c09uZU1hdHJp eCBpbnN0YW5jZSEKKyAgICAgICAgICIiIgorQEAgLTI5MjMsNyArMjkyMyw3IEBAIGNkZWYgY2xh c3MgUGx1c01pbnVzT25lTWF0cml4KExlYW5NYXRyaXgpOgorICAgICAgICAgICAgIG1lbWNweShB Ll9lbnRyaWVzICsgKGkgKiBBLl9uY29scyArIHNlbGYuX25jb2xzKSwgKDxQbHVzTWludXNPbmVN YXRyaXg+TSkuX2VudHJpZXMgKyBpICogTW4sIE1uICogc2l6ZW9mKGludCkpCisgICAgICAgICBy ZXR1cm4gQQorIAorLSAgICBjZGVmIExlYW5NYXRyaXggcHJlcGVuZF9pZGVudGl0eShzZWxmKSBu b2V4Y2VwdDogICAjIE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorKyAgICBjZGVmIExlYW5N YXRyaXggcHJlcGVuZF9pZGVudGl0eShzZWxmKTogICAjIE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJh dGlvbgorICAgICAgICAgY2RlZiBQbHVzTWludXNPbmVNYXRyaXggQSA9IFBsdXNNaW51c09uZU1h dHJpeChzZWxmLl9ucm93cywgc2VsZi5fbmNvbHMgKyBzZWxmLl9ucm93cywgcmluZz1zZWxmLl9i YXNlX3JpbmcpCisgICAgICAgICBjZGVmIGxvbmcgaQorICAgICAgICAgZm9yIGkgaW4gcmFuZ2Uo c2VsZi5fbnJvd3MpOgorQEAgLTI5MzEsNyArMjkzMSw3IEBAIGNkZWYgY2xhc3MgUGx1c01pbnVz T25lTWF0cml4KExlYW5NYXRyaXgpOgorICAgICAgICAgICAgIG1lbWNweShBLl9lbnRyaWVzICsg KGkgKiBBLl9uY29scyArIHNlbGYuX25yb3dzKSwgc2VsZi5fZW50cmllcyArIGkgKiBzZWxmLl9u Y29scywgc2VsZi5fbmNvbHMgKiBzaXplb2YoaW50KSkKKyAgICAgICAgIHJldHVybiBBCisgCist ICAgIGNwZGVmIGJhc2VfcmluZyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgYmFzZV9yaW5n KHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGJhc2UgcmluZyBvZiBg YHNlbGZgYC4KKyAKK0BAIC0yOTQ0LDcgKzI5NDQsNyBAQCBjZGVmIGNsYXNzIFBsdXNNaW51c09u ZU1hdHJpeChMZWFuTWF0cml4KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIFpaCisg CistICAgIGNwZGVmIGNoYXJhY3RlcmlzdGljKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBj aGFyYWN0ZXJpc3RpYyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBj aGFyYWN0ZXJpc3RpYyBvZiBgYHNlbGYuYmFzZV9yaW5nKClgYC4KKyAKK0BAIC0yOTY4LDcgKzI5 NjgsNyBAQCBjZGVmIGNsYXNzIFBsdXNNaW51c09uZU1hdHJpeChMZWFuTWF0cml4KToKKyAgICAg ICAgICAgICAgICAgcmVzICs9IDEKKyAgICAgICAgIHJldHVybiByZXMKKyAKKy0gICAgY2RlZiBp bmxpbmUgcm93X2lubmVyX3Byb2R1Y3Qoc2VsZiwgbG9uZyBpLCBsb25nIGopIG5vZXhjZXB0OiAg ICMgTm90IGEgU2FnZSBtYXRyaXggb3BlcmF0aW9uCisrICAgIGNkZWYgaW5saW5lIHJvd19pbm5l cl9wcm9kdWN0KHNlbGYsIGxvbmcgaSwgbG9uZyBqKTogICAjIE5vdCBhIFNhZ2UgbWF0cml4IG9w ZXJhdGlvbgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGlubmVyIHByb2R1Y3Qg YmV0d2VlbiByb3dzIGBgaWBgIGFuZCBgYGpgYC4KKyAgICAgICAgICIiIgorQEAgLTMwNTMsNyAr MzA1Myw3IEBAIGNkZWYgY2xhc3MgUGx1c01pbnVzT25lTWF0cml4KExlYW5NYXRyaXgpOgorICAg ICAgICAgICAgICAgICBzZWxmLmFkZF9tdWx0aXBsZV9vZl9yb3dfYyhpLCB4LCAtcywgMCkKKyAg ICAgICAgIHJldHVybiAwCisgCistICAgIGNkZWYgbGlzdCBub256ZXJvX3Bvc2l0aW9uc19pbl9y b3coc2VsZiwgbG9uZyByKSBub2V4Y2VwdDoKKysgICAgY2RlZiBsaXN0IG5vbnplcm9fcG9zaXRp b25zX2luX3JvdyhzZWxmLCBsb25nIHIpOgorICAgICAgICAgIiIiCisgICAgICAgICBHZXQgY29v cmRpbmF0ZXMgb2Ygbm9uemVybyBlbnRyaWVzIG9mIHJvdyBgYHJgYC4KKyAgICAgICAgICIiIgor QEAgLTMwNjQsNyArMzA2NCw3IEBAIGNkZWYgY2xhc3MgUGx1c01pbnVzT25lTWF0cml4KExlYW5N YXRyaXgpOgorICAgICAgICAgICAgICAgICByZXMuYXBwZW5kKGogLSByICogc2VsZi5fbmNvbHMp CisgICAgICAgICByZXR1cm4gcmVzCisgCistICAgIGNkZWYgTGVhbk1hdHJpeCB0cmFuc3Bvc2Uo c2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgTGVhbk1hdHJpeCB0cmFuc3Bvc2Uoc2VsZik6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgdHJhbnNwb3NlIG9mIHRoZSBtYXRyaXgu CisgICAgICAgICAiIiIKK0BAIC0zMDc2LDcgKzMwNzYsNyBAQCBjZGVmIGNsYXNzIFBsdXNNaW51 c09uZU1hdHJpeChMZWFuTWF0cml4KToKKyAgICAgICAgICAgICAgICAgQS5zZXQoaiwgaSwgc2Vs Zi5nZXQoaSwgaikpCisgICAgICAgICByZXR1cm4gQQorIAorLSAgICBjZGVmIExlYW5NYXRyaXgg X21hdHJpeF90aW1lc19tYXRyaXhfKHNlbGYsIExlYW5NYXRyaXggb3RoZXIpIG5vZXhjZXB0Ogor KyAgICBjZGVmIExlYW5NYXRyaXggX21hdHJpeF90aW1lc19tYXRyaXhfKHNlbGYsIExlYW5NYXRy aXggb3RoZXIpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHByb2R1Y3QgYGBz ZWxmICogb3RoZXJgYC4KKyAgICAgICAgICIiIgorQEAgLTMwOTMsNyArMzA5Myw3IEBAIGNkZWYg Y2xhc3MgUGx1c01pbnVzT25lTWF0cml4KExlYW5NYXRyaXgpOgorICAgICAgICAgICAgICAgICBB LnNldChpLCBqLCBzKQorICAgICAgICAgcmV0dXJuIEEKKyAKKy0gICAgY2RlZiBsaXN0IGdhdXNz X2pvcmRhbl9yZWR1Y2Uoc2VsZiwgY29sdW1ucykgbm9leGNlcHQ6ICAgIyBOb3QgYSBTYWdlIG1h dHJpeCBvcGVyYXRpb24KKysgICAgY2RlZiBsaXN0IGdhdXNzX2pvcmRhbl9yZWR1Y2Uoc2VsZiwg Y29sdW1ucyk6ICAgIyBOb3QgYSBTYWdlIG1hdHJpeCBvcGVyYXRpb24KKyAgICAgICAgICIiIgor ICAgICAgICAgUm93LXJlZHVjZSBzbyB0aGUgbGV4aWNvZ3JhcGhpY2FsbHkgZmlyc3QgYmFzaXMg aW5kZXhlcyBhbiBpZGVudGl0eQorICAgICAgICAgc3VibWF0cml4LgorQEAgLTMyOTksNyArMzI5 OSw3IEBAIGNkZWYgY2xhc3MgUmF0aW9uYWxNYXRyaXgoTGVhbk1hdHJpeCk6CisgICAgIGNkZWYg aW5saW5lIHZvaWQgc2V0KHNlbGYsIGxvbmcgciwgbG9uZyBjLCBtcHFfdCB4KSBub2V4Y2VwdDog ICAjIE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorICAgICAgICAgbXBxX3NldChzZWxmLl9l bnRyaWVzW3IgKiBzZWxmLl9uY29scyArIGNdLCB4KQorIAorLSAgICBjZGVmIGdldF91bnNhZmUo c2VsZiwgbG9uZyByLCBsb25nIGMpIG5vZXhjZXB0OgorKyAgICBjZGVmIGdldF91bnNhZmUoc2Vs ZiwgbG9uZyByLCBsb25nIGMpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYSBTYWdl IEludGVnZXIsIGZvciBzYWZldHkgZG93biB0aGUgbGluZSB3aGVuIGRpdmlkaW5nLgorIAorQEAg LTMzMzAsNyArMzMzMCw3IEBAIGNkZWYgY2xhc3MgUmF0aW9uYWxNYXRyaXgoTGVhbk1hdHJpeCk6 CisgICAgIGNkZWYgYmludCBpc19ub256ZXJvKHNlbGYsIGxvbmcgciwgbG9uZyBjKSBleGNlcHQg LTI6ICAgIyBOb3QgYSBTYWdlIG1hdHJpeCBvcGVyYXRpb24KKyAgICAgICAgIHJldHVybiBtcHFf c2duKHNlbGYuX2VudHJpZXNbc2VsZi5pbmRleChyLCBjKV0pICE9IDAKKyAKKy0gICAgY2RlZiBM ZWFuTWF0cml4IGNvcHkoc2VsZikgbm9leGNlcHQ6ICAgIyBEZXByZWNhdGVkIFNhZ2UgbWF0cml4 IG9wZXJhdGlvbgorKyAgICBjZGVmIExlYW5NYXRyaXggY29weShzZWxmKTogICAjIERlcHJlY2F0 ZWQgU2FnZSBtYXRyaXggb3BlcmF0aW9uCisgICAgICAgICBjZGVmIFJhdGlvbmFsTWF0cml4IE0g PSBSYXRpb25hbE1hdHJpeChzZWxmLl9ucm93cywgc2VsZi5fbmNvbHMpCisgICAgICAgICBjZGVm IGxvbmcgaQorICAgICAgICAgZm9yIGkgaW4gcmFuZ2Uoc2VsZi5fbnJvd3MgKiBzZWxmLl9uY29s cyk6CitAQCAtMzM1Niw3ICszMzU2LDcgQEAgY2RlZiBjbGFzcyBSYXRpb25hbE1hdHJpeChMZWFu TWF0cml4KToKKyAgICAgICAgIHNlbGYuX25yb3dzID0gaworICAgICAgICAgcmV0dXJuIDAKKyAK Ky0gICAgY2RlZiBMZWFuTWF0cml4IHN0YWNrKHNlbGYsIExlYW5NYXRyaXggTSkgbm9leGNlcHQ6 CisrICAgIGNkZWYgTGVhbk1hdHJpeCBzdGFjayhzZWxmLCBMZWFuTWF0cml4IE0pOgorICAgICAg ICAgIiIiCisgICAgICAgICBXYXJuaW5nOiBhc3N1bWVzIGBgTWBgIGlzIGEgUmF0aW9uYWxNYXRy aXggaW5zdGFuY2Ugb2YgcmlnaHQKKyAgICAgICAgIGRpbWVuc2lvbnMhCitAQCAtMzM3MSw3ICsz MzcxLDcgQEAgY2RlZiBjbGFzcyBSYXRpb25hbE1hdHJpeChMZWFuTWF0cml4KToKKyAgICAgICAg ICAgICBtcHFfc2V0KEEuX2VudHJpZXNbbCtpXSwgKDxSYXRpb25hbE1hdHJpeD5NKS5fZW50cmll c1tpXSkKKyAgICAgICAgIHJldHVybiBBCisgCistICAgIGNkZWYgTGVhbk1hdHJpeCBhdWdtZW50 KHNlbGYsIExlYW5NYXRyaXggTSkgbm9leGNlcHQ6CisrICAgIGNkZWYgTGVhbk1hdHJpeCBhdWdt ZW50KHNlbGYsIExlYW5NYXRyaXggTSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFdhcm5pbmc6 IGFzc3VtZXMgYGBNYGAgaXMgYSBSYXRpb25hbE1hdHJpeCBpbnN0YW5jZSEKKyAgICAgICAgICIi IgorQEAgLTMzODUsNyArMzM4NSw3IEBAIGNkZWYgY2xhc3MgUmF0aW9uYWxNYXRyaXgoTGVhbk1h dHJpeCk6CisgICAgICAgICAgICAgICAgIG1wcV9zZXQoQS5fZW50cmllc1tpKkEuX25jb2xzICsg c2VsZi5fbmNvbHMgKyBqXSwgKDxSYXRpb25hbE1hdHJpeD5NKS5fZW50cmllc1tpKk1uICsgal0p CisgICAgICAgICByZXR1cm4gQQorIAorLSAgICBjZGVmIExlYW5NYXRyaXggcHJlcGVuZF9pZGVu dGl0eShzZWxmKSBub2V4Y2VwdDogICAjIE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorKyAg ICBjZGVmIExlYW5NYXRyaXggcHJlcGVuZF9pZGVudGl0eShzZWxmKTogICAjIE5vdCBhIFNhZ2Ug bWF0cml4IG9wZXJhdGlvbgorICAgICAgICAgY2RlZiBSYXRpb25hbE1hdHJpeCBBID0gUmF0aW9u YWxNYXRyaXgoc2VsZi5fbnJvd3MsIHNlbGYuX25jb2xzICsgc2VsZi5fbnJvd3MpCisgICAgICAg ICBjZGVmIGxvbmcgaSwgagorICAgICAgICAgZm9yIGkgaW4gcmFuZ2Uoc2VsZi5fbnJvd3MpOgor QEAgLTMzOTQsNyArMzM5NCw3IEBAIGNkZWYgY2xhc3MgUmF0aW9uYWxNYXRyaXgoTGVhbk1hdHJp eCk6CisgICAgICAgICAgICAgICAgIG1wcV9zZXQoQS5fZW50cmllc1tBLmluZGV4KGksc2VsZi5f bnJvd3MraildLCBzZWxmLl9lbnRyaWVzW3NlbGYuaW5kZXgoaSxqKV0pCisgICAgICAgICByZXR1 cm4gQQorIAorLSAgICBjcGRlZiBiYXNlX3Jpbmcoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVm IGJhc2VfcmluZyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBiYXNl IHJpbmcgb2YgYGBzZWxmYGAuCisgCitAQCAtMzQwNyw3ICszNDA3LDcgQEAgY2RlZiBjbGFzcyBS YXRpb25hbE1hdHJpeChMZWFuTWF0cml4KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJu IFFRCisgCistICAgIGNwZGVmIGNoYXJhY3RlcmlzdGljKHNlbGYpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBjaGFyYWN0ZXJpc3RpYyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJu IHRoZSBjaGFyYWN0ZXJpc3RpYyBvZiBgYHNlbGYuYmFzZV9yaW5nKClgYC4KKyAKK0BAIC0zNDMx LDcgKzM0MzEsNyBAQCBjZGVmIGNsYXNzIFJhdGlvbmFsTWF0cml4KExlYW5NYXRyaXgpOgorICAg ICAgICAgICAgICAgICByZXMgKz0gMQorICAgICAgICAgcmV0dXJuIHJlcworIAorLSAgICBjZGVm IGlubGluZSByb3dfaW5uZXJfcHJvZHVjdChzZWxmLCBsb25nIGksIGxvbmcgaikgbm9leGNlcHQ6 ICAgIyBOb3QgYSBTYWdlIG1hdHJpeCBvcGVyYXRpb24KKysgICAgY2RlZiBpbmxpbmUgcm93X2lu bmVyX3Byb2R1Y3Qoc2VsZiwgbG9uZyBpLCBsb25nIGopOiAgICMgTm90IGEgU2FnZSBtYXRyaXgg b3BlcmF0aW9uCisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgaW5uZXIgcHJvZHVj dCBiZXR3ZWVuIHJvd3MgYGBpYGAgYW5kIGBgamBgLgorICAgICAgICAgIiIiCitAQCAtMzU0MCw3 ICszNTQwLDcgQEAgY2RlZiBjbGFzcyBSYXRpb25hbE1hdHJpeChMZWFuTWF0cml4KToKKyAgICAg ICAgIG1wcV9jbGVhcih0KQorICAgICAgICAgcmV0dXJuIDAKKyAKKy0gICAgY2RlZiBsaXN0IG5v bnplcm9fcG9zaXRpb25zX2luX3JvdyhzZWxmLCBsb25nIHIpIG5vZXhjZXB0OgorKyAgICBjZGVm IGxpc3Qgbm9uemVyb19wb3NpdGlvbnNfaW5fcm93KHNlbGYsIGxvbmcgcik6CisgICAgICAgICAi IiIKKyAgICAgICAgIEdldCBjb29yZGluYXRlcyBvZiBub256ZXJvIGVudHJpZXMgb2Ygcm93IGBg cmBgLgorICAgICAgICAgIiIiCitAQCAtMzU1MSw3ICszNTUxLDcgQEAgY2RlZiBjbGFzcyBSYXRp b25hbE1hdHJpeChMZWFuTWF0cml4KToKKyAgICAgICAgICAgICAgICAgcmVzLmFwcGVuZChqIC0g ciAqIHNlbGYuX25jb2xzKQorICAgICAgICAgcmV0dXJuIHJlcworIAorLSAgICBjZGVmIExlYW5N YXRyaXggdHJhbnNwb3NlKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIExlYW5NYXRyaXggdHJh bnNwb3NlKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHRyYW5zcG9z ZSBvZiB0aGUgbWF0cml4LgorICAgICAgICAgIiIiCitAQCAtMzU2Myw3ICszNTYzLDcgQEAgY2Rl ZiBjbGFzcyBSYXRpb25hbE1hdHJpeChMZWFuTWF0cml4KToKKyAgICAgICAgICAgICAgICAgQS5z ZXQoaiwgaSwgc2VsZi5fZW50cmllc1tzZWxmLmluZGV4KGksIGopXSkKKyAgICAgICAgIHJldHVy biBBCisgCistICAgIGNkZWYgTGVhbk1hdHJpeCBfbWF0cml4X3RpbWVzX21hdHJpeF8oc2VsZiwg TGVhbk1hdHJpeCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNkZWYgTGVhbk1hdHJpeCBfbWF0cml4 X3RpbWVzX21hdHJpeF8oc2VsZiwgTGVhbk1hdHJpeCBvdGhlcik6CisgICAgICAgICAiIiIKKyAg ICAgICAgIFJldHVybiB0aGUgcHJvZHVjdCBgYHNlbGYgKiBvdGhlcmBgLgorICAgICAgICAgIiIi CitAQCAtMzU4Myw3ICszNTgzLDcgQEAgY2RlZiBjbGFzcyBSYXRpb25hbE1hdHJpeChMZWFuTWF0 cml4KToKKyAgICAgICAgIG1wcV9jbGVhcihzKQorICAgICAgICAgcmV0dXJuIEEKKyAKKy0gICAg Y2RlZiBsaXN0IGdhdXNzX2pvcmRhbl9yZWR1Y2Uoc2VsZiwgY29sdW1ucykgbm9leGNlcHQ6ICAg IyBOb3QgYSBTYWdlIG1hdHJpeCBvcGVyYXRpb24KKysgICAgY2RlZiBsaXN0IGdhdXNzX2pvcmRh bl9yZWR1Y2Uoc2VsZiwgY29sdW1ucyk6ICAgIyBOb3QgYSBTYWdlIG1hdHJpeCBvcGVyYXRpb24K KyAgICAgICAgICIiIgorICAgICAgICAgUm93LXJlZHVjZSBzbyB0aGUgbGV4aWNvZ3JhcGhpY2Fs bHkgZmlyc3QgYmFzaXMgaW5kZXhlcyBhbiBpZGVudGl0eQorICAgICAgICAgc3VibWF0cml4Lgor ZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJvaWRzL2xpbmVhcl9tYXRyb2lkLnB4ZCBiL3NyYy9z YWdlL21hdHJvaWRzL2xpbmVhcl9tYXRyb2lkLnB4ZAoraW5kZXggYzdlNmE0MDI0OTQuLjQ5MDJj Y2VmNmVmIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0cm9pZHMvbGluZWFyX21hdHJvaWQucHhk CisrKysgYi9zcmMvc2FnZS9tYXRyb2lkcy9saW5lYXJfbWF0cm9pZC5weGQKK0BAIC0xMCw4NyAr MTAsODcgQEAgY2RlZiBjbGFzcyBMaW5lYXJNYXRyb2lkKEJhc2lzRXhjaGFuZ2VNYXRyb2lkKToK KyAgICAgY2RlZiBsb25nICpfcHJvdworICAgICBjZGVmIG9iamVjdCBfemVybywgX29uZQorIAor LSAgICBjcGRlZiBfZm9yZ2V0KHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIGJhc2VfcmluZyhz ZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBjaGFyYWN0ZXJpc3RpYyhzZWxmKSBub2V4Y2VwdAor KyAgICBjcGRlZiBfZm9yZ2V0KHNlbGYpCisrICAgIGNwZGVmIGJhc2VfcmluZyhzZWxmKQorKyAg ICBjcGRlZiBjaGFyYWN0ZXJpc3RpYyhzZWxmKQorIAorLSAgICBjZGVmIGxpc3QgX3NldHVwX2lu dGVybmFsX3JlcHJlc2VudGF0aW9uKHNlbGYsIG1hdHJpeCwgcmVkdWNlZF9tYXRyaXgsIHJpbmcs IGtlZXBfaW5pdGlhbF9yZXByZXNlbnRhdGlvbikgbm9leGNlcHQKKy0gICAgY2RlZiBfZXhjaGFu Z2VfdmFsdWVfaW50ZXJuYWwoc2VsZiwgbG9uZyB4LCBsb25nIHkpIG5vZXhjZXB0CisrICAgIGNk ZWYgbGlzdCBfc2V0dXBfaW50ZXJuYWxfcmVwcmVzZW50YXRpb24oc2VsZiwgbWF0cml4LCByZWR1 Y2VkX21hdHJpeCwgcmluZywga2VlcF9pbml0aWFsX3JlcHJlc2VudGF0aW9uKQorKyAgICBjZGVm IF9leGNoYW5nZV92YWx1ZV9pbnRlcm5hbChzZWxmLCBsb25nIHgsIGxvbmcgeSkKKyAKKy0gICAg Y3BkZWYgcmVwcmVzZW50YXRpb24oc2VsZiwgQj0qLCByZWR1Y2VkPSosIGxhYmVscz0qLCBvcmRl cj0qLCBsaWZ0X21hcD0qKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfY3VycmVudF9yb3dzX2NvbHMo c2VsZiwgQj0qKSBub2V4Y2VwdAorLSAgICBjcGRlZiByZXByZXNlbnRhdGlvbl92ZWN0b3JzKHNl bGYpIG5vZXhjZXB0CistICAgIGNwZGVmIExlYW5NYXRyaXggX2Jhc2ljX3JlcHJlc2VudGF0aW9u KHNlbGYsIEI9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgTGVhbk1hdHJpeCBfcmVkdWNlZF9yZXBy ZXNlbnRhdGlvbihzZWxmLCBCPSopIG5vZXhjZXB0CisrICAgIGNwZGVmIHJlcHJlc2VudGF0aW9u KHNlbGYsIEI9KiwgcmVkdWNlZD0qLCBsYWJlbHM9Kiwgb3JkZXI9KiwgbGlmdF9tYXA9KikKKysg ICAgY3BkZWYgX2N1cnJlbnRfcm93c19jb2xzKHNlbGYsIEI9KikKKysgICAgY3BkZWYgcmVwcmVz ZW50YXRpb25fdmVjdG9ycyhzZWxmKQorKyAgICBjcGRlZiBMZWFuTWF0cml4IF9iYXNpY19yZXBy ZXNlbnRhdGlvbihzZWxmLCBCPSopCisrICAgIGNwZGVmIExlYW5NYXRyaXggX3JlZHVjZWRfcmVw cmVzZW50YXRpb24oc2VsZiwgQj0qKQorIAorICAgICBjcGRlZiBiaW50IF9pc19maWVsZF9pc29t b3JwaGlzbShzZWxmLCBMaW5lYXJNYXRyb2lkIG90aGVyLCBtb3JwaGlzbSkgbm9leGNlcHQKKy0g ICAgY3BkZWYgaXNfZmllbGRfZXF1aXZhbGVudChzZWxmLCBvdGhlcikgbm9leGNlcHQKKy0gICAg Y3BkZWYgaXNfZmllbGRfaXNvbW9ycGhpc20oc2VsZiwgb3RoZXIsIG1vcnBoaXNtKSBub2V4Y2Vw dAorKyAgICBjcGRlZiBpc19maWVsZF9lcXVpdmFsZW50KHNlbGYsIG90aGVyKQorKyAgICBjcGRl ZiBpc19maWVsZF9pc29tb3JwaGlzbShzZWxmLCBvdGhlciwgbW9ycGhpc20pCisgICAgICMgY3Bk ZWYgaXNfZmllbGRfaXNvbW9ycGhpYyhzZWxmLCBvdGhlcikgICMgVE9ETzogY3VycmVudGx5IG9u bHkgd29ya3MgYXMgYGBkZWZgYAorLSAgICBjcGRlZiBfZmFzdF9pc29tX3Rlc3Qoc2VsZiwgb3Ro ZXIpIG5vZXhjZXB0CistCistICAgIGNwZGVmIF9taW5vcihzZWxmLCBjb250cmFjdGlvbnMsIGRl bGV0aW9ucykgbm9leGNlcHQKKy0gICAgY3BkZWYgZHVhbChzZWxmKSBub2V4Y2VwdAorLSAgICBj cGRlZiBoYXNfbGluZV9taW5vcihzZWxmLCBrLCBoeXBlcmxpbmVzPSosIGNlcnRpZmljYXRlPSop IG5vZXhjZXB0CistICAgIGNwZGVmIGhhc19maWVsZF9taW5vcihzZWxmLCBOKSBub2V4Y2VwdAor LQorLSAgICBjcGRlZiBfZXhjaGFuZ2VfdmFsdWUoc2VsZiwgZSwgZikgbm9leGNlcHQKKy0gICAg Y3BkZWYgZnVuZGFtZW50YWxfY3ljbGUoc2VsZiwgQiwgZSkgbm9leGNlcHQKKy0gICAgY3BkZWYg ZnVuZGFtZW50YWxfY29jeWNsZShzZWxmLCBCLCBlKSBub2V4Y2VwdAorLQorLSAgICBjcGRlZiBf bGluZV9yYXRpb3Moc2VsZiwgRikgbm9leGNlcHQKKy0gICAgY3BkZWYgX2xpbmVfbGVuZ3RoKHNl bGYsIEYpIG5vZXhjZXB0CistCistICAgIGNwZGVmIF9saW5lX2Nyb3NzX3JhdGlvcyhzZWxmLCBG KSBub2V4Y2VwdAorLSAgICBjcGRlZiBjcm9zc19yYXRpb3Moc2VsZiwgaHlwZXJsaW5lcz0qKSBu b2V4Y2VwdAorLSAgICBjcGRlZiBjcm9zc19yYXRpbyhzZWxmLCBGLCBhLCBiLCBjLCBkKSBub2V4 Y2VwdAorLSAgICBjcGRlZiBfbGluZV9jcm9zc19yYXRpb190ZXN0KHNlbGYsIEYsIHgsIGZ1bmRh bWVudGFscykgbm9leGNlcHQKKy0gICAgY3BkZWYgX2Nyb3NzX3JhdGlvX3Rlc3Qoc2VsZiwgeCwg ZnVuZGFtZW50YWxzLCBoeXBlcmxpbmVzPSopIG5vZXhjZXB0CistCistICAgIGNwZGVmIGxpbmVh cl9leHRlbnNpb24oc2VsZiwgZWxlbWVudCwgY2hhaW49KiwgY29sPSopIG5vZXhjZXB0CistICAg IGNwZGVmIGxpbmVhcl9jb2V4dGVuc2lvbihzZWxmLCBlbGVtZW50LCBjb2NoYWluPSosIHJvdz0q KSBub2V4Y2VwdAorLSAgICBjcGRlZiBfbGluZWFyX2V4dGVuc2lvbnMoc2VsZiwgZWxlbWVudCwg Y2hhaW5zKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfbGluZWFyX2NvZXh0ZW5zaW9ucyhzZWxmLCBl bGVtZW50LCBjb2NoYWlucykgbm9leGNlcHQKKy0gICAgY2RlZiBfZXh0ZW5kX2NoYWlucyhzZWxm LCBDLCBmLCBmdW5kYW1lbnRhbHM9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgX2xpbmVhcl9leHRl bnNpb25fY2hhaW5zKHNlbGYsIEYsIGZ1bmRhbWVudGFscz0qKSBub2V4Y2VwdAorLSAgICBjcGRl ZiBsaW5lYXJfZXh0ZW5zaW9uX2NoYWlucyhzZWxmLCBGPSosIHNpbXBsZT0qLCBmdW5kYW1lbnRh bHM9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgbGluZWFyX2NvZXh0ZW5zaW9uX2NvY2hhaW5zKHNl bGYsIEY9KiwgY29zaW1wbGU9KiwgZnVuZGFtZW50YWxzPSopIG5vZXhjZXB0CistICAgIGNwZGVm IGxpbmVhcl9leHRlbnNpb25zKHNlbGYsIGVsZW1lbnQ9KiwgRj0qLCBzaW1wbGU9KiwgZnVuZGFt ZW50YWxzPSopIG5vZXhjZXB0CistICAgIGNwZGVmIGxpbmVhcl9jb2V4dGVuc2lvbnMoc2VsZiwg ZWxlbWVudD0qLCBGPSosIGNvc2ltcGxlPSosIGZ1bmRhbWVudGFscz0qKSBub2V4Y2VwdAorLQor LSAgICBjcGRlZiBfaXNfM2Nvbm5lY3RlZF9zaGlmdGluZyhzZWxmLCBjZXJ0aWZpY2F0ZT0qKSBu b2V4Y2VwdAorLSAgICBjcGRlZiBfaXNfNGNvbm5lY3RlZF9zaGlmdGluZyhzZWxmLCBjZXJ0aWZp Y2F0ZT0qKSBub2V4Y2VwdAorLQorLSAgICBjcGRlZiBpc192YWxpZChzZWxmKSBub2V4Y2VwdAor KyAgICBjcGRlZiBfZmFzdF9pc29tX3Rlc3Qoc2VsZiwgb3RoZXIpCisrCisrICAgIGNwZGVmIF9t aW5vcihzZWxmLCBjb250cmFjdGlvbnMsIGRlbGV0aW9ucykKKysgICAgY3BkZWYgZHVhbChzZWxm KQorKyAgICBjcGRlZiBoYXNfbGluZV9taW5vcihzZWxmLCBrLCBoeXBlcmxpbmVzPSosIGNlcnRp ZmljYXRlPSopCisrICAgIGNwZGVmIGhhc19maWVsZF9taW5vcihzZWxmLCBOKQorKworKyAgICBj cGRlZiBfZXhjaGFuZ2VfdmFsdWUoc2VsZiwgZSwgZikKKysgICAgY3BkZWYgZnVuZGFtZW50YWxf Y3ljbGUoc2VsZiwgQiwgZSkKKysgICAgY3BkZWYgZnVuZGFtZW50YWxfY29jeWNsZShzZWxmLCBC LCBlKQorKworKyAgICBjcGRlZiBfbGluZV9yYXRpb3Moc2VsZiwgRikKKysgICAgY3BkZWYgX2xp bmVfbGVuZ3RoKHNlbGYsIEYpCisrCisrICAgIGNwZGVmIF9saW5lX2Nyb3NzX3JhdGlvcyhzZWxm LCBGKQorKyAgICBjcGRlZiBjcm9zc19yYXRpb3Moc2VsZiwgaHlwZXJsaW5lcz0qKQorKyAgICBj cGRlZiBjcm9zc19yYXRpbyhzZWxmLCBGLCBhLCBiLCBjLCBkKQorKyAgICBjcGRlZiBfbGluZV9j cm9zc19yYXRpb190ZXN0KHNlbGYsIEYsIHgsIGZ1bmRhbWVudGFscykKKysgICAgY3BkZWYgX2Ny b3NzX3JhdGlvX3Rlc3Qoc2VsZiwgeCwgZnVuZGFtZW50YWxzLCBoeXBlcmxpbmVzPSopCisrCisr ICAgIGNwZGVmIGxpbmVhcl9leHRlbnNpb24oc2VsZiwgZWxlbWVudCwgY2hhaW49KiwgY29sPSop CisrICAgIGNwZGVmIGxpbmVhcl9jb2V4dGVuc2lvbihzZWxmLCBlbGVtZW50LCBjb2NoYWluPSos IHJvdz0qKQorKyAgICBjcGRlZiBfbGluZWFyX2V4dGVuc2lvbnMoc2VsZiwgZWxlbWVudCwgY2hh aW5zKQorKyAgICBjcGRlZiBfbGluZWFyX2NvZXh0ZW5zaW9ucyhzZWxmLCBlbGVtZW50LCBjb2No YWlucykKKysgICAgY2RlZiBfZXh0ZW5kX2NoYWlucyhzZWxmLCBDLCBmLCBmdW5kYW1lbnRhbHM9 KikKKysgICAgY3BkZWYgX2xpbmVhcl9leHRlbnNpb25fY2hhaW5zKHNlbGYsIEYsIGZ1bmRhbWVu dGFscz0qKQorKyAgICBjcGRlZiBsaW5lYXJfZXh0ZW5zaW9uX2NoYWlucyhzZWxmLCBGPSosIHNp bXBsZT0qLCBmdW5kYW1lbnRhbHM9KikKKysgICAgY3BkZWYgbGluZWFyX2NvZXh0ZW5zaW9uX2Nv Y2hhaW5zKHNlbGYsIEY9KiwgY29zaW1wbGU9KiwgZnVuZGFtZW50YWxzPSopCisrICAgIGNwZGVm IGxpbmVhcl9leHRlbnNpb25zKHNlbGYsIGVsZW1lbnQ9KiwgRj0qLCBzaW1wbGU9KiwgZnVuZGFt ZW50YWxzPSopCisrICAgIGNwZGVmIGxpbmVhcl9jb2V4dGVuc2lvbnMoc2VsZiwgZWxlbWVudD0q LCBGPSosIGNvc2ltcGxlPSosIGZ1bmRhbWVudGFscz0qKQorKworKyAgICBjcGRlZiBfaXNfM2Nv bm5lY3RlZF9zaGlmdGluZyhzZWxmLCBjZXJ0aWZpY2F0ZT0qKQorKyAgICBjcGRlZiBfaXNfNGNv bm5lY3RlZF9zaGlmdGluZyhzZWxmLCBjZXJ0aWZpY2F0ZT0qKQorKworKyAgICBjcGRlZiBpc192 YWxpZChzZWxmKQorIAorIGNkZWYgY2xhc3MgQmluYXJ5TWF0cm9pZChMaW5lYXJNYXRyb2lkKToK KyAgICAgY2RlZiB0dXBsZSBfYl9pbnZhcmlhbnQsIF9iX3BhcnRpdGlvbgorICAgICBjZGVmIEJp bmFyeU1hdHJpeCBfYl9wcm9qZWN0aW9uLCBfZXFfcGFydAorIAorLSAgICBjcGRlZiBiYXNlX3Jp bmcoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgY2hhcmFjdGVyaXN0aWMoc2VsZikgbm9leGNl cHQKKysgICAgY3BkZWYgYmFzZV9yaW5nKHNlbGYpCisrICAgIGNwZGVmIGNoYXJhY3RlcmlzdGlj KHNlbGYpCisgCistICAgIGNwZGVmIF9jdXJyZW50X3Jvd3NfY29scyhzZWxmLCBCPSopIG5vZXhj ZXB0CistICAgIGNwZGVmIExlYW5NYXRyaXggX2Jhc2ljX3JlcHJlc2VudGF0aW9uKHNlbGYsIEI9 Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgTGVhbk1hdHJpeCBfcmVkdWNlZF9yZXByZXNlbnRhdGlv bihzZWxmLCBCPSopIG5vZXhjZXB0CisrICAgIGNwZGVmIF9jdXJyZW50X3Jvd3NfY29scyhzZWxm LCBCPSopCisrICAgIGNwZGVmIExlYW5NYXRyaXggX2Jhc2ljX3JlcHJlc2VudGF0aW9uKHNlbGYs IEI9KikKKysgICAgY3BkZWYgTGVhbk1hdHJpeCBfcmVkdWNlZF9yZXByZXNlbnRhdGlvbihzZWxm LCBCPSopCisgCistICAgIGNkZWYgIF9fZnVuZGFtZW50YWxfY29jaXJjdWl0KHNlbGYsIGJpdHNl dF90LCBsb25nIHgpIG5vZXhjZXB0CisrICAgIGNkZWYgIF9fZnVuZGFtZW50YWxfY29jaXJjdWl0 KHNlbGYsIGJpdHNldF90LCBsb25nIHgpCisgCistICAgIGNwZGVmIF9pc19pc29tb3JwaGljKHNl bGYsIG90aGVyLCBjZXJ0aWZpY2F0ZT0qKSBub2V4Y2VwdAorKyAgICBjcGRlZiBfaXNfaXNvbW9y cGhpYyhzZWxmLCBvdGhlciwgY2VydGlmaWNhdGU9KikKKyAKKy0gICAgY3BkZWYgX21pbm9yKHNl bGYsIGNvbnRyYWN0aW9ucywgZGVsZXRpb25zKSBub2V4Y2VwdAorKyAgICBjcGRlZiBfbWlub3Io c2VsZiwgY29udHJhY3Rpb25zLCBkZWxldGlvbnMpCisgCistICAgIGNwZGVmIF9tYWtlX2ludmFy aWFudChzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfaW52YXJpYW50KHNlbGYpIG5vZXhjZXB0 CistICAgIGNwZGVmIGJpY3ljbGVfZGltZW5zaW9uKHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVm IGJyb3duX2ludmFyaWFudChzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfcHJpbmNpcGFsX3Ry aXBhcnRpdGlvbihzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBCaW5hcnlNYXRyaXggX3Byb2pl Y3Rpb24oc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgQmluYXJ5TWF0cml4IF9wcm9qZWN0aW9u X3BhcnRpdGlvbihzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfZmFzdF9pc29tX3Rlc3Qoc2Vs Ziwgb3RoZXIpIG5vZXhjZXB0CisrICAgIGNwZGVmIF9tYWtlX2ludmFyaWFudChzZWxmKQorKyAg ICBjcGRlZiBfaW52YXJpYW50KHNlbGYpCisrICAgIGNwZGVmIGJpY3ljbGVfZGltZW5zaW9uKHNl bGYpCisrICAgIGNwZGVmIGJyb3duX2ludmFyaWFudChzZWxmKQorKyAgICBjcGRlZiBfcHJpbmNp cGFsX3RyaXBhcnRpdGlvbihzZWxmKQorKyAgICBjcGRlZiBCaW5hcnlNYXRyaXggX3Byb2plY3Rp b24oc2VsZikKKysgICAgY3BkZWYgQmluYXJ5TWF0cml4IF9wcm9qZWN0aW9uX3BhcnRpdGlvbihz ZWxmKQorKyAgICBjcGRlZiBfZmFzdF9pc29tX3Rlc3Qoc2VsZiwgb3RoZXIpCisgCistICAgIGNw ZGVmIGlzX2dyYXBoaWMoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgaXNfdmFsaWQoc2VsZikg bm9leGNlcHQKKysgICAgY3BkZWYgaXNfZ3JhcGhpYyhzZWxmKQorKyAgICBjcGRlZiBpc192YWxp ZChzZWxmKQorIAorIAorIGNkZWYgY2xhc3MgVGVybmFyeU1hdHJvaWQoTGluZWFyTWF0cm9pZCk6 CitAQCAtOTgsNzQgKzk4LDc0IEBAIGNkZWYgY2xhc3MgVGVybmFyeU1hdHJvaWQoTGluZWFyTWF0 cm9pZCk6CisgICAgIGNkZWYgdHVwbGUgX3RfaW52YXJpYW50LCBfdF9wYXJ0aXRpb24KKyAgICAg Y2RlZiBUZXJuYXJ5TWF0cml4IF90X3Byb2plY3Rpb24KKyAKKy0gICAgY3BkZWYgYmFzZV9yaW5n KHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIGNoYXJhY3RlcmlzdGljKHNlbGYpIG5vZXhjZXB0 CisrICAgIGNwZGVmIGJhc2VfcmluZyhzZWxmKQorKyAgICBjcGRlZiBjaGFyYWN0ZXJpc3RpYyhz ZWxmKQorIAorLSAgICBjcGRlZiBfY3VycmVudF9yb3dzX2NvbHMoc2VsZiwgQj0qKSBub2V4Y2Vw dAorLSAgICBjcGRlZiBMZWFuTWF0cml4IF9iYXNpY19yZXByZXNlbnRhdGlvbihzZWxmLCBCPSop IG5vZXhjZXB0CistICAgIGNwZGVmIExlYW5NYXRyaXggX3JlZHVjZWRfcmVwcmVzZW50YXRpb24o c2VsZiwgQj0qKSBub2V4Y2VwdAorKyAgICBjcGRlZiBfY3VycmVudF9yb3dzX2NvbHMoc2VsZiwg Qj0qKQorKyAgICBjcGRlZiBMZWFuTWF0cml4IF9iYXNpY19yZXByZXNlbnRhdGlvbihzZWxmLCBC PSopCisrICAgIGNwZGVmIExlYW5NYXRyaXggX3JlZHVjZWRfcmVwcmVzZW50YXRpb24oc2VsZiwg Qj0qKQorIAorLSAgICBjZGVmICBfX2Z1bmRhbWVudGFsX2NvY2lyY3VpdChzZWxmLCBiaXRzZXRf dCwgbG9uZyB4KSBub2V4Y2VwdAorKyAgICBjZGVmICBfX2Z1bmRhbWVudGFsX2NvY2lyY3VpdChz ZWxmLCBiaXRzZXRfdCwgbG9uZyB4KQorIAorLSAgICBjcGRlZiBfaXNfaXNvbW9ycGhpYyhzZWxm LCBvdGhlciwgY2VydGlmaWNhdGU9Kikgbm9leGNlcHQKKysgICAgY3BkZWYgX2lzX2lzb21vcnBo aWMoc2VsZiwgb3RoZXIsIGNlcnRpZmljYXRlPSopCisgCistICAgIGNwZGVmIF9taW5vcihzZWxm LCBjb250cmFjdGlvbnMsIGRlbGV0aW9ucykgbm9leGNlcHQKKysgICAgY3BkZWYgX21pbm9yKHNl bGYsIGNvbnRyYWN0aW9ucywgZGVsZXRpb25zKQorIAorLSAgICBjcGRlZiBfbWFrZV9pbnZhcmlh bnQoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgX2ludmFyaWFudChzZWxmKSBub2V4Y2VwdAor LSAgICBjcGRlZiBiaWN5Y2xlX2RpbWVuc2lvbihzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBj aGFyYWN0ZXIoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgX3ByaW5jaXBhbF9xdWFkcmlwYXJ0 aXRpb24oc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgVGVybmFyeU1hdHJpeCBfcHJvamVjdGlv bihzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfZmFzdF9pc29tX3Rlc3Qoc2VsZiwgb3RoZXIp IG5vZXhjZXB0CisrICAgIGNwZGVmIF9tYWtlX2ludmFyaWFudChzZWxmKQorKyAgICBjcGRlZiBf aW52YXJpYW50KHNlbGYpCisrICAgIGNwZGVmIGJpY3ljbGVfZGltZW5zaW9uKHNlbGYpCisrICAg IGNwZGVmIGNoYXJhY3RlcihzZWxmKQorKyAgICBjcGRlZiBfcHJpbmNpcGFsX3F1YWRyaXBhcnRp dGlvbihzZWxmKQorKyAgICBjcGRlZiBUZXJuYXJ5TWF0cml4IF9wcm9qZWN0aW9uKHNlbGYpCisr ICAgIGNwZGVmIF9mYXN0X2lzb21fdGVzdChzZWxmLCBvdGhlcikKKyAKKy0gICAgY3BkZWYgaXNf dmFsaWQoc2VsZikgbm9leGNlcHQKKysgICAgY3BkZWYgaXNfdmFsaWQoc2VsZikKKyAKKyBjZGVm IGNsYXNzIFF1YXRlcm5hcnlNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAgICBjZGVmIG9iamVj dCBfeF96ZXJvLCBfeF9vbmUKKyAgICAgY2RlZiB0dXBsZSBfcV9pbnZhcmlhbnQsIF9xX3BhcnRp dGlvbgorICAgICBjZGVmIFF1YXRlcm5hcnlNYXRyaXggX3FfcHJvamVjdGlvbgorIAorLSAgICBj cGRlZiBiYXNlX3Jpbmcoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgY2hhcmFjdGVyaXN0aWMo c2VsZikgbm9leGNlcHQKKysgICAgY3BkZWYgYmFzZV9yaW5nKHNlbGYpCisrICAgIGNwZGVmIGNo YXJhY3RlcmlzdGljKHNlbGYpCisgCistICAgIGNwZGVmIF9jdXJyZW50X3Jvd3NfY29scyhzZWxm LCBCPSopIG5vZXhjZXB0CistICAgIGNwZGVmIExlYW5NYXRyaXggX2Jhc2ljX3JlcHJlc2VudGF0 aW9uKHNlbGYsIEI9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgTGVhbk1hdHJpeCBfcmVkdWNlZF9y ZXByZXNlbnRhdGlvbihzZWxmLCBCPSopIG5vZXhjZXB0CisrICAgIGNwZGVmIF9jdXJyZW50X3Jv d3NfY29scyhzZWxmLCBCPSopCisrICAgIGNwZGVmIExlYW5NYXRyaXggX2Jhc2ljX3JlcHJlc2Vu dGF0aW9uKHNlbGYsIEI9KikKKysgICAgY3BkZWYgTGVhbk1hdHJpeCBfcmVkdWNlZF9yZXByZXNl bnRhdGlvbihzZWxmLCBCPSopCisgCistICAgIGNkZWYgIF9fZnVuZGFtZW50YWxfY29jaXJjdWl0 KHNlbGYsIGJpdHNldF90LCBsb25nIHgpIG5vZXhjZXB0CisrICAgIGNkZWYgIF9fZnVuZGFtZW50 YWxfY29jaXJjdWl0KHNlbGYsIGJpdHNldF90LCBsb25nIHgpCisgCistICAgIGNwZGVmIF9pc19p c29tb3JwaGljKHNlbGYsIG90aGVyLCBjZXJ0aWZpY2F0ZT0qKSBub2V4Y2VwdAorKyAgICBjcGRl ZiBfaXNfaXNvbW9ycGhpYyhzZWxmLCBvdGhlciwgY2VydGlmaWNhdGU9KikKKyAKKy0gICAgY3Bk ZWYgX21pbm9yKHNlbGYsIGNvbnRyYWN0aW9ucywgZGVsZXRpb25zKSBub2V4Y2VwdAorKyAgICBj cGRlZiBfbWlub3Ioc2VsZiwgY29udHJhY3Rpb25zLCBkZWxldGlvbnMpCisgCistICAgIGNwZGVm IF9tYWtlX2ludmFyaWFudChzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfaW52YXJpYW50KHNl bGYpIG5vZXhjZXB0CistICAgIGNwZGVmIGJpY3ljbGVfZGltZW5zaW9uKHNlbGYpIG5vZXhjZXB0 CistICAgIGNwZGVmIF9wcmluY2lwYWxfdHJpcGFydGl0aW9uKHNlbGYpIG5vZXhjZXB0CistICAg IGNwZGVmIF9mYXN0X2lzb21fdGVzdChzZWxmLCBvdGhlcikgbm9leGNlcHQKKysgICAgY3BkZWYg X21ha2VfaW52YXJpYW50KHNlbGYpCisrICAgIGNwZGVmIF9pbnZhcmlhbnQoc2VsZikKKysgICAg Y3BkZWYgYmljeWNsZV9kaW1lbnNpb24oc2VsZikKKysgICAgY3BkZWYgX3ByaW5jaXBhbF90cmlw YXJ0aXRpb24oc2VsZikKKysgICAgY3BkZWYgX2Zhc3RfaXNvbV90ZXN0KHNlbGYsIG90aGVyKQor IAorLSAgICBjcGRlZiBpc192YWxpZChzZWxmKSBub2V4Y2VwdAorKyAgICBjcGRlZiBpc192YWxp ZChzZWxmKQorIAorIGNkZWYgY2xhc3MgUmVndWxhck1hdHJvaWQoTGluZWFyTWF0cm9pZCk6Cisg ICAgIGNkZWYgX2Jhc2VzX2NvdW50LCBfcl9pbnZhcmlhbnQKKyAgICAgY2RlZiBfcl9wcm9qZWN0 aW9uLCBfcl9oeXBlcmdyYXBoCisgICAgIGNkZWYgX2h5cGVyZ3JhcGhfdmVydGV4X3BhcnRpdGlv biwgX2h5cGVyZ3JhcGhfdHVwbGVzCisgCistICAgIGNwZGVmIGJhc2VfcmluZyhzZWxmKSBub2V4 Y2VwdAorLSAgICBjcGRlZiBjaGFyYWN0ZXJpc3RpYyhzZWxmKSBub2V4Y2VwdAorKyAgICBjcGRl ZiBiYXNlX3Jpbmcoc2VsZikKKysgICAgY3BkZWYgY2hhcmFjdGVyaXN0aWMoc2VsZikKKyAKKy0g ICAgY3BkZWYgX2lzX2lzb21vcnBoaWMoc2VsZiwgb3RoZXIsIGNlcnRpZmljYXRlPSopIG5vZXhj ZXB0CisrICAgIGNwZGVmIF9pc19pc29tb3JwaGljKHNlbGYsIG90aGVyLCBjZXJ0aWZpY2F0ZT0q KQorIAorLSAgICBjcGRlZiBfaW52YXJpYW50KHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIF9m YXN0X2lzb21fdGVzdChzZWxmLCBvdGhlcikgbm9leGNlcHQKKysgICAgY3BkZWYgX2ludmFyaWFu dChzZWxmKQorKyAgICBjcGRlZiBfZmFzdF9pc29tX3Rlc3Qoc2VsZiwgb3RoZXIpCisgCistICAg IGNwZGVmIGJhc2VzX2NvdW50KHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIF9wcm9qZWN0aW9u KHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIF9oeXBlcmdyYXBoKHNlbGYpIG5vZXhjZXB0Cist ICAgIGNkZWYgX2h5cGVydGVzdChzZWxmLCBvdGhlcikgbm9leGNlcHQKKy0gICAgY3BkZWYgaGFz X2xpbmVfbWlub3Ioc2VsZiwgaywgaHlwZXJsaW5lcz0qLCBjZXJ0aWZpY2F0ZT0qKSBub2V4Y2Vw dAorLSAgICBjcGRlZiBfbGluZWFyX2V4dGVuc2lvbl9jaGFpbnMoc2VsZiwgRiwgZnVuZGFtZW50 YWxzPSopIG5vZXhjZXB0CisrICAgIGNwZGVmIGJhc2VzX2NvdW50KHNlbGYpCisrICAgIGNwZGVm IF9wcm9qZWN0aW9uKHNlbGYpCisrICAgIGNwZGVmIF9oeXBlcmdyYXBoKHNlbGYpCisrICAgIGNk ZWYgX2h5cGVydGVzdChzZWxmLCBvdGhlcikKKysgICAgY3BkZWYgaGFzX2xpbmVfbWlub3Ioc2Vs ZiwgaywgaHlwZXJsaW5lcz0qLCBjZXJ0aWZpY2F0ZT0qKQorKyAgICBjcGRlZiBfbGluZWFyX2V4 dGVuc2lvbl9jaGFpbnMoc2VsZiwgRiwgZnVuZGFtZW50YWxzPSopCisgCistICAgIGNwZGVmIGlz X2dyYXBoaWMoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgaXNfdmFsaWQoc2VsZikgbm9leGNl cHQKKysgICAgY3BkZWYgaXNfZ3JhcGhpYyhzZWxmKQorKyAgICBjcGRlZiBpc192YWxpZChzZWxm KQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJvaWRzL2xpbmVhcl9tYXRyb2lkLnB5eCBiL3Ny Yy9zYWdlL21hdHJvaWRzL2xpbmVhcl9tYXRyb2lkLnB5eAoraW5kZXggYmQyNzdkODkxZWIuLjdi NmViOWJiNzExIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0cm9pZHMvbGluZWFyX21hdHJvaWQu cHl4CisrKysgYi9zcmMvc2FnZS9tYXRyb2lkcy9saW5lYXJfbWF0cm9pZC5weXgKK0BAIC0xNDgs MTAgKzE0OCwxMCBAQCBjZGVmIEdGMywgR0YzX29uZSwgR0YzX3plcm8sIEdGM19taW51c19vbmUK KyAjICAgIHByb3ZpZGUgYWx0ZXJuYXRpdmUgaW1wbGVtZW50YXRpb25zCisgIyBCZWxvdyBpcyBz b21lIGNvZGUsIGNvbW1lbnRlZCBvdXQgY3VycmVudGx5LCB0byBnZXQgeW91IGdvaW5nLgorIAor LWNkZWYgaW5saW5lIGdhdXNzX2pvcmRhbl9yZWR1Y2UoTGVhbk1hdHJpeCBBLCBjb2x1bW5zKSBu b2V4Y2VwdDoKKytjZGVmIGlubGluZSBnYXVzc19qb3JkYW5fcmVkdWNlKExlYW5NYXRyaXggQSwg Y29sdW1ucyk6CisgICAgIHJldHVybiBBLmdhdXNzX2pvcmRhbl9yZWR1Y2UoY29sdW1ucykgICAj IE5vdCBhIFNhZ2UgbWF0cml4IG9wZXJhdGlvbgorIAorLWNkZWYgaW5saW5lIGNoYXJhY3Rlcmlz dGljKExlYW5NYXRyaXggQSkgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUgY2hhcmFjdGVyaXN0aWMo TGVhbk1hdHJpeCBBKToKKyAgICAgcmV0dXJuIEEuY2hhcmFjdGVyaXN0aWMoKSAgICMgTm90IGEg U2FnZSBtYXRyaXggb3BlcmF0aW9uCisgCisgIyBJbXBsZW1lbnRhdGlvbiB1c2luZyBkZWZhdWx0 IFNhZ2UgbWF0cmljZXMKK0BAIC0yOTcsNyArMjk3LDcgQEAgY2RlZiBjbGFzcyBMaW5lYXJNYXRy b2lkKEJhc2lzRXhjaGFuZ2VNYXRyb2lkKToKKyAgICAgICAgICAgICBzaWdfZnJlZShzZWxmLl9w cm93KQorICAgICAgICAgICAgIHNlbGYuX3Byb3cgPSBOVUxMCisgCistICAgIGNkZWYgbGlzdCBf c2V0dXBfaW50ZXJuYWxfcmVwcmVzZW50YXRpb24oc2VsZiwgbWF0cml4LCByZWR1Y2VkX21hdHJp eCwgcmluZywga2VlcF9pbml0aWFsX3JlcHJlc2VudGF0aW9uKSBub2V4Y2VwdDoKKysgICAgY2Rl ZiBsaXN0IF9zZXR1cF9pbnRlcm5hbF9yZXByZXNlbnRhdGlvbihzZWxmLCBtYXRyaXgsIHJlZHVj ZWRfbWF0cml4LCByaW5nLCBrZWVwX2luaXRpYWxfcmVwcmVzZW50YXRpb24pOgorICAgICAgICAg IiIiCisgICAgICAgICBTZXR1cCB0aGUgaW50ZXJuYWwgcmVwcmVzZW50YXRpb24gbWF0cml4IGBg c2VsZi5fQWBgIGFuZCB0aGUgYXJyYXkgb2Ygcm93LSBhbmQgY29sdW1uIGluZGljZXMgYGBzZWxm Ll9wcm93YGAuCisgCitAQCAtMzQ1LDcgKzM0NSw3IEBAIGNkZWYgY2xhc3MgTGluZWFyTWF0cm9p ZChCYXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgICAgICAgICAgICAgICAgIHNlbGYuX3Byb3dbc2Vs Zi5fQS5ucm93cygpICsgcl0gPSByCisgICAgICAgICByZXR1cm4gUAorIAorLSAgICBjcGRlZiBf Zm9yZ2V0KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZm9yZ2V0KHNlbGYpOgorICAgICAg ICAgIiIiCisgICAgICAgICBSZW1vdmUgdGhlIGludGVybmFsIHJlcHJlc2VudGF0aW9uIG1hdHJp eC4KKyAKK0BAIC0zNjQsNyArMzY0LDcgQEAgY2RlZiBjbGFzcyBMaW5lYXJNYXRyb2lkKEJhc2lz RXhjaGFuZ2VNYXRyb2lkKToKKyAgICAgICAgICIiIgorICAgICAgICAgc2VsZi5fcmVwcmVzZW50 YXRpb24gPSBOb25lCisgCistICAgIGNwZGVmIGJhc2VfcmluZyhzZWxmKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgYmFzZV9yaW5nKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4g dGhlIGJhc2UgcmluZyBvZiB0aGUgbWF0cml4IHJlcHJlc2VudGluZyB0aGUgbWF0cm9pZC4KKyAK K0BAIC0zNzcsNyArMzc3LDcgQEAgY2RlZiBjbGFzcyBMaW5lYXJNYXRyb2lkKEJhc2lzRXhjaGFu Z2VNYXRyb2lkKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX0EuYmFzZV9y aW5nKCkKKyAKKy0gICAgY3BkZWYgY2hhcmFjdGVyaXN0aWMoc2VsZikgbm9leGNlcHQ6CisrICAg IGNwZGVmIGNoYXJhY3RlcmlzdGljKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1 cm4gdGhlIGNoYXJhY3RlcmlzdGljIG9mIHRoZSBiYXNlIHJpbmcgb2YgdGhlIG1hdHJpeCByZXBy ZXNlbnRpbmcKKyAgICAgICAgIHRoZSBtYXRyb2lkLgorQEAgLTQyMiw3ICs0MjIsNyBAQCBjZGVm IGNsYXNzIExpbmVhck1hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJvaWQpOgorICAgICAgICAgc2Vs Zi5fcHJvd1t4XSA9IHB5CisgICAgICAgICBCYXNpc0V4Y2hhbmdlTWF0cm9pZC5fZXhjaGFuZ2Uo c2VsZiwgeCwgeSkKKyAKKy0gICAgY2RlZiAgX2V4Y2hhbmdlX3ZhbHVlX2ludGVybmFsKHNlbGYs IGxvbmcgeCwgbG9uZyB5KSBub2V4Y2VwdDoKKysgICAgY2RlZiAgX2V4Y2hhbmdlX3ZhbHVlX2lu dGVybmFsKHNlbGYsIGxvbmcgeCwgbG9uZyB5KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJl dHVybiB0aGUgKHgsIHkpIGVudHJ5IG9mIHRoZSBjdXJyZW50IHJlcHJlc2VudGF0aW9uLgorICAg ICAgICAgIiIiCitAQCAtNDcxLDcgKzQ3MSw3IEBAIGNkZWYgY2xhc3MgTGluZWFyTWF0cm9pZChC YXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgCisgICAgICMgcmVwcmVzZW50YXRpb25zCisgCistICAg IGNwZGVmIHJlcHJlc2VudGF0aW9uKHNlbGYsIEI9Tm9uZSwgcmVkdWNlZD1GYWxzZSwgbGFiZWxz PU5vbmUsIG9yZGVyPU5vbmUsIGxpZnRfbWFwPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBy ZXByZXNlbnRhdGlvbihzZWxmLCBCPU5vbmUsIHJlZHVjZWQ9RmFsc2UsIGxhYmVscz1Ob25lLCBv cmRlcj1Ob25lLCBsaWZ0X21hcD1Ob25lKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVy biBhIG1hdHJpeCByZXByZXNlbnRpbmcgdGhlIG1hdHJvaWQuCisgCitAQCAtNjQ5LDcgKzY0OSw3 IEBAIGNkZWYgY2xhc3MgTGluZWFyTWF0cm9pZChCYXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgICAg ICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbGlmdF9jcm9z c19yYXRpb3MoQS5fbWF0cml4XygpLCBsaWZ0X21hcCkKKyAKKy0gICAgY3BkZWYgX2N1cnJlbnRf cm93c19jb2xzKHNlbGYsIEI9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9jdXJyZW50X3Jv d3NfY29scyhzZWxmLCBCPU5vbmUpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhl IGN1cnJlbnQgcm93IGFuZCBjb2x1bW4gbGFiZWxzIG9mIGEgcmVkdWNlZCBtYXRyaXguCisgCitA QCAtNjg3LDcgKzY4Nyw3IEBAIGNkZWYgY2xhc3MgTGluZWFyTWF0cm9pZChCYXNpc0V4Y2hhbmdl TWF0cm9pZCk6CisgICAgICAgICAgICAgY29sc1tzZWxmLl9wcm93W3NlbGYuX2lkeFtlXV1dID0g ZQorICAgICAgICAgcmV0dXJuIHJvd3MsIGNvbHMKKyAKKy0gICAgY3BkZWYgTGVhbk1hdHJpeCBf YmFzaWNfcmVwcmVzZW50YXRpb24oc2VsZiwgQj1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg TGVhbk1hdHJpeCBfYmFzaWNfcmVwcmVzZW50YXRpb24oc2VsZiwgQj1Ob25lKToKKyAgICAgICAg ICIiIgorICAgICAgICAgUmV0dXJuIGEgYmFzaWMgbWF0cml4IHJlcHJlc2VudGF0aW9uIG9mIHRo ZSBtYXRyb2lkLgorIAorQEAgLTczNSw3ICs3MzUsNyBAQCBjZGVmIGNsYXNzIExpbmVhck1hdHJv aWQoQmFzaXNFeGNoYW5nZU1hdHJvaWQpOgorICAgICAgICAgICAgICAgICBpICs9IDEKKyAgICAg ICAgIHJldHVybiBBCisgCistICAgIGNwZGVmIHJlcHJlc2VudGF0aW9uX3ZlY3RvcnMoc2VsZikg bm9leGNlcHQ6CisrICAgIGNwZGVmIHJlcHJlc2VudGF0aW9uX3ZlY3RvcnMoc2VsZik6CisgICAg ICAgICAiIiIKKyAgICAgICAgIFJldHVybiBhIGRpY3Rpb25hcnkgdGhhdCBhc3NvY2lhdGVzIGEg Y29sdW1uIHZlY3RvciB3aXRoIGVhY2ggZWxlbWVudAorICAgICAgICAgb2YgdGhlIG1hdHJvaWQu CitAQCAtNzU1LDcgKzc1NSw3IEBAIGNkZWYgY2xhc3MgTGluZWFyTWF0cm9pZChCYXNpc0V4Y2hh bmdlTWF0cm9pZCk6CisgICAgICAgICBSID0gc2VsZi5fbWF0cml4XygpLmNvbHVtbnMoKQorICAg ICAgICAgcmV0dXJuIHtlOiBSW3NlbGYuX2lkeFtlXV0gZm9yIGUgaW4gc2VsZi5ncm91bmRzZXQo KX0KKyAKKy0gICAgY3BkZWYgTGVhbk1hdHJpeCBfcmVkdWNlZF9yZXByZXNlbnRhdGlvbihzZWxm LCBCPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBMZWFuTWF0cml4IF9yZWR1Y2VkX3JlcHJl c2VudGF0aW9uKHNlbGYsIEI9Tm9uZSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4g YSByZWR1Y2VkIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtYXRyb2lkLCBpLmUuIGEgbWF0cml4IGBS YCBzdWNoCisgICAgICAgICB0aGF0IGBbSVwgXCBSXWAgcmVwcmVzZW50cyB0aGUgbWF0cm9pZC4K K0BAIC04NzcsNyArODc3LDcgQEAgY2RlZiBjbGFzcyBMaW5lYXJNYXRyb2lkKEJhc2lzRXhjaGFu Z2VNYXRyb2lkKToKKyAgICAgICAgICAgICAgICAgbm9ybWFsaXphdGlvbltOLnBvcCgpXSA9IHNl bGYuX29uZQorICAgICAgICAgcmV0dXJuIFRydWUKKyAKKy0gICAgY3BkZWYgaXNfZmllbGRfZXF1 aXZhbGVudChzZWxmLCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGlzX2ZpZWxkX2VxdWl2 YWxlbnQoc2VsZiwgb3RoZXIpOgorICAgICAgICAgIiIiCisgICAgICAgICBUZXN0IGZvciBtYXRy b2lkIHJlcHJlc2VudGF0aW9uIGVxdWFsaXR5LgorIAorQEAgLTk2NCw3ICs5NjQsNyBAQCBjZGVm IGNsYXNzIExpbmVhck1hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJvaWQpOgorICAgICAgICAgbW9y cGhpc20gPSB7ZTogZSBmb3IgZSBpbiBzZWxmLmdyb3VuZHNldCgpfQorICAgICAgICAgcmV0dXJu IHNlbGYuX2lzX2ZpZWxkX2lzb21vcnBoaXNtKG90aGVyLCBtb3JwaGlzbSkKKyAKKy0gICAgY3Bk ZWYgaXNfZmllbGRfaXNvbW9ycGhpc20oc2VsZiwgb3RoZXIsIG1vcnBoaXNtKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgaXNfZmllbGRfaXNvbW9ycGhpc20oc2VsZiwgb3RoZXIsIG1vcnBoaXNtKToK KyAgICAgICAgIHIiIiIKKyAgICAgICAgIFRlc3QgaWYgYSBwcm92aWRlZCBtb3JwaGlzbSBpbmR1 Y2VzIGEgYmlqZWN0aW9uIGJldHdlZW4gcmVwcmVzZW50ZWQKKyAgICAgICAgIG1hdHJvaWRzLgor QEAgLTEwNTAsNyArMTA1MCw3IEBAIGNkZWYgY2xhc3MgTGluZWFyTWF0cm9pZChCYXNpc0V4Y2hh bmdlTWF0cm9pZCk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJldHVybiBzZWxmLl9p c19maWVsZF9pc29tb3JwaGlzbShjb3B5KG90aGVyKSwgbWYpCisgCistICAgIGNwZGVmIF9mYXN0 X2lzb21fdGVzdChzZWxmLCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9mYXN0X2lzb21f dGVzdChzZWxmLCBvdGhlcik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEZhc3QgKGZpZWxkKSBp c29tb3JwaGlzbSB0ZXN0IGZvciBzb21lIHN1YmNsYXNzZXMuCisgCitAQCAtMTI3NSw3ICsxMjc1 LDcgQEAgY2RlZiBjbGFzcyBMaW5lYXJNYXRyb2lkKEJhc2lzRXhjaGFuZ2VNYXRyb2lkKToKKyAK KyAgICAgIyBtaW5vcnMsIGR1YWwKKyAKKy0gICAgY3BkZWYgX21pbm9yKHNlbGYsIGNvbnRyYWN0 aW9ucywgZGVsZXRpb25zKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX21pbm9yKHNlbGYsIGNvbnRy YWN0aW9ucywgZGVsZXRpb25zKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBhIG1p bm9yLgorIAorQEAgLTEzMTksNyArMTMxOSw3IEBAIGNkZWYgY2xhc3MgTGluZWFyTWF0cm9pZChC YXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgICAgICAgICAgICAgICAgIE0uc2V0X3Vuc2FmZShpLCBq LCBzZWxmLl9leGNoYW5nZV92YWx1ZShyb3dzW2ldLCBjb2xzW2pdKSkKKyAgICAgICAgIHJldHVy biB0eXBlKHNlbGYpKHJlZHVjZWRfbWF0cml4PU0sIGdyb3VuZHNldD1yb3dzICsgY29scykKKyAK Ky0gICAgY3BkZWYgZHVhbChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZHVhbChzZWxmKToK KyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgZHVhbCBvZiB0aGUgbWF0cm9pZC4K KyAKK0BAIC0xMzUwLDcgKzEzNTAsNyBAQCBjZGVmIGNsYXNzIExpbmVhck1hdHJvaWQoQmFzaXNF eGNoYW5nZU1hdHJvaWQpOgorICAgICAgICAgcm93cywgY29scyA9IHNlbGYuX2N1cnJlbnRfcm93 c19jb2xzKCkKKyAgICAgICAgIHJldHVybiB0eXBlKHNlbGYpKHJlZHVjZWRfbWF0cml4PVIsIGdy b3VuZHNldD1jb2xzICsgcm93cykKKyAKKy0gICAgY3BkZWYgaGFzX2xpbmVfbWlub3Ioc2VsZiwg aywgaHlwZXJsaW5lcz1Ob25lLCBjZXJ0aWZpY2F0ZT1GYWxzZSkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIGhhc19saW5lX21pbm9yKHNlbGYsIGssIGh5cGVybGluZXM9Tm9uZSwgY2VydGlmaWNhdGU9 RmFsc2UpOgorICAgICAgICAgciIiIgorICAgICAgICAgVGVzdCBpZiB0aGUgbWF0cm9pZCBoYXMg YSBgVV97Miwga31gLW1pbm9yLgorIAorQEAgLTE0MDQsNyArMTQwNCw3IEBAIGNkZWYgY2xhc3Mg TGluZWFyTWF0cm9pZChCYXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgICAgICAgICAgICAgcGFzcwor ICAgICAgICAgcmV0dXJuIE1hdHJvaWQuaGFzX2xpbmVfbWlub3Ioc2VsZiwgaywgaHlwZXJsaW5l cywgY2VydGlmaWNhdGUpCisgCistICAgIGNwZGVmIGhhc19maWVsZF9taW5vcihzZWxmLCBOKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgaGFzX2ZpZWxkX21pbm9yKHNlbGYsIE4pOgorICAgICAgICAg IiIiCisgICAgICAgICBDaGVjayBpZiBgYHNlbGZgYCBoYXMgYSBtaW5vciBmaWVsZCBpc29tb3Jw aGljIHRvIGBgTmBgLgorIAorQEAgLTE0NjIsNyArMTQ2Miw3IEBAIGNkZWYgY2xhc3MgTGluZWFy TWF0cm9pZChCYXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgCisgICAgICMgY3ljbGVzLCBjb2N5Y2xl cyBhbmQgY3Jvc3MgcmF0aW9zCisgCistICAgIGNwZGVmIF9leGNoYW5nZV92YWx1ZShzZWxmLCBl LCBmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2V4Y2hhbmdlX3ZhbHVlKHNlbGYsIGUsIGYpOgor ICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIG1hdHJpeCBlbnRyeSBpbmRleGVkIGJ5 IHJvdyBgZWAgYW5kIGNvbHVtbiBgZmAuCisgCitAQCAtMTQ5MCw3ICsxNDkwLDcgQEAgY2RlZiBj bGFzcyBMaW5lYXJNYXRyb2lkKEJhc2lzRXhjaGFuZ2VNYXRyb2lkKToKKyAgICAgICAgICIiIgor ICAgICAgICAgcmV0dXJuIHNlbGYuX2V4Y2hhbmdlX3ZhbHVlX2ludGVybmFsKHNlbGYuX2lkeFtl XSwgc2VsZi5faWR4W2ZdKQorIAorLSAgICBjcGRlZiBmdW5kYW1lbnRhbF9jeWNsZShzZWxmLCBC LCBlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZnVuZGFtZW50YWxfY3ljbGUoc2VsZiwgQiwgZSk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgZnVuZGFtZW50YWwgY3ljbGUsIHJl bGF0aXZlIHRvIGBgQmBgLCBjb250YWluaW5nIGVsZW1lbnQKKyAgICAgICAgIGBgZWBgLgorQEAg LTE1MzYsNyArMTUzNiw3IEBAIGNkZWYgY2xhc3MgTGluZWFyTWF0cm9pZChCYXNpc0V4Y2hhbmdl TWF0cm9pZCk6CisgICAgICAgICAgICAgICAgIGNoYWluW2ZdID0gLXgKKyAgICAgICAgIHJldHVy biBjaGFpbgorIAorLSAgICBjcGRlZiBmdW5kYW1lbnRhbF9jb2N5Y2xlKHNlbGYsIEIsIGUpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBmdW5kYW1lbnRhbF9jb2N5Y2xlKHNlbGYsIEIsIGUpOgorICAg ICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGZ1bmRhbWVudGFsIGN5Y2xlLCByZWxhdGl2 ZSB0byBgYEJgYCwgY29udGFpbmluZyBlbGVtZW50CisgICAgICAgICBgYGVgYC4KK0BAIC0xNTgx LDcgKzE1ODEsNyBAQCBjZGVmIGNsYXNzIExpbmVhck1hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJv aWQpOgorICAgICAgICAgICAgICAgICBjb2NoYWluW2ZdID0geAorICAgICAgICAgcmV0dXJuIGNv Y2hhaW4KKyAKKy0gICAgY3BkZWYgX2xpbmVfcmF0aW9zKHNlbGYsIEYpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBfbGluZV9yYXRpb3Moc2VsZiwgRik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJl dHVybiB0aGUgc2V0IG9mIG5vbnplcm8gcmF0aW9zIG9mIGNvbHVtbiBlbnRyaWVzIGFmdGVyIGNv bnRyYWN0aW5nCisgICAgICAgICBhIHJhbmstYHItMmAgZmxhdCBgYEZgYC4KK0BAIC0xNjEyLDcg KzE2MTIsNyBAQCBjZGVmIGNsYXNzIExpbmVhck1hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJvaWQp OgorICAgICAgICAgICAgICAgICAgICAgcmF0LmFkZChzICogKHQgKiogKC0xKSkpCisgICAgICAg ICByZXR1cm4gcmF0CisgCistICAgIGNwZGVmIF9saW5lX2xlbmd0aChzZWxmLCBGKSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgX2xpbmVfbGVuZ3RoKHNlbGYsIEYpOgorICAgICAgICAgIiIiCisgICAg ICAgICBSZXR1cm4gYGBsZW4oTS5jb250cmFjdChGKS5zaW1wbGlmeSgpKWBgLCB3aGVyZSBgYEZg YCBpcyBhc3N1bWVkIHRvIGJlCisgICAgICAgICBhIGZsYXQgb2YgcmFuayAyIGxlc3MgdGhhbiB0 aGUgbWF0cm9pZC4KK0BAIC0xNjMyLDcgKzE2MzIsNyBAQCBjZGVmIGNsYXNzIExpbmVhck1hdHJv aWQoQmFzaXNFeGNoYW5nZU1hdHJvaWQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4g MiArIGxlbihzZWxmLl9saW5lX3JhdGlvcyhGKSkKKyAKKy0gICAgY3BkZWYgX2xpbmVfY3Jvc3Nf cmF0aW9zKHNlbGYsIEYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbGluZV9jcm9zc19yYXRpb3Mo c2VsZiwgRik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgc2V0IG9mIGNyb3Nz IHJhdGlvcyBvZiBjb2x1bW4gZW50cmllcyBhZnRlciBjb250cmFjdGluZyBhCisgICAgICAgICBy YW5rLWByLTJgIGZsYXQgYGBGYGAuCitAQCAtMTY2MCw3ICsxNjYwLDcgQEAgY2RlZiBjbGFzcyBM aW5lYXJNYXRyb2lkKEJhc2lzRXhjaGFuZ2VNYXRyb2lkKToKKyAgICAgICAgICAgICAgICAgY3Iu YWRkKHIyIC8gcjEpCisgICAgICAgICByZXR1cm4gY3IKKyAKKy0gICAgY3BkZWYgY3Jvc3NfcmF0 aW9zKHNlbGYsIGh5cGVybGluZXM9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGNyb3NzX3Jh dGlvcyhzZWxmLCBoeXBlcmxpbmVzPU5vbmUpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0 dXJuIHRoZSBzZXQgb2YgY3Jvc3MgcmF0aW9zIHRoYXQgb2NjdXIgaW4gdGhpcyBsaW5lYXIgbWF0 cm9pZC4KKyAKK0BAIC0xNzE4LDcgKzE3MTgsNyBAQCBjZGVmIGNsYXNzIExpbmVhck1hdHJvaWQo QmFzaXNFeGNoYW5nZU1hdHJvaWQpOgorICAgICAgICAgICAgIENSLmRpZmZlcmVuY2VfdXBkYXRl KGFzYykKKyAgICAgICAgIHJldHVybiBDUjIKKyAKKy0gICAgY3BkZWYgY3Jvc3NfcmF0aW8oc2Vs ZiwgRiwgYSwgYiwgYywgZCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGNyb3NzX3JhdGlvKHNlbGYs IEYsIGEsIGIsIGMsIGQpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBjcm9z cyByYXRpbyBvZiB0aGUgZm91ciBvcmRlcmVkIHBvaW50cyBgYGEsIGIsIGMsIGRgYAorICAgICAg ICAgYWZ0ZXIgY29udHJhY3RpbmcgYSBmbGF0IGBgRmBgIG9mIGNvZGltZW5zaW9uIDIuCitAQCAt MTc3NSw3ICsxNzc1LDcgQEAgY2RlZiBjbGFzcyBMaW5lYXJNYXRyb2lkKEJhc2lzRXhjaGFuZ2VN YXRyb2lkKToKKyAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJwb2ludHMgYSwgYiwgYywg ZCBkbyBub3QgZm9ybSBhIDQtcG9pbnQgbGluZSBpbiBNL0YiKQorICAgICAgICAgcmV0dXJuIGNy MSAvIGNyMgorIAorLSAgICBjcGRlZiBfbGluZV9jcm9zc19yYXRpb190ZXN0KHNlbGYsIEYsIHgs IGZ1bmRhbWVudGFscykgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9saW5lX2Nyb3NzX3JhdGlvX3Rl c3Qoc2VsZiwgRiwgeCwgZnVuZGFtZW50YWxzKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIENo ZWNrIHdoZXRoZXIgdGhlIGNyb3NzIHJhdGlvcyBpbnZvbHZpbmcgYSBmaXhlZCBlbGVtZW50IGlu IGEgZml4ZWQKKyAgICAgICAgIHJhbmstMiBtaW5vciBhcmUgaW4gYSBzcGVjaWZpZWQgc3Vic2V0 LgorQEAgLTE4MzUsNyArMTgzNSw3IEBAIGNkZWYgY2xhc3MgTGluZWFyTWF0cm9pZChCYXNpc0V4 Y2hhbmdlTWF0cm9pZCk6CisgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICByZXR1 cm4gVHJ1ZQorIAorLSAgICBjcGRlZiBfY3Jvc3NfcmF0aW9fdGVzdChzZWxmLCB4LCBmdW5kYW1l bnRhbHMsIGh5cGVybGluZXM9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9jcm9zc19yYXRp b190ZXN0KHNlbGYsIHgsIGZ1bmRhbWVudGFscywgaHlwZXJsaW5lcz1Ob25lKToKKyAgICAgICAg IHIiIiIKKyAgICAgICAgIFRlc3QgaWYgdGhlIGNyb3NzIHJhdGlvcyB1c2luZyBhIGdpdmVuIGVs ZW1lbnQgb2YgdGhpcyBsaW5lYXIgbWF0cm9pZAorICAgICAgICAgYXJlIGNvbnRhaW5lZCBpbiBh IGdpdmVuIHNldCBvZiBmdW5kYW1lbnRhbHMuCitAQCAtMTg4Myw3ICsxODgzLDcgQEAgY2RlZiBj bGFzcyBMaW5lYXJNYXRyb2lkKEJhc2lzRXhjaGFuZ2VNYXRyb2lkKToKKyAgICAgICAgIHJldHVy biBUcnVlCisgCisgICAgICMgbGluZWFyIGV4dGVuc2lvbgorLSAgICBjcGRlZiBsaW5lYXJfZXh0 ZW5zaW9uKHNlbGYsIGVsZW1lbnQsIGNoYWluPU5vbmUsIGNvbD1Ob25lKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgbGluZWFyX2V4dGVuc2lvbihzZWxmLCBlbGVtZW50LCBjaGFpbj1Ob25lLCBjb2w9 Tm9uZSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gYSBsaW5lYXIgZXh0ZW5zaW9u IG9mIHRoaXMgbWF0cm9pZC4KKyAKK0BAIC0xOTUxLDcgKzE5NTEsNyBAQCBjZGVmIGNsYXNzIExp bmVhck1hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJvaWQpOgorICAgICAgICAgICAgICAgICByYWlz ZSBUeXBlRXJyb3IoImNoYWluIGFyZ3VtZW50IG5lZWRzIHRvIGJlIGEgZGljdGlvbmFyeSIpCisg ICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2xpbmVhcl9leHRlbnNpb25zKGVsZW1lbnQsIFtjaGFp bl0pWzBdCisgCistICAgIGNwZGVmIGxpbmVhcl9jb2V4dGVuc2lvbihzZWxmLCBlbGVtZW50LCBj b2NoYWluPU5vbmUsIHJvdz1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgbGluZWFyX2NvZXh0 ZW5zaW9uKHNlbGYsIGVsZW1lbnQsIGNvY2hhaW49Tm9uZSwgcm93PU5vbmUpOgorICAgICAgICAg ciIiIgorICAgICAgICAgUmV0dXJuIGEgbGluZWFyIGNvZXh0ZW5zaW9uIG9mIHRoaXMgbWF0cm9p ZC4KKyAKK0BAIC0yMDUyLDcgKzIwNTIsNyBAQCBjZGVmIGNsYXNzIExpbmVhck1hdHJvaWQoQmFz aXNFeGNoYW5nZU1hdHJvaWQpOgorICAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoImNv Y2hhaW4gYXJndW1lbnQgbmVlZHMgdG8gYmUgYSBkaWN0aW9uYXJ5IikKKyAgICAgICAgICAgICBy ZXR1cm4gc2VsZi5fbGluZWFyX2NvZXh0ZW5zaW9ucyhlbGVtZW50LCBbY29jaGFpbl0pWzBdCisg CistICAgIGNwZGVmIF9saW5lYXJfZXh0ZW5zaW9ucyhzZWxmLCBlbGVtZW50LCBjaGFpbnMpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBfbGluZWFyX2V4dGVuc2lvbnMoc2VsZiwgZWxlbWVudCwgY2hh aW5zKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgbGluZWFyIGV4dGVuc2lv bnMgb2YgdGhpcyBtYXRyb2lkIHJlcHJlc2VudGF0aW9uIHNwZWNpZmllZAorICAgICAgICAgYnkg dGhlIGdpdmVuIGNoYWlucy4KK0BAIC0yMTAwLDcgKzIxMDAsNyBAQCBjZGVmIGNsYXNzIExpbmVh ck1hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJvaWQpOgorICAgICAgICAgICAgIGV4dC5hcHBlbmQo dHlwZShzZWxmKShtYXRyaXg9TSwgZ3JvdW5kc2V0PUUpKQorICAgICAgICAgcmV0dXJuIGV4dAor IAorLSAgICBjcGRlZiBfbGluZWFyX2NvZXh0ZW5zaW9ucyhzZWxmLCBlbGVtZW50LCBjb2NoYWlu cykgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9saW5lYXJfY29leHRlbnNpb25zKHNlbGYsIGVsZW1l bnQsIGNvY2hhaW5zKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgbGluZWFy IGNvZXh0ZW5zaW9ucyBvZiB0aGlzIG1hdHJvaWQgcmVwcmVzZW50YXRpb24KKyAgICAgICAgIHNw ZWNpZmllZCBieSB0aGUgZ2l2ZW4gY29jaGFpbnMuCitAQCAtMjE0OCw3ICsyMTQ4LDcgQEAgY2Rl ZiBjbGFzcyBMaW5lYXJNYXRyb2lkKEJhc2lzRXhjaGFuZ2VNYXRyb2lkKToKKyAgICAgICAgICAg ICBjb2V4dC5hcHBlbmQodHlwZShzZWxmKShtYXRyaXg9TSwgZ3JvdW5kc2V0PUUpKQorICAgICAg ICAgcmV0dXJuIGNvZXh0CisgCistICAgIGNkZWYgX2V4dGVuZF9jaGFpbnMoc2VsZiwgQywgZiwg ZnVuZGFtZW50YWxzPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9leHRlbmRfY2hhaW5zKHNl bGYsIEMsIGYsIGZ1bmRhbWVudGFscz1Ob25lKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIEV4 dGVuZCBhIGxpc3Qgb2YgY2hhaW5zIGZvciBgYHNlbGYgLyBmYGAgdG8gYSBsaXN0IG9mIGNoYWlu cyBmb3IKKyAgICAgICAgIGBgc2VsZmBgLgorQEAgLTIyMTAsNyArMjIxMCw3IEBAIGNkZWYgY2xh c3MgTGluZWFyTWF0cm9pZChCYXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgICAgICAgICAgICAgcmVz ID0gW2NoYWluIGZvciBjaGFpbiBpbiByZXMgaWYgbGVuKGNoYWluKSA8IDIgb3Igc2VsZi5fbGlu ZWFyX2V4dGVuc2lvbnMobmUsIFtjaGFpbl0pWzBdLl9jcm9zc19yYXRpb190ZXN0KG5lLCBmdW5k YW1lbnRhbHMsIGh5cGVybGluZXMpXQorICAgICAgICAgcmV0dXJuIHJlcworIAorLSAgICBjcGRl ZiBfbGluZWFyX2V4dGVuc2lvbl9jaGFpbnMoc2VsZiwgRiwgZnVuZGFtZW50YWxzPU5vbmUpIG5v ZXhjZXB0OiAgIyBhc3N1bWVzIGluZGVwZW5kZW50IEYKKysgICAgY3BkZWYgX2xpbmVhcl9leHRl bnNpb25fY2hhaW5zKHNlbGYsIEYsIGZ1bmRhbWVudGFscz1Ob25lKTogICMgYXNzdW1lcyBpbmRl cGVuZGVudCBGCisgICAgICAgICByIiIiCisgICAgICAgICBDcmVhdGUgYSBsaXN0IG9mIGNoYWlu cyB0aGF0IGRldGVybWluZSBzaW5nbGUtZWxlbWVudCBleHRlbnNpb25zIG9mCisgICAgICAgICB0 aGlzIGxpbmVhciBtYXRyb2lkIHJlcHJlc2VudGF0aW9uLgorQEAgLTIyODYsNyArMjI4Niw3IEBA IGNkZWYgY2xhc3MgTGluZWFyTWF0cm9pZChCYXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgICAgICAg ICAgICAgICAgIGNoYWlucyA9IG5ld19jaGFpbnMKKyAgICAgICAgIHJldHVybiBjaGFpbnMKKyAK Ky0gICAgY3BkZWYgbGluZWFyX2V4dGVuc2lvbl9jaGFpbnMoc2VsZiwgRj1Ob25lLCBzaW1wbGU9 RmFsc2UsIGZ1bmRhbWVudGFscz1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgbGluZWFyX2V4 dGVuc2lvbl9jaGFpbnMoc2VsZiwgRj1Ob25lLCBzaW1wbGU9RmFsc2UsIGZ1bmRhbWVudGFscz1O b25lKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIENyZWF0ZSBhIGxpc3Qgb2YgY2hhaW5zIHRo YXQgZGV0ZXJtaW5lIHRoZSBzaW5nbGUtZWxlbWVudCBleHRlbnNpb25zCisgICAgICAgICBvZiB0 aGlzIGxpbmVhciBtYXRyb2lkIHJlcHJlc2VudGF0aW9uLgorQEAgLTIzODUsNyArMjM4NSw3IEBA IGNkZWYgY2xhc3MgTGluZWFyTWF0cm9pZChCYXNpc0V4Y2hhbmdlTWF0cm9pZCk6CisgICAgICAg ICAgICAgY2hhaW5zID0gc2ltcGxlX2NoYWlucworICAgICAgICAgcmV0dXJuIGNoYWlucworIAor LSAgICBjcGRlZiBsaW5lYXJfY29leHRlbnNpb25fY29jaGFpbnMoc2VsZiwgRj1Ob25lLCBjb3Np bXBsZT1GYWxzZSwgZnVuZGFtZW50YWxzPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBsaW5l YXJfY29leHRlbnNpb25fY29jaGFpbnMoc2VsZiwgRj1Ob25lLCBjb3NpbXBsZT1GYWxzZSwgZnVu ZGFtZW50YWxzPU5vbmUpOgorICAgICAgICAgciIiIgorICAgICAgICAgQ3JlYXRlIGEgbGlzdCBv ZiBjb2NoYWlucyB0aGF0IGRldGVybWluZSB0aGUgc2luZ2xlLWVsZW1lbnQKKyAgICAgICAgIGNv ZXh0ZW5zaW9ucyBvZiB0aGlzIGxpbmVhciBtYXRyb2lkIHJlcHJlc2VudGF0aW9uLgorQEAgLTI0 NDMsNyArMjQ0Myw3IEBAIGNkZWYgY2xhc3MgTGluZWFyTWF0cm9pZChCYXNpc0V4Y2hhbmdlTWF0 cm9pZCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLmR1YWwoKS5saW5lYXJf ZXh0ZW5zaW9uX2NoYWlucyhGPUYsIHNpbXBsZT1jb3NpbXBsZSwgZnVuZGFtZW50YWxzPWZ1bmRh bWVudGFscykKKyAKKy0gICAgY3BkZWYgbGluZWFyX2V4dGVuc2lvbnMoc2VsZiwgZWxlbWVudD1O b25lLCBGPU5vbmUsIHNpbXBsZT1GYWxzZSwgZnVuZGFtZW50YWxzPU5vbmUpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBsaW5lYXJfZXh0ZW5zaW9ucyhzZWxmLCBlbGVtZW50PU5vbmUsIEY9Tm9uZSwg c2ltcGxlPUZhbHNlLCBmdW5kYW1lbnRhbHM9Tm9uZSk6CisgICAgICAgICByIiIiCisgICAgICAg ICBDcmVhdGUgYSBsaXN0IG9mIGxpbmVhciBtYXRyb2lkcyByZXByZXNlbnRlZCBieSByYW5rLXBy ZXNlcnZpbmcgc2luZ2xlLWVsZW1lbnQKKyAgICAgICAgIGV4dGVuc2lvbnMgb2YgdGhpcyBsaW5l YXIgbWF0cm9pZCByZXByZXNlbnRhdGlvbi4KK0BAIC0yNTExLDcgKzI1MTEsNyBAQCBjZGVmIGNs YXNzIExpbmVhck1hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJvaWQpOgorICAgICAgICAgY2hhaW5z ID0gc2VsZi5saW5lYXJfZXh0ZW5zaW9uX2NoYWlucyhGLCBzaW1wbGU9c2ltcGxlLCBmdW5kYW1l bnRhbHM9ZnVuZGFtZW50YWxzKQorICAgICAgICAgcmV0dXJuIHNlbGYuX2xpbmVhcl9leHRlbnNp b25zKGVsZW1lbnQsIGNoYWlucykKKyAKKy0gICAgY3BkZWYgbGluZWFyX2NvZXh0ZW5zaW9ucyhz ZWxmLCBlbGVtZW50PU5vbmUsIEY9Tm9uZSwgY29zaW1wbGU9RmFsc2UsIGZ1bmRhbWVudGFscz1O b25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgbGluZWFyX2NvZXh0ZW5zaW9ucyhzZWxmLCBlbGVt ZW50PU5vbmUsIEY9Tm9uZSwgY29zaW1wbGU9RmFsc2UsIGZ1bmRhbWVudGFscz1Ob25lKToKKyAg ICAgICAgIHIiIiIKKyAgICAgICAgIENyZWF0ZSBhIGxpc3Qgb2YgbGluZWFyIG1hdHJvaWRzIHJl cHJlc2VudGVkIGJ5IGNvcmFuay1wcmVzZXJ2aW5nIHNpbmdsZS1lbGVtZW50CisgICAgICAgICBj b2V4dGVuc2lvbnMgb2YgdGhpcyBsaW5lYXIgbWF0cm9pZCByZXByZXNlbnRhdGlvbi4KK0BAIC0y NTgyLDcgKzI1ODIsNyBAQCBjZGVmIGNsYXNzIExpbmVhck1hdHJvaWQoQmFzaXNFeGNoYW5nZU1h dHJvaWQpOgorICAgICAgICAgY29jaGFpbnMgPSBzZWxmLmxpbmVhcl9jb2V4dGVuc2lvbl9jb2No YWlucyhGLCBjb3NpbXBsZT1jb3NpbXBsZSwgZnVuZGFtZW50YWxzPWZ1bmRhbWVudGFscykKKyAg ICAgICAgIHJldHVybiBzZWxmLl9saW5lYXJfY29leHRlbnNpb25zKGVsZW1lbnQsIGNvY2hhaW5z KQorIAorLSAgICBjcGRlZiBpc192YWxpZChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgaXNf dmFsaWQoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBUZXN0IGlmIHRoZSBkYXRhIHJl cHJlc2VudCBhbiBhY3R1YWwgbWF0cm9pZC4KKyAKK0BAIC0yNjMzLDcgKzI2MzMsNyBAQCBjZGVm IGNsYXNzIExpbmVhck1hdHJvaWQoQmFzaXNFeGNoYW5nZU1hdHJvaWQpOgorIAorICAgICAjIGNv bm5lY3Rpdml0eQorIAorLSAgICBjcGRlZiBfaXNfM2Nvbm5lY3RlZF9zaGlmdGluZyhzZWxmLCBj ZXJ0aWZpY2F0ZT1GYWxzZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9pc18zY29ubmVjdGVkX3No aWZ0aW5nKHNlbGYsIGNlcnRpZmljYXRlPUZhbHNlKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAg IFJldHVybiBgYFRydWVgYCBpZiB0aGUgbWF0cm9pZCBpcyA0LWNvbm5lY3RlZCwgYGBGYWxzZWBg IG90aGVyd2lzZS4gSXQgY2FuCisgICAgICAgICBvcHRpb25hbGx5IHJldHVybiBhIHNlcGFyYXRv ciBhcyBhIHdpdG5lc3MuCitAQCAtMjcxMiw3ICsyNzEyLDcgQEAgY2RlZiBjbGFzcyBMaW5lYXJN YXRyb2lkKEJhc2lzRXhjaGFuZ2VNYXRyb2lkKToKKyAgICAgICAgICAgICByZXR1cm4gVHJ1ZSwg Tm9uZQorICAgICAgICAgcmV0dXJuIFRydWUKKyAKKy0gICAgY3BkZWYgX2lzXzRjb25uZWN0ZWRf c2hpZnRpbmcoc2VsZiwgY2VydGlmaWNhdGU9RmFsc2UpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBf aXNfNGNvbm5lY3RlZF9zaGlmdGluZyhzZWxmLCBjZXJ0aWZpY2F0ZT1GYWxzZSk6CisgICAgICAg ICByIiIiCisgICAgICAgICBSZXR1cm4gYGBUcnVlYGAgaWYgdGhlIG1hdHJvaWQgaXMgNC1jb25u ZWN0ZWQsIGBgRmFsc2VgYCBvdGhlcndpc2UuIEl0IGNhbgorICAgICAgICAgb3B0aW9uYWxseSBy ZXR1cm4gYSBzZXBhcmF0b3IgYXMgYSB3aXRuZXNzLgorQEAgLTMxMTYsNyArMzExNiw3IEBAIGNk ZWYgY2xhc3MgQmluYXJ5TWF0cm9pZChMaW5lYXJNYXRyb2lkKToKKyAgICAgICAgIHNlbGYuX3pl cm8gPSBHRjJfemVybworICAgICAgICAgc2VsZi5fb25lID0gR0YyX29uZQorIAorLSAgICBjcGRl ZiBiYXNlX3Jpbmcoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGJhc2VfcmluZyhzZWxmKToK KyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYmFzZSByaW5nIG9mIHRoZSBtYXRy aXggcmVwcmVzZW50aW5nIHRoZSBtYXRyb2lkLAorICAgICAgICAgaW4gdGhpcyBjYXNlIGBcR0Z7 Mn1gLgorQEAgLTMxMzAsNyArMzEzMCw3IEBAIGNkZWYgY2xhc3MgQmluYXJ5TWF0cm9pZChMaW5l YXJNYXRyb2lkKToKKyAgICAgICAgIGdsb2JhbCBHRjIKKyAgICAgICAgIHJldHVybiBHRjIKKyAK Ky0gICAgY3BkZWYgY2hhcmFjdGVyaXN0aWMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGNo YXJhY3RlcmlzdGljKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGNo YXJhY3RlcmlzdGljIG9mIHRoZSBiYXNlIHJpbmcgb2YgdGhlIG1hdHJpeCByZXByZXNlbnRpbmcK KyAgICAgICAgIHRoZSBtYXRyb2lkLCBpbiB0aGlzIGNhc2UgYDJgLgorQEAgLTMxNTgsMTMgKzMx NTgsMTMgQEAgY2RlZiBjbGFzcyBCaW5hcnlNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAgICAg ICAgc2VsZi5fcHJvd1t5XSA9IHAKKyAgICAgICAgIEJhc2lzRXhjaGFuZ2VNYXRyb2lkLl9leGNo YW5nZShzZWxmLCB4LCB5KQorIAorLSAgICBjZGVmICBfX2Z1bmRhbWVudGFsX2NvY2lyY3VpdChz ZWxmLCBiaXRzZXRfdCBDLCBsb25nIHgpIG5vZXhjZXB0OgorKyAgICBjZGVmICBfX2Z1bmRhbWVu dGFsX2NvY2lyY3VpdChzZWxmLCBiaXRzZXRfdCBDLCBsb25nIHgpOgorICAgICAgICAgciIiIgor ICAgICAgICAgRmlsbCBiaXRzZXQgYENgIHdpdGggdGhlIGluY2lkZW5jZSB2ZWN0b3Igb2YgdGhl IGBCYC1mdW5kYW1lbnRhbCBjb2NpcmN1aXQgdXNpbmcgYGB4YGAuIEludGVybmFsIG1ldGhvZCB1 c2luZyBwYWNrZWQgZWxlbWVudHMuCisgICAgICAgICAiIiIKKyAgICAgICAgIGJpdHNldF9jb3B5 KEMsICg8QmluYXJ5TWF0cml4PnNlbGYuX0EpLl9NW3NlbGYuX3Byb3dbeF1dKQorIAorLSAgICBj ZGVmIF9jb2Nsb3N1cmVfaW50ZXJuYWwoc2VsZiwgYml0c2V0X3QgUiwgYml0c2V0X3QgRikgbm9l eGNlcHQ6CisrICAgIGNkZWYgX2NvY2xvc3VyZV9pbnRlcm5hbChzZWxmLCBiaXRzZXRfdCBSLCBi aXRzZXRfdCBGKToKKyAgICAgICAgICIiIgorICAgICAgICAgQml0cGFja2VkIHZlcnNpb24gb2Yg YGBjb2Nsb3N1cmVgYC4KKyAKK0BAIC0zMTg3LDcgKzMxODcsNyBAQCBjZGVmIGNsYXNzIEJpbmFy eU1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAgICAgICAgICAgIGJpdHNldF9hZGQoUiwg eSkKKyAgICAgICAgICAgICB5ID0gYml0c2V0X25leHQoc2VsZi5faW5zaWRlLCB5ICsgMSkKKyAK Ky0gICAgY2RlZiAgX2V4Y2hhbmdlX3ZhbHVlX2ludGVybmFsKHNlbGYsIGxvbmcgeCwgbG9uZyB5 KSBub2V4Y2VwdDoKKysgICAgY2RlZiAgX2V4Y2hhbmdlX3ZhbHVlX2ludGVybmFsKHNlbGYsIGxv bmcgeCwgbG9uZyB5KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgKHgsIHkp IGVudHJ5IG9mIHRoZSBjdXJyZW50IHJlcHJlc2VudGF0aW9uLgorICAgICAgICAgIiIiCitAQCAt MzIxMyw3ICszMjEzLDcgQEAgY2RlZiBjbGFzcyBCaW5hcnlNYXRyb2lkKExpbmVhck1hdHJvaWQp OgorICAgICAgICAgUyA9ICJCaW5hcnkgbWF0cm9pZCBvZiByYW5rICIgKyBzdHIoc2VsZi5yYW5r KCkpICsgIiBvbiAiICsgc3RyKHNlbGYuc2l6ZSgpKSArICIgZWxlbWVudHMsIHR5cGUgKCIgKyBz dHIoc2VsZi5iaWN5Y2xlX2RpbWVuc2lvbigpKSArICcsICcgKyBzdHIoc2VsZi5icm93bl9pbnZh cmlhbnQoKSkgKyAnKScKKyAgICAgICAgIHJldHVybiBTCisgCistICAgIGNwZGVmIF9jdXJyZW50 X3Jvd3NfY29scyhzZWxmLCBCPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfY3VycmVudF9y b3dzX2NvbHMoc2VsZiwgQj1Ob25lKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRo ZSBjdXJyZW50IHJvdyBhbmQgY29sdW1uIGxhYmVscyBvZiBhIHJlZHVjZWQgbWF0cml4LgorIAor QEAgLTMyNTQsNyArMzI1NCw3IEBAIGNkZWYgY2xhc3MgQmluYXJ5TWF0cm9pZChMaW5lYXJNYXRy b2lkKToKKyAgICAgICAgICAgICAgICAgYyArPSAxCisgICAgICAgICByZXR1cm4gcm93cywgY29s cworIAorLSAgICBjcGRlZiBMZWFuTWF0cml4IF9iYXNpY19yZXByZXNlbnRhdGlvbihzZWxmLCBC PU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBMZWFuTWF0cml4IF9iYXNpY19yZXByZXNlbnRh dGlvbihzZWxmLCBCPU5vbmUpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYSBiYXNp YyBtYXRyaXggcmVwcmVzZW50YXRpb24gb2YgdGhlIG1hdHJvaWQuCisgCitAQCAtMzI5Myw3ICsz MjkzLDcgQEAgY2RlZiBjbGFzcyBCaW5hcnlNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAgICAg ICAgICAgIHNlbGYuX21vdmVfY3VycmVudF9iYXNpcyhCLCBzZXQoKSkKKyAgICAgICAgIHJldHVy biBzZWxmLl9BLmNvcHkoKSAgICMgRGVwcmVjYXRlZCBTYWdlIG1hdHJpeCBvcGVyYXRpb24KKyAK Ky0gICAgY3BkZWYgTGVhbk1hdHJpeCBfcmVkdWNlZF9yZXByZXNlbnRhdGlvbihzZWxmLCBCPU5v bmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBMZWFuTWF0cml4IF9yZWR1Y2VkX3JlcHJlc2VudGF0 aW9uKHNlbGYsIEI9Tm9uZSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gYSByZWR1 Y2VkIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtYXRyb2lkLCBpLmUuIGEgbWF0cml4IGBSYCBzdWNo CisgICAgICAgICB0aGF0IGBbSVwgXCBSXWAgcmVwcmVzZW50cyB0aGUgbWF0cm9pZC4KK0BAIC0z MzM1LDcgKzMzMzUsNyBAQCBjZGVmIGNsYXNzIEJpbmFyeU1hdHJvaWQoTGluZWFyTWF0cm9pZCk6 CisgCisgICAgICMgaXNvbW9ycGhpc20KKyAKKy0gICAgY3BkZWYgX2lzX2lzb21vcnBoaWMoc2Vs Ziwgb3RoZXIsIGNlcnRpZmljYXRlPUZhbHNlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2lzX2lz b21vcnBoaWMoc2VsZiwgb3RoZXIsIGNlcnRpZmljYXRlPUZhbHNlKToKKyAgICAgICAgICIiIgor ICAgICAgICAgVGVzdCBpZiBgYHNlbGZgYCBpcyBpc29tb3JwaGljIHRvIGBgb3RoZXJgYC4KKyAK K0BAIC0zMzgzLDcgKzMzODMsNyBAQCBjZGVmIGNsYXNzIEJpbmFyeU1hdHJvaWQoTGluZWFyTWF0 cm9pZCk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJldHVybiBMaW5lYXJNYXRyb2lk Ll9pc19pc29tb3JwaGljKHNlbGYsIG90aGVyKQorIAorLSAgICBjcGRlZiBfaXNfaXNvbW9ycGhp c20oc2VsZiwgb3RoZXIsIG1vcnBoaXNtKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2lzX2lzb21v cnBoaXNtKHNlbGYsIG90aGVyLCBtb3JwaGlzbSk6CisgICAgICAgICByIiIiCisgICAgICAgICBU ZXN0IGlmIGEgZ2l2ZW4gYmlqZWN0aW9uIGlzIGFuIGlzb21vcnBoaXNtLgorIAorQEAgLTM0MTQs NyArMzQxNCw3IEBAIGNkZWYgY2xhc3MgQmluYXJ5TWF0cm9pZChMaW5lYXJNYXRyb2lkKToKKyAg ICAgICAgICAgICByZXR1cm4gTGluZWFyTWF0cm9pZC5faXNfaXNvbW9ycGhpc20oc2VsZiwgb3Ro ZXIsIG1vcnBoaXNtKQorIAorICAgICAjIGludmFyaWFudHMKKy0gICAgY3BkZWYgX21ha2VfaW52 YXJpYW50KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbWFrZV9pbnZhcmlhbnQoc2VsZik6 CisgICAgICAgICAiIiIKKyAgICAgICAgIENyZWF0ZSBhbiBpbnZhcmlhbnQuCisgCitAQCAtMzUw NCw3ICszNTA0LDcgQEAgY2RlZiBjbGFzcyBCaW5hcnlNYXRyb2lkKExpbmVhck1hdHJvaWQpOgor ICAgICAgICAgc2VsZi5fYl9pbnZhcmlhbnQgPSB0dXBsZShbZCwgYjIsIGxlbihGbSksIGxlbihG MCksIGxlbihGcCksIHBbMF0sIHBbMV0sIHBbMl1dKQorICAgICAgICAgc2VsZi5fYl9wYXJ0aXRp b24gPSB0dXBsZShbRm0sIEYwLCBGcF0pCisgCistICAgIGNwZGVmIF9pbnZhcmlhbnQoc2VsZikg bm9leGNlcHQ6CisrICAgIGNwZGVmIF9pbnZhcmlhbnQoc2VsZik6CisgICAgICAgICByIiIiCisg ICAgICAgICBSZXR1cm4gYSBtYXRyb2lkIGludmFyaWFudC4KKyAKK0BAIC0zNTMzLDcgKzM1MzMs NyBAQCBjZGVmIGNsYXNzIEJpbmFyeU1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAgICAg ICAgc2VsZi5fbWFrZV9pbnZhcmlhbnQoKQorICAgICAgICAgcmV0dXJuIHNlbGYuX2JfaW52YXJp YW50CisgCistICAgIGNwZGVmIGJpY3ljbGVfZGltZW5zaW9uKHNlbGYpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBiaWN5Y2xlX2RpbWVuc2lvbihzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAg IFJldHVybiB0aGUgYmljeWNsZSBkaW1lbnNpb24gb2YgdGhlIGJpbmFyeSBtYXRyb2lkLgorIAor QEAgLTM1NTYsNyArMzU1Niw3IEBAIGNkZWYgY2xhc3MgQmluYXJ5TWF0cm9pZChMaW5lYXJNYXRy b2lkKToKKyAgICAgICAgICAgICBzZWxmLl9tYWtlX2ludmFyaWFudCgpCisgICAgICAgICByZXR1 cm4gc2VsZi5fYl9pbnZhcmlhbnRbMF0KKyAKKy0gICAgY3BkZWYgYnJvd25faW52YXJpYW50KHNl bGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBicm93bl9pbnZhcmlhbnQoc2VsZik6CisgICAgICAg ICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHZhbHVlIG9mIEJyb3duJ3MgaW52YXJpYW50IGZv ciB0aGUgYmluYXJ5IG1hdHJvaWQuCisgCitAQCAtMzU5Myw3ICszNTkzLDcgQEAgY2RlZiBjbGFz cyBCaW5hcnlNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAgICAgICAgICAgIHNlbGYuX21ha2Vf aW52YXJpYW50KCkKKyAgICAgICAgIHJldHVybiBzZWxmLl9iX2ludmFyaWFudFsxXQorIAorLSAg ICBjcGRlZiBfcHJpbmNpcGFsX3RyaXBhcnRpdGlvbihzZWxmKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgX3ByaW5jaXBhbF90cmlwYXJ0aXRpb24oc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAg ICBSZXR1cm4gdGhlIHByaW5jaXBhbCB0cmlwYXJ0aXRpb24gb2YgdGhlIGJpbmFyeSBtYXRyb2lk LgorIAorQEAgLTM2MzEsNyArMzYzMSw3IEBAIGNkZWYgY2xhc3MgQmluYXJ5TWF0cm9pZChMaW5l YXJNYXRyb2lkKToKKyAgICAgICAgIFAgPSBzZWxmLl9iX3BhcnRpdGlvbgorICAgICAgICAgcmV0 dXJuIGZyb3plbnNldChbc2VsZi5fRVtlXSBmb3IgZSBpbiBQWzBdXSksIGZyb3plbnNldChbc2Vs Zi5fRVtlXSBmb3IgZSBpbiBQWzFdXSksIGZyb3plbnNldChbc2VsZi5fRVtlXSBmb3IgZSBpbiBQ WzJdXSkKKyAKKy0gICAgY3BkZWYgQmluYXJ5TWF0cml4IF9wcm9qZWN0aW9uKHNlbGYpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBCaW5hcnlNYXRyaXggX3Byb2plY3Rpb24oc2VsZik6CisgICAgICAg ICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgcHJvamVjdGlvbiBtYXRyaXggb250byB0aGUgcm93 IHNwYWNlLgorIAorQEAgLTM2NzIsNyArMzY3Miw3IEBAIGNkZWYgY2xhc3MgQmluYXJ5TWF0cm9p ZChMaW5lYXJNYXRyb2lkKToKKyAgICAgICAgICAgICBzZWxmLl9tYWtlX2ludmFyaWFudCgpCisg ICAgICAgICByZXR1cm4gc2VsZi5fYl9wcm9qZWN0aW9uCisgCistICAgIGNwZGVmIEJpbmFyeU1h dHJpeCBfcHJvamVjdGlvbl9wYXJ0aXRpb24oc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIEJp bmFyeU1hdHJpeCBfcHJvamVjdGlvbl9wYXJ0aXRpb24oc2VsZik6CisgICAgICAgICAiIiIKKyAg ICAgICAgIFJldHVybiB0aGUgZXF1aXRhYmxlIHBhcnRpdGlvbiBvZiB0aGUgZ3JhcGggd2hvc2Ug aW5jaWRlbmNlIG1hdHJpeCBpcworICAgICAgICAgdGhlIHByb2plY3Rpb24gbWF0cml4IG9mIHRo aXMgbWF0cm9pZC4KK0BAIC0zNzA0LDcgKzM3MDQsNyBAQCBjZGVmIGNsYXNzIEJpbmFyeU1hdHJv aWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAgICAgICAgc2VsZi5fZXFfcGFydCA9IHNlbGYuX2Jf cHJvamVjdGlvbi5lcXVpdGFibGVfcGFydGl0aW9uKCkgICAjIE5vdCBhIFNhZ2UgbWF0cml4IG9w ZXJhdGlvbgorICAgICAgICAgcmV0dXJuIHNlbGYuX2VxX3BhcnQKKyAKKy0gICAgY3BkZWYgX2Zh c3RfaXNvbV90ZXN0KHNlbGYsIG90aGVyKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2Zhc3RfaXNv bV90ZXN0KHNlbGYsIG90aGVyKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJ1biBhIHF1aWNr IHRlc3QgdG8gc2VlIGlmIHR3byBiaW5hcnkgbWF0cm9pZHMgYXJlIGlzb21vcnBoaWMuCisgCitA QCAtMzczOCw3ICszNzM4LDcgQEAgY2RlZiBjbGFzcyBCaW5hcnlNYXRyb2lkKExpbmVhck1hdHJv aWQpOgorIAorICAgICAjIG1pbm9ycywgZHVhbAorIAorLSAgICBjcGRlZiBfbWlub3Ioc2VsZiwg Y29udHJhY3Rpb25zLCBkZWxldGlvbnMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbWlub3Ioc2Vs ZiwgY29udHJhY3Rpb25zLCBkZWxldGlvbnMpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0 dXJuIGEgbWlub3IuCisgCitAQCAtMzc4MSw3ICszNzgxLDcgQEAgY2RlZiBjbGFzcyBCaW5hcnlN YXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2Vl cF9pbml0aWFsX3JlcHJlc2VudGF0aW9uPUZhbHNlKQorIAorICAgICAjIGdyYXBoaWNuZXNzIHRl c3QKKy0gICAgY3BkZWYgaXNfZ3JhcGhpYyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgaXNf Z3JhcGhpYyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgVGVzdCBpZiB0aGUgYmluYXJ5 IG1hdHJvaWQgaXMgZ3JhcGhpYy4KKyAKK0BAIC0zODUyLDcgKzM4NTIsNyBAQCBjZGVmIGNsYXNz IEJpbmFyeU1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAgICAjIG5vdyBzZWxmIGlzIGdy YXBoaWMgaWZmIHRoZXJlIGlzIGEgYmluYXJ5IHZlY3RvciB4IHNvIHRoYXQgTSp4ID0gMCBhbmQg eF8wID0gMSwgc286CisgICAgICAgICByZXR1cm4gQmluYXJ5TWF0cm9pZChtKS5jb3JhbmsoZnJv emVuc2V0KFswXSkpID4gMAorIAorLSAgICBjcGRlZiBpc192YWxpZChzZWxmKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgaXNfdmFsaWQoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBUZXN0 IGlmIHRoZSBkYXRhIG9iZXkgdGhlIG1hdHJvaWQgYXhpb21zLgorIAorQEAgLTM4NzMsNyArMzg3 Myw3IEBAIGNkZWYgY2xhc3MgQmluYXJ5TWF0cm9pZChMaW5lYXJNYXRyb2lkKToKKyAKKyAgICAg IyByZXByZXNlbnRhYmlsaXR5CisgCistICAgIGNwZGVmIGJpbmFyeV9tYXRyb2lkKHNlbGYsIHJh bmRvbWl6ZWRfdGVzdHM9MSwgdmVyaWZ5ID0gVHJ1ZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGJp bmFyeV9tYXRyb2lkKHNlbGYsIHJhbmRvbWl6ZWRfdGVzdHM9MSwgdmVyaWZ5ID0gVHJ1ZSk6Cisg ICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gYSBiaW5hcnkgbWF0cm9pZCByZXByZXNlbnRp bmcgYGBzZWxmYGAuCisgCitAQCAtMzkwMyw3ICszOTAzLDcgQEAgY2RlZiBjbGFzcyBCaW5hcnlN YXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2Vs ZgorIAorLSAgICBjcGRlZiBpc19iaW5hcnkoc2VsZiwgcmFuZG9taXplZF90ZXN0cz0xKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgaXNfYmluYXJ5KHNlbGYsIHJhbmRvbWl6ZWRfdGVzdHM9MSk6Cisg ICAgICAgICByIiIiCisgICAgICAgICBEZWNpZGUgaWYgYGBzZWxmYGAgaXMgYSBiaW5hcnkgbWF0 cm9pZC4KKyAKK0BAIC00MTgxLDcgKzQxODEsNyBAQCBjZGVmIGNsYXNzIFRlcm5hcnlNYXRyb2lk KExpbmVhck1hdHJvaWQpOgorICAgICAgICAgc2VsZi5fb25lID0gR0YzX29uZQorICAgICAgICAg c2VsZi5fdHdvID0gR0YzX21pbnVzX29uZQorIAorLSAgICBjcGRlZiBiYXNlX3Jpbmcoc2VsZikg bm9leGNlcHQ6CisrICAgIGNwZGVmIGJhc2VfcmluZyhzZWxmKToKKyAgICAgICAgIHIiIiIKKyAg ICAgICAgIFJldHVybiB0aGUgYmFzZSByaW5nIG9mIHRoZSBtYXRyaXggcmVwcmVzZW50aW5nIHRo ZSBtYXRyb2lkLCBpbiB0aGlzCisgICAgICAgICBjYXNlIGBcR0Z7M31gLgorQEAgLTQxOTUsNyAr NDE5NSw3IEBAIGNkZWYgY2xhc3MgVGVybmFyeU1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAg ICAgICBnbG9iYWwgR0YzCisgICAgICAgICByZXR1cm4gR0YzCisgCistICAgIGNwZGVmIGNoYXJh Y3RlcmlzdGljKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjaGFyYWN0ZXJpc3RpYyhzZWxm KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBjaGFyYWN0ZXJpc3RpYyBvZiB0 aGUgYmFzZSByaW5nIG9mIHRoZSBtYXRyaXggcmVwcmVzZW50aW5nCisgICAgICAgICB0aGUgbWF0 cm9pZCwgaW4gdGhpcyBjYXNlIGAzYC4KK0BAIC00MjIzLDEzICs0MjIzLDEzIEBAIGNkZWYgY2xh c3MgVGVybmFyeU1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAgICBzZWxmLl9wcm93W3ld ID0gcAorICAgICAgICAgQmFzaXNFeGNoYW5nZU1hdHJvaWQuX2V4Y2hhbmdlKHNlbGYsIHgsIHkp CisgCistICAgIGNkZWYgIF9fZnVuZGFtZW50YWxfY29jaXJjdWl0KHNlbGYsIGJpdHNldF90IEMs IGxvbmcgeCkgbm9leGNlcHQ6CisrICAgIGNkZWYgIF9fZnVuZGFtZW50YWxfY29jaXJjdWl0KHNl bGYsIGJpdHNldF90IEMsIGxvbmcgeCk6CisgICAgICAgICByIiIiCisgICAgICAgICBGaWxsIGJp dHNldCBgQ2Agd2l0aCB0aGUgaW5jaWRlbmNlIHZlY3RvciBvZiB0aGUgYEJgLWZ1bmRhbWVudGFs IGNvY2lyY3VpdCB1c2luZyBgYHhgYC4gSW50ZXJuYWwgbWV0aG9kIHVzaW5nIHBhY2tlZCBlbGVt ZW50cy4KKyAgICAgICAgICIiIgorICAgICAgICAgYml0c2V0X2NvcHkoQywgKDxUZXJuYXJ5TWF0 cml4PnNlbGYuX0EpLl9NMFtzZWxmLl9wcm93W3hdXSkKKyAKKy0gICAgY2RlZiBfY29jbG9zdXJl X2ludGVybmFsKHNlbGYsIGJpdHNldF90IFIsIGJpdHNldF90IEYpIG5vZXhjZXB0OgorKyAgICBj ZGVmIF9jb2Nsb3N1cmVfaW50ZXJuYWwoc2VsZiwgYml0c2V0X3QgUiwgYml0c2V0X3QgRik6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIEJpdHBhY2tlZCB2ZXJzaW9uIG9mIGBgY29jbG9zdXJlYGAu CisgCitAQCAtNDI1Miw3ICs0MjUyLDcgQEAgY2RlZiBjbGFzcyBUZXJuYXJ5TWF0cm9pZChMaW5l YXJNYXRyb2lkKToKKyAgICAgICAgICAgICAgICAgYml0c2V0X2FkZChSLCB5KQorICAgICAgICAg ICAgIHkgPSBiaXRzZXRfbmV4dChzZWxmLl9pbnNpZGUsIHkgKyAxKQorIAorLSAgICBjZGVmICBf ZXhjaGFuZ2VfdmFsdWVfaW50ZXJuYWwoc2VsZiwgbG9uZyB4LCBsb25nIHkpIG5vZXhjZXB0Ogor KyAgICBjZGVmICBfZXhjaGFuZ2VfdmFsdWVfaW50ZXJuYWwoc2VsZiwgbG9uZyB4LCBsb25nIHkp OgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSAoeCwgeSkgZW50cnkgb2YgdGhl IGN1cnJlbnQgcmVwcmVzZW50YXRpb24uCisgICAgICAgICAiIiIKK0BAIC00Mjg0LDcgKzQyODQs NyBAQCBjZGVmIGNsYXNzIFRlcm5hcnlNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAgICAgICAg ICAgIFMgPSBTICsgJy0nCisgICAgICAgICByZXR1cm4gUworIAorLSAgICBjcGRlZiBfY3VycmVu dF9yb3dzX2NvbHMoc2VsZiwgQj1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2N1cnJlbnRf cm93c19jb2xzKHNlbGYsIEI9Tm9uZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0 aGUgY3VycmVudCByb3cgYW5kIGNvbHVtbiBsYWJlbHMgb2YgYSByZWR1Y2VkIG1hdHJpeC4KKyAK K0BAIC00MzI1LDcgKzQzMjUsNyBAQCBjZGVmIGNsYXNzIFRlcm5hcnlNYXRyb2lkKExpbmVhck1h dHJvaWQpOgorICAgICAgICAgICAgICAgICBjICs9IDEKKyAgICAgICAgIHJldHVybiByb3dzLCBj b2xzCisgCistICAgIGNwZGVmIExlYW5NYXRyaXggX2Jhc2ljX3JlcHJlc2VudGF0aW9uKHNlbGYs IEI9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIExlYW5NYXRyaXggX2Jhc2ljX3JlcHJlc2Vu dGF0aW9uKHNlbGYsIEI9Tm9uZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBhIGJh c2ljIG1hdHJpeCByZXByZXNlbnRhdGlvbiBvZiB0aGUgbWF0cm9pZC4KKyAKK0BAIC00MzY0LDcg KzQzNjQsNyBAQCBjZGVmIGNsYXNzIFRlcm5hcnlNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAg ICAgICAgICAgIHNlbGYuX21vdmVfY3VycmVudF9iYXNpcyhCLCBzZXQoKSkKKyAgICAgICAgIHJl dHVybiBzZWxmLl9BLmNvcHkoKSAgICMgRGVwcmVjYXRlZCBTYWdlIG1hdHJpeCBvcGVyYXRpb24K KyAKKy0gICAgY3BkZWYgTGVhbk1hdHJpeCBfcmVkdWNlZF9yZXByZXNlbnRhdGlvbihzZWxmLCBC PU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBMZWFuTWF0cml4IF9yZWR1Y2VkX3JlcHJlc2Vu dGF0aW9uKHNlbGYsIEI9Tm9uZSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gYSBy ZWR1Y2VkIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtYXRyb2lkLCBpLmUuIGEgbWF0cml4IGBSYAor ICAgICAgICAgc3VjaCB0aGF0IGBbSVwgXCBSXWAgcmVwcmVzZW50cyB0aGUgbWF0cm9pZC4KK0BA IC00NDA2LDcgKzQ0MDYsNyBAQCBjZGVmIGNsYXNzIFRlcm5hcnlNYXRyb2lkKExpbmVhck1hdHJv aWQpOgorIAorICAgICAjIGlzb21vcnBoaXNtCisgCistICAgIGNwZGVmIF9pc19pc29tb3JwaGlj KHNlbGYsIG90aGVyLCBjZXJ0aWZpY2F0ZT1GYWxzZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9p c19pc29tb3JwaGljKHNlbGYsIG90aGVyLCBjZXJ0aWZpY2F0ZT1GYWxzZSk6CisgICAgICAgICAi IiIKKyAgICAgICAgIFRlc3QgaWYgYGBzZWxmYGAgaXMgaXNvbW9ycGhpYyB0byBgYG90aGVyYGAu IEludGVybmFsIHZlcnNpb24gdGhhdAorICAgICAgICAgcGVyZm9ybXMgbm8gY2hlY2tzIG9uIGlu cHV0LgorQEAgLTQ0NDUsNyArNDQ0NSw3IEBAIGNkZWYgY2xhc3MgVGVybmFyeU1hdHJvaWQoTGlu ZWFyTWF0cm9pZCk6CisgCisgICAgICMgaW52YXJpYW50cworIAorLSAgICBjcGRlZiBfbWFrZV9p bnZhcmlhbnQoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9tYWtlX2ludmFyaWFudChzZWxm KToKKyAgICAgICAgICIiIgorICAgICAgICAgQ3JlYXRlIGFuIGludmFyaWFudC4KKyAKK0BAIC00 NTE3LDcgKzQ1MTcsNyBAQCBjZGVmIGNsYXNzIFRlcm5hcnlNYXRyb2lkKExpbmVhck1hdHJvaWQp OgorICAgICAgICAgc2VsZi5fdF9wYXJ0aXRpb24gPSB0dXBsZShbRiwgRmEsIEZiLCBGY10pCisg ICAgICAgICBzZWxmLl90X2ludmFyaWFudCA9IHR1cGxlKFtkLCBjLCBsZW4oRiksIGxlbihGYSks IGxlbihGYiksIGxlbihGYyksIHBbMF0sIHBbMV0sIHBbMl0sIHBbM10sIHBbNF0sIHBbNV1dKQor IAorLSAgICBjcGRlZiBfaW52YXJpYW50KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfaW52 YXJpYW50KHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIGEgbWF0cm9pZCBp bnZhcmlhbnQuCisgCitAQCAtNDU0Niw3ICs0NTQ2LDcgQEAgY2RlZiBjbGFzcyBUZXJuYXJ5TWF0 cm9pZChMaW5lYXJNYXRyb2lkKToKKyAgICAgICAgICAgICBzZWxmLl9tYWtlX2ludmFyaWFudCgp CisgICAgICAgICByZXR1cm4gc2VsZi5fdF9pbnZhcmlhbnQKKyAKKy0gICAgY3BkZWYgYmljeWNs ZV9kaW1lbnNpb24oc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGJpY3ljbGVfZGltZW5zaW9u KHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBiaWN5Y2xlIGRpbWVu c2lvbiBvZiB0aGUgdGVybmFyeSBtYXRyb2lkLgorIAorQEAgLTQ1NjksNyArNDU2OSw3IEBAIGNk ZWYgY2xhc3MgVGVybmFyeU1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAgICAgICAgc2Vs Zi5fbWFrZV9pbnZhcmlhbnQoKQorICAgICAgICAgcmV0dXJuIHNlbGYuX3RfaW52YXJpYW50WzBd CisgCistICAgIGNwZGVmIGNoYXJhY3RlcihzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgY2hh cmFjdGVyKHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBjaGFyYWN0 ZXIgb2YgdGhlIHRlcm5hcnkgbWF0cm9pZC4KKyAKK0BAIC00NTk1LDcgKzQ1OTUsNyBAQCBjZGVm IGNsYXNzIFRlcm5hcnlNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAgICAgICAgICAgIHNlbGYu X21ha2VfaW52YXJpYW50KCkKKyAgICAgICAgIHJldHVybiBzZWxmLl90X2ludmFyaWFudFsxXQor IAorLSAgICBjcGRlZiBfcHJpbmNpcGFsX3F1YWRyaXBhcnRpdGlvbihzZWxmKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgX3ByaW5jaXBhbF9xdWFkcmlwYXJ0aXRpb24oc2VsZik6CisgICAgICAgICBy IiIiCisgICAgICAgICBSZXR1cm4gYW4gb3JkZXJlZCBwYXJ0aXRpb24gb2YgdGhlIGdyb3VuZCBz ZXQuCisgCitAQCAtNDYyOCw3ICs0NjI4LDcgQEAgY2RlZiBjbGFzcyBUZXJuYXJ5TWF0cm9pZChM aW5lYXJNYXRyb2lkKToKKyAgICAgICAgICAgICBzZWxmLl9tYWtlX2ludmFyaWFudCgpCisgICAg ICAgICByZXR1cm4gdHVwbGUoW1tzZWxmLl9FW2pdIGZvciBqIGluIHNlbGYuX3RfcGFydGl0aW9u WzBdXSwgW3NlbGYuX0Vbal0gZm9yIGogaW4gc2VsZi5fdF9wYXJ0aXRpb25bMV1dLCBbc2VsZi5f RVtqXSBmb3IgaiBpbiBzZWxmLl90X3BhcnRpdGlvblsyXV0sIFtzZWxmLl9FW2pdIGZvciBqIGlu IHNlbGYuX3RfcGFydGl0aW9uWzNdXV0pCisgCistICAgIGNwZGVmIFRlcm5hcnlNYXRyaXggX3By b2plY3Rpb24oc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIFRlcm5hcnlNYXRyaXggX3Byb2pl Y3Rpb24oc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgcHJvamVjdGlv biBtYXRyaXggb250byB0aGUgcm93IHNwYWNlLgorIAorQEAgLTQ2NjksNyArNDY2OSw3IEBAIGNk ZWYgY2xhc3MgVGVybmFyeU1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAgICAgICAgc2Vs Zi5fbWFrZV9pbnZhcmlhbnQoKQorICAgICAgICAgcmV0dXJuIHNlbGYuX3RfcHJvamVjdGlvbgor IAorLSAgICBjcGRlZiBfZmFzdF9pc29tX3Rlc3Qoc2VsZiwgb3RoZXIpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBfZmFzdF9pc29tX3Rlc3Qoc2VsZiwgb3RoZXIpOgorICAgICAgICAgciIiIgorICAg ICAgICAgICAgUnVuIGEgcXVpY2sgdGVzdCB0byBzZWUgaWYgdHdvIHRlcm5hcnkgbWF0cm9pZHMg YXJlIGlzb21vcnBoaWMuCisgCitAQCAtNDcwMCw3ICs0NzAwLDcgQEAgY2RlZiBjbGFzcyBUZXJu YXJ5TWF0cm9pZChMaW5lYXJNYXRyb2lkKToKKyAKKyAgICAgIyBtaW5vcnMsIGR1YWwKKyAKKy0g ICAgY3BkZWYgX21pbm9yKHNlbGYsIGNvbnRyYWN0aW9ucywgZGVsZXRpb25zKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgX21pbm9yKHNlbGYsIGNvbnRyYWN0aW9ucywgZGVsZXRpb25zKToKKyAgICAg ICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBhIG1pbm9yLgorIAorQEAgLTQ3NDIsNyArNDc0Miw3 IEBAIGNkZWYgY2xhc3MgVGVybmFyeU1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBiYXNpcz1iYXMsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBrZWVwX2luaXRpYWxfcmVwcmVzZW50YXRpb249RmFsc2UpCisgCistICAgIGNwZGVmIGlz X3ZhbGlkKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBpc192YWxpZChzZWxmKToKKyAgICAg ICAgIHIiIiIKKyAgICAgICAgIFRlc3QgaWYgdGhlIGRhdGEgb2JleSB0aGUgbWF0cm9pZCBheGlv bXMuCisgCitAQCAtNDc2Myw3ICs0NzYzLDcgQEAgY2RlZiBjbGFzcyBUZXJuYXJ5TWF0cm9pZChM aW5lYXJNYXRyb2lkKToKKyAKKyAgICAgIyByZXByZXNlbnRhYmlsaXR5CisgCistICAgIGNwZGVm IHRlcm5hcnlfbWF0cm9pZChzZWxmLCByYW5kb21pemVkX3Rlc3RzPTEsIHZlcmlmeSA9IFRydWUp IG5vZXhjZXB0OgorKyAgICBjcGRlZiB0ZXJuYXJ5X21hdHJvaWQoc2VsZiwgcmFuZG9taXplZF90 ZXN0cz0xLCB2ZXJpZnkgPSBUcnVlKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBh IHRlcm5hcnkgbWF0cm9pZCByZXByZXNlbnRpbmcgYGBzZWxmYGAuCisgCitAQCAtNDc5Myw3ICs0 NzkzLDcgQEAgY2RlZiBjbGFzcyBUZXJuYXJ5TWF0cm9pZChMaW5lYXJNYXRyb2lkKToKKyAgICAg ICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYKKyAKKy0gICAgY3BkZWYgaXNfdGVybmFyeShz ZWxmLCByYW5kb21pemVkX3Rlc3RzPTEpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBpc190ZXJuYXJ5 KHNlbGYsIHJhbmRvbWl6ZWRfdGVzdHM9MSk6CisgICAgICAgICByIiIiCisgICAgICAgICBEZWNp ZGUgaWYgYGBzZWxmYGAgaXMgYSBiaW5hcnkgbWF0cm9pZC4KKyAKK0BAIC01MDc4LDcgKzUwNzgs NyBAQCBjZGVmIGNsYXNzIFF1YXRlcm5hcnlNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAgICAg ICAgc2VsZi5feF96ZXJvID0gKDxRdWF0ZXJuYXJ5TWF0cml4PnNlbGYuX0EpLl94X3plcm8KKyAg ICAgICAgIHNlbGYuX3hfb25lID0gKDxRdWF0ZXJuYXJ5TWF0cml4PnNlbGYuX0EpLl94X29uZQor IAorLSAgICBjcGRlZiBiYXNlX3Jpbmcoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGJhc2Vf cmluZyhzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYmFzZSByaW5n IG9mIHRoZSBtYXRyaXggcmVwcmVzZW50aW5nIHRoZSBtYXRyb2lkLCBpbiB0aGlzCisgICAgICAg ICBjYXNlIGBcR0Z7NH1gLgorQEAgLTUwOTIsNyArNTA5Miw3IEBAIGNkZWYgY2xhc3MgUXVhdGVy bmFyeU1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVy biAoPFF1YXRlcm5hcnlNYXRyaXg+c2VsZi5fQSkuYmFzZV9yaW5nKCkKKyAKKy0gICAgY3BkZWYg Y2hhcmFjdGVyaXN0aWMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGNoYXJhY3RlcmlzdGlj KHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGNoYXJhY3RlcmlzdGlj IG9mIHRoZSBiYXNlIHJpbmcgb2YgdGhlIG1hdHJpeCByZXByZXNlbnRpbmcKKyAgICAgICAgIHRo ZSBtYXRyb2lkLCBpbiB0aGlzIGNhc2UgYDJgLgorQEAgLTUxMjEsMTMgKzUxMjEsMTMgQEAgY2Rl ZiBjbGFzcyBRdWF0ZXJuYXJ5TWF0cm9pZChMaW5lYXJNYXRyb2lkKToKKyAgICAgICAgIHNlbGYu X3Byb3dbeV0gPSBwCisgICAgICAgICBCYXNpc0V4Y2hhbmdlTWF0cm9pZC5fZXhjaGFuZ2Uoc2Vs ZiwgeCwgeSkKKyAKKy0gICAgY2RlZiAgX19mdW5kYW1lbnRhbF9jb2NpcmN1aXQoc2VsZiwgYml0 c2V0X3QgQywgbG9uZyB4KSBub2V4Y2VwdDoKKysgICAgY2RlZiAgX19mdW5kYW1lbnRhbF9jb2Np cmN1aXQoc2VsZiwgYml0c2V0X3QgQywgbG9uZyB4KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAg IEZpbGwgYml0c2V0IGBDYCB3aXRoIHRoZSBpbmNpZGVuY2UgdmVjdG9yIG9mIHRoZSBgQmAtZnVu ZGFtZW50YWwgY29jaXJjdWl0IHVzaW5nIGBgeGBgLiBJbnRlcm5hbCBtZXRob2QgdXNpbmcgcGFj a2VkIGVsZW1lbnRzLgorICAgICAgICAgIiIiCisgICAgICAgICBiaXRzZXRfdW5pb24oQywgKDxR dWF0ZXJuYXJ5TWF0cml4PnNlbGYuX0EpLl9NMFtzZWxmLl9wcm93W3hdXSwgKDxRdWF0ZXJuYXJ5 TWF0cml4PnNlbGYuX0EpLl9NMVtzZWxmLl9wcm93W3hdXSkKKyAKKy0gICAgY2RlZiBfY29jbG9z dXJlX2ludGVybmFsKHNlbGYsIGJpdHNldF90IFIsIGJpdHNldF90IEYpIG5vZXhjZXB0OgorKyAg ICBjZGVmIF9jb2Nsb3N1cmVfaW50ZXJuYWwoc2VsZiwgYml0c2V0X3QgUiwgYml0c2V0X3QgRik6 CisgICAgICAgICAiIiIKKyAgICAgICAgIEJpdHBhY2tlZCB2ZXJzaW9uIG9mIGBgY29jbG9zdXJl YGAuCisgCitAQCAtNTE1MCw3ICs1MTUwLDcgQEAgY2RlZiBjbGFzcyBRdWF0ZXJuYXJ5TWF0cm9p ZChMaW5lYXJNYXRyb2lkKToKKyAgICAgICAgICAgICAgICAgYml0c2V0X2FkZChSLCB5KQorICAg ICAgICAgICAgIHkgPSBiaXRzZXRfbmV4dChzZWxmLl9pbnNpZGUsIHkgKyAxKQorIAorLSAgICBj ZGVmICBfZXhjaGFuZ2VfdmFsdWVfaW50ZXJuYWwoc2VsZiwgbG9uZyB4LCBsb25nIHkpIG5vZXhj ZXB0OgorKyAgICBjZGVmICBfZXhjaGFuZ2VfdmFsdWVfaW50ZXJuYWwoc2VsZiwgbG9uZyB4LCBs b25nIHkpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSAoeCwgeSkgZW50cnkg b2YgdGhlIGN1cnJlbnQgcmVwcmVzZW50YXRpb24uCisgICAgICAgICAiIiIKK0BAIC01MTcwLDcg KzUxNzAsNyBAQCBjZGVmIGNsYXNzIFF1YXRlcm5hcnlNYXRyb2lkKExpbmVhck1hdHJvaWQpOgor ICAgICAgICAgUyA9ICJRdWF0ZXJuYXJ5IG1hdHJvaWQgb2YgcmFuayAiICsgc3RyKHNlbGYucmFu aygpKSArICIgb24gIiArIHN0cihzZWxmLnNpemUoKSkgKyAiIGVsZW1lbnRzIgorICAgICAgICAg cmV0dXJuIFMKKyAKKy0gICAgY3BkZWYgX2N1cnJlbnRfcm93c19jb2xzKHNlbGYsIEI9Tm9uZSkg bm9leGNlcHQ6CisrICAgIGNwZGVmIF9jdXJyZW50X3Jvd3NfY29scyhzZWxmLCBCPU5vbmUpOgor ICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGN1cnJlbnQgcm93IGFuZCBjb2x1bW4g bGFiZWxzIG9mIGEgcmVkdWNlZCBtYXRyaXguCisgCitAQCAtNTIxMiw3ICs1MjEyLDcgQEAgY2Rl ZiBjbGFzcyBRdWF0ZXJuYXJ5TWF0cm9pZChMaW5lYXJNYXRyb2lkKToKKyAgICAgICAgICAgICAg ICAgYyArPSAxCisgICAgICAgICByZXR1cm4gcm93cywgY29scworIAorLSAgICBjcGRlZiBMZWFu TWF0cml4IF9iYXNpY19yZXByZXNlbnRhdGlvbihzZWxmLCBCPU5vbmUpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBMZWFuTWF0cml4IF9iYXNpY19yZXByZXNlbnRhdGlvbihzZWxmLCBCPU5vbmUpOgor ICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYSBiYXNpYyBtYXRyaXggcmVwcmVzZW50YXRp b24gb2YgdGhlIG1hdHJvaWQuCisgCitAQCAtNTI1NSw3ICs1MjU1LDcgQEAgY2RlZiBjbGFzcyBR dWF0ZXJuYXJ5TWF0cm9pZChMaW5lYXJNYXRyb2lkKToKKyAgICAgICAgICAgICBzZWxmLl9tb3Zl X2N1cnJlbnRfYmFzaXMoQiwgc2V0KCkpCisgICAgICAgICByZXR1cm4gc2VsZi5fQS5jb3B5KCkg ICAjIERlcHJlY2F0ZWQgU2FnZSBtYXRyaXggb3BlcmF0aW9uCisgCistICAgIGNwZGVmIExlYW5N YXRyaXggX3JlZHVjZWRfcmVwcmVzZW50YXRpb24oc2VsZiwgQj1Ob25lKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgTGVhbk1hdHJpeCBfcmVkdWNlZF9yZXByZXNlbnRhdGlvbihzZWxmLCBCPU5vbmUp OgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIGEgcmVkdWNlZCByZXByZXNlbnRhdGlv biBvZiB0aGUgbWF0cm9pZCwgaS5lLiBhIG1hdHJpeCBgUmAgc3VjaAorICAgICAgICAgdGhhdCBg W0lcIFwgUl1gIHJlcHJlc2VudHMgdGhlIG1hdHJvaWQuCitAQCAtNTI5OSw3ICs1Mjk5LDcgQEAg Y2RlZiBjbGFzcyBRdWF0ZXJuYXJ5TWF0cm9pZChMaW5lYXJNYXRyb2lkKToKKyAgICAgICAgIF8s IGNvbHMgPSBzZWxmLl9jdXJyZW50X3Jvd3NfY29scygpCisgICAgICAgICByZXR1cm4gc2VsZi5f QS5tYXRyaXhfZnJvbV9yb3dzX2FuZF9jb2x1bW5zKHJhbmdlKHNlbGYuZnVsbF9yYW5rKCkpLCBb c2VsZi5faWR4W2VdIGZvciBlIGluIGNvbHNdKQorIAorLSAgICBjcGRlZiBfbWFrZV9pbnZhcmlh bnQoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9tYWtlX2ludmFyaWFudChzZWxmKToKKyAg ICAgICAgICIiIgorICAgICAgICAgQ3JlYXRlIGFuIGludmFyaWFudC4KKyAKK0BAIC01MzY2LDcg KzUzNjYsNyBAQCBjZGVmIGNsYXNzIFF1YXRlcm5hcnlNYXRyb2lkKExpbmVhck1hdHJvaWQpOgor ICAgICAgICAgc2VsZi5fcV9wYXJ0aXRpb24gPSB0dXBsZShbRiwgRmEsIEZiXSkKKyAgICAgICAg IHNlbGYuX3FfaW52YXJpYW50ID0gdHVwbGUoW2QsIGxlbihGKSwgbGVuKEZhKSwgbGVuKEZiKSwg cFswXSwgcFsxXSwgcFsyXV0pCisgCistICAgIGNwZGVmIF9pbnZhcmlhbnQoc2VsZikgbm9leGNl cHQ6CisrICAgIGNwZGVmIF9pbnZhcmlhbnQoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAg ICBSZXR1cm4gYSBtYXRyb2lkIGludmFyaWFudC4KKyAKK0BAIC01Mzk0LDcgKzUzOTQsNyBAQCBj ZGVmIGNsYXNzIFF1YXRlcm5hcnlNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAgICAgICAgICAg IHNlbGYuX21ha2VfaW52YXJpYW50KCkKKyAgICAgICAgIHJldHVybiBzZWxmLl9xX2ludmFyaWFu dAorIAorLSAgICBjcGRlZiBiaWN5Y2xlX2RpbWVuc2lvbihzZWxmKSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgYmljeWNsZV9kaW1lbnNpb24oc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBS ZXR1cm4gdGhlIGJpY3ljbGUgZGltZW5zaW9uIG9mIHRoZSBxdWF0ZXJuYXJ5IG1hdHJvaWQuCisg CitAQCAtNTQyMSw3ICs1NDIxLDcgQEAgY2RlZiBjbGFzcyBRdWF0ZXJuYXJ5TWF0cm9pZChMaW5l YXJNYXRyb2lkKToKKyAgICAgICAgICAgICBzZWxmLl9tYWtlX2ludmFyaWFudCgpCisgICAgICAg ICByZXR1cm4gc2VsZi5fcV9pbnZhcmlhbnRbMF0KKyAKKy0gICAgY3BkZWYgX3ByaW5jaXBhbF90 cmlwYXJ0aXRpb24oc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9wcmluY2lwYWxfdHJpcGFy dGl0aW9uKHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBwcmluY2lw YWwgdHJpcGFydGl0aW9uIG9mIHRoZSBxdWF0ZXJuYXJ5IG1hdHJvaWQuCisgCitAQCAtNTQ2MCw3 ICs1NDYwLDcgQEAgY2RlZiBjbGFzcyBRdWF0ZXJuYXJ5TWF0cm9pZChMaW5lYXJNYXRyb2lkKToK KyAgICAgICAgIFAgPSBzZWxmLl9xX3BhcnRpdGlvbgorICAgICAgICAgcmV0dXJuIGZyb3plbnNl dChbc2VsZi5fRVtlXSBmb3IgZSBpbiBQWzBdXSksIGZyb3plbnNldChbc2VsZi5fRVtlXSBmb3Ig ZSBpbiBQWzFdXSksIGZyb3plbnNldChbc2VsZi5fRVtlXSBmb3IgZSBpbiBQWzJdXSkKKyAKKy0g ICAgY3BkZWYgX2Zhc3RfaXNvbV90ZXN0KHNlbGYsIG90aGVyKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgX2Zhc3RfaXNvbV90ZXN0KHNlbGYsIG90aGVyKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAg IFJ1biBhIHF1aWNrIHRlc3QgdG8gc2VlIGlmIHR3byBxdWF0ZXJuYXJ5IG1hdHJvaWRzIGFyZSBp c29tb3JwaGljLgorIAorQEAgLTU0ODksNyArNTQ4OSw3IEBAIGNkZWYgY2xhc3MgUXVhdGVybmFy eU1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CisgCisgICAgICMgbWlub3JzLCBkdWFsCisgCistICAg IGNwZGVmIF9taW5vcihzZWxmLCBjb250cmFjdGlvbnMsIGRlbGV0aW9ucykgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIF9taW5vcihzZWxmLCBjb250cmFjdGlvbnMsIGRlbGV0aW9ucyk6CisgICAgICAg ICByIiIiCisgICAgICAgICBSZXR1cm4gYSBtaW5vci4KKyAKK0BAIC01NTMxLDcgKzU1MzEsNyBA QCBjZGVmIGNsYXNzIFF1YXRlcm5hcnlNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYmFzaXM9YmFzLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAga2VlcF9pbml0aWFsX3JlcHJlc2VudGF0aW9uPUZhbHNlKQorIAorLSAgICBjcGRlZiBp c192YWxpZChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgaXNfdmFsaWQoc2VsZik6CisgICAg ICAgICByIiIiCisgICAgICAgICBUZXN0IGlmIHRoZSBkYXRhIG9iZXkgdGhlIG1hdHJvaWQgYXhp b21zLgorIAorQEAgLTU3NTEsNyArNTc1MSw3IEBAIGNkZWYgY2xhc3MgUmVndWxhck1hdHJvaWQo TGluZWFyTWF0cm9pZCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIExpbmVhck1hdHJvaWQuX19p bml0X18oc2VsZiwgbWF0cml4LCBncm91bmRzZXQsIHJlZHVjZWRfbWF0cml4LCByaW5nPVpaLCBr ZWVwX2luaXRpYWxfcmVwcmVzZW50YXRpb249a2VlcF9pbml0aWFsX3JlcHJlc2VudGF0aW9uKQor IAorLSAgICBjZGVmIGxpc3QgX3NldHVwX2ludGVybmFsX3JlcHJlc2VudGF0aW9uKHNlbGYsIG1h dHJpeCwgcmVkdWNlZF9tYXRyaXgsIHJpbmcsIGtlZXBfaW5pdGlhbF9yZXByZXNlbnRhdGlvbikg bm9leGNlcHQ6CisrICAgIGNkZWYgbGlzdCBfc2V0dXBfaW50ZXJuYWxfcmVwcmVzZW50YXRpb24o c2VsZiwgbWF0cml4LCByZWR1Y2VkX21hdHJpeCwgcmluZywga2VlcF9pbml0aWFsX3JlcHJlc2Vu dGF0aW9uKToKKyAgICAgICAgICIiIgorICAgICAgICAgU2V0dXAgdGhlIGludGVybmFsIHJlcHJl c2VudGF0aW9uIG1hdHJpeCBgYHNlbGYuX0FgYCBhbmQgdGhlIGFycmF5IG9mCisgICAgICAgICBy b3ctIGFuZCBjb2x1bW4gaW5kaWNlcyBgYHNlbGYuX3Byb3dgYC4KK0BAIC01Nzk0LDcgKzU3OTQs NyBAQCBjZGVmIGNsYXNzIFJlZ3VsYXJNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAgICAgICAg ICAgICAgICBzZWxmLl9wcm93W3NlbGYuX0EubnJvd3MoKSArIHJdID0gcgorICAgICAgICAgcmV0 dXJuIFAKKyAKKy0gICAgY3BkZWYgYmFzZV9yaW5nKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBiYXNlX3Jpbmcoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGJh c2UgcmluZyBvZiB0aGUgbWF0cml4IHJlcHJlc2VudGluZyB0aGUgbWF0cm9pZCwgaW4gdGhpcwor ICAgICAgICAgY2FzZSBgXFpaYC4KK0BAIC01ODA3LDcgKzU4MDcsNyBAQCBjZGVmIGNsYXNzIFJl Z3VsYXJNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1 cm4gWloKKyAKKy0gICAgY3BkZWYgY2hhcmFjdGVyaXN0aWMoc2VsZikgbm9leGNlcHQ6CisrICAg IGNwZGVmIGNoYXJhY3RlcmlzdGljKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1 cm4gdGhlIGNoYXJhY3RlcmlzdGljIG9mIHRoZSBiYXNlIHJpbmcgb2YgdGhlIG1hdHJpeCByZXBy ZXNlbnRpbmcKKyAgICAgICAgIHRoZSBtYXRyb2lkLCBpbiB0aGlzIGNhc2UgYDBgLgorQEAgLTU4 NTEsNyArNTg1MSw3IEBAIGNkZWYgY2xhc3MgUmVndWxhck1hdHJvaWQoTGluZWFyTWF0cm9pZCk6 CisgICAgICAgICBzZWxmLl9wcm93W3hdID0gcHkKKyAgICAgICAgIEJhc2lzRXhjaGFuZ2VNYXRy b2lkLl9leGNoYW5nZShzZWxmLCB4LCB5KQorIAorLSAgICBjZGVmICBfZXhjaGFuZ2VfdmFsdWVf aW50ZXJuYWwoc2VsZiwgbG9uZyB4LCBsb25nIHkpIG5vZXhjZXB0OgorKyAgICBjZGVmICBfZXhj aGFuZ2VfdmFsdWVfaW50ZXJuYWwoc2VsZiwgbG9uZyB4LCBsb25nIHkpOgorICAgICAgICAgciIi IgorICAgICAgICAgUmV0dXJuIHRoZSAoeCwgeSkgZW50cnkgb2YgdGhlIGN1cnJlbnQgcmVwcmVz ZW50YXRpb24uCisgCitAQCAtNTg3OCw3ICs1ODc4LDcgQEAgY2RlZiBjbGFzcyBSZWd1bGFyTWF0 cm9pZChMaW5lYXJNYXRyb2lkKToKKyAgICAgICAgIFMgPSAiUmVndWxhciBtYXRyb2lkIG9mIHJh bmsgIiArIHN0cihzZWxmLnJhbmsoKSkgKyAiIG9uICIgKyBzdHIoc2VsZi5zaXplKCkpICsgIiBl bGVtZW50cyB3aXRoICIgKyBzdHIoc2VsZi5iYXNlc19jb3VudCgpKSArICIgYmFzZXMiCisgICAg ICAgICByZXR1cm4gUworIAorLSAgICBjcGRlZiBiYXNlc19jb3VudChzZWxmKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgYmFzZXNfY291bnQoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIENv dW50IHRoZSBudW1iZXIgb2YgYmFzZXMuCisgCitAQCAtNTg5OCw3ICs1ODk4LDcgQEAgY2RlZiBj bGFzcyBSZWd1bGFyTWF0cm9pZChMaW5lYXJNYXRyb2lkKToKKyAgICAgICAgICAgICBzZWxmLl9i YXNlc19jb3VudCA9IChSICogUi50cmFuc3Bvc2UoKSkuZGV0KCkKKyAgICAgICAgIHJldHVybiBz ZWxmLl9iYXNlc19jb3VudAorIAorLSAgICBjcGRlZiBfcHJvamVjdGlvbihzZWxmKSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgX3Byb2plY3Rpb24oc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAg IFJldHVybiB0aGUgcHJvamVjdGlvbiBtYXRyaXggb250byB0aGUgcm93IHNwYWNlLgorIAorQEAg LTU5MzgsNyArNTkzOCw3IEBAIGNkZWYgY2xhc3MgUmVndWxhck1hdHJvaWQoTGluZWFyTWF0cm9p ZCk6CisgICAgICAgICAgICAgc2VsZi5fcl9wcm9qZWN0aW9uID0gUi50cmFuc3Bvc2UoKSAqIChS ICogUi50cmFuc3Bvc2UoKSkuYWRqdWdhdGUoKSAqIFIKKyAgICAgICAgIHJldHVybiBzZWxmLl9y X3Byb2plY3Rpb24KKyAKKy0gICAgY3BkZWYgX2ludmFyaWFudChzZWxmKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgX2ludmFyaWFudChzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ29tcHV0 ZSBhIHJlZ3VsYXIgbWF0cm9pZCBpbnZhcmlhbnQuCisgCitAQCAtNTk4OCw3ICs1OTg4LDcgQEAg Y2RlZiBjbGFzcyBSZWd1bGFyTWF0cm9pZChMaW5lYXJNYXRyb2lkKToKKyAgICAgICAgIHNlbGYu X3JfaW52YXJpYW50ID0gaGFzaCh0dXBsZShbdHVwbGUoWyh3LCBBW3ddKSBmb3IgdyBpbiBzb3J0 ZWQoQSldKSwgdHVwbGUoWyh3LCBCW3ddKSBmb3IgdyBpbiBzb3J0ZWQoQildKSwgTl0pKQorICAg ICAgICAgcmV0dXJuIHNlbGYuX3JfaW52YXJpYW50CisgCistICAgIGNwZGVmIF9oeXBlcmdyYXBo KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfaHlwZXJncmFwaChzZWxmKToKKyAgICAgICAg ICIiIgorICAgICAgICAgQ3JlYXRlIGEgYmlwYXJ0aXRlIGRpZ3JhcGggYW5kIGEgdmVydGV4IHBh cnRpdGlvbi4KKyAKK0BAIC02MDcxLDcgKzYwNzEsNyBAQCBjZGVmIGNsYXNzIFJlZ3VsYXJNYXRy b2lkKExpbmVhck1hdHJvaWQpOgorICAgICAgICAgIyAgICAgc2VsZi5fcl9oeXBlcmdyYXBoID0g c2VsZi5fcl9oeXBlcmdyYXBoLm1heF9yZWZpbmVkKCkKKyAgICAgICAgICMgcmV0dXJuIHNlbGYu X3JfaHlwZXJncmFwaAorIAorLSAgICBjcGRlZiBfaXNfaXNvbW9ycGhpYyhzZWxmLCBvdGhlciwg Y2VydGlmaWNhdGU9RmFsc2UpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfaXNfaXNvbW9ycGhpYyhz ZWxmLCBvdGhlciwgY2VydGlmaWNhdGU9RmFsc2UpOgorICAgICAgICAgIiIiCisgICAgICAgICBU ZXN0IGlmIGBgc2VsZmBgIGlzIGlzb21vcnBoaWMgdG8gYGBvdGhlcmBgLgorIAorQEAgLTYxMzks NyArNjEzOSw3IEBAIGNkZWYgY2xhc3MgUmVndWxhck1hdHJvaWQoTGluZWFyTWF0cm9pZCk6Cisg ICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJldHVybiBMaW5lYXJNYXRyb2lkLl9pc19pc29t b3JwaGljKHNlbGYsIG90aGVyKQorIAorLSAgICBjcGRlZiBfZmFzdF9pc29tX3Rlc3Qoc2VsZiwg b3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZmFzdF9pc29tX3Rlc3Qoc2VsZiwgb3RoZXIp OgorICAgICAgICAgciIiIgorICAgICAgICAgUnVuIGEgcXVpY2sgdGVzdCB0byBzZWUgaWYgdHdv IHJlZ3VsYXIgbWF0cm9pZHMgYXJlIGlzb21vcnBoaWMuCisgCitAQCAtNjE4MCw3ICs2MTgwLDcg QEAgY2RlZiBjbGFzcyBSZWd1bGFyTWF0cm9pZChMaW5lYXJNYXRyb2lkKToKKyAgICAgICAgICAg ICBpZiBzZWxmLl9pc19maWVsZF9pc29tb3JwaGlzbShvdGhlciwgbSk6CisgICAgICAgICAgICAg ICAgIHJldHVybiBUcnVlCisgCistICAgIGNkZWYgX2h5cGVydGVzdChzZWxmLCBvdGhlcikgbm9l eGNlcHQ6CisrICAgIGNkZWYgX2h5cGVydGVzdChzZWxmLCBvdGhlcik6CisgICAgICAgICAiIiIK KyAgICAgICAgIFRlc3QgaWYgdGhlIGh5cGVyZ3JhcGhzIGFzc29jaWF0ZWQgd2l0aCBgYHNlbGZg YCBhbmQgYGBvdGhlcmBgIGFyZQorICAgICAgICAgaXNvbW9ycGhpYywgYW5kIGlmIHNvIHJldHVy biBhbiBpc29tb3JwaGlzbS4KK0BAIC02MjEzLDcgKzYyMTMsNyBAQCBjZGVmIGNsYXNzIFJlZ3Vs YXJNYXRyb2lkKExpbmVhck1hdHJvaWQpOgorICAgICAgICAgICAgIGlkeD17c3RyKGYpOmYgZm9y IGYgaW4gb3RoZXIuZ3JvdW5kc2V0KCl9CisgICAgICAgICAgICAgcmV0dXJuIHtlOmlkeFttW3N0 cihlKV1dIGZvciBlIGluIHNlbGYuZ3JvdW5kc2V0KCkgaWYgc3RyKGUpIGluIG19CisgCistICAg IGNwZGVmIGhhc19saW5lX21pbm9yKHNlbGYsIGssIGh5cGVybGluZXM9Tm9uZSwgY2VydGlmaWNh dGU9RmFsc2UpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBoYXNfbGluZV9taW5vcihzZWxmLCBrLCBo eXBlcmxpbmVzPU5vbmUsIGNlcnRpZmljYXRlPUZhbHNlKToKKyAgICAgICAgIHIiIiIKKyAgICAg ICAgIFRlc3QgaWYgdGhlIG1hdHJvaWQgaGFzIGEgYFVfezIsIGt9YC1taW5vci4KKyAKK0BAIC02 MjY2LDcgKzYyNjYsNyBAQCBjZGVmIGNsYXNzIFJlZ3VsYXJNYXRyb2lkKExpbmVhck1hdHJvaWQp OgorICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgcmV0dXJuIE1hdHJvaWQuaGFz X2xpbmVfbWlub3Ioc2VsZiwgaywgaHlwZXJsaW5lcywgY2VydGlmaWNhdGUpCisgCistICAgIGNw ZGVmIF9saW5lYXJfZXh0ZW5zaW9uX2NoYWlucyhzZWxmLCBGLCBmdW5kYW1lbnRhbHM9Tm9uZSkg bm9leGNlcHQ6CisrICAgIGNwZGVmIF9saW5lYXJfZXh0ZW5zaW9uX2NoYWlucyhzZWxmLCBGLCBm dW5kYW1lbnRhbHM9Tm9uZSk6CisgICAgICAgICByIiIiCisgICAgICAgICBDcmVhdGUgYSBsaXN0 IG9mIGNoYWlucyB0aGF0IGRldGVybWluZSBzaW5nbGUtZWxlbWVudCBleHRlbnNpb25zIG9mCisg ICAgICAgICB0aGlzIGxpbmVhciBtYXRyb2lkIHJlcHJlc2VudGF0aW9uLgorQEAgLTYzMDMsNyAr NjMwMyw3IEBAIGNkZWYgY2xhc3MgUmVndWxhck1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAg ICAgICAgICAgZnVuZGFtZW50YWxzID0gc2V0KFsxXSkKKyAgICAgICAgIHJldHVybiBMaW5lYXJN YXRyb2lkLl9saW5lYXJfZXh0ZW5zaW9uX2NoYWlucyhzZWxmLCBGLCBmdW5kYW1lbnRhbHMpCisg CistICAgIGNwZGVmIGlzX2dyYXBoaWMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGlzX2dy YXBoaWMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRlc3QgaWYgdGhlIHJlZ3VsYXIg bWF0cm9pZCBpcyBncmFwaGljLgorIAorQEAgLTYzMzYsNyArNjMzNiw3IEBAIGNkZWYgY2xhc3Mg UmVndWxhck1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJl dHVybiBCaW5hcnlNYXRyb2lkKHJlZHVjZWRfbWF0cml4PXNlbGYuX3JlZHVjZWRfcmVwcmVzZW50 YXRpb24oKSkuaXNfZ3JhcGhpYygpCisgCistICAgIGNwZGVmIGlzX3ZhbGlkKHNlbGYpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBpc192YWxpZChzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAg IFRlc3QgaWYgdGhlIGRhdGEgb2JleSB0aGUgbWF0cm9pZCBheGlvbXMuCisgCitAQCAtNjM2Nyw3 ICs2MzY3LDcgQEAgY2RlZiBjbGFzcyBSZWd1bGFyTWF0cm9pZChMaW5lYXJNYXRyb2lkKToKKyAK KyAgICAgIyByZXByZXNlbnRhdGlvbgorIAorLSAgICBjcGRlZiBiaW5hcnlfbWF0cm9pZChzZWxm LCByYW5kb21pemVkX3Rlc3RzPTEsIHZlcmlmeSA9IFRydWUpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBiaW5hcnlfbWF0cm9pZChzZWxmLCByYW5kb21pemVkX3Rlc3RzPTEsIHZlcmlmeSA9IFRydWUp OgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIGEgYmluYXJ5IG1hdHJvaWQgcmVwcmVz ZW50aW5nIGBgc2VsZmBgLgorIAorQEAgLTYzOTgsNyArNjM5OCw3IEBAIGNkZWYgY2xhc3MgUmVn dWxhck1hdHJvaWQoTGluZWFyTWF0cm9pZCk6CisgICAgICAgICBBLCBFID0gc2VsZi5yZXByZXNl bnRhdGlvbihCID0gc2VsZi5iYXNpcygpLCByZWR1Y2VkID0gRmFsc2UsIGxhYmVscyA9IFRydWUp CisgICAgICAgICByZXR1cm4gQmluYXJ5TWF0cm9pZChtYXRyaXggPSBBLCBncm91bmRzZXQgPSBF KQorIAorLSAgICBjcGRlZiBpc19iaW5hcnkoc2VsZiwgcmFuZG9taXplZF90ZXN0cz0xKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgaXNfYmluYXJ5KHNlbGYsIHJhbmRvbWl6ZWRfdGVzdHM9MSk6Cisg ICAgICAgICByIiIiCisgICAgICAgICBEZWNpZGUgaWYgYGBzZWxmYGAgaXMgYSBiaW5hcnkgbWF0 cm9pZC4KKyAKK0BAIC02NDI2LDcgKzY0MjYsNyBAQCBjZGVmIGNsYXNzIFJlZ3VsYXJNYXRyb2lk KExpbmVhck1hdHJvaWQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gVHJ1ZQorIAor LSAgICBjcGRlZiB0ZXJuYXJ5X21hdHJvaWQoc2VsZiwgcmFuZG9taXplZF90ZXN0cz0xLCB2ZXJp ZnkgPSBUcnVlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgdGVybmFyeV9tYXRyb2lkKHNlbGYsIHJh bmRvbWl6ZWRfdGVzdHM9MSwgdmVyaWZ5ID0gVHJ1ZSk6CisgICAgICAgICByIiIiCisgICAgICAg ICBSZXR1cm4gYSB0ZXJuYXJ5IG1hdHJvaWQgcmVwcmVzZW50aW5nIGBgc2VsZmBgLgorIAorQEAg LTY0NTcsNyArNjQ1Nyw3IEBAIGNkZWYgY2xhc3MgUmVndWxhck1hdHJvaWQoTGluZWFyTWF0cm9p ZCk6CisgICAgICAgICBBLCBFID0gc2VsZi5yZXByZXNlbnRhdGlvbihCID0gc2VsZi5iYXNpcygp LCByZWR1Y2VkID0gRmFsc2UsIGxhYmVscyA9IFRydWUpCisgICAgICAgICByZXR1cm4gVGVybmFy eU1hdHJvaWQobWF0cml4ID0gQSwgZ3JvdW5kc2V0ID0gRSkKKyAKKy0gICAgY3BkZWYgaXNfdGVy bmFyeShzZWxmLCByYW5kb21pemVkX3Rlc3RzPTEpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBpc190 ZXJuYXJ5KHNlbGYsIHJhbmRvbWl6ZWRfdGVzdHM9MSk6CisgICAgICAgICByIiIiCisgICAgICAg ICBEZWNpZGUgaWYgYGBzZWxmYGAgaXMgYSB0ZXJuYXJ5IG1hdHJvaWQuCisgCitkaWZmIC0tZ2l0 IGEvc3JjL3NhZ2UvbWF0cm9pZHMvbWF0cm9pZC5weGQgYi9zcmMvc2FnZS9tYXRyb2lkcy9tYXRy b2lkLnB4ZAoraW5kZXggN2QyYmM2MDA3OGQuLjRlMmQ2ODc3YWM3IDEwMDY0NAorLS0tIGEvc3Jj L3NhZ2UvbWF0cm9pZHMvbWF0cm9pZC5weGQKKysrKyBiL3NyYy9zYWdlL21hdHJvaWRzL21hdHJv aWQucHhkCitAQCAtNywzNiArNywzNiBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6 CisgICAgIGNkZWYgaW50IF9zdG9yZWRfc2l6ZQorIAorICAgICAjIHZpcnR1YWwgbWV0aG9kcwor LSAgICBjcGRlZiBncm91bmRzZXQoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgX3Jhbmsoc2Vs ZiwgWCkgbm9leGNlcHQKKysgICAgY3BkZWYgZ3JvdW5kc2V0KHNlbGYpCisrICAgIGNwZGVmIF9y YW5rKHNlbGYsIFgpCisgCisgICAgICMgaW50ZXJuYWwgbWV0aG9kcywgYXNzdW1pbmcgdmVyaWZp ZWQgaW5wdXQKKy0gICAgY3BkZWYgX21heF9pbmRlcGVuZGVudChzZWxmLCBYKSBub2V4Y2VwdAor LSAgICBjcGRlZiBfY2lyY3VpdChzZWxmLCBYKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfZnVuZGFt ZW50YWxfY2lyY3VpdChzZWxmLCBCLCBlKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfY2xvc3VyZShz ZWxmLCBYKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfY29yYW5rKHNlbGYsIFgpIG5vZXhjZXB0Cist ICAgIGNwZGVmIF9tYXhfY29pbmRlcGVuZGVudChzZWxmLCBYKSBub2V4Y2VwdAorLSAgICBjcGRl ZiBfY29jaXJjdWl0KHNlbGYsIFgpIG5vZXhjZXB0CistICAgIGNwZGVmIF9mdW5kYW1lbnRhbF9j b2NpcmN1aXQoc2VsZiwgQiwgZSkgbm9leGNlcHQKKy0gICAgY3BkZWYgX2NvY2xvc3VyZShzZWxm LCBYKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfYXVnbWVudChzZWxmLCBYLCBZKSBub2V4Y2VwdAor LQorLSAgICBjcGRlZiBfaXNfaW5kZXBlbmRlbnQoc2VsZiwgWCkgbm9leGNlcHQKKy0gICAgY3Bk ZWYgX2lzX2Jhc2lzKHNlbGYsIFgpIG5vZXhjZXB0CistICAgIGNwZGVmIF9pc19jaXJjdWl0KHNl bGYsIFgpIG5vZXhjZXB0CistICAgIGNwZGVmIF9pc19jbG9zZWQoc2VsZiwgWCkgbm9leGNlcHQK Ky0gICAgY3BkZWYgX2lzX2NvaW5kZXBlbmRlbnQoc2VsZiwgWCkgbm9leGNlcHQKKy0gICAgY3Bk ZWYgX2lzX2NvYmFzaXMoc2VsZiwgWCkgbm9leGNlcHQKKy0gICAgY3BkZWYgX2lzX2NvY2lyY3Vp dChzZWxmLCBYKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfaXNfY29jbG9zZWQoc2VsZiwgWCkgbm9l eGNlcHQKKy0KKy0gICAgY3BkZWYgX21pbm9yKHNlbGYsIGNvbnRyYWN0aW9ucywgZGVsZXRpb25z KSBub2V4Y2VwdAorLSAgICBjcGRlZiBfaGFzX21pbm9yKHNlbGYsIE4sIGJpbnQgY2VydGlmaWNh dGU9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgX2xpbmVfbGVuZ3RoKHNlbGYsIEYpIG5vZXhjZXB0 CistICAgIGNwZGVmIF9leHRlbnNpb24oc2VsZiwgZWxlbWVudCwgaHlwZXJwbGFuZXMpIG5vZXhj ZXB0CistCistICAgIGNkZWYgaW5saW5lIF9zdWJzZXRfaW50ZXJuYWwoc2VsZiwgWCkgbm9leGNl cHQ6CisrICAgIGNwZGVmIF9tYXhfaW5kZXBlbmRlbnQoc2VsZiwgWCkKKysgICAgY3BkZWYgX2Np cmN1aXQoc2VsZiwgWCkKKysgICAgY3BkZWYgX2Z1bmRhbWVudGFsX2NpcmN1aXQoc2VsZiwgQiwg ZSkKKysgICAgY3BkZWYgX2Nsb3N1cmUoc2VsZiwgWCkKKysgICAgY3BkZWYgX2NvcmFuayhzZWxm LCBYKQorKyAgICBjcGRlZiBfbWF4X2NvaW5kZXBlbmRlbnQoc2VsZiwgWCkKKysgICAgY3BkZWYg X2NvY2lyY3VpdChzZWxmLCBYKQorKyAgICBjcGRlZiBfZnVuZGFtZW50YWxfY29jaXJjdWl0KHNl bGYsIEIsIGUpCisrICAgIGNwZGVmIF9jb2Nsb3N1cmUoc2VsZiwgWCkKKysgICAgY3BkZWYgX2F1 Z21lbnQoc2VsZiwgWCwgWSkKKysKKysgICAgY3BkZWYgX2lzX2luZGVwZW5kZW50KHNlbGYsIFgp CisrICAgIGNwZGVmIF9pc19iYXNpcyhzZWxmLCBYKQorKyAgICBjcGRlZiBfaXNfY2lyY3VpdChz ZWxmLCBYKQorKyAgICBjcGRlZiBfaXNfY2xvc2VkKHNlbGYsIFgpCisrICAgIGNwZGVmIF9pc19j b2luZGVwZW5kZW50KHNlbGYsIFgpCisrICAgIGNwZGVmIF9pc19jb2Jhc2lzKHNlbGYsIFgpCisr ICAgIGNwZGVmIF9pc19jb2NpcmN1aXQoc2VsZiwgWCkKKysgICAgY3BkZWYgX2lzX2NvY2xvc2Vk KHNlbGYsIFgpCisrCisrICAgIGNwZGVmIF9taW5vcihzZWxmLCBjb250cmFjdGlvbnMsIGRlbGV0 aW9ucykKKysgICAgY3BkZWYgX2hhc19taW5vcihzZWxmLCBOLCBiaW50IGNlcnRpZmljYXRlPSop CisrICAgIGNwZGVmIF9saW5lX2xlbmd0aChzZWxmLCBGKQorKyAgICBjcGRlZiBfZXh0ZW5zaW9u KHNlbGYsIGVsZW1lbnQsIGh5cGVycGxhbmVzKQorKworKyAgICBjZGVmIGlubGluZSBfc3Vic2V0 X2ludGVybmFsKHNlbGYsIFgpOgorICAgICAgICAgIiIiCisgICAgICAgICBDb252ZXJ0IGBgWGBg IHRvIGEgYGBmcm96ZW5zZXRgYCBhbmQgY2hlY2sgdGhhdCBpdCBpcyBhIHN1YnNldAorICAgICAg ICAgb2YgdGhlIGdyb3VuZHNldC4KK0BAIC00OCw3ICs0OCw3IEBAIGNkZWYgY2xhc3MgTWF0cm9p ZChTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKGYie1ghcn0gaXMg bm90IGEgc3Vic2V0IG9mIHRoZSBncm91bmRzZXQiKQorICAgICAgICAgcmV0dXJuIFMKKyAKKy0g ICAgY2RlZiBpbmxpbmUgX19zdWJzZXRfYWxsKHNlbGYsIFgpIG5vZXhjZXB0OgorKyAgICBjZGVm IGlubGluZSBfX3N1YnNldF9hbGwoc2VsZiwgWCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIElm IGBgWGBgIGlzIGBgTm9uZWBgLCByZXR1cm4gdGhlIGdyb3VuZHNldC4KKyAKK0BAIC02NiwxNjEg KzY2LDE2MSBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICByZXR1 cm4gUworIAorICAgICAjICoqIHVzZXItZmFjaW5nIG1ldGhvZHMgKioKKy0gICAgY3BkZWYgc2l6 ZShzZWxmKSBub2V4Y2VwdAorKyAgICBjcGRlZiBzaXplKHNlbGYpCisgCisgICAgICMgbWF0cm9p ZCBvcmFjbGUKKy0gICAgY3BkZWYgcmFuayhzZWxmLCBYPSopIG5vZXhjZXB0CistICAgIGNwZGVm IGZ1bGxfcmFuayhzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBiYXNpcyhzZWxmKSBub2V4Y2Vw dAorLSAgICBjcGRlZiBtYXhfaW5kZXBlbmRlbnQoc2VsZiwgWCkgbm9leGNlcHQKKy0gICAgY3Bk ZWYgY2lyY3VpdChzZWxmLCBYPSopIG5vZXhjZXB0CistICAgIGNwZGVmIGZ1bmRhbWVudGFsX2Np cmN1aXQoc2VsZiwgQiwgZSkgbm9leGNlcHQKKy0gICAgY3BkZWYgY2xvc3VyZShzZWxmLCBYKSBu b2V4Y2VwdAorLSAgICBjcGRlZiBrX2Nsb3N1cmUoc2VsZiwgWCwgaykgbm9leGNlcHQKKy0KKy0g ICAgY3BkZWYgYXVnbWVudChzZWxmLCBYLCBZPSopIG5vZXhjZXB0CistCistICAgIGNwZGVmIGNv cmFuayhzZWxmLCBYPSopIG5vZXhjZXB0CistICAgIGNwZGVmIGZ1bGxfY29yYW5rKHNlbGYpIG5v ZXhjZXB0CistICAgIGNwZGVmIGNvYmFzaXMoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgbWF4 X2NvaW5kZXBlbmRlbnQoc2VsZiwgWCkgbm9leGNlcHQKKy0gICAgY3BkZWYgY29jaXJjdWl0KHNl bGYsIFg9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgZnVuZGFtZW50YWxfY29jaXJjdWl0KHNlbGYs IEIsIGUpIG5vZXhjZXB0CistICAgIGNwZGVmIGNvY2xvc3VyZShzZWxmLCBYKSBub2V4Y2VwdAor LQorLSAgICBjcGRlZiBsb29wcyhzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBpc19pbmRlcGVu ZGVudChzZWxmLCBYKSBub2V4Y2VwdAorLSAgICBjcGRlZiBpc19kZXBlbmRlbnQoc2VsZiwgWCkg bm9leGNlcHQKKy0gICAgY3BkZWYgaXNfYmFzaXMoc2VsZiwgWCkgbm9leGNlcHQKKy0gICAgY3Bk ZWYgaXNfY2lyY3VpdChzZWxmLCBYKSBub2V4Y2VwdAorLSAgICBjcGRlZiBpc19jbG9zZWQoc2Vs ZiwgWCkgbm9leGNlcHQKKy0gICAgY3BkZWYgaXNfc3Vic2V0X2tfY2xvc2VkKHNlbGYsIFgsIGlu dCBrKSBub2V4Y2VwdAorLQorLSAgICBjcGRlZiBjb2xvb3BzKHNlbGYpIG5vZXhjZXB0CistICAg IGNwZGVmIGlzX2NvaW5kZXBlbmRlbnQoc2VsZiwgWCkgbm9leGNlcHQKKy0gICAgY3BkZWYgaXNf Y29kZXBlbmRlbnQoc2VsZiwgWCkgbm9leGNlcHQKKy0gICAgY3BkZWYgaXNfY29iYXNpcyhzZWxm LCBYKSBub2V4Y2VwdAorLSAgICBjcGRlZiBpc19jb2NpcmN1aXQoc2VsZiwgWCkgbm9leGNlcHQK Ky0gICAgY3BkZWYgaXNfY29jbG9zZWQoc2VsZiwgWCkgbm9leGNlcHQKKysgICAgY3BkZWYgcmFu ayhzZWxmLCBYPSopCisrICAgIGNwZGVmIGZ1bGxfcmFuayhzZWxmKQorKyAgICBjcGRlZiBiYXNp cyhzZWxmKQorKyAgICBjcGRlZiBtYXhfaW5kZXBlbmRlbnQoc2VsZiwgWCkKKysgICAgY3BkZWYg Y2lyY3VpdChzZWxmLCBYPSopCisrICAgIGNwZGVmIGZ1bmRhbWVudGFsX2NpcmN1aXQoc2VsZiwg QiwgZSkKKysgICAgY3BkZWYgY2xvc3VyZShzZWxmLCBYKQorKyAgICBjcGRlZiBrX2Nsb3N1cmUo c2VsZiwgWCwgaykKKysKKysgICAgY3BkZWYgYXVnbWVudChzZWxmLCBYLCBZPSopCisrCisrICAg IGNwZGVmIGNvcmFuayhzZWxmLCBYPSopCisrICAgIGNwZGVmIGZ1bGxfY29yYW5rKHNlbGYpCisr ICAgIGNwZGVmIGNvYmFzaXMoc2VsZikKKysgICAgY3BkZWYgbWF4X2NvaW5kZXBlbmRlbnQoc2Vs ZiwgWCkKKysgICAgY3BkZWYgY29jaXJjdWl0KHNlbGYsIFg9KikKKysgICAgY3BkZWYgZnVuZGFt ZW50YWxfY29jaXJjdWl0KHNlbGYsIEIsIGUpCisrICAgIGNwZGVmIGNvY2xvc3VyZShzZWxmLCBY KQorKworKyAgICBjcGRlZiBsb29wcyhzZWxmKQorKyAgICBjcGRlZiBpc19pbmRlcGVuZGVudChz ZWxmLCBYKQorKyAgICBjcGRlZiBpc19kZXBlbmRlbnQoc2VsZiwgWCkKKysgICAgY3BkZWYgaXNf YmFzaXMoc2VsZiwgWCkKKysgICAgY3BkZWYgaXNfY2lyY3VpdChzZWxmLCBYKQorKyAgICBjcGRl ZiBpc19jbG9zZWQoc2VsZiwgWCkKKysgICAgY3BkZWYgaXNfc3Vic2V0X2tfY2xvc2VkKHNlbGYs IFgsIGludCBrKQorKworKyAgICBjcGRlZiBjb2xvb3BzKHNlbGYpCisrICAgIGNwZGVmIGlzX2Nv aW5kZXBlbmRlbnQoc2VsZiwgWCkKKysgICAgY3BkZWYgaXNfY29kZXBlbmRlbnQoc2VsZiwgWCkK KysgICAgY3BkZWYgaXNfY29iYXNpcyhzZWxmLCBYKQorKyAgICBjcGRlZiBpc19jb2NpcmN1aXQo c2VsZiwgWCkKKysgICAgY3BkZWYgaXNfY29jbG9zZWQoc2VsZiwgWCkKKyAKKyAgICAgIyB2ZXJp ZmljYXRpb24KKy0gICAgY3BkZWYgaXNfdmFsaWQoc2VsZikgbm9leGNlcHQKKysgICAgY3BkZWYg aXNfdmFsaWQoc2VsZikKKyAKKyAgICAgIyBlbnVtZXJhdGlvbgorLSAgICBjcGRlZiBjaXJjdWl0 cyhzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBub25zcGFubmluZ19jaXJjdWl0cyhzZWxmKSBu b2V4Y2VwdAorLSAgICBjcGRlZiBjb2NpcmN1aXRzKHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVm IG5vbmNvc3Bhbm5pbmdfY29jaXJjdWl0cyhzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBjaXJj dWl0X2Nsb3N1cmVzKHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIG5vbnNwYW5uaW5nX2NpcmN1 aXRfY2xvc3VyZXMoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgYmFzZXMoc2VsZikgbm9leGNl cHQKKy0gICAgY3BkZWYgaW5kZXBlbmRlbnRfc2V0cyhzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRl ZiBpbmRlcGVuZGVudF9yX3NldHMoc2VsZiwgbG9uZyByKSBub2V4Y2VwdAorLSAgICBjcGRlZiBu b25iYXNlcyhzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBkZXBlbmRlbnRfcl9zZXRzKHNlbGYs IGxvbmcgcikgbm9leGNlcHQKKy0gICAgY3BkZWYgX2V4dGVuZF9mbGFncyhzZWxmLCBmbGFncykg bm9leGNlcHQKKy0gICAgY3BkZWYgX2ZsYWdzKHNlbGYsIHIpIG5vZXhjZXB0CistICAgIGNwZGVm IGZsYXRzKHNlbGYsIHIpIG5vZXhjZXB0CistICAgIGNwZGVmIGNvZmxhdHMoc2VsZiwgcikgbm9l eGNlcHQKKy0gICAgY3BkZWYgaHlwZXJwbGFuZXMoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYg Zl92ZWN0b3Ioc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgYnJva2VuX2NpcmN1aXRzKHNlbGYs IG9yZGVyaW5nPSopIG5vZXhjZXB0CistICAgIGNwZGVmIG5vX2Jyb2tlbl9jaXJjdWl0c19zZXRz KHNlbGYsIG9yZGVyaW5nPSopIG5vZXhjZXB0CisrICAgIGNwZGVmIGNpcmN1aXRzKHNlbGYpCisr ICAgIGNwZGVmIG5vbnNwYW5uaW5nX2NpcmN1aXRzKHNlbGYpCisrICAgIGNwZGVmIGNvY2lyY3Vp dHMoc2VsZikKKysgICAgY3BkZWYgbm9uY29zcGFubmluZ19jb2NpcmN1aXRzKHNlbGYpCisrICAg IGNwZGVmIGNpcmN1aXRfY2xvc3VyZXMoc2VsZikKKysgICAgY3BkZWYgbm9uc3Bhbm5pbmdfY2ly Y3VpdF9jbG9zdXJlcyhzZWxmKQorKyAgICBjcGRlZiBiYXNlcyhzZWxmKQorKyAgICBjcGRlZiBp bmRlcGVuZGVudF9zZXRzKHNlbGYpCisrICAgIGNwZGVmIGluZGVwZW5kZW50X3Jfc2V0cyhzZWxm LCBsb25nIHIpCisrICAgIGNwZGVmIG5vbmJhc2VzKHNlbGYpCisrICAgIGNwZGVmIGRlcGVuZGVu dF9yX3NldHMoc2VsZiwgbG9uZyByKQorKyAgICBjcGRlZiBfZXh0ZW5kX2ZsYWdzKHNlbGYsIGZs YWdzKQorKyAgICBjcGRlZiBfZmxhZ3Moc2VsZiwgcikKKysgICAgY3BkZWYgZmxhdHMoc2VsZiwg cikKKysgICAgY3BkZWYgY29mbGF0cyhzZWxmLCByKQorKyAgICBjcGRlZiBoeXBlcnBsYW5lcyhz ZWxmKQorKyAgICBjcGRlZiBmX3ZlY3RvcihzZWxmKQorKyAgICBjcGRlZiBicm9rZW5fY2lyY3Vp dHMoc2VsZiwgb3JkZXJpbmc9KikKKysgICAgY3BkZWYgbm9fYnJva2VuX2NpcmN1aXRzX3NldHMo c2VsZiwgb3JkZXJpbmc9KikKKyAKKyAgICAgIyBpc29tb3JwaGlzbQorLSAgICBjcGRlZiBpc19p c29tb3JwaGljKHNlbGYsIG90aGVyLCBjZXJ0aWZpY2F0ZT0qKSBub2V4Y2VwdAorLSAgICBjcGRl ZiBfaXNfaXNvbW9ycGhpYyhzZWxmLCBvdGhlciwgY2VydGlmaWNhdGU9Kikgbm9leGNlcHQKKy0g ICAgY3BkZWYgaXNvbW9ycGhpc20oc2VsZiwgb3RoZXIpIG5vZXhjZXB0CistICAgIGNwZGVmIF9p c29tb3JwaGlzbShzZWxmLCBvdGhlcikgbm9leGNlcHQKKy0gICAgY3BkZWYgZXF1YWxzKHNlbGYs IG90aGVyKSBub2V4Y2VwdAorLSAgICBjcGRlZiBpc19pc29tb3JwaGlzbShzZWxmLCBvdGhlciwg bW9ycGhpc20pIG5vZXhjZXB0CistICAgIGNwZGVmIF9pc19pc29tb3JwaGlzbShzZWxmLCBvdGhl ciwgbW9ycGhpc20pIG5vZXhjZXB0CisrICAgIGNwZGVmIGlzX2lzb21vcnBoaWMoc2VsZiwgb3Ro ZXIsIGNlcnRpZmljYXRlPSopCisrICAgIGNwZGVmIF9pc19pc29tb3JwaGljKHNlbGYsIG90aGVy LCBjZXJ0aWZpY2F0ZT0qKQorKyAgICBjcGRlZiBpc29tb3JwaGlzbShzZWxmLCBvdGhlcikKKysg ICAgY3BkZWYgX2lzb21vcnBoaXNtKHNlbGYsIG90aGVyKQorKyAgICBjcGRlZiBlcXVhbHMoc2Vs Ziwgb3RoZXIpCisrICAgIGNwZGVmIGlzX2lzb21vcnBoaXNtKHNlbGYsIG90aGVyLCBtb3JwaGlz bSkKKysgICAgY3BkZWYgX2lzX2lzb21vcnBoaXNtKHNlbGYsIG90aGVyLCBtb3JwaGlzbSkKKyAK KyAgICAgIyBtaW5vcnMsIGR1YWwsIHRydW5jYXRpb24KKy0gICAgY3BkZWYgbWlub3Ioc2VsZiwg Y29udHJhY3Rpb25zPSosIGRlbGV0aW9ucz0qKSBub2V4Y2VwdAorLSAgICBjcGRlZiBjb250cmFj dChzZWxmLCBYKSBub2V4Y2VwdAorLSAgICBjcGRlZiBkZWxldGUoc2VsZiwgWCkgbm9leGNlcHQK Ky0gICAgY3BkZWYgX2JhY2tzbGFzaF8oc2VsZiwgWCkgbm9leGNlcHQKKy0gICAgY3BkZWYgZHVh bChzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiB0cnVuY2F0aW9uKHNlbGYpIG5vZXhjZXB0Cist ICAgIGNwZGVmIGhhc19taW5vcihzZWxmLCBOLCBiaW50IGNlcnRpZmljYXRlPSopIG5vZXhjZXB0 CistICAgIGNwZGVmIGhhc19saW5lX21pbm9yKHNlbGYsIGssIGh5cGVybGluZXM9KiwgY2VydGlm aWNhdGU9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgX2hhc19saW5lX21pbm9yKHNlbGYsIGssIGh5 cGVybGluZXMsIGNlcnRpZmljYXRlPSopIG5vZXhjZXB0CisrICAgIGNwZGVmIG1pbm9yKHNlbGYs IGNvbnRyYWN0aW9ucz0qLCBkZWxldGlvbnM9KikKKysgICAgY3BkZWYgY29udHJhY3Qoc2VsZiwg WCkKKysgICAgY3BkZWYgZGVsZXRlKHNlbGYsIFgpCisrICAgIGNwZGVmIF9iYWNrc2xhc2hfKHNl bGYsIFgpCisrICAgIGNwZGVmIGR1YWwoc2VsZikKKysgICAgY3BkZWYgdHJ1bmNhdGlvbihzZWxm KQorKyAgICBjcGRlZiBoYXNfbWlub3Ioc2VsZiwgTiwgYmludCBjZXJ0aWZpY2F0ZT0qKQorKyAg ICBjcGRlZiBoYXNfbGluZV9taW5vcihzZWxmLCBrLCBoeXBlcmxpbmVzPSosIGNlcnRpZmljYXRl PSopCisrICAgIGNwZGVmIF9oYXNfbGluZV9taW5vcihzZWxmLCBrLCBoeXBlcmxpbmVzLCBjZXJ0 aWZpY2F0ZT0qKQorIAorICAgICAjIGV4dGVuc2lvbgorLSAgICBjcGRlZiBleHRlbnNpb24oc2Vs ZiwgZWxlbWVudD0qLCBzdWJzZXRzPSopIG5vZXhjZXB0CistICAgIGNwZGVmIGNvZXh0ZW5zaW9u KHNlbGYsIGVsZW1lbnQ9Kiwgc3Vic2V0cz0qKSBub2V4Y2VwdAorLSAgICBjcGRlZiBtb2R1bGFy X2N1dChzZWxmLCBzdWJzZXRzKSBub2V4Y2VwdAorLSAgICBjcGRlZiBsaW5lYXJfc3ViY2xhc3Nl cyhzZWxmLCBsaW5lX2xlbmd0aD0qLCBzdWJzZXRzPSopIG5vZXhjZXB0CistICAgIGNwZGVmIGV4 dGVuc2lvbnMoc2VsZiwgZWxlbWVudD0qLCBsaW5lX2xlbmd0aD0qLCBzdWJzZXRzPSopIG5vZXhj ZXB0CisrICAgIGNwZGVmIGV4dGVuc2lvbihzZWxmLCBlbGVtZW50PSosIHN1YnNldHM9KikKKysg ICAgY3BkZWYgY29leHRlbnNpb24oc2VsZiwgZWxlbWVudD0qLCBzdWJzZXRzPSopCisrICAgIGNw ZGVmIG1vZHVsYXJfY3V0KHNlbGYsIHN1YnNldHMpCisrICAgIGNwZGVmIGxpbmVhcl9zdWJjbGFz c2VzKHNlbGYsIGxpbmVfbGVuZ3RoPSosIHN1YnNldHM9KikKKysgICAgY3BkZWYgZXh0ZW5zaW9u cyhzZWxmLCBlbGVtZW50PSosIGxpbmVfbGVuZ3RoPSosIHN1YnNldHM9KikKKyAKKyAgICAgIyBj b25uZWN0aXZpdHkKKy0gICAgY3BkZWYgc2ltcGxpZnkoc2VsZikgbm9leGNlcHQKKy0gICAgY3Bk ZWYgY29zaW1wbGlmeShzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBpc19zaW1wbGUoc2VsZikg bm9leGNlcHQKKy0gICAgY3BkZWYgaXNfY29zaW1wbGUoc2VsZikgbm9leGNlcHQKKy0gICAgY3Bk ZWYgY29tcG9uZW50cyhzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBpc19jb25uZWN0ZWQoc2Vs ZiwgY2VydGlmaWNhdGU9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgY29ubmVjdGl2aXR5KHNlbGYs IFMsIFQ9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgX2Nvbm5lY3Rpdml0eShzZWxmLCBTLCBUKSBu b2V4Y2VwdAorLSAgICBjcGRlZiBpc19rY29ubmVjdGVkKHNlbGYsIGssIGNlcnRpZmljYXRlPSop IG5vZXhjZXB0CistICAgIGNwZGVmIGxpbmsoc2VsZiwgUywgVCkgbm9leGNlcHQKKy0gICAgY3Bk ZWYgX2xpbmsoc2VsZiwgUywgVCkgbm9leGNlcHQKKy0gICAgY3BkZWYgX2lzXzNjb25uZWN0ZWRf c2hpZnRpbmcoc2VsZiwgY2VydGlmaWNhdGU9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgX2lzXzRj b25uZWN0ZWRfc2hpZnRpbmcoc2VsZiwgY2VydGlmaWNhdGU9Kikgbm9leGNlcHQKKy0gICAgY3Bk ZWYgX3NoaWZ0aW5nX2FsbChzZWxmLCBYLCBQX3Jvd3MsIFBfY29scywgUV9yb3dzLCBRX2NvbHMs IG0pIG5vZXhjZXB0CistICAgIGNwZGVmIF9zaGlmdGluZyhzZWxmLCBYLCBYXzEsIFlfMiwgWF8y LCBZXzEsIG0pIG5vZXhjZXB0CistICAgIGNwZGVmIGlzXzNjb25uZWN0ZWQoc2VsZiwgY2VydGlm aWNhdGU9KiwgYWxnb3JpdGhtPSopIG5vZXhjZXB0CistICAgIGNwZGVmIGlzXzRjb25uZWN0ZWQo c2VsZiwgY2VydGlmaWNhdGU9KiwgYWxnb3JpdGhtPSopIG5vZXhjZXB0CistICAgIGNwZGVmIF9p c18zY29ubmVjdGVkX0NFKHNlbGYsIGNlcnRpZmljYXRlPSopIG5vZXhjZXB0CistICAgIGNwZGVm IF9pc18zY29ubmVjdGVkX0JDKHNlbGYsIGNlcnRpZmljYXRlPSopIG5vZXhjZXB0CistICAgIGNw ZGVmIF9pc18zY29ubmVjdGVkX0JDX3JlY3Vyc2lvbihzZWxmLCBiYXNpcywgZnVuZF9jb2NpcmN1 aXRzKSBub2V4Y2VwdAorLSAgICBjcGRlZiBpc19wYXZpbmcoc2VsZikgbm9leGNlcHQKKy0gICAg Y3BkZWYgaXNfc3BhcnNlX3BhdmluZyhzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBnaXJ0aChz ZWxmKSBub2V4Y2VwdAorKyAgICBjcGRlZiBzaW1wbGlmeShzZWxmKQorKyAgICBjcGRlZiBjb3Np bXBsaWZ5KHNlbGYpCisrICAgIGNwZGVmIGlzX3NpbXBsZShzZWxmKQorKyAgICBjcGRlZiBpc19j b3NpbXBsZShzZWxmKQorKyAgICBjcGRlZiBjb21wb25lbnRzKHNlbGYpCisrICAgIGNwZGVmIGlz X2Nvbm5lY3RlZChzZWxmLCBjZXJ0aWZpY2F0ZT0qKQorKyAgICBjcGRlZiBjb25uZWN0aXZpdHko c2VsZiwgUywgVD0qKQorKyAgICBjcGRlZiBfY29ubmVjdGl2aXR5KHNlbGYsIFMsIFQpCisrICAg IGNwZGVmIGlzX2tjb25uZWN0ZWQoc2VsZiwgaywgY2VydGlmaWNhdGU9KikKKysgICAgY3BkZWYg bGluayhzZWxmLCBTLCBUKQorKyAgICBjcGRlZiBfbGluayhzZWxmLCBTLCBUKQorKyAgICBjcGRl ZiBfaXNfM2Nvbm5lY3RlZF9zaGlmdGluZyhzZWxmLCBjZXJ0aWZpY2F0ZT0qKQorKyAgICBjcGRl ZiBfaXNfNGNvbm5lY3RlZF9zaGlmdGluZyhzZWxmLCBjZXJ0aWZpY2F0ZT0qKQorKyAgICBjcGRl ZiBfc2hpZnRpbmdfYWxsKHNlbGYsIFgsIFBfcm93cywgUF9jb2xzLCBRX3Jvd3MsIFFfY29scywg bSkKKysgICAgY3BkZWYgX3NoaWZ0aW5nKHNlbGYsIFgsIFhfMSwgWV8yLCBYXzIsIFlfMSwgbSkK KysgICAgY3BkZWYgaXNfM2Nvbm5lY3RlZChzZWxmLCBjZXJ0aWZpY2F0ZT0qLCBhbGdvcml0aG09 KikKKysgICAgY3BkZWYgaXNfNGNvbm5lY3RlZChzZWxmLCBjZXJ0aWZpY2F0ZT0qLCBhbGdvcml0 aG09KikKKysgICAgY3BkZWYgX2lzXzNjb25uZWN0ZWRfQ0Uoc2VsZiwgY2VydGlmaWNhdGU9KikK KysgICAgY3BkZWYgX2lzXzNjb25uZWN0ZWRfQkMoc2VsZiwgY2VydGlmaWNhdGU9KikKKysgICAg Y3BkZWYgX2lzXzNjb25uZWN0ZWRfQkNfcmVjdXJzaW9uKHNlbGYsIGJhc2lzLCBmdW5kX2NvY2ly Y3VpdHMpCisrICAgIGNwZGVmIGlzX3BhdmluZyhzZWxmKQorKyAgICBjcGRlZiBpc19zcGFyc2Vf cGF2aW5nKHNlbGYpCisrICAgIGNwZGVmIGdpcnRoKHNlbGYpCisgCisgICAgICMgcmVwcmVzZW50 YWJpbGl0eQorLSAgICBjcGRlZiBfbG9jYWxfYmluYXJ5X21hdHJvaWQoc2VsZiwgYmFzaXM9Kikg bm9leGNlcHQKKy0gICAgY3BkZWYgYmluYXJ5X21hdHJvaWQoc2VsZiwgcmFuZG9taXplZF90ZXN0 cz0qLCB2ZXJpZnk9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgaXNfYmluYXJ5KHNlbGYsIHJhbmRv bWl6ZWRfdGVzdHM9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgX2xvY2FsX3Rlcm5hcnlfbWF0cm9p ZChzZWxmLCBiYXNpcz0qKSBub2V4Y2VwdAorLSAgICBjcGRlZiB0ZXJuYXJ5X21hdHJvaWQoc2Vs ZiwgcmFuZG9taXplZF90ZXN0cz0qLCB2ZXJpZnk9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgaXNf dGVybmFyeShzZWxmLCByYW5kb21pemVkX3Rlc3RzPSopIG5vZXhjZXB0CisrICAgIGNwZGVmIF9s b2NhbF9iaW5hcnlfbWF0cm9pZChzZWxmLCBiYXNpcz0qKQorKyAgICBjcGRlZiBiaW5hcnlfbWF0 cm9pZChzZWxmLCByYW5kb21pemVkX3Rlc3RzPSosIHZlcmlmeT0qKQorKyAgICBjcGRlZiBpc19i aW5hcnkoc2VsZiwgcmFuZG9taXplZF90ZXN0cz0qKQorKyAgICBjcGRlZiBfbG9jYWxfdGVybmFy eV9tYXRyb2lkKHNlbGYsIGJhc2lzPSopCisrICAgIGNwZGVmIHRlcm5hcnlfbWF0cm9pZChzZWxm LCByYW5kb21pemVkX3Rlc3RzPSosIHZlcmlmeT0qKQorKyAgICBjcGRlZiBpc190ZXJuYXJ5KHNl bGYsIHJhbmRvbWl6ZWRfdGVzdHM9KikKKyAKKyAgICAgIyBtYXRyb2lkIGstY2xvc2VkCistICAg IGNwZGVmIGlzX2tfY2xvc2VkKHNlbGYsIGludCBrKSBub2V4Y2VwdAorKyAgICBjcGRlZiBpc19r X2Nsb3NlZChzZWxmLCBpbnQgaykKKyAKKyAgICAgIyBtYXRyb2lkIGNob3JkYWxpdHkKKy0gICAg Y3BkZWYgX2lzX2NpcmN1aXRfY2hvcmRhbChzZWxmLCBmcm96ZW5zZXQgQywgYmludCBjZXJ0aWZp Y2F0ZT0qKSBub2V4Y2VwdAorLSAgICBjcGRlZiBpc19jaXJjdWl0X2Nob3JkYWwoc2VsZiwgQywg YmludCBjZXJ0aWZpY2F0ZT0qKSBub2V4Y2VwdAorLSAgICBjcGRlZiBpc19jaG9yZGFsKHNlbGYs IGsxPSosIGsyPSosIGJpbnQgY2VydGlmaWNhdGU9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgY2hv cmRhbGl0eShzZWxmKSBub2V4Y2VwdAorKyAgICBjcGRlZiBfaXNfY2lyY3VpdF9jaG9yZGFsKHNl bGYsIGZyb3plbnNldCBDLCBiaW50IGNlcnRpZmljYXRlPSopCisrICAgIGNwZGVmIGlzX2NpcmN1 aXRfY2hvcmRhbChzZWxmLCBDLCBiaW50IGNlcnRpZmljYXRlPSopCisrICAgIGNwZGVmIGlzX2No b3JkYWwoc2VsZiwgazE9KiwgazI9KiwgYmludCBjZXJ0aWZpY2F0ZT0qKQorKyAgICBjcGRlZiBj aG9yZGFsaXR5KHNlbGYpCisgCisgICAgICMgb3B0aW1pemF0aW9uCistICAgIGNwZGVmIG1heF93 ZWlnaHRfaW5kZXBlbmRlbnQoc2VsZiwgWD0qLCB3ZWlnaHRzPSopIG5vZXhjZXB0CistICAgIGNw ZGVmIG1heF93ZWlnaHRfY29pbmRlcGVuZGVudChzZWxmLCBYPSosIHdlaWdodHM9Kikgbm9leGNl cHQKKy0gICAgY3BkZWYgaXNfbWF4X3dlaWdodF9pbmRlcGVuZGVudF9nZW5lcmljKHNlbGYsIFg9 Kiwgd2VpZ2h0cz0qKSBub2V4Y2VwdAorLSAgICBjcGRlZiBpc19tYXhfd2VpZ2h0X2NvaW5kZXBl bmRlbnRfZ2VuZXJpYyhzZWxmLCBYPSosIHdlaWdodHM9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYg aW50ZXJzZWN0aW9uKHNlbGYsIG90aGVyLCB3ZWlnaHRzPSopIG5vZXhjZXB0CistICAgIGNwZGVm IF9pbnRlcnNlY3Rpb24oc2VsZiwgb3RoZXIsIHdlaWdodHMpIG5vZXhjZXB0CistICAgIGNwZGVm IF9pbnRlcnNlY3Rpb25fYXVnbWVudGF0aW9uKHNlbGYsIG90aGVyLCB3ZWlnaHRzLCBZKSBub2V4 Y2VwdAorLSAgICBjcGRlZiBpbnRlcnNlY3Rpb25fdW53ZWlnaHRlZChzZWxmLCBvdGhlcikgbm9l eGNlcHQKKy0gICAgY3BkZWYgX2ludGVyc2VjdGlvbl91bndlaWdodGVkKHNlbGYsIG90aGVyKSBu b2V4Y2VwdAorLSAgICBjcGRlZiBfaW50ZXJzZWN0aW9uX2F1Z21lbnRhdGlvbl91bndlaWdodGVk KHNlbGYsIG90aGVyLCBZKSBub2V4Y2VwdAorLSAgICBjcGRlZiBwYXJ0aXRpb24oc2VsZikgbm9l eGNlcHQKKysgICAgY3BkZWYgbWF4X3dlaWdodF9pbmRlcGVuZGVudChzZWxmLCBYPSosIHdlaWdo dHM9KikKKysgICAgY3BkZWYgbWF4X3dlaWdodF9jb2luZGVwZW5kZW50KHNlbGYsIFg9Kiwgd2Vp Z2h0cz0qKQorKyAgICBjcGRlZiBpc19tYXhfd2VpZ2h0X2luZGVwZW5kZW50X2dlbmVyaWMoc2Vs ZiwgWD0qLCB3ZWlnaHRzPSopCisrICAgIGNwZGVmIGlzX21heF93ZWlnaHRfY29pbmRlcGVuZGVu dF9nZW5lcmljKHNlbGYsIFg9Kiwgd2VpZ2h0cz0qKQorKyAgICBjcGRlZiBpbnRlcnNlY3Rpb24o c2VsZiwgb3RoZXIsIHdlaWdodHM9KikKKysgICAgY3BkZWYgX2ludGVyc2VjdGlvbihzZWxmLCBv dGhlciwgd2VpZ2h0cykKKysgICAgY3BkZWYgX2ludGVyc2VjdGlvbl9hdWdtZW50YXRpb24oc2Vs Ziwgb3RoZXIsIHdlaWdodHMsIFkpCisrICAgIGNwZGVmIGludGVyc2VjdGlvbl91bndlaWdodGVk KHNlbGYsIG90aGVyKQorKyAgICBjcGRlZiBfaW50ZXJzZWN0aW9uX3Vud2VpZ2h0ZWQoc2VsZiwg b3RoZXIpCisrICAgIGNwZGVmIF9pbnRlcnNlY3Rpb25fYXVnbWVudGF0aW9uX3Vud2VpZ2h0ZWQo c2VsZiwgb3RoZXIsIFkpCisrICAgIGNwZGVmIHBhcnRpdGlvbihzZWxmKQorIAorICAgICAjIGlu dmFyaWFudHMKKy0gICAgY3BkZWYgX2ludGVybmFsKHNlbGYsIEIpIG5vZXhjZXB0CistICAgIGNw ZGVmIF9leHRlcm5hbChzZWxmLCBCKSBub2V4Y2VwdAorLSAgICBjcGRlZiB0dXR0ZV9wb2x5bm9t aWFsKHNlbGYsIHg9KiwgeT0qKSBub2V4Y2VwdAorLSAgICBjcGRlZiBmbGF0X2NvdmVyKHNlbGYs IHNvbHZlcj0qLCB2ZXJib3NlPSosIGludGVncmFsaXR5X3RvbGVyYW5jZT0qKSBub2V4Y2VwdAor KyAgICBjcGRlZiBfaW50ZXJuYWwoc2VsZiwgQikKKysgICAgY3BkZWYgX2V4dGVybmFsKHNlbGYs IEIpCisrICAgIGNwZGVmIHR1dHRlX3BvbHlub21pYWwoc2VsZiwgeD0qLCB5PSopCisrICAgIGNw ZGVmIGZsYXRfY292ZXIoc2VsZiwgc29sdmVyPSosIHZlcmJvc2U9KiwgaW50ZWdyYWxpdHlfdG9s ZXJhbmNlPSopCisgCisgICAgICMgbWlzYworLSAgICBjcGRlZiBhdXRvbW9ycGhpc21fZ3JvdXAo c2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgYmVyZ21hbl9jb21wbGV4KHNlbGYpIG5vZXhjZXB0 CistICAgIGNwZGVmIGF1Z21lbnRlZF9iZXJnbWFuX2NvbXBsZXgoc2VsZikgbm9leGNlcHQKKysg ICAgY3BkZWYgYXV0b21vcnBoaXNtX2dyb3VwKHNlbGYpCisrICAgIGNwZGVmIGJlcmdtYW5fY29t cGxleChzZWxmKQorKyAgICBjcGRlZiBhdWdtZW50ZWRfYmVyZ21hbl9jb21wbGV4KHNlbGYpCisg CisgICAgICMgdmlzdWFsaXphdGlvbgorLSAgICBjcGRlZiBwbG90KHNlbGYsQj0qLGxpbmVvcmRl cnM9Kixwb3NfbWV0aG9kPSoscG9zX2RpY3Q9KixzYXZlX3Bvcz0qKSBub2V4Y2VwdAorLSAgICBj cGRlZiBzaG93KHNlbGYsQj0qLGxpbmVvcmRlcnM9Kixwb3NfbWV0aG9kPSoscG9zX2RpY3Q9Kixz YXZlX3Bvcz0qLGxpbXM9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgX2ZpeF9wb3NpdGlvbnMoc2Vs Zixwb3NfZGljdD0qLGxpbmVvcmRlcnM9Kikgbm9leGNlcHQKKysgICAgY3BkZWYgcGxvdChzZWxm LEI9KixsaW5lb3JkZXJzPSoscG9zX21ldGhvZD0qLHBvc19kaWN0PSosc2F2ZV9wb3M9KikKKysg ICAgY3BkZWYgc2hvdyhzZWxmLEI9KixsaW5lb3JkZXJzPSoscG9zX21ldGhvZD0qLHBvc19kaWN0 PSosc2F2ZV9wb3M9KixsaW1zPSopCisrICAgIGNwZGVmIF9maXhfcG9zaXRpb25zKHNlbGYscG9z X2RpY3Q9KixsaW5lb3JkZXJzPSopCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cm9pZHMvbWF0 cm9pZC5weXggYi9zcmMvc2FnZS9tYXRyb2lkcy9tYXRyb2lkLnB5eAoraW5kZXggMmRhNzQzZDM1 YzkuLmE2NDUwMWJiYjlhIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0cm9pZHMvbWF0cm9pZC5w eXgKKysrKyBiL3NyYy9zYWdlL21hdHJvaWRzL21hdHJvaWQucHl4CitAQCAtNDYzLDcgKzQ2Myw3 IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAKKyAgICAgIyB2aXJ0dWFsIG1l dGhvZHMKKyAKKy0gICAgY3BkZWYgZ3JvdW5kc2V0KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBncm91bmRzZXQoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgZ3Jv dW5kc2V0IG9mIHRoZSBtYXRyb2lkLgorIAorQEAgLTQ4OCw3ICs0ODgsNyBAQCBjZGVmIGNsYXNz IE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJhaXNlIE5vdElt cGxlbWVudGVkRXJyb3IoInN1YmNsYXNzZXMgbmVlZCB0byBpbXBsZW1lbnQgdGhpcy4iKQorIAor LSAgICBjcGRlZiBfcmFuayhzZWxmLCBYKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3Jhbmsoc2Vs ZiwgWCk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHJhbmsgb2YgYSBzZXQg YGBYYGAuCisgCitAQCAtNTIyLDcgKzUyMiw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2Jq ZWN0KToKKyAgICAgIyBmb3IgYmV0dGVyIGVmZmljaWVuY3ksIGl0cyBiZXN0IHRvIG92ZXJyaWRl IHRoZSBmb2xsb3dpbmcgbWV0aG9kcyBpbgorICAgICAjIGVhY2ggZGVyaXZlZCBjbGFzcworIAor LSAgICBjcGRlZiBfbWF4X2luZGVwZW5kZW50KHNlbGYsIFgpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBfbWF4X2luZGVwZW5kZW50KHNlbGYsIFgpOgorICAgICAgICAgIiIiCisgICAgICAgICBDb21w dXRlIGEgbWF4aW1hbCBpbmRlcGVuZGVudCBzdWJzZXQuCisgCitAQCAtNTU0LDcgKzU1NCw3IEBA IGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICAgICAgcmVzLmRp c2NhcmQoZSkKKyAgICAgICAgIHJldHVybiBmcm96ZW5zZXQocmVzKQorIAorLSAgICBjcGRlZiBf Y2lyY3VpdChzZWxmLCBYKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2NpcmN1aXQoc2VsZiwgWCk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBhIG1pbmltYWwgZGVwZW5kZW50IHN1YnNl dC4KKyAKK0BAIC01OTIsNyArNTkyLDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3Qp OgorICAgICAgICAgICAgICAgICBsIC09IDEKKyAgICAgICAgIHJldHVybiBmcm96ZW5zZXQoWikK KyAKKy0gICAgY3BkZWYgX2Z1bmRhbWVudGFsX2NpcmN1aXQoc2VsZiwgQiwgZSkgbm9leGNlcHQ6 CisrICAgIGNwZGVmIF9mdW5kYW1lbnRhbF9jaXJjdWl0KHNlbGYsIEIsIGUpOgorICAgICAgICAg ciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBgQmAtZnVuZGFtZW50YWwgY2lyY3VpdCB1c2luZyBg ZWAuCisgCitAQCAtNjE1LDcgKzYxNSw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0 KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX2NpcmN1aXQoQi51bmlvbihb ZV0pKQorIAorLSAgICBjcGRlZiBfY2xvc3VyZShzZWxmLCBYKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgX2Nsb3N1cmUoc2VsZiwgWCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUg Y2xvc3VyZSBvZiBhIHNldC4KKyAKK0BAIC02NDMsNyArNjQzLDcgQEAgY2RlZiBjbGFzcyBNYXRy b2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgICAgICBYLmRpc2NhcmQoeSkKKyAgICAgICAg IHJldHVybiBmcm96ZW5zZXQoWCkKKyAKKy0gICAgY3BkZWYgX2NvcmFuayhzZWxmLCBYKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgX2NvcmFuayhzZWxmLCBYKToKKyAgICAgICAgICIiIgorICAgICAg ICAgUmV0dXJuIHRoZSBjb3Jhbmsgb2YgYSBzZXQuCisgCitAQCAtNjY0LDcgKzY2NCw3IEBAIGNk ZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0 dXJuIGxlbihYKSArIHNlbGYuX3Jhbmsoc2VsZi5ncm91bmRzZXQoKS5kaWZmZXJlbmNlKFgpKSAt IHNlbGYuZnVsbF9yYW5rKCkKKyAKKy0gICAgY3BkZWYgX21heF9jb2luZGVwZW5kZW50KHNlbGYs IFgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbWF4X2NvaW5kZXBlbmRlbnQoc2VsZiwgWCk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIENvbXB1dGUgYSBtYXhpbWFsIGNvaW5kZXBlbmRlbnQgc3Vi c2V0LgorIAorQEAgLTY5Niw3ICs2OTYsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVj dCk6CisgICAgICAgICAgICAgICAgIHJlcy5kaXNjYXJkKGUpCisgICAgICAgICByZXR1cm4gZnJv emVuc2V0KHJlcykKKyAKKy0gICAgY3BkZWYgX2NvY2lyY3VpdChzZWxmLCBYKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgX2NvY2lyY3VpdChzZWxmLCBYKToKKyAgICAgICAgICIiIgorICAgICAgICAg UmV0dXJuIGEgbWluaW1hbCBjb2RlcGVuZGVudCBzdWJzZXQuCisgCitAQCAtNzM0LDcgKzczNCw3 IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICAgICAgbCAt PSAxCisgICAgICAgICByZXR1cm4gZnJvemVuc2V0KFopCisgCistICAgIGNwZGVmIF9mdW5kYW1l bnRhbF9jb2NpcmN1aXQoc2VsZiwgQiwgZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9mdW5kYW1l bnRhbF9jb2NpcmN1aXQoc2VsZiwgQiwgZSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1 cm4gdGhlIGBCYC1mdW5kYW1lbnRhbCBjaXJjdWl0IHVzaW5nIGBlYC4KKyAKK0BAIC03NTcsNyAr NzU3LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgIiIiCisg ICAgICAgICByZXR1cm4gc2VsZi5fY29jaXJjdWl0KHNlbGYuZ3JvdW5kc2V0KCkuZGlmZmVyZW5j ZShCKS51bmlvbihbZV0pKQorIAorLSAgICBjcGRlZiBfY29jbG9zdXJlKHNlbGYsIFgpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBfY29jbG9zdXJlKHNlbGYsIFgpOgorICAgICAgICAgIiIiCisgICAg ICAgICBSZXR1cm4gdGhlIGNvY2xvc3VyZSBvZiBhIHNldC4KKyAKK0BAIC03ODUsNyArNzg1LDcg QEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgICAgICBYLmRp c2NhcmQoeSkKKyAgICAgICAgIHJldHVybiBmcm96ZW5zZXQoWCkKKyAKKy0gICAgY3BkZWYgX2F1 Z21lbnQoc2VsZiwgWCwgWSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hdWdtZW50KHNlbGYsIFgs IFkpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIGEgbWF4aW1hbCBzdWJzZXQgYElg IG9mIGBZYCBzdWNoIHRoYXQgYHIoWCArIEkpPXIoWCkgKyByKEkpYC4KKyAKK0BAIC04MjUsNyAr ODI1LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorIAorICAgICAjIG92ZXJy aWRlIHRoZSBmb2xsb3dpbmcgbWV0aG9kcyBmb3IgZXZlbiBiZXR0ZXIgZWZmaWNpZW5jeQorIAor LSAgICBjcGRlZiBfaXNfaW5kZXBlbmRlbnQoc2VsZiwgWCkgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9pc19pbmRlcGVuZGVudChzZWxmLCBYKToKKyAgICAgICAgICIiIgorICAgICAgICAgVGVzdCBp ZiBpbnB1dCBpcyBpbmRlcGVuZGVudC4KKyAKK0BAIC04NDgsNyArODQ4LDcgQEAgY2RlZiBjbGFz cyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gbGVu KFgpID09IHNlbGYuX3JhbmsoWCkKKyAKKy0gICAgY3BkZWYgX2lzX2Jhc2lzKHNlbGYsIFgpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBfaXNfYmFzaXMoc2VsZiwgWCk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIFRlc3QgaWYgaW5wdXQgaXMgYSBiYXNpcy4KKyAKK0BAIC04ODMsNyArODgzLDcgQEAg Y2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgIiIiCisgICAgICAgICBy ZXR1cm4gc2VsZi5faXNfaW5kZXBlbmRlbnQoWCkKKyAKKy0gICAgY3BkZWYgX2lzX2NpcmN1aXQo c2VsZiwgWCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9pc19jaXJjdWl0KHNlbGYsIFgpOgorICAg ICAgICAgIiIiCisgICAgICAgICBUZXN0IGlmIGlucHV0IGlzIGEgY2lyY3VpdC4KKyAKK0BAIC05 MTcsNyArOTE3LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAg ICAgIFouYWRkKHgpCisgICAgICAgICByZXR1cm4gVHJ1ZQorIAorLSAgICBjcGRlZiBfaXNfY2xv c2VkKHNlbGYsIFgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfaXNfY2xvc2VkKHNlbGYsIFgpOgor ICAgICAgICAgIiIiCisgICAgICAgICBUZXN0IGlmIGlucHV0IGlzIGEgY2xvc2VkIHNldC4KKyAK K0BAIC05NDgsNyArOTQ4LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAg ICAgICAgICAgIFguZGlzY2FyZCh5KQorICAgICAgICAgcmV0dXJuIFRydWUKKyAKKy0gICAgY3Bk ZWYgX2lzX2NvaW5kZXBlbmRlbnQoc2VsZiwgWCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9pc19j b2luZGVwZW5kZW50KHNlbGYsIFgpOgorICAgICAgICAgIiIiCisgICAgICAgICBUZXN0IGlmIGlu cHV0IGlzIGNvaW5kZXBlbmRlbnQuCisgCitAQCAtOTcxLDcgKzk3MSw3IEBAIGNkZWYgY2xhc3Mg TWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYu X2NvcmFuayhYKSA9PSBsZW4oWCkKKyAKKy0gICAgY3BkZWYgX2lzX2NvYmFzaXMoc2VsZiwgWCkg bm9leGNlcHQ6CisrICAgIGNwZGVmIF9pc19jb2Jhc2lzKHNlbGYsIFgpOgorICAgICAgICAgIiIi CisgICAgICAgICBUZXN0IGlmIGlucHV0IGlzIGEgY29iYXNpcy4KKyAKK0BAIC0xMDAxLDcgKzEw MDEsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIHJldHVybiBzZWxmLl9pc19iYXNpcyhzZWxmLmdyb3VuZHNldCgpLmRpZmZlcmVuY2Uo WCkpCisgCistICAgIGNwZGVmIF9pc19jb2NpcmN1aXQoc2VsZiwgWCkgbm9leGNlcHQ6CisrICAg IGNwZGVmIF9pc19jb2NpcmN1aXQoc2VsZiwgWCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRl c3QgaWYgaW5wdXQgaXMgYSBjb2NpcmN1aXQuCisgCitAQCAtMTAzNSw3ICsxMDM1LDcgQEAgY2Rl ZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgIFouYWRkKHgpCisgICAg ICAgICByZXR1cm4gVHJ1ZQorIAorLSAgICBjcGRlZiBfaXNfY29jbG9zZWQoc2VsZiwgWCkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIF9pc19jb2Nsb3NlZChzZWxmLCBYKToKKyAgICAgICAgICIiIgor ICAgICAgICAgVGVzdCBpZiBpbnB1dCBpcyBhIGNvY2xvc2VkIHNldC4KKyAKK0BAIC0xMDY2LDcg KzEwNjYsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAg WC5kaXNjYXJkKHkpCisgICAgICAgICByZXR1cm4gVHJ1ZQorIAorLSAgICBjcGRlZiBfbWlub3Io c2VsZiwgY29udHJhY3Rpb25zLCBkZWxldGlvbnMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbWlu b3Ioc2VsZiwgY29udHJhY3Rpb25zLCBkZWxldGlvbnMpOgorICAgICAgICAgciIiIgorICAgICAg ICAgUmV0dXJuIGEgbWlub3IuCisgCitAQCAtMTEwNSw3ICsxMTA1LDcgQEAgY2RlZiBjbGFzcyBN YXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgZnJvbSBzYWdlLm1hdHJvaWRzIGltcG9ydCBt aW5vcl9tYXRyb2lkCisgICAgICAgICByZXR1cm4gbWlub3JfbWF0cm9pZC5NaW5vck1hdHJvaWQo c2VsZiwgY29udHJhY3Rpb25zLCBkZWxldGlvbnMpCisgCistICAgIGNwZGVmIF9oYXNfbWlub3Io c2VsZiwgTiwgYmludCBjZXJ0aWZpY2F0ZT1GYWxzZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9o YXNfbWlub3Ioc2VsZiwgTiwgYmludCBjZXJ0aWZpY2F0ZT1GYWxzZSk6CisgICAgICAgICAiIiIK KyAgICAgICAgIFRlc3QgaWYgbWF0cm9pZCBoYXMgdGhlIHNwZWNpZmllZCBtaW5vciwKKyAgICAg ICAgIGFuZCBvcHRpb25hbGx5IHJldHVybiBmcm96ZW5zZXRzIGBgWGBgIGFuZCBgYFlgYCBzbyB0 aGF0IGBgTmBgIGlzIGlzb21vcnBoaWMgdG8gYGBzZWxmLm1pbm9yKFgsIFkpYGAuCitAQCAtMTE2 MSw3ICsxMTYxLDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAg ICAgIHJldHVybiBGYWxzZSwgTm9uZQorICAgICAgICAgcmV0dXJuIEZhbHNlCisgCistICAgIGNw ZGVmIF9saW5lX2xlbmd0aChzZWxmLCBGKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2xpbmVfbGVu Z3RoKHNlbGYsIEYpOgorICAgICAgICAgIiIiCisgICAgICAgICBDb21wdXRlIHRoZSBsZW5ndGgg b2YgdGhlIGxpbmUgc3BlY2lmaWVkIHRocm91Z2ggZmxhdCBgYEZgYC4KKyAKK0BAIC0xMTg3LDcg KzExODcsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAiIiIK KyAgICAgICAgIHJldHVybiBsZW4oc2VsZi5taW5vcihjb250cmFjdGlvbnM9Rikuc2ltcGxpZnko KSkKKyAKKy0gICAgY3BkZWYgX2V4dGVuc2lvbihzZWxmLCBlbGVtZW50LCBoeXBlcnBsYW5lcykg bm9leGNlcHQ6CisrICAgIGNwZGVmIF9leHRlbnNpb24oc2VsZiwgZWxlbWVudCwgaHlwZXJwbGFu ZXMpOgorICAgICAgICAgIiIiCisgICAgICAgICBFeHRlbmQgdGhlIG1hdHJvaWQgYnkgYSBuZXcg ZWxlbWVudC4KKyAKK0BAIC0xMjU1LDcgKzEyNTUsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2Fn ZU9iamVjdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLnNpemUoKQorIAor LSAgICBjcGRlZiBzaXplKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBzaXplKHNlbGYpOgor ICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHNpemUgb2YgdGhlIGdyb3VuZHNldC4K KyAKK0BAIC0xMzMyLDcgKzEzMzIsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6 CisgCisgICAgICMgVXNlci12aXNpYmxlIG1ldGhvZHMKKyAKKy0gICAgY3BkZWYgcmFuayhzZWxm LCBYPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiByYW5rKHNlbGYsIFg9Tm9uZSk6CisgICAg ICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHJhbmsgb2YgYGBYYGAuCisgCitAQCAtMTM2 Niw3ICsxMzY2LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAg ICAgIHJldHVybiBzZWxmLmZ1bGxfcmFuaygpCisgICAgICAgICByZXR1cm4gc2VsZi5fcmFuayhz ZWxmLl9zdWJzZXRfaW50ZXJuYWwoWCkpCisgCistICAgIGNwZGVmIGZ1bGxfcmFuayhzZWxmKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgZnVsbF9yYW5rKHNlbGYpOgorICAgICAgICAgciIiIgorICAg ICAgICAgUmV0dXJuIHRoZSByYW5rIG9mIHRoZSBtYXRyb2lkLgorIAorQEAgLTEzODksNyArMTM4 OSw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICBzZWxm Ll9zdG9yZWRfZnVsbF9yYW5rID0gc2VsZi5fcmFuayhzZWxmLmdyb3VuZHNldCgpKQorICAgICAg ICAgcmV0dXJuIHNlbGYuX3N0b3JlZF9mdWxsX3JhbmsKKyAKKy0gICAgY3BkZWYgYmFzaXMoc2Vs Zikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGJhc2lzKHNlbGYpOgorICAgICAgICAgciIiIgorICAg ICAgICAgUmV0dXJuIGFuIGFyYml0cmFyeSBiYXNpcyBvZiB0aGUgbWF0cm9pZC4KKyAKK0BAIC0x NDE4LDcgKzE0MTgsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9tYXhfaW5kZXBlbmRlbnQoc2VsZi5ncm91bmRz ZXQoKSkKKyAKKy0gICAgY3BkZWYgbWF4X2luZGVwZW5kZW50KHNlbGYsIFgpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBtYXhfaW5kZXBlbmRlbnQoc2VsZiwgWCk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIENvbXB1dGUgYSBtYXhpbWFsIGluZGVwZW5kZW50IHN1YnNldCBvZiBgYFhgYC4KKyAKK0BA IC0xNDQ1LDcgKzE0NDUsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9tYXhfaW5kZXBlbmRlbnQoc2VsZi5fc3Vi c2V0X2ludGVybmFsKFgpKQorIAorLSAgICBjcGRlZiBjaXJjdWl0KHNlbGYsIFg9Tm9uZSkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIGNpcmN1aXQoc2VsZiwgWD1Ob25lKToKKyAgICAgICAgICIiIgor ICAgICAgICAgUmV0dXJuIGEgY2lyY3VpdC4KKyAKK0BAIC0xNDg3LDcgKzE0ODcsNyBAQCBjZGVm IGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVy biBzZWxmLl9jaXJjdWl0KHNlbGYuX19zdWJzZXRfYWxsKFgpKQorIAorLSAgICBjcGRlZiBmdW5k YW1lbnRhbF9jaXJjdWl0KHNlbGYsIEIsIGUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBmdW5kYW1l bnRhbF9jaXJjdWl0KHNlbGYsIEIsIGUpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJu IHRoZSBgQmAtZnVuZGFtZW50YWwgY2lyY3VpdCB1c2luZyBgZWAuCisgCitAQCAtMTUyMiw3ICsx NTIyLDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgIHJh aXNlIFZhbHVlRXJyb3IoImlucHV0IGUgaXMgbm90IGFuIGVsZW1lbnQgb2YgdGhlIGdyb3VuZHNl dC4iKQorICAgICAgICAgcmV0dXJuIHNlbGYuX2Z1bmRhbWVudGFsX2NpcmN1aXQoQiwgZSkKKyAK Ky0gICAgY3BkZWYgY2xvc3VyZShzZWxmLCBYKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgY2xvc3Vy ZShzZWxmLCBYKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBjbG9zdXJlIG9m IGEgc2V0IGBgWGBgLgorIAorQEAgLTE1NTAsNyArMTU1MCw3IEBAIGNkZWYgY2xhc3MgTWF0cm9p ZChTYWdlT2JqZWN0KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX2Nsb3N1 cmUoc2VsZi5fc3Vic2V0X2ludGVybmFsKFgpKQorIAorLSAgICBjcGRlZiBrX2Nsb3N1cmUoc2Vs ZiwgWCwgaykgbm9leGNlcHQ6CisrICAgIGNwZGVmIGtfY2xvc3VyZShzZWxmLCBYLCBrKToKKyAg ICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYGBrYGAtY2xvc3VyZSBvZiBgYFhgYC4K KyAKK0BAIC0xNjAwLDcgKzE2MDAsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6 CisgICAgICAgICAgICAgUyA9IGNsCisgICAgICAgICByZXR1cm4gUworIAorLSAgICBjcGRlZiBh dWdtZW50KHNlbGYsIFgsIFk9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGF1Z21lbnQoc2Vs ZiwgWCwgWT1Ob25lKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBhIG1heGltYWwg c3Vic2V0IGBJYCBvZiBgWSAtIFhgIHN1Y2ggdGhhdAorICAgICAgICAgYHIoWCArIEkpID0gcihY KSArIHIoSSlgLgorQEAgLTE2MzgsNyArMTYzOCw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdl T2JqZWN0KToKKyAgICAgICAgIFkgPSBzZWxmLl9fc3Vic2V0X2FsbChZKQorICAgICAgICAgcmV0 dXJuIHNlbGYuX2F1Z21lbnQoWCwgWS5kaWZmZXJlbmNlKFgpKQorIAorLSAgICBjcGRlZiBjb3Jh bmsoc2VsZiwgWD1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgY29yYW5rKHNlbGYsIFg9Tm9u ZSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGNvcmFuayBvZiBgYFhgYCwg b3IgdGhlIGNvcmFuayBvZiB0aGUgZ3JvdW5kc2V0IGlmIGBgWGBgIGlzCisgICAgICAgICBgYE5v bmVgYC4KK0BAIC0xNjc1LDcgKzE2NzUsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVj dCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9jb3Jhbmsoc2VsZi5fX3N1 YnNldF9hbGwoWCkpCisgCistICAgIGNwZGVmIGZ1bGxfY29yYW5rKHNlbGYpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBmdWxsX2NvcmFuayhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0 dXJuIHRoZSBjb3Jhbmsgb2YgdGhlIG1hdHJvaWQuCisgCitAQCAtMTY5OSw3ICsxNjk5LDcgQEAg Y2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgIiIiCisgICAgICAgICBy ZXR1cm4gc2VsZi5zaXplKCkgLSBzZWxmLmZ1bGxfcmFuaygpCisgCistICAgIGNwZGVmIGNvYmFz aXMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGNvYmFzaXMoc2VsZik6CisgICAgICAgICAi IiIKKyAgICAgICAgIFJldHVybiBhbiBhcmJpdHJhcnkgY29iYXNpcyBvZiB0aGUgbWF0cm9pZC4K KyAKK0BAIC0xNzM0LDcgKzE3MzQsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLm1heF9jb2luZGVwZW5kZW50KHNl bGYuZ3JvdW5kc2V0KCkpCisgCistICAgIGNwZGVmIG1heF9jb2luZGVwZW5kZW50KHNlbGYsIFgp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBtYXhfY29pbmRlcGVuZGVudChzZWxmLCBYKToKKyAgICAg ICAgICIiIgorICAgICAgICAgQ29tcHV0ZSBhIG1heGltYWwgY29pbmRlcGVuZGVudCBzdWJzZXQg b2YgYGBYYGAuCisgCitAQCAtMTc3Miw3ICsxNzcyLDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNh Z2VPYmplY3QpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fbWF4X2NvaW5k ZXBlbmRlbnQoc2VsZi5fc3Vic2V0X2ludGVybmFsKFgpKQorIAorLSAgICBjcGRlZiBjb2Nsb3N1 cmUoc2VsZiwgWCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGNvY2xvc3VyZShzZWxmLCBYKToKKyAg ICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBjb2Nsb3N1cmUgb2YgYSBzZXQgYGBYYGAu CisgCitAQCAtMTgwNCw3ICsxODA0LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3Qp OgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fY29jbG9zdXJlKHNlbGYuX3N1 YnNldF9pbnRlcm5hbChYKSkKKyAKKy0gICAgY3BkZWYgY29jaXJjdWl0KHNlbGYsIFg9Tm9uZSkg bm9leGNlcHQ6CisrICAgIGNwZGVmIGNvY2lyY3VpdChzZWxmLCBYPU5vbmUpOgorICAgICAgICAg IiIiCisgICAgICAgICBSZXR1cm4gYSBjb2NpcmN1aXQuCisgCitAQCAtMTg1Miw3ICsxODUyLDcg QEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgIiIiCisgICAgICAg ICByZXR1cm4gc2VsZi5fY29jaXJjdWl0KHNlbGYuX19zdWJzZXRfYWxsKFgpKQorIAorLSAgICBj cGRlZiBmdW5kYW1lbnRhbF9jb2NpcmN1aXQoc2VsZiwgQiwgZSkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIGZ1bmRhbWVudGFsX2NvY2lyY3VpdChzZWxmLCBCLCBlKToKKyAgICAgICAgIHIiIiIKKyAg ICAgICAgIFJldHVybiB0aGUgYEJgLWZ1bmRhbWVudGFsIGNvY2lyY3VpdCB1c2luZyBgZWAuCisg CitAQCAtMTg5MSw3ICsxODkxLDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgor ICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImlucHV0IGUgaXMgbm90IGFuIGVsZW1lbnQg b2YgQi4iKQorICAgICAgICAgcmV0dXJuIHNlbGYuX2Z1bmRhbWVudGFsX2NvY2lyY3VpdChCLCBl KQorIAorLSAgICBjcGRlZiBsb29wcyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgbG9vcHMo c2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHNldCBvZiBsb29wcyBv ZiB0aGUgbWF0cm9pZC4KKyAKK0BAIC0xOTEyLDcgKzE5MTIsNyBAQCBjZGVmIGNsYXNzIE1hdHJv aWQoU2FnZU9iamVjdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9jbG9z dXJlKHNldCgpKQorIAorLSAgICBjcGRlZiBpc19pbmRlcGVuZGVudChzZWxmLCBYKSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgaXNfaW5kZXBlbmRlbnQoc2VsZiwgWCk6CisgICAgICAgICByIiIiCisg ICAgICAgICBDaGVjayBpZiBhIHN1YnNldCBgYFhgYCBpcyBpbmRlcGVuZGVudCBpbiB0aGUgbWF0 cm9pZC4KKyAKK0BAIC0xOTM4LDcgKzE5MzgsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9i amVjdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9pc19pbmRlcGVuZGVu dChzZWxmLl9zdWJzZXRfaW50ZXJuYWwoWCkpCisgCistICAgIGNwZGVmIGlzX2RlcGVuZGVudChz ZWxmLCBYKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgaXNfZGVwZW5kZW50KHNlbGYsIFgpOgorICAg ICAgICAgciIiIgorICAgICAgICAgQ2hlY2sgaWYgYSBzdWJzZXQgYGBYYGAgaXMgZGVwZW5kZW50 IGluIHRoZSBtYXRyb2lkLgorIAorQEAgLTE5NjQsNyArMTk2NCw3IEBAIGNkZWYgY2xhc3MgTWF0 cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIG5vdCBzZWxm Ll9pc19pbmRlcGVuZGVudChzZWxmLl9zdWJzZXRfaW50ZXJuYWwoWCkpCisgCistICAgIGNwZGVm IGlzX2Jhc2lzKHNlbGYsIFgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBpc19iYXNpcyhzZWxmLCBY KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIENoZWNrIGlmIGEgc3Vic2V0IGlzIGEgYmFzaXMg b2YgdGhlIG1hdHJvaWQuCisgCitAQCAtMTk5Myw3ICsxOTkzLDcgQEAgY2RlZiBjbGFzcyBNYXRy b2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgcmV0 dXJuIHNlbGYuX2lzX2Jhc2lzKFgpCisgCistICAgIGNwZGVmIGlzX2Nsb3NlZChzZWxmLCBYKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgaXNfY2xvc2VkKHNlbGYsIFgpOgorICAgICAgICAgciIiIgor ICAgICAgICAgVGVzdCBpZiBhIHN1YnNldCBpcyBhIGNsb3NlZCBzZXQgb2YgdGhlIG1hdHJvaWQu CisgCitAQCAtMjAyNiw3ICsyMDI2LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3Qp OgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5faXNfY2xvc2VkKHNlbGYuX3N1 YnNldF9pbnRlcm5hbChYKSkKKyAKKy0gICAgY3BkZWYgaXNfc3Vic2V0X2tfY2xvc2VkKHNlbGYs IFgsIGludCBrKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgaXNfc3Vic2V0X2tfY2xvc2VkKHNlbGYs IFgsIGludCBrKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFRlc3QgaWYgYGBYYGAgaXMgYSBg YGtgYC1jbG9zZWQgc2V0IG9mIHRoZSBtYXRyb2lkLgorIAorQEAgLTIwODEsNyArMjA4MSw3IEBA IGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICAgICAgcmV0dXJu IEZhbHNlCisgICAgICAgICByZXR1cm4gVHJ1ZQorIAorLSAgICBjcGRlZiBpc19jaXJjdWl0KHNl bGYsIFgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBpc19jaXJjdWl0KHNlbGYsIFgpOgorICAgICAg ICAgciIiIgorICAgICAgICAgVGVzdCBpZiBhIHN1YnNldCBpcyBhIGNpcmN1aXQgb2YgdGhlIG1h dHJvaWQuCisgCitAQCAtMjEwOSw3ICsyMTA5LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VP YmplY3QpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5faXNfY2lyY3VpdChz ZWxmLl9zdWJzZXRfaW50ZXJuYWwoWCkpCisgCistICAgIGNwZGVmIGNvbG9vcHMoc2VsZikgbm9l eGNlcHQ6CisrICAgIGNwZGVmIGNvbG9vcHMoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAg ICBSZXR1cm4gdGhlIHNldCBvZiBjb2xvb3BzIG9mIHRoZSBtYXRyb2lkLgorIAorQEAgLTIxMzYs NyArMjEzNiw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICIi IgorICAgICAgICAgcmV0dXJuIHNlbGYuX2NvY2xvc3VyZShzZXQoKSkKKyAKKy0gICAgY3BkZWYg aXNfY29pbmRlcGVuZGVudChzZWxmLCBYKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgaXNfY29pbmRl cGVuZGVudChzZWxmLCBYKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIENoZWNrIGlmIGEgc3Vi c2V0IGlzIGNvaW5kZXBlbmRlbnQgaW4gdGhlIG1hdHJvaWQuCisgCitAQCAtMjE2OSw3ICsyMTY5 LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgIiIiCisgICAg ICAgICByZXR1cm4gc2VsZi5faXNfY29pbmRlcGVuZGVudChzZWxmLl9zdWJzZXRfaW50ZXJuYWwo WCkpCisgCistICAgIGNwZGVmIGlzX2NvZGVwZW5kZW50KHNlbGYsIFgpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBpc19jb2RlcGVuZGVudChzZWxmLCBYKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAg IENoZWNrIGlmIGEgc3Vic2V0IGlzIGNvZGVwZW5kZW50IGluIHRoZSBtYXRyb2lkLgorIAorQEAg LTIyMDIsNyArMjIwMiw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAg ICAgICIiIgorICAgICAgICAgcmV0dXJuIG5vdCBzZWxmLl9pc19jb2luZGVwZW5kZW50KHNlbGYu X3N1YnNldF9pbnRlcm5hbChYKSkKKyAKKy0gICAgY3BkZWYgaXNfY29iYXNpcyhzZWxmLCBYKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgaXNfY29iYXNpcyhzZWxmLCBYKToKKyAgICAgICAgIHIiIiIK KyAgICAgICAgIENoZWNrIGlmIGEgc3Vic2V0IGlzIGEgY29iYXNpcyBvZiB0aGUgbWF0cm9pZC4K KyAKK0BAIC0yMjM5LDcgKzIyMzksNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6 CisgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICByZXR1cm4gc2VsZi5faXNfY29i YXNpcyhYKQorIAorLSAgICBjcGRlZiBpc19jb2NpcmN1aXQoc2VsZiwgWCkgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIGlzX2NvY2lyY3VpdChzZWxmLCBYKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAg IFRlc3QgaWYgYSBzdWJzZXQgaXMgYSBjb2NpcmN1aXQgb2YgdGhlIG1hdHJvaWQuCisgCitAQCAt MjI3Myw3ICsyMjczLDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAg ICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5faXNfY29jaXJjdWl0KHNlbGYuX3N1YnNldF9p bnRlcm5hbChYKSkKKyAKKy0gICAgY3BkZWYgaXNfY29jbG9zZWQoc2VsZiwgWCkgbm9leGNlcHQ6 CisrICAgIGNwZGVmIGlzX2NvY2xvc2VkKHNlbGYsIFgpOgorICAgICAgICAgciIiIgorICAgICAg ICAgVGVzdCBpZiBhIHN1YnNldCBpcyBhIGNvY2xvc2VkIHNldCBvZiB0aGUgbWF0cm9pZC4KKyAK K0BAIC0yMzA4LDcgKzIzMDgsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6Cisg CisgICAgICMgdmVyaWZpY2F0aW9uCisgCistICAgIGNwZGVmIGlzX3ZhbGlkKHNlbGYpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBpc192YWxpZChzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAg IFRlc3QgaWYgdGhlIGRhdGEgb2JleSB0aGUgbWF0cm9pZCBheGlvbXMuCisgCitAQCAtMjM2MCw3 ICsyMzYwLDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorIAorICAgICAjIGVu dW1lcmF0aW9uCisgCistICAgIGNwZGVmIGNpcmN1aXRzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBjaXJjdWl0cyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBs aXN0IG9mIGNpcmN1aXRzIG9mIHRoZSBtYXRyb2lkLgorIAorQEAgLTIzODgsNyArMjM4OCw3IEBA IGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICAgICAgICAgICAg Zm9yIGUgaW4gc2VsZi5ncm91bmRzZXQoKS5kaWZmZXJlbmNlKEIpXSkKKyAgICAgICAgIHJldHVy biBsaXN0KEMpCisgCistICAgIGNwZGVmIG5vbnNwYW5uaW5nX2NpcmN1aXRzKHNlbGYpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBub25zcGFubmluZ19jaXJjdWl0cyhzZWxmKToKKyAgICAgICAgICIi IgorICAgICAgICAgUmV0dXJuIHRoZSBsaXN0IG9mIG5vbnNwYW5uaW5nIGNpcmN1aXRzIG9mIHRo ZSBtYXRyb2lkLgorIAorQEAgLTI0MTgsNyArMjQxOCw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChT YWdlT2JqZWN0KToKKyAgICAgICAgICAgICAgICAgQy5hZGQoc2VsZi5fY2lyY3VpdChOKSkKKyAg ICAgICAgIHJldHVybiBsaXN0KEMpCisgCistICAgIGNwZGVmIGNvY2lyY3VpdHMoc2VsZikgbm9l eGNlcHQ6CisrICAgIGNwZGVmIGNvY2lyY3VpdHMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAg ICAgIFJldHVybiB0aGUgbGlzdCBvZiBjb2NpcmN1aXRzIG9mIHRoZSBtYXRyb2lkLgorIAorQEAg LTI0NDMsNyArMjQ0Myw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAg ICAgICAgICBDLnVwZGF0ZShbc2VsZi5fY29jaXJjdWl0KHNlbGYuZ3JvdW5kc2V0KCkuZGlmZmVy ZW5jZShCKS51bmlvbihzZXQoW2VdKSkpIGZvciBlIGluIEJdKQorICAgICAgICAgcmV0dXJuIGxp c3QoQykKKyAKKy0gICAgY3BkZWYgbm9uY29zcGFubmluZ19jb2NpcmN1aXRzKHNlbGYpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBub25jb3NwYW5uaW5nX2NvY2lyY3VpdHMoc2VsZik6CisgICAgICAg ICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgbGlzdCBvZiBub25jb3NwYW5uaW5nIGNvY2lyY3Vp dHMgb2YgdGhlIG1hdHJvaWQuCisgCitAQCAtMjQ2OSw3ICsyNDY5LDcgQEAgY2RlZiBjbGFzcyBN YXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5k dWFsKCkubm9uc3Bhbm5pbmdfY2lyY3VpdHMoKQorIAorLSAgICBjcGRlZiBjaXJjdWl0X2Nsb3N1 cmVzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjaXJjdWl0X2Nsb3N1cmVzKHNlbGYpOgor ICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGxpc3Qgb2YgY2xvc3VyZXMgb2YgY2ly Y3VpdHMgb2YgdGhlIG1hdHJvaWQuCisgCitAQCAtMjUwNSw3ICsyNTA1LDcgQEAgY2RlZiBjbGFz cyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgIENDW2xlbihDKSAtIDFdLmFkZChz ZWxmLmNsb3N1cmUoQykpCisgICAgICAgICByZXR1cm4ge3I6IENDW3JdIGZvciByIGluIHJhbmdl KHNlbGYucmFuaygpICsgMSkgaWYgQ0Nbcl19CisgCistICAgIGNwZGVmIG5vbnNwYW5uaW5nX2Np cmN1aXRfY2xvc3VyZXMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIG5vbnNwYW5uaW5nX2Np cmN1aXRfY2xvc3VyZXMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUg bGlzdCBvZiBjbG9zdXJlcyBvZiBub25zcGFubmluZyBjaXJjdWl0cyBvZiB0aGUgbWF0cm9pZC4K KyAKK0BAIC0yNTM4LDcgKzI1MzgsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6 CisgICAgICAgICAgICAgQ0NbbGVuKEMpIC0gMV0uYWRkKHNlbGYuY2xvc3VyZShDKSkKKyAgICAg ICAgIHJldHVybiB7cjogQ0Nbcl0gZm9yIHIgaW4gcmFuZ2Uoc2VsZi5yYW5rKCkgKyAxKSBpZiBD Q1tyXX0KKyAKKy0gICAgY3BkZWYgbm9uYmFzZXMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVm IG5vbmJhc2VzKHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBsaXN0 IG9mIG5vbmJhc2VzIG9mIHRoZSBtYXRyb2lkLgorIAorQEAgLTI1NzIsNyArMjU3Miw3IEBAIGNk ZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICAgICAgcmVzLmFwcGVu ZChYKQorICAgICAgICAgcmV0dXJuIHJlcworIAorLSAgICBjcGRlZiBkZXBlbmRlbnRfcl9zZXRz KHNlbGYsIGxvbmcgcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGRlcGVuZGVudF9yX3NldHMoc2Vs ZiwgbG9uZyByKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgbGlzdCBvZiBk ZXBlbmRlbnQgc3Vic2V0cyBvZiBmaXhlZCBzaXplLgorIAorQEAgLTI2MDUsNyArMjYwNSw3IEBA IGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICAgICAgcmVzLmFw cGVuZChYKQorICAgICAgICAgcmV0dXJuIHJlcworIAorLSAgICBjcGRlZiBiYXNlcyhzZWxmKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgYmFzZXMoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAg ICBSZXR1cm4gdGhlIGxpc3Qgb2YgYmFzZXMgb2YgdGhlIG1hdHJvaWQuCisgCitAQCAtMjYzNiw3 ICsyNjM2LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAg ICAgICByZXMuYXBwZW5kKFgpCisgICAgICAgICByZXR1cm4gcmVzCisgCistICAgIGNwZGVmIGlu ZGVwZW5kZW50X3NldHMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGluZGVwZW5kZW50X3Nl dHMoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGxpc3Qgb2YgaW5k ZXBlbmRlbnQgc3Vic2V0cyBvZiB0aGUgbWF0cm9pZC4KKyAKK0BAIC0yNjc5LDcgKzI2NzksNyBA QCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAgICAgIHIgLT0g MQorICAgICAgICAgcmV0dXJuIHJlcworIAorLSAgICBjcGRlZiBpbmRlcGVuZGVudF9yX3NldHMo c2VsZiwgbG9uZyByKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgaW5kZXBlbmRlbnRfcl9zZXRzKHNl bGYsIGxvbmcgcik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGxpc3Qgb2Yg c2l6ZS1gYHJgYCBpbmRlcGVuZGVudCBzdWJzZXRzIG9mIHRoZSBtYXRyb2lkLgorIAorQEAgLTI3 MTksNyArMjcxOSw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAg ICAgICAgICAgcmVzLmFwcGVuZChYKQorICAgICAgICAgcmV0dXJuIHJlcworIAorLSAgICBjcGRl ZiBfZXh0ZW5kX2ZsYWdzKHNlbGYsIGZsYWdzKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2V4dGVu ZF9mbGFncyhzZWxmLCBmbGFncyk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZWN1cnNpb24g Zm9yIHRoZSBgYHNlbGYuX2ZsYWdzKHIpYGAgbWV0aG9kLgorIAorQEAgLTI3NDUsNyArMjc0NSw3 IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICAgICAgWCA9 IG5ld1gKKyAgICAgICAgIHJldHVybiBuZXdmbGFncworIAorLSAgICBjcGRlZiBfZmxhZ3Moc2Vs Ziwgcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9mbGFncyhzZWxmLCByKToKKyAgICAgICAgIHIi IiIKKyAgICAgICAgIENvbXB1dGUgcmFuay1gYHJgYCBmbGF0cywgd2l0aCBleHRyYSBpbmZvcm1h dGlvbiBmb3IgbW9yZSBzcGVlZC4KKyAKK0BAIC0yNzgzLDcgKzI3ODMsNyBAQCBjZGVmIGNsYXNz IE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAgZmxhZ3MgPSBzZWxmLl9leHRlbmRf ZmxhZ3MoZmxhZ3MpCisgICAgICAgICByZXR1cm4gZmxhZ3MKKyAKKy0gICAgY3BkZWYgZmxhdHMo c2VsZiwgcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGZsYXRzKHNlbGYsIHIpOgorICAgICAgICAg ciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBjb2xsZWN0aW9uIG9mIGZsYXRzIG9mIHRoZSBtYXRy b2lkIG9mIHNwZWNpZmllZCByYW5rLgorIAorQEAgLTI4MTIsNyArMjgxMiw3IEBAIGNkZWYgY2xh c3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgIHJldHVybiBTZXRTeXN0ZW0obGlzdChz ZWxmLmdyb3VuZHNldCgpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2V0cz1bZlsw XSBmb3IgZiBpbiBzZWxmLl9mbGFncyhyKV0pCisgCistICAgIGNwZGVmIGNvZmxhdHMoc2VsZiwg cikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGNvZmxhdHMoc2VsZiwgcik6CisgICAgICAgICByIiIi CisgICAgICAgICBSZXR1cm4gdGhlIGNvbGxlY3Rpb24gb2YgY29mbGF0cyBvZiB0aGUgbWF0cm9p ZCBvZiBzcGVjaWZpZWQgY29yYW5rLgorIAorQEAgLTI4NTUsNyArMjg1NSw3IEBAIGNkZWYgY2xh c3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICAgZm9yIFggaW4gc2VsZi5mbGF0 cyhpKV0KKyAgICAgICAgIHJldHVybiBMYXR0aWNlUG9zZXQoKEYsIGxhbWJkYSB4LCB5OiB4IDwg eSkpCisgCistICAgIGNwZGVmIGh5cGVycGxhbmVzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBoeXBlcnBsYW5lcyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBz ZXQgb2YgaHlwZXJwbGFuZXMgb2YgdGhlIG1hdHJvaWQuCisgCitAQCAtMjg3OCw3ICsyODc4LDcg QEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgIiIiCisgICAgICAg ICByZXR1cm4gc2VsZi5mbGF0cyhzZWxmLmZ1bGxfcmFuaygpIC0gMSkKKyAKKy0gICAgY3BkZWYg Zl92ZWN0b3Ioc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGZfdmVjdG9yKHNlbGYpOgorICAg ICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBgZmAtdmVjdG9yIG9mIHRoZSBtYXRyb2lk LgorIAorQEAgLTI5MDMsNyArMjkwMyw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0 KToKKyAgICAgICAgICAgICBmX3ZlYy5hcHBlbmQobGVuKGZsYWdzKSkKKyAgICAgICAgIHJldHVy biBmX3ZlYworIAorLSAgICBjcGRlZiBicm9rZW5fY2lyY3VpdHMoc2VsZiwgb3JkZXJpbmc9Tm9u ZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGJyb2tlbl9jaXJjdWl0cyhzZWxmLCBvcmRlcmluZz1O b25lKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgbGlzdCBvZiBicm9rZW4g Y2lyY3VpdHMgb2YgYGBzZWxmYGAuCisgCitAQCAtMjk0NSw3ICsyOTQ1LDcgQEAgY2RlZiBjbGFz cyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAg ICAgIHJldHVybiBmcm96ZW5zZXQocmV0KQorIAorLSAgICBjcGRlZiBub19icm9rZW5fY2lyY3Vp dHNfc2V0cyhzZWxmLCBvcmRlcmluZz1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgbm9fYnJv a2VuX2NpcmN1aXRzX3NldHMoc2VsZiwgb3JkZXJpbmc9Tm9uZSk6CisgICAgICAgICByIiIiCisg ICAgICAgICBSZXR1cm4gdGhlIG5vIGJyb2tlbiBjaXJjdWl0cyAoTkJDKSBzZXRzIG9mIGBgc2Vs ZmBgLgorIAorQEAgLTMxODMsNyArMzE4Myw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2Jq ZWN0KToKKyAKKyAgICAgIyBpc29tb3JwaGlzbSBhbmQgZXF1YWxpdHkKKyAKKy0gICAgY3BkZWYg aXNfaXNvbW9ycGhpYyhzZWxmLCBvdGhlciwgY2VydGlmaWNhdGU9RmFsc2UpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBpc19pc29tb3JwaGljKHNlbGYsIG90aGVyLCBjZXJ0aWZpY2F0ZT1GYWxzZSk6 CisgICAgICAgICByIiIiCisgICAgICAgICBUZXN0IG1hdHJvaWQgaXNvbW9ycGhpc20uCisgCitA QCAtMzIyNyw3ICszMjI3LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAg ICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiY2FuIG9ubHkgdGVzdCBmb3IgaXNvbW9ycGhpc20g YmV0d2VlbiBtYXRyb2lkcy4iKQorICAgICAgICAgcmV0dXJuIHNlbGYuX2lzX2lzb21vcnBoaWMo b3RoZXIsIGNlcnRpZmljYXRlKQorIAorLSAgICBjcGRlZiBfaXNfaXNvbW9ycGhpYyhzZWxmLCBv dGhlciwgY2VydGlmaWNhdGU9RmFsc2UpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfaXNfaXNvbW9y cGhpYyhzZWxmLCBvdGhlciwgY2VydGlmaWNhdGU9RmFsc2UpOgorICAgICAgICAgIiIiCisgICAg ICAgICBUZXN0IGlmIGBgc2VsZmBgIGlzIGlzb21vcnBoaWMgdG8gYGBvdGhlcmBgLgorIAorQEAg LTMyNjcsNyArMzI2Nyw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAg ICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICAgcmV0dXJuIChzZWxmLmZ1bGxfcmFuaygpID09 IG90aGVyLmZ1bGxfcmFuaygpIGFuZCBzZWxmLm5vbmJhc2VzKCkuX2lzb21vcnBoaXNtKG90aGVy Lm5vbmJhc2VzKCkpIGlzIG5vdCBOb25lKQorIAorLSAgICBjcGRlZiBpc29tb3JwaGlzbShzZWxm LCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGlzb21vcnBoaXNtKHNlbGYsIG90aGVyKToK KyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBhIG1hdHJvaWQgaXNvbW9ycGhpc20uCisg CitAQCAtMzMwNiw3ICszMzA2LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgor ICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiY2FuIG9ubHkgZ2l2ZSBpc29tb3JwaGlzbSBi ZXR3ZWVuIG1hdHJvaWRzLiIpCisgICAgICAgICByZXR1cm4gc2VsZi5faXNvbW9ycGhpc20ob3Ro ZXIpCisgCistICAgIGNwZGVmIF9pc29tb3JwaGlzbShzZWxmLCBvdGhlcikgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIF9pc29tb3JwaGlzbShzZWxmLCBvdGhlcik6CisgICAgICAgICAiIiIKKyAgICAg ICAgIFJldHVybiBpc29tb3JwaGlzbSBmcm9tIGBgc2VsZmBgIHRvIGBgb3RoZXJgYCwgaWYgc3Vj aCBhbiBpc29tb3JwaGlzbSBleGlzdHMuCisgCitAQCAtMzMzOSw3ICszMzM5LDcgQEAgY2RlZiBj bGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICBy ZXR1cm4gTm9uZQorIAorLSAgICBjcGRlZiBlcXVhbHMoc2VsZiwgb3RoZXIpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBlcXVhbHMoc2VsZiwgb3RoZXIpOgorICAgICAgICAgIiIiCisgICAgICAgICBU ZXN0IGZvciBtYXRyb2lkIGVxdWFsaXR5LgorIAorQEAgLTM0MjYsNyArMzQyNiw3IEBAIGNkZWYg Y2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgIG1vcnBoaXNtID0ge2U6IGUgZm9y IGUgaW4gc2VsZi5ncm91bmRzZXQoKX0KKyAgICAgICAgIHJldHVybiBzZWxmLl9pc19pc29tb3Jw aGlzbShvdGhlciwgbW9ycGhpc20pCisgCistICAgIGNwZGVmIGlzX2lzb21vcnBoaXNtKHNlbGYs IG90aGVyLCBtb3JwaGlzbSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGlzX2lzb21vcnBoaXNtKHNl bGYsIG90aGVyLCBtb3JwaGlzbSk6CisgICAgICAgICByIiIiCisgICAgICAgICBUZXN0IGlmIGEg cHJvdmlkZWQgbW9ycGhpc20gaW5kdWNlcyBhIG1hdHJvaWQgaXNvbW9ycGhpc20uCisgCitAQCAt MzU2NSw3ICszNTY1LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAg ICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgcmV0dXJuIHNlbGYuX2lzX2lzb21vcnBoaXNt KG90aGVyLCBtZikKKyAKKy0gICAgY3BkZWYgX2lzX2lzb21vcnBoaXNtKHNlbGYsIG90aGVyLCBt b3JwaGlzbSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9pc19pc29tb3JwaGlzbShzZWxmLCBvdGhl ciwgbW9ycGhpc20pOgorICAgICAgICAgciIiIgorICAgICAgICAgVmVyc2lvbiBvZiA6bWV0aDpg aXNfaXNvbW9ycGhpc21gIHRoYXQgZG9lcyBubyB0eXBlIGNoZWNraW5nLgorIAorQEAgLTM2ODQs NyArMzY4NCw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAKKyAgICAgIyBN aW5vcnMgYW5kIGR1YWxpdHkKKyAKKy0gICAgY3BkZWYgbWlub3Ioc2VsZiwgY29udHJhY3Rpb25z PU5vbmUsIGRlbGV0aW9ucz1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgbWlub3Ioc2VsZiwg Y29udHJhY3Rpb25zPU5vbmUsIGRlbGV0aW9ucz1Ob25lKToKKyAgICAgICAgIHIiIiIKKyAgICAg ICAgIFJldHVybiB0aGUgbWlub3Igb2YgYGBzZWxmYGAgb2J0YWluZWQgYnkgY29udHJhY3Rpbmcs IHJlc3BlY3RpdmVseQorICAgICAgICAgZGVsZXRpbmcsIHRoZSBlbGVtZW50KHMpIG9mIGBgY29u dHJhY3Rpb25zYGAgYW5kIGBgZGVsZXRpb25zYGAuCitAQCAtMzgwMCw3ICszODAwLDcgQEAgY2Rl ZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgY29uc2V0LCBkZWxzZXQgPSBz YW5pdGl6ZV9jb250cmFjdGlvbnNfZGVsZXRpb25zKHNlbGYsIGNvbnRyYWN0aW9ucywgZGVsZXRp b25zKQorICAgICAgICAgcmV0dXJuIHNlbGYuX21pbm9yKGNvbnNldCwgZGVsc2V0KQorIAorLSAg ICBjcGRlZiBjb250cmFjdChzZWxmLCBYKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgY29udHJhY3Qo c2VsZiwgWCk6CisgICAgICAgICByIiIiCisgICAgICAgICBDb250cmFjdCBlbGVtZW50cy4KKyAK K0BAIC0zODgwLDcgKzM4ODAsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLmNvbnRyYWN0KFgpCisgCistICAgIGNw ZGVmIGRlbGV0ZShzZWxmLCBYKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZGVsZXRlKHNlbGYsIFgp OgorICAgICAgICAgciIiIgorICAgICAgICAgRGVsZXRlIGVsZW1lbnRzLgorIAorQEAgLTM5NDYs NyArMzk0Niw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICIi IgorICAgICAgICAgcmV0dXJuIHNlbGYubWlub3IoZGVsZXRpb25zPVgpCisgCistICAgIGNwZGVm IF9iYWNrc2xhc2hfKHNlbGYsIFgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYmFja3NsYXNoXyhz ZWxmLCBYKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFNob3J0aGFuZCBmb3IgYGBzZWxmLmRl bGV0ZShYKWBgLgorIAorQEAgLTM5NjMsNyArMzk2Myw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChT YWdlT2JqZWN0KToKKyAgICAgICAgIGRlcHJlY2F0aW9uKDM2Mzk0LCAndGhlIGJhY2tzbGFzaCBv cGVyYXRvciBoYXMgYmVlbiBkZXByZWNhdGVkOyB1c2UgTS5kZWxldGUoWCkgaW5zdGVhZCcpCisg ICAgICAgICByZXR1cm4gc2VsZi5kZWxldGUoWCkKKyAKKy0gICAgY3BkZWYgZHVhbChzZWxmKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgZHVhbChzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAg IFJldHVybiB0aGUgZHVhbCBvZiB0aGUgbWF0cm9pZC4KKyAKK0BAIC0zOTkyLDcgKzM5OTIsNyBA QCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICBmcm9tIHNhZ2UubWF0 cm9pZHMgaW1wb3J0IGR1YWxfbWF0cm9pZAorICAgICAgICAgcmV0dXJuIGR1YWxfbWF0cm9pZC5E dWFsTWF0cm9pZChzZWxmKQorIAorLSAgICBjcGRlZiB0cnVuY2F0aW9uKHNlbGYpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiB0cnVuY2F0aW9uKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBS ZXR1cm4gYSByYW5rLTEgdHJ1bmNhdGlvbiBvZiB0aGUgbWF0cm9pZC4KKyAKK0BAIC00MDIzLDcg KzQwMjMsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICByZXR1 cm4gc2VsZi5fZXh0ZW5zaW9uKGwsIFtdKS5fbWlub3IoY29udHJhY3Rpb25zPWZyb3plbnNldChb bF0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0 aW9ucz1mcm96ZW5zZXQoW10pKQorIAorLSAgICBjcGRlZiBoYXNfbWlub3Ioc2VsZiwgTiwgYmlu dCBjZXJ0aWZpY2F0ZT1GYWxzZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGhhc19taW5vcihzZWxm LCBOLCBiaW50IGNlcnRpZmljYXRlPUZhbHNlKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ2hl Y2sgaWYgYGBzZWxmYGAgaGFzIGEgbWlub3IgaXNvbW9ycGhpYyB0byBgYE5gYCwKKyAgICAgICAg IGFuZCBvcHRpb25hbGx5IHJldHVybiBmcm96ZW5zZXRzIGBgWGBgIGFuZCBgYFlgYCBzbyB0aGF0 IGBgTmBgIGlzIGlzb21vcnBoaWMgdG8gYGBzZWxmLm1pbm9yKFgsIFkpYGAuCitAQCAtNDA3MCw3 ICs0MDcwLDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAg IHJhaXNlIFZhbHVlRXJyb3IoIk4gbXVzdCBiZSBhIG1hdHJvaWQuIikKKyAgICAgICAgIHJldHVy biBzZWxmLl9oYXNfbWlub3IoTiwgY2VydGlmaWNhdGUpCisgCistICAgIGNwZGVmIGhhc19saW5l X21pbm9yKHNlbGYsIGssIGh5cGVybGluZXM9Tm9uZSwgY2VydGlmaWNhdGU9RmFsc2UpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBoYXNfbGluZV9taW5vcihzZWxmLCBrLCBoeXBlcmxpbmVzPU5vbmUs IGNlcnRpZmljYXRlPUZhbHNlKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFRlc3QgaWYgdGhl IG1hdHJvaWQgaGFzIGEgYFVfezIsIGt9YC1taW5vci4KKyAKK0BAIC00MTQwLDcgKzQxNDAsNyBA QCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAgIyBnZXQgc2lt cGxpZmllZCBhd2F5IGFueXdheS4KKyAgICAgICAgIHJldHVybiBzZWxmLl9oYXNfbGluZV9taW5v cihrLCBoeXBlcmxpbmVzLCBjZXJ0aWZpY2F0ZSkKKyAKKy0gICAgY3BkZWYgX2hhc19saW5lX21p bm9yKHNlbGYsIGssIGh5cGVybGluZXMsIGNlcnRpZmljYXRlPUZhbHNlKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgX2hhc19saW5lX21pbm9yKHNlbGYsIGssIGh5cGVybGluZXMsIGNlcnRpZmljYXRl PUZhbHNlKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFRlc3QgaWYgdGhlIG1hdHJvaWQgaGFz IGEgYFVfezIsIGt9YC1taW5vci4KKyAKK0BAIC00MTg3LDcgKzQxODcsNyBAQCBjZGVmIGNsYXNz IE1hdHJvaWQoU2FnZU9iamVjdCk6CisgCisgICAgICMgZXh0ZW5zaW9ucworIAorLSAgICBjcGRl ZiBleHRlbnNpb24oc2VsZiwgZWxlbWVudD1Ob25lLCBzdWJzZXRzPU5vbmUpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBleHRlbnNpb24oc2VsZiwgZWxlbWVudD1Ob25lLCBzdWJzZXRzPU5vbmUpOgor ICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIGFuIGV4dGVuc2lvbiBvZiB0aGUgbWF0cm9p ZC4KKyAKK0BAIC00MjY0LDcgKzQyNjQsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVj dCk6CisgICAgICAgICAgICAgaHlwZXJwbGFuZXMgPSBbSCBmb3IgSCBpbiBzZWxmLm1vZHVsYXJf Y3V0KHN1YnNldHMpIGlmIHNlbGYuX3JhbmsoSCkgPT0gcl0KKyAgICAgICAgIHJldHVybiBzZWxm Ll9leHRlbnNpb24oZWxlbWVudCwgaHlwZXJwbGFuZXMpCisgCistICAgIGNwZGVmIGNvZXh0ZW5z aW9uKHNlbGYsIGVsZW1lbnQ9Tm9uZSwgc3Vic2V0cz1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgY29leHRlbnNpb24oc2VsZiwgZWxlbWVudD1Ob25lLCBzdWJzZXRzPU5vbmUpOgorICAgICAg ICAgciIiIgorICAgICAgICAgUmV0dXJuIGEgY29leHRlbnNpb24gb2YgdGhlIG1hdHJvaWQuCisg CitAQCAtNDMyOCw3ICs0MzI4LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgor ICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5kdWFsKCkuZXh0ZW5zaW9uKGVsZW1l bnQsIHN1YnNldHMpLmR1YWwoKQorIAorLSAgICBjcGRlZiBtb2R1bGFyX2N1dChzZWxmLCBzdWJz ZXRzKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgbW9kdWxhcl9jdXQoc2VsZiwgc3Vic2V0cyk6Cisg ICAgICAgICByIiIiCisgICAgICAgICBDb21wdXRlIHRoZSBtb2R1bGFyIGN1dCBnZW5lcmF0ZWQg YnkgYGBzdWJzZXRzYGAuCisgCitAQCAtNDQxOCw3ICs0NDE4LDcgQEAgY2RlZiBjbGFzcyBNYXRy b2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgIGZpbmFsX2xpc3QuYWRkKEYpCisgICAgICAg ICByZXR1cm4gZmluYWxfbGlzdAorIAorLSAgICBjcGRlZiBsaW5lYXJfc3ViY2xhc3NlcyhzZWxm LCBsaW5lX2xlbmd0aD1Ob25lLCBzdWJzZXRzPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBs aW5lYXJfc3ViY2xhc3NlcyhzZWxmLCBsaW5lX2xlbmd0aD1Ob25lLCBzdWJzZXRzPU5vbmUpOgor ICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIGFuIGl0ZXJhYmxlIHNldCBvZiBsaW5lYXIg c3ViY2xhc3NlcyBvZiB0aGUgbWF0cm9pZC4KKyAKK0BAIC00NDg3LDcgKzQ0ODcsNyBAQCBjZGVm IGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICBmcm9tIHNhZ2UubWF0cm9pZHMg aW1wb3J0IGV4dGVuc2lvbgorICAgICAgICAgcmV0dXJuIGV4dGVuc2lvbi5MaW5lYXJTdWJjbGFz c2VzKHNlbGYsIGxpbmVfbGVuZ3RoPWxpbmVfbGVuZ3RoLCBzdWJzZXRzPXN1YnNldHMpCisgCist ICAgIGNwZGVmIGV4dGVuc2lvbnMoc2VsZiwgZWxlbWVudD1Ob25lLCBsaW5lX2xlbmd0aD1Ob25l LCBzdWJzZXRzPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBleHRlbnNpb25zKHNlbGYsIGVs ZW1lbnQ9Tm9uZSwgbGluZV9sZW5ndGg9Tm9uZSwgc3Vic2V0cz1Ob25lKToKKyAgICAgICAgIHIi IiIKKyAgICAgICAgIFJldHVybiBhbiBpdGVyYWJsZSBzZXQgb2Ygc2luZ2xlLWVsZW1lbnQgZXh0 ZW5zaW9ucyBvZiB0aGUgbWF0cm9pZC4KKyAKK0BAIC00NjE2LDcgKzQ2MTYsNyBAQCBjZGVmIGNs YXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgCisgICAgICMgY29ubmVjdGl2aXR5CisgCistICAg IGNwZGVmIHNpbXBsaWZ5KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBzaW1wbGlmeShzZWxm KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgc2ltcGxpZmljYXRpb24gb2Yg dGhlIG1hdHJvaWQuCisgCitAQCAtNDY1NCw3ICs0NjU0LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lk KFNhZ2VPYmplY3QpOgorICAgICAgICAgcmV0dXJuIHNlbGYuX21pbm9yKGNvbnRyYWN0aW9ucz1m cm96ZW5zZXQoW10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0aW9ucz1zZWxm Lmdyb3VuZHNldCgpLmRpZmZlcmVuY2UocmVzKSkKKyAKKy0gICAgY3BkZWYgY29zaW1wbGlmeShz ZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgY29zaW1wbGlmeShzZWxmKToKKyAgICAgICAgIHIi IiIKKyAgICAgICAgIFJldHVybiB0aGUgY29zaW1wbGlmaWNhdGlvbiBvZiB0aGUgbWF0cm9pZC4K KyAKK0BAIC00NjkyLDcgKzQ2OTIsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6 CisgICAgICAgICByZXR1cm4gc2VsZi5fbWlub3IoY29udHJhY3Rpb25zPXNlbGYuZ3JvdW5kc2V0 KCkuZGlmZmVyZW5jZShyZXMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0aW9u cz1mcm96ZW5zZXQoW10pKQorIAorLSAgICBjcGRlZiBpc19zaW1wbGUoc2VsZikgbm9leGNlcHQ6 CisrICAgIGNwZGVmIGlzX3NpbXBsZShzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgVGVz dCBpZiB0aGUgbWF0cm9pZCBpcyBzaW1wbGUuCisgCitAQCAtNDcyNSw3ICs0NzI1LDcgQEAgY2Rl ZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgICAgICByZXR1cm4gRmFs c2UKKyAgICAgICAgIHJldHVybiBUcnVlCisgCistICAgIGNwZGVmIGlzX2Nvc2ltcGxlKHNlbGYp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBpc19jb3NpbXBsZShzZWxmKToKKyAgICAgICAgIHIiIiIK KyAgICAgICAgIFRlc3QgaWYgdGhlIG1hdHJvaWQgaXMgY29zaW1wbGUuCisgCitAQCAtNDc2MSw3 ICs0NzYxLDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAg ICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgIHJldHVybiBUcnVlCisgCistICAgIGNwZGVmIGNv bXBvbmVudHMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGNvbXBvbmVudHMoc2VsZik6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBhIGxpc3Qgb2YgdGhlIGNvbXBvbmVudHMgb2Yg dGhlIG1hdHJvaWQuCisgCitAQCAtNDgwMiw3ICs0ODAyLDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lk KFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgIGNvbXBvbmVudHMgPSBjb21wb25lbnRzMgorICAg ICAgICAgcmV0dXJuIGNvbXBvbmVudHMKKyAKKy0gICAgY3BkZWYgaXNfY29ubmVjdGVkKHNlbGYs IGNlcnRpZmljYXRlPUZhbHNlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgaXNfY29ubmVjdGVkKHNl bGYsIGNlcnRpZmljYXRlPUZhbHNlKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFRlc3QgaWYg dGhlIG1hdHJvaWQgaXMgY29ubmVjdGVkLgorIAorQEAgLTQ4NDEsNyArNDg0MSw3IEBAIGNkZWYg Y2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICBlbHNlOgorICAgICAgICAg ICAgICAgICByZXR1cm4gRmFsc2UKKyAKKy0gICAgY3BkZWYgY29ubmVjdGl2aXR5KHNlbGYsIFMs IFQ9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGNvbm5lY3Rpdml0eShzZWxmLCBTLCBUPU5v bmUpOgorICAgICAgICAgciIiIgorICAgICAgICAgRXZhbHVhdGUgdGhlIGNvbm5lY3Rpdml0eSBm dW5jdGlvbiBvZiB0aGUgbWF0cm9pZC4KKyAKK0BAIC00ODgyLDcgKzQ4ODIsNyBAQCBjZGVmIGNs YXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigi UyBhbmQgVCBhcmUgbm90IGRpc2pvaW50IikKKyAgICAgICAgIHJldHVybiBsZW4oc2VsZi5fbGlu ayhTLCBUKVswXSkgLSBzZWxmLmZ1bGxfcmFuaygpICsgc2VsZi5fcmFuayhTKSArIHNlbGYuX3Jh bmsoVCkKKyAKKy0gICAgY3BkZWYgX2Nvbm5lY3Rpdml0eShzZWxmLCBTLCBUKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgX2Nvbm5lY3Rpdml0eShzZWxmLCBTLCBUKToKKyAgICAgICAgIHIiIiIKKyAg ICAgICAgIFJldHVybiB0aGUgY29ubmVjdGl2aXR5IG9mIHR3byBzdWJzZXRzIGBgU2BgIGFuZCBg YFRgYCBpbiB0aGUgbWF0cm9pZC4KKyAKK0BAIC00OTIxLDcgKzQ5MjEsNyBAQCBjZGVmIGNsYXNz IE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBsZW4o c2VsZi5fbGluayhTLFQpWzBdKSAtIHNlbGYuZnVsbF9yYW5rKCkgKyBzZWxmLnJhbmsoUykgKyBz ZWxmLnJhbmsoVCkKKyAKKy0gICAgY3BkZWYgbGluayhzZWxmLCBTLCBUKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgbGluayhzZWxmLCBTLCBUKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIEdpdmVu IGRpc2pvaW50IHN1YnNldHMgYFNgIGFuZCBgVGAsIHJldHVybiBhIGNvbm5lY3RvciBgSWAgYW5k IGEgc2VwYXJhdGlvbiBgWGAsCisgICAgICAgICB3aGljaCBhcmUgb3B0aW1hbCBkdWFsIHNvbHV0 aW9ucyBpbiBUdXR0ZSdzIExpbmtpbmcgVGhlb3JlbToKK0BAIC00OTY4LDcgKzQ5NjgsNyBAQCBj ZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAgcmFpc2UgVmFsdWVF cnJvcigiUyBhbmQgVCBhcmUgbm90IGRpc2pvaW50IikKKyAgICAgICAgIHJldHVybiBzZWxmLl9s aW5rKFMsIFQpCisgCistICAgIGNwZGVmIF9saW5rKHNlbGYsIFMsIFQpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBfbGluayhzZWxmLCBTLCBUKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIEdpdmVu IGRpc2pvaW50IHN1YnNldHMgYFNgIGFuZCBgVGAsIHJldHVybiBhIGNvbm5lY3RvciBgSWAgYW5k IGEgc2VwYXJhdGlvbiBgWGAsCisgICAgICAgICB3aGljaCBhcmUgb3B0aW1hbCBkdWFsIHNvbHV0 aW9ucyBpbiBUdXR0ZSdzIExpbmtpbmcgVGhlb3JlbToKK0BAIC01MDUxLDcgKzUwNTEsNyBAQCBj ZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAgICAgIEkgPSBJLnN5 bW1ldHJpY19kaWZmZXJlbmNlKHBhdGgpCisgICAgICAgICByZXR1cm4gZnJvemVuc2V0KEkpLCBm cm96ZW5zZXQocHJlZGVjZXNzb3IpfFMKKyAKKy0gICAgY3BkZWYgaXNfa2Nvbm5lY3RlZChzZWxm LCBrLCBjZXJ0aWZpY2F0ZT1GYWxzZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGlzX2tjb25uZWN0 ZWQoc2VsZiwgaywgY2VydGlmaWNhdGU9RmFsc2UpOgorICAgICAgICAgciIiIgorICAgICAgICAg UmV0dXJuIGBgVHJ1ZWBgIGlmIHRoZSBtYXRyb2lkIGlzIGBrYC1jb25uZWN0ZWQsIGBgRmFsc2Vg YCBvdGhlcndpc2UuICBJdCBjYW4KKyAgICAgICAgIG9wdGlvbmFsbHkgcmV0dXJuIGEgc2VwYXJh dG9yIGFzIGEgd2l0bmVzcy4KK0BAIC01MTc3LDcgKzUxNzcsNyBAQCBjZGVmIGNsYXNzIE1hdHJv aWQoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAgcmV0dXJuIFRydWUsIE5vbmUKKyAgICAgICAg IHJldHVybiBUcnVlCisgCistICAgIGNwZGVmIGlzXzNjb25uZWN0ZWQoc2VsZiwgY2VydGlmaWNh dGU9RmFsc2UsIGFsZ29yaXRobT1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgaXNfM2Nvbm5l Y3RlZChzZWxmLCBjZXJ0aWZpY2F0ZT1GYWxzZSwgYWxnb3JpdGhtPU5vbmUpOgorICAgICAgICAg ciIiIgorICAgICAgICAgUmV0dXJuIGBgVHJ1ZWBgIGlmIHRoZSBtYXRyb2lkIGlzIDMtY29ubmVj dGVkLCBgYEZhbHNlYGAgb3RoZXJ3aXNlLiBJdCBjYW4KKyAgICAgICAgIG9wdGlvbmFsbHkgcmV0 dXJuIGEgc2VwYXJhdG9yIGFzIGEgd2l0bmVzcy4KK0BAIC01MjU3LDcgKzUyNTcsNyBAQCBjZGVm IGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2lz XzNjb25uZWN0ZWRfc2hpZnRpbmcoY2VydGlmaWNhdGUpCisgICAgICAgICByYWlzZSBWYWx1ZUVy cm9yKCJOb3QgYSB2YWxpZCBhbGdvcml0aG0uIikKKyAKKy0gICAgY3BkZWYgaXNfNGNvbm5lY3Rl ZChzZWxmLCBjZXJ0aWZpY2F0ZT1GYWxzZSwgYWxnb3JpdGhtPU5vbmUpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBpc180Y29ubmVjdGVkKHNlbGYsIGNlcnRpZmljYXRlPUZhbHNlLCBhbGdvcml0aG09 Tm9uZSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gYGBUcnVlYGAgaWYgdGhlIG1h dHJvaWQgaXMgNC1jb25uZWN0ZWQsIGBgRmFsc2VgYCBvdGhlcndpc2UuIEl0IGNhbgorICAgICAg ICAgb3B0aW9uYWxseSByZXR1cm4gYSBzZXBhcmF0b3IgYXMgYSB3aXRuZXNzLgorQEAgLTUzMDks NyArNTMwOSw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICAg ICByZXR1cm4gc2VsZi5faXNfNGNvbm5lY3RlZF9zaGlmdGluZyhjZXJ0aWZpY2F0ZSkKKyAgICAg ICAgIHJhaXNlIFZhbHVlRXJyb3IoIk5vdCBhIHZhbGlkIGFsZ29yaXRobS4iKQorIAorLSAgICBj cGRlZiBfaXNfM2Nvbm5lY3RlZF9DRShzZWxmLCBjZXJ0aWZpY2F0ZT1GYWxzZSkgbm9leGNlcHQ6 CisrICAgIGNwZGVmIF9pc18zY29ubmVjdGVkX0NFKHNlbGYsIGNlcnRpZmljYXRlPUZhbHNlKToK KyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBgYFRydWVgYCBpZiB0aGUgbWF0cm9pZCBp cyAzLWNvbm5lY3RlZCwgYGBGYWxzZWBgIG90aGVyd2lzZS4KKyAKK0BAIC01NDM3LDcgKzU0Mzcs NyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICBlbHNlOgorICAg ICAgICAgICAgIHJldHVybiBUcnVlCisgCistICAgIGNwZGVmIF9pc18zY29ubmVjdGVkX3NoaWZ0 aW5nKHNlbGYsIGNlcnRpZmljYXRlPUZhbHNlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2lzXzNj b25uZWN0ZWRfc2hpZnRpbmcoc2VsZiwgY2VydGlmaWNhdGU9RmFsc2UpOgorICAgICAgICAgciIi IgorICAgICAgICAgUmV0dXJuIGBgVHJ1ZWBgIGlmIHRoZSBtYXRyb2lkIGlzIDMtY29ubmVjdGVk LCBgYEZhbHNlYGAgb3RoZXJ3aXNlLiBJdCBjYW4KKyAgICAgICAgIG9wdGlvbmFsbHkgcmV0dXJu IGEgc2VwYXJhdG9yIGFzIGEgd2l0bmVzcy4KK0BAIC01NTE1LDcgKzU1MTUsNyBAQCBjZGVmIGNs YXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAgcmV0dXJuIFRydWUsIE5vbmUK KyAgICAgICAgIHJldHVybiBUcnVlCisgCistICAgIGNwZGVmIF9pc180Y29ubmVjdGVkX3NoaWZ0 aW5nKHNlbGYsIGNlcnRpZmljYXRlPUZhbHNlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2lzXzRj b25uZWN0ZWRfc2hpZnRpbmcoc2VsZiwgY2VydGlmaWNhdGU9RmFsc2UpOgorICAgICAgICAgciIi IgorICAgICAgICAgUmV0dXJuIGBgVHJ1ZWBgIGlmIHRoZSBtYXRyb2lkIGlzIDQtY29ubmVjdGVk LCBgYEZhbHNlYGAgb3RoZXJ3aXNlLiBJdCBjYW4KKyAgICAgICAgIG9wdGlvbmFsbHkgcmV0dXJu IGEgc2VwYXJhdG9yIGFzIGEgd2l0bmVzcy4KK0BAIC01NjE5LDcgKzU2MTksNyBAQCBjZGVmIGNs YXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAgcmV0dXJuIFRydWUsIE5vbmUK KyAgICAgICAgIHJldHVybiBUcnVlCisgCistICAgIGNwZGVmIF9zaGlmdGluZ19hbGwoc2VsZiwg WCwgUF9yb3dzLCBQX2NvbHMsIFFfcm93cywgUV9jb2xzLCBtKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgX3NoaWZ0aW5nX2FsbChzZWxmLCBYLCBQX3Jvd3MsIFBfY29scywgUV9yb3dzLCBRX2NvbHMs IG0pOgorICAgICAgICAgciIiIgorICAgICAgICAgR2l2ZW4gYSBiYXNpcyBgYFhgYC4gSWYgdGhl IHN1Ym1hdHJpeCBvZiB0aGUgcGFydGlhbCBtYXRyaXggdXNpbmcgcm93cworICAgICAgICAgYFBf cm93c2AgY29sdW1ucyBgUF9jb2xzYCBhbmQgc3VibWF0cml4IHVzaW5nIHJvd3MgYFFfcm93c2Ag Y29sdW1ucworQEAgLTU2ODAsNyArNTY4MCw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2Jq ZWN0KToKKyAgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUsIGNlcnQKKyAgICAgICAgIHJldHVy biBGYWxzZSwgTm9uZQorIAorLSAgICBjcGRlZiBfc2hpZnRpbmcoc2VsZiwgWCwgWF8xLCBZXzIs IFhfMiwgWV8xLCBtKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3NoaWZ0aW5nKHNlbGYsIFgsIFhf MSwgWV8yLCBYXzIsIFlfMSwgbSk6CisgICAgICAgICByIiIiCisgICAgICAgICBHaXZlbiBhIGJh c2lzIGBgWGBgLiBJZiB0aGUgc3VibWF0cml4IG9mIHRoZSBwYXJ0aWFsIG1hdHJpeCB1c2luZyBy b3dzCisgICAgICAgICBgWF8xYCBjb2x1bW5zIGBZXzJgIGFuZCBzdWJtYXRyaXggdXNpbmcgcm93 cyBgWF8yYCBjb2x1bW5zCitAQCAtNTc3Miw3ICs1NzcyLDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lk KFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgIHJldHVybiBGYWxzZSwgTm9uZQorICAgICAgICAg cmV0dXJuIFRydWUsIFNfMgorIAorLSAgICBjcGRlZiBfaXNfM2Nvbm5lY3RlZF9CQyhzZWxmLCBj ZXJ0aWZpY2F0ZT1GYWxzZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9pc18zY29ubmVjdGVkX0JD KHNlbGYsIGNlcnRpZmljYXRlPUZhbHNlKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVy biBgYFRydWVgYCBpZiB0aGUgbWF0cm9pZCBpcyAzLWNvbm5lY3RlZCwgYGBGYWxzZWBgIG90aGVy d2lzZS4KKyAKK0BAIC01ODI4LDcgKzU4MjgsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9i amVjdCk6CisgICAgICAgICBmdW5kX2NvY2lyY3VpdHMgPSBzZXQoW3NlbGYuX2Z1bmRhbWVudGFs X2NvY2lyY3VpdChiYXNpcywgZSkgZm9yIGUgaW4gYmFzaXNdKQorICAgICAgICAgcmV0dXJuIHNl bGYuX2lzXzNjb25uZWN0ZWRfQkNfcmVjdXJzaW9uKHNlbGYuYmFzaXMoKSwgZnVuZF9jb2NpcmN1 aXRzKQorIAorLSAgICBjcGRlZiBfaXNfM2Nvbm5lY3RlZF9CQ19yZWN1cnNpb24oc2VsZiwgYmFz aXMsIGZ1bmRfY29jaXJjdWl0cykgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9pc18zY29ubmVjdGVk X0JDX3JlY3Vyc2lvbihzZWxmLCBiYXNpcywgZnVuZF9jb2NpcmN1aXRzKToKKyAgICAgICAgIHIi IiIKKyAgICAgICAgIEEgaGVscGVyIGZ1bmN0aW9uIGZvciBgYF9pc18zY29ubmVjdGVkX0JDYGAu IFRoaXMgbWV0aG9kIGFzc3VtZXMgdGhlCisgICAgICAgICBtYXRyb2lkIGlzIGJvdGggc2ltcGxl IGFuZCBjb3NpbXBsZS4gVW5kZXIgdGhlIGFzc3VtcHRpb24sIGl0IHJldHVybgorQEAgLTU5MjYs NyArNTkyNiw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICAg ICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICByZXR1cm4gVHJ1ZQorIAorLSAgICBjcGRlZiBp c19wYXZpbmcoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGlzX3BhdmluZyhzZWxmKToKKyAg ICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGlmIGBgc2VsZmBgIGlzIHBhdmluZy4KKyAKK0BA IC01OTQ3LDcgKzU5NDcsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAg ICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgcmV0dXJuIFRydWUKKyAKKy0gICAg Y3BkZWYgaXNfc3BhcnNlX3BhdmluZyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgaXNfc3Bh cnNlX3BhdmluZyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGlmIGBgc2Vs ZmBgIGlzIHNwYXJzZS1wYXZpbmcuCisgCitAQCAtNTk3NSw3ICs1OTc1LDcgQEAgY2RlZiBjbGFz cyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAg ICAgICAgIHJldHVybiBUcnVlCisgCistICAgIGNwZGVmIGdpcnRoKHNlbGYpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBnaXJ0aChzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0 aGUgZ2lydGggb2YgdGhlIG1hdHJvaWQuCisgCitAQCAtNjAwNSw3ICs2MDA1LDcgQEAgY2RlZiBj bGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorIAorICAgICAjIHJlcHJlc2VudGFiaWxpdHkKKyAK Ky0gICAgY3BkZWYgX2xvY2FsX2JpbmFyeV9tYXRyb2lkKHNlbGYsIGJhc2lzPU5vbmUpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBfbG9jYWxfYmluYXJ5X21hdHJvaWQoc2VsZiwgYmFzaXM9Tm9uZSk6 CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gYSBiaW5hcnkgbWF0cm9pZCBgTWAgc28g dGhhdCByZWxhdGl2ZSB0byBhIGZpeGVkIGJhc2lzIGBCYCwKKyAgICAgICAgIGBYYCBpcyBhIGJh c2lzIG9mIGBgc2VsZmBgIGlmIGFuZCBvbmx5IGlmIGBYYCBpcyBhIGJhc2lzIG9mIGBNYAorQEAg LTYwNDYsNyArNjA0Niw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAg ICAgIGZyb20gc2FnZS5tYXRyb2lkcy5saW5lYXJfbWF0cm9pZCBpbXBvcnQgQmluYXJ5TWF0cm9p ZAorICAgICAgICAgcmV0dXJuIEJpbmFyeU1hdHJvaWQoZ3JvdW5kc2V0PUUsIG1hdHJpeD1BLCBi YXNpcz1iYXNpcywga2VlcF9pbml0aWFsX3JlcHJlc2VudGF0aW9uPUZhbHNlKQorIAorLSAgICBj cGRlZiBiaW5hcnlfbWF0cm9pZChzZWxmLCByYW5kb21pemVkX3Rlc3RzPTEsIHZlcmlmeSA9IFRy dWUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBiaW5hcnlfbWF0cm9pZChzZWxmLCByYW5kb21pemVk X3Rlc3RzPTEsIHZlcmlmeSA9IFRydWUpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJu IGEgYmluYXJ5IG1hdHJvaWQgcmVwcmVzZW50aW5nIGBgc2VsZmBgLCBpZiBzdWNoIGEKKyAgICAg ICAgIHJlcHJlc2VudGF0aW9uIGV4aXN0cy4KK0BAIC02MTAzLDcgKzYxMDMsNyBAQCBjZGVmIGNs YXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJl dHVybiBOb25lCisgCistICAgIGNwZGVmIGlzX2JpbmFyeShzZWxmLCByYW5kb21pemVkX3Rlc3Rz PTEpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBpc19iaW5hcnkoc2VsZiwgcmFuZG9taXplZF90ZXN0 cz0xKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIERlY2lkZSBpZiBgYHNlbGZgYCBpcyBhIGJp bmFyeSBtYXRyb2lkLgorIAorQEAgLTYxNDAsNyArNjE0MCw3IEBAIGNkZWYgY2xhc3MgTWF0cm9p ZChTYWdlT2JqZWN0KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuYmluYXJ5 X21hdHJvaWQocmFuZG9taXplZF90ZXN0cz1yYW5kb21pemVkX3Rlc3RzLCB2ZXJpZnk9VHJ1ZSkg aXMgbm90IE5vbmUKKyAKKy0gICAgY3BkZWYgX2xvY2FsX3Rlcm5hcnlfbWF0cm9pZChzZWxmLCBi YXNpcz1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2xvY2FsX3Rlcm5hcnlfbWF0cm9pZChz ZWxmLCBiYXNpcz1Ob25lKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBhIHRlcm5h cnkgbWF0cm9pZCBgTWAgc28gdGhhdCBpZiBgYHNlbGZgYCBpcyB0ZXJuYXJ5LCB0aGVuIGBNYCBp cyBmaWVsZAorICAgICAgICAgaXNvbW9ycGhpYyB0byBgYHNlbGZgYC4KK0BAIC02MjMxLDcgKzYy MzEsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICBmcm9tIHNh Z2UubWF0cm9pZHMubGluZWFyX21hdHJvaWQgaW1wb3J0IFRlcm5hcnlNYXRyb2lkCisgICAgICAg ICByZXR1cm4gVGVybmFyeU1hdHJvaWQoZ3JvdW5kc2V0PUUsIG1hdHJpeD1BLCBiYXNpcz1iYXNp cywga2VlcF9pbml0aWFsX3JlcHJlc2VudGF0aW9uPUZhbHNlKQorIAorLSAgICBjcGRlZiB0ZXJu YXJ5X21hdHJvaWQoc2VsZiwgcmFuZG9taXplZF90ZXN0cz0xLCB2ZXJpZnkgPSBUcnVlKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgdGVybmFyeV9tYXRyb2lkKHNlbGYsIHJhbmRvbWl6ZWRfdGVzdHM9 MSwgdmVyaWZ5ID0gVHJ1ZSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gYSB0ZXJu YXJ5IG1hdHJvaWQgcmVwcmVzZW50aW5nIGBgc2VsZmBgLCBpZiBzdWNoIGEKKyAgICAgICAgIHJl cHJlc2VudGF0aW9uIGV4aXN0cy4KK0BAIC02Mjg4LDcgKzYyODgsNyBAQCBjZGVmIGNsYXNzIE1h dHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJldHVybiBO b25lCisgCistICAgIGNwZGVmIGlzX3Rlcm5hcnkoc2VsZiwgcmFuZG9taXplZF90ZXN0cz0xKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgaXNfdGVybmFyeShzZWxmLCByYW5kb21pemVkX3Rlc3RzPTEp OgorICAgICAgICAgciIiIgorICAgICAgICAgRGVjaWRlIGlmIGBgc2VsZmBgIGlzIGEgdGVybmFy eSBtYXRyb2lkLgorIAorQEAgLTYzMjcsNyArNjMyNyw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChT YWdlT2JqZWN0KToKKyAKKyAgICAgIyBtYXRyb2lkIGstY2xvc2VkCisgCistICAgIGNwZGVmIGlz X2tfY2xvc2VkKHNlbGYsIGludCBrKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgaXNfa19jbG9zZWQo c2VsZiwgaW50IGspOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIGlmIGBgc2VsZmBg IGlzIGEgYGBrYGAtY2xvc2VkIG1hdHJvaWQuCisgCitAQCAtNjM2NCw3ICs2MzY0LDcgQEAgY2Rl ZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorIAorICAgICAjIG1hdHJvaWQgY2hvcmRhbGl0 eQorIAorLSAgICBjcGRlZiBfaXNfY2lyY3VpdF9jaG9yZGFsKHNlbGYsIGZyb3plbnNldCBDLCBi aW50IGNlcnRpZmljYXRlPUZhbHNlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2lzX2NpcmN1aXRf Y2hvcmRhbChzZWxmLCBmcm96ZW5zZXQgQywgYmludCBjZXJ0aWZpY2F0ZT1GYWxzZSk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIENoZWNrIGlmIHRoZSBjaXJjdWl0IGBgQ2BgIGhhcyBhIGNob3Jk LgorIAorQEAgLTY0MTIsNyArNjQxMiw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0 KToKKyAgICAgICAgICAgICByZXR1cm4gRmFsc2UsIE5vbmUKKyAgICAgICAgIHJldHVybiBGYWxz ZQorIAorLSAgICBjcGRlZiBpc19jaXJjdWl0X2Nob3JkYWwoc2VsZiwgQywgYmludCBjZXJ0aWZp Y2F0ZT1GYWxzZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGlzX2NpcmN1aXRfY2hvcmRhbChzZWxm LCBDLCBiaW50IGNlcnRpZmljYXRlPUZhbHNlKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIENo ZWNrIGlmIHRoZSBjaXJjdWl0IGBgQ2BgIGhhcyBhIGNob3JkLgorIAorQEAgLTY0NTQsNyArNjQ1 NCw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICByYWlz ZSBWYWx1ZUVycm9yKCJpbnB1dCBDIGlzIG5vdCBhIGNpcmN1aXQiKQorICAgICAgICAgcmV0dXJu IHNlbGYuX2lzX2NpcmN1aXRfY2hvcmRhbChmcm96ZW5zZXQoQyksIGNlcnRpZmljYXRlKQorIAor LSAgICBjcGRlZiBpc19jaG9yZGFsKHNlbGYsIGsxPTQsIGsyPU5vbmUsIGJpbnQgY2VydGlmaWNh dGU9RmFsc2UpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBpc19jaG9yZGFsKHNlbGYsIGsxPTQsIGsy PU5vbmUsIGJpbnQgY2VydGlmaWNhdGU9RmFsc2UpOgorICAgICAgICAgciIiIgorICAgICAgICAg UmV0dXJuIGlmIGEgbWF0cm9pZCBpcyBgYFtrMSwgazJdYGAtY2hvcmRhbC4KKyAKK0BAIC02NTA5 LDcgKzY1MDksNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAg ICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgcmV0dXJuIFRydWUKKyAKKy0gICAgY3BkZWYg Y2hvcmRhbGl0eShzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgY2hvcmRhbGl0eShzZWxmKToK KyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgbWluaW1hbCBga2Agc3VjaCB0aGF0 IHRoZSBtYXRyb2lkIGBgTWBgIGlzIGBrYC1jaG9yZGFsLgorIAorQEAgLTY1NDEsNyArNjU0MSw3 IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAKKyAgICAgIyBvcHRpbWl6YXRp b24KKyAKKy0gICAgY3BkZWYgbWF4X3dlaWdodF9pbmRlcGVuZGVudChzZWxmLCBYPU5vbmUsIHdl aWdodHM9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIG1heF93ZWlnaHRfaW5kZXBlbmRlbnQo c2VsZiwgWD1Ob25lLCB3ZWlnaHRzPU5vbmUpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0 dXJuIGEgbWF4aW11bS13ZWlnaHQgaW5kZXBlbmRlbnQgc2V0IGNvbnRhaW5lZCBpbiBhIHN1YnNl dC4KKyAKK0BAIC02NjI4LDcgKzY2MjgsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVj dCk6CisgICAgICAgICAgICAgICAgIHJlcy5kaXNjYXJkKGUpCisgICAgICAgICByZXR1cm4gZnJv emVuc2V0KHJlcykKKyAKKy0gICAgY3BkZWYgbWF4X3dlaWdodF9jb2luZGVwZW5kZW50KHNlbGYs IFg9Tm9uZSwgd2VpZ2h0cz1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgbWF4X3dlaWdodF9j b2luZGVwZW5kZW50KHNlbGYsIFg9Tm9uZSwgd2VpZ2h0cz1Ob25lKToKKyAgICAgICAgIHIiIiIK KyAgICAgICAgIFJldHVybiBhIG1heGltdW0td2VpZ2h0IGNvaW5kZXBlbmRlbnQgc2V0IGNvbnRh aW5lZCBpbiBgYFhgYC4KKyAKK0BAIC02NzIwLDcgKzY3MjAsNyBAQCBjZGVmIGNsYXNzIE1hdHJv aWQoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAgICAgIHJlcy5kaXNjYXJkKGUpCisgICAgICAg ICByZXR1cm4gZnJvemVuc2V0KHJlcykKKyAKKy0gICAgY3BkZWYgaXNfbWF4X3dlaWdodF9pbmRl cGVuZGVudF9nZW5lcmljKHNlbGYsIFg9Tm9uZSwgd2VpZ2h0cz1Ob25lKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgaXNfbWF4X3dlaWdodF9pbmRlcGVuZGVudF9nZW5lcmljKHNlbGYsIFg9Tm9uZSwg d2VpZ2h0cz1Ob25lKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFRlc3QgaWYgb25seSBvbmUg YmFzaXMgb2YgdGhlIHN1YnNldCBgYFhgYCBoYXMgbWF4aW1hbAorICAgICAgICAgd2VpZ2h0Lgor QEAgLTY4NjksNyArNjg2OSw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAg ICAgICAgICAgICAgICAgZGVsIHJlc1stMV0KKyAgICAgICAgIHJldHVybiBUcnVlCisgCistICAg IGNwZGVmIGlzX21heF93ZWlnaHRfY29pbmRlcGVuZGVudF9nZW5lcmljKHNlbGYsIFg9Tm9uZSwg d2VpZ2h0cz1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgaXNfbWF4X3dlaWdodF9jb2luZGVw ZW5kZW50X2dlbmVyaWMoc2VsZiwgWD1Ob25lLCB3ZWlnaHRzPU5vbmUpOgorICAgICAgICAgciIi IgorICAgICAgICAgVGVzdCBpZiBvbmx5IG9uZSBjb2Jhc2lzIG9mIHRoZSBzdWJzZXQgYGBYYGAg aGFzIG1heGltYWwKKyAgICAgICAgIHdlaWdodC4KK0BAIC03MDI2LDcgKzcwMjYsNyBAQCBjZGVm IGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAgICAgIGRlbCByZXNbLTFd CisgICAgICAgICByZXR1cm4gVHJ1ZQorIAorLSAgICBjcGRlZiBpbnRlcnNlY3Rpb24oc2VsZiwg b3RoZXIsIHdlaWdodHM9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGludGVyc2VjdGlvbihz ZWxmLCBvdGhlciwgd2VpZ2h0cz1Ob25lKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVy biBhIG1heGltdW0td2VpZ2h0IGNvbW1vbiBpbmRlcGVuZGVudCBzZXQuCisgCitAQCAtNzA4NCw3 ICs3MDg0LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAg ICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJ0aGUgd2VpZ2h0cyBhcmd1bWVudCBkb2VzIG5vdCBz ZWVtIHRvIGJlIGEgY29sbGVjdGlvbiBvZiB3ZWlnaHRzIGZvciB0aGUgZ3JvdW5kc2V0LiIpCisg ICAgICAgICByZXR1cm4gc2VsZi5faW50ZXJzZWN0aW9uKG90aGVyLCB3dCkKKyAKKy0gICAgY3Bk ZWYgX2ludGVyc2VjdGlvbihzZWxmLCBvdGhlciwgd2VpZ2h0cykgbm9leGNlcHQ6CisrICAgIGNw ZGVmIF9pbnRlcnNlY3Rpb24oc2VsZiwgb3RoZXIsIHdlaWdodHMpOgorICAgICAgICAgciIiIgor ICAgICAgICAgUmV0dXJuIGEgbWF4aW11bS13ZWlnaHQgY29tbW9uIGluZGVwZW5kZW50LgorIAor QEAgLTcxMjQsNyArNzEyNCw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAg ICAgICAgICAgICBVID0gc2VsZi5faW50ZXJzZWN0aW9uX2F1Z21lbnRhdGlvbihvdGhlciwgd2Vp Z2h0cywgWSkKKyAgICAgICAgIHJldHVybiBZCisgCistICAgIGNwZGVmIF9pbnRlcnNlY3Rpb25f YXVnbWVudGF0aW9uKHNlbGYsIG90aGVyLCB3ZWlnaHRzLCBZKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgX2ludGVyc2VjdGlvbl9hdWdtZW50YXRpb24oc2VsZiwgb3RoZXIsIHdlaWdodHMsIFkpOgor ICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIGFuIGF1Z21lbnRpbmcgc2V0IGZvciB0aGUg bWF0cm9pZCBpbnRlcnNlY3Rpb24gcHJvYmxlbS4KKyAKK0BAIC03MjE1LDcgKzcyMTUsNyBAQCBj ZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAgICAgIHBhdGguYWRk KHUpCisgICAgICAgICAgICAgcmV0dXJuIFRydWUsIGZyb3plbnNldChwYXRoKQorIAorLSAgICBj cGRlZiBpbnRlcnNlY3Rpb25fdW53ZWlnaHRlZChzZWxmLCBvdGhlcikgbm9leGNlcHQ6CisrICAg IGNwZGVmIGludGVyc2VjdGlvbl91bndlaWdodGVkKHNlbGYsIG90aGVyKToKKyAgICAgICAgIHIi IiIKKyAgICAgICAgIFJldHVybiBhIG1heGltdW0tY2FyZGluYWxpdHkgY29tbW9uIGluZGVwZW5k ZW50IHNldC4KKyAKK0BAIC03MjUxLDcgKzcyNTEsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2Fn ZU9iamVjdCk6CisgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibWF0cm9pZCBpbnRlcnNl Y3Rpb24gcmVxdWlyZXMgZXF1YWwgZ3JvdW5kc2V0cy4iKQorICAgICAgICAgcmV0dXJuIHNlbGYu X2ludGVyc2VjdGlvbl91bndlaWdodGVkKG90aGVyKQorIAorLSAgICBjcGRlZiBfaW50ZXJzZWN0 aW9uX3Vud2VpZ2h0ZWQoc2VsZiwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfaW50ZXJz ZWN0aW9uX3Vud2VpZ2h0ZWQoc2VsZiwgb3RoZXIpOgorICAgICAgICAgciIiIgorICAgICAgICAg UmV0dXJuIGEgbWF4aW11bSBjb21tb24gaW5kZXBlbmRlbnQuCisgCitAQCAtNzI4Nyw3ICs3Mjg3 LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgIFUgPSBz ZWxmLl9pbnRlcnNlY3Rpb25fYXVnbWVudGF0aW9uX3Vud2VpZ2h0ZWQob3RoZXIsIFkpCisgICAg ICAgICByZXR1cm4gWQorIAorLSAgICBjcGRlZiBfaW50ZXJzZWN0aW9uX2F1Z21lbnRhdGlvbl91 bndlaWdodGVkKHNlbGYsIG90aGVyLCBZKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2ludGVyc2Vj dGlvbl9hdWdtZW50YXRpb25fdW53ZWlnaHRlZChzZWxmLCBvdGhlciwgWSk6CisgICAgICAgICBy IiIiCisgICAgICAgICBSZXR1cm4gYSBjb21tb24gaW5kZXBlbmRlbnQgc2V0IGxhcmdlciB0aGFu IGBZYCBvciByZXBvcnQgZmFpbHVyZS4KKyAKK0BAIC03NDIzLDcgKzc0MjMsNyBAQCBjZGVmIGNs YXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBy ZWRlY2Vzc29yW3ZdID0gdQorICAgICAgICAgICAgIHJldHVybiBUcnVlLCBZCisgCistICAgIGNw ZGVmIHBhcnRpdGlvbihzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcGFydGl0aW9uKHNlbGYp OgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIGEgbWluaW11bSBudW1iZXIgb2YgZGlz am9pbnQgaW5kZXBlbmRlbnQgc2V0cyB0aGF0IGNvdmVycyB0aGUKKyAgICAgICAgIGdyb3VuZHNl dC4KK0BAIC03NDg5LDcgKzc0ODksNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6 CisgCisgICAgICMgaW52YXJpYW50cworIAorLSAgICBjcGRlZiBfaW50ZXJuYWwoc2VsZiwgQikg bm9leGNlcHQ6CisrICAgIGNwZGVmIF9pbnRlcm5hbChzZWxmLCBCKToKKyAgICAgICAgICIiIgor ICAgICAgICAgUmV0dXJuIHRoZSBzZXQgb2YgaW50ZXJuYWxseSBhY3RpdmUgZWxlbWVudHMgb2Yg YSBiYXNpcyBgQmAuCisgCitAQCAtNzUyOCw3ICs3NTI4LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lk KFNhZ2VPYmplY3QpOgorICAgICAgICAgICAgICAgICBBLmFkZChlKQorICAgICAgICAgcmV0dXJu IEEKKyAKKy0gICAgY3BkZWYgX2V4dGVybmFsKHNlbGYsIEIpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBfZXh0ZXJuYWwoc2VsZiwgQik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUg c2V0IG9mIGV4dGVybmFsbHkgYWN0aXZlIGVsZW1lbnRzIG9mIGEgYmFzaXMgYEJgLgorIAorQEAg LTc1NjcsNyArNzU2Nyw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAg ICAgICAgICAgICAgQS5hZGQoZSkKKyAgICAgICAgIHJldHVybiBBCisgCistICAgIGNwZGVmIHR1 dHRlX3BvbHlub21pYWwoc2VsZiwgeD1Ob25lLCB5PU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiB0dXR0ZV9wb2x5bm9taWFsKHNlbGYsIHg9Tm9uZSwgeT1Ob25lKToKKyAgICAgICAgIHIiIiIK KyAgICAgICAgIFJldHVybiB0aGUgVHV0dGUgcG9seW5vbWlhbCBvZiB0aGUgbWF0cm9pZC4KKyAK K0BAIC03NjI4LDcgKzc2MjgsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6Cisg ICAgICAgICAgICAgVCA9IFQoYSwgYikKKyAgICAgICAgIHJldHVybiBUCisgCistICAgIGNwZGVm IGZsYXRfY292ZXIoc2VsZiwgc29sdmVyPU5vbmUsIHZlcmJvc2U9MCwgaW50ZWdyYWxpdHlfdG9s ZXJhbmNlPTFlLTMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBmbGF0X2NvdmVyKHNlbGYsIHNvbHZl cj1Ob25lLCB2ZXJib3NlPTAsIGludGVncmFsaXR5X3RvbGVyYW5jZT0xZS0zKToKKyAgICAgICAg ICIiIgorICAgICAgICAgUmV0dXJuIGEgbWluaW11bS1zaXplIGNvdmVyIG9mIHRoZSBub25iYXNl cyBieSBub24tc3Bhbm5pbmcgZmxhdHMuCisgCitAQCAtNzc4Miw3ICs3NzgyLDcgQEAgY2RlZiBj bGFzcyBNYXRyb2lkKFNhZ2VPYmplY3QpOgorICAgICAgICAgcmV0LnJlbmFtZSgiQ2hvdyByaW5n IG9mIHt9IG92ZXIge30iLmZvcm1hdChzZWxmLCBSKSkKKyAgICAgICAgIHJldHVybiByZXQKKyAK Ky0gICAgY3BkZWYgcGxvdChzZWxmLCBCPU5vbmUsIGxpbmVvcmRlcnM9Tm9uZSwgcG9zX21ldGhv ZD1Ob25lLHBvc19kaWN0PU5vbmUsc2F2ZV9wb3M9RmFsc2UpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBwbG90KHNlbGYsIEI9Tm9uZSwgbGluZW9yZGVycz1Ob25lLCBwb3NfbWV0aG9kPU5vbmUscG9z X2RpY3Q9Tm9uZSxzYXZlX3Bvcz1GYWxzZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVy biBnZW9tZXRyaWMgcmVwcmVzZW50YXRpb24gYXMgYSBzYWdlIGdyYXBoaWNzIG9iamVjdC4KKyAK K0BAIC03ODQyLDcgKzc4NDIsNyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6Cisg ICAgICAgICBsaW5lb3JkZXJzMj1tYXRyb2lkc19wbG90X2hlbHBlcnMubGluZW9yZGVyc191bmlv bihzZWxmLl9jYWNoZWRfaW5mb1snbGluZW9yZGVycyddLGxpbmVvcmRlcnMpCisgICAgICAgICBy ZXR1cm4gbWF0cm9pZHNfcGxvdF9oZWxwZXJzLmdlb21yZXAoc2VsZixCLGxpbmVvcmRlcnMyLHBk PXBvc19kaWN0LCBzcD1zYXZlX3BvcykKKyAKKy0gICAgY3BkZWYgc2hvdyhzZWxmLEI9Tm9uZSxs aW5lb3JkZXJzPU5vbmUscG9zX21ldGhvZD1Ob25lLHBvc19kaWN0PU5vbmUsc2F2ZV9wb3M9RmFs c2UsbGltcz1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgc2hvdyhzZWxmLEI9Tm9uZSxsaW5l b3JkZXJzPU5vbmUscG9zX21ldGhvZD1Ob25lLHBvc19kaWN0PU5vbmUsc2F2ZV9wb3M9RmFsc2Us bGltcz1Ob25lKToKKyAgICAgICAgICIiIgorICAgICAgICAgU2hvdyB0aGUgZ2VvbWV0cmljIHJl cHJlc2VudGF0aW9uIG9mIHRoZSBtYXRyb2lkLgorIAorQEAgLTc4OTEsNyArNzg5MSw3IEBAIGNk ZWYgY2xhc3MgTWF0cm9pZChTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICBHLnNob3coeG1pbj1s aW1zWzBdLCB4bWF4PWxpbXNbMV0sIHltaW49bGltc1syXSwgeW1heD1saW1zWzNdKQorICAgICAg ICAgcmV0dXJuCisgCistICAgIGNwZGVmIF9maXhfcG9zaXRpb25zKHNlbGYscG9zX2RpY3Q9Tm9u ZSxsaW5lb3JkZXJzPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZml4X3Bvc2l0aW9ucyhz ZWxmLHBvc19kaWN0PU5vbmUsbGluZW9yZGVycz1Ob25lKToKKyAgICAgICAgICIiIgorICAgICAg ICAgQ2FjaGUgcG9pbnQgcG9zaXRpb25zIGFuZCBsaW5lIG9yZGVycyB3aXRob3V0IGFjdHVhbGx5 IHBsb3R0aW5nCisgCitAQCAtNzk1OSw3ICs3OTU5LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkKFNh Z2VPYmplY3QpOgorICAgICAgICAgZnJvbSBzYWdlLnRvcG9sb2d5LnNpbXBsaWNpYWxfY29tcGxl eCBpbXBvcnQgU2ltcGxpY2lhbENvbXBsZXgKKyAgICAgICAgIHJldHVybiBTaW1wbGljaWFsQ29t cGxleChzZWxmLm5vX2Jyb2tlbl9jaXJjdWl0c19zZXRzKG9yZGVyaW5nKSkKKyAKKy0gICAgY3Bk ZWYgYXV0b21vcnBoaXNtX2dyb3VwKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBhdXRvbW9y cGhpc21fZ3JvdXAoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGF1 dG9tb3JwaGlzbSBncm91cCBvZiBgYHNlbGZgYC4KKyAKK0BAIC03OTk0LDcgKzc5OTQsNyBAQCBj ZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICBmcm9tIHNhZ2UudG9wb2xv Z3kuc2ltcGxpY2lhbF9jb21wbGV4IGltcG9ydCBTaW1wbGljaWFsQ29tcGxleAorICAgICAgICAg cmV0dXJuIFNpbXBsaWNpYWxDb21wbGV4KHNlbGYuYmFzZXMoKSkuYXV0b21vcnBoaXNtX2dyb3Vw KCkKKyAKKy0gICAgY3BkZWYgYmVyZ21hbl9jb21wbGV4KHNlbGYpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBiZXJnbWFuX2NvbXBsZXgoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1 cm4gdGhlIEJlcmdtYW4gY29tcGxleCBvZiBgYHNlbGZgYC4KKyAKK0BAIC04MDE5LDcgKzgwMTks NyBAQCBjZGVmIGNsYXNzIE1hdHJvaWQoU2FnZU9iamVjdCk6CisgICAgICAgICBMID0gc2VsZi5s YXR0aWNlX29mX2ZsYXRzKCkKKyAgICAgICAgIHJldHVybiBMLnN1YnBvc2V0KEwubGlzdCgpWzE6 IC0xXSkub3JkZXJfY29tcGxleCgpCisgCistICAgIGNwZGVmIGF1Z21lbnRlZF9iZXJnbWFuX2Nv bXBsZXgoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGF1Z21lbnRlZF9iZXJnbWFuX2NvbXBs ZXgoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGF1Z21lbnRlZCBC ZXJnbWFuIGNvbXBsZXggb2YgYGBzZWxmYGAuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWF0 cm9pZHMvc2V0X3N5c3RlbS5weGQgYi9zcmMvc2FnZS9tYXRyb2lkcy9zZXRfc3lzdGVtLnB4ZAor aW5kZXggNjlhNGJjODQ0M2MuLmEyODMyNDRiNTNiIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0 cm9pZHMvc2V0X3N5c3RlbS5weGQKKysrKyBiL3NyYy9zYWdlL21hdHJvaWRzL3NldF9zeXN0ZW0u cHhkCitAQCAtOCwyOSArOCwyOSBAQCBjZGVmIGNsYXNzIFNldFN5c3RlbToKKyAgICAgY2RlZiBs b25nIF9sZW4sIF9jYXBhY2l0eQorICAgICBjZGVmIGJpdHNldF90IF90ZW1wCisgCistICAgIGNk ZWYgY29weShzZWxmKSBub2V4Y2VwdAorLSAgICBjZGVmIF9yZWxhYmVsKHNlbGYsIGwpIG5vZXhj ZXB0CistICAgIGNwZGVmIF9jb21wbGVtZW50cyhzZWxmKSBub2V4Y2VwdAorKyAgICBjZGVmIGNv cHkoc2VsZikKKysgICAgY2RlZiBfcmVsYWJlbChzZWxmLCBsKQorKyAgICBjcGRlZiBfY29tcGxl bWVudHMoc2VsZikKKyAKKy0gICAgY2RlZiByZXNpemUoc2VsZiwgaz0qKSBub2V4Y2VwdAorLSAg ICBjZGVmIF9hcHBlbmQoc2VsZiwgYml0c2V0X3QgWCkgbm9leGNlcHQKKy0gICAgY2RlZiBhcHBl bmQoc2VsZiwgWCkgbm9leGNlcHQKKy0gICAgY2RlZiBfc3Vic2V0KHNlbGYsIGxvbmcgaykgbm9l eGNlcHQKKy0gICAgY2RlZiBzdWJzZXQoc2VsZiwgaykgbm9leGNlcHQKKy0gICAgY3BkZWYgX2dl dF9ncm91bmRzZXQoc2VsZikgbm9leGNlcHQKKysgICAgY2RlZiByZXNpemUoc2VsZiwgaz0qKQor KyAgICBjZGVmIF9hcHBlbmQoc2VsZiwgYml0c2V0X3QgWCkKKysgICAgY2RlZiBhcHBlbmQoc2Vs ZiwgWCkKKysgICAgY2RlZiBfc3Vic2V0KHNlbGYsIGxvbmcgaykKKysgICAgY2RlZiBzdWJzZXQo c2VsZiwgaykKKysgICAgY3BkZWYgX2dldF9ncm91bmRzZXQoc2VsZikKKyAKKy0gICAgY2RlZiBs aXN0IF9pbmNpZGVuY2VfY291bnQoc2VsZiwgRSkgbm9leGNlcHQKKy0gICAgY2RlZiBTZXRTeXN0 ZW0gX2dyb3VuZHNldF9wYXJ0aXRpb24oc2VsZiwgU2V0U3lzdGVtIFAsIGxpc3QgY250KSBub2V4 Y2VwdAorKyAgICBjZGVmIGxpc3QgX2luY2lkZW5jZV9jb3VudChzZWxmLCBFKQorKyAgICBjZGVm IFNldFN5c3RlbSBfZ3JvdW5kc2V0X3BhcnRpdGlvbihzZWxmLCBTZXRTeXN0ZW0gUCwgbGlzdCBj bnQpCisgICAgIGNkZWYgbG9uZyBzdWJzZXRfY2hhcmFjdGVyaXN0aWMoc2VsZiwgU2V0U3lzdGVt IFAsIGxvbmcgZSkgbm9leGNlcHQKKy0gICAgY2RlZiBzdWJzZXRzX3BhcnRpdGlvbihzZWxmLCBT ZXRTeXN0ZW0gUD0qLCBFPSopIG5vZXhjZXB0CistICAgIGNkZWYgX2Rpc3Rpbmd1aXNoKHNlbGYs IFB5X3NzaXplX3Qgdikgbm9leGNlcHQKKy0gICAgY3BkZWYgaXNfY29ubmVjdGVkKHNlbGYpIG5v ZXhjZXB0CisrICAgIGNkZWYgc3Vic2V0c19wYXJ0aXRpb24oc2VsZiwgU2V0U3lzdGVtIFA9Kiwg RT0qKQorKyAgICBjZGVmIF9kaXN0aW5ndWlzaChzZWxmLCBQeV9zc2l6ZV90IHYpCisrICAgIGNw ZGVmIGlzX2Nvbm5lY3RlZChzZWxmKQorIAorLSAgICBjZGVmIGluaXRpYWxfcGFydGl0aW9uKHNl bGYsIFNldFN5c3RlbSBQPSosIEU9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgX2VxdWl0YWJsZV9w YXJ0aXRpb24oc2VsZiwgU2V0U3lzdGVtIFA9KiwgRVA9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYg X2hldXJpc3RpY19wYXJ0aXRpb24oc2VsZiwgU2V0U3lzdGVtIFA9KiwgRVA9Kikgbm9leGNlcHQK Ky0gICAgY3BkZWYgX2lzb21vcnBoaXNtKHNlbGYsIFNldFN5c3RlbSBvdGhlciwgU2V0U3lzdGVt IFNQPSosIFNldFN5c3RlbSBPUD0qKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfZXF1aXZhbGVuY2Uo c2VsZiwgaXNfZXF1aXYsIFNldFN5c3RlbSBvdGhlciwgU2V0U3lzdGVtIFNQPSosIFNldFN5c3Rl bSBPUD0qKSBub2V4Y2VwdAorKyAgICBjZGVmIGluaXRpYWxfcGFydGl0aW9uKHNlbGYsIFNldFN5 c3RlbSBQPSosIEU9KikKKysgICAgY3BkZWYgX2VxdWl0YWJsZV9wYXJ0aXRpb24oc2VsZiwgU2V0 U3lzdGVtIFA9KiwgRVA9KikKKysgICAgY3BkZWYgX2hldXJpc3RpY19wYXJ0aXRpb24oc2VsZiwg U2V0U3lzdGVtIFA9KiwgRVA9KikKKysgICAgY3BkZWYgX2lzb21vcnBoaXNtKHNlbGYsIFNldFN5 c3RlbSBvdGhlciwgU2V0U3lzdGVtIFNQPSosIFNldFN5c3RlbSBPUD0qKQorKyAgICBjcGRlZiBf ZXF1aXZhbGVuY2Uoc2VsZiwgaXNfZXF1aXYsIFNldFN5c3RlbSBvdGhlciwgU2V0U3lzdGVtIFNQ PSosIFNldFN5c3RlbSBPUD0qKQorIAorIGNkZWYgY2xhc3MgU2V0U3lzdGVtSXRlcmF0b3I6Cisg ICAgIGNkZWYgU2V0U3lzdGVtIF9ICitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cm9pZHMvc2V0 X3N5c3RlbS5weXggYi9zcmMvc2FnZS9tYXRyb2lkcy9zZXRfc3lzdGVtLnB5eAoraW5kZXggYjAy MzI2ZWVhNTUuLjYwNjIzMWExNzM0IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0cm9pZHMvc2V0 X3N5c3RlbS5weXgKKysrKyBiL3NyYy9zYWdlL21hdHJvaWRzL3NldF9zeXN0ZW0ucHl4CitAQCAt MjAwLDE0ICsyMDAsMTQgQEAgY2RlZiBjbGFzcyBTZXRTeXN0ZW06CisgICAgICAgICAiIiIKKyAg ICAgICAgIHJldHVybiAiSXRlcmF0b3Igb3ZlciBhIHN5c3RlbSBvZiBzdWJzZXRzIgorIAorLSAg ICBjZGVmIGNvcHkoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgY29weShzZWxmKToKKyAgICAg ICAgIGNkZWYgU2V0U3lzdGVtIFMKKyAgICAgICAgIFMgPSBTZXRTeXN0ZW0oc2VsZi5fZ3JvdW5k c2V0LCBjYXBhY2l0eT1sZW4oc2VsZikpCisgICAgICAgICBmb3IgaSBpbiByYW5nZShsZW4oc2Vs ZikpOgorICAgICAgICAgICAgIFMuX2FwcGVuZChzZWxmLl9zdWJzZXRzW2ldKQorICAgICAgICAg cmV0dXJuIFMKKyAKKy0gICAgY2RlZiBfcmVsYWJlbChzZWxmLCBsKSBub2V4Y2VwdDoKKysgICAg Y2RlZiBfcmVsYWJlbChzZWxmLCBsKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmVsYWJlbCBl YWNoIGVsZW1lbnQgYGVgIG9mIHRoZSBncm91bmQgc2V0IGFzIGBsKGUpYCwgd2hlcmUgYGxgIGlz IGEKKyAgICAgICAgIGdpdmVuIGluamVjdGl2ZSBtYXAuCitAQCAtMjMyLDcgKzIzMiw3IEBAIGNk ZWYgY2xhc3MgU2V0U3lzdGVtOgorICAgICAgICAgZm9yIGkgaW4gcmFuZ2Uoc2VsZi5fZ3JvdW5k c2V0X3NpemUpOgorICAgICAgICAgICAgIHNlbGYuX2lkeFtzZWxmLl9ncm91bmRzZXRbaV1dID0g aQorIAorLSAgICBjcGRlZiBfY29tcGxlbWVudHMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9jb21wbGVtZW50cyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGEgU2V0 U3lzdGVtIGNvbnRhaW5pbmcgdGhlIGNvbXBsZW1lbnRzIG9mIGVhY2ggZWxlbWVudCBpbiB0aGUK KyAgICAgICAgIGdyb3VuZHNldC4KK0BAIC0yNTYsNyArMjU2LDcgQEAgY2RlZiBjbGFzcyBTZXRT eXN0ZW06CisgICAgICAgICAgICAgUy5fYXBwZW5kKHNlbGYuX3RlbXApCisgICAgICAgICByZXR1 cm4gUworIAorLSAgICBjZGVmIGlubGluZSByZXNpemUoc2VsZiwgaz1Ob25lKSBub2V4Y2VwdDoK KysgICAgY2RlZiBpbmxpbmUgcmVzaXplKHNlbGYsIGs9Tm9uZSk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIENoYW5nZSB0aGUgY2FwYWNpdHkgb2YgdGhlIFNldFN5c3RlbS4KKyAgICAgICAgICIi IgorQEAgLTI2OSw3ICsyNjksNyBAQCBjZGVmIGNsYXNzIFNldFN5c3RlbToKKyAgICAgICAgIHNl bGYuX3N1YnNldHMgPSA8Yml0c2V0X3QqPmNoZWNrX3JlYWxsb2NhcnJheShzZWxmLl9zdWJzZXRz LCBrMiwgc2l6ZW9mKGJpdHNldF90KSkKKyAgICAgICAgIHNlbGYuX2NhcGFjaXR5ID0gazIKKyAK Ky0gICAgY2RlZiBpbmxpbmUgX2FwcGVuZChzZWxmLCBiaXRzZXRfdCBYKSBub2V4Y2VwdDoKKysg ICAgY2RlZiBpbmxpbmUgX2FwcGVuZChzZWxmLCBiaXRzZXRfdCBYKToKKyAgICAgICAgICIiIgor ICAgICAgICAgQXBwZW5kIHN1YnNldCBpbiBpbnRlcm5hbCwgYml0c2V0IGZvcm1hdAorICAgICAg ICAgIiIiCitAQCAtMjc5LDcgKzI3OSw3IEBAIGNkZWYgY2xhc3MgU2V0U3lzdGVtOgorICAgICAg ICAgYml0c2V0X2NvcHkoc2VsZi5fc3Vic2V0c1tzZWxmLl9sZW5dLCBYKQorICAgICAgICAgc2Vs Zi5fbGVuICs9IDEKKyAKKy0gICAgY2RlZiBpbmxpbmUgYXBwZW5kKHNlbGYsIFgpIG5vZXhjZXB0 OgorKyAgICBjZGVmIGlubGluZSBhcHBlbmQoc2VsZiwgWCk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIEFwcGVuZCBzdWJzZXQuCisgICAgICAgICAiIiIKK0BAIC0yOTEsMTMgKzI5MSwxMyBAQCBj ZGVmIGNsYXNzIFNldFN5c3RlbToKKyAgICAgICAgICAgICBiaXRzZXRfYWRkKHNlbGYuX3N1YnNl dHNbc2VsZi5fbGVuXSwgPG1wX2JpdGNudF90PiBzZWxmLl9pZHhbeF0pCisgICAgICAgICBzZWxm Ll9sZW4gKz0gMQorIAorLSAgICBjZGVmIGlubGluZSBfc3Vic2V0KHNlbGYsIGxvbmcgaykgbm9l eGNlcHQ6CisrICAgIGNkZWYgaW5saW5lIF9zdWJzZXQoc2VsZiwgbG9uZyBrKToKKyAgICAgICAg ICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBrLXRoIHN1YnNldCwgaW4gaW5kZXggZm9ybWF0Lgor ICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gYml0c2V0X2xpc3Qoc2VsZi5fc3Vic2V0c1tr XSkKKyAKKy0gICAgY2RlZiBzdWJzZXQoc2VsZiwgaykgbm9leGNlcHQ6CisrICAgIGNkZWYgc3Vi c2V0KHNlbGYsIGspOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGstdGggc3Vi c2V0LgorICAgICAgICAgIiIiCitAQCAtMzA5LDcgKzMwOSw3IEBAIGNkZWYgY2xhc3MgU2V0U3lz dGVtOgorICAgICAgICAgICAgIGkgPSBiaXRzZXRfbmV4dChzZWxmLl9zdWJzZXRzW2tdLCBpICsg MSkKKyAgICAgICAgIHJldHVybiBmcm96ZW5zZXQoRikKKyAKKy0gICAgY3BkZWYgX2dldF9ncm91 bmRzZXQoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9nZXRfZ3JvdW5kc2V0KHNlbGYpOgor ICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGdyb3VuZCBzZXQgb2YgdGhpcyBTZXRT eXN0ZW0uCisgCitAQCAtMzIyLDcgKzMyMiw3IEBAIGNkZWYgY2xhc3MgU2V0U3lzdGVtOgorICAg ICAgICAgIiIiCisgICAgICAgICByZXR1cm4gZnJvemVuc2V0KHNlbGYuX2dyb3VuZHNldCkKKyAK Ky0gICAgY3BkZWYgaXNfY29ubmVjdGVkKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBpc19j b25uZWN0ZWQoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRlc3QgaWYgdGhlIDpjbGFz czpgU2V0U3lzdGVtYCBpcyBjb25uZWN0ZWQuCisgCitAQCAtMzc2LDcgKzM3Niw3IEBAIGNkZWYg Y2xhc3MgU2V0U3lzdGVtOgorIAorICAgICAjIGlzb21vcnBoaXNtCisgCistICAgIGNkZWYgbGlz dCBfaW5jaWRlbmNlX2NvdW50KHNlbGYsIEUpIG5vZXhjZXB0OgorKyAgICBjZGVmIGxpc3QgX2lu Y2lkZW5jZV9jb3VudChzZWxmLCBFKToKKyAgICAgICAgICIiIgorICAgICAgICAgRm9yIHRoZSBz dWItY29sbGVjdGlvbiBpbmRleGVkIGJ5IGBgRWBgLCBjb3VudCBob3cgb2Z0ZW4gZWFjaCBlbGVt ZW50CisgICAgICAgICBvY2N1cnMuCitAQCAtMzkxLDcgKzM5MSw3IEBAIGNkZWYgY2xhc3MgU2V0 U3lzdGVtOgorICAgICAgICAgICAgICAgICBpID0gYml0c2V0X25leHQoc2VsZi5fc3Vic2V0c1tl XSwgaSArIDEpCisgICAgICAgICByZXR1cm4gY250CisgCistICAgIGNkZWYgU2V0U3lzdGVtIF9n cm91bmRzZXRfcGFydGl0aW9uKHNlbGYsIFNldFN5c3RlbSBQLCBsaXN0IGNudCkgbm9leGNlcHQ6 CisrICAgIGNkZWYgU2V0U3lzdGVtIF9ncm91bmRzZXRfcGFydGl0aW9uKHNlbGYsIFNldFN5c3Rl bSBQLCBsaXN0IGNudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEhlbHBlciBtZXRob2QgZm9y IHBhcnRpdGlvbiBtZXRob2RzIGJlbG93LgorICAgICAgICAgIiIiCitAQCAtNDQ0LDcgKzQ0NCw3 IEBAIGNkZWYgY2xhc3MgU2V0U3lzdGVtOgorICAgICAgICAgICAgIGMgKz0gYml0c2V0X2xlbihz ZWxmLl90ZW1wKQorICAgICAgICAgcmV0dXJuIGMKKyAKKy0gICAgY2RlZiBzdWJzZXRzX3BhcnRp dGlvbihzZWxmLCBTZXRTeXN0ZW0gUD1Ob25lLCBFPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjZGVm IHN1YnNldHNfcGFydGl0aW9uKHNlbGYsIFNldFN5c3RlbSBQPU5vbmUsIEU9Tm9uZSk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIEhlbHBlciBtZXRob2QgZm9yIHBhcnRpdGlvbiBtZXRob2RzIGJl bG93LgorICAgICAgICAgIiIiCitAQCAtNDczLDcgKzQ3Myw3IEBAIGNkZWYgY2xhc3MgU2V0U3lz dGVtOgorICAgICAgICAgRVAuYXBwZW5kKGVwKQorICAgICAgICAgcmV0dXJuIEVQLCBoYXNoKHR1 cGxlKGVoKSkKKyAKKy0gICAgY2RlZiBfZGlzdGluZ3Vpc2goc2VsZiwgUHlfc3NpemVfdCB2KSBu b2V4Y2VwdDoKKysgICAgY2RlZiBfZGlzdGluZ3Vpc2goc2VsZiwgUHlfc3NpemVfdCB2KToKKyAg ICAgICAgICIiIgorICAgICAgICAgSGVscGVyIG1ldGhvZCBmb3IgcGFydGl0aW9uIG1ldGhvZHMg YmVsb3cuCisgICAgICAgICAiIiIKK0BAIC00ODgsNyArNDg4LDcgQEAgY2RlZiBjbGFzcyBTZXRT eXN0ZW06CisgICAgICAgICByZXR1cm4gUworIAorICAgICAjIHBhcnRpdGlvbiBmdW5jdGlvbnMK Ky0gICAgY2RlZiBpbml0aWFsX3BhcnRpdGlvbihzZWxmLCBTZXRTeXN0ZW0gUD1Ob25lLCBFPU5v bmUpIG5vZXhjZXB0OgorKyAgICBjZGVmIGluaXRpYWxfcGFydGl0aW9uKHNlbGYsIFNldFN5c3Rl bSBQPU5vbmUsIEU9Tm9uZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEhlbHBlciBtZXRob2Qg Zm9yIHBhcnRpdGlvbiBtZXRob2RzIGJlbG93LgorICAgICAgICAgIiIiCitAQCAtNTAzLDcgKzUw Myw3IEBAIGNkZWYgY2xhc3MgU2V0U3lzdGVtOgorICAgICAgICAgc2VsZi5fZ3JvdW5kc2V0X3Bh cnRpdGlvbihQLCBjbnQpCisgICAgICAgICByZXR1cm4gUAorIAorLSAgICBjcGRlZiBfZXF1aXRh YmxlX3BhcnRpdGlvbihzZWxmLCBTZXRTeXN0ZW0gUD1Ob25lLCBFUD1Ob25lKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgX2VxdWl0YWJsZV9wYXJ0aXRpb24oc2VsZiwgU2V0U3lzdGVtIFA9Tm9uZSwg RVA9Tm9uZSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gYW4gZXF1aXRhYmxlIG9y ZGVyZWQgcGFydGl0aW9uIG9mIHRoZSBncm91bmQgc2V0IG9mIHRoZQorICAgICAgICAgaHlwZXJn cmFwaCB3aG9zZSBlZGdlcyBhcmUgdGhlIHN1YnNldHMgaW4gdGhpcyBTZXRTeXN0ZW0uCitAQCAt NTg0LDcgKzU4NCw3IEBAIGNkZWYgY2xhc3MgU2V0U3lzdGVtOgorIAorICAgICAgICAgcmV0dXJu IFAsIEVQLCBoCisgCistICAgIGNwZGVmIF9oZXVyaXN0aWNfcGFydGl0aW9uKHNlbGYsIFNldFN5 c3RlbSBQPU5vbmUsIEVQPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfaGV1cmlzdGljX3Bh cnRpdGlvbihzZWxmLCBTZXRTeXN0ZW0gUD1Ob25lLCBFUD1Ob25lKToKKyAgICAgICAgICIiIgor ICAgICAgICAgUmV0dXJuIGEgaGV1cmlzdGljIG9yZGVyZWQgcGFydGl0aW9uIGludG8gc2luZ2xl dG9ucyBvZiB0aGUgZ3JvdW5kCisgICAgICAgICBzZXQgb2YgdGhlIGh5cGVyZ3JhcGggd2hvc2Ug ZWRnZXMgYXJlIHRoZSBzdWJzZXRzIGluIHRoaXMgU2V0U3lzdGVtLgorQEAgLTYzMiw3ICs2MzIs NyBAQCBjZGVmIGNsYXNzIFNldFN5c3RlbToKKyAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYu X2hldXJpc3RpY19wYXJ0aXRpb24oUC5fZGlzdGluZ3Vpc2goYml0c2V0X2ZpcnN0KFAuX3N1YnNl dHNbaV0pKSwgRVApCisgICAgICAgICByZXR1cm4gUCwgRVAsIGgKKyAKKy0gICAgY3BkZWYgX2lz b21vcnBoaXNtKHNlbGYsIFNldFN5c3RlbSBvdGhlciwgU2V0U3lzdGVtIFNQPU5vbmUsIFNldFN5 c3RlbSBPUD1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2lzb21vcnBoaXNtKHNlbGYsIFNl dFN5c3RlbSBvdGhlciwgU2V0U3lzdGVtIFNQPU5vbmUsIFNldFN5c3RlbSBPUD1Ob25lKToKKyAg ICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGEgZ3JvdW5kc2V0IGlzb21vcnBoaXNtIGJldHdl ZW4gdGhpcyBTZXRTeXN0ZW0gYW5kIGFuIG90aGVyLgorIAorQEAgLTY5Miw3ICs2OTIsNyBAQCBj ZGVmIGNsYXNzIFNldFN5c3RlbToKKyAgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICAg cmV0dXJuIGRpY3QoWyhzZWxmLl9ncm91bmRzZXRbYml0c2V0X2ZpcnN0KFNQLl9zdWJzZXRzW2ld KV0sIG90aGVyLl9ncm91bmRzZXRbYml0c2V0X2ZpcnN0KE9QLl9zdWJzZXRzW2ldKV0pIGZvciBp IGluIHJhbmdlKGxlbihTUCkpXSkKKyAKKy0gICAgY3BkZWYgX2VxdWl2YWxlbmNlKHNlbGYsIGlz X2VxdWl2LCBTZXRTeXN0ZW0gb3RoZXIsIFNldFN5c3RlbSBTUD1Ob25lLCBTZXRTeXN0ZW0gT1A9 Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9lcXVpdmFsZW5jZShzZWxmLCBpc19lcXVpdiwg U2V0U3lzdGVtIG90aGVyLCBTZXRTeXN0ZW0gU1A9Tm9uZSwgU2V0U3lzdGVtIE9QPU5vbmUpOgor ICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYSBncm91bmRzZXQgaXNvbW9ycGhpc20gdGhh dCBpcyBhbiBlcXVpdmFsZW5jZSBiZXR3ZWVuIHRoaXMKKyAgICAgICAgIFNldFN5c3RlbSBhbmQg YW4gb3RoZXIuCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cm9pZHMvdW5pb25fbWF0cm9pZC5w eGQgYi9zcmMvc2FnZS9tYXRyb2lkcy91bmlvbl9tYXRyb2lkLnB4ZAoraW5kZXggYTM3OGNmZTkx MGQuLmQwM2FlNDc2YmRhIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWF0cm9pZHMvdW5pb25fbWF0 cm9pZC5weGQKKysrKyBiL3NyYy9zYWdlL21hdHJvaWRzL3VuaW9uX21hdHJvaWQucHhkCitAQCAt NCwxNyArNCwxNyBAQCBmcm9tIHNhZ2UubWF0cm9pZHMubWF0cm9pZCBjaW1wb3J0IE1hdHJvaWQK KyBjZGVmIGNsYXNzIE1hdHJvaWRVbmlvbihNYXRyb2lkKToKKyAgICAgY2RlZiBsaXN0IG1hdHJv aWRzCisgICAgIGNkZWYgZnJvemVuc2V0IF9ncm91bmRzZXQKKy0gICAgY3BkZWYgZ3JvdW5kc2V0 KHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIF9yYW5rKHNlbGYsIFgpIG5vZXhjZXB0CisrICAg IGNwZGVmIGdyb3VuZHNldChzZWxmKQorKyAgICBjcGRlZiBfcmFuayhzZWxmLCBYKQorIAorIGNk ZWYgY2xhc3MgTWF0cm9pZFN1bShNYXRyb2lkKToKKyAgICAgY2RlZiBsaXN0IHN1bW1hbmRzCisg ICAgIGNkZWYgZnJvemVuc2V0IF9ncm91bmRzZXQKKy0gICAgY3BkZWYgZ3JvdW5kc2V0KHNlbGYp IG5vZXhjZXB0CistICAgIGNwZGVmIF9yYW5rKHNlbGYsIFgpIG5vZXhjZXB0CisrICAgIGNwZGVm IGdyb3VuZHNldChzZWxmKQorKyAgICBjcGRlZiBfcmFuayhzZWxmLCBYKQorIAorIGNkZWYgY2xh c3MgUGFydGl0aW9uTWF0cm9pZChNYXRyb2lkKToKKyAgICAgY2RlZiBkaWN0IHAKKyAgICAgY2Rl ZiBmcm96ZW5zZXQgX2dyb3VuZHNldAorLSAgICBjcGRlZiBncm91bmRzZXQoc2VsZikgbm9leGNl cHQKKy0gICAgY3BkZWYgX3Jhbmsoc2VsZiwgWCkgbm9leGNlcHQKKysgICAgY3BkZWYgZ3JvdW5k c2V0KHNlbGYpCisrICAgIGNwZGVmIF9yYW5rKHNlbGYsIFgpCitkaWZmIC0tZ2l0IGEvc3JjL3Nh Z2UvbWF0cm9pZHMvdW5pb25fbWF0cm9pZC5weXggYi9zcmMvc2FnZS9tYXRyb2lkcy91bmlvbl9t YXRyb2lkLnB5eAoraW5kZXggMDRmN2VlZTQ0MDIuLjRlNGQ4ZTRlYjBhIDEwMDY0NAorLS0tIGEv c3JjL3NhZ2UvbWF0cm9pZHMvdW5pb25fbWF0cm9pZC5weXgKKysrKyBiL3NyYy9zYWdlL21hdHJv aWRzL3VuaW9uX21hdHJvaWQucHl4CitAQCAtNTMsNyArNTMsNyBAQCBjZGVmIGNsYXNzIE1hdHJv aWRVbmlvbihNYXRyb2lkKToKKyAgICAgICAgICAgICBFLnVwZGF0ZShNLmdyb3VuZHNldCgpKQor ICAgICAgICAgc2VsZi5fZ3JvdW5kc2V0ID0gZnJvemVuc2V0KEUpCisgCistICAgIGNwZGVmIGdy b3VuZHNldChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZ3JvdW5kc2V0KHNlbGYpOgorICAg ICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGdyb3VuZHNldCBvZiB0aGUgbWF0cm9pZC4K KyAKK0BAIC03Miw3ICs3Miw3IEBAIGNkZWYgY2xhc3MgTWF0cm9pZFVuaW9uKE1hdHJvaWQpOgor ICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fZ3JvdW5kc2V0CisgCistICAgIGNw ZGVmIF9yYW5rKHNlbGYsIFgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmFuayhzZWxmLCBYKToK KyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgcmFuayBvZiBhIHNldCBgYFhgYC4K KyAKK0BAIC0xODYsNyArMTg2LDcgQEAgY2RlZiBjbGFzcyBNYXRyb2lkU3VtKE1hdHJvaWQpOgor ICAgICAgICAgICAgIFMgPSBTICsgTS5fcmVwcl8oKSArIlxuIgorICAgICAgICAgcmV0dXJuIFNb Oi0xXQorIAorLSAgICBjcGRlZiBncm91bmRzZXQoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVm IGdyb3VuZHNldChzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBncm91 bmRzZXQgb2YgdGhlIG1hdHJvaWQuCisgCitAQCAtMjA1LDcgKzIwNSw3IEBAIGNkZWYgY2xhc3Mg TWF0cm9pZFN1bShNYXRyb2lkKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYu X2dyb3VuZHNldAorIAorLSAgICBjcGRlZiBfcmFuayhzZWxmLCBYKSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgX3Jhbmsoc2VsZiwgWCk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhl IHJhbmsgb2YgYSBzZXQgYGBYYGAuCisgCitAQCAtMjg1LDcgKzI4NSw3IEBAIGNkZWYgY2xhc3Mg UGFydGl0aW9uTWF0cm9pZChNYXRyb2lkKToKKyAgICAgICAgICAgICBFLnVwZGF0ZShQKQorICAg ICAgICAgc2VsZi5fZ3JvdW5kc2V0ID0gZnJvemVuc2V0KEUpCisgCistICAgIGNwZGVmIGdyb3Vu ZHNldChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZ3JvdW5kc2V0KHNlbGYpOgorICAgICAg ICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGdyb3VuZHNldCBvZiB0aGUgbWF0cm9pZC4KKyAK K0BAIC0zMDQsNyArMzA0LDcgQEAgY2RlZiBjbGFzcyBQYXJ0aXRpb25NYXRyb2lkKE1hdHJvaWQp OgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fZ3JvdW5kc2V0CisgCistICAg IGNwZGVmIF9yYW5rKHNlbGYsIFgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmFuayhzZWxmLCBY KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgcmFuayBvZiBhIHNldCBgYFhg YC4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9taXNjL2FsbG9jYXRvci5weGQgYi9zcmMvc2Fn ZS9taXNjL2FsbG9jYXRvci5weGQKK2luZGV4IGJhNDMyMWNmNzFjLi43OTQ1YTc1MjQxZiAxMDA2 NDQKKy0tLSBhL3NyYy9zYWdlL21pc2MvYWxsb2NhdG9yLnB4ZAorKysrIGIvc3JjL3NhZ2UvbWlz Yy9hbGxvY2F0b3IucHhkCitAQCAtMSw1ICsxLDUgQEAKKyBmcm9tIGNweXRob24ub2JqZWN0IGNp bXBvcnQgKgorIAorLWNkZWYgaG9va190cF9mdW5jdGlvbnNfdHlwZShvYmplY3QgdCwgbmV3ZnVu YyB0cF9uZXcsIGRlc3RydWN0b3IgdHBfZGVhbGxvYywgYmludCB1c2VHQykgbm9leGNlcHQKKytj ZGVmIGhvb2tfdHBfZnVuY3Rpb25zX3R5cGUob2JqZWN0IHQsIG5ld2Z1bmMgdHBfbmV3LCBkZXN0 cnVjdG9yIHRwX2RlYWxsb2MsIGJpbnQgdXNlR0MpCisgCistY2RlZiBob29rX3RwX2Z1bmN0aW9u cyhvYmplY3QgZ2xvYmFsX2R1bW15LCBuZXdmdW5jIHRwX25ldywgZGVzdHJ1Y3RvciB0cF9kZWFs bG9jLCBiaW50IHVzZUdDKSBub2V4Y2VwdAorK2NkZWYgaG9va190cF9mdW5jdGlvbnMob2JqZWN0 IGdsb2JhbF9kdW1teSwgbmV3ZnVuYyB0cF9uZXcsIGRlc3RydWN0b3IgdHBfZGVhbGxvYywgYmlu dCB1c2VHQykKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9taXNjL2FsbG9jYXRvci5weXggYi9zcmMv c2FnZS9taXNjL2FsbG9jYXRvci5weXgKK2luZGV4IGI2ZDg2NWIwMGU2Li5iN2ZhZmRjZTI4NiAx MDA2NDQKKy0tLSBhL3NyYy9zYWdlL21pc2MvYWxsb2NhdG9yLnB5eAorKysrIGIvc3JjL3NhZ2Uv bWlzYy9hbGxvY2F0b3IucHl4CitAQCAtMSw2ICsxLDYgQEAKKyBmcm9tIGNweXRob24ucmVmIGNp bXBvcnQgUHlfSU5DUkVGCisgCistY2RlZiBfaG9va190cF9mdW5jdGlvbnNfdHlwZShQeVR5cGVP YmplY3QgKnQsIG5ld2Z1bmMgdHBfbmV3LCBkZXN0cnVjdG9yIHRwX2RlYWxsb2MsIGJpbnQgdXNl R0MpIG5vZXhjZXB0OgorK2NkZWYgX2hvb2tfdHBfZnVuY3Rpb25zX3R5cGUoUHlUeXBlT2JqZWN0 ICp0LCBuZXdmdW5jIHRwX25ldywgZGVzdHJ1Y3RvciB0cF9kZWFsbG9jLCBiaW50IHVzZUdDKToK KyAgICAgIiIiCisgICAgIEluaXRpYWxpemUgdGhlIGZhc3QgaW50ZWdlciBjcmVhdGlvbiBmdW5j dGlvbnMuCisgICAgICIiIgorQEAgLTI1LDEyICsyNSwxMiBAQCBjZGVmIF9ob29rX3RwX2Z1bmN0 aW9uc190eXBlKFB5VHlwZU9iamVjdCAqdCwgbmV3ZnVuYyB0cF9uZXcsIGRlc3RydWN0b3IgdHBf ZGVhbAorICAgICB0LnRwX2RlYWxsb2MgPSB0cF9kZWFsbG9jCisgCisgCistY2RlZiBob29rX3Rw X2Z1bmN0aW9uc190eXBlKG9iamVjdCB0cCwgbmV3ZnVuYyB0cF9uZXcsIGRlc3RydWN0b3IgdHBf ZGVhbGxvYywgYmludCB1c2VHQykgbm9leGNlcHQ6CisrY2RlZiBob29rX3RwX2Z1bmN0aW9uc190 eXBlKG9iamVjdCB0cCwgbmV3ZnVuYyB0cF9uZXcsIGRlc3RydWN0b3IgdHBfZGVhbGxvYywgYmlu dCB1c2VHQyk6CisgICAgIGNkZWYgUHlUeXBlT2JqZWN0ICp0ID0gPFB5VHlwZU9iamVjdCAqPnRw CisgICAgIF9ob29rX3RwX2Z1bmN0aW9uc190eXBlKHQsIHRwX25ldywgdHBfZGVhbGxvYywgdXNl R0MpCisgCisgCistY2RlZiBob29rX3RwX2Z1bmN0aW9ucyhvYmplY3QgZ2xvYmFsX2R1bW15LCBu ZXdmdW5jIHRwX25ldywgZGVzdHJ1Y3RvciB0cF9kZWFsbG9jLCBiaW50IHVzZUdDKSBub2V4Y2Vw dDoKKytjZGVmIGhvb2tfdHBfZnVuY3Rpb25zKG9iamVjdCBnbG9iYWxfZHVtbXksIG5ld2Z1bmMg dHBfbmV3LCBkZXN0cnVjdG9yIHRwX2RlYWxsb2MsIGJpbnQgdXNlR0MpOgorICAgICAiIiIKKyAg ICAgSW5pdGlhbGl6ZSB0aGUgZmFzdCBpbnRlZ2VyIGNyZWF0aW9uIGZ1bmN0aW9ucy4KKyAgICAg IiIiCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWlzYy9iaW5hcnlfdHJlZS5weXggYi9zcmMvc2Fn ZS9taXNjL2JpbmFyeV90cmVlLnB5eAoraW5kZXggYTU2NmMxN2Q3NTIuLjg0NTFlMGIxZTA0IDEw MDY0NAorLS0tIGEvc3JjL3NhZ2UvbWlzYy9iaW5hcnlfdHJlZS5weXgKKysrKyBiL3NyYy9zYWdl L21pc2MvYmluYXJ5X3RyZWUucHl4CitAQCAtNDYsNyArNDYsNyBAQCBjZGVmIHZvaWQgYmluYXJ5 X3RyZWVfaW5zZXJ0KGJpbmFyeV90cmVlX25vZGUgKnNlbGYsIGludCBrZXksIG9iamVjdCB2YWx1 ZSkgbm9leAorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICBiaW5hcnlfdHJlZV9pbnNlcnQo c2VsZi5yaWdodCwga2V5LCB2YWx1ZSkKKyAKKy1jZGVmIG9iamVjdCBiaW5hcnlfdHJlZV9nZXQo YmluYXJ5X3RyZWVfbm9kZSAqc2VsZiwgaW50IGtleSkgbm9leGNlcHQ6CisrY2RlZiBvYmplY3Qg YmluYXJ5X3RyZWVfZ2V0KGJpbmFyeV90cmVlX25vZGUgKnNlbGYsIGludCBrZXkpOgorICAgICBp ZiBzZWxmLmtleSA9PSBrZXk6CisgICAgICAgICByZXR1cm4gPG9iamVjdD5zZWxmLnZhbHVlCisg ICAgIGVsaWYgc2VsZi5rZXkgPiBrZXk6CitAQCAtNjAsNyArNjAsNyBAQCBjZGVmIG9iamVjdCBi aW5hcnlfdHJlZV9nZXQoYmluYXJ5X3RyZWVfbm9kZSAqc2VsZiwgaW50IGtleSkgbm9leGNlcHQ6 CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJldHVybiBiaW5hcnlfdHJlZV9nZXQoc2Vs Zi5yaWdodCwga2V5KQorIAorLWNkZWYgb2JqZWN0IGJpbmFyeV90cmVlX2RlbGV0ZShiaW5hcnlf dHJlZV9ub2RlICpzZWxmLCBpbnQga2V5KSBub2V4Y2VwdDoKKytjZGVmIG9iamVjdCBiaW5hcnlf dHJlZV9kZWxldGUoYmluYXJ5X3RyZWVfbm9kZSAqc2VsZiwgaW50IGtleSk6CisgICAgIGNkZWYg b2JqZWN0IHQKKyAgICAgaWYgc2VsZi5rZXkgPiBrZXk6CisgICAgICAgICBpZiBzZWxmLmxlZnQg PT0gTlVMTDoKK0BAIC0xNTIsNyArMTUyLDcgQEAgTElTVF9QT1NUT1JERVIgPSA0CisgTElTVF9L RVlTID0gOAorIExJU1RfVkFMVUVTID0gMTYKKyAKKy1jZGVmIG9iamVjdCBiaW5hcnlfdHJlZV9s aXN0KGJpbmFyeV90cmVlX25vZGUgKmN1ciwgaW50IGJlaGF2aW9yKSBub2V4Y2VwdDoKKytjZGVm IG9iamVjdCBiaW5hcnlfdHJlZV9saXN0KGJpbmFyeV90cmVlX25vZGUgKmN1ciwgaW50IGJlaGF2 aW9yKToKKyAgICAgaWYgYmVoYXZpb3IgJiBMSVNUX0tFWVM6CisgICAgICAgICBpdGVtID0gaW50 KGN1ci5rZXkpCisgICAgIGVsc2U6CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWlzYy9jMy5weXgg Yi9zcmMvc2FnZS9taXNjL2MzLnB5eAoraW5kZXggYmFiMjk2NDExMTUuLmEzZjM3MzgwZmFmIDEw MDY0NAorLS0tIGEvc3JjL3NhZ2UvbWlzYy9jMy5weXgKKysrKyBiL3NyYy9zYWdlL21pc2MvYzMu cHl4CitAQCAtMjEsNyArMjEsNyBAQCBBVVRIT1I6CisgIyAqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisg CisgCistY3BkZWYgbGlzdCBDM19hbGdvcml0aG0ob2JqZWN0IHN0YXJ0LCBzdHIgYmFzZXMsIHN0 ciBhdHRyaWJ1dGUsIGJpbnQgcHJvcGVyKSBub2V4Y2VwdDoKKytjcGRlZiBsaXN0IEMzX2FsZ29y aXRobShvYmplY3Qgc3RhcnQsIHN0ciBiYXNlcywgc3RyIGF0dHJpYnV0ZSwgYmludCBwcm9wZXIp OgorICAgICAiIiIKKyAgICAgQW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIEMzIGFsZ29yaXRobS4K KyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9taXNjL2MzX2NvbnRyb2xsZWQucHhkIGIvc3JjL3Nh Z2UvbWlzYy9jM19jb250cm9sbGVkLnB4ZAoraW5kZXggNzM4M2IwY2Y5OTkuLmQ1ZGQ1YzIzMTgz IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWlzYy9jM19jb250cm9sbGVkLnB4ZAorKysrIGIvc3Jj L3NhZ2UvbWlzYy9jM19jb250cm9sbGVkLnB4ZAorQEAgLTEgKzEgQEAKKy1jcGRlZiB0dXBsZSBD M19zb3J0ZWRfbWVyZ2UobGlzdCBsaXN0cywga2V5PT8pIG5vZXhjZXB0CisrY3BkZWYgdHVwbGUg QzNfc29ydGVkX21lcmdlKGxpc3QgbGlzdHMsIGtleT0/KQorZGlmZiAtLWdpdCBhL3NyYy9zYWdl L21pc2MvYzNfY29udHJvbGxlZC5weXggYi9zcmMvc2FnZS9taXNjL2MzX2NvbnRyb2xsZWQucHl4 CitpbmRleCAyYjMzNDU2NWZkYy4uYmVmYWE3YjViMzIgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9t aXNjL2MzX2NvbnRyb2xsZWQucHl4CisrKysgYi9zcmMvc2FnZS9taXNjL2MzX2NvbnRyb2xsZWQu cHl4CitAQCAtNjU5LDcgKzY1OSw3IEBAIGRlZiBDM19tZXJnZShsaXN0IGxpc3RzKToKKyAgICAg ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJDYW5ub3QgbWVyZ2UgdGhlIGl0ZW1zICVzLiIlJywg Jy5qb2luKHJlcHIoaGVhZCkgZm9yIGhlYWQgaW4gaGVhZHMpKQorICAgICByZXR1cm4gb3V0Cisg CistY3BkZWYgaWRlbnRpdHkoeCkgbm9leGNlcHQ6CisrY3BkZWYgaWRlbnRpdHkoeCk6CisgICAg IHIiIiIKKyAgICAgRVhBTVBMRVM6OgorIAorQEAgLTY2OSw3ICs2NjksNyBAQCBjcGRlZiBpZGVu dGl0eSh4KSBub2V4Y2VwdDoKKyAgICAgIiIiCisgICAgIHJldHVybiB4CisgCistY3BkZWYgdHVw bGUgQzNfc29ydGVkX21lcmdlKGxpc3QgbGlzdHMsIGtleT1pZGVudGl0eSkgbm9leGNlcHQ6Cisr Y3BkZWYgdHVwbGUgQzNfc29ydGVkX21lcmdlKGxpc3QgbGlzdHMsIGtleT1pZGVudGl0eSk6Cisg ICAgIHIiIiIKKyAgICAgUmV0dXJuIHRoZSBzb3J0ZWQgaW5wdXQgbGlzdHMgbWVyZ2VkIHVzaW5n IHRoZSBgYEMzYGAgYWxnb3JpdGhtLCB3aXRoIGEgdHdpc3QuCisgCitkaWZmIC0tZ2l0IGEvc3Jj L3NhZ2UvbWlzYy9jYWNoZWZ1bmMucHhkIGIvc3JjL3NhZ2UvbWlzYy9jYWNoZWZ1bmMucHhkCitp bmRleCA1NTkwYzQxZjRkMy4uMWViZDZmMjVhOWQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9taXNj L2NhY2hlZnVuYy5weGQKKysrKyBiL3NyYy9zYWdlL21pc2MvY2FjaGVmdW5jLnB4ZAorQEAgLTEs NyArMSw3IEBACisgZnJvbSBzYWdlLm1pc2MuZnVuY3Rpb25fbWFuZ2xpbmcgY2ltcG9ydCBBcmd1 bWVudEZpeGVyCisgCistY3BkZWYgZGljdF9rZXkobykgbm9leGNlcHQKKy1jcGRlZiBjYWNoZV9r ZXkobykgbm9leGNlcHQKKytjcGRlZiBkaWN0X2tleShvKQorK2NwZGVmIGNhY2hlX2tleShvKQor IAorIGNkZWYgY2xhc3MgQ2FjaGVkRnVuY3Rpb24oKToKKyAgICAgY2RlZiBwdWJsaWMgc3RyIF9f bmFtZV9fCitAQCAtMTEsOCArMTEsOCBAQCBjZGVmIGNsYXNzIENhY2hlZEZ1bmN0aW9uKCk6Cisg ICAgIGNkZWYgcHVibGljIGNhY2hlICAjIG5vdCBhbHdheXMgb2YgdHlwZSA8ZGljdD4KKyAgICAg Y2RlZiBiaW50IGlzX2NsYXNzbWV0aG9kCisgICAgIGNkZWYgaW50IGFyZ2ZpeF9pbml0KHNlbGYp IGV4Y2VwdCAtMQorLSAgICBjZGVmIGdldF9rZXlfYXJnc19rd2RzKHNlbGYsIHR1cGxlIGFyZ3Ms IGRpY3Qga3dkcykgbm9leGNlcHQKKy0gICAgY2RlZiBmaXhfYXJnc19rd2RzKHNlbGYsIHR1cGxl IGFyZ3MsIGRpY3Qga3dkcykgbm9leGNlcHQKKysgICAgY2RlZiBnZXRfa2V5X2FyZ3Nfa3dkcyhz ZWxmLCB0dXBsZSBhcmdzLCBkaWN0IGt3ZHMpCisrICAgIGNkZWYgZml4X2FyZ3Nfa3dkcyhzZWxm LCB0dXBsZSBhcmdzLCBkaWN0IGt3ZHMpCisgICAgIGNkZWYgZW1wdHlfa2V5CisgICAgIGNkZWYg a2V5CisgICAgIGNkZWYgYmludCBkb19waWNrbGUKK0BAIC0yMyw3ICsyMyw3IEBAIGNkZWYgY2xh c3MgQ2FjaGVkTWV0aG9kKCk6CisgICAgIGNkZWYgcHVibGljIHN0ciBfX2NhY2hlZF9tb2R1bGVf XworICAgICBjZGVmIENhY2hlZEZ1bmN0aW9uIF9jYWNoZWRmdW5jCisgICAgIGNkZWYgUHlfc3Np emVfdCBuYXJncworLSAgICBjcGRlZiBfZ2V0X2luc3RhbmNlX2NhY2hlKHNlbGYsIGluc3QpIG5v ZXhjZXB0CisrICAgIGNwZGVmIF9nZXRfaW5zdGFuY2VfY2FjaGUoc2VsZiwgaW5zdCkKKyAKKyBj ZGVmIGNsYXNzIENhY2hlRGljdChkaWN0KToKKyAgICAgcGFzcworZGlmZiAtLWdpdCBhL3NyYy9z YWdlL21pc2MvY2FjaGVmdW5jLnB5eCBiL3NyYy9zYWdlL21pc2MvY2FjaGVmdW5jLnB5eAoraW5k ZXggZWQwZWY1MThkZGEuLjdiOTVjZTI2Nzc5IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWlzYy9j YWNoZWZ1bmMucHl4CisrKysgYi9zcmMvc2FnZS9taXNjL2NhY2hlZnVuYy5weXgKK0BAIC01MzUs NyArNTM1LDcgQEAgY2RlZiBjbGFzcyBOb25waWNrbGluZ0RpY3QoZGljdCk6CisgCisgY2RlZiB1 bmhhc2hhYmxlX2tleSA9IG9iamVjdCgpCisgCistY3BkZWYgaW5saW5lIGRpY3Rfa2V5KG8pIG5v ZXhjZXB0OgorK2NwZGVmIGlubGluZSBkaWN0X2tleShvKToKKyAgICAgIiIiCisgICAgIFJldHVy biBhIGtleSB0byBjYWNoZSBvYmplY3QgYGBvYGAgaW4gYSBkaWN0LgorIAorQEAgLTU2MCw3ICs1 NjAsNyBAQCBjcGRlZiBpbmxpbmUgZGljdF9rZXkobykgbm9leGNlcHQ6CisgICAgIHJldHVybiBv CisgCisgCistY3BkZWYgaW5saW5lIGNhY2hlX2tleShvKSBub2V4Y2VwdDoKKytjcGRlZiBpbmxp bmUgY2FjaGVfa2V5KG8pOgorICAgICByIiIiCisgICAgIEhlbHBlciBmdW5jdGlvbiB0byByZXR1 cm4gYSBoYXNoYWJsZSBrZXkgZm9yIGBgb2BgIHdoaWNoIGNhbiBiZSB1c2VkIGZvcgorICAgICBj YWNoaW5nLgorQEAgLTYwMCw3ICs2MDAsNyBAQCBjcGRlZiBpbmxpbmUgY2FjaGVfa2V5KG8pIG5v ZXhjZXB0OgorICAgICByZXR1cm4gbworIAorIAorLWNkZWYgY2FjaGVfa2V5X3VuaGFzaGFibGUo bykgbm9leGNlcHQ6CisrY2RlZiBjYWNoZV9rZXlfdW5oYXNoYWJsZShvKToKKyAgICAgIiIiCisg ICAgIFJldHVybiBhIGtleSBmb3IgY2FjaGluZyBhbiBpdGVtIHdoaWNoIGlzIHVuaGFzaGFibGUu CisgICAgICIiIgorQEAgLTc4Niw3ICs3ODYsNyBAQCBjZGVmIGNsYXNzIENhY2hlZEZ1bmN0aW9u KCk6CisgICAgIGRlZiBfX21vZHVsZV9fKHNlbGYpOgorICAgICAgICAgcmV0dXJuIHNlbGYuX19j YWNoZWRfbW9kdWxlX18KKyAKKy0gICAgY2RlZiBnZXRfa2V5X2FyZ3Nfa3dkcyhzZWxmLCB0dXBs ZSBhcmdzLCBkaWN0IGt3ZHMpIG5vZXhjZXB0OgorKyAgICBjZGVmIGdldF9rZXlfYXJnc19rd2Rz KHNlbGYsIHR1cGxlIGFyZ3MsIGRpY3Qga3dkcyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJl dHVybiB0aGUga2V5IGluIHRoZSBjYWNoZSB0byBiZSB1c2VkIHdoZW4gYGBhcmdzYGAgYW5kCisg ICAgICAgICBgYGt3ZHNgYCBhcmUgcGFzc2VkIGluIGFzIHBhcmFtZXRlcnMuCitAQCAtODE0LDcg KzgxNCw3IEBAIGNkZWYgY2xhc3MgQ2FjaGVkRnVuY3Rpb24oKToKKyAgICAgICAgIHNlbGYuX2Fy Z3VtZW50X2ZpeGVyID0gQXJndW1lbnRGaXhlcihzZWxmLmYsCisgICAgICAgICAgICAgICAgIGNs YXNzbWV0aG9kPXNlbGYuaXNfY2xhc3NtZXRob2QpCisgCistICAgIGNkZWYgZml4X2FyZ3Nfa3dk cyhzZWxmLCB0dXBsZSBhcmdzLCBkaWN0IGt3ZHMpIG5vZXhjZXB0OgorKyAgICBjZGVmIGZpeF9h cmdzX2t3ZHMoc2VsZiwgdHVwbGUgYXJncywgZGljdCBrd2RzKToKKyAgICAgICAgIHIiIiIKKyAg ICAgICAgIE5vcm1hbGl6ZSBwYXJhbWV0ZXJzIHRvIG9idGFpbiBhIGtleSBmb3IgdGhlIGNhY2hl LgorIAorQEAgLTE4NDEsNyArMTg0MSw3IEBAIGNkZWYgY2xhc3MgQ2FjaGVkTWV0aG9kQ2FsbGVy KENhY2hlZEZ1bmN0aW9uKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuZihz ZWxmLl9pbnN0YW5jZSwgKmFyZ3MsICoqa3dkcykKKyAKKy0gICAgY2RlZiBmaXhfYXJnc19rd2Rz KHNlbGYsIHR1cGxlIGFyZ3MsIGRpY3Qga3dkcykgbm9leGNlcHQ6CisrICAgIGNkZWYgZml4X2Fy Z3Nfa3dkcyhzZWxmLCB0dXBsZSBhcmdzLCBkaWN0IGt3ZHMpOgorICAgICAgICAgciIiIgorICAg ICAgICAgTm9ybWFsaXplIHBhcmFtZXRlcnMgdG8gb2J0YWluIGEga2V5IGZvciB0aGUgY2FjaGUu CisgCitAQCAtMjUwNSw3ICsyNTA1LDcgQEAgY2RlZiBjbGFzcyBHbG9iYWxseUNhY2hlZE1ldGhv ZENhbGxlcihDYWNoZWRNZXRob2RDYWxsZXIpOgorICAgICBUaGUgb25seSBkaWZmZXJlbmNlIGlz IHRoYXQgdGhlIGluc3RhbmNlIGlzIHVzZWQgYXMgcGFydCBvZiB0aGUKKyAgICAga2V5LgorICAg ICAiIiIKKy0gICAgY2RlZiBnZXRfa2V5X2FyZ3Nfa3dkcyhzZWxmLCB0dXBsZSBhcmdzLCBkaWN0 IGt3ZHMpIG5vZXhjZXB0OgorKyAgICBjZGVmIGdldF9rZXlfYXJnc19rd2RzKHNlbGYsIHR1cGxl IGFyZ3MsIGRpY3Qga3dkcyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUga2V5 IGluIHRoZSBjYWNoZSB0byBiZSB1c2VkIHdoZW4gYGBhcmdzYGAgYW5kCisgICAgICAgICBgYGt3 ZHNgYCBhcmUgcGFzc2VkIGluIGFzIHBhcmFtZXRlcnMuCitAQCAtMjc1MCw3ICsyNzUwLDcgQEAg Y2RlZiBjbGFzcyBDYWNoZWRNZXRob2QoKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJu IHNlbGYuX19nZXRfXyhpbnN0KSgqYXJncywgKiprd2RzKQorIAorLSAgICBjcGRlZiBfZ2V0X2lu c3RhbmNlX2NhY2hlKHNlbGYsIGluc3QpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZ2V0X2luc3Rh bmNlX2NhY2hlKHNlbGYsIGluc3QpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhl IGNhY2hlIGRpY3Rpb25hcnkuCisgCitAQCAtMzIzOCw3ICszMjM4LDcgQEAgY2RlZiBjbGFzcyBD YWNoZWRJblBhcmVudE1ldGhvZChDYWNoZWRNZXRob2QpOgorICAgICAgICAgc2VsZi5fY2FjaGVf bmFtZSA9ICdfY2FjaGVfXycgKyAnZWxlbWVudF8nICsgKG5hbWUgb3IgZi5fX25hbWVfXykKKyAg ICAgICAgIHNlbGYuX2NhY2hlZGZ1bmMgPSBDYWNoZWRGdW5jdGlvbihmLCBjbGFzc21ldGhvZD1U cnVlLCBuYW1lPW5hbWUsIGtleT1rZXksIGRvX3BpY2tsZT1kb19waWNrbGUpCisgCistICAgIGNw ZGVmIF9nZXRfaW5zdGFuY2VfY2FjaGUoc2VsZiwgaW5zdCkgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9nZXRfaW5zdGFuY2VfY2FjaGUoc2VsZiwgaW5zdCk6CisgICAgICAgICAiIiIKKyAgICAgICAg IFJldHVybiB0aGUgY2FjaGUgZGljdGlvbmFyeSwgd2hpY2ggaXMgc3RvcmVkIGluIHRoZSBwYXJl bnQuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWlzYy9jeXRob24ucHkgYi9zcmMvc2FnZS9t aXNjL2N5dGhvbi5weQoraW5kZXggNzU5MDE1OGIyNzkuLjkzY2U5OTRjNTM3IDEwMDY0NAorLS0t IGEvc3JjL3NhZ2UvbWlzYy9jeXRob24ucHkKKysrKyBiL3NyYy9zYWdlL21pc2MvY3l0aG9uLnB5 CitAQCAtMjM2LDcgKzIzNiw3IEBAIGRlZiBjeXRob24oZmlsZW5hbWUsIHZlcmJvc2U9MCwgY29t cGlsZV9tZXNzYWdlPUZhbHNlLAorICAgICAgICAgLi4uCisgICAgICAgICBSdW50aW1lRXJyb3I6 IEVycm9yIGNvbXBpbGluZyBDeXRob24gZmlsZToKKyAgICAgICAgIC4uLgorLSAgICAgICAgLi4u OiAnc2FnZS9taXNjLnB4ZCcgbm90IGZvdW5kLi4uCisrICAgICAgICAuLi46ICdzYWdlL21pc2Mu cHhkJyBub3QgZm91bmQKKyAgICAgIiIiCisgICAgIGlmIG5vdCBmaWxlbmFtZS5lbmRzd2l0aCgn cHl4Jyk6CisgICAgICAgICBwcmludCgiV2FybmluZzogZmlsZSAoPXt9KSBzaG91bGQgaGF2ZSBl eHRlbnNpb24gLnB5eCIuZm9ybWF0KGZpbGVuYW1lKSwgZmlsZT1zeXMuc3RkZXJyKQorQEAgLTM4 MiwxMiArMzgyLDYgQEAgZGVmIGN5dGhvbihmaWxlbmFtZSwgdmVyYm9zZT0wLCBjb21waWxlX21l c3NhZ2U9RmFsc2UsCisgICAgICAgICAgICAgIlBsYWNpbmcgaXQgYmVmb3JlICdleGNlcHQnIG9y ICdub2V4Y2VwdCcgd2lsbCBiZSBkaXNhbGxvd2VkIGluIGEgZnV0dXJlIHZlcnNpb24gb2YgQ3l0 aG9uLlxuIiwKKyAgICAgICAgICAgICAiIiwgY3l0aG9uX21lc3NhZ2VzLCAwLCByZS5NVUxUSUxJ TkUpCisgCistICAgICAgICAjIHdvcmthcm91bmQgZm9yIGh0dHBzOi8vZ2l0aHViLmNvbS9zYWdl bWF0aC9zYWdlL2lzc3Vlcy8zNzU2MAorLSAgICAgICAgIyB0cmlnZ2VyZWQgYnkgQ3l0aG9uIDMu MC45CistICAgICAgICBjeXRob25fbWVzc2FnZXMgPSByZS5zdWIoCistICAgICAgICAgICAgIl53 YXJuaW5nOiAuKm5vZXhjZXB0IGNsYXVzZSBpcyBpZ25vcmVkIGZvciBmdW5jdGlvbiByZXR1cm5p bmcgUHl0aG9uIG9iamVjdFxuIiwKKy0gICAgICAgICAgICAiIiwgY3l0aG9uX21lc3NhZ2VzLCAw LCByZS5NVUxUSUxJTkUpCistCisgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKGN5dGhvbl9tZXNz YWdlcykKKyAgICAgICAgIHN5cy5zdGRlcnIuZmx1c2goKQorIAorZGlmZiAtLWdpdCBhL3NyYy9z YWdlL21pc2MvZnVuY3Rpb25fbWFuZ2xpbmcucHhkIGIvc3JjL3NhZ2UvbWlzYy9mdW5jdGlvbl9t YW5nbGluZy5weGQKK2luZGV4IDc0ZjFhNmUyMjgyLi4wMTYwNDA4OGFkYyAxMDA2NDQKKy0tLSBh L3NyYy9zYWdlL21pc2MvZnVuY3Rpb25fbWFuZ2xpbmcucHhkCisrKysgYi9zcmMvc2FnZS9taXNj L2Z1bmN0aW9uX21hbmdsaW5nLnB4ZAorQEAgLTcsNCArNyw0IEBAIGNkZWYgY2xhc3MgQXJndW1l bnRGaXhlcjoKKyAgICAgY2RlZiBkaWN0IF9kZWZhdWx0cworICAgICBjZGVmIHB1YmxpYyB0dXBs ZSBfZGVmYXVsdF90dXBsZQorIAorLSAgICBjZGVmIGZpeF90b19wb3NfYXJnc19rd2RzKHNlbGYs IHR1cGxlIGFyZ3MsIGRpY3Qga3dhcmdzKSBub2V4Y2VwdAorKyAgICBjZGVmIGZpeF90b19wb3Nf YXJnc19rd2RzKHNlbGYsIHR1cGxlIGFyZ3MsIGRpY3Qga3dhcmdzKQorZGlmZiAtLWdpdCBhL3Ny Yy9zYWdlL21pc2MvZnVuY3Rpb25fbWFuZ2xpbmcucHl4IGIvc3JjL3NhZ2UvbWlzYy9mdW5jdGlv bl9tYW5nbGluZy5weXgKK2luZGV4IGM2MTRmOTdlOWRmLi4xMzkyZmM0ZjJmZCAxMDA2NDQKKy0t LSBhL3NyYy9zYWdlL21pc2MvZnVuY3Rpb25fbWFuZ2xpbmcucHl4CisrKysgYi9zcmMvc2FnZS9t aXNjL2Z1bmN0aW9uX21hbmdsaW5nLnB5eAorQEAgLTI4NCw3ICsyODQsNyBAQCBjZGVmIGNsYXNz IEFyZ3VtZW50Rml4ZXI6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLmZpeF90 b19wb3NfYXJnc19rd2RzKGFyZ3MsIGt3ZHMpCisgCistICAgIGNkZWYgZml4X3RvX3Bvc19hcmdz X2t3ZHMoc2VsZiwgdHVwbGUgYXJncywgZGljdCBrd2RzKSBub2V4Y2VwdDoKKysgICAgY2RlZiBm aXhfdG9fcG9zX2FyZ3Nfa3dkcyhzZWxmLCB0dXBsZSBhcmdzLCBkaWN0IGt3ZHMpOgorICAgICAg ICAgIiIiCisgICAgICAgICBGYXN0IEN5dGhvbiBpbXBsZW1lbnRhdGlvbiBvZiA6bWV0aDpgZml4 X3RvX3Bvc2AuCisgICAgICAgICAiIiIKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9taXNjL2xhenlf aW1wb3J0LnB5eCBiL3NyYy9zYWdlL21pc2MvbGF6eV9pbXBvcnQucHl4CitpbmRleCA3MGE5MTQ1 MjhiOS4uNTI3ODY5M2Q2NTkgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9taXNjL2xhenlfaW1wb3J0 LnB5eAorKysrIGIvc3JjL3NhZ2UvbWlzYy9sYXp5X2ltcG9ydC5weXgKK0BAIC03OSw3ICs3OSw3 IEBAIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgRmVhdHVyZU5vdFByZXNlbnRFcnJvciA9ICgp CisgCisgCistY2RlZiBpbmxpbmUgb2JqKHgpIG5vZXhjZXB0OgorK2NkZWYgaW5saW5lIG9iaih4 KToKKyAgICAgaWYgdHlwZSh4KSBpcyBMYXp5SW1wb3J0OgorICAgICAgICAgcmV0dXJuICg8TGF6 eUltcG9ydD54KS5nZXRfb2JqZWN0KCkKKyAgICAgZWxzZToKK0BAIC05Miw3ICs5Miw3IEBAIGNk ZWYgYmludCBzdGFydHVwX2d1YXJkID0gVHJ1ZQorIGNkZWYgYmludCBmaW5pc2hfc3RhcnR1cF9j YWxsZWQgPSBGYWxzZQorIAorIAorLWNwZGVmIGZpbmlzaF9zdGFydHVwKCkgbm9leGNlcHQ6Cisr Y3BkZWYgZmluaXNoX3N0YXJ0dXAoKToKKyAgICAgIiIiCisgICAgIEZpbmlzaCB0aGUgc3RhcnR1 cCBwaGFzZS4KKyAKK0BAIC0xMTMsNyArMTEzLDcgQEAgY3BkZWYgZmluaXNoX3N0YXJ0dXAoKSBu b2V4Y2VwdDoKKyAgICAgZmluaXNoX3N0YXJ0dXBfY2FsbGVkID0gVHJ1ZQorIAorIAorLWNwZGVm IGVuc3VyZV9zdGFydHVwX2ZpbmlzaGVkKCkgbm9leGNlcHQ6CisrY3BkZWYgZW5zdXJlX3N0YXJ0 dXBfZmluaXNoZWQoKToKKyAgICAgIiIiCisgICAgIE1ha2Ugc3VyZSB0aGF0IHRoZSBzdGFydHVw IHBoYXNlIGlzIGZpbmlzaGVkLgorIAorQEAgLTE0Nyw3ICsxNDcsNyBAQCBjcGRlZiBiaW50IGlz X2R1cmluZ19zdGFydHVwKCkgbm9leGNlcHQ6CisgICAgIHJldHVybiBzdGFydHVwX2d1YXJkCisg CisgCistY3BkZWYgdGVzdF9mYWtlX3N0YXJ0dXAoKSBub2V4Y2VwdDoKKytjcGRlZiB0ZXN0X2Zh a2Vfc3RhcnR1cCgpOgorICAgICAiIiIKKyAgICAgRm9yIHRlc3RpbmcgcHVycG9zZXMgb25seS4K KyAKK0BAIC0yMTYsNyArMjE2LDcgQEAgY2RlZiBjbGFzcyBMYXp5SW1wb3J0KCk6CisgICAgICAg ICBzZWxmLl9kZXByZWNhdGlvbiA9IGRlcHJlY2F0aW9uCisgICAgICAgICBzZWxmLl9mZWF0dXJl ID0gZmVhdHVyZQorIAorLSAgICBjZGVmIGlubGluZSBnZXRfb2JqZWN0KHNlbGYpIG5vZXhjZXB0 OgorKyAgICBjZGVmIGlubGluZSBnZXRfb2JqZWN0KHNlbGYpOgorICAgICAgICAgIiIiCisgICAg ICAgICBGYXN0ZXIsIEN5dGhvbi1vbmx5IHBhcnRpYWxseS1pbmxpbmVkIHZlcnNpb24gb2YgYGBf Z2V0X29iamVjdGBgLgorICAgICAgICAgIiIiCitAQCAtMjI0LDcgKzIyNCw3IEBAIGNkZWYgY2xh c3MgTGF6eUltcG9ydCgpOgorICAgICAgICAgICAgIHJldHVybiBzZWxmLl9vYmplY3QKKyAgICAg ICAgIHJldHVybiBzZWxmLl9nZXRfb2JqZWN0KCkKKyAKKy0gICAgY3BkZWYgX2dldF9vYmplY3Qo c2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9nZXRfb2JqZWN0KHNlbGYpOgorICAgICAgICAg IiIiCisgICAgICAgICBSZXR1cm4gdGhlIHdyYXBwZWQgb2JqZWN0LCBpbXBvcnRpbmcgaXQgaWYg bmVjZXNzYXJ5LgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21pc2MvbGF6eV9saXN0LnB4ZCBi L3NyYy9zYWdlL21pc2MvbGF6eV9saXN0LnB4ZAoraW5kZXggZDUxMmNmYjY5ZjQuLmY4YjUxYjQ3 ODM1IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWlzYy9sYXp5X2xpc3QucHhkCisrKysgYi9zcmMv c2FnZS9taXNjL2xhenlfbGlzdC5weGQKK0BAIC0zLDEwICszLDEwIEBAIGNkZWYgY2xhc3MgbGF6 eV9saXN0X2dlbmVyaWMoKToKKyAgICAgY2RlZiBsYXp5X2xpc3RfZ2VuZXJpYyBtYXN0ZXIgICAj IGEgcmVmZXJlbmNlIGlmIHNlbGYgaXMgYSBzbGljZQorICAgICBjZGVmIFB5X3NzaXplX3Qgc3Rh cnQsIHN0b3AsIHN0ZXAKKyAKKy0gICAgY3BkZWYgZ2V0KHNlbGYsIFB5X3NzaXplX3QgaSkgbm9l eGNlcHQKKysgICAgY3BkZWYgZ2V0KHNlbGYsIFB5X3NzaXplX3QgaSkKKyAgICAgY3BkZWYgaW50 IF9maXQoc2VsZiwgUHlfc3NpemVfdCBuKSBleGNlcHQgLTEKKyAgICAgY3BkZWYgaW50IF91cGRh dGVfY2FjaGVfdXBfdG8oc2VsZiwgUHlfc3NpemVfdCBpKSBleGNlcHQgLTEKKy0gICAgY3BkZWYg bGlzdCBfZ2V0X2NhY2hlXyhzZWxmKSBub2V4Y2VwdAorKyAgICBjcGRlZiBsaXN0IF9nZXRfY2Fj aGVfKHNlbGYpCisgCisgY2RlZiBjbGFzcyBsYXp5X2xpc3RfZnJvbV9pdGVyYXRvcihsYXp5X2xp c3RfZ2VuZXJpYyk6CisgICAgIGNkZWYgb2JqZWN0IGl0ZXJhdG9yCitkaWZmIC0tZ2l0IGEvc3Jj L3NhZ2UvbWlzYy9sYXp5X2xpc3QucHl4IGIvc3JjL3NhZ2UvbWlzYy9sYXp5X2xpc3QucHl4Citp bmRleCA3MTg0N2U1NjZhZC4uY2Q3NTA5MzM4NjAgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9taXNj L2xhenlfbGlzdC5weXgKKysrKyBiL3NyYy9zYWdlL21pc2MvbGF6eV9saXN0LnB5eAorQEAgLTYx MCw3ICs2MTAsNyBAQCBjZGVmIGNsYXNzIGxhenlfbGlzdF9nZW5lcmljKCk6CisgICAgICAgICAg ICAgcmV0dXJuIDEKKyAgICAgICAgIHJldHVybiAwCisgCistICAgIGNwZGVmIGdldChzZWxmLCBQ eV9zc2l6ZV90IGkpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBnZXQoc2VsZiwgUHlfc3NpemVfdCBp KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgZWxlbWVudCBhdCBwb3NpdGlv biBgYGlgYC4KKyAKK0BAIC04ODAsNyArODgwLDcgQEAgY2RlZiBjbGFzcyBsYXp5X2xpc3RfZ2Vu ZXJpYygpOgorICAgICAgICAgICAgIHNlbGYuY2FjaGUuZXh0ZW5kKGwpCisgICAgICAgICByZXR1 cm4gMAorIAorLSAgICBjcGRlZiBsaXN0IF9nZXRfY2FjaGVfKHNlbGYpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBsaXN0IF9nZXRfY2FjaGVfKHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAg UmV0dXJuIHRoZSBpbnRlcm5hbCBjYWNoZS4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9taXNj L2xhenlfc3RyaW5nLnB4ZCBiL3NyYy9zYWdlL21pc2MvbGF6eV9zdHJpbmcucHhkCitpbmRleCBk NzRhMTg3NjNhMi4uN2Y3MzU0ZTAzY2EgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9taXNjL2xhenlf c3RyaW5nLnB4ZAorKysrIGIvc3JjL3NhZ2UvbWlzYy9sYXp5X3N0cmluZy5weGQKK0BAIC0yLDUg KzIsNSBAQCBjZGVmIGNsYXNzIF9MYXp5U3RyaW5nKCk6CisgICAgIGNkZWYgZnVuYworICAgICBj ZGVmIGFyZ3MKKyAgICAgY2RlZiBrd2FyZ3MKKy0gICAgY2RlZiB2YWwoc2VsZikgbm9leGNlcHQK Ky0gICAgY3BkZWYgdXBkYXRlX2xhenlfc3RyaW5nKHNlbGYsIGFyZ3MsIGt3ZHMpIG5vZXhjZXB0 CisrICAgIGNkZWYgdmFsKHNlbGYpCisrICAgIGNwZGVmIHVwZGF0ZV9sYXp5X3N0cmluZyhzZWxm LCBhcmdzLCBrd2RzKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21pc2MvbGF6eV9zdHJpbmcucHl4 IGIvc3JjL3NhZ2UvbWlzYy9sYXp5X3N0cmluZy5weXgKK2luZGV4IDA0MDk5OWM4NGQ2Li5hMGVm YmIxODZiZiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21pc2MvbGF6eV9zdHJpbmcucHl4CisrKysg Yi9zcmMvc2FnZS9taXNjL2xhenlfc3RyaW5nLnB5eAorQEAgLTIwMyw3ICsyMDMsNyBAQCBjZGVm IGNsYXNzIF9MYXp5U3RyaW5nKCk6CisgICAgICAgICBzZWxmLmFyZ3MgPSA8dHVwbGU/PmFyZ3MK KyAgICAgICAgIHNlbGYua3dhcmdzID0gPGRpY3Q/Pmt3YXJncworIAorLSAgICBjZGVmIHZhbChz ZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiB2YWwoc2VsZik6CisgICAgICAgICBjZGVmIGYgPSBz ZWxmLmZ1bmMKKyAgICAgICAgIGlmIGlzaW5zdGFuY2UoZiwgc3RyKToKKyAgICAgICAgICAgICBy ZXR1cm4gZiAlIHNlbGYuYXJncworQEAgLTUwMyw3ICs1MDMsNyBAQCBjZGVmIGNsYXNzIF9MYXp5 U3RyaW5nKCk6CisgICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAgIHJldHVy biAnPCVzIGJyb2tlbj4nICUgc2VsZi5fX2NsYXNzX18uX19uYW1lX18KKyAKKy0gICAgY3BkZWYg dXBkYXRlX2xhenlfc3RyaW5nKHNlbGYsIGFyZ3MsIGt3ZHMpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiB1cGRhdGVfbGF6eV9zdHJpbmcoc2VsZiwgYXJncywga3dkcyk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIENoYW5nZSB0aGlzIGxhenkgc3RyaW5nIGluLXBsYWNlLgorIAorZGlmZiAtLWdpdCBh L3NyYy9zYWdlL21pc2MvbWlzY19jLnB4ZCBiL3NyYy9zYWdlL21pc2MvbWlzY19jLnB4ZAoraW5k ZXggMTdlZjQ2NzkxMWEuLmFjYjM2YWI2ZDk5IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWlzYy9t aXNjX2MucHhkCisrKysgYi9zcmMvc2FnZS9taXNjL21pc2NfYy5weGQKK0BAIC0xLDIgKzEsMiBA QAorIAorLWNwZGVmIGxpc3Qgbm9ybWFsaXplX2luZGV4KG9iamVjdCBrZXksIGludCBzaXplKSBu b2V4Y2VwdAorK2NwZGVmIGxpc3Qgbm9ybWFsaXplX2luZGV4KG9iamVjdCBrZXksIGludCBzaXpl KQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21pc2MvbWlzY19jLnB5eCBiL3NyYy9zYWdlL21pc2Mv bWlzY19jLnB5eAoraW5kZXggZTVjZWIzZTFhZDMuLjU2ZTdhMzIzMjU4IDEwMDY0NAorLS0tIGEv c3JjL3NhZ2UvbWlzYy9taXNjX2MucHl4CisrKysgYi9zcmMvc2FnZS9taXNjL21pc2NfYy5weXgK K0BAIC0xNDcsNyArMTQ3LDcgQEAgZGVmIHByb2QoeCwgej1Ob25lLCBQeV9zc2l6ZV90IHJlY3Vy c2lvbl9jdXRvZmY9NSk6CisgICAgIHJldHVybiBwcm9kCisgCisgCistY2RlZiBiYWxhbmNlZF9s aXN0X3Byb2QoTCwgUHlfc3NpemVfdCBvZmZzZXQsIFB5X3NzaXplX3QgY291bnQsIFB5X3NzaXpl X3QgY3V0b2ZmKSBub2V4Y2VwdDoKKytjZGVmIGJhbGFuY2VkX2xpc3RfcHJvZChMLCBQeV9zc2l6 ZV90IG9mZnNldCwgUHlfc3NpemVfdCBjb3VudCwgUHlfc3NpemVfdCBjdXRvZmYpOgorICAgICAi IiIKKyAgICAgSU5QVVQ6CisgCitAQCAtMTgyLDcgKzE4Miw3IEBAIGNkZWYgYmFsYW5jZWRfbGlz dF9wcm9kKEwsIFB5X3NzaXplX3Qgb2Zmc2V0LCBQeV9zc2l6ZV90IGNvdW50LCBQeV9zc2l6ZV90 IGN1dG9mCisgICAgICAgICByZXR1cm4gYmFsYW5jZWRfbGlzdF9wcm9kKEwsIG9mZnNldCwgaywg Y3V0b2ZmKSAqIGJhbGFuY2VkX2xpc3RfcHJvZChMLCBvZmZzZXQgKyBrLCBjb3VudCAtIGssIGN1 dG9mZikKKyAKKyAKKy1jcGRlZiBpdGVyYXRvcl9wcm9kKEwsIHo9Tm9uZSkgbm9leGNlcHQ6Cisr Y3BkZWYgaXRlcmF0b3JfcHJvZChMLCB6PU5vbmUpOgorICAgICAiIiIKKyAgICAgQXR0ZW1wdCB0 byBkbyBhIGJhbGFuY2VkIHByb2R1Y3Qgb2YgYW4gYXJiaXRyYXJ5IGFuZCB1bmtub3duIGxlbmd0 aAorICAgICBzZXF1ZW5jZSAoc3VjaCBhcyBhIGdlbmVyYXRvcikuIEludGVybWVkaWF0ZSBtdWx0 aXBsaWNhdGlvbnMgYXJlIGFsd2F5cworQEAgLTM5Nyw3ICszOTcsNyBAQCBkZWYgYmFsYW5jZWRf c3VtKHgsIHo9Tm9uZSwgUHlfc3NpemVfdCByZWN1cnNpb25fY3V0b2ZmPTUpOgorIAorICAgICBy ZXR1cm4gc3VtCisgCistY2RlZiBiYWxhbmNlZF9saXN0X3N1bShMLCBQeV9zc2l6ZV90IG9mZnNl dCwgUHlfc3NpemVfdCBjb3VudCwgUHlfc3NpemVfdCBjdXRvZmYpIG5vZXhjZXB0OgorK2NkZWYg YmFsYW5jZWRfbGlzdF9zdW0oTCwgUHlfc3NpemVfdCBvZmZzZXQsIFB5X3NzaXplX3QgY291bnQs IFB5X3NzaXplX3QgY3V0b2ZmKToKKyAgICAgIiIiCisgICAgIElOUFVUOgorIAorQEAgLTQzMiw3 ICs0MzIsNyBAQCBjZGVmIGJhbGFuY2VkX2xpc3Rfc3VtKEwsIFB5X3NzaXplX3Qgb2Zmc2V0LCBQ eV9zc2l6ZV90IGNvdW50LCBQeV9zc2l6ZV90IGN1dG9mZgorICAgICAgICAgcmV0dXJuIGJhbGFu Y2VkX2xpc3Rfc3VtKEwsIG9mZnNldCwgaywgY3V0b2ZmKSArIGJhbGFuY2VkX2xpc3Rfc3VtKEws IG9mZnNldCArIGssIGNvdW50IC0gaywgY3V0b2ZmKQorIAorIAorLWNwZGVmIGxpc3Qgbm9ybWFs aXplX2luZGV4KG9iamVjdCBrZXksIGludCBzaXplKSBub2V4Y2VwdDoKKytjcGRlZiBsaXN0IG5v cm1hbGl6ZV9pbmRleChvYmplY3Qga2V5LCBpbnQgc2l6ZSk6CisgICAgICIiIgorICAgICBOb3Jt YWxpemUgYW4gaW5kZXgga2V5IGFuZCByZXR1cm4gYSB2YWxpZCBpbmRleCBvciBsaXN0IG9mIGlu ZGljZXMKKyAgICAgd2l0aGluIHRoZSByYW5nZSgwLCBzaXplKS4KK2RpZmYgLS1naXQgYS9zcmMv c2FnZS9taXNjL25lc3RlZF9jbGFzcy5weXggYi9zcmMvc2FnZS9taXNjL25lc3RlZF9jbGFzcy5w eXgKK2luZGV4IGEyNjI1YzAzOWVmLi45N2VkMzEyYjA4YyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdl L21pc2MvbmVzdGVkX2NsYXNzLnB5eAorKysrIGIvc3JjL3NhZ2UvbWlzYy9uZXN0ZWRfY2xhc3Mu cHl4CitAQCAtOTMsNyArOTMsNyBAQCBfX2FsbF9fID0gWydtb2RpZnlfZm9yX25lc3RlZF9waWNr bGUnLCAnbmVzdGVkX3BpY2tsZScsCisgICAgICAgICAgICAjLCAnU3ViQ2xhc3MnLCAnQ29waWVk Q2xhc3MnLCAnQTEnCisgICAgICAgICAgICBdCisgCistY3BkZWYgbW9kaWZ5X2Zvcl9uZXN0ZWRf cGlja2xlKGNscywgc3RyIG5hbWVfcHJlZml4LCBtb2R1bGUsIGZpcnN0X3J1bj1UcnVlKSBub2V4 Y2VwdDoKKytjcGRlZiBtb2RpZnlfZm9yX25lc3RlZF9waWNrbGUoY2xzLCBzdHIgbmFtZV9wcmVm aXgsIG1vZHVsZSwgZmlyc3RfcnVuPVRydWUpOgorICAgICByIiIiCisgICAgIE1vZGlmeSB0aGUg c3ViY2xhc3NlcyBvZiB0aGUgZ2l2ZW4gY2xhc3MgdG8gYmUgcGlja2xhYmxlLCBieQorICAgICBn aXZpbmcgdGhlbSBhIG1hbmdsZWQgbmFtZSBhbmQgcHV0dGluZyB0aGUgbWFuZ2xlZCBuYW1lIGlu IHRoZQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21pc2MvcGFyc2VyLnB5eCBiL3NyYy9zYWdlL21p c2MvcGFyc2VyLnB5eAoraW5kZXggMTQ4OTZjZTc2M2MuLmEwMjhlOTUzZjkwIDEwMDY0NAorLS0t IGEvc3JjL3NhZ2UvbWlzYy9wYXJzZXIucHl4CisrKysgYi9zcmMvc2FnZS9taXNjL3BhcnNlci5w eXgKK0BAIC0yMDMsNyArMjAzLDcgQEAgY2RlZiBjbGFzcyBUb2tlbml6ZXI6CisgICAgICAgICAg ICAgdG9rZW4gPSBzZWxmLm5leHQoKQorICAgICAgICAgcmV0dXJuIGFsbAorIAorLSAgICBjcGRl ZiByZXNldChzZWxmLCBpbnQgcG9zID0gMCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHJlc2V0KHNl bGYsIGludCBwb3MgPSAwKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmVzZXQgdGhlIHRva2Vu aXplciB0byBhIGdpdmVuIHBvc2l0aW9uLgorIAorQEAgLTQyMCw3ICs0MjAsNyBAQCBjZGVmIGNs YXNzIFRva2VuaXplcjoKKyAgICAgICAgICAgICBzZWxmLnBvcyA9IHNlbGYubGFzdF9wb3MKKyAg ICAgICAgICAgICBzZWxmLnRva2VuID0gMAorIAorLSAgICBjcGRlZiBsYXN0X3Rva2VuX3N0cmlu ZyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgbGFzdF90b2tlbl9zdHJpbmcoc2VsZik6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYWN0dWFsIGNvbnRlbnRzIG9mIHRoZSBs YXN0IHRva2VuLgorIAorQEAgLTUzMCw3ICs1MzAsNyBAQCBjZGVmIGNsYXNzIFBhcnNlcjoKKyAg ICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuY2FsbGFibGVfY29uc3RydWN0b3IKKyAK Ky0gICAgY3BkZWYgcGFyc2Uoc2VsZiwgcywgYmludCBhY2NlcHRfZXFuPVRydWUpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBwYXJzZShzZWxmLCBzLCBiaW50IGFjY2VwdF9lcW49VHJ1ZSk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIFBhcnNlIHRoZSBnaXZlbiBzdHJpbmcuCisgCitAQCAtNTUyLDcg KzU1Miw3IEBAIGNkZWYgY2xhc3MgUGFyc2VyOgorICAgICAgICAgICAgIHNlbGYucGFyc2VfZXJy b3IodG9rZW5zKQorICAgICAgICAgcmV0dXJuIGV4cHIKKyAKKy0gICAgY3BkZWYgcGFyc2VfZXhw cmVzc2lvbihzZWxmLCBzKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcGFyc2VfZXhwcmVzc2lvbihz ZWxmLCBzKToKKyAgICAgICAgICIiIgorICAgICAgICAgUGFyc2UgYW4gZXhwcmVzc2lvbi4KKyAK K0BAIC01NjksNyArNTY5LDcgQEAgY2RlZiBjbGFzcyBQYXJzZXI6CisgICAgICAgICAgICAgc2Vs Zi5wYXJzZV9lcnJvcih0b2tlbnMpCisgICAgICAgICByZXR1cm4gZXhwcgorIAorLSAgICBjcGRl ZiBwYXJzZV9zZXF1ZW5jZShzZWxmLCBzKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcGFyc2Vfc2Vx dWVuY2Uoc2VsZiwgcyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFBhcnNlIGEgKHBvc3NpYmx5 IG5lc3RlZCkgc2V0IG9mIGxpc3RzIGFuZCB0dXBsZXMuCisgCitAQCAtNTkzLDcgKzU5Myw3IEBA IGNkZWYgY2xhc3MgUGFyc2VyOgorICAgICAgICAgICAgIGFsbCA9IGFsbFswXQorICAgICAgICAg cmV0dXJuIGFsbAorIAorLSAgICBjcGRlZiBwX21hdHJpeChzZWxmLCBUb2tlbml6ZXIgdG9rZW5z KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcF9tYXRyaXgoc2VsZiwgVG9rZW5pemVyIHRva2Vucyk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIFBhcnNlIGEgbWF0cml4CisgCitAQCAtNjIxLDcgKzYy MSw3IEBAIGNkZWYgY2xhc3MgUGFyc2VyOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICBz ZWxmLnBhcnNlX2Vycm9yKHRva2VucywgIk1hbGZvcm1lZCBtYXRyaXgiKQorIAorLSAgICBjcGRl ZiBwX3NlcXVlbmNlKHNlbGYsIFRva2VuaXplciB0b2tlbnMpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBwX3NlcXVlbmNlKHNlbGYsIFRva2VuaXplciB0b2tlbnMpOgorICAgICAgICAgIiIiCisgICAg ICAgICBQYXJzZSBhIChwb3NzaWJseSBuZXN0ZWQpIHNldCBvZiBsaXN0cyBhbmQgdHVwbGVzLgor IAorQEAgLTY2Niw3ICs2NjYsNyBAQCBjZGVmIGNsYXNzIFBhcnNlcjoKKyAgICAgICAgIHRva2Vu cy5iYWNrdHJhY2soKQorICAgICAgICAgcmV0dXJuIGFsbAorIAorLSAgICBjcGRlZiBwX2xpc3Qo c2VsZiwgVG9rZW5pemVyIHRva2Vucykgbm9leGNlcHQ6CisrICAgIGNwZGVmIHBfbGlzdChzZWxm LCBUb2tlbml6ZXIgdG9rZW5zKToKKyAgICAgICAgICIiIgorICAgICAgICAgUGFyc2UgYSBsaXN0 IG9mIGl0ZW1zLgorIAorQEAgLTY4OCw3ICs2ODgsNyBAQCBjZGVmIGNsYXNzIFBhcnNlcjoKKyAg ICAgICAgICAgICBzZWxmLnBhcnNlX2Vycm9yKHRva2VucywgIk1hbGZvcm1lZCBsaXN0IikKKyAg ICAgICAgIHJldHVybiBhbGwKKyAKKy0gICAgY3BkZWYgcF90dXBsZShzZWxmLCBUb2tlbml6ZXIg dG9rZW5zKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcF90dXBsZShzZWxmLCBUb2tlbml6ZXIgdG9r ZW5zKToKKyAgICAgICAgICIiIgorICAgICAgICAgUGFyc2UgYSB0dXBsZSBvZiBpdGVtcy4KKyAK K0BAIC03MjMsNyArNzIzLDcgQEAgY2RlZiBjbGFzcyBQYXJzZXI6CisgICAgICAgICAgICAgICAg IHJldHVybiBzZWxmLnBfZXFuKHRva2VucykKKyAKKyAjIGVxbiA6Oj0gZXhwciBvcCBleHByIHwg ZXhwcgorLSAgICBjcGRlZiBwX2VxbihzZWxmLCBUb2tlbml6ZXIgdG9rZW5zKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgcF9lcW4oc2VsZiwgVG9rZW5pemVyIHRva2Vucyk6CisgICAgICAgICByIiIi CisgICAgICAgICBQYXJzZSBhbiBlcXVhdGlvbiBvciBleHByZXNzaW9uLgorIAorQEAgLTc2OSw3 ICs3NjksNyBAQCBjZGVmIGNsYXNzIFBhcnNlcjoKKyAgICAgICAgICAgICByZXR1cm4gbGhzCisg CisgIyBleHByIDo6PSAgdGVybSB8IGV4cHIgJysnIHRlcm0gfCBleHByICctJyB0ZXJtCistICAg IGNwZGVmIHBfZXhwcihzZWxmLCBUb2tlbml6ZXIgdG9rZW5zKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgcF9leHByKHNlbGYsIFRva2VuaXplciB0b2tlbnMpOgorICAgICAgICAgIiIiCisgICAgICAg ICBQYXJzZSBhIGxpc3Qgb2Ygb25lIG9yIG1vcmUgdGVybXMuCisgCitAQCAtODA0LDcgKzgwNCw3 IEBAIGNkZWYgY2xhc3MgUGFyc2VyOgorICAgICAgICAgcmV0dXJuIG9wZXJhbmQxCisgCisgIyB0 ZXJtIDo6PSAgZmFjdG9yIHwgdGVybSAnKicgZmFjdG9yIHwgdGVybSAnLycgZmFjdG9yCistICAg IGNwZGVmIHBfdGVybShzZWxmLCBUb2tlbml6ZXIgdG9rZW5zKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgcF90ZXJtKHNlbGYsIFRva2VuaXplciB0b2tlbnMpOgorICAgICAgICAgIiIiCisgICAgICAg ICBQYXJzZSBhIHNpbmdsZSB0ZXJtIChjb25zaXN0aW5nIG9mIG9uZSBvciBtb3JlIGZhY3RvcnMp LgorIAorQEAgLTg0NSw3ICs4NDUsNyBAQCBjZGVmIGNsYXNzIFBhcnNlcjoKKyAgICAgICAgIHJl dHVybiBvcGVyYW5kMQorIAorICMgZmFjdG9yIDo6PSAgJysnIGZhY3RvciB8ICctJyBmYWN0b3Ig fCBwb3dlcgorLSAgICBjcGRlZiBwX2ZhY3RvcihzZWxmLCBUb2tlbml6ZXIgdG9rZW5zKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgcF9mYWN0b3Ioc2VsZiwgVG9rZW5pemVyIHRva2Vucyk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIFBhcnNlIGEgc2luZ2xlIGZhY3Rvciwgd2hpY2ggY29uc2lzdHMg b2YgYW55IG51bWJlciBvZiB1bmFyeSArLy0KKyAgICAgICAgIGFuZCBhIHBvd2VyLgorQEAgLTg3 Miw3ICs4NzIsNyBAQCBjZGVmIGNsYXNzIFBhcnNlcjoKKyAgICAgICAgICAgICByZXR1cm4gc2Vs Zi5wX3Bvd2VyKHRva2VucykKKyAKKyAjIHBvd2VyIDo6PSAgKGF0b20gfCBhdG9tISkgXiBmYWN0 b3IgfCBhdG9tIHwgYXRvbSEKKy0gICAgY3BkZWYgcF9wb3dlcihzZWxmLCBUb2tlbml6ZXIgdG9r ZW5zKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcF9wb3dlcihzZWxmLCBUb2tlbml6ZXIgdG9rZW5z KToKKyAgICAgICAgICIiIgorICAgICAgICAgUGFyc2VzIGEgcG93ZXIuIE5vdGUgdGhhdCBleHBv bmVudGlhdGlvbiBncm91cHMgcmlnaHQgdG8gbGVmdC4KKyAKK0BAIC05MTcsNyArOTE3LDcgQEAg Y2RlZiBjbGFzcyBQYXJzZXI6CisgICAgICAgICAgICAgcmV0dXJuIG9wZXJhbmQxCisgCisgIyBh dG9tIDo6PSBpbnQgfCBmbG9hdCB8IG5hbWUgfCAnKCcgZXhwciAnKScgfCBuYW1lICcoJyBhcmdz ICcpJworLSAgICBjcGRlZiBwX2F0b20oc2VsZiwgVG9rZW5pemVyIHRva2Vucykgbm9leGNlcHQ6 CisrICAgIGNwZGVmIHBfYXRvbShzZWxmLCBUb2tlbml6ZXIgdG9rZW5zKToKKyAgICAgICAgICIi IgorICAgICAgICAgUGFyc2UgYW4gYXRvbS4gVGhpcyBpcyBlaXRoZXIgYSBwYXJlbnRoZXNpemVk IGV4cHJlc3Npb24sIGEgZnVuY3Rpb24gY2FsbCwgb3IgYSBsaXRlcmFsIG5hbWUvaW50L2Zsb2F0 LgorIAorQEAgLTk3Myw3ICs5NzMsNyBAQCBjZGVmIGNsYXNzIFBhcnNlcjoKKyAgICAgICAgICAg ICBzZWxmLnBhcnNlX2Vycm9yKHRva2VucykKKyAKKyAjIGFyZ3MgPSBhcmcgKCcsJyBhcmcpKiB8 IEVNUFRZCistICAgIGNwZGVmIHBfYXJncyhzZWxmLCBUb2tlbml6ZXIgdG9rZW5zKSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgcF9hcmdzKHNlbGYsIFRva2VuaXplciB0b2tlbnMpOgorICAgICAgICAg IiIiCisgICAgICAgICBSZXR1cm5zIGEgbGlzdCwgZGljdCBwYWlyLgorIAorQEAgLTEwMDMsNyAr MTAwMyw3IEBAIGNkZWYgY2xhc3MgUGFyc2VyOgorICAgICAgICAgcmV0dXJuIGFyZ3MsIGt3ZHMK KyAKKyAjIGFyZyA9IGV4cHIgfCBuYW1lICc9JyBleHByCistICAgIGNwZGVmIHBfYXJnKHNlbGYs IFRva2VuaXplciB0b2tlbnMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBwX2FyZyhzZWxmLCBUb2tl bml6ZXIgdG9rZW5zKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJucyBhbiBleHByLCBv ciBhIChuYW1lLCBleHByKSB0dXBsZSBjb3JyZXNwb25kaW5nIHRvIGEgc2luZ2xlCisgICAgICAg ICBmdW5jdGlvbiBjYWxsIGFyZ3VtZW50LgorQEAgLTEwNDQsNyArMTA0NCw3IEBAIGNkZWYgY2xh c3MgUGFyc2VyOgorICAgICAgICAgICAgIHRva2Vucy5iYWNrdHJhY2soKQorICAgICAgICAgICAg IHJldHVybiBzZWxmLnBfZXhwcih0b2tlbnMpCisgCistICAgIGNkZWYgcGFyc2VfZXJyb3Ioc2Vs ZiwgVG9rZW5pemVyIHRva2VucywgbXNnPSJNYWxmb3JtZWQgZXhwcmVzc2lvbiIpIG5vZXhjZXB0 OgorKyAgICBjZGVmIHBhcnNlX2Vycm9yKHNlbGYsIFRva2VuaXplciB0b2tlbnMsIG1zZz0iTWFs Zm9ybWVkIGV4cHJlc3Npb24iKToKKyAgICAgICAgIHJhaXNlIFN5bnRheEVycm9yKG1zZywgdG9r ZW5zLnMsIHRva2Vucy5wb3MpCisgCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWlzYy9wZXJz aXN0LnB5eCBiL3NyYy9zYWdlL21pc2MvcGVyc2lzdC5weXgKK2luZGV4IGI2ZjRiYjIyMGY3Li4z ZTU2ZTI0OWQ0NSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21pc2MvcGVyc2lzdC5weXgKKysrKyBi L3NyYy9zYWdlL21pc2MvcGVyc2lzdC5weXgKK0BAIC03NSw3ICs3NSw3IEBAIGFscmVhZHlfcGlj a2xlZCA9IHsgfQorIGFscmVhZHlfdW5waWNrbGVkID0geyB9CisgCisgCistY2RlZiBfbm9ybWFs aXplX2ZpbGVuYW1lKHMpIG5vZXhjZXB0OgorK2NkZWYgX25vcm1hbGl6ZV9maWxlbmFtZShzKToK KyAgICAgIiIiCisgICAgIEFwcGVuZCB0aGUgLnNvYmogZXh0ZW5zaW9uIHRvIGEgZmlsZW5hbWUg aWYgaXQgZG9lc24ndCBhbHJlYWR5IGhhdmUgaXQuCisgICAgICIiIgorZGlmZiAtLWdpdCBhL3Ny Yy9zYWdlL21pc2MvcmFuZHN0YXRlLnB4ZCBiL3NyYy9zYWdlL21pc2MvcmFuZHN0YXRlLnB4ZAor aW5kZXggYzgzODczYTdjOTkuLmZjNWU5NTVlYjc5IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbWlz Yy9yYW5kc3RhdGUucHhkCisrKysgYi9zcmMvc2FnZS9taXNjL3JhbmRzdGF0ZS5weGQKK0BAIC0x NiwxNCArMTYsMTQgQEAgY2RlZiBjbGFzcyByYW5kc3RhdGU6CisgCisgICAgIGNkZWYgb2JqZWN0 IF9ncF9zYXZlZF9zZWVkcworIAorLSAgICBjcGRlZiBzZXRfc2VlZF9saWJjKHNlbGYsIGJpbnQg Zm9yY2UpIG5vZXhjZXB0CistICAgIGNwZGVmIHNldF9zZWVkX250bChzZWxmLCBiaW50IGZvcmNl KSBub2V4Y2VwdAorKyAgICBjcGRlZiBzZXRfc2VlZF9saWJjKHNlbGYsIGJpbnQgZm9yY2UpCisr ICAgIGNwZGVmIHNldF9zZWVkX250bChzZWxmLCBiaW50IGZvcmNlKQorIAorICAgICBjcGRlZiBp bnQgY19yYW5kb20oc2VsZikgbm9leGNlcHQKKyAgICAgY3BkZWYgZG91YmxlIGNfcmFuZF9kb3Vi bGUoc2VsZikgbm9leGNlcHQKKyAKKy0gICAgY3BkZWYgWlpfc2VlZChzZWxmKSBub2V4Y2VwdAor LSAgICBjcGRlZiBsb25nX3NlZWQoc2VsZikgbm9leGNlcHQKKysgICAgY3BkZWYgWlpfc2VlZChz ZWxmKQorKyAgICBjcGRlZiBsb25nX3NlZWQoc2VsZikKKyAKKy1jcGRlZiByYW5kc3RhdGUgY3Vy cmVudF9yYW5kc3RhdGUoKSBub2V4Y2VwdAorK2NwZGVmIHJhbmRzdGF0ZSBjdXJyZW50X3JhbmRz dGF0ZSgpCisgY3BkZWYgaW50IHJhbmRvbSgpIG5vZXhjZXB0CitkaWZmIC0tZ2l0IGEvc3JjL3Nh Z2UvbWlzYy9yYW5kc3RhdGUucHl4IGIvc3JjL3NhZ2UvbWlzYy9yYW5kc3RhdGUucHl4CitpbmRl eCBiOTE4YjE1Mzg4My4uZmQzZWMyY2FkNjAgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9taXNjL3Jh bmRzdGF0ZS5weXgKKysrKyBiL3NyYy9zYWdlL21pc2MvcmFuZHN0YXRlLnB5eAorQEAgLTQ0Myw3 ICs0NDMsNyBAQCBjZGVmIHJhbmRzdGF0ZSBfcGFyaV9zZWVkX3JhbmRzdGF0ZQorICMgcmFuZHN0 YXRlIG9iamVjdCB3YXMgdGhlIG1vc3QgcmVjZW50IG9uZSB0byBzZWVkIGl0LgorIF9ncF9zZWVk X3JhbmRzdGF0ZXMgPSB3ZWFrcmVmLldlYWtLZXlEaWN0aW9uYXJ5KCkKKyAKKy1jcGRlZiByYW5k c3RhdGUgY3VycmVudF9yYW5kc3RhdGUoKSBub2V4Y2VwdDoKKytjcGRlZiByYW5kc3RhdGUgY3Vy cmVudF9yYW5kc3RhdGUoKToKKyAgICAgciIiIgorICAgICBSZXR1cm4gdGhlIGN1cnJlbnQgcmFu ZG9tIG51bWJlciBzdGF0ZS4KKyAKK0BAIC02MTAsNyArNjEwLDcgQEAgY2RlZiBjbGFzcyByYW5k c3RhdGU6CisgICAgICAgICBzZWxmLl9weXRob25fcmFuZG9tID0gcmFuZAorICAgICAgICAgcmV0 dXJuIHJhbmQKKyAKKy0gICAgY3BkZWYgWlpfc2VlZChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgWlpfc2VlZChzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFdoZW4gY2FsbGVkIG9u IHRoZSBjdXJyZW50IDpjbGFzczpgcmFuZHN0YXRlYCwgcmV0dXJucyBhIDEyOC1iaXQKKyAgICAg ICAgIDptb2Q6YEludGVnZXIgPHNhZ2UucmluZ3MuaW50ZWdlcl9yaW5nPmAgc3VpdGFibGUgZm9y IHNlZWRpbmcgYW5vdGhlcgorQEAgLTYyNSw3ICs2MjUsNyBAQCBjZGVmIGNsYXNzIHJhbmRzdGF0 ZToKKyAgICAgICAgIGZyb20gc2FnZS5yaW5ncy5pbnRlZ2VyX3JpbmcgaW1wb3J0IFpaCisgICAg ICAgICByZXR1cm4gWloucmFuZG9tX2VsZW1lbnQobG9uZygxKTw8MTI4KQorIAorLSAgICBjcGRl ZiBsb25nX3NlZWQoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGxvbmdfc2VlZChzZWxmKToK KyAgICAgICAgIHIiIiIKKyAgICAgICAgIFdoZW4gY2FsbGVkIG9uIHRoZSBjdXJyZW50IDpjbGFz czpgcmFuZHN0YXRlYCwgcmV0dXJucyBhIDEyOC1iaXQKKyAgICAgICAgIFB5dGhvbiBsb25nIHN1 aXRhYmxlIGZvciBzZWVkaW5nIGFub3RoZXIgcmFuZG9tIG51bWJlciBnZW5lcmF0b3IuCitAQCAt NjM5LDcgKzYzOSw3IEBAIGNkZWYgY2xhc3MgcmFuZHN0YXRlOgorICAgICAgICAgZnJvbSBzYWdl LnJpbmdzLmludGVnZXJfcmluZyBpbXBvcnQgWloKKyAgICAgICAgIHJldHVybiBsb25nKFpaLnJh bmRvbV9lbGVtZW50KGxvbmcoMSk8PDEyOCkpCisgCistICAgIGNwZGVmIHNldF9zZWVkX2xpYmMo c2VsZiwgYmludCBmb3JjZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHNldF9zZWVkX2xpYmMoc2Vs ZiwgYmludCBmb3JjZSk6CisgICAgICAgICByIiIiCisgICAgICAgICBDaGVja3MgdG8gc2VlIGlm IGBgc2VsZmBgIHdhcyB0aGUgbW9zdCByZWNlbnQgOmNsYXNzOmByYW5kc3RhdGVgCisgICAgICAg ICB0byBzZWVkIHRoZSBsaWJjIHJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yLiAgSWYgbm90LCBzZWVk cyB0aGUKK0BAIC02NjQsNyArNjY0LDcgQEAgY2RlZiBjbGFzcyByYW5kc3RhdGU6CisgICAgICAg ICAgICAgY19saWJjX3NyYW5kb20oZ21wX3VyYW5kb21iX3VpKHNlbGYuZ21wX3N0YXRlLCBzaXpl b2YoaW50KSo4KSkKKyAgICAgICAgICAgICBfbGliY19zZWVkX3JhbmRzdGF0ZSA9IHNlbGYKKyAK Ky0gICAgY3BkZWYgc2V0X3NlZWRfbnRsKHNlbGYsIGJpbnQgZm9yY2UpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBzZXRfc2VlZF9udGwoc2VsZiwgYmludCBmb3JjZSk6CisgICAgICAgICByIiIiCisg ICAgICAgICBDaGVja3MgdG8gc2VlIGlmIGBgc2VsZmBgIHdhcyB0aGUgbW9zdCByZWNlbnQgOmNs YXNzOmByYW5kc3RhdGVgCisgICAgICAgICB0byBzZWVkIHRoZSBOVEwgcmFuZG9tIG51bWJlciBn ZW5lcmF0b3IuICBJZiBub3QsIHNlZWRzCitAQCAtOTIyLDcgKzkyMiw3IEBAIGNkZWYgY2xhc3Mg cmFuZHN0YXRlOgorICAgICAgICAgcmV0dXJuIEZhbHNlCisgCisgCistY3BkZWYgc2V0X3JhbmRv bV9zZWVkKHNlZWQ9Tm9uZSkgbm9leGNlcHQ6CisrY3BkZWYgc2V0X3JhbmRvbV9zZWVkKHNlZWQ9 Tm9uZSk6CisgICAgIHIiIiIKKyAgICAgU2V0IHRoZSBjdXJyZW50IHJhbmRvbSBudW1iZXIgc2Vl ZCBmcm9tIHRoZSBnaXZlbiBgYHNlZWRgYAorICAgICAod2hpY2ggbXVzdCBiZSBjb2VyY2libGUg dG8gYSBQeXRob24gbG9uZykuCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWlzYy9zYWdlX29zdG9v bHMucHl4IGIvc3JjL3NhZ2UvbWlzYy9zYWdlX29zdG9vbHMucHl4CitpbmRleCA2NGU5YzQyODA5 Yi4uOGE5MWFmZTU0YzIgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9taXNjL3NhZ2Vfb3N0b29scy5w eXgKKysrKyBiL3NyYy9zYWdlL21pc2Mvc2FnZV9vc3Rvb2xzLnB5eAorQEAgLTgwLDcgKzgwLDcg QEAgZGVmIHJlc3RvcmVfY3dkKGNoZGlyPU5vbmUpOgorICAgICAgICAgb3MuY2hkaXIob3JpZ19j d2QpCisgCisgCistY2RlZiBmaWxlX2FuZF9mZCh4LCBpbnQqIGZkKSBub2V4Y2VwdDoKKytjZGVm IGZpbGVfYW5kX2ZkKHgsIGludCogZmQpOgorICAgICAiIiIKKyAgICAgSWYgYGB4YGAgaXMgYSBm aWxlLCByZXR1cm4gYGB4YGAgYW5kIHNldCBgYCpmZGBgIHRvIGl0cyBmaWxlCisgICAgIGRlc2Ny aXB0b3IuIElmIGBgeGBgIGlzIGFuIGludGVnZXIsIHJldHVybiBgYE5vbmVgYCBhbmQgc2V0Citk aWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWlzYy9zYWdlaW5zcGVjdC5weSBiL3NyYy9zYWdlL21pc2Mv c2FnZWluc3BlY3QucHkKK2luZGV4IGFmZjQ3ZWY5NmJiLi4zNzE3OTY1YzBiOSAxMDA2NDQKKy0t LSBhL3NyYy9zYWdlL21pc2Mvc2FnZWluc3BlY3QucHkKKysrKyBiL3NyYy9zYWdlL21pc2Mvc2Fn ZWluc3BlY3QucHkKK0BAIC0yMzk1LDcgKzIzOTUsNyBAQCBkZWYgc2FnZV9nZXRzb3VyY2VsaW5l cyhvYmopOgorICAgICAgICAgICdcbicsCisgICAgICAgICAgJyAgICBjZGVmIEdFeCBfZ29ialxu JywKKyAgICAgICAgICAnXG4nLAorLSAgICAgICAgICcgICAgY3BkZWYgb2JqZWN0IHB5b2JqZWN0 KHNlbGYpIG5vZXhjZXB0OlxuJ10KKysgICAgICAgICAnICAgIGNwZGVmIG9iamVjdCBweW9iamVj dChzZWxmKTpcbiddCisgICAgICAgICBzYWdlOiBsaW5lc1stMV0gICAgIyBsYXN0IGxpbmUgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgbmVlZHMgc2Fn ZS5zeW1ib2xpYworICAgICAgICAgJyAgICAgICAgcmV0dXJuIFNcbicKKyAKK2RpZmYgLS1naXQg YS9zcmMvc2FnZS9taXNjL3NlYXJjaC5weGQgYi9zcmMvc2FnZS9taXNjL3NlYXJjaC5weGQKK2lu ZGV4IDA5ODZmMjdjNTFkLi44Y2M0M2JhMWIwZiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21pc2Mv c2VhcmNoLnB4ZAorKysrIGIvc3JjL3NhZ2UvbWlzYy9zZWFyY2gucHhkCitAQCAtMSArMSBAQAor LWNwZGVmIHNlYXJjaChvYmplY3Qgdiwgb2JqZWN0IHgpIG5vZXhjZXB0CitcIE5vIG5ld2xpbmUg YXQgZW5kIG9mIGZpbGUKKytjcGRlZiBzZWFyY2gob2JqZWN0IHYsIG9iamVjdCB4KQorXCBObyBu ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWlzYy9zZWFyY2gu cHl4IGIvc3JjL3NhZ2UvbWlzYy9zZWFyY2gucHl4CitpbmRleCAzOTkxYmJjOGYzZS4uYTllNzE0 OTExM2UgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9taXNjL3NlYXJjaC5weXgKKysrKyBiL3NyYy9z YWdlL21pc2Mvc2VhcmNoLnB5eAorQEAgLTI1LDcgKzI1LDcgQEAgZXh0cmEgY29tcGFyaXNvbi4g QWxzbywgdGhlIGZ1bmN0aW9uIG5hbWVzIG1ha2UgbW9yZSBzZW5zZS4KKyBpbXBvcnQgYmlzZWN0 CisgCisgCistY3BkZWYgc2VhcmNoKG9iamVjdCB2LCBvYmplY3QgeCkgbm9leGNlcHQ6CisrY3Bk ZWYgc2VhcmNoKG9iamVjdCB2LCBvYmplY3QgeCk6CisgICAgICIiIgorICAgICBSZXR1cm4gKFRy dWUsaSkgd2hlcmUgaSBpcyBzdWNoIHRoYXQgdltpXSA9PSB4IGlmIHRoZXJlIGlzIHN1Y2ggYW4g aSwKKyAgICAgb3IgKEZhbHNlLGopIG90aGVyd2lzZSwgd2hlcmUgaiBpcyB0aGUgcG9zaXRpb24g d2hlcmUgeCBzaG91bGQgYmUgaW5zZXJ0ZWQKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tb2R1bGFy L2FyaXRoZ3JvdXAvYXJpdGhncm91cF9lbGVtZW50LnB5eCBiL3NyYy9zYWdlL21vZHVsYXIvYXJp dGhncm91cC9hcml0aGdyb3VwX2VsZW1lbnQucHl4CitpbmRleCA1MmM2YTY5Mjg2Ni4uMWIzZGIz NGEwNGMgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tb2R1bGFyL2FyaXRoZ3JvdXAvYXJpdGhncm91 cF9lbGVtZW50LnB5eAorKysrIGIvc3JjL3NhZ2UvbW9kdWxhci9hcml0aGdyb3VwL2FyaXRoZ3Jv dXBfZWxlbWVudC5weXgKK0BAIC0xNTgsNyArMTU4LDcgQEAgY2RlZiBjbGFzcyBBcml0aG1ldGlj U3ViZ3JvdXBFbGVtZW50KE11bHRpcGxpY2F0aXZlR3JvdXBFbGVtZW50KToKKyAgICAgICAgICIi IgorICAgICAgICAgcmV0dXJuICclcycgJSBzZWxmLl9feC5fbGF0ZXhfKCkKKyAKKy0gICAgY3Bk ZWYgX3JpY2hjbXBfKHNlbGYsIHJpZ2h0X3IsIGludCBvcCkgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9yaWNoY21wXyhzZWxmLCByaWdodF9yLCBpbnQgb3ApOgorICAgICAgICAgIiIiCisgICAgICAg ICBDb21wYXJlIHNlbGYgdG8gcmlnaHQsIHdoZXJlIHJpZ2h0IGlzIGd1YXJhbnRlZWQgdG8gaGF2 ZSB0aGUgc2FtZQorICAgICAgICAgcGFyZW50IGFzIHNlbGYuCitAQCAtMjA0LDcgKzIwNCw3IEBA IGNkZWYgY2xhc3MgQXJpdGhtZXRpY1N1Ymdyb3VwRWxlbWVudChNdWx0aXBsaWNhdGl2ZUdyb3Vw RWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBUcnVlCisgCistICAgIGNw ZGVmIF9tdWxfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX211bF8oc2VsZiwg cmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gc2VsZiAqIHJpZ2h0LgorIAor ZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21vZHVsYXIvYXJpdGhncm91cC9mYXJleV9zeW1ib2wucHl4 IGIvc3JjL3NhZ2UvbW9kdWxhci9hcml0aGdyb3VwL2ZhcmV5X3N5bWJvbC5weXgKK2luZGV4IDM0 NTQ2YzA4MmRhLi5kZDczZThkNGFjNyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21vZHVsYXIvYXJp dGhncm91cC9mYXJleV9zeW1ib2wucHl4CisrKysgYi9zcmMvc2FnZS9tb2R1bGFyL2FyaXRoZ3Jv dXAvZmFyZXlfc3ltYm9sLnB5eAorQEAgLTEwMzgsMjYgKzEwMzgsMjYgQEAgY2RlZiBwdWJsaWMg bG9uZyBjb252ZXJ0X3RvX2xvbmcobikgbm9leGNlcHQ6CisgICAgIGNkZWYgbG9uZyBtID0gbgor ICAgICByZXR1cm4gbQorIAorLWNkZWYgcHVibGljIG9iamVjdCBjb252ZXJ0X3RvX0ludGVnZXIo bXB6X2NsYXNzIGEpIG5vZXhjZXB0OgorK2NkZWYgcHVibGljIG9iamVjdCBjb252ZXJ0X3RvX0lu dGVnZXIobXB6X2NsYXNzIGEpOgorICAgICBBID0gSW50ZWdlcigpCisgICAgIEEuc2V0X2Zyb21f bXB6KGEuZ2V0X21wel90KCkpCisgICAgIHJldHVybiBBCisgCistY2RlZiBwdWJsaWMgb2JqZWN0 IGNvbnZlcnRfdG9fcmF0aW9uYWwobXBxX2NsYXNzIHIpIG5vZXhjZXB0OgorK2NkZWYgcHVibGlj IG9iamVjdCBjb252ZXJ0X3RvX3JhdGlvbmFsKG1wcV9jbGFzcyByKToKKyAgICAgYSA9IEludGVn ZXIoKQorICAgICBhLnNldF9mcm9tX21weihyLmdldF9udW1fbXB6X3QoKSkKKyAgICAgYiA9IElu dGVnZXIoKQorICAgICBiLnNldF9mcm9tX21weihyLmdldF9kZW5fbXB6X3QoKSkKKyAgICAgcmV0 dXJuIGEvYgorIAorLWNkZWYgcHVibGljIG9iamVjdCBjb252ZXJ0X3RvX2N1c3AobXBxX2NsYXNz IHIpIG5vZXhjZXB0OgorK2NkZWYgcHVibGljIG9iamVjdCBjb252ZXJ0X3RvX2N1c3AobXBxX2Ns YXNzIHIpOgorICAgICBhID0gSW50ZWdlcigpCisgICAgIGEuc2V0X2Zyb21fbXB6KHIuZ2V0X251 bV9tcHpfdCgpKQorICAgICBiID0gSW50ZWdlcigpCisgICAgIGIuc2V0X2Zyb21fbXB6KHIuZ2V0 X2Rlbl9tcHpfdCgpKQorICAgICByZXR1cm4gQ3VzcChhL2IpCisgCistY2RlZiBwdWJsaWMgb2Jq ZWN0IGNvbnZlcnRfdG9fU0wyWihjcHBfU0wyWiBNKSBub2V4Y2VwdDoKKytjZGVmIHB1YmxpYyBv YmplY3QgY29udmVydF90b19TTDJaKGNwcF9TTDJaIE0pOgorICAgICBhID0gY29udmVydF90b19J bnRlZ2VyKE0uYSgpKQorICAgICBiID0gY29udmVydF90b19JbnRlZ2VyKE0uYigpKQorICAgICBj ID0gY29udmVydF90b19JbnRlZ2VyKE0uYygpKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21vZHVs YXIvaHlwZXJnZW9tZXRyaWNfbWlzYy5weGQgYi9zcmMvc2FnZS9tb2R1bGFyL2h5cGVyZ2VvbWV0 cmljX21pc2MucHhkCitpbmRleCA0MTk4Y2E4ODQ4Yi4uMDBiZjlhOTdlOWEgMTAwNjQ0CistLS0g YS9zcmMvc2FnZS9tb2R1bGFyL2h5cGVyZ2VvbWV0cmljX21pc2MucHhkCisrKysgYi9zcmMvc2Fn ZS9tb2R1bGFyL2h5cGVyZ2VvbWV0cmljX21pc2MucHhkCitAQCAtMSwyICsxLDIgQEAKKyBjcGRl ZiBoZ21fY29lZmZzKGxvbmcgbG9uZyBwLCBpbnQgZiwgaW50IHByZWMsIGdhbW1hLCBtLCBpbnQg RCwKKy0gICAgICAgICAgICAgICAgIGd0YWJsZSwgaW50IGd0YWJsZV9wcmVjLCBiaW50IHVzZV9s b25ncykgbm9leGNlcHQKKysgICAgICAgICAgICAgICAgIGd0YWJsZSwgaW50IGd0YWJsZV9wcmVj LCBiaW50IHVzZV9sb25ncykKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tb2R1bGFyL2h5cGVyZ2Vv bWV0cmljX21pc2MucHl4IGIvc3JjL3NhZ2UvbW9kdWxhci9oeXBlcmdlb21ldHJpY19taXNjLnB5 eAoraW5kZXggYmFjNTdmYTAxZDIuLmI4YzM5YWVlZmE3IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uv bW9kdWxhci9oeXBlcmdlb21ldHJpY19taXNjLnB5eAorKysrIGIvc3JjL3NhZ2UvbW9kdWxhci9o eXBlcmdlb21ldHJpY19taXNjLnB5eAorQEAgLTcsNyArNyw3IEBAIGZyb20gY3lzaWduYWxzLnNp Z25hbHMgY2ltcG9ydCBzaWdfY2hlY2sKKyAKKyAKKyBjcGRlZiBoZ21fY29lZmZzKGxvbmcgbG9u ZyBwLCBpbnQgZiwgaW50IHByZWMsIGdhbW1hLCBtLCBpbnQgRCwKKy0gICAgICAgICAgICAgICAg IGd0YWJsZSwgaW50IGd0YWJsZV9wcmVjLCBiaW50IHVzZV9sb25ncykgbm9leGNlcHQ6CisrICAg ICAgICAgICAgICAgICBndGFibGUsIGludCBndGFibGVfcHJlYywgYmludCB1c2VfbG9uZ3MpOgor ICAgICByIiIiCisgICAgIENvbXB1dGUgY29lZmZpY2llbnRzIGZvciB0aGUgaHlwZXJnZW9tZXRy aWMgdHJhY2UgZm9ybXVsYS4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tb2R1bGFyL21vZGZv cm0vZWlzX3Nlcmllc19jeXRob24ucHl4IGIvc3JjL3NhZ2UvbW9kdWxhci9tb2Rmb3JtL2Vpc19z ZXJpZXNfY3l0aG9uLnB5eAoraW5kZXggZmI4NTAxNjIyZjYuLjE4ZDE4Zjc4NTJhIDEwMDY0NAor LS0tIGEvc3JjL3NhZ2UvbW9kdWxhci9tb2Rmb3JtL2Vpc19zZXJpZXNfY3l0aG9uLnB5eAorKysr IGIvc3JjL3NhZ2UvbW9kdWxhci9tb2Rmb3JtL2Vpc19zZXJpZXNfY3l0aG9uLnB5eAorQEAgLTE0 LDcgKzE0LDcgQEAgZnJvbSBzYWdlLmxpYnMuZmxpbnQuZm1wel9wb2x5IGNpbXBvcnQgKgorIGZy b20gc2FnZS5saWJzLmdtcC5tcHogY2ltcG9ydCAqCisgZnJvbSBzYWdlLmxpYnMuZmxpbnQuZm1w el9wb2x5X3NhZ2UgY2ltcG9ydCBGbXB6X3BvbHksIGZtcHpfcG9seV9zZXRfY29lZmZfbXB6LCBm bXB6X3BvbHlfc2NhbGFyX211bF9tcHoKKyAKKy1jcGRlZiBFa19aWihpbnQgaywgaW50IHByZWM9 MTApIG5vZXhjZXB0OgorK2NwZGVmIEVrX1paKGludCBrLCBpbnQgcHJlYz0xMCk6CisgICAgICIi IgorICAgICBSZXR1cm4gbGlzdCBvZiBwcmVjIGludGVnZXIgY29lZmZpY2llbnRzIG9mIHRoZSB3 ZWlnaHQgaworICAgICBFaXNlbnN0ZWluIHNlcmllcyBvZiBsZXZlbCAxLCBub3JtYWxpemVkIHNv IHRoZSBjb2VmZmljaWVudCBvZiBxCitAQCAtMTQwLDcgKzE0MCw3IEBAIGNwZGVmIEVrX1paKGlu dCBrLCBpbnQgcHJlYz0xMCkgbm9leGNlcHQ6CisgICAgIHJldHVybiB2YWwKKyAKKyAKKy1jcGRl ZiBlaXNlbnN0ZWluX3Nlcmllc19wb2x5KGludCBrLCBpbnQgcHJlYyA9IDEwKSAgbm9leGNlcHQ6 CisrY3BkZWYgZWlzZW5zdGVpbl9zZXJpZXNfcG9seShpbnQgaywgaW50IHByZWMgPSAxMCkgOgor ICAgICByIiIiCisgICAgIFJldHVybiB0aGUgcS1leHBhbnNpb24gdXAgdG8gcHJlY2lzaW9uIGBg cHJlY2BgIG9mIHRoZSB3ZWlnaHQgYGtgCisgICAgIEVpc2Vuc3RlaW4gc2VyaWVzLCBhcyBhIEZM SU5UIDpjbGFzczpgfnNhZ2UubGlicy5mbGludC5mbXB6X3BvbHkuRm1wel9wb2x5YAorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL21vZHVsYXIvbW9kZm9ybS9sX3Nlcmllc19ncm9zc196YWdpZXJfY29l ZmZzLnB5eCBiL3NyYy9zYWdlL21vZHVsYXIvbW9kZm9ybS9sX3Nlcmllc19ncm9zc196YWdpZXJf Y29lZmZzLnB5eAoraW5kZXggZmZlYmU4MTNjOTIuLmY5MWEzZTI1NmYwIDEwMDY0NAorLS0tIGEv c3JjL3NhZ2UvbW9kdWxhci9tb2Rmb3JtL2xfc2VyaWVzX2dyb3NzX3phZ2llcl9jb2VmZnMucHl4 CisrKysgYi9zcmMvc2FnZS9tb2R1bGFyL21vZGZvcm0vbF9zZXJpZXNfZ3Jvc3NfemFnaWVyX2Nv ZWZmcy5weXgKK0BAIC0xMiw3ICsxMiw3IEBAIGZyb20gbGliYy5tYXRoIGNpbXBvcnQgY2VpbCwg Zmxvb3IsIHNxcnQKKyBmcm9tIGxpYmMuc3RyaW5nIGNpbXBvcnQgbWVtY3B5CisgCisgCistY3Bk ZWYgdG9fc2VyaWVzKEwsIHZhcikgbm9leGNlcHQ6CisrY3BkZWYgdG9fc2VyaWVzKEwsIHZhcik6 CisgICAgICIiIgorICAgICBDcmVhdGUgYSBwb3dlciBzZXJpZXMgZWxlbWVudCBvdXQgb2YgYSBs aXN0IGBgTGBgIGluIHRoZSB2YXJpYWJsZWBgIHZhcmBgLgorIAorZGlmZiAtLWdpdCBhL3NyYy9z YWdlL21vZHVsYXIvbW9kc3ltL2hlaWxicm9ubi5weXggYi9zcmMvc2FnZS9tb2R1bGFyL21vZHN5 bS9oZWlsYnJvbm4ucHl4CitpbmRleCA3ZmM4ZWQyODA1NS4uZDJkYjM1ZGQ3ZWUgMTAwNjQ0Cist LS0gYS9zcmMvc2FnZS9tb2R1bGFyL21vZHN5bS9oZWlsYnJvbm4ucHl4CisrKysgYi9zcmMvc2Fn ZS9tb2R1bGFyL21vZHN5bS9oZWlsYnJvbm4ucHl4CitAQCAtMTcwLDcgKzE3MCw3IEBAIGNkZWYg Y2xhc3MgSGVpbGJyb25uOgorICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmxpc3Qudls0Kmkr Ml0sIHNlbGYubGlzdC52WzQqaSszXV0pCisgICAgICAgICByZXR1cm4gTAorIAorLSAgICBjZGVm IGFwcGx5X29ubHkoc2VsZiwgaW50IHUsIGludCB2LCBpbnQgTiwgaW50KiBhLCBpbnQqIGIpIG5v ZXhjZXB0OgorKyAgICBjZGVmIGFwcGx5X29ubHkoc2VsZiwgaW50IHUsIGludCB2LCBpbnQgTiwg aW50KiBhLCBpbnQqIGIpOgorICAgICAgICAgIiIiCisgICAgICAgICBJTlBVVDoKKyAKK0BAIC0y MTAsNyArMjEwLDcgQEAgY2RlZiBjbGFzcyBIZWlsYnJvbm46CisgICAgICAgICAgICAgICAgIGJb aV0gPSBsbG9uZ19wcm9kX21vZCh1LHNlbGYubGlzdC52WzQqaSsxXSxOKSArIGxsb25nX3Byb2Rf bW9kKHYsc2VsZi5saXN0LnZbNCppKzNdLCBOKQorICAgICAgICAgc2lnX29mZigpCisgCistICAg IGNkZWYgYXBwbHlfdG9fcG9seXBhcnQoc2VsZiwgZm1wel9wb2x5X3QqIGFucywgaW50IGksIGlu dCBrKSBub2V4Y2VwdDoKKysgICAgY2RlZiBhcHBseV90b19wb2x5cGFydChzZWxmLCBmbXB6X3Bv bHlfdCogYW5zLCBpbnQgaSwgaW50IGspOgorICAgICAgICAgciIiIgorICAgICAgICAgSU5QVVQ6 CisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbW9kdWxhci9tb2RzeW0vbWFuaW5fc3ltYm9sLnB5 eCBiL3NyYy9zYWdlL21vZHVsYXIvbW9kc3ltL21hbmluX3N5bWJvbC5weXgKK2luZGV4IGE3MTUz M2UxYjczLi42ZGE3OWUyMWIyZCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21vZHVsYXIvbW9kc3lt L21hbmluX3N5bWJvbC5weXgKKysrKyBiL3NyYy9zYWdlL21vZHVsYXIvbW9kc3ltL21hbmluX3N5 bWJvbC5weXgKK0BAIC0xOTksNyArMTk5LDcgQEAgY2RlZiBjbGFzcyBNYW5pblN5bWJvbChFbGVt ZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX3JlcHJfKCkKKyAKKy0g ICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIHJpZ2h0LCBpbnQgb3ApIG5vZXhjZXB0OgorKyAgICBj cGRlZiBfcmljaGNtcF8oc2VsZiwgcmlnaHQsIGludCBvcCk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIENvbXBhcmlzb24gZnVuY3Rpb24gZm9yIE1hbmluU3ltYm9scy4KKyAKK2RpZmYgLS1naXQg YS9zcmMvc2FnZS9tb2R1bGFyL21vZHN5bS9wMWxpc3QucHhkIGIvc3JjL3NhZ2UvbW9kdWxhci9t b2RzeW0vcDFsaXN0LnB4ZAoraW5kZXggMTcyNTRkNGE4ZmIuLmI2NmYyOGI4YWQ2IDEwMDY0NAor LS0tIGEvc3JjL3NhZ2UvbW9kdWxhci9tb2RzeW0vcDFsaXN0LnB4ZAorKysrIGIvc3JjL3NhZ2Uv bW9kdWxhci9tb2RzeW0vcDFsaXN0LnB4ZAorQEAgLTI0LDUgKzI0LDUgQEAgY2RlZiBjbGFzcyBQ MUxpc3Q6CisgICAgIGNkZWYgaW50ICgqX25vcm1hbGl6ZSkoaW50IE4sIGludCB1LCBpbnQgdiwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50KiB1dSwgaW50KiB2diwgaW50KiBzcywK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvbXB1dGVfcykgZXhjZXB0IC0xCist ICAgIGNwZGVmIGluZGV4KHNlbGYsIGludCB1LCBpbnQgdikgbm9leGNlcHQKKy0gICAgY2RlZiBp bmRleF9hbmRfc2NhbGFyKHNlbGYsIGludCB1LCBpbnQgdiwgaW50KiBpLCBpbnQqIHMpIG5vZXhj ZXB0CisrICAgIGNwZGVmIGluZGV4KHNlbGYsIGludCB1LCBpbnQgdikKKysgICAgY2RlZiBpbmRl eF9hbmRfc2NhbGFyKHNlbGYsIGludCB1LCBpbnQgdiwgaW50KiBpLCBpbnQqIHMpCitkaWZmIC0t Z2l0IGEvc3JjL3NhZ2UvbW9kdWxhci9tb2RzeW0vcDFsaXN0LnB5eCBiL3NyYy9zYWdlL21vZHVs YXIvbW9kc3ltL3AxbGlzdC5weXgKK2luZGV4IDkxMDQxODFkYTA1Li4xNjEzZDkwNzI5YSAxMDA2 NDQKKy0tLSBhL3NyYy9zYWdlL21vZHVsYXIvbW9kc3ltL3AxbGlzdC5weXgKKysrKyBiL3NyYy9z YWdlL21vZHVsYXIvbW9kc3ltL3AxbGlzdC5weXgKK0BAIC05OTEsNyArOTkxLDcgQEAgY2RlZiBj bGFzcyBQMUxpc3QoKToKKyAgICAgICAgIF8sIGogPSBzZWFyY2goc2VsZi5fX2xpc3QsICh1dSx2 dikpCisgICAgICAgICByZXR1cm4gagorIAorLSAgICBjcGRlZiBpbmRleChzZWxmLCBpbnQgdSwg aW50IHYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBpbmRleChzZWxmLCBpbnQgdSwgaW50IHYpOgor ICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgY2xhc3Mgb2Yg YCh1LHYpYCBpbiB0aGUgZml4ZWQgbGlzdAorICAgICAgICAgb2YgcmVwcmVzZW50YXRpdmVzIG9m CitAQCAtMTAzNCw3ICsxMDM0LDcgQEAgY2RlZiBjbGFzcyBQMUxpc3QoKToKKyAgICAgICAgIGV4 Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgICByZXR1cm4gLTEKKyAKKy0gICAgY2RlZiBpbmRl eF9hbmRfc2NhbGFyKHNlbGYsIGludCB1LCBpbnQgdiwgaW50KiBpLCBpbnQqIHMpIG5vZXhjZXB0 OgorKyAgICBjZGVmIGluZGV4X2FuZF9zY2FsYXIoc2VsZiwgaW50IHUsIGludCB2LCBpbnQqIGks IGludCogcyk6CisgICAgICAgICByIiIiCisgICAgICAgICBDb21wdXRlIHRoZSBpbmRleCBvZiB0 aGUgY2xhc3Mgb2YgYCh1LHYpYCBpbiB0aGUgZml4ZWQgbGlzdAorICAgICAgICAgb2YgcmVwcmVz ZW50YXRpdmVzIG9mIGBcbWF0aGJie1B9XjEoXFpaL05cWlopYCBhbmQgc2NhbGFyIHMKK2RpZmYg LS1naXQgYS9zcmMvc2FnZS9tb2R1bGFyL3BvbGxhY2tfc3RldmVucy9kaXN0LnB4ZCBiL3NyYy9z YWdlL21vZHVsYXIvcG9sbGFja19zdGV2ZW5zL2Rpc3QucHhkCitpbmRleCAwYTM4NTUxZDhhNi4u NGYwZTYzYTU1OWQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tb2R1bGFyL3BvbGxhY2tfc3RldmVu cy9kaXN0LnB4ZAorKysrIGIvc3JjL3NhZ2UvbW9kdWxhci9wb2xsYWNrX3N0ZXZlbnMvZGlzdC5w eGQKK0BAIC01LDE3ICs1LDE3IEBAIGZyb20gc2FnZS5yaW5ncy5wYWRpY3MucG93X2NvbXB1dGVy IGNpbXBvcnQgUG93Q29tcHV0ZXJfY2xhc3MKKyAKKyAKKyBjZGVmIGNsYXNzIERpc3QoTW9kdWxl RWxlbWVudCk6CistICAgIGNwZGVmIG5vcm1hbGl6ZShzZWxmLCBpbmNsdWRlX3plcm90aF9tb21l bnQ9Kikgbm9leGNlcHQKKysgICAgY3BkZWYgbm9ybWFsaXplKHNlbGYsIGluY2x1ZGVfemVyb3Ro X21vbWVudD0qKQorICAgICBjZGVmIGxvbmcgb3JkcAorICAgICBjcGRlZiBsb25nIF9vcmRfcChz ZWxmKSBub2V4Y2VwdAorICAgICBjZGVmIGxvbmcgX3JlbHByZWMoc2VsZikgbm9leGNlcHQKKy0g ICAgY2RlZiBfdW5zY2FsZWRfbW9tZW50KHNlbGYsIGxvbmcgaSkgbm9leGNlcHQKKysgICAgY2Rl ZiBfdW5zY2FsZWRfbW9tZW50KHNlbGYsIGxvbmcgaSkKKyAKKyBjZGVmIGNsYXNzIERpc3RfdmVj dG9yKERpc3QpOgorICAgICBjZGVmIHB1YmxpYyBfbW9tZW50cworLSAgICBjZGVmIERpc3RfdmVj dG9yIF9uZXdfYyhzZWxmKSBub2V4Y2VwdAorLSAgICBjZGVmIERpc3RfdmVjdG9yIF9hZGRzdWIo c2VsZiwgRGlzdF92ZWN0b3IgcmlnaHQsIGJpbnQgbmVnYXRlKSBub2V4Y2VwdAorLSAgICBjcGRl ZiBfYWRkXyhzZWxmLCBvdGhlcikgbm9leGNlcHQKKysgICAgY2RlZiBEaXN0X3ZlY3RvciBfbmV3 X2Moc2VsZikKKysgICAgY2RlZiBEaXN0X3ZlY3RvciBfYWRkc3ViKHNlbGYsIERpc3RfdmVjdG9y IHJpZ2h0LCBiaW50IG5lZ2F0ZSkKKysgICAgY3BkZWYgX2FkZF8oc2VsZiwgb3RoZXIpCisgCisg CisgY2RlZiBjbGFzcyBXZWlnaHRLQWN0aW9uKEFjdGlvbik6CitAQCAtMzAsOCArMzAsOCBAQCBj ZGVmIGNsYXNzIFdlaWdodEtBY3Rpb24oQWN0aW9uKToKKyAgICAgY2RlZiBwdWJsaWMgX2RldHR3 aXN0CisgICAgIGNkZWYgcHVibGljIF9TaWdtYTAKKyAKKy0gICAgY3BkZWYgYWN0aW5nX21hdHJp eChzZWxmLCBnLCBNKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfY29tcHV0ZV9hY3RpbmdfbWF0cml4 KHNlbGYsIGcsIE0pIG5vZXhjZXB0CisrICAgIGNwZGVmIGFjdGluZ19tYXRyaXgoc2VsZiwgZywg TSkKKysgICAgY3BkZWYgX2NvbXB1dGVfYWN0aW5nX21hdHJpeChzZWxmLCBnLCBNKQorIAorIGNk ZWYgY2xhc3MgV2VpZ2h0S0FjdGlvbl92ZWN0b3IoV2VpZ2h0S0FjdGlvbik6CisgICAgIHBhc3MK K2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tb2R1bGFyL3BvbGxhY2tfc3RldmVucy9kaXN0LnB5eCBi L3NyYy9zYWdlL21vZHVsYXIvcG9sbGFja19zdGV2ZW5zL2Rpc3QucHl4CitpbmRleCBlOTgzMzNj OWE0MC4uMWY3OTEzM2YyZjUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tb2R1bGFyL3BvbGxhY2tf c3RldmVucy9kaXN0LnB5eAorKysrIGIvc3JjL3NhZ2UvbW9kdWxhci9wb2xsYWNrX3N0ZXZlbnMv ZGlzdC5weXgKK0BAIC0xMzgsNyArMTM4LDcgQEAgY2RlZiBjbGFzcyBEaXN0KE1vZHVsZUVsZW1l bnQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5wYXJlbnQoKS5wcmltZSgp ICoqIChzZWxmLm9yZHApICogc2VsZi5fbW9tZW50cworIAorLSAgICBjcGRlZiBub3JtYWxpemUo c2VsZiwgaW5jbHVkZV96ZXJvdGhfbW9tZW50PVRydWUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBu b3JtYWxpemUoc2VsZiwgaW5jbHVkZV96ZXJvdGhfbW9tZW50PVRydWUpOgorICAgICAgICAgciIi IgorICAgICAgICAgTm9ybWFsaXplIHNvIHRoYXQgdGhlIHByZWNpc2lvbiBvZiB0aGUgYGlgLXRo IG1vbWVudCBpcyBgbi1pYCwKKyAgICAgICAgIHdoZXJlIGBuYCBpcyB0aGUgbnVtYmVyIG9mIG1v bWVudHMuCitAQCAtMTYxLDcgKzE2MSw3IEBAIGNkZWYgY2xhc3MgRGlzdChNb2R1bGVFbGVtZW50 KToKKyAgICAgY2RlZiBsb25nIF9yZWxwcmVjKHNlbGYpIG5vZXhjZXB0OgorICAgICAgICAgcmFp c2UgTm90SW1wbGVtZW50ZWRFcnJvcgorIAorLSAgICBjZGVmIF91bnNjYWxlZF9tb21lbnQoc2Vs ZiwgbG9uZyBpKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfdW5zY2FsZWRfbW9tZW50KHNlbGYsIGxv bmcgaSk6CisgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisgCisgICAgIGNwZGVm IGxvbmcgX29yZF9wKHNlbGYpIG5vZXhjZXB0OgorQEAgLTQ4MSw3ICs0ODEsNyBAQCBjZGVmIGNs YXNzIERpc3QoTW9kdWxlRWxlbWVudCk6CisgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAg IHJldHVybiBhbHBoYQorIAorLSAgICBjcGRlZiBfcmljaGNtcF8oX2xlZnQsIF9yaWdodCwgaW50 IG9wKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3JpY2hjbXBfKF9sZWZ0LCBfcmlnaHQsIGludCBv cCk6CisgICAgICAgICByIiIiCisgICAgICAgICBDb21wYXJpc29uLgorIAorQEAgLTgwMCw3ICs4 MDAsNyBAQCBjZGVmIGNsYXNzIERpc3RfdmVjdG9yKERpc3QpOgorICAgICAgICAgIiIiCisgICAg ICAgICByZXR1cm4gKHNlbGYuX19jbGFzc19fLCAoc2VsZi5fbW9tZW50cywgc2VsZi5wYXJlbnQo KSwgc2VsZi5vcmRwLCBGYWxzZSkpCisgCistICAgIGNkZWYgRGlzdF92ZWN0b3IgX25ld19jKHNl bGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIERpc3RfdmVjdG9yIF9uZXdfYyhzZWxmKToKKyAgICAg ICAgIHIiIiIKKyAgICAgICAgIENyZWF0ZXMgYW4gZW1wdHkgZGlzdHJpYnV0aW9uLgorIAorQEAg LTg4MCw3ICs4ODAsNyBAQCBjZGVmIGNsYXNzIERpc3RfdmVjdG9yKERpc3QpOgorICAgICAgICAg IiIiCisgICAgICAgICByZXR1cm4gbGVuKHNlbGYuX21vbWVudHMpCisgCistICAgIGNkZWYgX3Vu c2NhbGVkX21vbWVudChzZWxmLCBsb25nIG4pIG5vZXhjZXB0OgorKyAgICBjZGVmIF91bnNjYWxl ZF9tb21lbnQoc2VsZiwgbG9uZyBuKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0 aGUgYG5gLXRoIG1vbWVudCwgdW5zY2FsZWQgYnkgdGhlIG92ZXJhbGwgcG93ZXIgb2YgYHBgCisg ICAgICAgICBzdG9yZWQgaW4gYGBzZWxmLm9yZHBgYC4KK0BAIC04OTQsNyArODk0LDcgQEAgY2Rl ZiBjbGFzcyBEaXN0X3ZlY3RvcihEaXN0KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJu IHNlbGYuX21vbWVudHNbbl0KKyAKKy0gICAgY2RlZiBEaXN0X3ZlY3RvciBfYWRkc3ViKHNlbGYs IERpc3RfdmVjdG9yIHJpZ2h0LCBiaW50IG5lZ2F0ZSkgbm9leGNlcHQ6CisrICAgIGNkZWYgRGlz dF92ZWN0b3IgX2FkZHN1YihzZWxmLCBEaXN0X3ZlY3RvciByaWdodCwgYmludCBuZWdhdGUpOgor ICAgICAgICAgciIiIgorICAgICAgICAgQ29tbW9uIGNvZGUgZm9yIHRoZSBzdW0gYW5kIHRoZSBk aWZmZXJlbmNlIG9mIHR3byBkaXN0cmlidXRpb25zCisgCitAQCAtOTM0LDcgKzkzNCw3IEBAIGNk ZWYgY2xhc3MgRGlzdF92ZWN0b3IoRGlzdCk6CisgICAgICAgICBhbnMuX21vbWVudHMgPSBzbW9t ZW50cyArIHJtb21lbnRzCisgICAgICAgICByZXR1cm4gYW5zCisgCistICAgIGNwZGVmIF9hZGRf KHNlbGYsIF9yaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIF9yaWdodCk6 CisgICAgICAgICByIiIiCisgICAgICAgICBTdW0gb2YgdHdvIGRpc3RyaWJ1dGlvbnMuCisgCitA QCAtOTQ3LDcgKzk0Nyw3IEBAIGNkZWYgY2xhc3MgRGlzdF92ZWN0b3IoRGlzdCk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9hZGRzdWIoPERpc3RfdmVjdG9yPl9yaWdodCwg RmFsc2UpCisgCistICAgIGNwZGVmIF9zdWJfKHNlbGYsIF9yaWdodCkgbm9leGNlcHQ6CisrICAg IGNwZGVmIF9zdWJfKHNlbGYsIF9yaWdodCk6CisgICAgICAgICByIiIiCisgICAgICAgICBEaWZm ZXJlbmNlIG9mIHR3byBkaXN0cmlidXRpb25zLgorIAorQEAgLTk2MCw3ICs5NjAsNyBAQCBjZGVm IGNsYXNzIERpc3RfdmVjdG9yKERpc3QpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4g c2VsZi5fYWRkc3ViKDxEaXN0X3ZlY3Rvcj5fcmlnaHQsIFRydWUpCisgCistICAgIGNwZGVmIF9s bXVsXyhzZWxmLCBFbGVtZW50IHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2xtdWxfKHNl bGYsIEVsZW1lbnQgcmlnaHQpOgorICAgICAgICAgciIiIgorICAgICAgICAgU2NhbGFyIHByb2R1 Y3Qgb2YgYSBkaXN0cmlidXRpb24gd2l0aCBhIHJpbmcgZWxlbWVudCB0aGF0IGNvZXJjZXMgaW50 byB0aGUgYmFzZSByaW5nLgorIAorQEAgLTEwNDQsNyArMTA0NCw3IEBAIGNkZWYgY2xhc3MgRGlz dF92ZWN0b3IoRGlzdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBJbnRlZ2VyKGxl bihzZWxmLl9tb21lbnRzKSArIHNlbGYub3JkcCkKKyAKKy0gICAgY3BkZWYgbm9ybWFsaXplKHNl bGYsIGluY2x1ZGVfemVyb3RoX21vbWVudD1UcnVlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgbm9y bWFsaXplKHNlbGYsIGluY2x1ZGVfemVyb3RoX21vbWVudD1UcnVlKToKKyAgICAgICAgIHIiIiIK KyAgICAgICAgIE5vcm1hbGl6ZSBieSByZWR1Y2luZyBtb2R1bG8gYEZpbF5OYCwgd2hlcmUgYE5g IGlzIHRoZSBudW1iZXIgb2YgbW9tZW50cy4KKyAKK0BAIC0xMjcwLDcgKzEyNzAsNyBAQCBjZGVm IGNsYXNzIFdlaWdodEtBY3Rpb24oQWN0aW9uKToKKyAgICAgICAgIHNlbGYuX2FjdG1hdCA9IHt9 CisgICAgICAgICBzZWxmLl9tYXhwcmVjcyA9IHt9CisgCistICAgIGNwZGVmIGFjdGluZ19tYXRy aXgoc2VsZiwgZywgTSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGFjdGluZ19tYXRyaXgoc2VsZiwg ZywgTSk6CisgICAgICAgICByIiIiCisgICAgICAgICBUaGUgbWF0cml4IGRlZmluaW5nIHRoZSBh Y3Rpb24gb2YgYGBnYGAgYXQgcHJlY2lzaW9uIGBgTWBgLgorIAorQEAgLTEzMjgsNyArMTMyOCw3 IEBAIGNkZWYgY2xhc3MgV2VpZ2h0S0FjdGlvbihBY3Rpb24pOgorICAgICAgICAgICAgIG1hdHNb TV0gPSBBCisgICAgICAgICAgICAgcmV0dXJuIEEKKyAKKy0gICAgY3BkZWYgX2NvbXB1dGVfYWN0 aW5nX21hdHJpeChzZWxmLCBnLCBNKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2NvbXB1dGVfYWN0 aW5nX21hdHJpeChzZWxmLCBnLCBNKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIENvbXB1dGUg dGhlIG1hdHJpeCBkZWZpbmluZyB0aGUgYWN0aW9uIG9mIGBgZ2BgIGF0IHByZWNpc2lvbiBgYE1g YC4KKyAKK0BAIC0xMzU3LDcgKzEzNTcsNyBAQCBjZGVmIGNsYXNzIFdlaWdodEtBY3Rpb24oQWN0 aW9uKToKKyAKKyAKKyBjZGVmIGNsYXNzIFdlaWdodEtBY3Rpb25fdmVjdG9yKFdlaWdodEtBY3Rp b24pOgorLSAgICBjcGRlZiBfY29tcHV0ZV9hY3RpbmdfbWF0cml4KHNlbGYsIGcsIE0pIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBfY29tcHV0ZV9hY3RpbmdfbWF0cml4KHNlbGYsIGcsIE0pOgorICAg ICAgICAgciIiIgorICAgICAgICAgQ29tcHV0ZSB0aGUgbWF0cml4IGRlZmluaW5nIHRoZSBhY3Rp b24gb2YgYGBnYGAgYXQgcHJlY2lzaW9uIGBgTWBgLgorIAorQEAgLTE0MTksNyArMTQxOSw3IEBA IGNkZWYgY2xhc3MgV2VpZ2h0S0FjdGlvbl92ZWN0b3IoV2VpZ2h0S0FjdGlvbik6CisgICAgICAg ICAgICAgQiAqPSAoYSAqIGQgLSBiICogYykgKiogKHNlbGYuX2RldHR3aXN0KQorICAgICAgICAg cmV0dXJuIEIKKyAKKy0gICAgY3BkZWYgX2FjdF8oc2VsZiwgZywgX3YpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBfYWN0XyhzZWxmLCBnLCBfdik6CisgICAgICAgICByIiIiCisgICAgICAgICBUaGUg cmlnaHQgYWN0aW9uIG9mIGBgZ2BgIG9uIGEgZGlzdHJpYnV0aW9uLgorIAorZGlmZiAtLWdpdCBh L3NyYy9zYWdlL21vZHVsZXMvZmluaXRlX3N1Ym1vZHVsZV9pdGVyLnB4ZCBiL3NyYy9zYWdlL21v ZHVsZXMvZmluaXRlX3N1Ym1vZHVsZV9pdGVyLnB4ZAoraW5kZXggOTAwZjA0MWUzYTAuLjgxNzNm MjY1NjczIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbW9kdWxlcy9maW5pdGVfc3VibW9kdWxlX2l0 ZXIucHhkCisrKysgYi9zcmMvc2FnZS9tb2R1bGVzL2Zpbml0ZV9zdWJtb2R1bGVfaXRlci5weGQK K0BAIC0xMyw3ICsxMyw3IEBAIGNkZWYgY2xhc3MgRmluaXRlWlpzdWJtb2R1bGVfaXRlcmF0b3I6 CisgICAgIGNkZWYgaW50IF9jb3VudAorICAgICBjZGVmIGludCBfb3JkZXIKKyAgICAgY2RlZiBi aW50IF9pbW11dGFibGUKKy0gICAgY2RlZiBNb2R1bGVFbGVtZW50IF9pdGVyYXRpb24oRmluaXRl WlpzdWJtb2R1bGVfaXRlcmF0b3Igc2VsZikgbm9leGNlcHQKKysgICAgY2RlZiBNb2R1bGVFbGVt ZW50IF9pdGVyYXRpb24oRmluaXRlWlpzdWJtb2R1bGVfaXRlcmF0b3Igc2VsZikKKyAKKyBjZGVm IGNsYXNzIEZpbml0ZUZpZWxkc3Vic3BhY2VfaXRlcmF0b3IoRmluaXRlWlpzdWJtb2R1bGVfaXRl cmF0b3IpOgorICAgICBwYXNzCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbW9kdWxlcy9maW5pdGVf c3VibW9kdWxlX2l0ZXIucHl4IGIvc3JjL3NhZ2UvbW9kdWxlcy9maW5pdGVfc3VibW9kdWxlX2l0 ZXIucHl4CitpbmRleCA0ZjBmYmJkY2EzYi4uZjNlZjE1MmNiODYgMTAwNjQ0CistLS0gYS9zcmMv c2FnZS9tb2R1bGVzL2Zpbml0ZV9zdWJtb2R1bGVfaXRlci5weXgKKysrKyBiL3NyYy9zYWdlL21v ZHVsZXMvZmluaXRlX3N1Ym1vZHVsZV9pdGVyLnB5eAorQEAgLTE5MCw3ICsxOTAsNyBAQCBjZGVm IGNsYXNzIEZpbml0ZVpac3VibW9kdWxlX2l0ZXJhdG9yOgorICAgICAgICAgIiIiCisgICAgICAg ICByZXR1cm4gc2VsZgorIAorLSAgICBjZGVmIE1vZHVsZUVsZW1lbnQgX2l0ZXJhdGlvbihGaW5p dGVaWnN1Ym1vZHVsZV9pdGVyYXRvciBzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBNb2R1bGVF bGVtZW50IF9pdGVyYXRpb24oRmluaXRlWlpzdWJtb2R1bGVfaXRlcmF0b3Igc2VsZik6CisgICAg ICAgICAiIiIKKyAgICAgICAgIFRoaXMgaXMgdGhlIGNvcmUgaW1wbGVtZW50YXRpb24gb2YgdGhl IGl0ZXJhdGlvbi4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tb2R1bGVzL2ZyZWVfbW9kdWxl X2VsZW1lbnQucHhkIGIvc3JjL3NhZ2UvbW9kdWxlcy9mcmVlX21vZHVsZV9lbGVtZW50LnB4ZAor aW5kZXggZTUyNGE0NTg0NzQuLjA4NDQyM2EyNzE0IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbW9k dWxlcy9mcmVlX21vZHVsZV9lbGVtZW50LnB4ZAorKysrIGIvc3JjL3NhZ2UvbW9kdWxlcy9mcmVl X21vZHVsZV9lbGVtZW50LnB4ZAorQEAgLTIsNyArMiw3IEBAIGZyb20gc2FnZS5zdHJ1Y3R1cmUu ZWxlbWVudCBjaW1wb3J0IFZlY3RvcgorIAorIGNkZWYgY2xhc3MgRnJlZU1vZHVsZUVsZW1lbnQo VmVjdG9yKToKKyAgICAgY2RlZiBpbnQgc2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IGksIHZh bHVlKSBleGNlcHQgLTEKKy0gICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSkg bm9leGNlcHQKKysgICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSkKKyAgICAg Y3BkZWYgaW50IGhhbW1pbmdfd2VpZ2h0KHNlbGYpIG5vZXhjZXB0CisgCisgY2RlZiBjbGFzcyBG cmVlTW9kdWxlRWxlbWVudF9nZW5lcmljX2RlbnNlKEZyZWVNb2R1bGVFbGVtZW50KToKK0BAIC0x MCw3ICsxMCw3IEBAIGNkZWYgY2xhc3MgRnJlZU1vZHVsZUVsZW1lbnRfZ2VuZXJpY19kZW5zZShG cmVlTW9kdWxlRWxlbWVudCk6CisgICAgIGNkZWYgbGlzdCBfZW50cmllcworIAorICAgICAjIGNk ZWYnZCBtZXRob2RzCistICAgIGNkZWYgX25ld19jKHNlbGYsIG9iamVjdCB2KSBub2V4Y2VwdAor KyAgICBjZGVmIF9uZXdfYyhzZWxmLCBvYmplY3QgdikKKyAKKyAKKyBjZGVmIGNsYXNzIEZyZWVN b2R1bGVFbGVtZW50X2dlbmVyaWNfc3BhcnNlKEZyZWVNb2R1bGVFbGVtZW50KToKK0BAIC0xOCw1 ICsxOCw1IEBAIGNkZWYgY2xhc3MgRnJlZU1vZHVsZUVsZW1lbnRfZ2VuZXJpY19zcGFyc2UoRnJl ZU1vZHVsZUVsZW1lbnQpOgorICAgICBjZGVmIGRpY3QgX2VudHJpZXMKKyAKKyAgICAgIyBjZGVm J2QgbWV0aG9kcworLSAgICBjZGVmIF9uZXdfYyhzZWxmLCBvYmplY3Qgdikgbm9leGNlcHQKKysg ICAgY2RlZiBfbmV3X2Moc2VsZiwgb2JqZWN0IHYpCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uv bW9kdWxlcy9mcmVlX21vZHVsZV9lbGVtZW50LnB5eCBiL3NyYy9zYWdlL21vZHVsZXMvZnJlZV9t b2R1bGVfZWxlbWVudC5weXgKK2luZGV4IGZmNDNkMjM5NDkzLi5iYWI5M2VlMzY4ZiAxMDA2NDQK Ky0tLSBhL3NyYy9zYWdlL21vZHVsZXMvZnJlZV9tb2R1bGVfZWxlbWVudC5weXgKKysrKyBiL3Ny Yy9zYWdlL21vZHVsZXMvZnJlZV9tb2R1bGVfZWxlbWVudC5weXgKK0BAIC0xNzYyLDcgKzE3NjIs NyBAQCBjZGVmIGNsYXNzIEZyZWVNb2R1bGVFbGVtZW50KFZlY3Rvcik6ICAgIyBhYnN0cmFjdCBi YXNlIGNsYXNzCisgICAgICAgICBzID0gc3VtKGEgKiogcCBmb3IgYSBpbiBhYnNfc2VsZikKKyAg ICAgICAgIHJldHVybiBzKiooX19vbmVfXy9wKQorIAorLSAgICBjcGRlZiBfcmljaGNtcF8obGVm dCwgcmlnaHQsIGludCBvcCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhsZWZ0LCBy aWdodCwgaW50IG9wKToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAg LTE4NDIsNyArMTg0Miw3IEBAIGNkZWYgY2xhc3MgRnJlZU1vZHVsZUVsZW1lbnQoVmVjdG9yKTog ICAjIGFic3RyYWN0IGJhc2UgY2xhc3MKKyAgICAgICAgICAgICAgICAgcmFpc2UgSW5kZXhFcnJv cigidmVjdG9yIGluZGV4IG91dCBvZiByYW5nZSIpCisgICAgICAgICAgICAgcmV0dXJuIHNlbGYu Z2V0X3Vuc2FmZShuKQorIAorLSAgICBjZGVmIGdldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBp KSBub2V4Y2VwdDoKKysgICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIEN5dGhvbiBmdW5jdGlvbiB0byBnZXQgdGhlIGBpYCd0aCBl bnRyeSBvZiB0aGlzIHZlY3Rvci4KKyAKK0BAIC0yNDg0LDcgKzI0ODQsNyBAQCBjZGVmIGNsYXNz IEZyZWVNb2R1bGVFbGVtZW50KFZlY3Rvcik6ICAgIyBhYnN0cmFjdCBiYXNlIGNsYXNzCisgICAg ICAgICBlbHNlOgorICAgICAgICAgICAgIHJldHVybiBwb2ludHModiwgKiprd2RzKQorIAorLSAg ICBjcGRlZiBfZG90X3Byb2R1Y3RfY29lcmNlXyhsZWZ0LCBWZWN0b3IgcmlnaHQpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBfZG90X3Byb2R1Y3RfY29lcmNlXyhsZWZ0LCBWZWN0b3IgcmlnaHQpOgor ICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGRvdCBwcm9kdWN0IG9mIGxlZnQgYW5k IHJpZ2h0LgorIAorQEAgLTQyMjksNyArNDIyOSw3IEBAIGNkZWYgY2xhc3MgRnJlZU1vZHVsZUVs ZW1lbnRfZ2VuZXJpY19kZW5zZShGcmVlTW9kdWxlRWxlbWVudCk6CisgICAgICAgICBzYWdlOiBp c2luc3RhbmNlKGhhc2godiksIGludCkKKyAgICAgICAgIFRydWUKKyAgICAgIiIiCistICAgIGNk ZWYgX25ld19jKHNlbGYsIG9iamVjdCB2KSBub2V4Y2VwdDoKKysgICAgY2RlZiBfbmV3X2Moc2Vs Ziwgb2JqZWN0IHYpOgorICAgICAgICAgIiIiCisgICAgICAgICBDcmVhdGUgYSBuZXcgZGVuc2Ug ZnJlZSBtb2R1bGUgZWxlbWVudCB3aXRoIG1pbmltYWwgb3ZlcmhlYWQgYW5kCisgICAgICAgICBu byB0eXBlIGNoZWNraW5nLgorQEAgLTQzNzMsNyArNDM3Myw3IEBAIGNkZWYgY2xhc3MgRnJlZU1v ZHVsZUVsZW1lbnRfZ2VuZXJpY19kZW5zZShGcmVlTW9kdWxlRWxlbWVudCk6CisgCisgICAgIEBj eXRob24uYm91bmRzY2hlY2soRmFsc2UpCisgICAgIEBjeXRob24ud3JhcGFyb3VuZChGYWxzZSkK Ky0gICAgY3BkZWYgX2FkZF8obGVmdCwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWRk XyhsZWZ0LCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEFkZCBsZWZ0IGFuZCByaWdo dC4KKyAKK0BAIC00MzkwLDcgKzQzOTAsNyBAQCBjZGVmIGNsYXNzIEZyZWVNb2R1bGVFbGVtZW50 X2dlbmVyaWNfZGVuc2UoRnJlZU1vZHVsZUVsZW1lbnQpOgorIAorICAgICBAY3l0aG9uLmJvdW5k c2NoZWNrKEZhbHNlKQorICAgICBAY3l0aG9uLndyYXBhcm91bmQoRmFsc2UpCistICAgIGNwZGVm IF9zdWJfKGxlZnQsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3N1Yl8obGVmdCwgcmln aHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBTdWJ0cmFjdCByaWdodCBmcm9tIGxlZnQuCisg CitAQCAtNDQwOCw3ICs0NDA4LDcgQEAgY2RlZiBjbGFzcyBGcmVlTW9kdWxlRWxlbWVudF9nZW5l cmljX2RlbnNlKEZyZWVNb2R1bGVFbGVtZW50KToKKyAgICAgICAgIHYgPSBbKDxSaW5nRWxlbWVu dD4gYVtpXSkuX3N1Yl8oPFJpbmdFbGVtZW50PiBiW2ldKSBmb3IgaSBpbiByYW5nZShsZWZ0Ll9k ZWdyZWUpXQorICAgICAgICAgcmV0dXJuIGxlZnQuX25ld19jKHYpCisgCistICAgIGNwZGVmIF9y bXVsXyhzZWxmLCBFbGVtZW50IGxlZnQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcm11bF8oc2Vs ZiwgRWxlbWVudCBsZWZ0KToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAor QEAgLTQ0MjIsNyArNDQyMiw3IEBAIGNkZWYgY2xhc3MgRnJlZU1vZHVsZUVsZW1lbnRfZ2VuZXJp Y19kZW5zZShGcmVlTW9kdWxlRWxlbWVudCk6CisgICAgICAgICAgICAgdiA9IFtsZWZ0ICogeCBm b3IgeCBpbiBzZWxmLl9lbnRyaWVzXQorICAgICAgICAgcmV0dXJuIHNlbGYuX25ld19jKHYpCisg CistICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IHJpZ2h0KSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAg ICBFWEFNUExFUzo6CisgCitAQCAtNDQ0MCw3ICs0NDQwLDcgQEAgY2RlZiBjbGFzcyBGcmVlTW9k dWxlRWxlbWVudF9nZW5lcmljX2RlbnNlKEZyZWVNb2R1bGVFbGVtZW50KToKKyAKKyAgICAgQGN5 dGhvbi5ib3VuZHNjaGVjayhGYWxzZSkKKyAgICAgQGN5dGhvbi53cmFwYXJvdW5kKEZhbHNlKQor LSAgICBjcGRlZiBfcGFpcndpc2VfcHJvZHVjdF8obGVmdCwgVmVjdG9yIHJpZ2h0KSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgX3BhaXJ3aXNlX3Byb2R1Y3RfKGxlZnQsIFZlY3RvciByaWdodCk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC00NDcyLDcgKzQ0NzIsNyBA QCBjZGVmIGNsYXNzIEZyZWVNb2R1bGVFbGVtZW50X2dlbmVyaWNfZGVuc2UoRnJlZU1vZHVsZUVs ZW1lbnQpOgorIAorICAgICBAY3l0aG9uLmJvdW5kc2NoZWNrKEZhbHNlKQorICAgICBAY3l0aG9u LndyYXBhcm91bmQoRmFsc2UpCistICAgIGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90 IGkpIG5vZXhjZXB0OgorKyAgICBjZGVmIGdldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpKToK KyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTQ2ODAsNyArNDY4MCw3 IEBAIGNkZWYgY2xhc3MgRnJlZU1vZHVsZUVsZW1lbnRfZ2VuZXJpY19zcGFyc2UoRnJlZU1vZHVs ZUVsZW1lbnQpOgorICAgICAgICAgc2FnZTogKGItYSkuZGljdCgpCisgICAgICAgICB7MjogLTF9 CisgICAgICIiIgorLSAgICBjZGVmIF9uZXdfYyhzZWxmLCBvYmplY3Qgdikgbm9leGNlcHQ6Cisr ICAgIGNkZWYgX25ld19jKHNlbGYsIG9iamVjdCB2KToKKyAgICAgICAgICIiIgorICAgICAgICAg Q3JlYXRlIGEgbmV3IHNwYXJzZSBmcmVlIG1vZHVsZSBlbGVtZW50IHdpdGggbWluaW1hbCBvdmVy aGVhZCBhbmQKKyAgICAgICAgIG5vIHR5cGUgY2hlY2tpbmcuCitAQCAtNDgzMCw3ICs0ODMwLDcg QEAgY2RlZiBjbGFzcyBGcmVlTW9kdWxlRWxlbWVudF9nZW5lcmljX3NwYXJzZShGcmVlTW9kdWxl RWxlbWVudCk6CisgICAgICAgICAgICAgICAgIGVudHJpZXNfZGljdCA9IGRpY3QoZW50cmllc19k aWN0KSAgIyBtYWtlIGEgY29weS9jb252ZXJ0IHRvIGRpY3QKKyAgICAgICAgIHNlbGYuX2VudHJp ZXMgPSBlbnRyaWVzX2RpY3QKKyAKKy0gICAgY3BkZWYgX2FkZF8obGVmdCwgcmlnaHQpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBfYWRkXyhsZWZ0LCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIEFkZCBsZWZ0IGFuZCByaWdodC4KKyAKK0BAIC00ODUyLDcgKzQ4NTIsNyBAQCBjZGVmIGNs YXNzIEZyZWVNb2R1bGVFbGVtZW50X2dlbmVyaWNfc3BhcnNlKEZyZWVNb2R1bGVFbGVtZW50KToK KyAgICAgICAgICAgICAgICAgdltpXSA9IGEKKyAgICAgICAgIHJldHVybiBsZWZ0Ll9uZXdfYyh2 KQorIAorLSAgICBjcGRlZiBfc3ViXyhsZWZ0LCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9zdWJfKGxlZnQsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6Ogor IAorQEAgLTQ4NzIsNyArNDg3Miw3IEBAIGNkZWYgY2xhc3MgRnJlZU1vZHVsZUVsZW1lbnRfZ2Vu ZXJpY19zcGFyc2UoRnJlZU1vZHVsZUVsZW1lbnQpOgorICAgICAgICAgICAgICAgICB2W2ldID0g LWEKKyAgICAgICAgIHJldHVybiBsZWZ0Ll9uZXdfYyh2KQorIAorLSAgICBjcGRlZiBfbG11bF8o c2VsZiwgRWxlbWVudCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBF bGVtZW50IHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAg LTQ4ODgsNyArNDg4OCw3IEBAIGNkZWYgY2xhc3MgRnJlZU1vZHVsZUVsZW1lbnRfZ2VuZXJpY19z cGFyc2UoRnJlZU1vZHVsZUVsZW1lbnQpOgorICAgICAgICAgICAgICAgICAgICAgdltpXSA9IHBy b2QKKyAgICAgICAgIHJldHVybiBzZWxmLl9uZXdfYyh2KQorIAorLSAgICBjcGRlZiBfcm11bF8o c2VsZiwgRWxlbWVudCBsZWZ0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3JtdWxfKHNlbGYsIEVs ZW1lbnQgbGVmdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC00 OTA0LDcgKzQ5MDQsNyBAQCBjZGVmIGNsYXNzIEZyZWVNb2R1bGVFbGVtZW50X2dlbmVyaWNfc3Bh cnNlKEZyZWVNb2R1bGVFbGVtZW50KToKKyAgICAgICAgICAgICAgICAgICAgIHZbaV0gPSBwcm9k CisgICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2ModikKKyAKKy0gICAgY3BkZWYgX2RvdF9wcm9k dWN0X2NvZXJjZV8obGVmdCwgVmVjdG9yIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2Rv dF9wcm9kdWN0X2NvZXJjZV8obGVmdCwgVmVjdG9yIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAg ICAgICAgUmV0dXJuIHRoZSBkb3QgcHJvZHVjdCBvZiBsZWZ0IGFuZCByaWdodC4KKyAKK0BAIC00 OTU2LDcgKzQ5NTYsNyBAQCBjZGVmIGNsYXNzIEZyZWVNb2R1bGVFbGVtZW50X2dlbmVyaWNfc3Bh cnNlKEZyZWVNb2R1bGVFbGVtZW50KToKKyAgICAgICAgICAgICAgICAgeiArPSBhICogZVtpXQor ICAgICAgICAgcmV0dXJuIHoKKyAKKy0gICAgY3BkZWYgX3BhaXJ3aXNlX3Byb2R1Y3RfKGxlZnQs IFZlY3RvciByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9wYWlyd2lzZV9wcm9kdWN0Xyhs ZWZ0LCBWZWN0b3IgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6Cisg CitAQCAtNDk3NCw3ICs0OTc0LDcgQEAgY2RlZiBjbGFzcyBGcmVlTW9kdWxlRWxlbWVudF9nZW5l cmljX3NwYXJzZShGcmVlTW9kdWxlRWxlbWVudCk6CisgICAgICAgICAgICAgICAgICAgICB2W2ld ID0gcHJvZAorICAgICAgICAgcmV0dXJuIGxlZnQuX25ld19jKHYpCisgCistICAgIGNwZGVmIF9y aWNoY21wXyhsZWZ0LCByaWdodCwgaW50IG9wKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3JpY2hj bXBfKGxlZnQsIHJpZ2h0LCBpbnQgb3ApOgorICAgICAgICAgIiIiCisgICAgICAgICBDb21wYXJl IHR3byBzcGFyc2UgZnJlZSBtb2R1bGUgZWxlbWVudHMuCisgCitAQCAtNTEwNSw3ICs1MTA1LDcg QEAgY2RlZiBjbGFzcyBGcmVlTW9kdWxlRWxlbWVudF9nZW5lcmljX3NwYXJzZShGcmVlTW9kdWxl RWxlbWVudCk6CisgICAgICAgICAgICAgcmFpc2UgSW5kZXhFcnJvcigidmVjdG9yIGluZGV4IG91 dCBvZiByYW5nZSIpCisgICAgICAgICByZXR1cm4gc2VsZi5nZXRfdW5zYWZlKG4pCisgCistICAg IGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IGkpIG5vZXhjZXB0OgorKyAgICBjZGVm IGdldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpKToKKyAgICAgICAgICIiIgorICAgICAgICAg RVhBTVBMRVM6OgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21vZHVsZXMvbW9kdWxlLnB5eCBi L3NyYy9zYWdlL21vZHVsZXMvbW9kdWxlLnB5eAoraW5kZXggOGNmMjNhZDNlNzYuLjhjOGMxYTEx M2U5IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbW9kdWxlcy9tb2R1bGUucHl4CisrKysgYi9zcmMv c2FnZS9tb2R1bGVzL21vZHVsZS5weXgKK0BAIC0xMzIsNyArMTMyLDcgQEAgY2RlZiBjbGFzcyBN b2R1bGUoUGFyZW50KToKKyAgICAgICAgICAgICBjYXRlZ29yeSA9IE1vZHVsZXMoYmFzZSkKKyAg ICAgICAgIFBhcmVudC5fX2luaXRfXyhzZWxmLCBiYXNlPWJhc2UsIGNhdGVnb3J5PWNhdGVnb3J5 LCBuYW1lcz1uYW1lcykKKyAKKy0gICAgY3BkZWYgX2NvZXJjZV9tYXBfZnJvbV8oc2VsZiwgTSkg bm9leGNlcHQ6CisrICAgIGNwZGVmIF9jb2VyY2VfbWFwX2Zyb21fKHNlbGYsIE0pOgorICAgICAg ICAgIiIiCisgICAgICAgICBSZXR1cm4gYSBjb2VyY2lvbiBtYXAgZnJvbSBgTWAgdG8gYGBzZWxm YGAsIG9yIE5vbmUuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbW9kdWxlcy92ZWN0b3JfZG91 YmxlX2RlbnNlLnB5eCBiL3NyYy9zYWdlL21vZHVsZXMvdmVjdG9yX2RvdWJsZV9kZW5zZS5weXgK K2luZGV4IDc0YzczMjcwZmZjLi5lYzFjZTQ3ODExYiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21v ZHVsZXMvdmVjdG9yX2RvdWJsZV9kZW5zZS5weXgKKysrKyBiL3NyYy9zYWdlL21vZHVsZXMvdmVj dG9yX2RvdWJsZV9kZW5zZS5weXgKK0BAIC04MSw3ICs4MSw3IEBAIGNkZWYgY2xhc3MgVmVjdG9y X2RvdWJsZV9kZW5zZShWZWN0b3JfbnVtcHlfZGVuc2UpOgorICAgICAgICAgMzAuMAorICAgICAi IiIKKyAKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBfYWRkXyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEFkZCB0d28gdmVj dG9ycyB0b2dldGhlci4KKyAKK0BAIC0xMDEsNyArMTAxLDcgQEAgY2RlZiBjbGFzcyBWZWN0b3Jf ZG91YmxlX2RlbnNlKFZlY3Rvcl9udW1weV9kZW5zZSk6CisgCisgICAgICAgICByZXR1cm4gc2Vs Zi5fbmV3KF9sZWZ0Ll92ZWN0b3JfbnVtcHkgKyBfcmlnaHQuX3ZlY3Rvcl9udW1weSkKKyAKKy0g ICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc3ViXyhz ZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBzZWxmIC0gcmlnaHQK KyAKK0BAIC0xMjEsNyArMTIxLDcgQEAgY2RlZiBjbGFzcyBWZWN0b3JfZG91YmxlX2RlbnNlKFZl Y3Rvcl9udW1weV9kZW5zZSk6CisgCisgICAgICAgICByZXR1cm4gc2VsZi5fbmV3KF9sZWZ0Ll92 ZWN0b3JfbnVtcHkgLSBfcmlnaHQuX3ZlY3Rvcl9udW1weSkKKyAKKy0gICAgY3BkZWYgX2RvdF9w cm9kdWN0XyhzZWxmLCBWZWN0b3IgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZG90X3By b2R1Y3RfKHNlbGYsIFZlY3RvciByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIERvdCBw cm9kdWN0IG9mIHNlbGYgYW5kIHJpZ2h0LgorIAorQEAgLTE0NSw3ICsxNDUsNyBAQCBjZGVmIGNs YXNzIFZlY3Rvcl9kb3VibGVfZGVuc2UoVmVjdG9yX251bXB5X2RlbnNlKToKKyAKKyAgICAgICAg IHJldHVybiBzZWxmLl9zYWdlX2R0eXBlKG51bXB5LmRvdChfbGVmdC5fdmVjdG9yX251bXB5LCBf cmlnaHQuX3ZlY3Rvcl9udW1weSkpCisgCistICAgIGNwZGVmIF9wYWlyd2lzZV9wcm9kdWN0Xyhz ZWxmLCBWZWN0b3IgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcGFpcndpc2VfcHJvZHVj dF8oc2VsZiwgVmVjdG9yIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRo ZSBjb21wb25lbnQtd2lzZSBwcm9kdWN0IG9mIHNlbGYgYW5kIHJpZ2h0LgorIAorQEAgLTE2OCw3 ICsxNjgsNyBAQCBjZGVmIGNsYXNzIFZlY3Rvcl9kb3VibGVfZGVuc2UoVmVjdG9yX251bXB5X2Rl bnNlKToKKyAKKyAgICAgICAgIHJldHVybiBzZWxmLl9uZXcoX2xlZnQuX3ZlY3Rvcl9udW1weSAq IF9yaWdodC5fdmVjdG9yX251bXB5KQorIAorLSAgICBjcGRlZiBfcm11bF8oc2VsZiwgRWxlbWVu dCBsZWZ0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3JtdWxfKHNlbGYsIEVsZW1lbnQgbGVmdCk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIE11bHRpcGx5IGEgc2NhbGFyIGFuZCB2ZWN0b3IKKyAK K0BAIC0xODQsNyArMTg0LDcgQEAgY2RlZiBjbGFzcyBWZWN0b3JfZG91YmxlX2RlbnNlKFZlY3Rv cl9udW1weV9kZW5zZSk6CisgCisgICAgICAgICByZXR1cm4gc2VsZi5fbmV3KHNlbGYuX3B5dGhv bl9kdHlwZShsZWZ0KSpzZWxmLl92ZWN0b3JfbnVtcHkpCisgCistICAgIGNwZGVmIF9sbXVsXyhz ZWxmLCBFbGVtZW50IHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVs ZW1lbnQgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBNdWx0aXBseSBhIHNjYWxhciBh bmQgdmVjdG9yCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbW9kdWxlcy92ZWN0b3JfaW50ZWdl cl9kZW5zZS5weGQgYi9zcmMvc2FnZS9tb2R1bGVzL3ZlY3Rvcl9pbnRlZ2VyX2RlbnNlLnB4ZAor aW5kZXggMGRiNDgwOGJlNjMuLmZmMjg0M2Y0ODFmIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbW9k dWxlcy92ZWN0b3JfaW50ZWdlcl9kZW5zZS5weGQKKysrKyBiL3NyYy9zYWdlL21vZHVsZXMvdmVj dG9yX2ludGVnZXJfZGVuc2UucHhkCitAQCAtNyw3ICs3LDcgQEAgY2RlZiBjbGFzcyBWZWN0b3Jf aW50ZWdlcl9kZW5zZShGcmVlTW9kdWxlRWxlbWVudCk6CisgICAgIGNkZWYgbXB6X3QqIF9lbnRy aWVzCisgICAgIGNkZWYgaW50IF9pbml0KHNlbGYsIFB5X3NzaXplX3QgZGVncmVlLCBQYXJlbnQg cGFyZW50KSBleGNlcHQgLTEKKyAKKy0gICAgY2RlZiBpbmxpbmUgVmVjdG9yX2ludGVnZXJfZGVu c2UgX25ld19jKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIGlubGluZSBWZWN0b3JfaW50ZWdl cl9kZW5zZSBfbmV3X2Moc2VsZik6CisgICAgICAgICBjZGVmIHR5cGUgdCA9IHR5cGUoc2VsZikK KyAgICAgICAgIGNkZWYgVmVjdG9yX2ludGVnZXJfZGVuc2UgeCA9IDxWZWN0b3JfaW50ZWdlcl9k ZW5zZT4odC5fX25ld19fKHQpKQorICAgICAgICAgeC5faW5pdChzZWxmLl9kZWdyZWUsIHNlbGYu X3BhcmVudCkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tb2R1bGVzL3ZlY3Rvcl9pbnRlZ2VyX2Rl bnNlLnB5eCBiL3NyYy9zYWdlL21vZHVsZXMvdmVjdG9yX2ludGVnZXJfZGVuc2UucHl4CitpbmRl eCA1MmUwYmJkNDA2NC4uNDBkZTQ0ZWM2ODQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tb2R1bGVz L3ZlY3Rvcl9pbnRlZ2VyX2RlbnNlLnB5eAorKysrIGIvc3JjL3NhZ2UvbW9kdWxlcy92ZWN0b3Jf aW50ZWdlcl9kZW5zZS5weXgKK0BAIC0xMzAsNyArMTMwLDcgQEAgY2RlZiBjbGFzcyBWZWN0b3Jf aW50ZWdlcl9kZW5zZShmcmVlX21vZHVsZV9lbGVtZW50LkZyZWVNb2R1bGVFbGVtZW50KToKKyAg ICAgICAgICAgICAgICAgbXB6X2NsZWFyKHNlbGYuX2VudHJpZXNbaV0pCisgICAgICAgICAgICAg c2lnX2ZyZWUoc2VsZi5fZW50cmllcykKKyAKKy0gICAgY3BkZWYgX3JpY2hjbXBfKGxlZnQsIHJp Z2h0LCBpbnQgb3ApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQs IGludCBvcCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0xNTks NyArMTU5LDcgQEAgY2RlZiBjbGFzcyBWZWN0b3JfaW50ZWdlcl9kZW5zZShmcmVlX21vZHVsZV9l bGVtZW50LkZyZWVNb2R1bGVFbGVtZW50KToKKyAgICAgICAgICAgICAgICAgcmV0dXJuIHJpY2hf dG9fYm9vbChvcCwgMSkKKyAgICAgICAgIHJldHVybiByaWNoX3RvX2Jvb2wob3AsIDApCisgCist ICAgIGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IGkpIG5vZXhjZXB0OgorKyAgICBj ZGVmIGdldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpKToKKyAgICAgICAgICIiIgorICAgICAg ICAgRVhBTVBMRVM6OgorIAorQEAgLTIxNSw3ICsyMTUsNyBAQCBjZGVmIGNsYXNzIFZlY3Rvcl9p bnRlZ2VyX2RlbnNlKGZyZWVfbW9kdWxlX2VsZW1lbnQuRnJlZU1vZHVsZUVsZW1lbnQpOgorICAg ICAgICAgcmV0dXJuICh1bnBpY2tsZV92MSwgKHNlbGYuX3BhcmVudCwgc2VsZi5saXN0KCksIHNl bGYuX2RlZ3JlZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3Qgc2VsZi5faXNf aW1tdXRhYmxlKSkKKyAKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBfYWRkXyhzZWxmLCByaWdodCk6CisgICAgICAgICBjZGVmIFZlY3Rvcl9pbnRl Z2VyX2RlbnNlIHosIHIKKyAgICAgICAgIHIgPSByaWdodAorICAgICAgICAgeiA9IHNlbGYuX25l d19jKCkKK0BAIC0yMjUsNyArMjI1LDcgQEAgY2RlZiBjbGFzcyBWZWN0b3JfaW50ZWdlcl9kZW5z ZShmcmVlX21vZHVsZV9lbGVtZW50LkZyZWVNb2R1bGVFbGVtZW50KToKKyAgICAgICAgIHJldHVy biB6CisgCisgCistICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgY2RlZiBWZWN0b3JfaW50ZWdlcl9k ZW5zZSB6LCByCisgICAgICAgICByID0gcmlnaHQKKyAgICAgICAgIHogPSBzZWxmLl9uZXdfYygp CitAQCAtMjM0LDcgKzIzNCw3IEBAIGNkZWYgY2xhc3MgVmVjdG9yX2ludGVnZXJfZGVuc2UoZnJl ZV9tb2R1bGVfZWxlbWVudC5GcmVlTW9kdWxlRWxlbWVudCk6CisgICAgICAgICAgICAgbXB6X3N1 Yih6Ll9lbnRyaWVzW2ldLCBzZWxmLl9lbnRyaWVzW2ldLCByLl9lbnRyaWVzW2ldKQorICAgICAg ICAgcmV0dXJuIHoKKyAKKy0gICAgY3BkZWYgX2RvdF9wcm9kdWN0XyhzZWxmLCBWZWN0b3Igcmln aHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZG90X3Byb2R1Y3RfKHNlbGYsIFZlY3RvciByaWdo dCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIERvdCBwcm9kdWN0IG9mIGRlbnNlIHZlY3RvcnMg b3ZlciB0aGUgaW50ZWdlcnMuCisgCitAQCAtMjU4LDcgKzI1OCw3IEBAIGNkZWYgY2xhc3MgVmVj dG9yX2ludGVnZXJfZGVuc2UoZnJlZV9tb2R1bGVfZWxlbWVudC5GcmVlTW9kdWxlRWxlbWVudCk6 CisgICAgICAgICBtcHpfY2xlYXIodCkKKyAgICAgICAgIHJldHVybiB6CisgCistICAgIGNwZGVm IF9wYWlyd2lzZV9wcm9kdWN0XyhzZWxmLCBWZWN0b3IgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBfcGFpcndpc2VfcHJvZHVjdF8oc2VsZiwgVmVjdG9yIHJpZ2h0KToKKyAgICAgICAgICIi IgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTI3NCw3ICsyNzQsNyBAQCBjZGVmIGNsYXNz IFZlY3Rvcl9pbnRlZ2VyX2RlbnNlKGZyZWVfbW9kdWxlX2VsZW1lbnQuRnJlZU1vZHVsZUVsZW1l bnQpOgorICAgICAgICAgICAgIG1wel9tdWwoei5fZW50cmllc1tpXSwgc2VsZi5fZW50cmllc1tp XSwgci5fZW50cmllc1tpXSkKKyAgICAgICAgIHJldHVybiB6CisgCistICAgIGNwZGVmIF9ybXVs XyhzZWxmLCBFbGVtZW50IGxlZnQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcm11bF8oc2VsZiwg RWxlbWVudCBsZWZ0KToKKyAgICAgICAgIGNkZWYgVmVjdG9yX2ludGVnZXJfZGVuc2UgegorICAg ICAgICAgY2RlZiBJbnRlZ2VyIGEKKyAgICAgICAgIGEgPSBsZWZ0CitAQCAtMjg0LDcgKzI4NCw3 IEBAIGNkZWYgY2xhc3MgVmVjdG9yX2ludGVnZXJfZGVuc2UoZnJlZV9tb2R1bGVfZWxlbWVudC5G cmVlTW9kdWxlRWxlbWVudCk6CisgICAgICAgICAgICAgbXB6X211bCh6Ll9lbnRyaWVzW2ldLCBz ZWxmLl9lbnRyaWVzW2ldLCBhLnZhbHVlKQorICAgICAgICAgcmV0dXJuIHoKKyAKKy0gICAgY3Bk ZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbG11 bF8oc2VsZiwgRWxlbWVudCByaWdodCk6CisgICAgICAgICBjZGVmIFZlY3Rvcl9pbnRlZ2VyX2Rl bnNlIHoKKyAgICAgICAgIGNkZWYgSW50ZWdlciBhCisgICAgICAgICBhID0gcmlnaHQKK0BAIC0y OTQsNyArMjk0LDcgQEAgY2RlZiBjbGFzcyBWZWN0b3JfaW50ZWdlcl9kZW5zZShmcmVlX21vZHVs ZV9lbGVtZW50LkZyZWVNb2R1bGVFbGVtZW50KToKKyAgICAgICAgICAgICBtcHpfbXVsKHouX2Vu dHJpZXNbaV0sIHNlbGYuX2VudHJpZXNbaV0sIGEudmFsdWUpCisgICAgICAgICByZXR1cm4gegor IAorLSAgICBjcGRlZiBfbmVnXyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX25lZ18oc2Vs Zik6CisgICAgICAgICBjZGVmIFZlY3Rvcl9pbnRlZ2VyX2RlbnNlIHoKKyAgICAgICAgIHogPSBz ZWxmLl9uZXdfYygpCisgICAgICAgICBjZGVmIFB5X3NzaXplX3QgaQorZGlmZiAtLWdpdCBhL3Ny Yy9zYWdlL21vZHVsZXMvdmVjdG9yX2ludGVnZXJfc3BhcnNlLnB4ZCBiL3NyYy9zYWdlL21vZHVs ZXMvdmVjdG9yX2ludGVnZXJfc3BhcnNlLnB4ZAoraW5kZXggNDc5MWI3Nzg0OTcuLjQyODE4MTI0 YTgyIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbW9kdWxlcy92ZWN0b3JfaW50ZWdlcl9zcGFyc2Uu cHhkCisrKysgYi9zcmMvc2FnZS9tb2R1bGVzL3ZlY3Rvcl9pbnRlZ2VyX3NwYXJzZS5weGQKK0BA IC0xOSw3ICsxOSw3IEBAIGNkZWYgUHlfc3NpemVfdCBtcHpfYmluYXJ5X3NlYXJjaDAobXB6X3Qq IHYsIFB5X3NzaXplX3QgbiwgbXB6X3QgeCkgbm9leGNlcHQKKyBjZGVmIFB5X3NzaXplX3QgbXB6 X2JpbmFyeV9zZWFyY2gobXB6X3QqIHYsIFB5X3NzaXplX3QgbiwgbXB6X3QgeCwgUHlfc3NpemVf dCogaW5zKSBub2V4Y2VwdAorIGNkZWYgaW50IG1wel92ZWN0b3JfZ2V0X2VudHJ5KG1wel90IGFu cywgbXB6X3ZlY3RvciogdiwgUHlfc3NpemVfdCBuKSBleGNlcHQgLTEKKyBjZGVmIGJpbnQgbXB6 X3ZlY3Rvcl9pc19lbnRyeV96ZXJvX3Vuc2FmZShtcHpfdmVjdG9yKiB2LCBQeV9zc2l6ZV90IG4p IG5vZXhjZXB0CistY2RlZiBvYmplY3QgbXB6X3ZlY3Rvcl90b19saXN0KG1wel92ZWN0b3IqIHYp IG5vZXhjZXB0CisrY2RlZiBvYmplY3QgbXB6X3ZlY3Rvcl90b19saXN0KG1wel92ZWN0b3IqIHYp CisgY2RlZiBpbnQgbXB6X3ZlY3Rvcl9zZXRfZW50cnkobXB6X3ZlY3RvciogdiwgUHlfc3NpemVf dCBuLCBtcHpfdCB4KSBleGNlcHQgLTEKKyBjZGVmIGludCBtcHpfdmVjdG9yX3NldF9lbnRyeV9z dHIobXB6X3ZlY3RvciogdiwgUHlfc3NpemVfdCBuLCBjaGFyICp4X3N0cikgZXhjZXB0IC0xCisg Y2RlZiBpbnQgYWRkX21wel92ZWN0b3JfaW5pdChtcHpfdmVjdG9yKiBzdW0sIG1wel92ZWN0b3Iq IHYsIG1wel92ZWN0b3IqIHcsIG1wel90IG11bHRpcGxlKSBleGNlcHQgLTEKK2RpZmYgLS1naXQg YS9zcmMvc2FnZS9tb2R1bGVzL3ZlY3Rvcl9pbnRlZ2VyX3NwYXJzZS5weXggYi9zcmMvc2FnZS9t b2R1bGVzL3ZlY3Rvcl9pbnRlZ2VyX3NwYXJzZS5weXgKK2luZGV4IGQ1ZjI5NThlYTU5Li41N2E3 YjcwYmRlNCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21vZHVsZXMvdmVjdG9yX2ludGVnZXJfc3Bh cnNlLnB5eAorKysrIGIvc3JjL3NhZ2UvbW9kdWxlcy92ZWN0b3JfaW50ZWdlcl9zcGFyc2UucHl4 CitAQCAtMTUxLDcgKzE1MSw3IEBAIGNkZWYgYmludCBtcHpfdmVjdG9yX2lzX2VudHJ5X3plcm9f dW5zYWZlKG1wel92ZWN0b3IqIHYsIFB5X3NzaXplX3Qgbikgbm9leGNlcHQ6CisgICAgICIiIgor ICAgICByZXR1cm4gYmluYXJ5X3NlYXJjaDAodi5wb3NpdGlvbnMsIHYubnVtX25vbnplcm8sIG4p ID09IC0xCisgCistY2RlZiBvYmplY3QgbXB6X3ZlY3Rvcl90b19saXN0KG1wel92ZWN0b3IqIHYp IG5vZXhjZXB0OgorK2NkZWYgb2JqZWN0IG1wel92ZWN0b3JfdG9fbGlzdChtcHpfdmVjdG9yKiB2 KToKKyAgICAgIiIiCisgICAgIFJldHVybnMgYSBQeXRob24gbGlzdCBvZiAyLXR1cGxlcyAoaSx4 KSwgd2hlcmUgeD12W2ldIHJ1bnMKKyAgICAgdGhyb3VnaCB0aGUgbm9uemVybyBlbGVtZW50cyBv ZiB4LCBpbiBvcmRlci4KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tb2R1bGVzL3ZlY3Rvcl9tb2Qy X2RlbnNlLnB4ZCBiL3NyYy9zYWdlL21vZHVsZXMvdmVjdG9yX21vZDJfZGVuc2UucHhkCitpbmRl eCAxMjkyNzYyYTc2ZS4uNDUzNWZlMzI3M2QgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tb2R1bGVz L3ZlY3Rvcl9tb2QyX2RlbnNlLnB4ZAorKysrIGIvc3JjL3NhZ2UvbW9kdWxlcy92ZWN0b3JfbW9k Ml9kZW5zZS5weGQKK0BAIC02LDUgKzYsNSBAQCBjZGVmIGNsYXNzIFZlY3Rvcl9tb2QyX2RlbnNl KEZyZWVNb2R1bGVFbGVtZW50KToKKyAgICAgY2RlZiBtemRfdCogX2VudHJpZXMKKyAgICAgY2Rl ZiBvYmplY3QgX2Jhc2VfcmluZworIAorLSAgICBjZGVmIF9uZXdfYyhzZWxmKSBub2V4Y2VwdAor LSAgICBjZGVmIF9pbml0KHNlbGYsIFB5X3NzaXplX3QgZGVncmVlLCBwYXJlbnQpIG5vZXhjZXB0 CisrICAgIGNkZWYgX25ld19jKHNlbGYpCisrICAgIGNkZWYgX2luaXQoc2VsZiwgUHlfc3NpemVf dCBkZWdyZWUsIHBhcmVudCkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tb2R1bGVzL3ZlY3Rvcl9t b2QyX2RlbnNlLnB5eCBiL3NyYy9zYWdlL21vZHVsZXMvdmVjdG9yX21vZDJfZGVuc2UucHl4Citp bmRleCA5NGY2M2YzNWM1Ni4uNGQ1NDRjMGM3ZTEgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tb2R1 bGVzL3ZlY3Rvcl9tb2QyX2RlbnNlLnB5eAorKysrIGIvc3JjL3NhZ2UvbW9kdWxlcy92ZWN0b3Jf bW9kMl9kZW5zZS5weXgKK0BAIC01MCw3ICs1MCw3IEBAIGNpbXBvcnQgc2FnZS5tb2R1bGVzLmZy ZWVfbW9kdWxlX2VsZW1lbnQgYXMgZnJlZV9tb2R1bGVfZWxlbWVudAorIGZyb20gc2FnZS5saWJz Lm00cmkgY2ltcG9ydCAqCisgCisgY2RlZiBjbGFzcyBWZWN0b3JfbW9kMl9kZW5zZShmcmVlX21v ZHVsZV9lbGVtZW50LkZyZWVNb2R1bGVFbGVtZW50KToKKy0gICAgY2RlZiBfbmV3X2Moc2VsZikg bm9leGNlcHQ6CisrICAgIGNkZWYgX25ld19jKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAg ICBFWEFNUExFUzo6CisgCitAQCAtMTA1LDcgKzEwNSw3IEBAIGNkZWYgY2xhc3MgVmVjdG9yX21v ZDJfZGVuc2UoZnJlZV9tb2R1bGVfZWxlbWVudC5GcmVlTW9kdWxlRWxlbWVudCk6CisgICAgICAg ICAgICAgbXpkX2NvcHkoeS5fZW50cmllcywgc2VsZi5fZW50cmllcykKKyAgICAgICAgIHJldHVy biB5CisgCistICAgIGNkZWYgX2luaXQoc2VsZiwgUHlfc3NpemVfdCBkZWdyZWUsIHBhcmVudCkg bm9leGNlcHQ6CisrICAgIGNkZWYgX2luaXQoc2VsZiwgUHlfc3NpemVfdCBkZWdyZWUsIHBhcmVu dCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0yMjcsNyArMjI3 LDcgQEAgY2RlZiBjbGFzcyBWZWN0b3JfbW9kMl9kZW5zZShmcmVlX21vZHVsZV9lbGVtZW50LkZy ZWVNb2R1bGVFbGVtZW50KToKKyAgICAgICAgIGlmIHNlbGYuX2VudHJpZXM6CisgICAgICAgICAg ICAgbXpkX2ZyZWUoc2VsZi5fZW50cmllcykKKyAKKy0gICAgY3BkZWYgX3JpY2hjbXBfKGxlZnQs IHJpZ2h0LCBpbnQgb3ApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmln aHQsIGludCBvcCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0y NTMsNyArMjUzLDcgQEAgY2RlZiBjbGFzcyBWZWN0b3JfbW9kMl9kZW5zZShmcmVlX21vZHVsZV9l bGVtZW50LkZyZWVNb2R1bGVFbGVtZW50KToKKyAgICAgICAgIGMgPSBtemRfY21wKGxlZnQuX2Vu dHJpZXMsICg8VmVjdG9yX21vZDJfZGVuc2U+cmlnaHQpLl9lbnRyaWVzKQorICAgICAgICAgcmV0 dXJuIHJpY2hfdG9fYm9vbChvcCwgYykKKyAKKy0gICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5 X3NzaXplX3QgaSkgbm9leGNlcHQ6CisrICAgIGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6 ZV90IGkpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMzAyLDcg KzMwMiw3IEBAIGNkZWYgY2xhc3MgVmVjdG9yX21vZDJfZGVuc2UoZnJlZV9tb2R1bGVfZWxlbWVu dC5GcmVlTW9kdWxlRWxlbWVudCk6CisgICAgICAgICByZXR1cm4gdW5waWNrbGVfdjAsIChzZWxm Ll9wYXJlbnQsIHNlbGYubGlzdCgpLCBzZWxmLl9kZWdyZWUsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLl9pc19pbW11dGFibGUpCisgCistICAgIGNwZGVmIF9hZGRfKHNlbGYs IHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQpOgorICAgICAg ICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMzE3LDcgKzMxNyw3IEBAIGNkZWYg Y2xhc3MgVmVjdG9yX21vZDJfZGVuc2UoZnJlZV9tb2R1bGVfZWxlbWVudC5GcmVlTW9kdWxlRWxl bWVudCk6CisgICAgICAgICAgICAgbXpkX2FkZCh6Ll9lbnRyaWVzLCBzZWxmLl9lbnRyaWVzLCAo PFZlY3Rvcl9tb2QyX2RlbnNlPnJpZ2h0KS5fZW50cmllcykKKyAgICAgICAgIHJldHVybiB6Cisg CistICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3N1 Yl8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitA QCAtMzQ5LDcgKzM0OSw3IEBAIGNkZWYgY2xhc3MgVmVjdG9yX21vZDJfZGVuc2UoZnJlZV9tb2R1 bGVfZWxlbWVudC5GcmVlTW9kdWxlRWxlbWVudCk6CisgICAgICAgICByZXR1cm4gcmVzCisgCisg CistICAgIGNwZGVmIF9kb3RfcHJvZHVjdF8oc2VsZiwgVmVjdG9yIHJpZ2h0KSBub2V4Y2VwdDoK KysgICAgY3BkZWYgX2RvdF9wcm9kdWN0XyhzZWxmLCBWZWN0b3IgcmlnaHQpOgorICAgICAgICAg IiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMzk3LDcgKzM5Nyw3IEBAIGNkZWYgY2xh c3MgVmVjdG9yX21vZDJfZGVuc2UoZnJlZV9tb2R1bGVfZWxlbWVudC5GcmVlTW9kdWxlRWxlbWVu dCk6CisgCisgICAgICAgICByZXR1cm4gbgorIAorLSAgICBjcGRlZiBfcGFpcndpc2VfcHJvZHVj dF8oc2VsZiwgVmVjdG9yIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3BhaXJ3aXNlX3By b2R1Y3RfKHNlbGYsIFZlY3RvciByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1Q TEVTOjoKKyAKK0BAIC00MTksNyArNDE5LDcgQEAgY2RlZiBjbGFzcyBWZWN0b3JfbW9kMl9kZW5z ZShmcmVlX21vZHVsZV9lbGVtZW50LkZyZWVNb2R1bGVFbGVtZW50KToKKyAgICAgICAgICAgICB6 cm93W2ldID0gKGxyb3dbaV0gJiBycm93W2ldKQorICAgICAgICAgcmV0dXJuIHoKKyAKKy0gICAg Y3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgbGVmdCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9s bXVsXyhzZWxmLCBFbGVtZW50IGxlZnQpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExF Uzo6CisgCitAQCAtNDQ3LDcgKzQ0Nyw3IEBAIGNkZWYgY2xhc3MgVmVjdG9yX21vZDJfZGVuc2Uo ZnJlZV9tb2R1bGVfZWxlbWVudC5GcmVlTW9kdWxlRWxlbWVudCk6CisgICAgICAgICAgICAgcmV0 dXJuIHNlbGYuX19jb3B5X18oKQorICAgICAgICAgcmV0dXJuIHNlbGYuX25ld19jKCkKKyAKKy0g ICAgY3BkZWYgX25lZ18oc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9uZWdfKHNlbGYpOgor ICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitkaWZmIC0tZ2l0IGEvc3JjL3Nh Z2UvbW9kdWxlcy92ZWN0b3JfbW9kbl9kZW5zZS5weGQgYi9zcmMvc2FnZS9tb2R1bGVzL3ZlY3Rv cl9tb2RuX2RlbnNlLnB4ZAoraW5kZXggNmU3MjY2NTFlYTEuLjVkZTE2NmYxYjg1IDEwMDY0NAor LS0tIGEvc3JjL3NhZ2UvbW9kdWxlcy92ZWN0b3JfbW9kbl9kZW5zZS5weGQKKysrKyBiL3NyYy9z YWdlL21vZHVsZXMvdmVjdG9yX21vZG5fZGVuc2UucHhkCitAQCAtNyw1ICs3LDUgQEAgY2RlZiBj bGFzcyBWZWN0b3JfbW9kbl9kZW5zZShGcmVlTW9kdWxlRWxlbWVudCk6CisgICAgIGNkZWYgbW9k X2ludCBfcAorICAgICBjZGVmIG9iamVjdCBfYmFzZV9yaW5nCisgCistICAgIGNkZWYgX25ld19j KHNlbGYpIG5vZXhjZXB0CistICAgIGNkZWYgX2luaXQoc2VsZiwgUHlfc3NpemVfdCBkZWdyZWUs IHBhcmVudCwgbW9kX2ludCBwKSBub2V4Y2VwdAorKyAgICBjZGVmIF9uZXdfYyhzZWxmKQorKyAg ICBjZGVmIF9pbml0KHNlbGYsIFB5X3NzaXplX3QgZGVncmVlLCBwYXJlbnQsIG1vZF9pbnQgcCkK K2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tb2R1bGVzL3ZlY3Rvcl9tb2RuX2RlbnNlLnB5eCBiL3Ny Yy9zYWdlL21vZHVsZXMvdmVjdG9yX21vZG5fZGVuc2UucHl4CitpbmRleCBjMjE1NWE2ODk5MC4u NWM3NDViYjFkZjYgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tb2R1bGVzL3ZlY3Rvcl9tb2RuX2Rl bnNlLnB5eAorKysrIGIvc3JjL3NhZ2UvbW9kdWxlcy92ZWN0b3JfbW9kbl9kZW5zZS5weXgKK0BA IC0xMzUsNyArMTM1LDcgQEAgY2ltcG9ydCBzYWdlLm1vZHVsZXMuZnJlZV9tb2R1bGVfZWxlbWVu dCBhcyBmcmVlX21vZHVsZV9lbGVtZW50CisgCisgCisgY2RlZiBjbGFzcyBWZWN0b3JfbW9kbl9k ZW5zZShmcmVlX21vZHVsZV9lbGVtZW50LkZyZWVNb2R1bGVFbGVtZW50KToKKy0gICAgY2RlZiBf bmV3X2Moc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgX25ld19jKHNlbGYpOgorICAgICAgICAg Y2RlZiBWZWN0b3JfbW9kbl9kZW5zZSB5CisgICAgICAgICB5ID0gVmVjdG9yX21vZG5fZGVuc2Uu X19uZXdfXyhWZWN0b3JfbW9kbl9kZW5zZSkKKyAgICAgICAgIHkuX2luaXQoc2VsZi5fZGVncmVl LCBzZWxmLl9wYXJlbnQsIHNlbGYuX3ApCitAQCAtMTU1LDcgKzE1NSw3IEBAIGNkZWYgY2xhc3Mg VmVjdG9yX21vZG5fZGVuc2UoZnJlZV9tb2R1bGVfZWxlbWVudC5GcmVlTW9kdWxlRWxlbWVudCk6 CisgICAgICAgICAgICAgeS5fZW50cmllc1tpXSA9IHNlbGYuX2VudHJpZXNbaV0KKyAgICAgICAg IHJldHVybiB5CisgCistICAgIGNkZWYgX2luaXQoc2VsZiwgUHlfc3NpemVfdCBkZWdyZWUsIHBh cmVudCwgbW9kX2ludCBwKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfaW5pdChzZWxmLCBQeV9zc2l6 ZV90IGRlZ3JlZSwgcGFyZW50LCBtb2RfaW50IHApOgorICAgICAgICAgc2VsZi5fZGVncmVlID0g ZGVncmVlCisgICAgICAgICBzZWxmLl9wYXJlbnQgPSBwYXJlbnQKKyAgICAgICAgIHNlbGYuX3Ag PSBwCitAQCAtMTk0LDcgKzE5NCw3IEBAIGNkZWYgY2xhc3MgVmVjdG9yX21vZG5fZGVuc2UoZnJl ZV9tb2R1bGVfZWxlbWVudC5GcmVlTW9kdWxlRWxlbWVudCk6CisgICAgIGRlZiBfX2RlYWxsb2Nf XyhzZWxmKToKKyAgICAgICAgIHNpZ19mcmVlKHNlbGYuX2VudHJpZXMpCisgCistICAgIGNwZGVm IF9yaWNoY21wXyhsZWZ0LCByaWdodCwgaW50IG9wKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3Jp Y2hjbXBfKGxlZnQsIHJpZ2h0LCBpbnQgb3ApOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFN UExFUzo6CisgCitAQCAtMjIwLDcgKzIyMCw3IEBAIGNkZWYgY2xhc3MgVmVjdG9yX21vZG5fZGVu c2UoZnJlZV9tb2R1bGVfZWxlbWVudC5GcmVlTW9kdWxlRWxlbWVudCk6CisgICAgICAgICAgICAg ICAgIHJldHVybiByaWNoX3RvX2Jvb2wob3AsIDEpCisgICAgICAgICByZXR1cm4gcmljaF90b19i b29sKG9wLCAwKQorIAorLSAgICBjZGVmIGdldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpKSBu b2V4Y2VwdDoKKysgICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0yNzYsNyArMjc2LDcgQEAgY2Rl ZiBjbGFzcyBWZWN0b3JfbW9kbl9kZW5zZShmcmVlX21vZHVsZV9lbGVtZW50LkZyZWVNb2R1bGVF bGVtZW50KToKKyAgICAgICAgIHJldHVybiB1bnBpY2tsZV92MSwgKHNlbGYuX3BhcmVudCwgc2Vs Zi5saXN0KCksIHNlbGYuX2RlZ3JlZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuX3AsIG5vdCBzZWxmLl9pc19pbW11dGFibGUpCisgCistICAgIGNwZGVmIF9hZGRfKHNlbGYs IHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQpOgorICAgICAg ICAgY2RlZiBWZWN0b3JfbW9kbl9kZW5zZSB6LCByCisgICAgICAgICByID0gcmlnaHQKKyAgICAg ICAgIHogPSBzZWxmLl9uZXdfYygpCitAQCAtMjg2LDcgKzI4Niw3IEBAIGNkZWYgY2xhc3MgVmVj dG9yX21vZG5fZGVuc2UoZnJlZV9tb2R1bGVfZWxlbWVudC5GcmVlTW9kdWxlRWxlbWVudCk6Cisg ICAgICAgICByZXR1cm4gegorIAorIAorLSAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodCkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgIGNkZWYgVmVj dG9yX21vZG5fZGVuc2UgeiwgcgorICAgICAgICAgciA9IHJpZ2h0CisgICAgICAgICB6ID0gc2Vs Zi5fbmV3X2MoKQorQEAgLTI5NSw3ICsyOTUsNyBAQCBjZGVmIGNsYXNzIFZlY3Rvcl9tb2RuX2Rl bnNlKGZyZWVfbW9kdWxlX2VsZW1lbnQuRnJlZU1vZHVsZUVsZW1lbnQpOgorICAgICAgICAgICAg IHouX2VudHJpZXNbaV0gPSAoc2VsZi5fcCArIHNlbGYuX2VudHJpZXNbaV0gLSByLl9lbnRyaWVz W2ldKSAlIHNlbGYuX3AKKyAgICAgICAgIHJldHVybiB6CisgCistICAgIGNwZGVmIF9kb3RfcHJv ZHVjdF8oc2VsZiwgVmVjdG9yIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2RvdF9wcm9k dWN0XyhzZWxmLCBWZWN0b3IgcmlnaHQpOgorICAgICAgICAgY2RlZiBzaXplX3QgaQorICAgICAg ICAgY2RlZiBJbnRlZ2VyTW9kX2ludCBuCisgICAgICAgICBjZGVmIEludGVnZXJNb2RfaW50NjQg bQorQEAgLTMxNiw3ICszMTYsNyBAQCBjZGVmIGNsYXNzIFZlY3Rvcl9tb2RuX2RlbnNlKGZyZWVf bW9kdWxlX2VsZW1lbnQuRnJlZU1vZHVsZUVsZW1lbnQpOgorICAgICAgICAgICAgICAgICBtLml2 YWx1ZSA9IChtLml2YWx1ZSArIHNlbGYuX2VudHJpZXNbaV0gKiByLl9lbnRyaWVzW2ldKSAlIHNl bGYuX3AKKyAgICAgICAgICAgICByZXR1cm4gbQorIAorLSAgICBjcGRlZiBfcGFpcndpc2VfcHJv ZHVjdF8oc2VsZiwgVmVjdG9yIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3BhaXJ3aXNl X3Byb2R1Y3RfKHNlbGYsIFZlY3RvciByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVY QU1QTEVTOjoKKyAKK0BAIC0zMzQsNyArMzM0LDcgQEAgY2RlZiBjbGFzcyBWZWN0b3JfbW9kbl9k ZW5zZShmcmVlX21vZHVsZV9lbGVtZW50LkZyZWVNb2R1bGVFbGVtZW50KToKKyAgICAgICAgICAg ICB6Ll9lbnRyaWVzW2ldID0gKHNlbGYuX2VudHJpZXNbaV0gKiByLl9lbnRyaWVzW2ldKSAlIHNl bGYuX3AKKyAgICAgICAgIHJldHVybiB6CisgCistICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVt ZW50IGxlZnQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCBsZWZ0 KToKKyAgICAgICAgIGNkZWYgVmVjdG9yX21vZG5fZGVuc2UgegorIAorICAgICAgICAgY2RlZiBt b2RfaW50IGEgPSBpdmFsdWUobGVmdCkKK0BAIC0zNDUsNyArMzQ1LDcgQEAgY2RlZiBjbGFzcyBW ZWN0b3JfbW9kbl9kZW5zZShmcmVlX21vZHVsZV9lbGVtZW50LkZyZWVNb2R1bGVFbGVtZW50KToK KyAgICAgICAgICAgICB6Ll9lbnRyaWVzW2ldID0gKHNlbGYuX2VudHJpZXNbaV0gKiBhKSAlIHNl bGYuX3AKKyAgICAgICAgIHJldHVybiB6CisgCistICAgIGNwZGVmIF9uZWdfKHNlbGYpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBfbmVnXyhzZWxmKToKKyAgICAgICAgIGNkZWYgVmVjdG9yX21vZG5f ZGVuc2UgegorICAgICAgICAgeiA9IHNlbGYuX25ld19jKCkKKyAgICAgICAgIGNkZWYgUHlfc3Np emVfdCBpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbW9kdWxlcy92ZWN0b3JfbW9kbl9zcGFyc2Uu cHhkIGIvc3JjL3NhZ2UvbW9kdWxlcy92ZWN0b3JfbW9kbl9zcGFyc2UucHhkCitpbmRleCBkMzQ1 ZWNkMWUxMi4uMDQ5YjliYTI3ZTggMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tb2R1bGVzL3ZlY3Rv cl9tb2RuX3NwYXJzZS5weGQKKysrKyBiL3NyYy9zYWdlL21vZHVsZXMvdmVjdG9yX21vZG5fc3Bh cnNlLnB4ZAorQEAgLTE0LDcgKzE0LDcgQEAgY2RlZiBQeV9zc2l6ZV90IGJpbmFyeV9zZWFyY2gw X21vZG4oUHlfc3NpemVfdCogdiwgUHlfc3NpemVfdCBuLCBpbnRfZmFzdDY0X3QgeCkKKyBjZGVm IFB5X3NzaXplX3QgYmluYXJ5X3NlYXJjaF9tb2RuKFB5X3NzaXplX3QqIHYsIFB5X3NzaXplX3Qg biwgaW50X2Zhc3Q2NF90IHgsIFB5X3NzaXplX3QqIGlucykgbm9leGNlcHQKKyBjZGVmIGludF9m YXN0NjRfdCBnZXRfZW50cnkoY192ZWN0b3JfbW9kaW50KiB2LCBQeV9zc2l6ZV90IG4pIGV4Y2Vw dCAtMQorIGNkZWYgYmludCBpc19lbnRyeV96ZXJvX3Vuc2FmZShjX3ZlY3Rvcl9tb2RpbnQqIHYs IFB5X3NzaXplX3Qgbikgbm9leGNlcHQKKy1jZGVmIG9iamVjdCB0b19saXN0KGNfdmVjdG9yX21v ZGludCogdikgbm9leGNlcHQKKytjZGVmIG9iamVjdCB0b19saXN0KGNfdmVjdG9yX21vZGludCog dikKKyBjZGVmIGludCBzZXRfZW50cnkoY192ZWN0b3JfbW9kaW50KiB2LCBQeV9zc2l6ZV90IG4s IGludF9mYXN0NjRfdCB4KSBleGNlcHQgLTEKKyBjZGVmIGludCBhZGRfY192ZWN0b3JfbW9kaW50 X2luaXQoY192ZWN0b3JfbW9kaW50KiBzdW0sIGNfdmVjdG9yX21vZGludCogdiwgY192ZWN0b3Jf bW9kaW50KiB3LCBpbnQgbXVsdGlwbGUpIGV4Y2VwdCAtMQorIGNkZWYgaW50IHNjYWxlX2NfdmVj dG9yX21vZGludChjX3ZlY3Rvcl9tb2RpbnQqIHYsIGludF9mYXN0NjRfdCBzY2FsYXIpIGV4Y2Vw dCAtMQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21vZHVsZXMvdmVjdG9yX21vZG5fc3BhcnNlLnB5 eCBiL3NyYy9zYWdlL21vZHVsZXMvdmVjdG9yX21vZG5fc3BhcnNlLnB5eAoraW5kZXggMGNkZTk2 NDQzODAuLmE2YjU5YWU5Y2E1IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbW9kdWxlcy92ZWN0b3Jf bW9kbl9zcGFyc2UucHl4CisrKysgYi9zcmMvc2FnZS9tb2R1bGVzL3ZlY3Rvcl9tb2RuX3NwYXJz ZS5weXgKK0BAIC0xMzAsNyArMTMwLDcgQEAgY2RlZiBiaW50IGlzX2VudHJ5X3plcm9fdW5zYWZl KGNfdmVjdG9yX21vZGludCogdiwgUHlfc3NpemVfdCBuKSBub2V4Y2VwdDoKKyAgICAgIiIiCisg ICAgIHJldHVybiBiaW5hcnlfc2VhcmNoMF9tb2RuKHYucG9zaXRpb25zLCB2Lm51bV9ub256ZXJv LCBuKSA9PSAtMQorIAorLWNkZWYgb2JqZWN0IHRvX2xpc3QoY192ZWN0b3JfbW9kaW50KiB2KSBu b2V4Y2VwdDoKKytjZGVmIG9iamVjdCB0b19saXN0KGNfdmVjdG9yX21vZGludCogdik6CisgICAg ICIiIgorICAgICBSZXR1cm4gYSBQeXRob24gbGlzdCBvZiAyLXR1cGxlcyAoaSx4KSwgd2hlcmUg eD12W2ldIHJ1bnMKKyAgICAgdGhyb3VnaCB0aGUgbm9uemVybyBlbGVtZW50cyBvZiB4LCBpbiBv cmRlci4KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tb2R1bGVzL3ZlY3Rvcl9udW1weV9kZW5zZS5w eGQgYi9zcmMvc2FnZS9tb2R1bGVzL3ZlY3Rvcl9udW1weV9kZW5zZS5weGQKK2luZGV4IDBjYjM4 NDIyMmMyLi5lYzYwZGE3YTg2NSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21vZHVsZXMvdmVjdG9y X251bXB5X2RlbnNlLnB4ZAorKysrIGIvc3JjL3NhZ2UvbW9kdWxlcy92ZWN0b3JfbnVtcHlfZGVu c2UucHhkCitAQCAtMTAsNSArMTAsNSBAQCBjZGVmIGNsYXNzIFZlY3Rvcl9udW1weV9kZW5zZShG cmVlTW9kdWxlRWxlbWVudCk6CisgICAgIGNkZWYgb2JqZWN0IF9zYWdlX2R0eXBlCisgICAgIGNk ZWYgb2JqZWN0IF9zYWdlX3ZlY3Rvcl9kdHlwZQorICAgICBjZGVmIG51bXB5Lm5kYXJyYXkgX3Zl Y3Rvcl9udW1weQorLSAgICBjZGVmIFZlY3Rvcl9udW1weV9kZW5zZSBfbmV3KHNlbGYsIG51bXB5 Lm5kYXJyYXkgdmVjdG9yX251bXB5KSBub2V4Y2VwdAorLSAgICBjZGVmIF9yZXBsYWNlX3NlbGZf d2l0aF9udW1weShzZWxmLCBudW1weS5uZGFycmF5IG51bXB5X2FycmF5KSBub2V4Y2VwdAorKyAg ICBjZGVmIFZlY3Rvcl9udW1weV9kZW5zZSBfbmV3KHNlbGYsIG51bXB5Lm5kYXJyYXkgdmVjdG9y X251bXB5KQorKyAgICBjZGVmIF9yZXBsYWNlX3NlbGZfd2l0aF9udW1weShzZWxmLCBudW1weS5u ZGFycmF5IG51bXB5X2FycmF5KQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21vZHVsZXMvdmVjdG9y X251bXB5X2RlbnNlLnB5eCBiL3NyYy9zYWdlL21vZHVsZXMvdmVjdG9yX251bXB5X2RlbnNlLnB5 eAoraW5kZXggNDMzZjc3YjExZDMuLjliMTZhNmMzNTRkIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uv bW9kdWxlcy92ZWN0b3JfbnVtcHlfZGVuc2UucHl4CisrKysgYi9zcmMvc2FnZS9tb2R1bGVzL3Zl Y3Rvcl9udW1weV9kZW5zZS5weXgKK0BAIC02OCw3ICs2OCw3IEBAIGNkZWYgY2xhc3MgVmVjdG9y X251bXB5X2RlbnNlKEZyZWVNb2R1bGVFbGVtZW50KToKKyAgICAgICAgIHNlbGYuX2RlZ3JlZSA9 IHBhcmVudC5kZWdyZWUoKQorICAgICAgICAgc2VsZi5fcGFyZW50ID0gcGFyZW50CisgCistICAg IGNkZWYgVmVjdG9yX251bXB5X2RlbnNlIF9uZXcoc2VsZiwgbnVtcHkubmRhcnJheSB2ZWN0b3Jf bnVtcHkpIG5vZXhjZXB0OgorKyAgICBjZGVmIFZlY3Rvcl9udW1weV9kZW5zZSBfbmV3KHNlbGYs IG51bXB5Lm5kYXJyYXkgdmVjdG9yX251bXB5KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0 dXJuIGEgbmV3IHZlY3RvciB3aXRoIHNhbWUgcGFyZW50IGFzIHNlbGYuCisgICAgICAgICAiIiIK K0BAIC0yMzEsNyArMjMxLDcgQEAgY2RlZiBjbGFzcyBWZWN0b3JfbnVtcHlfZGVuc2UoRnJlZU1v ZHVsZUVsZW1lbnQpOgorICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3B5dGhvbl9kdHlw ZSh2YWx1ZSkpCisgICAgICAgICAjIFRPRE86IFRocm93IGFuIGVycm9yIGlmIHN0YXR1cyA9PSAt MQorIAorLSAgICBjZGVmIGdldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpKSBub2V4Y2VwdDoK KysgICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSk6CisgICAgICAgICAiIiIK KyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0yNDgsNyArMjQ4LDcgQEAgY2RlZiBjbGFzcyBW ZWN0b3JfbnVtcHlfZGVuc2UoRnJlZU1vZHVsZUVsZW1lbnQpOgorICAgICAgICAgcmV0dXJuIHNl bGYuX3NhZ2VfZHR5cGUobnVtcHkuUHlBcnJheV9HRVRJVEVNKHNlbGYuX3ZlY3Rvcl9udW1weSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1weS5Q eUFycmF5X0dFVFBUUjEoc2VsZi5fdmVjdG9yX251bXB5LCBpKSkpCisgCistICAgIGNkZWYgX3Jl cGxhY2Vfc2VsZl93aXRoX251bXB5KHNlbGYsIG51bXB5Lm5kYXJyYXkgbnVtcHlfYXJyYXkpIG5v ZXhjZXB0OgorKyAgICBjZGVmIF9yZXBsYWNlX3NlbGZfd2l0aF9udW1weShzZWxmLCBudW1weS5u ZGFycmF5IG51bXB5X2FycmF5KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmVwbGFjZSB0aGUg dW5kZXJseWluZyBudW1weSBhcnJheSB3aXRoIG51bXB5X2FycmF5LgorICAgICAgICAgIiIiCitk aWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbW9kdWxlcy92ZWN0b3JfcmF0aW9uYWxfZGVuc2UucHhkIGIv c3JjL3NhZ2UvbW9kdWxlcy92ZWN0b3JfcmF0aW9uYWxfZGVuc2UucHhkCitpbmRleCA0ODIwOTM2 NTgwYS4uYzVmMmE0YTdjM2YgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9tb2R1bGVzL3ZlY3Rvcl9y YXRpb25hbF9kZW5zZS5weGQKKysrKyBiL3NyYy9zYWdlL21vZHVsZXMvdmVjdG9yX3JhdGlvbmFs X2RlbnNlLnB4ZAorQEAgLTcsNyArNyw3IEBAIGNkZWYgY2xhc3MgVmVjdG9yX3JhdGlvbmFsX2Rl bnNlKEZyZWVNb2R1bGVFbGVtZW50KToKKyAgICAgY2RlZiBtcHFfdCogX2VudHJpZXMKKyAgICAg Y2RlZiBpbnQgX2luaXQoc2VsZiwgUHlfc3NpemVfdCBkZWdyZWUsIFBhcmVudCBwYXJlbnQpIGV4 Y2VwdCAtMQorIAorLSAgICBjZGVmIGlubGluZSBWZWN0b3JfcmF0aW9uYWxfZGVuc2UgX25ld19j KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIGlubGluZSBWZWN0b3JfcmF0aW9uYWxfZGVuc2Ug X25ld19jKHNlbGYpOgorICAgICAgICAgY2RlZiB0eXBlIHQgPSB0eXBlKHNlbGYpCisgICAgICAg ICBjZGVmIFZlY3Rvcl9yYXRpb25hbF9kZW5zZSB4ID0gPFZlY3Rvcl9yYXRpb25hbF9kZW5zZT4o dC5fX25ld19fKHQpKQorICAgICAgICAgeC5faW5pdChzZWxmLl9kZWdyZWUsIHNlbGYuX3BhcmVu dCkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tb2R1bGVzL3ZlY3Rvcl9yYXRpb25hbF9kZW5zZS5w eXggYi9zcmMvc2FnZS9tb2R1bGVzL3ZlY3Rvcl9yYXRpb25hbF9kZW5zZS5weXgKK2luZGV4IDk4 NDI0ZjNkM2UxLi44NjQ2MjhmMTBjNyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21vZHVsZXMvdmVj dG9yX3JhdGlvbmFsX2RlbnNlLnB5eAorKysrIGIvc3JjL3NhZ2UvbW9kdWxlcy92ZWN0b3JfcmF0 aW9uYWxfZGVuc2UucHl4CitAQCAtNjcsNyArNjcsNyBAQCBjaW1wb3J0IHNhZ2UubW9kdWxlcy5m cmVlX21vZHVsZV9lbGVtZW50IGFzIGZyZWVfbW9kdWxlX2VsZW1lbnQKKyBmcm9tIHNhZ2UubGli cy5nbXAubXBxIGNpbXBvcnQgKgorIAorIAorLWNkZWYgaW5saW5lIF9SYXRpb25hbF9mcm9tX21w cShtcHFfdCBlKSBub2V4Y2VwdDoKKytjZGVmIGlubGluZSBfUmF0aW9uYWxfZnJvbV9tcHEobXBx X3QgZSk6CisgICAgIGNkZWYgUmF0aW9uYWwgeiA9IFJhdGlvbmFsLl9fbmV3X18oUmF0aW9uYWwp CisgICAgIG1wcV9zZXQoei52YWx1ZSwgZSkKKyAgICAgcmV0dXJuIHoKK0BAIC0xNjIsNyArMTYy LDcgQEAgY2RlZiBjbGFzcyBWZWN0b3JfcmF0aW9uYWxfZGVuc2UoZnJlZV9tb2R1bGVfZWxlbWVu dC5GcmVlTW9kdWxlRWxlbWVudCk6CisgICAgICAgICAgICAgICAgIG1wcV9jbGVhcihzZWxmLl9l bnRyaWVzW2ldKQorICAgICAgICAgICAgIHNpZ19mcmVlKHNlbGYuX2VudHJpZXMpCisgCistICAg IGNwZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdodCwgaW50IG9wKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgX3JpY2hjbXBfKGxlZnQsIHJpZ2h0LCBpbnQgb3ApOgorICAgICAgICAgIiIiCisgICAgICAg ICBFWEFNUExFUzo6CisgCitAQCAtMTkyLDcgKzE5Miw3IEBAIGNkZWYgY2xhc3MgVmVjdG9yX3Jh dGlvbmFsX2RlbnNlKGZyZWVfbW9kdWxlX2VsZW1lbnQuRnJlZU1vZHVsZUVsZW1lbnQpOgorICAg ICAgICAgICAgICAgICByZXR1cm4gcmljaF90b19ib29sKG9wLCAxKQorICAgICAgICAgcmV0dXJu IHJpY2hfdG9fYm9vbChvcCwgMCkKKyAKKy0gICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3Nz aXplX3QgaSkgbm9leGNlcHQ6CisrICAgIGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90 IGkpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMjUzLDcgKzI1 Myw3IEBAIGNkZWYgY2xhc3MgVmVjdG9yX3JhdGlvbmFsX2RlbnNlKGZyZWVfbW9kdWxlX2VsZW1l bnQuRnJlZU1vZHVsZUVsZW1lbnQpOgorICAgICAgICAgcmV0dXJuICh1bnBpY2tsZV92MSwgKHNl bGYuX3BhcmVudCwgc2VsZi5saXN0KCksIHNlbGYuX2RlZ3JlZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBub3Qgc2VsZi5faXNfaW1tdXRhYmxlKSkKKyAKKy0gICAgY3BkZWYgX2Fk ZF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWRkXyhzZWxmLCByaWdodCk6 CisgICAgICAgICBjZGVmIFZlY3Rvcl9yYXRpb25hbF9kZW5zZSB6LCByCisgICAgICAgICByID0g cmlnaHQKKyAgICAgICAgIHogPSBzZWxmLl9uZXdfYygpCitAQCAtMjYyLDcgKzI2Miw3IEBAIGNk ZWYgY2xhc3MgVmVjdG9yX3JhdGlvbmFsX2RlbnNlKGZyZWVfbW9kdWxlX2VsZW1lbnQuRnJlZU1v ZHVsZUVsZW1lbnQpOgorICAgICAgICAgICAgIG1wcV9hZGQoei5fZW50cmllc1tpXSwgc2VsZi5f ZW50cmllc1tpXSwgci5fZW50cmllc1tpXSkKKyAgICAgICAgIHJldHVybiB6CisgCistICAgIGNw ZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3N1Yl8oc2VsZiwg cmlnaHQpOgorICAgICAgICAgY2RlZiBWZWN0b3JfcmF0aW9uYWxfZGVuc2UgeiwgcgorICAgICAg ICAgciA9IHJpZ2h0CisgICAgICAgICB6ID0gc2VsZi5fbmV3X2MoKQorQEAgLTI3MSw3ICsyNzEs NyBAQCBjZGVmIGNsYXNzIFZlY3Rvcl9yYXRpb25hbF9kZW5zZShmcmVlX21vZHVsZV9lbGVtZW50 LkZyZWVNb2R1bGVFbGVtZW50KToKKyAgICAgICAgICAgICBtcHFfc3ViKHouX2VudHJpZXNbaV0s IHNlbGYuX2VudHJpZXNbaV0sIHIuX2VudHJpZXNbaV0pCisgICAgICAgICByZXR1cm4gegorIAor LSAgICBjcGRlZiBfZG90X3Byb2R1Y3RfKHNlbGYsIFZlY3RvciByaWdodCkgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIF9kb3RfcHJvZHVjdF8oc2VsZiwgVmVjdG9yIHJpZ2h0KToKKyAgICAgICAgICIi IgorICAgICAgICAgRG90IHByb2R1Y3Qgb2YgZGVuc2UgdmVjdG9ycyBvdmVyIHRoZSByYXRpb25h bHMuCisgCitAQCAtMjk2LDcgKzI5Niw3IEBAIGNkZWYgY2xhc3MgVmVjdG9yX3JhdGlvbmFsX2Rl bnNlKGZyZWVfbW9kdWxlX2VsZW1lbnQuRnJlZU1vZHVsZUVsZW1lbnQpOgorICAgICAgICAgbXBx X2NsZWFyKHQpCisgICAgICAgICByZXR1cm4gegorIAorLSAgICBjcGRlZiBfcGFpcndpc2VfcHJv ZHVjdF8oc2VsZiwgVmVjdG9yIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3BhaXJ3aXNl X3Byb2R1Y3RfKHNlbGYsIFZlY3RvciByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVY QU1QTEVTOjoKKyAKK0BAIC0zMTIsNyArMzEyLDcgQEAgY2RlZiBjbGFzcyBWZWN0b3JfcmF0aW9u YWxfZGVuc2UoZnJlZV9tb2R1bGVfZWxlbWVudC5GcmVlTW9kdWxlRWxlbWVudCk6CisgICAgICAg ICAgICAgbXBxX211bCh6Ll9lbnRyaWVzW2ldLCBzZWxmLl9lbnRyaWVzW2ldLCByLl9lbnRyaWVz W2ldKQorICAgICAgICAgcmV0dXJuIHoKKyAKKy0gICAgY3BkZWYgX3JtdWxfKHNlbGYsIEVsZW1l bnQgbGVmdCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9ybXVsXyhzZWxmLCBFbGVtZW50IGxlZnQp OgorICAgICAgICAgY2RlZiBWZWN0b3JfcmF0aW9uYWxfZGVuc2UgegorICAgICAgICAgY2RlZiBS YXRpb25hbCBhCisgICAgICAgICBpZiBpc2luc3RhbmNlKGxlZnQsIFJhdGlvbmFsKToKK0BAIC0z MzAsNyArMzMwLDcgQEAgY2RlZiBjbGFzcyBWZWN0b3JfcmF0aW9uYWxfZGVuc2UoZnJlZV9tb2R1 bGVfZWxlbWVudC5GcmVlTW9kdWxlRWxlbWVudCk6CisgICAgICAgICAgICAgbXBxX211bCh6Ll9l bnRyaWVzW2ldLCBzZWxmLl9lbnRyaWVzW2ldLCBhLnZhbHVlKQorICAgICAgICAgcmV0dXJuIHoK KyAKKy0gICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgcmlnaHQpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCByaWdodCk6CisgICAgICAgICBjZGVmIFZlY3Rv cl9yYXRpb25hbF9kZW5zZSB6CisgICAgICAgICBjZGVmIFJhdGlvbmFsIGEKKyAgICAgICAgIGlm IGlzaW5zdGFuY2UocmlnaHQsIFJhdGlvbmFsKToKK0BAIC0zNDgsNyArMzQ4LDcgQEAgY2RlZiBj bGFzcyBWZWN0b3JfcmF0aW9uYWxfZGVuc2UoZnJlZV9tb2R1bGVfZWxlbWVudC5GcmVlTW9kdWxl RWxlbWVudCk6CisgICAgICAgICAgICAgbXBxX211bCh6Ll9lbnRyaWVzW2ldLCBzZWxmLl9lbnRy aWVzW2ldLCBhLnZhbHVlKQorICAgICAgICAgcmV0dXJuIHoKKyAKKy0gICAgY3BkZWYgX25lZ18o c2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9uZWdfKHNlbGYpOgorICAgICAgICAgY2RlZiBW ZWN0b3JfcmF0aW9uYWxfZGVuc2UgegorICAgICAgICAgeiA9IHNlbGYuX25ld19jKCkKKyAgICAg ICAgIGNkZWYgUHlfc3NpemVfdCBpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbW9kdWxlcy92ZWN0 b3JfcmF0aW9uYWxfc3BhcnNlLnB4ZCBiL3NyYy9zYWdlL21vZHVsZXMvdmVjdG9yX3JhdGlvbmFs X3NwYXJzZS5weGQKK2luZGV4IGI3MzhhZDE4ZWRiLi40ZGZiZWQ3M2Q2ZCAxMDA2NDQKKy0tLSBh L3NyYy9zYWdlL21vZHVsZXMvdmVjdG9yX3JhdGlvbmFsX3NwYXJzZS5weGQKKysrKyBiL3NyYy9z YWdlL21vZHVsZXMvdmVjdG9yX3JhdGlvbmFsX3NwYXJzZS5weGQKK0BAIC0yMCw3ICsyMCw3IEBA IGNkZWYgUHlfc3NpemVfdCBtcHFfYmluYXJ5X3NlYXJjaDAobXBxX3QqIHYsIFB5X3NzaXplX3Qg biwgbXBxX3QgeCkgbm9leGNlcHQKKyBjZGVmIFB5X3NzaXplX3QgbXBxX2JpbmFyeV9zZWFyY2go bXBxX3QqIHYsIFB5X3NzaXplX3QgbiwgbXBxX3QgeCwgUHlfc3NpemVfdCogaW5zKSBub2V4Y2Vw dAorIGNkZWYgaW50IG1wcV92ZWN0b3JfZ2V0X2VudHJ5KG1wcV90IGFucywgbXBxX3ZlY3Rvciog diwgUHlfc3NpemVfdCBuKSBleGNlcHQgLTEKKyBjZGVmIGJpbnQgbXBxX3ZlY3Rvcl9pc19lbnRy eV96ZXJvX3Vuc2FmZShtcHFfdmVjdG9yKiB2LCBQeV9zc2l6ZV90IG4pIG5vZXhjZXB0CistY2Rl ZiBvYmplY3QgbXBxX3ZlY3Rvcl90b19saXN0KG1wcV92ZWN0b3IqIHYpIG5vZXhjZXB0CisrY2Rl ZiBvYmplY3QgbXBxX3ZlY3Rvcl90b19saXN0KG1wcV92ZWN0b3IqIHYpCisgY2RlZiBpbnQgbXBx X3ZlY3Rvcl9zZXRfZW50cnkobXBxX3ZlY3RvciogdiwgUHlfc3NpemVfdCBuLCBtcHFfdCB4KSBl eGNlcHQgLTEKKyBjZGVmIGludCBtcHFfdmVjdG9yX3NldF9lbnRyeV9zdHIobXBxX3ZlY3Rvciog diwgUHlfc3NpemVfdCBuLCBjaGFyICp4X3N0cikgZXhjZXB0IC0xCisgY2RlZiBpbnQgYWRkX21w cV92ZWN0b3JfaW5pdChtcHFfdmVjdG9yKiBzdW0sIG1wcV92ZWN0b3IqIHYsIG1wcV92ZWN0b3Iq IHcsIG1wcV90IG11bHRpcGxlKSBleGNlcHQgLTEKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tb2R1 bGVzL3ZlY3Rvcl9yYXRpb25hbF9zcGFyc2UucHl4IGIvc3JjL3NhZ2UvbW9kdWxlcy92ZWN0b3Jf cmF0aW9uYWxfc3BhcnNlLnB5eAoraW5kZXggNTgxMDBhYzAzM2YuLjM3NDY2YmFiMmRhIDEwMDY0 NAorLS0tIGEvc3JjL3NhZ2UvbW9kdWxlcy92ZWN0b3JfcmF0aW9uYWxfc3BhcnNlLnB5eAorKysr IGIvc3JjL3NhZ2UvbW9kdWxlcy92ZWN0b3JfcmF0aW9uYWxfc3BhcnNlLnB5eAorQEAgLTE1OCw3 ICsxNTgsNyBAQCBjZGVmIGJpbnQgbXBxX3ZlY3Rvcl9pc19lbnRyeV96ZXJvX3Vuc2FmZShtcHFf dmVjdG9yKiB2LCBQeV9zc2l6ZV90IG4pIG5vZXhjZXB0OgorICAgICAiIiIKKyAgICAgcmV0dXJu IGJpbmFyeV9zZWFyY2gwKHYucG9zaXRpb25zLCB2Lm51bV9ub256ZXJvLCBuKSA9PSAtMQorIAor LWNkZWYgb2JqZWN0IG1wcV92ZWN0b3JfdG9fbGlzdChtcHFfdmVjdG9yKiB2KSBub2V4Y2VwdDoK KytjZGVmIG9iamVjdCBtcHFfdmVjdG9yX3RvX2xpc3QobXBxX3ZlY3Rvciogdik6CisgICAgICIi IgorICAgICBSZXR1cm5zIGEgUHl0aG9uIGxpc3Qgb2YgMi10dXBsZXMgKGkseCksIHdoZXJlIHg9 dltpXSBydW5zCisgICAgIHRocm91Z2ggdGhlIG5vbnplcm8gZWxlbWVudHMgb2YgeCwgaW4gb3Jk ZXIuCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbW9kdWxlcy93aXRoX2Jhc2lzL2luZGV4ZWRfZWxl bWVudC5weGQgYi9zcmMvc2FnZS9tb2R1bGVzL3dpdGhfYmFzaXMvaW5kZXhlZF9lbGVtZW50LnB4 ZAoraW5kZXggMDZmZWM3MDJkY2YuLmViYzc4NWQ3Y2NmIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uv bW9kdWxlcy93aXRoX2Jhc2lzL2luZGV4ZWRfZWxlbWVudC5weGQKKysrKyBiL3NyYy9zYWdlL21v ZHVsZXMvd2l0aF9iYXNpcy9pbmRleGVkX2VsZW1lbnQucHhkCitAQCAtNSw4ICs1LDggQEAgY2Rl ZiBjbGFzcyBJbmRleGVkRnJlZU1vZHVsZUVsZW1lbnQoTW9kdWxlRWxlbWVudCk6CisgICAgIGNk ZWYgbG9uZyBfaGFzaAorICAgICBjZGVmIGJpbnQgX2hhc2hfc2V0CisgCistICAgIGNwZGVmIF9h ZGRfKHNlbGYsIG90aGVyKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfc3ViXyhzZWxmLCBvdGhlcikg bm9leGNlcHQKKy0gICAgY3BkZWYgX25lZ18oc2VsZikgbm9leGNlcHQKKysgICAgY3BkZWYgX2Fk ZF8oc2VsZiwgb3RoZXIpCisrICAgIGNwZGVmIF9zdWJfKHNlbGYsIG90aGVyKQorKyAgICBjcGRl ZiBfbmVnXyhzZWxmKQorIAorLSAgICBjcGRlZiBkaWN0IG1vbm9taWFsX2NvZWZmaWNpZW50cyhz ZWxmLCBiaW50IGNvcHk9Kikgbm9leGNlcHQKKysgICAgY3BkZWYgZGljdCBtb25vbWlhbF9jb2Vm ZmljaWVudHMoc2VsZiwgYmludCBjb3B5PSopCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbW9kdWxl cy93aXRoX2Jhc2lzL2luZGV4ZWRfZWxlbWVudC5weXggYi9zcmMvc2FnZS9tb2R1bGVzL3dpdGhf YmFzaXMvaW5kZXhlZF9lbGVtZW50LnB5eAoraW5kZXggNWU4NzVlZjM5MjkuLjA0Y2QxMmU5MjJj IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbW9kdWxlcy93aXRoX2Jhc2lzL2luZGV4ZWRfZWxlbWVu dC5weXgKKysrKyBiL3NyYy9zYWdlL21vZHVsZXMvd2l0aF9iYXNpcy9pbmRleGVkX2VsZW1lbnQu cHl4CitAQCAtMjI4LDcgKzIyOCw3IEBAIGNkZWYgY2xhc3MgSW5kZXhlZEZyZWVNb2R1bGVFbGVt ZW50KE1vZHVsZUVsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZgor IAorLSAgICBjcGRlZiBkaWN0IG1vbm9taWFsX2NvZWZmaWNpZW50cyhzZWxmLCBiaW50IGNvcHk9 VHJ1ZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGRpY3QgbW9ub21pYWxfY29lZmZpY2llbnRzKHNl bGYsIGJpbnQgY29weT1UcnVlKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBp bnRlcm5hbCBkaWN0aW9uYXJ5IHdoaWNoIGhhcyB0aGUgY29tYmluYXRvcmlhbCBvYmplY3RzCisg ICAgICAgICBpbmRleGluZyB0aGUgYmFzaXMgYXMga2V5cyBhbmQgdGhlaXIgY29ycmVzcG9uZGlu ZyBjb2VmZmljaWVudHMgYXMKK0BAIC01NDEsNyArNTQxLDcgQEAgY2RlZiBjbGFzcyBJbmRleGVk RnJlZU1vZHVsZUVsZW1lbnQoTW9kdWxlRWxlbWVudCk6CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJlcHJfbW9ub21pYWwgPSBzZWxmLl9wYXJlbnQuX2xhdGV4X3Rlcm0sCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlzX2xhdGV4PVRydWUsIHN0cmlwX29uZT1UcnVlKQorIAor LSAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgb3RoZXIsIGludCBvcCkgbm9leGNlcHQ6CisrICAg IGNwZGVmIF9yaWNoY21wXyhzZWxmLCBvdGhlciwgaW50IG9wKToKKyAgICAgICAgICIiIgorICAg ICAgICAgUmljaCBjb21wYXJpc29uIGZvciBlcXVhbCBwYXJlbnRzLgorIAorQEAgLTY1MSw3ICs2 NTEsNyBAQCBjZGVmIGNsYXNzIEluZGV4ZWRGcmVlTW9kdWxlRWxlbWVudChNb2R1bGVFbGVtZW50 KToKKyAgICAgICAgIHcgPSBzb3J0ZWQoZWx0Ll9tb25vbWlhbF9jb2VmZmljaWVudHMuaXRlbXMo KSkKKyAgICAgICAgIHJldHVybiByaWNoY21wKHYsIHcsIG9wKQorIAorLSAgICBjcGRlZiBfYWRk XyhzZWxmLCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIG90aGVyKToK KyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTY3NCw3ICs2NzQsNyBA QCBjZGVmIGNsYXNzIEluZGV4ZWRGcmVlTW9kdWxlRWxlbWVudChNb2R1bGVFbGVtZW50KToKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIGFkZChzZWxmLl9tb25vbWlhbF9jb2VmZmljaWVudHMs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDxJbmRleGVkRnJlZU1vZHVsZUVsZW1l bnQ+b3RoZXIpLl9tb25vbWlhbF9jb2VmZmljaWVudHMpKQorIAorLSAgICBjcGRlZiBfbmVnXyhz ZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX25lZ18oc2VsZik6CisgICAgICAgICAiIiIKKyAg ICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC02OTIsNyArNjkyLDcgQEAgY2RlZiBjbGFzcyBJbmRl eGVkRnJlZU1vZHVsZUVsZW1lbnQoTW9kdWxlRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIHJldHVybiB0eXBlKHNlbGYpKHNlbGYuX3BhcmVudCwgbmVnYXRlKHNlbGYuX21vbm9taWFs X2NvZWZmaWNpZW50cykpCisgCistICAgIGNwZGVmIF9zdWJfKHNlbGYsIG90aGVyKSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgX3N1Yl8oc2VsZiwgb3RoZXIpOgorICAgICAgICAgIiIiCisgICAgICAg ICBFWEFNUExFUzo6CisgCitAQCAtODMxLDcgKzgzMSw3IEBAIGNkZWYgY2xhc3MgSW5kZXhlZEZy ZWVNb2R1bGVFbGVtZW50KE1vZHVsZUVsZW1lbnQpOgorIAorICAgICB0b192ZWN0b3IgPSBfdmVj dG9yXworIAorLSAgICBjcGRlZiBfYWN0ZWRfdXBvbl8oc2VsZiwgc2NhbGFyLCBiaW50IHNlbGZf b25fbGVmdCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hY3RlZF91cG9uXyhzZWxmLCBzY2FsYXIs IGJpbnQgc2VsZl9vbl9sZWZ0KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBh Y3Rpb24gb2YgYGBzY2FsYXJgYCAoYW4gZWxlbWVudCBvZiB0aGUgYmFzZSByaW5nKSBvbgorICAg ICAgICAgYGBzZWxmYGAuCitAQCAtOTA1LDcgKzkwNSw3IEBAIGNkZWYgY2xhc3MgSW5kZXhlZEZy ZWVNb2R1bGVFbGVtZW50KE1vZHVsZUVsZW1lbnQpOgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2NhbChzY2FsYXIsIHNlbGYuX21vbm9taWFsX2NvZWZmaWNpZW50cywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZmFjdG9yX29uX2xlZnQ9bm90IHNlbGZfb25fbGVmdCkpCisg CistICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IHJpZ2h0KSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAg ICBGb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4KKyAKK0BAIC05MTcsNyArOTE3LDcgQEAgY2Rl ZiBjbGFzcyBJbmRleGVkRnJlZU1vZHVsZUVsZW1lbnQoTW9kdWxlRWxlbWVudCk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9hY3RlZF91cG9uXyhyaWdodCwgVHJ1ZSkKKyAK Ky0gICAgY3BkZWYgX3JtdWxfKHNlbGYsIEVsZW1lbnQgbGVmdCkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIF9ybXVsXyhzZWxmLCBFbGVtZW50IGxlZnQpOgorICAgICAgICAgIiIiCisgICAgICAgICBG b3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9tb25v aWRzL2ZyZWVfYWJlbGlhbl9tb25vaWRfZWxlbWVudC5weGQgYi9zcmMvc2FnZS9tb25vaWRzL2Zy ZWVfYWJlbGlhbl9tb25vaWRfZWxlbWVudC5weGQKK2luZGV4IGZlNjVhZjc5NzExLi4wOTJjZDM0 M2YwNSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21vbm9pZHMvZnJlZV9hYmVsaWFuX21vbm9pZF9l bGVtZW50LnB4ZAorKysrIGIvc3JjL3NhZ2UvbW9ub2lkcy9mcmVlX2FiZWxpYW5fbW9ub2lkX2Vs ZW1lbnQucHhkCitAQCAtOCw3ICs4LDcgQEAgY2RlZiBjbGFzcyBGcmVlQWJlbGlhbk1vbm9pZEVs ZW1lbnQoTW9ub2lkRWxlbWVudCk6CisgCisgICAgIGNkZWYgaW50IF9pbml0KHNlbGYsIFB5X3Nz aXplX3QgbiwgUGFyZW50IHBhcmVudCkgZXhjZXB0IC0xCisgCistICAgIGNkZWYgaW5saW5lIEZy ZWVBYmVsaWFuTW9ub2lkRWxlbWVudCBfbmV3X2Moc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYg aW5saW5lIEZyZWVBYmVsaWFuTW9ub2lkRWxlbWVudCBfbmV3X2Moc2VsZik6CisgICAgICAgICBj ZGVmIHR5cGUgdCA9IHR5cGUoc2VsZikKKyAgICAgICAgIGNkZWYgRnJlZUFiZWxpYW5Nb25vaWRF bGVtZW50IHggPSA8RnJlZUFiZWxpYW5Nb25vaWRFbGVtZW50Pih0Ll9fbmV3X18odCkpCisgICAg ICAgICB4Ll9pbml0KHNlbGYuX24sIHNlbGYuX3BhcmVudCkKK2RpZmYgLS1naXQgYS9zcmMvc2Fn ZS9tb25vaWRzL2ZyZWVfYWJlbGlhbl9tb25vaWRfZWxlbWVudC5weXggYi9zcmMvc2FnZS9tb25v aWRzL2ZyZWVfYWJlbGlhbl9tb25vaWRfZWxlbWVudC5weXgKK2luZGV4IDY2YmQzYTE1ZWQ1Li42 NWRmOGVmZTYxMyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL21vbm9pZHMvZnJlZV9hYmVsaWFuX21v bm9pZF9lbGVtZW50LnB5eAorKysrIGIvc3JjL3NhZ2UvbW9ub2lkcy9mcmVlX2FiZWxpYW5fbW9u b2lkX2VsZW1lbnQucHl4CitAQCAtMjYzLDcgKzI2Myw3IEBAIGNkZWYgY2xhc3MgRnJlZUFiZWxp YW5Nb25vaWRFbGVtZW50KE1vbm9pZEVsZW1lbnQpOgorICAgICAgICAgICAgIHMgPSAiMSIKKyAg ICAgICAgIHJldHVybiBzCisgCistICAgIGNwZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdodCwgaW50 IG9wKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3JpY2hjbXBfKGxlZnQsIHJpZ2h0LCBpbnQgb3Ap OgorICAgICAgICAgIiIiCisgICAgICAgICBSaWNoIGNvbXBhcmlzb24uCisgCitkaWZmIC0tZ2l0 IGEvc3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL2N2eG9wdF9iYWNrZW5kLnB5eCBiL3NyYy9z YWdlL251bWVyaWNhbC9iYWNrZW5kcy9jdnhvcHRfYmFja2VuZC5weXgKK2luZGV4IDAxZDQzNjBk MzkwLi4xZDdlZjIwNjI1YyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5k cy9jdnhvcHRfYmFja2VuZC5weXgKKysrKyBiL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9j dnhvcHRfYmFja2VuZC5weXgKK0BAIC05Myw3ICs5Myw3IEBAIGNkZWYgY2xhc3MgQ1ZYT1BUQmFj a2VuZChHZW5lcmljQmFja2VuZCk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHNlbGYu c2V0X3NlbnNlKC0xKQorIAorLSAgICBjcGRlZiBfX2NvcHlfXyhzZWxmKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgX19jb3B5X18oc2VsZik6CisgICAgICAgICAjIEFkZGVkIGEgc2Vjb25kIGluZXF1 YWxpdHkgdG8gdGhpcyBkb2N0ZXN0LAorICAgICAgICAgIyBiZWNhdXNlIG90aGVyd2lzZSBDVlhP UFQgY29tcGxhaW5zOiBWYWx1ZUVycm9yOiBSYW5rKEEpIDwgcCBvciBSYW5rKFtHOyBBXSkgPCBu CisgICAgICAgICAiIiIKK0BAIC0yMDUsNyArMjA1LDcgQEAgY2RlZiBjbGFzcyBDVlhPUFRCYWNr ZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAgICAgICAgIHNlbGYuY29sX25hbWVfdmFyLmFwcGVuZChu YW1lKQorICAgICAgICAgcmV0dXJuIGxlbihzZWxmLm9iamVjdGl2ZV9mdW5jdGlvbikgLSAxCisg CistICAgIGNwZGVmIHNldF92YXJpYWJsZV90eXBlKHNlbGYsIGludCB2YXJpYWJsZSwgaW50IHZ0 eXBlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgc2V0X3ZhcmlhYmxlX3R5cGUoc2VsZiwgaW50IHZh cmlhYmxlLCBpbnQgdnR5cGUpOgorICAgICAgICAgIiIiCisgICAgICAgICBTZXQgdGhlIHR5cGUg b2YgYSB2YXJpYWJsZS4KKyAKK0BAIC0yMjQsNyArMjI0LDcgQEAgY2RlZiBjbGFzcyBDVlhPUFRC YWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAgICAgICAgIGlmIHZ0eXBlICE9IC0xOgorICAgICAg ICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ1RoaXMgYmFja2VuZCBkb2VzIG5vdCBoYW5kbGUgaW50 ZWdlciB2YXJpYWJsZXMgISBSZWFkIHRoZSBkb2MgIScpCisgCistICAgIGNwZGVmIHNldF9zZW5z ZShzZWxmLCBpbnQgc2Vuc2UpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBzZXRfc2Vuc2Uoc2VsZiwg aW50IHNlbnNlKToKKyAgICAgICAgICIiIgorICAgICAgICAgU2V0IHRoZSBkaXJlY3Rpb24gKG1h eGltaXphdGlvbi9taW5pbWl6YXRpb24pLgorIAorQEAgLTI1MCw3ICsyNTAsNyBAQCBjZGVmIGNs YXNzIENWWE9QVEJhY2tlbmQoR2VuZXJpY0JhY2tlbmQpOgorICAgICAgICAgZWxzZToKKyAgICAg ICAgICAgICBzZWxmLmlzX21heGltaXplID0gMAorIAorLSAgICBjcGRlZiBvYmplY3RpdmVfY29l ZmZpY2llbnQoc2VsZiwgaW50IHZhcmlhYmxlLCBjb2VmZj1Ob25lKSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgb2JqZWN0aXZlX2NvZWZmaWNpZW50KHNlbGYsIGludCB2YXJpYWJsZSwgY29lZmY9Tm9u ZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFNldCBvciBnZXQgdGhlIGNvZWZmaWNpZW50IG9m IGEgdmFyaWFibGUgaW4gdGhlIG9iamVjdGl2ZQorICAgICAgICAgZnVuY3Rpb24KK0BAIC0yNzgs NyArMjc4LDcgQEAgY2RlZiBjbGFzcyBDVlhPUFRCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAg ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYub2JqZWN0aXZlX2Z1bmN0aW9u W3ZhcmlhYmxlXQorIAorLSAgICBjcGRlZiBzZXRfb2JqZWN0aXZlKHNlbGYsIGxpc3QgY29lZmYs IGQgPSAwLjApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBzZXRfb2JqZWN0aXZlKHNlbGYsIGxpc3Qg Y29lZmYsIGQgPSAwLjApOgorICAgICAgICAgIiIiCisgICAgICAgICBTZXQgdGhlIG9iamVjdGl2 ZSBmdW5jdGlvbi4KKyAKK0BAIC0zMDMsMTMgKzMwMywxMyBAQCBjZGVmIGNsYXNzIENWWE9QVEJh Y2tlbmQoR2VuZXJpY0JhY2tlbmQpOgorICAgICAgICAgICAgIHNlbGYub2JqZWN0aXZlX2Z1bmN0 aW9uW2ldID0gY29lZmZbaV0KKyAgICAgICAgIG9ial9jb25zdGFudF90ZXJtID0gZAorIAorLSAg ICBjcGRlZiBzZXRfdmVyYm9zaXR5KHNlbGYsIGludCBsZXZlbCkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIHNldF92ZXJib3NpdHkoc2VsZiwgaW50IGxldmVsKToKKyAgICAgICAgICIiIgorICAgICAg ICAgRG9lcyBub3QgYXBwbHkgZm9yIHRoZSBjdnhvcHQgc29sdmVyCisgICAgICAgICAiIiIKKyAg ICAgICAgIHBhc3MKKyAKKy0gICAgY3BkZWYgYWRkX2NvbChzZWxmLCBpbmRpY2VzLCBjb2VmZnMp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBhZGRfY29sKHNlbGYsIGluZGljZXMsIGNvZWZmcyk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIEFkZCBhIGNvbHVtbi4KKyAKK0BAIC0zNTcsNyArMzU3LDcg QEAgY2RlZiBjbGFzcyBDVlhPUFRCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAgICAgICAgIHNl bGYub2JqZWN0aXZlX2Z1bmN0aW9uLmFwcGVuZCgwKQorICAgICAgICAgc2VsZi5jb2xfbmFtZV92 YXIuYXBwZW5kKE5vbmUpCisgCistICAgIGNwZGVmIGFkZF9saW5lYXJfY29uc3RyYWludChzZWxm LCBjb2VmZmljaWVudHMsIGxvd2VyX2JvdW5kLCB1cHBlcl9ib3VuZCwgbmFtZT1Ob25lKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgYWRkX2xpbmVhcl9jb25zdHJhaW50KHNlbGYsIGNvZWZmaWNpZW50 cywgbG93ZXJfYm91bmQsIHVwcGVyX2JvdW5kLCBuYW1lPU5vbmUpOgorICAgICAgICAgIiIiCisg ICAgICAgICBBZGQgYSBsaW5lYXIgY29uc3RyYWludC4KKyAKK0BAIC01NjQsNyArNTY0LDcgQEAg Y2RlZiBjbGFzcyBDVlhPUFRCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAgICAgICAgIHJldHVy biAwCisgCisgCistICAgIGNwZGVmIGdldF9vYmplY3RpdmVfdmFsdWUoc2VsZikgbm9leGNlcHQ6 CisrICAgIGNwZGVmIGdldF9vYmplY3RpdmVfdmFsdWUoc2VsZik6CisgICAgICAgICAiIiIKKyAg ICAgICAgIFJldHVybiB0aGUgdmFsdWUgb2YgdGhlIG9iamVjdGl2ZSBmdW5jdGlvbi4KKyAKK0BA IC01OTYsNyArNTk2LDcgQEAgY2RlZiBjbGFzcyBDVlhPUFRCYWNrZW5kKEdlbmVyaWNCYWNrZW5k KToKKyAgICAgICAgICAgICBpKz0xCisgICAgICAgICByZXR1cm4gc3VtCisgCistICAgIGNwZGVm IGdldF92YXJpYWJsZV92YWx1ZShzZWxmLCBpbnQgdmFyaWFibGUpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBnZXRfdmFyaWFibGVfdmFsdWUoc2VsZiwgaW50IHZhcmlhYmxlKToKKyAgICAgICAgICIi IgorICAgICAgICAgUmV0dXJuIHRoZSB2YWx1ZSBvZiBhIHZhcmlhYmxlIGdpdmVuIGJ5IHRoZSBz b2x2ZXIuCisgCitAQCAtNjc5LDcgKzY3OSw3IEBAIGNkZWYgY2xhc3MgQ1ZYT1BUQmFja2VuZChH ZW5lcmljQmFja2VuZCk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJldHVybiAwCisg CistICAgIGNwZGVmIHByb2JsZW1fbmFtZShzZWxmLCBuYW1lPU5vbmUpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBwcm9ibGVtX25hbWUoc2VsZiwgbmFtZT1Ob25lKToKKyAgICAgICAgICIiIgorICAg ICAgICAgUmV0dXJuIG9yIGRlZmluZSB0aGUgcHJvYmxlbSdzIG5hbWUKKyAKK0BAIC03MDMsNyAr NzAzLDcgQEAgY2RlZiBjbGFzcyBDVlhPUFRCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAgICAg ICAgIHNlbGYucHJvYl9uYW1lID0gbmFtZQorIAorIAorLSAgICBjcGRlZiByb3coc2VsZiwgaW50 IGkpIG5vZXhjZXB0OgorKyAgICBjcGRlZiByb3coc2VsZiwgaW50IGkpOgorICAgICAgICAgIiIi CisgICAgICAgICBSZXR1cm4gYSByb3cKKyAKK0BAIC03NDEsNyArNzQxLDcgQEAgY2RlZiBjbGFz cyBDVlhPUFRCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAgICAgICAgIHJldHVybiAoaWR4LCBj b2VmZikKKyAKKyAKKy0gICAgY3BkZWYgcm93X2JvdW5kcyhzZWxmLCBpbnQgaW5kZXgpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiByb3dfYm91bmRzKHNlbGYsIGludCBpbmRleCk6CisgICAgICAgICAi IiIKKyAgICAgICAgIFJldHVybiB0aGUgYm91bmRzIG9mIGEgc3BlY2lmaWMgY29uc3RyYWludC4K KyAKK0BAIC03NjksNyArNzY5LDcgQEAgY2RlZiBjbGFzcyBDVlhPUFRCYWNrZW5kKEdlbmVyaWNC YWNrZW5kKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIChzZWxmLnJvd19sb3dlcl9i b3VuZFtpbmRleF0sIHNlbGYucm93X3VwcGVyX2JvdW5kW2luZGV4XSkKKyAKKy0gICAgY3BkZWYg Y29sX2JvdW5kcyhzZWxmLCBpbnQgaW5kZXgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjb2xfYm91 bmRzKHNlbGYsIGludCBpbmRleCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUg Ym91bmRzIG9mIGEgc3BlY2lmaWMgdmFyaWFibGUuCisgCitAQCAtODgwLDcgKzg4MCw3IEBAIGNk ZWYgY2xhc3MgQ1ZYT1BUQmFja2VuZChHZW5lcmljQmFja2VuZCk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIHJldHVybiBUcnVlCisgCistICAgIGNwZGVmIHJvd19uYW1lKHNlbGYsIGludCBpbmRl eCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHJvd19uYW1lKHNlbGYsIGludCBpbmRleCk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYGBpbmRleGBgIHRoIHJvdyBuYW1lCisgCitA QCAtOTAwLDcgKzkwMCw3IEBAIGNkZWYgY2xhc3MgQ1ZYT1BUQmFja2VuZChHZW5lcmljQmFja2Vu ZCk6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYucm93X25hbWVfdmFyW2luZGV4XQorICAgICAg ICAgcmV0dXJuICJjb25zdHJhaW50XyIgKyByZXByKGluZGV4KQorIAorLSAgICBjcGRlZiBjb2xf bmFtZShzZWxmLCBpbnQgaW5kZXgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjb2xfbmFtZShzZWxm LCBpbnQgaW5kZXgpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGBgaW5kZXhg YCB0aCBjb2wgbmFtZQorIAorQEAgLTkyNCw3ICs5MjQsNyBAQCBjZGVmIGNsYXNzIENWWE9QVEJh Y2tlbmQoR2VuZXJpY0JhY2tlbmQpOgorICAgICAgICAgICAgIHJldHVybiBzZWxmLmNvbF9uYW1l X3ZhcltpbmRleF0KKyAgICAgICAgIHJldHVybiAieF8iICsgcmVwcihpbmRleCkKKyAKKy0gICAg Y3BkZWYgdmFyaWFibGVfdXBwZXJfYm91bmQoc2VsZiwgaW50IGluZGV4LCB2YWx1ZSA9IEZhbHNl KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgdmFyaWFibGVfdXBwZXJfYm91bmQoc2VsZiwgaW50IGlu ZGV4LCB2YWx1ZSA9IEZhbHNlKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIG9yIGRl ZmluZSB0aGUgdXBwZXIgYm91bmQgb24gYSB2YXJpYWJsZQorIAorQEAgLTk1Myw3ICs5NTMsNyBA QCBjZGVmIGNsYXNzIENWWE9QVEJhY2tlbmQoR2VuZXJpY0JhY2tlbmQpOgorICAgICAgICAgZWxz ZToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZi5jb2xfdXBwZXJfYm91bmRbaW5kZXhdCisgCist ICAgIGNwZGVmIHZhcmlhYmxlX2xvd2VyX2JvdW5kKHNlbGYsIGludCBpbmRleCwgdmFsdWUgPSBG YWxzZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHZhcmlhYmxlX2xvd2VyX2JvdW5kKHNlbGYsIGlu dCBpbmRleCwgdmFsdWUgPSBGYWxzZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBv ciBkZWZpbmUgdGhlIGxvd2VyIGJvdW5kIG9uIGEgdmFyaWFibGUKKyAKK0BAIC05ODIsNyArOTgy LDcgQEAgY2RlZiBjbGFzcyBDVlhPUFRCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAgICAgICAg IGVsc2U6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYuY29sX2xvd2VyX2JvdW5kW2luZGV4XQor IAorLSAgICBjcGRlZiBzb2x2ZXJfcGFyYW1ldGVyKHNlbGYsIG5hbWUsIHZhbHVlID0gTm9uZSkg bm9leGNlcHQ6CisrICAgIGNwZGVmIHNvbHZlcl9wYXJhbWV0ZXIoc2VsZiwgbmFtZSwgdmFsdWUg PSBOb25lKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIG9yIGRlZmluZSBhIHNvbHZl ciBwYXJhbWV0ZXIKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9udW1lcmljYWwvYmFja2VuZHMv Y3Z4b3B0X3NkcF9iYWNrZW5kLnB5eCBiL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9jdnhv cHRfc2RwX2JhY2tlbmQucHl4CitpbmRleCA3YWE5MWRlNjE1OC4uNWE1Y2YyYzExYTIgMTAwNjQ0 CistLS0gYS9zcmMvc2FnZS9udW1lcmljYWwvYmFja2VuZHMvY3Z4b3B0X3NkcF9iYWNrZW5kLnB5 eAorKysrIGIvc3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL2N2eG9wdF9zZHBfYmFja2VuZC5w eXgKK0BAIC0xNjIsNyArMTYyLDcgQEAgY2RlZiBjbGFzcyBDVlhPUFRTRFBCYWNrZW5kKE1hdHJp eFNEUEJhY2tlbmQpOgorICAgICAgICAgcmV0dXJuIDAKKyAKKyAKKy0gICAgY3BkZWYgZ2V0X29i amVjdGl2ZV92YWx1ZShzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZ2V0X29iamVjdGl2ZV92 YWx1ZShzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSB2YWx1ZSBvZiB0 aGUgb2JqZWN0aXZlIGZ1bmN0aW9uLgorIAorQEAgLTE5Nyw3ICsxOTcsNyBAQCBjZGVmIGNsYXNz IENWWE9QVFNEUEJhY2tlbmQoTWF0cml4U0RQQmFja2VuZCk6CisgICAgICAgICAgICAgaSs9MQor ICAgICAgICAgcmV0dXJuIHN1bQorIAorLSAgICBjcGRlZiBfZ2V0X2Fuc3dlcihzZWxmKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgX2dldF9hbnN3ZXIoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAg ICAgIHJldHVybiB0aGUgY29tcGxldGUgb3V0cHV0IGRpY3Qgb2YgdGhlIHNvbHZlcgorIAorQEAg LTIyMyw3ICsyMjMsNyBAQCBjZGVmIGNsYXNzIENWWE9QVFNEUEJhY2tlbmQoTWF0cml4U0RQQmFj a2VuZCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLmFuc3dlcgorIAorLSAg ICBjcGRlZiBnZXRfdmFyaWFibGVfdmFsdWUoc2VsZiwgaW50IHZhcmlhYmxlKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgZ2V0X3ZhcmlhYmxlX3ZhbHVlKHNlbGYsIGludCB2YXJpYWJsZSk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgdmFsdWUgb2YgYSB2YXJpYWJsZSBnaXZlbiBi eSB0aGUgc29sdmVyLgorIAorQEAgLTI1Nyw3ICsyNTcsNyBAQCBjZGVmIGNsYXNzIENWWE9QVFNE UEJhY2tlbmQoTWF0cml4U0RQQmFja2VuZCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVy biBzZWxmLmFuc3dlclsneCddW3ZhcmlhYmxlXQorIAorLSAgICBjcGRlZiBkdWFsX3ZhcmlhYmxl KHNlbGYsIGludCBpLCBzcGFyc2U9RmFsc2UpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBkdWFsX3Zh cmlhYmxlKHNlbGYsIGludCBpLCBzcGFyc2U9RmFsc2UpOgorICAgICAgICAgIiIiCisgICAgICAg ICBUaGUgYGlgLXRoIGR1YWwgdmFyaWFibGUKKyAKK0BAIC0zMDcsNyArMzA3LDcgQEAgY2RlZiBj bGFzcyBDVlhPUFRTRFBCYWNrZW5kKE1hdHJpeFNEUEJhY2tlbmQpOgorICAgICAgICAgYXNzZXJ0 KG4gPT0gc2VsZi5hbnN3ZXJbJ3pzJ11baV0uc2l6ZVsxXSkgIyBtdXN0IGJlIHNxdWFyZSBtYXRy aXgKKyAgICAgICAgIHJldHVybiBNYXRyaXgobiwgbiwgbGlzdChzZWxmLmFuc3dlclsnenMnXVtp XSksIHNwYXJzZT1zcGFyc2UpCisgCistICAgIGNwZGVmIHNsYWNrKHNlbGYsIGludCBpLCBzcGFy c2U9RmFsc2UpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBzbGFjayhzZWxmLCBpbnQgaSwgc3BhcnNl PUZhbHNlKToKKyAgICAgICAgICIiIgorICAgICAgICAgU2xhY2sgb2YgdGhlIGBpYC10aCBjb25z dHJhaW50CisgCitAQCAtMzU5LDcgKzM1OSw3IEBAIGNkZWYgY2xhc3MgQ1ZYT1BUU0RQQmFja2Vu ZChNYXRyaXhTRFBCYWNrZW5kKToKKyAgICAgICAgIHJldHVybiBNYXRyaXgobiwgbiwgbGlzdChz ZWxmLmFuc3dlclsnc3MnXVtpXSksIHNwYXJzZT1zcGFyc2UpCisgCisgCistICAgIGNwZGVmIHNv bHZlcl9wYXJhbWV0ZXIoc2VsZiwgbmFtZSwgdmFsdWU9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIHNvbHZlcl9wYXJhbWV0ZXIoc2VsZiwgbmFtZSwgdmFsdWU9Tm9uZSk6CisgICAgICAgICAi IiIKKyAgICAgICAgIFJldHVybiBvciBkZWZpbmUgYSBzb2x2ZXIgcGFyYW1ldGVyCisgCitkaWZm IC0tZ2l0IGEvc3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL2N2eHB5X2JhY2tlbmQucHhkIGIv c3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL2N2eHB5X2JhY2tlbmQucHhkCitpbmRleCA5NmRk OWMzMzM5MC4uZWQ0ZDYzY2NjNjMgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9udW1lcmljYWwvYmFj a2VuZHMvY3Z4cHlfYmFja2VuZC5weGQKKysrKyBiL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5k cy9jdnhweV9iYWNrZW5kLnB4ZAorQEAgLTM3LDQgKzM3LDQgQEAgY2RlZiBjbGFzcyBDVlhQWUJh Y2tlbmQoR2VuZXJpY0JhY2tlbmQpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZWZm aWNpZW50cz0qKSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0IC0xCisgCist ICAgIGNwZGVmIGN2eHB5X3Byb2JsZW0oc2VsZikgbm9leGNlcHQKKysgICAgY3BkZWYgY3Z4cHlf cHJvYmxlbShzZWxmKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9j dnhweV9iYWNrZW5kLnB5eCBiL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9jdnhweV9iYWNr ZW5kLnB5eAoraW5kZXggYzA3ZDMzZTVhZTcuLmNlM2I3YWY4Nzg4IDEwMDY0NAorLS0tIGEvc3Jj L3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL2N2eHB5X2JhY2tlbmQucHl4CisrKysgYi9zcmMvc2Fn ZS9udW1lcmljYWwvYmFja2VuZHMvY3Z4cHlfYmFja2VuZC5weXgKK0BAIC0xNDIsNyArMTQyLDcg QEAgY2RlZiBjbGFzcyBDVlhQWUJhY2tlbmQ6CisgICAgICAgICAgICAgb2JqZWN0aXZlID0gY3Z4 cHkuTWluaW1pemUoMCkKKyAgICAgICAgIHNlbGYucHJvYmxlbSA9IGN2eHB5LlByb2JsZW0ob2Jq ZWN0aXZlLCAoKSkKKyAKKy0gICAgY3BkZWYgX19jb3B5X18oc2VsZikgbm9leGNlcHQ6CisrICAg IGNwZGVmIF9fY29weV9fKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm5zIGEg Y29weSBvZiBzZWxmLgorIAorQEAgLTE3NCw3ICsxNzQsNyBAQCBjZGVmIGNsYXNzIENWWFBZQmFj a2VuZDoKKyAgICAgICAgIGNwLm9ial9jb25zdGFudF90ZXJtID0gc2VsZi5vYmpfY29uc3RhbnRf dGVybQorICAgICAgICAgcmV0dXJuIGNwCisgCistICAgIGNwZGVmIGN2eHB5X3Byb2JsZW0oc2Vs Zikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGN2eHB5X3Byb2JsZW0oc2VsZik6CisgICAgICAgICBy ZXR1cm4gc2VsZi5wcm9ibGVtCisgCisgICAgIGRlZiBjdnhweV92YXJpYWJsZXMoc2VsZik6CitA QCAtMjg2LDcgKzI4Niw3IEBAIGNkZWYgY2xhc3MgQ1ZYUFlCYWNrZW5kOgorIAorICAgICAgICAg cmV0dXJuIGluZGV4CisgCistICAgIGNwZGVmIHNldF92ZXJib3NpdHkoc2VsZiwgaW50IGxldmVs KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgc2V0X3ZlcmJvc2l0eShzZWxmLCBpbnQgbGV2ZWwpOgor ICAgICAgICAgIiIiCisgICAgICAgICBTZXQgdGhlIGxvZyAodmVyYm9zaXR5KSBsZXZlbAorIAor QEAgLTMwNCw3ICszMDQsNyBAQCBjZGVmIGNsYXNzIENWWFBZQmFja2VuZDoKKyAgICAgICAgICIi IgorICAgICAgICAgcGFzcworIAorLSAgICBjcGRlZiBhZGRfbGluZWFyX2NvbnN0cmFpbnQoc2Vs ZiwgY29lZmZpY2llbnRzLCBsb3dlcl9ib3VuZCwgdXBwZXJfYm91bmQsIG5hbWU9Tm9uZSkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIGFkZF9saW5lYXJfY29uc3RyYWludChzZWxmLCBjb2VmZmljaWVu dHMsIGxvd2VyX2JvdW5kLCB1cHBlcl9ib3VuZCwgbmFtZT1Ob25lKToKKyAgICAgICAgICIiIgor ICAgICAgICAgQWRkIGEgbGluZWFyIGNvbnN0cmFpbnQuCisgCitAQCAtMzYzLDcgKzM2Myw3IEBA IGNkZWYgY2xhc3MgQ1ZYUFlCYWNrZW5kOgorICAgICAgICAgc2VsZi5jb25zdHJhaW50X25hbWVz LmFwcGVuZChuYW1lKQorICAgICAgICAgc2VsZi5wcm9ibGVtID0gY3Z4cHkuUHJvYmxlbShzZWxm LnByb2JsZW0ub2JqZWN0aXZlLCBjb25zdHJhaW50cykKKyAKKy0gICAgY3BkZWYgYWRkX2NvbChz ZWxmLCBpbmRpY2VzLCBjb2VmZnMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBhZGRfY29sKHNlbGYs IGluZGljZXMsIGNvZWZmcyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEFkZCBhIGNvbHVtbi4K KyAKK0BAIC00MTAsNyArNDEwLDcgQEAgY2RlZiBjbGFzcyBDVlhQWUJhY2tlbmQ6CisgICAgICAg ICAjc2VsZi5vYmplY3RpdmVfY29lZmZpY2llbnRzLmFwcGVuZCgwKSBnb2VzIHRvICJzZWxmLmFk ZF92YXJpYWJsZSIKKyAgICAgICAgIHNlbGYuYWRkX3ZhcmlhYmxlKGNvZWZmaWNpZW50cz16aXAo aW5kaWNlcywgY29lZmZzKSkKKyAKKy0gICAgY3BkZWYgc2V0X29iamVjdGl2ZShzZWxmLCBsaXN0 IGNvZWZmLCBkPTAuMCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHNldF9vYmplY3RpdmUoc2VsZiwg bGlzdCBjb2VmZiwgZD0wLjApOgorICAgICAgICAgIiIiCisgICAgICAgICBTZXQgdGhlIG9iamVj dGl2ZSBmdW5jdGlvbi4KKyAKK0BAIC00NDIsNyArNDQyLDcgQEAgY2RlZiBjbGFzcyBDVlhQWUJh Y2tlbmQ6CisgICAgICAgICBzZWxmLnByb2JsZW0gPSBjdnhweS5Qcm9ibGVtKG9iamVjdGl2ZSwg Y29uc3RyYWludHMpCisgICAgICAgICBzZWxmLm9ial9jb25zdGFudF90ZXJtID0gZAorIAorLSAg ICBjcGRlZiBzZXRfc2Vuc2Uoc2VsZiwgaW50IHNlbnNlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg c2V0X3NlbnNlKHNlbGYsIGludCBzZW5zZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFNldCB0 aGUgZGlyZWN0aW9uIChtYXhpbWl6YXRpb24vbWluaW1pemF0aW9uKS4KKyAKK0BAIC00NzAsNyAr NDcwLDcgQEAgY2RlZiBjbGFzcyBDVlhQWUJhY2tlbmQ6CisgICAgICAgICAgICAgb2JqZWN0aXZl ID0gY3Z4cHkuTWluaW1pemUoZXhwcikKKyAgICAgICAgIHNlbGYucHJvYmxlbSA9IGN2eHB5LlBy b2JsZW0ob2JqZWN0aXZlLCBzZWxmLnByb2JsZW0uY29uc3RyYWludHMpCisgCistICAgIGNwZGVm IG9iamVjdGl2ZV9jb2VmZmljaWVudChzZWxmLCBpbnQgdmFyaWFibGUsIGNvZWZmPU5vbmUpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBvYmplY3RpdmVfY29lZmZpY2llbnQoc2VsZiwgaW50IHZhcmlh YmxlLCBjb2VmZj1Ob25lKToKKyAgICAgICAgICIiIgorICAgICAgICAgU2V0IG9yIGdldCB0aGUg Y29lZmZpY2llbnQgb2YgYSB2YXJpYWJsZSBpbiB0aGUgb2JqZWN0aXZlIGZ1bmN0aW9uCisgCitA QCAtNTQ1LDcgKzU0NSw3IEBAIGNkZWYgY2xhc3MgQ1ZYUFlCYWNrZW5kOgorICAgICAgICAgICAg IHJhaXNlIE1JUFNvbHZlckV4Y2VwdGlvbihmImN2eHB5LlByb2JsZW0uc29sdmU6IFByb2JsZW0g aXMgdW5ib3VuZGVkIikKKyAgICAgICAgIHJhaXNlIE1JUFNvbHZlckV4Y2VwdGlvbihmImN2eHB5 LlByb2JsZW0uc29sdmUgcmVwb3J0ZWQgYW4gdW5rbm93biBwcm9ibGVtIHN0YXR1czoge3N0YXR1 c30iKQorIAorLSAgICBjcGRlZiBnZXRfb2JqZWN0aXZlX3ZhbHVlKHNlbGYpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBnZXRfb2JqZWN0aXZlX3ZhbHVlKHNlbGYpOgorICAgICAgICAgIiIiCisgICAg ICAgICBSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBvYmplY3RpdmUgZnVuY3Rpb24uCisgCitAQCAt NTcyLDcgKzU3Miw3IEBAIGNkZWYgY2xhc3MgQ1ZYUFlCYWNrZW5kOgorICAgICAgICAgIiIiCisg ICAgICAgICByZXR1cm4gc2VsZi5wcm9ibGVtLnZhbHVlICsgc2VsZi5vYmpfY29uc3RhbnRfdGVy bQorIAorLSAgICBjcGRlZiBnZXRfdmFyaWFibGVfdmFsdWUoc2VsZiwgaW50IHZhcmlhYmxlKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgZ2V0X3ZhcmlhYmxlX3ZhbHVlKHNlbGYsIGludCB2YXJpYWJs ZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgdmFsdWUgb2YgYSB2YXJpYWJs ZSBnaXZlbiBieSB0aGUgc29sdmVyLgorIAorQEAgLTY0OCw3ICs2NDgsNyBAQCBjZGVmIGNsYXNz IENWWFBZQmFja2VuZDoKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIGlzaW5zdGFuY2Uo c2VsZi5wcm9ibGVtLm9iamVjdGl2ZSwgY3Z4cHkuTWF4aW1pemUpCisgCistICAgIGNwZGVmIHBy b2JsZW1fbmFtZShzZWxmLCBuYW1lPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBwcm9ibGVt X25hbWUoc2VsZiwgbmFtZT1Ob25lKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIG9y IGRlZmluZSB0aGUgcHJvYmxlbSdzIG5hbWUKKyAKK0BAIC02NzMsNyArNjczLDcgQEAgY2RlZiBj bGFzcyBDVlhQWUJhY2tlbmQ6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHNlbGYucHJv Yl9uYW1lID0gc3RyKG5hbWUpCisgCistICAgIGNwZGVmIHJvdyhzZWxmLCBpbnQgaSkgbm9leGNl cHQ6CisrICAgIGNwZGVmIHJvdyhzZWxmLCBpbnQgaSk6CisgICAgICAgICAiIiIKKyAgICAgICAg IFJldHVybiBhIHJvdworIAorQEAgLTcwOSw3ICs3MDksNyBAQCBjZGVmIGNsYXNzIENWWFBZQmFj a2VuZDoKKyAgICAgICAgICAgICAgICAgY29lZi5hcHBlbmQoc2VsZi5NYXRyaXhbaV1bal0pCisg ICAgICAgICByZXR1cm4gKGlkeCwgY29lZikKKyAKKy0gICAgY3BkZWYgcm93X2JvdW5kcyhzZWxm LCBpbnQgaW5kZXgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiByb3dfYm91bmRzKHNlbGYsIGludCBp bmRleCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYm91bmRzIG9mIGEgc3Bl Y2lmaWMgY29uc3RyYWludC4KKyAKK0BAIC03MzgsNyArNzM4LDcgQEAgY2RlZiBjbGFzcyBDVlhQ WUJhY2tlbmQ6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiAoc2VsZi5yb3dfbG93ZXJf Ym91bmRbaW5kZXhdLCBzZWxmLnJvd191cHBlcl9ib3VuZFtpbmRleF0pCisgCistICAgIGNwZGVm IGNvbF9ib3VuZHMoc2VsZiwgaW50IGluZGV4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgY29sX2Jv dW5kcyhzZWxmLCBpbnQgaW5kZXgpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhl IGJvdW5kcyBvZiBhIHNwZWNpZmljIHZhcmlhYmxlLgorIAorQEAgLTgyOSw3ICs4MjksNyBAQCBj ZGVmIGNsYXNzIENWWFBZQmFja2VuZDoKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIG5v dCBzZWxmLmlzX3ZhcmlhYmxlX2JpbmFyeShpbmRleCkgYW5kIG5vdCBzZWxmLmlzX3ZhcmlhYmxl X2ludGVnZXIoaW5kZXgpCisgCistICAgIGNwZGVmIHJvd19uYW1lKHNlbGYsIGludCBpbmRleCkg bm9leGNlcHQ6CisrICAgIGNwZGVmIHJvd19uYW1lKHNlbGYsIGludCBpbmRleCk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYGBpbmRleGBgIHRoIHJvdyBuYW1lCisgCitAQCAt ODQ3LDcgKzg0Nyw3IEBAIGNkZWYgY2xhc3MgQ1ZYUFlCYWNrZW5kOgorICAgICAgICAgIiIiCisg ICAgICAgICByZXR1cm4gc2VsZi5jb25zdHJhaW50X25hbWVzW2luZGV4XSBvciAoImNvbnN0cmFp bnRfIiArIHJlcHIoaW5kZXgpKQorIAorLSAgICBjcGRlZiBjb2xfbmFtZShzZWxmLCBpbnQgaW5k ZXgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjb2xfbmFtZShzZWxmLCBpbnQgaW5kZXgpOgorICAg ICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGBgaW5kZXhgYCB0aCBjb2wgbmFtZQorIAor QEAgLTg2OSw3ICs4NjksNyBAQCBjZGVmIGNsYXNzIENWWFBZQmFja2VuZDoKKyAgICAgICAgICIi IgorICAgICAgICAgcmV0dXJuIHNlbGYudmFyaWFibGVzW2luZGV4XS5uYW1lKCkKKyAKKy0gICAg Y3BkZWYgdmFyaWFibGVfdXBwZXJfYm91bmQoc2VsZiwgaW50IGluZGV4LCB2YWx1ZSA9IEZhbHNl KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgdmFyaWFibGVfdXBwZXJfYm91bmQoc2VsZiwgaW50IGlu ZGV4LCB2YWx1ZSA9IEZhbHNlKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIG9yIGRl ZmluZSB0aGUgdXBwZXIgYm91bmQgb24gYSB2YXJpYWJsZQorIAorQEAgLTkwMSw3ICs5MDEsNyBA QCBjZGVmIGNsYXNzIENWWFBZQmFja2VuZDoKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg cmV0dXJuIHNlbGYuY29sX3VwcGVyX2JvdW5kW2luZGV4XQorIAorLSAgICBjcGRlZiB2YXJpYWJs ZV9sb3dlcl9ib3VuZChzZWxmLCBpbnQgaW5kZXgsIHZhbHVlID0gRmFsc2UpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiB2YXJpYWJsZV9sb3dlcl9ib3VuZChzZWxmLCBpbnQgaW5kZXgsIHZhbHVlID0g RmFsc2UpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gb3IgZGVmaW5lIHRoZSBsb3dl ciBib3VuZCBvbiBhIHZhcmlhYmxlCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbnVtZXJpY2Fs L2JhY2tlbmRzL2dlbmVyaWNfYmFja2VuZC5weGQgYi9zcmMvc2FnZS9udW1lcmljYWwvYmFja2Vu ZHMvZ2VuZXJpY19iYWNrZW5kLnB4ZAoraW5kZXggNjA5ODNhZmM2ZjIuLjY3MzEwOWFhZTQwIDEw MDY0NAorLS0tIGEvc3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL2dlbmVyaWNfYmFja2VuZC5w eGQKKysrKyBiL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9nZW5lcmljX2JhY2tlbmQucHhk CitAQCAtMTIsNDQgKzEyLDQ0IEBAIGZyb20gc2FnZS5zdHJ1Y3R1cmUuc2FnZV9vYmplY3QgY2lt cG9ydCBTYWdlT2JqZWN0CisgY2RlZiBjbGFzcyBHZW5lcmljQmFja2VuZCAoU2FnZU9iamVjdCk6 CisgICAgIGNwZGVmIGludCBhZGRfdmFyaWFibGUoc2VsZiwgbG93ZXJfYm91bmQ9KiwgdXBwZXJf Ym91bmQ9KiwgYmluYXJ5PSosIGNvbnRpbnVvdXM9KiwgaW50ZWdlcj0qLCBvYmo9KiwgbmFtZT0q KSBleGNlcHQgLTEKKyAgICAgY3BkZWYgaW50IGFkZF92YXJpYWJsZXMoc2VsZiwgaW50LCBsb3dl cl9ib3VuZD0qLCB1cHBlcl9ib3VuZD0qLCBiaW5hcnk9KiwgY29udGludW91cz0qLCBpbnRlZ2Vy PSosIG9iaj0qLCBuYW1lcz0qKSBleGNlcHQgLTEKKy0gICAgY3BkZWYgc2V0X3ZhcmlhYmxlX3R5 cGUoc2VsZiwgaW50IHZhcmlhYmxlLCBpbnQgdnR5cGUpIG5vZXhjZXB0CistICAgIGNwZGVmIHNl dF9zZW5zZShzZWxmLCBpbnQgc2Vuc2UpIG5vZXhjZXB0CistICAgIGNwZGVmIG9iamVjdGl2ZV9j b2VmZmljaWVudChzZWxmLCBpbnQgdmFyaWFibGUsIGNvZWZmPSopIG5vZXhjZXB0CistICAgIGNw ZGVmIG9iamVjdGl2ZV9jb25zdGFudF90ZXJtKHNlbGYsIGQ9Kikgbm9leGNlcHQKKy0gICAgY3Bk ZWYgc2V0X29iamVjdGl2ZShzZWxmLCBsaXN0IGNvZWZmLCBkPSopIG5vZXhjZXB0CistICAgIGNw ZGVmIHNldF92ZXJib3NpdHkoc2VsZiwgaW50IGxldmVsKSBub2V4Y2VwdAorLSAgICBjcGRlZiBh ZGRfbGluZWFyX2NvbnN0cmFpbnQoc2VsZiwgY29lZmZpY2llbnRzLCBsb3dlcl9ib3VuZCwgdXBw ZXJfYm91bmQsIG5hbWU9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgYWRkX2xpbmVhcl9jb25zdHJh aW50X3ZlY3RvcihzZWxmLCBkZWdyZWUsIGNvZWZmaWNpZW50cywgbG93ZXJfYm91bmQsIHVwcGVy X2JvdW5kLCBuYW1lPSopIG5vZXhjZXB0CistICAgIGNwZGVmIHJlbW92ZV9jb25zdHJhaW50KHNl bGYsIGludCkgbm9leGNlcHQKKy0gICAgY3BkZWYgcmVtb3ZlX2NvbnN0cmFpbnRzKHNlbGYsIGNv bnN0cmFpbnRzKSBub2V4Y2VwdAorLSAgICBjcGRlZiBhZGRfY29sKHNlbGYsIGluZGljZXMsIGNv ZWZmcykgbm9leGNlcHQKKy0gICAgY3BkZWYgYWRkX2xpbmVhcl9jb25zdHJhaW50cyhzZWxmLCBp bnQgbnVtYmVyLCBsb3dlcl9ib3VuZCwgdXBwZXJfYm91bmQsIG5hbWVzPSopIG5vZXhjZXB0Cisr ICAgIGNwZGVmIHNldF92YXJpYWJsZV90eXBlKHNlbGYsIGludCB2YXJpYWJsZSwgaW50IHZ0eXBl KQorKyAgICBjcGRlZiBzZXRfc2Vuc2Uoc2VsZiwgaW50IHNlbnNlKQorKyAgICBjcGRlZiBvYmpl Y3RpdmVfY29lZmZpY2llbnQoc2VsZiwgaW50IHZhcmlhYmxlLCBjb2VmZj0qKQorKyAgICBjcGRl ZiBvYmplY3RpdmVfY29uc3RhbnRfdGVybShzZWxmLCBkPSopCisrICAgIGNwZGVmIHNldF9vYmpl Y3RpdmUoc2VsZiwgbGlzdCBjb2VmZiwgZD0qKQorKyAgICBjcGRlZiBzZXRfdmVyYm9zaXR5KHNl bGYsIGludCBsZXZlbCkKKysgICAgY3BkZWYgYWRkX2xpbmVhcl9jb25zdHJhaW50KHNlbGYsIGNv ZWZmaWNpZW50cywgbG93ZXJfYm91bmQsIHVwcGVyX2JvdW5kLCBuYW1lPSopCisrICAgIGNwZGVm IGFkZF9saW5lYXJfY29uc3RyYWludF92ZWN0b3Ioc2VsZiwgZGVncmVlLCBjb2VmZmljaWVudHMs IGxvd2VyX2JvdW5kLCB1cHBlcl9ib3VuZCwgbmFtZT0qKQorKyAgICBjcGRlZiByZW1vdmVfY29u c3RyYWludChzZWxmLCBpbnQpCisrICAgIGNwZGVmIHJlbW92ZV9jb25zdHJhaW50cyhzZWxmLCBj b25zdHJhaW50cykKKysgICAgY3BkZWYgYWRkX2NvbChzZWxmLCBpbmRpY2VzLCBjb2VmZnMpCisr ICAgIGNwZGVmIGFkZF9saW5lYXJfY29uc3RyYWludHMoc2VsZiwgaW50IG51bWJlciwgbG93ZXJf Ym91bmQsIHVwcGVyX2JvdW5kLCBuYW1lcz0qKQorICAgICBjcGRlZiBpbnQgc29sdmUoc2VsZikg ZXhjZXB0IC0xCistICAgIGNwZGVmIGdldF9vYmplY3RpdmVfdmFsdWUoc2VsZikgbm9leGNlcHQK Ky0gICAgY3BkZWYgYmVzdF9rbm93bl9vYmplY3RpdmVfYm91bmQoc2VsZikgbm9leGNlcHQKKy0g ICAgY3BkZWYgZ2V0X3JlbGF0aXZlX29iamVjdGl2ZV9nYXAoc2VsZikgbm9leGNlcHQKKy0gICAg Y3BkZWYgZ2V0X3ZhcmlhYmxlX3ZhbHVlKHNlbGYsIGludCB2YXJpYWJsZSkgbm9leGNlcHQKKysg ICAgY3BkZWYgZ2V0X29iamVjdGl2ZV92YWx1ZShzZWxmKQorKyAgICBjcGRlZiBiZXN0X2tub3du X29iamVjdGl2ZV9ib3VuZChzZWxmKQorKyAgICBjcGRlZiBnZXRfcmVsYXRpdmVfb2JqZWN0aXZl X2dhcChzZWxmKQorKyAgICBjcGRlZiBnZXRfdmFyaWFibGVfdmFsdWUoc2VsZiwgaW50IHZhcmlh YmxlKQorICAgICBjcGRlZiBiaW50IGlzX21heGltaXphdGlvbihzZWxmKSBub2V4Y2VwdAorLSAg ICBjcGRlZiB3cml0ZV9scChzZWxmLCBuYW1lKSBub2V4Y2VwdAorLSAgICBjcGRlZiB3cml0ZV9t cHMoc2VsZiwgbmFtZSwgaW50IG1vZGVybikgbm9leGNlcHQKKy0gICAgY3BkZWYgcm93KHNlbGYs IGludCBpKSBub2V4Y2VwdAorKyAgICBjcGRlZiB3cml0ZV9scChzZWxmLCBuYW1lKQorKyAgICBj cGRlZiB3cml0ZV9tcHMoc2VsZiwgbmFtZSwgaW50IG1vZGVybikKKysgICAgY3BkZWYgcm93KHNl bGYsIGludCBpKQorICAgICBjcGRlZiBpbnQgbmNvbHMoc2VsZikgbm9leGNlcHQKKyAgICAgY3Bk ZWYgaW50IG5yb3dzKHNlbGYpIG5vZXhjZXB0CisgICAgIGNwZGVmIGJpbnQgaXNfdmFyaWFibGVf YmluYXJ5KHNlbGYsIGludCkgbm9leGNlcHQKKyAgICAgY3BkZWYgYmludCBpc192YXJpYWJsZV9p bnRlZ2VyKHNlbGYsIGludCkgbm9leGNlcHQKKyAgICAgY3BkZWYgYmludCBpc192YXJpYWJsZV9j b250aW51b3VzKHNlbGYsIGludCkgbm9leGNlcHQKKy0gICAgY3BkZWYgcHJvYmxlbV9uYW1lKHNl bGYsIG5hbWUgPSAqKSBub2V4Y2VwdAorLSAgICBjcGRlZiByb3dfYm91bmRzKHNlbGYsIGludCBp bmRleCkgbm9leGNlcHQKKy0gICAgY3BkZWYgY29sX2JvdW5kcyhzZWxmLCBpbnQgaW5kZXgpIG5v ZXhjZXB0CistICAgIGNwZGVmIHJvd19uYW1lKHNlbGYsIGludCBpbmRleCkgbm9leGNlcHQKKy0g ICAgY3BkZWYgY29sX25hbWUoc2VsZiwgaW50IGluZGV4KSBub2V4Y2VwdAorLSAgICBjcGRlZiB2 YXJpYWJsZV91cHBlcl9ib3VuZChzZWxmLCBpbnQgaW5kZXgsIHZhbHVlID0gKikgbm9leGNlcHQK Ky0gICAgY3BkZWYgdmFyaWFibGVfbG93ZXJfYm91bmQoc2VsZiwgaW50IGluZGV4LCB2YWx1ZSA9 ICopIG5vZXhjZXB0CistICAgIGNwZGVmIHNvbHZlcl9wYXJhbWV0ZXIoc2VsZiwgbmFtZSwgdmFs dWU9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgemVybyhzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRl ZiBiYXNlX3Jpbmcoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgX19jb3B5X18oc2VsZikgbm9l eGNlcHQKKy0gICAgY3BkZWYgY29weShzZWxmKSBub2V4Y2VwdAorKyAgICBjcGRlZiBwcm9ibGVt X25hbWUoc2VsZiwgbmFtZSA9ICopCisrICAgIGNwZGVmIHJvd19ib3VuZHMoc2VsZiwgaW50IGlu ZGV4KQorKyAgICBjcGRlZiBjb2xfYm91bmRzKHNlbGYsIGludCBpbmRleCkKKysgICAgY3BkZWYg cm93X25hbWUoc2VsZiwgaW50IGluZGV4KQorKyAgICBjcGRlZiBjb2xfbmFtZShzZWxmLCBpbnQg aW5kZXgpCisrICAgIGNwZGVmIHZhcmlhYmxlX3VwcGVyX2JvdW5kKHNlbGYsIGludCBpbmRleCwg dmFsdWUgPSAqKQorKyAgICBjcGRlZiB2YXJpYWJsZV9sb3dlcl9ib3VuZChzZWxmLCBpbnQgaW5k ZXgsIHZhbHVlID0gKikKKysgICAgY3BkZWYgc29sdmVyX3BhcmFtZXRlcihzZWxmLCBuYW1lLCB2 YWx1ZT0qKQorKyAgICBjcGRlZiB6ZXJvKHNlbGYpCisrICAgIGNwZGVmIGJhc2VfcmluZyhzZWxm KQorKyAgICBjcGRlZiBfX2NvcHlfXyhzZWxmKQorKyAgICBjcGRlZiBjb3B5KHNlbGYpCisgICAg IGNwZGVmIGJpbnQgaXNfdmFyaWFibGVfYmFzaWMoc2VsZiwgaW50IGluZGV4KSBub2V4Y2VwdAor ICAgICBjcGRlZiBiaW50IGlzX3ZhcmlhYmxlX25vbmJhc2ljX2F0X2xvd2VyX2JvdW5kKHNlbGYs IGludCBpbmRleCkgbm9leGNlcHQKKyAgICAgY3BkZWYgYmludCBpc19zbGFja192YXJpYWJsZV9i YXNpYyhzZWxmLCBpbnQgaW5kZXgpIG5vZXhjZXB0CitAQCAtNTcsNCArNTcsNCBAQCBjZGVmIGNs YXNzIEdlbmVyaWNCYWNrZW5kIChTYWdlT2JqZWN0KToKKyAKKyAgICAgY2RlZiBvYmplY3Qgb2Jq X2NvbnN0YW50X3Rlcm0KKyAKKy1jcGRlZiBHZW5lcmljQmFja2VuZCBnZXRfc29sdmVyKGNvbnN0 cmFpbnRfZ2VuZXJhdGlvbiA9ID8sIHNvbHZlciA9ID8sIGJhc2VfcmluZyA9ID8pIG5vZXhjZXB0 CisrY3BkZWYgR2VuZXJpY0JhY2tlbmQgZ2V0X3NvbHZlcihjb25zdHJhaW50X2dlbmVyYXRpb24g PSA/LCBzb2x2ZXIgPSA/LCBiYXNlX3JpbmcgPSA/KQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL251 bWVyaWNhbC9iYWNrZW5kcy9nZW5lcmljX2JhY2tlbmQucHl4IGIvc3JjL3NhZ2UvbnVtZXJpY2Fs L2JhY2tlbmRzL2dlbmVyaWNfYmFja2VuZC5weXgKK2luZGV4IGI1ZGI0YjRhYTlkLi5jYTRjZjlk OGM5NCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9nZW5lcmljX2Jh Y2tlbmQucHl4CisrKysgYi9zcmMvc2FnZS9udW1lcmljYWwvYmFja2VuZHMvZ2VuZXJpY19iYWNr ZW5kLnB5eAorQEAgLTMzLDExICszMywxMSBAQCBmcm9tIGNvcHkgaW1wb3J0IGNvcHkKKyAKKyBj ZGVmIGNsYXNzIEdlbmVyaWNCYWNrZW5kOgorIAorLSAgICBjcGRlZiBiYXNlX3Jpbmcoc2VsZikg bm9leGNlcHQ6CisrICAgIGNwZGVmIGJhc2VfcmluZyhzZWxmKToKKyAgICAgICAgIGZyb20gc2Fn ZS5yaW5ncy5yZWFsX2RvdWJsZSBpbXBvcnQgUkRGCisgICAgICAgICByZXR1cm4gUkRGCisgCist ICAgIGNwZGVmIHplcm8oc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIHplcm8oc2VsZik6Cisg ICAgICAgICByZXR1cm4gc2VsZi5iYXNlX3JpbmcoKSgwKQorIAorICAgICBjcGRlZiBpbnQgYWRk X3ZhcmlhYmxlKHNlbGYsIGxvd2VyX2JvdW5kPTAsIHVwcGVyX2JvdW5kPU5vbmUsCitAQCAtMjEw LDcgKzIxMCw3IEBAIGNkZWYgY2xhc3MgR2VuZXJpY0JhY2tlbmQ6CisgICAgICAgICB0ZXN0ZXIu YXNzZXJ0RXF1YWwocC5jb2xfbmFtZShuY29sc19iZWZvcmUpLCAnYScpCisgICAgICAgICB0ZXN0 ZXIuYXNzZXJ0QWxtb3N0RXF1YWwocC5vYmplY3RpdmVfY29lZmZpY2llbnQobmNvbHNfYmVmb3Jl KSwgNDIuMCkKKyAKKy0gICAgY3BkZWYgIHNldF92YXJpYWJsZV90eXBlKHNlbGYsIGludCB2YXJp YWJsZSwgaW50IHZ0eXBlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgIHNldF92YXJpYWJsZV90eXBl KHNlbGYsIGludCB2YXJpYWJsZSwgaW50IHZ0eXBlKToKKyAgICAgICAgICIiIgorICAgICAgICAg U2V0IHRoZSB0eXBlIG9mIGEgdmFyaWFibGUKKyAKK0BAIC0yMzksNyArMjM5LDcgQEAgY2RlZiBj bGFzcyBHZW5lcmljQmFja2VuZDoKKyAgICAgICAgICIiIgorICAgICAgICAgcmFpc2UgTm90SW1w bGVtZW50ZWRFcnJvcigpCisgCistICAgIGNwZGVmIHNldF9zZW5zZShzZWxmLCBpbnQgc2Vuc2Up IG5vZXhjZXB0OgorKyAgICBjcGRlZiBzZXRfc2Vuc2Uoc2VsZiwgaW50IHNlbnNlKToKKyAgICAg ICAgICIiIgorICAgICAgICAgU2V0IHRoZSBkaXJlY3Rpb24gKG1heGltaXphdGlvbi9taW5pbWl6 YXRpb24pLgorIAorQEAgLTI4NSw3ICsyODUsNyBAQCBjZGVmIGNsYXNzIEdlbmVyaWNCYWNrZW5k OgorICAgICAgICAgdGVzdGVyLmFzc2VydElzTm9uZShwLnNldF9zZW5zZSgxKSkKKyAgICAgICAg IHRlc3Rlci5hc3NlcnRFcXVhbChwLmlzX21heGltaXphdGlvbigpLCBUcnVlKQorIAorLSAgICBj cGRlZiBvYmplY3RpdmVfY29lZmZpY2llbnQoc2VsZiwgaW50IHZhcmlhYmxlLCBjb2VmZj1Ob25l KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgb2JqZWN0aXZlX2NvZWZmaWNpZW50KHNlbGYsIGludCB2 YXJpYWJsZSwgY29lZmY9Tm9uZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFNldCBvciBnZXQg dGhlIGNvZWZmaWNpZW50IG9mIGEgdmFyaWFibGUgaW4gdGhlIG9iamVjdGl2ZQorICAgICAgICAg ZnVuY3Rpb24KK0BAIC0zMTEsNyArMzExLDcgQEAgY2RlZiBjbGFzcyBHZW5lcmljQmFja2VuZDoK KyAgICAgICAgICIiIgorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigpCisgCist ICAgIGNwZGVmIG9iamVjdGl2ZV9jb25zdGFudF90ZXJtKHNlbGYsIGQ9Tm9uZSkgbm9leGNlcHQ6 CisrICAgIGNwZGVmIG9iamVjdGl2ZV9jb25zdGFudF90ZXJtKHNlbGYsIGQ9Tm9uZSk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIFNldCBvciBnZXQgdGhlIGNvbnN0YW50IHRlcm0gaW4gdGhlIG9i amVjdGl2ZSBmdW5jdGlvbgorIAorQEAgLTMzNSw3ICszMzUsNyBAQCBjZGVmIGNsYXNzIEdlbmVy aWNCYWNrZW5kOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICBzZWxmLm9ial9jb25zdGFu dF90ZXJtID0gZAorIAorLSAgICBjcGRlZiBzZXRfb2JqZWN0aXZlKHNlbGYsIGxpc3QgY29lZmYs IGQgPSAwLjApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBzZXRfb2JqZWN0aXZlKHNlbGYsIGxpc3Qg Y29lZmYsIGQgPSAwLjApOgorICAgICAgICAgIiIiCisgICAgICAgICBTZXQgdGhlIG9iamVjdGl2 ZSBmdW5jdGlvbi4KKyAKK0BAIC0zNzEsNyArMzcxLDcgQEAgY2RlZiBjbGFzcyBHZW5lcmljQmFj a2VuZDoKKyAgICAgICAgICIiIgorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigp CisgCistICAgIGNwZGVmIHNldF92ZXJib3NpdHkoc2VsZiwgaW50IGxldmVsKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgc2V0X3ZlcmJvc2l0eShzZWxmLCBpbnQgbGV2ZWwpOgorICAgICAgICAgIiIi CisgICAgICAgICBTZXQgdGhlIGxvZyAodmVyYm9zaXR5KSBsZXZlbAorIAorQEAgLTM4Nyw3ICsz ODcsNyBAQCBjZGVmIGNsYXNzIEdlbmVyaWNCYWNrZW5kOgorICAgICAgICAgIiIiCisgICAgICAg ICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKKyAKKy0gICAgY3BkZWYgcmVtb3ZlX2NvbnN0 cmFpbnQoc2VsZiwgaW50IGkpIG5vZXhjZXB0OgorKyAgICBjcGRlZiByZW1vdmVfY29uc3RyYWlu dChzZWxmLCBpbnQgaSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZW1vdmUgYSBjb25zdHJh aW50LgorIAorQEAgLTQxNSw3ICs0MTUsNyBAQCBjZGVmIGNsYXNzIEdlbmVyaWNCYWNrZW5kOgor ICAgICAgICAgIiIiCisgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKKyAKKy0g ICAgY3BkZWYgcmVtb3ZlX2NvbnN0cmFpbnRzKHNlbGYsIGNvbnN0cmFpbnRzKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgcmVtb3ZlX2NvbnN0cmFpbnRzKHNlbGYsIGNvbnN0cmFpbnRzKToKKyAgICAg ICAgIHIiIiIKKyAgICAgICAgIFJlbW92ZSBzZXZlcmFsIGNvbnN0cmFpbnRzLgorIAorQEAgLTQ0 NSw3ICs0NDUsNyBAQCBjZGVmIGNsYXNzIEdlbmVyaWNCYWNrZW5kOgorICAgICAgICAgICAgICAg ICBzZWxmLnJlbW92ZV9jb25zdHJhaW50KGMpCisgICAgICAgICAgICAgICAgIGxhc3QgPSBjCisg CistICAgIGNwZGVmIGFkZF9saW5lYXJfY29uc3RyYWludChzZWxmLCBjb2VmZmljaWVudHMsIGxv d2VyX2JvdW5kLCB1cHBlcl9ib3VuZCwgbmFtZT1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg YWRkX2xpbmVhcl9jb25zdHJhaW50KHNlbGYsIGNvZWZmaWNpZW50cywgbG93ZXJfYm91bmQsIHVw cGVyX2JvdW5kLCBuYW1lPU5vbmUpOgorICAgICAgICAgIiIiCisgICAgICAgICBBZGQgYSBsaW5l YXIgY29uc3RyYWludC4KKyAKK0BAIC00ODEsNyArNDgxLDcgQEAgY2RlZiBjbGFzcyBHZW5lcmlj QmFja2VuZDoKKyAgICAgICAgICIiIgorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJv cignYWRkX2xpbmVhcl9jb25zdHJhaW50JykKKyAKKy0gICAgY3BkZWYgYWRkX2xpbmVhcl9jb25z dHJhaW50X3ZlY3RvcihzZWxmLCBkZWdyZWUsIGNvZWZmaWNpZW50cywgbG93ZXJfYm91bmQsIHVw cGVyX2JvdW5kLCBuYW1lPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBhZGRfbGluZWFyX2Nv bnN0cmFpbnRfdmVjdG9yKHNlbGYsIGRlZ3JlZSwgY29lZmZpY2llbnRzLCBsb3dlcl9ib3VuZCwg dXBwZXJfYm91bmQsIG5hbWU9Tm9uZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEFkZCBhIHZl Y3Rvci12YWx1ZWQgbGluZWFyIGNvbnN0cmFpbnQuCisgCitAQCAtNTYxLDcgKzU2MSw3IEBAIGNk ZWYgY2xhc3MgR2VuZXJpY0JhY2tlbmQ6CisgICAgICAgICAgICAgcC5hZGRfbGluZWFyX2NvbnN0 cmFpbnRfdmVjdG9yKDIsIGNvZWZmcywgbG93ZXIsIHVwcGVyLCAnZm9vJykKKyAgICAgICAgICMg RklYTUU6IFRlc3RzIGhlcmUuIENhcmVmdWwgd2hhdCB3ZSBleHBlY3QgcmVnYXJkaW5nIHJhbmdl ZCBjb25zdHJhaW50cyB3aXRoIHNvbWUgc29sdmVycy4KKyAKKy0gICAgY3BkZWYgYWRkX2NvbChz ZWxmLCBpbmRpY2VzLCBjb2VmZnMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBhZGRfY29sKHNlbGYs IGluZGljZXMsIGNvZWZmcyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEFkZCBhIGNvbHVtbi4K KyAKK0BAIC02MjIsNyArNjIyLDcgQEAgY2RlZiBjbGFzcyBHZW5lcmljQmFja2VuZDoKKyAgICAg ICAgIGZvciAxIDw9IGkgPD0gNDoKKyAgICAgICAgICAgICB0ZXN0ZXIuYXNzZXJ0RXF1YWwocC5y b3coaSksIChbMF0sIFtpXSkpCisgCistICAgIGNwZGVmIGFkZF9saW5lYXJfY29uc3RyYWludHMo c2VsZiwgaW50IG51bWJlciwgbG93ZXJfYm91bmQsIHVwcGVyX2JvdW5kLCBuYW1lcz1Ob25lKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgYWRkX2xpbmVhcl9jb25zdHJhaW50cyhzZWxmLCBpbnQgbnVt YmVyLCBsb3dlcl9ib3VuZCwgdXBwZXJfYm91bmQsIG5hbWVzPU5vbmUpOgorICAgICAgICAgIiIi CisgICAgICAgICBBZGQgYGAnbnVtYmVyYGAgbGluZWFyIGNvbnN0cmFpbnRzLgorIAorQEAgLTc0 Nyw3ICs3NDcsNyBAQCBjZGVmIGNsYXNzIEdlbmVyaWNCYWNrZW5kOgorICAgICAgICAgd2l0aCB0 ZXN0ZXIuYXNzZXJ0UmFpc2VzKE1JUFNvbHZlckV4Y2VwdGlvbikgYXMgY206ICAgIyB1bmJvdW5k ZWQKKyAgICAgICAgICAgICBwLnNvbHZlKCkKKyAKKy0gICAgY3BkZWYgZ2V0X29iamVjdGl2ZV92 YWx1ZShzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZ2V0X29iamVjdGl2ZV92YWx1ZShzZWxm KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgb2JqZWN0 aXZlIGZ1bmN0aW9uLgorIAorQEAgLTc3Niw3ICs3NzYsNyBAQCBjZGVmIGNsYXNzIEdlbmVyaWNC YWNrZW5kOgorIAorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigpCisgCistICAg IGNwZGVmIGJlc3Rfa25vd25fb2JqZWN0aXZlX2JvdW5kKHNlbGYpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBiZXN0X2tub3duX29iamVjdGl2ZV9ib3VuZChzZWxmKToKKyAgICAgICAgIHIiIiIKKyAg ICAgICAgIFJldHVybiB0aGUgdmFsdWUgb2YgdGhlIGN1cnJlbnRseSBiZXN0IGtub3duIGJvdW5k LgorIAorQEAgLTgxMCw3ICs4MTAsNyBAQCBjZGVmIGNsYXNzIEdlbmVyaWNCYWNrZW5kOgorICAg ICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigpCisgCisgCistICAgIGNwZGVmIGdldF9y ZWxhdGl2ZV9vYmplY3RpdmVfZ2FwKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBnZXRfcmVs YXRpdmVfb2JqZWN0aXZlX2dhcChzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVy biB0aGUgcmVsYXRpdmUgb2JqZWN0aXZlIGdhcCBvZiB0aGUgYmVzdCBrbm93biBzb2x1dGlvbi4K KyAKK0BAIC04NDYsNyArODQ2LDcgQEAgY2RlZiBjbGFzcyBHZW5lcmljQmFja2VuZDoKKyAgICAg ICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQorIAorIAorLSAgICBjcGRlZiBnZXRfdmFy aWFibGVfdmFsdWUoc2VsZiwgaW50IHZhcmlhYmxlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZ2V0 X3ZhcmlhYmxlX3ZhbHVlKHNlbGYsIGludCB2YXJpYWJsZSk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIFJldHVybiB0aGUgdmFsdWUgb2YgYSB2YXJpYWJsZSBnaXZlbiBieSB0aGUgc29sdmVyLgor IAorQEAgLTkzNyw3ICs5MzcsNyBAQCBjZGVmIGNsYXNzIEdlbmVyaWNCYWNrZW5kOgorICAgICAg ICAgIiIiCisgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKKyAKKy0gICAgY3Bk ZWYgcHJvYmxlbV9uYW1lKHNlbGYsIG5hbWU9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHBy b2JsZW1fbmFtZShzZWxmLCBuYW1lPU5vbmUpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1 cm4gb3IgZGVmaW5lIHRoZSBwcm9ibGVtJ3MgbmFtZQorIAorQEAgLTk1Nyw3ICs5NTcsNyBAQCBj ZGVmIGNsYXNzIEdlbmVyaWNCYWNrZW5kOgorIAorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50 ZWRFcnJvcigpCisgCistICAgIGNwZGVmIHdyaXRlX2xwKHNlbGYsIG5hbWUpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiB3cml0ZV9scChzZWxmLCBuYW1lKToKKyAgICAgICAgICIiIgorICAgICAgICAg V3JpdGUgdGhlIHByb2JsZW0gdG8gYSBgYC5scGBgIGZpbGUKKyAKK0BAIC05ODAsNyArOTgwLDcg QEAgY2RlZiBjbGFzcyBHZW5lcmljQmFja2VuZDoKKyAgICAgICAgICIiIgorICAgICAgICAgcmFp c2UgTm90SW1wbGVtZW50ZWRFcnJvcigpCisgCistICAgIGNwZGVmIHdyaXRlX21wcyhzZWxmLCBu YW1lLCBpbnQgbW9kZXJuKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgd3JpdGVfbXBzKHNlbGYsIG5h bWUsIGludCBtb2Rlcm4pOgorICAgICAgICAgIiIiCisgICAgICAgICBXcml0ZSB0aGUgcHJvYmxl bSB0byBhIGBgLm1wc2BgIGZpbGUKKyAKK0BAIC0xMDA0LDcgKzEwMDQsNyBAQCBjZGVmIGNsYXNz IEdlbmVyaWNCYWNrZW5kOgorICAgICAgICAgIiIiCisgICAgICAgICByYWlzZSBOb3RJbXBsZW1l bnRlZEVycm9yKCkKKyAKKy0gICAgY3BkZWYgY29weShzZWxmKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgY29weShzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJucyBhIGNvcHkgb2Yg c2VsZi4KKyAKK0BAIC0xMDIyLDcgKzEwMjIsNyBAQCBjZGVmIGNsYXNzIEdlbmVyaWNCYWNrZW5k OgorICAgICAgICAgcmV0dXJuIHNlbGYuX19jb3B5X18oKQorIAorICAgICAjIE92ZXJyaWRlIHRo aXMgbWV0aG9kIGluIGJhY2tlbmRzLgorLSAgICBjcGRlZiBfX2NvcHlfXyhzZWxmKSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgX19jb3B5X18oc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJl dHVybnMgYSBjb3B5IG9mIHNlbGYuCisgCitAQCAtMTA2Miw3ICsxMDYyLDcgQEAgY2RlZiBjbGFz cyBHZW5lcmljQmFja2VuZDoKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX19j b3B5X18oKQorIAorLSAgICBjcGRlZiByb3coc2VsZiwgaW50IGkpIG5vZXhjZXB0OgorKyAgICBj cGRlZiByb3coc2VsZiwgaW50IGkpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYSBy b3cKKyAKK0BAIC0xMDkyLDcgKzEwOTIsNyBAQCBjZGVmIGNsYXNzIEdlbmVyaWNCYWNrZW5kOgor ICAgICAgICAgIiIiCisgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKKyAKKy0g ICAgY3BkZWYgcm93X2JvdW5kcyhzZWxmLCBpbnQgaW5kZXgpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiByb3dfYm91bmRzKHNlbGYsIGludCBpbmRleCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJl dHVybiB0aGUgYm91bmRzIG9mIGEgc3BlY2lmaWMgY29uc3RyYWludC4KKyAKK0BAIC0xMTIxLDcg KzExMjEsNyBAQCBjZGVmIGNsYXNzIEdlbmVyaWNCYWNrZW5kOgorICAgICAgICAgIiIiCisgICAg ICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKKyAKKy0gICAgY3BkZWYgY29sX2JvdW5k cyhzZWxmLCBpbnQgaW5kZXgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjb2xfYm91bmRzKHNlbGYs IGludCBpbmRleCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYm91bmRzIG9m IGEgc3BlY2lmaWMgdmFyaWFibGUuCisgCitAQCAtMTIyMyw3ICsxMjIzLDcgQEAgY2RlZiBjbGFz cyBHZW5lcmljQmFja2VuZDoKKyAgICAgICAgICIiIgorICAgICAgICAgcmFpc2UgTm90SW1wbGVt ZW50ZWRFcnJvcigpCisgCistICAgIGNwZGVmIHJvd19uYW1lKHNlbGYsIGludCBpbmRleCkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIHJvd19uYW1lKHNlbGYsIGludCBpbmRleCk6CisgICAgICAgICAi IiIKKyAgICAgICAgIFJldHVybiB0aGUgYGBpbmRleGBgIHRoIHJvdyBuYW1lCisgCitAQCAtMTI0 Myw3ICsxMjQzLDcgQEAgY2RlZiBjbGFzcyBHZW5lcmljQmFja2VuZDoKKyAgICAgICAgICIiIgor ICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigpCisgCistICAgIGNwZGVmIGNvbF9u YW1lKHNlbGYsIGludCBpbmRleCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGNvbF9uYW1lKHNlbGYs IGludCBpbmRleCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYGBpbmRleGBg LXRoIGNvbHVtbiBuYW1lCisgCitAQCAtMTM0Nyw3ICsxMzQ3LDcgQEAgY2RlZiBjbGFzcyBHZW5l cmljQmFja2VuZDoKKyAgICAgICAgIHAuX3Rlc3RfY29weSgqKm9wdGlvbnMpCisgICAgICAgICBw Ll90ZXN0X2NvcHlfZG9lc19ub3Rfc2hhcmVfZGF0YSgqKm9wdGlvbnMpCisgCistICAgIGNwZGVm IHZhcmlhYmxlX3VwcGVyX2JvdW5kKHNlbGYsIGludCBpbmRleCwgdmFsdWUgPSBGYWxzZSkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIHZhcmlhYmxlX3VwcGVyX2JvdW5kKHNlbGYsIGludCBpbmRleCwg dmFsdWUgPSBGYWxzZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBvciBkZWZpbmUg dGhlIHVwcGVyIGJvdW5kIG9uIGEgdmFyaWFibGUKKyAKK0BAIC0xMzc0LDcgKzEzNzQsNyBAQCBj ZGVmIGNsYXNzIEdlbmVyaWNCYWNrZW5kOgorICAgICAgICAgIiIiCisgICAgICAgICByYWlzZSBO b3RJbXBsZW1lbnRlZEVycm9yKCkKKyAKKy0gICAgY3BkZWYgdmFyaWFibGVfbG93ZXJfYm91bmQo c2VsZiwgaW50IGluZGV4LCB2YWx1ZSA9IEZhbHNlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgdmFy aWFibGVfbG93ZXJfYm91bmQoc2VsZiwgaW50IGluZGV4LCB2YWx1ZSA9IEZhbHNlKToKKyAgICAg ICAgICIiIgorICAgICAgICAgUmV0dXJuIG9yIGRlZmluZSB0aGUgbG93ZXIgYm91bmQgb24gYSB2 YXJpYWJsZQorIAorQEAgLTE0MDEsNyArMTQwMSw3IEBAIGNkZWYgY2xhc3MgR2VuZXJpY0JhY2tl bmQ6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQor IAorLSAgICBjcGRlZiBzb2x2ZXJfcGFyYW1ldGVyKHNlbGYsIG5hbWUsIHZhbHVlID0gTm9uZSkg bm9leGNlcHQ6CisrICAgIGNwZGVmIHNvbHZlcl9wYXJhbWV0ZXIoc2VsZiwgbmFtZSwgdmFsdWUg PSBOb25lKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIG9yIGRlZmluZSBhIHNvbHZl ciBwYXJhbWV0ZXIKKyAKK0BAIC0xNzIzLDcgKzE3MjMsNyBAQCBkZWYgZGVmYXVsdF9taXBfc29s dmVyKHNvbHZlcj1Ob25lKToKKyAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIidzb2x2ZXInIHNo b3VsZCBiZSBzZXQgdG8gJ0dMUEsnLCAnQ29pbicsICdDUExFWCcsICdDVlhPUFQnLCAnQ1ZYUFkn LCAnR3Vyb2JpJywgJ1BQTCcsICdTQ0lQJywgJ0ludGVyYWN0aXZlTFAnLCBhIGNhbGxhYmxlLCBv ciBOb25lLiIpCisgCisgCistY3BkZWYgR2VuZXJpY0JhY2tlbmQgZ2V0X3NvbHZlcihjb25zdHJh aW50X2dlbmVyYXRpb249RmFsc2UsIHNvbHZlcj1Ob25lLCBiYXNlX3Jpbmc9Tm9uZSkgbm9leGNl cHQ6CisrY3BkZWYgR2VuZXJpY0JhY2tlbmQgZ2V0X3NvbHZlcihjb25zdHJhaW50X2dlbmVyYXRp b249RmFsc2UsIHNvbHZlcj1Ob25lLCBiYXNlX3Jpbmc9Tm9uZSk6CisgICAgICIiIgorICAgICBS ZXR1cm4gYSBzb2x2ZXIgYWNjb3JkaW5nIHRvIHRoZSBnaXZlbiBwcmVmZXJlbmNlcworIAorZGlm ZiAtLWdpdCBhL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9nZW5lcmljX3NkcF9iYWNrZW5k LnB4ZCBiL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9nZW5lcmljX3NkcF9iYWNrZW5kLnB4 ZAoraW5kZXggNDQ2YjljZThjMjUuLjAyM2Y5NTY1M2Q2IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uv bnVtZXJpY2FsL2JhY2tlbmRzL2dlbmVyaWNfc2RwX2JhY2tlbmQucHhkCisrKysgYi9zcmMvc2Fn ZS9udW1lcmljYWwvYmFja2VuZHMvZ2VuZXJpY19zZHBfYmFja2VuZC5weGQKK0BAIC0xMCwyOCAr MTAsMjggQEAKKyBjZGVmIGNsYXNzIEdlbmVyaWNTRFBCYWNrZW5kOgorICAgICBjcGRlZiBpbnQg YWRkX3ZhcmlhYmxlKHNlbGYsIG9iaj0qLCBuYW1lPSopIGV4Y2VwdCAtMQorICAgICBjcGRlZiBp bnQgYWRkX3ZhcmlhYmxlcyhzZWxmLCBpbnQsIG5hbWVzPSopIGV4Y2VwdCAtMQorLSAgICBjcGRl ZiBzZXRfc2Vuc2Uoc2VsZiwgaW50IHNlbnNlKSBub2V4Y2VwdAorLSAgICBjcGRlZiBvYmplY3Rp dmVfY29lZmZpY2llbnQoc2VsZiwgaW50IHZhcmlhYmxlLCBjb2VmZj0qKSBub2V4Y2VwdAorLSAg ICBjcGRlZiBzZXRfb2JqZWN0aXZlKHNlbGYsIGxpc3QgY29lZmYsIGQ9Kikgbm9leGNlcHQKKy0g ICAgY3BkZWYgYWRkX2xpbmVhcl9jb25zdHJhaW50KHNlbGYsIGNvbnN0cmFpbnRzLCBuYW1lPSop IG5vZXhjZXB0CistICAgIGNwZGVmIGFkZF9saW5lYXJfY29uc3RyYWludHMoc2VsZiwgaW50IG51 bWJlciwgbmFtZXM9Kikgbm9leGNlcHQKKysgICAgY3BkZWYgc2V0X3NlbnNlKHNlbGYsIGludCBz ZW5zZSkKKysgICAgY3BkZWYgb2JqZWN0aXZlX2NvZWZmaWNpZW50KHNlbGYsIGludCB2YXJpYWJs ZSwgY29lZmY9KikKKysgICAgY3BkZWYgc2V0X29iamVjdGl2ZShzZWxmLCBsaXN0IGNvZWZmLCBk PSopCisrICAgIGNwZGVmIGFkZF9saW5lYXJfY29uc3RyYWludChzZWxmLCBjb25zdHJhaW50cywg bmFtZT0qKQorKyAgICBjcGRlZiBhZGRfbGluZWFyX2NvbnN0cmFpbnRzKHNlbGYsIGludCBudW1i ZXIsIG5hbWVzPSopCisgICAgIGNwZGVmIGludCBzb2x2ZShzZWxmKSBleGNlcHQgLTEKKy0gICAg Y3BkZWYgZ2V0X29iamVjdGl2ZV92YWx1ZShzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBnZXRf dmFyaWFibGVfdmFsdWUoc2VsZiwgaW50IHZhcmlhYmxlKSBub2V4Y2VwdAorLSAgICBjcGRlZiBk dWFsX3ZhcmlhYmxlKHNlbGYsIGludCB2YXJpYWJsZSwgc3BhcnNlPSopIG5vZXhjZXB0CistICAg IGNwZGVmIHNsYWNrKHNlbGYsIGludCB2YXJpYWJsZSwgc3BhcnNlPSopIG5vZXhjZXB0CisrICAg IGNwZGVmIGdldF9vYmplY3RpdmVfdmFsdWUoc2VsZikKKysgICAgY3BkZWYgZ2V0X3ZhcmlhYmxl X3ZhbHVlKHNlbGYsIGludCB2YXJpYWJsZSkKKysgICAgY3BkZWYgZHVhbF92YXJpYWJsZShzZWxm LCBpbnQgdmFyaWFibGUsIHNwYXJzZT0qKQorKyAgICBjcGRlZiBzbGFjayhzZWxmLCBpbnQgdmFy aWFibGUsIHNwYXJzZT0qKQorICAgICBjcGRlZiBiaW50IGlzX21heGltaXphdGlvbihzZWxmKSBu b2V4Y2VwdAorLSAgICBjcGRlZiByb3coc2VsZiwgaW50IGkpIG5vZXhjZXB0CisrICAgIGNwZGVm IHJvdyhzZWxmLCBpbnQgaSkKKyAgICAgY3BkZWYgaW50IG5jb2xzKHNlbGYpIG5vZXhjZXB0Cisg ICAgIGNwZGVmIGludCBucm93cyhzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBwcm9ibGVtX25h bWUoc2VsZiwgbmFtZT0qKSBub2V4Y2VwdAorLSAgICBjcGRlZiByb3dfbmFtZShzZWxmLCBpbnQg aW5kZXgpIG5vZXhjZXB0CistICAgIGNwZGVmIGNvbF9uYW1lKHNlbGYsIGludCBpbmRleCkgbm9l eGNlcHQKKy0gICAgY3BkZWYgc29sdmVyX3BhcmFtZXRlcihzZWxmLCBuYW1lLCB2YWx1ZT0qKSBu b2V4Y2VwdAorLSAgICBjcGRlZiB6ZXJvKHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIGJhc2Vf cmluZyhzZWxmKSBub2V4Y2VwdAorKyAgICBjcGRlZiBwcm9ibGVtX25hbWUoc2VsZiwgbmFtZT0q KQorKyAgICBjcGRlZiByb3dfbmFtZShzZWxmLCBpbnQgaW5kZXgpCisrICAgIGNwZGVmIGNvbF9u YW1lKHNlbGYsIGludCBpbmRleCkKKysgICAgY3BkZWYgc29sdmVyX3BhcmFtZXRlcihzZWxmLCBu YW1lLCB2YWx1ZT0qKQorKyAgICBjcGRlZiB6ZXJvKHNlbGYpCisrICAgIGNwZGVmIGJhc2Vfcmlu ZyhzZWxmKQorIAorICAgICBjZGVmIG9ial9jb25zdGFudF90ZXJtCisgICAgIGNkZWYgZGljdCBt YXRyaWNlc19kaW0KKyAKKy1jcGRlZiBHZW5lcmljU0RQQmFja2VuZCBnZXRfc29sdmVyKHNvbHZl cj0/LCBiYXNlX3Jpbmc9Pykgbm9leGNlcHQKKytjcGRlZiBHZW5lcmljU0RQQmFja2VuZCBnZXRf c29sdmVyKHNvbHZlcj0/LCBiYXNlX3Jpbmc9PykKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9udW1l cmljYWwvYmFja2VuZHMvZ2VuZXJpY19zZHBfYmFja2VuZC5weXggYi9zcmMvc2FnZS9udW1lcmlj YWwvYmFja2VuZHMvZ2VuZXJpY19zZHBfYmFja2VuZC5weXgKK2luZGV4IDQ1YmZkZTVmODliLi43 ZTBlZDRhZjRjZSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9nZW5l cmljX3NkcF9iYWNrZW5kLnB5eAorKysrIGIvc3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL2dl bmVyaWNfc2RwX2JhY2tlbmQucHl4CitAQCAtMjksNyArMjksNyBAQCBBVVRIT1JTOgorIAorIGNk ZWYgY2xhc3MgR2VuZXJpY1NEUEJhY2tlbmQ6CisgCistICAgIGNwZGVmIGJhc2VfcmluZyhzZWxm KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgYmFzZV9yaW5nKHNlbGYpOgorICAgICAgICAgIiIiCisg ICAgICAgICBUaGUgYmFzZSByaW5nCisgCitAQCAtNDIsNyArNDIsNyBAQCBjZGVmIGNsYXNzIEdl bmVyaWNTRFBCYWNrZW5kOgorICAgICAgICAgZnJvbSBzYWdlLnJpbmdzLnJlYWxfZG91YmxlIGlt cG9ydCBSREYKKyAgICAgICAgIHJldHVybiBSREYKKyAKKy0gICAgY3BkZWYgemVybyhzZWxmKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgemVybyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAg WmVybyBvZiB0aGUgYmFzZSByaW5nCisgCitAQCAtMTIyLDcgKzEyMiw3IEBAIGNkZWYgY2xhc3Mg R2VuZXJpY1NEUEJhY2tlbmQ6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJhaXNlIE5vdEltcGxl bWVudGVkRXJyb3IoKQorIAorLSAgICBjcGRlZiBzZXRfc2Vuc2Uoc2VsZiwgaW50IHNlbnNlKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgc2V0X3NlbnNlKHNlbGYsIGludCBzZW5zZSk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIFNldCB0aGUgZGlyZWN0aW9uIChtYXhpbWl6YXRpb24vbWluaW1pemF0 aW9uKS4KKyAKK0BAIC0xNDYsNyArMTQ2LDcgQEAgY2RlZiBjbGFzcyBHZW5lcmljU0RQQmFja2Vu ZDoKKyAgICAgICAgICIiIgorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigpCisg CistICAgIGNwZGVmICBvYmplY3RpdmVfY29lZmZpY2llbnQoc2VsZiwgaW50IHZhcmlhYmxlLCBj b2VmZj1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgIG9iamVjdGl2ZV9jb2VmZmljaWVudChz ZWxmLCBpbnQgdmFyaWFibGUsIGNvZWZmPU5vbmUpOgorICAgICAgICAgIiIiCisgICAgICAgICBT ZXQgb3IgZ2V0IHRoZSBjb2VmZmljaWVudCBvZiBhIHZhcmlhYmxlIGluIHRoZSBvYmplY3RpdmUK KyAgICAgICAgIGZ1bmN0aW9uCitAQCAtMTcyLDcgKzE3Miw3IEBAIGNkZWYgY2xhc3MgR2VuZXJp Y1NEUEJhY2tlbmQ6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVk RXJyb3IoKQorIAorLSAgICBjcGRlZiAgc2V0X29iamVjdGl2ZShzZWxmLCBsaXN0IGNvZWZmLCBk PTAuMCkgbm9leGNlcHQ6CisrICAgIGNwZGVmICBzZXRfb2JqZWN0aXZlKHNlbGYsIGxpc3QgY29l ZmYsIGQ9MC4wKToKKyAgICAgICAgICIiIgorICAgICAgICAgU2V0IHRoZSBvYmplY3RpdmUgZnVu Y3Rpb24uCisgCitAQCAtMTk5LDcgKzE5OSw3IEBAIGNkZWYgY2xhc3MgR2VuZXJpY1NEUEJhY2tl bmQ6CisgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKKyAKKyAKKy0gICAgY3Bk ZWYgYWRkX2xpbmVhcl9jb25zdHJhaW50KHNlbGYsIGNvZWZmaWNpZW50cywgbmFtZT1Ob25lKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgYWRkX2xpbmVhcl9jb25zdHJhaW50KHNlbGYsIGNvZWZmaWNp ZW50cywgbmFtZT1Ob25lKToKKyAgICAgICAgICIiIgorICAgICAgICAgQWRkIGEgbGluZWFyIGNv bnN0cmFpbnQuCisgCitAQCAtMjM0LDcgKzIzNCw3IEBAIGNkZWYgY2xhc3MgR2VuZXJpY1NEUEJh Y2tlbmQ6CisgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKKyAKKyAKKy0gICAg Y3BkZWYgYWRkX2xpbmVhcl9jb25zdHJhaW50cyhzZWxmLCBpbnQgbnVtYmVyLCBuYW1lcz1Ob25l KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgYWRkX2xpbmVhcl9jb25zdHJhaW50cyhzZWxmLCBpbnQg bnVtYmVyLCBuYW1lcz1Ob25lKToKKyAgICAgICAgICIiIgorICAgICAgICAgQWRkIGNvbnN0cmFp bnRzLgorIAorQEAgLTI5MCw3ICsyOTAsNyBAQCBjZGVmIGNsYXNzIEdlbmVyaWNTRFBCYWNrZW5k OgorICAgICAgICAgIiIiCisgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKKyAK Ky0gICAgY3BkZWYgZ2V0X29iamVjdGl2ZV92YWx1ZShzZWxmKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgZ2V0X29iamVjdGl2ZV92YWx1ZShzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0 dXJuIHRoZSB2YWx1ZSBvZiB0aGUgb2JqZWN0aXZlIGZ1bmN0aW9uLgorIAorQEAgLTMxOCw3ICsz MTgsNyBAQCBjZGVmIGNsYXNzIEdlbmVyaWNTRFBCYWNrZW5kOgorICAgICAgICAgIiIiCisgICAg ICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKKyAKKy0gICAgY3BkZWYgZ2V0X3Zhcmlh YmxlX3ZhbHVlKHNlbGYsIGludCB2YXJpYWJsZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGdldF92 YXJpYWJsZV92YWx1ZShzZWxmLCBpbnQgdmFyaWFibGUpOgorICAgICAgICAgIiIiCisgICAgICAg ICBSZXR1cm4gdGhlIHZhbHVlIG9mIGEgdmFyaWFibGUgZ2l2ZW4gYnkgdGhlIHNvbHZlci4KKyAK K0BAIC00MDAsNyArNDAwLDcgQEAgY2RlZiBjbGFzcyBHZW5lcmljU0RQQmFja2VuZDoKKyAgICAg ICAgICIiIgorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigpCisgCistICAgIGNw ZGVmIHByb2JsZW1fbmFtZShzZWxmLCBuYW1lPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBw cm9ibGVtX25hbWUoc2VsZiwgbmFtZT1Ob25lKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0 dXJuIG9yIGRlZmluZSB0aGUgcHJvYmxlbSdzIG5hbWUKKyAKK0BAIC00MjEsNyArNDIxLDcgQEAg Y2RlZiBjbGFzcyBHZW5lcmljU0RQQmFja2VuZDoKKyAKKyAgICAgICAgIHJhaXNlIE5vdEltcGxl bWVudGVkRXJyb3IoKQorIAorLSAgICBjcGRlZiByb3coc2VsZiwgaW50IGkpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiByb3coc2VsZiwgaW50IGkpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1 cm4gYSByb3cKKyAKK0BAIC00NTEsNyArNDUxLDcgQEAgY2RlZiBjbGFzcyBHZW5lcmljU0RQQmFj a2VuZDoKKyAgICAgICAgICIiIgorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigp CisgCistICAgIGNwZGVmIHJvd19uYW1lKHNlbGYsIGludCBpbmRleCkgbm9leGNlcHQ6CisrICAg IGNwZGVmIHJvd19uYW1lKHNlbGYsIGludCBpbmRleCk6CisgICAgICAgICAiIiIKKyAgICAgICAg IFJldHVybiB0aGUgYGBpbmRleGBgIHRoIHJvdyBuYW1lCisgCitAQCAtNDcxLDcgKzQ3MSw3IEBA IGNkZWYgY2xhc3MgR2VuZXJpY1NEUEJhY2tlbmQ6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJh aXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQorIAorLSAgICBjcGRlZiBjb2xfbmFtZShzZWxmLCBp bnQgaW5kZXgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjb2xfbmFtZShzZWxmLCBpbnQgaW5kZXgp OgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGBgaW5kZXhgYCB0aCBjb2wgbmFt ZQorIAorQEAgLTQ5NCw3ICs0OTQsNyBAQCBjZGVmIGNsYXNzIEdlbmVyaWNTRFBCYWNrZW5kOgor ICAgICAgICAgIiIiCisgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKKyAKKy0g ICAgY3BkZWYgZHVhbF92YXJpYWJsZShzZWxmLCBpbnQgaSwgc3BhcnNlPUZhbHNlKSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgZHVhbF92YXJpYWJsZShzZWxmLCBpbnQgaSwgc3BhcnNlPUZhbHNlKToK KyAgICAgICAgICIiIgorICAgICAgICAgVGhlIGBpYC10aCBkdWFsIHZhcmlhYmxlCisgCitAQCAt NTQxLDcgKzU0MSw3IEBAIGNkZWYgY2xhc3MgR2VuZXJpY1NEUEJhY2tlbmQ6CisgICAgICAgICAi IiIKKyAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoKQorIAorLSAgICBjcGRlZiBz bGFjayhzZWxmLCBpbnQgaSwgc3BhcnNlPUZhbHNlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgc2xh Y2soc2VsZiwgaW50IGksIHNwYXJzZT1GYWxzZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFNs YWNrIG9mIHRoZSBgaWAtdGggY29uc3RyYWludAorIAorQEAgLTU5MCw3ICs1OTAsNyBAQCBjZGVm IGNsYXNzIEdlbmVyaWNTRFBCYWNrZW5kOgorICAgICAgICAgIiIiCisgICAgICAgICByYWlzZSBO b3RJbXBsZW1lbnRlZEVycm9yKCkKKyAKKy0gICAgY3BkZWYgc29sdmVyX3BhcmFtZXRlcihzZWxm LCBuYW1lLCB2YWx1ZSA9IE5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBzb2x2ZXJfcGFyYW1l dGVyKHNlbGYsIG5hbWUsIHZhbHVlID0gTm9uZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJl dHVybiBvciBkZWZpbmUgYSBzb2x2ZXIgcGFyYW1ldGVyCisgCitAQCAtNzAyLDcgKzcwMiw3IEBA IGRlZiBkZWZhdWx0X3NkcF9zb2x2ZXIoc29sdmVyPU5vbmUpOgorICAgICAgICAgcmFpc2UgVmFs dWVFcnJvcigiJ3NvbHZlcicgc2hvdWxkIGJlIHNldCB0byAnQ1ZYT1BUJywgJ01hdHJpeCcsIGEg Y2xhc3MsIG9yIE5vbmUuIikKKyAKKyAKKy1jcGRlZiBHZW5lcmljU0RQQmFja2VuZCBnZXRfc29s dmVyKHNvbHZlcj1Ob25lLCBiYXNlX3Jpbmc9Tm9uZSkgbm9leGNlcHQ6CisrY3BkZWYgR2VuZXJp Y1NEUEJhY2tlbmQgZ2V0X3NvbHZlcihzb2x2ZXI9Tm9uZSwgYmFzZV9yaW5nPU5vbmUpOgorICAg ICAiIiIKKyAgICAgUmV0dXJuIGEgc29sdmVyIGFjY29yZGluZyB0byB0aGUgZ2l2ZW4gcHJlZmVy ZW5jZXMuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL2dscGtf YmFja2VuZC5weGQgYi9zcmMvc2FnZS9udW1lcmljYWwvYmFja2VuZHMvZ2xwa19iYWNrZW5kLnB4 ZAoraW5kZXggNGZmMWQ0YThkNzYuLmRmMmMwMjdlNDA4IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uv bnVtZXJpY2FsL2JhY2tlbmRzL2dscGtfYmFja2VuZC5weGQKKysrKyBiL3NyYy9zYWdlL251bWVy aWNhbC9iYWNrZW5kcy9nbHBrX2JhY2tlbmQucHhkCitAQCAtMjYsMTUgKzI2LDE1IEBAIGNkZWYg Y2xhc3MgR0xQS0JhY2tlbmQoR2VuZXJpY0JhY2tlbmQpOgorICAgICBjZGVmIGdscF9zbWNwICog c21jcAorICAgICBjZGVmIGludCBzaW1wbGV4X29yX2ludG9wdAorICAgICBjZGVmIHNlYXJjaF90 cmVlX2RhdGFfdCBzZWFyY2hfdHJlZV9kYXRhCistICAgIGNwZGVmIF9fY29weV9fKHNlbGYpIG5v ZXhjZXB0CisrICAgIGNwZGVmIF9fY29weV9fKHNlbGYpCisgICAgIGNwZGVmIGludCBwcmludF9y YW5nZXMoc2VsZiwgZmlsZW5hbWUgPSAqKSBleGNlcHQgLTEKKyAgICAgY3BkZWYgZG91YmxlIGdl dF9yb3dfZHVhbChzZWxmLCBpbnQgdmFyaWFibGUpIG5vZXhjZXB0CisgICAgIGNwZGVmIGRvdWJs ZSBnZXRfY29sX2R1YWwoc2VsZiwgaW50IHZhcmlhYmxlKSBleGNlcHQ/IC0xCisgICAgIGNwZGVm IGludCBnZXRfcm93X3N0YXQoc2VsZiwgaW50IHZhcmlhYmxlKSBleGNlcHQ/IC0xCisgICAgIGNw ZGVmIGludCBnZXRfY29sX3N0YXQoc2VsZiwgaW50IHZhcmlhYmxlKSBleGNlcHQ/IC0xCistICAg IGNwZGVmIGV2YWxfdGFiX3JvdyhzZWxmLCBpbnQgaykgbm9leGNlcHQKKy0gICAgY3BkZWYgZXZh bF90YWJfY29sKHNlbGYsIGludCBrKSBub2V4Y2VwdAorLSAgICBjcGRlZiBnZXRfcm93X3ByaW0o c2VsZiwgaW50IGkpIG5vZXhjZXB0CistICAgIGNwZGVmIHNldF9yb3dfc3RhdChzZWxmLCBpbnQg aSwgaW50IHN0YXQpIG5vZXhjZXB0CistICAgIGNwZGVmIHNldF9jb2xfc3RhdChzZWxmLCBpbnQg aiwgaW50IHN0YXQpIG5vZXhjZXB0CisrICAgIGNwZGVmIGV2YWxfdGFiX3JvdyhzZWxmLCBpbnQg aykKKysgICAgY3BkZWYgZXZhbF90YWJfY29sKHNlbGYsIGludCBrKQorKyAgICBjcGRlZiBnZXRf cm93X3ByaW0oc2VsZiwgaW50IGkpCisrICAgIGNwZGVmIHNldF9yb3dfc3RhdChzZWxmLCBpbnQg aSwgaW50IHN0YXQpCisrICAgIGNwZGVmIHNldF9jb2xfc3RhdChzZWxmLCBpbnQgaiwgaW50IHN0 YXQpCisgICAgIGNwZGVmIGludCB3YXJtX3VwKHNlbGYpIG5vZXhjZXB0CitkaWZmIC0tZ2l0IGEv c3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL2dscGtfYmFja2VuZC5weXggYi9zcmMvc2FnZS9u dW1lcmljYWwvYmFja2VuZHMvZ2xwa19iYWNrZW5kLnB5eAoraW5kZXggYjI0ZWZiNTIxZWEuLmI2 OTY2ODE1OTY5IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL2dscGtf YmFja2VuZC5weXgKKysrKyBiL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9nbHBrX2JhY2tl bmQucHl4CitAQCAtMjI4LDcgKzIyOCw3IEBAIGNkZWYgY2xhc3MgR0xQS0JhY2tlbmQoR2VuZXJp Y0JhY2tlbmQpOgorIAorICAgICAgICAgcmV0dXJuIG5fdmFyIC0gMQorIAorLSAgICBjcGRlZiBz ZXRfdmFyaWFibGVfdHlwZShzZWxmLCBpbnQgdmFyaWFibGUsIGludCB2dHlwZSkgbm9leGNlcHQ6 CisrICAgIGNwZGVmIHNldF92YXJpYWJsZV90eXBlKHNlbGYsIGludCB2YXJpYWJsZSwgaW50IHZ0 eXBlKToKKyAgICAgICAgICIiIgorICAgICAgICAgU2V0IHRoZSB0eXBlIG9mIGEgdmFyaWFibGUK KyAKK0BAIC0yNzgsNyArMjc4LDcgQEAgY2RlZiBjbGFzcyBHTFBLQmFja2VuZChHZW5lcmljQmFj a2VuZCk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIGdscF9zZXRfY29sX2tpbmQoc2Vs Zi5scCwgdmFyaWFibGUrMSwgR0xQX0NWKQorIAorLSAgICBjcGRlZiBzZXRfc2Vuc2Uoc2VsZiwg aW50IHNlbnNlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgc2V0X3NlbnNlKHNlbGYsIGludCBzZW5z ZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFNldCB0aGUgZGlyZWN0aW9uIChtYXhpbWl6YXRp b24vbWluaW1pemF0aW9uKS4KKyAKK0BAIC0zMDQsNyArMzA0LDcgQEAgY2RlZiBjbGFzcyBHTFBL QmFja2VuZChHZW5lcmljQmFja2VuZCk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIGds cF9zZXRfb2JqX2RpcihzZWxmLmxwLCBHTFBfTUlOKQorIAorLSAgICBjcGRlZiBvYmplY3RpdmVf Y29lZmZpY2llbnQoc2VsZiwgaW50IHZhcmlhYmxlLCBjb2VmZj1Ob25lKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgb2JqZWN0aXZlX2NvZWZmaWNpZW50KHNlbGYsIGludCB2YXJpYWJsZSwgY29lZmY9 Tm9uZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFNldCBvciBnZXQgdGhlIGNvZWZmaWNpZW50 IG9mIGEgdmFyaWFibGUgaW4gdGhlIG9iamVjdGl2ZSBmdW5jdGlvbgorIAorQEAgLTM0Nyw3ICsz NDcsNyBAQCBjZGVmIGNsYXNzIEdMUEtCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAgICAgICAg IGVsc2U6CisgICAgICAgICAgICAgZ2xwX3NldF9vYmpfY29lZihzZWxmLmxwLCB2YXJpYWJsZSAr IDEsIGNvZWZmKQorIAorLSAgICBjcGRlZiBwcm9ibGVtX25hbWUoc2VsZiwgbmFtZT1Ob25lKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgcHJvYmxlbV9uYW1lKHNlbGYsIG5hbWU9Tm9uZSk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIFJldHVybiBvciBkZWZpbmUgdGhlIHByb2JsZW0ncyBuYW1lCisg CitAQCAtMzc5LDcgKzM3OSw3IEBAIGNkZWYgY2xhc3MgR0xQS0JhY2tlbmQoR2VuZXJpY0JhY2tl bmQpOgorICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJQcm9ibGVtIG5hbWUgZm9y IEdMUEsgbXVzdCBub3QgYmUgbG9uZ2VyIHRoYW4gMjU1IGNoYXJhY3RlcnMuIikKKyAgICAgICAg ICAgICBnbHBfc2V0X3Byb2JfbmFtZShzZWxmLmxwLCBuYW1lKQorIAorLSAgICBjcGRlZiBzZXRf b2JqZWN0aXZlKHNlbGYsIGxpc3QgY29lZmYsIGQgPSAwLjApIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBzZXRfb2JqZWN0aXZlKHNlbGYsIGxpc3QgY29lZmYsIGQgPSAwLjApOgorICAgICAgICAgIiIi CisgICAgICAgICBTZXQgdGhlIG9iamVjdGl2ZSBmdW5jdGlvbi4KKyAKK0BAIC00MDksNyArNDA5 LDcgQEAgY2RlZiBjbGFzcyBHTFBLQmFja2VuZChHZW5lcmljQmFja2VuZCk6CisgCisgICAgICAg ICBzZWxmLm9ial9jb25zdGFudF90ZXJtID0gZAorIAorLSAgICBjcGRlZiBzZXRfdmVyYm9zaXR5 KHNlbGYsIGludCBsZXZlbCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHNldF92ZXJib3NpdHkoc2Vs ZiwgaW50IGxldmVsKToKKyAgICAgICAgICIiIgorICAgICAgICAgU2V0IHRoZSB2ZXJib3NpdHkg bGV2ZWwKKyAKK0BAIC00NzEsNyArNDcxLDcgQEAgY2RlZiBjbGFzcyBHTFBLQmFja2VuZChHZW5l cmljQmFja2VuZCk6CisgICAgICAgICAgICAgc2VsZi5pb2NwLm1zZ19sZXYgPSBHTFBfTVNHX0FM TAorICAgICAgICAgICAgIHNlbGYuc21jcC5tc2dfbGV2ID0gR0xQX01TR19BTEwKKyAKKy0gICAg Y3BkZWYgcmVtb3ZlX2NvbnN0cmFpbnQoc2VsZiwgaW50IGkpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiByZW1vdmVfY29uc3RyYWludChzZWxmLCBpbnQgaSk6CisgICAgICAgICByIiIiCisgICAgICAg ICBSZW1vdmUgYSBjb25zdHJhaW50IGZyb20gc2VsZi4KKyAKK0BAIC01MTAsNyArNTEwLDcgQEAg Y2RlZiBjbGFzcyBHTFBLQmFja2VuZChHZW5lcmljQmFja2VuZCk6CisgICAgICAgICBnbHBfZGVs X3Jvd3Moc2VsZi5scCwgMSwgcm93cykKKyAgICAgICAgIGdscF9zdGRfYmFzaXMoc2VsZi5scCkK KyAKKy0gICAgY3BkZWYgcmVtb3ZlX2NvbnN0cmFpbnRzKHNlbGYsIGNvbnN0cmFpbnRzKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgcmVtb3ZlX2NvbnN0cmFpbnRzKHNlbGYsIGNvbnN0cmFpbnRzKToK KyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJlbW92ZSBzZXZlcmFsIGNvbnN0cmFpbnRzLgorIAor QEAgLTU2Miw3ICs1NjIsNyBAQCBjZGVmIGNsYXNzIEdMUEtCYWNrZW5kKEdlbmVyaWNCYWNrZW5k KToKKyAgICAgICAgIHNpZ19mcmVlKHJvd3MpCisgICAgICAgICBnbHBfc3RkX2Jhc2lzKHNlbGYu bHApCisgCistICAgIGNwZGVmIGFkZF9saW5lYXJfY29uc3RyYWludChzZWxmLCBjb2VmZmljaWVu dHMsIGxvd2VyX2JvdW5kLCB1cHBlcl9ib3VuZCwgbmFtZT1Ob25lKSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgYWRkX2xpbmVhcl9jb25zdHJhaW50KHNlbGYsIGNvZWZmaWNpZW50cywgbG93ZXJfYm91 bmQsIHVwcGVyX2JvdW5kLCBuYW1lPU5vbmUpOgorICAgICAgICAgIiIiCisgICAgICAgICBBZGQg YSBsaW5lYXIgY29uc3RyYWludC4KKyAKK0BAIC02NDksNyArNjQ5LDcgQEAgY2RlZiBjbGFzcyBH TFBLQmFja2VuZChHZW5lcmljQmFja2VuZCk6CisgICAgICAgICBpZiBuYW1lIGlzIG5vdCBOb25l OgorICAgICAgICAgICAgIGdscF9zZXRfcm93X25hbWUoc2VsZi5scCwgbiwgc3RyX3RvX2J5dGVz KG5hbWUpKQorIAorLSAgICBjcGRlZiBhZGRfbGluZWFyX2NvbnN0cmFpbnRzKHNlbGYsIGludCBu dW1iZXIsIGxvd2VyX2JvdW5kLCB1cHBlcl9ib3VuZCwgbmFtZXM9Tm9uZSkgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIGFkZF9saW5lYXJfY29uc3RyYWludHMoc2VsZiwgaW50IG51bWJlciwgbG93ZXJf Ym91bmQsIHVwcGVyX2JvdW5kLCBuYW1lcz1Ob25lKToKKyAgICAgICAgICIiIgorICAgICAgICAg QWRkIGBgJ251bWJlcmBgIGxpbmVhciBjb25zdHJhaW50cy4KKyAKK0BAIC02OTcsNyArNjk3LDcg QEAgY2RlZiBjbGFzcyBHTFBLQmFja2VuZChHZW5lcmljQmFja2VuZCk6CisgICAgICAgICAgICAg ICAgIGdscF9zZXRfcm93X25hbWUoc2VsZi5scCwgbi1pLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cl90b19ieXRlcyhuYW1lc1tudW1iZXItaS0xXSkpCisgCistICAgIGNw ZGVmIHJvdyhzZWxmLCBpbnQgaW5kZXgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiByb3coc2VsZiwg aW50IGluZGV4KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBhIHJvdworIAorQEAg LTc1NCw3ICs3NTQsNyBAQCBjZGVmIGNsYXNzIEdMUEtCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToK KyAKKyAgICAgICAgIHJldHVybiAoaW5kaWNlcywgdmFsdWVzKQorIAorLSAgICBjcGRlZiByb3df Ym91bmRzKHNlbGYsIGludCBpbmRleCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHJvd19ib3VuZHMo c2VsZiwgaW50IGluZGV4KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBib3Vu ZHMgb2YgYSBzcGVjaWZpYyBjb25zdHJhaW50LgorIAorQEAgLTgwNiw3ICs4MDYsNyBAQCBjZGVm IGNsYXNzIEdMUEtCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAgICAgICAgICAgICAodWIgaWYg dWIgIT0gK0RCTF9NQVggZWxzZSBOb25lKQorICAgICAgICAgICAgICkKKyAKKy0gICAgY3BkZWYg Y29sX2JvdW5kcyhzZWxmLCBpbnQgaW5kZXgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjb2xfYm91 bmRzKHNlbGYsIGludCBpbmRleCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUg Ym91bmRzIG9mIGEgc3BlY2lmaWMgdmFyaWFibGUuCisgCitAQCAtODU5LDcgKzg1OSw3IEBAIGNk ZWYgY2xhc3MgR0xQS0JhY2tlbmQoR2VuZXJpY0JhY2tlbmQpOgorICAgICAgICAgICAgICh1YiBp ZiB1YiAhPSArREJMX01BWCBlbHNlIE5vbmUpCisgICAgICAgICAgICAgKQorIAorLSAgICBjcGRl ZiBhZGRfY29sKHNlbGYsIGluZGljZXMsIGNvZWZmcykgbm9leGNlcHQ6CisrICAgIGNwZGVmIGFk ZF9jb2woc2VsZiwgaW5kaWNlcywgY29lZmZzKToKKyAgICAgICAgICIiIgorICAgICAgICAgQWRk IGEgY29sdW1uLgorIAorQEAgLTExNTEsNyArMTE1MSw3IEBAIGNkZWYgY2xhc3MgR0xQS0JhY2tl bmQoR2VuZXJpY0JhY2tlbmQpOgorICAgICAgICAgICAgIHJhaXNlIE1JUFNvbHZlckV4Y2VwdGlv bigiR0xQSzogIitzb2x1dGlvbl9zdGF0dXNfbXNnLmdldChzb2x1dGlvbl9zdGF0dXMsICJ1bmtu b3duIGVycm9yIGR1cmluZyBjYWxsIHRvIEdMUEsgOiAiK3N0cihzb2x1dGlvbl9zdGF0dXMpKSkK KyAgICAgICAgIHJldHVybiAwCisgCistICAgIGNwZGVmIGdldF9vYmplY3RpdmVfdmFsdWUoc2Vs Zikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGdldF9vYmplY3RpdmVfdmFsdWUoc2VsZik6CisgICAg ICAgICAiIiIKKyAgICAgICAgIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBvYmplY3RpdmUgZnVu Y3Rpb24uCisgCitAQCAtMTE4Miw3ICsxMTgyLDcgQEAgY2RlZiBjbGFzcyBHTFBLQmFja2VuZChH ZW5lcmljQmFja2VuZCk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJldHVybiBnbHBf Z2V0X29ial92YWwoc2VsZi5scCkKKyAKKy0gICAgY3BkZWYgYmVzdF9rbm93bl9vYmplY3RpdmVf Ym91bmQoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGJlc3Rfa25vd25fb2JqZWN0aXZlX2Jv dW5kKHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSB2YWx1ZSBvZiB0 aGUgY3VycmVudGx5IGJlc3Qga25vd24gYm91bmQuCisgCitAQCAtMTIxNiw3ICsxMjE2LDcgQEAg Y2RlZiBjbGFzcyBHTFBLQmFja2VuZChHZW5lcmljQmFja2VuZCk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIHJldHVybiBzZWxmLnNlYXJjaF90cmVlX2RhdGEuYmVzdF9ib3VuZAorIAorLSAgICBj cGRlZiBnZXRfcmVsYXRpdmVfb2JqZWN0aXZlX2dhcChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgZ2V0X3JlbGF0aXZlX29iamVjdGl2ZV9nYXAoc2VsZik6CisgICAgICAgICByIiIiCisgICAg ICAgICBSZXR1cm4gdGhlIHJlbGF0aXZlIG9iamVjdGl2ZSBnYXAgb2YgdGhlIGJlc3Qga25vd24g c29sdXRpb24uCisgCitAQCAtMTI1OSw3ICsxMjU5LDcgQEAgY2RlZiBjbGFzcyBHTFBLQmFja2Vu ZChHZW5lcmljQmFja2VuZCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLnNl YXJjaF90cmVlX2RhdGEubWlwX2dhcAorIAorLSAgICBjcGRlZiBnZXRfdmFyaWFibGVfdmFsdWUo c2VsZiwgaW50IHZhcmlhYmxlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZ2V0X3ZhcmlhYmxlX3Zh bHVlKHNlbGYsIGludCB2YXJpYWJsZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybnMg dGhlIHZhbHVlIG9mIGEgdmFyaWFibGUgZ2l2ZW4gYnkgdGhlIHNvbHZlci4KKyAKK0BAIC0xMzA1 LDcgKzEzMDUsNyBAQCBjZGVmIGNsYXNzIEdMUEtCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAg ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmV0dXJuIGdscF9nZXRfY29sX3ByaW0oc2VsZi5s cCwgdmFyaWFibGUgKyAxKQorIAorLSAgICBjcGRlZiBnZXRfcm93X3ByaW0oc2VsZiwgaW50IGkp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBnZXRfcm93X3ByaW0oc2VsZiwgaW50IGkpOgorICAgICAg ICAgciIiIgorICAgICAgICAgUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlIGF1eGlsaWFyeSB2YXJp YWJsZSBhc3NvY2lhdGVkIHdpdGggaS10aCByb3cuCisgCitAQCAtMTM4Nyw3ICsxMzg3LDcgQEAg Y2RlZiBjbGFzcyBHTFBLQmFja2VuZChHZW5lcmljQmFja2VuZCk6CisgCisgICAgICAgICByZXR1 cm4gZ2xwX2dldF9udW1fcm93cyhzZWxmLmxwKQorIAorLSAgICBjcGRlZiBjb2xfbmFtZShzZWxm LCBpbnQgaW5kZXgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjb2xfbmFtZShzZWxmLCBpbnQgaW5k ZXgpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGBgaW5kZXhgYCB0aCBjb2wg bmFtZQorIAorQEAgLTE0MjksNyArMTQyOSw3IEBAIGNkZWYgY2xhc3MgR0xQS0JhY2tlbmQoR2Vu ZXJpY0JhY2tlbmQpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXR1cm4gIiIKKyAK Ky0gICAgY3BkZWYgcm93X25hbWUoc2VsZiwgaW50IGluZGV4KSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgcm93X25hbWUoc2VsZiwgaW50IGluZGV4KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0 dXJuIHRoZSBgYGluZGV4YGAgdGggcm93IG5hbWUKKyAKK0BAIC0xNjAwLDcgKzE2MDAsNyBAQCBj ZGVmIGNsYXNzIEdMUEtCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAKKyAgICAgICAgIHJldHVy biBnbHBfZ2V0X29ial9kaXIoc2VsZi5scCkgPT0gR0xQX01BWAorIAorLSAgICBjcGRlZiB2YXJp YWJsZV91cHBlcl9ib3VuZChzZWxmLCBpbnQgaW5kZXgsIHZhbHVlID0gRmFsc2UpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiB2YXJpYWJsZV91cHBlcl9ib3VuZChzZWxmLCBpbnQgaW5kZXgsIHZhbHVl ID0gRmFsc2UpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gb3IgZGVmaW5lIHRoZSB1 cHBlciBib3VuZCBvbiBhIHZhcmlhYmxlCisgCitAQCAtMTY5OSw3ICsxNjk5LDcgQEAgY2RlZiBj bGFzcyBHTFBLQmFja2VuZChHZW5lcmljQmFja2VuZCk6CisgICAgICAgICAgICAgICAgICAgICBn bHBfc2V0X2NvbF9ibmRzKHNlbGYubHAsIGluZGV4ICsgMSwgR0xQX0RCLCBtaW4sIGR2YWx1ZSkK KyAgICAgICAgICAgICAgICAgc2lnX29mZigpCisgCistICAgIGNwZGVmIHZhcmlhYmxlX2xvd2Vy X2JvdW5kKHNlbGYsIGludCBpbmRleCwgdmFsdWUgPSBGYWxzZSkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIHZhcmlhYmxlX2xvd2VyX2JvdW5kKHNlbGYsIGludCBpbmRleCwgdmFsdWUgPSBGYWxzZSk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBvciBkZWZpbmUgdGhlIGxvd2VyIGJvdW5k IG9uIGEgdmFyaWFibGUKKyAKK0BAIC0xNzk5LDcgKzE3OTksNyBAQCBjZGVmIGNsYXNzIEdMUEtC YWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAgICAgICAgICAgICAgICAgICAgIGdscF9zZXRfY29s X2JuZHMoc2VsZi5scCwgaW5kZXggKyAxLCBHTFBfREIsIHZhbHVlLCBtYXgpCisgICAgICAgICAg ICAgICAgIHNpZ19vZmYoKQorIAorLSAgICBjcGRlZiB3cml0ZV9scChzZWxmLCBmaWxlbmFtZSkg bm9leGNlcHQ6CisrICAgIGNwZGVmIHdyaXRlX2xwKHNlbGYsIGZpbGVuYW1lKToKKyAgICAgICAg ICIiIgorICAgICAgICAgV3JpdGUgdGhlIHByb2JsZW0gdG8gYSAubHAgZmlsZQorIAorQEAgLTE4 MjYsNyArMTgyNiw3IEBAIGNkZWYgY2xhc3MgR0xQS0JhY2tlbmQoR2VuZXJpY0JhY2tlbmQpOgor ICAgICAgICAgZmlsZW5hbWUgPSBzdHJfdG9fYnl0ZXMoZmlsZW5hbWUsIEZTX0VOQ09ESU5HLCAn c3Vycm9nYXRlZXNjYXBlJykKKyAgICAgICAgIGdscF93cml0ZV9scChzZWxmLmxwLCBOVUxMLCBm aWxlbmFtZSkKKyAKKy0gICAgY3BkZWYgd3JpdGVfbXBzKHNlbGYsIGZpbGVuYW1lLCBpbnQgbW9k ZXJuKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgd3JpdGVfbXBzKHNlbGYsIGZpbGVuYW1lLCBpbnQg bW9kZXJuKToKKyAgICAgICAgICIiIgorICAgICAgICAgV3JpdGUgdGhlIHByb2JsZW0gdG8gYSAu bXBzIGZpbGUKKyAKK0BAIC0xODUzLDcgKzE4NTMsNyBAQCBjZGVmIGNsYXNzIEdMUEtCYWNrZW5k KEdlbmVyaWNCYWNrZW5kKToKKyAgICAgICAgIGZpbGVuYW1lID0gc3RyX3RvX2J5dGVzKGZpbGVu YW1lLCBGU19FTkNPRElORywgJ3N1cnJvZ2F0ZWVzY2FwZScpCisgICAgICAgICBnbHBfd3JpdGVf bXBzKHNlbGYubHAsIG1vZGVybiwgTlVMTCwgZmlsZW5hbWUpCisgCistICAgIGNwZGVmIF9fY29w eV9fKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfX2NvcHlfXyhzZWxmKToKKyAgICAgICAg ICIiIgorICAgICAgICAgUmV0dXJucyBhIGNvcHkgb2Ygc2VsZi4KKyAKK0BAIC0xODc0LDcgKzE4 NzQsNyBAQCBjZGVmIGNsYXNzIEdMUEtCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAgICAgICAg IHJldHVybiBwCisgCisgCistICAgIGNwZGVmIHNvbHZlcl9wYXJhbWV0ZXIoc2VsZiwgbmFtZSwg dmFsdWUgPSBOb25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgc29sdmVyX3BhcmFtZXRlcihzZWxm LCBuYW1lLCB2YWx1ZSA9IE5vbmUpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gb3Ig ZGVmaW5lIGEgc29sdmVyIHBhcmFtZXRlcgorIAorQEAgLTI3MjUsNyArMjcyNSw3IEBAIGNkZWYg Y2xhc3MgR0xQS0JhY2tlbmQoR2VuZXJpY0JhY2tlbmQpOgorIAorICAgICAgICAgcmV0dXJuIGds cF9nZXRfY29sX3N0YXQoc2VsZi5scCwgaisxKQorIAorLSAgICBjcGRlZiBzZXRfcm93X3N0YXQo c2VsZiwgaW50IGksIGludCBzdGF0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgc2V0X3Jvd19zdGF0 KHNlbGYsIGludCBpLCBpbnQgc3RhdCk6CisgICAgICAgICByIiIiCisgICAgICAgICBTZXQgdGhl IHN0YXR1cyBvZiBhIGNvbnN0cmFpbnQuCisgCitAQCAtMjc2MCw3ICsyNzYwLDcgQEAgY2RlZiBj bGFzcyBHTFBLQmFja2VuZChHZW5lcmljQmFja2VuZCk6CisgCisgICAgICAgICBnbHBfc2V0X3Jv d19zdGF0KHNlbGYubHAsIGkrMSwgc3RhdCkKKyAKKy0gICAgY3BkZWYgc2V0X2NvbF9zdGF0KHNl bGYsIGludCBqLCBpbnQgc3RhdCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHNldF9jb2xfc3RhdChz ZWxmLCBpbnQgaiwgaW50IHN0YXQpOgorICAgICAgICAgciIiIgorICAgICAgICAgU2V0IHRoZSBz dGF0dXMgb2YgYSB2YXJpYWJsZS4KKyAKK0BAIC0yODMxLDcgKzI4MzEsNyBAQCBjZGVmIGNsYXNz IEdMUEtCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0 dXJuIGdscF93YXJtX3VwKHNlbGYubHApCisgCistICAgIGNwZGVmIGV2YWxfdGFiX3JvdyhzZWxm LCBpbnQgaykgbm9leGNlcHQ6CisrICAgIGNwZGVmIGV2YWxfdGFiX3JvdyhzZWxmLCBpbnQgayk6 CisgICAgICAgICByIiIiCisgICAgICAgICBDb21wdXRlcyBhIHJvdyBvZiB0aGUgY3VycmVudCBz aW1wbGV4IHRhYmxlYXUuCisgCitAQCAtMjkzMCw3ICsyOTMwLDcgQEAgY2RlZiBjbGFzcyBHTFBL QmFja2VuZChHZW5lcmljQmFja2VuZCk6CisgICAgICAgICB2YWx1ZXMgID0gW2NfdmFsdWVzW2or MV0gICAgICBmb3IgaiBpbiByYW5nZShpKV0KKyAgICAgICAgIHJldHVybiAoaW5kaWNlcywgdmFs dWVzKQorIAorLSAgICBjcGRlZiBldmFsX3RhYl9jb2woc2VsZiwgaW50IGspIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBldmFsX3RhYl9jb2woc2VsZiwgaW50IGspOgorICAgICAgICAgciIiIgorICAg ICAgICAgQ29tcHV0ZXMgYSBjb2x1bW4gb2YgdGhlIGN1cnJlbnQgc2ltcGxleCB0YWJsZWF1Lgor IAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9nbHBrX2V4YWN0X2Jh Y2tlbmQucHhkIGIvc3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL2dscGtfZXhhY3RfYmFja2Vu ZC5weGQKK2luZGV4IDg5MzI2YmYzNjA0Li44MjA3MzQ3Y2U1MSAxMDA2NDQKKy0tLSBhL3NyYy9z YWdlL251bWVyaWNhbC9iYWNrZW5kcy9nbHBrX2V4YWN0X2JhY2tlbmQucHhkCisrKysgYi9zcmMv c2FnZS9udW1lcmljYWwvYmFja2VuZHMvZ2xwa19leGFjdF9iYWNrZW5kLnB4ZAorQEAgLTEzLDQg KzEzLDQgQEAgZnJvbSBzYWdlLm51bWVyaWNhbC5iYWNrZW5kcy5nbHBrX2JhY2tlbmQgY2ltcG9y dCBHTFBLQmFja2VuZAorIGNkZWYgY2xhc3MgR0xQS0V4YWN0QmFja2VuZChHTFBLQmFja2VuZCk6 CisgICAgIGNwZGVmIGludCBhZGRfdmFyaWFibGUoc2VsZiwgbG93ZXJfYm91bmQ9KiwgdXBwZXJf Ym91bmQ9KiwgYmluYXJ5PSosIGNvbnRpbnVvdXM9KiwgaW50ZWdlcj0qLCBvYmo9KiwgbmFtZT0q KSBleGNlcHQgLTEKKyAgICAgY3BkZWYgaW50IGFkZF92YXJpYWJsZXMoc2VsZiwgaW50LCBsb3dl cl9ib3VuZD0qLCB1cHBlcl9ib3VuZD0qLCBiaW5hcnk9KiwgY29udGludW91cz0qLCBpbnRlZ2Vy PSosIG9iaj0qLCBuYW1lcz0qKSBleGNlcHQgLTEKKy0gICAgY3BkZWYgc2V0X3ZhcmlhYmxlX3R5 cGUoc2VsZiwgaW50IHZhcmlhYmxlLCBpbnQgdnR5cGUpIG5vZXhjZXB0CisrICAgIGNwZGVmIHNl dF92YXJpYWJsZV90eXBlKHNlbGYsIGludCB2YXJpYWJsZSwgaW50IHZ0eXBlKQorZGlmZiAtLWdp dCBhL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9nbHBrX2V4YWN0X2JhY2tlbmQucHl4IGIv c3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL2dscGtfZXhhY3RfYmFja2VuZC5weXgKK2luZGV4 IDM1MDg5NDJmNWU0Li4zMDMxNzQ4ZWI0MiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL251bWVyaWNh bC9iYWNrZW5kcy9nbHBrX2V4YWN0X2JhY2tlbmQucHl4CisrKysgYi9zcmMvc2FnZS9udW1lcmlj YWwvYmFja2VuZHMvZ2xwa19leGFjdF9iYWNrZW5kLnB5eAorQEAgLTE1Niw3ICsxNTYsNyBAQCBj ZGVmIGNsYXNzIEdMUEtFeGFjdEJhY2tlbmQoR0xQS0JhY2tlbmQpOgorICAgICAgICAgcmV0dXJu IEdMUEtCYWNrZW5kLmFkZF92YXJpYWJsZXMoc2VsZiwgbnVtYmVyLCBsb3dlcl9ib3VuZCwgdXBw ZXJfYm91bmQsIGJpbmFyeSwgY29udGludW91cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW50ZWdlciwgb2JqLCBuYW1lcykKKyAKKy0gICAgY3BkZWYgc2V0X3Zh cmlhYmxlX3R5cGUoc2VsZiwgaW50IHZhcmlhYmxlLCBpbnQgdnR5cGUpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBzZXRfdmFyaWFibGVfdHlwZShzZWxmLCBpbnQgdmFyaWFibGUsIGludCB2dHlwZSk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIFNldCB0aGUgdHlwZSBvZiBhIHZhcmlhYmxlLgorIAor ZGlmZiAtLWdpdCBhL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9nbHBrX2dyYXBoX2JhY2tl bmQucHhkIGIvc3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL2dscGtfZ3JhcGhfYmFja2VuZC5w eGQKK2luZGV4IDkyNmM2MDEzNGRjLi4yOGQyZTY1ZDdlZiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdl L251bWVyaWNhbC9iYWNrZW5kcy9nbHBrX2dyYXBoX2JhY2tlbmQucHhkCisrKysgYi9zcmMvc2Fn ZS9udW1lcmljYWwvYmFja2VuZHMvZ2xwa19ncmFwaF9iYWNrZW5kLnB4ZAorQEAgLTI3LDIyICsy NywyMiBAQCBjdHlwZWRlZiBzdHJ1Y3QgY19hX2RhdGE6CisgCisgY2RlZiBjbGFzcyBHTFBLR3Jh cGhCYWNrZW5kKCk6CisgICAgIGNkZWYgZ2xwX2dyYXBoICogZ3JhcGgKKy0gICAgY3BkZWYgYWRk X3ZlcnRleChzZWxmLCBuYW1lID0gPykgbm9leGNlcHQKKy0gICAgY3BkZWYgbGlzdCBhZGRfdmVy dGljZXMoc2VsZiwgdmVydGljZXMpIG5vZXhjZXB0CistICAgIGNwZGVmIF9fYWRkX3ZlcnRpY2Vz X3NhZ2Uoc2VsZiwgZykgbm9leGNlcHQKKy0gICAgY3BkZWYgZGljdCBnZXRfdmVydGV4KHNlbGYs IHZlcnRleCkgbm9leGNlcHQKKy0gICAgY3BkZWYgZGljdCBnZXRfdmVydGljZXMoc2VsZiwgdmVy dHMpIG5vZXhjZXB0CistICAgIGNwZGVmIHNldF92ZXJ0ZXhfZGVtYW5kKHNlbGYsIHZlcnRleCwg cGFyYW0pIG5vZXhjZXB0CistICAgIGNwZGVmIHNldF92ZXJ0aWNlc19kZW1hbmQoc2VsZiwgbGlz dCBwYWlycykgbm9leGNlcHQKKy0gICAgY3BkZWYgbGlzdCB2ZXJ0aWNlcyhzZWxmKSBub2V4Y2Vw dAorLSAgICBjcGRlZiBhZGRfZWRnZShzZWxmLCB1LCB2LCBkaWN0IHBhcmFtcyA9ID8pIG5vZXhj ZXB0CistICAgIGNwZGVmIF9fYWRkX2VkZ2VzX3NhZ2Uoc2VsZiwgZykgbm9leGNlcHQKKy0gICAg Y3BkZWYgbGlzdCBhZGRfZWRnZXMoc2VsZiwgZWRnZXMpIG5vZXhjZXB0CistICAgIGNwZGVmIGRl bGV0ZV9lZGdlKHNlbGYsIHUsIHYsIGRpY3QgcGFyYW1zID0gPykgbm9leGNlcHQKKy0gICAgY3Bk ZWYgdHVwbGUgZ2V0X2VkZ2Uoc2VsZiwgdSwgdikgbm9leGNlcHQKKy0gICAgY3BkZWYgbGlzdCBl ZGdlcyhzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBkZWxldGVfdmVydGV4KHNlbGYsIHZlcnQp IG5vZXhjZXB0CistICAgIGNwZGVmIGRlbGV0ZV92ZXJ0aWNlcyhzZWxmLCBsaXN0IHZlcnRzKSBu b2V4Y2VwdAorKyAgICBjcGRlZiBhZGRfdmVydGV4KHNlbGYsIG5hbWUgPSA/KQorKyAgICBjcGRl ZiBsaXN0IGFkZF92ZXJ0aWNlcyhzZWxmLCB2ZXJ0aWNlcykKKysgICAgY3BkZWYgX19hZGRfdmVy dGljZXNfc2FnZShzZWxmLCBnKQorKyAgICBjcGRlZiBkaWN0IGdldF92ZXJ0ZXgoc2VsZiwgdmVy dGV4KQorKyAgICBjcGRlZiBkaWN0IGdldF92ZXJ0aWNlcyhzZWxmLCB2ZXJ0cykKKysgICAgY3Bk ZWYgc2V0X3ZlcnRleF9kZW1hbmQoc2VsZiwgdmVydGV4LCBwYXJhbSkKKysgICAgY3BkZWYgc2V0 X3ZlcnRpY2VzX2RlbWFuZChzZWxmLCBsaXN0IHBhaXJzKQorKyAgICBjcGRlZiBsaXN0IHZlcnRp Y2VzKHNlbGYpCisrICAgIGNwZGVmIGFkZF9lZGdlKHNlbGYsIHUsIHYsIGRpY3QgcGFyYW1zID0g PykKKysgICAgY3BkZWYgX19hZGRfZWRnZXNfc2FnZShzZWxmLCBnKQorKyAgICBjcGRlZiBsaXN0 IGFkZF9lZGdlcyhzZWxmLCBlZGdlcykKKysgICAgY3BkZWYgZGVsZXRlX2VkZ2Uoc2VsZiwgdSwg diwgZGljdCBwYXJhbXMgPSA/KQorKyAgICBjcGRlZiB0dXBsZSBnZXRfZWRnZShzZWxmLCB1LCB2 KQorKyAgICBjcGRlZiBsaXN0IGVkZ2VzKHNlbGYpCisrICAgIGNwZGVmIGRlbGV0ZV92ZXJ0ZXgo c2VsZiwgdmVydCkKKysgICAgY3BkZWYgZGVsZXRlX3ZlcnRpY2VzKHNlbGYsIGxpc3QgdmVydHMp CisgICAgIGNwZGVmIGludCBfZmluZF92ZXJ0ZXgoc2VsZiwgdmVydCkgbm9leGNlcHQKKyAgICAg Y3BkZWYgaW50IHdyaXRlX2dyYXBoKHNlbGYsIGZuYW1lKSBub2V4Y2VwdAorICAgICBjcGRlZiBp bnQgd3JpdGVfY2NkYXRhKHNlbGYsIGZuYW1lKSBub2V4Y2VwdAorZGlmZiAtLWdpdCBhL3NyYy9z YWdlL251bWVyaWNhbC9iYWNrZW5kcy9nbHBrX2dyYXBoX2JhY2tlbmQucHl4IGIvc3JjL3NhZ2Uv bnVtZXJpY2FsL2JhY2tlbmRzL2dscGtfZ3JhcGhfYmFja2VuZC5weXgKK2luZGV4IDkwNDMxZjhh NDgxLi42M2JjMmE3NjMwNSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5k cy9nbHBrX2dyYXBoX2JhY2tlbmQucHl4CisrKysgYi9zcmMvc2FnZS9udW1lcmljYWwvYmFja2Vu ZHMvZ2xwa19ncmFwaF9iYWNrZW5kLnB5eAorQEAgLTIzMSw3ICsyMzEsNyBAQCBjZGVmIGNsYXNz IEdMUEtHcmFwaEJhY2tlbmQoKToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgVmFsdWVF cnJvcigiSW5wdXQgZGF0YSBpcyBub3Qgc3VwcG9ydGVkIikKKyAKKy0gICAgY3BkZWYgYWRkX3Zl cnRleChzZWxmLCBuYW1lPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBhZGRfdmVydGV4KHNl bGYsIG5hbWU9Tm9uZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEFkZHMgYW4gaXNvbGF0ZWQg dmVydGV4IHRvIHRoZSBncmFwaC4KKyAKK0BAIC0yODUsNyArMjg1LDcgQEAgY2RlZiBjbGFzcyBH TFBLR3JhcGhCYWNrZW5kKCk6CisgICAgICAgICAgICAgZ2xwX3NldF92ZXJ0ZXhfbmFtZShzZWxm LmdyYXBoLCB2biwgc3RyX3RvX2J5dGVzKHMpKQorICAgICAgICAgICAgIHJldHVybiBzCisgCist ICAgIGNwZGVmIF9fYWRkX3ZlcnRpY2VzX3NhZ2Uoc2VsZiwgZykgbm9leGNlcHQ6CisrICAgIGNw ZGVmIF9fYWRkX3ZlcnRpY2VzX3NhZ2Uoc2VsZiwgZyk6CisgICAgICAgICAiIiIKKyAgICAgICAg IEFkZHMgdmVydGljZXMgdG8gdGhlIEdMUEsgR3JhcGguCisgCitAQCAtMzI3LDcgKzMyNyw3IEBA IGNkZWYgY2xhc3MgR0xQS0dyYXBoQmFja2VuZCgpOgorIAorICAgICAgICAgZ2xwX2NyZWF0ZV92 X2luZGV4KHNlbGYuZ3JhcGgpCisgCistICAgIGNwZGVmIGxpc3QgYWRkX3ZlcnRpY2VzKHNlbGYs IHZlcnRpY2VzKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgbGlzdCBhZGRfdmVydGljZXMoc2VsZiwg dmVydGljZXMpOgorICAgICAgICAgIiIiCisgICAgICAgICBBZGRzIHZlcnRpY2VzIGZyb20gYW4g aXRlcmFibGUgY29udGFpbmVyIG9mIHZlcnRpY2VzLgorIAorQEAgLTM3OSw3ICszNzksNyBAQCBj ZGVmIGNsYXNzIEdMUEtHcmFwaEJhY2tlbmQoKToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAg ICAgcmV0dXJuIE5vbmUKKyAKKy0gICAgY3BkZWYgc2V0X3ZlcnRleF9kZW1hbmQoc2VsZiwgdmVy dGV4LCBkZW1hbmQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBzZXRfdmVydGV4X2RlbWFuZChzZWxm LCB2ZXJ0ZXgsIGRlbWFuZCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFNldHMgdGhlIGRlbWFu ZCBvZiB0aGUgdmVydGV4IGluIGEgbWluY29zdCBmbG93IGFsZ29yaXRobS4KKyAKK0BAIC00MTYs NyArNDE2LDcgQEAgY2RlZiBjbGFzcyBHTFBLR3JhcGhCYWNrZW5kKCk6CisgICAgICAgICBjZGVm IGRvdWJsZSB2YWwgPSBkZW1hbmQKKyAgICAgICAgICg8Y192X2RhdGEgKj52ZXJ0LmRhdGEpLnJo cyA9IHZhbAorIAorLSAgICBjcGRlZiBzZXRfdmVydGljZXNfZGVtYW5kKHNlbGYsIGxpc3QgcGFp cnMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBzZXRfdmVydGljZXNfZGVtYW5kKHNlbGYsIGxpc3Qg cGFpcnMpOgorICAgICAgICAgIiIiCisgICAgICAgICBTZXRzIHRoZSBwYXJhbWV0ZXJzIG9mIHNl bGVjdGVkIHZlcnRpY2VzLgorIAorQEAgLTQ0NCw3ICs0NDQsNyBAQCBjZGVmIGNsYXNzIEdMUEtH cmFwaEJhY2tlbmQoKToKKyAgICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAg ICAgICAgIHBhc3MKKyAKKy0gICAgY3BkZWYgZGljdCBnZXRfdmVydGV4KHNlbGYsIHZlcnRleCkg bm9leGNlcHQ6CisrICAgIGNwZGVmIGRpY3QgZ2V0X3ZlcnRleChzZWxmLCB2ZXJ0ZXgpOgorICAg ICAgICAgIiIiCisgICAgICAgICBSZXR1cm5zIGEgc3BlY2lmaWMgdmVydGV4IGFzIGEgYGBkaWN0 YGAgT2JqZWN0LgorIAorQEAgLTQ5MSw3ICs0OTEsNyBAQCBjZGVmIGNsYXNzIEdMUEtHcmFwaEJh Y2tlbmQoKToKKyAgICAgICAgICAgICAibHMiICA6IHZkYXRhLmxzCisgICAgICAgICAgICAgfQor IAorLSAgICBjcGRlZiBkaWN0IGdldF92ZXJ0aWNlcyhzZWxmLCB2ZXJ0cykgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIGRpY3QgZ2V0X3ZlcnRpY2VzKHNlbGYsIHZlcnRzKToKKyAgICAgICAgICIiIgor ICAgICAgICAgUmV0dXJucyBhIGRpY3Rpb25hcnkgb2YgdGhlIGRpY3Rpb25hcmllcyBhc3NvY2lh dGVkIHRvIGVhY2ggdmVydGV4LgorIAorQEAgLTUyMCw3ICs1MjAsNyBAQCBjZGVmIGNsYXNzIEdM UEtHcmFwaEJhY2tlbmQoKToKKyAgICAgICAgIHZsID0gWyh2LCBzZWxmLmdldF92ZXJ0ZXgodikp IGZvciB2IGluIHZlcnRzXQorICAgICAgICAgcmV0dXJuIGRpY3QoWyh2LCBwKSBmb3IgdiwgcCBp biB2bCBpZiBwIGlzIG5vdCBOb25lXSkKKyAKKy0gICAgY3BkZWYgbGlzdCB2ZXJ0aWNlcyhzZWxm KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgbGlzdCB2ZXJ0aWNlcyhzZWxmKToKKyAgICAgICAgICIi IgorICAgICAgICAgUmV0dXJucyB0aGUgbGlzdCBvZiBhbGwgdmVydGljZXMKKyAKK0BAIC01NTIs NyArNTUyLDcgQEAgY2RlZiBjbGFzcyBHTFBLR3JhcGhCYWNrZW5kKCk6CisgICAgICAgICAgICAg ICAgIGlmIHNlbGYuZ3JhcGgudltpKzFdLm5hbWUgaXMgbm90IE5VTEwgZWxzZSBOb25lCisgICAg ICAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKHNlbGYuZ3JhcGgubnYpXQorIAorLSAgICBjcGRl ZiBhZGRfZWRnZShzZWxmLCB1LCB2LCBkaWN0IHBhcmFtcz1Ob25lKSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgYWRkX2VkZ2Uoc2VsZiwgdSwgdiwgZGljdCBwYXJhbXM9Tm9uZSk6CisgICAgICAgICAi IiIKKyAgICAgICAgIEFkZHMgYW4gZWRnZSBiZXR3ZWVuIHZlcnRpY2VzIGBgdWBgIGFuZCBgYHZg YC4KKyAKK0BAIC02MTYsNyArNjE2LDcgQEAgY2RlZiBjbGFzcyBHTFBLR3JhcGhCYWNrZW5kKCk6 CisgICAgICAgICAgICAgICAgIGdscF9kZWxfYXJjKHNlbGYuZ3JhcGgsIGEpCisgICAgICAgICAg ICAgICAgIHJhaXNlIFR5cGVFcnJvcigiSW52YWxpZCBlZGdlIHBhcmFtZXRlci4iKQorIAorLSAg ICBjcGRlZiBsaXN0IGFkZF9lZGdlcyhzZWxmLCBlZGdlcykgbm9leGNlcHQ6CisrICAgIGNwZGVm IGxpc3QgYWRkX2VkZ2VzKHNlbGYsIGVkZ2VzKToKKyAgICAgICAgICIiIgorICAgICAgICAgQWRk cyBlZGdlcyB0byB0aGUgZ3JhcGguCisgCitAQCAtNjU0LDcgKzY1NCw3IEBAIGNkZWYgY2xhc3Mg R0xQS0dyYXBoQmFja2VuZCgpOgorICAgICAgICAgZm9yIGVkIGluIGVkZ2VzOgorICAgICAgICAg ICAgIHNlbGYuYWRkX2VkZ2UoKmVkKQorIAorLSAgICBjcGRlZiBfX2FkZF9lZGdlc19zYWdlKHNl bGYsIGcpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfX2FkZF9lZGdlc19zYWdlKHNlbGYsIGcpOgor ICAgICAgICAgIiIiCisgICAgICAgICBBZGRzIGVkZ2VzIHRvIHRoZSBHcmFwaC4KKyAKK0BAIC03 MDksNyArNzA5LDcgQEAgY2RlZiBjbGFzcyBHTFBLR3JhcGhCYWNrZW5kKCk6CisgICAgICAgICAg ICAgICAgICAgICBpZiAibG93IiBpbiBsYWJlbDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAo PGNfYV9kYXRhICo+YS5kYXRhKS5sb3cgPSBsb3cKKyAKKy0gICAgY3BkZWYgdHVwbGUgZ2V0X2Vk Z2Uoc2VsZiwgdSwgdikgbm9leGNlcHQ6CisrICAgIGNwZGVmIHR1cGxlIGdldF9lZGdlKHNlbGYs IHUsIHYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm5zIGFuIGVkZ2UgY29ubmVjdGlu ZyB0d28gdmVydGljZXMuCisgCitAQCAtNzY1LDcgKzc2NSw3IEBAIGNkZWYgY2xhc3MgR0xQS0dy YXBoQmFja2VuZCgpOgorIAorICAgICAgICAgcmV0dXJuIE5vbmUKKyAKKy0gICAgY3BkZWYgbGlz dCBlZGdlcyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgbGlzdCBlZGdlcyhzZWxmKToKKyAg ICAgICAgICIiIgorICAgICAgICAgUmV0dXJucyBhIGBgbGlzdGBgIG9mIGFsbCBlZGdlcyBpbiB0 aGUgZ3JhcGgKKyAKK0BAIC04MTQsNyArODE0LDcgQEAgY2RlZiBjbGFzcyBHTFBLR3JhcGhCYWNr ZW5kKCk6CisgICAgICAgICAgICAgaSArPSAxCisgICAgICAgICByZXR1cm4gZWRnZV9saXN0Cisg CistICAgIGNwZGVmIGRlbGV0ZV92ZXJ0ZXgoc2VsZiwgdmVydCkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIGRlbGV0ZV92ZXJ0ZXgoc2VsZiwgdmVydCk6CisgICAgICAgICByIiIiCisgICAgICAgICBS ZW1vdmVzIGEgdmVydGV4IGZyb20gdGhlIGdyYXBoLgorIAorQEAgLTg1MCw3ICs4NTAsNyBAQCBj ZGVmIGNsYXNzIEdMUEtHcmFwaEJhY2tlbmQoKToKKyAKKyAgICAgICAgIGdscF9kZWxfdmVydGlj ZXMoc2VsZi5ncmFwaCwgbmRlbCwgbnVtKQorIAorLSAgICBjcGRlZiBkZWxldGVfdmVydGljZXMo c2VsZiwgbGlzdCB2ZXJ0cykgbm9leGNlcHQ6CisrICAgIGNwZGVmIGRlbGV0ZV92ZXJ0aWNlcyhz ZWxmLCBsaXN0IHZlcnRzKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJlbW92ZXMgdmVydGlj ZXMgZnJvbSB0aGUgZ3JhcGguCisgCitAQCAtODk0LDcgKzg5NCw3IEBAIGNkZWYgY2xhc3MgR0xQ S0dyYXBoQmFja2VuZCgpOgorIAorICAgICAgICAgc2lnX2ZyZWUobnVtKQorIAorLSAgICBjcGRl ZiBkZWxldGVfZWRnZShzZWxmLCB1LCB2LCBkaWN0IHBhcmFtcz1Ob25lKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgZGVsZXRlX2VkZ2Uoc2VsZiwgdSwgdiwgZGljdCBwYXJhbXM9Tm9uZSk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIERlbGV0ZXMgYW4gZWRnZSBmcm9tIHRoZSBncmFwaC4KKyAKK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9udW1lcmljYWwvYmFja2VuZHMvaW50ZXJhY3RpdmVscF9iYWNr ZW5kLnB4ZCBiL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9pbnRlcmFjdGl2ZWxwX2JhY2tl bmQucHhkCitpbmRleCBmMjkxODc2MzJmYy4uMDdlNjNhN2JiNDQgMTAwNjQ0CistLS0gYS9zcmMv c2FnZS9udW1lcmljYWwvYmFja2VuZHMvaW50ZXJhY3RpdmVscF9iYWNrZW5kLnB4ZAorKysrIGIv c3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL2ludGVyYWN0aXZlbHBfYmFja2VuZC5weGQKK0BA IC0zMCw2ICszMCw2IEBAIGNkZWYgY2xhc3MgSW50ZXJhY3RpdmVMUEJhY2tlbmQoR2VuZXJpY0Jh Y2tlbmQpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZWZmaWNpZW50cz0qKSBcCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0IC0xCisgCistICAgIGNwZGVmIGRpY3Rp b25hcnkoc2VsZikgbm9leGNlcHQKKysgICAgY3BkZWYgZGljdGlvbmFyeShzZWxmKQorIAorLSAg ICBjcGRlZiBpbnRlcmFjdGl2ZV9scF9wcm9ibGVtKHNlbGYpIG5vZXhjZXB0CisrICAgIGNwZGVm IGludGVyYWN0aXZlX2xwX3Byb2JsZW0oc2VsZikKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9udW1l cmljYWwvYmFja2VuZHMvaW50ZXJhY3RpdmVscF9iYWNrZW5kLnB5eCBiL3NyYy9zYWdlL251bWVy aWNhbC9iYWNrZW5kcy9pbnRlcmFjdGl2ZWxwX2JhY2tlbmQucHl4CitpbmRleCAzMDYyYTI5ZWIx Zi4uMzQ4NGQ3Mzk2NjcgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9udW1lcmljYWwvYmFja2VuZHMv aW50ZXJhY3RpdmVscF9iYWNrZW5kLnB5eAorKysrIGIvc3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tl bmRzL2ludGVyYWN0aXZlbHBfYmFja2VuZC5weXgKK0BAIC04Miw3ICs4Miw3IEBAIGNkZWYgY2xh c3MgSW50ZXJhY3RpdmVMUEJhY2tlbmQ6CisgCisgICAgICAgICBzZWxmLnJvd19uYW1lcyA9IFtd CisgCistICAgIGNwZGVmIF9fY29weV9fKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfX2Nv cHlfXyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJucyBhIGNvcHkgb2Ygc2Vs Zi4KKyAKK0BAIC0xMDUsNyArMTA1LDcgQEAgY2RlZiBjbGFzcyBJbnRlcmFjdGl2ZUxQQmFja2Vu ZDoKKyAgICAgICAgIGNwLnByb2JfbmFtZSA9IHNlbGYucHJvYl9uYW1lCisgICAgICAgICByZXR1 cm4gY3AKKyAKKy0gICAgY3BkZWYgYmFzZV9yaW5nKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBiYXNlX3Jpbmcoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYmFz ZSByaW5nLgorIAorQEAgLTI1Myw3ICsyNTMsNyBAQCBjZGVmIGNsYXNzIEludGVyYWN0aXZlTFBC YWNrZW5kOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2JsZW1f dHlwZSwgcmluZywgb2JqZWN0aXZlX2NvbnN0YW50X3Rlcm09ZCkKKyAgICAgICAgIHJldHVybiBz ZWxmLm5jb2xzKCkgLSAxCisgCistICAgIGNwZGVmICBzZXRfdmFyaWFibGVfdHlwZShzZWxmLCBp bnQgdmFyaWFibGUsIGludCB2dHlwZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmICBzZXRfdmFyaWFi bGVfdHlwZShzZWxmLCBpbnQgdmFyaWFibGUsIGludCB2dHlwZSk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIFNldCB0aGUgdHlwZSBvZiBhIHZhcmlhYmxlLgorIAorQEAgLTMwNyw3ICszMDcsNyBA QCBjZGVmIGNsYXNzIEludGVyYWN0aXZlTFBCYWNrZW5kOgorICAgICAgICAgZCA9IHNlbGYubHAu b2JqZWN0aXZlX2NvbnN0YW50X3Rlcm0oKQorICAgICAgICAgcmV0dXJuIEEsIGIsIGMsIHgsIGNv bnN0cmFpbnRfdHlwZXMsIHZhcmlhYmxlX3R5cGVzLCBwcm9ibGVtX3R5cGUsIGJhc2VfcmluZywg ZAorIAorLSAgICBjcGRlZiBzZXRfc2Vuc2Uoc2VsZiwgaW50IHNlbnNlKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgc2V0X3NlbnNlKHNlbGYsIGludCBzZW5zZSk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIFNldCB0aGUgZGlyZWN0aW9uIChtYXhpbWl6YXRpb24vbWluaW1pemF0aW9uKS4KKyAKK0BA IC0zMzcsNyArMzM3LDcgQEAgY2RlZiBjbGFzcyBJbnRlcmFjdGl2ZUxQQmFja2VuZDoKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdHJhaW50X3R5cGVzLCB2YXJp YWJsZV90eXBlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9i bGVtX3R5cGUsIHJpbmcsIG9iamVjdGl2ZV9jb25zdGFudF90ZXJtPWQpCisgCistICAgIGNwZGVm IG9iamVjdGl2ZV9jb2VmZmljaWVudChzZWxmLCBpbnQgdmFyaWFibGUsIGNvZWZmPU5vbmUpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBvYmplY3RpdmVfY29lZmZpY2llbnQoc2VsZiwgaW50IHZhcmlh YmxlLCBjb2VmZj1Ob25lKToKKyAgICAgICAgICIiIgorICAgICAgICAgU2V0IG9yIGdldCB0aGUg Y29lZmZpY2llbnQgb2YgYSB2YXJpYWJsZSBpbiB0aGUgb2JqZWN0aXZlCisgICAgICAgICBmdW5j dGlvbgorQEAgLTM3MCw3ICszNzAsNyBAQCBjZGVmIGNsYXNzIEludGVyYWN0aXZlTFBCYWNrZW5k OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdHJhaW50 X3R5cGVzLCB2YXJpYWJsZV90eXBlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcHJvYmxlbV90eXBlLCByaW5nLCBvYmplY3RpdmVfY29uc3RhbnRfdGVybT1k KQorIAorLSAgICBjcGRlZiBvYmplY3RpdmVfY29uc3RhbnRfdGVybShzZWxmLCBkPU5vbmUpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBvYmplY3RpdmVfY29uc3RhbnRfdGVybShzZWxmLCBkPU5vbmUp OgorICAgICAgICAgIiIiCisgICAgICAgICBTZXQgb3IgZ2V0IHRoZSBjb25zdGFudCB0ZXJtIGlu IHRoZSBvYmplY3RpdmUgZnVuY3Rpb24KKyAKK0BAIC0zOTYsNyArMzk2LDcgQEAgY2RlZiBjbGFz cyBJbnRlcmFjdGl2ZUxQQmFja2VuZDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3RyYWludF90eXBlcywgdmFyaWFibGVfdHlwZXMsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2JsZW1fdHlwZSwgcmluZywgb2Jq ZWN0aXZlX2NvbnN0YW50X3Rlcm09ZCkKKyAKKy0gICAgY3BkZWYgc2V0X29iamVjdGl2ZShzZWxm LCBsaXN0IGNvZWZmLCBkID0gMCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHNldF9vYmplY3RpdmUo c2VsZiwgbGlzdCBjb2VmZiwgZCA9IDApOgorICAgICAgICAgIiIiCisgICAgICAgICBTZXQgdGhl IG9iamVjdGl2ZSBmdW5jdGlvbi4KKyAKK0BAIC00NDYsNyArNDQ2LDcgQEAgY2RlZiBjbGFzcyBJ bnRlcmFjdGl2ZUxQQmFja2VuZDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdHJhaW50X3R5cGVzLCB2YXJpYWJsZV90eXBlcywKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwcm9ibGVtX3R5cGUsIHJpbmcsIG9iamVjdGl2ZV9jb25z dGFudF90ZXJtPWQpCisgCistICAgIGNwZGVmIHNldF92ZXJib3NpdHkoc2VsZiwgaW50IGxldmVs KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgc2V0X3ZlcmJvc2l0eShzZWxmLCBpbnQgbGV2ZWwpOgor ICAgICAgICAgIiIiCisgICAgICAgICBTZXQgdGhlIGxvZyAodmVyYm9zaXR5KSBsZXZlbAorIAor QEAgLTQ2Miw3ICs0NjIsNyBAQCBjZGVmIGNsYXNzIEludGVyYWN0aXZlTFBCYWNrZW5kOgorICAg ICAgICAgIiIiCisgICAgICAgICBzZWxmLnZlcmJvc2l0eSA9IGxldmVsCisgCistICAgIGNwZGVm IHJlbW92ZV9jb25zdHJhaW50KHNlbGYsIGludCBpKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcmVt b3ZlX2NvbnN0cmFpbnQoc2VsZiwgaW50IGkpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmVt b3ZlIGEgY29uc3RyYWludC4KKyAKK0BAIC00OTYsNyArNDk2LDcgQEAgY2RlZiBjbGFzcyBJbnRl cmFjdGl2ZUxQQmFja2VuZDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdHJhaW50X3R5cGVzLCB2YXJpYWJsZV90eXBlcywKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBwcm9ibGVtX3R5cGUsIHJpbmcsIG9iamVjdGl2ZV9jb25zdGFu dF90ZXJtPWQpCisgCistICAgIGNwZGVmIGFkZF9saW5lYXJfY29uc3RyYWludChzZWxmLCBjb2Vm ZmljaWVudHMsIGxvd2VyX2JvdW5kLCB1cHBlcl9ib3VuZCwgbmFtZT1Ob25lKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgYWRkX2xpbmVhcl9jb25zdHJhaW50KHNlbGYsIGNvZWZmaWNpZW50cywgbG93 ZXJfYm91bmQsIHVwcGVyX2JvdW5kLCBuYW1lPU5vbmUpOgorICAgICAgICAgIiIiCisgICAgICAg ICBBZGQgYSBsaW5lYXIgY29uc3RyYWludC4KKyAKK0BAIC01NTgsNyArNTU4LDcgQEAgY2RlZiBj bGFzcyBJbnRlcmFjdGl2ZUxQQmFja2VuZDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwcm9ibGVtX3R5cGUsIHJpbmcsIG9iamVjdGl2ZV9jb25zdGFudF90ZXJtPWQp CisgCisgCistICAgIGNwZGVmIGFkZF9jb2woc2VsZiwgaW5kaWNlcywgY29lZmZzKSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgYWRkX2NvbChzZWxmLCBpbmRpY2VzLCBjb2VmZnMpOgorICAgICAgICAg IiIiCisgICAgICAgICBBZGQgYSBjb2x1bW4uCisgCitAQCAtNjMzLDcgKzYzMyw3IEBAIGNkZWYg Y2xhc3MgSW50ZXJhY3RpdmVMUEJhY2tlbmQ6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAg IHJhaXNlIE1JUFNvbHZlckV4Y2VwdGlvbigiSW50ZXJhY3RpdmVMUDogUHJvYmxlbSBpcyB1bmJv dW5kZWQiKQorIAorLSAgICBjcGRlZiBnZXRfb2JqZWN0aXZlX3ZhbHVlKHNlbGYpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBnZXRfb2JqZWN0aXZlX3ZhbHVlKHNlbGYpOgorICAgICAgICAgIiIiCisg ICAgICAgICBSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBvYmplY3RpdmUgZnVuY3Rpb24uCisgCitA QCAtNjY0LDcgKzY2NCw3IEBAIGNkZWYgY2xhc3MgSW50ZXJhY3RpdmVMUEJhY2tlbmQ6CisgICAg ICAgICAgICAgdiA9IC0gdgorICAgICAgICAgcmV0dXJuIHYKKyAKKy0gICAgY3BkZWYgZ2V0X3Zh cmlhYmxlX3ZhbHVlKHNlbGYsIGludCB2YXJpYWJsZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGdl dF92YXJpYWJsZV92YWx1ZShzZWxmLCBpbnQgdmFyaWFibGUpOgorICAgICAgICAgIiIiCisgICAg ICAgICBSZXR1cm4gdGhlIHZhbHVlIG9mIGEgdmFyaWFibGUgZ2l2ZW4gYnkgdGhlIHNvbHZlci4K KyAKK0BAIC03NDEsNyArNzQxLDcgQEAgY2RlZiBjbGFzcyBJbnRlcmFjdGl2ZUxQQmFja2VuZDoK KyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYubHAucHJvYmxlbV90eXBlKCkgPT0g Im1heCIKKyAKKy0gICAgY3BkZWYgcHJvYmxlbV9uYW1lKHNlbGYsIG5hbWU9Tm9uZSkgbm9leGNl cHQ6CisrICAgIGNwZGVmIHByb2JsZW1fbmFtZShzZWxmLCBuYW1lPU5vbmUpOgorICAgICAgICAg IiIiCisgICAgICAgICBSZXR1cm4gb3IgZGVmaW5lIHRoZSBwcm9ibGVtJ3MgbmFtZQorIAorQEAg LTc2Niw3ICs3NjYsNyBAQCBjZGVmIGNsYXNzIEludGVyYWN0aXZlTFBCYWNrZW5kOgorICAgICAg ICAgZWxzZToKKyAgICAgICAgICAgICBzZWxmLnByb2JfbmFtZSA9IHN0cihuYW1lKQorIAorLSAg ICBjcGRlZiByb3coc2VsZiwgaW50IGkpIG5vZXhjZXB0OgorKyAgICBjcGRlZiByb3coc2VsZiwg aW50IGkpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYSByb3cKKyAKK0BAIC04MDAs NyArODAwLDcgQEAgY2RlZiBjbGFzcyBJbnRlcmFjdGl2ZUxQQmFja2VuZDoKKyAgICAgICAgICAg ICAgICAgY29lZmZzLmFwcGVuZChBW2ldW2pdKQorICAgICAgICAgcmV0dXJuIChpbmRpY2VzLCBj b2VmZnMpCisgCistICAgIGNwZGVmIHJvd19ib3VuZHMoc2VsZiwgaW50IGluZGV4KSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgcm93X2JvdW5kcyhzZWxmLCBpbnQgaW5kZXgpOgorICAgICAgICAgIiIi CisgICAgICAgICBSZXR1cm4gdGhlIGJvdW5kcyBvZiBhIHNwZWNpZmljIGNvbnN0cmFpbnQuCisg CitAQCAtODM1LDcgKzgzNSw3IEBAIGNkZWYgY2xhc3MgSW50ZXJhY3RpdmVMUEJhY2tlbmQ6Cisg ICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkJhZCBjb25zdHJh aW50X3R5cGUiKQorIAorLSAgICBjcGRlZiBjb2xfYm91bmRzKHNlbGYsIGludCBpbmRleCkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIGNvbF9ib3VuZHMoc2VsZiwgaW50IGluZGV4KToKKyAgICAgICAg ICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBib3VuZHMgb2YgYSBzcGVjaWZpYyB2YXJpYWJsZS4K KyAKK0BAIC05MzYsNyArOTM2LDcgQEAgY2RlZiBjbGFzcyBJbnRlcmFjdGl2ZUxQQmFja2VuZDoK KyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIFRydWUKKyAKKy0gICAgY3BkZWYgcm93X25h bWUoc2VsZiwgaW50IGluZGV4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcm93X25hbWUoc2VsZiwg aW50IGluZGV4KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBgYGluZGV4YGAg dGggcm93IG5hbWUKKyAKK0BAIC05NTUsNyArOTU1LDcgQEAgY2RlZiBjbGFzcyBJbnRlcmFjdGl2 ZUxQQmFja2VuZDoKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYucm93X25hbWVz W2luZGV4XQorIAorLSAgICBjcGRlZiBjb2xfbmFtZShzZWxmLCBpbnQgaW5kZXgpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBjb2xfbmFtZShzZWxmLCBpbnQgaW5kZXgpOgorICAgICAgICAgIiIiCisg ICAgICAgICBSZXR1cm4gdGhlIGBgaW5kZXhgYC10aCBjb2x1bW4gbmFtZQorIAorQEAgLTk3Nyw3 ICs5NzcsNyBAQCBjZGVmIGNsYXNzIEludGVyYWN0aXZlTFBCYWNrZW5kOgorICAgICAgICAgIiIi CisgICAgICAgICByZXR1cm4gc3RyKHNlbGYubHAuZGVjaXNpb25fdmFyaWFibGVzKClbaW5kZXhd KQorIAorLSAgICBjcGRlZiB2YXJpYWJsZV91cHBlcl9ib3VuZChzZWxmLCBpbnQgaW5kZXgsIHZh bHVlID0gRmFsc2UpIG5vZXhjZXB0OgorKyAgICBjcGRlZiB2YXJpYWJsZV91cHBlcl9ib3VuZChz ZWxmLCBpbnQgaW5kZXgsIHZhbHVlID0gRmFsc2UpOgorICAgICAgICAgIiIiCisgICAgICAgICBS ZXR1cm4gb3IgZGVmaW5lIHRoZSB1cHBlciBib3VuZCBvbiBhIHZhcmlhYmxlCisgCitAQCAtMTAy MSw3ICsxMDIxLDcgQEAgY2RlZiBjbGFzcyBJbnRlcmFjdGl2ZUxQQmFja2VuZDoKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0cmFpbnRfdHlwZXMs IHZhcmlhYmxlX3R5cGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcHJvYmxlbV90eXBlLCByaW5nLCBvYmplY3RpdmVfY29uc3RhbnRfdGVybT1kKQor IAorLSAgICBjcGRlZiB2YXJpYWJsZV9sb3dlcl9ib3VuZChzZWxmLCBpbnQgaW5kZXgsIHZhbHVl ID0gRmFsc2UpIG5vZXhjZXB0OgorKyAgICBjcGRlZiB2YXJpYWJsZV9sb3dlcl9ib3VuZChzZWxm LCBpbnQgaW5kZXgsIHZhbHVlID0gRmFsc2UpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1 cm4gb3IgZGVmaW5lIHRoZSBsb3dlciBib3VuZCBvbiBhIHZhcmlhYmxlCisgCitAQCAtMTE4NSw3 ICsxMTg1LDcgQEAgY2RlZiBjbGFzcyBJbnRlcmFjdGl2ZUxQQmFja2VuZDoKKyAgICAgICAgICIi IgorICAgICAgICAgcmV0dXJuIHNlbGYubHBfc3RkX2Zvcm0uc2xhY2tfdmFyaWFibGVzKClbaW5k ZXhdIGluIHNlbGYuZmluYWxfZGljdGlvbmFyeS5ub25iYXNpY192YXJpYWJsZXMoKQorIAorLSAg ICBjcGRlZiBkaWN0aW9uYXJ5KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBkaWN0aW9uYXJ5 KHNlbGYpOgorICAgICAgICAgIyBQcm9wb3NlZCBhZGRpdGlvbiB0byB0aGUgZ2VuZXJhbCBpbnRl cmZhY2UsCisgICAgICAgICAjIHdoaWNoIHdvdWxkIGZvciBvdGhlciBzb2x2ZXJzIHJldHVybiBi YWNrZW5kIGRpY3Rpb25hcmllcyAoIzE4ODA0KQorICAgICAgICAgIiIiCitAQCAtMTIyMSw3ICsx MjIxLDcgQEAgY2RlZiBjbGFzcyBJbnRlcmFjdGl2ZUxQQmFja2VuZDoKKyAgICAgICAgICIiIgor ICAgICAgICAgcmV0dXJuIHNlbGYuZmluYWxfZGljdGlvbmFyeQorIAorLSAgICBjcGRlZiBpbnRl cmFjdGl2ZV9scF9wcm9ibGVtKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBpbnRlcmFjdGl2 ZV9scF9wcm9ibGVtKHNlbGYpOgorIAorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhl IDpjbGFzczpgSW50ZXJhY3RpdmVMUFByb2JsZW1gIG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhp cyBiYWNrZW5kLgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9tYXRy aXhfc2RwX2JhY2tlbmQucHl4IGIvc3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL21hdHJpeF9z ZHBfYmFja2VuZC5weXgKK2luZGV4IDYzMWE3YmQ2ZGRlLi5mNGU3ZWNiMTNmMCAxMDA2NDQKKy0t LSBhL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9tYXRyaXhfc2RwX2JhY2tlbmQucHl4Cisr KysgYi9zcmMvc2FnZS9udW1lcmljYWwvYmFja2VuZHMvbWF0cml4X3NkcF9iYWNrZW5kLnB5eAor QEAgLTU1LDcgKzU1LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhTRFBCYWNrZW5kKEdlbmVyaWNTRFBC YWNrZW5kKToKKyAgICAgICAgICAgICBiYXNlX3JpbmcgPSBRUQorICAgICAgICAgc2VsZi5fYmFz ZV9yaW5nID0gYmFzZV9yaW5nCisgCistICAgIGNwZGVmIGJhc2VfcmluZyhzZWxmKSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgYmFzZV9yaW5nKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBU aGUgYmFzZSByaW5nCisgCitAQCAtMTY2LDcgKzE2Niw3IEBAIGNkZWYgY2xhc3MgTWF0cml4U0RQ QmFja2VuZChHZW5lcmljU0RQQmFja2VuZCk6CisgICAgICAgICAgICAgc2VsZi5hZGRfdmFyaWFi bGUoKQorICAgICAgICAgcmV0dXJuIGxlbihzZWxmLm9iamVjdGl2ZV9mdW5jdGlvbikgLSAxCisg CistICAgIGNwZGVmIHNldF9zZW5zZShzZWxmLCBpbnQgc2Vuc2UpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBzZXRfc2Vuc2Uoc2VsZiwgaW50IHNlbnNlKToKKyAgICAgICAgICIiIgorICAgICAgICAg U2V0IHRoZSBkaXJlY3Rpb24gKG1heGltaXphdGlvbi9taW5pbWl6YXRpb24pLgorIAorQEAgLTE5 Miw3ICsxOTIsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeFNEUEJhY2tlbmQoR2VuZXJpY1NEUEJhY2tl bmQpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICBzZWxmLmlzX21heGltaXplID0gMAor IAorLSAgICBjcGRlZiBvYmplY3RpdmVfY29lZmZpY2llbnQoc2VsZiwgaW50IHZhcmlhYmxlLCBj b2VmZj1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgb2JqZWN0aXZlX2NvZWZmaWNpZW50KHNl bGYsIGludCB2YXJpYWJsZSwgY29lZmY9Tm9uZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFNl dCBvciBnZXQgdGhlIGNvZWZmaWNpZW50IG9mIGEgdmFyaWFibGUgaW4gdGhlIG9iamVjdGl2ZQor ICAgICAgICAgZnVuY3Rpb24KK0BAIC0yMjAsNyArMjIwLDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhT RFBCYWNrZW5kKEdlbmVyaWNTRFBCYWNrZW5kKToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAg ICAgcmV0dXJuIHNlbGYub2JqZWN0aXZlX2Z1bmN0aW9uW3ZhcmlhYmxlXQorIAorLSAgICBjcGRl ZiBzZXRfb2JqZWN0aXZlKHNlbGYsIGxpc3QgY29lZmYsIGQ9MC4wKSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgc2V0X29iamVjdGl2ZShzZWxmLCBsaXN0IGNvZWZmLCBkPTAuMCk6CisgICAgICAgICAi IiIKKyAgICAgICAgIFNldCB0aGUgb2JqZWN0aXZlIGZ1bmN0aW9uLgorIAorQEAgLTI0NSw3ICsy NDUsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeFNEUEJhY2tlbmQoR2VuZXJpY1NEUEJhY2tlbmQpOgor ICAgICAgICAgICAgIHNlbGYub2JqZWN0aXZlX2Z1bmN0aW9uW2ldID0gY29lZmZbaV0KKyAgICAg ICAgIG9ial9jb25zdGFudF90ZXJtID0gZAorIAorLSAgICBjcGRlZiBhZGRfbGluZWFyX2NvbnN0 cmFpbnQoc2VsZiwgY29lZmZpY2llbnRzLCBuYW1lPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBhZGRfbGluZWFyX2NvbnN0cmFpbnQoc2VsZiwgY29lZmZpY2llbnRzLCBuYW1lPU5vbmUpOgor ICAgICAgICAgIiIiCisgICAgICAgICBBZGQgYSBsaW5lYXIgY29uc3RyYWludC4KKyAKK0BAIC0y OTIsNyArMjkyLDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhTRFBCYWNrZW5kKEdlbmVyaWNTRFBCYWNr ZW5kKToKKyAgICAgICAgIHNlbGYubWF0cmljZXNfZGltW3NlbGYubnJvd3MoKV0gPSBtLmRpbWVu c2lvbnMoKVswXSAjCisgICAgICAgICBzZWxmLnJvd19uYW1lX3Zhci5hcHBlbmQobmFtZSkKKyAK Ky0gICAgY3BkZWYgYWRkX2xpbmVhcl9jb25zdHJhaW50cyhzZWxmLCBpbnQgbnVtYmVyLCBuYW1l cz1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgYWRkX2xpbmVhcl9jb25zdHJhaW50cyhzZWxm LCBpbnQgbnVtYmVyLCBuYW1lcz1Ob25lKToKKyAgICAgICAgICIiIgorICAgICAgICAgQWRkIGNv bnN0cmFpbnRzLgorIAorQEAgLTM3Myw3ICszNzMsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeFNEUEJh Y2tlbmQoR2VuZXJpY1NEUEJhY2tlbmQpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICBy ZXR1cm4gMAorIAorLSAgICBjcGRlZiBwcm9ibGVtX25hbWUoc2VsZiwgbmFtZT1Ob25lKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgcHJvYmxlbV9uYW1lKHNlbGYsIG5hbWU9Tm9uZSk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIFJldHVybiBvciBkZWZpbmUgdGhlIHByb2JsZW0ncyBuYW1lCisgCitA QCAtMzk2LDcgKzM5Niw3IEBAIGNkZWYgY2xhc3MgTWF0cml4U0RQQmFja2VuZChHZW5lcmljU0RQ QmFja2VuZCk6CisgICAgICAgICBzZWxmLm5hbWUgPSBuYW1lCisgCisgCistICAgIGNwZGVmIHJv dyhzZWxmLCBpbnQgaSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHJvdyhzZWxmLCBpbnQgaSk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBhIHJvdworIAorQEAgLTQzNiw3ICs0MzYsNyBA QCBjZGVmIGNsYXNzIE1hdHJpeFNEUEJhY2tlbmQoR2VuZXJpY1NEUEJhY2tlbmQpOgorICAgICAg ICAgICAgICAgICBtYXRyaWNlcy5hcHBlbmQobSkKKyAgICAgICAgIHJldHVybiAoaW5kaWNlcywg bWF0cmljZXMpCisgCistICAgIGNwZGVmIHJvd19uYW1lKHNlbGYsIGludCBpbmRleCkgbm9leGNl cHQ6CisrICAgIGNwZGVmIHJvd19uYW1lKHNlbGYsIGludCBpbmRleCk6CisgICAgICAgICAiIiIK KyAgICAgICAgIFJldHVybiB0aGUgYGBpbmRleGBgIHRoIHJvdyBuYW1lCisgCitAQCAtNDU3LDcg KzQ1Nyw3IEBAIGNkZWYgY2xhc3MgTWF0cml4U0RQQmFja2VuZChHZW5lcmljU0RQQmFja2VuZCk6 CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYucm93X25hbWVfdmFyW2luZGV4XQorICAgICAgICAg cmV0dXJuICJjb25zdHJhaW50XyIgKyByZXByKGluZGV4KQorIAorLSAgICBjcGRlZiBjb2xfbmFt ZShzZWxmLCBpbnQgaW5kZXgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjb2xfbmFtZShzZWxmLCBp bnQgaW5kZXgpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGBgaW5kZXhgYCB0 aCBjb2wgbmFtZQorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9w cGxfYmFja2VuZC5weXggYi9zcmMvc2FnZS9udW1lcmljYWwvYmFja2VuZHMvcHBsX2JhY2tlbmQu cHl4CitpbmRleCA4YmYxOGQ3MDA0Yi4uNzI1Y2ViZDRjM2EgMTAwNjQ0CistLS0gYS9zcmMvc2Fn ZS9udW1lcmljYWwvYmFja2VuZHMvcHBsX2JhY2tlbmQucHl4CisrKysgYi9zcmMvc2FnZS9udW1l cmljYWwvYmFja2VuZHMvcHBsX2JhY2tlbmQucHl4CitAQCAtOTEsMTQgKzkxLDE0IEBAIGNkZWYg Y2xhc3MgUFBMQmFja2VuZChHZW5lcmljQmFja2VuZCk6CisgICAgICAgICBlbHNlOgorICAgICAg ICAgICAgIHNlbGYuc2V0X3NlbnNlKC0xKQorIAorLSAgICBjcGRlZiBiYXNlX3Jpbmcoc2VsZikg bm9leGNlcHQ6CisrICAgIGNwZGVmIGJhc2VfcmluZyhzZWxmKToKKyAgICAgICAgIGZyb20gc2Fn ZS5yaW5ncy5yYXRpb25hbF9maWVsZCBpbXBvcnQgUVEKKyAgICAgICAgIHJldHVybiBRUQorIAor LSAgICBjcGRlZiB6ZXJvKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiB6ZXJvKHNlbGYpOgor ICAgICAgICAgcmV0dXJuIHNlbGYuYmFzZV9yaW5nKCkoMCkKKyAKKy0gICAgY3BkZWYgX19jb3B5 X18oc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9fY29weV9fKHNlbGYpOgorICAgICAgICAg IiIiCisgICAgICAgICBSZXR1cm5zIGEgY29weSBvZiBzZWxmLgorIAorQEAgLTM3OCw3ICszNzgs NyBAQCBjZGVmIGNsYXNzIFBQTEJhY2tlbmQoR2VuZXJpY0JhY2tlbmQpOgorICAgICAgICAgICAg ICAgICBzZWxmLmNvbF9uYW1lX3Zhci5hcHBlbmQoTm9uZSkKKyAgICAgICAgIHJldHVybiBsZW4o c2VsZi5vYmplY3RpdmVfZnVuY3Rpb24pIC0gMQorIAorLSAgICBjcGRlZiAgc2V0X3ZhcmlhYmxl X3R5cGUoc2VsZiwgaW50IHZhcmlhYmxlLCBpbnQgdnR5cGUpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiAgc2V0X3ZhcmlhYmxlX3R5cGUoc2VsZiwgaW50IHZhcmlhYmxlLCBpbnQgdnR5cGUpOgorICAg ICAgICAgIiIiCisgICAgICAgICBTZXQgdGhlIHR5cGUgb2YgYSB2YXJpYWJsZS4KKyAKK0BAIC00 MzEsNyArNDMxLDcgQEAgY2RlZiBjbGFzcyBQUExCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAg ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSW52YWxpZCB2YXJp YWJsZSB0eXBlOiB7fSIuZm9ybWF0KHZ0eXBlKSkKKyAKKy0gICAgY3BkZWYgc2V0X3NlbnNlKHNl bGYsIGludCBzZW5zZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHNldF9zZW5zZShzZWxmLCBpbnQg c2Vuc2UpOgorICAgICAgICAgIiIiCisgICAgICAgICBTZXQgdGhlIGRpcmVjdGlvbiAobWF4aW1p emF0aW9uL21pbmltaXphdGlvbikuCisgCitAQCAtNDU3LDcgKzQ1Nyw3IEBAIGNkZWYgY2xhc3Mg UFBMQmFja2VuZChHZW5lcmljQmFja2VuZCk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAg IHNlbGYuaXNfbWF4aW1pemUgPSAwCisgCistICAgIGNwZGVmIG9iamVjdGl2ZV9jb2VmZmljaWVu dChzZWxmLCBpbnQgdmFyaWFibGUsIGNvZWZmPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBv YmplY3RpdmVfY29lZmZpY2llbnQoc2VsZiwgaW50IHZhcmlhYmxlLCBjb2VmZj1Ob25lKToKKyAg ICAgICAgICIiIgorICAgICAgICAgU2V0IG9yIGdldCB0aGUgY29lZmZpY2llbnQgb2YgYSB2YXJp YWJsZSBpbiB0aGUgb2JqZWN0aXZlCisgICAgICAgICBmdW5jdGlvbgorQEAgLTQ4NSw3ICs0ODUs NyBAQCBjZGVmIGNsYXNzIFBQTEJhY2tlbmQoR2VuZXJpY0JhY2tlbmQpOgorICAgICAgICAgZWxz ZToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZi5vYmplY3RpdmVfZnVuY3Rpb25bdmFyaWFibGVd CisgCistICAgIGNwZGVmIHNldF9vYmplY3RpdmUoc2VsZiwgbGlzdCBjb2VmZiwgZD0wKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgc2V0X29iamVjdGl2ZShzZWxmLCBsaXN0IGNvZWZmLCBkPTApOgor ICAgICAgICAgIiIiCisgICAgICAgICBTZXQgdGhlIG9iamVjdGl2ZSBmdW5jdGlvbi4KKyAKK0BA IC01MjcsNyArNTI3LDcgQEAgY2RlZiBjbGFzcyBQUExCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToK KyAgICAgICAgICAgICBzZWxmLm9iamVjdGl2ZV9mdW5jdGlvbltpXSA9IGNvZWZmW2ldCisgICAg ICAgICBzZWxmLm9ial9jb25zdGFudF90ZXJtID0gUmF0aW9uYWwoZCkKKyAKKy0gICAgY3BkZWYg c2V0X3ZlcmJvc2l0eShzZWxmLCBpbnQgbGV2ZWwpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBzZXRf dmVyYm9zaXR5KHNlbGYsIGludCBsZXZlbCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFNldCB0 aGUgbG9nICh2ZXJib3NpdHkpIGxldmVsLiBOb3QgSW1wbGVtZW50ZWQuCisgCitAQCAtNTM4LDcg KzUzOCw3IEBAIGNkZWYgY2xhc3MgUFBMQmFja2VuZChHZW5lcmljQmFja2VuZCk6CisgICAgICAg ICAgICAgc2FnZTogcC5zZXRfdmVyYm9zaXR5KDApCisgICAgICAgICAiIiIKKyAKKy0gICAgY3Bk ZWYgYWRkX2xpbmVhcl9jb25zdHJhaW50KHNlbGYsIGNvZWZmaWNpZW50cywgbG93ZXJfYm91bmQs IHVwcGVyX2JvdW5kLCBuYW1lPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBhZGRfbGluZWFy X2NvbnN0cmFpbnQoc2VsZiwgY29lZmZpY2llbnRzLCBsb3dlcl9ib3VuZCwgdXBwZXJfYm91bmQs IG5hbWU9Tm9uZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEFkZCBhIGxpbmVhciBjb25zdHJh aW50LgorIAorQEAgLTU5NCw3ICs1OTQsNyBAQCBjZGVmIGNsYXNzIFBQTEJhY2tlbmQoR2VuZXJp Y0JhY2tlbmQpOgorICAgICAgICAgc2VsZi5yb3dfdXBwZXJfYm91bmQuYXBwZW5kKHVwcGVyX2Jv dW5kKQorICAgICAgICAgc2VsZi5yb3dfbmFtZV92YXIuYXBwZW5kKG5hbWUpCisgCistICAgIGNw ZGVmIGFkZF9jb2woc2VsZiwgaW5kaWNlcywgY29lZmZzKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg YWRkX2NvbChzZWxmLCBpbmRpY2VzLCBjb2VmZnMpOgorICAgICAgICAgIiIiCisgICAgICAgICBB ZGQgYSBjb2x1bW4uCisgCitAQCAtNjM4LDcgKzYzOCw3IEBAIGNkZWYgY2xhc3MgUFBMQmFja2Vu ZChHZW5lcmljQmFja2VuZCk6CisgICAgICAgICBzZWxmLm9iamVjdGl2ZV9mdW5jdGlvbi5hcHBl bmQoMCkKKyAgICAgICAgIHNlbGYuY29sX25hbWVfdmFyLmFwcGVuZChOb25lKQorIAorLSAgICBj cGRlZiBhZGRfbGluZWFyX2NvbnN0cmFpbnRzKHNlbGYsIGludCBudW1iZXIsIGxvd2VyX2JvdW5k LCB1cHBlcl9ib3VuZCwgbmFtZXM9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGFkZF9saW5l YXJfY29uc3RyYWludHMoc2VsZiwgaW50IG51bWJlciwgbG93ZXJfYm91bmQsIHVwcGVyX2JvdW5k LCBuYW1lcz1Ob25lKToKKyAgICAgICAgICIiIgorICAgICAgICAgQWRkIGNvbnN0cmFpbnRzLgor IAorQEAgLTcyOCw3ICs3MjgsNyBAQCBjZGVmIGNsYXNzIFBQTEJhY2tlbmQoR2VuZXJpY0JhY2tl bmQpOgorIAorICAgICAgICAgcmV0dXJuIDAKKyAKKy0gICAgY3BkZWYgZ2V0X29iamVjdGl2ZV92 YWx1ZShzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZ2V0X29iamVjdGl2ZV92YWx1ZShzZWxm KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBleGFjdCB2YWx1ZSBvZiB0aGUg b2JqZWN0aXZlIGZ1bmN0aW9uLgorIAorQEAgLTc2Myw3ICs3NjMsNyBAQCBjZGVmIGNsYXNzIFBQ TEJhY2tlbmQoR2VuZXJpY0JhY2tlbmQpOgorICAgICAgICAgYW5zID0gUmF0aW9uYWwoc2VsZi5t aXAub3B0aW1hbF92YWx1ZSgpKQorICAgICAgICAgcmV0dXJuIGFucyAvIHNlbGYub2JqX2Rlbm9t aW5hdG9yICsgc2VsZi5vYmpfY29uc3RhbnRfdGVybQorIAorLSAgICBjcGRlZiBnZXRfdmFyaWFi bGVfdmFsdWUoc2VsZiwgaW50IHZhcmlhYmxlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZ2V0X3Zh cmlhYmxlX3ZhbHVlKHNlbGYsIGludCB2YXJpYWJsZSk6CisgICAgICAgICAiIiIKKyAgICAgICAg IFJldHVybiB0aGUgdmFsdWUgb2YgYSB2YXJpYWJsZSBnaXZlbiBieSB0aGUgc29sdmVyLgorIAor QEAgLTg0Myw3ICs4NDMsNyBAQCBjZGVmIGNsYXNzIFBQTEJhY2tlbmQoR2VuZXJpY0JhY2tlbmQp OgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXR1cm4gMAorIAorLSAgICBjcGRlZiBw cm9ibGVtX25hbWUoc2VsZiwgbmFtZT1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcHJvYmxl bV9uYW1lKHNlbGYsIG5hbWU9Tm9uZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBv ciBkZWZpbmUgdGhlIHByb2JsZW0ncyBuYW1lCisgCitAQCAtODY0LDcgKzg2NCw3IEBAIGNkZWYg Y2xhc3MgUFBMQmFja2VuZChHZW5lcmljQmFja2VuZCk6CisgICAgICAgICAgICAgcmV0dXJuIHNl bGYubmFtZQorICAgICAgICAgc2VsZi5uYW1lID0gbmFtZQorIAorLSAgICBjcGRlZiByb3coc2Vs ZiwgaW50IGkpIG5vZXhjZXB0OgorKyAgICBjcGRlZiByb3coc2VsZiwgaW50IGkpOgorICAgICAg ICAgIiIiCisgICAgICAgICBSZXR1cm4gYSByb3cKKyAKK0BAIC04OTksNyArODk5LDcgQEAgY2Rl ZiBjbGFzcyBQUExCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAgICAgICAgICAgICAgICAgY29l Zi5hcHBlbmQoc2VsZi5NYXRyaXhbaV1bal0pCisgICAgICAgICByZXR1cm4gKGlkeCwgY29lZikK KyAKKy0gICAgY3BkZWYgcm93X2JvdW5kcyhzZWxmLCBpbnQgaW5kZXgpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiByb3dfYm91bmRzKHNlbGYsIGludCBpbmRleCk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIFJldHVybiB0aGUgYm91bmRzIG9mIGEgc3BlY2lmaWMgY29uc3RyYWludC4KKyAKK0BAIC05 MjcsNyArOTI3LDcgQEAgY2RlZiBjbGFzcyBQUExCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAg ICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIChzZWxmLnJvd19sb3dlcl9ib3VuZFtpbmRleF0s IHNlbGYucm93X3VwcGVyX2JvdW5kW2luZGV4XSkKKyAKKy0gICAgY3BkZWYgY29sX2JvdW5kcyhz ZWxmLCBpbnQgaW5kZXgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjb2xfYm91bmRzKHNlbGYsIGlu dCBpbmRleCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYm91bmRzIG9mIGEg c3BlY2lmaWMgdmFyaWFibGUuCisgCitAQCAtMTAxOSw3ICsxMDE5LDcgQEAgY2RlZiBjbGFzcyBQ UExCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJu IGluZGV4IG5vdCBpbiBzZWxmLmludGVnZXJfdmFyaWFibGVzCisgCistICAgIGNwZGVmIHJvd19u YW1lKHNlbGYsIGludCBpbmRleCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHJvd19uYW1lKHNlbGYs IGludCBpbmRleCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYGBpbmRleGBg IHRoIHJvdyBuYW1lCisgCitAQCAtMTAzOSw3ICsxMDM5LDcgQEAgY2RlZiBjbGFzcyBQUExCYWNr ZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZi5yb3dfbmFtZV92 YXJbaW5kZXhdCisgICAgICAgICByZXR1cm4gImNvbnN0cmFpbnRfIiArIHJlcHIoaW5kZXgpCisg CistICAgIGNwZGVmIGNvbF9uYW1lKHNlbGYsIGludCBpbmRleCkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIGNvbF9uYW1lKHNlbGYsIGludCBpbmRleCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJl dHVybiB0aGUgYGBpbmRleGBgIHRoIGNvbCBuYW1lCisgCitAQCAtMTA2Myw3ICsxMDYzLDcgQEAg Y2RlZiBjbGFzcyBQUExCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAgICAgICAgICAgICByZXR1 cm4gc2VsZi5jb2xfbmFtZV92YXJbaW5kZXhdCisgICAgICAgICByZXR1cm4gInhfIiArIHJlcHIo aW5kZXgpCisgCistICAgIGNwZGVmIHZhcmlhYmxlX3VwcGVyX2JvdW5kKHNlbGYsIGludCBpbmRl eCwgdmFsdWUgPSBGYWxzZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHZhcmlhYmxlX3VwcGVyX2Jv dW5kKHNlbGYsIGludCBpbmRleCwgdmFsdWUgPSBGYWxzZSk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIFJldHVybiBvciBkZWZpbmUgdGhlIHVwcGVyIGJvdW5kIG9uIGEgdmFyaWFibGUKKyAKK0BA IC0xMDk1LDcgKzEwOTUsNyBAQCBjZGVmIGNsYXNzIFBQTEJhY2tlbmQoR2VuZXJpY0JhY2tlbmQp OgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZi5jb2xfdXBwZXJfYm91 bmRbaW5kZXhdCisgCistICAgIGNwZGVmIHZhcmlhYmxlX2xvd2VyX2JvdW5kKHNlbGYsIGludCBp bmRleCwgdmFsdWUgPSBGYWxzZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHZhcmlhYmxlX2xvd2Vy X2JvdW5kKHNlbGYsIGludCBpbmRleCwgdmFsdWUgPSBGYWxzZSk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIFJldHVybiBvciBkZWZpbmUgdGhlIGxvd2VyIGJvdW5kIG9uIGEgdmFyaWFibGUKKyAK K2RpZmYgLS1naXQgYS9zcmMvc2FnZS9udW1lcmljYWwvYmFja2VuZHMvc2NpcF9iYWNrZW5kLnB4 ZCBiL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9zY2lwX2JhY2tlbmQucHhkCitpbmRleCA5 M2YxYjgxYWI5Ni4uMGNkMDYwMGY5NTUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9udW1lcmljYWwv YmFja2VuZHMvc2NpcF9iYWNrZW5kLnB4ZAorKysrIGIvc3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tl bmRzL3NjaXBfYmFja2VuZC5weGQKK0BAIC0xNiw2ICsxNiw2IEBAIGNkZWYgY2xhc3MgU0NJUEJh Y2tlbmQoR2VuZXJpY0JhY2tlbmQpOgorICAgICBjZGVmIG9iamVjdCB2YXJpYWJsZXMKKyAgICAg Y2RlZiBvYmplY3QgY29uc3RyYWludHMKKyAKKy0gICAgY3BkZWYgX2dldF9tb2RlbChzZWxmKSBu b2V4Y2VwdAorLSAgICBjcGRlZiBnZXRfcm93X3ByaW0oc2VsZiwgaW50IGkpIG5vZXhjZXB0Cist ICAgIGNwZGVmIHdyaXRlX2NpcChzZWxmLCBmaWxlbmFtZSkgbm9leGNlcHQKKysgICAgY3BkZWYg X2dldF9tb2RlbChzZWxmKQorKyAgICBjcGRlZiBnZXRfcm93X3ByaW0oc2VsZiwgaW50IGkpCisr ICAgIGNwZGVmIHdyaXRlX2NpcChzZWxmLCBmaWxlbmFtZSkKK2RpZmYgLS1naXQgYS9zcmMvc2Fn ZS9udW1lcmljYWwvYmFja2VuZHMvc2NpcF9iYWNrZW5kLnB5eCBiL3NyYy9zYWdlL251bWVyaWNh bC9iYWNrZW5kcy9zY2lwX2JhY2tlbmQucHl4CitpbmRleCBiZWMzYmRlMTYwZi4uYWQ1MzY1OTg1 N2IgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9udW1lcmljYWwvYmFja2VuZHMvc2NpcF9iYWNrZW5k LnB5eAorKysrIGIvc3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL3NjaXBfYmFja2VuZC5weXgK K0BAIC04MCw3ICs4MCw3IEBAIGNkZWYgY2xhc3MgU0NJUEJhY2tlbmQoR2VuZXJpY0JhY2tlbmQp OgorICAgICAgICAgICAgIHNlbGYuY29uc3RyYWludHMgPSBzZWxmLm1vZGVsLmdldENvbnNzKCkK KyAgICAgICAgIHJldHVybiBzZWxmLmNvbnN0cmFpbnRzCisgCistICAgIGNwZGVmIF9nZXRfbW9k ZWwoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9nZXRfbW9kZWwoc2VsZik6CisgICAgICAg ICAiIiIKKyAgICAgICAgIEdldCB0aGUgbW9kZWwgYXMgYSBweXNjaXBvcHQgTW9kZWwuCisgCitA QCAtMTc2LDcgKzE3Niw3IEBAIGNkZWYgY2xhc3MgU0NJUEJhY2tlbmQoR2VuZXJpY0JhY2tlbmQp OgorIAorICAgICAgICAgcmV0dXJuIGluZGV4CisgCistICAgIGNwZGVmIHNldF92YXJpYWJsZV90 eXBlKHNlbGYsIGludCB2YXJpYWJsZSwgaW50IHZ0eXBlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg c2V0X3ZhcmlhYmxlX3R5cGUoc2VsZiwgaW50IHZhcmlhYmxlLCBpbnQgdnR5cGUpOgorICAgICAg ICAgIiIiCisgICAgICAgICBTZXQgdGhlIHR5cGUgb2YgYSB2YXJpYWJsZQorIAorQEAgLTIwNyw3 ICsyMDcsNyBAQCBjZGVmIGNsYXNzIFNDSVBCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAgICAg ICAgIHZ0eXBlbmFtZXMgPSB7MTogJ0knLCAwOiAnQicsIC0xOiAnQyd9CisgICAgICAgICBzZWxm Lm1vZGVsLmNoZ1ZhclR5cGUodmFyPXNlbGYudmFyaWFibGVzW3ZhcmlhYmxlXSwgdnR5cGU9dnR5 cGVuYW1lc1t2dHlwZV0pCisgCistICAgIGNwZGVmIHNldF9zZW5zZShzZWxmLCBpbnQgc2Vuc2Up IG5vZXhjZXB0OgorKyAgICBjcGRlZiBzZXRfc2Vuc2Uoc2VsZiwgaW50IHNlbnNlKToKKyAgICAg ICAgICIiIgorICAgICAgICAgU2V0IHRoZSBkaXJlY3Rpb24gKG1heGltaXphdGlvbi9taW5pbWl6 YXRpb24pLgorIAorQEAgLTIzNyw3ICsyMzcsNyBAQCBjZGVmIGNsYXNzIFNDSVBCYWNrZW5kKEdl bmVyaWNCYWNrZW5kKToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmFpc2UgQXNzZXJ0 aW9uRXJyb3IoInNlbnNlIG11c3QgYmUgZWl0aGVyIDEgb3IgLTEiKQorIAorLSAgICBjcGRlZiBv YmplY3RpdmVfY29lZmZpY2llbnQoc2VsZiwgaW50IHZhcmlhYmxlLCBjb2VmZj1Ob25lKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgb2JqZWN0aXZlX2NvZWZmaWNpZW50KHNlbGYsIGludCB2YXJpYWJs ZSwgY29lZmY9Tm9uZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFNldCBvciBnZXQgdGhlIGNv ZWZmaWNpZW50IG9mIGEgdmFyaWFibGUgaW4gdGhlIG9iamVjdGl2ZSBmdW5jdGlvbgorIAorQEAg LTI3MCw3ICsyNzAsNyBAQCBjZGVmIGNsYXNzIFNDSVBCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToK KyAgICAgICAgICAgICBsaW5mdW4gPSBzdW0oW2UgKiBjIGZvciBlLCBjIGluIG9iamV4cHIudGVy bXMuaXRlcml0ZW1zKCkgaWYgZSAhPSB2YXJdKSArIHZhciAqIGNvZWZmCisgICAgICAgICAgICAg c2VsZi5tb2RlbC5zZXRPYmplY3RpdmUobGluZnVuLCBzZW5zZT1zZWxmLm1vZGVsLmdldE9iamVj dGl2ZVNlbnNlKCkpCisgCistICAgIGNwZGVmIHByb2JsZW1fbmFtZShzZWxmLCBuYW1lPU5vbmUp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBwcm9ibGVtX25hbWUoc2VsZiwgbmFtZT1Ob25lKToKKyAg ICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIG9yIGRlZmluZSB0aGUgcHJvYmxlbSdzIG5hbWUK KyAKK0BAIC0yOTIsNyArMjkyLDcgQEAgY2RlZiBjbGFzcyBTQ0lQQmFja2VuZChHZW5lcmljQmFj a2VuZCk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHNlbGYubW9kZWwuc2V0UHJvYk5h bWUobmFtZSkKKyAKKy0gICAgY3BkZWYgc2V0X29iamVjdGl2ZShzZWxmLCBsaXN0IGNvZWZmLCBk PTAuMCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHNldF9vYmplY3RpdmUoc2VsZiwgbGlzdCBjb2Vm ZiwgZD0wLjApOgorICAgICAgICAgIiIiCisgICAgICAgICBTZXQgdGhlIG9iamVjdGl2ZSBmdW5j dGlvbi4KKyAKK0BAIC0zMTgsNyArMzE4LDcgQEAgY2RlZiBjbGFzcyBTQ0lQQmFja2VuZChHZW5l cmljQmFja2VuZCk6CisgICAgICAgICBsaW5mdW4gPSBzdW0oW2MgKiB4IGZvciBjLCB4IGluIHpp cChjb2VmZiwgc2VsZi52YXJpYWJsZXMpXSkgKyBkCisgICAgICAgICBzZWxmLm1vZGVsLnNldE9i amVjdGl2ZShsaW5mdW4sIHNlbnNlPXNlbGYubW9kZWwuZ2V0T2JqZWN0aXZlU2Vuc2UoKSkKKyAK Ky0gICAgY3BkZWYgc2V0X3ZlcmJvc2l0eShzZWxmLCBpbnQgbGV2ZWwpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBzZXRfdmVyYm9zaXR5KHNlbGYsIGludCBsZXZlbCk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIFNldCB0aGUgdmVyYm9zaXR5IGxldmVsCisgCitAQCAtMzQ2LDcgKzM0Niw3IEBAIGNk ZWYgY2xhc3MgU0NJUEJhY2tlbmQoR2VuZXJpY0JhY2tlbmQpOgorICAgICAgICAgZWxzZToKKyAg ICAgICAgICAgICByYWlzZSBBc3NlcnRpb25FcnJvcignbGV2ZWwgbXVzdCBiZSAiMCIgb3IgIjEi JykKKyAKKy0gICAgY3BkZWYgcmVtb3ZlX2NvbnN0cmFpbnQoc2VsZiwgaW50IGkpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiByZW1vdmVfY29uc3RyYWludChzZWxmLCBpbnQgaSk6CisgICAgICAgICBy IiIiCisgICAgICAgICBSZW1vdmUgYSBjb25zdHJhaW50IGZyb20gc2VsZi4KKyAKK0BAIC0zODQs NyArMzg0LDcgQEAgY2RlZiBjbGFzcyBTQ0lQQmFja2VuZChHZW5lcmljQmFja2VuZCk6CisgICAg ICAgICBzZWxmLm1vZGVsLmRlbENvbnMoc2VsZi5nZXRfY29uc3RyYWludHMoKVtpXSkKKyAgICAg ICAgIHNlbGYuY29uc3RyYWludHMgPSBOb25lCisgCistICAgIGNwZGVmIHJlbW92ZV9jb25zdHJh aW50cyhzZWxmLCBjb25zdHJhaW50cykgbm9leGNlcHQ6CisrICAgIGNwZGVmIHJlbW92ZV9jb25z dHJhaW50cyhzZWxmLCBjb25zdHJhaW50cyk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZW1v dmUgc2V2ZXJhbCBjb25zdHJhaW50cy4KKyAKK0BAIC00MjAsNyArNDIwLDcgQEAgY2RlZiBjbGFz cyBTQ0lQQmFja2VuZChHZW5lcmljQmFja2VuZCk6CisgICAgICAgICAgICAgc2VsZi5tb2RlbC5k ZWxDb25zKGNvbnN0cmFpbnQpCisgICAgICAgICBzZWxmLmNvbnN0cmFpbnRzID0gTm9uZQorIAor LSAgICBjcGRlZiBhZGRfbGluZWFyX2NvbnN0cmFpbnQoc2VsZiwgY29lZmZpY2llbnRzLCBsb3dl cl9ib3VuZCwgdXBwZXJfYm91bmQsIG5hbWU9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGFk ZF9saW5lYXJfY29uc3RyYWludChzZWxmLCBjb2VmZmljaWVudHMsIGxvd2VyX2JvdW5kLCB1cHBl cl9ib3VuZCwgbmFtZT1Ob25lKToKKyAgICAgICAgICIiIgorICAgICAgICAgQWRkIGEgbGluZWFy IGNvbnN0cmFpbnQuCisgCitAQCAtNDY4LDcgKzQ2OCw3IEBAIGNkZWYgY2xhc3MgU0NJUEJhY2tl bmQoR2VuZXJpY0JhY2tlbmQpOgorICAgICAgICAgc2VsZi5tb2RlbC5hZGRDb25zKGNvbnMsIG5h bWU9bmFtZSkKKyAgICAgICAgIHNlbGYuY29uc3RyYWludHMgPSBOb25lCisgCistICAgIGNwZGVm IHJvdyhzZWxmLCBpbnQgaW5kZXgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiByb3coc2VsZiwgaW50 IGluZGV4KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBhIHJvdworIAorQEAgLTUw NSw3ICs1MDUsNyBAQCBjZGVmIGNsYXNzIFNDSVBCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAg ICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKGNvZWZmKQorICAgICAgICAgcmV0dXJuIChpbmRpY2Vz LCB2YWx1ZXMpCisgCistICAgIGNwZGVmIHJvd19ib3VuZHMoc2VsZiwgaW50IGluZGV4KSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgcm93X2JvdW5kcyhzZWxmLCBpbnQgaW5kZXgpOgorICAgICAgICAg IiIiCisgICAgICAgICBSZXR1cm4gdGhlIGJvdW5kcyBvZiBhIHNwZWNpZmljIGNvbnN0cmFpbnQu CisgCitAQCAtNTM4LDcgKzUzOCw3IEBAIGNkZWYgY2xhc3MgU0NJUEJhY2tlbmQoR2VuZXJpY0Jh Y2tlbmQpOgorICAgICAgICAgICAgIHJocyA9IE5vbmUKKyAgICAgICAgIHJldHVybiAobGhzLCBy aHMpCisgCistICAgIGNwZGVmIGNvbF9ib3VuZHMoc2VsZiwgaW50IGluZGV4KSBub2V4Y2VwdDoK KysgICAgY3BkZWYgY29sX2JvdW5kcyhzZWxmLCBpbnQgaW5kZXgpOgorICAgICAgICAgIiIiCisg ICAgICAgICBSZXR1cm4gdGhlIGJvdW5kcyBvZiBhIHNwZWNpZmljIHZhcmlhYmxlLgorIAorQEAg LTU3Myw3ICs1NzMsNyBAQCBjZGVmIGNsYXNzIFNDSVBCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToK KyAgICAgICAgICAgICB1YiA9IE5vbmUKKyAgICAgICAgIHJldHVybiAobGIsIHViKQorIAorLSAg ICBjcGRlZiBhZGRfY29sKHNlbGYsIGluZGljZXMsIGNvZWZmcykgbm9leGNlcHQ6CisrICAgIGNw ZGVmIGFkZF9jb2woc2VsZiwgaW5kaWNlcywgY29lZmZzKToKKyAgICAgICAgICIiIgorICAgICAg ICAgQWRkIGEgY29sdW1uLgorIAorQEAgLTY5OSw3ICs2OTksNyBAQCBjZGVmIGNsYXNzIFNDSVBC YWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAgICAgICAgICMgICAgIHJhaXNlIE1JUFNvbHZlckV4 Y2VwdGlvbigiU0NJUDogVGltZSBsaW1pdCByZWFjaGVkIikKKyAgICAgICAgIHJldHVybiAwCisg CistICAgIGNwZGVmIGdldF9vYmplY3RpdmVfdmFsdWUoc2VsZikgbm9leGNlcHQ6CisrICAgIGNw ZGVmIGdldF9vYmplY3RpdmVfdmFsdWUoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJl dHVybiB0aGUgdmFsdWUgb2YgdGhlIG9iamVjdGl2ZSBmdW5jdGlvbi4KKyAKK0BAIC03MjYsNyAr NzI2LDcgQEAgY2RlZiBjbGFzcyBTQ0lQQmFja2VuZChHZW5lcmljQmFja2VuZCk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLm1vZGVsLmdldE9ialZhbCgpCisgCistICAgIGNw ZGVmIGJlc3Rfa25vd25fb2JqZWN0aXZlX2JvdW5kKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBiZXN0X2tub3duX29iamVjdGl2ZV9ib3VuZChzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAg ICAgIFJldHVybiB0aGUgdmFsdWUgb2YgdGhlIGN1cnJlbnRseSBiZXN0IGtub3duIGJvdW5kLgor IAorQEAgLTc2MCw3ICs3NjAsNyBAQCBjZGVmIGNsYXNzIFNDSVBCYWNrZW5kKEdlbmVyaWNCYWNr ZW5kKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYubW9kZWwuZ2V0UHJpbWFs Ym91bmQoKQorIAorLSAgICBjcGRlZiBnZXRfcmVsYXRpdmVfb2JqZWN0aXZlX2dhcChzZWxmKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgZ2V0X3JlbGF0aXZlX29iamVjdGl2ZV9nYXAoc2VsZik6Cisg ICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHJlbGF0aXZlIG9iamVjdGl2ZSBnYXAg b2YgdGhlIGJlc3Qga25vd24gc29sdXRpb24uCisgCitAQCAtODAzLDcgKzgwMyw3IEBAIGNkZWYg Y2xhc3MgU0NJUEJhY2tlbmQoR2VuZXJpY0JhY2tlbmQpOgorICAgICAgICAgIiIiCisgICAgICAg ICByZXR1cm4gc2VsZi5tb2RlbC5nZXRHYXAoKQorIAorLSAgICBjcGRlZiBnZXRfdmFyaWFibGVf dmFsdWUoc2VsZiwgaW50IHZhcmlhYmxlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZ2V0X3Zhcmlh YmxlX3ZhbHVlKHNlbGYsIGludCB2YXJpYWJsZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJl dHVybiB0aGUgdmFsdWUgb2YgYSB2YXJpYWJsZSBnaXZlbiBieSB0aGUgc29sdmVyLgorIAorQEAg LTgzMCw3ICs4MzAsNyBAQCBjZGVmIGNsYXNzIFNDSVBCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToK KyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYubW9kZWwuZ2V0VmFsKHNlbGYudmFy aWFibGVzW3ZhcmlhYmxlXSkKKyAKKy0gICAgY3BkZWYgZ2V0X3Jvd19wcmltKHNlbGYsIGludCBp KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZ2V0X3Jvd19wcmltKHNlbGYsIGludCBpKToKKyAgICAg ICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgdmFsdWUgb2YgdGhlIGF1eGlsaWFyeSB2YXJp YWJsZSBhc3NvY2lhdGVkIHdpdGggaS10aCByb3cuCisgCitAQCAtOTE0LDcgKzkxNCw3IEBAIGNk ZWYgY2xhc3MgU0NJUEJhY2tlbmQoR2VuZXJpY0JhY2tlbmQpOgorICAgICAgICAgICAgIHJldHVy biBzZWxmLm1vZGVsLmdldE5Db25zcygpCisgICAgICAgICByZXR1cm4gbGVuKHNlbGYuZ2V0X2Nv bnN0cmFpbnRzKCkpCisgCistICAgIGNwZGVmIGNvbF9uYW1lKHNlbGYsIGludCBpbmRleCkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIGNvbF9uYW1lKHNlbGYsIGludCBpbmRleCk6CisgICAgICAgICAi IiIKKyAgICAgICAgIFJldHVybiB0aGUgYGBpbmRleGBgdGggY29sIG5hbWUKKyAKK0BAIC05MzMs NyArOTMzLDcgQEAgY2RlZiBjbGFzcyBTQ0lQQmFja2VuZChHZW5lcmljQmFja2VuZCk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLnZhcmlhYmxlc1tpbmRleF0ubmFtZQorIAor LSAgICBjcGRlZiByb3dfbmFtZShzZWxmLCBpbnQgaW5kZXgpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiByb3dfbmFtZShzZWxmLCBpbnQgaW5kZXgpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1 cm4gdGhlIGBgaW5kZXhgYCB0aCByb3cgbmFtZQorIAorQEAgLTEwMzUsNyArMTAzNSw3IEBAIGNk ZWYgY2xhc3MgU0NJUEJhY2tlbmQoR2VuZXJpY0JhY2tlbmQpOgorICAgICAgICAgIiIiCisgICAg ICAgICByZXR1cm4gc2VsZi5tb2RlbC5nZXRPYmplY3RpdmVTZW5zZSgpICE9ICdtaW5pbWl6ZScK KyAKKy0gICAgY3BkZWYgdmFyaWFibGVfdXBwZXJfYm91bmQoc2VsZiwgaW50IGluZGV4LCB2YWx1 ZT1GYWxzZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHZhcmlhYmxlX3VwcGVyX2JvdW5kKHNlbGYs IGludCBpbmRleCwgdmFsdWU9RmFsc2UpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4g b3IgZGVmaW5lIHRoZSB1cHBlciBib3VuZCBvbiBhIHZhcmlhYmxlCisgCitAQCAtMTA5Niw3ICsx MDk2LDcgQEAgY2RlZiBjbGFzcyBTQ0lQQmFja2VuZChHZW5lcmljQmFja2VuZCk6CisgICAgICAg ICBlbHNlOgorICAgICAgICAgICAgIHNlbGYubW9kZWwuY2hnVmFyVWIodmFyPXZhciwgdWI9dmFs dWUpCisgCistICAgIGNwZGVmIHZhcmlhYmxlX2xvd2VyX2JvdW5kKHNlbGYsIGludCBpbmRleCwg dmFsdWU9RmFsc2UpIG5vZXhjZXB0OgorKyAgICBjcGRlZiB2YXJpYWJsZV9sb3dlcl9ib3VuZChz ZWxmLCBpbnQgaW5kZXgsIHZhbHVlPUZhbHNlKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0 dXJuIG9yIGRlZmluZSB0aGUgbG93ZXIgYm91bmQgb24gYSB2YXJpYWJsZQorIAorQEAgLTExNTgs NyArMTE1OCw3IEBAIGNkZWYgY2xhc3MgU0NJUEJhY2tlbmQoR2VuZXJpY0JhY2tlbmQpOgorICAg ICAgICAgZWxzZToKKyAgICAgICAgICAgICBzZWxmLm1vZGVsLmNoZ1ZhckxiKHZhcj12YXIsIGxi PXZhbHVlKQorIAorLSAgICBjcGRlZiB3cml0ZV9jaXAoc2VsZiwgZmlsZW5hbWUpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiB3cml0ZV9jaXAoc2VsZiwgZmlsZW5hbWUpOgorICAgICAgICAgIiIiCisg ICAgICAgICBXcml0ZSB0aGUgcHJvYmxlbSB0byBhIC5jaXAgZmlsZQorIAorQEAgLTExODEsNyAr MTE4MSw3IEBAIGNkZWYgY2xhc3MgU0NJUEJhY2tlbmQoR2VuZXJpY0JhY2tlbmQpOgorICAgICAg ICAgIiIiCisgICAgICAgICBzZWxmLm1vZGVsLndyaXRlUHJvYmxlbShmaWxlbmFtZSkKKyAKKy0g ICAgY3BkZWYgd3JpdGVfbHAoc2VsZiwgZmlsZW5hbWUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiB3 cml0ZV9scChzZWxmLCBmaWxlbmFtZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFdyaXRlIHRo ZSBwcm9ibGVtIHRvIGEgLmxwIGZpbGUKKyAKK0BAIC0xMjEwLDcgKzEyMTAsNyBAQCBjZGVmIGNs YXNzIFNDSVBCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKKyAKKyAgICAgICAgIHNlbGYubW9kZWwu d3JpdGVQcm9ibGVtKGZpbGVuYW1lc3RyKQorIAorLSAgICBjcGRlZiB3cml0ZV9tcHMoc2VsZiwg ZmlsZW5hbWUsIGludCBtb2Rlcm4pIG5vZXhjZXB0OgorKyAgICBjcGRlZiB3cml0ZV9tcHMoc2Vs ZiwgZmlsZW5hbWUsIGludCBtb2Rlcm4pOgorICAgICAgICAgIiIiCisgICAgICAgICBXcml0ZSB0 aGUgcHJvYmxlbSB0byBhIC5tcHMgZmlsZQorIAorQEAgLTEyMzksNyArMTIzOSw3IEBAIGNkZWYg Y2xhc3MgU0NJUEJhY2tlbmQoR2VuZXJpY0JhY2tlbmQpOgorIAorICAgICAgICAgc2VsZi5tb2Rl bC53cml0ZVByb2JsZW0oZmlsZW5hbWVzdHIpCisgCistICAgIGNwZGVmIF9fY29weV9fKHNlbGYp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBfX2NvcHlfXyhzZWxmKToKKyAgICAgICAgICIiIgorICAg ICAgICAgUmV0dXJuIGEgY29weSBvZiBzZWxmLgorIAorQEAgLTEyNjAsNyArMTI2MCw3IEBAIGNk ZWYgY2xhc3MgU0NJUEJhY2tlbmQoR2VuZXJpY0JhY2tlbmQpOgorICAgICAgICAgY3AudmFyaWFi bGVzID0gY3AubW9kZWwuZ2V0VmFycygpCisgICAgICAgICByZXR1cm4gY3AKKyAKKy0gICAgY3Bk ZWYgc29sdmVyX3BhcmFtZXRlcihzZWxmLCBuYW1lLCB2YWx1ZT1Ob25lKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgc29sdmVyX3BhcmFtZXRlcihzZWxmLCBuYW1lLCB2YWx1ZT1Ob25lKToKKyAgICAg ICAgICIiIgorICAgICAgICAgUmV0dXJuIG9yIGRlZmluZSBhIHNvbHZlciBwYXJhbWV0ZXIKKyAK K2RpZmYgLS1naXQgYS9zcmMvc2FnZS9udW1lcmljYWwvbGluZWFyX2Z1bmN0aW9ucy5weGQgYi9z cmMvc2FnZS9udW1lcmljYWwvbGluZWFyX2Z1bmN0aW9ucy5weGQKK2luZGV4IDRhZDgzNmQ4ZDZk Li41NjhmMDRiNzVhZiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL251bWVyaWNhbC9saW5lYXJfZnVu Y3Rpb25zLnB4ZAorKysrIGIvc3JjL3NhZ2UvbnVtZXJpY2FsL2xpbmVhcl9mdW5jdGlvbnMucHhk CitAQCAtMSwzMCArMSwzMCBAQAorIGZyb20gc2FnZS5zdHJ1Y3R1cmUucGFyZW50IGNpbXBvcnQg UGFyZW50LCBQYXJlbnRfcmljaGNtcF9lbGVtZW50X3dpdGhvdXRfY29lcmNpb24KKyBmcm9tIHNh Z2Uuc3RydWN0dXJlLmVsZW1lbnQgY2ltcG9ydCBNb2R1bGVFbGVtZW50LCBSaW5nRWxlbWVudCwg RWxlbWVudAorIAorLWNwZGVmIGlzX0xpbmVhckZ1bmN0aW9uKHgpIG5vZXhjZXB0CisrY3BkZWYg aXNfTGluZWFyRnVuY3Rpb24oeCkKKyAKKyBjZGVmIGNsYXNzIExpbmVhckZ1bmN0aW9uT3JDb25z dHJhaW50KE1vZHVsZUVsZW1lbnQpOgorICAgICBwYXNzCisgCisgY2RlZiBjbGFzcyBMaW5lYXJG dW5jdGlvbnNQYXJlbnRfY2xhc3MoUGFyZW50KToKKy0gICAgY3BkZWYgX2VsZW1lbnRfY29uc3Ry dWN0b3JfKHNlbGYsIHgpIG5vZXhjZXB0CistICAgIGNwZGVmIF9jb2VyY2VfbWFwX2Zyb21fKHNl bGYsIFIpIG5vZXhjZXB0CisrICAgIGNwZGVmIF9lbGVtZW50X2NvbnN0cnVjdG9yXyhzZWxmLCB4 KQorKyAgICBjcGRlZiBfY29lcmNlX21hcF9mcm9tXyhzZWxmLCBSKQorICAgICBjZGVmIHB1Ymxp YyBfbXVsdGlwbGljYXRpb25fc3ltYm9sCisgCisgY2RlZiBjbGFzcyBMaW5lYXJGdW5jdGlvbihM aW5lYXJGdW5jdGlvbk9yQ29uc3RyYWludCk6CisgICAgIGNkZWYgZGljdCBfZgorLSAgICBjcGRl ZiBfYWRkXyhzZWxmLCBvdGhlcikgbm9leGNlcHQKKy0gICAgY3BkZWYgaXRlcml0ZW1zKHNlbGYp IG5vZXhjZXB0CistICAgIGNwZGVmIF9hY3RlZF91cG9uXyhzZWxmLCB4LCBiaW50IHNlbGZfb25f bGVmdCkgbm9leGNlcHQKKy0gICAgY3BkZWYgaXNfemVybyhzZWxmKSBub2V4Y2VwdAorLSAgICBj cGRlZiBlcXVhbHMoTGluZWFyRnVuY3Rpb24gbGVmdCwgTGluZWFyRnVuY3Rpb24gcmlnaHQpIG5v ZXhjZXB0CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIG90aGVyKQorKyAgICBjcGRlZiBpdGVyaXRl bXMoc2VsZikKKysgICAgY3BkZWYgX2FjdGVkX3Vwb25fKHNlbGYsIHgsIGJpbnQgc2VsZl9vbl9s ZWZ0KQorKyAgICBjcGRlZiBpc196ZXJvKHNlbGYpCisrICAgIGNwZGVmIGVxdWFscyhMaW5lYXJG dW5jdGlvbiBsZWZ0LCBMaW5lYXJGdW5jdGlvbiByaWdodCkKKyAKKyBjZGVmIGNsYXNzIExpbmVh ckNvbnN0cmFpbnRzUGFyZW50X2NsYXNzKFBhcmVudCk6CisgICAgIGNkZWYgTGluZWFyRnVuY3Rp b25zUGFyZW50X2NsYXNzIF9MRgorLSAgICBjcGRlZiBfZWxlbWVudF9jb25zdHJ1Y3Rvcl8oc2Vs ZiwgbGVmdCwgcmlnaHQ9PywgZXF1YWxpdHk9Pykgbm9leGNlcHQKKy0gICAgY3BkZWYgX2NvZXJj ZV9tYXBfZnJvbV8oc2VsZiwgUikgbm9leGNlcHQKKysgICAgY3BkZWYgX2VsZW1lbnRfY29uc3Ry dWN0b3JfKHNlbGYsIGxlZnQsIHJpZ2h0PT8sIGVxdWFsaXR5PT8pCisrICAgIGNwZGVmIF9jb2Vy Y2VfbWFwX2Zyb21fKHNlbGYsIFIpCisgCisgY2RlZiBjbGFzcyBMaW5lYXJDb25zdHJhaW50KExp bmVhckZ1bmN0aW9uT3JDb25zdHJhaW50KToKKyAgICAgY2RlZiBiaW50IGVxdWFsaXR5CisgICAg IGNkZWYgbGlzdCBjb25zdHJhaW50cworLSAgICBjcGRlZiBlcXVhbHMoTGluZWFyQ29uc3RyYWlu dCBsZWZ0LCBMaW5lYXJDb25zdHJhaW50IHJpZ2h0KSBub2V4Y2VwdAorKyAgICBjcGRlZiBlcXVh bHMoTGluZWFyQ29uc3RyYWludCBsZWZ0LCBMaW5lYXJDb25zdHJhaW50IHJpZ2h0KQorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL251bWVyaWNhbC9saW5lYXJfZnVuY3Rpb25zLnB5eCBiL3NyYy9zYWdl L251bWVyaWNhbC9saW5lYXJfZnVuY3Rpb25zLnB5eAoraW5kZXggMjFiMWQ4MGVmYWUuLjljN2Ux MDc0NGYyIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbnVtZXJpY2FsL2xpbmVhcl9mdW5jdGlvbnMu cHl4CisrKysgYi9zcmMvc2FnZS9udW1lcmljYWwvbGluZWFyX2Z1bmN0aW9ucy5weXgKK0BAIC0x MTQsNyArMTE0LDcgQEAgZnJvbSBzYWdlLm1pc2MuY2FjaGVmdW5jIGltcG9ydCBjYWNoZWRfZnVu Y3Rpb24KKyAjCisgIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgCistY3BkZWYgaXNfTGluZWFyRnVu Y3Rpb24oeCkgbm9leGNlcHQ6CisrY3BkZWYgaXNfTGluZWFyRnVuY3Rpb24oeCk6CisgICAgICIi IgorICAgICBUZXN0IHdoZXRoZXIgYGB4YGAgaXMgYSBsaW5lYXIgZnVuY3Rpb24KKyAKK0BAIC02 NjMsNyArNjYzLDcgQEAgY2RlZiBjbGFzcyBMaW5lYXJGdW5jdGlvbnNQYXJlbnRfY2xhc3MoUGFy ZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuICdMaW5lYXIgZnVuY3Rpb25zIG92 ZXIgJyArIHN0cihzZWxmLmJhc2VfcmluZygpKQorIAorLSAgICBjcGRlZiBfZWxlbWVudF9jb25z dHJ1Y3Rvcl8oc2VsZiwgeCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9lbGVtZW50X2NvbnN0cnVj dG9yXyhzZWxmLCB4KToKKyAgICAgICAgICIiIgorICAgICAgICAgQ29uc3RydWN0IGEgOmNsYXNz OmBMaW5lYXJGdW5jdGlvbmAgZnJvbSBgYHhgYC4KKyAKK0BAIC02OTMsNyArNjkzLDcgQEAgY2Rl ZiBjbGFzcyBMaW5lYXJGdW5jdGlvbnNQYXJlbnRfY2xhc3MoUGFyZW50KToKKyAgICAgICAgICAg ICByZXR1cm4gTGluZWFyRnVuY3Rpb24oc2VsZiwgKDxMaW5lYXJGdW5jdGlvbj54KS5fZikKKyAg ICAgICAgIHJldHVybiBMaW5lYXJGdW5jdGlvbihzZWxmLCB4KQorIAorLSAgICBjcGRlZiBfY29l cmNlX21hcF9mcm9tXyhzZWxmLCBSKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2NvZXJjZV9tYXBf ZnJvbV8oc2VsZiwgUik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEFsbG93IGNvZXJjaW9uIG9m IHNjYWxhcnMgaW50byBsaW5lYXIgZnVuY3Rpb25zLgorIAorQEAgLTgwMiw3ICs4MDIsNyBAQCBj ZGVmIGNsYXNzIExpbmVhckZ1bmN0aW9uKExpbmVhckZ1bmN0aW9uT3JDb25zdHJhaW50KToKKyAg ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgc2VsZi5fZiA9IHstMTogUihmKX0KKyAKKy0gICAg Y3BkZWYgaXRlcml0ZW1zKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBpdGVyaXRlbXMoc2Vs Zik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEl0ZXJhdGUgb3ZlciB0aGUgaW5kZXgsIGNvZWZm aWNpZW50IHBhaXJzLgorIAorQEAgLTkwNSw3ICs5MDUsNyBAQCBjZGVmIGNsYXNzIExpbmVhckZ1 bmN0aW9uKExpbmVhckZ1bmN0aW9uT3JDb25zdHJhaW50KToKKyAgICAgICAgIGV4Y2VwdCBLZXlF cnJvcjoKKyAgICAgICAgICAgICByZXR1cm4gc2VsZi5wYXJlbnQoKS5iYXNlX3JpbmcoKS56ZXJv KCkKKyAKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwgYikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9h ZGRfKHNlbGYsIGIpOgorICAgICAgICAgciIiIgorICAgICAgICAgRGVmaW5pbmcgdGhlICsgb3Bl cmF0b3IKKyAKK0BAIC05MjIsNyArOTIyLDcgQEAgY2RlZiBjbGFzcyBMaW5lYXJGdW5jdGlvbihM aW5lYXJGdW5jdGlvbk9yQ29uc3RyYWludCk6CisgICAgICAgICBQID0gc2VsZi5wYXJlbnQoKQor ICAgICAgICAgcmV0dXJuIFAoZSkKKyAKKy0gICAgY3BkZWYgX25lZ18oc2VsZikgbm9leGNlcHQ6 CisrICAgIGNwZGVmIF9uZWdfKHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgRGVmaW5p bmcgdGhlIC0gb3BlcmF0b3IgKG9wcG9zaXRlKS4KKyAKK0BAIC05MzYsNyArOTM2LDcgQEAgY2Rl ZiBjbGFzcyBMaW5lYXJGdW5jdGlvbihMaW5lYXJGdW5jdGlvbk9yQ29uc3RyYWludCk6CisgICAg ICAgICBQID0gc2VsZi5wYXJlbnQoKQorICAgICAgICAgcmV0dXJuIFAoe2lkOiAtY29lZmYgZm9y IGlkLCBjb2VmZiBpbiBzZWxmLl9mLml0ZXJpdGVtcygpfSkKKyAKKy0gICAgY3BkZWYgX3N1Yl8o c2VsZiwgYikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9zdWJfKHNlbGYsIGIpOgorICAgICAgICAg ciIiIgorICAgICAgICAgRGVmaW5pbmcgdGhlIC0gb3BlcmF0b3IgKHN1YnRyYWN0aW9uKS4KKyAK K0BAIC05NTUsNyArOTU1LDcgQEAgY2RlZiBjbGFzcyBMaW5lYXJGdW5jdGlvbihMaW5lYXJGdW5j dGlvbk9yQ29uc3RyYWludCk6CisgICAgICAgICBQID0gc2VsZi5wYXJlbnQoKQorICAgICAgICAg cmV0dXJuIFAoZSkKKyAKKy0gICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgYikgbm9leGNl cHQ6CisrICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IGIpOgorICAgICAgICAgciIiIgor ICAgICAgICAgTXVsdGlwbGljYXRpb24gYnkgc2NhbGFycworIAorQEAgLTk3MSw3ICs5NzEsNyBA QCBjZGVmIGNsYXNzIExpbmVhckZ1bmN0aW9uKExpbmVhckZ1bmN0aW9uT3JDb25zdHJhaW50KToK KyAgICAgICAgIFAgPSBzZWxmLnBhcmVudCgpCisgICAgICAgICByZXR1cm4gUChkaWN0KFsoaWQs Yipjb2VmZikgZm9yIChpZCwgY29lZmYpIGluIHNlbGYuX2YuaXRlcml0ZW1zKCldKSkKKyAKKy0g ICAgY3BkZWYgX2FjdGVkX3Vwb25fKHNlbGYsIHgsIGJpbnQgc2VsZl9vbl9sZWZ0KSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgX2FjdGVkX3Vwb25fKHNlbGYsIHgsIGJpbnQgc2VsZl9vbl9sZWZ0KToK KyAgICAgICAgICIiIgorICAgICAgICAgQWN0IHdpdGggc2NhbGFycyB0aGF0IGRvIG5vdCBoYXZl IGEgbmF0dXJhbCBjb2VyY2lvbiBpbnRvCisgICAgICAgICBgYHNlbGYuYmFzZV9yaW5nKClgYAor QEAgLTExMzAsNyArMTEzMCw3IEBAIGNkZWYgY2xhc3MgTGluZWFyRnVuY3Rpb24oTGluZWFyRnVu Y3Rpb25PckNvbnN0cmFpbnQpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXR1cm4g dAorIAorLSAgICBjcGRlZiBpc196ZXJvKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBpc196 ZXJvKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBUZXN0IHdoZXRoZXIgYGBzZWxmYGAg aXMgemVyby4KKyAKK0BAIC0xMTUwLDcgKzExNTAsNyBAQCBjZGVmIGNsYXNzIExpbmVhckZ1bmN0 aW9uKExpbmVhckZ1bmN0aW9uT3JDb25zdHJhaW50KToKKyAgICAgICAgICAgICAgICAgcmV0dXJu IEZhbHNlCisgICAgICAgICByZXR1cm4gVHJ1ZQorIAorLSAgICBjcGRlZiBlcXVhbHMoTGluZWFy RnVuY3Rpb24gbGVmdCwgTGluZWFyRnVuY3Rpb24gcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBlcXVhbHMoTGluZWFyRnVuY3Rpb24gbGVmdCwgTGluZWFyRnVuY3Rpb24gcmlnaHQpOgorICAg ICAgICAgIiIiCisgICAgICAgICBMb2dpY2FsbHkgY29tcGFyZSBgYGxlZnRgYCBhbmQgYGByaWdo dGBgLgorIAorQEAgLTEyNjcsNyArMTI2Nyw3IEBAIGNkZWYgY2xhc3MgTGluZWFyQ29uc3RyYWlu dHNQYXJlbnRfY2xhc3MoUGFyZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuICdM aW5lYXIgY29uc3RyYWludHMgb3ZlciAnICsgc3RyKHNlbGYubGluZWFyX2Z1bmN0aW9uc19wYXJl bnQoKS5iYXNlX3JpbmcoKSkKKyAKKy0gICAgY3BkZWYgX2VsZW1lbnRfY29uc3RydWN0b3JfKHNl bGYsIGxlZnQsIHJpZ2h0PU5vbmUsIGVxdWFsaXR5PUZhbHNlKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgX2VsZW1lbnRfY29uc3RydWN0b3JfKHNlbGYsIGxlZnQsIHJpZ2h0PU5vbmUsIGVxdWFsaXR5 PUZhbHNlKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ29uc3RydWN0IGEgOmNsYXNzOmBMaW5l YXJDb25zdHJhaW50YC4KKyAKK0BAIC0xMzMyLDcgKzEzMzIsNyBAQCBjZGVmIGNsYXNzIExpbmVh ckNvbnN0cmFpbnRzUGFyZW50X2NsYXNzKFBhcmVudCk6CisgICAgICAgICBlbHNlOgorICAgICAg ICAgICAgIHJldHVybiBMaW5lYXJDb25zdHJhaW50KHNlbGYsIFtsZWZ0LCByaWdodF0sIGVxdWFs aXR5PWVxdWFsaXR5KQorIAorLSAgICBjcGRlZiBfY29lcmNlX21hcF9mcm9tXyhzZWxmLCBSKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgX2NvZXJjZV9tYXBfZnJvbV8oc2VsZiwgUik6CisgICAgICAg ICAiIiIKKyAgICAgICAgIEFsbG93IGNvZXJjaW9uIG9mIHNjYWxhcnMgaW50byBsaW5lYXIgZnVu Y3Rpb25zLgorIAorQEAgLTE0MzIsNyArMTQzMiw3IEBAIGNkZWYgY2xhc3MgTGluZWFyQ29uc3Ry YWludChMaW5lYXJGdW5jdGlvbk9yQ29uc3RyYWludCk6CisgICAgICAgICBMRiA9IHBhcmVudC5s aW5lYXJfZnVuY3Rpb25zX3BhcmVudCgpCisgICAgICAgICBzZWxmLmNvbnN0cmFpbnRzID0gWyBM Rih0ZXJtKSBmb3IgdGVybSBpbiB0ZXJtcyBdCisgCistICAgIGNwZGVmIGVxdWFscyhMaW5lYXJD b25zdHJhaW50IGxlZnQsIExpbmVhckNvbnN0cmFpbnQgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBlcXVhbHMoTGluZWFyQ29uc3RyYWludCBsZWZ0LCBMaW5lYXJDb25zdHJhaW50IHJpZ2h0 KToKKyAgICAgICAgICIiIgorICAgICAgICAgQ29tcGFyZSBgYGxlZnRgYCBhbmQgYGByaWdodGBg LgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL251bWVyaWNhbC9saW5lYXJfdGVuc29yX2VsZW1l bnQucHhkIGIvc3JjL3NhZ2UvbnVtZXJpY2FsL2xpbmVhcl90ZW5zb3JfZWxlbWVudC5weGQKK2lu ZGV4IDUyOGY1OGI5OTFjLi4xY2Q4NGQzZTMzZiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL251bWVy aWNhbC9saW5lYXJfdGVuc29yX2VsZW1lbnQucHhkCisrKysgYi9zcmMvc2FnZS9udW1lcmljYWwv bGluZWFyX3RlbnNvcl9lbGVtZW50LnB4ZAorQEAgLTIsNCArMiw0IEBAIGZyb20gc2FnZS5zdHJ1 Y3R1cmUuZWxlbWVudCBjaW1wb3J0IEVsZW1lbnQsIE1vZHVsZUVsZW1lbnQKKyAKKyBjZGVmIGNs YXNzIExpbmVhclRlbnNvcihNb2R1bGVFbGVtZW50KToKKyAgICAgY2RlZiBkaWN0IF9mCistICAg IGNwZGVmIF9hZGRfKHNlbGYsIG90aGVyKSBub2V4Y2VwdAorKyAgICBjcGRlZiBfYWRkXyhzZWxm LCBvdGhlcikKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9udW1lcmljYWwvbGluZWFyX3RlbnNvcl9l bGVtZW50LnB5eCBiL3NyYy9zYWdlL251bWVyaWNhbC9saW5lYXJfdGVuc29yX2VsZW1lbnQucHl4 CitpbmRleCBlMmM4ODYxOTQ2OS4uYzc3YWEyOTBlMjEgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9u dW1lcmljYWwvbGluZWFyX3RlbnNvcl9lbGVtZW50LnB5eAorKysrIGIvc3JjL3NhZ2UvbnVtZXJp Y2FsL2xpbmVhcl90ZW5zb3JfZWxlbWVudC5weXgKK0BAIC0yNjEsNyArMjYxLDcgQEAgY2RlZiBj bGFzcyBMaW5lYXJUZW5zb3IoTW9kdWxlRWxlbWVudCk6CisgICAgICAgICAgICAgcyArPSAnXScK KyAgICAgICAgIHJldHVybiBzCisgCistICAgIGNwZGVmIF9hZGRfKHNlbGYsIGIpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBfYWRkXyhzZWxmLCBiKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJl dHVybiBzdW0uCisgCitAQCAtMjg1LDcgKzI4NSw3IEBAIGNkZWYgY2xhc3MgTGluZWFyVGVuc29y KE1vZHVsZUVsZW1lbnQpOgorICAgICAgICAgICAgIHJlc3VsdFtrZXldID0gc2VsZi5fZi5nZXQo a2V5LCAwKSArIGNvZWZmCisgICAgICAgICByZXR1cm4gc2VsZi5wYXJlbnQoKShyZXN1bHQpCisg CistICAgIGNwZGVmIF9uZWdfKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbmVnXyhzZWxm KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgbmVnYXRpdmUuCisgCitAQCAt MzA1LDcgKzMwNSw3IEBAIGNkZWYgY2xhc3MgTGluZWFyVGVuc29yKE1vZHVsZUVsZW1lbnQpOgor ICAgICAgICAgICAgIHJlc3VsdFtrZXldID0gLWNvZWZmCisgICAgICAgICByZXR1cm4gc2VsZi5w YXJlbnQoKShyZXN1bHQpCisgCistICAgIGNwZGVmIF9zdWJfKHNlbGYsIGIpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBfc3ViXyhzZWxmLCBiKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVy biBkaWZmZXJlbmNlLgorIAorQEAgLTMzMSw3ICszMzEsNyBAQCBjZGVmIGNsYXNzIExpbmVhclRl bnNvcihNb2R1bGVFbGVtZW50KToKKyAgICAgICAgICAgICByZXN1bHRba2V5XSA9IHNlbGYuX2Yu Z2V0KGtleSwgMCkgLSBjb2VmZgorICAgICAgICAgcmV0dXJuIHNlbGYucGFyZW50KCkocmVzdWx0 KQorIAorLSAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCBiKSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgYik6CisgICAgICAgICByIiIiCisgICAgICAgICBS ZXR1cm4gbXVsdGlwbGljYXRpb24gYnkgc2NhbGFyLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdl L251bWVyaWNhbC9taXAucHhkIGIvc3JjL3NhZ2UvbnVtZXJpY2FsL21pcC5weGQKK2luZGV4IGU3 M2NjNDA4ZDA5Li4xNDIyODI3ZTFlNCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL251bWVyaWNhbC9t aXAucHhkCisrKysgYi9zcmMvc2FnZS9udW1lcmljYWwvbWlwLnB4ZAorQEAgLTI2LDcgKzI2LDcg QEAgY2RlZiBjbGFzcyBNaXhlZEludGVnZXJMaW5lYXJQcm9ncmFtKFNhZ2VPYmplY3QpOgorICAg ICBjcGRlZiBpbnQgbnVtYmVyX29mX3ZhcmlhYmxlcyhzZWxmKSBub2V4Y2VwdAorICAgICBjZGVm IGludCBfY2hlY2tfcmVkdW5kYW50CisgICAgIGNkZWYgbGlzdCBfY29uc3RyYWludHMKKy0gICAg Y3BkZWYgc3VtKHNlbGYsIEwpIG5vZXhjZXB0CisrICAgIGNwZGVmIHN1bShzZWxmLCBMKQorIAor IAorIGNkZWYgY2xhc3MgTUlQVmFyaWFibGUoRmluaXRlRmFtaWx5KToKK0BAIC0zNSw1ICszNSw1 IEBAIGNkZWYgY2xhc3MgTUlQVmFyaWFibGUoRmluaXRlRmFtaWx5KToKKyAgICAgY2RlZiBzdHIg X25hbWUKKyAgICAgY2RlZiBvYmplY3QgX2xvd2VyX2JvdW5kCisgICAgIGNkZWYgb2JqZWN0IF91 cHBlcl9ib3VuZAorLSAgICBjZGVmIF9tYXRyaXhfcm11bF9pbXBsKHNlbGYsIG0pIG5vZXhjZXB0 CistICAgIGNkZWYgX21hdHJpeF9sbXVsX2ltcGwoc2VsZiwgbSkgbm9leGNlcHQKKysgICAgY2Rl ZiBfbWF0cml4X3JtdWxfaW1wbChzZWxmLCBtKQorKyAgICBjZGVmIF9tYXRyaXhfbG11bF9pbXBs KHNlbGYsIG0pCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbnVtZXJpY2FsL21pcC5weXggYi9zcmMv c2FnZS9udW1lcmljYWwvbWlwLnB5eAoraW5kZXggNjJhM2UxODY0OWUuLjM2OGI5ZTRiMGUzIDEw MDY0NAorLS0tIGEvc3JjL3NhZ2UvbnVtZXJpY2FsL21pcC5weXgKKysrKyBiL3NyYy9zYWdlL251 bWVyaWNhbC9taXAucHl4CitAQCAtMjg4Myw3ICsyODgzLDcgQEAgY2RlZiBjbGFzcyBNaXhlZElu dGVnZXJMaW5lYXJQcm9ncmFtKFNhZ2VPYmplY3QpOgorICAgICAgICAgZWxzZToKKyAgICAgICAg ICAgICBzZWxmLl9iYWNrZW5kLnNvbHZlcl9wYXJhbWV0ZXIobmFtZSwgdmFsdWUpCisgCistICAg IGNwZGVmIHN1bShzZWxmLCBMKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgc3VtKHNlbGYsIEwpOgor ICAgICAgICAgciIiIgorICAgICAgICAgRWZmaWNpZW50bHkgY29tcHV0ZXMgdGhlIHN1bSBvZiBh IHNlcXVlbmNlIG9mCisgICAgICAgICA6Y2xhc3M6YH5zYWdlLm51bWVyaWNhbC5saW5lYXJfZnVu Y3Rpb25zLkxpbmVhckZ1bmN0aW9uYCBlbGVtZW50cworQEAgLTM2NjQsNyArMzY2NCw3IEBAIGNk ZWYgY2xhc3MgTUlQVmFyaWFibGUoRmluaXRlRmFtaWx5KToKKyAgICAgICAgICAgICAgICAgcmV0 dXJuIE5vdEltcGxlbWVudGVkCisgICAgICAgICAgICAgcmV0dXJuICg8TUlQVmFyaWFibGU+IHJp Z2h0KS5fbWF0cml4X2xtdWxfaW1wbChsZWZ0KQorIAorLSAgICBjZGVmIF9tYXRyaXhfcm11bF9p bXBsKHNlbGYsIG0pIG5vZXhjZXB0OgorKyAgICBjZGVmIF9tYXRyaXhfcm11bF9pbXBsKHNlbGYs IG0pOgorICAgICAgICAgIiIiCisgICAgICAgICBJbXBsZW1lbnQgdGhlIGFjdGlvbiBvZiBhIG1h dHJpeCBtdWx0aXBseWluZyBmcm9tIHRoZSByaWdodC4KKyAgICAgICAgICIiIgorQEAgLTM2Nzgs NyArMzY3OCw3IEBAIGNkZWYgY2xhc3MgTUlQVmFyaWFibGUoRmluaXRlRmFtaWx5KToKKyAgICAg ICAgIFQgPSBzZWxmLl9wLmxpbmVhcl9mdW5jdGlvbnNfcGFyZW50KCkudGVuc29yKFYpCisgICAg ICAgICByZXR1cm4gVChyZXN1bHQpCisgCistICAgIGNkZWYgX21hdHJpeF9sbXVsX2ltcGwoc2Vs ZiwgbSkgbm9leGNlcHQ6CisrICAgIGNkZWYgX21hdHJpeF9sbXVsX2ltcGwoc2VsZiwgbSk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIEltcGxlbWVudCB0aGUgYWN0aW9uIG9mIGEgbWF0cml4IG11 bHRpcGx5aW5nIGZyb20gdGhlIGxlZnQuCisgICAgICAgICAiIiIKK2RpZmYgLS1naXQgYS9zcmMv c2FnZS9udW1lcmljYWwvc2RwLnB4ZCBiL3NyYy9zYWdlL251bWVyaWNhbC9zZHAucHhkCitpbmRl eCA0Nzk2NGVmMTc4OS4uNjI5ZTZjODNmOTQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9udW1lcmlj YWwvc2RwLnB4ZAorKysrIGIvc3JjL3NhZ2UvbnVtZXJpY2FsL3NkcC5weGQKK0BAIC0xNiw5ICsx Niw5IEBAIGNkZWYgY2xhc3MgU2VtaWRlZmluaXRlUHJvZ3JhbShTYWdlT2JqZWN0KToKKyAgICAg Y3BkZWYgaW50IG51bWJlcl9vZl9jb25zdHJhaW50cyhzZWxmKSBub2V4Y2VwdAorICAgICBjcGRl ZiBpbnQgbnVtYmVyX29mX3ZhcmlhYmxlcyhzZWxmKSBub2V4Y2VwdAorICAgICBjZGVmIGxpc3Qg X2NvbnN0cmFpbnRzCistICAgIGNwZGVmIHN1bShzZWxmLCBMKSBub2V4Y2VwdAorLSAgICBjcGRl ZiBkdWFsX3ZhcmlhYmxlKHNlbGYsIGludCBpLCBzcGFyc2U9Kikgbm9leGNlcHQKKy0gICAgY3Bk ZWYgc2xhY2soc2VsZiwgaW50IGksIHNwYXJzZT0qKSBub2V4Y2VwdAorKyAgICBjcGRlZiBzdW0o c2VsZiwgTCkKKysgICAgY3BkZWYgZHVhbF92YXJpYWJsZShzZWxmLCBpbnQgaSwgc3BhcnNlPSop CisrICAgIGNwZGVmIHNsYWNrKHNlbGYsIGludCBpLCBzcGFyc2U9KikKKyAKKyAKKyBjZGVmIGNs YXNzIFNEUFZhcmlhYmxlKEVsZW1lbnQpOgorQEAgLTI2LDkgKzI2LDkgQEAgY2RlZiBjbGFzcyBT RFBWYXJpYWJsZShFbGVtZW50KToKKyAgICAgY2RlZiBkaWN0IF9kaWN0CisgICAgIGNkZWYgc3Ry IF9uYW1lCisgICAgIGNkZWYgYmludCBfaGFzbmFtZQorLSAgICBjZGVmIF9tYXRyaXhfcm11bF9p bXBsKHNlbGYsIG0pIG5vZXhjZXB0CistICAgIGNkZWYgX21hdHJpeF9sbXVsX2ltcGwoc2VsZiwg bSkgbm9leGNlcHQKKy0gICAgY3BkZWYgX2FjdGVkX3Vwb25fKHNlbGYsIG1hdCwgYmludCBzZWxm X29uX2xlZnQpIG5vZXhjZXB0CisrICAgIGNkZWYgX21hdHJpeF9ybXVsX2ltcGwoc2VsZiwgbSkK KysgICAgY2RlZiBfbWF0cml4X2xtdWxfaW1wbChzZWxmLCBtKQorKyAgICBjcGRlZiBfYWN0ZWRf dXBvbl8oc2VsZiwgbWF0LCBiaW50IHNlbGZfb25fbGVmdCkKKyAKKyAKKyBjZGVmIGNsYXNzIFNE UFZhcmlhYmxlUGFyZW50KFBhcmVudCk6CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbnVtZXJpY2Fs L3NkcC5weXggYi9zcmMvc2FnZS9udW1lcmljYWwvc2RwLnB5eAoraW5kZXggOTdiYTRlZWZmMjYu Ljg3MDFlZDIyMTUwIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvbnVtZXJpY2FsL3NkcC5weXgKKysr KyBiL3NyYy9zYWdlL251bWVyaWNhbC9zZHAucHl4CitAQCAtOTYxLDcgKzk2MSw3IEBAIGNkZWYg Y2xhc3MgU2VtaWRlZmluaXRlUHJvZ3JhbShTYWdlT2JqZWN0KToKKyAgICAgICAgIHJldHVybiBz ZWxmLl9iYWNrZW5kLmdldF9vYmplY3RpdmVfdmFsdWUoKQorIAorIAorLSAgICBjcGRlZiBkdWFs X3ZhcmlhYmxlKHNlbGYsIGludCBpLCBzcGFyc2U9RmFsc2UpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBkdWFsX3ZhcmlhYmxlKHNlbGYsIGludCBpLCBzcGFyc2U9RmFsc2UpOgorICAgICAgICAgIiIi CisgICAgICAgICBUaGUgYGlgLXRoIGR1YWwgdmFyaWFibGUuCisgCitAQCAtMTAxMyw3ICsxMDEz LDcgQEAgY2RlZiBjbGFzcyBTZW1pZGVmaW5pdGVQcm9ncmFtKFNhZ2VPYmplY3QpOgorICAgICAg ICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fYmFja2VuZC5kdWFsX3ZhcmlhYmxlKGksIHNw YXJzZT1zcGFyc2UpCisgCistICAgIGNwZGVmIHNsYWNrKHNlbGYsIGludCBpLCBzcGFyc2U9RmFs c2UpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBzbGFjayhzZWxmLCBpbnQgaSwgc3BhcnNlPUZhbHNl KToKKyAgICAgICAgICIiIgorICAgICAgICAgU2xhY2sgb2YgdGhlIGBpYC10aCBjb25zdHJhaW50 CisgCitAQCAtMTEwOSw3ICsxMTA5LDcgQEAgY2RlZiBjbGFzcyBTZW1pZGVmaW5pdGVQcm9ncmFt KFNhZ2VPYmplY3QpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICBzZWxmLl9iYWNrZW5k LnNvbHZlcl9wYXJhbWV0ZXIobmFtZSwgdmFsdWUpCisgCistICAgIGNwZGVmIHN1bShzZWxmLCBM KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgc3VtKHNlbGYsIEwpOgorICAgICAgICAgciIiIgorICAg ICAgICAgRWZmaWNpZW50bHkgY29tcHV0ZXMgdGhlIHN1bSBvZiBhIHNlcXVlbmNlIG9mCisgICAg ICAgICA6Y2xhc3M6YH5zYWdlLm51bWVyaWNhbC5saW5lYXJfZnVuY3Rpb25zLkxpbmVhckZ1bmN0 aW9uYCBlbGVtZW50cy4KK0BAIC0xMzMyLDcgKzEzMzIsNyBAQCBjZGVmIGNsYXNzIFNEUFZhcmlh YmxlKEVsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fZGljdC52 YWx1ZXMoKQorIAorLSAgICBjZGVmIF9tYXRyaXhfcm11bF9pbXBsKHNlbGYsIG0pIG5vZXhjZXB0 OgorKyAgICBjZGVmIF9tYXRyaXhfcm11bF9pbXBsKHNlbGYsIG0pOgorICAgICAgICAgIiIiCisg ICAgICAgICBJbXBsZW1lbnQgdGhlIGFjdGlvbiBvZiBhIG1hdHJpeCBtdWx0aXBseWluZyBmcm9t IHRoZSByaWdodC4KKyAgICAgICAgICIiIgorQEAgLTEzNDYsNyArMTM0Niw3IEBAIGNkZWYgY2xh c3MgU0RQVmFyaWFibGUoRWxlbWVudCk6CisgICAgICAgICBUID0gc2VsZi5fcC5saW5lYXJfZnVu Y3Rpb25zX3BhcmVudCgpLnRlbnNvcihWKQorICAgICAgICAgcmV0dXJuIFQocmVzdWx0KQorIAor LSAgICBjZGVmIF9tYXRyaXhfbG11bF9pbXBsKHNlbGYsIG0pIG5vZXhjZXB0OgorKyAgICBjZGVm IF9tYXRyaXhfbG11bF9pbXBsKHNlbGYsIG0pOgorICAgICAgICAgIiIiCisgICAgICAgICBJbXBs ZW1lbnQgdGhlIGFjdGlvbiBvZiBhIG1hdHJpeCBtdWx0aXBseWluZyBmcm9tIHRoZSBsZWZ0Lgor ICAgICAgICAgIiIiCitAQCAtMTM2MCw3ICsxMzYwLDcgQEAgY2RlZiBjbGFzcyBTRFBWYXJpYWJs ZShFbGVtZW50KToKKyAgICAgICAgIFQgPSBzZWxmLl9wLmxpbmVhcl9mdW5jdGlvbnNfcGFyZW50 KCkudGVuc29yKFYpCisgICAgICAgICByZXR1cm4gVChyZXN1bHQpCisgCistICAgIGNwZGVmIF9h Y3RlZF91cG9uXyhzZWxmLCBtYXQsIGJpbnQgc2VsZl9vbl9sZWZ0KSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgX2FjdGVkX3Vwb25fKHNlbGYsIG1hdCwgYmludCBzZWxmX29uX2xlZnQpOgorICAgICAg ICAgIiIiCisgICAgICAgICBBY3Qgd2l0aCBtYXRyaWNlcyBvbiBTRFBWYXJpYWJsZXMuCisgCitk aWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcGxvdC9jb21wbGV4X3Bsb3QucHl4IGIvc3JjL3NhZ2UvcGxv dC9jb21wbGV4X3Bsb3QucHl4CitpbmRleCAwMWQ4MDYwZWEwMS4uZjFmMjY3MWE4MDMgMTAwNjQ0 CistLS0gYS9zcmMvc2FnZS9wbG90L2NvbXBsZXhfcGxvdC5weXgKKysrKyBiL3NyYy9zYWdlL3Bs b3QvY29tcGxleF9wbG90LnB5eAorQEAgLTQ0LDcgKzQ0LDcgQEAgREVGQVVMVF9MT0dBUklUSE1J Q19DT05UT1VSX0JBU0UgPSAyCisgREVGQVVMVF9MSU5FQVJfQ09OVE9VUl9CQVNFID0gMTAKKyAK KyAKKy1jZGVmIGlubGluZSBDb21wbGV4RG91YmxlRWxlbWVudCBuZXdfQ0RGX2VsZW1lbnQoZG91 YmxlIHgsIGRvdWJsZSB5KSBub2V4Y2VwdDoKKytjZGVmIGlubGluZSBDb21wbGV4RG91YmxlRWxl bWVudCBuZXdfQ0RGX2VsZW1lbnQoZG91YmxlIHgsIGRvdWJsZSB5KToKKyAgICAgeiA9IDxDb21w bGV4RG91YmxlRWxlbWVudD5Db21wbGV4RG91YmxlRWxlbWVudC5fX25ld19fKENvbXBsZXhEb3Vi bGVFbGVtZW50KQorICAgICBHU0xfU0VUX0NPTVBMRVgoJnouX2NvbXBsZXgsIHgsIHkpCisgICAg IHJldHVybiB6CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcGxvdC9wbG90M2QvaW1wbGljaXRfc3Vy ZmFjZS5weXggYi9zcmMvc2FnZS9wbG90L3Bsb3QzZC9pbXBsaWNpdF9zdXJmYWNlLnB5eAoraW5k ZXggZjU3NzNhNjNkMDguLmRmMjhmN2M2ZTZiIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcGxvdC9w bG90M2QvaW1wbGljaXRfc3VyZmFjZS5weXgKKysrKyBiL3NyYy9zYWdlL3Bsb3QvcGxvdDNkL2lt cGxpY2l0X3N1cmZhY2UucHl4CitAQCAtMTUzLDcgKzE1Myw3IEBAIGNkZWYgY2xhc3MgVmVydGV4 SW5mbzoKKyAgICAgICAgIHJldHVybiAnPHt9LCB7fSwge30+Jy5mb3JtYXQoc2VsZi5wdC54LCBz ZWxmLnB0LnksIHNlbGYucHQueikKKyAKKyAKKy1jZGVmIG1rX1ZlcnRleEluZm8oZG91YmxlIHgs IGRvdWJsZSB5LCBkb3VibGUgeiwgcG9pbnRfYyAqZXZhbF9taW4sIHBvaW50X2MgKmV2YWxfc2Nh bGUpIG5vZXhjZXB0OgorK2NkZWYgbWtfVmVydGV4SW5mbyhkb3VibGUgeCwgZG91YmxlIHksIGRv dWJsZSB6LCBwb2ludF9jICpldmFsX21pbiwgcG9pbnRfYyAqZXZhbF9zY2FsZSk6CisgICAgIGNk ZWYgVmVydGV4SW5mbyB2CisgICAgIHYgPSBWZXJ0ZXhJbmZvLl9fbmV3X18oVmVydGV4SW5mbykK KyAgICAgdi5wdC54ID0geAorQEAgLTQ1Miw3ICs0NTIsNyBAQCBjZGVmIGNsYXNzIE1hcmNoaW5n Q3ViZXNUcmlhbmdsZXMoTWFyY2hpbmdDdWJlcyk6CisgCisgICAgICAgICAgICAgc2VsZi5wcm9j ZXNzX2N1YmVzKHNlbGYuc2xpY2VzWzBdLCBzZWxmLnNsaWNlc1sxXSkKKyAKKy0gICAgY3BkZWYg X3VwZGF0ZV95el92ZXJ0aWNlcyhzZWxmLCBpbnQgeCwgbnAubmRhcnJheSBfcHJldiwgbnAubmRh cnJheSBfY3VyLCBucC5uZGFycmF5IF9uZXh0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3VwZGF0 ZV95el92ZXJ0aWNlcyhzZWxmLCBpbnQgeCwgbnAubmRhcnJheSBfcHJldiwgbnAubmRhcnJheSBf Y3VyLCBucC5uZGFycmF5IF9uZXh0KToKKyAgICAgICAgICIiIgorICAgICAgICAgVEVTVFM6Ogor IAorQEAgLTU2MCw3ICs1NjAsNyBAQCBjZGVmIGNsYXNzIE1hcmNoaW5nQ3ViZXNUcmlhbmdsZXMo TWFyY2hpbmdDdWJlcyk6CisgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAg ICAgICB6X3ZlcnRpY2VzW3ksel0gPSBOb25lCisgCistICAgIGNwZGVmIF91cGRhdGVfeF92ZXJ0 aWNlcyhzZWxmLCBpbnQgeCwgbnAubmRhcnJheSBfcHJldiwgbnAubmRhcnJheSBfbGVmdCwgbnAu bmRhcnJheSBfcmlnaHQsIG5wLm5kYXJyYXkgX25leHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBf dXBkYXRlX3hfdmVydGljZXMoc2VsZiwgaW50IHgsIG5wLm5kYXJyYXkgX3ByZXYsIG5wLm5kYXJy YXkgX2xlZnQsIG5wLm5kYXJyYXkgX3JpZ2h0LCBucC5uZGFycmF5IF9uZXh0KToKKyAgICAgICAg ICIiIgorICAgICAgICAgVEVTVFM6OgorIAorQEAgLTYzOCw3ICs2MzgsNyBAQCBjZGVmIGNsYXNz IE1hcmNoaW5nQ3ViZXNUcmlhbmdsZXMoTWFyY2hpbmdDdWJlcyk6CisgICAgIGNkZWYgYmludCBp bl9yZWdpb24oc2VsZiwgVmVydGV4SW5mbyB2KSBub2V4Y2VwdDoKKyAgICAgICAgIHJldHVybiAo c2VsZi5yZWdpb24odi5ldmFsX3B0LngsIHYuZXZhbF9wdC55LCB2LmV2YWxfcHQueikgPiAwKQor IAorLSAgICBjZGVmIGFwcGx5X3BvaW50X2Z1bmMoc2VsZiwgcG9pbnRfYyAqcHQsIGZuLCBWZXJ0 ZXhJbmZvIHYpIG5vZXhjZXB0OgorKyAgICBjZGVmIGFwcGx5X3BvaW50X2Z1bmMoc2VsZiwgcG9p bnRfYyAqcHQsIGZuLCBWZXJ0ZXhJbmZvIHYpOgorICAgICAgICAgaWYgaXNpbnN0YW5jZShmbiwg dHVwbGUpOgorICAgICAgICAgICAgIHB0WzBdLnggPSBmblswXSh2LmV2YWxfcHQueCwgdi5ldmFs X3B0LnksIHYuZXZhbF9wdC56KQorICAgICAgICAgICAgIHB0WzBdLnkgPSBmblsxXSh2LmV2YWxf cHQueCwgdi5ldmFsX3B0LnksIHYuZXZhbF9wdC56KQorQEAgLTY0OSw3ICs2NDksNyBAQCBjZGVm IGNsYXNzIE1hcmNoaW5nQ3ViZXNUcmlhbmdsZXMoTWFyY2hpbmdDdWJlcyk6CisgICAgICAgICAg ICAgcHRbMF0ueSA9IHRbMV0KKyAgICAgICAgICAgICBwdFswXS56ID0gdFsyXQorIAorLSAgICBj ZGVmIGFwcGx5X2NvbG9yX2Z1bmMoc2VsZiwgY29sb3JfYyAqcHQsIGZuLCBjbSwgVmVydGV4SW5m byB2KSBub2V4Y2VwdDoKKysgICAgY2RlZiBhcHBseV9jb2xvcl9mdW5jKHNlbGYsIGNvbG9yX2Mg KnB0LCBmbiwgY20sIFZlcnRleEluZm8gdik6CisgICAgICAgICB0ID0gZm4odi5ldmFsX3B0Lngs IHYuZXZhbF9wdC55LCB2LmV2YWxfcHQueikKKyAgICAgICAgIHB0WzBdLnIsIHB0WzBdLmcsIHB0 WzBdLmIsIF8gPSBjbSh0KQorIAorQEAgLTY1OSw3ICs2NTksNyBAQCBjZGVmIGNsYXNzIE1hcmNo aW5nQ3ViZXNUcmlhbmdsZXMoTWFyY2hpbmdDdWJlcyk6CisgICAgICAgICAgICAgICAgICAgICAg IGRvdWJsZSBjZW50ZXIsCisgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBseCwgZG91Ymxl IHV4LAorICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgbHksIGRvdWJsZSB1eSwKKy0gICAg ICAgICAgICAgICAgICAgICAgZG91YmxlIGx6LCBkb3VibGUgdXopIG5vZXhjZXB0OgorKyAgICAg ICAgICAgICAgICAgICAgICBkb3VibGUgbHosIGRvdWJsZSB1eik6CisgICAgICAgICAjIFdoYXQg YSBtZXNzISAgSXQgd291bGQgYmUgbXVjaCBuaWNlci1sb29raW5nIGNvZGUgdG8gcGFzcyBzbGlj ZXMKKyAgICAgICAgICMgaW4gaGVyZSBhbmQgZG8gdGhlIHN1YnNjcmlwdGluZyBpbiBoZXJlLiAg VW5mb3J0dW5hdGVseSwKKyAgICAgICAgICMgdGhhdCB3b3VsZCBhbHNvIGJlIG11Y2ggc2xvd2Vy LCBiZWNhdXNlIHdlJ2QgaGF2ZSB0byByZS1pbml0aWFsaXplCitAQCAtNjg0LDcgKzY4NCw3IEBA IGNkZWYgY2xhc3MgTWFyY2hpbmdDdWJlc1RyaWFuZ2xlcyhNYXJjaGluZ0N1YmVzKToKKyAgICAg ICAgIGdbMF0ueSA9IGd5CisgICAgICAgICBnWzBdLnogPSBnegorIAorLSAgICBjcGRlZiBwcm9j ZXNzX2N1YmVzKHNlbGYsIG5wLm5kYXJyYXkgX2xlZnQsIG5wLm5kYXJyYXkgX3JpZ2h0KSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgcHJvY2Vzc19jdWJlcyhzZWxmLCBucC5uZGFycmF5IF9sZWZ0LCBu cC5uZGFycmF5IF9yaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRFU1RTOjoKKyAKK0BA IC03ODgsNyArNzg4LDcgQEAgY2RlZiBjbGFzcyBNYXJjaGluZ0N1YmVzVHJpYW5nbGVzKE1hcmNo aW5nQ3ViZXMpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsX3Zl cnRleF9pbmZvW215X3RyaWFuZ2xlc1tpKzFdXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFsbF92ZXJ0ZXhfaW5mb1tteV90cmlhbmdsZXNbaSsyXV0pCisgCistICAg IGNwZGVmIGFkZF90cmlhbmdsZShzZWxmLCBWZXJ0ZXhJbmZvIHYxLCBWZXJ0ZXhJbmZvIHYyLCBW ZXJ0ZXhJbmZvIHYzKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgYWRkX3RyaWFuZ2xlKHNlbGYsIFZl cnRleEluZm8gdjEsIFZlcnRleEluZm8gdjIsIFZlcnRleEluZm8gdjMpOgorICAgICAgICAgIiIi CisgICAgICAgICBDYWxsZWQgd2hlbiBhIG5ldyB0cmlhbmdsZSBpcyBnZW5lcmF0ZWQgYnkgdGhl IG1hcmNoaW5nIGN1YmVzIGFsZ29yaXRobQorICAgICAgICAgdG8gdXBkYXRlIHRoZSByZXN1bHRz IGFycmF5LgorQEAgLTg0NSw3ICs4NDUsNyBAQCBjZGVmIGNsYXNzIE1hcmNoaW5nQ3ViZXNUcmlh bmdsZXMoTWFyY2hpbmdDdWJlcyk6CisgICAgICAgICBzZWxmLnJlc3VsdHMuYXBwZW5kKGZhY2Up CisgCisgCistY3BkZWYgcmVuZGVyX2ltcGxpY2l0KGYsIHhyYW5nZSwgeXJhbmdlLCB6cmFuZ2Us IHBsb3RfcG9pbnRzLCBjdWJlX21hcmNoZXJzKSBub2V4Y2VwdDoKKytjcGRlZiByZW5kZXJfaW1w bGljaXQoZiwgeHJhbmdlLCB5cmFuZ2UsIHpyYW5nZSwgcGxvdF9wb2ludHMsIGN1YmVfbWFyY2hl cnMpOgorICAgICAiIiIKKyAgICAgSU5QVVQ6CisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcGxv dC9wbG90M2QvaW5kZXhfZmFjZV9zZXQucHl4IGIvc3JjL3NhZ2UvcGxvdC9wbG90M2QvaW5kZXhf ZmFjZV9zZXQucHl4CitpbmRleCBkZDdiZmIyZDM4YS4uNDI4OGRiNzAwMDUgMTAwNjQ0CistLS0g YS9zcmMvc2FnZS9wbG90L3Bsb3QzZC9pbmRleF9mYWNlX3NldC5weXgKKysrKyBiL3NyYy9zYWdl L3Bsb3QvcGxvdDNkL2luZGV4X2ZhY2Vfc2V0LnB5eAorQEAgLTY5LDcgKzY5LDcgQEAgZnJvbSBz YWdlLnBsb3QucGxvdDNkLnRyYW5zZm9ybSBjaW1wb3J0IFRyYW5zZm9ybWF0aW9uCisgIyBGYXN0 IHJvdXRpbmVzIGZvciBnZW5lcmF0aW5nIHN0cmluZyByZXByZXNlbnRhdGlvbnMgb2YgdGhlIHBv bHlnb25zLgorICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKy1jZGVmIGlubGluZSBmb3JtYXRfdGFjaHlvbl90 ZXh0dXJlKGNvbG9yX2MgcmdiKSBub2V4Y2VwdDoKKytjZGVmIGlubGluZSBmb3JtYXRfdGFjaHlv bl90ZXh0dXJlKGNvbG9yX2MgcmdiKToKKyAgICAgY2RlZiBjaGFyIHJzWzIwMF0KKyAgICAgY2Rl ZiBQeV9zc2l6ZV90IGNyID0gc3ByaW50Zl8zZChycywKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJURVhUVVJFXG4gQU1CSUVOVCAwLjMgRElGRlVTRSAwLjcgU1BFQ1VMQVIg MCBPUEFDSVRZIDEuMFxuIENPTE9SICVnICVnICVnIFxuIFRFWEZVTkMgMCIsCitAQCAtNzcsNyAr NzcsNyBAQCBjZGVmIGlubGluZSBmb3JtYXRfdGFjaHlvbl90ZXh0dXJlKGNvbG9yX2MgcmdiKSBu b2V4Y2VwdDoKKyAgICAgcmV0dXJuIGJ5dGVzX3RvX3N0cihQeUJ5dGVzX0Zyb21TdHJpbmdBbmRT aXplKHJzLCBjcikpCisgCisgCistY2RlZiBpbmxpbmUgZm9ybWF0X3RhY2h5b25fdHJpYW5nbGUo cG9pbnRfYyBQLCBwb2ludF9jIFEsIHBvaW50X2MgUikgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUg Zm9ybWF0X3RhY2h5b25fdHJpYW5nbGUocG9pbnRfYyBQLCBwb2ludF9jIFEsIHBvaW50X2MgUik6 CisgICAgIGNkZWYgY2hhciBzc1syNTBdCisgICAgICMgUHlCeXRlc19Gcm9tRm9ybWF0IGRvZXNu J3QgZG8gZmxvYXRzPworICAgICBjZGVmIFB5X3NzaXplX3QgciA9IHNwcmludGZfOWQoc3MsCitA QCAtODgsMjIgKzg4LDIyIEBAIGNkZWYgaW5saW5lIGZvcm1hdF90YWNoeW9uX3RyaWFuZ2xlKHBv aW50X2MgUCwgcG9pbnRfYyBRLCBwb2ludF9jIFIpIG5vZXhjZXB0OgorICAgICByZXR1cm4gYnl0 ZXNfdG9fc3RyKFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUoc3MsIHIpKQorIAorIAorLWNkZWYg aW5saW5lIGZvcm1hdF9qc29uX3ZlcnRleChwb2ludF9jIFApIG5vZXhjZXB0OgorK2NkZWYgaW5s aW5lIGZvcm1hdF9qc29uX3ZlcnRleChwb2ludF9jIFApOgorICAgICBjZGVmIGNoYXIgc3NbMTAw XQorICAgICBjZGVmIFB5X3NzaXplX3QgciA9IHNwcmludGZfM2Qoc3MsICd7IngiOiVnLCJ5Ijol ZywieiI6JWd9JywgUC54LCBQLnksIFAueikKKyAgICAgcmV0dXJuIGJ5dGVzX3RvX3N0cihQeUJ5 dGVzX0Zyb21TdHJpbmdBbmRTaXplKHNzLCByKSkKKyAKKy1jZGVmIGlubGluZSBmb3JtYXRfanNv bl9mYWNlKGZhY2VfYyBmYWNlKSBub2V4Y2VwdDoKKytjZGVmIGlubGluZSBmb3JtYXRfanNvbl9m YWNlKGZhY2VfYyBmYWNlKToKKyAgICAgcyA9ICJbe31dIi5mb3JtYXQoIiwiLmpvaW4oc3RyKGZh Y2UudmVydGljZXNbaV0pIGZvciBpIGluIHJhbmdlKGZhY2UubikpKQorICAgICByZXR1cm4gcwor IAorLWNkZWYgaW5saW5lIGZvcm1hdF9vYmpfdmVydGV4KHBvaW50X2MgUCkgbm9leGNlcHQ6Cisr Y2RlZiBpbmxpbmUgZm9ybWF0X29ial92ZXJ0ZXgocG9pbnRfYyBQKToKKyAgICAgY2RlZiBjaGFy IHNzWzEwMF0KKyAgICAgIyBQeUJ5dGVzX0Zyb21Gb3JtYXQgZG9lc24ndCBkbyBmbG9hdHM/Cisg ICAgIGNkZWYgUHlfc3NpemVfdCByID0gc3ByaW50Zl8zZChzcywgInYgJWcgJWcgJWciLCBQLngs IFAueSwgUC56KQorICAgICByZXR1cm4gYnl0ZXNfdG9fc3RyKFB5Qnl0ZXNfRnJvbVN0cmluZ0Fu ZFNpemUoc3MsIHIpKQorIAorLWNkZWYgaW5saW5lIGZvcm1hdF9vYmpfZmFjZShmYWNlX2MgZmFj ZSwgaW50IG9mZikgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUgZm9ybWF0X29ial9mYWNlKGZhY2Vf YyBmYWNlLCBpbnQgb2ZmKToKKyAgICAgY2RlZiBjaGFyIHNzWzEwMF0KKyAgICAgY2RlZiBQeV9z c2l6ZV90IHIsIGkKKyAgICAgaWYgZmFjZS5uID09IDM6CitAQCAtMTE1LDcgKzExNSw3IEBAIGNk ZWYgaW5saW5lIGZvcm1hdF9vYmpfZmFjZShmYWNlX2MgZmFjZSwgaW50IG9mZikgbm9leGNlcHQ6 CisgICAgICMgUHlCeXRlc19Gcm9tRm9ybWF0IGlzIGFsbW9zdCB0d2ljZSBhcyBzbG93CisgICAg IHJldHVybiBieXRlc190b19zdHIoUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZShzcywgcikpCisg CistY2RlZiBpbmxpbmUgZm9ybWF0X29ial9mYWNlX2JhY2soZmFjZV9jIGZhY2UsIGludCBvZmYp IG5vZXhjZXB0OgorK2NkZWYgaW5saW5lIGZvcm1hdF9vYmpfZmFjZV9iYWNrKGZhY2VfYyBmYWNl LCBpbnQgb2ZmKToKKyAgICAgY2RlZiBjaGFyIHNzWzEwMF0KKyAgICAgY2RlZiBQeV9zc2l6ZV90 IHIsIGkKKyAgICAgaWYgZmFjZS5uID09IDM6CitAQCAtMTI2LDEzICsxMjYsMTMgQEAgY2RlZiBp bmxpbmUgZm9ybWF0X29ial9mYWNlX2JhY2soZmFjZV9jIGZhY2UsIGludCBvZmYpIG5vZXhjZXB0 OgorICAgICAgICAgcmV0dXJuICJmICIgKyAiICIuam9pbihzdHIoZmFjZS52ZXJ0aWNlc1tpXSAr IG9mZikgZm9yIGkgZnJvbSBmYWNlLm4gPiBpID49IDApCisgICAgIHJldHVybiBieXRlc190b19z dHIoUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZShzcywgcikpCisgCistY2RlZiBpbmxpbmUgZm9y bWF0X3BtZXNoX3ZlcnRleChwb2ludF9jIFApIG5vZXhjZXB0OgorK2NkZWYgaW5saW5lIGZvcm1h dF9wbWVzaF92ZXJ0ZXgocG9pbnRfYyBQKToKKyAgICAgY2RlZiBjaGFyIHNzWzEwMF0KKyAgICAg IyBQeUJ5dGVzX0Zyb21Gb3JtYXQgZG9lc24ndCBkbyBmbG9hdHM/CisgICAgIGNkZWYgUHlfc3Np emVfdCByID0gc3ByaW50Zl8zZChzcywgIiVnICVnICVnIiwgUC54LCBQLnksIFAueikKKyAgICAg cmV0dXJuIGJ5dGVzX3RvX3N0cihQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKHNzLCByKSkKKyAK Ky1jZGVmIGlubGluZSBmb3JtYXRfcG1lc2hfZmFjZShmYWNlX2MgZmFjZSwgaW50IGhhc19jb2xv cikgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUgZm9ybWF0X3BtZXNoX2ZhY2UoZmFjZV9jIGZhY2Us IGludCBoYXNfY29sb3IpOgorICAgICBjZGVmIGNoYXIgc3NbMTAwXQorICAgICBjZGVmIFB5X3Nz aXplX3QgciwgaQorICAgICBjZGVmIGludCBjb2xvcgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3Bs b3QvcGxvdDNkL3RyYW5zZm9ybS5weGQgYi9zcmMvc2FnZS9wbG90L3Bsb3QzZC90cmFuc2Zvcm0u cHhkCitpbmRleCA4NzY5NWZjM2Q4Ny4uMzlmZDJiYjYzODEgMTAwNjQ0CistLS0gYS9zcmMvc2Fn ZS9wbG90L3Bsb3QzZC90cmFuc2Zvcm0ucHhkCisrKysgYi9zcmMvc2FnZS9wbG90L3Bsb3QzZC90 cmFuc2Zvcm0ucHhkCitAQCAtMTMsOCArMTMsOCBAQCBjZGVmIGNsYXNzIFRyYW5zZm9ybWF0aW9u OgorICAgICBjZGVmIG1hdHJpeAorICAgICBjZGVmIGRvdWJsZSBfbWF0cml4X2RhdGFbMTJdCisg ICAgIGNkZWYgb2JqZWN0IF9zdmQKKy0gICAgY3BkZWYgdHJhbnNmb3JtX3BvaW50KHNlbGYsIHgp IG5vZXhjZXB0CistICAgIGNwZGVmIHRyYW5zZm9ybV92ZWN0b3Ioc2VsZiwgdikgbm9leGNlcHQK Ky0gICAgY3BkZWYgdHJhbnNmb3JtX2JvdW5kaW5nX2JveChzZWxmLCBib3gpIG5vZXhjZXB0Cisr ICAgIGNwZGVmIHRyYW5zZm9ybV9wb2ludChzZWxmLCB4KQorKyAgICBjcGRlZiB0cmFuc2Zvcm1f dmVjdG9yKHNlbGYsIHYpCisrICAgIGNwZGVmIHRyYW5zZm9ybV9ib3VuZGluZ19ib3goc2VsZiwg Ym94KQorICAgICBjZGVmIHZvaWQgdHJhbnNmb3JtX3BvaW50X2Moc2VsZiwgcG9pbnRfYyogcmVz LCBwb2ludF9jIFApIG5vZXhjZXB0CisgICAgIGNkZWYgdm9pZCB0cmFuc2Zvcm1fdmVjdG9yX2Mo c2VsZiwgcG9pbnRfYyogcmVzLCBwb2ludF9jIFApIG5vZXhjZXB0CitkaWZmIC0tZ2l0IGEvc3Jj L3NhZ2UvcGxvdC9wbG90M2QvdHJhbnNmb3JtLnB5eCBiL3NyYy9zYWdlL3Bsb3QvcGxvdDNkL3Ry YW5zZm9ybS5weXgKK2luZGV4IGI2ZDhhMmY2NDNiLi5hZDlhYWU5ODI3OCAxMDA2NDQKKy0tLSBh L3NyYy9zYWdlL3Bsb3QvcGxvdDNkL3RyYW5zZm9ybS5weXgKKysrKyBiL3NyYy9zYWdlL3Bsb3Qv cGxvdDNkL3RyYW5zZm9ybS5weXgKK0BAIC03NSwxOSArNzUsMTkgQEAgY2RlZiBjbGFzcyBUcmFu c2Zvcm1hdGlvbjoKKyAgICAgICAgIGxlbl9hID0gYS5kb3RfcHJvZHVjdChhKQorICAgICAgICAg cmV0dXJuIG1heChbYWJzKGxlbl9hIC0gYi5kb3RfcHJvZHVjdChiKSkgZm9yIGIgaW4gYmFzaXNd KSA8IGVwcworIAorLSAgICBjcGRlZiB0cmFuc2Zvcm1fcG9pbnQoc2VsZiwgeCkgbm9leGNlcHQ6 CisrICAgIGNwZGVmIHRyYW5zZm9ybV9wb2ludChzZWxmLCB4KToKKyAgICAgICAgIGNkZWYgcG9p bnRfYyByZXMsIFAKKyAgICAgICAgIFAueCwgUC55LCBQLnogPSB4CisgICAgICAgICBwb2ludF9j X3RyYW5zZm9ybSgmcmVzLCBzZWxmLl9tYXRyaXhfZGF0YSwgUCkKKyAgICAgICAgIHJldHVybiBy ZXMueCwgcmVzLnksIHJlcy56CisgCistICAgIGNwZGVmIHRyYW5zZm9ybV92ZWN0b3Ioc2VsZiwg dikgbm9leGNlcHQ6CisrICAgIGNwZGVmIHRyYW5zZm9ybV92ZWN0b3Ioc2VsZiwgdik6CisgICAg ICAgICBjZGVmIHBvaW50X2MgcmVzLCBQCisgICAgICAgICBQLngsIFAueSwgUC56ID0gdgorICAg ICAgICAgcG9pbnRfY19zdHJldGNoKCZyZXMsIHNlbGYuX21hdHJpeF9kYXRhLCBQKQorICAgICAg ICAgcmV0dXJuIHJlcy54LCByZXMueSwgcmVzLnoKKyAKKy0gICAgY3BkZWYgdHJhbnNmb3JtX2Jv dW5kaW5nX2JveChzZWxmLCBib3gpIG5vZXhjZXB0OgorKyAgICBjcGRlZiB0cmFuc2Zvcm1fYm91 bmRpbmdfYm94KHNlbGYsIGJveCk6CisgICAgICAgICBjZGVmIHBvaW50X2MgbG93ZXIsIHVwcGVy LCByZXMsIHRlbXAKKyAgICAgICAgIGNkZWYgcG9pbnRfYyBib3VuZHNbMl0KKyAgICAgICAgIGJv dW5kc1swXS54LCBib3VuZHNbMF0ueSwgYm91bmRzWzBdLnogPSBib3hbMF0KK2RpZmYgLS1naXQg YS9zcmMvc2FnZS9xdWFkcmF0aWNfZm9ybXMvY291bnRfbG9jYWxfMi5weXggYi9zcmMvc2FnZS9x dWFkcmF0aWNfZm9ybXMvY291bnRfbG9jYWxfMi5weXgKK2luZGV4IDliN2QzZTE1MTc4Li4zY2Uw NWEzYTQxMyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3F1YWRyYXRpY19mb3Jtcy9jb3VudF9sb2Nh bF8yLnB5eAorKysrIGIvc3JjL3NhZ2UvcXVhZHJhdGljX2Zvcm1zL2NvdW50X2xvY2FsXzIucHl4 CitAQCAtODcsNyArODcsNyBAQCBkZWYgY291bnRfbW9kcF9fYnlfZ2F1c3Nfc3VtKG4sIHAsIG0s IFFkZXQpOgorICAgICByZXR1cm4gY291bnQKKyAKKyAKKy1jZGVmIENvdW50QWxsTG9jYWxUeXBl c05haXZlX2NkZWYoUSwgcCwgaywgbSwgenZlYywgbnp2ZWMpIG5vZXhjZXB0OgorK2NkZWYgQ291 bnRBbGxMb2NhbFR5cGVzTmFpdmVfY2RlZihRLCBwLCBrLCBtLCB6dmVjLCBuenZlYyk6CisgICAg ICIiIgorICAgICBUaGlzIEN5dGhvbiByb3V0aW5lIGlzIGRvY3VtZW50ZWQgaW4gaXRzIFB5dGhv biB3cmFwcGVyIG1ldGhvZAorICAgICBRdWFkcmF0aWNGb3JtLmNvdW50X2NvbmdydWVuY2Vfc29s dXRpb25zX2J5X3R5cGUoKS4KK0BAIC0xODEsNyArMTgxLDcgQEAgZGVmIENvdW50QWxsTG9jYWxU eXBlc05haXZlKFEsIHAsIGssIG0sIHp2ZWMsIG56dmVjKToKKyAgICAgcmV0dXJuIENvdW50QWxs TG9jYWxUeXBlc05haXZlX2NkZWYoUSwgcCwgaywgbSwgenZlYywgbnp2ZWMpCisgCisgCistY2Rl ZiBsb2NhbF9zb2x1dGlvbl90eXBlX2NkZWYoUSwgcCwgdywgenZlYywgbnp2ZWMpIG5vZXhjZXB0 OgorK2NkZWYgbG9jYWxfc29sdXRpb25fdHlwZV9jZGVmKFEsIHAsIHcsIHp2ZWMsIG56dmVjKToK KyAgICAgIiIiCisgICAgIEludGVybmFsIHJvdXRpbmUgdG8gY2hlY2sgaWYgYSBnaXZlbiBzb2x1 dGlvbiB2ZWN0b3IgYHdgIChvZiBgUSh3KSA9CisgICAgIG1gIG1vZCBgcF5rYCkgaXMgb2YgYSBj ZXJ0YWluIGxvY2FsIHR5cGUgYW5kIHNhdGlzZmllcyBjZXJ0YWluCitkaWZmIC0tZ2l0IGEvc3Jj L3NhZ2UvcXVhZHJhdGljX2Zvcm1zL3F1YWRyYXRpY19mb3JtX19ldmFsdWF0ZS5weXggYi9zcmMv c2FnZS9xdWFkcmF0aWNfZm9ybXMvcXVhZHJhdGljX2Zvcm1fX2V2YWx1YXRlLnB5eAoraW5kZXgg OGE1YWVhZmQ4MzEuLjk1ZTgyZTY2OWRjIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcXVhZHJhdGlj X2Zvcm1zL3F1YWRyYXRpY19mb3JtX19ldmFsdWF0ZS5weXgKKysrKyBiL3NyYy9zYWdlL3F1YWRy YXRpY19mb3Jtcy9xdWFkcmF0aWNfZm9ybV9fZXZhbHVhdGUucHl4CitAQCAtNDQsNyArNDQsNyBA QCBkZWYgUUZFdmFsdWF0ZVZlY3RvcihRLCB2KToKKyAgICAgcmV0dXJuIFFGRXZhbHVhdGVWZWN0 b3JfY2RlZihRLCB2KQorIAorIAorLWNkZWYgUUZFdmFsdWF0ZVZlY3Rvcl9jZGVmKFEsIHYpIG5v ZXhjZXB0OgorK2NkZWYgUUZFdmFsdWF0ZVZlY3Rvcl9jZGVmKFEsIHYpOgorICAgICByIiIiCisg ICAgIFJvdXRpbmUgdG8gcXVpY2tseSBldmFsdWF0ZSBhIHF1YWRyYXRpYyBmb3JtIGBRYCBvbiBh IHZlY3RvciBgdmAuICBTZWUKKyAgICAgdGhlIFB5dGhvbiB3cmFwcGVyIGZ1bmN0aW9uIDptZXRo OmBRRkV2YWx1YXRlYCBhYm92ZSBmb3IgZGV0YWlscy4KK0BAIC0xMTEsNyArMTExLDcgQEAgZGVm IFFGRXZhbHVhdGVNYXRyaXgoUSwgTSwgUTIpOgorICAgICByZXR1cm4gUUZFdmFsdWF0ZU1hdHJp eF9jZGVmKFEsIE0sIFEyKQorIAorIAorLWNkZWYgUUZFdmFsdWF0ZU1hdHJpeF9jZGVmKFEsIE0s IFEyKSBub2V4Y2VwdDoKKytjZGVmIFFGRXZhbHVhdGVNYXRyaXhfY2RlZihRLCBNLCBRMik6Cisg ICAgIHIiIiIKKyAgICAgUm91dGluZSB0byBxdWlja2x5IGV2YWx1YXRlIGEgcXVhZHJhdGljIGZv cm0gYFFgIG9uIGEgbWF0cml4IGBNYC4gIFNlZQorICAgICB0aGUgUHl0aG9uIHdyYXBwZXIgZnVu Y3Rpb24gOmZ1bmM6YFFGRXZhbHVhdGVNYXRyaXhgIGFib3ZlIGZvciBkZXRhaWxzLgorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL3F1aXZlcnMvYWxnZWJyYV9lbGVtZW50cy5weGQgYi9zcmMvc2FnZS9x dWl2ZXJzL2FsZ2VicmFfZWxlbWVudHMucHhkCitpbmRleCBlNDc2OTYyNzBkYS4uM2JlYjY5OTE0 ZDAgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9xdWl2ZXJzL2FsZ2VicmFfZWxlbWVudHMucHhkCisr KysgYi9zcmMvc2FnZS9xdWl2ZXJzL2FsZ2VicmFfZWxlbWVudHMucHhkCitAQCAtODMsMTQgKzgz LDE0IEBAIGNkZWYgY2xhc3MgUGF0aEFsZ2VicmFFbGVtZW50KFJpbmdFbGVtZW50KToKKyAgICAg IyBmdW5jdGlvbnMuCisgICAgIGNkZWYgcGF0aF9vcmRlcl90IGNtcF90ZXJtcworICAgICBjZGVm IGxvbmcgX2hhc2gKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0CistICAg IGNwZGVmIF9tdWxfKHNlbGYsIG90aGVyKSBub2V4Y2VwdAorKyAgICBjcGRlZiBfYWRkXyhzZWxm LCBvdGhlcikKKysgICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIpCisgICAgIGNwZGVmIHNzaXpl X3QgZGVncmVlKHNlbGYpIGV4Y2VwdCAtMgorLSAgICBjcGRlZiBkaWN0IG1vbm9taWFsX2NvZWZm aWNpZW50cyhzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBsaXN0IGNvZWZmaWNpZW50cyhzZWxm KSBub2V4Y2VwdAorLSAgICBjcGRlZiBsaXN0IG1vbm9taWFscyhzZWxmKSBub2V4Y2VwdAorLSAg ICBjcGRlZiBsaXN0IHN1cHBvcnQoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgbGlzdCB0ZXJt cyhzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBvYmplY3QgY29lZmZpY2llbnQoc2VsZiwgUXVp dmVyUGF0aCBQKSBub2V4Y2VwdAorLSAgICBjZGVmIGxpc3QgX3NvcnRlZF9pdGVtc19mb3JfcHJp bnRpbmcoc2VsZikgbm9leGNlcHQKKy0gICAgY2RlZiBpbmxpbmUgUGF0aEFsZ2VicmFFbGVtZW50 IF9uZXdfKHNlbGYsIHBhdGhfaG9tb2dfcG9seV90ICpoKSBub2V4Y2VwdAorKyAgICBjcGRlZiBk aWN0IG1vbm9taWFsX2NvZWZmaWNpZW50cyhzZWxmKQorKyAgICBjcGRlZiBsaXN0IGNvZWZmaWNp ZW50cyhzZWxmKQorKyAgICBjcGRlZiBsaXN0IG1vbm9taWFscyhzZWxmKQorKyAgICBjcGRlZiBs aXN0IHN1cHBvcnQoc2VsZikKKysgICAgY3BkZWYgbGlzdCB0ZXJtcyhzZWxmKQorKyAgICBjcGRl ZiBvYmplY3QgY29lZmZpY2llbnQoc2VsZiwgUXVpdmVyUGF0aCBQKQorKyAgICBjZGVmIGxpc3Qg X3NvcnRlZF9pdGVtc19mb3JfcHJpbnRpbmcoc2VsZikKKysgICAgY2RlZiBpbmxpbmUgUGF0aEFs Z2VicmFFbGVtZW50IF9uZXdfKHNlbGYsIHBhdGhfaG9tb2dfcG9seV90ICpoKQorZGlmZiAtLWdp dCBhL3NyYy9zYWdlL3F1aXZlcnMvYWxnZWJyYV9lbGVtZW50cy5weGkgYi9zcmMvc2FnZS9xdWl2 ZXJzL2FsZ2VicmFfZWxlbWVudHMucHhpCitpbmRleCA3YjlhOTg4M2YyOC4uNDVkMTg0NzhmNjAg MTAwNjQ0CistLS0gYS9zcmMvc2FnZS9xdWl2ZXJzL2FsZ2VicmFfZWxlbWVudHMucHhpCisrKysg Yi9zcmMvc2FnZS9xdWl2ZXJzL2FsZ2VicmFfZWxlbWVudHMucHhpCitAQCAtODgsNyArODgsNyBA QCBjZGVmIGlubGluZSB2b2lkIG1vbl9mcmVlKHBhdGhfbW9uX3QgTSkgbm9leGNlcHQ6CisgICAg IGJpc2VxX2RlYWxsb2MoTS5wYXRoKQorIAorICMgTGluZWFyaXNhdGlvbgorLWNkZWYgaW5saW5l IHR1cGxlIG1vbl9waWNrbGUocGF0aF9tb25fdCBNKSBub2V4Y2VwdDoKKytjZGVmIGlubGluZSB0 dXBsZSBtb25fcGlja2xlKHBhdGhfbW9uX3QgTSk6CisgICAgIHJldHVybiAoYml0c2V0X3BpY2ts ZShNLnBhdGguZGF0YSkgaWYgTS5wYXRoLmxlbmd0aD4wIGVsc2UgKCksCisgICAgICAgICAgICAg TS5wYXRoLml0ZW1iaXRzaXplLCBNLnBhdGgubGVuZ3RoLCBNLnBvcywgTS5sX2xlbiwgTS5zX2xl bikKKyAKK0BAIC00MTksNyArNDE5LDcgQEAgY2RlZiBpbmxpbmUgbXBfc2l6ZV90IHRlcm1fdG90 YWxfZGVncmVlKHBhdGhfdGVybV90ICpUKSBub2V4Y2VwdDoKKyAgICAgcmV0dXJuIFQubW9uLnBh dGgubGVuZ3RoLVQubW9uLnNfbGVuCisgCisgIyBMaW5lYXJpc2F0aW9uCistY2RlZiBpbmxpbmUg dHVwbGUgdGVybV9waWNrbGUocGF0aF90ZXJtX3QgKlQpIG5vZXhjZXB0OgorK2NkZWYgaW5saW5l IHR1cGxlIHRlcm1fcGlja2xlKHBhdGhfdGVybV90ICpUKToKKyAgICAgcmV0dXJuICg8b2JqZWN0 PlQuY29lZiwgbW9uX3BpY2tsZShULm1vbikpCisgCisgIyBEZS1saW5lYXJpc2F0aW9uCitAQCAt Njg5LDcgKzY4OSw3IEBAIGNkZWYgYmludCBwb2x5X2ljb3B5X3NjYWxlKHBhdGhfcG9seV90ICpv dXQsIHBhdGhfcG9seV90ICpQLCBvYmplY3QgY29lZikgZXhjZXB0CisgICAgIHJldHVybiBUcnVl CisgCisgIyBMaW5lYXJpc2F0aW9uIG9mIGEgcGF0aCBwb2x5bm9taWFscworLWNkZWYgbGlzdCBw b2x5X3BpY2tsZShwYXRoX3BvbHlfdCAqUCkgbm9leGNlcHQ6CisrY2RlZiBsaXN0IHBvbHlfcGlj a2xlKHBhdGhfcG9seV90ICpQKToKKyAgICAgY2RlZiBsaXN0IEwgPSBbXQorICAgICBjZGVmIHBh dGhfdGVybV90ICpUID0gUC5sZWFkCisgICAgIHdoaWxlIFQgIT0gTlVMTDoKK0BAIC0xMjMyLDcg KzEyMzIsNyBAQCBjZGVmIHBhdGhfaG9tb2dfcG9seV90ICpob21vZ19wb2x5X2NvcHkocGF0aF9o b21vZ19wb2x5X3QgKkgpIGV4Y2VwdCBOVUxMOgorICAgICByZXR1cm4gb3V0CisgCisgIyBMaW5l YXJpc2F0aW9uCistY2RlZiBsaXN0IGhvbW9nX3BvbHlfcGlja2xlKHBhdGhfaG9tb2dfcG9seV90 ICpIKSBub2V4Y2VwdDoKKytjZGVmIGxpc3QgaG9tb2dfcG9seV9waWNrbGUocGF0aF9ob21vZ19w b2x5X3QgKkgpOgorICAgICBjZGVmIGxpc3QgTCA9IFtdCisgICAgIHdoaWxlIEggIT0gTlVMTDoK KyAgICAgICAgIEwuYXBwZW5kKChILnN0YXJ0LCBILmVuZCwgcG9seV9waWNrbGUoSC5wb2x5KSkp CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcXVpdmVycy9hbGdlYnJhX2VsZW1lbnRzLnB5eCBiL3Ny Yy9zYWdlL3F1aXZlcnMvYWxnZWJyYV9lbGVtZW50cy5weXgKK2luZGV4IDU0OTA2NzAxZDI2Li4z ZDA1YmE3ZTI3MCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3F1aXZlcnMvYWxnZWJyYV9lbGVtZW50 cy5weXgKKysrKyBiL3NyYy9zYWdlL3F1aXZlcnMvYWxnZWJyYV9lbGVtZW50cy5weXgKK0BAIC0y MTEsNyArMjExLDcgQEAgY2RlZiBjbGFzcyBQYXRoQWxnZWJyYUVsZW1lbnQoUmluZ0VsZW1lbnQp OgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gcGF0aF9hbGdlYnJhX2VsZW1lbnRfdW5w aWNrbGUsIChzZWxmLl9wYXJlbnQsIGhvbW9nX3BvbHlfcGlja2xlKHNlbGYuZGF0YSkpCisgCist ICAgIGNkZWYgbGlzdCBfc29ydGVkX2l0ZW1zX2Zvcl9wcmludGluZyhzZWxmKSBub2V4Y2VwdDoK KysgICAgY2RlZiBsaXN0IF9zb3J0ZWRfaXRlbXNfZm9yX3ByaW50aW5nKHNlbGYpOgorICAgICAg ICAgIiIiCisgICAgICAgICBSZXR1cm4gbGlzdCBvZiBwYWlycyBgYChNLGMpYGAsIHdoZXJlIGBg Y2BgIGlzIGEgY29lZmZpY2llbnQgYW5kIGBgTWBgCisgICAgICAgICB3aWxsIGJlIHBhc3NlZCB0 byBgYHNlbGYucGFyZW50KCkuX3JlcHJfbW9ub21pYWxgYCByZXNwLiB0bworQEAgLTQwMiw3ICs0 MDIsNyBAQCBjZGVmIGNsYXNzIFBhdGhBbGdlYnJhRWxlbWVudChSaW5nRWxlbWVudCk6CisgICAg ICAgICAgICAgSCA9IEgubnh0CisgICAgICAgICByZXR1cm4gVHJ1ZQorIAorLSAgICBjcGRlZiBk aWN0IG1vbm9taWFsX2NvZWZmaWNpZW50cyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZGlj dCBtb25vbWlhbF9jb2VmZmljaWVudHMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJl dHVybiB0aGUgZGljdGlvbmFyeSBrZXllZCBieSB0aGUgbW9ub21pYWxzIGFwcGVhcmluZworICAg ICAgICAgaW4gdGhpcyBlbGVtZW50LCB0aGUgdmFsdWVzIGJlaW5nIHRoZSBjb2VmZmljaWVudHMu CitAQCAtNDUxLDcgKzQ1MSw3IEBAIGNkZWYgY2xhc3MgUGF0aEFsZ2VicmFFbGVtZW50KFJpbmdF bGVtZW50KToKKyAgICAgICAgICAgICBIID0gSC5ueHQKKyAgICAgICAgIHJldHVybiBECisgCist ICAgIGNwZGVmIGxpc3QgY29lZmZpY2llbnRzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBs aXN0IGNvZWZmaWNpZW50cyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRo ZSBsaXN0IG9mIGNvZWZmaWNpZW50cy4KKyAKK0BAIC00ODUsNyArNDg1LDcgQEAgY2RlZiBjbGFz cyBQYXRoQWxnZWJyYUVsZW1lbnQoUmluZ0VsZW1lbnQpOgorICAgICAgICAgICAgIEggPSBILm54 dAorICAgICAgICAgcmV0dXJuIEwKKyAKKy0gICAgY3BkZWYgbGlzdCBtb25vbWlhbHMoc2VsZikg bm9leGNlcHQ6CisrICAgIGNwZGVmIGxpc3QgbW9ub21pYWxzKHNlbGYpOgorICAgICAgICAgIiIi CisgICAgICAgICBSZXR1cm4gdGhlIGxpc3Qgb2YgbW9ub21pYWxzIGFwcGVhcmluZyBpbiB0aGlz IGVsZW1lbnQuCisgCitAQCAtNTQ3LDcgKzU0Nyw3IEBAIGNkZWYgY2xhc3MgUGF0aEFsZ2VicmFF bGVtZW50KFJpbmdFbGVtZW50KToKKyAgICAgICAgICAgICBIID0gSC5ueHQKKyAgICAgICAgIHJl dHVybiBMCisgCistICAgIGNwZGVmIGxpc3QgdGVybXMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNw ZGVmIGxpc3QgdGVybXMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUg bGlzdCBvZiB0ZXJtcy4KKyAKK0BAIC02MDAsNyArNjAwLDcgQEAgY2RlZiBjbGFzcyBQYXRoQWxn ZWJyYUVsZW1lbnQoUmluZ0VsZW1lbnQpOgorICAgICAgICAgICAgIEggPSBILm54dAorICAgICAg ICAgcmV0dXJuIEwKKyAKKy0gICAgY3BkZWYgbGlzdCBzdXBwb3J0KHNlbGYpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBsaXN0IHN1cHBvcnQoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJl dHVybiB0aGUgbGlzdCBvZiBtb25vbWlhbHMsIGFzIGVsZW1lbnRzIG9mIHRoZSB1bmRlcmx5aW5n IHBhcnRpYWwgc2VtaWdyb3VwLgorIAorQEAgLTY4NSw3ICs2ODUsNyBAQCBjZGVmIGNsYXNzIFBh dGhBbGdlYnJhRWxlbWVudChSaW5nRWxlbWVudCk6CisgICAgICAgICAgICAgICAgIHJldHVybiB0 bXAKKyAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoInt9IGlzIG5vdCBhIHNpbmdsZSB0ZXJtIi5m b3JtYXQoc2VsZikpCisgCistICAgIGNwZGVmIG9iamVjdCBjb2VmZmljaWVudChzZWxmLCBRdWl2 ZXJQYXRoIFApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBvYmplY3QgY29lZmZpY2llbnQoc2VsZiwg UXVpdmVyUGF0aCBQKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBjb2VmZmlj aWVudCBvZiBhIG1vbm9taWFsLgorIAorQEAgLTc3NSw3ICs3NzUsNyBAQCBjZGVmIGNsYXNzIFBh dGhBbGdlYnJhRWxlbWVudChSaW5nRWxlbWVudCk6CisgICAgICAgICAgICAgICAgIFQgPSBULm54 dAorICAgICAgICAgICAgIEggPSBILm54dAorIAorLSAgICBjZGVmIFBhdGhBbGdlYnJhRWxlbWVu dCBfbmV3XyhzZWxmLCBwYXRoX2hvbW9nX3BvbHlfdCAqaCkgbm9leGNlcHQ6CisrICAgIGNkZWYg UGF0aEFsZ2VicmFFbGVtZW50IF9uZXdfKHNlbGYsIHBhdGhfaG9tb2dfcG9seV90ICpoKToKKyAg ICAgICAgICIiIgorICAgICAgICAgQ3JlYXRlIGEgbmV3IHBhdGggYWxnZWJyYSBlbGVtZW50IGZy b20gQyBpbnRlcmZhY2UgZGF0YS4KKyAgICAgICAgICIiIgorQEAgLTk0MSw3ICs5NDEsNyBAQCBj ZGVmIGNsYXNzIFBhdGhBbGdlYnJhRWxlbWVudChSaW5nRWxlbWVudCk6CisgICAgICAgICAgICAg c2VsZi5faGFzaCA9IGhhc2goZnJvemVuc2V0KHNlbGYubW9ub21pYWxfY29lZmZpY2llbnRzKCku aXRlbXMoKSkpCisgICAgICAgICByZXR1cm4gc2VsZi5faGFzaAorIAorLSAgICBjcGRlZiBfcmlj aGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21w XyhsZWZ0LCByaWdodCwgaW50IG9wKToKKyAgICAgICAgICIiIgorICAgICAgICAgSGVscGVyIGZv ciBjb21wYXJpc29uIG9mIHBhdGggYWxnZWJyYSBlbGVtZW50cy4KKyAKK0BAIC05OTksNyArOTk5 LDcgQEAgY2RlZiBjbGFzcyBQYXRoQWxnZWJyYUVsZW1lbnQoUmluZ0VsZW1lbnQpOgorICAgICAg ICAgcmV0dXJuIHJpY2hfdG9fYm9vbChvcCwgMSkKKyAKKyAgICAgIyBuZWdhdGlvbgorLSAgICBj cGRlZiBfbmVnXyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX25lZ18oc2VsZik6CisgICAg ICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0xMDEzLDcgKzEwMTMsNyBAQCBj ZGVmIGNsYXNzIFBhdGhBbGdlYnJhRWxlbWVudChSaW5nRWxlbWVudCk6CisgICAgICAgICByZXR1 cm4gc2VsZi5fbmV3Xyhob21vZ19wb2x5X25lZyhzZWxmLmRhdGEpKQorIAorICAgICAjIGFkZGl0 aW9uCistICAgIGNwZGVmIF9hZGRfKHNlbGYsIG90aGVyKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X2FkZF8oc2VsZiwgb3RoZXIpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6Cisg CitAQCAtMTA4OSw3ICsxMDg5LDcgQEAgY2RlZiBjbGFzcyBQYXRoQWxnZWJyYUVsZW1lbnQoUmlu Z0VsZW1lbnQpOgorICAgICAgICAgICAgICAgICAgICAgSDEgPSBIMS5ueHQKKyAgICAgICAgICAg ICAgICAgICAgIEgyID0gSDIubnh0CisgCistICAgIGNwZGVmIF9zdWJfKHNlbGYsIG90aGVyKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgX3N1Yl8oc2VsZiwgb3RoZXIpOgorICAgICAgICAgIiIiCisg ICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMTE3OCw3ICsxMTc4LDcgQEAgY2RlZiBjbGFzcyBQ YXRoQWxnZWJyYUVsZW1lbnQoUmluZ0VsZW1lbnQpOgorIAorICMgKHNjYWxhcikgbXVsdGlwbGlj YXRpb24KKyAKKy0gICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgcmlnaHQpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCByaWdodCk6CisgICAgICAgICAiIiIK KyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0xMjA4LDcgKzEyMDgsNyBAQCBjZGVmIGNsYXNz IFBhdGhBbGdlYnJhRWxlbWVudChSaW5nRWxlbWVudCk6CisgICAgICAgICAgICAgcmV0dXJuIHNl bGYuX25ld18ob3V0bnh0KQorICAgICAgICAgcmV0dXJuIHNlbGYuX25ld18ob3V0KQorIAorLSAg ICBjcGRlZiBfcm11bF8oc2VsZiwgRWxlbWVudCBsZWZ0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X3JtdWxfKHNlbGYsIEVsZW1lbnQgbGVmdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1Q TEVTOjoKKyAKK0BAIC0xMjc1LDcgKzEyNzUsNyBAQCBjZGVmIGNsYXNzIFBhdGhBbGdlYnJhRWxl bWVudChSaW5nRWxlbWVudCk6CisgCisgIyBNdWx0aXBsaWNhdGlvbiBpbiB0aGUgYWxnZWJyYQor IAorLSAgICBjcGRlZiBfbXVsXyhzZWxmLCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9t dWxfKHNlbGYsIG90aGVyKToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAor QEAgLTEzODEsNyArMTM4MSw3IEBAIGNkZWYgY2xhc3MgUGF0aEFsZ2VicmFFbGVtZW50KFJpbmdF bGVtZW50KToKKyAgICAgICAgICAgICAgICAgdG1wID0gdG1wLm54dAorICAgICAgICAgcmV0dXJu IHNlbGYuX25ld18ob3V0X29yaWcpCisgCistY3BkZWYgUGF0aEFsZ2VicmFFbGVtZW50IHBhdGhf YWxnZWJyYV9lbGVtZW50X3VucGlja2xlKFAsIGxpc3QgZGF0YSkgbm9leGNlcHQ6CisrY3BkZWYg UGF0aEFsZ2VicmFFbGVtZW50IHBhdGhfYWxnZWJyYV9lbGVtZW50X3VucGlja2xlKFAsIGxpc3Qg ZGF0YSk6CisgICAgICIiIgorICAgICBBdXhpbGlhcnkgZnVuY3Rpb24gZm9yIHVucGlja2xpbmcu CisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcXVpdmVycy9wYXRocy5weGQgYi9zcmMvc2FnZS9x dWl2ZXJzL3BhdGhzLnB4ZAoraW5kZXggODhiZmU5MmNhMGYuLjU3NTdiZjZlMjE5IDEwMDY0NAor LS0tIGEvc3JjL3NhZ2UvcXVpdmVycy9wYXRocy5weGQKKysrKyBiL3NyYy9zYWdlL3F1aXZlcnMv cGF0aHMucHhkCitAQCAtNCw5ICs0LDkgQEAgZnJvbSBzYWdlLmRhdGFfc3RydWN0dXJlcy5ib3Vu ZGVkX2ludGVnZXJfc2VxdWVuY2VzIGNpbXBvcnQgYmlzZXFfdAorIGNkZWYgY2xhc3MgUXVpdmVy UGF0aChNb25vaWRFbGVtZW50KToKKyAgICAgY2RlZiBiaXNlcV90IF9wYXRoCisgICAgIGNkZWYg aW50IF9zdGFydCwgX2VuZAorLSAgICBjZGVmIFF1aXZlclBhdGggX25ld18oc2VsZiwgaW50IHN0 YXJ0LCBpbnQgZW5kKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfbXVsXyhzZWxmLCBvdGhlcikgbm9l eGNlcHQKKy0gICAgY3BkZWYgX21vZF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0CistICAgIGNwZGVm IHR1cGxlIGNvbXBsZW1lbnQoc2VsZiwgUXVpdmVyUGF0aCBzdWJwYXRoKSBub2V4Y2VwdAorKyAg ICBjZGVmIFF1aXZlclBhdGggX25ld18oc2VsZiwgaW50IHN0YXJ0LCBpbnQgZW5kKQorKyAgICBj cGRlZiBfbXVsXyhzZWxmLCBvdGhlcikKKysgICAgY3BkZWYgX21vZF8oc2VsZiwgcmlnaHQpCisr ICAgIGNwZGVmIHR1cGxlIGNvbXBsZW1lbnQoc2VsZiwgUXVpdmVyUGF0aCBzdWJwYXRoKQorICAg ICBjcGRlZiBiaW50IGhhc19zdWJwYXRoKHNlbGYsIFF1aXZlclBhdGggc3VicGF0aCkgZXhjZXB0 IC0xCisgICAgIGNwZGVmIGJpbnQgaGFzX3ByZWZpeChzZWxmLCBRdWl2ZXJQYXRoIHN1YnBhdGgp IGV4Y2VwdCAtMQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3F1aXZlcnMvcGF0aHMucHl4IGIvc3Jj L3NhZ2UvcXVpdmVycy9wYXRocy5weXgKK2luZGV4IDEyY2Q3YjRhZDFlLi5hZWFkOTk2NzBhYiAx MDA2NDQKKy0tLSBhL3NyYy9zYWdlL3F1aXZlcnMvcGF0aHMucHl4CisrKysgYi9zcmMvc2FnZS9x dWl2ZXJzL3BhdGhzLnB5eAorQEAgLTEwOSw3ICsxMDksNyBAQCBjZGVmIGNsYXNzIFF1aXZlclBh dGgoTW9ub2lkRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIGJpc2VxX2RlYWxsb2Mo c2VsZi5fcGF0aCkKKyAKKy0gICAgY2RlZiBRdWl2ZXJQYXRoIF9uZXdfKHNlbGYsIGludCBzdGFy dCwgaW50IGVuZCkgbm9leGNlcHQ6CisrICAgIGNkZWYgUXVpdmVyUGF0aCBfbmV3XyhzZWxmLCBp bnQgc3RhcnQsIGludCBlbmQpOgorICAgICAgICAgIiIiCisgICAgICAgICBURVNUUzo6CisgCitA QCAtMjYwLDcgKzI2MCw3IEBAIGNkZWYgY2xhc3MgUXVpdmVyUGF0aChNb25vaWRFbGVtZW50KToK KyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX3BhdGgubGVuZ3RoICE9IDAKKyAK Ky0gICAgY3BkZWYgX3JpY2hjbXBfKGxlZnQsIHJpZ2h0LCBpbnQgb3ApIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIENvbXBhcmlzb24gZm9yIDpjbGFzczpgUXVpdmVyUGF0aHNgLgorIAorQEAgLTQ2NSw3 ICs0NjUsNyBAQCBjZGVmIGNsYXNzIFF1aXZlclBhdGgoTW9ub2lkRWxlbWVudCk6CisgICAgICAg ICBmb3IgaSBpbiByYW5nZShzZWxmLl9wYXRoLmxlbmd0aCk6CisgICAgICAgICAgICAgeWllbGQg RVtiaXNlcV9nZXRpdGVtKHNlbGYuX3BhdGgsIGkpXQorIAorLSAgICBjcGRlZiBfbXVsXyhzZWxm LCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9tdWxfKHNlbGYsIG90aGVyKToKKyAgICAg ICAgICIiIgorICAgICAgICAgQ29tcG9zZSB0d28gcGF0aHMuCisgCitAQCAtNTAzLDcgKzUwMyw3 IEBAIGNkZWYgY2xhc3MgUXVpdmVyUGF0aChNb25vaWRFbGVtZW50KToKKyAgICAgICAgIGJpc2Vx X2luaXRfY29uY2F0KE9VVC5fcGF0aCwgc2VsZi5fcGF0aCxyaWdodC5fcGF0aCkKKyAgICAgICAg IHJldHVybiBPVVQKKyAKKy0gICAgY3BkZWYgX21vZF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBfbW9kXyhzZWxmLCBvdGhlcik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJl dHVybiB3aGF0IHJlbWFpbnMgb2YgdGhpcyBwYXRoIGFmdGVyIHJlbW92aW5nIHRoZSBpbml0aWFs IHNlZ21lbnQgYGBvdGhlcmBgLgorIAorQEAgLTYwNiw3ICs2MDYsNyBAQCBjZGVmIGNsYXNzIFF1 aXZlclBhdGgoTW9ub2lkRWxlbWVudCk6CisgICAgICAgICAgICAgcmV0dXJuIChOb25lLCBOb25l LCBOb25lKQorICAgICAgICAgcmV0dXJuIChzZWxmWzppXSwgc2VsZltpOl0sIFBbc2VsZi5fcGF0 aC5sZW5ndGgtaTpdKQorIAorLSAgICBjcGRlZiB0dXBsZSBjb21wbGVtZW50KHNlbGYsIFF1aXZl clBhdGggc3VicGF0aCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHR1cGxlIGNvbXBsZW1lbnQoc2Vs ZiwgUXVpdmVyUGF0aCBzdWJwYXRoKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGEg cGFpciBgYChhLGIpYGAgb2YgcGF0aHMgcy50LiBgYHNlbGYgPSBhKnN1YnBhdGgqYmBgLAorICAg ICAgICAgb3IgYGAoTm9uZSwgTm9uZSlgYCBpZiBgYHN1YnBhdGhgYCBpcyBub3QgYSBzdWJwYXRo IG9mIHRoaXMgcGF0aC4KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9jb21wbGV4X2FyYi5w eGQgYi9zcmMvc2FnZS9yaW5ncy9jb21wbGV4X2FyYi5weGQKK2luZGV4IGQ5ODU3NDVjMWY1Li4w NmRkOGVlMDhlYSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL2NvbXBsZXhfYXJiLnB4ZAor KysrIGIvc3JjL3NhZ2UvcmluZ3MvY29tcGxleF9hcmIucHhkCitAQCAtMTQsMTUgKzE0LDE1IEBA IGNkZWYgaW50IGFjYl90b19Db21wbGV4SW50ZXJ2YWxGaWVsZEVsZW1lbnQoCisgCisgY2RlZiBj bGFzcyBDb21wbGV4QmFsbChSaW5nRWxlbWVudCk6CisgICAgIGNkZWYgYWNiX3QgdmFsdWUKKy0g ICAgY2RlZiBDb21wbGV4QmFsbCBfbmV3KHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIF9hZGRf KHNlbGYsIG90aGVyKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfbXVsXyhzZWxmLCBvdGhlcikgbm9l eGNlcHQKKy0gICAgY3BkZWYgQ29tcGxleEludGVydmFsRmllbGRFbGVtZW50IF9jb21wbGV4X21w ZmlfKHNlbGYsIHBhcmVudCkgbm9leGNlcHQKKy0gICAgY3BkZWYgUmVhbEJhbGwgcmVhbChzZWxm KSBub2V4Y2VwdAorLSAgICBjcGRlZiBSZWFsQmFsbCBpbWFnKHNlbGYpIG5vZXhjZXB0CistICAg IGNwZGVmIHBvdyhzZWxmLCBleHBvLCBhbmFseXRpYz0/KSBub2V4Y2VwdAorKyAgICBjZGVmIENv bXBsZXhCYWxsIF9uZXcoc2VsZikKKysgICAgY3BkZWYgX2FkZF8oc2VsZiwgb3RoZXIpCisrICAg IGNwZGVmIF9tdWxfKHNlbGYsIG90aGVyKQorKyAgICBjcGRlZiBDb21wbGV4SW50ZXJ2YWxGaWVs ZEVsZW1lbnQgX2NvbXBsZXhfbXBmaV8oc2VsZiwgcGFyZW50KQorKyAgICBjcGRlZiBSZWFsQmFs bCByZWFsKHNlbGYpCisrICAgIGNwZGVmIFJlYWxCYWxsIGltYWcoc2VsZikKKysgICAgY3BkZWYg cG93KHNlbGYsIGV4cG8sIGFuYWx5dGljPT8pCisgCistICAgIGNkZWYgaW5saW5lIENvbXBsZXhC YWxsIF9uZXcoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgaW5saW5lIENvbXBsZXhCYWxsIF9u ZXcoc2VsZik6CisgICAgICAgICBjZGVmIENvbXBsZXhCYWxsIHJlcyA9IENvbXBsZXhCYWxsLl9f bmV3X18oQ29tcGxleEJhbGwpCisgICAgICAgICByZXMuX3BhcmVudCA9IHNlbGYuX3BhcmVudAor ICAgICAgICAgcmV0dXJuIHJlcworZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL2NvbXBsZXhf YXJiLnB5eCBiL3NyYy9zYWdlL3JpbmdzL2NvbXBsZXhfYXJiLnB5eAoraW5kZXggNDZjMDFkYTRl YjYuLjNlZDdkZTY0MDlhIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvY29tcGxleF9hcmIu cHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9jb21wbGV4X2FyYi5weXgKK0BAIC0xMjkzLDcgKzEy OTMsNyBAQCBjZGVmIGJpbnQgYXJiX2d0X25lZ19vbmUoYXJiX3QgYikgbm9leGNlcHQ6CisgICAg IGFyYl9jbGVhcihuZWdfb25lKQorICAgICByZXR1cm4gcmVzCisgCistY2RlZiBpbmxpbmUgcmVh bF9iYWxsX2ZpZWxkKENvbXBsZXhCYWxsIGJhbGwpIG5vZXhjZXB0OgorK2NkZWYgaW5saW5lIHJl YWxfYmFsbF9maWVsZChDb21wbGV4QmFsbCBiYWxsKToKKyAgICAgcmV0dXJuIGJhbGwuX3BhcmVu dC5fYmFzZQorIAorIGNkZWYgY2xhc3MgQ29tcGxleEJhbGwoUmluZ0VsZW1lbnQpOgorQEAgLTE1 NDYsNyArMTU0Niw3IEBAIGNkZWYgY2xhc3MgQ29tcGxleEJhbGwoUmluZ0VsZW1lbnQpOgorIAor ICAgICAjIENvbnZlcnNpb25zCisgCistICAgIGNwZGVmIENvbXBsZXhJbnRlcnZhbEZpZWxkRWxl bWVudCBfY29tcGxleF9tcGZpXyhzZWxmLCBwYXJlbnQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBD b21wbGV4SW50ZXJ2YWxGaWVsZEVsZW1lbnQgX2NvbXBsZXhfbXBmaV8oc2VsZiwgcGFyZW50KToK KyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIDpjbGFzczpgQ29tcGxleEludGVydmFsRmll bGRFbGVtZW50YCBvZiB0aGUgc2FtZSB2YWx1ZS4KKyAKK0BAIC0xODA1LDcgKzE4MDUsNyBAQCBj ZGVmIGNsYXNzIENvbXBsZXhCYWxsKFJpbmdFbGVtZW50KToKKyAKKyAgICAgIyBSZWFsIGFuZCBp bWFnaW5hcnkgcGFydCwgbWlkcG9pbnQsIHJhZGl1cworIAorLSAgICBjcGRlZiBSZWFsQmFsbCBy ZWFsKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBSZWFsQmFsbCByZWFsKHNlbGYpOgorICAg ICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHJlYWwgcGFydCBvZiB0aGlzIGJhbGwuCisg CitAQCAtMTgyNiw3ICsxODI2LDcgQEAgY2RlZiBjbGFzcyBDb21wbGV4QmFsbChSaW5nRWxlbWVu dCk6CisgICAgICAgICBhcmJfc2V0KHIudmFsdWUsIGFjYl9yZWFscmVmKHNlbGYudmFsdWUpKQor ICAgICAgICAgcmV0dXJuIHIKKyAKKy0gICAgY3BkZWYgUmVhbEJhbGwgaW1hZyhzZWxmKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgUmVhbEJhbGwgaW1hZyhzZWxmKToKKyAgICAgICAgICIiIgorICAg ICAgICAgUmV0dXJuIHRoZSBpbWFnaW5hcnkgcGFydCBvZiB0aGlzIGJhbGwuCisgCitAQCAtMjMz MSw3ICsyMzMxLDcgQEAgY2RlZiBjbGFzcyBDb21wbGV4QmFsbChSaW5nRWxlbWVudCk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIHJldHVybiBhY2JfaXNfcmVhbChzZWxmLnZhbHVlKQorIAorLSAg ICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdodCwgaW50IG9wKToKKyAgICAgICAgICIiIgorICAgICAg ICAgQ29tcGFyZSBgYGxlZnRgYCBhbmQgYGByaWdodGBgLgorIAorQEAgLTI2MTgsNyArMjYxOCw3 IEBAIGNkZWYgY2xhc3MgQ29tcGxleEJhbGwoUmluZ0VsZW1lbnQpOgorICAgICAgICAgYWNiX2Nv bmoocmVzLnZhbHVlLCBzZWxmLnZhbHVlKQorICAgICAgICAgcmV0dXJuIHJlcworIAorLSAgICBj cGRlZiBfYWRkXyhzZWxmLCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKHNlbGYs IG90aGVyKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBzdW0gb2YgdHdvIGJh bGxzLCByb3VuZGVkIHRvIHRoZSBhbWJpZW50IGZpZWxkJ3MgcHJlY2lzaW9uLgorIAorQEAgLTI2 MzYsNyArMjYzNiw3IEBAIGNkZWYgY2xhc3MgQ29tcGxleEJhbGwoUmluZ0VsZW1lbnQpOgorICAg ICAgICAgaWYgX2RvX3NpZyhwcmVjKHNlbGYpKTogc2lnX29mZigpCisgICAgICAgICByZXR1cm4g cmVzCisgCistICAgIGNwZGVmIF9zdWJfKHNlbGYsIG90aGVyKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgX3N1Yl8oc2VsZiwgb3RoZXIpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhl IGRpZmZlcmVuY2Ugb2YgdHdvIGJhbGxzLCByb3VuZGVkIHRvIHRoZSBhbWJpZW50IGZpZWxkJ3MK KyAgICAgICAgIHByZWNpc2lvbi4KK0BAIC0yNjc3LDcgKzI2NzcsNyBAQCBjZGVmIGNsYXNzIENv bXBsZXhCYWxsKFJpbmdFbGVtZW50KToKKyAgICAgICAgIGlmIF9kb19zaWcocHJlYyhzZWxmKSk6 IHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorLSAgICBjcGRlZiBfbXVsXyhzZWxm LCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9tdWxfKHNlbGYsIG90aGVyKToKKyAgICAg ICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBwcm9kdWN0IG9mIHR3byBiYWxscywgcm91bmRl ZCB0byB0aGUgYW1iaWVudCBmaWVsZCdzCisgICAgICAgICBwcmVjaXNpb24uCitAQCAtMjc3Nyw3 ICsyNzc3LDcgQEAgY2RlZiBjbGFzcyBDb21wbGV4QmFsbChSaW5nRWxlbWVudCk6CisgICAgICAg ICAgICAgcmFpc2UgVHlwZUVycm9yKCJ1bnN1cHBvcnRlZCBvcGVyYW5kIHR5cGUocykgZm9yID4+ OiAne30nIGFuZCAne30nIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZm9ybWF0KHR5 cGUodmFsKS5fX25hbWVfXywgdHlwZShzaGlmdCkuX19uYW1lX18pKQorIAorLSAgICBjcGRlZiBf ZGl2XyhzZWxmLCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9kaXZfKHNlbGYsIG90aGVy KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBxdW90aWVudCBvZiB0d28gYmFs bHMsIHJvdW5kZWQgdG8gdGhlIGFtYmllbnQgZmllbGQncworICAgICAgICAgcHJlY2lzaW9uLgor QEAgLTI4NDQsNyArMjg0NCw3IEBAIGNkZWYgY2xhc3MgQ29tcGxleEJhbGwoUmluZ0VsZW1lbnQp OgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXR1cm4gc2FnZS5zdHJ1Y3R1cmUuZWxl bWVudC5iaW5fb3AoYmFzZSwgZXhwbywgb3BlcmF0b3IucG93KQorIAorLSAgICBjcGRlZiBwb3co c2VsZiwgZXhwbywgYW5hbHl0aWM9RmFsc2UpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBwb3coc2Vs ZiwgZXhwbywgYW5hbHl0aWM9RmFsc2UpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmFpc2Ug dGhpcyBiYWxsIHRvIHRoZSBwb3dlciBvZiBgYGV4cG9gYC4KKyAKK2RpZmYgLS1naXQgYS9zcmMv c2FnZS9yaW5ncy9jb21wbGV4X2NvbnZlcnNpb24ucHhkIGIvc3JjL3NhZ2UvcmluZ3MvY29tcGxl eF9jb252ZXJzaW9uLnB4ZAoraW5kZXggZDYxNDQ5NzRmOWEuLjIwNTMwMDVlMzQwIDEwMDY0NAor LS0tIGEvc3JjL3NhZ2UvcmluZ3MvY29tcGxleF9jb252ZXJzaW9uLnB4ZAorKysrIGIvc3JjL3Nh Z2UvcmluZ3MvY29tcGxleF9jb252ZXJzaW9uLnB4ZAorQEAgLTQsNCArNCw0IEBAIGZyb20gc2Fn ZS5jYXRlZ29yaWVzLm1hcCBjaW1wb3J0IE1hcAorIAorIGNkZWYgY2xhc3MgQ0N0b0NERihNYXAp OgorIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KSBub2V4Y2VwdAorKyAgICBj cGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3Jpbmdz L2NvbXBsZXhfY29udmVyc2lvbi5weXggYi9zcmMvc2FnZS9yaW5ncy9jb21wbGV4X2NvbnZlcnNp b24ucHl4CitpbmRleCAzOWM4YjYzZWI1NS4uZDY5MmUyODAxZDcgMTAwNjQ0CistLS0gYS9zcmMv c2FnZS9yaW5ncy9jb21wbGV4X2NvbnZlcnNpb24ucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9j b21wbGV4X2NvbnZlcnNpb24ucHl4CitAQCAtNSw3ICs1LDcgQEAgZnJvbSBzYWdlLmxpYnMuZ3Ns LmNvbXBsZXggY2ltcG9ydCBHU0xfU0VUX0NPTVBMRVgKKyAKKyBjZGVmIGNsYXNzIENDdG9DREYo TWFwKToKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCkgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpOgorICAgICAgICAgIiIiCisgICAgICAg ICBFWEFNUExFUzo6CisgICAgICAgICAgICAgc2FnZTogZnJvbSBzYWdlLnJpbmdzLmNvbXBsZXhf Y29udmVyc2lvbiBpbXBvcnQgQ0N0b0NERgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL2Nv bXBsZXhfZG91YmxlLnB4ZCBiL3NyYy9zYWdlL3JpbmdzL2NvbXBsZXhfZG91YmxlLnB4ZAoraW5k ZXggZjJhZjRiZDY3YjcuLjczNTI1MjBjNzY5IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3Mv Y29tcGxleF9kb3VibGUucHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9jb21wbGV4X2RvdWJsZS5w eGQKK0BAIC0xMCwxMCArMTAsMTAgQEAgY2RlZiBjbGFzcyBDb21wbGV4RG91YmxlRmllbGRfY2xh c3Moc2FnZS5yaW5ncy5hYmMuQ29tcGxleERvdWJsZUZpZWxkKToKKyAKKyBjZGVmIGNsYXNzIENv bXBsZXhEb3VibGVFbGVtZW50KHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuRmllbGRFbGVtZW50KToK KyAgICAgY2RlZiBnc2xfY29tcGxleCBfY29tcGxleAorLSAgICBjZGVmIENvbXBsZXhEb3VibGVF bGVtZW50IF9uZXdfYyhzZWxmLCBnc2xfY29tcGxleCB4KSBub2V4Y2VwdAorLSAgICBjcGRlZiBf YWRkXyhzZWxmLCBvdGhlcikgbm9leGNlcHQKKy0gICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIp IG5vZXhjZXB0CistICAgIGNwZGVmIF9wb3dfKHNlbGYsIG90aGVyKSBub2V4Y2VwdAorKyAgICBj ZGVmIENvbXBsZXhEb3VibGVFbGVtZW50IF9uZXdfYyhzZWxmLCBnc2xfY29tcGxleCB4KQorKyAg ICBjcGRlZiBfYWRkXyhzZWxmLCBvdGhlcikKKysgICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIp CisrICAgIGNwZGVmIF9wb3dfKHNlbGYsIG90aGVyKQorIAorIAorLWNkZWYgQ29tcGxleERvdWJs ZUVsZW1lbnQgbmV3X0NvbXBsZXhEb3VibGVFbGVtZW50KCkgbm9leGNlcHQKKytjZGVmIENvbXBs ZXhEb3VibGVFbGVtZW50IG5ld19Db21wbGV4RG91YmxlRWxlbWVudCgpCitkaWZmIC0tZ2l0IGEv c3JjL3NhZ2UvcmluZ3MvY29tcGxleF9kb3VibGUucHl4IGIvc3JjL3NhZ2UvcmluZ3MvY29tcGxl eF9kb3VibGUucHl4CitpbmRleCBhMTRkOGFjN2VjOS4uNTJiMThhMmFjYjcgMTAwNjQ0CistLS0g YS9zcmMvc2FnZS9yaW5ncy9jb21wbGV4X2RvdWJsZS5weXgKKysrKyBiL3NyYy9zYWdlL3Jpbmdz L2NvbXBsZXhfZG91YmxlLnB5eAorQEAgLTM3Niw3ICszNzYsNyBAQCBjZGVmIGNsYXNzIENvbXBs ZXhEb3VibGVGaWVsZF9jbGFzcyhzYWdlLnJpbmdzLmFiYy5Db21wbGV4RG91YmxlRmllbGQpOgor ICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXR1cm4gQ29tcGxleERvdWJsZUVsZW1lbnQo eCwgMCkKKyAKKy0gICAgY3BkZWYgX2NvZXJjZV9tYXBfZnJvbV8oc2VsZiwgUykgbm9leGNlcHQ6 CisrICAgIGNwZGVmIF9jb2VyY2VfbWFwX2Zyb21fKHNlbGYsIFMpOgorICAgICAgICAgIiIiCisg ICAgICAgICBSZXR1cm4gdGhlIGNhbm9uaWNhbCBjb2VyY2Ugb2YgYHhgIGludG8gdGhlIGNvbXBs ZXggZG91YmxlIGZpZWxkLCBpZgorICAgICAgICAgaXQgaXMgZGVmaW5lZCwgb3RoZXJ3aXNlIHJh aXNlIGEgYGBUeXBlRXJyb3JgYC4KK0BAIC02OTAsNyArNjkwLDcgQEAgY2RlZiBjbGFzcyBDb21w bGV4RG91YmxlRmllbGRfY2xhc3Moc2FnZS5yaW5ncy5hYmMuQ29tcGxleERvdWJsZUZpZWxkKToK KyAgICAgICAgIHJldHVybiBGYWN0b3JpemF0aW9uKFsoeCAtIGEsIDEpIGZvciBhIGluIHJvb3Rz XSwgdW5pdCkKKyAKKyAKKy1jZGVmIENvbXBsZXhEb3VibGVFbGVtZW50IG5ld19Db21wbGV4RG91 YmxlRWxlbWVudCgpIG5vZXhjZXB0OgorK2NkZWYgQ29tcGxleERvdWJsZUVsZW1lbnQgbmV3X0Nv bXBsZXhEb3VibGVFbGVtZW50KCk6CisgICAgICIiIgorICAgICBDcmVhdGVzIGEgbmV3IChlbXB0 eSkgOmNsYXNzOmBDb21wbGV4RG91YmxlRWxlbWVudGAuCisgICAgICIiIgorQEAgLTc2MCw3ICs3 NjAsNyBAQCBjZGVmIGNsYXNzIENvbXBsZXhEb3VibGVFbGVtZW50KEZpZWxkRWxlbWVudCk6Cisg ICAgICAgICByZXR1cm4gKENvbXBsZXhEb3VibGVFbGVtZW50LAorICAgICAgICAgICAgICAgICAo R1NMX1JFQUwoc2VsZi5fY29tcGxleCksIEdTTF9JTUFHKHNlbGYuX2NvbXBsZXgpKSkKKyAKKy0g ICAgY2RlZiBDb21wbGV4RG91YmxlRWxlbWVudCBfbmV3X2Moc2VsZiwgZ3NsX2NvbXBsZXggeCkg bm9leGNlcHQ6CisrICAgIGNkZWYgQ29tcGxleERvdWJsZUVsZW1lbnQgX25ld19jKHNlbGYsIGdz bF9jb21wbGV4IHgpOgorICAgICAgICAgIiIiCisgICAgICAgICBDLWxldmVsIGNvZGUgZm9yIGNy ZWF0aW5nIGEgOmNsYXNzOmBDb21wbGV4RG91YmxlRWxlbWVudGAgZnJvbSBhCisgICAgICAgICBg YGdzbF9jb21wbGV4YGAuCitAQCAtNzg1LDcgKzc4NSw3IEBAIGNkZWYgY2xhc3MgQ29tcGxleERv dWJsZUVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJu IGhhc2goY29tcGxleChzZWxmKSkKKyAKKy0gICAgY3BkZWYgX3JpY2hjbXBfKGxlZnQsIHJpZ2h0 LCBpbnQgb3ApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGlu dCBvcCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFdlIG9yZGVyIHRoZSBjb21wbGV4IG51bWJl cnMgaW4gZGljdGlvbmFyeSBvcmRlciBieSByZWFsIHBhcnRzIHRoZW4KKyAgICAgICAgIGltYWdp bmFyeSBwYXJ0cy4KK0BAIC0xMTU3LDcgKzExNTcsNyBAQCBjZGVmIGNsYXNzIENvbXBsZXhEb3Vi bGVFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICMgQXJpdGhtZXRpYworICAgICAjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIworIAorLSAgICBjcGRlZiBfYWRkXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAg IGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgQWRkIGBg c2VsZmBgIGFuZCBgYHJpZ2h0YGAuCisgCitAQCAtMTE2OSw3ICsxMTY5LDcgQEAgY2RlZiBjbGFz cyBDb21wbGV4RG91YmxlRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgcmV0dXJuIHNl bGYuX25ld19jKGdzbF9jb21wbGV4X2FkZChzZWxmLl9jb21wbGV4LAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoPENvbXBsZXhEb3VibGVFbGVtZW50PnJpZ2h0 KS5fY29tcGxleCkpCisgCistICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoK KysgICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBT dWJ0cmFjdCBgYHNlbGZgYCBhbmQgYGByaWdodGBgLgorIAorQEAgLTExODEsNyArMTE4MSw3IEBA IGNkZWYgY2xhc3MgQ29tcGxleERvdWJsZUVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAg IHJldHVybiBzZWxmLl9uZXdfYyhnc2xfY29tcGxleF9zdWIoc2VsZi5fY29tcGxleCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICg8Q29tcGxleERvdWJsZUVsZW1lbnQ+cmlnaHQp Ll9jb21wbGV4KSkKKyAKKy0gICAgY3BkZWYgX211bF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBfbXVsXyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIE11 bHRpcGx5IGBgc2VsZmBgIGFuZCBgYHJpZ2h0YGAuCisgCitAQCAtMTE5Myw3ICsxMTkzLDcgQEAg Y2RlZiBjbGFzcyBDb21wbGV4RG91YmxlRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAg cmV0dXJuIHNlbGYuX25ld19jKGdzbF9jb21wbGV4X211bChzZWxmLl9jb21wbGV4LAorICAgICAg ICAgICAgICAgICAgICAgICAgKDxDb21wbGV4RG91YmxlRWxlbWVudD5yaWdodCkuX2NvbXBsZXgp KQorIAorLSAgICBjcGRlZiBfZGl2XyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9kaXZfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgRGl2aWRlIGBgc2Vs ZmBgIGJ5IGBgcmlnaHRgYC4KKyAKK0BAIC0xMjI3LDcgKzEyMjcsNyBAQCBjZGVmIGNsYXNzIENv bXBsZXhEb3VibGVFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAg IHJldHVybiBzZWxmLl9uZXdfYyhnc2xfY29tcGxleF9pbnZlcnNlKHNlbGYuX2NvbXBsZXgpKQor IAorLSAgICBjcGRlZiBfbmVnXyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX25lZ18oc2Vs Zik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgbmVn YXRpdmUgb2YgdGhlIGNvbXBsZXggbnVtYmVyIGB6YDoKKyAKK0BAIC0xNjE0LDcgKzE2MTQsNyBA QCBjZGVmIGNsYXNzIENvbXBsZXhEb3VibGVFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLnJlYWwoKS5pc19OYU4oKSBvciBzZWxmLmltYWco KS5pc19OYU4oKQorIAorLSAgICBjcGRlZiBfcG93XyhzZWxmLCBvdGhlcikgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIF9wb3dfKHNlbGYsIG90aGVyKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFRo ZSBjb21wbGV4IG51bWJlciBgYHNlbGZgYCByYWlzZWQgdG8gdGhlIHBvd2VyIGBgb3RoZXJgYC4K KyAKK0BAIC0xNjgwLDcgKzE2ODAsNyBAQCBjZGVmIGNsYXNzIENvbXBsZXhEb3VibGVFbGVtZW50 KEZpZWxkRWxlbWVudCk6CisgICAgICAgICB6ID0gPENvbXBsZXhEb3VibGVFbGVtZW50Pm90aGVy CisgICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2MoZ3NsX2NvbXBsZXhfcG93KHNlbGYuX2NvbXBs ZXgsIHouX2NvbXBsZXgpKQorIAorLSAgICBjZGVmIF9wb3dfbG9uZyhzZWxmLCBsb25nIG90aGVy KSBub2V4Y2VwdDoKKysgICAgY2RlZiBfcG93X2xvbmcoc2VsZiwgbG9uZyBvdGhlcik6CisgICAg ICAgICBpZiBvdGhlciA9PSAxOgorICAgICAgICAgICAgIHJldHVybiBzZWxmCisgICAgICAgICBl bGlmIG90aGVyID09IDA6CitAQCAtMTY5Niw3ICsxNjk2LDcgQEAgY2RlZiBjbGFzcyBDb21wbGV4 RG91YmxlRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgICAgIHJlcyA9IGdzbF9jb21w bGV4X3Bvd19yZWFsKHNlbGYuX2NvbXBsZXgsIG90aGVyKQorICAgICAgICAgcmV0dXJuIHNlbGYu X25ld19jKHJlcykKKyAKKy0gICAgY3BkZWYgX3Bvd19pbnQoc2VsZiwgb3RoZXIpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBfcG93X2ludChzZWxmLCBvdGhlcik6CisgICAgICAgICBpZiBub3QgR1NM X0lNQUcoc2VsZi5fY29tcGxleCk6CisgICAgICAgICAgICAgIyBJZiBzZWxmIGlzIHJlYWwsIHRo ZSByZXN1bHQgc2hvdWxkIGJlIHJlYWwgdG9vCisgICAgICAgICAgICAgcmVhbCA9IEdTTF9SRUFM KHNlbGYuX2NvbXBsZXgpICoqIDxkb3VibGU+b3RoZXIKK0BAIC0yNTE0LDcgKzI1MTQsNyBAQCBj ZGVmIGNsYXNzIEZsb2F0VG9DREYoTW9ycGhpc20pOgorICAgICAgICAgICAgIFIgPSBTZXRfUHl0 aG9uVHlwZShSKQorICAgICAgICAgTW9ycGhpc20uX19pbml0X18oc2VsZiwgSG9tKFIsIENERikp CisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KToKKyAgICAgICAgICIiIgorICAgICAgICAgQ3Jl YXRlIGFuIDpjbGFzczpgQ29tcGxleERvdWJsZUVsZW1lbnRgLgorIAorQEAgLTI1NjUsNyArMjU2 NSw3IEBAIGNkZWYgY2xhc3MgQ29tcGxleFRvQ0RGKE1vcnBoaXNtKToKKyAgICAgICAgICAgICBS ID0gU2V0X1B5dGhvblR5cGUoUikKKyAgICAgICAgIE1vcnBoaXNtLl9faW5pdF9fKHNlbGYsIEhv bShSLCBDREYpKQorIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIENyZWF0ZSBhbiA6Y2xhc3M6YENvbXBsZXhEb3VibGVFbGVtZW50YC4KKyAKK0BAIC0y NjI5LDcgKzI2MjksNyBAQCBjZGVmIGlubGluZSBkb3VibGUgY29tcGxleCBleHRyYWN0X2RvdWJs ZV9jb21wbGV4KENvbXBsZXhEb3VibGVFbGVtZW50IHgpIG5vZXhjZQorICAgICByZXR1cm4gegor IAorIAorLWNkZWYgaW5saW5lIENvbXBsZXhEb3VibGVFbGVtZW50IENvbXBsZXhEb3VibGVFbGVt ZW50X2Zyb21fZG91Ymxlcyhkb3VibGUgcmUsIGRvdWJsZSBpbSkgbm9leGNlcHQ6CisrY2RlZiBp bmxpbmUgQ29tcGxleERvdWJsZUVsZW1lbnQgQ29tcGxleERvdWJsZUVsZW1lbnRfZnJvbV9kb3Vi bGVzKGRvdWJsZSByZSwgZG91YmxlIGltKToKKyAgICAgIiIiCisgICAgIENyZWF0ZSBhIG5ldyA6 Y2xhc3M6YENvbXBsZXhEb3VibGVFbGVtZW50YCB3aXRoIHRoZSBzcGVjaWZpZWQgcmVhbCBhbmQK KyAgICAgaW1hZ2luYXJ5IHBhcnRzLgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL2NvbXBs ZXhfaW50ZXJ2YWwucHhkIGIvc3JjL3NhZ2UvcmluZ3MvY29tcGxleF9pbnRlcnZhbC5weGQKK2lu ZGV4IDYwZDhjMDEwY2Q4Li5mNWM1OWRlNGQ3YSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3Jpbmdz L2NvbXBsZXhfaW50ZXJ2YWwucHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9jb21wbGV4X2ludGVy dmFsLnB4ZAorQEAgLTExLDcgKzExLDcgQEAgY2RlZiBjbGFzcyBDb21wbGV4SW50ZXJ2YWxGaWVs ZEVsZW1lbnQoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5GaWVsZEVsZW1lbnQpOgorICAgICBjZGVm IG1wZnJfcHJlY190IF9wcmVjCisgICAgIGNkZWYgb2JqZWN0IF9tdWx0aXBsaWNhdGl2ZV9vcmRl cgorIAorLSAgICBjZGVmIGlubGluZSBDb21wbGV4SW50ZXJ2YWxGaWVsZEVsZW1lbnQgX25ldyhz ZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBpbmxpbmUgQ29tcGxleEludGVydmFsRmllbGRFbGVt ZW50IF9uZXcoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFF1aWNrbHkgY3JlYXRlIGEg bmV3IGNvbXBsZXggaW50ZXJ2YWwgd2l0aCB0aGUgc2FtZSBwYXJlbnQgYXMKKyAgICAgICAgIGBg c2VsZmBgLgorQEAgLTIwLDcgKzIwLDcgQEAgY2RlZiBjbGFzcyBDb21wbGV4SW50ZXJ2YWxGaWVs ZEVsZW1lbnQoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5GaWVsZEVsZW1lbnQpOgorICAgICAgICAg Y2RlZiBvYmplY3QgX211bHRpcGxpY2F0aXZlX29yZGVyID0gTm9uZQorICAgICAgICAgcmV0dXJu IHQuX19uZXdfXyh0LCBzZWxmLl9wYXJlbnQpCisgCistICAgIGNkZWYgaW5saW5lIFJlYWxJbnRl cnZhbEZpZWxkRWxlbWVudCBfbmV3X3JlYWwoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgaW5s aW5lIFJlYWxJbnRlcnZhbEZpZWxkRWxlbWVudCBfbmV3X3JlYWwoc2VsZik6CisgICAgICAgICAi IiIKKyAgICAgICAgIFF1aWNrbHkgY3JlYXRlIGEgbmV3IHJlYWwgaW50ZXJ2YWwgd2l0aCB0aGUg c2FtZSBwcmVjaXNpb24gYXMKKyAgICAgICAgIGBgc2VsZmBgLgorZGlmZiAtLWdpdCBhL3NyYy9z YWdlL3JpbmdzL2NvbXBsZXhfaW50ZXJ2YWwucHl4IGIvc3JjL3NhZ2UvcmluZ3MvY29tcGxleF9p bnRlcnZhbC5weXgKK2luZGV4IDAyMzVlYTUyYzY5Li43Nzg4MGE4OWQ3ZCAxMDA2NDQKKy0tLSBh L3NyYy9zYWdlL3JpbmdzL2NvbXBsZXhfaW50ZXJ2YWwucHl4CisrKysgYi9zcmMvc2FnZS9yaW5n cy9jb21wbGV4X2ludGVydmFsLnB5eAorQEAgLTY4MSw3ICs2ODEsNyBAQCBjZGVmIGNsYXNzIENv bXBsZXhJbnRlcnZhbEZpZWxkRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgIiIiCisg ICAgICAgICByZXR1cm4gbXBmaV9oYXNfemVybyhzZWxmLl9fcmUpIGFuZCBtcGZpX2hhc196ZXJv KHNlbGYuX19pbSkKKyAKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBfYWRkXyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEFk ZCBgYHNlbGZgYCBhbmQgYGByaWdodGBgLgorIAorQEAgLTY5NSw3ICs2OTUsNyBAQCBjZGVmIGNs YXNzIENvbXBsZXhJbnRlcnZhbEZpZWxkRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAg bXBmaV9hZGQoeC5fX2ltLCBzZWxmLl9faW0sICg8Q29tcGxleEludGVydmFsRmllbGRFbGVtZW50 PnJpZ2h0KS5fX2ltKQorICAgICAgICAgcmV0dXJuIHgKKyAKKy0gICAgY3BkZWYgX3N1Yl8oc2Vs ZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodCk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIFN1YnRyYWN0IGBgc2VsZmBgIGJ5IGBgcmlnaHRgYC4KKyAKK0BA IC03MDksNyArNzA5LDcgQEAgY2RlZiBjbGFzcyBDb21wbGV4SW50ZXJ2YWxGaWVsZEVsZW1lbnQo RmllbGRFbGVtZW50KToKKyAgICAgICAgIG1wZmlfc3ViKHguX19pbSwgc2VsZi5fX2ltLCAoPENv bXBsZXhJbnRlcnZhbEZpZWxkRWxlbWVudD5yaWdodCkuX19pbSkKKyAgICAgICAgIHJldHVybiB4 CisgCistICAgIGNwZGVmIF9tdWxfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X211bF8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBNdWx0aXBseSBgYHNl bGZgYCBhbmQgYGByaWdodGBgLgorIAorQEAgLTc3OSw3ICs3NzksNyBAQCBjZGVmIGNsYXNzIENv bXBsZXhJbnRlcnZhbEZpZWxkRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgbXBmaV9j bGVhcih0KQorICAgICAgICAgcmV0dXJuIHgKKyAKKy0gICAgY3BkZWYgX2Rpdl8oc2VsZiwgcmln aHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZGl2XyhzZWxmLCByaWdodCk6CisgICAgICAgICAi IiIKKyAgICAgICAgIERpdmlkZSBgYHNlbGZgYCBieSBgYHJpZ2h0YGAuCisgCitAQCAtMTUxMiw3 ICsxNTEyLDcgQEAgY2RlZiBjbGFzcyBDb21wbGV4SW50ZXJ2YWxGaWVsZEVsZW1lbnQoRmllbGRF bGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIGJvb2woc2VsZi5yZWFsKCkp IG9yIGJvb2woc2VsZi5pbWFnKCkpCisgCistICAgIGNwZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdo dCwgaW50IG9wKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3JpY2hjbXBfKGxlZnQsIHJpZ2h0LCBp bnQgb3ApOgorICAgICAgICAgciIiIgorICAgICAgICAgQXMgd2l0aCB0aGUgcmVhbCBpbnRlcnZh bCBmaWVsZHMgdGhpcyBuZXZlciByZXR1cm5zIGZhbHNlIHBvc2l0aXZlcy4KKyAKK2RpZmYgLS1n aXQgYS9zcmMvc2FnZS9yaW5ncy9jb21wbGV4X21wYy5weGQgYi9zcmMvc2FnZS9yaW5ncy9jb21w bGV4X21wYy5weGQKK2luZGV4IDYwYjNlNzM5ZjgzLi4xYzY1NjE4NTc4YiAxMDA2NDQKKy0tLSBh L3NyYy9zYWdlL3JpbmdzL2NvbXBsZXhfbXBjLnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvY29t cGxleF9tcGMucHhkCitAQCAtNiw5ICs2LDkgQEAgZnJvbSBzYWdlLnJpbmdzLnJpbmcgY2ltcG9y dCBGaWVsZAorIGNkZWYgY2xhc3MgTVBDb21wbGV4TnVtYmVyKHNhZ2Uuc3RydWN0dXJlLmVsZW1l bnQuRmllbGRFbGVtZW50KToKKyAgICAgY2RlZiBtcGNfdCB2YWx1ZQorICAgICBjZGVmIGNoYXIg aW5pdAorLSAgICBjZGVmIE1QQ29tcGxleE51bWJlciBfbmV3KHNlbGYpIG5vZXhjZXB0CistICAg IGNwZGVmIF9hZGRfKHNlbGYsIG90aGVyKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfbXVsXyhzZWxm LCBvdGhlcikgbm9leGNlcHQKKysgICAgY2RlZiBNUENvbXBsZXhOdW1iZXIgX25ldyhzZWxmKQor KyAgICBjcGRlZiBfYWRkXyhzZWxmLCBvdGhlcikKKysgICAgY3BkZWYgX211bF8oc2VsZiwgb3Ro ZXIpCisgCisgY2RlZiBjbGFzcyBNUENvbXBsZXhGaWVsZF9jbGFzcyhGaWVsZCk6CisgICAgIGNk ZWYgcmVhZG9ubHkgaW50IF9wcmVjCitAQCAtMTYsNSArMTYsNSBAQCBjZGVmIGNsYXNzIE1QQ29t cGxleEZpZWxkX2NsYXNzKEZpZWxkKToKKyAgICAgY2RlZiBvYmplY3QgX19ybmRfc3RyCisgICAg IGNkZWYgb2JqZWN0IF9fcmVhbF9maWVsZAorICAgICBjZGVmIG9iamVjdCBfX2ltYWdfZmllbGQK Ky0gICAgY2RlZiBNUENvbXBsZXhOdW1iZXIgX25ldyhzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRl ZiBfYW5fZWxlbWVudF8oc2VsZikgbm9leGNlcHQKKysgICAgY2RlZiBNUENvbXBsZXhOdW1iZXIg X25ldyhzZWxmKQorKyAgICBjcGRlZiBfYW5fZWxlbWVudF8oc2VsZikKK2RpZmYgLS1naXQgYS9z cmMvc2FnZS9yaW5ncy9jb21wbGV4X21wYy5weXggYi9zcmMvc2FnZS9yaW5ncy9jb21wbGV4X21w Yy5weXgKK2luZGV4IDQ0ZjI1ZmVlOGMyLi4yMWRlNzgxMDZjMSAxMDA2NDQKKy0tLSBhL3NyYy9z YWdlL3JpbmdzL2NvbXBsZXhfbXBjLnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvY29tcGxleF9t cGMucHl4CitAQCAtMTQ0LDcgKzE0NCw3IEBAIGNvbXBsZXhfdGVuID0gJyg/UDxpbV9maXJzdD4o P1A8aW1fZmlyc3RfaW1fc2lnbj4nICsgc2lnbiArIHInKT9ccyooP1A8aW1fZmlyc3RfCisgICAg IHInKFxzKig/UDxyZV9maXJzdF9pbV9zaWduPicgKyBzaWduICsgcicpXHMqKD9QPHJlX2ZpcnN0 X2ltX2Ficz4nICsgaW1hZ2luYXJ5X3RlbiArICcpKT8pJworIHJlX2NvbXBsZXhfdGVuID0gcmUu Y29tcGlsZShyJ15ccyooPzonICsgY29tcGxleF90ZW4gKyByJylccyokJywgcmUuSSkKKyAKKy1j cGRlZiBpbmxpbmUgc3BsaXRfY29tcGxleF9zdHJpbmcoc3RyaW5nLCBpbnQgYmFzZT0xMCkgbm9l eGNlcHQ6CisrY3BkZWYgaW5saW5lIHNwbGl0X2NvbXBsZXhfc3RyaW5nKHN0cmluZywgaW50IGJh c2U9MTApOgorICAgICAiIiIKKyAgICAgU3BsaXQgYW5kIHJldHVybiBpbiB0aGF0IG9yZGVyIHRo ZSByZWFsIGFuZCBpbWFnaW5hcnkgcGFydHMKKyAgICAgb2YgYSBjb21wbGV4IGluIGEgc3RyaW5n LgorQEAgLTMyMiw3ICszMjIsNyBAQCBjZGVmIGNsYXNzIE1QQ29tcGxleEZpZWxkX2NsYXNzKEZp ZWxkKToKKyAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeT1GaWVsZHMoKS5JbmZpbml0 ZSgpKQorICAgICAgICAgc2VsZi5fcG9wdWxhdGVfY29lcmNpb25fbGlzdHNfKGNvZXJjZV9saXN0 PVtNUEZSdG9NUEMoc2VsZi5fcmVhbF9maWVsZCgpLCBzZWxmKV0pCisgCistICAgIGNkZWYgTVBD b21wbGV4TnVtYmVyIF9uZXcoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgTVBDb21wbGV4TnVt YmVyIF9uZXcoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBhIG5ldyBjb21w bGV4IG51bWJlciB3aXRoIHBhcmVudCBgYHNlbGZgLgorICAgICAgICAgIiIiCitAQCAtNDM2LDcg KzQzNiw3IEBAIGNkZWYgY2xhc3MgTVBDb21wbGV4RmllbGRfY2xhc3MoRmllbGQpOgorICAgICAg ICAgenouX3NldCh6KQorICAgICAgICAgcmV0dXJuIHp6CisgCistICAgIGNwZGVmIF9jb2VyY2Vf bWFwX2Zyb21fKHNlbGYsIFMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfY29lcmNlX21hcF9mcm9t XyhzZWxmLCBTKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ2Fub25pY2FsIGNvZXJjaW9uIG9m IGB6YCB0byB0aGlzIG1wYyBjb21wbGV4IGZpZWxkLgorIAorQEAgLTUzOCw3ICs1MzgsNyBAQCBj ZGVmIGNsYXNzIE1QQ29tcGxleEZpZWxkX2NsYXNzKEZpZWxkKToKKyAgICAgICAgICIiIgorICAg ICAgICAgcmV0dXJuIDEKKyAKKy0gICAgY3BkZWYgX2FuX2VsZW1lbnRfKHNlbGYpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBfYW5fZWxlbWVudF8oc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAg IFJldHVybiBhbiBlbGVtZW50IG9mIHRoaXMgY29tcGxleCBmaWVsZC4KKyAKK0BAIC02OTgsNyAr Njk4LDcgQEAgY2RlZiBjbGFzcyBNUENvbXBsZXhOdW1iZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVu dC5GaWVsZEVsZW1lbnQpOgorICAgICBBIGZsb2F0aW5nIHBvaW50IGFwcHJveGltYXRpb24gdG8g YSBjb21wbGV4IG51bWJlciB1c2luZyBhbnkgc3BlY2lmaWVkCisgICAgIHByZWNpc2lvbiBjb21t b24gdG8gYm90aCByZWFsIGFuZCBpbWFnaW5hcnkgcGFydC4KKyAgICAgIiIiCistICAgIGNkZWYg TVBDb21wbGV4TnVtYmVyIF9uZXcoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgTVBDb21wbGV4 TnVtYmVyIF9uZXcoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBhIG5ldyBj b21wbGV4IG51bWJlciB3aXRoIHNhbWUgcGFyZW50IGFzIGBgc2VsZmBgLgorICAgICAgICAgIiIi CitAQCAtMTI1OCw3ICsxMjU4LDcgQEAgY2RlZiBjbGFzcyBNUENvbXBsZXhOdW1iZXIoc2FnZS5z dHJ1Y3R1cmUuZWxlbWVudC5GaWVsZEVsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAgICBy ZXR1cm4gZ21weTIuR01QeV9NUENfRnJvbV9tcGZyKHNlbGYudmFsdWUucmUsIHNlbGYudmFsdWUu aW0pCisgCistICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCBvdGhlciwgaW50IG9wKSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIG90aGVyLCBpbnQgb3ApOgorICAgICAgICAg ciIiIgorICAgICAgICAgQ29tcGFyZSBgYHNlbGZgYCB0byBgYG90aGVyYGAuCisgCitAQCAtMTM3 NSw3ICsxMzc1LDcgQEAgY2RlZiBjbGFzcyBNUENvbXBsZXhOdW1iZXIoc2FnZS5zdHJ1Y3R1cmUu ZWxlbWVudC5GaWVsZEVsZW1lbnQpOgorICAgICAjIEJhc2ljIEFyaXRobWV0aWMKKyAgICAgIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwg cmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWRkXyhzZWxmLCByaWdodCk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIEFkZCB0d28gY29tcGxleCBudW1iZXJzIHdpdGggdGhlIHNhbWUgcGFy ZW50LgorIAorQEAgLTEzOTAsNyArMTM5MCw3IEBAIGNkZWYgY2xhc3MgTVBDb21wbGV4TnVtYmVy KHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuRmllbGRFbGVtZW50KToKKyAgICAgICAgIG1wY19hZGQo ei52YWx1ZSwgc2VsZi52YWx1ZSwgKDxNUENvbXBsZXhOdW1iZXI+cmlnaHQpLnZhbHVlLCAoPE1Q Q29tcGxleEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX19ybmQpCisgICAgICAgICByZXR1cm4g egorIAorLSAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9zdWJfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgU3VidHJhY3QgdHdv IGNvbXBsZXggbnVtYmVycyB3aXRoIHRoZSBzYW1lIHBhcmVudC4KKyAKK0BAIC0xNDA1LDcgKzE0 MDUsNyBAQCBjZGVmIGNsYXNzIE1QQ29tcGxleE51bWJlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50 LkZpZWxkRWxlbWVudCk6CisgICAgICAgICBtcGNfc3ViKHoudmFsdWUsIHNlbGYudmFsdWUsICg8 TVBDb21wbGV4TnVtYmVyPnJpZ2h0KS52YWx1ZSwgKDxNUENvbXBsZXhGaWVsZF9jbGFzcz5zZWxm Ll9wYXJlbnQpLl9fcm5kKQorICAgICAgICAgcmV0dXJuIHoKKyAKKy0gICAgY3BkZWYgX211bF8o c2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbXVsXyhzZWxmLCByaWdodCk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIE11bHRpcGx5IHR3byBjb21wbGV4IG51bWJlcnMgd2l0aCB0 aGUgc2FtZSBwYXJlbnQuCisgCitAQCAtMTQyMCw3ICsxNDIwLDcgQEAgY2RlZiBjbGFzcyBNUENv bXBsZXhOdW1iZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5GaWVsZEVsZW1lbnQpOgorICAgICAg ICAgbXBjX211bCh6LnZhbHVlLCBzZWxmLnZhbHVlLCAoPE1QQ29tcGxleE51bWJlcj5yaWdodCku dmFsdWUsICg8TVBDb21wbGV4RmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fX3JuZCkKKyAgICAg ICAgIHJldHVybiB6CisgCistICAgIGNwZGVmIF9kaXZfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoK KysgICAgY3BkZWYgX2Rpdl8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBE aXZpZGUgdHdvIGNvbXBsZXggbnVtYmVycyB3aXRoIHRoZSBzYW1lIHBhcmVudC4KKyAKK0BAIC0x NDM5LDcgKzE0MzksNyBAQCBjZGVmIGNsYXNzIE1QQ29tcGxleE51bWJlcihzYWdlLnN0cnVjdHVy ZS5lbGVtZW50LkZpZWxkRWxlbWVudCk6CisgICAgICAgICAgICAgbXBjX2Rpdih6LnZhbHVlLCBz ZWxmLnZhbHVlLCB4LnZhbHVlLCAoPE1QQ29tcGxleEZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCku X19ybmQpCisgICAgICAgICByZXR1cm4gegorIAorLSAgICBjcGRlZiBfbmVnXyhzZWxmKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgX25lZ18oc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJl dHVybiB0aGUgbmVnYXRpdmUgb2YgdGhpcyBjb21wbGV4IG51bWJlci4KKyAKK0BAIC0yNDQ0LDcg KzI0NDQsNyBAQCBfX2NyZWF0ZV9NUENvbXBsZXhOdW1iZXJfdmVyc2lvbjAgPSBfX2NyZWF0ZV9f TVBDb21wbGV4TnVtYmVyX3ZlcnNpb24wCisgIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgCisgY2Rl ZiBjbGFzcyBNUEN0b01QQyhNYXApOgorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB6 KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeik6CisgICAgICAg ICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0yNDgxLDcgKzI0ODEsNyBAQCBjZGVm IGNsYXNzIE1QQ3RvTVBDKE1hcCk6CisgICAgICAgICByZXR1cm4gTVBDdG9NUEMoc2VsZi5jb2Rv bWFpbigpLCBzZWxmLmRvbWFpbigpKQorIAorIGNkZWYgY2xhc3MgSU5URUdFUnRvTVBDKE1hcCk6 CistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBM RVM6OgorIAorQEAgLTI1MDQsNyArMjUwNCw3IEBAIGNkZWYgY2xhc3MgSU5URUdFUnRvTVBDKE1h cCk6CisgICAgICAgICByZXR1cm4geQorIAorIGNkZWYgY2xhc3MgTVBGUnRvTVBDKE1hcCk6Cist ICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBF bGVtZW50IF9jYWxsXyhzZWxmLCB4KToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6 OgorIAorQEAgLTI1MjgsNyArMjUyOCw3IEBAIGNkZWYgY2xhc3MgTVBGUnRvTVBDKE1hcCk6Cisg ICAgICAgICByZXR1cm4geQorIAorIGNkZWYgY2xhc3MgQ0N0b01QQyhNYXApOgorLSAgICBjcGRl ZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB6KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBf Y2FsbF8oc2VsZiwgeik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9jb21wbGV4X21wZnIucHhkIGIvc3JjL3NhZ2Uvcmlu Z3MvY29tcGxleF9tcGZyLnB4ZAoraW5kZXggOTU5NzJjNTJiYjUuLjM4NWZlZWM4YzM3IDEwMDY0 NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvY29tcGxleF9tcGZyLnB4ZAorKysrIGIvc3JjL3NhZ2Uv cmluZ3MvY29tcGxleF9tcGZyLnB4ZAorQEAgLTksOSArOSw5IEBAIGNkZWYgY2xhc3MgQ29tcGxl eE51bWJlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50LkZpZWxkRWxlbWVudCk6CisgICAgIGNkZWYg bXBmcl9wcmVjX3QgX3ByZWMKKyAgICAgY2RlZiBvYmplY3QgX211bHRpcGxpY2F0aXZlX29yZGVy CisgCistICAgIGNwZGVmIF9hZGRfKHNlbGYsIG90aGVyKSBub2V4Y2VwdAorLSAgICBjcGRlZiBf bXVsXyhzZWxmLCBvdGhlcikgbm9leGNlcHQKKy0gICAgY2RlZiBSZWFsTnVtYmVyIGFic19jKENv bXBsZXhOdW1iZXIgc2VsZikgbm9leGNlcHQKKy0gICAgY2RlZiBSZWFsTnVtYmVyIG5vcm1fYyhD b21wbGV4TnVtYmVyIHNlbGYpIG5vZXhjZXB0CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIG90aGVy KQorKyAgICBjcGRlZiBfbXVsXyhzZWxmLCBvdGhlcikKKysgICAgY2RlZiBSZWFsTnVtYmVyIGFi c19jKENvbXBsZXhOdW1iZXIgc2VsZikKKysgICAgY2RlZiBSZWFsTnVtYmVyIG5vcm1fYyhDb21w bGV4TnVtYmVyIHNlbGYpCisgCistICAgIGNkZWYgQ29tcGxleE51bWJlciBfbmV3KHNlbGYpIG5v ZXhjZXB0CisrICAgIGNkZWYgQ29tcGxleE51bWJlciBfbmV3KHNlbGYpCitkaWZmIC0tZ2l0IGEv c3JjL3NhZ2UvcmluZ3MvY29tcGxleF9tcGZyLnB5eCBiL3NyYy9zYWdlL3JpbmdzL2NvbXBsZXhf bXBmci5weXgKK2luZGV4IDg3MmNhOGM2MGEzLi4zODc2YWQ2MjcyZCAxMDA2NDQKKy0tLSBhL3Ny Yy9zYWdlL3JpbmdzL2NvbXBsZXhfbXBmci5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL2NvbXBs ZXhfbXBmci5weXgKK0BAIC04NzMsNyArODczLDcgQEAgY2RlZiBjbGFzcyBDb21wbGV4TnVtYmVy KHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuRmllbGRFbGVtZW50KToKKyAgICAgICAgIFRydWUKKyAg ICAgIiIiCisgCistICAgIGNkZWYgQ29tcGxleE51bWJlciBfbmV3KHNlbGYpIG5vZXhjZXB0Ogor KyAgICBjZGVmIENvbXBsZXhOdW1iZXIgX25ldyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAg ICAgUXVpY2tseSBjcmVhdGVzIGEgbmV3IGluaXRpYWxpemVkIGNvbXBsZXggbnVtYmVyIHdpdGgg dGhlIHNhbWUKKyAgICAgICAgIHBhcmVudCBhcyBgYHNlbGZgYC4KK0BAIC0xNDY2LDcgKzE0NjYs NyBAQCBjZGVmIGNsYXNzIENvbXBsZXhOdW1iZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5GaWVs ZEVsZW1lbnQpOgorICAgICAgICAgaW1wb3J0IHN5bXB5CisgICAgICAgICByZXR1cm4gc2VsZi5y ZWFsKCkuX3N5bXB5XygpICsgc2VsZi5pbWFnKCkuX3N5bXB5XygpICogc3ltcHkuSQorIAorLSAg ICBjcGRlZiBfYWRkXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKHNl bGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgQWRkIGBgc2VsZmBgIHRvIGBgcmln aHRgYC4KKyAKK0BAIC0xNDgxLDcgKzE0ODEsNyBAQCBjZGVmIGNsYXNzIENvbXBsZXhOdW1iZXIo c2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5GaWVsZEVsZW1lbnQpOgorICAgICAgICAgbXBmcl9hZGQo eC5fX2ltLCBzZWxmLl9faW0sICg8Q29tcGxleE51bWJlcj5yaWdodCkuX19pbSwgcm5kKQorICAg ICAgICAgcmV0dXJuIHgKKyAKKy0gICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAg IFN1YnRyYWN0IGBgcmlnaHRgYCBmcm9tIGBgc2VsZmBgLgorIAorQEAgLTE0OTYsNyArMTQ5Niw3 IEBAIGNkZWYgY2xhc3MgQ29tcGxleE51bWJlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50LkZpZWxk RWxlbWVudCk6CisgICAgICAgICBtcGZyX3N1Yih4Ll9faW0sIHNlbGYuX19pbSwgKDxDb21wbGV4 TnVtYmVyPnJpZ2h0KS5fX2ltLCBybmQpCisgICAgICAgICByZXR1cm4geAorIAorLSAgICBjcGRl ZiBfbXVsXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9tdWxfKHNlbGYsIHJp Z2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgTXVsdGlwbHkgYGBzZWxmYGAgYnkgYGByaWdo dGBgLgorIAorQEAgLTE1NjUsNyArMTU2NSw3IEBAIGNkZWYgY2xhc3MgQ29tcGxleE51bWJlcihz YWdlLnN0cnVjdHVyZS5lbGVtZW50LkZpZWxkRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIHJldHVybiBzZWxmLm5vcm1fYygpCisgCistICAgIGNkZWYgUmVhbE51bWJlciBub3JtX2Mo Q29tcGxleE51bWJlciBzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBSZWFsTnVtYmVyIG5vcm1f YyhDb21wbGV4TnVtYmVyIHNlbGYpOgorICAgICAgICAgY2RlZiBSZWFsTnVtYmVyIHgKKyAgICAg ICAgIHggPSBSZWFsTnVtYmVyKHNlbGYuX3BhcmVudC5fcmVhbF9maWVsZCgpLCBOb25lKQorIAor QEAgLTE1ODIsNyArMTU4Miw3IEBAIGNkZWYgY2xhc3MgQ29tcGxleE51bWJlcihzYWdlLnN0cnVj dHVyZS5lbGVtZW50LkZpZWxkRWxlbWVudCk6CisgICAgICAgICBtcGZyX2NsZWFyKHQxKQorICAg ICAgICAgcmV0dXJuIHgKKyAKKy0gICAgY2RlZiBSZWFsTnVtYmVyIGFic19jKENvbXBsZXhOdW1i ZXIgc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgUmVhbE51bWJlciBhYnNfYyhDb21wbGV4TnVt YmVyIHNlbGYpOgorICAgICAgICAgY2RlZiBSZWFsTnVtYmVyIHgKKyAgICAgICAgIHggPSBSZWFs TnVtYmVyKHNlbGYuX3BhcmVudC5fcmVhbF9maWVsZCgpLCBOb25lKQorIAorQEAgLTE2MDAsNyAr MTYwMCw3IEBAIGNkZWYgY2xhc3MgQ29tcGxleE51bWJlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50 LkZpZWxkRWxlbWVudCk6CisgICAgICAgICBtcGZyX2NsZWFyKHQxKQorICAgICAgICAgcmV0dXJu IHgKKyAKKy0gICAgY3BkZWYgX2Rpdl8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBfZGl2XyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIERpdmlkZSBgYHNl bGZgYCBieSBgYHJpZ2h0YGAuCisgCitAQCAtMTk1Nyw3ICsxOTU3LDcgQEAgY2RlZiBjbGFzcyBD b21wbGV4TnVtYmVyKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuRmllbGRFbGVtZW50KToKKyAgICAg ICAgIHJldHVybiBjb21wbGV4KG1wZnJfZ2V0X2Qoc2VsZi5fX3JlLCBybmQpLAorICAgICAgICAg ICAgICAgICAgICAgICAgbXBmcl9nZXRfZChzZWxmLl9faW0sIHJuZCkpCisgCistICAgIGNwZGVm IF9yaWNoY21wXyhsZWZ0LCByaWdodCwgaW50IG9wKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3Jp Y2hjbXBfKGxlZnQsIHJpZ2h0LCBpbnQgb3ApOgorICAgICAgICAgIiIiCisgICAgICAgICBDb21w YXJlIGBgbGVmdGBgIGFuZCBgYHJpZ2h0YGAuCisgCitAQCAtMzM0Niw3ICszMzQ2LDcgQEAgY2Rl ZiBjbGFzcyBSUnRvQ0MoTWFwKToKKyAgICAgICAgIHNlbGYuX3plcm8gPSBDb21wbGV4TnVtYmVy KENDLCAwKQorICAgICAgICAgc2VsZi5fcmVwcl90eXBlX3N0ciA9ICJOYXR1cmFsIgorIAorLSAg ICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIGRpY3Qg X2V4dHJhX3Nsb3RzKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBBIGhlbHBlciBmb3Ig cGlja2xpbmcgYW5kIGNvcHlpbmcuCisgCitAQCAtMzM3Miw3ICszMzcyLDcgQEAgY2RlZiBjbGFz cyBSUnRvQ0MoTWFwKToKKyAgICAgICAgIHNsb3RzWydfemVybyddID0gc2VsZi5femVybworICAg ICAgICAgcmV0dXJuIHNsb3RzCisgCistICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0 IF9zbG90cykgbm9leGNlcHQ6CisrICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0IF9z bG90cyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEEgaGVscGVyIGZvciB1bnBpY2tsaW5nIGFu ZCBjb3B5aW5nLgorIAorQEAgLTMzOTEsNyArMzM5MSw3IEBAIGNkZWYgY2xhc3MgUlJ0b0NDKE1h cCk6CisgICAgICAgICBNYXAuX3VwZGF0ZV9zbG90cyhzZWxmLCBfc2xvdHMpCisgICAgICAgICBz ZWxmLl96ZXJvID0gX3Nsb3RzWydfemVybyddCisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxf KHNlbGYsIHgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KToK KyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorZGlmZiAtLWdpdCBhL3NyYy9z YWdlL3JpbmdzL2ZhY3RvcmludC5weXggYi9zcmMvc2FnZS9yaW5ncy9mYWN0b3JpbnQucHl4Citp bmRleCAzMzlkMmMyMmIyZC4uMzU3MWM3NGJkOGQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5n cy9mYWN0b3JpbnQucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9mYWN0b3JpbnQucHl4CitAQCAt MzAsNyArMzAsNyBAQCBmcm9tIHNhZ2UubWlzYy5taXNjX2MgaW1wb3J0IHByb2QKKyBjZGVmIGV4 dGVybiBmcm9tICJsaW1pdHMuaCI6CisgICAgIGxvbmcgTE9OR19NQVgKKyAKKy1jcGRlZiBhdXJp ZmV1aWxsaWFuKG4sIG0sIEY9Tm9uZSwgYmludCBjaGVjaz1UcnVlKSBub2V4Y2VwdDoKKytjcGRl ZiBhdXJpZmV1aWxsaWFuKG4sIG0sIEY9Tm9uZSwgYmludCBjaGVjaz1UcnVlKToKKyAgICAgciIi IgorICAgICBSZXR1cm4gdGhlIEF1cmlmZXVpbGxpYW4gZmFjdG9ycyBgRl9uXlxwbShtXjJuKWAu CisgCitAQCAtMTIwLDcgKzEyMCw3IEBAIGNwZGVmIGF1cmlmZXVpbGxpYW4obiwgbSwgRj1Ob25l LCBiaW50IGNoZWNrPVRydWUpIG5vZXhjZXB0OgorICAgICBhc3NlcnQgKG5vdCBjaGVjayBvciBG bS5kaXZpZGVzKEYpKQorICAgICByZXR1cm4gW0ZtLCBGIC8vIEZtXQorIAorLWNwZGVmIGZhY3Rv cl9hdXJpZmV1aWxsaWFuKG4sIGNoZWNrPVRydWUpIG5vZXhjZXB0OgorK2NwZGVmIGZhY3Rvcl9h dXJpZmV1aWxsaWFuKG4sIGNoZWNrPVRydWUpOgorICAgICByIiIiCisgICAgIFJldHVybiBBdXJp ZmV1aWxsaWFuIGZhY3RvcnMgb2YgYG5gIGlmIGBuID0geF57KDJrLTEpeH0gXHBtIDFgCisgICAg ICh3aGVyZSB0aGUgc2lnbiBpcyAnLScgaWYgeCA9IDEgbW9kIDQsIGFuZCAnKycgb3RoZXJ3aXNl KSBlbHNlIGBuYAorQEAgLTI1Miw3ICsyNTIsNyBAQCBkZWYgZmFjdG9yX2N1bm5pbmdoYW0obSwg cHJvb2Y9Tm9uZSk6CisgICAgIGVsc2U6CisgICAgICAgICByZXR1cm4gSW50ZWdlckZhY3Rvcml6 YXRpb24oTCkqbi5mYWN0b3IocHJvb2Y9cHJvb2YpCisgCistY3BkZWYgZmFjdG9yX3RyaWFsX2Rp dmlzaW9uKG0sIGxvbmcgbGltaXQ9TE9OR19NQVgpIG5vZXhjZXB0OgorK2NwZGVmIGZhY3Rvcl90 cmlhbF9kaXZpc2lvbihtLCBsb25nIGxpbWl0PUxPTkdfTUFYKToKKyAgICAgciIiIgorICAgICBS ZXR1cm4gcGFydGlhbCBmYWN0b3JpemF0aW9uIG9mIGBgc2VsZmBgIG9idGFpbmVkIHVzaW5nIHRy aWFsIGRpdmlzaW9uCisgICAgIGZvciBhbGwgcHJpbWVzIHVwIHRvIGBgbGltaXRgYCwgd2hlcmUg YGBsaW1pdGBgIG11c3QgZml0IGluIGEgQyBgYHNpZ25lZCBsb25nYGAuCitkaWZmIC0tZ2l0IGEv c3JjL3NhZ2UvcmluZ3MvZmFzdF9hcml0aC5weGQgYi9zcmMvc2FnZS9yaW5ncy9mYXN0X2FyaXRo LnB4ZAoraW5kZXggYzEzZTVlMzY1NDguLjdhOTllNjU4YjkxIDEwMDY0NAorLS0tIGEvc3JjL3Nh Z2UvcmluZ3MvZmFzdF9hcml0aC5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL2Zhc3RfYXJpdGgu cHhkCitAQCAtMSw0ICsxLDQgQEAKKy1jcGRlZiBwcmltZV9yYW5nZShzdGFydCwgc3RvcD0qLCBh bGdvcml0aG09KiwgYmludCBweV9pbnRzPSopIG5vZXhjZXB0CisrY3BkZWYgcHJpbWVfcmFuZ2Uo c3RhcnQsIHN0b3A9KiwgYWxnb3JpdGhtPSosIGJpbnQgcHlfaW50cz0qKQorIAorIGNkZWYgY2xh c3MgYXJpdGhfaW50OgorICAgICBjZGVmIGludCBhYnNfaW50KHNlbGYsIGludCB4KSBleGNlcHQg LTEKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9mYXN0X2FyaXRoLnB5eCBiL3NyYy9zYWdl L3JpbmdzL2Zhc3RfYXJpdGgucHl4CitpbmRleCBmYWU5NjZlNGY2Yy4uNDc5NjEyMmMxYjYgMTAw NjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9mYXN0X2FyaXRoLnB5eAorKysrIGIvc3JjL3NhZ2Uv cmluZ3MvZmFzdF9hcml0aC5weXgKK0BAIC00MCw3ICs0MCw3IEBAIGZyb20gbGliYy5tYXRoIGNp bXBvcnQgc3FydAorIAorIGZyb20gc2FnZS5yaW5ncy5pbnRlZ2VyIGNpbXBvcnQgSW50ZWdlcgor IAorLWNwZGVmIHByaW1lX3JhbmdlKHN0YXJ0LCBzdG9wPU5vbmUsIGFsZ29yaXRobT1Ob25lLCBi aW50IHB5X2ludHM9RmFsc2UpIG5vZXhjZXB0OgorK2NwZGVmIHByaW1lX3JhbmdlKHN0YXJ0LCBz dG9wPU5vbmUsIGFsZ29yaXRobT1Ob25lLCBiaW50IHB5X2ludHM9RmFsc2UpOgorICAgICByIiIi CisgICAgIFJldHVybiBhIGxpc3Qgb2YgYWxsIHByaW1lcyBiZXR3ZWVuIGBgc3RhcnRgYCBhbmQg YGBzdG9wIC0gMWBgLCBpbmNsdXNpdmUuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3Mv ZmluaXRlX3JpbmdzL2VsZW1lbnRfYmFzZS5weGQgYi9zcmMvc2FnZS9yaW5ncy9maW5pdGVfcmlu Z3MvZWxlbWVudF9iYXNlLnB4ZAoraW5kZXggZWMwOWY5Y2M3NjkuLmMyMTRlNDc0NWE5IDEwMDY0 NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2VsZW1lbnRfYmFzZS5weGQKKysr KyBiL3NyYy9zYWdlL3JpbmdzL2Zpbml0ZV9yaW5ncy9lbGVtZW50X2Jhc2UucHhkCitAQCAtOCw1 ICs4LDUgQEAgY2RlZiBjbGFzcyBGaW5pdGVQb2x5RXh0RWxlbWVudChGaW5pdGVSaW5nRWxlbWVu dCk6CisgICAgIHBhc3MKKyAKKyBjZGVmIGNsYXNzIENhY2hlX2Jhc2UoU2FnZU9iamVjdCk6Cist ICAgIGNwZGVmIEZpbml0ZVBvbHlFeHRFbGVtZW50IGZldGNoX2ludChzZWxmLCBudW1iZXIpIG5v ZXhjZXB0CisrICAgIGNwZGVmIEZpbml0ZVBvbHlFeHRFbGVtZW50IGZldGNoX2ludChzZWxmLCBu dW1iZXIpCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2VsZW1l bnRfYmFzZS5weXggYi9zcmMvc2FnZS9yaW5ncy9maW5pdGVfcmluZ3MvZWxlbWVudF9iYXNlLnB5 eAoraW5kZXggMWQwZGQyYjU2M2EuLmY2ZTA4MzIwZTVlIDEwMDc1NQorLS0tIGEvc3JjL3NhZ2Uv cmluZ3MvZmluaXRlX3JpbmdzL2VsZW1lbnRfYmFzZS5weXgKKysrKyBiL3NyYy9zYWdlL3Jpbmdz L2Zpbml0ZV9yaW5ncy9lbGVtZW50X2Jhc2UucHl4CitAQCAtMTEzNiw3ICsxMTM2LDcgQEAgY2Rl ZiBjbGFzcyBGaW5pdGVQb2x5RXh0RWxlbWVudChGaW5pdGVSaW5nRWxlbWVudCk6CisgICAgICAg ICByZXR1cm4gc2VsZi50b19pbnRlZ2VyKCkudG9fYnl0ZXMobGVuZ3RoPWxlbmd0aCwgYnl0ZW9y ZGVyPWJ5dGVvcmRlcikKKyAKKyBjZGVmIGNsYXNzIENhY2hlX2Jhc2UoU2FnZU9iamVjdCk6Cist ICAgIGNwZGVmIEZpbml0ZVBvbHlFeHRFbGVtZW50IGZldGNoX2ludChzZWxmLCBudW1iZXIpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBGaW5pdGVQb2x5RXh0RWxlbWVudCBmZXRjaF9pbnQoc2VsZiwg bnVtYmVyKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIEdpdmVuIGFuIGludGVnZXIgbGVzcyB0 aGFuIGBwXm5gIHdpdGggYmFzZSBgMmAKKyAgICAgICAgIHJlcHJlc2VudGF0aW9uIGBhXzAgKyBh XzEgXGNkb3QgMiArIFxjZG90cyArIGFfayAyXmtgLCB0aGlzIHJldHVybnMKK2RpZmYgLS1naXQg YS9zcmMvc2FnZS9yaW5ncy9maW5pdGVfcmluZ3MvZWxlbWVudF9naXZhcm8ucHhkIGIvc3JjL3Nh Z2UvcmluZ3MvZmluaXRlX3JpbmdzL2VsZW1lbnRfZ2l2YXJvLnB4ZAoraW5kZXggMWU1YzRiNDY1 MjcuLjRiMWUwNDMwYTFjIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3Jpbmdz L2VsZW1lbnRfZ2l2YXJvLnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2Vs ZW1lbnRfZ2l2YXJvLnB4ZAorQEAgLTYyLDcgKzYyLDcgQEAgY2RlZiBjbGFzcyBGaW5pdGVGaWVs ZF9naXZhcm9FbGVtZW50KEZpbml0ZVBvbHlFeHRFbGVtZW50KToKKyAgICAgY2RlZiBpbnQgZWxl bWVudAorICAgICBjZGVmIENhY2hlX2dpdmFybyBfY2FjaGUKKyAgICAgY2RlZiBvYmplY3QgX211 bHRpcGxpY2F0aXZlX29yZGVyCistICAgIGNkZWYgRmluaXRlRmllbGRfZ2l2YXJvRWxlbWVudCBf bmV3X2Moc2VsZiwgaW50IHZhbHVlKSBub2V4Y2VwdAorKyAgICBjZGVmIEZpbml0ZUZpZWxkX2dp dmFyb0VsZW1lbnQgX25ld19jKHNlbGYsIGludCB2YWx1ZSkKKyAKKyBjZGVmIGNsYXNzIENhY2hl X2dpdmFybyhDYWNoZV9iYXNlKToKKyAgICAgY2RlZiBHaXZhcm9HZnEgKm9iamVjdHB0ciAjIEMr KyBvYmplY3QKK0BAIC03MywxMyArNzMsMTMgQEAgY2RlZiBjbGFzcyBDYWNoZV9naXZhcm8oQ2Fj aGVfYmFzZSk6CisgICAgIGNkZWYgYmludCBfaGFzX2FycmF5CisgICAgIGNkZWYgYmludCBfaXNf Y29ud2F5CisgICAgIGNkZWYgUGFyZW50IHBhcmVudAorLSAgICBjZGVmIGdlbl9hcnJheShzZWxm KSBub2V4Y2VwdAorKyAgICBjZGVmIGdlbl9hcnJheShzZWxmKQorICAgICBjcGRlZiBpbnQgZXhw b25lbnQoc2VsZikgbm9leGNlcHQKKyAgICAgY3BkZWYgaW50IG9yZGVyX2Moc2VsZikgbm9leGNl cHQKKyAgICAgY3BkZWYgaW50IGNoYXJhY3RlcmlzdGljKHNlbGYpIG5vZXhjZXB0CistICAgIGNw ZGVmIEZpbml0ZUZpZWxkX2dpdmFyb0VsZW1lbnQgZ2VuKHNlbGYpIG5vZXhjZXB0CistICAgIGNw ZGVmIEZpbml0ZUZpZWxkX2dpdmFyb0VsZW1lbnQgZWxlbWVudF9mcm9tX2RhdGEoc2VsZiwgZSkg bm9leGNlcHQKKy0gICAgY2RlZiBGaW5pdGVGaWVsZF9naXZhcm9FbGVtZW50IF9uZXdfYyhzZWxm LCBpbnQgdmFsdWUpIG5vZXhjZXB0CisrICAgIGNwZGVmIEZpbml0ZUZpZWxkX2dpdmFyb0VsZW1l bnQgZ2VuKHNlbGYpCisrICAgIGNwZGVmIEZpbml0ZUZpZWxkX2dpdmFyb0VsZW1lbnQgZWxlbWVu dF9mcm9tX2RhdGEoc2VsZiwgZSkKKysgICAgY2RlZiBGaW5pdGVGaWVsZF9naXZhcm9FbGVtZW50 IF9uZXdfYyhzZWxmLCBpbnQgdmFsdWUpCisgICAgIGNwZGVmIGludCBpbnRfdG9fbG9nKHNlbGYs IGludCBpKSBleGNlcHQgLTEKKyAgICAgY3BkZWYgaW50IGxvZ190b19pbnQoc2VsZiwgaW50IGkp IGV4Y2VwdCAtMQorIAorQEAgLTg3LDQgKzg3LDQgQEAgY2RlZiBjbGFzcyBGaW5pdGVGaWVsZF9n aXZhcm9faXRlcmF0b3I6CisgICAgIGNkZWYgaW50IGl0ZXJhdG9yCisgICAgIGNkZWYgQ2FjaGVf Z2l2YXJvIF9jYWNoZQorIAorLWNkZWYgRmluaXRlRmllbGRfZ2l2YXJvRWxlbWVudCBtYWtlX0Zp bml0ZUZpZWxkX2dpdmFyb0VsZW1lbnQoQ2FjaGVfZ2l2YXJvIGNhY2hlLCBpbnQgeCkgbm9leGNl cHQKKytjZGVmIEZpbml0ZUZpZWxkX2dpdmFyb0VsZW1lbnQgbWFrZV9GaW5pdGVGaWVsZF9naXZh cm9FbGVtZW50KENhY2hlX2dpdmFybyBjYWNoZSwgaW50IHgpCitkaWZmIC0tZ2l0IGEvc3JjL3Nh Z2UvcmluZ3MvZmluaXRlX3JpbmdzL2VsZW1lbnRfZ2l2YXJvLnB5eCBiL3NyYy9zYWdlL3Jpbmdz L2Zpbml0ZV9yaW5ncy9lbGVtZW50X2dpdmFyby5weXgKK2luZGV4IGZjNTNjMzBkMTgwLi5jOWI5 ZTMyMzE4MSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL2Zpbml0ZV9yaW5ncy9lbGVtZW50 X2dpdmFyby5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL2Zpbml0ZV9yaW5ncy9lbGVtZW50X2dp dmFyby5weXgKK0BAIC0yMDksNyArMjA5LDcgQEAgY2RlZiBjbGFzcyBDYWNoZV9naXZhcm8oQ2Fj aGVfYmFzZSk6CisgICAgICAgICAgICAgc2VsZi5fYXJyYXkgPSBzZWxmLmdlbl9hcnJheSgpCisg ICAgICAgICAgICAgc2VsZi5faGFzX2FycmF5ID0gVHJ1ZQorIAorLSAgICBjZGVmIGdlbl9hcnJh eShzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBnZW5fYXJyYXkoc2VsZik6CisgICAgICAgICAi IiIKKyAgICAgICAgIEdlbmVyYXRlcyBhbiBhcnJheS9saXN0L3R1cGxlIGNvbnRhaW5pbmcgYWxs IGVsZW1lbnRzIG9mIGBgc2VsZmBgCisgICAgICAgICBpbmRleGVkIGJ5IHRoZWlyIHBvd2VyIHdp dGggcmVzcGVjdCB0byB0aGUgaW50ZXJuYWwgZ2VuZXJhdG9yLgorQEAgLTI5Niw3ICsyOTYsNyBA QCBjZGVmIGNsYXNzIENhY2hlX2dpdmFybyhDYWNoZV9iYXNlKToKKyAgICAgICAgIHNlbGYub2Jq ZWN0cHRyLnJhbmRvbShnZW5lcmF0b3IsIHJlcykKKyAgICAgICAgIHJldHVybiBtYWtlX0Zpbml0 ZUZpZWxkX2dpdmFyb0VsZW1lbnQoc2VsZiwgcmVzKQorIAorLSAgICBjcGRlZiBGaW5pdGVGaWVs ZF9naXZhcm9FbGVtZW50IGVsZW1lbnRfZnJvbV9kYXRhKHNlbGYsIGUpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBGaW5pdGVGaWVsZF9naXZhcm9FbGVtZW50IGVsZW1lbnRfZnJvbV9kYXRhKHNlbGYs IGUpOgorICAgICAgICAgIiIiCisgICAgICAgICBDb2VyY2VzIHNldmVyYWwgZGF0YSB0eXBlcyB0 byBgYHNlbGZgYC4KKyAKK0BAIC00NzEsNyArNDcxLDcgQEAgY2RlZiBjbGFzcyBDYWNoZV9naXZh cm8oQ2FjaGVfYmFzZSk6CisgCisgICAgICAgICByZXR1cm4gbWFrZV9GaW5pdGVGaWVsZF9naXZh cm9FbGVtZW50KHNlbGYsIHJlcykKKyAKKy0gICAgY3BkZWYgRmluaXRlRmllbGRfZ2l2YXJvRWxl bWVudCBnZW4oc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIEZpbml0ZUZpZWxkX2dpdmFyb0Vs ZW1lbnQgZ2VuKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYSBnZW5lcmF0 b3Igb2YgdGhlIGZpZWxkLgorIAorQEAgLTU1MSw3ICs1NTEsNyBAQCBjZGVmIGNsYXNzIENhY2hl X2dpdmFybyhDYWNoZV9iYXNlKToKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJu IHIKKyAKKy0gICAgY3BkZWYgRmluaXRlRmllbGRfZ2l2YXJvRWxlbWVudCBmZXRjaF9pbnQoc2Vs ZiwgbnVtYmVyKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRmluaXRlRmllbGRfZ2l2YXJvRWxlbWVu dCBmZXRjaF9pbnQoc2VsZiwgbnVtYmVyKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIEdpdmVu IGFuIGludGVnZXIgYGBuYGAgcmV0dXJuIGEgZmluaXRlIGZpZWxkIGVsZW1lbnQgaW4gYGBzZWxm YGAKKyAgICAgICAgIHdoaWNoIGVxdWFscyBgYG5gYCB1bmRlciB0aGUgY29uZGl0aW9uIHRoYXQg Om1ldGg6YGdlbigpYCBpcyBzZXQgdG8KK0BAIC03NTksNyArNzU5LDcgQEAgY2RlZiBjbGFzcyBD YWNoZV9naXZhcm8oQ2FjaGVfYmFzZSk6CisgICAgICAgICAgICAgcmVwID0gJ2ludCcKKyAgICAg ICAgIHJldHVybiB1bnBpY2tsZV9DYWNoZV9naXZhcm8sIChzZWxmLnBhcmVudCwgcCwgaywgc2Vs Zi5wYXJlbnQucG9seW5vbWlhbCgpLCByZXAsIHNlbGYuX2hhc19hcnJheSkKKyAKKy0gICAgY2Rl ZiBGaW5pdGVGaWVsZF9naXZhcm9FbGVtZW50IF9uZXdfYyhzZWxmLCBpbnQgdmFsdWUpIG5vZXhj ZXB0OgorKyAgICBjZGVmIEZpbml0ZUZpZWxkX2dpdmFyb0VsZW1lbnQgX25ld19jKHNlbGYsIGlu dCB2YWx1ZSk6CisgICAgICAgICByZXR1cm4gbWFrZV9GaW5pdGVGaWVsZF9naXZhcm9FbGVtZW50 KHNlbGYsIHZhbHVlKQorIAorIAorQEAgLTg3Nyw3ICs4NzcsNyBAQCBjZGVmIGNsYXNzIEZpbml0 ZUZpZWxkX2dpdmFyb0VsZW1lbnQoRmluaXRlUG9seUV4dEVsZW1lbnQpOgorICAgICAgICAgc2Vs Zi5fY2FjaGUgPSBwYXJlbnQuX2NhY2hlCisgICAgICAgICBzZWxmLmVsZW1lbnQgPSAwCisgCist ICAgIGNkZWYgRmluaXRlRmllbGRfZ2l2YXJvRWxlbWVudCBfbmV3X2Moc2VsZiwgaW50IHZhbHVl KSBub2V4Y2VwdDoKKysgICAgY2RlZiBGaW5pdGVGaWVsZF9naXZhcm9FbGVtZW50IF9uZXdfYyhz ZWxmLCBpbnQgdmFsdWUpOgorICAgICAgICAgcmV0dXJuIG1ha2VfRmluaXRlRmllbGRfZ2l2YXJv RWxlbWVudChzZWxmLl9jYWNoZSwgdmFsdWUpCisgCisgICAgIGRlZiBfX2RlYWxsb2NfXyhGaW5p dGVGaWVsZF9naXZhcm9FbGVtZW50IHNlbGYpOgorQEAgLTEwODEsNyArMTA4MSw3IEBAIGNkZWYg Y2xhc3MgRmluaXRlRmllbGRfZ2l2YXJvRWxlbWVudChGaW5pdGVQb2x5RXh0RWxlbWVudCk6Cisg ICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm11c3QgYmUgYSBw ZXJmZWN0IHNxdWFyZS4iKQorIAorLSAgICBjcGRlZiBfYWRkXyhzZWxmLCByaWdodCkgbm9leGNl cHQ6CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAg ICAgQWRkIHR3byBlbGVtZW50cy4KKyAKK0BAIC0xMDk2LDcgKzEwOTYsNyBAQCBjZGVmIGNsYXNz IEZpbml0ZUZpZWxkX2dpdmFyb0VsZW1lbnQoRmluaXRlUG9seUV4dEVsZW1lbnQpOgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoPEZpbml0ZUZpZWxkX2dpdmFyb0VsZW1lbnQ+ cmlnaHQpLmVsZW1lbnQpCisgICAgICAgICByZXR1cm4gbWFrZV9GaW5pdGVGaWVsZF9naXZhcm9F bGVtZW50KHNlbGYuX2NhY2hlLCByKQorIAorLSAgICBjcGRlZiBfbXVsXyhzZWxmLCByaWdodCkg bm9leGNlcHQ6CisrICAgIGNwZGVmIF9tdWxfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgor ICAgICAgICAgTXVsdGlwbHkgdHdvIGVsZW1lbnRzLgorIAorQEAgLTExMTMsNyArMTExMyw3IEBA IGNkZWYgY2xhc3MgRmluaXRlRmllbGRfZ2l2YXJvRWxlbWVudChGaW5pdGVQb2x5RXh0RWxlbWVu dCk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICg8RmluaXRlRmllbGRfZ2l2 YXJvRWxlbWVudD5yaWdodCkuZWxlbWVudCkKKyAgICAgICAgIHJldHVybiBtYWtlX0Zpbml0ZUZp ZWxkX2dpdmFyb0VsZW1lbnQoc2VsZi5fY2FjaGUsIHIpCisgCistICAgIGNwZGVmIF9kaXZfKHNl bGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2Rpdl8oc2VsZiwgcmlnaHQpOgorICAg ICAgICAgIiIiCisgICAgICAgICBEaXZpZGUgdHdvIGVsZW1lbnRzCisgCitAQCAtMTEzNSw3ICsx MTM1LDcgQEAgY2RlZiBjbGFzcyBGaW5pdGVGaWVsZF9naXZhcm9FbGVtZW50KEZpbml0ZVBvbHlF eHRFbGVtZW50KToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDxGaW5pdGVG aWVsZF9naXZhcm9FbGVtZW50PnJpZ2h0KS5lbGVtZW50KQorICAgICAgICAgcmV0dXJuIG1ha2Vf RmluaXRlRmllbGRfZ2l2YXJvRWxlbWVudChzZWxmLl9jYWNoZSwgcikKKyAKKy0gICAgY3BkZWYg X3N1Yl8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdo dCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFN1YnRyYWN0IHR3byBlbGVtZW50cy4KKyAKK0BA IC0xMjg2LDcgKzEyODYsNyBAQCBjZGVmIGNsYXNzIEZpbml0ZUZpZWxkX2dpdmFyb0VsZW1lbnQo RmluaXRlUG9seUV4dEVsZW1lbnQpOgorICAgICAgICAgICAgIHJldHVybiBtYWtlX0Zpbml0ZUZp ZWxkX2dpdmFyb0VsZW1lbnQoY2FjaGUsIGNhY2hlLm9iamVjdHB0ci5vbmUpCisgICAgICAgICBy ZXR1cm4gbWFrZV9GaW5pdGVGaWVsZF9naXZhcm9FbGVtZW50KGNhY2hlLCByKQorIAorLSAgICBj cGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCkgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9yaWNoY21wXyhsZWZ0LCByaWdodCwgaW50IG9wKToKKyAgICAgICAgICIiIgorICAgICAgICAg Q29tcGFyaXNvbiBvZiBmaW5pdGUgZmllbGQgZWxlbWVudHMgaXMgY29ycmVjdCBvciBlcXVhbGl0 eQorICAgICAgICAgdGVzdHMgYW5kIHNvbWV3aGF0IHJhbmRvbSBmb3IgYGA8YGAgYW5kIGBgPmBg IHR5cGUgb2YKK0BAIC0xNzQzLDcgKzE3NDMsNyBAQCBkZWYgdW5waWNrbGVfRmluaXRlRmllbGRf Z2l2YXJvRWxlbWVudChwYXJlbnQsIGludCB4KToKKyBmcm9tIHNhZ2UubWlzYy5wZXJzaXN0IGlt cG9ydCByZWdpc3Rlcl91bnBpY2tsZV9vdmVycmlkZQorIHJlZ2lzdGVyX3VucGlja2xlX292ZXJy aWRlKCdzYWdlLnJpbmdzLmZpbml0ZV9maWVsZF9naXZhcm8nLCAndW5waWNrbGVfRmluaXRlRmll bGRfZ2l2YXJvRWxlbWVudCcsIHVucGlja2xlX0Zpbml0ZUZpZWxkX2dpdmFyb0VsZW1lbnQpCisg CistY2RlZiBpbmxpbmUgRmluaXRlRmllbGRfZ2l2YXJvRWxlbWVudCBtYWtlX0Zpbml0ZUZpZWxk X2dpdmFyb0VsZW1lbnQoQ2FjaGVfZ2l2YXJvIGNhY2hlLCBpbnQgeCkgbm9leGNlcHQ6CisrY2Rl ZiBpbmxpbmUgRmluaXRlRmllbGRfZ2l2YXJvRWxlbWVudCBtYWtlX0Zpbml0ZUZpZWxkX2dpdmFy b0VsZW1lbnQoQ2FjaGVfZ2l2YXJvIGNhY2hlLCBpbnQgeCk6CisgICAgIGNkZWYgRmluaXRlRmll bGRfZ2l2YXJvRWxlbWVudCB5CisgCisgICAgIGlmIGNhY2hlLl9oYXNfYXJyYXk6CitkaWZmIC0t Z2l0IGEvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2VsZW1lbnRfbnRsX2dmMmUucHhkIGIv c3JjL3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2VsZW1lbnRfbnRsX2dmMmUucHhkCitpbmRleCBi Njk5ZjZlM2VmNi4uZTk4NzQ0NDEzYjUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9maW5p dGVfcmluZ3MvZWxlbWVudF9udGxfZ2YyZS5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL2Zpbml0 ZV9yaW5ncy9lbGVtZW50X250bF9nZjJlLnB4ZAorQEAgLTEzLDkgKzEzLDkgQEAgY2RlZiBjbGFz cyBDYWNoZV9udGxfZ2YyZShDYWNoZV9iYXNlKToKKyAgICAgY2RlZiBwdWJsaWMgRmluaXRlRmll bGRfbnRsX2dmMmVFbGVtZW50IF9nZW4KKyAgICAgY2RlZiBJbnRlZ2VyIF9vcmRlcgorICAgICBj ZGVmIEludGVnZXIgX2RlZ3JlZQorLSAgICBjZGVmIEZpbml0ZUZpZWxkX250bF9nZjJlRWxlbWVu dCBfbmV3KHNlbGYpIG5vZXhjZXB0CisrICAgIGNkZWYgRmluaXRlRmllbGRfbnRsX2dmMmVFbGVt ZW50IF9uZXcoc2VsZikKKyAKKyBjZGVmIGNsYXNzIEZpbml0ZUZpZWxkX250bF9nZjJlRWxlbWVu dChGaW5pdGVQb2x5RXh0RWxlbWVudCk6CisgICAgIGNkZWYgR0YyRV9jIHgKKyAgICAgY2RlZiBD YWNoZV9udGxfZ2YyZSBfY2FjaGUKKy0gICAgY2RlZiBGaW5pdGVGaWVsZF9udGxfZ2YyZUVsZW1l bnQgX25ldyhGaW5pdGVGaWVsZF9udGxfZ2YyZUVsZW1lbnQgc2VsZikgbm9leGNlcHQKKysgICAg Y2RlZiBGaW5pdGVGaWVsZF9udGxfZ2YyZUVsZW1lbnQgX25ldyhGaW5pdGVGaWVsZF9udGxfZ2Yy ZUVsZW1lbnQgc2VsZikKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9maW5pdGVfcmluZ3Mv ZWxlbWVudF9udGxfZ2YyZS5weXggYi9zcmMvc2FnZS9yaW5ncy9maW5pdGVfcmluZ3MvZWxlbWVu dF9udGxfZ2YyZS5weXgKK2luZGV4IDRlMTBlZjkyN2E5Li4zOTliYjc2ODE1YiAxMDA2NDQKKy0t LSBhL3NyYy9zYWdlL3JpbmdzL2Zpbml0ZV9yaW5ncy9lbGVtZW50X250bF9nZjJlLnB5eAorKysr IGIvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2VsZW1lbnRfbnRsX2dmMmUucHl4CitAQCAt OTYsNyArOTYsNyBAQCBjZGVmIGludCBsYXRlX2ltcG9ydCgpIGV4Y2VwdCAtMToKKyBjZGVmIGV4 dGVybiBmcm9tICJhcnBhL2luZXQuaCI6CisgICAgIHVuc2lnbmVkIGludCBodG9ubCh1bnNpZ25l ZCBpbnQpCisgCistY2RlZiBsaXR0bGVfZW5kaWFuKCkgbm9leGNlcHQ6CisrY2RlZiBsaXR0bGVf ZW5kaWFuKCk6CisgICAgIHJldHVybiBodG9ubCgxKSAhPSAxCisgCisgY2RlZiB1bnNpZ25lZCBp bnQgc3dpdGNoX2VuZGlhbmVzcyh1bnNpZ25lZCBpbnQgaSkgbm9leGNlcHQ6CitAQCAtMjA1LDcg KzIwNSw3IEBAIGNkZWYgY2xhc3MgQ2FjaGVfbnRsX2dmMmUoQ2FjaGVfYmFzZSk6CisgICAgICAg ICBtb2RfcG9seSA9IEdGMlhNb2R1bHVzX0dGMlgobW9kdWx1cykKKyAgICAgICAgIHByaW50KGNj cmVwcihtb2RfcG9seSkpCisgCistICAgIGNkZWYgRmluaXRlRmllbGRfbnRsX2dmMmVFbGVtZW50 IF9uZXcoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgRmluaXRlRmllbGRfbnRsX2dmMmVFbGVt ZW50IF9uZXcoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBhIG5ldyBlbGVt ZW50IGluIGBgc2VsZmBgLiBVc2UgdGhpcyBtZXRob2QgdG8gY29uc3RydWN0CisgICAgICAgICAn ZW1wdHknIGVsZW1lbnRzLgorQEAgLTM3Nyw3ICszNzcsNyBAQCBjZGVmIGNsYXNzIENhY2hlX250 bF9nZjJlKENhY2hlX2Jhc2UpOgorIAorICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiQ2Fubm90 IGNvZXJjZSBlbGVtZW50ICVzIHRvIHRoaXMgZmllbGQuIiAlIGUpCisgCistICAgIGNwZGVmIEZp bml0ZUZpZWxkX250bF9nZjJlRWxlbWVudCBmZXRjaF9pbnQoc2VsZiwgbnVtYmVyKSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgRmluaXRlRmllbGRfbnRsX2dmMmVFbGVtZW50IGZldGNoX2ludChzZWxm LCBudW1iZXIpOgorICAgICAgICAgciIiIgorICAgICAgICAgR2l2ZW4gYW4gaW50ZWdlciBsZXNz IHRoYW4gYHBebmAgd2l0aCBiYXNlIGAyYAorICAgICAgICAgcmVwcmVzZW50YXRpb24gYGFfMCAr IGFfMSBcY2RvdCAyICsgXGNkb3RzICsgYV9rIDJea2AsIHRoaXMgcmV0dXJucworQEAgLTUxMSw3 ICs1MTEsNyBAQCBjZGVmIGNsYXNzIEZpbml0ZUZpZWxkX250bF9nZjJlRWxlbWVudChGaW5pdGVQ b2x5RXh0RWxlbWVudCk6CisgICAgICAgICAgICAgc2VsZi5fcGFyZW50ID0gcGFyZW50CisgICAg ICAgICAgICAgKDxDYWNoZV9udGxfZ2YyZT5zZWxmLl9wYXJlbnQuX2NhY2hlKS5GLnJlc3RvcmUo KQorIAorLSAgICBjZGVmIEZpbml0ZUZpZWxkX250bF9nZjJlRWxlbWVudCBfbmV3KEZpbml0ZUZp ZWxkX250bF9nZjJlRWxlbWVudCBzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBGaW5pdGVGaWVs ZF9udGxfZ2YyZUVsZW1lbnQgX25ldyhGaW5pdGVGaWVsZF9udGxfZ2YyZUVsZW1lbnQgc2VsZik6 CisgICAgICAgICBjZGVmIEZpbml0ZUZpZWxkX250bF9nZjJlRWxlbWVudCB5CisgICAgICAgICAo PENhY2hlX250bF9nZjJlPnNlbGYuX3BhcmVudC5fY2FjaGUpLkYucmVzdG9yZSgpCisgICAgICAg ICB5ID0gRmluaXRlRmllbGRfbnRsX2dmMmVFbGVtZW50Ll9fbmV3X18oRmluaXRlRmllbGRfbnRs X2dmMmVFbGVtZW50KQorQEAgLTY1Nyw3ICs2NTcsNyBAQCBjZGVmIGNsYXNzIEZpbml0ZUZpZWxk X250bF9nZjJlRWxlbWVudChGaW5pdGVQb2x5RXh0RWxlbWVudCk6CisgICAgICAgICBlbHNlOgor ICAgICAgICAgICAgIHJldHVybiBhCisgCistICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisg ICAgICAgICBBZGQgdHdvIGVsZW1lbnRzLgorIAorQEAgLTY3Myw3ICs2NzMsNyBAQCBjZGVmIGNs YXNzIEZpbml0ZUZpZWxkX250bF9nZjJlRWxlbWVudChGaW5pdGVQb2x5RXh0RWxlbWVudCk6Cisg ICAgICAgICBHRjJFX2FkZChyLngsICg8RmluaXRlRmllbGRfbnRsX2dmMmVFbGVtZW50PnNlbGYp LngsICg8RmluaXRlRmllbGRfbnRsX2dmMmVFbGVtZW50PnJpZ2h0KS54KQorICAgICAgICAgcmV0 dXJuIHIKKyAKKy0gICAgY3BkZWYgX211bF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBfbXVsXyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIE11bHRpcGx5 IHR3byBlbGVtZW50cy4KKyAKK0BAIC02ODksNyArNjg5LDcgQEAgY2RlZiBjbGFzcyBGaW5pdGVG aWVsZF9udGxfZ2YyZUVsZW1lbnQoRmluaXRlUG9seUV4dEVsZW1lbnQpOgorICAgICAgICAgR0Yy RV9tdWwoci54LCAoPEZpbml0ZUZpZWxkX250bF9nZjJlRWxlbWVudD5zZWxmKS54LCAoPEZpbml0 ZUZpZWxkX250bF9nZjJlRWxlbWVudD5yaWdodCkueCkKKyAgICAgICAgIHJldHVybiByCisgCist ICAgIGNwZGVmIF9kaXZfKHNlbGYsIG90aGVyKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2Rpdl8o c2VsZiwgb3RoZXIpOgorICAgICAgICAgIiIiCisgICAgICAgICBEaXZpZGUgdHdvIGVsZW1lbnRz LgorIAorQEAgLTcxMiw3ICs3MTIsNyBAQCBjZGVmIGNsYXNzIEZpbml0ZUZpZWxkX250bF9nZjJl RWxlbWVudChGaW5pdGVQb2x5RXh0RWxlbWVudCk6CisgICAgICAgICBHRjJFX2RpdihyLngsIHNl bGYueCwgby54KQorICAgICAgICAgcmV0dXJuIHIKKyAKKy0gICAgY3BkZWYgX3N1Yl8oc2VsZiwg cmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodCk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIFN1YnRyYWN0IHR3byBlbGVtZW50cy4KKyAKK0BAIC03NjEsNyArNzYx LDcgQEAgY2RlZiBjbGFzcyBGaW5pdGVGaWVsZF9udGxfZ2YyZUVsZW1lbnQoRmluaXRlUG9seUV4 dEVsZW1lbnQpOgorICAgICAgICAgY2RlZiBGaW5pdGVGaWVsZF9udGxfZ2YyZUVsZW1lbnQgbyA9 IHNlbGYuX3BhcmVudC5fY2FjaGUuX29uZV9lbGVtZW50CisgICAgICAgICByZXR1cm4gby5fZGl2 XyhzZWxmKQorIAorLSAgICBjZGVmIF9wb3dfbG9uZyhzZWxmLCBsb25nIG4pIG5vZXhjZXB0Ogor KyAgICBjZGVmIF9wb3dfbG9uZyhzZWxmLCBsb25nIG4pOgorICAgICAgICAgIiIiCisgICAgICAg ICBFWEFNUExFUzo6CisgCitAQCAtODAwLDcgKzgwMCw3IEBAIGNkZWYgY2xhc3MgRmluaXRlRmll bGRfbnRsX2dmMmVFbGVtZW50KEZpbml0ZVBvbHlFeHRFbGVtZW50KToKKyAgICAgICAgIEdGMkVf cG93ZXIoci54LCBzZWxmLngsIG4pCisgICAgICAgICByZXR1cm4gcgorIAorLSAgICBjcGRlZiBf cmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNo Y21wXyhsZWZ0LCByaWdodCwgaW50IG9wKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ29tcGFy aXNvbiBvZiBmaW5pdGUgZmllbGQgZWxlbWVudHMuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uv cmluZ3MvZmluaXRlX3JpbmdzL2VsZW1lbnRfcGFyaV9mZmVsdC5weGQgYi9zcmMvc2FnZS9yaW5n cy9maW5pdGVfcmluZ3MvZWxlbWVudF9wYXJpX2ZmZWx0LnB4ZAoraW5kZXggZjgwYWViNTU1MzIu LjA2YWFiY2FhNmQ1IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2Vs ZW1lbnRfcGFyaV9mZmVsdC5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL2Zpbml0ZV9yaW5ncy9l bGVtZW50X3BhcmlfZmZlbHQucHhkCitAQCAtNyw2ICs3LDYgQEAgY2RlZiBjbGFzcyBGaW5pdGVG aWVsZEVsZW1lbnRfcGFyaV9mZmVsdChGaW5pdGVQb2x5RXh0RWxlbWVudCk6CisgICAgICMgVGhp cyBob2xkcyBhIHJlZmVyZW5jZSB0byBhIFBBUkkgY2xvbmUuCisgICAgIGNkZWYgR0VOIHZhbAor IAorLSAgICBjZGVmIEZpbml0ZUZpZWxkRWxlbWVudF9wYXJpX2ZmZWx0IF9uZXcoc2VsZikgbm9l eGNlcHQKKysgICAgY2RlZiBGaW5pdGVGaWVsZEVsZW1lbnRfcGFyaV9mZmVsdCBfbmV3KHNlbGYp CisgICAgIGNkZWYgdm9pZCBjb25zdHJ1Y3Qoc2VsZiwgR0VOIGcpIG5vZXhjZXB0CisgICAgIGNk ZWYgaW50IGNvbnN0cnVjdF9mcm9tKHNlbGYsIHgpIGV4Y2VwdCAtMQorZGlmZiAtLWdpdCBhL3Ny Yy9zYWdlL3JpbmdzL2Zpbml0ZV9yaW5ncy9lbGVtZW50X3BhcmlfZmZlbHQucHl4IGIvc3JjL3Nh Z2UvcmluZ3MvZmluaXRlX3JpbmdzL2VsZW1lbnRfcGFyaV9mZmVsdC5weXgKK2luZGV4IGI3ODZh ZGEwMGRlLi45ODliMGUyMGI5ZSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL2Zpbml0ZV9y aW5ncy9lbGVtZW50X3BhcmlfZmZlbHQucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9maW5pdGVf cmluZ3MvZWxlbWVudF9wYXJpX2ZmZWx0LnB5eAorQEAgLTM0NSw3ICszNDUsNyBAQCBjZGVmIGNs YXNzIEZpbml0ZUZpZWxkRWxlbWVudF9wYXJpX2ZmZWx0KEZpbml0ZVBvbHlFeHRFbGVtZW50KToK KyAgICAgICAgIGlmIHNlbGYudmFsIGlzIG5vdCBOVUxMOgorICAgICAgICAgICAgIGd1bmNsb25l X2RlZXAoc2VsZi52YWwpCisgCistICAgIGNkZWYgRmluaXRlRmllbGRFbGVtZW50X3BhcmlfZmZl bHQgX25ldyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBGaW5pdGVGaWVsZEVsZW1lbnRfcGFy aV9mZmVsdCBfbmV3KHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBDcmVhdGUgYW4gZW1w dHkgZWxlbWVudCB3aXRoIHRoZSBzYW1lIHBhcmVudCBhcyBgYHNlbGZgYC4KKyAgICAgICAgICIi IgorQEAgLTU5OSw3ICs1OTksNyBAQCBjZGVmIGNsYXNzIEZpbml0ZUZpZWxkRWxlbWVudF9wYXJp X2ZmZWx0KEZpbml0ZVBvbHlFeHRFbGVtZW50KToKKyAgICAgICAgICMgaW1tdXRhYmxlCisgICAg ICAgICByZXR1cm4gc2VsZgorIAorLSAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgb3RoZXIsIGlu dCBvcCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCBvdGhlciwgaW50IG9w KToKKyAgICAgICAgICIiIgorICAgICAgICAgQ29tcGFyaXNvbiBvZiBmaW5pdGUgZmllbGQgZWxl bWVudHMuCisgCitAQCAtNjYwLDcgKzY2MCw3IEBAIGNkZWYgY2xhc3MgRmluaXRlRmllbGRFbGVt ZW50X3BhcmlfZmZlbHQoRmluaXRlUG9seUV4dEVsZW1lbnQpOgorICAgICAgICAgc2lnX29mZigp CisgICAgICAgICByZXR1cm4gcmljaF90b19ib29sKG9wLCByKQorIAorLSAgICBjcGRlZiBfYWRk XyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KToK KyAgICAgICAgICIiIgorICAgICAgICAgQWRkaXRpb24uCisgCitAQCAtNjc2LDcgKzY3Niw3IEBA IGNkZWYgY2xhc3MgRmluaXRlRmllbGRFbGVtZW50X3BhcmlfZmZlbHQoRmluaXRlUG9seUV4dEVs ZW1lbnQpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICg8RmluaXRlRmllbGRFbGVtZW50 X3BhcmlfZmZlbHQ+cmlnaHQpLnZhbCkpCisgICAgICAgICByZXR1cm4geAorIAorLSAgICBjcGRl ZiBfc3ViXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJp Z2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgU3VidHJhY3Rpb24uCisgCitAQCAtNjkyLDcg KzY5Miw3IEBAIGNkZWYgY2xhc3MgRmluaXRlRmllbGRFbGVtZW50X3BhcmlfZmZlbHQoRmluaXRl UG9seUV4dEVsZW1lbnQpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICg8RmluaXRlRmll bGRFbGVtZW50X3BhcmlfZmZlbHQ+cmlnaHQpLnZhbCkpCisgICAgICAgICByZXR1cm4geAorIAor LSAgICBjcGRlZiBfbXVsXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9tdWxf KHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgTXVsdGlwbGljYXRpb24uCisg CitAQCAtNzA4LDcgKzcwOCw3IEBAIGNkZWYgY2xhc3MgRmluaXRlRmllbGRFbGVtZW50X3Bhcmlf ZmZlbHQoRmluaXRlUG9seUV4dEVsZW1lbnQpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICg8RmluaXRlRmllbGRFbGVtZW50X3BhcmlfZmZlbHQ+cmlnaHQpLnZhbCkpCisgICAgICAgICBy ZXR1cm4geAorIAorLSAgICBjcGRlZiBfZGl2XyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAg IGNwZGVmIF9kaXZfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgRGl2aXNp b24uCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2Zpbml0ZV9m aWVsZF9iYXNlLnB5eCBiL3NyYy9zYWdlL3JpbmdzL2Zpbml0ZV9yaW5ncy9maW5pdGVfZmllbGRf YmFzZS5weXgKK2luZGV4IDAwYjMwYmI1YTQ0Li4yNDNiZjg1ZTFjZiAxMDA2NDQKKy0tLSBhL3Ny Yy9zYWdlL3JpbmdzL2Zpbml0ZV9yaW5ncy9maW5pdGVfZmllbGRfYmFzZS5weXgKKysrKyBiL3Ny Yy9zYWdlL3JpbmdzL2Zpbml0ZV9yaW5ncy9maW5pdGVfZmllbGRfYmFzZS5weXgKK0BAIC0xMzE4 LDcgKzEzMTgsNyBAQCBjZGVmIGNsYXNzIEZpbml0ZUZpZWxkKEZpZWxkKToKKyAKKyAgICAgICAg IHJldHVybiBWLCBwaGksIHBzaQorIAorLSAgICBjcGRlZiBfY29lcmNlX21hcF9mcm9tXyhzZWxm LCBSKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2NvZXJjZV9tYXBfZnJvbV8oc2VsZiwgUik6Cisg ICAgICAgICByIiIiCisgICAgICAgICBDYW5vbmljYWwgY29lcmNpb24gdG8gYGBzZWxmYGAuCisg CitAQCAtMTM4OSw3ICsxMzg5LDcgQEAgY2RlZiBjbGFzcyBGaW5pdGVGaWVsZChGaWVsZCk6Cisg ICAgICAgICAgICAgICAgICAgICAgIGFuZCBoYXNhdHRyKHNlbGYsICdfcHJlZml4JykgYW5kIGhh c2F0dHIoUiwgJ19wcmVmaXgnKSk6CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gUi5ob20o KHNlbGYuZ2VuKCkgKiogKChzZWxmLm9yZGVyKCkgLSAxKS8vKFIub3JkZXIoKSAtIDEpKSwpKQor IAorLSAgICBjcGRlZiBfY29udmVydF9tYXBfZnJvbV8oc2VsZiwgUikgbm9leGNlcHQ6CisrICAg IGNwZGVmIF9jb252ZXJ0X21hcF9mcm9tXyhzZWxmLCBSKToKKyAgICAgICAgICIiIgorICAgICAg ICAgQ29udmVyc2lvbiBmcm9tIHAtYWRpYyBmaWVsZHMuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3Nh Z2UvcmluZ3MvZmluaXRlX3JpbmdzL2hvbV9maW5pdGVfZmllbGQucHhkIGIvc3JjL3NhZ2Uvcmlu Z3MvZmluaXRlX3JpbmdzL2hvbV9maW5pdGVfZmllbGQucHhkCitpbmRleCA2NGRhODA5MDI0Zi4u MTk5ZDY1NWQ2ZDYgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9maW5pdGVfcmluZ3MvaG9t X2Zpbml0ZV9maWVsZC5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL2Zpbml0ZV9yaW5ncy9ob21f ZmluaXRlX2ZpZWxkLnB4ZAorQEAgLTExLDcgKzExLDcgQEAgY2RlZiBjbGFzcyBGaW5pdGVGaWVs ZEhvbW9tb3JwaGlzbV9nZW5lcmljKFJpbmdIb21vbW9ycGhpc21faW1fZ2Vucyk6CisgICAgIGNk ZWYgX2dlbgorICAgICBjZGVmIF9zZWN0aW9uX2NsYXNzCisgCistICAgIGNwZGVmIEVsZW1lbnQg X2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYs IHgpCisgCisgCisgY2RlZiBjbGFzcyBGcm9iZW5pdXNFbmRvbW9ycGhpc21fZmluaXRlX2ZpZWxk KEZyb2Jlbml1c0VuZG9tb3JwaGlzbV9nZW5lcmljKToKK0BAIC0xOSw0ICsxOSw0IEBAIGNkZWYg Y2xhc3MgRnJvYmVuaXVzRW5kb21vcnBoaXNtX2Zpbml0ZV9maWVsZChGcm9iZW5pdXNFbmRvbW9y cGhpc21fZ2VuZXJpYyk6CisgICAgIGNkZWYgbG9uZyBfZGVncmVlX2ZpeGVkCisgICAgIGNkZWYg bG9uZyBfb3JkZXIKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCkgbm9leGNl cHQKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCkKK2RpZmYgLS1naXQgYS9zcmMv c2FnZS9yaW5ncy9maW5pdGVfcmluZ3MvaG9tX2Zpbml0ZV9maWVsZC5weXggYi9zcmMvc2FnZS9y aW5ncy9maW5pdGVfcmluZ3MvaG9tX2Zpbml0ZV9maWVsZC5weXgKK2luZGV4IGI3YmJkNDE3Mjcz Li44YTgzYmY0ODc2NiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL2Zpbml0ZV9yaW5ncy9o b21fZmluaXRlX2ZpZWxkLnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2hv bV9maW5pdGVfZmllbGQucHl4CitAQCAtMTI0LDcgKzEyNCw3IEBAIGNkZWYgY2xhc3MgU2VjdGlv bkZpbml0ZUZpZWxkSG9tb21vcnBoaXNtX2dlbmVyaWMoU2VjdGlvbik6CisgICAgICIiIgorICAg ICBBIGNsYXNzIGltcGxlbWVudGluZyBzZWN0aW9ucyBvZiBlbWJlZGRpbmdzIGJldHdlZW4gZmlu aXRlIGZpZWxkcy4KKyAgICAgIiIiCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgp IG5vZXhjZXB0OiAgIyBOb3Qgb3B0aW1pemVkCisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNl bGYsIHgpOiAgIyBOb3Qgb3B0aW1pemVkCisgICAgICAgICAiIiIKKyAgICAgICAgIFRFU1RTOjoK KyAKK0BAIC0yOTksNyArMjk5LDcgQEAgY2RlZiBjbGFzcyBGaW5pdGVGaWVsZEhvbW9tb3JwaGlz bV9nZW5lcmljKFJpbmdIb21vbW9ycGhpc21faW1fZ2Vucyk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIHJldHVybiBzZWxmLmRvbWFpbigpLl9sYXRleF8oKSArICIgXFxob29rcmlnaHRhcnJvdyAi ICsgc2VsZi5jb2RvbWFpbigpLl9sYXRleF8oKQorIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxs XyhzZWxmLCB4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIFRFU1RTOjoKKyAKK0BAIC00MzYsNyArNDM2LDcgQEAg Y2RlZiBjbGFzcyBGaW5pdGVGaWVsZEhvbW9tb3JwaGlzbV9nZW5lcmljKFJpbmdIb21vbW9ycGhp c21faW1fZ2Vucyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBNb3JwaGlzbS5fX2hh c2hfXyhzZWxmKQorIAorLSAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpIG5vZXhjZXB0 OgorKyAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpOgorICAgICAgICAgciIiIgorICAg ICAgICAgSGVscGVyIGZ1bmN0aW9uIGZvciBjb3B5aW5nIGFuZCBwaWNrbGluZworIAorQEAgLTQ2 NCw3ICs0NjQsNyBAQCBjZGVmIGNsYXNzIEZpbml0ZUZpZWxkSG9tb21vcnBoaXNtX2dlbmVyaWMo UmluZ0hvbW9tb3JwaGlzbV9pbV9nZW5zKToKKyAgICAgICAgIHNsb3RzWydfc2VjdGlvbl9jbGFz cyddID0gc2VsZi5fc2VjdGlvbl9jbGFzcworICAgICAgICAgcmV0dXJuIHNsb3RzCisgCistICAg IGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0IHNsb3RzKSBub2V4Y2VwdDoKKysgICAgY2Rl ZiBfdXBkYXRlX3Nsb3RzKHNlbGYsIGRpY3Qgc2xvdHMpOgorICAgICAgICAgciIiIgorICAgICAg ICAgSGVscGVyIGZ1bmN0aW9uIGZvciBjb3B5aW5nIGFuZCBwaWNrbGluZworIAorQEAgLTYxOSw3 ICs2MTksNyBAQCBjZGVmIGNsYXNzIEZyb2Jlbml1c0VuZG9tb3JwaGlzbV9maW5pdGVfZmllbGQo RnJvYmVuaXVzRW5kb21vcnBoaXNtX2dlbmVyaWMpOgorICAgICAgICAgcmV0dXJuIHMKKyAKKyAK Ky0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCkgbm9leGNlcHQ6CisrICAgIGNwZGVm IEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpOgorICAgICAgICAgIiIiCisgICAgICAgICBURVNUUzo6 CisgCitAQCAtODQyLDcgKzg0Miw3IEBAIGNkZWYgY2xhc3MgRnJvYmVuaXVzRW5kb21vcnBoaXNt X2Zpbml0ZV9maWVsZChGcm9iZW5pdXNFbmRvbW9ycGhpc21fZ2VuZXJpYyk6CisgICAgICAgICAi IiIKKyAgICAgICAgIHJldHVybiBNb3JwaGlzbS5fX2hhc2hfXyhzZWxmKQorIAorLSAgICBjZGVm IF91cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBzbG90cykgbm9leGNlcHQ6CisrICAgIGNkZWYgX3Vw ZGF0ZV9zbG90cyhzZWxmLCBkaWN0IHNsb3RzKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIEhl bHBlciBmdW5jdGlvbiBmb3IgY29weWluZyBhbmQgcGlja2xpbmcKKyAKK2RpZmYgLS1naXQgYS9z cmMvc2FnZS9yaW5ncy9maW5pdGVfcmluZ3MvaG9tX2Zpbml0ZV9maWVsZF9naXZhcm8ucHhkIGIv c3JjL3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2hvbV9maW5pdGVfZmllbGRfZ2l2YXJvLnB4ZAor aW5kZXggZjVhNzBjOTc1ZjkuLmRjNDAxZDUyNmMwIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uvcmlu Z3MvZmluaXRlX3JpbmdzL2hvbV9maW5pdGVfZmllbGRfZ2l2YXJvLnB4ZAorKysrIGIvc3JjL3Nh Z2UvcmluZ3MvZmluaXRlX3JpbmdzL2hvbV9maW5pdGVfZmllbGRfZ2l2YXJvLnB4ZAorQEAgLTEx LDcgKzExLDcgQEAgY2RlZiBjbGFzcyBTZWN0aW9uRmluaXRlRmllbGRIb21vbW9ycGhpc21fZ2l2 YXJvKFNlY3Rpb25GaW5pdGVGaWVsZEhvbW9tb3JwaGlzbV8KKyAgICAgY2RlZiBsb25nIF9wb3dl cgorICAgICBjZGVmIENhY2hlX2dpdmFybyBfY29kb21haW5fY2FjaGUKKyAKKy0gICAgY3BkZWYg RWxlbWVudCBfY2FsbF8oc2VsZiwgeCkgbm9leGNlcHQKKysgICAgY3BkZWYgRWxlbWVudCBfY2Fs bF8oc2VsZiwgeCkKKyAKKyAKKyBjZGVmIGNsYXNzIEZpbml0ZUZpZWxkSG9tb21vcnBoaXNtX2dp dmFybyhGaW5pdGVGaWVsZEhvbW9tb3JwaGlzbV9nZW5lcmljKToKK0BAIC0yMCw3ICsyMCw3IEBA IGNkZWYgY2xhc3MgRmluaXRlRmllbGRIb21vbW9ycGhpc21fZ2l2YXJvKEZpbml0ZUZpZWxkSG9t b21vcnBoaXNtX2dlbmVyaWMpOgorICAgICBjZGVmIGxvbmcgX3Bvd2VyCisgICAgIGNkZWYgQ2Fj aGVfZ2l2YXJvIF9jb2RvbWFpbl9jYWNoZQorIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhz ZWxmLCB4KSBub2V4Y2VwdAorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KQorIAor IAorIGNkZWYgY2xhc3MgRnJvYmVuaXVzRW5kb21vcnBoaXNtX2dpdmFybyhGcm9iZW5pdXNFbmRv bW9ycGhpc21fZmluaXRlX2ZpZWxkKToKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9maW5p dGVfcmluZ3MvaG9tX2Zpbml0ZV9maWVsZF9naXZhcm8ucHl4IGIvc3JjL3NhZ2UvcmluZ3MvZmlu aXRlX3JpbmdzL2hvbV9maW5pdGVfZmllbGRfZ2l2YXJvLnB5eAoraW5kZXggZWViZDIwMDU2ZTcu LjBlNjdjYjZmMTIzIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2hv bV9maW5pdGVfZmllbGRfZ2l2YXJvLnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3Jp bmdzL2hvbV9maW5pdGVfZmllbGRfZ2l2YXJvLnB5eAorQEAgLTEwMCw3ICsxMDAsNyBAQCBjZGVm IGNsYXNzIFNlY3Rpb25GaW5pdGVGaWVsZEhvbW9tb3JwaGlzbV9naXZhcm8oU2VjdGlvbkZpbml0 ZUZpZWxkSG9tb21vcnBoaXNtXworICAgICAgICAgc2VsZi5fY29kb21haW5fY2FjaGUgPSAoPEZp bml0ZUZpZWxkX2dpdmFyb0VsZW1lbnQ+KHNlbGYuX2NvZG9tYWluLmdlbigpKSkuX2NhY2hlCisg CisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KToKKyAgICAgICAgICIiIgorICAgICAgICAgVEVT VFM6OgorIAorQEAgLTE4Miw3ICsxODIsNyBAQCBjZGVmIGNsYXNzIEZpbml0ZUZpZWxkSG9tb21v cnBoaXNtX2dpdmFybyhGaW5pdGVGaWVsZEhvbW9tb3JwaGlzbV9nZW5lcmljKToKKyAgICAgICAg IHNlbGYuX29yZGVyX2NvZG9tYWluID0gY29kb21haW4uY2FyZGluYWxpdHkoKSAtIDEKKyAKKyAK Ky0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCkgbm9leGNlcHQ6CisrICAgIGNwZGVm IEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpOgorICAgICAgICAgIiIiCisgICAgICAgICBURVNUUzo6 CisgCitAQCAtMjczLDcgKzI3Myw3IEBAIGNkZWYgY2xhc3MgRnJvYmVuaXVzRW5kb21vcnBoaXNt X2dpdmFybyhGcm9iZW5pdXNFbmRvbW9ycGhpc21fZmluaXRlX2ZpZWxkKToKKyAKKyAKKyAjIGNv cGllZCBmcm9tIGVsZW1lbnRfZ2l2YXJvLnB5eAorLWNkZWYgaW5saW5lIEZpbml0ZUZpZWxkX2dp dmFyb0VsZW1lbnQgbWFrZV9GaW5pdGVGaWVsZF9naXZhcm9FbGVtZW50KENhY2hlX2dpdmFybyBj YWNoZSwgaW50IHgpIG5vZXhjZXB0OgorK2NkZWYgaW5saW5lIEZpbml0ZUZpZWxkX2dpdmFyb0Vs ZW1lbnQgbWFrZV9GaW5pdGVGaWVsZF9naXZhcm9FbGVtZW50KENhY2hlX2dpdmFybyBjYWNoZSwg aW50IHgpOgorICAgICBjZGVmIEZpbml0ZUZpZWxkX2dpdmFyb0VsZW1lbnQgeQorIAorICAgICBp ZiBjYWNoZS5faGFzX2FycmF5OgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL2Zpbml0ZV9y aW5ncy9ob21fcHJpbWVfZmluaXRlX2ZpZWxkLnB5eCBiL3NyYy9zYWdlL3JpbmdzL2Zpbml0ZV9y aW5ncy9ob21fcHJpbWVfZmluaXRlX2ZpZWxkLnB5eAoraW5kZXggNGZjMmM4MzJmOTAuLmU0NWRl MWQ4M2Y5IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2hvbV9wcmlt ZV9maW5pdGVfZmllbGQucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9maW5pdGVfcmluZ3MvaG9t X3ByaW1lX2Zpbml0ZV9maWVsZC5weXgKK0BAIC0zNSw3ICszNSw3IEBAIGZyb20gc2FnZS5yaW5n cy5maW5pdGVfcmluZ3MuZmluaXRlX2ZpZWxkX2Jhc2UgaW1wb3J0IEZpbml0ZUZpZWxkCisgCisg CisgY2RlZiBjbGFzcyBTZWN0aW9uRmluaXRlRmllbGRIb21vbW9ycGhpc21fcHJpbWUoU2VjdGlv bkZpbml0ZUZpZWxkSG9tb21vcnBoaXNtX2dlbmVyaWMpOgorLSAgICBjcGRlZiBFbGVtZW50IF9j YWxsXyhzZWxmLCB4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwg eCk6CisgICAgICAgICB0cnk6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2NvZG9tYWluLl9l bGVtZW50X2NvbnN0cnVjdG9yXyh4KQorICAgICAgICAgZXhjZXB0IFR5cGVFcnJvcjoKK0BAIC03 NSw3ICs3NSw3IEBAIGNkZWYgY2xhc3MgRmluaXRlRmllbGRIb21vbW9ycGhpc21fcHJpbWUoRmlu aXRlRmllbGRIb21vbW9ycGhpc21fZ2VuZXJpYyk6CisgICAgICAgICBGaW5pdGVGaWVsZEhvbW9t b3JwaGlzbV9nZW5lcmljLl9faW5pdF9fKHNlbGYsIHBhcmVudCwgaW1fZ2VucywgYmFzZV9tYXA9 YmFzZV9tYXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNoZWNrPWNoZWNrLCBzZWN0aW9uX2NsYXNzPXNlY3Rpb25fY2xhc3MpCisgCistICAgIGNw ZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50 IF9jYWxsXyhzZWxmLCB4KToKKyAgICAgICAgICIiIgorICAgICAgICAgVEVTVFM6OgorIAorQEAg LTEwNCw3ICsxMDQsNyBAQCBjZGVmIGNsYXNzIEZyb2Jlbml1c0VuZG9tb3JwaGlzbV9wcmltZShG cm9iZW5pdXNFbmRvbW9ycGhpc21fZmluaXRlX2ZpZWxkKToKKyAgICAgICAgIHNlbGYuX29yZGVy ID0gMQorICAgICAgICAgc2VsZi5fcG93ZXIgPSAwCisgCistICAgIGNwZGVmIEVsZW1lbnQgX2Nh bGxfKHNlbGYsIHgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4 KToKKyAgICAgICAgICIiIgorICAgICAgICAgVEVTVFM6OgorIAorZGlmZiAtLWdpdCBhL3NyYy9z YWdlL3JpbmdzL2Zpbml0ZV9yaW5ncy9pbnRlZ2VyX21vZC5weGQgYi9zcmMvc2FnZS9yaW5ncy9m aW5pdGVfcmluZ3MvaW50ZWdlcl9tb2QucHhkCitpbmRleCA1ZDE2YmFkODgwZS4uMzRlNzI0NzJh M2UgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9maW5pdGVfcmluZ3MvaW50ZWdlcl9tb2Qu cHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9maW5pdGVfcmluZ3MvaW50ZWdlcl9tb2QucHhkCitA QCAtMTAsNyArMTAsNyBAQCBjZGVmIGNsYXNzIE5hdGl2ZUludFN0cnVjdDoKKyAgICAgY2RlZiBp bnRfZmFzdDY0X3QgaW50NjQKKyAgICAgY2RlZiByZWFkb25seSBsaXN0IHRhYmxlICAgICAjIGxp c3Qgb2YgZWxlbWVudHMgb2YgSW50ZWdlck1vZFJpbmcobikKKyAgICAgY2RlZiByZWFkb25seSBs aXN0IGludmVyc2VzICAjIGxpc3Qgb2YgaW52ZXJzZXMgKE5vbmUgaWYgbm90IGludmVydGlibGUp CistICAgIGNkZWYgaW5saW5lIHR5cGUgZWxlbWVudF9jbGFzcyhzZWxmKSBub2V4Y2VwdDoKKysg ICAgY2RlZiBpbmxpbmUgdHlwZSBlbGVtZW50X2NsYXNzKHNlbGYpOgorICAgICAgICAgaWYgc2Vs Zi5pbnQzMiA+IDA6CisgICAgICAgICAgICAgcmV0dXJuIEludGVnZXJNb2RfaW50CisgICAgICAg ICBlbGlmIHNlbGYuaW50NjQgPiAwOgorQEAgLTIxLDM0ICsyMSwzNCBAQCBjZGVmIGNsYXNzIE5h dGl2ZUludFN0cnVjdDoKKyAKKyBjZGVmIGNsYXNzIEludGVnZXJNb2RfYWJzdHJhY3QoRmluaXRl UmluZ0VsZW1lbnQpOgorICAgICBjZGVmIE5hdGl2ZUludFN0cnVjdCBfbW9kdWx1cworLSAgICBj ZGVmIF9uZXdfY19mcm9tX2xvbmcoc2VsZiwgbG9uZyB2YWx1ZSkgbm9leGNlcHQKKy0gICAgY2Rl ZiBJbnRlZ2VyTW9kX2Fic3RyYWN0IF9uZXdfY19mYXN0KHNlbGYsIHVuc2lnbmVkIGxvbmcgdmFs dWUpIG5vZXhjZXB0CisrICAgIGNkZWYgX25ld19jX2Zyb21fbG9uZyhzZWxmLCBsb25nIHZhbHVl KQorKyAgICBjZGVmIEludGVnZXJNb2RfYWJzdHJhY3QgX25ld19jX2Zhc3Qoc2VsZiwgdW5zaWdu ZWQgbG9uZyB2YWx1ZSkKKyAgICAgY2RlZiB2b2lkIHNldF9mcm9tX21weihzZWxmLCBtcHpfdCB2 YWx1ZSkgbm9leGNlcHQKKyAgICAgY2RlZiB2b2lkIHNldF9mcm9tX2xvbmcoc2VsZiwgbG9uZyB2 YWx1ZSkgbm9leGNlcHQKKyAgICAgY2RlZiB2b2lkIHNldF9mcm9tX3Vsb25nX2Zhc3Qoc2VsZiwg dW5zaWduZWQgbG9uZyB2YWx1ZSkgbm9leGNlcHQKKyAgICAgY2RlZiBiaW50IGlzX3NxdWFyZV9j KHNlbGYpIGV4Y2VwdCAtMgorICAgICBjcGRlZiBiaW50IGlzX29uZShzZWxmKSBub2V4Y2VwdAor ICAgICBjcGRlZiBiaW50IGlzX3VuaXQoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgX2Zsb29y ZGl2XyhzZWxmLCBvdGhlcikgbm9leGNlcHQKKysgICAgY3BkZWYgX2Zsb29yZGl2XyhzZWxmLCBv dGhlcikKKyAKKyBjZGVmIGNsYXNzIEludGVnZXJNb2RfZ21wKEludGVnZXJNb2RfYWJzdHJhY3Qp OgorICAgICBjZGVmIG1wel90IHZhbHVlCistICAgIGNkZWYgSW50ZWdlck1vZF9nbXAgX25ld19j KHNlbGYpIG5vZXhjZXB0CistICAgIGNkZWYgc2hpZnQoSW50ZWdlck1vZF9nbXAgc2VsZiwgbG9u ZyBrKSBub2V4Y2VwdAorKyAgICBjZGVmIEludGVnZXJNb2RfZ21wIF9uZXdfYyhzZWxmKQorKyAg ICBjZGVmIHNoaWZ0KEludGVnZXJNb2RfZ21wIHNlbGYsIGxvbmcgaykKKyAKKyBjZGVmIGNsYXNz IEludGVnZXJNb2RfaW50KEludGVnZXJNb2RfYWJzdHJhY3QpOgorICAgICBjZGVmIGludF9mYXN0 MzJfdCBpdmFsdWUKKyAgICAgY2RlZiB2b2lkIHNldF9mcm9tX2ludChJbnRlZ2VyTW9kX2ludCBz ZWxmLCBpbnRfZmFzdDMyX3QgdmFsdWUpIG5vZXhjZXB0CisgICAgIGNkZWYgaW50X2Zhc3QzMl90 IGdldF9pbnRfdmFsdWUoSW50ZWdlck1vZF9pbnQgc2VsZikgbm9leGNlcHQKKy0gICAgY2RlZiBJ bnRlZ2VyTW9kX2ludCBfbmV3X2Moc2VsZiwgaW50X2Zhc3QzMl90IHZhbHVlKSBub2V4Y2VwdAor LSAgICBjZGVmIHNoaWZ0KEludGVnZXJNb2RfaW50IHNlbGYsIGludCBrKSBub2V4Y2VwdAorKyAg ICBjZGVmIEludGVnZXJNb2RfaW50IF9uZXdfYyhzZWxmLCBpbnRfZmFzdDMyX3QgdmFsdWUpCisr ICAgIGNkZWYgc2hpZnQoSW50ZWdlck1vZF9pbnQgc2VsZiwgaW50IGspCisgCisgY2RlZiBjbGFz cyBJbnRlZ2VyTW9kX2ludDY0KEludGVnZXJNb2RfYWJzdHJhY3QpOgorICAgICBjZGVmIGludF9m YXN0NjRfdCBpdmFsdWUKKyAgICAgY2RlZiB2b2lkIHNldF9mcm9tX2ludChJbnRlZ2VyTW9kX2lu dDY0IHNlbGYsIGludF9mYXN0NjRfdCB2YWx1ZSkgbm9leGNlcHQKKyAgICAgY2RlZiBpbnRfZmFz dDY0X3QgZ2V0X2ludF92YWx1ZShJbnRlZ2VyTW9kX2ludDY0IHNlbGYpIG5vZXhjZXB0CistICAg IGNkZWYgSW50ZWdlck1vZF9pbnQ2NCBfbmV3X2Moc2VsZiwgaW50X2Zhc3Q2NF90IHZhbHVlKSBu b2V4Y2VwdAorLSAgICBjZGVmIHNoaWZ0KEludGVnZXJNb2RfaW50NjQgc2VsZiwgaW50IGspIG5v ZXhjZXB0CisrICAgIGNkZWYgSW50ZWdlck1vZF9pbnQ2NCBfbmV3X2Moc2VsZiwgaW50X2Zhc3Q2 NF90IHZhbHVlKQorKyAgICBjZGVmIHNoaWZ0KEludGVnZXJNb2RfaW50NjQgc2VsZiwgaW50IGsp CisgCisgCisgY2RlZiBpbnRfZmFzdDMyX3QgbW9kX2ludmVyc2VfaW50KGludF9mYXN0MzJfdCB4 LCBpbnRfZmFzdDMyX3QgbikgZXhjZXB0IDAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9m aW5pdGVfcmluZ3MvaW50ZWdlcl9tb2QucHl4IGIvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3Jpbmdz L2ludGVnZXJfbW9kLnB5eAoraW5kZXggNzM3NDY5MDU4MjEuLjlhM2YwMmI2ZWYwIDEwMDY0NAor LS0tIGEvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2ludGVnZXJfbW9kLnB5eAorKysrIGIv c3JjL3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2ludGVnZXJfbW9kLnB5eAorQEAgLTIxOSw3ICsy MTksNyBAQCBkZWYgaXNfSW50ZWdlck1vZCh4KToKKyAgICAgcmV0dXJuIGlzaW5zdGFuY2UoeCwg SW50ZWdlck1vZF9hYnN0cmFjdCkKKyAKKyAKKy1jZGVmIGlubGluZSBpbnZlcnNlX29yX05vbmUo eCkgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUgaW52ZXJzZV9vcl9Ob25lKHgpOgorICAgICB0cnk6 CisgICAgICAgICByZXR1cm4gfngKKyAgICAgZXhjZXB0IEFyaXRobWV0aWNFcnJvcjoKK0BAIC0z OTMsNyArMzkzLDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2Fic3RyYWN0KEZpbml0ZVJpbmdF bGVtZW50KToKKyAgICAgICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICBzZWxmLnNldF9m cm9tX21weih6LnZhbHVlKQorIAorLSAgICBjZGVmIEludGVnZXJNb2RfYWJzdHJhY3QgX25ld19j X2Zhc3Qoc2VsZiwgdW5zaWduZWQgbG9uZyB2YWx1ZSkgbm9leGNlcHQ6CisrICAgIGNkZWYgSW50 ZWdlck1vZF9hYnN0cmFjdCBfbmV3X2NfZmFzdChzZWxmLCB1bnNpZ25lZCBsb25nIHZhbHVlKToK KyAgICAgICAgIGNkZWYgdHlwZSB0ID0gdHlwZShzZWxmKQorICAgICAgICAgeCA9IDxJbnRlZ2Vy TW9kX2Fic3RyYWN0PnQuX19uZXdfXyh0KQorICAgICAgICAgeC5fcGFyZW50ID0gc2VsZi5fcGFy ZW50CitAQCAtNDAxLDcgKzQwMSw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9hYnN0cmFjdChG aW5pdGVSaW5nRWxlbWVudCk6CisgICAgICAgICB4LnNldF9mcm9tX3Vsb25nX2Zhc3QodmFsdWUp CisgICAgICAgICByZXR1cm4geAorIAorLSAgICBjZGVmIF9uZXdfY19mcm9tX2xvbmcoc2VsZiwg bG9uZyB2YWx1ZSkgbm9leGNlcHQ6CisrICAgIGNkZWYgX25ld19jX2Zyb21fbG9uZyhzZWxmLCBs b25nIHZhbHVlKToKKyAgICAgICAgIGNkZWYgdHlwZSB0ID0gdHlwZShzZWxmKQorICAgICAgICAg Y2RlZiBJbnRlZ2VyTW9kX2Fic3RyYWN0IHggPSA8SW50ZWdlck1vZF9hYnN0cmFjdD50Ll9fbmV3 X18odCkKKyAgICAgICAgIHguX3BhcmVudCA9IHNlbGYuX3BhcmVudAorQEAgLTE5MTcsNyArMTkx Nyw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9hYnN0cmFjdChGaW5pdGVSaW5nRWxlbWVudCk6 CisgICAgICAgICAgICAgICAgIHJldHVybiBpbmZpbml0eQorICAgICAgICAgcmV0dXJuIHIKKyAK Ky0gICAgY3BkZWYgX2Zsb29yZGl2XyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9mbG9vcmRpdl8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBFeGFjdCBk aXZpc2lvbiBmb3IgcHJpbWUgbW9kdWxpLCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG90aGVyIGZp ZWxkcy4KKyAKK0BAIC0xOTc2LDcgKzE5NzYsNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfZ21w KEludGVnZXJNb2RfYWJzdHJhY3QpOgorICAgICBkZWYgX19jaW5pdF9fKHNlbGYpOgorICAgICAg ICAgbXB6X2luaXQoc2VsZi52YWx1ZSkKKyAKKy0gICAgY2RlZiBJbnRlZ2VyTW9kX2dtcCBfbmV3 X2Moc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgSW50ZWdlck1vZF9nbXAgX25ld19jKHNlbGYp OgorICAgICAgICAgY2RlZiBJbnRlZ2VyTW9kX2dtcCB4CisgICAgICAgICB4ID0gSW50ZWdlck1v ZF9nbXAuX19uZXdfXyhJbnRlZ2VyTW9kX2dtcCkKKyAgICAgICAgIHguX21vZHVsdXMgPSBzZWxm Ll9tb2R1bHVzCitAQCAtMjAzMyw3ICsyMDMzLDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2dt cChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNl bGYuc2hpZnQoLWxvbmcoaykpCisgCistICAgIGNkZWYgc2hpZnQoSW50ZWdlck1vZF9nbXAgc2Vs ZiwgbG9uZyBrKSBub2V4Y2VwdDoKKysgICAgY2RlZiBzaGlmdChJbnRlZ2VyTW9kX2dtcCBzZWxm LCBsb25nIGspOgorICAgICAgICAgciIiIgorICAgICAgICAgUGVyZm9ybXMgYSBiaXQtc2hpZnQg c3BlY2lmaWVkIGJ5IGBga2BgIG9uIGBgc2VsZmBgLgorIAorQEAgLTIwNzUsNyArMjA3NSw3IEBA IGNkZWYgY2xhc3MgSW50ZWdlck1vZF9nbXAoSW50ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgICAg ICAgICAgICAgIG1wel9mZGl2X3FfMmV4cCh4LnZhbHVlLCBzZWxmLnZhbHVlLCAtaykKKyAgICAg ICAgICAgICByZXR1cm4geAorIAorLSAgICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGlu dCBvcCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdodCwgaW50IG9w KToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTIxNzYsNyArMjE3 Niw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9nbXAoSW50ZWdlck1vZF9hYnN0cmFjdCk6Cisg ICAgICAgICAjIGltbXV0YWJsZQorICAgICAgICAgcmV0dXJuIHNlbGYKKyAKKy0gICAgY3BkZWYg X2FkZF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWRkXyhzZWxmLCByaWdo dCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0yMTkxLDcgKzIx OTEsNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfZ21wKEludGVnZXJNb2RfYWJzdHJhY3QpOgor ICAgICAgICAgICAgIG1wel9zdWIoeC52YWx1ZSwgeC52YWx1ZSwgc2VsZi5fbW9kdWx1cy5zYWdl SW50ZWdlci52YWx1ZSkKKyAgICAgICAgIHJldHVybiB4CisgCistICAgIGNwZGVmIF9zdWJfKHNl bGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQpOgorICAg ICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMjIwNiw3ICsyMjA2LDcgQEAg Y2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2dtcChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgICAg ICAgICBtcHpfYWRkKHgudmFsdWUsIHgudmFsdWUsIHNlbGYuX21vZHVsdXMuc2FnZUludGVnZXIu dmFsdWUpCisgICAgICAgICByZXR1cm4geAorIAorLSAgICBjcGRlZiBfbmVnXyhzZWxmKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgX25lZ18oc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVY QU1QTEVTOjoKKyAKK0BAIC0yMjIyLDcgKzIyMjIsNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2Rf Z21wKEludGVnZXJNb2RfYWJzdHJhY3QpOgorICAgICAgICAgbXB6X3N1Yih4LnZhbHVlLCBzZWxm Ll9tb2R1bHVzLnNhZ2VJbnRlZ2VyLnZhbHVlLCBzZWxmLnZhbHVlKQorICAgICAgICAgcmV0dXJu IHgKKyAKKy0gICAgY3BkZWYgX211bF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBfbXVsXyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoK KyAKK0BAIC0yMjM2LDcgKzIyMzYsNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfZ21wKEludGVn ZXJNb2RfYWJzdHJhY3QpOgorICAgICAgICAgbXB6X2ZkaXZfcih4LnZhbHVlLCB4LnZhbHVlLCBz ZWxmLl9tb2R1bHVzLnNhZ2VJbnRlZ2VyLnZhbHVlKQorICAgICAgICAgcmV0dXJuIHgKKyAKKy0g ICAgY3BkZWYgX2Rpdl8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZGl2Xyhz ZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0y NDIwLDcgKzI0MjAsNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfaW50KEludGVnZXJNb2RfYWJz dHJhY3QpOgorICAgICAgICAgVHJ1ZQorICAgICAiIiIKKyAKKy0gICAgY2RlZiBJbnRlZ2VyTW9k X2ludCBfbmV3X2Moc2VsZiwgaW50X2Zhc3QzMl90IHZhbHVlKSBub2V4Y2VwdDoKKysgICAgY2Rl ZiBJbnRlZ2VyTW9kX2ludCBfbmV3X2Moc2VsZiwgaW50X2Zhc3QzMl90IHZhbHVlKToKKyAgICAg ICAgIGlmIHNlbGYuX21vZHVsdXMudGFibGUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgcmV0 dXJuIHNlbGYuX21vZHVsdXMudGFibGVbdmFsdWVdCisgICAgICAgICBjZGVmIEludGVnZXJNb2Rf aW50IHggPSBJbnRlZ2VyTW9kX2ludC5fX25ld19fKEludGVnZXJNb2RfaW50KQorQEAgLTI0NTEs NyArMjQ1MSw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9pbnQoSW50ZWdlck1vZF9hYnN0cmFj dCk6CisgICAgIGNkZWYgaW50X2Zhc3QzMl90IGdldF9pbnRfdmFsdWUoSW50ZWdlck1vZF9pbnQg c2VsZikgbm9leGNlcHQ6CisgICAgICAgICByZXR1cm4gc2VsZi5pdmFsdWUKKyAKKy0gICAgY3Bk ZWYgX3JpY2hjbXBfKHNlbGYsIHJpZ2h0LCBpbnQgb3ApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBf cmljaGNtcF8oc2VsZiwgcmlnaHQsIGludCBvcCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVY QU1QTEVTOjoKKyAKK0BAIC0yNTc1LDcgKzI1NzUsNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2Rf aW50KEludGVnZXJNb2RfYWJzdHJhY3QpOgorICAgICAgICAgIyBpbW11dGFibGUKKyAgICAgICAg IHJldHVybiBzZWxmCisgCistICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoK KysgICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBF WEFNUExFUzo6CisgCitAQCAtMjU4OSw3ICsyNTg5LDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9k X2ludChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgICAgICAgICB4ID0geCAtIHNlbGYuX21v ZHVsdXMuaW50MzIKKyAgICAgICAgIHJldHVybiBzZWxmLl9uZXdfYyh4KQorIAorLSAgICBjcGRl ZiBfc3ViXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJp Z2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTI2MDMsNyAr MjYwMyw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlck1vZF9pbnQoSW50ZWdlck1vZF9hYnN0cmFjdCk6 CisgICAgICAgICAgICAgeCA9IHggKyBzZWxmLl9tb2R1bHVzLmludDMyCisgICAgICAgICByZXR1 cm4gc2VsZi5fbmV3X2MoeCkKKyAKKy0gICAgY3BkZWYgX25lZ18oc2VsZikgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIF9uZWdfKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6 CisgCitAQCAtMjYxNiw3ICsyNjE2LDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2ludChJbnRl Z2VyTW9kX2Fic3RyYWN0KToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZgorICAgICAgICAgcmV0 dXJuIHNlbGYuX25ld19jKHNlbGYuX21vZHVsdXMuaW50MzIgLSBzZWxmLml2YWx1ZSkKKyAKKy0g ICAgY3BkZWYgX211bF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbXVsXyhz ZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0y NjI2LDcgKzI2MjYsNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfaW50KEludGVnZXJNb2RfYWJz dHJhY3QpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2MoKHNlbGYu aXZhbHVlICogKDxJbnRlZ2VyTW9kX2ludD5yaWdodCkuaXZhbHVlKSAlIHNlbGYuX21vZHVsdXMu aW50MzIpCisgCistICAgIGNwZGVmIF9kaXZfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgX2Rpdl8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExF Uzo6CisgCitAQCAtMjY5OSw3ICsyNjk5LDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2ludChJ bnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYu c2hpZnQoLWludChrKSkKKyAKKy0gICAgY2RlZiBzaGlmdChJbnRlZ2VyTW9kX2ludCBzZWxmLCBp bnQgaykgbm9leGNlcHQ6CisrICAgIGNkZWYgc2hpZnQoSW50ZWdlck1vZF9pbnQgc2VsZiwgaW50 IGspOgorICAgICAgICAgIiIiCisgICAgICAgICBQZXJmb3JtcyBhIGJpdC1zaGlmdCBzcGVjaWZp ZWQgYnkgYGBrYGAgb24gYGBzZWxmYGAuCisgCitAQCAtMzI1Miw3ICszMjUyLDcgQEAgY2RlZiBj bGFzcyBJbnRlZ2VyTW9kX2ludDY0KEludGVnZXJNb2RfYWJzdHJhY3QpOgorICAgICAtIFJvYmVy dCBCcmFkc2hhdyAoMjAwNi0wOS0xNCkKKyAgICAgIiIiCisgCistICAgIGNkZWYgSW50ZWdlck1v ZF9pbnQ2NCBfbmV3X2Moc2VsZiwgaW50X2Zhc3Q2NF90IHZhbHVlKSBub2V4Y2VwdDoKKysgICAg Y2RlZiBJbnRlZ2VyTW9kX2ludDY0IF9uZXdfYyhzZWxmLCBpbnRfZmFzdDY0X3QgdmFsdWUpOgor ICAgICAgICAgY2RlZiBJbnRlZ2VyTW9kX2ludDY0IHgKKyAgICAgICAgIHggPSBJbnRlZ2VyTW9k X2ludDY0Ll9fbmV3X18oSW50ZWdlck1vZF9pbnQ2NCkKKyAgICAgICAgIHguX21vZHVsdXMgPSBz ZWxmLl9tb2R1bHVzCitAQCAtMzI4Miw3ICszMjgyLDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9k X2ludDY0KEludGVnZXJNb2RfYWJzdHJhY3QpOgorICAgICBjZGVmIGludF9mYXN0NjRfdCBnZXRf aW50X3ZhbHVlKEludGVnZXJNb2RfaW50NjQgc2VsZikgbm9leGNlcHQ6CisgICAgICAgICByZXR1 cm4gc2VsZi5pdmFsdWUKKyAKKy0gICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIHJpZ2h0LCBpbnQg b3ApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgcmlnaHQsIGludCBvcCk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0zNDExLDcgKzM0MTEs NyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfaW50NjQoSW50ZWdlck1vZF9hYnN0cmFjdCk6Cisg ICAgICAgICAjIGltbXV0YWJsZQorICAgICAgICAgcmV0dXJuIHNlbGYKKyAKKy0gICAgY3BkZWYg X2FkZF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWRkXyhzZWxmLCByaWdo dCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0zNDI1LDcgKzM0 MjUsNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfaW50NjQoSW50ZWdlck1vZF9hYnN0cmFjdCk6 CisgICAgICAgICAgICAgeCA9IHggLSBzZWxmLl9tb2R1bHVzLmludDY0CisgICAgICAgICByZXR1 cm4gc2VsZi5fbmV3X2MoeCkKKyAKKy0gICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0zNDM5LDcgKzM0MzksNyBAQCBjZGVmIGNsYXNzIEludGVn ZXJNb2RfaW50NjQoSW50ZWdlck1vZF9hYnN0cmFjdCk6CisgICAgICAgICAgICAgeCA9IHggKyBz ZWxmLl9tb2R1bHVzLmludDY0CisgICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2MoeCkKKyAKKy0g ICAgY3BkZWYgX25lZ18oc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9uZWdfKHNlbGYpOgor ICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMzQ1Miw3ICszNDUyLDcg QEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2ludDY0KEludGVnZXJNb2RfYWJzdHJhY3QpOgorICAg ICAgICAgICAgIHJldHVybiBzZWxmCisgICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2Moc2VsZi5f bW9kdWx1cy5pbnQ2NCAtIHNlbGYuaXZhbHVlKQorIAorLSAgICBjcGRlZiBfbXVsXyhzZWxmLCBy aWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9tdWxfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAg ICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTM0NjMsNyArMzQ2Myw3IEBAIGNkZWYg Y2xhc3MgSW50ZWdlck1vZF9pbnQ2NChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAgICAgIHJl dHVybiBzZWxmLl9uZXdfYygoc2VsZi5pdmFsdWUgKiAoPEludGVnZXJNb2RfaW50NjQ+cmlnaHQp Lml2YWx1ZSkgJSBzZWxmLl9tb2R1bHVzLmludDY0KQorIAorIAorLSAgICBjcGRlZiBfZGl2Xyhz ZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9kaXZfKHNlbGYsIHJpZ2h0KToKKyAg ICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTM1MTksNyArMzUxOSw3IEBA IGNkZWYgY2xhc3MgSW50ZWdlck1vZF9pbnQ2NChJbnRlZ2VyTW9kX2Fic3RyYWN0KToKKyAgICAg ICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuc2hpZnQoLWludChrKSkKKyAKKy0gICAgY2Rl ZiBzaGlmdChJbnRlZ2VyTW9kX2ludDY0IHNlbGYsIGludCBrKSBub2V4Y2VwdDoKKysgICAgY2Rl ZiBzaGlmdChJbnRlZ2VyTW9kX2ludDY0IHNlbGYsIGludCBrKToKKyAgICAgICAgICIiIgorICAg ICAgICAgUGVyZm9ybXMgYSBiaXQtc2hpZnQgc3BlY2lmaWVkIGJ5IGBga2BgIG9uIGBgc2VsZmBg LgorIAorQEAgLTM5OTUsNyArMzk5NSw3IEBAIGRlZiBzcXVhcmVfcm9vdF9tb2RfcHJpbWVfcG93 ZXIoSW50ZWdlck1vZF9hYnN0cmFjdCBhLCBwLCBlKToKKyAgICAgICAgIHggKj0gcCoqKHZhbC8v MikKKyAgICAgcmV0dXJuIHgKKyAKKy1jcGRlZiBzcXVhcmVfcm9vdF9tb2RfcHJpbWUoSW50ZWdl ck1vZF9hYnN0cmFjdCBhLCBwPU5vbmUpIG5vZXhjZXB0OgorK2NwZGVmIHNxdWFyZV9yb290X21v ZF9wcmltZShJbnRlZ2VyTW9kX2Fic3RyYWN0IGEsIHA9Tm9uZSk6CisgICAgIHIiIiIKKyAgICAg Q2FsY3VsYXRlcyB0aGUgc3F1YXJlIHJvb3Qgb2YgYGFgLCB3aGVyZSBgYWAgaXMgYW4KKyAgICAg aW50ZWdlciBtb2QgYHBgOyBpZiBgYWAgaXMgbm90IGEgcGVyZmVjdCBzcXVhcmUsCitAQCAtNDI3 MCw3ICs0MjcwLDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2hvbShNb3JwaGlzbSk6CisgICAg ICAgICBzZWxmLnplcm8gPSBDLl9lbGVtZW50X2NvbnN0cnVjdG9yXygwKQorICAgICAgICAgc2Vs Zi5tb2R1bHVzID0gQy5fcHl4X29yZGVyCisgCistICAgIGNkZWYgZGljdCBfZXh0cmFfc2xvdHMo c2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZik6CisgICAg ICAgICAiIiIKKyAgICAgICAgIEhlbHBlciBmb3IgcGlja2xpbmcgYW5kIGNvcHlpbmcuCisgCitA QCAtNDI5Nyw3ICs0Mjk3LDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX2hvbShNb3JwaGlzbSk6 CisgICAgICAgICBzbG90c1snbW9kdWx1cyddID0gc2VsZi5tb2R1bHVzCisgICAgICAgICByZXR1 cm4gc2xvdHMKKyAKKy0gICAgY2RlZiBfdXBkYXRlX3Nsb3RzKHNlbGYsIGRpY3QgX3Nsb3RzKSBu b2V4Y2VwdDoKKysgICAgY2RlZiBfdXBkYXRlX3Nsb3RzKHNlbGYsIGRpY3QgX3Nsb3RzKToKKyAg ICAgICAgICIiIgorICAgICAgICAgSGVscGVyIGZvciBwaWNrbGluZyBhbmQgY29weWluZy4KKyAK K0BAIC00MzI1LDcgKzQzMjUsNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNb2RfaG9tKE1vcnBoaXNt KToKKyAgICAgICAgIHNlbGYuemVybyA9IF9zbG90c1snemVybyddCisgICAgICAgICBzZWxmLm1v ZHVsdXMgPSBfc2xvdHNbJ21vZHVsdXMnXQorIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhz ZWxmLCB4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCk6Cisg ICAgICAgICByZXR1cm4gSW50ZWdlck1vZChzZWxmLl9jb2RvbWFpbiwgeCkKKyAKKyBjZGVmIGNs YXNzIEludGVnZXJNb2RfdG9fSW50ZWdlck1vZChJbnRlZ2VyTW9kX2hvbSk6CitAQCAtNDM1Niw3 ICs0MzU2LDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX3RvX0ludGVnZXJNb2QoSW50ZWdlck1v ZF9ob20pOgorICAgICAgICAgaW1wb3J0IHNhZ2UuY2F0ZWdvcmllcy5ob21zZXQKKyAgICAgICAg IEludGVnZXJNb2RfaG9tLl9faW5pdF9fKHNlbGYsIHNhZ2UuY2F0ZWdvcmllcy5ob21zZXQuSG9t KFIsIFMpKQorIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KSBub2V4Y2VwdDoK KysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCk6CisgICAgICAgICBjZGVmIEludGVn ZXJNb2RfYWJzdHJhY3QgYQorICAgICAgICAgemVybyA9IDxJbnRlZ2VyTW9kX2Fic3RyYWN0PnNl bGYuemVybworICAgICAgICAgY2RlZiB1bnNpZ25lZCBsb25nIHZhbHVlCitAQCAtNDQyNCw3ICs0 NDI0LDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyX3RvX0ludGVnZXJNb2QoSW50ZWdlck1vZF9ob20p OgorICAgICAgICAgaW1wb3J0IHNhZ2UuY2F0ZWdvcmllcy5ob21zZXQKKyAgICAgICAgIEludGVn ZXJNb2RfaG9tLl9faW5pdF9fKHNlbGYsIHNhZ2UuY2F0ZWdvcmllcy5ob21zZXQuSG9tKGludGVn ZXJfcmluZy5aWiwgUikpCisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KToKKyAgICAgICAgIGNk ZWYgSW50ZWdlck1vZF9hYnN0cmFjdCBhCisgICAgICAgICBjZGVmIFB5X3NzaXplX3QgcmVzCisg ICAgICAgICBpZiBzZWxmLm1vZHVsdXMudGFibGUgaXMgbm90IE5vbmU6CitAQCAtNDQ5Niw3ICs0 NDk2LDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyTW9kX3RvX0ludGVnZXIoTWFwKToKKyAgICAgICAg IGZyb20gc2FnZS5jYXRlZ29yaWVzLnNldHNfY2F0IGltcG9ydCBTZXRzCisgICAgICAgICBNb3Jw aGlzbS5fX2luaXRfXyhzZWxmLCBzYWdlLmNhdGVnb3JpZXMuaG9tc2V0LkhvbShSLCBpbnRlZ2Vy X3JpbmcuWlosIFNldHMoKSkpCisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KToKKyAgICAgICAg IGNkZWYgSW50ZWdlciBhbnMgPSBJbnRlZ2VyLl9fbmV3X18oSW50ZWdlcikKKyAgICAgICAgIGlm IGlzaW5zdGFuY2UoeCwgSW50ZWdlck1vZF9nbXApOgorICAgICAgICAgICAgIG1wel9zZXQoYW5z LnZhbHVlLCAoPEludGVnZXJNb2RfZ21wPngpLnZhbHVlKQorQEAgLTQ1MzUsNyArNDUzNSw3IEBA IGNkZWYgY2xhc3MgSW50X3RvX0ludGVnZXJNb2QoSW50ZWdlck1vZF9ob20pOgorICAgICAgICAg ZnJvbSBzYWdlLnNldHMucHl0aG9uY2xhc3MgaW1wb3J0IFNldF9QeXRob25UeXBlCisgICAgICAg ICBJbnRlZ2VyTW9kX2hvbS5fX2luaXRfXyhzZWxmLCBzYWdlLmNhdGVnb3JpZXMuaG9tc2V0Lkhv bShTZXRfUHl0aG9uVHlwZShpbnQpLCBSKSkKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8o c2VsZiwgeCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpOgor ICAgICAgICAgY2RlZiBJbnRlZ2VyTW9kX2Fic3RyYWN0IGEKKyAgICAgICAgIHplcm8gPSA8SW50 ZWdlck1vZF9hYnN0cmFjdD5zZWxmLnplcm8KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5n cy9maW5pdGVfcmluZ3MvcmVzaWR1ZV9maWVsZC5weXggYi9zcmMvc2FnZS9yaW5ncy9maW5pdGVf cmluZ3MvcmVzaWR1ZV9maWVsZC5weXgKK2luZGV4IGJiMTBjNWNkNDE3Li44M2Q3OGFiYjJhYSAx MDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL2Zpbml0ZV9yaW5ncy9yZXNpZHVlX2ZpZWxkLnB5 eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL3Jlc2lkdWVfZmllbGQucHl4CitA QCAtOTk1LDcgKzk5NSw3IEBAIGNkZWYgY2xhc3MgUmVkdWN0aW9uTWFwKE1hcCk6CisgICAgICAg ICBzZWxmLl9yZXByX3R5cGVfc3RyID0gIlBhcnRpYWxseSBkZWZpbmVkIHJlZHVjdGlvbiIKKyAg ICAgICAgIE1hcC5fX2luaXRfXyhzZWxmLCBIb20oSywgRiwgU2V0c1dpdGhQYXJ0aWFsTWFwcygp KSkKKyAKKy0gICAgY2RlZiBkaWN0IF9leHRyYV9zbG90cyhzZWxmKSBub2V4Y2VwdDoKKysgICAg Y2RlZiBkaWN0IF9leHRyYV9zbG90cyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgSGVs cGVyIGZvciBjb3B5aW5nIGFuZCBwaWNrbGluZy4KKyAKK0BAIC0xMDI2LDcgKzEwMjYsNyBAQCBj ZGVmIGNsYXNzIFJlZHVjdGlvbk1hcChNYXApOgorICAgICAgICAgc2xvdHNbJ19zZWN0aW9uJ10g PSBzZWxmLl9zZWN0aW9uCisgICAgICAgICByZXR1cm4gc2xvdHMKKyAKKy0gICAgY2RlZiBfdXBk YXRlX3Nsb3RzKHNlbGYsIGRpY3QgX3Nsb3RzKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfdXBkYXRl X3Nsb3RzKHNlbGYsIGRpY3QgX3Nsb3RzKToKKyAgICAgICAgICIiIgorICAgICAgICAgSGVscGVy IGZvciBjb3B5aW5nIGFuZCBwaWNrbGluZy4KKyAKK0BAIC0xMDU2LDcgKzEwNTYsNyBAQCBjZGVm IGNsYXNzIFJlZHVjdGlvbk1hcChNYXApOgorICAgICAgICAgc2VsZi5fUEIgPSBfc2xvdHNbJ19Q QiddCisgICAgICAgICBzZWxmLl9zZWN0aW9uID0gX3Nsb3RzWydfc2VjdGlvbiddCisgCistICAg IGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVt ZW50IF9jYWxsXyhzZWxmLCB4KToKKyAgICAgICAgICIiIgorICAgICAgICAgQXBwbHkgdGhpcyBy ZWR1Y3Rpb24gbWFwIHRvIGFuIGVsZW1lbnQgdGhhdCBjb2VyY2VzIGludG8gdGhlIGdsb2JhbAor ICAgICAgICAgZmllbGQuCitAQCAtMTMwNSw3ICsxMzA1LDcgQEAgY2RlZiBjbGFzcyBSZXNpZHVl RmllbGRIb21vbW9ycGhpc21fZ2xvYmFsKFJpbmdIb21vbW9ycGhpc20pOgorICAgICAgICAgc2Vs Zi5fcmVwcl90eXBlX3N0ciA9ICJSZWR1Y3Rpb24iCisgICAgICAgICBSaW5nSG9tb21vcnBoaXNt Ll9faW5pdF9fKHNlbGYsIEhvbShLLEYpKQorIAorLSAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3Rz KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpOgorICAg ICAgICAgIiIiCisgICAgICAgICBIZWxwZXIgZm9yIGNvcHlpbmcgYW5kIHBpY2tsaW5nLgorIAor QEAgLTEzMzgsNyArMTMzOCw3IEBAIGNkZWYgY2xhc3MgUmVzaWR1ZUZpZWxkSG9tb21vcnBoaXNt X2dsb2JhbChSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgICAgIHNsb3RzWydfc2VjdGlvbiddID0g c2VsZi5fc2VjdGlvbgorICAgICAgICAgcmV0dXJuIHNsb3RzCisgCistICAgIGNkZWYgX3VwZGF0 ZV9zbG90cyhzZWxmLCBkaWN0IF9zbG90cykgbm9leGNlcHQ6CisrICAgIGNkZWYgX3VwZGF0ZV9z bG90cyhzZWxmLCBkaWN0IF9zbG90cyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEhlbHBlciBm b3IgY29weWluZyBhbmQgcGlja2xpbmcuCisgCitAQCAtMTM3MCw3ICsxMzcwLDcgQEAgY2RlZiBj bGFzcyBSZXNpZHVlRmllbGRIb21vbW9ycGhpc21fZ2xvYmFsKFJpbmdIb21vbW9ycGhpc20pOgor ICAgICAgICAgc2VsZi5fUEIgPSBfc2xvdHNbJ19QQiddCisgICAgICAgICBzZWxmLl9zZWN0aW9u ID0gX3Nsb3RzWydfc2VjdGlvbiddCisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYs IHgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KToKKyAgICAg ICAgICIiIgorICAgICAgICAgQXBwbGllcyB0aGlzIG1vcnBoaXNtIHRvIGFuIGVsZW1lbnQuCisg CitAQCAtMTU3NCw3ICsxNTc0LDcgQEAgY2RlZiBjbGFzcyBMaWZ0aW5nTWFwKFNlY3Rpb24pOgor ICAgICAgICAgc2VsZi5fUEIgPSBQQgorICAgICAgICAgU2VjdGlvbi5fX2luaXRfXyhzZWxmLCBy ZWR1Y3Rpb24pCisgCistICAgIGNkZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZikgbm9leGNlcHQ6 CisrICAgIGNkZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAg ICAgIEhlbHBlciBmb3IgY29weWluZyBhbmQgcGlja2xpbmcuCisgCitAQCAtMTYwMCw3ICsxNjAw LDcgQEAgY2RlZiBjbGFzcyBMaWZ0aW5nTWFwKFNlY3Rpb24pOgorICAgICAgICAgc2xvdHNbJ19Q QiddID0gc2VsZi5fUEIKKyAgICAgICAgIHJldHVybiBzbG90cworIAorLSAgICBjZGVmIF91cGRh dGVfc2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpIG5vZXhjZXB0OgorKyAgICBjZGVmIF91cGRhdGVf c2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpOgorICAgICAgICAgIiIiCisgICAgICAgICBIZWxwZXIg Zm9yIGNvcHlpbmcgYW5kIHBpY2tsaW5nLgorIAorQEAgLTE2MjUsNyArMTYyNSw3IEBAIGNkZWYg Y2xhc3MgTGlmdGluZ01hcChTZWN0aW9uKToKKyAgICAgICAgIHNlbGYuX3RvX29yZGVyID0gX3Ns b3RzWydfdG9fb3JkZXInXQorICAgICAgICAgc2VsZi5fUEIgPSBfc2xvdHNbJ19QQiddCisgCist ICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBF bGVtZW50IF9jYWxsXyhzZWxmLCB4KToKKyAgICAgICAgICIiIgorICAgICAgICAgTGlmdCBmcm9t IHRoaXMgcmVzaWR1ZSBjbGFzcyBmaWVsZCB0byB0aGUgbnVtYmVyIGZpZWxkLgorIAorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL3JpbmdzL2ZyYWN0aW9uX2ZpZWxkX0ZwVC5weGQgYi9zcmMvc2FnZS9y aW5ncy9mcmFjdGlvbl9maWVsZF9GcFQucHhkCitpbmRleCBhMzg1YTNkNzc0Mi4uN2Q1ZDk2MGEw Y2EgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9mcmFjdGlvbl9maWVsZF9GcFQucHhkCisr KysgYi9zcmMvc2FnZS9yaW5ncy9mcmFjdGlvbl9maWVsZF9GcFQucHhkCitAQCAtMTAsMTQgKzEw LDE0IEBAIGNkZWYgY2xhc3MgRnBURWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICBjZGVmIGJp bnQgaW5pdGlhbGl6ZWQKKyAgICAgY2RlZiBsb25nIHAKKyAKKy0gICAgY2RlZiBGcFRFbGVtZW50 IF9uZXdfYyhzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfYWRkXyhzZWxmLCBvdGhlcikgbm9l eGNlcHQKKy0gICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0CistICAgIGNkZWYg RnBURWxlbWVudCBfY29weV9jKHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIG51bWVyYXRvcihz ZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBkZW5vbWluYXRvcihzZWxmKSBub2V4Y2VwdAorLSAg ICBjcGRlZiBGcFRFbGVtZW50IG5leHQoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgX3NxcnRf b3JfTm9uZShzZWxmKSBub2V4Y2VwdAorKyAgICBjZGVmIEZwVEVsZW1lbnQgX25ld19jKHNlbGYp CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIG90aGVyKQorKyAgICBjcGRlZiBfbXVsXyhzZWxmLCBv dGhlcikKKysgICAgY2RlZiBGcFRFbGVtZW50IF9jb3B5X2Moc2VsZikKKysgICAgY3BkZWYgbnVt ZXJhdG9yKHNlbGYpCisrICAgIGNwZGVmIGRlbm9taW5hdG9yKHNlbGYpCisrICAgIGNwZGVmIEZw VEVsZW1lbnQgbmV4dChzZWxmKQorKyAgICBjcGRlZiBfc3FydF9vcl9Ob25lKHNlbGYpCisgICAg IGNwZGVmIGJpbnQgaXNfc3F1YXJlKHNlbGYpIG5vZXhjZXB0CisgCisgY2RlZiBjbGFzcyBGcFRf aXRlcjoKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9mcmFjdGlvbl9maWVsZF9GcFQucHl4 IGIvc3JjL3NhZ2UvcmluZ3MvZnJhY3Rpb25fZmllbGRfRnBULnB5eAoraW5kZXggM2VhNTNlNTg5 YjguLmEwZmQ3ZGJjOGNlIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvZnJhY3Rpb25fZmll bGRfRnBULnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvZnJhY3Rpb25fZmllbGRfRnBULnB5eAor QEAgLTE2MCw3ICsxNjAsNyBAQCBjZGVmIGNsYXNzIEZwVEVsZW1lbnQoRmllbGRFbGVtZW50KToK KyAgICAgICAgIHJldHVybiAodW5waWNrbGVfRnBUX2VsZW1lbnQsCisgICAgICAgICAgICAgICAg IChzZWxmLl9wYXJlbnQsIHNlbGYubnVtZXIoKSwgc2VsZi5kZW5vbSgpKSkKKyAKKy0gICAgY2Rl ZiBGcFRFbGVtZW50IF9uZXdfYyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBGcFRFbGVtZW50 IF9uZXdfYyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ3JlYXRlcyBhIG5ldyBGcFRF bGVtZW50IGluIHRoZSBzYW1lIGZpZWxkLCBsZWF2aW5nIHRoZSB2YWx1ZSB0byBiZSBpbml0aWFs aXplZC4KKyAgICAgICAgICIiIgorQEAgLTE3Miw3ICsxNzIsNyBAQCBjZGVmIGNsYXNzIEZwVEVs ZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgIHguaW5pdGlhbGl6ZWQgPSBUcnVlCisgICAg ICAgICByZXR1cm4geAorIAorLSAgICBjZGVmIEZwVEVsZW1lbnQgX2NvcHlfYyhzZWxmKSBub2V4 Y2VwdDoKKysgICAgY2RlZiBGcFRFbGVtZW50IF9jb3B5X2Moc2VsZik6CisgICAgICAgICAiIiIK KyAgICAgICAgIENyZWF0ZXMgYSBuZXcgRnBURWxlbWVudCBpbiB0aGUgc2FtZSBmaWVsZCwgd2l0 aCB0aGUgc2FtZSB2YWx1ZSBhcyBzZWxmLgorICAgICAgICAgIiIiCitAQCAtMTk5LDcgKzE5OSw3 IEBAIGNkZWYgY2xhc3MgRnBURWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgIiIiCisg ICAgICAgICByZXR1cm4gc2VsZi5udW1lcmF0b3IoKQorIAorLSAgICBjcGRlZiBudW1lcmF0b3Io c2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIG51bWVyYXRvcihzZWxmKToKKyAgICAgICAgICIi IgorICAgICAgICAgUmV0dXJuIHRoZSBudW1lcmF0b3Igb2YgdGhpcyBlbGVtZW50LCBhcyBhbiBl bGVtZW50IG9mIHRoZSBwb2x5bm9taWFsIHJpbmcuCisgCitAQCAtMjMwLDcgKzIzMCw3IEBAIGNk ZWYgY2xhc3MgRnBURWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAg ICByZXR1cm4gc2VsZi5kZW5vbWluYXRvcigpCisgCistICAgIGNwZGVmIGRlbm9taW5hdG9yKHNl bGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBkZW5vbWluYXRvcihzZWxmKToKKyAgICAgICAgICIi IgorICAgICAgICAgUmV0dXJuIHRoZSBkZW5vbWluYXRvciBvZiB0aGlzIGVsZW1lbnQsIGFzIGFu IGVsZW1lbnQgb2YgdGhlIHBvbHlub21pYWwgcmluZy4KKyAKK0BAIC0zNTgsNyArMzU4LDcgQEAg Y2RlZiBjbGFzcyBGcFRFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICBlbHNlOgorICAg ICAgICAgICAgIHJldHVybiAiXFxmcmFjeyVzfXslc30iICUgKHNlbGYubnVtZXIoKS5fbGF0ZXhf KCksIHNlbGYuZGVub20oKS5fbGF0ZXhfKCkpCisgCistICAgIGNwZGVmIF9yaWNoY21wXyhzZWxm LCBvdGhlciwgaW50IG9wKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIG90 aGVyLCBpbnQgb3ApOgorICAgICAgICAgIiIiCisgICAgICAgICBDb21wYXJlIHRoaXMgd2l0aCBh bm90aGVyIGVsZW1lbnQuCisgCitAQCAtNDYzLDcgKzQ2Myw3IEBAIGNkZWYgY2xhc3MgRnBURWxl bWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgbm1vZF9wb2x5X3N3YXAoeC5fbnVtZXIsIHgu X2Rlbm9tKQorICAgICAgICAgcmV0dXJuIHgKKyAKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwgX290 aGVyKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FkZF8oc2VsZiwgX290aGVyKToKKyAgICAgICAg ICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBzdW0gb2YgdGhpcyBmcmFjdGlvbiBmaWVsZCBlbGVt ZW50IGFuZCBhbm90aGVyLgorIAorQEAgLTQ5MSw3ICs0OTEsNyBAQCBjZGVmIGNsYXNzIEZwVEVs ZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgIG5vcm1hbGl6ZSh4Ll9udW1lciwgeC5fZGVu b20sIHNlbGYucCkKKyAgICAgICAgIHJldHVybiB4CisgCistICAgIGNwZGVmIF9zdWJfKHNlbGYs IF9vdGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9zdWJfKHNlbGYsIF9vdGhlcik6CisgICAg ICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgZGlmZmVyZW5jZSBvZiB0aGlzIGZyYWN0aW9u IGZpZWxkIGVsZW1lbnQgYW5kIGFub3RoZXIuCisgCitAQCAtNTEzLDcgKzUxMyw3IEBAIGNkZWYg Y2xhc3MgRnBURWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgbm9ybWFsaXplKHguX251 bWVyLCB4Ll9kZW5vbSwgc2VsZi5wKQorICAgICAgICAgcmV0dXJuIHgKKyAKKy0gICAgY3BkZWYg X211bF8oc2VsZiwgX290aGVyKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX211bF8oc2VsZiwgX290 aGVyKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBwcm9kdWN0IG9mIHRoaXMg ZnJhY3Rpb24gZmllbGQgZWxlbWVudCBhbmQgYW5vdGhlci4KKyAKK0BAIC01MzMsNyArNTMzLDcg QEAgY2RlZiBjbGFzcyBGcFRFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICBub3JtYWxp emUoeC5fbnVtZXIsIHguX2Rlbm9tLCBzZWxmLnApCisgICAgICAgICByZXR1cm4geAorIAorLSAg ICBjcGRlZiBfZGl2XyhzZWxmLCBfb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZGl2Xyhz ZWxmLCBfb3RoZXIpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHF1b3RpZW50 IG9mIHRoaXMgZnJhY3Rpb24gZmllbGQgZWxlbWVudCBhbmQgYW5vdGhlci4KKyAKK0BAIC01NTcs NyArNTU3LDcgQEAgY2RlZiBjbGFzcyBGcFRFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAg ICBub3JtYWxpemUoeC5fbnVtZXIsIHguX2Rlbm9tLCBzZWxmLnApCisgICAgICAgICByZXR1cm4g eAorIAorLSAgICBjcGRlZiBGcFRFbGVtZW50IG5leHQoc2VsZikgbm9leGNlcHQ6CisrICAgIGNw ZGVmIEZwVEVsZW1lbnQgbmV4dChzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgSXRlcmF0 ZSB0aHJvdWdoIGFsbCBwb2x5bm9taWFscywgcmV0dXJuaW5nIHRoZSAibmV4dCIgcG9seW5vbWlh bCBhZnRlciB0aGlzIG9uZS4KKyAKK0BAIC02NjMsNyArNjYzLDcgQEAgY2RlZiBjbGFzcyBGcFRF bGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICAgICAgICAgICAgICBubW9kX3BvbHlfY2xl YXIoZykKKyAgICAgICAgIHJldHVybiBuZXh0CisgCistICAgIGNwZGVmIF9zcXJ0X29yX05vbmUo c2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9zcXJ0X29yX05vbmUoc2VsZik6CisgICAgICAg ICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgc3F1YXJlIHJvb3Qgb2YgYGBzZWxmYGAsIG9yIGBg Tm9uZWBgLgorIAorQEAgLTEwNTIsNyArMTA1Miw3IEBAIGNkZWYgY2xhc3MgUG9seXJpbmdfRnBU X2NvZXJjZShSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgICAgIFJpbmdIb21vbW9ycGhpc20uX19p bml0X18oc2VsZiwgUi5yaW5nX29mX2ludGVnZXJzKCkuSG9tKFIpKQorICAgICAgICAgc2VsZi5w ID0gUi5iYXNlX3JpbmcoKS5jaGFyYWN0ZXJpc3RpYygpCisgCistICAgIGNkZWYgZGljdCBfZXh0 cmFfc2xvdHMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgZGljdCBfZXh0cmFfc2xvdHMoc2Vs Zik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEhlbHBlciBmb3IgY29weWluZyBhbmQgcGlja2xp bmcuCisgCitAQCAtMTA2OCw3ICsxMDY4LDcgQEAgY2RlZiBjbGFzcyBQb2x5cmluZ19GcFRfY29l cmNlKFJpbmdIb21vbW9ycGhpc20pOgorICAgICAgICAgc2xvdHNbJ3AnXSA9IHNlbGYucAorICAg ICAgICAgcmV0dXJuIHNsb3RzCisgCistICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0 IF9zbG90cykgbm9leGNlcHQ6CisrICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0IF9z bG90cyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEhlbHBlciBmb3IgY29weWluZyBhbmQgcGlj a2xpbmcuCisgCitAQCAtMTA4Myw3ICsxMDgzLDcgQEAgY2RlZiBjbGFzcyBQb2x5cmluZ19GcFRf Y29lcmNlKFJpbmdIb21vbW9ycGhpc20pOgorICAgICAgICAgc2VsZi5wID0gX3Nsb3RzWydwJ10K KyAgICAgICAgIFJpbmdIb21vbW9ycGhpc20uX3VwZGF0ZV9zbG90cyhzZWxmLCBfc2xvdHMpCisg CistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIF94KSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgX3gpOgorICAgICAgICAgIiIiCisgICAgICAgICBBcHBs aWVzIHRoZSBjb2VyY2lvbi4KKyAKK0BAIC0xMTA2LDcgKzExMDYsNyBAQCBjZGVmIGNsYXNzIFBv bHlyaW5nX0ZwVF9jb2VyY2UoUmluZ0hvbW9tb3JwaGlzbSk6CisgICAgICAgICBhbnMuaW5pdGlh bGl6ZWQgPSBUcnVlCisgICAgICAgICByZXR1cm4gYW5zCisgCistICAgIGNwZGVmIEVsZW1lbnQg X2NhbGxfd2l0aF9hcmdzKHNlbGYsIF94LCBhcmdzPSgpLCBrd2RzPXt9KSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgRWxlbWVudCBfY2FsbF93aXRoX2FyZ3Moc2VsZiwgX3gsIGFyZ3M9KCksIGt3ZHM9 e30pOgorICAgICAgICAgIiIiCisgICAgICAgICBUaGlzIGZ1bmN0aW9uIGFsbG93cyB0aGUgbWFw IHRvIHRha2UgbXVsdGlwbGUgYXJndW1lbnRzLAorICAgICAgICAgdXN1YWxseSB1c2VkIHRvIHNw ZWNpZnkgYm90aCBudW1lcmF0b3IgYW5kIGRlbm9taW5hdG9yLgorQEAgLTEyNTUsNyArMTI1NSw3 IEBAIGNkZWYgY2xhc3MgRnBUX1BvbHlyaW5nX3NlY3Rpb24oU2VjdGlvbik6CisgICAgICAgICBz ZWxmLnAgPSBmLnAKKyAgICAgICAgIFNlY3Rpb24uX19pbml0X18oc2VsZiwgZikKKyAKKy0gICAg Y2RlZiBkaWN0IF9leHRyYV9zbG90cyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBkaWN0IF9l eHRyYV9zbG90cyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgSGVscGVyIGZvciBjb3B5 aW5nIGFuZCBwaWNrbGluZy4KKyAKK0BAIC0xMjc3LDcgKzEyNzcsNyBAQCBjZGVmIGNsYXNzIEZw VF9Qb2x5cmluZ19zZWN0aW9uKFNlY3Rpb24pOgorICAgICAgICAgc2xvdHNbJ3AnXSA9IHNlbGYu cAorICAgICAgICAgcmV0dXJuIHNsb3RzCisgCistICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxm LCBkaWN0IF9zbG90cykgbm9leGNlcHQ6CisrICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBk aWN0IF9zbG90cyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEhlbHBlciBmb3IgY29weWluZyBh bmQgcGlja2xpbmcuCisgCitAQCAtMTI5OCw3ICsxMjk4LDcgQEAgY2RlZiBjbGFzcyBGcFRfUG9s eXJpbmdfc2VjdGlvbihTZWN0aW9uKToKKyAgICAgICAgIHNlbGYucCA9IF9zbG90c1sncCddCisg ICAgICAgICBTZWN0aW9uLl91cGRhdGVfc2xvdHMoc2VsZiwgX3Nsb3RzKQorIAorLSAgICBjcGRl ZiBFbGVtZW50IF9jYWxsXyhzZWxmLCBfeCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQg X2NhbGxfKHNlbGYsIF94KToKKyAgICAgICAgICIiIgorICAgICAgICAgQXBwbGllcyB0aGUgc2Vj dGlvbi4KKyAKK0BAIC0xMzcwLDcgKzEzNzAsNyBAQCBjZGVmIGNsYXNzIEZwX0ZwVF9jb2VyY2Uo UmluZ0hvbW9tb3JwaGlzbSk6CisgICAgICAgICBSaW5nSG9tb21vcnBoaXNtLl9faW5pdF9fKHNl bGYsIFIuYmFzZV9yaW5nKCkuSG9tKFIpKQorICAgICAgICAgc2VsZi5wID0gUi5iYXNlX3Jpbmco KS5jaGFyYWN0ZXJpc3RpYygpCisgCistICAgIGNkZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZikg bm9leGNlcHQ6CisrICAgIGNkZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZik6CisgICAgICAgICAi IiIKKyAgICAgICAgIEhlbHBlciBmb3IgY29weWluZyBhbmQgcGlja2xpbmcuCisgCitAQCAtMTM4 OSw3ICsxMzg5LDcgQEAgY2RlZiBjbGFzcyBGcF9GcFRfY29lcmNlKFJpbmdIb21vbW9ycGhpc20p OgorICAgICAgICAgc2xvdHNbJ3AnXSA9IHNlbGYucAorICAgICAgICAgcmV0dXJuIHNsb3RzCisg CistICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0IF9zbG90cykgbm9leGNlcHQ6Cisr ICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0IF9zbG90cyk6CisgICAgICAgICAiIiIK KyAgICAgICAgIEhlbHBlciBmb3IgY29weWluZyBhbmQgcGlja2xpbmcuCisgCitAQCAtMTQwNyw3 ICsxNDA3LDcgQEAgY2RlZiBjbGFzcyBGcF9GcFRfY29lcmNlKFJpbmdIb21vbW9ycGhpc20pOgor ICAgICAgICAgc2VsZi5wID0gX3Nsb3RzWydwJ10KKyAgICAgICAgIFJpbmdIb21vbW9ycGhpc20u X3VwZGF0ZV9zbG90cyhzZWxmLCBfc2xvdHMpCisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxf KHNlbGYsIF94KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgX3gp OgorICAgICAgICAgIiIiCisgICAgICAgICBBcHBsaWVzIHRoZSBjb2VyY2lvbi4KKyAKK0BAIC0x NDMwLDcgKzE0MzAsNyBAQCBjZGVmIGNsYXNzIEZwX0ZwVF9jb2VyY2UoUmluZ0hvbW9tb3JwaGlz bSk6CisgICAgICAgICBhbnMuaW5pdGlhbGl6ZWQgPSBUcnVlCisgICAgICAgICByZXR1cm4gYW5z CisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfd2l0aF9hcmdzKHNlbGYsIF94LCBhcmdzPSgp LCBrd2RzPXt9KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF93aXRoX2FyZ3Mo c2VsZiwgX3gsIGFyZ3M9KCksIGt3ZHM9e30pOgorICAgICAgICAgIiIiCisgICAgICAgICBUaGlz IGZ1bmN0aW9uIGFsbG93cyB0aGUgbWFwIHRvIHRha2UgbXVsdGlwbGUgYXJndW1lbnRzLCB1c3Vh bGx5IHVzZWQgdG8gc3BlY2lmeSBib3RoIG51bWVyYXRvciBhbmQgZGVub21pbmF0b3IuCisgCitA QCAtMTU1OCw3ICsxNTU4LDcgQEAgY2RlZiBjbGFzcyBGcFRfRnBfc2VjdGlvbihTZWN0aW9uKToK KyAgICAgICAgIHNlbGYucCA9IGYucAorICAgICAgICAgU2VjdGlvbi5fX2luaXRfXyhzZWxmLCBm KQorIAorLSAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBj ZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBIZWxw ZXIgZm9yIGNvcHlpbmcgYW5kIHBpY2tsaW5nLgorIAorQEAgLTE1ODYsNyArMTU4Niw3IEBAIGNk ZWYgY2xhc3MgRnBUX0ZwX3NlY3Rpb24oU2VjdGlvbik6CisgICAgICAgICBzbG90c1sncCddID0g c2VsZi5wCisgICAgICAgICByZXR1cm4gc2xvdHMKKyAKKy0gICAgY2RlZiBfdXBkYXRlX3Nsb3Rz KHNlbGYsIGRpY3QgX3Nsb3RzKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfdXBkYXRlX3Nsb3RzKHNl bGYsIGRpY3QgX3Nsb3RzKToKKyAgICAgICAgICIiIgorICAgICAgICAgSGVscGVyIGZvciBjb3B5 aW5nIGFuZCBwaWNrbGluZy4KKyAKK0BAIC0xNjEzLDcgKzE2MTMsNyBAQCBjZGVmIGNsYXNzIEZw VF9GcF9zZWN0aW9uKFNlY3Rpb24pOgorICAgICAgICAgc2VsZi5wID0gX3Nsb3RzWydwJ10KKyAg ICAgICAgIFNlY3Rpb24uX3VwZGF0ZV9zbG90cyhzZWxmLCBfc2xvdHMpCisgCistICAgIGNwZGVm IEVsZW1lbnQgX2NhbGxfKHNlbGYsIF94KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBf Y2FsbF8oc2VsZiwgX3gpOgorICAgICAgICAgIiIiCisgICAgICAgICBBcHBsaWVzIHRoZSBzZWN0 aW9uLgorIAorQEAgLTE2OTIsNyArMTY5Miw3IEBAIGNkZWYgY2xhc3MgWlpfRnBUX2NvZXJjZShS aW5nSG9tb21vcnBoaXNtKToKKyAgICAgICAgIFJpbmdIb21vbW9ycGhpc20uX19pbml0X18oc2Vs ZiwgWlouSG9tKFIpKQorICAgICAgICAgc2VsZi5wID0gUi5iYXNlX3JpbmcoKS5jaGFyYWN0ZXJp c3RpYygpCisgCistICAgIGNkZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZikgbm9leGNlcHQ6Cisr ICAgIGNkZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAg IEhlbHBlciBmb3IgY29weWluZyBhbmQgcGlja2xpbmcuCisgCitAQCAtMTcxMyw3ICsxNzEzLDcg QEAgY2RlZiBjbGFzcyBaWl9GcFRfY29lcmNlKFJpbmdIb21vbW9ycGhpc20pOgorICAgICAgICAg c2xvdHNbJ3AnXSA9IHNlbGYucAorICAgICAgICAgcmV0dXJuIHNsb3RzCisgCistICAgIGNkZWYg X3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0IF9zbG90cykgbm9leGNlcHQ6CisrICAgIGNkZWYgX3Vw ZGF0ZV9zbG90cyhzZWxmLCBkaWN0IF9zbG90cyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEhl bHBlciBmb3IgY29weWluZyBhbmQgcGlja2xpbmcuCisgCitAQCAtMTczMyw3ICsxNzMzLDcgQEAg Y2RlZiBjbGFzcyBaWl9GcFRfY29lcmNlKFJpbmdIb21vbW9ycGhpc20pOgorICAgICAgICAgc2Vs Zi5wID0gX3Nsb3RzWydwJ10KKyAgICAgICAgIFJpbmdIb21vbW9ycGhpc20uX3VwZGF0ZV9zbG90 cyhzZWxmLCBfc2xvdHMpCisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIF94KSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgX3gpOgorICAgICAgICAg IiIiCisgICAgICAgICBBcHBsaWVzIHRoZSBjb2VyY2lvbi4KKyAKK0BAIC0xNzU2LDcgKzE3NTYs NyBAQCBjZGVmIGNsYXNzIFpaX0ZwVF9jb2VyY2UoUmluZ0hvbW9tb3JwaGlzbSk6CisgICAgICAg ICBhbnMuaW5pdGlhbGl6ZWQgPSBUcnVlCisgICAgICAgICByZXR1cm4gYW5zCisgCistICAgIGNw ZGVmIEVsZW1lbnQgX2NhbGxfd2l0aF9hcmdzKHNlbGYsIF94LCBhcmdzPSgpLCBrd2RzPXt9KSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF93aXRoX2FyZ3Moc2VsZiwgX3gsIGFy Z3M9KCksIGt3ZHM9e30pOgorICAgICAgICAgIiIiCisgICAgICAgICBUaGlzIGZ1bmN0aW9uIGFs bG93cyB0aGUgbWFwIHRvIHRha2UgbXVsdGlwbGUgYXJndW1lbnRzLCB1c3VhbGx5IHVzZWQgdG8g c3BlY2lmeSBib3RoIG51bWVyYXRvciBhbmQgZGVub21pbmF0b3IuCisgCitkaWZmIC0tZ2l0IGEv c3JjL3NhZ2UvcmluZ3MvZnJhY3Rpb25fZmllbGRfZWxlbWVudC5weXggYi9zcmMvc2FnZS9yaW5n cy9mcmFjdGlvbl9maWVsZF9lbGVtZW50LnB5eAoraW5kZXggMmFiYjhjNGQzMjYuLmVhMzIzZTI3 MDlmIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvZnJhY3Rpb25fZmllbGRfZWxlbWVudC5w eXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL2ZyYWN0aW9uX2ZpZWxkX2VsZW1lbnQucHl4CitAQCAt MTYwLDcgKzE2MCw3IEBAIGNkZWYgY2xhc3MgRnJhY3Rpb25GaWVsZEVsZW1lbnQoRmllbGRFbGVt ZW50KToKKyAgICAgICAgIG5kZW4gPSBjb2RvbWFpbi5jb2VyY2Uoc2VsZi5fZGVub21pbmF0b3Iu X2ltX2dlbnNfKGNvZG9tYWluLCBpbV9nZW5zLCBiYXNlX21hcD1iYXNlX21hcCkpCisgICAgICAg ICByZXR1cm4gY29kb21haW4uY29lcmNlKG5udW0vbmRlbikKKyAKKy0gICAgY3BkZWYgcmVkdWNl KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiByZWR1Y2Uoc2VsZik6CisgICAgICAgICAiIiIK KyAgICAgICAgIFJlZHVjZSB0aGlzIGZyYWN0aW9uLgorIAorQEAgLTU4NCw3ICs1ODQsNyBAQCBj ZGVmIGNsYXNzIEZyYWN0aW9uRmllbGRFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgCisgICAgICAg ICByZXR1cm4gcworIAorLSAgICBjcGRlZiBfYWRkXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgQ29t cHV0ZSB0aGUgc3VtIG9mIGBgc2VsZmBgIGFuZCBgYHJpZ2h0YGAuCisgCitAQCAtNjY5LDcgKzY2 OSw3IEBAIGNkZWYgY2xhc3MgRnJhY3Rpb25GaWVsZEVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAg ICAgICAgIHJldHVybiBzZWxmLl9fY2xhc3NfXyhzZWxmLl9wYXJlbnQsIHJudW0qc2RlbiArIHJk ZW4qc251bSwgcmRlbipzZGVuLAorICAgICAgICAgICAgIGNvZXJjZT1GYWxzZSwgcmVkdWNlPUZh bHNlKQorIAorLSAgICBjcGRlZiBfbXVsXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIF9tdWxfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgQ29tcHV0ZXMg dGhlIHByb2R1Y3Qgb2YgYGBzZWxmYGAgYW5kIGBgcmlnaHRgYC4KKyAKK0BAIC03MzUsNyArNzM1 LDcgQEAgY2RlZiBjbGFzcyBGcmFjdGlvbkZpZWxkRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAg ICAgICAgcmV0dXJuIHNlbGYuX19jbGFzc19fKHNlbGYuX3BhcmVudCwgcm51bSAqIHNudW0sIHJk ZW4gKiBzZGVuLAorICAgICAgICAgICAgIGNvZXJjZT1GYWxzZSwgcmVkdWNlPUZhbHNlKQorIAor LSAgICBjcGRlZiBfZGl2XyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9kaXZf KHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgQ29tcHV0ZXMgdGhlIHF1b3Rp ZW50IG9mIGBgc2VsZmBgIGFuZCBgYHJpZ2h0YGAuCisgCitAQCAtOTcwLDcgKzk3MCw3IEBAIGNk ZWYgY2xhc3MgRnJhY3Rpb25GaWVsZEVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgIHJl dHVybiBzZWxmLl9fY2xhc3NfXyhzZWxmLl9wYXJlbnQsCisgICAgICAgICAgICAgc2VsZi5fZGVu b21pbmF0b3IsIHNlbGYuX251bWVyYXRvciwgY29lcmNlPUZhbHNlLCByZWR1Y2U9RmFsc2UpCisg CistICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCBvdGhlciwgaW50IG9wKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIG90aGVyLCBpbnQgb3ApOgorICAgICAgICAgIiIiCisg ICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMTIwNyw3ICsxMjA3LDcgQEAgY2RlZiBjbGFzcyBG cmFjdGlvbkZpZWxkRWxlbWVudF8xcG9seV9maWVsZChGcmFjdGlvbkZpZWxkRWxlbWVudCk6Cisg ICAgICAgICBpZiBub3QgcmVkdWNlOgorICAgICAgICAgICAgIHNlbGYubm9ybWFsaXplX2xlYWRp bmdfY29lZmZpY2llbnRzKCkKKyAKKy0gICAgY2RlZiBub3JtYWxpemVfbGVhZGluZ19jb2VmZmlj aWVudHMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgbm9ybWFsaXplX2xlYWRpbmdfY29lZmZp Y2llbnRzKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBTZWUgOm1ldGg6YHJlZHVjZWAu CisgICAgICAgICAiIiIKK0BAIC0xMjUyLDcgKzEyNTIsNyBAQCBjZGVmIGNsYXNzIEZyYWN0aW9u RmllbGRFbGVtZW50XzFwb2x5X2ZpZWxkKEZyYWN0aW9uRmllbGRFbGVtZW50KToKKyAgICAgICAg IEwuc29ydCgpCisgICAgICAgICByZXR1cm4gTAorIAorLSAgICBjcGRlZiByZWR1Y2Uoc2VsZikg bm9leGNlcHQ6CisrICAgIGNwZGVmIHJlZHVjZShzZWxmKToKKyAgICAgICAgICIiIgorICAgICAg ICAgUGljayBhIG5vcm1hbGl6ZWQgcmVwcmVzZW50YXRpb24gb2Ygc2VsZi4KKyAKK2RpZmYgLS1n aXQgYS9zcmMvc2FnZS9yaW5ncy9mdW5jdGlvbl9maWVsZC9lbGVtZW50LnB4ZCBiL3NyYy9zYWdl L3JpbmdzL2Z1bmN0aW9uX2ZpZWxkL2VsZW1lbnQucHhkCitpbmRleCA5ZmZkYmQ0ODM4My4uMDlh YzkyMjFlNzYgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9mdW5jdGlvbl9maWVsZC9lbGVt ZW50LnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvZnVuY3Rpb25fZmllbGQvZWxlbWVudC5weGQK K0BAIC01LDYgKzUsNiBAQCBjZGVmIGNsYXNzIEZ1bmN0aW9uRmllbGRFbGVtZW50KEZpZWxkRWxl bWVudCk6CisgICAgIGNkZWYgcmVhZG9ubHkgb2JqZWN0IF94CisgICAgIGNkZWYgcmVhZG9ubHkg b2JqZWN0IF9tYXRyaXgKKyAKKy0gICAgY2RlZiBGdW5jdGlvbkZpZWxkRWxlbWVudCBfbmV3X2Mo c2VsZikgbm9leGNlcHQKKysgICAgY2RlZiBGdW5jdGlvbkZpZWxkRWxlbWVudCBfbmV3X2Moc2Vs ZikKKyAgICAgY3BkZWYgYmludCBpc19udGhfcG93ZXIoc2VsZiwgbikgbm9leGNlcHQKKy0gICAg Y3BkZWYgRnVuY3Rpb25GaWVsZEVsZW1lbnQgbnRoX3Jvb3Qoc2VsZiwgbikgbm9leGNlcHQKKysg ICAgY3BkZWYgRnVuY3Rpb25GaWVsZEVsZW1lbnQgbnRoX3Jvb3Qoc2VsZiwgbikKK2RpZmYgLS1n aXQgYS9zcmMvc2FnZS9yaW5ncy9mdW5jdGlvbl9maWVsZC9lbGVtZW50LnB5eCBiL3NyYy9zYWdl L3JpbmdzL2Z1bmN0aW9uX2ZpZWxkL2VsZW1lbnQucHl4CitpbmRleCBkOWMyODRkNjFlNi4uMjc2 NWI4MDVhYmEgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9mdW5jdGlvbl9maWVsZC9lbGVt ZW50LnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvZnVuY3Rpb25fZmllbGQvZWxlbWVudC5weXgK K0BAIC0xMjIsNyArMTIyLDcgQEAgY2RlZiBjbGFzcyBGdW5jdGlvbkZpZWxkRWxlbWVudChGaWVs ZEVsZW1lbnQpOgorICAgICAgICAgcmV0dXJuIChtYWtlX0Z1bmN0aW9uRmllbGRFbGVtZW50LAor ICAgICAgICAgICAgICAgICAoc2VsZi5fcGFyZW50LCB0eXBlKHNlbGYpLCBzZWxmLl94KSkKKyAK Ky0gICAgY2RlZiBGdW5jdGlvbkZpZWxkRWxlbWVudCBfbmV3X2Moc2VsZikgbm9leGNlcHQ6Cisr ICAgIGNkZWYgRnVuY3Rpb25GaWVsZEVsZW1lbnQgX25ld19jKHNlbGYpOgorICAgICAgICAgY2Rl ZiB0eXBlIHQgPSB0eXBlKHNlbGYpCisgICAgICAgICBjZGVmIEZ1bmN0aW9uRmllbGRFbGVtZW50 IHggPSA8RnVuY3Rpb25GaWVsZEVsZW1lbnQ+dC5fX25ld19fKHQpCisgICAgICAgICB4Ll9wYXJl bnQgPSBzZWxmLl9wYXJlbnQKK0BAIC02OTgsNyArNjk4LDcgQEAgY2RlZiBjbGFzcyBGdW5jdGlv bkZpZWxkRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAgICByYWlz ZSBOb3RJbXBsZW1lbnRlZEVycm9yKCJpc19udGhfcG93ZXIoKSBub3QgaW1wbGVtZW50ZWQgZm9y IGdlbmVyaWMgZWxlbWVudHMiKQorIAorLSAgICBjcGRlZiBGdW5jdGlvbkZpZWxkRWxlbWVudCBu dGhfcm9vdChzZWxmLCBuKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRnVuY3Rpb25GaWVsZEVsZW1l bnQgbnRoX3Jvb3Qoc2VsZiwgbik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBhbiBg YG5gYC10aCByb290IG9mIHRoaXMgZWxlbWVudCBpbiB0aGUgZnVuY3Rpb24gZmllbGQuCisgCitk aWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvZnVuY3Rpb25fZmllbGQvZWxlbWVudF9wb2x5bW9k LnB5eCBiL3NyYy9zYWdlL3JpbmdzL2Z1bmN0aW9uX2ZpZWxkL2VsZW1lbnRfcG9seW1vZC5weXgK K2luZGV4IGM2ZmRlYTgzYjA5Li43YTc1YmZlOTc4ZSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3Jp bmdzL2Z1bmN0aW9uX2ZpZWxkL2VsZW1lbnRfcG9seW1vZC5weXgKKysrKyBiL3NyYy9zYWdlL3Jp bmdzL2Z1bmN0aW9uX2ZpZWxkL2VsZW1lbnRfcG9seW1vZC5weXgKK0BAIC0xMTIsNyArMTEyLDcg QEAgY2RlZiBjbGFzcyBGdW5jdGlvbkZpZWxkRWxlbWVudF9wb2x5bW9kKEZ1bmN0aW9uRmllbGRF bGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIGhhc2goc2VsZi5feCkKKyAK Ky0gICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIG90aGVyLCBpbnQgb3ApIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgb3RoZXIsIGludCBvcCk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIERvIHJpY2ggY29tcGFyaXNvbiB3aXRoIHRoZSBvdGhlciBlbGVtZW50IHdpdGggcmVz cGVjdCB0byBgYG9wYGAKKyAKK0BAIC0xMjksNyArMTI5LDcgQEAgY2RlZiBjbGFzcyBGdW5jdGlv bkZpZWxkRWxlbWVudF9wb2x5bW9kKEZ1bmN0aW9uRmllbGRFbGVtZW50KToKKyAgICAgICAgIGNk ZWYgRnVuY3Rpb25GaWVsZEVsZW1lbnQgcmlnaHQgPSA8RnVuY3Rpb25GaWVsZEVsZW1lbnQ+b3Ro ZXIKKyAgICAgICAgIHJldHVybiByaWNoY21wKGxlZnQuX3gsIHJpZ2h0Ll94LCBvcCkKKyAKKy0g ICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWRkXyhz ZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEFkZCB0aGUgZWxlbWVudCB3aXRo IHRoZSBvdGhlciBlbGVtZW50LgorIAorQEAgLTE1Miw3ICsxNTIsNyBAQCBjZGVmIGNsYXNzIEZ1 bmN0aW9uRmllbGRFbGVtZW50X3BvbHltb2QoRnVuY3Rpb25GaWVsZEVsZW1lbnQpOgorICAgICAg ICAgcmVzLl94ID0gc2VsZi5feCArICg8RnVuY3Rpb25GaWVsZEVsZW1lbnQ+cmlnaHQpLl94Cisg ICAgICAgICByZXR1cm4gcmVzCisgCistICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAg ICAgICBTdWJ0cmFjdCB0aGUgb3RoZXIgZWxlbWVudCBmcm9tIHRoZSBlbGVtZW50LgorIAorQEAg LTE3Myw3ICsxNzMsNyBAQCBjZGVmIGNsYXNzIEZ1bmN0aW9uRmllbGRFbGVtZW50X3BvbHltb2Qo RnVuY3Rpb25GaWVsZEVsZW1lbnQpOgorICAgICAgICAgcmVzLl94ID0gc2VsZi5feCAtICg8RnVu Y3Rpb25GaWVsZEVsZW1lbnQ+cmlnaHQpLl94CisgICAgICAgICByZXR1cm4gcmVzCisgCistICAg IGNwZGVmIF9tdWxfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX211bF8oc2Vs ZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBNdWx0aXBseSB0aGUgZWxlbWVudCB3 aXRoIHRoZSBvdGhlciBlbGVtZW50LgorIAorQEAgLTE5Miw3ICsxOTIsNyBAQCBjZGVmIGNsYXNz IEZ1bmN0aW9uRmllbGRFbGVtZW50X3BvbHltb2QoRnVuY3Rpb25GaWVsZEVsZW1lbnQpOgorICAg ICAgICAgcmVzLl94ID0gKHNlbGYuX3ggKiAoPEZ1bmN0aW9uRmllbGRFbGVtZW50PnJpZ2h0KS5f eCkgJSBzZWxmLl9wYXJlbnQucG9seW5vbWlhbCgpCisgICAgICAgICByZXR1cm4gcmVzCisgCist ICAgIGNwZGVmIF9kaXZfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2Rpdl8o c2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBEaXZpZGUgdGhlIGVsZW1lbnQg d2l0aCB0aGUgb3RoZXIgZWxlbWVudC4KKyAKK0BAIC0yMzEsNyArMjMxLDcgQEAgY2RlZiBjbGFz cyBGdW5jdGlvbkZpZWxkRWxlbWVudF9wb2x5bW9kKEZ1bmN0aW9uRmllbGRFbGVtZW50KToKKyAg ICAgICAgIFAgPSBzZWxmLl9wYXJlbnQKKyAgICAgICAgIHJldHVybiBQKHNlbGYuX3gueGdjZChQ Ll9wb2x5bm9taWFsKVsxXSkKKyAKKy0gICAgY3BkZWYgbGlzdCBsaXN0KHNlbGYpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBsaXN0IGxpc3Qoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJl dHVybiB0aGUgbGlzdCBvZiB0aGUgY29lZmZpY2llbnRzIHJlcHJlc2VudGluZyB0aGUgZWxlbWVu dC4KKyAKK0BAIC0yNTEsNyArMjUxLDcgQEAgY2RlZiBjbGFzcyBGdW5jdGlvbkZpZWxkRWxlbWVu dF9wb2x5bW9kKEZ1bmN0aW9uRmllbGRFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAg cmV0dXJuIHNlbGYuX3gucGFkZGVkX2xpc3Qoc2VsZi5fcGFyZW50LmRlZ3JlZSgpKQorIAorLSAg ICBjcGRlZiBGdW5jdGlvbkZpZWxkRWxlbWVudCBudGhfcm9vdChzZWxmLCBuKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgRnVuY3Rpb25GaWVsZEVsZW1lbnQgbnRoX3Jvb3Qoc2VsZiwgbik6CisgICAg ICAgICByIiIiCisgICAgICAgICBSZXR1cm4gYW4gYGBuYGAtdGggcm9vdCBvZiB0aGlzIGVsZW1l bnQgaW4gdGhlIGZ1bmN0aW9uIGZpZWxkLgorIAorQEAgLTM2Nyw3ICszNjcsNyBAQCBjZGVmIGNs YXNzIEZ1bmN0aW9uRmllbGRFbGVtZW50X3BvbHltb2QoRnVuY3Rpb25GaWVsZEVsZW1lbnQpOgor IAorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigiaXNfbnRoX3Bvd2VyKCkgbm90 IGltcGxlbWVudGVkIGZvciB0aGlzIG4iKQorIAorLSAgICBjZGVmIEZ1bmN0aW9uRmllbGRFbGVt ZW50IF9wdGhfcm9vdChzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBGdW5jdGlvbkZpZWxkRWxl bWVudCBfcHRoX3Jvb3Qoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBIZWxwZXIgbWV0 aG9kIGZvciA6bWV0aDpgbnRoX3Jvb3RgIGFuZCA6bWV0aDpgaXNfbnRoX3Bvd2VyYCB3aGljaAor ICAgICAgICAgY29tcHV0ZXMgYSBgcGAtdGggcm9vdCBpZiB0aGUgY2hhcmFjdGVyaXN0aWMgaXMg YHBgIGFuZCB0aGUgY29uc3RhbnQKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9mdW5jdGlv bl9maWVsZC9lbGVtZW50X3JhdGlvbmFsLnB5eCBiL3NyYy9zYWdlL3JpbmdzL2Z1bmN0aW9uX2Zp ZWxkL2VsZW1lbnRfcmF0aW9uYWwucHl4CitpbmRleCA5ODZhNDYzMDBiOC4uNDBkMGQ5NzM0ZWYg MTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9mdW5jdGlvbl9maWVsZC9lbGVtZW50X3JhdGlv bmFsLnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvZnVuY3Rpb25fZmllbGQvZWxlbWVudF9yYXRp b25hbC5weXgKK0BAIC04NSw3ICs4NSw3IEBAIGNkZWYgY2xhc3MgRnVuY3Rpb25GaWVsZEVsZW1l bnRfcmF0aW9uYWwoRnVuY3Rpb25GaWVsZEVsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAg ICByZXR1cm4gc2VsZi5feAorIAorLSAgICBjcGRlZiBsaXN0IGxpc3Qoc2VsZikgbm9leGNlcHQ6 CisrICAgIGNwZGVmIGxpc3QgbGlzdChzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0 dXJuIGEgbGlzdCB3aXRoIGp1c3QgdGhlIGVsZW1lbnQuCisgCitAQCAtMTQzLDcgKzE0Myw3IEBA IGNkZWYgY2xhc3MgRnVuY3Rpb25GaWVsZEVsZW1lbnRfcmF0aW9uYWwoRnVuY3Rpb25GaWVsZEVs ZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gaGFzaChzZWxmLl94KQorIAor LSAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgb3RoZXIsIGludCBvcCkgbm9leGNlcHQ6CisrICAg IGNwZGVmIF9yaWNoY21wXyhzZWxmLCBvdGhlciwgaW50IG9wKToKKyAgICAgICAgICIiIgorICAg ICAgICAgQ29tcGFyZSB0aGUgZWxlbWVudCB3aXRoIHRoZSBvdGhlciBlbGVtZW50IHdpdGggcmVz cGVjdCB0byBgYG9wYGAKKyAKK0BAIC0xNzQsNyArMTc0LDcgQEAgY2RlZiBjbGFzcyBGdW5jdGlv bkZpZWxkRWxlbWVudF9yYXRpb25hbChGdW5jdGlvbkZpZWxkRWxlbWVudCk6CisgICAgICAgICBl eGNlcHQgVHlwZUVycm9yOgorICAgICAgICAgICAgIHJldHVybiBOb3RJbXBsZW1lbnRlZAorIAor LSAgICBjcGRlZiBfYWRkXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRf KHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgQWRkIHRoZSBlbGVtZW50IHdp dGggdGhlIG90aGVyIGVsZW1lbnQuCisgCitAQCAtMTkyLDcgKzE5Miw3IEBAIGNkZWYgY2xhc3Mg RnVuY3Rpb25GaWVsZEVsZW1lbnRfcmF0aW9uYWwoRnVuY3Rpb25GaWVsZEVsZW1lbnQpOgorICAg ICAgICAgcmVzLl94ID0gc2VsZi5feCArICg8RnVuY3Rpb25GaWVsZEVsZW1lbnQ+cmlnaHQpLl94 CisgICAgICAgICByZXR1cm4gcmVzCisgCistICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisg ICAgICAgICBTdWJ0cmFjdCB0aGUgb3RoZXIgZWxlbWVudCBmcm9tIHRoZSBlbGVtZW50LgorIAor QEAgLTIxMCw3ICsyMTAsNyBAQCBjZGVmIGNsYXNzIEZ1bmN0aW9uRmllbGRFbGVtZW50X3JhdGlv bmFsKEZ1bmN0aW9uRmllbGRFbGVtZW50KToKKyAgICAgICAgIHJlcy5feCA9IHNlbGYuX3ggLSAo PEZ1bmN0aW9uRmllbGRFbGVtZW50PnJpZ2h0KS5feAorICAgICAgICAgcmV0dXJuIHJlcworIAor LSAgICBjcGRlZiBfbXVsXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9tdWxf KHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgTXVsdGlwbHkgdGhlIGVsZW1l bnQgd2l0aCB0aGUgb3RoZXIgZWxlbWVudAorIAorQEAgLTIyOCw3ICsyMjgsNyBAQCBjZGVmIGNs YXNzIEZ1bmN0aW9uRmllbGRFbGVtZW50X3JhdGlvbmFsKEZ1bmN0aW9uRmllbGRFbGVtZW50KToK KyAgICAgICAgIHJlcy5feCA9IHNlbGYuX3ggKiAoPEZ1bmN0aW9uRmllbGRFbGVtZW50PnJpZ2h0 KS5feAorICAgICAgICAgcmV0dXJuIHJlcworIAorLSAgICBjcGRlZiBfZGl2XyhzZWxmLCByaWdo dCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9kaXZfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIi IgorICAgICAgICAgRGl2aWRlIHRoZSBlbGVtZW50IHdpdGggdGhlIG90aGVyIGVsZW1lbnQKKyAK K0BAIC00MTIsNyArNDEyLDcgQEAgY2RlZiBjbGFzcyBGdW5jdGlvbkZpZWxkRWxlbWVudF9yYXRp b25hbChGdW5jdGlvbkZpZWxkRWxlbWVudCk6CisgCisgICAgICAgICByYWlzZSBOb3RJbXBsZW1l bnRlZEVycm9yKCJpc19udGhfcG93ZXIoKSBub3QgaW1wbGVtZW50ZWQgZm9yIHRoZSBnaXZlbiBu IikKKyAKKy0gICAgY3BkZWYgRnVuY3Rpb25GaWVsZEVsZW1lbnQgbnRoX3Jvb3Qoc2VsZiwgbikg bm9leGNlcHQ6CisrICAgIGNwZGVmIEZ1bmN0aW9uRmllbGRFbGVtZW50IG50aF9yb290KHNlbGYs IG4pOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIGFuIGBgbmBgLXRoIHJvb3Qgb2Yg dGhpcyBlbGVtZW50IGluIHRoZSBmdW5jdGlvbiBmaWVsZC4KKyAKK2RpZmYgLS1naXQgYS9zcmMv c2FnZS9yaW5ncy9pbnRlZ2VyLnB4ZCBiL3NyYy9zYWdlL3JpbmdzL2ludGVnZXIucHhkCitpbmRl eCAyZjgxYzE2NDk0My4uOTVjMDY1NWIzZGQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9p bnRlZ2VyLnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvaW50ZWdlci5weGQKK0BAIC0xMSwzNCAr MTEsMzQgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyKEV1Y2xpZGVhbkRvbWFpbkVsZW1lbnQpOgorICAg ICBjZGVmIF9fbXB6X3N0cnVjdCB2YWx1ZVsxXQorIAorICAgICBjZGVmIHZvaWQgc2V0X2Zyb21f bXB6KHNlbGYsIG1wel90IHZhbHVlKSBub2V4Y2VwdAorLSAgICBjZGVmIGhhc2hfYyhzZWxmKSBu b2V4Y2VwdAorKyAgICBjZGVmIGhhc2hfYyhzZWxmKQorIAorLSAgICBjcGRlZiBfX3BhcmlfXyhz ZWxmKSBub2V4Y2VwdAorKyAgICBjcGRlZiBfX3BhcmlfXyhzZWxmKQorIAorLSAgICBjcGRlZiBf c2hpZnRfaGVscGVyKEludGVnZXIgc2VsZiwgeSwgaW50IHNpZ24pIG5vZXhjZXB0CistICAgIGNw ZGVmIF9hZGRfKHNlbGYsIG90aGVyKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfbXVsXyhzZWxmLCBv dGhlcikgbm9leGNlcHQKKy0gICAgY3BkZWYgX3Bvd18oc2VsZiwgb3RoZXIpIG5vZXhjZXB0Cist ICAgIGNkZWYgX2FuZChJbnRlZ2VyIHNlbGYsIEludGVnZXIgb3RoZXIpIG5vZXhjZXB0CistICAg IGNkZWYgX29yKEludGVnZXIgc2VsZiwgSW50ZWdlciBvdGhlcikgbm9leGNlcHQKKy0gICAgY2Rl ZiBfeG9yKEludGVnZXIgc2VsZiwgSW50ZWdlciBvdGhlcikgbm9leGNlcHQKKysgICAgY3BkZWYg X3NoaWZ0X2hlbHBlcihJbnRlZ2VyIHNlbGYsIHksIGludCBzaWduKQorKyAgICBjcGRlZiBfYWRk XyhzZWxmLCBvdGhlcikKKysgICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIpCisrICAgIGNwZGVm IF9wb3dfKHNlbGYsIG90aGVyKQorKyAgICBjZGVmIF9hbmQoSW50ZWdlciBzZWxmLCBJbnRlZ2Vy IG90aGVyKQorKyAgICBjZGVmIF9vcihJbnRlZ2VyIHNlbGYsIEludGVnZXIgb3RoZXIpCisrICAg IGNkZWYgX3hvcihJbnRlZ2VyIHNlbGYsIEludGVnZXIgb3RoZXIpCisgCisgICAgIGNwZGVmIHNp emVfdCBfZXhhY3RfbG9nX2xvZzJfaXRlcihzZWxmLEludGVnZXIgbSkgbm9leGNlcHQKKyAgICAg Y3BkZWYgc2l6ZV90IF9leGFjdF9sb2dfbXBmaV9sb2coc2VsZixtKSBub2V4Y2VwdAorLSAgICBj cGRlZiBSaW5nRWxlbWVudCBfdmFsdWF0aW9uKEludGVnZXIgc2VsZiwgSW50ZWdlciBwKSBub2V4 Y2VwdAorLSAgICBjZGVmIG9iamVjdCBfdmFsX3VuaXQoSW50ZWdlciBzZWxmLCBJbnRlZ2VyIHAp IG5vZXhjZXB0CistICAgIGNkZWYgSW50ZWdlciBfZGl2aWRlX2tub3dpbmdfZGl2aXNpYmxlX2J5 KEludGVnZXIgc2VsZiwgSW50ZWdlciByaWdodCkgbm9leGNlcHQKKysgICAgY3BkZWYgUmluZ0Vs ZW1lbnQgX3ZhbHVhdGlvbihJbnRlZ2VyIHNlbGYsIEludGVnZXIgcCkKKysgICAgY2RlZiBvYmpl Y3QgX3ZhbF91bml0KEludGVnZXIgc2VsZiwgSW50ZWdlciBwKQorKyAgICBjZGVmIEludGVnZXIg X2RpdmlkZV9rbm93aW5nX2RpdmlzaWJsZV9ieShJbnRlZ2VyIHNlbGYsIEludGVnZXIgcmlnaHQp CisgICAgIGNkZWYgYmludCBfaXNfcG93ZXJfb2YoSW50ZWdlciBzZWxmLCBJbnRlZ2VyIG4pIG5v ZXhjZXB0CisgCisgICAgIGNkZWYgYmludCBfcHNldWRvcHJpbWVfaXNfcHJpbWUoc2VsZiwgcHJv b2YpIGV4Y2VwdCAtMQorIAorIGNkZWYgaW50IG1wel9zZXRfc3RyX3B5dGhvbihtcHpfcHRyIHos IGNoYXIqIHMsIGludCBiYXNlKSBleGNlcHQgLTEKKyAKKy1jZGVmIEludGVnZXIgc21hbGxJbnRl Z2VyKGxvbmcgdmFsdWUpIG5vZXhjZXB0CisrY2RlZiBJbnRlZ2VyIHNtYWxsSW50ZWdlcihsb25n IHZhbHVlKQorIAorIGNkZWYgYmludCBfc21hbGxfcHJpbWVzX3RhYmxlWzUwMF0KKyAKKy1jZGVm IGlubGluZSBJbnRlZ2VyIF9JbnRlZ2VyX2Zyb21fbXB6KG1wel90IGUpIG5vZXhjZXB0OgorK2Nk ZWYgaW5saW5lIEludGVnZXIgX0ludGVnZXJfZnJvbV9tcHoobXB6X3QgZSk6CisgICAgIGNkZWYg SW50ZWdlciB6ID0gSW50ZWdlci5fX25ld19fKEludGVnZXIpCisgICAgIG1wel9zZXQoei52YWx1 ZSwgZSkKKyAgICAgcmV0dXJuIHoKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9pbnRlZ2Vy LnB5eCBiL3NyYy9zYWdlL3JpbmdzL2ludGVnZXIucHl4CitpbmRleCBkMGExOTAyYzQ0OS4uODZh MjkzNDAxMWMgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9pbnRlZ2VyLnB5eAorKysrIGIv c3JjL3NhZ2UvcmluZ3MvaW50ZWdlci5weXgKK0BAIC0yMTEsMTEgKzIxMSwxMSBAQCBjZGVmIG9i amVjdCBudW1weV9sb25nX2ludGVyZmFjZSA9IHsndHlwZXN0cic6ICc9aTQnIGlmIHNpemVvZihs b25nKSA9PSA0IGVsc2UgJworIGNkZWYgb2JqZWN0IG51bXB5X2ludDY0X2ludGVyZmFjZSA9IHsn dHlwZXN0cic6ICc9aTgnfQorIGNkZWYgb2JqZWN0IG51bXB5X29iamVjdF9pbnRlcmZhY2UgPSB7 J3R5cGVzdHInOiAnfE8nfQorIAorLWNkZWYgc2V0X2Zyb21fSW50ZWdlcihJbnRlZ2VyIHNlbGYs IEludGVnZXIgb3RoZXIpIG5vZXhjZXB0OgorK2NkZWYgc2V0X2Zyb21fSW50ZWdlcihJbnRlZ2Vy IHNlbGYsIEludGVnZXIgb3RoZXIpOgorICAgICBtcHpfc2V0KHNlbGYudmFsdWUsIG90aGVyLnZh bHVlKQorIAorIAorLWNkZWYgX2RpZ2l0c19uYWl2ZShtcHpfdCB2LGwsaW50IG9mZnNldCxJbnRl Z2VyIGJhc2UsZGlnaXRzKSBub2V4Y2VwdDoKKytjZGVmIF9kaWdpdHNfbmFpdmUobXB6X3Qgdixs LGludCBvZmZzZXQsSW50ZWdlciBiYXNlLGRpZ2l0cyk6CisgICAgICIiIgorICAgICBUaGlzIG1l dGhvZCBmaWxscyBpbiBkaWdpdCBlbnRyaWVzIGluIHRoZSBsaXN0LCBsLCB1c2luZyB0aGUgbW9z dAorICAgICBiYXNpYyBkaWdpdCBhbGdvcml0aG0gLS0gcmVwZWF0IGRpdmlzaW9uIGJ5IGJhc2Uu CitAQCAtMjYyLDcgKzI2Miw3IEBAIGNkZWYgX2RpZ2l0c19uYWl2ZShtcHpfdCB2LGwsaW50IG9m ZnNldCxJbnRlZ2VyIGJhc2UsZGlnaXRzKSBub2V4Y2VwdDoKKyAKKyAgICAgbXB6X2NsZWFyKG1w el92YWx1ZSkKKyAKKy1jZGVmIF9kaWdpdHNfaW50ZXJuYWwobXB6X3QgdixsLGludCBvZmZzZXQs aW50IHBvd2VyX2luZGV4LHBvd2VyX2xpc3QsZGlnaXRzKSBub2V4Y2VwdDoKKytjZGVmIF9kaWdp dHNfaW50ZXJuYWwobXB6X3QgdixsLGludCBvZmZzZXQsaW50IHBvd2VyX2luZGV4LHBvd2VyX2xp c3QsZGlnaXRzKToKKyAgICAgIiIiCisgICAgIElOUFVUOgorIAorQEAgLTMzNyw3ICszMzcsNyBA QCBkZWYgaXNfSW50ZWdlcih4KToKKyAgICAgcmV0dXJuIGlzaW5zdGFuY2UoeCwgSW50ZWdlcikK KyAKKyAKKy1jZGVmIGlubGluZSBJbnRlZ2VyIGFzX0ludGVnZXIoeCkgbm9leGNlcHQ6CisrY2Rl ZiBpbmxpbmUgSW50ZWdlciBhc19JbnRlZ2VyKHgpOgorICAgICBpZiBpc2luc3RhbmNlKHgsIElu dGVnZXIpOgorICAgICAgICAgcmV0dXJuIDxJbnRlZ2VyPngKKyAgICAgZWxzZToKK0BAIC03NzMs NyArNzczLDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuRXVj bGlkZWFuRG9tYWluRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBjb2Rv bWFpbi5jb2VyY2Uoc2VsZikKKyAKKy0gICAgY2RlZiBfeG9yKEludGVnZXIgc2VsZiwgSW50ZWdl ciBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNkZWYgX3hvcihJbnRlZ2VyIHNlbGYsIEludGVnZXIg b3RoZXIpOgorICAgICAgICAgY2RlZiBJbnRlZ2VyIHgKKyAgICAgICAgIHggPSBQWV9ORVcoSW50 ZWdlcikKKyAgICAgICAgIG1wel94b3IoeC52YWx1ZSwgc2VsZi52YWx1ZSwgb3RoZXIudmFsdWUp CitAQCAtOTE1LDcgKzkxNSw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlcihzYWdlLnN0cnVjdHVyZS5l bGVtZW50LkV1Y2xpZGVhbkRvbWFpbkVsZW1lbnQpOgorIAorICAgICAgICAgcmV0dXJuIHJpY2hf dG9fYm9vbF9zZ24ob3AsIGMpCisgCistICAgIGNwZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdodCwg aW50IG9wKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3JpY2hjbXBfKGxlZnQsIHJpZ2h0LCBpbnQg b3ApOgorICAgICAgICAgciIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTE3NjQsNyAr MTc2NCw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50LkV1Y2xp ZGVhbkRvbWFpbkVsZW1lbnQpOgorIAorICAgICAgICAgcmV0dXJuIGNvZXJjaW9uX21vZGVsLmJp bl9vcChsZWZ0LCByaWdodCwgb3BlcmF0b3IuYWRkKQorIAorLSAgICBjcGRlZiBfYWRkXyhzZWxm LCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KToKKyAgICAg ICAgICIiIgorICAgICAgICAgSW50ZWdlciBhZGRpdGlvbi4KKyAKK0BAIC0xNzgyLDcgKzE3ODIs NyBAQCBjZGVmIGNsYXNzIEludGVnZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5FdWNsaWRlYW5E b21haW5FbGVtZW50KToKKyAgICAgICAgIG1wel9hZGQoeC52YWx1ZSwgc2VsZi52YWx1ZSwgKDxJ bnRlZ2VyPnJpZ2h0KS52YWx1ZSkKKyAgICAgICAgIHJldHVybiB4CisgCistICAgIGNkZWYgX2Fk ZF9sb25nKHNlbGYsIGxvbmcgbikgbm9leGNlcHQ6CisrICAgIGNkZWYgX2FkZF9sb25nKHNlbGYs IGxvbmcgbik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEZhc3QgcGF0aCBmb3IgYWRkaW5nIGEg QyBsb25nLgorIAorQEAgLTE4NTEsNyArMTg1MSw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlcihzYWdl LnN0cnVjdHVyZS5lbGVtZW50LkV1Y2xpZGVhbkRvbWFpbkVsZW1lbnQpOgorIAorICAgICAgICAg cmV0dXJuIGNvZXJjaW9uX21vZGVsLmJpbl9vcChsZWZ0LCByaWdodCwgb3BlcmF0b3Iuc3ViKQor IAorLSAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9z dWJfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgSW50ZWdlciBzdWJ0cmFj dGlvbi4KKyAKK0BAIC0xODg5LDEyICsxODg5LDEyIEBAIGNkZWYgY2xhc3MgSW50ZWdlcihzYWdl LnN0cnVjdHVyZS5lbGVtZW50LkV1Y2xpZGVhbkRvbWFpbkVsZW1lbnQpOgorICAgICAgICAgbXB6 X25lZyh4LnZhbHVlLCBzZWxmLnZhbHVlKQorICAgICAgICAgcmV0dXJuIHgKKyAKKy0gICAgY3Bk ZWYgX25lZ18oc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9uZWdfKHNlbGYpOgorICAgICAg ICAgY2RlZiBJbnRlZ2VyIHggPSA8SW50ZWdlcj5QWV9ORVcoSW50ZWdlcikKKyAgICAgICAgIG1w el9uZWcoeC52YWx1ZSwgc2VsZi52YWx1ZSkKKyAgICAgICAgIHJldHVybiB4CisgCistICAgIGNw ZGVmIF9hY3Rfb25fKHNlbGYsIHMsIGJpbnQgc2VsZl9vbl9sZWZ0KSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgX2FjdF9vbl8oc2VsZiwgcywgYmludCBzZWxmX29uX2xlZnQpOgorICAgICAgICAgIiIi CisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMTkxMSw3ICsxOTExLDcgQEAgY2RlZiBjbGFz cyBJbnRlZ2VyKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuRXVjbGlkZWFuRG9tYWluRWxlbWVudCk6 CisgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgcmV0dXJuIHMgKiBpbnQoc2Vs ZikgICMgd2lsbCByYWlzZSB0aGUgYXBwcm9wcmlhdGUgZXhjZXB0aW9uCisgCistICAgIGNkZWYg X211bF9sb25nKHNlbGYsIGxvbmcgbikgbm9leGNlcHQ6CisrICAgIGNkZWYgX211bF9sb25nKHNl bGYsIGxvbmcgbik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEZhc3QgcGF0aCBmb3IgbXVsdGlw bHlpbmcgYSBDIGxvbmcuCisgCitAQCAtMTk1OSw3ICsxOTU5LDcgQEAgY2RlZiBjbGFzcyBJbnRl Z2VyKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuRXVjbGlkZWFuRG9tYWluRWxlbWVudCk6CisgCisg ICAgICAgICByZXR1cm4gY29lcmNpb25fbW9kZWwuYmluX29wKGxlZnQsIHJpZ2h0LCBvcGVyYXRv ci5tdWwpCisgCistICAgIGNwZGVmIF9tdWxfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgX211bF8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBJbnRlZ2Vy IG11bHRpcGxpY2F0aW9uLgorIAorQEAgLTIwMzIsNyArMjAzMiw3IEBAIGNkZWYgY2xhc3MgSW50 ZWdlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50LkV1Y2xpZGVhbkRvbWFpbkVsZW1lbnQpOgorIAor ICAgICAgICAgcmV0dXJuIGNvZXJjaW9uX21vZGVsLmJpbl9vcChsZWZ0LCByaWdodCwgb3BlcmF0 b3IudHJ1ZWRpdikKKyAKKy0gICAgY3BkZWYgX2Rpdl8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBfZGl2XyhzZWxmLCByaWdodCk6CisgICAgICAgICByIiIiCisgICAgICAgICBD b21wdXRlcyBgXGZyYWN7YX17Yn1gCisgCitAQCAtMjA0OSw3ICsyMDQ5LDcgQEAgY2RlZiBjbGFz cyBJbnRlZ2VyKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuRXVjbGlkZWFuRG9tYWluRWxlbWVudCk6 CisgICAgICAgICBtcHFfZGl2X3p6KHgudmFsdWUsIHNlbGYudmFsdWUsICg8SW50ZWdlcj5yaWdo dCkudmFsdWUpCisgICAgICAgICByZXR1cm4geAorIAorLSAgICBjcGRlZiBfZmxvb3JkaXZfKHNl bGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2Zsb29yZGl2XyhzZWxmLCByaWdodCk6 CisgICAgICAgICByIiIiCisgICAgICAgICBDb21wdXRlcyB0aGUgd2hvbGUgcGFydCBvZiBgXGZy YWN7eH17eX1gLgorIAorQEAgLTIxOTEsNyArMjE5MSw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlcihz YWdlLnN0cnVjdHVyZS5lbGVtZW50LkV1Y2xpZGVhbkRvbWFpbkVsZW1lbnQpOgorICAgICAgICAg IyBsZWZ0IGlzIGEgbm9uLUVsZW1lbnQ6IGRvIHRoZSBwb3dlcmluZyB3aXRoIGEgUHl0aG9uIGlu dAorICAgICAgICAgcmV0dXJuIGxlZnQgKiogaW50KHJpZ2h0KQorIAorLSAgICBjcGRlZiBfcG93 XyhzZWxmLCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9wb3dfKHNlbGYsIG90aGVyKToK KyAgICAgICAgICIiIgorICAgICAgICAgSW50ZWdlciBwb3dlcmluZy4KKyAKK0BAIC0yMjcxLDcg KzIyNzEsNyBAQCBjZGVmIGNsYXNzIEludGVnZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5FdWNs aWRlYW5Eb21haW5FbGVtZW50KToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmV0dXJu IH5yCisgCistICAgIGNkZWYgX3Bvd19sb25nKHNlbGYsIGxvbmcgbikgbm9leGNlcHQ6CisrICAg IGNkZWYgX3Bvd19sb25nKHNlbGYsIGxvbmcgbik6CisgICAgICAgICBpZiBuID09IDA6CisgICAg ICAgICAgICAgcmV0dXJuIHNtYWxsSW50ZWdlcigxKQorICAgICAgICAgZWxpZiBuID09IDE6CitA QCAtMjMwMSw3ICsyMzAxLDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyKHNhZ2Uuc3RydWN0dXJlLmVs ZW1lbnQuRXVjbGlkZWFuRG9tYWluRWxlbWVudCk6CisgICAgICAgICAgICAgc2lnX29mZigpCisg ICAgICAgICAgICAgcmV0dXJuIHEKKyAKKy0gICAgY3BkZWYgX3Bvd19pbnQoc2VsZiwgbikgbm9l eGNlcHQ6CisrICAgIGNwZGVmIF9wb3dfaW50KHNlbGYsIG4pOgorICAgICAgICAgIiIiCisgICAg ICAgICBJbnRlZ2VyIHBvd2VyaW5nIHRvIGFuIGludGVnZXIgZXhwb25lbnQuCisgCitAQCAtMzY4 Myw3ICszNjgzLDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQu RXVjbGlkZWFuRG9tYWluRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBt cHpfcHl0aG9uaGFzaChzZWxmLnZhbHVlKQorIAorLSAgICBjZGVmIGhhc2hfYyhzZWxmKSBub2V4 Y2VwdDoKKysgICAgY2RlZiBoYXNoX2Moc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEEg QyB2ZXJzaW9uIG9mIHRoZSBfX2hhc2hfXyBmdW5jdGlvbi4KKyAgICAgICAgICIiIgorQEAgLTQx OTksNyArNDE5OSw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50 LkV1Y2xpZGVhbkRvbWFpbkVsZW1lbnQpOgorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICBy ZXR1cm4gdAorIAorLSAgICBjcGRlZiBSaW5nRWxlbWVudCBfdmFsdWF0aW9uKEludGVnZXIgc2Vs ZiwgSW50ZWdlciBwKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgUmluZ0VsZW1lbnQgX3ZhbHVhdGlv bihJbnRlZ2VyIHNlbGYsIEludGVnZXIgcCk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1 cm4gdGhlIHAtYWRpYyB2YWx1YXRpb24gb2YgYGBzZWxmYGAuCisgCitAQCAtNDIyNCw3ICs0MjI0 LDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuRXVjbGlkZWFu RG9tYWluRWxlbWVudCk6CisgICAgICAgICBtcHpfY2xlYXIodSkKKyAgICAgICAgIHJldHVybiB2 CisgCistICAgIGNkZWYgb2JqZWN0IF92YWxfdW5pdChJbnRlZ2VyIHNlbGYsIEludGVnZXIgcCkg bm9leGNlcHQ6CisrICAgIGNkZWYgb2JqZWN0IF92YWxfdW5pdChJbnRlZ2VyIHNlbGYsIEludGVn ZXIgcCk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gYSBwYWlyOiB0aGUgcC1hZGlj IHZhbHVhdGlvbiBvZiBgYHNlbGZgYCwgYW5kIHRoZSBwLWFkaWMgdW5pdAorICAgICAgICAgb2Yg YGBzZWxmYGAuCitAQCAtNDM3Myw3ICs0MzczLDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyKHNhZ2Uu c3RydWN0dXJlLmVsZW1lbnQuRXVjbGlkZWFuRG9tYWluRWxlbWVudCk6CisgICAgICAgICBtcHpf dGRpdl9xXzJleHAob2RkLnZhbHVlLCBzZWxmLnZhbHVlLCBiaXRzKQorICAgICAgICAgcmV0dXJu IG9kZAorIAorLSAgICBjZGVmIEludGVnZXIgX2RpdmlkZV9rbm93aW5nX2RpdmlzaWJsZV9ieShJ bnRlZ2VyIHNlbGYsIEludGVnZXIgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjZGVmIEludGVnZXIg X2RpdmlkZV9rbm93aW5nX2RpdmlzaWJsZV9ieShJbnRlZ2VyIHNlbGYsIEludGVnZXIgcmlnaHQp OgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBpbnRlZ2VyIGBgc2VsZmBgIC8g YGByaWdodGBgIHdoZW4gYGBzZWxmYGAgaXMgZGl2aXNpYmxlIGJ5IHJpZ2h0LgorIAorQEAgLTYy MDAsNyArNjIwMCw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50 LkV1Y2xpZGVhbkRvbWFpbkVsZW1lbnQpOgorICAgICAgICAgZCA9IHNlbGYgLy8gNAorICAgICAg ICAgcmV0dXJuIGQgJSA0IGluIFsyLCAzXSBhbmQgZC5pc19zcXVhcmVmcmVlKCkKKyAKKy0gICAg Y3BkZWYgX19wYXJpX18oc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9fcGFyaV9fKHNlbGYp OgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIFBBUkkgdmVyc2lvbiBvZiB0aGlz IGludGVnZXIuCisgCitAQCAtNjY2OCw3ICs2NjY4LDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyKHNh Z2Uuc3RydWN0dXJlLmVsZW1lbnQuRXVjbGlkZWFuRG9tYWluRWxlbWVudCk6CisgCisgICAgICAg ICByZXR1cm4gZywgcywgdAorIAorLSAgICBjcGRlZiBfc2hpZnRfaGVscGVyKEludGVnZXIgc2Vs ZiwgeSwgaW50IHNpZ24pIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc2hpZnRfaGVscGVyKEludGVn ZXIgc2VsZiwgeSwgaW50IHNpZ24pOgorICAgICAgICAgIiIiCisgICAgICAgICBDb21wdXRlIGxl ZnQgYW5kIHJpZ2h0IHNoaWZ0cyBvZiBpbnRlZ2Vycy4KKyAgICAgICAgIFNoaWZ0cyBgYHNlbGZg YCBgYHlgYCBiaXRzIHRvIHRoZSBsZWZ0IGlmIGBgc2lnbmBgIGlzIGAxYCwgYW5kIHRvIHRoZSBy aWdodAorQEAgLTY4MTAsNyArNjgxMCw3IEBAIGNkZWYgY2xhc3MgSW50ZWdlcihzYWdlLnN0cnVj dHVyZS5lbGVtZW50LkV1Y2xpZGVhbkRvbWFpbkVsZW1lbnQpOgorICAgICAgICAgICAgIHJldHVy biB4ID4+IGludCh5KQorICAgICAgICAgcmV0dXJuICg8SW50ZWdlcj54KS5fc2hpZnRfaGVscGVy KHksIC0xKQorIAorLSAgICBjZGVmIF9hbmQoSW50ZWdlciBzZWxmLCBJbnRlZ2VyIG90aGVyKSBu b2V4Y2VwdDoKKysgICAgY2RlZiBfYW5kKEludGVnZXIgc2VsZiwgSW50ZWdlciBvdGhlcik6Cisg ICAgICAgICBjZGVmIEludGVnZXIgeCA9IFBZX05FVyhJbnRlZ2VyKQorICAgICAgICAgbXB6X2Fu ZCh4LnZhbHVlLCBzZWxmLnZhbHVlLCBvdGhlci52YWx1ZSkKKyAgICAgICAgIHJldHVybiB4CitA QCAtNjgzMSw3ICs2ODMxLDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyKHNhZ2Uuc3RydWN0dXJlLmVs ZW1lbnQuRXVjbGlkZWFuRG9tYWluRWxlbWVudCk6CisgICAgICAgICAgICAgcmV0dXJuICg8SW50 ZWdlcj54KS5fYW5kKHkpCisgICAgICAgICByZXR1cm4gY29lcmNpb25fbW9kZWwuYmluX29wKHgs IHksIG9wZXJhdG9yLmFuZF8pCisgCistICAgIGNkZWYgX29yKEludGVnZXIgc2VsZiwgSW50ZWdl ciBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNkZWYgX29yKEludGVnZXIgc2VsZiwgSW50ZWdlciBv dGhlcik6CisgICAgICAgICBjZGVmIEludGVnZXIgeCA9IFBZX05FVyhJbnRlZ2VyKQorICAgICAg ICAgbXB6X2lvcih4LnZhbHVlLCBzZWxmLnZhbHVlLCBvdGhlci52YWx1ZSkKKyAgICAgICAgIHJl dHVybiB4CitAQCAtNzQ3Niw3ICs3NDc2LDcgQEAgY2RlZiBjbGFzcyBpbnRfdG9fWihNb3JwaGlz bSk6CisgICAgICAgICBmcm9tIHNhZ2Uuc2V0cy5weXRob25jbGFzcyBpbXBvcnQgU2V0X1B5dGhv blR5cGUKKyAgICAgICAgIE1vcnBoaXNtLl9faW5pdF9fKHNlbGYsIHNhZ2UuY2F0ZWdvcmllcy5o b21zZXQuSG9tKFNldF9QeXRob25UeXBlKGludCksIGludGVnZXJfcmluZy5aWikpCisgCistICAg IGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIGEpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVt ZW50IF9jYWxsXyhzZWxmLCBhKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGEgbmV3 IGludGVnZXIgd2l0aCB0aGUgc2FtZSB2YWx1ZSBhcyBgYGFgYC4KKyAKK0BAIC03NTIxLDcgKzc1 MjEsNyBAQCBjZGVmIGNsYXNzIGxvbmdfdG9fWihNb3JwaGlzbSk6CisgICAgICAgICBmcm9tIHNh Z2Uuc2V0cy5weXRob25jbGFzcyBpbXBvcnQgU2V0X1B5dGhvblR5cGUKKyAgICAgICAgIE1vcnBo aXNtLl9faW5pdF9fKHNlbGYsIHNhZ2UuY2F0ZWdvcmllcy5ob21zZXQuSG9tKFNldF9QeXRob25U eXBlKGxvbmcpLCBpbnRlZ2VyX3JpbmcuWlopKQorIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxs XyhzZWxmLCBhKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgYSk6 CisgICAgICAgICBjZGVmIEludGVnZXIgcgorICAgICAgICAgY2RlZiBsb25nIGwKKyAgICAgICAg IGNkZWYgaW50IGVyciA9IDAKK0BAIC03NzA1LDcgKzc3MDUsNyBAQCBjZGVmIHZvaWQgZmFzdF90 cF9kZWFsbG9jKFB5T2JqZWN0KiBvKSBub2V4Y2VwdDoKKyAKKyAKKyBmcm9tIHNhZ2UubWlzYy5h bGxvY2F0b3IgY2ltcG9ydCBob29rX3RwX2Z1bmN0aW9ucworLWNkZWYgaG9va19mYXN0X3RwX2Z1 bmN0aW9ucygpIG5vZXhjZXB0OgorK2NkZWYgaG9va19mYXN0X3RwX2Z1bmN0aW9ucygpOgorICAg ICAiIiIKKyAgICAgSW5pdGlhbGl6ZSB0aGUgZmFzdCBpbnRlZ2VyIGNyZWF0aW9uIGZ1bmN0aW9u cy4KKyAgICAgIiIiCitAQCAtNzcyMyw3ICs3NzIzLDcgQEAgY2RlZiBob29rX2Zhc3RfdHBfZnVu Y3Rpb25zKCkgbm9leGNlcHQ6CisgICAgICMgdG8gYmUgY29uc3RydWN0ZWQvZGVzdHJ1Y3RlZC4K KyAgICAgaG9va190cF9mdW5jdGlvbnMoZ2xvYmFsX2R1bW15X0ludGVnZXIsIDxuZXdmdW5jPigm ZmFzdF90cF9uZXcpLCA8ZGVzdHJ1Y3Rvcj4oJmZhc3RfdHBfZGVhbGxvYyksIEZhbHNlKQorIAor LWNkZWYgaW50ZWdlcih4KSBub2V4Y2VwdDoKKytjZGVmIGludGVnZXIoeCk6CisgICAgIGlmIGlz aW5zdGFuY2UoeCwgSW50ZWdlcik6CisgICAgICAgICByZXR1cm4geAorICAgICByZXR1cm4gSW50 ZWdlcih4KQorQEAgLTc3NTMsNyArNzc1Myw3IEBAIGhvb2tfZmFzdF90cF9mdW5jdGlvbnMoKQor IAorICMgemVybyBhbmQgb25lIGluaXRpYWxpemF0aW9uCisgaW5pdGlhbGl6ZWQgPSBGYWxzZQor LWNkZWYgc2V0X3plcm9fb25lX2VsZW1lbnRzKCkgbm9leGNlcHQ6CisrY2RlZiBzZXRfemVyb19v bmVfZWxlbWVudHMoKToKKyAgICAgZ2xvYmFsIHRoZV9pbnRlZ2VyX3JpbmcsIGluaXRpYWxpemVk CisgICAgIGlmIGluaXRpYWxpemVkOgorICAgICAgICAgcmV0dXJuCitAQCAtNzc3Myw3ICs3Nzcz LDcgQEAgREVGIHNtYWxsX3Bvb2xfbWF4ID0gMjU2CisgIyB3ZSBjb3VsZCB1c2UgdGhlIGFib3Zl IHplcm8gYW5kIG9uZSBoZXJlCisgY2RlZiBsaXN0IHNtYWxsX3Bvb2wgPSBbSW50ZWdlcihrKSBm b3IgayBpbiByYW5nZShzbWFsbF9wb29sX21pbiwgc21hbGxfcG9vbF9tYXgrMSldCisgCistY2Rl ZiBpbmxpbmUgSW50ZWdlciBzbWFsbEludGVnZXIobG9uZyB2YWx1ZSkgbm9leGNlcHQ6CisrY2Rl ZiBpbmxpbmUgSW50ZWdlciBzbWFsbEludGVnZXIobG9uZyB2YWx1ZSk6CisgICAgICIiIgorICAg ICBUaGlzIGlzIHRoZSBmYXN0ZXN0IHdheSB0byBjcmVhdGUgYSAobGlrZWx5KSBzbWFsbCBJbnRl Z2VyLgorICAgICAiIiIKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9pbnRlZ2VyX3Jpbmcu cHl4IGIvc3JjL3NhZ2UvcmluZ3MvaW50ZWdlcl9yaW5nLnB5eAoraW5kZXggYmJiZDk4OWE2NWQu LmY5YmVmNDE0YzYwIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvaW50ZWdlcl9yaW5nLnB5 eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvaW50ZWdlcl9yaW5nLnB5eAorQEAgLTUyOCw3ICs1Mjgs NyBAQCBjZGVmIGNsYXNzIEludGVnZXJSaW5nX2NsYXNzKFByaW5jaXBhbElkZWFsRG9tYWluKToK KyAgICAgICAgICAgICB5aWVsZCAtbgorICAgICAgICAgICAgIG4gKz0gMQorIAorLSAgICBjcGRl ZiBfY29lcmNlX21hcF9mcm9tXyhzZWxmLCBTKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2NvZXJj ZV9tYXBfZnJvbV8oc2VsZiwgUyk6CisgICAgICAgICByIiIiCisgICAgICAgICBgYHhgYCBjYW5v bmljYWxseSBjb2VyY2VzIHRvIHRoZSBpbnRlZ2VycyBgXFpaYCBvbmx5IGlmIGBgeGBgCisgICAg ICAgICBpcyBhbiBpbnQsIGxvbmcgb3IgYWxyZWFkeSBhbiBlbGVtZW50IG9mIGBcWlpgLgorZGlm ZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL2xhdXJlbnRfc2VyaWVzX3JpbmdfZWxlbWVudC5weGQg Yi9zcmMvc2FnZS9yaW5ncy9sYXVyZW50X3Nlcmllc19yaW5nX2VsZW1lbnQucHhkCitpbmRleCAy YjM3YjgwZTNiMC4uOGRmNWE5MmM5ZTcgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9sYXVy ZW50X3Nlcmllc19yaW5nX2VsZW1lbnQucHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9sYXVyZW50 X3Nlcmllc19yaW5nX2VsZW1lbnQucHhkCitAQCAtNCw3ICs0LDcgQEAgY2RlZiBjbGFzcyBMYXVy ZW50U2VyaWVzKEFsZ2VicmFFbGVtZW50KToKKyAgICAgY2RlZiBNb2R1bGVFbGVtZW50IF9fdQor ICAgICBjZGVmIGxvbmcgX19uCisgCistICAgIGNkZWYgX25vcm1hbGl6ZShzZWxmKSBub2V4Y2Vw dAorLSAgICBjcGRlZiBfYWRkXyhzZWxmLCBvdGhlcikgbm9leGNlcHQKKy0gICAgY3BkZWYgX211 bF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0CisrICAgIGNkZWYgX25vcm1hbGl6ZShzZWxmKQorKyAg ICBjcGRlZiBfYWRkXyhzZWxmLCBvdGhlcikKKysgICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIp CisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvbGF1cmVudF9zZXJpZXNfcmluZ19lbGVt ZW50LnB5eCBiL3NyYy9zYWdlL3JpbmdzL2xhdXJlbnRfc2VyaWVzX3JpbmdfZWxlbWVudC5weXgK K2luZGV4IGEyMmYxYzY1ZGI0Li44YmJmMjI3ZTMwMiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3Jp bmdzL2xhdXJlbnRfc2VyaWVzX3JpbmdfZWxlbWVudC5weXgKKysrKyBiL3NyYy9zYWdlL3Jpbmdz L2xhdXJlbnRfc2VyaWVzX3JpbmdfZWxlbWVudC5weXgKK0BAIC0zMDMsNyArMzAzLDcgQEAgY2Rl ZiBjbGFzcyBMYXVyZW50U2VyaWVzKEFsZ2VicmFFbGVtZW50KToKKyAgICAgICAgIHggPSBpbV9n ZW5zWzBdCisgICAgICAgICByZXR1cm4gY29kb21haW4oc2VsZi5fX3UuX2ltX2dlbnNfKGNvZG9t YWluLCBpbV9nZW5zLCBiYXNlX21hcD1iYXNlX21hcCkgKiB4KipzZWxmLl9fbikKKyAKKy0gICAg Y2RlZiBfbm9ybWFsaXplKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9ub3JtYWxpemUoc2Vs Zik6CisgICAgICAgICByIiIiCisgICAgICAgICBBIExhdXJlbnQgc2VyaWVzIGlzIGEgcGFpciAo dSh0KSwgbiksIHdoZXJlIGVpdGhlciB1PTAgKHRvIHNvbWUKKyAgICAgICAgIHByZWNpc2lvbikg b3IgdSBpcyBhIHVuaXQuIFRoaXMgcGFpciBjb3JyZXNwb25kcyB0bworQEAgLTcyOSw3ICs3Mjks NyBAQCBjZGVmIGNsYXNzIExhdXJlbnRTZXJpZXMoQWxnZWJyYUVsZW1lbnQpOgorICAgICAgICAg ICAgICAgICBzZWxmLl9fdSA9IHNlbGYuX191Ll9wYXJlbnQoY29lZmZzKQorICAgICAgICAgc2Vs Zi5fbm9ybWFsaXplKCkKKyAKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHRfbSkgbm9leGNl cHQ6CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0X20pOgorICAgICAgICAgIiIiCisgICAg ICAgICBBZGQgdHdvIHBvd2VyIHNlcmllcyB3aXRoIHRoZSBzYW1lIHBhcmVudC4KKyAKK0BAIC03 ODcsNyArNzg3LDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50U2VyaWVzKEFsZ2VicmFFbGVtZW50KToK KyAgICAgICAgICMgMy4gQWRkCisgICAgICAgICByZXR1cm4gdHlwZShzZWxmKShzZWxmLl9wYXJl bnQsIGYxICsgZjIsIG0pCisgCistICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0X20pIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodF9tKToKKyAgICAgICAgICIiIgorICAg ICAgICAgU3VidHJhY3QgdHdvIHBvd2VyIHNlcmllcyB3aXRoIHRoZSBzYW1lIHBhcmVudC4KKyAK K0BAIC05MTUsNyArOTE1LDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50U2VyaWVzKEFsZ2VicmFFbGVt ZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHR5cGUoc2VsZikoc2VsZi5fcGFy ZW50LCAtc2VsZi5fX3UsIHNlbGYuX19uKQorIAorLSAgICBjcGRlZiBfbXVsXyhzZWxmLCByaWdo dF9yKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX211bF8oc2VsZiwgcmlnaHRfcik6CisgICAgICAg ICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC05MzAsMTAgKzkzMCwxMCBAQCBjZGVm IGNsYXNzIExhdXJlbnRTZXJpZXMoQWxnZWJyYUVsZW1lbnQpOgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5fX3UgKiByaWdodC5fX3UsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLl9fbiArIHJpZ2h0Ll9fbikKKyAKKy0gICAgY3BkZWYgX3JtdWxfKHNlbGYsIEVsZW1l bnQgYykgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9ybXVsXyhzZWxmLCBFbGVtZW50IGMpOgorICAg ICAgICAgcmV0dXJuIHR5cGUoc2VsZikoc2VsZi5fcGFyZW50LCBzZWxmLl9fdS5fcm11bF8oYyks IHNlbGYuX19uKQorIAorLSAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCBjKSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgYyk6CisgICAgICAgICByZXR1cm4g dHlwZShzZWxmKShzZWxmLl9wYXJlbnQsIHNlbGYuX191Ll9sbXVsXyhjKSwgc2VsZi5fX24pCisg CisgICAgIGRlZiBfX3Bvd19fKF9zZWxmLCByLCBkdW1teSk6CitAQCAtMTA4Miw3ICsxMDgyLDcg QEAgY2RlZiBjbGFzcyBMYXVyZW50U2VyaWVzKEFsZ2VicmFFbGVtZW50KToKKyAgICAgICAgICIi IgorICAgICAgICAgcmV0dXJuIHR5cGUoc2VsZikoc2VsZi5fcGFyZW50LCBzZWxmLl9fdSA+PiAo biAtIHNlbGYuX19uKSwgbikKKyAKKy0gICAgY3BkZWYgX2Rpdl8oc2VsZiwgcmlnaHRfcikgbm9l eGNlcHQ6CisrICAgIGNwZGVmIF9kaXZfKHNlbGYsIHJpZ2h0X3IpOgorICAgICAgICAgIiIiCisg ICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMTIwMyw3ICsxMjAzLDcgQEAgY2RlZiBjbGFzcyBM YXVyZW50U2VyaWVzKEFsZ2VicmFFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0 dXJuIG1pbihzZWxmLnZhbHVhdGlvbigpLCBvdGhlci52YWx1YXRpb24oKSkKKyAKKy0gICAgY3Bk ZWYgX3JpY2hjbXBfKHNlbGYsIHJpZ2h0X3IsIGludCBvcCkgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9yaWNoY21wXyhzZWxmLCByaWdodF9yLCBpbnQgb3ApOgorICAgICAgICAgciIiIgorICAgICAg ICAgQ29tcGFyaXNvbiBvZiBgYHNlbGZgYCBhbmQgYGByaWdodGBgLgorIAorZGlmZiAtLWdpdCBh L3NyYy9zYWdlL3JpbmdzL21vcnBoaXNtLnB5eCBiL3NyYy9zYWdlL3JpbmdzL21vcnBoaXNtLnB5 eAoraW5kZXggMDVjNWFkY2JiZDEuLjZjNzg0NjBhNTM0IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uv cmluZ3MvbW9ycGhpc20ucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9tb3JwaGlzbS5weXgKK0BA IC01MTQsNyArNTE0LDcgQEAgY2RlZiBjbGFzcyBSaW5nTWFwX2xpZnQoUmluZ01hcCk6CisgICAg ICAgICBIID0gUi5Ib20oUywgU2V0cygpKQorICAgICAgICAgUmluZ01hcC5fX2luaXRfXyhzZWxm LCBIKQorIAorLSAgICBjZGVmIF91cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpIG5vZXhj ZXB0OgorKyAgICBjZGVmIF91cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpOgorICAgICAg ICAgIiIiCisgICAgICAgICBIZWxwZXIgZm9yIGNvcHlpbmcgYW5kIHBpY2tsaW5nLgorIAorQEAg LTUzMyw3ICs1MzMsNyBAQCBjZGVmIGNsYXNzIFJpbmdNYXBfbGlmdChSaW5nTWFwKToKKyAgICAg ICAgIHNlbGYudG9fUyA9IF9zbG90c1sndG9fUyddCisgICAgICAgICBNb3JwaGlzbS5fdXBkYXRl X3Nsb3RzKHNlbGYsIF9zbG90cykKKyAKKy0gICAgY2RlZiBkaWN0IF9leHRyYV9zbG90cyhzZWxm KSBub2V4Y2VwdDoKKysgICAgY2RlZiBkaWN0IF9leHRyYV9zbG90cyhzZWxmKToKKyAgICAgICAg ICIiIgorICAgICAgICAgSGVscGVyIGZvciBjb3B5aW5nIGFuZCBwaWNrbGluZy4KKyAKK0BAIC01 NDksNyArNTQ5LDcgQEAgY2RlZiBjbGFzcyBSaW5nTWFwX2xpZnQoUmluZ01hcCk6CisgICAgICAg ICBzbG90c1sndG9fUyddID0gc2VsZi50b19TCisgICAgICAgICByZXR1cm4gc2xvdHMKKyAKKy0g ICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIG90aGVyLCBpbnQgb3ApIG5vZXhjZXB0OgorKyAgICBj cGRlZiBfcmljaGNtcF8oc2VsZiwgb3RoZXIsIGludCBvcCk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIENvbXBhcmUgYSByaW5nIGxpZnRpbmcgbWFwcyBgYHNlbGZgYCB0byBgYG90aGVyYGAuCisg CitAQCAtNjEzLDcgKzYxMyw3IEBAIGNkZWYgY2xhc3MgUmluZ01hcF9saWZ0KFJpbmdNYXApOgor ICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gIkNob2ljZSBvZiBsaWZ0aW5nIG1hcCIKKyAK Ky0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCkgbm9leGNlcHQ6CisrICAgIGNwZGVm IEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpOgorICAgICAgICAgIiIiCisgICAgICAgICBFdmFsdWF0 ZSB0aGlzIGZ1bmN0aW9uIGF0IGBgeGBgLgorIAorQEAgLTcwMCw3ICs3MDAsNyBAQCBjZGVmIGNs YXNzIFJpbmdIb21vbW9ycGhpc20oUmluZ01hcCk6CisgICAgICAgICAgICAgcmFpc2UgVHlwZUVy cm9yKCJsaWZ0IG11c3QgaGF2ZSBjb3JyZWN0IGNvZG9tYWluIikKKyAgICAgICAgIHNlbGYuX2xp ZnQgPSBsaWZ0CisgCistICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0IF9zbG90cykg bm9leGNlcHQ6CisrICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0IF9zbG90cyk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIEhlbHBlciBmb3IgY29weWluZyBhbmQgcGlja2xpbmcuCisg CitAQCAtNzE5LDcgKzcxOSw3IEBAIGNkZWYgY2xhc3MgUmluZ0hvbW9tb3JwaGlzbShSaW5nTWFw KToKKyAgICAgICAgICAgICBzZWxmLl9saWZ0ID0gX3Nsb3RzWydfbGlmdCddCisgICAgICAgICBN b3JwaGlzbS5fdXBkYXRlX3Nsb3RzKHNlbGYsIF9zbG90cykKKyAKKy0gICAgY2RlZiBkaWN0IF9l eHRyYV9zbG90cyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBkaWN0IF9leHRyYV9zbG90cyhz ZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgSGVscGVyIGZvciBjb3B5aW5nIGFuZCBwaWNr bGluZy4KKyAKK0BAIC0xODEwLDcgKzE4MTAsNyBAQCBjZGVmIGNsYXNzIFJpbmdIb21vbW9ycGhp c21faW1fZ2VucyhSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0 dXJuIHNlbGYuX2Jhc2VfbWFwCisgCistICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0 IF9zbG90cykgbm9leGNlcHQ6CisrICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0IF9z bG90cyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEhlbHBlciBmb3IgY29weWluZyBhbmQgcGlj a2xpbmcuCisgCitAQCAtMTgzMCw3ICsxODMwLDcgQEAgY2RlZiBjbGFzcyBSaW5nSG9tb21vcnBo aXNtX2ltX2dlbnMoUmluZ0hvbW9tb3JwaGlzbSk6CisgICAgICAgICBzZWxmLl9iYXNlX21hcCA9 IF9zbG90cy5nZXQoJ19iYXNlX21hcCcpCisgICAgICAgICBSaW5nSG9tb21vcnBoaXNtLl91cGRh dGVfc2xvdHMoc2VsZiwgX3Nsb3RzKQorIAorLSAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNl bGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpOgorICAgICAg ICAgIiIiCisgICAgICAgICBIZWxwZXIgZm9yIGNvcHlpbmcgYW5kIHBpY2tsaW5nLgorIAorQEAg LTE4NTEsNyArMTg1MSw3IEBAIGNkZWYgY2xhc3MgUmluZ0hvbW9tb3JwaGlzbV9pbV9nZW5zKFJp bmdIb21vbW9ycGhpc20pOgorICAgICAgICAgc2xvdHNbJ19iYXNlX21hcCddID0gc2VsZi5fYmFz ZV9tYXAKKyAgICAgICAgIHJldHVybiBzbG90cworIAorLSAgICBjcGRlZiBfcmljaGNtcF8oc2Vs Ziwgb3RoZXIsIGludCBvcCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCBv dGhlciwgaW50IG9wKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIEVYQU1QTEVTOgorIAorQEAg LTE5NjEsNyArMTk2MSw3IEBAIGNkZWYgY2xhc3MgUmluZ0hvbW9tb3JwaGlzbV9pbV9nZW5zKFJp bmdIb21vbW9ycGhpc20pOgorICAgICAgICAgICAgIHMgKz0gJ1xud2l0aCBtYXAgb2YgYmFzZSBy aW5nJworICAgICAgICAgcmV0dXJuIHMKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2Vs ZiwgeCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpOgorICAg ICAgICAgIiIiCisgICAgICAgICBFdmFsdWF0ZSB0aGlzIGhvbW9tb3JwaGlzbSBhdCBgYHhgYC4K KyAKK0BAIC0yMTI1LDcgKzIxMjUsNyBAQCBjZGVmIGNsYXNzIFJpbmdIb21vbW9ycGhpc21fZnJv bV9iYXNlKFJpbmdIb21vbW9ycGhpc20pOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4g c2VsZi5fdW5kZXJseWluZworIAorLSAgICBjZGVmIF91cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBf c2xvdHMpIG5vZXhjZXB0OgorKyAgICBjZGVmIF91cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBfc2xv dHMpOgorICAgICAgICAgIiIiCisgICAgICAgICBIZWxwZXIgZm9yIGNvcHlpbmcgYW5kIHBpY2ts aW5nLgorIAorQEAgLTIxNTUsNyArMjE1NSw3IEBAIGNkZWYgY2xhc3MgUmluZ0hvbW9tb3JwaGlz bV9mcm9tX2Jhc2UoUmluZ0hvbW9tb3JwaGlzbSk6CisgICAgICAgICBzZWxmLl91bmRlcmx5aW5n ID0gX3Nsb3RzWydfX3VuZGVybHlpbmcnXSAjIGRvdWJsZSB1bmRlcnNjb3JlIGZvciBsZWdhY3kg cGlja2xlcworICAgICAgICAgUmluZ0hvbW9tb3JwaGlzbS5fdXBkYXRlX3Nsb3RzKHNlbGYsIF9z bG90cykKKyAKKy0gICAgY2RlZiBkaWN0IF9leHRyYV9zbG90cyhzZWxmKSBub2V4Y2VwdDoKKysg ICAgY2RlZiBkaWN0IF9leHRyYV9zbG90cyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAg SGVscGVyIGZvciBjb3B5aW5nIGFuZCBwaWNrbGluZy4KKyAKK0BAIC0yMTg2LDcgKzIxODYsNyBA QCBjZGVmIGNsYXNzIFJpbmdIb21vbW9ycGhpc21fZnJvbV9iYXNlKFJpbmdIb21vbW9ycGhpc20p OgorICAgICAgICAgc2xvdHNbJ19fdW5kZXJseWluZyddID0gc2VsZi5fdW5kZXJseWluZworICAg ICAgICAgcmV0dXJuIHNsb3RzCisgCistICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCBvdGhlciwg aW50IG9wKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIG90aGVyLCBpbnQg b3ApOgorICAgICAgICAgciIiIgorICAgICAgICAgRVhBTVBMRVM6CisgCitAQCAtMjI3MCw3ICsy MjcwLDcgQEAgY2RlZiBjbGFzcyBSaW5nSG9tb21vcnBoaXNtX2Zyb21fYmFzZShSaW5nSG9tb21v cnBoaXNtKToKKyAgICAgICAgIFUgPSByZXByKHNlbGYuX3VuZGVybHlpbmcpLnNwbGl0KCdcbicp CisgICAgICAgICByZXR1cm4gJ0luZHVjZWQgZnJvbSBiYXNlIHJpbmcgYnlcbicrJ1xuJy5qb2lu KFUpCisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KToKKyAgICAgICAgICIiIgorICAgICAgICAg RXZhbHVhdGUgdGhpcyBob21vbW9ycGhpc20gYXQgYGB4YGAuCisgCitAQCAtMjM3NCw3ICsyMzc0 LDcgQEAgY2RlZiBjbGFzcyBSaW5nSG9tb21vcnBoaXNtX2Zyb21fZnJhY3Rpb25fZmllbGQoUmlu Z0hvbW9tb3JwaGlzbSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9tb3Jw aGlzbS5fcmVwcl9kZWZuKCkKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCkg bm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpOgorICAgICAgICAg ciIiIgorICAgICAgICAgUmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGlzIG1vcnBoaXNtIGF0IGBgeGBg LgorIAorQEAgLTIzOTMsNyArMjM5Myw3IEBAIGNkZWYgY2xhc3MgUmluZ0hvbW9tb3JwaGlzbV9m cm9tX2ZyYWN0aW9uX2ZpZWxkKFJpbmdIb21vbW9ycGhpc20pOgorICAgICAgICAgIiIiCisgICAg ICAgICByZXR1cm4gc2VsZi5fbW9ycGhpc20oeC5udW1lcmF0b3IoKSkgLyBzZWxmLl9tb3JwaGlz bSh4LmRlbm9taW5hdG9yKCkpCisgCistICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0 IF9zbG90cykgbm9leGNlcHQ6CisrICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0IF9z bG90cyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEhlbHBlciBmdW5jdGlvbiBmb3IgY29weWlu ZyBhbmQgcGlja2xpbmcuCisgCitAQCAtMjQxMiw3ICsyNDEyLDcgQEAgY2RlZiBjbGFzcyBSaW5n SG9tb21vcnBoaXNtX2Zyb21fZnJhY3Rpb25fZmllbGQoUmluZ0hvbW9tb3JwaGlzbSk6CisgICAg ICAgICBzZWxmLl9tb3JwaGlzbSA9IF9zbG90c1snX21vcnBoaXNtJ10KKyAgICAgICAgIFJpbmdI b21vbW9ycGhpc20uX3VwZGF0ZV9zbG90cyhzZWxmLCBfc2xvdHMpCisgCistICAgIGNkZWYgZGlj dCBfZXh0cmFfc2xvdHMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgZGljdCBfZXh0cmFfc2xv dHMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEhlbHBlciBmdW5jdGlvbiBmb3IgY29w eWluZyBhbmQgcGlja2xpbmcuCisgCitAQCAtMjQ3OSw3ICsyNDc5LDcgQEAgY2RlZiBjbGFzcyBS aW5nSG9tb21vcnBoaXNtX2NvdmVyKFJpbmdIb21vbW9ycGhpc20pOgorICAgICAgICAgIiIiCisg ICAgICAgICBSaW5nSG9tb21vcnBoaXNtLl9faW5pdF9fKHNlbGYsIHBhcmVudCkKKyAKKy0gICAg Y3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1l bnQgX2NhbGxfKHNlbGYsIHgpOgorICAgICAgICAgIiIiCisgICAgICAgICBFdmFsdWF0ZSB0aGlz IGNvdmVyaW5nIGhvbW9tb3JwaGlzbSBhdCBgYHhgYCwgd2hpY2gganVzdCBpbnZvbHZlcworICAg ICAgICAgY29lcmNpbmcgYGB4YGAgaW50byB0aGUgZG9tYWluLCB0aGVuIGNvZG9tYWluLgorQEAg LTI1MzgsNyArMjUzOCw3IEBAIGNkZWYgY2xhc3MgUmluZ0hvbW9tb3JwaGlzbV9jb3ZlcihSaW5n SG9tb21vcnBoaXNtKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuY29kb21h aW4oKS5kZWZpbmluZ19pZGVhbCgpCisgCistICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCBvdGhl ciwgaW50IG9wKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIG90aGVyLCBp bnQgb3ApOgorICAgICAgICAgIiIiCisgICAgICAgICBDb21wYXJlIGBgc2VsZmBgIHRvIGBgb3Ro ZXJgYC4KKyAKK0BAIC0yNjg5LDcgKzI2ODksNyBAQCBjZGVmIGNsYXNzIFJpbmdIb21vbW9ycGhp c21fZnJvbV9xdW90aWVudChSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgICAgIHNlbGYuX2xpZnQg PSBwaS5saWZ0KCkKKyAgICAgICAgIHNlbGYucGhpID0gcGhpCisgCistICAgIGNkZWYgX3VwZGF0 ZV9zbG90cyhzZWxmLCBkaWN0IF9zbG90cykgbm9leGNlcHQ6CisrICAgIGNkZWYgX3VwZGF0ZV9z bG90cyhzZWxmLCBkaWN0IF9zbG90cyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEhlbHBlciBm b3IgY29weWluZyBhbmQgcGlja2xpbmcuCisgCitAQCAtMjcxOCw3ICsyNzE4LDcgQEAgY2RlZiBj bGFzcyBSaW5nSG9tb21vcnBoaXNtX2Zyb21fcXVvdGllbnQoUmluZ0hvbW9tb3JwaGlzbSk6Cisg ICAgICAgICBzZWxmLnBoaSA9IF9zbG90c1sncGhpJ10KKyAgICAgICAgIFJpbmdIb21vbW9ycGhp c20uX3VwZGF0ZV9zbG90cyhzZWxmLCBfc2xvdHMpCisgCistICAgIGNkZWYgZGljdCBfZXh0cmFf c2xvdHMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZik6 CisgICAgICAgICAiIiIKKyAgICAgICAgIEhlbHBlciBmb3IgY29weWluZyBhbmQgcGlja2xpbmcu CisgCitAQCAtMjc4Miw3ICsyNzgyLDcgQEAgY2RlZiBjbGFzcyBSaW5nSG9tb21vcnBoaXNtX2Zy b21fcXVvdGllbnQoUmluZ0hvbW9tb3JwaGlzbSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJl dHVybiBzZWxmLnBoaQorIAorLSAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgb3RoZXIsIGludCBv cCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCBvdGhlciwgaW50IG9wKToK KyAgICAgICAgICIiIgorICAgICAgICAgQ29tcGFyZSBgYHNlbGZgYCB0byBgYG90aGVyYGAuCisg CitAQCAtMjg0Myw3ICsyODQzLDcgQEAgY2RlZiBjbGFzcyBSaW5nSG9tb21vcnBoaXNtX2Zyb21f cXVvdGllbnQoUmluZ0hvbW9tb3JwaGlzbSk6CisgICAgICAgICByZXR1cm4gJ1xuJy5qb2luKCd7 fSB8LS0+IHt9Jy5mb3JtYXQoRC5nZW4oaSksIGlnW2ldKQorICAgICAgICAgICAgICAgICAgICAg ICAgICBmb3IgaSBpbiByYW5nZShELm5nZW5zKCkpKQorIAorLSAgICBjcGRlZiBFbGVtZW50IF9j YWxsXyhzZWxmLCB4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwg eCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEV2YWx1YXRlIHRoaXMgZnVuY3Rpb24gYXQgYGB4 YGAuCisgCitAQCAtMjkwMiw3ICsyOTAyLDcgQEAgY2RlZiBjbGFzcyBGcm9iZW5pdXNFbmRvbW9y cGhpc21fZ2VuZXJpYyhSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgICAgIHNlbGYuX3EgPSBzZWxm Ll9wICoqIHNlbGYuX3Bvd2VyCisgICAgICAgICBSaW5nSG9tb21vcnBoaXNtLl9faW5pdF9fKHNl bGYsIEhvbShkb21haW4sIGRvbWFpbikpCisgCistICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxm LCBkaWN0IF9zbG90cykgbm9leGNlcHQ6CisrICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBk aWN0IF9zbG90cyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFVwZGF0ZSBpbmZvcm1hdGlvbiB3 aXRoIHRoZSBnaXZlbiBzbG90cy4KKyAKK0BAIC0yOTIyLDcgKzI5MjIsNyBAQCBjZGVmIGNsYXNz IEZyb2Jlbml1c0VuZG9tb3JwaGlzbV9nZW5lcmljKFJpbmdIb21vbW9ycGhpc20pOgorICAgICAg ICAgc2VsZi5fcSA9IHNlbGYuX3AgKiogc2VsZi5fcG93ZXIKKyAgICAgICAgIFJpbmdIb21vbW9y cGhpc20uX3VwZGF0ZV9zbG90cyhzZWxmLCBfc2xvdHMpCisgCistICAgIGNkZWYgZGljdCBfZXh0 cmFfc2xvdHMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgZGljdCBfZXh0cmFfc2xvdHMoc2Vs Zik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBhZGRpdGlvbmFsIGluZm9ybWF0aW9u IGFib3V0IHRoaXMgbW9ycGhpc20KKyAgICAgICAgIGFzIGEgZGljdGlvbmFyeS4KK0BAIC0zMDEy LDcgKzMwMTIsNyBAQCBjZGVmIGNsYXNzIEZyb2Jlbml1c0VuZG9tb3JwaGlzbV9nZW5lcmljKFJp bmdIb21vbW9ycGhpc20pOgorICAgICAgICAgICAgIHMgPSAnXFx2ZXJiIkZyb2IiXnslc30nICUg c2VsZi5fcG93ZXIKKyAgICAgICAgIHJldHVybiBzCisgCistICAgIGNwZGVmIEVsZW1lbnQgX2Nh bGxfIChzZWxmLCB4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8gKHNlbGYs IHgpOgorICAgICAgICAgIiIiCisgICAgICAgICBURVNUUzo6CisgCitkaWZmIC0tZ2l0IGEvc3Jj L3NhZ2UvcmluZ3MvbnVtYmVyX2ZpZWxkL251bWJlcl9maWVsZF9iYXNlLnB4ZCBiL3NyYy9zYWdl L3JpbmdzL251bWJlcl9maWVsZC9udW1iZXJfZmllbGRfYmFzZS5weGQKK2luZGV4IGYzNGEyNWQw ZGNiLi5iYTZhOGU5ODE0MyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL251bWJlcl9maWVs ZC9udW1iZXJfZmllbGRfYmFzZS5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL251bWJlcl9maWVs ZC9udW1iZXJfZmllbGRfYmFzZS5weGQKK0BAIC00LDQgKzQsNCBAQCBjZGVmIGNsYXNzIE51bWJl ckZpZWxkKEZpZWxkKToKKyAgICAgY2RlZiBpbnQgX2VtYmVkZGVkX3JlYWwKKyAgICAgY2RlZiBs aXN0IF9nZW5fYXBwcm94CisgCistICAgIGNwZGVmIF9nZXRfZW1iZWRkaW5nX2FwcHJveChzZWxm LCBzaXplX3QgaSkgbm9leGNlcHQKKysgICAgY3BkZWYgX2dldF9lbWJlZGRpbmdfYXBwcm94KHNl bGYsIHNpemVfdCBpKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL251bWJlcl9maWVsZC9u dW1iZXJfZmllbGRfYmFzZS5weXggYi9zcmMvc2FnZS9yaW5ncy9udW1iZXJfZmllbGQvbnVtYmVy X2ZpZWxkX2Jhc2UucHl4CitpbmRleCA1NzMwZjk1N2Y2ZS4uN2Y1NWQ4ODdhMGYgMTAwNjQ0Cist LS0gYS9zcmMvc2FnZS9yaW5ncy9udW1iZXJfZmllbGQvbnVtYmVyX2ZpZWxkX2Jhc2UucHl4Cisr KysgYi9zcmMvc2FnZS9yaW5ncy9udW1iZXJfZmllbGQvbnVtYmVyX2ZpZWxkX2Jhc2UucHl4CitA QCAtNDEzLDcgKzQxMyw3IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmllbGQoRmllbGQpOgorICAgICAg ICAgICAgIHNlbGYuX2dlbl9hcHByb3ggPSBbXQorICAgICAgICAgICAgIHNlbGYuX2VtYmVkZGVk X3JlYWwgPSAxCisgCistICAgIGNwZGVmIF9nZXRfZW1iZWRkaW5nX2FwcHJveChzZWxmLCBzaXpl X3QgaSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9nZXRfZW1iZWRkaW5nX2FwcHJveChzZWxmLCBz aXplX3QgaSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gYW4gaW50ZXJ2YWwgYXBw cm94aW1hdGlvbiBvZiB0aGUgZ2VuZXJhdG9yIG9mIHRoaXMgbnVtYmVyIGZpZWxkLgorIAorZGlm ZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL251bWJlcl9maWVsZC9udW1iZXJfZmllbGRfZWxlbWVu dC5weGQgYi9zcmMvc2FnZS9yaW5ncy9udW1iZXJfZmllbGQvbnVtYmVyX2ZpZWxkX2VsZW1lbnQu cHhkCitpbmRleCBjNzNkMTgwNmZjNy4uZGY3MmU3MDMwMTcgMTAwNjQ0CistLS0gYS9zcmMvc2Fn ZS9yaW5ncy9udW1iZXJfZmllbGQvbnVtYmVyX2ZpZWxkX2VsZW1lbnQucHhkCisrKysgYi9zcmMv c2FnZS9yaW5ncy9udW1iZXJfZmllbGQvbnVtYmVyX2ZpZWxkX2VsZW1lbnQucHhkCitAQCAtMjAs MjMgKzIwLDIzIEBAIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50KE51bWJlckZpZWxkRWxl bWVudF9iYXNlKToKKyAgICAgY2RlZiBvYmplY3QgX19wYXJpCisgICAgIGNkZWYgb2JqZWN0IF9f bWF0cml4CisgCistICAgIGNkZWYgX25ldyhzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfYWRk XyhzZWxmLCBvdGhlcikgbm9leGNlcHQKKy0gICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIpIG5v ZXhjZXB0CisrICAgIGNkZWYgX25ldyhzZWxmKQorKyAgICBjcGRlZiBfYWRkXyhzZWxmLCBvdGhl cikKKysgICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIpCisgCistICAgIGNwZGVmIF9hZGRfKHNl bGYsIG90aGVyKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfbXVsXyhzZWxmLCBvdGhlcikgbm9leGNl cHQKKysgICAgY3BkZWYgX2FkZF8oc2VsZiwgb3RoZXIpCisrICAgIGNwZGVmIF9tdWxfKHNlbGYs IG90aGVyKQorIAorLSAgICBjcGRlZiBfY29weV9mb3JfcGFyZW50KHNlbGYsIFBhcmVudCBwYXJl bnQpIG5vZXhjZXB0CisrICAgIGNwZGVmIF9jb3B5X2Zvcl9wYXJlbnQoc2VsZiwgUGFyZW50IHBh cmVudCkKKyAKKy0gICAgY2RlZiBudW1iZXJfZmllbGQoc2VsZikgbm9leGNlcHQKKysgICAgY2Rl ZiBudW1iZXJfZmllbGQoc2VsZikKKyAKKyAgICAgY2RlZiB2b2lkIF9udGxfY29lZmZfYXNfbXB6 KHNlbGYsIG1wel90IHosIGxvbmcgaSkgbm9leGNlcHQKKyAgICAgY2RlZiB2b2lkIF9udGxfZGVu b21fYXNfbXB6KHNlbGYsIG1wel90IHopIG5vZXhjZXB0CisgCisgICAgIGNkZWYgdm9pZCBfcmVk dWNlX2NfKHNlbGYpIG5vZXhjZXB0CisgCistICAgIGNwZGVmIGxpc3QgX2NvZWZmaWNpZW50cyhz ZWxmKSBub2V4Y2VwdAorKyAgICBjcGRlZiBsaXN0IF9jb2VmZmljaWVudHMoc2VsZikKKyAKKyAg ICAgY3BkZWYgYmludCBpc19yYXRpb25hbChzZWxmKSBub2V4Y2VwdAorICAgICBjcGRlZiBiaW50 IGlzX29uZShzZWxmKSBub2V4Y2VwdAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL251bWJl cl9maWVsZC9udW1iZXJfZmllbGRfZWxlbWVudC5weXggYi9zcmMvc2FnZS9yaW5ncy9udW1iZXJf ZmllbGQvbnVtYmVyX2ZpZWxkX2VsZW1lbnQucHl4CitpbmRleCAyMjEyYTRhYzI1MC4uODQ0YTRl YzMxNjIgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9udW1iZXJfZmllbGQvbnVtYmVyX2Zp ZWxkX2VsZW1lbnQucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9udW1iZXJfZmllbGQvbnVtYmVy X2ZpZWxkX2VsZW1lbnQucHl4CitAQCAtMTcwLDcgKzE3MCw3IEBAIGNkZWYgY2xhc3MgTnVtYmVy RmllbGRFbGVtZW50KE51bWJlckZpZWxkRWxlbWVudF9iYXNlKToKKyAgICAgICAgIHNhZ2U6IGFe MworICAgICAgICAgLWEgLSAxCisgICAgICIiIgorLSAgICBjZGVmIF9uZXcoc2VsZikgbm9leGNl cHQ6CisrICAgIGNkZWYgX25ldyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUXVpY2ts eSBjcmVhdGVzIGEgbmV3IGluaXRpYWxpemVkIE51bWJlckZpZWxkRWxlbWVudCB3aXRoIHRoZSBz YW1lCisgICAgICAgICBwYXJlbnQgYXMgc2VsZi4KK0BAIC0xODIsNyArMTgyLDcgQEAgY2RlZiBj bGFzcyBOdW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmllbGRFbGVtZW50X2Jhc2UpOgorICAgICAg ICAgeC5fZmxkX2Rlbm9taW5hdG9yID0gc2VsZi5fZmxkX2Rlbm9taW5hdG9yCisgICAgICAgICBy ZXR1cm4geAorIAorLSAgICBjZGVmIG51bWJlcl9maWVsZChzZWxmKSBub2V4Y2VwdDoKKysgICAg Y2RlZiBudW1iZXJfZmllbGQoc2VsZik6CisgICAgICAgICByIiIiCisgCisgICAgICAgICBSZXR1 cm4gdGhlIG51bWJlciBmaWVsZCBvZiBzZWxmLiBPbmx5IGFjY2Vzc2libGUgZnJvbSBDeXRob24u CitAQCAtNzgzLDcgKzc4Myw3IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50KE51bWJl ckZpZWxkRWxlbWVudF9iYXNlKToKKyAgICAgICAgICAgICByZXR1cm4gUVEuemVybygpCisgICAg ICAgICByZXR1cm4gY29lZmZzW25dCisgCistICAgIGNwZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdo dCwgaW50IG9wKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3JpY2hjbXBfKGxlZnQsIHJpZ2h0LCBp bnQgb3ApOgorICAgICAgICAgciIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTI0NDMs NyArMjQ0Myw3IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50KE51bWJlckZpZWxkRWxl bWVudF9iYXNlKToKKyAgICAgICAgIHNlbGYuX251bWVyYXRvciA9IHQyCisgICAgICAgICBzZWxm Ll9kZW5vbWluYXRvciA9IHQxCisgCistICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgciIiIgorICAg ICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTI0NjksNyArMjQ2OSw3IEBAIGNkZWYgY2xhc3MgTnVt YmVyRmllbGRFbGVtZW50KE51bWJlckZpZWxkRWxlbWVudF9iYXNlKToKKyAgICAgICAgIHguX3Jl ZHVjZV9jXygpCisgICAgICAgICByZXR1cm4geAorIAorLSAgICBjcGRlZiBfc3ViXyhzZWxmLCBy aWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAg IHIiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0yNDk0LDcgKzI0OTQsNyBAQCBjZGVm IGNsYXNzIE51bWJlckZpZWxkRWxlbWVudChOdW1iZXJGaWVsZEVsZW1lbnRfYmFzZSk6CisgICAg ICAgICB4Ll9yZWR1Y2VfY18oKQorICAgICAgICAgcmV0dXJuIHgKKyAKKy0gICAgY3BkZWYgX211 bF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbXVsXyhzZWxmLCByaWdodCk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybnMgdGhlIHByb2R1Y3Qgb2Ygc2VsZiBhbmQg b3RoZXIgYXMgZWxlbWVudHMgb2YgYSBudW1iZXIKKyAgICAgICAgIGZpZWxkLgorQEAgLTI1NDIs NyArMjU0Miw3IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50KE51bWJlckZpZWxkRWxl bWVudF9iYXNlKToKKyAgICAgICAgICMgYnV0IGFzeW1wdG90aWNhbGx5IGZhc3QgcG9seSBtdWx0 aXBsaWNhdGlvbiBtZWFucyBpdCdzCisgICAgICAgICAjIGFjdHVhbGx5IGZhc3RlciB0byAqbm90 KiBidWlsZCBhIHRhYmxlIT8hCisgCistICAgIGNwZGVmIF9kaXZfKHNlbGYsIG90aGVyKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgX2Rpdl8oc2VsZiwgb3RoZXIpOgorICAgICAgICAgIiIiCisgICAg ICAgICBSZXR1cm5zIHRoZSBxdW90aWVudCBvZiBzZWxmIGFuZCBvdGhlciBhcyBlbGVtZW50cyBv ZiBhIG51bWJlcgorICAgICAgICAgZmllbGQuCitAQCAtMjY1NCw3ICsyNjU0LDcgQEAgY2RlZiBj bGFzcyBOdW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmllbGRFbGVtZW50X2Jhc2UpOgorICAgICAg ICAgIiIiCisgICAgICAgICByZXR1cm4gbm90IElzWmVyb19aWlgoc2VsZi5fbnVtZXJhdG9yKQor IAorLSAgICBjcGRlZiBfbmVnXyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX25lZ18oc2Vs Zik6CisgICAgICAgICByIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMjY2OSw3ICsy NjY5LDcgQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmllbGRFbGVtZW50 X2Jhc2UpOgorICAgICAgICAgeC5fZGVub21pbmF0b3IgPSBzZWxmLl9kZW5vbWluYXRvcgorICAg ICAgICAgcmV0dXJuIHgKKyAKKy0gICAgY3BkZWYgX2NvcHlfZm9yX3BhcmVudChzZWxmLCBQYXJl bnQgcGFyZW50KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2NvcHlfZm9yX3BhcmVudChzZWxmLCBQ YXJlbnQgcGFyZW50KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBhIGNvcHkgb2Yg YGBzZWxmYGAgd2l0aCB0aGUgcGFyZW50IHJlcGxhY2VkIGJ5IGBgcGFyZW50YGAuCisgCitAQCAt MzIzMiw3ICszMjMyLDcgQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1lbnQoTnVtYmVyRmll bGRFbGVtZW50X2Jhc2UpOgorIAorICAgICAgICAgcmV0dXJuIGgKKyAKKy0gICAgY3BkZWYgbGlz dCBfY29lZmZpY2llbnRzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBsaXN0IF9jb2VmZmlj aWVudHMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgY29lZmZpY2ll bnRzIG9mIHRoZSB1bmRlcmx5aW5nIHBvbHlub21pYWwgY29ycmVzcG9uZGluZworICAgICAgICAg dG8gdGhpcyBudW1iZXIgZmllbGQgZWxlbWVudC4KK0BAIC01MjQ3LDcgKzUyNDcsNyBAQCBjZGVm IGNsYXNzIE9yZGVyRWxlbWVudF9hYnNvbHV0ZShOdW1iZXJGaWVsZEVsZW1lbnRfYWJzb2x1dGUp OgorICAgICAgICAgc2VsZi5fbnVtYmVyX2ZpZWxkID0gSworICAgICAgICAgKDxFbGVtZW50PnNl bGYpLl9wYXJlbnQgPSBvcmRlcgorIAorLSAgICBjZGVmIF9uZXcoc2VsZikgbm9leGNlcHQ6Cisr ICAgIGNkZWYgX25ldyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUXVpY2tseSBjcmVh dGVzIGEgbmV3IGluaXRpYWxpemVkIE51bWJlckZpZWxkRWxlbWVudCB3aXRoIHRoZSBzYW1lCisg ICAgICAgICBwYXJlbnQgYXMgYGBzZWxmYGAuCitAQCAtNTI2OSw3ICs1MjY5LDcgQEAgY2RlZiBj bGFzcyBPcmRlckVsZW1lbnRfYWJzb2x1dGUoTnVtYmVyRmllbGRFbGVtZW50X2Fic29sdXRlKToK KyAgICAgICAgIHguX2ZsZF9kZW5vbWluYXRvciA9IHNlbGYuX2ZsZF9kZW5vbWluYXRvcgorICAg ICAgICAgcmV0dXJuIHgKKyAKKy0gICAgY2RlZiBudW1iZXJfZmllbGQoc2VsZikgbm9leGNlcHQ6 CisrICAgIGNkZWYgbnVtYmVyX2ZpZWxkKHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAg UmV0dXJuIHRoZSBudW1iZXIgZmllbGQgb2YgYGBzZWxmYGAuIE9ubHkgYWNjZXNzaWJsZSBmcm9t IEN5dGhvbi4KKyAKK0BAIC01MzYzLDEwICs1MzYzLDEwIEBAIGNkZWYgY2xhc3MgT3JkZXJFbGVt ZW50X3JlbGF0aXZlKE51bWJlckZpZWxkRWxlbWVudF9yZWxhdGl2ZSk6CisgICAgICAgICAoPEVs ZW1lbnQ+c2VsZikuX3BhcmVudCA9IG9yZGVyCisgICAgICAgICBzZWxmLl9udW1iZXJfZmllbGQg PSBLCisgCistICAgIGNkZWYgbnVtYmVyX2ZpZWxkKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVm IG51bWJlcl9maWVsZChzZWxmKToKKyAgICAgICAgIHJldHVybiBzZWxmLl9udW1iZXJfZmllbGQK KyAKKy0gICAgY2RlZiBfbmV3KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9uZXcoc2VsZik6 CisgICAgICAgICAiIiIKKyAgICAgICAgIFF1aWNrbHkgY3JlYXRlcyBhIG5ldyBpbml0aWFsaXpl ZCBOdW1iZXJGaWVsZEVsZW1lbnQgd2l0aCB0aGUgc2FtZQorICAgICAgICAgcGFyZW50IGFzIHNl bGYuCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvbnVtYmVyX2ZpZWxkL251bWJlcl9maWVs ZF9lbGVtZW50X3F1YWRyYXRpYy5weGQgYi9zcmMvc2FnZS9yaW5ncy9udW1iZXJfZmllbGQvbnVt YmVyX2ZpZWxkX2VsZW1lbnRfcXVhZHJhdGljLnB4ZAoraW5kZXggYjlmYmIyOTRhNTQuLmVjMzIy NDVmM2NiIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvbnVtYmVyX2ZpZWxkL251bWJlcl9m aWVsZF9lbGVtZW50X3F1YWRyYXRpYy5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL251bWJlcl9m aWVsZC9udW1iZXJfZmllbGRfZWxlbWVudF9xdWFkcmF0aWMucHhkCitAQCAtMTAsMjIgKzEwLDIy IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50X3F1YWRyYXRpYyhOdW1iZXJGaWVsZEVs ZW1lbnRfYWJzb2x1dGUpOgorICAgICBjZGVmIG1wel90IGEsIGIsIGRlbm9tCisgICAgIGNkZWYg SW50ZWdlciBECisgICAgIGNkZWYgYmludCBzdGFuZGFyZF9lbWJlZGRpbmcKKy0gICAgY3BkZWYg TnVtYmVyRmllbGRFbGVtZW50IGdhbG9pc19jb25qdWdhdGUoc2VsZikgbm9leGNlcHQKKysgICAg Y3BkZWYgTnVtYmVyRmllbGRFbGVtZW50IGdhbG9pc19jb25qdWdhdGUoc2VsZikKKyAKKy0gICAg Y3BkZWYgbGlzdCBfY29lZmZpY2llbnRzKHNlbGYpIG5vZXhjZXB0CisrICAgIGNwZGVmIGxpc3Qg X2NvZWZmaWNpZW50cyhzZWxmKQorIAorICAgICBjZGVmIGludCBfcmFuZG9taXplKHNlbGYsIG51 bV9ib3VuZCwgZGVuX2JvdW5kLCBkaXN0cmlidXRpb24pIGV4Y2VwdCAtMQorICAgICBjZGVmIGlu dCBhcmJfc2V0X3JlYWwoc2VsZiwgYXJiX3QgeCwgbG9uZyBwcmVjKSBleGNlcHQgLTEKKyAgICAg Y2RlZiB2b2lkIGFyYl9zZXRfaW1hZyhzZWxmLCBhcmJfdCB4LCBsb25nIHByZWMpIG5vZXhjZXB0 CisgCistICAgIGNwZGVmIHR1cGxlIHBhcnRzKHNlbGYpIG5vZXhjZXB0CisrICAgIGNwZGVmIHR1 cGxlIHBhcnRzKHNlbGYpCisgCisgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1lbnRfcXVhZHJh dGljX3NxcnQoTnVtYmVyRmllbGRFbGVtZW50X3F1YWRyYXRpYyk6CisgICAgIHBhc3MKKyAKKyBj ZGVmIGNsYXNzIE51bWJlckZpZWxkRWxlbWVudF9nYXVzc2lhbihOdW1iZXJGaWVsZEVsZW1lbnRf cXVhZHJhdGljX3NxcnQpOgorLSAgICBjcGRlZiByZWFsX3BhcnQoc2VsZikgbm9leGNlcHQKKy0g ICAgY3BkZWYgaW1hZ19wYXJ0KHNlbGYpIG5vZXhjZXB0CisrICAgIGNwZGVmIHJlYWxfcGFydChz ZWxmKQorKyAgICBjcGRlZiBpbWFnX3BhcnQoc2VsZikKKyAKKyBjZGVmIGNsYXNzIE9yZGVyRWxl bWVudF9xdWFkcmF0aWMoTnVtYmVyRmllbGRFbGVtZW50X3F1YWRyYXRpYyk6CisgICAgIHBhc3MK K2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9udW1iZXJfZmllbGQvbnVtYmVyX2ZpZWxkX2Vs ZW1lbnRfcXVhZHJhdGljLnB5eCBiL3NyYy9zYWdlL3JpbmdzL251bWJlcl9maWVsZC9udW1iZXJf ZmllbGRfZWxlbWVudF9xdWFkcmF0aWMucHl4CitpbmRleCBjNmJlYjVlNmFhOC4uZmQwNGNiZjk5 Y2MgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9udW1iZXJfZmllbGQvbnVtYmVyX2ZpZWxk X2VsZW1lbnRfcXVhZHJhdGljLnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvbnVtYmVyX2ZpZWxk L251bWJlcl9maWVsZF9lbGVtZW50X3F1YWRyYXRpYy5weXgKK0BAIC0yMjUsNyArMjI1LDcgQEAg Y2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1lbnRfcXVhZHJhdGljKE51bWJlckZpZWxkRWxlbWVu dF9hYnNvbHV0ZSk6CisgICAgICAgICAjIF9fY21wX18sIHNpZ24sIHJlYWwsIGltYWcsIGZsb29y LCBjZWlsLCAuLi4KKyAgICAgICAgIHNlbGYuc3RhbmRhcmRfZW1iZWRkaW5nID0gcGFyZW50Ll9z dGFuZGFyZF9lbWJlZGRpbmcKKyAKKy0gICAgY2RlZiBfbmV3KHNlbGYpIG5vZXhjZXB0OgorKyAg ICBjZGVmIF9uZXcoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFF1aWNrbHkgY3JlYXRl cyBhIG5ldyBpbml0aWFsaXplZCBOdW1iZXJGaWVsZEVsZW1lbnRfcXVhZHJhdGljIHdpdGggdGhl CisgICAgICAgICBzYW1lIHBhcmVudCBhcyBzZWxmLgorQEAgLTI0Myw3ICsyNDMsNyBAQCBjZGVm IGNsYXNzIE51bWJlckZpZWxkRWxlbWVudF9xdWFkcmF0aWMoTnVtYmVyRmllbGRFbGVtZW50X2Fi c29sdXRlKToKKyAgICAgICAgIHguRCA9IHNlbGYuRAorICAgICAgICAgcmV0dXJuIHgKKyAKKy0g ICAgY2RlZiBudW1iZXJfZmllbGQoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgbnVtYmVyX2Zp ZWxkKHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBudW1iZXIgZmll bGQgdG8gd2hpY2ggdGhpcyBlbGVtZW50IGJlbG9uZ3MuIFNpbmNlIHRoaXMgaXMgYQorICAgICAg ICAgQ3l0aG9uIGNkZWYgbWV0aG9kLCBpdCBpcyBub3QgZGlyZWN0bHkgYWNjZXNzaWJsZSBieSB0 aGUgdXNlciwgYnV0IHRoZQorQEAgLTM1MCw3ICszNTAsNyBAQCBjZGVmIGNsYXNzIE51bWJlckZp ZWxkRWxlbWVudF9xdWFkcmF0aWMoTnVtYmVyRmllbGRFbGVtZW50X2Fic29sdXRlKToKKyAgICAg ICAgICAgICBtcHpfc2V0KGRlbm9tLnZhbHVlLCBzZWxmLmRlbm9tKQorICAgICAgICAgICAgIHJl dHVybiAibmV3IFF1YWRyYXRpY0V4dGVuc2lvbih7fSwge30sIHt9KSIuZm9ybWF0KGEvZGVub20s IGIvZGVub20sIHNlbGYuRCkKKyAKKy0gICAgY3BkZWYgX2NvcHlfZm9yX3BhcmVudChzZWxmLCBQ YXJlbnQgcGFyZW50KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2NvcHlfZm9yX3BhcmVudChzZWxm LCBQYXJlbnQgcGFyZW50KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBhIGNvcHkg b2YgYGBzZWxmYGAgd2l0aCB0aGUgcGFyZW50IHJlcGxhY2VkIGJ5IGBgcGFyZW50YGAuCisgCitA QCAtODkyLDcgKzg5Miw3IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50X3F1YWRyYXRp YyhOdW1iZXJGaWVsZEVsZW1lbnRfYWJzb2x1dGUpOgorICAgICAgICAgc2VsZi5hcmJfc2V0X2lt YWcoYWNiX2ltYWdyZWYocmVzLnZhbHVlKSwgUi5fcHJlYykKKyAgICAgICAgIHJldHVybiByZXMK KyAKKy0gICAgY3BkZWYgdHVwbGUgcGFydHMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIHR1 cGxlIHBhcnRzKHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIGEgcGFpciBv ZiByYXRpb25hbHMgYGFgIGFuZCBgYmAgc3VjaCB0aGF0IGBgc2VsZmBgIGA9CisgICAgICAgICBh K2Jcc3FydHtEfWAuCitAQCAtMTAzOCw3ICsxMDM4LDcgQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVs ZEVsZW1lbnRfcXVhZHJhdGljKE51bWJlckZpZWxkRWxlbWVudF9hYnNvbHV0ZSk6CisgICAgICAg ICAgICAgcmV0dXJuIHRlc3QKKyAgICAgICAgIHJldHVybiAtdGVzdAorIAorLSAgICBjcGRlZiBf cmljaGNtcF8obGVmdCwgX3JpZ2h0LCBpbnQgb3ApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmlj aGNtcF8obGVmdCwgX3JpZ2h0LCBpbnQgb3ApOgorICAgICAgICAgciIiIgorICAgICAgICAgUmlj aCBjb21wYXJpc29uIG9mIGVsZW1lbnRzLgorIAorQEAgLTEzMTgsNyArMTMxOCw3IEBAIGNkZWYg Y2xhc3MgTnVtYmVyRmllbGRFbGVtZW50X3F1YWRyYXRpYyhOdW1iZXJGaWVsZEVsZW1lbnRfYWJz b2x1dGUpOgorICAgICAgICAgbXB6X2NsZWFyKGdjZCkKKyAKKyAKKy0gICAgY3BkZWYgX2FkZF8o c2VsZiwgb3RoZXJfbSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIG90aGVyX20p OgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMTM3Niw3ICsxMzc2 LDcgQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1lbnRfcXVhZHJhdGljKE51bWJlckZpZWxk RWxlbWVudF9hYnNvbHV0ZSk6CisgICAgICAgICByZXR1cm4gcmVzCisgCisgCistICAgIGNwZGVm IF9zdWJfKHNlbGYsIG90aGVyX20pIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc3ViXyhzZWxmLCBv dGhlcl9tKToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTE0NDQs NyArMTQ0NCw3IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50X3F1YWRyYXRpYyhOdW1i ZXJGaWVsZEVsZW1lbnRfYWJzb2x1dGUpOgorICAgICAgICAgbXB6X3NldChyZXMuZGVub20sIHNl bGYuZGVub20pCisgICAgICAgICByZXR1cm4gcmVzCisgCistICAgIGNwZGVmIF9tdWxfKHNlbGYs IG90aGVyX20pIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbXVsXyhzZWxmLCBvdGhlcl9tKToKKyAg ICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTE1MTIsNyArMTUxMiw3IEBA IGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50X3F1YWRyYXRpYyhOdW1iZXJGaWVsZEVsZW1l bnRfYWJzb2x1dGUpOgorICAgICAgICAgcmVzLl9yZWR1Y2VfY18oKQorICAgICAgICAgcmV0dXJu IHJlcworIAorLSAgICBjcGRlZiBfcm11bF8oc2VsZiwgRWxlbWVudCBfYykgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIF9ybXVsXyhzZWxmLCBFbGVtZW50IF9jKToKKyAgICAgICAgICIiIgorICAgICAg ICAgRVhBTVBMRVM6OgorIAorQEAgLTE1MjksNyArMTUyOSw3IEBAIGNkZWYgY2xhc3MgTnVtYmVy RmllbGRFbGVtZW50X3F1YWRyYXRpYyhOdW1iZXJGaWVsZEVsZW1lbnRfYWJzb2x1dGUpOgorICAg ICAgICAgcmVzLl9yZWR1Y2VfY18oKQorICAgICAgICAgcmV0dXJuIHJlcworIAorLSAgICBjcGRl ZiBfbG11bF8oc2VsZiwgRWxlbWVudCBfYykgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9sbXVsXyhz ZWxmLCBFbGVtZW50IF9jKToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAor QEAgLTE2MTMsNyArMTYxMyw3IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbGVtZW50X3F1YWRy YXRpYyhOdW1iZXJGaWVsZEVsZW1lbnRfYWJzb2x1dGUpOgorICAgICAgICAgcmVzLl9yZWR1Y2Vf Y18oKQorICAgICAgICAgcmV0dXJuIHJlcworIAorLSAgICBjcGRlZiBOdW1iZXJGaWVsZEVsZW1l bnQgZ2Fsb2lzX2Nvbmp1Z2F0ZShzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgTnVtYmVyRmll bGRFbGVtZW50IGdhbG9pc19jb25qdWdhdGUoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAg IFJldHVybiB0aGUgaW1hZ2Ugb2YgdGhpcyBlbGVtZW50IHVuZGVyIGFjdGlvbiBvZiB0aGUgbm9u dHJpdmlhbAorICAgICAgICAgZWxlbWVudCBvZiB0aGUgR2Fsb2lzIGdyb3VwIG9mIHRoaXMgZmll bGQuCitAQCAtMTkzMSw3ICsxOTMxLDcgQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1lbnRf cXVhZHJhdGljKE51bWJlckZpZWxkRWxlbWVudF9hYnNvbHV0ZSk6CisgICAgICAgICAgICAgICAg IG1wel9uZWcocS5iLCBzZWxmLmIpCisgICAgICAgICAgICAgcmV0dXJuIHEKKyAKKy0gICAgY3Bk ZWYgbGlzdCBfY29lZmZpY2llbnRzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBsaXN0IF9j b2VmZmljaWVudHMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAK K0BAIC0yNDU1LDcgKzI0NTUsNyBAQCBjZGVmIGNsYXNzIE51bWJlckZpZWxkRWxlbWVudF9xdWFk cmF0aWNfc3FydChOdW1iZXJGaWVsZEVsZW1lbnRfcXVhZHJhdGljKToKKyAgICAgICAgIG1wel9z ZXQoZGVub20udmFsdWUsIHNlbGYuZGVub20pCisgICAgICAgICByZXR1cm4gZGVub20KKyAKKy0g ICAgY3BkZWYgbGlzdCBfY29lZmZpY2llbnRzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBs aXN0IF9jb2VmZmljaWVudHMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVT OjoKKyAKK0BAIC0yNTk1LDcgKzI1OTUsNyBAQCBjZGVmIGNsYXNzIE51bWJlckZpZWxkRWxlbWVu dF9nYXVzc2lhbihOdW1iZXJGaWVsZEVsZW1lbnRfcXVhZHJhdGljX3NxcnQpOgorICAgICAgICAg ICAgICAgICByZXR1cm4gcXFiYXIuQWxnZWJyYWljUmVhbChjb2VmZnNbMF0pCisgICAgICAgICBy YWlzZSBWYWx1ZUVycm9yKGYidW5hYmxlIHRvIGNvbnZlcnQge3NlbGYhcn0gdG8gYW4gZWxlbWVu dCBvZiB7cGFyZW50IXJ9IikKKyAKKy0gICAgY3BkZWYgcmVhbF9wYXJ0KHNlbGYpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiByZWFsX3BhcnQoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBS ZWFsIHBhcnQuCisgCitAQCAtMjYxNyw3ICsyNjE3LDcgQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVs ZEVsZW1lbnRfZ2F1c3NpYW4oTnVtYmVyRmllbGRFbGVtZW50X3F1YWRyYXRpY19zcXJ0KToKKyAK KyAgICAgcmVhbCA9IHJlYWxfcGFydAorIAorLSAgICBjcGRlZiBpbWFnX3BhcnQoc2VsZikgbm9l eGNlcHQ6CisrICAgIGNwZGVmIGltYWdfcGFydChzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAg ICAgIEltYWdpbmFyeSBwYXJ0LgorIAorQEAgLTI3ODIsMTQgKzI3ODIsMTQgQEAgY2RlZiBjbGFz cyBPcmRlckVsZW1lbnRfcXVhZHJhdGljKE51bWJlckZpZWxkRWxlbWVudF9xdWFkcmF0aWMpOgor ICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZi5jaGFycG9seSgpCisgCist ICAgIGNkZWYgbnVtYmVyX2ZpZWxkKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIG51bWJlcl9m aWVsZChzZWxmKToKKyAgICAgICAgICMgU28gZmV3IGZ1bmN0aW9ucyBhY3R1YWxseSB1c2Ugc2Vs Zi5udW1iZXJfZmllbGQoKSBmb3IgcXVhZHJhdGljIGVsZW1lbnRzLCBzbworICAgICAgICAgIyBp dCBpcyBiZXR0ZXIgKm5vdCogdG8gcmV0dXJuIGEgY2FjaGVkIHZhbHVlIChzaW5jZSB0aGUgY2Fs bCB0byBfcGFyZW50Lm51bWJlcl9maWVsZCgpKQorICAgICAgICAgIyBpcyBleHBlbnNpdmUuCisg ICAgICAgICByZXR1cm4gc2VsZi5fcGFyZW50Lm51bWJlcl9maWVsZCgpCisgCisgICAgICMgV2Ug bXVzdCBvdmVycmlkZSB0aGVzZSBzaW5jZSB0aGUgYmFzZXJpbmcgaXMgbm93IFpaIG5vdCBRUS4K Ky0gICAgY3BkZWYgX3JtdWxfKHNlbGYsIEVsZW1lbnQgX2MpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBfcm11bF8oc2VsZiwgRWxlbWVudCBfYyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1Q TEVTOjoKKyAKK0BAIC0yODA5LDcgKzI4MDksNyBAQCBjZGVmIGNsYXNzIE9yZGVyRWxlbWVudF9x dWFkcmF0aWMoTnVtYmVyRmllbGRFbGVtZW50X3F1YWRyYXRpYyk6CisgICAgICAgICByZXMuX3Jl ZHVjZV9jXygpCisgICAgICAgICByZXR1cm4gcmVzCisgCistICAgIGNwZGVmIF9sbXVsXyhzZWxm LCBFbGVtZW50IF9jKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQg X2MpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMjg3OCw3ICsy ODc4LDcgQEAgY2RlZiBjbGFzcyBPcmRlckVsZW1lbnRfcXVhZHJhdGljKE51bWJlckZpZWxkRWxl bWVudF9xdWFkcmF0aWMpOgorICAgICAgICAgUiA9IHNlbGYucGFyZW50KCkKKyAgICAgICAgIHJl dHVybiBSKF9pbnZlcnNlX21vZF9nZW5lcmljKHNlbGYsIEkpKQorIAorLSAgICBjcGRlZiBsaXN0 IF9jb2VmZmljaWVudHMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGxpc3QgX2NvZWZmaWNp ZW50cyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTI5 ODMsNyArMjk4Myw3IEBAIGNkZWYgY2xhc3MgWl90b19xdWFkcmF0aWNfZmllbGRfZWxlbWVudChN b3JwaGlzbSk6CisgICAgICAgICBpbXBvcnQgc2FnZS5jYXRlZ29yaWVzLmhvbXNldAorICAgICAg ICAgTW9ycGhpc20uX19pbml0X18oc2VsZiwgc2FnZS5jYXRlZ29yaWVzLmhvbXNldC5Ib20oWlos IEspKQorIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCk6CisgICAgICAgICByIiIiCisgICAgICAg ICBFdmFsdWF0ZSBhdCBhbiBpbnRlZ2VyIGBgeGBgLgorIAorQEAgLTMwODUsNyArMzA4NSw3IEBA IGNkZWYgY2xhc3MgUV90b19xdWFkcmF0aWNfZmllbGRfZWxlbWVudChNb3JwaGlzbSk6CisgICAg ICAgICBpbXBvcnQgc2FnZS5jYXRlZ29yaWVzLmhvbXNldAorICAgICAgICAgTW9ycGhpc20uX19p bml0X18oc2VsZiwgc2FnZS5jYXRlZ29yaWVzLmhvbXNldC5Ib20oUVEsIEspKQorIAorLSAgICBj cGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVu dCBfY2FsbF8oc2VsZiwgeCk6CisgICAgICAgICByIiIiCisgICAgICAgICBFdmFsdWF0ZSBhdCBh IHJhdGlvbmFsIGBgeGBgLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL251bWJlcl9m aWVsZC9udW1iZXJfZmllbGRfbW9ycGhpc21zLnB5eCBiL3NyYy9zYWdlL3JpbmdzL251bWJlcl9m aWVsZC9udW1iZXJfZmllbGRfbW9ycGhpc21zLnB5eAoraW5kZXggOGExODY1YzNjZWIuLjk0YTkx N2I1MzIyIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvbnVtYmVyX2ZpZWxkL251bWJlcl9m aWVsZF9tb3JwaGlzbXMucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9udW1iZXJfZmllbGQvbnVt YmVyX2ZpZWxkX21vcnBoaXNtcy5weXgKK0BAIC02Miw3ICs2Miw3IEBAIGNkZWYgY2xhc3MgTnVt YmVyRmllbGRFbWJlZGRpbmcoTW9ycGhpc20pOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAg ICBzZWxmLl9nZW5faW1hZ2UgPSBSKGdlbl9lbWJlZGRpbmcpCisgCistICAgIGNkZWYgZGljdCBf ZXh0cmFfc2xvdHMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgZGljdCBfZXh0cmFfc2xvdHMo c2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEEgaGVscGVyIGZvciBwaWNrbGluZyBhbmQg Y29weWluZy4KKyAKK0BAIC05Myw3ICs5Myw3IEBAIGNkZWYgY2xhc3MgTnVtYmVyRmllbGRFbWJl ZGRpbmcoTW9ycGhpc20pOgorICAgICAgICAgc2xvdHNbJ19nZW5faW1hZ2UnXSA9IHNlbGYuX2dl bl9pbWFnZQorICAgICAgICAgcmV0dXJuIHNsb3RzCisgCistICAgIGNkZWYgX3VwZGF0ZV9zbG90 cyhzZWxmLCBkaWN0IF9zbG90cykgbm9leGNlcHQ6CisrICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhz ZWxmLCBkaWN0IF9zbG90cyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEEgaGVscGVyIGZvciB1 bnBpY2tsaW5nIGFuZCBjb3B5aW5nLgorIAorQEAgLTExOSw3ICsxMTksNyBAQCBjZGVmIGNsYXNz IE51bWJlckZpZWxkRW1iZWRkaW5nKE1vcnBoaXNtKToKKyAgICAgICAgIE1vcnBoaXNtLl91cGRh dGVfc2xvdHMoc2VsZiwgX3Nsb3RzKQorICAgICAgICAgc2VsZi5fZ2VuX2ltYWdlID0gX3Nsb3Rz WydfZ2VuX2ltYWdlJ10KKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpOgorICAgICAgICAgIiIi CisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMzIyLDcgKzMyMiw3IEBAIGNkZWYgY2xhc3Mg RW1iZWRkZWROdW1iZXJGaWVsZENvbnZlcnNpb24oTWFwKToKKyAgICAgICAgIHNlbGYuYW1iaWVu dF9maWVsZCA9IGFtYmllbnRfZmllbGQKKyAgICAgICAgIE1hcC5fX2luaXRfXyhzZWxmLCBLLCBM KQorIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVY QU1QTEVTOjoKKyAKK0BAIC0zNDQsNyArMzQ0LDcgQEAgY2RlZiBjbGFzcyBFbWJlZGRlZE51bWJl ckZpZWxkQ29udmVyc2lvbihNYXApOgorICAgICAgICAgcmV0dXJuIGdlbl9pbWFnZQorIAorIAor LWNwZGVmIG1hdGNoaW5nX3Jvb3QocG9seSwgdGFyZ2V0LCBhbWJpZW50X2ZpZWxkPU5vbmUsIG1h cmdpbj0xLCBtYXhfcHJlYz1Ob25lKSBub2V4Y2VwdDoKKytjcGRlZiBtYXRjaGluZ19yb290KHBv bHksIHRhcmdldCwgYW1iaWVudF9maWVsZD1Ob25lLCBtYXJnaW49MSwgbWF4X3ByZWM9Tm9uZSk6 CisgICAgICIiIgorICAgICBHaXZlbiBhIHBvbHlub21pYWwgYW5kIGEgYGB0YXJnZXRgYCwgY2hv b3NlIHRoZSByb290IHRoYXQKKyAgICAgYGB0YXJnZXRgYCBiZXN0IGFwcHJveGltYXRlcyBhcyBj b21wYXJlZCBpbiBgYGFtYmllbnRfZmllbGRgYC4KK0BAIC00MDcsNyArNDA3LDcgQEAgY3BkZWYg bWF0Y2hpbmdfcm9vdChwb2x5LCB0YXJnZXQsIGFtYmllbnRfZmllbGQ9Tm9uZSwgbWFyZ2luPTEs IG1heF9wcmVjPU5vbmUpIG4KKyAgICAgICAgICAgICBhbWJpZW50X2ZpZWxkID0gYW1iaWVudF9m aWVsZC50b19wcmVjKGFtYmllbnRfZmllbGQucHJlYygpICogMikKKyAKKyAKKy1jcGRlZiBjbG9z ZXN0KHRhcmdldCwgdmFsdWVzLCBtYXJnaW49MSkgbm9leGNlcHQ6CisrY3BkZWYgY2xvc2VzdCh0 YXJnZXQsIHZhbHVlcywgbWFyZ2luPTEpOgorICAgICAiIiIKKyAgICAgVGhpcyBpcyBhIHV0aWxp dHkgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRoZSBpdGVtIGluIGBgdmFsdWVzYGAgY2xvc2VzdCB0 bworICAgICB0YXJnZXQgKHdpdGggcmVzcGVjdCB0byB0aGUgYGBhYnNgYCBmdW5jdGlvbikuIElm IGBgbWFyZ2luYGAgaXMgZ3JlYXRlcgorQEAgLTYyNiw3ICs2MjYsNyBAQCBjZGVmIGNsYXNzIEN5 Y2xvdG9taWNGaWVsZEVtYmVkZGluZyhOdW1iZXJGaWVsZEVtYmVkZGluZyk6CisgICAgICAgICBz ZWxmLnJhdGlvID0gTC5fbG9nX2dlbihLLmNvZXJjZV9lbWJlZGRpbmcoKShLLmdlbigpKSkKKyAg ICAgICAgIHNlbGYuX2dlbl9pbWFnZSA9IEwuZ2VuKCkgKiogc2VsZi5yYXRpbworIAorLSAgICBj ZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIGRpY3QgX2V4 dHJhX3Nsb3RzKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBBIGhlbHBlciBmb3IgcGlj a2xpbmcgYW5kIGNvcHlpbmcuCisgCitAQCAtNjU3LDcgKzY1Nyw3IEBAIGNkZWYgY2xhc3MgQ3lj bG90b21pY0ZpZWxkRW1iZWRkaW5nKE51bWJlckZpZWxkRW1iZWRkaW5nKToKKyAgICAgICAgIHNs b3RzWydyYXRpbyddID0gc2VsZi5yYXRpbworICAgICAgICAgcmV0dXJuIHNsb3RzCisgCistICAg IGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0IF9zbG90cykgbm9leGNlcHQ6CisrICAgIGNk ZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0IF9zbG90cyk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIEEgaGVscGVyIGZvciB1bnBpY2tsaW5nIGFuZCBjb3B5aW5nLgorIAorQEAgLTY4NCw3ICs2 ODQsNyBAQCBjZGVmIGNsYXNzIEN5Y2xvdG9taWNGaWVsZEVtYmVkZGluZyhOdW1iZXJGaWVsZEVt YmVkZGluZyk6CisgICAgICAgICBzZWxmLl9nZW5faW1hZ2UgPSBfc2xvdHNbJ19nZW5faW1hZ2Un XQorICAgICAgICAgc2VsZi5yYXRpbyA9IF9zbG90c1sncmF0aW8nXQorIAorLSAgICBjcGRlZiBF bGVtZW50IF9jYWxsXyhzZWxmLCB4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2Fs bF8oc2VsZiwgeCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC03 NjUsNyArNzY1LDcgQEAgY2RlZiBjbGFzcyBDeWNsb3RvbWljRmllbGRDb252ZXJzaW9uKE1hcCk6 CisgICAgICAgICBzZWxmLnBoaSA9IEwuaG9tKFtNLmdlbigpKioobjMvL24yKV0pCisgICAgICAg ICBNYXAuX19pbml0X18oc2VsZiwgSywgTCkKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8o c2VsZiwgeCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpOgor ICAgICAgICAgIiIiCisgICAgICAgICBDYWxsIGEgY29udmVyc2lvbiBtYXAgYmV0d2VlbiBjeWNs b3RvbWljIGZpZWxkcy4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9udW1iZXJfZmll bGQvdG90YWxseXJlYWxfZGF0YS5weGQgYi9zcmMvc2FnZS9yaW5ncy9udW1iZXJfZmllbGQvdG90 YWxseXJlYWxfZGF0YS5weGQKK2luZGV4IGVmYTAxZGJiNGI3Li42MTk3MzgyOWRkYiAxMDA2NDQK Ky0tLSBhL3NyYy9zYWdlL3JpbmdzL251bWJlcl9maWVsZC90b3RhbGx5cmVhbF9kYXRhLnB4ZAor KysrIGIvc3JjL3NhZ2UvcmluZ3MvbnVtYmVyX2ZpZWxkL3RvdGFsbHlyZWFsX2RhdGEucHhkCitA QCAtMSw3ICsxLDcgQEAKKyBjZGVmIGRvdWJsZSBldmFsX3NlcV9hc19wb2x5KGludCAqZiwgaW50 IG4sIGRvdWJsZSB4KSBub2V4Y2VwdAorIGNkZWYgZG91YmxlIG5ld3RvbihpbnQgKmYsIGludCAq ZGYsIGludCBuLCBkb3VibGUgeDAsIGRvdWJsZSBlcHMpIG5vZXhjZXB0CisgY2RlZiB2b2lkIG5l d3Rvbl9pbl9pbnRlcnZhbHMoaW50ICpmLCBpbnQgKmRmLCBpbnQgbiwgZG91YmxlICpiZXRhLCBk b3VibGUgZXBzLCBkb3VibGUgKnJ0cykgbm9leGNlcHQKKy1jcGRlZiBsYWdyYW5nZV9kZWdyZWVf MyhpbnQgbiwgaW50IGFuMSwgaW50IGFuMiwgaW50IGFuMykgbm9leGNlcHQKKytjcGRlZiBsYWdy YW5nZV9kZWdyZWVfMyhpbnQgbiwgaW50IGFuMSwgaW50IGFuMiwgaW50IGFuMykKKyAKKyBjaW1w b3J0IHNhZ2UucmluZ3MuaW50ZWdlcgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL251 bWJlcl9maWVsZC90b3RhbGx5cmVhbF9kYXRhLnB5eCBiL3NyYy9zYWdlL3JpbmdzL251bWJlcl9m aWVsZC90b3RhbGx5cmVhbF9kYXRhLnB5eAoraW5kZXggNGZhZTMwODI5OWQuLjYzMzZiMTYyNjRi IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvbnVtYmVyX2ZpZWxkL3RvdGFsbHlyZWFsX2Rh dGEucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9udW1iZXJfZmllbGQvdG90YWxseXJlYWxfZGF0 YS5weXgKK0BAIC0xODksNyArMTg5LDcgQEAgY2RlZiB2b2lkIG5ld3Rvbl9pbl9pbnRlcnZhbHMo aW50ICpmLCBpbnQgKmRmLCBpbnQgbiwgZG91YmxlICpiZXRhLAorICAgICBmb3IgaSBmcm9tIDAg PD0gaSA8IG46CisgICAgICAgICBydHNbaV0gPSBuZXd0b24oZiwgZGYsIG4sIChiZXRhW2ldK2Jl dGFbaSsxXSkvMiwgZXBzKQorIAorLWNwZGVmIGxhZ3JhbmdlX2RlZ3JlZV8zKGludCBuLCBpbnQg YW4xLCBpbnQgYW4yLCBpbnQgYW4zKSBub2V4Y2VwdDoKKytjcGRlZiBsYWdyYW5nZV9kZWdyZWVf MyhpbnQgbiwgaW50IGFuMSwgaW50IGFuMiwgaW50IGFuMyk6CisgICAgIHIiIiIKKyAgICAgUHJp dmF0ZSBmdW5jdGlvbi4gIFNvbHZlcyB0aGUgZXF1YXRpb25zIHdoaWNoIGFyaXNlIGluIHRoZSBM YWdyYW5nZSBtdWx0aXBsaWVyCisgICAgIGZvciBkZWdyZWUgMzogZm9yIGVhY2ggYDEgXGxlcSBy IFxsZXEgbi0yYCwgd2Ugc29sdmUKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3Mv Q0FfdGVtcGxhdGUucHhpIGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL0NBX3RlbXBsYXRlLnB4aQor aW5kZXggYzFhNWVjYmNhMGUuLmU4ZDkwNmIwMWM4IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uvcmlu Z3MvcGFkaWNzL0NBX3RlbXBsYXRlLnB4aQorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL0NB X3RlbXBsYXRlLnB4aQorQEAgLTk0LDcgKzk0LDcgQEAgY2RlZiBjbGFzcyBDQUVsZW1lbnQocEFk aWNUZW1wbGF0ZUVsZW1lbnQpOgorICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAg IGNjb252KHNlbGYudmFsdWUsIHgsIHNlbGYuYWJzcHJlYywgMCwgc2VsZi5wcmltZV9wb3cpCisg CistICAgIGNkZWYgQ0FFbGVtZW50IF9uZXdfYyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBD QUVsZW1lbnQgX25ld19jKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBDcmVhdGUgYSBu ZXcgZWxlbWVudCB3aXRoIHRoZSBzYW1lIGJhc2ljIGluZm8uCisgCitAQCAtMTIwLDcgKzEyMCw3 IEBAIGNkZWYgY2xhc3MgQ0FFbGVtZW50KHBBZGljVGVtcGxhdGVFbGVtZW50KToKKyAgICAgICAg IGNjb25zdHJ1Y3QoYW5zLnZhbHVlLCBhbnMucHJpbWVfcG93KQorICAgICAgICAgcmV0dXJuIGFu cworIAorLSAgICBjZGVmIHBBZGljVGVtcGxhdGVFbGVtZW50IF9uZXdfd2l0aF92YWx1ZShzZWxm LCBjZWxlbWVudCB2YWx1ZSwgbG9uZyBhYnNwcmVjKSBub2V4Y2VwdDoKKysgICAgY2RlZiBwQWRp Y1RlbXBsYXRlRWxlbWVudCBfbmV3X3dpdGhfdmFsdWUoc2VsZiwgY2VsZW1lbnQgdmFsdWUsIGxv bmcgYWJzcHJlYyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIENyZWF0ZSBhIG5ldyBlbGVtZW50 IHdpdGggYSBnaXZlbiB2YWx1ZSBhbmQgYWJzb2x1dGUgcHJlY2lzaW9uLgorIAorQEAgLTE5Nyw3 ICsxOTcsNyBAQCBjZGVmIGNsYXNzIENBRWxlbWVudChwQWRpY1RlbXBsYXRlRWxlbWVudCk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiB1bnBpY2tsZV9jYWVfdjIsIChzZWxmLl9fY2xh c3NfXywgc2VsZi5wYXJlbnQoKSwgY3BpY2tsZShzZWxmLnZhbHVlLCBzZWxmLnByaW1lX3Bvdyks IHNlbGYuYWJzcHJlYykKKyAKKy0gICAgY3BkZWYgX25lZ18oc2VsZikgbm9leGNlcHQ6CisrICAg IGNwZGVmIF9uZWdfKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGFk ZGl0aXZlIGludmVyc2Ugb2YgdGhpcyBlbGVtZW50LgorIAorQEAgLTIxNCw3ICsyMTQsNyBAQCBj ZGVmIGNsYXNzIENBRWxlbWVudChwQWRpY1RlbXBsYXRlRWxlbWVudCk6CisgICAgICAgICBjcmVk dWNlX3NtYWxsKGFucy52YWx1ZSwgYW5zLnZhbHVlLCBhbnMuYWJzcHJlYywgYW5zLnByaW1lX3Bv dykKKyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwgX3JpZ2h0 KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FkZF8oc2VsZiwgX3JpZ2h0KToKKyAgICAgICAgICIi IgorICAgICAgICAgUmV0dXJuIHRoZSBzdW0gb2YgdGhpcyBlbGVtZW50IGFuZCBgYF9yaWdodGBg LgorIAorQEAgLTIzOCw3ICsyMzgsNyBAQCBjZGVmIGNsYXNzIENBRWxlbWVudChwQWRpY1RlbXBs YXRlRWxlbWVudCk6CisgICAgICAgICBjcmVkdWNlKGFucy52YWx1ZSwgYW5zLnZhbHVlLCBhbnMu YWJzcHJlYywgYW5zLnByaW1lX3BvdykKKyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY3Bk ZWYgX3N1Yl8oc2VsZiwgX3JpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3N1Yl8oc2VsZiwg X3JpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBkaWZmZXJlbmNlIG9m IHRoaXMgZWxlbWVudCBhbmQgYGBfcmlnaHRgYC4KKyAKK0BAIC0yODIsNyArMjgyLDcgQEAgY2Rl ZiBjbGFzcyBDQUVsZW1lbnQocEFkaWNUZW1wbGF0ZUVsZW1lbnQpOgorICAgICAgICAgIiIiCisg ICAgICAgICByZXR1cm4gfnNlbGYucGFyZW50KCkuZnJhY3Rpb25fZmllbGQoKShzZWxmKQorIAor LSAgICBjcGRlZiBfbXVsXyhzZWxmLCBfcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbXVs XyhzZWxmLCBfcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHByb2R1 Y3Qgb2YgdGhpcyBlbGVtZW50IGFuZCBgYF9yaWdodGBgLgorIAorQEAgLTMwNSw3ICszMDUsNyBA QCBjZGVmIGNsYXNzIENBRWxlbWVudChwQWRpY1RlbXBsYXRlRWxlbWVudCk6CisgICAgICAgICBj cmVkdWNlKGFucy52YWx1ZSwgYW5zLnZhbHVlLCBhbnMuYWJzcHJlYywgYW5zLnByaW1lX3BvdykK KyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY3BkZWYgX2Rpdl8oc2VsZiwgcmlnaHQpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBfZGl2XyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIFJldHVybiB0aGUgcXVvdGllbnQgb2YgdGhpcyBlbGVtZW50IGFuZCBgYHJpZ2h0YGAu CisgCitAQCAtNTM0LDcgKzUzNCw3IEBAIGNkZWYgY2xhc3MgQ0FFbGVtZW50KHBBZGljVGVtcGxh dGVFbGVtZW50KToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHByaWdodC52YWx1ZSwgcnZhbCwgcHJpZ2h0LmFic3ByZWMsIHNlbGYucHJpbWVfcG93KQor ICAgICAgICAgcmV0dXJuIGFucworIAorLSAgICBjZGVmIHBBZGljVGVtcGxhdGVFbGVtZW50IF9s c2hpZnRfYyhzZWxmLCBsb25nIHNoaWZ0KSBub2V4Y2VwdDoKKysgICAgY2RlZiBwQWRpY1RlbXBs YXRlRWxlbWVudCBfbHNoaWZ0X2Moc2VsZiwgbG9uZyBzaGlmdCk6CisgICAgICAgICByIiIiCisg ICAgICAgICBNdWx0aXBsaWVzIGJ5IGBccGlee1xtYm94e3NoaWZ0fX1gLgorIAorQEAgLTU2Niw3 ICs1NjYsNyBAQCBjZGVmIGNsYXNzIENBRWxlbWVudChwQWRpY1RlbXBsYXRlRWxlbWVudCk6Cisg ICAgICAgICAgICAgY3NoaWZ0X25vdHJ1bmMoYW5zLnZhbHVlLCBzZWxmLnZhbHVlLCBzaGlmdCwg YW5zLmFic3ByZWMsIGFucy5wcmltZV9wb3csIHNlbGYucHJpbWVfcG93LmUgPiAxKQorICAgICAg ICAgcmV0dXJuIGFucworIAorLSAgICBjZGVmIHBBZGljVGVtcGxhdGVFbGVtZW50IF9yc2hpZnRf YyhzZWxmLCBsb25nIHNoaWZ0KSBub2V4Y2VwdDoKKysgICAgY2RlZiBwQWRpY1RlbXBsYXRlRWxl bWVudCBfcnNoaWZ0X2Moc2VsZiwgbG9uZyBzaGlmdCk6CisgICAgICAgICByIiIiCisgICAgICAg ICBEaXZpZGVzIGJ5IGBgz4Bee1xtYm94e3NoaWZ0fX1gYC4KKyAKK0BAIC04MTUsNyArODE1LDcg QEAgY2RlZiBjbGFzcyBDQUVsZW1lbnQocEFkaWNUZW1wbGF0ZUVsZW1lbnQpOgorICAgICAgICAg ICAgIHJldHVybiAwCisgICAgICAgICByZXR1cm4gY2NtcChzZWxmLnZhbHVlLCByaWdodC52YWx1 ZSwgYXByZWMsIGFwcmVjIDwgc2VsZi5hYnNwcmVjLCBhcHJlYyA8IHJpZ2h0LmFic3ByZWMsIHNl bGYucHJpbWVfcG93KQorIAorLSAgICBjZGVmIHBBZGljVGVtcGxhdGVFbGVtZW50IGxpZnRfdG9f cHJlY2lzaW9uX2Moc2VsZiwgbG9uZyBhYnNwcmVjKSBub2V4Y2VwdDoKKysgICAgY2RlZiBwQWRp Y1RlbXBsYXRlRWxlbWVudCBsaWZ0X3RvX3ByZWNpc2lvbl9jKHNlbGYsIGxvbmcgYWJzcHJlYyk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBhbiBhcmJpdHJhcnkgbGlmdCBvZiB0aGlz IGVsZW1lbnQgdG8gaGlnaGVyIHByZWNpc2lvbi4KKyAKK0BAIC0xMDAxLDcgKzEwMDEsNyBAQCBj ZGVmIGNsYXNzIENBRWxlbWVudChwQWRpY1RlbXBsYXRlRWxlbWVudCk6CisgICAgICAgICBtcHpf c2V0X3NpKGFucy52YWx1ZSwgc2VsZi5hYnNwcmVjIC0gc2VsZi52YWx1YXRpb25fYygpKQorICAg ICAgICAgcmV0dXJuIGFucworIAorLSAgICBjcGRlZiBwQWRpY1RlbXBsYXRlRWxlbWVudCB1bml0 X3BhcnQoQ0FFbGVtZW50IHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBwQWRpY1RlbXBsYXRl RWxlbWVudCB1bml0X3BhcnQoQ0FFbGVtZW50IHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAg ICAgUmV0dXJuIHRoZSB1bml0IHBhcnQgb2YgdGhpcyBlbGVtZW50LgorIAorQEAgLTEwNDksNyAr MTA0OSw3IEBAIGNkZWYgY2xhc3MgQ0FFbGVtZW50KHBBZGljVGVtcGxhdGVFbGVtZW50KToKKyAg ICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIGN2YWx1YXRpb24oc2VsZi52YWx1ZSwgc2VsZi5h YnNwcmVjLCBzZWxmLnByaW1lX3BvdykKKyAKKy0gICAgY3BkZWYgdmFsX3VuaXQoc2VsZikgbm9l eGNlcHQ6CisrICAgIGNwZGVmIHZhbF91bml0KHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAg ICAgUmV0dXJuIGEgMi10dXBsZSwgdGhlIGZpcnN0IGVsZW1lbnQgc2V0IHRvIHRoZSB2YWx1YXRp b24gb2YgdGhpcworICAgICAgICAgZWxlbWVudCwgYW5kIHRoZSBzZWNvbmQgdG8gdGhlIHVuaXQg cGFydCBvZiB0aGlzIGVsZW1lbnQuCitAQCAtMTExOCw3ICsxMTE4LDcgQEAgY2RlZiBjbGFzcyBw QWRpY0NvZXJjaW9uX1paX0NBKFJpbmdIb21vbW9ycGhpc20pOgorICAgICAgICAgc2VsZi5femVy byA9IFIuZWxlbWVudF9jbGFzcyhSLCAwKQorICAgICAgICAgc2VsZi5fc2VjdGlvbiA9IHBBZGlj Q29udmVydF9DQV9aWihSKQorIAorLSAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpIG5v ZXhjZXB0OgorKyAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpOgorICAgICAgICAgIiIi CisgICAgICAgICBIZWxwZXIgZm9yIGNvcHlpbmcgYW5kIHBpY2tsaW5nLgorIAorQEAgLTExMzgs NyArMTEzOCw3IEBAIGNkZWYgY2xhc3MgcEFkaWNDb2VyY2lvbl9aWl9DQShSaW5nSG9tb21vcnBo aXNtKToKKyAgICAgICAgIF9zbG90c1snX3NlY3Rpb24nXSA9IHNlbGYuc2VjdGlvbigpICMgdXNl IG1ldGhvZCBzaW5jZSBpdCBjb3BpZXMgY29lcmNpb24taW50ZXJuYWwgc2VjdGlvbnMuCisgICAg ICAgICByZXR1cm4gX3Nsb3RzCisgCistICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0 IF9zbG90cykgbm9leGNlcHQ6CisrICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0IF9z bG90cyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEhlbHBlciBmb3IgY29weWluZyBhbmQgcGlj a2xpbmcuCisgCitAQCAtMTE1Nyw3ICsxMTU3LDcgQEAgY2RlZiBjbGFzcyBwQWRpY0NvZXJjaW9u X1paX0NBKFJpbmdIb21vbW9ycGhpc20pOgorICAgICAgICAgc2VsZi5fc2VjdGlvbiA9IF9zbG90 c1snX3NlY3Rpb24nXQorICAgICAgICAgUmluZ0hvbW9tb3JwaGlzbS5fdXBkYXRlX3Nsb3RzKHNl bGYsIF9zbG90cykKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCkgbm9leGNl cHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpOgorICAgICAgICAgIiIiCisg ICAgICAgICBFdmFsdWF0aW9uLgorIAorQEAgLTExNzYsNyArMTE3Niw3IEBAIGNkZWYgY2xhc3Mg cEFkaWNDb2VyY2lvbl9aWl9DQShSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgICAgIGNjb252X21w el90KGFucy52YWx1ZSwgKDxJbnRlZ2VyPngpLnZhbHVlLCBhbnMuYWJzcHJlYywgVHJ1ZSwgYW5z LnByaW1lX3BvdykKKyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBf Y2FsbF93aXRoX2FyZ3Moc2VsZiwgeCwgYXJncz0oKSwga3dkcz17fSkgbm9leGNlcHQ6CisrICAg IGNwZGVmIEVsZW1lbnQgX2NhbGxfd2l0aF9hcmdzKHNlbGYsIHgsIGFyZ3M9KCksIGt3ZHM9e30p OgorICAgICAgICAgIiIiCisgICAgICAgICBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgd2hlbiBzb21l IHByZWNpc2lvbiBjYXAgaXMgcGFzc2VkIGluCisgICAgICAgICAocmVsYXRpdmUgb3IgYWJzb2x1 dGUgb3IgYm90aCkuCitAQCAtMTI3MSw3ICsxMjcxLDcgQEAgY2RlZiBjbGFzcyBwQWRpY0NvbnZl cnRfQ0FfWlooUmluZ01hcCk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIFJpbmdNYXAu X19pbml0X18oc2VsZiwgSG9tKFIsIFpaLCBTZXRzKCkpKQorIAorLSAgICBjcGRlZiBFbGVtZW50 IF9jYWxsXyhzZWxmLCBfeCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNl bGYsIF94KToKKyAgICAgICAgICIiIgorICAgICAgICAgRXZhbHVhdGlvbi4KKyAKK0BAIC0xMzEy LDcgKzEzMTIsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29udmVydF9RUV9DQShNb3JwaGlzbSk6Cisg ICAgICAgICBNb3JwaGlzbS5fX2luaXRfXyhzZWxmLCBIb20oUVEsIFIsIFNldHNXaXRoUGFydGlh bE1hcHMoKSkpCisgICAgICAgICBzZWxmLl96ZXJvID0gUi5lbGVtZW50X2NsYXNzKFIsIDApCisg CistICAgIGNkZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYg ZGljdCBfZXh0cmFfc2xvdHMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEhlbHBlciBm b3IgY29weWluZyBhbmQgcGlja2xpbmcuCisgCitAQCAtMTMzMSw3ICsxMzMxLDcgQEAgY2RlZiBj bGFzcyBwQWRpY0NvbnZlcnRfUVFfQ0EoTW9ycGhpc20pOgorICAgICAgICAgX3Nsb3RzWydfemVy byddID0gc2VsZi5femVybworICAgICAgICAgcmV0dXJuIF9zbG90cworIAorLSAgICBjZGVmIF91 cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpIG5vZXhjZXB0OgorKyAgICBjZGVmIF91cGRh dGVfc2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpOgorICAgICAgICAgIiIiCisgICAgICAgICBIZWxw ZXIgZm9yIGNvcHlpbmcgYW5kIHBpY2tsaW5nLgorIAorQEAgLTEzNDksNyArMTM0OSw3IEBAIGNk ZWYgY2xhc3MgcEFkaWNDb252ZXJ0X1FRX0NBKE1vcnBoaXNtKToKKyAgICAgICAgIHNlbGYuX3pl cm8gPSBfc2xvdHNbJ196ZXJvJ10KKyAgICAgICAgIE1vcnBoaXNtLl91cGRhdGVfc2xvdHMoc2Vs ZiwgX3Nsb3RzKQorIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIEV2YWx1YXRpb24uCisgCitAQCAtMTM2OCw3ICsxMzY4LDcgQEAgY2RlZiBjbGFzcyBw QWRpY0NvbnZlcnRfUVFfQ0EoTW9ycGhpc20pOgorICAgICAgICAgYW5zLmFic3ByZWMgPSBhbnMu cHJpbWVfcG93LnJhbV9wcmVjX2NhcAorICAgICAgICAgcmV0dXJuIGFucworIAorLSAgICBjcGRl ZiBFbGVtZW50IF9jYWxsX3dpdGhfYXJncyhzZWxmLCB4LCBhcmdzPSgpLCBrd2RzPXt9KSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF93aXRoX2FyZ3Moc2VsZiwgeCwgYXJncz0o KSwga3dkcz17fSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgdXNl ZCB3aGVuIHNvbWUgcHJlY2lzaW9uIGNhcCBpcyBwYXNzZWQgaW4gKHJlbGF0aXZlIG9yIGFic29s dXRlIG9yIGJvdGgpLgorIAorQEAgLTE0NTEsNyArMTQ1MSw3IEBAIGNkZWYgY2xhc3MgcEFkaWND b2VyY2lvbl9DQV9mcmFjX2ZpZWxkKFJpbmdIb21vbW9ycGhpc20pOgorICAgICAgICAgc2VsZi5f emVybyA9IEsoMCkKKyAgICAgICAgIHNlbGYuX3NlY3Rpb24gPSBwQWRpY0NvbnZlcnRfQ0FfZnJh Y19maWVsZChLLCBSKQorIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCBfeCkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIF94KToKKyAgICAgICAgICIi IgorICAgICAgICAgRXZhbHVhdGlvbi4KKyAKK0BAIC0xNDc2LDcgKzE0NzYsNyBAQCBjZGVmIGNs YXNzIHBBZGljQ29lcmNpb25fQ0FfZnJhY19maWVsZChSaW5nSG9tb21vcnBoaXNtKToKKyAgICAg ICAgIGFucy5fbm9ybWFsaXplKCkKKyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY3BkZWYg RWxlbWVudCBfY2FsbF93aXRoX2FyZ3Moc2VsZiwgX3gsIGFyZ3M9KCksIGt3ZHM9e30pIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsX3dpdGhfYXJncyhzZWxmLCBfeCwgYXJncz0o KSwga3dkcz17fSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgdXNl ZCB3aGVuIHNvbWUgcHJlY2lzaW9uIGNhcCBpcyBwYXNzZWQgaW4KKyAgICAgICAgIChyZWxhdGl2 ZSBvciBhYnNvbHV0ZSBvciBib3RoKS4KK0BAIC0xNTU0LDcgKzE1NTQsNyBAQCBjZGVmIGNsYXNz IHBBZGljQ29lcmNpb25fQ0FfZnJhY19maWVsZChSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgICAg ICAgICBzZWxmLl9zZWN0aW9uID0gY29weS5jb3B5KHNlbGYuX3NlY3Rpb24pCisgICAgICAgICBy ZXR1cm4gc2VsZi5fc2VjdGlvbgorIAorLSAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYp IG5vZXhjZXB0OgorKyAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpOgorICAgICAgICAg IiIiCisgICAgICAgICBIZWxwZXIgZm9yIGNvcHlpbmcgYW5kIHBpY2tsaW5nLgorIAorQEAgLTE1 ODQsNyArMTU4NCw3IEBAIGNkZWYgY2xhc3MgcEFkaWNDb2VyY2lvbl9DQV9mcmFjX2ZpZWxkKFJp bmdIb21vbW9ycGhpc20pOgorICAgICAgICAgX3Nsb3RzWydfc2VjdGlvbiddID0gc2VsZi5zZWN0 aW9uKCkgIyB1c2UgbWV0aG9kIHNpbmNlIGl0IGNvcGllcyBjb2VyY2lvbi1pbnRlcm5hbCBzZWN0 aW9ucy4KKyAgICAgICAgIHJldHVybiBfc2xvdHMKKyAKKy0gICAgY2RlZiBfdXBkYXRlX3Nsb3Rz KHNlbGYsIGRpY3QgX3Nsb3RzKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfdXBkYXRlX3Nsb3RzKHNl bGYsIGRpY3QgX3Nsb3RzKToKKyAgICAgICAgICIiIgorICAgICAgICAgSGVscGVyIGZvciBjb3B5 aW5nIGFuZCBwaWNrbGluZy4KKyAKK0BAIC0xNjc1LDcgKzE2NzUsNyBAQCBjZGVmIGNsYXNzIHBB ZGljQ29udmVydF9DQV9mcmFjX2ZpZWxkKE1vcnBoaXNtKToKKyAgICAgICAgIE1vcnBoaXNtLl9f aW5pdF9fKHNlbGYsIEhvbShLLCBSLCBTZXRzV2l0aFBhcnRpYWxNYXBzKCkpKQorICAgICAgICAg c2VsZi5femVybyA9IFIoMCkKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgX3gp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCBfeCk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIEV2YWx1YXRpb24uCisgCitAQCAtMTcwNyw3ICsxNzA3LDcgQEAgY2Rl ZiBjbGFzcyBwQWRpY0NvbnZlcnRfQ0FfZnJhY19maWVsZChNb3JwaGlzbSk6CisgICAgICAgICAg ICAgICAgIGFucy52YWx1ZS5fY29lZmZzID0gW1IoYykgZm9yIGMgaW4gYW5zLnZhbHVlLl9jb2Vm ZnNdCisgICAgICAgICByZXR1cm4gYW5zCisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfd2l0 aF9hcmdzKHNlbGYsIF94LCBhcmdzPSgpLCBrd2RzPXt9KSBub2V4Y2VwdDoKKysgICAgY3BkZWYg RWxlbWVudCBfY2FsbF93aXRoX2FyZ3Moc2VsZiwgX3gsIGFyZ3M9KCksIGt3ZHM9e30pOgorICAg ICAgICAgIiIiCisgICAgICAgICBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgd2hlbiBzb21lIHByZWNp c2lvbiBjYXAgaXMgcGFzc2VkIGluCisgICAgICAgICAocmVsYXRpdmUgb3IgYWJzb2x1dGUgb3Ig Ym90aCkuCitAQCAtMTc2Myw3ICsxNzYzLDcgQEAgY2RlZiBjbGFzcyBwQWRpY0NvbnZlcnRfQ0Ff ZnJhY19maWVsZChNb3JwaGlzbSk6CisgICAgICAgICAgICAgICAgIGFucy52YWx1ZS5fY29lZmZz ID0gW1IoYykgZm9yIGMgaW4gYW5zLnZhbHVlLl9jb2VmZnNdCisgICAgICAgICByZXR1cm4gYW5z CisgCistICAgIGNkZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNk ZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEhlbHBl ciBmb3IgY29weWluZyBhbmQgcGlja2xpbmcuCisgCitAQCAtMTc5Miw3ICsxNzkyLDcgQEAgY2Rl ZiBjbGFzcyBwQWRpY0NvbnZlcnRfQ0FfZnJhY19maWVsZChNb3JwaGlzbSk6CisgICAgICAgICBf c2xvdHNbJ196ZXJvJ10gPSBzZWxmLl96ZXJvCisgICAgICAgICByZXR1cm4gX3Nsb3RzCisgCist ICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0IF9zbG90cykgbm9leGNlcHQ6CisrICAg IGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0IF9zbG90cyk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIEhlbHBlciBmb3IgY29weWluZyBhbmQgcGlja2xpbmcuCisgCitkaWZmIC0tZ2l0IGEv c3JjL3NhZ2UvcmluZ3MvcGFkaWNzL0NBX3RlbXBsYXRlX2hlYWRlci5weGkgYi9zcmMvc2FnZS9y aW5ncy9wYWRpY3MvQ0FfdGVtcGxhdGVfaGVhZGVyLnB4aQoraW5kZXggODcxOTQ2MTdkYWEuLmQx NWEwNTVjYjRkIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL0NBX3RlbXBsYXRl X2hlYWRlci5weGkKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9DQV90ZW1wbGF0ZV9oZWFk ZXIucHhpCitAQCAtMzEsNyArMzEsNyBAQCBjZGVmIGNsYXNzIENBRWxlbWVudChwQWRpY1RlbXBs YXRlRWxlbWVudCk6CisgICAgIGNkZWYgY2VsZW1lbnQgdmFsdWUKKyAgICAgY2RlZiBsb25nIGFi c3ByZWMKKyAKKy0gICAgY2RlZiBDQUVsZW1lbnQgX25ld19jKHNlbGYpIG5vZXhjZXB0CisrICAg IGNkZWYgQ0FFbGVtZW50IF9uZXdfYyhzZWxmKQorIAorIGNkZWYgY2xhc3MgcEFkaWNDb2VyY2lv bl9aWl9DQShSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgY2RlZiBDQUVsZW1lbnQgX3plcm8KK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvQ1JfdGVtcGxhdGUucHhpIGIvc3JjL3Nh Z2UvcmluZ3MvcGFkaWNzL0NSX3RlbXBsYXRlLnB4aQoraW5kZXggMjRkOWMwNjE2OTcuLmFjZGM0 ODAzNjcwIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL0NSX3RlbXBsYXRlLnB4 aQorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL0NSX3RlbXBsYXRlLnB4aQorQEAgLTE3Niw3 ICsxNzYsNyBAQCBjZGVmIGNsYXNzIENSRWxlbWVudChwQWRpY1RlbXBsYXRlRWxlbWVudCk6Cisg ICAgICAgICBzZWxmLm9yZHAgPSBhYnNwcmVjCisgICAgICAgICBzZWxmLnJlbHByZWMgPSAwCisg CistICAgIGNkZWYgQ1JFbGVtZW50IF9uZXdfYyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBD UkVsZW1lbnQgX25ld19jKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBDcmVhdGVzIGEg bmV3IGVsZW1lbnQgd2l0aCB0aGUgc2FtZSBiYXNpYyBpbmZvLgorIAorQEAgLTIwNCw3ICsyMDQs NyBAQCBjZGVmIGNsYXNzIENSRWxlbWVudChwQWRpY1RlbXBsYXRlRWxlbWVudCk6CisgICAgICAg ICBjY29uc3RydWN0KGFucy51bml0LCBhbnMucHJpbWVfcG93KQorICAgICAgICAgcmV0dXJuIGFu cworIAorLSAgICBjZGVmIHBBZGljVGVtcGxhdGVFbGVtZW50IF9uZXdfd2l0aF92YWx1ZShzZWxm LCBjZWxlbWVudCB2YWx1ZSwgbG9uZyBhYnNwcmVjKSBub2V4Y2VwdDoKKysgICAgY2RlZiBwQWRp Y1RlbXBsYXRlRWxlbWVudCBfbmV3X3dpdGhfdmFsdWUoc2VsZiwgY2VsZW1lbnQgdmFsdWUsIGxv bmcgYWJzcHJlYyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIENyZWF0ZXMgYSBuZXcgZWxlbWVu dCB3aXRoIGEgZ2l2ZW4gdmFsdWUgYW5kIGFic29sdXRlIHByZWNpc2lvbi4KKyAKK0BAIC0zMDYs NyArMzA2LDcgQEAgY2RlZiBjbGFzcyBDUkVsZW1lbnQocEFkaWNUZW1wbGF0ZUVsZW1lbnQpOgor ICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gdW5waWNrbGVfY3JlX3YyLCAoc2VsZi5fX2Ns YXNzX18sIHNlbGYucGFyZW50KCksIGNwaWNrbGUoc2VsZi51bml0LCBzZWxmLnByaW1lX3Bvdyks IHNlbGYub3JkcCwgc2VsZi5yZWxwcmVjKQorIAorLSAgICBjcGRlZiBfbmVnXyhzZWxmKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgX25lZ18oc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJl dHVybiB0aGUgYWRkaXRpdmUgaW52ZXJzZSBvZiB0aGlzIGVsZW1lbnQuCisgCitAQCAtMzMwLDcg KzMzMCw3IEBAIGNkZWYgY2xhc3MgQ1JFbGVtZW50KHBBZGljVGVtcGxhdGVFbGVtZW50KToKKyAg ICAgICAgICAgICBjcmVkdWNlKGFucy51bml0LCBhbnMudW5pdCwgYW5zLnJlbHByZWMsIGFucy5w cmltZV9wb3cpCisgICAgICAgICByZXR1cm4gYW5zCisgCistICAgIGNwZGVmIF9hZGRfKHNlbGYs IF9yaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIF9yaWdodCk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgc3VtIG9mIHRoaXMgZWxlbWVudCBhbmQgYGBf cmlnaHRgYC4KKyAKK0BAIC0zNzQsNyArMzc0LDcgQEAgY2RlZiBjbGFzcyBDUkVsZW1lbnQocEFk aWNUZW1wbGF0ZUVsZW1lbnQpOgorICAgICAgICAgICAgICAgICBjcmVkdWNlKGFucy51bml0LCBh bnMudW5pdCwgYW5zLnJlbHByZWMsIGFucy5wcmltZV9wb3cpCisgICAgICAgICByZXR1cm4gYW5z CisgCistICAgIGNwZGVmIF9zdWJfKHNlbGYsIF9yaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9zdWJfKHNlbGYsIF9yaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUg ZGlmZmVyZW5jZSBvZiB0aGlzIGVsZW1lbnQgYW5kIGBgX3JpZ2h0YGAuCisgCitAQCAtNDQ4LDcg KzQ0OCw3IEBAIGNkZWYgY2xhc3MgQ1JFbGVtZW50KHBBZGljVGVtcGxhdGVFbGVtZW50KToKKyAg ICAgICAgIGNpbnZlcnQoYW5zLnVuaXQsIHNlbGYudW5pdCwgYW5zLnJlbHByZWMsIGFucy5wcmlt ZV9wb3cpCisgICAgICAgICByZXR1cm4gYW5zCisgCistICAgIGNwZGVmIF9tdWxfKHNlbGYsIF9y aWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9tdWxfKHNlbGYsIF9yaWdodCk6CisgICAgICAg ICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHByb2R1Y3Qgb2YgdGhpcyBlbGVtZW50IGFuZCBg YF9yaWdodGBgLgorIAorQEAgLTQ3OSw3ICs0NzksNyBAQCBjZGVmIGNsYXNzIENSRWxlbWVudChw QWRpY1RlbXBsYXRlRWxlbWVudCk6CisgICAgICAgICBjaGVja19vcmRwKGFucy5vcmRwKQorICAg ICAgICAgcmV0dXJuIGFucworIAorLSAgICBjcGRlZiBfZGl2XyhzZWxmLCBfcmlnaHQpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBfZGl2XyhzZWxmLCBfcmlnaHQpOgorICAgICAgICAgIiIiCisgICAg ICAgICBSZXR1cm4gdGhlIHF1b3RpZW50IG9mIHRoaXMgZWxlbWVudCBhbmQgYGByaWdodGBgLgor IAorQEAgLTczNCw3ICs3MzQsNyBAQCBjZGVmIGNsYXNzIENSRWxlbWVudChwQWRpY1RlbXBsYXRl RWxlbWVudCk6CisgICAgICAgICAgICAgYW5zLm9yZHAgPSAwCisgICAgICAgICByZXR1cm4gYW5z CisgCistICAgIGNkZWYgcEFkaWNUZW1wbGF0ZUVsZW1lbnQgX2xzaGlmdF9jKHNlbGYsIGxvbmcg c2hpZnQpIG5vZXhjZXB0OgorKyAgICBjZGVmIHBBZGljVGVtcGxhdGVFbGVtZW50IF9sc2hpZnRf YyhzZWxmLCBsb25nIHNoaWZ0KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIE11bHRpcGxpZXMg YnkgYFxwaV57XG1ib3h7c2hpZnR9fWAuCisgCitAQCAtNzY1LDcgKzc2NSw3IEBAIGNkZWYgY2xh c3MgQ1JFbGVtZW50KHBBZGljVGVtcGxhdGVFbGVtZW50KToKKyAgICAgICAgIGNjb3B5KGFucy51 bml0LCBzZWxmLnVuaXQsIGFucy5wcmltZV9wb3cpCisgICAgICAgICByZXR1cm4gYW5zCisgCist ICAgIGNkZWYgcEFkaWNUZW1wbGF0ZUVsZW1lbnQgX3JzaGlmdF9jKHNlbGYsIGxvbmcgc2hpZnQp IG5vZXhjZXB0OgorKyAgICBjZGVmIHBBZGljVGVtcGxhdGVFbGVtZW50IF9yc2hpZnRfYyhzZWxm LCBsb25nIHNoaWZ0KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIERpdmlkZXMgYnkgYGBccGle e1xtYm94e3NoaWZ0fX1gYC4KKyAKK0BAIC0xMTk1LDcgKzExOTUsNyBAQCBjZGVmIGNsYXNzIENS RWxlbWVudChwQWRpY1RlbXBsYXRlRWxlbWVudCk6CisgICAgICAgICAgICAgcmV0dXJuIDAKKyAg ICAgICAgIHJldHVybiBjY21wKHNlbGYudW5pdCwgcmlnaHQudW5pdCwgcnByZWMsIHJwcmVjIDwg c2VsZi5yZWxwcmVjLCBycHJlYyA8IHJpZ2h0LnJlbHByZWMsIHNlbGYucHJpbWVfcG93KQorIAor LSAgICBjZGVmIHBBZGljVGVtcGxhdGVFbGVtZW50IGxpZnRfdG9fcHJlY2lzaW9uX2Moc2VsZiwg bG9uZyBhYnNwcmVjKSBub2V4Y2VwdDoKKysgICAgY2RlZiBwQWRpY1RlbXBsYXRlRWxlbWVudCBs aWZ0X3RvX3ByZWNpc2lvbl9jKHNlbGYsIGxvbmcgYWJzcHJlYyk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIExpZnRzIHRoaXMgZWxlbWVudCB0byBhbm90aGVyIHdpdGggcHJlY2lzaW9uIGF0IGxl YXN0IGBgYWJzcHJlY2BgLgorIAorQEAgLTE0MjEsNyArMTQyMSw3IEBAIGNkZWYgY2xhc3MgQ1JF bGVtZW50KHBBZGljVGVtcGxhdGVFbGVtZW50KToKKyAgICAgICAgIG1wel9zZXRfc2koYW5zLnZh bHVlLCBzZWxmLnJlbHByZWMpCisgICAgICAgICByZXR1cm4gYW5zCisgCistICAgIGNwZGVmIHBB ZGljVGVtcGxhdGVFbGVtZW50IHVuaXRfcGFydChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg cEFkaWNUZW1wbGF0ZUVsZW1lbnQgdW5pdF9wYXJ0KHNlbGYpOgorICAgICAgICAgciIiIgorICAg ICAgICAgUmV0dXJuIGB1YCwgd2hlcmUgdGhpcyBlbGVtZW50IGlzIGBccGlediB1YC4KKyAKK0BA IC0xNDg0LDcgKzE0ODQsNyBAQCBjZGVmIGNsYXNzIENSRWxlbWVudChwQWRpY1RlbXBsYXRlRWxl bWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLm9yZHAKKyAKKy0gICAg Y3BkZWYgdmFsX3VuaXQoc2VsZiwgcD1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgdmFsX3Vu aXQoc2VsZiwgcD1Ob25lKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGEgcGFpciBg YChzZWxmLnZhbHVhdGlvbigpLCBzZWxmLnVuaXRfcGFydCgpKWBgLgorIAorQEAgLTE1NzQsNyAr MTU3NCw3IEBAIGNkZWYgY2xhc3MgcEFkaWNDb2VyY2lvbl9aWl9DUihSaW5nSG9tb21vcnBoaXNt KToKKyAgICAgICAgIHNlbGYuX3plcm8gPSBSLmVsZW1lbnRfY2xhc3MoUiwgMCkKKyAgICAgICAg IHNlbGYuX3NlY3Rpb24gPSBwQWRpY0NvbnZlcnRfQ1JfWlooUikKKyAKKy0gICAgY2RlZiBkaWN0 IF9leHRyYV9zbG90cyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBkaWN0IF9leHRyYV9zbG90 cyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgSGVscGVyIGZvciBjb3B5aW5nIGFuZCBw aWNrbGluZy4KKyAKK0BAIC0xNjAwLDcgKzE2MDAsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29lcmNp b25fWlpfQ1IoUmluZ0hvbW9tb3JwaGlzbSk6CisgICAgICAgICBfc2xvdHNbJ19zZWN0aW9uJ10g PSBzZWxmLnNlY3Rpb24oKSAjIHVzZSBtZXRob2Qgc2luY2UgaXQgY29waWVzIGNvZXJjaW9uLWlu dGVybmFsIHNlY3Rpb25zLgorICAgICAgICAgcmV0dXJuIF9zbG90cworIAorLSAgICBjZGVmIF91 cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpIG5vZXhjZXB0OgorKyAgICBjZGVmIF91cGRh dGVfc2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpOgorICAgICAgICAgIiIiCisgICAgICAgICBIZWxw ZXIgZm9yIGNvcHlpbmcgYW5kIHBpY2tsaW5nLgorIAorQEAgLTE2MjYsNyArMTYyNiw3IEBAIGNk ZWYgY2xhc3MgcEFkaWNDb2VyY2lvbl9aWl9DUihSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgICAg IHNlbGYuX3NlY3Rpb24gPSBfc2xvdHNbJ19zZWN0aW9uJ10KKyAgICAgICAgIFJpbmdIb21vbW9y cGhpc20uX3VwZGF0ZV9zbG90cyhzZWxmLCBfc2xvdHMpCisgCistICAgIGNwZGVmIEVsZW1lbnQg X2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxm LCB4KToKKyAgICAgICAgICIiIgorICAgICAgICAgRXZhbHVhdGlvbi4KKyAKK0BAIC0xNjQ1LDcg KzE2NDUsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29lcmNpb25fWlpfQ1IoUmluZ0hvbW9tb3JwaGlz bSk6CisgICAgICAgICBhbnMub3JkcCA9IGNjb252X21wel90KGFucy51bml0LCAoPEludGVnZXI+ eCkudmFsdWUsIGFucy5yZWxwcmVjLCBGYWxzZSwgYW5zLnByaW1lX3BvdykKKyAgICAgICAgIHJl dHVybiBhbnMKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF93aXRoX2FyZ3Moc2VsZiwgeCwg YXJncz0oKSwga3dkcz17fSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfd2l0 aF9hcmdzKHNlbGYsIHgsIGFyZ3M9KCksIGt3ZHM9e30pOgorICAgICAgICAgIiIiCisgICAgICAg ICBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgd2hlbiBzb21lIHByZWNpc2lvbiBjYXAgaXMgcGFzc2Vk IGluCisgICAgICAgICAocmVsYXRpdmUgb3IgYWJzb2x1dGUgb3IgYm90aCksIG9yIGFuIGVtcHR5 IGVsZW1lbnQgaXMKK0BAIC0xNzQxLDcgKzE3NDEsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29udmVy dF9DUl9aWihSaW5nTWFwKToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgUmluZ01hcC5f X2luaXRfXyhzZWxmLCBIb20oUiwgWlosIFNldHMoKSkpCisgCistICAgIGNwZGVmIEVsZW1lbnQg X2NhbGxfKHNlbGYsIF94KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2Vs ZiwgX3gpOgorICAgICAgICAgIiIiCisgICAgICAgICBFdmFsdWF0aW9uLgorIAorQEAgLTE3OTIs NyArMTc5Miw3IEBAIGNkZWYgY2xhc3MgcEFkaWNDb2VyY2lvbl9RUV9DUihSaW5nSG9tb21vcnBo aXNtKToKKyAgICAgICAgIHNlbGYuX3plcm8gPSBSLmVsZW1lbnRfY2xhc3MoUiwgMCkKKyAgICAg ICAgIHNlbGYuX3NlY3Rpb24gPSBwQWRpY0NvbnZlcnRfQ1JfUVEoUikKKyAKKy0gICAgY2RlZiBk aWN0IF9leHRyYV9zbG90cyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBkaWN0IF9leHRyYV9z bG90cyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgSGVscGVyIGZvciBjb3B5aW5nIGFu ZCBwaWNrbGluZy4KKyAKK0BAIC0xODE4LDcgKzE4MTgsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29l cmNpb25fUVFfQ1IoUmluZ0hvbW9tb3JwaGlzbSk6CisgICAgICAgICBfc2xvdHNbJ19zZWN0aW9u J10gPSBzZWxmLnNlY3Rpb24oKSAjIHVzZSBtZXRob2Qgc2luY2UgaXQgY29waWVzIGNvZXJjaW9u LWludGVybmFsIHNlY3Rpb25zLgorICAgICAgICAgcmV0dXJuIF9zbG90cworIAorLSAgICBjZGVm IF91cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpIG5vZXhjZXB0OgorKyAgICBjZGVmIF91 cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpOgorICAgICAgICAgIiIiCisgICAgICAgICBI ZWxwZXIgZm9yIGNvcHlpbmcgYW5kIHBpY2tsaW5nLgorIAorQEAgLTE4NDQsNyArMTg0NCw3IEBA IGNkZWYgY2xhc3MgcEFkaWNDb2VyY2lvbl9RUV9DUihSaW5nSG9tb21vcnBoaXNtKToKKyAgICAg ICAgIHNlbGYuX3NlY3Rpb24gPSBfc2xvdHNbJ19zZWN0aW9uJ10KKyAgICAgICAgIFJpbmdIb21v bW9ycGhpc20uX3VwZGF0ZV9zbG90cyhzZWxmLCBfc2xvdHMpCisgCistICAgIGNwZGVmIEVsZW1l bnQgX2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhz ZWxmLCB4KToKKyAgICAgICAgICIiIgorICAgICAgICAgRXZhbHVhdGlvbi4KKyAKK0BAIC0xODY1 LDcgKzE4NjUsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29lcmNpb25fUVFfQ1IoUmluZ0hvbW9tb3Jw aGlzbSk6CisgICAgICAgICBhbnMub3JkcCA9IGNjb252X21wcV90KGFucy51bml0LCAoPFJhdGlv bmFsPngpLnZhbHVlLCBhbnMucmVscHJlYywgRmFsc2UsIHNlbGYuX3plcm8ucHJpbWVfcG93KQor ICAgICAgICAgcmV0dXJuIGFucworIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsX3dpdGhfYXJn cyhzZWxmLCB4LCBhcmdzPSgpLCBrd2RzPXt9KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVu dCBfY2FsbF93aXRoX2FyZ3Moc2VsZiwgeCwgYXJncz0oKSwga3dkcz17fSk6CisgICAgICAgICAi IiIKKyAgICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB3aGVuIHNvbWUgcHJlY2lzaW9uIGNh cCBpcyBwYXNzZWQgaW4KKyAgICAgICAgIChyZWxhdGl2ZSBvciBhYnNvbHV0ZSBvciBib3RoKSwg b3IgYW4gZW1wdHkgZWxlbWVudCBpcworQEAgLTE5NTksNyArMTk1OSw3IEBAIGNkZWYgY2xhc3Mg cEFkaWNDb252ZXJ0X0NSX1FRKFJpbmdNYXApOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAg ICBSaW5nTWFwLl9faW5pdF9fKHNlbGYsIEhvbShSLCBRUSwgU2V0cygpKSkKKyAKKy0gICAgY3Bk ZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgX3gpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50 IF9jYWxsXyhzZWxmLCBfeCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEV2YWx1YXRpb24uCisg CitAQCAtMjAwNiw3ICsyMDA2LDcgQEAgY2RlZiBjbGFzcyBwQWRpY0NvbnZlcnRfUVFfQ1IoTW9y cGhpc20pOgorICAgICAgICAgc2VsZi5femVybyA9IFIuZWxlbWVudF9jbGFzcyhSLCAwKQorICAg ICAgICAgc2VsZi5fc2VjdGlvbiA9IHBBZGljQ29udmVydF9DUl9RUShSKQorIAorLSAgICBjZGVm IGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIGRpY3QgX2V4dHJh X3Nsb3RzKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBIZWxwZXIgZm9yIGNvcHlpbmcg YW5kIHBpY2tsaW5nLgorIAorQEAgLTIwMjYsNyArMjAyNiw3IEBAIGNkZWYgY2xhc3MgcEFkaWND b252ZXJ0X1FRX0NSKE1vcnBoaXNtKToKKyAgICAgICAgIF9zbG90c1snX3NlY3Rpb24nXSA9IHNl bGYuc2VjdGlvbigpICMgdXNlIG1ldGhvZCBzaW5jZSBpdCBjb3BpZXMgY29lcmNpb24taW50ZXJu YWwgc2VjdGlvbnMuCisgICAgICAgICByZXR1cm4gX3Nsb3RzCisgCistICAgIGNkZWYgX3VwZGF0 ZV9zbG90cyhzZWxmLCBkaWN0IF9zbG90cykgbm9leGNlcHQ6CisrICAgIGNkZWYgX3VwZGF0ZV9z bG90cyhzZWxmLCBkaWN0IF9zbG90cyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEhlbHBlciBm b3IgY29weWluZyBhbmQgcGlja2xpbmcuCisgCitAQCAtMjA0NSw3ICsyMDQ1LDcgQEAgY2RlZiBj bGFzcyBwQWRpY0NvbnZlcnRfUVFfQ1IoTW9ycGhpc20pOgorICAgICAgICAgc2VsZi5fc2VjdGlv biA9IF9zbG90c1snX3NlY3Rpb24nXQorICAgICAgICAgTW9ycGhpc20uX3VwZGF0ZV9zbG90cyhz ZWxmLCBfc2xvdHMpCisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KToKKyAgICAgICAgICIiIgor ICAgICAgICAgRXZhbHVhdGlvbi4KKyAKK0BAIC0yMDY2LDcgKzIwNjYsNyBAQCBjZGVmIGNsYXNz IHBBZGljQ29udmVydF9RUV9DUihNb3JwaGlzbSk6CisgICAgICAgICAgICAgcmFpc2UgVmFsdWVF cnJvcigicCBkaXZpZGVzIHRoZSBkZW5vbWluYXRvciIpCisgICAgICAgICByZXR1cm4gYW5zCisg CistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfd2l0aF9hcmdzKHNlbGYsIHgsIGFyZ3M9KCksIGt3 ZHM9e30pIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsX3dpdGhfYXJncyhzZWxm LCB4LCBhcmdzPSgpLCBrd2RzPXt9KToKKyAgICAgICAgICIiIgorICAgICAgICAgVGhpcyBmdW5j dGlvbiBpcyB1c2VkIHdoZW4gc29tZSBwcmVjaXNpb24gY2FwIGlzIHBhc3NlZCBpbgorICAgICAg ICAgKHJlbGF0aXZlIG9yIGFic29sdXRlIG9yIGJvdGgpLCBvciBhbiBlbXB0eSBlbGVtZW50IGlz CitAQCAtMjE3MCw3ICsyMTcwLDcgQEAgY2RlZiBjbGFzcyBwQWRpY0NvZXJjaW9uX0NSX2ZyYWNf ZmllbGQoUmluZ0hvbW9tb3JwaGlzbSk6CisgICAgICAgICBzZWxmLl96ZXJvID0gSygwKQorICAg ICAgICAgc2VsZi5fc2VjdGlvbiA9IHBBZGljQ29udmVydF9DUl9mcmFjX2ZpZWxkKEssIFIpCisg CistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIF94KSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgX3gpOgorICAgICAgICAgIiIiCisgICAgICAgICBFdmFs dWF0aW9uLgorIAorQEAgLTIxOTYsNyArMjE5Niw3IEBAIGNkZWYgY2xhc3MgcEFkaWNDb2VyY2lv bl9DUl9mcmFjX2ZpZWxkKFJpbmdIb21vbW9ycGhpc20pOgorICAgICAgICAgICAgIGFucy51bml0 Ll9jb2VmZnMgPSBbSyhjKSBmb3IgYyBpbiBhbnMudW5pdC5fY29lZmZzXQorICAgICAgICAgcmV0 dXJuIGFucworIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsX3dpdGhfYXJncyhzZWxmLCBfeCwg YXJncz0oKSwga3dkcz17fSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfd2l0 aF9hcmdzKHNlbGYsIF94LCBhcmdzPSgpLCBrd2RzPXt9KToKKyAgICAgICAgICIiIgorICAgICAg ICAgVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHdoZW4gc29tZSBwcmVjaXNpb24gY2FwIGlzIHBhc3Nl ZCBpbgorICAgICAgICAgKHJlbGF0aXZlIG9yIGFic29sdXRlIG9yIGJvdGgpLgorQEAgLTIyNzgs NyArMjI3OCw3IEBAIGNkZWYgY2xhc3MgcEFkaWNDb2VyY2lvbl9DUl9mcmFjX2ZpZWxkKFJpbmdI b21vbW9ycGhpc20pOgorICAgICAgICAgICAgIHNlbGYuX3NlY3Rpb24gPSBjb3B5LmNvcHkoc2Vs Zi5fc2VjdGlvbikKKyAgICAgICAgIHJldHVybiBzZWxmLl9zZWN0aW9uCisgCistICAgIGNkZWYg ZGljdCBfZXh0cmFfc2xvdHMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgZGljdCBfZXh0cmFf c2xvdHMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEhlbHBlciBmb3IgY29weWluZyBh bmQgcGlja2xpbmcuCisgCitAQCAtMjMwOCw3ICsyMzA4LDcgQEAgY2RlZiBjbGFzcyBwQWRpY0Nv ZXJjaW9uX0NSX2ZyYWNfZmllbGQoUmluZ0hvbW9tb3JwaGlzbSk6CisgICAgICAgICBfc2xvdHNb J19zZWN0aW9uJ10gPSBzZWxmLnNlY3Rpb24oKSAjIHVzZSBtZXRob2Qgc2luY2UgaXQgY29waWVz IGNvZXJjaW9uLWludGVybmFsIHNlY3Rpb25zLgorICAgICAgICAgcmV0dXJuIF9zbG90cworIAor LSAgICBjZGVmIF91cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpIG5vZXhjZXB0OgorKyAg ICBjZGVmIF91cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpOgorICAgICAgICAgIiIiCisg ICAgICAgICBIZWxwZXIgZm9yIGNvcHlpbmcgYW5kIHBpY2tsaW5nLgorIAorQEAgLTIzOTksNyAr MjM5OSw3IEBAIGNkZWYgY2xhc3MgcEFkaWNDb252ZXJ0X0NSX2ZyYWNfZmllbGQoTW9ycGhpc20p OgorICAgICAgICAgTW9ycGhpc20uX19pbml0X18oc2VsZiwgSG9tKEssIFIsIFNldHNXaXRoUGFy dGlhbE1hcHMoKSkpCisgICAgICAgICBzZWxmLl96ZXJvID0gUigwKQorIAorLSAgICBjcGRlZiBF bGVtZW50IF9jYWxsXyhzZWxmLCBfeCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2Nh bGxfKHNlbGYsIF94KToKKyAgICAgICAgICIiIgorICAgICAgICAgRXZhbHVhdGlvbi4KKyAKK0BA IC0yNDI1LDcgKzI0MjUsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29udmVydF9DUl9mcmFjX2ZpZWxk KE1vcnBoaXNtKToKKyAgICAgICAgICAgICBhbnMudW5pdC5fY29lZmZzID0gW0soYykgZm9yIGMg aW4gYW5zLnVuaXQuX2NvZWZmc10KKyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY3BkZWYg RWxlbWVudCBfY2FsbF93aXRoX2FyZ3Moc2VsZiwgX3gsIGFyZ3M9KCksIGt3ZHM9e30pIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsX3dpdGhfYXJncyhzZWxmLCBfeCwgYXJncz0o KSwga3dkcz17fSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgdXNl ZCB3aGVuIHNvbWUgcHJlY2lzaW9uIGNhcCBpcyBwYXNzZWQgaW4KKyAgICAgICAgIChyZWxhdGl2 ZSBvciBhYnNvbHV0ZSBvciBib3RoKS4KK0BAIC0yNDg1LDcgKzI0ODUsNyBAQCBjZGVmIGNsYXNz IHBBZGljQ29udmVydF9DUl9mcmFjX2ZpZWxkKE1vcnBoaXNtKToKKyAgICAgICAgICAgICAgICAg YW5zLnVuaXQuX2NvZWZmcyA9IFtLKGMpIGZvciBjIGluIGFucy51bml0Ll9jb2VmZnNdCisgICAg ICAgICByZXR1cm4gYW5zCisgCistICAgIGNkZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZikgbm9l eGNlcHQ6CisrICAgIGNkZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZik6CisgICAgICAgICAiIiIK KyAgICAgICAgIEhlbHBlciBmb3IgY29weWluZyBhbmQgcGlja2xpbmcuCisgCitAQCAtMjUxNCw3 ICsyNTE0LDcgQEAgY2RlZiBjbGFzcyBwQWRpY0NvbnZlcnRfQ1JfZnJhY19maWVsZChNb3JwaGlz bSk6CisgICAgICAgICBfc2xvdHNbJ196ZXJvJ10gPSBzZWxmLl96ZXJvCisgICAgICAgICByZXR1 cm4gX3Nsb3RzCisgCistICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0IF9zbG90cykg bm9leGNlcHQ6CisrICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0IF9zbG90cyk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIEhlbHBlciBmb3IgY29weWluZyBhbmQgcGlja2xpbmcuCisg CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL0NSX3RlbXBsYXRlX2hlYWRlci5w eGkgYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvQ1JfdGVtcGxhdGVfaGVhZGVyLnB4aQoraW5kZXgg Yjk2OTQ2M2JjNzIuLjU0YzQ4MmY3ZmYyIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcGFk aWNzL0NSX3RlbXBsYXRlX2hlYWRlci5weGkKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9D Ul90ZW1wbGF0ZV9oZWFkZXIucHhpCitAQCAtMzIsOSArMzIsOSBAQCBjZGVmIGNsYXNzIENSRWxl bWVudChwQWRpY1RlbXBsYXRlRWxlbWVudCk6CisgICAgIGNkZWYgbG9uZyBvcmRwCisgICAgIGNk ZWYgbG9uZyByZWxwcmVjCisgCistICAgIGNkZWYgQ1JFbGVtZW50IF9uZXdfYyhzZWxmKSBub2V4 Y2VwdAorKyAgICBjZGVmIENSRWxlbWVudCBfbmV3X2Moc2VsZikKKyAgICAgY2RlZiBpbnQgX25v cm1hbGl6ZShzZWxmKSBleGNlcHQgLTEKKy0gICAgY3BkZWYgdmFsX3VuaXQoc2VsZiwgcD0qKSBu b2V4Y2VwdAorKyAgICBjcGRlZiB2YWxfdW5pdChzZWxmLCBwPSopCisgCisgY2RlZiBjbGFzcyBw QWRpY0NvZXJjaW9uX1paX0NSKFJpbmdIb21vbW9ycGhpc20pOgorICAgICBjZGVmIENSRWxlbWVu dCBfemVybworZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9GTV90ZW1wbGF0ZS5w eGkgYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvRk1fdGVtcGxhdGUucHhpCitpbmRleCA1ZTY2ODJj M2UzYi4uOGNlOTNkNzk3YTggMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvRk1f dGVtcGxhdGUucHhpCisrKysgYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvRk1fdGVtcGxhdGUucHhp CitAQCAtODksNyArODksNyBAQCBjZGVmIGNsYXNzIEZNRWxlbWVudChwQWRpY1RlbXBsYXRlRWxl bWVudCk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIGNjb252KHNlbGYudmFsdWUsIHgs IHNlbGYucHJpbWVfcG93LnJhbV9wcmVjX2NhcCwgMCwgc2VsZi5wcmltZV9wb3cpCisgCistICAg IGNkZWYgRk1FbGVtZW50IF9uZXdfYyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBGTUVsZW1l bnQgX25ld19jKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBDcmVhdGVzIGEgbmV3IGVs ZW1lbnQgd2l0aCB0aGUgc2FtZSBiYXNpYyBpbmZvLgorIAorQEAgLTEwOCw3ICsxMDgsNyBAQCBj ZGVmIGNsYXNzIEZNRWxlbWVudChwQWRpY1RlbXBsYXRlRWxlbWVudCk6CisgICAgICAgICBjY29u c3RydWN0KGFucy52YWx1ZSwgYW5zLnByaW1lX3BvdykKKyAgICAgICAgIHJldHVybiBhbnMKKyAK Ky0gICAgY2RlZiBwQWRpY1RlbXBsYXRlRWxlbWVudCBfbmV3X3dpdGhfdmFsdWUoc2VsZiwgY2Vs ZW1lbnQgdmFsdWUsIGxvbmcgYWJzcHJlYykgbm9leGNlcHQ6CisrICAgIGNkZWYgcEFkaWNUZW1w bGF0ZUVsZW1lbnQgX25ld193aXRoX3ZhbHVlKHNlbGYsIGNlbGVtZW50IHZhbHVlLCBsb25nIGFi c3ByZWMpOgorICAgICAgICAgIiIiCisgICAgICAgICBDcmVhdGVzIGEgbmV3IGVsZW1lbnQgd2l0 aCBhIGdpdmVuIHZhbHVlIGFuZCBhYnNvbHV0ZSBwcmVjaXNpb24uCisgCitAQCAtMTc5LDcgKzE3 OSw3IEBAIGNkZWYgY2xhc3MgRk1FbGVtZW50KHBBZGljVGVtcGxhdGVFbGVtZW50KToKKyAgICAg ICAgICIiIgorICAgICAgICAgcmV0dXJuIHVucGlja2xlX2ZtZV92MiwgKHNlbGYuX19jbGFzc19f LCBzZWxmLnBhcmVudCgpLCBjcGlja2xlKHNlbGYudmFsdWUsIHNlbGYucHJpbWVfcG93KSkKKyAK Ky0gICAgY3BkZWYgX25lZ18oc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9uZWdfKHNlbGYp OgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBhZGRpdGl2ZSBpbnZlcnNlIG9m IHRoaXMgZWxlbWVudC4KKyAKK0BAIC0xOTQsNyArMTk0LDcgQEAgY2RlZiBjbGFzcyBGTUVsZW1l bnQocEFkaWNUZW1wbGF0ZUVsZW1lbnQpOgorICAgICAgICAgY3JlZHVjZV9zbWFsbChhbnMudmFs dWUsIGFucy52YWx1ZSwgYW5zLnByaW1lX3Bvdy5yYW1fcHJlY19jYXAsIGFucy5wcmltZV9wb3cp CisgICAgICAgICByZXR1cm4gYW5zCisgCistICAgIGNwZGVmIF9hZGRfKHNlbGYsIF9yaWdodCkg bm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIF9yaWdodCk6CisgICAgICAgICByIiIi CisgICAgICAgICBSZXR1cm4gdGhlIHN1bSBvZiB0aGlzIGVsZW1lbnQgYW5kIGBgX3JpZ2h0YGAu CisgCitAQCAtMjE0LDcgKzIxNCw3IEBAIGNkZWYgY2xhc3MgRk1FbGVtZW50KHBBZGljVGVtcGxh dGVFbGVtZW50KToKKyAgICAgICAgIGNyZWR1Y2Vfc21hbGwoYW5zLnZhbHVlLCBhbnMudmFsdWUs IGFucy5wcmltZV9wb3cucmFtX3ByZWNfY2FwLCBhbnMucHJpbWVfcG93KQorICAgICAgICAgcmV0 dXJuIGFucworIAorLSAgICBjcGRlZiBfc3ViXyhzZWxmLCBfcmlnaHQpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBfc3ViXyhzZWxmLCBfcmlnaHQpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0 dXJuIHRoZSBkaWZmZXJlbmNlIG9mIHRoaXMgZWxlbWVudCBhbmQgYGBfcmlnaHRgYC4KKyAKK0BA IC0yNTksNyArMjU5LDcgQEAgY2RlZiBjbGFzcyBGTUVsZW1lbnQocEFkaWNUZW1wbGF0ZUVsZW1l bnQpOgorICAgICAgICAgY2ludmVydChhbnMudmFsdWUsIHNlbGYudmFsdWUsIGFucy5wcmltZV9w b3cucmFtX3ByZWNfY2FwLCBhbnMucHJpbWVfcG93KQorICAgICAgICAgcmV0dXJuIGFucworIAor LSAgICBjcGRlZiBfbXVsXyhzZWxmLCBfcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbXVs XyhzZWxmLCBfcmlnaHQpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBwcm9k dWN0IG9mIHRoaXMgZWxlbWVudCBhbmQgYGBfcmlnaHRgYC4KKyAKK0BAIC0yNzcsNyArMjc3LDcg QEAgY2RlZiBjbGFzcyBGTUVsZW1lbnQocEFkaWNUZW1wbGF0ZUVsZW1lbnQpOgorICAgICAgICAg Y3JlZHVjZShhbnMudmFsdWUsIGFucy52YWx1ZSwgYW5zLnByaW1lX3Bvdy5yYW1fcHJlY19jYXAs IGFucy5wcmltZV9wb3cpCisgICAgICAgICByZXR1cm4gYW5zCisgCistICAgIGNwZGVmIF9kaXZf KHNlbGYsIF9yaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9kaXZfKHNlbGYsIF9yaWdodCk6 CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHF1b3RpZW50IG9mIHRoaXMgZWxl bWVudCBhbmQgYGByaWdodGBgLiBgYHJpZ2h0YGAgbXVzdCBoYXZlCisgICAgICAgICB2YWx1YXRp b24gemVyby4KK0BAIC0zNzksNyArMzc5LDcgQEAgY2RlZiBjbGFzcyBGTUVsZW1lbnQocEFkaWNU ZW1wbGF0ZUVsZW1lbnQpOgorICAgICAgICAgY3BvdyhhbnMudmFsdWUsIHNlbGYudmFsdWUsIHJp Z2h0LnZhbHVlLCBzZWxmLnByaW1lX3Bvdy5yYW1fcHJlY19jYXAsIHNlbGYucHJpbWVfcG93KQor ICAgICAgICAgcmV0dXJuIGFucworIAorLSAgICBjZGVmIHBBZGljVGVtcGxhdGVFbGVtZW50IF9s c2hpZnRfYyhzZWxmLCBsb25nIHNoaWZ0KSBub2V4Y2VwdDoKKysgICAgY2RlZiBwQWRpY1RlbXBs YXRlRWxlbWVudCBfbHNoaWZ0X2Moc2VsZiwgbG9uZyBzaGlmdCk6CisgICAgICAgICByIiIiCisg ICAgICAgICBNdWx0aXBsaWVzIHNlbGYgYnkgYFxwaV57c2hpZnR9YC4KKyAKK0BAIC00MjYsNyAr NDI2LDcgQEAgY2RlZiBjbGFzcyBGTUVsZW1lbnQocEFkaWNUZW1wbGF0ZUVsZW1lbnQpOgorICAg ICAgICAgICAgIGNzaGlmdF9ub3RydW5jKGFucy52YWx1ZSwgc2VsZi52YWx1ZSwgc2hpZnQsIGFu cy5wcmltZV9wb3cucmFtX3ByZWNfY2FwLCBhbnMucHJpbWVfcG93LCBUcnVlKQorICAgICAgICAg cmV0dXJuIGFucworIAorLSAgICBjZGVmIHBBZGljVGVtcGxhdGVFbGVtZW50IF9yc2hpZnRfYyhz ZWxmLCBsb25nIHNoaWZ0KSBub2V4Y2VwdDoKKysgICAgY2RlZiBwQWRpY1RlbXBsYXRlRWxlbWVu dCBfcnNoaWZ0X2Moc2VsZiwgbG9uZyBzaGlmdCk6CisgICAgICAgICByIiIiCisgICAgICAgICBE aXZpZGVzIGJ5IGBccGlee3NoaWZ0fWAsIGFuZCB0cnVuY2F0ZXMuCisgCitAQCAtNjQ3LDcgKzY0 Nyw3IEBAIGNkZWYgY2xhc3MgRk1FbGVtZW50KHBBZGljVGVtcGxhdGVFbGVtZW50KToKKyAgICAg ICAgIGNkZWYgRk1FbGVtZW50IHJpZ2h0ID0gX3JpZ2h0CisgICAgICAgICByZXR1cm4gY2NtcChz ZWxmLnZhbHVlLCByaWdodC52YWx1ZSwgc2VsZi5wcmltZV9wb3cucmFtX3ByZWNfY2FwLCBGYWxz ZSwgRmFsc2UsIHNlbGYucHJpbWVfcG93KQorIAorLSAgICBjZGVmIHBBZGljVGVtcGxhdGVFbGVt ZW50IGxpZnRfdG9fcHJlY2lzaW9uX2Moc2VsZiwgbG9uZyBhYnNwcmVjKSBub2V4Y2VwdDoKKysg ICAgY2RlZiBwQWRpY1RlbXBsYXRlRWxlbWVudCBsaWZ0X3RvX3ByZWNpc2lvbl9jKHNlbGYsIGxv bmcgYWJzcHJlYyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIExpZnRzIHRoaXMgZWxlbWVudCB0 byBhbm90aGVyIHdpdGggcHJlY2lzaW9uIGF0IGxlYXN0IGFic3ByZWMuCisgCitAQCAtNzc5LDcg Kzc3OSw3IEBAIGNkZWYgY2xhc3MgRk1FbGVtZW50KHBBZGljVGVtcGxhdGVFbGVtZW50KToKKyAg ICAgICAgIG1wel9zZXRfc2koYW5zLnZhbHVlLCBzZWxmLnByaW1lX3Bvdy5yYW1fcHJlY19jYXAg LSBzZWxmLnZhbHVhdGlvbl9jKCkpCisgICAgICAgICByZXR1cm4gYW5zCisgCistICAgIGNwZGVm IHBBZGljVGVtcGxhdGVFbGVtZW50IHVuaXRfcGFydChGTUVsZW1lbnQgc2VsZikgbm9leGNlcHQ6 CisrICAgIGNwZGVmIHBBZGljVGVtcGxhdGVFbGVtZW50IHVuaXRfcGFydChGTUVsZW1lbnQgc2Vs Zik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHVuaXQgcGFydCBvZiBgYHNl bGZgYC4KKyAKK0BAIC04MzUsNyArODM1LDcgQEAgY2RlZiBjbGFzcyBGTUVsZW1lbnQocEFkaWNU ZW1wbGF0ZUVsZW1lbnQpOgorICAgICAgICAgIyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQor ICAgICAgICAgcmV0dXJuIGN2YWx1YXRpb24oc2VsZi52YWx1ZSwgc2VsZi5wcmltZV9wb3cucmFt X3ByZWNfY2FwLCBzZWxmLnByaW1lX3BvdykKKyAKKy0gICAgY3BkZWYgdmFsX3VuaXQoc2VsZikg bm9leGNlcHQ6CisrICAgIGNwZGVmIHZhbF91bml0KHNlbGYpOgorICAgICAgICAgIiIiCisgICAg ICAgICBSZXR1cm4gYSAyLXR1cGxlLCB0aGUgZmlyc3QgZWxlbWVudCBzZXQgdG8gdGhlIHZhbHVh dGlvbiBvZgorICAgICAgICAgYGBzZWxmYGAsIGFuZCB0aGUgc2Vjb25kIHRvIHRoZSB1bml0IHBh cnQgb2YgYGBzZWxmYGAuCitAQCAtODk3LDcgKzg5Nyw3IEBAIGNkZWYgY2xhc3MgcEFkaWNDb2Vy Y2lvbl9aWl9GTShSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgICAgIHNlbGYuX3plcm8gPSBSLmVs ZW1lbnRfY2xhc3MoUiwgMCkKKyAgICAgICAgIHNlbGYuX3NlY3Rpb24gPSBwQWRpY0NvbnZlcnRf Rk1fWlooUikKKyAKKy0gICAgY2RlZiBkaWN0IF9leHRyYV9zbG90cyhzZWxmKSBub2V4Y2VwdDoK KysgICAgY2RlZiBkaWN0IF9leHRyYV9zbG90cyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAg ICAgSGVscGVyIGZvciBjb3B5aW5nIGFuZCBwaWNrbGluZy4KKyAKK0BAIC05MTcsNyArOTE3LDcg QEAgY2RlZiBjbGFzcyBwQWRpY0NvZXJjaW9uX1paX0ZNKFJpbmdIb21vbW9ycGhpc20pOgorICAg ICAgICAgX3Nsb3RzWydfc2VjdGlvbiddID0gc2VsZi5zZWN0aW9uKCkgIyB1c2UgbWV0aG9kIHNp bmNlIGl0IGNvcGllcyBjb2VyY2lvbi1pbnRlcm5hbCBzZWN0aW9ucy4KKyAgICAgICAgIHJldHVy biBfc2xvdHMKKyAKKy0gICAgY2RlZiBfdXBkYXRlX3Nsb3RzKHNlbGYsIGRpY3QgX3Nsb3RzKSBu b2V4Y2VwdDoKKysgICAgY2RlZiBfdXBkYXRlX3Nsb3RzKHNlbGYsIGRpY3QgX3Nsb3RzKToKKyAg ICAgICAgICIiIgorICAgICAgICAgSGVscGVyIGZvciBjb3B5aW5nIGFuZCBwaWNrbGluZy4KKyAK K0BAIC05MzYsNyArOTM2LDcgQEAgY2RlZiBjbGFzcyBwQWRpY0NvZXJjaW9uX1paX0ZNKFJpbmdI b21vbW9ycGhpc20pOgorICAgICAgICAgc2VsZi5fc2VjdGlvbiA9IF9zbG90c1snX3NlY3Rpb24n XQorICAgICAgICAgUmluZ0hvbW9tb3JwaGlzbS5fdXBkYXRlX3Nsb3RzKHNlbGYsIF9zbG90cykK KyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpOgorICAgICAgICAgIiIiCisgICAgICAgICBFdmFs dWF0aW9uLgorIAorQEAgLTk1NCw3ICs5NTQsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29lcmNpb25f WlpfRk0oUmluZ0hvbW9tb3JwaGlzbSk6CisgICAgICAgICBjY29udl9tcHpfdChhbnMudmFsdWUs ICg8SW50ZWdlcj54KS52YWx1ZSwgYW5zLnByaW1lX3Bvdy5yYW1fcHJlY19jYXAsIFRydWUsIGFu cy5wcmltZV9wb3cpCisgICAgICAgICByZXR1cm4gYW5zCisgCistICAgIGNwZGVmIEVsZW1lbnQg X2NhbGxfd2l0aF9hcmdzKHNlbGYsIHgsIGFyZ3M9KCksIGt3ZHM9e30pIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBFbGVtZW50IF9jYWxsX3dpdGhfYXJncyhzZWxmLCB4LCBhcmdzPSgpLCBrd2RzPXt9 KToKKyAgICAgICAgICIiIgorICAgICAgICAgVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHdoZW4gc29t ZSBwcmVjaXNpb24gY2FwIGlzIHBhc3NlZCBpbiAocmVsYXRpdmUgb3IgYWJzb2x1dGUgb3IgYm90 aCkuCisgCitAQCAtMTA0MCw3ICsxMDQwLDcgQEAgY2RlZiBjbGFzcyBwQWRpY0NvbnZlcnRfRk1f WlooUmluZ01hcCk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIFJpbmdNYXAuX19pbml0 X18oc2VsZiwgSG9tKFIsIFpaLCBTZXRzKCkpKQorIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxs XyhzZWxmLCBfeCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIF94 KToKKyAgICAgICAgICIiIgorICAgICAgICAgRXZhbHVhdGlvbi4KKyAKK0BAIC0xMDgxLDcgKzEw ODEsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29udmVydF9RUV9GTShNb3JwaGlzbSk6CisgICAgICAg ICBNb3JwaGlzbS5fX2luaXRfXyhzZWxmLCBIb20oUVEsIFIsIFNldHNXaXRoUGFydGlhbE1hcHMo KSkpCisgICAgICAgICBzZWxmLl96ZXJvID0gUi5lbGVtZW50X2NsYXNzKFIsIDApCisgCistICAg IGNkZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgZGljdCBf ZXh0cmFfc2xvdHMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEhlbHBlciBmb3IgY29w eWluZyBhbmQgcGlja2xpbmcuCisgCitAQCAtMTEwMCw3ICsxMTAwLDcgQEAgY2RlZiBjbGFzcyBw QWRpY0NvbnZlcnRfUVFfRk0oTW9ycGhpc20pOgorICAgICAgICAgX3Nsb3RzWydfemVybyddID0g c2VsZi5femVybworICAgICAgICAgcmV0dXJuIF9zbG90cworIAorLSAgICBjZGVmIF91cGRhdGVf c2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpIG5vZXhjZXB0OgorKyAgICBjZGVmIF91cGRhdGVfc2xv dHMoc2VsZiwgZGljdCBfc2xvdHMpOgorICAgICAgICAgIiIiCisgICAgICAgICBIZWxwZXIgZm9y IGNvcHlpbmcgYW5kIHBpY2tsaW5nLgorIAorQEAgLTExMTgsNyArMTExOCw3IEBAIGNkZWYgY2xh c3MgcEFkaWNDb252ZXJ0X1FRX0ZNKE1vcnBoaXNtKToKKyAgICAgICAgIHNlbGYuX3plcm8gPSBf c2xvdHNbJ196ZXJvJ10KKyAgICAgICAgIE1vcnBoaXNtLl91cGRhdGVfc2xvdHMoc2VsZiwgX3Ns b3RzKQorIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCk6CisgICAgICAgICAiIiIKKyAgICAgICAg IEV2YWx1YXRpb24uCisgCitAQCAtMTEzNiw3ICsxMTM2LDcgQEAgY2RlZiBjbGFzcyBwQWRpY0Nv bnZlcnRfUVFfRk0oTW9ycGhpc20pOgorICAgICAgICAgY2NvbnZfbXBxX3QoYW5zLnZhbHVlLCAo PFJhdGlvbmFsPngpLnZhbHVlLCBhbnMucHJpbWVfcG93LnJhbV9wcmVjX2NhcCwgVHJ1ZSwgYW5z LnByaW1lX3BvdykKKyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBf Y2FsbF93aXRoX2FyZ3Moc2VsZiwgeCwgYXJncz0oKSwga3dkcz17fSkgbm9leGNlcHQ6CisrICAg IGNwZGVmIEVsZW1lbnQgX2NhbGxfd2l0aF9hcmdzKHNlbGYsIHgsIGFyZ3M9KCksIGt3ZHM9e30p OgorICAgICAgICAgIiIiCisgICAgICAgICBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgd2hlbiBzb21l IHByZWNpc2lvbiBjYXAgaXMgcGFzc2VkIGluIChyZWxhdGl2ZSBvciBhYnNvbHV0ZSBvciBib3Ro KS4KKyAKK0BAIC0xMjEwLDcgKzEyMTAsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29lcmNpb25fRk1f ZnJhY19maWVsZChSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgICAgIHNlbGYuX3plcm8gPSBLKDAp CisgICAgICAgICBzZWxmLl9zZWN0aW9uID0gcEFkaWNDb252ZXJ0X0ZNX2ZyYWNfZmllbGQoSywg UikKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgX3gpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCBfeCk6CisgICAgICAgICAiIiIKKyAgICAgICAg IEV2YWx1YXRpb24uCisgCitAQCAtMTIzNCw3ICsxMjM0LDcgQEAgY2RlZiBjbGFzcyBwQWRpY0Nv ZXJjaW9uX0ZNX2ZyYWNfZmllbGQoUmluZ0hvbW9tb3JwaGlzbSk6CisgICAgICAgICAgICAgYW5z LnVuaXQuX2NvZWZmcyA9IFtLKGMpIGZvciBjIGluIGFucy51bml0Ll9jb2VmZnNdCisgICAgICAg ICByZXR1cm4gYW5zCisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfd2l0aF9hcmdzKHNlbGYs IF94LCBhcmdzPSgpLCBrd2RzPXt9KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2Fs bF93aXRoX2FyZ3Moc2VsZiwgX3gsIGFyZ3M9KCksIGt3ZHM9e30pOgorICAgICAgICAgIiIiCisg ICAgICAgICBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgd2hlbiBzb21lIHByZWNpc2lvbiBjYXAgaXMg cGFzc2VkIGluCisgICAgICAgICAocmVsYXRpdmUgb3IgYWJzb2x1dGUgb3IgYm90aCkuCitAQCAt MTMwNSw3ICsxMzA1LDcgQEAgY2RlZiBjbGFzcyBwQWRpY0NvZXJjaW9uX0ZNX2ZyYWNfZmllbGQo UmluZ0hvbW9tb3JwaGlzbSk6CisgICAgICAgICAgICAgc2VsZi5fc2VjdGlvbiA9IGNvcHkuY29w eShzZWxmLl9zZWN0aW9uKQorICAgICAgICAgcmV0dXJuIHNlbGYuX3NlY3Rpb24KKyAKKy0gICAg Y2RlZiBkaWN0IF9leHRyYV9zbG90cyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBkaWN0IF9l eHRyYV9zbG90cyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgSGVscGVyIGZvciBjb3B5 aW5nIGFuZCBwaWNrbGluZy4KKyAKK0BAIC0xMzM0LDcgKzEzMzQsNyBAQCBjZGVmIGNsYXNzIHBB ZGljQ29lcmNpb25fRk1fZnJhY19maWVsZChSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgICAgIF9z bG90c1snX3NlY3Rpb24nXSA9IHNlbGYuc2VjdGlvbigpICMgdXNlIG1ldGhvZCBzaW5jZSBpdCBj b3BpZXMgY29lcmNpb24taW50ZXJuYWwgc2VjdGlvbnMuCisgICAgICAgICByZXR1cm4gX3Nsb3Rz CisgCistICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0IF9zbG90cykgbm9leGNlcHQ6 CisrICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0IF9zbG90cyk6CisgICAgICAgICAi IiIKKyAgICAgICAgIEhlbHBlciBmb3IgY29weWluZyBhbmQgcGlja2xpbmcuCisgCitAQCAtMTQy NSw3ICsxNDI1LDcgQEAgY2RlZiBjbGFzcyBwQWRpY0NvbnZlcnRfRk1fZnJhY19maWVsZChNb3Jw aGlzbSk6CisgICAgICAgICBNb3JwaGlzbS5fX2luaXRfXyhzZWxmLCBIb20oSywgUiwgU2V0c1dp dGhQYXJ0aWFsTWFwcygpKSkKKyAgICAgICAgIHNlbGYuX3plcm8gPSBSKDApCisgCistICAgIGNw ZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIF94KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVu dCBfY2FsbF8oc2VsZiwgX3gpOgorICAgICAgICAgIiIiCisgICAgICAgICBFdmFsdWF0aW9uLgor IAorQEAgLTE0NTEsNyArMTQ1MSw3IEBAIGNkZWYgY2xhc3MgcEFkaWNDb252ZXJ0X0ZNX2ZyYWNf ZmllbGQoTW9ycGhpc20pOgorICAgICAgICAgICAgIGFucy52YWx1ZS5fY29lZmZzID0gW1IoYykg Zm9yIGMgaW4gYW5zLnZhbHVlLl9jb2VmZnNdCisgICAgICAgICByZXR1cm4gYW5zCisgCistICAg IGNwZGVmIEVsZW1lbnQgX2NhbGxfd2l0aF9hcmdzKHNlbGYsIF94LCBhcmdzPSgpLCBrd2RzPXt9 KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF93aXRoX2FyZ3Moc2VsZiwgX3gs IGFyZ3M9KCksIGt3ZHM9e30pOgorICAgICAgICAgIiIiCisgICAgICAgICBUaGlzIGZ1bmN0aW9u IGlzIHVzZWQgd2hlbiBzb21lIHByZWNpc2lvbiBjYXAgaXMgcGFzc2VkIGluCisgICAgICAgICAo cmVsYXRpdmUgb3IgYWJzb2x1dGUgb3IgYm90aCkuCitAQCAtMTUwMCw3ICsxNTAwLDcgQEAgY2Rl ZiBjbGFzcyBwQWRpY0NvbnZlcnRfRk1fZnJhY19maWVsZChNb3JwaGlzbSk6CisgICAgICAgICAg ICAgYW5zLnZhbHVlLl9jb2VmZnMgPSBbUihjKSBmb3IgYyBpbiBhbnMudmFsdWUuX2NvZWZmc10K KyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY2RlZiBkaWN0IF9leHRyYV9zbG90cyhzZWxm KSBub2V4Y2VwdDoKKysgICAgY2RlZiBkaWN0IF9leHRyYV9zbG90cyhzZWxmKToKKyAgICAgICAg ICIiIgorICAgICAgICAgSGVscGVyIGZvciBjb3B5aW5nIGFuZCBwaWNrbGluZy4KKyAKK0BAIC0x NTI5LDcgKzE1MjksNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29udmVydF9GTV9mcmFjX2ZpZWxkKE1v cnBoaXNtKToKKyAgICAgICAgIF9zbG90c1snX3plcm8nXSA9IHNlbGYuX3plcm8KKyAgICAgICAg IHJldHVybiBfc2xvdHMKKyAKKy0gICAgY2RlZiBfdXBkYXRlX3Nsb3RzKHNlbGYsIGRpY3QgX3Ns b3RzKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfdXBkYXRlX3Nsb3RzKHNlbGYsIGRpY3QgX3Nsb3Rz KToKKyAgICAgICAgICIiIgorICAgICAgICAgSGVscGVyIGZvciBjb3B5aW5nIGFuZCBwaWNrbGlu Zy4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvRk1fdGVtcGxhdGVfaGVh ZGVyLnB4aSBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9GTV90ZW1wbGF0ZV9oZWFkZXIucHhpCitp bmRleCBkOWVjYzdkMDcxNS4uYmQ2NTExNjc2MjIgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5n cy9wYWRpY3MvRk1fdGVtcGxhdGVfaGVhZGVyLnB4aQorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcGFk aWNzL0ZNX3RlbXBsYXRlX2hlYWRlci5weGkKK0BAIC0zMSw3ICszMSw3IEBAIGNkZWYgY2xhc3Mg Rk1FbGVtZW50KHBBZGljVGVtcGxhdGVFbGVtZW50KToKKyAgICAgY2RlZiBjZWxlbWVudCB2YWx1 ZQorICAgICBjZGVmIGxvbmcgYWJzcHJlYworIAorLSAgICBjZGVmIEZNRWxlbWVudCBfbmV3X2Mo c2VsZikgbm9leGNlcHQKKysgICAgY2RlZiBGTUVsZW1lbnQgX25ld19jKHNlbGYpCisgCisgY2Rl ZiBjbGFzcyBwQWRpY0NvZXJjaW9uX1paX0ZNKFJpbmdIb21vbW9ycGhpc20pOgorICAgICBjZGVm IEZNRWxlbWVudCBfemVybworZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9GUF90 ZW1wbGF0ZS5weGkgYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvRlBfdGVtcGxhdGUucHhpCitpbmRl eCAyOWRkZDFlNzJjNy4uNWM3Zjk0MDUxZTcgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9w YWRpY3MvRlBfdGVtcGxhdGUucHhpCisrKysgYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvRlBfdGVt cGxhdGUucHhpCitAQCAtMTcxLDcgKzE3MSw3IEBAIGNkZWYgY2xhc3MgRlBFbGVtZW50KHBBZGlj VGVtcGxhdGVFbGVtZW50KToKKyAgICAgICAgIGNzZXRvbmUoc2VsZi51bml0LCBzZWxmLnByaW1l X3BvdykKKyAgICAgICAgIHNlbGYub3JkcCA9IG1pbnVzbWF4b3JkcAorIAorLSAgICBjZGVmIEZQ RWxlbWVudCBfbmV3X2Moc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgRlBFbGVtZW50IF9uZXdf YyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ3JlYXRlcyBhIG5ldyBlbGVtZW50IHdp dGggdGhlIHNhbWUgYmFzaWMgaW5mby4KKyAKK0BAIC0xOTcsNyArMTk3LDcgQEAgY2RlZiBjbGFz cyBGUEVsZW1lbnQocEFkaWNUZW1wbGF0ZUVsZW1lbnQpOgorICAgICAgICAgY2NvbnN0cnVjdChh bnMudW5pdCwgYW5zLnByaW1lX3BvdykKKyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY2Rl ZiBwQWRpY1RlbXBsYXRlRWxlbWVudCBfbmV3X3dpdGhfdmFsdWUoc2VsZiwgY2VsZW1lbnQgdmFs dWUsIGxvbmcgYWJzcHJlYykgbm9leGNlcHQ6CisrICAgIGNkZWYgcEFkaWNUZW1wbGF0ZUVsZW1l bnQgX25ld193aXRoX3ZhbHVlKHNlbGYsIGNlbGVtZW50IHZhbHVlLCBsb25nIGFic3ByZWMpOgor ICAgICAgICAgIiIiCisgICAgICAgICBDcmVhdGVzIGEgbmV3IGVsZW1lbnQgd2l0aCBhIGdpdmVu IHZhbHVlIGFuZCBhYnNvbHV0ZSBwcmVjaXNpb24uCisgCitAQCAtMzEzLDcgKzMxMyw3IEBAIGNk ZWYgY2xhc3MgRlBFbGVtZW50KHBBZGljVGVtcGxhdGVFbGVtZW50KToKKyAjICAgICAgICAiIiIK KyAjICAgICAgICByZXR1cm4gKDxFbGVtZW50PnNlbGYpLl9yaWNoY21wKHJpZ2h0LCBvcCkKKyAK Ky0gICAgY3BkZWYgX25lZ18oc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9uZWdfKHNlbGYp OgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBhZGRpdGl2ZSBpbnZlcnNlIG9m IHRoaXMgZWxlbWVudC4KKyAKK0BAIC0zMzIsNyArMzMyLDcgQEAgY2RlZiBjbGFzcyBGUEVsZW1l bnQocEFkaWNUZW1wbGF0ZUVsZW1lbnQpOgorICAgICAgICAgICAgIGNyZWR1Y2Vfc21hbGwoYW5z LnVuaXQsIGFucy51bml0LCBhbnMucHJpbWVfcG93LnJhbV9wcmVjX2NhcCwgYW5zLnByaW1lX3Bv dykKKyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwgX3JpZ2h0 KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FkZF8oc2VsZiwgX3JpZ2h0KToKKyAgICAgICAgIHIi IiIKKyAgICAgICAgIFJldHVybiB0aGUgc3VtIG9mIHRoaXMgZWxlbWVudCBhbmQgYGBfcmlnaHRg YC4KKyAKK0BAIC0zNzYsNyArMzc2LDcgQEAgY2RlZiBjbGFzcyBGUEVsZW1lbnQocEFkaWNUZW1w bGF0ZUVsZW1lbnQpOgorICAgICAgICAgICAgICAgICBjcmVkdWNlKGFucy51bml0LCBhbnMudW5p dCwgYW5zLnByaW1lX3Bvdy5yYW1fcHJlY19jYXAsIGFucy5wcmltZV9wb3cpCisgICAgICAgICBy ZXR1cm4gYW5zCisgCistICAgIGNwZGVmIF9zdWJfKHNlbGYsIF9yaWdodCkgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIF9zdWJfKHNlbGYsIF9yaWdodCk6CisgICAgICAgICByIiIiCisgICAgICAgICBS ZXR1cm4gdGhlIGRpZmZlcmVuY2Ugb2YgdGhpcyBlbGVtZW50IGFuZCBgYF9yaWdodGBgLgorIAor QEAgLTQ1NSw3ICs0NTUsNyBAQCBjZGVmIGNsYXNzIEZQRWxlbWVudChwQWRpY1RlbXBsYXRlRWxl bWVudCk6CisgICAgICAgICAgICAgY2ludmVydChhbnMudW5pdCwgc2VsZi51bml0LCBhbnMucHJp bWVfcG93LnJhbV9wcmVjX2NhcCwgYW5zLnByaW1lX3BvdykKKyAgICAgICAgIHJldHVybiBhbnMK KyAKKy0gICAgY3BkZWYgX211bF8oc2VsZiwgX3JpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X211bF8oc2VsZiwgX3JpZ2h0KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUg cHJvZHVjdCBvZiB0aGlzIGVsZW1lbnQgYW5kIGBgX3JpZ2h0YGAuCisgCitAQCAtNDg4LDcgKzQ4 OCw3IEBAIGNkZWYgY2xhc3MgRlBFbGVtZW50KHBBZGljVGVtcGxhdGVFbGVtZW50KToKKyAgICAg ICAgIGNyZWR1Y2UoYW5zLnVuaXQsIGFucy51bml0LCBhbnMucHJpbWVfcG93LnJhbV9wcmVjX2Nh cCwgYW5zLnByaW1lX3BvdykKKyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY3BkZWYgX2Rp dl8oc2VsZiwgX3JpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2Rpdl8oc2VsZiwgX3JpZ2h0 KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgcXVvdGllbnQgb2YgdGhpcyBl bGVtZW50IGFuZCBgYHJpZ2h0YGAuCisgCitAQCAtNjY1LDcgKzY2NSw3IEBAIGNkZWYgY2xhc3Mg RlBFbGVtZW50KHBBZGljVGVtcGxhdGVFbGVtZW50KToKKyAgICAgICAgICAgICBhbnMub3JkcCA9 IDAKKyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY2RlZiBwQWRpY1RlbXBsYXRlRWxlbWVu dCBfbHNoaWZ0X2Moc2VsZiwgbG9uZyBzaGlmdCkgbm9leGNlcHQ6CisrICAgIGNkZWYgcEFkaWNU ZW1wbGF0ZUVsZW1lbnQgX2xzaGlmdF9jKHNlbGYsIGxvbmcgc2hpZnQpOgorICAgICAgICAgciIi IgorICAgICAgICAgTXVsdGlwbGllcyBzZWxmIGJ5IGBccGlee3NoaWZ0fWAuCisgCitAQCAtNzE4 LDcgKzcxOCw3IEBAIGNkZWYgY2xhc3MgRlBFbGVtZW50KHBBZGljVGVtcGxhdGVFbGVtZW50KToK KyAgICAgICAgICAgICBjY29weShhbnMudW5pdCwgc2VsZi51bml0LCBhbnMucHJpbWVfcG93KQor ICAgICAgICAgcmV0dXJuIGFucworIAorLSAgICBjZGVmIHBBZGljVGVtcGxhdGVFbGVtZW50IF9y c2hpZnRfYyhzZWxmLCBsb25nIHNoaWZ0KSBub2V4Y2VwdDoKKysgICAgY2RlZiBwQWRpY1RlbXBs YXRlRWxlbWVudCBfcnNoaWZ0X2Moc2VsZiwgbG9uZyBzaGlmdCk6CisgICAgICAgICByIiIiCisg ICAgICAgICBEaXZpZGVzIGJ5IGBccGlee3NoaWZ0fWAuCisgCitAQCAtOTg3LDcgKzk4Nyw3IEBA IGNkZWYgY2xhc3MgRlBFbGVtZW50KHBBZGljVGVtcGxhdGVFbGVtZW50KToKKyAgICAgICAgIGNk ZWYgRlBFbGVtZW50IHJpZ2h0ID0gX3JpZ2h0CisgICAgICAgICByZXR1cm4gY2NtcChzZWxmLnVu aXQsIHJpZ2h0LnVuaXQsIHNlbGYucHJpbWVfcG93LnJhbV9wcmVjX2NhcCwgRmFsc2UsIEZhbHNl LCBzZWxmLnByaW1lX3BvdykKKyAKKy0gICAgY2RlZiBwQWRpY1RlbXBsYXRlRWxlbWVudCBsaWZ0 X3RvX3ByZWNpc2lvbl9jKHNlbGYsIGxvbmcgYWJzcHJlYykgbm9leGNlcHQ6CisrICAgIGNkZWYg cEFkaWNUZW1wbGF0ZUVsZW1lbnQgbGlmdF90b19wcmVjaXNpb25fYyhzZWxmLCBsb25nIGFic3By ZWMpOgorICAgICAgICAgIiIiCisgICAgICAgICBMaWZ0IHRoaXMgZWxlbWVudCB0byBhbm90aGVy IHdpdGggcHJlY2lzaW9uIGF0IGxlYXN0IGFic3ByZWMuCisgCitAQCAtMTEzOCw3ICsxMTM4LDcg QEAgY2RlZiBjbGFzcyBGUEVsZW1lbnQocEFkaWNUZW1wbGF0ZUVsZW1lbnQpOgorICAgICAgICAg ICAgIG1wel9zZXRfc2koYW5zLnZhbHVlLCBzZWxmLnByaW1lX3Bvdy5yYW1fcHJlY19jYXApCisg ICAgICAgICByZXR1cm4gYW5zCisgCistICAgIGNwZGVmIHBBZGljVGVtcGxhdGVFbGVtZW50IHVu aXRfcGFydChGUEVsZW1lbnQgc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIHBBZGljVGVtcGxh dGVFbGVtZW50IHVuaXRfcGFydChGUEVsZW1lbnQgc2VsZik6CisgICAgICAgICByIiIiCisgICAg ICAgICBSZXR1cm4gdGhlIHVuaXQgcGFydCBvZiB0aGlzIGVsZW1lbnQuCisgCitAQCAtMTIwNSw3 ICsxMjA1LDcgQEAgY2RlZiBjbGFzcyBGUEVsZW1lbnQocEFkaWNUZW1wbGF0ZUVsZW1lbnQpOgor ICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5vcmRwCisgCistICAgIGNwZGVmIHZh bF91bml0KHNlbGYsIHA9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHZhbF91bml0KHNlbGYs IHA9Tm9uZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBhIDItdHVwbGUsIHRoZSBm aXJzdCBlbGVtZW50IHNldCB0byB0aGUgdmFsdWF0aW9uIG9mCisgICAgICAgICB0aGlzIGVsZW1l bnQsIGFuZCB0aGUgc2Vjb25kIHRvIHRoZSB1bml0IHBhcnQuCitAQCAtMTI3OSw3ICsxMjc5LDcg QEAgY2RlZiBjbGFzcyBwQWRpY0NvZXJjaW9uX1paX0ZQKFJpbmdIb21vbW9ycGhpc20pOgorICAg ICAgICAgc2VsZi5femVybyA9IFIuZWxlbWVudF9jbGFzcyhSLCAwKQorICAgICAgICAgc2VsZi5f c2VjdGlvbiA9IHBBZGljQ29udmVydF9GUF9aWihSKQorIAorLSAgICBjZGVmIGRpY3QgX2V4dHJh X3Nsb3RzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYp OgorICAgICAgICAgIiIiCisgICAgICAgICBIZWxwZXIgZm9yIGNvcHlpbmcgYW5kIHBpY2tsaW5n LgorIAorQEAgLTEyOTksNyArMTI5OSw3IEBAIGNkZWYgY2xhc3MgcEFkaWNDb2VyY2lvbl9aWl9G UChSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgICAgIF9zbG90c1snX3NlY3Rpb24nXSA9IHNlbGYu c2VjdGlvbigpICMgdXNlIG1ldGhvZCBzaW5jZSBpdCBjb3BpZXMgY29lcmNpb24taW50ZXJuYWwg c2VjdGlvbnMuCisgICAgICAgICByZXR1cm4gX3Nsb3RzCisgCistICAgIGNkZWYgX3VwZGF0ZV9z bG90cyhzZWxmLCBkaWN0IF9zbG90cykgbm9leGNlcHQ6CisrICAgIGNkZWYgX3VwZGF0ZV9zbG90 cyhzZWxmLCBkaWN0IF9zbG90cyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEhlbHBlciBmb3Ig Y29weWluZyBhbmQgcGlja2xpbmcuCisgCitAQCAtMTMxOCw3ICsxMzE4LDcgQEAgY2RlZiBjbGFz cyBwQWRpY0NvZXJjaW9uX1paX0ZQKFJpbmdIb21vbW9ycGhpc20pOgorICAgICAgICAgc2VsZi5f c2VjdGlvbiA9IF9zbG90c1snX3NlY3Rpb24nXQorICAgICAgICAgUmluZ0hvbW9tb3JwaGlzbS5f dXBkYXRlX3Nsb3RzKHNlbGYsIF9zbG90cykKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8o c2VsZiwgeCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpOgor ICAgICAgICAgIiIiCisgICAgICAgICBFdmFsdWF0aW9uLgorIAorQEAgLTEzMzYsNyArMTMzNiw3 IEBAIGNkZWYgY2xhc3MgcEFkaWNDb2VyY2lvbl9aWl9GUChSaW5nSG9tb21vcnBoaXNtKToKKyAg ICAgICAgIGFucy5vcmRwID0gY2NvbnZfbXB6X3QoYW5zLnVuaXQsICg8SW50ZWdlcj54KS52YWx1 ZSwgYW5zLnByaW1lX3Bvdy5yYW1fcHJlY19jYXAsIEZhbHNlLCBhbnMucHJpbWVfcG93KQorICAg ICAgICAgcmV0dXJuIGFucworIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsX3dpdGhfYXJncyhz ZWxmLCB4LCBhcmdzPSgpLCBrd2RzPXt9KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBf Y2FsbF93aXRoX2FyZ3Moc2VsZiwgeCwgYXJncz0oKSwga3dkcz17fSk6CisgICAgICAgICAiIiIK KyAgICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB3aGVuIHNvbWUgcHJlY2lzaW9uIGNhcCBp cyBwYXNzZWQgaW4gKHJlbGF0aXZlIG9yIGFic29sdXRlIG9yIGJvdGgpLgorIAorQEAgLTE0MzAs NyArMTQzMCw3IEBAIGNkZWYgY2xhc3MgcEFkaWNDb252ZXJ0X0ZQX1paKFJpbmdNYXApOgorICAg ICAgICAgZWxzZToKKyAgICAgICAgICAgICBSaW5nTWFwLl9faW5pdF9fKHNlbGYsIEhvbShSLCBa WiwgU2V0cygpKSkKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgX3gpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCBfeCk6CisgICAgICAgICAiIiIK KyAgICAgICAgIEV2YWx1YXRpb24uCisgCitAQCAtMTQ5MSw3ICsxNDkxLDcgQEAgY2RlZiBjbGFz cyBwQWRpY0NvZXJjaW9uX1FRX0ZQKFJpbmdIb21vbW9ycGhpc20pOgorICAgICAgICAgc2VsZi5f emVybyA9IFIuZWxlbWVudF9jbGFzcyhSLCAwKQorICAgICAgICAgc2VsZi5fc2VjdGlvbiA9IHBB ZGljQ29udmVydF9GUF9RUShSKQorIAorLSAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYp IG5vZXhjZXB0OgorKyAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpOgorICAgICAgICAg IiIiCisgICAgICAgICBIZWxwZXIgZm9yIGNvcHlpbmcgYW5kIHBpY2tsaW5nLgorIAorQEAgLTE1 MTcsNyArMTUxNyw3IEBAIGNkZWYgY2xhc3MgcEFkaWNDb2VyY2lvbl9RUV9GUChSaW5nSG9tb21v cnBoaXNtKToKKyAgICAgICAgIF9zbG90c1snX3NlY3Rpb24nXSA9IHNlbGYuc2VjdGlvbigpICMg dXNlIG1ldGhvZCBzaW5jZSBpdCBjb3BpZXMgY29lcmNpb24taW50ZXJuYWwgc2VjdGlvbnMuCisg ICAgICAgICByZXR1cm4gX3Nsb3RzCisgCistICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBk aWN0IF9zbG90cykgbm9leGNlcHQ6CisrICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0 IF9zbG90cyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEhlbHBlciBmb3IgY29weWluZyBhbmQg cGlja2xpbmcuCisgCitAQCAtMTU0Miw3ICsxNTQyLDcgQEAgY2RlZiBjbGFzcyBwQWRpY0NvZXJj aW9uX1FRX0ZQKFJpbmdIb21vbW9ycGhpc20pOgorICAgICAgICAgc2VsZi5fc2VjdGlvbiA9IF9z bG90c1snX3NlY3Rpb24nXQorICAgICAgICAgUmluZ0hvbW9tb3JwaGlzbS5fdXBkYXRlX3Nsb3Rz KHNlbGYsIF9zbG90cykKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpOgorICAgICAgICAgIiIi CisgICAgICAgICBFdmFsdWF0aW9uLgorIAorQEAgLTE1NjQsNyArMTU2NCw3IEBAIGNkZWYgY2xh c3MgcEFkaWNDb2VyY2lvbl9RUV9GUChSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgICAgIGFucy5v cmRwID0gY2NvbnZfbXBxX3QoYW5zLnVuaXQsICg8UmF0aW9uYWw+eCkudmFsdWUsIGFucy5wcmlt ZV9wb3cucmFtX3ByZWNfY2FwLCBGYWxzZSwgc2VsZi5femVyby5wcmltZV9wb3cpCisgICAgICAg ICByZXR1cm4gYW5zCisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfd2l0aF9hcmdzKHNlbGYs IHgsIGFyZ3M9KCksIGt3ZHM9e30pIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxs X3dpdGhfYXJncyhzZWxmLCB4LCBhcmdzPSgpLCBrd2RzPXt9KToKKyAgICAgICAgICIiIgorICAg ICAgICAgVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHdoZW4gc29tZSBwcmVjaXNpb24gY2FwIGlzIHBh c3NlZCBpbgorICAgICAgICAgKHJlbGF0aXZlIG9yIGFic29sdXRlIG9yIGJvdGgpLgorQEAgLTE2 NDcsNyArMTY0Nyw3IEBAIGNkZWYgY2xhc3MgcEFkaWNDb252ZXJ0X0ZQX1FRKFJpbmdNYXApOgor ICAgICAgICAgIiIiCisgICAgICAgICBSaW5nTWFwLl9faW5pdF9fKHNlbGYsIEhvbShSLCBRUSwg U2V0c1dpdGhQYXJ0aWFsTWFwcygpKSkKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2Vs ZiwgX3gpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCBfeCk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIEV2YWx1YXRpb24uCisgCitAQCAtMTY5NCw3ICsxNjk0LDcg QEAgY2RlZiBjbGFzcyBwQWRpY0NvbnZlcnRfUVFfRlAoTW9ycGhpc20pOgorICAgICAgICAgTW9y cGhpc20uX19pbml0X18oc2VsZiwgSG9tKFFRLCBSLCBTZXRzV2l0aFBhcnRpYWxNYXBzKCkpKQor ICAgICAgICAgc2VsZi5femVybyA9IFIuZWxlbWVudF9jbGFzcyhSLCAwKQorIAorLSAgICBjZGVm IGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIGRpY3QgX2V4dHJh X3Nsb3RzKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBIZWxwZXIgZm9yIGNvcHlpbmcg YW5kIHBpY2tsaW5nLgorIAorQEAgLTE3MTMsNyArMTcxMyw3IEBAIGNkZWYgY2xhc3MgcEFkaWND b252ZXJ0X1FRX0ZQKE1vcnBoaXNtKToKKyAgICAgICAgIF9zbG90c1snX3plcm8nXSA9IHNlbGYu X3plcm8KKyAgICAgICAgIHJldHVybiBfc2xvdHMKKyAKKy0gICAgY2RlZiBfdXBkYXRlX3Nsb3Rz KHNlbGYsIGRpY3QgX3Nsb3RzKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfdXBkYXRlX3Nsb3RzKHNl bGYsIGRpY3QgX3Nsb3RzKToKKyAgICAgICAgICIiIgorICAgICAgICAgSGVscGVyIGZvciBjb3B5 aW5nIGFuZCBwaWNrbGluZy4KKyAKK0BAIC0xNzMxLDcgKzE3MzEsNyBAQCBjZGVmIGNsYXNzIHBB ZGljQ29udmVydF9RUV9GUChNb3JwaGlzbSk6CisgICAgICAgICBzZWxmLl96ZXJvID0gX3Nsb3Rz WydfemVybyddCisgICAgICAgICBNb3JwaGlzbS5fdXBkYXRlX3Nsb3RzKHNlbGYsIF9zbG90cykK KyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpOgorICAgICAgICAgIiIiCisgICAgICAgICBFdmFs dWF0aW9uLgorIAorQEAgLTE3NTEsNyArMTc1MSw3IEBAIGNkZWYgY2xhc3MgcEFkaWNDb252ZXJ0 X1FRX0ZQKE1vcnBoaXNtKToKKyAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJwIGRpdmlk ZXMgdGhlIGRlbm9taW5hdG9yIikKKyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY3BkZWYg RWxlbWVudCBfY2FsbF93aXRoX2FyZ3Moc2VsZiwgeCwgYXJncz0oKSwga3dkcz17fSkgbm9leGNl cHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfd2l0aF9hcmdzKHNlbGYsIHgsIGFyZ3M9KCks IGt3ZHM9e30pOgorICAgICAgICAgIiIiCisgICAgICAgICBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQg d2hlbiBzb21lIHByZWNpc2lvbiBjYXAgaXMgcGFzc2VkIGluIChyZWxhdGl2ZSBvciBhYnNvbHV0 ZSBvciBib3RoKS4KKyAKK0BAIC0xODMzLDcgKzE4MzMsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29l cmNpb25fRlBfZnJhY19maWVsZChSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgICAgIHNlbGYuX3pl cm8gPSBLKDApCisgICAgICAgICBzZWxmLl9zZWN0aW9uID0gcEFkaWNDb252ZXJ0X0ZQX2ZyYWNf ZmllbGQoSywgUikKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgX3gpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCBfeCk6CisgICAgICAgICByIiIi CisgICAgICAgICBFdmFsdWF0aW9uLgorIAorQEAgLTE4NTgsNyArMTg1OCw3IEBAIGNkZWYgY2xh c3MgcEFkaWNDb2VyY2lvbl9GUF9mcmFjX2ZpZWxkKFJpbmdIb21vbW9ycGhpc20pOgorICAgICAg ICAgICAgIGFucy51bml0Ll9jb2VmZnMgPSBbSyhjKSBmb3IgYyBpbiBhbnMudW5pdC5fY29lZmZz XQorICAgICAgICAgcmV0dXJuIGFucworIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsX3dpdGhf YXJncyhzZWxmLCBfeCwgYXJncz0oKSwga3dkcz17fSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVs ZW1lbnQgX2NhbGxfd2l0aF9hcmdzKHNlbGYsIF94LCBhcmdzPSgpLCBrd2RzPXt9KToKKyAgICAg ICAgIHIiIiIKKyAgICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB3aGVuIHNvbWUgcHJlY2lz aW9uIGNhcCBpcyBwYXNzZWQgaW4KKyAgICAgICAgIChyZWxhdGl2ZSBvciBhYnNvbHV0ZSBvciBi b3RoKS4KK0BAIC0xOTI5LDcgKzE5MjksNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29lcmNpb25fRlBf ZnJhY19maWVsZChSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0 dXJuIHNlbGYuX3NlY3Rpb24KKyAKKy0gICAgY2RlZiBkaWN0IF9leHRyYV9zbG90cyhzZWxmKSBu b2V4Y2VwdDoKKysgICAgY2RlZiBkaWN0IF9leHRyYV9zbG90cyhzZWxmKToKKyAgICAgICAgIHIi IiIKKyAgICAgICAgIEhlbHBlciBmb3IgY29weWluZyBhbmQgcGlja2xpbmcuCisgCitAQCAtMTk1 OCw3ICsxOTU4LDcgQEAgY2RlZiBjbGFzcyBwQWRpY0NvZXJjaW9uX0ZQX2ZyYWNfZmllbGQoUmlu Z0hvbW9tb3JwaGlzbSk6CisgICAgICAgICBfc2xvdHNbJ19zZWN0aW9uJ10gPSBzZWxmLnNlY3Rp b24oKSAjIHVzZSBtZXRob2Qgc2luY2UgaXQgY29waWVzIGNvZXJjaW9uLWludGVybmFsIHNlY3Rp b25zLgorICAgICAgICAgcmV0dXJuIF9zbG90cworIAorLSAgICBjZGVmIF91cGRhdGVfc2xvdHMo c2VsZiwgZGljdCBfc2xvdHMpIG5vZXhjZXB0OgorKyAgICBjZGVmIF91cGRhdGVfc2xvdHMoc2Vs ZiwgZGljdCBfc2xvdHMpOgorICAgICAgICAgciIiIgorICAgICAgICAgSGVscGVyIGZvciBjb3B5 aW5nIGFuZCBwaWNrbGluZy4KKyAKK0BAIC0yMDE2LDcgKzIwMTYsNyBAQCBjZGVmIGNsYXNzIHBB ZGljQ29udmVydF9GUF9mcmFjX2ZpZWxkKE1vcnBoaXNtKToKKyAgICAgICAgIE1vcnBoaXNtLl9f aW5pdF9fKHNlbGYsIEhvbShLLCBSLCBTZXRzV2l0aFBhcnRpYWxNYXBzKCkpKQorICAgICAgICAg c2VsZi5femVybyA9IFIoMCkKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgX3gp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCBfeCk6CisgICAgICAg ICByIiIiCisgICAgICAgICBFdmFsdWF0aW9uLgorIAorQEAgLTIwNDEsNyArMjA0MSw3IEBAIGNk ZWYgY2xhc3MgcEFkaWNDb252ZXJ0X0ZQX2ZyYWNfZmllbGQoTW9ycGhpc20pOgorICAgICAgICAg ICAgIGFucy51bml0Ll9jb2VmZnMgPSBbSyhjKSBmb3IgYyBpbiBhbnMudW5pdC5fY29lZmZzXQor ICAgICAgICAgcmV0dXJuIGFucworIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsX3dpdGhfYXJn cyhzZWxmLCBfeCwgYXJncz0oKSwga3dkcz17fSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1l bnQgX2NhbGxfd2l0aF9hcmdzKHNlbGYsIF94LCBhcmdzPSgpLCBrd2RzPXt9KToKKyAgICAgICAg IHIiIiIKKyAgICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB3aGVuIHNvbWUgcHJlY2lzaW9u IGNhcCBpcyBwYXNzZWQgaW4KKyAgICAgICAgIChyZWxhdGl2ZSBvciBhYnNvbHV0ZSBvciBib3Ro KS4KK0BAIC0yMDk4LDcgKzIwOTgsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ29udmVydF9GUF9mcmFj X2ZpZWxkKE1vcnBoaXNtKToKKyAgICAgICAgICAgICAgICAgYW5zLnVuaXQuX2NvZWZmcyA9IFtL KGMpIGZvciBjIGluIGFucy51bml0Ll9jb2VmZnNdCisgICAgICAgICByZXR1cm4gYW5zCisgCist ICAgIGNkZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgZGlj dCBfZXh0cmFfc2xvdHMoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBIZWxwZXIgZm9y IGNvcHlpbmcgYW5kIHBpY2tsaW5nLgorIAorQEAgLTIxMjcsNyArMjEyNyw3IEBAIGNkZWYgY2xh c3MgcEFkaWNDb252ZXJ0X0ZQX2ZyYWNfZmllbGQoTW9ycGhpc20pOgorICAgICAgICAgX3Nsb3Rz WydfemVybyddID0gc2VsZi5femVybworICAgICAgICAgcmV0dXJuIF9zbG90cworIAorLSAgICBj ZGVmIF91cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpIG5vZXhjZXB0OgorKyAgICBjZGVm IF91cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpOgorICAgICAgICAgciIiIgorICAgICAg ICAgSGVscGVyIGZvciBjb3B5aW5nIGFuZCBwaWNrbGluZy4KKyAKK2RpZmYgLS1naXQgYS9zcmMv c2FnZS9yaW5ncy9wYWRpY3MvRlBfdGVtcGxhdGVfaGVhZGVyLnB4aSBiL3NyYy9zYWdlL3Jpbmdz L3BhZGljcy9GUF90ZW1wbGF0ZV9oZWFkZXIucHhpCitpbmRleCAxMDhkODA0Mjg1MC4uZmRlNTk4 ZTA1ZmQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvRlBfdGVtcGxhdGVfaGVh ZGVyLnB4aQorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL0ZQX3RlbXBsYXRlX2hlYWRlci5w eGkKK0BAIC0zMSwxMCArMzEsMTAgQEAgY2RlZiBjbGFzcyBGUEVsZW1lbnQocEFkaWNUZW1wbGF0 ZUVsZW1lbnQpOgorICAgICBjZGVmIGNlbGVtZW50IHVuaXQKKyAgICAgY2RlZiBsb25nIG9yZHAK KyAKKy0gICAgY2RlZiBGUEVsZW1lbnQgX25ld19jKHNlbGYpIG5vZXhjZXB0CisrICAgIGNkZWYg RlBFbGVtZW50IF9uZXdfYyhzZWxmKQorICAgICBjZGVmIGludCBfbm9ybWFsaXplKHNlbGYpIGV4 Y2VwdCAtMQorICAgICBjZGVmIGludCBfc2V0X2luZmluaXR5KHNlbGYpIGV4Y2VwdCAtMQorLSAg ICBjcGRlZiB2YWxfdW5pdChzZWxmLCBwPSopIG5vZXhjZXB0CisrICAgIGNwZGVmIHZhbF91bml0 KHNlbGYsIHA9KikKKyAKKyBjZGVmIGNsYXNzIHBBZGljQ29lcmNpb25fWlpfRlAoUmluZ0hvbW9t b3JwaGlzbSk6CisgICAgIGNkZWYgRlBFbGVtZW50IF96ZXJvCitkaWZmIC0tZ2l0IGEvc3JjL3Nh Z2UvcmluZ3MvcGFkaWNzL2xvY2FsX2dlbmVyaWNfZWxlbWVudC5weXggYi9zcmMvc2FnZS9yaW5n cy9wYWRpY3MvbG9jYWxfZ2VuZXJpY19lbGVtZW50LnB5eAoraW5kZXggZjYzY2MxMTRlOTYuLmUx ZjVhN2EwNGEwIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL2xvY2FsX2dlbmVy aWNfZWxlbWVudC5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9sb2NhbF9nZW5lcmlj X2VsZW1lbnQucHl4CitAQCAtMzIsNyArMzIsNyBAQCBjZGVmIGNsYXNzIExvY2FsR2VuZXJpY0Vs ZW1lbnQoQ29tbXV0YXRpdmVSaW5nRWxlbWVudCk6CisgICAgICNjcGRlZiBfYWRkXyhzZWxmLCBy aWdodCk6CisgICAgICMgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorIAorLSAgICBjcGRl ZiBfZGl2XyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9kaXZfKHNlbGYsIHJp Z2h0KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybnMgdGhlIHF1b3RpZW50IG9mIGBg c2VsZmBgIGJ5IGBgcmlnaHRgYC4KKyAKK0BAIC00MzUsNyArNDM1LDcgQEAgY2RlZiBjbGFzcyBM b2NhbEdlbmVyaWNFbGVtZW50KENvbW11dGF0aXZlUmluZ0VsZW1lbnQpOgorICAgICAjZGVmIF9f cG93X18oc2VsZiwgcmlnaHQpOgorICAgICAjICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IK KyAKKy0gICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBf c3ViXyhzZWxmLCByaWdodCk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm5zIHRoZSBk aWZmZXJlbmNlIGJldHdlZW4gYGBzZWxmYGAgYW5kIGBgcmlnaHRgYC4KKyAKK2RpZmYgLS1naXQg YS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvbW9ycGhpc20ucHhkIGIvc3JjL3NhZ2UvcmluZ3MvcGFk aWNzL21vcnBoaXNtLnB4ZAoraW5kZXggYTkwNGJhMTRjYTAuLmI2YWZlZGQyMzc3IDEwMDY0NAor LS0tIGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL21vcnBoaXNtLnB4ZAorKysrIGIvc3JjL3NhZ2Uv cmluZ3MvcGFkaWNzL21vcnBoaXNtLnB4ZAorQEAgLTcsNCArNyw0IEBAIGNkZWYgY2xhc3MgRnJv YmVuaXVzRW5kb21vcnBoaXNtX3BhZGljcyhSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgY2RlZiBs b25nIF9wb3dlcgorICAgICBjZGVmIGxvbmcgX29yZGVyCisgCistICAgIGNwZGVmIEVsZW1lbnQg X2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYs IHgpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL21vcnBoaXNtLnB5eCBiL3Ny Yy9zYWdlL3JpbmdzL3BhZGljcy9tb3JwaGlzbS5weXgKK2luZGV4IGE1MGM5MmEwNmY5Li5jODIz OGJkYzlmYSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9tb3JwaGlzbS5weXgK KysrKyBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9tb3JwaGlzbS5weXgKK0BAIC04Niw3ICs4Niw3 IEBAIGNkZWYgY2xhc3MgRnJvYmVuaXVzRW5kb21vcnBoaXNtX3BhZGljcyhSaW5nSG9tb21vcnBo aXNtKToKKyAgICAgICAgIHNlbGYuX29yZGVyID0gc2VsZi5fZGVncmVlIC8gZG9tYWluLmFic29s dXRlX2YoKS5nY2Qoc2VsZi5fcG93ZXIpCisgICAgICAgICBSaW5nSG9tb21vcnBoaXNtLl9faW5p dF9fKHNlbGYsIEhvbShkb21haW4sIGRvbWFpbikpCisgCistICAgIGNkZWYgZGljdCBfZXh0cmFf c2xvdHMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZik6 CisgICAgICAgICAiIiIKKyAgICAgICAgIEhlbHBlciBmb3IgY29weWluZyBhbmQgcGlja2xpbmcu CisgCitAQCAtMTA1LDcgKzEwNSw3IEBAIGNkZWYgY2xhc3MgRnJvYmVuaXVzRW5kb21vcnBoaXNt X3BhZGljcyhSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgICAgIHNsb3RzWydfb3JkZXInXSA9IHNl bGYuX29yZGVyCisgICAgICAgICByZXR1cm4gc2xvdHMKKyAKKy0gICAgY2RlZiBfdXBkYXRlX3Ns b3RzKHNlbGYsIGRpY3Qgc2xvdHMpIG5vZXhjZXB0OgorKyAgICBjZGVmIF91cGRhdGVfc2xvdHMo c2VsZiwgZGljdCBzbG90cyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEhlbHBlciBmb3IgY29w eWluZyBhbmQgcGlja2xpbmcuCisgCitAQCAtMTY2LDcgKzE2Niw3IEBAIGNkZWYgY2xhc3MgRnJv YmVuaXVzRW5kb21vcnBoaXNtX3BhZGljcyhSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgICAgICAg ICBzID0gIkZyb2JeJXMiICUgc2VsZi5fcG93ZXIKKyAgICAgICAgIHJldHVybiBzCisgCistICAg IGNwZGVmIEVsZW1lbnQgX2NhbGxfIChzZWxmLCB4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxl bWVudCBfY2FsbF8gKHNlbGYsIHgpOgorICAgICAgICAgIiIiCisgICAgICAgICBURVNUUzo6Cisg CitAQCAtMzMwLDcgKzMzMCw3IEBAIGNkZWYgY2xhc3MgRnJvYmVuaXVzRW5kb21vcnBoaXNtX3Bh ZGljcyhSaW5nSG9tb21vcnBoaXNtKToKKyAgICAgICAgIGNvZG9tYWluID0gc2VsZi5jb2RvbWFp bigpCisgICAgICAgICByZXR1cm4gaGFzaCgoZG9tYWluLCBjb2RvbWFpbiwgKCdGcm9iJywgc2Vs Zi5fcG93ZXIpKSkKKyAKKy0gICAgY3BkZWYgX3JpY2hjbXBfKGxlZnQsIHJpZ2h0LCBpbnQgb3Ap IG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIENvbXBhcmUgYGBsZWZ0YGAgYW5kIGBgcmlnaHRgYAorIAor ZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wYWRpY19aWl9wWF9DQV9lbGVtZW50 LnB4ZCBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wYWRpY19aWl9wWF9DQV9lbGVtZW50LnB4ZAor aW5kZXggMmJjYjIzN2JlNzcuLjdhZmU5NGIxYmYzIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uvcmlu Z3MvcGFkaWNzL3BhZGljX1paX3BYX0NBX2VsZW1lbnQucHhkCisrKysgYi9zcmMvc2FnZS9yaW5n cy9wYWRpY3MvcGFkaWNfWlpfcFhfQ0FfZWxlbWVudC5weGQKK0BAIC0xMywxMiArMTMsMTIgQEAg Y2RlZiBjbGFzcyBwQWRpY1pacFhDQUVsZW1lbnQocEFkaWNaWnBYRWxlbWVudCk6CisgICAgIGNk ZWYgaW50IF9zZXQoc2VsZiwgWlpfcFhfYyogdmFsdWUsIGxvbmcgYWJzcHJlYykgZXhjZXB0IC0x CisgICAgIGNkZWYgaW50IF9zZXRfZnJvbV9tcHFfcGFydDIoc2VsZiwgbXBxX3QgeCkgZXhjZXB0 IC0xCisgCistICAgIGNwZGVmIHBBZGljWlpwWENSRWxlbWVudCB0b19mcmFjdGlvbl9maWVsZChz ZWxmKSBub2V4Y2VwdAorLSAgICBjZGVmIHBBZGljWlpwWENBRWxlbWVudCBfbmV3X2Moc2VsZiwg bG9uZyBhYnNwcmVjKSBub2V4Y2VwdAorLSAgICBjZGVmIHBBZGljWlpwWENBRWxlbWVudCBfbHNo aWZ0X2Moc2VsZiwgbG9uZyBuKSBub2V4Y2VwdAorLSAgICBjZGVmIHBBZGljWlpwWENBRWxlbWVu dCBfcnNoaWZ0X2Moc2VsZiwgbG9uZyBuKSBub2V4Y2VwdAorLSAgICBjcGRlZiBwQWRpY1pacFhD QUVsZW1lbnQgdW5pdF9wYXJ0KHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIF9udGxfcmVwX2Fi cyhzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBudGxfWlpfcFggX250bF9yZXAoc2VsZikgbm9l eGNlcHQKKysgICAgY3BkZWYgcEFkaWNaWnBYQ1JFbGVtZW50IHRvX2ZyYWN0aW9uX2ZpZWxkKHNl bGYpCisrICAgIGNkZWYgcEFkaWNaWnBYQ0FFbGVtZW50IF9uZXdfYyhzZWxmLCBsb25nIGFic3By ZWMpCisrICAgIGNkZWYgcEFkaWNaWnBYQ0FFbGVtZW50IF9sc2hpZnRfYyhzZWxmLCBsb25nIG4p CisrICAgIGNkZWYgcEFkaWNaWnBYQ0FFbGVtZW50IF9yc2hpZnRfYyhzZWxmLCBsb25nIG4pCisr ICAgIGNwZGVmIHBBZGljWlpwWENBRWxlbWVudCB1bml0X3BhcnQoc2VsZikKKysgICAgY3BkZWYg X250bF9yZXBfYWJzKHNlbGYpCisrICAgIGNwZGVmIG50bF9aWl9wWCBfbnRsX3JlcChzZWxmKQor IAorLSAgICBjcGRlZiBwQWRpY1pacFhDQUVsZW1lbnQgbGlmdF90b19wcmVjaXNpb24oc2VsZiwg YWJzcHJlYz0qKSBub2V4Y2VwdAorKyAgICBjcGRlZiBwQWRpY1pacFhDQUVsZW1lbnQgbGlmdF90 b19wcmVjaXNpb24oc2VsZiwgYWJzcHJlYz0qKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3Jpbmdz L3BhZGljcy9wYWRpY19aWl9wWF9DQV9lbGVtZW50LnB5eCBiL3NyYy9zYWdlL3JpbmdzL3BhZGlj cy9wYWRpY19aWl9wWF9DQV9lbGVtZW50LnB5eAoraW5kZXggMDIzZTU4ZWJjMDQuLjU4ZjU2NzBh YTA1IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3BhZGljX1paX3BYX0NBX2Vs ZW1lbnQucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfWlpfcFhfQ0FfZWxl bWVudC5weXgKK0BAIC04NDYsNyArODQ2LDcgQEAgY2RlZiBjbGFzcyBwQWRpY1pacFhDQUVsZW1l bnQocEFkaWNaWnBYRWxlbWVudCk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHNlbGYu X3NldF9wcmVjX2FicyhvcmRwICsgcmVscHJlYykKKyAKKy0gICAgY2RlZiBwQWRpY1pacFhDQUVs ZW1lbnQgX25ld19jKHNlbGYsIGxvbmcgYWJzcHJlYykgbm9leGNlcHQ6CisrICAgIGNkZWYgcEFk aWNaWnBYQ0FFbGVtZW50IF9uZXdfYyhzZWxmLCBsb25nIGFic3ByZWMpOgorICAgICAgICAgIiIi CisgICAgICAgICBSZXR1cm5zIGEgbmV3IGVsZW1lbnQgd2l0aCB0aGUgc2FtZSBwYXJlbnQgYXMg YGBzZWxmYGAgYW5kCisgICAgICAgICBhYnNvbHV0ZSBwcmVjaXNpb24gYGBhYnNwcmVjYGAuCitA QCAtOTQ0LDcgKzk0NCw3IEBAIGNkZWYgY2xhc3MgcEFkaWNaWnBYQ0FFbGVtZW50KHBBZGljWlpw WEVsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gfnNlbGYudG9fZnJhY3Rp b25fZmllbGQoKQorIAorLSAgICBjcGRlZiBwQWRpY1pacFhDUkVsZW1lbnQgdG9fZnJhY3Rpb25f ZmllbGQoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIHBBZGljWlpwWENSRWxlbWVudCB0b19m cmFjdGlvbl9maWVsZChzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJucyBgYHNl bGZgYCBjYXN0IGludG8gdGhlIGZyYWN0aW9uIGZpZWxkIG9mIGBgc2VsZi5wYXJlbnQoKWBgLgor IAorQEAgLTk3MSw3ICs5NzEsNyBAQCBjZGVmIGNsYXNzIHBBZGljWlpwWENBRWxlbWVudChwQWRp Y1pacFhFbGVtZW50KToKKyAgICAgICAgICAgICBhbnMudW5pdCA9IHNlbGYudmFsdWUKKyAgICAg ICAgIHJldHVybiBhbnMKKyAKKy0gICAgY2RlZiBwQWRpY1pacFhDQUVsZW1lbnQgX2xzaGlmdF9j KHNlbGYsIGxvbmcgbikgbm9leGNlcHQ6CisrICAgIGNkZWYgcEFkaWNaWnBYQ0FFbGVtZW50IF9s c2hpZnRfYyhzZWxmLCBsb25nIG4pOgorICAgICAgICAgIiIiCisgICAgICAgICBNdWx0aXBsaWVz IGBgc2VsZmBgIGJ5IHRoZSB1bmlmb3JtaXplciByYWlzZWQgdG8gdGhlIHBvd2VyIGBgbmBgLiAg SWYKKyAgICAgICAgIGBgbmBgIGlzIG5lZ2F0aXZlLCByaWdodCBzaGlmdHMgYnkgYGAtbmBgLgor QEAgLTEwMjIsNyArMTAyMiw3IEBAIGNkZWYgY2xhc3MgcEFkaWNaWnBYQ0FFbGVtZW50KHBBZGlj WlpwWEVsZW1lbnQpOgorICAgICAgICAgICAgIHJldHVybiBhbnMKKyAgICAgICAgIHJldHVybiBz ZWxmLl9yc2hpZnRfYygtbXB6X2dldF9zaSgoPEludGVnZXI+c2hpZnQpLnZhbHVlKSkKKyAKKy0g ICAgY2RlZiBwQWRpY1pacFhDQUVsZW1lbnQgX3JzaGlmdF9jKHNlbGYsIGxvbmcgbikgbm9leGNl cHQ6CisrICAgIGNkZWYgcEFkaWNaWnBYQ0FFbGVtZW50IF9yc2hpZnRfYyhzZWxmLCBsb25nIG4p OgorICAgICAgICAgIiIiCisgICAgICAgICBEaXZpZGVzIGBgc2VsZmBgIGJ5IHRoZSB1bmlmb3Jt aXplciByYWlzZWQgdG8gdGhlIHBvd2VyIGBgbmBgLiAgSWYKKyAgICAgICAgIHBhcmVudCBpcyBu b3QgYSBmaWVsZCwgdGhyb3dzIGF3YXkgdGhlIG5vbi1wb3NpdGl2ZSBwYXJ0IG9mCitAQCAtMTEy MCw3ICsxMTIwLDcgQEAgY2RlZiBjbGFzcyBwQWRpY1pacFhDQUVsZW1lbnQocEFkaWNaWnBYRWxl bWVudCk6CisgICAgICAgICAgICAgcmV0dXJuIGFucworICAgICAgICAgcmV0dXJuIHNlbGYuX3Jz aGlmdF9jKG1wel9nZXRfc2koKDxJbnRlZ2VyPnNoaWZ0KS52YWx1ZSkpCisgCistICAgIGNwZGVm IF9uZWdfKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbmVnXyhzZWxmKToKKyAgICAgICAg ICIiIgorICAgICAgICAgUmV0dXJucyBgYC1zZWxmYGAuCisgCitAQCAtMTM4Niw3ICsxMzg2LDcg QEAgY2RlZiBjbGFzcyBwQWRpY1pacFhDQUVsZW1lbnQocEFkaWNaWnBYRWxlbWVudCk6CisgICAg ICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY3BkZWYgX2FkZF8o c2VsZiwgX3JpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FkZF8oc2VsZiwgX3JpZ2h0KToK KyAgICAgICAgICIiIgorICAgICAgICAgQ29tcHV0ZXMgdGhlIHN1bSBvZiBgYHNlbGZgYCBhbmQg YGByaWdodGBgLgorIAorQEAgLTE0MjQsNyArMTQyNCw3IEBAIGNkZWYgY2xhc3MgcEFkaWNaWnBY Q0FFbGVtZW50KHBBZGljWlpwWEVsZW1lbnQpOgorICAgICAgICAgICAgIFpaX3BYX2FkZChhbnMu dmFsdWUsIHRtcFAsIHJpZ2h0LnZhbHVlKQorICAgICAgICAgcmV0dXJuIGFucworIAorLSAgICBj cGRlZiBfc3ViXyhzZWxmLCBfcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc3ViXyhzZWxm LCBfcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm5zIHRoZSBkaWZmZXJlbmNl IG9mIGBgc2VsZmBgIGFuZCBgYHJpZ2h0YGAuCisgCitAQCAtMTQ2NSw3ICsxNDY1LDcgQEAgY2Rl ZiBjbGFzcyBwQWRpY1pacFhDQUVsZW1lbnQocEFkaWNaWnBYRWxlbWVudCk6CisgICAgICAgICAg ICAgWlpfcFhfc3ViKGFucy52YWx1ZSwgdG1wUCwgcmlnaHQudmFsdWUpCisgICAgICAgICByZXR1 cm4gYW5zCisgCistICAgIGNwZGVmIF9tdWxfKHNlbGYsIF9yaWdodCkgbm9leGNlcHQ6CisrICAg IGNwZGVmIF9tdWxfKHNlbGYsIF9yaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVy bnMgdGhlIHByb2R1Y3Qgb2YgYGBzZWxmYGAgYW5kIGBgcmlnaHRgYC4KKyAKK0BAIC0xNTE4LDcg KzE1MTgsNyBAQCBjZGVmIGNsYXNzIHBBZGljWlpwWENBRWxlbWVudChwQWRpY1pacFhFbGVtZW50 KToKKyAgICAgICAgICAgICBaWl9wWF9NdWxNb2RfcHJlKGFucy52YWx1ZSwgc2VsZl9hZGFwdGVk LCByaWdodF9hZGFwdGVkLCBzZWxmLnByaW1lX3Bvdy5nZXRfbW9kdWx1c19jYXBkaXYoYW5zX2Fi c3ByZWMpWzBdKQorICAgICAgICAgcmV0dXJuIGFucworIAorLSAgICBjcGRlZiBfZGl2XyhzZWxm LCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9kaXZfKHNlbGYsIHJpZ2h0KToKKyAgICAg ICAgICIiIgorICAgICAgICAgUmV0dXJucyB0aGUgcXVvdGllbnQgb2YgYGBzZWxmYGAgYnkgYGBy aWdodGBgLgorIAorQEAgLTE2NTEsNyArMTY1MSw3IEBAIGNkZWYgY2xhc3MgcEFkaWNaWnBYQ0FF bGVtZW50KHBBZGljWlpwWEVsZW1lbnQpOgorICAgICAgICAgICAgICAgICAgICAgYW5zID0gKHNl bGYudmFsdWF0aW9uX2MoKSA+PSBhcHJlYykKKyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAg Y3BkZWYgbnRsX1paX3BYIF9udGxfcmVwKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBudGxf WlpfcFggX250bF9yZXAoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBhbiBg YG50bF9aWl9wWGBgIHRoYXQgaG9sZHMgdGhlIHZhbHVlIG9mIGBgc2VsZmBgLgorIAorQEAgLTE2 NzMsNyArMTY3Myw3IEBAIGNkZWYgY2xhc3MgcEFkaWNaWnBYQ0FFbGVtZW50KHBBZGljWlpwWEVs ZW1lbnQpOgorICAgICAgICAgYW5zLnggPSBzZWxmLnZhbHVlCisgICAgICAgICByZXR1cm4gYW5z CisgCistICAgIGNwZGVmIF9udGxfcmVwX2FicyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X250bF9yZXBfYWJzKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYSBwYWly IGBgKGYsIDApYGAgd2hlcmUgYGBmID0gc2VsZi5fbnRsX3JlcCgpYGAuCisgCitAQCAtMTc5Miw3 ICsxNzkyLDcgQEAgY2RlZiBjbGFzcyBwQWRpY1pacFhDQUVsZW1lbnQocEFkaWNaWnBYRWxlbWVu dCk6CisgICAgICAgICAjIFNob3VsZCBiZSBzcGVkIHVwIGxhdGVyCisgICAgICAgICByZXR1cm4g KHNlbGYgLSByaWdodCkuaXNfemVybyhhYnNwcmVjKQorIAorLSAgICBjcGRlZiBwQWRpY1pacFhD QUVsZW1lbnQgbGlmdF90b19wcmVjaXNpb24oc2VsZiwgYWJzcHJlYz1Ob25lKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgcEFkaWNaWnBYQ0FFbGVtZW50IGxpZnRfdG9fcHJlY2lzaW9uKHNlbGYsIGFi c3ByZWM9Tm9uZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybnMgYSBgYHBBZGljWlpw WENBRWxlbWVudGBgIGNvbmdydWVudCB0byBgYHNlbGZgYCBidXQgd2l0aAorICAgICAgICAgYWJz b2x1dGUgcHJlY2lzaW9uIGF0IGxlYXN0IGBgYWJzcHJlY2BgLgorQEAgLTIyNzEsNyArMjI3MSw3 IEBAIGNkZWYgY2xhc3MgcEFkaWNaWnBYQ0FFbGVtZW50KHBBZGljWlpwWEVsZW1lbnQpOgorICAg ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmFic3ByZWMKKyAK Ky0gICAgY3BkZWYgcEFkaWNaWnBYQ0FFbGVtZW50IHVuaXRfcGFydChzZWxmKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgcEFkaWNaWnBYQ0FFbGVtZW50IHVuaXRfcGFydChzZWxmKToKKyAgICAgICAg ICIiIgorICAgICAgICAgUmV0dXJucyB0aGUgdW5pdCBwYXJ0IG9mIGBgc2VsZmBgLCBpZSBgYHNl bGYgLyB1bmlmb3JtaXplcl4oc2VsZi52YWx1YXRpb24oKSlgYAorIAorQEAgLTIyOTQsNyArMjI5 NCw3IEBAIGNkZWYgY2xhc3MgcEFkaWNaWnBYQ0FFbGVtZW50KHBBZGljWlpwWEVsZW1lbnQpOgor ICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fcnNoaWZ0X2Moc2VsZi52YWx1YXRp b25fYygpKQorIAorLSAgICBjZGVmIGV4dF9wX2xpc3Qoc2VsZiwgYmludCBwb3MpIG5vZXhjZXB0 OgorKyAgICBjZGVmIGV4dF9wX2xpc3Qoc2VsZiwgYmludCBwb3MpOgorICAgICAgICAgIiIiCisg ICAgICAgICBSZXR1cm5zIGEgbGlzdCBvZiBpbnRlZ2VycyAoaW4gdGhlIEVpc2Vuc3RlaW4gY2Fz ZSkgb3IgYSBsaXN0CisgICAgICAgICBvZiBsaXN0cyBvZiBpbnRlZ2VycyAoaW4gdGhlIHVucmFt aWZpZWQgY2FzZSkuICBgYHNlbGZgYCBjYW4KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9w YWRpY3MvcGFkaWNfWlpfcFhfQ1JfZWxlbWVudC5weGQgYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3Mv cGFkaWNfWlpfcFhfQ1JfZWxlbWVudC5weGQKK2luZGV4IDRkNDU4NTA3ZWUwLi45NzQ0YjJhM2Y2 MiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wYWRpY19aWl9wWF9DUl9lbGVt ZW50LnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3BhZGljX1paX3BYX0NSX2VsZW1l bnQucHhkCitAQCAtMTksMTQgKzE5LDE0IEBAIGNkZWYgY2xhc3MgcEFkaWNaWnBYQ1JFbGVtZW50 KHBBZGljWlpwWEVsZW1lbnQpOgorICAgICBjZGVmIGludCBfc2V0X2Zyb21fWlpfcFhfcGFydDEo c2VsZiwgWlpfcFhfYyogcG9seSkgZXhjZXB0IC0xCisgICAgIGNkZWYgaW50IF9zZXRfZnJvbV9a Wl9wWF9wYXJ0MihzZWxmLCBaWl9wWF9jKiBwb2x5KSBleGNlcHQgLTEKKyAKKy0gICAgY2RlZiBw QWRpY1pacFhDUkVsZW1lbnQgX25ld19jKHNlbGYsIGxvbmcgcmVscHJlYykgbm9leGNlcHQKKysg ICAgY2RlZiBwQWRpY1pacFhDUkVsZW1lbnQgX25ld19jKHNlbGYsIGxvbmcgcmVscHJlYykKKyAg ICAgY2RlZiBpbnQgX2ludGVybmFsX2xzaGlmdChzZWxmLCBsb25nIHNoaWZ0KSBleGNlcHQgLTEK KyAgICAgY2RlZiBpbnQgX25vcm1hbGl6ZShzZWxmKSBleGNlcHQgLTEKKy0gICAgY2RlZiBwQWRp Y1pacFhDUkVsZW1lbnQgX2xzaGlmdF9jKHNlbGYsIGxvbmcgbikgbm9leGNlcHQKKy0gICAgY2Rl ZiBwQWRpY1pacFhDUkVsZW1lbnQgX3JzaGlmdF9jKHNlbGYsIGxvbmcgbikgbm9leGNlcHQKKy0g ICAgY3BkZWYgcEFkaWNaWnBYQ1JFbGVtZW50IHVuaXRfcGFydChzZWxmKSBub2V4Y2VwdAorLSAg ICBjcGRlZiBudGxfWlpfcFggX250bF9yZXBfdW5ub3JtYWxpemVkKHNlbGYpIG5vZXhjZXB0Cist ICAgIGNwZGVmIF9udGxfcmVwX2FicyhzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBudGxfWlpf cFggX250bF9yZXAoc2VsZikgbm9leGNlcHQKKysgICAgY2RlZiBwQWRpY1pacFhDUkVsZW1lbnQg X2xzaGlmdF9jKHNlbGYsIGxvbmcgbikKKysgICAgY2RlZiBwQWRpY1pacFhDUkVsZW1lbnQgX3Jz aGlmdF9jKHNlbGYsIGxvbmcgbikKKysgICAgY3BkZWYgcEFkaWNaWnBYQ1JFbGVtZW50IHVuaXRf cGFydChzZWxmKQorKyAgICBjcGRlZiBudGxfWlpfcFggX250bF9yZXBfdW5ub3JtYWxpemVkKHNl bGYpCisrICAgIGNwZGVmIF9udGxfcmVwX2FicyhzZWxmKQorKyAgICBjcGRlZiBudGxfWlpfcFgg X250bF9yZXAoc2VsZikKKyAKKy0gICAgY3BkZWYgcEFkaWNaWnBYQ1JFbGVtZW50IGxpZnRfdG9f cHJlY2lzaW9uKHNlbGYsIGFic3ByZWM9Kikgbm9leGNlcHQKKysgICAgY3BkZWYgcEFkaWNaWnBY Q1JFbGVtZW50IGxpZnRfdG9fcHJlY2lzaW9uKHNlbGYsIGFic3ByZWM9KikKK2RpZmYgLS1naXQg YS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfWlpfcFhfQ1JfZWxlbWVudC5weXggYi9zcmMv c2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfWlpfcFhfQ1JfZWxlbWVudC5weXgKK2luZGV4IDlkZTFh MzliOGRlLi5lYzg2YjAzNTM1YiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9w YWRpY19aWl9wWF9DUl9lbGVtZW50LnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3Bh ZGljX1paX3BYX0NSX2VsZW1lbnQucHl4CitAQCAtMTQ2OSw3ICsxNDY5LDcgQEAgY2RlZiBjbGFz cyBwQWRpY1pacFhDUkVsZW1lbnQocEFkaWNaWnBYRWxlbWVudCk6CisgICAgICAgICAgICAgICAg ICAgICBzaGlmdCA9IHNoaWZ0ID4+IDEKKyAgICAgICAgICAgICAgICAgICAgIGkgKz0gMQorIAor LSAgICBjZGVmIHBBZGljWlpwWENSRWxlbWVudCBfbmV3X2Moc2VsZiwgbG9uZyByZWxwcmVjKSBu b2V4Y2VwdDoKKysgICAgY2RlZiBwQWRpY1pacFhDUkVsZW1lbnQgX25ld19jKHNlbGYsIGxvbmcg cmVscHJlYyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBhIG5ldyBlbGVtZW50IHdp dGggdGhlIHNhbWUgcGFyZW50IGFzIGBgc2VsZmBgIGFuZAorICAgICAgICAgcmVsYXRpdmUgcHJl Y2lzaW9uIGBgcmVscHJlY2BgCitAQCAtMTU5NCw3ICsxNTk0LDcgQEAgY2RlZiBjbGFzcyBwQWRp Y1pacFhDUkVsZW1lbnQocEFkaWNaWnBYRWxlbWVudCk6CisgICAgICAgICBzaWdfb2ZmKCkKKyAg ICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY2RlZiBwQWRpY1pacFhDUkVsZW1lbnQgX2xzaGlm dF9jKHNlbGYsIGxvbmcgbikgbm9leGNlcHQ6CisrICAgIGNkZWYgcEFkaWNaWnBYQ1JFbGVtZW50 IF9sc2hpZnRfYyhzZWxmLCBsb25nIG4pOgorICAgICAgICAgIiIiCisgICAgICAgICBNdWx0aXBs aWVzIGBgc2VsZmBgIGJ5IHRoZSB1bmlmb3JtaXplciByYWlzZWQgdG8gdGhlIHBvd2VyIGBgbmBg LiAgSWYKKyAgICAgICAgIGBgbmBgIGlzIG5lZ2F0aXZlLCByaWdodCBzaGlmdHMgYnkgYGAtbmBg LgorQEAgLTE2NjEsNyArMTY2MSw3IEBAIGNkZWYgY2xhc3MgcEFkaWNaWnBYQ1JFbGVtZW50KHBB ZGljWlpwWEVsZW1lbnQpOgorICAgICAgICAgICAgICAgICByZXR1cm4gYW5zCisgICAgICAgICBy ZXR1cm4gc2VsZi5fbHNoaWZ0X2MobXB6X2dldF9zaSgoPEludGVnZXI+c2hpZnQpLnZhbHVlKSkK KyAKKy0gICAgY2RlZiBwQWRpY1pacFhDUkVsZW1lbnQgX3JzaGlmdF9jKHNlbGYsIGxvbmcgbikg bm9leGNlcHQ6CisrICAgIGNkZWYgcEFkaWNaWnBYQ1JFbGVtZW50IF9yc2hpZnRfYyhzZWxmLCBs b25nIG4pOgorICAgICAgICAgIiIiCisgICAgICAgICBEaXZpZGVzIHNlbGYgYnkgdGhlIHVuaWZv cm1pemVyIHJhaXNlZCB0byB0aGUgcG93ZXIgYGBuYGAuICBJZgorICAgICAgICAgcGFyZW50IGlz IG5vdCBhIGZpZWxkLCB0aHJvd3MgYXdheSB0aGUgbm9uLXBvc2l0aXZlIHBhcnQgb2YKK0BAIC0x NzY0LDcgKzE3NjQsNyBAQCBjZGVmIGNsYXNzIHBBZGljWlpwWENSRWxlbWVudChwQWRpY1pacFhF bGVtZW50KToKKyAgICAgICAgICAgICAgICAgcmV0dXJuIGFucworICAgICAgICAgcmV0dXJuIHNl bGYuX3JzaGlmdF9jKG1wel9nZXRfc2koKDxJbnRlZ2VyPnNoaWZ0KS52YWx1ZSkpCisgCistICAg IGNwZGVmIF9uZWdfKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbmVnXyhzZWxmKToKKyAg ICAgICAgICIiIgorICAgICAgICAgTmVnYXRpb24KKyAKK0BAIC0yMDQ0LDcgKzIwNDQsNyBAQCBj ZGVmIGNsYXNzIHBBZGljWlpwWENSRWxlbWVudChwQWRpY1pacFhFbGVtZW50KToKKyAgICAgICAg IHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIGFucworIAorLSAgICBjcGRlZiBfYWRkXyhzZWxm LCBfcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWRkXyhzZWxmLCBfcmlnaHQpOgorICAg ICAgICAgIiIiCisgICAgICAgICBDb21wdXRlIHRoZSBzdW0gb2YgYGBzZWxmYGAgYW5kIGBgcmln aHRgYC4KKyAKK0BAIC0yMTYxLDcgKzIxNjEsNyBAQCBjZGVmIGNsYXNzIHBBZGljWlpwWENSRWxl bWVudChwQWRpY1pacFhFbGVtZW50KToKKyAgICAgICAgICAgICAgICAgYW5zLnJlbHByZWMgPSAt YW5zLnJlbHByZWMKKyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY3BkZWYgX3N1Yl8oc2Vs ZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodCk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgZGlmZmVyZW5jZSBvZiB0d28gZWxlbWVudHMK KyAKK0BAIC0yMTg3LDcgKzIxODcsNyBAQCBjZGVmIGNsYXNzIHBBZGljWlpwWENSRWxlbWVudChw QWRpY1pacFhFbGVtZW50KToKKyAgICAgICAgICMgRm9yIG5vdywgYSBzaW1wbGUgaW1wbGVtZW50 YXRpb24KKyAgICAgICAgIHJldHVybiBzZWxmICsgKC1yaWdodCkKKyAKKy0gICAgY3BkZWYgX211 bF8oc2VsZiwgX3JpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX211bF8oc2VsZiwgX3JpZ2h0 KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBwcm9kdWN0IG9mIHR3byBlbGVt ZW50cworIAorQEAgLTIyNDAsNyArMjI0MCw3IEBAIGNkZWYgY2xhc3MgcEFkaWNaWnBYQ1JFbGVt ZW50KHBBZGljWlpwWEVsZW1lbnQpOgorICAgICAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAg cmV0dXJuIGFucworIAorLSAgICBjcGRlZiBfZGl2XyhzZWxmLCByaWdodCkgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIF9kaXZfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0 dXJuIHRoZSBxdW90aWVudCBvZiB0d28gZWxlbWVudHMKKyAKK0BAIC0yMzg0LDcgKzIzODQsNyBA QCBjZGVmIGNsYXNzIHBBZGljWlpwWENSRWxlbWVudChwQWRpY1pacFhFbGVtZW50KToKKyAgICAg ICAgICAgICAgICAgICAgIGFucyA9IChzZWxmLm9yZHAgPj0gYXByZWMpCisgICAgICAgICByZXR1 cm4gYW5zCisgCistICAgIGNwZGVmIG50bF9aWl9wWCBfbnRsX3JlcF91bm5vcm1hbGl6ZWQoc2Vs Zikgbm9leGNlcHQ6CisrICAgIGNwZGVmIG50bF9aWl9wWCBfbnRsX3JlcF91bm5vcm1hbGl6ZWQo c2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBhbiBgYG50bF9aWl9wWGBgIGhv bGRpbmcgdGhlIGN1cnJlbnQgdW5pdCBwYXJ0IG9mIHRoaXMgZWxlbWVudAorIAorQEAgLTI0MTMs NyArMjQxMyw3IEBAIGNkZWYgY2xhc3MgcEFkaWNaWnBYQ1JFbGVtZW50KHBBZGljWlpwWEVsZW1l bnQpOgorICAgICAgICAgYW5zLnggPSBzZWxmLnVuaXQKKyAgICAgICAgIHJldHVybiBhbnMKKyAK Ky0gICAgY3BkZWYgbnRsX1paX3BYIF9udGxfcmVwKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBudGxfWlpfcFggX250bF9yZXAoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVy biBhbiBgYG50bF9aWl9wWGBgIHRoYXQgaG9sZHMgdGhlIHVuaXQgcGFydCBvZiB0aGlzIGVsZW1l bnQKKyAKK0BAIC0yNDM0LDcgKzI0MzQsNyBAQCBjZGVmIGNsYXNzIHBBZGljWlpwWENSRWxlbWVu dChwQWRpY1pacFhFbGVtZW50KToKKyAgICAgICAgIHNlbGYuX25vcm1hbGl6ZSgpCisgICAgICAg ICByZXR1cm4gc2VsZi5fbnRsX3JlcF91bm5vcm1hbGl6ZWQoKQorIAorLSAgICBjcGRlZiBfbnRs X3JlcF9hYnMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9udGxfcmVwX2FicyhzZWxmKToK KyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGEgcGFpciBgYChmLCBrKWBgIHdoZXJlIGBg ZmBgIGlzIGFuIGBgbnRsX1paX3BYYGAgYW5kIGBga2BgIGlzIGEKKyAgICAgICAgIG5vbi1wb3Np dGl2ZSBpbnRlZ2VyIHN1Y2ggdGhhdCBgYHNlbGYgPSBmKHNlbGYucGFyZW50LmdlbigpKSpwXmtg YAorQEAgLTI2MjAsNyArMjYyMCw3IEBAIGNkZWYgY2xhc3MgcEFkaWNaWnBYQ1JFbGVtZW50KHBB ZGljWlpwWEVsZW1lbnQpOgorICMgICAgICAgICIiIgorICMgICAgICAgIHJhaXNlIE5vdEltcGxl bWVudGVkRXJyb3IKKyAKKy0gICAgY3BkZWYgcEFkaWNaWnBYQ1JFbGVtZW50IGxpZnRfdG9fcHJl Y2lzaW9uKHNlbGYsIGFic3ByZWM9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHBBZGljWlpw WENSRWxlbWVudCBsaWZ0X3RvX3ByZWNpc2lvbihzZWxmLCBhYnNwcmVjPU5vbmUpOgorICAgICAg ICAgIiIiCisgICAgICAgICBSZXR1cm4gYSBgYHBBZGljWlpwWENSRWxlbWVudGBgIGNvbmdydWVu dCB0byB0aGlzIGVsZW1lbnQgYnV0IHdpdGgKKyAgICAgICAgIGFic29sdXRlIHByZWNpc2lvbiBh dCBsZWFzdCBgYGFic3ByZWNgYC4KK0BAIC0zMTY4LDcgKzMxNjgsNyBAQCBjZGVmIGNsYXNzIHBB ZGljWlpwWENSRWxlbWVudChwQWRpY1pacFhFbGVtZW50KToKKyAgICAgICAgIHNlbGYuX25vcm1h bGl6ZSgpCisgICAgICAgICByZXR1cm4gc2VsZi5vcmRwCisgCistICAgIGNwZGVmIHBBZGljWlpw WENSRWxlbWVudCB1bml0X3BhcnQoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIHBBZGljWlpw WENSRWxlbWVudCB1bml0X3BhcnQoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVy biB0aGUgdW5pdCBwYXJ0IG9mIHRoaXMgZWxlbWVudCwgaWUgYGBzZWxmIC8gdW5pZm9ybWl6ZXJe KHNlbGYudmFsdWF0aW9uKCkpYGAuCisgCitAQCAtMzIwNiw3ICszMjA2LDcgQEAgY2RlZiBjbGFz cyBwQWRpY1pacFhDUkVsZW1lbnQocEFkaWNaWnBYRWxlbWVudCk6CisgICAgICAgICAgICAgYW5z LnVuaXQgPSBzZWxmLnVuaXQKKyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY2RlZiBleHRf cF9saXN0KHNlbGYsIGJpbnQgcG9zKSBub2V4Y2VwdDoKKysgICAgY2RlZiBleHRfcF9saXN0KHNl bGYsIGJpbnQgcG9zKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGEgbGlzdCBvZiBp bnRlZ2VycyAoaW4gdGhlIEVpc2Vuc3RlaW4gY2FzZSkgb3IgYSBsaXN0CisgICAgICAgICBvZiBs aXN0cyBvZiBpbnRlZ2VycyAoaW4gdGhlIHVucmFtaWZpZWQgY2FzZSkuICBgYHNlbGZgYCBjYW4g YmUKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfWlpfcFhfRk1fZWxl bWVudC5weGQgYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfWlpfcFhfRk1fZWxlbWVudC5w eGQKK2luZGV4IDMzNzU0NTgxZTQ4Li45MDYyNjA4OTQ0MiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdl L3JpbmdzL3BhZGljcy9wYWRpY19aWl9wWF9GTV9lbGVtZW50LnB4ZAorKysrIGIvc3JjL3NhZ2Uv cmluZ3MvcGFkaWNzL3BhZGljX1paX3BYX0ZNX2VsZW1lbnQucHhkCitAQCAtNCw4ICs0LDggQEAg ZnJvbSBzYWdlLnN0cnVjdHVyZS5lbGVtZW50IGNpbXBvcnQgUmluZ0VsZW1lbnQsIE1vZHVsZUVs ZW1lbnQKKyAKKyBjZGVmIGNsYXNzIHBBZGljWlpwWEZNRWxlbWVudChwQWRpY1pacFhFbGVtZW50 KToKKyAgICAgY2RlZiBaWl9wWF9jIHZhbHVlCistICAgIGNkZWYgcEFkaWNaWnBYRk1FbGVtZW50 IF9uZXdfYyhzZWxmKSBub2V4Y2VwdAorLSAgICBjZGVmIHBBZGljWlpwWEZNRWxlbWVudCBfbHNo aWZ0X2Moc2VsZiwgbG9uZyBuKSBub2V4Y2VwdAorLSAgICBjZGVmIHBBZGljWlpwWEZNRWxlbWVu dCBfcnNoaWZ0X2Moc2VsZiwgbG9uZyBuKSBub2V4Y2VwdAorKyAgICBjZGVmIHBBZGljWlpwWEZN RWxlbWVudCBfbmV3X2Moc2VsZikKKysgICAgY2RlZiBwQWRpY1pacFhGTUVsZW1lbnQgX2xzaGlm dF9jKHNlbGYsIGxvbmcgbikKKysgICAgY2RlZiBwQWRpY1pacFhGTUVsZW1lbnQgX3JzaGlmdF9j KHNlbGYsIGxvbmcgbikKKyAKKy0gICAgY3BkZWYgcEFkaWNaWnBYRk1FbGVtZW50IHVuaXRfcGFy dChzZWxmKSBub2V4Y2VwdAorKyAgICBjcGRlZiBwQWRpY1pacFhGTUVsZW1lbnQgdW5pdF9wYXJ0 KHNlbGYpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3BhZGljX1paX3BYX0ZN X2VsZW1lbnQucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3BhZGljX1paX3BYX0ZNX2VsZW1l bnQucHl4CitpbmRleCAwMTUzOTQyMWRkNy4uNDRkNTQ5ODQ3YTkgMTAwNjQ0CistLS0gYS9zcmMv c2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfWlpfcFhfRk1fZWxlbWVudC5weXgKKysrKyBiL3NyYy9z YWdlL3JpbmdzL3BhZGljcy9wYWRpY19aWl9wWF9GTV9lbGVtZW50LnB5eAorQEAgLTQxOSw3ICs0 MTksNyBAQCBjZGVmIGNsYXNzIHBBZGljWlpwWEZNRWxlbWVudChwQWRpY1pacFhFbGVtZW50KToK KyAgICAgICAgIGhvbGRlci54ID0gc2VsZi52YWx1ZQorICAgICAgICAgcmV0dXJuIG1ha2VfWlpw WEZNRWxlbWVudCwgKHNlbGYucGFyZW50KCksIGhvbGRlcikKKyAKKy0gICAgY2RlZiBwQWRpY1pa cFhGTUVsZW1lbnQgX25ld19jKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIHBBZGljWlpwWEZN RWxlbWVudCBfbmV3X2Moc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBhIG5l dyBlbGVtZW50IHdpdGggdGhlIHNhbWUgcGFyZW50IGFzIGBgc2VsZmBgLgorIAorQEAgLTQzOCw3 ICs0MzgsNyBAQCBjZGVmIGNsYXNzIHBBZGljWlpwWEZNRWxlbWVudChwQWRpY1pacFhFbGVtZW50 KToKKyAgICAgICAgIGFucy5wcmltZV9wb3cgPSBzZWxmLnByaW1lX3BvdworICAgICAgICAgcmV0 dXJuIGFucworIAorLSAgICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdodCwgaW50IG9wKToKKyAgICAg ICAgICIiIgorICAgICAgICAgRmlyc3QgY29tcGFyZSB2YWx1YXRpb25zLCB0aGVuIGNvbXBhcmUg dGhlIHZhbHVlcy4KKyAKK0BAIC01MDgsNyArNTA4LDcgQEAgY2RlZiBjbGFzcyBwQWRpY1pacFhG TUVsZW1lbnQocEFkaWNaWnBYRWxlbWVudCk6CisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAg IHJldHVybiBhbnMKKyAKKy0gICAgY2RlZiBwQWRpY1pacFhGTUVsZW1lbnQgX2xzaGlmdF9jKHNl bGYsIGxvbmcgbikgbm9leGNlcHQ6CisrICAgIGNkZWYgcEFkaWNaWnBYRk1FbGVtZW50IF9sc2hp ZnRfYyhzZWxmLCBsb25nIG4pOgorICAgICAgICAgIiIiCisgICAgICAgICBNdWx0aXBseSBgYHNl bGZgYCBieSB0aGUgdW5pZm9ybWl6ZXIgcmFpc2VkIHRvIHRoZSBwb3dlciBgYG5gYC4KKyAKK0BA IC01NjksNyArNTY5LDcgQEAgY2RlZiBjbGFzcyBwQWRpY1pacFhGTUVsZW1lbnQocEFkaWNaWnBY RWxlbWVudCk6CisgICAgICAgICAgICAgcmV0dXJuIGFucworICAgICAgICAgcmV0dXJuIHNlbGYu X2xzaGlmdF9jKG1wel9nZXRfc2koKDxJbnRlZ2VyPnNoaWZ0KS52YWx1ZSkpCisgCistICAgIGNk ZWYgcEFkaWNaWnBYRk1FbGVtZW50IF9yc2hpZnRfYyhzZWxmLCBsb25nIG4pIG5vZXhjZXB0Ogor KyAgICBjZGVmIHBBZGljWlpwWEZNRWxlbWVudCBfcnNoaWZ0X2Moc2VsZiwgbG9uZyBuKToKKyAg ICAgICAgICIiIgorICAgICAgICAgRGl2aWRlIGBgc2VsZmBgIGJ5IHRoZSB1bmlmb3JtaXplciBy YWlzZWQgdG8gdGhlIHBvd2VyIGBgbmBgLgorIAorQEAgLTY2MCw3ICs2NjAsNyBAQCBjZGVmIGNs YXNzIHBBZGljWlpwWEZNRWxlbWVudChwQWRpY1pacFhFbGVtZW50KToKKyAgICAgICAgICAgICBy ZXR1cm4gYW5zCisgICAgICAgICByZXR1cm4gc2VsZi5fcnNoaWZ0X2MobXB6X2dldF9zaSgoPElu dGVnZXI+c2hpZnQpLnZhbHVlKSkKKyAKKy0gICAgY3BkZWYgX25lZ18oc2VsZikgbm9leGNlcHQ6 CisrICAgIGNwZGVmIF9uZWdfKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm5z IGBgLXNlbGZgYC4KKyAKK0BAIC03NTEsNyArNzUxLDcgQEAgY2RlZiBjbGFzcyBwQWRpY1pacFhG TUVsZW1lbnQocEFkaWNaWnBYRWxlbWVudCk6CisgICAgICAgICAgICAgc2lnX29mZigpCisgICAg ICAgICByZXR1cm4gYW5zCisgCistICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAg ICBSZXR1cm4gYGBzZWxmYGAgKyBgYHJpZ2h0YGAuCisgCitAQCAtNzcwLDcgKzc3MCw3IEBAIGNk ZWYgY2xhc3MgcEFkaWNaWnBYRk1FbGVtZW50KHBBZGljWlpwWEVsZW1lbnQpOgorICAgICAgICAg WlpfcFhfYWRkKGFucy52YWx1ZSwgc2VsZi52YWx1ZSwgKDxwQWRpY1pacFhGTUVsZW1lbnQ+cmln aHQpLnZhbHVlKQorICAgICAgICAgcmV0dXJuIGFucworIAorLSAgICBjcGRlZiBfbXVsXyhzZWxm LCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9tdWxfKHNlbGYsIHJpZ2h0KToKKyAgICAg ICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBwcm9kdWN0IG9mIGBgc2VsZmBgIGFuZCBgYHJp Z2h0YGAuCisgCitAQCAtNzk0LDcgKzc5NCw3IEBAIGNkZWYgY2xhc3MgcEFkaWNaWnBYRk1FbGVt ZW50KHBBZGljWlpwWEVsZW1lbnQpOgorICAgICAgICAgWlpfcFhfTXVsTW9kX3ByZShhbnMudmFs dWUsIHNlbGYudmFsdWUsICg8cEFkaWNaWnBYRk1FbGVtZW50PnJpZ2h0KS52YWx1ZSwgc2VsZi5w cmltZV9wb3cuZ2V0X3RvcF9tb2R1bHVzKClbMF0pCisgICAgICAgICByZXR1cm4gYW5zCisgCist ICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3N1Yl8o c2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGRpZmZlcmVu Y2Ugb2YgYGBzZWxmYGAgYW5kIGBgcmlnaHRgYC4KKyAKK0BAIC04MTcsNyArODE3LDcgQEAgY2Rl ZiBjbGFzcyBwQWRpY1pacFhGTUVsZW1lbnQocEFkaWNaWnBYRWxlbWVudCk6CisgICAgICAgICBa Wl9wWF9zdWIoYW5zLnZhbHVlLCBzZWxmLnZhbHVlLCAoPHBBZGljWlpwWEZNRWxlbWVudD5yaWdo dCkudmFsdWUpCisgICAgICAgICByZXR1cm4gYW5zCisgCistICAgIGNwZGVmIF9kaXZfKHNlbGYs IF9yaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9kaXZfKHNlbGYsIF9yaWdodCk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIFJldHVybnMgdGhlIHF1b3RpZW50IG9mIGBgc2VsZmBgIGJ5IGBg cmlnaHRgYC4KKyAKK0BAIC0xNjAxLDcgKzE2MDEsNyBAQCBjZGVmIGNsYXNzIHBBZGljWlpwWEZN RWxlbWVudChwQWRpY1pacFhFbGVtZW50KToKKyAgICAgICAgIG1wel9zZXRfdWkoYW5zLnZhbHVl LCBzZWxmLnByaW1lX3Bvdy5yYW1fcHJlY19jYXAgLSBzZWxmLnZhbHVhdGlvbl9jKCkpCisgICAg ICAgICByZXR1cm4gYW5zCisgCistICAgIGNwZGVmIHBBZGljWlpwWEZNRWxlbWVudCB1bml0X3Bh cnQoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIHBBZGljWlpwWEZNRWxlbWVudCB1bml0X3Bh cnQoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgdW5pdCBwYXJ0IG9m IGBgc2VsZmBgLCBpZQorICAgICAgICAgYGBzZWxmIC8gdW5pZm9ybWl6ZXJeKHNlbGYudmFsdWF0 aW9uKCkpYGAKK0BAIC0xNjczLDcgKzE2NzMsNyBAQCBjZGVmIGNsYXNzIHBBZGljWlpwWEZNRWxl bWVudChwQWRpY1pacFhFbGVtZW50KToKKyAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAg ICAgICByZXR1cm4gaW5kZXggKyB2YWx1YXRpb24gKiBzZWxmLnByaW1lX3Bvdy5lCisgCistICAg IGNkZWYgZXh0X3BfbGlzdChzZWxmLCBiaW50IHBvcykgbm9leGNlcHQ6CisrICAgIGNkZWYgZXh0 X3BfbGlzdChzZWxmLCBiaW50IHBvcyk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4g YSBsaXN0IGdpdmluZyBhIHNlcmllcyByZXByZXNlbnRhdGlvbiBvZiBgYHNlbGZgYC4KKyAKK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfWlpfcFhfZWxlbWVudC5weXgg Yi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfWlpfcFhfZWxlbWVudC5weXgKK2luZGV4IGE1 NTYwODJhOWRmLi5iODhiZDUwNTNiZiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BhZGlj cy9wYWRpY19aWl9wWF9lbGVtZW50LnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3Bh ZGljX1paX3BYX2VsZW1lbnQucHl4CitAQCAtMjI4LDcgKzIyOCw3IEBAIGNkZWYgY2xhc3MgcEFk aWNaWnBYRWxlbWVudChwQWRpY0V4dEVsZW1lbnQpOgorICAgICAgICAgZWxzZToKKyAgICAgICAg ICAgICByYWlzZSBWYWx1ZUVycm9yKCJjb250ZXh0IG11c3QgYmUgYSBwb3dlciBvZiB0aGUgYXBw cm9wcmlhdGUgcHJpbWUiKQorIAorLSAgICBjZGVmIGV4dF9wX2xpc3RfcHJlY3Moc2VsZiwgYmlu dCBwb3MsIGxvbmcgcHJlYykgbm9leGNlcHQ6CisrICAgIGNkZWYgZXh0X3BfbGlzdF9wcmVjcyhz ZWxmLCBiaW50IHBvcywgbG9uZyBwcmVjKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJu cyBhIGxpc3QgZ2l2aW5nIGEgc2VyaWVzIHJlcHJlc2VudGF0aW9uIG9mIGBgc2VsZmBgLgorIAor QEAgLTYyMyw3ICs2MjMsNyBAQCBkZWYgX3Rlc3RfcHJlcHJvY2Vzc19saXN0KFIsIEwpOgorICAg ICByZXR1cm4gcHJlcHJvY2Vzc19saXN0KFIoMCksIEwpCisgCisgCistY2RlZiBwcmVwcm9jZXNz X2xpc3QocEFkaWNaWnBYRWxlbWVudCBlbHQsIEwpIG5vZXhjZXB0OgorK2NkZWYgcHJlcHJvY2Vz c19saXN0KHBBZGljWlpwWEVsZW1lbnQgZWx0LCBMKToKKyAgICAgIiIiCisgICAgIFNlZSB0aGUg ZG9jdW1lbnRhdGlvbiBmb3IgOmZ1bmM6YF90ZXN0X3ByZXByb2Nlc3NfbGlzdGAuCisgICAgICIi IgorQEAgLTczOCw3ICs3MzgsNyBAQCBkZWYgX2ZpbmRfdmFsX2FwcmVjX3Rlc3QoUiwgTCk6Cisg ICAgICIiIgorICAgICByZXR1cm4gZmluZF92YWxfYXByZWMoUi5wcmltZV9wb3csIEwpCisgCist Y2RlZiBmaW5kX3ZhbF9hcHJlYyhQb3dDb21wdXRlcl9leHQgcHAsIEwpIG5vZXhjZXB0OgorK2Nk ZWYgZmluZF92YWxfYXByZWMoUG93Q29tcHV0ZXJfZXh0IHBwLCBMKToKKyAgICAgciIiIgorICAg ICBHaXZlbiBhIGxpc3QgYGBMYGAsIGZpbmRzIHRoZSBtaW5pbXVtIHZhbHVhdGlvbiwgbWluaW11 bSBhYnNvbHV0ZQorICAgICBwcmVjaXNpb24gYW5kIG1pbmltdW0gY29tbW9uIHR5cGUgb2YgdGhl IGVsZW1lbnRzLgorQEAgLTg0Myw3ICs4NDMsNyBAQCBkZWYgX3Rlc3RfZ2V0X3ZhbF9wcmVjKFIs IGEpOgorICAgICAiIiIKKyAgICAgcmV0dXJuIGdldF92YWxfcHJlYyhSLnByaW1lX3BvdywgYSkK KyAKKy1jZGVmIGdldF92YWxfcHJlYyhQb3dDb21wdXRlcl9leHQgcHAsIGEpIG5vZXhjZXB0Ogor K2NkZWYgZ2V0X3ZhbF9wcmVjKFBvd0NvbXB1dGVyX2V4dCBwcCwgYSk6CisgICAgIHIiIiIKKyAg ICAgUmV0dXJuIHZhbHVhdGlvbiwgYWJzb2x1dGUgcHJlY2lzaW9uIGFuZCB0eXBlIG9mIGFuIGlu cHV0IGVsZW1lbnQuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3BhZGlj X2NhcHBlZF9hYnNvbHV0ZV9lbGVtZW50LnB4ZCBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wYWRp Y19jYXBwZWRfYWJzb2x1dGVfZWxlbWVudC5weGQKK2luZGV4IGI4MGI2NTkzYmY2Li40OGM4NTAw YTY3OCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wYWRpY19jYXBwZWRfYWJz b2x1dGVfZWxlbWVudC5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wYWRpY19jYXBw ZWRfYWJzb2x1dGVfZWxlbWVudC5weGQKK0BAIC02LDggKzYsOCBAQCBjdHlwZWRlZiBtcHpfdCBj ZWxlbWVudAorIGluY2x1ZGUgIkNBX3RlbXBsYXRlX2hlYWRlci5weGkiCisgCisgY2RlZiBjbGFz cyBwQWRpY0NhcHBlZEFic29sdXRlRWxlbWVudChDQUVsZW1lbnQpOgorLSAgICBjZGVmIGxpZnRf YyhzZWxmKSBub2V4Y2VwdAorLSAgICBjZGVmIHBhcmlfZ2VuIF90b19nZW4oc2VsZikgbm9leGNl cHQKKysgICAgY2RlZiBsaWZ0X2Moc2VsZikKKysgICAgY2RlZiBwYXJpX2dlbiBfdG9fZ2VuKHNl bGYpCisgCisgZnJvbSBzYWdlLnJpbmdzLnBhZGljcy5wb3dfY29tcHV0ZXIgY2ltcG9ydCBQb3dD b21wdXRlcl9iYXNlCisgY2RlZiBjbGFzcyBQb3dDb21wdXRlcl8oUG93Q29tcHV0ZXJfYmFzZSk6 CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3BhZGljX2NhcHBlZF9hYnNvbHV0 ZV9lbGVtZW50LnB5eCBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wYWRpY19jYXBwZWRfYWJzb2x1 dGVfZWxlbWVudC5weXgKK2luZGV4IGQ0Zjc2ZjA4ZWZlLi5kMjFiMmMxOGFjYiAxMDA2NDQKKy0t LSBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wYWRpY19jYXBwZWRfYWJzb2x1dGVfZWxlbWVudC5w eXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wYWRpY19jYXBwZWRfYWJzb2x1dGVfZWxl bWVudC5weXgKK0BAIC05Nyw3ICs5Nyw3IEBAIGNkZWYgY2xhc3MgcEFkaWNDYXBwZWRBYnNvbHV0 ZUVsZW1lbnQoQ0FFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYu bGlmdF9jKCkKKyAKKy0gICAgY2RlZiBsaWZ0X2Moc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYg bGlmdF9jKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBJbXBsZW1lbnRhdGlvbiBvZiBs aWZ0LgorIAorQEAgLTEyNCw3ICsxMjQsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ2FwcGVkQWJzb2x1 dGVFbGVtZW50KENBRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxm Ll90b19nZW4oKQorIAorLSAgICBjZGVmIHBhcmlfZ2VuIF90b19nZW4oc2VsZikgbm9leGNlcHQ6 CisrICAgIGNkZWYgcGFyaV9nZW4gX3RvX2dlbihzZWxmKToKKyAgICAgICAgICIiIgorICAgICAg ICAgQ29udmVydHMgdGhpcyBlbGVtZW50IHRvIGFuIGVxdWl2YWxlbnQgcGFyaSBlbGVtZW50Lgor IAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wYWRpY19jYXBwZWRfcmVsYXRp dmVfZWxlbWVudC5weGQgYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfY2FwcGVkX3JlbGF0 aXZlX2VsZW1lbnQucHhkCitpbmRleCA1YzkyOWJlMjI2ZC4uMmNmNmQ1Mjc2ZjUgMTAwNjQ0Cist LS0gYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfY2FwcGVkX3JlbGF0aXZlX2VsZW1lbnQu cHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfY2FwcGVkX3JlbGF0aXZlX2Vs ZW1lbnQucHhkCitAQCAtNSw4ICs1LDggQEAgY3R5cGVkZWYgbXB6X3QgY2VsZW1lbnQKKyBpbmNs dWRlICJDUl90ZW1wbGF0ZV9oZWFkZXIucHhpIgorIAorIGNkZWYgY2xhc3MgcEFkaWNDYXBwZWRS ZWxhdGl2ZUVsZW1lbnQoQ1JFbGVtZW50KToKKy0gICAgY2RlZiBsaWZ0X2Moc2VsZikgbm9leGNl cHQKKy0gICAgY2RlZiBwYXJpX2dlbiBfdG9fZ2VuKHNlbGYpIG5vZXhjZXB0CisrICAgIGNkZWYg bGlmdF9jKHNlbGYpCisrICAgIGNkZWYgcGFyaV9nZW4gX3RvX2dlbihzZWxmKQorIAorIGZyb20g c2FnZS5yaW5ncy5wYWRpY3MucG93X2NvbXB1dGVyIGNpbXBvcnQgUG93Q29tcHV0ZXJfYmFzZQor IGNkZWYgY2xhc3MgUG93Q29tcHV0ZXJfKFBvd0NvbXB1dGVyX2Jhc2UpOgorZGlmZiAtLWdpdCBh L3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wYWRpY19jYXBwZWRfcmVsYXRpdmVfZWxlbWVudC5weXgg Yi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfY2FwcGVkX3JlbGF0aXZlX2VsZW1lbnQucHl4 CitpbmRleCBlMmU2NTI3OThmZS4uNzAxYzk1NzU0MTcgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9y aW5ncy9wYWRpY3MvcGFkaWNfY2FwcGVkX3JlbGF0aXZlX2VsZW1lbnQucHl4CisrKysgYi9zcmMv c2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfY2FwcGVkX3JlbGF0aXZlX2VsZW1lbnQucHl4CitAQCAt MTYwLDcgKzE2MCw3IEBAIGNkZWYgY2xhc3MgcEFkaWNDYXBwZWRSZWxhdGl2ZUVsZW1lbnQoQ1JF bGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYubGlmdF9jKCkKKyAK Ky0gICAgY2RlZiBsaWZ0X2Moc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgbGlmdF9jKHNlbGYp OgorICAgICAgICAgIiIiCisgICAgICAgICBJbXBsZW1lbnRhdGlvbiBvZiBsaWZ0LgorIAorQEAg LTIxMCw3ICsyMTAsNyBAQCBjZGVmIGNsYXNzIHBBZGljQ2FwcGVkUmVsYXRpdmVFbGVtZW50KENS RWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl90b19nZW4oKQor IAorLSAgICBjZGVmIHBhcmlfZ2VuIF90b19nZW4oc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYg cGFyaV9nZW4gX3RvX2dlbihzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ29udmVydCB0 aGlzIGVsZW1lbnQgdG8gYW4gZXF1aXZhbGVudCBwYXJpIGVsZW1lbnQuCisgCitkaWZmIC0tZ2l0 IGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3BhZGljX2V4dF9lbGVtZW50LnB4ZCBiL3NyYy9zYWdl L3JpbmdzL3BhZGljcy9wYWRpY19leHRfZWxlbWVudC5weGQKK2luZGV4IGUyNjdmMDEyOWM3Li5k OGUyY2EwYTVhMCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wYWRpY19leHRf ZWxlbWVudC5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wYWRpY19leHRfZWxlbWVu dC5weGQKK0BAIC0zMiw2ICszMiw2IEBAIGNkZWYgY2xhc3MgcEFkaWNFeHRFbGVtZW50KHBBZGlj R2VuZXJpY0VsZW1lbnQpOgorICAgICBjZGVmIGxvbmcgX2NoZWNrX1paX3BDb250ZXh0KHNlbGYs IG50bF9aWl9wQ29udGV4dF9jbGFzcyBjdHgpIGV4Y2VwdCAtMQorICAgICBjZGVmIGxvbmcgX2No ZWNrX1paX3BFQ29udGV4dChzZWxmLCBudGxfWlpfcEVDb250ZXh0X2NsYXNzIGN0eCkgZXhjZXB0 IC0xCisgCistICAgIGNkZWYgZXh0X3BfbGlzdChzZWxmLCBiaW50IHBvcykgbm9leGNlcHQKKy0g ICAgY2RlZiBleHRfcF9saXN0X3ByZWNzKHNlbGYsIGJpbnQgcG9zLCBsb25nIHByZWMpIG5vZXhj ZXB0CisrICAgIGNkZWYgZXh0X3BfbGlzdChzZWxmLCBiaW50IHBvcykKKysgICAgY2RlZiBleHRf cF9saXN0X3ByZWNzKHNlbGYsIGJpbnQgcG9zLCBsb25nIHByZWMpCisgICAgIGNkZWYgWlpfcF9j IF9jb25zdF90ZXJtKHNlbGYpIG5vZXhjZXB0CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3Mv cGFkaWNzL3BhZGljX2V4dF9lbGVtZW50LnB5eCBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wYWRp Y19leHRfZWxlbWVudC5weXgKK2luZGV4IGE3OWRjMWE0YTk3Li4yMzI3YzgwODVhMCAxMDA2NDQK Ky0tLSBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wYWRpY19leHRfZWxlbWVudC5weXgKKysrKyBi L3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wYWRpY19leHRfZWxlbWVudC5weXgKK0BAIC0yNjMsMTAg KzI2MywxMCBAQCBjZGVmIGNsYXNzIHBBZGljRXh0RWxlbWVudChwQWRpY0dlbmVyaWNFbGVtZW50 KToKKyAgICAgY2RlZiBsb25nIF9jaGVja19aWl9wRUNvbnRleHQoc2VsZiwgbnRsX1paX3BFQ29u dGV4dF9jbGFzcyBjdHgpIGV4Y2VwdCAtMToKKyAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVk RXJyb3IKKyAKKy0gICAgY2RlZiBleHRfcF9saXN0KHNlbGYsIGJpbnQgcG9zKSBub2V4Y2VwdDoK KysgICAgY2RlZiBleHRfcF9saXN0KHNlbGYsIGJpbnQgcG9zKToKKyAgICAgICAgIHJhaXNlIE5v dEltcGxlbWVudGVkRXJyb3IKKyAKKy0gICAgY2RlZiBleHRfcF9saXN0X3ByZWNzKHNlbGYsIGJp bnQgcG9zLCBsb25nIHByZWMpIG5vZXhjZXB0OgorKyAgICBjZGVmIGV4dF9wX2xpc3RfcHJlY3Mo c2VsZiwgYmludCBwb3MsIGxvbmcgcHJlYyk6CisgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRl ZEVycm9yCisgCisgICAgIGRlZiBfY29uc3RfdGVybV90ZXN0KHNlbGYpOgorZGlmZiAtLWdpdCBh L3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wYWRpY19maXhlZF9tb2RfZWxlbWVudC5weGQgYi9zcmMv c2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfZml4ZWRfbW9kX2VsZW1lbnQucHhkCitpbmRleCA0ZDli ZmY0MTVkMC4uY2Q2MTlhMWJjYjIgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3Mv cGFkaWNfZml4ZWRfbW9kX2VsZW1lbnQucHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3Mv cGFkaWNfZml4ZWRfbW9kX2VsZW1lbnQucHhkCitAQCAtNiw4ICs2LDggQEAgY3R5cGVkZWYgbXB6 X3QgY2VsZW1lbnQKKyBpbmNsdWRlICJGTV90ZW1wbGF0ZV9oZWFkZXIucHhpIgorIAorIGNkZWYg Y2xhc3MgcEFkaWNGaXhlZE1vZEVsZW1lbnQoRk1FbGVtZW50KToKKy0gICAgY2RlZiBsaWZ0X2Mo c2VsZikgbm9leGNlcHQKKy0gICAgY2RlZiBwYXJpX2dlbiBfdG9fZ2VuKHNlbGYpIG5vZXhjZXB0 CisrICAgIGNkZWYgbGlmdF9jKHNlbGYpCisrICAgIGNkZWYgcGFyaV9nZW4gX3RvX2dlbihzZWxm KQorIAorIGZyb20gc2FnZS5yaW5ncy5wYWRpY3MucG93X2NvbXB1dGVyIGNpbXBvcnQgUG93Q29t cHV0ZXJfYmFzZQorIGNkZWYgY2xhc3MgUG93Q29tcHV0ZXJfKFBvd0NvbXB1dGVyX2Jhc2UpOgor ZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wYWRpY19maXhlZF9tb2RfZWxlbWVu dC5weXggYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfZml4ZWRfbW9kX2VsZW1lbnQucHl4 CitpbmRleCA0MmI5MmMwYTk2MS4uYmI0YjhmM2UwZGIgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9y aW5ncy9wYWRpY3MvcGFkaWNfZml4ZWRfbW9kX2VsZW1lbnQucHl4CisrKysgYi9zcmMvc2FnZS9y aW5ncy9wYWRpY3MvcGFkaWNfZml4ZWRfbW9kX2VsZW1lbnQucHl4CitAQCAtMTU2LDcgKzE1Niw3 IEBAIGNkZWYgY2xhc3MgcEFkaWNGaXhlZE1vZEVsZW1lbnQoRk1FbGVtZW50KToKKyAgICAgICAg ICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYubGlmdF9jKCkKKyAKKy0gICAgY2RlZiBsaWZ0X2Mo c2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgbGlmdF9jKHNlbGYpOgorICAgICAgICAgciIiIgor ICAgICAgICAgUmV0dXJucyBhbiBpbnRlZ2VyIGNvbmdydWVudCB0byB0aGlzIGVsZW1lbnQgbW9k dWxvIHRoZSBwcmVjaXNpb24uCisgCitAQCAtMTg4LDcgKzE4OCw3IEBAIGNkZWYgY2xhc3MgcEFk aWNGaXhlZE1vZEVsZW1lbnQoRk1FbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0 dXJuIHNlbGYuX3RvX2dlbigpCisgCistICAgIGNkZWYgcGFyaV9nZW4gX3RvX2dlbihzZWxmKSBu b2V4Y2VwdDoKKysgICAgY2RlZiBwYXJpX2dlbiBfdG9fZ2VuKHNlbGYpOgorICAgICAgICAgIiIi CisgICAgICAgICBDb252ZXJ0IGBgc2VsZmBgIHRvIGFuIGVxdWl2YWxlbnQgcGFyaSBlbGVtZW50 LgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wYWRpY19mbG9hdGluZ19w b2ludF9lbGVtZW50LnB4ZCBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wYWRpY19mbG9hdGluZ19w b2ludF9lbGVtZW50LnB4ZAoraW5kZXggODE2YTlmY2U3MDUuLjcyMWM0NzFkMjUzIDEwMDY0NAor LS0tIGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3BhZGljX2Zsb2F0aW5nX3BvaW50X2VsZW1lbnQu cHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfZmxvYXRpbmdfcG9pbnRfZWxl bWVudC5weGQKK0BAIC01LDggKzUsOCBAQCBjdHlwZWRlZiBtcHpfdCBjZWxlbWVudAorIGluY2x1 ZGUgIkZQX3RlbXBsYXRlX2hlYWRlci5weGkiCisgCisgY2RlZiBjbGFzcyBwQWRpY0Zsb2F0aW5n UG9pbnRFbGVtZW50KEZQRWxlbWVudCk6CistICAgIGNkZWYgbGlmdF9jKHNlbGYpIG5vZXhjZXB0 CistICAgIGNkZWYgcGFyaV9nZW4gX3RvX2dlbihzZWxmKSBub2V4Y2VwdAorKyAgICBjZGVmIGxp ZnRfYyhzZWxmKQorKyAgICBjZGVmIHBhcmlfZ2VuIF90b19nZW4oc2VsZikKKyAKKyBmcm9tIHNh Z2UucmluZ3MucGFkaWNzLnBvd19jb21wdXRlciBjaW1wb3J0IFBvd0NvbXB1dGVyX2Jhc2UKKyBj ZGVmIGNsYXNzIFBvd0NvbXB1dGVyXyhQb3dDb21wdXRlcl9iYXNlKToKK2RpZmYgLS1naXQgYS9z cmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfZmxvYXRpbmdfcG9pbnRfZWxlbWVudC5weXggYi9z cmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfZmxvYXRpbmdfcG9pbnRfZWxlbWVudC5weXgKK2lu ZGV4IDIyNTI5ZmZmYzZmLi5lZDgwZTdjODUzZCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3Jpbmdz L3BhZGljcy9wYWRpY19mbG9hdGluZ19wb2ludF9lbGVtZW50LnB5eAorKysrIGIvc3JjL3NhZ2Uv cmluZ3MvcGFkaWNzL3BhZGljX2Zsb2F0aW5nX3BvaW50X2VsZW1lbnQucHl4CitAQCAtMTU4LDcg KzE1OCw3IEBAIGNkZWYgY2xhc3MgcEFkaWNGbG9hdGluZ1BvaW50RWxlbWVudChGUEVsZW1lbnQp OgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5saWZ0X2MoKQorIAorLSAgICBj ZGVmIGxpZnRfYyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBsaWZ0X2Moc2VsZik6CisgICAg ICAgICByIiIiCisgICAgICAgICBJbXBsZW1lbnRhdGlvbiBvZiBsaWZ0LgorIAorQEAgLTIwNCw3 ICsyMDQsNyBAQCBjZGVmIGNsYXNzIHBBZGljRmxvYXRpbmdQb2ludEVsZW1lbnQoRlBFbGVtZW50 KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX3RvX2dlbigpCisgCistICAg IGNkZWYgcGFyaV9nZW4gX3RvX2dlbihzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBwYXJpX2dl biBfdG9fZ2VuKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBDb252ZXJ0IHRoaXMgZWxl bWVudCB0byBhbiBlcXVpdmFsZW50IHBhcmkgZWxlbWVudC4KKyAKK2RpZmYgLS1naXQgYS9zcmMv c2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfZ2VuZXJpY19lbGVtZW50LnB4ZCBiL3NyYy9zYWdlL3Jp bmdzL3BhZGljcy9wYWRpY19nZW5lcmljX2VsZW1lbnQucHhkCitpbmRleCAwOTFkNTZiYjkxMi4u ZGFkZjcwOTljMDAgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfZ2Vu ZXJpY19lbGVtZW50LnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3BhZGljX2dlbmVy aWNfZWxlbWVudC5weGQKK0BAIC04LDExICs4LDExIEBAIGZyb20gc2FnZS5yaW5ncy5wYWRpY3Mu cG93X2NvbXB1dGVyIGNpbXBvcnQgUG93Q29tcHV0ZXJfY2xhc3MKKyBmcm9tIHNhZ2UucmluZ3Mu aW50ZWdlciBjaW1wb3J0IEludGVnZXIKKyBmcm9tIHNhZ2UucmluZ3MucmF0aW9uYWwgY2ltcG9y dCBSYXRpb25hbAorIAorLWNwZGVmIGdhdXNzX3RhYmxlKGxvbmcgbG9uZyBwLCBpbnQgZiwgaW50 IHByZWMsIGJpbnQgdXNlX2xvbmdzKSBub2V4Y2VwdAorK2NwZGVmIGdhdXNzX3RhYmxlKGxvbmcg bG9uZyBwLCBpbnQgZiwgaW50IHByZWMsIGJpbnQgdXNlX2xvbmdzKQorIAorIGNkZWYgY2xhc3Mg cEFkaWNHZW5lcmljRWxlbWVudChMb2NhbEdlbmVyaWNFbGVtZW50KToKKyAgICAgY2RlZiBsb25n IHZhbHVhdGlvbl9jKHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIHZhbF91bml0KHNlbGYpIG5v ZXhjZXB0CisrICAgIGNwZGVmIHZhbF91bml0KHNlbGYpCisgCisgICAgIGNkZWYgaW50IF9zZXRf ZnJvbV9JbnRlZ2VyKHNlbGYsIEludGVnZXIgeCwgYWJzcHJlYywgcmVscHJlYykgZXhjZXB0IC0x CisgICAgIGNkZWYgaW50IF9zZXRfZnJvbV9tcHooc2VsZiwgbXB6X3QgeCkgZXhjZXB0IC0xCitA QCAtNDEsNyArNDEsNyBAQCBjZGVmIGNsYXNzIHBBZGljR2VuZXJpY0VsZW1lbnQoTG9jYWxHZW5l cmljRWxlbWVudCk6CisgICAgIGNkZWYgYmludCBfc2V0X3ByZWNfcmVsKHNlbGYsIGxvbmcgcmVs cHJlYykgZXhjZXB0IC0xCisgICAgIGNkZWYgYmludCBfc2V0X3ByZWNfYm90aChzZWxmLCBsb25n IGFic3ByZWMsIGxvbmcgcmVscHJlYykgZXhjZXB0IC0xCisgCistICAgIGNwZGVmIGFicyhzZWxm LCBwcmVjPSopIG5vZXhjZXB0CistICAgIGNwZGVmIF9tb2RfKHNlbGYsIHJpZ2h0KSBub2V4Y2Vw dAorLSAgICBjcGRlZiBfZmxvb3JkaXZfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdAorKyAgICBjcGRl ZiBhYnMoc2VsZiwgcHJlYz0qKQorKyAgICBjcGRlZiBfbW9kXyhzZWxmLCByaWdodCkKKysgICAg Y3BkZWYgX2Zsb29yZGl2XyhzZWxmLCByaWdodCkKKyAgICAgY3BkZWYgYmludCBfaXNfYmFzZV9l bHQoc2VsZiwgcCkgZXhjZXB0IC0xCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNz L3BhZGljX2dlbmVyaWNfZWxlbWVudC5weXggYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNf Z2VuZXJpY19lbGVtZW50LnB5eAoraW5kZXggMDM1ZTQwNDc3M2IuLmI4ZjAyZTMxOTcwIDEwMDY0 NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3BhZGljX2dlbmVyaWNfZWxlbWVudC5weXgK KysrKyBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wYWRpY19nZW5lcmljX2VsZW1lbnQucHl4CitA QCAtNDMsNyArNDMsNyBAQCBmcm9tIHNhZ2Uuc3RydWN0dXJlLnJpY2hjbXAgY2ltcG9ydCByaWNo X3RvX2Jvb2wKKyBjZGVmIGxvbmcgbWF4b3JkcCA9ICgxTCA8PCAoc2l6ZW9mKGxvbmcpICogOCAt IDIpKSAtIDEKKyAKKyBjZGVmIGNsYXNzIHBBZGljR2VuZXJpY0VsZW1lbnQoTG9jYWxHZW5lcmlj RWxlbWVudCk6CistICAgIGNwZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdodCwgaW50IG9wKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgX3JpY2hjbXBfKGxlZnQsIHJpZ2h0LCBpbnQgb3ApOgorICAgICAg ICAgciIiIgorICAgICAgICAgRmlyc3QgY29tcGFyZSB2YWx1YXRpb25zLCB0aGVuIGNvbXBhcmUg bm9ybWFsaXplZAorICAgICAgICAgcmVzaWR1ZSBvZiB1bml0IHBhcnQuCitAQCAtMzU0LDcgKzM1 NCw3IEBAIGNkZWYgY2xhc3MgcEFkaWNHZW5lcmljRWxlbWVudChMb2NhbEdlbmVyaWNFbGVtZW50 KToKKyAgICAgICAgICAgICByYWlzZSBaZXJvRGl2aXNpb25FcnJvcigiY2Fubm90IGRpdmlkZSBi eSB6ZXJvIikKKyAgICAgICAgIHJldHVybiBzZWxmLl9mbG9vcmRpdl8ocmlnaHQpCisgCistICAg IGNwZGVmIF9mbG9vcmRpdl8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZmxv b3JkaXZfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgSW1wbGVtZW50cyBm bG9vciBkaXZpc2lvbi4KKyAKK0BAIC00NjUsNyArNDY1LDcgQEAgY2RlZiBjbGFzcyBwQWRpY0dl bmVyaWNFbGVtZW50KExvY2FsR2VuZXJpY0VsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAg ICByZXR1cm4gfnNlbGYucGFyZW50KCkuZnJhY3Rpb25fZmllbGQoKShzZWxmLCByZWxwcmVjID0g c2VsZi5wcmVjaXNpb25fcmVsYXRpdmUoKSkKKyAKKy0gICAgY3BkZWYgX21vZF8oc2VsZiwgcmln aHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbW9kXyhzZWxmLCByaWdodCk6CisgICAgICAgICAi IiIKKyAgICAgICAgIElmIHNlbGYgaXMgaW4gYSBmaWVsZCwgcmV0dXJucyAwLiAgSWYgaW4gYSBy aW5nLCByZXR1cm5zIGEKKyAgICAgICAgIHAtYWRpYyBpbnRlZ2VyIHN1Y2ggdGhhdAorQEAgLTIx MTUsNyArMjExNSw3IEBAIGNkZWYgY2xhc3MgcEFkaWNHZW5lcmljRWxlbWVudChMb2NhbEdlbmVy aWNFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRF cnJvcgorIAorLSAgICBjcGRlZiB2YWxfdW5pdChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg dmFsX3VuaXQoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gYGAoc2VsZi52 YWx1YXRpb24oKSwgc2VsZi51bml0X3BhcnQoKSlgYC4gVG8gYmUgb3ZlcnJpZGRlbiBpbgorICAg ICAgICAgZGVyaXZlZCBjbGFzc2VzLgorQEAgLTQwMjIsNyArNDAyMiw3IEBAIGNkZWYgY2xhc3Mg cEFkaWNHZW5lcmljRWxlbWVudChMb2NhbEdlbmVyaWNFbGVtZW50KToKKyAgICAgICAgICIiIgor ICAgICAgICAgcmV0dXJuIHNlbGYuYWJzKCkKKyAKKy0gICAgY3BkZWYgYWJzKHNlbGYsIHByZWM9 Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGFicyhzZWxmLCBwcmVjPU5vbmUpOgorICAgICAg ICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGBwYC1hZGljIGFic29sdXRlIHZhbHVlIG9mIGBg c2VsZmBgLgorIAorQEAgLTQ1MTUsNyArNDUxNSw3IEBAIGRlZiBfY29tcHV0ZV9nKHAsIG4sIHBy ZWMsIHRlcm1zKToKKyAgICAgICAgIGdbaSsxXSA9IC0oZ1tpXS8odi12KioyKSkuaW50ZWdyYWwo KQorICAgICByZXR1cm4gW3gudHJ1bmNhdGUodGVybXMpIGZvciB4IGluIGddCisgCistY3BkZWYg ZHdvcmtfbWFobGVyX2NvZWZmcyhSLCBpbnQgYmQ9MjApIG5vZXhjZXB0OgorK2NwZGVmIGR3b3Jr X21haGxlcl9jb2VmZnMoUiwgaW50IGJkPTIwKToKKyAgICAgciIiIgorICAgICBDb21wdXRlIER3 b3JrJ3MgZm9ybXVsYSBmb3IgTWFobGVyIGNvZWZmaWNpZW50cyBvZiBgcGAtYWRpYyBHYW1tYS4K KyAKK0BAIC00NTYzLDcgKzQ1NjMsNyBAQCBjcGRlZiBkd29ya19tYWhsZXJfY29lZmZzKFIsIGlu dCBiZD0yMCkgbm9leGNlcHQ6CisgICAgICAgICAgICAgICAgIHYuYXBwZW5kKFIoeCA8PCBpKSkK KyAgICAgcmV0dXJuIHYKKyAKKy1jcGRlZiBldmFsdWF0ZV9kd29ya19tYWhsZXIodiwgeCwgbG9u ZyBsb25nIHAsIGludCBiZCwgbG9uZyBsb25nIGEpIG5vZXhjZXB0OgorK2NwZGVmIGV2YWx1YXRl X2R3b3JrX21haGxlcih2LCB4LCBsb25nIGxvbmcgcCwgaW50IGJkLCBsb25nIGxvbmcgYSk6Cisg ICAgICIiIgorICAgICBFdmFsdWF0ZSBEd29yaydzIE1haGxlciBzZXJpZXMgZm9yIGBwYC1hZGlj IEdhbW1hLgorIAorQEAgLTQ2MDcsNyArNDYwNyw3IEBAIGNkZWYgbG9uZyBsb25nIGV2YWx1YXRl X2R3b3JrX21haGxlcl9sb25nKGFycmF5LmFycmF5IHYsIGxvbmcgbG9uZyB4LCBsb25nIGxvbmcK KyAgICAgICAgIHMgPSBzICUgcQorICAgICByZXR1cm4gLXMKKyAKKy1jcGRlZiBnYXVzc190YWJs ZShsb25nIGxvbmcgcCwgaW50IGYsIGludCBwcmVjLCBiaW50IHVzZV9sb25ncykgbm9leGNlcHQ6 CisrY3BkZWYgZ2F1c3NfdGFibGUobG9uZyBsb25nIHAsIGludCBmLCBpbnQgcHJlYywgYmludCB1 c2VfbG9uZ3MpOgorICAgICByIiIiCisgICAgIENvbXB1dGUgYSB0YWJsZSBvZiBHYXVzcyBzdW1z IHVzaW5nIHRoZSBHcm9zcy1Lb2JsaXR6IGZvcm11bGEuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3Nh Z2UvcmluZ3MvcGFkaWNzL3BhZGljX3ByaW50aW5nLnB4ZCBiL3NyYy9zYWdlL3JpbmdzL3BhZGlj cy9wYWRpY19wcmludGluZy5weGQKK2luZGV4IGUwY2UxMjU0MGM2Li40NDY5OGIzZDczZCAxMDA2 NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wYWRpY19wcmludGluZy5weGQKKysrKyBi L3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wYWRpY19wcmludGluZy5weGQKK0BAIC0yMiwxNiArMjIs MTYgQEAgY2RlZiBjbGFzcyBwQWRpY1ByaW50ZXJfY2xhc3MoU2FnZU9iamVjdCk6CisgICAgIGNk ZWYgbG9uZyBtYXhfdGVyc2VfdGVybXMKKyAgICAgY2RlZiBvYmplY3Qgc2hvd19wcmVjCisgCist ICAgIGNkZWYgYmFzZV9wX2xpc3Qoc2VsZiwgdmFsdWUsIGJpbnQgcG9zKSBub2V4Y2VwdAorLSAg ICBjZGVmIF9yZXByX2dlbihzZWxmLCBwQWRpY0dlbmVyaWNFbGVtZW50IGVsdCwgYmludCBkb19s YXRleCwgYmludCBwb3MsIGludCBtb2RlLCBwbmFtZSkgbm9leGNlcHQKKy0gICAgY2RlZiBfcmVw cl9zcGVjKHNlbGYsIHBBZGljR2VuZXJpY0VsZW1lbnQgZWx0LCBiaW50IGRvX2xhdGV4LCBiaW50 IHBvcywgaW50IF9tb2RlLCBiaW50IHBhcmVuLCBwbmFtZSkgbm9leGNlcHQKKy0gICAgY2RlZiBf cHJpbnRfbGlzdF9hc19wb2x5KHNlbGYsIEwsIGJpbnQgZG9fbGF0ZXgsIHBvbHluYW1lLCBsb25n IGV4cHNoaWZ0LCBiaW50IGluY3JlYXNpbmcpIG5vZXhjZXB0CistICAgIGNkZWYgX3RydW5jYXRl X2xpc3Qoc2VsZiwgTCwgbWF4X3Rlcm1zLCB6ZXJvKSBub2V4Y2VwdAorLSAgICBjZGVmIF92YXIo c2VsZiwgeCwgZXhwLCBkb19sYXRleCkgbm9leGNlcHQKKy0gICAgY2RlZiBfZG90X3ZhcihzZWxm LCB4LCBleHAsIGRvX2xhdGV4KSBub2V4Y2VwdAorLSAgICBjZGVmIF9jb19kb3RfdmFyKHNlbGYs IGNvLCB4LCBleHAsIGRvX2xhdGV4KSBub2V4Y2VwdAorLSAgICBjZGVmIF9wbHVzX2VsbGlwc2lz KHNlbGYsIGJpbnQgZG9fbGF0ZXgpIG5vZXhjZXB0CistICAgIGNkZWYgX2VsbGlwc2lzKHNlbGYs IGJpbnQgZG9fbGF0ZXgpIG5vZXhjZXB0CistICAgIGNkZWYgX3RlcnNlX2ZyYWMoc2VsZiwgYSwg diwgdSwgcmFtX25hbWUsIGJpbnQgZG9fbGF0ZXgpIG5vZXhjZXB0CistICAgIGNkZWYgX3ByaW50 X3VucmFtX3Rlcm0oc2VsZiwgTCwgYmludCBkb19sYXRleCwgcG9seW5hbWUsIGxvbmcgbWF4X3Vu cmFtX3Rlcm1zLCBsb25nIGV4cHNoaWZ0LCBiaW50IGluY3JlYXNpbmcpIG5vZXhjZXB0CistICAg IGNkZWYgX3ByaW50X3Rlcm1fb2ZfcG9seShzZWxmLCBzLCBjb2VmZiwgYmludCBkb19sYXRleCwg cG9seW5hbWUsIGxvbmcgZXhwKSBub2V4Y2VwdAorKyAgICBjZGVmIGJhc2VfcF9saXN0KHNlbGYs IHZhbHVlLCBiaW50IHBvcykKKysgICAgY2RlZiBfcmVwcl9nZW4oc2VsZiwgcEFkaWNHZW5lcmlj RWxlbWVudCBlbHQsIGJpbnQgZG9fbGF0ZXgsIGJpbnQgcG9zLCBpbnQgbW9kZSwgcG5hbWUpCisr ICAgIGNkZWYgX3JlcHJfc3BlYyhzZWxmLCBwQWRpY0dlbmVyaWNFbGVtZW50IGVsdCwgYmludCBk b19sYXRleCwgYmludCBwb3MsIGludCBfbW9kZSwgYmludCBwYXJlbiwgcG5hbWUpCisrICAgIGNk ZWYgX3ByaW50X2xpc3RfYXNfcG9seShzZWxmLCBMLCBiaW50IGRvX2xhdGV4LCBwb2x5bmFtZSwg bG9uZyBleHBzaGlmdCwgYmludCBpbmNyZWFzaW5nKQorKyAgICBjZGVmIF90cnVuY2F0ZV9saXN0 KHNlbGYsIEwsIG1heF90ZXJtcywgemVybykKKysgICAgY2RlZiBfdmFyKHNlbGYsIHgsIGV4cCwg ZG9fbGF0ZXgpCisrICAgIGNkZWYgX2RvdF92YXIoc2VsZiwgeCwgZXhwLCBkb19sYXRleCkKKysg ICAgY2RlZiBfY29fZG90X3ZhcihzZWxmLCBjbywgeCwgZXhwLCBkb19sYXRleCkKKysgICAgY2Rl ZiBfcGx1c19lbGxpcHNpcyhzZWxmLCBiaW50IGRvX2xhdGV4KQorKyAgICBjZGVmIF9lbGxpcHNp cyhzZWxmLCBiaW50IGRvX2xhdGV4KQorKyAgICBjZGVmIF90ZXJzZV9mcmFjKHNlbGYsIGEsIHYs IHUsIHJhbV9uYW1lLCBiaW50IGRvX2xhdGV4KQorKyAgICBjZGVmIF9wcmludF91bnJhbV90ZXJt KHNlbGYsIEwsIGJpbnQgZG9fbGF0ZXgsIHBvbHluYW1lLCBsb25nIG1heF91bnJhbV90ZXJtcywg bG9uZyBleHBzaGlmdCwgYmludCBpbmNyZWFzaW5nKQorKyAgICBjZGVmIF9wcmludF90ZXJtX29m X3BvbHkoc2VsZiwgcywgY29lZmYsIGJpbnQgZG9fbGF0ZXgsIHBvbHluYW1lLCBsb25nIGV4cCkK K2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfcHJpbnRpbmcucHl4IGIv c3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3BhZGljX3ByaW50aW5nLnB5eAoraW5kZXggMmEzNzYyNjRi NGIuLmZjOWYxNWIwN2IxIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3BhZGlj X3ByaW50aW5nLnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3BhZGljX3ByaW50aW5n LnB5eAorQEAgLTgxNiw3ICs4MTYsNyBAQCBjZGVmIGNsYXNzIHBBZGljUHJpbnRlcl9jbGFzcyhT YWdlT2JqZWN0KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuYmFzZV9wX2xp c3QodmFsdWUsIHBvcykKKyAKKy0gICAgY2RlZiBiYXNlX3BfbGlzdChzZWxmLCB2YWx1ZSwgYmlu dCBwb3MpIG5vZXhjZXB0OgorKyAgICBjZGVmIGJhc2VfcF9saXN0KHNlbGYsIHZhbHVlLCBiaW50 IHBvcyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybnMgYSBsaXN0IG9mIGludGVnZXJz IGZvcm1pbmcgdGhlIGJhc2UgcCBleHBhbnNpb24gb2YKKyAgICAgICAgIHZhbHVlLgorQEAgLTg5 NCw3ICs4OTQsNyBAQCBjZGVmIGNsYXNzIHBBZGljUHJpbnRlcl9jbGFzcyhTYWdlT2JqZWN0KToK KyAgICAgICAgICAgICAgICAgcHByaW50ID0gbGF0ZXhfdmFyaWFibGVfbmFtZShwcHJpbnQpCisg ICAgICAgICByZXR1cm4gc2VsZi5fcmVwcl9nZW4oZWx0LCBkb19sYXRleCwgX3BvcywgX21vZGUs IHBwcmludCkKKyAKKy0gICAgY2RlZiBfcmVwcl9nZW4oc2VsZiwgcEFkaWNHZW5lcmljRWxlbWVu dCBlbHQsIGJpbnQgZG9fbGF0ZXgsIGJpbnQgcG9zLCBpbnQgbW9kZSwgcmFtX25hbWUpIG5vZXhj ZXB0OgorKyAgICBjZGVmIF9yZXByX2dlbihzZWxmLCBwQWRpY0dlbmVyaWNFbGVtZW50IGVsdCwg YmludCBkb19sYXRleCwgYmludCBwb3MsIGludCBtb2RlLCByYW1fbmFtZSk6CisgICAgICAgICBy IiIiCisgICAgICAgICBQcmludHMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGVsZW1l bnQuICBTZWUgX19pbml0X18gZm9yIG1vcmUgZGV0YWlscyBvbiBwcmludCBtb2Rlcy4KKyAKK0BA IC0xMDU0LDcgKzEwNTQsNyBAQCBjZGVmIGNsYXNzIHBBZGljUHJpbnRlcl9jbGFzcyhTYWdlT2Jq ZWN0KToKKyAgICAgICAgIGlmIHMgPT0gIiI6IHMgPSAiMCIKKyAgICAgICAgIHJldHVybiBzCisg CistICAgIGNkZWYgX3JlcHJfc3BlYyhzZWxmLCBwQWRpY0dlbmVyaWNFbGVtZW50IGVsdCwgYmlu dCBkb19sYXRleCwgYmludCBwb3MsIGludCBtb2RlLCBiaW50IHBhcmVuLCByYW1fbmFtZSkgbm9l eGNlcHQ6CisrICAgIGNkZWYgX3JlcHJfc3BlYyhzZWxmLCBwQWRpY0dlbmVyaWNFbGVtZW50IGVs dCwgYmludCBkb19sYXRleCwgYmludCBwb3MsIGludCBtb2RlLCBiaW50IHBhcmVuLCByYW1fbmFt ZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEEgZnVuY3Rpb24gdXNlZCBieSByZXByX2dlbiBm b3IgdGVyc2UgYW5kIHNlcmllcyBwcmludGluZy4KKyAKK0BAIC0xMjcxLDcgKzEyNzEsNyBAQCBj ZGVmIGNsYXNzIHBBZGljUHJpbnRlcl9jbGFzcyhTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICBz ID0gIigiICsgcyArICIpIgorICAgICAgICAgcmV0dXJuIHMKKyAKKy0gICAgY2RlZiBfdmFyKHNl bGYsIHgsIGV4cCwgZG9fbGF0ZXgpIG5vZXhjZXB0OgorKyAgICBjZGVmIF92YXIoc2VsZiwgeCwg ZXhwLCBkb19sYXRleCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybnMgYSByZXByZXNl bnRhdGlvbiBvZiAneF5leHAnLCBsYXRleGVkIGlmIG5lY2Vzc2FyeS4KKyAgICAgICAgICIiIgor QEAgLTEyODQsNyArMTI4NCw3IEBAIGNkZWYgY2xhc3MgcEFkaWNQcmludGVyX2NsYXNzKFNhZ2VP YmplY3QpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXR1cm4gIiVzXiVzIiUoeCwg ZXhwKQorIAorLSAgICBjZGVmIF9kb3RfdmFyKHNlbGYsIHgsIGV4cCwgZG9fbGF0ZXgpIG5vZXhj ZXB0OgorKyAgICBjZGVmIF9kb3RfdmFyKHNlbGYsIHgsIGV4cCwgZG9fbGF0ZXgpOgorICAgICAg ICAgIiIiCisgICAgICAgICBSZXR1cm5zIGEgcmVwcmVzZW50YXRpb24gb2YgJyp4XmV4cCcsIGxh dGV4ZWQgaWYgbmVjZXNzYXJ5LgorICAgICAgICAgIiIiCitAQCAtMTMwMCw3ICsxMzAwLDcgQEAg Y2RlZiBjbGFzcyBwQWRpY1ByaW50ZXJfY2xhc3MoU2FnZU9iamVjdCk6CisgICAgICAgICBlbHNl OgorICAgICAgICAgICAgIHJldHVybiAiKiVzXiVzIiUoeCwgZXhwKQorIAorLSAgICBjZGVmIF9j b19kb3RfdmFyKHNlbGYsIGNvLCB4LCBleHAsIGRvX2xhdGV4KSBub2V4Y2VwdDoKKysgICAgY2Rl ZiBfY29fZG90X3ZhcihzZWxmLCBjbywgeCwgZXhwLCBkb19sYXRleCk6CisgICAgICAgICAiIiIK KyAgICAgICAgIFJldHVybnMgYSByZXByZXNlbnRhdGlvbiBvZiAnY28qeF5leHAnLCBsYXRleGVk IGlmIG5lY2Vzc2FyeS4KKyAKK0BAIC0xMzI1LDcgKzEzMjUsNyBAQCBjZGVmIGNsYXNzIHBBZGlj UHJpbnRlcl9jbGFzcyhTYWdlT2JqZWN0KToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg cmV0dXJuICIlcyolc14lcyIlKGNvLCB4LCBleHApCisgCistICAgIGNkZWYgX3BsdXNfZWxsaXBz aXMoc2VsZiwgYmludCBkb19sYXRleCkgbm9leGNlcHQ6CisrICAgIGNkZWYgX3BsdXNfZWxsaXBz aXMoc2VsZiwgYmludCBkb19sYXRleCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybnMg YSByZXByZXNlbnRhdGlvbiBvZiAnKyAuLi4nLCBsYXRleGVkIGlmIG5lY2Vzc2FyeS4KKyAgICAg ICAgICIiIgorQEAgLTEzMzQsNyArMTMzNCw3IEBAIGNkZWYgY2xhc3MgcEFkaWNQcmludGVyX2Ns YXNzKFNhZ2VPYmplY3QpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXR1cm4gIiAr IC4uLiIKKyAKKy0gICAgY2RlZiBfZWxsaXBzaXMoc2VsZiwgYmludCBkb19sYXRleCkgbm9leGNl cHQ6CisrICAgIGNkZWYgX2VsbGlwc2lzKHNlbGYsIGJpbnQgZG9fbGF0ZXgpOgorICAgICAgICAg IiIiCisgICAgICAgICBSZXR1cm5zIGEgcmVwcmVzZW50YXRpb24gb2YgJy4uLicsIGxhdGV4ZWQg aWYgbmVjZXNzYXJ5LgorICAgICAgICAgIiIiCitAQCAtMTM0Myw3ICsxMzQzLDcgQEAgY2RlZiBj bGFzcyBwQWRpY1ByaW50ZXJfY2xhc3MoU2FnZU9iamVjdCk6CisgICAgICAgICBlbHNlOgorICAg ICAgICAgICAgIHJldHVybiAiLi4uIgorIAorLSAgICBjZGVmIF90cnVuY2F0ZV9saXN0KHNlbGYs IEwsIG1heF90ZXJtcywgemVybykgbm9leGNlcHQ6CisrICAgIGNkZWYgX3RydW5jYXRlX2xpc3Qo c2VsZiwgTCwgbWF4X3Rlcm1zLCB6ZXJvKToKKyAgICAgICAgICIiIgorICAgICAgICAgVGFrZXMg YSBsaXN0IEwgb2YgY29lZmZpY2llbnRzIGFuZCByZXR1cm5zIGEgbGlzdCB3aXRoIGF0IG1vc3Qg bWF4X3Rlcm1zIG5vbnplcm8gdGVybXMuCisgCitAQCAtMTM3NSw3ICsxMzc1LDcgQEAgY2RlZiBj bGFzcyBwQWRpY1ByaW50ZXJfY2xhc3MoU2FnZU9iamVjdCk6CisgICAgICAgICAgICAgYW5zLmFw cGVuZChjKQorICAgICAgICAgcmV0dXJuIGFucywgRmFsc2UKKyAKKy0gICAgY2RlZiBfcHJpbnRf dW5yYW1fdGVybShzZWxmLCBMLCBiaW50IGRvX2xhdGV4LCBwb2x5bmFtZSwgbG9uZyBtYXhfdW5y YW1fdGVybXMsIGxvbmcgZXhwc2hpZnQsIGJpbnQgaW5jcmVhc2luZykgbm9leGNlcHQ6CisrICAg IGNkZWYgX3ByaW50X3VucmFtX3Rlcm0oc2VsZiwgTCwgYmludCBkb19sYXRleCwgcG9seW5hbWUs IGxvbmcgbWF4X3VucmFtX3Rlcm1zLCBsb25nIGV4cHNoaWZ0LCBiaW50IGluY3JlYXNpbmcpOgor ICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9m IEwgd2hlbiBjb25zaWRlcmVkIGFzIGEgcG9seW5vbWlhbCwgdHJ1bmNhdGluZyB0byBhdCBtb3N0 IG1heF91bnJhbV90ZXJtcyBub256ZXJvIHRlcm1zLgorIAorQEAgLTE0NDgsNyArMTQ0OCw3IEBA IGNkZWYgY2xhc3MgcEFkaWNQcmludGVyX2NsYXNzKFNhZ2VPYmplY3QpOgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzID0gc2VsZi5fcHJpbnRfdGVybV9vZl9wb2x5KHMsIExbal0sIGRv X2xhdGV4LCBwb2x5bmFtZSwgZXhwKQorICAgICAgICAgcmV0dXJuIHMKKyAKKy0gICAgY2RlZiBf dGVyc2VfZnJhYyhzZWxmLCBhLCB2LCB1LCByYW1fbmFtZSwgYmludCBkb19sYXRleCkgbm9leGNl cHQ6CisrICAgIGNkZWYgX3RlcnNlX2ZyYWMoc2VsZiwgYSwgdiwgdSwgcmFtX25hbWUsIGJpbnQg ZG9fbGF0ZXgpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm5zIGEgcmVwcmVzZW50YXRp b24gb2YgYT11L3JhbV9uYW1lXnYsIGxhdGV4ZWQgaWYgbmVjZXNzYXJ5LgorICAgICAgICAgIiIi CitAQCAtMTQ2OCw3ICsxNDY4LDcgQEAgY2RlZiBjbGFzcyBwQWRpY1ByaW50ZXJfY2xhc3MoU2Fn ZU9iamVjdCk6CisgICAgICAgICAgICAgICAgIGFyZXAgPSAiJXMvJXNeJXMiJSh1LCByYW1fbmFt ZSwgLXYpCisgICAgICAgICByZXR1cm4gYXJlcAorIAorLSAgICBjZGVmIF9wcmludF9saXN0X2Fz X3BvbHkoc2VsZiwgTCwgYmludCBkb19sYXRleCwgcG9seW5hbWUsIGxvbmcgZXhwc2hpZnQsIGJp bnQgaW5jcmVhc2luZykgbm9leGNlcHQ6CisrICAgIGNkZWYgX3ByaW50X2xpc3RfYXNfcG9seShz ZWxmLCBMLCBiaW50IGRvX2xhdGV4LCBwb2x5bmFtZSwgbG9uZyBleHBzaGlmdCwgYmludCBpbmNy ZWFzaW5nKToKKyAgICAgICAgICIiIgorICAgICAgICAgUHJpbnRzIGEgbGlzdCBMIGFzIGEgcG9s eW5vbWlhbC4KKyAKK0BAIC0xNDk5LDcgKzE0OTksNyBAQCBjZGVmIGNsYXNzIHBBZGljUHJpbnRl cl9jbGFzcyhTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICAgICAgcyA9IHNlbGYuX3ByaW50X3Rl cm1fb2ZfcG9seShzLCBMW2pdLCBkb19sYXRleCwgcG9seW5hbWUsIGV4cCkKKyAgICAgICAgIHJl dHVybiBzCisgCistICAgIGNkZWYgX3ByaW50X3Rlcm1fb2ZfcG9seShzZWxmLCBzLCBjb2VmZiwg YmludCBkb19sYXRleCwgcG9seW5hbWUsIGxvbmcgZXhwKSBub2V4Y2VwdDoKKysgICAgY2RlZiBf cHJpbnRfdGVybV9vZl9wb2x5KHNlbGYsIHMsIGNvZWZmLCBiaW50IGRvX2xhdGV4LCBwb2x5bmFt ZSwgbG9uZyBleHApOgorICAgICAgICAgIiIiCisgICAgICAgICBBcHBlbmRzICtjb2VmZipwb2x5 bmFtZV5leHAgdG8gcywgbGF0ZXhlZCBpZiBuZWNlc3NhcnkuCisgICAgICAgICAiIiIKK2RpZmYg LS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfdGVtcGxhdGVfZWxlbWVudC5weGkg Yi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfdGVtcGxhdGVfZWxlbWVudC5weGkKK2luZGV4 IDRiN2RiODcyNmFmLi40YjViOWM2ZGJlOSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3Bh ZGljcy9wYWRpY190ZW1wbGF0ZV9lbGVtZW50LnB4aQorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcGFk aWNzL3BhZGljX3RlbXBsYXRlX2VsZW1lbnQucHhpCitAQCAtMTg4LDcgKzE4OCw3IEBAIGNkZWYg Y2xhc3MgcEFkaWNUZW1wbGF0ZUVsZW1lbnQocEFkaWNHZW5lcmljRWxlbWVudCk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKyAKKy0gICAgY2RlZiBw QWRpY1RlbXBsYXRlRWxlbWVudCBfbmV3X3dpdGhfdmFsdWUoc2VsZiwgY2VsZW1lbnQgdmFsdWUs IGxvbmcgYWJzcHJlYykgbm9leGNlcHQ6CisrICAgIGNkZWYgcEFkaWNUZW1wbGF0ZUVsZW1lbnQg X25ld193aXRoX3ZhbHVlKHNlbGYsIGNlbGVtZW50IHZhbHVlLCBsb25nIGFic3ByZWMpOgorICAg ICAgICAgIiIiCisgICAgICAgICBDcmVhdGVzIGEgbmV3IGVsZW1lbnQgd2l0aCBhIGdpdmVuIHZh bHVlIGFuZCBhYnNvbHV0ZSBwcmVjaXNpb24uCisgCitAQCAtMjY0LDcgKzI2NCw3IEBAIGNkZWYg Y2xhc3MgcEFkaWNUZW1wbGF0ZUVsZW1lbnQocEFkaWNHZW5lcmljRWxlbWVudCk6CisgICAgICAg ICBjaGVja19vcmRwKHMpCisgICAgICAgICByZXR1cm4gc2VsZi5fbHNoaWZ0X2MocykKKyAKKy0g ICAgY2RlZiBwQWRpY1RlbXBsYXRlRWxlbWVudCBfbHNoaWZ0X2Moc2VsZiwgbG9uZyBzaGlmdCkg bm9leGNlcHQ6CisrICAgIGNkZWYgcEFkaWNUZW1wbGF0ZUVsZW1lbnQgX2xzaGlmdF9jKHNlbGYs IGxvbmcgc2hpZnQpOgorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorIAorICAg ICBkZWYgX19yc2hpZnRfXyhwQWRpY1RlbXBsYXRlRWxlbWVudCBzZWxmLCBzaGlmdCk6CitAQCAt MzEyLDcgKzMxMiw3IEBAIGNkZWYgY2xhc3MgcEFkaWNUZW1wbGF0ZUVsZW1lbnQocEFkaWNHZW5l cmljRWxlbWVudCk6CisgICAgICAgICBjaGVja19vcmRwKHMpCisgICAgICAgICByZXR1cm4gc2Vs Zi5fcnNoaWZ0X2MocykKKyAKKy0gICAgY2RlZiBwQWRpY1RlbXBsYXRlRWxlbWVudCBfcnNoaWZ0 X2Moc2VsZiwgbG9uZyBzaGlmdCkgbm9leGNlcHQ6CisrICAgIGNkZWYgcEFkaWNUZW1wbGF0ZUVs ZW1lbnQgX3JzaGlmdF9jKHNlbGYsIGxvbmcgc2hpZnQpOgorICAgICAgICAgIiIiCisgICAgICAg ICBEaXZpZGVzIGJ5IGBgcF5zaGlmdGBgIGFuZCB0cnVuY2F0ZXMgKGlmIHRoZSBwYXJlbnQgaXMg bm90IGEgZmllbGQpLgorICAgICAgICAgIiIiCitAQCAtMzgwLDcgKzM4MCw3IEBAIGNkZWYgY2xh c3MgcEFkaWNUZW1wbGF0ZUVsZW1lbnQocEFkaWNHZW5lcmljRWxlbWVudCk6CisgICAgICAgICBh bnMuY2hlY2tfcHJlY2NhcCgpCisgICAgICAgICByZXR1cm4gYW5zCisgCistICAgIGNkZWYgcEFk aWNUZW1wbGF0ZUVsZW1lbnQgbGlmdF90b19wcmVjaXNpb25fYyhzZWxmLCBsb25nIGFic3ByZWMp IG5vZXhjZXB0OgorKyAgICBjZGVmIHBBZGljVGVtcGxhdGVFbGVtZW50IGxpZnRfdG9fcHJlY2lz aW9uX2Moc2VsZiwgbG9uZyBhYnNwcmVjKToKKyAgICAgICAgICIiIgorICAgICAgICAgTGlmdCB0 aGlzIGVsZW1lbnQgdG8gYW5vdGhlciB3aXRoIHByZWNpc2lvbiBhdCBsZWFzdCBgYGFic3ByZWNg YC4KKyAgICAgICAgICIiIgorQEAgLTYyNiw3ICs2MjYsNyBAQCBjZGVmIGNsYXNzIHBBZGljVGVt cGxhdGVFbGVtZW50KHBBZGljR2VuZXJpY0VsZW1lbnQpOgorICAgICAgICAgZWxzZToKKyAgICAg ICAgICAgICByZXR1cm4gdHJpbV96ZXJvcyhsaXN0KHNlbGYudW5pdF9wYXJ0KCkuZXhwYW5zaW9u KGxpZnRfbW9kZT0nc21hbGxlc3QnKSkpCisgCistICAgIGNwZGVmIHBBZGljVGVtcGxhdGVFbGVt ZW50IHVuaXRfcGFydChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcEFkaWNUZW1wbGF0ZUVs ZW1lbnQgdW5pdF9wYXJ0KHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJucyB0 aGUgdW5pdCBwYXJ0IG9mIHRoaXMgZWxlbWVudC4KKyAKK0BAIC03NjEsNyArNzYxLDcgQEAgY2Rl ZiBjbGFzcyBwQWRpY1RlbXBsYXRlRWxlbWVudChwQWRpY0dlbmVyaWNFbGVtZW50KToKKyAgICAg ICAgIGVsc2U6CisgICAgICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigicmVkdWN0 aW9uIG1vZHVsbyBwXm4gd2l0aCBuPjEiKQorIAorLWNkZWYgSW50ZWdlciBleGFjdF9wb3dfaGVs cGVyKGxvbmcgKmFuc3JlbHByZWMsIGxvbmcgcmVscHJlYywgX3JpZ2h0LCBQb3dDb21wdXRlcl8g cHJpbWVfcG93KSBub2V4Y2VwdDoKKytjZGVmIEludGVnZXIgZXhhY3RfcG93X2hlbHBlcihsb25n ICphbnNyZWxwcmVjLCBsb25nIHJlbHByZWMsIF9yaWdodCwgUG93Q29tcHV0ZXJfIHByaW1lX3Bv dyk6CisgICAgICIiIgorICAgICBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgYnkgZXhwb25lbnRpYXRp b24gaW4gYm90aCBgYENSX3RlbXBsYXRlLnB4aWBgCisgICAgIGFuZCBgYENBX3RlbXBsYXRlLnB4 aWBgIHRvIGRldGVybWluZSB0aGUgZXh0cmEgcHJlY2lzaW9uIGdhaW5lZCBmcm9tCitAQCAtODc1 LDcgKzg3NSw3IEBAIGNkZWYgbG9uZyBwYWRpY19wb3dfaGVscGVyKGNlbGVtZW50IHJlc3VsdCwg Y2VsZW1lbnQgYmFzZSwgbG9uZyBiYXNlX3ZhbCwgbG9uZyBiCisgICAgIGNwb3cocmVzdWx0LCBw cmltZV9wb3cucG93aGVscGVyX29uZXVuaXQsIHJpZ2h0LnZhbHVlLCBibG9nYV9hcHJlYywgcHJp bWVfcG93KQorICAgICByZXR1cm4gYmxvZ2FfYXByZWMKKyAKKy1jZGVmIF96ZXJvKGV4cGFuc2lv bl9tb2RlIG1vZGUsIHRlaWNoX3JpbmcpIG5vZXhjZXB0OgorK2NkZWYgX3plcm8oZXhwYW5zaW9u X21vZGUgbW9kZSwgdGVpY2hfcmluZyk6CisgICAgICIiIgorICAgICBSZXR1cm4gYW4gYXBwcm9w cmlhdGUgemVybyBmb3IgYSBnaXZlbiBleHBhbnNpb24gbW9kZS4KKyAKK2RpZmYgLS1naXQgYS9z cmMvc2FnZS9yaW5ncy9wYWRpY3MvcGFkaWNfdGVtcGxhdGVfZWxlbWVudF9oZWFkZXIucHhpIGIv c3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3BhZGljX3RlbXBsYXRlX2VsZW1lbnRfaGVhZGVyLnB4aQor aW5kZXggNGNkMDdiOGM0YmQuLjExZTFjYzdmYWI3IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uvcmlu Z3MvcGFkaWNzL3BhZGljX3RlbXBsYXRlX2VsZW1lbnRfaGVhZGVyLnB4aQorKysrIGIvc3JjL3Nh Z2UvcmluZ3MvcGFkaWNzL3BhZGljX3RlbXBsYXRlX2VsZW1lbnRfaGVhZGVyLnB4aQorQEAgLTM5 LDExICszOSwxMSBAQCBjZGVmIGVudW0gZXhwYW5zaW9uX21vZGU6CisgY2RlZiBjbGFzcyBwQWRp Y1RlbXBsYXRlRWxlbWVudChwQWRpY0dlbmVyaWNFbGVtZW50KToKKyAgICAgY2RlZiBQb3dDb21w dXRlcl8gcHJpbWVfcG93CisgICAgIGNkZWYgaW50IF9zZXQoc2VsZiwgeCwgbG9uZyB2YWwsIGxv bmcgeHByZWMsIGFic3ByZWMsIHJlbHByZWMpIGV4Y2VwdCAtMQorLSAgICBjZGVmIHBBZGljVGVt cGxhdGVFbGVtZW50IF9uZXdfd2l0aF92YWx1ZShzZWxmLCBjZWxlbWVudCB2YWx1ZSwgbG9uZyBh YnNwcmVjKSBub2V4Y2VwdAorKyAgICBjZGVmIHBBZGljVGVtcGxhdGVFbGVtZW50IF9uZXdfd2l0 aF92YWx1ZShzZWxmLCBjZWxlbWVudCB2YWx1ZSwgbG9uZyBhYnNwcmVjKQorICAgICBjZGVmIGlu dCBfZ2V0X3VuaXQoc2VsZiwgY2VsZW1lbnQgdmFsdWUpIGV4Y2VwdCAtMQorLSAgICBjZGVmIHBB ZGljVGVtcGxhdGVFbGVtZW50IF9sc2hpZnRfYyhzZWxmLCBsb25nIHNoaWZ0KSBub2V4Y2VwdAor LSAgICBjZGVmIHBBZGljVGVtcGxhdGVFbGVtZW50IF9yc2hpZnRfYyhzZWxmLCBsb25nIHNoaWZ0 KSBub2V4Y2VwdAorKyAgICBjZGVmIHBBZGljVGVtcGxhdGVFbGVtZW50IF9sc2hpZnRfYyhzZWxm LCBsb25nIHNoaWZ0KQorKyAgICBjZGVmIHBBZGljVGVtcGxhdGVFbGVtZW50IF9yc2hpZnRfYyhz ZWxmLCBsb25nIHNoaWZ0KQorICAgICAjY3BkZWYgUmluZ0VsZW1lbnQgX2Zsb29yZGl2X2NfaW1w bChzZWxmLCBSaW5nRWxlbWVudCByaWdodCkKKyAgICAgY2RlZiBpbnQgY2hlY2tfcHJlY2NhcChz ZWxmKSBleGNlcHQgLTEKKy0gICAgY2RlZiBwQWRpY1RlbXBsYXRlRWxlbWVudCBsaWZ0X3RvX3By ZWNpc2lvbl9jKHNlbGYsIGxvbmcgYWJzcHJlYykgbm9leGNlcHQKKy0gICAgY3BkZWYgcEFkaWNU ZW1wbGF0ZUVsZW1lbnQgdW5pdF9wYXJ0KHNlbGYpIG5vZXhjZXB0CisrICAgIGNkZWYgcEFkaWNU ZW1wbGF0ZUVsZW1lbnQgbGlmdF90b19wcmVjaXNpb25fYyhzZWxmLCBsb25nIGFic3ByZWMpCisr ICAgIGNwZGVmIHBBZGljVGVtcGxhdGVFbGVtZW50IHVuaXRfcGFydChzZWxmKQorZGlmZiAtLWdp dCBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wb3dfY29tcHV0ZXIucHhkIGIvc3JjL3NhZ2Uvcmlu Z3MvcGFkaWNzL3Bvd19jb21wdXRlci5weGQKK2luZGV4IGI3MDU1M2I3N2UwLi41Y2I2YTQ3NDg0 OSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wb3dfY29tcHV0ZXIucHhkCisr KysgYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcG93X2NvbXB1dGVyLnB4ZAorQEAgLTIyLDcgKzIy LDcgQEAgY2RlZiBjbGFzcyBQb3dDb21wdXRlcl9jbGFzcyhTYWdlT2JqZWN0KToKKyAgICAgY2Rl ZiB1bnNpZ25lZCBsb25nIGNhY2hlX2xpbWl0CisgICAgIGNkZWYgdW5zaWduZWQgbG9uZyBwcmVj X2NhcAorIAorLSAgICBjZGVmIEludGVnZXIgcG93X0ludGVnZXIoc2VsZiwgbG9uZyBuKSBub2V4 Y2VwdAorKyAgICBjZGVmIEludGVnZXIgcG93X0ludGVnZXIoc2VsZiwgbG9uZyBuKQorICAgICBj ZGVmIG1wel9zcmNwdHIgcG93X21wel90X3RvcChzZWxmKSBub2V4Y2VwdAorICAgICBjZGVmIG1w el9zcmNwdHIgcG93X21wel90X3RtcChzZWxmLCBsb25nIG4pIGV4Y2VwdCBOVUxMCisgICAgIGNk ZWYgbXB6X3QgdGVtcF9tCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3Bvd19j b21wdXRlci5weXggYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcG93X2NvbXB1dGVyLnB5eAoraW5k ZXggOTQyYjJhNjMyM2UuLmRkYTQyM2Y0YTBmIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3Mv cGFkaWNzL3Bvd19jb21wdXRlci5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wb3df Y29tcHV0ZXIucHl4CitAQCAtMTQ2LDcgKzE0Niw3IEBAIGNkZWYgY2xhc3MgUG93Q29tcHV0ZXJf Y2xhc3MoU2FnZU9iamVjdCk6CisgCisgICAgICAgICByZXR1cm4gcmljaGNtcChzLmluX2ZpZWxk LCBvLmluX2ZpZWxkLCBvcCkKKyAKKy0gICAgY2RlZiBJbnRlZ2VyIHBvd19JbnRlZ2VyKHNlbGYs IGxvbmcgbikgbm9leGNlcHQ6CisrICAgIGNkZWYgSW50ZWdlciBwb3dfSW50ZWdlcihzZWxmLCBs b25nIG4pOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm5zIHNlbGYucHJpbWVebgorIAor QEAgLTYwMSw3ICs2MDEsNyBAQCBjZGVmIGNsYXNzIFBvd0NvbXB1dGVyX2Jhc2UoUG93Q29tcHV0 ZXJfY2xhc3MpOgorICAgICAgICAgcmV0dXJuIHNlbGYudGVtcF9tCisgCisgcG93X2NvbXBfY2Fj aGUgPSB7fQorLWNkZWYgUG93Q29tcHV0ZXJfYmFzZSBQb3dDb21wdXRlcl9jKEludGVnZXIgbSwg SW50ZWdlciBjYWNoZV9saW1pdCwgSW50ZWdlciBwcmVjX2NhcCwgaW5fZmllbGQsIHByZWNfdHlw ZT1Ob25lKSBub2V4Y2VwdDoKKytjZGVmIFBvd0NvbXB1dGVyX2Jhc2UgUG93Q29tcHV0ZXJfYyhJ bnRlZ2VyIG0sIEludGVnZXIgY2FjaGVfbGltaXQsIEludGVnZXIgcHJlY19jYXAsIGluX2ZpZWxk LCBwcmVjX3R5cGU9Tm9uZSk6CisgICAgICIiIgorICAgICBSZXR1cm5zIGEgUG93Q29tcHV0ZXIu CisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3Bvd19jb21wdXRlcl9leHQu cHhkIGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3Bvd19jb21wdXRlcl9leHQucHhkCitpbmRleCBl NGVjYTY2MGJiMy4uNWQzMTc5MGUwMmUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wYWRp Y3MvcG93X2NvbXB1dGVyX2V4dC5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wb3df Y29tcHV0ZXJfZXh0LnB4ZAorQEAgLTIxLDExICsyMSwxMSBAQCBjZGVmIGNsYXNzIFBvd0NvbXB1 dGVyX2V4dChQb3dDb21wdXRlcl9jbGFzcyk6CisgICAgIGNkZWYgdm9pZCBjbGVhbnVwX2V4dChz ZWxmKSBub2V4Y2VwdAorIAorIGNkZWYgY2xhc3MgUG93Q29tcHV0ZXJfWlpfcFgoUG93Q29tcHV0 ZXJfZXh0KToKKy0gICAgY2RlZiBudGxfWlpfcENvbnRleHRfY2xhc3MgZ2V0X2NvbnRleHQoc2Vs ZiwgbG9uZyBuKSBub2V4Y2VwdAorLSAgICBjZGVmIG50bF9aWl9wQ29udGV4dF9jbGFzcyBnZXRf Y29udGV4dF9jYXBkaXYoc2VsZiwgbG9uZyBuKSBub2V4Y2VwdAorLSAgICBjZGVmIG50bF9aWl9w Q29udGV4dF9jbGFzcyBnZXRfdG9wX2NvbnRleHQoc2VsZikgbm9leGNlcHQKKy0gICAgY2RlZiBy ZXN0b3JlX2NvbnRleHQoc2VsZiwgbG9uZyBuKSBub2V4Y2VwdAorLSAgICBjZGVmIHJlc3RvcmVf Y29udGV4dF9jYXBkaXYoc2VsZiwgbG9uZyBuKSBub2V4Y2VwdAorKyAgICBjZGVmIG50bF9aWl9w Q29udGV4dF9jbGFzcyBnZXRfY29udGV4dChzZWxmLCBsb25nIG4pCisrICAgIGNkZWYgbnRsX1pa X3BDb250ZXh0X2NsYXNzIGdldF9jb250ZXh0X2NhcGRpdihzZWxmLCBsb25nIG4pCisrICAgIGNk ZWYgbnRsX1paX3BDb250ZXh0X2NsYXNzIGdldF90b3BfY29udGV4dChzZWxmKQorKyAgICBjZGVm IHJlc3RvcmVfY29udGV4dChzZWxmLCBsb25nIG4pCisrICAgIGNkZWYgcmVzdG9yZV9jb250ZXh0 X2NhcGRpdihzZWxmLCBsb25nIG4pCisgICAgIGNkZWYgdm9pZCByZXN0b3JlX3RvcF9jb250ZXh0 KHNlbGYpIG5vZXhjZXB0CisgICAgIGNkZWYgWlpfcFhfTW9kdWx1c19jKiBnZXRfbW9kdWx1cyhz ZWxmLCBsb25nIG4pIG5vZXhjZXB0CisgICAgIGNkZWYgWlpfcFhfTW9kdWx1c19jKiBnZXRfbW9k dWx1c19jYXBkaXYoc2VsZiwgbG9uZyBuKSBub2V4Y2VwdAorZGlmZiAtLWdpdCBhL3NyYy9zYWdl L3JpbmdzL3BhZGljcy9wb3dfY29tcHV0ZXJfZXh0LnB5eCBiL3NyYy9zYWdlL3JpbmdzL3BhZGlj cy9wb3dfY29tcHV0ZXJfZXh0LnB5eAoraW5kZXggM2Y2ZThlYjg3NWIuLjg5YTA3MzU1MGY1IDEw MDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3Bvd19jb21wdXRlcl9leHQucHl4Cisr KysgYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcG93X2NvbXB1dGVyX2V4dC5weXgKK0BAIC03NjAs NyArNzYwLDcgQEAgY2RlZiBjbGFzcyBQb3dDb21wdXRlcl9aWl9wWChQb3dDb21wdXRlcl9leHQp OgorICAgICAgICAgci54ID0gKHNlbGYuZ2V0X3RvcF9tb2R1bHVzKClbMF0pLnZhbCgpCisgICAg ICAgICByZXR1cm4gcgorIAorLSAgICBjZGVmIG50bF9aWl9wQ29udGV4dF9jbGFzcyBnZXRfY29u dGV4dChzZWxmLCBsb25nIG4pIG5vZXhjZXB0OgorKyAgICBjZGVmIG50bF9aWl9wQ29udGV4dF9j bGFzcyBnZXRfY29udGV4dChzZWxmLCBsb25nIG4pOgorICAgICAgICAgIiIiCisgICAgICAgICBS ZXR1cm5zIGEgWlpfcENvbnRleHQgZm9yIHNlbGYucHJpbWVeKGFicyhuKSkuCisgCitAQCAtNzkz LDcgKzc5Myw3IEBAIGNkZWYgY2xhc3MgUG93Q29tcHV0ZXJfWlpfcFgoUG93Q29tcHV0ZXJfZXh0 KToKKyAgICAgICAgIGNkZWYgSW50ZWdlciBfbiA9IEludGVnZXIobikKKyAgICAgICAgIHJldHVy biBzZWxmLmdldF9jb250ZXh0KG1wel9nZXRfc2koX24udmFsdWUpKQorIAorLSAgICBjZGVmIG50 bF9aWl9wQ29udGV4dF9jbGFzcyBnZXRfY29udGV4dF9jYXBkaXYoc2VsZiwgbG9uZyBuKSBub2V4 Y2VwdDoKKysgICAgY2RlZiBudGxfWlpfcENvbnRleHRfY2xhc3MgZ2V0X2NvbnRleHRfY2FwZGl2 KHNlbGYsIGxvbmcgbik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybnMgYSBaWl9wQ29u dGV4dCBmb3Igc2VsZi5wcmltZV4oKG4tMSkgLy8gc2VsZi5lICsgMSkKKyAKK0BAIC04NTMsNyAr ODUzLDcgQEAgY2RlZiBjbGFzcyBQb3dDb21wdXRlcl9aWl9wWChQb3dDb21wdXRlcl9leHQpOgor ICAgICAgICAgICAgIHNlbGYuZ2V0X21vZHVsdXMoX24pCisgICAgICAgICByZXR1cm4gY3B1dGlt ZSh0KQorIAorLSAgICBjZGVmIG50bF9aWl9wQ29udGV4dF9jbGFzcyBnZXRfdG9wX2NvbnRleHQo c2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgbnRsX1paX3BDb250ZXh0X2NsYXNzIGdldF90b3Bf Y29udGV4dChzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJucyBhIFpaX3BDb250 ZXh0IGZvciBzZWxmLnByaW1lXnNlbGYucHJlY19jYXAKKyAKK0BAIC04NzcsNyArODc3LDcgQEAg Y2RlZiBjbGFzcyBQb3dDb21wdXRlcl9aWl9wWChQb3dDb21wdXRlcl9leHQpOgorICAgICAgICAg IiIiCisgICAgICAgICByZXR1cm4gc2VsZi5nZXRfdG9wX2NvbnRleHQoKQorIAorLSAgICBjZGVm IHJlc3RvcmVfY29udGV4dChzZWxmLCBsb25nIG4pIG5vZXhjZXB0OgorKyAgICBjZGVmIHJlc3Rv cmVfY29udGV4dChzZWxmLCBsb25nIG4pOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXN0b3Jl cyB0aGUgY29udGVzdCBjb3JyZXNwb25kaW5nIHRvIHNlbGYucHJpbWVebgorIAorQEAgLTkwMCw3 ICs5MDAsNyBAQCBjZGVmIGNsYXNzIFBvd0NvbXB1dGVyX1paX3BYKFBvd0NvbXB1dGVyX2V4dCk6 CisgICAgICAgICBjZGVmIEludGVnZXIgX24gPSBJbnRlZ2VyKG4pCisgICAgICAgICBzZWxmLnJl c3RvcmVfY29udGV4dChtcHpfZ2V0X3NpKF9uLnZhbHVlKSkKKyAKKy0gICAgY2RlZiByZXN0b3Jl X2NvbnRleHRfY2FwZGl2KHNlbGYsIGxvbmcgbikgbm9leGNlcHQ6CisrICAgIGNkZWYgcmVzdG9y ZV9jb250ZXh0X2NhcGRpdihzZWxmLCBsb25nIG4pOgorICAgICAgICAgIiIiCisgICAgICAgICBS ZXN0b3JlcyB0aGUgY29udGV4dCBmb3Igc2VsZi5wcmltZV4oKG4tMSkgLy8gc2VsZi5lICsgMSkK KyAKK0BAIC0xMjQ4LDcgKzEyNDgsNyBAQCBjZGVmIGNsYXNzIFBvd0NvbXB1dGVyX1paX3BYX0ZN KFBvd0NvbXB1dGVyX1paX3BYKToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmFpc2Ug Tm90SW1wbGVtZW50ZWRFcnJvcigiTk9UIElNUExFTUVOVEVEIElOIFBvd0NvbXB1dGVyX1paX3BY X0ZNIikKKyAKKy0gICAgY2RlZiBudGxfWlpfcENvbnRleHRfY2xhc3MgZ2V0X3RvcF9jb250ZXh0 KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIG50bF9aWl9wQ29udGV4dF9jbGFzcyBnZXRfdG9w X2NvbnRleHQoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybnMgYSBaWl9wQ29u dGV4dCBmb3Igc2VsZi5wcmltZV5zZWxmLnByZWNfY2FwCisgCitAQCAtMTYyMCw3ICsxNjIwLDcg QEAgY2RlZiBjbGFzcyBQb3dDb21wdXRlcl9aWl9wWF9zbWFsbChQb3dDb21wdXRlcl9aWl9wWCk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIERlbGV0ZV9aWl9wWF9Nb2R1bHVzX2FycmF5KHNlbGYu bW9kKQorIAorLSAgICBjZGVmIG50bF9aWl9wQ29udGV4dF9jbGFzcyBnZXRfY29udGV4dChzZWxm LCBsb25nIG4pIG5vZXhjZXB0OgorKyAgICBjZGVmIG50bF9aWl9wQ29udGV4dF9jbGFzcyBnZXRf Y29udGV4dChzZWxmLCBsb25nIG4pOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhl IGNvbnRleHQgZm9yIHBebi4gIFRoaXMgd2lsbCB1c2UgdGhlIGNhY2hlIGlmCisgICAgICAgICBg YGFicyhuKSA8PSBzZWxmLmNhY2hlX2xpbWl0YGAuCitAQCAtMTY0Niw3ICsxNjQ2LDcgQEAgY2Rl ZiBjbGFzcyBQb3dDb21wdXRlcl9aWl9wWF9zbWFsbChQb3dDb21wdXRlcl9aWl9wWCk6CisgICAg ICAgICBleGNlcHQgSW5kZXhFcnJvcjoKKyAgICAgICAgICAgICByZXR1cm4gUG93Q29tcHV0ZXJf WlpfcFguZ2V0X2NvbnRleHQoc2VsZiwgbikKKyAKKy0gICAgY2RlZiByZXN0b3JlX2NvbnRleHQo c2VsZiwgbG9uZyBuKSBub2V4Y2VwdDoKKysgICAgY2RlZiByZXN0b3JlX2NvbnRleHQoc2VsZiwg bG9uZyBuKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmVzdG9yZSB0aGUgY29udGV4dCBmb3Ig cF5uLiAgVGhpcyB3aWxsIHVzZSB0aGUgY2FjaGUgaWYKKyAgICAgICAgIGBgYWJzKG4pIDw9IHNl bGYuY2FjaGVfbGltaXRgYC4KK0BAIC0xNjY3LDcgKzE2NjcsNyBAQCBjZGVmIGNsYXNzIFBvd0Nv bXB1dGVyX1paX3BYX3NtYWxsKFBvd0NvbXB1dGVyX1paX3BYKToKKyAgICAgICAgIGV4Y2VwdCBJ bmRleEVycm9yOgorICAgICAgICAgICAgICg8bnRsX1paX3BDb250ZXh0X2NsYXNzPlBvd0NvbXB1 dGVyX1paX3BYLmdldF9jb250ZXh0KHNlbGYsIG4pKS5yZXN0b3JlX2MoKQorIAorLSAgICBjZGVm IG50bF9aWl9wQ29udGV4dF9jbGFzcyBnZXRfdG9wX2NvbnRleHQoc2VsZikgbm9leGNlcHQ6Cisr ICAgIGNkZWYgbnRsX1paX3BDb250ZXh0X2NsYXNzIGdldF90b3BfY29udGV4dChzZWxmKToKKyAg ICAgICAgICIiIgorICAgICAgICAgUmV0dXJucyBhIFpaX3BDb250ZXh0IGZvciBzZWxmLnByaW1l XnNlbGYucHJlY19jYXAKKyAKK0BAIC0yMDQzLDcgKzIwNDMsNyBAQCBjZGVmIGNsYXNzIFBvd0Nv bXB1dGVyX1paX3BYX2JpZyhQb3dDb21wdXRlcl9aWl9wWCk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIHJldHVybiBzZWxmLm1vZHVsdXNfZGljdAorIAorLSAgICBjZGVmIG50bF9aWl9wQ29udGV4 dF9jbGFzcyBnZXRfY29udGV4dChzZWxmLCBsb25nIG4pIG5vZXhjZXB0OgorKyAgICBjZGVmIG50 bF9aWl9wQ29udGV4dF9jbGFzcyBnZXRfY29udGV4dChzZWxmLCBsb25nIG4pOgorICAgICAgICAg IiIiCisgICAgICAgICBSZXR1cm5zIHRoZSBjb250ZXh0IGZvciBwXm4uCisgCitAQCAtMjA3OSw3 ICsyMDc5LDcgQEAgY2RlZiBjbGFzcyBQb3dDb21wdXRlcl9aWl9wWF9iaWcoUG93Q29tcHV0ZXJf WlpfcFgpOgorICAgICAgICAgICAgICAgICBzZWxmLmNvbnRleHRfZGljdFtuXSA9IFBvd0NvbXB1 dGVyX1paX3BYLmdldF9jb250ZXh0KHNlbGYsIG4pCisgICAgICAgICAgICAgICAgIHJldHVybiBz ZWxmLmNvbnRleHRfZGljdFtuXQorIAorLSAgICBjZGVmIG50bF9aWl9wQ29udGV4dF9jbGFzcyBn ZXRfdG9wX2NvbnRleHQoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgbnRsX1paX3BDb250ZXh0 X2NsYXNzIGdldF90b3BfY29udGV4dChzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0 dXJucyBhIFpaX3BDb250ZXh0IGZvciBzZWxmLnByaW1lXnNlbGYucHJlY19jYXAKKyAKK2RpZmYg LS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcG93X2NvbXB1dGVyX2ZsaW50LnB4ZCBiL3Ny Yy9zYWdlL3JpbmdzL3BhZGljcy9wb3dfY29tcHV0ZXJfZmxpbnQucHhkCitpbmRleCA4MzE4NWVj OWNjOS4uN2IwZDA0MjExNWQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcG93 X2NvbXB1dGVyX2ZsaW50LnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3Bvd19jb21w dXRlcl9mbGludC5weGQKK0BAIC0yMyw3ICsyMyw3IEBAIGNkZWYgY2xhc3MgUG93Q29tcHV0ZXJf ZmxpbnRfMXN0ZXAoUG93Q29tcHV0ZXJfZmxpbnQpOgorICAgICBjZGVmIGZtcHpfcG9seV90KiBf bW9kdWxpCisgICAgIGNkZWYgZm1wel9wb2x5X3QqIGdldF9tb2R1bHVzKHNlbGYsIHVuc2lnbmVk IGxvbmcgbikgbm9leGNlcHQKKyAgICAgY2RlZiBmbXB6X3BvbHlfdCogZ2V0X21vZHVsdXNfY2Fw ZGl2KHNlbGYsIHVuc2lnbmVkIGxvbmcgbikgbm9leGNlcHQKKy0gICAgY2RlZiBfbmV3X2ZtcHpf cG9seShzZWxmLCBmbXB6X3BvbHlfdCB2YWx1ZSwgdmFyPSopIG5vZXhjZXB0CisrICAgIGNkZWYg X25ld19mbXB6X3BvbHkoc2VsZiwgZm1wel9wb2x5X3QgdmFsdWUsIHZhcj0qKQorIAorIGNkZWYg Y2xhc3MgUG93Q29tcHV0ZXJfZmxpbnRfdW5yYW0oUG93Q29tcHV0ZXJfZmxpbnRfMXN0ZXApOgor ICAgICAjIFdBUk5JTkc6CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3Bvd19j b21wdXRlcl9mbGludC5weXggYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcG93X2NvbXB1dGVyX2Zs aW50LnB5eAoraW5kZXggMmVmN2ZmOWU4NzkuLjJhOWM5Mzc5MjNmIDEwMDY0NAorLS0tIGEvc3Jj L3NhZ2UvcmluZ3MvcGFkaWNzL3Bvd19jb21wdXRlcl9mbGludC5weXgKKysrKyBiL3NyYy9zYWdl L3JpbmdzL3BhZGljcy9wb3dfY29tcHV0ZXJfZmxpbnQucHl4CitAQCAtNDMyLDcgKzQzMiw3IEBA IGNkZWYgY2xhc3MgUG93Q29tcHV0ZXJfZmxpbnRfMXN0ZXAoUG93Q29tcHV0ZXJfZmxpbnQpOgor ICAgICAgICAgICAgIGZtcHpfcG9seV9zZXQoYW5zLl9wb2x5LCBzZWxmLmdldF9tb2R1bHVzKF9u KVswXSkKKyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY2RlZiBfbmV3X2ZtcHpfcG9seShz ZWxmLCBmbXB6X3BvbHlfdCB2YWx1ZSwgdmFyPSd4Jykgbm9leGNlcHQ6CisrICAgIGNkZWYgX25l d19mbXB6X3BvbHkoc2VsZiwgZm1wel9wb2x5X3QgdmFsdWUsIHZhcj0neCcpOgorICAgICAgICAg IiIiCisgICAgICAgICBSZXR1cm5zIGEgcG9seW5vbWlhbCB3aXRoIHRoZSB2YWx1ZSBzdG9yZWQg aW4gYGB2YWx1ZWBgIGFuZAorICAgICAgICAgdmFyaWFibGUgbmFtZSBgYHZhcmBgLgorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wb3dfY29tcHV0ZXJfcmVsYXRpdmUucHhkIGIv c3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3Bvd19jb21wdXRlcl9yZWxhdGl2ZS5weGQKK2luZGV4IDli YzZmMWI0ODdhLi5kZjk4OTc2ODcyMCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BhZGlj cy9wb3dfY29tcHV0ZXJfcmVsYXRpdmUucHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3Mv cG93X2NvbXB1dGVyX3JlbGF0aXZlLnB4ZAorQEAgLTI2LDQgKzI2LDQgQEAgY2RlZiBjbGFzcyBQ b3dDb21wdXRlcl9yZWxhdGl2ZV9laXMoUG93Q29tcHV0ZXJfcmVsYXRpdmUpOgorICAgICAjICh4 XmUgLSBtb2R1bHVzKS9wCisgICAgIGNkZWYgcHVibGljIFBvbHlub21pYWxfZ2VuZXJpY19kZW5z ZSBfc2hpZnRfc2VlZAorICAgICBjZGVmIHB1YmxpYyBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2Ug X2ludl9zaGlmdF9zZWVkCistICAgIGNwZGVmIFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZSBpbnZl cnQoc2VsZiwgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlIGVsZW1lbnQsIGxvbmcgcHJlYykgbm9l eGNlcHQKKysgICAgY3BkZWYgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlIGludmVydChzZWxmLCBQ b2x5bm9taWFsX2dlbmVyaWNfZGVuc2UgZWxlbWVudCwgbG9uZyBwcmVjKQorZGlmZiAtLWdpdCBh L3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wb3dfY29tcHV0ZXJfcmVsYXRpdmUucHl4IGIvc3JjL3Nh Z2UvcmluZ3MvcGFkaWNzL3Bvd19jb21wdXRlcl9yZWxhdGl2ZS5weXgKK2luZGV4IDU1YzUzYTEy YTYzLi45OGIzYTZmNWZhNCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9wb3df Y29tcHV0ZXJfcmVsYXRpdmUucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcG93X2Nv bXB1dGVyX3JlbGF0aXZlLnB5eAorQEAgLTIyOCw3ICsyMjgsNyBAQCBjZGVmIGNsYXNzIFBvd0Nv bXB1dGVyX3JlbGF0aXZlX2VpcyhQb3dDb21wdXRlcl9yZWxhdGl2ZSk6CisgICAgICAgICBQb3dD b21wdXRlcl9yZWxhdGl2ZS5fX2luaXRfXyhzZWxmLCBwcmltZSwgY2FjaGVfbGltaXQsIHByZWNf Y2FwLCByYW1fcHJlY19jYXAsIGluX2ZpZWxkLCBwb2x5LCBzaGlmdF9zZWVkKQorICAgICAgICAg c2VsZi5faW52X3NoaWZ0X3NlZWQgPSBzZWxmLmludmVydChzaGlmdF9zZWVkLCBzZWxmLnJhbV9w cmVjX2NhcCkKKyAKKy0gICAgY3BkZWYgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlIGludmVydChz ZWxmLCBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UgYSwgbG9uZyBwcmVjKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlIGludmVydChzZWxmLCBQb2x5bm9taWFs X2dlbmVyaWNfZGVuc2UgYSwgbG9uZyBwcmVjKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJl dHVybiB0aGUgaW52ZXJzZSBvZiBgYGFgYC4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5n cy9wYWRpY3MvcmVsYXhlZF90ZW1wbGF0ZS5weGkgYi9zcmMvc2FnZS9yaW5ncy9wYWRpY3MvcmVs YXhlZF90ZW1wbGF0ZS5weGkKK2luZGV4IGZlNzA2NTdhY2RhLi43MDY4YTE0MjVhMiAxMDA2NDQK Ky0tLSBhL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9yZWxheGVkX3RlbXBsYXRlLnB4aQorKysrIGIv c3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3JlbGF4ZWRfdGVtcGxhdGUucHhpCitAQCAtMTcxMCw3ICsx NzEwLDcgQEAgY2RlZiBjbGFzcyBSZWxheGVkRWxlbWVudChwQWRpY0dlbmVyaWNFbGVtZW50KToK KyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX19yc2hpZnRfXygtcykKKyAKKy0g ICAgY3BkZWYgX2FkZF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWRkXyhz ZWxmLCBvdGhlcik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHN1bSBvZiB0 aGlzIGVsZW1lbnQgd2l0aCBgYG90aGVyYGAuCisgCitAQCAtMTcyOSw3ICsxNzI5LDcgQEAgY2Rl ZiBjbGFzcyBSZWxheGVkRWxlbWVudChwQWRpY0dlbmVyaWNFbGVtZW50KToKKyAgICAgICAgICAg ICByZXR1cm4gc2VsZgorICAgICAgICAgcmV0dXJuIGVsZW1lbnRfY2xhc3NfYWRkKHNlbGYuX3Bh cmVudCwgc2VsZiwgPFJlbGF4ZWRFbGVtZW50Pm90aGVyKQorIAorLSAgICBjcGRlZiBfc3ViXyhz ZWxmLCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9zdWJfKHNlbGYsIG90aGVyKToKKyAg ICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgZGlmZmVyZW5jZSBvZiB0aGlzIGVsZW1l bnQgYW5kIGBgb3RoZXJgYC4KKyAKK0BAIC0xNzUxLDcgKzE3NTEsNyBAQCBjZGVmIGNsYXNzIFJl bGF4ZWRFbGVtZW50KHBBZGljR2VuZXJpY0VsZW1lbnQpOgorICAgICAgICAgICAgIHJldHVybiBz ZWxmCisgICAgICAgICByZXR1cm4gZWxlbWVudF9jbGFzc19zdWIoc2VsZi5fcGFyZW50LCBzZWxm LCA8UmVsYXhlZEVsZW1lbnQ+b3RoZXIpCisgCistICAgIGNwZGVmIF9uZWdfKHNlbGYpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBfbmVnXyhzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJl dHVybiB0aGUgb3Bwb3NpdGUgb2YgdGhpcyBlbGVtZW50LgorIAorQEAgLTE3NjgsNyArMTc2OCw3 IEBAIGNkZWYgY2xhc3MgUmVsYXhlZEVsZW1lbnQocEFkaWNHZW5lcmljRWxlbWVudCk6CisgICAg ICAgICAgICAgcmV0dXJuIHNlbGYKKyAgICAgICAgIHJldHVybiBlbGVtZW50X2NsYXNzX3N1Yihz ZWxmLl9wYXJlbnQsIHNlbGYuX3BhcmVudC56ZXJvKCksIHNlbGYpCisgCistICAgIGNwZGVmIF9t dWxfKHNlbGYsIG90aGVyKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIp OgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBwcm9kdWN0IG9mIHRoaXMgZWxl bWVudCB3aXRoIGBgb3RoZXJgYC4KKyAKK0BAIC0xNzkwLDcgKzE3OTAsNyBAQCBjZGVmIGNsYXNz IFJlbGF4ZWRFbGVtZW50KHBBZGljR2VuZXJpY0VsZW1lbnQpOgorICAgICAgICAgICAgIHJldHVy biBvdGhlcgorICAgICAgICAgcmV0dXJuIGVsZW1lbnRfY2xhc3NfbXVsKHNlbGYuX3BhcmVudCwg c2VsZiwgPFJlbGF4ZWRFbGVtZW50Pm90aGVyKQorIAorLSAgICBjcGRlZiBfZGl2XyhzZWxmLCBv dGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9kaXZfKHNlbGYsIG90aGVyKToKKyAgICAgICAg IHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgcXVvdGllbnQgaWYgdGhpcyBlbGVtZW50IGJ5IGBg b3RoZXJgYC4KKyAKK0BAIC0zODM4LDcgKzM4MzgsNyBAQCBjZGVmIGNsYXNzIFJlbGF4ZWRFbGVt ZW50X3Vua25vd24oUmVsYXhlZEVsZW1lbnRXaXRoRGlnaXRzKToKKyAgICAgICAgICAgICBkZWZp bml0aW9uID0gc2VsZi5fZGVmaW5pdGlvbgorICAgICAgICAgcmV0dXJuIHVucGlja2xlX3Vua25v d24sIChpZChzZWxmKSwgc2VsZi5fX2NsYXNzX18sIHNlbGYuX3BhcmVudCwgc2VsZi5faW5pdGlh bHZhbHVhdGlvbiwgZGlnaXRzLCBkZWZpbml0aW9uKQorIAorLSAgICBjcGRlZiBzZXQoc2VsZiwg UmVsYXhlZEVsZW1lbnQgZGVmaW5pdGlvbikgbm9leGNlcHQ6CisrICAgIGNwZGVmIHNldChzZWxm LCBSZWxheGVkRWxlbWVudCBkZWZpbml0aW9uKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFNl dCB0aGUgcmVjdXJzaXZlIGRlZmluaXRpb24gb2YgdGhpcyBzZWxmLXJlZmVyZW50IG51bWJlci4K KyAKK0BAIC00MTU1LDcgKzQxNTUsNyBAQCBjZGVmIGNsYXNzIEV4cGFuc2lvbkl0ZXIoKToKKyAg ICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYKKyAKKy0gICAgY2RlZiBfbmV4dF9zaW1w bGUoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgX25leHRfc2ltcGxlKHNlbGYpOgorICAgICAg ICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBuZXh0IGRpZ2l0IG9mIHRoaXMgZXhwYW5zaW9u IChzaW1wbGUgbW9kZSkuCisgICAgICAgICAiIiIKK0BAIC00MTY1LDcgKzQxNjUsNyBAQCBjZGVm IGNsYXNzIEV4cGFuc2lvbkl0ZXIoKToKKyAgICAgICAgIHNlbGYuY3VycmVudCArPSAxCisgICAg ICAgICByZXR1cm4gZGlnaXRfZ2V0X3NhZ2Uoc2VsZi5kaWdpdCkKKyAKKy0gICAgY2RlZiBfbmV4 dF9zbWFsbGVzdChzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfbmV4dF9zbWFsbGVzdChzZWxm KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgbmV4dCBkaWdpdCBvZiB0aGlz IGV4cGFuc2lvbiAoc21hbGxlc3QgbW9kZSkuCisgICAgICAgICAiIiIKK0BAIC00MTc2LDcgKzQx NzYsNyBAQCBjZGVmIGNsYXNzIEV4cGFuc2lvbkl0ZXIoKToKKyAgICAgICAgIHNlbGYuY3VycmVu dCArPSAxCisgICAgICAgICByZXR1cm4gZGlnaXRfZ2V0X3NhZ2Uoc2VsZi5kaWdpdCkKKyAKKy0g ICAgY2RlZiBfbmV4dF90ZWljaG11bGxlcihzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfbmV4 dF90ZWljaG11bGxlcihzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUg bmV4dCBkaWdpdCBvZiB0aGlzIGV4cGFuc2lvbiAoVGVpY2htw7xsbGVyIG1vZGUpLgorICAgICAg ICAgIiIiCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcGFkaWNzL3JlbGF4ZWRfdGVtcGxh dGVfaGVhZGVyLnB4aSBiL3NyYy9zYWdlL3JpbmdzL3BhZGljcy9yZWxheGVkX3RlbXBsYXRlX2hl YWRlci5weGkKK2luZGV4IDFiYWE0YmZkYmU3Li43YTU3MTQxZTkyMiAxMDA2NDQKKy0tLSBhL3Ny Yy9zYWdlL3JpbmdzL3BhZGljcy9yZWxheGVkX3RlbXBsYXRlX2hlYWRlci5weGkKKysrKyBiL3Ny Yy9zYWdlL3JpbmdzL3BhZGljcy9yZWxheGVkX3RlbXBsYXRlX2hlYWRlci5weGkKK0BAIC0xMzAs NyArMTMwLDcgQEAgY2RlZiBjbGFzcyBSZWxheGVkRWxlbWVudF90ZWljaG11bGxlcihSZWxheGVk RWxlbWVudFdpdGhEaWdpdHMpOgorIGNkZWYgY2xhc3MgUmVsYXhlZEVsZW1lbnRfdW5rbm93bihS ZWxheGVkRWxlbWVudFdpdGhEaWdpdHMpOgorICAgICBjZGVmIFJlbGF4ZWRFbGVtZW50IF9kZWZp bml0aW9uCisgICAgIGNkZWYgbG9uZyBfbmV4dAorLSAgICBjcGRlZiBzZXQoc2VsZiwgUmVsYXhl ZEVsZW1lbnQgZGVmaW5pdGlvbikgbm9leGNlcHQKKysgICAgY3BkZWYgc2V0KHNlbGYsIFJlbGF4 ZWRFbGVtZW50IGRlZmluaXRpb24pCisgICAgICMgZm9yIHBpY2tsaW5nCisgICAgIGNkZWYgbG9u ZyBfaW5pdGlhbHZhbHVhdGlvbgorICAgICBjZGVmIGxvbmcgX2luaXRpYWxwcmVjcmVsCitAQCAt MTQ5LDExICsxNDksMTEgQEAgY2RlZiBjbGFzcyBFeHBhbnNpb25JdGVyKCk6CisgICAgIGNkZWYg bG9uZyBjdXJyZW50CisgICAgIGNkZWYgY2RpZ2l0IGRpZ2l0CisgICAgICMgc2ltcGxlIG1vZGUK Ky0gICAgY2RlZiBfbmV4dF9zaW1wbGUoc2VsZikgbm9leGNlcHQKKysgICAgY2RlZiBfbmV4dF9z aW1wbGUoc2VsZikKKyAgICAgIyBzbWFsbGVzdCBtb2RlCisgICAgIGNkZWYgY2RpZ2l0IGNhcnJ5 CistICAgIGNkZWYgX25leHRfc21hbGxlc3Qoc2VsZikgbm9leGNlcHQKKysgICAgY2RlZiBfbmV4 dF9zbWFsbGVzdChzZWxmKQorICAgICAjIHRlaWNobXVsbGVyIG1vZGUKKyAgICAgY2RlZiBSZWxh eGVkRWxlbWVudCB0YWlsCisgICAgIGNkZWYgZGljdCBjb2VmZmljaWVudHMKKy0gICAgY2RlZiBf bmV4dF90ZWljaG11bGxlcihzZWxmKSBub2V4Y2VwdAorKyAgICBjZGVmIF9uZXh0X3RlaWNobXVs bGVyKHNlbGYpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9ldmFsdWF0 aW9uX2ZsaW50LnB4ZCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvZXZhbHVhdGlvbl9mbGlu dC5weGQKK2luZGV4IDQ1MDRlOGFmNjNjLi5iNjk5ODcxYmEwYyAxMDA2NDQKKy0tLSBhL3NyYy9z YWdlL3JpbmdzL3BvbHlub21pYWwvZXZhbHVhdGlvbl9mbGludC5weGQKKysrKyBiL3NyYy9zYWdl L3JpbmdzL3BvbHlub21pYWwvZXZhbHVhdGlvbl9mbGludC5weGQKK0BAIC0yLDUgKzIsNSBAQCBm cm9tIHNhZ2UubGlicy5mbGludC50eXBlcyBjaW1wb3J0IGZtcHpfcG9seV90CisgZnJvbSBzYWdl LmxpYnMubXBmci50eXBlcyBjaW1wb3J0IG1wZnJfdAorIGZyb20gc2FnZS5saWJzLm1wZmkudHlw ZXMgY2ltcG9ydCBtcGZpX3QKKyAKKy1jZGVmIGZtcHpfcG9seV9ldmFsdWF0aW9uX21wZnIobXBm cl90IHJlcywgY29uc3QgZm1wel9wb2x5X3QgcG9seSwgY29uc3QgbXBmcl90IGEpIG5vZXhjZXB0 CistY2RlZiBmbXB6X3BvbHlfZXZhbHVhdGlvbl9tcGZpKG1wZmlfdCByZXMsIGNvbnN0IGZtcHpf cG9seV90IHBvbHksIGNvbnN0IG1wZmlfdCBhKSBub2V4Y2VwdAorK2NkZWYgZm1wel9wb2x5X2V2 YWx1YXRpb25fbXBmcihtcGZyX3QgcmVzLCBjb25zdCBmbXB6X3BvbHlfdCBwb2x5LCBjb25zdCBt cGZyX3QgYSkKKytjZGVmIGZtcHpfcG9seV9ldmFsdWF0aW9uX21wZmkobXBmaV90IHJlcywgY29u c3QgZm1wel9wb2x5X3QgcG9seSwgY29uc3QgbXBmaV90IGEpCitkaWZmIC0tZ2l0IGEvc3JjL3Nh Z2UvcmluZ3MvcG9seW5vbWlhbC9ldmFsdWF0aW9uX2ZsaW50LnB5eCBiL3NyYy9zYWdlL3Jpbmdz L3BvbHlub21pYWwvZXZhbHVhdGlvbl9mbGludC5weXgKK2luZGV4IGZlZjNiZGRlY2I1Li4xYzU5 MDljMzdiMCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvZXZhbHVhdGlv bl9mbGludC5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvZXZhbHVhdGlvbl9m bGludC5weXgKK0BAIC0zNiw3ICszNiw3IEBAIGZyb20gc2FnZS5saWJzLmZsaW50LmZtcHpfcG9s eSBjaW1wb3J0ICoKKyBmcm9tIHNhZ2UubGlicy5mbGludC5mbXB6X3BvbHlfc2FnZSBjaW1wb3J0 ICoKKyAKKyAKKy1jZGVmIGZtcHpfcG9seV9ldmFsdWF0aW9uX21wZnIobXBmcl90IHJlcywgY29u c3QgZm1wel9wb2x5X3QgcG9seSwgY29uc3QgbXBmcl90IGEpIG5vZXhjZXB0OgorK2NkZWYgZm1w el9wb2x5X2V2YWx1YXRpb25fbXBmcihtcGZyX3QgcmVzLCBjb25zdCBmbXB6X3BvbHlfdCBwb2x5 LCBjb25zdCBtcGZyX3QgYSk6CisgICAgIGNkZWYgbXB6X3QgYworICAgICBjZGVmIGxvbmcgaQor IAorQEAgLTUxLDcgKzUxLDcgQEAgY2RlZiBmbXB6X3BvbHlfZXZhbHVhdGlvbl9tcGZyKG1wZnJf dCByZXMsIGNvbnN0IGZtcHpfcG9seV90IHBvbHksIGNvbnN0IG1wZnJfdAorIAorICAgICBtcHpf Y2xlYXIoYykKKyAKKy1jZGVmIGZtcHpfcG9seV9ldmFsdWF0aW9uX21wZmkobXBmaV90IHJlcywg Y29uc3QgZm1wel9wb2x5X3QgcG9seSwgY29uc3QgbXBmaV90IGEpIG5vZXhjZXB0OgorK2NkZWYg Zm1wel9wb2x5X2V2YWx1YXRpb25fbXBmaShtcGZpX3QgcmVzLCBjb25zdCBmbXB6X3BvbHlfdCBw b2x5LCBjb25zdCBtcGZpX3QgYSk6CisgICAgIGNkZWYgbXB6X3QgYworICAgICBjZGVmIGxvbmcg aQorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvZXZhbHVhdGlvbl9u dGwucHhkIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9ldmFsdWF0aW9uX250bC5weGQKK2lu ZGV4IDQ1NTEwMzdlY2NhLi45YWYwYTBiOWQ0MCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3Jpbmdz L3BvbHlub21pYWwvZXZhbHVhdGlvbl9udGwucHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5 bm9taWFsL2V2YWx1YXRpb25fbnRsLnB4ZAorQEAgLTIsNSArMiw1IEBAIGZyb20gc2FnZS5saWJz Lm50bC50eXBlcyBjaW1wb3J0IFpaWF9jCisgZnJvbSBzYWdlLmxpYnMubXBmci50eXBlcyBjaW1w b3J0IG1wZnJfdAorIGZyb20gc2FnZS5saWJzLm1wZmkudHlwZXMgY2ltcG9ydCBtcGZpX3QKKyAK Ky1jZGVmIFpaWF9ldmFsdWF0aW9uX21wZnIobXBmcl90IHJlcywgWlpYX2MgcG9seSwgY29uc3Qg bXBmcl90IGEpIG5vZXhjZXB0CistY2RlZiBaWlhfZXZhbHVhdGlvbl9tcGZpKG1wZmlfdCByZXMs IFpaWF9jIHBvbHksIGNvbnN0IG1wZmlfdCBhKSBub2V4Y2VwdAorK2NkZWYgWlpYX2V2YWx1YXRp b25fbXBmcihtcGZyX3QgcmVzLCBaWlhfYyBwb2x5LCBjb25zdCBtcGZyX3QgYSkKKytjZGVmIFpa WF9ldmFsdWF0aW9uX21wZmkobXBmaV90IHJlcywgWlpYX2MgcG9seSwgY29uc3QgbXBmaV90IGEp CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9ldmFsdWF0aW9uX250bC5w eXggYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL2V2YWx1YXRpb25fbnRsLnB5eAoraW5kZXgg YjZmZjQ3MzI1NDIuLjI4YjM5MTdkM2ExIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9s eW5vbWlhbC9ldmFsdWF0aW9uX250bC5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21p YWwvZXZhbHVhdGlvbl9udGwucHl4CitAQCAtMzgsNyArMzgsNyBAQCBmcm9tIHNhZ2UubGlicy5u dGwuWlogY2ltcG9ydCAqCisgZnJvbSBzYWdlLmxpYnMubnRsLlpaWCBjaW1wb3J0ICoKKyAKKyAK Ky1jZGVmIFpaWF9ldmFsdWF0aW9uX21wZnIobXBmcl90IHJlcywgWlpYX2MgcG9seSwgY29uc3Qg bXBmcl90IGEpIG5vZXhjZXB0OgorK2NkZWYgWlpYX2V2YWx1YXRpb25fbXBmcihtcGZyX3QgcmVz LCBaWlhfYyBwb2x5LCBjb25zdCBtcGZyX3QgYSk6CisgICAgIGNkZWYgbXB6X3QgYworICAgICBj ZGVmIGxvbmcgaQorIAorQEAgLTUzLDcgKzUzLDcgQEAgY2RlZiBaWlhfZXZhbHVhdGlvbl9tcGZy KG1wZnJfdCByZXMsIFpaWF9jIHBvbHksIGNvbnN0IG1wZnJfdCBhKSBub2V4Y2VwdDoKKyAKKyAg ICAgbXB6X2NsZWFyKGMpCisgCistY2RlZiBaWlhfZXZhbHVhdGlvbl9tcGZpKG1wZmlfdCByZXMs IFpaWF9jIHBvbHksIGNvbnN0IG1wZmlfdCBhKSBub2V4Y2VwdDoKKytjZGVmIFpaWF9ldmFsdWF0 aW9uX21wZmkobXBmaV90IHJlcywgWlpYX2MgcG9seSwgY29uc3QgbXBmaV90IGEpOgorICAgICBj ZGVmIG1wel90IGMKKyAgICAgY2RlZiBsb25nIGkKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9y aW5ncy9wb2x5bm9taWFsL2hpbGJlcnQucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9o aWxiZXJ0LnB5eAoraW5kZXggMTQ3ZGI1NjkxYzMuLmJhNDNjMWQzYmE1IDEwMDY0NAorLS0tIGEv c3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9oaWxiZXJ0LnB5eAorKysrIGIvc3JjL3NhZ2Uvcmlu Z3MvcG9seW5vbWlhbC9oaWxiZXJ0LnB5eAorQEAgLTg0LDcgKzg0LDcgQEAgY2RlZiBpbmxpbmUg YmludCBpbmRpdmlzaWJsZV9pbl9saXN0KEVUdXBsZSBtLCBsaXN0IEwsIHNpemVfdCBpKSBub2V4 Y2VwdDoKKyAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgcmV0dXJuIFRydWUKKyAKKy1j ZGVmIGlubGluZSBsaXN0IGludGVycmVkKGxpc3QgTCkgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUg bGlzdCBpbnRlcnJlZChsaXN0IEwpOgorICAgICAiIiIKKyAgICAgUmV0dXJuIGludGVycmVkdWN0 aW9uIG9mIGEgbGlzdCBvZiBtb25vbWlhbHMuCisgCitAQCAtMTE2LDcgKzExNiw3IEBAIGNkZWYg aW5saW5lIGxpc3QgaW50ZXJyZWQobGlzdCBMKSBub2V4Y2VwdDoKKyAgICAgICAgICAgICByZXN1 bHQuYXBwZW5kKG0pCisgICAgIHJldHVybiByZXN1bHQKKyAKKy1jZGVmIGxpc3QgcXVvdGllbnQo bGlzdCBMLCBFVHVwbGUgbSkgbm9leGNlcHQ6CisrY2RlZiBsaXN0IHF1b3RpZW50KGxpc3QgTCwg RVR1cGxlIG0pOgorICAgICAiIiIKKyAgICAgUmV0dXJuIHRoZSBxdW90aWVudCBvZiB0aGUgaWRl YWwgcmVwcmVzZW50ZWQgYnkgYGBMYGAgYW5kIHRoZQorICAgICBtb25vbWlhbCByZXByZXNlbnRl ZCBieSBgYG1gYC4KK0BAIC0xMjcsNyArMTI3LDcgQEAgY2RlZiBsaXN0IHF1b3RpZW50KGxpc3Qg TCwgRVR1cGxlIG0pIG5vZXhjZXB0OgorICAgICAgICAgcmVzdWx0LmFwcGVuZCgoPEVUdXBsZT5Q eUxpc3RfR0VUX0lURU0oTCxpKSkuZGl2aWRlX2J5X2djZChtKSkKKyAgICAgcmV0dXJuIGludGVy cmVkKHJlc3VsdCkKKyAKKy1jZGVmIGxpc3QgcXVvdGllbnRfYnlfdmFyKGxpc3QgTCwgc2l6ZV90 IGluZGV4KSBub2V4Y2VwdDoKKytjZGVmIGxpc3QgcXVvdGllbnRfYnlfdmFyKGxpc3QgTCwgc2l6 ZV90IGluZGV4KToKKyAgICAgIiIiCisgICAgIFJldHVybiB0aGUgcXVvdGllbnQgb2YgdGhlIGlk ZWFsIHJlcHJlc2VudGVkIGJ5IGBgTGBgIGFuZCB0aGUKKyAgICAgdmFyaWFibGUgbnVtYmVyIGBg aW5kZXhgYC4KK0BAIC0xNDAsNyArMTQwLDcgQEAgY2RlZiBsaXN0IHF1b3RpZW50X2J5X3Zhcihs aXN0IEwsIHNpemVfdCBpbmRleCkgbm9leGNlcHQ6CisgICAgICAgICAgICAgcmVzdWx0LmFwcGVu ZCgoPEVUdXBsZT4gUHlMaXN0X0dFVF9JVEVNKEwsIGkpKS5kaXZpZGVfYnlfdmFyKGluZGV4KSkK KyAgICAgcmV0dXJuIGludGVycmVkKHJlc3VsdCkKKyAKKy1jZGVmIEVUdXBsZSBzdW1fZnJvbV9s aXN0KGxpc3QgTCwgc2l6ZV90IHMsIHNpemVfdCBsKSBub2V4Y2VwdDoKKytjZGVmIEVUdXBsZSBz dW1fZnJvbV9saXN0KGxpc3QgTCwgc2l6ZV90IHMsIHNpemVfdCBsKToKKyAgICAgIiIiCisgICAg IENvbXB1dGUgdGhlIHZlY3RvciBzdW0gb2YgdGhlIEVUdXBsZXMgaW4gYGBMW3M6cytsXWBgIGlu IGEgYmFsYW5jZWQgd2F5LgorICAgICAiIiIKK0BAIC0yODYsNyArMjg2LDcgQEAgY2RlZiBiaW50 IEhpbGJlcnRCYXNlQ2FzZShQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQgZmhzLCBOb2Rl IEQsIHR1cGxlIHcpIG4KKyAgICAgIyBXZSBhcmUgaW4gYSB0cnVseSBkaWZmaWN1bHQgY2FzZSBh bmQgZ2l2ZSB1cCBmb3Igbm93Li4uCisgICAgIHJldHVybiBGYWxzZQorIAorLWNkZWYgbWFrZV9j aGlsZHJlbihOb2RlIEQsIHR1cGxlIHcpIG5vZXhjZXB0OgorK2NkZWYgbWFrZV9jaGlsZHJlbihO b2RlIEQsIHR1cGxlIHcpOgorICAgICAiIiIKKyAgICAgQ3JlYXRlIGNoaWxkIG5vZGVzIGluIGBg RGBgIHRoYXQgYWxsb3cgdG8gY29tcHV0ZSB0aGUgZmlyc3QgSGlsYmVydAorICAgICBzZXJpZXMg b2YgYGBELklkYGAuCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9sYXVy ZW50X3BvbHlub21pYWwucHhkIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9sYXVyZW50X3Bv bHlub21pYWwucHhkCitpbmRleCBkOTkyNDNhYWYzZC4uOGU5MTA3YWViNDcgMTAwNjQ0CistLS0g YS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL2xhdXJlbnRfcG9seW5vbWlhbC5weGQKKysrKyBi L3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvbGF1cmVudF9wb2x5bm9taWFsLnB4ZAorQEAgLTIs MTYgKzIsMTYgQEAgZnJvbSBzYWdlLnN0cnVjdHVyZS5lbGVtZW50IGNpbXBvcnQgQ29tbXV0YXRp dmVBbGdlYnJhRWxlbWVudCwgTW9kdWxlRWxlbWVudCwgUmkKKyAKKyAKKyBjZGVmIGNsYXNzIExh dXJlbnRQb2x5bm9taWFsKENvbW11dGF0aXZlQWxnZWJyYUVsZW1lbnQpOgorLSAgICBjZGVmIExh dXJlbnRQb2x5bm9taWFsIF9uZXdfYyhzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfYWRkXyhz ZWxmLCBvdGhlcikgbm9leGNlcHQKKy0gICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIpIG5vZXhj ZXB0CistICAgIGNwZGVmIF9mbG9vcmRpdl8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0CisrICAgIGNk ZWYgTGF1cmVudFBvbHlub21pYWwgX25ld19jKHNlbGYpCisrICAgIGNwZGVmIF9hZGRfKHNlbGYs IG90aGVyKQorKyAgICBjcGRlZiBfbXVsXyhzZWxmLCBvdGhlcikKKysgICAgY3BkZWYgX2Zsb29y ZGl2XyhzZWxmLCBvdGhlcikKKyAgICAgY3BkZWYgbG9uZyBudW1iZXJfb2ZfdGVybXMoc2VsZikg ZXhjZXB0IC0xCistICAgIGNwZGVmIGRpY3QgZGljdChzZWxmKSBub2V4Y2VwdAorKyAgICBjcGRl ZiBkaWN0IGRpY3Qoc2VsZikKKyAKKyBjZGVmIGNsYXNzIExhdXJlbnRQb2x5bm9taWFsX3VuaXZh cmlhdGUoTGF1cmVudFBvbHlub21pYWwpOgorICAgICBjZGVmIE1vZHVsZUVsZW1lbnQgX191Cisg ICAgIGNkZWYgbG9uZyBfX24KKy0gICAgY3BkZWYgX25vcm1hbGl6ZShzZWxmKSBub2V4Y2VwdAor LSAgICBjcGRlZiBfdW5zYWZlX211dGF0ZShzZWxmLCBpLCB2YWx1ZSkgbm9leGNlcHQKKysgICAg Y3BkZWYgX25vcm1hbGl6ZShzZWxmKQorKyAgICBjcGRlZiBfdW5zYWZlX211dGF0ZShzZWxmLCBp LCB2YWx1ZSkKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL2xhdXJl bnRfcG9seW5vbWlhbC5weXggYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL2xhdXJlbnRfcG9s eW5vbWlhbC5weXgKK2luZGV4IGY2M2IyNTZlZTEzLi5hODMwZWY3ZjUxMCAxMDA2NDQKKy0tLSBh L3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvbGF1cmVudF9wb2x5bm9taWFsLnB5eAorKysrIGIv c3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9sYXVyZW50X3BvbHlub21pYWwucHl4CitAQCAtMjEs NyArMjEsNyBAQCBjZGVmIGNsYXNzIExhdXJlbnRQb2x5bm9taWFsKENvbW11dGF0aXZlQWxnZWJy YUVsZW1lbnQpOgorICAgICAiIiIKKyAgICAgQmFzZSBjbGFzcyBmb3IgTGF1cmVudCBwb2x5bm9t aWFscy4KKyAgICAgIiIiCistICAgIGNkZWYgTGF1cmVudFBvbHlub21pYWwgX25ld19jKHNlbGYp IG5vZXhjZXB0OgorKyAgICBjZGVmIExhdXJlbnRQb2x5bm9taWFsIF9uZXdfYyhzZWxmKToKKyAg ICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGEgbmV3IExhdXJlbnQgcG9seW5vbWlhbC4KKyAK K0BAIC0zNyw3ICszNyw3IEBAIGNkZWYgY2xhc3MgTGF1cmVudFBvbHlub21pYWwoQ29tbXV0YXRp dmVBbGdlYnJhRWxlbWVudCk6CisgICAgICAgICBhbnMuX3BhcmVudCA9IHNlbGYuX3BhcmVudAor ICAgICAgICAgcmV0dXJuIGFucworIAorLSAgICBjcGRlZiBfYWRkXyhzZWxmLCBvdGhlcikgbm9l eGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIG90aGVyKToKKyAgICAgICAgICIiIgorICAg ICAgICAgQWJzdHJhY3QgYWRkaXRpb24gbWV0aG9kCisgCitAQCAtNTIsNyArNTIsNyBAQCBjZGVm IGNsYXNzIExhdXJlbnRQb2x5bm9taWFsKENvbW11dGF0aXZlQWxnZWJyYUVsZW1lbnQpOgorICAg ICAgICAgIiIiCisgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisgCistICAgIGNw ZGVmIF9tdWxfKHNlbGYsIG90aGVyKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX211bF8oc2VsZiwg b3RoZXIpOgorICAgICAgICAgIiIiCisgICAgICAgICBBYnN0cmFjdCBtdWx0aXBsaWNhdGlvbiBt ZXRob2QKKyAKK0BAIC02Nyw3ICs2Nyw3IEBAIGNkZWYgY2xhc3MgTGF1cmVudFBvbHlub21pYWwo Q29tbXV0YXRpdmVBbGdlYnJhRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJhaXNl IE5vdEltcGxlbWVudGVkRXJyb3IKKyAKKy0gICAgY3BkZWYgX2Zsb29yZGl2XyhzZWxmLCBvdGhl cikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9mbG9vcmRpdl8oc2VsZiwgb3RoZXIpOgorICAgICAg ICAgIiIiCisgICAgICAgICBBYnN0cmFjdCBmbG9vciBkaXZpc2lvbiBtZXRob2QKKyAKK0BAIC0y MjEsNyArMjIxLDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50UG9seW5vbWlhbChDb21tdXRhdGl2ZUFs Z2VicmFFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYubnVtYmVy X29mX3Rlcm1zKCkKKyAKKy0gICAgY3BkZWYgZGljdCBkaWN0KHNlbGYpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBkaWN0IGRpY3Qoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEFic3RyYWN0 IGBgZGljdGBgIG1ldGhvZC4KKyAKK0BAIC01MzMsNyArNTMzLDcgQEAgY2RlZiBjbGFzcyBMYXVy ZW50UG9seW5vbWlhbF91bml2YXJpYXRlKExhdXJlbnRQb2x5bm9taWFsKToKKyAgICAgICAgICAg ICB1ID0gdS5tYXBfY29lZmZpY2llbnRzKGJhc2VfbWFwKQorICAgICAgICAgcmV0dXJuIGNvZG9t YWluKHUoeCkgKiB4KipzZWxmLl9fbikKKyAKKy0gICAgY3BkZWYgX25vcm1hbGl6ZShzZWxmKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgX25vcm1hbGl6ZShzZWxmKToKKyAgICAgICAgIHIiIiIKKyAg ICAgICAgIEEgTGF1cmVudCBzZXJpZXMgaXMgYSBwYWlyIGAodSh0KSwgbilgLCB3aGVyZSBlaXRo ZXIgYHUgPSAwYAorICAgICAgICAgKHRvIHNvbWUgcHJlY2lzaW9uKSBvciBgdWAgaXMgYSB1bml0 LiBUaGlzIHBhaXIgY29ycmVzcG9uZHMgdG8KK0BAIC04NDIsNyArODQyLDcgQEAgY2RlZiBjbGFz cyBMYXVyZW50UG9seW5vbWlhbF91bml2YXJpYXRlKExhdXJlbnRQb2x5bm9taWFsKToKKyAgICAg ICAgIGQgPSB7cmVwcihnKTogUi52YXIoZykgZm9yIGcgaW4gc2VsZi5fcGFyZW50LmdlbnMoKX0K KyAgICAgICAgIHJldHVybiBzZWxmLnN1YnMoKipkKQorIAorLSAgICBjcGRlZiBkaWN0IGRpY3Qo c2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGRpY3QgZGljdChzZWxmKToKKyAgICAgICAgICIi IgorICAgICAgICAgUmV0dXJuIGEgZGljdGlvbmFyeSByZXByZXNlbnRpbmcgYGBzZWxmYGAuCisg CitAQCAtODk3LDcgKzg5Nyw3IEBAIGNkZWYgY2xhc3MgTGF1cmVudFBvbHlub21pYWxfdW5pdmFy aWF0ZShMYXVyZW50UG9seW5vbWlhbCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJhaXNlIElu ZGV4RXJyb3IoIkxhdXJlbnQgcG9seW5vbWlhbHMgYXJlIGltbXV0YWJsZSIpCisgCistICAgIGNw ZGVmIF91bnNhZmVfbXV0YXRlKHNlbGYsIGksIHZhbHVlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X3Vuc2FmZV9tdXRhdGUoc2VsZiwgaSwgdmFsdWUpOgorICAgICAgICAgciIiIgorICAgICAgICAg U2FnZSBhc3N1bWVzIHRocm91Z2hvdXQgdGhhdCBjb21tdXRhdGl2ZSByaW5nIGVsZW1lbnRzIGFy ZQorICAgICAgICAgaW1tdXRhYmxlLiBUaGlzIGlzIHJlbGV2YW50IGZvciBjYWNoaW5nLCBldGMu IEJ1dCBzb21ldGltZXMgeW91CitAQCAtOTIzLDcgKzkyMyw3IEBAIGNkZWYgY2xhc3MgTGF1cmVu dFBvbHlub21pYWxfdW5pdmFyaWF0ZShMYXVyZW50UG9seW5vbWlhbCk6CisgICAgICAgICAgICAg ICAgIHNlbGYuX191ID0gc2VsZi5fX3UuX3BhcmVudChjb2VmZnMpCisgICAgICAgICBzZWxmLl9u b3JtYWxpemUoKQorIAorLSAgICBjcGRlZiBfYWRkXyhzZWxmLCByaWdodF9tKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHRfbSk6CisgICAgICAgICAiIiIKKyAgICAgICAg IEFkZCB0d28gTGF1cmVudCBwb2x5bm9taWFscyB3aXRoIHRoZSBzYW1lIHBhcmVudC4KKyAKK0BA IC05NzcsNyArOTc3LDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50UG9seW5vbWlhbF91bml2YXJpYXRl KExhdXJlbnRQb2x5bm9taWFsKToKKyAgICAgICAgIHJldC5fbm9ybWFsaXplKCkKKyAgICAgICAg IHJldHVybiByZXQKKyAKKy0gICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHRfbSkgbm9leGNlcHQ6 CisrICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0X20pOgorICAgICAgICAgIiIiCisgICAgICAg ICBTdWJ0cmFjdCB0d28gTGF1cmVudCBwb2x5bm9taWFscyB3aXRoIHRoZSBzYW1lIHBhcmVudC4K KyAKK0BAIC0xMDUwLDcgKzEwNTAsNyBAQCBjZGVmIGNsYXNzIExhdXJlbnRQb2x5bm9taWFsX3Vu aXZhcmlhdGUoTGF1cmVudFBvbHlub21pYWwpOgorICAgICAgICAgIyBObyBuZWVkIHRvIG5vcm1h bGl6ZQorICAgICAgICAgcmV0dXJuIHJldAorIAorLSAgICBjcGRlZiBfbXVsXyhzZWxmLCByaWdo dF9yKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX211bF8oc2VsZiwgcmlnaHRfcik6CisgICAgICAg ICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0xMDY4LDcgKzEwNjgsNyBAQCBjZGVm IGNsYXNzIExhdXJlbnRQb2x5bm9taWFsX3VuaXZhcmlhdGUoTGF1cmVudFBvbHlub21pYWwpOgor ICAgICAgICAgcmV0Ll9ub3JtYWxpemUoKQorICAgICAgICAgcmV0dXJuIHJldAorIAorLSAgICBj cGRlZiBfcm11bF8oc2VsZiwgRWxlbWVudCBjKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3JtdWxf KHNlbGYsIEVsZW1lbnQgYyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAK K0BAIC0xMDg0LDcgKzEwODQsNyBAQCBjZGVmIGNsYXNzIExhdXJlbnRQb2x5bm9taWFsX3VuaXZh cmlhdGUoTGF1cmVudFBvbHlub21pYWwpOgorICAgICAgICAgcmV0Ll9ub3JtYWxpemUoKQorICAg ICAgICAgcmV0dXJuIHJldAorIAorLSAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCBjKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgYyk6CisgICAgICAgICAi IiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0xMTU0LDcgKzExNTQsNyBAQCBjZGVmIGNs YXNzIExhdXJlbnRQb2x5bm9taWFsX3VuaXZhcmlhdGUoTGF1cmVudFBvbHlub21pYWwpOgorICAg ICAgICAgICAgIGMgPSBzZWxmLl9wYXJlbnQuX1Ioc2VsZi5fX3UubGVhZGluZ19jb2VmZmljaWVu dCgpICoqIHJpZ2h0KQorICAgICAgICAgICAgIHJldHVybiBzZWxmLl9wYXJlbnQuZWxlbWVudF9j bGFzcyhzZWxmLl9wYXJlbnQsIGMsIHNlbGYuX19uKnJpZ2h0KQorIAorLSAgICBjcGRlZiBfZmxv b3JkaXZfKHNlbGYsIHJocykgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9mbG9vcmRpdl8oc2VsZiwg cmhzKToKKyAgICAgICAgICIiIgorICAgICAgICAgUGVyZm9ybSBkaXZpc2lvbiB3aXRoIHJlbWFp bmRlciBhbmQgcmV0dXJuIHRoZSBxdW90aWVudC4KKyAKK0BAIC0xMjQyLDcgKzEyNDIsNyBAQCBj ZGVmIGNsYXNzIExhdXJlbnRQb2x5bm9taWFsX3VuaXZhcmlhdGUoTGF1cmVudFBvbHlub21pYWwp OgorICAgICAgICAgIyBObyBuZWVkIHRvIG5vcm1hbGl6ZQorICAgICAgICAgcmV0dXJuIHJldAor IAorLSAgICBjcGRlZiBfZGl2XyhzZWxmLCByaHMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZGl2 XyhzZWxmLCByaHMpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAt MTQ3NCw3ICsxNDc0LDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50UG9seW5vbWlhbF91bml2YXJpYXRl KExhdXJlbnRQb2x5bm9taWFsKToKKyAgICAgICAgIHFyLl9ub3JtYWxpemUoKQorICAgICAgICAg cmV0dXJuIHFsLCBxcgorIAorLSAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgcmlnaHRfciwgaW50 IG9wKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIHJpZ2h0X3IsIGludCBv cCk6CisgICAgICAgICByIiIiCisgICAgICAgICBDb21wYXJpc29uIG9mIGBgc2VsZmBgIGFuZCBg YHJpZ2h0X3JgYC4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL2xh dXJlbnRfcG9seW5vbWlhbF9tcGFpci5weGQgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL2xh dXJlbnRfcG9seW5vbWlhbF9tcGFpci5weGQKK2luZGV4IGY3MWNjYjU3MDMwLi43OWYwOWRlZjZh YSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvbGF1cmVudF9wb2x5bm9t aWFsX21wYWlyLnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9sYXVyZW50X3Bv bHlub21pYWxfbXBhaXIucHhkCitAQCAtNyw4ICs3LDggQEAgY2RlZiBjbGFzcyBMYXVyZW50UG9s eW5vbWlhbF9tcGFpcihMYXVyZW50UG9seW5vbWlhbCk6CisgICAgIGNkZWYgRVR1cGxlIF9tb24K KyAgICAgY2RlZiBNUG9seW5vbWlhbCBfcG9seQorICAgICBjZGVmIFBvbHlEaWN0IF9wcm9kCist ICAgIGNkZWYgX2NvbXB1dGVfcG9seWRpY3Qoc2VsZikgbm9leGNlcHQKKy0gICAgY2RlZiBfbm9y bWFsaXplKHNlbGYsIGk9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgcmVzY2FsZV92YXJzKHNlbGYs IGRpY3QgZCwgaD0qLCBuZXdfcmluZz0qKSBub2V4Y2VwdAorLSAgICBjcGRlZiB0b3JpY19jb29y ZGluYXRlX2NoYW5nZShzZWxmLCBNLCBoPSosIG5ld19yaW5nPSopIG5vZXhjZXB0CistICAgIGNw ZGVmIHRvcmljX3N1YnN0aXR1dGUoc2VsZiwgdiwgdjEsIGEsIGg9KiwgbmV3X3Jpbmc9Kikgbm9l eGNlcHQKKysgICAgY2RlZiBfY29tcHV0ZV9wb2x5ZGljdChzZWxmKQorKyAgICBjZGVmIF9ub3Jt YWxpemUoc2VsZiwgaT0qKQorKyAgICBjcGRlZiByZXNjYWxlX3ZhcnMoc2VsZiwgZGljdCBkLCBo PSosIG5ld19yaW5nPSopCisrICAgIGNwZGVmIHRvcmljX2Nvb3JkaW5hdGVfY2hhbmdlKHNlbGYs IE0sIGg9KiwgbmV3X3Jpbmc9KikKKysgICAgY3BkZWYgdG9yaWNfc3Vic3RpdHV0ZShzZWxmLCB2 LCB2MSwgYSwgaD0qLCBuZXdfcmluZz0qKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3Bv bHlub21pYWwvbGF1cmVudF9wb2x5bm9taWFsX21wYWlyLnB5eCBiL3NyYy9zYWdlL3JpbmdzL3Bv bHlub21pYWwvbGF1cmVudF9wb2x5bm9taWFsX21wYWlyLnB5eAoraW5kZXggMjg1MTYzZGFkYTQu LmIzMzA0MDJkYjRhIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9sYXVy ZW50X3BvbHlub21pYWxfbXBhaXIucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFs L2xhdXJlbnRfcG9seW5vbWlhbF9tcGFpci5weXgKK0BAIC0yNTEsNyArMjUxLDcgQEAgY2RlZiBj bGFzcyBMYXVyZW50UG9seW5vbWlhbF9tcGFpcihMYXVyZW50UG9seW5vbWlhbCk6CisgICAgICAg ICBmcm9tIHNhZ2UubWlzYy5taXNjX2MgaW1wb3J0IHByb2QKKyAgICAgICAgIHJldHVybiBjb2Rv bWFpbihwKGltX2dlbnMpICogcHJvZChpZyoqbVtpbV9nZW5zLmluZGV4KGlnKV0gZm9yIGlnIGlu IGltX2dlbnMpKQorIAorLSAgICBjZGVmIF9ub3JtYWxpemUoc2VsZiwgaT1Ob25lKSBub2V4Y2Vw dDoKKysgICAgY2RlZiBfbm9ybWFsaXplKHNlbGYsIGk9Tm9uZSk6CisgICAgICAgICByIiIiCisg ICAgICAgICBSZW1vdmUgdGhlIGNvbW1vbiBtb25vbWlhbHMgZnJvbSBgYHNlbGYuX3BvbHlgYCBh bmQgc3RvcmUKKyAgICAgICAgIHRoZW0gaW4gYGBzZWxmLl9tb25gYC4KK0BAIC0zMDIsNyArMzAy LDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50UG9seW5vbWlhbF9tcGFpcihMYXVyZW50UG9seW5vbWlh bCk6CisgICAgICAgICAgICAgICAgIHNlbGYuX3BvbHkgPSA8TW9kdWxlRWxlbWVudCA+IChzZWxm Ll9wb2x5IC8vIHNlbGYuX3BvbHkuX3BhcmVudC5nZW4oaSkpCisgICAgICAgICAgICAgICAgIHNl bGYuX21vbiA9IHNlbGYuX21vbi5lYWRkX3AoZSwgaSkKKyAKKy0gICAgY2RlZiBfY29tcHV0ZV9w b2x5ZGljdChzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfY29tcHV0ZV9wb2x5ZGljdChzZWxm KToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTc5Niw3ICs3OTYs NyBAQCBjZGVmIGNsYXNzIExhdXJlbnRQb2x5bm9taWFsX21wYWlyKExhdXJlbnRQb2x5bm9taWFs KToKKyAgICAgICAgICAgICB2LnNvcnQoKQorICAgICAgICAgcmV0dXJuIHR1cGxlKHYpCisgCist ICAgIGNwZGVmIGRpY3QgZGljdChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZGljdCBkaWN0 KHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYGBzZWxmYGAgcmVwcmVzZW50 ZWQgYXMgYSBgYGRpY3RgYC4KKyAKK0BAIC04MzgsNyArODM4LDcgQEAgY2RlZiBjbGFzcyBMYXVy ZW50UG9seW5vbWlhbF9tcGFpcihMYXVyZW50UG9seW5vbWlhbCk6CisgICAgICAgICAgICAgICAg IGRlbm9tICo9IHZhcltpXSAqKiAoLWopCisgICAgICAgICByZXR1cm4gKG51bWVyLCBkZW5vbSkK KyAKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwgX3JpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X2FkZF8oc2VsZiwgX3JpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBM YXVyZW50IHBvbHlub21pYWwgYGBzZWxmICsgcmlnaHRgYC4KKyAKK0BAIC04NjMsNyArODYzLDcg QEAgY2RlZiBjbGFzcyBMYXVyZW50UG9seW5vbWlhbF9tcGFpcihMYXVyZW50UG9seW5vbWlhbCk6 CisgICAgICAgICAgICAgYW5zLl9wb2x5ICs9IHJpZ2h0Ll9wb2x5CisgICAgICAgICByZXR1cm4g YW5zCisgCistICAgIGNwZGVmIF9zdWJfKHNlbGYsIF9yaWdodCkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIF9zdWJfKHNlbGYsIF9yaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0 aGUgTGF1cmVudCBwb2x5bm9taWFsIGBgc2VsZiAtIHJpZ2h0YGAuCisgCitAQCAtODg5LDcgKzg4 OSw3IEBAIGNkZWYgY2xhc3MgTGF1cmVudFBvbHlub21pYWxfbXBhaXIoTGF1cmVudFBvbHlub21p YWwpOgorICAgICAgICAgICAgIGFucy5fcG9seSAtPSByaWdodC5fcG9seQorICAgICAgICAgcmV0 dXJuIGFucworIAorLSAgICBjcGRlZiBfZGl2XyhzZWxmLCByaHMpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBfZGl2XyhzZWxmLCByaHMpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhl IGRpdmlzaW9uIG9mIGBgc2VsZmBgIGJ5IGBgcmhzYGAuCisgCitAQCAtOTQwLDcgKzk0MCw3IEBA IGNkZWYgY2xhc3MgTGF1cmVudFBvbHlub21pYWxfbXBhaXIoTGF1cmVudFBvbHlub21pYWwpOgor ICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fcG9seS5pc19tb25vbWlhbCgpCisg CistICAgIGNwZGVmIF9uZWdfKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbmVnXyhzZWxm KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGBgLXNlbGZgYC4KKyAKK0BAIC05NTYs NyArOTU2LDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50UG9seW5vbWlhbF9tcGFpcihMYXVyZW50UG9s eW5vbWlhbCk6CisgICAgICAgICBhbnMuX3BvbHkgPSAtc2VsZi5fcG9seQorICAgICAgICAgcmV0 dXJuIGFucworIAorLSAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCByaWdodCkgbm9leGNl cHQ6CisrICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IHJpZ2h0KToKKyAgICAgICAgICIi IgorICAgICAgICAgUmV0dXJuIGBgc2VsZiAqIHJpZ2h0YGAgd2hlcmUgYGByaWdodGBgIGlzIGlu IGBgc2VsZmBgJ3MgYmFzZSByaW5nLgorIAorQEAgLTk3Miw3ICs5NzIsNyBAQCBjZGVmIGNsYXNz IExhdXJlbnRQb2x5bm9taWFsX21wYWlyKExhdXJlbnRQb2x5bm9taWFsKToKKyAgICAgICAgIGFu cy5fcG9seSA9IHNlbGYuX3BvbHkgKiByaWdodAorICAgICAgICAgcmV0dXJuIGFucworIAorLSAg ICBjcGRlZiBfcm11bF8oc2VsZiwgRWxlbWVudCBsZWZ0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X3JtdWxfKHNlbGYsIEVsZW1lbnQgbGVmdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVy biBgYGxlZnQgKiBzZWxmYGAgd2hlcmUgYGBsZWZ0YGAgaXMgaW4gYGBzZWxmYGAncyBiYXNlIHJp bmcuCisgCitAQCAtOTg4LDcgKzk4OCw3IEBAIGNkZWYgY2xhc3MgTGF1cmVudFBvbHlub21pYWxf bXBhaXIoTGF1cmVudFBvbHlub21pYWwpOgorICAgICAgICAgYW5zLl9wb2x5ID0gbGVmdCAqIHNl bGYuX3BvbHkKKyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY3BkZWYgX211bF8oc2VsZiwg cmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbXVsXyhzZWxmLCByaWdodCk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIFJldHVybiBgYHNlbGYgKiByaWdodGBgLgorIAorQEAgLTEwMDUsNyAr MTAwNSw3IEBAIGNkZWYgY2xhc3MgTGF1cmVudFBvbHlub21pYWxfbXBhaXIoTGF1cmVudFBvbHlu b21pYWwpOgorICAgICAgICAgYW5zLl9wb2x5ID0gc2VsZi5fcG9seSAqICggPCBMYXVyZW50UG9s eW5vbWlhbF9tcGFpciA+IHJpZ2h0KS5fcG9seQorICAgICAgICAgcmV0dXJuIGFucworIAorLSAg ICBjcGRlZiBfZmxvb3JkaXZfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2Zs b29yZGl2XyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFBlcmZvcm0gZGl2 aXNpb24gd2l0aCByZW1haW5kZXIgYW5kIHJldHVybiB0aGUgcXVvdGllbnQuCisgCitAQCAtMTEw Nyw3ICsxMTA3LDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50UG9seW5vbWlhbF9tcGFpcihMYXVyZW50 UG9seW5vbWlhbCk6CisgICAgICAgICBybC5fbm9ybWFsaXplKCkKKyAgICAgICAgIHJldHVybiAo cWwsIHJsKQorIAorLSAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgcmlnaHQsIGludCBvcCkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCByaWdodCwgaW50IG9wKToKKyAgICAg ICAgICIiIgorICAgICAgICAgQ29tcGFyZSB0d28gcG9seW5vbWlhbHMgaW4gYSBgTGF1cmVudFBv bHlub21pYWxSaW5nYCBiYXNlZCBvbiB0aGUgdGVybQorICAgICAgICAgb3JkZXIgZnJvbSB0aGUg cGFyZW50IHJpbmcuICBJZiB0aGUgcGFyZW50IHJpbmcgZG9lcyBub3Qgc3BlY2lmeSBhIHRlcm0K K0BAIC0xNjgwLDcgKzE2ODAsNyBAQCBjZGVmIGNsYXNzIExhdXJlbnRQb2x5bm9taWFsX21wYWly KExhdXJlbnRQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBhbnMuX3BvbHkgPSByb290CisgICAg ICAgICAgICAgcmV0dXJuIChUcnVlLCBhbnMpCisgCistICAgIGNwZGVmIHJlc2NhbGVfdmFycyhz ZWxmLCBkaWN0IGQsIGg9Tm9uZSwgbmV3X3Jpbmc9Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVm IHJlc2NhbGVfdmFycyhzZWxmLCBkaWN0IGQsIGg9Tm9uZSwgbmV3X3Jpbmc9Tm9uZSk6CisgICAg ICAgICByIiIiCisgICAgICAgICBSZXNjYWxlIHZhcmlhYmxlcyBpbiBhIExhdXJlbnQgcG9seW5v bWlhbC4KKyAKK0BAIC0xNzQ3LDcgKzE3NDcsNyBAQCBjZGVmIGNsYXNzIExhdXJlbnRQb2x5bm9t aWFsX21wYWlyKExhdXJlbnRQb2x5bm9taWFsKToKKyAgICAgICAgICAgICByZXR1cm4gbmV3X3Jp bmcoYW5zKQorICAgICAgICAgcmV0dXJuIGFucworIAorLSAgICBjcGRlZiB0b3JpY19jb29yZGlu YXRlX2NoYW5nZShzZWxmLCBNLCBoPU5vbmUsIG5ld19yaW5nPU5vbmUpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiB0b3JpY19jb29yZGluYXRlX2NoYW5nZShzZWxmLCBNLCBoPU5vbmUsIG5ld19yaW5n PU5vbmUpOgorICAgICAgICAgciIiIgorICAgICAgICAgQXBwbHkgYSBtYXRyaXggdG8gdGhlIGV4 cG9uZW50cyBpbiBhIExhdXJlbnQgcG9seW5vbWlhbC4KKyAKK0BAIC0xODE2LDcgKzE4MTYsNyBA QCBjZGVmIGNsYXNzIExhdXJlbnRQb2x5bm9taWFsX21wYWlyKExhdXJlbnRQb2x5bm9taWFsKToK KyAgICAgICAgICAgICByZXR1cm4gbmV3X3JpbmcoYW5zKQorICAgICAgICAgcmV0dXJuIGFucwor IAorLSAgICBjcGRlZiB0b3JpY19zdWJzdGl0dXRlKHNlbGYsIHYsIHYxLCBhLCBoPU5vbmUsIG5l d19yaW5nPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiB0b3JpY19zdWJzdGl0dXRlKHNlbGYs IHYsIHYxLCBhLCBoPU5vbmUsIG5ld19yaW5nPU5vbmUpOgorICAgICAgICAgciIiIgorICAgICAg ICAgUGVyZm9ybSBhIHNpbmdsZS12YXJpYWJsZSBzdWJzdGl0dXRpb24gdXAgdG8gYSB0b3JpYyBj b29yZGluYXRlIGNoYW5nZS4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9t aWFsL211bHRpX3BvbHlub21pYWwucHhkIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9tdWx0 aV9wb2x5bm9taWFsLnB4ZAoraW5kZXggM2Y0ZmUxNjg4OGMuLjljOTZjZTdhNTA1IDEwMDY0NAor LS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9tdWx0aV9wb2x5bm9taWFsLnB4ZAorKysr IGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9tdWx0aV9wb2x5bm9taWFsLnB4ZAorQEAgLTMs OCArMyw4IEBAIGZyb20gc2FnZS5yaW5ncy5wb2x5bm9taWFsLmNvbW11dGF0aXZlX3BvbHlub21p YWwgY2ltcG9ydCBDb21tdXRhdGl2ZVBvbHlub21pYWwKKyAKKyBjZGVmIGNsYXNzIE1Qb2x5bm9t aWFsKENvbW11dGF0aXZlUG9seW5vbWlhbCk6CisgICAgIGNkZWYgbG9uZyBfaGFzaF9jKHNlbGYp IGV4Y2VwdCAtMQorLSAgICBjcGRlZiBfbW9kXyhzZWxmLCByaWdodCkgbm9leGNlcHQKKy0gICAg Y3BkZWYgZGljdCBfbXBvbHlfZGljdF9yZWN1cnNpdmUoc2VsZiwgdHVwbGUgdmFycz0qLCBiYXNl X3Jpbmc9Kikgbm9leGNlcHQKKysgICAgY3BkZWYgX21vZF8oc2VsZiwgcmlnaHQpCisrICAgIGNw ZGVmIGRpY3QgX21wb2x5X2RpY3RfcmVjdXJzaXZlKHNlbGYsIHR1cGxlIHZhcnM9KiwgYmFzZV9y aW5nPSopCisgCisgCisgY2RlZiBjbGFzcyBNUG9seW5vbWlhbF9saWJzaW5ndWxhcihNUG9seW5v bWlhbCk6CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9tdWx0aV9wb2x5 bm9taWFsLnB5eCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvbXVsdGlfcG9seW5vbWlhbC5w eXgKK2luZGV4IDY1MjkwZTllMmQ3Li4zNzI0N2YzNjU3MSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdl L3JpbmdzL3BvbHlub21pYWwvbXVsdGlfcG9seW5vbWlhbC5weXgKKysrKyBiL3NyYy9zYWdlL3Jp bmdzL3BvbHlub21pYWwvbXVsdGlfcG9seW5vbWlhbC5weXgKK0BAIC00MzQsNyArNDM0LDcgQEAg Y2RlZiBjbGFzcyBNUG9seW5vbWlhbChDb21tdXRhdGl2ZVBvbHlub21pYWwpOgorICAgICAgICAg ICAgIHogKj0gdmFyCisgICAgICAgICByZXR1cm4gcmluZyh2KQorIAorLSAgICBjcGRlZiBkaWN0 IF9tcG9seV9kaWN0X3JlY3Vyc2l2ZShzZWxmLCB0dXBsZSB2YXJzPU5vbmUsIGJhc2VfcmluZz1O b25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZGljdCBfbXBvbHlfZGljdF9yZWN1cnNpdmUoc2Vs ZiwgdHVwbGUgdmFycz1Ob25lLCBiYXNlX3Jpbmc9Tm9uZSk6CisgICAgICAgICByIiIiCisgICAg ICAgICBSZXR1cm4gYSBgYGRpY3RgYCBvZiBjb2VmZmljaWVudCBlbnRyaWVzIHN1aXRhYmxlIGZv ciBjb25zdHJ1Y3Rpb24KKyAgICAgICAgIG9mIGEgYGBNUG9seW5vbWlhbF9wb2x5ZGljdGBgIHdp dGggdGhlIGdpdmVuIHZhcmlhYmxlcy4KK0BAIC04MTMsNyArODEzLDcgQEAgY2RlZiBjbGFzcyBN UG9seW5vbWlhbChDb21tdXRhdGl2ZVBvbHlub21pYWwpOgorICAgICAgICAgICAgICAgICBkW2Uu dW53ZWlnaHRlZF9kZWdyZWUoKV1bZV0gPSBjCisgICAgICAgICByZXR1cm4ge2s6IHNlbGYuX3Bh cmVudChkW2tdKSBmb3IgayBpbiBkfQorIAorLSAgICBjcGRlZiBfbW9kXyhzZWxmLCBvdGhlcikg bm9leGNlcHQ6CisrICAgIGNwZGVmIF9tb2RfKHNlbGYsIG90aGVyKToKKyAgICAgICAgIHIiIiIK KyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0yOTI2LDcgKzI5MjYsNyBAQCBkZWYgX2lzX01f Y29udmV4Xyhwb2ludHMpOgorICAgICByZXR1cm4gVHJ1ZQorIAorIAorLWNkZWYgcmVtb3ZlX2Zy b21fdHVwbGUoZSwgaW50IGluZCkgbm9leGNlcHQ6CisrY2RlZiByZW1vdmVfZnJvbV90dXBsZShl LCBpbnQgaW5kKToKKyAgICAgdyA9IGxpc3QoZSkKKyAgICAgZGVsIHdbaW5kXQorICAgICBpZiBs ZW4odykgPT0gMToKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL211bHRp X3BvbHlub21pYWxfaWRlYWxfbGlic2luZ3VsYXIucHhkIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5v bWlhbC9tdWx0aV9wb2x5bm9taWFsX2lkZWFsX2xpYnNpbmd1bGFyLnB4ZAoraW5kZXggZmVmYTI0 MTUyM2QuLjU4Zjg1Mzk3M2RjIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlh bC9tdWx0aV9wb2x5bm9taWFsX2lkZWFsX2xpYnNpbmd1bGFyLnB4ZAorKysrIGIvc3JjL3NhZ2Uv cmluZ3MvcG9seW5vbWlhbC9tdWx0aV9wb2x5bm9taWFsX2lkZWFsX2xpYnNpbmd1bGFyLnB4ZAor QEAgLTEsNCArMSw0IEBACisgZnJvbSBzYWdlLmxpYnMuc2luZ3VsYXIuZGVjbCBjaW1wb3J0IGlk ZWFsLCByaW5nCisgCistY2RlZiBvYmplY3Qgc2luZ3VsYXJfaWRlYWxfdG9fc2FnZV9zZXF1ZW5j ZShpZGVhbCAqaSwgcmluZyAqciwgb2JqZWN0IHBhcmVudCkgbm9leGNlcHQKKytjZGVmIG9iamVj dCBzaW5ndWxhcl9pZGVhbF90b19zYWdlX3NlcXVlbmNlKGlkZWFsICppLCByaW5nICpyLCBvYmpl Y3QgcGFyZW50KQorIGNkZWYgaWRlYWwgKnNhZ2VfaWRlYWxfdG9fc2luZ3VsYXJfaWRlYWwoSSkg ZXhjZXB0IE5VTEwKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL211bHRp X3BvbHlub21pYWxfaWRlYWxfbGlic2luZ3VsYXIucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5v bWlhbC9tdWx0aV9wb2x5bm9taWFsX2lkZWFsX2xpYnNpbmd1bGFyLnB5eAoraW5kZXggMzhlMjUx ZDg0Y2UuLjE0ODIwNDE4NDU0IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlh bC9tdWx0aV9wb2x5bm9taWFsX2lkZWFsX2xpYnNpbmd1bGFyLnB5eAorKysrIGIvc3JjL3NhZ2Uv cmluZ3MvcG9seW5vbWlhbC9tdWx0aV9wb2x5bm9taWFsX2lkZWFsX2xpYnNpbmd1bGFyLnB5eAor QEAgLTY3LDcgKzY3LDcgQEAgZnJvbSBzYWdlLnN0cnVjdHVyZS5zZXF1ZW5jZSBpbXBvcnQgU2Vx dWVuY2UKKyAKKyBmcm9tIHNhZ2UucmluZ3MucG9seW5vbWlhbC5wbHVyYWwgY2ltcG9ydCBOQ1Bv bHlub21pYWxSaW5nX3BsdXJhbCwgTkNQb2x5bm9taWFsX3BsdXJhbAorIAorLWNkZWYgb2JqZWN0 IHNpbmd1bGFyX2lkZWFsX3RvX3NhZ2Vfc2VxdWVuY2UoaWRlYWwgKmksIHJpbmcgKnIsIG9iamVj dCBwYXJlbnQpIG5vZXhjZXB0OgorK2NkZWYgb2JqZWN0IHNpbmd1bGFyX2lkZWFsX3RvX3NhZ2Vf c2VxdWVuY2UoaWRlYWwgKmksIHJpbmcgKnIsIG9iamVjdCBwYXJlbnQpOgorICAgICAiIiIKKyAg ICAgY29udmVydCBhIFNJTkdVTEFSIGlkZWFsIHRvIGEgU2FnZSBTZXF1ZW5jZSAodGhlIGZvcm1h dCBTYWdlCisgICAgIHN0b3JlcyBhIEdyb2VibmVyIGJhc2lzIGluKQorZGlmZiAtLWdpdCBhL3Ny Yy9zYWdlL3JpbmdzL3BvbHlub21pYWwvbXVsdGlfcG9seW5vbWlhbF9saWJzaW5ndWxhci5weGQg Yi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL211bHRpX3BvbHlub21pYWxfbGlic2luZ3VsYXIu cHhkCitpbmRleCA3NDQ3NzRlYTIzMS4uNWNjNTQ2MTEyYzkgMTAwNjQ0CistLS0gYS9zcmMvc2Fn ZS9yaW5ncy9wb2x5bm9taWFsL211bHRpX3BvbHlub21pYWxfbGlic2luZ3VsYXIucHhkCisrKysg Yi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL211bHRpX3BvbHlub21pYWxfbGlic2luZ3VsYXIu cHhkCitAQCAtOCwxMyArOCwxMyBAQCBjZGVmIGNsYXNzIE1Qb2x5bm9taWFsUmluZ19saWJzaW5n dWxhcgorIGNkZWYgY2xhc3MgTVBvbHlub21pYWxfbGlic2luZ3VsYXIoTVBvbHlub21pYWxfbGli c2luZ3VsYXJfYmFzZSk6CisgICAgIGNkZWYgcG9seSAqX3BvbHkKKyAgICAgY2RlZiByaW5nICpf cGFyZW50X3JpbmcKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0CistICAg IGNwZGVmIF9tdWxfKHNlbGYsIG90aGVyKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfZmxvb3JkaXZf KHNlbGYsIHJpZ2h0KSBub2V4Y2VwdAorLSAgICBjcGRlZiBfcmVwcl9zaG9ydF8oc2VsZikgbm9l eGNlcHQKKy0gICAgY3BkZWYgaXNfY29uc3RhbnQoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYg X2hvbW9nZW5pemUoc2VsZiwgaW50IHZhcikgbm9leGNlcHQKKy0gICAgY3BkZWYgTVBvbHlub21p YWxfbGlic2luZ3VsYXIgX25ld19jb25zdGFudF9wb2x5KHNlbGYsIHgsIE1Qb2x5bm9taWFsUmlu Z19saWJzaW5ndWxhciBQKSBub2V4Y2VwdAorKyAgICBjcGRlZiBfYWRkXyhzZWxmLCBvdGhlcikK KysgICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIpCisrICAgIGNwZGVmIF9mbG9vcmRpdl8oc2Vs ZiwgcmlnaHQpCisrICAgIGNwZGVmIF9yZXByX3Nob3J0XyhzZWxmKQorKyAgICBjcGRlZiBpc19j b25zdGFudChzZWxmKQorKyAgICBjcGRlZiBfaG9tb2dlbml6ZShzZWxmLCBpbnQgdmFyKQorKyAg ICBjcGRlZiBNUG9seW5vbWlhbF9saWJzaW5ndWxhciBfbmV3X2NvbnN0YW50X3BvbHkoc2VsZiwg eCwgTVBvbHlub21pYWxSaW5nX2xpYnNpbmd1bGFyIFApCisgICAgIGNwZGVmIGxvbmcgbnVtYmVy X29mX3Rlcm1zKHNlbGYpIG5vZXhjZXB0CisgCisgY2RlZiBjbGFzcyBNUG9seW5vbWlhbFJpbmdf bGlic2luZ3VsYXIoTVBvbHlub21pYWxSaW5nX2Jhc2UpOgorQEAgLTI2LDQgKzI2LDQgQEAgY2Rl ZiBjbGFzcyBNUG9seW5vbWlhbFJpbmdfbGlic2luZ3VsYXIoTVBvbHlub21pYWxSaW5nX2Jhc2Up OgorICAgICBjZGVmIHJpbmcgKl9yaW5nCisgCisgIyBuZXcgcG9seW5vbWlhbHMKKy1jZGVmIE1Q b2x5bm9taWFsX2xpYnNpbmd1bGFyIG5ld19NUChNUG9seW5vbWlhbFJpbmdfbGlic2luZ3VsYXIg cGFyZW50LCBwb2x5ICpwKSBub2V4Y2VwdAorK2NkZWYgTVBvbHlub21pYWxfbGlic2luZ3VsYXIg bmV3X01QKE1Qb2x5bm9taWFsUmluZ19saWJzaW5ndWxhciBwYXJlbnQsIHBvbHkgKnApCitkaWZm IC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9tdWx0aV9wb2x5bm9taWFsX2xpYnNp bmd1bGFyLnB5eCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvbXVsdGlfcG9seW5vbWlhbF9s aWJzaW5ndWxhci5weXgKK2luZGV4IGVjNGFjYTU3MzNjLi44ZWJmMTNjYzNjYSAxMDA2NDQKKy0t LSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvbXVsdGlfcG9seW5vbWlhbF9saWJzaW5ndWxh ci5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvbXVsdGlfcG9seW5vbWlhbF9s aWJzaW5ndWxhci5weXgKK0BAIC00NjQsNyArNDY0LDcgQEAgY2RlZiBjbGFzcyBNUG9seW5vbWlh bFJpbmdfbGlic2luZ3VsYXIoTVBvbHlub21pYWxSaW5nX2Jhc2UpOgorICAgICAgICAgbWVtb1tp ZChzZWxmKV0gPSBzZWxmCisgICAgICAgICByZXR1cm4gc2VsZgorIAorLSAgICBjcGRlZiBfY29l cmNlX21hcF9mcm9tXyhzZWxmLCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9jb2VyY2Vf bWFwX2Zyb21fKHNlbGYsIG90aGVyKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGBg VHJ1ZWBgIGlmIGFuZCBvbmx5IGlmIHRoZXJlIGV4aXN0cyBhIGNvZXJjaW9uIG1hcCBmcm9tCisg ICAgICAgICBgYG90aGVyYGAgdG8gYGBzZWxmYGAuCitAQCAtMTk3NSw3ICsxOTc1LDcgQEAgY2Rl ZiBjbGFzcyBNUG9seW5vbWlhbF9saWJzaW5ndWxhcihNUG9seW5vbWlhbF9saWJzaW5ndWxhcl9i YXNlKToKKyAgICAgICAgIG1lbW9baWQoc2VsZildID0gY3B5CisgICAgICAgICByZXR1cm4gY3B5 CisgCistICAgIGNwZGVmIE1Qb2x5bm9taWFsX2xpYnNpbmd1bGFyIF9uZXdfY29uc3RhbnRfcG9s eShzZWxmLCB4LCBNUG9seW5vbWlhbFJpbmdfbGlic2luZ3VsYXIgUCkgbm9leGNlcHQ6CisrICAg IGNwZGVmIE1Qb2x5bm9taWFsX2xpYnNpbmd1bGFyIF9uZXdfY29uc3RhbnRfcG9seShzZWxmLCB4 LCBNUG9seW5vbWlhbFJpbmdfbGlic2luZ3VsYXIgUCk6CisgICAgICAgICByIiIiCisgICAgICAg ICBRdWlja2x5IGNyZWF0ZSBhIG5ldyBjb25zdGFudCBwb2x5bm9taWFsIHdpdGggdmFsdWUgeCBp biB0aGUgcGFyZW50IFAuCisgCitAQCAtMjEzNyw3ICsyMTM3LDcgQEAgY2RlZiBjbGFzcyBNUG9s eW5vbWlhbF9saWJzaW5ndWxhcihNUG9seW5vbWlhbF9saWJzaW5ndWxhcl9iYXNlKToKKyAgICAg ICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX2hhc2hfYygpCisgCistICAgIGNwZGVmIF9y aWNoY21wXyhsZWZ0LCByaWdodCwgaW50IG9wKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3JpY2hj bXBfKGxlZnQsIHJpZ2h0LCBpbnQgb3ApOgorICAgICAgICAgIiIiCisgICAgICAgICBDb21wYXJl IGxlZnQgYW5kIHJpZ2h0LgorIAorQEAgLTIxOTUsNyArMjE5NSw3IEBAIGNkZWYgY2xhc3MgTVBv bHlub21pYWxfbGlic2luZ3VsYXIoTVBvbHlub21pYWxfbGlic2luZ3VsYXJfYmFzZSk6CisgICAg ICAgICBjZGVmIHJpbmcgKnIgPSAoPE1Qb2x5bm9taWFsX2xpYnNpbmd1bGFyPmxlZnQpLl9wYXJl bnRfcmluZworICAgICAgICAgcmV0dXJuIHJpY2hfdG9fYm9vbChvcCwgc2luZ3VsYXJfcG9seW5v bWlhbF9jbXAocCwgcSwgcikpCisgCistICAgIGNwZGVmIF9hZGRfKGxlZnQsIHJpZ2h0KSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgX2FkZF8obGVmdCwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAg ICAgICBBZGQgbGVmdCBhbmQgcmlnaHQuCisgCitAQCAtMjIxMSw3ICsyMjExLDcgQEAgY2RlZiBj bGFzcyBNUG9seW5vbWlhbF9saWJzaW5ndWxhcihNUG9seW5vbWlhbF9saWJzaW5ndWxhcl9iYXNl KToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoPE1Qb2x5bm9taWFsX2xpYnNp bmd1bGFyPnJpZ2h0KS5fcG9seSwgcikKKyAgICAgICAgIHJldHVybiBuZXdfTVAoKDxNUG9seW5v bWlhbF9saWJzaW5ndWxhcj5sZWZ0KS5fcGFyZW50LCBfcCkKKyAKKy0gICAgY3BkZWYgX3N1Yl8o bGVmdCwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc3ViXyhsZWZ0LCByaWdodCk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIFN1YnRyYWN0IGxlZnQgYW5kIHJpZ2h0LgorIAorQEAgLTIy MjgsNyArMjIyOCw3IEBAIGNkZWYgY2xhc3MgTVBvbHlub21pYWxfbGlic2luZ3VsYXIoTVBvbHlu b21pYWxfbGlic2luZ3VsYXJfYmFzZSk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBfcmluZykKKyAgICAgICAgIHJldHVybiBuZXdfTVAoKDxNUG9seW5vbWlhbF9saWJzaW5ndWxh cj5sZWZ0KS5fcGFyZW50LCBfcCkKKyAKKy0gICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQg bGVmdCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IGxlZnQpOgor ICAgICAgICAgIiIiCisgICAgICAgICBNdWx0aXBseSBzZWxmIHdpdGggYSBiYXNlIHJpbmcgZWxl bWVudC4KKyAKK0BAIC0yMjUyLDcgKzIyNTIsNyBAQCBjZGVmIGNsYXNzIE1Qb2x5bm9taWFsX2xp YnNpbmd1bGFyKE1Qb2x5bm9taWFsX2xpYnNpbmd1bGFyX2Jhc2UpOgorICAgICAgICAgc2luZ3Vs YXJfcG9seW5vbWlhbF9ybXVsKCZfcCwgc2VsZi5fcG9seSwgbGVmdCwgX3JpbmcpCisgICAgICAg ICByZXR1cm4gbmV3X01QKCg8TVBvbHlub21pYWxfbGlic2luZ3VsYXI+c2VsZikuX3BhcmVudCwg X3ApCisgCistICAgIGNwZGVmIF9tdWxfKGxlZnQsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgX211bF8obGVmdCwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBNdWx0aXBseSBs ZWZ0IGFuZCByaWdodC4KKyAKK0BAIC0yMjc2LDcgKzIyNzYsNyBAQCBjZGVmIGNsYXNzIE1Qb2x5 bm9taWFsX2xpYnNpbmd1bGFyKE1Qb2x5bm9taWFsX2xpYnNpbmd1bGFyX2Jhc2UpOgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICg8TVBvbHlub21pYWxfbGlic2luZ3VsYXI+bGVm dCkuX3BhcmVudF9yaW5nKQorICAgICAgICAgcmV0dXJuIG5ld19NUCgoPE1Qb2x5bm9taWFsX2xp YnNpbmd1bGFyPmxlZnQpLl9wYXJlbnQsX3ApCisgCistICAgIGNwZGVmIF9kaXZfKGxlZnQsIHJp Z2h0X3JpbmdlbGVtZW50KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2Rpdl8obGVmdCwgcmlnaHRf cmluZ2VsZW1lbnQpOgorICAgICAgICAgciIiIgorICAgICAgICAgRGl2aWRlIGxlZnQgYnkgcmln aHQKKyAKK0BAIC0yNDc5LDcgKzI0NzksNyBAQCBjZGVmIGNsYXNzIE1Qb2x5bm9taWFsX2xpYnNp bmd1bGFyKE1Qb2x5bm9taWFsX2xpYnNpbmd1bGFyX2Jhc2UpOgorICAgICAgICAgcyA9IHNpbmd1 bGFyX3BvbHlub21pYWxfc3RyKHNlbGYuX3BvbHksIF9yaW5nKQorICAgICAgICAgcmV0dXJuIHMK KyAKKy0gICAgY3BkZWYgX3JlcHJfc2hvcnRfKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBf cmVwcl9zaG9ydF8oc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRoaXMgaXMgYSBmYXN0 ZXIgYnV0IGxlc3MgcHJldHR5IHdheSB0byBwcmludCBwb2x5bm9taWFscy4gSWYKKyAgICAgICAg IGF2YWlsYWJsZSBpdCB1c2VzIHRoZSBzaG9ydCBTSU5HVUxBUiBub3RhdGlvbi4KK0BAIC0zMjgy LDcgKzMyODIsNyBAQCBjZGVmIGNsYXNzIE1Qb2x5bm9taWFsX2xpYnNpbmd1bGFyKE1Qb2x5bm9t aWFsX2xpYnNpbmd1bGFyX2Jhc2UpOgorICAgICAgICAgICAgIHJDaGFuZ2VDdXJyUmluZyhfcmlu ZykKKyAgICAgICAgIHJldHVybiBib29sKHBfSXNIb21vZ2VuZW91cyhzZWxmLl9wb2x5LF9yaW5n KSkKKyAKKy0gICAgY3BkZWYgX2hvbW9nZW5pemUoc2VsZiwgaW50IHZhcikgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIF9ob21vZ2VuaXplKHNlbGYsIGludCB2YXIpOgorICAgICAgICAgIiIiCisgICAg ICAgICBSZXR1cm4gYGBzZWxmYGAgaWYgYGBzZWxmYGAgaXMgaG9tb2dlbmVvdXMuICBPdGhlcndp c2UgcmV0dXJuCisgICAgICAgICBhIGhvbW9nZW5pemVkIHBvbHlub21pYWwgY29uc3RydWN0ZWQg YnkgbW9kaWZ5aW5nIHRoZSBkZWdyZWUKK0BAIC0zOTE0LDcgKzM5MTQsNyBAQCBjZGVmIGNsYXNz IE1Qb2x5bm9taWFsX2xpYnNpbmd1bGFyKE1Qb2x5bm9taWFsX2xpYnNpbmd1bGFyX2Jhc2UpOgor ICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gbGVuKHNlbGYuX3ZhcmlhYmxlX2luZGljZXNf KHNvcnQ9RmFsc2UpKQorIAorLSAgICBjcGRlZiBpc19jb25zdGFudChzZWxmKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgaXNfY29uc3RhbnQoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJl dHVybiBgYFRydWVgYCBpZiB0aGlzIHBvbHlub21pYWwgaXMgY29uc3RhbnQuCisgCitAQCAtNDA1 Niw3ICs0MDU2LDcgQEAgY2RlZiBjbGFzcyBNUG9seW5vbWlhbF9saWJzaW5ndWxhcihNUG9seW5v bWlhbF9saWJzaW5ndWxhcl9iYXNlKToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmV0 dXJuIEZhbHNlCisgCistICAgIGNwZGVmIF9mbG9vcmRpdl8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBfZmxvb3JkaXZfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAg ICAgICAgUGVyZm9ybSBkaXZpc2lvbiB3aXRoIHJlbWFpbmRlciBhbmQgcmV0dXJuIHRoZSBxdW90 aWVudC4KKyAKK0BAIC01OTA5LDcgKzU5MDksNyBAQCBjZGVmIGlubGluZSBwb2x5ICphZGR3aXRo Y2FycnkocG9seSAqdGVtcHZlY3RvciwgcG9seSAqbWF4dmVjdG9yLCBpbnQgcG9zLCByaW5nCisg ICAgIHJldHVybiB0ZW1wdmVjdG9yCisgCisgCistY2RlZiBpbmxpbmUgTVBvbHlub21pYWxfbGli c2luZ3VsYXIgbmV3X01QKE1Qb2x5bm9taWFsUmluZ19saWJzaW5ndWxhciBwYXJlbnQsIHBvbHkg Kmp1aWNlKSBub2V4Y2VwdDoKKytjZGVmIGlubGluZSBNUG9seW5vbWlhbF9saWJzaW5ndWxhciBu ZXdfTVAoTVBvbHlub21pYWxSaW5nX2xpYnNpbmd1bGFyIHBhcmVudCwgcG9seSAqanVpY2UpOgor ICAgICAiIiIKKyAgICAgQ29uc3RydWN0IE1Qb2x5bm9taWFsX2xpYnNpbmd1bGFyIGZyb20gcGFy ZW50IGFuZCBTSU5HVUxBUiBwb2x5LgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3Bv bHlub21pYWwvbXVsdGlfcG9seW5vbWlhbF9yaW5nX2Jhc2UucHhkIGIvc3JjL3NhZ2UvcmluZ3Mv cG9seW5vbWlhbC9tdWx0aV9wb2x5bm9taWFsX3JpbmdfYmFzZS5weGQKK2luZGV4IGQ2MzUwYzAy MGQzLi40Y2U5MDMzZGFkYiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwv bXVsdGlfcG9seW5vbWlhbF9yaW5nX2Jhc2UucHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5 bm9taWFsL211bHRpX3BvbHlub21pYWxfcmluZ19iYXNlLnB4ZAorQEAgLTgsNyArOCw3IEBAIGNk ZWYgY2xhc3MgTVBvbHlub21pYWxSaW5nX2Jhc2UoQ29tbXV0YXRpdmVSaW5nKToKKyAgICAgY2Rl ZiBwdWJsaWMgb2JqZWN0IF9tYWdtYV9nZW5zCisgICAgIGNkZWYgcHVibGljIGRpY3QgX21hZ21h X2NhY2hlCisgCistICAgIGNkZWYgX2NvZXJjZV9jX2ltcGwoc2VsZiwgeCkgbm9leGNlcHQKKysg ICAgY2RlZiBfY29lcmNlX2NfaW1wbChzZWxmLCB4KQorIAorIAorIGNkZWYgY2xhc3MgQm9vbGVh blBvbHlub21pYWxSaW5nX2Jhc2UoTVBvbHlub21pYWxSaW5nX2Jhc2UpOgorZGlmZiAtLWdpdCBh L3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvbXVsdGlfcG9seW5vbWlhbF9yaW5nX2Jhc2UucHl4 IGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9tdWx0aV9wb2x5bm9taWFsX3JpbmdfYmFzZS5w eXgKK2luZGV4IGJhMmFjMGRhZWY0Li40YWQyYTNmMWZhOSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdl L3JpbmdzL3BvbHlub21pYWwvbXVsdGlfcG9seW5vbWlhbF9yaW5nX2Jhc2UucHl4CisrKysgYi9z cmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL211bHRpX3BvbHlub21pYWxfcmluZ19iYXNlLnB5eAor QEAgLTU1NSw3ICs1NTUsNyBAQCBjZGVmIGNsYXNzIE1Qb2x5bm9taWFsUmluZ19iYXNlKENvbW11 dGF0aXZlUmluZyk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJldHVybiBzZWxmLl9n ZW5lcmljX2NvZXJjZV9tYXAoc2VsZi5iYXNlX3JpbmcoKSkKKyAKKy0gICAgY2RlZiBfY29lcmNl X2NfaW1wbChzZWxmLCB4KSBub2V4Y2VwdDoKKysgICAgY2RlZiBfY29lcmNlX2NfaW1wbChzZWxm LCB4KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBjYW5vbmljYWwgY29lcmNp b24gb2YgeCB0byB0aGlzIG11bHRpdmFyaWF0ZQorICAgICAgICAgcG9seW5vbWlhbCByaW5nLCBp ZiBvbmUgaXMgZGVmaW5lZCwgb3IgcmFpc2UgYSBUeXBlRXJyb3IuCitkaWZmIC0tZ2l0IGEvc3Jj L3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9vcmVfcG9seW5vbWlhbF9lbGVtZW50LnB4ZCBiL3NyYy9z YWdlL3JpbmdzL3BvbHlub21pYWwvb3JlX3BvbHlub21pYWxfZWxlbWVudC5weGQKK2luZGV4IDg2 YjE0ZjdkMjEzLi5mMzhiY2IwZjBjNSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlu b21pYWwvb3JlX3BvbHlub21pYWxfZWxlbWVudC5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3Bv bHlub21pYWwvb3JlX3BvbHlub21pYWxfZWxlbWVudC5weGQKK0BAIC05LDIzICs5LDIzIEBAIGNk ZWYgY2xhc3MgT3JlUG9seW5vbWlhbChBbGdlYnJhRWxlbWVudCk6CisgICAgIGNkZWYgX2lzX2dl bgorIAorICAgICBjZGVmIGxvbmcgX2hhc2hfYyhzZWxmKSBub2V4Y2VwdAorLSAgICBjZGVmIE9y ZVBvbHlub21pYWwgX25ld19jKHNlbGYsIGxpc3QgY29lZmZzLCBQYXJlbnQgUCwgY2hhciBjaGVj az0qKSBub2V4Y2VwdAorLSAgICBjcGRlZiBPcmVQb2x5bm9taWFsIF9uZXdfY29uc3RhbnRfcG9s eShzZWxmLCBSaW5nRWxlbWVudCBhLCBQYXJlbnQgUCwgY2hhciBjaGVjaz0qKSBub2V4Y2VwdAor LSAgICBjcGRlZiBfbmVnXyhzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfZmxvb3JkaXZfKHNl bGYsIHJpZ2h0KSBub2V4Y2VwdAorLSAgICBjcGRlZiBfbW9kXyhzZWxmLCByaWdodCkgbm9leGNl cHQKKysgICAgY2RlZiBPcmVQb2x5bm9taWFsIF9uZXdfYyhzZWxmLCBsaXN0IGNvZWZmcywgUGFy ZW50IFAsIGNoYXIgY2hlY2s9KikKKysgICAgY3BkZWYgT3JlUG9seW5vbWlhbCBfbmV3X2NvbnN0 YW50X3BvbHkoc2VsZiwgUmluZ0VsZW1lbnQgYSwgUGFyZW50IFAsIGNoYXIgY2hlY2s9KikKKysg ICAgY3BkZWYgX25lZ18oc2VsZikKKysgICAgY3BkZWYgX2Zsb29yZGl2XyhzZWxmLCByaWdodCkK KysgICAgY3BkZWYgX21vZF8oc2VsZiwgcmlnaHQpCisgCisgICAgIGNwZGVmIGJpbnQgaXNfemVy byhzZWxmKSBub2V4Y2VwdAorICAgICBjcGRlZiBiaW50IGlzX29uZShzZWxmKSBub2V4Y2VwdAor ICAKKy0gICAgY2RlZiBfbGVmdF9xdW9fcmVtKHNlbGYsIE9yZVBvbHlub21pYWwgb3RoZXIpIG5v ZXhjZXB0CistICAgIGNkZWYgX3JpZ2h0X3F1b19yZW0oc2VsZiwgT3JlUG9seW5vbWlhbCBvdGhl cikgbm9leGNlcHQKKy0gICAgY2RlZiBPcmVQb2x5bm9taWFsIF9sZWZ0X2xjbV9jb2ZhY3Rvcihz ZWxmLCBPcmVQb2x5bm9taWFsIG90aGVyKSBub2V4Y2VwdAorLSAgICBjZGVmIE9yZVBvbHlub21p YWwgX3JpZ2h0X2xjbV9jb2ZhY3RvcihzZWxmLCBPcmVQb2x5bm9taWFsIG90aGVyKSBub2V4Y2Vw dAorKyAgICBjZGVmIF9sZWZ0X3F1b19yZW0oc2VsZiwgT3JlUG9seW5vbWlhbCBvdGhlcikKKysg ICAgY2RlZiBfcmlnaHRfcXVvX3JlbShzZWxmLCBPcmVQb2x5bm9taWFsIG90aGVyKQorKyAgICBj ZGVmIE9yZVBvbHlub21pYWwgX2xlZnRfbGNtX2NvZmFjdG9yKHNlbGYsIE9yZVBvbHlub21pYWwg b3RoZXIpCisrICAgIGNkZWYgT3JlUG9seW5vbWlhbCBfcmlnaHRfbGNtX2NvZmFjdG9yKHNlbGYs IE9yZVBvbHlub21pYWwgb3RoZXIpCisgCisgICAgICMgQWJzdHJhY3QgbWV0aG9kcworLSAgICBj cGRlZiBJbnRlZ2VyIGRlZ3JlZShzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBsaXN0IGNvZWZm aWNpZW50cyhzZWxmLCBzcGFyc2U9Kikgbm9leGNlcHQKKysgICAgY3BkZWYgSW50ZWdlciBkZWdy ZWUoc2VsZikKKysgICAgY3BkZWYgbGlzdCBjb2VmZmljaWVudHMoc2VsZiwgc3BhcnNlPSopCisg CisgCisgY2RlZiB2b2lkIGxtdWxfZ2VuKGxpc3QgQSwgTW9ycGhpc20gbSwgZCkgbm9leGNlcHQK K0BAIC0zNCwxMiArMzQsMTIgQEAgY2RlZiBjbGFzcyBPcmVQb2x5bm9taWFsX2dlbmVyaWNfZGVu c2UoT3JlUG9seW5vbWlhbCk6CisgICAgIGNkZWYgbGlzdCBfY29lZmZzCisgCisgICAgIGNkZWYg dm9pZCBfbm9ybWFsaXplKHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIF9hZGRfKHNlbGYsIG90 aGVyKSBub2V4Y2VwdAorLSAgICBjZGVmIGxpc3QgX211bF9saXN0KHNlbGYsIGxpc3QgQSkgbm9l eGNlcHQKKy0gICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0CisrICAgIGNwZGVm IF9hZGRfKHNlbGYsIG90aGVyKQorKyAgICBjZGVmIGxpc3QgX211bF9saXN0KHNlbGYsIGxpc3Qg QSkKKysgICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIpCisgCistICAgIGNwZGVmIGRpY3QgZGlj dChzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBsaXN0IGxpc3Qoc2VsZiwgYmludCBjb3B5PSop IG5vZXhjZXB0CisrICAgIGNwZGVmIGRpY3QgZGljdChzZWxmKQorKyAgICBjcGRlZiBsaXN0IGxp c3Qoc2VsZiwgYmludCBjb3B5PSopCisgCisgCisgY2RlZiBjbGFzcyBPcmVQb2x5bm9taWFsQmFz ZXJpbmdJbmplY3Rpb24oTW9ycGhpc20pOgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3Bv bHlub21pYWwvb3JlX3BvbHlub21pYWxfZWxlbWVudC5weXggYi9zcmMvc2FnZS9yaW5ncy9wb2x5 bm9taWFsL29yZV9wb2x5bm9taWFsX2VsZW1lbnQucHl4CitpbmRleCA4NmMyYTA1NzM1My4uNDdi NWI3ZTZhZDcgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL29yZV9wb2x5 bm9taWFsX2VsZW1lbnQucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL29yZV9w b2x5bm9taWFsX2VsZW1lbnQucHl4CitAQCAtMjUxLDcgKzI1MSw3IEBAIGNkZWYgY2xhc3MgT3Jl UG9seW5vbWlhbChBbGdlYnJhRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVy biBzZWxmLl9oYXNoX2MoKQorIAorLSAgICBjcGRlZiBJbnRlZ2VyIGRlZ3JlZShzZWxmKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgSW50ZWdlciBkZWdyZWUoc2VsZik6CisgICAgICAgICByIiIiCisg ICAgICAgICBSZXR1cm4gdGhlIGRlZ3JlZSBvZiBgYHNlbGZgYC4KKyAKK0BAIC0yNzIsNyArMjcy LDcgQEAgY2RlZiBjbGFzcyBPcmVQb2x5bm9taWFsKEFsZ2VicmFFbGVtZW50KToKKyAgICAgICAg ICIiIgorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorIAorLSAgICBjZGVmIE9y ZVBvbHlub21pYWwgX25ld19jKHNlbGYsIGxpc3QgY29lZmZzLCBQYXJlbnQgUCwgY2hhciBjaGVj az0wKSBub2V4Y2VwdDoKKysgICAgY2RlZiBPcmVQb2x5bm9taWFsIF9uZXdfYyhzZWxmLCBsaXN0 IGNvZWZmcywgUGFyZW50IFAsIGNoYXIgY2hlY2s9MCk6CisgICAgICAgICByIiIiCisgICAgICAg ICBGYXN0IGNyZWF0aW9uIG9mIGEgbmV3IE9yZSBwb2x5bm9taWFsCisgCitAQCAtMjgzLDcgKzI4 Myw3IEBAIGNkZWYgY2xhc3MgT3JlUG9seW5vbWlhbChBbGdlYnJhRWxlbWVudCk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIHJldHVybiBQKGNvZWZmcykKKyAKKy0gICAgY3BkZWYgT3JlUG9seW5v bWlhbCBfbmV3X2NvbnN0YW50X3BvbHkoc2VsZiwgUmluZ0VsZW1lbnQgYSwgUGFyZW50IFAsIGNo YXIgY2hlY2s9MCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIE9yZVBvbHlub21pYWwgX25ld19jb25z dGFudF9wb2x5KHNlbGYsIFJpbmdFbGVtZW50IGEsIFBhcmVudCBQLCBjaGFyIGNoZWNrPTApOgor ICAgICAgICAgciIiIgorICAgICAgICAgRmFzdCBjcmVhdGlvbiBvZiBhIG5ldyBjb25zdGFudCBP cmUgcG9seW5vbWlhbAorIAorQEAgLTU4MCw3ICs1ODAsNyBAQCBjZGVmIGNsYXNzIE9yZVBvbHlu b21pYWwoQWxnZWJyYUVsZW1lbnQpOgorICAgICAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVk RXJyb3IoInRoZSBsZWFkaW5nIGNvZWZmaWNpZW50IGlzIG5vdCBhIHVuaXQiKQorICAgICAgICAg cmV0dXJuIGEgKiBzZWxmCisgCistICAgIGNwZGVmIF9tb2RfKHNlbGYsIG90aGVyKSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgX21vZF8oc2VsZiwgb3RoZXIpOgorICAgICAgICAgciIiIgorICAgICAg ICAgUmV0dXJuIHRoZSByZW1haW5kZXIgaW4gdGhlICpyaWdodCogRXVjbGlkZWFuIGRpdmlzaW9u IG9mCisgICAgICAgICBgYHNlbGZgYCBieSBgYG90aGVyYGBgLgorQEAgLTYwMiw3ICs2MDIsNyBA QCBjZGVmIGNsYXNzIE9yZVBvbHlub21pYWwoQWxnZWJyYUVsZW1lbnQpOgorICAgICAgICAgIiIi CisgICAgICAgICByZXR1cm4gc2VsZi5yaWdodF9xdW9fcmVtKG90aGVyKVsxXQorIAorLSAgICBj cGRlZiBfZmxvb3JkaXZfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2Zsb29y ZGl2XyhzZWxmLCByaWdodCk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHF1 b3RpZW50IG9mIHRoZSAqcmlnaHQqIEV1Y2xpZGVhbiBkaXZpc2lvbiBvZgorICAgICAgICAgYGBz ZWxmYGAgYnkgYGByaWdodGBgLgorQEAgLTYyOCw3ICs2MjgsNyBAQCBjZGVmIGNsYXNzIE9yZVBv bHlub21pYWwoQWxnZWJyYUVsZW1lbnQpOgorICAgICAgICAgcSwgXyA9IHNlbGYucmlnaHRfcXVv X3JlbShyaWdodCkKKyAgICAgICAgIHJldHVybiBxCisgCistICAgIGNwZGVmIF9kaXZfKHNlbGYs IHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2Rpdl8oc2VsZiwgcmlnaHQpOgorICAgICAg ICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBxdW90aWVudCBvZiB0aGlzIE9yZSBwb2x5bm9t aWFsIGJ5IGBgcmlnaHRgYAorICAgICAgICAgaW4gdGhlIGZyYWN0aW9uIGZpZWxkLgorQEAgLTk0 MCw3ICs5NDAsNyBAQCBjZGVmIGNsYXNzIE9yZVBvbHlub21pYWwoQWxnZWJyYUVsZW1lbnQpOgor ICAgICAgICAgICAgIFYgPSBWICogbGMKKyAgICAgICAgIHJldHVybiBHLCBVLCBWCisgCistICAg IGNkZWYgX2xlZnRfcXVvX3JlbShzZWxmLCBPcmVQb2x5bm9taWFsIG90aGVyKSBub2V4Y2VwdDoK KysgICAgY2RlZiBfbGVmdF9xdW9fcmVtKHNlbGYsIE9yZVBvbHlub21pYWwgb3RoZXIpOgorICAg ICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBxdW90aWVudCBhbmQgcmVtYWluZGVyIG9m IHRoZSBsZWZ0IEV1Y2xpZGVhbgorICAgICAgICAgZGl2aXNpb24gb2YgYGBzZWxmYGAgYnkgYGBv dGhlcmBgIChDIGltcGxlbWVudGF0aW9uKS4KK0BAIC0xMDAwLDcgKzEwMDAsNyBAQCBjZGVmIGNs YXNzIE9yZVBvbHlub21pYWwoQWxnZWJyYUVsZW1lbnQpOgorICAgICAgICAgICAgIHJhaXNlIFpl cm9EaXZpc2lvbkVycm9yKCJkaXZpc2lvbiBieSB6ZXJvIGlzIG5vdCB2YWxpZCIpCisgICAgICAg ICByZXR1cm4gc2VsZi5fbGVmdF9xdW9fcmVtKG90aGVyKQorIAorLSAgICBjZGVmIF9yaWdodF9x dW9fcmVtKHNlbGYsIE9yZVBvbHlub21pYWwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9y aWdodF9xdW9fcmVtKHNlbGYsIE9yZVBvbHlub21pYWwgb3RoZXIpOgorICAgICAgICAgciIiIgor ICAgICAgICAgUmV0dXJuIHRoZSBxdW90aWVudCBhbmQgcmVtYWluZGVyIG9mIHRoZSByaWdodCBF dWNsaWRlYW4KKyAgICAgICAgIGRpdmlzaW9uIG9mIGBgc2VsZmBgIGJ5IGBgb3RoZXJgYCAoQyBp bXBsZW1lbnRhdGlvbikuCitAQCAtMTMwOSw3ICsxMzA5LDcgQEAgY2RlZiBjbGFzcyBPcmVQb2x5 bm9taWFsKEFsZ2VicmFFbGVtZW50KToKKyAgICAgICAgICAgICBBID0gQS5sZWZ0X21vbmljKCkK KyAgICAgICAgIHJldHVybiBBCisgCistICAgIGNkZWYgT3JlUG9seW5vbWlhbCBfbGVmdF9sY21f Y29mYWN0b3Ioc2VsZiwgT3JlUG9seW5vbWlhbCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNkZWYg T3JlUG9seW5vbWlhbCBfbGVmdF9sY21fY29mYWN0b3Ioc2VsZiwgT3JlUG9seW5vbWlhbCBvdGhl cik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gYW4gT3JlIHBvbHlub21pYWwgYFVg IHN1Y2ggdGhhdCBgVSBQID0gYyBMYAorICAgICAgICAgd2hlcmUgYFBgIGlzIHRoaXMgT3JlIHBv bHlub21pYWwgKGBgc2VsZmBgKSwgYExgCitAQCAtMTM4Nyw3ICsxMzg3LDcgQEAgY2RlZiBjbGFz cyBPcmVQb2x5bm9taWFsKEFsZ2VicmFFbGVtZW50KToKKyAgICAgICAgICAgICBWMSA9IHMgKiBW MQorICAgICAgICAgcmV0dXJuIEwsIFYxLCBMIC8vIG90aGVyCisgCistICAgIGNkZWYgT3JlUG9s eW5vbWlhbCBfcmlnaHRfbGNtX2NvZmFjdG9yKHNlbGYsIE9yZVBvbHlub21pYWwgb3RoZXIpIG5v ZXhjZXB0OgorKyAgICBjZGVmIE9yZVBvbHlub21pYWwgX3JpZ2h0X2xjbV9jb2ZhY3RvcihzZWxm LCBPcmVQb2x5bm9taWFsIG90aGVyKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBh biBPcmUgcG9seW5vbWlhbCBgVWAgc3VjaCB0aGF0IGBQIFUgPSBMIGNgCisgICAgICAgICB3aGVy ZSBgUGAgaXMgdGhpcyBPcmUgcG9seW5vbWlhbCAoYGBzZWxmYGApLCBgTGAKK0BAIC0xOTQyLDcg KzE5NDIsNyBAQCBjZGVmIGNsYXNzIE9yZVBvbHlub21pYWwoQWxnZWJyYUVsZW1lbnQpOgorICAg ICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5pc190ZXJtKCkgYW5kIHNlbGYubGVhZGlu Z19jb2VmZmljaWVudCgpID09IDEKKyAKKy0gICAgY3BkZWYgbGlzdCBjb2VmZmljaWVudHMoc2Vs Ziwgc3BhcnNlPVRydWUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBsaXN0IGNvZWZmaWNpZW50cyhz ZWxmLCBzcGFyc2U9VHJ1ZSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGNv ZWZmaWNpZW50cyBvZiB0aGUgbW9ub21pYWxzIGFwcGVhcmluZyBpbiBgYHNlbGZgYC4KKyAKK0BA IC0yMzU0LDcgKzIzNTQsNyBAQCBjZGVmIGNsYXNzIE9yZVBvbHlub21pYWxfZ2VuZXJpY19kZW5z ZShPcmVQb2x5bm9taWFsKToKKyAgICAgICAgICAgICByZXR1cm4gLTIKKyAgICAgICAgIHJldHVy biByZXN1bHQKKyAKKy0gICAgY2RlZiBPcmVQb2x5bm9taWFsIF9uZXdfYyhzZWxmLCBsaXN0IGNv ZWZmcywgUGFyZW50IFAsIGNoYXIgY2hlY2s9MCkgbm9leGNlcHQ6CisrICAgIGNkZWYgT3JlUG9s eW5vbWlhbCBfbmV3X2Moc2VsZiwgbGlzdCBjb2VmZnMsIFBhcmVudCBQLCBjaGFyIGNoZWNrPTAp OgorICAgICAgICAgciIiIgorICAgICAgICAgRmFzdCBjcmVhdGlvbiBvZiBhIG5ldyBPcmUgcG9s eW5vbWlhbCBnaXZlbiBhIGxpc3Qgb2YgY29lZmZpY2llbnRzLgorIAorQEAgLTIzOTcsNyArMjM5 Nyw3IEBAIGNkZWYgY2xhc3MgT3JlUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKE9yZVBvbHlub21p YWwpOgorICAgICAgICAgICAgIGRlbCB4W25dCisgICAgICAgICAgICAgbiAtPSAxCisgCistICAg IGNwZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdodCwgaW50IG9wKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgX3JpY2hjbXBfKGxlZnQsIHJpZ2h0LCBpbnQgb3ApOgorICAgICAgICAgciIiIgorICAgICAg ICAgQ29tcGFyZSB0aGUgdHdvIE9yZSBwb2x5bm9taWFscyBgYHNlbGZgYCBhbmQgYGBvdGhlcmBg LgorIAorQEAgLTI0NjMsNyArMjQ2Myw3IEBAIGNkZWYgY2xhc3MgT3JlUG9seW5vbWlhbF9nZW5l cmljX2RlbnNlKE9yZVBvbHlub21pYWwpOgorICAgICAgICAgZXhjZXB0IEluZGV4RXJyb3I6Cisg ICAgICAgICAgICAgcmV0dXJuIHNlbGYuYmFzZV9yaW5nKCkuemVybygpCisgCistICAgIGNwZGVm IGxpc3QgbGlzdChzZWxmLCBiaW50IGNvcHk9VHJ1ZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGxp c3QgbGlzdChzZWxmLCBiaW50IGNvcHk9VHJ1ZSk6CisgICAgICAgICByIiIiCisgICAgICAgICBS ZXR1cm4gYSBsaXN0IG9mIHRoZSBjb2VmZmljaWVudHMgb2YgYGBzZWxmYGAuCisgCitAQCAtMjQ5 MSw3ICsyNDkxLDcgQEAgY2RlZiBjbGFzcyBPcmVQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UoT3Jl UG9seW5vbWlhbCk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJldHVybiAoPE9yZVBv bHlub21pYWxfZ2VuZXJpY19kZW5zZT5zZWxmKS5fY29lZmZzCisgCistICAgIGNwZGVmIGRpY3Qg ZGljdChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZGljdCBkaWN0KHNlbGYpOgorICAgICAg ICAgciIiIgorICAgICAgICAgUmV0dXJuIGEgZGljdGlvbmFyeSByZXByZXNlbnRhdGlvbiBvZiBg YHNlbGZgYC4KKyAKK0BAIC0yNTEzLDcgKzI1MTMsNyBAQCBjZGVmIGNsYXNzIE9yZVBvbHlub21p YWxfZ2VuZXJpY19kZW5zZShPcmVQb2x5bm9taWFsKToKKyAgICAgICAgICAgICAgICAgWFtpXSA9 IGMKKyAgICAgICAgIHJldHVybiBYCisgCistICAgIGNwZGVmIEludGVnZXIgZGVncmVlKHNlbGYp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBJbnRlZ2VyIGRlZ3JlZShzZWxmKToKKyAgICAgICAgIHIi IiIKKyAgICAgICAgIFJldHVybiB0aGUgZGVncmVlIG9mIGBgc2VsZmBgLgorIAorQEAgLTI1NTIs NyArMjU1Miw3IEBAIGNkZWYgY2xhc3MgT3JlUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKE9yZVBv bHlub21pYWwpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gSW50ZWdlcihsZW4oc2Vs Zi5fY29lZmZzKSAtIDEpCisgCistICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgciIiIgorICAgICAg ICAgQWRkIHR3byBwb2x5bm9taWFscy4KKyAKK0BAIC0yNTgzLDcgKzI1ODMsNyBAQCBjZGVmIGNs YXNzIE9yZVBvbHlub21pYWxfZ2VuZXJpY19kZW5zZShPcmVQb2x5bm9taWFsKToKKyAgICAgICAg ICAgICByID0gc2VsZi5fbmV3X2MoW3hbaV0gKyB5W2ldIGZvciBpIGluIHJhbmdlKGR4KV0sIHNl bGYuX3BhcmVudCwgMSkKKyAgICAgICAgIHJldHVybiByCisgCistICAgIGNwZGVmIF9zdWJfKHNl bGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQpOgorICAg ICAgICAgciIiIgorICAgICAgICAgU3VidHJhY3QgcG9seW5vbWlhbCBgYHJpZ2h0YGAgZnJvbSBg YHNlbGZgYC4KKyAKK0BAIC0yNjE1LDcgKzI2MTUsNyBAQCBjZGVmIGNsYXNzIE9yZVBvbHlub21p YWxfZ2VuZXJpY19kZW5zZShPcmVQb2x5bm9taWFsKToKKyAgICAgICAgICAgICByID0gc2VsZi5f bmV3X2MoW3hbaV0gLSB5W2ldIGZvciBpIGluIHJhbmdlKGR4KV0sIHNlbGYuX3BhcmVudCwgMSkK KyAgICAgICAgIHJldHVybiByCisgCistICAgIGNwZGVmIF9uZWdfKHNlbGYpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBfbmVnXyhzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0 aGUgbmVnYXRpdmUgb2YgYGBzZWxmYGAuCisgCitAQCAtMjY3OCw3ICsyNjc4LDcgQEAgY2RlZiBj bGFzcyBPcmVQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UoT3JlUG9seW5vbWlhbCk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9uZXdfYyhzZWxmLl9jb2VmZnNbOm5dLCBzZWxm Ll9wYXJlbnQsIDEpCisgCistICAgIGNkZWYgbGlzdCBfbXVsX2xpc3Qoc2VsZiwgbGlzdCBBKSBu b2V4Y2VwdDoKKysgICAgY2RlZiBsaXN0IF9tdWxfbGlzdChzZWxmLCBsaXN0IEEpOgorICAgICAg ICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBsaXN0IG9mIGNvZWZmaWNpZW50cyBvZiB0aGUg cHJvZHVjdCBvZiB0aGlzCisgICAgICAgICBPcmUgcG9seW5vbWlhbCBieSB0aGF0IHdob3NlIGNv ZWZmaWNpZW50cyBhcmUgZ2l2ZW4gYnkgYGBBYGAuCitAQCAtMjY5OSw3ICsyNjk5LDcgQEAgY2Rl ZiBjbGFzcyBPcmVQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UoT3JlUG9seW5vbWlhbCk6CisgICAg ICAgICAgICAgICAgICAgICBCQVtqXSArPSBjb2VmZiAqIEFbal0KKyAgICAgICAgIHJldHVybiBC QQorIAorLSAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCBzKSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgcyk6CisgICAgICAgICByIiIiCisgICAgICAgICBS ZXR1cm4gdGhlIHByb2R1Y3QgYGBzZWxmICogcmlnaHRgYC4KKyAKK0BAIC0yNzE4LDcgKzI3MTgs NyBAQCBjZGVmIGNsYXNzIE9yZVBvbHlub21pYWxfZ2VuZXJpY19kZW5zZShPcmVQb2x5bm9taWFs KToKKyAgICAgICAgIGNkZWYgY29lZmZzID0gc2VsZi5fbXVsX2xpc3QoW3NdKQorICAgICAgICAg cmV0dXJuIHNlbGYuX25ld19jKGNvZWZmcywgc2VsZi5fcGFyZW50LCAxKQorIAorLSAgICBjcGRl ZiBfcm11bF8oc2VsZiwgRWxlbWVudCBzKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3JtdWxfKHNl bGYsIEVsZW1lbnQgcyk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHByb2R1 Y3QgYGBsZWZ0ICogc2VsZmBgLgorIAorQEAgLTI3NDYsNyArMjc0Niw3IEBAIGNkZWYgY2xhc3Mg T3JlUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKE9yZVBvbHlub21pYWwpOgorICAgICAgICAgIiIi CisgICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2MoW3MgKiBjIGZvciBjIGluIHNlbGYuX2NvZWZm c10sIHNlbGYuX3BhcmVudCwgMSkKKyAKKy0gICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBfbXVsXyhzZWxmLCBvdGhlcik6CisgICAgICAgICByIiIiCisg ICAgICAgICBSZXR1cm4gdGhlIHByb2R1Y3QgYGBzZWxmICogcmlnaHRgYC4KKyAKK0BAIC0yNzg1 LDcgKzI3ODUsNyBAQCBjZGVmIGNsYXNzIE9yZVBvbHlub21pYWxfZ2VuZXJpY19kZW5zZShPcmVQ b2x5bm9taWFsKToKKyAgICAgICAgICAgICBjb2VmZnMgPSBzZWxmLl9tdWxfbGlzdChjb2VmZnMp CisgICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2MoY29lZmZzLCBzZWxmLl9wYXJlbnQsIDEpCisg CistICAgIGNkZWYgX2xlZnRfcXVvX3JlbShzZWxmLCBPcmVQb2x5bm9taWFsIG90aGVyKSBub2V4 Y2VwdDoKKysgICAgY2RlZiBfbGVmdF9xdW9fcmVtKHNlbGYsIE9yZVBvbHlub21pYWwgb3RoZXIp OgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBxdW90aWVudCBhbmQgcmVtYWlu ZGVyIG9mIHRoZSBsZWZ0IEV1Y2xpZGVhbgorICAgICAgICAgZGl2aXNpb24gb2YgYGBzZWxmYGAg YnkgYGBvdGhlcmBgIChDIGltcGxlbWVudGF0aW9uKS4KK0BAIC0yODE0LDcgKzI4MTQsNyBAQCBj ZGVmIGNsYXNzIE9yZVBvbHlub21pYWxfZ2VuZXJpY19kZW5zZShPcmVQb2x5bm9taWFsKToKKyAg ICAgICAgIHF1by5yZXZlcnNlKCkKKyAgICAgICAgIHJldHVybiBzZWxmLl9uZXdfYyhxdW8sIHNl bGYuX3BhcmVudCksIHNlbGYuX25ld19jKEFbOmRlZ0JdLCBzZWxmLl9wYXJlbnQsIDEpCisgCist ICAgIGNkZWYgX3JpZ2h0X3F1b19yZW0oc2VsZiwgT3JlUG9seW5vbWlhbCBvdGhlcikgbm9leGNl cHQ6CisrICAgIGNkZWYgX3JpZ2h0X3F1b19yZW0oc2VsZiwgT3JlUG9seW5vbWlhbCBvdGhlcik6 CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHF1b3RpZW50IGFuZCByZW1haW5k ZXIgb2YgdGhlIHJpZ2h0IEV1Y2xpZGVhbgorICAgICAgICAgZGl2aXNpb24gb2YgYGBzZWxmYGAg YnkgYGBvdGhlcmBgIChDIGltcGxlbWVudGF0aW9uKS4KK0BAIC0yODUyLDcgKzI4NTIsNyBAQCBj ZGVmIGNsYXNzIE9yZVBvbHlub21pYWxfZ2VuZXJpY19kZW5zZShPcmVQb2x5bm9taWFsKToKKyAg ICAgICAgIHF1by5yZXZlcnNlKCkKKyAgICAgICAgIHJldHVybiBzZWxmLl9uZXdfYyhxdW8sIHNl bGYuX3BhcmVudCksIHNlbGYuX25ld19jKEFbOmRlZ0JdLCBzZWxmLl9wYXJlbnQsIDEpCisgCist ICAgIGNwZGVmIGxpc3QgY29lZmZpY2llbnRzKHNlbGYsIHNwYXJzZT1UcnVlKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgbGlzdCBjb2VmZmljaWVudHMoc2VsZiwgc3BhcnNlPVRydWUpOgorICAgICAg ICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBjb2VmZmljaWVudHMgb2YgdGhlIG1vbm9taWFs cyBhcHBlYXJpbmcgaW4gYGBzZWxmYGAuCisgCitAQCAtMjk4OCw3ICsyOTg4LDcgQEAgY2RlZiBj bGFzcyBDb25zdGFudE9yZVBvbHlub21pYWxTZWN0aW9uKE1hcCk6CisgICAgICAgICAgICAgICAg ICAgb3ZlciBSYXRpb25hbCBGaWVsZCB0d2lzdGVkIGJ5IHQgfC0tPiB0ICsgMQorICAgICAgICAg ICAgIFRvOiAgIFVuaXZhcmlhdGUgUG9seW5vbWlhbCBSaW5nIGluIHQgb3ZlciBSYXRpb25hbCBG aWVsZAorICAgICAiIiIKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCkgbm9leGNl cHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpOgorICAgICAgICAgciIiIgor ICAgICAgICAgUmV0dXJuIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnQgb2YgdGhlIGJhc2Ugcmlu ZyBpZiBgYHNlbGZgYCBpcyBhCisgICAgICAgICBjb25zdGFudCBPcmUgcG9seW5vbWlhbC4gT3Ro ZXJ3aXNlLCBpdCBmYWlscy4KK0BAIC0zMDk2LDcgKzMwOTYsNyBAQCBjZGVmIGNsYXNzIE9yZVBv bHlub21pYWxCYXNlcmluZ0luamVjdGlvbihNb3JwaGlzbSk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIHJldHVybiBzZWxmLl9hbl9lbGVtZW50CisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxf KHNlbGYsIGUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCBlKToK KyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgY29ycmVzcG9uZGluZyBPcmUgcG9s eW5vbWlhbCB0byB0aGUgZWxlbWVudCBmcm9tIHRoZQorICAgICAgICAgYmFzZSByaW5nIGFjY29y ZGluZyB0byBgYHNlbGZgYC4KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFs L3Bib3JpL3Bib3JpLnB4ZCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcGJvcmkvcGJvcmku cHhkCitpbmRleCBmOTA4M2E2ODFhMi4uYWU0YWMxMzUzZDIgMTAwNjQ0CistLS0gYS9zcmMvc2Fn ZS9yaW5ncy9wb2x5bm9taWFsL3Bib3JpL3Bib3JpLnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3Mv cG9seW5vbWlhbC9wYm9yaS9wYm9yaS5weGQKK0BAIC0xNywxMiArMTcsMTIgQEAgY2RlZiBjbGFz cyBCb29sZWFuUG9seW5vbWlhbFJpbmcoQm9vbGVhblBvbHlub21pYWxSaW5nX2Jhc2UpOgorICAg ICAjIGl0IGlzIHZlcnkgaW1wb3J0YW50IHRvIGtlZXAgdGhpcyBjYWNoZWQsIHNpbmNlIG90aGVy d2lzZSB0aGUgbWFnbWEgaW50ZXJmYWNlIHdpbGwgYnJlYWsKKyAgICAgY2RlZiBwdWJsaWMgb2Jq ZWN0IF9fY292ZXJfcmluZworIAorLSAgICBjZGVmIF9jb252ZXJ0KHNlbGYsIHJocykgbm9leGNl cHQKKysgICAgY2RlZiBfY29udmVydChzZWxmLCByaHMpCisgCisgY2RlZiBjbGFzcyBCb29sZWFu UG9seW5vbWlhbChNUG9seW5vbWlhbCk6CisgICAgIGNkZWYgUEJQb2x5IF9wYnBvbHkKKy0gICAg Y3BkZWYgX2FkZF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0CistICAgIGNwZGVmIF9tdWxfKHNlbGYs IG90aGVyKSBub2V4Y2VwdAorKyAgICBjcGRlZiBfYWRkXyhzZWxmLCBvdGhlcikKKysgICAgY3Bk ZWYgX211bF8oc2VsZiwgb3RoZXIpCisgCisgY2RlZiBjbGFzcyBCb29sZVNldDoKKyAgICAgY2Rl ZiBCb29sZWFuUG9seW5vbWlhbFJpbmcgX3JpbmcKK0BAIC0zNSw3ICszNSw3IEBAIGNkZWYgY2xh c3MgQ0N1ZGROYXZpZ2F0b3I6CisgY2RlZiBjbGFzcyBCb29sZWFuTW9ub21pYWwoTW9ub2lkRWxl bWVudCk6CisgICAgIGNkZWYgUEJNb25vbSBfcGJtb25vbQorICAgICBjZGVmIEJvb2xlYW5Qb2x5 bm9taWFsUmluZyBfcmluZworLSAgICBjcGRlZiBfbXVsXyhzZWxmLCBvdGhlcikgbm9leGNlcHQK KysgICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIpCisgCisgY2RlZiBjbGFzcyBCb29sZWFuTW9u b21pYWxWYXJpYWJsZUl0ZXJhdG9yOgorICAgICBjZGVmIG9iamVjdCBwYXJlbnQKK2RpZmYgLS1n aXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3Bib3JpL3Bib3JpLnB5eCBiL3NyYy9zYWdl L3JpbmdzL3BvbHlub21pYWwvcGJvcmkvcGJvcmkucHl4CitpbmRleCBmY2JhODA4NTFlOC4uNmZh ZTNiOTYzMjMgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3Bib3JpL3Bi b3JpLnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wYm9yaS9wYm9yaS5weXgK K0BAIC02MDcsNyArNjA3LDcgQEAgY2RlZiBjbGFzcyBCb29sZWFuUG9seW5vbWlhbFJpbmcoQm9v bGVhblBvbHlub21pYWxSaW5nX2Jhc2UpOgorICAgICAgICAgcmV0dXJuIHNlbGYuX3JlcHIKKyAK KyAgICAgIyBDb2VyY2lvbgorLSAgICBjcGRlZiBfY29lcmNlX21hcF9mcm9tXyhzZWxmLCBTKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgX2NvZXJjZV9tYXBfZnJvbV8oc2VsZiwgUyk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIFRoZXJlIGlzIGNvZXJjaW9uIGZyb20gdGhlIGJhc2UgcmluZywgZnJv bSBhbnkgYm9vbGVhbgorICAgICAgICAgcG9seW5vbWlhbCByaW5nIHdpdGggY29tcGF0aWJsZSB2 YXJpYWJsZSBuYW1lcywKK0BAIC02ODMsNyArNjgzLDcgQEAgY2RlZiBjbGFzcyBCb29sZWFuUG9s eW5vbWlhbFJpbmcoQm9vbGVhblBvbHlub21pYWxSaW5nX2Jhc2UpOgorICAgICAgICAgICAgICAg ICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAgICByZXR1cm4gc2VsZi5fYmFzZS5oYXNfY29lcmNl X21hcF9mcm9tKFMuYmFzZSgpKQorIAorLSAgICBjZGVmIF9jb252ZXJ0KHNlbGYsIG90aGVyKSBu b2V4Y2VwdDoKKysgICAgY2RlZiBfY29udmVydChzZWxmLCBvdGhlcik6CisgICAgICAgICByIiIi CisgICAgICAgICBDYW5vbmljYWwgY29udmVyc2lvbiBvZiBlbGVtZW50cyBmcm9tIG90aGVyIGRv bWFpbnMgdG8KKyAgICAgICAgIHRoaXMgYm9vbGVhbiBwb2x5bm9taWFsIHJpbmcuCitAQCAtMjI2 OSw3ICsyMjY5LDcgQEAgY2RlZiBjbGFzcyBCb29sZWFuTW9ub21pYWwoTW9ub2lkRWxlbWVudCk6 CisgICAgICAgICBnZW5zID0gc2VsZi5fcGFyZW50LmdlbnMoKQorICAgICAgICAgcmV0dXJuIHNl bGYuX3BhcmVudCwgKHR1cGxlKGdlbnMuaW5kZXgoeCkgZm9yIHggaW4gc2VsZi52YXJpYWJsZXMo KSksKQorIAorLSAgICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCkgbm9leGNl cHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdodCwgaW50IG9wKToKKyAgICAgICAg ICIiIgorICAgICAgICAgQ29tcGFyZSBCb29sZWFuTW9ub21pYWwgb2JqZWN0cy4KKyAKK0BAIC0y NjMzLDcgKzI2MzMsNyBAQCBjZGVmIGNsYXNzIEJvb2xlYW5Nb25vbWlhbChNb25vaWRFbGVtZW50 KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIG5ld19CTUlfZnJvbV9Cb29sZWFuTW9u b21pYWwoc2VsZikKKyAKKy0gICAgY3BkZWYgX211bF8obGVmdCwgcmlnaHQpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBfbXVsXyhsZWZ0LCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIE11 bHRpcGx5IHRoaXMgYm9vbGVhbiBtb25vbWlhbCB3aXRoIGFub3RoZXIgYm9vbGVhbiBtb25vbWlh bC4KKyAKK0BAIC0yODA1LDcgKzI4MDUsNyBAQCBjZGVmIGNsYXNzIEJvb2xlYW5Nb25vbWlhbChN b25vaWRFbGVtZW50KToKKyAjCisgIyMjCisgCistY2RlZiBpbmxpbmUgQm9vbGVhbk1vbm9taWFs IG5ld19CTShwYXJlbnQsIEJvb2xlYW5Qb2x5bm9taWFsUmluZyByaW5nKSBub2V4Y2VwdDoKKytj ZGVmIGlubGluZSBCb29sZWFuTW9ub21pYWwgbmV3X0JNKHBhcmVudCwgQm9vbGVhblBvbHlub21p YWxSaW5nIHJpbmcpOgorICAgICBjZGVmIEJvb2xlYW5Nb25vbWlhbCBtCisgICAgIG0gPSA8Qm9v bGVhbk1vbm9taWFsPkJvb2xlYW5Nb25vbWlhbC5fX25ld19fKEJvb2xlYW5Nb25vbWlhbCkKKyAg ICAgbS5fcGFyZW50ID0gcGFyZW50CitAQCAtMjgxMywxMyArMjgxMywxMyBAQCBjZGVmIGlubGlu ZSBCb29sZWFuTW9ub21pYWwgbmV3X0JNKHBhcmVudCwgQm9vbGVhblBvbHlub21pYWxSaW5nIHJp bmcpIG5vZXhjZXB0OgorICAgICByZXR1cm4gbQorIAorIGNkZWYgaW5saW5lIEJvb2xlYW5Nb25v bWlhbCBuZXdfQk1fZnJvbV9QQk1vbm9tKHBhcmVudCwKKy0gICAgICAgIEJvb2xlYW5Qb2x5bm9t aWFsUmluZyByaW5nLCBQQk1vbm9tIGp1aWNlKSBub2V4Y2VwdDoKKysgICAgICAgIEJvb2xlYW5Q b2x5bm9taWFsUmluZyByaW5nLCBQQk1vbm9tIGp1aWNlKToKKyAgICAgY2RlZiBCb29sZWFuTW9u b21pYWwgbSA9IG5ld19CTShwYXJlbnQsIHJpbmcpCisgICAgIG0uX3BibW9ub20gPSBqdWljZQor ICAgICByZXR1cm4gbQorIAorIGNkZWYgaW5saW5lIEJvb2xlYW5Nb25vbWlhbCBuZXdfQk1fZnJv bV9QQlZhcihwYXJlbnQsCistICAgICAgICBCb29sZWFuUG9seW5vbWlhbFJpbmcgcmluZywgUEJW YXIganVpY2UpIG5vZXhjZXB0OgorKyAgICAgICAgQm9vbGVhblBvbHlub21pYWxSaW5nIHJpbmcs IFBCVmFyIGp1aWNlKToKKyAgICAgY2RlZiBCb29sZWFuTW9ub21pYWwgbSA9IG5ld19CTShwYXJl bnQsIHJpbmcpCisgICAgIG0uX3BibW9ub20gPSBQQk1vbm9tKGp1aWNlKQorICAgICByZXR1cm4g bQorQEAgLTI4NjEsNyArMjg2MSw3IEBAIGNkZWYgY2xhc3MgQm9vbGVhbk1vbm9taWFsVmFyaWFi bGVJdGVyYXRvcjoKKyAgICAgICAgIHJldHVybiBuZXdfQk1fZnJvbV9QQlZhcihzZWxmLnBhcmVu dCwgc2VsZi5fcmluZywgdmFsdWUpCisgCisgY2RlZiBpbmxpbmUgQm9vbGVhbk1vbm9taWFsVmFy aWFibGVJdGVyYXRvciBuZXdfQk1WSV9mcm9tX0Jvb2xlYW5Nb25vbWlhbCgKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgQm9vbGVhbk1vbm9taWFsIG1vbm9tKSBub2V4Y2VwdDoKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQm9vbGVhbk1vbm9taWFsIG1vbm9tKToKKyAgICAgIiIi CisgICAgIENvbnN0cnVjdCBhIG5ldyBpdGVyYXRvciBvdmVyIHRoZSB2YXJpYWJsZSBpbmRpY2Vz IG9mIGEgYm9vbGVhbgorICAgICBtb25vbWlhbC4KK0BAIC0yOTEyLDcgKzI5MTIsNyBAQCBjZGVm IGNsYXNzIEJvb2xlYW5Nb25vbWlhbEl0ZXJhdG9yOgorICAgICAgICAgcmV0dXJuIHNlbGYucGJp bmRbdmFsdWVdCisgCisgCistY2RlZiBpbmxpbmUgQm9vbGVhbk1vbm9taWFsSXRlcmF0b3IgbmV3 X0JNSV9mcm9tX0Jvb2xlYW5Nb25vbWlhbChCb29sZWFuTW9ub21pYWwgbW9ub20pIG5vZXhjZXB0 OgorK2NkZWYgaW5saW5lIEJvb2xlYW5Nb25vbWlhbEl0ZXJhdG9yIG5ld19CTUlfZnJvbV9Cb29s ZWFuTW9ub21pYWwoQm9vbGVhbk1vbm9taWFsIG1vbm9tKToKKyAgICAgIiIiCisgICAgIENvbnN0 cnVjdCBhIG5ldyBCb29sZWFuTW9ub21pYWxJdGVyYXRvcgorICAgICAiIiIKK0BAIC0zMDE2LDcg KzMwMTYsNyBAQCBjZGVmIGNsYXNzIEJvb2xlYW5Qb2x5bm9taWFsKE1Qb2x5bm9taWFsKToKKyAg ICAgICAgIFIgPSBzZWxmLnBhcmVudCgpLmNvdmVyX3JpbmcoKQorICAgICAgICAgcmV0dXJuIFIo c2VsZikuX2xhdGV4XygpCisgCistICAgIGNwZGVmIF9hZGRfKGxlZnQsIHJpZ2h0KSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgX2FkZF8obGVmdCwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAg ICBFWEFNUExFUzo6CisgCitAQCAtMzAzMSw3ICszMDMxLDcgQEAgY2RlZiBjbGFzcyBCb29sZWFu UG9seW5vbWlhbChNUG9seW5vbWlhbCk6CisgICAgICAgICBwLl9wYnBvbHkuaWFkZCgoPEJvb2xl YW5Qb2x5bm9taWFsPnJpZ2h0KS5fcGJwb2x5KQorICAgICAgICAgcmV0dXJuIHAKKyAKKy0gICAg Y3BkZWYgX3N1Yl8obGVmdCwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc3ViXyhsZWZ0 LCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0zMDQz LDcgKzMwNDMsNyBAQCBjZGVmIGNsYXNzIEJvb2xlYW5Qb2x5bm9taWFsKE1Qb2x5bm9taWFsKToK KyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIGxlZnQuX2FkZF8ocmlnaHQpCisgCistICAg IGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IGxlZnQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBf bG11bF8oc2VsZiwgRWxlbWVudCBsZWZ0KToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBM RVM6OgorIAorQEAgLTMwNjYsNyArMzA2Niw3IEBAIGNkZWYgY2xhc3MgQm9vbGVhblBvbHlub21p YWwoTVBvbHlub21pYWwpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXR1cm4gc2Vs Zi5fcGFyZW50Lnplcm8oKQorIAorLSAgICBjcGRlZiBfbXVsXyhsZWZ0LCByaWdodCkgbm9leGNl cHQ6CisrICAgIGNwZGVmIF9tdWxfKGxlZnQsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAg ICAgRVhBTVBMRVM6OgorIAorQEAgLTMwODEsNyArMzA4MSw3IEBAIGNkZWYgY2xhc3MgQm9vbGVh blBvbHlub21pYWwoTVBvbHlub21pYWwpOgorICAgICAgICAgcC5fcGJwb2x5LmltdWwoKDxCb29s ZWFuUG9seW5vbWlhbD5yaWdodCkuX3BicG9seSkKKyAgICAgICAgIHJldHVybiBwCisgCistICAg IGNwZGVmIF9kaXZfKGxlZnQsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2Rpdl8obGVm dCwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMzEx Nyw3ICszMTE3LDcgQEAgY2RlZiBjbGFzcyBCb29sZWFuUG9seW5vbWlhbChNUG9seW5vbWlhbCk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9wYnBvbHkgPT0gcmlnaHQuX3Bi cG9seQorIAorLSAgICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCkgbm9leGNl cHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdodCwgaW50IG9wKToKKyAgICAgICAg ICIiIgorICAgICAgICAgQ29tcGFyZSBsZWZ0IGFuZCByaWdodC4KKyAKK0BAIC00Nzk0LDcgKzQ3 OTQsNyBAQCBjZGVmIGNsYXNzIEJvb2xlYW5Qb2x5bm9taWFsSXRlcmF0b3I6CisgICAgICAgICAg ICAgICAgIHNlbGYub2JqLl9wYXJlbnQsIHZhbHVlKQorIAorIAorLWNkZWYgaW5saW5lIEJvb2xl YW5Qb2x5bm9taWFsSXRlcmF0b3IgbmV3X0JQSV9mcm9tX0Jvb2xlYW5Qb2x5bm9taWFsKEJvb2xl YW5Qb2x5bm9taWFsIGYpIG5vZXhjZXB0OgorK2NkZWYgaW5saW5lIEJvb2xlYW5Qb2x5bm9taWFs SXRlcmF0b3IgbmV3X0JQSV9mcm9tX0Jvb2xlYW5Qb2x5bm9taWFsKEJvb2xlYW5Qb2x5bm9taWFs IGYpOgorICAgICAiIiIKKyAgICAgQ29uc3RydWN0IGEgbmV3IEJvb2xlYW5Nb25vbWlhbEl0ZXJh dG9yCisgICAgICIiIgorQEAgLTUyMTcsMzUgKzUyMTcsMzUgQEAgY2xhc3MgQm9vbGVhblBvbHlu b21pYWxJZGVhbChNUG9seW5vbWlhbElkZWFsKToKKyAjIworIAorIAorLWNkZWYgaW5saW5lIEJv b2xlYW5Qb2x5bm9taWFsIG5ld19CUChCb29sZWFuUG9seW5vbWlhbFJpbmcgcGFyZW50KSBub2V4 Y2VwdDoKKytjZGVmIGlubGluZSBCb29sZWFuUG9seW5vbWlhbCBuZXdfQlAoQm9vbGVhblBvbHlu b21pYWxSaW5nIHBhcmVudCk6CisgICAgIGNkZWYgQm9vbGVhblBvbHlub21pYWwgcAorICAgICBw ID0gPEJvb2xlYW5Qb2x5bm9taWFsPkJvb2xlYW5Qb2x5bm9taWFsLl9fbmV3X18oQm9vbGVhblBv bHlub21pYWwpCisgICAgIHAuX3BhcmVudCA9IHBhcmVudAorICAgICByZXR1cm4gcAorIAorIAor LWNkZWYgaW5saW5lIEJvb2xlYW5Qb2x5bm9taWFsIG5ld19CUF9mcm9tX1BCVmFyKEJvb2xlYW5Q b2x5bm9taWFsUmluZyBwYXJlbnQsIFBCVmFyIGp1aWNlKSBub2V4Y2VwdDoKKytjZGVmIGlubGlu ZSBCb29sZWFuUG9seW5vbWlhbCBuZXdfQlBfZnJvbV9QQlZhcihCb29sZWFuUG9seW5vbWlhbFJp bmcgcGFyZW50LCBQQlZhciBqdWljZSk6CisgICAgIGNkZWYgQm9vbGVhblBvbHlub21pYWwgcCA9 IG5ld19CUChwYXJlbnQpCisgICAgIHAuX3BicG9seSA9IFBCQm9vbGVQb2x5bm9taWFsKGp1aWNl KQorICAgICByZXR1cm4gcAorIAorIAorLWNkZWYgaW5saW5lIEJvb2xlYW5Qb2x5bm9taWFsIG5l d19CUF9mcm9tX1BCUG9seShCb29sZWFuUG9seW5vbWlhbFJpbmcgcGFyZW50LCBQQlBvbHkganVp Y2UpIG5vZXhjZXB0OgorK2NkZWYgaW5saW5lIEJvb2xlYW5Qb2x5bm9taWFsIG5ld19CUF9mcm9t X1BCUG9seShCb29sZWFuUG9seW5vbWlhbFJpbmcgcGFyZW50LCBQQlBvbHkganVpY2UpOgorICAg ICBjZGVmIEJvb2xlYW5Qb2x5bm9taWFsIHAgPSBuZXdfQlAocGFyZW50KQorICAgICBwLl9wYnBv bHkgPSBqdWljZQorICAgICByZXR1cm4gcAorIAorLWNkZWYgaW5saW5lIEJvb2xlYW5Qb2x5bm9t aWFsIG5ld19CUF9mcm9tX1BCTW9ub20oQm9vbGVhblBvbHlub21pYWxSaW5nIHBhcmVudCwgUEJN b25vbSBqdWljZSkgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUgQm9vbGVhblBvbHlub21pYWwgbmV3 X0JQX2Zyb21fUEJNb25vbShCb29sZWFuUG9seW5vbWlhbFJpbmcgcGFyZW50LCBQQk1vbm9tIGp1 aWNlKToKKyAgICAgY2RlZiBCb29sZWFuUG9seW5vbWlhbCBwID0gbmV3X0JQKHBhcmVudCkKKyAg ICAgcC5fcGJwb2x5ID0gUEJCb29sZVBvbHlub21pYWwoanVpY2UpCisgICAgIHJldHVybiBwCisg CistY2RlZiBpbmxpbmUgQm9vbGVhblBvbHlub21pYWwgbmV3X0JQX2Zyb21fUEJTZXQoQm9vbGVh blBvbHlub21pYWxSaW5nIHBhcmVudCwgUEJTZXQganVpY2UpIG5vZXhjZXB0OgorK2NkZWYgaW5s aW5lIEJvb2xlYW5Qb2x5bm9taWFsIG5ld19CUF9mcm9tX1BCU2V0KEJvb2xlYW5Qb2x5bm9taWFs UmluZyBwYXJlbnQsIFBCU2V0IGp1aWNlKToKKyAgICAgY2RlZiBCb29sZWFuUG9seW5vbWlhbCBw ID0gbmV3X0JQKHBhcmVudCkKKyAgICAgcC5fcGJwb2x5ID0gUEJCb29sZVBvbHlub21pYWwoanVp Y2UpCisgICAgIHJldHVybiBwCisgCistY2RlZiBpbmxpbmUgQm9vbGVhblBvbHlub21pYWwgbmV3 X0JQX2Zyb21faW50KEJvb2xlYW5Qb2x5bm9taWFsUmluZyBwYXJlbnQsIGludCBqdWljZSkgbm9l eGNlcHQ6CisrY2RlZiBpbmxpbmUgQm9vbGVhblBvbHlub21pYWwgbmV3X0JQX2Zyb21faW50KEJv b2xlYW5Qb2x5bm9taWFsUmluZyBwYXJlbnQsIGludCBqdWljZSk6CisgICAgIGNkZWYgQm9vbGVh blBvbHlub21pYWwgcCA9IG5ld19CUChwYXJlbnQpCisgICAgIHAuX3BicG9seSA9IFBCQm9vbGVQ b2x5bm9taWFsKGp1aWNlLCBwYXJlbnQuX3BicmluZykKKyAgICAgcmV0dXJuIHAKK0BAIC01ODY5 LDcgKzU4NjksNyBAQCBjZGVmIGNsYXNzIEJvb2xlU2V0OgorICAgICAgICAgcmV0dXJuIHNlbGYu X3Bic2V0LnNpemVEb3VibGUoKQorIAorIAorLWNkZWYgaW5saW5lIEJvb2xlU2V0IG5ld19CU19m cm9tX1BCU2V0KFBCU2V0IGp1aWNlLCBCb29sZWFuUG9seW5vbWlhbFJpbmcgcmluZykgbm9leGNl cHQ6CisrY2RlZiBpbmxpbmUgQm9vbGVTZXQgbmV3X0JTX2Zyb21fUEJTZXQoUEJTZXQganVpY2Us IEJvb2xlYW5Qb2x5bm9taWFsUmluZyByaW5nKToKKyAgICAgIiIiCisgICAgIENvbnN0cnVjdCBh IG5ldyBCb29sZVNldAorICAgICAiIiIKK0BAIC01OTE3LDcgKzU5MTcsNyBAQCBjZGVmIGNsYXNz IEJvb2xlU2V0SXRlcmF0b3I6CisgICAgICAgICByZXR1cm4gbmV3X0JNX2Zyb21fUEJNb25vbShz ZWxmLl9wYXJlbnQsIHNlbGYuX3JpbmcsIHZhbHVlKQorIAorIAorLWNkZWYgaW5saW5lIEJvb2xl U2V0SXRlcmF0b3IgbmV3X0JTSV9mcm9tX1BCU2V0SXRlcihCb29sZVNldCBzKSBub2V4Y2VwdDoK KytjZGVmIGlubGluZSBCb29sZVNldEl0ZXJhdG9yIG5ld19CU0lfZnJvbV9QQlNldEl0ZXIoQm9v bGVTZXQgcyk6CisgICAgICIiIgorICAgICBDb25zdHJ1Y3QgYSBuZXcgQm9vbGVTZXRJdGVyYXRv cgorICAgICAiIiIKK0BAIC02MTM2LDcgKzYxMzYsNyBAQCBjZGVmIGNsYXNzIEJvb2xlYW5Qb2x5 bm9taWFsVmVjdG9yOgorICAgICAgICAgc2VsZi5fdmVjLnB1c2hfYmFjayg8UEJCb29sZVBvbHlu b21pYWw+cCkKKyAKKyBjZGVmIGlubGluZSBCb29sZWFuUG9seW5vbWlhbFZlY3RvciBuZXdfQlBW X2Zyb21fUEJQb2x5VmVjdG9yKAorLSAgICAgICAgQm9vbGVhblBvbHlub21pYWxSaW5nIHBhcmVu dCwgUEJQb2x5VmVjdG9yIGp1aWNlKSBub2V4Y2VwdDoKKysgICAgICAgIEJvb2xlYW5Qb2x5bm9t aWFsUmluZyBwYXJlbnQsIFBCUG9seVZlY3RvciBqdWljZSk6CisgICAgIGNkZWYgQm9vbGVhblBv bHlub21pYWxWZWN0b3IgbQorICAgICBtID0gPEJvb2xlYW5Qb2x5bm9taWFsVmVjdG9yPkJvb2xl YW5Qb2x5bm9taWFsVmVjdG9yLl9fbmV3X18oQm9vbGVhblBvbHlub21pYWxWZWN0b3IpCisgICAg IG0uX3ZlYyA9IGp1aWNlCitAQCAtNjE1OCw3ICs2MTU4LDcgQEAgY2RlZiBjbGFzcyBCb29sZWFu UG9seW5vbWlhbFZlY3Rvckl0ZXJhdG9yOgorIAorIAorIGNkZWYgaW5saW5lIEJvb2xlYW5Qb2x5 bm9taWFsVmVjdG9ySXRlcmF0b3IgbmV3X0JQVklfZnJvbV9QQlBvbHlWZWN0b3JJdGVyKAorLSAg ICAgICAgQm9vbGVhblBvbHlub21pYWxWZWN0b3IgdmVjKSBub2V4Y2VwdDoKKysgICAgICAgIEJv b2xlYW5Qb2x5bm9taWFsVmVjdG9yIHZlYyk6CisgICAgICIiIgorICAgICBDb25zdHJ1Y3QgYSBu ZXcgQm9vbGVhblBvbHlub21pYWxWZWN0b3JJdGVyYXRvcgorICAgICAiIiIKK0BAIC03MDAwLDcg KzcwMDAsNyBAQCBjZGVmIGNsYXNzIEdyb2VibmVyU3RyYXRlZ3k6CisgCisgCisgY2RlZiBjbGFz cyBCb29sZWFuTXVsQWN0aW9uKEFjdGlvbik6CistICAgIGNwZGVmIF9hY3RfKHNlbGYsIGcsIHgp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWN0XyhzZWxmLCBnLCB4KToKKyAgICAgICAgICIiIgor ICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTcwMjUsNyArNzAyNSw3IEBAIGNkZWYgY2xhc3Mg Qm9vbGVhbk11bEFjdGlvbihBY3Rpb24pOgorIAorIAorIGNkZWYgaW5saW5lIENDdWRkTmF2aWdh dG9yIG5ld19DTl9mcm9tX1BCTmF2aWdhdG9yKFBCTmF2aWdhdG9yIGp1aWNlLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QqIHBi aW5kKSBub2V4Y2VwdDoKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQeV9zc2l6ZV90KiBwYmluZCk6CisgICAgICIiIgorICAgICBDb25zdHJ1Y3Qg YSBuZXcgQ0N1ZGROYXZpZ2F0b3IKKyAgICAgIiIiCitAQCAtNzU2MCw3ICs3NTYwLDcgQEAgY2Rl ZiBsb25nIFBCUmluZ19pZGVudGlmaWVyKFBCUmluZyBwYnJpbmcpIG5vZXhjZXB0OgorICAgICBy ZXR1cm4gX2hhc2gKKyAKKyAKKy1jZGVmIG9iamVjdCBUZXJtT3JkZXJfZnJvbV9QQlJpbmcoUEJS aW5nIF9yaW5nKSBub2V4Y2VwdDoKKytjZGVmIG9iamVjdCBUZXJtT3JkZXJfZnJvbV9QQlJpbmco UEJSaW5nIF9yaW5nKToKKyAgICAgY2RlZiBpbnQgbiA9IF9yaW5nLm5WYXJpYWJsZXMoKQorICAg ICBwYl9iYXNlX29yZGVyX2NvZGUgPSBfcmluZy5vcmRlcmluZygpLmdldEJhc2VPcmRlckNvZGUo KQorICAgICBvcmRlcl9zdHIgPSBpbnZfb3JkZXJfZGljdFtwYl9iYXNlX29yZGVyX2NvZGVdCitA QCAtNzU4Miw3ICs3NTgyLDcgQEAgY2RlZiBvYmplY3QgVGVybU9yZGVyX2Zyb21fUEJSaW5nKFBC UmluZyBfcmluZykgbm9leGNlcHQ6CisgICAgIHJldHVybiBUCisgCisgCistY2RlZiBCb29sZWFu UG9seW5vbWlhbFJpbmcgQm9vbGVhblBvbHlub21pYWxSaW5nX2Zyb21fUEJSaW5nKFBCUmluZyBf cmluZykgbm9leGNlcHQ6CisrY2RlZiBCb29sZWFuUG9seW5vbWlhbFJpbmcgQm9vbGVhblBvbHlu b21pYWxSaW5nX2Zyb21fUEJSaW5nKFBCUmluZyBfcmluZyk6CisgICAgICIiIgorICAgICBHZXQg Qm9vbGVhblBvbHlub21pYWxSaW5nIGZyb20gQysrLWltcGxlbWVudGF0aW9uCisgICAgICIiIgor QEAgLTc4OTksNyArNzg5OSw3IEBAIGNkZWYgY2xhc3MgQm9vbGVDb25zdGFudDoKKyAgICAgICAg IHJldHVybiBzZWxmLl9wYmNvbnN0Lmhhc0NvbnN0YW50UGFydCgpCisgCisgCistY2RlZiBvYmpl Y3QgcGJfYmxvY2tfb3JkZXIobiwgb3JkZXJfc3RyLCBibG9ja3MpIG5vZXhjZXB0OgorK2NkZWYg b2JqZWN0IHBiX2Jsb2NrX29yZGVyKG4sIG9yZGVyX3N0ciwgYmxvY2tzKToKKyAgICAgVCA9IFtU ZXJtT3JkZXIob3JkZXJfc3RyLCBibG9ja2VuZCAtIGJsb2Nrc3RhcnQsIGZvcmNlPVRydWUpCisg ICAgICAgICAgZm9yIChibG9ja3N0YXJ0LCBibG9ja2VuZCkgaW4gemlwKFswXSArIGJsb2Nrcywg YmxvY2tzICsgW25dKV0KKyAgICAgaWYgVDoKK0BAIC03OTEwLDcgKzc5MTAsNyBAQCBjZGVmIG9i amVjdCBwYl9ibG9ja19vcmRlcihuLCBvcmRlcl9zdHIsIGJsb2Nrcykgbm9leGNlcHQ6CisgICAg IHJldHVybiBvcmRlcl9zdHIKKyAKKyAKKy1jcGRlZiBvYmplY3QgVGVybU9yZGVyX2Zyb21fcGJf b3JkZXIoaW50IG4sIG9yZGVyLCBibG9ja3MpIG5vZXhjZXB0OgorK2NwZGVmIG9iamVjdCBUZXJt T3JkZXJfZnJvbV9wYl9vcmRlcihpbnQgbiwgb3JkZXIsIGJsb2Nrcyk6CisgICAgIGlmIG5vdCBp c2luc3RhbmNlKG9yZGVyLCBzdHIpOgorICAgICAgICAgaWYgb3JkZXIgPT0gcGJibG9ja19kbGV4 OgorICAgICAgICAgICAgIG9yZGVyX3N0ciA9IHBiX2Jsb2NrX29yZGVyKG4sICJkZWdsZXgiLCBi bG9ja3MpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wbHVyYWwucHhk IGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wbHVyYWwucHhkCitpbmRleCAwNmI0OGM3Mzdm My4uYTIxZDg2ZWVjMWYgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3Bs dXJhbC5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcGx1cmFsLnB4ZAorQEAg LTMyLDE0ICszMiwxNCBAQCBjZGVmIGNsYXNzIEV4dGVyaW9yQWxnZWJyYV9wbHVyYWwoTkNQb2x5 bm9taWFsUmluZ19wbHVyYWwpOgorIAorIGNkZWYgY2xhc3MgTkNQb2x5bm9taWFsX3BsdXJhbChS aW5nRWxlbWVudCk6CisgICAgIGNkZWYgcG9seSAqX3BvbHkKKy0gICAgY3BkZWYgX2FkZF8oc2Vs Ziwgb3RoZXIpIG5vZXhjZXB0CistICAgIGNwZGVmIF9tdWxfKHNlbGYsIG90aGVyKSBub2V4Y2Vw dAorLSAgICBjcGRlZiBfcmVwcl9zaG9ydF8oc2VsZikgbm9leGNlcHQKKysgICAgY3BkZWYgX2Fk ZF8oc2VsZiwgb3RoZXIpCisrICAgIGNwZGVmIF9tdWxfKHNlbGYsIG90aGVyKQorKyAgICBjcGRl ZiBfcmVwcl9zaG9ydF8oc2VsZikKKyAgICAgY2RlZiBsb25nIF9oYXNoX2Moc2VsZikgbm9leGNl cHQKKy0gICAgY3BkZWYgaXNfY29uc3RhbnQoc2VsZikgbm9leGNlcHQKKysgICAgY3BkZWYgaXNf Y29uc3RhbnQoc2VsZikKKyAjICAgIGNwZGVmIF9ob21vZ2VuaXplKHNlbGYsIGludCB2YXIpCisg CistY2RlZiBOQ1BvbHlub21pYWxfcGx1cmFsIG5ld19OQ1AoTkNQb2x5bm9taWFsUmluZ19wbHVy YWwgcGFyZW50LCBwb2x5ICpqdWljZSkgbm9leGNlcHQKKytjZGVmIE5DUG9seW5vbWlhbF9wbHVy YWwgbmV3X05DUChOQ1BvbHlub21pYWxSaW5nX3BsdXJhbCBwYXJlbnQsIHBvbHkgKmp1aWNlKQor IAorLWNwZGVmIE1Qb2x5bm9taWFsUmluZ19saWJzaW5ndWxhciBuZXdfQ1JpbmcoUmluZ1dyYXAg cncsIGJhc2VfcmluZykgbm9leGNlcHQKKy1jcGRlZiBOQ1BvbHlub21pYWxSaW5nX3BsdXJhbCBu ZXdfTlJpbmcoUmluZ1dyYXAgcncsIGJhc2VfcmluZykgbm9leGNlcHQKKytjcGRlZiBNUG9seW5v bWlhbFJpbmdfbGlic2luZ3VsYXIgbmV3X0NSaW5nKFJpbmdXcmFwIHJ3LCBiYXNlX3JpbmcpCisr Y3BkZWYgTkNQb2x5bm9taWFsUmluZ19wbHVyYWwgbmV3X05SaW5nKFJpbmdXcmFwIHJ3LCBiYXNl X3JpbmcpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wbHVyYWwucHl4 IGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wbHVyYWwucHl4CitpbmRleCA0ZmI3MTA0Y2Nl Ni4uZjMzZDRlNjI2MzQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3Bs dXJhbC5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcGx1cmFsLnB5eAorQEAg LTU2NCw3ICs1NjQsNyBAQCBjZGVmIGNsYXNzIE5DUG9seW5vbWlhbFJpbmdfcGx1cmFsKFJpbmcp OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBhcyBub25jb21tdXRh dGl2ZSBwb2x5bm9taWFsIikgICMgPz8/CisgICAgICAgICByZXR1cm4gbmV3X05DUChzZWxmLCBf cCkKKyAKKy0gICAgY3BkZWYgX2NvZXJjZV9tYXBfZnJvbV8oc2VsZiwgUykgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIF9jb2VyY2VfbWFwX2Zyb21fKHNlbGYsIFMpOgorICAgICAgICAgIiIiCisgICAg ICAgICBUaGUgb25seSB0aGluZ3MgdGhhdCBjb2VyY2UgaW50byB0aGlzIHJpbmcgYXJlOgorIAor QEAgLTE0NjQsNyArMTQ2NCw3IEBAIGNkZWYgY2xhc3MgTkNQb2x5bm9taWFsX3BsdXJhbChSaW5n RWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9oYXNoX2MoKQor IAorLSAgICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCkgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdodCwgaW50IG9wKToKKyAgICAgICAgICIiIgor ICAgICAgICAgQ29tcGFyZSBsZWZ0IGFuZCByaWdodC4KKyAKK0BAIC0xNTE1LDcgKzE1MTUsNyBA QCBjZGVmIGNsYXNzIE5DUG9seW5vbWlhbF9wbHVyYWwoUmluZ0VsZW1lbnQpOgorICAgICAgICAg Y2RlZiByaW5nICpyID0gKDxOQ1BvbHlub21pYWxSaW5nX3BsdXJhbD5sZWZ0Ll9wYXJlbnQpLl9y aW5nCisgICAgICAgICByZXR1cm4gcmljaF90b19ib29sKG9wLCBzaW5ndWxhcl9wb2x5bm9taWFs X2NtcChwLCBxLCByKSkKKyAKKy0gICAgY3BkZWYgX2FkZF8obGVmdCwgcmlnaHQpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBfYWRkXyhsZWZ0LCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAg IEFkZHMgbGVmdCBhbmQgcmlnaHQuCisgCitAQCAtMTUzNCw3ICsxNTM0LDcgQEAgY2RlZiBjbGFz cyBOQ1BvbHlub21pYWxfcGx1cmFsKFJpbmdFbGVtZW50KToKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICg8TkNQb2x5bm9taWFsUmluZ19wbHVyYWw+bGVmdC5fcGFyZW50KS5fcmlu ZykKKyAgICAgICAgIHJldHVybiBuZXdfTkNQKCg8TkNQb2x5bm9taWFsUmluZ19wbHVyYWw+bGVm dC5fcGFyZW50KSwgX3ApCisgCistICAgIGNwZGVmIF9zdWJfKGxlZnQsIHJpZ2h0KSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgX3N1Yl8obGVmdCwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAg ICBTdWJ0cmFjdCBsZWZ0IGFuZCByaWdodC4KKyAKK0BAIC0xNTU2LDcgKzE1NTYsNyBAQCBjZGVm IGNsYXNzIE5DUG9seW5vbWlhbF9wbHVyYWwoUmluZ0VsZW1lbnQpOgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgX3JpbmcpCisgICAgICAgICByZXR1cm4gbmV3X05DUCgoPE5DUG9s eW5vbWlhbFJpbmdfcGx1cmFsPmxlZnQuX3BhcmVudCksIF9wKQorIAorLSAgICBjcGRlZiBfbG11 bF8oc2VsZiwgRWxlbWVudCBsZWZ0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2xtdWxfKHNlbGYs IEVsZW1lbnQgbGVmdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIE11bHRpcGx5IGBgc2VsZmBg IHdpdGggYSBiYXNlIHJpbmcgZWxlbWVudC4KKyAKK0BAIC0xNTg2LDcgKzE1ODYsNyBAQCBjZGVm IGNsYXNzIE5DUG9seW5vbWlhbF9wbHVyYWwoUmluZ0VsZW1lbnQpOgorICAgICAgICAgc2luZ3Vs YXJfcG9seW5vbWlhbF9ybXVsKCZfcCwgc2VsZi5fcG9seSwgbGVmdCwgX3JpbmcpCisgICAgICAg ICByZXR1cm4gbmV3X05DUCgoPE5DUG9seW5vbWlhbFJpbmdfcGx1cmFsPnNlbGYuX3BhcmVudCks X3ApCisgCistICAgIGNwZGVmIF9tdWxfKGxlZnQsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgX211bF8obGVmdCwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBNdWx0aXBseSBs ZWZ0IGFuZCByaWdodC4KKyAKK0BAIC0xNjE3LDcgKzE2MTcsNyBAQCBjZGVmIGNsYXNzIE5DUG9s eW5vbWlhbF9wbHVyYWwoUmluZ0VsZW1lbnQpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKDxOQ1BvbHlub21pYWxSaW5nX3BsdXJhbD5sZWZ0Ll9wYXJlbnQpLl9yaW5nKQorICAg ICAgICAgcmV0dXJuIG5ld19OQ1AoKDxOQ1BvbHlub21pYWxSaW5nX3BsdXJhbD5sZWZ0Ll9wYXJl bnQpLF9wKQorIAorLSAgICBjcGRlZiBfZGl2XyhsZWZ0LCByaWdodCkgbm9leGNlcHQ6CisrICAg IGNwZGVmIF9kaXZfKGxlZnQsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgRGl2aWRl IGxlZnQgYnkgcmlnaHQKKyAKK0BAIC0xNzk5LDcgKzE3OTksNyBAQCBjZGVmIGNsYXNzIE5DUG9s eW5vbWlhbF9wbHVyYWwoUmluZ0VsZW1lbnQpOgorICAgICAgICAgcyA9IHNpbmd1bGFyX3BvbHlu b21pYWxfc3RyKHNlbGYuX3BvbHksIF9yaW5nKQorICAgICAgICAgcmV0dXJuIHMKKyAKKy0gICAg Y3BkZWYgX3JlcHJfc2hvcnRfKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmVwcl9zaG9y dF8oc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRoaXMgaXMgYSBmYXN0ZXIgYnV0IGxl c3MgcHJldHR5IHdheSB0byBwcmludCBwb2x5bm9taWFscy4gSWYKKyAgICAgICAgIGF2YWlsYWJs ZSBpdCB1c2VzIHRoZSBzaG9ydCBTSU5HVUxBUiBub3RhdGlvbi4KK0BAIC0yNTgxLDcgKzI1ODEs NyBAQCBjZGVmIGNsYXNzIE5DUG9seW5vbWlhbF9wbHVyYWwoUmluZ0VsZW1lbnQpOgorICAgICAg ICAgICAgICAgICAgICAgICAgICAoPE5DUG9seW5vbWlhbFJpbmdfcGx1cmFsPnNlbGYuX3BhcmVu dCkuX2Jhc2UpCisgICAgICAgICByZXR1cm4gKDxOQ1BvbHlub21pYWxSaW5nX3BsdXJhbD5zZWxm Ll9wYXJlbnQpLl9iYXNlLl96ZXJvX2VsZW1lbnQKKyAKKy0gICAgY3BkZWYgaXNfY29uc3RhbnQo c2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGlzX2NvbnN0YW50KHNlbGYpOgorICAgICAgICAg IiIiCisgICAgICAgICBSZXR1cm4gYGBUcnVlYGAgaWYgdGhpcyBwb2x5bm9taWFsIGlzIGNvbnN0 YW50LgorIAorQEAgLTI3OTgsNyArMjc5OCw3IEBAIGNkZWYgY2xhc3MgTkNQb2x5bm9taWFsX3Bs dXJhbChSaW5nRWxlbWVudCk6CisgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgCisgY2RlZiBpbmxpbmUgTkNQb2x5 bm9taWFsX3BsdXJhbCBuZXdfTkNQKE5DUG9seW5vbWlhbFJpbmdfcGx1cmFsIHBhcmVudCwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9seSAqanVpY2UpIG5vZXhj ZXB0OgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2x5ICpqdWlj ZSk6CisgICAgICIiIgorICAgICBDb25zdHJ1Y3QgTkNQb2x5bm9taWFsX3BsdXJhbCBmcm9tIHBh cmVudCBhbmQgU0lOR1VMQVIgcG9seS4KKyAKK0BAIC0yODE2LDcgKzI4MTYsNyBAQCBjZGVmIGlu bGluZSBOQ1BvbHlub21pYWxfcGx1cmFsIG5ld19OQ1AoTkNQb2x5bm9taWFsUmluZ19wbHVyYWwg cGFyZW50LAorICAgICByZXR1cm4gcAorIAorIAorLWNwZGVmIE1Qb2x5bm9taWFsUmluZ19saWJz aW5ndWxhciBuZXdfQ1JpbmcoUmluZ1dyYXAgcncsIGJhc2VfcmluZykgbm9leGNlcHQ6CisrY3Bk ZWYgTVBvbHlub21pYWxSaW5nX2xpYnNpbmd1bGFyIG5ld19DUmluZyhSaW5nV3JhcCBydywgYmFz ZV9yaW5nKToKKyAgICAgIiIiCisgICAgIENvbnN0cnVjdCBNUG9seW5vbWlhbFJpbmdfbGlic2lu Z3VsYXIgZnJvbSByaW5nV3JhcCwgYXNzdW1pbmcgdGhlIGdyb3VuZCBmaWVsZCB0byBiZSBiYXNl X3JpbmcKKyAKK0BAIC0yODg2LDcgKzI4ODYsNyBAQCBjcGRlZiBNUG9seW5vbWlhbFJpbmdfbGli c2luZ3VsYXIgbmV3X0NSaW5nKFJpbmdXcmFwIHJ3LCBiYXNlX3JpbmcpIG5vZXhjZXB0OgorICAg ICByZXR1cm4gc2VsZgorIAorIAorLWNwZGVmIE5DUG9seW5vbWlhbFJpbmdfcGx1cmFsIG5ld19O UmluZyhSaW5nV3JhcCBydywgYmFzZV9yaW5nKSBub2V4Y2VwdDoKKytjcGRlZiBOQ1BvbHlub21p YWxSaW5nX3BsdXJhbCBuZXdfTlJpbmcoUmluZ1dyYXAgcncsIGJhc2VfcmluZyk6CisgICAgICIi IgorICAgICBDb25zdHJ1Y3QgTkNQb2x5bm9taWFsUmluZ19wbHVyYWwgZnJvbSByaW5nV3JhcCwg YXNzdW1pbmcgdGhlIGdyb3VuZCBmaWVsZCB0byBiZSBiYXNlX3JpbmcKKyAKK2RpZmYgLS1naXQg YS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlkaWN0LnB4ZCBiL3NyYy9zYWdlL3Jpbmdz L3BvbHlub21pYWwvcG9seWRpY3QucHhkCitpbmRleCA0MzJhZTdkOGM0Ny4uNGVjNzc2NGVhNjgg MTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlkaWN0LnB4ZAorKysr IGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5ZGljdC5weGQKK0BAIC0xLDggKzEsOCBA QAorIGNkZWYgY2xhc3MgUG9seURpY3Q6CisgICAgIGNkZWYgZGljdCBfX3JlcG4KKyAKKy0gICAg Y2RlZiBQb2x5RGljdCBfbmV3KHNlbGYsIGRpY3QgcGRpY3QpIG5vZXhjZXB0CistICAgIGNwZGVm IHJlbW92ZV96ZXJvcyhzZWxmLCB6ZXJvX3Rlc3Q9Kikgbm9leGNlcHQKKysgICAgY2RlZiBQb2x5 RGljdCBfbmV3KHNlbGYsIGRpY3QgcGRpY3QpCisrICAgIGNwZGVmIHJlbW92ZV96ZXJvcyhzZWxm LCB6ZXJvX3Rlc3Q9KikKKyAKKyAKKyBjZGVmIGNsYXNzIEVUdXBsZToKK0BAIC0xMSw3ICsxMSw3 IEBAIGNkZWYgY2xhc3MgRVR1cGxlOgorICAgICBjZGVmIGludCAqX2RhdGEKKyAKKyAgICAgY2Rl ZiBzaXplX3QgZ2V0X3Bvc2l0aW9uKHNlbGYsIHNpemVfdCBpLCBzaXplX3Qgc3RhcnQsIHNpemVf dCBlbmQpIG5vZXhjZXB0CistICAgIGNkZWYgRVR1cGxlIF9uZXcoc2VsZikgbm9leGNlcHQKKysg ICAgY2RlZiBFVHVwbGUgX25ldyhzZWxmKQorICAgICBjZGVmIGludCBnZXRfZXhwKHNlbGYsIHNp emVfdCBpKSBub2V4Y2VwdAorIAorICAgICBjcGRlZiBpbnQgdW53ZWlnaHRlZF9kZWdyZWUoc2Vs ZikgZXhjZXB0ICoKK0BAIC0xOSwyNCArMTksMjQgQEAgY2RlZiBjbGFzcyBFVHVwbGU6CisgICAg IGNwZGVmIGludCB1bndlaWdodGVkX3F1b3RpZW50X2RlZ3JlZShzZWxmLCBFVHVwbGUgb3RoZXIp IGV4Y2VwdCAqCisgICAgIGNwZGVmIGludCB3ZWlnaHRlZF9xdW90aWVudF9kZWdyZWUoc2VsZiwg RVR1cGxlIG90aGVyLCB0dXBsZSB3KSBleGNlcHQgKgorIAorLSAgICBjcGRlZiBFVHVwbGUgZWFk ZChzZWxmLCBFVHVwbGUgb3RoZXIpIG5vZXhjZXB0CistICAgIGNwZGVmIEVUdXBsZSBlc3ViKHNl bGYsIEVUdXBsZSBvdGhlcikgbm9leGNlcHQKKy0gICAgY3BkZWYgRVR1cGxlIGVtdWwoc2VsZiwg aW50IGZhY3Rvcikgbm9leGNlcHQKKy0gICAgY3BkZWYgRVR1cGxlIGVtaW4oc2VsZiwgRVR1cGxl IG90aGVyKSBub2V4Y2VwdAorLSAgICBjcGRlZiBFVHVwbGUgZW1heChzZWxmLCBFVHVwbGUgb3Ro ZXIpIG5vZXhjZXB0CistICAgIGNwZGVmIEVUdXBsZSBlYWRkX3Aoc2VsZiwgaW50IG90aGVyLCBz aXplX3QgcG9zKSBub2V4Y2VwdAorLSAgICBjcGRlZiBFVHVwbGUgZWFkZF9zY2FsZWQoc2VsZiwg RVR1cGxlIG90aGVyLCBpbnQgc2NhbGFyKSBub2V4Y2VwdAorKyAgICBjcGRlZiBFVHVwbGUgZWFk ZChzZWxmLCBFVHVwbGUgb3RoZXIpCisrICAgIGNwZGVmIEVUdXBsZSBlc3ViKHNlbGYsIEVUdXBs ZSBvdGhlcikKKysgICAgY3BkZWYgRVR1cGxlIGVtdWwoc2VsZiwgaW50IGZhY3RvcikKKysgICAg Y3BkZWYgRVR1cGxlIGVtaW4oc2VsZiwgRVR1cGxlIG90aGVyKQorKyAgICBjcGRlZiBFVHVwbGUg ZW1heChzZWxmLCBFVHVwbGUgb3RoZXIpCisrICAgIGNwZGVmIEVUdXBsZSBlYWRkX3Aoc2VsZiwg aW50IG90aGVyLCBzaXplX3QgcG9zKQorKyAgICBjcGRlZiBFVHVwbGUgZWFkZF9zY2FsZWQoc2Vs ZiwgRVR1cGxlIG90aGVyLCBpbnQgc2NhbGFyKQorICAgICBjcGRlZiBpbnQgZG90cHJvZChzZWxm LCBFVHVwbGUgb3RoZXIpIGV4Y2VwdCAqCistICAgIGNwZGVmIEVUdXBsZSBlc2NhbGFyX2Rpdihz ZWxmLCBpbnQgbikgbm9leGNlcHQKKy0gICAgY3BkZWYgRVR1cGxlIGRpdmlkZV9ieV9nY2Qoc2Vs ZiwgRVR1cGxlIG90aGVyKSBub2V4Y2VwdAorLSAgICBjcGRlZiBFVHVwbGUgZGl2aWRlX2J5X3Zh cihzZWxmLCBzaXplX3QgcG9zKSBub2V4Y2VwdAorKyAgICBjcGRlZiBFVHVwbGUgZXNjYWxhcl9k aXYoc2VsZiwgaW50IG4pCisrICAgIGNwZGVmIEVUdXBsZSBkaXZpZGVfYnlfZ2NkKHNlbGYsIEVU dXBsZSBvdGhlcikKKysgICAgY3BkZWYgRVR1cGxlIGRpdmlkZV9ieV92YXIoc2VsZiwgc2l6ZV90 IHBvcykKKyAgICAgY3BkZWYgYmludCBkaXZpZGVzKHNlbGYsIEVUdXBsZSBvdGhlcikgZXhjZXB0 ICoKKyAgICAgY3BkZWYgYmludCBpc19jb25zdGFudChzZWxmKSBub2V4Y2VwdAorICAgICBjcGRl ZiBiaW50IGlzX211bHRpcGxlX29mKHNlbGYsIGludCBuKSBleGNlcHQgKgorLSAgICBjcGRlZiBs aXN0IG5vbnplcm9fcG9zaXRpb25zKHNlbGYsIGJpbnQgc29ydD0qKSBub2V4Y2VwdAorLSAgICBj cGRlZiBjb21tb25fbm9uemVyb19wb3NpdGlvbnMoc2VsZiwgRVR1cGxlIG90aGVyLCBiaW50IHNv cnQ9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgbGlzdCBub256ZXJvX3ZhbHVlcyhzZWxmLCBiaW50 IHNvcnQ9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgRVR1cGxlIHJldmVyc2VkKHNlbGYpIG5vZXhj ZXB0CisrICAgIGNwZGVmIGxpc3Qgbm9uemVyb19wb3NpdGlvbnMoc2VsZiwgYmludCBzb3J0PSop CisrICAgIGNwZGVmIGNvbW1vbl9ub256ZXJvX3Bvc2l0aW9ucyhzZWxmLCBFVHVwbGUgb3RoZXIs IGJpbnQgc29ydD0qKQorKyAgICBjcGRlZiBsaXN0IG5vbnplcm9fdmFsdWVzKHNlbGYsIGJpbnQg c29ydD0qKQorKyAgICBjcGRlZiBFVHVwbGUgcmV2ZXJzZWQoc2VsZikKKyAKKyBjcGRlZiBpbnQg Z2VuX2luZGV4KFBvbHlEaWN0IHgpIG5vZXhjZXB0CistY3BkZWYgRVR1cGxlIG1vbm9taWFsX2V4 cG9uZW50KFBvbHlEaWN0IHApIG5vZXhjZXB0CisrY3BkZWYgRVR1cGxlIG1vbm9taWFsX2V4cG9u ZW50KFBvbHlEaWN0IHApCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9w b2x5ZGljdC5weXggYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlkaWN0LnB5eAoraW5k ZXggYWYyNGU3ZmYyNDUuLmJmNDJhNjU5YWVhIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3Mv cG9seW5vbWlhbC9wb2x5ZGljdC5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwv cG9seWRpY3QucHl4CitAQCAtNjksNyArNjksNyBAQCBjcGRlZiBpbnQgZ2VuX2luZGV4KFBvbHlE aWN0IHgpIG5vZXhjZXB0OgorICAgICByZXR1cm4gZS5fZGF0YVswXQorIAorIAorLWNwZGVmIEVU dXBsZSBtb25vbWlhbF9leHBvbmVudChQb2x5RGljdCBwKSBub2V4Y2VwdDoKKytjcGRlZiBFVHVw bGUgbW9ub21pYWxfZXhwb25lbnQoUG9seURpY3QgcCk6CisgICAgIHIiIiIKKyAgICAgUmV0dXJu IHRoZSB1bmlxdWUgZXhwb25lbnQgb2YgYGBwYGAgaWYgaXQgaXMgYSBtb25vbWlhbCBvciByYWlz ZSBhIGBgVmFsdWVFcnJvcmBgLgorIAorQEAgLTE4OSwxMiArMTg5LDEyIEBAIGNkZWYgY2xhc3Mg UG9seURpY3Q6CisgICAgICAgICAgICAgaWYgcmVtb3ZlX3plcm86CisgICAgICAgICAgICAgICAg IHNlbGYucmVtb3ZlX3plcm9zKCkKKyAKKy0gICAgY2RlZiBQb2x5RGljdCBfbmV3KHNlbGYsIGRp Y3QgcGRpY3QpIG5vZXhjZXB0OgorKyAgICBjZGVmIFBvbHlEaWN0IF9uZXcoc2VsZiwgZGljdCBw ZGljdCk6CisgICAgICAgICBjZGVmIFBvbHlEaWN0IGFucyA9IFBvbHlEaWN0Ll9fbmV3X18oUG9s eURpY3QpCisgICAgICAgICBhbnMuX19yZXBuID0gcGRpY3QKKyAgICAgICAgIHJldHVybiBhbnMK KyAKKy0gICAgY3BkZWYgcmVtb3ZlX3plcm9zKHNlbGYsIHplcm9fdGVzdD1Ob25lKSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgcmVtb3ZlX3plcm9zKHNlbGYsIHplcm9fdGVzdD1Ob25lKToKKyAgICAg ICAgIHIiIiIKKyAgICAgICAgIFJlbW92ZSB0aGUgZW50cmllcyB3aXRoIHplcm8gY29lZmZpY2ll bnRzLgorIAorQEAgLTE0MzAsNyArMTQzMCw3IEBAIGNkZWYgY2xhc3MgRVR1cGxlOgorICAgICBx dWVzdGlvbiAoYWx0aG91Z2gsIHRoZXJlIGlzIG5vIHF1ZXN0aW9uIHRoYXQgdGhpcyBpcyBtdWNo IGZhc3RlcgorICAgICB0aGFuIHRoZSBwcmlvciB1c2Ugb2YgcHl0aG9uIGRpY3RzKS4KKyAgICAg IiIiCistICAgIGNkZWYgRVR1cGxlIF9uZXcoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgRVR1 cGxlIF9uZXcoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFF1aWNrbHkgY3JlYXRlcyBh IG5ldyBpbml0aWFsaXplZCBFVHVwbGUgd2l0aCB0aGUKKyAgICAgICAgIHNhbWUgbGVuZ3RoIGFz IHNlbGYuCitAQCAtMTk3NSw3ICsxOTc1LDcgQEAgY2RlZiBjbGFzcyBFVHVwbGU6CisgICAgICAg ICAgICAgaW5kMSArPSAyCisgICAgICAgICByZXR1cm4gZGVnCisgCistICAgIGNwZGVmIEVUdXBs ZSBlYWRkKHNlbGYsIEVUdXBsZSBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVUdXBsZSBl YWRkKHNlbGYsIEVUdXBsZSBvdGhlcik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0 aGUgdmVjdG9yIGFkZGl0aW9uIG9mIGBgc2VsZmBgIHdpdGggYGBvdGhlcmBgLgorIAorQEAgLTIw MjUsNyArMjAyNSw3IEBAIGNkZWYgY2xhc3MgRVR1cGxlOgorICAgICAgICAgICAgICAgICByZXN1 bHQuX25vbnplcm8gKz0gMQorICAgICAgICAgcmV0dXJuIHJlc3VsdAorIAorLSAgICBjcGRlZiBF VHVwbGUgZWFkZF9wKHNlbGYsIGludCBvdGhlciwgc2l6ZV90IHBvcykgbm9leGNlcHQ6CisrICAg IGNwZGVmIEVUdXBsZSBlYWRkX3Aoc2VsZiwgaW50IG90aGVyLCBzaXplX3QgcG9zKToKKyAgICAg ICAgICIiIgorICAgICAgICAgQWRkIGBgb3RoZXJgYCB0byBgYHNlbGZgYCBhdCBwb3NpdGlvbiBg YHBvc2BgLgorIAorQEAgLTIxMTMsNyArMjExMyw3IEBAIGNkZWYgY2xhc3MgRVR1cGxlOgorIAor ICAgICAgICAgcmV0dXJuIHJlc3VsdAorIAorLSAgICBjcGRlZiBFVHVwbGUgZWFkZF9zY2FsZWQo c2VsZiwgRVR1cGxlIG90aGVyLCBpbnQgc2NhbGFyKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRVR1 cGxlIGVhZGRfc2NhbGVkKHNlbGYsIEVUdXBsZSBvdGhlciwgaW50IHNjYWxhcik6CisgICAgICAg ICAiIiIKKyAgICAgICAgIFZlY3RvciBhZGRpdGlvbiBvZiBgYHNlbGZgYCB3aXRoIGBgc2NhbGFy ICogb3RoZXJgYC4KKyAKK0BAIC0yMTUyLDcgKzIxNTIsNyBAQCBjZGVmIGNsYXNzIEVUdXBsZToK KyAgICAgICAgICAgICAgICAgcmVzdWx0Ll9ub256ZXJvICs9IDEKKyAgICAgICAgIHJldHVybiBy ZXN1bHQKKyAKKy0gICAgY3BkZWYgRVR1cGxlIGVzdWIoc2VsZiwgRVR1cGxlIG90aGVyKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgRVR1cGxlIGVzdWIoc2VsZiwgRVR1cGxlIG90aGVyKToKKyAgICAg ICAgICIiIgorICAgICAgICAgVmVjdG9yIHN1YnRyYWN0aW9uIG9mIGBgc2VsZmBgIHdpdGggYGBv dGhlcmBgLgorIAorQEAgLTIxOTAsNyArMjE5MCw3IEBAIGNkZWYgY2xhc3MgRVR1cGxlOgorICAg ICAgICAgICAgICAgICByZXN1bHQuX25vbnplcm8gKz0gMQorICAgICAgICAgcmV0dXJuIHJlc3Vs dAorIAorLSAgICBjcGRlZiBFVHVwbGUgZW11bChzZWxmLCBpbnQgZmFjdG9yKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgRVR1cGxlIGVtdWwoc2VsZiwgaW50IGZhY3Rvcik6CisgICAgICAgICAiIiIK KyAgICAgICAgIFNjYWxhciBWZWN0b3IgbXVsdGlwbGljYXRpb24gb2YgYGBzZWxmYGAuCisgCitA QCAtMjIxNCw3ICsyMjE0LDcgQEAgY2RlZiBjbGFzcyBFVHVwbGU6CisgICAgICAgICAgICAgICAg IHJlc3VsdC5fZGF0YVsyICogaW5kICsgMV0gPSBzZWxmLl9kYXRhWzIgKiBpbmQgKyAxXSAqIGZh Y3RvcgorICAgICAgICAgcmV0dXJuIHJlc3VsdAorIAorLSAgICBjcGRlZiBFVHVwbGUgZW1heChz ZWxmLCBFVHVwbGUgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFVHVwbGUgZW1heChzZWxm LCBFVHVwbGUgb3RoZXIpOgorICAgICAgICAgIiIiCisgICAgICAgICBWZWN0b3Igb2YgbWF4aW11 bSBvZiBjb21wb25lbnRzIG9mIGBgc2VsZmBgIGFuZCBgYG90aGVyYGAuCisgCitAQCAtMjI2MSw3 ICsyMjYxLDcgQEAgY2RlZiBjbGFzcyBFVHVwbGU6CisgICAgICAgICAgICAgICAgIHJlc3VsdC5f bm9uemVybyArPSAxCisgICAgICAgICByZXR1cm4gcmVzdWx0CisgCistICAgIGNwZGVmIEVUdXBs ZSBlbWluKHNlbGYsIEVUdXBsZSBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVUdXBsZSBl bWluKHNlbGYsIEVUdXBsZSBvdGhlcik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFZlY3RvciBv ZiBtaW5pbXVtIG9mIGNvbXBvbmVudHMgb2YgYGBzZWxmYGAgYW5kIGBgb3RoZXJgYC4KKyAKK0BA IC0yMzMxLDcgKzIzMzEsNyBAQCBjZGVmIGNsYXNzIEVUdXBsZToKKyAgICAgICAgICAgICByZXN1 bHQgKz0gZXhwMSAqIGV4cDIKKyAgICAgICAgIHJldHVybiByZXN1bHQKKyAKKy0gICAgY3BkZWYg RVR1cGxlIGVzY2FsYXJfZGl2KHNlbGYsIGludCBuKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRVR1 cGxlIGVzY2FsYXJfZGl2KHNlbGYsIGludCBuKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIERp dmlkZSBlYWNoIGV4cG9uZW50IGJ5IGBgbmBgLgorIAorQEAgLTIzNzIsNyArMjM3Miw3IEBAIGNk ZWYgY2xhc3MgRVR1cGxlOgorICAgICAgICAgICAgICAgICByZXN1bHQuX25vbnplcm8gKz0gMQor ICAgICAgICAgcmV0dXJuIHJlc3VsdAorIAorLSAgICBjcGRlZiBFVHVwbGUgZGl2aWRlX2J5X2dj ZChzZWxmLCBFVHVwbGUgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFVHVwbGUgZGl2aWRl X2J5X2djZChzZWxmLCBFVHVwbGUgb3RoZXIpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1 cm4gYGBzZWxmIC8gZ2NkKHNlbGYsIG90aGVyKWBgLgorIAorQEAgLTI0MTUsNyArMjQxNSw3IEBA IGNkZWYgY2xhc3MgRVR1cGxlOgorICAgICAgICAgICAgIGluZDEgKz0gMgorICAgICAgICAgcmV0 dXJuIHJlc3VsdAorIAorLSAgICBjcGRlZiBFVHVwbGUgZGl2aWRlX2J5X3ZhcihzZWxmLCBzaXpl X3QgcG9zKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRVR1cGxlIGRpdmlkZV9ieV92YXIoc2VsZiwg c2l6ZV90IHBvcyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBkaXZpc2lvbiBvZiBg YHNlbGZgYCBieSB0aGUgdmFyaWFibGUgd2l0aCBpbmRleCBgYHBvc2BgLgorIAorQEAgLTI1NDIs NyArMjU0Miw3IEBAIGNkZWYgY2xhc3MgRVR1cGxlOgorICAgICAgICAgICAgICAgICByZXR1cm4g RmFsc2UKKyAgICAgICAgIHJldHVybiBUcnVlCisgCistICAgIGNwZGVmIGxpc3Qgbm9uemVyb19w b3NpdGlvbnMoc2VsZiwgYmludCBzb3J0PUZhbHNlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgbGlz dCBub256ZXJvX3Bvc2l0aW9ucyhzZWxmLCBiaW50IHNvcnQ9RmFsc2UpOgorICAgICAgICAgIiIi CisgICAgICAgICBSZXR1cm4gdGhlIHBvc2l0aW9ucyBvZiBub24temVybyBleHBvbmVudHMgaW4g dGhlIHR1cGxlLgorIAorQEAgLTI1NjEsNyArMjU2MSw3IEBAIGNkZWYgY2xhc3MgRVR1cGxlOgor ICAgICAgICAgY2RlZiBzaXplX3QgaW5kCisgICAgICAgICByZXR1cm4gW3NlbGYuX2RhdGFbMiAq IGluZF0gZm9yIGluZCBpbiByYW5nZShzZWxmLl9ub256ZXJvKV0KKyAKKy0gICAgY3BkZWYgY29t bW9uX25vbnplcm9fcG9zaXRpb25zKHNlbGYsIEVUdXBsZSBvdGhlciwgYmludCBzb3J0PUZhbHNl KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgY29tbW9uX25vbnplcm9fcG9zaXRpb25zKHNlbGYsIEVU dXBsZSBvdGhlciwgYmludCBzb3J0PUZhbHNlKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0 dXJucyBhbiBvcHRpb25hbGx5IHNvcnRlZCBsaXN0IG9mIG5vbiB6ZXJvIHBvc2l0aW9ucyBlaXRo ZXIKKyAgICAgICAgIGluIHNlbGYgb3Igb3RoZXIsIGkuZS4gdGhlIG9ubHkgcG9zaXRpb25zIHRo YXQgbmVlZCB0byBiZQorQEAgLTI1ODQsNyArMjU4NCw3IEBAIGNkZWYgY2xhc3MgRVR1cGxlOgor ICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXR1cm4gcmVzCisgCistICAgIGNwZGVmIGxp c3Qgbm9uemVyb192YWx1ZXMoc2VsZiwgYmludCBzb3J0PVRydWUpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBsaXN0IG5vbnplcm9fdmFsdWVzKHNlbGYsIGJpbnQgc29ydD1UcnVlKToKKyAgICAgICAg ICIiIgorICAgICAgICAgUmV0dXJuIHRoZSBub24temVybyB2YWx1ZXMgb2YgdGhlIHR1cGxlLgor IAorQEAgLTI2MDYsNyArMjYwNiw3IEBAIGNkZWYgY2xhc3MgRVR1cGxlOgorICAgICAgICAgY2Rl ZiBzaXplX3QgaW5kCisgICAgICAgICByZXR1cm4gW3NlbGYuX2RhdGFbMiAqIGluZCArIDFdIGZv ciBpbmQgaW4gcmFuZ2Uoc2VsZi5fbm9uemVybyldCisgCistICAgIGNwZGVmIEVUdXBsZSByZXZl cnNlZChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRVR1cGxlIHJldmVyc2VkKHNlbGYpOgor ICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHJldmVyc2VkIEVUdXBsZSBvZiBgYHNl bGZgYC4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21p YWxfY29tcGlsZWQucHhkIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2Nv bXBpbGVkLnB4ZAoraW5kZXggM2U1YzlmNDYxMWYuLmUxYjExZWMxYTQxIDEwMDY0NAorLS0tIGEv c3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2NvbXBpbGVkLnB4ZAorKysrIGIv c3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2NvbXBpbGVkLnB4ZAorQEAgLTgs MTcgKzgsMTcgQEAgY2RlZiBjbGFzcyBDb21waWxlZFBvbHlub21pYWxGdW5jdGlvbjoKKyAgICAg Y2RlZiBnZW5lcmljX3BkIF9kYWcKKyAgICAgY2RlZiBvYmplY3QgX2NvZWZmcworIAorLSAgICBj ZGVmIG9iamVjdCBfcGFyc2Vfc3RydWN0dXJlKENvbXBpbGVkUG9seW5vbWlhbEZ1bmN0aW9uKSBu b2V4Y2VwdAorLSAgICBjZGVmIGdlbmVyaWNfcGQgX2dldF9nYXAoQ29tcGlsZWRQb2x5bm9taWFs RnVuY3Rpb24sIEJpbmFyeVRyZWUsIGludCkgbm9leGNlcHQKKysgICAgY2RlZiBvYmplY3QgX3Bh cnNlX3N0cnVjdHVyZShDb21waWxlZFBvbHlub21pYWxGdW5jdGlvbikKKysgICAgY2RlZiBnZW5l cmljX3BkIF9nZXRfZ2FwKENvbXBpbGVkUG9seW5vbWlhbEZ1bmN0aW9uLCBCaW5hcnlUcmVlLCBp bnQpCisgICAgIGNkZWYgdm9pZCBfZmlsbF9nYXBzX2JpbmFyeShDb21waWxlZFBvbHlub21pYWxG dW5jdGlvbiwgQmluYXJ5VHJlZSkgbm9leGNlcHQKKy0gICAgY2RlZiBvYmplY3QgZXZhbChDb21w aWxlZFBvbHlub21pYWxGdW5jdGlvbiwgb2JqZWN0KSBub2V4Y2VwdAorKyAgICBjZGVmIG9iamVj dCBldmFsKENvbXBpbGVkUG9seW5vbWlhbEZ1bmN0aW9uLCBvYmplY3QpCisgCisgY2RlZiBjbGFz cyBnZW5lcmljX3BkOgorICAgICBjZGVmIG9iamVjdCB2YWx1ZQorICAgICBjZGVmIGludCByZWZz LCBoaXRzCisgICAgIGNkZWYgaW50IGxhYmVsCisgICAgIGNkZWYgaW50IGV2YWwoc2VsZiwgdmFy cywgY29lZmZzKSBleGNlcHQgLTIKKy0gICAgY2RlZiBnZW5lcmljX3BkIG5vZHVtbWllcyhnZW5l cmljX3BkKSBub2V4Y2VwdAorKyAgICBjZGVmIGdlbmVyaWNfcGQgbm9kdW1taWVzKGdlbmVyaWNf cGQpCisgICAgIGNkZWYgdm9pZCByZXNldChzZWxmKSBub2V4Y2VwdAorIAorIGNkZWYgY2xhc3Mg ZHVtbXlfcGQoZ2VuZXJpY19wZCk6CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5v bWlhbC9wb2x5bm9taWFsX2NvbXBpbGVkLnB5eCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwv cG9seW5vbWlhbF9jb21waWxlZC5weXgKK2luZGV4IDExNDVkZmFlN2VhLi4xYTE0MDA2N2FkMyAx MDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9jb21waWxl ZC5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9jb21waWxl ZC5weXgKK0BAIC0xMTksNyArMTE5LDcgQEAgY2RlZiBjbGFzcyBDb21waWxlZFBvbHlub21pYWxG dW5jdGlvbjoKKyAgICAgZGVmIF9fY2FsbF9fKHNlbGYsIHgpOgorICAgICAgICAgcmV0dXJuIHNl bGYuZXZhbCh4KQorIAorLSAgICBjZGVmIG9iamVjdCBldmFsKENvbXBpbGVkUG9seW5vbWlhbEZ1 bmN0aW9uIHNlbGYsIG9iamVjdCB4KSBub2V4Y2VwdDoKKysgICAgY2RlZiBvYmplY3QgZXZhbChD b21waWxlZFBvbHlub21pYWxGdW5jdGlvbiBzZWxmLCBvYmplY3QgeCk6CisgICAgICAgICBjZGVm IG9iamVjdCB0ZW1wCisgICAgICAgICB0cnk6CisgICAgICAgICAgICAgcGRfZXZhbChzZWxmLl9k YWcsIHgsIHNlbGYuX2NvZWZmcykgICNzZWUgZnVydGhlciBkb3duCitAQCAtMTMwLDcgKzEzMCw3 IEBAIGNkZWYgY2xhc3MgQ29tcGlsZWRQb2x5bm9taWFsRnVuY3Rpb246CisgICAgICAgICAgICAg c2VsZi5fZGFnLnJlc2V0KCkKKyAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IobXNnKQorIAor LSAgICBjZGVmIG9iamVjdCBfcGFyc2Vfc3RydWN0dXJlKENvbXBpbGVkUG9seW5vbWlhbEZ1bmN0 aW9uIHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIG9iamVjdCBfcGFyc2Vfc3RydWN0dXJlKENv bXBpbGVkUG9seW5vbWlhbEZ1bmN0aW9uIHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBM b29wIHRocm91Z2ggdGhlIGNvZWZmaWNpZW50cyBvZiB0aGUgcG9seW5vbWlhbCwgYW5kIGNvbGxl Y3QKKyAgICAgICAgIGNvZWZmaWNpZW50IGdhcCB3aWR0aHMuICBNZWFud2hpbGUsIGNvbnN0cnVj dCB0aGUgZXZhbHVhdGlvbgorQEAgLTE2OSw3ICsxNjksNyBAQCBjZGVmIGNsYXNzIENvbXBpbGVk UG9seW5vbWlhbEZ1bmN0aW9uOgorIAorICAgICAgICAgcmV0dXJuIGdhcHMsIHMKKyAKKy0gICAg Y2RlZiBnZW5lcmljX3BkIF9nZXRfZ2FwKENvbXBpbGVkUG9seW5vbWlhbEZ1bmN0aW9uIHNlbGYs IEJpbmFyeVRyZWUgZ2FwcywgaW50IGdhcCkgbm9leGNlcHQ6CisrICAgIGNkZWYgZ2VuZXJpY19w ZCBfZ2V0X2dhcChDb21waWxlZFBvbHlub21pYWxGdW5jdGlvbiBzZWxmLCBCaW5hcnlUcmVlIGdh cHMsIGludCBnYXApOgorICAgICAgICAgIiIiCisgICAgICAgICBGaW5kIGFuIGVudHJ5IGluIHRo ZSBCaW5hcnlUcmVlIGdhcHMsIGlkZW50aWZpZWQgYnkgdGhlIGludCBnYXAuCisgICAgICAgICBJ ZiBzdWNoIGFuIGVudHJ5IGRvZXMgbm90IGV4aXN0LCBjcmVhdGUgaXQgYW5kIHB1dCBpdCBpbiB0 aGUgdHJlZS4KK0BAIC0zNjcsNyArMzY3LDcgQEAgY2RlZiBjbGFzcyBnZW5lcmljX3BkOgorICAg ICBjZGVmIGludCBldmFsKGdlbmVyaWNfcGQgc2VsZiwgb2JqZWN0IHZhcnMsIG9iamVjdCBjb2Vm ZnMpIGV4Y2VwdCAtMjoKKyAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKyAKKy0g ICAgY2RlZiBnZW5lcmljX3BkIG5vZHVtbWllcyhnZW5lcmljX3BkIHNlbGYpIG5vZXhjZXB0Ogor KyAgICBjZGVmIGdlbmVyaWNfcGQgbm9kdW1taWVzKGdlbmVyaWNfcGQgc2VsZik6CisgICAgICAg ICByZXR1cm4gc2VsZgorIAorICAgICBjZGVmIHZvaWQgcmVzZXQoZ2VuZXJpY19wZCBzZWxmKSBu b2V4Y2VwdDoKK0BAIC0zODEsNyArMzgxLDcgQEAgY2RlZiBjbGFzcyBkdW1teV9wZChnZW5lcmlj X3BkKToKKyAgICAgY2RlZiB2b2lkIGZpbGwoZHVtbXlfcGQgc2VsZiwgZ2VuZXJpY19wZCBsaW5r KSBub2V4Y2VwdDoKKyAgICAgICAgIHNlbGYubGluayA9IGxpbmsKKyAKKy0gICAgY2RlZiBnZW5l cmljX3BkIG5vZHVtbWllcyhkdW1teV9wZCBzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBnZW5l cmljX3BkIG5vZHVtbWllcyhkdW1teV9wZCBzZWxmKToKKyAgICAgICAgICNzb3JyeSBndXlzLCB0 aGlzIGlzIG15IHN0b3AKKyAgICAgICAgIHNlbGYubGluay5yZWZzID0gc2VsZi5yZWZzCisgICAg ICAgICByZXR1cm4gc2VsZi5saW5rLm5vZHVtbWllcygpCitAQCAtNDI2LDcgKzQyNiw3IEBAIGNk ZWYgY2xhc3MgdW5hcnlfcGQoZ2VuZXJpY19wZCk6CisgICAgICAgICBzZWxmLm9wZXJhbmQgPSBv cGVyYW5kCisgICAgICAgICBzZWxmLm9wZXJhbmQucmVmcyArPSAxCisgCistICAgIGNkZWYgZ2Vu ZXJpY19wZCBub2R1bW1pZXMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgZ2VuZXJpY19wZCBu b2R1bW1pZXMoc2VsZik6CisgICAgICAgICBzZWxmLm9wZXJhbmQgPSBzZWxmLm9wZXJhbmQubm9k dW1taWVzKCkKKyAgICAgICAgIHJldHVybiBzZWxmCisgCitAQCAtNDY3LDcgKzQ2Nyw3IEBAIGNk ZWYgY2xhc3MgYmluYXJ5X3BkKGdlbmVyaWNfcGQpOgorICAgICAgICAgc2VsZi5sZWZ0LnJlZnMr PSAxCisgICAgICAgICBzZWxmLnJpZ2h0LnJlZnMrPSAxCisgCistICAgIGNkZWYgZ2VuZXJpY19w ZCBub2R1bW1pZXMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgZ2VuZXJpY19wZCBub2R1bW1p ZXMoc2VsZik6CisgICAgICAgICBzZWxmLmxlZnQgPSBzZWxmLmxlZnQubm9kdW1taWVzKCkKKyAg ICAgICAgIHNlbGYucmlnaHQgPSBzZWxmLnJpZ2h0Lm5vZHVtbWllcygpCisgICAgICAgICByZXR1 cm4gc2VsZgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlh bF9jb21wbGV4X2FyYi5weGQgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxf Y29tcGxleF9hcmIucHhkCitpbmRleCAyOWUzY2M0ZmQ2MS4uZTU0ZDg1ZTk2MWIgMTAwNjQ0Cist LS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfY29tcGxleF9hcmIucHhk CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfY29tcGxleF9hcmIu cHhkCitAQCAtMyw0ICszLDQgQEAgZnJvbSBzYWdlLnJpbmdzLnBvbHlub21pYWwucG9seW5vbWlh bF9lbGVtZW50IGNpbXBvcnQgUG9seW5vbWlhbAorIAorIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9j b21wbGV4X2FyYihQb2x5bm9taWFsKToKKyAgICAgY2RlZiBhY2JfcG9seV9zdHJ1Y3RbMV0gX3Bv bHkgIyBodHRwczovL2dpdGh1Yi5jb20vY3l0aG9uL2N5dGhvbi9pc3N1ZXMvMTk4NAorLSAgICBj ZGVmIFBvbHlub21pYWxfY29tcGxleF9hcmIgX25ldyhzZWxmKSBub2V4Y2VwdAorKyAgICBjZGVm IFBvbHlub21pYWxfY29tcGxleF9hcmIgX25ldyhzZWxmKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdl L3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9jb21wbGV4X2FyYi5weXggYi9zcmMvc2FnZS9y aW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfY29tcGxleF9hcmIucHl4CitpbmRleCA4MWU3OTli N2E4ZC4uZWMyMmUzY2RjNDAgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFs L3BvbHlub21pYWxfY29tcGxleF9hcmIucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9t aWFsL3BvbHlub21pYWxfY29tcGxleF9hcmIucHl4CitAQCAtODcsNyArODcsNyBAQCBjZGVmIGNs YXNzIFBvbHlub21pYWxfY29tcGxleF9hcmIoUG9seW5vbWlhbCk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIGFjYl9wb2x5X2NsZWFyKHNlbGYuX3BvbHkpCisgCistICAgIGNkZWYgUG9seW5vbWlh bF9jb21wbGV4X2FyYiBfbmV3KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIFBvbHlub21pYWxf Y29tcGxleF9hcmIgX25ldyhzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBh IG5ldyBwb2x5bm9taWFsIHdpdGggdGhlIHNhbWUgcGFyZW50IGFzIHRoaXMgb25lLgorICAgICAg ICAgIiIiCitAQCAtMjMxLDEzICsyMzEsMTMgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2NvbXBs ZXhfYXJiKFBvbHlub21pYWwpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc21hbGxJ bnRlZ2VyKGFjYl9wb2x5X2RlZ3JlZShzZWxmLl9wb2x5KSkKKyAKKy0gICAgY2RlZiBnZXRfdW5z YWZlKHNlbGYsIFB5X3NzaXplX3Qgbikgbm9leGNlcHQ6CisrICAgIGNkZWYgZ2V0X3Vuc2FmZShz ZWxmLCBQeV9zc2l6ZV90IG4pOgorICAgICAgICAgY2RlZiBDb21wbGV4QmFsbCByZXMgPSBDb21w bGV4QmFsbC5fX25ld19fKENvbXBsZXhCYWxsKQorICAgICAgICAgcmVzLl9wYXJlbnQgPSBzZWxm Ll9wYXJlbnQuX2Jhc2UKKyAgICAgICAgIGFjYl9wb2x5X2dldF9jb2VmZl9hY2IocmVzLnZhbHVl LCBzZWxmLl9wb2x5LCBuKQorICAgICAgICAgcmV0dXJuIHJlcworIAorLSAgICBjcGRlZiBsaXN0 IGxpc3Qoc2VsZiwgYmludCBjb3B5PVRydWUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBsaXN0IGxp c3Qoc2VsZiwgYmludCBjb3B5PVRydWUpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJu IHRoZSBjb2VmZmljaWVudCBsaXN0IG9mIHRoaXMgcG9seW5vbWlhbC4KKyAKK0BAIC0yNzEsNyAr MjcxLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2NvbXBsZXhfYXJiKFBvbHlub21pYWwpOgor IAorICAgICAjIFJpbmcgYW5kIEV1Y2xpZGVhbiBhcml0aG1ldGljCisgCistICAgIGNwZGVmIF9h ZGRfKHNlbGYsIG90aGVyKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FkZF8oc2VsZiwgb3RoZXIp OgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBzdW0gb2YgdHdvIHBvbHlub21p YWxzLgorIAorQEAgLTI5MSw3ICsyOTEsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfY29tcGxl eF9hcmIoUG9seW5vbWlhbCk6CisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiBy ZXMKKyAKKy0gICAgY3BkZWYgX25lZ18oc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9uZWdf KHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBvcHBvc2l0ZSBvZiB0 aGlzIHBvbHlub21pYWwuCisgCitAQCAtMzA3LDcgKzMwNyw3IEBAIGNkZWYgY2xhc3MgUG9seW5v bWlhbF9jb21wbGV4X2FyYihQb2x5bm9taWFsKToKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAg ICAgcmV0dXJuIHJlcworIAorLSAgICBjcGRlZiBfc3ViXyhzZWxmLCBvdGhlcikgbm9leGNlcHQ6 CisrICAgIGNwZGVmIF9zdWJfKHNlbGYsIG90aGVyKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAg IFJldHVybiB0aGUgZGlmZmVyZW5jZSBvZiB0d28gcG9seW5vbWlhbHMuCisgCitAQCAtMzI3LDcg KzMyNyw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9jb21wbGV4X2FyYihQb2x5bm9taWFsKToK KyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorLSAgICBjcGRlZiBf bXVsXyhzZWxmLCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9tdWxfKHNlbGYsIG90aGVy KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgcHJvZHVjdCBvZiB0d28gcG9s eW5vbWlhbHMuCisgCitAQCAtMzQ4LDcgKzM0OCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9j b21wbGV4X2FyYihQb2x5bm9taWFsKToKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0 dXJuIHJlcworIAorLSAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCBhKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgYSk6CisgICAgICAgICByIiIiCisgICAg ICAgICBURVNUUzo6CisgCitAQCAtMzY4LDcgKzM2OCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlh bF9jb21wbGV4X2FyYihQb2x5bm9taWFsKToKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAg cmV0dXJuIHJlcworIAorLSAgICBjcGRlZiBfcm11bF8oc2VsZiwgRWxlbWVudCBhKSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgX3JtdWxfKHNlbGYsIEVsZW1lbnQgYSk6CisgICAgICAgICByIiIiCisg ICAgICAgICBURVNUUzo6CisgCitAQCAtNDI5LDcgKzQyOSw3IEBAIGNkZWYgY2xhc3MgUG9seW5v bWlhbF9jb21wbGV4X2FyYihQb2x5bm9taWFsKToKKyAKKyAgICAgIyBTeW50YWN0aWMgdHJhbnNm b3JtYXRpb25zCisgCistICAgIGNwZGVmIFBvbHlub21pYWwgdHJ1bmNhdGUoc2VsZiwgbG9uZyBu KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgUG9seW5vbWlhbCB0cnVuY2F0ZShzZWxmLCBsb25nIG4p OgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSB0cnVuY2F0aW9uIHRvIGRlZ3Jl ZSBgbiAtIDFgIG9mIHRoaXMgcG9seW5vbWlhbC4KKyAKK0BAIC00NjAsNyArNDYwLDcgQEAgY2Rl ZiBjbGFzcyBQb2x5bm9taWFsX2NvbXBsZXhfYXJiKFBvbHlub21pYWwpOgorICAgICAgICAgc2ln X29mZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCistICAgIGNkZWYgX2lucGxhY2VfdHJ1bmNh dGUoc2VsZiwgbG9uZyBuKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfaW5wbGFjZV90cnVuY2F0ZShz ZWxmLCBsb25nIG4pOgorICAgICAgICAgaWYgbiA8IDA6CisgICAgICAgICAgICAgbiA9IDAKKyAg ICAgICAgIGFjYl9wb2x5X3RydW5jYXRlKHNlbGYuX3BvbHksIG4pCitAQCAtNTM0LDcgKzUzNCw3 IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9jb21wbGV4X2FyYihQb2x5bm9taWFsKToKKyAKKyAg ICAgIyBUcnVuY2F0ZWQgYW5kIHBvd2VyIHNlcmllcyBhcml0aG1ldGljCisgCistICAgIGNwZGVm IFBvbHlub21pYWwgX211bF90cnVuY18oc2VsZiwgUG9seW5vbWlhbCBvdGhlciwgbG9uZyBuKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgUG9seW5vbWlhbCBfbXVsX3RydW5jXyhzZWxmLCBQb2x5bm9t aWFsIG90aGVyLCBsb25nIG4pOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBw cm9kdWN0IG9mIGBgc2VsZmBgIGFuZCBgYG90aGVyYGAsIHRydW5jYXRlZCBiZWZvcmUgZGVncmVl wqBgbmAuCisgCitAQCAtNTYyLDcgKzU2Miw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9jb21w bGV4X2FyYihQb2x5bm9taWFsKToKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJu IHJlcworIAorLSAgICBjcGRlZiBQb2x5bm9taWFsIGludmVyc2Vfc2VyaWVzX3RydW5jKHNlbGYs IGxvbmcgbikgbm9leGNlcHQ6CisrICAgIGNwZGVmIFBvbHlub21pYWwgaW52ZXJzZV9zZXJpZXNf dHJ1bmMoc2VsZiwgbG9uZyBuKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUg cG93ZXIgc2VyaWVzIGV4cGFuc2lvbiBhdMKgMCBvZiB0aGUgaW52ZXJzZSBvZiB0aGlzCisgICAg ICAgICBwb2x5bm9taWFsLCB0cnVuY2F0ZWQgYmVmb3JlIGRlZ3JlZcKgYG5gLgorQEAgLTU5MCw3 ICs1OTAsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfY29tcGxleF9hcmIoUG9seW5vbWlhbCk6 CisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKKy0gICAgY3BkZWYg UG9seW5vbWlhbCBfcG93ZXJfdHJ1bmMoc2VsZiwgdW5zaWduZWQgbG9uZyBleHBvLCBsb25nIG4p IG5vZXhjZXB0OgorKyAgICBjcGRlZiBQb2x5bm9taWFsIF9wb3dlcl90cnVuYyhzZWxmLCB1bnNp Z25lZCBsb25nIGV4cG8sIGxvbmcgbik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4g YSBwb3dlciBvZiB0aGlzIHBvbHlub21pYWwsIHRydW5jYXRlZCBiZWZvcmUgZGVncmVlwqBgbmAu CisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2Vs ZW1lbnQucHhkIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2VsZW1lbnQu cHhkCitpbmRleCA5YjhiZjQxZmEwNi4uYThmMmNmMzA1N2IgMTAwNjQ0CistLS0gYS9zcmMvc2Fn ZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfZWxlbWVudC5weGQKKysrKyBiL3NyYy9zYWdl L3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9lbGVtZW50LnB4ZAorQEAgLTcsNTggKzcsNTgg QEAgZnJvbSBzYWdlLnJpbmdzLnBvbHlub21pYWwucG9seW5vbWlhbF9jb21waWxlZCBjaW1wb3J0 IENvbXBpbGVkUG9seW5vbWlhbEZ1bmN0aW8KKyAKKyAKKyBjZGVmIGNsYXNzIFBvbHlub21pYWwo Q29tbXV0YXRpdmVQb2x5bm9taWFsKToKKy0gICAgY2RlZiBQb2x5bm9taWFsIF9uZXdfZ2VuZXJp YyhzZWxmLCBsaXN0IGNvZWZmcykgbm9leGNlcHQKKysgICAgY2RlZiBQb2x5bm9taWFsIF9uZXdf Z2VuZXJpYyhzZWxmLCBsaXN0IGNvZWZmcykKKyAgICAgY2RlZiBjaGFyIF9pc19nZW4KKyAgICAg Y2RlZiBDb21waWxlZFBvbHlub21pYWxGdW5jdGlvbiBfY29tcGlsZWQKKy0gICAgY3BkZWYgUG9s eW5vbWlhbCB0cnVuY2F0ZShzZWxmLCBsb25nIG4pIG5vZXhjZXB0CistICAgIGNwZGVmIFBvbHlu b21pYWwgaW52ZXJzZV9zZXJpZXNfdHJ1bmMoc2VsZiwgbG9uZyBwcmVjKSBub2V4Y2VwdAorKyAg ICBjcGRlZiBQb2x5bm9taWFsIHRydW5jYXRlKHNlbGYsIGxvbmcgbikKKysgICAgY3BkZWYgUG9s eW5vbWlhbCBpbnZlcnNlX3Nlcmllc190cnVuYyhzZWxmLCBsb25nIHByZWMpCisgICAgIGNkZWYg bG9uZyBfaGFzaF9jKHNlbGYpIGV4Y2VwdCAtMQorLSAgICBjcGRlZiBjb25zdGFudF9jb2VmZmlj aWVudChzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBQb2x5bm9taWFsIF9uZXdfY29uc3RhbnRf cG9seShzZWxmLCBhLCBQYXJlbnQgUCkgbm9leGNlcHQKKy0gICAgY3BkZWYgbGlzdCBsaXN0KHNl bGYsIGJpbnQgY29weT0qKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfbXVsX2dlbmVyaWMoc2VsZiwg cmlnaHQpIG5vZXhjZXB0CistICAgIGNkZWYgX3NxdWFyZV9nZW5lcmljKHNlbGYpIG5vZXhjZXB0 CisrICAgIGNwZGVmIGNvbnN0YW50X2NvZWZmaWNpZW50KHNlbGYpCisrICAgIGNwZGVmIFBvbHlu b21pYWwgX25ld19jb25zdGFudF9wb2x5KHNlbGYsIGEsIFBhcmVudCBQKQorKyAgICBjcGRlZiBs aXN0IGxpc3Qoc2VsZiwgYmludCBjb3B5PSopCisrICAgIGNwZGVmIF9tdWxfZ2VuZXJpYyhzZWxm LCByaWdodCkKKysgICAgY2RlZiBfc3F1YXJlX2dlbmVyaWMoc2VsZikKKyAKKyAgICAgY3BkZWYg YmludCBpc196ZXJvKHNlbGYpIGV4Y2VwdCAtMQorICAgICBjcGRlZiBiaW50IGlzX29uZShzZWxm KSBleGNlcHQgLTEKKyAgICAgY3BkZWYgYmludCBpc190ZXJtKHNlbGYpIGV4Y2VwdCAtMQorIAor LSAgICBjcGRlZiBkaWN0IF9tcG9seV9kaWN0X3JlY3Vyc2l2ZShzZWxmLCB0dXBsZSB2YXJpYWJs ZXM9KiwgYmFzZV9yaW5nPSopIG5vZXhjZXB0CisrICAgIGNwZGVmIGRpY3QgX21wb2x5X2RpY3Rf cmVjdXJzaXZlKHNlbGYsIHR1cGxlIHZhcmlhYmxlcz0qLCBiYXNlX3Jpbmc9KikKKyAKKy0gICAg Y3BkZWYgX2FkZF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0CistICAgIGNwZGVmIF9tdWxfKHNlbGYs IG90aGVyKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfZmxvb3JkaXZfKHNlbGYsIHJpZ2h0KSBub2V4 Y2VwdAorLSAgICBjcGRlZiBQb2x5bm9taWFsIF9tdWxfdHJ1bmNfKHNlbGYsIFBvbHlub21pYWwg cmlnaHQsIGxvbmcgbikgbm9leGNlcHQKKy0gICAgY3BkZWYgUG9seW5vbWlhbCBfcG93ZXJfdHJ1 bmMoc2VsZiwgdW5zaWduZWQgbG9uZyBuLCBsb25nIHByZWMpIG5vZXhjZXB0CistICAgIGNkZWYg UG9seW5vbWlhbCBfbXVsX3Rlcm0oc2VsZiwgUG9seW5vbWlhbCB0ZXJtLCBiaW50IHRlcm1fb25f cmlnaHQpIG5vZXhjZXB0CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIG90aGVyKQorKyAgICBjcGRl ZiBfbXVsXyhzZWxmLCBvdGhlcikKKysgICAgY3BkZWYgX2Zsb29yZGl2XyhzZWxmLCByaWdodCkK KysgICAgY3BkZWYgUG9seW5vbWlhbCBfbXVsX3RydW5jXyhzZWxmLCBQb2x5bm9taWFsIHJpZ2h0 LCBsb25nIG4pCisrICAgIGNwZGVmIFBvbHlub21pYWwgX3Bvd2VyX3RydW5jKHNlbGYsIHVuc2ln bmVkIGxvbmcgbiwgbG9uZyBwcmVjKQorKyAgICBjZGVmIFBvbHlub21pYWwgX211bF90ZXJtKHNl bGYsIFBvbHlub21pYWwgdGVybSwgYmludCB0ZXJtX29uX3JpZ2h0KQorIAorICAgICAjIFVOU0FG RSwgb25seSBjYWxsIGZyb20gYW4gaW5wbGFjZSBvcGVyYXRvcgorICAgICAjIG1heSByZXR1cm4g YSBuZXcgZWxlbWVudCBpZiBub3QgcG9zc2libGUgdG8gbW9kaWZ5IGlucGxhY2UKKy0gICAgY2Rl ZiBfaW5wbGFjZV90cnVuY2F0ZShzZWxmLCBsb25nIG4pIG5vZXhjZXB0CisrICAgIGNkZWYgX2lu cGxhY2VfdHJ1bmNhdGUoc2VsZiwgbG9uZyBuKQorIAorLSAgICBjZGVmIGdldF9jb2VmZl9jKHNl bGYsIFB5X3NzaXplX3QgaSkgbm9leGNlcHQKKy0gICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5 X3NzaXplX3QgaSkgbm9leGNlcHQKKysgICAgY2RlZiBnZXRfY29lZmZfYyhzZWxmLCBQeV9zc2l6 ZV90IGkpCisrICAgIGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IGkpCisgICAgIGNw ZGVmIGxvbmcgbnVtYmVyX29mX3Rlcm1zKHNlbGYpIG5vZXhjZXB0CisgCisgICAgICMgU2VlIDIz MjI3CistICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdAorLSAgICBjcGRlZiBf bXVsXyhzZWxmLCByaWdodCkgbm9leGNlcHQKKy0gICAgY3BkZWYgX2Zsb29yZGl2XyhzZWxmLCBy aWdodCkgbm9leGNlcHQKKysgICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQpCisrICAgIGNwZGVm IF9tdWxfKHNlbGYsIHJpZ2h0KQorKyAgICBjcGRlZiBfZmxvb3JkaXZfKHNlbGYsIHJpZ2h0KQor IAorICAgICBjZGVmIHB1YmxpYyBkaWN0IF9jYWNoZWRfbWV0aG9kcworIAorIGNkZWYgY2xhc3Mg UG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKFBvbHlub21pYWwpOgorLSAgICBjZGVmIFBvbHlub21p YWxfZ2VuZXJpY19kZW5zZSBfbmV3X2Moc2VsZiwgbGlzdCBjb2VmZnMsIFBhcmVudCBQKSBub2V4 Y2VwdAorKyAgICBjZGVmIFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZSBfbmV3X2Moc2VsZiwgbGlz dCBjb2VmZnMsIFBhcmVudCBQKQorICAgICBjZGVmIGxpc3QgX2NvZWZmcworICAgICBjZGVmIGlu dCBfbm9ybWFsaXplKHNlbGYpIGV4Y2VwdCAtMQorLSAgICBjcGRlZiBsaXN0IGxpc3Qoc2VsZiwg YmludCBjb3B5PSopIG5vZXhjZXB0CisrICAgIGNwZGVmIGxpc3QgbGlzdChzZWxmLCBiaW50IGNv cHk9KikKKyAKKyBjZGVmIGNsYXNzIFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZV9pbmV4YWN0KFBv bHlub21pYWxfZ2VuZXJpY19kZW5zZSk6CisgICAgIHBhc3MKKyAKKy1jcGRlZiBpc19Qb2x5bm9t aWFsKGYpIG5vZXhjZXB0CistY3BkZWYgUG9seW5vbWlhbCBnZW5lcmljX3Bvd2VyX3RydW5jKFBv bHlub21pYWwgcCwgSW50ZWdlciBuLCBsb25nIHByZWMpIG5vZXhjZXB0CistY3BkZWYgbGlzdCBf ZGljdF90b19saXN0KGRpY3QgeCwgemVybykgbm9leGNlcHQKKytjcGRlZiBpc19Qb2x5bm9taWFs KGYpCisrY3BkZWYgUG9seW5vbWlhbCBnZW5lcmljX3Bvd2VyX3RydW5jKFBvbHlub21pYWwgcCwg SW50ZWdlciBuLCBsb25nIHByZWMpCisrY3BkZWYgbGlzdCBfZGljdF90b19saXN0KGRpY3QgeCwg emVybykKKyAKKyBjcGRlZiBiaW50IHBvbHlub21pYWxfaXNfdmFyaWFibGUoeCkgbm9leGNlcHQK KyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfZWxl bWVudC5weXggYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfZWxlbWVudC5w eXgKK2luZGV4IDk5ZjAwNjE4YmMxLi5mMDlkYzZhN2ZiZCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdl L3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9lbGVtZW50LnB5eAorKysrIGIvc3JjL3NhZ2Uv cmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2VsZW1lbnQucHl4CitAQCAtMTM0LDcgKzEzNCw3 IEBAIGZyb20gc2FnZS5jYXRlZ29yaWVzLm1vcnBoaXNtIGNpbXBvcnQgTW9ycGhpc20KKyBmcm9t IHNhZ2UubWlzYy5zdXBlcnNlZGVkIGltcG9ydCBkZXByZWNhdGlvbl9jeXRob24gYXMgZGVwcmVj YXRpb24sIGRlcHJlY2F0ZWRfZnVuY3Rpb25fYWxpYXMKKyBmcm9tIHNhZ2UubWlzYy5jYWNoZWZ1 bmMgaW1wb3J0IGNhY2hlZF9tZXRob2QKKyAKKy1jcGRlZiBpc19Qb2x5bm9taWFsKGYpIG5vZXhj ZXB0OgorK2NwZGVmIGlzX1BvbHlub21pYWwoZik6CisgICAgICIiIgorICAgICBSZXR1cm4gYGBU cnVlYGAgaWYgYGBmYGAgaXMgb2YgdHlwZSB1bml2YXJpYXRlIHBvbHlub21pYWwuCisgCitAQCAt MjQ0LDcgKzI0NCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbChDb21tdXRhdGl2ZVBvbHlub21p YWwpOgorICAgICAgICAgQ29tbXV0YXRpdmVBbGdlYnJhRWxlbWVudC5fX2luaXRfXyhzZWxmLCBw YXJlbnQpCisgICAgICAgICBzZWxmLl9pc19nZW4gPSBpc19nZW4KKyAKKy0gICAgY2RlZiBQb2x5 bm9taWFsIF9uZXdfZ2VuZXJpYyhzZWxmLCBsaXN0IGNvZWZmcykgbm9leGNlcHQ6CisrICAgIGNk ZWYgUG9seW5vbWlhbCBfbmV3X2dlbmVyaWMoc2VsZiwgbGlzdCBjb2VmZnMpOgorICAgICAgICAg ciIiIgorICAgICAgICAgUXVpY2tseSBjb25zdHJ1Y3QgYSBuZXcgcG9seW5vbWlhbCBvZiB0aGUg c2FtZSB0eXBlIGFzIGBgc2VsZmBgLAorICAgICAgICAgYnlwYXNzaW5nIHRoZSBwYXJlbnQncyBl bGVtZW50IGNvbnN0cnVjdG9yLgorQEAgLTI1OCw3ICsyNTgsNyBAQCBjZGVmIGNsYXNzIFBvbHlu b21pYWwoQ29tbXV0YXRpdmVQb2x5bm9taWFsKToKKyAgICAgICAgICAgICBuIC09IDEKKyAgICAg ICAgIHJldHVybiB0eXBlKHNlbGYpKHNlbGYuX3BhcmVudCwgY29lZmZzLCBjaGVjaz1GYWxzZSkK KyAKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBf YWRkXyhzZWxmLCByaWdodCk6CisgICAgICAgICByIiIiCisgICAgICAgICBBZGQgdHdvIHBvbHlu b21pYWxzLgorIAorQEAgLTI4Nyw3ICsyODcsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWwoQ29t bXV0YXRpdmVQb2x5bm9taWFsKToKKyAgICAgICAgIGxvdyA9IFt4W2ldICsgeVtpXSBmb3IgaSBp biByYW5nZShtaW4pXQorICAgICAgICAgcmV0dXJuIHNlbGYuX25ld19nZW5lcmljKGxvdyArIGhp Z2gpCisgCistICAgIGNwZGVmIF9uZWdfKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbmVn XyhzZWxmKToKKyAgICAgICAgIHJldHVybiBzZWxmLl9uZXdfZ2VuZXJpYyhbLXggZm9yIHggaW4g c2VsZi5saXN0KGNvcHk9RmFsc2UpXSkKKyAKKyAgICAgY3BkZWYgYmludCBpc196ZXJvKHNlbGYp IGV4Y2VwdCAtMToKK0BAIC0zNzAsNyArMzcwLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsKENv bW11dGF0aXZlUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgICAgIHJldHVybiBwb2ludCh6LCAq YXJncywgKiprd2RzKQorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigicGxvdHRp bmcgb2YgcG9seW5vbWlhbHMgb3ZlciAlcyBub3QgaW1wbGVtZW50ZWQiJVIpCisgCistICAgIGNw ZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IGxlZnQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbG11 bF8oc2VsZiwgRWxlbWVudCBsZWZ0KToKKyAgICAgICAgICIiIgorICAgICAgICAgTXVsdGlwbHkg c2VsZiBvbiB0aGUgbGVmdCBieSBhIHNjYWxhci4KKyAKK0BAIC0zOTAsNyArMzkwLDcgQEAgY2Rl ZiBjbGFzcyBQb2x5bm9taWFsKENvbW11dGF0aXZlUG9seW5vbWlhbCk6CisgICAgICAgICAgICAg cmV0dXJuIHNlbGYuX3BhcmVudC56ZXJvKCkKKyAgICAgICAgIHJldHVybiBzZWxmLl9wYXJlbnQo bGVmdCkgKiBzZWxmCisgCistICAgIGNwZGVmIF9ybXVsXyhzZWxmLCBFbGVtZW50IHJpZ2h0KSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgX3JtdWxfKHNlbGYsIEVsZW1lbnQgcmlnaHQpOgorICAgICAg ICAgIiIiCisgICAgICAgICBNdWx0aXBseSBzZWxmIG9uIHRoZSByaWdodCBieSBhIHNjYWxhci4K KyAKK0BAIC0xMDExLDcgKzEwMTEsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWwoQ29tbXV0YXRp dmVQb2x5bm9taWFsKToKKyAgICAgICAgICAgICAgICAgZXhwciAqPSB4CisgICAgICAgICByZXR1 cm4gZXhwcgorIAorLSAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgb3RoZXIsIGludCBvcCkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCBvdGhlciwgaW50IG9wKToKKyAgICAg ICAgIHIiIiIKKyAgICAgICAgIENvbXBhcmUgdGhlIHR3byBwb2x5bm9taWFscyBzZWxmIGFuZCBv dGhlci4KKyAKK0BAIC0xMTc3LDcgKzExNzcsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWwoQ29t bXV0YXRpdmVQb2x5bm9taWFsKToKKyAKKyAgICAgICAgIHJldHVybiBzZWxmLmdldF9jb2VmZl9j KHB5b2JqZWN0X3RvX2xvbmcobikpCisgCistICAgIGNkZWYgZ2V0X2NvZWZmX2Moc2VsZiwgUHlf c3NpemVfdCBpKSBub2V4Y2VwdDoKKysgICAgY2RlZiBnZXRfY29lZmZfYyhzZWxmLCBQeV9zc2l6 ZV90IGkpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGBpYC10aCBjb2VmZmlj aWVudCBvZiBgYHNlbGZgYC4KKyAgICAgICAgICIiIgorQEAgLTExODcsNyArMTE4Nyw3IEBAIGNk ZWYgY2xhc3MgUG9seW5vbWlhbChDb21tdXRhdGl2ZVBvbHlub21pYWwpOgorICAgICAgICAgZWxz ZToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZi5fcGFyZW50Ll9iYXNlLnplcm8oKQorIAorLSAg ICBjZGVmIGdldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpKSBub2V4Y2VwdDoKKysgICAgY2Rl ZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3QgaSk6CisgICAgICAgICAiIiIKKyAgICAgICAg IFJldHVybiB0aGUgYGlgLXRoIGNvZWZmaWNpZW50IG9mIGBgc2VsZmBgLgorIAorQEAgLTE2Njks NyArMTY2OSw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbChDb21tdXRhdGl2ZVBvbHlub21pYWwp OgorICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3Io IkltcG9zc2libGUgaW52ZXJzZSBtb2R1bG8iKQorIAorLSAgICBjcGRlZiBQb2x5bm9taWFsIGlu dmVyc2Vfc2VyaWVzX3RydW5jKHNlbGYsIGxvbmcgcHJlYykgbm9leGNlcHQ6CisrICAgIGNwZGVm IFBvbHlub21pYWwgaW52ZXJzZV9zZXJpZXNfdHJ1bmMoc2VsZiwgbG9uZyBwcmVjKToKKyAgICAg ICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBhIHBvbHlub21pYWwgYXBwcm94aW1hdGlvbiBvZiBw cmVjaXNpb24gYGBwcmVjYGAgb2YgdGhlIGludmVyc2UKKyAgICAgICAgIHNlcmllcyBvZiB0aGlz IHBvbHlub21pYWwuCitAQCAtMTc4NCw3ICsxNzg0LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFs KENvbW11dGF0aXZlUG9seW5vbWlhbCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJhaXNlIE5v dEltcGxlbWVudGVkRXJyb3IoIm9ubHkgaW1wbGVtZW50ZWQgZm9yIGNlcnRhaW4gYmFzZSByaW5n cyIpCisgCistICAgIGNwZGVmIF9tdWxfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgX211bF8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6 CisgCitAQCAtMTg0MCw3ICsxODQwLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsKENvbW11dGF0 aXZlUG9seW5vbWlhbCk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJldHVybiBzZWxm Ll9tdWxfZ2VuZXJpYyhyaWdodCkKKyAKKy0gICAgY3BkZWYgUG9seW5vbWlhbCBfbXVsX3RydW5j XyhzZWxmLCBQb2x5bm9taWFsIHJpZ2h0LCBsb25nIG4pIG5vZXhjZXB0OgorKyAgICBjcGRlZiBQ b2x5bm9taWFsIF9tdWxfdHJ1bmNfKHNlbGYsIFBvbHlub21pYWwgcmlnaHQsIGxvbmcgbik6Cisg ICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHRydW5jYXRlZCBtdWx0aXBsaWNhdGlv biBvZiB0d28gcG9seW5vbWlhbHMgdXAgdG8gYGBuYGAuCisgCitAQCAtMzAyMSw3ICszMDIxLDcg QEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsKENvbW11dGF0aXZlUG9seW5vbWlhbCk6CisgICAgICAg ICAgICAgcmV0dXJuIHNlbGYuX3Bvd2VyX3RydW5jKG1wel9nZXRfdWkoWlpuLnZhbHVlKSwgcHJl YykKKyAgICAgICAgIHJldHVybiBnZW5lcmljX3Bvd2VyX3RydW5jKHNlbGYsIFpabiwgcHlvYmpl Y3RfdG9fbG9uZyhwcmVjKSkKKyAKKy0gICAgY3BkZWYgUG9seW5vbWlhbCBfcG93ZXJfdHJ1bmMo c2VsZiwgdW5zaWduZWQgbG9uZyBuLCBsb25nIHByZWMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBQ b2x5bm9taWFsIF9wb3dlcl90cnVuYyhzZWxmLCB1bnNpZ25lZCBsb25nIG4sIGxvbmcgcHJlYyk6 CisgICAgICAgICByIiIiCisgICAgICAgICBUcnVuY2F0ZWQgYGBuYGAtdGggcG93ZXIgb2YgdGhp cyBwb2x5bm9taWFsIHVwIHRvIHByZWNpc2lvbiBgYHByZWNgYAorIAorQEAgLTMzMDksNyArMzMw OSw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbChDb21tdXRhdGl2ZVBvbHlub21pYWwpOgorICAg ICAgICAgIiIiCisgICAgICAgICByYWlzZSBJbmRleEVycm9yKCJwb2x5bm9taWFscyBhcmUgaW1t dXRhYmxlIikKKyAKKy0gICAgY3BkZWYgX2Zsb29yZGl2XyhzZWxmLCByaWdodCkgbm9leGNlcHQ6 CisrICAgIGNwZGVmIF9mbG9vcmRpdl8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgciIiIgorICAg ICAgICAgUXVvdGllbnQgb2YgZGl2aXNpb24gb2YgYGBzZWxmYGAgYnkgYGBvdGhlcmBgLiBUaGlz IGlzIGRlbm90ZWQgLy8uCisgCitAQCAtMzM5Myw3ICszMzkzLDcgQEAgY2RlZiBjbGFzcyBQb2x5 bm9taWFsKENvbW11dGF0aXZlUG9seW5vbWlhbCk6CisgICAgICAgICByZXR1cm4gKHNlbGYuZGVn cmVlKCkgPT0gc2VsZi52YWx1YXRpb24oKSBhbmQKKyAgICAgICAgICAgICAgICAgc2VsZi5sZWFk aW5nX2NvZWZmaWNpZW50KCkuX2lzX2F0b21pYygpKQorIAorLSAgICBjcGRlZiBfbXVsX2dlbmVy aWMoc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbXVsX2dlbmVyaWMoc2VsZiwg cmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBDb21wdXRlIHRoZSBwcm9kdWN0IG9mIGBg c2VsZmBgIGFuZCBgYHJpZ2h0YGAgdXNpbmcgdGhlIGNsYXNzaWNhbCBxdWFkcmF0aWMKKyAgICAg ICAgIGFsZ29yaXRobS4gVGhpcyBtZXRob2QgaXMgdGhlIGRlZmF1bHQgZm9yIGluZXhhY3Qgcmlu Z3MuCitAQCAtMzQ1Nyw3ICszNDU3LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsKENvbW11dGF0 aXZlUG9seW5vbWlhbCk6CisgICAgICAgICBjZGVmIGxpc3QgeSA9IHJpZ2h0Lmxpc3QoY29weT1G YWxzZSkKKyAgICAgICAgIHJldHVybiBzZWxmLl9uZXdfZ2VuZXJpYyhkb19zY2hvb2xib29rX3By b2R1Y3QoeCwgeSwgLTEpKQorIAorLSAgICBjZGVmIF9zcXVhcmVfZ2VuZXJpYyhzZWxmKSBub2V4 Y2VwdDoKKysgICAgY2RlZiBfc3F1YXJlX2dlbmVyaWMoc2VsZik6CisgICAgICAgICBjZGVmIGxp c3QgeCA9IHNlbGYubGlzdChjb3B5PUZhbHNlKQorICAgICAgICAgY2RlZiBQeV9zc2l6ZV90IGks IGoKKyAgICAgICAgIGNkZWYgUHlfc3NpemVfdCBkID0gbGVuKHgpLTEKK0BAIC0zNzI1LDcgKzM3 MjUsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWwoQ29tbXV0YXRpdmVQb2x5bm9taWFsKToKKyAK KyAgICAgQGN5dGhvbi5ib3VuZHNjaGVjayhGYWxzZSkKKyAgICAgQGN5dGhvbi53cmFwYXJvdW5k KEZhbHNlKQorLSAgICBjZGVmIFBvbHlub21pYWwgX211bF90ZXJtKHNlbGYsIFBvbHlub21pYWwg dGVybSwgYmludCB0ZXJtX29uX3JpZ2h0KSBub2V4Y2VwdDoKKysgICAgY2RlZiBQb2x5bm9taWFs IF9tdWxfdGVybShzZWxmLCBQb2x5bm9taWFsIHRlcm0sIGJpbnQgdGVybV9vbl9yaWdodCk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgcHJvZHVjdCBgYHNlbGYgKiB0ZXJtYGAs IHdoZXJlIGBgdGVybWBgIGlzIGEgcG9seW5vbWlhbAorICAgICAgICAgd2l0aCBhIHNpbmdsZSB0 ZXJtLgorQEAgLTM3NTksNyArMzc1OSw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbChDb21tdXRh dGl2ZVBvbHlub21pYWwpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fcGFy ZW50LmJhc2VfcmluZygpCisgCistICAgIGNwZGVmIGJhc2VfZXh0ZW5kKHNlbGYsIFIpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBiYXNlX2V4dGVuZChzZWxmLCBSKToKKyAgICAgICAgICIiIgorICAg ICAgICAgUmV0dXJuIGEgY29weSBvZiB0aGlzIHBvbHlub21pYWwgYnV0IHdpdGggY29lZmZpY2ll bnRzIGluIGBgUmBgLCBpZgorICAgICAgICAgdGhlcmUgaXMgYSBuYXR1cmFsIG1hcCBmcm9tIHRo ZSBjb2VmZmljaWVudCByaW5nIG9mIGBgc2VsZmBgIHRvIGBgUmBgLgorQEAgLTM4NTIsNyArMzg1 Miw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbChDb21tdXRhdGl2ZVBvbHlub21pYWwpOgorICAg ICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZi5fcGFyZW50LmNoYW5nZV9yaW5n KFIpKHNlbGYubGlzdChjb3B5PUZhbHNlKSkKKyAKKy0gICAgY3BkZWYgZGljdCBfbXBvbHlfZGlj dF9yZWN1cnNpdmUoc2VsZiwgdHVwbGUgdmFyaWFibGVzPU5vbmUsIGJhc2VfcmluZz1Ob25lKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgZGljdCBfbXBvbHlfZGljdF9yZWN1cnNpdmUoc2VsZiwgdHVw bGUgdmFyaWFibGVzPU5vbmUsIGJhc2VfcmluZz1Ob25lKToKKyAgICAgICAgICIiIgorICAgICAg ICAgUmV0dXJuIGEgZGljdCBvZiBjb2VmZmljaWVudCBlbnRyaWVzIHN1aXRhYmxlIGZvciBjb25z dHJ1Y3Rpb24gb2YgYQorICAgICAgICAgTVBvbHlub21pYWxfcG9seWRpY3Qgd2l0aCB0aGUgZ2l2 ZW4gdmFyaWFibGVzLgorQEAgLTYwMjAsNyArNjAyMCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlh bChDb21tdXRhdGl2ZVBvbHlub21pYWwpOgorIAorICAgICAgICAgcmV0dXJuIE0KKyAKKy0gICAg Y3BkZWYgY29uc3RhbnRfY29lZmZpY2llbnQoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGNv bnN0YW50X2NvZWZmaWNpZW50KHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4g dGhlIGNvbnN0YW50IGNvZWZmaWNpZW50IG9mIHRoaXMgcG9seW5vbWlhbC4KKyAKK0BAIC02MDM4 LDcgKzYwMzgsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWwoQ29tbXV0YXRpdmVQb2x5bm9taWFs KToKKyAgICAgICAgICMgc2VsZi5kZWdyZWUoKSA+PSAwCisgICAgICAgICByZXR1cm4gc2VsZi5n ZXRfdW5zYWZlKDApCisgCistICAgIGNwZGVmIFBvbHlub21pYWwgX25ld19jb25zdGFudF9wb2x5 KHNlbGYsIGEsIFBhcmVudCBQKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgUG9seW5vbWlhbCBfbmV3 X2NvbnN0YW50X3BvbHkoc2VsZiwgYSwgUGFyZW50IFApOgorICAgICAgICAgIiIiCisgICAgICAg ICBDcmVhdGUgYSBuZXcgY29uc3RhbnQgcG9seW5vbWlhbCBmcm9tIGEgaW4gUCwgd2hpY2ggTVVT VCBiZSBhbgorICAgICAgICAgZWxlbWVudCBvZiB0aGUgYmFzZSByaW5nIG9mIFAgKHRoaXMgaXMg bm90IGNoZWNrZWQpLgorQEAgLTY1NDksNyArNjU0OSw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlh bChDb21tdXRhdGl2ZVBvbHlub21pYWwpOgorICAgICAgICAgY2RlZiBQeV9zc2l6ZV90IGkKKyAg ICAgICAgIHJldHVybiBbaSBmb3IgaSwgYyBpbiBlbnVtZXJhdGUoc2VsZi5saXN0KGNvcHk9RmFs c2UpKSBpZiBjXQorIAorLSAgICBjcGRlZiBsaXN0IGxpc3Qoc2VsZiwgYmludCBjb3B5PVRydWUp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBsaXN0IGxpc3Qoc2VsZiwgYmludCBjb3B5PVRydWUpOgor ICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYSBuZXcgY29weSBvZiB0aGUgbGlzdCBvZiB0 aGUgdW5kZXJseWluZyBlbGVtZW50cyBvZiBgYHNlbGZgYC4KKyAKK0BAIC0xMDIwNCw3ICsxMDIw NCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbChDb21tdXRhdGl2ZVBvbHlub21pYWwpOgorICAg ICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5zaGlmdCgtaykKKyAKKy0gICAgY3BkZWYg UG9seW5vbWlhbCB0cnVuY2F0ZShzZWxmLCBsb25nIG4pIG5vZXhjZXB0OgorKyAgICBjcGRlZiBQ b2x5bm9taWFsIHRydW5jYXRlKHNlbGYsIGxvbmcgbik6CisgICAgICAgICByIiIiCisgICAgICAg ICBSZXR1cm4gdGhlIHBvbHlub21pYWwgb2YgZGVncmVlIGA8IG5gIHdoaWNoIGlzIGVxdWl2YWxl bnQKKyAgICAgICAgIHRvIHNlbGYgbW9kdWxvIGB4Xm5gLgorQEAgLTEwMjI1LDcgKzEwMjI1LDcg QEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsKENvbW11dGF0aXZlUG9seW5vbWlhbCk6CisgICAgICAg ICAjIFdlIG11c3Qgbm90IGhhdmUgY2hlY2s9RmFsc2UsIHNpbmNlIDAgbXVzdCBub3QgaGF2ZSBf Y29lZmZzID0gWzBdLgorICAgICAgICAgcmV0dXJuIDxQb2x5bm9taWFsPnNlbGYuX3BhcmVudChz ZWxmWzpuXSkjLCBjaGVjaz1GYWxzZSkKKyAKKy0gICAgY2RlZiBfaW5wbGFjZV90cnVuY2F0ZShz ZWxmLCBsb25nIHByZWMpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9pbnBsYWNlX3RydW5jYXRlKHNl bGYsIGxvbmcgcHJlYyk6CisgICAgICAgICByZXR1cm4gc2VsZi50cnVuY2F0ZShwcmVjKQorIAor ICAgICBAY2FjaGVkX21ldGhvZAorQEAgLTExNzE5LDcgKzExNzE5LDcgQEAgY2RlZiBjbGFzcyBQ b2x5bm9taWFsKENvbW11dGF0aXZlUG9seW5vbWlhbCk6CisgQGN5dGhvbi5ib3VuZHNjaGVjayhG YWxzZSkKKyBAY3l0aG9uLndyYXBhcm91bmQoRmFsc2UpCisgQGN5dGhvbi5vdmVyZmxvd2NoZWNr KEZhbHNlKQorLWNkZWYgbGlzdCBkb19zY2hvb2xib29rX3Byb2R1Y3QobGlzdCB4LCBsaXN0IHks IFB5X3NzaXplX3QgZGVnKSBub2V4Y2VwdDoKKytjZGVmIGxpc3QgZG9fc2Nob29sYm9va19wcm9k dWN0KGxpc3QgeCwgbGlzdCB5LCBQeV9zc2l6ZV90IGRlZyk6CisgICAgICIiIgorICAgICBDb21w dXRlIHRoZSB0cnVuY2F0ZWQgbXVsdGlwbGljYXRpb24gb2YgdHdvIHBvbHlub21pYWxzIHJlcHJl c2VudGVkIGJ5CisgICAgIGxpc3RzLCB1c2luZyB0aGUgc2Nob29sYm9vayBhbGdvcml0aG0uCitA QCAtMTE3NzEsNyArMTE3NzEsNyBAQCBjZGVmIGxpc3QgZG9fc2Nob29sYm9va19wcm9kdWN0KGxp c3QgeCwgbGlzdCB5LCBQeV9zc2l6ZV90IGRlZykgbm9leGNlcHQ6CisgQGN5dGhvbi5ib3VuZHNj aGVjayhGYWxzZSkKKyBAY3l0aG9uLndyYXBhcm91bmQoRmFsc2UpCisgQGN5dGhvbi5vdmVyZmxv d2NoZWNrKEZhbHNlKQorLWNkZWYgbGlzdCBkb19rYXJhdHN1YmFfZGlmZmVyZW50X3NpemUobGlz dCBsZWZ0LCBsaXN0IHJpZ2h0LCBQeV9zc2l6ZV90IEtfdGhyZXNob2xkKSBub2V4Y2VwdDoKKytj ZGVmIGxpc3QgZG9fa2FyYXRzdWJhX2RpZmZlcmVudF9zaXplKGxpc3QgbGVmdCwgbGlzdCByaWdo dCwgUHlfc3NpemVfdCBLX3RocmVzaG9sZCk6CisgICAgICIiIgorICAgICBNdWx0aXBseSB0d28g cG9seW5vbWlhbHMgb2YgZGlmZmVyZW50IGRlZ3JlZXMgYnkgc3BsaXR0aW5nIHRoZSBvbmUgb2YK KyAgICAgbGFyZ2VzdCBkZWdyZWUgaW4gY2h1bmtzIHRoYXQgYXJlIG11bHRpcGxpZWQgd2l0aCB0 aGUgb3RoZXIgdXNpbmcgdGhlCitAQCAtMTE4NTMsNyArMTE4NTMsNyBAQCBjZGVmIGxpc3QgZG9f a2FyYXRzdWJhX2RpZmZlcmVudF9zaXplKGxpc3QgbGVmdCwgbGlzdCByaWdodCwgUHlfc3NpemVf dCBLX3RocmVzaAorIEBjeXRob24uYm91bmRzY2hlY2soRmFsc2UpCisgQGN5dGhvbi53cmFwYXJv dW5kKEZhbHNlKQorIEBjeXRob24ub3ZlcmZsb3djaGVjayhGYWxzZSkKKy1jZGVmIGxpc3QgZG9f a2FyYXRzdWJhKGxpc3QgbGVmdCwgbGlzdCByaWdodCwgUHlfc3NpemVfdCBLX3RocmVzaG9sZCxQ eV9zc2l6ZV90IHN0YXJ0X2wsIFB5X3NzaXplX3Qgc3RhcnRfcixQeV9zc2l6ZV90IG51bV9lbHRz KSBub2V4Y2VwdDoKKytjZGVmIGxpc3QgZG9fa2FyYXRzdWJhKGxpc3QgbGVmdCwgbGlzdCByaWdo dCwgUHlfc3NpemVfdCBLX3RocmVzaG9sZCxQeV9zc2l6ZV90IHN0YXJ0X2wsIFB5X3NzaXplX3Qg c3RhcnRfcixQeV9zc2l6ZV90IG51bV9lbHRzKToKKyAgICAgIiIiCisgICAgIENvcmUgcm91dGlu ZSBmb3IgS2FyYXRzdWJhIG11bHRpcGxpY2F0aW9uLiBUaGlzIGZ1bmN0aW9uIHdvcmtzIGZvciB0 d28KKyAgICAgcG9seW5vbWlhbHMgb2YgdGhlIHNhbWUgZGVncmVlLgorQEAgLTEyMDMyLDE0ICsx MjAzMiwxNCBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZShQb2x5bm9taWFs KToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgc2VsZi5fY29lZmZzID0geAorIAorLSAg ICBjZGVmIFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZSBfbmV3X2Moc2VsZiwgbGlzdCBjb2VmZnMs IFBhcmVudCBQKSBub2V4Y2VwdDoKKysgICAgY2RlZiBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2Ug X25ld19jKHNlbGYsIGxpc3QgY29lZmZzLCBQYXJlbnQgUCk6CisgICAgICAgICBjZGVmIHR5cGUg dCA9IHR5cGUoc2VsZikKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlIGYg PSA8UG9seW5vbWlhbF9nZW5lcmljX2RlbnNlPnQuX19uZXdfXyh0KQorICAgICAgICAgZi5fcGFy ZW50ID0gUAorICAgICAgICAgZi5fY29lZmZzID0gY29lZmZzCisgICAgICAgICByZXR1cm4gZgor IAorLSAgICBjcGRlZiBQb2x5bm9taWFsIF9uZXdfY29uc3RhbnRfcG9seShzZWxmLCBhLCBQYXJl bnQgUCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIFBvbHlub21pYWwgX25ld19jb25zdGFudF9wb2x5 KHNlbGYsIGEsIFBhcmVudCBQKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ3JlYXRlIGEgbmV3 IGNvbnN0YW50IHBvbHlub21pYWwgaW4gUCB3aXRoIHZhbHVlIGEuCisgCitAQCAtMTIxMTEsNyAr MTIxMTEsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZShQb2x5bm9taWFs KToKKyAKKyAgICAgQGN5dGhvbi5ib3VuZHNjaGVjayhGYWxzZSkKKyAgICAgQGN5dGhvbi53cmFw YXJvdW5kKEZhbHNlKQorLSAgICBjZGVmIFBvbHlub21pYWwgX211bF90ZXJtKHNlbGYsIFBvbHlu b21pYWwgdGVybSwgYmludCB0ZXJtX29uX3JpZ2h0KSBub2V4Y2VwdDoKKysgICAgY2RlZiBQb2x5 bm9taWFsIF9tdWxfdGVybShzZWxmLCBQb2x5bm9taWFsIHRlcm0sIGJpbnQgdGVybV9vbl9yaWdo dCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgcHJvZHVjdCBgYHNlbGYgKiB0 ZXJtYGAsIHdoZXJlIGBgdGVybWBgIGlzIGEgcG9seW5vbWlhbAorICAgICAgICAgd2l0aCBhIHNp bmdsZSB0ZXJtLgorQEAgLTEyMTYzLDcgKzEyMTYzLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFs X2dlbmVyaWNfZGVuc2UoUG9seW5vbWlhbCk6CisgCisgICAgIEBjeXRob24uYm91bmRzY2hlY2so RmFsc2UpCisgICAgIEBjeXRob24ud3JhcGFyb3VuZChGYWxzZSkKKy0gICAgY2RlZiBnZXRfdW5z YWZlKHNlbGYsIFB5X3NzaXplX3Qgbikgbm9leGNlcHQ6CisrICAgIGNkZWYgZ2V0X3Vuc2FmZShz ZWxmLCBQeV9zc2l6ZV90IG4pOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGBu YC10aCBjb2VmZmljaWVudCBvZiBgYHNlbGZgYC4KKyAKK0BAIC0xMjI2MCw3ICsxMjI2MCw3IEBA IGNkZWYgY2xhc3MgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKFBvbHlub21pYWwpOgorICAgICAg ICAgcmVzLl9ub3JtYWxpemUoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorLSAgICBjcGRlZiBf YWRkXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0 KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIEFkZCB0d28gcG9seW5vbWlhbHMuCisgCitAQCAt MTIyOTEsNyArMTIyOTEsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZShQ b2x5bm9taWFsKToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX25l d19jKGxvdyArIGhpZ2gsIHNlbGYuX3BhcmVudCkKKyAKKy0gICAgY3BkZWYgX3N1Yl8oc2VsZiwg cmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodCk6CisgICAgICAg ICBjZGVmIFBvbHlub21pYWxfZ2VuZXJpY19kZW5zZSByZXMKKyAgICAgICAgIGNkZWYgUHlfc3Np emVfdCBjaGVjaz0wLCBpLCBtaW4KKyAgICAgICAgIHggPSAoPFBvbHlub21pYWxfZ2VuZXJpY19k ZW5zZT5zZWxmKS5fY29lZmZzCitAQCAtMTIzMTIsNyArMTIzMTIsNyBAQCBjZGVmIGNsYXNzIFBv bHlub21pYWxfZ2VuZXJpY19kZW5zZShQb2x5bm9taWFsKToKKyAgICAgICAgIGVsc2U6CisgICAg ICAgICAgICAgcmV0dXJuIHNlbGYuX25ld19jKGxvdyArIGhpZ2gsIHNlbGYuX3BhcmVudCkKKyAK Ky0gICAgY3BkZWYgX3JtdWxfKHNlbGYsIEVsZW1lbnQgYykgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9ybXVsXyhzZWxmLCBFbGVtZW50IGMpOgorICAgICAgICAgaWYgbm90IHNlbGYuX2NvZWZmczoK KyAgICAgICAgICAgICByZXR1cm4gc2VsZgorICAgICAgICAgaWYgYy5fcGFyZW50IGlzIG5vdCAo PEVsZW1lbnQ+c2VsZi5fY29lZmZzWzBdKS5fcGFyZW50OgorQEAgLTEyMzI0LDcgKzEyMzI0LDcg QEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UoUG9seW5vbWlhbCk6CisgICAg ICAgICByZXMuX25vcm1hbGl6ZSgpCisgICAgICAgICByZXR1cm4gcmVzCisgCistICAgIGNwZGVm IF9sbXVsXyhzZWxmLCBFbGVtZW50IGMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbG11bF8oc2Vs ZiwgRWxlbWVudCBjKToKKyAgICAgICAgIGlmIG5vdCBzZWxmLl9jb2VmZnM6CisgICAgICAgICAg ICAgcmV0dXJuIHNlbGYKKyAgICAgICAgIGlmIGMuX3BhcmVudCBpcyBub3QgKDxFbGVtZW50PnNl bGYuX2NvZWZmc1swXSkuX3BhcmVudDoKK0BAIC0xMjMzNiw3ICsxMjMzNiw3IEBAIGNkZWYgY2xh c3MgUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKFBvbHlub21pYWwpOgorICAgICAgICAgcmVzLl9u b3JtYWxpemUoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorLSAgICBjcGRlZiBjb25zdGFudF9j b2VmZmljaWVudChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgY29uc3RhbnRfY29lZmZpY2ll bnQoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgY29uc3RhbnQgY29l ZmZpY2llbnQgb2YgdGhpcyBwb2x5bm9taWFsLgorIAorQEAgLTEyMzU1LDcgKzEyMzU1LDcgQEAg Y2RlZiBjbGFzcyBQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UoUG9seW5vbWlhbCk6CisgICAgICAg ICBlbHNlOgorICAgICAgICAgICAgIHJldHVybiBzZWxmLl9jb2VmZnNbMF0KKyAKKy0gICAgY3Bk ZWYgbGlzdCBsaXN0KHNlbGYsIGJpbnQgY29weT1UcnVlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg bGlzdCBsaXN0KHNlbGYsIGJpbnQgY29weT1UcnVlKToKKyAgICAgICAgICIiIgorICAgICAgICAg UmV0dXJuIGEgbmV3IGNvcHkgb2YgdGhlIGxpc3Qgb2YgdGhlIHVuZGVybHlpbmcgZWxlbWVudHMg b2YgYGBzZWxmYGAuCisgCitAQCAtMTI1NDIsNyArMTI1NDIsNyBAQCBjZGVmIGNsYXNzIFBvbHlu b21pYWxfZ2VuZXJpY19kZW5zZShQb2x5bm9taWFsKToKKyAKKyAgICAgICAgIHJldHVybiBzZWxm Ll9uZXdfYyhxdW8sc2VsZi5fcGFyZW50KSwgc2VsZi5fbmV3X2MoeCxzZWxmLl9wYXJlbnQpLl9p bnBsYWNlX3RydW5jYXRlKG4tMSkKKyAKKy0gICAgY3BkZWYgUG9seW5vbWlhbCB0cnVuY2F0ZShz ZWxmLCBsb25nIG4pIG5vZXhjZXB0OgorKyAgICBjcGRlZiBQb2x5bm9taWFsIHRydW5jYXRlKHNl bGYsIGxvbmcgbik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHBvbHlub21p YWwgb2YgZGVncmVlIGA8IG5gIHdoaWNoIGlzIGVxdWl2YWxlbnQKKyAgICAgICAgIHRvIHNlbGYg bW9kdWxvIGB4Xm5gLgorQEAgLTEyNTc2LDcgKzEyNTc2LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9t aWFsX2dlbmVyaWNfZGVuc2UoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAgbiAtPSAxCisgICAg ICAgICByZXR1cm4gc2VsZi5fbmV3X2Moc2VsZi5fY29lZmZzWzpuXSwgc2VsZi5fcGFyZW50KQor IAorLSAgICBjZGVmIF9pbnBsYWNlX3RydW5jYXRlKHNlbGYsIGxvbmcgbikgbm9leGNlcHQ6Cisr ICAgIGNkZWYgX2lucGxhY2VfdHJ1bmNhdGUoc2VsZiwgbG9uZyBuKToKKyAgICAgICAgIGlmIG4g PCBsZW4oc2VsZi5fY29lZmZzKToKKyAgICAgICAgICAgICB3aGlsZSBuID4gMCBhbmQgbm90IHNl bGYuX2NvZWZmc1tuLTFdOgorICAgICAgICAgICAgICAgICBuIC09IDEKK0BAIC0xMjYyNyw3ICsx MjYyNyw3IEBAIGRlZiB1bml2ZXJzYWxfZGlzY3JpbWluYW50KG4pOgorICAgICByZXR1cm4gKDEg LSAobiYyKSkqcC5yZXN1bHRhbnQocC5kZXJpdmF0aXZlKCkpLy9wcjEuZ2VuKG4pCisgCisgCist Y3BkZWYgUG9seW5vbWlhbCBnZW5lcmljX3Bvd2VyX3RydW5jKFBvbHlub21pYWwgcCwgSW50ZWdl ciBuLCBsb25nIHByZWMpIG5vZXhjZXB0OgorK2NwZGVmIFBvbHlub21pYWwgZ2VuZXJpY19wb3dl cl90cnVuYyhQb2x5bm9taWFsIHAsIEludGVnZXIgbiwgbG9uZyBwcmVjKToKKyAgICAgciIiIgor ICAgICBHZW5lcmljIHRydW5jYXRlZCBwb3dlciBhbGdvcml0aG0KKyAKK0BAIC0xMjcwNiw3ICsx MjcwNiw3IEBAIGNwZGVmIFBvbHlub21pYWwgZ2VuZXJpY19wb3dlcl90cnVuYyhQb2x5bm9taWFs IHAsIEludGVnZXIgbiwgbG9uZyBwcmVjKSBub2V4Y2VwCisgCisgICAgIHJldHVybiBwb3dlcgor IAorLWNwZGVmIGxpc3QgX2RpY3RfdG9fbGlzdChkaWN0IHgsIHplcm8pIG5vZXhjZXB0OgorK2Nw ZGVmIGxpc3QgX2RpY3RfdG9fbGlzdChkaWN0IHgsIHplcm8pOgorICAgICAiIiIKKyAgICAgQ29u dmVydCBhIGRpY3QgdG8gYSBsaXN0LgorIAorQEAgLTEyODg0LDcgKzEyODg0LDcgQEAgY2RlZiBj bGFzcyBDb25zdGFudFBvbHlub21pYWxTZWN0aW9uKE1hcCk6CisgICAgICAgICAuLi4KKyAgICAg ICAgIFR5cGVFcnJvcjogbm90IGEgY29uc3RhbnQgcG9seW5vbWlhbAorICAgICAiIiIKKy0gICAg Y3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1l bnQgX2NhbGxfKHNlbGYsIHgpOgorICAgICAgICAgIiIiCisgICAgICAgICBURVNUUzo6CisgCitA QCAtMTI5OTYsNyArMTI5OTYsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxCYXNlcmluZ0luamVj dGlvbihNb3JwaGlzbSk6CisgICAgICAgICBzZWxmLl9yZXByX3R5cGVfc3RyID0gIlBvbHlub21p YWwgYmFzZSBpbmplY3Rpb24iCisgICAgICAgICBzZWxmLl9uZXdfY29uc3RhbnRfcG9seV8gPSBz ZWxmLl9hbl9lbGVtZW50Ll9uZXdfY29uc3RhbnRfcG9seQorIAorLSAgICBjZGVmIGRpY3QgX2V4 dHJhX3Nsb3RzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNl bGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMTMwMTQsNyAr MTMwMTQsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxCYXNlcmluZ0luamVjdGlvbihNb3JwaGlz bSk6CisgICAgICAgICAgICAgICAgIF9uZXdfY29uc3RhbnRfcG9seV89c2VsZi5fbmV3X2NvbnN0 YW50X3BvbHlfKQorICAgICAgICAgcmV0dXJuIHNsb3RzCisgCistICAgIGNkZWYgX3VwZGF0ZV9z bG90cyhzZWxmLCBkaWN0IF9zbG90cykgbm9leGNlcHQ6CisrICAgIGNkZWYgX3VwZGF0ZV9zbG90 cyhzZWxmLCBkaWN0IF9zbG90cyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoK KyAKK0BAIC0xMzAzMCw3ICsxMzAzMCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbEJhc2VyaW5n SW5qZWN0aW9uKE1vcnBoaXNtKToKKyAgICAgICAgIHNlbGYuX2FuX2VsZW1lbnQgPSBfc2xvdHNb J19hbl9lbGVtZW50J10KKyAgICAgICAgIHNlbGYuX25ld19jb25zdGFudF9wb2x5XyA9IF9zbG90 c1snX25ld19jb25zdGFudF9wb2x5XyddCisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNl bGYsIHgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KToKKyAg ICAgICAgICIiIgorICAgICAgICAgVEVTVFM6OgorIAorQEAgLTEzMDQ2LDcgKzEzMDQ2LDcgQEAg Y2RlZiBjbGFzcyBQb2x5bm9taWFsQmFzZXJpbmdJbmplY3Rpb24oTW9ycGhpc20pOgorICAgICAg ICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2NvbnN0YW50X3BvbHlfKHgsIHNlbGYu X2NvZG9tYWluKQorIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsX3dpdGhfYXJncyhzZWxmLCB4 LCBhcmdzPSgpLCBrd2RzPXt9KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF93 aXRoX2FyZ3Moc2VsZiwgeCwgYXJncz0oKSwga3dkcz17fSk6CisgICAgICAgICAiIiIKKyAgICAg ICAgIFRFU1RTOjoKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3Bv bHlub21pYWxfZ2YyeC5weXggYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxf Z2YyeC5weXgKK2luZGV4IDI4MzliMjY2YjRhLi5jM2JhZmU5NTFjYSAxMDA2NDQKKy0tLSBhL3Ny Yy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9nZjJ4LnB5eAorKysrIGIvc3JjL3Nh Z2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2dmMngucHl4CitAQCAtNzAsNyArNzAsNyBA QCBjZGVmIGNsYXNzIFBvbHlub21pYWxfR0YyWChQb2x5bm9taWFsX3RlbXBsYXRlKToKKyAgICAg ICAgICAgICBwYXNzCisgICAgICAgICBQb2x5bm9taWFsX3RlbXBsYXRlLl9faW5pdF9fKHNlbGYs IHBhcmVudCwgeCwgY2hlY2ssIGlzX2dlbiwgY29uc3RydWN0KQorIAorLSAgICBjZGVmIGdldF91 bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpKSBub2V4Y2VwdDoKKysgICAgY2RlZiBnZXRfdW5zYWZl KHNlbGYsIFB5X3NzaXplX3QgaSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUg YGlgLXRoIGNvZWZmaWNpZW50IG9mIGBgc2VsZmBgLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdl L3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50LnB4ZCBiL3Ny Yy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50LnB4 ZAoraW5kZXggYjg4YzJhNjZhNzYuLmIxYjU5M2Q2YTI2IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uv cmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQucHhkCisrKysg Yi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGlu dC5weGQKK0BAIC03LDYgKzcsNiBAQCBmcm9tIHNhZ2Uuc3RydWN0dXJlLnBhcmVudCBjaW1wb3J0 IFBhcmVudAorIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlu b21pYWwpOgorICAgICBjZGVmIGZtcHpfcG9seV90IF9wb2x5CisgCistICAgIGNkZWYgUG9seW5v bWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50IF9uZXcoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYg X3Vuc2FmZV9tdXRhdGUoc2VsZiwgbG9uZyBuLCB2YWx1ZSkgbm9leGNlcHQKKy0gICAgY3BkZWYg SW50ZWdlciBjb250ZW50KHNlbGYpIG5vZXhjZXB0CisrICAgIGNkZWYgUG9seW5vbWlhbF9pbnRl Z2VyX2RlbnNlX2ZsaW50IF9uZXcoc2VsZikKKysgICAgY3BkZWYgX3Vuc2FmZV9tdXRhdGUoc2Vs ZiwgbG9uZyBuLCB2YWx1ZSkKKysgICAgY3BkZWYgSW50ZWdlciBjb250ZW50KHNlbGYpCitkaWZm IC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2ludGVnZXJfZGVu c2VfZmxpbnQucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2ludGVn ZXJfZGVuc2VfZmxpbnQucHl4CitpbmRleCAwNGU3OTQwYWY1NS4uYWEyYTc1MDY5OTkgMTAwNjQ0 CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfaW50ZWdlcl9kZW5z ZV9mbGludC5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9p bnRlZ2VyX2RlbnNlX2ZsaW50LnB5eAorQEAgLTEwOSw3ICsxMDksNyBAQCBjZGVmIGNsYXNzIFBv bHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICIiIgor ICAgICAgICAgZm1wel9wb2x5X2NsZWFyKHNlbGYuX3BvbHkpCisgCistICAgIGNkZWYgUG9seW5v bWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50IF9uZXcoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYg UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50IF9uZXcoc2VsZik6CisgICAgICAgICByIiIi CisgICAgICAgICBRdWlja2x5IGNyZWF0ZXMgYSBuZXcgaW5pdGlhbGl6ZWQgUG9seW5vbWlhbF9p bnRlZ2VyX2RlbnNlX2ZsaW50CisgICAgICAgICB3aXRoIHRoZSBjb3JyZWN0IHBhcmVudCBhbmQg X2lzX2dlbiA9PSAwLgorQEAgLTExOSw3ICsxMTksNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxf aW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgIHguX2lzX2dlbiA9IDAK KyAgICAgICAgIHJldHVybiB4CisgCistICAgIGNwZGVmIFBvbHlub21pYWwgX25ld19jb25zdGFu dF9wb2x5KHNlbGYsIGEsIFBhcmVudCBQKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgUG9seW5vbWlh bCBfbmV3X2NvbnN0YW50X3BvbHkoc2VsZiwgYSwgUGFyZW50IFApOgorICAgICAgICAgciIiIgor ICAgICAgICAgUXVpY2tseSBjcmVhdGVzIGEgbmV3IGNvbnN0YW50IHBvbHlub21pYWwgd2l0aCB2 YWx1ZSBhIGluIHBhcmVudCBQCisgCitAQCAtNDc0LDcgKzQ3NCw3IEBAIGNkZWYgY2xhc3MgUG9s eW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorIAorICAgICAgICAgcmV0 dXJuIFBvbHlub21pYWwuX19jYWxsX18oc2VsZiwgKngsICoqa3dkcykKKyAKKy0gICAgY3BkZWYg SW50ZWdlciBjb250ZW50KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBJbnRlZ2VyIGNvbnRl bnQoc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGdyZWF0ZXN0IGNv bW1vbiBkaXZpc29yIG9mIHRoZSBjb2VmZmljaWVudHMgb2YgdGhpcworICAgICAgICAgcG9seW5v bWlhbC4gVGhlIHNpZ24gaXMgdGhlIHNpZ24gb2YgdGhlIGxlYWRpbmcgY29lZmZpY2llbnQuICBU aGUKK0BAIC01MzcsNyArNTM3LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVu c2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICByZXR1cm4gUG9seW5vbWlhbF9pbnRlZ2Vy X2RlbnNlX2ZsaW50LCBcCisgICAgICAgICAgICAgICAgKHNlbGYucGFyZW50KCksIHNlbGYubGlz dCgpLCBGYWxzZSwgc2VsZi5pc19nZW4oKSkKKyAKKy0gICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYs IFB5X3NzaXplX3Qgbikgbm9leGNlcHQ6CisrICAgIGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBQeV9z c2l6ZV90IG4pOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGBuYC10aCBjb2Vm ZmljaWVudCBvZiBgYHNlbGZgYC4KKyAKK0BAIC02MzYsNyArNjM2LDcgQEAgY2RlZiBjbGFzcyBQ b2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAgICAg bmFtZSA9IHNlbGYucGFyZW50KCkubGF0ZXhfdmFyaWFibGVfbmFtZXMoKVswXQorICAgICAgICAg cmV0dXJuIHNlbGYuX3JlcHIobmFtZT1uYW1lLCBsYXRleD1UcnVlKQorIAorLSAgICBjcGRlZiBf YWRkXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0 KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBgYHNlbGZgYCBwbHVzIGBgcmlnaHRg YC4KKyAKK0BAIC02NTYsNyArNjU2LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJf ZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICByZXR1cm4geAorIAorIAorLSAgICBj cGRlZiBfc3ViXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9zdWJfKHNlbGYs IHJpZ2h0KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBgYHNlbGZgYCBtaW51cyBg YHJpZ2h0YGAuCisgCitAQCAtNjc2LDcgKzY3Niw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9p bnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgcmV0dXJuIHgKKyAKKyAK Ky0gICAgY3BkZWYgX25lZ18oc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9uZWdfKHNlbGYp OgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIG5lZ2F0aXZlIG9mIGBgc2VsZmBgLgor IAorQEAgLTk1OSw3ICs5NTksNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5z ZV9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZi5fcGFyZW50KHJy KSwgc3MsIHR0CisgCisgCistICAgIGNwZGVmIF9tdWxfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoK KysgICAgY3BkZWYgX211bF8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgciIiIgorICAgICAgICAg UmV0dXJuIGBgc2VsZmBgIG11bHRpcGxpZWQgYnkgYGByaWdodGBgLgorIAorQEAgLTk3Niw3ICs5 NzYsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9t aWFsKToKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHgKKyAKKy0gICAgY3Bk ZWYgUG9seW5vbWlhbCBfbXVsX3RydW5jXyhzZWxmLCBQb2x5bm9taWFsIHJpZ2h0LCBsb25nIG4p IG5vZXhjZXB0OgorKyAgICBjcGRlZiBQb2x5bm9taWFsIF9tdWxfdHJ1bmNfKHNlbGYsIFBvbHlu b21pYWwgcmlnaHQsIGxvbmcgbik6CisgICAgICAgICByIiIiCisgICAgICAgICBUcnVuY2F0ZWQg bXVsdGlwbGljYXRpb24KKyAKK0BAIC0xMDA3LDcgKzEwMDcsNyBAQCBjZGVmIGNsYXNzIFBvbHlu b21pYWxfaW50ZWdlcl9kZW5zZV9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgIHNpZ19vZmYo KQorICAgICAgICAgcmV0dXJuIHgKKyAKKy0gICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQg cmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCByaWdodCk6 CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gYGBzZWxmYGAgbXVsdGlwbGllZCBieSBg YHJpZ2h0YGAsIHdoZXJlIGBgcmlnaHRgYCBpcyBhIHNjYWxhciAoaW50ZWdlcikuCisgCitAQCAt MTAyNSw3ICsxMDI1LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxp bnQoUG9seW5vbWlhbCk6CisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiB4Cisg CistICAgIGNwZGVmIF9ybXVsXyhzZWxmLCBFbGVtZW50IHJpZ2h0KSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgX3JtdWxfKHNlbGYsIEVsZW1lbnQgcmlnaHQpOgorICAgICAgICAgciIiIgorICAgICAg ICAgUmV0dXJuIGBgc2VsZmBgIG11bHRpcGxpZWQgYnkgYGByaWdodGBgLCB3aGVyZSByaWdodCBp cyBhIHNjYWxhciAoaW50ZWdlcikuCisgCitAQCAtMTE2NSw3ICsxMTY1LDcgQEAgY2RlZiBjbGFz cyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICAg ICAgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcworIAorLSAg ICBjcGRlZiBQb2x5bm9taWFsIF9wb3dlcl90cnVuYyhzZWxmLCB1bnNpZ25lZCBsb25nIG4sIGxv bmcgcHJlYykgbm9leGNlcHQ6CisrICAgIGNwZGVmIFBvbHlub21pYWwgX3Bvd2VyX3RydW5jKHNl bGYsIHVuc2lnbmVkIGxvbmcgbiwgbG9uZyBwcmVjKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAg IFRydW5jYXRlZCBwb3dlcgorIAorQEAgLTEyNTMsNyArMTI1Myw3IEBAIGNkZWYgY2xhc3MgUG9s eW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgICAgIHNp Z19vZmYoKQorICAgICAgICAgICAgIHJldHVybiByZXMKKyAKKy0gICAgY3BkZWYgUG9seW5vbWlh bCBpbnZlcnNlX3Nlcmllc190cnVuYyhzZWxmLCBsb25nIHByZWMpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBQb2x5bm9taWFsIGludmVyc2Vfc2VyaWVzX3RydW5jKHNlbGYsIGxvbmcgcHJlYyk6Cisg ICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gYSBwb2x5bm9taWFsIGFwcHJveGltYXRpb24g b2YgcHJlY2lzaW9uIGBgcHJlY2BgIG9mIHRoZSBpbnZlcnNlCisgICAgICAgICBzZXJpZXMgb2Yg dGhpcyBwb2x5bm9taWFsLgorQEAgLTEzMDgsNyArMTMwOCw3IEBAIGNkZWYgY2xhc3MgUG9seW5v bWlhbF9pbnRlZ2VyX2RlbnNlX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgc2lnX29mZigp CisgICAgICAgICByZXR1cm4gcmVzCisgCistICAgIGNwZGVmIF91bnNhZmVfbXV0YXRlKHNlbGYs IGxvbmcgbiwgdmFsdWUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfdW5zYWZlX211dGF0ZShzZWxm LCBsb25nIG4sIHZhbHVlKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFNldHMgY29lZmZpY2ll bnQgb2YgYHhebmAgdG8gdmFsdWUuCisgCitAQCAtMTczMSw3ICsxNzMxLDcgQEAgY2RlZiBjbGFz cyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICBm cm9tIHNhZ2UucmluZ3MucG9seW5vbWlhbC5wYWRpY3MucG9seW5vbWlhbF9wYWRpYyBpbXBvcnQg X3BhcmlfcGFkaWNfZmFjdG9yaXphdGlvbl90b19zYWdlCisgICAgICAgICByZXR1cm4gX3Bhcmlf cGFkaWNfZmFjdG9yaXphdGlvbl90b19zYWdlKEcsIFIsIHNlbGYubGVhZGluZ19jb2VmZmljaWVu dCgpKQorIAorLSAgICBjcGRlZiBsaXN0IGxpc3Qoc2VsZiwgYmludCBjb3B5PVRydWUpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBsaXN0IGxpc3Qoc2VsZiwgYmludCBjb3B5PVRydWUpOgorICAgICAg ICAgIiIiCisgICAgICAgICBSZXR1cm4gYSBuZXcgY29weSBvZiB0aGUgbGlzdCBvZiB0aGUgdW5k ZXJseWluZworICAgICAgICAgZWxlbWVudHMgb2YgYGBzZWxmYGAuCitkaWZmIC0tZ2l0IGEvc3Jj L3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsLnB4ZCBi L3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bC5w eGQKK2luZGV4IDk4MmZhZmI4ZWJiLi5mY2Q5MDdlMWFiZSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdl L3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bC5weGQKKysrKyBi L3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bC5w eGQKK0BAIC00LDQgKzQsNCBAQCBmcm9tIHNhZ2UucmluZ3MucG9seW5vbWlhbC5wb2x5bm9taWFs X2VsZW1lbnQgY2ltcG9ydCBQb2x5bm9taWFsCisgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVn ZXJfZGVuc2VfbnRsKFBvbHlub21pYWwpOgorICAgICBjZGVmIFpaWF9jIF9wb2x5CisgCistICAg IGNkZWYgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bCBfbmV3KHNlbGYpIG5vZXhjZXB0Cisr ICAgIGNkZWYgUG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bCBfbmV3KHNlbGYpCitkaWZmIC0t Z2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2ludGVnZXJfZGVuc2Vf bnRsLnB5eCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9pbnRlZ2VyX2Rl bnNlX250bC5weXgKK2luZGV4IDZmN2ZmYTNiNWNjLi42YTA3NDdkNDBlOSAxMDA2NDQKKy0tLSBh L3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bC5w eXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9pbnRlZ2VyX2Rl bnNlX250bC5weXgKK0BAIC03Myw3ICs3Myw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9pbnRl Z2VyX2RlbnNlX250bChQb2x5bm9taWFsKToKKyAgICAgciIiIgorICAgICBBIGRlbnNlIHBvbHlu b21pYWwgb3ZlciB0aGUgaW50ZWdlcnMsIGltcGxlbWVudGVkIHZpYSBOVEwuCisgICAgICIiIgor LSAgICBjZGVmIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwgX25ldyhzZWxmKSBub2V4Y2Vw dDoKKysgICAgY2RlZiBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsIF9uZXcoc2VsZik6Cisg ICAgICAgICByIiIiCisgICAgICAgICBRdWlja2x5IGNyZWF0ZXMgYSBuZXcgaW5pdGlhbGl6ZWQg UG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX250bAorICAgICAgICAgd2l0aCB0aGUgY29ycmVjdCBw YXJlbnQgYW5kIF9pc19nZW4gPT0gMC4KK0BAIC0zMzgsNyArMzM4LDcgQEAgY2RlZiBjbGFzcyBQ b2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsKFBvbHlub21pYWwpOgorICAgICAgICAgcmV0dXJu IFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwsIFwKKyAgICAgICAgICAgICAgICAoc2VsZi5w YXJlbnQoKSwgc2VsZi5saXN0KCksIEZhbHNlLCBzZWxmLmlzX2dlbigpKQorIAorLSAgICBjZGVm IGdldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBuKSBub2V4Y2VwdDoKKysgICAgY2RlZiBnZXRf dW5zYWZlKHNlbGYsIFB5X3NzaXplX3Qgbik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVy biB0aGUgYG5gLXRoIGNvZWZmaWNpZW50IG9mIGBgc2VsZmBgLgorIAorQEAgLTQyOCw3ICs0Mjgs NyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9udGwoUG9seW5vbWlhbCk6 CisgICAgICAgICAgICAgbmFtZSA9IHNlbGYucGFyZW50KCkubGF0ZXhfdmFyaWFibGVfbmFtZXMo KVswXQorICAgICAgICAgcmV0dXJuIHNlbGYuX3JlcHIobmFtZSwgbGF0ZXg9VHJ1ZSkKKyAKKy0g ICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWRkXyhz ZWxmLCByaWdodCk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm5zIHNlbGYgcGx1cyBy aWdodC4KKyAKK0BAIC00NDYsNyArNDQ2LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVn ZXJfZGVuc2VfbnRsKFBvbHlub21pYWwpOgorICAgICAgICAgcmV0dXJuIHgKKyAKKyAKKy0gICAg Y3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc3ViXyhzZWxm LCByaWdodCk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gc2VsZiBtaW51cyByaWdo dC4KKyAKK0BAIC00NjQsNyArNDY0LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJf ZGVuc2VfbnRsKFBvbHlub21pYWwpOgorICAgICAgICAgcmV0dXJuIHgKKyAKKyAKKy0gICAgY3Bk ZWYgX25lZ18oc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9uZWdfKHNlbGYpOgorICAgICAg ICAgciIiIgorICAgICAgICAgUmV0dXJucyBuZWdhdGl2ZSBvZiBgYHNlbGZgYC4KKyAKK0BAIC02 ODAsNyArNjgwLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsKFBv bHlub21pYWwpOgorICAgICAgICAgICAgIHJldHVybiBTKHJyKSwgc3MsIHR0CisgCisgCistICAg IGNwZGVmIF9tdWxfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX211bF8oc2Vs ZiwgcmlnaHQpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJucyBzZWxmIG11bHRpcGxp ZWQgYnkgcmlnaHQuCisgCitAQCAtNjk1LDcgKzY5NSw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlh bF9pbnRlZ2VyX2RlbnNlX250bChQb2x5bm9taWFsKToKKyAgICAgICAgICAgICAgICAgKDxQb2x5 bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsPnJpZ2h0KS5fcG9seSkKKyAgICAgICAgIHJldHVybiB4 CisgCistICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IHJpZ2h0KSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgcmlnaHQpOgorICAgICAgICAgciIiIgorICAg ICAgICAgUmV0dXJucyBzZWxmIG11bHRpcGxpZWQgYnkgcmlnaHQsIHdoZXJlIHJpZ2h0IGlzIGEg c2NhbGFyIChpbnRlZ2VyKS4KKyAKK0BAIC03MTQsNyArNzE0LDcgQEAgY2RlZiBjbGFzcyBQb2x5 bm9taWFsX2ludGVnZXJfZGVuc2VfbnRsKFBvbHlub21pYWwpOgorICAgICAgICAgWlpYX211bF9a Wih4Ll9wb2x5LCBzZWxmLl9wb2x5LCBfcmlnaHQpCisgICAgICAgICByZXR1cm4geAorIAorLSAg ICBjcGRlZiBfcm11bF8oc2VsZiwgRWxlbWVudCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9ybXVsXyhzZWxmLCBFbGVtZW50IHJpZ2h0KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJl dHVybnMgc2VsZiBtdWx0aXBsaWVkIGJ5IHJpZ2h0LCB3aGVyZSByaWdodCBpcyBhIHNjYWxhciAo aW50ZWdlcikuCisgCitAQCAtMTA4OCw3ICsxMDg4LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFs X2ludGVnZXJfZGVuc2VfbnRsKFBvbHlub21pYWwpOgorICAgICAgICAgZnJvbSBzYWdlLnJpbmdz LnBvbHlub21pYWwucGFkaWNzLnBvbHlub21pYWxfcGFkaWMgaW1wb3J0IF9wYXJpX3BhZGljX2Zh Y3Rvcml6YXRpb25fdG9fc2FnZQorICAgICAgICAgcmV0dXJuIF9wYXJpX3BhZGljX2ZhY3Rvcml6 YXRpb25fdG9fc2FnZShHLCBSLCBzZWxmLmxlYWRpbmdfY29lZmZpY2llbnQoKSkKKyAKKy0gICAg Y3BkZWYgbGlzdCBsaXN0KHNlbGYsIGJpbnQgY29weT1UcnVlKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgbGlzdCBsaXN0KHNlbGYsIGJpbnQgY29weT1UcnVlKToKKyAgICAgICAgICIiIgorICAgICAg ICAgUmV0dXJuIGEgbmV3IGNvcHkgb2YgdGhlIGxpc3Qgb2YgdGhlIHVuZGVybHlpbmcKKyAgICAg ICAgIGVsZW1lbnRzIG9mIGBgc2VsZmBgLgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3Bv bHlub21pYWwvcG9seW5vbWlhbF9tb2RuX2RlbnNlX250bC5weGQgYi9zcmMvc2FnZS9yaW5ncy9w b2x5bm9taWFsL3BvbHlub21pYWxfbW9kbl9kZW5zZV9udGwucHhkCitpbmRleCBmNDc2ZGM3ODJj ZS4uNjkzNGFjZmVlOGQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3Bv bHlub21pYWxfbW9kbl9kZW5zZV9udGwucHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9t aWFsL3BvbHlub21pYWxfbW9kbl9kZW5zZV9udGwucHhkCitAQCAtMjIsMTQgKzIyLDE0IEBAIGNk ZWYgY2xhc3MgUG9seW5vbWlhbF9kZW5zZV9tb2RfbihQb2x5bm9taWFsKToKKyBjZGVmIGNsYXNz IFBvbHlub21pYWxfZGVuc2VfbW9kbl9udGxfenooUG9seW5vbWlhbF9kZW5zZV9tb2Rfbik6Cisg ICAgIGNkZWYgenpfcFhfYyB4CisgICAgIGNkZWYgbnRsX3p6X3BDb250ZXh0X2NsYXNzIGMKKy0g ICAgY2RlZiBQb2x5bm9taWFsX2RlbnNlX21vZG5fbnRsX3p6IF9uZXcoc2VsZikgbm9leGNlcHQK Ky0gICAgY3BkZWYgX21vZF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0CisrICAgIGNkZWYgUG9seW5v bWlhbF9kZW5zZV9tb2RuX250bF96eiBfbmV3KHNlbGYpCisrICAgIGNwZGVmIF9tb2RfKHNlbGYs IHJpZ2h0KQorIAorIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9kZW5zZV9tb2RuX250bF9aWihQb2x5 bm9taWFsX2RlbnNlX21vZF9uKToKKyAgICAgY2RlZiBaWl9wWF9jIHgKKyAgICAgY2RlZiBudGxf WlpfcENvbnRleHRfY2xhc3MgYworLSAgICBjZGVmIFBvbHlub21pYWxfZGVuc2VfbW9kbl9udGxf WlogX25ldyhzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfbW9kXyhzZWxmLCByaWdodCkgbm9l eGNlcHQKKysgICAgY2RlZiBQb2x5bm9taWFsX2RlbnNlX21vZG5fbnRsX1paIF9uZXcoc2VsZikK KysgICAgY3BkZWYgX21vZF8oc2VsZiwgcmlnaHQpCisgCisgY2RlZiBjbGFzcyBQb2x5bm9taWFs X2RlbnNlX21vZF9wKFBvbHlub21pYWxfZGVuc2VfbW9kX24pOgorICAgICBwYXNzCitkaWZmIC0t Z2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX21vZG5fZGVuc2VfbnRs LnB5eCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9tb2RuX2RlbnNlX250 bC5weXgKK2luZGV4IGI1ZjRjN2ZlZDA0Li4wMmVkMjEzMzFlYiAxMDA2NDQKKy0tLSBhL3NyYy9z YWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9tb2RuX2RlbnNlX250bC5weXgKKysrKyBi L3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9tb2RuX2RlbnNlX250bC5weXgK K0BAIC0xODgsNyArMTg4LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2RlbnNlX21vZF9uKFBv bHlub21pYWwpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fcG9seQorIAor LSAgICBjZGVmIGdldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBuKSBub2V4Y2VwdDoKKysgICAg Y2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3Qgbik6CisgICAgICAgICAiIiIKKyAgICAg ICAgIFJldHVybiB0aGUgYG5gLXRoIGNvZWZmaWNpZW50IG9mIGBgc2VsZmBgLgorIAorQEAgLTIy MCwxMCArMjIwLDEwIEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9kZW5zZV9tb2RfbihQb2x5bm9t aWFsKToKKyAgICAgICAgICAgICByZXR1cm4gKH5zZWxmKSoqKC1uKQorICAgICAgICAgcmV0dXJu IHNlbGYucGFyZW50KCkoc2VsZi5fcG9seSoqbiwgY29uc3RydWN0PVRydWUpCisgCistICAgIGNw ZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FkZF8oc2VsZiwg cmlnaHQpOgorICAgICAgICAgcmV0dXJuIHNlbGYucGFyZW50KCkoc2VsZi5fcG9seSArICg8UG9s eW5vbWlhbF9kZW5zZV9tb2Rfbj5yaWdodCkuX3BvbHksIGNvbnN0cnVjdD1UcnVlKQorIAorLSAg ICBjcGRlZiBfbXVsXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9tdWxfKHNl bGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTIz Myw3ICsyMzMsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZGVuc2VfbW9kX24oUG9seW5vbWlh bCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLnBhcmVudCgpKHNlbGYuX3Bv bHkgKiAoPFBvbHlub21pYWxfZGVuc2VfbW9kX24+cmlnaHQpLl9wb2x5LCBjb25zdHJ1Y3Q9VHJ1 ZSkKKyAKKy0gICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgYykgbm9leGNlcHQ6CisrICAg IGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IGMpOgorICAgICAgICAgdHJ5OgorICAgICAgICAg ICAgIHJldHVybiBzZWxmLnBhcmVudCgpKFpaX3BYKFtjXSwgc2VsZi5wYXJlbnQoKS5tb2R1bHVz KCkpICogc2VsZi5fcG9seSwgY29uc3RydWN0PVRydWUpCisgICAgICAgICBleGNlcHQgUnVudGlt ZUVycm9yIGFzIG1zZzogIyBzaG91bGQgdGhpcyByZWFsbHkgYmUgYSBUeXBlRXJyb3IKK0BAIC0y ODQsNyArMjg0LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2RlbnNlX21vZF9uKFBvbHlub21p YWwpOgorICAgICAgICAgcmV0dXJuIHNlbGYucGFyZW50KCkoc2VsZi5fcG9seS5sZWZ0X3NoaWZ0 KG4pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RydWN0PVRydWUpCisgCist ICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3N1Yl8o c2VsZiwgcmlnaHQpOgorICAgICAgICAgcmV0dXJuIHNlbGYucGFyZW50KCkoc2VsZi5fcG9seSAt ICg8UG9seW5vbWlhbF9kZW5zZV9tb2Rfbj5yaWdodCkuX3BvbHksIGNvbnN0cnVjdD1UcnVlKQor IAorICAgICBkZWYgX19mbG9vcmRpdl9fKHNlbGYsIHJpZ2h0KToKK0BAIC0zMTYsNyArMzE2LDcg QEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2RlbnNlX21vZF9uKFBvbHlub21pYWwpOgorICAgICAg ICAgIiIiCisgICAgICAgICByZXR1cm4gc21hbGxJbnRlZ2VyKG1heChzZWxmLl9wb2x5LmRlZ3Jl ZSgpLCAtMSkpCisgCistICAgIGNwZGVmIGxpc3QgbGlzdChzZWxmLCBiaW50IGNvcHk9VHJ1ZSkg bm9leGNlcHQ6CisrICAgIGNwZGVmIGxpc3QgbGlzdChzZWxmLCBiaW50IGNvcHk9VHJ1ZSk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBhIG5ldyBjb3B5IG9mIHRoZSBsaXN0IG9mIHRo ZSB1bmRlcmx5aW5nCisgICAgICAgICBlbGVtZW50cyBvZiBgYHNlbGZgYC4KK0BAIC02NzQsNyAr Njc0LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2RlbnNlX21vZG5fbnRsX3p6KFBvbHlub21p YWxfZGVuc2VfbW9kX24pOgorICAgICAgICAgc2VsZi54ID0gbnRsLngKKyAgICAgICAgIHNlbGYu YyA9IG50bC5jCisgCistICAgIGNkZWYgUG9seW5vbWlhbF9kZW5zZV9tb2RuX250bF96eiBfbmV3 KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIFBvbHlub21pYWxfZGVuc2VfbW9kbl9udGxfenog X25ldyhzZWxmKToKKyAgICAgICAgIGNkZWYgUG9seW5vbWlhbF9kZW5zZV9tb2RuX250bF96eiB5 ID0gPFBvbHlub21pYWxfZGVuc2VfbW9kbl9udGxfeno+UG9seW5vbWlhbF9kZW5zZV9tb2RuX250 bF96ei5fX25ld19fKFBvbHlub21pYWxfZGVuc2VfbW9kbl9udGxfenopCisgICAgICAgICB5LmMg PSBzZWxmLmMKKyAgICAgICAgIHkuX3BhcmVudCA9IHNlbGYuX3BhcmVudAorQEAgLTY5OCw3ICs2 OTgsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZGVuc2VfbW9kbl9udGxfenooUG9seW5vbWlh bF9kZW5zZV9tb2Rfbik6CisgICAgICAgICBjZGVmIGxvbmcgaQorICAgICAgICAgcmV0dXJuIFsg enpfcF9yZXAoenpfcFhfR2V0Q29lZmYoc2VsZi54LCBpKSkgZm9yIGkgZnJvbSAwIDw9IGkgPD0g enpfcFhfZGVnKHNlbGYueCkgXQorIAorLSAgICBjZGVmIGdldF91bnNhZmUoc2VsZiwgUHlfc3Np emVfdCBuKSBub2V4Y2VwdDoKKysgICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3Qg bik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYG5gLXRoIGNvZWZmaWNpZW50 IG9mIGBgc2VsZmBgLgorIAorQEAgLTcyMCw3ICs3MjAsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21p YWxfZGVuc2VfbW9kbl9udGxfenooUG9seW5vbWlhbF9kZW5zZV9tb2Rfbik6CisgICAgICAgICBz ZWxmLmMucmVzdG9yZV9jKCkKKyAgICAgICAgIHp6X3BYX1NldENvZWZmX2xvbmcoc2VsZi54LCBu LCB2YWx1ZSkKKyAKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwgX3JpZ2h0KSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgX2FkZF8oc2VsZiwgX3JpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgVEVT VFM6OgorIAorQEAgLTczNyw3ICs3MzcsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZGVuc2Vf bW9kbl9udGxfenooUG9seW5vbWlhbF9kZW5zZV9tb2Rfbik6CisgICAgICAgICBpZiBkb19zaWc6 IHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHIKKyAKKy0gICAgY3BkZWYgX3N1Yl8oc2VsZiwg X3JpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3N1Yl8oc2VsZiwgX3JpZ2h0KToKKyAgICAg ICAgICIiIgorICAgICAgICAgVEVTVFM6OgorIAorQEAgLTc1NCw3ICs3NTQsNyBAQCBjZGVmIGNs YXNzIFBvbHlub21pYWxfZGVuc2VfbW9kbl9udGxfenooUG9seW5vbWlhbF9kZW5zZV9tb2Rfbik6 CisgICAgICAgICBpZiBkb19zaWc6IHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHIKKyAKKy0g ICAgY3BkZWYgX211bF8oc2VsZiwgX3JpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX211bF8o c2VsZiwgX3JpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgVEVTVFM6OgorIAorQEAgLTc3 NCw3ICs3NzQsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZGVuc2VfbW9kbl9udGxfenooUG9s eW5vbWlhbF9kZW5zZV9tb2Rfbik6CisgICAgICAgICBpZiBkb19zaWc6IHNpZ19vZmYoKQorICAg ICAgICAgcmV0dXJuIHIKKyAKKy0gICAgY3BkZWYgUG9seW5vbWlhbCBfbXVsX3RydW5jXyhzZWxm LCBQb2x5bm9taWFsIHJpZ2h0LCBsb25nIG4pIG5vZXhjZXB0OgorKyAgICBjcGRlZiBQb2x5bm9t aWFsIF9tdWxfdHJ1bmNfKHNlbGYsIFBvbHlub21pYWwgcmlnaHQsIGxvbmcgbik6CisgICAgICAg ICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHByb2R1Y3Qgb2YgYGBzZWxmYGAgYW5kIGBgcmln aHRgYCB0cnVuY2F0ZWQgdG8gdGhlCisgICAgICAgICBnaXZlbiBsZW5ndGggYG5gCitAQCAtODEy LDcgKzgxMiw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9kZW5zZV9tb2RuX250bF96eihQb2x5 bm9taWFsX2RlbnNlX21vZF9uKToKKyAgICAgICAgIGlmIGRvX3NpZzogc2lnX29mZigpCisgICAg ICAgICByZXR1cm4gcgorIAorLSAgICBjcGRlZiBfcm11bF8oc2VsZiwgRWxlbWVudCBjKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgX3JtdWxfKHNlbGYsIEVsZW1lbnQgYyk6CisgICAgICAgICAiIiIK KyAgICAgICAgIFRFU1RTOjoKKyAKK0BAIC04MjgsNyArODI4LDcgQEAgY2RlZiBjbGFzcyBQb2x5 bm9taWFsX2RlbnNlX21vZG5fbnRsX3p6KFBvbHlub21pYWxfZGVuc2VfbW9kX24pOgorICAgICAg ICAgaWYgZG9fc2lnOiBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByCisgCistICAgIGNwZGVm IF9sbXVsXyhzZWxmLCBFbGVtZW50IGMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbG11bF8oc2Vs ZiwgRWxlbWVudCBjKToKKyAgICAgICAgICIiIgorICAgICAgICAgVEVTVFM6OgorIAorQEAgLTkz OCw3ICs5MzgsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZGVuc2VfbW9kbl9udGxfenooUG9s eW5vbWlhbF9kZW5zZV9tb2Rfbik6CisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVy biBxLCByCisgCistICAgIGNwZGVmIF9mbG9vcmRpdl8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBfZmxvb3JkaXZfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAg ICAgUmV0dXJuIHRoZSB3aG9sZSBwYXJ0IG9mIGBgc2VsZmBgL2BgcmlnaHRgYCwgd2l0aG91dCBy ZW1haW5kZXIuCisgCitAQCAtOTYyLDcgKzk2Miw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9k ZW5zZV9tb2RuX250bF96eihQb2x5bm9taWFsX2RlbnNlX21vZF9uKToKKyAgICAgICAgIHNpZ19v ZmYoKQorICAgICAgICAgcmV0dXJuIHEKKyAKKy0gICAgY3BkZWYgX21vZF8oc2VsZiwgcmlnaHQp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbW9kXyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIK KyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0xMTY5LDcgKzExNjksNyBAQCBjZGVmIGNsYXNz IFBvbHlub21pYWxfZGVuc2VfbW9kbl9udGxfenooUG9seW5vbWlhbF9kZW5zZV9tb2Rfbik6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiB6el9wWF9kZWcoc2VsZi54KQorIAorLSAgICBj cGRlZiBQb2x5bm9taWFsIHRydW5jYXRlKHNlbGYsIGxvbmcgbikgbm9leGNlcHQ6CisrICAgIGNw ZGVmIFBvbHlub21pYWwgdHJ1bmNhdGUoc2VsZiwgbG9uZyBuKToKKyAgICAgICAgICIiIgorICAg ICAgICAgUmV0dXJuIHRoaXMgcG9seW5vbWlhbCBtb2QgYHhebmAuCisgCitAQCAtMTI1MCwxNyAr MTI1MCwxNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZGVuc2VfbW9kbl9udGxfWlooUG9seW5v bWlhbF9kZW5zZV9tb2Rfbik6CisgICAgICAgICBpZiA8b2JqZWN0PnNlbGYuYyBpcyBub3QgTm9u ZToKKyAgICAgICAgICAgICBzZWxmLmMucmVzdG9yZV9jKCkKKyAKKy0gICAgY2RlZiBQb2x5bm9t aWFsX2RlbnNlX21vZG5fbnRsX1paIF9uZXcoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgUG9s eW5vbWlhbF9kZW5zZV9tb2RuX250bF9aWiBfbmV3KHNlbGYpOgorICAgICAgICAgY2RlZiBQb2x5 bm9taWFsX2RlbnNlX21vZG5fbnRsX1paIHkgPSA8UG9seW5vbWlhbF9kZW5zZV9tb2RuX250bF9a Wj5Qb2x5bm9taWFsX2RlbnNlX21vZG5fbnRsX1paLl9fbmV3X18oUG9seW5vbWlhbF9kZW5zZV9t b2RuX250bF9aWikKKyAgICAgICAgIHkuYyA9IHNlbGYuYworICAgICAgICAgeS5fcGFyZW50ID0g c2VsZi5fcGFyZW50CisgICAgICAgICByZXR1cm4geQorIAorIAorLSAgICBjcGRlZiBsaXN0IGxp c3Qoc2VsZiwgYmludCBjb3B5PVRydWUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBsaXN0IGxpc3Qo c2VsZiwgYmludCBjb3B5PVRydWUpOgorICAgICAgICAgcmV0dXJuIFtzZWxmLmdldF91bnNhZmUo bikgZm9yIG4gZnJvbSAwIDw9IG4gPD0gc2VsZi5kZWdyZWUoKV0KKyAKKy0gICAgY2RlZiBnZXRf dW5zYWZlKHNlbGYsIFB5X3NzaXplX3Qgbikgbm9leGNlcHQ6CisrICAgIGNkZWYgZ2V0X3Vuc2Fm ZShzZWxmLCBQeV9zc2l6ZV90IG4pOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhl IGBuYC10aCBjb2VmZmljaWVudCBvZiBgYHNlbGZgYC4KKyAKK0BAIC0xMjkyLDcgKzEyOTIsNyBA QCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZGVuc2VfbW9kbl9udGxfWlooUG9seW5vbWlhbF9kZW5z ZV9tb2Rfbik6CisgICAgICAgICBjZGVmIG50bF9aWl9wIHZhbCA9IG50bF9aWl9wKGEsIHNlbGYu YykKKyAgICAgICAgIFpaX3BYX1NldENvZWZmKHNlbGYueCwgbiwgdmFsLngpCisgCistICAgIGNw ZGVmIF9hZGRfKHNlbGYsIF9yaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKHNlbGYs IF9yaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRFU1RTOjoKKyAKK0BAIC0xMzA5LDcg KzEzMDksNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZGVuc2VfbW9kbl9udGxfWlooUG9seW5v bWlhbF9kZW5zZV9tb2Rfbik6CisgICAgICAgICBpZiBkb19zaWc6IHNpZ19vZmYoKQorICAgICAg ICAgcmV0dXJuIHIKKyAKKy0gICAgY3BkZWYgX3N1Yl8oc2VsZiwgX3JpZ2h0KSBub2V4Y2VwdDoK KysgICAgY3BkZWYgX3N1Yl8oc2VsZiwgX3JpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAg VEVTVFM6OgorIAorQEAgLTEzMjYsNyArMTMyNiw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9k ZW5zZV9tb2RuX250bF9aWihQb2x5bm9taWFsX2RlbnNlX21vZF9uKToKKyAgICAgICAgIGlmIGRv X3NpZzogc2lnX29mZigpCisgICAgICAgICByZXR1cm4gcgorIAorLSAgICBjcGRlZiBfbXVsXyhz ZWxmLCBfcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbXVsXyhzZWxmLCBfcmlnaHQpOgor ICAgICAgICAgIiIiCisgICAgICAgICBURVNUUzo6CisgCitAQCAtMTM0Niw3ICsxMzQ2LDcgQEAg Y2RlZiBjbGFzcyBQb2x5bm9taWFsX2RlbnNlX21vZG5fbnRsX1paKFBvbHlub21pYWxfZGVuc2Vf bW9kX24pOgorICAgICAgICAgaWYgZG9fc2lnOiBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiBy CisgCistICAgIGNwZGVmIFBvbHlub21pYWwgX211bF90cnVuY18oc2VsZiwgUG9seW5vbWlhbCBy aWdodCwgbG9uZyBuKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgUG9seW5vbWlhbCBfbXVsX3RydW5j XyhzZWxmLCBQb2x5bm9taWFsIHJpZ2h0LCBsb25nIG4pOgorICAgICAgICAgIiIiCisgICAgICAg ICBSZXR1cm4gdGhlIHByb2R1Y3Qgb2YgYGBzZWxmYGAgYW5kIGBgcmlnaHRgYCB0cnVuY2F0ZWQg dG8gdGhlCisgICAgICAgICBnaXZlbiBsZW5ndGggYG5gLCBvbmx5IHJldHVybiB0ZXJtcyBvZiBk ZWdyZWUgbGVzcyB0aGFuIGBuYC4KK0BAIC0xMzg0LDcgKzEzODQsNyBAQCBjZGVmIGNsYXNzIFBv bHlub21pYWxfZGVuc2VfbW9kbl9udGxfWlooUG9seW5vbWlhbF9kZW5zZV9tb2Rfbik6CisgICAg ICAgICBpZiBkb19zaWc6IHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHIKKyAKKy0gICAgY3Bk ZWYgX3JtdWxfKHNlbGYsIEVsZW1lbnQgYykgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9ybXVsXyhz ZWxmLCBFbGVtZW50IGMpOgorICAgICAgICAgIiIiCisgICAgICAgICBURVNUUzo6CisgCitAQCAt MTQwMSw3ICsxNDAxLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2RlbnNlX21vZG5fbnRsX1pa KFBvbHlub21pYWxfZGVuc2VfbW9kX24pOgorICAgICAgICAgaWYgZG9fc2lnOiBzaWdfb2ZmKCkK KyAgICAgICAgIHJldHVybiByCisgCistICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IGMp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCBjKToKKyAgICAgICAg ICIiIgorICAgICAgICAgVEVTVFM6OgorIAorQEAgLTE0OTUsNyArMTQ5NSw3IEBAIGNkZWYgY2xh c3MgUG9seW5vbWlhbF9kZW5zZV9tb2RuX250bF9aWihQb2x5bm9taWFsX2RlbnNlX21vZF9uKToK KyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHEsIHIKKyAKKy0gICAgY3BkZWYg X2Zsb29yZGl2XyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9mbG9vcmRpdl8o c2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHdob2xlIHBh cnQgb2YgYGBzZWxmYGAgLyBgYHJpZ2h0YGAsIHdpdGhvdXQgcmVtYWluZGVyLgorIAorQEAgLTE1 MTksNyArMTUxOSw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9kZW5zZV9tb2RuX250bF9aWihQ b2x5bm9taWFsX2RlbnNlX21vZF9uKToKKyAgICAgICAgIHNpZ19vZmYoKQorICAgICAgICAgcmV0 dXJuIHEKKyAKKy0gICAgY3BkZWYgX21vZF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBfbW9kXyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVT OjoKKyAKK0BAIC0xNzMwLDcgKzE3MzAsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZGVuc2Vf bW9kbl9udGxfWlooUG9seW5vbWlhbF9kZW5zZV9tb2Rfbik6CisgICAgICAgICAiIiIKKyAgICAg ICAgIHJldHVybiBaWl9wWF9kZWcoc2VsZi54KQorIAorLSAgICBjcGRlZiBQb2x5bm9taWFsIHRy dW5jYXRlKHNlbGYsIGxvbmcgbikgbm9leGNlcHQ6CisrICAgIGNwZGVmIFBvbHlub21pYWwgdHJ1 bmNhdGUoc2VsZiwgbG9uZyBuKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoaXMg cG9seW5vbWlhbCBtb2QgYHhebmAuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9s eW5vbWlhbC9wb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50LnB4ZCBiL3NyYy9zYWdlL3JpbmdzL3Bv bHlub21pYWwvcG9seW5vbWlhbF9yYXRpb25hbF9mbGludC5weGQKK2luZGV4IGRhY2NhOTg3ODMw Li5mNDY0NGYxOWQwNCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9s eW5vbWlhbF9yYXRpb25hbF9mbGludC5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21p YWwvcG9seW5vbWlhbF9yYXRpb25hbF9mbGludC5weGQKK0BAIC0xMyw4ICsxMyw4IEBAIGZyb20g c2FnZS5yaW5ncy5wb2x5bm9taWFsLnBvbHlub21pYWxfZWxlbWVudCBjaW1wb3J0IFBvbHlub21p YWwKKyBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6Cisg ICAgIGNkZWYgZm1wcV9wb2x5X3QgX3BvbHkKKyAKKy0gICAgY2RlZiBQb2x5bm9taWFsX3JhdGlv bmFsX2ZsaW50IF9uZXcoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgX21vZF8oc2VsZiwgcmln aHQpIG5vZXhjZXB0CistICAgIGNwZGVmIF91bnNhZmVfbXV0YXRlKHNlbGYsIHVuc2lnbmVkIGxv bmcgbiwgdmFsdWUpIG5vZXhjZXB0CistICAgIGNwZGVmIFBvbHlub21pYWwgdHJ1bmNhdGUoc2Vs ZiwgbG9uZyBuKSBub2V4Y2VwdAorKyAgICBjZGVmIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQg X25ldyhzZWxmKQorKyAgICBjcGRlZiBfbW9kXyhzZWxmLCByaWdodCkKKysgICAgY3BkZWYgX3Vu c2FmZV9tdXRhdGUoc2VsZiwgdW5zaWduZWQgbG9uZyBuLCB2YWx1ZSkKKysgICAgY3BkZWYgUG9s eW5vbWlhbCB0cnVuY2F0ZShzZWxmLCBsb25nIG4pCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uv cmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50LnB5eCBiL3NyYy9zYWdl L3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9yYXRpb25hbF9mbGludC5weXgKK2luZGV4IGVi NTM0NDc0ZWI3Li4zZWMyZWIwMzMwMiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlu b21pYWwvcG9seW5vbWlhbF9yYXRpb25hbF9mbGludC5weXgKKysrKyBiL3NyYy9zYWdlL3Jpbmdz L3BvbHlub21pYWwvcG9seW5vbWlhbF9yYXRpb25hbF9mbGludC5weXgKK0BAIC0xMDksNyArMTA5 LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgor ICAgICAjIEFsbG9jYXRpb24gJiBpbml0aWFsaXNhdGlvbiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICMKKyAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgCistICAg IGNkZWYgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludCBfbmV3KHNlbGYpIG5vZXhjZXB0OgorKyAg ICBjZGVmIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQgX25ldyhzZWxmKToKKyAgICAgICAgICIi IgorICAgICAgICAgUXVpY2tseSBjcmVhdGVzIGEgbmV3IHBvbHlub21pYWwgb2JqZWN0IGluIHRo aXMgY2xhc3MuCisgCitAQCAtMTMwLDcgKzEzMCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9y YXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgIHJlcy5faXNfZ2VuID0gMAorICAg ICAgICAgcmV0dXJuIHJlcworIAorLSAgICBjcGRlZiBQb2x5bm9taWFsIF9uZXdfY29uc3RhbnRf cG9seShzZWxmLCB4LCBQYXJlbnQgUCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIFBvbHlub21pYWwg X25ld19jb25zdGFudF9wb2x5KHNlbGYsIHgsIFBhcmVudCBQKToKKyAgICAgICAgIHIiIiIKKyAg ICAgICAgIFF1aWNrbHkgY3JlYXRlcyBhIG5ldyBjb25zdGFudCBwb2x5bm9taWFsIHdpdGggdmFs dWUgeCBpbiBwYXJlbnQgUAorIAorQEAgLTM0OCw3ICszNDgsNyBAQCBjZGVmIGNsYXNzIFBvbHlu b21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICBzZWxmLl9wYXJlbnQu X3Npbmd1bGFyXyhzaW5ndWxhcikuc2V0X3JpbmcoKSAgIyBFeHBlbnNpdmUhCisgICAgICAgICBy ZXR1cm4gc2luZ3VsYXIoc2VsZi5fc2luZ3VsYXJfaW5pdF8oKSkKKyAKKy0gICAgY3BkZWYgbGlz dCBsaXN0KHNlbGYsIGJpbnQgY29weT1UcnVlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgbGlzdCBs aXN0KHNlbGYsIGJpbnQgY29weT1UcnVlKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJu IGEgbGlzdCB3aXRoIHRoZSBjb2VmZmljaWVudHMgb2YgYGBzZWxmYGAuCisgCitAQCAtMzkyLDcg KzM5Miw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFs KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNtYWxsSW50ZWdlcihmbXBxX3BvbHlf ZGVncmVlKHNlbGYuX3BvbHkpKQorIAorLSAgICBjZGVmIGdldF91bnNhZmUoc2VsZiwgUHlfc3Np emVfdCBuKSBub2V4Y2VwdDoKKysgICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3NzaXplX3Qg bik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYG5gLXRoIGNvZWZmaWNpZW50 IG9mIGBgc2VsZmBgLgorIAorQEAgLTQxNCw3ICs0MTQsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21p YWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICBmbXBxX3BvbHlfZ2V0X2Nv ZWZmX21wcSh6LnZhbHVlLCBzZWxmLl9wb2x5LCBuKQorICAgICAgICAgcmV0dXJuIHoKKyAKKy0g ICAgY3BkZWYgX3Vuc2FmZV9tdXRhdGUoc2VsZiwgdW5zaWduZWQgbG9uZyBuLCB2YWx1ZSkgbm9l eGNlcHQ6CisrICAgIGNwZGVmIF91bnNhZmVfbXV0YXRlKHNlbGYsIHVuc2lnbmVkIGxvbmcgbiwg dmFsdWUpOgorICAgICAgICAgIiIiCisgICAgICAgICBTZXRzIHRoZSBgbmAtdGggY29lZmZpY2ll bnQgb2YgYGBzZWxmYGAgdG8gdmFsdWUuCisgCitAQCAtNTYxLDcgKzU2MSw3IEBAIGNkZWYgY2xh c3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAKKyAgICAgICAgIHJl dHVybiBQb2x5bm9taWFsLl9fY2FsbF9fKHNlbGYsICp4LCAqKmt3ZHMpCisgCistICAgIGNwZGVm IFBvbHlub21pYWwgdHJ1bmNhdGUoc2VsZiwgbG9uZyBuKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg UG9seW5vbWlhbCB0cnVuY2F0ZShzZWxmLCBsb25nIG4pOgorICAgICAgICAgIiIiCisgICAgICAg ICBSZXR1cm4gc2VsZiB0cnVuY2F0ZWQgbW9kdWxvIGB0Xm5gLgorIAorQEAgLTg0OCw3ICs4NDgs NyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6Cisg ICAgICMgQXJpdGhtZXRpYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIworICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAKKy0gICAg Y3BkZWYgX2FkZF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWRkXyhzZWxm LCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgc3VtIG9mIHR3byBy YXRpb25hbCBwb2x5bm9taWFscy4KKyAKK0BAIC04NzYsNyArODc2LDcgQEAgY2RlZiBjbGFzcyBQ b2x5bm9taWFsX3JhdGlvbmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgaWYgZG9fc2ln OiBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKKy0gICAgY3BkZWYgX3N1Yl8oc2Vs ZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodCk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgZGlmZmVyZW5jZSBvZiB0d28gcmF0aW9uYWwg cG9seW5vbWlhbHMuCisgCitAQCAtOTA0LDcgKzkwNCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlh bF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKKyAgICAgICAgIGlmIGRvX3NpZzogc2lnX29m ZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCistICAgIGNwZGVmIF9uZWdfKHNlbGYpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBfbmVnXyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0 dXJuIHRoZSBkaWZmZXJlbmNlIG9mIHR3byByYXRpb25hbCBwb2x5bm9taWFscy4KKyAKK0BAIC0x MDU4LDcgKzEwNTgsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9s eW5vbWlhbCk6CisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiBkLCBzLCB0Cisg CistICAgIGNwZGVmIF9tdWxfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX211 bF8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHByb2R1 Y3Qgb2YgYGBzZWxmYGAgYW5kIGBgcmlnaHRgYC4KKyAKK0BAIC0xMDg3LDcgKzEwODcsNyBAQCBj ZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAg ICBpZiBkb19zaWc6IHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorLSAgICBjcGRl ZiBQb2x5bm9taWFsIF9tdWxfdHJ1bmNfKHNlbGYsIFBvbHlub21pYWwgcmlnaHQsIGxvbmcgbikg bm9leGNlcHQ6CisrICAgIGNwZGVmIFBvbHlub21pYWwgX211bF90cnVuY18oc2VsZiwgUG9seW5v bWlhbCByaWdodCwgbG9uZyBuKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFRydW5jYXRlZCBt dWx0aXBsaWNhdGlvbi4KKyAKK0BAIC0xMTI0LDcgKzExMjQsNyBAQCBjZGVmIGNsYXNzIFBvbHlu b21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6CisgICAgICAgICBpZiBkb19zaWc6IHNp Z19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorLSAgICBjcGRlZiBfcm11bF8oc2VsZiwg RWxlbWVudCBsZWZ0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3JtdWxfKHNlbGYsIEVsZW1lbnQg bGVmdCk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gYGBsZWZ0ICogc2VsZmBgLCB3 aGVyZSBgYGxlZnRgYCBpcyBhIHJhdGlvbmFsIG51bWJlci4KKyAKK0BAIC0xMTQ0LDcgKzExNDQs NyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5vbWlhbCk6Cisg ICAgICAgICBpZiBkb19zaWc6IHNpZ19vZmYoKQorICAgICAgICAgcmV0dXJuIHJlcworIAorLSAg ICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9sbXVsXyhzZWxmLCBFbGVtZW50IHJpZ2h0KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJl dHVybiBgYHNlbGYgKiByaWdodGBgLCB3aGVyZSBgYHJpZ2h0YGAgaXMgYSByYXRpb25hbCBudW1i ZXIuCisgCitAQCAtMTM1OCw3ICsxMzU4LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3JhdGlv bmFsX2ZsaW50KFBvbHlub21pYWwpOgorICAgICAgICAgc2lnX29mZigpCisgICAgICAgICByZXR1 cm4gcmVzCisgCistICAgIGNwZGVmIFBvbHlub21pYWwgaW52ZXJzZV9zZXJpZXNfdHJ1bmMoc2Vs ZiwgbG9uZyBwcmVjKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgUG9seW5vbWlhbCBpbnZlcnNlX3Nl cmllc190cnVuYyhzZWxmLCBsb25nIHByZWMpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0 dXJuIGEgcG9seW5vbWlhbCBhcHByb3hpbWF0aW9uIG9mIHByZWNpc2lvbiBgYHByZWNgYCBvZiB0 aGUgaW52ZXJzZQorICAgICAgICAgc2VyaWVzIG9mIHRoaXMgcG9seW5vbWlhbC4KK0BAIC0xNDA2 LDcgKzE0MDYsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQoUG9seW5v bWlhbCk6CisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKKy0gICAg Y3BkZWYgX21vZF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbW9kXyhzZWxm LCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgcmVtYWluZGVyIG9m IGBgc2VsZmBgIGFuZCBgYHJpZ2h0YGAgb2J0YWluIGJ5IEV1Y2xpZGVhbiBkaXZpc2lvbi4KKyAK K2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfcmVhbF9t cGZyX2RlbnNlLnB5eCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9yZWFs X21wZnJfZGVuc2UucHl4CitpbmRleCA1NzNmNzg4ZDY4Yy4uMmJmMDA1NTc3YWIgMTAwNjQ0Cist LS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfcmVhbF9tcGZyX2RlbnNl LnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX3JlYWxfbXBm cl9kZW5zZS5weXgKK0BAIC0xODQsNyArMTg0LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsUmVh bERlbnNlKFBvbHlub21pYWwpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gbWFrZV9Q b2x5bm9taWFsUmVhbERlbnNlLCAoc2VsZi5fcGFyZW50LCBzZWxmLmxpc3QoKSkKKyAKKy0gICAg Y2RlZiBfbm9ybWFsaXplKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9ub3JtYWxpemUoc2Vs Zik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJlbW92ZSBhbGwgbGVhZGluZyAwJ3MuCisgICAg ICAgICAiIiIKK0BAIC0xOTcsNyArMTk3LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsUmVhbERl bnNlKFBvbHlub21pYWwpOgorICAgICAgICAgICAgIHNlbGYuX2NvZWZmcyA9IDxtcGZyX3QqPmNo ZWNrX3JlYWxsb2NhcnJheShzZWxmLl9jb2VmZnMsIGkrMSwgc2l6ZW9mKG1wZnJfdCkpCisgICAg ICAgICAgICAgc2VsZi5fZGVncmVlID0gaQorIAorLSAgICBjZGVmIGdldF91bnNhZmUoc2VsZiwg UHlfc3NpemVfdCBpKSBub2V4Y2VwdDoKKysgICAgY2RlZiBnZXRfdW5zYWZlKHNlbGYsIFB5X3Nz aXplX3QgaSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYGlgLXRoIGNvZWZm aWNpZW50IG9mIGBgc2VsZmBgLgorIAorQEAgLTIyNSw3ICsyMjUsNyBAQCBjZGVmIGNsYXNzIFBv bHlub21pYWxSZWFsRGVuc2UoUG9seW5vbWlhbCk6CisgICAgICAgICBtcGZyX3NldChyLnZhbHVl LCBzZWxmLl9jb2VmZnNbaV0sIHNlbGYuX2Jhc2VfcmluZy5ybmQpCisgICAgICAgICByZXR1cm4g cgorIAorLSAgICBjZGVmIFBvbHlub21pYWxSZWFsRGVuc2UgX25ldyhzZWxmLCBQeV9zc2l6ZV90 IGRlZ3JlZSkgbm9leGNlcHQ6CisrICAgIGNkZWYgUG9seW5vbWlhbFJlYWxEZW5zZSBfbmV3KHNl bGYsIFB5X3NzaXplX3QgZGVncmVlKToKKyAgICAgICAgIGNkZWYgUHlfc3NpemVfdCBpCisgICAg ICAgICBjZGVmIGludCBwcmVjID0gc2VsZi5fYmFzZV9yaW5nLl9wcmVjCisgICAgICAgICBjZGVm IFBvbHlub21pYWxSZWFsRGVuc2UgZiA9IDxQb2x5bm9taWFsUmVhbERlbnNlPlBvbHlub21pYWxS ZWFsRGVuc2UuX19uZXdfXyhQb2x5bm9taWFsUmVhbERlbnNlKQorQEAgLTI1Nyw3ICsyNTcsNyBA QCBjZGVmIGNsYXNzIFBvbHlub21pYWxSZWFsRGVuc2UoUG9seW5vbWlhbCk6CisgICAgICAgICAi IiIKKyAgICAgICAgIHJldHVybiBzbWFsbEludGVnZXIoc2VsZi5fZGVncmVlKQorIAorLSAgICBj cGRlZiBQb2x5bm9taWFsIHRydW5jYXRlKHNlbGYsIGxvbmcgbikgbm9leGNlcHQ6CisrICAgIGNw ZGVmIFBvbHlub21pYWwgdHJ1bmNhdGUoc2VsZiwgbG9uZyBuKToKKyAgICAgICAgIHIiIiIKKyAg ICAgICAgIFJldHVybnMgdGhlIHBvbHlub21pYWwgb2YgZGVncmVlIGA8IG5gIHdoaWNoIGlzIGVx dWl2YWxlbnQgdG8gc2VsZgorICAgICAgICAgbW9kdWxvIGB4Xm5gLgorQEAgLTMxMCw3ICszMTAs NyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxSZWFsRGVuc2UoUG9seW5vbWlhbCk6CisgICAgICAg ICAgICAgICAgIHJldHVybiBzZWxmLnRydW5jYXRlKGkrMSkKKyAgICAgICAgIHJldHVybiBzZWxm Ll9uZXcoLTEpCisgCistICAgIGNwZGVmIHNoaWZ0KHNlbGYsIFB5X3NzaXplX3Qgbikgbm9leGNl cHQ6CisrICAgIGNwZGVmIHNoaWZ0KHNlbGYsIFB5X3NzaXplX3Qgbik6CisgICAgICAgICByIiIi CisgICAgICAgICBSZXR1cm5zIHRoaXMgcG9seW5vbWlhbCBtdWx0aXBsaWVkIGJ5IHRoZSBwb3dl ciBgeF5uYC4gSWYgYG5gCisgICAgICAgICBpcyBuZWdhdGl2ZSwgdGVybXMgYmVsb3cgYHhebmAg d2lsbCBiZSBkaXNjYXJkZWQuIERvZXMgbm90CitAQCAtMzUxLDcgKzM1MSw3IEBAIGNkZWYgY2xh c3MgUG9seW5vbWlhbFJlYWxEZW5zZShQb2x5bm9taWFsKToKKyAgICAgICAgICAgICAgICAgbXBm cl9zZXQoZi5fY29lZmZzW2ldLCBzZWxmLl9jb2VmZnNbaS1uXSwgc2VsZi5fYmFzZV9yaW5nLnJu ZCkKKyAgICAgICAgIHJldHVybiBmCisgCistICAgIGNwZGVmIGxpc3QgbGlzdChzZWxmLCBiaW50 IGNvcHk9VHJ1ZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGxpc3QgbGlzdChzZWxmLCBiaW50IGNv cHk9VHJ1ZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC0zODYs NyArMzg2LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsUmVhbERlbnNlKFBvbHlub21pYWwpOgor ICAgICAgICAgICAgIG1wZnJfbmVnKGYuX2NvZWZmc1tpXSwgc2VsZi5fY29lZmZzW2ldLCBybmQp CisgICAgICAgICByZXR1cm4gZgorIAorLSAgICBjcGRlZiBfYWRkXyhsZWZ0LCBfcmlnaHQpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBfYWRkXyhsZWZ0LCBfcmlnaHQpOgorICAgICAgICAgIiIiCisg ICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtNDE5LDcgKzQxOSw3IEBAIGNkZWYgY2xhc3MgUG9s eW5vbWlhbFJlYWxEZW5zZShQb2x5bm9taWFsKToKKyAgICAgICAgIGYuX25vcm1hbGl6ZSgpCisg ICAgICAgICByZXR1cm4gZgorIAorLSAgICBjcGRlZiBfc3ViXyhsZWZ0LCBfcmlnaHQpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBfc3ViXyhsZWZ0LCBfcmlnaHQpOgorICAgICAgICAgIiIiCisgICAg ICAgICBFWEFNUExFUzo6CisgCitAQCAtNDUwLDcgKzQ1MCw3IEBAIGNkZWYgY2xhc3MgUG9seW5v bWlhbFJlYWxEZW5zZShQb2x5bm9taWFsKToKKyAgICAgICAgIGYuX25vcm1hbGl6ZSgpCisgICAg ICAgICByZXR1cm4gZgorIAorLSAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCBjKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgYyk6CisgICAgICAgICAiIiIK KyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC00NzIsNyArNDcyLDcgQEAgY2RlZiBjbGFzcyBQ b2x5bm9taWFsUmVhbERlbnNlKFBvbHlub21pYWwpOgorICAgICAgICAgICAgIG1wZnJfbXVsKGYu X2NvZWZmc1tpXSwgc2VsZi5fY29lZmZzW2ldLCBhLnZhbHVlLCBybmQpCisgICAgICAgICByZXR1 cm4gZgorIAorLSAgICBjcGRlZiBfbXVsXyhsZWZ0LCBfcmlnaHQpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBfbXVsXyhsZWZ0LCBfcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBIZXJlIHdl IHVzZSB0aGUgbmFpdmUgYE8obl4yKWAgYWxnb3JpdGhtLCBhcyBhc3ltcHRvdGljYWxseSBmYXN0 ZXIgYWxnb3JpdGhtcyBzdWNoCisgICAgICAgICBhcyBLYXJhdHN1YmEgY2FuIGhhdmUgdmVyeSBp bmFjY3VyYXRlIHJlc3VsdHMgZHVlIHRvIGludGVybWVkaWF0ZSByb3VuZGluZyBlcnJvcnMuCitk aWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX3JpbmdfaG9t b21vcnBoaXNtLnB5eCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9yaW5n X2hvbW9tb3JwaGlzbS5weXgKK2luZGV4IDNiZTI1ZjgyOWM0Li43ZTNlMjdkZDUyMCAxMDA2NDQK Ky0tLSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9yaW5nX2hvbW9tb3Jw aGlzbS5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9yaW5n X2hvbW9tb3JwaGlzbS5weXgKK0BAIC0zNiw3ICszNiw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlh bFJpbmdIb21vbW9ycGhpc21fZnJvbV9iYXNlKFJpbmdIb21vbW9ycGhpc21fZnJvbV9iYXNlKToK KyAgICAgICAgICAgICAgICAgICBUbzogICBSYXRpb25hbCBGaWVsZAorIAorICAgICAiIiIKKy0g ICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVs ZW1lbnQgX2NhbGxfKHNlbGYsIHgpOgorICAgICAgICAgIiIiCisgICAgICAgICBFdmFsdWF0ZSB0 aGUgaG9tb21vcnBoaXNtIGBgc2VsZmBgIGF0IGBgeGBgLgorIAorQEAgLTY1LDcgKzY1LDcgQEAg Y2RlZiBjbGFzcyBQb2x5bm9taWFsUmluZ0hvbW9tb3JwaGlzbV9mcm9tX2Jhc2UoUmluZ0hvbW9t b3JwaGlzbV9mcm9tX2Jhc2UpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXR1cm4g UChbZihiKSBmb3IgYiBpbiB4XSkKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF93aXRoX2Fy Z3Moc2VsZiwgeCwgYXJncz0oKSwga3dkcz17fSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1l bnQgX2NhbGxfd2l0aF9hcmdzKHNlbGYsIHgsIGFyZ3M9KCksIGt3ZHM9e30pOgorICAgICAgICAg IiIiCisgICAgICAgICBFdmFsdWF0ZSBgYHNlbGZgYCBhdCBgYHhgYCB3aXRoIGFkZGl0aW9uYWwg KGtleXdvcmQpIGFyZ3VtZW50cy4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5 bm9taWFsL3BvbHlub21pYWxfdGVtcGxhdGUucHhpIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlh bC9wb2x5bm9taWFsX3RlbXBsYXRlLnB4aQoraW5kZXggMjY3Yjg3OTg2N2IuLjMwNWEyNDM4NGEw IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX3RlbXBs YXRlLnB4aQorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX3RlbXBs YXRlLnB4aQorQEAgLTI5LDcgKzI5LDcgQEAgZnJvbSBzYWdlLmludGVyZmFjZXMuc2luZ3VsYXIg aW1wb3J0IHNpbmd1bGFyIGFzIHNpbmd1bGFyX2RlZmF1bHQKKyBkZWYgbWFrZV9lbGVtZW50KHBh cmVudCwgYXJncyk6CisgICAgIHJldHVybiBwYXJlbnQoKmFyZ3MpCisgCistY2RlZiBpbmxpbmUg UG9seW5vbWlhbF90ZW1wbGF0ZSBlbGVtZW50X3NoaWZ0KHNlbGYsIGludCBuKSBub2V4Y2VwdDoK KytjZGVmIGlubGluZSBQb2x5bm9taWFsX3RlbXBsYXRlIGVsZW1lbnRfc2hpZnQoc2VsZiwgaW50 IG4pOgorICAgICAgaWYgbm90IGlzaW5zdGFuY2Uoc2VsZiwgUG9seW5vbWlhbF90ZW1wbGF0ZSk6 CisgICAgICAgICAgaWYgbiA+IDA6CisgICAgICAgICAgICAgIGVycm9yX21zZyA9ICJDYW5ub3Qg c2hpZnQgJXMgPDwgJW4uIiUoc2VsZiwgbikKK0BAIC0xODksNyArMTg5LDcgQEAgY2RlZiBjbGFz cyBQb2x5bm9taWFsX3RlbXBsYXRlKFBvbHlub21pYWwpOgorICAgICAgICAgIiIiCisgICAgICAg ICByZXR1cm4gbWFrZV9lbGVtZW50LCAoKDxQb2x5bm9taWFsX3RlbXBsYXRlPnNlbGYpLl9wYXJl bnQsIChzZWxmLmxpc3QoKSwgRmFsc2UsIHNlbGYuaXNfZ2VuKCkpKQorIAorLSAgICBjcGRlZiBs aXN0IGxpc3Qoc2VsZiwgYmludCBjb3B5PVRydWUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBsaXN0 IGxpc3Qoc2VsZiwgYmludCBjb3B5PVRydWUpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFN UExFUzo6CisgCitAQCAtMjI0LDcgKzIyNCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF90ZW1w bGF0ZShQb2x5bm9taWFsKToKKyAgICAgICAgICIiIgorICAgICAgICAgY2VsZW1lbnRfZGVzdHJ1 Y3QoJnNlbGYueCwgKDxQb2x5bm9taWFsX3RlbXBsYXRlPnNlbGYpLl9jcGFyZW50KQorIAorLSAg ICBjcGRlZiBfYWRkXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKHNl bGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTI0 Miw3ICsyNDIsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfdGVtcGxhdGUoUG9seW5vbWlhbCk6 CisgICAgICAgICAjYXNzZXJ0KHIuX3BhcmVudChwYXJpKHNlbGYpICsgcGFyaShyaWdodCkpID09 IHIpCisgICAgICAgICByZXR1cm4gcgorIAorLSAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodCkg bm9leGNlcHQ6CisrICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgor ICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTI3Niw3ICsyNzYsNyBAQCBjZGVmIGNsYXNzIFBv bHlub21pYWxfdGVtcGxhdGUoUG9seW5vbWlhbCk6CisgICAgICAgICAjYXNzZXJ0KHIuX3BhcmVu dCgtcGFyaShzZWxmKSkgPT0gcikKKyAgICAgICAgIHJldHVybiByCisgCistICAgIGNwZGVmIF9s bXVsXyhzZWxmLCBFbGVtZW50IGxlZnQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbG11bF8oc2Vs ZiwgRWxlbWVudCBsZWZ0KToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAor QEAgLTMyMiw3ICszMjIsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfdGVtcGxhdGUoUG9seW5v bWlhbCk6CisgICAgICAgICBjZWxlbWVudF9tdWxfc2NhbGFyKCZyLngsICYoPFBvbHlub21pYWxf dGVtcGxhdGU+c2VsZikueCwgbGVmdCwgKDxQb2x5bm9taWFsX3RlbXBsYXRlPnNlbGYpLl9jcGFy ZW50KQorICAgICAgICAgcmV0dXJuIHIKKyAKKy0gICAgY3BkZWYgX211bF8oc2VsZiwgcmlnaHQp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbXVsXyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIK KyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC00MDksNyArNDA5LDcgQEAgY2RlZiBjbGFzcyBQ b2x5bm9taWFsX3RlbXBsYXRlKFBvbHlub21pYWwpOgorICAgICAgICAgI2Fzc2VydCh0Ll9wYXJl bnQodHApID09IHQpCisgICAgICAgICByZXR1cm4gcixzLHQKKyAKKy0gICAgY3BkZWYgX2Zsb29y ZGl2XyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9mbG9vcmRpdl8oc2VsZiwg cmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtNDQ0LDcg KzQ0NCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF90ZW1wbGF0ZShQb2x5bm9taWFsKToKKyAg ICAgICAgIGNlbGVtZW50X2Zsb29yZGl2KCZyLngsICYoPFBvbHlub21pYWxfdGVtcGxhdGU+c2Vs ZikueCwgJig8UG9seW5vbWlhbF90ZW1wbGF0ZT5yaWdodCkueCwgKDxQb2x5bm9taWFsX3RlbXBs YXRlPnNlbGYpLl9jcGFyZW50KQorICAgICAgICAgcmV0dXJuIHIKKyAKKy0gICAgY3BkZWYgX21v ZF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbW9kXyhzZWxmLCBvdGhlcik6 CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK0BAIC01MTMsNyArNTEzLDcg QEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3RlbXBsYXRlKFBvbHlub21pYWwpOgorICAgICAgICAg IiIiCisgICAgICAgICByZXR1cm4gbm90IGNlbGVtZW50X2lzX3plcm8oJnNlbGYueCwgKDxQb2x5 bm9taWFsX3RlbXBsYXRlPnNlbGYpLl9jcGFyZW50KQorIAorLSAgICBjcGRlZiBfcmljaGNtcF8o c2VsZiwgb3RoZXIsIGludCBvcCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhzZWxm LCBvdGhlciwgaW50IG9wKToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAor QEAgLTczMSw3ICs3MzEsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfdGVtcGxhdGUoUG9seW5v bWlhbCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBJbnRlZ2VyKGNlbGVtZW50X2xl bigmc2VsZi54LCAoPFBvbHlub21pYWxfdGVtcGxhdGU+c2VsZikuX2NwYXJlbnQpLTEpCisgCist ICAgIGNwZGVmIFBvbHlub21pYWwgdHJ1bmNhdGUoc2VsZiwgbG9uZyBuKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgUG9seW5vbWlhbCB0cnVuY2F0ZShzZWxmLCBsb25nIG4pOgorICAgICAgICAgciIi IgorICAgICAgICAgUmV0dXJucyB0aGlzIHBvbHlub21pYWwgbW9kIGB4Xm5gLgorIAorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF90ZW1wbGF0ZV9oZWFk ZXIucHhpIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX3RlbXBsYXRlX2hl YWRlci5weGkKK2luZGV4IGJhNzE4NGY2NjQzLi42NGFiMTA2ZjMxNCAxMDA2NDQKKy0tLSBhL3Ny Yy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF90ZW1wbGF0ZV9oZWFkZXIucHhpCisr KysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfdGVtcGxhdGVfaGVhZGVy LnB4aQorQEAgLTcsNCArNyw0IEBAIGZyb20gc2FnZS5yaW5ncy5wb2x5bm9taWFsLnBvbHlub21p YWxfZWxlbWVudCBjaW1wb3J0IFBvbHlub21pYWwKKyBjZGVmIGNsYXNzIFBvbHlub21pYWxfdGVt cGxhdGUoUG9seW5vbWlhbCk6CisgICAgIGNkZWYgY2VsZW1lbnQgeAorICAgICBjZGVmIGNwYXJl bnQgX2NwYXJlbnQKKy0gICAgY3BkZWYgX21vZF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0CisrICAg IGNwZGVmIF9tb2RfKHNlbGYsIHJpZ2h0KQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3Bv bHlub21pYWwvcG9seW5vbWlhbF96bW9kX2ZsaW50LnB4ZCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlu b21pYWwvcG9seW5vbWlhbF96bW9kX2ZsaW50LnB4ZAoraW5kZXggODg3ZjQ2ZWE2ZWIuLmM2YTky ZjNkZjZjIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFs X3ptb2RfZmxpbnQucHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21p YWxfem1vZF9mbGludC5weGQKK0BAIC0xMCw4ICsxMCw4IEBAIGluY2x1ZGUgInBvbHlub21pYWxf dGVtcGxhdGVfaGVhZGVyLnB4aSIKKyBjZGVmIGNwYXJlbnQgZ2V0X2NwYXJlbnQocGFyZW50KSBl eGNlcHQ/IDAKKyAKKyBjZGVmIGNsYXNzIFBvbHlub21pYWxfem1vZF9mbGludChQb2x5bm9taWFs X3RlbXBsYXRlKToKKy0gICAgY2RlZiBQb2x5bm9taWFsX3RlbXBsYXRlIF9uZXcoc2VsZikgbm9l eGNlcHQKKysgICAgY2RlZiBQb2x5bm9taWFsX3RlbXBsYXRlIF9uZXcoc2VsZikKKyAgICAgY2Rl ZiBpbnQgX3NldF9saXN0KHNlbGYsIHgpIGV4Y2VwdCAtMQorICAgICBjZGVmIGludCBfc2V0X2Zt cHpfcG9seShzZWxmLCBmbXB6X3BvbHlfdCkgZXhjZXB0IC0xCistICAgIGNwZGVmIFBvbHlub21p YWwgX211bF90cnVuY19vcHBvc2l0ZShzZWxmLCBQb2x5bm9taWFsX3ptb2RfZmxpbnQgb3RoZXIs IGxlbmd0aCkgbm9leGNlcHQKKy0gICAgY3BkZWYgcmF0aW9uYWxfcmVjb25zdHJ1Y3Rpb24oc2Vs ZiwgbSwgbl9kZWc9PywgZF9kZWc9Pykgbm9leGNlcHQKKysgICAgY3BkZWYgUG9seW5vbWlhbCBf bXVsX3RydW5jX29wcG9zaXRlKHNlbGYsIFBvbHlub21pYWxfem1vZF9mbGludCBvdGhlciwgbGVu Z3RoKQorKyAgICBjcGRlZiByYXRpb25hbF9yZWNvbnN0cnVjdGlvbihzZWxmLCBtLCBuX2RlZz0/ LCBkX2RlZz0/KQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5v bWlhbF96bW9kX2ZsaW50LnB5eCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlh bF96bW9kX2ZsaW50LnB5eAoraW5kZXggODM5MGZhYjE0YjQuLjJkZjU1Mzc1NWY3IDEwMDY0NAor LS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX3ptb2RfZmxpbnQucHl4 CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfem1vZF9mbGludC5w eXgKK0BAIC0xMjIsNyArMTIyLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3ptb2RfZmxpbnQo UG9seW5vbWlhbF90ZW1wbGF0ZSk6CisgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIFBv bHlub21pYWxfdGVtcGxhdGUuX19pbml0X18oc2VsZiwgcGFyZW50LCB4LCBjaGVjaywgaXNfZ2Vu LCBjb25zdHJ1Y3QpCisgCistICAgIGNkZWYgUG9seW5vbWlhbF90ZW1wbGF0ZSBfbmV3KHNlbGYp IG5vZXhjZXB0OgorKyAgICBjZGVmIFBvbHlub21pYWxfdGVtcGxhdGUgX25ldyhzZWxmKToKKyAg ICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTEzNyw3ICsxMzcsNyBAQCBj ZGVmIGNsYXNzIFBvbHlub21pYWxfem1vZF9mbGludChQb2x5bm9taWFsX3RlbXBsYXRlKToKKyAg ICAgICAgIGUuX2NwYXJlbnQgPSBzZWxmLl9jcGFyZW50CisgICAgICAgICByZXR1cm4gZQorIAor LSAgICBjcGRlZiBQb2x5bm9taWFsIF9uZXdfY29uc3RhbnRfcG9seShzZWxmLCB4LCBQYXJlbnQg UCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIFBvbHlub21pYWwgX25ld19jb25zdGFudF9wb2x5KHNl bGYsIHgsIFBhcmVudCBQKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFF1aWNrbHkgY3JlYXRl cyBhIG5ldyBjb25zdGFudCBwb2x5bm9taWFsIHdpdGggdmFsdWUgeCBpbiBwYXJlbnQgUC4KKyAK K0BAIC0yNDQsNyArMjQ0LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3ptb2RfZmxpbnQoUG9s eW5vbWlhbF90ZW1wbGF0ZSk6CisgICAgICAgICBzaWdfb2ZmKCkKKyAgICAgICAgIHJldHVybiAw CisgCistICAgIGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IGkpIG5vZXhjZXB0Ogor KyAgICBjZGVmIGdldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpKToKKyAgICAgICAgICIiIgor ICAgICAgICAgUmV0dXJuIHRoZSBgaWAtdGggY29lZmZpY2llbnQgb2YgYGBzZWxmYGAuCisgCitA QCAtNDEyLDcgKzQxMiw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF96bW9kX2ZsaW50KFBvbHlu b21pYWxfdGVtcGxhdGUpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByYWlzZSBJbmRl eEVycm9yKCJQb2x5bm9taWFsIGNvZWZmaWNpZW50IGluZGV4IG11c3QgYmUgbm9ubmVnYXRpdmUu IikKKyAKKy0gICAgY3BkZWYgUG9seW5vbWlhbCBfbXVsX3RydW5jXyhzZWxmLCBQb2x5bm9taWFs IHJpZ2h0LCBsb25nIG4pIG5vZXhjZXB0OgorKyAgICBjcGRlZiBQb2x5bm9taWFsIF9tdWxfdHJ1 bmNfKHNlbGYsIFBvbHlub21pYWwgcmlnaHQsIGxvbmcgbik6CisgICAgICAgICAiIiIKKyAgICAg ICAgIFJldHVybiB0aGUgcHJvZHVjdCBvZiB0aGlzIHBvbHlub21pYWwgYW5kIG90aGVyIHRydW5j YXRlZCB0byB0aGUKKyAgICAgICAgIGdpdmVuIGxlbmd0aCBgbmAuCitAQCAtNDQ1LDcgKzQ0NSw3 IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF96bW9kX2ZsaW50KFBvbHlub21pYWxfdGVtcGxhdGUp OgorIAorICAgICBfbXVsX3Nob3J0ID0gX211bF90cnVuY18KKyAKKy0gICAgY3BkZWYgUG9seW5v bWlhbCBfbXVsX3RydW5jX29wcG9zaXRlKHNlbGYsIFBvbHlub21pYWxfem1vZF9mbGludCBvdGhl ciwgbikgbm9leGNlcHQ6CisrICAgIGNwZGVmIFBvbHlub21pYWwgX211bF90cnVuY19vcHBvc2l0 ZShzZWxmLCBQb2x5bm9taWFsX3ptb2RfZmxpbnQgb3RoZXIsIG4pOgorICAgICAgICAgIiIiCisg ICAgICAgICBSZXR1cm4gdGhlIHByb2R1Y3Qgb2YgdGhpcyBwb2x5bm9taWFsIGFuZCBvdGhlciBp Z25vcmluZyB0aGUgbGVhc3QKKyAgICAgICAgIHNpZ25pZmljYW50IGBuYCB0ZXJtcyBvZiB0aGUg cmVzdWx0IHdoaWNoIG1heSBiZSBzZXQgdG8gYW55dGhpbmcuCitAQCAtNDgyLDcgKzQ4Miw3IEBA IGNkZWYgY2xhc3MgUG9seW5vbWlhbF96bW9kX2ZsaW50KFBvbHlub21pYWxfdGVtcGxhdGUpOgor IAorICAgICBfbXVsX3Nob3J0X29wcG9zaXRlID0gX211bF90cnVuY19vcHBvc2l0ZQorIAorLSAg ICBjcGRlZiBQb2x5bm9taWFsIF9wb3dlcl90cnVuYyhzZWxmLCB1bnNpZ25lZCBsb25nIG4sIGxv bmcgcHJlYykgbm9leGNlcHQ6CisrICAgIGNwZGVmIFBvbHlub21pYWwgX3Bvd2VyX3RydW5jKHNl bGYsIHVuc2lnbmVkIGxvbmcgbiwgbG9uZyBwcmVjKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAg IFRFU1RTOjoKKyAKK0BAIC01MTksNyArNTE5LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3pt b2RfZmxpbnQoUG9seW5vbWlhbF90ZW1wbGF0ZSk6CisgICAgICAgICBubW9kX3BvbHlfcG93X3Ry dW5jKCZhbnMueCwgJnNlbGYueCwgbiwgcHJlYykKKyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0g ICAgY3BkZWYgcmF0aW9uYWxfcmVjb25zdHJ1Y3Rpb24oc2VsZiwgbSwgbl9kZWc9MCwgZF9kZWc9 MCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIHJhdGlvbmFsX3JlY29uc3RydWN0aW9uKHNlbGYsIG0s IG5fZGVnPTAsIGRfZGVnPTApOgorICAgICAgICAgIiIiCisgICAgICAgICBDb25zdHJ1Y3QgYSBy YXRpb25hbCBmdW5jdGlvbiBgbi9kYCBzdWNoIHRoYXQgYHAqZGAgaXMgZXF1aXZhbGVudCB0byBg bmAKKyAgICAgICAgIG1vZHVsbyBgbWAgd2hlcmUgYHBgIGlzIHRoaXMgcG9seW5vbWlhbC4KK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfenpfcGV4LnB5 eCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF96el9wZXgucHl4CitpbmRl eCA5YTAzODRjNjQzYi4uYjhjOWQwYmNiZDggMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9w b2x5bm9taWFsL3BvbHlub21pYWxfenpfcGV4LnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG9s eW5vbWlhbC9wb2x5bm9taWFsX3p6X3BleC5weXgKK0BAIC00NCw3ICs0NCw3IEBAIGluY2x1ZGUg InBvbHlub21pYWxfdGVtcGxhdGUucHhpIgorIAorIGZyb20gc2FnZS5saWJzLm50bC5udGxfWlpf cEUgY2ltcG9ydCBudGxfWlpfcEUKKyAKKy1jZGVmIGlubGluZSBaWl9wRV9jX3RvX2xpc3QoWlpf cEVfYyB4KSBub2V4Y2VwdDoKKytjZGVmIGlubGluZSBaWl9wRV9jX3RvX2xpc3QoWlpfcEVfYyB4 KToKKyAgICAgY2RlZiBsaXN0IEwgPSBbXQorICAgICBjZGVmIFpaX3BYX2MgY19wWAorICAgICBj ZGVmIFpaX3BfYyBjX3AKK0BAIC0xNTIsNyArMTUyLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFs X1paX3BFWChQb2x5bm9taWFsX3RlbXBsYXRlKToKKyAKKyAgICAgICAgIFBvbHlub21pYWxfdGVt cGxhdGUuX19pbml0X18oc2VsZiwgcGFyZW50LCB4LCBjaGVjaywgaXNfZ2VuLCBjb25zdHJ1Y3Qp CisgCistICAgIGNkZWYgZ2V0X3Vuc2FmZShzZWxmLCBQeV9zc2l6ZV90IGkpIG5vZXhjZXB0Ogor KyAgICBjZGVmIGdldF91bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpKToKKyAgICAgICAgIHIiIiIK KyAgICAgICAgIFJldHVybiB0aGUgYGlgLXRoIGNvZWZmaWNpZW50IG9mIGBgc2VsZmBgLgorIAor QEAgLTE3Niw3ICsxNzYsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfWlpfcEVYKFBvbHlub21p YWxfdGVtcGxhdGUpOgorICAgICAgICAgY2RlZiBaWl9wRV9jIGNfcEUgPSBaWl9wRVhfY29lZmYo c2VsZi54LCBpKQorICAgICAgICAgcmV0dXJuIHNlbGYuX3BhcmVudC5fYmFzZShaWl9wRV9jX3Rv X2xpc3QoY19wRSkpCisgCistICAgIGNwZGVmIGxpc3QgbGlzdChzZWxmLCBiaW50IGNvcHk9VHJ1 ZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGxpc3QgbGlzdChzZWxmLCBiaW50IGNvcHk9VHJ1ZSk6 CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGxpc3Qgb2YgY29lZmZpY2llbnRz LgorIAorQEAgLTE5OCw3ICsxOTgsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfWlpfcEVYKFBv bHlub21pYWxfdGVtcGxhdGUpOgorICAgICAgICAgcmV0dXJuIFtLKFpaX3BFX2NfdG9fbGlzdCha Wl9wRVhfY29lZmYoc2VsZi54LCBpKSkpCisgICAgICAgICAgICAgICAgIGZvciBpIGluIHJhbmdl KGNlbGVtZW50X2xlbigmc2VsZi54LCAoPFBvbHlub21pYWxfdGVtcGxhdGU+c2VsZikuX2NwYXJl bnQpKV0KKyAKKy0gICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgbGVmdCkgbm9leGNlcHQ6 CisrICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IGxlZnQpOgorICAgICAgICAgciIiIgor ICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTQxMCw3ICs0MTAsNyBAQCBjZGVmIGNsYXNzIFBv bHlub21pYWxfWlpfcEVYKFBvbHlub21pYWxfdGVtcGxhdGUpOgorICAgICAgICAgWlpfcEVYX01p blBvbHlNb2Qoci54LCAoPFBvbHlub21pYWxfWlpfcEVYPihzZWxmICUgb3RoZXIpKS54LCAoPFBv bHlub21pYWxfWlpfcEVYPm90aGVyKS54KQorICAgICAgICAgcmV0dXJuIHIKKyAKKy0gICAgY3Bk ZWYgX3JpY2hjbXBfKHNlbGYsIG90aGVyLCBpbnQgb3ApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBf cmljaGNtcF8oc2VsZiwgb3RoZXIsIGludCBvcCk6CisgICAgICAgICByIiIiCisgICAgICAgICBF WEFNUExFUzo6CisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9za2V3 X3BvbHlub21pYWxfZWxlbWVudC5weGQgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3NrZXdf cG9seW5vbWlhbF9lbGVtZW50LnB4ZAoraW5kZXggZDk2N2U4OTg5MDkuLjFlYjM4YjViNDc0IDEw MDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9za2V3X3BvbHlub21pYWxfZWxl bWVudC5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvc2tld19wb2x5bm9taWFs X2VsZW1lbnQucHhkCitAQCAtMyw2ICszLDYgQEAgZnJvbSBzYWdlLnJpbmdzLnBvbHlub21pYWwu b3JlX3BvbHlub21pYWxfZWxlbWVudCBjaW1wb3J0IE9yZVBvbHlub21pYWxfZ2VuZXJpY18KKyBj ZGVmIGNsYXNzIFNrZXdQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UoT3JlUG9seW5vbWlhbF9nZW5l cmljX2RlbnNlKToKKyAgICAgY2RlZiB2b2lkIF9pbnBsYWNlX3JtdWwoc2VsZiwgU2tld1BvbHlu b21pYWxfZ2VuZXJpY19kZW5zZSByaWdodCkgbm9leGNlcHQKKyAgICAgY2RlZiB2b2lkIF9pbnBs YWNlX3BvdyhzZWxmLCBQeV9zc2l6ZV90IG4pIG5vZXhjZXB0CistICAgIGNwZGVmIHJpZ2h0X3Bv d2VyX21vZChzZWxmLCBleHAsIG1vZHVsdXMpIG5vZXhjZXB0CistICAgIGNwZGVmIGxlZnRfcG93 ZXJfbW9kKHNlbGYsIGV4cCwgbW9kdWx1cykgbm9leGNlcHQKKy0gICAgY3BkZWYgb3BlcmF0b3Jf ZXZhbChzZWxmLCBldmFsX3B0KSBub2V4Y2VwdAorKyAgICBjcGRlZiByaWdodF9wb3dlcl9tb2Qo c2VsZiwgZXhwLCBtb2R1bHVzKQorKyAgICBjcGRlZiBsZWZ0X3Bvd2VyX21vZChzZWxmLCBleHAs IG1vZHVsdXMpCisrICAgIGNwZGVmIG9wZXJhdG9yX2V2YWwoc2VsZiwgZXZhbF9wdCkKK2RpZmYg LS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3NrZXdfcG9seW5vbWlhbF9lbGVtZW50 LnB5eCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvc2tld19wb2x5bm9taWFsX2VsZW1lbnQu cHl4CitpbmRleCBiMTAzYWMzNzUwOC4uY2Y1ZmQ5YmQwOTAgMTAwNjQ0CistLS0gYS9zcmMvc2Fn ZS9yaW5ncy9wb2x5bm9taWFsL3NrZXdfcG9seW5vbWlhbF9lbGVtZW50LnB5eAorKysrIGIvc3Jj L3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9za2V3X3BvbHlub21pYWxfZWxlbWVudC5weXgKK0BAIC02 NCw3ICs2NCw3IEBAIGNkZWYgY2xhc3MgU2tld1BvbHlub21pYWxfZ2VuZXJpY19kZW5zZShPcmVQ b2x5bm9taWFsX2dlbmVyaWNfZGVuc2UpOgorICAgICBHZW5lcmljIGltcGxlbWVudGF0aW9uIG9m IGRlbnNlIHNrZXcgcG9seW5vbWlhbCBzdXBwb3J0aW5nIGFueSB2YWxpZCBiYXNlCisgICAgIHJp bmcgYW5kIHR3aXN0aW5nIG1vcnBoaXNtLgorICAgICAiIiIKKy0gICAgY3BkZWYgbGVmdF9wb3dl cl9tb2Qoc2VsZiwgZXhwLCBtb2R1bHVzKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgbGVmdF9wb3dl cl9tb2Qoc2VsZiwgZXhwLCBtb2R1bHVzKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVy biB0aGUgcmVtYWluZGVyIG9mIGBgc2VsZioqZXhwYGAgaW4gdGhlIGxlZnQgZXVjbGlkZWFuIGRp dmlzaW9uCisgICAgICAgICBieSBgYG1vZHVsdXNgYC4KK0BAIC0xMjcsNyArMTI3LDcgQEAgY2Rl ZiBjbGFzcyBTa2V3UG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKE9yZVBvbHlub21pYWxfZ2VuZXJp Y19kZW5zZSk6CisgICAgICAgICAgICAgXywgciA9IHIuX2xlZnRfcXVvX3JlbShtb2R1bHVzKQor ICAgICAgICAgcmV0dXJuIHIKKyAKKy0gICAgY3BkZWYgcmlnaHRfcG93ZXJfbW9kKHNlbGYsIGV4 cCwgbW9kdWx1cykgbm9leGNlcHQ6CisrICAgIGNwZGVmIHJpZ2h0X3Bvd2VyX21vZChzZWxmLCBl eHAsIG1vZHVsdXMpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSByZW1haW5k ZXIgb2YgYGBzZWxmKipleHBgYCBpbiB0aGUgcmlnaHQgZXVjbGlkZWFuIGRpdmlzaW9uCisgICAg ICAgICBieSBgYG1vZHVsdXNgYC4KK0BAIC0zMzAsNyArMzMwLDcgQEAgY2RlZiBjbGFzcyBTa2V3 UG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKE9yZVBvbHlub21pYWxfZ2VuZXJpY19kZW5zZSk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLm9wZXJhdG9yX2V2YWwoZXZhbF9wdCkK KyAKKy0gICAgY3BkZWYgb3BlcmF0b3JfZXZhbChzZWxmLCBldmFsX3B0KSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgb3BlcmF0b3JfZXZhbChzZWxmLCBldmFsX3B0KToKKyAgICAgICAgIHIiIiIKKyAg ICAgICAgIEV2YWx1YXRlIGBgc2VsZmBgIGF0IGBgZXZhbF9wdGBgIGJ5IHRoZSBvcGVyYXRvciBl dmFsdWF0aW9uCisgICAgICAgICBtZXRob2QuCitAQCAtNDYxLDcgKzQ2MSw3IEBAIGNkZWYgY2xh c3MgU2tld1BvbHlub21pYWxfZ2VuZXJpY19kZW5zZShPcmVQb2x5bm9taWFsX2dlbmVyaWNfZGVu c2UpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gWyBzZWxmKGUpIGZvciBlIGluIGV2 YWxfcHRzIF0KKyAKKy0gICAgY3BkZWYgTW9kdWxlRWxlbWVudCBfbG11bF8oc2VsZiwgRWxlbWVu dCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIE1vZHVsZUVsZW1lbnQgX2xtdWxfKHNlbGYs IEVsZW1lbnQgcmlnaHQpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBwcm9k dWN0IGBgc2VsZiAqIHJpZ2h0YGAuCisgCitAQCAtNDkwLDcgKzQ5MCw3IEBAIGNkZWYgY2xhc3Mg U2tld1BvbHlub21pYWxfZ2VuZXJpY19kZW5zZShPcmVQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2Up OgorICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3BhcmVudCwgMCkKKyAgICAgICAgIHJl dHVybiByCisgCistICAgIGNwZGVmIE1vZHVsZUVsZW1lbnQgX3JtdWxfKHNlbGYsIEVsZW1lbnQg bGVmdCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIE1vZHVsZUVsZW1lbnQgX3JtdWxfKHNlbGYsIEVs ZW1lbnQgbGVmdCk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHByb2R1Y3Qg YGBsZWZ0ICogc2VsZmBgLgorIAorQEAgLTUxNyw3ICs1MTcsNyBAQCBjZGVmIGNsYXNzIFNrZXdQ b2x5bm9taWFsX2dlbmVyaWNfZGVuc2UoT3JlUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKToKKyAg ICAgICAgIHIgPSBzZWxmLl9uZXdfYyhbIGxlZnQqeFtpXSBmb3IgaSBmcm9tIDAgPD0gaSA8IGxl bih4KSBdLCBzZWxmLl9wYXJlbnQsIDApCisgICAgICAgICByZXR1cm4gcgorIAorLSAgICBjcGRl ZiBfbXVsXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9tdWxfKHNlbGYsIHJp Z2h0KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgcHJvZHVjdCBgYHNlbGYg KiByaWdodGBgLgorIAorQEAgLTYzMSw3ICs2MzEsNyBAQCBjZGVmIGNsYXNzIFNrZXdQb2x5bm9t aWFsX2dlbmVyaWNfZGVuc2UoT3JlUG9seW5vbWlhbF9nZW5lcmljX2RlbnNlKToKKyAgICAgICAg ICAgICAgICAgc2VsZi5faW5wbGFjZV9ybXVsKHNlbGZwb3cpCisgICAgICAgICAgICAgbiA9IG4g Pj4gMQorIAorLSAgICBjZGVmIF9sZWZ0X3F1b19yZW0oc2VsZiwgT3JlUG9seW5vbWlhbCBvdGhl cikgbm9leGNlcHQ6CisrICAgIGNkZWYgX2xlZnRfcXVvX3JlbShzZWxmLCBPcmVQb2x5bm9taWFs IG90aGVyKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgcXVvdGllbnQgYW5k IHJlbWFpbmRlciBvZiB0aGUgbGVmdCBldWNsaWRlYW4KKyAgICAgICAgIGRpdmlzaW9uIG9mIGBg c2VsZmBgIGJ5IGBgb3RoZXJgYCAoQyBpbXBsZW1lbnRhdGlvbikuCitAQCAtNjYwLDcgKzY2MCw3 IEBAIGNkZWYgY2xhc3MgU2tld1BvbHlub21pYWxfZ2VuZXJpY19kZW5zZShPcmVQb2x5bm9taWFs X2dlbmVyaWNfZGVuc2UpOgorICAgICAgICAgcS5yZXZlcnNlKCkKKyAgICAgICAgIHJldHVybiAo c2VsZi5fbmV3X2MocSwgcGFyZW50KSwgc2VsZi5fbmV3X2MoYVs6ZGJdLCBwYXJlbnQsIDEpKQor IAorLSAgICBjZGVmIF9yaWdodF9xdW9fcmVtKHNlbGYsIE9yZVBvbHlub21pYWwgb3RoZXIpIG5v ZXhjZXB0OgorKyAgICBjZGVmIF9yaWdodF9xdW9fcmVtKHNlbGYsIE9yZVBvbHlub21pYWwgb3Ro ZXIpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBxdW90aWVudCBhbmQgcmVt YWluZGVyIG9mIHRoZSByaWdodCBldWNsaWRlYW4KKyAgICAgICAgIGRpdmlzaW9uIG9mIGBgc2Vs ZmBgIGJ5IGBgb3RoZXJgYCAoQyBpbXBsZW1lbnRhdGlvbikuCitkaWZmIC0tZ2l0IGEvc3JjL3Nh Z2UvcmluZ3MvcG9seW5vbWlhbC9za2V3X3BvbHlub21pYWxfZmluaXRlX2ZpZWxkLnB4ZCBiL3Ny Yy9zYWdlL3JpbmdzL3BvbHlub21pYWwvc2tld19wb2x5bm9taWFsX2Zpbml0ZV9maWVsZC5weGQK K2luZGV4IDE3MTg1NTRjYzNhLi5mMjdjZmRkNmZmMSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3Jp bmdzL3BvbHlub21pYWwvc2tld19wb2x5bm9taWFsX2Zpbml0ZV9maWVsZC5weGQKKysrKyBiL3Ny Yy9zYWdlL3JpbmdzL3BvbHlub21pYWwvc2tld19wb2x5bm9taWFsX2Zpbml0ZV9maWVsZC5weGQK K0BAIC01LDE0ICs1LDE0IEBAIGNkZWYgY2xhc3MgU2tld1BvbHlub21pYWxfZmluaXRlX2ZpZWxk X2RlbnNlIChTa2V3UG9seW5vbWlhbF9maW5pdGVfb3JkZXJfZGVuc2UpCisgICAgIGNkZWYgZGlj dCBfdHlwZXMKKyAgICAgY2RlZiBfZmFjdG9yaXphdGlvbgorIAorLSAgICBjZGVmIGlubGluZSBf cmVkdWNlZF9ub3JtX2ZhY3RvcmVkKHNlbGYpIG5vZXhjZXB0CisrICAgIGNkZWYgaW5saW5lIF9y ZWR1Y2VkX25vcm1fZmFjdG9yZWQoc2VsZikKKyAKKyAgICAgIyBGaW5kaW5nIGRpdmlzb3JzCist ICAgIGNkZWYgU2tld1BvbHlub21pYWxfZmluaXRlX2ZpZWxkX2RlbnNlIF9yZGl2aXNvcl9jKFAs IE4pIG5vZXhjZXB0CisrICAgIGNkZWYgU2tld1BvbHlub21pYWxfZmluaXRlX2ZpZWxkX2RlbnNl IF9yZGl2aXNvcl9jKFAsIE4pCisgCisgICAgICMgRmluZGluZyBmYWN0b3JpemF0aW9ucworLSAg ICBjZGVmIF9mYWN0b3JfYyhzZWxmKSBub2V4Y2VwdAorLSAgICBjZGVmIF9mYWN0b3JfdW5pZm9y bV9jKHNlbGYpIG5vZXhjZXB0CisrICAgIGNkZWYgX2ZhY3Rvcl9jKHNlbGYpCisrICAgIGNkZWYg X2ZhY3Rvcl91bmlmb3JtX2Moc2VsZikKKyAKKy1jZGVmIGlubGluZSBTa2V3UG9seW5vbWlhbF9m aW5pdGVfZmllbGRfZGVuc2UgbXVsX29wKFNrZXdQb2x5bm9taWFsX2Zpbml0ZV9maWVsZF9kZW5z ZSBQLCBTa2V3UG9seW5vbWlhbF9maW5pdGVfZmllbGRfZGVuc2UgUSkgbm9leGNlcHQ6CisrY2Rl ZiBpbmxpbmUgU2tld1BvbHlub21pYWxfZmluaXRlX2ZpZWxkX2RlbnNlIG11bF9vcChTa2V3UG9s eW5vbWlhbF9maW5pdGVfZmllbGRfZGVuc2UgUCwgU2tld1BvbHlub21pYWxfZmluaXRlX2ZpZWxk X2RlbnNlIFEpOgorICAgICByZXR1cm4gUSAqIFAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5n cy9wb2x5bm9taWFsL3NrZXdfcG9seW5vbWlhbF9maW5pdGVfZmllbGQucHl4IGIvc3JjL3NhZ2Uv cmluZ3MvcG9seW5vbWlhbC9za2V3X3BvbHlub21pYWxfZmluaXRlX2ZpZWxkLnB5eAoraW5kZXgg MWExNzYyODgzOTUuLmI5NTM4ZDA3MjYzIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9s eW5vbWlhbC9za2V3X3BvbHlub21pYWxfZmluaXRlX2ZpZWxkLnB5eAorKysrIGIvc3JjL3NhZ2Uv cmluZ3MvcG9seW5vbWlhbC9za2V3X3BvbHlub21pYWxfZmluaXRlX2ZpZWxkLnB5eAorQEAgLTQ0 LDcgKzQ0LDcgQEAgZnJvbSBzYWdlLmNvbWJpbmF0LnFfYW5hbG9ndWVzIGltcG9ydCBxX2pvcmRh bgorIAorIAorIGNkZWYgY2xhc3MgU2tld1BvbHlub21pYWxfZmluaXRlX2ZpZWxkX2RlbnNlKFNr ZXdQb2x5bm9taWFsX2Zpbml0ZV9vcmRlcl9kZW5zZSk6CistICAgIGNkZWYgaW5saW5lIF9yZWR1 Y2VkX25vcm1fZmFjdG9yZWQoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgaW5saW5lIF9yZWR1 Y2VkX25vcm1fZmFjdG9yZWQoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0 aGUgcmVkdWNlZCBub3JtIG9mIHRoaXMgcG9seW5vbWlhbCBmYWN0b3JpemVkIGluIHRoZSBjZW50 ZXIuCisgICAgICAgICAiIiIKK0BAIC0yMTMsNyArMjEzLDcgQEAgY2RlZiBjbGFzcyBTa2V3UG9s eW5vbWlhbF9maW5pdGVfZmllbGRfZGVuc2UoU2tld1BvbHlub21pYWxfZmluaXRlX29yZGVyX2Rl bnNlKToKKyAgICAgIyBGaW5kaW5nIGRpdmlzb3JzCisgICAgICMgLS0tLS0tLS0tLS0tLS0tLQor IAorLSAgICBjZGVmIFNrZXdQb2x5bm9taWFsX2Zpbml0ZV9maWVsZF9kZW5zZSBfcmRpdmlzb3Jf YyhzZWxmLCBOKSBub2V4Y2VwdDoKKysgICAgY2RlZiBTa2V3UG9seW5vbWlhbF9maW5pdGVfZmll bGRfZGVuc2UgX3JkaXZpc29yX2Moc2VsZiwgTik6CisgICAgICAgICByIiIiCisgICAgICAgICBS ZXR1cm4gYSByaWdodCBkaXZpc29yIG9mIHRoaXMgc2tldyBwb2x5bm9taWFsIHdob3NlCisgICAg ICAgICByZWR1Y2VkIG5vcm0gaXMgYE5gLgorQEAgLTc0OCw3ICs3NDgsNyBAQCBjZGVmIGNsYXNz IFNrZXdQb2x5bm9taWFsX2Zpbml0ZV9maWVsZF9kZW5zZShTa2V3UG9seW5vbWlhbF9maW5pdGVf b3JkZXJfZGVuc2UpOgorICAgICAjIEZpbmRpbmcgZmFjdG9yaXphdGlvbnMKKyAgICAgIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgCistICAgIGNkZWYgX2ZhY3Rvcl9jKHNlbGYpIG5vZXhjZXB0 OgorKyAgICBjZGVmIF9mYWN0b3JfYyhzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIENv bXB1dGUgYSBmYWN0b3JpemF0aW9uIG9mIGBgc2VsZmBgLgorIAorQEAgLTgxOSw3ICs4MTksNyBA QCBjZGVmIGNsYXNzIFNrZXdQb2x5bm9taWFsX2Zpbml0ZV9maWVsZF9kZW5zZShTa2V3UG9seW5v bWlhbF9maW5pdGVfb3JkZXJfZGVuc2UpOgorICAgICAgICAgZmFjdG9ycy5yZXZlcnNlKCkKKyAg ICAgICAgIHJldHVybiBGYWN0b3JpemF0aW9uKGZhY3RvcnMsIHNvcnQ9RmFsc2UsIHVuaXQ9dW5p dCkKKyAKKy0gICAgY2RlZiBfZmFjdG9yX3VuaWZvcm1fYyhzZWxmKSBub2V4Y2VwdDoKKysgICAg Y2RlZiBfZmFjdG9yX3VuaWZvcm1fYyhzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIENv bXB1dGUgYSB1bmlmb3JtbHkgZGlzdHJpYnV0ZWQgZmFjdG9yaXphdGlvbiBvZiBgYHNlbGZgYC4K KyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3NrZXdfcG9seW5vbWlh bF9maW5pdGVfb3JkZXIucHhkIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9za2V3X3BvbHlu b21pYWxfZmluaXRlX29yZGVyLnB4ZAoraW5kZXggYmZhZjhkMDRkMTQuLjQzODc3M2EzOWVmIDEw MDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9za2V3X3BvbHlub21pYWxfZmlu aXRlX29yZGVyLnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9za2V3X3BvbHlu b21pYWxfZmluaXRlX29yZGVyLnB4ZAorQEAgLTUsNiArNSw2IEBAIGNkZWYgY2xhc3MgU2tld1Bv bHlub21pYWxfZmluaXRlX29yZGVyX2RlbnNlIChTa2V3UG9seW5vbWlhbF9nZW5lcmljX2RlbnNl KToKKyAgICAgY2RlZiBfY2hhcnBvbHkKKyAgICAgY2RlZiBfb3B0Ym91bmQKKyAKKy0gICAgY2Rl ZiBfbWF0cGhpcl9jKHNlbGYpIG5vZXhjZXB0CistICAgIGNkZWYgX21hdG11bF9jKHNlbGYpIG5v ZXhjZXB0CisrICAgIGNkZWYgX21hdHBoaXJfYyhzZWxmKQorKyAgICBjZGVmIF9tYXRtdWxfYyhz ZWxmKQorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvc2tld19wb2x5 bm9taWFsX2Zpbml0ZV9vcmRlci5weXggYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3NrZXdf cG9seW5vbWlhbF9maW5pdGVfb3JkZXIucHl4CitpbmRleCA0ZWJlNTBjMzA3Yi4uZmNkYTQ0MjAz NzggMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3NrZXdfcG9seW5vbWlh bF9maW5pdGVfb3JkZXIucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3NrZXdf cG9seW5vbWlhbF9maW5pdGVfb3JkZXIucHl4CitAQCAtNzAsNyArNzAsNyBAQCBjZGVmIGNsYXNz IFNrZXdQb2x5bm9taWFsX2Zpbml0ZV9vcmRlcl9kZW5zZShTa2V3UG9seW5vbWlhbF9nZW5lcmlj X2RlbnNlKToKKyAgICAgICAgIHNlbGYuX2NoYXJwb2x5ID0gTm9uZQorICAgICAgICAgc2VsZi5f b3B0Ym91bmQgPSBOb25lCisgCistICAgIGNkZWYgX21hdHBoaXJfYyhzZWxmKSBub2V4Y2VwdDoK KysgICAgY2RlZiBfbWF0cGhpcl9jKHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0 dXJuIHRoZSBtYXRyaXggb2YgdGhlIG11bHRpcGxpY2F0aW9uIGJ5IGBYXnJgIG9uCisgICAgICAg ICB0aGUgcXVvdGllbnQgYEtbWCxcc2lnbWFdIC8gS1tYLFxzaWdtYV0qc2VsZmAuCitAQCAtMTIx LDcgKzEyMSw3IEBAIGNkZWYgY2xhc3MgU2tld1BvbHlub21pYWxfZmluaXRlX29yZGVyX2RlbnNl KFNrZXdQb2x5bm9taWFsX2dlbmVyaWNfZGVuc2UpOgorICAgICAgICAgICAgIHBoaXIuYXBwZW5k KGxpbmUpCisgICAgICAgICByZXR1cm4gbWF0cml4KGssIHBoaXIpCisgCistICAgIGNkZWYgX21h dG11bF9jKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9tYXRtdWxfYyhzZWxmKToKKyAgICAg ICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgbWF0cml4IG9mIHRoZSBtdWx0aXBsaWNhdGlv biBieSBgYHNlbGZgYCBvbgorICAgICAgICAgYEtbWCxcc2lnbWFdYCBjb25zaWRlcmVkIGFzIGEg ZnJlZSBtb2R1bGUgb3ZlciBgS1tYXnJdYAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3Bv bHlub21pYWwvd2VpbC93ZWlsX3BvbHlub21pYWxzLnB5eCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlu b21pYWwvd2VpbC93ZWlsX3BvbHlub21pYWxzLnB5eAoraW5kZXggZDVlYmQyOTA2YWIuLjZhNzNl Mjc0OGU0IDEwMDc1NQorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC93ZWlsL3dlaWxf cG9seW5vbWlhbHMucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3dlaWwvd2Vp bF9wb2x5bm9taWFscy5weXgKK0BAIC0xNzUsNyArMTc1LDcgQEAgY2RlZiBjbGFzcyBkZnNfbWFu YWdlcjoKKyAgICAgICAgICAgICBjb3VudCArPSBzZWxmLmR5X2RhdGFfYnVmW2ldLm5vZGVfY291 bnQKKyAgICAgICAgIHJldHVybiBjb3VudAorIAorLSAgICBjcGRlZiBvYmplY3QgYWR2YW5jZV9l eGhhdXN0KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBvYmplY3QgYWR2YW5jZV9leGhhdXN0 KHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBBZHZhbmNlIHRoZSB0cmVlIGV4aGF1c3Rp b24uCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG93ZXJfc2VyaWVzX21wb2x5LnB5 eCBiL3NyYy9zYWdlL3JpbmdzL3Bvd2VyX3Nlcmllc19tcG9seS5weXgKK2luZGV4IDI4NDZkNTYz YTk3Li43MTRkOTM5YzMwYiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3Bvd2VyX3Nlcmll c19tcG9seS5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3Bvd2VyX3Nlcmllc19tcG9seS5weXgK K0BAIC0xMDYsNyArMTA2LDcgQEAgY2RlZiBjbGFzcyBQb3dlclNlcmllc19tcG9seShQb3dlclNl cmllcyk6CisgICAgIGRlZiBfbXBvbHkoc2VsZik6CisgICAgICAgICByZXR1cm4gc2VsZi5fX2YK KyAKKy0gICAgY3BkZWYgX211bF8oc2VsZiwgcmlnaHRfcikgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9tdWxfKHNlbGYsIHJpZ2h0X3IpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhl IHByb2R1Y3Qgb2YgdHdvIHBvd2VyIHNlcmllcy4KKyAgICAgICAgICIiIgorQEAgLTEzMCw3ICsx MzAsNyBAQCBjZGVmIGNsYXNzIFBvd2VyU2VyaWVzX21wb2x5KFBvd2VyU2VyaWVzKToKKyAgICAg ICAgIHJldHVybiBQb3dlclNlcmllc19tcG9seShzZWxmLl9wYXJlbnQsIC1zZWxmLl9fZiwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3ByZWMsIGNoZWNr PUZhbHNlKQorIAorLSAgICBjcGRlZiBfYWRkXyhzZWxmLCByaWdodF9tKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHRfbSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVY QU1QTEVTOgorICAgICAgICAgIiIiCitAQCAtMTM4LDcgKzEzOCw3IEBAIGNkZWYgY2xhc3MgUG93 ZXJTZXJpZXNfbXBvbHkoUG93ZXJTZXJpZXMpOgorICAgICAgICAgcmV0dXJuIFBvd2VyU2VyaWVz X21wb2x5KHNlbGYuX3BhcmVudCwgc2VsZi5fX2YgKyByaWdodC5fX2YsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5jb21tb25fcHJlY19jKHJpZ2h0KSwgY2hlY2s9VHJ1 ZSkKKyAKKy0gICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHRfbSkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIF9zdWJfKHNlbGYsIHJpZ2h0X20pOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4g ZGlmZmVyZW5jZSBvZiB0d28gcG93ZXIgc2VyaWVzLgorIAorQEAgLTE0OCwxMSArMTQ4LDExIEBA IGNkZWYgY2xhc3MgUG93ZXJTZXJpZXNfbXBvbHkoUG93ZXJTZXJpZXMpOgorICAgICAgICAgcmV0 dXJuIFBvd2VyU2VyaWVzX21wb2x5KHNlbGYuX3BhcmVudCwgc2VsZi5fX2YgLSByaWdodC5fX2Ys CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5jb21tb25fcHJlY19jKHJp Z2h0KSwgY2hlY2s9VHJ1ZSkKKyAKKy0gICAgY3BkZWYgX3JtdWxfKHNlbGYsIEVsZW1lbnQgYykg bm9leGNlcHQ6CisrICAgIGNwZGVmIF9ybXVsXyhzZWxmLCBFbGVtZW50IGMpOgorICAgICAgICAg cmV0dXJuIFBvd2VyU2VyaWVzX21wb2x5KHNlbGYuX3BhcmVudCwgc2VsZi5fX2YuX3JtdWxfKGMp LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3ByZWMsIGNoZWNrPUZh bHNlKQorIAorLSAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCBjKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgYyk6CisgICAgICAgICByZXR1cm4gUG93ZXJT ZXJpZXNfbXBvbHkoc2VsZi5fcGFyZW50LCBzZWxmLl9fZi5fbG11bF8oYyksCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcHJlYywgY2hlY2s9RmFsc2UpCisgCitkaWZm IC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG93ZXJfc2VyaWVzX3BhcmkucHl4IGIvc3JjL3NhZ2Uv cmluZ3MvcG93ZXJfc2VyaWVzX3BhcmkucHl4CitpbmRleCA5ZTZhNGQ1ZjMxNy4uMjQ3OTJjOTQx MjMgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb3dlcl9zZXJpZXNfcGFyaS5weXgKKysr KyBiL3NyYy9zYWdlL3JpbmdzL3Bvd2VyX3Nlcmllc19wYXJpLnB5eAorQEAgLTgxLDcgKzgxLDcg QEAgZnJvbSBzYWdlLnN0cnVjdHVyZS5wYXJlbnQgY2ltcG9ydCBQYXJlbnQKKyBmcm9tIHNhZ2Uu cmluZ3MuaW5maW5pdHkgaW1wb3J0IGluZmluaXR5CisgCisgCistY2RlZiBQb3dlclNlcmllc19w YXJpIGNvbnN0cnVjdF9mcm9tX3BhcmkocGFyZW50LCBwYXJpX2dlbiBnKSBub2V4Y2VwdDoKKytj ZGVmIFBvd2VyU2VyaWVzX3BhcmkgY29uc3RydWN0X2Zyb21fcGFyaShwYXJlbnQsIHBhcmlfZ2Vu IGcpOgorICAgICByIiIiCisgICAgIEZhc3QgY29uc3RydWN0aW9uIG9mIHBvd2VyIHNlcmllcyBm cm9tIFBBUkkgb2JqZWN0cyBvZiBzdWl0YWJsZQorICAgICB0eXBlIChzZXJpZXMsIHBvbHlub21p YWxzLCBzY2FsYXJzIGFuZCByYXRpb25hbCBmdW5jdGlvbnMpLgorQEAgLTU1Nyw3ICs1NTcsNyBA QCBjZGVmIGNsYXNzIFBvd2VyU2VyaWVzX3BhcmkoUG93ZXJTZXJpZXMpOgorICAgICAgICAgICAg IHJldHVybiBzZWxmLl9wYXJlbnQubGF1cmVudF9zZXJpZXNfcmluZygpKGgpCisgICAgICAgICBy ZXR1cm4gY29uc3RydWN0X2Zyb21fcGFyaShzZWxmLl9wYXJlbnQsIGgpCisgCistICAgIGNwZGVm IF9hZGRfKHNlbGYsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FkZF8oc2VsZiwgcmln aHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBBZGRpdGlvbiBvZiBwb3dlciBzZXJpZXMuCisg CitAQCAtNTc0LDcgKzU3NCw3IEBAIGNkZWYgY2xhc3MgUG93ZXJTZXJpZXNfcGFyaShQb3dlclNl cmllcyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBjb25zdHJ1Y3RfZnJvbV9wYXJp KHNlbGYuX3BhcmVudCwgc2VsZi5nICsgKDxQb3dlclNlcmllc19wYXJpPnJpZ2h0KS5nKQorIAor LSAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9zdWJf KHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgU3VidHJhY3Rpb24gb2YgcG93 ZXIgc2VyaWVzLgorIAorQEAgLTU4OCw3ICs1ODgsNyBAQCBjZGVmIGNsYXNzIFBvd2VyU2VyaWVz X3BhcmkoUG93ZXJTZXJpZXMpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gY29uc3Ry dWN0X2Zyb21fcGFyaShzZWxmLl9wYXJlbnQsIHNlbGYuZyAtICg8UG93ZXJTZXJpZXNfcGFyaT5y aWdodCkuZykKKyAKKy0gICAgY3BkZWYgX211bF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBfbXVsXyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIE11bHRp cGxpY2F0aW9uIG9mIHBvd2VyIHNlcmllcy4KKyAKK0BAIC02MDEsNyArNjAxLDcgQEAgY2RlZiBj bGFzcyBQb3dlclNlcmllc19wYXJpKFBvd2VyU2VyaWVzKToKKyAgICAgICAgICIiIgorICAgICAg ICAgcmV0dXJuIGNvbnN0cnVjdF9mcm9tX3Bhcmkoc2VsZi5fcGFyZW50LCBzZWxmLmcgKiAoPFBv d2VyU2VyaWVzX3Bhcmk+cmlnaHQpLmcpCisgCistICAgIGNwZGVmIF9ybXVsXyhzZWxmLCBFbGVt ZW50IGMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcm11bF8oc2VsZiwgRWxlbWVudCBjKToKKyAg ICAgICAgICIiIgorICAgICAgICAgUmlnaHQgbXVsdGlwbGljYXRpb24gYnkgYSBzY2FsYXIuCisg CitAQCAtNjE1LDcgKzYxNSw3IEBAIGNkZWYgY2xhc3MgUG93ZXJTZXJpZXNfcGFyaShQb3dlclNl cmllcyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBjb25zdHJ1Y3RfZnJvbV9wYXJp KHNlbGYuX3BhcmVudCwgc2VsZi5nICogYykKKyAKKy0gICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVs ZW1lbnQgYykgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IGMpOgor ICAgICAgICAgIiIiCisgICAgICAgICBMZWZ0IG11bHRpcGxpY2F0aW9uIGJ5IGEgc2NhbGFyLgor IAorQEAgLTYyOSw3ICs2MjksNyBAQCBjZGVmIGNsYXNzIFBvd2VyU2VyaWVzX3BhcmkoUG93ZXJT ZXJpZXMpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gY29uc3RydWN0X2Zyb21fcGFy aShzZWxmLl9wYXJlbnQsIGMgKiBzZWxmLmcpCisgCistICAgIGNwZGVmIF9kaXZfKHNlbGYsIHJp Z2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2Rpdl8oc2VsZiwgcmlnaHQpOgorICAgICAgICAg IiIiCisgICAgICAgICBEaXZpc2lvbiBvZiBwb3dlciBzZXJpZXMuCisgCitkaWZmIC0tZ2l0IGEv c3JjL3NhZ2UvcmluZ3MvcG93ZXJfc2VyaWVzX3BvbHkucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcG93 ZXJfc2VyaWVzX3BvbHkucHl4CitpbmRleCA0NWUxYjEwNWFiMS4uZTFjNDVmZjVkNTEgMTAwNjQ0 CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb3dlcl9zZXJpZXNfcG9seS5weXgKKysrKyBiL3NyYy9z YWdlL3JpbmdzL3Bvd2VyX3Nlcmllc19wb2x5LnB5eAorQEAgLTQ5MCw3ICs0OTAsNyBAQCBjZGVm IGNsYXNzIFBvd2VyU2VyaWVzX3BvbHkoUG93ZXJTZXJpZXMpOgorICAgICAgICAgcmV0dXJuIFBv d2VyU2VyaWVzX3BvbHkoc2VsZi5fcGFyZW50LCAtc2VsZi5fX2YsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9wcmVjLCBjaGVjaz1GYWxzZSkKKyAKKy0g ICAgY3BkZWYgX2FkZF8oc2VsZiwgcmlnaHRfbSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRf KHNlbGYsIHJpZ2h0X20pOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitA QCAtNTIyLDcgKzUyMiw3IEBAIGNkZWYgY2xhc3MgUG93ZXJTZXJpZXNfcG9seShQb3dlclNlcmll cyk6CisgICAgICAgICByZXR1cm4gUG93ZXJTZXJpZXNfcG9seShzZWxmLl9wYXJlbnQsIHNlbGYu X19mICsgcmlnaHQuX19mLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5j b21tb25fcHJlY19jKHJpZ2h0KSwgY2hlY2s9VHJ1ZSkKKyAKKy0gICAgY3BkZWYgX3N1Yl8oc2Vs ZiwgcmlnaHRfbSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0X20pOgor ICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGRpZmZlcmVuY2Ugb2YgdHdvIHBvd2Vy IHNlcmllcy4KKyAKK0BAIC01MzcsNyArNTM3LDcgQEAgY2RlZiBjbGFzcyBQb3dlclNlcmllc19w b2x5KFBvd2VyU2VyaWVzKToKKyAgICAgICAgIHJldHVybiBQb3dlclNlcmllc19wb2x5KHNlbGYu X3BhcmVudCwgc2VsZi5fX2YgLSByaWdodC5fX2YsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLmNvbW1vbl9wcmVjX2MocmlnaHQpLCBjaGVjaz1UcnVlKQorIAorLSAgICBj cGRlZiBfbXVsXyhzZWxmLCByaWdodF9yKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX211bF8oc2Vs ZiwgcmlnaHRfcik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgcHJvZHVjdCBv ZiB0d28gcG93ZXIgc2VyaWVzLgorIAorQEAgLTU1Myw3ICs1NTMsNyBAQCBjZGVmIGNsYXNzIFBv d2VyU2VyaWVzX3BvbHkoUG93ZXJTZXJpZXMpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcHJlYz1wcmVjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2s9 VHJ1ZSkgICMgY2hlY2ssIHNpbmNlIHRydW5jYXRpb24gbWF5IGJlIG5lZWRlZAorIAorLSAgICBj cGRlZiBfcm11bF8oc2VsZiwgRWxlbWVudCBjKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3JtdWxf KHNlbGYsIEVsZW1lbnQgYyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIE11bHRpcGx5IGBgc2Vs ZmBgIG9uIHRoZSByaWdodCBieSBhIHNjYWxhci4KKyAKK0BAIC01NjYsNyArNTY2LDcgQEAgY2Rl ZiBjbGFzcyBQb3dlclNlcmllc19wb2x5KFBvd2VyU2VyaWVzKToKKyAgICAgICAgICIiIgorICAg ICAgICAgcmV0dXJuIFBvd2VyU2VyaWVzX3BvbHkoc2VsZi5fcGFyZW50LCBzZWxmLl9fZiAqIGMs IHNlbGYuX3ByZWMsIGNoZWNrPUZhbHNlKQorIAorLSAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxl bWVudCBjKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgYyk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIE11bHRpcGx5IGBgc2VsZmBgIG9uIHRoZSBsZWZ0IGJ5IGEg c2NhbGFyLgorIAorQEAgLTc1MCw3ICs3NTAsNyBAQCBjZGVmIGNsYXNzIFBvd2VyU2VyaWVzX3Bv bHkoUG93ZXJTZXJpZXMpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByZXR1cm4gc2Vs Zi5fX2YudHJ1bmNhdGUocHJlYykKKyAKKy0gICAgY2RlZiBfaW5wbGFjZV90cnVuY2F0ZShzZWxm LCBsb25nIHByZWMpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9pbnBsYWNlX3RydW5jYXRlKHNlbGYs IGxvbmcgcHJlYyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRydW5jYXRlIGBgc2VsZmBgIHRv IHByZWNpc2lvbiBgYHByZWNgYCBpbiBwbGFjZS4KKyAKK0BAIC0xMjUxLDcgKzEyNTEsNyBAQCBj ZGVmIGNsYXNzIEJhc2VSaW5nRmxvb3JEaXZBY3Rpb24oQWN0aW9uKToKKyAgICAgIiIiCisgICAg IFRoZSBmbG9vciBkaXZpc2lvbiBhY3Rpb24gb2YgdGhlIGJhc2UgcmluZyBvbiBhIGZvcm1hbCBw b3dlciBzZXJpZXMuCisgICAgICIiIgorLSAgICBjcGRlZiBfYWN0XyhzZWxmLCBnLCB4KSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgX2FjdF8oc2VsZiwgZywgeCk6CisgICAgICAgICByIiIiCisgICAg ICAgICBMZXQgYGBnYGAgYWN0IG9uIGBgeGBgIHVuZGVyIGBgc2VsZmBgLgorIAorZGlmZiAtLWdp dCBhL3NyYy9zYWdlL3JpbmdzL3Bvd2VyX3Nlcmllc19yaW5nX2VsZW1lbnQucHhkIGIvc3JjL3Nh Z2UvcmluZ3MvcG93ZXJfc2VyaWVzX3JpbmdfZWxlbWVudC5weGQKK2luZGV4IGI4YzI4MTAzMTMx Li5lNWMwMzFlZTE0NyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3Bvd2VyX3Nlcmllc19y aW5nX2VsZW1lbnQucHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9wb3dlcl9zZXJpZXNfcmluZ19l bGVtZW50LnB4ZAorQEAgLTMsOSArMyw5IEBAIGZyb20gc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudCBj aW1wb3J0IEFsZ2VicmFFbGVtZW50LCBSaW5nRWxlbWVudAorIGNkZWYgY2xhc3MgUG93ZXJTZXJp ZXMoQWxnZWJyYUVsZW1lbnQpOgorICAgICBjZGVmIGNoYXIgX2lzX2dlbgorICAgICBjZGVmIF9w cmVjCistICAgIGNkZWYgY29tbW9uX3ByZWNfYyhzZWxmLCBQb3dlclNlcmllcyBvdGhlcikgbm9l eGNlcHQKKysgICAgY2RlZiBjb21tb25fcHJlY19jKHNlbGYsIFBvd2VyU2VyaWVzIG90aGVyKQor ICAgICAjX3ByZWMoc2VsZiwgUmluZ0VsZW1lbnQgcmlnaHRfcikKKyAKKyAgICAgIyBVTlNBRkUs IG9ubHkgY2FsbCBmcm9tIGFuIGlucGxhY2Ugb3BlcmF0b3IKKyAgICAgIyBtYXkgcmV0dXJuIGEg bmV3IGVsZW1lbnQgaWYgbm90IHBvc3NpYmxlIHRvIG1vZGlmeSBpbnBsYWNlCistICAgIGNkZWYg X2lucGxhY2VfdHJ1bmNhdGUoc2VsZiwgbG9uZyBwcmVjKSBub2V4Y2VwdAorKyAgICBjZGVmIF9p bnBsYWNlX3RydW5jYXRlKHNlbGYsIGxvbmcgcHJlYykKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9y aW5ncy9wb3dlcl9zZXJpZXNfcmluZ19lbGVtZW50LnB5eCBiL3NyYy9zYWdlL3JpbmdzL3Bvd2Vy X3Nlcmllc19yaW5nX2VsZW1lbnQucHl4CitpbmRleCBmNjZlN2I2ZTkwNC4uMTUwNWE0OWE5OTUg MTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wb3dlcl9zZXJpZXNfcmluZ19lbGVtZW50LnB5 eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG93ZXJfc2VyaWVzX3JpbmdfZWxlbWVudC5weXgKK0BA IC0yNTQsNyArMjU0LDcgQEAgY2RlZiBjbGFzcyBQb3dlclNlcmllcyhBbGdlYnJhRWxlbWVudCk6 CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IK KyAKKy0gICAgY3BkZWYgYmFzZV9leHRlbmQoc2VsZiwgUikgbm9leGNlcHQ6CisrICAgIGNwZGVm IGJhc2VfZXh0ZW5kKHNlbGYsIFIpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYSBj b3B5IG9mIHRoaXMgcG93ZXIgc2VyaWVzIGJ1dCB3aXRoIGNvZWZmaWNpZW50cyBpbiBSLgorIAor QEAgLTMxMSw3ICszMTEsNyBAQCBjZGVmIGNsYXNzIFBvd2VyU2VyaWVzKEFsZ2VicmFFbGVtZW50 KToKKyAgICAgICAgIFMgPSBzZWxmLl9wYXJlbnQuY2hhbmdlX3JpbmcoUikKKyAgICAgICAgIHJl dHVybiBTKHNlbGYpCisgCistICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCByaWdodCwgaW50IG9w KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIHJpZ2h0LCBpbnQgb3ApOgor ICAgICAgICAgciIiIgorICAgICAgICAgQ29tcGFyaXNvbiBvZiBzZWxmIGFuZCBgYHJpZ2h0YGAu CisgCitAQCAtODEzLDcgKzgxMyw3IEBAIGNkZWYgY2xhc3MgUG93ZXJTZXJpZXMoQWxnZWJyYUVs ZW1lbnQpOgorICAgICAgICAgdiA9IFthW2ldIGZvciBpIGluIHJhbmdlKG1pbihwcmVjLCBsZW4o YSkpKV0KKyAgICAgICAgIHJldHVybiBzZWxmLl9wYXJlbnQuX3BvbHlfcmluZygpKHYpCisgCist ICAgIGNkZWYgX2lucGxhY2VfdHJ1bmNhdGUoc2VsZiwgbG9uZyBwcmVjKSBub2V4Y2VwdDoKKysg ICAgY2RlZiBfaW5wbGFjZV90cnVuY2F0ZShzZWxmLCBsb25nIHByZWMpOgorICAgICAgICAgcmV0 dXJuIHNlbGYudHJ1bmNhdGUocHJlYykKKyAKKyAgICAgZGVmIGFkZF9iaWdvaChzZWxmLCBwcmVj KToKK0BAIC05MTcsNyArOTE3LDcgQEAgY2RlZiBjbGFzcyBQb3dlclNlcmllcyhBbGdlYnJhRWxl bWVudCk6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYucHJlYygpCisgICAgICAgICByZXR1cm4g bWluKHNlbGYucHJlYygpLCBmLnByZWMoKSkKKyAKKy0gICAgY2RlZiBjb21tb25fcHJlY19jKHNl bGYsIFBvd2VyU2VyaWVzIGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIGNvbW1vbl9wcmVjX2Moc2Vs ZiwgUG93ZXJTZXJpZXMgZik6CisgICAgICAgICBpZiBzZWxmLl9wcmVjIGlzIGluZmluaXR5Ogor ICAgICAgICAgICAgIHJldHVybiBmLl9wcmVjCisgICAgICAgICBlbGlmIGYuX3ByZWMgaXMgaW5m aW5pdHk6CitAQCAtMTA0OCw3ICsxMDQ4LDcgQEAgY2RlZiBjbGFzcyBQb3dlclNlcmllcyhBbGdl YnJhRWxlbWVudCk6CisgICAgICAgICAgICAgICAgICAgICB2W2stbl0gPSB4CisgICAgICAgICBy ZXR1cm4gc2VsZi5fcGFyZW50KHYsIHNlbGYucHJlYygpLW4pCisgCistICAgIGNwZGVmIF9kaXZf KHNlbGYsIGRlbm9tX3IpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZGl2XyhzZWxmLCBkZW5vbV9y KToKKyAgICAgICAgICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorZGlmZiAtLWdpdCBhL3Ny Yy9zYWdlL3JpbmdzL3B1aXNldXhfc2VyaWVzX3JpbmdfZWxlbWVudC5weXggYi9zcmMvc2FnZS9y aW5ncy9wdWlzZXV4X3Nlcmllc19yaW5nX2VsZW1lbnQucHl4CitpbmRleCAzZjUwZmI0NWUyZS4u MzRmNGU5NjZhYWQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9wdWlzZXV4X3Nlcmllc19y aW5nX2VsZW1lbnQucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9wdWlzZXV4X3Nlcmllc19yaW5n X2VsZW1lbnQucHl4CitAQCAtMzU0LDcgKzM1NCw3IEBAIGNkZWYgY2xhc3MgUHVpc2V1eFNlcmll cyhBbGdlYnJhRWxlbWVudCk6CisgICAgICAgICBuID0gZyAvIG4KKyAgICAgICAgIHJldHVybiBn LCBtLCBuCisgCistICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0X20pIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBfYWRkXyhzZWxmLCByaWdodF9tKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0 dXJuIHRoZSBzdW0uCisgCitAQCAtMzc2LDcgKzM3Niw3IEBAIGNkZWYgY2xhc3MgUHVpc2V1eFNl cmllcyhBbGdlYnJhRWxlbWVudCk6CisgICAgICAgICBsID0gbDEgKyBsMgorICAgICAgICAgcmV0 dXJuIHR5cGUoc2VsZikoc2VsZi5fcGFyZW50LCBsLCBnKQorIAorLSAgICBjcGRlZiBfc3ViXyhz ZWxmLCByaWdodF9tKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmlnaHRfbSk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgZGlmZmVyZW5jZS4KKyAKK0BAIC0z OTgsNyArMzk4LDcgQEAgY2RlZiBjbGFzcyBQdWlzZXV4U2VyaWVzKEFsZ2VicmFFbGVtZW50KToK KyAgICAgICAgIGwgPSBsMSAtIGwyCisgICAgICAgICByZXR1cm4gdHlwZShzZWxmKShzZWxmLl9w YXJlbnQsIGwsIGcpCisgCistICAgIGNwZGVmIF9tdWxfKHNlbGYsIHJpZ2h0X3IpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBfbXVsXyhzZWxmLCByaWdodF9yKToKKyAgICAgICAgICIiIgorICAgICAg ICAgUmV0dXJuIHRoZSBwcm9kdWN0LgorIAorQEAgLTQyMCw3ICs0MjAsNyBAQCBjZGVmIGNsYXNz IFB1aXNldXhTZXJpZXMoQWxnZWJyYUVsZW1lbnQpOgorICAgICAgICAgbCA9IGwxICogbDIKKyAg ICAgICAgIHJldHVybiB0eXBlKHNlbGYpKHNlbGYuX3BhcmVudCwgbCwgZykKKyAKKy0gICAgY3Bk ZWYgX3JtdWxfKHNlbGYsIEVsZW1lbnQgYykgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9ybXVsXyhz ZWxmLCBFbGVtZW50IGMpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHJpZ2h0 IHNjYWxhciBtdWx0aXBsaWNhdGlvbi4KKyAKK0BAIC00MzMsNyArNDMzLDcgQEAgY2RlZiBjbGFz cyBQdWlzZXV4U2VyaWVzKEFsZ2VicmFFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAg cmV0dXJuIHR5cGUoc2VsZikoc2VsZi5fcGFyZW50LCBzZWxmLl9sLl9ybXVsXyhjKSwgc2VsZi5f ZSkKKyAKKy0gICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgYykgbm9leGNlcHQ6CisrICAg IGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IGMpOgorICAgICAgICAgIiIiCisgICAgICAgICBS ZXR1cm4gdGhlIGxlZnQgc2NhbGFyIG11bHRpcGxpY2F0aW9uLgorIAorQEAgLTQ0Niw3ICs0NDYs NyBAQCBjZGVmIGNsYXNzIFB1aXNldXhTZXJpZXMoQWxnZWJyYUVsZW1lbnQpOgorICAgICAgICAg IiIiCisgICAgICAgICByZXR1cm4gdHlwZShzZWxmKShzZWxmLl9wYXJlbnQsIHNlbGYuX2wuX2xt dWxfKGMpLCBzZWxmLl9lKQorIAorLSAgICBjcGRlZiBfZGl2XyhzZWxmLCByaWdodF9yKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgX2Rpdl8oc2VsZiwgcmlnaHRfcik6CisgICAgICAgICAiIiIKKyAg ICAgICAgIFJldHVybiB0aGUgcXVvdGllbnQuCisgCitAQCAtNTA4LDcgKzUwOCw3IEBAIGNkZWYg Y2xhc3MgUHVpc2V1eFNlcmllcyhBbGdlYnJhRWxlbWVudCk6CisgICAgICAgICAgICAgZSA9IHNl bGYuX2UgKiBpbnQoZGVub20pCisgICAgICAgICByZXR1cm4gdHlwZShzZWxmKShzZWxmLl9wYXJl bnQsIGwsIGUpCisgCistICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCByaWdodF9yLCBpbnQgb3Ap IG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgcmlnaHRfciwgaW50IG9wKToK KyAgICAgICAgIHIiIiIKKyAgICAgICAgIENvbXBhcmlzb24gb2YgYGBzZWxmYGAgYW5kIGBgcmln aHRgYC4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9yYXRpb25hbC5weGQgYi9zcmMv c2FnZS9yaW5ncy9yYXRpb25hbC5weGQKK2luZGV4IGY4MGVjMjJlOWE5Li5mNDJmODY1MTVkMyAx MDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3JhdGlvbmFsLnB4ZAorKysrIGIvc3JjL3NhZ2Uv cmluZ3MvcmF0aW9uYWwucHhkCitAQCAtMywxNyArMywxNyBAQCBmcm9tIHNhZ2UubGlicy5nbXAu dHlwZXMgY2ltcG9ydCBtcHFfdAorIGNpbXBvcnQgc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudAorIGNp bXBvcnQgc2FnZS5yaW5ncy5pbnRlZ2VyIGFzIGludGVnZXIKKyAKKy1jcGRlZiByYXRpb25hbF9w b3dlcl9wYXJ0cyhhLCBSYXRpb25hbCBiLCBmYWN0b3JfbGltaXQ9Pykgbm9leGNlcHQKKytjcGRl ZiByYXRpb25hbF9wb3dlcl9wYXJ0cyhhLCBSYXRpb25hbCBiLCBmYWN0b3JfbGltaXQ9PykKKyAK KyBjZGVmIGNsYXNzIFJhdGlvbmFsKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuRmllbGRFbGVtZW50 KToKKyAgICAgY2RlZiBtcHFfdCB2YWx1ZQorIAorLSAgICBjcGRlZiBfYWRkXyhzZWxmLCBvdGhl cikgbm9leGNlcHQKKy0gICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0CistICAg IGNwZGVmIF9wb3dfKHNlbGYsIG90aGVyKSBub2V4Y2VwdAorLSAgICBjZGVmIF9fc2V0X3ZhbHVl KHNlbGYsIHgsIHVuc2lnbmVkIGludCBiYXNlKSBub2V4Y2VwdAorKyAgICBjcGRlZiBfYWRkXyhz ZWxmLCBvdGhlcikKKysgICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIpCisrICAgIGNwZGVmIF9w b3dfKHNlbGYsIG90aGVyKQorKyAgICBjZGVmIF9fc2V0X3ZhbHVlKHNlbGYsIHgsIHVuc2lnbmVk IGludCBiYXNlKQorICAgICBjZGVmIHZvaWQgc2V0X2Zyb21fbXBxKFJhdGlvbmFsIHNlbGYsIG1w cV90IHZhbHVlKSBub2V4Y2VwdAorLSAgICBjZGVmIF9sc2hpZnQoc2VsZiwgbG9uZyBpbnQgZXhw KSBub2V4Y2VwdAorLSAgICBjZGVmIF9yc2hpZnQoc2VsZiwgbG9uZyBpbnQgZXhwKSBub2V4Y2Vw dAorKyAgICBjZGVmIF9sc2hpZnQoc2VsZiwgbG9uZyBpbnQgZXhwKQorKyAgICBjZGVmIF9yc2hp ZnQoc2VsZiwgbG9uZyBpbnQgZXhwKQorIAorLSAgICBjZGVmIF92YWxfdW5pdChzZWxmLCBpbnRl Z2VyLkludGVnZXIgcCkgbm9leGNlcHQKKysgICAgY2RlZiBfdmFsX3VuaXQoc2VsZiwgaW50ZWdl ci5JbnRlZ2VyIHApCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcmF0aW9uYWwucHl4IGIv c3JjL3NhZ2UvcmluZ3MvcmF0aW9uYWwucHl4CitpbmRleCA2MjA5MTM4NmU1ZC4uZWJmYjc0Yzg5 YTYgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9yYXRpb25hbC5weXgKKysrKyBiL3NyYy9z YWdlL3JpbmdzL3JhdGlvbmFsLnB5eAorQEAgLTE0Myw3ICsxNDMsNyBAQCBjZGVmIGlubGluZSB2 b2lkIHNldF9mcm9tX1JhdGlvbmFsKFJhdGlvbmFsIHNlbGYsIFJhdGlvbmFsIG90aGVyKSBub2V4 Y2VwdDoKKyBjZGVmIGlubGluZSB2b2lkIHNldF9mcm9tX0ludGVnZXIoUmF0aW9uYWwgc2VsZiwg aW50ZWdlci5JbnRlZ2VyIG90aGVyKSBub2V4Y2VwdDoKKyAgICAgbXBxX3NldF96KHNlbGYudmFs dWUsIG90aGVyLnZhbHVlKQorIAorLWNkZWYgb2JqZWN0IFJhdGlvbmFsX211bF8oUmF0aW9uYWwg YSwgUmF0aW9uYWwgYikgbm9leGNlcHQ6CisrY2RlZiBvYmplY3QgUmF0aW9uYWxfbXVsXyhSYXRp b25hbCBhLCBSYXRpb25hbCBiKToKKyAgICAgY2RlZiBSYXRpb25hbCB4CisgICAgIHggPSA8UmF0 aW9uYWw+IFJhdGlvbmFsLl9fbmV3X18oUmF0aW9uYWwpCisgCitAQCAtMTUzLDcgKzE1Myw3IEBA IGNkZWYgb2JqZWN0IFJhdGlvbmFsX211bF8oUmF0aW9uYWwgYSwgUmF0aW9uYWwgYikgbm9leGNl cHQ6CisgCisgICAgIHJldHVybiB4CisgCistY2RlZiBvYmplY3QgUmF0aW9uYWxfZGl2XyhSYXRp b25hbCBhLCBSYXRpb25hbCBiKSBub2V4Y2VwdDoKKytjZGVmIG9iamVjdCBSYXRpb25hbF9kaXZf KFJhdGlvbmFsIGEsIFJhdGlvbmFsIGIpOgorICAgICBjZGVmIFJhdGlvbmFsIHgKKyAgICAgeCA9 IDxSYXRpb25hbD4gUmF0aW9uYWwuX19uZXdfXyhSYXRpb25hbCkKKyAKK0BAIC0xNjMsNyArMTYz LDcgQEAgY2RlZiBvYmplY3QgUmF0aW9uYWxfZGl2XyhSYXRpb25hbCBhLCBSYXRpb25hbCBiKSBu b2V4Y2VwdDoKKyAKKyAgICAgcmV0dXJuIHgKKyAKKy1jZGVmIFJhdGlvbmFsX2FkZF8oUmF0aW9u YWwgc2VsZiwgUmF0aW9uYWwgb3RoZXIpIG5vZXhjZXB0OgorK2NkZWYgUmF0aW9uYWxfYWRkXyhS YXRpb25hbCBzZWxmLCBSYXRpb25hbCBvdGhlcik6CisgICAgIGNkZWYgUmF0aW9uYWwgeAorICAg ICB4ID0gPFJhdGlvbmFsPiBSYXRpb25hbC5fX25ld19fKFJhdGlvbmFsKQorICAgICBzaWdfb24o KQorQEAgLTE3MSw3ICsxNzEsNyBAQCBjZGVmIFJhdGlvbmFsX2FkZF8oUmF0aW9uYWwgc2VsZiwg UmF0aW9uYWwgb3RoZXIpIG5vZXhjZXB0OgorICAgICBzaWdfb2ZmKCkKKyAgICAgcmV0dXJuIHgK KyAKKy1jZGVmIFJhdGlvbmFsX3N1Yl8oUmF0aW9uYWwgc2VsZiwgUmF0aW9uYWwgb3RoZXIpIG5v ZXhjZXB0OgorK2NkZWYgUmF0aW9uYWxfc3ViXyhSYXRpb25hbCBzZWxmLCBSYXRpb25hbCBvdGhl cik6CisgICAgIGNkZWYgUmF0aW9uYWwgeAorICAgICB4ID0gPFJhdGlvbmFsPiBSYXRpb25hbC5f X25ld19fKFJhdGlvbmFsKQorIAorQEAgLTE4NCwxNCArMTg0LDE0IEBAIGNkZWYgUmF0aW9uYWxf c3ViXyhSYXRpb25hbCBzZWxmLCBSYXRpb25hbCBvdGhlcikgbm9leGNlcHQ6CisgY2RlZiBQYXJl bnQgdGhlX3JhdGlvbmFsX3JpbmcgPSBzYWdlLnJpbmdzLnJhdGlvbmFsX2ZpZWxkLlEKKyAKKyAj IG1ha2Ugc3VyZSB6ZXJvL29uZSBlbGVtZW50cyBhcmUgc2V0CistY2RlZiBzZXRfemVyb19vbmVf ZWxlbWVudHMoKSBub2V4Y2VwdDoKKytjZGVmIHNldF96ZXJvX29uZV9lbGVtZW50cygpOgorICAg ICBnbG9iYWwgdGhlX3JhdGlvbmFsX3JpbmcKKyAgICAgdGhlX3JhdGlvbmFsX3JpbmcuX3plcm9f ZWxlbWVudCA9IFJhdGlvbmFsKDApCisgICAgIHRoZV9yYXRpb25hbF9yaW5nLl9vbmVfZWxlbWVu dCA9IFJhdGlvbmFsKDEpCisgCisgc2V0X3plcm9fb25lX2VsZW1lbnRzKCkKKyAKKy1jcGRlZiBJ bnRlZ2VyIGludGVnZXJfcmF0aW9uYWxfcG93ZXIoSW50ZWdlciBhLCBSYXRpb25hbCBiKSBub2V4 Y2VwdDoKKytjcGRlZiBJbnRlZ2VyIGludGVnZXJfcmF0aW9uYWxfcG93ZXIoSW50ZWdlciBhLCBS YXRpb25hbCBiKToKKyAgICAgIiIiCisgICAgIENvbXB1dGUgYGFeYmAgYXMgYW4gaW50ZWdlciwg aWYgaXQgaXMgaW50ZWdyYWwsIG9yIHJldHVybiBgYE5vbmVgYC4KKyAKK0BAIC0yNzMsNyArMjcz LDcgQEAgY3BkZWYgSW50ZWdlciBpbnRlZ2VyX3JhdGlvbmFsX3Bvd2VyKEludGVnZXIgYSwgUmF0 aW9uYWwgYikgbm9leGNlcHQ6CisgICAgIHJldHVybiB6CisgCisgCistY3BkZWYgcmF0aW9uYWxf cG93ZXJfcGFydHMoYSwgUmF0aW9uYWwgYiwgZmFjdG9yX2xpbWl0PTEwKio1KSBub2V4Y2VwdDoK KytjcGRlZiByYXRpb25hbF9wb3dlcl9wYXJ0cyhhLCBSYXRpb25hbCBiLCBmYWN0b3JfbGltaXQ9 MTAqKjUpOgorICAgICAiIiIKKyAgICAgQ29tcHV0ZSByYXRpb25hbHMgb3IgaW50ZWdlcnMgYGNg IGFuZCBgZGAgc3VjaCB0aGF0IGBhXmIgPSBjKmReYmAKKyAgICAgd2l0aCBgZGAgc21hbGwuIFRo aXMgaXMgdXNlZCBmb3Igc2ltcGxpZnlpbmcgcmFkaWNhbHMuCitAQCAtNTc3LDcgKzU3Nyw3IEBA IGNkZWYgY2xhc3MgUmF0aW9uYWwoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5GaWVsZEVsZW1lbnQp OgorIAorICAgICAgICAgcmFpc2UgVHlwZUVycm9yKGYidW5hYmxlIHRvIGNvbnZlcnQgcmF0aW9u YWwge3NlbGZ9IHRvIGFuIGludGVnZXIiKQorIAorLSAgICBjZGVmIF9fc2V0X3ZhbHVlKHNlbGYs IHgsIHVuc2lnbmVkIGludCBiYXNlKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfX3NldF92YWx1ZShz ZWxmLCB4LCB1bnNpZ25lZCBpbnQgYmFzZSk6CisgICAgICAgICBjZGVmIGludCBuCisgICAgICAg ICBjZGVmIFJhdGlvbmFsIHRlbXBfcmF0aW9uYWwKKyAgICAgICAgIGNkZWYgaW50ZWdlci5JbnRl Z2VyIGEsIGIKK0BAIC04MzEsNyArODMxLDcgQEAgY2RlZiBjbGFzcyBSYXRpb25hbChzYWdlLnN0 cnVjdHVyZS5lbGVtZW50LkZpZWxkRWxlbWVudCk6CisgICAgICAgICBsID0gc2VsZi5jb250aW51 ZWRfZnJhY3Rpb25fbGlzdCgpCisgICAgICAgICByZXR1cm4gQ29udGludWVkRnJhY3Rpb25fcGVy aW9kaWMobCkKKyAKKy0gICAgY3BkZWYgX3JpY2hjbXBfKGxlZnQsIHJpZ2h0LCBpbnQgb3ApIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIENvbXBhcmUgdHdvIHJhdGlvbmFsIG51bWJlcnMuCisgCitAQCAt MTgxMiw3ICsxODEyLDcgQEAgY2RlZiBjbGFzcyBSYXRpb25hbChzYWdlLnN0cnVjdHVyZS5lbGVt ZW50LkZpZWxkRWxlbWVudCk6CisgCisgICAgICMgVE9ETyAtLSBjaGFuZ2UgdG8gdXNlIGNwZGVm PyAgSWYgc28sIG11c3QgZml4CisgICAgICMgY29kZSBpbiBwYWRpY3MsIGV0Yy4gIERvIHNlYXJj aF9zcmMoJ192YWxfdW5pdCcpLgorLSAgICBjZGVmIF92YWxfdW5pdChSYXRpb25hbCBzZWxmLCBp bnRlZ2VyLkludGVnZXIgcCkgbm9leGNlcHQ6CisrICAgIGNkZWYgX3ZhbF91bml0KFJhdGlvbmFs IHNlbGYsIGludGVnZXIuSW50ZWdlciBwKToKKyAgICAgICAgICIiIgorICAgICAgICAgVGhpcyBp cyBjYWxsZWQgYnkgOm1ldGg6YHZhbF91bml0KClgLgorIAorQEAgLTIzMzYsNyArMjMzNiw3IEBA IGNkZWYgY2xhc3MgUmF0aW9uYWwoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5GaWVsZEVsZW1lbnQp OgorIAorICAgICAgICAgcmV0dXJuIGNvZXJjaW9uX21vZGVsLmJpbl9vcChsZWZ0LCByaWdodCwg b3BlcmF0b3IuYWRkKQorIAorLSAgICBjcGRlZiBfYWRkXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6 CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAg UmV0dXJuIGBgcmlnaHRgYCBwbHVzIGBgc2VsZmBgLgorIAorQEAgLTIzODgsNyArMjM4OCw3IEBA IGNkZWYgY2xhc3MgUmF0aW9uYWwoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5GaWVsZEVsZW1lbnQp OgorIAorICAgICAgICAgcmV0dXJuIGNvZXJjaW9uX21vZGVsLmJpbl9vcChsZWZ0LCByaWdodCwg b3BlcmF0b3Iuc3ViKQorIAorLSAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6 CisrICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAg UmV0dXJuIGBgc2VsZmBgIG1pbnVzIGBgcmlnaHRgYC4KKyAKK0BAIC0yNDAyLDcgKzI0MDIsNyBA QCBjZGVmIGNsYXNzIFJhdGlvbmFsKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuRmllbGRFbGVtZW50 KToKKyAgICAgICAgIG1wcV9zdWIoeC52YWx1ZSwgc2VsZi52YWx1ZSwgKDxSYXRpb25hbD5yaWdo dCkudmFsdWUpCisgICAgICAgICByZXR1cm4geAorIAorLSAgICBjcGRlZiBfbmVnXyhzZWxmKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgX25lZ18oc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAg IE5lZ2F0ZSBgYHNlbGZgYC4KKyAKK0BAIC0yNDQxLDcgKzI0NDEsNyBAQCBjZGVmIGNsYXNzIFJh dGlvbmFsKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuRmllbGRFbGVtZW50KToKKyAKKyAgICAgICAg IHJldHVybiBjb2VyY2lvbl9tb2RlbC5iaW5fb3AobGVmdCwgcmlnaHQsIG9wZXJhdG9yLm11bCkK KyAKKy0gICAgY3BkZWYgX211bF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBf bXVsXyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBgYHNlbGZg YCB0aW1lcyBgYHJpZ2h0YGAuCisgCitAQCAtMjQ5OCw3ICsyNDk4LDcgQEAgY2RlZiBjbGFzcyBS YXRpb25hbChzYWdlLnN0cnVjdHVyZS5lbGVtZW50LkZpZWxkRWxlbWVudCk6CisgCisgICAgICAg ICByZXR1cm4gY29lcmNpb25fbW9kZWwuYmluX29wKGxlZnQsIHJpZ2h0LCBvcGVyYXRvci50cnVl ZGl2KQorIAorLSAgICBjcGRlZiBfZGl2XyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIF9kaXZfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGBg c2VsZmBgIGRpdmlkZWQgYnkgYGByaWdodGBgLgorIAorQEAgLTI1NDIsNyArMjU0Miw3IEBAIGNk ZWYgY2xhc3MgUmF0aW9uYWwoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5GaWVsZEVsZW1lbnQpOgor ICAgICAgICAgbXBxX2ludih4LnZhbHVlLCBzZWxmLnZhbHVlKQorICAgICAgICAgcmV0dXJuIHgK KyAKKy0gICAgY3BkZWYgX3Bvd18oc2VsZiwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBf cG93XyhzZWxmLCBvdGhlcik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJhaXNlIGBgc2VsZmBg IHRvIHRoZSByYXRpb25hbCBwb3dlciBgYG90aGVyYGAuCisgCitAQCAtMjYzNyw3ICsyNjM3LDcg QEAgY2RlZiBjbGFzcyBSYXRpb25hbChzYWdlLnN0cnVjdHVyZS5lbGVtZW50LkZpZWxkRWxlbWVu dCk6CisgICAgICAgICBmcm9tIHNhZ2Uuc3ltYm9saWMucmluZyBpbXBvcnQgU1IKKyAgICAgICAg IHJldHVybiBTUihjKSAqIFNSKGQpLnBvd2VyKG4sIGhvbGQ9VHJ1ZSkKKyAKKy0gICAgY3BkZWYg X3Bvd19pbnQoc2VsZiwgbikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9wb3dfaW50KHNlbGYsIG4p OgorICAgICAgICAgIiIiCisgICAgICAgICBSYWlzZSBgYHNlbGZgYCB0byB0aGUgaW50ZWdlciBw b3dlciBgYG5gYC4KKyAKK0BAIC0yNjU3LDcgKzI2NTcsNyBAQCBjZGVmIGNsYXNzIFJhdGlvbmFs KHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuRmllbGRFbGVtZW50KToKKyAgICAgICAgICMgYmUgcGFy dGljdWxhcmx5IGVmZmljaWVudCBoZXJlLgorICAgICAgICAgcmV0dXJuIHNlbGYuX3Bvd18oUmF0 aW9uYWwobikpCisgCistICAgIGNkZWYgX3Bvd19sb25nKHNlbGYsIGxvbmcgbikgbm9leGNlcHQ6 CisrICAgIGNkZWYgX3Bvd19sb25nKHNlbGYsIGxvbmcgbik6CisgICAgICAgICAiIiIKKyAgICAg ICAgIFRFU1RTOjoKKyAKK0BAIC0zNjk0LDcgKzM2OTQsNyBAQCBjZGVmIGNsYXNzIFJhdGlvbmFs KHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuRmllbGRFbGVtZW50KToKKyAgICAgICAgICAgICByZXR1 cm4gRmFsc2UKKyAgICAgICAgIHJldHVybiBhLnByaW1lX3RvX1NfcGFydChTKSA9PSAxCisgCist ICAgIGNkZWYgX2xzaGlmdChzZWxmLCBsb25nIGludCBleHApIG5vZXhjZXB0OgorKyAgICBjZGVm IF9sc2hpZnQoc2VsZiwgbG9uZyBpbnQgZXhwKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJl dHVybiBgYHNlbGYgKiAyXmV4cGBgLgorICAgICAgICAgIiIiCitAQCAtMzc0Miw3ICszNzQyLDcg QEAgY2RlZiBjbGFzcyBSYXRpb25hbChzYWdlLnN0cnVjdHVyZS5lbGVtZW50LkZpZWxkRWxlbWVu dCk6CisgICAgICAgICAgICAgICAgIHJldHVybiAoPFJhdGlvbmFsPngpLl9sc2hpZnQoeSkKKyAg ICAgICAgIHJldHVybiBjb2VyY2lvbl9tb2RlbC5iaW5fb3AoeCwgeSwgb3BlcmF0b3IubHNoaWZ0 KQorIAorLSAgICBjZGVmIF9yc2hpZnQoc2VsZiwgbG9uZyBpbnQgZXhwKSBub2V4Y2VwdDoKKysg ICAgY2RlZiBfcnNoaWZ0KHNlbGYsIGxvbmcgaW50IGV4cCk6CisgICAgICAgICByIiIiCisgICAg ICAgICBSZXR1cm4gYGBzZWxmIC8gMl5leHBgYC4KKyAgICAgICAgICIiIgorQEAgLTQxMzAsNyAr NDEzMCw3IEBAIGNkZWYgY2xhc3MgWl90b19RKE1vcnBoaXNtKToKKyAgICAgICAgIGltcG9ydCBz YWdlLmNhdGVnb3JpZXMuaG9tc2V0CisgICAgICAgICBNb3JwaGlzbS5fX2luaXRfXyhzZWxmLCBz YWdlLmNhdGVnb3JpZXMuaG9tc2V0LkhvbShpbnRlZ2VyX3JpbmcuWlosIHJhdGlvbmFsX2ZpZWxk LlFRKSkKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCkgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpOgorICAgICAgICAgIiIiCisgICAgICAg ICBSZXR1cm4gdGhlIGltYWdlIG9mIHRoZSBtb3JwaGlzbSBvbiBgYHhgYC4KKyAKK0BAIC00MTk3 LDcgKzQxOTcsNyBAQCBjZGVmIGNsYXNzIFFfdG9fWihNYXApOgorICAgICAgICAgc2FnZTogdHlw ZShaWi5jb252ZXJ0X21hcF9mcm9tKFFRKSkKKyAgICAgICAgIDxjbGFzcyAnc2FnZS5yaW5ncy5y YXRpb25hbC5RX3RvX1onPgorICAgICAiIiIKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2Vs ZiwgeCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpOgorICAg ICAgICAgIiIiCisgICAgICAgICBBIGZhc3QgbWFwIGZyb20gdGhlIHJhdGlvbmFscyB0byB0aGUg aW50ZWdlcnMuCisgCitAQCAtNDI1Miw3ICs0MjUyLDcgQEAgY2RlZiBjbGFzcyBpbnRfdG9fUShN b3JwaGlzbSk6CisgICAgICAgICBNb3JwaGlzbS5fX2luaXRfXyhzZWxmLCBzYWdlLmNhdGVnb3Jp ZXMuaG9tc2V0LkhvbSgKKyAgICAgICAgICAgICBTZXRfUHl0aG9uVHlwZShsb25nKSwgcmF0aW9u YWxfZmllbGQuUVEpKQorIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCBhKSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgYSk6CisgICAgICAgICAiIiIK KyAgICAgICAgIFJldHVybiB0aGUgaW1hZ2Ugb2YgdGhlIG1vcnBoaXNtIG9uIGBgYWBgLgorIAor ZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3JlYWxfYXJiLnB4ZCBiL3NyYy9zYWdlL3Jpbmdz L3JlYWxfYXJiLnB4ZAoraW5kZXggMGEzYTY4ZDEwNTcuLjlmODU2OGVmNmFmIDEwMDY0NAorLS0t IGEvc3JjL3NhZ2UvcmluZ3MvcmVhbF9hcmIucHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9yZWFs X2FyYi5weGQKK0BAIC05LDEyICs5LDEyIEBAIGNkZWYgaW50IGFyYl90b19tcGZpKG1wZmlfdCB0 YXJnZXQsIGFyYl90IHNvdXJjZSwgY29uc3QgbG9uZyBwcmVjaXNpb24pIGV4Y2VwdCAtCisgCisg Y2RlZiBjbGFzcyBSZWFsQmFsbChSaW5nRWxlbWVudCk6CisgICAgIGNkZWYgYXJiX3QgdmFsdWUK Ky0gICAgY3BkZWYgX2FkZF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0CistICAgIGNwZGVmIF9tdWxf KHNlbGYsIG90aGVyKSBub2V4Y2VwdAorLSAgICBjcGRlZiBSZWFsSW50ZXJ2YWxGaWVsZEVsZW1l bnQgX3JlYWxfbXBmaV8oc2VsZiwgUmVhbEludGVydmFsRmllbGRfY2xhc3MgcGFyZW50KSBub2V4 Y2VwdAorLSAgICBjcGRlZiBSZWFsQmFsbCBwc2koc2VsZikgbm9leGNlcHQKKysgICAgY3BkZWYg X2FkZF8oc2VsZiwgb3RoZXIpCisrICAgIGNwZGVmIF9tdWxfKHNlbGYsIG90aGVyKQorKyAgICBj cGRlZiBSZWFsSW50ZXJ2YWxGaWVsZEVsZW1lbnQgX3JlYWxfbXBmaV8oc2VsZiwgUmVhbEludGVy dmFsRmllbGRfY2xhc3MgcGFyZW50KQorKyAgICBjcGRlZiBSZWFsQmFsbCBwc2koc2VsZikKKyAK Ky0gICAgY2RlZiBpbmxpbmUgUmVhbEJhbGwgX25ldyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2Rl ZiBpbmxpbmUgUmVhbEJhbGwgX25ldyhzZWxmKToKKyAgICAgICAgIGNkZWYgUmVhbEJhbGwgcmVz ID0gUmVhbEJhbGwuX19uZXdfXyhSZWFsQmFsbCkKKyAgICAgICAgIHJlcy5fcGFyZW50ID0gc2Vs Zi5fcGFyZW50CisgICAgICAgICByZXR1cm4gcmVzCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvcmlu Z3MvcmVhbF9hcmIucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcmVhbF9hcmIucHl4CitpbmRleCBlMWJj MGMwOGYxNi4uYTE4MzMyYTVhYmEgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9yZWFsX2Fy Yi5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3JlYWxfYXJiLnB5eAorQEAgLTE1NDksNyArMTU0 OSw3IEBAIGNkZWYgY2xhc3MgUmVhbEJhbGwoUmluZ0VsZW1lbnQpOgorIAorICAgICAjIENvbnZl cnNpb25zCisgCistICAgIGNwZGVmIFJlYWxJbnRlcnZhbEZpZWxkRWxlbWVudCBfcmVhbF9tcGZp XyhzZWxmLCBSZWFsSW50ZXJ2YWxGaWVsZF9jbGFzcyBwYXJlbnQpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBSZWFsSW50ZXJ2YWxGaWVsZEVsZW1lbnQgX3JlYWxfbXBmaV8oc2VsZiwgUmVhbEludGVy dmFsRmllbGRfY2xhc3MgcGFyZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIGEg Om1vZDpgcmVhbCBpbnRlcnZhbCA8c2FnZS5yaW5ncy5yZWFsX21wZmk+YCBjb250YWluaW5nIHRo aXMgYmFsbC4KKyAKK0BAIC0yMjQ3LDcgKzIyNDcsNyBAQCBjZGVmIGNsYXNzIFJlYWxCYWxsKFJp bmdFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIGFyYl9pc19leGFjdChz ZWxmLnZhbHVlKQorIAorLSAgICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCkg bm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdodCwgaW50IG9wKToKKyAg ICAgICAgICIiIgorICAgICAgICAgQ29tcGFyZSBgYGxlZnRgYCBhbmQgYGByaWdodGBgLgorIAor QEAgLTI3ODksNyArMjc4OSw3IEBAIGNkZWYgY2xhc3MgUmVhbEJhbGwoUmluZ0VsZW1lbnQpOgor ICAgICAgICAgaWYgX2RvX3NpZyhwcmVjKHNlbGYpKTogc2lnX29mZigpCisgICAgICAgICByZXR1 cm4gcmVzCisgCistICAgIGNwZGVmIF9hZGRfKHNlbGYsIG90aGVyKSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgX2FkZF8oc2VsZiwgb3RoZXIpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4g dGhlIHN1bSBvZiB0d28gYmFsbHMsIHJvdW5kZWQgdG8gdGhlIGFtYmllbnQgZmllbGQncyBwcmVj aXNpb24uCisgCitAQCAtMjgwNyw3ICsyODA3LDcgQEAgY2RlZiBjbGFzcyBSZWFsQmFsbChSaW5n RWxlbWVudCk6CisgICAgICAgICBpZiBfZG9fc2lnKHByZWMoc2VsZikpOiBzaWdfb2ZmKCkKKyAg ICAgICAgIHJldHVybiByZXMKKyAKKy0gICAgY3BkZWYgX3N1Yl8oc2VsZiwgb3RoZXIpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBfc3ViXyhzZWxmLCBvdGhlcik6CisgICAgICAgICAiIiIKKyAgICAg ICAgIFJldHVybiB0aGUgZGlmZmVyZW5jZSBvZiB0d28gYmFsbHMsIHJvdW5kZWQgdG8gdGhlIGFt YmllbnQgZmllbGQncworICAgICAgICAgcHJlY2lzaW9uLgorQEAgLTI4MjYsNyArMjgyNiw3IEBA IGNkZWYgY2xhc3MgUmVhbEJhbGwoUmluZ0VsZW1lbnQpOgorICAgICAgICAgaWYgX2RvX3NpZyhw cmVjKHNlbGYpKTogc2lnX29mZigpCisgICAgICAgICByZXR1cm4gcmVzCisgCistICAgIGNwZGVm IF9tdWxfKHNlbGYsIG90aGVyKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX211bF8oc2VsZiwgb3Ro ZXIpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHByb2R1Y3Qgb2YgdHdvIGJh bGxzLCByb3VuZGVkIHRvIHRoZSBhbWJpZW50IGZpZWxkJ3MKKyAgICAgICAgIHByZWNpc2lvbi4K K0BAIC0yODQ1LDcgKzI4NDUsNyBAQCBjZGVmIGNsYXNzIFJlYWxCYWxsKFJpbmdFbGVtZW50KToK KyAgICAgICAgIGlmIF9kb19zaWcocHJlYyhzZWxmKSk6IHNpZ19vZmYoKQorICAgICAgICAgcmV0 dXJuIHJlcworIAorLSAgICBjcGRlZiBfZGl2XyhzZWxmLCBvdGhlcikgbm9leGNlcHQ6CisrICAg IGNwZGVmIF9kaXZfKHNlbGYsIG90aGVyKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJu IHRoZSBxdW90aWVudCBvZiB0d28gYmFsbHMsIHJvdW5kZWQgdG8gdGhlIGFtYmllbnQgZmllbGQn cworICAgICAgICAgcHJlY2lzaW9uLgorQEAgLTM4NDIsNyArMzg0Miw3IEBAIGNkZWYgY2xhc3Mg UmVhbEJhbGwoUmluZ0VsZW1lbnQpOgorICAgICAgICAgaWYgX2RvX3NpZyhwcmVjKHNlbGYpKTog c2lnX29mZigpCisgICAgICAgICByZXR1cm4gcmVzdWx0CisgCistICAgIGNwZGVmIFJlYWxCYWxs IHBzaShzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgUmVhbEJhbGwgcHNpKHNlbGYpOgorICAg ICAgICAgIiIiCisgICAgICAgICBDb21wdXRlIHRoZSBkaWdhbW1hIGZ1bmN0aW9uIHdpdGggYXJn dW1lbnQgc2VsZi4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9yZWFsX2RvdWJsZS5w eGQgYi9zcmMvc2FnZS9yaW5ncy9yZWFsX2RvdWJsZS5weGQKK2luZGV4IGUyYzY1N2ZhZWMyLi4w NmQ0MTIxZWYyNiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3JlYWxfZG91YmxlLnB4ZAor KysrIGIvc3JjL3NhZ2UvcmluZ3MvcmVhbF9kb3VibGUucHhkCitAQCAtMywxMyArMywxMyBAQCBm cm9tIHNhZ2UucmluZ3MucmluZyBjaW1wb3J0IEZpZWxkCisgY2ltcG9ydCBzYWdlLnJpbmdzLmFi YworIAorIGNkZWYgY2xhc3MgUmVhbERvdWJsZUZpZWxkX2NsYXNzKHNhZ2UucmluZ3MuYWJjLlJl YWxEb3VibGVGaWVsZCk6CistICAgIGNkZWYgX25ld19jKHNlbGYsIGRvdWJsZSB2YWx1ZSkgbm9l eGNlcHQKKysgICAgY2RlZiBfbmV3X2Moc2VsZiwgZG91YmxlIHZhbHVlKQorIAorIGNkZWYgY2xh c3MgUmVhbERvdWJsZUVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgY2RlZiBkb3VibGUgX3Zh bHVlCistICAgIGNkZWYgX25ld19jKHNlbGYsIGRvdWJsZSB2YWx1ZSkgbm9leGNlcHQKKy0gICAg Y3BkZWYgX2FkZF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0CistICAgIGNwZGVmIF9tdWxfKHNlbGYs IG90aGVyKSBub2V4Y2VwdAorLSAgICBjcGRlZiBSZWFsRG91YmxlRWxlbWVudCBhYnMoUmVhbERv dWJsZUVsZW1lbnQgc2VsZikgbm9leGNlcHQKKysgICAgY2RlZiBfbmV3X2Moc2VsZiwgZG91Ymxl IHZhbHVlKQorKyAgICBjcGRlZiBfYWRkXyhzZWxmLCBvdGhlcikKKysgICAgY3BkZWYgX211bF8o c2VsZiwgb3RoZXIpCisrICAgIGNwZGVmIFJlYWxEb3VibGVFbGVtZW50IGFicyhSZWFsRG91Ymxl RWxlbWVudCBzZWxmKQorIAorLWNkZWYgZG91YmxlX3JlcHIoZG91YmxlIHgpIG5vZXhjZXB0Cisr Y2RlZiBkb3VibGVfcmVwcihkb3VibGUgeCkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9y ZWFsX2RvdWJsZS5weXggYi9zcmMvc2FnZS9yaW5ncy9yZWFsX2RvdWJsZS5weXgKK2luZGV4IDMz YzNlYjYwNmFmLi41Y2I2MTk3NzRkMSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3JlYWxf ZG91YmxlLnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcmVhbF9kb3VibGUucHl4CitAQCAtMjc4 LDcgKzI3OCw3IEBAIGNkZWYgY2xhc3MgUmVhbERvdWJsZUZpZWxkX2NsYXNzKHNhZ2UucmluZ3Mu YWJjLlJlYWxEb3VibGVGaWVsZCk6CisgICAgICAgICBmcm9tIHNhZ2UucmluZ3MuY29tcGxleF9k b3VibGUgaW1wb3J0IENERgorICAgICAgICAgcmV0dXJuIENERgorIAorLSAgICBjcGRlZiBfY29l cmNlX21hcF9mcm9tXyhzZWxmLCBTKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2NvZXJjZV9tYXBf ZnJvbV8oc2VsZiwgUyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIENhbm9uaWNhbCBjb2VyY2lv biBvZiBgYFNgYCB0byB0aGUgcmVhbCBkb3VibGUgZmllbGQuCisgCitAQCAtNDczLDcgKzQ3Myw3 IEBAIGNkZWYgY2xhc3MgUmVhbERvdWJsZUZpZWxkX2NsYXNzKHNhZ2UucmluZ3MuYWJjLlJlYWxE b3VibGVGaWVsZCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBJbnRlZ2VyKDApCisg CistICAgIGNkZWYgX25ld19jKHNlbGYsIGRvdWJsZSB2YWx1ZSkgbm9leGNlcHQ6CisrICAgIGNk ZWYgX25ld19jKHNlbGYsIGRvdWJsZSB2YWx1ZSk6CisgICAgICAgICBjZGVmIFJlYWxEb3VibGVF bGVtZW50IHgKKyAgICAgICAgIHggPSBQWV9ORVcoUmVhbERvdWJsZUVsZW1lbnQpCisgICAgICAg ICB4Ll92YWx1ZSA9IHZhbHVlCitAQCAtNzQxLDcgKzc0MSw3IEBAIGNkZWYgY2xhc3MgUmVhbERv dWJsZUVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJu IFJlYWxEb3VibGVFbGVtZW50LCAoc2VsZi5fdmFsdWUsICkKKyAKKy0gICAgY2RlZiBfbmV3X2Mo c2VsZiwgZG91YmxlIHZhbHVlKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfbmV3X2Moc2VsZiwgZG91 YmxlIHZhbHVlKToKKyAgICAgICAgIGNkZWYgUmVhbERvdWJsZUVsZW1lbnQgeAorICAgICAgICAg eCA9IFBZX05FVyhSZWFsRG91YmxlRWxlbWVudCkKKyAgICAgICAgIHguX3ZhbHVlID0gdmFsdWUK K0BAIC0xMzEwLDcgKzEzMTAsNyBAQCBjZGVmIGNsYXNzIFJlYWxEb3VibGVFbGVtZW50KEZpZWxk RWxlbWVudCk6CisgICAgICAgICB4Ll92YWx1ZSA9IDEuMCAvIHNlbGYuX3ZhbHVlCisgICAgICAg ICByZXR1cm4geAorIAorLSAgICBjcGRlZiBfYWRkXyhzZWxmLCByaWdodCkgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIF9hZGRfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgQWRk IHR3byByZWFsIG51bWJlcnMgd2l0aCB0aGUgc2FtZSBwYXJlbnQuCisgCitAQCAtMTMyMyw3ICsx MzIzLDcgQEAgY2RlZiBjbGFzcyBSZWFsRG91YmxlRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAg ICAgICAgeC5fdmFsdWUgPSBzZWxmLl92YWx1ZSArICg8UmVhbERvdWJsZUVsZW1lbnQ+cmlnaHQp Ll92YWx1ZQorICAgICAgICAgcmV0dXJuIHgKKyAKKy0gICAgY3BkZWYgX3N1Yl8oc2VsZiwgcmln aHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodCk6CisgICAgICAgICAi IiIKKyAgICAgICAgIFN1YnRyYWN0IHR3byByZWFsIG51bWJlcnMgd2l0aCB0aGUgc2FtZSBwYXJl bnQuCisgCitAQCAtMTMzNiw3ICsxMzM2LDcgQEAgY2RlZiBjbGFzcyBSZWFsRG91YmxlRWxlbWVu dChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgeC5fdmFsdWUgPSBzZWxmLl92YWx1ZSAtICg8UmVh bERvdWJsZUVsZW1lbnQ+cmlnaHQpLl92YWx1ZQorICAgICAgICAgcmV0dXJuIHgKKyAKKy0gICAg Y3BkZWYgX211bF8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbXVsXyhzZWxm LCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIE11bHRpcGx5IHR3byByZWFsIG51bWJl cnMgd2l0aCB0aGUgc2FtZSBwYXJlbnQuCisgCitAQCAtMTM0OSw3ICsxMzQ5LDcgQEAgY2RlZiBj bGFzcyBSZWFsRG91YmxlRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgeC5fdmFsdWUg PSBzZWxmLl92YWx1ZSAqICg8UmVhbERvdWJsZUVsZW1lbnQ+cmlnaHQpLl92YWx1ZQorICAgICAg ICAgcmV0dXJuIHgKKyAKKy0gICAgY3BkZWYgX2Rpdl8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBfZGl2XyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIERp dmlkZSBgYHNlbGZgYCBieSBgYHJpZ2h0YGAuCisgCitAQCAtMTQxMCw3ICsxNDEwLDcgQEAgY2Rl ZiBjbGFzcyBSZWFsRG91YmxlRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgZWxzZToK KyAgICAgICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2MoLXNlbGYuX3ZhbHVlKQorIAorLSAgICBj cGRlZiBSZWFsRG91YmxlRWxlbWVudCBhYnMoUmVhbERvdWJsZUVsZW1lbnQgc2VsZikgbm9leGNl cHQ6CisrICAgIGNwZGVmIFJlYWxEb3VibGVFbGVtZW50IGFicyhSZWFsRG91YmxlRWxlbWVudCBz ZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJucyB0aGUgYWJzb2x1dGUgdmFsdWUg b2YgYGBzZWxmYGAuCisgCitAQCAtMTc0MSw3ICsxNzQxLDcgQEAgY2RlZiBjbGFzcyBSZWFsRG91 YmxlRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4g Ym9vbChsaWJjLm1hdGguaXNpbmYoc2VsZi5fdmFsdWUpKQorIAorLSAgICBjcGRlZiBfcmljaGNt cF8obGVmdCwgcmlnaHQsIGludCBvcCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhs ZWZ0LCByaWdodCwgaW50IG9wKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmljaCBjb21wYXJp c29uIG9mIGBgbGVmdGBgIGFuZCBgYHJpZ2h0YGAuCisgCitAQCAtMTk5OSw3ICsxOTk5LDcgQEAg Y2RlZiBjbGFzcyBUb1JERihNb3JwaGlzbSk6CisgICAgICAgICAgICAgUiA9IFNldF9QeXRob25U eXBlKFIpCisgICAgICAgICBNb3JwaGlzbS5fX2luaXRfXyhzZWxmLCBIb20oUiwgUkRGKSkKKyAK Ky0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCkgbm9leGNlcHQ6CisrICAgIGNwZGVm IEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpOgorICAgICAgICAgIiIiCisgICAgICAgICBTZW5kIGBg eGBgIHRvIHRoZSBpbWFnZSB1bmRlciB0aGlzIG1hcC4KKyAKK0BAIC0yMTg2LDcgKzIxODYsNyBA QCBlbHNlOgorICAgICAjIEZyb20gaGVyZSBvbiwgY2FsbGluZyBQWV9ORVcoUmVhbERvdWJsZUVs ZW1lbnQpIGFjdHVhbGx5IGNyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgUmVhbERvdWJsZUVsZW1lbnRf Z3NsCisgCisgCistY2RlZiBkb3VibGVfcmVwcihkb3VibGUgeCkgbm9leGNlcHQ6CisrY2RlZiBk b3VibGVfcmVwcihkb3VibGUgeCk6CisgICAgICIiIgorICAgICBDb252ZXJ0IGEgZG91YmxlIHRv IGEgc3RyaW5nIHdpdGggbWF4aW11bSBwcmVjaXNpb24uCisgICAgICIiIgorZGlmZiAtLWdpdCBh L3NyYy9zYWdlL3JpbmdzL3JlYWxfZG91YmxlX2VsZW1lbnRfZ3NsLnB4ZCBiL3NyYy9zYWdlL3Jp bmdzL3JlYWxfZG91YmxlX2VsZW1lbnRfZ3NsLnB4ZAoraW5kZXggMTc2MmM1Zjk0NGIuLjgwMjUx NzRkMTVjIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcmVhbF9kb3VibGVfZWxlbWVudF9n c2wucHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9yZWFsX2RvdWJsZV9lbGVtZW50X2dzbC5weGQK K0BAIC0yLDYgKzIsNiBAQCBmcm9tIHNhZ2UucmluZ3MucmVhbF9kb3VibGUgY2ltcG9ydCBSZWFs RG91YmxlRWxlbWVudAorIAorIAorIGNkZWYgY2xhc3MgUmVhbERvdWJsZUVsZW1lbnRfZ3NsKFJl YWxEb3VibGVFbGVtZW50KToKKy0gICAgY2RlZiBfX3Bvd19kb3VibGUoc2VsZiwgZG91YmxlIGV4 cG9uZW50LCBkb3VibGUgc2lnbikgbm9leGNlcHQKKy0gICAgY3BkZWYgX3Bvd18oc2VsZiwgb3Ro ZXIpIG5vZXhjZXB0CistICAgIGNkZWYgX2xvZ19iYXNlKHNlbGYsIGRvdWJsZSBsb2dfb2ZfYmFz ZSkgbm9leGNlcHQKKysgICAgY2RlZiBfX3Bvd19kb3VibGUoc2VsZiwgZG91YmxlIGV4cG9uZW50 LCBkb3VibGUgc2lnbikKKysgICAgY3BkZWYgX3Bvd18oc2VsZiwgb3RoZXIpCisrICAgIGNkZWYg X2xvZ19iYXNlKHNlbGYsIGRvdWJsZSBsb2dfb2ZfYmFzZSkKK2RpZmYgLS1naXQgYS9zcmMvc2Fn ZS9yaW5ncy9yZWFsX2RvdWJsZV9lbGVtZW50X2dzbC5weXggYi9zcmMvc2FnZS9yaW5ncy9yZWFs X2RvdWJsZV9lbGVtZW50X2dzbC5weXgKK2luZGV4IDM3ZDk1ZTJjNmRmLi45ZDVmMmQ5YTkzYiAx MDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3JlYWxfZG91YmxlX2VsZW1lbnRfZ3NsLnB5eAor KysrIGIvc3JjL3NhZ2UvcmluZ3MvcmVhbF9kb3VibGVfZWxlbWVudF9nc2wucHl4CitAQCAtNTcs NyArNTcsNyBAQCBjZGVmIGNsYXNzIFJlYWxEb3VibGVFbGVtZW50X2dzbChSZWFsRG91YmxlRWxl bWVudCk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJldHVybiBzZWxmICoqIChmbG9h dCgxKS9uKQorIAorLSAgICBjZGVmIF9fcG93X2RvdWJsZShzZWxmLCBkb3VibGUgZXhwb25lbnQs IGRvdWJsZSBzaWduKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfX3Bvd19kb3VibGUoc2VsZiwgZG91 YmxlIGV4cG9uZW50LCBkb3VibGUgc2lnbik6CisgICAgICAgICAiIiIKKyAgICAgICAgIElmIGBg c2lnbiA9PSAxYGAgb3IgYGBzZWxmID49IDBgYCwgcmV0dXJuIGBgc2VsZiBeIGV4cG9uZW50YGAu CisgICAgICAgICBJZiBgYHNpZ24gPT0gLTFgYCBhbmQgYGBzZWxmIDwgMGBgLCByZXR1cm4gYGAt IGFicyhzZWxmKSBeIGV4cG9uZW50YGAuCitAQCAtODQsNyArODQsNyBAQCBjZGVmIGNsYXNzIFJl YWxEb3VibGVFbGVtZW50X2dzbChSZWFsRG91YmxlRWxlbWVudCk6CisgICAgICAgICAgICAgdiA9 IC12CisgICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2Moc2lnbiAqIGdzbF9zZl9leHAoZ3NsX3Nm X2xvZyh2KSAqIGV4cG9uZW50KSkKKyAKKy0gICAgY3BkZWYgX3Bvd18oc2VsZiwgb3RoZXIpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBfcG93XyhzZWxmLCBvdGhlcik6CisgICAgICAgICAiIiIKKyAg ICAgICAgIFJldHVybiBgYHNlbGZgYCByYWlzZWQgdG8gdGhlIHJlYWwgZG91YmxlIHBvd2VyIGBg b3RoZXJgYC4KKyAKK0BAIC0xMTcsNyArMTE3LDcgQEAgY2RlZiBjbGFzcyBSZWFsRG91YmxlRWxl bWVudF9nc2woUmVhbERvdWJsZUVsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1 cm4gc2VsZi5fX3Bvd19kb3VibGUoKDxSZWFsRG91YmxlRWxlbWVudD5vdGhlcikuX3ZhbHVlLCAx KQorIAorLSAgICBjcGRlZiBfcG93X2ludChzZWxmLCBuKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X3Bvd19pbnQoc2VsZiwgbik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBgYHNlbGZg YCByYWlzZWQgdG8gdGhlIGludGVnZXIgcG93ZXIgYGBuYGAuCisgCitAQCAtMTc0LDcgKzE3NCw3 IEBAIGNkZWYgY2xhc3MgUmVhbERvdWJsZUVsZW1lbnRfZ3NsKFJlYWxEb3VibGVFbGVtZW50KToK KyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX19wb3dfZG91YmxlKG4sIC0xLjAg aWYgKG4gJiAxKSBlbHNlIDEuMCkKKyAKKy0gICAgY2RlZiBfcG93X2xvbmcoc2VsZiwgbG9uZyBu KSBub2V4Y2VwdDoKKysgICAgY2RlZiBfcG93X2xvbmcoc2VsZiwgbG9uZyBuKToKKyAgICAgICAg ICIiIgorICAgICAgICAgQ29tcHV0ZSBgYHNlbGZgYCByYWlzZWQgdG8gdGhlIHBvd2VyIGBgbmBg LgorIAorQEAgLTIxNCw3ICsyMTQsNyBAQCBjZGVmIGNsYXNzIFJlYWxEb3VibGVFbGVtZW50X2dz bChSZWFsRG91YmxlRWxlbWVudCk6CisgICAgICAgICAjIG9mIG4gdG8gZG91YmxlIG1pZ2h0IGNo YW5nZSBhbiBvZGQgbnVtYmVyIHRvIGFuIGV2ZW4gbnVtYmVyLgorICAgICAgICAgcmV0dXJuIHNl bGYuX19wb3dfZG91YmxlKDxkb3VibGU+biwgLTEuMCBpZiAobiAmIDEpIGVsc2UgMS4wKQorIAor LSAgICBjZGVmIF9sb2dfYmFzZShzZWxmLCBkb3VibGUgbG9nX29mX2Jhc2UpIG5vZXhjZXB0Ogor KyAgICBjZGVmIF9sb2dfYmFzZShzZWxmLCBkb3VibGUgbG9nX29mX2Jhc2UpOgorICAgICAgICAg aWYgc2VsZi5fdmFsdWUgPT0gMDoKKyAgICAgICAgICAgICBmcm9tIHNhZ2UucmluZ3MucmVhbF9k b3VibGUgaW1wb3J0IFJERgorICAgICAgICAgICAgIHJldHVybiBSREYoLTEpL1JERigwKQorZGlm ZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3JlYWxfaW50ZXJ2YWxfYWJzb2x1dGUucHl4IGIvc3Jj L3NhZ2UvcmluZ3MvcmVhbF9pbnRlcnZhbF9hYnNvbHV0ZS5weXgKK2luZGV4IDViNWU2NjNhNWRj Li5kMTkwMzI5ODcyZSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3JlYWxfaW50ZXJ2YWxf YWJzb2x1dGUucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9yZWFsX2ludGVydmFsX2Fic29sdXRl LnB5eAorQEAgLTIzLDcgKzIzLDcgQEAgZnJvbSBzYWdlLnJpbmdzLnJhdGlvbmFsX2ZpZWxkIGlt cG9ydCBRUQorIGNkZWYgSW50ZWdlciB6ZXJvID0gSW50ZWdlcigwKQorIGNkZWYgSW50ZWdlciBv bmUgPSBJbnRlZ2VyKDEpCisgCistY3BkZWYgaW5saW5lIEludGVnZXIgc2hpZnRfZmxvb3IoSW50 ZWdlciB4LCBsb25nIHNoaWZ0KSBub2V4Y2VwdDoKKytjcGRlZiBpbmxpbmUgSW50ZWdlciBzaGlm dF9mbG9vcihJbnRlZ2VyIHgsIGxvbmcgc2hpZnQpOgorICAgICByIiIiCisgICAgIFJldHVybiBg eCAvIDJec2Agd2hlcmUgYHNgIGlzIHRoZSB2YWx1ZSBvZiBgYHNoaWZ0YGAsIHJvdW5kZWQgdG93 YXJkcworICAgICBgLVxpbmZ0eWAuIEZvciBpbnRlcm5hbCB1c2UuCitAQCAtNDAsNyArNDAsNyBA QCBjcGRlZiBpbmxpbmUgSW50ZWdlciBzaGlmdF9mbG9vcihJbnRlZ2VyIHgsIGxvbmcgc2hpZnQp IG5vZXhjZXB0OgorICAgICBtcHpfZmRpdl9xXzJleHAoei52YWx1ZSwgeC52YWx1ZSwgc2hpZnQp CisgICAgIHJldHVybiB6CisgCistY3BkZWYgaW5saW5lIEludGVnZXIgc2hpZnRfY2VpbChJbnRl Z2VyIHgsIGxvbmcgc2hpZnQpIG5vZXhjZXB0OgorK2NwZGVmIGlubGluZSBJbnRlZ2VyIHNoaWZ0 X2NlaWwoSW50ZWdlciB4LCBsb25nIHNoaWZ0KToKKyAgICAgciIiIgorICAgICBSZXR1cm4gYHgg LyAyXnNgIHdoZXJlIGBzYCBpcyB0aGUgdmFsdWUgb2YgYGBzaGlmdGBgLCByb3VuZGVkIHRvd2Fy ZHMKKyAgICAgYCtcaW5mdHlgLiBGb3IgaW50ZXJuYWwgdXNlLgorQEAgLTE2MSw3ICsxNjEsNyBA QCBjZGVmIGNsYXNzIFJlYWxJbnRlcnZhbEFic29sdXRlRmllbGRfY2xhc3MoRmllbGQpOgorICAg ICAgICAgIiIiCisgICAgICAgICByZXR1cm4gUmVhbEludGVydmFsQWJzb2x1dGVFbGVtZW50KHNl bGYsIHgpCisgCistICAgIGNwZGVmIF9jb2VyY2VfbWFwX2Zyb21fKHNlbGYsIFIpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBfY29lcmNlX21hcF9mcm9tXyhzZWxmLCBSKToKKyAgICAgICAgICIiIgor ICAgICAgICAgQW55dGhpbmcgdGhhdCBjb2VyY2VzIGludG8gdGhlIHJlYWxzIGNvZXJjZXMgaW50 byB0aGlzIHJpbmcuCisgCitAQCAtMjIzLDcgKzIyMyw3IEBAIGNkZWYgY2xhc3MgUmVhbEludGVy dmFsQWJzb2x1dGVGaWVsZF9jbGFzcyhGaWVsZCk6CisgICAgICAgICByZXR1cm4gc2VsZi5fYWJz cHJlYworIAorIAorLWNkZWYgaW5saW5lIHNoaWZ0X2xlZnQodmFsdWUsIHNoaWZ0KSBub2V4Y2Vw dDoKKytjZGVmIGlubGluZSBzaGlmdF9sZWZ0KHZhbHVlLCBzaGlmdCk6CisgICAgICIiIgorICAg ICBVdGlsaXR5IGZ1bmN0aW9uIGZvciBvcGVyYW5kcyB0aGF0IGRvbid0IHN1cHBvcnQgdGhlIGBg PDxgYCBvcGVyYXRvci4KKyAgICAgIiIiCitAQCAtMzE5LDcgKzMxOSw3IEBAIGNkZWYgY2xhc3Mg UmVhbEludGVydmFsQWJzb2x1dGVFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICAiIiIK KyAgICAgICAgIHJldHVybiBSZWFsSW50ZXJ2YWxBYnNvbHV0ZUVsZW1lbnQsIChzZWxmLl9wYXJl bnQsIHNlbGYuZW5kcG9pbnRzKCkpCisgCistICAgIGNkZWYgX25ld19jKHNlbGYsIEludGVnZXIg X21hbnRpc3NhLCBJbnRlZ2VyIF9kaWFtZXRlcikgbm9leGNlcHQ6CisrICAgIGNkZWYgX25ld19j KHNlbGYsIEludGVnZXIgX21hbnRpc3NhLCBJbnRlZ2VyIF9kaWFtZXRlcik6CisgICAgICAgICBj ZGVmIFJlYWxJbnRlcnZhbEFic29sdXRlRWxlbWVudCB4CisgICAgICAgICB4ID0gPFJlYWxJbnRl cnZhbEFic29sdXRlRWxlbWVudD5SZWFsSW50ZXJ2YWxBYnNvbHV0ZUVsZW1lbnQuX19uZXdfXyhS ZWFsSW50ZXJ2YWxBYnNvbHV0ZUVsZW1lbnQpCisgICAgICAgICB4Ll9wYXJlbnQgPSBzZWxmLl9w YXJlbnQKK0BAIC0zMjcsNyArMzI3LDcgQEAgY2RlZiBjbGFzcyBSZWFsSW50ZXJ2YWxBYnNvbHV0 ZUVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgIHguX2RpYW1ldGVyID0gX2RpYW1ldGVy CisgICAgICAgICByZXR1cm4geAorIAorLSAgICBjcGRlZiBsb3dlcihzZWxmKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgbG93ZXIoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0 aGUgbG93ZXIgYm91bmQgb2YgYGBzZWxmYGAuCisgCitAQCAtMzQwLDcgKzM0MCw3IEBAIGNkZWYg Y2xhc3MgUmVhbEludGVydmFsQWJzb2x1dGVFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIHJldHVybiBRUShzZWxmLl9tYW50aXNzYSkgPj4gKDxSZWFsSW50ZXJ2 YWxBYnNvbHV0ZUZpZWxkX2NsYXNzPnNlbGYuX3BhcmVudCkuX2Fic3ByZWMKKyAKKy0gICAgY3Bk ZWYgbWlkcG9pbnQoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIG1pZHBvaW50KHNlbGYpOgor ICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIG1pZHBvaW50IG9mIGBgc2VsZmBgLgor IAorQEAgLTM1Nyw3ICszNTcsNyBAQCBjZGVmIGNsYXNzIFJlYWxJbnRlcnZhbEFic29sdXRlRWxl bWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gKHNlbGYu X21hbnRpc3NhICsgc2VsZi5fZGlhbWV0ZXIgLyAyKSA+PiAoPFJlYWxJbnRlcnZhbEFic29sdXRl RmllbGRfY2xhc3M+c2VsZi5fcGFyZW50KS5fYWJzcHJlYworIAorLSAgICBjcGRlZiB1cHBlcihz ZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgdXBwZXIoc2VsZik6CisgICAgICAgICAiIiIKKyAg ICAgICAgIFJldHVybiB0aGUgdXBwZXIgYm91bmQgb2YgYGBzZWxmYGAuCisgCitAQCAtMzcwLDcg KzM3MCw3IEBAIGNkZWYgY2xhc3MgUmVhbEludGVydmFsQWJzb2x1dGVFbGVtZW50KEZpZWxkRWxl bWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBRUShzZWxmLl9tYW50aXNzYSAr IHNlbGYuX2RpYW1ldGVyKSA+PiAoPFJlYWxJbnRlcnZhbEFic29sdXRlRmllbGRfY2xhc3M+c2Vs Zi5fcGFyZW50KS5fYWJzcHJlYworIAorLSAgICBjcGRlZiBhYnNvbHV0ZV9kaWFtZXRlcihzZWxm KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgYWJzb2x1dGVfZGlhbWV0ZXIoc2VsZik6CisgICAgICAg ICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgZGlhbWV0ZXIgYGBzZWxmYGAuCisgCitAQCAtMzkw LDcgKzM5MCw3IEBAIGNkZWYgY2xhc3MgUmVhbEludGVydmFsQWJzb2x1dGVFbGVtZW50KEZpZWxk RWxlbWVudCk6CisgCisgICAgIGRpYW1ldGVyID0gYWJzb2x1dGVfZGlhbWV0ZXIKKyAKKy0gICAg Y3BkZWYgZW5kcG9pbnRzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBlbmRwb2ludHMoc2Vs Zik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgbGVmdCBhbmQgcmlnaHQgZW5k cG9pbnRzIG9mIGBgc2VsZmBgLCBhcyBhIHR1cGxlLgorIAorQEAgLTYxMiw3ICs2MTIsNyBAQCBj ZGVmIGNsYXNzIFJlYWxJbnRlcnZhbEFic29sdXRlRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAg ICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5hYnMoKQorIAorLSAgICBjcGRlZiBhYnMo c2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGFicyhzZWxmKToKKyAgICAgICAgICIiIgorICAg ICAgICAgUmV0dXJuIHRoZSBhYnNvbHV0ZSB2YWx1ZSBvZiBgYHNlbGZgYC4KKyAKK0BAIC02Mzgs NyArNjM4LDcgQEAgY2RlZiBjbGFzcyBSZWFsSW50ZXJ2YWxBYnNvbHV0ZUVsZW1lbnQoRmllbGRF bGVtZW50KToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX25ld19j KHplcm8sIG1heCgtc2VsZi5fbWFudGlzc2EsIHNlbGYuX21hbnRpc3NhICsgc2VsZi5fZGlhbWV0 ZXIpKQorIAorLSAgICBjcGRlZiBfYWRkXyhzZWxmLCBfb3RoZXIpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBfYWRkXyhzZWxmLCBfb3RoZXIpOgorICAgICAgICAgIiIiCisgICAgICAgICBURVNUUzo6 CisgCitAQCAtNjU2LDcgKzY1Niw3IEBAIGNkZWYgY2xhc3MgUmVhbEludGVydmFsQWJzb2x1dGVF bGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICBjZGVmIFJlYWxJbnRlcnZhbEFic29sdXRl RWxlbWVudCBvdGhlciA9IDxSZWFsSW50ZXJ2YWxBYnNvbHV0ZUVsZW1lbnQ+X290aGVyCisgICAg ICAgICByZXR1cm4gc2VsZi5fbmV3X2Moc2VsZi5fbWFudGlzc2EgKyBvdGhlci5fbWFudGlzc2Es IHNlbGYuX2RpYW1ldGVyICsgb3RoZXIuX2RpYW1ldGVyKQorIAorLSAgICBjcGRlZiBfc3ViXyhz ZWxmLCBfb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc3ViXyhzZWxmLCBfb3RoZXIpOgor ICAgICAgICAgIiIiCisgICAgICAgICBURVNUUzo6CisgCitAQCAtNjc2LDcgKzY3Niw3IEBAIGNk ZWYgY2xhc3MgUmVhbEludGVydmFsQWJzb2x1dGVFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAg ICAgICBjZGVmIFJlYWxJbnRlcnZhbEFic29sdXRlRWxlbWVudCBvdGhlciA9IDxSZWFsSW50ZXJ2 YWxBYnNvbHV0ZUVsZW1lbnQ+X290aGVyCisgICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2Moc2Vs Zi5fbWFudGlzc2EgLSBvdGhlci5fbWFudGlzc2EgLSBvdGhlci5fZGlhbWV0ZXIsIHNlbGYuX2Rp YW1ldGVyICsgb3RoZXIuX2RpYW1ldGVyKQorIAorLSAgICBjcGRlZiBfbXVsXyhzZWxmLCBfb3Ro ZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbXVsXyhzZWxmLCBfb3RoZXIpOgorICAgICAgICAg IiIiCisgICAgICAgICBURVNUUzo6CisgCitAQCAtNzMxLDcgKzczMSw3IEBAIGNkZWYgY2xhc3Mg UmVhbEludGVydmFsQWJzb2x1dGVFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICAgICAg cmVzID0gLXJlcworICAgICAgICAgcmV0dXJuIHJlcworIAorLSAgICBjcGRlZiBfYWN0ZWRfdXBv bl8oc2VsZiwgeCwgYmludCBzZWxmX29uX2xlZnQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWN0 ZWRfdXBvbl8oc2VsZiwgeCwgYmludCBzZWxmX29uX2xlZnQpOgorICAgICAgICAgIiIiCisgICAg ICAgICBgYEFic3ByZWMgKiByZWxwcmVjIC0+IGFic3ByZWNgYCB3b3JrcyBiZXR0ZXIgdGhhbiBj b2VyY2luZyBib3RoCisgICAgICAgICBvcGVyYW5kcyB0byBhYnNvbHV0ZSBwcmVjaXNpb24gZmly c3QuCitAQCAtODM2LDcgKzgzNiw3IEBAIGNkZWYgY2xhc3MgUmVhbEludGVydmFsQWJzb2x1dGVF bGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICAgICAgcmVzID0gLXJlcworICAgICAgICAg cmV0dXJuIHJlcworIAorLSAgICBjcGRlZiBfZGl2XyhzZWxmLCBfb3RoZXIpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBfZGl2XyhzZWxmLCBfb3RoZXIpOgorICAgICAgICAgIiIiCisgICAgICAgICBU RVNUUzo6CisgCitAQCAtOTIwLDcgKzkyMCw3IEBAIGNkZWYgY2xhc3MgUmVhbEludGVydmFsQWJz b2x1dGVFbGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVy biBzZWxmLnNoaWZ0KC1uKQorIAorLSAgICBjZGVmIHNoaWZ0KHNlbGYsIGxvbmcgbikgbm9leGNl cHQ6CisrICAgIGNkZWYgc2hpZnQoc2VsZiwgbG9uZyBuKToKKyAgICAgICAgIGlmIG4gPj0gMDoK KyAgICAgICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2Moc2VsZi5fbWFudGlzc2EgPDwgbiwgc2Vs Zi5fZGlhbWV0ZXIgPDwgbikKKyAgICAgICAgIGVsc2U6CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uv cmluZ3MvcmVhbF9sYXp5LnB4ZCBiL3NyYy9zYWdlL3JpbmdzL3JlYWxfbGF6eS5weGQKK2luZGV4 IDU2MTllNDkyZTllLi42MGE2NTgwYTU1MCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3Jl YWxfbGF6eS5weGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3JlYWxfbGF6eS5weGQKK0BAIC0yLDE1 ICsyLDE1IEBAIGZyb20gc2FnZS5yaW5ncy5yaW5nIGNpbXBvcnQgRmllbGQKKyBmcm9tIHNhZ2Uu c3RydWN0dXJlLmVsZW1lbnQgY2ltcG9ydCBSaW5nRWxlbWVudCwgTW9kdWxlRWxlbWVudCwgRWxl bWVudCwgRmllbGRFbGVtZW50CisgCisgY2RlZiBjbGFzcyBMYXp5RmllbGQoRmllbGQpOgorLSAg ICBjcGRlZiBpbnRlcnZhbF9maWVsZChzZWxmLCBwcmVjPSopIG5vZXhjZXB0CisrICAgIGNwZGVm IGludGVydmFsX2ZpZWxkKHNlbGYsIHByZWM9KikKKyAKKyBjZGVmIGNsYXNzIExhenlGaWVsZEVs ZW1lbnQoRmllbGRFbGVtZW50KToKKy0gICAgY3BkZWYgX2FkZF8oc2VsZiwgb3RoZXIpIG5vZXhj ZXB0CistICAgIGNwZGVmIF9tdWxfKHNlbGYsIG90aGVyKSBub2V4Y2VwdAorLSAgICBjZGVmIExh enlGaWVsZEVsZW1lbnQgX25ld193cmFwcGVyKHNlbGYsIHZhbHVlKSBub2V4Y2VwdAorLSAgICBj ZGVmIExhenlGaWVsZEVsZW1lbnQgX25ld19iaW5vcChzZWxmLCBMYXp5RmllbGRFbGVtZW50IGxl ZnQsIExhenlGaWVsZEVsZW1lbnQgcmlnaHQsIG9wKSBub2V4Y2VwdAorLSAgICBjZGVmIExhenlG aWVsZEVsZW1lbnQgX25ld191bm9wKHNlbGYsIExhenlGaWVsZEVsZW1lbnQgYXJnLCBvcCkgbm9l eGNlcHQKKy0gICAgY3BkZWYgZXZhbChzZWxmLCBSKSBub2V4Y2VwdAorKyAgICBjcGRlZiBfYWRk XyhzZWxmLCBvdGhlcikKKysgICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIpCisrICAgIGNkZWYg TGF6eUZpZWxkRWxlbWVudCBfbmV3X3dyYXBwZXIoc2VsZiwgdmFsdWUpCisrICAgIGNkZWYgTGF6 eUZpZWxkRWxlbWVudCBfbmV3X2Jpbm9wKHNlbGYsIExhenlGaWVsZEVsZW1lbnQgbGVmdCwgTGF6 eUZpZWxkRWxlbWVudCByaWdodCwgb3ApCisrICAgIGNkZWYgTGF6eUZpZWxkRWxlbWVudCBfbmV3 X3Vub3Aoc2VsZiwgTGF6eUZpZWxkRWxlbWVudCBhcmcsIG9wKQorKyAgICBjcGRlZiBldmFsKHNl bGYsIFIpCisgICAgIGNwZGVmIGludCBkZXB0aChzZWxmKSBub2V4Y2VwdAorIAorIGNkZWYgY2xh c3MgTGF6eVdyYXBwZXIoTGF6eUZpZWxkRWxlbWVudCk6CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uv cmluZ3MvcmVhbF9sYXp5LnB5eCBiL3NyYy9zYWdlL3JpbmdzL3JlYWxfbGF6eS5weXgKK2luZGV4 IGVhNmM3YjI2NGZiLi4xYmEzOTQ3NDFmYSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3Jl YWxfbGF6eS5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3JlYWxfbGF6eS5weXgKK0BAIC02Myw3 ICs2Myw3IEBAIGNkZWYgbGF0ZV9pbXBvcnQoKToKKyAKKyBjZGVmIF9RUXggPSBOb25lCisgCist Y2RlZiBRUXgoKSBub2V4Y2VwdDoKKytjZGVmIFFReCgpOgorICAgICBnbG9iYWwgX1FReAorICAg ICBpZiBfUVF4IGlzIE5vbmU6CisgICAgICAgICBfUVF4ID0gUVFbJ3gnXQorQEAgLTEzNCw3ICsx MzQsNyBAQCBjZGVmIGNsYXNzIExhenlGaWVsZChGaWVsZCk6CisgICAgICAgICBlbHNlOgorICAg ICAgICAgICAgIHJhaXNlIEF0dHJpYnV0ZUVycm9yKG5hbWUpCisgCistICAgIGNwZGVmIF9jb2Vy Y2VfbWFwX2Zyb21fKHNlbGYsIFIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfY29lcmNlX21hcF9m cm9tXyhzZWxmLCBSKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFRoZSBvbmx5IHRoaW5ncyB0 aGF0IGNvZXJjZSBpbnRvIHRoaXMgcmluZyBhcmUgZXhhY3QgcmluZ3MgdGhhdAorICAgICAgICAg ZW1iZWQgaW50byBgXFJSYCBvciBgXENDYCAoZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhpcyBmaWVs ZAorQEAgLTIwNiw3ICsyMDYsNyBAQCBjZGVmIGNsYXNzIExhenlGaWVsZChGaWVsZCk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIHJldHVybiBDTEYKKyAKKy0gICAgY3BkZWYgaW50ZXJ2YWxfZmll bGQoc2VsZiwgcHJlYz1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgaW50ZXJ2YWxfZmllbGQo c2VsZiwgcHJlYz1Ob25lKToKKyAgICAgICAgICIiIgorICAgICAgICAgQWJzdHJhY3QgbWV0aG9k IHRvIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBpbnRlcnZhbCBmaWVsZC4KKyAKK0BAIC01NDEs NyArNTQxLDcgQEAgY2RlZiBpbnQgZ2V0X25ld19wcmVjKFIsIGludCBkZXB0aCkgZXhjZXB0IC0x OgorIAorIGNkZWYgY2xhc3MgTGF6eUZpZWxkRWxlbWVudChGaWVsZEVsZW1lbnQpOgorIAorLSAg ICBjcGRlZiBfYWRkXyhsZWZ0LCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKGxl ZnQsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgQWRkIGBgbGVmdGBgIHdpdGggYGBy aWdodGBgLgorIAorQEAgLTU1Nyw3ICs1NTcsNyBAQCBjZGVmIGNsYXNzIExhenlGaWVsZEVsZW1l bnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgcmV0dXJu IGxlZnQuX25ld19iaW5vcChsZWZ0LCByaWdodCwgYWRkKQorIAorLSAgICBjcGRlZiBfc3ViXyhs ZWZ0LCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9zdWJfKGxlZnQsIHJpZ2h0KToKKyAg ICAgICAgICIiIgorICAgICAgICAgU3VidHJhY3QgYGByaWdodGBgIGZyb20gYGBsZWZ0YGAuCisg CitAQCAtNTczLDcgKzU3Myw3IEBAIGNkZWYgY2xhc3MgTGF6eUZpZWxkRWxlbWVudChGaWVsZEVs ZW1lbnQpOgorICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICByZXR1cm4gbGVmdC5fbmV3 X2Jpbm9wKGxlZnQsIHJpZ2h0LCBzdWIpCisgCistICAgIGNwZGVmIF9tdWxfKGxlZnQsIHJpZ2h0 KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX211bF8obGVmdCwgcmlnaHQpOgorICAgICAgICAgIiIi CisgICAgICAgICBNdWx0aXBseSBgYGxlZnRgYCB3aXRoIGBgcmlnaHRgYC4KKyAKK0BAIC01ODks NyArNTg5LDcgQEAgY2RlZiBjbGFzcyBMYXp5RmllbGRFbGVtZW50KEZpZWxkRWxlbWVudCk6Cisg ICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIHJldHVybiBsZWZ0Ll9uZXdfYmlub3AobGVm dCwgcmlnaHQsIG11bCkKKyAKKy0gICAgY3BkZWYgX2Rpdl8obGVmdCwgcmlnaHQpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBfZGl2XyhsZWZ0LCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAg IERpdmlkZSBgYGxlZnRgYCBieSBgYHJpZ2h0YGAuCisgCitAQCAtNjUzLDcgKzY1Myw3IEBAIGNk ZWYgY2xhc3MgTGF6eUZpZWxkRWxlbWVudChGaWVsZEVsZW1lbnQpOgorICAgICAgICAgIiIiCisg ICAgICAgICByZXR1cm4gc2VsZi5fbmV3X3Vub3Aoc2VsZiwgaW52KQorIAorLSAgICBjcGRlZiBf cmljaGNtcF8oc2VsZiwgb3RoZXIsIGludCBvcCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNo Y21wXyhzZWxmLCBvdGhlciwgaW50IG9wKToKKyAgICAgICAgICIiIgorICAgICAgICAgSWYgdGhp bmdzIGFyZSBiZWluZyB3cmFwcGVkLCB0cmllcyB0byBjb21wYXJlIHZhbHVlcy4gVGhhdCBmYWls aW5nLCBpdAorICAgICAgICAgdHJpZXMgdG8gY29tcGFyZSBpbnRlcnZhbHMsIHdoaWNoIG1heSBy ZXR1cm4gYSBmYWxzZSBuZWdhdGl2ZS4KK0BAIC03MDcsMTMgKzcwNywxMyBAQCBjZGVmIGNsYXNz IExhenlGaWVsZEVsZW1lbnQoRmllbGRFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAg cmV0dXJuIGhhc2goY29tcGxleChzZWxmKSkKKyAKKy0gICAgY2RlZiBMYXp5RmllbGRFbGVtZW50 IF9uZXdfd3JhcHBlcihzZWxmLCB2YWx1ZSkgbm9leGNlcHQ6CisrICAgIGNkZWYgTGF6eUZpZWxk RWxlbWVudCBfbmV3X3dyYXBwZXIoc2VsZiwgdmFsdWUpOgorICAgICAgICAgY2RlZiBMYXp5V3Jh cHBlciBlID0gPExhenlXcmFwcGVyPkxhenlXcmFwcGVyLl9fbmV3X18oTGF6eVdyYXBwZXIpCisg ICAgICAgICBlLl9wYXJlbnQgPSBzZWxmLl9wYXJlbnQKKyAgICAgICAgIGUuX3ZhbHVlID0gdmFs dWUKKyAgICAgICAgIHJldHVybiBlCisgCistICAgIGNkZWYgTGF6eUZpZWxkRWxlbWVudCBfbmV3 X2Jpbm9wKHNlbGYsIExhenlGaWVsZEVsZW1lbnQgbGVmdCwgTGF6eUZpZWxkRWxlbWVudCByaWdo dCwgb3ApIG5vZXhjZXB0OgorKyAgICBjZGVmIExhenlGaWVsZEVsZW1lbnQgX25ld19iaW5vcChz ZWxmLCBMYXp5RmllbGRFbGVtZW50IGxlZnQsIExhenlGaWVsZEVsZW1lbnQgcmlnaHQsIG9wKToK KyAgICAgICAgIGNkZWYgTGF6eUJpbm9wIGUgPSA8TGF6eUJpbm9wPkxhenlCaW5vcC5fX25ld19f KExhenlCaW5vcCkKKyAgICAgICAgIGUuX3BhcmVudCA9IHNlbGYuX3BhcmVudAorICAgICAgICAg ZS5fbGVmdCA9IGxlZnQKK0BAIC03MjEsNyArNzIxLDcgQEAgY2RlZiBjbGFzcyBMYXp5RmllbGRF bGVtZW50KEZpZWxkRWxlbWVudCk6CisgICAgICAgICBlLl9vcCA9IG9wCisgICAgICAgICByZXR1 cm4gZQorIAorLSAgICBjZGVmIExhenlGaWVsZEVsZW1lbnQgX25ld191bm9wKHNlbGYsIExhenlG aWVsZEVsZW1lbnQgYXJnLCBvcCkgbm9leGNlcHQ6CisrICAgIGNkZWYgTGF6eUZpZWxkRWxlbWVu dCBfbmV3X3Vub3Aoc2VsZiwgTGF6eUZpZWxkRWxlbWVudCBhcmcsIG9wKToKKyAgICAgICAgIGNk ZWYgTGF6eVVub3AgZSA9IDxMYXp5VW5vcD5MYXp5VW5vcC5fX25ld19fKExhenlVbm9wKQorICAg ICAgICAgZS5fcGFyZW50ID0gc2VsZi5fcGFyZW50CisgICAgICAgICBlLl9vcCA9IG9wCitAQCAt ODI0LDcgKzgyNCw3IEBAIGNkZWYgY2xhc3MgTGF6eUZpZWxkRWxlbWVudChGaWVsZEVsZW1lbnQp OgorICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgICByZXR1cm4gY29tcGxl eChzZWxmLmV2YWwoQ29tcGxleEZpZWxkKDUzKSkpCisgCistICAgIGNwZGVmIGV2YWwoc2VsZiwg Uikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGV2YWwoc2VsZiwgUik6CisgICAgICAgICAiIiIKKyAg ICAgICAgIEFic3RyYWN0IG1ldGhvZCBmb3IgY29udmVydGluZyBgYHNlbGZgYCBpbnRvIGFuIGVs ZW1lbnQgb2YgYGBSYGAuCisgCitAQCAtMTAxMiw3ICsxMDEyLDcgQEAgY2RlZiBjbGFzcyBMYXp5 V3JhcHBlcihMYXp5RmllbGRFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJu IGhhc2goc2VsZi5fdmFsdWUpCisgCistICAgIGNwZGVmIGV2YWwoc2VsZiwgUikgbm9leGNlcHQ6 CisrICAgIGNwZGVmIGV2YWwoc2VsZiwgUik6CisgICAgICAgICAiIiIKKyAgICAgICAgIENvbnZl cnQgYGBzZWxmYGAgaW50byBhbiBlbGVtZW50IG9mIGBgUmBgLgorIAorQEAgLTExMTAsNyArMTEx MCw3IEBAIGNkZWYgY2xhc3MgTGF6eUJpbm9wKExhenlGaWVsZEVsZW1lbnQpOgorICAgICAgICAg Y2RlZiBpbnQgcmlnaHQgPSBzZWxmLl9yaWdodC5kZXB0aCgpCisgICAgICAgICByZXR1cm4gMSAr IChsZWZ0IGlmIGxlZnQgPiByaWdodCBlbHNlIHJpZ2h0KQorIAorLSAgICBjcGRlZiBldmFsKHNl bGYsIFIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBldmFsKHNlbGYsIFIpOgorICAgICAgICAgIiIi CisgICAgICAgICBDb252ZXJ0IHRoZSBvcGVyYW5kcyB0byBlbGVtZW50cyBvZiBgYFJgYCwgdGhl biBwZXJmb3JtIHRoZSBvcGVyYXRpb24KKyAgICAgICAgIG9uIHRoZW0uCitAQCAtMTI0Niw3ICsx MjQ2LDcgQEAgY2RlZiBjbGFzcyBMYXp5VW5vcChMYXp5RmllbGRFbGVtZW50KToKKyAgICAgICAg ICIiIgorICAgICAgICAgcmV0dXJuIDEgKyBzZWxmLl9hcmcuZGVwdGgoKQorIAorLSAgICBjcGRl ZiBldmFsKHNlbGYsIFIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBldmFsKHNlbGYsIFIpOgorICAg ICAgICAgIiIiCisgICAgICAgICBDb252ZXJ0IGBgc2VsZmBgIGludG8gYW4gZWxlbWVudCBvZiBg YFJgYC4KKyAKK0BAIC0xMzI1LDcgKzEzMjUsNyBAQCBjZGVmIGNsYXNzIExhenlOYW1lZFVub3Ao TGF6eVVub3ApOgorICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiZXh0cmEgYXJncyBtdXN0 IGJlIGEgdHVwbGUiKQorICAgICAgICAgc2VsZi5fZXh0cmFfYXJncyA9IGV4dHJhX2FyZ3MKKyAK Ky0gICAgY3BkZWYgZXZhbChzZWxmLCBSKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZXZhbChzZWxm LCBSKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ29udmVydCBgYHNlbGZgYCBpbnRvIGFuIGVs ZW1lbnQgb2YgYGBSYGAuCisgCitAQCAtMTQ2OCw3ICsxNDY4LDcgQEAgY2RlZiBjbGFzcyBMYXp5 Q29uc3RhbnQoTGF6eUZpZWxkRWxlbWVudCk6CisgICAgICAgICBzZWxmLl9uYW1lID0gbmFtZQor ICAgICAgICAgc2VsZi5fZXh0cmFfYXJncyA9IGV4dHJhX2FyZ3MKKyAKKy0gICAgY3BkZWYgZXZh bChzZWxmLCBSKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZXZhbChzZWxmLCBSKToKKyAgICAgICAg ICIiIgorICAgICAgICAgQ29udmVydCBgYHNlbGZgYCBpbnRvIGFuIGVsZW1lbnQgb2YgYGBSYGAu CisgCitAQCAtMTYyNiw3ICsxNjI2LDcgQEAgY2RlZiBjbGFzcyBMYXp5QWxnZWJyYWljKExhenlG aWVsZEVsZW1lbnQpOgorICAgICAgICAgICAgIGFwcHJveCA9IChDQyBpZiBwcmVjID09IDAgZWxz ZSBDb21wbGV4RmllbGQocHJlYykpKGFwcHJveCkKKyAgICAgICAgIHNlbGYuX3Jvb3RfYXBwcm94 ID0gYXBwcm94CisgCistICAgIGNwZGVmIGV2YWwoc2VsZiwgUikgbm9leGNlcHQ6CisrICAgIGNw ZGVmIGV2YWwoc2VsZiwgUik6CisgICAgICAgICAiIiIKKyAgICAgICAgIENvbnZlcnQgYGBzZWxm YGAgaW50byBhbiBlbGVtZW50IG9mIGBgUmBgLgorIAorQEAgLTE3MzMsNyArMTczMyw3IEBAIGNk ZWYgY2xhc3MgTGF6eVdyYXBwZXJNb3JwaGlzbShNb3JwaGlzbSk6CisgICAgICAgICBmcm9tIHNh Z2UuY2F0ZWdvcmllcy5ob21zZXQgaW1wb3J0IEhvbQorICAgICAgICAgTW9ycGhpc20uX19pbml0 X18oc2VsZiwgSG9tKGRvbWFpbiwgY29kb21haW4pKQorIAorLSAgICBjcGRlZiBFbGVtZW50IF9j YWxsXyhzZWxmLCB4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwg eCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK2RpZmYgLS1naXQgYS9z cmMvc2FnZS9yaW5ncy9yZWFsX21wZmkucHhkIGIvc3JjL3NhZ2UvcmluZ3MvcmVhbF9tcGZpLnB4 ZAoraW5kZXggZjlmYzdhMTk2OWMuLmYxMDdkYmRkODlhIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uv cmluZ3MvcmVhbF9tcGZpLnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcmVhbF9tcGZpLnB4ZAor QEAgLTMyLDcgKzMyLDcgQEAgY2RlZiBjbGFzcyBSZWFsSW50ZXJ2YWxGaWVsZF9jbGFzcyhzYWdl LnJpbmdzLmFiYy5SZWFsSW50ZXJ2YWxGaWVsZCk6CisgICAgIGNkZWYgUmVhbEZpZWxkX2NsYXNz IF9fdXBwZXJfZmllbGQKKyAgICAgY2RlZiBvYmplY3QgX211bHRpcGxpY2F0aXZlX29yZGVyCisg CistICAgIGNkZWYgaW5saW5lIFJlYWxJbnRlcnZhbEZpZWxkRWxlbWVudCBfbmV3KHNlbGYpIG5v ZXhjZXB0OgorKyAgICBjZGVmIGlubGluZSBSZWFsSW50ZXJ2YWxGaWVsZEVsZW1lbnQgX25ldyhz ZWxmKToKKyAgICAgICAgICIiIlJldHVybiBhIG5ldyByZWFsIGludGVydmFsIHdpdGggcGFyZW50 IGBgc2VsZmBgLiIiIgorICAgICAgICAgdCA9IDx0eXBlPnNlbGYuZWxlbWVudF9jbGFzcworICAg ICAgICAgcmV0dXJuIDxSZWFsSW50ZXJ2YWxGaWVsZEVsZW1lbnQ+KHQuX19uZXdfXyh0LCBzZWxm KSkKK0BAIC00MSw5ICs0MSw5IEBAIGNkZWYgY2xhc3MgUmVhbEludGVydmFsRmllbGRfY2xhc3Mo c2FnZS5yaW5ncy5hYmMuUmVhbEludGVydmFsRmllbGQpOgorIGNkZWYgY2xhc3MgUmVhbEludGVy dmFsRmllbGRFbGVtZW50KFJpbmdFbGVtZW50KToKKyAgICAgY2RlZiBtcGZpX3QgdmFsdWUKKyAK Ky0gICAgY2RlZiBpbmxpbmUgUmVhbEludGVydmFsRmllbGRFbGVtZW50IF9uZXcoc2VsZikgbm9l eGNlcHQ6CisrICAgIGNkZWYgaW5saW5lIFJlYWxJbnRlcnZhbEZpZWxkRWxlbWVudCBfbmV3KHNl bGYpOgorICAgICAgICAgIiIiUmV0dXJuIGEgbmV3IHJlYWwgaW50ZXJ2YWwgd2l0aCBzYW1lIHBh cmVudCBhcyBgYHNlbGZgYC4iIiIKKyAgICAgICAgIHJldHVybiAoPFJlYWxJbnRlcnZhbEZpZWxk X2NsYXNzPnNlbGYuX3BhcmVudCkuX25ldygpCistICAgIGNkZWYgUmVhbEludGVydmFsRmllbGRF bGVtZW50IGFicyhSZWFsSW50ZXJ2YWxGaWVsZEVsZW1lbnQgc2VsZikgbm9leGNlcHQKKy0gICAg Y2RlZiBSYXRpb25hbCBfc2ltcGxlc3RfcmF0aW9uYWxfaGVscGVyKHNlbGYpIG5vZXhjZXB0Cist ICAgIGNwZGVmIF9zdHJfcXVlc3Rpb25fc3R5bGUoc2VsZiwgaW50IGJhc2UsIGludCBlcnJvcl9k aWdpdHMsIGUsIGJpbnQgcHJlZmVyX3NjaSkgbm9leGNlcHQKKysgICAgY2RlZiBSZWFsSW50ZXJ2 YWxGaWVsZEVsZW1lbnQgYWJzKFJlYWxJbnRlcnZhbEZpZWxkRWxlbWVudCBzZWxmKQorKyAgICBj ZGVmIFJhdGlvbmFsIF9zaW1wbGVzdF9yYXRpb25hbF9oZWxwZXIoc2VsZikKKysgICAgY3BkZWYg X3N0cl9xdWVzdGlvbl9zdHlsZShzZWxmLCBpbnQgYmFzZSwgaW50IGVycm9yX2RpZ2l0cywgZSwg YmludCBwcmVmZXJfc2NpKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3JlYWxfbXBmaS5w eXggYi9zcmMvc2FnZS9yaW5ncy9yZWFsX21wZmkucHl4CitpbmRleCA2OTE0M2MyNDNmMy4uYTEz OTkxYzgyZmUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5ncy9yZWFsX21wZmkucHl4CisrKysg Yi9zcmMvc2FnZS9yaW5ncy9yZWFsX21wZmkucHl4CitAQCAtMzA1LDcgKzMwNSw3IEBAIHByaW50 aW5nX2Vycm9yX2RpZ2l0cyA9IDAKKyAjKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAKKyBjZGVmIGRp Y3QgUmVhbEludGVydmFsRmllbGRfY2FjaGUgPSB7fQorLWNwZGVmIFJlYWxJbnRlcnZhbEZpZWxk X2NsYXNzIFJlYWxJbnRlcnZhbEZpZWxkKHByZWM9NTMsIHNjaV9ub3Q9RmFsc2UpIG5vZXhjZXB0 OgorK2NwZGVmIFJlYWxJbnRlcnZhbEZpZWxkX2NsYXNzIFJlYWxJbnRlcnZhbEZpZWxkKHByZWM9 NTMsIHNjaV9ub3Q9RmFsc2UpOgorICAgICByIiIiCisgICAgIENvbnN0cnVjdCBhIDpjbGFzczpg UmVhbEludGVydmFsRmllbGRfY2xhc3NgLCB3aXRoIGNhY2hpbmcuCisgCitAQCAtNzQ5LDcgKzc0 OSw3IEBAIGNkZWYgY2xhc3MgUmVhbEludGVydmFsRmllbGRfY2xhc3Moc2FnZS5yaW5ncy5hYmMu UmVhbEludGVydmFsRmllbGQpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 J3NjaV9ub3QnOiBzZWxmLnNjaWVudGlmaWNfbm90YXRpb24oKSwgJ3R5cGUnOiAnSW50ZXJ2YWwn fSksCisgICAgICAgICAgICAgICAgc2FnZS5yaW5ncy5yYXRpb25hbF9maWVsZC5RUSkKKyAKKy0g ICAgY3BkZWYgX2NvZXJjZV9tYXBfZnJvbV8oc2VsZiwgUykgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9jb2VyY2VfbWFwX2Zyb21fKHNlbGYsIFMpOgorICAgICAgICAgIiIiCisgICAgICAgICBDYW5v bmljYWwgY29lcmNpb24gZnJvbSBgYFNgYCB0byB0aGlzIHJlYWwgaW50ZXJ2YWwgZmllbGQuCisg CitAQCAtMTY5NCw3ICsxNjk0LDcgQEAgY2RlZiBjbGFzcyBSZWFsSW50ZXJ2YWxGaWVsZEVsZW1l bnQoUmluZ0VsZW1lbnQpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICByYWlzZSBWYWx1 ZUVycm9yKCdJbGxlZ2FsIGludGVydmFsIHByaW50aW5nIHN0eWxlICVzJyAlIHByaW50aW5nX3N0 eWxlKQorIAorLSAgICBjcGRlZiBfc3RyX3F1ZXN0aW9uX3N0eWxlKHNlbGYsIGludCBiYXNlLCBp bnQgZXJyb3JfZGlnaXRzLCBlLCBiaW50IHByZWZlcl9zY2kpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBfc3RyX3F1ZXN0aW9uX3N0eWxlKHNlbGYsIGludCBiYXNlLCBpbnQgZXJyb3JfZGlnaXRzLCBl LCBiaW50IHByZWZlcl9zY2kpOgorICAgICAgICAgciIiIgorICAgICAgICAgQ29tcHV0ZSB0aGUg InF1ZXN0aW9uLXN0eWxlIHByaW50IHJlcHJlc2VudGF0aW9uIiBvZiB0aGlzIHZhbHVlLAorICAg ICAgICAgd2l0aCB0aGUgZ2l2ZW4gYmFzZSBhbmQgZXJyb3JfZGlnaXRzLiBTZWUgdGhlIGRvY3Vt ZW50YXRpb24gZm9yCitAQCAtMjY4NSw3ICsyNjg1LDcgQEAgY2RlZiBjbGFzcyBSZWFsSW50ZXJ2 YWxGaWVsZEVsZW1lbnQoUmluZ0VsZW1lbnQpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAg ICByZXR1cm4gRWxlbWVudC5fX3J0cnVlZGl2X18ocmlnaHQsIGxlZnQpCisgCistICAgIGNwZGVm IF9hZGRfKHNlbGYsIG90aGVyKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FkZF8oc2VsZiwgb3Ro ZXIpOgorICAgICAgICAgIiIiCisgICAgICAgICBBZGQgdHdvIHJlYWwgaW50ZXJ2YWxzIHdpdGgg dGhlIHNhbWUgcGFyZW50LgorIAorQEAgLTI3MjksNyArMjcyOSw3IEBAIGNkZWYgY2xhc3MgUmVh bEludGVydmFsRmllbGRFbGVtZW50KFJpbmdFbGVtZW50KToKKyAgICAgICAgIG1wZmlfaW52KHgu dmFsdWUsIHNlbGYudmFsdWUpCisgICAgICAgICByZXR1cm4geAorIAorLSAgICBjcGRlZiBfc3Vi XyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9zdWJfKHNlbGYsIHJpZ2h0KToK KyAgICAgICAgICIiIgorICAgICAgICAgU3VidHJhY3QgdHdvIHJlYWwgaW50ZXJ2YWxzIHdpdGgg dGhlIHNhbWUgcGFyZW50LgorIAorQEAgLTI3NDcsNyArMjc0Nyw3IEBAIGNkZWYgY2xhc3MgUmVh bEludGVydmFsRmllbGRFbGVtZW50KFJpbmdFbGVtZW50KToKKyAgICAgICAgIG1wZmlfc3ViKHgu dmFsdWUsIHNlbGYudmFsdWUsICg8UmVhbEludGVydmFsRmllbGRFbGVtZW50PnJpZ2h0KS52YWx1 ZSkKKyAgICAgICAgIHJldHVybiB4CisgCistICAgIGNwZGVmIF9tdWxfKHNlbGYsIHJpZ2h0KSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgX211bF8oc2VsZiwgcmlnaHQpOgorICAgICAgICAgIiIiCisg ICAgICAgICBNdWx0aXBseSB0d28gcmVhbCBpbnRlcnZhbHMgd2l0aCB0aGUgc2FtZSBwYXJlbnQu CisgCitAQCAtMjc4NCw3ICsyNzg0LDcgQEAgY2RlZiBjbGFzcyBSZWFsSW50ZXJ2YWxGaWVsZEVs ZW1lbnQoUmluZ0VsZW1lbnQpOgorICAgICAgICAgcmV0dXJuIHgKKyAKKyAKKy0gICAgY3BkZWYg X2Rpdl8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZGl2XyhzZWxmLCByaWdo dCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIERpdmlkZSBgYHNlbGZgYCBieSBgYHJpZ2h0YGAs IHdoZXJlIGJvdGggYXJlIHJlYWwgaW50ZXJ2YWxzIHdpdGggdGhlCisgICAgICAgICBzYW1lIHBh cmVudC4KK0BAIC0yODExLDcgKzI4MTEsNyBAQCBjZGVmIGNsYXNzIFJlYWxJbnRlcnZhbEZpZWxk RWxlbWVudChSaW5nRWxlbWVudCk6CisgICAgICAgICAgICAgICAgICAoPFJlYWxJbnRlcnZhbEZp ZWxkRWxlbWVudD5yaWdodCkudmFsdWUpCisgICAgICAgICByZXR1cm4geAorIAorLSAgICBjcGRl ZiBfbmVnXyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX25lZ18oc2VsZik6CisgICAgICAg ICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgYWRkaXRpdmUgImludmVyc2UiIG9mIHRoaXMgaW50 ZXJ2YWwuIChUZWNobmljYWxseSwKKyAgICAgICAgIG5vbi1wcmVjaXNlIGludGVydmFscyBkb24n dCBoYXZlIGFkZGl0aXZlIGludmVyc2VzLikKK0BAIC0yODUwLDcgKzI4NTAsNyBAQCBjZGVmIGNs YXNzIFJlYWxJbnRlcnZhbEZpZWxkRWxlbWVudChSaW5nRWxlbWVudCk6CisgICAgICAgICAiIiIK KyAgICAgICAgIHJldHVybiBzZWxmLmFicygpCisgCistICAgIGNkZWYgUmVhbEludGVydmFsRmll bGRFbGVtZW50IGFicyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBSZWFsSW50ZXJ2YWxGaWVs ZEVsZW1lbnQgYWJzKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGFi c29sdXRlIHZhbHVlIG9mIGBgc2VsZmBgLgorIAorQEAgLTM2NTUsNyArMzY1NSw3IEBAIGNkZWYg Y2xhc3MgUmVhbEludGVydmFsRmllbGRFbGVtZW50KFJpbmdFbGVtZW50KToKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG93X29wZW4sCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGhpZ2hfb3BlbikKKyAKKy0gICAgY2RlZiBSYXRpb25h bCBfc2ltcGxlc3RfcmF0aW9uYWxfaGVscGVyKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIFJh dGlvbmFsIF9zaW1wbGVzdF9yYXRpb25hbF9oZWxwZXIoc2VsZik6CisgICAgICAgICAiIiIKKyAg ICAgICAgIFJldHVybnMgdGhlIHNpbXBsZXN0IHJhdGlvbmFsIGluIGFuIGludGVydmFsIHdoaWNo IGlzIGVpdGhlciBlcXVhbAorICAgICAgICAgdG8gb3Igc2xpZ2h0bHkgbGFyZ2VyIHRoYW4gYGBz ZWxmYGAuIFdlIGFzc3VtZSB0aGF0IGJvdGggZW5kcG9pbnRzIG9mCitAQCAtMzY5NSw3ICszNjk1 LDcgQEAgY2RlZiBjbGFzcyBSZWFsSW50ZXJ2YWxGaWVsZEVsZW1lbnQoUmluZ0VsZW1lbnQpOgor ICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gbXBmaV9uYW5fcChzZWxmLnZhbHVlKQorIAor LSAgICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCkgbm9leGNlcHQ6CisrICAg IGNwZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdodCwgaW50IG9wKToKKyAgICAgICAgICIiIgorICAg ICAgICAgSW1wbGVtZW50IGNvbXBhcmlzb25zIGJldHdlZW4gaW50ZXJ2YWxzLgorIAorQEAgLTUx ODgsNyArNTE4OCw3IEBAIGRlZiBfc2ltcGxlc3RfcmF0aW9uYWxfdGVzdF9oZWxwZXIobG93LCBo aWdoLCBsb3dfb3Blbj1GYWxzZSwgaGlnaF9vcGVuPUZhbHNlKToKKyAgICAgIiIiCisgICAgIHJl dHVybiBfc2ltcGxlc3RfcmF0aW9uYWxfZXhhY3QobG93LCBoaWdoLCBsb3dfb3BlbiwgaGlnaF9v cGVuKQorIAorLWNkZWYgX3NpbXBsZXN0X3JhdGlvbmFsX2V4YWN0KFJhdGlvbmFsIGxvdywgUmF0 aW9uYWwgaGlnaCwgaW50IGxvd19vcGVuLCBpbnQgaGlnaF9vcGVuKSBub2V4Y2VwdDoKKytjZGVm IF9zaW1wbGVzdF9yYXRpb25hbF9leGFjdChSYXRpb25hbCBsb3csIFJhdGlvbmFsIGhpZ2gsIGlu dCBsb3dfb3BlbiwgaW50IGhpZ2hfb3Blbik6CisgICAgICIiIgorICAgICBSZXR1cm4gdGhlIHNp bXBsZXN0IHJhdGlvbmFsIGJldHdlZW4gYGBsb3dgYCBhbmQgYGBoaWdoYGAuIE1heSByZXR1cm4K KyAgICAgYGBsb3dgYCBvciBgYGhpZ2hgYCB1bmxlc3MgYGBsb3dfb3BlbmBgIG9yIGBgaGlnaF9v cGVuYGAgKHJlc3BlY3RpdmVseSkgYXJlCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcmVh bF9tcGZyLnB4ZCBiL3NyYy9zYWdlL3JpbmdzL3JlYWxfbXBmci5weGQKK2luZGV4IDZlMDZlNWM1 ZWE0Li43ODVkNDAyODM2YyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3JlYWxfbXBmci5w eGQKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3JlYWxfbXBmci5weGQKK0BAIC0xMCwxOSArMTAsMTkg QEAgY2RlZiBjbGFzcyBSZWFsRmllbGRfY2xhc3Moc2FnZS5yaW5ncy5hYmMuUmVhbEZpZWxkKToK KyAgICAgY2RlZiBiaW50IHNjaV9ub3QKKyAgICAgY2RlZiBtcGZyX3JuZF90IHJuZAorICAgICBj ZGVmIG9iamVjdCBybmRfc3RyCistICAgIGNkZWYgaW5saW5lIFJlYWxOdW1iZXIgX25ldyhzZWxm KSBub2V4Y2VwdDoKKysgICAgY2RlZiBpbmxpbmUgUmVhbE51bWJlciBfbmV3KHNlbGYpOgorICAg ICAgICAgIiIiUmV0dXJuIGEgbmV3IHJlYWwgbnVtYmVyIHdpdGggcGFyZW50IGBgc2VsZmBgLiIi IgorICAgICAgICAgcmV0dXJuIDxSZWFsTnVtYmVyPihSZWFsTnVtYmVyLl9fbmV3X18oUmVhbE51 bWJlciwgc2VsZikpCisgCisgY2RlZiBjbGFzcyBSZWFsTnVtYmVyKHNhZ2Uuc3RydWN0dXJlLmVs ZW1lbnQuUmluZ0VsZW1lbnQpOgorICAgICBjZGVmIG1wZnJfdCB2YWx1ZQorLSAgICBjZGVmIGlu bGluZSBSZWFsTnVtYmVyIF9uZXcoc2VsZikgbm9leGNlcHQ6CisrICAgIGNkZWYgaW5saW5lIFJl YWxOdW1iZXIgX25ldyhzZWxmKToKKyAgICAgICAgICIiIlJldHVybiBhIG5ldyByZWFsIG51bWJl ciB3aXRoIHNhbWUgcGFyZW50IGFzIGBgc2VsZmBgLiIiIgorICAgICAgICAgcmV0dXJuIDxSZWFs TnVtYmVyPihSZWFsTnVtYmVyLl9fbmV3X18oUmVhbE51bWJlciwgc2VsZi5fcGFyZW50KSkKKy0g ICAgY3BkZWYgX2FkZF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0CistICAgIGNwZGVmIF9tdWxfKHNl bGYsIG90aGVyKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfbW9kXyhzZWxmLCByaWdodCkgbm9leGNl cHQKKy0gICAgY2RlZiBfc2V0KHNlbGYsIHgsIGludCBiYXNlKSBub2V4Y2VwdAorLSAgICBjZGVm IFJlYWxOdW1iZXIgYWJzKFJlYWxOdW1iZXIgc2VsZikgbm9leGNlcHQKKysgICAgY3BkZWYgX2Fk ZF8oc2VsZiwgb3RoZXIpCisrICAgIGNwZGVmIF9tdWxfKHNlbGYsIG90aGVyKQorKyAgICBjcGRl ZiBfbW9kXyhzZWxmLCByaWdodCkKKysgICAgY2RlZiBfc2V0KHNlbGYsIHgsIGludCBiYXNlKQor KyAgICBjZGVmIFJlYWxOdW1iZXIgYWJzKFJlYWxOdW1iZXIgc2VsZikKKyAKKy1jcGRlZiBSZWFs RmllbGQobXBmcl9wcmVjX3QgcHJlYz0qLCBpbnQgc2NpX25vdD0qLCBybmQ9Kikgbm9leGNlcHQK KytjcGRlZiBSZWFsRmllbGQobXBmcl9wcmVjX3QgcHJlYz0qLCBpbnQgc2NpX25vdD0qLCBybmQ9 KikKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9yZWFsX21wZnIucHl4IGIvc3JjL3NhZ2Uv cmluZ3MvcmVhbF9tcGZyLnB5eAoraW5kZXggMjBiYThkZmEyODQuLjUyZTc2MjU5ZDI1IDEwMDY0 NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcmVhbF9tcGZyLnB5eAorKysrIGIvc3JjL3NhZ2Uvcmlu Z3MvcmVhbF9tcGZyLnB5eAorQEAgLTM3MSw3ICszNzEsNyBAQCBjZGVmIGRvdWJsZSBMT0dfVEVO X1RXT19QTFVTX0VQU0lMT04gPSAzLjMyMTkyODA5NDg4NzM2MyAjIGEgc21hbGwgb3ZlcmVzdGlt YXRlCisgCisgY2RlZiBvYmplY3QgUmVhbEZpZWxkX2NhY2hlID0gc2FnZS5taXNjLndlYWtfZGlj dC5XZWFrVmFsdWVEaWN0aW9uYXJ5KCkKKyAKKy1jcGRlZiBSZWFsRmllbGQobXBmcl9wcmVjX3Qg cHJlYz01MywgaW50IHNjaV9ub3Q9MCwgcm5kPU1QRlJfUk5ETikgbm9leGNlcHQ6CisrY3BkZWYg UmVhbEZpZWxkKG1wZnJfcHJlY190IHByZWM9NTMsIGludCBzY2lfbm90PTAsIHJuZD1NUEZSX1JO RE4pOgorICAgICAiIiIKKyAgICAgUmVhbEZpZWxkKHByZWMsIHNjaV9ub3QsIHJuZCk6CisgCitA QCAtNjY1LDcgKzY2NSw3IEBAIGNkZWYgY2xhc3MgUmVhbEZpZWxkX2NsYXNzKHNhZ2UucmluZ3Mu YWJjLlJlYWxGaWVsZCk6CisgICAgICAgICB6Ll9zZXQoeCwgYmFzZSkKKyAgICAgICAgIHJldHVy biB6CisgCistICAgIGNwZGVmIF9jb2VyY2VfbWFwX2Zyb21fKHNlbGYsIFMpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBfY29lcmNlX21hcF9mcm9tXyhzZWxmLCBTKToKKyAgICAgICAgICIiIgorICAg ICAgICAgQ2Fub25pY2FsIGNvZXJjaW9uIG9mIHggdG8gdGhpcyBNUEZSIHJlYWwgZmllbGQuCisg CitAQCAtMTQ1MSw3ICsxNDUxLDcgQEAgY2RlZiBjbGFzcyBSZWFsTnVtYmVyKHNhZ2Uuc3RydWN0 dXJlLmVsZW1lbnQuUmluZ0VsZW1lbnQpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICBy ZXR1cm4gbnVtcHlfb2JqZWN0X2ludGVyZmFjZQorIAorLSAgICBjZGVmIF9zZXQoc2VsZiwgeCwg aW50IGJhc2UpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9zZXQoc2VsZiwgeCwgaW50IGJhc2UpOgor ICAgICAgICAgIyBUaGlzIHNob3VsZCBub3QgYmUgY2FsbGVkIGV4Y2VwdCB3aGVuIHRoZSBudW1i ZXIgaXMgYmVpbmcgY3JlYXRlZC4KKyAgICAgICAgICMgUmVhbCBOdW1iZXJzIGFyZSBzdXBwb3Nl ZCB0byBiZSBpbW11dGFibGUuCisgICAgICAgICBjZGVmIFJlYWxGaWVsZF9jbGFzcyBwYXJlbnQK K0BAIC0yNDI1LDcgKzI0MjUsNyBAQCBjZGVmIGNsYXNzIFJlYWxOdW1iZXIoc2FnZS5zdHJ1Y3R1 cmUuZWxlbWVudC5SaW5nRWxlbWVudCk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJl dHVybiBFbGVtZW50Ll9fcnRydWVkaXZfXyhyaWdodCwgbGVmdCkKKyAKKy0gICAgY3BkZWYgX2Fk ZF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWRkXyhzZWxmLCBvdGhlcik6 CisgICAgICAgICAiIiIKKyAgICAgICAgIEFkZCB0d28gcmVhbCBudW1iZXJzIHdpdGggdGhlIHNh bWUgcGFyZW50LgorIAorQEAgLTI0NTQsNyArMjQ1NCw3IEBAIGNkZWYgY2xhc3MgUmVhbE51bWJl cihzYWdlLnN0cnVjdHVyZS5lbGVtZW50LlJpbmdFbGVtZW50KToKKyAgICAgICAgICIiIgorICAg ICAgICAgcmV0dXJuIHNlbGYuX3BhcmVudCgxKSAvIHNlbGYKKyAKKy0gICAgY3BkZWYgX3N1Yl8o c2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc3ViXyhzZWxmLCByaWdodCk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIFN1YnRyYWN0IHR3byByZWFsIG51bWJlcnMgd2l0aCB0aGUg c2FtZSBwYXJlbnQuCisgCitAQCAtMjQ5NSw3ICsyNDk1LDcgQEAgY2RlZiBjbGFzcyBSZWFsTnVt YmVyKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuUmluZ0VsZW1lbnQpOgorICAgICAgICAgaW1wb3J0 IHN5bXB5CisgICAgICAgICByZXR1cm4gc3ltcHkuRmxvYXQoc2VsZiwgcHJlY2lzaW9uPXNlbGYu X3BhcmVudC5wcmVjaXNpb24oKSkKKyAKKy0gICAgY3BkZWYgX211bF8oc2VsZiwgcmlnaHQpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBfbXVsXyhzZWxmLCByaWdodCk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIE11bHRpcGx5IHR3byByZWFsIG51bWJlcnMgd2l0aCB0aGUgc2FtZSBwYXJlbnQuCisg CitAQCAtMjUyOCw3ICsyNTI4LDcgQEAgY2RlZiBjbGFzcyBSZWFsTnVtYmVyKHNhZ2Uuc3RydWN0 dXJlLmVsZW1lbnQuUmluZ0VsZW1lbnQpOgorICAgICAgICAgcmV0dXJuIHgKKyAKKyAKKy0gICAg Y3BkZWYgX2Rpdl8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZGl2XyhzZWxm LCByaWdodCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIERpdmlkZSBgYHNlbGZgYCBieSBvdGhl ciwgd2hlcmUgYm90aCBhcmUgcmVhbCBudW1iZXJzIHdpdGggdGhlIHNhbWUKKyAgICAgICAgIHBh cmVudC4KK0BAIC0yNTQ4LDcgKzI1NDgsNyBAQCBjZGVmIGNsYXNzIFJlYWxOdW1iZXIoc2FnZS5z dHJ1Y3R1cmUuZWxlbWVudC5SaW5nRWxlbWVudCk6CisgICAgICAgICAgICAgICAgICAoPFJlYWxO dW1iZXI+cmlnaHQpLnZhbHVlLCAoPFJlYWxGaWVsZF9jbGFzcz5zZWxmLl9wYXJlbnQpLnJuZCkK KyAgICAgICAgIHJldHVybiB4CisgCistICAgIGNwZGVmIF9uZWdfKHNlbGYpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBfbmVnXyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRo ZSBuZWdhdGl2ZSBvZiBgYHNlbGZgYC4KKyAKK0BAIC0yNTgyLDcgKzI1ODIsNyBAQCBjZGVmIGNs YXNzIFJlYWxOdW1iZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5SaW5nRWxlbWVudCk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLmFicygpCisgCistICAgIGNkZWYgUmVhbE51 bWJlciBhYnMoUmVhbE51bWJlciBzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBSZWFsTnVtYmVy IGFicyhSZWFsTnVtYmVyIHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhl IGFic29sdXRlIHZhbHVlIG9mIGBgc2VsZmBgLgorIAorQEAgLTI5MzUsNyArMjkzNSw3IEBAIGNk ZWYgY2xhc3MgUmVhbE51bWJlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50LlJpbmdFbGVtZW50KToK KyAgICAgIyBSb3VuZGluZyBldGMKKyAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIworIAorLSAgICBj cGRlZiBfbW9kXyhsZWZ0LCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9tb2RfKGxlZnQs IHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJuIHRoZSB2YWx1ZSBvZiBgYGxl ZnQgLSBuKnJpZ2h0YGAsIHJvdW5kZWQgYWNjb3JkaW5nIHRvIHRoZQorICAgICAgICAgcm91bmRp bmcgbW9kZSBvZiB0aGUgcGFyZW50LCB3aGVyZSBgYG5gYCBpcyB0aGUgaW50ZWdlciBxdW90aWVu dCBvZgorQEAgLTQwNTksNyArNDA1OSw3IEBAIGNkZWYgY2xhc3MgUmVhbE51bWJlcihzYWdlLnN0 cnVjdHVyZS5lbGVtZW50LlJpbmdFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0 dXJuIG5vdCBtcGZyX3plcm9fcChzZWxmLnZhbHVlKQorIAorLSAgICBjcGRlZiBfcmljaGNtcF8o c2VsZiwgb3RoZXIsIGludCBvcCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhzZWxm LCBvdGhlciwgaW50IG9wKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ29tcGFyZSBgYHNlbGZg YCBhbmQgYGBvdGhlcmBgIGFjY29yZGluZyB0byB0aGUgcmljaAorICAgICAgICAgY29tcGFyaXNv biBvcGVyYXRvciBgYG9wYGAuCitAQCAtNTg2Nyw3ICs1ODY3LDcgQEAgZGVmIF9fY3JlYXRlX19S ZWFsTnVtYmVyX3ZlcnNpb24wKHBhcmVudCwgeCwgYmFzZT0xMCk6CisgCisgCisgY2RlZiBjbGFz cyBSUnRvUlIoTWFwKToKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCkgbm9leGNl cHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpOgorICAgICAgICAgIiIiCisg ICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtNTkxNiw3ICs1OTE2LDcgQEAgY2RlZiBjbGFzcyBS UnRvUlIoTWFwKToKKyAgICAgICAgIHJldHVybiBSUnRvUlIoc2VsZi5fY29kb21haW4sIHNlbGYu ZG9tYWluKCkpCisgCisgY2RlZiBjbGFzcyBaWnRvUlIoTWFwKToKKy0gICAgY3BkZWYgRWxlbWVu dCBfY2FsbF8oc2VsZiwgeCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNl bGYsIHgpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtNTkzMSw3 ICs1OTMxLDcgQEAgY2RlZiBjbGFzcyBaWnRvUlIoTWFwKToKKyAgICAgICAgIHJldHVybiB5Cisg CisgY2RlZiBjbGFzcyBRUXRvUlIoTWFwKToKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2Vs ZiwgeCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpOgorICAg ICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtNTk0Niw3ICs1OTQ2LDcgQEAg Y2RlZiBjbGFzcyBRUXRvUlIoTWFwKToKKyAgICAgICAgIHJldHVybiB5CisgCisgY2RlZiBjbGFz cyBkb3VibGVfdG9SUihNYXApOgorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCk6CisgICAgICAgICAi IiIKKyAgICAgICAgIFRha2VzIGFueXRoaW5nIHRoYXQgY2FuIGJlIGNvbnZlcnRlZCB0byBhIGRv dWJsZS4KKyAKK0BAIC01OTY2LDcgKzU5NjYsNyBAQCBjZGVmIGNsYXNzIGRvdWJsZV90b1JSKE1h cCk6CisgICAgICAgICByZXR1cm4geQorIAorIGNkZWYgY2xhc3MgaW50X3RvUlIoTWFwKToKKy0g ICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVs ZW1lbnQgX2NhbGxfKHNlbGYsIHgpOgorICAgICAgICAgIiIiCisgICAgICAgICBUYWtlcyBQeXRo b24gaW50L2xvbmcgaW5zdGFuY2VzLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3Jp bmdfZXh0ZW5zaW9uLnB4ZCBiL3NyYy9zYWdlL3JpbmdzL3JpbmdfZXh0ZW5zaW9uLnB4ZAoraW5k ZXggOTlkYzAzNmRhNzkuLjQ3OGJkNmVlZjc1IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3Mv cmluZ19leHRlbnNpb24ucHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9yaW5nX2V4dGVuc2lvbi5w eGQKK0BAIC0xNCwxMiArMTQsMTIgQEAgY2RlZiBjbGFzcyBSaW5nRXh0ZW5zaW9uX2dlbmVyaWMo Q29tbXV0YXRpdmVSaW5nKToKKyAgICAgY2RlZiBSaW5nRXh0ZW5zaW9uX2dlbmVyaWMgX2ZyYWN0 aW9uX2ZpZWxkCisgICAgIGNkZWYgdHlwZSBfZnJhY3Rpb25fZmllbGRfdHlwZQorIAorLSAgICBj cGRlZiBpc19kZWZpbmVkX292ZXIoc2VsZiwgYmFzZSkgbm9leGNlcHQKKy0gICAgY3BkZWYgQ29t bXV0YXRpdmVSaW5nIF9jaGVja19iYXNlKHNlbGYsIENvbW11dGF0aXZlUmluZyBiYXNlKSBub2V4 Y2VwdAorLSAgICBjcGRlZiBfZGVncmVlX292ZXIoc2VsZiwgQ29tbXV0YXRpdmVSaW5nIGJhc2Up IG5vZXhjZXB0CistICAgIGNwZGVmIF9pc19maW5pdGVfb3ZlcihzZWxmLCBDb21tdXRhdGl2ZVJp bmcgYmFzZSkgbm9leGNlcHQKKy0gICAgY3BkZWYgX2lzX2ZyZWVfb3ZlcihzZWxmLCBDb21tdXRh dGl2ZVJpbmcgYmFzZSkgbm9leGNlcHQKKy0gICAgY2RlZiBNYXAgX2RlZmluaW5nX21vcnBoaXNt X2ZyYWN0aW9uX2ZpZWxkKHNlbGYsIGJpbnQgZXh0ZW5kX2Jhc2UpIG5vZXhjZXB0CisrICAgIGNw ZGVmIGlzX2RlZmluZWRfb3ZlcihzZWxmLCBiYXNlKQorKyAgICBjcGRlZiBDb21tdXRhdGl2ZVJp bmcgX2NoZWNrX2Jhc2Uoc2VsZiwgQ29tbXV0YXRpdmVSaW5nIGJhc2UpCisrICAgIGNwZGVmIF9k ZWdyZWVfb3ZlcihzZWxmLCBDb21tdXRhdGl2ZVJpbmcgYmFzZSkKKysgICAgY3BkZWYgX2lzX2Zp bml0ZV9vdmVyKHNlbGYsIENvbW11dGF0aXZlUmluZyBiYXNlKQorKyAgICBjcGRlZiBfaXNfZnJl ZV9vdmVyKHNlbGYsIENvbW11dGF0aXZlUmluZyBiYXNlKQorKyAgICBjZGVmIE1hcCBfZGVmaW5p bmdfbW9ycGhpc21fZnJhY3Rpb25fZmllbGQoc2VsZiwgYmludCBleHRlbmRfYmFzZSkKKyAKKyAK KyBjZGVmIGNsYXNzIFJpbmdFeHRlbnNpb25GcmFjdGlvbkZpZWxkKFJpbmdFeHRlbnNpb25fZ2Vu ZXJpYyk6CitAQCAtMzEsNyArMzEsNyBAQCBjZGVmIGNsYXNzIFJpbmdFeHRlbnNpb25XaXRoQmFz aXMoUmluZ0V4dGVuc2lvbl9nZW5lcmljKToKKyAgICAgY2RlZiBfYmFzaXNfbmFtZXMKKyAgICAg Y2RlZiBfYmFzaXNfbGF0ZXhfbmFtZXMKKyAKKy0gICAgY3BkZWYgX2Jhc2lzX292ZXIoc2VsZiwg Q29tbXV0YXRpdmVSaW5nIGJhc2UpIG5vZXhjZXB0CisrICAgIGNwZGVmIF9iYXNpc19vdmVyKHNl bGYsIENvbW11dGF0aXZlUmluZyBiYXNlKQorICAgICAjIGNwZGVmIF9mcmVlX21vZHVsZShzZWxm LCBDb21tdXRhdGl2ZVJpbmcgYmFzZSwgYmludCBtYXApCisgCisgCitkaWZmIC0tZ2l0IGEvc3Jj L3NhZ2UvcmluZ3MvcmluZ19leHRlbnNpb24ucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcmluZ19leHRl bnNpb24ucHl4CitpbmRleCBkNDEyYWI0N2UyNy4uOWMyMTRhMWZmZWUgMTAwNjQ0CistLS0gYS9z cmMvc2FnZS9yaW5ncy9yaW5nX2V4dGVuc2lvbi5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3Jp bmdfZXh0ZW5zaW9uLnB5eAorQEAgLTEwMDcsNyArMTAwNyw3IEBAIGNkZWYgY2xhc3MgUmluZ0V4 dGVuc2lvbl9nZW5lcmljKENvbW11dGF0aXZlUmluZyk6CisgICAgICAgICAgICAgcmFpc2UgUnVu dGltZUVycm9yKCJiYWNrZW5kIGlzIG5vdCBleHBvc2VkIHRvIHRoZSB1c2VyOyBjYW5ub3QgcHJp bnQiKQorICAgICAgICAgcmV0dXJuIGxhdGV4KHNlbGYuX2JhY2tlbmQpCisgCistICAgIGNwZGVm IF9jb2VyY2VfbWFwX2Zyb21fKHNlbGYsIG90aGVyKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2Nv ZXJjZV9tYXBfZnJvbV8oc2VsZiwgb3RoZXIpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0 dXJuIGEgY29lcmNlIG1hcCBmcm9tIHRoaXMgZXh0ZW5zaW9uIHRvIGBgb3RoZXJgYCBpZiBkZWZp bmVkLgorIAorQEAgLTExNjgsNyArMTE2OCw3IEBAIGNkZWYgY2xhc3MgUmluZ0V4dGVuc2lvbl9n ZW5lcmljKENvbW11dGF0aXZlUmluZyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBz ZWxmLmJhc2VzKClbLTFdCisgCistICAgIGNwZGVmIGlzX2RlZmluZWRfb3ZlcihzZWxmLCBiYXNl KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgaXNfZGVmaW5lZF9vdmVyKHNlbGYsIGJhc2UpOgorICAg ICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHdoZXRoZXIgb3Igbm90IGBgYmFzZWBgIGlzIG9u ZSBvZiB0aGUgYmFzZXMgb2YgdGhpcworICAgICAgICAgZXh0ZW5zaW9uLgorQEAgLTEyMTYsNyAr MTIxNiw3IEBAIGNkZWYgY2xhc3MgUmluZ0V4dGVuc2lvbl9nZW5lcmljKENvbW11dGF0aXZlUmlu Zyk6CisgICAgICAgICAgICAgYiA9ICg8UmluZ0V4dGVuc2lvbl9nZW5lcmljPmIpLl9iYXNlCisg ICAgICAgICByZXR1cm4gYiBpcyBiYXNlCisgCistICAgIGNwZGVmIENvbW11dGF0aXZlUmluZyBf Y2hlY2tfYmFzZShzZWxmLCBDb21tdXRhdGl2ZVJpbmcgYmFzZSkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIENvbW11dGF0aXZlUmluZyBfY2hlY2tfYmFzZShzZWxmLCBDb21tdXRhdGl2ZVJpbmcgYmFz ZSk6CisgICAgICAgICByIiIiCisgICAgICAgICBDaGVjayBpZiBgYGJhc2VgYCBpcyBvbmUgb2Yg dGhlIHN1Y2Nlc3NpdmUgYmFzZXMgb2YgdGhpcworICAgICAgICAgZXh0ZW5zaW9uIGFuZCwgaWYg aXQgaXMsIG5vcm1hbGl6ZSBpdC4KK0BAIC0xNDY0LDcgKzE0NjQsNyBAQCBjZGVmIGNsYXNzIFJp bmdFeHRlbnNpb25fZ2VuZXJpYyhDb21tdXRhdGl2ZVJpbmcpOgorICAgICAgICAgYmFzZSA9IHNl bGYuX2NoZWNrX2Jhc2UoYmFzZSkKKyAgICAgICAgIHJldHVybiBzZWxmLl9kZWdyZWVfb3Zlcihi YXNlKQorIAorLSAgICBjcGRlZiBfZGVncmVlX292ZXIoc2VsZiwgQ29tbXV0YXRpdmVSaW5nIGJh c2UpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZGVncmVlX292ZXIoc2VsZiwgQ29tbXV0YXRpdmVS aW5nIGJhc2UpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBkZWdyZWUgb2Yg dGhpcyBleHRlbnNpb24gb3ZlciBgYGJhc2VgYC4KKyAKK0BAIC0xNjA0LDcgKzE2MDQsNyBAQCBj ZGVmIGNsYXNzIFJpbmdFeHRlbnNpb25fZ2VuZXJpYyhDb21tdXRhdGl2ZVJpbmcpOgorICAgICAg ICAgICAgIGIgPSAoPFJpbmdFeHRlbnNpb25fZ2VuZXJpYz8+YikuX2Jhc2UKKyAgICAgICAgIHJh aXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKyAKKy0gICAgY3BkZWYgX2lzX2Zpbml0ZV9vdmVyKHNl bGYsIENvbW11dGF0aXZlUmluZyBiYXNlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2lzX2Zpbml0 ZV9vdmVyKHNlbGYsIENvbW11dGF0aXZlUmluZyBiYXNlKToKKyAgICAgICAgIHIiIiIKKyAgICAg ICAgIFJldHVybiB3aGV0aGVyIG9yIG5vdCB0aGlzIGV4dGVuc2lvbiBpcyBmaW5pdGUgb3ZlciBg YGJhc2VgYC4KKyAKK0BAIC0xNjY3LDcgKzE2NjcsNyBAQCBjZGVmIGNsYXNzIFJpbmdFeHRlbnNp b25fZ2VuZXJpYyhDb21tdXRhdGl2ZVJpbmcpOgorICAgICAgICAgICAgIGIgPSAoPFJpbmdFeHRl bnNpb25fZ2VuZXJpYz8+YikuX2Jhc2UKKyAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJy b3IKKyAKKy0gICAgY3BkZWYgX2lzX2ZyZWVfb3ZlcihzZWxmLCBDb21tdXRhdGl2ZVJpbmcgYmFz ZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9pc19mcmVlX292ZXIoc2VsZiwgQ29tbXV0YXRpdmVS aW5nIGJhc2UpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHdoZXRoZXIgb3Igbm90 IHRoaXMgZXh0ZW5zaW9uIGlzIGZpbml0ZSBvdmVyIGBgYmFzZWBgLgorIAorQEAgLTE3ODUsNyAr MTc4NSw3IEBAIGNkZWYgY2xhc3MgUmluZ0V4dGVuc2lvbl9nZW5lcmljKENvbW11dGF0aXZlUmlu Zyk6CisgICAgICAgICBjb25zdHJ1Y3RvciA9IFJpbmdFeHRlbnNpb25GcmFjdGlvbkZpZWxkLCB7 J3JpbmcnOiBzZWxmLCAnaXNfYmFja2VuZF9leHBvc2VkJzogc2VsZi5faXNfYmFja2VuZF9leHBv c2VkfQorICAgICAgICAgcmV0dXJuIFJpbmdFeHRlbnNpb24ocmluZywgZGVmaW5pbmdfbW9ycGhp c20sIGNvbnN0cnVjdG9ycz1bY29uc3RydWN0b3JdKQorIAorLSAgICBjZGVmIE1hcCBfZGVmaW5p bmdfbW9ycGhpc21fZnJhY3Rpb25fZmllbGQoc2VsZiwgYmludCBleHRlbmRfYmFzZSkgbm9leGNl cHQ6CisrICAgIGNkZWYgTWFwIF9kZWZpbmluZ19tb3JwaGlzbV9mcmFjdGlvbl9maWVsZChzZWxm LCBiaW50IGV4dGVuZF9iYXNlKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUg ZGVmaW5pbmcgbW9ycGhpc20gb2YgdGhlIGZyYWN0aW9uIGZpZWxkIG9mIHRoaXMgZXh0ZW5zaW9u LgorIAorQEAgLTIyMTAsNyArMjIxMCw3IEBAIGNkZWYgY2xhc3MgUmluZ0V4dGVuc2lvbldpdGhC YXNpcyhSaW5nRXh0ZW5zaW9uX2dlbmVyaWMpOgorICAgICAgICAgICAgIGIgPSBiLmJhc2Vfcmlu ZygpCisgICAgICAgICByZXR1cm4gYmFzZQorIAorLSAgICBjcGRlZiBfZGVncmVlX292ZXIoc2Vs ZiwgQ29tbXV0YXRpdmVSaW5nIGJhc2UpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZGVncmVlX292 ZXIoc2VsZiwgQ29tbXV0YXRpdmVSaW5nIGJhc2UpOgorICAgICAgICAgciIiIgorICAgICAgICAg UmV0dXJuIHRoZSBkZWdyZWUgb2YgdGhpcyBleHRlbnNpb24gb3ZlciBgYGJhc2VgYC4KKyAKK0BA IC0yMjM3LDcgKzIyMzcsNyBAQCBjZGVmIGNsYXNzIFJpbmdFeHRlbnNpb25XaXRoQmFzaXMoUmlu Z0V4dGVuc2lvbl9nZW5lcmljKToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmV0dXJu IGxlbihzZWxmLl9iYXNpcykgKiBzZWxmLl9iYXNlLl9kZWdyZWVfb3ZlcihiYXNlKQorIAorLSAg ICBjcGRlZiBfaXNfZmluaXRlX292ZXIoc2VsZiwgQ29tbXV0YXRpdmVSaW5nIGJhc2UpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBfaXNfZmluaXRlX292ZXIoc2VsZiwgQ29tbXV0YXRpdmVSaW5nIGJh c2UpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHdoZXRoZXIgb3Igbm90IHRoaXMg ZXh0ZW5zaW9uIGlzIGZpbml0ZSBvdmVyIGBgYmFzZWBgLgorIAorQEAgLTIyNTYsNyArMjI1Niw3 IEBAIGNkZWYgY2xhc3MgUmluZ0V4dGVuc2lvbldpdGhCYXNpcyhSaW5nRXh0ZW5zaW9uX2dlbmVy aWMpOgorICAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgICByZXR1cm4gc2VsZi5fYmFz ZS5faXNfZmluaXRlX292ZXIoYmFzZSkKKyAKKy0gICAgY3BkZWYgX2lzX2ZyZWVfb3ZlcihzZWxm LCBDb21tdXRhdGl2ZVJpbmcgYmFzZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9pc19mcmVlX292 ZXIoc2VsZiwgQ29tbXV0YXRpdmVSaW5nIGJhc2UpOgorICAgICAgICAgciIiIgorICAgICAgICAg UmV0dXJuIHdoZXRoZXIgb3Igbm90IHRoaXMgZXh0ZW5zaW9uIGlzIGZyZWUgb3ZlciBgYGJhc2Vg YC4KKyAKK0BAIC0yMzE3LDcgKzIzMTcsNyBAQCBjZGVmIGNsYXNzIFJpbmdFeHRlbnNpb25XaXRo QmFzaXMoUmluZ0V4dGVuc2lvbl9nZW5lcmljKToKKyAgICAgICAgIGJhc2UgPSBzZWxmLl9jaGVj a19iYXNlKGJhc2UpCisgICAgICAgICByZXR1cm4gc2VsZi5fYmFzaXNfb3ZlcihiYXNlKQorIAor LSAgICBjcGRlZiBfYmFzaXNfb3ZlcihzZWxmLCBDb21tdXRhdGl2ZVJpbmcgYmFzZSkgbm9leGNl cHQ6CisrICAgIGNwZGVmIF9iYXNpc19vdmVyKHNlbGYsIENvbW11dGF0aXZlUmluZyBiYXNlKToK KyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiBhIGJhc2lzIG9mIHRoaXMgZXh0ZW5zaW9u IG92ZXIgYGBiYXNlYGAuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcmluZ19leHRl bnNpb25fY29udmVyc2lvbi5weGQgYi9zcmMvc2FnZS9yaW5ncy9yaW5nX2V4dGVuc2lvbl9jb252 ZXJzaW9uLnB4ZAoraW5kZXggNzRlMDllNGYzNTYuLmUzODE1YTQxMWJhIDEwMDY0NAorLS0tIGEv c3JjL3NhZ2UvcmluZ3MvcmluZ19leHRlbnNpb25fY29udmVyc2lvbi5weGQKKysrKyBiL3NyYy9z YWdlL3JpbmdzL3JpbmdfZXh0ZW5zaW9uX2NvbnZlcnNpb24ucHhkCitAQCAtMSwxNyArMSwxNyBA QAorIGZyb20gc2FnZS5yaW5ncy5yaW5nX2V4dGVuc2lvbiBjaW1wb3J0IFJpbmdFeHRlbnNpb25f Z2VuZXJpYworIAorIAorLWNwZGVmIGJhY2tlbmRfcGFyZW50KFIpIG5vZXhjZXB0CistY3BkZWYg ZnJvbV9iYWNrZW5kX3BhcmVudChSLCBSaW5nRXh0ZW5zaW9uX2dlbmVyaWMgRSkgbm9leGNlcHQK KytjcGRlZiBiYWNrZW5kX3BhcmVudChSKQorK2NwZGVmIGZyb21fYmFja2VuZF9wYXJlbnQoUiwg UmluZ0V4dGVuc2lvbl9nZW5lcmljIEUpCisgCistY3BkZWYgYmFja2VuZF9lbGVtZW50KHgpIG5v ZXhjZXB0CistY3BkZWYgZnJvbV9iYWNrZW5kX2VsZW1lbnQoeCwgUmluZ0V4dGVuc2lvbl9nZW5l cmljIEUpIG5vZXhjZXB0CisrY3BkZWYgYmFja2VuZF9lbGVtZW50KHgpCisrY3BkZWYgZnJvbV9i YWNrZW5kX2VsZW1lbnQoeCwgUmluZ0V4dGVuc2lvbl9nZW5lcmljIEUpCisgCistY2RlZiBfYmFj a2VuZF9tb3JwaGlzbShmKSBub2V4Y2VwdAorLWNwZGVmIGJhY2tlbmRfbW9ycGhpc20oZiwgZm9y Z2V0PSopIG5vZXhjZXB0CistY3BkZWYgZnJvbV9iYWNrZW5kX21vcnBoaXNtKGYsIFJpbmdFeHRl bnNpb25fZ2VuZXJpYyBFKSBub2V4Y2VwdAorK2NkZWYgX2JhY2tlbmRfbW9ycGhpc20oZikKKytj cGRlZiBiYWNrZW5kX21vcnBoaXNtKGYsIGZvcmdldD0qKQorK2NwZGVmIGZyb21fYmFja2VuZF9t b3JwaGlzbShmLCBSaW5nRXh0ZW5zaW9uX2dlbmVyaWMgRSkKKyAKKy1jcGRlZiB0b19iYWNrZW5k KGFyZykgbm9leGNlcHQKKy1jcGRlZiBmcm9tX2JhY2tlbmQoYXJnLCBFKSBub2V4Y2VwdAorK2Nw ZGVmIHRvX2JhY2tlbmQoYXJnKQorK2NwZGVmIGZyb21fYmFja2VuZChhcmcsIEUpCisgCisgCitk aWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcmluZ19leHRlbnNpb25fY29udmVyc2lvbi5weXgg Yi9zcmMvc2FnZS9yaW5ncy9yaW5nX2V4dGVuc2lvbl9jb252ZXJzaW9uLnB5eAoraW5kZXggNTk3 MzIwZThhZjguLmVlYjYwNzdjZDBhIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcmluZ19l eHRlbnNpb25fY29udmVyc2lvbi5weXgKKysrKyBiL3NyYy9zYWdlL3JpbmdzL3JpbmdfZXh0ZW5z aW9uX2NvbnZlcnNpb24ucHl4CitAQCAtMjYsNyArMjYsNyBAQCBmcm9tIHNhZ2UucmluZ3Mucmlu Z19leHRlbnNpb25fbW9ycGhpc20gY2ltcG9ydCBSaW5nRXh0ZW5zaW9uQmFja2VuZFJldmVyc2VJ c29tbworICMgRm9yIHBhcmVudHMKKyAjIyMjIyMjIyMjIyMjCisgCistY3BkZWYgYmFja2VuZF9w YXJlbnQoUikgbm9leGNlcHQ6CisrY3BkZWYgYmFja2VuZF9wYXJlbnQoUik6CisgICAgIHIiIiIK KyAgICAgUmV0dXJuIHRoZSBiYWNrZW5kIHBhcmVudCBvZiBgYFJgYC4KKyAKK0BAIC00OSw3ICs0 OSw3IEBAIGNwZGVmIGJhY2tlbmRfcGFyZW50KFIpIG5vZXhjZXB0OgorICAgICBlbHNlOgorICAg ICAgICAgcmV0dXJuIFIKKyAKKy1jcGRlZiBmcm9tX2JhY2tlbmRfcGFyZW50KFIsIFJpbmdFeHRl bnNpb25fZ2VuZXJpYyBFKSBub2V4Y2VwdDoKKytjcGRlZiBmcm9tX2JhY2tlbmRfcGFyZW50KFIs IFJpbmdFeHRlbnNpb25fZ2VuZXJpYyBFKToKKyAgICAgciIiIgorICAgICBUcnkgdG8gcmVjb25z dHJ1Y3QgYSByaW5nIGV4dGVuc2lvbiAoc29tZWhvdyByZWxhdGVkIHRvIGBgRWBgKQorICAgICB3 aG9zZSBiYWNrZW5kIGlzIGBgUmBgLgorQEAgLTEwNyw3ICsxMDcsNyBAQCBjcGRlZiBmcm9tX2Jh Y2tlbmRfcGFyZW50KFIsIFJpbmdFeHRlbnNpb25fZ2VuZXJpYyBFKSBub2V4Y2VwdDoKKyAjIEZv ciBlbGVtZW50cworICMjIyMjIyMjIyMjIyMjCisgCistY3BkZWYgYmFja2VuZF9lbGVtZW50KHgp IG5vZXhjZXB0OgorK2NwZGVmIGJhY2tlbmRfZWxlbWVudCh4KToKKyAgICAgciIiIgorICAgICBS ZXR1cm4gdGhlIGJhY2tlbmQgZWxlbWVudCBvZiBgYHhgYC4KKyAKK0BAIC0xMzAsNyArMTMwLDcg QEAgY3BkZWYgYmFja2VuZF9lbGVtZW50KHgpIG5vZXhjZXB0OgorICAgICBlbHNlOgorICAgICAg ICAgcmV0dXJuIHgKKyAKKy1jcGRlZiBmcm9tX2JhY2tlbmRfZWxlbWVudCh4LCBSaW5nRXh0ZW5z aW9uX2dlbmVyaWMgRSkgbm9leGNlcHQ6CisrY3BkZWYgZnJvbV9iYWNrZW5kX2VsZW1lbnQoeCwg UmluZ0V4dGVuc2lvbl9nZW5lcmljIEUpOgorICAgICByIiIiCisgICAgIFRyeSB0byByZWNvbnN0 cnVjdCBhbiBlbGVtZW50IGluIGEgcmluZyBleHRlbnNpb24gKHNvbWVob3cKKyAgICAgcmVsYXRl ZCB0byBgYEVgYCkgd2hvc2UgYmFja2VuZCBpcyBgYHhgYC4KK0BAIC0xODEsNyArMTgxLDcgQEAg Y3BkZWYgZnJvbV9iYWNrZW5kX2VsZW1lbnQoeCwgUmluZ0V4dGVuc2lvbl9nZW5lcmljIEUpIG5v ZXhjZXB0OgorICMgRm9yIG1vcnBoaXNtcworICMjIyMjIyMjIyMjIyMjIworIAorLWNkZWYgX2Jh Y2tlbmRfbW9ycGhpc20oZikgbm9leGNlcHQ6CisrY2RlZiBfYmFja2VuZF9tb3JwaGlzbShmKToK KyAgICAgciIiIgorICAgICBSZXR1cm4gdGhlIGJhY2tlbmQgbW9ycGhpc20gb2YgYGBmYGAuCisg CitAQCAtMjQzLDcgKzI0Myw3IEBAIGNkZWYgX2JhY2tlbmRfbW9ycGhpc20oZikgbm9leGNlcHQ6 CisgICAgICAgICAgICAgcmV0dXJuIHJpbmcuY29lcmNlX21hcF9mcm9tKGRvbWFpbikKKyAgICAg cmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorIAorLWNwZGVmIGJhY2tlbmRfbW9ycGhpc20oZiwg Zm9yZ2V0PSJhbGwiKSBub2V4Y2VwdDoKKytjcGRlZiBiYWNrZW5kX21vcnBoaXNtKGYsIGZvcmdl dD0iYWxsIik6CisgICAgIHIiIiIKKyAgICAgUmV0dXJuIHRoZSBiYWNrZW5kIG1vcnBoaXNtIG9m IGBgZmBgLgorIAorQEAgLTI5OSw3ICsyOTksNyBAQCBjcGRlZiBiYWNrZW5kX21vcnBoaXNtKGYs IGZvcmdldD0iYWxsIikgbm9leGNlcHQ6CisgICAgICAgICAgICAgZyA9IFJpbmdFeHRlbnNpb25C YWNrZW5kUmV2ZXJzZUlzb21vcnBoaXNtKGYuY29kb21haW4oKS5Ib20ocmluZykpICogZworICAg ICByZXR1cm4gZworIAorLWNwZGVmIGZyb21fYmFja2VuZF9tb3JwaGlzbShmLCBSaW5nRXh0ZW5z aW9uX2dlbmVyaWMgRSkgbm9leGNlcHQ6CisrY3BkZWYgZnJvbV9iYWNrZW5kX21vcnBoaXNtKGYs IFJpbmdFeHRlbnNpb25fZ2VuZXJpYyBFKToKKyAgICAgciIiIgorICAgICBUcnkgdG8gcmVjb25z dHJ1Y3QgYSBtb3JwaGlzbSBiZXR3ZWVuIHJpbmcgZXh0ZW5zaW9ucworICAgICAoc29tZWhvdyBy ZWxhdGVkIHRvIGBgRWBgKSB3aG9zZSBiYWNrZW5kIGlzIGBgZmBgLgorQEAgLTMzNiw3ICszMzYs NyBAQCBjcGRlZiBmcm9tX2JhY2tlbmRfbW9ycGhpc20oZiwgUmluZ0V4dGVuc2lvbl9nZW5lcmlj IEUpIG5vZXhjZXB0OgorICMgR2VuZXJpYworICMjIyMjIyMjIworIAorLWNwZGVmIHRvX2JhY2tl bmQoYXJnKSBub2V4Y2VwdDoKKytjcGRlZiB0b19iYWNrZW5kKGFyZyk6CisgICAgIHIiIiIKKyAg ICAgUmV0dXJuIHRoZSBiYWNrZW5kIG9mIGBgYXJnYGAuCisgCitAQCAtMzkyLDcgKzM5Miw3IEBA IGNwZGVmIHRvX2JhY2tlbmQoYXJnKSBub2V4Y2VwdDoKKyAgICAgICAgIHJldHVybiAoPFJpbmdF eHRlbnNpb25FbGVtZW50PmFyZykuX2JhY2tlbmQKKyAgICAgcmV0dXJuIGFyZworIAorLWNwZGVm IGZyb21fYmFja2VuZChhcmcsIEUpIG5vZXhjZXB0OgorK2NwZGVmIGZyb21fYmFja2VuZChhcmcs IEUpOgorICAgICByIiIiCisgICAgIFRyeSB0byByZWNvbnN0cnVjdCBzb21ldGhpbmcgKHNvbWVo b3cgcmVsYXRlZCB0byBgYEVgYCkKKyAgICAgd2hvc2UgYmFja2VuZCBpcyBgYGFyZ2BgLgorZGlm ZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3JpbmdfZXh0ZW5zaW9uX2VsZW1lbnQucHhkIGIvc3Jj L3NhZ2UvcmluZ3MvcmluZ19leHRlbnNpb25fZWxlbWVudC5weGQKK2luZGV4IDMyY2UxMzg1MjQ4 Li42YjYyYWQ1OGMwNiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3JpbmdfZXh0ZW5zaW9u X2VsZW1lbnQucHhkCisrKysgYi9zcmMvc2FnZS9yaW5ncy9yaW5nX2V4dGVuc2lvbl9lbGVtZW50 LnB4ZAorQEAgLTEzLDEwICsxMywxMCBAQCBjZGVmIGNsYXNzIFJpbmdFeHRlbnNpb25GcmFjdGlv bkZpZWxkRWxlbWVudChSaW5nRXh0ZW5zaW9uRWxlbWVudCk6CisgICAgIHBhc3MKKyAKKyBjZGVm IGNsYXNzIFJpbmdFeHRlbnNpb25XaXRoQmFzaXNFbGVtZW50KFJpbmdFeHRlbnNpb25FbGVtZW50 KToKKy0gICAgY2RlZiBfdmVjdG9yKHNlbGYsIENvbW11dGF0aXZlUmluZyBiYXNlKSBub2V4Y2Vw dAorLSAgICBjZGVmIF9tYXRyaXgoc2VsZiwgQ29tbXV0YXRpdmVSaW5nIGJhc2UpIG5vZXhjZXB0 CistICAgIGNkZWYgX3RyYWNlKHNlbGYsIENvbW11dGF0aXZlUmluZyBiYXNlKSBub2V4Y2VwdAor LSAgICBjZGVmIF9ub3JtKHNlbGYsIENvbW11dGF0aXZlUmluZyBiYXNlKSBub2V4Y2VwdAorLSAg ICBjcGRlZiBtaW5wb2x5KHNlbGYsIGJhc2U9KiwgdmFyPSopIG5vZXhjZXB0CisrICAgIGNkZWYg X3ZlY3RvcihzZWxmLCBDb21tdXRhdGl2ZVJpbmcgYmFzZSkKKysgICAgY2RlZiBfbWF0cml4KHNl bGYsIENvbW11dGF0aXZlUmluZyBiYXNlKQorKyAgICBjZGVmIF90cmFjZShzZWxmLCBDb21tdXRh dGl2ZVJpbmcgYmFzZSkKKysgICAgY2RlZiBfbm9ybShzZWxmLCBDb21tdXRhdGl2ZVJpbmcgYmFz ZSkKKysgICAgY3BkZWYgbWlucG9seShzZWxmLCBiYXNlPSosIHZhcj0qKQorIAorIAorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL3JpbmdzL3JpbmdfZXh0ZW5zaW9uX2VsZW1lbnQucHl4IGIvc3JjL3Nh Z2UvcmluZ3MvcmluZ19leHRlbnNpb25fZWxlbWVudC5weXgKK2luZGV4IGE4YjJhMjVmMzM1Li43 Mjk3OTNkM2JmYSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3JpbmdfZXh0ZW5zaW9uX2Vs ZW1lbnQucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9yaW5nX2V4dGVuc2lvbl9lbGVtZW50LnB5 eAorQEAgLTM1OCw3ICszNTgsNyBAQCBjZGVmIGNsYXNzIFJpbmdFeHRlbnNpb25FbGVtZW50KENv bW11dGF0aXZlQWxnZWJyYUVsZW1lbnQpOgorICAgICAgICAgICAgICAgICByZXR1cm4gcGFyZW50 LmJhc2UoKShiYXNlKHNlbGYuX2JhY2tlbmQpKQorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50 ZWRFcnJvcigiY2Fubm90IGNhc3QgJXMgdG8gdGhlIGJhc2UiICUgc2VsZikKKyAKKy0gICAgY3Bk ZWYgX3JpY2hjbXBfKGxlZnQsIHJpZ2h0LCBpbnQgb3ApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBf cmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCk6CisgICAgICAgICByIiIiCisgICAgICAgICBD b21wYXJlIHRoaXMgZWxlbWVudCB3aXRoIGBgcmlnaHRgYCBhY2NvcmRpbmcgdG8KKyAgICAgICAg IHRoZSByaWNoIGNvbXBhcmlzb24gb3BlcmF0b3IgYGBvcGBgLgorQEAgLTM4Niw3ICszODYsNyBA QCBjZGVmIGNsYXNzIFJpbmdFeHRlbnNpb25FbGVtZW50KENvbW11dGF0aXZlQWxnZWJyYUVsZW1l bnQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gbGVmdC5fYmFja2VuZC5fcmljaGNt cF8oYmFja2VuZF9lbGVtZW50KHJpZ2h0KSwgb3ApCisgCistICAgIGNwZGVmIF9hZGRfKHNlbGYs b3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfYWRkXyhzZWxmLG90aGVyKToKKyAgICAgICAg IHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgc3VtIG9mIHRoaXMgZWxlbWVudCBhbmQgYGBvdGhl cmBgLgorIAorQEAgLTQwNiw3ICs0MDYsNyBAQCBjZGVmIGNsYXNzIFJpbmdFeHRlbnNpb25FbGVt ZW50KENvbW11dGF0aXZlQWxnZWJyYUVsZW1lbnQpOgorICAgICAgICAgYW5zLl9iYWNrZW5kID0g c2VsZi5fYmFja2VuZCArICg8UmluZ0V4dGVuc2lvbkVsZW1lbnQ+b3RoZXIpLl9iYWNrZW5kCisg ICAgICAgICByZXR1cm4gYW5zCisgCistICAgIGNwZGVmIF9uZWdfKHNlbGYpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiBfbmVnXyhzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0 aGUgb3Bwb3NpdGUgb2YgdGhpcyBlbGVtZW50LgorIAorQEAgLTQyNiw3ICs0MjYsNyBAQCBjZGVm IGNsYXNzIFJpbmdFeHRlbnNpb25FbGVtZW50KENvbW11dGF0aXZlQWxnZWJyYUVsZW1lbnQpOgor ICAgICAgICAgYW5zLl9iYWNrZW5kID0gLXNlbGYuX2JhY2tlbmQKKyAgICAgICAgIHJldHVybiBh bnMKKyAKKy0gICAgY3BkZWYgX3N1Yl8oc2VsZixvdGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVm IF9zdWJfKHNlbGYsb3RoZXIpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBk aWZmZXJlbmNlIG9mIHRoaXMgZWxlbWVudCBhbmQgYGBvdGhlcmBgLgorIAorQEAgLTQ0Niw3ICs0 NDYsNyBAQCBjZGVmIGNsYXNzIFJpbmdFeHRlbnNpb25FbGVtZW50KENvbW11dGF0aXZlQWxnZWJy YUVsZW1lbnQpOgorICAgICAgICAgYW5zLl9iYWNrZW5kID0gc2VsZi5fYmFja2VuZCAtICg8Umlu Z0V4dGVuc2lvbkVsZW1lbnQ+b3RoZXIpLl9iYWNrZW5kCisgICAgICAgICByZXR1cm4gYW5zCisg CistICAgIGNwZGVmIF9tdWxfKHNlbGYsb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbXVs XyhzZWxmLG90aGVyKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgcHJvZHVj dCBvZiB0aGlzIGVsZW1lbnQgYW5kIGBgb3RoZXJgYC4KKyAKK0BAIC00NjYsNyArNDY2LDcgQEAg Y2RlZiBjbGFzcyBSaW5nRXh0ZW5zaW9uRWxlbWVudChDb21tdXRhdGl2ZUFsZ2VicmFFbGVtZW50 KToKKyAgICAgICAgIGFucy5fYmFja2VuZCA9IHNlbGYuX2JhY2tlbmQgKiAoPFJpbmdFeHRlbnNp b25FbGVtZW50Pm90aGVyKS5fYmFja2VuZAorICAgICAgICAgcmV0dXJuIGFucworIAorLSAgICBj cGRlZiBfZGl2XyhzZWxmLG90aGVyKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2Rpdl8oc2VsZixv dGhlcik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHF1b3RpZW50IG9mIHRo aXMgZWxlbWVudCBieSBgYG90aGVyYGAsCisgICAgICAgICBjb25zaWRlcmVkIGFzIGFuIGVsZW1l bnQgb2YgdGhlIGZyYWN0aW9uIGZpZWxkLgorQEAgLTEwMzYsNyArMTAzNiw3IEBAIGNkZWYgY2xh c3MgUmluZ0V4dGVuc2lvbldpdGhCYXNpc0VsZW1lbnQoUmluZ0V4dGVuc2lvbkVsZW1lbnQpOgor ICAgICAgICAgYmFzZSA9ICg8UmluZ0V4dGVuc2lvbl9nZW5lcmljPnNlbGYuX3BhcmVudCkuX2No ZWNrX2Jhc2UoYmFzZSkKKyAgICAgICAgIHJldHVybiBzZWxmLl92ZWN0b3IoYmFzZSkKKyAKKy0g ICAgY2RlZiBfdmVjdG9yKHNlbGYsIENvbW11dGF0aXZlUmluZyBiYXNlKSBub2V4Y2VwdDoKKysg ICAgY2RlZiBfdmVjdG9yKHNlbGYsIENvbW11dGF0aXZlUmluZyBiYXNlKToKKyAgICAgICAgIHIi IiIKKyAgICAgICAgIFJldHVybiB0aGUgdmVjdG9yIG9mIGNvb3JkaW5hdGVzIG9mIHRoaXMgZWxl bWVudCBvdmVyIGBgYmFzZWBgCisgICAgICAgICAoaW4gdGhlIGJhc2lzIG91dHB1dCBieSB0aGUg bWV0aG9kIDptZXRoOmBiYXNpc19vdmVyYCkuCitAQCAtMTIwMSw3ICsxMjAxLDcgQEAgY2RlZiBj bGFzcyBSaW5nRXh0ZW5zaW9uV2l0aEJhc2lzRWxlbWVudChSaW5nRXh0ZW5zaW9uRWxlbWVudCk6 CisgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigidGhlIGV4dGVuc2lvbiBpcyBub3QgZmlu aXRlIGZyZWUiKQorICAgICAgICAgcmV0dXJuIHNlbGYuX21hdHJpeChiYXNlKQorIAorLSAgICBj ZGVmIF9tYXRyaXgoc2VsZiwgQ29tbXV0YXRpdmVSaW5nIGJhc2UpIG5vZXhjZXB0OgorKyAgICBj ZGVmIF9tYXRyaXgoc2VsZiwgQ29tbXV0YXRpdmVSaW5nIGJhc2UpOgorICAgICAgICAgciIiIgor ICAgICAgICAgUmV0dXJuIHRoZSBtYXRyaXggb2YgdGhlIG11bHRpcGxpY2F0aW9uIGJ5IHRoaXMg ZWxlbWVudCAoaW4KKyAgICAgICAgIHRoZSBiYXNpcyBvdXRwdXQgYnkgOm1ldGg6YGJhc2lzX292 ZXJgKS4KK0BAIC0xMjg5LDcgKzEyODksNyBAQCBjZGVmIGNsYXNzIFJpbmdFeHRlbnNpb25XaXRo QmFzaXNFbGVtZW50KFJpbmdFeHRlbnNpb25FbGVtZW50KToKKyAgICAgICAgICAgICByYWlzZSBW YWx1ZUVycm9yKCJ0aGUgZXh0ZW5zaW9uIGlzIG5vdCBmaW5pdGUgZnJlZSIpCisgICAgICAgICBy ZXR1cm4gc2VsZi5fdHJhY2UoYmFzZSkKKyAKKy0gICAgY2RlZiBfdHJhY2Uoc2VsZiwgQ29tbXV0 YXRpdmVSaW5nIGJhc2UpIG5vZXhjZXB0OgorKyAgICBjZGVmIF90cmFjZShzZWxmLCBDb21tdXRh dGl2ZVJpbmcgYmFzZSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHRyYWNl IG9mIHRoaXMgZWxlbWVudCBvdmVyIGBgYmFzZWBgLgorIAorQEAgLTEzODIsNyArMTM4Miw3IEBA IGNkZWYgY2xhc3MgUmluZ0V4dGVuc2lvbldpdGhCYXNpc0VsZW1lbnQoUmluZ0V4dGVuc2lvbkVs ZW1lbnQpOgorICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoInRoZSBleHRlbnNpb24gaXMg bm90IGZpbml0ZSBmcmVlIikKKyAgICAgICAgIHJldHVybiBzZWxmLl9ub3JtKGJhc2UpCisgCist ICAgIGNkZWYgX25vcm0oc2VsZiwgQ29tbXV0YXRpdmVSaW5nIGJhc2UpIG5vZXhjZXB0OgorKyAg ICBjZGVmIF9ub3JtKHNlbGYsIENvbW11dGF0aXZlUmluZyBiYXNlKToKKyAgICAgICAgIHIiIiIK KyAgICAgICAgIFJldHVybiB0aGUgbm9ybSBvZiB0aGlzIGVsZW1lbnQgb3ZlciBgYGJhc2VgYC4K KyAKK0BAIC0xNDg2LDcgKzE0ODYsNyBAQCBjZGVmIGNsYXNzIFJpbmdFeHRlbnNpb25XaXRoQmFz aXNFbGVtZW50KFJpbmdFeHRlbnNpb25FbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAg cmV0dXJuIHNlbGYubWF0cml4KGJhc2UpLmNoYXJwb2x5KHZhcikKKyAKKy0gICAgY3BkZWYgbWlu cG9seShzZWxmLCBiYXNlPU5vbmUsIHZhcj0neCcpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBtaW5w b2x5KHNlbGYsIGJhc2U9Tm9uZSwgdmFyPSd4Jyk6CisgICAgICAgICByIiIiCisgICAgICAgICBS ZXR1cm4gdGhlIG1pbmltYWwgcG9seW5vbWlhbCBvZiB0aGlzIGVsZW1lbnQgb3ZlciBgYGJhc2Vg YC4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9yaW5nX2V4dGVuc2lvbl9tb3JwaGlz bS5weGQgYi9zcmMvc2FnZS9yaW5ncy9yaW5nX2V4dGVuc2lvbl9tb3JwaGlzbS5weGQKK2luZGV4 IGYzZDg4ZWMzODkxLi5hMDJhZmYzMWE1MCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3Jp bmdfZXh0ZW5zaW9uX21vcnBoaXNtLnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvcmluZ19leHRl bnNpb25fbW9ycGhpc20ucHhkCitAQCAtNCw3ICs0LDcgQEAgZnJvbSBzYWdlLnJpbmdzLm1vcnBo aXNtIGNpbXBvcnQgUmluZ01hcAorIGZyb20gc2FnZS5yaW5ncy5yaW5nX2V4dGVuc2lvbl9lbGVt ZW50IGNpbXBvcnQgUmluZ0V4dGVuc2lvbkVsZW1lbnQKKyAKKyAKKy1jZGVmIGFyZV9lcXVhbF9t b3JwaGlzbXMoZiwgZykgbm9leGNlcHQKKytjZGVmIGFyZV9lcXVhbF9tb3JwaGlzbXMoZiwgZykK KyAKKyAKKyBjZGVmIGNsYXNzIFJpbmdFeHRlbnNpb25Ib21vbW9ycGhpc20oUmluZ01hcCk6CitA QCAtMzEsNCArMzEsNCBAQCBjZGVmIGNsYXNzIE1hcFJlbGF0aXZlUmluZ1RvRnJlZU1vZHVsZShN YXApOgorICAgICBjZGVmIE1hcCBfakwKKyAgICAgY2RlZiBfbWF0cml4CisgCistICAgIGNkZWYg bGlzdCBiYWNrZW5kX2NvZWZmaWNpZW50cyhzZWxmLCBSaW5nRXh0ZW5zaW9uRWxlbWVudCB4KSBu b2V4Y2VwdAorKyAgICBjZGVmIGxpc3QgYmFja2VuZF9jb2VmZmljaWVudHMoc2VsZiwgUmluZ0V4 dGVuc2lvbkVsZW1lbnQgeCkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9yaW5nX2V4dGVu c2lvbl9tb3JwaGlzbS5weXggYi9zcmMvc2FnZS9yaW5ncy9yaW5nX2V4dGVuc2lvbl9tb3JwaGlz bS5weXgKK2luZGV4IDRkNzhlZTFjNWQwLi5mODYxZDAxNWEzNSAxMDA2NDQKKy0tLSBhL3NyYy9z YWdlL3JpbmdzL3JpbmdfZXh0ZW5zaW9uX21vcnBoaXNtLnB5eAorKysrIGIvc3JjL3NhZ2Uvcmlu Z3MvcmluZ19leHRlbnNpb25fbW9ycGhpc20ucHl4CitAQCAtMjksNyArMjksNyBAQCBmcm9tIHNh Z2UucmluZ3MucmluZ19leHRlbnNpb25fY29udmVyc2lvbiBjaW1wb3J0IGJhY2tlbmRfcGFyZW50 LCBiYWNrZW5kX2VsZW1lbgorIAorIAorICMgSSBkb24ndCB0cnVzdCB0aGUgb3BlcmF0b3IgPT0K Ky1jZGVmIGFyZV9lcXVhbF9tb3JwaGlzbXMoZiwgZykgbm9leGNlcHQ6CisrY2RlZiBhcmVfZXF1 YWxfbW9ycGhpc21zKGYsIGcpOgorICAgICByIiIiCisgICAgIFJldHVybiBgYFRydWVgYCBpZiBg YGZgYCBhbmQgYGBnYGAgY29pbmNpZGUgb24gdGhlCisgICAgIGdlbmVyYXRvcnMgb2YgdGhlIGRv bWFpbiwgYGBGYWxzZWBgIG90aGVyd2lzZS4KK0BAIC0yMjcsNyArMjI3LDcgQEAgY2RlZiBjbGFz cyBSaW5nRXh0ZW5zaW9uSG9tb21vcnBoaXNtKFJpbmdNYXApOgorICAgICAgICAgIiIiCisgICAg ICAgICByZXR1cm4gIlJpbmciCisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KToKKyAgICAgICAg IHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgaW1hZ2Ugb2YgYGB4YGAgdW5kZXIgdGhpcyBtb3Jw aGlzbS4KKyAKK0BAIC0zMTgsNyArMzE4LDcgQEAgY2RlZiBjbGFzcyBSaW5nRXh0ZW5zaW9uSG9t b21vcnBoaXNtKFJpbmdNYXApOgorICAgICAgICAgICAgIGJhc2VfbWFwID0gYmFzZV9tYXAuZXh0 ZW5kX2NvZG9tYWluKHNlbGYuY29kb21haW4oKSkKKyAgICAgICAgIHJldHVybiBiYXNlX21hcAor IAorLSAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgb3RoZXIsIGludCBvcCkgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCBvdGhlciwgaW50IG9wKToKKyAgICAgICAgIHIiIiIK KyAgICAgICAgIENvbXBhcmUgdGhpcyBlbGVtZW50IHdpdGggYGBvdGhlcmBgIGFjY29yZGluZyB0 bworICAgICAgICAgdGhlIHJpY2ggY29tcGFyaXNvbiBvcGVyYXRvciBgYG9wYGAuCitAQCAtNDk0 LDcgKzQ5NCw3IEBAIGNkZWYgY2xhc3MgUmluZ0V4dGVuc2lvbkhvbW9tb3JwaGlzbShSaW5nTWFw KToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmV0dXJuIGJhY2tlbmQKKyAKKy0gICAg Y2RlZiBfdXBkYXRlX3Nsb3RzKHNlbGYsIGRpY3QgX3Nsb3RzKSBub2V4Y2VwdDoKKysgICAgY2Rl ZiBfdXBkYXRlX3Nsb3RzKHNlbGYsIGRpY3QgX3Nsb3RzKToKKyAgICAgICAgICIiIgorICAgICAg ICAgSGVscGVyIGZ1bmN0aW9uIGZvciBjb3B5aW5nIGFuZCBwaWNrbGluZy4KKyAKK0BAIC01MTIs NyArNTEyLDcgQEAgY2RlZiBjbGFzcyBSaW5nRXh0ZW5zaW9uSG9tb21vcnBoaXNtKFJpbmdNYXAp OgorICAgICAgICAgc2VsZi5fYmFja2VuZCA9IF9zbG90c1snX2JhY2tlbmQnXQorICAgICAgICAg UmluZ01hcC5fdXBkYXRlX3Nsb3RzKHNlbGYsIF9zbG90cykKKyAKKy0gICAgY2RlZiBkaWN0IF9l eHRyYV9zbG90cyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBkaWN0IF9leHRyYV9zbG90cyhz ZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgSGVscGVyIGZ1bmN0aW9uIGZvciBjb3B5aW5n IGFuZCBwaWNrbGluZy4KKyAKK0BAIC01OTgsNyArNTk4LDcgQEAgY2RlZiBjbGFzcyBSaW5nRXh0 ZW5zaW9uQmFja2VuZElzb21vcnBoaXNtKFJpbmdFeHRlbnNpb25Ib21vbW9ycGhpc20pOgorICAg ICAgICAgIiIiCisgICAgICAgICByZXR1cm4gIiIKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2Fs bF8oc2VsZiwgeCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgp OgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBpbWFnZSBvZiBgYHhgYCB1bmRl ciB0aGlzIG1vcnBoaXNtLgorIAorQEAgLTY4OCw3ICs2ODgsNyBAQCBjZGVmIGNsYXNzIFJpbmdF eHRlbnNpb25CYWNrZW5kUmV2ZXJzZUlzb21vcnBoaXNtKFJpbmdFeHRlbnNpb25Ib21vbW9ycGhp c20pOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gIiIKKyAKKy0gICAgY3BkZWYgRWxl bWVudCBfY2FsbF8oc2VsZiwgeCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxf KHNlbGYsIHgpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBpbWFnZSBvZiBg YHhgYCB1bmRlciB0aGlzIG1vcnBoaXNtLgorIAorQEAgLTc3MSw3ICs3NzEsNyBAQCBjZGVmIGNs YXNzIE1hcEZyZWVNb2R1bGVUb1JlbGF0aXZlUmluZyhNYXApOgorICAgICAgICAgIiIiCisgICAg ICAgICByZXR1cm4gVHJ1ZQorIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB2KSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgdik6CisgICAgICAgICBy IiIiCisgICAgICAgICBSZXR1cm4gdGhlIGltYWdlIG9mIGBgeGBgIHVuZGVyIHRoaXMgbW9ycGhp c20uCisgCitAQCAtODgwLDcgKzg4MCw3IEBAIGNkZWYgY2xhc3MgTWFwUmVsYXRpdmVSaW5nVG9G cmVlTW9kdWxlKE1hcCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBUcnVlCisgCist ICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBF bGVtZW50IF9jYWxsXyhzZWxmLCB4KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0 aGUgaW1hZ2Ugb2YgYGB4YGAgdW5kZXIgdGhpcyBtb3JwaGlzbS4KKyAKK0BAIC04OTgsNyArODk4 LDcgQEAgY2RlZiBjbGFzcyBNYXBSZWxhdGl2ZVJpbmdUb0ZyZWVNb2R1bGUoTWFwKToKKyAgICAg ICAgIGNvZWZmcyA9IHNlbGYuYmFja2VuZF9jb2VmZmljaWVudHMoeCkKKyAgICAgICAgIHJldHVy biBzZWxmLmNvZG9tYWluKCkoY29lZmZzKQorIAorLSAgICBjZGVmIGxpc3QgYmFja2VuZF9jb2Vm ZmljaWVudHMoc2VsZiwgUmluZ0V4dGVuc2lvbkVsZW1lbnQgeCkgbm9leGNlcHQ6CisrICAgIGNk ZWYgbGlzdCBiYWNrZW5kX2NvZWZmaWNpZW50cyhzZWxmLCBSaW5nRXh0ZW5zaW9uRWxlbWVudCB4 KToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgY29vcmRpbmF0ZXMgb2YgdGhl IGltYWdlIG9mIGBgeGBgCisgICAgICAgICBhcyBlbGVtZW50cyBvZiB0aGUgYmFja2VuZCByaW5n LgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3NlbWlyaW5ncy90cm9waWNhbF9zZW1pcmlu Zy5weXggYi9zcmMvc2FnZS9yaW5ncy9zZW1pcmluZ3MvdHJvcGljYWxfc2VtaXJpbmcucHl4Citp bmRleCAzZjI1ZmI4YWY5OC4uMjkyMjI5OGUyODYgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5n cy9zZW1pcmluZ3MvdHJvcGljYWxfc2VtaXJpbmcucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy9z ZW1pcmluZ3MvdHJvcGljYWxfc2VtaXJpbmcucHl4CitAQCAtMzgsNyArMzgsNyBAQCBjZGVmIGNs YXNzIFRyb3BpY2FsU2VtaXJpbmdFbGVtZW50KEVsZW1lbnQpOgorICAgICAiIiIKKyAgICAgY2Rl ZiBNb2R1bGVFbGVtZW50IF92YWwKKyAKKy0gICAgY2RlZiBUcm9waWNhbFNlbWlyaW5nRWxlbWVu dCBfbmV3KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIFRyb3BpY2FsU2VtaXJpbmdFbGVtZW50 IF9uZXcoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBhIG5ldyB0cm9waWNh bCBzZW1pcmluZyBlbGVtZW50IHdpdGggcGFyZW50IGBgc2VsZmAuCisgICAgICAgICAiIiIKK0BA IC0xMzIsNyArMTMyLDcgQEAgY2RlZiBjbGFzcyBUcm9waWNhbFNlbWlyaW5nRWxlbWVudChFbGVt ZW50KToKKyAgICAgICAgIHJldHVybiBoYXNoKHNlbGYuX3ZhbCkKKyAKKyAgICAgIyBDb21wYXJp c29ucworLSAgICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCkgbm9leGNlcHQ6 CisrICAgIGNwZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdodCwgaW50IG9wKToKKyAgICAgICAgIHIi IiIKKyAgICAgICAgIFJldHVybiB0aGUgc3RhbmRhcmQgY29tcGFyaXNvbiBvZiBgYGxlZnRgYCBh bmQgYGByaWdodGBgLgorIAorQEAgLTIwNiw3ICsyMDYsNyBAQCBjZGVmIGNsYXNzIFRyb3BpY2Fs U2VtaXJpbmdFbGVtZW50KEVsZW1lbnQpOgorICAgICAgICAgICAgIHJldHVybiByaWNoX3RvX2Jv b2wob3AsIDEpCisgICAgICAgICByZXR1cm4gcmljaF90b19ib29sKG9wLCAwKQorIAorLSAgICBj cGRlZiBfYWRkXyhsZWZ0LCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKGxlZnQs IHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgQWRkIGBgbGVmdGBgIHRvIGBgcmlnaHRg YC4KKyAKK0BAIC0yNzQsNyArMjc0LDcgQEAgY2RlZiBjbGFzcyBUcm9waWNhbFNlbWlyaW5nRWxl bWVudChFbGVtZW50KToKKyAgICAgICAgICAgICByZXR1cm4gc2VsZgorICAgICAgICAgcmFpc2Ug QXJpdGhtZXRpY0Vycm9yKCJjYW5ub3QgbmVnYXRlIGFueSBub24taW5maW5pdGUgZWxlbWVudCIp CisgCistICAgIGNwZGVmIF9tdWxfKGxlZnQsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X211bF8obGVmdCwgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBNdWx0aXBseSBgYGxl ZnRgYCBhbmQgYGByaWdodGBgLgorIAorQEAgLTMwMCw3ICszMDAsNyBAQCBjZGVmIGNsYXNzIFRy b3BpY2FsU2VtaXJpbmdFbGVtZW50KEVsZW1lbnQpOgorICAgICAgICAgeC5fdmFsID0gc2VsZi5f dmFsICsgcmhzLl92YWwKKyAgICAgICAgIHJldHVybiB4CisgCistICAgIGNwZGVmIF9kaXZfKGxl ZnQsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2Rpdl8obGVmdCwgcmlnaHQpOgorICAg ICAgICAgIiIiCisgICAgICAgICBEaXZpZGUgYGBsZWZ0YGAgYnkgYGByaWdodGBgLgorIAorQEAg LTM5OCw3ICszOTgsNyBAQCBjZGVmIGNsYXNzIFRyb3BpY2FsU2VtaXJpbmdFbGVtZW50KEVsZW1l bnQpOgorICAgICAgICAgZnJvbSBzYWdlLnJpbmdzLmluZmluaXR5IGltcG9ydCBpbmZpbml0eQor ICAgICAgICAgcmV0dXJuIGluZmluaXR5CisgCistICAgIGNwZGVmIE1vZHVsZUVsZW1lbnQgbGlm dChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgTW9kdWxlRWxlbWVudCBsaWZ0KHNlbGYpOgor ICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHZhbHVlIG9mIGBgc2VsZmBgIGxpZnRl ZCB0byB0aGUgYmFzZS4KKyAKK0BAIC02NTYsNyArNjU2LDcgQEAgY2RlZiBjbGFzcyBUcm9waWNh bFRvVHJvcGljYWwoTWFwKToKKyAgICAgTWFwIGZyb20gdGhlIHRyb3BpY2FsIHNlbWlyaW5nIHRv IGl0c2VsZiAocG9zc2libHkgd2l0aCBkaWZmZXJlbnQgYmFzZXMpLgorICAgICBVc2VkIGluIGNv ZXJjaW9uLgorICAgICAiIiIKKy0gICAgY3BkZWYgVHJvcGljYWxTZW1pcmluZ0VsZW1lbnQgX2Nh bGxfKHNlbGYsIHgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBUcm9waWNhbFNlbWlyaW5nRWxlbWVu dCBfY2FsbF8oc2VsZiwgeCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAK K2RpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy90YXRlX2FsZ2VicmFfZWxlbWVudC5weGQgYi9z cmMvc2FnZS9yaW5ncy90YXRlX2FsZ2VicmFfZWxlbWVudC5weGQKK2luZGV4IDVjNTI5ODI1ZTRj Li4zY2FmZTMzMGZiMCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3RhdGVfYWxnZWJyYV9l bGVtZW50LnB4ZAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvdGF0ZV9hbGdlYnJhX2VsZW1lbnQucHhk CitAQCAtMTMsMTggKzEzLDE4IEBAIGNkZWYgY2xhc3MgVGF0ZUFsZ2VicmFUZXJtKE1vbm9pZEVs ZW1lbnQpOgorICAgICBjZGVmIHBBZGljR2VuZXJpY0VsZW1lbnQgX2NvZWZmCisgICAgIGNkZWYg RVR1cGxlIF9leHBvbmVudAorIAorLSAgICBjcGRlZiBfbXVsXyhzZWxmLCBvdGhlcikgbm9leGNl cHQKKy0gICAgY2RlZiBUYXRlQWxnZWJyYVRlcm0gX2Zsb29yZGl2X2Moc2VsZiwgVGF0ZUFsZ2Vi cmFUZXJtIG90aGVyKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfZmxvb3JkaXZfKHNlbGYsIG90aGVy KSBub2V4Y2VwdAorKyAgICBjcGRlZiBfbXVsXyhzZWxmLCBvdGhlcikKKysgICAgY2RlZiBUYXRl QWxnZWJyYVRlcm0gX2Zsb29yZGl2X2Moc2VsZiwgVGF0ZUFsZ2VicmFUZXJtIG90aGVyKQorKyAg ICBjcGRlZiBfZmxvb3JkaXZfKHNlbGYsIG90aGVyKQorIAorLSAgICBjZGVmIFRhdGVBbGdlYnJh VGVybSBfbmV3X2Moc2VsZikgbm9leGNlcHQKKysgICAgY2RlZiBUYXRlQWxnZWJyYVRlcm0gX25l d19jKHNlbGYpCisgICAgIGNkZWYgbG9uZyBfdmFsdWF0aW9uX2Moc2VsZikgbm9leGNlcHQKKyAg ICAgY2RlZiBsb25nIF9jbXBfYyhzZWxmLCBUYXRlQWxnZWJyYVRlcm0gb3RoZXIpIGV4Y2VwdD8g MzAwCistICAgIGNkZWYgRWxlbWVudCBfY2FsbF9jKHNlbGYsIGxpc3QgYXJnKSBub2V4Y2VwdAor LSAgICBjcGRlZiBUYXRlQWxnZWJyYVRlcm0gbW9ub21pYWwoc2VsZikgbm9leGNlcHQKKy0gICAg Y3BkZWYgVGF0ZUFsZ2VicmFUZXJtIG1vbmljKHNlbGYpIG5vZXhjZXB0CistICAgIGNkZWYgVGF0 ZUFsZ2VicmFUZXJtIF9nY2RfYyhzZWxmLCBUYXRlQWxnZWJyYVRlcm0gb3RoZXIpIG5vZXhjZXB0 CistICAgIGNkZWYgVGF0ZUFsZ2VicmFUZXJtIF9sY21fYyhzZWxmLCBUYXRlQWxnZWJyYVRlcm0g b3RoZXIpIG5vZXhjZXB0CisrICAgIGNkZWYgRWxlbWVudCBfY2FsbF9jKHNlbGYsIGxpc3QgYXJn KQorKyAgICBjcGRlZiBUYXRlQWxnZWJyYVRlcm0gbW9ub21pYWwoc2VsZikKKysgICAgY3BkZWYg VGF0ZUFsZ2VicmFUZXJtIG1vbmljKHNlbGYpCisrICAgIGNkZWYgVGF0ZUFsZ2VicmFUZXJtIF9n Y2RfYyhzZWxmLCBUYXRlQWxnZWJyYVRlcm0gb3RoZXIpCisrICAgIGNkZWYgVGF0ZUFsZ2VicmFU ZXJtIF9sY21fYyhzZWxmLCBUYXRlQWxnZWJyYVRlcm0gb3RoZXIpCisgICAgIGNkZWYgYmludCBf ZGl2aWRlc19jKHNlbGYsIFRhdGVBbGdlYnJhVGVybSBvdGhlciwgYmludCBpbnRlZ3JhbCkgbm9l eGNlcHQKKyAKKyAKK0BAIC0zNSwxNSArMzUsMTUgQEAgY2RlZiBjbGFzcyBUYXRlQWxnZWJyYUVs ZW1lbnQoQ29tbXV0YXRpdmVBbGdlYnJhRWxlbWVudCk6CisgICAgIGNkZWYgbGlzdCBfdGVybXNf bm9uemVybworICAgICBjZGVmIGJpbnQgX2lzX25vcm1hbGl6ZWQKKyAKKy0gICAgY2RlZiBfbm9y bWFsaXplKHNlbGYpIG5vZXhjZXB0CistICAgIGNkZWYgVGF0ZUFsZ2VicmFFbGVtZW50IF9uZXdf YyhzZWxmKSBub2V4Y2VwdAorLSAgICBjZGVmIGxpc3QgX3Rlcm1zX2Moc2VsZiwgYmludCBpbmNs dWRlX3plcm89Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgdmFsdWF0aW9uKHNlbGYpIG5vZXhjZXB0 CistICAgIGNkZWYgVGF0ZUFsZ2VicmFFbGVtZW50IF90ZXJtX211bF9jKHNlbGYsIFRhdGVBbGdl YnJhVGVybSB0ZXJtKSBub2V4Y2VwdAorLSAgICBjZGVmIFRhdGVBbGdlYnJhRWxlbWVudCBfcG9z aXRpdmVfbHNoaWZ0X2Moc2VsZiwgbikgbm9leGNlcHQKKy0gICAgY2RlZiBUYXRlQWxnZWJyYUVs ZW1lbnQgX2xzaGlmdF9jKHNlbGYsIG4pIG5vZXhjZXB0CistICAgIGNwZGVmIFRhdGVBbGdlYnJh RWxlbWVudCBtb25pYyhzZWxmKSBub2V4Y2VwdAorLSAgICBjZGVmIF9xdW9fcmVtX2Moc2VsZiwg bGlzdCBkaXZpc29ycywgYmludCBxdW8sIGJpbnQgcmVtLCBiaW50IGludGVncmFsKSBub2V4Y2Vw dAorLSAgICBjZGVmIF9xdW9fcmVtX2NoZWNrKHNlbGYsIGRpdmlzb3JzLCBiaW50IHF1bywgYmlu dCByZW0pIG5vZXhjZXB0CistICAgIGNkZWYgVGF0ZUFsZ2VicmFFbGVtZW50IF9TcG9seV9jKHNl bGYsIFRhdGVBbGdlYnJhRWxlbWVudCBvdGhlcikgbm9leGNlcHQKKysgICAgY2RlZiBfbm9ybWFs aXplKHNlbGYpCisrICAgIGNkZWYgVGF0ZUFsZ2VicmFFbGVtZW50IF9uZXdfYyhzZWxmKQorKyAg ICBjZGVmIGxpc3QgX3Rlcm1zX2Moc2VsZiwgYmludCBpbmNsdWRlX3plcm89KikKKysgICAgY3Bk ZWYgdmFsdWF0aW9uKHNlbGYpCisrICAgIGNkZWYgVGF0ZUFsZ2VicmFFbGVtZW50IF90ZXJtX211 bF9jKHNlbGYsIFRhdGVBbGdlYnJhVGVybSB0ZXJtKQorKyAgICBjZGVmIFRhdGVBbGdlYnJhRWxl bWVudCBfcG9zaXRpdmVfbHNoaWZ0X2Moc2VsZiwgbikKKysgICAgY2RlZiBUYXRlQWxnZWJyYUVs ZW1lbnQgX2xzaGlmdF9jKHNlbGYsIG4pCisrICAgIGNwZGVmIFRhdGVBbGdlYnJhRWxlbWVudCBt b25pYyhzZWxmKQorKyAgICBjZGVmIF9xdW9fcmVtX2Moc2VsZiwgbGlzdCBkaXZpc29ycywgYmlu dCBxdW8sIGJpbnQgcmVtLCBiaW50IGludGVncmFsKQorKyAgICBjZGVmIF9xdW9fcmVtX2NoZWNr KHNlbGYsIGRpdmlzb3JzLCBiaW50IHF1bywgYmludCByZW0pCisrICAgIGNkZWYgVGF0ZUFsZ2Vi cmFFbGVtZW50IF9TcG9seV9jKHNlbGYsIFRhdGVBbGdlYnJhRWxlbWVudCBvdGhlcikKKyAKK2Rp ZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy90YXRlX2FsZ2VicmFfZWxlbWVudC5weXggYi9zcmMv c2FnZS9yaW5ncy90YXRlX2FsZ2VicmFfZWxlbWVudC5weXgKK2luZGV4IGU4MTJhMGE3ZjVmLi4y NDkyNzRlMTQ3YyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3JpbmdzL3RhdGVfYWxnZWJyYV9lbGVt ZW50LnB5eAorKysrIGIvc3JjL3NhZ2UvcmluZ3MvdGF0ZV9hbGdlYnJhX2VsZW1lbnQucHl4CitA QCAtMTY3LDcgKzE2Nyw3IEBAIGNkZWYgY2xhc3MgVGF0ZUFsZ2VicmFUZXJtKE1vbm9pZEVsZW1l bnQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gaGFzaCgoc2VsZi5fY29lZmYsIHNl bGYuX2V4cG9uZW50KSkKKyAKKy0gICAgY2RlZiBUYXRlQWxnZWJyYVRlcm0gX25ld19jKHNlbGYp IG5vZXhjZXB0OgorKyAgICBjZGVmIFRhdGVBbGdlYnJhVGVybSBfbmV3X2Moc2VsZik6CisgICAg ICAgICByIiIiCisgICAgICAgICBGYXN0IGNyZWF0aW9uIG9mIGEgVGF0ZSBhbGdlYnJhIHRlcm0u CisgCitAQCAtMzA5LDcgKzMwOSw3IEBAIGNkZWYgY2xhc3MgVGF0ZUFsZ2VicmFUZXJtKE1vbm9p ZEVsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fZXhwb25lbnQK KyAKKy0gICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBf bXVsXyhzZWxmLCBvdGhlcik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHBy b2R1Y3Qgb2YgdGhpcyBUYXRlIGFsZ2VicmEgdGVybSB3aXRoIGBgb3RoZXJgYC4KKyAKK0BAIC0z ODUsNyArMzg1LDcgQEAgY2RlZiBjbGFzcyBUYXRlQWxnZWJyYVRlcm0oTW9ub2lkRWxlbWVudCk6 CisgICAgICAgICAgICAgYyA9IChrcyA+IGtvKSAtIChrcyA8IGtvKQorICAgICAgICAgcmV0dXJu IGMKKyAKKy0gICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIG90aGVyLCBpbnQgb3ApIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBfcmljaGNtcF8oc2VsZiwgb3RoZXIsIGludCBvcCk6CisgICAgICAgICBy IiIiCisgICAgICAgICBDb21wYXJlIHRoZSBUYXRlIGFsZ2VicmEgdGVybSB3aXRoIGBgb3RoZXJg YCBhY2NvcmRpbmcgdG8KKyAgICAgICAgIHRoZSByaWNoIGNvbXBhcmlzb24gb3BlcmF0b3IgYGBv cGBgLgorQEAgLTQ0Niw3ICs0NDYsNyBAQCBjZGVmIGNsYXNzIFRhdGVBbGdlYnJhVGVybShNb25v aWRFbGVtZW50KToKKyAgICAgICAgIGMgPSAoPFRhdGVBbGdlYnJhVGVybT5zZWxmKS5fY21wX2Mo PFRhdGVBbGdlYnJhVGVybT5vdGhlcikKKyAgICAgICAgIHJldHVybiByaWNoX3RvX2Jvb2xfc2du KG9wLCBjKQorIAorLSAgICBjcGRlZiBUYXRlQWxnZWJyYVRlcm0gbW9ub21pYWwoc2VsZikgbm9l eGNlcHQ6CisrICAgIGNwZGVmIFRhdGVBbGdlYnJhVGVybSBtb25vbWlhbChzZWxmKToKKyAgICAg ICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGlzIHRlcm0gZGl2aWRlZCBieSBpdHMgY29lZmZp Y2llbnQuCisgCitAQCAtNDY2LDcgKzQ2Niw3IEBAIGNkZWYgY2xhc3MgVGF0ZUFsZ2VicmFUZXJt KE1vbm9pZEVsZW1lbnQpOgorICAgICAgICAgYW5zLl9leHBvbmVudCA9IHNlbGYuX2V4cG9uZW50 CisgICAgICAgICByZXR1cm4gYW5zCisgCistICAgIGNwZGVmIFRhdGVBbGdlYnJhVGVybSBtb25p YyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgVGF0ZUFsZ2VicmFUZXJtIG1vbmljKHNlbGYp OgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoaXMgdGVybSBub3JtYWxpemVkIHNv IHRoYXQgaXQgaGFzIHZhbHVhdGlvbiAwCisgICAgICAgICBhbmQgaXRzIGNvZWZmaWNpZW50IGlz IGEgcG93ZXIgb2YgdGhlIHVuaWZvcm1pemVyLgorQEAgLTU1Nyw3ICs1NTcsNyBAQCBjZGVmIGNs YXNzIFRhdGVBbGdlYnJhVGVybShNb25vaWRFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAg ICAgcmV0dXJuICg8cEFkaWNHZW5lcmljRWxlbWVudD5zZWxmLl9jb2VmZikudmFsdWF0aW9uX2Mo KSAtIDxsb25nPnNlbGYuX2V4cG9uZW50LmRvdHByb2Qoc2VsZi5fcGFyZW50Ll9sb2dfcmFkaWkp CisgCistICAgIGNkZWYgRWxlbWVudCBfY2FsbF9jKHNlbGYsIGxpc3QgYXJnKSBub2V4Y2VwdDoK KysgICAgY2RlZiBFbGVtZW50IF9jYWxsX2Moc2VsZiwgbGlzdCBhcmcpOgorICAgICAgICAgIiIi CisgICAgICAgICBSZXR1cm4gdGhpcyB0ZXJtIGV2YWx1YXRlZCBhdCBgYGFyZ3NgYC4KKyAKK0BA IC03MjUsNyArNzI1LDcgQEAgY2RlZiBjbGFzcyBUYXRlQWxnZWJyYVRlcm0oTW9ub2lkRWxlbWVu dCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9nY2RfYyhvdGhlcikKKyAK Ky0gICAgY2RlZiBUYXRlQWxnZWJyYVRlcm0gX2djZF9jKHNlbGYsIFRhdGVBbGdlYnJhVGVybSBv dGhlcikgbm9leGNlcHQ6CisrICAgIGNkZWYgVGF0ZUFsZ2VicmFUZXJtIF9nY2RfYyhzZWxmLCBU YXRlQWxnZWJyYVRlcm0gb3RoZXIpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRo ZSBncmVhdGVzdCBjb21tb24gZGl2aXNvciBvZiB0aGlzIHRlcm0gYW5kIGBgb3RoZXJgYC4KKyAK K0BAIC03OTUsNyArNzk1LDcgQEAgY2RlZiBjbGFzcyBUYXRlQWxnZWJyYVRlcm0oTW9ub2lkRWxl bWVudCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9sY21fYyhvdGhlcikK KyAKKy0gICAgY2RlZiBUYXRlQWxnZWJyYVRlcm0gX2xjbV9jKHNlbGYsIFRhdGVBbGdlYnJhVGVy bSBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNkZWYgVGF0ZUFsZ2VicmFUZXJtIF9sY21fYyhzZWxm LCBUYXRlQWxnZWJyYVRlcm0gb3RoZXIpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJu IHRoZSBsZWFzdCBjb21tb24gbXVsdGlwbGUgb2YgdHdvIFRhdGUgdGVybXMuCisgCitAQCAtOTgw LDcgKzk4MCw3IEBAIGNkZWYgY2xhc3MgVGF0ZUFsZ2VicmFUZXJtKE1vbm9pZEVsZW1lbnQpOgor ICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgIHJldHVybiBUcnVlCisgCist ICAgIGNwZGVmIF9mbG9vcmRpdl8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBf Zmxvb3JkaXZfKHNlbGYsIG90aGVyKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0 aGUgcmVzdWx0IG9mIHRoZSBleGFjdCBkaXZpc2lvbiBvZiB0aGlzIHRlcm0gYnkgYGBvdGhlcmBg LgorIAorQEAgLTEwMTMsNyArMTAxMyw3IEBAIGNkZWYgY2xhc3MgVGF0ZUFsZ2VicmFUZXJtKE1v bm9pZEVsZW1lbnQpOgorICAgICAgICAgcmV0dXJuICg8VGF0ZUFsZ2VicmFUZXJtPnNlbGYpLl9m bG9vcmRpdl9jKDxUYXRlQWxnZWJyYVRlcm0+b3RoZXIpCisgCisgCistICAgIGNkZWYgVGF0ZUFs Z2VicmFUZXJtIF9mbG9vcmRpdl9jKHNlbGYsIFRhdGVBbGdlYnJhVGVybSBvdGhlcikgbm9leGNl cHQ6CisrICAgIGNkZWYgVGF0ZUFsZ2VicmFUZXJtIF9mbG9vcmRpdl9jKHNlbGYsIFRhdGVBbGdl YnJhVGVybSBvdGhlcik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHJlc3Vs dCBvZiB0aGUgZXhhY3QgZGl2aXNpb24gb2YgdGhpcyB0ZXJtIGJ5IGBgb3RoZXJgYC4KKyAKK0BA IC0xMTIwLDcgKzExMjAsNyBAQCBjZGVmIGNsYXNzIFRhdGVBbGdlYnJhRWxlbWVudChDb21tdXRh dGl2ZUFsZ2VicmFFbGVtZW50KToKKyAgICAgICAgIGlmIG5vdCBwYXJlbnQuYmFzZV9yaW5nKCku aXNfZmllbGQoKSBhbmQgc2VsZi52YWx1YXRpb24oKSA8IDA6CisgICAgICAgICAgICAgcmFpc2Ug VmFsdWVFcnJvcigidGhpcyBzZXJpZXMgaXMgbm90IGluIHRoZSByaW5nIG9mIGludGVnZXJzIikK KyAKKy0gICAgY2RlZiBUYXRlQWxnZWJyYUVsZW1lbnQgX25ld19jKHNlbGYpIG5vZXhjZXB0Ogor KyAgICBjZGVmIFRhdGVBbGdlYnJhRWxlbWVudCBfbmV3X2Moc2VsZik6CisgICAgICAgICAiIiIK KyAgICAgICAgIEZhc3QgY3JlYXRpb24gb2YgYSBuZXcgVGF0ZSBzZXJpZXMuCisgCitAQCAtMTEz OCw3ICsxMTM4LDcgQEAgY2RlZiBjbGFzcyBUYXRlQWxnZWJyYUVsZW1lbnQoQ29tbXV0YXRpdmVB bGdlYnJhRWxlbWVudCk6CisgICAgICAgICBhbnMuX3Rlcm1zID0gYW5zLl90ZXJtc19ub256ZXJv ID0gTm9uZQorICAgICAgICAgcmV0dXJuIGFucworIAorLSAgICBjZGVmIF9ub3JtYWxpemUoc2Vs Zikgbm9leGNlcHQ6CisrICAgIGNkZWYgX25vcm1hbGl6ZShzZWxmKToKKyAgICAgICAgICIiIgor ICAgICAgICAgTm9ybWFsaXplIHRoaXMgc2VyaWVzLgorIAorQEAgLTEyNzksNyArMTI3OSw3IEBA IGNkZWYgY2xhc3MgVGF0ZUFsZ2VicmFFbGVtZW50KENvbW11dGF0aXZlQWxnZWJyYUVsZW1lbnQp OgorICAgICAgICAgICAgICAgICBzICs9ICJPXFxsZWZ0KCVzXnslc30gJXNcXHJpZ2h0KSIgJSAo c2VsZi5fcGFyZW50Ll91bmlmb3JtaXplcl9sYXRleCwgc2VsZi5fcHJlYywgc2VsZi5fcGFyZW50 LmludGVnZXJfcmluZygpLl9sYXRleF8oKSkKKyAgICAgICAgIHJldHVybiBzCisgCistICAgIGNw ZGVmIF9hZGRfKHNlbGYsIG90aGVyKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FkZF8oc2VsZiwg b3RoZXIpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBzdW0gb2YgdGhpcyBz ZXJpZXMgYW5kIGBgb3RoZXJgYC4KKyAKK0BAIC0xMzE0LDcgKzEzMTQsNyBAQCBjZGVmIGNsYXNz IFRhdGVBbGdlYnJhRWxlbWVudChDb21tdXRhdGl2ZUFsZ2VicmFFbGVtZW50KToKKyAgICAgICAg IGFucy5fbm9ybWFsaXplKCkKKyAgICAgICAgIHJldHVybiBhbnMKKyAKKy0gICAgY3BkZWYgX25l Z18oc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9uZWdfKHNlbGYpOgorICAgICAgICAgciIi IgorICAgICAgICAgUmV0dXJuIHRoZSBvcHBvc2l0ZSBvZiB0aGlzIHNlcmllcy4KKyAKK0BAIC0x MzM0LDcgKzEzMzQsNyBAQCBjZGVmIGNsYXNzIFRhdGVBbGdlYnJhRWxlbWVudChDb21tdXRhdGl2 ZUFsZ2VicmFFbGVtZW50KToKKyAgICAgICAgIGFucy5fcHJlYyA9IHNlbGYuX3ByZWMKKyAgICAg ICAgIHJldHVybiBhbnMKKyAKKy0gICAgY3BkZWYgX3N1Yl8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBfc3ViXyhzZWxmLCBvdGhlcik6CisgICAgICAgICByIiIiCisgICAgICAg ICBSZXR1cm4gdGhlIGRpZmZlcmVuY2Ugb2YgdGhpcyBzZXJpZXMgYW5kIGBgb3RoZXJgYC4KKyAK K0BAIC0xMzY3LDcgKzEzNjcsNyBAQCBjZGVmIGNsYXNzIFRhdGVBbGdlYnJhRWxlbWVudChDb21t dXRhdGl2ZUFsZ2VicmFFbGVtZW50KToKKyAgICAgICAgIGFucy5fbm9ybWFsaXplKCkKKyAgICAg ICAgIHJldHVybiBhbnMKKyAKKy0gICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBfbXVsXyhzZWxmLCBvdGhlcik6CisgICAgICAgICByIiIiCisgICAgICAg ICBSZXR1cm4gdGhlIHByb2R1Y3Qgb2YgdGhpcyBzZXJpZXMgd2l0aCBgYG90aGVyYGAuCisgCitA QCAtMTQwMiw3ICsxNDAyLDcgQEAgY2RlZiBjbGFzcyBUYXRlQWxnZWJyYUVsZW1lbnQoQ29tbXV0 YXRpdmVBbGdlYnJhRWxlbWVudCk6CisgICAgICAgICBhbnMuX25vcm1hbGl6ZSgpCisgICAgICAg ICByZXR1cm4gYW5zCisgCistICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IHJpZ2h0KSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgX2xtdWxfKHNlbGYsIEVsZW1lbnQgcmlnaHQpOgorICAgICAg ICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBwcm9kdWN0IG9mIHRoaXMgc2VyaWVzIGJ5IGBg cmlnaHRgYC4KKyAKK0BAIC0xNzgzLDcgKzE3ODMsNyBAQCBjZGVmIGNsYXNzIFRhdGVBbGdlYnJh RWxlbWVudChDb21tdXRhdGl2ZUFsZ2VicmFFbGVtZW50KToKKyAgICAgICAgIHJldHVybiByb290 CisgCisgCistICAgIGNwZGVmIF9yaWNoY21wXyhzZWxmLCBvdGhlciwgaW50IG9wKSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgX3JpY2hjbXBfKHNlbGYsIG90aGVyLCBpbnQgb3ApOgorICAgICAgICAg ciIiIgorICAgICAgICAgQ29tcGFyZSB0aGlzIHNlcmllcyB3aXRoIGBgb3RoZXJgYCBhY2NvcmRp bmcgdG8KKyAgICAgICAgIHRoZSByaWNoIGNvbXBhcmlzb24gb3BlcmF0b3IgYGBvcGBgLgorQEAg LTE5MjIsNyArMTkyMiw3IEBAIGNkZWYgY2xhc3MgVGF0ZUFsZ2VicmFFbGVtZW50KENvbW11dGF0 aXZlQWxnZWJyYUVsZW1lbnQpOgorICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICByZXR1 cm4gcmVzCisgCistICAgIGNkZWYgVGF0ZUFsZ2VicmFFbGVtZW50IF90ZXJtX211bF9jKHNlbGYs IFRhdGVBbGdlYnJhVGVybSB0ZXJtKSBub2V4Y2VwdDoKKysgICAgY2RlZiBUYXRlQWxnZWJyYUVs ZW1lbnQgX3Rlcm1fbXVsX2Moc2VsZiwgVGF0ZUFsZ2VicmFUZXJtIHRlcm0pOgorICAgICAgICAg ciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBwcm9kdWN0IG9mIHRoaXMgc2VyaWVzIGJ5IHRoZSB0 ZXJtIGBgdGVybWBgLgorIAorQEAgLTE5NDMsNyArMTk0Myw3IEBAIGNkZWYgY2xhc3MgVGF0ZUFs Z2VicmFFbGVtZW50KENvbW11dGF0aXZlQWxnZWJyYUVsZW1lbnQpOgorICAgICAgICAgYW5zLl9w cmVjID0gc2VsZi5fcHJlYyArIHRlcm0uX3ZhbHVhdGlvbl9jKCkKKyAgICAgICAgIHJldHVybiBh bnMKKyAKKy0gICAgY2RlZiBUYXRlQWxnZWJyYUVsZW1lbnQgX3Bvc2l0aXZlX2xzaGlmdF9jKHNl bGYsIG4pIG5vZXhjZXB0OgorKyAgICBjZGVmIFRhdGVBbGdlYnJhRWxlbWVudCBfcG9zaXRpdmVf bHNoaWZ0X2Moc2VsZiwgbik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHBy b2R1Y3Qgb2YgdGhpcyBzZXJpZXMgYnkgdGhlIGBgbmBgLXRoIHBvd2VyCisgICAgICAgICBvZiB0 aGUgdW5pZm9ybWl6ZXIuCitAQCAtMTk3Miw3ICsxOTcyLDcgQEAgY2RlZiBjbGFzcyBUYXRlQWxn ZWJyYUVsZW1lbnQoQ29tbXV0YXRpdmVBbGdlYnJhRWxlbWVudCk6CisgICAgICAgICBhbnMuX3By ZWMgPSBzZWxmLl9wcmVjICsgbgorICAgICAgICAgcmV0dXJuIGFucworIAorLSAgICBjZGVmIFRh dGVBbGdlYnJhRWxlbWVudCBfbHNoaWZ0X2Moc2VsZiwgbikgbm9leGNlcHQ6CisrICAgIGNkZWYg VGF0ZUFsZ2VicmFFbGVtZW50IF9sc2hpZnRfYyhzZWxmLCBuKToKKyAgICAgICAgIHIiIiIKKyAg ICAgICAgIFJldHVybiB0aGUgcHJvZHVjdCBvZiB0aGlzIHNlcmllcyBieSB0aGUgYGBuYGAtdGgg cG93ZXIKKyAgICAgICAgIG9mIHRoZSB1bmlmb3JtaXplci4KK0BAIC0yMTkwLDcgKzIxOTAsNyBA QCBjZGVmIGNsYXNzIFRhdGVBbGdlYnJhRWxlbWVudChDb21tdXRhdGl2ZUFsZ2VicmFFbGVtZW50 KToKKyAgICAgICAgICAgICBzZWxmLl90ZXJtcyA9IE5vbmUKKyAgICAgICAgIHJldHVybiBzZWxm Ll90ZXJtc19jKCkKKyAKKy0gICAgY2RlZiBsaXN0IF90ZXJtc19jKHNlbGYsIGJpbnQgaW5jbHVk ZV96ZXJvPVRydWUpIG5vZXhjZXB0OgorKyAgICBjZGVmIGxpc3QgX3Rlcm1zX2Moc2VsZiwgYmlu dCBpbmNsdWRlX3plcm89VHJ1ZSk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gYSBs aXN0IG9mIHRoZSB0ZXJtcyBvZiB0aGlzIHNlcmllcyBzb3J0ZWQgaW4gZGVzY2VuZGluZyBvcmRl ci4KKyAKK0BAIC0yNDUzLDcgKzI0NTMsNyBAQCBjZGVmIGNsYXNzIFRhdGVBbGdlYnJhRWxlbWVu dChDb21tdXRhdGl2ZUFsZ2VicmFFbGVtZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0 dXJuIHNlbGYuX3ByZWMKKyAKKy0gICAgY3BkZWYgdmFsdWF0aW9uKHNlbGYpIG5vZXhjZXB0Ogor KyAgICBjcGRlZiB2YWx1YXRpb24oc2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1 cm4gdGhlIHZhbHVhdGlvbiBvZiB0aGlzIHNlcmllcy4KKyAKK0BAIC0yOTQxLDcgKzI5NDEsNyBA QCBjZGVmIGNsYXNzIFRhdGVBbGdlYnJhRWxlbWVudChDb21tdXRhdGl2ZUFsZ2VicmFFbGVtZW50 KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYubGVhZGluZ190ZXJtKHNlY3Vy ZT1zZWN1cmUpLm1vbm9taWFsKCkKKyAKKy0gICAgY3BkZWYgVGF0ZUFsZ2VicmFFbGVtZW50IG1v bmljKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBUYXRlQWxnZWJyYUVsZW1lbnQgbW9uaWMo c2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhpcyBzZXJpZXMgbm9ybWFs aXplZCBzbyB0aGF0IGl0IGhhcyB2YWx1YXRpb24gMAorICAgICAgICAgYW5kIGl0cyBsZWFkaW5n IGNvZWZmaWNpZW50IGlzIGEgcG93ZXIgb2YgdGhlIHVuaWZvcm1pemVyLgorQEAgLTMxNjIsNyAr MzE2Miw3IEBAIGNkZWYgY2xhc3MgVGF0ZUFsZ2VicmFFbGVtZW50KENvbW11dGF0aXZlQWxnZWJy YUVsZW1lbnQpOgorICAgICAgICAgcG9seSA9IHNlbGYuX3BhcmVudC5fcG9seW5vbWlhbF9yaW5n KHNlbGYuX3BvbHkpCisgICAgICAgICByZXR1cm4gcG9seS5jaGFuZ2VfcmluZyhSbikKKyAKKy0g ICAgY2RlZiBfcXVvX3JlbV9jKHNlbGYsIGxpc3QgZGl2aXNvcnMsIGJpbnQgcXVvLCBiaW50IHJl bSwgYmludCBpbnRlZ3JhbCkgbm9leGNlcHQ6CisrICAgIGNkZWYgX3F1b19yZW1fYyhzZWxmLCBs aXN0IGRpdmlzb3JzLCBiaW50IHF1bywgYmludCByZW0sIGJpbnQgaW50ZWdyYWwpOgorICAgICAg ICAgciIiIgorICAgICAgICAgUGVyZm9ybSB0aGUgZGl2aXNpb24gb2YgdGhpcyBzZXJpZXMgYnkg YGBkaXZpc29yc2BgLgorIAorQEAgLTMyMzUsNyArMzIzNSw3IEBAIGNkZWYgY2xhc3MgVGF0ZUFs Z2VicmFFbGVtZW50KENvbW11dGF0aXZlQWxnZWJyYUVsZW1lbnQpOgorICAgICAgICAgICAgIGYu X3Rlcm1zID0gTm9uZQorICAgICAgICAgcmV0dXJuIHF1b3MsIGYKKyAKKy0gICAgY2RlZiBfcXVv X3JlbV9jaGVjayhzZWxmLCBkaXZpc29ycywgYmludCBxdW8sIGJpbnQgcmVtKSBub2V4Y2VwdDoK KysgICAgY2RlZiBfcXVvX3JlbV9jaGVjayhzZWxmLCBkaXZpc29ycywgYmludCBxdW8sIGJpbnQg cmVtKToKKyAgICAgICAgICIiIgorICAgICAgICAgUGVyZm9ybSB0aGUgZGl2aXNpb24gb2YgdGhp cyBzZXJpZXMgYnkgYGBkaXZpc29yc2BgLgorIAorQEAgLTM0OTEsNyArMzQ5MSw3IEBAIGNkZWYg Y2xhc3MgVGF0ZUFsZ2VicmFFbGVtZW50KENvbW11dGF0aXZlQWxnZWJyYUVsZW1lbnQpOgorICAg ICAgICAgZXhjZXB0IEluZGV4RXJyb3I6CisgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigi dGhlIFMtcG9seW5vbWlhbCBvZiB6ZXJvIGlzIG5vdCBkZWZpbmVkIikKKyAKKy0gICAgY2RlZiBU YXRlQWxnZWJyYUVsZW1lbnQgX1Nwb2x5X2Moc2VsZiwgVGF0ZUFsZ2VicmFFbGVtZW50IG90aGVy KSBub2V4Y2VwdDoKKysgICAgY2RlZiBUYXRlQWxnZWJyYUVsZW1lbnQgX1Nwb2x5X2Moc2VsZiwg VGF0ZUFsZ2VicmFFbGVtZW50IG90aGVyKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmV0dXJu IHRoZSBTLXBvbHlub21pYWwgb2YgdGhpcyBzZXJpZXMgYW5kIGBgb3RoZXJgYC4KKyAKK2RpZmYg LS1naXQgYS9zcmMvc2FnZS9yaW5ncy90YXRlX2FsZ2VicmFfaWRlYWwucHhkIGIvc3JjL3NhZ2Uv cmluZ3MvdGF0ZV9hbGdlYnJhX2lkZWFsLnB4ZAoraW5kZXggZDZjMjM5YjlhMGMuLmU1NTgxZTA2 YjhjIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvcmluZ3MvdGF0ZV9hbGdlYnJhX2lkZWFsLnB4ZAor KysrIGIvc3JjL3NhZ2UvcmluZ3MvdGF0ZV9hbGdlYnJhX2lkZWFsLnB4ZAorQEAgLTEsNiArMSw2 IEBACisgZnJvbSBzYWdlLnJpbmdzLnRhdGVfYWxnZWJyYV9lbGVtZW50IGNpbXBvcnQgVGF0ZUFs Z2VicmFUZXJtCisgZnJvbSBzYWdlLnJpbmdzLnRhdGVfYWxnZWJyYV9lbGVtZW50IGNpbXBvcnQg VGF0ZUFsZ2VicmFFbGVtZW50CisgCistY2RlZiBKcGFpcihwMSwgcDIpIG5vZXhjZXB0CistY2Rl ZiBUYXRlQWxnZWJyYUVsZW1lbnQgcmVndWxhcl9yZWR1Y2Uoc2diLCBUYXRlQWxnZWJyYVRlcm0g cywgVGF0ZUFsZ2VicmFFbGVtZW50IHYsIHN0b3B2YWwpIG5vZXhjZXB0CistY2RlZiBUYXRlQWxn ZWJyYUVsZW1lbnQgcmVkdWNlKGdiLCBUYXRlQWxnZWJyYUVsZW1lbnQgdiwgc3RvcHZhbCkgbm9l eGNlcHQKKytjZGVmIEpwYWlyKHAxLCBwMikKKytjZGVmIFRhdGVBbGdlYnJhRWxlbWVudCByZWd1 bGFyX3JlZHVjZShzZ2IsIFRhdGVBbGdlYnJhVGVybSBzLCBUYXRlQWxnZWJyYUVsZW1lbnQgdiwg c3RvcHZhbCkKKytjZGVmIFRhdGVBbGdlYnJhRWxlbWVudCByZWR1Y2UoZ2IsIFRhdGVBbGdlYnJh RWxlbWVudCB2LCBzdG9wdmFsKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3RhdGVfYWxn ZWJyYV9pZGVhbC5weXggYi9zcmMvc2FnZS9yaW5ncy90YXRlX2FsZ2VicmFfaWRlYWwucHl4Citp bmRleCBiMjdjOTgxMTBhMy4uODAyOTg0ODc0YjcgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9yaW5n cy90YXRlX2FsZ2VicmFfaWRlYWwucHl4CisrKysgYi9zcmMvc2FnZS9yaW5ncy90YXRlX2FsZ2Vi cmFfaWRlYWwucHl4CitAQCAtNTY3LDcgKzU2Nyw3IEBAIGRlZiBncm9lYm5lcl9iYXNpc19idWNo YmVyZ2VyKEksIHByZWMsIHB5X2ludGVncmFsKToKKyAKKyAjIEY1IGFsZ29yaXRobXMKKyAKKy1j ZGVmIEpwYWlyKHAxLCBwMikgbm9leGNlcHQ6CisrY2RlZiBKcGFpcihwMSwgcDIpOgorICAgICBy IiIiCisgICAgIFJldHVybiB0aGUgSi1wYWlyIG9mIGBgcDFgYCBhbmQgYGBwMmBgCisgCitAQCAt NjA1LDcgKzYwNSw3IEBAIGNkZWYgSnBhaXIocDEsIHAyKSBub2V4Y2VwdDoKKyAgICAgICAgIHJl dHVybiBzdTIsIHQyKnYyCisgCisgCistY2RlZiBUYXRlQWxnZWJyYUVsZW1lbnQgcmVndWxhcl9y ZWR1Y2Uoc2diLCBUYXRlQWxnZWJyYVRlcm0gcywgVGF0ZUFsZ2VicmFFbGVtZW50IHYsIHN0b3B2 YWwpIG5vZXhjZXB0OgorK2NkZWYgVGF0ZUFsZ2VicmFFbGVtZW50IHJlZ3VsYXJfcmVkdWNlKHNn YiwgVGF0ZUFsZ2VicmFUZXJtIHMsIFRhdGVBbGdlYnJhRWxlbWVudCB2LCBzdG9wdmFsKToKKyAg ICAgciIiIgorICAgICBSZXR1cm4gdGhlIHJlc3VsdCBvZiB0aGUgcmVndWxhciByZWR1Y3Rpb24g b2YgdGhlIHBhaXIgYGAocyx2KWBgIGJ5IGBgc2diYGAKKyAKK0BAIC02ODksNyArNjg5LDcgQEAg Y2RlZiBUYXRlQWxnZWJyYUVsZW1lbnQgcmVndWxhcl9yZWR1Y2Uoc2diLCBUYXRlQWxnZWJyYVRl cm0gcywgVGF0ZUFsZ2VicmFFbGVtZW4KKyAgICAgcmV0dXJuIGYKKyAKKyAKKy1jZGVmIFRhdGVB bGdlYnJhRWxlbWVudCByZWR1Y2UoZ2IsIFRhdGVBbGdlYnJhRWxlbWVudCB2LCBzdG9wdmFsKSBu b2V4Y2VwdDoKKytjZGVmIFRhdGVBbGdlYnJhRWxlbWVudCByZWR1Y2UoZ2IsIFRhdGVBbGdlYnJh RWxlbWVudCB2LCBzdG9wdmFsKToKKyAgICAgciIiIgorICAgICBSZXR1cm4gdGhlIHJlc3VsdCBv ZiB0aGUgcmVkdWN0aW9uIG9mIGBgdmBgIGJ5IGBgZ2JgYAorIAorZGlmZiAtLWdpdCBhL3NyYy9z YWdlL3NjaGVtZXMvZWxsaXB0aWNfY3VydmVzL21vZF9zeW1fbnVtLnB5eCBiL3NyYy9zYWdlL3Nj aGVtZXMvZWxsaXB0aWNfY3VydmVzL21vZF9zeW1fbnVtLnB5eAoraW5kZXggZGFjYTk2YjlmOTcu LmExMzFkYzhhNDdjIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uvc2NoZW1lcy9lbGxpcHRpY19jdXJ2 ZXMvbW9kX3N5bV9udW0ucHl4CisrKysgYi9zcmMvc2FnZS9zY2hlbWVzL2VsbGlwdGljX2N1cnZl cy9tb2Rfc3ltX251bS5weXgKK0BAIC0yMDE0LDcgKzIwMTQsNyBAQCBjZGVmIGNsYXNzIE1vZHVs YXJTeW1ib2xOdW1lcmljYWw6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEludGVnZXIgZXBzUSwgSW50ZWdlciBlcHNRUSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsbG9uZyogd1EsIGxsb25nKiB3UVEsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW50IFQsIGludCBwcmVjLCBkb3VibGUgZXBzLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGludCB1c2VfcGFydGlhbHM9Mikgbm9leGNlcHQ6Cisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHVzZV9wYXJ0aWFscz0yKToK KyAgICAgICAgIHIiIiIKKyAgICAgICAgIFRoaXMgaXMganVzdCBhIGhlbHBlciBmdW5jdGlvbiBm b3IgX2Zyb21fcl90b19ycl9hcHByb3guIEluIGNhc2UKKyAgICAgICAgIHRoZSBpbnRlZ3JhbCBp cyBldmFsdWF0ZWQgZGlyZWN0bHkgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQuCitkaWZmIC0tZ2l0 IGEvc3JjL3NhZ2Uvc2NoZW1lcy9lbGxpcHRpY19jdXJ2ZXMvcGVyaW9kX2xhdHRpY2VfcmVnaW9u LnB5eCBiL3NyYy9zYWdlL3NjaGVtZXMvZWxsaXB0aWNfY3VydmVzL3BlcmlvZF9sYXR0aWNlX3Jl Z2lvbi5weXgKK2luZGV4IDA2ZTY1MjVmNWMzLi5iMDkxNGQ2MzQ3YSAxMDA2NDQKKy0tLSBhL3Ny Yy9zYWdlL3NjaGVtZXMvZWxsaXB0aWNfY3VydmVzL3BlcmlvZF9sYXR0aWNlX3JlZ2lvbi5weXgK KysrKyBiL3NyYy9zYWdlL3NjaGVtZXMvZWxsaXB0aWNfY3VydmVzL3BlcmlvZF9sYXR0aWNlX3Jl Z2lvbi5weXgKK0BAIC02NjUsNyArNjY1LDcgQEAgY2RlZiBjbGFzcyBQZXJpb2RpY1JlZ2lvbjoK KyAgICAgICAgIHJldHVybiBzdW0oTCwgRikKKyAKKyAKKy1jZGVmIGZyYW1lX2RhdGEoZGF0YSwg YmludCBmdWxsPVRydWUpIG5vZXhjZXB0OgorK2NkZWYgZnJhbWVfZGF0YShkYXRhLCBiaW50IGZ1 bGw9VHJ1ZSk6CisgICAgICIiIgorICAgICBIZWxwZXIgZnVuY3Rpb24gZm9yIFBlcmlvZGljUmVn aW9uLmV4cGFuZCgpIGFuZAorICAgICBQZXJpb2RpY1JlZ2lvbi5ib3JkZXIoKS4gIFRoaXMgbWFr ZXMgIndyYXBwaW5nIGFyb3VuZCIgd29yaworQEAgLTY5NSw3ICs2OTUsNyBAQCBjZGVmIGZyYW1l X2RhdGEoZGF0YSwgYmludCBmdWxsPVRydWUpIG5vZXhjZXB0OgorICAgICBmcmFtZWRbLTEsOl0g PSBmcmFtZWRbLTMsOl0KKyAgICAgcmV0dXJuIGZyYW1lZAorIAorLWNkZWYgdW5mcmFtZV9kYXRh KGZyYW1lZCwgYmludCBmdWxsPVRydWUpIG5vZXhjZXB0OgorK2NkZWYgdW5mcmFtZV9kYXRhKGZy YW1lZCwgYmludCBmdWxsPVRydWUpOgorICAgICAiIiIKKyAgICAgSGVscGVyIGZ1bmN0aW9uIGZv ciBQZXJpb2RpY1JlZ2lvbi5leHBhbmQoKS4gIFRoaXMgZ2x1ZXMgdGhlCisgICAgIGJvcmRlcnMg dG9nZXRoZXIgdXNpbmcgdGhlICJvciIgb3BlcmF0b3IuCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uv c2NoZW1lcy90b3JpYy9kaXZpc29yX2NsYXNzLnB5eCBiL3NyYy9zYWdlL3NjaGVtZXMvdG9yaWMv ZGl2aXNvcl9jbGFzcy5weXgKK2luZGV4IDNjOWE5MTQzZWFmLi41YTkyZmU1YjM4ZCAxMDA2NDQK Ky0tLSBhL3NyYy9zYWdlL3NjaGVtZXMvdG9yaWMvZGl2aXNvcl9jbGFzcy5weXgKKysrKyBiL3Ny Yy9zYWdlL3NjaGVtZXMvdG9yaWMvZGl2aXNvcl9jbGFzcy5weXgKK0BAIC0xMzcsNyArMTM3LDcg QEAgY2RlZiBjbGFzcyBUb3JpY1JhdGlvbmFsRGl2aXNvckNsYXNzKFZlY3Rvcl9yYXRpb25hbF9k ZW5zZSk6CisgICAgICAgICAgICAgICAgIChzZWxmLl9wYXJlbnQsIGxpc3Qoc2VsZiksIHNlbGYu X2RlZ3JlZSwKKyAgICAgICAgICAgICAgICAgIG5vdCBzZWxmLl9pc19pbW11dGFibGUpKQorIAor LSAgICBjcGRlZiBfYWN0X29uXyhzZWxmLCBvdGhlciwgYmludCBzZWxmX29uX2xlZnQpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBfYWN0X29uXyhzZWxmLCBvdGhlciwgYmludCBzZWxmX29uX2xlZnQp OgorICAgICAgICAgIiIiCisgICAgICAgICBBY3Qgb24gYGBvdGhlcmBgLgorIAorQEAgLTIwMiw3 ICsyMDIsNyBAQCBjZGVmIGNsYXNzIFRvcmljUmF0aW9uYWxEaXZpc29yQ2xhc3MoVmVjdG9yX3Jh dGlvbmFsX2RlbnNlKToKKyAgICAgICAgICMgTm93IGxldCB0aGUgc3RhbmRhcmQgZnJhbWV3b3Jr IHdvcmsuLi4KKyAgICAgICAgIHJldHVybiBWZWN0b3JfcmF0aW9uYWxfZGVuc2UuX2FjdF9vbl8o c2VsZiwgb3RoZXIsIHNlbGZfb25fbGVmdCkKKyAKKy0gICAgY3BkZWYgX2RvdF9wcm9kdWN0Xyhz ZWxmLCBWZWN0b3IgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZG90X3Byb2R1Y3RfKHNl bGYsIFZlY3RvciByaWdodCk6CisgICAgICAgICByIiIiCisgICAgICAgICBSYWlzZSBhIGBgVHlw ZUVycm9yYGAgZXhjZXB0aW9uLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3NldHMvZmluaXRl X3NldF9tYXBfY3kucHhkIGIvc3JjL3NhZ2Uvc2V0cy9maW5pdGVfc2V0X21hcF9jeS5weGQKK2lu ZGV4IDk5OGU0ZjU4NzI5Li5kYWE0NmMwOTllMCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3NldHMv ZmluaXRlX3NldF9tYXBfY3kucHhkCisrKysgYi9zcmMvc2FnZS9zZXRzL2Zpbml0ZV9zZXRfbWFw X2N5LnB4ZAorQEAgLTUsMjkgKzUsMjkgQEAKKyAjICAgICAgICAgICAgICAgICAgaHR0cDovL3d3 dy5nbnUub3JnL2xpY2Vuc2VzLworICMqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorIAorLWNwZGVmIGZp YmVycyhmLCBkb21haW4pIG5vZXhjZXB0CisrY3BkZWYgZmliZXJzKGYsIGRvbWFpbikKKyAKKyBm cm9tIHNhZ2Uuc3RydWN0dXJlLnBhcmVudCBjaW1wb3J0IFBhcmVudAorIGZyb20gc2FnZS5zdHJ1 Y3R1cmUubGlzdF9jbG9uZSBjaW1wb3J0IENsb25hYmxlSW50QXJyYXkKKyAKKyBjZGVmIGNsYXNz IEZpbml0ZVNldE1hcF9NTihDbG9uYWJsZUludEFycmF5KToKKy0gICAgY3BkZWYgX3NldGltYWdl KHNlbGYsIGludCBpLCBpbnQgaikgbm9leGNlcHQKKy0gICAgY3BkZWYgX2dldGltYWdlKHNlbGYs IGludCBpKSBub2V4Y2VwdAorLSAgICBjcGRlZiBzZXRpbWFnZShzZWxmLCBpLCBqKSBub2V4Y2Vw dAorLSAgICBjcGRlZiBnZXRpbWFnZShzZWxmLCBpKSBub2V4Y2VwdAorLSAgICBjcGRlZiBkb21h aW4oc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgY29kb21haW4oc2VsZikgbm9leGNlcHQKKy0g ICAgY3BkZWYgaW1hZ2Vfc2V0KHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIGZpYmVycyhzZWxm KSBub2V4Y2VwdAorLSAgICBjcGRlZiBpdGVtcyhzZWxmKSBub2V4Y2VwdAorKyAgICBjcGRlZiBf c2V0aW1hZ2Uoc2VsZiwgaW50IGksIGludCBqKQorKyAgICBjcGRlZiBfZ2V0aW1hZ2Uoc2VsZiwg aW50IGkpCisrICAgIGNwZGVmIHNldGltYWdlKHNlbGYsIGksIGopCisrICAgIGNwZGVmIGdldGlt YWdlKHNlbGYsIGkpCisrICAgIGNwZGVmIGRvbWFpbihzZWxmKQorKyAgICBjcGRlZiBjb2RvbWFp bihzZWxmKQorKyAgICBjcGRlZiBpbWFnZV9zZXQoc2VsZikKKysgICAgY3BkZWYgZmliZXJzKHNl bGYpCisrICAgIGNwZGVmIGl0ZW1zKHNlbGYpCisgICAgIGNwZGVmIEZpbml0ZVNldE1hcF9NTiBf Y29tcG9zZV9pbnRlcm5hbF8oc2VsZiwgRmluaXRlU2V0TWFwX01OIG90aGVyLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhcmVudCByZXNQYXJlbnQpIG5v ZXhjZXB0CistICAgIGNwZGVmIGNoZWNrKHNlbGYpIG5vZXhjZXB0CisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFyZW50IHJlc1BhcmVudCkKKysgICAgY3Bk ZWYgY2hlY2soc2VsZikKKyAKKyBjZGVmIGNsYXNzIEZpbml0ZVNldE1hcF9TZXQoRmluaXRlU2V0 TWFwX01OKTogcGFzcworIAorLWNwZGVmIEZpbml0ZVNldE1hcF9TZXQgRmluaXRlU2V0TWFwX1Nl dF9mcm9tX2xpc3QoY2xzLCBwYXJlbnQsIGxzdCkgbm9leGNlcHQKKy1jcGRlZiBGaW5pdGVTZXRN YXBfU2V0IEZpbml0ZVNldE1hcF9TZXRfZnJvbV9kaWN0KGNscywgcGFyZW50LCBkKSBub2V4Y2Vw dAorK2NwZGVmIEZpbml0ZVNldE1hcF9TZXQgRmluaXRlU2V0TWFwX1NldF9mcm9tX2xpc3QoY2xz LCBwYXJlbnQsIGxzdCkKKytjcGRlZiBGaW5pdGVTZXRNYXBfU2V0IEZpbml0ZVNldE1hcF9TZXRf ZnJvbV9kaWN0KGNscywgcGFyZW50LCBkKQorIAorIGNkZWYgY2xhc3MgRmluaXRlU2V0RW5kb01h cF9OKEZpbml0ZVNldE1hcF9NTik6IHBhc3MKKyBjZGVmIGNsYXNzIEZpbml0ZVNldEVuZG9NYXBf U2V0KEZpbml0ZVNldE1hcF9TZXQpOiBwYXNzCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvc2V0cy9m aW5pdGVfc2V0X21hcF9jeS5weXggYi9zcmMvc2FnZS9zZXRzL2Zpbml0ZV9zZXRfbWFwX2N5LnB5 eAoraW5kZXggMWZhZDQyM2ZiODEuLmEwNmRjMGEyYmQ5IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uv c2V0cy9maW5pdGVfc2V0X21hcF9jeS5weXgKKysrKyBiL3NyYy9zYWdlL3NldHMvZmluaXRlX3Nl dF9tYXBfY3kucHl4CitAQCAtNTgsNyArNTgsNyBAQCBmcm9tIHNhZ2UuYXJpdGgucG93ZXIgY2lt cG9ydCBnZW5lcmljX3Bvd2VyCisgZnJvbSBzYWdlLnNldHMuc2V0IGltcG9ydCBTZXRfb2JqZWN0 X2VudW1lcmF0ZWQKKyAKKyAKKy1jcGRlZiBmaWJlcnMoZiwgZG9tYWluKSBub2V4Y2VwdDoKKytj cGRlZiBmaWJlcnMoZiwgZG9tYWluKToKKyAgICAgciIiIgorICAgICBSZXR1cm5zIHRoZSBmaWJl cnMgb2YgdGhlIGZ1bmN0aW9uIGBgZmBgIG9uIHRoZSBmaW5pdGUgc2V0IGBgZG9tYWluYGAKKyAK K0BAIC0xNTcsNyArMTU3LDcgQEAgY2RlZiBjbGFzcyBGaW5pdGVTZXRNYXBfTU4oQ2xvbmFibGVJ bnRBcnJheSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBUcnVlCisgCistICAgIGNw ZGVmIGRvbWFpbihzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZG9tYWluKHNlbGYpOgorICAg ICAgICAgIiIiCisgICAgICAgICBSZXR1cm5zIHRoZSBkb21haW4gb2YgYGBzZWxmYGAKKyAKK0BA IC0xNjgsNyArMTY4LDcgQEAgY2RlZiBjbGFzcyBGaW5pdGVTZXRNYXBfTU4oQ2xvbmFibGVJbnRB cnJheSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9wYXJlbnQuZG9tYWlu KCkKKyAKKy0gICAgY3BkZWYgY29kb21haW4oc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGNv ZG9tYWluKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm5zIHRoZSBjb2RvbWFp biBvZiBgYHNlbGZgYAorIAorQEAgLTE3OSw3ICsxNzksNyBAQCBjZGVmIGNsYXNzIEZpbml0ZVNl dE1hcF9NTihDbG9uYWJsZUludEFycmF5KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJu IHNlbGYuX3BhcmVudC5jb2RvbWFpbigpCisgCistICAgIGNwZGVmIF9zZXRpbWFnZShzZWxmLCBp bnQgaSwgaW50IGopIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfc2V0aW1hZ2Uoc2VsZiwgaW50IGks IGludCBqKToKKyAgICAgICAgICIiIgorICAgICAgICAgU2V0IHRoZSBpbWFnZSBvZiBgYGlgYCBh cyBgYGpgYCBpbiBgYHNlbGZgYAorIAorQEAgLTIyMSw3ICsyMjEsNyBAQCBjZGVmIGNsYXNzIEZp bml0ZVNldE1hcF9NTihDbG9uYWJsZUludEFycmF5KToKKyAgICAgICAgICIiIgorICAgICAgICAg c2VsZi5fc2V0aXRlbShpLCBqKQorIAorLSAgICBjcGRlZiBfZ2V0aW1hZ2Uoc2VsZiwgaW50IGkp IG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZ2V0aW1hZ2Uoc2VsZiwgaW50IGkpOgorICAgICAgICAg IiIiCisgICAgICAgICBSZXR1cm5zIHRoZSBpbWFnZSBvZiBgYGlgYCBieSBgYHNlbGZgYAorIAor QEAgLTIzOSw3ICsyMzksNyBAQCBjZGVmIGNsYXNzIEZpbml0ZVNldE1hcF9NTihDbG9uYWJsZUlu dEFycmF5KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX2dldGl0ZW0oaSkK KyAKKy0gICAgY3BkZWYgc2V0aW1hZ2Uoc2VsZiwgaSwgaikgbm9leGNlcHQ6CisrICAgIGNwZGVm IHNldGltYWdlKHNlbGYsIGksIGopOgorICAgICAgICAgIiIiCisgICAgICAgICBTZXQgdGhlIGlt YWdlIG9mIGBgaWBgIGFzIGBgamBgIGluIGBgc2VsZmBgCisgCitAQCAtMjY4LDcgKzI2OCw3IEBA IGNkZWYgY2xhc3MgRmluaXRlU2V0TWFwX01OKENsb25hYmxlSW50QXJyYXkpOgorICAgICAgICAg IiIiCisgICAgICAgICBzZWxmLl9zZXRpdGVtKGludChpKSwgaW50KGopKQorIAorLSAgICBjcGRl ZiBnZXRpbWFnZShzZWxmLCBpKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZ2V0aW1hZ2Uoc2VsZiwg aSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybnMgdGhlIGltYWdlIG9mIGBgaWBgIGJ5 IGBgc2VsZmBgCisgCitAQCAtMjg2LDcgKzI4Niw3IEBAIGNkZWYgY2xhc3MgRmluaXRlU2V0TWFw X01OKENsb25hYmxlSW50QXJyYXkpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2Vs Zi5fZ2V0aXRlbShpbnQoaSkpCisgCistICAgIGNwZGVmIGltYWdlX3NldChzZWxmKSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgaW1hZ2Vfc2V0KHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBS ZXR1cm5zIHRoZSBpbWFnZSBzZXQgb2YgYGBzZWxmYGAKKyAKK0BAIC0yOTksNyArMjk5LDcgQEAg Y2RlZiBjbGFzcyBGaW5pdGVTZXRNYXBfTU4oQ2xvbmFibGVJbnRBcnJheSk6CisgICAgICAgICAi IiIKKyAgICAgICAgIHJldHVybiBTZXRfb2JqZWN0X2VudW1lcmF0ZWQoc2VsZikKKyAKKy0gICAg Y3BkZWYgZmliZXJzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBmaWJlcnMoc2VsZik6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybnMgdGhlIGZpYmVycyBvZiBgYHNlbGZgYAorIAor QEAgLTMxOCw3ICszMTgsNyBAQCBjZGVmIGNsYXNzIEZpbml0ZVNldE1hcF9NTihDbG9uYWJsZUlu dEFycmF5KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIGZpYmVycyhzZWxmLCBzZWxm LmRvbWFpbigpKQorIAorLSAgICBjcGRlZiBpdGVtcyhzZWxmKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgaXRlbXMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRoZSBpdGVtcyBvZiBgYHNl bGZgYAorIAorQEAgLTMzMSw3ICszMzEsNyBAQCBjZGVmIGNsYXNzIEZpbml0ZVNldE1hcF9NTihD bG9uYWJsZUludEFycmF5KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIFsoaSwgc2Vs Zi5fZ2V0aW1hZ2UoaSkpIGZvciBpIGluIHNlbGYuZG9tYWluKCldCisgCistICAgIGNwZGVmIGNo ZWNrKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjaGVjayhzZWxmKToKKyAgICAgICAgICIi IgorICAgICAgICAgUGVyZm9ybXMgY2hlY2tzIG9uIGBgc2VsZmBgCisgCitAQCAtMzYyLDcgKzM2 Miw3IEBAIGNkZWYgY2xhc3MgRmluaXRlU2V0TWFwX01OKENsb25hYmxlSW50QXJyYXkpOgorICAg ICAgICAgICAgIHNlbGYuX3BhcmVudC5jaGVja19lbGVtZW50KHNlbGYpCisgCisgICAgIGNwZGVm IEZpbml0ZVNldE1hcF9NTiBfY29tcG9zZV9pbnRlcm5hbF8oc2VsZiwgRmluaXRlU2V0TWFwX01O IG90aGVyLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBh cmVudCByZXNQYXJlbnQpIG5vZXhjZXB0OgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFBhcmVudCByZXNQYXJlbnQpOgorICAgICAgICAgIiIiCisgICAgICAg ICBURVNUUzo6CisgCitAQCAtMzgzLDcgKzM4Myw3IEBAIGNkZWYgY2xhc3MgRmluaXRlU2V0TWFw X01OKENsb25hYmxlSW50QXJyYXkpOgorICAgICAgICAgcmV0dXJuIHJlcworIAorIAorLWNwZGVm IEZpbml0ZVNldE1hcF9TZXQgRmluaXRlU2V0TWFwX1NldF9mcm9tX2xpc3QodCwgcGFyZW50LCBs c3QpIG5vZXhjZXB0OgorK2NwZGVmIEZpbml0ZVNldE1hcF9TZXQgRmluaXRlU2V0TWFwX1NldF9m cm9tX2xpc3QodCwgcGFyZW50LCBsc3QpOgorICAgICAiIiIKKyAgICAgQ3JlYXRlcyBhIGBgRmlu aXRlU2V0TWFwYGAgZnJvbSBhIGxpc3QKKyAKK0BAIC00MDYsNyArNDA2LDcgQEAgY3BkZWYgRmlu aXRlU2V0TWFwX1NldCBGaW5pdGVTZXRNYXBfU2V0X2Zyb21fbGlzdCh0LCBwYXJlbnQsIGxzdCkg bm9leGNlcHQ6CisgICAgIHN1cGVyKEZpbml0ZVNldE1hcF9NTiwgcmVzKS5fX2luaXRfXyhwYXJl bnQsIGxzdCkKKyAgICAgcmV0dXJuIHJlcworIAorLWNwZGVmIEZpbml0ZVNldE1hcF9TZXQgRmlu aXRlU2V0TWFwX1NldF9mcm9tX2RpY3QodCwgcGFyZW50LCBkKSBub2V4Y2VwdDoKKytjcGRlZiBG aW5pdGVTZXRNYXBfU2V0IEZpbml0ZVNldE1hcF9TZXRfZnJvbV9kaWN0KHQsIHBhcmVudCwgZCk6 CisgICAgICIiIgorICAgICBDcmVhdGVzIGEgYGBGaW5pdGVTZXRNYXBgYCBmcm9tIGEgZGljdGlv bmFyeQorIAorQEAgLTQ5MSw3ICs0OTEsNyBAQCBjZGVmIGNsYXNzIEZpbml0ZVNldE1hcF9TZXQo RmluaXRlU2V0TWFwX01OKToKKyAgICAgICAgIHBhcmVudCA9IHNlbGYuX3BhcmVudAorICAgICAg ICAgcmV0dXJuIHBhcmVudC5fdW5yYW5rX2NvZG9tYWluKHNlbGYuX2dldGl0ZW0ocGFyZW50Ll9y YW5rX2RvbWFpbihpKSkpCisgCistICAgIGNwZGVmIGltYWdlX3NldChzZWxmKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgaW1hZ2Vfc2V0KHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1 cm5zIHRoZSBpbWFnZSBzZXQgb2YgYGBzZWxmYGAKKyAKK0BAIC01MDcsNyArNTA3LDcgQEAgY2Rl ZiBjbGFzcyBGaW5pdGVTZXRNYXBfU2V0KEZpbml0ZVNldE1hcF9NTik6CisgICAgICAgICBpbWFn ZV9pID0gc2VsZi5fcGFyZW50Ll91bnJhbmtfY29kb21haW4KKyAgICAgICAgIHJldHVybiBTZXRf b2JqZWN0X2VudW1lcmF0ZWQoW2ltYWdlX2koaSkgZm9yIGkgaW4gc2VsZl0pCisgCistICAgIGNw ZGVmIHNldGltYWdlKHNlbGYsIGksIGopIG5vZXhjZXB0OgorKyAgICBjcGRlZiBzZXRpbWFnZShz ZWxmLCBpLCBqKToKKyAgICAgICAgICIiIgorICAgICAgICAgU2V0IHRoZSBpbWFnZSBvZiBgYGlg YCBhcyBgYGpgYCBpbiBgYHNlbGZgYAorIAorQEAgLTU1MCw3ICs1NTAsNyBAQCBjZGVmIGNsYXNz IEZpbml0ZVNldE1hcF9TZXQoRmluaXRlU2V0TWFwX01OKToKKyAgICAgICAgIHBhcmVudCA9IHNl bGYuX3BhcmVudAorICAgICAgICAgcmV0dXJuIHNlbGYuX3NldGl0ZW0ocGFyZW50Ll9yYW5rX2Rv bWFpbihpKSwgcGFyZW50Ll9yYW5rX2NvZG9tYWluKGopKQorIAorLSAgICBjcGRlZiBnZXRpbWFn ZShzZWxmLCBpKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZ2V0aW1hZ2Uoc2VsZiwgaSk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIFJldHVybnMgdGhlIGltYWdlIG9mIGBgaWBgIGJ5IGBgc2VsZmBg CisgCitAQCAtNTY4LDcgKzU2OCw3IEBAIGNkZWYgY2xhc3MgRmluaXRlU2V0TWFwX1NldChGaW5p dGVTZXRNYXBfTU4pOgorICAgICAgICAgcGFyZW50ID0gc2VsZi5fcGFyZW50CisgICAgICAgICBy ZXR1cm4gcGFyZW50Ll91bnJhbmtfY29kb21haW4oc2VsZi5fZ2V0aXRlbShwYXJlbnQuX3Jhbmtf ZG9tYWluKGkpKSkKKyAKKy0gICAgY3BkZWYgaXRlbXMoc2VsZikgbm9leGNlcHQ6CisrICAgIGNw ZGVmIGl0ZW1zKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBUaGUgaXRlbXMgb2YgYGBz ZWxmYGAKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9zZXRzL3B5dGhvbmNsYXNzLnB4ZCBiL3Ny Yy9zYWdlL3NldHMvcHl0aG9uY2xhc3MucHhkCitpbmRleCA3MGMyNGY2NGQ5Yy4uNDM0NmQ5MTgz ODYgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9zZXRzL3B5dGhvbmNsYXNzLnB4ZAorKysrIGIvc3Jj L3NhZ2Uvc2V0cy9weXRob25jbGFzcy5weGQKK0BAIC01LDQgKzUsNCBAQCBjZGVmIGNsYXNzIFNl dF9QeXRob25UeXBlX2NsYXNzKFNldF9nZW5lcmljKToKKyAgICAgY2RlZiB0eXBlIF90eXBlCisg CisgCistY3BkZWYgU2V0X1B5dGhvblR5cGUodHlwKSBub2V4Y2VwdAorK2NwZGVmIFNldF9QeXRo b25UeXBlKHR5cCkKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9zZXRzL3B5dGhvbmNsYXNzLnB5eCBi L3NyYy9zYWdlL3NldHMvcHl0aG9uY2xhc3MucHl4CitpbmRleCBlZDhjNmQ5NDBjMi4uYmZhN2Yz YmM2MTcgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9zZXRzL3B5dGhvbmNsYXNzLnB5eAorKysrIGIv c3JjL3NhZ2Uvc2V0cy9weXRob25jbGFzcy5weXgKK0BAIC0xOSw3ICsxOSw3IEBAIGZyb20gc2Fn ZS5jYXRlZ29yaWVzLnNldHNfY2F0IGltcG9ydCBTZXRzCisgCisgY2RlZiBkaWN0IF90eXBlX3Nl dF9jYWNoZSA9IHt9CisgCistY3BkZWYgU2V0X1B5dGhvblR5cGUodHlwKSBub2V4Y2VwdDoKKytj cGRlZiBTZXRfUHl0aG9uVHlwZSh0eXApOgorICAgICAiIiIKKyAgICAgUmV0dXJuIHRoZSAodW5p cXVlKSBQYXJlbnQgdGhhdCByZXByZXNlbnRzIHRoZSBzZXQgb2YgUHl0aG9uIG9iamVjdHMKKyAg ICAgb2YgYSBzcGVjaWZpZWQgdHlwZS4KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9zZXRzL3JlY3Vy c2l2ZWx5X2VudW1lcmF0ZWRfc2V0LnB4ZCBiL3NyYy9zYWdlL3NldHMvcmVjdXJzaXZlbHlfZW51 bWVyYXRlZF9zZXQucHhkCitpbmRleCA3ZGY3ZTI4ZWMyOC4uNDhjODMxMjQ1NmMgMTAwNjQ0Cist LS0gYS9zcmMvc2FnZS9zZXRzL3JlY3Vyc2l2ZWx5X2VudW1lcmF0ZWRfc2V0LnB4ZAorKysrIGIv c3JjL3NhZ2Uvc2V0cy9yZWN1cnNpdmVseV9lbnVtZXJhdGVkX3NldC5weGQKK0BAIC0xNiwxNSAr MTYsMTUgQEAgY2RlZiBjbGFzcyBSZWN1cnNpdmVseUVudW1lcmF0ZWRTZXRfZ2VuZXJpYyhzYWdl LnN0cnVjdHVyZS5wYXJlbnQuUGFyZW50KToKKyAgICAgY2RlZiByZWFkb25seSBfbWF4X2RlcHRo CisgICAgIGNkZWYgcmVhZG9ubHkgX2dyYWRlZF9jb21wb25lbnQKKyAKKy0gICAgY3BkZWYgc2Vl ZHMoc2VsZikgbm9leGNlcHQKKy0gICAgY3BkZWYgZ3JhZGVkX2NvbXBvbmVudChzZWxmLCBkZXB0 aCkgbm9leGNlcHQKKysgICAgY3BkZWYgc2VlZHMoc2VsZikKKysgICAgY3BkZWYgZ3JhZGVkX2Nv bXBvbmVudChzZWxmLCBkZXB0aCkKKyAKKyBjZGVmIGNsYXNzIFJlY3Vyc2l2ZWx5RW51bWVyYXRl ZFNldF9zeW1tZXRyaWMoUmVjdXJzaXZlbHlFbnVtZXJhdGVkU2V0X2dlbmVyaWMpOgorLSAgICBj ZGVmIHNldCBfZ2V0X25leHRfZ3JhZGVkX2NvbXBvbmVudChzZWxmLCBzZXQgQSwgc2V0IEIpIG5v ZXhjZXB0CisrICAgIGNkZWYgc2V0IF9nZXRfbmV4dF9ncmFkZWRfY29tcG9uZW50KHNlbGYsIHNl dCBBLCBzZXQgQikKKyAKKy0gICAgY3BkZWYgZ3JhZGVkX2NvbXBvbmVudChzZWxmLCBkZXB0aCkg bm9leGNlcHQKKysgICAgY3BkZWYgZ3JhZGVkX2NvbXBvbmVudChzZWxmLCBkZXB0aCkKKyAKKyBj ZGVmIGNsYXNzIFJlY3Vyc2l2ZWx5RW51bWVyYXRlZFNldF9ncmFkZWQoUmVjdXJzaXZlbHlFbnVt ZXJhdGVkU2V0X2dlbmVyaWMpOgorLSAgICBjZGVmIHNldCBfZ2V0X25leHRfZ3JhZGVkX2NvbXBv bmVudChzZWxmLCBzZXQgQikgbm9leGNlcHQKKysgICAgY2RlZiBzZXQgX2dldF9uZXh0X2dyYWRl ZF9jb21wb25lbnQoc2VsZiwgc2V0IEIpCisgCistICAgIGNwZGVmIGdyYWRlZF9jb21wb25lbnQo c2VsZiwgZGVwdGgpIG5vZXhjZXB0CisrICAgIGNwZGVmIGdyYWRlZF9jb21wb25lbnQoc2VsZiwg ZGVwdGgpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvc2V0cy9yZWN1cnNpdmVseV9lbnVtZXJhdGVk X3NldC5weXggYi9zcmMvc2FnZS9zZXRzL3JlY3Vyc2l2ZWx5X2VudW1lcmF0ZWRfc2V0LnB5eAor aW5kZXggYmYyYTllOWMzNjMuLjk1ZDU1ZTFiNzU3IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uvc2V0 cy9yZWN1cnNpdmVseV9lbnVtZXJhdGVkX3NldC5weXgKKysrKyBiL3NyYy9zYWdlL3NldHMvcmVj dXJzaXZlbHlfZW51bWVyYXRlZF9zZXQucHl4CitAQCAtNjk2LDcgKzY5Niw3IEBAIGNkZWYgY2xh c3MgUmVjdXJzaXZlbHlFbnVtZXJhdGVkU2V0X2dlbmVyaWMoUGFyZW50KToKKyAgICAgICAgICAg ICBMLmFwcGVuZCgid2l0aCBtYXhfZGVwdGg9e30iLmZvcm1hdChzZWxmLl9tYXhfZGVwdGgpKQor ICAgICAgICAgcmV0dXJuICIgIi5qb2luKEwpCisgCistICAgIGNwZGVmIHNlZWRzKHNlbGYpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBzZWVkcyhzZWxmKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAg IFJldHVybiBhbiBpdGVyYWJsZSBvdmVyIHRoZSBzZWVkcyBvZiBgYHNlbGZgYC4KKyAKK0BAIC03 NDYsNyArNzQ2LDcgQEAgY2RlZiBjbGFzcyBSZWN1cnNpdmVseUVudW1lcmF0ZWRTZXRfZ2VuZXJp YyhQYXJlbnQpOgorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigiZ3JhZGVkX2Nv bXBvbmVudF9pdGVyYXRvciBtZXRob2QgY3VycmVudGx5IgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiIGltcGxlbWVudGVkIG9ubHkgZm9yIGdyYWRlZCBvciBzeW1tZXRyaWMg c3RydWN0dXJlIikKKyAKKy0gICAgY3BkZWYgZ3JhZGVkX2NvbXBvbmVudChzZWxmLCBkZXB0aCkg bm9leGNlcHQ6CisrICAgIGNwZGVmIGdyYWRlZF9jb21wb25lbnQoc2VsZiwgZGVwdGgpOgorICAg ICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBncmFkZWQgY29tcG9uZW50IG9mIGdpdmVu IGRlcHRoLgorIAorQEAgLTExNzUsNyArMTE3NSw3IEBAIGNkZWYgY2xhc3MgUmVjdXJzaXZlbHlF bnVtZXJhdGVkU2V0X3N5bW1ldHJpYyhSZWN1cnNpdmVseUVudW1lcmF0ZWRTZXRfZ2VuZXJpYyk6 CisgICAgICAgICAgICAgeWllbGQgQgorICAgICAgICAgICAgIEEsIEIgPSBCLCBzZWxmLl9nZXRf bmV4dF9ncmFkZWRfY29tcG9uZW50KEEsIEIpCisgCistICAgIGNwZGVmIGdyYWRlZF9jb21wb25l bnQoc2VsZiwgZGVwdGgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBncmFkZWRfY29tcG9uZW50KHNl bGYsIGRlcHRoKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUgZ3JhZGVkIGNv bXBvbmVudCBvZiBnaXZlbiBkZXB0aC4KKyAKK0BAIC0xMjQyLDcgKzEyNDIsNyBAQCBjZGVmIGNs YXNzIFJlY3Vyc2l2ZWx5RW51bWVyYXRlZFNldF9zeW1tZXRyaWMoUmVjdXJzaXZlbHlFbnVtZXJh dGVkU2V0X2dlbmVyaWMpOgorICAgICAgICAgICAgIHNlbGYuX2dyYWRlZF9jb21wb25lbnQuYXBw ZW5kKEMpCisgICAgICAgICByZXR1cm4gc2VsZi5fZ3JhZGVkX2NvbXBvbmVudFtkZXB0aF0KKyAK Ky0gICAgY2RlZiBzZXQgX2dldF9uZXh0X2dyYWRlZF9jb21wb25lbnQoc2VsZiwgc2V0IEEsIHNl dCBCKSBub2V4Y2VwdDoKKysgICAgY2RlZiBzZXQgX2dldF9uZXh0X2dyYWRlZF9jb21wb25lbnQo c2VsZiwgc2V0IEEsIHNldCBCKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0aGUg c2V0IG9mIGVsZW1lbnRzIG9mIGRlcHRoIGBuKzFgLgorIAorQEAgLTEzOTcsNyArMTM5Nyw3IEBA IGNkZWYgY2xhc3MgUmVjdXJzaXZlbHlFbnVtZXJhdGVkU2V0X2dyYWRlZChSZWN1cnNpdmVseUVu dW1lcmF0ZWRTZXRfZ2VuZXJpYyk6CisgICAgICAgICAgICAgeWllbGQgQgorICAgICAgICAgICAg IEIgPSBzZWxmLl9nZXRfbmV4dF9ncmFkZWRfY29tcG9uZW50KEIpCisgCistICAgIGNwZGVmIGdy YWRlZF9jb21wb25lbnQoc2VsZiwgZGVwdGgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBncmFkZWRf Y29tcG9uZW50KHNlbGYsIGRlcHRoKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVybiB0 aGUgZ3JhZGVkIGNvbXBvbmVudCBvZiBnaXZlbiBkZXB0aC4KKyAKK0BAIC0xNDYwLDcgKzE0NjAs NyBAQCBjZGVmIGNsYXNzIFJlY3Vyc2l2ZWx5RW51bWVyYXRlZFNldF9ncmFkZWQoUmVjdXJzaXZl bHlFbnVtZXJhdGVkU2V0X2dlbmVyaWMpOgorICAgICAgICAgICAgIHNlbGYuX2dyYWRlZF9jb21w b25lbnQuYXBwZW5kKEMpCisgICAgICAgICByZXR1cm4gc2VsZi5fZ3JhZGVkX2NvbXBvbmVudFtk ZXB0aF0KKyAKKy0gICAgY2RlZiBzZXQgX2dldF9uZXh0X2dyYWRlZF9jb21wb25lbnQoc2VsZiwg c2V0IEIpIG5vZXhjZXB0OgorKyAgICBjZGVmIHNldCBfZ2V0X25leHRfZ3JhZGVkX2NvbXBvbmVu dChzZWxmLCBzZXQgQik6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gdGhlIHNldCBv ZiBlbGVtZW50cyBvZiBkZXB0aCBgbisxYC4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9zdGF0 cy9obW0vY2htbS5weXggYi9zcmMvc2FnZS9zdGF0cy9obW0vY2htbS5weXgKK2luZGV4IDkwNWE3 N2VkMzg1Li5mMDk0MGM1ODQ5ZCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3N0YXRzL2htbS9jaG1t LnB5eAorKysrIGIvc3JjL3NhZ2Uvc3RhdHMvaG1tL2NobW0ucHl4CitAQCAtNDQ2LDcgKzQ0Niw3 IEBAIGNkZWYgY2xhc3MgR2F1c3NpYW5IaWRkZW5NYXJrb3ZNb2RlbChIaWRkZW5NYXJrb3ZNb2Rl bCk6CisgCisgICAgICAgICByZXR1cm4gb2JzLCBzdGF0ZXMKKyAKKy0gICAgY2RlZiBwcm9iYWJp bGl0eV9pbml0KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIHByb2JhYmlsaXR5X2luaXQoc2Vs Zik6CisgICAgICAgICByIiIiCisgICAgICAgICBVc2VkIGludGVybmFsbHkgdG8gY29tcHV0ZSBj YWNoaW5nIGluZm9ybWF0aW9uIHRoYXQgbWFrZXMKKyAgICAgICAgIGNlcnRhaW4gY29tcHV0YXRp b25zIGluIHRoZSBCYXVtLVdlbGNoIGFsZ29yaXRobSBmYXN0ZXIuICBUaGlzCitAQCAtNzE2LDcg KzcxNiw3IEBAIGNkZWYgY2xhc3MgR2F1c3NpYW5IaWRkZW5NYXJrb3ZNb2RlbChIaWRkZW5NYXJr b3ZNb2RlbCk6CisgCisgICAgICAgICByZXR1cm4gc3RhdGVfc2VxdWVuY2UsIG14CisgCistICAg IGNkZWYgVGltZVNlcmllcyBfYmFja3dhcmRfc2NhbGVfYWxsKHNlbGYsIFRpbWVTZXJpZXMgb2Jz LCBUaW1lU2VyaWVzIHNjYWxlKSBub2V4Y2VwdDoKKysgICAgY2RlZiBUaW1lU2VyaWVzIF9iYWNr d2FyZF9zY2FsZV9hbGwoc2VsZiwgVGltZVNlcmllcyBvYnMsIFRpbWVTZXJpZXMgc2NhbGUpOgor ICAgICAgICAgciIiIgorICAgICAgICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBtYXRyaXgg YmV0YV90KGkpLCBhbmQgaXMgdXNlZAorICAgICAgICAgaW50ZXJuYWxseSBhcyBwYXJ0IG9mIHRo ZSBCYXVtLVdlbGNoIGFsZ29yaXRobS4KK0BAIC03NTYsNyArNzU2LDcgQEAgY2RlZiBjbGFzcyBH YXVzc2lhbkhpZGRlbk1hcmtvdk1vZGVsKEhpZGRlbk1hcmtvdk1vZGVsKToKKyAgICAgICAgICAg ICB0IC09IDEKKyAgICAgICAgIHJldHVybiBiZXRhCisgCistICAgIGNkZWYgX2ZvcndhcmRfc2Nh bGVfYWxsKHNlbGYsIFRpbWVTZXJpZXMgb2JzKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfZm9yd2Fy ZF9zY2FsZV9hbGwoc2VsZiwgVGltZVNlcmllcyBvYnMpOgorICAgICAgICAgciIiIgorICAgICAg ICAgUmV0dXJuIHNjYWxlZCB2YWx1ZXMgYWxwaGFfdChpKSwgdGhlIHNlcXVlbmNlIG9mIHNjYWxp bmdzLCBhbmQKKyAgICAgICAgIHRoZSBsb2cgcHJvYmFiaWxpdHkuCitAQCAtODIxLDcgKzgyMSw3 IEBAIGNkZWYgY2xhc3MgR2F1c3NpYW5IaWRkZW5NYXJrb3ZNb2RlbChIaWRkZW5NYXJrb3ZNb2Rl bCk6CisgICAgICAgICAjIFRlcm1pbmF0aW9uCisgICAgICAgICByZXR1cm4gYWxwaGEsIHNjYWxl LCBsb2dfcHJvYmFiaWxpdHkKKyAKKy0gICAgY2RlZiBUaW1lU2VyaWVzIF9iYXVtX3dlbGNoX3hp KHNlbGYsIFRpbWVTZXJpZXMgYWxwaGEsIFRpbWVTZXJpZXMgYmV0YSwgVGltZVNlcmllcyBvYnMp IG5vZXhjZXB0OgorKyAgICBjZGVmIFRpbWVTZXJpZXMgX2JhdW1fd2VsY2hfeGkoc2VsZiwgVGlt ZVNlcmllcyBhbHBoYSwgVGltZVNlcmllcyBiZXRhLCBUaW1lU2VyaWVzIG9icyk6CisgICAgICAg ICByIiIiCisgICAgICAgICBVc2VkIGludGVybmFsbHkgdG8gY29tcHV0ZSB0aGUgc2NhbGVkIHF1 YW50aXR5IHhpX3QoaSxqKQorICAgICAgICAgYXBwZWFyaW5nIGluIHRoZSBCYXVtLVdlbGNoIHJl ZXN0aW1hdGlvbiBhbGdvcml0aG0uCitAQCAtMTI5Miw3ICsxMjkyLDcgQEAgY2RlZiBjbGFzcyBH YXVzc2lhbk1peHR1cmVIaWRkZW5NYXJrb3ZNb2RlbChHYXVzc2lhbkhpZGRlbk1hcmtvdk1vZGVs KToKKyAgICAgICAgIHJldHVybiBHLnByb2Iob2JzZXJ2YXRpb24pCisgCisgICAgIGNkZWYgVGlt ZVNlcmllcyBfYmF1bV93ZWxjaF9taXhlZF9nYW1tYShzZWxmLCBUaW1lU2VyaWVzIGFscGhhLCBU aW1lU2VyaWVzIGJldGEsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBUaW1lU2VyaWVzIG9icywgaW50IGopIG5vZXhjZXB0OgorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgVGltZVNlcmllcyBvYnMsIGludCBqKToKKyAgICAg ICAgIHIiIiIKKyAgICAgICAgIExldCBnYW1tYV90KGosbSkgYmUgdGhlIG0tY29tcG9uZW50IChp biB0aGUgbWl4dHVyZSkgb2YgdGhlCisgICAgICAgICBwcm9iYWJpbGl0eSBvZiBiZWluZyBpbiBz dGF0ZSBqIGF0IHRpbWUgdCwgZ2l2ZW4gdGhlCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvc3RhdHMv aG1tL2Rpc3RyaWJ1dGlvbnMucHhkIGIvc3JjL3NhZ2Uvc3RhdHMvaG1tL2Rpc3RyaWJ1dGlvbnMu cHhkCitpbmRleCA3ZDYxM2IyMmE2NC4uNzNlNGRiYzZhOWIgMTAwNjQ0CistLS0gYS9zcmMvc2Fn ZS9zdGF0cy9obW0vZGlzdHJpYnV0aW9ucy5weGQKKysrKyBiL3NyYy9zYWdlL3N0YXRzL2htbS9k aXN0cmlidXRpb25zLnB4ZAorQEAgLTI1LDcgKzI1LDcgQEAgY2RlZiBjbGFzcyBHYXVzc2lhbk1p eHR1cmVEaXN0cmlidXRpb24oRGlzdHJpYnV0aW9uKToKKyAgICAgY2RlZiBkb3VibGUgX3NhbXBs ZShzZWxmLCByYW5kc3RhdGUgcnN0YXRlKSBub2V4Y2VwdAorICAgICBjcGRlZiBkb3VibGUgcHJv YihzZWxmLCBkb3VibGUgeCkgbm9leGNlcHQKKyAgICAgY3BkZWYgZG91YmxlIHByb2JfbShzZWxm LCBkb3VibGUgeCwgaW50IG0pIG5vZXhjZXB0CistICAgIGNwZGVmIGlzX2ZpeGVkKHNlbGYsIGk9 Pykgbm9leGNlcHQKKysgICAgY3BkZWYgaXNfZml4ZWQoc2VsZiwgaT0/KQorIAorIAorIAorZGlm ZiAtLWdpdCBhL3NyYy9zYWdlL3N0YXRzL2htbS9kaXN0cmlidXRpb25zLnB5eCBiL3NyYy9zYWdl L3N0YXRzL2htbS9kaXN0cmlidXRpb25zLnB5eAoraW5kZXggMGEyNzUzM2Q3NGUuLmRkNDg2MDMx N2UxIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uvc3RhdHMvaG1tL2Rpc3RyaWJ1dGlvbnMucHl4Cisr KysgYi9zcmMvc2FnZS9zdGF0cy9obW0vZGlzdHJpYnV0aW9ucy5weXgKK0BAIC0yODMsNyArMjgz LDcgQEAgY2RlZiBjbGFzcyBHYXVzc2lhbk1peHR1cmVEaXN0cmlidXRpb24oRGlzdHJpYnV0aW9u KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuYzAuX2xlbmd0aAorIAorLSAg ICBjcGRlZiBpc19maXhlZChzZWxmLCBpPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBpc19m aXhlZChzZWxmLCBpPU5vbmUpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHdoZXRo ZXIgb3Igbm90IHRoaXMgOmNsYXNzOmBHYXVzc2lhbk1peHR1cmVEaXN0cmlidXRpb25gIGlzCisg ICAgICAgICBmaXhlZCB3aGVuIHVzaW5nIEJhdW0tV2VsY2ggdG8gdXBkYXRlIHRoZSBjb3JyZXNw b25kaW5nIEhNTS4KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9zdGF0cy9obW0vaG1tLnB4ZCBiL3Ny Yy9zYWdlL3N0YXRzL2htbS9obW0ucHhkCitpbmRleCBmNjdkZTEwMGE5Mi4uMWFiY2I5NTM5MmIg MTAwNjQ0CistLS0gYS9zcmMvc2FnZS9zdGF0cy9obW0vaG1tLnB4ZAorKysrIGIvc3JjL3NhZ2Uv c3RhdHMvaG1tL2htbS5weGQKK0BAIC0xMyw1ICsxMyw1IEBAIGNkZWYgY2xhc3MgSGlkZGVuTWFy a292TW9kZWw6CisgICAgIGNkZWYgaW50IE4KKyAgICAgY2RlZiBUaW1lU2VyaWVzIEEsIHBpCisg CistICAgIGNkZWYgVGltZVNlcmllcyBfYmF1bV93ZWxjaF9nYW1tYShzZWxmLCBUaW1lU2VyaWVz IGFscGhhLCBUaW1lU2VyaWVzIGJldGEpIG5vZXhjZXB0CisrICAgIGNkZWYgVGltZVNlcmllcyBf YmF1bV93ZWxjaF9nYW1tYShzZWxmLCBUaW1lU2VyaWVzIGFscGhhLCBUaW1lU2VyaWVzIGJldGEp CisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvc3RhdHMvaG1tL2htbS5weXggYi9zcmMvc2FnZS9z dGF0cy9obW0vaG1tLnB5eAoraW5kZXggZjRhNjExMTE3OTQuLjA5MzVjOTM5OGVlIDEwMDY0NAor LS0tIGEvc3JjL3NhZ2Uvc3RhdHMvaG1tL2htbS5weXgKKysrKyBiL3NyYy9zYWdlL3N0YXRzL2ht bS9obW0ucHl4CitAQCAtMjI0LDcgKzIyNCw3IEBAIGNkZWYgY2xhc3MgSGlkZGVuTWFya292TW9k ZWw6CisgICAgICMgU29tZSBpbnRlcm5hbCBmdW5jdGlvbnMgdXNlZCBmb3IgdmFyaW91cyBnZW5l cmFsCisgICAgICMgSE1NIGFsZ29yaXRobXMuCisgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworLSAgICBjZGVmIFRpbWVTZXJpZXMg X2JhdW1fd2VsY2hfZ2FtbWEoc2VsZiwgVGltZVNlcmllcyBhbHBoYSwgVGltZVNlcmllcyBiZXRh KSBub2V4Y2VwdDoKKysgICAgY2RlZiBUaW1lU2VyaWVzIF9iYXVtX3dlbGNoX2dhbW1hKHNlbGYs IFRpbWVTZXJpZXMgYWxwaGEsIFRpbWVTZXJpZXMgYmV0YSk6CisgICAgICAgICByIiIiCisgICAg ICAgICBVc2VkIGludGVybmFsbHkgdG8gY29tcHV0ZSB0aGUgc2NhbGVkIHF1YW50aXR5IGdhbW1h X3QoaikKKyAgICAgICAgIGFwcGVhcmluZyBpbiB0aGUgQmF1bS1XZWxjaCByZWVzdGltYXRpb24g YWxnb3JpdGhtLgorQEAgLTg5Nyw3ICs4OTcsNyBAQCBjZGVmIGNsYXNzIERpc2NyZXRlSGlkZGVu TWFya292TW9kZWwoSGlkZGVuTWFya292TW9kZWwpOgorICAgICAgICAgZWxzZToKKyAgICAgICAg ICAgICByZXR1cm4gc2VsZi5fdml0ZXJiaShvYnMpCisgCistICAgIGNwZGVmIF92aXRlcmJpKHNl bGYsIEludExpc3Qgb2JzKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3ZpdGVyYmkoc2VsZiwgSW50 TGlzdCBvYnMpOgorICAgICAgICAgciIiIgorICAgICAgICAgVXNlZCBpbnRlcm5hbGx5IHRvIGNv bXB1dGUgdGhlIHZpdGVyYmkgcGF0aCwgd2l0aG91dAorICAgICAgICAgcmVzY2FsaW5nLiAgVGhp cyBjYW4gYmUgdXNlZnVsIGZvciBzaG9ydCBzZXF1ZW5jZXMuCitAQCAtOTc3LDcgKzk3Nyw3IEBA IGNkZWYgY2xhc3MgRGlzY3JldGVIaWRkZW5NYXJrb3ZNb2RlbChIaWRkZW5NYXJrb3ZNb2RlbCk6 CisgICAgICAgICByZXR1cm4gc3RhdGVfc2VxdWVuY2UsIGxvZyhteCkKKyAKKyAKKy0gICAgY3Bk ZWYgX3ZpdGVyYmlfc2NhbGUoc2VsZiwgSW50TGlzdCBvYnMpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBfdml0ZXJiaV9zY2FsZShzZWxmLCBJbnRMaXN0IG9icyk6CisgICAgICAgICByIiIiCisgICAg ICAgICBVc2VkIGludGVybmFsbHkgdG8gY29tcHV0ZSB0aGUgdml0ZXJiaSBwYXRoIHdpdGggcmVz Y2FsaW5nLgorIAorQEAgLTEwNjEsNyArMTA2MSw3IEBAIGNkZWYgY2xhc3MgRGlzY3JldGVIaWRk ZW5NYXJrb3ZNb2RlbChIaWRkZW5NYXJrb3ZNb2RlbCk6CisgCisgICAgICAgICByZXR1cm4gc3Rh dGVfc2VxdWVuY2UsIG14CisgCistICAgIGNkZWYgVGltZVNlcmllcyBfYmFja3dhcmRfc2NhbGVf YWxsKHNlbGYsIEludExpc3Qgb2JzLCBUaW1lU2VyaWVzIHNjYWxlKSBub2V4Y2VwdDoKKysgICAg Y2RlZiBUaW1lU2VyaWVzIF9iYWNrd2FyZF9zY2FsZV9hbGwoc2VsZiwgSW50TGlzdCBvYnMsIFRp bWVTZXJpZXMgc2NhbGUpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJuIHRoZSBzY2Fs ZWQgbWF0cml4IG9mIHZhbHVlcyBgXGJldGFfdChpKWAgdGhhdCBhcHBlYXIgaW4KKyAgICAgICAg IHRoZSBiYWNrdHJhY2tpbmcgYWxnb3JpdGhtLiAgVGhpcyBmdW5jdGlvbiBpcyB1c2VkIGludGVy bmFsbHkKK0BAIC0xMTA4LDcgKzExMDgsNyBAQCBjZGVmIGNsYXNzIERpc2NyZXRlSGlkZGVuTWFy a292TW9kZWwoSGlkZGVuTWFya292TW9kZWwpOgorICAgICAgICAgICAgIHQgLT0gMQorICAgICAg ICAgcmV0dXJuIGJldGEKKyAKKy0gICAgY2RlZiBfZm9yd2FyZF9zY2FsZV9hbGwoc2VsZiwgSW50 TGlzdCBvYnMpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9mb3J3YXJkX3NjYWxlX2FsbChzZWxmLCBJ bnRMaXN0IG9icyk6CisgICAgICAgICByIiIiCisgICAgICAgICBSZXR1cm4gc2NhbGVkIHZhbHVl cyBhbHBoYV90KGkpLCB0aGUgc2VxdWVuY2Ugb2Ygc2NhbGluZ3MsIGFuZAorICAgICAgICAgdGhl IGxvZyBwcm9iYWJpbGl0eS4KK0BAIC0xMTY5LDcgKzExNjksNyBAQCBjZGVmIGNsYXNzIERpc2Ny ZXRlSGlkZGVuTWFya292TW9kZWwoSGlkZGVuTWFya292TW9kZWwpOgorICAgICAgICAgIyBUZXJt aW5hdGlvbgorICAgICAgICAgcmV0dXJuIGFscGhhLCBzY2FsZSwgbG9nX3Byb2JhYmlsaXR5Cisg CistICAgIGNkZWYgVGltZVNlcmllcyBfYmF1bV93ZWxjaF94aShzZWxmLCBUaW1lU2VyaWVzIGFs cGhhLCBUaW1lU2VyaWVzIGJldGEsIEludExpc3Qgb2JzKSBub2V4Y2VwdDoKKysgICAgY2RlZiBU aW1lU2VyaWVzIF9iYXVtX3dlbGNoX3hpKHNlbGYsIFRpbWVTZXJpZXMgYWxwaGEsIFRpbWVTZXJp ZXMgYmV0YSwgSW50TGlzdCBvYnMpOgorICAgICAgICAgciIiIgorICAgICAgICAgVXNlZCBpbnRl cm5hbGx5IHRvIGNvbXB1dGUgdGhlIHNjYWxlZCBxdWFudGl0eSB4aV90KGksaikKKyAgICAgICAg IGFwcGVhcmluZyBpbiB0aGUgQmF1bS1XZWxjaCByZWVzdGltYXRpb24gYWxnb3JpdGhtLgorZGlm ZiAtLWdpdCBhL3NyYy9zYWdlL3N0YXRzL2htbS91dGlsLnB4ZCBiL3NyYy9zYWdlL3N0YXRzL2ht bS91dGlsLnB4ZAoraW5kZXggODRhMGUyMDFhMWIuLmIwZDM5OWQ5YWFmIDEwMDY0NAorLS0tIGEv c3JjL3NhZ2Uvc3RhdHMvaG1tL3V0aWwucHhkCisrKysgYi9zcmMvc2FnZS9zdGF0cy9obW0vdXRp bC5weGQKK0BAIC0xLDcgKzEsNyBAQAorIGZyb20gc2FnZS5zdGF0cy50aW1lX3NlcmllcyBjaW1w b3J0IFRpbWVTZXJpZXMKKyAKKyBjZGVmIGNsYXNzIEhNTV9VdGlsOgorLSAgICBjcGRlZiBub3Jt YWxpemVfcHJvYmFiaWxpdHlfVGltZVNlcmllcyhzZWxmLCBUaW1lU2VyaWVzIFQsIFB5X3NzaXpl X3QgaSwgUHlfc3NpemVfdCBqKSBub2V4Y2VwdAorLSAgICBjcGRlZiBUaW1lU2VyaWVzIGluaXRp YWxfcHJvYnNfdG9fVGltZVNlcmllcyhzZWxmLCBwaSwgYmludCBub3JtYWxpemUpIG5vZXhjZXB0 CistICAgIGNwZGVmIFRpbWVTZXJpZXMgc3RhdGVfbWF0cml4X3RvX1RpbWVTZXJpZXMoc2VsZiwg QSwgaW50IE4sIGJpbnQgbm9ybWFsaXplKSBub2V4Y2VwdAorKyAgICBjcGRlZiBub3JtYWxpemVf cHJvYmFiaWxpdHlfVGltZVNlcmllcyhzZWxmLCBUaW1lU2VyaWVzIFQsIFB5X3NzaXplX3QgaSwg UHlfc3NpemVfdCBqKQorKyAgICBjcGRlZiBUaW1lU2VyaWVzIGluaXRpYWxfcHJvYnNfdG9fVGlt ZVNlcmllcyhzZWxmLCBwaSwgYmludCBub3JtYWxpemUpCisrICAgIGNwZGVmIFRpbWVTZXJpZXMg c3RhdGVfbWF0cml4X3RvX1RpbWVTZXJpZXMoc2VsZiwgQSwgaW50IE4sIGJpbnQgbm9ybWFsaXpl KQorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3N0YXRzL2htbS91dGlsLnB5eCBiL3NyYy9zYWdl L3N0YXRzL2htbS91dGlsLnB5eAoraW5kZXggZmM4NDk3NDJiODAuLjU1M2ViOTk3MzY0IDEwMDY0 NAorLS0tIGEvc3JjL3NhZ2Uvc3RhdHMvaG1tL3V0aWwucHl4CisrKysgYi9zcmMvc2FnZS9zdGF0 cy9obW0vdXRpbC5weXgKK0BAIC0yMiw3ICsyMiw3IEBAIGNkZWYgY2xhc3MgSE1NX1V0aWw6Cisg ICAgICIiIgorICAgICBBIGNsYXNzIHVzZWQgaW4gb3JkZXIgdG8gc2hhcmUgY2RlZidzIG1ldGhv ZHMgYmV0d2VlbiBkaWZmZXJlbnQgZmlsZXMuCisgICAgICIiIgorLSAgICBjcGRlZiBub3JtYWxp emVfcHJvYmFiaWxpdHlfVGltZVNlcmllcyhzZWxmLCBUaW1lU2VyaWVzIFQsIFB5X3NzaXplX3Qg aSwgUHlfc3NpemVfdCBqKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgbm9ybWFsaXplX3Byb2JhYmls aXR5X1RpbWVTZXJpZXMoc2VsZiwgVGltZVNlcmllcyBULCBQeV9zc2l6ZV90IGksIFB5X3NzaXpl X3Qgaik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCBpbnRl cm5hbGx5IGJ5IHRoZSBIaWRkZW4gTWFya292IE1vZGVscyBjb2RlLgorIAorQEAgLTg2LDcgKzg2 LDcgQEAgY2RlZiBjbGFzcyBITU1fVXRpbDoKKyAKKyAKKyAKKy0gICAgY3BkZWYgVGltZVNlcmll cyBpbml0aWFsX3Byb2JzX3RvX1RpbWVTZXJpZXMoc2VsZiwgcGksIGJpbnQgbm9ybWFsaXplKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgVGltZVNlcmllcyBpbml0aWFsX3Byb2JzX3RvX1RpbWVTZXJp ZXMoc2VsZiwgcGksIGJpbnQgbm9ybWFsaXplKToKKyAgICAgICAgICIiIgorICAgICAgICAgVGhp cyBmdW5jdGlvbiBpcyB1c2VkIGludGVybmFsbHkgYnkgdGhlIF9faW5pdF9fIG1ldGhvZHMgb2YK KyAgICAgICAgIHZhcmlvdXMgSGlkZGVuIE1hcmtvdiBNb2RlbHMuCitAQCAtMTI1LDcgKzEyNSw3 IEBAIGNkZWYgY2xhc3MgSE1NX1V0aWw6CisgICAgICAgICByZXR1cm4gVAorIAorIAorLSAgICBj cGRlZiBUaW1lU2VyaWVzIHN0YXRlX21hdHJpeF90b19UaW1lU2VyaWVzKHNlbGYsIEEsIGludCBO LCBiaW50IG5vcm1hbGl6ZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIFRpbWVTZXJpZXMgc3RhdGVf bWF0cml4X3RvX1RpbWVTZXJpZXMoc2VsZiwgQSwgaW50IE4sIGJpbnQgbm9ybWFsaXplKToKKyAg ICAgICAgICIiIgorICAgICAgICAgVGhpcyBmdW5jdGlvbiBpcyB1c2VkIGludGVybmFsbHkgYnkg dGhlIGBgX19pbml0X19gYCBtZXRob2RzIG9mCisgICAgICAgICBIaWRkZW4gTWFya292IE1vZGVs cyB0byBtYWtlIGEgdHJhbnNpdGlvbiBtYXRyaXggZnJvbSBgYEFgYC4KK2RpZmYgLS1naXQgYS9z cmMvc2FnZS9zdGF0cy9pbnRsaXN0LnB5eCBiL3NyYy9zYWdlL3N0YXRzL2ludGxpc3QucHl4Citp bmRleCBjZTVhYmZjOGI3Yi4uZmNjYmI1NmU2ODAgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9zdGF0 cy9pbnRsaXN0LnB5eAorKysrIGIvc3JjL3NhZ2Uvc3RhdHMvaW50bGlzdC5weXgKK0BAIC01NDQs NyArNTQ0LDcgQEAgY2RlZiBjbGFzcyBJbnRMaXN0OgorICAgICAgICAgcmV0dXJuIHNlbGYudGlt ZV9zZXJpZXMoKS5wbG90X2hpc3RvZ3JhbSgqYXJncywgKiprd2RzKQorIAorIAorLWNkZWYgSW50 TGlzdCBuZXdfaW50X2xpc3QoUHlfc3NpemVfdCBsZW5ndGgpIG5vZXhjZXB0OgorK2NkZWYgSW50 TGlzdCBuZXdfaW50X2xpc3QoUHlfc3NpemVfdCBsZW5ndGgpOgorICAgICAiIiIKKyAgICAgRnVu Y3Rpb24gdGhhdCBpcyB1c2VkIGludGVybmFsbHkgdG8gcXVpY2tseSBjcmVhdGUgYSBuZXcgaW50 bGlzdAorICAgICB3aXRob3V0IGluaXRpYWxpemluZyBhbnkgb2YgdGhlIGFsbG9jYXRlZCBtZW1v cnkuCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvc3RhdHMvdGltZV9zZXJpZXMucHhkIGIvc3JjL3Nh Z2Uvc3RhdHMvdGltZV9zZXJpZXMucHhkCitpbmRleCA3YTA0NGI1MmRhOS4uODZhOTA5NWJhNzUg MTAwNjQ0CistLS0gYS9zcmMvc2FnZS9zdGF0cy90aW1lX3Nlcmllcy5weGQKKysrKyBiL3NyYy9z YWdlL3N0YXRzL3RpbWVfc2VyaWVzLnB4ZAorQEAgLTEsNSArMSw1IEBACisgY2RlZiBjbGFzcyBU aW1lU2VyaWVzOgorICAgICBjZGVmIGRvdWJsZSogX3ZhbHVlcworICAgICBjZGVmIFB5X3NzaXpl X3QgX2xlbmd0aAorLSAgICBjcGRlZiByZXNjYWxlKHNlbGYsIGRvdWJsZSBzKSBub2V4Y2VwdAor KyAgICBjcGRlZiByZXNjYWxlKHNlbGYsIGRvdWJsZSBzKQorICAgICBjcGRlZiBkb3VibGUgc3Vt KHNlbGYpIG5vZXhjZXB0CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvc3RhdHMvdGltZV9zZXJpZXMu cHl4IGIvc3JjL3NhZ2Uvc3RhdHMvdGltZV9zZXJpZXMucHl4CitpbmRleCBjZTUxZTY1YmFhYi4u ZDY4MjNmODVhZGQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9zdGF0cy90aW1lX3Nlcmllcy5weXgK KysrKyBiL3NyYy9zYWdlL3N0YXRzL3RpbWVfc2VyaWVzLnB5eAorQEAgLTg5Miw3ICs4OTIsNyBA QCBjZGVmIGNsYXNzIFRpbWVTZXJpZXM6CisgICAgICAgICAgICAgdC5fdmFsdWVzW2ldID0gc2Vs Zi5fdmFsdWVzW2kqa10KKyAgICAgICAgIHJldHVybiB0CisgCistICAgIGNwZGVmIHJlc2NhbGUo c2VsZiwgZG91YmxlIHMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiByZXNjYWxlKHNlbGYsIGRvdWJs ZSBzKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIENoYW5nZSBgYHNlbGZgYCBieSBtdWx0aXBs eWluZyBldmVyeSB2YWx1ZSBpbiB0aGUgc2VyaWVzIGJ5IGBgc2BgLgorIAorQEAgLTI1MTQsNyAr MjUxNCw3IEBAIGNkZWYgY2xhc3MgVGltZVNlcmllczoKKyAgICAgICAgIHJldHVybiB5CisgCisg CistY2RlZiBuZXdfdGltZV9zZXJpZXMoUHlfc3NpemVfdCBsZW5ndGgpIG5vZXhjZXB0OgorK2Nk ZWYgbmV3X3RpbWVfc2VyaWVzKFB5X3NzaXplX3QgbGVuZ3RoKToKKyAgICAgciIiIgorICAgICBS ZXR1cm4gYSBuZXcgdW5pbml0aWFsaXplZCB0aW1lIHNlcmllcyBvZiB0aGUgZ2l2ZW4gbGVuZ3Ro LgorICAgICBUaGUgZW50cmllcyBvZiB0aGUgdGltZSBzZXJpZXMgYXJlIGdhcmJhZ2UuCitkaWZm IC0tZ2l0IGEvc3JjL3NhZ2Uvc3RydWN0dXJlL2NhdGVnb3J5X29iamVjdC5weGQgYi9zcmMvc2Fn ZS9zdHJ1Y3R1cmUvY2F0ZWdvcnlfb2JqZWN0LnB4ZAoraW5kZXggNmJkNDUwYzRmNjguLjgzZDNk NDk2N2Q0IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uvc3RydWN0dXJlL2NhdGVnb3J5X29iamVjdC5w eGQKKysrKyBiL3NyYy9zYWdlL3N0cnVjdHVyZS9jYXRlZ29yeV9vYmplY3QucHhkCitAQCAtMTAs NyArMTAsNyBAQAorIAorIGZyb20gc2FnZS5zdHJ1Y3R1cmUuc2FnZV9vYmplY3QgY2ltcG9ydCBT YWdlT2JqZWN0CisgCistY3BkZWYgY2hlY2tfZGVmYXVsdF9jYXRlZ29yeShkZWZhdWx0X2NhdGVn b3J5LCBjYXRlZ29yeSkgbm9leGNlcHQKKytjcGRlZiBjaGVja19kZWZhdWx0X2NhdGVnb3J5KGRl ZmF1bHRfY2F0ZWdvcnksIGNhdGVnb3J5KQorIAorIGNkZWYgY2xhc3MgQ2F0ZWdvcnlPYmplY3Qo U2FnZU9iamVjdCk6CisgICAgIGNkZWYgcHVibGljIGRpY3QgX2NhY2hlZF9tZXRob2RzCitAQCAt MjEsNyArMjEsNyBAQCBjZGVmIGNsYXNzIENhdGVnb3J5T2JqZWN0KFNhZ2VPYmplY3QpOgorICAg ICBjZGVmIG9iamVjdCBfX3dlYWtyZWZfXworICAgICBjZGVmIGxvbmcgX2hhc2hfdmFsdWUKKyAK Ky0gICAgY2RlZiBnZXRhdHRyX2Zyb21fY2F0ZWdvcnkoc2VsZiwgbmFtZSkgbm9leGNlcHQKKysg ICAgY2RlZiBnZXRhdHRyX2Zyb21fY2F0ZWdvcnkoc2VsZiwgbmFtZSkKKyAKKy1jcGRlZiBub3Jt YWxpemVfbmFtZXMoUHlfc3NpemVfdCBuZ2VucywgbmFtZXMpIG5vZXhjZXB0CisrY3BkZWYgbm9y bWFsaXplX25hbWVzKFB5X3NzaXplX3QgbmdlbnMsIG5hbWVzKQorIGNwZGVmIGJpbnQgY2VydGlm eV9uYW1lcyhuYW1lcykgZXhjZXB0IC0xCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvc3RydWN0dXJl L2NhdGVnb3J5X29iamVjdC5weXggYi9zcmMvc2FnZS9zdHJ1Y3R1cmUvY2F0ZWdvcnlfb2JqZWN0 LnB5eAoraW5kZXggMmMyNWNhNDA2NmQuLjQ4Y2VlMTBjMmJjIDEwMDY0NAorLS0tIGEvc3JjL3Nh Z2Uvc3RydWN0dXJlL2NhdGVnb3J5X29iamVjdC5weXgKKysrKyBiL3NyYy9zYWdlL3N0cnVjdHVy ZS9jYXRlZ29yeV9vYmplY3QucHl4CitAQCAtNjMsNyArNjMsNyBAQCBmcm9tIHNhZ2UubWlzYy5j YWNoZWZ1bmMgaW1wb3J0IGNhY2hlZF9tZXRob2QKKyBmcm9tIHNhZ2Uuc3RydWN0dXJlLmR5bmFt aWNfY2xhc3MgaW1wb3J0IER5bmFtaWNNZXRhY2xhc3MKKyAKKyAKKy1jcGRlZiBpbmxpbmUgY2hl Y2tfZGVmYXVsdF9jYXRlZ29yeShkZWZhdWx0X2NhdGVnb3J5LCBjYXRlZ29yeSkgbm9leGNlcHQ6 CisrY3BkZWYgaW5saW5lIGNoZWNrX2RlZmF1bHRfY2F0ZWdvcnkoZGVmYXVsdF9jYXRlZ29yeSwg Y2F0ZWdvcnkpOgorICAgICAjIyBUaGUgcmVzdWx0aW5nIGNhdGVnb3J5IGlzIGd1YXJhbnRlZWQg dG8gYmUKKyAgICAgIyMgYSBzdWItY2F0ZWdvcnkgb2YgdGhlIGRlZmF1bHQuCisgICAgIGlmIGNh dGVnb3J5IGlzIE5vbmU6CitAQCAtODQ4LDcgKzg0OCw3IEBAIGNkZWYgY2xhc3MgQ2F0ZWdvcnlP YmplY3QoU2FnZU9iamVjdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLmdl dGF0dHJfZnJvbV9jYXRlZ29yeShuYW1lKQorIAorLSAgICBjZGVmIGdldGF0dHJfZnJvbV9jYXRl Z29yeShzZWxmLCBuYW1lKSBub2V4Y2VwdDoKKysgICAgY2RlZiBnZXRhdHRyX2Zyb21fY2F0ZWdv cnkoc2VsZiwgbmFtZSk6CisgICAgICAgICAjIExvb2t1cCBhIG1ldGhvZCBvciBhdHRyaWJ1dGUg ZnJvbSB0aGUgY2F0ZWdvcnkgYWJzdHJhY3QgY2xhc3Nlcy4KKyAgICAgICAgICMgU2VlIF9fZ2V0 YXR0cl9fIGFib3ZlIGZvciBkb2N1bWVudGF0aW9uLgorICAgICAgICAgdHJ5OgorQEAgLTkxMyw3 ICs5MTMsNyBAQCBjZGVmIGNsYXNzIENhdGVnb3J5T2JqZWN0KFNhZ2VPYmplY3QpOgorICAgICAg ICAgIiIiCisgICAgICAgICByZXR1cm4gZGlyX3dpdGhfb3RoZXJfY2xhc3Moc2VsZiwgc2VsZi5j YXRlZ29yeSgpLnBhcmVudF9jbGFzcykKKyAKKy1jcGRlZiBub3JtYWxpemVfbmFtZXMoUHlfc3Np emVfdCBuZ2VucywgbmFtZXMpIG5vZXhjZXB0OgorK2NwZGVmIG5vcm1hbGl6ZV9uYW1lcyhQeV9z c2l6ZV90IG5nZW5zLCBuYW1lcyk6CisgICAgIHIiIiIKKyAgICAgUmV0dXJuIGEgdHVwbGUgb2Yg c3RyaW5ncyBvZiB2YXJpYWJsZSBuYW1lcyBvZiBsZW5ndGggbmdlbnMgZ2l2ZW4KKyAgICAgdGhl IGlucHV0IG5hbWVzLgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3N0cnVjdHVyZS9jb2VyY2UucHhk IGIvc3JjL3NhZ2Uvc3RydWN0dXJlL2NvZXJjZS5weGQKK2luZGV4IDBhYjQyZmU5NjY2Li43MWQ1 MTljZjE4NSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3N0cnVjdHVyZS9jb2VyY2UucHhkCisrKysg Yi9zcmMvc2FnZS9zdHJ1Y3R1cmUvY29lcmNlLnB4ZAorQEAgLTEsOCArMSw4IEBACisgZnJvbSBz YWdlLnN0cnVjdHVyZS5wYXJlbnQgY2ltcG9ydCBQYXJlbnQKKyBmcm9tIHNhZ2Uuc3RydWN0dXJl LmNvZXJjZV9kaWN0IGNpbXBvcnQgVHJpcGxlRGljdAorIAorLWNwZGVmIHB5X3NjYWxhcl9wYXJl bnQocHlfdHlwZSkgbm9leGNlcHQKKy1jcGRlZiBweV9zY2FsYXJfdG9fZWxlbWVudChweSkgbm9l eGNlcHQKKytjcGRlZiBweV9zY2FsYXJfcGFyZW50KHB5X3R5cGUpCisrY3BkZWYgcHlfc2NhbGFy X3RvX2VsZW1lbnQocHkpCisgY3BkZWYgYmludCBwYXJlbnRfaXNfaW50ZWdlcnMoUCkgZXhjZXB0 IC0xCisgY3BkZWYgYmludCBpc19udW1weV90eXBlKHQpIG5vZXhjZXB0CisgY3BkZWYgYmludCBp c19tcG1hdGhfdHlwZSh0KSBub2V4Y2VwdAorQEAgLTE3LDI2ICsxNywyNiBAQCBjZGVmIGNsYXNz IENvZXJjaW9uTW9kZWw6CisgICAgICMgVGhpcyBNVVNUIGJlIGEgbWFwcGluZyB0byBhY3Rpb25z LgorICAgICBjZGVmIHJlYWRvbmx5IFRyaXBsZURpY3QgX2FjdGlvbl9tYXBzCisgCistICAgIGNw ZGVmIGNhbm9uaWNhbF9jb2VyY2lvbihzZWxmLCB4LCB5KSBub2V4Y2VwdAorLSAgICBjcGRlZiBi aW5fb3Aoc2VsZiwgeCwgeSwgb3ApIG5vZXhjZXB0CistICAgIGNwZGVmIHJpY2hjbXAoc2VsZiwg eCwgeSwgaW50IG9wKSBub2V4Y2VwdAorKyAgICBjcGRlZiBjYW5vbmljYWxfY29lcmNpb24oc2Vs ZiwgeCwgeSkKKysgICAgY3BkZWYgYmluX29wKHNlbGYsIHgsIHksIG9wKQorKyAgICBjcGRlZiBy aWNoY21wKHNlbGYsIHgsIHksIGludCBvcCkKKyAKKy0gICAgY3BkZWYgY29lcmNpb25fbWFwcyhz ZWxmLCBSLCBTKSBub2V4Y2VwdAorLSAgICBjcGRlZiBkaXNjb3Zlcl9jb2VyY2lvbihzZWxmLCBS LCBTKSBub2V4Y2VwdAorLSAgICBjcGRlZiB2ZXJpZnlfY29lcmNpb25fbWFwcyhzZWxmLCBSLCBT LCBob21zLCBiaW50IGZpeD0qKSBub2V4Y2VwdAorLSAgICBjcGRlZiB2ZXJpZnlfYWN0aW9uKHNl bGYsIGFjdGlvbiwgUiwgUywgb3AsIGJpbnQgZml4PSopIG5vZXhjZXB0CisrICAgIGNwZGVmIGNv ZXJjaW9uX21hcHMoc2VsZiwgUiwgUykKKysgICAgY3BkZWYgZGlzY292ZXJfY29lcmNpb24oc2Vs ZiwgUiwgUykKKysgICAgY3BkZWYgdmVyaWZ5X2NvZXJjaW9uX21hcHMoc2VsZiwgUiwgUywgaG9t cywgYmludCBmaXg9KikKKysgICAgY3BkZWYgdmVyaWZ5X2FjdGlvbihzZWxmLCBhY3Rpb24sIFIs IFMsIG9wLCBiaW50IGZpeD0qKQorIAorLSAgICBjcGRlZiBnZXRfYWN0aW9uKHNlbGYsIFIsIFMs IG9wPSosIHI9Kiwgcz0qKSBub2V4Y2VwdAorLSAgICBjcGRlZiBkaXNjb3Zlcl9hY3Rpb24oc2Vs ZiwgUiwgUywgb3AsIHI9Kiwgcz0qKSBub2V4Y2VwdAorKyAgICBjcGRlZiBnZXRfYWN0aW9uKHNl bGYsIFIsIFMsIG9wPSosIHI9Kiwgcz0qKQorKyAgICBjcGRlZiBkaXNjb3Zlcl9hY3Rpb24oc2Vs ZiwgUiwgUywgb3AsIHI9Kiwgcz0qKQorIAorICAgICBjZGVmIGJpbnQgX3JlY29yZF9leGNlcHRp b25zCistICAgIGNwZGVmIF9yZWNvcmRfZXhjZXB0aW9uKHNlbGYpIG5vZXhjZXB0CisrICAgIGNw ZGVmIF9yZWNvcmRfZXhjZXB0aW9uKHNlbGYpCisgICAgIGNkZWYgcmVhZG9ubHkgbGlzdCBfZXhj ZXB0aW9uX3N0YWNrCisgICAgIGNkZWYgYmludCBfZXhjZXB0aW9uc19jbGVhcmVkCisgCisgICAg IGNkZWYgVHJpcGxlRGljdCBfZGl2aXNpb25fcGFyZW50cworLSAgICBjcGRlZiBhbmFseXNlKHNl bGYsIHhwLCB5cCwgb3A9Kikgbm9leGNlcHQKKy0gICAgY3BkZWYgZGl2aXNpb25fcGFyZW50KHNl bGYsIFBhcmVudCBQKSBub2V4Y2VwdAorKyAgICBjcGRlZiBhbmFseXNlKHNlbGYsIHhwLCB5cCwg b3A9KikKKysgICAgY3BkZWYgZGl2aXNpb25fcGFyZW50KHNlbGYsIFBhcmVudCBQKQorIAorIAor ICMgVW5pcXVlIGdsb2JhbCBjb2VyY2lvbl9tb2RlbCBpbnN0YW5jZQorZGlmZiAtLWdpdCBhL3Ny Yy9zYWdlL3N0cnVjdHVyZS9jb2VyY2UucHl4IGIvc3JjL3NhZ2Uvc3RydWN0dXJlL2NvZXJjZS5w eXgKK2luZGV4IDYzZTg0ZDg0Yjk0Li44ODg2NDMzMTRmNSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdl L3N0cnVjdHVyZS9jb2VyY2UucHl4CisrKysgYi9zcmMvc2FnZS9zdHJ1Y3R1cmUvY29lcmNlLnB5 eAorQEAgLTEwMCw3ICsxMDAsNyBAQCBpbXBvcnQgdHJhY2ViYWNrCisgZnJvbSBmcmFjdGlvbnMg aW1wb3J0IEZyYWN0aW9uCisgY2RlZiB0eXBlIEZyYWN0aW9uVHlwZSA9IDx0eXBlPkZyYWN0aW9u CisgCistY3BkZWYgcHlfc2NhbGFyX3BhcmVudChweV90eXBlKSBub2V4Y2VwdDoKKytjcGRlZiBw eV9zY2FsYXJfcGFyZW50KHB5X3R5cGUpOgorICAgICAiIiIKKyAgICAgUmV0dXJucyB0aGUgU2Fn ZSBlcXVpdmFsZW50IG9mIHRoZSBnaXZlbiBweXRob24gdHlwZSwgaWYgb25lIGV4aXN0cy4KKyAg ICAgSWYgdGhlcmUgaXMgbm8gZXF1aXZhbGVudCwgcmV0dXJuIE5vbmUuCitAQCAtMTg0LDcgKzE4 NCw3IEBAIGNwZGVmIHB5X3NjYWxhcl9wYXJlbnQocHlfdHlwZSkgbm9leGNlcHQ6CisgICAgIGVs c2U6CisgICAgICAgICByZXR1cm4gTm9uZQorIAorLWNwZGVmIHB5X3NjYWxhcl90b19lbGVtZW50 KHgpIG5vZXhjZXB0OgorK2NwZGVmIHB5X3NjYWxhcl90b19lbGVtZW50KHgpOgorICAgICAiIiIK KyAgICAgQ29udmVydCBgYHhgYCB0byBhIFNhZ2UgOmNsYXNzOmB+c2FnZS5zdHJ1Y3R1cmUuZWxl bWVudC5FbGVtZW50YCBpZiBwb3NzaWJsZS4KKyAKK0BAIC02OTAsNyArNjkwLDcgQEAgY2RlZiBj bGFzcyBDb2VyY2lvbk1vZGVsOgorICAgICAgICAgc2VsZi5fZXhjZXB0aW9uc19jbGVhcmVkID0g VHJ1ZQorICAgICAgICAgc2VsZi5fZXhjZXB0aW9uX3N0YWNrID0gW10KKyAKKy0gICAgY3BkZWYg X3JlY29yZF9leGNlcHRpb24oc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yZWNvcmRfZXhj ZXB0aW9uKHNlbGYpOgorICAgICAgICAgciIiIgorICAgICAgICAgUHVzaGVzIHRoZSBsYXN0IGV4 Y2VwdGlvbiB0aGF0IG9jY3VycmVkIG9udG8gdGhlIHN0YWNrIGZvciBsYXRlciByZWZlcmVuY2Us CisgICAgICAgICBmb3IgaW50ZXJuYWwgdXNlLgorQEAgLTkyNSw3ICs5MjUsNyBAQCBjZGVmIGNs YXNzIENvZXJjaW9uTW9kZWw6CisgICAgICAgICAgICAgICAgIHByaW50KCJSZXN1bHQgbGl2ZXMg aW4ge30iLmZvcm1hdChyZXMpKQorICAgICAgICAgcmV0dXJuIHJlcworIAorLSAgICBjcGRlZiBh bmFseXNlKHNlbGYsIHhwLCB5cCwgb3A9bXVsKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgYW5hbHlz ZShzZWxmLCB4cCwgeXAsIG9wPW11bCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVtdWxhdGUg dGhlIHByb2Nlc3Mgb2YgZG9pbmcgYXJpdGhtZXRpYyBiZXR3ZWVuIHhwIGFuZCB5cCwgcmV0dXJu aW5nCisgICAgICAgICBhIGxpc3Qgb2Ygc3RlcHMgYW5kIHRoZSBwYXJlbnQgdGhhdCB0aGUgcmVz dWx0IHdpbGwgbGl2ZSBpbi4KK0BAIC0xMDkwLDcgKzEwOTAsNyBAQCBjZGVmIGNsYXNzIENvZXJj aW9uTW9kZWw6CisgICAgICAgICAgICAgICAgIGJhc2UgPSBwYXJlbnQoc2VsZi5jYW5vbmljYWxf Y29lcmNpb24oYSwgYilbMF0pCisgICAgICAgICByZXR1cm4gYmFzZQorIAorLSAgICBjcGRlZiBk aXZpc2lvbl9wYXJlbnQoc2VsZiwgUGFyZW50IFApIG5vZXhjZXB0OgorKyAgICBjcGRlZiBkaXZp c2lvbl9wYXJlbnQoc2VsZiwgUGFyZW50IFApOgorICAgICAgICAgciIiIgorICAgICAgICAgRGVk dWNlcyB3aGVyZSB0aGUgcmVzdWx0IG9mIGRpdmlzaW9uIGluIGBgUGBgIGxpZXMgYnkKKyAgICAg ICAgIGNhbGN1bGF0aW5nIHRoZSBpbnZlcnNlIG9mIGBgUC5vbmUoKWBgIG9yIGBgUC5hbl9lbGVt ZW50KClgYC4KK0BAIC0xMTI5LDcgKzExMjksNyBAQCBjZGVmIGNsYXNzIENvZXJjaW9uTW9kZWw6 CisgICAgICAgICBzZWxmLl9kaXZpc2lvbl9wYXJlbnRzLnNldChQLCBOb25lLCBOb25lLCByZXQp CisgICAgICAgICByZXR1cm4gcmV0CisgCistICAgIGNwZGVmIGJpbl9vcChzZWxmLCB4LCB5LCBv cCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGJpbl9vcChzZWxmLCB4LCB5LCBvcCk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIEV4ZWN1dGUgdGhlIG9wZXJhdGlvbiBgYG9wYGAgb24gYHhgIGFuZCBg eWAuCisgCitAQCAtMTI3Nyw3ICsxMjc3LDcgQEAgY2RlZiBjbGFzcyBDb2VyY2lvbk1vZGVsOgor ICAgICAgICAgIyBUaGlzIGNhdXNlcyBzbyBtdWNoIGhlYWRhY2hlLgorICAgICAgICAgcmFpc2Ug YmluX29wX2V4Y2VwdGlvbihvcCwgeCwgeSkKKyAKKy0gICAgY3BkZWYgY2Fub25pY2FsX2NvZXJj aW9uKHNlbGYsIHgsIHkpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjYW5vbmljYWxfY29lcmNpb24o c2VsZiwgeCwgeSk6CisgICAgICAgICByIiIiCisgICAgICAgICBHaXZlbiB0d28gZWxlbWVudHMg YHhgIGFuZCBgeWAsIHdpdGggcGFyZW50cyBgU2AgYW5kIGBSYCByZXNwZWN0aXZlbHksCisgICAg ICAgICBmaW5kIGEgY29tbW9uIHBhcmVudCBgWmAgc3VjaCB0aGF0IHRoZXJlIGFyZSBjb2VyY2lv bnMKK0BAIC0xNDIzLDcgKzE0MjMsNyBAQCBjZGVmIGNsYXNzIENvZXJjaW9uTW9kZWw6CisgCisg ICAgICAgICByYWlzZSBUeXBlRXJyb3IoIm5vIGNvbW1vbiBjYW5vbmljYWwgcGFyZW50IGZvciBv YmplY3RzIHdpdGggcGFyZW50czogJyVzJyBhbmQgJyVzJyIlKHhwLCB5cCkpCisgCistICAgIGNw ZGVmIGNvZXJjaW9uX21hcHMoc2VsZiwgUiwgUykgbm9leGNlcHQ6CisrICAgIGNwZGVmIGNvZXJj aW9uX21hcHMoc2VsZiwgUiwgUyk6CisgICAgICAgICByIiIiCisgICAgICAgICBHaXZlIHR3byBw YXJlbnRzIGBSYCBhbmQgYFNgLCByZXR1cm4gYSBwYWlyIG9mIGNvZXJjaW9uIG1hcHMKKyAgICAg ICAgIGBmOiBSIFxyaWdodGFycm93IFpgIGFuZCBgZzogUyBccmlnaHRhcnJvdyBaYCAsIGlmIHN1 Y2ggYSBgWmAKK0BAIC0xNTcyLDcgKzE1NzIsNyBAQCBjZGVmIGNsYXNzIENvZXJjaW9uTW9kZWw6 CisgICAgICAgICBzZWxmLl9jb2VyY2lvbl9tYXBzLnNldChTLCBSLCBOb25lLCBzd2FwKQorICAg ICAgICAgcmV0dXJuIGhvbXMKKyAKKy0gICAgY3BkZWYgdmVyaWZ5X2NvZXJjaW9uX21hcHMoc2Vs ZiwgUiwgUywgaG9tcywgYmludCBmaXg9RmFsc2UpIG5vZXhjZXB0OgorKyAgICBjcGRlZiB2ZXJp ZnlfY29lcmNpb25fbWFwcyhzZWxmLCBSLCBTLCBob21zLCBiaW50IGZpeD1GYWxzZSk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIE1ha2Ugc3VyZSB0aGlzIGlzIGEgdmFsaWQgcGFpciBvZiBob21v bW9ycGhpc21zIGZyb20gYFJgIGFuZCBgU2AgdG8gYSBjb21tb24gcGFyZW50LgorICAgICAgICAg VGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIHByb3RlY3QgdGhlIHVzZXIgYWdhaW5zdCBidWdneSBw YXJlbnRzLgorQEAgLTE2NDEsNyArMTY0MSw3IEBAIGNkZWYgY2xhc3MgQ29lcmNpb25Nb2RlbDoK KyAgICAgICAgIHJldHVybiBSX21hcCwgU19tYXAKKyAKKyAKKy0gICAgY3BkZWYgZGlzY292ZXJf Y29lcmNpb24oc2VsZiwgUiwgUykgbm9leGNlcHQ6CisrICAgIGNwZGVmIGRpc2NvdmVyX2NvZXJj aW9uKHNlbGYsIFIsIFMpOgorICAgICAgICAgIiIiCisgICAgICAgICBUaGlzIGFjdHVhbGx5IGlt cGxlbWVudHMgdGhlIGZpbmRpbmcgb2YgY29lcmNpb24gbWFwcyBhcyBkZXNjcmliZWQgaW4KKyAg ICAgICAgIHRoZSA6bWV0aDpgY29lcmNpb25fbWFwc2AgbWV0aG9kLgorQEAgLTE3MjAsNyArMTcy MCw3IEBAIGNkZWYgY2xhc3MgQ29lcmNpb25Nb2RlbDoKKyAKKyAgICAgICAgIHJldHVybiBOb25l CisgCistICAgIGNwZGVmIGdldF9hY3Rpb24oc2VsZiwgUiwgUywgb3A9bXVsLCByPU5vbmUsIHM9 Tm9uZSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIGdldF9hY3Rpb24oc2VsZiwgUiwgUywgb3A9bXVs LCByPU5vbmUsIHM9Tm9uZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEdldCB0aGUgYWN0aW9u IG9mIFIgb24gUyBvciBTIG9uIFIgYXNzb2NpYXRlZCB0byB0aGUgb3BlcmF0aW9uIG9wLgorIAor QEAgLTE3NjEsNyArMTc2MSw3IEBAIGNkZWYgY2xhc3MgQ29lcmNpb25Nb2RlbDoKKyAgICAgICAg IHNlbGYuX2FjdGlvbl9tYXBzLnNldChSLCBTLCBvcCwgYWN0aW9uKQorICAgICAgICAgcmV0dXJu IGFjdGlvbgorIAorLSAgICBjcGRlZiB2ZXJpZnlfYWN0aW9uKHNlbGYsIGFjdGlvbiwgUiwgUywg b3AsIGJpbnQgZml4PVRydWUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiB2ZXJpZnlfYWN0aW9uKHNl bGYsIGFjdGlvbiwgUiwgUywgb3AsIGJpbnQgZml4PVRydWUpOgorICAgICAgICAgciIiIgorICAg ICAgICAgVmVyaWZ5IHRoYXQgYGBhY3Rpb25gYCB0YWtlcyBhbiBlbGVtZW50IG9mIFIgb24gdGhl IGxlZnQgYW5kIFMKKyAgICAgICAgIG9uIHRoZSByaWdodCwgcmFpc2luZyBhbiBlcnJvciBpZiBu b3QuCitAQCAtMTgyMCw3ICsxODIwLDcgQEAgY2RlZiBjbGFzcyBDb2VyY2lvbk1vZGVsOgorIAor ICAgICAgICAgcmV0dXJuIGFjdGlvbgorIAorLSAgICBjcGRlZiBkaXNjb3Zlcl9hY3Rpb24oc2Vs ZiwgUiwgUywgb3AsIHI9Tm9uZSwgcz1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZGlzY292 ZXJfYWN0aW9uKHNlbGYsIFIsIFMsIG9wLCByPU5vbmUsIHM9Tm9uZSk6CisgICAgICAgICAiIiIK KyAgICAgICAgIElOUFVUOgorIAorQEAgLTE5NTgsNyArMTk1OCw3IEBAIGNkZWYgY2xhc3MgQ29l cmNpb25Nb2RlbDoKKyAKKyAgICAgICAgIHJldHVybiBOb25lCisgCistICAgIGNwZGVmIHJpY2hj bXAoc2VsZiwgeCwgeSwgaW50IG9wKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcmljaGNtcChzZWxm LCB4LCB5LCBpbnQgb3ApOgorICAgICAgICAgIiIiCisgICAgICAgICBHaXZlbiB0d28gYXJiaXRy YXJ5IG9iamVjdHMgYGB4YGAgYW5kIGBgeWBgLCBjb2VyY2UgdGhlbSB0bworICAgICAgICAgYSBj b21tb24gcGFyZW50IGFuZCBjb21wYXJlIHRoZW0gdXNpbmcgcmljaCBjb21wYXJpc29uIG9wZXJh dG9yCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvc3RydWN0dXJlL2NvZXJjZV9hY3Rpb25zLnB5eCBi L3NyYy9zYWdlL3N0cnVjdHVyZS9jb2VyY2VfYWN0aW9ucy5weXgKK2luZGV4IDdiMmUxNmRhNDll Li5lMWZmM2IzNzhlNyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3N0cnVjdHVyZS9jb2VyY2VfYWN0 aW9ucy5weXgKKysrKyBiL3NyYy9zYWdlL3N0cnVjdHVyZS9jb2VyY2VfYWN0aW9ucy5weXgKK0BA IC0yNiwxMCArMjYsMTAgQEAgZnJvbSBzYWdlLmNhdGVnb3JpZXMuYWN0aW9uIGNpbXBvcnQgSW52 ZXJzZUFjdGlvbiwgUHJlY29tcG9zZWRBY3Rpb24KKyBmcm9tIHNhZ2UuYXJpdGgubG9uZyBjaW1w b3J0IGludGVnZXJfY2hlY2tfbG9uZworIAorIAorLWNkZWYgX3JlY29yZF9leGNlcHRpb24oKSBu b2V4Y2VwdDoKKytjZGVmIF9yZWNvcmRfZXhjZXB0aW9uKCk6CisgICAgIGNvZXJjaW9uX21vZGVs Ll9yZWNvcmRfZXhjZXB0aW9uKCkKKyAKKy1jZGVmIGlubGluZSBhbl9lbGVtZW50KFIpIG5vZXhj ZXB0OgorK2NkZWYgaW5saW5lIGFuX2VsZW1lbnQoUik6CisgICAgIGlmIGlzaW5zdGFuY2UoUiwg UGFyZW50KToKKyAgICAgICAgIHJldHVybiBSLmFuX2VsZW1lbnQoKQorICAgICBlbHNlOgorQEAg LTExOCw3ICsxMTgsNyBAQCBjZGVmIGNsYXNzIEFjdE9uQWN0aW9uKEdlbmVyaWNBY3Rpb24pOgor ICAgICAiIiIKKyAgICAgQ2xhc3MgZm9yIGFjdGlvbnMgZGVmaW5lZCB2aWEgdGhlIF9hY3Rfb25f IG1ldGhvZC4KKyAgICAgIiIiCistICAgIGNwZGVmIF9hY3RfKHNlbGYsIGcsIHgpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBfYWN0XyhzZWxmLCBnLCB4KToKKyAgICAgICAgICIiIgorICAgICAgICAg VEVTVFM6OgorIAorQEAgLTE0MCw3ICsxNDAsNyBAQCBjZGVmIGNsYXNzIEFjdGVkVXBvbkFjdGlv bihHZW5lcmljQWN0aW9uKToKKyAgICAgIiIiCisgICAgIENsYXNzIGZvciBhY3Rpb25zIGRlZmlu ZWQgdmlhIHRoZSBfYWN0ZWRfdXBvbl8gbWV0aG9kLgorICAgICAiIiIKKy0gICAgY3BkZWYgX2Fj dF8oc2VsZiwgZywgeCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hY3RfKHNlbGYsIGcsIHgpOgor ICAgICAgICAgIiIiCisgICAgICAgICBURVNUUzo6CisgCitAQCAtNTg2LDcgKzU4Niw3IEBAIGNk ZWYgY2xhc3MgTW9kdWxlQWN0aW9uKEFjdGlvbik6CisgCisgCisgY2RlZiBjbGFzcyBMZWZ0TW9k dWxlQWN0aW9uKE1vZHVsZUFjdGlvbik6CistICAgIGNwZGVmIF9hY3RfKHNlbGYsIGcsIGEpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBfYWN0XyhzZWxmLCBnLCBhKToKKyAgICAgICAgICIiIgorICAg ICAgICAgQSBsZWZ0IG1vZHVsZSBhY3Rpb24gaXMgYW4gYWN0aW9uIHRoYXQgdGFrZXMgdGhlIHJp bmcgZWxlbWVudCBhcyB0aGUKKyAgICAgICAgIGZpcnN0IGFyZ3VtZW50ICh0aGUgbGVmdCBzaWRl KSBhbmQgdGhlIG1vZHVsZSBlbGVtZW50IGFzIHRoZSBzZWNvbmQKK0BAIC02MjMsNyArNjIzLDcg QEAgY2RlZiBjbGFzcyBMZWZ0TW9kdWxlQWN0aW9uKE1vZHVsZUFjdGlvbik6CisgCisgCisgY2Rl ZiBjbGFzcyBSaWdodE1vZHVsZUFjdGlvbihNb2R1bGVBY3Rpb24pOgorLSAgICBjcGRlZiBfYWN0 XyhzZWxmLCBnLCBhKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FjdF8oc2VsZiwgZywgYSk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIEEgcmlnaHQgbW9kdWxlIGFjdGlvbiBpcyBhbiBhY3Rpb24g dGhhdCB0YWtlcyB0aGUgbW9kdWxlIGVsZW1lbnQgYXMgdGhlCisgICAgICAgICBmaXJzdCBhcmd1 bWVudCAodGhlIGxlZnQgc2lkZSkgYW5kIHRoZSByaW5nIGVsZW1lbnQgYXMgdGhlIHNlY29uZAor QEAgLTc0Myw3ICs3NDMsNyBAQCBjZGVmIGNsYXNzIEludGVnZXJNdWxBY3Rpb24oSW50ZWdlckFj dGlvbik6CisgICAgICAgICB0ZXN0ID0gbSArICgtbSkgICMgbWFrZSBzdXJlIGFkZGl0aW9uIGFu ZCBuZWdhdGlvbiBpcyBhbGxvd2VkCisgICAgICAgICBzdXBlcigpLl9faW5pdF9fKFosIE0sIGlz X2xlZnQsIG9wZXJhdG9yLm11bCkKKyAKKy0gICAgY3BkZWYgX2FjdF8oc2VsZiwgbm4sIGEpIG5v ZXhjZXB0OgorKyAgICBjcGRlZiBfYWN0XyhzZWxmLCBubiwgYSk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIEVYQU1QTEVTOgorIAorQEAgLTg4MCw3ICs4ODAsNyBAQCBjZGVmIGNsYXNzIEludGVn ZXJQb3dBY3Rpb24oSW50ZWdlckFjdGlvbik6CisgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9y KGYibm8gaW50ZWdlciBwb3dlcmluZyBhY3Rpb24gZGVmaW5lZCBvbiB7TX0iKQorICAgICAgICAg c3VwZXIoKS5fX2luaXRfXyhaLCBNLCBGYWxzZSwgb3BlcmF0b3IucG93KQorIAorLSAgICBjcGRl ZiBfYWN0XyhzZWxmLCBuLCBhKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2FjdF8oc2VsZiwgbiwg YSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEVYQU1QTEVTOgorIAorQEAgLTkxNyw3ICs5MTcs NyBAQCBjZGVmIGNsYXNzIEludGVnZXJQb3dBY3Rpb24oSW50ZWdlckFjdGlvbik6CisgICAgICAg ICByZXR1cm4gIkludGVnZXIgUG93ZXJpbmciCisgCisgCistY2RlZiBpbmxpbmUgZmFzdF9tdWwo YSwgbikgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUgZmFzdF9tdWwoYSwgbik6CisgICAgIGlmIG4g PCAwOgorICAgICAgICAgbiA9IC1uCisgICAgICAgICBhID0gLWEKK0BAIC05MzYsNyArOTM2LDcg QEAgY2RlZiBpbmxpbmUgZmFzdF9tdWwoYSwgbikgbm9leGNlcHQ6CisgICAgICAgICBuID0gbiA+ PiAxCisgICAgIHJldHVybiBzdW0KKyAKKy1jZGVmIGlubGluZSBmYXN0X211bF9sb25nKGEsIGxv bmcgcykgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUgZmFzdF9tdWxfbG9uZyhhLCBsb25nIHMpOgor ICAgICAjIEl0J3MgaW1wb3J0YW50IHRvIGNoYW5nZSB0aGUgc2lnbmVkIHMgdG8gYW4gdW5zaWdu ZWQgbiwKKyAgICAgIyBzaW5jZSAtTE9OR19NSU4gPSBMT05HX01JTi4gIFNlZSBJc3N1ZSAjMTc4 NDQuCisgICAgIGNkZWYgdW5zaWduZWQgbG9uZyBuCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvc3Ry dWN0dXJlL2NvZXJjZV9kaWN0LnB4ZCBiL3NyYy9zYWdlL3N0cnVjdHVyZS9jb2VyY2VfZGljdC5w eGQKK2luZGV4IDg1NDI1NDVhMmY4Li4yZjdmOGQzYWVmNCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdl L3N0cnVjdHVyZS9jb2VyY2VfZGljdC5weGQKKysrKyBiL3NyYy9zYWdlL3N0cnVjdHVyZS9jb2Vy Y2VfZGljdC5weGQKK0BAIC0xOSw3ICsxOSw3IEBAIGNkZWYgY2xhc3MgTW9ub0RpY3Q6CisgICAg IGNkZWYgZXJhc2VyCisgCisgICAgIGNkZWYgbW9ub19jZWxsKiBsb29rdXAoc2VsZiwgUHlPYmpl Y3QqIGtleSkgbm9leGNlcHQKKy0gICAgY2RlZiBnZXQoc2VsZiwgaykgbm9leGNlcHQKKysgICAg Y2RlZiBnZXQoc2VsZiwgaykKKyAgICAgY2RlZiBpbnQgc2V0KHNlbGYsIGssIHZhbHVlKSBleGNl cHQgLTEKKyAgICAgY2RlZiBpbnQgcmVzaXplKHNlbGYpIGV4Y2VwdCAtMQorIAorQEAgLTQ1LDYg KzQ1LDYgQEAgY2RlZiBjbGFzcyBUcmlwbGVEaWN0OgorICAgICBjZGVmIGVyYXNlcgorIAorICAg ICBjZGVmIHRyaXBsZV9jZWxsKiBsb29rdXAoc2VsZiwgUHlPYmplY3QqIGtleTEsIFB5T2JqZWN0 KiBrZXkyLCBQeU9iamVjdCoga2V5Mykgbm9leGNlcHQKKy0gICAgY2RlZiBnZXQoc2VsZiwgazEs IGsyLCBrMykgbm9leGNlcHQKKysgICAgY2RlZiBnZXQoc2VsZiwgazEsIGsyLCBrMykKKyAgICAg Y2RlZiBpbnQgc2V0KHNlbGYsIGsxLCBrMiwgazMsIHZhbHVlKSBleGNlcHQgLTEKKyAgICAgY2Rl ZiBpbnQgcmVzaXplKHNlbGYpIGV4Y2VwdCAtMQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3N0cnVj dHVyZS9jb2VyY2VfZGljdC5weXggYi9zcmMvc2FnZS9zdHJ1Y3R1cmUvY29lcmNlX2RpY3QucHl4 CitpbmRleCBjMmQyYmUzNDg3My4uYmRlYzdlYzk3Y2QgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9z dHJ1Y3R1cmUvY29lcmNlX2RpY3QucHl4CisrKysgYi9zcmMvc2FnZS9zdHJ1Y3R1cmUvY29lcmNl X2RpY3QucHl4CitAQCAtMTEwLDcgKzExMCw3IEBAIGNkZWYgY2xhc3MgT2JqZWN0V3JhcHBlcjoK KyAgICAgY2RlZiBQeU9iamVjdCogb2JqCisgCisgCistY2RlZiBpbmxpbmUgT2JqZWN0V3JhcHBl ciB3cmFwKG9iaikgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUgT2JqZWN0V3JhcHBlciB3cmFwKG9i aik6CisgICAgICIiIgorICAgICBXcmFwIGEgZ2l2ZW4gUHl0aG9uIG9iamVjdCBpbiBhbiA6Y2xh c3M6YE9iamVjdFdyYXBwZXJgLgorICAgICAiIiIKK0BAIC0xMjYsNyArMTI2LDcgQEAgY2RlZiBp bmxpbmUgUHlPYmplY3QqIHVud3JhcCh3KSBleGNlcHQ/IE5VTEw6CisgICAgIHJldHVybiAoPE9i amVjdFdyYXBwZXI/PncpLm9iagorIAorIAorLWNkZWYgZXh0cmFjdF9tb25vX2NlbGwobW9ub19j ZWxsKiBjZWxsKSBub2V4Y2VwdDoKKytjZGVmIGV4dHJhY3RfbW9ub19jZWxsKG1vbm9fY2VsbCog Y2VsbCk6CisgICAgICIiIgorICAgICBUYWtlIHRoZSByZWZjb3VudGVkIGNvbXBvbmVudHMgZnJv bSBhIG1vbm9fY2VsbCwgcHV0IHRoZW0gaW4gYQorICAgICB0dXBsZSBhbmQgcmV0dXJuIGl0LiBU aGUgbW9ub19jZWxsIGl0c2VsZiBpcyBtYXJrZWQgYXMgImZyZWVkIi4KK0BAIC0xNTEsNyArMTUx LDcgQEAgY2RlZiBleHRyYWN0X21vbm9fY2VsbChtb25vX2NlbGwqIGNlbGwpIG5vZXhjZXB0Ogor ICAgICByZXR1cm4gdAorIAorIAorLWNkZWYgZXh0cmFjdF90cmlwbGVfY2VsbCh0cmlwbGVfY2Vs bCogY2VsbCkgbm9leGNlcHQ6CisrY2RlZiBleHRyYWN0X3RyaXBsZV9jZWxsKHRyaXBsZV9jZWxs KiBjZWxsKToKKyAgICAgIyBTZWUgZXh0cmFjdF9tb25vX2NlbGwgZm9yIGRvY3VtZW50YXRpb24K KyAgICAgYXNzZXJ0IHZhbGlkKGNlbGwua2V5X2lkMSkKKyAgICAgdCA9IFB5VHVwbGVfTmV3KDQp CitAQCAtNjQ0LDcgKzY0NCw3IEBAIGNkZWYgY2xhc3MgTW9ub0RpY3Q6CisgICAgICAgICAiIiIK KyAgICAgICAgIHJldHVybiBzZWxmLmdldChrKQorIAorLSAgICBjZGVmIGdldChzZWxmLCBrKSBu b2V4Y2VwdDoKKysgICAgY2RlZiBnZXQoc2VsZiwgayk6CisgICAgICAgICBjZGVmIG1vbm9fY2Vs bCogY3Vyc29yID0gc2VsZi5sb29rdXAoPFB5T2JqZWN0Kj5rKQorICAgICAgICAgaWYgbm90IHZh bGlkKGN1cnNvci5rZXlfaWQpOgorICAgICAgICAgICAgIHJhaXNlIEtleUVycm9yKGspCitAQCAt MTMyMCw3ICsxMzIwLDcgQEAgY2RlZiBjbGFzcyBUcmlwbGVEaWN0OgorICAgICAgICAgICAgIHJh aXNlIEtleUVycm9yKGspCisgICAgICAgICByZXR1cm4gc2VsZi5nZXQoazEsIGsyLCBrMykKKyAK Ky0gICAgY2RlZiBnZXQoc2VsZiwgazEsIGsyLCBrMykgbm9leGNlcHQ6CisrICAgIGNkZWYgZ2V0 KHNlbGYsIGsxLCBrMiwgazMpOgorICAgICAgICAgY2RlZiB0cmlwbGVfY2VsbCogY3Vyc29yID0g c2VsZi5sb29rdXAoPFB5T2JqZWN0Kj5rMSwgPFB5T2JqZWN0Kj5rMiwgPFB5T2JqZWN0Kj5rMykK KyAgICAgICAgIGlmIG5vdCB2YWxpZChjdXJzb3Iua2V5X2lkMSk6CisgICAgICAgICAgICAgcmFp c2UgS2V5RXJyb3IoKGsxLCBrMiwgazMpKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3N0cnVjdHVy ZS9jb2VyY2VfbWFwcy5weGQgYi9zcmMvc2FnZS9zdHJ1Y3R1cmUvY29lcmNlX21hcHMucHhkCitp bmRleCBlM2U5NjlkMDI2Ni4uMGFmYzFhOTZhZGIgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9zdHJ1 Y3R1cmUvY29lcmNlX21hcHMucHhkCisrKysgYi9zcmMvc2FnZS9zdHJ1Y3R1cmUvY29lcmNlX21h cHMucHhkCitAQCAtMjQsNCArMjQsNCBAQCBjZGVmIGNsYXNzIENhbGxhYmxlQ29udmVydE1hcChN YXApOgorICAgICBjZGVmIF9mdW5jCisgCisgCistY2RlZiBNYXAgQ0NhbGxhYmxlQ29udmVydE1h cChkb21haW4sIGNvZG9tYWluLCB2b2lkKiBmdW5jLCBuYW1lKSBub2V4Y2VwdAorK2NkZWYgTWFw IENDYWxsYWJsZUNvbnZlcnRNYXAoZG9tYWluLCBjb2RvbWFpbiwgdm9pZCogZnVuYywgbmFtZSkK K2RpZmYgLS1naXQgYS9zcmMvc2FnZS9zdHJ1Y3R1cmUvY29lcmNlX21hcHMucHl4IGIvc3JjL3Nh Z2Uvc3RydWN0dXJlL2NvZXJjZV9tYXBzLnB5eAoraW5kZXggZWRhZDgyMzEwOTEuLmFhYmVhZmE2 YmM4IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uvc3RydWN0dXJlL2NvZXJjZV9tYXBzLnB5eAorKysr IGIvc3JjL3NhZ2Uvc3RydWN0dXJlL2NvZXJjZV9tYXBzLnB5eAorQEAgLTkxLDcgKzkxLDcgQEAg Y2RlZiBjbGFzcyBEZWZhdWx0Q29udmVydE1hcChNYXApOgorICAgICAgICAgIiIiCisgICAgICAg ICByZXR1cm4gc2VsZi5fcmVwcl90eXBlX3N0ciBvciAoIkNvZXJjaW9uIiBpZiBzZWxmLl9pc19j b2VyY2lvbiBlbHNlICJDb252ZXJzaW9uIikKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8o c2VsZiwgeCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpOgor ICAgICAgICAgIiIiCisgICAgICAgICBDcmVhdGUgYW4gZWxlbWVudCBvZiB0aGUgY29kb21haW4g ZnJvbSBhIHNpbmdsZSBlbGVtZW50IG9mIHRoZSBkb21haW4uCisgCitAQCAtMTEwLDcgKzExMCw3 IEBAIGNkZWYgY2xhc3MgRGVmYXVsdENvbnZlcnRNYXAoTWFwKToKKyAgICAgICAgICAgICAgICAg cHJpbnQodHlwZShDLl9lbGVtZW50X2NvbnN0cnVjdG9yKSwgQy5fZWxlbWVudF9jb25zdHJ1Y3Rv cikKKyAgICAgICAgICAgICByYWlzZQorIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsX3dpdGhf YXJncyhzZWxmLCB4LCBhcmdzPSgpLCBrd2RzPXt9KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxl bWVudCBfY2FsbF93aXRoX2FyZ3Moc2VsZiwgeCwgYXJncz0oKSwga3dkcz17fSk6CisgICAgICAg ICAiIiIKKyAgICAgICAgIENyZWF0ZSBhbiBlbGVtZW50IG9mIHRoZSBjb2RvbWFpbiBmcm9tIGFu IGVsZW1lbnQgb2YgdGhlIGRvbWFpbiwgd2l0aCBleHRyYSBhcmd1bWVudHMuCisgCitAQCAtMTUy LDcgKzE1Miw3IEBAIGNkZWYgY2xhc3MgRGVmYXVsdENvbnZlcnRNYXBfdW5pcXVlKERlZmF1bHRD b252ZXJ0TWFwKToKKyAgICAgdXNlZCB3aGVuIHRoZSBlbGVtZW50X2NvbnN0cnVjdG9yIGlzIGEg Ym91bmQgbWV0aG9kICh3aG9zZSBzZWxmCisgICAgIGFyZ3VtZW50IGlzIGFzc3VtZWQgdG8gYmUg Ym91bmQgdG8gdGhlIGNvZG9tYWluKS4KKyAgICAgIiIiCistICAgIGNwZGVmIEVsZW1lbnQgX2Nh bGxfKHNlbGYsIHgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4 KToKKyAgICAgICAgIGNkZWYgUGFyZW50IEMgPSBzZWxmLl9jb2RvbWFpbgorICAgICAgICAgdHJ5 OgorICAgICAgICAgICAgIHJldHVybiBDLl9lbGVtZW50X2NvbnN0cnVjdG9yKHgpCitAQCAtMTYy LDcgKzE2Miw3IEBAIGNkZWYgY2xhc3MgRGVmYXVsdENvbnZlcnRNYXBfdW5pcXVlKERlZmF1bHRD b252ZXJ0TWFwKToKKyAgICAgICAgICAgICAgICAgcHJpbnQodHlwZShDLl9lbGVtZW50X2NvbnN0 cnVjdG9yKSwgQy5fZWxlbWVudF9jb25zdHJ1Y3RvcikKKyAgICAgICAgICAgICByYWlzZQorIAor LSAgICBjcGRlZiBFbGVtZW50IF9jYWxsX3dpdGhfYXJncyhzZWxmLCB4LCBhcmdzPSgpLCBrd2Rz PXt9KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF93aXRoX2FyZ3Moc2VsZiwg eCwgYXJncz0oKSwga3dkcz17fSk6CisgICAgICAgICBjZGVmIFBhcmVudCBDID0gc2VsZi5fY29k b21haW4KKyAgICAgICAgIHRyeToKKyAgICAgICAgICAgICBpZiBsZW4oYXJncykgPT0gMDoKK0BA IC0yMTIsNyArMjEyLDcgQEAgY2RlZiBjbGFzcyBOYW1lZENvbnZlcnRNYXAoTWFwKToKKyAgICAg ICAgIHNlbGYubWV0aG9kX25hbWUgPSBtZXRob2RfbmFtZQorICAgICAgICAgc2VsZi5fcmVwcl90 eXBlX3N0ciA9ICJDb252ZXJzaW9uIHZpYSAlcyBtZXRob2QiICUgc2VsZi5tZXRob2RfbmFtZQor IAorLSAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVm IGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBIZWxwZXIg Zm9yIGNvcHlpbmcgYW5kIHBpY2tsaW5nLgorIAorQEAgLTIzOSw3ICsyMzksNyBAQCBjZGVmIGNs YXNzIE5hbWVkQ29udmVydE1hcChNYXApOgorICAgICAgICAgc2xvdHNbJ21ldGhvZF9uYW1lJ10g PSBzZWxmLm1ldGhvZF9uYW1lCisgICAgICAgICByZXR1cm4gc2xvdHMKKyAKKy0gICAgY2RlZiBf dXBkYXRlX3Nsb3RzKHNlbGYsIGRpY3QgX3Nsb3RzKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfdXBk YXRlX3Nsb3RzKHNlbGYsIGRpY3QgX3Nsb3RzKToKKyAgICAgICAgICIiIgorICAgICAgICAgSGVs cGVyIGZvciBjb3B5aW5nIGFuZCBwaWNrbGluZy4KKyAKK0BAIC0yNjUsNyArMjY1LDcgQEAgY2Rl ZiBjbGFzcyBOYW1lZENvbnZlcnRNYXAoTWFwKToKKyAgICAgICAgIHNlbGYubWV0aG9kX25hbWUg PSBfc2xvdHNbJ21ldGhvZF9uYW1lJ10KKyAgICAgICAgIE1hcC5fdXBkYXRlX3Nsb3RzKHNlbGYs IF9zbG90cykKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCkgbm9leGNlcHQ6 CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpOgorICAgICAgICAgIiIiCisgICAg ICAgICBFWEFNUExFUzo6CisgCitAQCAtMjk5LDcgKzI5OSw3IEBAIGNkZWYgY2xhc3MgTmFtZWRD b252ZXJ0TWFwKE1hcCk6CisgICAgICAgICAgICAgZSA9IG0uX2NhbGxfKGUpCisgICAgICAgICBy ZXR1cm4gZQorIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsX3dpdGhfYXJncyhzZWxmLCB4LCBh cmdzPSgpLCBrd2RzPXt9KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF93aXRo X2FyZ3Moc2VsZiwgeCwgYXJncz0oKSwga3dkcz17fSk6CisgICAgICAgICAiIiIKKyAgICAgICAg IEVYQU1QTEVTOjoKKyAKK0BAIC0zNjYsNyArMzY2LDcgQEAgY2RlZiBjbGFzcyBDYWxsYWJsZUNv bnZlcnRNYXAoTWFwKToKKyAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAg ICAgICBzZWxmLl9yZXByX3R5cGVfc3RyID0gIkNvbnZlcnNpb24gdmlhICVzIiAlIHNlbGYuX2Z1 bmMKKyAKKy0gICAgY2RlZiBkaWN0IF9leHRyYV9zbG90cyhzZWxmKSBub2V4Y2VwdDoKKysgICAg Y2RlZiBkaWN0IF9leHRyYV9zbG90cyhzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgSGVs cGVyIGZvciBjb3B5aW5nIGFuZCBwaWNrbGluZy4KKyAKK0BAIC0zODYsNyArMzg2LDcgQEAgY2Rl ZiBjbGFzcyBDYWxsYWJsZUNvbnZlcnRNYXAoTWFwKToKKyAgICAgICAgIHNsb3RzWydfcGFyZW50 X2FzX2ZpcnN0X2FyZyddID0gc2VsZi5fcGFyZW50X2FzX2ZpcnN0X2FyZworICAgICAgICAgcmV0 dXJuIHNsb3RzCisgCistICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0IF9zbG90cykg bm9leGNlcHQ6CisrICAgIGNkZWYgX3VwZGF0ZV9zbG90cyhzZWxmLCBkaWN0IF9zbG90cyk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIEhlbHBlciBmb3IgY29weWluZyBhbmQgcGlja2xpbmcuCisg CitAQCAtNDA1LDcgKzQwNSw3IEBAIGNkZWYgY2xhc3MgQ2FsbGFibGVDb252ZXJ0TWFwKE1hcCk6 CisgICAgICAgICBzZWxmLl9wYXJlbnRfYXNfZmlyc3RfYXJnID0gX3Nsb3RzWydfcGFyZW50X2Fz X2ZpcnN0X2FyZyddCisgICAgICAgICBNYXAuX3VwZGF0ZV9zbG90cyhzZWxmLCBfc2xvdHMpCisg CistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KToKKyAgICAgICAgICIiIgorICAgICAgICAgQmVjYXVz ZSBzZWxmLl9mdW5jIG1heSBiZSBhbnl0aGluZyB3ZSBkbyBhIGxpdHRsZSBiaXQgb2Ygc2FuaXR5 CisgICAgICAgICBjaGVja2luZyAodGhlIHJldHVybiB2YWx1ZSBtdXN0IGJlIGFuIGVsZW1lbnQg d2l0aCB0aGUgY29ycmVjdCBwYXJlbnQpLgorQEAgLTQ0Nyw3ICs0NDcsNyBAQCBjZGVmIGNsYXNz IENhbGxhYmxlQ29udmVydE1hcChNYXApOgorICAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJv cigiQlVHIGluIGNvZXJjaW9uIG1vZGVsOiB7fSByZXR1cm5lZCBlbGVtZW50IHdpdGggd3Jvbmcg cGFyZW50IChleHBlY3RlZCB7fSBnb3Qge30pIi5mb3JtYXQoc2VsZi5fZnVuYywgQywgeS5fcGFy ZW50KSkKKyAgICAgICAgIHJldHVybiB5CisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfd2l0 aF9hcmdzKHNlbGYsIHgsIGFyZ3M9KCksIGt3ZHM9e30pIG5vZXhjZXB0OgorKyAgICBjcGRlZiBF bGVtZW50IF9jYWxsX3dpdGhfYXJncyhzZWxmLCB4LCBhcmdzPSgpLCBrd2RzPXt9KToKKyAgICAg ICAgICIiIgorICAgICAgICAgVEVTVFM6OgorIAorQEAgLTQ4NSw3ICs0ODUsNyBAQCBjZGVmIGNs YXNzIENhbGxhYmxlQ29udmVydE1hcChNYXApOgorIAorIAorIGNkZWYgY2xhc3MgQ0NhbGxhYmxl Q29udmVydE1hcF9jbGFzcyhNYXApOgorLSAgICBjZGVmIEVsZW1lbnQgKCpfZnVuYykoUGFyZW50 LCBvYmplY3QpIG5vZXhjZXB0CisrICAgIGNkZWYgRWxlbWVudCAoKl9mdW5jKShQYXJlbnQsIG9i amVjdCkKKyAgICAgY2RlZiBwdWJsaWMgX25hbWUKKyAKKyAgICAgZGVmIF9faW5pdF9fKHNlbGYs IGRvbWFpbiwgY29kb21haW4sIG5hbWUpOgorQEAgLTQ5NSw3ICs0OTUsNyBAQCBjZGVmIGNsYXNz IENDYWxsYWJsZUNvbnZlcnRNYXBfY2xhc3MoTWFwKToKKyAgICAgICAgIHNlbGYuX2NvZXJjZV9j b3N0ID0gMTAKKyAgICAgICAgIHNlbGYuX25hbWUgPSBuYW1lCisgCistICAgIGNwZGVmIEVsZW1l bnQgX2NhbGxfKHNlbGYsIHgpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhz ZWxmLCB4KToKKyAgICAgICAgICIiIgorICAgICAgICAgVEVTVFM6OgorIAorQEAgLTUyNiw3ICs1 MjYsNyBAQCBjZGVmIGNsYXNzIENDYWxsYWJsZUNvbnZlcnRNYXBfY2xhc3MoTWFwKToKKyAgICAg ICAgICAgICByZXR1cm4gIkNvbnZlcnNpb24gdmlhIGMgY2FsbCAnJXMnIiAlIHNlbGYuX25hbWUK KyAKKyAKKy1jZGVmIE1hcCBDQ2FsbGFibGVDb252ZXJ0TWFwKGRvbWFpbiwgY29kb21haW4sIHZv aWQqIGZ1bmMsIG5hbWUpIG5vZXhjZXB0OgorK2NkZWYgTWFwIENDYWxsYWJsZUNvbnZlcnRNYXAo ZG9tYWluLCBjb2RvbWFpbiwgdm9pZCogZnVuYywgbmFtZSk6CisgICAgICIiIgorICAgICBVc2Ug dGhpcyB0byBjcmVhdGUgYSBtYXAgZnJvbSBkb21haW4gdG8gY29kb21haW4gYnkgY2FsbGluZyBm dW5jCisgICAgICh3aGljaCBtdXN0IGJlIGEgZnVuY3Rpb24gcG9pbnRlciB0YWtpbmcgYSBQYXJl bnQgYW5kIG9iamVjdCwgYW5kCitAQCAtNTQwLDcgKzU0MCw3IEBAIGNkZWYgTWFwIENDYWxsYWJs ZUNvbnZlcnRNYXAoZG9tYWluLCBjb2RvbWFpbiwgdm9pZCogZnVuYywgbmFtZSkgbm9leGNlcHQ6 CisgICAgIG1hcC5fZnVuYyA9IDxFbGVtZW50ICgqKShQYXJlbnQsIG9iamVjdCk+ZnVuYworICAg ICByZXR1cm4gbWFwCisgCistY3BkZWYgRWxlbWVudCBfY2NhbGxfdGVzdF9mdW5jdGlvbihjb2Rv bWFpbiwgeCkgbm9leGNlcHQ6CisrY3BkZWYgRWxlbWVudCBfY2NhbGxfdGVzdF9mdW5jdGlvbihj b2RvbWFpbiwgeCk6CisgICAgICIiIgorICAgICBGb3IgdGVzdGluZyBDQ2FsbGFibGVDb252ZXJ0 TWFwX2NsYXNzLiBSZXR1cm5zIHgqeCp4LXggaW4gdGhlIGNvZG9tYWluLgorIAorQEAgLTU4Nywy MyArNTg3LDIzIEBAIGNkZWYgY2xhc3MgTGlzdE1vcnBoaXNtKE1hcCk6CisgICAgICAgICBzZWxm Ll9yZWFsX21vcnBoaXNtID0gcmVhbF9tb3JwaGlzbQorICAgICAgICAgc2VsZi5fcmVwcl90eXBl X3N0ciA9ICJMaXN0IgorIAorLSAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpIG5vZXhj ZXB0OgorKyAgICBjZGVmIGRpY3QgX2V4dHJhX3Nsb3RzKHNlbGYpOgorICAgICAgICAgc2xvdHMg PSBNYXAuX2V4dHJhX3Nsb3RzKHNlbGYpCisgICAgICAgICBzbG90c1snX3JlYWxfbW9ycGhpc20n XSA9IHNlbGYuX3JlYWxfbW9ycGhpc20KKyAgICAgICAgIHJldHVybiBzbG90cworIAorLSAgICBj ZGVmIF91cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpIG5vZXhjZXB0OgorKyAgICBjZGVm IF91cGRhdGVfc2xvdHMoc2VsZiwgZGljdCBfc2xvdHMpOgorICAgICAgICAgc2VsZi5fcmVhbF9t b3JwaGlzbSA9IF9zbG90c1snX3JlYWxfbW9ycGhpc20nXQorICAgICAgICAgTWFwLl91cGRhdGVf c2xvdHMoc2VsZiwgX3Nsb3RzKQorIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4 KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCk6CisgICAgICAg ICB0cnk6CisgICAgICAgICAgICAgeCA9IHguX2RhdGEKKyAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1 dGVFcnJvcjoKKyAgICAgICAgICAgICB4ID0gbGlzdCh4KQorICAgICAgICAgcmV0dXJuIHNlbGYu X3JlYWxfbW9ycGhpc20uX2NhbGxfKHgpCisgCistICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfd2l0 aF9hcmdzKHNlbGYsIHgsIGFyZ3M9KCksIGt3ZHM9e30pIG5vZXhjZXB0OgorKyAgICBjcGRlZiBF bGVtZW50IF9jYWxsX3dpdGhfYXJncyhzZWxmLCB4LCBhcmdzPSgpLCBrd2RzPXt9KToKKyAgICAg ICAgIHRyeToKKyAgICAgICAgICAgICB4ID0geC5fZGF0YQorICAgICAgICAgZXhjZXB0IEF0dHJp YnV0ZUVycm9yOgorQEAgLTYzMiw3ICs2MzIsNyBAQCBjZGVmIGNsYXNzIFRyeU1hcChNYXApOgor ICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICBzZWxmLl9lcnJvcl90eXBlcyA9IGVycm9yX3R5 cGVzCisgCistICAgIGNkZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZikgbm9leGNlcHQ6CisrICAg IGNkZWYgZGljdCBfZXh0cmFfc2xvdHMoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEhl bHBlciBmb3IgY29weWluZyBhbmQgcGlja2xpbmcuCisgCitAQCAtNjU1LDcgKzY1NSw3IEBAIGNk ZWYgY2xhc3MgVHJ5TWFwKE1hcCk6CisgICAgICAgICBzbG90c1snX2Vycm9yX3R5cGVzJ10gPSBz ZWxmLl9lcnJvcl90eXBlcworICAgICAgICAgcmV0dXJuIHNsb3RzCisgCistICAgIGNkZWYgX3Vw ZGF0ZV9zbG90cyhzZWxmLCBkaWN0IF9zbG90cykgbm9leGNlcHQ6CisrICAgIGNkZWYgX3VwZGF0 ZV9zbG90cyhzZWxmLCBkaWN0IF9zbG90cyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEhlbHBl ciBmb3IgY29weWluZyBhbmQgcGlja2xpbmcuCisgCitAQCAtNjc3LDcgKzY3Nyw3IEBAIGNkZWYg Y2xhc3MgVHJ5TWFwKE1hcCk6CisgICAgICAgICBzZWxmLl9lcnJvcl90eXBlcyA9IF9zbG90c1sn X2Vycm9yX3R5cGVzJ10KKyAgICAgICAgIE1hcC5fdXBkYXRlX3Nsb3RzKHNlbGYsIF9zbG90cykK KyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgeCkgbm9leGNlcHQ6CisrICAgIGNw ZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIHgpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFN UExFUzo6CisgCitAQCAtNjk2LDcgKzY5Niw3IEBAIGNkZWYgY2xhc3MgVHJ5TWFwKE1hcCk6Cisg ICAgICAgICBleGNlcHQgc2VsZi5fZXJyb3JfdHlwZXM6CisgICAgICAgICAgICAgcmV0dXJuIHNl bGYuX21hcF9iLl9jYWxsXyh4KQorIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsX3dpdGhfYXJn cyhzZWxmLCB4LCBhcmdzPSgpLCBrd2RzPXt9KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgRWxlbWVu dCBfY2FsbF93aXRoX2FyZ3Moc2VsZiwgeCwgYXJncz0oKSwga3dkcz17fSk6CisgICAgICAgICAi IiIKKyAgICAgICAgIEVYQU1QTEVTOjoKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9zdHJ1Y3R1 cmUvZWxlbWVudC5weGQgYi9zcmMvc2FnZS9zdHJ1Y3R1cmUvZWxlbWVudC5weGQKK2luZGV4IDQ4 N2EzZDEyNmExLi4yZDM2MDkwNTc4MyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3N0cnVjdHVyZS9l bGVtZW50LnB4ZAorKysrIGIvc3JjL3NhZ2Uvc3RydWN0dXJlL2VsZW1lbnQucHhkCitAQCAtMyw3 ICszLDcgQEAgZnJvbSBzYWdlLnN0cnVjdHVyZS5wYXJlbnQgY2ltcG9ydCBQYXJlbnQKKyBmcm9t IHNhZ2UubWlzYy5pbmhlcml0X2NvbXBhcmlzb24gY2ltcG9ydCBJbmhlcml0Q29tcGFyaXNvbk1l dGFjbGFzcworIAorIAorLWNwZGVmIGlubGluZSBwYXJlbnQoeCkgbm9leGNlcHQ6CisrY3BkZWYg aW5saW5lIHBhcmVudCh4KToKKyAgICAgIiIiCisgICAgIFJldHVybiB0aGUgcGFyZW50IG9mIHRo ZSBlbGVtZW50IGBgeGBgLgorIAorQEAgLTE0MywzNiArMTQzLDM2IEBAIGNwZGVmIGlubGluZSBi aW50IGhhdmVfc2FtZV9wYXJlbnQobGVmdCwgcmlnaHQpIG5vZXhjZXB0OgorICAgICByZXR1cm4g SEFWRV9TQU1FX1BBUkVOVChjbGFzc2lmeV9lbGVtZW50cyhsZWZ0LCByaWdodCkpCisgCisgCist Y2RlZiB1bmFyeV9vcF9leGNlcHRpb24ob3AsIHgpIG5vZXhjZXB0CistY2RlZiBiaW5fb3BfZXhj ZXB0aW9uKG9wLCB4LCB5KSBub2V4Y2VwdAorK2NkZWYgdW5hcnlfb3BfZXhjZXB0aW9uKG9wLCB4 KQorK2NkZWYgYmluX29wX2V4Y2VwdGlvbihvcCwgeCwgeSkKKyAKKyAKKyBjZGVmIGNsYXNzIEVs ZW1lbnQoU2FnZU9iamVjdCk6CisgICAgIGNkZWYgUGFyZW50IF9wYXJlbnQKKy0gICAgY3BkZWYg X3JpY2hjbXBfKGxlZnQsIHJpZ2h0LCBpbnQgb3ApIG5vZXhjZXB0CisrICAgIGNwZGVmIF9yaWNo Y21wXyhsZWZ0LCByaWdodCwgaW50IG9wKQorICAgICBjcGRlZiBpbnQgX2NtcF8obGVmdCwgcmln aHQpIGV4Y2VwdCAtMgorLSAgICBjcGRlZiBiYXNlX2V4dGVuZChzZWxmLCBSKSBub2V4Y2VwdAor KyAgICBjcGRlZiBiYXNlX2V4dGVuZChzZWxmLCBSKQorIAorLSAgICBjZGVmIGdldGF0dHJfZnJv bV9jYXRlZ29yeShzZWxmLCBuYW1lKSBub2V4Y2VwdAorKyAgICBjZGVmIGdldGF0dHJfZnJvbV9j YXRlZ29yeShzZWxmLCBuYW1lKQorIAorLSAgICBjcGRlZiBfYWN0X29uXyhzZWxmLCB4LCBiaW50 IHNlbGZfb25fbGVmdCkgbm9leGNlcHQKKy0gICAgY3BkZWYgX2FjdGVkX3Vwb25fKHNlbGYsIHgs IGJpbnQgc2VsZl9vbl9sZWZ0KSBub2V4Y2VwdAorKyAgICBjcGRlZiBfYWN0X29uXyhzZWxmLCB4 LCBiaW50IHNlbGZfb25fbGVmdCkKKysgICAgY3BkZWYgX2FjdGVkX3Vwb25fKHNlbGYsIHgsIGJp bnQgc2VsZl9vbl9sZWZ0KQorIAorLSAgICBjZGVmIF9hZGRfKHNlbGYsIG90aGVyKSBub2V4Y2Vw dAorLSAgICBjZGVmIF9zdWJfKHNlbGYsIG90aGVyKSBub2V4Y2VwdAorLSAgICBjZGVmIF9uZWdf KHNlbGYpIG5vZXhjZXB0CistICAgIGNkZWYgX2FkZF9sb25nKHNlbGYsIGxvbmcgbikgbm9leGNl cHQKKysgICAgY2RlZiBfYWRkXyhzZWxmLCBvdGhlcikKKysgICAgY2RlZiBfc3ViXyhzZWxmLCBv dGhlcikKKysgICAgY2RlZiBfbmVnXyhzZWxmKQorKyAgICBjZGVmIF9hZGRfbG9uZyhzZWxmLCBs b25nIG4pCisgCistICAgIGNkZWYgX211bF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0CistICAgIGNk ZWYgX211bF9sb25nKHNlbGYsIGxvbmcgbikgbm9leGNlcHQKKy0gICAgY2RlZiBfbWF0bXVsXyhz ZWxmLCBvdGhlcikgbm9leGNlcHQKKy0gICAgY2RlZiBfZGl2XyhzZWxmLCBvdGhlcikgbm9leGNl cHQKKy0gICAgY2RlZiBfZmxvb3JkaXZfKHNlbGYsIG90aGVyKSBub2V4Y2VwdAorLSAgICBjZGVm IF9tb2RfKHNlbGYsIG90aGVyKSBub2V4Y2VwdAorKyAgICBjZGVmIF9tdWxfKHNlbGYsIG90aGVy KQorKyAgICBjZGVmIF9tdWxfbG9uZyhzZWxmLCBsb25nIG4pCisrICAgIGNkZWYgX21hdG11bF8o c2VsZiwgb3RoZXIpCisrICAgIGNkZWYgX2Rpdl8oc2VsZiwgb3RoZXIpCisrICAgIGNkZWYgX2Zs b29yZGl2XyhzZWxmLCBvdGhlcikKKysgICAgY2RlZiBfbW9kXyhzZWxmLCBvdGhlcikKKyAKKy0g ICAgY2RlZiBfcG93XyhzZWxmLCBvdGhlcikgbm9leGNlcHQKKy0gICAgY2RlZiBfcG93X2ludChz ZWxmLCBuKSBub2V4Y2VwdAorLSAgICBjZGVmIF9wb3dfbG9uZyhzZWxmLCBsb25nIG4pIG5vZXhj ZXB0CisrICAgIGNkZWYgX3Bvd18oc2VsZiwgb3RoZXIpCisrICAgIGNkZWYgX3Bvd19pbnQoc2Vs ZiwgbikKKysgICAgY2RlZiBfcG93X2xvbmcoc2VsZiwgbG9uZyBuKQorIAorIAorIGNkZWYgY2xh c3MgRWxlbWVudFdpdGhDYWNoZWRNZXRob2QoRWxlbWVudCk6CitAQCAtMTgzLDE0ICsxODMsMTQg QEAgY2RlZiBjbGFzcyBNb2R1bGVFbGVtZW50KEVsZW1lbnQpICAgICAgICMgZm9yd2FyZCBkZWNs YXJhdGlvbgorIGNkZWYgY2xhc3MgUmluZ0VsZW1lbnQoTW9kdWxlRWxlbWVudCkgICAjIGZvcndh cmQgZGVjbGFyYXRpb24KKyAKKyBjZGVmIGNsYXNzIE1vZHVsZUVsZW1lbnQoRWxlbWVudCk6Cist ICAgIGNwZGVmIF9hZGRfKHNlbGYsIG90aGVyKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfc3ViXyhz ZWxmLCBvdGhlcikgbm9leGNlcHQKKy0gICAgY3BkZWYgX25lZ18oc2VsZikgbm9leGNlcHQKKysg ICAgY3BkZWYgX2FkZF8oc2VsZiwgb3RoZXIpCisrICAgIGNwZGVmIF9zdWJfKHNlbGYsIG90aGVy KQorKyAgICBjcGRlZiBfbmVnXyhzZWxmKQorIAorICAgICAjIHNlbGYuX3JtdWxfKHgpIGlzIHgg KiBzZWxmCistICAgIGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IHJpZ2h0KSBub2V4Y2VwdAor KyAgICBjcGRlZiBfbG11bF8oc2VsZiwgRWxlbWVudCByaWdodCkKKyAgICAgIyBzZWxmLl9sbXVs Xyh4KSBpcyBzZWxmICogeAorLSAgICBjcGRlZiBfcm11bF8oc2VsZiwgRWxlbWVudCBsZWZ0KSBu b2V4Y2VwdAorKyAgICBjcGRlZiBfcm11bF8oc2VsZiwgRWxlbWVudCBsZWZ0KQorIAorIGNkZWYg Y2xhc3MgTW9kdWxlRWxlbWVudFdpdGhNdXRhYmlsaXR5KE1vZHVsZUVsZW1lbnQpOgorICAgICBj ZGVmIGJpbnQgX2lzX2ltbXV0YWJsZQorQEAgLTE5OCwxOCArMTk4LDE4IEBAIGNkZWYgY2xhc3Mg TW9kdWxlRWxlbWVudFdpdGhNdXRhYmlsaXR5KE1vZHVsZUVsZW1lbnQpOgorICAgICBjcGRlZiBi aW50IGlzX211dGFibGUoc2VsZikgbm9leGNlcHQKKyAKKyBjZGVmIGNsYXNzIE1vbm9pZEVsZW1l bnQoRWxlbWVudCk6CistICAgIGNwZGVmIF9wb3dfaW50KHNlbGYsIG4pIG5vZXhjZXB0CisrICAg IGNwZGVmIF9wb3dfaW50KHNlbGYsIG4pCisgCisgY2RlZiBjbGFzcyBNdWx0aXBsaWNhdGl2ZUdy b3VwRWxlbWVudChNb25vaWRFbGVtZW50KToKKy0gICAgY3BkZWYgX2Rpdl8oc2VsZiwgb3RoZXIp IG5vZXhjZXB0CisrICAgIGNwZGVmIF9kaXZfKHNlbGYsIG90aGVyKQorIAorIGNkZWYgY2xhc3Mg QWRkaXRpdmVHcm91cEVsZW1lbnQoTW9kdWxlRWxlbWVudCk6CisgICAgIHBhc3MKKyAKKyBjZGVm IGNsYXNzIFJpbmdFbGVtZW50KE1vZHVsZUVsZW1lbnQpOgorLSAgICBjcGRlZiBfbXVsXyhzZWxm LCBvdGhlcikgbm9leGNlcHQKKy0gICAgY3BkZWYgX2Rpdl8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0 CistICAgIGNwZGVmIF9wb3dfaW50KHNlbGYsIG4pIG5vZXhjZXB0CisrICAgIGNwZGVmIF9tdWxf KHNlbGYsIG90aGVyKQorKyAgICBjcGRlZiBfZGl2XyhzZWxmLCBvdGhlcikKKysgICAgY3BkZWYg X3Bvd19pbnQoc2VsZiwgbikKKyAKKyBjZGVmIGNsYXNzIENvbW11dGF0aXZlUmluZ0VsZW1lbnQo UmluZ0VsZW1lbnQpOgorICAgICBwYXNzCitAQCAtMjI0LDExICsyMjQsMTEgQEAgY2RlZiBjbGFz cyBQcmluY2lwYWxJZGVhbERvbWFpbkVsZW1lbnQoRGVkZWtpbmREb21haW5FbGVtZW50KToKKyAg ICAgcGFzcworIAorIGNkZWYgY2xhc3MgRXVjbGlkZWFuRG9tYWluRWxlbWVudChQcmluY2lwYWxJ ZGVhbERvbWFpbkVsZW1lbnQpOgorLSAgICBjcGRlZiBfZmxvb3JkaXZfKHNlbGYsIG90aGVyKSBu b2V4Y2VwdAorLSAgICBjcGRlZiBfbW9kXyhzZWxmLCBvdGhlcikgbm9leGNlcHQKKysgICAgY3Bk ZWYgX2Zsb29yZGl2XyhzZWxmLCBvdGhlcikKKysgICAgY3BkZWYgX21vZF8oc2VsZiwgb3RoZXIp CisgCisgY2RlZiBjbGFzcyBGaWVsZEVsZW1lbnQoQ29tbXV0YXRpdmVSaW5nRWxlbWVudCk6Cist ICAgIGNwZGVmIF9mbG9vcmRpdl8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0CisrICAgIGNwZGVmIF9m bG9vcmRpdl8oc2VsZiwgb3RoZXIpCisgCisgY2RlZiBjbGFzcyBBbGdlYnJhRWxlbWVudChSaW5n RWxlbWVudCk6CisgICAgIHBhc3MKK0BAIC0yNDgsMTAgKzI0OCwxMCBAQCBjZGVmIGNsYXNzIFZl Y3RvcihNb2R1bGVFbGVtZW50V2l0aE11dGFiaWxpdHkpOgorICAgICAjIFJldHVybiB0aGUgZG90 IHByb2R1Y3QgdXNpbmcgdGhlIHNpbXBsZSBtZXRyaWMKKyAgICAgIyAkZV9pIFxjZG90IGVfaiA9 IFxkZWx0YV97aWp9JC4gVGhlIGZpcnN0IGFzc3VtZXMgdGhhdCB0aGUgcGFyZW50cworICAgICAj IGFyZSBlcXVhbCwgYm90aCBhc3N1bWUgdGhhdCB0aGUgZGVncmVlcyBhcmUgZXF1YWwuCistICAg IGNwZGVmIF9kb3RfcHJvZHVjdF8oVmVjdG9yIGxlZnQsIFZlY3RvciByaWdodCkgbm9leGNlcHQK Ky0gICAgY3BkZWYgX2RvdF9wcm9kdWN0X2NvZXJjZV8oVmVjdG9yIGxlZnQsIFZlY3RvciByaWdo dCkgbm9leGNlcHQKKysgICAgY3BkZWYgX2RvdF9wcm9kdWN0XyhWZWN0b3IgbGVmdCwgVmVjdG9y IHJpZ2h0KQorKyAgICBjcGRlZiBfZG90X3Byb2R1Y3RfY29lcmNlXyhWZWN0b3IgbGVmdCwgVmVj dG9yIHJpZ2h0KQorIAorLSAgICBjcGRlZiBfcGFpcndpc2VfcHJvZHVjdF8oVmVjdG9yIGxlZnQs IFZlY3RvciByaWdodCkgbm9leGNlcHQgIyBvdmVycmlkZSwgY2FsbCBpZiBwYXJlbnRzIHRoZSBz YW1lCisrICAgIGNwZGVmIF9wYWlyd2lzZV9wcm9kdWN0XyhWZWN0b3IgbGVmdCwgVmVjdG9yIHJp Z2h0KSAjIG92ZXJyaWRlLCBjYWxsIGlmIHBhcmVudHMgdGhlIHNhbWUKKyAKKyAgICAgY2RlZiBi aW50IGlzX3NwYXJzZV9jKHNlbGYpIG5vZXhjZXB0CisgICAgIGNkZWYgYmludCBpc19kZW5zZV9j KHNlbGYpIG5vZXhjZXB0CitAQCAtMjYyLDkgKzI2Miw5IEBAIGNkZWYgY2xhc3MgTWF0cml4KE1v ZHVsZUVsZW1lbnQpOgorICAgICBjZGVmIFB5X3NzaXplX3QgX25yb3dzCisgICAgIGNkZWYgUHlf c3NpemVfdCBfbmNvbHMKKyAKKy0gICAgY2RlZiBfdmVjdG9yX3RpbWVzX21hdHJpeF8obWF0cml4 X3JpZ2h0LCBWZWN0b3IgdmVjdG9yX2xlZnQpIG5vZXhjZXB0ICAgICMgT0sgdG8gb3ZlcnJpZGUs IEFORCBjYWxsIGRpcmVjdGx5CistICAgIGNkZWYgX21hdHJpeF90aW1lc192ZWN0b3JfKG1hdHJp eF9sZWZ0LCBWZWN0b3IgdmVjdG9yX3JpZ2h0KSBub2V4Y2VwdCAgICAjIE9LIHRvIG92ZXJyaWRl LCBBTkQgY2FsbCBkaXJlY3RseQorLSAgICBjZGVmIF9tYXRyaXhfdGltZXNfbWF0cml4XyhsZWZ0 LCBNYXRyaXggcmlnaHQpIG5vZXhjZXB0ICAgICAgICAgICAgICAgICAgIyBPSyB0byBvdmVycmlk ZSwgQU5EIGNhbGwgZGlyZWN0bHkKKysgICAgY2RlZiBfdmVjdG9yX3RpbWVzX21hdHJpeF8obWF0 cml4X3JpZ2h0LCBWZWN0b3IgdmVjdG9yX2xlZnQpICAgICMgT0sgdG8gb3ZlcnJpZGUsIEFORCBj YWxsIGRpcmVjdGx5CisrICAgIGNkZWYgX21hdHJpeF90aW1lc192ZWN0b3JfKG1hdHJpeF9sZWZ0 LCBWZWN0b3IgdmVjdG9yX3JpZ2h0KSAgICAjIE9LIHRvIG92ZXJyaWRlLCBBTkQgY2FsbCBkaXJl Y3RseQorKyAgICBjZGVmIF9tYXRyaXhfdGltZXNfbWF0cml4XyhsZWZ0LCBNYXRyaXggcmlnaHQp ICAgICAgICAgICAgICAgICAgIyBPSyB0byBvdmVycmlkZSwgQU5EIGNhbGwgZGlyZWN0bHkKKyAK KyAgICAgY2RlZiBiaW50IGlzX3NwYXJzZV9jKHNlbGYpIG5vZXhjZXB0CisgICAgIGNkZWYgYmlu dCBpc19kZW5zZV9jKHNlbGYpIG5vZXhjZXB0CitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvc3RydWN0 dXJlL2VsZW1lbnQucHl4IGIvc3JjL3NhZ2Uvc3RydWN0dXJlL2VsZW1lbnQucHl4CitpbmRleCAx N2U4ZmI1MTY5MC4uNDc1ZDExNDczMTUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9zdHJ1Y3R1cmUv ZWxlbWVudC5weXgKKysrKyBiL3NyYy9zYWdlL3N0cnVjdHVyZS9lbGVtZW50LnB5eAorQEAgLTMy NCw3ICszMjQsNyBAQCBkZWYgbWFrZV9lbGVtZW50KF9jbGFzcywgX2RpY3QsIHBhcmVudCk6Cisg ICAgIHJldHVybiBtYWtlX2VsZW1lbnRfb2xkKF9jbGFzcywgX2RpY3QsIHBhcmVudCkKKyAKKyAK Ky1jZGVmIHVuYXJ5X29wX2V4Y2VwdGlvbihvcCwgeCkgbm9leGNlcHQ6CisrY2RlZiB1bmFyeV9v cF9leGNlcHRpb24ob3AsIHgpOgorICAgICB0cnk6CisgICAgICAgICBvcCA9IG9wLl9fbmFtZV9f CisgICAgICAgICBvcCA9IF9jb2VyY2Vfb3Bfc3ltYm9sc1tvcF0KK0BAIC0zMzQsNyArMzM0LDcg QEAgY2RlZiB1bmFyeV9vcF9leGNlcHRpb24ob3AsIHgpIG5vZXhjZXB0OgorICAgICByZXR1cm4g VHlwZUVycm9yKGYidW5zdXBwb3J0ZWQgb3BlcmFuZCBwYXJlbnQgZm9yIHtvcH06ICd7cHh9JyIp CisgCisgCistY2RlZiBiaW5fb3BfZXhjZXB0aW9uKG9wLCB4LCB5KSBub2V4Y2VwdDoKKytjZGVm IGJpbl9vcF9leGNlcHRpb24ob3AsIHgsIHkpOgorICAgICB0cnk6CisgICAgICAgICBvcCA9IG9w Ll9fbmFtZV9fCisgICAgICAgICBvcCA9IF9jb2VyY2Vfb3Bfc3ltYm9sc1tvcF0KK0BAIC00ODgs NyArNDg4LDcgQEAgY2RlZiBjbGFzcyBFbGVtZW50KFNhZ2VPYmplY3QpOgorICAgICAgICAgIiIi CisgICAgICAgICByZXR1cm4gc2VsZi5nZXRhdHRyX2Zyb21fY2F0ZWdvcnkobmFtZSkKKyAKKy0g ICAgY2RlZiBnZXRhdHRyX2Zyb21fY2F0ZWdvcnkoc2VsZiwgbmFtZSkgbm9leGNlcHQ6CisrICAg IGNkZWYgZ2V0YXR0cl9mcm9tX2NhdGVnb3J5KHNlbGYsIG5hbWUpOgorICAgICAgICAgIyBMb29r dXAgYSBtZXRob2Qgb3IgYXR0cmlidXRlIGZyb20gdGhlIGNhdGVnb3J5IGFic3RyYWN0IGNsYXNz ZXMuCisgICAgICAgICAjIFNlZSBfX2dldGF0dHJfXyBhYm92ZSBmb3IgZG9jdW1lbnRhdGlvbi4K KyAgICAgICAgIGNkZWYgUGFyZW50IFAgPSBzZWxmLl9wYXJlbnQKK0BAIC02MzYsNyArNjM2LDcg QEAgY2RlZiBjbGFzcyBFbGVtZW50KFNhZ2VPYmplY3QpOgorICAgICAgICAgIiIiCisgICAgICAg ICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisgCistICAgIGNwZGVmIGJhc2VfZXh0ZW5kKHNl bGYsIFIpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBiYXNlX2V4dGVuZChzZWxmLCBSKToKKyAgICAg ICAgIGNkZWYgUGFyZW50IFYKKyAgICAgICAgIFYgPSBzZWxmLl9wYXJlbnQuYmFzZV9leHRlbmQo UikKKyAgICAgICAgIHJldHVybiBWLmNvZXJjZShzZWxmKQorQEAgLTkyOCw3ICs5MjgsNyBAQCBj ZGVmIGNsYXNzIEVsZW1lbnQoU2FnZU9iamVjdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJl dHVybiBzZWxmLm4ocHJlYykuX21wbWF0aF8ocHJlYz1wcmVjKQorIAorLSAgICBjcGRlZiBfYWN0 X29uXyhzZWxmLCB4LCBiaW50IHNlbGZfb25fbGVmdCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9h Y3Rfb25fKHNlbGYsIHgsIGJpbnQgc2VsZl9vbl9sZWZ0KToKKyAgICAgICAgICIiIgorICAgICAg ICAgVXNlIHRoaXMgbWV0aG9kIHRvIGltcGxlbWVudCBgYHNlbGZgYCBhY3Rpbmcgb24gYGB4YGAu CisgCitAQCAtOTM3LDcgKzkzNyw3IEBAIGNkZWYgY2xhc3MgRWxlbWVudChTYWdlT2JqZWN0KToK KyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIE5vbmUKKyAKKy0gICAgY3BkZWYgX2FjdGVk X3Vwb25fKHNlbGYsIHgsIGJpbnQgc2VsZl9vbl9sZWZ0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X2FjdGVkX3Vwb25fKHNlbGYsIHgsIGJpbnQgc2VsZl9vbl9sZWZ0KToKKyAgICAgICAgICIiIgor ICAgICAgICAgVXNlIHRoaXMgbWV0aG9kIHRvIGltcGxlbWVudCBgYHNlbGZgYCBhY3RlZCBvbiBi eSB4LgorIAorQEAgLTEwOTcsNyArMTA5Nyw3IEBAIGNkZWYgY2xhc3MgRWxlbWVudChTYWdlT2Jq ZWN0KToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgcmV0dXJuIGNvZXJjaW9uX21vZGVs LnJpY2hjbXAoc2VsZiwgb3RoZXIsIG9wKQorIAorLSAgICBjcGRlZiBfcmljaGNtcF8obGVmdCwg cmlnaHQsIGludCBvcCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdo dCwgaW50IG9wKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIEJhc2ljIGRlZmF1bHQgaW1wbGVt ZW50YXRpb24gb2YgcmljaCBjb21wYXJpc29ucyBmb3IgZWxlbWVudHMgd2l0aAorICAgICAgICAg ZXF1YWwgcGFyZW50cy4KK0BAIC0xMjM5LDcgKzEyMzksNyBAQCBjZGVmIGNsYXNzIEVsZW1lbnQo U2FnZU9iamVjdCk6CisgICAgICAgICAgICAgIyByZXZlcnNlZCBhZGRpdGlvbiAoX19yYWRkX18p LgorICAgICAgICAgICAgIHJldHVybiBOb3RJbXBsZW1lbnRlZAorIAorLSAgICBjZGVmIF9hZGRf KHNlbGYsIG90aGVyKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfYWRkXyhzZWxmLCBvdGhlcik6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIFZpcnR1YWwgYWRkaXRpb24gbWV0aG9kIGZvciBlbGVtZW50 cyB3aXRoIGlkZW50aWNhbCBwYXJlbnRzLgorIAorQEAgLTEyNjksNyArMTI2OSw3IEBAIGNkZWYg Y2xhc3MgRWxlbWVudChTYWdlT2JqZWN0KToKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg cmV0dXJuIHB5dGhvbl9vcChvdGhlcikKKyAKKy0gICAgY2RlZiBfYWRkX2xvbmcoc2VsZiwgbG9u ZyBuKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfYWRkX2xvbmcoc2VsZiwgbG9uZyBuKToKKyAgICAg ICAgICIiIgorICAgICAgICAgR2VuZXJpYyBwYXRoIGZvciBhZGRpbmcgYSBDIGxvbmcsIGFzc3Vt ZWQgdG8gY29tbXV0ZS4KKyAKK0BAIC0xMzUxLDcgKzEzNTEsNyBAQCBjZGVmIGNsYXNzIEVsZW1l bnQoU2FnZU9iamVjdCk6CisgICAgICAgICBleGNlcHQgVHlwZUVycm9yOgorICAgICAgICAgICAg IHJldHVybiBOb3RJbXBsZW1lbnRlZAorIAorLSAgICBjZGVmIF9zdWJfKHNlbGYsIG90aGVyKSBu b2V4Y2VwdDoKKysgICAgY2RlZiBfc3ViXyhzZWxmLCBvdGhlcik6CisgICAgICAgICAiIiIKKyAg ICAgICAgIFZpcnR1YWwgc3VidHJhY3Rpb24gbWV0aG9kIGZvciBlbGVtZW50cyB3aXRoIGlkZW50 aWNhbCBwYXJlbnRzLgorIAorQEAgLTE0MDUsNyArMTQwNSw3IEBAIGNkZWYgY2xhc3MgRWxlbWVu dChTYWdlT2JqZWN0KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYuX25lZ18o KQorIAorLSAgICBjZGVmIF9uZWdfKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9uZWdfKHNl bGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBWaXJ0dWFsIHVuYXJ5IG5lZ2F0aW9uIG1ldGhv ZCBmb3IgZWxlbWVudHMuCisgCitAQCAtMTUxOSw3ICsxNTE5LDcgQEAgY2RlZiBjbGFzcyBFbGVt ZW50KFNhZ2VPYmplY3QpOgorICAgICAgICAgZXhjZXB0IFR5cGVFcnJvcjoKKyAgICAgICAgICAg ICByZXR1cm4gTm90SW1wbGVtZW50ZWQKKyAKKy0gICAgY2RlZiBfbXVsXyhzZWxmLCBvdGhlcikg bm9leGNlcHQ6CisrICAgIGNkZWYgX211bF8oc2VsZiwgb3RoZXIpOgorICAgICAgICAgIiIiCisg ICAgICAgICBWaXJ0dWFsIG11bHRpcGxpY2F0aW9uIG1ldGhvZCBmb3IgZWxlbWVudHMgd2l0aCBp ZGVudGljYWwgcGFyZW50cy4KKyAKK0BAIC0xNTQ5LDcgKzE1NDksNyBAQCBjZGVmIGNsYXNzIEVs ZW1lbnQoU2FnZU9iamVjdCk6CisgICAgICAgICBlbHNlOgorICAgICAgICAgICAgIHJldHVybiBw eXRob25fb3Aob3RoZXIpCisgCistICAgIGNkZWYgX211bF9sb25nKHNlbGYsIGxvbmcgbikgbm9l eGNlcHQ6CisrICAgIGNkZWYgX211bF9sb25nKHNlbGYsIGxvbmcgbik6CisgICAgICAgICAiIiIK KyAgICAgICAgIEdlbmVyaWMgcGF0aCBmb3IgbXVsdGlwbHlpbmcgYnkgYSBDIGxvbmcsIGFzc3Vt ZWQgdG8gY29tbXV0ZS4KKyAKK0BAIC0xNjMxLDcgKzE2MzEsNyBAQCBjZGVmIGNsYXNzIEVsZW1l bnQoU2FnZU9iamVjdCk6CisgICAgICAgICBleGNlcHQgVHlwZUVycm9yOgorICAgICAgICAgICAg IHJldHVybiBOb3RJbXBsZW1lbnRlZAorIAorLSAgICBjZGVmIF9tYXRtdWxfKHNlbGYsIG90aGVy KSBub2V4Y2VwdDoKKysgICAgY2RlZiBfbWF0bXVsXyhzZWxmLCBvdGhlcik6CisgICAgICAgICAi IiIKKyAgICAgICAgIFZpcnR1YWwgbWF0cml4IG11bHRpcGxpY2F0aW9uIG1ldGhvZCBmb3IgZWxl bWVudHMgd2l0aAorICAgICAgICAgaWRlbnRpY2FsIHBhcmVudHMuCitAQCAtMTczNCw3ICsxNzM0 LDcgQEAgY2RlZiBjbGFzcyBFbGVtZW50KFNhZ2VPYmplY3QpOgorICAgICAgICAgZXhjZXB0IFR5 cGVFcnJvcjoKKyAgICAgICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQKKyAKKy0gICAgY2Rl ZiBfZGl2XyhzZWxmLCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNkZWYgX2Rpdl8oc2VsZiwgb3Ro ZXIpOgorICAgICAgICAgIiIiCisgICAgICAgICBWaXJ0dWFsIGRpdmlzaW9uIG1ldGhvZCBmb3Ig ZWxlbWVudHMgd2l0aCBpZGVudGljYWwgcGFyZW50cy4KKyAgICAgICAgIFRoaXMgaXMgY2FsbGVk IGZvciBQeXRob24gMiBkaXZpc2lvbiBhcyB3ZWxsIGFzIHRydWUgZGl2aXNpb24uCitAQCAtMTgz NSw3ICsxODM1LDcgQEAgY2RlZiBjbGFzcyBFbGVtZW50KFNhZ2VPYmplY3QpOgorICAgICAgICAg ZXhjZXB0IFR5cGVFcnJvcjoKKyAgICAgICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQKKyAK Ky0gICAgY2RlZiBfZmxvb3JkaXZfKHNlbGYsIG90aGVyKSBub2V4Y2VwdDoKKysgICAgY2RlZiBf Zmxvb3JkaXZfKHNlbGYsIG90aGVyKToKKyAgICAgICAgICIiIgorICAgICAgICAgVmlydHVhbCBm bG9vciBkaXZpc2lvbiBtZXRob2QgZm9yIGVsZW1lbnRzIHdpdGggaWRlbnRpY2FsIHBhcmVudHMu CisgCitAQCAtMTkzNSw3ICsxOTM1LDcgQEAgY2RlZiBjbGFzcyBFbGVtZW50KFNhZ2VPYmplY3Qp OgorICAgICAgICAgZXhjZXB0IFR5cGVFcnJvcjoKKyAgICAgICAgICAgICByZXR1cm4gTm90SW1w bGVtZW50ZWQKKyAKKy0gICAgY2RlZiBfbW9kXyhzZWxmLCBvdGhlcikgbm9leGNlcHQ6CisrICAg IGNkZWYgX21vZF8oc2VsZiwgb3RoZXIpOgorICAgICAgICAgIiIiCisgICAgICAgICBWaXJ0dWFs IG1vZHVsbyBtZXRob2QgZm9yIGVsZW1lbnRzIHdpdGggaWRlbnRpY2FsIHBhcmVudHMuCisgCitA QCAtMjA2Miw3ICsyMDYyLDcgQEAgY2RlZiBjbGFzcyBFbGVtZW50KFNhZ2VPYmplY3QpOgorICAg ICAgICAgZXhjZXB0IFR5cGVFcnJvcjoKKyAgICAgICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50 ZWQKKyAKKy0gICAgY2RlZiBfcG93XyhzZWxmLCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNkZWYg X3Bvd18oc2VsZiwgb3RoZXIpOgorICAgICAgICAgIiIiCisgICAgICAgICBWaXJ0dWFsIHBvd2Vy aW5nIG1ldGhvZCBmb3IgZWxlbWVudHMgd2l0aCBpZGVudGljYWwgcGFyZW50cy4KKyAKK0BAIC0y MDkyLDcgKzIwOTIsNyBAQCBjZGVmIGNsYXNzIEVsZW1lbnQoU2FnZU9iamVjdCk6CisgICAgICAg ICBlbHNlOgorICAgICAgICAgICAgIHJldHVybiBweXRob25fb3Aob3RoZXIpCisgCistICAgIGNk ZWYgX3Bvd19pbnQoc2VsZiwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9wb3dfaW50KHNl bGYsIG90aGVyKToKKyAgICAgICAgICIiIgorICAgICAgICAgVmlydHVhbCBwb3dlcmluZyBtZXRo b2QgZm9yIHBvd2VyaW5nIHRvIGFuIGludGVnZXIgZXhwb25lbnQuCisgCitAQCAtMjEyMiw3ICsy MTIyLDcgQEAgY2RlZiBjbGFzcyBFbGVtZW50KFNhZ2VPYmplY3QpOgorICAgICAgICAgZWxzZToK KyAgICAgICAgICAgICByZXR1cm4gcHl0aG9uX29wKG90aGVyKQorIAorLSAgICBjZGVmIF9wb3df bG9uZyhzZWxmLCBsb25nIG4pIG5vZXhjZXB0OgorKyAgICBjZGVmIF9wb3dfbG9uZyhzZWxmLCBs b25nIG4pOgorICAgICAgICAgIiIiCisgICAgICAgICBHZW5lcmljIHBhdGggZm9yIHBvd2VyaW5n IHdpdGggYSBDIGxvbmcuCisgICAgICAgICAiIiIKK0BAIC0yMjk5LDcgKzIyOTksNyBAQCBjZGVm IGNsYXNzIEVsZW1lbnRXaXRoQ2FjaGVkTWV0aG9kKEVsZW1lbnQpOgorICAgICAgICAgVHJ1ZQor IAorICAgICAiIiIKKy0gICAgY2RlZiBnZXRhdHRyX2Zyb21fY2F0ZWdvcnkoc2VsZiwgbmFtZSkg bm9leGNlcHQ6CisrICAgIGNkZWYgZ2V0YXR0cl9mcm9tX2NhdGVnb3J5KHNlbGYsIG5hbWUpOgor ICAgICAgICAgIiIiCisgICAgICAgICBUaGlzIGdldGF0dHIgbWV0aG9kIGVuc3VyZXMgdGhhdCBj YWNoZWQgbWV0aG9kcyBhbmQgbGF6eSBhdHRyaWJ1dGVzCisgICAgICAgICBjYW4gYmUgaW5oZXJp dGVkIGZyb20gdGhlIGVsZW1lbnQgY2xhc3Mgb2YgYSBjYXRlZ29yeS4KK0BAIC0yMzY3LDcgKzIz NjcsNyBAQCBjZGVmIGNsYXNzIE1vZHVsZUVsZW1lbnQoRWxlbWVudCk6CisgICAgICIiIgorICAg ICBHZW5lcmljIGVsZW1lbnQgb2YgYSBtb2R1bGUuCisgICAgICIiIgorLSAgICBjcGRlZiBfYWRk XyhzZWxmLCBvdGhlcikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKHNlbGYsIG90aGVyKToK KyAgICAgICAgICIiIgorICAgICAgICAgQWJzdHJhY3QgYWRkaXRpb24gbWV0aG9kCisgCitAQCAt MjM4Miw3ICsyMzgyLDcgQEAgY2RlZiBjbGFzcyBNb2R1bGVFbGVtZW50KEVsZW1lbnQpOgorICAg ICAgICAgIiIiCisgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKGYiYWRkaXRpb24g bm90IGltcGxlbWVudGVkIGZvciB7c2VsZi5fcGFyZW50fSIpCisgCistICAgIGNkZWYgX2FkZF9s b25nKHNlbGYsIGxvbmcgbikgbm9leGNlcHQ6CisrICAgIGNkZWYgX2FkZF9sb25nKHNlbGYsIGxv bmcgbik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEdlbmVyaWMgcGF0aCBmb3IgYWRkaW5nIGEg QyBsb25nLCBhc3N1bWVkIHRvIGNvbW11dGUuCisgICAgICAgICAiIiIKK0BAIC0yMzkwLDIxICsy MzkwLDIxIEBAIGNkZWYgY2xhc3MgTW9kdWxlRWxlbWVudChFbGVtZW50KToKKyAgICAgICAgICAg ICByZXR1cm4gc2VsZgorICAgICAgICAgcmV0dXJuIGNvZXJjaW9uX21vZGVsLmJpbl9vcChzZWxm LCBuLCBhZGQpCisgCistICAgIGNwZGVmIF9zdWJfKHNlbGYsIG90aGVyKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgX3N1Yl8oc2VsZiwgb3RoZXIpOgorICAgICAgICAgIiIiCisgICAgICAgICBEZWZh dWx0IGltcGxlbWVudGF0aW9uIG9mIHN1YnRyYWN0aW9uIHVzaW5nIGFkZGl0aW9uIGFuZAorICAg ICAgICAgbmVnYXRpb24uCisgICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmICsgKC1v dGhlcikKKyAKKy0gICAgY3BkZWYgX25lZ18oc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9u ZWdfKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBEZWZhdWx0IGltcGxlbWVudGF0aW9u IG9mIG5lZ2F0aW9uIHVzaW5nIG11bHRpcGxpY2F0aW9uCisgICAgICAgICB3aXRoIC0xLgorICAg ICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2VsZi5fbXVsX2xvbmcoLTEpCisgCistICAgIGNk ZWYgX211bF9sb25nKHNlbGYsIGxvbmcgbikgbm9leGNlcHQ6CisrICAgIGNkZWYgX211bF9sb25n KHNlbGYsIGxvbmcgbik6CisgICAgICAgICAiIiIKKyAgICAgICAgIEdlbmVyaWMgcGF0aCBmb3Ig bXVsdGlwbHlpbmcgYnkgYSBDIGxvbmcsIGFzc3VtZWQgdG8gY29tbXV0ZS4KKyAgICAgICAgICIi IgorQEAgLTI0MTMsNyArMjQxMyw3IEBAIGNkZWYgY2xhc3MgTW9kdWxlRWxlbWVudChFbGVtZW50 KToKKyAgICAgICAgIHJldHVybiBjb2VyY2lvbl9tb2RlbC5iaW5fb3Aoc2VsZiwgbiwgbXVsKQor IAorICAgICAjIHJtdWwgLS0gbGVmdCAqIHNlbGYKKy0gICAgY3BkZWYgX3JtdWxfKHNlbGYsIEVs ZW1lbnQgbGVmdCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9ybXVsXyhzZWxmLCBFbGVtZW50IGxl ZnQpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXZlcnNlZCBzY2FsYXIgbXVsdGlwbGljYXRp b24gZm9yIG1vZHVsZSBlbGVtZW50cyB3aXRoIHRoZQorICAgICAgICAgbW9kdWxlIGVsZW1lbnQg b24gdGhlIHJpZ2h0IGFuZCB0aGUgc2NhbGFyIG9uIHRoZSBsZWZ0LgorQEAgLTI0MjMsNyArMjQy Myw3IEBAIGNkZWYgY2xhc3MgTW9kdWxlRWxlbWVudChFbGVtZW50KToKKyAgICAgICAgIHJldHVy biBzZWxmLl9sbXVsXyhsZWZ0KQorIAorICAgICAjIGxtdWwgLS0gc2VsZiAqIHJpZ2h0CistICAg IGNwZGVmIF9sbXVsXyhzZWxmLCBFbGVtZW50IHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYg X2xtdWxfKHNlbGYsIEVsZW1lbnQgcmlnaHQpOgorICAgICAgICAgIiIiCisgICAgICAgICBTY2Fs YXIgbXVsdGlwbGljYXRpb24gZm9yIG1vZHVsZSBlbGVtZW50cyB3aXRoIHRoZSBtb2R1bGUKKyAg ICAgICAgIGVsZW1lbnQgb24gdGhlIGxlZnQgYW5kIHRoZSBzY2FsYXIgb24gdGhlIHJpZ2h0Lgor QEAgLTI1NDIsNyArMjU0Miw3IEBAIGNkZWYgY2xhc3MgTW9ub2lkRWxlbWVudChFbGVtZW50KToK KyAgICAgICAgICIiIgorICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorIAorLSAg ICBjcGRlZiBfcG93X2ludChzZWxmLCBuKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3Bvd19pbnQo c2VsZiwgbik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiB0aGUgKGludGVncmFsKSBw b3dlciBvZiBzZWxmLgorICAgICAgICAgIiIiCitAQCAtMjYxMCw3ICsyNjEwLDcgQEAgY2RlZiBj bGFzcyBNdWx0aXBsaWNhdGl2ZUdyb3VwRWxlbWVudChNb25vaWRFbGVtZW50KToKKyAgICAgICAg ICIiIgorICAgICAgICAgcmV0dXJuIHNlbGYubXVsdGlwbGljYXRpdmVfb3JkZXIoKQorIAorLSAg ICBjcGRlZiBfZGl2XyhzZWxmLCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9kaXZfKHNl bGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAgRGVmYXVsdCBpbXBsZW1lbnRhdGlv biBvZiBkaXZpc2lvbiB1c2luZyBtdWx0aXBsaWNhdGlvbiBieQorICAgICAgICAgdGhlIGludmVy c2UuCitAQCAtMjYzNSw3ICsyNjM1LDcgQEAgZGVmIGlzX1JpbmdFbGVtZW50KHgpOgorIAorIAor IGNkZWYgY2xhc3MgUmluZ0VsZW1lbnQoTW9kdWxlRWxlbWVudCk6CistICAgIGNwZGVmIF9tdWxf KHNlbGYsIG90aGVyKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX211bF8oc2VsZiwgb3RoZXIpOgor ICAgICAgICAgIiIiCisgICAgICAgICBBYnN0cmFjdCBtdWx0aXBsaWNhdGlvbiBtZXRob2QKKyAK K0BAIC0yNjUzLDcgKzI2NTMsNyBAQCBjZGVmIGNsYXNzIFJpbmdFbGVtZW50KE1vZHVsZUVsZW1l bnQpOgorICAgICBkZWYgaXNfb25lKHNlbGYpOgorICAgICAgICAgcmV0dXJuIHNlbGYgPT0gc2Vs Zi5fcGFyZW50Lm9uZSgpCisgCistICAgIGNwZGVmIF9wb3dfaW50KHNlbGYsIG4pIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBfcG93X2ludChzZWxmLCBuKToKKyAgICAgICAgICIiIgorICAgICAgICAg UmV0dXJuIHRoZSAoaW50ZWdyYWwpIHBvd2VyIG9mIGBgc2VsZmBgLgorIAorQEAgLTI3MzYsNyAr MjczNiw3IEBAIGNkZWYgY2xhc3MgUmluZ0VsZW1lbnQoTW9kdWxlRWxlbWVudCk6CisgICAgICAg ICAgICAgbC5hcHBlbmQoeCkKKyAgICAgICAgIHJldHVybiBsCisgCistICAgIGNwZGVmIF9kaXZf KHNlbGYsIG90aGVyKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2Rpdl8oc2VsZiwgb3RoZXIpOgor ICAgICAgICAgIiIiCisgICAgICAgICBEZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIGRpdmlzaW9u IHVzaW5nIHRoZSBmcmFjdGlvbiBmaWVsZC4KKyAgICAgICAgICIiIgorQEAgLTM2NzUsMTMgKzM2 NzUsMTMgQEAgY2RlZiBjbGFzcyBWZWN0b3IoTW9kdWxlRWxlbWVudFdpdGhNdXRhYmlsaXR5KToK KyAgICAgICAgICAgICByZXR1cm4gKDxWZWN0b3I+bGVmdCkuX2RvdF9wcm9kdWN0Xyg8VmVjdG9y PnJpZ2h0KQorICAgICAgICAgcmV0dXJuIGNvZXJjaW9uX21vZGVsLmJpbl9vcChsZWZ0LCByaWdo dCwgbXVsKQorIAorLSAgICBjcGRlZiBfZG90X3Byb2R1Y3RfKFZlY3RvciBsZWZ0LCBWZWN0b3Ig cmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZG90X3Byb2R1Y3RfKFZlY3RvciBsZWZ0LCBW ZWN0b3IgcmlnaHQpOgorICAgICAgICAgcmV0dXJuIGxlZnQuX2RvdF9wcm9kdWN0X2NvZXJjZV8o cmlnaHQpCisgCistICAgIGNwZGVmIF9kb3RfcHJvZHVjdF9jb2VyY2VfKFZlY3RvciBsZWZ0LCBW ZWN0b3IgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZG90X3Byb2R1Y3RfY29lcmNlXyhW ZWN0b3IgbGVmdCwgVmVjdG9yIHJpZ2h0KToKKyAgICAgICAgIHJhaXNlIGJpbl9vcF9leGNlcHRp b24oJyonLCBsZWZ0LCByaWdodCkKKyAKKy0gICAgY3BkZWYgX3BhaXJ3aXNlX3Byb2R1Y3RfKFZl Y3RvciBsZWZ0LCBWZWN0b3IgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcGFpcndpc2Vf cHJvZHVjdF8oVmVjdG9yIGxlZnQsIFZlY3RvciByaWdodCk6CisgICAgICAgICByYWlzZSBUeXBl RXJyb3IoInVuc3VwcG9ydGVkIG9wZXJhdGlvbiBmb3IgJyVzJyBhbmQgJyVzJyIlKHBhcmVudChs ZWZ0KSwgcGFyZW50KHJpZ2h0KSkpCisgCisgICAgIGRlZiBfX3RydWVkaXZfXyhzZWxmLCByaWdo dCk6CitAQCAtNDE0NCwxMyArNDE0NCwxMyBAQCBjZGVmIGNsYXNzIE1hdHJpeChNb2R1bGVFbGVt ZW50KToKKyAgICAgICAgICAgICByZXR1cm4gcmlnaHQuc29sdmVfbGVmdChsZWZ0KQorICAgICAg ICAgcmV0dXJuIGNvZXJjaW9uX21vZGVsLmJpbl9vcChsZWZ0LCByaWdodCwgdHJ1ZWRpdikKKyAK Ky0gICAgY2RlZiBfdmVjdG9yX3RpbWVzX21hdHJpeF8obWF0cml4X3JpZ2h0LCBWZWN0b3IgdmVj dG9yX2xlZnQpIG5vZXhjZXB0OgorKyAgICBjZGVmIF92ZWN0b3JfdGltZXNfbWF0cml4XyhtYXRy aXhfcmlnaHQsIFZlY3RvciB2ZWN0b3JfbGVmdCk6CisgICAgICAgICByYWlzZSBUeXBlRXJyb3IK KyAKKy0gICAgY2RlZiBfbWF0cml4X3RpbWVzX3ZlY3Rvcl8obWF0cml4X2xlZnQsIFZlY3RvciB2 ZWN0b3JfcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9tYXRyaXhfdGltZXNfdmVjdG9yXyht YXRyaXhfbGVmdCwgVmVjdG9yIHZlY3Rvcl9yaWdodCk6CisgICAgICAgICByYWlzZSBUeXBlRXJy b3IKKyAKKy0gICAgY2RlZiBfbWF0cml4X3RpbWVzX21hdHJpeF8obGVmdCwgTWF0cml4IHJpZ2h0 KSBub2V4Y2VwdDoKKysgICAgY2RlZiBfbWF0cml4X3RpbWVzX21hdHJpeF8obGVmdCwgTWF0cml4 IHJpZ2h0KToKKyAgICAgICAgIHJhaXNlIFR5cGVFcnJvcgorIAorIAorQEAgLTQyODAsNyArNDI4 MCw3IEBAIGNkZWYgY2xhc3MgRXVjbGlkZWFuRG9tYWluRWxlbWVudChQcmluY2lwYWxJZGVhbERv bWFpbkVsZW1lbnQpOgorICAgICBkZWYgcXVvX3JlbShzZWxmLCBvdGhlcik6CisgICAgICAgICBy YWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisgCistICAgIGNwZGVmIF9mbG9vcmRpdl8oc2VsZiwg cmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZmxvb3JkaXZfKHNlbGYsIHJpZ2h0KToKKyAg ICAgICAgICIiIgorICAgICAgICAgUXVvdGllbnQgb2YgZGl2aXNpb24gb2YgYGBzZWxmYGAgYnkg b3RoZXIuICBUaGlzIGlzIGRlbm90ZWQgLy8uCisgCitAQCAtNDMwMyw3ICs0MzAzLDcgQEAgY2Rl ZiBjbGFzcyBFdWNsaWRlYW5Eb21haW5FbGVtZW50KFByaW5jaXBhbElkZWFsRG9tYWluRWxlbWVu dCk6CisgICAgICAgICBRLCBfID0gc2VsZi5xdW9fcmVtKHJpZ2h0KQorICAgICAgICAgcmV0dXJu IFEKKyAKKy0gICAgY3BkZWYgX21vZF8oc2VsZiwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBfbW9kXyhzZWxmLCBvdGhlcik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJlbWFpbmRlciBv ZiBkaXZpc2lvbiBvZiBgYHNlbGZgYCBieSBvdGhlci4KKyAKK0BAIC00MzQyLDcgKzQzNDIsNyBA QCBkZWYgaXNfRmllbGRFbGVtZW50KHgpOgorICAgICByZXR1cm4gaXNpbnN0YW5jZSh4LCBGaWVs ZEVsZW1lbnQpCisgCisgY2RlZiBjbGFzcyBGaWVsZEVsZW1lbnQoQ29tbXV0YXRpdmVSaW5nRWxl bWVudCk6CistICAgIGNwZGVmIF9mbG9vcmRpdl8oc2VsZiwgcmlnaHQpIG5vZXhjZXB0OgorKyAg ICBjcGRlZiBfZmxvb3JkaXZfKHNlbGYsIHJpZ2h0KToKKyAgICAgICAgICIiIgorICAgICAgICAg UmV0dXJuIHRoZSBxdW90aWVudCBvZiBzZWxmIGFuZCBvdGhlci4gU2luY2UgdGhlc2UgYXJlIGZp ZWxkCisgICAgICAgICBlbGVtZW50cywgdGhlIGZsb29yIGRpdmlzaW9uIGlzIGV4YWN0bHkgdGhl IHNhbWUgYXMgdXN1YWwgZGl2aXNpb24uCitAQCAtNDQ5OSw3ICs0NDk5LDcgQEAgY2RlZiBjbGFz cyBJbmZpbml0eUVsZW1lbnQoUmluZ0VsZW1lbnQpOgorICMKKyAjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKyAKKy1jcGRlZiBjYW5vbmljYWxfY29lcmNpb24oeCwgeSkgbm9leGNlcHQ6CisrY3Bk ZWYgY2Fub25pY2FsX2NvZXJjaW9uKHgsIHkpOgorICAgICAiIiIKKyAgICAgYGBjYW5vbmljYWxf Y29lcmNpb24oeCx5KWBgIGlzIHdoYXQgaXMgY2FsbGVkIGJlZm9yZSBkb2luZyBhbgorICAgICBh cml0aG1ldGljIG9wZXJhdGlvbiBiZXR3ZWVuIGBgeGBgIGFuZCBgYHlgYC4gIEl0IHJldHVybnMg YSBwYWlyIGBgKHosdylgYAorQEAgLTQ1MTgsNyArNDUxOCw3IEBAIGNwZGVmIGNhbm9uaWNhbF9j b2VyY2lvbih4LCB5KSBub2V4Y2VwdDoKKyAgICAgcmV0dXJuIGNvZXJjaW9uX21vZGVsLmNhbm9u aWNhbF9jb2VyY2lvbih4LHkpCisgCisgCistY3BkZWYgYmluX29wKHgsIHksIG9wKSBub2V4Y2Vw dDoKKytjcGRlZiBiaW5fb3AoeCwgeSwgb3ApOgorICAgICByZXR1cm4gY29lcmNpb25fbW9kZWwu YmluX29wKHgsIHksIG9wKQorIAorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3N0cnVjdHVyZS9l bGVtZW50X3dyYXBwZXIucHhkIGIvc3JjL3NhZ2Uvc3RydWN0dXJlL2VsZW1lbnRfd3JhcHBlci5w eGQKK2luZGV4IDMwOGY0YTc0OWNlLi5mODY4OWM1Nzk0NyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdl L3N0cnVjdHVyZS9lbGVtZW50X3dyYXBwZXIucHhkCisrKysgYi9zcmMvc2FnZS9zdHJ1Y3R1cmUv ZWxlbWVudF93cmFwcGVyLnB4ZAorQEAgLTQsNyArNCw3IEBAIGZyb20gc2FnZS5zdHJ1Y3R1cmUu ZWxlbWVudCBjaW1wb3J0IEVsZW1lbnQKKyBjZGVmIGNsYXNzIEVsZW1lbnRXcmFwcGVyKEVsZW1l bnQpOgorICAgICBjZGVmIHB1YmxpYyBvYmplY3QgdmFsdWUKKyAKKy0gICAgY3BkZWYgX3JpY2hj bXBfKGxlZnQsIHJpZ2h0LCBpbnQgb3ApIG5vZXhjZXB0CisrICAgIGNwZGVmIF9yaWNoY21wXyhs ZWZ0LCByaWdodCwgaW50IG9wKQorICAgICBjcGRlZiBiaW50IF9sdF9ieV92YWx1ZShzZWxmLCBv dGhlcikgbm9leGNlcHQKKyAKKyBjZGVmIGNsYXNzIEVsZW1lbnRXcmFwcGVyQ2hlY2tXcmFwcGVk Q2xhc3MoRWxlbWVudFdyYXBwZXIpOgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3N0cnVjdHVyZS9l bGVtZW50X3dyYXBwZXIucHl4IGIvc3JjL3NhZ2Uvc3RydWN0dXJlL2VsZW1lbnRfd3JhcHBlci5w eXgKK2luZGV4IDE1ODU0MDFlNDhjLi4wZjBjMjViZGQ4ZCAxMDA2NDQKKy0tLSBhL3NyYy9zYWdl L3N0cnVjdHVyZS9lbGVtZW50X3dyYXBwZXIucHl4CisrKysgYi9zcmMvc2FnZS9zdHJ1Y3R1cmUv ZWxlbWVudF93cmFwcGVyLnB5eAorQEAgLTI5Myw3ICsyOTMsNyBAQCBjZGVmIGNsYXNzIEVsZW1l bnRXcmFwcGVyKEVsZW1lbnQpOgorICAgICAgICAgICAgIHJldHVybiBsZWZ0Ll9yaWNoY21wXyhy aWdodCwgb3ApCisgICAgICAgICByZXR1cm4gY29lcmNpb25fbW9kZWwucmljaGNtcChsZWZ0LCBy aWdodCwgb3ApCisgCistICAgIGNwZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdodCwgaW50IG9wKSBu b2V4Y2VwdDoKKysgICAgY3BkZWYgX3JpY2hjbXBfKGxlZnQsIHJpZ2h0LCBpbnQgb3ApOgorICAg ICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYGBUcnVlYGAgaWYgYGBsZWZ0YGAgY29tcGFyZXMg d2l0aCBgYHJpZ2h0YGAgYmFzZWQgb24gYGBvcGBgLgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdl L3N0cnVjdHVyZS9mYWN0b3J5LnB5eCBiL3NyYy9zYWdlL3N0cnVjdHVyZS9mYWN0b3J5LnB5eAor aW5kZXggYmE2OTJlMTg1MmIuLjIzZTNjM2UxNmM3IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uvc3Ry dWN0dXJlL2ZhY3RvcnkucHl4CisrKysgYi9zcmMvc2FnZS9zdHJ1Y3R1cmUvZmFjdG9yeS5weXgK K0BAIC0zNzIsNyArMzcyLDcgQEAgY2RlZiBjbGFzcyBVbmlxdWVGYWN0b3J5KFNhZ2VPYmplY3Qp OgorICAgICAgICAgdmVyc2lvbiA9IHNlbGYuZ2V0X3ZlcnNpb24oc2FnZV92ZXJzaW9uKQorICAg ICAgICAgcmV0dXJuIHNlbGYuZ2V0X29iamVjdCh2ZXJzaW9uLCBrZXksIGt3ZHMpCisgCistICAg IGNwZGVmIGdldF9vYmplY3Qoc2VsZiwgdmVyc2lvbiwga2V5LCBleHRyYV9hcmdzKSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgZ2V0X29iamVjdChzZWxmLCB2ZXJzaW9uLCBrZXksIGV4dHJhX2FyZ3Mp OgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm5zIHRoZSBvYmplY3QgY29ycmVzcG9uZGlu ZyB0byBgYGtleWBgLCBjcmVhdGluZyBpdCB3aXRoCisgICAgICAgICBgYGV4dHJhX2FyZ3NgYCBp ZiBuZWNlc3NhcnkgKGZvciBleGFtcGxlLCBpdCBpc24ndCBpbiB0aGUgY2FjaGUKK0BAIC00MzYs NyArNDM2LDcgQEAgY2RlZiBjbGFzcyBVbmlxdWVGYWN0b3J5KFNhZ2VPYmplY3QpOgorICAgICAg ICAgICAgIHBhc3MKKyAgICAgICAgIHJldHVybiBvYmoKKyAKKy0gICAgY3BkZWYgZ2V0X3ZlcnNp b24oc2VsZiwgc2FnZV92ZXJzaW9uKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZ2V0X3ZlcnNpb24o c2VsZiwgc2FnZV92ZXJzaW9uKToKKyAgICAgICAgICIiIgorICAgICAgICAgVGhpcyBpcyBwcm92 aWRlZCB0byBhbGxvdyBtb3JlIG9yIGxlc3MgZ3JhbnVsYXIgY29udHJvbCBvdmVyCisgICAgICAg ICBwaWNrbGUgdmVyc2lvbmluZy4gT2JqZWN0cyBwaWNrbGVkIGluIHRoZSBzYW1lIHZlcnNpb24g b2YgU2FnZQorQEAgLTUwNyw3ICs1MDcsNyBAQCBjZGVmIGNsYXNzIFVuaXF1ZUZhY3RvcnkoU2Fn ZU9iamVjdCk6CisgICAgICAgICAiIiIKKyAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJy b3IKKyAKKy0gICAgY3BkZWYgb3RoZXJfa2V5cyhzZWxmLCBrZXksIG9iaikgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIG90aGVyX2tleXMoc2VsZiwga2V5LCBvYmopOgorICAgICAgICAgIiIiCisgICAg ICAgICBTb21ldGltZXMgZHVyaW5nIG9iamVjdCBjcmVhdGlvbiwgY2VydGFpbiBkZWZhdWx0cyBh cmUgY2hvc2VuIHdoaWNoCisgICAgICAgICBtYXkgcmVzdWx0IGluIGEgbmV3IChtb3JlIHNwZWNp ZmljKSBrZXkuIFRoaXMgYWxsb3dzIHRoZSBtb3JlIHNwZWNpZmljCitAQCAtNTM0LDcgKzUzNCw3 IEBAIGNkZWYgY2xhc3MgVW5pcXVlRmFjdG9yeShTYWdlT2JqZWN0KToKKyAgICAgICAgICIiIgor ICAgICAgICAgcmV0dXJuIFtdCisgCistICAgIGNwZGVmIHJlZHVjZV9kYXRhKHNlbGYsIG9iaikg bm9leGNlcHQ6CisrICAgIGNwZGVmIHJlZHVjZV9kYXRhKHNlbGYsIG9iaik6CisgICAgICAgICAi IiIKKyAgICAgICAgIFRoZSByZXN1bHRzIG9mIHRoaXMgZnVuY3Rpb24gY2FuIGJlIHJldHVybmVk IGZyb20KKyAgICAgICAgIDptZXRoOmBfX3JlZHVjZV9fYC4gVGhpcyBpcyBoZXJlIHNvIHRoZSBm YWN0b3J5IGludGVybmFscyBjYW4KK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9zdHJ1Y3R1cmUvbGlz dF9jbG9uZS5weGQgYi9zcmMvc2FnZS9zdHJ1Y3R1cmUvbGlzdF9jbG9uZS5weGQKK2luZGV4IGUx ODJlYmY4YmUxLi5lZjFkMjBmNGJkMyAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3N0cnVjdHVyZS9s aXN0X2Nsb25lLnB4ZAorKysrIGIvc3JjL3NhZ2Uvc3RydWN0dXJlL2xpc3RfY2xvbmUucHhkCitA QCAtMjEsNDQgKzIxLDQ0IEBAIGNkZWYgY2xhc3MgQ2xvbmFibGVFbGVtZW50KEVsZW1lbnQpOgor ICAgICBjcGRlZiBiaW50IF9yZXF1aXJlX211dGFibGUoc2VsZikgZXhjZXB0IC0yCisgICAgIGNw ZGVmIGJpbnQgaXNfbXV0YWJsZShzZWxmKSBub2V4Y2VwdAorICAgICBjcGRlZiBiaW50IGlzX2lt bXV0YWJsZShzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBzZXRfaW1tdXRhYmxlKHNlbGYpIG5v ZXhjZXB0CisrICAgIGNwZGVmIHNldF9pbW11dGFibGUoc2VsZikKKyAKKy0gICAgY3BkZWYgX3Nl dF9tdXRhYmxlKHNlbGYpIG5vZXhjZXB0CisrICAgIGNwZGVmIF9zZXRfbXV0YWJsZShzZWxmKQor IAorLSAgICBjcGRlZiBDbG9uYWJsZUVsZW1lbnQgY2xvbmUoc2VsZiwgYmludCBjaGVjaz0/KSBu b2V4Y2VwdAorKyAgICBjcGRlZiBDbG9uYWJsZUVsZW1lbnQgY2xvbmUoc2VsZiwgYmludCBjaGVj az0/KQorIAorIGNkZWYgY2xhc3MgQ2xvbmFibGVBcnJheShDbG9uYWJsZUVsZW1lbnQpOgorICAg ICBjZGVmIGxpc3QgX2xpc3QKKyAKKy0gICAgY3BkZWYgbGlzdCBfZ2V0X2xpc3Qoc2VsZikgbm9l eGNlcHQKKy0gICAgY3BkZWYgX3NldF9saXN0KHNlbGYsIGxpc3QgbHN0KSBub2V4Y2VwdAorLSAg ICBjcGRlZiBDbG9uYWJsZUFycmF5IF9fY29weV9fKHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVm IGNoZWNrKHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIG9iamVjdCBfZ2V0aXRlbShzZWxmLCBp bnQga2V5KSBub2V4Y2VwdAorLSAgICBjcGRlZiBfc2V0aXRlbShzZWxmLCBpbnQga2V5LCB2YWx1 ZSkgbm9leGNlcHQKKysgICAgY3BkZWYgbGlzdCBfZ2V0X2xpc3Qoc2VsZikKKysgICAgY3BkZWYg X3NldF9saXN0KHNlbGYsIGxpc3QgbHN0KQorKyAgICBjcGRlZiBDbG9uYWJsZUFycmF5IF9fY29w eV9fKHNlbGYpCisrICAgIGNwZGVmIGNoZWNrKHNlbGYpCisrICAgIGNwZGVmIG9iamVjdCBfZ2V0 aXRlbShzZWxmLCBpbnQga2V5KQorKyAgICBjcGRlZiBfc2V0aXRlbShzZWxmLCBpbnQga2V5LCB2 YWx1ZSkKKyAgICAgY3BkZWYgaW50IGluZGV4KHNlbGYsIGtleSwgc3RhcnQ9Kiwgc3RvcD0qKSBl eGNlcHQgLTEKKyAgICAgY3BkZWYgaW50IGNvdW50KHNlbGYsIGtleSkgZXhjZXB0IC0xCisgICAg IGNwZGVmIGxvbmcgaW50IF9oYXNoXyhzZWxmKSBleGNlcHQ/IC0xCisgCisgY2RlZiBjbGFzcyBD bG9uYWJsZUxpc3QoQ2xvbmFibGVBcnJheSk6CistICAgIGNwZGVmIGFwcGVuZChzZWxmLCBlbCkg bm9leGNlcHQKKy0gICAgY3BkZWYgZXh0ZW5kKHNlbGYsIGl0KSBub2V4Y2VwdAorLSAgICBjcGRl ZiBpbnNlcnQoc2VsZiwgaW50IGluZGV4LCBlbCkgbm9leGNlcHQKKy0gICAgY3BkZWYgcG9wKHNl bGYsIGludCBpbmRleD0qKSBub2V4Y2VwdAorLSAgICBjcGRlZiByZW1vdmUoc2VsZiwgZWwpIG5v ZXhjZXB0CisrICAgIGNwZGVmIGFwcGVuZChzZWxmLCBlbCkKKysgICAgY3BkZWYgZXh0ZW5kKHNl bGYsIGl0KQorKyAgICBjcGRlZiBpbnNlcnQoc2VsZiwgaW50IGluZGV4LCBlbCkKKysgICAgY3Bk ZWYgcG9wKHNlbGYsIGludCBpbmRleD0qKQorKyAgICBjcGRlZiByZW1vdmUoc2VsZiwgZWwpCisg CisgY2RlZiBjbGFzcyBOb3JtYWxpemVkQ2xvbmFibGVMaXN0KENsb25hYmxlTGlzdCk6CistICAg IGNwZGVmIG5vcm1hbGl6ZShzZWxmKSBub2V4Y2VwdAorKyAgICBjcGRlZiBub3JtYWxpemUoc2Vs ZikKKyAKKyBjZGVmIGNsYXNzIENsb25hYmxlSW50QXJyYXkoQ2xvbmFibGVFbGVtZW50KToKKyAg ICAgY2RlZiBpbnQgX2xlbgorICAgICBjZGVmIGludCogX2xpc3QKKyAKKy0gICAgY3BkZWYgX2Fs bG9jXyhzZWxmLCBpbnQgc2l6ZSkgbm9leGNlcHQKKy0gICAgY3BkZWYgQ2xvbmFibGVJbnRBcnJh eSBfX2NvcHlfXyhzZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBjaGVjayhzZWxmKSBub2V4Y2Vw dAorLSAgICBjcGRlZiBvYmplY3QgX2dldGl0ZW0oc2VsZiwgaW50IGtleSkgbm9leGNlcHQKKy0g ICAgY3BkZWYgX3NldGl0ZW0oc2VsZiwgaW50IGl0ZW0sIHZhbHVlKSBub2V4Y2VwdAorKyAgICBj cGRlZiBfYWxsb2NfKHNlbGYsIGludCBzaXplKQorKyAgICBjcGRlZiBDbG9uYWJsZUludEFycmF5 IF9fY29weV9fKHNlbGYpCisrICAgIGNwZGVmIGNoZWNrKHNlbGYpCisrICAgIGNwZGVmIG9iamVj dCBfZ2V0aXRlbShzZWxmLCBpbnQga2V5KQorKyAgICBjcGRlZiBfc2V0aXRlbShzZWxmLCBpbnQg aXRlbSwgdmFsdWUpCisgICAgIGNwZGVmIGludCBpbmRleChzZWxmLCBpbnQgaXRlbSkgZXhjZXB0 IC0xCisgICAgIGNwZGVmIGxvbmcgaW50IF9oYXNoXyhzZWxmKSBleGNlcHQ/IC0xCistICAgIGNw ZGVmIGxpc3QgbGlzdChzZWxmKSBub2V4Y2VwdAorKyAgICBjcGRlZiBsaXN0IGxpc3Qoc2VsZikK K2RpZmYgLS1naXQgYS9zcmMvc2FnZS9zdHJ1Y3R1cmUvbGlzdF9jbG9uZS5weXggYi9zcmMvc2Fn ZS9zdHJ1Y3R1cmUvbGlzdF9jbG9uZS5weXgKK2luZGV4IDljYTdiZTQ2NGU2Li44YWU3MDlhZGM0 NSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3N0cnVjdHVyZS9saXN0X2Nsb25lLnB5eAorKysrIGIv c3JjL3NhZ2Uvc3RydWN0dXJlL2xpc3RfY2xvbmUucHl4CitAQCAtMzUwLDcgKzM1MCw3IEBAIGNk ZWYgY2xhc3MgQ2xvbmFibGVFbGVtZW50KEVsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAg ICByZXR1cm4gc2VsZi5faXNfaW1tdXRhYmxlCisgCistICAgIGNwZGVmIHNldF9pbW11dGFibGUo c2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIHNldF9pbW11dGFibGUoc2VsZik6CisgICAgICAg ICAiIiIKKyAgICAgICAgIE1ha2VzIGBgc2VsZmBgIGltbXV0YWJsZSwgc28gaXQgY2FuIG5ldmVy IGFnYWluIGJlIGNoYW5nZWQuCisgCitAQCAtMzY5LDcgKzM2OSw3IEBAIGNkZWYgY2xhc3MgQ2xv bmFibGVFbGVtZW50KEVsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAgICBzZWxmLl9pc19p bW11dGFibGUgPSBUcnVlCisgCistICAgIGNwZGVmIF9zZXRfbXV0YWJsZShzZWxmKSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgX3NldF9tdXRhYmxlKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAg ICBNYWtlcyBgYHNlbGZgYCBtdXRhYmxlLCBzbyBpdCBjYW4gYmUgY2hhbmdlZC4KKyAKK0BAIC00 MTUsNyArNDE1LDcgQEAgY2RlZiBjbGFzcyBDbG9uYWJsZUVsZW1lbnQoRWxlbWVudCk6CisgICAg ICAgICAgICAgICAgIHNlbGYuX2hhc2ggPSBzZWxmLl9oYXNoXygpCisgICAgICAgICByZXR1cm4g c2VsZi5faGFzaAorIAorLSAgICBjcGRlZiBDbG9uYWJsZUVsZW1lbnQgY2xvbmUoc2VsZiwgYmlu dCBjaGVjaz1UcnVlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgQ2xvbmFibGVFbGVtZW50IGNsb25l KHNlbGYsIGJpbnQgY2hlY2s9VHJ1ZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBh IGNsb25lIHRoYXQgaXMgbXV0YWJsZSBjb3B5IG9mIGBgc2VsZmBgLgorIAorQEAgLTU3OCw3ICs1 NzgsNyBAQCBjZGVmIGNsYXNzIENsb25hYmxlQXJyYXkoQ2xvbmFibGVFbGVtZW50KToKKyAgICAg ICAgICIiIgorICAgICAgICAgcmV0dXJuIGJvb2woc2VsZi5fbGlzdCkKKyAKKy0gICAgY3BkZWYg bGlzdCBfZ2V0X2xpc3Qoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGxpc3QgX2dldF9saXN0 KHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gdGhlIGxpc3QgZW1iZWRkZWQg aW4gYGBzZWxmYGAuCisgCitAQCAtNTk0LDcgKzU5NCw3IEBAIGNkZWYgY2xhc3MgQ2xvbmFibGVB cnJheShDbG9uYWJsZUVsZW1lbnQpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gc2Vs Zi5fbGlzdAorIAorLSAgICBjcGRlZiBfc2V0X2xpc3Qoc2VsZiwgbGlzdCBsc3QpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiBfc2V0X2xpc3Qoc2VsZiwgbGlzdCBsc3QpOgorICAgICAgICAgIiIiCisg ICAgICAgICBTZXQgdGhlIGxpc3QgZW1iZWRkZWQgaW4gYGBzZWxmYGAuCisgCitAQCAtNjc2LDcg KzY3Niw3IEBAIGNkZWYgY2xhc3MgQ2xvbmFibGVBcnJheShDbG9uYWJsZUVsZW1lbnQpOgorICAg ICAgICAgc2VsZi5fcmVxdWlyZV9tdXRhYmxlKCkKKyAgICAgICAgIHNlbGYuX2xpc3Rba2V5XSA9 IHZhbHVlCisgCistICAgIGNwZGVmIG9iamVjdCBfZ2V0aXRlbShzZWxmLCBpbnQga2V5KSBub2V4 Y2VwdDoKKysgICAgY3BkZWYgb2JqZWN0IF9nZXRpdGVtKHNlbGYsIGludCBrZXkpOgorICAgICAg ICAgIiIiCisgICAgICAgICBTYW1lIGFzIDptZXRoOmBfX2dldGl0ZW1fX2AKKyAKK0BAIC02OTUs NyArNjk1LDcgQEAgY2RlZiBjbGFzcyBDbG9uYWJsZUFycmF5KENsb25hYmxlRWxlbWVudCk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIHJldHVybiBzZWxmLl9saXN0W2tleV0KKyAKKy0gICAgY3Bk ZWYgX3NldGl0ZW0oc2VsZiwgaW50IGtleSwgdmFsdWUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBf c2V0aXRlbShzZWxmLCBpbnQga2V5LCB2YWx1ZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFNh bWUgYXMgOm1ldGg6YF9fc2V0aXRlbV9fYAorIAorQEAgLTgyMiw3ICs4MjIsNyBAQCBjZGVmIGNs YXNzIENsb25hYmxlQXJyYXkoQ2xvbmFibGVFbGVtZW50KToKKyAgICAgICAgIHJldHVybiBzZWxm Ll9oYXNoCisgCisgICAgICMgU2VlIHByb3RvY29sIGluIGNvbW1lbnQgaW4gc2FnZS9zdHJ1Y3R1 cmUvZWxlbWVudC5weXgKKy0gICAgY3BkZWYgX3JpY2hjbXBfKGxlZnQsIHJpZ2h0LCBpbnQgb3Ap IG5vZXhjZXB0OgorKyAgICBjcGRlZiBfcmljaGNtcF8obGVmdCwgcmlnaHQsIGludCBvcCk6Cisg ICAgICAgICAiIiIKKyAgICAgICAgIFRFU1RTOjoKKyAKK0BAIC04NDUsNyArODQ1LDcgQEAgY2Rl ZiBjbGFzcyBDbG9uYWJsZUFycmF5KENsb25hYmxlRWxlbWVudCk6CisgICAgICAgICBjZGVmIENs b25hYmxlQXJyYXkgcmd0ID0gPENsb25hYmxlQXJyYXk+cmlnaHQKKyAgICAgICAgIHJldHVybiBy aWNoY21wKGxlZnQuX2xpc3QsIHJndC5fbGlzdCwgb3ApCisgCistICAgIGNwZGVmIENsb25hYmxl QXJyYXkgX19jb3B5X18oc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIENsb25hYmxlQXJyYXkg X19jb3B5X18oc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBhIGNvcHkgb2Yg YGBzZWxmYGAKKyAKK0BAIC04ODksNyArODg5LDcgQEAgY2RlZiBjbGFzcyBDbG9uYWJsZUFycmF5 KENsb25hYmxlRWxlbWVudCk6CisgICAgICAgICAgICAgcmVzLl9fZGljdF9fID0gc2VsZi5fX2Rp Y3RfXy5jb3B5KCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKKy0gICAgY3BkZWYgY2hlY2soc2Vs Zikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGNoZWNrKHNlbGYpOgorICAgICAgICAgIiIiCisgICAg ICAgICBDaGVjayB0aGF0IGBgc2VsZmBgIGZ1bGZpbGwgdGhlIGludmFyaWFudHMKKyAKK0BAIC0x MDA2LDcgKzEwMDYsNyBAQCBjZGVmIGNsYXNzIENsb25hYmxlTGlzdChDbG9uYWJsZUFycmF5KToK KyAgICAgLi4gU0VFQUxTTzo6IDpjbGFzczpgfnNhZ2Uuc3RydWN0dXJlLmxpc3RfY2xvbmVfZGVt by5JbmNyZWFzaW5nTGlzdGAgZm9yCisgICAgICAgICAgICAgICAgICBhbiBleGFtcGxlIG9mIHVz YWdlLgorICAgICAiIiIKKy0gICAgY3BkZWYgYXBwZW5kKHNlbGYsIGVsKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgYXBwZW5kKHNlbGYsIGVsKToKKyAgICAgICAgICIiIgorICAgICAgICAgQXBwZW5k cyBgYGVsYGAgdG8gYGBzZWxmYGAKKyAKK0BAIC0xMDM1LDcgKzEwMzUsNyBAQCBjZGVmIGNsYXNz IENsb25hYmxlTGlzdChDbG9uYWJsZUFycmF5KToKKyAgICAgICAgIHNlbGYuX3JlcXVpcmVfbXV0 YWJsZSgpCisgICAgICAgICBzZWxmLl9saXN0LmFwcGVuZChlbCkKKyAKKy0gICAgY3BkZWYgZXh0 ZW5kKHNlbGYsIGl0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZXh0ZW5kKHNlbGYsIGl0KToKKyAg ICAgICAgICIiIgorICAgICAgICAgRXh0ZW5kcyBgYHNlbGZgYCBieSB0aGUgY29udGVudCBvZiB0 aGUgaXRlcmFibGUgYGBpdGBgCisgCitAQCAtMTA3MCw3ICsxMDcwLDcgQEAgY2RlZiBjbGFzcyBD bG9uYWJsZUxpc3QoQ2xvbmFibGVBcnJheSk6CisgICAgICAgICBzZWxmLl9yZXF1aXJlX211dGFi bGUoKQorICAgICAgICAgc2VsZi5fbGlzdC5leHRlbmQoaXQpCisgCistICAgIGNwZGVmIGluc2Vy dChzZWxmLCBpbnQgaW5kZXgsIGVsKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgaW5zZXJ0KHNlbGYs IGludCBpbmRleCwgZWwpOgorICAgICAgICAgIiIiCisgICAgICAgICBJbnNlcnRzIGBgZWxgYCBp biBgYHNlbGZgYCBhdCBwb3NpdGlvbiBgYGluZGV4YGAKKyAKK0BAIC0xMTAwLDcgKzExMDAsNyBA QCBjZGVmIGNsYXNzIENsb25hYmxlTGlzdChDbG9uYWJsZUFycmF5KToKKyAgICAgICAgIHNlbGYu X3JlcXVpcmVfbXV0YWJsZSgpCisgICAgICAgICBzZWxmLl9saXN0Lmluc2VydChpbmRleCwgZWwp CisgCistICAgIGNwZGVmIHBvcChzZWxmLCBpbnQgaW5kZXg9LTEpIG5vZXhjZXB0OgorKyAgICBj cGRlZiBwb3Aoc2VsZiwgaW50IGluZGV4PS0xKToKKyAgICAgICAgICIiIgorICAgICAgICAgUmVt b3ZlIGBgc2VsZltpbmRleF1gYCBmcm9tIGBgc2VsZmBgIGFuZCByZXR1cm5zIGl0CisgCitAQCAt MTEyOCw3ICsxMTI4LDcgQEAgY2RlZiBjbGFzcyBDbG9uYWJsZUxpc3QoQ2xvbmFibGVBcnJheSk6 CisgICAgICAgICBzZWxmLl9yZXF1aXJlX211dGFibGUoKQorICAgICAgICAgcmV0dXJuIHNlbGYu X2xpc3QucG9wKGluZGV4KQorIAorLSAgICBjcGRlZiByZW1vdmUoc2VsZiwgZWwpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiByZW1vdmUoc2VsZiwgZWwpOgorICAgICAgICAgIiIiCisgICAgICAgICBS ZW1vdmUgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgYGBlbGBgIGZyb20gYGBzZWxmYGAKKyAKK0BA IC0xMjg1LDcgKzEyODUsNyBAQCBjZGVmIGNsYXNzIENsb25hYmxlSW50QXJyYXkoQ2xvbmFibGVF bGVtZW50KToKKyAgICAgICAgIGlmIGNoZWNrOgorICAgICAgICAgICAgIHNlbGYuY2hlY2soKQor IAorLSAgICBjcGRlZiBfYWxsb2NfKHNlbGYsIGludCBzaXplKSBub2V4Y2VwdDoKKysgICAgY3Bk ZWYgX2FsbG9jXyhzZWxmLCBpbnQgc2l6ZSk6CisgICAgICAgICAiIiIKKyAgICAgICAgIEFsbG9j YXRlIHRoZSBhcnJheSBwYXJ0IG9mIGBgc2VsZmBgIGZvciBhIGdpdmVuIHNpemUKKyAKK0BAIC0x MzcxLDcgKzEzNzEsNyBAQCBjZGVmIGNsYXNzIENsb25hYmxlSW50QXJyYXkoQ2xvbmFibGVFbGVt ZW50KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIGl0ZXIoc2VsZi5saXN0KCkpCisg CistICAgIGNwZGVmIGxpc3QgbGlzdChzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgbGlzdCBs aXN0KHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBDb252ZXJ0IHNlbGYgaW50byBhIFB5 dGhvbiBsaXN0LgorIAorQEAgLTE0NjksNyArMTQ2OSw3IEBAIGNkZWYgY2xhc3MgQ2xvbmFibGVJ bnRBcnJheShDbG9uYWJsZUVsZW1lbnQpOgorICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICBy YWlzZSBJbmRleEVycm9yKCJsaXN0IGluZGV4IG91dCBvZiByYW5nZSIpCisgCistICAgIGNwZGVm IG9iamVjdCBfZ2V0aXRlbShzZWxmLCBpbnQga2V5KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgb2Jq ZWN0IF9nZXRpdGVtKHNlbGYsIGludCBrZXkpOgorICAgICAgICAgIiIiCisgICAgICAgICBTYW1l IGFzIDptZXRoOmBfX2dldGl0ZW1fX2AKKyAKK0BAIC0xNDg3LDcgKzE0ODcsNyBAQCBjZGVmIGNs YXNzIENsb25hYmxlSW50QXJyYXkoQ2xvbmFibGVFbGVtZW50KToKKyAgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICAgcmFpc2UgSW5kZXhFcnJvcigibGlzdCBpbmRleCBvdXQgb2YgcmFuZ2UiKQor IAorLSAgICBjcGRlZiBfc2V0aXRlbShzZWxmLCBpbnQga2V5LCB2YWx1ZSkgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIF9zZXRpdGVtKHNlbGYsIGludCBrZXksIHZhbHVlKToKKyAgICAgICAgICIiIgor ICAgICAgICAgU2FtZSBhcyA6bWV0aDpgX19zZXRpdGVtX19gCisgCitAQCAtMTU3NSw3ICsxNTc1 LDcgQEAgY2RlZiBjbGFzcyBDbG9uYWJsZUludEFycmF5KENsb25hYmxlRWxlbWVudCk6CisgICAg ICAgICByZXR1cm4gc2VsZi5faGFzaAorIAorICAgICAjIFNlZSBwcm90b2NvbCBpbiBjb21tZW50 IGluIHNhZ2Uvc3RydWN0dXJlL2VsZW1lbnQucHl4CistICAgIGNwZGVmIF9yaWNoY21wXyhsZWZ0 LCByaWdodCwgaW50IG9wKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3JpY2hjbXBfKGxlZnQsIHJp Z2h0LCBpbnQgb3ApOgorICAgICAgICAgIiIiCisgICAgICAgICBURVNUUzo6CisgCitAQCAtMTYy Myw3ICsxNjIzLDcgQEAgY2RlZiBjbGFzcyBDbG9uYWJsZUludEFycmF5KENsb25hYmxlRWxlbWVu dCk6CisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmljaF90b19ib29sKG9wLCAxKQorICAg ICAgICAgcmV0dXJuIHJpY2hfdG9fYm9vbChvcCwgcmVzbGVuKQorIAorLSAgICBjcGRlZiBDbG9u YWJsZUludEFycmF5IF9fY29weV9fKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBDbG9uYWJs ZUludEFycmF5IF9fY29weV9fKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4g YSBjb3B5IG9mIGBgc2VsZmBgCisgCitAQCAtMTY3MCw3ICsxNjcwLDcgQEAgY2RlZiBjbGFzcyBD bG9uYWJsZUludEFycmF5KENsb25hYmxlRWxlbWVudCk6CisgICAgICAgICAgICAgcmVzLl9fZGlj dF9fID0gc2VsZi5fX2RpY3RfXy5jb3B5KCkKKyAgICAgICAgIHJldHVybiByZXMKKyAKKy0gICAg Y3BkZWYgY2hlY2soc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIGNoZWNrKHNlbGYpOgorICAg ICAgICAgIiIiCisgICAgICAgICBDaGVjayB0aGF0IGBgc2VsZmBgIGZ1bGZpbGwgdGhlIGludmFy aWFudHMKKyAKK0BAIC0xODMyLDcgKzE4MzIsNyBAQCBjZGVmIGNsYXNzIE5vcm1hbGl6ZWRDbG9u YWJsZUxpc3QoQ2xvbmFibGVMaXN0KToKKyAgICAgICAgIHNlbGYubm9ybWFsaXplKCkKKyAgICAg ICAgIHJldHVybiBDbG9uYWJsZUxpc3QuX19leGl0X18oc2VsZiwgdHlwLCB2YWx1ZSwgdHJhY2Jh Y2spCisgCistICAgIGNwZGVmIG5vcm1hbGl6ZShzZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYg bm9ybWFsaXplKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBOb3JtYWxpemUgYGBzZWxm YGAKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9zdHJ1Y3R1cmUvbGlzdF9jbG9uZV9kZW1vLnB5 eCBiL3NyYy9zYWdlL3N0cnVjdHVyZS9saXN0X2Nsb25lX2RlbW8ucHl4CitpbmRleCBmYzY4ZWVl OTQ3ZS4uMGJkMDE4ZjU3YzAgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9zdHJ1Y3R1cmUvbGlzdF9j bG9uZV9kZW1vLnB5eAorKysrIGIvc3JjL3NhZ2Uvc3RydWN0dXJlL2xpc3RfY2xvbmVfZGVtby5w eXgKK0BAIC0zMCw3ICszMCw3IEBAIGNkZWYgY2xhc3MgSW5jcmVhc2luZ0FycmF5KENsb25hYmxl QXJyYXkpOgorICAgICAgICAgc2FnZTogVGVzdFN1aXRlKEluY3JlYXNpbmdBcnJheXMoKShbXSkp LnJ1bigpCisgICAgICIiIgorIAorLSAgICBjcGRlZiBjaGVjayhzZWxmKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgY2hlY2soc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIENoZWNrIHRoYXQg YGBzZWxmYGAgaXMgaW5jcmVhc2luZy4KKyAKK0BAIC0xMTMsNyArMTEzLDcgQEAgY2RlZiBjbGFz cyBJbmNyZWFzaW5nTGlzdChDbG9uYWJsZUxpc3QpOgorICAgICAgICAgc2FnZTogVGVzdFN1aXRl KEluY3JlYXNpbmdMaXN0cygpKFtdKSkucnVuKCkKKyAgICAgIiIiCisgCistICAgIGNwZGVmIGNo ZWNrKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBjaGVjayhzZWxmKToKKyAgICAgICAgICIi IgorICAgICAgICAgQ2hlY2sgdGhhdCBgYHNlbGZgYCBpcyBpbmNyZWFzaW5nCisgCitAQCAtMTQ2 LDcgKzE0Niw3IEBAIGNkZWYgY2xhc3MgSW5jcmVhc2luZ0ludEFycmF5KENsb25hYmxlSW50QXJy YXkpOgorICAgICAgICAgc2FnZTogVGVzdFN1aXRlKEluY3JlYXNpbmdJbnRBcnJheXMoKShbXSkp LnJ1bigpCisgICAgICIiIgorIAorLSAgICBjcGRlZiBjaGVjayhzZWxmKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgY2hlY2soc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIENoZWNrIHRoYXQg YGBzZWxmYGAgaXMgaW5jcmVhc2luZy4KKyAKK0BAIC0xOTMsNyArMTkzLDcgQEAgY2RlZiBjbGFz cyBTb3J0ZWRMaXN0KE5vcm1hbGl6ZWRDbG9uYWJsZUxpc3QpOgorICAgICAgICAgc2FnZTogVGVz dFN1aXRlKEluY3JlYXNpbmdJbnRBcnJheXMoKShbMSwyLDNdKSkucnVuKCkKKyAgICAgICAgIHNh Z2U6IFRlc3RTdWl0ZShJbmNyZWFzaW5nSW50QXJyYXlzKCkoW10pKS5ydW4oKQorICAgICAiIiIK Ky0gICAgY3BkZWYgbm9ybWFsaXplKHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBub3JtYWxp emUoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIE5vcm1hbGl6ZSBgYHNlbGZgYAorIAor QEAgLTIxMyw3ICsyMTMsNyBAQCBjZGVmIGNsYXNzIFNvcnRlZExpc3QoTm9ybWFsaXplZENsb25h YmxlTGlzdCk6CisgICAgICAgICBzZWxmLl9yZXF1aXJlX211dGFibGUoKQorICAgICAgICAgc2Vs Zi5fZ2V0X2xpc3QoKS5zb3J0KCkKKyAKKy0gICAgY3BkZWYgY2hlY2soc2VsZikgbm9leGNlcHQ6 CisrICAgIGNwZGVmIGNoZWNrKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBDaGVjayB0 aGF0IGBgc2VsZmBgIGlzIHN0cmljdGx5IGluY3JlYXNpbmcKKyAKK2RpZmYgLS1naXQgYS9zcmMv c2FnZS9zdHJ1Y3R1cmUvbGlzdF9jbG9uZV90aW1pbmdzX2N5LnB5eCBiL3NyYy9zYWdlL3N0cnVj dHVyZS9saXN0X2Nsb25lX3RpbWluZ3NfY3kucHl4CitpbmRleCA2MjM3ZmJlMDlhNy4uNDYxNTJm MWU2OGIgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9zdHJ1Y3R1cmUvbGlzdF9jbG9uZV90aW1pbmdz X2N5LnB5eAorKysrIGIvc3JjL3NhZ2Uvc3RydWN0dXJlL2xpc3RfY2xvbmVfdGltaW5nc19jeS5w eXgKK0BAIC0xNCw3ICsxNCw3IEBAIGZyb20gc2FnZS5zdHJ1Y3R1cmUubGlzdF9jbG9uZSBjaW1w b3J0IENsb25hYmxlQXJyYXkKKyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAjIyMjIyMgICAgICAgICAgICAgICAg ICAgIFRpbWluZ3MgZnVuY3Rpb25zICAgICAgICAgICAgICAgICAgICAjIyMjIyMKKyAjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKy1jcGRlZiBDbG9uYWJsZUFycmF5IGN5X2FkZDFfaW50ZXJuYWwoQ2xvbmFibGVBcnJh eSBibGEpIG5vZXhjZXB0OgorK2NwZGVmIENsb25hYmxlQXJyYXkgY3lfYWRkMV9pbnRlcm5hbChD bG9uYWJsZUFycmF5IGJsYSk6CisgICAgICIiIgorICAgICBURVNUUzo6CisgCitAQCAtMzQsNyAr MzQsNyBAQCBjcGRlZiBDbG9uYWJsZUFycmF5IGN5X2FkZDFfaW50ZXJuYWwoQ2xvbmFibGVBcnJh eSBibGEpIG5vZXhjZXB0OgorICAgICByZXR1cm4gYmxvCisgCisgCistY3BkZWYgQ2xvbmFibGVB cnJheSBjeV9hZGQxX2ltbXV0YWJsZShDbG9uYWJsZUFycmF5IGJsYSkgbm9leGNlcHQ6CisrY3Bk ZWYgQ2xvbmFibGVBcnJheSBjeV9hZGQxX2ltbXV0YWJsZShDbG9uYWJsZUFycmF5IGJsYSk6Cisg ICAgICIiIgorICAgICBURVNUUzo6CisgCitAQCAtNDksNyArNDksNyBAQCBjcGRlZiBDbG9uYWJs ZUFycmF5IGN5X2FkZDFfaW1tdXRhYmxlKENsb25hYmxlQXJyYXkgYmxhKSBub2V4Y2VwdDoKKyAg ICAgZm9yIGkgaW4gcmFuZ2UobGVuKGxibGEpKTogbGJsYVtpXSArPSAxCisgICAgIHJldHVybiBi bGEuX19jbGFzc19fKGJsYS5fcGFyZW50LCBsYmxhKQorIAorLWNwZGVmIENsb25hYmxlQXJyYXkg Y3lfYWRkMV9tdXRhYmxlKENsb25hYmxlQXJyYXkgYmxhKSBub2V4Y2VwdDoKKytjcGRlZiBDbG9u YWJsZUFycmF5IGN5X2FkZDFfbXV0YWJsZShDbG9uYWJsZUFycmF5IGJsYSk6CisgICAgICIiIgor ICAgICBURVNUUzo6CisgCitAQCAtNjgsNyArNjgsNyBAQCBjcGRlZiBDbG9uYWJsZUFycmF5IGN5 X2FkZDFfbXV0YWJsZShDbG9uYWJsZUFycmF5IGJsYSkgbm9leGNlcHQ6CisgICAgIHJldHVybiBi bG8KKyAKKyAKKy1jcGRlZiBDbG9uYWJsZUFycmF5IGN5X2FkZDFfd2l0aChDbG9uYWJsZUFycmF5 IGJsYSkgbm9leGNlcHQ6CisrY3BkZWYgQ2xvbmFibGVBcnJheSBjeV9hZGQxX3dpdGgoQ2xvbmFi bGVBcnJheSBibGEpOgorICAgICAiIiIKKyAgICAgVEVTVFM6OgorIAorZGlmZiAtLWdpdCBhL3Ny Yy9zYWdlL3N0cnVjdHVyZS9tdXRhYmlsaXR5LnB4ZCBiL3NyYy9zYWdlL3N0cnVjdHVyZS9tdXRh YmlsaXR5LnB4ZAoraW5kZXggMTZhNDc0ZThkMmUuLmY1ZGY4Yjg5ODkyIDEwMDY0NAorLS0tIGEv c3JjL3NhZ2Uvc3RydWN0dXJlL211dGFiaWxpdHkucHhkCisrKysgYi9zcmMvc2FnZS9zdHJ1Y3R1 cmUvbXV0YWJpbGl0eS5weGQKK0BAIC0xNCw3ICsxNCw3IEBAIE11dGFiaWxpdHkgLS0gUHlyZXgg SW1wbGVtZW50YXRpb24KKyAKKyBjZGVmIGNsYXNzIE11dGFiaWxpdHk6CisgICAgIGNkZWYgcHVi bGljIGJpbnQgX2lzX2ltbXV0YWJsZQorLSAgICBjcGRlZiBfcmVxdWlyZV9tdXRhYmxlKHNlbGYp IG5vZXhjZXB0CistICAgIGNwZGVmIF9yZXF1aXJlX2ltbXV0YWJsZShzZWxmKSBub2V4Y2VwdAor KyAgICBjcGRlZiBfcmVxdWlyZV9tdXRhYmxlKHNlbGYpCisrICAgIGNwZGVmIF9yZXF1aXJlX2lt bXV0YWJsZShzZWxmKQorICAgICBjcGRlZiBiaW50IGlzX2ltbXV0YWJsZShzZWxmKSBub2V4Y2Vw dAorICAgICBjcGRlZiBiaW50IGlzX211dGFibGUoc2VsZikgbm9leGNlcHQKK1wgTm8gbmV3bGlu ZSBhdCBlbmQgb2YgZmlsZQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3N0cnVjdHVyZS9tdXRhYmls aXR5LnB5eCBiL3NyYy9zYWdlL3N0cnVjdHVyZS9tdXRhYmlsaXR5LnB5eAoraW5kZXggNDZhMDQ3 ODRlMGMuLmM2MWZkMDZjM2RjIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uvc3RydWN0dXJlL211dGFi aWxpdHkucHl4CisrKysgYi9zcmMvc2FnZS9zdHJ1Y3R1cmUvbXV0YWJpbGl0eS5weXgKK0BAIC02 Niw3ICs2Niw3IEBAIGNkZWYgY2xhc3MgTXV0YWJpbGl0eToKKyAgICAgICAgICIiIgorICAgICAg ICAgc2VsZi5faXNfaW1tdXRhYmxlID0gaXNfaW1tdXRhYmxlCisgCistICAgIGNwZGVmIF9yZXF1 aXJlX211dGFibGUoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yZXF1aXJlX211dGFibGUo c2VsZik6CisgICAgICAgICByIiIiCisgICAgICAgICBXaGVuZXZlciBtdXRhYmlsaXR5IGlzIHJl cXVpcmVkLCB0aGlzIG1ldGhvZCBjYW4gYmUgY2FsbGVkLgorIAorQEAgLTkyLDcgKzkyLDcgQEAg Y2RlZiBjbGFzcyBNdXRhYmlsaXR5OgorICAgICAgICAgaWYgc2VsZi5faXNfaW1tdXRhYmxlOgor ICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm9iamVjdCBpcyBpbW11dGFibGU7IHBsZWFz ZSBjaGFuZ2UgYSBjb3B5IGluc3RlYWQiKQorIAorLSAgICBjcGRlZiBfcmVxdWlyZV9pbW11dGFi bGUoc2VsZikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9yZXF1aXJlX2ltbXV0YWJsZShzZWxmKToK KyAgICAgICAgIHIiIiIKKyAgICAgICAgIFdoZW5ldmVyIGltbXV0YWJpbGl0eSBpcyByZXF1aXJl ZCwgdGhpcyBtZXRob2QgY2FuIGJlIGNhbGxlZC4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9z dHJ1Y3R1cmUvcGFyZW50LnB4ZCBiL3NyYy9zYWdlL3N0cnVjdHVyZS9wYXJlbnQucHhkCitpbmRl eCAyYTljNjM3YWY2Yy4uMTYzNWVmOGIzNmUgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9zdHJ1Y3R1 cmUvcGFyZW50LnB4ZAorKysrIGIvc3JjL3NhZ2Uvc3RydWN0dXJlL3BhcmVudC5weGQKK0BAIC0y MywxMCArMjMsMTAgQEAgY2RlZiBjbGFzcyBQYXJlbnQoc2FnZS5zdHJ1Y3R1cmUuY2F0ZWdvcnlf b2JqZWN0LkNhdGVnb3J5T2JqZWN0KToKKyAgICAgY2RlZiBpbmxpbmUgYmludCBnZXRfZmxhZyhz ZWxmLCBpbnQgZmxhZykgbm9leGNlcHQ6CisgICAgICAgICByZXR1cm4gc2VsZi5mbGFncyAmIGZs YWcKKyAKKy0gICAgY3BkZWYgcmVnaXN0ZXJfY29lcmNpb24oc2VsZiwgbW9yKSBub2V4Y2VwdAor LSAgICBjcGRlZiByZWdpc3Rlcl9hY3Rpb24oc2VsZiwgYWN0aW9uKSBub2V4Y2VwdAorLSAgICBj cGRlZiByZWdpc3Rlcl9jb252ZXJzaW9uKHNlbGYsIG1vcikgbm9leGNlcHQKKy0gICAgY3BkZWYg cmVnaXN0ZXJfZW1iZWRkaW5nKHNlbGYsIGVtYmVkZGluZykgbm9leGNlcHQKKysgICAgY3BkZWYg cmVnaXN0ZXJfY29lcmNpb24oc2VsZiwgbW9yKQorKyAgICBjcGRlZiByZWdpc3Rlcl9hY3Rpb24o c2VsZiwgYWN0aW9uKQorKyAgICBjcGRlZiByZWdpc3Rlcl9jb252ZXJzaW9uKHNlbGYsIG1vcikK KysgICAgY3BkZWYgcmVnaXN0ZXJfZW1iZWRkaW5nKHNlbGYsIGVtYmVkZGluZykKKyAKKyAgICAg Y3BkZWYgYmludCBpc19leGFjdChzZWxmKSBleGNlcHQgLTIKKyAKK0BAIC0zNywzMyArMzcsMzMg QEAgY2RlZiBjbGFzcyBQYXJlbnQoc2FnZS5zdHJ1Y3R1cmUuY2F0ZWdvcnlfb2JqZWN0LkNhdGVn b3J5T2JqZWN0KToKKyAgICAgY3BkZWYgYmludCBoYXNfY29lcmNlX21hcF9mcm9tKHNlbGYsIFMp IGV4Y2VwdCAtMgorIAorICAgICAjIHJldHVybnMgYSBNb3JwaGlzbSBmcm9tIFMgdG8gc2VsZiwg b3IgTm9uZQorLSAgICBjcGRlZiBjb2VyY2VfbWFwX2Zyb20oc2VsZiwgUykgbm9leGNlcHQKKy0g ICAgY3BkZWYgX2ludGVybmFsX2NvZXJjZV9tYXBfZnJvbShzZWxmLCBTKSBub2V4Y2VwdAorLSAg ICBjcGRlZiBfY29lcmNlX21hcF9mcm9tXyhzZWxmLCBTKSBub2V4Y2VwdAorKyAgICBjcGRlZiBj b2VyY2VfbWFwX2Zyb20oc2VsZiwgUykKKysgICAgY3BkZWYgX2ludGVybmFsX2NvZXJjZV9tYXBf ZnJvbShzZWxmLCBTKQorKyAgICBjcGRlZiBfY29lcmNlX21hcF9mcm9tXyhzZWxmLCBTKQorIAor ICAgICAjIHJldHVybnMgYSBNYXAgZnJvbSBTIHRvIHNlbGYsIG9yIE5vbmUKKy0gICAgY3BkZWYg Y29udmVydF9tYXBfZnJvbShzZWxmLCBTKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfaW50ZXJuYWxf Y29udmVydF9tYXBfZnJvbShzZWxmLCBTKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfY29udmVydF9t YXBfZnJvbV8oc2VsZiwgUykgbm9leGNlcHQKKy0gICAgY2RlZiBjb252ZXJ0X21ldGhvZF9tYXAo c2VsZiwgUywgbWV0aG9kX25hbWUpIG5vZXhjZXB0CisrICAgIGNwZGVmIGNvbnZlcnRfbWFwX2Zy b20oc2VsZiwgUykKKysgICAgY3BkZWYgX2ludGVybmFsX2NvbnZlcnRfbWFwX2Zyb20oc2VsZiwg UykKKysgICAgY3BkZWYgX2NvbnZlcnRfbWFwX2Zyb21fKHNlbGYsIFMpCisrICAgIGNkZWYgY29u dmVydF9tZXRob2RfbWFwKHNlbGYsIFMsIG1ldGhvZF9uYW1lKQorIAorICAgICAjIHJldHVybnMg dGhlIEFjdGlvbiBieS9vbiBzZWxmIG9uL2J5IFMKKyAgICAgIyBjb3JyZXNwb25kaW5nIHRvIG9w IGFuZCBzZWxmX29uX2xlZnQKKy0gICAgY3BkZWYgZ2V0X2FjdGlvbihzZWxmLCBTLCBvcD0qLCBi aW50IHNlbGZfb25fbGVmdD0qLCBzZWxmX2VsPSosIFNfZWw9Kikgbm9leGNlcHQKKy0gICAgY3Bk ZWYgX2dldF9hY3Rpb25fKHNlbGYsIFMsIG9wLCBiaW50IHNlbGZfb25fbGVmdCkgbm9leGNlcHQK KysgICAgY3BkZWYgZ2V0X2FjdGlvbihzZWxmLCBTLCBvcD0qLCBiaW50IHNlbGZfb25fbGVmdD0q LCBzZWxmX2VsPSosIFNfZWw9KikKKysgICAgY3BkZWYgX2dldF9hY3Rpb25fKHNlbGYsIFMsIG9w LCBiaW50IHNlbGZfb25fbGVmdCkKKyAKKyAgICAgIyBjb2VyY2UgeCBpbnRvIHNlbGYKKy0gICAg Y3BkZWYgY29lcmNlKHNlbGYsIHgpIG5vZXhjZXB0CisrICAgIGNwZGVmIGNvZXJjZShzZWxmLCB4 KQorIAorLSAgICBjcGRlZiBhbl9lbGVtZW50KHNlbGYpIG5vZXhjZXB0CisrICAgIGNwZGVmIGFu X2VsZW1lbnQoc2VsZikKKyAgICAgY2RlZiBwdWJsaWMgb2JqZWN0IF9jYWNoZV9hbl9lbGVtZW50 CisgCisgICAgICMgRm9yIGludGVybmFsIHVzZQorLSAgICBjcGRlZiBfZ2VuZXJpY19jb252ZXJ0 X21hcChzZWxmLCBTLCBjYXRlZ29yeT0qKSBub2V4Y2VwdAorLSAgICBjcGRlZiBfZ2VuZXJpY19j b2VyY2VfbWFwKHNlbGYsIFMpIG5vZXhjZXB0CistICAgIGNkZWYgZGlzY292ZXJfY29lcmNlX21h cF9mcm9tKHNlbGYsIFMpIG5vZXhjZXB0CistICAgIGNkZWYgZGlzY292ZXJfY29udmVydF9tYXBf ZnJvbShzZWxmLCBTKSBub2V4Y2VwdAorLSAgICBjZGVmIGRpc2NvdmVyX2FjdGlvbihzZWxmLCBT LCBvcCwgYmludCBzZWxmX29uX2xlZnQsIHNlbGZfZWw9KiwgU19lbD0qKSBub2V4Y2VwdAorKyAg ICBjcGRlZiBfZ2VuZXJpY19jb252ZXJ0X21hcChzZWxmLCBTLCBjYXRlZ29yeT0qKQorKyAgICBj cGRlZiBfZ2VuZXJpY19jb2VyY2VfbWFwKHNlbGYsIFMpCisrICAgIGNkZWYgZGlzY292ZXJfY29l cmNlX21hcF9mcm9tKHNlbGYsIFMpCisrICAgIGNkZWYgZGlzY292ZXJfY29udmVydF9tYXBfZnJv bShzZWxmLCBTKQorKyAgICBjZGVmIGRpc2NvdmVyX2FjdGlvbihzZWxmLCBTLCBvcCwgYmludCBz ZWxmX29uX2xlZnQsIHNlbGZfZWw9KiwgU19lbD0qKQorIAorICAgICAjIExpc3QgY29uc2lzdGlu ZyBvZiBNb3JwaGlzbXMgKGZyb20gYW55dGhpbmcgdG8gc2VsZikKKyAgICAgIyBhbmQgUGFyZW50 cyBmb3Igd2hpY2ggdGhlIF9fY2FsbF9fIG1ldGhvZCBvZiBzZWxmCitkaWZmIC0tZ2l0IGEvc3Jj L3NhZ2Uvc3RydWN0dXJlL3BhcmVudC5weXggYi9zcmMvc2FnZS9zdHJ1Y3R1cmUvcGFyZW50LnB5 eAoraW5kZXggYjYzZThhYTkzNDEuLjMxMWM2NzVkZTI3IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uv c3RydWN0dXJlL3BhcmVudC5weXgKKysrKyBiL3NyYy9zYWdlL3N0cnVjdHVyZS9wYXJlbnQucHl4 CitAQCAtMTI4LDcgKzEyOCw3IEBAIGZyb20gc2FnZS5zdHJ1Y3R1cmUuY29lcmNlX21hcHMgY2lt cG9ydCAoTmFtZWRDb252ZXJ0TWFwLCBEZWZhdWx0Q29udmVydE1hcCwKKyBmcm9tIHNhZ2Uuc3Ry dWN0dXJlLmVsZW1lbnQgY2ltcG9ydCBwYXJlbnQKKyAKKyAKKy1jZGVmIF9yZWNvcmRfZXhjZXB0 aW9uKCkgbm9leGNlcHQ6CisrY2RlZiBfcmVjb3JkX2V4Y2VwdGlvbigpOgorICAgICBjb2VyY2lv bl9tb2RlbC5fcmVjb3JkX2V4Y2VwdGlvbigpCisgCisgY2RlZiBvYmplY3QgX0ludGVnZXIKK0BA IC0xMTg4LDcgKzExODgsNyBAQCBjZGVmIGNsYXNzIFBhcmVudChzYWdlLnN0cnVjdHVyZS5jYXRl Z29yeV9vYmplY3QuQ2F0ZWdvcnlPYmplY3QpOgorICAgICAgICAgZXhjZXB0IChUeXBlRXJyb3Is IFZhbHVlRXJyb3IsIEFyaXRobWV0aWNFcnJvcik6CisgICAgICAgICAgICAgcmV0dXJuIEZhbHNl CisgCistICAgIGNwZGVmIGNvZXJjZShzZWxmLCB4KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgY29l cmNlKHNlbGYsIHgpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4geCBhcyBhbiBlbGVt ZW50IG9mIHNlbGYsIGlmIGFuZCBvbmx5IGlmIHRoZXJlIGlzIGEgY2Fub25pY2FsCisgICAgICAg ICBjb2VyY2lvbiBmcm9tIHRoZSBwYXJlbnQgb2YgeCB0byBzZWxmLgorQEAgLTE2MDQsNyArMTYw NCw3IEBAIGNkZWYgY2xhc3MgUGFyZW50KHNhZ2Uuc3RydWN0dXJlLmNhdGVnb3J5X29iamVjdC5D YXRlZ29yeU9iamVjdCk6CisgICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICAg cGFzcworIAorLSAgICBjcGRlZiByZWdpc3Rlcl9jb2VyY2lvbihzZWxmLCBtb3IpIG5vZXhjZXB0 OgorKyAgICBjcGRlZiByZWdpc3Rlcl9jb2VyY2lvbihzZWxmLCBtb3IpOgorICAgICAgICAgciIi IgorICAgICAgICAgVXBkYXRlIHRoZSBjb2VyY2lvbiBtb2RlbCB0byB1c2UgYG1vciA6IFAgXHRv IFx0ZXh0e3NlbGZ9YCB0byBjb2VyY2UKKyAgICAgICAgIGZyb20gYSBwYXJlbnQgYGBQYGAgaW50 byBgYHNlbGZgYC4KK0BAIC0xNjY0LDcgKzE2NjQsNyBAQCBjZGVmIGNsYXNzIFBhcmVudChzYWdl LnN0cnVjdHVyZS5jYXRlZ29yeV9vYmplY3QuQ2F0ZWdvcnlPYmplY3QpOgorICAgICAgICAgc2Vs Zi5fcmVnaXN0ZXJlZF9kb21haW5zLmFwcGVuZChEKQorICAgICAgICAgc2VsZi5fY29lcmNlX2Zy b21faGFzaC5zZXQoRCwgbW9yKQorIAorLSAgICBjcGRlZiByZWdpc3Rlcl9hY3Rpb24oc2VsZiwg YWN0aW9uKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcmVnaXN0ZXJfYWN0aW9uKHNlbGYsIGFjdGlv bik6CisgICAgICAgICByIiIiCisgICAgICAgICBVcGRhdGUgdGhlIGNvZXJjaW9uIG1vZGVsIHRv IHVzZSBgYGFjdGlvbmBgIHRvIGFjdCBvbiBzZWxmLgorIAorQEAgLTE3MjgsNyArMTcyOCw3IEBA IGNkZWYgY2xhc3MgUGFyZW50KHNhZ2Uuc3RydWN0dXJlLmNhdGVnb3J5X29iamVjdC5DYXRlZ29y eU9iamVjdCk6CisgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiYWN0aW9uIG11c3QgaW52 b2x2ZSBzZWxmIikKKyAgICAgICAgIHNlbGYuX2FjdGlvbl9saXN0LmFwcGVuZChhY3Rpb24pCisg CistICAgIGNwZGVmIHJlZ2lzdGVyX2NvbnZlcnNpb24oc2VsZiwgbW9yKSBub2V4Y2VwdDoKKysg ICAgY3BkZWYgcmVnaXN0ZXJfY29udmVyc2lvbihzZWxmLCBtb3IpOgorICAgICAgICAgciIiIgor ICAgICAgICAgVXBkYXRlIHRoZSBjb2VyY2lvbiBtb2RlbCB0byB1c2UgYFx0ZXh0e21vcn0gOiBQ IFx0byBcdGV4dHtzZWxmfWAgdG8gY29udmVydAorICAgICAgICAgZnJvbSBgYFBgYCBpbnRvIGBg c2VsZmBgLgorQEAgLTE3NjMsNyArMTc2Myw3IEBAIGNkZWYgY2xhc3MgUGFyZW50KHNhZ2Uuc3Ry dWN0dXJlLmNhdGVnb3J5X29iamVjdC5DYXRlZ29yeU9iamVjdCk6CisgICAgICAgICBlbHNlOgor ICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiY29udmVyc2lvbnMgbXVzdCBiZSBwYXJlbnRz IG9yIG1hcHMiKQorIAorLSAgICBjcGRlZiByZWdpc3Rlcl9lbWJlZGRpbmcoc2VsZiwgZW1iZWRk aW5nKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgcmVnaXN0ZXJfZW1iZWRkaW5nKHNlbGYsIGVtYmVk ZGluZyk6CisgICAgICAgICByIiIiCisgICAgICAgICBBZGQgZW1iZWRkaW5nIHRvIGNvZXJjaW9u IG1vZGVsLgorIAorQEAgLTE5MDAsNyArMTkwMCw3IEBAIGNkZWYgY2xhc3MgUGFyZW50KHNhZ2Uu c3RydWN0dXJlLmNhdGVnb3J5X29iamVjdC5DYXRlZ29yeU9iamVjdCk6CisgICAgICAgICAiIiIK KyAgICAgICAgIHJldHVybiBjb3B5KHNlbGYuX2VtYmVkZGluZykgICMgSXQgbWlnaHQgYmUgb3Zl cmtpbGwgdG8gbWFrZSBhIGNvcHkgaGVyZQorIAorLSAgICBjcGRlZiBfZ2VuZXJpY19jb2VyY2Vf bWFwKHNlbGYsIFMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZ2VuZXJpY19jb2VyY2VfbWFwKHNl bGYsIFMpOgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJucyBhIGRlZmF1bHQgY29lcmNp b24gbWFwIGJhc2VkIG9uIHRoZSBkYXRhIHByb3ZpZGVkIHRvCisgICAgICAgICA6bWV0aDpgX3Bv cHVsYXRlX2NvZXJjaW9uX2xpc3RzX2AuCitAQCAtMTkzMSw3ICsxOTMxLDcgQEAgY2RlZiBjbGFz cyBQYXJlbnQoc2FnZS5zdHJ1Y3R1cmUuY2F0ZWdvcnlfb2JqZWN0LkNhdGVnb3J5T2JqZWN0KToK KyAgICAgICAgICAgICBjYXRlZ29yeSA9IHNlbGYuY2F0ZWdvcnkoKS5fbWVldF8oUy5jYXRlZ29y eSgpKQorICAgICAgICAgcmV0dXJuIHNlbGYuX2dlbmVyaWNfY29udmVydF9tYXAoUywgY2F0ZWdv cnk9Y2F0ZWdvcnkpCisgCistICAgIGNwZGVmIF9nZW5lcmljX2NvbnZlcnRfbWFwKHNlbGYsIFMs IGNhdGVnb3J5PU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfZ2VuZXJpY19jb252ZXJ0X21h cChzZWxmLCBTLCBjYXRlZ29yeT1Ob25lKToKKyAgICAgICAgIHIiIiIKKyAgICAgICAgIFJldHVy bnMgdGhlIGRlZmF1bHQgY29udmVyc2lvbiBtYXAgYmFzZWQgb24gdGhlIGRhdGEgcHJvdmlkZWQg dG8KKyAgICAgICAgIDptZXRoOmBfcG9wdWxhdGVfY29lcmNpb25fbGlzdHNfYC4KK0BAIC0xOTg5 LDcgKzE5ODksNyBAQCBjZGVmIGNsYXNzIFBhcmVudChzYWdlLnN0cnVjdHVyZS5jYXRlZ29yeV9v YmplY3QuQ2F0ZWdvcnlPYmplY3QpOgorICAgICAgICAgICAgIG1ldGhvZF9uYW1lID0gc2VsZi5f Y29udmVydF9tZXRob2RfbmFtZQorICAgICAgICAgcmV0dXJuIHNlbGYuY29udmVydF9tZXRob2Rf bWFwKFMsIG1ldGhvZF9uYW1lKQorIAorLSAgICBjZGVmIGNvbnZlcnRfbWV0aG9kX21hcChzZWxm LCBTLCBtZXRob2RfbmFtZSkgbm9leGNlcHQ6CisrICAgIGNkZWYgY29udmVydF9tZXRob2RfbWFw KHNlbGYsIFMsIG1ldGhvZF9uYW1lKToKKyAgICAgICAgICMgQ3l0aG9uIGltcGxlbWVudGF0aW9u IG9mIF9jb252ZXJ0X21ldGhvZF9tYXAoKQorICAgICAgICAgY2RlZiBQYXJlbnQgUAorICAgICAg ICAgaWYgaXNpbnN0YW5jZShTLCBQYXJlbnQpOgorQEAgLTIwOTAsNyArMjA5MCw3IEBAIGNkZWYg Y2xhc3MgUGFyZW50KHNhZ2Uuc3RydWN0dXJlLmNhdGVnb3J5X29iamVjdC5DYXRlZ29yeU9iamVj dCk6CisgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgIHJldHVybiBzZWxmLl9pbnRl cm5hbF9jb2VyY2VfbWFwX2Zyb20oUykgaXMgbm90IE5vbmUKKyAKKy0gICAgY3BkZWYgX2NvZXJj ZV9tYXBfZnJvbV8oc2VsZiwgUykgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9jb2VyY2VfbWFwX2Zy b21fKHNlbGYsIFMpOgorICAgICAgICAgIiIiCisgICAgICAgICBPdmVycmlkZSB0aGlzIG1ldGhv ZCB0byBzcGVjaWZ5IGNvZXJjaW9ucyBiZXlvbmQgdGhvc2Ugc3BlY2lmaWVkCisgICAgICAgICBp biBjb2VyY2VfbGlzdC4KK0BAIC0yMTA3LDcgKzIxMDcsNyBAQCBjZGVmIGNsYXNzIFBhcmVudChz YWdlLnN0cnVjdHVyZS5jYXRlZ29yeV9vYmplY3QuQ2F0ZWdvcnlPYmplY3QpOgorICAgICAgICAg ZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgIHJldHVybiBOb25lCisgCistICAg IGNwZGVmIGNvZXJjZV9tYXBfZnJvbShzZWxmLCBTKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgY29l cmNlX21hcF9mcm9tKHNlbGYsIFMpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4gYSA6 Y2xhc3M6YE1hcGAgb2JqZWN0IHRvIGNvZXJjZSBmcm9tIGBgU2BgIHRvIGBgc2VsZmBgIGlmIG9u ZQorICAgICAgICAgZXhpc3RzLCBvciBgYE5vbmVgYCBpZiBubyBzdWNoIGNvZXJjaW9uIGV4aXN0 cy4KK0BAIC0yMTQ1LDcgKzIxNDUsNyBAQCBjZGVmIGNsYXNzIFBhcmVudChzYWdlLnN0cnVjdHVy ZS5jYXRlZ29yeV9vYmplY3QuQ2F0ZWdvcnlPYmplY3QpOgorICAgICAgICAgIiIiCisgICAgICAg ICByZXR1cm4gY29weShzZWxmLl9pbnRlcm5hbF9jb2VyY2VfbWFwX2Zyb20oUykpCisgCistICAg IGNwZGVmIF9pbnRlcm5hbF9jb2VyY2VfbWFwX2Zyb20oc2VsZiwgUykgbm9leGNlcHQ6CisrICAg IGNwZGVmIF9pbnRlcm5hbF9jb2VyY2VfbWFwX2Zyb20oc2VsZiwgUyk6CisgICAgICAgICAiIiIK KyAgICAgICAgIFJldHVybiB0aGUgOmNsYXNzOmBNYXBgIG9iamVjdCB0byBjb2VyY2UgZnJvbSBg YFNgYCB0byBgYHNlbGZgYCB0aGF0CisgICAgICAgICBpcyB1c2VkIGludGVybmFsbHkgYnkgdGhl IGNvZXJjaW9uIHN5c3RlbSBpZiBvbmUgZXhpc3RzLCBvciBgYE5vbmVgYAorQEAgLTIyNjcsNyAr MjI2Nyw3IEBAIGNkZWYgY2xhc3MgUGFyZW50KHNhZ2Uuc3RydWN0dXJlLmNhdGVnb3J5X29iamVj dC5DYXRlZ29yeU9iamVjdCk6CisgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgIF91bnJl Z2lzdGVyX3BhaXIoc2VsZiwgUywgImNvZXJjZSIpCisgCistICAgIGNkZWYgZGlzY292ZXJfY29l cmNlX21hcF9mcm9tKHNlbGYsIFMpIG5vZXhjZXB0OgorKyAgICBjZGVmIGRpc2NvdmVyX2NvZXJj ZV9tYXBfZnJvbShzZWxmLCBTKToKKyAgICAgICAgICIiIgorICAgICAgICAgUHJlY2VkZW5jZSBm b3IgZGlzY292ZXJpbmcgYSBjb2VyY2lvbiBTIC0+IHNlbGYgZ29lcyBhcyBmb2xsb3dzOgorIAor QEAgLTI0NDQsNyArMjQ0NCw3IEBAIGNkZWYgY2xhc3MgUGFyZW50KHNhZ2Uuc3RydWN0dXJlLmNh dGVnb3J5X29iamVjdC5DYXRlZ29yeU9iamVjdCk6CisgICAgICAgICAgICAgaWYgY29ubmVjdGlu ZyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICAgcmV0dXJuICg8UGFyZW50PlMpLl9lbWJl ZGRpbmcucG9zdF9jb21wb3NlKGNvbm5lY3RpbmcpCisgCistICAgIGNwZGVmIGNvbnZlcnRfbWFw X2Zyb20oc2VsZiwgUykgbm9leGNlcHQ6CisrICAgIGNwZGVmIGNvbnZlcnRfbWFwX2Zyb20oc2Vs ZiwgUyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRoaXMgZnVuY3Rpb24gcmV0dXJucyBhIDpj bGFzczpgTWFwYCBmcm9tIGBTYCB0byBgc2VsZmAsCisgICAgICAgICB3aGljaCBtYXkgb3IgbWF5 IG5vdCBzdWNjZWVkIG9uIGFsbCBpbnB1dHMuCitAQCAtMjQ3MCw3ICsyNDcwLDcgQEAgY2RlZiBj bGFzcyBQYXJlbnQoc2FnZS5zdHJ1Y3R1cmUuY2F0ZWdvcnlfb2JqZWN0LkNhdGVnb3J5T2JqZWN0 KToKKyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIGNvcHkoc2VsZi5faW50ZXJuYWxfY29u dmVydF9tYXBfZnJvbShTKSkKKyAKKy0gICAgY3BkZWYgX2ludGVybmFsX2NvbnZlcnRfbWFwX2Zy b20oc2VsZiwgUykgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9pbnRlcm5hbF9jb252ZXJ0X21hcF9m cm9tKHNlbGYsIFMpOgorICAgICAgICAgIiIiCisgICAgICAgICBUaGlzIGZ1bmN0aW9uIHJldHVy bnMgYSA6Y2xhc3M6YE1hcGAgZnJvbSBgU2AgdG8gYHNlbGZgLAorICAgICAgICAgd2hpY2ggbWF5 IG9yIG1heSBub3Qgc3VjY2VlZCBvbiBhbGwgaW5wdXRzLgorQEAgLTI1MTYsNyArMjUxNiw3IEBA IGNkZWYgY2xhc3MgUGFyZW50KHNhZ2Uuc3RydWN0dXJlLmNhdGVnb3J5X29iamVjdC5DYXRlZ29y eU9iamVjdCk6CisgICAgICAgICAgICAgICAgIG1vci5fbWFrZV93ZWFrX3JlZmVyZW5jZXMoKQor ICAgICAgICAgICAgIHJldHVybiBtb3IKKyAKKy0gICAgY2RlZiBkaXNjb3Zlcl9jb252ZXJ0X21h cF9mcm9tKHNlbGYsIFMpIG5vZXhjZXB0OgorKyAgICBjZGVmIGRpc2NvdmVyX2NvbnZlcnRfbWFw X2Zyb20oc2VsZiwgUyk6CisgCisgICAgICAgICBjZGVmIG1hcC5NYXAgbW9yID0gc2VsZi5faW50 ZXJuYWxfY29lcmNlX21hcF9mcm9tKFMpCisgICAgICAgICBpZiBtb3IgaXMgbm90IE5vbmU6CitA QCAtMjU0NCw3ICsyNTQ0LDcgQEAgY2RlZiBjbGFzcyBQYXJlbnQoc2FnZS5zdHJ1Y3R1cmUuY2F0 ZWdvcnlfb2JqZWN0LkNhdGVnb3J5T2JqZWN0KToKKyAgICAgICAgIG1vciA9IHNlbGYuX2dlbmVy aWNfY29udmVydF9tYXAoUykKKyAgICAgICAgIHJldHVybiBtb3IKKyAKKy0gICAgY3BkZWYgX2Nv bnZlcnRfbWFwX2Zyb21fKHNlbGYsIFMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfY29udmVydF9t YXBfZnJvbV8oc2VsZiwgUyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIE92ZXJyaWRlIHRoaXMg bWV0aG9kIHRvIHByb3ZpZGUgYWRkaXRpb25hbCBjb252ZXJzaW9ucyBiZXlvbmQgdGhvc2UKKyAg ICAgICAgIGdpdmVuIGluIGNvbnZlcnRfbGlzdC4KK0BAIC0yNTU4LDcgKzI1NTgsNyBAQCBjZGVm IGNsYXNzIFBhcmVudChzYWdlLnN0cnVjdHVyZS5jYXRlZ29yeV9vYmplY3QuQ2F0ZWdvcnlPYmpl Y3QpOgorICAgICAgICAgIiIiCisgICAgICAgICByZXR1cm4gTm9uZQorIAorLSAgICBjcGRlZiBn ZXRfYWN0aW9uKHNlbGYsIFMsIG9wPW9wZXJhdG9yLm11bCwgYmludCBzZWxmX29uX2xlZnQ9VHJ1 ZSwgc2VsZl9lbD1Ob25lLCBTX2VsPU5vbmUpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBnZXRfYWN0 aW9uKHNlbGYsIFMsIG9wPW9wZXJhdG9yLm11bCwgYmludCBzZWxmX29uX2xlZnQ9VHJ1ZSwgc2Vs Zl9lbD1Ob25lLCBTX2VsPU5vbmUpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm5zIGFu IGFjdGlvbiBvZiBzZWxmIG9uIFMgb3IgUyBvbiBzZWxmLgorIAorQEAgLTI1OTQsNyArMjU5NCw3 IEBAIGNkZWYgY2xhc3MgUGFyZW50KHNhZ2Uuc3RydWN0dXJlLmNhdGVnb3J5X29iamVjdC5DYXRl Z29yeU9iamVjdCk6CisgICAgICAgICBzZWxmLl9hY3Rpb25faGFzaC5zZXQoUywgb3AsIHNlbGZf b25fbGVmdCwgYWN0aW9uKQorICAgICAgICAgcmV0dXJuIGFjdGlvbgorIAorLSAgICBjZGVmIGRp c2NvdmVyX2FjdGlvbihzZWxmLCBTLCBvcCwgYmludCBzZWxmX29uX2xlZnQsIHNlbGZfZWw9Tm9u ZSwgU19lbD1Ob25lKSBub2V4Y2VwdDoKKysgICAgY2RlZiBkaXNjb3Zlcl9hY3Rpb24oc2VsZiwg Uywgb3AsIGJpbnQgc2VsZl9vbl9sZWZ0LCBzZWxmX2VsPU5vbmUsIFNfZWw9Tm9uZSk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIFRFU1RTOjoKKyAKK0BAIC0yNzA0LDcgKzI3MDQsNyBAQCBjZGVm IGNsYXNzIFBhcmVudChzYWdlLnN0cnVjdHVyZS5jYXRlZ29yeV9vYmplY3QuQ2F0ZWdvcnlPYmpl Y3QpOgorICAgICAgICAgICAgICAgICBleGNlcHQgVHlwZUVycm9yOgorICAgICAgICAgICAgICAg ICAgICAgX3JlY29yZF9leGNlcHRpb24oKQorIAorLSAgICBjcGRlZiBfZ2V0X2FjdGlvbl8oc2Vs ZiwgUywgb3AsIGJpbnQgc2VsZl9vbl9sZWZ0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2dldF9h Y3Rpb25fKHNlbGYsIFMsIG9wLCBiaW50IHNlbGZfb25fbGVmdCk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIE92ZXJyaWRlIHRoaXMgbWV0aG9kIHRvIHByb3ZpZGUgYW4gYWN0aW9uIG9mIHNlbGYg b24gUyBvciBTIG9uIHNlbGYKKyAgICAgICAgIGJleW9uZCB3aGF0IHdhcyBzcGVjaWZpZWQgaW4g YWN0aW9uX2xpc3QuCitAQCAtMjcxNiw3ICsyNzE2LDcgQEAgY2RlZiBjbGFzcyBQYXJlbnQoc2Fn ZS5zdHJ1Y3R1cmUuY2F0ZWdvcnlfb2JqZWN0LkNhdGVnb3J5T2JqZWN0KToKKyAKKyAgICAgIyBU T0RPOiByZW1vdmUgb25jZSBhbGwgcGFyZW50cyBpbiBTYWdlIHdpbGwgaW5oZXJpdCBwcm9wZXJs eSBmcm9tCisgICAgICMgU2V0cygpLlBhcmVudE1ldGhvZHMuYW5fZWxlbWVudAorLSAgICBjcGRl ZiBhbl9lbGVtZW50KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBhbl9lbGVtZW50KHNlbGYp OgorICAgICAgICAgciIiIgorICAgICAgICAgUmV0dXJucyBhIChwcmVmZXJhYmx5IHR5cGljYWwp IGVsZW1lbnQgb2YgdGhpcyBwYXJlbnQuCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvc3RydWN0 dXJlL3BhcmVudF9iYXNlLnB5eCBiL3NyYy9zYWdlL3N0cnVjdHVyZS9wYXJlbnRfYmFzZS5weXgK K2luZGV4IGY1ZWNjMTVhZmZhLi5iNDExNzViNWJmZiAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3N0 cnVjdHVyZS9wYXJlbnRfYmFzZS5weXgKKysrKyBiL3NyYy9zYWdlL3N0cnVjdHVyZS9wYXJlbnRf YmFzZS5weXgKK0BAIC0xNCw3ICsxNCw3IEBAIEJhc2UgY2xhc3MgZm9yIG9sZC1zdHlsZSBwYXJl bnQgb2JqZWN0cyB3aXRoIGEgYmFzZSByaW5nCisgY2ltcG9ydCBzYWdlLnN0cnVjdHVyZS5wYXJl bnQgYXMgcGFyZW50CisgZnJvbSBzYWdlLnN0cnVjdHVyZS5jb2VyY2VfZXhjZXB0aW9ucyBpbXBv cnQgQ29lcmNpb25FeGNlcHRpb24KKyAKKy1jZGVmIGlubGluZSBjaGVja19vbGRfY29lcmNlKHBh cmVudC5QYXJlbnQgcCkgbm9leGNlcHQ6CisrY2RlZiBpbmxpbmUgY2hlY2tfb2xkX2NvZXJjZShw YXJlbnQuUGFyZW50IHApOgorICAgICBpZiBwLl9lbGVtZW50X2NvbnN0cnVjdG9yIGlzIG5vdCBO b25lOgorICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCIlcyBzdGlsbCB1c2luZyBvbGQgY29l cmNpb24gZnJhbWV3b3JrIiAlIHApCisgCitAQCAtMjcsNyArMjcsNyBAQCBjZGVmIGNsYXNzIFBh cmVudFdpdGhCYXNlKFBhcmVudF9vbGQpOgorICAgICAgICAgUGFyZW50X29sZC5fX2luaXRfXyhz ZWxmLCAqYXJncywgKiprd2RzKQorICAgICAgICAgc2VsZi5fYmFzZSA9IGJhc2UKKyAKKy0gICAg Y2RlZiBfY29lcmNlX2NfaW1wbChzZWxmLHgpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9jb2VyY2Vf Y19pbXBsKHNlbGYseCk6CisgICAgICAgICBjaGVja19vbGRfY29lcmNlKHNlbGYpCisgICAgICAg ICBmcm9tIHNhZ2UubWlzYy5zdXBlcnNlZGVkIGltcG9ydCBkZXByZWNhdGlvbgorICAgICAgICAg ZGVwcmVjYXRpb24oMzM0OTcsICJfY29lcmNlX2NfaW1wbCBpcyBkZXByZWNhdGVkLCB1c2UgY29l cmNlIGluc3RlYWQiKQorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3N0cnVjdHVyZS9wYXJlbnRfZ2Vu cy5weXggYi9zcmMvc2FnZS9zdHJ1Y3R1cmUvcGFyZW50X2dlbnMucHl4CitpbmRleCA2ZDQ5M2U1 Njc4MS4uM2Y2OWI5ZGFlZTQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9zdHJ1Y3R1cmUvcGFyZW50 X2dlbnMucHl4CisrKysgYi9zcmMvc2FnZS9zdHJ1Y3R1cmUvcGFyZW50X2dlbnMucHl4CitAQCAt NzMsNyArNzMsNyBAQCBjaW1wb3J0IHNhZ2Uuc3RydWN0dXJlLnBhcmVudCBhcyBwYXJlbnQKKyBj aW1wb3J0IHNhZ2Uuc3RydWN0dXJlLmNhdGVnb3J5X29iamVjdCBhcyBjYXRlZ29yeV9vYmplY3QK KyAKKyAKKy1jZGVmIGlubGluZSBjaGVja19vbGRfY29lcmNlKHBhcmVudC5QYXJlbnQgcCkgbm9l eGNlcHQ6CisrY2RlZiBpbmxpbmUgY2hlY2tfb2xkX2NvZXJjZShwYXJlbnQuUGFyZW50IHApOgor ICAgICBpZiBwLl9lbGVtZW50X2NvbnN0cnVjdG9yIGlzIG5vdCBOb25lOgorICAgICAgICAgcmFp c2UgUnVudGltZUVycm9yKCIlcyBzdGlsbCB1c2luZyBvbGQgY29lcmNpb24gZnJhbWV3b3JrIiAl IHApCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvc3RydWN0dXJlL3BhcmVudF9vbGQucHhkIGIv c3JjL3NhZ2Uvc3RydWN0dXJlL3BhcmVudF9vbGQucHhkCitpbmRleCA2ODhhZTk2NDY5YS4uNTRi YjQ3NTM5NzAgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9zdHJ1Y3R1cmUvcGFyZW50X29sZC5weGQK KysrKyBiL3NyYy9zYWdlL3N0cnVjdHVyZS9wYXJlbnRfb2xkLnB4ZAorQEAgLTE2LDkgKzE2LDkg QEAgY2RlZiBjbGFzcyBQYXJlbnQocGFyZW50LlBhcmVudCk6CisgICAgICMgQ2FjaGUgZm9yIF9f aGFzX2NvZXJjZV9tYXBfZnJvbV9jKCkKKyAgICAgY2RlZiBNb25vRGljdCBfaGFzX2NvZXJjZV9t YXBfZnJvbQorIAorLSAgICBjcGRlZiBfY29lcmNlX2Moc2VsZiwgeCkgbm9leGNlcHQKKy0gICAg Y2RlZiBfY29lcmNlX2NfaW1wbChzZWxmLCB4KSBub2V4Y2VwdAorKyAgICBjcGRlZiBfY29lcmNl X2Moc2VsZiwgeCkKKysgICAgY2RlZiBfY29lcmNlX2NfaW1wbChzZWxmLCB4KQorIAorLSAgICBj ZGVmIF9fY29lcmNlX21hcF9mcm9tX2Moc2VsZiwgUykgbm9leGNlcHQKKy0gICAgY2RlZiBfX2Nv ZXJjZV9tYXBfZnJvbV9jX2ltcGwoc2VsZiwgUykgbm9leGNlcHQKKy0gICAgY2RlZiBfX2hhc19j b2VyY2VfbWFwX2Zyb21fYyhzZWxmLCBTKSBub2V4Y2VwdAorKyAgICBjZGVmIF9fY29lcmNlX21h cF9mcm9tX2Moc2VsZiwgUykKKysgICAgY2RlZiBfX2NvZXJjZV9tYXBfZnJvbV9jX2ltcGwoc2Vs ZiwgUykKKysgICAgY2RlZiBfX2hhc19jb2VyY2VfbWFwX2Zyb21fYyhzZWxmLCBTKQorZGlmZiAt LWdpdCBhL3NyYy9zYWdlL3N0cnVjdHVyZS9wYXJlbnRfb2xkLnB5eCBiL3NyYy9zYWdlL3N0cnVj dHVyZS9wYXJlbnRfb2xkLnB5eAoraW5kZXggMDZjODQ5NjA2MDUuLjdiOGNlNzBiNWE1IDEwMDY0 NAorLS0tIGEvc3JjL3NhZ2Uvc3RydWN0dXJlL3BhcmVudF9vbGQucHl4CisrKysgYi9zcmMvc2Fn ZS9zdHJ1Y3R1cmUvcGFyZW50X29sZC5weXgKK0BAIC0zNCw3ICszNCw3IEBAIGZyb20gc2FnZS5z ZXRzLnB5dGhvbmNsYXNzIGNpbXBvcnQgU2V0X1B5dGhvblR5cGUsIFNldF9QeXRob25UeXBlX2Ns YXNzCisgZnJvbSBjcHl0aG9uLm9iamVjdCBjaW1wb3J0ICoKKyBmcm9tIGNweXRob24uYm9vbCBj aW1wb3J0ICoKKyAKKy1jZGVmIGlubGluZSBjaGVja19vbGRfY29lcmNlKFBhcmVudCBwKSBub2V4 Y2VwdDoKKytjZGVmIGlubGluZSBjaGVja19vbGRfY29lcmNlKFBhcmVudCBwKToKKyAgICAgaWYg cC5fZWxlbWVudF9jb25zdHJ1Y3RvciBpcyBub3QgTm9uZToKKyAgICAgICAgIHJhaXNlIFJ1bnRp bWVFcnJvcigiJXMgc3RpbGwgdXNpbmcgb2xkIGNvZXJjaW9uIGZyYW1ld29yayIgJSBwKQorIAor QEAgLTc5LDcgKzc5LDcgQEAgY2RlZiBjbGFzcyBQYXJlbnQocGFyZW50LlBhcmVudCk6CisgICAg ICMgTmV3IENvZXJjaW9uIHN1cHBvcnQgZnVuY3Rpb25hbGl0eQorICAgICAjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgCistICAgIGNk ZWYgX19jb2VyY2VfbWFwX2Zyb21fYyhzZWxmLCBTKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfX2Nv ZXJjZV9tYXBfZnJvbV9jKHNlbGYsIFMpOgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExF UzoKKyAKK0BAIC0xNDMsNyArMTQzLDcgQEAgY2RlZiBjbGFzcyBQYXJlbnQocGFyZW50LlBhcmVu dCk6CisgCisgICAgICAgICByZXR1cm4gbW9yCisgCistICAgIGNkZWYgX19jb2VyY2VfbWFwX2Zy b21fY19pbXBsKHNlbGYsIFMpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9fY29lcmNlX21hcF9mcm9t X2NfaW1wbChzZWxmLCBTKToKKyAgICAgICAgIGNoZWNrX29sZF9jb2VyY2Uoc2VsZikKKyAgICAg ICAgIGltcG9ydCBzYWdlLmNhdGVnb3JpZXMubW9ycGhpc20KKyAgICAgICAgIGZyb20gc2FnZS5j YXRlZ29yaWVzLm1hcCBpbXBvcnQgTWFwCitAQCAtMTgzLDcgKzE4Myw3IEBAIGNkZWYgY2xhc3Mg UGFyZW50KHBhcmVudC5QYXJlbnQpOgorICAgICAgICAgY2hlY2tfb2xkX2NvZXJjZShzZWxmKQor ICAgICAgICAgcmV0dXJuIHNlbGYuX2NvZXJjZV9jKHgpCisgCistICAgIGNwZGVmIF9jb2VyY2Vf YyhzZWxmLCB4KSBub2V4Y2VwdDogICAgICAgICAgIyBETyBOT1QgT1ZFUlJJREUgVEhJUyAoY2Fs bCBpdCkKKysgICAgY3BkZWYgX2NvZXJjZV9jKHNlbGYsIHgpOiAgICAgICAgICAjIERPIE5PVCBP VkVSUklERSBUSElTIChjYWxsIGl0KQorICAgICAgICAgaWYgc2VsZi5fZWxlbWVudF9jb25zdHJ1 Y3RvciBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICBmcm9tIHNhZ2UubWlzYy5zdXBlcnNlZGVk IGltcG9ydCBkZXByZWNhdGlvbgorICAgICAgICAgICAgIGRlcHJlY2F0aW9uKDMzNDk3LCAiX2Nv ZXJjZV9jIGlzIGRlcHJlY2F0ZWQsIHVzZSBjb2VyY2UgaW5zdGVhZCIpCitAQCAtMjAwLDcgKzIw MCw3IEBAIGNkZWYgY2xhc3MgUGFyZW50KHBhcmVudC5QYXJlbnQpOgorICAgICAgICAgZWxzZToK KyAgICAgICAgICAgICByZXR1cm4gc2VsZi5fY29lcmNlX2NfaW1wbCh4KQorIAorLSAgICBjZGVm IF9jb2VyY2VfY19pbXBsKHNlbGYsIHgpIG5vZXhjZXB0OiAgICAgIyBPVkVSUklERSBUSElTIEZP UiBDWVRIT04gQ0xBU1NFUworKyAgICBjZGVmIF9jb2VyY2VfY19pbXBsKHNlbGYsIHgpOiAgICAg IyBPVkVSUklERSBUSElTIEZPUiBDWVRIT04gQ0xBU1NFUworICAgICAgICAgIiIiCisgICAgICAg ICBDYW5vbmljYWxseSBjb2VyY2UgeCBpbiBhc3N1bWluZyB0aGF0IHRoZSBwYXJlbnQgb2YgeCBp cyBub3QKKyAgICAgICAgIGVxdWFsIHRvIHNlbGYuCitAQCAtMjE2LDcgKzIxNiw3IEBAIGNkZWYg Y2xhc3MgUGFyZW50KHBhcmVudC5QYXJlbnQpOgorICAgICAgICAgY2hlY2tfb2xkX2NvZXJjZShz ZWxmKQorICAgICAgICAgcmV0dXJuIHNlbGYuX2NvZXJjZV9jX2ltcGwoeCkKKyAKKy0gICAgY2Rl ZiBfX2hhc19jb2VyY2VfbWFwX2Zyb21fYyhzZWxmLCBTKSBub2V4Y2VwdDoKKysgICAgY2RlZiBf X2hhc19jb2VyY2VfbWFwX2Zyb21fYyhzZWxmLCBTKToKKyAgICAgICAgIGNoZWNrX29sZF9jb2Vy Y2Uoc2VsZikKKyAgICAgICAgIGlmIHNlbGYgPT0gUzoKKyAgICAgICAgICAgICByZXR1cm4gVHJ1 ZQorQEAgLTI2NCw3ICsyNjQsNyBAQCBjZGVmIGNsYXNzIFBhcmVudChwYXJlbnQuUGFyZW50KToK KyAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCisgICAgICMgQ29lcmNpb24gQ29tcGF0aWJpbGl0eSBMYXllcgorICAgICAj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKy0gICAgY3BkZWYgX2NvZXJjZV9tYXBfZnJvbV8oc2VsZiwgUykgbm9leGNlcHQ6Cisr ICAgIGNwZGVmIF9jb2VyY2VfbWFwX2Zyb21fKHNlbGYsIFMpOgorICAgICAgICAgaWYgc2VsZi5f ZWxlbWVudF9jb25zdHJ1Y3RvciBpcyBOb25lOgorICAgICAgICAgICAgIHJldHVybiBzZWxmLl9f Y29lcmNlX21hcF9mcm9tX2MoUykKKyAgICAgICAgIGVsc2U6CitAQCAtMjc4LDcgKzI3OCw3IEBA IGNkZWYgY2xhc3MgUGFyZW50KHBhcmVudC5QYXJlbnQpOgorICAgICAgICAgc2VsZi5fY2FjaGVf YW5fZWxlbWVudCA9IHNlbGYuX2FuX2VsZW1lbnRfaW1wbCgpCisgICAgICAgICByZXR1cm4gc2Vs Zi5fY2FjaGVfYW5fZWxlbWVudAorIAorLSAgICBjcGRlZiBfZ2VuZXJpY19jb252ZXJ0X21hcChz ZWxmLCBTLCBjYXRlZ29yeT1Ob25lKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2dlbmVyaWNfY29u dmVydF9tYXAoc2VsZiwgUywgY2F0ZWdvcnk9Tm9uZSk6CisgICAgICAgICByIiIiCisgICAgICAg ICBSZXR1cm4gYSBkZWZhdWx0IGNvbnZlcnNpb24gZnJvbSBgYFNgYC4KKyAKK2RpZmYgLS1naXQg YS9zcmMvc2FnZS9zdHJ1Y3R1cmUvcmljaGNtcC5weGQgYi9zcmMvc2FnZS9zdHJ1Y3R1cmUvcmlj aGNtcC5weGQKK2luZGV4IDdkYjYzNDBlYzQ4Li45OGJkYTY5NmVjNyAxMDA2NDQKKy0tLSBhL3Ny Yy9zYWdlL3N0cnVjdHVyZS9yaWNoY21wLnB4ZAorKysrIGIvc3JjL3NhZ2Uvc3RydWN0dXJlL3Jp Y2hjbXAucHhkCitAQCAtMyw3ICszLDcgQEAgZnJvbSBjcHl0aG9uLm9iamVjdCBjaW1wb3J0IChQ eV9MVCwgUHlfTEUsIFB5X0VRLCBQeV9ORSwgUHlfR1QsIFB5X0dFLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUHlPYmplY3RfUmljaENvbXBhcmUpCisgCisgCistY3BkZWYgaW5saW5l IHJpY2hjbXAoeCwgeSwgaW50IG9wKSBub2V4Y2VwdDoKKytjcGRlZiBpbmxpbmUgcmljaGNtcCh4 LCB5LCBpbnQgb3ApOgorICAgICAiIiIKKyAgICAgUmV0dXJuIHRoZSByZXN1bHQgb2YgdGhlIHJp Y2ggY29tcGFyaXNvbiBvZiBgYHhgYCBhbmQgYGB5YGAgd2l0aAorICAgICBvcGVyYXRvciBgYG9w YGAuCitAQCAtNTAsMTAgKzUwLDEwIEBAIGNwZGVmIGlubGluZSByaWNoY21wKHgsIHksIGludCBv cCkgbm9leGNlcHQ6CisgICAgIHJldHVybiBQeU9iamVjdF9SaWNoQ29tcGFyZSh4LCB5LCBvcCkK KyAKKyAKKy1jcGRlZiByaWNoY21wX2l0ZW0oeCwgeSwgaW50IG9wKSBub2V4Y2VwdAorK2NwZGVm IHJpY2hjbXBfaXRlbSh4LCB5LCBpbnQgb3ApCisgCisgCistY3BkZWYgaW5saW5lIHJpY2hjbXBf bm90X2VxdWFsKHgsIHksIGludCBvcCkgbm9leGNlcHQ6CisrY3BkZWYgaW5saW5lIHJpY2hjbXBf bm90X2VxdWFsKHgsIHksIGludCBvcCk6CisgICAgICIiIgorICAgICBMaWtlIGBgcmljaGNtcCh4 LCB5LCBvcClgYCBidXQgYXNzdW1pbmcgdGhhdCBgeGAgaXMgbm90IGVxdWFsIHRvIGB5YC4KKyAK K2RpZmYgLS1naXQgYS9zcmMvc2FnZS9zdHJ1Y3R1cmUvcmljaGNtcC5weXggYi9zcmMvc2FnZS9z dHJ1Y3R1cmUvcmljaGNtcC5weXgKK2luZGV4IDdlMTcyMGMwZTA3Li40NjVmMTZlODI3NCAxMDA2 NDQKKy0tLSBhL3NyYy9zYWdlL3N0cnVjdHVyZS9yaWNoY21wLnB5eAorKysrIGIvc3JjL3NhZ2Uv c3RydWN0dXJlL3JpY2hjbXAucHl4CitAQCAtNjgsNyArNjgsNyBAQCByaWNoY21wX3Nsb3RkZWZb UHlfTEVdID0gZ2V0X3Nsb3RkZWYoYnl0ZXMuX19sZV9fKQorIHJpY2hjbXBfc2xvdGRlZltQeV9H RV0gPSBnZXRfc2xvdGRlZihieXRlcy5fX2dlX18pCisgCisgCistY3BkZWYgcmljaGNtcF9pdGVt KHgsIHksIGludCBvcCkgbm9leGNlcHQ6CisrY3BkZWYgcmljaGNtcF9pdGVtKHgsIHksIGludCBv cCk6CisgICAgICIiIgorICAgICBUaGlzIGZ1bmN0aW9uIGlzIG1lYW50IHRvIGltcGxlbWVudCBs ZXhpY29ncmFwaGljIHJpY2ggY29tcGFyaXNvbgorICAgICBvZiBzZXF1ZW5jZXMgKGxpc3RzLCB2 ZWN0b3JzLCBwb2x5bm9taWFscywgLi4uKS4KK0BAIC0yNjYsNyArMjY2LDcgQEAgY3BkZWYgcmlj aGNtcF9pdGVtKHgsIHksIGludCBvcCkgbm9leGNlcHQ6CisgICAgIHJldHVybiBOb3RJbXBsZW1l bnRlZAorIAorIAorLWNkZWYgc2xvdF90cF9yaWNoY29tcGFyZShzZWxmLCBvdGhlciwgaW50IG9w KSBub2V4Y2VwdDoKKytjZGVmIHNsb3RfdHBfcmljaGNvbXBhcmUoc2VsZiwgb3RoZXIsIGludCBv cCk6CisgICAgICIiIgorICAgICBGdW5jdGlvbiB0byBwdXQgaW4gdGhlIGBgdHBfcmljaGNvbXBh cmVgYCBzbG90LgorICAgICAiIiIKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9zeW1ib2xpYy9jb21w YXJpc29uX2ltcGwucHhpIGIvc3JjL3NhZ2Uvc3ltYm9saWMvY29tcGFyaXNvbl9pbXBsLnB4aQor aW5kZXggYjcyOWJhYmNkNTguLmExZWY3NmJkNzc4IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uvc3lt Ym9saWMvY29tcGFyaXNvbl9pbXBsLnB4aQorKysrIGIvc3JjL3NhZ2Uvc3ltYm9saWMvY29tcGFy aXNvbl9pbXBsLnB4aQorQEAgLTEzNSw3ICsxMzUsNyBAQCBjbGFzcyBfcHJpbnRfa2V5KCk6Cisg ICAgICAgICByZXR1cm4gcHJpbnRfb3JkZXJfYyhzZWxmLmV4LCBvdGhlci5leCkgPCAwCisgCisg CistY3BkZWYgcHJpbnRfc29ydGVkKGV4cHJlc3Npb25zKSBub2V4Y2VwdDoKKytjcGRlZiBwcmlu dF9zb3J0ZWQoZXhwcmVzc2lvbnMpOgorICAgICAiIiIKKyAgICAgU29ydCBhIGxpc3QgaW4gcHJp bnQgb3JkZXIKKyAKK0BAIC0yMTksNyArMjE5LDcgQEAgY2xhc3MgX21hdGhfa2V5KCk6CisgICAg ICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ2Nhbm5vdCBjb21wYXJlIHswfSBhbmQgezF9 Jy5mb3JtYXQoc2VsZi5leCwgb3RoZXIuZXgpKQorIAorIAorLWNwZGVmIG1hdGhfc29ydGVkKGV4 cHJlc3Npb25zKSBub2V4Y2VwdDoKKytjcGRlZiBtYXRoX3NvcnRlZChleHByZXNzaW9ucyk6Cisg ICAgICIiIgorICAgICBTb3J0IGEgbGlzdCBvZiBzeW1ib2xpYyBudW1iZXJzIGluIHRoZSAiTWF0 aGVtYXRpY3MiIG9yZGVyCisgCitAQCAtNDA5LDcgKzQwOSw3IEBAIGNsYXNzIF9taXhlZF9rZXko KToKKyAgICAgICAgICAgICByZXR1cm4gbnVtIDwgMAorIAorIAorLWNwZGVmIG1peGVkX3NvcnRl ZChleHByZXNzaW9ucykgbm9leGNlcHQ6CisrY3BkZWYgbWl4ZWRfc29ydGVkKGV4cHJlc3Npb25z KToKKyAgICAgIiIiCisgICAgIFNvcnQgYSBsaXN0IG9mIHN5bWJvbGljIG51bWJlcnMgaW4gdGhl ICJNaXhlZCIgb3JkZXIKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9zeW1ib2xpYy9leHByZXNz aW9uLnB4ZCBiL3NyYy9zYWdlL3N5bWJvbGljL2V4cHJlc3Npb24ucHhkCitpbmRleCBhMjEyZWI0 MTRjMC4uMzNlMzUyYjdmM2QgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9zeW1ib2xpYy9leHByZXNz aW9uLnB4ZAorKysrIGIvc3JjL3NhZ2Uvc3ltYm9saWMvZXhwcmVzc2lvbi5weGQKK0BAIC0xLDYg KzEsNiBAQAorLWNwZGVmIF9yZXByX0V4cHJlc3Npb24oeCkgbm9leGNlcHQKKy1jcGRlZiBfbGF0 ZXhfRXhwcmVzc2lvbih4KSBub2V4Y2VwdAorLWNwZGVmIG5ld19FeHByZXNzaW9uKHBhcmVudCwg eCkgbm9leGNlcHQKKy1jcGRlZiBuZXdfRXhwcmVzc2lvbl9mcm9tX3B5b2JqZWN0KHBhcmVudCwg eCwgYmludCBmb3JjZT0/LCBiaW50IHJlY3Vyc2l2ZT0/KSBub2V4Y2VwdAorLWNwZGVmIG5ld19F eHByZXNzaW9uX3dpbGQocGFyZW50LCB1bnNpZ25lZCBpbnQgbj0/KSBub2V4Y2VwdAorLWNwZGVm IG5ld19FeHByZXNzaW9uX3N5bWJvbChwYXJlbnQsIG5hbWU9PywgbGF0ZXhfbmFtZT0/LCBkb21h aW49Pykgbm9leGNlcHQKKytjcGRlZiBfcmVwcl9FeHByZXNzaW9uKHgpCisrY3BkZWYgX2xhdGV4 X0V4cHJlc3Npb24oeCkKKytjcGRlZiBuZXdfRXhwcmVzc2lvbihwYXJlbnQsIHgpCisrY3BkZWYg bmV3X0V4cHJlc3Npb25fZnJvbV9weW9iamVjdChwYXJlbnQsIHgsIGJpbnQgZm9yY2U9PywgYmlu dCByZWN1cnNpdmU9PykKKytjcGRlZiBuZXdfRXhwcmVzc2lvbl93aWxkKHBhcmVudCwgdW5zaWdu ZWQgaW50IG49PykKKytjcGRlZiBuZXdfRXhwcmVzc2lvbl9zeW1ib2wocGFyZW50LCBuYW1lPT8s IGxhdGV4X25hbWU9PywgZG9tYWluPT8pCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvc3ltYm9saWMv ZXhwcmVzc2lvbi5weXggYi9zcmMvc2FnZS9zeW1ib2xpYy9leHByZXNzaW9uLnB5eAoraW5kZXgg NmE3MjVhMzUxMDIuLmU1ZGNmMTJkNjQ5IDEwMDY0NAorLS0tIGEvc3JjL3NhZ2Uvc3ltYm9saWMv ZXhwcmVzc2lvbi5weXgKKysrKyBiL3NyYy9zYWdlL3N5bWJvbGljL2V4cHJlc3Npb24ucHl4CitA QCAtNzA0LDcgKzcwNCw3IEBAIGNkZWYgY2xhc3MgRXhwcmVzc2lvbihFeHByZXNzaW9uX2FiYyk6 CisgCisgICAgIGNkZWYgR0V4IF9nb2JqCisgCistICAgIGNwZGVmIG9iamVjdCBweW9iamVjdChz ZWxmKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgb2JqZWN0IHB5b2JqZWN0KHNlbGYpOgorICAgICAg ICAgIiIiCisgICAgICAgICBHZXQgdGhlIHVuZGVybHlpbmcgUHl0aG9uIG9iamVjdC4KKyAKK0BA IC0xNTc3LDcgKzE1NzcsNyBAQCBjZGVmIGNsYXNzIEV4cHJlc3Npb24oRXhwcmVzc2lvbl9hYmMp OgorICAgICAgICAgICAgIHJldHVybiBuCisgICAgICAgICByZXR1cm4gc2FnZS5yaW5ncy5yYXRp b25hbC5SYXRpb25hbChuKQorIAorLSAgICBjcGRlZiBfZXZhbF9zZWxmKHNlbGYsIFIpIG5vZXhj ZXB0OgorKyAgICBjcGRlZiBfZXZhbF9zZWxmKHNlbGYsIFIpOgorICAgICAgICAgIiIiCisgICAg ICAgICBFdmFsdWF0ZSB0aGlzIGV4cHJlc3Npb24gbnVtZXJpY2FsbHkuCisgCitAQCAtMTYzOCw3 ICsxNjM4LDcgQEAgY2RlZiBjbGFzcyBFeHByZXNzaW9uKEV4cHJlc3Npb25fYWJjKToKKyAgICAg ICAgIGVsc2U6CisgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJjYW5ub3QgZXZhbHVhdGUg c3ltYm9saWMgZXhwcmVzc2lvbiB0byBhIG51bWVyaWMgdmFsdWUiKQorIAorLSAgICBjcGRlZiBf Y29udmVydChzZWxmLCBrd2RzKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2NvbnZlcnQoc2VsZiwg a3dkcyk6CisgICAgICAgICAiIiIKKyAgICAgICAgIENvbnZlcnQgYWxsIHRoZSBudW1lcmljIGNv ZWZmaWNpZW50cyBhbmQgY29uc3RhbnRzIGluIHRoaXMgZXhwcmVzc2lvbgorICAgICAgICAgdG8g dGhlIGdpdmVuIHJpbmcgYGBSYGAuIFRoaXMgcmVzdWx0cyBpbiBhbiBleHByZXNzaW9uIHdoaWNo IGNvbnRhaW5zCitAQCAtMjE3OCw3ICsyMTc4LDcgQEAgY2RlZiBjbGFzcyBFeHByZXNzaW9uKEV4 cHJlc3Npb25fYWJjKToKKyAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgc2lnX29mZigp CisgCistICAgIGNwZGVmIF9yaWNoY21wXyhsZWZ0LCByaWdodCwgaW50IG9wKSBub2V4Y2VwdDoK KysgICAgY3BkZWYgX3JpY2hjbXBfKGxlZnQsIHJpZ2h0LCBpbnQgb3ApOgorICAgICAgICAgIiIi CisgICAgICAgICBDcmVhdGUgYSBmb3JtYWwgc3ltYm9saWMgaW5lcXVhbGl0eSBvciBlcXVhbGl0 eS4KKyAKK0BAIC0zNzk4LDcgKzM3OTgsNyBAQCBjZGVmIGNsYXNzIEV4cHJlc3Npb24oRXhwcmVz c2lvbl9hYmMpOgorICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgcmFpc2UgTm90 SW1wbGVtZW50ZWRFcnJvcgorIAorLSAgICBjZGVmIEV4cHJlc3Npb24gY29lcmNlX2luKHNlbGYs IHopIG5vZXhjZXB0OgorKyAgICBjZGVmIEV4cHJlc3Npb24gY29lcmNlX2luKHNlbGYsIHopOgor ICAgICAgICAgIiIiCisgICAgICAgICBRdWlja2x5IGNvZXJjZSB6IHRvIGJlIGFuIEV4cHJlc3Np b24uCisgICAgICAgICAiIiIKK0BAIC0zODA3LDcgKzM4MDcsNyBAQCBjZGVmIGNsYXNzIEV4cHJl c3Npb24oRXhwcmVzc2lvbl9hYmMpOgorICAgICAgICAgZXhjZXB0IFR5cGVFcnJvcjoKKyAgICAg ICAgICAgICByZXR1cm4gc2VsZi5fcGFyZW50LmNvZXJjZSh6KQorIAorLSAgICBjcGRlZiBfYWRk XyhsZWZ0LCByaWdodCkgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9hZGRfKGxlZnQsIHJpZ2h0KToK KyAgICAgICAgICIiIgorICAgICAgICAgQWRkIGxlZnQgYW5kIHJpZ2h0LgorIAorQEAgLTM5MDIs NyArMzkwMiw3IEBAIGNkZWYgY2xhc3MgRXhwcmVzc2lvbihFeHByZXNzaW9uX2FiYyk6CisgICAg ICAgICAgICAgeCA9IGxlZnQuX2dvYmogKyBfcmlnaHQuX2dvYmoKKyAgICAgICAgIHJldHVybiBu ZXdfRXhwcmVzc2lvbl9mcm9tX0dFeChsZWZ0Ll9wYXJlbnQsIHgpCisgCistICAgIGNwZGVmIF9z dWJfKGxlZnQsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX3N1Yl8obGVmdCwgcmlnaHQp OgorICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMzk1NCw3ICszOTU0 LDcgQEAgY2RlZiBjbGFzcyBFeHByZXNzaW9uKEV4cHJlc3Npb25fYWJjKToKKyAgICAgICAgICAg ICB4ID0gbGVmdC5fZ29iaiAtIF9yaWdodC5fZ29iagorICAgICAgICAgcmV0dXJuIG5ld19FeHBy ZXNzaW9uX2Zyb21fR0V4KGxlZnQuX3BhcmVudCwgeCkKKyAKKy0gICAgY3BkZWYgX211bF8obGVm dCwgcmlnaHQpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBfbXVsXyhsZWZ0LCByaWdodCk6CisgICAg ICAgICAiIiIKKyAgICAgICAgIE11bHRpcGx5IGxlZnQgYW5kIHJpZ2h0LgorIAorQEAgLTQxMjAs NyArNDEyMCw3IEBAIGNkZWYgY2xhc3MgRXhwcmVzc2lvbihFeHByZXNzaW9uX2FiYyk6CisgICAg ICAgICAgICAgeCA9IGxlZnQuX2dvYmogKiBfcmlnaHQuX2dvYmoKKyAgICAgICAgIHJldHVybiBu ZXdfRXhwcmVzc2lvbl9mcm9tX0dFeChsZWZ0Ll9wYXJlbnQsIHgpCisgCistICAgIGNwZGVmIF9k aXZfKGxlZnQsIHJpZ2h0KSBub2V4Y2VwdDoKKysgICAgY3BkZWYgX2Rpdl8obGVmdCwgcmlnaHQp OgorICAgICAgICAgIiIiCisgICAgICAgICBEaXZpZGUgbGVmdCBhbmQgcmlnaHQuCisgCitAQCAt NDMwMSw3ICs0MzAxLDcgQEAgY2RlZiBjbGFzcyBFeHByZXNzaW9uKEV4cHJlc3Npb25fYWJjKToK KyAgICAgICAgICIiIgorICAgICAgICAgcmV0dXJuIHByaW50X29yZGVyX2NvbXBhcmVfbXVsKGxl ZnQuX2dvYmosIHJpZ2h0Ll9nb2JqKQorIAorLSAgICBjcGRlZiBfcG93XyhzZWxmLCBvdGhlcikg bm9leGNlcHQ6CisrICAgIGNwZGVmIF9wb3dfKHNlbGYsIG90aGVyKToKKyAgICAgICAgIHIiIiIK KyAgICAgICAgIFJldHVybiBgYHNlbGZgYCByYWlzZWQgdG8gdGhlIHBvd2VyIGBgb3RoZXJgYC4K KyAKK0BAIC00NTE1LDcgKzQ1MTUsNyBAQCBjZGVmIGNsYXNzIEV4cHJlc3Npb24oRXhwcmVzc2lv bl9hYmMpOgorICAgICAgICAgICAgIHggPSBnX3BvdyhzZWxmLl9nb2JqLCBuZXhwLl9nb2JqKQor ICAgICAgICAgcmV0dXJuIG5ld19FeHByZXNzaW9uX2Zyb21fR0V4KHNlbGYuX3BhcmVudCwgeCkK KyAKKy0gICAgY3BkZWYgX3Bvd19pbnQoc2VsZiwgb3RoZXIpIG5vZXhjZXB0OgorKyAgICBjcGRl ZiBfcG93X2ludChzZWxmLCBvdGhlcik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFRFU1RTOjoK KyAKK0BAIC01ODk5LDcgKzU4OTksNyBAQCBjZGVmIGNsYXNzIEV4cHJlc3Npb24oRXhwcmVzc2lv bl9hYmMpOgorICAgICAgICAgcmVzID0gc2VsZi5fZ29iai5zdWJzX21hcChzbWFwLCAwKQorICAg ICAgICAgcmV0dXJuIG5ld19FeHByZXNzaW9uX2Zyb21fR0V4KHNlbGYuX3BhcmVudCwgcmVzKQor IAorLSAgICBjcGRlZiBFeHByZXNzaW9uIF9zdWJzX2V4cHIoc2VsZiwgZXhwcikgbm9leGNlcHQ6 CisrICAgIGNwZGVmIEV4cHJlc3Npb24gX3N1YnNfZXhwcihzZWxmLCBleHByKToKKyAgICAgICAg ICIiIgorICAgICAgICAgRVhBTVBMRVM6OgorIAorQEAgLTEzNTMwLDcgKzEzNTMwLDcgQEAgY2Rl ZiBjbGFzcyBFeHByZXNzaW9uKEV4cHJlc3Npb25fYWJjKToKKyAgICAgICAgICAgICAgICAgcmV0 dXJuIFMKKyAKKyAKKy1jcGRlZiBfcmVwcl9FeHByZXNzaW9uKHgpIG5vZXhjZXB0OgorK2NwZGVm IF9yZXByX0V4cHJlc3Npb24oeCk6CisgICAgIHIiIiIKKyAgICAgUmV0dXJuIHRoZSBzdHJpbmcg cmVwcmVzZW50YXRpb24gb2YgdGhlIGV4cHJlc3Npb24gYGB4YGAuCisgCitAQCAtMTM1NDIsNyAr MTM1NDIsNyBAQCBjcGRlZiBfcmVwcl9FeHByZXNzaW9uKHgpIG5vZXhjZXB0OgorICAgICByZXR1 cm4gY2NyZXByKCg8RXhwcmVzc2lvbj54KS5fZ29iaikKKyAKKyAKKy1jcGRlZiBfbGF0ZXhfRXhw cmVzc2lvbih4KSBub2V4Y2VwdDoKKytjcGRlZiBfbGF0ZXhfRXhwcmVzc2lvbih4KToKKyAgICAg ciIiIgorICAgICBSZXR1cm4gdGhlIHN0YW5kYXJkIExhVGVYIHZlcnNpb24gb2YgdGhlIGV4cHJl c3Npb24gYHhgLgorIAorQEAgLTEzNjE4LDcgKzEzNjE4LDcgQEAgZGVmIF9ldmFsX29uX29wZXJh bmRzKGYpOgorIAorIAorIGNkZWYgZGljdCBkeW5hbWljX2NsYXNzX2NhY2hlID0ge30KKy1jZGVm IGdldF9keW5hbWljX2NsYXNzX2Zvcl9mdW5jdGlvbih1bnNpZ25lZCBzZXJpYWwpIG5vZXhjZXB0 OgorK2NkZWYgZ2V0X2R5bmFtaWNfY2xhc3NfZm9yX2Z1bmN0aW9uKHVuc2lnbmVkIHNlcmlhbCk6 CisgICAgIHIiIiIKKyAgICAgQ3JlYXRlIGEgZHluYW1pYyBjbGFzcyBjb3JyZXNwb25kaW5nIHRv IHRoZSBmdW5jdGlvbiB3aXRoIGdpdmVuCisgICAgIGBgc2VyaWFsYGAgdGhhdCBpbmNsdWRlcyBk eW5hbWljIG1ldGhvZHMgZGVmaW5lZCBieSB0aGUgZnVuY3Rpb24uCitAQCAtMTM3MTMsNyArMTM3 MTMsNyBAQCBjZGVmIGdldF9keW5hbWljX2NsYXNzX2Zvcl9mdW5jdGlvbih1bnNpZ25lZCBzZXJp YWwpIG5vZXhjZXB0OgorICAgICByZXR1cm4gY2xzCisgCisgCistY2RlZiBFeHByZXNzaW9uIG5l d19FeHByZXNzaW9uX2Zyb21fR0V4KHBhcmVudCwgR0V4IGp1aWNlKSBub2V4Y2VwdDoKKytjZGVm IEV4cHJlc3Npb24gbmV3X0V4cHJlc3Npb25fZnJvbV9HRXgocGFyZW50LCBHRXgganVpY2UpOgor ICAgICBjZGVmIHR5cGUgY2xzCisgICAgIGNkZWYgRXhwcmVzc2lvbiBuZXgKKyAgICAgaWYgaXNf ZXhhY3RseV9hX2Z1bmN0aW9uKGp1aWNlKToKK0BAIC0xMzcyOSw3ICsxMzcyOSw3IEBAIGNkZWYg RXhwcmVzc2lvbiBuZXdfRXhwcmVzc2lvbl9mcm9tX0dFeChwYXJlbnQsIEdFeCBqdWljZSkgbm9l eGNlcHQ6CisgICAgIHJldHVybiBuZXgKKyAKKyAKKy1jcGRlZiBuZXdfRXhwcmVzc2lvbihwYXJl bnQsIHgpIG5vZXhjZXB0OgorK2NwZGVmIG5ld19FeHByZXNzaW9uKHBhcmVudCwgeCk6CisgICAg IHIiIiIKKyAgICAgQ29udmVydCBgYHhgYCBpbnRvIHRoZSBzeW1ib2xpYyBleHByZXNzaW9uIHJp bmcgYGBwYXJlbnRgYC4KKyAKK0BAIC0xMzgxOSw3ICsxMzgxOSw3IEBAIGNwZGVmIG5ld19FeHBy ZXNzaW9uKHBhcmVudCwgeCkgbm9leGNlcHQ6CisgICAgIHJldHVybiBuZXdfRXhwcmVzc2lvbl9m cm9tX0dFeChwYXJlbnQsIGV4cCkKKyAKKyAKKy1jcGRlZiBuZXdfRXhwcmVzc2lvbl9mcm9tX3B5 b2JqZWN0KHBhcmVudCwgeCwgYmludCBmb3JjZT1UcnVlLCBiaW50IHJlY3Vyc2l2ZT1UcnVlKSBu b2V4Y2VwdDoKKytjcGRlZiBuZXdfRXhwcmVzc2lvbl9mcm9tX3B5b2JqZWN0KHBhcmVudCwgeCwg YmludCBmb3JjZT1UcnVlLCBiaW50IHJlY3Vyc2l2ZT1UcnVlKToKKyAgICAgciIiIgorICAgICBX cmFwIHRoZSBnaXZlbiBQeXRob24gb2JqZWN0IGluIGEgc3ltYm9saWMgZXhwcmVzc2lvbiBldmVu IGlmIGl0CisgICAgIGNhbm5vdCBiZSBjb2VyY2VkIHRvIHRoZSBTeW1ib2xpYyBSaW5nLgorQEAg LTEzODkwLDcgKzEzODkwLDcgQEAgY3BkZWYgbmV3X0V4cHJlc3Npb25fZnJvbV9weW9iamVjdChw YXJlbnQsIHgsIGJpbnQgZm9yY2U9VHJ1ZSwgYmludCByZWN1cnNpdmU9VHIKKyAgICAgcmV0dXJu IG5ld19FeHByZXNzaW9uX2Zyb21fR0V4KHBhcmVudCwgZXhwKQorIAorIAorLWNwZGVmIG5ld19F eHByZXNzaW9uX3dpbGQocGFyZW50LCB1bnNpZ25lZCBpbnQgbj0wKSBub2V4Y2VwdDoKKytjcGRl ZiBuZXdfRXhwcmVzc2lvbl93aWxkKHBhcmVudCwgdW5zaWduZWQgaW50IG49MCk6CisgICAgIHIi IiIKKyAgICAgUmV0dXJuIHRoZSBuLXRoIHdpbGQtY2FyZCBmb3IgcGF0dGVybiBtYXRjaGluZyBh bmQgc3Vic3RpdHV0aW9uLgorIAorQEAgLTEzOTIwLDcgKzEzOTIwLDcgQEAgY3BkZWYgbmV3X0V4 cHJlc3Npb25fd2lsZChwYXJlbnQsIHVuc2lnbmVkIGludCBuPTApIG5vZXhjZXB0OgorICAgICBy ZXR1cm4gbmV3X0V4cHJlc3Npb25fZnJvbV9HRXgocGFyZW50LCBnX3dpbGQobikpCisgCisgCist Y3BkZWYgbmV3X0V4cHJlc3Npb25fc3ltYm9sKHBhcmVudCwgbmFtZT1Ob25lLCBsYXRleF9uYW1l PU5vbmUsIGRvbWFpbj1Ob25lKSBub2V4Y2VwdDoKKytjcGRlZiBuZXdfRXhwcmVzc2lvbl9zeW1i b2wocGFyZW50LCBuYW1lPU5vbmUsIGxhdGV4X25hbWU9Tm9uZSwgZG9tYWluPU5vbmUpOgorICAg ICByIiIiCisgICAgIExvb2sgdXAgb3IgY3JlYXRlIGEgc3ltYm9sLgorIAorQEAgLTE0MDcyLDcg KzE0MDcyLDcgQEAgY2RlZiBjbGFzcyBFeHByZXNzaW9uSXRlcmF0b3I6CisgICAgICAgICBzZWxm Ll9pbmQrPTEKKyAgICAgICAgIHJldHVybiBuZXdfRXhwcmVzc2lvbl9mcm9tX0dFeChzZWxmLl9l eC5fcGFyZW50LCBleCkKKyAKKy1jZGVmIGlubGluZSBFeHByZXNzaW9uSXRlcmF0b3IgbmV3X0V4 cEl0ZXJfZnJvbV9FeHByZXNzaW9uKEV4cHJlc3Npb24gZXgpIG5vZXhjZXB0OgorK2NkZWYgaW5s aW5lIEV4cHJlc3Npb25JdGVyYXRvciBuZXdfRXhwSXRlcl9mcm9tX0V4cHJlc3Npb24oRXhwcmVz c2lvbiBleCk6CisgICAgICIiIgorICAgICBDb25zdHJ1Y3QgYSBuZXcgaXRlcmF0b3Igb3ZlciBh IHN5bWJvbGljIGV4cHJlc3Npb24uCisgCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvc3ltYm9saWMv ZnVuY3Rpb24ucHhkIGIvc3JjL3NhZ2Uvc3ltYm9saWMvZnVuY3Rpb24ucHhkCitpbmRleCAxOTg3 YTM5M2Y4Ni4uZGIxYmE2YzVkNTQgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9zeW1ib2xpYy9mdW5j dGlvbi5weGQKKysrKyBiL3NyYy9zYWdlL3N5bWJvbGljL2Z1bmN0aW9uLnB4ZAorQEAgLTgsMjEg KzgsMjEgQEAgY2RlZiBjbGFzcyBGdW5jdGlvbihTYWdlT2JqZWN0KToKKyAgICAgY2RlZiBvYmpl Y3QgX2xhdGV4X25hbWUKKyAgICAgY2RlZiBvYmplY3QgX2NvbnZlcnNpb25zCisgICAgIGNkZWYg b2JqZWN0IF9ldmFsZl9wYXJhbXNfZmlyc3QKKy0gICAgY2RlZiBfaXNfcmVnaXN0ZXJlZChzZWxm KSBub2V4Y2VwdAorLSAgICBjZGVmIF9yZWdpc3Rlcl9mdW5jdGlvbihzZWxmKSBub2V4Y2VwdAor KyAgICBjZGVmIF9pc19yZWdpc3RlcmVkKHNlbGYpCisrICAgIGNkZWYgX3JlZ2lzdGVyX2Z1bmN0 aW9uKHNlbGYpCisgCisgY2RlZiBjbGFzcyBCdWlsdGluRnVuY3Rpb24oRnVuY3Rpb24pOgorICAg ICBjZGVmIG9iamVjdCBfcHJlc2VydmVkX2FyZworLSAgICBjZGVmIF9pc19yZWdpc3RlcmVkKHNl bGYpIG5vZXhjZXB0CisrICAgIGNkZWYgX2lzX3JlZ2lzdGVyZWQoc2VsZikKKyAKKyBjZGVmIGNs YXNzIEdpbmFjRnVuY3Rpb24oQnVpbHRpbkZ1bmN0aW9uKToKKyAgICAgY2RlZiBvYmplY3QgX2dp bmFjX25hbWUKKy0gICAgY2RlZiBfaXNfcmVnaXN0ZXJlZChzZWxmKSBub2V4Y2VwdAorLSAgICBj ZGVmIF9yZWdpc3Rlcl9mdW5jdGlvbihzZWxmKSBub2V4Y2VwdAorKyAgICBjZGVmIF9pc19yZWdp c3RlcmVkKHNlbGYpCisrICAgIGNkZWYgX3JlZ2lzdGVyX2Z1bmN0aW9uKHNlbGYpCisgCisgY2Rl ZiBjbGFzcyBTeW1ib2xpY0Z1bmN0aW9uKEZ1bmN0aW9uKToKKyAgICAgIyBjYWNoZSBoYXNoIHZh bHVlCisgICAgIGNkZWYgbG9uZyBfaGFzaF8oc2VsZikgZXhjZXB0IC0xCisgICAgIGNkZWYgYmlu dCBfX2hpbml0CisgICAgIGNkZWYgbG9uZyBfX2hjYWNoZQorLSAgICBjZGVmIF9pc19yZWdpc3Rl cmVkKHNlbGYpIG5vZXhjZXB0CisrICAgIGNkZWYgX2lzX3JlZ2lzdGVyZWQoc2VsZikKK2RpZmYg LS1naXQgYS9zcmMvc2FnZS9zeW1ib2xpYy9mdW5jdGlvbi5weXggYi9zcmMvc2FnZS9zeW1ib2xp Yy9mdW5jdGlvbi5weXgKK2luZGV4IDc4ZTJjZDdiNTFiLi5hN2NhNDA1MTg0YyAxMDA2NDQKKy0t LSBhL3NyYy9zYWdlL3N5bWJvbGljL2Z1bmN0aW9uLnB5eAorKysrIGIvc3JjL3NhZ2Uvc3ltYm9s aWMvZnVuY3Rpb24ucHl4CitAQCAtMjQ1LDE0ICsyNDUsMTQgQEAgY2RlZiBjbGFzcyBGdW5jdGlv bihTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICAgICAgc2VsZi5fcmVnaXN0ZXJfZnVuY3Rpb24o KQorICAgICAgICAgICAgIHJlZ2lzdGVyX3N5bWJvbChzZWxmLCBzZWxmLl9jb252ZXJzaW9ucykK KyAKKy0gICAgY2RlZiBfaXNfcmVnaXN0ZXJlZChzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBf aXNfcmVnaXN0ZXJlZChzZWxmKToKKyAgICAgICAgICIiIgorICAgICAgICAgQ2hlY2sgaWYgdGhp cyBmdW5jdGlvbiBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQuIElmIGl0IGlzLCBzZXQKKyAgICAgICAg IGBzZWxmLl9zZXJpYWxgIHRvIHRoZSByaWdodCB2YWx1ZS4KKyAgICAgICAgICIiIgorICAgICAg ICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigidGhpcyBpcyBhbiBhYnN0cmFjdCBiYXNlIGNs YXNzLCBpdCBzaG91bGRuJ3QgYmUgaW5pdGlhbGl6ZWQgZGlyZWN0bHkiKQorIAorLSAgICBjZGVm IF9yZWdpc3Rlcl9mdW5jdGlvbihzZWxmKSBub2V4Y2VwdDoKKysgICAgY2RlZiBfcmVnaXN0ZXJf ZnVuY3Rpb24oc2VsZik6CisgICAgICAgICAiIiIKKyAKKyAgICAgICAgIFRFU1RTOgorQEAgLTg1 MCwxNCArODUwLDE0IEBAIGNkZWYgY2xhc3MgR2luYWNGdW5jdGlvbihCdWlsdGluRnVuY3Rpb24p OgorICAgICAgICAgICAgICAgICBldmFsZl9wYXJhbXNfZmlyc3Q9ZXZhbGZfcGFyYW1zX2ZpcnN0 LAorICAgICAgICAgICAgICAgICBwcmVzZXJ2ZWRfYXJnPXByZXNlcnZlZF9hcmcsIGFsdF9uYW1l PWFsdF9uYW1lKQorIAorLSAgICBjZGVmIF9pc19yZWdpc3RlcmVkKHNlbGYpIG5vZXhjZXB0Ogor KyAgICBjZGVmIF9pc19yZWdpc3RlcmVkKHNlbGYpOgorICAgICAgICAgIyBTaW5jZSB0aGlzIGlz IGZ1bmN0aW9uIGlzIGRlZmluZWQgaW4gQysrLCBpdCBpcyBhbHJlYWR5IGluCisgICAgICAgICAj IGdpbmFjJ3MgZnVuY3Rpb24gcmVnaXN0cnkKKyAgICAgICAgIGZuYW1lID0gc2VsZi5fZ2luYWNf bmFtZSBpZiBzZWxmLl9naW5hY19uYW1lIGlzIG5vdCBOb25lIGVsc2Ugc2VsZi5fbmFtZQorICAg ICAgICAgc2VsZi5fc2VyaWFsID0gZmluZF9yZWdpc3RlcmVkX2Z1bmN0aW9uKGZuYW1lLCBzZWxm Ll9uYXJncykKKyAgICAgICAgIHJldHVybiBib29sKGdldF9zZnVuY3Rpb25fZnJvbV9zZXJpYWwo c2VsZi5fc2VyaWFsKSkKKyAKKy0gICAgY2RlZiBfcmVnaXN0ZXJfZnVuY3Rpb24oc2VsZikgbm9l eGNlcHQ6CisrICAgIGNkZWYgX3JlZ2lzdGVyX2Z1bmN0aW9uKHNlbGYpOgorICAgICAgICAgIyBX ZSBkb24ndCBuZWVkIHRvIGFkZCBhbnl0aGluZyB0byBHaU5hQydzIGZ1bmN0aW9uIHJlZ2lzdHJ5 CisgICAgICAgICAjIEhvd2V2ZXIsIGlmIGFueSBjdXN0b20gbWV0aG9kcyB3ZXJlIHByb3ZpZGVk IGluIHRoZSBweXRob24gY2xhc3MsCisgICAgICAgICAjIHdlIHNob3VsZCBzZXQgdGhlIHByb3Bl cnRpZXMgb2YgdGhlIGZ1bmN0aW9uX29wdGlvbnMgb2JqZWN0CitAQCAtMTA4Niw3ICsxMDg2LDcg QEAgY2RlZiBjbGFzcyBCdWlsdGluRnVuY3Rpb24oRnVuY3Rpb24pOgorICAgICAgICAgZWxzZToK KyAgICAgICAgICAgICByZXR1cm4gcmVzCisgCistICAgIGNkZWYgX2lzX3JlZ2lzdGVyZWQoc2Vs Zikgbm9leGNlcHQ6CisrICAgIGNkZWYgX2lzX3JlZ2lzdGVyZWQoc2VsZik6CisgICAgICAgICAi IiIKKyAgICAgICAgIFRFU1RTOgorIAorQEAgLTEyMDQsNyArMTIwNCw3IEBAIGNkZWYgY2xhc3Mg U3ltYm9saWNGdW5jdGlvbihGdW5jdGlvbik6CisgICAgICAgICBGdW5jdGlvbi5fX2luaXRfXyhz ZWxmLCBuYW1lLCBuYXJncywgbGF0ZXhfbmFtZSwgY29udmVyc2lvbnMsCisgICAgICAgICAgICAg ICAgIGV2YWxmX3BhcmFtc19maXJzdCkKKyAKKy0gICAgY2RlZiBfaXNfcmVnaXN0ZXJlZChTeW1i b2xpY0Z1bmN0aW9uIHNlbGYpIG5vZXhjZXB0OgorKyAgICBjZGVmIF9pc19yZWdpc3RlcmVkKFN5 bWJvbGljRnVuY3Rpb24gc2VsZik6CisgICAgICAgICAjIHNlZSBpZiB0aGVyZSBpcyBhbHJlYWR5 IGEgU3ltYm9saWNGdW5jdGlvbiB3aXRoIHRoZSBzYW1lIHN0YXRlCisgICAgICAgICBjZGVmIGxv bmcgbXloYXNoID0gc2VsZi5faGFzaF8oKQorICAgICAgICAgY2RlZiBTeW1ib2xpY0Z1bmN0aW9u IHNmdW5jID0gZ2V0X3NmdW5jdGlvbl9mcm9tX2hhc2gobXloYXNoKQorZGlmZiAtLWdpdCBhL3Ny Yy9zYWdlL3N5bWJvbGljL3B5bmFjX2Z1bmN0aW9uX2ltcGwucHhpIGIvc3JjL3NhZ2Uvc3ltYm9s aWMvcHluYWNfZnVuY3Rpb25faW1wbC5weGkKK2luZGV4IGNjYTFiYjVkMTk2Li5mMjBjOGZhZjkx YSAxMDA2NDQKKy0tLSBhL3NyYy9zYWdlL3N5bWJvbGljL3B5bmFjX2Z1bmN0aW9uX2ltcGwucHhp CisrKysgYi9zcmMvc2FnZS9zeW1ib2xpYy9weW5hY19mdW5jdGlvbl9pbXBsLnB4aQorQEAgLTMs NyArMyw3IEBAIGNwZGVmIGNhbGxfcmVnaXN0ZXJlZF9mdW5jdGlvbih1bnNpZ25lZCBzZXJpYWws CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QgYXJncywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYmludCBob2xkLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBiaW50IGFsbG93X251bWVyaWNfcmVzdWx0LAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICByZXN1bHRfcGFyZW50KSBub2V4Y2VwdDoKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcmVzdWx0X3BhcmVudCk6CisgICAgIHIiIiIKKyAgICAgQ2FsbCBhIGZ1bmN0 aW9uIHJlZ2lzdGVyZWQgd2l0aCBQeW5hYyAoR2lOYUMpLgorIAorQEAgLTE3Myw3ICsxNzMsNyBA QCBjcGRlZiB1bnNpZ25lZCByZWdpc3Rlcl9vcl91cGRhdGVfZnVuY3Rpb24oc2VsZiwgbmFtZSwg bGF0ZXhfbmFtZSwgaW50IG5hcmdzLAorIGNkZWYgZGljdCBzZnVuY3Rpb25fc2VyaWFsX2RpY3Qg PSB7fQorIAorIAorLWNwZGVmIGdldF9zZnVuY3Rpb25fZnJvbV9zZXJpYWwodW5zaWduZWQgaW50 IHNlcmlhbCkgbm9leGNlcHQ6CisrY3BkZWYgZ2V0X3NmdW5jdGlvbl9mcm9tX3NlcmlhbCh1bnNp Z25lZCBpbnQgc2VyaWFsKToKKyAgICAgIiIiCisgICAgIFJldHVybiBhbiBhbHJlYWR5IGNyZWF0 ZWQgOmNsYXNzOmBTeW1ib2xpY0Z1bmN0aW9uYCBnaXZlbiB0aGUgc2VyaWFsLgorIAorQEAgLTE4 OSw3ICsxODksNyBAQCBjcGRlZiBnZXRfc2Z1bmN0aW9uX2Zyb21fc2VyaWFsKHVuc2lnbmVkIGlu dCBzZXJpYWwpIG5vZXhjZXB0OgorICAgICByZXR1cm4gc2Z1bmN0aW9uX3NlcmlhbF9kaWN0Lmdl dChzZXJpYWwpCisgCisgCistY3BkZWYgZ2V0X3NmdW5jdGlvbl9mcm9tX2hhc2gobG9uZyBteWhh c2gpIG5vZXhjZXB0OgorK2NwZGVmIGdldF9zZnVuY3Rpb25fZnJvbV9oYXNoKGxvbmcgbXloYXNo KToKKyAgICAgIiIiCisgICAgIFJldHVybiBhbiBhbHJlYWR5IGNyZWF0ZWQgOmNsYXNzOmBTeW1i b2xpY0Z1bmN0aW9uYCBnaXZlbiB0aGUgaGFzaC4KKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS9z eW1ib2xpYy9weW5hY19pbXBsLnB4aSBiL3NyYy9zYWdlL3N5bWJvbGljL3B5bmFjX2ltcGwucHhp CitpbmRleCA0NjU2ZGUwOWQyOC4uYTQzZTUzZjRmM2QgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9z eW1ib2xpYy9weW5hY19pbXBsLnB4aQorKysrIGIvc3JjL3NhZ2Uvc3ltYm9saWMvcHluYWNfaW1w bC5weGkKK0BAIC02MSw3ICs2MSw3IEBAIGZyb20gc2FnZS5zeW1ib2xpYy5mdW5jdGlvbiBjaW1w b3J0IEZ1bmN0aW9uCisgIyBTeW1ib2xpYyBmdW5jdGlvbiBoZWxwZXJzCisgIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAK Ky1jZGVmIGV4X3RvX3B5RXhwcmVzc2lvbihHRXgganVpY2UpIG5vZXhjZXB0OgorK2NkZWYgZXhf dG9fcHlFeHByZXNzaW9uKEdFeCBqdWljZSk6CisgICAgICIiIgorICAgICBDb252ZXJ0IGdpdmVu IEdpTmFDOjpleCBvYmplY3QgdG8gYSBweXRob24gRXhwcmVzc2lvbiBpbnN0YW5jZS4KKyAKK0BA IC03NCw3ICs3NCw3IEBAIGNkZWYgZXhfdG9fcHlFeHByZXNzaW9uKEdFeCBqdWljZSkgbm9leGNl cHQ6CisgICAgIG5leC5fcGFyZW50ID0gU1IKKyAgICAgcmV0dXJuIG5leAorIAorLWNkZWYgZXhw cnNlcV90b19QeVR1cGxlKEdFeCBzZXEpIG5vZXhjZXB0OgorK2NkZWYgZXhwcnNlcV90b19QeVR1 cGxlKEdFeCBzZXEpOgorICAgICAiIiIKKyAgICAgQ29udmVydCBhbiBleHByc2VxIHRvIGEgUHl0 aG9uIHR1cGxlLgorIAorQEAgLTEzNCw3ICsxMzQsNyBAQCBkZWYgdW5wYWNrX29wZXJhbmRzKEV4 cHJlc3Npb24gZXgpOgorICAgICByZXR1cm4gZXhwcnNlcV90b19QeVR1cGxlKGV4Ll9nb2JqKQor IAorIAorLWNkZWYgZXh2ZWN0b3JfdG9fUHlUdXBsZShHRXhWZWN0b3Igc2VxKSBub2V4Y2VwdDoK KytjZGVmIGV4dmVjdG9yX3RvX1B5VHVwbGUoR0V4VmVjdG9yIHNlcSk6CisgICAgICIiIgorICAg ICBDb252ZXJ0cyBhcmd1bWVudHMgbGlzdCBnaXZlbiB0byBhIGZ1bmN0aW9uIHRvIGEgUHlUdXBs ZS4KKyAKK0BAIC0xOTYsNyArMTk2LDcgQEAgY2RlZiBHRXggcHlFeHByZXNzaW9uX3RvX2V4KHJl cykgZXhjZXB0ICo6CisgICAgICAgICByYWlzZSBUeXBlRXJyb3IoImZ1bmN0aW9uIGRpZCBub3Qg cmV0dXJuIGEgc3ltYm9saWMgZXhwcmVzc2lvbiBvciBhbiBlbGVtZW50IHRoYXQgY2FuIGJlIGNv ZXJjZWQgaW50byBhIHN5bWJvbGljIGV4cHJlc3Npb24iKQorICAgICByZXR1cm4gKDxFeHByZXNz aW9uPnQpLl9nb2JqCisgCistY2RlZiBwYXJhbXNldF90b19QeVR1cGxlKGNvbnN0X3BhcmFtc2V0 X3JlZiBzKSBub2V4Y2VwdDoKKytjZGVmIHBhcmFtc2V0X3RvX1B5VHVwbGUoY29uc3RfcGFyYW1z ZXRfcmVmIHMpOgorICAgICAiIiIKKyAgICAgQ29udmVydHMgYSBzdGQ6Om11bHRpc2V0PHVuc2ln bmVkPiB0byBhIFB5VHVwbGUuCisgCitAQCAtMjI2LDcgKzIyNiw3IEBAIGRlZiBwYXJhbXNldF9m cm9tX0V4cHJlc3Npb24oRXhwcmVzc2lvbiBlKToKKyAKKyBjZGVmIGludCBHSU5BQ19GTl9TRVJJ QUwgPSAwCisgCistY2RlZiBzZXRfZ2luYWNfZm5fc2VyaWFsKCkgbm9leGNlcHQ6CisrY2RlZiBz ZXRfZ2luYWNfZm5fc2VyaWFsKCk6CisgICAgICIiIgorICAgICBJbml0aWFsaXplIHRoZSBHSU5B Q19GTl9TRVJJQUwgdmFyaWFibGUgdG8gdGhlIG51bWJlciBvZiBmdW5jdGlvbnMKKyAgICAgZGVm aW5lZCBieSBHaU5hQy4gVGhpcyBhbGxvd3MgdXMgdG8gcHJldmVudCBjb2xsaXNpb25zIHdpdGgg QysrIGxldmVsCitAQCAtMjYyLDcgKzI2Miw3IEBAIGRlZiBnZXRfZ2luYWNfc2VyaWFsKCk6Cisg ICAgIHJldHVybiBweV9nZXRfZ2luYWNfc2VyaWFsKCkKKyAKKyAKKy1jZGVmIGdldF9mbl9zZXJp YWxfYygpIG5vZXhjZXB0OgorK2NkZWYgZ2V0X2ZuX3NlcmlhbF9jKCk6CisgICAgICIiIgorICAg ICBSZXR1cm4gb3ZlcmFsbCBzaXplIG9mIFB5bmFjIGZ1bmN0aW9uIHJlZ2lzdHJ5LgorICAgICAi IiIKK0BAIC0yODgsNyArMjg4LDcgQEAgZGVmIGdldF9mbl9zZXJpYWwoKToKKyAgICAgcmV0dXJu IGdldF9mbl9zZXJpYWxfYygpCisgCisgCistY2RlZiBzdWJzX2FyZ3NfdG9fUHlUdXBsZShjb25z dCBHRXhNYXAmIG1hcCwgdW5zaWduZWQgb3B0aW9ucywgY29uc3QgR0V4VmVjdG9yJiBzZXEpIG5v ZXhjZXB0OgorK2NkZWYgc3Vic19hcmdzX3RvX1B5VHVwbGUoY29uc3QgR0V4TWFwJiBtYXAsIHVu c2lnbmVkIG9wdGlvbnMsIGNvbnN0IEdFeFZlY3RvciYgc2VxKToKKyAgICAgIiIiCisgICAgIENv bnZlcnQgYXJndW1lbnRzIGZyb20gYGBHaU5hQzo6c3VicygpYGAgdG8gYSBQeVR1cGxlLgorIAor QEAgLTc4OSwxMiArNzg5LDEyIEBAIGNkZWYgc3Rkc3RyaW5nKiBweV9kdW1wcyhvKSBub2V4Y2Vw dDoKKyAgICAgcyA9IGJhc2U2NC5iNjRlbmNvZGUocykKKyAgICAgcmV0dXJuIHN0cmluZ19mcm9t X3B5c3RyKHMpCisgCistY2RlZiBweV9sb2FkcyhzKSBub2V4Y2VwdDoKKytjZGVmIHB5X2xvYWRz KHMpOgorICAgICBpbXBvcnQgYmFzZTY0CisgICAgIHMgPSBiYXNlNjQuYjY0ZGVjb2RlKHMpCisg ICAgIHJldHVybiBsb2FkcyhzKQorIAorLWNkZWYgcHlfZ2V0X3NmdW5jdGlvbl9mcm9tX3Nlcmlh bCh1bnNpZ25lZCBzKSBub2V4Y2VwdDoKKytjZGVmIHB5X2dldF9zZnVuY3Rpb25fZnJvbV9zZXJp YWwodW5zaWduZWQgcyk6CisgICAgICIiIgorICAgICBSZXR1cm4gdGhlIFB5dGhvbiBvYmplY3Qg YXNzb2NpYXRlZCB3aXRoIGEgc2VyaWFsLgorICAgICAiIiIKK0BAIC04NjksNyArODY5LDcgQEAg Y2RlZiBpbnQgcHlfZ2V0X3BhcmVudF9jaGFyKG8pIGV4Y2VwdCAtMToKKyAjIHBvd2VyIGhlbHBl cnMKKyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworIAorLWNkZWYgcHlfcmF0aW9uYWxfcG93ZXJfcGFydHMoYmFzZSwgZXhw KSBub2V4Y2VwdDoKKytjZGVmIHB5X3JhdGlvbmFsX3Bvd2VyX3BhcnRzKGJhc2UsIGV4cCk6Cisg ICAgIGlmIHR5cGUoYmFzZSkgaXMgbm90IFJhdGlvbmFsOgorICAgICAgICAgYmFzZSA9IFJhdGlv bmFsKGJhc2UpCisgICAgIGlmIHR5cGUoZXhwKSBpcyBub3QgUmF0aW9uYWw6CitAQCAtODgyLDcg Kzg4Miw3IEBAIGNkZWYgcHlfcmF0aW9uYWxfcG93ZXJfcGFydHMoYmFzZSwgZXhwKSBub2V4Y2Vw dDoKKyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworIAorIAorLWNkZWYgcHlfYmlub21pYWxfaW50KGludCBuLCB1bnNpZ25l ZCBpbnQgaykgbm9leGNlcHQ6CisrY2RlZiBweV9iaW5vbWlhbF9pbnQoaW50IG4sIHVuc2lnbmVk IGludCBrKToKKyAgICAgY2RlZiBiaW50IHNpZ24KKyAgICAgaWYgbiA8IDA6CisgICAgICAgICBu ID0gLW4gKyAoay0xKQorQEAgLTg5OCw3ICs4OTgsNyBAQCBjZGVmIHB5X2Jpbm9taWFsX2ludChp bnQgbiwgdW5zaWduZWQgaW50IGspIG5vZXhjZXB0OgorICAgICBlbHNlOgorICAgICAgICAgcmV0 dXJuIGFucworIAorLWNkZWYgcHlfYmlub21pYWwobiwgaykgbm9leGNlcHQ6CisrY2RlZiBweV9i aW5vbWlhbChuLCBrKToKKyAgICAgIyBLZWVwIHRyYWNrIG9mIHRoZSBzaWduIHdlIHNob3VsZCB1 c2UuCisgICAgIGNkZWYgYmludCBzaWduCisgICAgIGlmIG4gPCAwOgorQEAgLTk0OSw3ICs5NDks NyBAQCBkZWYgdGVzdF9iaW5vbWlhbChuLCBrKToKKyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworICMgR0NECisgIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKKy1jZGVmIHB5X2djZChuLCBrKSBub2V4Y2VwdDoKKytjZGVmIHB5X2djZChuLCBrKToKKyAg ICAgaWYgaXNpbnN0YW5jZShuLCBJbnRlZ2VyKSBhbmQgaXNpbnN0YW5jZShrLCBJbnRlZ2VyKToK KyAgICAgICAgIGlmIG1wel9jbXBfc2koKDxJbnRlZ2VyPm4pLnZhbHVlLCAxKSA9PSAwOgorICAg ICAgICAgICAgIHJldHVybiBuCitAQCAtOTY5LDcgKzk2OSw3IEBAIGNkZWYgcHlfZ2NkKG4sIGsp IG5vZXhjZXB0OgorICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgIyBMQ00KKyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworLWNkZWYgcHlfbGNtKG4s IGspIG5vZXhjZXB0OgorK2NkZWYgcHlfbGNtKG4sIGspOgorICAgICBpZiBpc2luc3RhbmNlKG4s IEludGVnZXIpIGFuZCBpc2luc3RhbmNlKGssIEludGVnZXIpOgorICAgICAgICAgaWYgbXB6X2Nt cF9zaSgoPEludGVnZXI+bikudmFsdWUsIDEpID09IDA6CisgICAgICAgICAgICAgcmV0dXJuIGsK K0BAIC05ODcsNyArOTg3LDcgQEAgY2RlZiBweV9sY20obiwgaykgbm9leGNlcHQ6CisgIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKKyAjIFJlYWwgUGFydAorICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCistY2RlZiBweV9yZWFsKHgpIG5vZXhjZXB0Ogor K2NkZWYgcHlfcmVhbCh4KToKKyAgICAgIiIiCisgICAgIFJldHVybnMgdGhlIHJlYWwgcGFydCBv ZiB4LgorIAorQEAgLTEwNDYsNyArMTA0Niw3IEBAIGRlZiBweV9yZWFsX2Zvcl9kb2N0ZXN0cyh4 KToKKyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworICMgSW1hZ2luYXJ5IFBhcnQKKyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworLWNkZWYgcHlfaW1h Zyh4KSBub2V4Y2VwdDoKKytjZGVmIHB5X2ltYWcoeCk6CisgICAgICIiIgorICAgICBSZXR1cm4g dGhlIGltYWdpbmFyeSBwYXJ0IG9mIHguCisgCitAQCAtMTEwMyw3ICsxMTAzLDcgQEAgZGVmIHB5 X2ltYWdfZm9yX2RvY3Rlc3RzKHgpOgorICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgIyBDb25qdWdhdGUKKyAjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworLWNkZWYgcHlfY29uanVnYXRlKHgpIG5vZXhjZXB0OgorK2NkZWYgcHlfY29uanVnYXRlKHgp OgorICAgICB0cnk6CisgICAgICAgICByZXR1cm4geC5jb25qdWdhdGUoKQorICAgICBleGNlcHQg QXR0cmlidXRlRXJyb3I6CitAQCAtMTI1MCw3ICsxMjUwLDcgQEAgY2RlZiBiaW50IHB5X2lzX2V4 YWN0KHgpIG5vZXhjZXB0OgorICAgICByZXR1cm4gaXNpbnN0YW5jZShQLCBTeW1ib2xpY1Jpbmcp IG9yIFAuaXNfZXhhY3QoKQorIAorIAorLWNkZWYgcHlfbnVtZXIobikgbm9leGNlcHQ6CisrY2Rl ZiBweV9udW1lcihuKToKKyAgICAgIiIiCisgICAgIFJldHVybiB0aGUgbnVtZXJhdG9yIG9mIHRo ZSBnaXZlbiBvYmplY3QuIFRoaXMgaXMgY2FsbGVkIGZvcgorICAgICB0eXBlc2V0dGluZyBjb2Vm ZmljaWVudHMuCitAQCAtMTI5OCw3ICsxMjk4LDcgQEAgZGVmIHB5X251bWVyX2Zvcl9kb2N0ZXN0 cyhuKToKKyAgICAgIiIiCisgICAgIHJldHVybiBweV9udW1lcihuKQorIAorLWNkZWYgcHlfZGVu b20obikgbm9leGNlcHQ6CisrY2RlZiBweV9kZW5vbShuKToKKyAgICAgIiIiCisgICAgIFJldHVy biB0aGUgZGVub21pbmF0b3Igb2YgdGhlIGdpdmVuIG9iamVjdC4gVGhpcyBpcyBjYWxsZWQgZm9y CisgICAgIHR5cGVzZXR0aW5nIGNvZWZmaWNpZW50cy4KK0BAIC0xMzU3LDcgKzEzNTcsNyBAQCBk ZWYgcHlfaXNfY2ludGVnZXJfZm9yX2RvY3Rlc3QoeCk6CisgICAgICIiIgorICAgICByZXR1cm4g cHlfaXNfY2ludGVnZXIoeCkKKyAKKy1jZGVmIHB5X2Zsb2F0KG4sIFB5T2JqZWN0KiBrd2RzKSBu b2V4Y2VwdDoKKytjZGVmIHB5X2Zsb2F0KG4sIFB5T2JqZWN0KiBrd2RzKToKKyAgICAgIiIiCisg ICAgIEV2YWx1YXRlIHB5bmFjIG51bWVyaWMgb2JqZWN0cyBudW1lcmljYWxseS4KKyAKK0BAIC0x NDE2LDcgKzE0MTYsNyBAQCBkZWYgcHlfZmxvYXRfZm9yX2RvY3Rlc3RzKG4sIGt3ZHMpOgorICAg ICByZXR1cm4gcHlfZmxvYXQobiwgPFB5T2JqZWN0Kj5rd2RzKQorIAorIAorLWNkZWYgcHlfUkRG X2Zyb21fZG91YmxlKGRvdWJsZSB4KSBub2V4Y2VwdDoKKytjZGVmIHB5X1JERl9mcm9tX2RvdWJs ZShkb3VibGUgeCk6CisgICAgIGNkZWYgUmVhbERvdWJsZUVsZW1lbnQgciA9IFJlYWxEb3VibGVF bGVtZW50Ll9fbmV3X18oUmVhbERvdWJsZUVsZW1lbnQpCisgICAgIHIuX3ZhbHVlID0geAorICAg ICByZXR1cm4gcgorQEAgLTE0MjQsNyArMTQyNCw3IEBAIGNkZWYgcHlfUkRGX2Zyb21fZG91Ymxl KGRvdWJsZSB4KSBub2V4Y2VwdDoKKyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworICMgU1BFQ0lBTCBGVU5DVElPTlMKKyAj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIworLWNkZWYgcHlfdGdhbW1hKHgpIG5vZXhjZXB0OgorK2NkZWYgcHlfdGdhbW1hKHgp OgorICAgICAiIiIKKyAgICAgVGhlIGdhbW1hIGZ1bmN0aW9uIGV4cG9ydGVkIHRvIHB5bmFjLgor IAorQEAgLTE0NjksNyArMTQ2OSw3IEBAIGRlZiBweV90Z2FtbWFfZm9yX2RvY3Rlc3RzKHgpOgor ICAgICAiIiIKKyAgICAgcmV0dXJuIHB5X3RnYW1tYSh4KQorIAorLWNkZWYgcHlfZmFjdG9yaWFs KHgpIG5vZXhjZXB0OgorK2NkZWYgcHlfZmFjdG9yaWFsKHgpOgorICAgICAiIiIKKyAgICAgVGhl IGZhY3RvcmlhbCBmdW5jdGlvbiBleHBvcnRlZCB0byBweW5hYy4KKyAKK0BAIC0xNTEwLDcgKzE1 MTAsNyBAQCBkZWYgcHlfZmFjdG9yaWFsX3B5KHgpOgorICAgICAiIiIKKyAgICAgcmV0dXJuIHB5 X2ZhY3RvcmlhbCh4KQorIAorLWNkZWYgcHlfZG91YmxlZmFjdG9yaWFsKHgpIG5vZXhjZXB0Ogor K2NkZWYgcHlfZG91YmxlZmFjdG9yaWFsKHgpOgorICAgICBuID0gSW50ZWdlcih4KQorICAgICBp ZiBuIDwgLTE6CisgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJhcmd1bWVudCBtdXN0IGJlID49 IC0xIikKK0BAIC0xNTQ2LDEwICsxNTQ2LDEwIEBAIGRlZiBkb3VibGVmYWN0b3JpYWwobik6Cisg ICAgIHJldHVybiBweV9kb3VibGVmYWN0b3JpYWwobikKKyAKKyAKKy1jZGVmIHB5X2ZpYm9uYWNj aShuKSBub2V4Y2VwdDoKKytjZGVmIHB5X2ZpYm9uYWNjaShuKToKKyAgICAgcmV0dXJuIEludGVn ZXIocGFyaShuKS5maWJvbmFjY2koKSkKKyAKKy1jZGVmIHB5X3N0ZXAobikgbm9leGNlcHQ6Cisr Y2RlZiBweV9zdGVwKG4pOgorICAgICAiIiIKKyAgICAgUmV0dXJuIHN0ZXAgZnVuY3Rpb24gb2Yg bi4KKyAgICAgIiIiCitAQCAtMTU2MCwxMCArMTU2MCwxMCBAQCBjZGVmIHB5X3N0ZXAobikgbm9l eGNlcHQ6CisgICAgICAgICByZXR1cm4gU1IoMSkKKyAgICAgcmV0dXJuIFNSKFJhdGlvbmFsKCgx LDIpKSkKKyAKKy1jZGVmIHB5X2Jlcm5vdWxsaSh4KSBub2V4Y2VwdDoKKytjZGVmIHB5X2Jlcm5v dWxsaSh4KToKKyAgICAgcmV0dXJuIGJlcm5vdWxsaSh4KQorIAorLWNkZWYgcHlfc2luKHgpIG5v ZXhjZXB0OgorK2NkZWYgcHlfc2luKHgpOgorICAgICAiIiIKKyAgICAgVEVTVFM6OgorIAorQEAg LTE1ODUsNyArMTU4NSw3IEBAIGNkZWYgcHlfc2luKHgpIG5vZXhjZXB0OgorICAgICBleGNlcHQg KFR5cGVFcnJvciwgVmFsdWVFcnJvcik6CisgICAgICAgICByZXR1cm4gQ0MoeCkuc2luKCkKKyAK Ky1jZGVmIHB5X2Nvcyh4KSBub2V4Y2VwdDoKKytjZGVmIHB5X2Nvcyh4KToKKyAgICAgIiIiCisg ICAgIFRFU1RTOjoKKyAKK0BAIC0xNjA3LDcgKzE2MDcsNyBAQCBjZGVmIHB5X2Nvcyh4KSBub2V4 Y2VwdDoKKyAgICAgZXhjZXB0IChUeXBlRXJyb3IsIFZhbHVlRXJyb3IpOgorICAgICAgICAgcmV0 dXJuIENDKHgpLmNvcygpCisgCistY2RlZiBweV9zdGllbHRqZXMoeCkgbm9leGNlcHQ6CisrY2Rl ZiBweV9zdGllbHRqZXMoeCk6CisgICAgICIiIgorICAgICBSZXR1cm4gdGhlIFN0aWVsdGplcyBj b25zdGFudCBvZiB0aGUgZ2l2ZW4gaW5kZXguCisgCitAQCAtMTY0OSw3ICsxNjQ5LDcgQEAgZGVm IHB5X3N0aWVsdGplc19mb3JfZG9jdGVzdHMoeCk6CisgICAgICIiIgorICAgICByZXR1cm4gcHlf c3RpZWx0amVzKHgpCisgCistY2RlZiBweV96ZXRhKHgpIG5vZXhjZXB0OgorK2NkZWYgcHlfemV0 YSh4KToKKyAgICAgIiIiCisgICAgIFJldHVybiB0aGUgdmFsdWUgb2YgdGhlIHpldGEgZnVuY3Rp b24gYXQgdGhlIGdpdmVuIHZhbHVlLgorIAorQEAgLTE2ODMsNyArMTY4Myw3IEBAIGRlZiBweV96 ZXRhX2Zvcl9kb2N0ZXN0cyh4KToKKyAgICAgIiIiCisgICAgIHJldHVybiBweV96ZXRhKHgpCisg CistY2RlZiBweV9leHAoeCkgbm9leGNlcHQ6CisrY2RlZiBweV9leHAoeCk6CisgICAgICIiIgor ICAgICBSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBleHAgZnVuY3Rpb24gYXQgdGhlIGdpdmVuIHZh bHVlLgorIAorQEAgLTE3MjQsNyArMTcyNCw3IEBAIGRlZiBweV9leHBfZm9yX2RvY3Rlc3RzKHgp OgorICAgICAiIiIKKyAgICAgcmV0dXJuIHB5X2V4cCh4KQorIAorLWNkZWYgcHlfbG9nKHgpIG5v ZXhjZXB0OgorK2NkZWYgcHlfbG9nKHgpOgorICAgICAiIiIKKyAgICAgUmV0dXJuIHRoZSB2YWx1 ZSBvZiB0aGUgbG9nIGZ1bmN0aW9uIGF0IHRoZSBnaXZlbiB2YWx1ZS4KKyAKK0BAIC0xNzkzLDcg KzE3OTMsNyBAQCBkZWYgcHlfbG9nX2Zvcl9kb2N0ZXN0cyh4KToKKyAgICAgIiIiCisgICAgIHJl dHVybiBweV9sb2coeCkKKyAKKy1jZGVmIHB5X3Rhbih4KSBub2V4Y2VwdDoKKytjZGVmIHB5X3Rh bih4KToKKyAgICAgdHJ5OgorICAgICAgICAgcmV0dXJuIHgudGFuKCkKKyAgICAgZXhjZXB0IEF0 dHJpYnV0ZUVycm9yOgorQEAgLTE4MDMsMjggKzE4MDMsMjggQEAgY2RlZiBweV90YW4oeCkgbm9l eGNlcHQ6CisgICAgIGV4Y2VwdCBUeXBlRXJyb3I6CisgICAgICAgICByZXR1cm4gQ0MoeCkudGFu KCkKKyAKKy1jZGVmIHB5X2FzaW4oeCkgbm9leGNlcHQ6CisrY2RlZiBweV9hc2luKHgpOgorICAg ICB0cnk6CisgICAgICAgICByZXR1cm4geC5hcmNzaW4oKQorICAgICBleGNlcHQgQXR0cmlidXRl RXJyb3I6CisgICAgICAgICByZXR1cm4gUlIoeCkuYXJjc2luKCkKKyAKKyAKKy1jZGVmIHB5X2Fj b3MoeCkgbm9leGNlcHQ6CisrY2RlZiBweV9hY29zKHgpOgorICAgICB0cnk6CisgICAgICAgICBy ZXR1cm4geC5hcmNjb3MoKQorICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICBy ZXR1cm4gUlIoeCkuYXJjY29zKCkKKyAKKyAKKy1jZGVmIHB5X2F0YW4oeCkgbm9leGNlcHQ6Cisr Y2RlZiBweV9hdGFuKHgpOgorICAgICB0cnk6CisgICAgICAgICByZXR1cm4geC5hcmN0YW4oKQor ICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICByZXR1cm4gUlIoeCkuYXJjdGFu KCkKKyAKKyAKKy1jZGVmIHB5X2F0YW4yKHgsIHkpIG5vZXhjZXB0OgorK2NkZWYgcHlfYXRhbjIo eCwgeSk6CisgICAgICIiIgorICAgICBSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSB0d28gYXJndW1l bnQgYXJjdGFuIGZ1bmN0aW9uIGF0IHRoZSBnaXZlbiB2YWx1ZXMuCisgCitAQCAtMTkwOSwxNCAr MTkwOSwxNCBAQCBkZWYgcHlfYXRhbjJfZm9yX2RvY3Rlc3RzKHgsIHkpOgorICAgICByZXR1cm4g cHlfYXRhbjIoeCwgeSkKKyAKKyAKKy1jZGVmIHB5X3NpbmgoeCkgbm9leGNlcHQ6CisrY2RlZiBw eV9zaW5oKHgpOgorICAgICB0cnk6CisgICAgICAgICByZXR1cm4geC5zaW5oKCkKKyAgICAgZXhj ZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgcmV0dXJuIFJSKHgpLnNpbmgoKQorIAorIAor LWNkZWYgcHlfY29zaCh4KSBub2V4Y2VwdDoKKytjZGVmIHB5X2Nvc2goeCk6CisgICAgIGlmIHR5 cGUoeCkgaXMgZmxvYXQ6CisgICAgICAgICByZXR1cm4gbWF0aC5jb3NoKFB5RmxvYXRfQVNfRE9V QkxFKHgpKQorICAgICB0cnk6CitAQCAtMTkyNSwxNCArMTkyNSwxNCBAQCBjZGVmIHB5X2Nvc2go eCkgbm9leGNlcHQ6CisgICAgICAgICByZXR1cm4gUlIoeCkuY29zaCgpCisgCisgCistY2RlZiBw eV90YW5oKHgpIG5vZXhjZXB0OgorK2NkZWYgcHlfdGFuaCh4KToKKyAgICAgdHJ5OgorICAgICAg ICAgcmV0dXJuIHgudGFuaCgpCisgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAg IHJldHVybiBSUih4KS50YW5oKCkKKyAKKyAKKy1jZGVmIHB5X2FzaW5oKHgpIG5vZXhjZXB0Ogor K2NkZWYgcHlfYXNpbmgoeCk6CisgICAgIHRyeToKKyAgICAgICAgIHJldHVybiB4LmFyY3Npbmgo KQorICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CitAQCAtMTk0Myw3ICsxOTQzLDcgQEAgY2Rl ZiBweV9hc2luaCh4KSBub2V4Y2VwdDoKKyAgICAgICAgIHJldHVybiBDQyh4KS5hcmNzaW5oKCkK KyAKKyAKKy1jZGVmIHB5X2Fjb3NoKHgpIG5vZXhjZXB0OgorK2NkZWYgcHlfYWNvc2goeCk6Cisg ICAgIHRyeToKKyAgICAgICAgIHJldHVybiB4LmFyY2Nvc2goKQorICAgICBleGNlcHQgQXR0cmli dXRlRXJyb3I6CitAQCAtMTk1NCw3ICsxOTU0LDcgQEAgY2RlZiBweV9hY29zaCh4KSBub2V4Y2Vw dDoKKyAgICAgICAgIHJldHVybiBDQyh4KS5hcmNjb3NoKCkKKyAKKyAKKy1jZGVmIHB5X2F0YW5o KHgpIG5vZXhjZXB0OgorK2NkZWYgcHlfYXRhbmgoeCk6CisgICAgIHRyeToKKyAgICAgICAgIHJl dHVybiB4LmFyY3RhbmgoKQorICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CitAQCAtMTk2NSw3 ICsxOTY1LDcgQEAgY2RlZiBweV9hdGFuaCh4KSBub2V4Y2VwdDoKKyAgICAgICAgIHJldHVybiBD Qyh4KS5hcmN0YW5oKCkKKyAKKyAKKy1jZGVmIHB5X2xnYW1tYSh4KSBub2V4Y2VwdDoKKytjZGVm IHB5X2xnYW1tYSh4KToKKyAgICAgIiIiCisgICAgIFJldHVybiB0aGUgdmFsdWUgb2YgdGhlIHBy aW5jaXBhbCBicmFuY2ggb2YgdGhlIGxvZyBnYW1tYSBmdW5jdGlvbiBhdCB0aGUKKyAgICAgZ2l2 ZW4gdmFsdWUuCitAQCAtMjAxMiwxMSArMjAxMiwxMSBAQCBkZWYgcHlfbGdhbW1hX2Zvcl9kb2N0 ZXN0cyh4KToKKyAgICAgcmV0dXJuIHB5X2xnYW1tYSh4KQorIAorIAorLWNkZWYgcHlfaXNxcnQo eCkgbm9leGNlcHQ6CisrY2RlZiBweV9pc3FydCh4KToKKyAgICAgcmV0dXJuIEludGVnZXIoeCku aXNxcnQoKQorIAorIAorLWNkZWYgcHlfc3FydCh4KSBub2V4Y2VwdDoKKytjZGVmIHB5X3NxcnQo eCk6CisgICAgIHRyeToKKyAgICAgICAgICMgV09SUlk6IFdoYXQgaWYgSW50ZWdlcidzIHNxcnQg Y2FsbHMgc3ltYm9saWMgb25lIGFuZCB3ZSBnbyBpbiBjaXJjbGU/CisgICAgICAgICByZXR1cm4g eC5zcXJ0KCkKK0BAIC0yMDI0LDExICsyMDI0LDExIEBAIGNkZWYgcHlfc3FydCh4KSBub2V4Y2Vw dDoKKyAgICAgICAgIHJldHVybiBtYXRoLnNxcnQoZmxvYXQoeCkpCisgCisgCistY2RlZiBweV9h YnMoeCkgbm9leGNlcHQ6CisrY2RlZiBweV9hYnMoeCk6CisgICAgIHJldHVybiBhYnMoeCkKKyAK KyAKKy1jZGVmIHB5X21vZCh4LCBuKSBub2V4Y2VwdDoKKytjZGVmIHB5X21vZCh4LCBuKToKKyAg ICAgIiIiCisgICAgIFJldHVybiB4IG1vZCBuLiBCb3RoIHggYW5kIG4gYXJlIGFzc3VtZWQgdG8g YmUgaW50ZWdlcnMuCisgCitAQCAtMjA3Niw3ICsyMDc2LDcgQEAgZGVmIHB5X21vZF9mb3JfZG9j dGVzdHMoeCwgbik6CisgICAgIHJldHVybiBweV9tb2QoeCwgbikKKyAKKyAKKy1jZGVmIHB5X3Nt b2QoYSwgYikgbm9leGNlcHQ6CisrY2RlZiBweV9zbW9kKGEsIGIpOgorICAgICAjIE1vZHVsdXMg KGluIHN5bW1ldHJpYyByZXByZXNlbnRhdGlvbikuCisgICAgICMgRXF1aXZhbGVudCB0byBNYXBs ZSdzIG1vZHMuCisgICAgICMgcmV0dXJucyBhIG1vZCBiIGluIHRoZSByYW5nZSBbLWlxdW8oYWJz KGIpLTEsMiksIGlxdW8oYWJzKGIpLDIpXQorQEAgLTIwODksMTUgKzIwODksMTUgQEAgY2RlZiBw eV9zbW9kKGEsIGIpIG5vZXhjZXB0OgorICAgICByZXR1cm4gYworIAorIAorLWNkZWYgcHlfaXJl bSh4LCBuKSBub2V4Y2VwdDoKKytjZGVmIHB5X2lyZW0oeCwgbik6CisgICAgIHJldHVybiBJbnRl Z2VyKHgpICUgSW50ZWdlcihuKQorIAorIAorLWNkZWYgcHlfaXF1byh4LCBuKSBub2V4Y2VwdDoK KytjZGVmIHB5X2lxdW8oeCwgbik6CisgICAgIHJldHVybiBJbnRlZ2VyKHgpLy9JbnRlZ2VyKG4p CisgCisgCistY2RlZiBweV9pcXVvMih4LCBuKSBub2V4Y2VwdDoKKytjZGVmIHB5X2lxdW8yKHgs IG4pOgorICAgICB4ID0gSW50ZWdlcih4KQorICAgICBuID0gSW50ZWdlcihuKQorICAgICB0cnk6 CitAQCAtMjExNSw3ICsyMTE1LDcgQEAgY2RlZiBpbnQgcHlfaW50X2xlbmd0aCh4KSBleGNlcHQg LTE6CisgICAgIHJldHVybiBJbnRlZ2VyKHgpLm5iaXRzKCkKKyAKKyAKKy1jZGVmIHB5X2xpKHgs IG4sIHBhcmVudCkgbm9leGNlcHQ6CisrY2RlZiBweV9saSh4LCBuLCBwYXJlbnQpOgorICAgICAi IiIKKyAgICAgUmV0dXJucyBhIG51bWVyaWNhbCBhcHByb3hpbWF0aW9uIG9mIHBvbHlsb2cobiwg eCkgd2l0aCBwcmVjaXNpb24gZ2l2ZW4KKyAgICAgYnkgdGhlIGBgcGFyZW50YGAgYXJndW1lbnQu CitAQCAtMjE1Miw3ICsyMTUyLDcgQEAgZGVmIHB5X2xpX2Zvcl9kb2N0ZXN0cyh4LCBuLCBwYXJl bnQpOgorICAgICByZXR1cm4gcHlfbGkoeCwgbiwgcGFyZW50KQorIAorIAorLWNkZWYgcHlfcHNp KHgpIG5vZXhjZXB0OgorK2NkZWYgcHlfcHNpKHgpOgorICAgICAiIiIKKyAgICAgRVhBTVBMRVM6 OgorIAorQEAgLTIxODcsNyArMjE4Nyw3IEBAIGRlZiBweV9wc2lfZm9yX2RvY3Rlc3RzKHgpOgor ICAgICAiIiIKKyAgICAgcmV0dXJuIHB5X3BzaSh4KQorIAorLWNkZWYgcHlfcHNpMihuLCB4KSBu b2V4Y2VwdDoKKytjZGVmIHB5X3BzaTIobiwgeCk6CisgICAgICIiIgorICAgICBFWEFNUExFUzo6 CisgCitAQCAtMjIxNSw3ICsyMjE1LDcgQEAgZGVmIHB5X3BzaTJfZm9yX2RvY3Rlc3RzKG4sIHgp OgorICAgICAiIiIKKyAgICAgcmV0dXJuIHB5X3BzaTIobiwgeCkKKyAKKy1jZGVmIHB5X2xpMih4 KSBub2V4Y2VwdDoKKytjZGVmIHB5X2xpMih4KToKKyAgICAgIiIiCisgICAgIEVYQU1QTEVTOjoK KyAKK0BAIC0yMjY0LDEyICsyMjY0LDEyIEBAIGNkZWYgR0NvbnN0YW50IHB5X2dldF9jb25zdGFu dChjb25zdCBjaGFyKiBuYW1lKSBub2V4Y2VwdDoKKyAgICAgICAgIHBjID0gYy5fcHluYWMKKyAg ICAgICAgIHJldHVybiBwYy5wb2ludGVyWzBdCisgCistY2RlZiBweV9ldmFsX2NvbnN0YW50KHVu c2lnbmVkIHNlcmlhbCwga3dkcykgbm9leGNlcHQ6CisrY2RlZiBweV9ldmFsX2NvbnN0YW50KHVu c2lnbmVkIHNlcmlhbCwga3dkcyk6CisgICAgIGZyb20gc2FnZS5zeW1ib2xpYy5jb25zdGFudHMg aW1wb3J0IGNvbnN0YW50c190YWJsZQorICAgICBjb25zdGFudCA9IGNvbnN0YW50c190YWJsZVtz ZXJpYWxdCisgICAgIHJldHVybiBrd2RzWydwYXJlbnQnXShjb25zdGFudCkKKyAKKy1jZGVmIHB5 X2V2YWxfdW5zaWduZWRfaW5maW5pdHkoKSBub2V4Y2VwdDoKKytjZGVmIHB5X2V2YWxfdW5zaWdu ZWRfaW5maW5pdHkoKToKKyAgICAgIiIiCisgICAgIFJldHVybnMgdW5zaWduZWRfaW5maW5pdHku CisgICAgICIiIgorQEAgLTIyODgsNyArMjI4OCw3IEBAIGRlZiBweV9ldmFsX3Vuc2lnbmVkX2lu ZmluaXR5X2Zvcl9kb2N0ZXN0cygpOgorICAgICAiIiIKKyAgICAgcmV0dXJuIHB5X2V2YWxfdW5z aWduZWRfaW5maW5pdHkoKQorIAorLWNkZWYgcHlfZXZhbF9pbmZpbml0eSgpIG5vZXhjZXB0Ogor K2NkZWYgcHlfZXZhbF9pbmZpbml0eSgpOgorICAgICAiIiIKKyAgICAgUmV0dXJucyBwb3NpdGl2 ZSBpbmZpbml0eSwgaS5lLiwgb28uCisgICAgICIiIgorQEAgLTIzMDcsNyArMjMwNyw3IEBAIGRl ZiBweV9ldmFsX2luZmluaXR5X2Zvcl9kb2N0ZXN0cygpOgorICAgICAiIiIKKyAgICAgcmV0dXJu IHB5X2V2YWxfaW5maW5pdHkoKQorIAorLWNkZWYgcHlfZXZhbF9uZWdfaW5maW5pdHkoKSBub2V4 Y2VwdDoKKytjZGVmIHB5X2V2YWxfbmVnX2luZmluaXR5KCk6CisgICAgICIiIgorICAgICBSZXR1 cm5zIG1pbnVzX2luZmluaXR5LgorICAgICAiIiIKK0BAIC0yMzMwLDE4ICsyMzMwLDE4IEBAIGRl ZiBweV9ldmFsX25lZ19pbmZpbml0eV9mb3JfZG9jdGVzdHMoKToKKyAjIENvbnN0cnVjdG9ycwor ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworIAorLWNkZWYgcHlfaW50ZWdlcl9mcm9tX2xvbmcobG9uZyB4KSBub2V4Y2Vw dDoKKytjZGVmIHB5X2ludGVnZXJfZnJvbV9sb25nKGxvbmcgeCk6CisgICAgIHJldHVybiBzbWFs bEludGVnZXIoeCkKKyAKKy1jZGVmIHB5X2ludGVnZXJfZnJvbV9weXRob25fb2JqKHgpIG5vZXhj ZXB0OgorK2NkZWYgcHlfaW50ZWdlcl9mcm9tX3B5dGhvbl9vYmooeCk6CisgICAgIHJldHVybiBJ bnRlZ2VyKHgpCisgCistY2RlZiBweV9pbnRlZ2VyX2Zyb21fbXB6KG1wel90IGJpZ2ludCkgbm9l eGNlcHQ6CisrY2RlZiBweV9pbnRlZ2VyX2Zyb21fbXB6KG1wel90IGJpZ2ludCk6CisgICAgIGNk ZWYgSW50ZWdlciB6ID0gUFlfTkVXKEludGVnZXIpCisgICAgIG1wel9zZXQoei52YWx1ZSwgYmln aW50KQorICAgICByZXR1cm4gegorIAorLWNkZWYgcHlfcmF0aW9uYWxfZnJvbV9tcHEobXBxX3Qg YmlncmF0KSBub2V4Y2VwdDoKKytjZGVmIHB5X3JhdGlvbmFsX2Zyb21fbXBxKG1wcV90IGJpZ3Jh dCk6CisgICAgIGNkZWYgUmF0aW9uYWwgcmF0ID0gUmF0aW9uYWwuX19uZXdfXyhSYXRpb25hbCkK KyAgICAgbXBxX3NldChyYXQudmFsdWUsIGJpZ3JhdCkKKyAgICAgbXBxX2Nhbm9uaWNhbGl6ZShy YXQudmFsdWUpCitkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvc3ltYm9saWMvcmluZy5weXggYi9zcmMv c2FnZS9zeW1ib2xpYy9yaW5nLnB5eAoraW5kZXggZWY4YTY5MDcxNGQuLjZlMTU0YTYwZmQ5IDEw MDY0NAorLS0tIGEvc3JjL3NhZ2Uvc3ltYm9saWMvcmluZy5weXgKKysrKyBiL3NyYy9zYWdlL3N5 bWJvbGljL3JpbmcucHl4CitAQCAtMTIyLDcgKzEyMiw3IEBAIGNkZWYgY2xhc3MgU3ltYm9saWNS aW5nKHNhZ2UucmluZ3MuYWJjLlN5bWJvbGljUmluZyk6CisgICAgICAgICAiIiIKKyAgICAgICAg IHJldHVybiByJ1x0ZXh0e1NSfScKKyAKKy0gICAgY3BkZWYgX2NvZXJjZV9tYXBfZnJvbV8oc2Vs ZiwgUikgbm9leGNlcHQ6CisrICAgIGNwZGVmIF9jb2VyY2VfbWFwX2Zyb21fKHNlbGYsIFIpOgor ICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzo6CisgCitAQCAtMTIyMSw3ICsxMjIxLDcg QEAgY2RlZiBjbGFzcyBOdW1weVRvU1JNb3JwaGlzbShNb3JwaGlzbSk6CisgICAgICAgICBlbHNl OgorICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigie30gaXMgbm90IGEgbnVtcHkgbnVtYmVy IHR5cGUiLmZvcm1hdChudW1weV90eXBlKSkKKyAKKy0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8o c2VsZiwgYSkgbm9leGNlcHQ6CisrICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIGEpOgor ICAgICAgICAgIiIiCisgICAgICAgICBFWEFNUExFUzoKKyAKK0BAIC0xMjY4LDcgKzEyNjgsNyBA QCBjZGVmIGNsYXNzIFVuZGVyc2NvcmVTYWdlTW9ycGhpc20oTW9ycGhpc20pOgorICAgICAgICAg ZnJvbSBzYWdlLmludGVyZmFjZXMuc3ltcHkgaW1wb3J0IHN5bXB5X2luaXQKKyAgICAgICAgIHN5 bXB5X2luaXQoKQorIAorLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCBhKSBub2V4Y2Vw dDoKKysgICAgY3BkZWYgRWxlbWVudCBfY2FsbF8oc2VsZiwgYSk6CisgICAgICAgICAiIiIKKyAg ICAgICAgIEVYQU1QTEVTOgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3N5bWJvbGljL3N1YnN0 aXR1dGlvbl9tYXBfaW1wbC5weGkgYi9zcmMvc2FnZS9zeW1ib2xpYy9zdWJzdGl0dXRpb25fbWFw X2ltcGwucHhpCitpbmRleCBjMWRjM2JlNzQ4Yi4uZWE2MGU4OTlkMWEgMTAwNjQ0CistLS0gYS9z cmMvc2FnZS9zeW1ib2xpYy9zdWJzdGl0dXRpb25fbWFwX2ltcGwucHhpCisrKysgYi9zcmMvc2Fn ZS9zeW1ib2xpYy9zdWJzdGl0dXRpb25fbWFwX2ltcGwucHhpCitAQCAtMjQsNyArMjQsNyBAQCBj ZGVmIGNsYXNzIFN1YnN0aXR1dGlvbk1hcChTYWdlT2JqZWN0KToKKyAKKyAgICAgY2RlZiBHRXhN YXAgX2dtYXBvYmoKKyAKKy0gICAgY3BkZWYgRXhwcmVzc2lvbiBhcHBseV90byhzZWxmLCBFeHBy ZXNzaW9uIGV4cHIsIHVuc2lnbmVkIG9wdGlvbnMpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBFeHBy ZXNzaW9uIGFwcGx5X3RvKHNlbGYsIEV4cHJlc3Npb24gZXhwciwgdW5zaWduZWQgb3B0aW9ucyk6 CisgICAgICAgICAiIiIKKyAgICAgICAgIEFwcGx5IHRoZSBzdWJzdGl0dXRpb24gdG8gYSBzeW1i b2xpYyBleHByZXNzaW9uCisgCitAQCAtNTEsNyArNTEsNyBAQCBjZGVmIGNsYXNzIFN1YnN0aXR1 dGlvbk1hcChTYWdlT2JqZWN0KToKKyAgICAgICAgIHJldHVybiAnU3Vic01hcCcgICMgR0V4X3Rv X3N0cigmeC5fZ29iaikKKyAKKyAKKy1jZGVmIFN1YnN0aXR1dGlvbk1hcCBuZXdfU3Vic3RpdHV0 aW9uTWFwX2Zyb21fR0V4TWFwKGNvbnN0IEdFeE1hcCYgc21hcCkgbm9leGNlcHQ6CisrY2RlZiBT dWJzdGl0dXRpb25NYXAgbmV3X1N1YnN0aXR1dGlvbk1hcF9mcm9tX0dFeE1hcChjb25zdCBHRXhN YXAmIHNtYXApOgorICAgICAiIiIKKyAgICAgV3JhcCBhIFB5bmFjIG9iamVjdCBpbnRvIGEgUHl0 aG9uIG9iamVjdAorIAorQEAgLTc1LDcgKzc1LDcgQEAgY2RlZiBTdWJzdGl0dXRpb25NYXAgbmV3 X1N1YnN0aXR1dGlvbk1hcF9mcm9tX0dFeE1hcChjb25zdCBHRXhNYXAmIHNtYXApIG5vZXhjZXAK KyAgICAgcmV0dXJuIHJlc3VsdAorIAorIAorLWNwZGVmIFN1YnN0aXR1dGlvbk1hcCBtYWtlX21h cChzdWJzX2RpY3QpIG5vZXhjZXB0OgorK2NwZGVmIFN1YnN0aXR1dGlvbk1hcCBtYWtlX21hcChz dWJzX2RpY3QpOgorICAgICAiIiIKKyAgICAgQ29uc3RydWN0IGEgbmV3IHN1YnN0aXR1dGlvbiBt YXAKKyAKK2RpZmYgLS1naXQgYS9zcmMvc2FnZS90ZXN0cy9zdGxfdmVjdG9yLnB5eCBiL3NyYy9z YWdlL3Rlc3RzL3N0bF92ZWN0b3IucHl4CitpbmRleCAyYTdjMWJmNWQwNS4uZjNiMjliMzBkZmUg MTAwNjQ0CistLS0gYS9zcmMvc2FnZS90ZXN0cy9zdGxfdmVjdG9yLnB5eAorKysrIGIvc3JjL3Nh Z2UvdGVzdHMvc3RsX3ZlY3Rvci5weXgKK0BAIC0xMTUsNyArMTE1LDcgQEAgY2RlZiBjbGFzcyBz dGxfaW50X3ZlY3RvcihTYWdlT2JqZWN0KToKKyAgICAgICAgICAgICBzICs9ICcgZGF0YVsnICsg c3RyKGkpICsgJ10gPSAnICsgc3RyKHNlbGYuZGF0YS5hdChpKSkgKyAnXG4nCisgICAgICAgICBy ZXR1cm4gcy5zdHJpcCgpCisgCistICAgIGNwZGVmIHN1bShzZWxmKSBub2V4Y2VwdDoKKysgICAg Y3BkZWYgc3VtKHNlbGYpOgorICAgICAgICAgIiIiCisgICAgICAgICBBZGQgdGhlIGVsZW1lbnRz LgorIAorZGlmZiAtLWdpdCBhL3NyYy9zYWdlX3NldHVwL2F1dG9nZW4vaW50ZXJwcmV0ZXJzL3Nw ZWNzL2NkZi5weSBiL3NyYy9zYWdlX3NldHVwL2F1dG9nZW4vaW50ZXJwcmV0ZXJzL3NwZWNzL2Nk Zi5weQoraW5kZXggZTg1YTlmYmU4MDIuLmM5ZWEyNThlMjIxIDEwMDY0NAorLS0tIGEvc3JjL3Nh Z2Vfc2V0dXAvYXV0b2dlbi9pbnRlcnByZXRlcnMvc3BlY3MvY2RmLnB5CisrKysgYi9zcmMvc2Fn ZV9zZXR1cC9hdXRvZ2VuL2ludGVycHJldGVycy9zcGVjcy9jZGYucHkKK0BAIC0xNjgsNyArMTY4 LDcgQEAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICAgICAgICAgICBjZGVmIGRvdWJsZSBj aW1hZyhkb3VibGVfY29tcGxleCkKKyAgICAgICAgICAgICAgICAgY2RlZiBkb3VibGVfY29tcGxl eCBfQ29tcGxleF9JCisgCistICAgICAgICAgICAgY2RlZiBpbmxpbmUgZG91YmxlX2NvbXBsZXgg Q0RFX3RvX2R6KHp6KToKKysgICAgICAgICAgICBjZGVmIGlubGluZSBkb3VibGVfY29tcGxleCBD REVfdG9fZHooenopIG5vZXhjZXB0OgorICAgICAgICAgICAgICAgICBjZGVmIENvbXBsZXhEb3Vi bGVFbGVtZW50IHogPSA8Q29tcGxleERvdWJsZUVsZW1lbnQ+KHp6IGlmIGlzaW5zdGFuY2Uoenos IENvbXBsZXhEb3VibGVFbGVtZW50KSBlbHNlIENERih6eikpCisgICAgICAgICAgICAgICAgIHJl dHVybiBHU0xfUkVBTCh6Ll9jb21wbGV4KSArIF9Db21wbGV4X0kgKiBHU0xfSU1BRyh6Ll9jb21w bGV4KQorIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9zYWdlbWF0aC9wYXRjaGVzLzM3NDkyLXNpbmd1 bGFyXzQuMy4ycDE2LnBhdGNoIGIvc3JjcGtncy9zYWdlbWF0aC9wYXRjaGVzLzM3NDkyLXNpbmd1 bGFyXzQuMy4ycDE2LnBhdGNoCmluZGV4IDY5MTNmMzliODY1ZWExLi5lMmE2Y2I0MGUwYjlkYyAx MDA2NDQKLS0tIGEvc3JjcGtncy9zYWdlbWF0aC9wYXRjaGVzLzM3NDkyLXNpbmd1bGFyXzQuMy4y cDE2LnBhdGNoCisrKyBiL3NyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hlcy8zNzQ5Mi1zaW5ndWxhcl80 LjMuMnAxNi5wYXRjaApAQCAtMTQ1LDIzICsxNDUsMjMgQEAgaW5kZXggZDk0M2ExMDE4YTIuLmYz OThkMjdhMWZhIDEwMDY0NAogIGZyb20gc2FnZS5saWJzLnNpbmd1bGFyLmZ1bmN0aW9uIGNpbXBv cnQgUmVzb2x1dGlvbgogIAogIGZyb20gc2FnZS5yaW5ncy5yYXRpb25hbCBjaW1wb3J0IFJhdGlv bmFsCi1AQCAtMjksNiArMjksNyBAQCBjZGVmIG9iamVjdCAgIHNpMnNhX1pabW9kKG51bWJlciAq biwgcmluZyAqX3JpbmcsIG9iamVjdCBiYXNlKSBub2V4Y2VwdAotIGNkZWYgb2JqZWN0ICAgc2ky c2FfTkYobnVtYmVyICpuLCByaW5nICpfcmluZywgb2JqZWN0IGJhc2UpIG5vZXhjZXB0CitAQCAt MjksNiArMjksNyBAQCBjZGVmIG9iamVjdCAgIHNpMnNhX1pabW9kKG51bWJlciAqbiwgcmluZyAq X3JpbmcsIG9iamVjdCBiYXNlKQorIGNkZWYgb2JqZWN0ICAgc2kyc2FfTkYobnVtYmVyICpuLCBy aW5nICpfcmluZywgb2JqZWN0IGJhc2UpCiAgCi0gY2RlZiBvYmplY3Qgc2kyc2FfaW50dmVjKGlu dHZlYyAqdikgbm9leGNlcHQKLStjZGVmIG9iamVjdCBzaTJzYV9iaWdpbnR2ZWMoYmlnaW50bWF0 ICp2KSBub2V4Y2VwdAorIGNkZWYgb2JqZWN0IHNpMnNhX2ludHZlYyhpbnR2ZWMgKnYpCisrY2Rl ZiBvYmplY3Qgc2kyc2FfYmlnaW50dmVjKGJpZ2ludG1hdCAqdikKICAKICAjIGRpc3BhdGNoZXMg dG8gYWxsIHRoZSBhYm92ZS4KLSBjZGVmIG9iamVjdCBzaTJzYShudW1iZXIgKm4sIHJpbmcgKl9y aW5nLCBvYmplY3QgYmFzZSkgbm9leGNlcHQKKyBjZGVmIG9iamVjdCBzaTJzYShudW1iZXIgKm4s IHJpbmcgKl9yaW5nLCBvYmplY3QgYmFzZSkKIGRpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL3Np bmd1bGFyL3Npbmd1bGFyLnB5eCBiL3NyYy9zYWdlL2xpYnMvc2luZ3VsYXIvc2luZ3VsYXIucHl4 CiBpbmRleCBjZjAxMjRlMGEzNS4uMGU1Yzc3NzRlODAgMTAwNjQ0CiAtLS0gYS9zcmMvc2FnZS9s aWJzL3Npbmd1bGFyL3Npbmd1bGFyLnB5eAogKysrIGIvc3JjL3NhZ2UvbGlicy9zaW5ndWxhci9z aW5ndWxhci5weXgKLUBAIC0xNjk5LDYgKzE2OTksMjUgQEAgY2RlZiBvYmplY3Qgc2kyc2FfaW50 dmVjKGludHZlYyAqdikgbm9leGNlcHQ6CitAQCAtMTY5OSw2ICsxNjk5LDI1IEBAIGNkZWYgb2Jq ZWN0IHNpMnNhX2ludHZlYyhpbnR2ZWMgKnYpOgogICAgICAgICAgbC5hcHBlbmQodi5nZXQocikp CiAgICAgIHJldHVybiB0dXBsZShsKQogIAotK2NkZWYgb2JqZWN0IHNpMnNhX2JpZ2ludHZlYyhi aWdpbnRtYXQgKnYpIG5vZXhjZXB0OgorK2NkZWYgb2JqZWN0IHNpMnNhX2JpZ2ludHZlYyhiaWdp bnRtYXQgKnYpOgogKyAgICByIiIiCiArICAgIGNyZWF0ZSBhIHNhZ2UgdHVwbGUgZnJvbSBhIHNp bmd1bGFyIHZlY3RvciBvZiBiaWcgaW50ZWdlcnMKICsKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc2Fn ZW1hdGgvcGF0Y2hlcy9nZXRfcGF0Y2hlcyBiL3NyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hlcy9nZXRf cGF0Y2hlcwppbmRleCA3N2FmZWFkM2ZjOTEzZC4uMWM3ZjdmZTMxNjk3ZDggMTAwNzU1Ci0tLSBh L3NyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hlcy9nZXRfcGF0Y2hlcworKysgYi9zcmNwa2dzL3NhZ2Vt YXRoL3BhdGNoZXMvZ2V0X3BhdGNoZXMKQEAgLTIxLDQgKzIxLDUgQEAgZ2V0X3ByKCkgewogY2Qg JChkaXJuYW1lICIkMCIpCiAKICMgbmVlZHMgcmV2aWV3CitnZXRfcHIgMDM3NjY3ICJmaXggbm9l eGNlcHQiCiBnZXRfcHIgMzc0OTIgInNpbmd1bGFyIDQuMy4ycDE2IgoKRnJvbSBkNWMxMmM1MzAw YTA0MGZmYWRiMzUxYmVhMzI1MjkyOTc0YTUzMTI2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiA9P1VURi04P3E/R29uemFsbz0yMFRvcm5hcj1DMz1BRGE/PSA8dG9ybmFyaWFAY21hdC5l ZHUudXk+CkRhdGU6IFdlZCwgMjcgTWFyIDIwMjQgMTI6NTY6MDEgLTAzMDAKU3ViamVjdDogW1BB VENIIDMvNF0gc2FnZW1hdGg6IHVwZGF0ZSB0byAxMC40LmJldGEwLgoKLS0tCiAuLi4vcGF0Y2hl cy8wMzc2NjctZml4X25vZXhjZXB0LnBhdGNoICAgICAgICAgfCAyMzMgKysrKysrKysrKy0tLS0t LS0tCiBzcmNwa2dzL3NhZ2VtYXRoL3BhdGNoZXMvZml4LWVjbS5wYXRjaCAgICAgICAgfCAgMTMg Kwogc3JjcGtncy9zYWdlbWF0aC9wYXRjaGVzL2ZpeC1sb2NrLnBhdGNoICAgICAgIHwgIDE1ICsr CiBzcmNwa2dzL3NhZ2VtYXRoL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0K IDQgZmlsZXMgY2hhbmdlZCwgMTU4IGluc2VydGlvbnMoKyksIDEwNyBkZWxldGlvbnMoLSkKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3NhZ2VtYXRoL3BhdGNoZXMvZml4LWVjbS5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hlcy9maXgtbG9jay5wYXRj aAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hlcy8wMzc2NjctZml4X25vZXhj ZXB0LnBhdGNoIGIvc3JjcGtncy9zYWdlbWF0aC9wYXRjaGVzLzAzNzY2Ny1maXhfbm9leGNlcHQu cGF0Y2gKaW5kZXggZmE1MDg2ZWQ2YmUyYTQuLjgwYjNjZjE5MTJjZTZjIDEwMDY0NAotLS0gYS9z cmNwa2dzL3NhZ2VtYXRoL3BhdGNoZXMvMDM3NjY3LWZpeF9ub2V4Y2VwdC5wYXRjaAorKysgYi9z cmNwa2dzL3NhZ2VtYXRoL3BhdGNoZXMvMDM3NjY3LWZpeF9ub2V4Y2VwdC5wYXRjaApAQCAtMTA3 Myw3ICsxMDczLDcgQEAgaW5kZXggMjI3Y2UyNTU5ZjkuLjM2NzdlYjI5NTg3IDEwMDY0NAogIGNk ZWYgY2xhc3MgR3JhZGVkTGllQnJhY2tldChMaWVCcmFja2V0KToKICAgICAgY2RlZiBwdWJsaWMg X2dyYWRlCiBkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvYWxnZWJyYXMvbGllX2FsZ2VicmFzL2xpZV9h bGdlYnJhX2VsZW1lbnQucHl4IGIvc3JjL3NhZ2UvYWxnZWJyYXMvbGllX2FsZ2VicmFzL2xpZV9h bGdlYnJhX2VsZW1lbnQucHl4Ci1pbmRleCBjYTUzNzUzMTUzYi4uOGM5NDc4ZDNlZjYgMTAwNjQ0 CitpbmRleCA5ZTQ2ZGEyOTVjNC4uNjM1YjMwYzQ5ZGEgMTAwNjQ0CiAtLS0gYS9zcmMvc2FnZS9h bGdlYnJhcy9saWVfYWxnZWJyYXMvbGllX2FsZ2VicmFfZWxlbWVudC5weXgKICsrKyBiL3NyYy9z YWdlL2FsZ2VicmFzL2xpZV9hbGdlYnJhcy9saWVfYWxnZWJyYV9lbGVtZW50LnB5eAogQEAgLTEy NCw3ICsxMjQsNyBAQCBjZGVmIGNsYXNzIExpZUFsZ2VicmFFbGVtZW50KEluZGV4ZWRGcmVlTW9k dWxlRWxlbWVudCk6CkBAIC0xMDg1LDcgKzEwODUsNyBAQCBpbmRleCBjYTUzNzUzMTUzYi4uOGM5 NDc4ZDNlZjYgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIExpZnQgYGBzZWxmYGAgdG8g dGhlIHVuaXZlcnNhbCBlbnZlbG9waW5nIGFsZ2VicmEuCiAgCi1AQCAtMjc1LDcgKzI3NSw3IEBA IGNkZWYgY2xhc3MgTGllQWxnZWJyYUVsZW1lbnRXcmFwcGVyKEVsZW1lbnRXcmFwcGVyKToKK0BA IC0yNzYsNyArMjc2LDcgQEAgY2RlZiBjbGFzcyBMaWVBbGdlYnJhRWxlbWVudFdyYXBwZXIoRWxl bWVudFdyYXBwZXIpOgogICAgICAgICAgIiIiCiAgICAgICAgICByZXR1cm4gYm9vbChzZWxmLnZh bHVlKQogIApAQCAtMTA5NCw3ICsxMDk0LDcgQEAgaW5kZXggY2E1Mzc1MzE1M2IuLjhjOTQ3OGQz ZWY2IDEwMDY0NAogICAgICAgICAgIiIiCiAgICAgICAgICBBZGQgYGBzZWxmYGAgYW5kIGBgcmhz YGAuCiAgCi1AQCAtMjg4LDcgKzI4OCw3IEBAIGNkZWYgY2xhc3MgTGllQWxnZWJyYUVsZW1lbnRX cmFwcGVyKEVsZW1lbnRXcmFwcGVyKToKK0BAIC0yODksNyArMjg5LDcgQEAgY2RlZiBjbGFzcyBM aWVBbGdlYnJhRWxlbWVudFdyYXBwZXIoRWxlbWVudFdyYXBwZXIpOgogICAgICAgICAgIiIiCiAg ICAgICAgICByZXR1cm4gdHlwZShzZWxmKShzZWxmLl9wYXJlbnQsIHNlbGYudmFsdWUgKyByaWdo dC52YWx1ZSkKICAKQEAgLTExMDMsNyArMTEwMyw3IEBAIGluZGV4IGNhNTM3NTMxNTNiLi44Yzk0 NzhkM2VmNiAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgU3VidHJhY3QgYGBzZWxmYGAg YW5kIGBgcmhzYGAuCiAgCi1AQCAtMzc2LDcgKzM3Niw3IEBAIGNkZWYgY2xhc3MgTGllQWxnZWJy YUVsZW1lbnRXcmFwcGVyKEVsZW1lbnRXcmFwcGVyKToKK0BAIC0zNzcsNyArMzc3LDcgQEAgY2Rl ZiBjbGFzcyBMaWVBbGdlYnJhRWxlbWVudFdyYXBwZXIoRWxlbWVudFdyYXBwZXIpOgogICAgICAg ICAgIiIiCiAgICAgICAgICByZXR1cm4gc2VsZiAqICh+eCkKICAKQEAgLTExMTIsNyArMTExMiw3 IEBAIGluZGV4IGNhNTM3NTMxNTNiLi44Yzk0NzhkM2VmNiAxMDA2NDQKICAgICAgICAgICIiIgog ICAgICAgICAgUmV0dXJuIHRoZSBhY3Rpb24gb2YgYSBzY2FsYXIgb24gYGBzZWxmYGAuCiAgCi1A QCAtNTcyLDcgKzU3Miw3IEBAIGNkZWYgY2xhc3MgTGllU3ViYWxnZWJyYUVsZW1lbnRXcmFwcGVy KExpZUFsZ2VicmFFbGVtZW50V3JhcHBlcik6CitAQCAtNTczLDcgKzU3Myw3IEBAIGNkZWYgY2xh c3MgTGllU3ViYWxnZWJyYUVsZW1lbnRXcmFwcGVyKExpZUFsZ2VicmFFbGVtZW50V3JhcHBlcik6 CiAgICAgICAgICAiIiIKICAgICAgICAgIHJldHVybiBzZWxmLl9wYXJlbnQubW9kdWxlKCkoc2Vs Zi52YWx1ZS50b192ZWN0b3Ioc3BhcnNlPXNwYXJzZSkpCiAgCkBAIC0xMTIxLDcgKzExMjEsNyBA QCBpbmRleCBjYTUzNzUzMTUzYi4uOGM5NDc4ZDNlZjYgMTAwNjQ0CiAgICAgICAgICByIiIiCiAg ICAgICAgICBSZXR1cm4gYSBkaWN0aW9uYXJ5IHdob3NlIGtleXMgYXJlIGluZGljZXMgb2YgYmFz aXMgZWxlbWVudHMKICAgICAgICAgIGluIHRoZSBzdXBwb3J0IG9mIGBgc2VsZmBgIGFuZCB3aG9z ZSB2YWx1ZXMgYXJlIHRoZQotQEAgLTYwNSw3ICs2MDUsNyBAQCBjZGVmIGNsYXNzIExpZVN1YmFs Z2VicmFFbGVtZW50V3JhcHBlcihMaWVBbGdlYnJhRWxlbWVudFdyYXBwZXIpOgorQEAgLTYwNiw3 ICs2MDYsNyBAQCBjZGVmIGNsYXNzIExpZVN1YmFsZ2VicmFFbGVtZW50V3JhcHBlcihMaWVBbGdl YnJhRWxlbWVudFdyYXBwZXIpOgogICAgICAgICAgICAgIHJldHVybiBkaWN0KHNlbGYuX21vbm9t aWFsX2NvZWZmaWNpZW50cykKICAgICAgICAgIHJldHVybiBzZWxmLl9tb25vbWlhbF9jb2VmZmlj aWVudHMKICAKQEAgLTExMzAsNyArMTEzMCw3IEBAIGluZGV4IGNhNTM3NTMxNTNiLi44Yzk0Nzhk M2VmNiAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgQWRkIGBgc2VsZmBgIGFuZCBgYHJo c2BgLgogIAotQEAgLTYzMSw3ICs2MzEsNyBAQCBjZGVmIGNsYXNzIExpZVN1YmFsZ2VicmFFbGVt ZW50V3JhcHBlcihMaWVBbGdlYnJhRWxlbWVudFdyYXBwZXIpOgorQEAgLTYzMiw3ICs2MzIsNyBA QCBjZGVmIGNsYXNzIExpZVN1YmFsZ2VicmFFbGVtZW50V3JhcHBlcihMaWVBbGdlYnJhRWxlbWVu dFdyYXBwZXIpOgogICAgICAgICAgICAgIHJldC5fbW9ub21pYWxfY29lZmZpY2llbnRzID0gbWMK ICAgICAgICAgIHJldHVybiByZXQKICAKQEAgLTExMzksNyArMTEzOSw3IEBAIGluZGV4IGNhNTM3 NTMxNTNiLi44Yzk0NzhkM2VmNiAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgU3VidHJh Y3QgYGBzZWxmYGAgYW5kIGBgcmhzYGAuCiAgCi1AQCAtNjU3LDcgKzY1Nyw3IEBAIGNkZWYgY2xh c3MgTGllU3ViYWxnZWJyYUVsZW1lbnRXcmFwcGVyKExpZUFsZ2VicmFFbGVtZW50V3JhcHBlcik6 CitAQCAtNjU4LDcgKzY1OCw3IEBAIGNkZWYgY2xhc3MgTGllU3ViYWxnZWJyYUVsZW1lbnRXcmFw cGVyKExpZUFsZ2VicmFFbGVtZW50V3JhcHBlcik6CiAgICAgICAgICAgICAgcmV0Ll9tb25vbWlh bF9jb2VmZmljaWVudHMgPSBtYwogICAgICAgICAgcmV0dXJuIHJldAogIApAQCAtMTE0OCw3ICsx MTQ4LDcgQEAgaW5kZXggY2E1Mzc1MzE1M2IuLjhjOTQ3OGQzZWY2IDEwMDY0NAogICAgICAgICAg IiIiCiAgICAgICAgICBSZXR1cm4gdGhlIGFjdGlvbiBvZiBhIHNjYWxhciBvbiBgYHNlbGZgYC4K ICAKLUBAIC03NTcsNyArNzU3LDcgQEAgY2RlZiBjbGFzcyBTdHJ1Y3R1cmVDb2VmZmljaWVudHNF bGVtZW50KExpZUFsZ2VicmFNYXRyaXhXcmFwcGVyKToKK0BAIC03NTgsNyArNzU4LDcgQEAgY2Rl ZiBjbGFzcyBTdHJ1Y3R1cmVDb2VmZmljaWVudHNFbGVtZW50KExpZUFsZ2VicmFNYXRyaXhXcmFw cGVyKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGFyX211 bHQ9J8K3JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaXBf b25lPVRydWUpKQogIApAQCAtMTE1Nyw3ICsxMTU3LDcgQEAgaW5kZXggY2E1Mzc1MzE1M2IuLjhj OTQ3OGQzZWY2IDEwMDY0NAogICAgICAgICAgIiIiCiAgICAgICAgICBSZXR1cm4gdGhlIExpZSBi cmFja2V0IGBgW3NlbGYsIHJpZ2h0XWBgLgogIAotQEAgLTc3Nyw3ICs3NzcsNyBAQCBjZGVmIGNs YXNzIFN0cnVjdHVyZUNvZWZmaWNpZW50c0VsZW1lbnQoTGllQWxnZWJyYU1hdHJpeFdyYXBwZXIp OgorQEAgLTc3OCw3ICs3NzgsNyBAQCBjZGVmIGNsYXNzIFN0cnVjdHVyZUNvZWZmaWNpZW50c0Vs ZW1lbnQoTGllQWxnZWJyYU1hdHJpeFdyYXBwZXIpOgogIAogICAgICAjIFdlIG5lZWQgdGhpcyBt ZXRob2QgYmVjYXVzZSB0aGUgTGllQWxnZWJyYS5icmFja2V0IG1ldGhvZCAoZnJvbSB0aGUKICAg ICAgIyAgIGNhdGVnb3J5KSBjYWxscyB0aGlzLCB3aGVyZSB3ZSBhcmUgZ3VhcmFudGVlZCB0byBo YXZlIHRoZSBzYW1lIHBhcmVudC4KQEAgLTExNjYsNyArMTE2Niw3IEBAIGluZGV4IGNhNTM3NTMx NTNiLi44Yzk0NzhkM2VmNiAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgUmV0dXJuIHRo ZSBMaWUgYnJhY2tldCBgYFtzZWxmLCByaWdodF1gYC4KICAKLUBAIC04MzIsNyArODMyLDcgQEAg Y2RlZiBjbGFzcyBTdHJ1Y3R1cmVDb2VmZmljaWVudHNFbGVtZW50KExpZUFsZ2VicmFNYXRyaXhX cmFwcGVyKToKK0BAIC04MzMsNyArODMzLDcgQEAgY2RlZiBjbGFzcyBTdHJ1Y3R1cmVDb2VmZmlj aWVudHNFbGVtZW50KExpZUFsZ2VicmFNYXRyaXhXcmFwcGVyKToKICAgICAgICAgICAgICBpZiB2 ICE9IHplcm86CiAgICAgICAgICAgICAgICAgIHlpZWxkIChJW2ldLCB2KQogIApAQCAtMTE3NSw3 ICsxMTc1LDcgQEAgaW5kZXggY2E1Mzc1MzE1M2IuLjhjOTQ3OGQzZWY2IDEwMDY0NAogICAgICAg ICAgIiIiCiAgICAgICAgICBSZXR1cm4gYGBzZWxmYGAgYXMgYSB2ZWN0b3IuCiAgCi1AQCAtODY1 LDcgKzg2NSw3IEBAIGNkZWYgY2xhc3MgU3RydWN0dXJlQ29lZmZpY2llbnRzRWxlbWVudChMaWVB bGdlYnJhTWF0cml4V3JhcHBlcik6CitAQCAtODY2LDcgKzg2Niw3IEBAIGNkZWYgY2xhc3MgU3Ry dWN0dXJlQ29lZmZpY2llbnRzRWxlbWVudChMaWVBbGdlYnJhTWF0cml4V3JhcHBlcik6CiAgICAg ICAgICBnZW5zID0gVUVBLmdlbnMoKQogICAgICAgICAgcmV0dXJuIFVFQS5zdW0oYyAqIGdlbnNb aV0gZm9yIGksIGMgaW4gc2VsZi52YWx1ZS5pdGVtcygpKQogIApAQCAtMTE4NCw3ICsxMTg0LDcg QEAgaW5kZXggY2E1Mzc1MzE1M2IuLjhjOTQ3OGQzZWY2IDEwMDY0NAogICAgICAgICAgIiIiCiAg ICAgICAgICBSZXR1cm4gdGhlIG1vbm9taWFsIGNvZWZmaWNpZW50cyBvZiBgYHNlbGZgYCBhcyBh IGRpY3Rpb25hcnkuCiAgCi1AQCAtMTA3Miw3ICsxMDcyLDcgQEAgY2RlZiBjbGFzcyBVbnR3aXN0 ZWRBZmZpbmVMaWVBbGdlYnJhRWxlbWVudChFbGVtZW50KToKK0BAIC0xMDczLDcgKzEwNzMsNyBA QCBjZGVmIGNsYXNzIFVudHdpc3RlZEFmZmluZUxpZUFsZ2VicmFFbGVtZW50KEVsZW1lbnQpOgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYW1iZGEgdDogInQiICsgdW5pY29k ZV9zdXBlcnNjcmlwdCh0KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5p Y29kZV9hcnQoJ+KLhScpLCB1bmljb2RlX2FydCgn4oqXJykpCiAgCkBAIC0xMTkzLDcgKzExOTMs NyBAQCBpbmRleCBjYTUzNzUzMTUzYi4uOGM5NDc4ZDNlZjYgMTAwNjQ0CiAgICAgICAgICByIiIi CiAgICAgICAgICBSZXR1cm4gdGhlIGBgZGljdGBgLCB3aG9zZSBrZXlzIGFyZSBwb3dlcnMgb2Yg YHRgIGFuZCB2YWx1ZXMgYXJlCiAgICAgICAgICBlbGVtZW50cyBvZiB0aGUgY2xhc3NpY2FsIExp ZSBhbGdlYnJhLCBvZiBgYHNlbGZgYC4KLUBAIC0xMDg4LDcgKzEwODgsNyBAQCBjZGVmIGNsYXNz IFVudHdpc3RlZEFmZmluZUxpZUFsZ2VicmFFbGVtZW50KEVsZW1lbnQpOgorQEAgLTEwODksNyAr MTA4OSw3IEBAIGNkZWYgY2xhc3MgVW50d2lzdGVkQWZmaW5lTGllQWxnZWJyYUVsZW1lbnQoRWxl bWVudCk6CiAgICAgICAgICAiIiIKICAgICAgICAgIHJldHVybiBzZWxmLl90X2RpY3QuY29weSgp CiAgCkBAIC0xMjAyLDcgKzEyMDIsNyBAQCBpbmRleCBjYTUzNzUzMTUzYi4uOGM5NDc4ZDNlZjYg MTAwNjQ0CiAgICAgICAgICByIiIiCiAgICAgICAgICBSZXR1cm4gdGhlIGNvZWZmaWNpZW50IG9m IGBjYCBvZiBgYHNlbGZgYC4KICAKLUBAIC0xMTAxLDcgKzExMDEsNyBAQCBjZGVmIGNsYXNzIFVu dHdpc3RlZEFmZmluZUxpZUFsZ2VicmFFbGVtZW50KEVsZW1lbnQpOgorQEAgLTExMDIsNyArMTEw Miw3IEBAIGNkZWYgY2xhc3MgVW50d2lzdGVkQWZmaW5lTGllQWxnZWJyYUVsZW1lbnQoRWxlbWVu dCk6CiAgICAgICAgICAiIiIKICAgICAgICAgIHJldHVybiBzZWxmLl9jX2NvZWZmCiAgCkBAIC0x MjExLDcgKzEyMTEsNyBAQCBpbmRleCBjYTUzNzUzMTUzYi4uOGM5NDc4ZDNlZjYgMTAwNjQ0CiAg ICAgICAgICByIiIiCiAgICAgICAgICBSZXR1cm4gdGhlIGNvZWZmaWNpZW50IG9mIGBkYCBvZiBg YHNlbGZgYC4KICAKLUBAIC0xMTE0LDcgKzExMTQsNyBAQCBjZGVmIGNsYXNzIFVudHdpc3RlZEFm ZmluZUxpZUFsZ2VicmFFbGVtZW50KEVsZW1lbnQpOgorQEAgLTExMTUsNyArMTExNSw3IEBAIGNk ZWYgY2xhc3MgVW50d2lzdGVkQWZmaW5lTGllQWxnZWJyYUVsZW1lbnQoRWxlbWVudCk6CiAgICAg ICAgICAiIiIKICAgICAgICAgIHJldHVybiBzZWxmLl9kX2NvZWZmCiAgCkBAIC0xMjIwLDcgKzEy MjAsNyBAQCBpbmRleCBjYTUzNzUzMTUzYi4uOGM5NDc4ZDNlZjYgMTAwNjQ0CiAgICAgICAgICAi IiIKICAgICAgICAgIFJldHVybiB0aGUgcmljaCBjb21wYXJpc29uIG9mIGBgc2VsZmBgIHdpdGgg YGBvdGhlcmBgLgogIAotQEAgLTExNzcsNyArMTE3Nyw3IEBAIGNkZWYgY2xhc3MgVW50d2lzdGVk QWZmaW5lTGllQWxnZWJyYUVsZW1lbnQoRWxlbWVudCk6CitAQCAtMTE3OCw3ICsxMTc4LDcgQEAg Y2RlZiBjbGFzcyBVbnR3aXN0ZWRBZmZpbmVMaWVBbGdlYnJhRWxlbWVudChFbGVtZW50KToKICAg ICAgICAgICIiIgogICAgICAgICAgcmV0dXJuIGJvb2woc2VsZi5fdF9kaWN0KSBvciBib29sKHNl bGYuX2NfY29lZmYpIG9yIGJvb2woc2VsZi5fZF9jb2VmZikKICAKQEAgLTEyMjksNyArMTIyOSw3 IEBAIGluZGV4IGNhNTM3NTMxNTNiLi44Yzk0NzhkM2VmNiAxMDA2NDQKICAgICAgICAgICIiIgog ICAgICAgICAgQWRkIGBgc2VsZmBgIGFuZCBgYG90aGVyYGAuCiAgCi1AQCAtMTE5Myw3ICsxMTkz LDcgQEAgY2RlZiBjbGFzcyBVbnR3aXN0ZWRBZmZpbmVMaWVBbGdlYnJhRWxlbWVudChFbGVtZW50 KToKK0BAIC0xMTk0LDcgKzExOTQsNyBAQCBjZGVmIGNsYXNzIFVudHdpc3RlZEFmZmluZUxpZUFs Z2VicmFFbGVtZW50KEVsZW1lbnQpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5f Y19jb2VmZiArIHJ0Ll9jX2NvZWZmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5f ZF9jb2VmZiArIHJ0Ll9kX2NvZWZmKQogIApAQCAtMTIzOCw3ICsxMjM4LDcgQEAgaW5kZXggY2E1 Mzc1MzE1M2IuLjhjOTQ3OGQzZWY2IDEwMDY0NAogICAgICAgICAgIiIiCiAgICAgICAgICBTdWJ0 cmFjdCBgYHNlbGZgYCBhbmQgYGBvdGhlcmBgLgogIAotQEAgLTEyMTcsNyArMTIxNyw3IEBAIGNk ZWYgY2xhc3MgVW50d2lzdGVkQWZmaW5lTGllQWxnZWJyYUVsZW1lbnQoRWxlbWVudCk6CitAQCAt MTIxOCw3ICsxMjE4LDcgQEAgY2RlZiBjbGFzcyBVbnR3aXN0ZWRBZmZpbmVMaWVBbGdlYnJhRWxl bWVudChFbGVtZW50KToKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2NfY29lZmYg LSBydC5fY19jb2VmZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2RfY29lZmYg LSBydC5fZF9jb2VmZikKICAKQEAgLTEyNDcsNyArMTI0Nyw3IEBAIGluZGV4IGNhNTM3NTMxNTNi Li44Yzk0NzhkM2VmNiAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgTmVnYXRlIGBgc2Vs ZmBgLgogIAotQEAgLTEyMzIsNyArMTIzMiw3IEBAIGNkZWYgY2xhc3MgVW50d2lzdGVkQWZmaW5l TGllQWxnZWJyYUVsZW1lbnQoRWxlbWVudCk6CitAQCAtMTIzMyw3ICsxMjMzLDcgQEAgY2RlZiBj bGFzcyBVbnR3aXN0ZWRBZmZpbmVMaWVBbGdlYnJhRWxlbWVudChFbGVtZW50KToKICAgICAgICAg IHJldHVybiB0eXBlKHNlbGYpKHNlbGYuX3BhcmVudCwgbmVnYXRlKHNlbGYuX3RfZGljdCksCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAtc2VsZi5fY19jb2VmZiwgLXNlbGYuX2RfY29lZmYp CiAgCkBAIC0xMjU2LDcgKzEyNTYsNyBAQCBpbmRleCBjYTUzNzUzMTUzYi4uOGM5NDc4ZDNlZjYg MTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIFJldHVybiBgYHNlbGZgYCBhY3RlZCB1cG9u IGJ5IGBgc2NhbGFyYGAuCiAgCi1AQCAtMTI2Miw3ICsxMjYyLDcgQEAgY2RlZiBjbGFzcyBVbnR3 aXN0ZWRBZmZpbmVMaWVBbGdlYnJhRWxlbWVudChFbGVtZW50KToKK0BAIC0xMjYzLDcgKzEyNjMs NyBAQCBjZGVmIGNsYXNzIFVudHdpc3RlZEFmZmluZUxpZUFsZ2VicmFFbGVtZW50KEVsZW1lbnQp OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGFyICogc2VsZi5fY19jb2VmZiwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxhciAqIHNlbGYuX2RfY29lZmYpCiAgCkBAIC0x MjY1LDcgKzEyNjUsNyBAQCBpbmRleCBjYTUzNzUzMTUzYi4uOGM5NDc4ZDNlZjYgMTAwNjQ0CiAg ICAgICAgICAiIiIKICAgICAgICAgIFJldHVybiB0aGUgbW9ub21pYWwgY29lZmZpY2llbnRzIG9m IGBgc2VsZmBgLgogIAotQEAgLTEyOTIsNyArMTI5Miw3IEBAIGNkZWYgY2xhc3MgVW50d2lzdGVk QWZmaW5lTGllQWxnZWJyYUVsZW1lbnQoRWxlbWVudCk6CitAQCAtMTI5Myw3ICsxMjkzLDcgQEAg Y2RlZiBjbGFzcyBVbnR3aXN0ZWRBZmZpbmVMaWVBbGdlYnJhRWxlbWVudChFbGVtZW50KToKICAg ICAgICAgICAgICBkWydkJ10gPSBzZWxmLl9kX2NvZWZmCiAgICAgICAgICByZXR1cm4gZAogIApA QCAtMTI3NCw3ICsxMjc0LDcgQEAgaW5kZXggY2E1Mzc1MzE1M2IuLjhjOTQ3OGQzZWY2IDEwMDY0 NAogICAgICAgICAgIiIiCiAgICAgICAgICBSZXR1cm4gdGhlIExpZSBicmFja2V0IGBgW3NlbGYs IHJpZ2h0XWBgLgogIAotQEAgLTEzMTUsNyArMTMxNSw3IEBAIGNkZWYgY2xhc3MgVW50d2lzdGVk QWZmaW5lTGllQWxnZWJyYUVsZW1lbnQoRWxlbWVudCk6CitAQCAtMTMxNiw3ICsxMzE2LDcgQEAg Y2RlZiBjbGFzcyBVbnR3aXN0ZWRBZmZpbmVMaWVBbGdlYnJhRWxlbWVudChFbGVtZW50KToKICAg ICAgICAgICAgICBzZWxmLCByaWdodCA9IGNvZXJjaW9uX21vZGVsLmNhbm9uaWNhbF9jb2VyY2lv bihzZWxmLCByaWdodCkKICAgICAgICAgIHJldHVybiBzZWxmLl9icmFja2V0XyhyaWdodCkKICAK QEAgLTEyODMsNyArMTI4Myw3IEBAIGluZGV4IGNhNTM3NTMxNTNiLi44Yzk0NzhkM2VmNiAxMDA2 NDQKICAgICAgICAgICIiIgogICAgICAgICAgUmV0dXJuIHRoZSBMaWUgYnJhY2tldCBgYFtzZWxm LCB5XWBgLgogIAotQEAgLTEzODMsNyArMTM4Myw3IEBAIGNkZWYgY2xhc3MgVW50d2lzdGVkQWZm aW5lTGllQWxnZWJyYUVsZW1lbnQoRWxlbWVudCk6CitAQCAtMTM4NCw3ICsxMzg0LDcgQEAgY2Rl ZiBjbGFzcyBVbnR3aXN0ZWRBZmZpbmVMaWVBbGdlYnJhRWxlbWVudChFbGVtZW50KToKICAgICAg ICAgIHJldHVybiB0eXBlKHNlbGYpKHNlbGYuX3BhcmVudCwgZCwgYywKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuX3BhcmVudC5iYXNlX3JpbmcoKS56ZXJvKCkpCiAgCkBAIC0xMjky LDcgKzEyOTIsNyBAQCBpbmRleCBjYTUzNzUzMTUzYi4uOGM5NDc4ZDNlZjYgMTAwNjQ0CiAgICAg ICAgICByIiIiCiAgICAgICAgICBSZXR1cm4gdGhlIGNhbm9uaWNhbCBkZXJpdmF0aW9uIGBkYCBh cHBsaWVkIHRvIGBgc2VsZmBgLgogIAotQEAgLTE1MjMsNyArMTUyMyw3IEBAIGNkZWYgY2xhc3Mg TGllT2JqZWN0KFNhZ2VPYmplY3QpOgorQEAgLTE1MjQsNyArMTUyNCw3IEBAIGNkZWYgY2xhc3Mg TGllT2JqZWN0KFNhZ2VPYmplY3QpOgogICAgICAiIiIKICAgICAgQWJzdHJhY3QgYmFzZSBjbGFz cyBmb3IgOmNsYXNzOmBMaWVHZW5lcmF0b3JgIGFuZCA6Y2xhc3M6YExpZUJyYWNrZXRgLgogICAg ICAiIiIKQEAgLTEzMDEsNyArMTMwMSw3IEBAIGluZGV4IGNhNTM3NTMxNTNiLi44Yzk0NzhkM2Vm NiAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgUmV0dXJuIHRoZSB3b3JkICgiZmxhdHRl bmluZyIpIG9mIGBgc2VsZmBgLgogIAotQEAgLTE2NTcsNyArMTY1Nyw3IEBAIGNkZWYgY2xhc3Mg TGllR2VuZXJhdG9yKExpZU9iamVjdCk6CitAQCAtMTY1OCw3ICsxNjU4LDcgQEAgY2RlZiBjbGFz cyBMaWVHZW5lcmF0b3IoTGllT2JqZWN0KToKICAgICAgICAgICIiIgogICAgICAgICAgcmV0dXJu IGltX2dlbnNbbmFtZXMuaW5kZXgoc2VsZi5fbmFtZSldCiAgCkBAIC0xMzEwLDcgKzEzMTAsNyBA QCBpbmRleCBjYTUzNzUzMTUzYi4uOGM5NDc4ZDNlZjYgMTAwNjQ0CiAgICAgICAgICAiIiIKICAg ICAgICAgIFJldHVybiB0aGUgd29yZCAoImZsYXR0ZW5pbmciKSBvZiBgYHNlbGZgYC4KICAKLUBA IC0xODYyLDcgKzE4NjIsNyBAQCBjZGVmIGNsYXNzIExpZUJyYWNrZXQoTGllT2JqZWN0KToKK0BA IC0xODYzLDcgKzE4NjMsNyBAQCBjZGVmIGNsYXNzIExpZUJyYWNrZXQoTGllT2JqZWN0KToKICAg ICAgICAgIHJldHVybiBjb2RvbWFpbi5icmFja2V0KHNlbGYuX2xlZnQuX2ltX2dlbnNfKGNvZG9t YWluLCBpbV9nZW5zLCBuYW1lcyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLl9yaWdodC5faW1fZ2Vuc18oY29kb21haW4sIGltX2dlbnMsIG5hbWVzKSkKICAKQEAgLTEz MTksNyArMTMxOSw3IEBAIGluZGV4IGNhNTM3NTMxNTNiLi44Yzk0NzhkM2VmNiAxMDA2NDQKICAg ICAgICAgICIiIgogICAgICAgICAgTGlmdCBgYHNlbGZgYCB0byB0aGUgdW5pdmVyc2FsIGVudmVs b3BpbmcgYWxnZWJyYS4KICAKLUBAIC0xODkxLDcgKzE4OTEsNyBAQCBjZGVmIGNsYXNzIExpZUJy YWNrZXQoTGllT2JqZWN0KToKK0BAIC0xODkyLDcgKzE4OTIsNyBAQCBjZGVmIGNsYXNzIExpZUJy YWNrZXQoTGllT2JqZWN0KToKICAKICAgICAgICAgIHJldHVybiBsKnIgLSByKmwKICAKQEAgLTE5 MjQ3LDcgKzE5MjQ3LDcgQEAgaW5kZXggYzgzODczYTdjOTkuLmZjNWU5NTVlYjc5IDEwMDY0NAog K2NwZGVmIHJhbmRzdGF0ZSBjdXJyZW50X3JhbmRzdGF0ZSgpCiAgY3BkZWYgaW50IHJhbmRvbSgp IG5vZXhjZXB0CiBkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWlzYy9yYW5kc3RhdGUucHl4IGIvc3Jj L3NhZ2UvbWlzYy9yYW5kc3RhdGUucHl4Ci1pbmRleCBiOTE4YjE1Mzg4My4uZmQzZWMyY2FkNjAg MTAwNjQ0CitpbmRleCA3NTY3MjJkMGI2YS4uNTgwOWU0ZDdjYjQgMTAwNjQ0CiAtLS0gYS9zcmMv c2FnZS9taXNjL3JhbmRzdGF0ZS5weXgKICsrKyBiL3NyYy9zYWdlL21pc2MvcmFuZHN0YXRlLnB5 eAogQEAgLTQ0Myw3ICs0NDMsNyBAQCBjZGVmIHJhbmRzdGF0ZSBfcGFyaV9zZWVkX3JhbmRzdGF0 ZQpAQCAtMTk0MzEsNyArMTk0MzEsNyBAQCBpbmRleCBiYWM1N2ZhMDFkMi4uYjhjMzlhZWVmYTcg MTAwNjQ0CiAgICAgIENvbXB1dGUgY29lZmZpY2llbnRzIGZvciB0aGUgaHlwZXJnZW9tZXRyaWMg dHJhY2UgZm9ybXVsYS4KICAKIGRpZmYgLS1naXQgYS9zcmMvc2FnZS9tb2R1bGFyL21vZGZvcm0v ZWlzX3Nlcmllc19jeXRob24ucHl4IGIvc3JjL3NhZ2UvbW9kdWxhci9tb2Rmb3JtL2Vpc19zZXJp ZXNfY3l0aG9uLnB5eAotaW5kZXggZmI4NTAxNjIyZjYuLjE4ZDE4Zjc4NTJhIDEwMDY0NAoraW5k ZXggZmI4NTAxNjIyZjYuLjcwMjcxZDNmODBiIDEwMDY0NAogLS0tIGEvc3JjL3NhZ2UvbW9kdWxh ci9tb2Rmb3JtL2Vpc19zZXJpZXNfY3l0aG9uLnB5eAogKysrIGIvc3JjL3NhZ2UvbW9kdWxhci9t b2Rmb3JtL2Vpc19zZXJpZXNfY3l0aG9uLnB5eAogQEAgLTE0LDcgKzE0LDcgQEAgZnJvbSBzYWdl LmxpYnMuZmxpbnQuZm1wel9wb2x5IGNpbXBvcnQgKgpAQCAtMTk0NDgsNyArMTk0NDgsNyBAQCBp bmRleCBmYjg1MDE2MjJmNi4uMThkMThmNzg1MmEgMTAwNjQ0CiAgCiAgCiAtY3BkZWYgZWlzZW5z dGVpbl9zZXJpZXNfcG9seShpbnQgaywgaW50IHByZWMgPSAxMCkgIG5vZXhjZXB0OgotK2NwZGVm IGVpc2Vuc3RlaW5fc2VyaWVzX3BvbHkoaW50IGssIGludCBwcmVjID0gMTApIDoKKytjcGRlZiBl aXNlbnN0ZWluX3Nlcmllc19wb2x5KGludCBrLCBpbnQgcHJlYz0xMCk6CiAgICAgIHIiIiIKICAg ICAgUmV0dXJuIHRoZSBxLWV4cGFuc2lvbiB1cCB0byBwcmVjaXNpb24gYGBwcmVjYGAgb2YgdGhl IHdlaWdodCBga2AKICAgICAgRWlzZW5zdGVpbiBzZXJpZXMsIGFzIGEgRkxJTlQgOmNsYXNzOmB+ c2FnZS5saWJzLmZsaW50LmZtcHpfcG9seS5GbXB6X3BvbHlgCkBAIC0xOTc1OCw3ICsxOTc1OCw3 IEBAIGluZGV4IGU1MjRhNDU4NDc0Li4wODQ0MjNhMjcxNCAxMDA2NDQKICsgICAgY2RlZiBfbmV3 X2Moc2VsZiwgb2JqZWN0IHYpCiAgCiBkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbW9kdWxlcy9mcmVl X21vZHVsZV9lbGVtZW50LnB5eCBiL3NyYy9zYWdlL21vZHVsZXMvZnJlZV9tb2R1bGVfZWxlbWVu dC5weXgKLWluZGV4IGZmNDNkMjM5NDkzLi5iYWI5M2VlMzY4ZiAxMDA2NDQKK2luZGV4IDJmNDdj OTI0ZDM4Li5jMDc5ZDRjYTZhZSAxMDA2NDQKIC0tLSBhL3NyYy9zYWdlL21vZHVsZXMvZnJlZV9t b2R1bGVfZWxlbWVudC5weXgKICsrKyBiL3NyYy9zYWdlL21vZHVsZXMvZnJlZV9tb2R1bGVfZWxl bWVudC5weXgKIEBAIC0xNzYyLDcgKzE3NjIsNyBAQCBjZGVmIGNsYXNzIEZyZWVNb2R1bGVFbGVt ZW50KFZlY3Rvcik6ICAgIyBhYnN0cmFjdCBiYXNlIGNsYXNzCkBAIC0xOTc4OCw3ICsxOTc4OCw3 IEBAIGluZGV4IGZmNDNkMjM5NDkzLi5iYWI5M2VlMzY4ZiAxMDA2NDQKICAgICAgICAgICIiIgog ICAgICAgICAgUmV0dXJuIHRoZSBkb3QgcHJvZHVjdCBvZiBsZWZ0IGFuZCByaWdodC4KICAKLUBA IC00MjI5LDcgKzQyMjksNyBAQCBjZGVmIGNsYXNzIEZyZWVNb2R1bGVFbGVtZW50X2dlbmVyaWNf ZGVuc2UoRnJlZU1vZHVsZUVsZW1lbnQpOgorQEAgLTQzMTAsNyArNDMxMCw3IEBAIGNkZWYgY2xh c3MgRnJlZU1vZHVsZUVsZW1lbnRfZ2VuZXJpY19kZW5zZShGcmVlTW9kdWxlRWxlbWVudCk6CiAg ICAgICAgICBzYWdlOiBpc2luc3RhbmNlKGhhc2godiksIGludCkKICAgICAgICAgIFRydWUKICAg ICAgIiIiCkBAIC0xOTc5Nyw3ICsxOTc5Nyw3IEBAIGluZGV4IGZmNDNkMjM5NDkzLi5iYWI5M2Vl MzY4ZiAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgQ3JlYXRlIGEgbmV3IGRlbnNlIGZy ZWUgbW9kdWxlIGVsZW1lbnQgd2l0aCBtaW5pbWFsIG92ZXJoZWFkIGFuZAogICAgICAgICAgbm8g dHlwZSBjaGVja2luZy4KLUBAIC00MzczLDcgKzQzNzMsNyBAQCBjZGVmIGNsYXNzIEZyZWVNb2R1 bGVFbGVtZW50X2dlbmVyaWNfZGVuc2UoRnJlZU1vZHVsZUVsZW1lbnQpOgorQEAgLTQ0NTQsNyAr NDQ1NCw3IEBAIGNkZWYgY2xhc3MgRnJlZU1vZHVsZUVsZW1lbnRfZ2VuZXJpY19kZW5zZShGcmVl TW9kdWxlRWxlbWVudCk6CiAgCiAgICAgIEBjeXRob24uYm91bmRzY2hlY2soRmFsc2UpCiAgICAg IEBjeXRob24ud3JhcGFyb3VuZChGYWxzZSkKQEAgLTE5ODA2LDcgKzE5ODA2LDcgQEAgaW5kZXgg ZmY0M2QyMzk0OTMuLmJhYjkzZWUzNjhmIDEwMDY0NAogICAgICAgICAgIiIiCiAgICAgICAgICBB ZGQgbGVmdCBhbmQgcmlnaHQuCiAgCi1AQCAtNDM5MCw3ICs0MzkwLDcgQEAgY2RlZiBjbGFzcyBG cmVlTW9kdWxlRWxlbWVudF9nZW5lcmljX2RlbnNlKEZyZWVNb2R1bGVFbGVtZW50KToKK0BAIC00 NDcxLDcgKzQ0NzEsNyBAQCBjZGVmIGNsYXNzIEZyZWVNb2R1bGVFbGVtZW50X2dlbmVyaWNfZGVu c2UoRnJlZU1vZHVsZUVsZW1lbnQpOgogIAogICAgICBAY3l0aG9uLmJvdW5kc2NoZWNrKEZhbHNl KQogICAgICBAY3l0aG9uLndyYXBhcm91bmQoRmFsc2UpCkBAIC0xOTgxNSw3ICsxOTgxNSw3IEBA IGluZGV4IGZmNDNkMjM5NDkzLi5iYWI5M2VlMzY4ZiAxMDA2NDQKICAgICAgICAgICIiIgogICAg ICAgICAgU3VidHJhY3QgcmlnaHQgZnJvbSBsZWZ0LgogIAotQEAgLTQ0MDgsNyArNDQwOCw3IEBA IGNkZWYgY2xhc3MgRnJlZU1vZHVsZUVsZW1lbnRfZ2VuZXJpY19kZW5zZShGcmVlTW9kdWxlRWxl bWVudCk6CitAQCAtNDQ4OSw3ICs0NDg5LDcgQEAgY2RlZiBjbGFzcyBGcmVlTW9kdWxlRWxlbWVu dF9nZW5lcmljX2RlbnNlKEZyZWVNb2R1bGVFbGVtZW50KToKICAgICAgICAgIHYgPSBbKDxSaW5n RWxlbWVudD4gYVtpXSkuX3N1Yl8oPFJpbmdFbGVtZW50PiBiW2ldKSBmb3IgaSBpbiByYW5nZShs ZWZ0Ll9kZWdyZWUpXQogICAgICAgICAgcmV0dXJuIGxlZnQuX25ld19jKHYpCiAgCkBAIC0xOTgy NCw3ICsxOTgyNCw3IEBAIGluZGV4IGZmNDNkMjM5NDkzLi5iYWI5M2VlMzY4ZiAxMDA2NDQKICAg ICAgICAgICIiIgogICAgICAgICAgRVhBTVBMRVM6OgogIAotQEAgLTQ0MjIsNyArNDQyMiw3IEBA IGNkZWYgY2xhc3MgRnJlZU1vZHVsZUVsZW1lbnRfZ2VuZXJpY19kZW5zZShGcmVlTW9kdWxlRWxl bWVudCk6CitAQCAtNDUwMyw3ICs0NTAzLDcgQEAgY2RlZiBjbGFzcyBGcmVlTW9kdWxlRWxlbWVu dF9nZW5lcmljX2RlbnNlKEZyZWVNb2R1bGVFbGVtZW50KToKICAgICAgICAgICAgICB2ID0gW2xl ZnQgKiB4IGZvciB4IGluIHNlbGYuX2VudHJpZXNdCiAgICAgICAgICByZXR1cm4gc2VsZi5fbmV3 X2ModikKICAKQEAgLTE5ODMzLDcgKzE5ODMzLDcgQEAgaW5kZXggZmY0M2QyMzk0OTMuLmJhYjkz ZWUzNjhmIDEwMDY0NAogICAgICAgICAgIiIiCiAgICAgICAgICBFWEFNUExFUzo6CiAgCi1AQCAt NDQ0MCw3ICs0NDQwLDcgQEAgY2RlZiBjbGFzcyBGcmVlTW9kdWxlRWxlbWVudF9nZW5lcmljX2Rl bnNlKEZyZWVNb2R1bGVFbGVtZW50KToKK0BAIC00NTIxLDcgKzQ1MjEsNyBAQCBjZGVmIGNsYXNz IEZyZWVNb2R1bGVFbGVtZW50X2dlbmVyaWNfZGVuc2UoRnJlZU1vZHVsZUVsZW1lbnQpOgogIAog ICAgICBAY3l0aG9uLmJvdW5kc2NoZWNrKEZhbHNlKQogICAgICBAY3l0aG9uLndyYXBhcm91bmQo RmFsc2UpCkBAIC0xOTg0Miw3ICsxOTg0Miw3IEBAIGluZGV4IGZmNDNkMjM5NDkzLi5iYWI5M2Vl MzY4ZiAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgRVhBTVBMRVM6OgogIAotQEAgLTQ0 NzIsNyArNDQ3Miw3IEBAIGNkZWYgY2xhc3MgRnJlZU1vZHVsZUVsZW1lbnRfZ2VuZXJpY19kZW5z ZShGcmVlTW9kdWxlRWxlbWVudCk6CitAQCAtNDU1Myw3ICs0NTUzLDcgQEAgY2RlZiBjbGFzcyBG cmVlTW9kdWxlRWxlbWVudF9nZW5lcmljX2RlbnNlKEZyZWVNb2R1bGVFbGVtZW50KToKICAKICAg ICAgQGN5dGhvbi5ib3VuZHNjaGVjayhGYWxzZSkKICAgICAgQGN5dGhvbi53cmFwYXJvdW5kKEZh bHNlKQpAQCAtMTk4NTEsNyArMTk4NTEsNyBAQCBpbmRleCBmZjQzZDIzOTQ5My4uYmFiOTNlZTM2 OGYgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIEVYQU1QTEVTOjoKICAKLUBAIC00Njgw LDcgKzQ2ODAsNyBAQCBjZGVmIGNsYXNzIEZyZWVNb2R1bGVFbGVtZW50X2dlbmVyaWNfc3BhcnNl KEZyZWVNb2R1bGVFbGVtZW50KToKK0BAIC00NzYxLDcgKzQ3NjEsNyBAQCBjZGVmIGNsYXNzIEZy ZWVNb2R1bGVFbGVtZW50X2dlbmVyaWNfc3BhcnNlKEZyZWVNb2R1bGVFbGVtZW50KToKICAgICAg ICAgIHNhZ2U6IChiLWEpLmRpY3QoKQogICAgICAgICAgezI6IC0xfQogICAgICAiIiIKQEAgLTE5 ODYwLDcgKzE5ODYwLDcgQEAgaW5kZXggZmY0M2QyMzk0OTMuLmJhYjkzZWUzNjhmIDEwMDY0NAog ICAgICAgICAgIiIiCiAgICAgICAgICBDcmVhdGUgYSBuZXcgc3BhcnNlIGZyZWUgbW9kdWxlIGVs ZW1lbnQgd2l0aCBtaW5pbWFsIG92ZXJoZWFkIGFuZAogICAgICAgICAgbm8gdHlwZSBjaGVja2lu Zy4KLUBAIC00ODMwLDcgKzQ4MzAsNyBAQCBjZGVmIGNsYXNzIEZyZWVNb2R1bGVFbGVtZW50X2dl bmVyaWNfc3BhcnNlKEZyZWVNb2R1bGVFbGVtZW50KToKK0BAIC00OTExLDcgKzQ5MTEsNyBAQCBj ZGVmIGNsYXNzIEZyZWVNb2R1bGVFbGVtZW50X2dlbmVyaWNfc3BhcnNlKEZyZWVNb2R1bGVFbGVt ZW50KToKICAgICAgICAgICAgICAgICAgZW50cmllc19kaWN0ID0gZGljdChlbnRyaWVzX2RpY3Qp ICAjIG1ha2UgYSBjb3B5L2NvbnZlcnQgdG8gZGljdAogICAgICAgICAgc2VsZi5fZW50cmllcyA9 IGVudHJpZXNfZGljdAogIApAQCAtMTk4NjksNyArMTk4NjksNyBAQCBpbmRleCBmZjQzZDIzOTQ5 My4uYmFiOTNlZTM2OGYgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIEFkZCBsZWZ0IGFu ZCByaWdodC4KICAKLUBAIC00ODUyLDcgKzQ4NTIsNyBAQCBjZGVmIGNsYXNzIEZyZWVNb2R1bGVF bGVtZW50X2dlbmVyaWNfc3BhcnNlKEZyZWVNb2R1bGVFbGVtZW50KToKK0BAIC00OTMzLDcgKzQ5 MzMsNyBAQCBjZGVmIGNsYXNzIEZyZWVNb2R1bGVFbGVtZW50X2dlbmVyaWNfc3BhcnNlKEZyZWVN b2R1bGVFbGVtZW50KToKICAgICAgICAgICAgICAgICAgdltpXSA9IGEKICAgICAgICAgIHJldHVy biBsZWZ0Ll9uZXdfYyh2KQogIApAQCAtMTk4NzgsNyArMTk4NzgsNyBAQCBpbmRleCBmZjQzZDIz OTQ5My4uYmFiOTNlZTM2OGYgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIEVYQU1QTEVT OjoKICAKLUBAIC00ODcyLDcgKzQ4NzIsNyBAQCBjZGVmIGNsYXNzIEZyZWVNb2R1bGVFbGVtZW50 X2dlbmVyaWNfc3BhcnNlKEZyZWVNb2R1bGVFbGVtZW50KToKK0BAIC00OTUzLDcgKzQ5NTMsNyBA QCBjZGVmIGNsYXNzIEZyZWVNb2R1bGVFbGVtZW50X2dlbmVyaWNfc3BhcnNlKEZyZWVNb2R1bGVF bGVtZW50KToKICAgICAgICAgICAgICAgICAgdltpXSA9IC1hCiAgICAgICAgICByZXR1cm4gbGVm dC5fbmV3X2ModikKICAKQEAgLTE5ODg3LDcgKzE5ODg3LDcgQEAgaW5kZXggZmY0M2QyMzk0OTMu LmJhYjkzZWUzNjhmIDEwMDY0NAogICAgICAgICAgIiIiCiAgICAgICAgICBFWEFNUExFUzo6CiAg Ci1AQCAtNDg4OCw3ICs0ODg4LDcgQEAgY2RlZiBjbGFzcyBGcmVlTW9kdWxlRWxlbWVudF9nZW5l cmljX3NwYXJzZShGcmVlTW9kdWxlRWxlbWVudCk6CitAQCAtNDk2OSw3ICs0OTY5LDcgQEAgY2Rl ZiBjbGFzcyBGcmVlTW9kdWxlRWxlbWVudF9nZW5lcmljX3NwYXJzZShGcmVlTW9kdWxlRWxlbWVu dCk6CiAgICAgICAgICAgICAgICAgICAgICB2W2ldID0gcHJvZAogICAgICAgICAgcmV0dXJuIHNl bGYuX25ld19jKHYpCiAgCkBAIC0xOTg5Niw3ICsxOTg5Niw3IEBAIGluZGV4IGZmNDNkMjM5NDkz Li5iYWI5M2VlMzY4ZiAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgRVhBTVBMRVM6Ogog IAotQEAgLTQ5MDQsNyArNDkwNCw3IEBAIGNkZWYgY2xhc3MgRnJlZU1vZHVsZUVsZW1lbnRfZ2Vu ZXJpY19zcGFyc2UoRnJlZU1vZHVsZUVsZW1lbnQpOgorQEAgLTQ5ODUsNyArNDk4NSw3IEBAIGNk ZWYgY2xhc3MgRnJlZU1vZHVsZUVsZW1lbnRfZ2VuZXJpY19zcGFyc2UoRnJlZU1vZHVsZUVsZW1l bnQpOgogICAgICAgICAgICAgICAgICAgICAgdltpXSA9IHByb2QKICAgICAgICAgIHJldHVybiBz ZWxmLl9uZXdfYyh2KQogIApAQCAtMTk5MDUsNyArMTk5MDUsNyBAQCBpbmRleCBmZjQzZDIzOTQ5 My4uYmFiOTNlZTM2OGYgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIFJldHVybiB0aGUg ZG90IHByb2R1Y3Qgb2YgbGVmdCBhbmQgcmlnaHQuCiAgCi1AQCAtNDk1Niw3ICs0OTU2LDcgQEAg Y2RlZiBjbGFzcyBGcmVlTW9kdWxlRWxlbWVudF9nZW5lcmljX3NwYXJzZShGcmVlTW9kdWxlRWxl bWVudCk6CitAQCAtNTAzNyw3ICs1MDM3LDcgQEAgY2RlZiBjbGFzcyBGcmVlTW9kdWxlRWxlbWVu dF9nZW5lcmljX3NwYXJzZShGcmVlTW9kdWxlRWxlbWVudCk6CiAgICAgICAgICAgICAgICAgIHog Kz0gYSAqIGVbaV0KICAgICAgICAgIHJldHVybiB6CiAgCkBAIC0xOTkxNCw3ICsxOTkxNCw3IEBA IGluZGV4IGZmNDNkMjM5NDkzLi5iYWI5M2VlMzY4ZiAxMDA2NDQKICAgICAgICAgICIiIgogICAg ICAgICAgRVhBTVBMRVM6OgogIAotQEAgLTQ5NzQsNyArNDk3NCw3IEBAIGNkZWYgY2xhc3MgRnJl ZU1vZHVsZUVsZW1lbnRfZ2VuZXJpY19zcGFyc2UoRnJlZU1vZHVsZUVsZW1lbnQpOgorQEAgLTUw NTUsNyArNTA1NSw3IEBAIGNkZWYgY2xhc3MgRnJlZU1vZHVsZUVsZW1lbnRfZ2VuZXJpY19zcGFy c2UoRnJlZU1vZHVsZUVsZW1lbnQpOgogICAgICAgICAgICAgICAgICAgICAgdltpXSA9IHByb2QK ICAgICAgICAgIHJldHVybiBsZWZ0Ll9uZXdfYyh2KQogIApAQCAtMTk5MjMsNyArMTk5MjMsNyBA QCBpbmRleCBmZjQzZDIzOTQ5My4uYmFiOTNlZTM2OGYgMTAwNjQ0CiAgICAgICAgICAiIiIKICAg ICAgICAgIENvbXBhcmUgdHdvIHNwYXJzZSBmcmVlIG1vZHVsZSBlbGVtZW50cy4KICAKLUBAIC01 MTA1LDcgKzUxMDUsNyBAQCBjZGVmIGNsYXNzIEZyZWVNb2R1bGVFbGVtZW50X2dlbmVyaWNfc3Bh cnNlKEZyZWVNb2R1bGVFbGVtZW50KToKK0BAIC01MTg2LDcgKzUxODYsNyBAQCBjZGVmIGNsYXNz IEZyZWVNb2R1bGVFbGVtZW50X2dlbmVyaWNfc3BhcnNlKEZyZWVNb2R1bGVFbGVtZW50KToKICAg ICAgICAgICAgICByYWlzZSBJbmRleEVycm9yKCJ2ZWN0b3IgaW5kZXggb3V0IG9mIHJhbmdlIikK ICAgICAgICAgIHJldHVybiBzZWxmLmdldF91bnNhZmUobikKICAKQEAgLTIwOTAyLDcgKzIwOTAy LDcgQEAgaW5kZXggOTZkZDljMzMzOTAuLmVkNGQ2M2NjYzYzIDEwMDY0NAogLSAgICBjcGRlZiBj dnhweV9wcm9ibGVtKHNlbGYpIG5vZXhjZXB0CiArICAgIGNwZGVmIGN2eHB5X3Byb2JsZW0oc2Vs ZikKIGRpZmYgLS1naXQgYS9zcmMvc2FnZS9udW1lcmljYWwvYmFja2VuZHMvY3Z4cHlfYmFja2Vu ZC5weXggYi9zcmMvc2FnZS9udW1lcmljYWwvYmFja2VuZHMvY3Z4cHlfYmFja2VuZC5weXgKLWlu ZGV4IGMwN2QzM2U1YWU3Li5jZTNiN2FmODc4OCAxMDA2NDQKK2luZGV4IGMwN2QzM2U1YWU3Li4x NDVmODRiMzYzYSAxMDA2NDQKIC0tLSBhL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9jdnhw eV9iYWNrZW5kLnB5eAogKysrIGIvc3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL2N2eHB5X2Jh Y2tlbmQucHl4CiBAQCAtMTQyLDcgKzE0Miw3IEBAIGNkZWYgY2xhc3MgQ1ZYUFlCYWNrZW5kOgpA QCAtMjEwNTQsNyArMjEwNTQsNyBAQCBpbmRleCBjMDdkMzNlNWFlNy4uY2UzYjdhZjg3ODggMTAw NjQ0CiAgICAgICAgICByZXR1cm4gc2VsZi52YXJpYWJsZXNbaW5kZXhdLm5hbWUoKQogIAogLSAg ICBjcGRlZiB2YXJpYWJsZV91cHBlcl9ib3VuZChzZWxmLCBpbnQgaW5kZXgsIHZhbHVlID0gRmFs c2UpIG5vZXhjZXB0OgotKyAgICBjcGRlZiB2YXJpYWJsZV91cHBlcl9ib3VuZChzZWxmLCBpbnQg aW5kZXgsIHZhbHVlID0gRmFsc2UpOgorKyAgICBjcGRlZiB2YXJpYWJsZV91cHBlcl9ib3VuZChz ZWxmLCBpbnQgaW5kZXgsIHZhbHVlPUZhbHNlKToKICAgICAgICAgICIiIgogICAgICAgICAgUmV0 dXJuIG9yIGRlZmluZSB0aGUgdXBwZXIgYm91bmQgb24gYSB2YXJpYWJsZQogIApAQCAtMjEwNjMs MTIgKzIxMDYzLDEyIEBAIGluZGV4IGMwN2QzM2U1YWU3Li5jZTNiN2FmODc4OCAxMDA2NDQKICAg ICAgICAgICAgICByZXR1cm4gc2VsZi5jb2xfdXBwZXJfYm91bmRbaW5kZXhdCiAgCiAtICAgIGNw ZGVmIHZhcmlhYmxlX2xvd2VyX2JvdW5kKHNlbGYsIGludCBpbmRleCwgdmFsdWUgPSBGYWxzZSkg bm9leGNlcHQ6Ci0rICAgIGNwZGVmIHZhcmlhYmxlX2xvd2VyX2JvdW5kKHNlbGYsIGludCBpbmRl eCwgdmFsdWUgPSBGYWxzZSk6CisrICAgIGNwZGVmIHZhcmlhYmxlX2xvd2VyX2JvdW5kKHNlbGYs IGludCBpbmRleCwgdmFsdWU9RmFsc2UpOgogICAgICAgICAgIiIiCiAgICAgICAgICBSZXR1cm4g b3IgZGVmaW5lIHRoZSBsb3dlciBib3VuZCBvbiBhIHZhcmlhYmxlCiAgCiBkaWZmIC0tZ2l0IGEv c3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL2dlbmVyaWNfYmFja2VuZC5weGQgYi9zcmMvc2Fn ZS9udW1lcmljYWwvYmFja2VuZHMvZ2VuZXJpY19iYWNrZW5kLnB4ZAotaW5kZXggNjA5ODNhZmM2 ZjIuLjY3MzEwOWFhZTQwIDEwMDY0NAoraW5kZXggNjA5ODNhZmM2ZjIuLmYyZDMxNWQyNDljIDEw MDY0NAogLS0tIGEvc3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL2dlbmVyaWNfYmFja2VuZC5w eGQKICsrKyBiL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9nZW5lcmljX2JhY2tlbmQucHhk CiBAQCAtMTIsNDQgKzEyLDQ0IEBAIGZyb20gc2FnZS5zdHJ1Y3R1cmUuc2FnZV9vYmplY3QgY2lt cG9ydCBTYWdlT2JqZWN0CkBAIC0yMTEzMiwxMyArMjExMzIsMTMgQEAgaW5kZXggNjA5ODNhZmM2 ZjIuLjY3MzEwOWFhZTQwIDEwMDY0NAogLSAgICBjcGRlZiBiYXNlX3Jpbmcoc2VsZikgbm9leGNl cHQKIC0gICAgY3BkZWYgX19jb3B5X18oc2VsZikgbm9leGNlcHQKIC0gICAgY3BkZWYgY29weShz ZWxmKSBub2V4Y2VwdAotKyAgICBjcGRlZiBwcm9ibGVtX25hbWUoc2VsZiwgbmFtZSA9ICopCisr ICAgIGNwZGVmIHByb2JsZW1fbmFtZShzZWxmLCBuYW1lPSopCiArICAgIGNwZGVmIHJvd19ib3Vu ZHMoc2VsZiwgaW50IGluZGV4KQogKyAgICBjcGRlZiBjb2xfYm91bmRzKHNlbGYsIGludCBpbmRl eCkKICsgICAgY3BkZWYgcm93X25hbWUoc2VsZiwgaW50IGluZGV4KQogKyAgICBjcGRlZiBjb2xf bmFtZShzZWxmLCBpbnQgaW5kZXgpCi0rICAgIGNwZGVmIHZhcmlhYmxlX3VwcGVyX2JvdW5kKHNl bGYsIGludCBpbmRleCwgdmFsdWUgPSAqKQotKyAgICBjcGRlZiB2YXJpYWJsZV9sb3dlcl9ib3Vu ZChzZWxmLCBpbnQgaW5kZXgsIHZhbHVlID0gKikKKysgICAgY3BkZWYgdmFyaWFibGVfdXBwZXJf Ym91bmQoc2VsZiwgaW50IGluZGV4LCB2YWx1ZT0qKQorKyAgICBjcGRlZiB2YXJpYWJsZV9sb3dl cl9ib3VuZChzZWxmLCBpbnQgaW5kZXgsIHZhbHVlPSopCiArICAgIGNwZGVmIHNvbHZlcl9wYXJh bWV0ZXIoc2VsZiwgbmFtZSwgdmFsdWU9KikKICsgICAgY3BkZWYgemVybyhzZWxmKQogKyAgICBj cGRlZiBiYXNlX3Jpbmcoc2VsZikKQEAgLTIxMTUyLDkgKzIxMTUyLDkgQEAgaW5kZXggNjA5ODNh ZmM2ZjIuLjY3MzEwOWFhZTQwIDEwMDY0NAogICAgICBjZGVmIG9iamVjdCBvYmpfY29uc3RhbnRf dGVybQogIAogLWNwZGVmIEdlbmVyaWNCYWNrZW5kIGdldF9zb2x2ZXIoY29uc3RyYWludF9nZW5l cmF0aW9uID0gPywgc29sdmVyID0gPywgYmFzZV9yaW5nID0gPykgbm9leGNlcHQKLStjcGRlZiBH ZW5lcmljQmFja2VuZCBnZXRfc29sdmVyKGNvbnN0cmFpbnRfZ2VuZXJhdGlvbiA9ID8sIHNvbHZl ciA9ID8sIGJhc2VfcmluZyA9ID8pCisrY3BkZWYgR2VuZXJpY0JhY2tlbmQgZ2V0X3NvbHZlcihj b25zdHJhaW50X2dlbmVyYXRpb249Pywgc29sdmVyPT8sIGJhc2VfcmluZz0/KQogZGlmZiAtLWdp dCBhL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9nZW5lcmljX2JhY2tlbmQucHl4IGIvc3Jj L3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL2dlbmVyaWNfYmFja2VuZC5weXgKLWluZGV4IGI1ZGI0 YjRhYTlkLi5jYTRjZjlkOGM5NCAxMDA2NDQKK2luZGV4IGI1ZGI0YjRhYTlkLi4wMDkwOWViMjVh OCAxMDA2NDQKIC0tLSBhL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9nZW5lcmljX2JhY2tl bmQucHl4CiArKysgYi9zcmMvc2FnZS9udW1lcmljYWwvYmFja2VuZHMvZ2VuZXJpY19iYWNrZW5k LnB5eAogQEAgLTMzLDExICszMywxMSBAQCBmcm9tIGNvcHkgaW1wb3J0IGNvcHkKQEAgLTIxMjEy LDcgKzIxMjEyLDcgQEAgaW5kZXggYjVkYjRiNGFhOWQuLmNhNGNmOWQ4Yzk0IDEwMDY0NAogICAg ICAgICAgICAgIHNlbGYub2JqX2NvbnN0YW50X3Rlcm0gPSBkCiAgCiAtICAgIGNwZGVmIHNldF9v YmplY3RpdmUoc2VsZiwgbGlzdCBjb2VmZiwgZCA9IDAuMCkgbm9leGNlcHQ6Ci0rICAgIGNwZGVm IHNldF9vYmplY3RpdmUoc2VsZiwgbGlzdCBjb2VmZiwgZCA9IDAuMCk6CisrICAgIGNwZGVmIHNl dF9vYmplY3RpdmUoc2VsZiwgbGlzdCBjb2VmZiwgZD0wLjApOgogICAgICAgICAgIiIiCiAgICAg ICAgICBTZXQgdGhlIG9iamVjdGl2ZSBmdW5jdGlvbi4KICAKQEAgLTIxNDEwLDcgKzIxNDEwLDcg QEAgaW5kZXggYjVkYjRiNGFhOWQuLmNhNGNmOWQ4Yzk0IDEwMDY0NAogICAgICAgICAgcC5fdGVz dF9jb3B5X2RvZXNfbm90X3NoYXJlX2RhdGEoKipvcHRpb25zKQogIAogLSAgICBjcGRlZiB2YXJp YWJsZV91cHBlcl9ib3VuZChzZWxmLCBpbnQgaW5kZXgsIHZhbHVlID0gRmFsc2UpIG5vZXhjZXB0 OgotKyAgICBjcGRlZiB2YXJpYWJsZV91cHBlcl9ib3VuZChzZWxmLCBpbnQgaW5kZXgsIHZhbHVl ID0gRmFsc2UpOgorKyAgICBjcGRlZiB2YXJpYWJsZV91cHBlcl9ib3VuZChzZWxmLCBpbnQgaW5k ZXgsIHZhbHVlPUZhbHNlKToKICAgICAgICAgICIiIgogICAgICAgICAgUmV0dXJuIG9yIGRlZmlu ZSB0aGUgdXBwZXIgYm91bmQgb24gYSB2YXJpYWJsZQogIApAQCAtMjE0MTksNyArMjE0MTksNyBA QCBpbmRleCBiNWRiNGI0YWE5ZC4uY2E0Y2Y5ZDhjOTQgMTAwNjQ0CiAgICAgICAgICByYWlzZSBO b3RJbXBsZW1lbnRlZEVycm9yKCkKICAKIC0gICAgY3BkZWYgdmFyaWFibGVfbG93ZXJfYm91bmQo c2VsZiwgaW50IGluZGV4LCB2YWx1ZSA9IEZhbHNlKSBub2V4Y2VwdDoKLSsgICAgY3BkZWYgdmFy aWFibGVfbG93ZXJfYm91bmQoc2VsZiwgaW50IGluZGV4LCB2YWx1ZSA9IEZhbHNlKToKKysgICAg Y3BkZWYgdmFyaWFibGVfbG93ZXJfYm91bmQoc2VsZiwgaW50IGluZGV4LCB2YWx1ZT1GYWxzZSk6 CiAgICAgICAgICAiIiIKICAgICAgICAgIFJldHVybiBvciBkZWZpbmUgdGhlIGxvd2VyIGJvdW5k IG9uIGEgdmFyaWFibGUKICAKQEAgLTIxNDI4LDcgKzIxNDI4LDcgQEAgaW5kZXggYjVkYjRiNGFh OWQuLmNhNGNmOWQ4Yzk0IDEwMDY0NAogICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJv cigpCiAgCiAtICAgIGNwZGVmIHNvbHZlcl9wYXJhbWV0ZXIoc2VsZiwgbmFtZSwgdmFsdWUgPSBO b25lKSBub2V4Y2VwdDoKLSsgICAgY3BkZWYgc29sdmVyX3BhcmFtZXRlcihzZWxmLCBuYW1lLCB2 YWx1ZSA9IE5vbmUpOgorKyAgICBjcGRlZiBzb2x2ZXJfcGFyYW1ldGVyKHNlbGYsIG5hbWUsIHZh bHVlPU5vbmUpOgogICAgICAgICAgIiIiCiAgICAgICAgICBSZXR1cm4gb3IgZGVmaW5lIGEgc29s dmVyIHBhcmFtZXRlcgogIApAQCAtMjE0OTIsNyArMjE0OTIsNyBAQCBpbmRleCA0NDZiOWNlOGMy NS4uMDIzZjk1NjUzZDYgMTAwNjQ0CiAtY3BkZWYgR2VuZXJpY1NEUEJhY2tlbmQgZ2V0X3NvbHZl cihzb2x2ZXI9PywgYmFzZV9yaW5nPT8pIG5vZXhjZXB0CiArY3BkZWYgR2VuZXJpY1NEUEJhY2tl bmQgZ2V0X3NvbHZlcihzb2x2ZXI9PywgYmFzZV9yaW5nPT8pCiBkaWZmIC0tZ2l0IGEvc3JjL3Nh Z2UvbnVtZXJpY2FsL2JhY2tlbmRzL2dlbmVyaWNfc2RwX2JhY2tlbmQucHl4IGIvc3JjL3NhZ2Uv bnVtZXJpY2FsL2JhY2tlbmRzL2dlbmVyaWNfc2RwX2JhY2tlbmQucHl4Ci1pbmRleCA0NWJmZGU1 Zjg5Yi4uN2UwZWQ0YWY0Y2UgMTAwNjQ0CitpbmRleCA0NWJmZGU1Zjg5Yi4uNjY4NzZjNjgxMTkg MTAwNjQ0CiAtLS0gYS9zcmMvc2FnZS9udW1lcmljYWwvYmFja2VuZHMvZ2VuZXJpY19zZHBfYmFj a2VuZC5weXgKICsrKyBiL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9nZW5lcmljX3NkcF9i YWNrZW5kLnB5eAogQEAgLTI5LDcgKzI5LDcgQEAgQVVUSE9SUzoKQEAgLTIxNjM1LDcgKzIxNjM1 LDcgQEAgaW5kZXggNDViZmRlNWY4OWIuLjdlMGVkNGFmNGNlIDEwMDY0NAogICAgICAgICAgcmFp c2UgTm90SW1wbGVtZW50ZWRFcnJvcigpCiAgCiAtICAgIGNwZGVmIHNvbHZlcl9wYXJhbWV0ZXIo c2VsZiwgbmFtZSwgdmFsdWUgPSBOb25lKSBub2V4Y2VwdDoKLSsgICAgY3BkZWYgc29sdmVyX3Bh cmFtZXRlcihzZWxmLCBuYW1lLCB2YWx1ZSA9IE5vbmUpOgorKyAgICBjcGRlZiBzb2x2ZXJfcGFy YW1ldGVyKHNlbGYsIG5hbWUsIHZhbHVlPU5vbmUpOgogICAgICAgICAgIiIiCiAgICAgICAgICBS ZXR1cm4gb3IgZGVmaW5lIGEgc29sdmVyIHBhcmFtZXRlcgogIApAQCAtMjE2NDksNyArMjE2NDks NyBAQCBpbmRleCA0NWJmZGU1Zjg5Yi4uN2UwZWQ0YWY0Y2UgMTAwNjQ0CiAgICAgIFJldHVybiBh IHNvbHZlciBhY2NvcmRpbmcgdG8gdGhlIGdpdmVuIHByZWZlcmVuY2VzLgogIAogZGlmZiAtLWdp dCBhL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9nbHBrX2JhY2tlbmQucHhkIGIvc3JjL3Nh Z2UvbnVtZXJpY2FsL2JhY2tlbmRzL2dscGtfYmFja2VuZC5weGQKLWluZGV4IDRmZjFkNGE4ZDc2 Li5kZjJjMDI3ZTQwOCAxMDA2NDQKK2luZGV4IDRmZjFkNGE4ZDc2Li41ZmY0YTkwYTIxMSAxMDA2 NDQKIC0tLSBhL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9nbHBrX2JhY2tlbmQucHhkCiAr KysgYi9zcmMvc2FnZS9udW1lcmljYWwvYmFja2VuZHMvZ2xwa19iYWNrZW5kLnB4ZAogQEAgLTI2 LDE1ICsyNiwxNSBAQCBjZGVmIGNsYXNzIEdMUEtCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKQEAg LTIxNjU3LDggKzIxNjU3LDkgQEAgaW5kZXggNGZmMWQ0YThkNzYuLmRmMmMwMjdlNDA4IDEwMDY0 NAogICAgICBjZGVmIGludCBzaW1wbGV4X29yX2ludG9wdAogICAgICBjZGVmIHNlYXJjaF90cmVl X2RhdGFfdCBzZWFyY2hfdHJlZV9kYXRhCiAtICAgIGNwZGVmIF9fY29weV9fKHNlbGYpIG5vZXhj ZXB0CistICAgIGNwZGVmIGludCBwcmludF9yYW5nZXMoc2VsZiwgZmlsZW5hbWUgPSAqKSBleGNl cHQgLTEKICsgICAgY3BkZWYgX19jb3B5X18oc2VsZikKLSAgICAgY3BkZWYgaW50IHByaW50X3Jh bmdlcyhzZWxmLCBmaWxlbmFtZSA9ICopIGV4Y2VwdCAtMQorKyAgICBjcGRlZiBpbnQgcHJpbnRf cmFuZ2VzKHNlbGYsIGZpbGVuYW1lPSopIGV4Y2VwdCAtMQogICAgICBjcGRlZiBkb3VibGUgZ2V0 X3Jvd19kdWFsKHNlbGYsIGludCB2YXJpYWJsZSkgbm9leGNlcHQKICAgICAgY3BkZWYgZG91Ymxl IGdldF9jb2xfZHVhbChzZWxmLCBpbnQgdmFyaWFibGUpIGV4Y2VwdD8gLTEKICAgICAgY3BkZWYg aW50IGdldF9yb3dfc3RhdChzZWxmLCBpbnQgdmFyaWFibGUpIGV4Y2VwdD8gLTEKQEAgLTIxNjc1 LDcgKzIxNjc2LDcgQEAgaW5kZXggNGZmMWQ0YThkNzYuLmRmMmMwMjdlNDA4IDEwMDY0NAogKyAg ICBjcGRlZiBzZXRfY29sX3N0YXQoc2VsZiwgaW50IGosIGludCBzdGF0KQogICAgICBjcGRlZiBp bnQgd2FybV91cChzZWxmKSBub2V4Y2VwdAogZGlmZiAtLWdpdCBhL3NyYy9zYWdlL251bWVyaWNh bC9iYWNrZW5kcy9nbHBrX2JhY2tlbmQucHl4IGIvc3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRz L2dscGtfYmFja2VuZC5weXgKLWluZGV4IGIyNGVmYjUyMWVhLi5iNjk2NjgxNTk2OSAxMDA2NDQK K2luZGV4IGIyNGVmYjUyMWVhLi4xMGFiNDUyZTFmYSAxMDA2NDQKIC0tLSBhL3NyYy9zYWdlL251 bWVyaWNhbC9iYWNrZW5kcy9nbHBrX2JhY2tlbmQucHl4CiArKysgYi9zcmMvc2FnZS9udW1lcmlj YWwvYmFja2VuZHMvZ2xwa19iYWNrZW5kLnB5eAogQEAgLTIyOCw3ICsyMjgsNyBAQCBjZGVmIGNs YXNzIEdMUEtCYWNrZW5kKEdlbmVyaWNCYWNrZW5kKToKQEAgLTIxNzE5LDcgKzIxNzIwLDcgQEAg aW5kZXggYjI0ZWZiNTIxZWEuLmI2OTY2ODE1OTY5IDEwMDY0NAogICAgICAgICAgICAgIGdscF9z ZXRfcHJvYl9uYW1lKHNlbGYubHAsIG5hbWUpCiAgCiAtICAgIGNwZGVmIHNldF9vYmplY3RpdmUo c2VsZiwgbGlzdCBjb2VmZiwgZCA9IDAuMCkgbm9leGNlcHQ6Ci0rICAgIGNwZGVmIHNldF9vYmpl Y3RpdmUoc2VsZiwgbGlzdCBjb2VmZiwgZCA9IDAuMCk6CisrICAgIGNwZGVmIHNldF9vYmplY3Rp dmUoc2VsZiwgbGlzdCBjb2VmZiwgZD0wLjApOgogICAgICAgICAgIiIiCiAgICAgICAgICBTZXQg dGhlIG9iamVjdGl2ZSBmdW5jdGlvbi4KICAKQEAgLTIxODcyLDcgKzIxODczLDcgQEAgaW5kZXgg YjI0ZWZiNTIxZWEuLmI2OTY2ODE1OTY5IDEwMDY0NAogICAgICAgICAgcmV0dXJuIGdscF9nZXRf b2JqX2RpcihzZWxmLmxwKSA9PSBHTFBfTUFYCiAgCiAtICAgIGNwZGVmIHZhcmlhYmxlX3VwcGVy X2JvdW5kKHNlbGYsIGludCBpbmRleCwgdmFsdWUgPSBGYWxzZSkgbm9leGNlcHQ6Ci0rICAgIGNw ZGVmIHZhcmlhYmxlX3VwcGVyX2JvdW5kKHNlbGYsIGludCBpbmRleCwgdmFsdWUgPSBGYWxzZSk6 CisrICAgIGNwZGVmIHZhcmlhYmxlX3VwcGVyX2JvdW5kKHNlbGYsIGludCBpbmRleCwgdmFsdWU9 RmFsc2UpOgogICAgICAgICAgIiIiCiAgICAgICAgICBSZXR1cm4gb3IgZGVmaW5lIHRoZSB1cHBl ciBib3VuZCBvbiBhIHZhcmlhYmxlCiAgCkBAIC0yMTg4MSw3ICsyMTg4Miw3IEBAIGluZGV4IGIy NGVmYjUyMWVhLi5iNjk2NjgxNTk2OSAxMDA2NDQKICAgICAgICAgICAgICAgICAgc2lnX29mZigp CiAgCiAtICAgIGNwZGVmIHZhcmlhYmxlX2xvd2VyX2JvdW5kKHNlbGYsIGludCBpbmRleCwgdmFs dWUgPSBGYWxzZSkgbm9leGNlcHQ6Ci0rICAgIGNwZGVmIHZhcmlhYmxlX2xvd2VyX2JvdW5kKHNl bGYsIGludCBpbmRleCwgdmFsdWUgPSBGYWxzZSk6CisrICAgIGNwZGVmIHZhcmlhYmxlX2xvd2Vy X2JvdW5kKHNlbGYsIGludCBpbmRleCwgdmFsdWU9RmFsc2UpOgogICAgICAgICAgIiIiCiAgICAg ICAgICBSZXR1cm4gb3IgZGVmaW5lIHRoZSBsb3dlciBib3VuZCBvbiBhIHZhcmlhYmxlCiAgCkBA IC0yMTkxNyw3ICsyMTkxOCw3IEBAIGluZGV4IGIyNGVmYjUyMWVhLi5iNjk2NjgxNTk2OSAxMDA2 NDQKICAKICAKIC0gICAgY3BkZWYgc29sdmVyX3BhcmFtZXRlcihzZWxmLCBuYW1lLCB2YWx1ZSA9 IE5vbmUpIG5vZXhjZXB0OgotKyAgICBjcGRlZiBzb2x2ZXJfcGFyYW1ldGVyKHNlbGYsIG5hbWUs IHZhbHVlID0gTm9uZSk6CisrICAgIGNwZGVmIHNvbHZlcl9wYXJhbWV0ZXIoc2VsZiwgbmFtZSwg dmFsdWU9Tm9uZSk6CiAgICAgICAgICAiIiIKICAgICAgICAgIFJldHVybiBvciBkZWZpbmUgYSBz b2x2ZXIgcGFyYW1ldGVyCiAgCkBAIC0yMTk4MSw3ICsyMTk4Miw3IEBAIGluZGV4IDM1MDg5NDJm NWU0Li4zMDMxNzQ4ZWI0MiAxMDA2NDQKICAgICAgICAgIFNldCB0aGUgdHlwZSBvZiBhIHZhcmlh YmxlLgogIAogZGlmZiAtLWdpdCBhL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9nbHBrX2dy YXBoX2JhY2tlbmQucHhkIGIvc3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL2dscGtfZ3JhcGhf YmFja2VuZC5weGQKLWluZGV4IDkyNmM2MDEzNGRjLi4yOGQyZTY1ZDdlZiAxMDA2NDQKK2luZGV4 IDkyNmM2MDEzNGRjLi4yZTRiMjlhMjVhOSAxMDA2NDQKIC0tLSBhL3NyYy9zYWdlL251bWVyaWNh bC9iYWNrZW5kcy9nbHBrX2dyYXBoX2JhY2tlbmQucHhkCiArKysgYi9zcmMvc2FnZS9udW1lcmlj YWwvYmFja2VuZHMvZ2xwa19ncmFwaF9iYWNrZW5kLnB4ZAogQEAgLTI3LDIyICsyNywyMiBAQCBj dHlwZWRlZiBzdHJ1Y3QgY19hX2RhdGE6CkBAIC0yMjAwNCw3ICsyMjAwNSw3IEBAIGluZGV4IDky NmM2MDEzNGRjLi4yOGQyZTY1ZDdlZiAxMDA2NDQKIC0gICAgY3BkZWYgbGlzdCBlZGdlcyhzZWxm KSBub2V4Y2VwdAogLSAgICBjcGRlZiBkZWxldGVfdmVydGV4KHNlbGYsIHZlcnQpIG5vZXhjZXB0 CiAtICAgIGNwZGVmIGRlbGV0ZV92ZXJ0aWNlcyhzZWxmLCBsaXN0IHZlcnRzKSBub2V4Y2VwdAot KyAgICBjcGRlZiBhZGRfdmVydGV4KHNlbGYsIG5hbWUgPSA/KQorKyAgICBjcGRlZiBhZGRfdmVy dGV4KHNlbGYsIG5hbWU9PykKICsgICAgY3BkZWYgbGlzdCBhZGRfdmVydGljZXMoc2VsZiwgdmVy dGljZXMpCiArICAgIGNwZGVmIF9fYWRkX3ZlcnRpY2VzX3NhZ2Uoc2VsZiwgZykKICsgICAgY3Bk ZWYgZGljdCBnZXRfdmVydGV4KHNlbGYsIHZlcnRleCkKQEAgLTIyMDEyLDEwICsyMjAxMywxMCBA QCBpbmRleCA5MjZjNjAxMzRkYy4uMjhkMmU2NWQ3ZWYgMTAwNjQ0CiArICAgIGNwZGVmIHNldF92 ZXJ0ZXhfZGVtYW5kKHNlbGYsIHZlcnRleCwgcGFyYW0pCiArICAgIGNwZGVmIHNldF92ZXJ0aWNl c19kZW1hbmQoc2VsZiwgbGlzdCBwYWlycykKICsgICAgY3BkZWYgbGlzdCB2ZXJ0aWNlcyhzZWxm KQotKyAgICBjcGRlZiBhZGRfZWRnZShzZWxmLCB1LCB2LCBkaWN0IHBhcmFtcyA9ID8pCisrICAg IGNwZGVmIGFkZF9lZGdlKHNlbGYsIHUsIHYsIGRpY3QgcGFyYW1zPT8pCiArICAgIGNwZGVmIF9f YWRkX2VkZ2VzX3NhZ2Uoc2VsZiwgZykKICsgICAgY3BkZWYgbGlzdCBhZGRfZWRnZXMoc2VsZiwg ZWRnZXMpCi0rICAgIGNwZGVmIGRlbGV0ZV9lZGdlKHNlbGYsIHUsIHYsIGRpY3QgcGFyYW1zID0g PykKKysgICAgY3BkZWYgZGVsZXRlX2VkZ2Uoc2VsZiwgdSwgdiwgZGljdCBwYXJhbXM9PykKICsg ICAgY3BkZWYgdHVwbGUgZ2V0X2VkZ2Uoc2VsZiwgdSwgdikKICsgICAgY3BkZWYgbGlzdCBlZGdl cyhzZWxmKQogKyAgICBjcGRlZiBkZWxldGVfdmVydGV4KHNlbGYsIHZlcnQpCkBAIC0yMjE4NSw3 ICsyMjE4Niw3IEBAIGluZGV4IGYyOTE4NzYzMmZjLi4wN2U2M2E3YmI0NCAxMDA2NDQKIC0gICAg Y3BkZWYgaW50ZXJhY3RpdmVfbHBfcHJvYmxlbShzZWxmKSBub2V4Y2VwdAogKyAgICBjcGRlZiBp bnRlcmFjdGl2ZV9scF9wcm9ibGVtKHNlbGYpCiBkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbnVtZXJp Y2FsL2JhY2tlbmRzL2ludGVyYWN0aXZlbHBfYmFja2VuZC5weXggYi9zcmMvc2FnZS9udW1lcmlj YWwvYmFja2VuZHMvaW50ZXJhY3RpdmVscF9iYWNrZW5kLnB5eAotaW5kZXggMzA2MmEyOWViMWYu LjM0ODRkNzM5NjY3IDEwMDY0NAoraW5kZXggMzA2MmEyOWViMWYuLjY0ZWY1NjEzNzVhIDEwMDY0 NAogLS0tIGEvc3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tlbmRzL2ludGVyYWN0aXZlbHBfYmFja2Vu ZC5weXgKICsrKyBiL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9pbnRlcmFjdGl2ZWxwX2Jh Y2tlbmQucHl4CiBAQCAtODIsNyArODIsNyBAQCBjZGVmIGNsYXNzIEludGVyYWN0aXZlTFBCYWNr ZW5kOgpAQCAtMjIyNDcsNyArMjIyNDgsNyBAQCBpbmRleCAzMDYyYTI5ZWIxZi4uMzQ4NGQ3Mzk2 NjcgMTAwNjQ0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBy b2JsZW1fdHlwZSwgcmluZywgb2JqZWN0aXZlX2NvbnN0YW50X3Rlcm09ZCkKICAKIC0gICAgY3Bk ZWYgc2V0X29iamVjdGl2ZShzZWxmLCBsaXN0IGNvZWZmLCBkID0gMCkgbm9leGNlcHQ6Ci0rICAg IGNwZGVmIHNldF9vYmplY3RpdmUoc2VsZiwgbGlzdCBjb2VmZiwgZCA9IDApOgorKyAgICBjcGRl ZiBzZXRfb2JqZWN0aXZlKHNlbGYsIGxpc3QgY29lZmYsIGQ9MCk6CiAgICAgICAgICAiIiIKICAg ICAgICAgIFNldCB0aGUgb2JqZWN0aXZlIGZ1bmN0aW9uLgogIApAQCAtMjIzNjQsNyArMjIzNjUs NyBAQCBpbmRleCAzMDYyYTI5ZWIxZi4uMzQ4NGQ3Mzk2NjcgMTAwNjQ0CiAgICAgICAgICByZXR1 cm4gc3RyKHNlbGYubHAuZGVjaXNpb25fdmFyaWFibGVzKClbaW5kZXhdKQogIAogLSAgICBjcGRl ZiB2YXJpYWJsZV91cHBlcl9ib3VuZChzZWxmLCBpbnQgaW5kZXgsIHZhbHVlID0gRmFsc2UpIG5v ZXhjZXB0OgotKyAgICBjcGRlZiB2YXJpYWJsZV91cHBlcl9ib3VuZChzZWxmLCBpbnQgaW5kZXgs IHZhbHVlID0gRmFsc2UpOgorKyAgICBjcGRlZiB2YXJpYWJsZV91cHBlcl9ib3VuZChzZWxmLCBp bnQgaW5kZXgsIHZhbHVlPUZhbHNlKToKICAgICAgICAgICIiIgogICAgICAgICAgUmV0dXJuIG9y IGRlZmluZSB0aGUgdXBwZXIgYm91bmQgb24gYSB2YXJpYWJsZQogIApAQCAtMjIzNzMsNyArMjIz NzQsNyBAQCBpbmRleCAzMDYyYTI5ZWIxZi4uMzQ4NGQ3Mzk2NjcgMTAwNjQ0CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9ibGVtX3R5cGUsIHJpbmcs IG9iamVjdGl2ZV9jb25zdGFudF90ZXJtPWQpCiAgCiAtICAgIGNwZGVmIHZhcmlhYmxlX2xvd2Vy X2JvdW5kKHNlbGYsIGludCBpbmRleCwgdmFsdWUgPSBGYWxzZSkgbm9leGNlcHQ6Ci0rICAgIGNw ZGVmIHZhcmlhYmxlX2xvd2VyX2JvdW5kKHNlbGYsIGludCBpbmRleCwgdmFsdWUgPSBGYWxzZSk6 CisrICAgIGNwZGVmIHZhcmlhYmxlX2xvd2VyX2JvdW5kKHNlbGYsIGludCBpbmRleCwgdmFsdWU9 RmFsc2UpOgogICAgICAgICAgIiIiCiAgICAgICAgICBSZXR1cm4gb3IgZGVmaW5lIHRoZSBsb3dl ciBib3VuZCBvbiBhIHZhcmlhYmxlCiAgCkBAIC0yMjQ5MCw3ICsyMjQ5MSw3IEBAIGluZGV4IDYz MWE3YmQ2ZGRlLi5mNGU3ZWNiMTNmMCAxMDA2NDQKICAgICAgICAgIFJldHVybiB0aGUgYGBpbmRl eGBgIHRoIGNvbCBuYW1lCiAgCiBkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbnVtZXJpY2FsL2JhY2tl bmRzL3BwbF9iYWNrZW5kLnB5eCBiL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5kcy9wcGxfYmFj a2VuZC5weXgKLWluZGV4IDhiZjE4ZDcwMDRiLi43MjVjZWJkNGMzYSAxMDA2NDQKK2luZGV4IDhi ZjE4ZDcwMDRiLi45ODc4NDJmNzI4YyAxMDA2NDQKIC0tLSBhL3NyYy9zYWdlL251bWVyaWNhbC9i YWNrZW5kcy9wcGxfYmFja2VuZC5weXgKICsrKyBiL3NyYy9zYWdlL251bWVyaWNhbC9iYWNrZW5k cy9wcGxfYmFja2VuZC5weXgKIEBAIC05MSwxNCArOTEsMTQgQEAgY2RlZiBjbGFzcyBQUExCYWNr ZW5kKEdlbmVyaWNCYWNrZW5kKToKQEAgLTIyNjYwLDcgKzIyNjYxLDcgQEAgaW5kZXggOGJmMThk NzAwNGIuLjcyNWNlYmQ0YzNhIDEwMDY0NAogICAgICAgICAgcmV0dXJuICJ4XyIgKyByZXByKGlu ZGV4KQogIAogLSAgICBjcGRlZiB2YXJpYWJsZV91cHBlcl9ib3VuZChzZWxmLCBpbnQgaW5kZXgs IHZhbHVlID0gRmFsc2UpIG5vZXhjZXB0OgotKyAgICBjcGRlZiB2YXJpYWJsZV91cHBlcl9ib3Vu ZChzZWxmLCBpbnQgaW5kZXgsIHZhbHVlID0gRmFsc2UpOgorKyAgICBjcGRlZiB2YXJpYWJsZV91 cHBlcl9ib3VuZChzZWxmLCBpbnQgaW5kZXgsIHZhbHVlPUZhbHNlKToKICAgICAgICAgICIiIgog ICAgICAgICAgUmV0dXJuIG9yIGRlZmluZSB0aGUgdXBwZXIgYm91bmQgb24gYSB2YXJpYWJsZQog IApAQCAtMjI2NjksNyArMjI2NzAsNyBAQCBpbmRleCA4YmYxOGQ3MDA0Yi4uNzI1Y2ViZDRjM2Eg MTAwNjQ0CiAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuY29sX3VwcGVyX2JvdW5kW2luZGV4XQog IAogLSAgICBjcGRlZiB2YXJpYWJsZV9sb3dlcl9ib3VuZChzZWxmLCBpbnQgaW5kZXgsIHZhbHVl ID0gRmFsc2UpIG5vZXhjZXB0OgotKyAgICBjcGRlZiB2YXJpYWJsZV9sb3dlcl9ib3VuZChzZWxm LCBpbnQgaW5kZXgsIHZhbHVlID0gRmFsc2UpOgorKyAgICBjcGRlZiB2YXJpYWJsZV9sb3dlcl9i b3VuZChzZWxmLCBpbnQgaW5kZXgsIHZhbHVlPUZhbHNlKToKICAgICAgICAgICIiIgogICAgICAg ICAgUmV0dXJuIG9yIGRlZmluZSB0aGUgbG93ZXIgYm91bmQgb24gYSB2YXJpYWJsZQogIApAQCAt MjQ1NzksNyArMjQ1ODAsNyBAQCBpbmRleCBlYzA5ZjljYzc2OS4uYzIxNGU0NzQ1YTkgMTAwNjQ0 CiArICAgIGNwZGVmIEZpbml0ZVBvbHlFeHRFbGVtZW50IGZldGNoX2ludChzZWxmLCBudW1iZXIp CiAgCiBkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2VsZW1lbnRfYmFz ZS5weXggYi9zcmMvc2FnZS9yaW5ncy9maW5pdGVfcmluZ3MvZWxlbWVudF9iYXNlLnB5eAotaW5k ZXggMWQwZGQyYjU2M2EuLmY2ZTA4MzIwZTVlIDEwMDc1NQoraW5kZXggNDJjYTI1YjkzMGUuLmY2 YTQ1MGVkZmEyIDEwMDc1NQogLS0tIGEvc3JjL3NhZ2UvcmluZ3MvZmluaXRlX3JpbmdzL2VsZW1l bnRfYmFzZS5weXgKICsrKyBiL3NyYy9zYWdlL3JpbmdzL2Zpbml0ZV9yaW5ncy9lbGVtZW50X2Jh c2UucHl4CiBAQCAtMTEzNiw3ICsxMTM2LDcgQEAgY2RlZiBjbGFzcyBGaW5pdGVQb2x5RXh0RWxl bWVudChGaW5pdGVSaW5nRWxlbWVudCk6CkBAIC0yNDkyMSw3ICsyNDkyMiw3IEBAIGluZGV4IGI3 ODZhZGEwMGRlLi45ODliMGUyMGI5ZSAxMDA2NDQKICAgICAgICAgIERpdmlzaW9uLgogIAogZGlm ZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL2Zpbml0ZV9yaW5ncy9maW5pdGVfZmllbGRfYmFzZS5w eXggYi9zcmMvc2FnZS9yaW5ncy9maW5pdGVfcmluZ3MvZmluaXRlX2ZpZWxkX2Jhc2UucHl4Ci1p bmRleCAwMGIzMGJiNWE0NC4uMjQzYmY4NWUxY2YgMTAwNjQ0CitpbmRleCA3NDE5YzE1OGQ4Yy4u NDg1MjM4ZDNiNDEgMTAwNjQ0CiAtLS0gYS9zcmMvc2FnZS9yaW5ncy9maW5pdGVfcmluZ3MvZmlu aXRlX2ZpZWxkX2Jhc2UucHl4CiArKysgYi9zcmMvc2FnZS9yaW5ncy9maW5pdGVfcmluZ3MvZmlu aXRlX2ZpZWxkX2Jhc2UucHl4CiBAQCAtMTMxOCw3ICsxMzE4LDcgQEAgY2RlZiBjbGFzcyBGaW5p dGVGaWVsZChGaWVsZCk6CkBAIC0yNjQ0OSw3ICsyNjQ1MCw3IEBAIGluZGV4IGQwYTE5MDJjNDQ5 Li44NmEyOTM0MDExYyAxMDA2NDQKICAgICAgVGhpcyBpcyB0aGUgZmFzdGVzdCB3YXkgdG8gY3Jl YXRlIGEgKGxpa2VseSkgc21hbGwgSW50ZWdlci4KICAgICAgIiIiCiBkaWZmIC0tZ2l0IGEvc3Jj L3NhZ2UvcmluZ3MvaW50ZWdlcl9yaW5nLnB5eCBiL3NyYy9zYWdlL3JpbmdzL2ludGVnZXJfcmlu Zy5weXgKLWluZGV4IGJiYmQ5ODlhNjVkLi5mOWJlZjQxNGM2MCAxMDA2NDQKK2luZGV4IDkxOTlk ZWJiZmI2Li5kNDkxYjc4MDY4ZSAxMDA2NDQKIC0tLSBhL3NyYy9zYWdlL3JpbmdzL2ludGVnZXJf cmluZy5weXgKICsrKyBiL3NyYy9zYWdlL3JpbmdzL2ludGVnZXJfcmluZy5weXgKIEBAIC01Mjgs NyArNTI4LDcgQEAgY2RlZiBjbGFzcyBJbnRlZ2VyUmluZ19jbGFzcyhQcmluY2lwYWxJZGVhbERv bWFpbik6CkBAIC0zMTIzMSwxMCArMzEyMzIsMTAgQEAgaW5kZXggZmNiYTgwODUxZTguLjZmYWUz Yjk2MzIzIDEwMDY0NAogICAgICAgICAgaWYgb3JkZXIgPT0gcGJibG9ja19kbGV4OgogICAgICAg ICAgICAgIG9yZGVyX3N0ciA9IHBiX2Jsb2NrX29yZGVyKG4sICJkZWdsZXgiLCBibG9ja3MpCiBk aWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wbHVyYWwucHhkIGIvc3JjL3Nh Z2UvcmluZ3MvcG9seW5vbWlhbC9wbHVyYWwucHhkCi1pbmRleCAwNmI0OGM3MzdmMy4uYTIxZDg2 ZWVjMWYgMTAwNjQ0CitpbmRleCA1ZTM2MThiZDkwZS4uOTBiNzk5NDc1OTIgMTAwNjQ0CiAtLS0g YS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BsdXJhbC5weGQKICsrKyBiL3NyYy9zYWdlL3Jp bmdzL3BvbHlub21pYWwvcGx1cmFsLnB4ZAotQEAgLTMyLDE0ICszMiwxNCBAQCBjZGVmIGNsYXNz IEV4dGVyaW9yQWxnZWJyYV9wbHVyYWwoTkNQb2x5bm9taWFsUmluZ19wbHVyYWwpOgorQEAgLTMy LDE2ICszMiwxNiBAQCBjZGVmIGNsYXNzIEV4dGVyaW9yQWxnZWJyYV9wbHVyYWwoTkNQb2x5bm9t aWFsUmluZ19wbHVyYWwpOgogIAogIGNkZWYgY2xhc3MgTkNQb2x5bm9taWFsX3BsdXJhbChSaW5n RWxlbWVudCk6CiAgICAgIGNkZWYgcG9seSAqX3BvbHkKQEAgLTMxMjQ2LDcgKzMxMjQ3LDExIEBA IGluZGV4IDA2YjQ4YzczN2YzLi5hMjFkODZlZWMxZiAxMDA2NDQKICsgICAgY3BkZWYgX3JlcHJf c2hvcnRfKHNlbGYpCiAgICAgIGNkZWYgbG9uZyBfaGFzaF9jKHNlbGYpIG5vZXhjZXB0CiAtICAg IGNwZGVmIGlzX2NvbnN0YW50KHNlbGYpIG5vZXhjZXB0CistICAgIGNwZGVmIGRpY3QgZGljdChz ZWxmKSBub2V4Y2VwdAorLSAgICBjcGRlZiBkaWN0IG1vbm9taWFsX2NvZWZmaWNpZW50cyhzZWxm LCBiaW50IGNvcHk9Kikgbm9leGNlcHQKICsgICAgY3BkZWYgaXNfY29uc3RhbnQoc2VsZikKKysg ICAgY3BkZWYgZGljdCBkaWN0KHNlbGYpCisrICAgIGNwZGVmIGRpY3QgbW9ub21pYWxfY29lZmZp Y2llbnRzKHNlbGYsIGJpbnQgY29weT0qKQogICMgICAgY3BkZWYgX2hvbW9nZW5pemUoc2VsZiwg aW50IHZhcikKICAKIC1jZGVmIE5DUG9seW5vbWlhbF9wbHVyYWwgbmV3X05DUChOQ1BvbHlub21p YWxSaW5nX3BsdXJhbCBwYXJlbnQsIHBvbHkgKmp1aWNlKSBub2V4Y2VwdApAQCAtMzEyNTcsNyAr MzEyNjIsNyBAQCBpbmRleCAwNmI0OGM3MzdmMy4uYTIxZDg2ZWVjMWYgMTAwNjQ0CiArY3BkZWYg TVBvbHlub21pYWxSaW5nX2xpYnNpbmd1bGFyIG5ld19DUmluZyhSaW5nV3JhcCBydywgYmFzZV9y aW5nKQogK2NwZGVmIE5DUG9seW5vbWlhbFJpbmdfcGx1cmFsIG5ld19OUmluZyhSaW5nV3JhcCBy dywgYmFzZV9yaW5nKQogZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcGx1 cmFsLnB5eCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcGx1cmFsLnB5eAotaW5kZXggNGZi NzEwNGNjZTYuLmYzM2Q0ZTYyNjM0IDEwMDY0NAoraW5kZXggMzBlNmFhODlkYzMuLjIzZGQyYTEx MTc5IDEwMDY0NAogLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wbHVyYWwucHl4CiAr KysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BsdXJhbC5weXgKIEBAIC01NjQsNyArNTY0 LDcgQEAgY2RlZiBjbGFzcyBOQ1BvbHlub21pYWxSaW5nX3BsdXJhbChSaW5nKToKQEAgLTMxMjY5 LDcgKzMxMjc0LDcgQEAgaW5kZXggNGZiNzEwNGNjZTYuLmYzM2Q0ZTYyNjM0IDEwMDY0NAogICAg ICAgICAgIiIiCiAgICAgICAgICBUaGUgb25seSB0aGluZ3MgdGhhdCBjb2VyY2UgaW50byB0aGlz IHJpbmcgYXJlOgogIAotQEAgLTE0NjQsNyArMTQ2NCw3IEBAIGNkZWYgY2xhc3MgTkNQb2x5bm9t aWFsX3BsdXJhbChSaW5nRWxlbWVudCk6CitAQCAtMTQ3OCw3ICsxNDc4LDcgQEAgY2RlZiBjbGFz cyBOQ1BvbHlub21pYWxfcGx1cmFsKFJpbmdFbGVtZW50KToKICAgICAgICAgICIiIgogICAgICAg ICAgcmV0dXJuIHNlbGYuX2hhc2hfYygpCiAgCkBAIC0zMTI3OCw3ICszMTI4Myw3IEBAIGluZGV4 IDRmYjcxMDRjY2U2Li5mMzNkNGU2MjYzNCAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAg Q29tcGFyZSBsZWZ0IGFuZCByaWdodC4KICAKLUBAIC0xNTE1LDcgKzE1MTUsNyBAQCBjZGVmIGNs YXNzIE5DUG9seW5vbWlhbF9wbHVyYWwoUmluZ0VsZW1lbnQpOgorQEAgLTE1MjksNyArMTUyOSw3 IEBAIGNkZWYgY2xhc3MgTkNQb2x5bm9taWFsX3BsdXJhbChSaW5nRWxlbWVudCk6CiAgICAgICAg ICBjZGVmIHJpbmcgKnIgPSAoPE5DUG9seW5vbWlhbFJpbmdfcGx1cmFsPmxlZnQuX3BhcmVudCku X3JpbmcKICAgICAgICAgIHJldHVybiByaWNoX3RvX2Jvb2wob3AsIHNpbmd1bGFyX3BvbHlub21p YWxfY21wKHAsIHEsIHIpKQogIApAQCAtMzEyODcsNyArMzEyOTIsNyBAQCBpbmRleCA0ZmI3MTA0 Y2NlNi4uZjMzZDRlNjI2MzQgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIEFkZHMgbGVm dCBhbmQgcmlnaHQuCiAgCi1AQCAtMTUzNCw3ICsxNTM0LDcgQEAgY2RlZiBjbGFzcyBOQ1BvbHlu b21pYWxfcGx1cmFsKFJpbmdFbGVtZW50KToKK0BAIC0xNTQ4LDcgKzE1NDgsNyBAQCBjZGVmIGNs YXNzIE5DUG9seW5vbWlhbF9wbHVyYWwoUmluZ0VsZW1lbnQpOgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKDxOQ1BvbHlub21pYWxSaW5nX3BsdXJhbD5sZWZ0Ll9wYXJlbnQpLl9y aW5nKQogICAgICAgICAgcmV0dXJuIG5ld19OQ1AoKDxOQ1BvbHlub21pYWxSaW5nX3BsdXJhbD5s ZWZ0Ll9wYXJlbnQpLCBfcCkKICAKQEAgLTMxMjk2LDcgKzMxMzAxLDcgQEAgaW5kZXggNGZiNzEw NGNjZTYuLmYzM2Q0ZTYyNjM0IDEwMDY0NAogICAgICAgICAgIiIiCiAgICAgICAgICBTdWJ0cmFj dCBsZWZ0IGFuZCByaWdodC4KICAKLUBAIC0xNTU2LDcgKzE1NTYsNyBAQCBjZGVmIGNsYXNzIE5D UG9seW5vbWlhbF9wbHVyYWwoUmluZ0VsZW1lbnQpOgorQEAgLTE1NzAsNyArMTU3MCw3IEBAIGNk ZWYgY2xhc3MgTkNQb2x5bm9taWFsX3BsdXJhbChSaW5nRWxlbWVudCk6CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBfcmluZykKICAgICAgICAgIHJldHVybiBuZXdfTkNQKCg8TkNQ b2x5bm9taWFsUmluZ19wbHVyYWw+bGVmdC5fcGFyZW50KSwgX3ApCiAgCkBAIC0zMTMwNSw3ICsz MTMxMCw3IEBAIGluZGV4IDRmYjcxMDRjY2U2Li5mMzNkNGU2MjYzNCAxMDA2NDQKICAgICAgICAg ICIiIgogICAgICAgICAgTXVsdGlwbHkgYGBzZWxmYGAgd2l0aCBhIGJhc2UgcmluZyBlbGVtZW50 LgogIAotQEAgLTE1ODYsNyArMTU4Niw3IEBAIGNkZWYgY2xhc3MgTkNQb2x5bm9taWFsX3BsdXJh bChSaW5nRWxlbWVudCk6CitAQCAtMTYwMCw3ICsxNjAwLDcgQEAgY2RlZiBjbGFzcyBOQ1BvbHlu b21pYWxfcGx1cmFsKFJpbmdFbGVtZW50KToKICAgICAgICAgIHNpbmd1bGFyX3BvbHlub21pYWxf cm11bCgmX3AsIHNlbGYuX3BvbHksIGxlZnQsIF9yaW5nKQogICAgICAgICAgcmV0dXJuIG5ld19O Q1AoKDxOQ1BvbHlub21pYWxSaW5nX3BsdXJhbD5zZWxmLl9wYXJlbnQpLF9wKQogIApAQCAtMzEz MTQsNyArMzEzMTksNyBAQCBpbmRleCA0ZmI3MTA0Y2NlNi4uZjMzZDRlNjI2MzQgMTAwNjQ0CiAg ICAgICAgICAiIiIKICAgICAgICAgIE11bHRpcGx5IGxlZnQgYW5kIHJpZ2h0LgogIAotQEAgLTE2 MTcsNyArMTYxNyw3IEBAIGNkZWYgY2xhc3MgTkNQb2x5bm9taWFsX3BsdXJhbChSaW5nRWxlbWVu dCk6CitAQCAtMTYzMSw3ICsxNjMxLDcgQEAgY2RlZiBjbGFzcyBOQ1BvbHlub21pYWxfcGx1cmFs KFJpbmdFbGVtZW50KToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICg8TkNQb2x5 bm9taWFsUmluZ19wbHVyYWw+bGVmdC5fcGFyZW50KS5fcmluZykKICAgICAgICAgIHJldHVybiBu ZXdfTkNQKCg8TkNQb2x5bm9taWFsUmluZ19wbHVyYWw+bGVmdC5fcGFyZW50KSxfcCkKICAKQEAg LTMxMzIzLDcgKzMxMzI4LDcgQEAgaW5kZXggNGZiNzEwNGNjZTYuLmYzM2Q0ZTYyNjM0IDEwMDY0 NAogICAgICAgICAgIiIiCiAgICAgICAgICBEaXZpZGUgbGVmdCBieSByaWdodAogIAotQEAgLTE3 OTksNyArMTc5OSw3IEBAIGNkZWYgY2xhc3MgTkNQb2x5bm9taWFsX3BsdXJhbChSaW5nRWxlbWVu dCk6CitAQCAtMTgxMyw3ICsxODEzLDcgQEAgY2RlZiBjbGFzcyBOQ1BvbHlub21pYWxfcGx1cmFs KFJpbmdFbGVtZW50KToKICAgICAgICAgIHMgPSBzaW5ndWxhcl9wb2x5bm9taWFsX3N0cihzZWxm Ll9wb2x5LCBfcmluZykKICAgICAgICAgIHJldHVybiBzCiAgCkBAIC0zMTMzMiw3ICszMTMzNywy NSBAQCBpbmRleCA0ZmI3MTA0Y2NlNi4uZjMzZDRlNjI2MzQgMTAwNjQ0CiAgICAgICAgICAiIiIK ICAgICAgICAgIFRoaXMgaXMgYSBmYXN0ZXIgYnV0IGxlc3MgcHJldHR5IHdheSB0byBwcmludCBw b2x5bm9taWFscy4gSWYKICAgICAgICAgIGF2YWlsYWJsZSBpdCB1c2VzIHRoZSBzaG9ydCBTSU5H VUxBUiBub3RhdGlvbi4KLUBAIC0yNTgxLDcgKzI1ODEsNyBAQCBjZGVmIGNsYXNzIE5DUG9seW5v bWlhbF9wbHVyYWwoUmluZ0VsZW1lbnQpOgorQEAgLTIxOTIsNyArMjE5Miw3IEBAIGNkZWYgY2xh c3MgTkNQb2x5bm9taWFsX3BsdXJhbChSaW5nRWxlbWVudCk6CisgCisgICAgICAgICByZXR1cm4g KDxOQ1BvbHlub21pYWxSaW5nX3BsdXJhbD5zZWxmLl9wYXJlbnQpLl9iYXNlLl96ZXJvX2VsZW1l bnQKKyAKKy0gICAgY3BkZWYgZGljdCBkaWN0KHNlbGYpIG5vZXhjZXB0OgorKyAgICBjcGRlZiBk aWN0IGRpY3Qoc2VsZik6CisgICAgICAgICAiIiIKKyAgICAgICAgIFJldHVybiBhIGRpY3Rpb25h cnkgcmVwcmVzZW50aW5nIGBgc2VsZmBgLiBUaGlzIGRpY3Rpb25hcnkgaXMgaW4KKyAgICAgICAg IHRoZSBzYW1lIGZvcm1hdCBhcyB0aGUgZ2VuZXJpYyBNUG9seW5vbWlhbDogVGhlIGRpY3Rpb25h cnkKK0BAIC0yMjMyLDcgKzIyMzIsNyBAQCBjZGVmIGNsYXNzIE5DUG9seW5vbWlhbF9wbHVyYWwo UmluZ0VsZW1lbnQpOgorICAgICAgICAgICAgIHAgPSBwTmV4dChwKQorICAgICAgICAgcmV0dXJu IHBkCisgCistICAgIGNwZGVmIGRpY3QgbW9ub21pYWxfY29lZmZpY2llbnRzKHNlbGYsIGJpbnQg Y29weT1UcnVlKSBub2V4Y2VwdDoKKysgICAgY3BkZWYgZGljdCBtb25vbWlhbF9jb2VmZmljaWVu dHMoc2VsZiwgYmludCBjb3B5PVRydWUpOgorICAgICAgICAgIiIiCisgICAgICAgICBSZXR1cm4g YSBkaWN0aW9uYXJ5IHJlcHJlc2VudGF0aW9uIG9mIGBgc2VsZmBgIHdpdGggdGhlIGtleXMKKyAg ICAgICAgIHRoZSBleHBvbmVudCB2ZWN0b3JzIGFuZCB0aGUgdmFsdWVzIHRoZSBjb3JyZXNwb25k aW5nIGNvZWZmaWNpZW50cy4KK0BAIC0yNjIwLDcgKzI2MjAsNyBAQCBjZGVmIGNsYXNzIE5DUG9s eW5vbWlhbF9wbHVyYWwoUmluZ0VsZW1lbnQpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAo PE5DUG9seW5vbWlhbFJpbmdfcGx1cmFsPnNlbGYuX3BhcmVudCkuX2Jhc2UpCiAgICAgICAgICBy ZXR1cm4gKDxOQ1BvbHlub21pYWxSaW5nX3BsdXJhbD5zZWxmLl9wYXJlbnQpLl9iYXNlLl96ZXJv X2VsZW1lbnQKICAKQEAgLTMxMzQxLDcgKzMxMzY0LDcgQEAgaW5kZXggNGZiNzEwNGNjZTYuLmYz M2Q0ZTYyNjM0IDEwMDY0NAogICAgICAgICAgIiIiCiAgICAgICAgICBSZXR1cm4gYGBUcnVlYGAg aWYgdGhpcyBwb2x5bm9taWFsIGlzIGNvbnN0YW50LgogIAotQEAgLTI3OTgsNyArMjc5OCw3IEBA IGNkZWYgY2xhc3MgTkNQb2x5bm9taWFsX3BsdXJhbChSaW5nRWxlbWVudCk6CitAQCAtMjgzNyw3 ICsyODM3LDcgQEAgY2RlZiBjbGFzcyBOQ1BvbHlub21pYWxfcGx1cmFsKFJpbmdFbGVtZW50KToK ICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKICAKICBjZGVmIGlubGluZSBOQ1BvbHlub21pYWxfcGx1cmFsIG5ld19O Q1AoTkNQb2x5bm9taWFsUmluZ19wbHVyYWwgcGFyZW50LApAQCAtMzEzNTAsNyArMzEzNzMsNyBA QCBpbmRleCA0ZmI3MTA0Y2NlNi4uZjMzZDRlNjI2MzQgMTAwNjQ0CiAgICAgICIiIgogICAgICBD b25zdHJ1Y3QgTkNQb2x5bm9taWFsX3BsdXJhbCBmcm9tIHBhcmVudCBhbmQgU0lOR1VMQVIgcG9s eS4KICAKLUBAIC0yODE2LDcgKzI4MTYsNyBAQCBjZGVmIGlubGluZSBOQ1BvbHlub21pYWxfcGx1 cmFsIG5ld19OQ1AoTkNQb2x5bm9taWFsUmluZ19wbHVyYWwgcGFyZW50LAorQEAgLTI4NTUsNyAr Mjg1NSw3IEBAIGNkZWYgaW5saW5lIE5DUG9seW5vbWlhbF9wbHVyYWwgbmV3X05DUChOQ1BvbHlu b21pYWxSaW5nX3BsdXJhbCBwYXJlbnQsCiAgICAgIHJldHVybiBwCiAgCiAgCkBAIC0zMTM1OSw3 ICszMTM4Miw3IEBAIGluZGV4IDRmYjcxMDRjY2U2Li5mMzNkNGU2MjYzNCAxMDA2NDQKICAgICAg IiIiCiAgICAgIENvbnN0cnVjdCBNUG9seW5vbWlhbFJpbmdfbGlic2luZ3VsYXIgZnJvbSByaW5n V3JhcCwgYXNzdW1pbmcgdGhlIGdyb3VuZCBmaWVsZCB0byBiZSBiYXNlX3JpbmcKICAKLUBAIC0y ODg2LDcgKzI4ODYsNyBAQCBjcGRlZiBNUG9seW5vbWlhbFJpbmdfbGlic2luZ3VsYXIgbmV3X0NS aW5nKFJpbmdXcmFwIHJ3LCBiYXNlX3JpbmcpIG5vZXhjZXB0OgorQEAgLTI5MjUsNyArMjkyNSw3 IEBAIGNwZGVmIE1Qb2x5bm9taWFsUmluZ19saWJzaW5ndWxhciBuZXdfQ1JpbmcoUmluZ1dyYXAg cncsIGJhc2VfcmluZykgbm9leGNlcHQ6CiAgICAgIHJldHVybiBzZWxmCiAgCiAgCkBAIC0zNjMx MiwxMCArMzYzMzUsMTAgQEAgaW5kZXggN2RmN2UyOGVjMjguLjQ4YzgzMTI0NTZjIDEwMDY0NAog LSAgICBjcGRlZiBncmFkZWRfY29tcG9uZW50KHNlbGYsIGRlcHRoKSBub2V4Y2VwdAogKyAgICBj cGRlZiBncmFkZWRfY29tcG9uZW50KHNlbGYsIGRlcHRoKQogZGlmZiAtLWdpdCBhL3NyYy9zYWdl L3NldHMvcmVjdXJzaXZlbHlfZW51bWVyYXRlZF9zZXQucHl4IGIvc3JjL3NhZ2Uvc2V0cy9yZWN1 cnNpdmVseV9lbnVtZXJhdGVkX3NldC5weXgKLWluZGV4IGJmMmE5ZTljMzYzLi45NWQ1NWUxYjc1 NyAxMDA2NDQKK2luZGV4IGUyNWRkZTA0ODVjLi41NmJkOGQxNjg1MCAxMDA2NDQKIC0tLSBhL3Ny Yy9zYWdlL3NldHMvcmVjdXJzaXZlbHlfZW51bWVyYXRlZF9zZXQucHl4CiArKysgYi9zcmMvc2Fn ZS9zZXRzL3JlY3Vyc2l2ZWx5X2VudW1lcmF0ZWRfc2V0LnB5eAotQEAgLTY5Niw3ICs2OTYsNyBA QCBjZGVmIGNsYXNzIFJlY3Vyc2l2ZWx5RW51bWVyYXRlZFNldF9nZW5lcmljKFBhcmVudCk6CitA QCAtNjcwLDcgKzY3MCw3IEBAIGNkZWYgY2xhc3MgUmVjdXJzaXZlbHlFbnVtZXJhdGVkU2V0X2dl bmVyaWMoUGFyZW50KToKICAgICAgICAgICAgICBMLmFwcGVuZCgid2l0aCBtYXhfZGVwdGg9e30i LmZvcm1hdChzZWxmLl9tYXhfZGVwdGgpKQogICAgICAgICAgcmV0dXJuICIgIi5qb2luKEwpCiAg CkBAIC0zNjMyNCw3ICszNjM0Nyw3IEBAIGluZGV4IGJmMmE5ZTljMzYzLi45NWQ1NWUxYjc1NyAx MDA2NDQKICAgICAgICAgIHIiIiIKICAgICAgICAgIFJldHVybiBhbiBpdGVyYWJsZSBvdmVyIHRo ZSBzZWVkcyBvZiBgYHNlbGZgYC4KICAKLUBAIC03NDYsNyArNzQ2LDcgQEAgY2RlZiBjbGFzcyBS ZWN1cnNpdmVseUVudW1lcmF0ZWRTZXRfZ2VuZXJpYyhQYXJlbnQpOgorQEAgLTcyMCw3ICs3MjAs NyBAQCBjZGVmIGNsYXNzIFJlY3Vyc2l2ZWx5RW51bWVyYXRlZFNldF9nZW5lcmljKFBhcmVudCk6 CiAgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCJncmFkZWRfY29tcG9uZW50X2l0 ZXJhdG9yIG1ldGhvZCBjdXJyZW50bHkiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICIgaW1wbGVtZW50ZWQgb25seSBmb3IgZ3JhZGVkIG9yIHN5bW1ldHJpYyBzdHJ1Y3R1cmUi KQogIApAQCAtMzYzMzMsNyArMzYzNTYsNyBAQCBpbmRleCBiZjJhOWU5YzM2My4uOTVkNTVlMWI3 NTcgMTAwNjQ0CiAgICAgICAgICByIiIiCiAgICAgICAgICBSZXR1cm4gdGhlIGdyYWRlZCBjb21w b25lbnQgb2YgZ2l2ZW4gZGVwdGguCiAgCi1AQCAtMTE3NSw3ICsxMTc1LDcgQEAgY2RlZiBjbGFz cyBSZWN1cnNpdmVseUVudW1lcmF0ZWRTZXRfc3ltbWV0cmljKFJlY3Vyc2l2ZWx5RW51bWVyYXRl ZFNldF9nZW5lcmljKToKK0BAIC0xMTQ5LDcgKzExNDksNyBAQCBjZGVmIGNsYXNzIFJlY3Vyc2l2 ZWx5RW51bWVyYXRlZFNldF9zeW1tZXRyaWMoUmVjdXJzaXZlbHlFbnVtZXJhdGVkU2V0X2dlbmVy aWMpOgogICAgICAgICAgICAgIHlpZWxkIEIKICAgICAgICAgICAgICBBLCBCID0gQiwgc2VsZi5f Z2V0X25leHRfZ3JhZGVkX2NvbXBvbmVudChBLCBCKQogIApAQCAtMzYzNDIsNyArMzYzNjUsNyBA QCBpbmRleCBiZjJhOWU5YzM2My4uOTVkNTVlMWI3NTcgMTAwNjQ0CiAgICAgICAgICByIiIiCiAg ICAgICAgICBSZXR1cm4gdGhlIGdyYWRlZCBjb21wb25lbnQgb2YgZ2l2ZW4gZGVwdGguCiAgCi1A QCAtMTI0Miw3ICsxMjQyLDcgQEAgY2RlZiBjbGFzcyBSZWN1cnNpdmVseUVudW1lcmF0ZWRTZXRf c3ltbWV0cmljKFJlY3Vyc2l2ZWx5RW51bWVyYXRlZFNldF9nZW5lcmljKToKK0BAIC0xMjE2LDcg KzEyMTYsNyBAQCBjZGVmIGNsYXNzIFJlY3Vyc2l2ZWx5RW51bWVyYXRlZFNldF9zeW1tZXRyaWMo UmVjdXJzaXZlbHlFbnVtZXJhdGVkU2V0X2dlbmVyaWMpOgogICAgICAgICAgICAgIHNlbGYuX2dy YWRlZF9jb21wb25lbnQuYXBwZW5kKEMpCiAgICAgICAgICByZXR1cm4gc2VsZi5fZ3JhZGVkX2Nv bXBvbmVudFtkZXB0aF0KICAKQEAgLTM2MzUxLDcgKzM2Mzc0LDcgQEAgaW5kZXggYmYyYTllOWMz NjMuLjk1ZDU1ZTFiNzU3IDEwMDY0NAogICAgICAgICAgciIiIgogICAgICAgICAgUmV0dXJuIHRo ZSBzZXQgb2YgZWxlbWVudHMgb2YgZGVwdGggYG4rMWAuCiAgCi1AQCAtMTM5Nyw3ICsxMzk3LDcg QEAgY2RlZiBjbGFzcyBSZWN1cnNpdmVseUVudW1lcmF0ZWRTZXRfZ3JhZGVkKFJlY3Vyc2l2ZWx5 RW51bWVyYXRlZFNldF9nZW5lcmljKToKK0BAIC0xMzcxLDcgKzEzNzEsNyBAQCBjZGVmIGNsYXNz IFJlY3Vyc2l2ZWx5RW51bWVyYXRlZFNldF9ncmFkZWQoUmVjdXJzaXZlbHlFbnVtZXJhdGVkU2V0 X2dlbmVyaWMpOgogICAgICAgICAgICAgIHlpZWxkIEIKICAgICAgICAgICAgICBCID0gc2VsZi5f Z2V0X25leHRfZ3JhZGVkX2NvbXBvbmVudChCKQogIApAQCAtMzYzNjAsNyArMzYzODMsNyBAQCBp bmRleCBiZjJhOWU5YzM2My4uOTVkNTVlMWI3NTcgMTAwNjQ0CiAgICAgICAgICByIiIiCiAgICAg ICAgICBSZXR1cm4gdGhlIGdyYWRlZCBjb21wb25lbnQgb2YgZ2l2ZW4gZGVwdGguCiAgCi1AQCAt MTQ2MCw3ICsxNDYwLDcgQEAgY2RlZiBjbGFzcyBSZWN1cnNpdmVseUVudW1lcmF0ZWRTZXRfZ3Jh ZGVkKFJlY3Vyc2l2ZWx5RW51bWVyYXRlZFNldF9nZW5lcmljKToKK0BAIC0xNDM0LDcgKzE0MzQs NyBAQCBjZGVmIGNsYXNzIFJlY3Vyc2l2ZWx5RW51bWVyYXRlZFNldF9ncmFkZWQoUmVjdXJzaXZl bHlFbnVtZXJhdGVkU2V0X2dlbmVyaWMpOgogICAgICAgICAgICAgIHNlbGYuX2dyYWRlZF9jb21w b25lbnQuYXBwZW5kKEMpCiAgICAgICAgICByZXR1cm4gc2VsZi5fZ3JhZGVkX2NvbXBvbmVudFtk ZXB0aF0KICAKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hlcy9maXgtZWNtLnBh dGNoIGIvc3JjcGtncy9zYWdlbWF0aC9wYXRjaGVzL2ZpeC1lY20ucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAuLjU5OWU0OWJkM2YwYjc0Ci0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9zYWdlbWF0aC9wYXRjaGVzL2ZpeC1lY20ucGF0Y2gKQEAgLTAsMCAr MSwxMyBAQAorU2VlOiBodHRwczovL2dpdGh1Yi5jb20vc2FnZW1hdGgvc2FnZS9wdWxsLzM3MDEx I2lzc3VlY29tbWVudC0yMDIzMDg5NzQzCisKKy0tLSBhL3NyYy9zYWdlL2Vudi5weQorKysrIGIv c3JjL3NhZ2UvZW52LnB5CitAQCAtMjEyLDcgKzIxMiw3IEBAIE1BWElNQSA9IHZhcigiTUFYSU1B IiwgIm1heGltYSIpCisgTUFYSU1BX0ZBUyA9IHZhcigiTUFYSU1BX0ZBUyIpCisgS0VOWk9fRkFT ID0gdmFyKCJLRU5aT19GQVMiKQorIFNBR0VfTkFVVFlfQklOU19QUkVGSVggPSB2YXIoIlNBR0Vf TkFVVFlfQklOU19QUkVGSVgiLCAiIikKKy1TQUdFX0VDTUJJTiA9IHZhcigiU0FHRV9FQ01CSU4i KQorK1NBR0VfRUNNQklOID0gdmFyKCJTQUdFX0VDTUJJTiIsICJlY20iKQorIFJVQklLU19CSU5T X1BSRUZJWCA9IHZhcigiUlVCSUtTX0JJTlNfUFJFRklYIiwgIiIpCisgRk9VUlRJVFdPX0hJTEJF UlQgPSB2YXIoIkZPVVJUSVRXT19ISUxCRVJUIikKKyBGT1VSVElUV09fTUFSS09WID0gdmFyKCJG T1VSVElUV09fTUFSS09WIikKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hlcy9m aXgtbG9jay5wYXRjaCBiL3NyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hlcy9maXgtbG9jay5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMC4uMjRkYjQxMjQ0MTliNDcK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3NhZ2VtYXRoL3BhdGNoZXMvZml4LWxvY2sucGF0 Y2gKQEAgLTAsMCArMSwxNSBAQAorU2VlOiBodHRwczovL2dpdGh1Yi5jb20vc2FnZW1hdGgvc2Fn ZS9wdWxsLzM2NzQxI2lzc3VlY29tbWVudC0yMDI3MzU3NDE0CisKK2RpZmYgLS1naXQgYS9zcmMv c2FnZS9mZWF0dXJlcy9fX2luaXRfXy5weSBiL3NyYy9zYWdlL2ZlYXR1cmVzL19faW5pdF9fLnB5 CitpbmRleCA2YWY5NDEzZTU1Li5hOGIxMWVmN2RiIDEwMDY0NAorLS0tIGEvc3JjL3NhZ2UvZmVh dHVyZXMvX19pbml0X18ucHkKKysrKyBiL3NyYy9zYWdlL2ZlYXR1cmVzL19faW5pdF9fLnB5CitA QCAtMTYyLDcgKzE2Miw3IEBAIGNsYXNzIEZlYXR1cmUoVHJpdmlhbFVuaXF1ZVJlcHJlc2VudGF0 aW9uKToKKyAgICAgICAgICMgc2hhcmVkIGFtb25nIHN1YnByb2Nlc3Nlcy4gVGh1cyB3ZSB1c2Ug dGhlIFZhbHVlIGNsYXNzIGZyb20gdGhlCisgICAgICAgICAjIG11bHRpcHJvY2Vzc2luZyBtb2R1 bGUgKGNmLiBzZWxmLl9zZWVuIG9mIGNsYXNzIEF2YWlsYWJsZVNvZnR3YXJlKQorICAgICAgICAg ZnJvbSBtdWx0aXByb2Nlc3NpbmcgaW1wb3J0IFZhbHVlCistICAgICAgICBzZWxmLl9udW1faGlk aW5ncyA9IFZhbHVlKCdpJywgMCkKKysgICAgICAgIHNlbGYuX251bV9oaWRpbmdzID0gVmFsdWUo J2knLCAwLCBsb2NrPUZhbHNlKQorIAorICAgICAgICAgdHJ5OgorICAgICAgICAgICAgIGZyb20g c2FnZS5taXNjLnBhY2thZ2UgaW1wb3J0IHNwa2dfdHlwZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9z YWdlbWF0aC90ZW1wbGF0ZSBiL3NyY3BrZ3Mvc2FnZW1hdGgvdGVtcGxhdGUKaW5kZXggMjJmYWY3 ODkyMWM1ZjQuLmZjMDI0NGNhZjU1MjI2IDEwMDY0NAotLS0gYS9zcmNwa2dzL3NhZ2VtYXRoL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3Mvc2FnZW1hdGgvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdzYWdlbWF0aCcKIHBrZ25hbWU9c2FnZW1hdGgKLXZlcnNpb249 MTAuMwordmVyc2lvbj0xMC40LmJldGEwCiByZXZpc2lvbj0xCiBidWlsZF93cmtzcmM9cGtncy9z YWdlbWF0aC1zdGFuZGFyZAogYnVpbGRfc3R5bGU9cHl0aG9uMy1wZXA1MTcKQEAgLTMyLDcgKzMy LDcgQEAgbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3d3dy5z YWdlbWF0aC5vcmcvIgogY2hhbmdlbG9nPSJodHRwczovL2dpdGh1Yi5jb20vc2FnZW1hdGgvc2Fn ZS9yZWxlYXNlcyIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL3NhZ2VtYXRoL3NhZ2Uv YXJjaGl2ZS9yZWZzL3RhZ3MvJHZlcnNpb24udGFyLmd6IgotY2hlY2tzdW09NTlmZWI5MmMwNWU3 NGQ2ZGI3YTc1ZjM5OGM0NWMyNGI1MTU3YjFlY2QzZDhhYzE5ODgwNmUyZTZhZGQ3N2Q5NgorY2hl Y2tzdW09YjEyMzg0MjM0YTY3NGFiZmIwYjIzMDIzMTJmMTBmMjRhOTVmYzNmYjRhZTg0OTU2ZGQy YmUwNmRhMTE3MjM0OQogbm9jcm9zcz0iZHVlIHRvIG50bCAoZWNsaWIsIHNpbmd1bGFyKSwgZmZs YXMtZmZwYWNrLCBnaXZhcm8sIGxpbmJveCwgc3ltcG93LCBtYXhpbWEiCiAKICMgcGFyYWxsZWwg YnVpbGQKCkZyb20gMmIyNzM2NmQ4NTVkMDk2NDY4OGJjYzgyZjAwYTk0ODFjYTMwMTlhOSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xP0dvbnphbG89MjBUb3JuYXI9QzM9 QURhPz0gPHRvcm5hcmlhQGNtYXQuZWR1LnV5PgpEYXRlOiBUdWUsIDIgQXByIDIwMjQgMTg6MTM6 MjUgLTAzMDAKU3ViamVjdDogW1BBVENIIDQvNF0gc2FnZW1hdGg6IHVwZGF0ZSB0byAxMC40LmJl dGExLgoKLS0tCiAuLi4vcGF0Y2hlcy8wMzc2NjctZml4X25vZXhjZXB0LnBhdGNoICAgICAgICAg fCA1ODMgKysrKysrKysrLS0tLS0tLS0tCiAuLi4vcGF0Y2hlcy8zNzcyMC1zcGhpbnhfbm9fcmVx dWlyZWQucGF0Y2ggICAgfCAgMzAgKwogc3JjcGtncy9zYWdlbWF0aC9wYXRjaGVzL2ZpeC1lY20u cGF0Y2ggICAgICAgIHwgIDEzIC0KIHNyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hlcy9maXgtbG9jay5w YXRjaCAgICAgICB8ICAxNSAtCiBzcmNwa2dzL3NhZ2VtYXRoL3BhdGNoZXMvZ2V0X3BhdGNoZXMg ICAgICAgICAgfCAgIDEgKwogc3JjcGtncy9zYWdlbWF0aC90ZW1wbGF0ZSAgICAgICAgICAgICAg ICAgICAgIHwgICA0ICstCiA2IGZpbGVzIGNoYW5nZWQsIDMyMCBpbnNlcnRpb25zKCspLCAzMjYg ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9zYWdlbWF0aC9wYXRjaGVz LzM3NzIwLXNwaGlueF9ub19yZXF1aXJlZC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3Mvc2FnZW1hdGgvcGF0Y2hlcy9maXgtZWNtLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9zYWdlbWF0aC9wYXRjaGVzL2ZpeC1sb2NrLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9zYWdlbWF0aC9wYXRjaGVzLzAzNzY2Ny1maXhfbm9leGNlcHQucGF0Y2ggYi9zcmNwa2dzL3Nh Z2VtYXRoL3BhdGNoZXMvMDM3NjY3LWZpeF9ub2V4Y2VwdC5wYXRjaAppbmRleCA4MGIzY2YxOTEy Y2U2Yy4uOGVmZGYwOGUyNmE2ZDUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hl cy8wMzc2NjctZml4X25vZXhjZXB0LnBhdGNoCisrKyBiL3NyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hl cy8wMzc2NjctZml4X25vZXhjZXB0LnBhdGNoCkBAIC0yMDczLDcgKzIwNzMsNyBAQCBpbmRleCBh MjJhMzdjYzIyYS4uNTg4M2FkZWJjOTcgMTAwNjQ0CiAgCiAgY2RlZiBjbGFzcyBJbnZlcnNlQWN0 aW9uKEFjdGlvbik6CiBkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvY2F0ZWdvcmllcy9hY3Rpb24ucHl4 IGIvc3JjL3NhZ2UvY2F0ZWdvcmllcy9hY3Rpb24ucHl4Ci1pbmRleCA2YzZlYTA3MjA1My4uOWYw MGIxM2MyZTEgMTAwNjQ0CitpbmRleCAzYjNiYTlkNDYzYi4uMjdjZjNlMGIyNmMgMTAwNjQ0CiAt LS0gYS9zcmMvc2FnZS9jYXRlZ29yaWVzL2FjdGlvbi5weXgKICsrKyBiL3NyYy9zYWdlL2NhdGVn b3JpZXMvYWN0aW9uLnB5eAogQEAgLTY2LDcgKzY2LDcgQEAgZnJvbSBzYWdlLmNhdGVnb3JpZXMg aW1wb3J0IGhvbXNldApAQCAtNzE3Nyw3ICs3MTc3LDcgQEAgaW5kZXggMmUzZjIyMTUwZTcuLjIx YjUwOWYwNmQxIDEwMDY0NAogKyAgICBjcGRlZiBDbG9uYWJsZUludEFycmF5IF9hY3Rfb25fYXJy YXlfb25fcG9zaXRpb24oc2VsZiwgQ2xvbmFibGVJbnRBcnJheSB4KQogKyAgICBjcGRlZiBFVHVw bGUgX2FjdF9vbl9ldHVwbGVfb25fcG9zaXRpb24oc2VsZiwgRVR1cGxlIHgpCiBkaWZmIC0tZ2l0 IGEvc3JjL3NhZ2UvZ3JvdXBzL3Blcm1fZ3BzL3Blcm1ncm91cF9lbGVtZW50LnB5eCBiL3NyYy9z YWdlL2dyb3Vwcy9wZXJtX2dwcy9wZXJtZ3JvdXBfZWxlbWVudC5weXgKLWluZGV4IDU4NjgwNTJh ODc2Li4yODMxYmQwN2NmYyAxMDA2NDQKK2luZGV4IDczMjQ3ZmZlOWQ4Li4wZDgwZDA0YThhZiAx MDA2NDQKIC0tLSBhL3NyYy9zYWdlL2dyb3Vwcy9wZXJtX2dwcy9wZXJtZ3JvdXBfZWxlbWVudC5w eXgKICsrKyBiL3NyYy9zYWdlL2dyb3Vwcy9wZXJtX2dwcy9wZXJtZ3JvdXBfZWxlbWVudC5weXgK IEBAIC01MTMsNyArNTEzLDcgQEAgY2RlZiBjbGFzcyBQZXJtdXRhdGlvbkdyb3VwRWxlbWVudChN dWx0aXBsaWNhdGl2ZUdyb3VwRWxlbWVudCk6CkBAIC03MjUyLDcgKzcyNTIsNyBAQCBpbmRleCA1 ODY4MDUyYTg3Ni4uMjgzMWJkMDdjZmMgMTAwNjQ0CiAgICAgICAgICBjZGVmIHR5cGUgdCA9IHR5 cGUoc2VsZikKICAgICAgICAgIGNkZWYgUGVybXV0YXRpb25Hcm91cEVsZW1lbnQgb3RoZXIgPSB0 Ll9fbmV3X18odCkKICAgICAgICAgIGlmIEhBU19ESUNUSU9OQVJZKHNlbGYpOgotQEAgLTk3NSw3 ICs5NzUsNyBAQCBjZGVmIGNsYXNzIFBlcm11dGF0aW9uR3JvdXBFbGVtZW50KE11bHRpcGxpY2F0 aXZlR3JvdXBFbGVtZW50KToKK0BAIC05ODAsNyArOTgwLDcgQEAgY2RlZiBjbGFzcyBQZXJtdXRh dGlvbkdyb3VwRWxlbWVudChNdWx0aXBsaWNhdGl2ZUdyb3VwRWxlbWVudCk6CiAgICAgICAgICAi IiIKICAgICAgICAgIHJldHVybiBzZWxmLmN5Y2xlcygpW2ldCiAgCkBAIC03MjYxLDcgKzcyNjEs NyBAQCBpbmRleCA1ODY4MDUyYTg3Ni4uMjgzMWJkMDdjZmMgMTAwNjQ0CiAgICAgICAgICByIiIi CiAgICAgICAgICBDb21wYXJlIGdyb3VwIGVsZW1lbnRzIGBgc2VsZmBgIGFuZCBgYG90aGVyYGAu CiAgCi1AQCAtMTA4NCw3ICsxMDg0LDcgQEAgY2RlZiBjbGFzcyBQZXJtdXRhdGlvbkdyb3VwRWxl bWVudChNdWx0aXBsaWNhdGl2ZUdyb3VwRWxlbWVudCk6CitAQCAtMTA4OSw3ICsxMDg5LDcgQEAg Y2RlZiBjbGFzcyBQZXJtdXRhdGlvbkdyb3VwRWxlbWVudChNdWx0aXBsaWNhdGl2ZUdyb3VwRWxl bWVudCk6CiAgICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAgcmV0dXJuIGZyb21f Z2FwW2ldCiAgCkBAIC03MjcwLDcgKzcyNzAsNyBAQCBpbmRleCA1ODY4MDUyYTg3Ni4uMjgzMWJk MDdjZmMgMTAwNjQ0CiAgICAgICAgICByIiIiCiAgICAgICAgICBSZXR1cm5zIHRoZSByaWdodCBh Y3Rpb24gb2YgYGBzZWxmYGAgb24gdGhlIGxpc3QgYGB4YGAuIFRoaXMgaXMgdGhlCiAgICAgICAg ICBhY3Rpb24gb24gcG9zaXRpb25zLgotQEAgLTExMTIsNyArMTExMiw3IEBAIGNkZWYgY2xhc3Mg UGVybXV0YXRpb25Hcm91cEVsZW1lbnQoTXVsdGlwbGljYXRpdmVHcm91cEVsZW1lbnQpOgorQEAg LTExMTcsNyArMTExNyw3IEBAIGNkZWYgY2xhc3MgUGVybXV0YXRpb25Hcm91cEVsZW1lbnQoTXVs dGlwbGljYXRpdmVHcm91cEVsZW1lbnQpOgogICAgICAgICAgYXNzZXJ0IGxlbih4KSA9PSBzZWxm Lm4sICclcyBhbmQgJXMgc2hvdWxkIGhhdmUgdGhlIHNhbWUgbGVuZ3RoJyUoc2VsZiwgeCkKICAg ICAgICAgIHJldHVybiBbIHhbc2VsZi5wZXJtW2ldXSBmb3IgaSBpbiByYW5nZShzZWxmLm4pIF0K ICAKQEAgLTcyNzksNyArNzI3OSw3IEBAIGluZGV4IDU4NjgwNTJhODc2Li4yODMxYmQwN2NmYyAx MDA2NDQKICAgICAgICAgIHIiIiIKICAgICAgICAgIFJldHVybnMgdGhlIHJpZ2h0IGFjdGlvbiBv ZiBgYHNlbGZgYCBvbiB0aGUgQ2xvbmFibGVJbnRBcnJheQogICAgICAgICAgYGB4YGAuIFRoaXMg aXMgdGhlIGFjdGlvbiBvbiBwb3NpdGlvbnMuCi1AQCAtMTEzNiw3ICsxMTM2LDcgQEAgY2RlZiBj bGFzcyBQZXJtdXRhdGlvbkdyb3VwRWxlbWVudChNdWx0aXBsaWNhdGl2ZUdyb3VwRWxlbWVudCk6 CitAQCAtMTE0MSw3ICsxMTQxLDcgQEAgY2RlZiBjbGFzcyBQZXJtdXRhdGlvbkdyb3VwRWxlbWVu dChNdWx0aXBsaWNhdGl2ZUdyb3VwRWxlbWVudCk6CiAgICAgICAgICB5LnNldF9pbW11dGFibGUo KQogICAgICAgICAgcmV0dXJuIHkKICAKQEAgLTcyODgsNyArNzI4OCw3IEBAIGluZGV4IDU4Njgw NTJhODc2Li4yODMxYmQwN2NmYyAxMDA2NDQKICAgICAgICAgIHIiIiIKICAgICAgICAgIFJldHVy biB0aGUgcmlnaHQgYWN0aW9uIG9mIHRoaXMgcGVybXV0YXRpb24gb24gdGhlIEVUdXBsZSBgYHhg YC4KICAKLUBAIC0xMTc2LDcgKzExNzYsNyBAQCBjZGVmIGNsYXNzIFBlcm11dGF0aW9uR3JvdXBF bGVtZW50KE11bHRpcGxpY2F0aXZlR3JvdXBFbGVtZW50KToKK0BAIC0xMTgxLDcgKzExODEsNyBA QCBjZGVmIGNsYXNzIFBlcm11dGF0aW9uR3JvdXBFbGVtZW50KE11bHRpcGxpY2F0aXZlR3JvdXBF bGVtZW50KToKICAgICAgICAgIHFzb3J0KHJlc3VsdC5fZGF0YSwgcmVzdWx0Ll9ub256ZXJvLCAy ICogc2l6ZW9mKGludCksIGV0dXBsZV9pbmRleF9jbXApCiAgICAgICAgICByZXR1cm4gcmVzdWx0 CiAgCkBAIC03Mjk3LDcgKzcyOTcsNyBAQCBpbmRleCA1ODY4MDUyYTg3Ni4uMjgzMWJkMDdjZmMg MTAwNjQ0CiAgICAgICAgICByIiIiCiAgICAgICAgICBSZXR1cm4gdGhlIHJlc3VsdCBvZiB0aGUg YWN0aW9uIG9mIGBgc2VsZmBgIG9uIGBgeGBgLgogIAotQEAgLTEyOTYsNyArMTI5Niw3IEBAIGNk ZWYgY2xhc3MgUGVybXV0YXRpb25Hcm91cEVsZW1lbnQoTXVsdGlwbGljYXRpdmVHcm91cEVsZW1l bnQpOgorQEAgLTEzMDEsNyArMTMwMSw3IEBAIGNkZWYgY2xhc3MgUGVybXV0YXRpb25Hcm91cEVs ZW1lbnQoTXVsdGlwbGljYXRpdmVHcm91cEVsZW1lbnQpOgogIAogICAgICAgICAgcmV0dXJuIGNv ZXJjaW9uX21vZGVsLmJpbl9vcChsZWZ0LCByaWdodCwgb3BlcmF0b3IubXVsKQogIApAQCAtNzMw Niw3ICs3MzA2LDcgQEAgaW5kZXggNTg2ODA1MmE4NzYuLjI4MzFiZDA3Y2ZjIDEwMDY0NAogICAg ICAgICAgciIiIgogICAgICAgICAgUmV0dXJuIHRoZSBwcm9kdWN0IG9mIHRoZSB0cmFuc3Bvc2l0 aW9uIGAoaiwgaylgIHdpdGggYGBzZWxmYGAuCiAgCi1AQCAtMTMyOSw3ICsxMzI5LDcgQEAgY2Rl ZiBjbGFzcyBQZXJtdXRhdGlvbkdyb3VwRWxlbWVudChNdWx0aXBsaWNhdGl2ZUdyb3VwRWxlbWVu dCk6CitAQCAtMTMzNCw3ICsxMzM0LDcgQEAgY2RlZiBjbGFzcyBQZXJtdXRhdGlvbkdyb3VwRWxl bWVudChNdWx0aXBsaWNhdGl2ZUdyb3VwRWxlbWVudCk6CiAgICAgICAgICBwcm9kLnBlcm1baiAt IDFdLCBwcm9kLnBlcm1bayAtIDFdID0gc2VsZi5wZXJtW2sgLSAxXSwgc2VsZi5wZXJtW2ogLSAx XQogICAgICAgICAgcmV0dXJuIHByb2QKICAKQEAgLTczMTUsNyArNzMxNSw3IEBAIGluZGV4IDU4 NjgwNTJhODc2Li4yODMxYmQwN2NmYyAxMDA2NDQKICAgICAgICAgIHIiIiIKICAgICAgICAgIEVY QU1QTEVTOjoKICAKLUBAIC0xMzQ2LDcgKzEzNDYsNyBAQCBjZGVmIGNsYXNzIFBlcm11dGF0aW9u R3JvdXBFbGVtZW50KE11bHRpcGxpY2F0aXZlR3JvdXBFbGVtZW50KToKK0BAIC0xMzUxLDcgKzEz NTEsNyBAQCBjZGVmIGNsYXNzIFBlcm11dGF0aW9uR3JvdXBFbGVtZW50KE11bHRpcGxpY2F0aXZl R3JvdXBFbGVtZW50KToKICAgICAgICAgICAgICBwcm9kLnBlcm1baV0gPSByaWdodC5wZXJtW2xl ZnQucGVybVtpXV0KICAgICAgICAgIHJldHVybiBwcm9kCiAgCkBAIC03MzI0LDcgKzczMjQsNyBA QCBpbmRleCA1ODY4MDUyYTg3Ni4uMjgzMWJkMDdjZmMgMTAwNjQ0CiAgICAgICAgICByIiIiCiAg ICAgICAgICBHZW5lcmF0ZSBhIG5ldyBwZXJtdXRhdGlvbiBncm91cCBlbGVtZW50IHdpdGggdGhl IHNhbWUgcGFyZW50CiAgICAgICAgICBhcyBgYHNlbGZgYCBmcm9tIGBgdmBgLgotQEAgLTEzNjQs NyArMTM2NCw3IEBAIGNkZWYgY2xhc3MgUGVybXV0YXRpb25Hcm91cEVsZW1lbnQoTXVsdGlwbGlj YXRpdmVHcm91cEVsZW1lbnQpOgorQEAgLTEzNjksNyArMTM2OSw3IEBAIGNkZWYgY2xhc3MgUGVy bXV0YXRpb25Hcm91cEVsZW1lbnQoTXVsdGlwbGljYXRpdmVHcm91cEVsZW1lbnQpOgogICAgICAg ICAgbmV3Ll9zZXRfbGlzdF9pbWFnZXModiwgRmFsc2UpCiAgICAgICAgICByZXR1cm4gbmV3CiAg CkBAIC03MzMzLDcgKzczMzMsNyBAQCBpbmRleCA1ODY4MDUyYTg3Ni4uMjgzMWJkMDdjZmMgMTAw NjQ0CiAgICAgICAgICByIiIiCiAgICAgICAgICBHZW5lcmF0ZSBhIG5ldyBwZXJtdXRhdGlvbiBn cm91cCBlbGVtZW50IHdpdGggdGhlIHNhbWUgcGFyZW50CiAgICAgICAgICBhcyBgYHNlbGZgYCBm cm9tIHRoZSBHQVAgbGlzdCBgYGxzdF9pbmBgLgotQEAgLTE0MTUsNyArMTQxNSw3IEBAIGNkZWYg Y2xhc3MgUGVybXV0YXRpb25Hcm91cEVsZW1lbnQoTXVsdGlwbGljYXRpdmVHcm91cEVsZW1lbnQp OgorQEAgLTE0MjAsNyArMTQyMCw3IEBAIGNkZWYgY2xhc3MgUGVybXV0YXRpb25Hcm91cEVsZW1l bnQoTXVsdGlwbGljYXRpdmVHcm91cEVsZW1lbnQpOgogICAgICAgICAgICAgIGludi5wZXJtW3Nl bGYucGVybVtpXV0gPSBpCiAgICAgICAgICByZXR1cm4gaW52CiAgCkBAIC03MzQyLDcgKzczNDIs NyBAQCBpbmRleCA1ODY4MDUyYTg3Ni4uMjgzMWJkMDdjZmMgMTAwNjQ0CiAgICAgICAgICByIiIi CiAgICAgICAgICBSZXR1cm5zIHRoaXMgcGVybXV0YXRpb24gaW4gbGlzdCBub3RhdGlvbiBjb21w YXRpYmxlIHdpdGggdGhlCiAgICAgICAgICBHQVAgbnVtYmVyaW5nLgotQEAgLTE0NjMsNyArMTQ2 Myw3IEBAIGNkZWYgY2xhc3MgUGVybXV0YXRpb25Hcm91cEVsZW1lbnQoTXVsdGlwbGljYXRpdmVH cm91cEVsZW1lbnQpOgorQEAgLTE0NjgsNyArMTQ2OCw3IEBAIGNkZWYgY2xhc3MgUGVybXV0YXRp b25Hcm91cEVsZW1lbnQoTXVsdGlwbGljYXRpdmVHcm91cEVsZW1lbnQpOgogICAgICAgICAgZnJv bSBzYWdlLmNvbWJpbmF0LnBlcm11dGF0aW9uIGltcG9ydCBQZXJtdXRhdGlvbgogICAgICAgICAg cmV0dXJuIFBlcm11dGF0aW9uKHNlbGYuX2dhcF9saXN0KCkpLmN5Y2xlX3N0cmluZygpCiAgCkBA IC03NTYyLDcgKzc1NjIsNyBAQCBpbmRleCBhZWI5Yzc2ZjllMy4uMzMwYmEzZDRkNGUgMTAwNjQ0 CiAgICAgIEhlbHBlciBmdW5jdGlvbiB0aGF0IGNvbnZlcnRzIGEgZm1wel9mYWN0b3JfdCBpbnRv IGEgbGlzdCBvZgogICAgICAoZmFjdG9yLCBleHBvbmVudCkgcGFpcnMuIFRoZSBmYWN0b3JzIGFy ZSBJbnRlZ2VycywgYW5kIHRoZQogZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvZmxpbnQvbm1v ZF9wb2x5X2xpbmthZ2UucHhpIGIvc3JjL3NhZ2UvbGlicy9mbGludC9ubW9kX3BvbHlfbGlua2Fn ZS5weGkKLWluZGV4IDlmYjE2NGI4ZGRmLi5iMGY2N2RmYjk0NSAxMDA2NDQKK2luZGV4IDIzOWY4 N2E3ZGQyLi40NjE2NzljYmEyMCAxMDA2NDQKIC0tLSBhL3NyYy9zYWdlL2xpYnMvZmxpbnQvbm1v ZF9wb2x5X2xpbmthZ2UucHhpCiArKysgYi9zcmMvc2FnZS9saWJzL2ZsaW50L25tb2RfcG9seV9s aW5rYWdlLnB4aQogQEAgLTY4LDcgKzY4LDcgQEAgY2RlZiBpbmxpbmUgaW50IGNlbGVtZW50X2dl bihubW9kX3BvbHlfdCBlLCBsb25nIGksIHVuc2lnbmVkIGxvbmcgbikgZXhjZXB0IC0yOgpAQCAt NzU3NCw3ICs3NTc0LDcgQEAgaW5kZXggOWZiMTY0YjhkZGYuLmIwZjY3ZGZiOTQ1IDEwMDY0NAog ICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCiAgCiAgY2RlZiBpbmxpbmUgaW50IGNlbGVt ZW50X3NldChubW9kX3BvbHlfdCByZXMsIG5tb2RfcG9seV90IGEsIHVuc2lnbmVkIGxvbmcgbikg ZXhjZXB0IC0yOgotQEAgLTYxOSw3ICs2MTksNyBAQCBjZGVmIGlubGluZSBpbnQgY2VsZW1lbnRf eGdjZChubW9kX3BvbHlfdCByZXMsIG5tb2RfcG9seV90IHMsIG5tb2RfcG9seV90IHQsIG5tbwor QEAgLTYyMSw3ICs2MjEsNyBAQCBjZGVmIGlubGluZSBpbnQgY2VsZW1lbnRfeGdjZChubW9kX3Bv bHlfdCByZXMsIG5tb2RfcG9seV90IHMsIG5tb2RfcG9seV90IHQsIG5tbwogICAgICBubW9kX3Bv bHlfeGdjZChyZXMsIHMsIHQsIGEsIGIpCiAgCiAgCkBAIC03OTg0LDcgKzc5ODQsNyBAQCBpbmRl eCA4YjRhN2FhZGNlNy4uYmI1NTlmN2M2YTMgMTAwNjQ0CiAgCiAgIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IwogZGlmZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvZ2FwL3V0aWwucHl4IGIvc3JjL3NhZ2UvbGli cy9nYXAvdXRpbC5weXgKLWluZGV4IDg2ODVkYzA4ZmE1Li5iMGFmZDUwOGI0ZSAxMDA2NDQKK2lu ZGV4IDgxZGY4M2E2ZTBkLi4zZTc1ZDcxZmYwNiAxMDA2NDQKIC0tLSBhL3NyYy9zYWdlL2xpYnMv Z2FwL3V0aWwucHl4CiArKysgYi9zcmMvc2FnZS9saWJzL2dhcC91dGlsLnB5eAogQEAgLTEwMyw3 ICsxMDMsNyBAQCBjZGVmIGNsYXNzIE9ialdyYXBwZXIoKToKQEAgLTg5MDUsNyArODkwNSw3IEBA IGluZGV4IDM4Yzk2YTdmZTUyLi5iZWNkODlhOWM1NyAxMDA2NDQKICsgICAgY2RlZiBudGxfR0Yy RSBfbmV3X2VsZW1lbnQoc2VsZikKICsgICAgY2RlZiBudGxfR0YyRVggX25ldyhzZWxmKQogZGlm ZiAtLWdpdCBhL3NyYy9zYWdlL2xpYnMvbnRsL250bF9HRjJFWC5weXggYi9zcmMvc2FnZS9saWJz L250bC9udGxfR0YyRVgucHl4Ci1pbmRleCA0ZTFjNDMyNDkxNS4uMTU3ZTU5ZWZhZWUgMTAwNjQ0 CitpbmRleCA4YzY4NTBmZDYyZS4uMGI3YmViODczZGYgMTAwNjQ0CiAtLS0gYS9zcmMvc2FnZS9s aWJzL250bC9udGxfR0YyRVgucHl4CiArKysgYi9zcmMvc2FnZS9saWJzL250bC9udGxfR0YyRVgu cHl4CiBAQCAtODUsMTQgKzg1LDE0IEBAIGNkZWYgY2xhc3MgbnRsX0dGMkVYKCk6CkBAIC05MDA2 LDcgKzkwMDYsNyBAQCBpbmRleCBhOTJjOTc2NjExMi4uOGJhYzZlMDEyZTQgMTAwNjQ0CiAtICAg IGNkZWYgbnRsX1paX3AgX25ldyhzZWxmKSBub2V4Y2VwdAogKyAgICBjZGVmIG50bF9aWl9wIF9u ZXcoc2VsZikKIGRpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL250bC9udGxfWlpfcC5weXggYi9z cmMvc2FnZS9saWJzL250bC9udGxfWlpfcC5weXgKLWluZGV4IGNjYTc2NzMwM2Y3Li40ZGMyYjc5 NWI3ZSAxMDA2NDQKK2luZGV4IDI2MTg5OGU1ZWQ2Li5kODk1YWM5YTdlYyAxMDA2NDQKIC0tLSBh L3NyYy9zYWdlL2xpYnMvbnRsL250bF9aWl9wLnB5eAogKysrIGIvc3JjL3NhZ2UvbGlicy9udGwv bnRsX1paX3AucHl4CiBAQCAtMTU0LDcgKzE1NCw3IEBAIGNkZWYgY2xhc3MgbnRsX1paX3AoKToK QEAgLTkwNTgsNyArOTA1OCw3IEBAIGluZGV4IGIyYTFhYTcwMjkzLi5jNjBlYWJhNGFkNSAxMDA2 NDQKIC0gICAgY2RlZiBudGxfWlpfcEUgX25ldyhzZWxmKSBub2V4Y2VwdAogKyAgICBjZGVmIG50 bF9aWl9wRSBfbmV3KHNlbGYpCiBkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbGlicy9udGwvbnRsX1pa X3BFLnB5eCBiL3NyYy9zYWdlL2xpYnMvbnRsL250bF9aWl9wRS5weXgKLWluZGV4IGIwODgyMjE3 ZTg2Li5kMDY5Yjg5ZmNlZiAxMDA2NDQKK2luZGV4IGExZWViMWM0NWE1Li4wMDY0NGE4YmQ4NCAx MDA2NDQKIC0tLSBhL3NyYy9zYWdlL2xpYnMvbnRsL250bF9aWl9wRS5weXgKICsrKyBiL3NyYy9z YWdlL2xpYnMvbnRsL250bF9aWl9wRS5weXgKIEBAIC0xNDksNyArMTQ5LDcgQEAgY2RlZiBjbGFz cyBudGxfWlpfcEUoKToKQEAgLTkxMDMsNyArOTEwMyw3IEBAIGluZGV4IDZlYmRlOTU1YWEzLi5j MTJkZjc3YzJmMCAxMDA2NDQKICAgICAgICAgIHNlbGYuYy5yZXN0b3JlX2MoKQogICAgICAgICAg ciA9IG50bF9aWl9wRVguX19uZXdfXyhudGxfWlpfcEVYKQogZGlmZiAtLWdpdCBhL3NyYy9zYWdl L2xpYnMvbnRsL250bF9aWl9wRVhfbGlua2FnZS5weGkgYi9zcmMvc2FnZS9saWJzL250bC9udGxf WlpfcEVYX2xpbmthZ2UucHhpCi1pbmRleCBiMDQ5N2ViMzYzMC4uM2EwYjhmMDY0M2EgMTAwNjQ0 CitpbmRleCA0YjY1YmY2NTBjNS4uNzZlYzg3NzBmM2YgMTAwNjQ0CiAtLS0gYS9zcmMvc2FnZS9s aWJzL250bC9udGxfWlpfcEVYX2xpbmthZ2UucHhpCiArKysgYi9zcmMvc2FnZS9saWJzL250bC9u dGxfWlpfcEVYX2xpbmthZ2UucHhpCiBAQCAtODAsNyArODAsNyBAQCBjZGVmIGludCBjZWxlbWVu dF9nZW4oWlpfcEVYX2MgKmUsIGxvbmcgaSwgY3BhcmVudCBwYXJlbnQpIGV4Y2VwdCAtMjoKQEAg LTkxMjksNyArOTEyOSw3IEBAIGluZGV4IDM4NzkyYmNhMmQxLi5kMDI1OTZiNTEyOCAxMDA2NDQK ICBjZGVmIGNsYXNzIG50bF9aWl9wWF9Nb2R1bHVzKCk6CiAgICAgIGNkZWYgWlpfcFhfTW9kdWx1 c19jIHgKIGRpZmYgLS1naXQgYS9zcmMvc2FnZS9saWJzL250bC9udGxfWlpfcFgucHl4IGIvc3Jj L3NhZ2UvbGlicy9udGwvbnRsX1paX3BYLnB5eAotaW5kZXggMzQyMjIzOWFhYWMuLjc1YjczOGMx NjI1IDEwMDY0NAoraW5kZXggNGRiNjE1YmNkNmMuLmM5M2QyNjNjYjEwIDEwMDY0NAogLS0tIGEv c3JjL3NhZ2UvbGlicy9udGwvbnRsX1paX3BYLnB5eAogKysrIGIvc3JjL3NhZ2UvbGlicy9udGwv bnRsX1paX3BYLnB5eAogQEAgLTM4LDcgKzM4LDcgQEAgZnJvbSBzYWdlLm1pc2MucmFuZHN0YXRl IGNpbXBvcnQgY3VycmVudF9yYW5kc3RhdGUKQEAgLTEwNDA2LDEwICsxMDQwNiwxMCBAQCBpbmRl eCA2MGMzZWMyMzA3MC4uMmJkYjUxZjFhOGUgMTAwNjQ0CiAgICAgIGxhdGVfaW1wb3J0KCkKICAK IGRpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyaXgvYWN0aW9uLnB5eCBiL3NyYy9zYWdlL21hdHJp eC9hY3Rpb24ucHl4Ci1pbmRleCA0YmIxZjRiYmUyYS4uZTE2YmZlYzg1NmEgMTAwNjQ0CitpbmRl eCAxOGM3MTI5OTMxNy4uMGRiMzQzYzllZWQgMTAwNjQ0CiAtLS0gYS9zcmMvc2FnZS9tYXRyaXgv YWN0aW9uLnB5eAogKysrIGIvc3JjL3NhZ2UvbWF0cml4L2FjdGlvbi5weXgKLUBAIC0yMDIsNyAr MjAyLDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhNYXRyaXhBY3Rpb24oTWF0cml4TXVsQWN0aW9uKToK K0BAIC0yMTUsNyArMjE1LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhNYXRyaXhBY3Rpb24oTWF0cml4 TXVsQWN0aW9uKToKICAgICAgICAgIHJldHVybiBNYXRyaXhTcGFjZShiYXNlLCBzZWxmLkcubnJv d3MoKSwgc2VsZi51bmRlcmx5aW5nX3NldCgpLm5jb2xzKCksCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3BhcnNlID0gc2VsZi5HLmlzX3NwYXJzZSgpIGFuZCBzZWxmLnVuZGVybHlpbmdf c2V0KCkuaXNfc3BhcnNlKCkpCiAgCkBAIC0xMDQxOCw3ICsxMDQxOCw3IEBAIGluZGV4IDRiYjFm NGJiZTJhLi5lMTZiZmVjODU2YSAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgRVhBTVBM RVM6CiAgCi1AQCAtMzEyLDcgKzMxMiw3IEBAIGNkZWYgY2xhc3MgTWF0cml4VmVjdG9yQWN0aW9u KE1hdHJpeE11bEFjdGlvbik6CitAQCAtMzI2LDcgKzMyNiw3IEBAIGNkZWYgY2xhc3MgTWF0cml4 VmVjdG9yQWN0aW9uKE1hdHJpeE11bEFjdGlvbik6CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnVuZGVybHlpbmdf c2V0KCkuZGVncmVlKCkpKQogICAgICAgICAgcmV0dXJuIEZyZWVNb2R1bGUoYmFzZSwgc2VsZi5H Lm5yb3dzKCksIHNwYXJzZSA9IHNlbGYuRy5pc19zcGFyc2UoKSkKICAKQEAgLTEwNDI3LDcgKzEw NDI3LDcgQEAgaW5kZXggNGJiMWY0YmJlMmEuLmUxNmJmZWM4NTZhIDEwMDY0NAogICAgICAgICAg Y2RlZiBNYXRyaXggQSA9IDxNYXRyaXg+ZwogICAgICAgICAgY2RlZiBWZWN0b3IgdiA9IDxWZWN0 b3I+cwogICAgICAgICAgaWYgQS5fcGFyZW50Ll9iYXNlIGlzIG5vdCBzZWxmLl9jb2RvbWFpbi5f YmFzZToKLUBAIC0zNjMsNyArMzYzLDcgQEAgY2RlZiBjbGFzcyBWZWN0b3JNYXRyaXhBY3Rpb24o TWF0cml4TXVsQWN0aW9uKToKK0BAIC0zNzgsNyArMzc4LDcgQEAgY2RlZiBjbGFzcyBWZWN0b3JN YXRyaXhBY3Rpb24oTWF0cml4TXVsQWN0aW9uKToKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudW5kZXJseWluZ19z ZXQoKS5kZWdyZWUoKSkpCiAgICAgICAgICByZXR1cm4gRnJlZU1vZHVsZShiYXNlLCBzZWxmLkcu bmNvbHMoKSwgc3BhcnNlID0gc2VsZi5HLmlzX3NwYXJzZSgpKQogIApAQCAtMTA0MzYsNyArMTA0 MzYsNyBAQCBpbmRleCA0YmIxZjRiYmUyYS4uZTE2YmZlYzg1NmEgMTAwNjQ0CiAgICAgICAgICBj ZGVmIE1hdHJpeCBBID0gPE1hdHJpeD5nCiAgICAgICAgICBjZGVmIFZlY3RvciB2ID0gPFZlY3Rv cj5zCiAgICAgICAgICBpZiBBLl9wYXJlbnQuX2Jhc2UgaXMgbm90IHNlbGYuX2NvZG9tYWluLl9i YXNlOgotQEAgLTQyMiw3ICs0MjIsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeFBvbHltYXBBY3Rpb24o TWF0cml4TXVsQWN0aW9uKToKK0BAIC00MzcsNyArNDM3LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhQ b2x5bWFwQWN0aW9uKE1hdHJpeE11bEFjdGlvbik6CiAgICAgICAgICAgICAgcmV0dXJuIEVuZChz ZWxmLnVuZGVybHlpbmdfc2V0KCkuZG9tYWluKCkuY2hhbmdlX3JpbmcoYmFzZSkpCiAgICAgICAg ICByZXR1cm4gSG9tKHNlbGYudW5kZXJseWluZ19zZXQoKS5kb21haW4oKS5jaGFuZ2VfcmluZyhi YXNlKSwgc2VsZi51bmRlcmx5aW5nX3NldCgpLmNvZG9tYWluKCkuY2hhbmdlX3JpbmcoYmFzZSkp CiAgCkBAIC0xMDQ0NSw3ICsxMDQ0NSw3IEBAIGluZGV4IDRiYjFmNGJiZTJhLi5lMTZiZmVjODU2 YSAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgQ2FsbCB0aGUgYWN0aW9uCiAgCi1AQCAt NDk1LDcgKzQ5NSw3IEBAIGNkZWYgY2xhc3MgUG9seW1hcE1hdHJpeEFjdGlvbihNYXRyaXhNdWxB Y3Rpb24pOgorQEAgLTUxMCw3ICs1MTAsNyBAQCBjZGVmIGNsYXNzIFBvbHltYXBNYXRyaXhBY3Rp b24oTWF0cml4TXVsQWN0aW9uKToKICAgICAgICAgICAgICByZXR1cm4gRW5kKHNlbGYudW5kZXJs eWluZ19zZXQoKS5kb21haW4oKS5jaGFuZ2VfcmluZyhiYXNlKSkKICAgICAgICAgIHJldHVybiBI b20oc2VsZi51bmRlcmx5aW5nX3NldCgpLmRvbWFpbigpLmNoYW5nZV9yaW5nKGJhc2UpLCBzZWxm LnVuZGVybHlpbmdfc2V0KCkuY29kb21haW4oKS5jaGFuZ2VfcmluZyhiYXNlKSkKICAKQEAgLTEw NDU0LDcgKzEwNDU0LDcgQEAgaW5kZXggNGJiMWY0YmJlMmEuLmUxNmJmZWM4NTZhIDEwMDY0NAog ICAgICAgICAgIiIiCiAgICAgICAgICBDYWxsIHRoZSBhY3Rpb24uCiAgCi1AQCAtNTYzLDcgKzU2 Myw3IEBAIGNkZWYgY2xhc3MgTWF0cml4U2NoZW1lUG9pbnRBY3Rpb24oTWF0cml4TXVsQWN0aW9u KToKK0BAIC01NzgsNyArNTc4LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhTY2hlbWVQb2ludEFjdGlv bihNYXRyaXhNdWxBY3Rpb24pOgogICAgICAgICAgYW1iID0gc2VsZi51bmRlcmx5aW5nX3NldCgp LmNvZG9tYWluKCkKICAgICAgICAgIHJldHVybiBhbWIuY2hhbmdlX3JpbmcoYmFzZSkoYmFzZSkK ICAKQEAgLTEwNDk2LDEwICsxMDQ5NiwxMCBAQCBpbmRleCBmYzI2YmMzNTkxNC4uOWFiMDA0ZTE4 ODcgMTAwNjQ0CiAtY3BkZWYgTWF0cml4QXJncyBNYXRyaXhBcmdzX2luaXQoc3BhY2UsIGVudHJp ZXMpIG5vZXhjZXB0CiArY3BkZWYgTWF0cml4QXJncyBNYXRyaXhBcmdzX2luaXQoc3BhY2UsIGVu dHJpZXMpCiBkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cml4L2FyZ3MucHl4IGIvc3JjL3NhZ2Uv bWF0cml4L2FyZ3MucHl4Ci1pbmRleCA2YjI0NzU5NTA1OS4uYTlhODdlOTE4ZWQgMTAwNjQ0Citp bmRleCA5YTYxM2ZjZGY2Mi4uMTZjY2E4NWRhYmMgMTAwNjQ0CiAtLS0gYS9zcmMvc2FnZS9tYXRy aXgvYXJncy5weXgKICsrKyBiL3NyYy9zYWdlL21hdHJpeC9hcmdzLnB5eAotQEAgLTYwNiw3ICs2 MDYsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeEFyZ3M6CitAQCAtNjMwLDcgKzYzMCw3IEBAIGNkZWYg Y2xhc3MgTWF0cml4QXJnczoKICAgICAgICAgIHNlbGYuZmluYWxpemUoKQogICAgICAgICAgcmV0 dXJuIHNlbGYubnJvd3MgKiBzZWxmLm5jb2xzCiAgCkBAIC0xMDUwOCw3ICsxMDUwOCw3IEBAIGlu ZGV4IDZiMjQ3NTk1MDU5Li5hOWE4N2U5MThlZCAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAg ICAgUmV0dXJuIHRoZSBlbnRyaWVzIG9mIHRoZSBtYXRyaXggYXMgYSBTYWdlIE1hdHJpeC4KICAK LUBAIC02OTQsNyArNjk0LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhBcmdzOgorQEAgLTcyMSw3ICs3 MjEsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeEFyZ3M6CiAgICAgICAgICBzZWxmLnR5cCA9IE1BX0VO VFJJRVNfTUFUUklYCiAgICAgICAgICByZXR1cm4gTQogIApAQCAtMTA1MTcsNyArMTA1MTcsNyBA QCBpbmRleCA2YjI0NzU5NTA1OS4uYTlhODdlOTE4ZWQgMTAwNjQ0CiAgICAgICAgICAiIiIKICAg ICAgICAgIFJldHVybiB0aGUgZW50cmllcyBvZiB0aGUgbWF0cml4IGFzIGEgZmxhdCBsaXN0IG9m IHNjYWxhcnMuCiAgCi1AQCAtNzYxLDcgKzc2MSw3IEBAIGNkZWYgY2xhc3MgTWF0cml4QXJnczoK K0BAIC03ODgsNyArNzg4LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhBcmdzOgogICAgICAgICAgc2Vs Zi50eXAgPSBNQV9FTlRSSUVTX1NFUV9GTEFUCiAgICAgICAgICByZXR1cm4gTAogIApAQCAtMTA1 MjYsNyArMTA1MjYsNyBAQCBpbmRleCA2YjI0NzU5NTA1OS4uYTlhODdlOTE4ZWQgMTAwNjQ0CiAg ICAgICAgICAiIiIKICAgICAgICAgIFJldHVybiB0aGUgZW50cmllcyBvZiB0aGUgbWF0cml4IGFz IGEgZGljdC4gVGhlIGtleXMgb2YgdGhpcwogICAgICAgICAgZGljdCBhcmUgdGhlIG5vbi16ZXJv IHBvc2l0aW9ucyBgYChpLGopYGAuIFRoZSBjb3JyZXNwb25kaW5nCi1AQCAtMTM2MSw3ICsxMzYx LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhBcmdzOgorQEAgLTEzOTIsNyArMTM5Miw3IEBAIGNkZWYg Y2xhc3MgTWF0cml4QXJnczoKICAgICAgICAgICAgICByZXR1cm4gTUFfRU5UUklFU19TRVFfU0VR CiAgCiAgCkBAIC0xMDYwMiw3ICsxMDYwMiw3IEBAIGluZGV4IGQyMjc2ZWY0ODZkLi5jMThjN2Nk YzRhMyAxMDA2NDQKIC0gICAgY2RlZiBidWlsZF9pbnZlcnNlX2Zyb21fYXVnbWVudGVkX3NwYXJz ZShzZWxmLCBBKSBub2V4Y2VwdAogKyAgICBjZGVmIGJ1aWxkX2ludmVyc2VfZnJvbV9hdWdtZW50 ZWRfc3BhcnNlKHNlbGYsIEEpCiBkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeDAu cHl4IGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeDAucHl4Ci1pbmRleCA5ZWIzZjlmNDIxMy4uYjZl MjM4YjNkYmEgMTAwNjQ0CitpbmRleCBlYjliODg4OTZkZi4uNzJmZWFlZTdhNWQgMTAwNjQ0CiAt LS0gYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4MC5weXgKICsrKyBiL3NyYy9zYWdlL21hdHJpeC9t YXRyaXgwLnB5eAogQEAgLTM0MSw3ICszNDEsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeChzYWdlLnN0 cnVjdHVyZS5lbGVtZW50Lk1hdHJpeCk6CkBAIC0xMDY1MCw3ICsxMDY1MCw3IEBAIGluZGV4IDll YjNmOWY0MjEzLi5iNmUyMzhiM2RiYSAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgVGhp cyBmdW5jdGlvbiBnZXRzIGNhbGxlZCB3aGVuIHlvdSdyZSBhYm91dCB0byBzZXQgdGhlIGksaiBl bnRyeSBvZgogICAgICAgICAgdGhpcyBtYXRyaXguIElmIGkgb3IgaiBpcyBvdXQgb2YgcmFuZ2Us IGFuIDpjbGFzczpgSW5kZXhFcnJvcmAKLUBAIC01MTYsNyArNTE2LDcgQEAgY2RlZiBjbGFzcyBN YXRyaXgoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5NYXRyaXgpOgorQEAgLTUxNyw3ICs1MTcsNyBA QCBjZGVmIGNsYXNzIE1hdHJpeChzYWdlLnN0cnVjdHVyZS5lbGVtZW50Lk1hdHJpeCk6CiAgICAg ICMgRW50cnkgYWNjZXNzCiAgICAgICMgICAgVGhlIGZpcnN0IHR3byBtdXN0IGJlIG92ZXJsb2Fk ZWQgaW4gdGhlIGRlcml2ZWQgY2xhc3MKICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKQEAgLTEwNjU5LDcgKzEwNjU5LDcgQEAg aW5kZXggOWViM2Y5ZjQyMTMuLmI2ZTIzOGIzZGJhIDEwMDY0NAogICAgICAgICAgIiIiCiAgICAg ICAgICBTZXQgZW50cnkgcXVpY2tseSB3aXRob3V0IGRvaW5nIGFueSBib3VuZHMgY2hlY2tpbmcu IENhbGxpbmcgdGhpcwogICAgICAgICAgd2l0aCBpbnZhbGlkIGFyZ3VtZW50cyBpcyBhbGxvd2Vk IHRvIHByb2R1Y2UgYSBzZWdtZW50YXRpb24gZmF1bHQuCi1AQCAtNTI2LDcgKzUyNiw3IEBAIGNk ZWYgY2xhc3MgTWF0cml4KHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuTWF0cml4KToKK0BAIC01Mjcs NyArNTI3LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXgoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5NYXRy aXgpOgogICAgICAgICAgIiIiCiAgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCJ0 aGlzIG11c3QgYmUgZGVmaW5lZCBpbiB0aGUgZGVyaXZlZCBjbGFzcyAodHlwZT0lcykiICUgdHlw ZShzZWxmKSkKICAKQEAgLTEwNjY4LDcgKzEwNjY4LDcgQEAgaW5kZXggOWViM2Y5ZjQyMTMuLmI2 ZTIzOGIzZGJhIDEwMDY0NAogICAgICAgICAgIiIiCiAgICAgICAgICBFbnRyeSBhY2Nlc3MsIGJ1 dCBmYXN0IHNpbmNlIGl0IG1pZ2h0IGJlIHdpdGhvdXQgYm91bmRzIGNoZWNraW5nLgogIAotQEAg LTE1NjIsNyArMTU2Miw3IEBAIGNkZWYgY2xhc3MgTWF0cml4KHNhZ2Uuc3RydWN0dXJlLmVsZW1l bnQuTWF0cml4KToKK0BAIC0xNTYzLDcgKzE1NjMsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeChzYWdl LnN0cnVjdHVyZS5lbGVtZW50Lk1hdHJpeCk6CiAgCiAgCiAgCkBAIC0xMDY3Nyw3ICsxMDY3Nyw3 IEBAIGluZGV4IDllYjNmOWY0MjEzLi5iNmUyMzhiM2RiYSAxMDA2NDQKICAgICAgICAgICIiIgog ICAgICAgICAgUmV0dXJuIGNvZXJjaW9uIG9mIHggaW50byB0aGUgYmFzZSByaW5nIG9mIHNlbGYu CiAgICAgICAgICAiIiIKLUBAIC0yNDMxLDExICsyNDMxLDExIEBAIGNkZWYgY2xhc3MgTWF0cml4 KHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuTWF0cml4KToKK0BAIC0yNDMyLDExICsyNDMyLDExIEBA IGNkZWYgY2xhc3MgTWF0cml4KHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuTWF0cml4KToKICAgICAg IyBpbnZvbHZlIG11bHRpcGxpY2F0aW9uIG91dHNpZGUgYmFzZSByaW5nLCBpbmNsdWRpbmcKICAg ICAgIyB3aXRoXyB2ZXJzaW9ucyBvZiB0aGVzZSBtZXRob2RzIGZvciB0aGlzIHNpdHVhdGlvbgog ICAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK QEAgLTEwNjkxLDcgKzEwNjkxLDcgQEAgaW5kZXggOWViM2Y5ZjQyMTMuLmI2ZTIzOGIzZGJhIDEw MDY0NAogICAgICAgICAgaWYgc2VsZi5faXNfaW1tdXRhYmxlOgogICAgICAgICAgICAgIHJhaXNl IFZhbHVlRXJyb3IoIk1hdHJpeCBpcyBpbW11dGFibGU7IHBsZWFzZSBjaGFuZ2UgYSBjb3B5IGlu c3RlYWQgKGkuZS4sIHVzZSBjb3B5KE0pIHRvIGNoYW5nZSBhIGNvcHkgb2YgTSkuIikKICAgICAg ICAgIGVsc2U6Ci1AQCAtMjQ0MywxMSArMjQ0MywxMSBAQCBjZGVmIGNsYXNzIE1hdHJpeChzYWdl LnN0cnVjdHVyZS5lbGVtZW50Lk1hdHJpeCk6CitAQCAtMjQ0NCwxMSArMjQ0NCwxMSBAQCBjZGVm IGNsYXNzIE1hdHJpeChzYWdlLnN0cnVjdHVyZS5lbGVtZW50Lk1hdHJpeCk6CiAgICAgICAgICBp ZiByMSA8IDAgb3IgcjEgPj0gc2VsZi5fbnJvd3Mgb3IgcjIgPCAwIG9yIHIyID49IHNlbGYuX25y b3dzOgogICAgICAgICAgICAgIHJhaXNlIEluZGV4RXJyb3IoIm1hdHJpeCByb3cgaW5kZXggb3V0 IG9mIHJhbmdlIikKICAKQEAgLTEwNzA1LDcgKzEwNzA1LDcgQEAgaW5kZXggOWViM2Y5ZjQyMTMu LmI2ZTIzOGIzZGJhIDEwMDY0NAogICAgICAgICAgaWYgc2VsZi5faXNfaW1tdXRhYmxlOgogICAg ICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk1hdHJpeCBpcyBpbW11dGFibGU7IHBsZWFzZSBj aGFuZ2UgYSBjb3B5IGluc3RlYWQgKGkuZS4sIHVzZSBjb3B5KE0pIHRvIGNoYW5nZSBhIGNvcHkg b2YgTSkuIikKICAgICAgICAgIGVsc2U6Ci1AQCAtMjYzMyw3ICsyNjMzLDcgQEAgY2RlZiBjbGFz cyBNYXRyaXgoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5NYXRyaXgpOgorQEAgLTI2MzQsNyArMjYz NCw3IEBAIGNkZWYgY2xhc3MgTWF0cml4KHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuTWF0cml4KToK ICAgICAgICAgICAgICAgICAgICAgIHRlbXAuc3dhcF9jb2x1bW5zX2MoY3ljbGVbMF0sIGVsdCkK ICAgICAgICAgIHJldHVybiB0ZW1wCiAgCkBAIC0xMDcxNCw3ICsxMDcxNCw3IEBAIGluZGV4IDll YjNmOWY0MjEzLi5iNmUyMzhiM2RiYSAxMDA2NDQKICAgICAgICAgIGNkZWYgUHlfc3NpemVfdCBy CiAgICAgICAgICBmb3IgciBmcm9tIDAgPD0gciA8IHNlbGYuX25yb3dzOgogICAgICAgICAgICAg IGEgPSBzZWxmLmdldF91bnNhZmUociwgYzIpCi1AQCAtMjgxNSw3ICsyODE1LDcgQEAgY2RlZiBj bGFzcyBNYXRyaXgoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5NYXRyaXgpOgorQEAgLTI4MTYsNyAr MjgxNiw3IEBAIGNkZWYgY2xhc3MgTWF0cml4KHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuTWF0cml4 KToKICAgICAgICAgICAgICAgICAgICAgIHRlbXAuc3dhcF9yb3dzX2MoY3ljbGVbMF0sIGVsdCkK ICAgICAgICAgIHJldHVybiB0ZW1wCiAgCkBAIC0xMDcyMyw3ICsxMDcyMyw3IEBAIGluZGV4IDll YjNmOWY0MjEzLi5iNmUyMzhiM2RiYSAxMDA2NDQKICAgICAgICAgIGNkZWYgUHlfc3NpemVfdCBj CiAgICAgICAgICBmb3IgYyBmcm9tIDAgPD0gYyA8IHNlbGYuX25jb2xzOgogICAgICAgICAgICAg IGEgPSBzZWxmLmdldF91bnNhZmUocjIsIGMpCi1AQCAtMjk1MCw3ICsyOTUwLDcgQEAgY2RlZiBj bGFzcyBNYXRyaXgoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5NYXRyaXgpOgorQEAgLTI5NTEsNyAr Mjk1MSw3IEBAIGNkZWYgY2xhc3MgTWF0cml4KHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuTWF0cml4 KToKICAgICAgICAgIGV4Y2VwdCBUeXBlRXJyb3I6CiAgICAgICAgICAgICAgcmFpc2UgVHlwZUVy cm9yKCdNdWx0aXBseWluZyByb3cgYnkgJXMgZWxlbWVudCBjYW5ub3QgYmUgZG9uZSBvdmVyICVz LCB1c2UgY2hhbmdlX3Jpbmcgb3Igd2l0aF9hZGRlZF9tdWx0aXBsZV9vZl9yb3cgaW5zdGVhZC4n ICUgKHMucGFyZW50KCksIHNlbGYuYmFzZV9yaW5nKCkpKQogIApAQCAtMTA3MzIsNyArMTA3MzIs NyBAQCBpbmRleCA5ZWIzZjlmNDIxMy4uYjZlMjM4YjNkYmEgMTAwNjQ0CiAgICAgICAgICBjZGVm IFB5X3NzaXplX3QgYwogICAgICAgICAgZm9yIGMgZnJvbSBzdGFydF9jb2wgPD0gYyA8IHNlbGYu X25jb2xzOgogICAgICAgICAgICAgIHNlbGYuc2V0X3Vuc2FmZShpLCBjLCBzZWxmLmdldF91bnNh ZmUoaSwgYykgKyBzKnNlbGYuZ2V0X3Vuc2FmZShqLCBjKSkKLUBAIC0zMDM1LDcgKzMwMzUsNyBA QCBjZGVmIGNsYXNzIE1hdHJpeChzYWdlLnN0cnVjdHVyZS5lbGVtZW50Lk1hdHJpeCk6CitAQCAt MzAzNiw3ICszMDM2LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXgoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVu dC5NYXRyaXgpOgogICAgICAgICAgZXhjZXB0IFR5cGVFcnJvcjoKICAgICAgICAgICAgICByYWlz ZSBUeXBlRXJyb3IoJ011bHRpcGx5aW5nIGNvbHVtbiBieSAlcyBlbGVtZW50IGNhbm5vdCBiZSBk b25lIG92ZXIgJXMsIHVzZSBjaGFuZ2VfcmluZyBvciB3aXRoX2FkZGVkX211bHRpcGxlX29mX2Nv bHVtbiBpbnN0ZWFkLicgJSAocy5wYXJlbnQoKSwgc2VsZi5iYXNlX3JpbmcoKSkpCiAgCkBAIC0x MDc0MSw3ICsxMDc0MSw3IEBAIGluZGV4IDllYjNmOWY0MjEzLi5iNmUyMzhiM2RiYSAxMDA2NDQK ICAgICAgICAgIGNkZWYgUHlfc3NpemVfdCByCiAgICAgICAgICBmb3IgciBmcm9tIHN0YXJ0X3Jv dyA8PSByIDwgc2VsZi5fbnJvd3M6CiAgICAgICAgICAgICAgc2VsZi5zZXRfdW5zYWZlKHIsIGks IHNlbGYuZ2V0X3Vuc2FmZShyLCBpKSArIHMqc2VsZi5nZXRfdW5zYWZlKHIsIGopKQotQEAgLTMx NTAsNyArMzE1MCw3IEBAIGNkZWYgY2xhc3MgTWF0cml4KHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQu TWF0cml4KToKK0BAIC0zMTUxLDcgKzMxNTEsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeChzYWdlLnN0 cnVjdHVyZS5lbGVtZW50Lk1hdHJpeCk6CiAgICAgICAgICBleGNlcHQgVHlwZUVycm9yOgogICAg ICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcignUmVzY2FsaW5nIHJvdyBieSAlcyBlbGVtZW50IGNh bm5vdCBiZSBkb25lIG92ZXIgJXMsIHVzZSBjaGFuZ2VfcmluZyBvciB3aXRoX3Jlc2NhbGVkX3Jv dyBpbnN0ZWFkLicgJSAocy5wYXJlbnQoKSwgc2VsZi5iYXNlX3JpbmcoKSkpCiAgCkBAIC0xMDc1 MCw3ICsxMDc1MCw3IEBAIGluZGV4IDllYjNmOWY0MjEzLi5iNmUyMzhiM2RiYSAxMDA2NDQKICAg ICAgICAgIGNkZWYgUHlfc3NpemVfdCBqCiAgICAgICAgICBmb3IgaiBmcm9tIHN0YXJ0X2NvbCA8 PSBqIDwgc2VsZi5fbmNvbHM6CiAgICAgICAgICAgICAgc2VsZi5zZXRfdW5zYWZlKGksIGosIHNl bGYuZ2V0X3Vuc2FmZShpLCBqKSpzKQotQEAgLTMyNjUsNyArMzI2NSw3IEBAIGNkZWYgY2xhc3Mg TWF0cml4KHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuTWF0cml4KToKK0BAIC0zMjY2LDcgKzMyNjYs NyBAQCBjZGVmIGNsYXNzIE1hdHJpeChzYWdlLnN0cnVjdHVyZS5lbGVtZW50Lk1hdHJpeCk6CiAg ICAgICAgICBleGNlcHQgVHlwZUVycm9yOgogICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcign UmVzY2FsaW5nIGNvbHVtbiBieSAlcyBlbGVtZW50IGNhbm5vdCBiZSBkb25lIG92ZXIgJXMsIHVz ZSBjaGFuZ2VfcmluZyBvciB3aXRoX3Jlc2NhbGVkX2NvbCBpbnN0ZWFkLicgJSAocy5wYXJlbnQo KSwgc2VsZi5iYXNlX3JpbmcoKSkpCiAgCkBAIC0xMDc1OSw3ICsxMDc1OSw3IEBAIGluZGV4IDll YjNmOWY0MjEzLi5iNmUyMzhiM2RiYSAxMDA2NDQKICAgICAgICAgIGNkZWYgUHlfc3NpemVfdCBq CiAgICAgICAgICBmb3IgaiBmcm9tIHN0YXJ0X3JvdyA8PSBqIDwgc2VsZi5fbnJvd3M6CiAgICAg ICAgICAgICAgc2VsZi5zZXRfdW5zYWZlKGosIGksIHNlbGYuZ2V0X3Vuc2FmZShqLCBpKSpzKQot QEAgLTUwMzgsNyArNTAzOCw3IEBAIGNkZWYgY2xhc3MgTWF0cml4KHNhZ2Uuc3RydWN0dXJlLmVs ZW1lbnQuTWF0cml4KToKK0BAIC01MDQwLDcgKzUwNDAsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeChz YWdlLnN0cnVjdHVyZS5lbGVtZW50Lk1hdHJpeCk6CiAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogICAgICAjIEFyaXRobWV0aWMKICAgICAg IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCkBAIC0x MDc2OCw3ICsxMDc2OCw3IEBAIGluZGV4IDllYjNmOWY0MjEzLi5iNmUyMzhiM2RiYSAxMDA2NDQK ICAgICAgICAgIHIiIiIKICAgICAgICAgIFJldHVybiB0aGUgdmVjdG9yIHRpbWVzIG1hdHJpeCBw cm9kdWN0LgogIAotQEAgLTUwOTUsNyArNTA5NSw3IEBAIGNkZWYgY2xhc3MgTWF0cml4KHNhZ2Uu c3RydWN0dXJlLmVsZW1lbnQuTWF0cml4KToKK0BAIC01MDk3LDcgKzUwOTcsNyBAQCBjZGVmIGNs YXNzIE1hdHJpeChzYWdlLnN0cnVjdHVyZS5lbGVtZW50Lk1hdHJpeCk6CiAgICAgICAgICByZXR1 cm4gc3VtKFt2W2ldICogc2VsZi5yb3coaSwgZnJvbV9saXN0PVRydWUpCiAgICAgICAgICAgICAg ICAgICAgICBmb3IgaSBpbiByYW5nZShzZWxmLl9ucm93cyldLCBNKDApKQogIApAQCAtMTA3Nzcs NyArMTA3NzcsNyBAQCBpbmRleCA5ZWIzZjlmNDIxMy4uYjZlMjM4YjNkYmEgMTAwNjQ0CiAgICAg ICAgICAiIiIKICAgICAgICAgIEVYQU1QTEVTOjoKICAKLUBAIC01MjA2LDcgKzUyMDYsNyBAQCBj ZGVmIGNsYXNzIE1hdHJpeChzYWdlLnN0cnVjdHVyZS5lbGVtZW50Lk1hdHJpeCk6CitAQCAtNTIw OCw3ICs1MjA4LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXgoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5N YXRyaXgpOgogICAgICAgICAgICAgIE1TID0gc2VsZi5tYXRyaXhfc3BhY2UobiwgbSkKICAgICAg ICAgICAgICByZXR1cm4gTVMoWCkudHJhbnNwb3NlKCkKICAKQEAgLTEwNzg2LDcgKzEwNzg2LDcg QEAgaW5kZXggOWViM2Y5ZjQyMTMuLmI2ZTIzOGIzZGJhIDEwMDY0NAogICAgICAgICAgIiIiCiAg ICAgICAgICBBZGQgdHdvIG1hdHJpY2VzIHdpdGggdGhlIHNhbWUgcGFyZW50LgogIAotQEAgLTUy MzAsNyArNTIzMCw3IEBAIGNkZWYgY2xhc3MgTWF0cml4KHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQu TWF0cml4KToKK0BAIC01MjMyLDcgKzUyMzIsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeChzYWdlLnN0 cnVjdHVyZS5lbGVtZW50Lk1hdHJpeCk6CiAgICAgICAgICAgICAgICAgIEEuc2V0X3Vuc2FmZShp LCBqLCBzZWxmLmdldF91bnNhZmUoaSxqKS5fYWRkXyhyaWdodC5nZXRfdW5zYWZlKGksaikpKQog ICAgICAgICAgcmV0dXJuIEEKICAKQEAgLTEwNzk1LDcgKzEwNzk1LDcgQEAgaW5kZXggOWViM2Y5 ZjQyMTMuLmI2ZTIzOGIzZGJhIDEwMDY0NAogICAgICAgICAgIiIiCiAgICAgICAgICBTdWJ0cmFj dCB0d28gbWF0cmljZXMgd2l0aCB0aGUgc2FtZSBwYXJlbnQuCiAgCi1AQCAtNTI5Niw3ICs1Mjk2 LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXgoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5NYXRyaXgpOgor QEAgLTUyOTgsNyArNTI5OCw3IEBAIGNkZWYgY2xhc3MgTWF0cml4KHNhZ2Uuc3RydWN0dXJlLmVs ZW1lbnQuTWF0cml4KToKICAgICAgICAgICIiIgogICAgICAgICAgcmV0dXJuIHNlbGYuY2hhbmdl X3Jpbmcoc2VsZi5fYmFzZV9yaW5nLnF1b3RpZW50X3JpbmcocCkpCiAgCkBAIC0xMDgwNCw3ICsx MDgwNCw3IEBAIGluZGV4IDllYjNmOWY0MjEzLi5iNmUyMzhiM2RiYSAxMDA2NDQKICAgICAgICAg ICIiIgogICAgICAgICAgRVhBTVBMRVM6OgogIAotQEAgLTUzMzQsNyArNTMzNCw3IEBAIGNkZWYg Y2xhc3MgTWF0cml4KHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuTWF0cml4KToKK0BAIC01MzM2LDcg KzUzMzYsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeChzYWdlLnN0cnVjdHVyZS5lbGVtZW50Lk1hdHJp eCk6CiAgICAgICAgICAgICAgICAgIGFucy5zZXRfdW5zYWZlKHIsIGMsIHggKiBzZWxmLmdldF91 bnNhZmUociwgYykpCiAgICAgICAgICByZXR1cm4gYW5zCiAgCkBAIC0xMDgxMyw3ICsxMDgxMyw3 IEBAIGluZGV4IDllYjNmOWY0MjEzLi5iNmUyMzhiM2RiYSAxMDA2NDQKICAgICAgICAgICIiIgog ICAgICAgICAgRVhBTVBMRVM6CiAgCi1AQCAtNTM3OCw3ICs1Mzc4LDcgQEAgY2RlZiBjbGFzcyBN YXRyaXgoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5NYXRyaXgpOgorQEAgLTUzODAsNyArNTM4MCw3 IEBAIGNkZWYgY2xhc3MgTWF0cml4KHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuTWF0cml4KToKICAg ICAgICAgICAgICAgICAgYW5zLnNldF91bnNhZmUociwgYywgc2VsZi5nZXRfdW5zYWZlKHIsIGMp ICogeCkKICAgICAgICAgIHJldHVybiBhbnMKICAKQEAgLTEwODIyLDcgKzEwODIyLDcgQEAgaW5k ZXggOWViM2Y5ZjQyMTMuLmI2ZTIzOGIzZGJhIDEwMDY0NAogICAgICAgICAgciIiIgogICAgICAg ICAgUmV0dXJuIHRoZSBwcm9kdWN0IG9mIHR3byBtYXRyaWNlcy4KICAKLUBAIC01NzcxLDcgKzU3 NzEsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeChzYWdlLnN0cnVjdHVyZS5lbGVtZW50Lk1hdHJpeCk6 CitAQCAtNTc3Myw3ICs1NzczLDcgQEAgY2RlZiBjbGFzcyBNYXRyaXgoc2FnZS5zdHJ1Y3R1cmUu ZWxlbWVudC5NYXRyaXgpOgogICAgICAgICAgICAgICAgICAgICAgcmFpc2UgWmVyb0RpdmlzaW9u RXJyb3IoImlucHV0IG1hdHJpeCBtdXN0IGJlIG5vbnNpbmd1bGFyIikKICAgICAgICAgICAgICBy ZXR1cm4gQS5tYXRyaXhfZnJvbV9jb2x1bW5zKGxpc3QocmFuZ2Uoc2VsZi5fbmNvbHMsIDIgKiBz ZWxmLl9uY29scykpKQogIApAQCAtMTA4MzEsNyArMTA4MzEsNyBAQCBpbmRleCA5ZWIzZjlmNDIx My4uYjZlMjM4YjNkYmEgMTAwNjQ0CiAgICAgICAgICAjIFdlIGNhbiBkaXJlY3RseSB1c2UgdGhl IGRpY3QgZW50cmllcyBvZiBBCiAgICAgICAgICBjZGVmIFB5X3NzaXplX3QgaSwgbnJvd3MKICAg ICAgICAgIGNkZWYgZGljdCBkYXRhID0gPGRpY3Q+IEEuX2RpY3QoKQotQEAgLTYwNzQsNyArNjA3 NCw3IEBAIGNkZWYgY2xhc3MgTWF0cml4KHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuTWF0cml4KToK K0BAIC02MDc2LDcgKzYwNzYsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeChzYWdlLnN0cnVjdHVyZS5l bGVtZW50Lk1hdHJpeCk6CiAgICAgICAgICAjIENbMF0gPSAoMSAtIG0gKiAobSAtIDEpLzIpICog Q1syXSAtIChtIC0gMSkgKiBDWzFdCiAgICAgICAgICBDWzBdID0gKDEgLSBtbSkgKiBDWzJdIC0g KG0gLSAxKSAqIENbMV0KICAKQEAgLTEwODU2LDcgKzEwODU2LDcgQEAgaW5kZXggZTM1ODVmOWNh YWIuLmQyNDQ2OGI4MGUxIDEwMDY0NAogKyAgICBjcGRlZiByb3dfYW1iaWVudF9tb2R1bGUoc2Vs ZiwgYmFzZV9yaW5nPSosIHNwYXJzZT0qKQogKyAgICBjcGRlZiBjb2x1bW5fYW1iaWVudF9tb2R1 bGUoc2VsZiwgYmFzZV9yaW5nPSosIHNwYXJzZT0qKQogZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21h dHJpeC9tYXRyaXgxLnB5eCBiL3NyYy9zYWdlL21hdHJpeC9tYXRyaXgxLnB5eAotaW5kZXggZWY4 YWEzNWNlMDMuLjFkMjhhMjNlYzkwIDEwMDY0NAoraW5kZXggYjE1ZWIyMWRhNzcuLmQ0NDYwMzA0 NzNmIDEwMDY0NAogLS0tIGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeDEucHl4CiArKysgYi9zcmMv c2FnZS9tYXRyaXgvbWF0cml4MS5weXgKIEBAIC04NTQsNyArODU0LDcgQEAgY2RlZiBjbGFzcyBN YXRyaXgoTWF0cml4MCk6CkBAIC0xMDkwOCwxMCArMTA5MDgsMTAgQEAgaW5kZXggMWZkODVjNWYw ODIuLmEyZTAyOTcyMjhjIDEwMDY0NAogKyAgICBjcGRlZiBfZWNoZWxvbl9pbl9wbGFjZShzZWxm LCBzdHIgYWxnb3JpdGhtKQogKyAgICBjcGRlZiBtYXRyaXhfd2luZG93KHNlbGYsIFB5X3NzaXpl X3Qgcm93PSosIFB5X3NzaXplX3QgY29sPSosIFB5X3NzaXplX3QgbnJvd3M9KiwgUHlfc3NpemVf dCBuY29scz0qLCBiaW50IGNoZWNrPSopCiBkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cml4L21h dHJpeDIucHl4IGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeDIucHl4Ci1pbmRleCA0N2E4MzZhMDk1 Mi4uNzZlZmFlOTU1YjUgMTAwNjQ0CitpbmRleCA0NmE1Mjc3NjczYS4uZmMwNjBmNWYyMTAgMTAw NjQ0CiAtLS0gYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4Mi5weXgKICsrKyBiL3NyYy9zYWdlL21h dHJpeC9tYXRyaXgyLnB5eAotQEAgLTIxOTksNyArMjE5OSw3IEBAIGNkZWYgY2xhc3MgTWF0cml4 KE1hdHJpeDEpOgorQEAgLTIyMDgsNyArMjIwOCw3IEBAIGNkZWYgY2xhc3MgTWF0cml4KE1hdHJp eDEpOgogICAgICAgICAgc2VsZi5jYWNoZSgnZGV0JywgZCkKICAgICAgICAgIHJldHVybiBkCiAg CkBAIC0xMDkyMCw3ICsxMDkyMCw3IEBAIGluZGV4IDQ3YTgzNmEwOTUyLi43NmVmYWU5NTViNSAx MDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgQ29tcHV0ZSB0aGUgZGV0ZXJtaW5hbnQgb2Yg dGhlIHVwcGVyLWxlZnQgbGV2ZWwgeCBsZXZlbCBzdWJtYXRyaXgKICAgICAgICAgIG9mIHNlbGYu IERvZXMgbm90IGhhbmRsZSBkZWdlbmVyYXRlIGNhc2VzLCBsZXZlbCBNVVNUIGJlID49IDIKLUBA IC0yNTY5LDcgKzI1NjksNyBAQCBjZGVmIGNsYXNzIE1hdHJpeChNYXRyaXgxKToKK0BAIC0yNTc4 LDcgKzI1NzgsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeChNYXRyaXgxKToKICAKICAgICAgICAgIHJl dHVybiByZXMKICAKQEAgLTEwOTI5LDcgKzEwOTI5LDcgQEAgaW5kZXggNDdhODM2YTA5NTIuLjc2 ZWZhZTk1NWI1IDEwMDY0NAogICAgICAgICAgciIiIgogICAgICAgICAgQ29tcHV0ZXMgdGhlIFBm YWZmaWFuIG9mIGBgc2VsZmBgIHVzaW5nIHRoZSBCYWVyLUZhZGRlZXYtTGVWZXJyaWVyCiAgICAg ICAgICBhbGdvcml0aG0uCi1AQCAtNzk2Nyw3ICs3OTY3LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXgo TWF0cml4MSk6CitAQCAtNzk4Myw3ICs3OTgzLDcgQEAgY2RlZiBjbGFzcyBNYXRyaXgoTWF0cml4 MSk6CiAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgIHJldHVybiBFCiAgCkBAIC0xMDkzOCw3 ICsxMDkzOCw3IEBAIGluZGV4IDQ3YTgzNmEwOTUyLi43NmVmYWU5NTViNSAxMDA2NDQKICAgICAg ICAgICIiIgogICAgICAgICAgUmV0dXJuIHRoZSBlY2hlbG9uIGZvcm0gb2YgYGBzZWxmYGAgdXNp bmcgYGBhbGdvcml0aG1gYC4KICAKLUBAIC04MDQ3LDcgKzgwNDcsNyBAQCBjZGVmIGNsYXNzIE1h dHJpeChNYXRyaXgxKToKK0BAIC04MDYzLDcgKzgwNjMsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeChN YXRyaXgxKToKICAgICAgICAgICIiIgogICAgICAgICAgcmV0dXJuIHNlbGYuX2VjaGVsb24oJ2Ns YXNzaWNhbCcpCiAgCkBAIC0xMDk0Nyw3ICsxMDk0Nyw3IEBAIGluZGV4IDQ3YTgzNmEwOTUyLi43 NmVmYWU5NTViNSAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgVHJhbnNmb3JtIGBgc2Vs ZmBgIGludG8gZWNoZWxvbiBmb3JtIGFuZCByZXR1cm4gdGhlIHBpdm90cyBvZiBgYHNlbGZgYC4K ICAKLUBAIC04ODc4LDcgKzg4NzgsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeChNYXRyaXgxKToKK0BA IC04ODk0LDcgKzg4OTQsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeChNYXRyaXgxKToKICAKICAgICAg Y3BkZWYgbWF0cml4X3dpbmRvdyhzZWxmLCBQeV9zc2l6ZV90IHJvdz0wLCBQeV9zc2l6ZV90IGNv bD0wLAogICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgbnJvd3M9LTEsIFB5X3Nz aXplX3QgbmNvbHM9LTEsCkBAIC0xMDk1Niw3ICsxMDk1Niw3IEBAIGluZGV4IDQ3YTgzNmEwOTUy Li43NmVmYWU5NTViNSAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgUmV0dXJuIHRoZSBy ZXF1ZXN0ZWQgbWF0cml4IHdpbmRvdy4KICAKLUBAIC0xNDA3Myw3ICsxNDA3Myw3IEBAIGNkZWYg Y2xhc3MgTWF0cml4KE1hdHJpeDEpOgorQEAgLTE0MDg5LDcgKzE0MDg5LDcgQEAgY2RlZiBjbGFz cyBNYXRyaXgoTWF0cml4MSk6CiAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihtc2cuZm9y bWF0KGQpKQogICAgICAgICAgcmV0dXJuIEwsIHZlY3RvcihMLmJhc2VfcmluZygpLCBkKQogIApA QCAtMTA5ODgsNyArMTA5ODgsNyBAQCBpbmRleCBhNTNhZTc3N2YyMC4uN2E2YjE4ODc1MTggMTAw NjQ0CiAgICAgIFJlcGxhY2UgYEhgIHdpdGggYSBIZXNzZW5iZXJnIGZvcm0gb2YgaXQuCiAgCiBk aWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9jb21wbGV4X2JhbGxfZGVuc2UucHhk IGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9jb21wbGV4X2JhbGxfZGVuc2UucHhkCi1pbmRleCA5 YTE3MDg5YTFjNy4uZjYzNTQ0NjlmYTkgMTAwNjQ0CitpbmRleCA2YjM0YWZmYjMzOC4uZWZmYTA0 MTMwMjYgMTAwNjQ0CiAtLS0gYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2NvbXBsZXhfYmFsbF9k ZW5zZS5weGQKICsrKyBiL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfY29tcGxleF9iYWxsX2RlbnNl LnB4ZAogQEAgLTUsOSArNSw5IEBAIGZyb20gc2FnZS5zdHJ1Y3R1cmUucGFyZW50IGNpbXBvcnQg UGFyZW50CkBAIC0xMTAwNSw3ICsxMTAwNSw3IEBAIGluZGV4IDlhMTcwODlhMWM3Li5mNjM1NDQ2 OWZhOSAxMDA2NDQKICsgICAgY2RlZiBNYXRyaXhfY29tcGxleF9iYWxsX2RlbnNlIF9uZXcoc2Vs ZiwgUHlfc3NpemVfdCBucm93cywgUHlfc3NpemVfdCBuY29scykKICsgICAgY3BkZWYgX3Bvd19p bnQoc2VsZiwgbikKIGRpZmYgLS1naXQgYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2NvbXBsZXhf YmFsbF9kZW5zZS5weXggYi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2NvbXBsZXhfYmFsbF9kZW5z ZS5weXgKLWluZGV4IDJmMDEzMWY0MDY0Li5jMDY3ZDZhOTAxNyAxMDA2NDQKK2luZGV4IDRkNGMz YjJkNmJkLi4wNzg1NzIxNzMwOSAxMDA2NDQKIC0tLSBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhf Y29tcGxleF9iYWxsX2RlbnNlLnB5eAogKysrIGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9jb21w bGV4X2JhbGxfZGVuc2UucHl4CiBAQCAtODAsMTQgKzgwLDE0IEBAIGNkZWYgdm9pZCBtYXRyaXhf dG9fYWNiX21hdChhY2JfbWF0X3QgdGFyZ2V0LCBzb3VyY2UpIG5vZXhjZXB0OgpAQCAtMTEyMjUs NyArMTEyMjUsNyBAQCBpbmRleCBiMDRmYzcyNDhhZi4uYTk1NGRkZTM5ZDIgMTAwNjQ0CiAgICAg ICAgICBFWEFNUExFUzo6CiAgCiBkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9k b3VibGVfZGVuc2UucHl4IGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9kb3VibGVfZGVuc2UucHl4 Ci1pbmRleCBlZGUwNmYwN2Y3Zi4uMTYwZGNjNGRjZDkgMTAwNjQ0CitpbmRleCA2ODc3YTkyNGRl Mi4uYzAyNDVmYzkzYTQgMTAwNjQ0CiAtLS0gYS9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2RvdWJs ZV9kZW5zZS5weXgKICsrKyBiL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfZG91YmxlX2RlbnNlLnB5 eAogQEAgLTE0Niw3ICsxNDYsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9kb3VibGVfZGVuc2UoTWF0 cml4X251bXB5X2RlbnNlKToKQEAgLTExMjU1LDcgKzExMjU1LDcgQEAgaW5kZXggZWRlMDZmMDdm N2YuLjE2MGRjYzRkY2Q5IDEwMDY0NAogICAgICAgICAgciIiIgogICAgICAgICAgTXVsdGlwbHkg YGBzZWxmICogcmlnaHRgYCBhcyBtYXRyaWNlcy4KICAKLUBAIC0zNTg4LDcgKzM1ODgsNyBAQCBj ZGVmIGNsYXNzIE1hdHJpeF9kb3VibGVfZGVuc2UoTWF0cml4X251bXB5X2RlbnNlKToKK0BAIC0z NTk2LDcgKzM1OTYsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9kb3VibGVfZGVuc2UoTWF0cml4X251 bXB5X2RlbnNlKToKICAgICAgICAgICAgICBwb3NkZWYgPSBzZWxmLmZldGNoKGNhY2hlX3N0cikK ICAgICAgICAgIHJldHVybiBwb3NkZWYKICAKQEAgLTExMjY0LDcgKzExMjY0LDcgQEAgaW5kZXgg ZWRlMDZmMDdmN2YuLjE2MGRjYzRkY2Q5IDEwMDY0NAogICAgICAgICAgaWYgc2VsZi5fbnJvd3Mg PT0gMCBvciBzZWxmLl9uY29scyA9PSAwOgogICAgICAgICAgICAgIHJldHVybiBzZWxmLnJvd19h bWJpZW50X21vZHVsZSgpLnplcm9fdmVjdG9yKCkKICAgICAgICAgIGdsb2JhbCBudW1weQotQEAg LTM2MDEsNyArMzYwMSw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X2RvdWJsZV9kZW5zZShNYXRyaXhf bnVtcHlfZGVuc2UpOgorQEAgLTM2MDksNyArMzYwOSw3IEBAIGNkZWYgY2xhc3MgTWF0cml4X2Rv dWJsZV9kZW5zZShNYXRyaXhfbnVtcHlfZGVuc2UpOgogICAgICAgICAgYW5zID0gbnVtcHkuZG90 KHZfbnVtcHksc2VsZi5fbWF0cml4X251bXB5KQogICAgICAgICAgcmV0dXJuIE0oYW5zKQogIApA QCAtMTE0MTEsMTAgKzExNDExLDEwIEBAIGluZGV4IDk2MDk0ZjU2NDZiLi40NDExMzg1NjBiMCAx MDA2NDQKICAgICAgICAgIFN1YnRyYWN0IHR3byBnZW5lcmljIGRlbnNlIG1hdHJpY2VzIHdpdGgg dGhlIHNhbWUgcGFyZW50LgogIAogZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhf Z2VuZXJpY19zcGFyc2UucHl4IGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9nZW5lcmljX3NwYXJz ZS5weXgKLWluZGV4IDU5ZmZmZTM4OGQyLi5lNjg2MWJlNGZiOCAxMDA2NDQKK2luZGV4IGJjMjUx ZjNlNWMwLi4wNTU3NDZhODY2NCAxMDA2NDQKIC0tLSBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhf Z2VuZXJpY19zcGFyc2UucHl4CiArKysgYi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X2dlbmVyaWNf c3BhcnNlLnB5eAotQEAgLTE4Nyw3ICsxODcsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9nZW5lcmlj X3NwYXJzZShtYXRyaXhfc3BhcnNlLk1hdHJpeF9zcGFyc2UpOgorQEAgLTE4OCw3ICsxODgsNyBA QCBjZGVmIGNsYXNzIE1hdHJpeF9nZW5lcmljX3NwYXJzZShtYXRyaXhfc3BhcnNlLk1hdHJpeF9z cGFyc2UpOgogICAgICAgICAgIiIiCiAgICAgICAgICByZXR1cm4gYm9vbChzZWxmLl9lbnRyaWVz KQogIApAQCAtMTE0MjMsNyArMTE0MjMsNyBAQCBpbmRleCA1OWZmZmUzODhkMi4uZTY4NjFiZTRm YjggMTAwNjQ0CiAgICAgICAgICBpZiBub3QgdmFsdWU6CiAgICAgICAgICAgICAgdHJ5OgogICAg ICAgICAgICAgICAgICBkZWwgc2VsZi5fZW50cmllc1soaSxqKV0KLUBAIC0xOTYsNyArMTk2LDcg QEAgY2RlZiBjbGFzcyBNYXRyaXhfZ2VuZXJpY19zcGFyc2UobWF0cml4X3NwYXJzZS5NYXRyaXhf c3BhcnNlKToKK0BAIC0xOTcsNyArMTk3LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfZ2VuZXJpY19z cGFyc2UobWF0cml4X3NwYXJzZS5NYXRyaXhfc3BhcnNlKToKICAgICAgICAgIGVsc2U6CiAgICAg ICAgICAgICAgc2VsZi5fZW50cmllc1soaSxqKV0gPSB2YWx1ZQogIApAQCAtMTE0MzIsNyArMTE0 MzIsNyBAQCBpbmRleCA1OWZmZmUzODhkMi4uZTY4NjFiZTRmYjggMTAwNjQ0CiAgICAgICAgICBy ZXR1cm4gc2VsZi5fZW50cmllcy5nZXQoKGksaiksIHNlbGYuX3plcm8pCiAgCiAgICAgIGNkZWYg YmludCBnZXRfaXNfemVyb191bnNhZmUoc2VsZiwgUHlfc3NpemVfdCBpLCBQeV9zc2l6ZV90IGop IGV4Y2VwdCAtMToKLUBAIC0yNDcsNyArMjQ3LDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfZ2VuZXJp Y19zcGFyc2UobWF0cml4X3NwYXJzZS5NYXRyaXhfc3BhcnNlKToKK0BAIC0yNDgsNyArMjQ4LDcg QEAgY2RlZiBjbGFzcyBNYXRyaXhfZ2VuZXJpY19zcGFyc2UobWF0cml4X3NwYXJzZS5NYXRyaXhf c3BhcnNlKToKICAgICAgIyB4ICAqIF9kaWN0IC0tIGNvcHkgb2YgdGhlIHNwYXJzZSBkaWN0aW9u YXJ5IG9mIHVuZGVybHlpbmcgZWxlbWVudHMKICAgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAgCkBAIC0x MjQwMyw3ICsxMjQwMyw3IEBAIGluZGV4IDZhNjM0N2Y0OTI2Li5kMmQ5OTU1ZmVmYyAxMDA2NDQK ICBjZGVmIGNsYXNzIE1hdHJpeFdpbmRvdzoKICAgICAgY2RlZiBNYXRyaXhfcmF0aW9uYWxfZGVu c2UgX21hdHJpeAogZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfcmF0aW9uYWxf ZGVuc2UucHl4IGIvc3JjL3NhZ2UvbWF0cml4L21hdHJpeF9yYXRpb25hbF9kZW5zZS5weXgKLWlu ZGV4IDE1ZTQ4MTQ5MzA2Li44MmQ1MTRjYjQxOCAxMDA2NDQKK2luZGV4IGVmOGEzYjQ4NGU3Li43 YjYwNjc4OTJkZSAxMDA2NDQKIC0tLSBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfcmF0aW9uYWxf ZGVuc2UucHl4CiArKysgYi9zcmMvc2FnZS9tYXRyaXgvbWF0cml4X3JhdGlvbmFsX2RlbnNlLnB5 eAogQEAgLTE0Nyw3ICsxNDcsNyBAQCBjZGVmIGNsYXNzIE1hdHJpeF9yYXRpb25hbF9kZW5zZShN YXRyaXhfZGVuc2UpOgpAQCAtMTI1OTksNyArMTI1OTksNyBAQCBpbmRleCAxMzM3NjQxYmIyNC4u MTBlYWVhYzRlNTYgMTAwNjQ0CiAgICAgICAgICBTZXQgdGhlIChpLGopIGVudHJ5IHRvIHZhbHVl IHdpdGhvdXQgYW55IHR5cGUgY2hlY2tpbmcgb3IKICAgICAgICAgIGJvdW5kIGNoZWNraW5nLgog ZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21hdHJpeC9tYXRyaXhfc3BhcnNlLnB5eCBiL3NyYy9zYWdl L21hdHJpeC9tYXRyaXhfc3BhcnNlLnB5eAotaW5kZXggMDY0OGY0ODhmOTguLjAwZDhlZTdmYmM4 IDEwMDY0NAoraW5kZXggYzQxZDZiMThmOWYuLmQ4YjJlNjUxMjdhIDEwMDY0NAogLS0tIGEvc3Jj L3NhZ2UvbWF0cml4L21hdHJpeF9zcGFyc2UucHl4CiArKysgYi9zcmMvc2FnZS9tYXRyaXgvbWF0 cml4X3NwYXJzZS5weXgKIEBAIC0zMDEsNyArMzAxLDcgQEAgY2RlZiBjbGFzcyBNYXRyaXhfc3Bh cnNlKG1hdHJpeC5NYXRyaXgpOgpAQCAtMTg4NTIsNyArMTg4NTIsNyBAQCBpbmRleCBjNjE0Zjk3 ZTlkZi4uMTM5MmZjNGYyZmQgMTAwNjQ0CiAgICAgICAgICBGYXN0IEN5dGhvbiBpbXBsZW1lbnRh dGlvbiBvZiA6bWV0aDpgZml4X3RvX3Bvc2AuCiAgICAgICAgICAiIiIKIGRpZmYgLS1naXQgYS9z cmMvc2FnZS9taXNjL2xhenlfaW1wb3J0LnB5eCBiL3NyYy9zYWdlL21pc2MvbGF6eV9pbXBvcnQu cHl4Ci1pbmRleCA3MGE5MTQ1MjhiOS4uNTI3ODY5M2Q2NTkgMTAwNjQ0CitpbmRleCA1YTMyOGM0 MWI1ZC4uZDI1YjI0YTEwZGMgMTAwNjQ0CiAtLS0gYS9zcmMvc2FnZS9taXNjL2xhenlfaW1wb3J0 LnB5eAogKysrIGIvc3JjL3NhZ2UvbWlzYy9sYXp5X2ltcG9ydC5weXgKIEBAIC03OSw3ICs3OSw3 IEBAIGV4Y2VwdCBJbXBvcnRFcnJvcjoKQEAgLTE5MzE4LDEwICsxOTMxOCwxMCBAQCBpbmRleCA2 NGU5YzQyODA5Yi4uOGE5MWFmZTU0YzIgMTAwNjQ0CiAgICAgIElmIGBgeGBgIGlzIGEgZmlsZSwg cmV0dXJuIGBgeGBgIGFuZCBzZXQgYGAqZmRgYCB0byBpdHMgZmlsZQogICAgICBkZXNjcmlwdG9y LiBJZiBgYHhgYCBpcyBhbiBpbnRlZ2VyLCByZXR1cm4gYGBOb25lYGAgYW5kIHNldAogZGlmZiAt LWdpdCBhL3NyYy9zYWdlL21pc2Mvc2FnZWluc3BlY3QucHkgYi9zcmMvc2FnZS9taXNjL3NhZ2Vp bnNwZWN0LnB5Ci1pbmRleCBhZmY0N2VmOTZiYi4uMzcxNzk2NWMwYjkgMTAwNjQ0CitpbmRleCAx Mzg2MDVjMzVmMC4uNjVjODE2ZDMwZTYgMTAwNjQ0CiAtLS0gYS9zcmMvc2FnZS9taXNjL3NhZ2Vp bnNwZWN0LnB5CiArKysgYi9zcmMvc2FnZS9taXNjL3NhZ2VpbnNwZWN0LnB5Ci1AQCAtMjM5NSw3 ICsyMzk1LDcgQEAgZGVmIHNhZ2VfZ2V0c291cmNlbGluZXMob2JqKToKK0BAIC0yMzE5LDcgKzIz MTksNyBAQCBkZWYgc2FnZV9nZXRzb3VyY2VsaW5lcyhvYmopOgogICAgICAgICAgICdcbicsCiAg ICAgICAgICAgJyAgICBjZGVmIEdFeCBfZ29ialxuJywKICAgICAgICAgICAnXG4nLApAQCAtMTkz NzUsMTAgKzE5Mzc1LDEwIEBAIGluZGV4IDUyYzZhNjkyODY2Li4xYjNkYjM0YTA0YyAxMDA2NDQK ICAgICAgICAgIFJldHVybiBzZWxmICogcmlnaHQuCiAgCiBkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uv bW9kdWxhci9hcml0aGdyb3VwL2ZhcmV5X3N5bWJvbC5weXggYi9zcmMvc2FnZS9tb2R1bGFyL2Fy aXRoZ3JvdXAvZmFyZXlfc3ltYm9sLnB5eAotaW5kZXggMzQ1NDZjMDgyZGEuLmRkNzNlOGQ0YWM3 IDEwMDY0NAoraW5kZXggNGNmYjRiMTIzNjMuLjYxYzI0NDZhMTZiIDEwMDY0NAogLS0tIGEvc3Jj L3NhZ2UvbW9kdWxhci9hcml0aGdyb3VwL2ZhcmV5X3N5bWJvbC5weXgKICsrKyBiL3NyYy9zYWdl L21vZHVsYXIvYXJpdGhncm91cC9mYXJleV9zeW1ib2wucHl4Ci1AQCAtMTAzOCwyNiArMTAzOCwy NiBAQCBjZGVmIHB1YmxpYyBsb25nIGNvbnZlcnRfdG9fbG9uZyhuKSBub2V4Y2VwdDoKK0BAIC0x MDQwLDI2ICsxMDQwLDI2IEBAIGNkZWYgcHVibGljIGxvbmcgY29udmVydF90b19sb25nKG4pIG5v ZXhjZXB0OgogICAgICBjZGVmIGxvbmcgbSA9IG4KICAgICAgcmV0dXJuIG0KICAKQEAgLTE5NzU4 LDcgKzE5NzU4LDcgQEAgaW5kZXggZTUyNGE0NTg0NzQuLjA4NDQyM2EyNzE0IDEwMDY0NAogKyAg ICBjZGVmIF9uZXdfYyhzZWxmLCBvYmplY3QgdikKICAKIGRpZmYgLS1naXQgYS9zcmMvc2FnZS9t b2R1bGVzL2ZyZWVfbW9kdWxlX2VsZW1lbnQucHl4IGIvc3JjL3NhZ2UvbW9kdWxlcy9mcmVlX21v ZHVsZV9lbGVtZW50LnB5eAotaW5kZXggMmY0N2M5MjRkMzguLmMwNzlkNGNhNmFlIDEwMDY0NAor aW5kZXggMzM0ZWYxZTBiYmIuLjIxNzlhNThkNWIyIDEwMDY0NAogLS0tIGEvc3JjL3NhZ2UvbW9k dWxlcy9mcmVlX21vZHVsZV9lbGVtZW50LnB5eAogKysrIGIvc3JjL3NhZ2UvbW9kdWxlcy9mcmVl X21vZHVsZV9lbGVtZW50LnB5eAogQEAgLTE3NjIsNyArMTc2Miw3IEBAIGNkZWYgY2xhc3MgRnJl ZU1vZHVsZUVsZW1lbnQoVmVjdG9yKTogICAjIGFic3RyYWN0IGJhc2UgY2xhc3MKQEAgLTE5OTQ2 LDcgKzE5OTQ2LDcgQEAgaW5kZXggOGNmMjNhZDNlNzYuLjhjOGMxYTExM2U5IDEwMDY0NAogICAg ICAgICAgUmV0dXJuIGEgY29lcmNpb24gbWFwIGZyb20gYE1gIHRvIGBgc2VsZmBgLCBvciBOb25l LgogIAogZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21vZHVsZXMvdmVjdG9yX2RvdWJsZV9kZW5zZS5w eXggYi9zcmMvc2FnZS9tb2R1bGVzL3ZlY3Rvcl9kb3VibGVfZGVuc2UucHl4Ci1pbmRleCA3NGM3 MzI3MGZmYy4uZWMxY2U0NzgxMWIgMTAwNjQ0CitpbmRleCAxZDVmNmU4YzRhYi4uYjA3ZmM5ZTcx YzIgMTAwNjQ0CiAtLS0gYS9zcmMvc2FnZS9tb2R1bGVzL3ZlY3Rvcl9kb3VibGVfZGVuc2UucHl4 CiArKysgYi9zcmMvc2FnZS9tb2R1bGVzL3ZlY3Rvcl9kb3VibGVfZGVuc2UucHl4CiBAQCAtODEs NyArODEsNyBAQCBjZGVmIGNsYXNzIFZlY3Rvcl9kb3VibGVfZGVuc2UoVmVjdG9yX251bXB5X2Rl bnNlKToKQEAgLTIwMDE3LDcgKzIwMDE3LDcgQEAgaW5kZXggMGRiNDgwOGJlNjMuLmZmMjg0M2Y0 ODFmIDEwMDY0NAogICAgICAgICAgY2RlZiBWZWN0b3JfaW50ZWdlcl9kZW5zZSB4ID0gPFZlY3Rv cl9pbnRlZ2VyX2RlbnNlPih0Ll9fbmV3X18odCkpCiAgICAgICAgICB4Ll9pbml0KHNlbGYuX2Rl Z3JlZSwgc2VsZi5fcGFyZW50KQogZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21vZHVsZXMvdmVjdG9y X2ludGVnZXJfZGVuc2UucHl4IGIvc3JjL3NhZ2UvbW9kdWxlcy92ZWN0b3JfaW50ZWdlcl9kZW5z ZS5weXgKLWluZGV4IDUyZTBiYmQ0MDY0Li40MGRlNDRlYzY4NCAxMDA2NDQKK2luZGV4IGNjMmI1 NWMzNDgwLi43N2JhZjE5NDJlZSAxMDA2NDQKIC0tLSBhL3NyYy9zYWdlL21vZHVsZXMvdmVjdG9y X2ludGVnZXJfZGVuc2UucHl4CiArKysgYi9zcmMvc2FnZS9tb2R1bGVzL3ZlY3Rvcl9pbnRlZ2Vy X2RlbnNlLnB5eAogQEAgLTEzMCw3ICsxMzAsNyBAQCBjZGVmIGNsYXNzIFZlY3Rvcl9pbnRlZ2Vy X2RlbnNlKGZyZWVfbW9kdWxlX2VsZW1lbnQuRnJlZU1vZHVsZUVsZW1lbnQpOgpAQCAtMjAyNDYs NyArMjAyNDYsNyBAQCBpbmRleCA2ZTcyNjY1MWVhMS4uNWRlMTY2ZjFiODUgMTAwNjQ0CiArICAg IGNkZWYgX25ld19jKHNlbGYpCiArICAgIGNkZWYgX2luaXQoc2VsZiwgUHlfc3NpemVfdCBkZWdy ZWUsIHBhcmVudCwgbW9kX2ludCBwKQogZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21vZHVsZXMvdmVj dG9yX21vZG5fZGVuc2UucHl4IGIvc3JjL3NhZ2UvbW9kdWxlcy92ZWN0b3JfbW9kbl9kZW5zZS5w eXgKLWluZGV4IGMyMTU1YTY4OTkwLi41Yzc0NWJiMWRmNiAxMDA2NDQKK2luZGV4IGYwNjQ2ZTZi OGU1Li40ZGI0NWFmYTA2OSAxMDA2NDQKIC0tLSBhL3NyYy9zYWdlL21vZHVsZXMvdmVjdG9yX21v ZG5fZGVuc2UucHl4CiArKysgYi9zcmMvc2FnZS9tb2R1bGVzL3ZlY3Rvcl9tb2RuX2RlbnNlLnB5 eAogQEAgLTEzNSw3ICsxMzUsNyBAQCBjaW1wb3J0IHNhZ2UubW9kdWxlcy5mcmVlX21vZHVsZV9l bGVtZW50IGFzIGZyZWVfbW9kdWxlX2VsZW1lbnQKQEAgLTIwNTU5LDcgKzIwNTU5LDcgQEAgaW5k ZXggMDZmZWM3MDJkY2YuLmViYzc4NWQ3Y2NmIDEwMDY0NAogLSAgICBjcGRlZiBkaWN0IG1vbm9t aWFsX2NvZWZmaWNpZW50cyhzZWxmLCBiaW50IGNvcHk9Kikgbm9leGNlcHQKICsgICAgY3BkZWYg ZGljdCBtb25vbWlhbF9jb2VmZmljaWVudHMoc2VsZiwgYmludCBjb3B5PSopCiBkaWZmIC0tZ2l0 IGEvc3JjL3NhZ2UvbW9kdWxlcy93aXRoX2Jhc2lzL2luZGV4ZWRfZWxlbWVudC5weXggYi9zcmMv c2FnZS9tb2R1bGVzL3dpdGhfYmFzaXMvaW5kZXhlZF9lbGVtZW50LnB5eAotaW5kZXggNWU4NzVl ZjM5MjkuLjA0Y2QxMmU5MjJjIDEwMDY0NAoraW5kZXggNDM0NThjNWZjYzkuLjhmMjkwNzUwMmFk IDEwMDY0NAogLS0tIGEvc3JjL3NhZ2UvbW9kdWxlcy93aXRoX2Jhc2lzL2luZGV4ZWRfZWxlbWVu dC5weXgKICsrKyBiL3NyYy9zYWdlL21vZHVsZXMvd2l0aF9iYXNpcy9pbmRleGVkX2VsZW1lbnQu cHl4CiBAQCAtMjI4LDcgKzIyOCw3IEBAIGNkZWYgY2xhc3MgSW5kZXhlZEZyZWVNb2R1bGVFbGVt ZW50KE1vZHVsZUVsZW1lbnQpOgpAQCAtMjA1NzEsNyArMjA1NzEsNyBAQCBpbmRleCA1ZTg3NWVm MzkyOS4uMDRjZDEyZTkyMmMgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIFJldHVybiB0 aGUgaW50ZXJuYWwgZGljdGlvbmFyeSB3aGljaCBoYXMgdGhlIGNvbWJpbmF0b3JpYWwgb2JqZWN0 cwogICAgICAgICAgaW5kZXhpbmcgdGhlIGJhc2lzIGFzIGtleXMgYW5kIHRoZWlyIGNvcnJlc3Bv bmRpbmcgY29lZmZpY2llbnRzIGFzCi1AQCAtNTQxLDcgKzU0MSw3IEBAIGNkZWYgY2xhc3MgSW5k ZXhlZEZyZWVNb2R1bGVFbGVtZW50KE1vZHVsZUVsZW1lbnQpOgorQEAgLTU2Myw3ICs1NjMsNyBA QCBjZGVmIGNsYXNzIEluZGV4ZWRGcmVlTW9kdWxlRWxlbWVudChNb2R1bGVFbGVtZW50KToKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwcl9tb25vbWlhbCA9IHNlbGYuX3BhcmVudC5f bGF0ZXhfdGVybSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNfbGF0ZXg9VHJ1ZSwg c3RyaXBfb25lPVRydWUpCiAgCkBAIC0yMDU4MCw3ICsyMDU4MCw3IEBAIGluZGV4IDVlODc1ZWYz OTI5Li4wNGNkMTJlOTIyYyAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgUmljaCBjb21w YXJpc29uIGZvciBlcXVhbCBwYXJlbnRzLgogIAotQEAgLTY1MSw3ICs2NTEsNyBAQCBjZGVmIGNs YXNzIEluZGV4ZWRGcmVlTW9kdWxlRWxlbWVudChNb2R1bGVFbGVtZW50KToKK0BAIC02NzMsNyAr NjczLDcgQEAgY2RlZiBjbGFzcyBJbmRleGVkRnJlZU1vZHVsZUVsZW1lbnQoTW9kdWxlRWxlbWVu dCk6CiAgICAgICAgICB3ID0gc29ydGVkKGVsdC5fbW9ub21pYWxfY29lZmZpY2llbnRzLml0ZW1z KCkpCiAgICAgICAgICByZXR1cm4gcmljaGNtcCh2LCB3LCBvcCkKICAKQEAgLTIwNTg5LDcgKzIw NTg5LDcgQEAgaW5kZXggNWU4NzVlZjM5MjkuLjA0Y2QxMmU5MjJjIDEwMDY0NAogICAgICAgICAg IiIiCiAgICAgICAgICBFWEFNUExFUzo6CiAgCi1AQCAtNjc0LDcgKzY3NCw3IEBAIGNkZWYgY2xh c3MgSW5kZXhlZEZyZWVNb2R1bGVFbGVtZW50KE1vZHVsZUVsZW1lbnQpOgorQEAgLTY5Niw3ICs2 OTYsNyBAQCBjZGVmIGNsYXNzIEluZGV4ZWRGcmVlTW9kdWxlRWxlbWVudChNb2R1bGVFbGVtZW50 KToKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZChzZWxmLl9tb25vbWlhbF9jb2VmZmlj aWVudHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDxJbmRleGVkRnJlZU1vZHVs ZUVsZW1lbnQ+b3RoZXIpLl9tb25vbWlhbF9jb2VmZmljaWVudHMpKQogIApAQCAtMjA1OTgsNyAr MjA1OTgsNyBAQCBpbmRleCA1ZTg3NWVmMzkyOS4uMDRjZDEyZTkyMmMgMTAwNjQ0CiAgICAgICAg ICAiIiIKICAgICAgICAgIEVYQU1QTEVTOjoKICAKLUBAIC02OTIsNyArNjkyLDcgQEAgY2RlZiBj bGFzcyBJbmRleGVkRnJlZU1vZHVsZUVsZW1lbnQoTW9kdWxlRWxlbWVudCk6CitAQCAtNzE0LDcg KzcxNCw3IEBAIGNkZWYgY2xhc3MgSW5kZXhlZEZyZWVNb2R1bGVFbGVtZW50KE1vZHVsZUVsZW1l bnQpOgogICAgICAgICAgIiIiCiAgICAgICAgICByZXR1cm4gdHlwZShzZWxmKShzZWxmLl9wYXJl bnQsIG5lZ2F0ZShzZWxmLl9tb25vbWlhbF9jb2VmZmljaWVudHMpKQogIApAQCAtMjA2MDcsNyAr MjA2MDcsNyBAQCBpbmRleCA1ZTg3NWVmMzkyOS4uMDRjZDEyZTkyMmMgMTAwNjQ0CiAgICAgICAg ICAiIiIKICAgICAgICAgIEVYQU1QTEVTOjoKICAKLUBAIC04MzEsNyArODMxLDcgQEAgY2RlZiBj bGFzcyBJbmRleGVkRnJlZU1vZHVsZUVsZW1lbnQoTW9kdWxlRWxlbWVudCk6CitAQCAtODUzLDcg Kzg1Myw3IEBAIGNkZWYgY2xhc3MgSW5kZXhlZEZyZWVNb2R1bGVFbGVtZW50KE1vZHVsZUVsZW1l bnQpOgogIAogICAgICB0b192ZWN0b3IgPSBfdmVjdG9yXwogIApAQCAtMjA2MTYsNyArMjA2MTYs NyBAQCBpbmRleCA1ZTg3NWVmMzkyOS4uMDRjZDEyZTkyMmMgMTAwNjQ0CiAgICAgICAgICAiIiIK ICAgICAgICAgIFJldHVybiB0aGUgYWN0aW9uIG9mIGBgc2NhbGFyYGAgKGFuIGVsZW1lbnQgb2Yg dGhlIGJhc2UgcmluZykgb24KICAgICAgICAgIGBgc2VsZmBgLgotQEAgLTkwNSw3ICs5MDUsNyBA QCBjZGVmIGNsYXNzIEluZGV4ZWRGcmVlTW9kdWxlRWxlbWVudChNb2R1bGVFbGVtZW50KToKK0BA IC05MjcsNyArOTI3LDcgQEAgY2RlZiBjbGFzcyBJbmRleGVkRnJlZU1vZHVsZUVsZW1lbnQoTW9k dWxlRWxlbWVudCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2FsKHNjYWxhciwgc2Vs Zi5fbW9ub21pYWxfY29lZmZpY2llbnRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBmYWN0b3Jfb25fbGVmdD1ub3Qgc2VsZl9vbl9sZWZ0KSkKICAKQEAgLTIwNjI1LDcgKzIwNjI1 LDcgQEAgaW5kZXggNWU4NzVlZjM5MjkuLjA0Y2QxMmU5MjJjIDEwMDY0NAogICAgICAgICAgIiIi CiAgICAgICAgICBGb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4KICAKLUBAIC05MTcsNyArOTE3 LDcgQEAgY2RlZiBjbGFzcyBJbmRleGVkRnJlZU1vZHVsZUVsZW1lbnQoTW9kdWxlRWxlbWVudCk6 CitAQCAtOTM5LDcgKzkzOSw3IEBAIGNkZWYgY2xhc3MgSW5kZXhlZEZyZWVNb2R1bGVFbGVtZW50 KE1vZHVsZUVsZW1lbnQpOgogICAgICAgICAgIiIiCiAgICAgICAgICByZXR1cm4gc2VsZi5fYWN0 ZWRfdXBvbl8ocmlnaHQsIFRydWUpCiAgCkBAIC0yMDY0OCw3ICsyMDY0OCw3IEBAIGluZGV4IGZl NjVhZjc5NzExLi4wOTJjZDM0M2YwNSAxMDA2NDQKICAgICAgICAgIGNkZWYgRnJlZUFiZWxpYW5N b25vaWRFbGVtZW50IHggPSA8RnJlZUFiZWxpYW5Nb25vaWRFbGVtZW50Pih0Ll9fbmV3X18odCkp CiAgICAgICAgICB4Ll9pbml0KHNlbGYuX24sIHNlbGYuX3BhcmVudCkKIGRpZmYgLS1naXQgYS9z cmMvc2FnZS9tb25vaWRzL2ZyZWVfYWJlbGlhbl9tb25vaWRfZWxlbWVudC5weXggYi9zcmMvc2Fn ZS9tb25vaWRzL2ZyZWVfYWJlbGlhbl9tb25vaWRfZWxlbWVudC5weXgKLWluZGV4IDY2YmQzYTE1 ZWQ1Li42NWRmOGVmZTYxMyAxMDA2NDQKK2luZGV4IGE5ZWVjNWY5MDY1Li5jODFjMWZhNTU3NSAx MDA2NDQKIC0tLSBhL3NyYy9zYWdlL21vbm9pZHMvZnJlZV9hYmVsaWFuX21vbm9pZF9lbGVtZW50 LnB5eAogKysrIGIvc3JjL3NhZ2UvbW9ub2lkcy9mcmVlX2FiZWxpYW5fbW9ub2lkX2VsZW1lbnQu cHl4CiBAQCAtMjYzLDcgKzI2Myw3IEBAIGNkZWYgY2xhc3MgRnJlZUFiZWxpYW5Nb25vaWRFbGVt ZW50KE1vbm9pZEVsZW1lbnQpOgpAQCAtMjM4NTQsNyArMjM4NTQsNyBAQCBpbmRleCAxMmNkN2I0 YWQxZS4uYWVhZDk5NjcwYWIgMTAwNjQ0CiAgICAgICAgICBSZXR1cm4gYSBwYWlyIGBgKGEsYilg YCBvZiBwYXRocyBzLnQuIGBgc2VsZiA9IGEqc3VicGF0aCpiYGAsCiAgICAgICAgICBvciBgYChO b25lLCBOb25lKWBgIGlmIGBgc3VicGF0aGBgIGlzIG5vdCBhIHN1YnBhdGggb2YgdGhpcyBwYXRo LgogZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL2NvbXBsZXhfYXJiLnB4ZCBiL3NyYy9zYWdl L3JpbmdzL2NvbXBsZXhfYXJiLnB4ZAotaW5kZXggZDk4NTc0NWMxZjUuLjA2ZGQ4ZWUwOGVhIDEw MDY0NAoraW5kZXggYTA4MzZlODg3NmMuLjRjZDAxNmQwNzk4IDEwMDY0NAogLS0tIGEvc3JjL3Nh Z2UvcmluZ3MvY29tcGxleF9hcmIucHhkCiArKysgYi9zcmMvc2FnZS9yaW5ncy9jb21wbGV4X2Fy Yi5weGQKIEBAIC0xNCwxNSArMTQsMTUgQEAgY2RlZiBpbnQgYWNiX3RvX0NvbXBsZXhJbnRlcnZh bEZpZWxkRWxlbWVudCgKQEAgLTIzODgyLDcgKzIzODgyLDcgQEAgaW5kZXggZDk4NTc0NWMxZjUu LjA2ZGQ4ZWUwOGVhIDEwMDY0NAogICAgICAgICAgcmVzLl9wYXJlbnQgPSBzZWxmLl9wYXJlbnQK ICAgICAgICAgIHJldHVybiByZXMKIGRpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9jb21wbGV4 X2FyYi5weXggYi9zcmMvc2FnZS9yaW5ncy9jb21wbGV4X2FyYi5weXgKLWluZGV4IDQ2YzAxZGE0 ZWI2Li4zZWQ3ZGU2NDA5YSAxMDA2NDQKK2luZGV4IDIwOTRlYzU4MWVjLi4wYzFiNmU1ZDY4MyAx MDA2NDQKIC0tLSBhL3NyYy9zYWdlL3JpbmdzL2NvbXBsZXhfYXJiLnB5eAogKysrIGIvc3JjL3Nh Z2UvcmluZ3MvY29tcGxleF9hcmIucHl4CiBAQCAtMTI5Myw3ICsxMjkzLDcgQEAgY2RlZiBiaW50 IGFyYl9ndF9uZWdfb25lKGFyYl90IGIpIG5vZXhjZXB0OgpAQCAtMjM4OTQsNyArMjM4OTQsNyBA QCBpbmRleCA0NmMwMWRhNGViNi4uM2VkN2RlNjQwOWEgMTAwNjQ0CiAgICAgIHJldHVybiBiYWxs Ll9wYXJlbnQuX2Jhc2UKICAKICBjZGVmIGNsYXNzIENvbXBsZXhCYWxsKFJpbmdFbGVtZW50KToK LUBAIC0xNTQ2LDcgKzE1NDYsNyBAQCBjZGVmIGNsYXNzIENvbXBsZXhCYWxsKFJpbmdFbGVtZW50 KToKK0BAIC0xNTQ1LDcgKzE1NDUsNyBAQCBjZGVmIGNsYXNzIENvbXBsZXhCYWxsKFJpbmdFbGVt ZW50KToKICAKICAgICAgIyBDb252ZXJzaW9ucwogIApAQCAtMjM5MDMsNyArMjM5MDMsNyBAQCBp bmRleCA0NmMwMWRhNGViNi4uM2VkN2RlNjQwOWEgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAg ICAgIFJldHVybiA6Y2xhc3M6YENvbXBsZXhJbnRlcnZhbEZpZWxkRWxlbWVudGAgb2YgdGhlIHNh bWUgdmFsdWUuCiAgCi1AQCAtMTgwNSw3ICsxODA1LDcgQEAgY2RlZiBjbGFzcyBDb21wbGV4QmFs bChSaW5nRWxlbWVudCk6CitAQCAtMTgwNCw3ICsxODA0LDcgQEAgY2RlZiBjbGFzcyBDb21wbGV4 QmFsbChSaW5nRWxlbWVudCk6CiAgCiAgICAgICMgUmVhbCBhbmQgaW1hZ2luYXJ5IHBhcnQsIG1p ZHBvaW50LCByYWRpdXMKICAKQEAgLTIzOTEyLDcgKzIzOTEyLDcgQEAgaW5kZXggNDZjMDFkYTRl YjYuLjNlZDdkZTY0MDlhIDEwMDY0NAogICAgICAgICAgIiIiCiAgICAgICAgICBSZXR1cm4gdGhl IHJlYWwgcGFydCBvZiB0aGlzIGJhbGwuCiAgCi1AQCAtMTgyNiw3ICsxODI2LDcgQEAgY2RlZiBj bGFzcyBDb21wbGV4QmFsbChSaW5nRWxlbWVudCk6CitAQCAtMTgyNSw3ICsxODI1LDcgQEAgY2Rl ZiBjbGFzcyBDb21wbGV4QmFsbChSaW5nRWxlbWVudCk6CiAgICAgICAgICBhcmJfc2V0KHIudmFs dWUsIGFjYl9yZWFscmVmKHNlbGYudmFsdWUpKQogICAgICAgICAgcmV0dXJuIHIKICAKQEAgLTIz OTIxLDcgKzIzOTIxLDcgQEAgaW5kZXggNDZjMDFkYTRlYjYuLjNlZDdkZTY0MDlhIDEwMDY0NAog ICAgICAgICAgIiIiCiAgICAgICAgICBSZXR1cm4gdGhlIGltYWdpbmFyeSBwYXJ0IG9mIHRoaXMg YmFsbC4KICAKLUBAIC0yMzMxLDcgKzIzMzEsNyBAQCBjZGVmIGNsYXNzIENvbXBsZXhCYWxsKFJp bmdFbGVtZW50KToKK0BAIC0yMzMwLDcgKzIzMzAsNyBAQCBjZGVmIGNsYXNzIENvbXBsZXhCYWxs KFJpbmdFbGVtZW50KToKICAgICAgICAgICIiIgogICAgICAgICAgcmV0dXJuIGFjYl9pc19yZWFs KHNlbGYudmFsdWUpCiAgCkBAIC0yMzkzMCw3ICsyMzkzMCw3IEBAIGluZGV4IDQ2YzAxZGE0ZWI2 Li4zZWQ3ZGU2NDA5YSAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgQ29tcGFyZSBgYGxl ZnRgYCBhbmQgYGByaWdodGBgLgogIAotQEAgLTI2MTgsNyArMjYxOCw3IEBAIGNkZWYgY2xhc3Mg Q29tcGxleEJhbGwoUmluZ0VsZW1lbnQpOgorQEAgLTI2MTcsNyArMjYxNyw3IEBAIGNkZWYgY2xh c3MgQ29tcGxleEJhbGwoUmluZ0VsZW1lbnQpOgogICAgICAgICAgYWNiX2NvbmoocmVzLnZhbHVl LCBzZWxmLnZhbHVlKQogICAgICAgICAgcmV0dXJuIHJlcwogIApAQCAtMjM5MzksNyArMjM5Mzks NyBAQCBpbmRleCA0NmMwMWRhNGViNi4uM2VkN2RlNjQwOWEgMTAwNjQ0CiAgICAgICAgICAiIiIK ICAgICAgICAgIFJldHVybiB0aGUgc3VtIG9mIHR3byBiYWxscywgcm91bmRlZCB0byB0aGUgYW1i aWVudCBmaWVsZCdzIHByZWNpc2lvbi4KICAKLUBAIC0yNjM2LDcgKzI2MzYsNyBAQCBjZGVmIGNs YXNzIENvbXBsZXhCYWxsKFJpbmdFbGVtZW50KToKK0BAIC0yNjM1LDcgKzI2MzUsNyBAQCBjZGVm IGNsYXNzIENvbXBsZXhCYWxsKFJpbmdFbGVtZW50KToKICAgICAgICAgIGlmIF9kb19zaWcocHJl YyhzZWxmKSk6IHNpZ19vZmYoKQogICAgICAgICAgcmV0dXJuIHJlcwogIApAQCAtMjM5NDgsNyAr MjM5NDgsNyBAQCBpbmRleCA0NmMwMWRhNGViNi4uM2VkN2RlNjQwOWEgMTAwNjQ0CiAgICAgICAg ICAiIiIKICAgICAgICAgIFJldHVybiB0aGUgZGlmZmVyZW5jZSBvZiB0d28gYmFsbHMsIHJvdW5k ZWQgdG8gdGhlIGFtYmllbnQgZmllbGQncwogICAgICAgICAgcHJlY2lzaW9uLgotQEAgLTI2Nzcs NyArMjY3Nyw3IEBAIGNkZWYgY2xhc3MgQ29tcGxleEJhbGwoUmluZ0VsZW1lbnQpOgorQEAgLTI2 NzYsNyArMjY3Niw3IEBAIGNkZWYgY2xhc3MgQ29tcGxleEJhbGwoUmluZ0VsZW1lbnQpOgogICAg ICAgICAgaWYgX2RvX3NpZyhwcmVjKHNlbGYpKTogc2lnX29mZigpCiAgICAgICAgICByZXR1cm4g cmVzCiAgCkBAIC0yMzk1Nyw3ICsyMzk1Nyw3IEBAIGluZGV4IDQ2YzAxZGE0ZWI2Li4zZWQ3ZGU2 NDA5YSAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgUmV0dXJuIHRoZSBwcm9kdWN0IG9m IHR3byBiYWxscywgcm91bmRlZCB0byB0aGUgYW1iaWVudCBmaWVsZCdzCiAgICAgICAgICBwcmVj aXNpb24uCi1AQCAtMjc3Nyw3ICsyNzc3LDcgQEAgY2RlZiBjbGFzcyBDb21wbGV4QmFsbChSaW5n RWxlbWVudCk6CitAQCAtMjc3Niw3ICsyNzc2LDcgQEAgY2RlZiBjbGFzcyBDb21wbGV4QmFsbChS aW5nRWxlbWVudCk6CiAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJ1bnN1cHBvcnRlZCBv cGVyYW5kIHR5cGUocykgZm9yID4+OiAne30nIGFuZCAne30nIgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAuZm9ybWF0KHR5cGUodmFsKS5fX25hbWVfXywgdHlwZShzaGlmdCkuX19uYW1l X18pKQogIApAQCAtMjM5NjYsNyArMjM5NjYsNyBAQCBpbmRleCA0NmMwMWRhNGViNi4uM2VkN2Rl NjQwOWEgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIFJldHVybiB0aGUgcXVvdGllbnQg b2YgdHdvIGJhbGxzLCByb3VuZGVkIHRvIHRoZSBhbWJpZW50IGZpZWxkJ3MKICAgICAgICAgIHBy ZWNpc2lvbi4KLUBAIC0yODQ0LDcgKzI4NDQsNyBAQCBjZGVmIGNsYXNzIENvbXBsZXhCYWxsKFJp bmdFbGVtZW50KToKK0BAIC0yODQzLDcgKzI4NDMsNyBAQCBjZGVmIGNsYXNzIENvbXBsZXhCYWxs KFJpbmdFbGVtZW50KToKICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgcmV0dXJuIHNhZ2Uu c3RydWN0dXJlLmVsZW1lbnQuYmluX29wKGJhc2UsIGV4cG8sIG9wZXJhdG9yLnBvdykKICAKQEAg LTIzOTg2LDcgKzIzOTg2LDcgQEAgaW5kZXggZDYxNDQ5NzRmOWEuLjIwNTMwMDVlMzQwIDEwMDY0 NAogLSAgICBjcGRlZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KSBub2V4Y2VwdAogKyAgICBjcGRl ZiBFbGVtZW50IF9jYWxsXyhzZWxmLCB4KQogZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL2Nv bXBsZXhfY29udmVyc2lvbi5weXggYi9zcmMvc2FnZS9yaW5ncy9jb21wbGV4X2NvbnZlcnNpb24u cHl4Ci1pbmRleCAzOWM4YjYzZWI1NS4uZDY5MmUyODAxZDcgMTAwNjQ0CitpbmRleCAwMjdjNDQy NmVhMS4uZjYwMWI0ZDU0MjAgMTAwNjQ0CiAtLS0gYS9zcmMvc2FnZS9yaW5ncy9jb21wbGV4X2Nv bnZlcnNpb24ucHl4CiArKysgYi9zcmMvc2FnZS9yaW5ncy9jb21wbGV4X2NvbnZlcnNpb24ucHl4 CiBAQCAtNSw3ICs1LDcgQEAgZnJvbSBzYWdlLmxpYnMuZ3NsLmNvbXBsZXggY2ltcG9ydCBHU0xf U0VUX0NPTVBMRVgKQEAgLTI0NDEyLDEwICsyNDQxMiwxMCBAQCBpbmRleCA5NTk3MmM1MmJiNS4u Mzg1ZmVlYzhjMzcgMTAwNjQ0CiAtICAgIGNkZWYgQ29tcGxleE51bWJlciBfbmV3KHNlbGYpIG5v ZXhjZXB0CiArICAgIGNkZWYgQ29tcGxleE51bWJlciBfbmV3KHNlbGYpCiBkaWZmIC0tZ2l0IGEv c3JjL3NhZ2UvcmluZ3MvY29tcGxleF9tcGZyLnB5eCBiL3NyYy9zYWdlL3JpbmdzL2NvbXBsZXhf bXBmci5weXgKLWluZGV4IDg3MmNhOGM2MGEzLi4zODc2YWQ2MjcyZCAxMDA2NDQKK2luZGV4IDE5 M2M1OGRiNzA4Li40ODQ1YmVmMzliMyAxMDA2NDQKIC0tLSBhL3NyYy9zYWdlL3JpbmdzL2NvbXBs ZXhfbXBmci5weXgKICsrKyBiL3NyYy9zYWdlL3JpbmdzL2NvbXBsZXhfbXBmci5weXgKLUBAIC04 NzMsNyArODczLDcgQEAgY2RlZiBjbGFzcyBDb21wbGV4TnVtYmVyKHNhZ2Uuc3RydWN0dXJlLmVs ZW1lbnQuRmllbGRFbGVtZW50KToKK0BAIC04NzUsNyArODc1LDcgQEAgY2RlZiBjbGFzcyBDb21w bGV4TnVtYmVyKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuRmllbGRFbGVtZW50KToKICAgICAgICAg IFRydWUKICAgICAgIiIiCiAgCkBAIC0yNDQyNCw3ICsyNDQyNCw3IEBAIGluZGV4IDg3MmNhOGM2 MGEzLi4zODc2YWQ2MjcyZCAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgUXVpY2tseSBj cmVhdGVzIGEgbmV3IGluaXRpYWxpemVkIGNvbXBsZXggbnVtYmVyIHdpdGggdGhlIHNhbWUKICAg ICAgICAgIHBhcmVudCBhcyBgYHNlbGZgYC4KLUBAIC0xNDY2LDcgKzE0NjYsNyBAQCBjZGVmIGNs YXNzIENvbXBsZXhOdW1iZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5GaWVsZEVsZW1lbnQpOgor QEAgLTE0NjgsNyArMTQ2OCw3IEBAIGNkZWYgY2xhc3MgQ29tcGxleE51bWJlcihzYWdlLnN0cnVj dHVyZS5lbGVtZW50LkZpZWxkRWxlbWVudCk6CiAgICAgICAgICBpbXBvcnQgc3ltcHkKICAgICAg ICAgIHJldHVybiBzZWxmLnJlYWwoKS5fc3ltcHlfKCkgKyBzZWxmLmltYWcoKS5fc3ltcHlfKCkg KiBzeW1weS5JCiAgCkBAIC0yNDQzMyw3ICsyNDQzMyw3IEBAIGluZGV4IDg3MmNhOGM2MGEzLi4z ODc2YWQ2MjcyZCAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgQWRkIGBgc2VsZmBgIHRv IGBgcmlnaHRgYC4KICAKLUBAIC0xNDgxLDcgKzE0ODEsNyBAQCBjZGVmIGNsYXNzIENvbXBsZXhO dW1iZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5GaWVsZEVsZW1lbnQpOgorQEAgLTE0ODMsNyAr MTQ4Myw3IEBAIGNkZWYgY2xhc3MgQ29tcGxleE51bWJlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50 LkZpZWxkRWxlbWVudCk6CiAgICAgICAgICBtcGZyX2FkZCh4Ll9faW0sIHNlbGYuX19pbSwgKDxD b21wbGV4TnVtYmVyPnJpZ2h0KS5fX2ltLCBybmQpCiAgICAgICAgICByZXR1cm4geAogIApAQCAt MjQ0NDIsNyArMjQ0NDIsNyBAQCBpbmRleCA4NzJjYThjNjBhMy4uMzg3NmFkNjI3MmQgMTAwNjQ0 CiAgICAgICAgICAiIiIKICAgICAgICAgIFN1YnRyYWN0IGBgcmlnaHRgYCBmcm9tIGBgc2VsZmBg LgogIAotQEAgLTE0OTYsNyArMTQ5Niw3IEBAIGNkZWYgY2xhc3MgQ29tcGxleE51bWJlcihzYWdl LnN0cnVjdHVyZS5lbGVtZW50LkZpZWxkRWxlbWVudCk6CitAQCAtMTQ5OCw3ICsxNDk4LDcgQEAg Y2RlZiBjbGFzcyBDb21wbGV4TnVtYmVyKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuRmllbGRFbGVt ZW50KToKICAgICAgICAgIG1wZnJfc3ViKHguX19pbSwgc2VsZi5fX2ltLCAoPENvbXBsZXhOdW1i ZXI+cmlnaHQpLl9faW0sIHJuZCkKICAgICAgICAgIHJldHVybiB4CiAgCkBAIC0yNDQ1MSw3ICsy NDQ1MSw3IEBAIGluZGV4IDg3MmNhOGM2MGEzLi4zODc2YWQ2MjcyZCAxMDA2NDQKICAgICAgICAg ICIiIgogICAgICAgICAgTXVsdGlwbHkgYGBzZWxmYGAgYnkgYGByaWdodGBgLgogIAotQEAgLTE1 NjUsNyArMTU2NSw3IEBAIGNkZWYgY2xhc3MgQ29tcGxleE51bWJlcihzYWdlLnN0cnVjdHVyZS5l bGVtZW50LkZpZWxkRWxlbWVudCk6CitAQCAtMTU2Nyw3ICsxNTY3LDcgQEAgY2RlZiBjbGFzcyBD b21wbGV4TnVtYmVyKHNhZ2Uuc3RydWN0dXJlLmVsZW1lbnQuRmllbGRFbGVtZW50KToKICAgICAg ICAgICIiIgogICAgICAgICAgcmV0dXJuIHNlbGYubm9ybV9jKCkKICAKQEAgLTI0NDYwLDcgKzI0 NDYwLDcgQEAgaW5kZXggODcyY2E4YzYwYTMuLjM4NzZhZDYyNzJkIDEwMDY0NAogICAgICAgICAg Y2RlZiBSZWFsTnVtYmVyIHgKICAgICAgICAgIHggPSBSZWFsTnVtYmVyKHNlbGYuX3BhcmVudC5f cmVhbF9maWVsZCgpLCBOb25lKQogIAotQEAgLTE1ODIsNyArMTU4Miw3IEBAIGNkZWYgY2xhc3Mg Q29tcGxleE51bWJlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50LkZpZWxkRWxlbWVudCk6CitAQCAt MTU4NCw3ICsxNTg0LDcgQEAgY2RlZiBjbGFzcyBDb21wbGV4TnVtYmVyKHNhZ2Uuc3RydWN0dXJl LmVsZW1lbnQuRmllbGRFbGVtZW50KToKICAgICAgICAgIG1wZnJfY2xlYXIodDEpCiAgICAgICAg ICByZXR1cm4geAogIApAQCAtMjQ0NjksNyArMjQ0NjksNyBAQCBpbmRleCA4NzJjYThjNjBhMy4u Mzg3NmFkNjI3MmQgMTAwNjQ0CiAgICAgICAgICBjZGVmIFJlYWxOdW1iZXIgeAogICAgICAgICAg eCA9IFJlYWxOdW1iZXIoc2VsZi5fcGFyZW50Ll9yZWFsX2ZpZWxkKCksIE5vbmUpCiAgCi1AQCAt MTYwMCw3ICsxNjAwLDcgQEAgY2RlZiBjbGFzcyBDb21wbGV4TnVtYmVyKHNhZ2Uuc3RydWN0dXJl LmVsZW1lbnQuRmllbGRFbGVtZW50KToKK0BAIC0xNjAyLDcgKzE2MDIsNyBAQCBjZGVmIGNsYXNz IENvbXBsZXhOdW1iZXIoc2FnZS5zdHJ1Y3R1cmUuZWxlbWVudC5GaWVsZEVsZW1lbnQpOgogICAg ICAgICAgbXBmcl9jbGVhcih0MSkKICAgICAgICAgIHJldHVybiB4CiAgCkBAIC0yNDQ3OCw3ICsy NDQ3OCw3IEBAIGluZGV4IDg3MmNhOGM2MGEzLi4zODc2YWQ2MjcyZCAxMDA2NDQKICAgICAgICAg ICIiIgogICAgICAgICAgRGl2aWRlIGBgc2VsZmBgIGJ5IGBgcmlnaHRgYC4KICAKLUBAIC0xOTU3 LDcgKzE5NTcsNyBAQCBjZGVmIGNsYXNzIENvbXBsZXhOdW1iZXIoc2FnZS5zdHJ1Y3R1cmUuZWxl bWVudC5GaWVsZEVsZW1lbnQpOgorQEAgLTE5NTksNyArMTk1OSw3IEBAIGNkZWYgY2xhc3MgQ29t cGxleE51bWJlcihzYWdlLnN0cnVjdHVyZS5lbGVtZW50LkZpZWxkRWxlbWVudCk6CiAgICAgICAg ICByZXR1cm4gY29tcGxleChtcGZyX2dldF9kKHNlbGYuX19yZSwgcm5kKSwKICAgICAgICAgICAg ICAgICAgICAgICAgIG1wZnJfZ2V0X2Qoc2VsZi5fX2ltLCBybmQpKQogIApAQCAtMjQ0ODcsNyAr MjQ0ODcsNyBAQCBpbmRleCA4NzJjYThjNjBhMy4uMzg3NmFkNjI3MmQgMTAwNjQ0CiAgICAgICAg ICAiIiIKICAgICAgICAgIENvbXBhcmUgYGBsZWZ0YGAgYW5kIGBgcmlnaHRgYC4KICAKLUBAIC0z MzQ2LDcgKzMzNDYsNyBAQCBjZGVmIGNsYXNzIFJSdG9DQyhNYXApOgorQEAgLTMzNDgsNyArMzM0 OCw3IEBAIGNkZWYgY2xhc3MgUlJ0b0NDKE1hcCk6CiAgICAgICAgICBzZWxmLl96ZXJvID0gQ29t cGxleE51bWJlcihDQywgMCkKICAgICAgICAgIHNlbGYuX3JlcHJfdHlwZV9zdHIgPSAiTmF0dXJh bCIKICAKQEAgLTI0NDk2LDcgKzI0NDk2LDcgQEAgaW5kZXggODcyY2E4YzYwYTMuLjM4NzZhZDYy NzJkIDEwMDY0NAogICAgICAgICAgIiIiCiAgICAgICAgICBBIGhlbHBlciBmb3IgcGlja2xpbmcg YW5kIGNvcHlpbmcuCiAgCi1AQCAtMzM3Miw3ICszMzcyLDcgQEAgY2RlZiBjbGFzcyBSUnRvQ0Mo TWFwKToKK0BAIC0zMzc0LDcgKzMzNzQsNyBAQCBjZGVmIGNsYXNzIFJSdG9DQyhNYXApOgogICAg ICAgICAgc2xvdHNbJ196ZXJvJ10gPSBzZWxmLl96ZXJvCiAgICAgICAgICByZXR1cm4gc2xvdHMK ICAKQEAgLTI0NTA1LDcgKzI0NTA1LDcgQEAgaW5kZXggODcyY2E4YzYwYTMuLjM4NzZhZDYyNzJk IDEwMDY0NAogICAgICAgICAgIiIiCiAgICAgICAgICBBIGhlbHBlciBmb3IgdW5waWNrbGluZyBh bmQgY29weWluZy4KICAKLUBAIC0zMzkxLDcgKzMzOTEsNyBAQCBjZGVmIGNsYXNzIFJSdG9DQyhN YXApOgorQEAgLTMzOTMsNyArMzM5Myw3IEBAIGNkZWYgY2xhc3MgUlJ0b0NDKE1hcCk6CiAgICAg ICAgICBNYXAuX3VwZGF0ZV9zbG90cyhzZWxmLCBfc2xvdHMpCiAgICAgICAgICBzZWxmLl96ZXJv ID0gX3Nsb3RzWydfemVybyddCiAgCkBAIC0yNDkyMiw3ICsyNDkyMiw3IEBAIGluZGV4IGI3ODZh ZGEwMGRlLi45ODliMGUyMGI5ZSAxMDA2NDQKICAgICAgICAgIERpdmlzaW9uLgogIAogZGlmZiAt LWdpdCBhL3NyYy9zYWdlL3JpbmdzL2Zpbml0ZV9yaW5ncy9maW5pdGVfZmllbGRfYmFzZS5weXgg Yi9zcmMvc2FnZS9yaW5ncy9maW5pdGVfcmluZ3MvZmluaXRlX2ZpZWxkX2Jhc2UucHl4Ci1pbmRl eCA3NDE5YzE1OGQ4Yy4uNDg1MjM4ZDNiNDEgMTAwNjQ0CitpbmRleCBmZWNiNzdjYzM3Ni4uMmM0 OWYzYmM5YWUgMTAwNjQ0CiAtLS0gYS9zcmMvc2FnZS9yaW5ncy9maW5pdGVfcmluZ3MvZmluaXRl X2ZpZWxkX2Jhc2UucHl4CiArKysgYi9zcmMvc2FnZS9yaW5ncy9maW5pdGVfcmluZ3MvZmluaXRl X2ZpZWxkX2Jhc2UucHl4CiBAQCAtMTMxOCw3ICsxMzE4LDcgQEAgY2RlZiBjbGFzcyBGaW5pdGVG aWVsZChGaWVsZCk6CkBAIC0yNTYwMiwxMCArMjU2MDIsMTAgQEAgaW5kZXggYTM4NWEzZDc3NDIu LjdkNWQ5NjBhMGNhIDEwMDY0NAogIAogIGNkZWYgY2xhc3MgRnBUX2l0ZXI6CiBkaWZmIC0tZ2l0 IGEvc3JjL3NhZ2UvcmluZ3MvZnJhY3Rpb25fZmllbGRfRnBULnB5eCBiL3NyYy9zYWdlL3Jpbmdz L2ZyYWN0aW9uX2ZpZWxkX0ZwVC5weXgKLWluZGV4IDNlYTUzZTU4OWI4Li5hMGZkN2RiYzhjZSAx MDA2NDQKK2luZGV4IDc1Njc1MDYwYzY5Li4xNDg1N2M2NjczMiAxMDA2NDQKIC0tLSBhL3NyYy9z YWdlL3JpbmdzL2ZyYWN0aW9uX2ZpZWxkX0ZwVC5weXgKICsrKyBiL3NyYy9zYWdlL3JpbmdzL2Zy YWN0aW9uX2ZpZWxkX0ZwVC5weXgKLUBAIC0xNjAsNyArMTYwLDcgQEAgY2RlZiBjbGFzcyBGcFRF bGVtZW50KEZpZWxkRWxlbWVudCk6CitAQCAtMTcxLDcgKzE3MSw3IEBAIGNkZWYgY2xhc3MgRnBU RWxlbWVudChGaWVsZEVsZW1lbnQpOgogICAgICAgICAgcmV0dXJuICh1bnBpY2tsZV9GcFRfZWxl bWVudCwKICAgICAgICAgICAgICAgICAgKHNlbGYuX3BhcmVudCwgc2VsZi5udW1lcigpLCBzZWxm LmRlbm9tKCkpKQogIApAQCAtMjU2MTQsNyArMjU2MTQsNyBAQCBpbmRleCAzZWE1M2U1ODliOC4u YTBmZDdkYmM4Y2UgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIENyZWF0ZXMgYSBuZXcg RnBURWxlbWVudCBpbiB0aGUgc2FtZSBmaWVsZCwgbGVhdmluZyB0aGUgdmFsdWUgdG8gYmUgaW5p dGlhbGl6ZWQuCiAgICAgICAgICAiIiIKLUBAIC0xNzIsNyArMTcyLDcgQEAgY2RlZiBjbGFzcyBG cFRFbGVtZW50KEZpZWxkRWxlbWVudCk6CitAQCAtMTgzLDcgKzE4Myw3IEBAIGNkZWYgY2xhc3Mg RnBURWxlbWVudChGaWVsZEVsZW1lbnQpOgogICAgICAgICAgeC5pbml0aWFsaXplZCA9IFRydWUK ICAgICAgICAgIHJldHVybiB4CiAgCkBAIC0yNTYyMyw3ICsyNTYyMyw3IEBAIGluZGV4IDNlYTUz ZTU4OWI4Li5hMGZkN2RiYzhjZSAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgQ3JlYXRl cyBhIG5ldyBGcFRFbGVtZW50IGluIHRoZSBzYW1lIGZpZWxkLCB3aXRoIHRoZSBzYW1lIHZhbHVl IGFzIHNlbGYuCiAgICAgICAgICAiIiIKLUBAIC0xOTksNyArMTk5LDcgQEAgY2RlZiBjbGFzcyBG cFRFbGVtZW50KEZpZWxkRWxlbWVudCk6CitAQCAtMjEwLDcgKzIxMCw3IEBAIGNkZWYgY2xhc3Mg RnBURWxlbWVudChGaWVsZEVsZW1lbnQpOgogICAgICAgICAgIiIiCiAgICAgICAgICByZXR1cm4g c2VsZi5udW1lcmF0b3IoKQogIApAQCAtMjU2MzIsNyArMjU2MzIsNyBAQCBpbmRleCAzZWE1M2U1 ODliOC4uYTBmZDdkYmM4Y2UgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIFJldHVybiB0 aGUgbnVtZXJhdG9yIG9mIHRoaXMgZWxlbWVudCwgYXMgYW4gZWxlbWVudCBvZiB0aGUgcG9seW5v bWlhbCByaW5nLgogIAotQEAgLTIzMCw3ICsyMzAsNyBAQCBjZGVmIGNsYXNzIEZwVEVsZW1lbnQo RmllbGRFbGVtZW50KToKK0BAIC0yNDEsNyArMjQxLDcgQEAgY2RlZiBjbGFzcyBGcFRFbGVtZW50 KEZpZWxkRWxlbWVudCk6CiAgICAgICAgICAiIiIKICAgICAgICAgIHJldHVybiBzZWxmLmRlbm9t aW5hdG9yKCkKICAKQEAgLTI1NjQxLDcgKzI1NjQxLDcgQEAgaW5kZXggM2VhNTNlNTg5YjguLmEw ZmQ3ZGJjOGNlIDEwMDY0NAogICAgICAgICAgIiIiCiAgICAgICAgICBSZXR1cm4gdGhlIGRlbm9t aW5hdG9yIG9mIHRoaXMgZWxlbWVudCwgYXMgYW4gZWxlbWVudCBvZiB0aGUgcG9seW5vbWlhbCBy aW5nLgogIAotQEAgLTM1OCw3ICszNTgsNyBAQCBjZGVmIGNsYXNzIEZwVEVsZW1lbnQoRmllbGRF bGVtZW50KToKK0BAIC0zNjksNyArMzY5LDcgQEAgY2RlZiBjbGFzcyBGcFRFbGVtZW50KEZpZWxk RWxlbWVudCk6CiAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgIHJldHVybiAiXFxmcmFjeyVz fXslc30iICUgKHNlbGYubnVtZXIoKS5fbGF0ZXhfKCksIHNlbGYuZGVub20oKS5fbGF0ZXhfKCkp CiAgCkBAIC0yNTY1MCw3ICsyNTY1MCw3IEBAIGluZGV4IDNlYTUzZTU4OWI4Li5hMGZkN2RiYzhj ZSAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgQ29tcGFyZSB0aGlzIHdpdGggYW5vdGhl ciBlbGVtZW50LgogIAotQEAgLTQ2Myw3ICs0NjMsNyBAQCBjZGVmIGNsYXNzIEZwVEVsZW1lbnQo RmllbGRFbGVtZW50KToKK0BAIC00NzQsNyArNDc0LDcgQEAgY2RlZiBjbGFzcyBGcFRFbGVtZW50 KEZpZWxkRWxlbWVudCk6CiAgICAgICAgICBubW9kX3BvbHlfc3dhcCh4Ll9udW1lciwgeC5fZGVu b20pCiAgICAgICAgICByZXR1cm4geAogIApAQCAtMjU2NTksNyArMjU2NTksNyBAQCBpbmRleCAz ZWE1M2U1ODliOC4uYTBmZDdkYmM4Y2UgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIFJl dHVybiB0aGUgc3VtIG9mIHRoaXMgZnJhY3Rpb24gZmllbGQgZWxlbWVudCBhbmQgYW5vdGhlci4K ICAKLUBAIC00OTEsNyArNDkxLDcgQEAgY2RlZiBjbGFzcyBGcFRFbGVtZW50KEZpZWxkRWxlbWVu dCk6CitAQCAtNTAyLDcgKzUwMiw3IEBAIGNkZWYgY2xhc3MgRnBURWxlbWVudChGaWVsZEVsZW1l bnQpOgogICAgICAgICAgbm9ybWFsaXplKHguX251bWVyLCB4Ll9kZW5vbSwgc2VsZi5wKQogICAg ICAgICAgcmV0dXJuIHgKICAKQEAgLTI1NjY4LDcgKzI1NjY4LDcgQEAgaW5kZXggM2VhNTNlNTg5 YjguLmEwZmQ3ZGJjOGNlIDEwMDY0NAogICAgICAgICAgIiIiCiAgICAgICAgICBSZXR1cm4gdGhl IGRpZmZlcmVuY2Ugb2YgdGhpcyBmcmFjdGlvbiBmaWVsZCBlbGVtZW50IGFuZCBhbm90aGVyLgog IAotQEAgLTUxMyw3ICs1MTMsNyBAQCBjZGVmIGNsYXNzIEZwVEVsZW1lbnQoRmllbGRFbGVtZW50 KToKK0BAIC01MjQsNyArNTI0LDcgQEAgY2RlZiBjbGFzcyBGcFRFbGVtZW50KEZpZWxkRWxlbWVu dCk6CiAgICAgICAgICBub3JtYWxpemUoeC5fbnVtZXIsIHguX2Rlbm9tLCBzZWxmLnApCiAgICAg ICAgICByZXR1cm4geAogIApAQCAtMjU2NzcsNyArMjU2NzcsNyBAQCBpbmRleCAzZWE1M2U1ODli OC4uYTBmZDdkYmM4Y2UgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIFJldHVybiB0aGUg cHJvZHVjdCBvZiB0aGlzIGZyYWN0aW9uIGZpZWxkIGVsZW1lbnQgYW5kIGFub3RoZXIuCiAgCi1A QCAtNTMzLDcgKzUzMyw3IEBAIGNkZWYgY2xhc3MgRnBURWxlbWVudChGaWVsZEVsZW1lbnQpOgor QEAgLTU0NCw3ICs1NDQsNyBAQCBjZGVmIGNsYXNzIEZwVEVsZW1lbnQoRmllbGRFbGVtZW50KToK ICAgICAgICAgIG5vcm1hbGl6ZSh4Ll9udW1lciwgeC5fZGVub20sIHNlbGYucCkKICAgICAgICAg IHJldHVybiB4CiAgCkBAIC0yNTY4Niw3ICsyNTY4Niw3IEBAIGluZGV4IDNlYTUzZTU4OWI4Li5h MGZkN2RiYzhjZSAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgUmV0dXJuIHRoZSBxdW90 aWVudCBvZiB0aGlzIGZyYWN0aW9uIGZpZWxkIGVsZW1lbnQgYW5kIGFub3RoZXIuCiAgCi1AQCAt NTU3LDcgKzU1Nyw3IEBAIGNkZWYgY2xhc3MgRnBURWxlbWVudChGaWVsZEVsZW1lbnQpOgorQEAg LTU2OCw3ICs1NjgsNyBAQCBjZGVmIGNsYXNzIEZwVEVsZW1lbnQoRmllbGRFbGVtZW50KToKICAg ICAgICAgIG5vcm1hbGl6ZSh4Ll9udW1lciwgeC5fZGVub20sIHNlbGYucCkKICAgICAgICAgIHJl dHVybiB4CiAgCkBAIC0yNTY5NSw3ICsyNTY5NSw3IEBAIGluZGV4IDNlYTUzZTU4OWI4Li5hMGZk N2RiYzhjZSAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgSXRlcmF0ZSB0aHJvdWdoIGFs bCBwb2x5bm9taWFscywgcmV0dXJuaW5nIHRoZSAibmV4dCIgcG9seW5vbWlhbCBhZnRlciB0aGlz IG9uZS4KICAKLUBAIC02NjMsNyArNjYzLDcgQEAgY2RlZiBjbGFzcyBGcFRFbGVtZW50KEZpZWxk RWxlbWVudCk6CitAQCAtNjc0LDcgKzY3NCw3IEBAIGNkZWYgY2xhc3MgRnBURWxlbWVudChGaWVs ZEVsZW1lbnQpOgogICAgICAgICAgICAgICAgICAgICAgbm1vZF9wb2x5X2NsZWFyKGcpCiAgICAg ICAgICByZXR1cm4gbmV4dAogIApAQCAtMjU3MDQsNyArMjU3MDQsNyBAQCBpbmRleCAzZWE1M2U1 ODliOC4uYTBmZDdkYmM4Y2UgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIFJldHVybiB0 aGUgc3F1YXJlIHJvb3Qgb2YgYGBzZWxmYGAsIG9yIGBgTm9uZWBgLgogIAotQEAgLTEwNTIsNyAr MTA1Miw3IEBAIGNkZWYgY2xhc3MgUG9seXJpbmdfRnBUX2NvZXJjZShSaW5nSG9tb21vcnBoaXNt KToKK0BAIC0xMDYzLDcgKzEwNjMsNyBAQCBjZGVmIGNsYXNzIFBvbHlyaW5nX0ZwVF9jb2VyY2Uo UmluZ0hvbW9tb3JwaGlzbSk6CiAgICAgICAgICBSaW5nSG9tb21vcnBoaXNtLl9faW5pdF9fKHNl bGYsIFIucmluZ19vZl9pbnRlZ2VycygpLkhvbShSKSkKICAgICAgICAgIHNlbGYucCA9IFIuYmFz ZV9yaW5nKCkuY2hhcmFjdGVyaXN0aWMoKQogIApAQCAtMjU3MTMsNyArMjU3MTMsNyBAQCBpbmRl eCAzZWE1M2U1ODliOC4uYTBmZDdkYmM4Y2UgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAg IEhlbHBlciBmb3IgY29weWluZyBhbmQgcGlja2xpbmcuCiAgCi1AQCAtMTA2OCw3ICsxMDY4LDcg QEAgY2RlZiBjbGFzcyBQb2x5cmluZ19GcFRfY29lcmNlKFJpbmdIb21vbW9ycGhpc20pOgorQEAg LTEwNzksNyArMTA3OSw3IEBAIGNkZWYgY2xhc3MgUG9seXJpbmdfRnBUX2NvZXJjZShSaW5nSG9t b21vcnBoaXNtKToKICAgICAgICAgIHNsb3RzWydwJ10gPSBzZWxmLnAKICAgICAgICAgIHJldHVy biBzbG90cwogIApAQCAtMjU3MjIsNyArMjU3MjIsNyBAQCBpbmRleCAzZWE1M2U1ODliOC4uYTBm ZDdkYmM4Y2UgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIEhlbHBlciBmb3IgY29weWlu ZyBhbmQgcGlja2xpbmcuCiAgCi1AQCAtMTA4Myw3ICsxMDgzLDcgQEAgY2RlZiBjbGFzcyBQb2x5 cmluZ19GcFRfY29lcmNlKFJpbmdIb21vbW9ycGhpc20pOgorQEAgLTEwOTQsNyArMTA5NCw3IEBA IGNkZWYgY2xhc3MgUG9seXJpbmdfRnBUX2NvZXJjZShSaW5nSG9tb21vcnBoaXNtKToKICAgICAg ICAgIHNlbGYucCA9IF9zbG90c1sncCddCiAgICAgICAgICBSaW5nSG9tb21vcnBoaXNtLl91cGRh dGVfc2xvdHMoc2VsZiwgX3Nsb3RzKQogIApAQCAtMjU3MzEsNyArMjU3MzEsNyBAQCBpbmRleCAz ZWE1M2U1ODliOC4uYTBmZDdkYmM4Y2UgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIEFw cGxpZXMgdGhlIGNvZXJjaW9uLgogIAotQEAgLTExMDYsNyArMTEwNiw3IEBAIGNkZWYgY2xhc3Mg UG9seXJpbmdfRnBUX2NvZXJjZShSaW5nSG9tb21vcnBoaXNtKToKK0BAIC0xMTE3LDcgKzExMTcs NyBAQCBjZGVmIGNsYXNzIFBvbHlyaW5nX0ZwVF9jb2VyY2UoUmluZ0hvbW9tb3JwaGlzbSk6CiAg ICAgICAgICBhbnMuaW5pdGlhbGl6ZWQgPSBUcnVlCiAgICAgICAgICByZXR1cm4gYW5zCiAgCkBA IC0yNTc0MCw3ICsyNTc0MCw3IEBAIGluZGV4IDNlYTUzZTU4OWI4Li5hMGZkN2RiYzhjZSAxMDA2 NDQKICAgICAgICAgICIiIgogICAgICAgICAgVGhpcyBmdW5jdGlvbiBhbGxvd3MgdGhlIG1hcCB0 byB0YWtlIG11bHRpcGxlIGFyZ3VtZW50cywKICAgICAgICAgIHVzdWFsbHkgdXNlZCB0byBzcGVj aWZ5IGJvdGggbnVtZXJhdG9yIGFuZCBkZW5vbWluYXRvci4KLUBAIC0xMjU1LDcgKzEyNTUsNyBA QCBjZGVmIGNsYXNzIEZwVF9Qb2x5cmluZ19zZWN0aW9uKFNlY3Rpb24pOgorQEAgLTEyNjYsNyAr MTI2Niw3IEBAIGNkZWYgY2xhc3MgRnBUX1BvbHlyaW5nX3NlY3Rpb24oU2VjdGlvbik6CiAgICAg ICAgICBzZWxmLnAgPSBmLnAKICAgICAgICAgIFNlY3Rpb24uX19pbml0X18oc2VsZiwgZikKICAK QEAgLTI1NzQ5LDcgKzI1NzQ5LDcgQEAgaW5kZXggM2VhNTNlNTg5YjguLmEwZmQ3ZGJjOGNlIDEw MDY0NAogICAgICAgICAgIiIiCiAgICAgICAgICBIZWxwZXIgZm9yIGNvcHlpbmcgYW5kIHBpY2ts aW5nLgogIAotQEAgLTEyNzcsNyArMTI3Nyw3IEBAIGNkZWYgY2xhc3MgRnBUX1BvbHlyaW5nX3Nl Y3Rpb24oU2VjdGlvbik6CitAQCAtMTI4OCw3ICsxMjg4LDcgQEAgY2RlZiBjbGFzcyBGcFRfUG9s eXJpbmdfc2VjdGlvbihTZWN0aW9uKToKICAgICAgICAgIHNsb3RzWydwJ10gPSBzZWxmLnAKICAg ICAgICAgIHJldHVybiBzbG90cwogIApAQCAtMjU3NTgsNyArMjU3NTgsNyBAQCBpbmRleCAzZWE1 M2U1ODliOC4uYTBmZDdkYmM4Y2UgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIEhlbHBl ciBmb3IgY29weWluZyBhbmQgcGlja2xpbmcuCiAgCi1AQCAtMTI5OCw3ICsxMjk4LDcgQEAgY2Rl ZiBjbGFzcyBGcFRfUG9seXJpbmdfc2VjdGlvbihTZWN0aW9uKToKK0BAIC0xMzA5LDcgKzEzMDks NyBAQCBjZGVmIGNsYXNzIEZwVF9Qb2x5cmluZ19zZWN0aW9uKFNlY3Rpb24pOgogICAgICAgICAg c2VsZi5wID0gX3Nsb3RzWydwJ10KICAgICAgICAgIFNlY3Rpb24uX3VwZGF0ZV9zbG90cyhzZWxm LCBfc2xvdHMpCiAgCkBAIC0yNTc2Nyw3ICsyNTc2Nyw3IEBAIGluZGV4IDNlYTUzZTU4OWI4Li5h MGZkN2RiYzhjZSAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgQXBwbGllcyB0aGUgc2Vj dGlvbi4KICAKLUBAIC0xMzcwLDcgKzEzNzAsNyBAQCBjZGVmIGNsYXNzIEZwX0ZwVF9jb2VyY2Uo UmluZ0hvbW9tb3JwaGlzbSk6CitAQCAtMTM4MSw3ICsxMzgxLDcgQEAgY2RlZiBjbGFzcyBGcF9G cFRfY29lcmNlKFJpbmdIb21vbW9ycGhpc20pOgogICAgICAgICAgUmluZ0hvbW9tb3JwaGlzbS5f X2luaXRfXyhzZWxmLCBSLmJhc2VfcmluZygpLkhvbShSKSkKICAgICAgICAgIHNlbGYucCA9IFIu YmFzZV9yaW5nKCkuY2hhcmFjdGVyaXN0aWMoKQogIApAQCAtMjU3NzYsNyArMjU3NzYsNyBAQCBp bmRleCAzZWE1M2U1ODliOC4uYTBmZDdkYmM4Y2UgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAg ICAgIEhlbHBlciBmb3IgY29weWluZyBhbmQgcGlja2xpbmcuCiAgCi1AQCAtMTM4OSw3ICsxMzg5 LDcgQEAgY2RlZiBjbGFzcyBGcF9GcFRfY29lcmNlKFJpbmdIb21vbW9ycGhpc20pOgorQEAgLTE0 MDAsNyArMTQwMCw3IEBAIGNkZWYgY2xhc3MgRnBfRnBUX2NvZXJjZShSaW5nSG9tb21vcnBoaXNt KToKICAgICAgICAgIHNsb3RzWydwJ10gPSBzZWxmLnAKICAgICAgICAgIHJldHVybiBzbG90cwog IApAQCAtMjU3ODUsNyArMjU3ODUsNyBAQCBpbmRleCAzZWE1M2U1ODliOC4uYTBmZDdkYmM4Y2Ug MTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIEhlbHBlciBmb3IgY29weWluZyBhbmQgcGlj a2xpbmcuCiAgCi1AQCAtMTQwNyw3ICsxNDA3LDcgQEAgY2RlZiBjbGFzcyBGcF9GcFRfY29lcmNl KFJpbmdIb21vbW9ycGhpc20pOgorQEAgLTE0MTgsNyArMTQxOCw3IEBAIGNkZWYgY2xhc3MgRnBf RnBUX2NvZXJjZShSaW5nSG9tb21vcnBoaXNtKToKICAgICAgICAgIHNlbGYucCA9IF9zbG90c1sn cCddCiAgICAgICAgICBSaW5nSG9tb21vcnBoaXNtLl91cGRhdGVfc2xvdHMoc2VsZiwgX3Nsb3Rz KQogIApAQCAtMjU3OTQsNyArMjU3OTQsNyBAQCBpbmRleCAzZWE1M2U1ODliOC4uYTBmZDdkYmM4 Y2UgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIEFwcGxpZXMgdGhlIGNvZXJjaW9uLgog IAotQEAgLTE0MzAsNyArMTQzMCw3IEBAIGNkZWYgY2xhc3MgRnBfRnBUX2NvZXJjZShSaW5nSG9t b21vcnBoaXNtKToKK0BAIC0xNDQxLDcgKzE0NDEsNyBAQCBjZGVmIGNsYXNzIEZwX0ZwVF9jb2Vy Y2UoUmluZ0hvbW9tb3JwaGlzbSk6CiAgICAgICAgICBhbnMuaW5pdGlhbGl6ZWQgPSBUcnVlCiAg ICAgICAgICByZXR1cm4gYW5zCiAgCkBAIC0yNTgwMyw3ICsyNTgwMyw3IEBAIGluZGV4IDNlYTUz ZTU4OWI4Li5hMGZkN2RiYzhjZSAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgVGhpcyBm dW5jdGlvbiBhbGxvd3MgdGhlIG1hcCB0byB0YWtlIG11bHRpcGxlIGFyZ3VtZW50cywgdXN1YWxs eSB1c2VkIHRvIHNwZWNpZnkgYm90aCBudW1lcmF0b3IgYW5kIGRlbm9taW5hdG9yLgogIAotQEAg LTE1NTgsNyArMTU1OCw3IEBAIGNkZWYgY2xhc3MgRnBUX0ZwX3NlY3Rpb24oU2VjdGlvbik6CitA QCAtMTU2OSw3ICsxNTY5LDcgQEAgY2RlZiBjbGFzcyBGcFRfRnBfc2VjdGlvbihTZWN0aW9uKToK ICAgICAgICAgIHNlbGYucCA9IGYucAogICAgICAgICAgU2VjdGlvbi5fX2luaXRfXyhzZWxmLCBm KQogIApAQCAtMjU4MTIsNyArMjU4MTIsNyBAQCBpbmRleCAzZWE1M2U1ODliOC4uYTBmZDdkYmM4 Y2UgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIEhlbHBlciBmb3IgY29weWluZyBhbmQg cGlja2xpbmcuCiAgCi1AQCAtMTU4Niw3ICsxNTg2LDcgQEAgY2RlZiBjbGFzcyBGcFRfRnBfc2Vj dGlvbihTZWN0aW9uKToKK0BAIC0xNTk3LDcgKzE1OTcsNyBAQCBjZGVmIGNsYXNzIEZwVF9GcF9z ZWN0aW9uKFNlY3Rpb24pOgogICAgICAgICAgc2xvdHNbJ3AnXSA9IHNlbGYucAogICAgICAgICAg cmV0dXJuIHNsb3RzCiAgCkBAIC0yNTgyMSw3ICsyNTgyMSw3IEBAIGluZGV4IDNlYTUzZTU4OWI4 Li5hMGZkN2RiYzhjZSAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgSGVscGVyIGZvciBj b3B5aW5nIGFuZCBwaWNrbGluZy4KICAKLUBAIC0xNjEzLDcgKzE2MTMsNyBAQCBjZGVmIGNsYXNz IEZwVF9GcF9zZWN0aW9uKFNlY3Rpb24pOgorQEAgLTE2MjQsNyArMTYyNCw3IEBAIGNkZWYgY2xh c3MgRnBUX0ZwX3NlY3Rpb24oU2VjdGlvbik6CiAgICAgICAgICBzZWxmLnAgPSBfc2xvdHNbJ3An XQogICAgICAgICAgU2VjdGlvbi5fdXBkYXRlX3Nsb3RzKHNlbGYsIF9zbG90cykKICAKQEAgLTI1 ODMwLDcgKzI1ODMwLDcgQEAgaW5kZXggM2VhNTNlNTg5YjguLmEwZmQ3ZGJjOGNlIDEwMDY0NAog ICAgICAgICAgIiIiCiAgICAgICAgICBBcHBsaWVzIHRoZSBzZWN0aW9uLgogIAotQEAgLTE2OTIs NyArMTY5Miw3IEBAIGNkZWYgY2xhc3MgWlpfRnBUX2NvZXJjZShSaW5nSG9tb21vcnBoaXNtKToK K0BAIC0xNzAzLDcgKzE3MDMsNyBAQCBjZGVmIGNsYXNzIFpaX0ZwVF9jb2VyY2UoUmluZ0hvbW9t b3JwaGlzbSk6CiAgICAgICAgICBSaW5nSG9tb21vcnBoaXNtLl9faW5pdF9fKHNlbGYsIFpaLkhv bShSKSkKICAgICAgICAgIHNlbGYucCA9IFIuYmFzZV9yaW5nKCkuY2hhcmFjdGVyaXN0aWMoKQog IApAQCAtMjU4MzksNyArMjU4MzksNyBAQCBpbmRleCAzZWE1M2U1ODliOC4uYTBmZDdkYmM4Y2Ug MTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIEhlbHBlciBmb3IgY29weWluZyBhbmQgcGlj a2xpbmcuCiAgCi1AQCAtMTcxMyw3ICsxNzEzLDcgQEAgY2RlZiBjbGFzcyBaWl9GcFRfY29lcmNl KFJpbmdIb21vbW9ycGhpc20pOgorQEAgLTE3MjQsNyArMTcyNCw3IEBAIGNkZWYgY2xhc3MgWlpf RnBUX2NvZXJjZShSaW5nSG9tb21vcnBoaXNtKToKICAgICAgICAgIHNsb3RzWydwJ10gPSBzZWxm LnAKICAgICAgICAgIHJldHVybiBzbG90cwogIApAQCAtMjU4NDgsNyArMjU4NDgsNyBAQCBpbmRl eCAzZWE1M2U1ODliOC4uYTBmZDdkYmM4Y2UgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAg IEhlbHBlciBmb3IgY29weWluZyBhbmQgcGlja2xpbmcuCiAgCi1AQCAtMTczMyw3ICsxNzMzLDcg QEAgY2RlZiBjbGFzcyBaWl9GcFRfY29lcmNlKFJpbmdIb21vbW9ycGhpc20pOgorQEAgLTE3NDQs NyArMTc0NCw3IEBAIGNkZWYgY2xhc3MgWlpfRnBUX2NvZXJjZShSaW5nSG9tb21vcnBoaXNtKToK ICAgICAgICAgIHNlbGYucCA9IF9zbG90c1sncCddCiAgICAgICAgICBSaW5nSG9tb21vcnBoaXNt Ll91cGRhdGVfc2xvdHMoc2VsZiwgX3Nsb3RzKQogIApAQCAtMjU4NTcsNyArMjU4NTcsNyBAQCBp bmRleCAzZWE1M2U1ODliOC4uYTBmZDdkYmM4Y2UgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAg ICAgIEFwcGxpZXMgdGhlIGNvZXJjaW9uLgogIAotQEAgLTE3NTYsNyArMTc1Niw3IEBAIGNkZWYg Y2xhc3MgWlpfRnBUX2NvZXJjZShSaW5nSG9tb21vcnBoaXNtKToKK0BAIC0xNzY3LDcgKzE3Njcs NyBAQCBjZGVmIGNsYXNzIFpaX0ZwVF9jb2VyY2UoUmluZ0hvbW9tb3JwaGlzbSk6CiAgICAgICAg ICBhbnMuaW5pdGlhbGl6ZWQgPSBUcnVlCiAgICAgICAgICByZXR1cm4gYW5zCiAgCkBAIC0yNjEx Miw3ICsyNjExMiw3IEBAIGluZGV4IDk4NmE0NjMwMGI4Li40MGQwZDk3MzRlZiAxMDA2NDQKICAg ICAgICAgIFJldHVybiBhbiBgYG5gYC10aCByb290IG9mIHRoaXMgZWxlbWVudCBpbiB0aGUgZnVu Y3Rpb24gZmllbGQuCiAgCiBkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvaW50ZWdlci5weGQg Yi9zcmMvc2FnZS9yaW5ncy9pbnRlZ2VyLnB4ZAotaW5kZXggMmY4MWMxNjQ5NDMuLjk1YzA2NTVi M2RkIDEwMDY0NAoraW5kZXggYjgzMWYwOTVlYjEuLjExNjU4OTU3MjllIDEwMDY0NAogLS0tIGEv c3JjL3NhZ2UvcmluZ3MvaW50ZWdlci5weGQKICsrKyBiL3NyYy9zYWdlL3JpbmdzL2ludGVnZXIu cHhkCiBAQCAtMTEsMzQgKzExLDM0IEBAIGNkZWYgY2xhc3MgSW50ZWdlcihFdWNsaWRlYW5Eb21h aW5FbGVtZW50KToKQEAgLTI2MTY1LDcgKzI2MTY1LDcgQEAgaW5kZXggMmY4MWMxNjQ5NDMuLjk1 YzA2NTViM2RkIDEwMDY0NAogICAgICBtcHpfc2V0KHoudmFsdWUsIGUpCiAgICAgIHJldHVybiB6 CiBkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvaW50ZWdlci5weXggYi9zcmMvc2FnZS9yaW5n cy9pbnRlZ2VyLnB5eAotaW5kZXggZDBhMTkwMmM0NDkuLjg2YTI5MzQwMTFjIDEwMDY0NAoraW5k ZXggNTVhOWY5OTYxZWUuLjcwZDExZWZhZjdhIDEwMDY0NAogLS0tIGEvc3JjL3NhZ2UvcmluZ3Mv aW50ZWdlci5weXgKICsrKyBiL3NyYy9zYWdlL3JpbmdzL2ludGVnZXIucHl4CiBAQCAtMjExLDEx ICsyMTEsMTEgQEAgY2RlZiBvYmplY3QgbnVtcHlfbG9uZ19pbnRlcmZhY2UgPSB7J3R5cGVzdHIn OiAnPWk0JyBpZiBzaXplb2YobG9uZykgPT0gNCBlbHNlICcKQEAgLTI2Mzk1LDE2ICsyNjM5NSw3 IEBAIGluZGV4IGQwYTE5MDJjNDQ5Li44NmEyOTM0MDExYyAxMDA2NDQKICAgICAgICAgIGNkZWYg SW50ZWdlciB4ID0gUFlfTkVXKEludGVnZXIpCiAgICAgICAgICBtcHpfaW9yKHgudmFsdWUsIHNl bGYudmFsdWUsIG90aGVyLnZhbHVlKQogICAgICAgICAgcmV0dXJuIHgKLUBAIC03NDc2LDcgKzc0 NzYsNyBAQCBjZGVmIGNsYXNzIGludF90b19aKE1vcnBoaXNtKToKLSAgICAgICAgIGZyb20gc2Fn ZS5zZXRzLnB5dGhvbmNsYXNzIGltcG9ydCBTZXRfUHl0aG9uVHlwZQotICAgICAgICAgTW9ycGhp c20uX19pbml0X18oc2VsZiwgc2FnZS5jYXRlZ29yaWVzLmhvbXNldC5Ib20oU2V0X1B5dGhvblR5 cGUoaW50KSwgaW50ZWdlcl9yaW5nLlpaKSkKLSAKLS0gICAgY3BkZWYgRWxlbWVudCBfY2FsbF8o c2VsZiwgYSkgbm9leGNlcHQ6Ci0rICAgIGNwZGVmIEVsZW1lbnQgX2NhbGxfKHNlbGYsIGEpOgot ICAgICAgICAgIiIiCi0gICAgICAgICBSZXR1cm4gYSBuZXcgaW50ZWdlciB3aXRoIHRoZSBzYW1l IHZhbHVlIGFzIGBgYWBgLgotIAotQEAgLTc1MjEsNyArNzUyMSw3IEBAIGNkZWYgY2xhc3MgbG9u Z190b19aKE1vcnBoaXNtKToKK0BAIC03NDQwLDcgKzc0NDAsNyBAQCBjZGVmIGNsYXNzIGludF90 b19aKE1vcnBoaXNtKToKICAgICAgICAgIGZyb20gc2FnZS5zZXRzLnB5dGhvbmNsYXNzIGltcG9y dCBTZXRfUHl0aG9uVHlwZQogICAgICAgICAgTW9ycGhpc20uX19pbml0X18oc2VsZiwgc2FnZS5j YXRlZ29yaWVzLmhvbXNldC5Ib20oU2V0X1B5dGhvblR5cGUobG9uZyksIGludGVnZXJfcmluZy5a WikpCiAgCkBAIC0yNjQxMyw3ICsyNjQwNCw3IEBAIGluZGV4IGQwYTE5MDJjNDQ5Li44NmEyOTM0 MDExYyAxMDA2NDQKICAgICAgICAgIGNkZWYgSW50ZWdlciByCiAgICAgICAgICBjZGVmIGxvbmcg bAogICAgICAgICAgY2RlZiBpbnQgZXJyID0gMAotQEAgLTc3MDUsNyArNzcwNSw3IEBAIGNkZWYg dm9pZCBmYXN0X3RwX2RlYWxsb2MoUHlPYmplY3QqIG8pIG5vZXhjZXB0OgorQEAgLTc2MjQsNyAr NzYyNCw3IEBAIGNkZWYgdm9pZCBmYXN0X3RwX2RlYWxsb2MoUHlPYmplY3QqIG8pIG5vZXhjZXB0 OgogIAogIAogIGZyb20gc2FnZS5taXNjLmFsbG9jYXRvciBjaW1wb3J0IGhvb2tfdHBfZnVuY3Rp b25zCkBAIC0yNjQyMiw3ICsyNjQxMyw3IEBAIGluZGV4IGQwYTE5MDJjNDQ5Li44NmEyOTM0MDEx YyAxMDA2NDQKICAgICAgIiIiCiAgICAgIEluaXRpYWxpemUgdGhlIGZhc3QgaW50ZWdlciBjcmVh dGlvbiBmdW5jdGlvbnMuCiAgICAgICIiIgotQEAgLTc3MjMsNyArNzcyMyw3IEBAIGNkZWYgaG9v a19mYXN0X3RwX2Z1bmN0aW9ucygpIG5vZXhjZXB0OgorQEAgLTc2NDIsNyArNzY0Miw3IEBAIGNk ZWYgaG9va19mYXN0X3RwX2Z1bmN0aW9ucygpIG5vZXhjZXB0OgogICAgICAjIHRvIGJlIGNvbnN0 cnVjdGVkL2Rlc3RydWN0ZWQuCiAgICAgIGhvb2tfdHBfZnVuY3Rpb25zKGdsb2JhbF9kdW1teV9J bnRlZ2VyLCA8bmV3ZnVuYz4oJmZhc3RfdHBfbmV3KSwgPGRlc3RydWN0b3I+KCZmYXN0X3RwX2Rl YWxsb2MpLCBGYWxzZSkKICAKQEAgLTI2NDMxLDcgKzI2NDIyLDcgQEAgaW5kZXggZDBhMTkwMmM0 NDkuLjg2YTI5MzQwMTFjIDEwMDY0NAogICAgICBpZiBpc2luc3RhbmNlKHgsIEludGVnZXIpOgog ICAgICAgICAgcmV0dXJuIHgKICAgICAgcmV0dXJuIEludGVnZXIoeCkKLUBAIC03NzUzLDcgKzc3 NTMsNyBAQCBob29rX2Zhc3RfdHBfZnVuY3Rpb25zKCkKK0BAIC03NjcyLDcgKzc2NzIsNyBAQCBo b29rX2Zhc3RfdHBfZnVuY3Rpb25zKCkKICAKICAjIHplcm8gYW5kIG9uZSBpbml0aWFsaXphdGlv bgogIGluaXRpYWxpemVkID0gRmFsc2UKQEAgLTI2NDQwLDcgKzI2NDMxLDcgQEAgaW5kZXggZDBh MTkwMmM0NDkuLjg2YTI5MzQwMTFjIDEwMDY0NAogICAgICBnbG9iYWwgdGhlX2ludGVnZXJfcmlu ZywgaW5pdGlhbGl6ZWQKICAgICAgaWYgaW5pdGlhbGl6ZWQ6CiAgICAgICAgICByZXR1cm4KLUBA IC03NzczLDcgKzc3NzMsNyBAQCBERUYgc21hbGxfcG9vbF9tYXggPSAyNTYKK0BAIC03NjkyLDcg Kzc2OTIsNyBAQCBERUYgc21hbGxfcG9vbF9tYXggPSAyNTYKICAjIHdlIGNvdWxkIHVzZSB0aGUg YWJvdmUgemVybyBhbmQgb25lIGhlcmUKICBjZGVmIGxpc3Qgc21hbGxfcG9vbCA9IFtJbnRlZ2Vy KGspIGZvciBrIGluIHJhbmdlKHNtYWxsX3Bvb2xfbWluLCBzbWFsbF9wb29sX21heCsxKV0KICAK QEAgLTI2NDUwLDcgKzI2NDQxLDcgQEAgaW5kZXggZDBhMTkwMmM0NDkuLjg2YTI5MzQwMTFjIDEw MDY0NAogICAgICBUaGlzIGlzIHRoZSBmYXN0ZXN0IHdheSB0byBjcmVhdGUgYSAobGlrZWx5KSBz bWFsbCBJbnRlZ2VyLgogICAgICAiIiIKIGRpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9pbnRl Z2VyX3JpbmcucHl4IGIvc3JjL3NhZ2UvcmluZ3MvaW50ZWdlcl9yaW5nLnB5eAotaW5kZXggOTE5 OWRlYmJmYjYuLmQ0OTFiNzgwNjhlIDEwMDY0NAoraW5kZXggMDEzZTY3ZmVkYzMuLmFiNDQ1MDU2 Y2M3IDEwMDY0NAogLS0tIGEvc3JjL3NhZ2UvcmluZ3MvaW50ZWdlcl9yaW5nLnB5eAogKysrIGIv c3JjL3NhZ2UvcmluZ3MvaW50ZWdlcl9yaW5nLnB5eAogQEAgLTUyOCw3ICs1MjgsNyBAQCBjZGVm IGNsYXNzIEludGVnZXJSaW5nX2NsYXNzKFByaW5jaXBhbElkZWFsRG9tYWluKToKQEAgLTI2OTcx LDcgKzI2OTYyLDcgQEAgaW5kZXggMjIxMmE0YWMyNTAuLjg0NGE0ZWMzMTYyIDEwMDY0NAogICAg ICAgICAgUXVpY2tseSBjcmVhdGVzIGEgbmV3IGluaXRpYWxpemVkIE51bWJlckZpZWxkRWxlbWVu dCB3aXRoIHRoZSBzYW1lCiAgICAgICAgICBwYXJlbnQgYXMgc2VsZi4KIGRpZmYgLS1naXQgYS9z cmMvc2FnZS9yaW5ncy9udW1iZXJfZmllbGQvbnVtYmVyX2ZpZWxkX2VsZW1lbnRfcXVhZHJhdGlj LnB4ZCBiL3NyYy9zYWdlL3JpbmdzL251bWJlcl9maWVsZC9udW1iZXJfZmllbGRfZWxlbWVudF9x dWFkcmF0aWMucHhkCi1pbmRleCBiOWZiYjI5NGE1NC4uZWMzMjI0NWYzY2IgMTAwNjQ0CitpbmRl eCBjZjY3OTA5OGEyZi4uNmRjZTljMDRkOTAgMTAwNjQ0CiAtLS0gYS9zcmMvc2FnZS9yaW5ncy9u dW1iZXJfZmllbGQvbnVtYmVyX2ZpZWxkX2VsZW1lbnRfcXVhZHJhdGljLnB4ZAogKysrIGIvc3Jj L3NhZ2UvcmluZ3MvbnVtYmVyX2ZpZWxkL251bWJlcl9maWVsZF9lbGVtZW50X3F1YWRyYXRpYy5w eGQKIEBAIC0xMCwyMiArMTAsMjIgQEAgY2RlZiBjbGFzcyBOdW1iZXJGaWVsZEVsZW1lbnRfcXVh ZHJhdGljKE51bWJlckZpZWxkRWxlbWVudF9hYnNvbHV0ZSk6CkBAIC0yNzAwMyw3ICsyNjk5NCw3 IEBAIGluZGV4IGI5ZmJiMjk0YTU0Li5lYzMyMjQ1ZjNjYiAxMDA2NDQKICBjZGVmIGNsYXNzIE9y ZGVyRWxlbWVudF9xdWFkcmF0aWMoTnVtYmVyRmllbGRFbGVtZW50X3F1YWRyYXRpYyk6CiAgICAg IHBhc3MKIGRpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9udW1iZXJfZmllbGQvbnVtYmVyX2Zp ZWxkX2VsZW1lbnRfcXVhZHJhdGljLnB5eCBiL3NyYy9zYWdlL3JpbmdzL251bWJlcl9maWVsZC9u dW1iZXJfZmllbGRfZWxlbWVudF9xdWFkcmF0aWMucHl4Ci1pbmRleCBjNmJlYjVlNmFhOC4uZmQw NGNiZjk5Y2MgMTAwNjQ0CitpbmRleCAzY2NhYzkzMDA3Ni4uZjQ4ZGY4NjRiNzQgMTAwNjQ0CiAt LS0gYS9zcmMvc2FnZS9yaW5ncy9udW1iZXJfZmllbGQvbnVtYmVyX2ZpZWxkX2VsZW1lbnRfcXVh ZHJhdGljLnB5eAogKysrIGIvc3JjL3NhZ2UvcmluZ3MvbnVtYmVyX2ZpZWxkL251bWJlcl9maWVs ZF9lbGVtZW50X3F1YWRyYXRpYy5weXgKIEBAIC0yMjUsNyArMjI1LDcgQEAgY2RlZiBjbGFzcyBO dW1iZXJGaWVsZEVsZW1lbnRfcXVhZHJhdGljKE51bWJlckZpZWxkRWxlbWVudF9hYnNvbHV0ZSk6 CkBAIC0yOTk4Myw3ICsyOTk3NCw3IEBAIGluZGV4IGI2ZmY0NzMyNTQyLi4yOGIzOTE3ZDNhMSAx MDA2NDQKICAgICAgY2RlZiBsb25nIGkKICAKIGRpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9w b2x5bm9taWFsL2hpbGJlcnQucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9oaWxiZXJ0 LnB5eAotaW5kZXggMTQ3ZGI1NjkxYzMuLmJhNDNjMWQzYmE1IDEwMDY0NAoraW5kZXggOWU2MWM0 YjEyOWUuLjQzOWQyZWQ4OTNlIDEwMDY0NAogLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlh bC9oaWxiZXJ0LnB5eAogKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9oaWxiZXJ0LnB5 eAogQEAgLTg0LDcgKzg0LDcgQEAgY2RlZiBpbmxpbmUgYmludCBpbmRpdmlzaWJsZV9pbl9saXN0 KEVUdXBsZSBtLCBsaXN0IEwsIHNpemVfdCBpKSBub2V4Y2VwdDoKQEAgLTMwMjI2LDcgKzMwMjE3 LDcgQEAgaW5kZXggZjcxY2NiNTcwMzAuLjc5ZjA5ZGVmNmFhIDEwMDY0NAogKyAgICBjcGRlZiB0 b3JpY19jb29yZGluYXRlX2NoYW5nZShzZWxmLCBNLCBoPSosIG5ld19yaW5nPSopCiArICAgIGNw ZGVmIHRvcmljX3N1YnN0aXR1dGUoc2VsZiwgdiwgdjEsIGEsIGg9KiwgbmV3X3Jpbmc9KikKIGRp ZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL2xhdXJlbnRfcG9seW5vbWlhbF9t cGFpci5weXggYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL2xhdXJlbnRfcG9seW5vbWlhbF9t cGFpci5weXgKLWluZGV4IDI4NTE2M2RhZGE0Li5iMzMwNDAyZGI0YSAxMDA2NDQKK2luZGV4IGNm YzIxYjIxOWU0Li5jMDMyMzljZWJkZSAxMDA2NDQKIC0tLSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlu b21pYWwvbGF1cmVudF9wb2x5bm9taWFsX21wYWlyLnB5eAogKysrIGIvc3JjL3NhZ2UvcmluZ3Mv cG9seW5vbWlhbC9sYXVyZW50X3BvbHlub21pYWxfbXBhaXIucHl4CiBAQCAtMjUxLDcgKzI1MSw3 IEBAIGNkZWYgY2xhc3MgTGF1cmVudFBvbHlub21pYWxfbXBhaXIoTGF1cmVudFBvbHlub21pYWwp OgpAQCAtMzAzMzcsNyArMzAzMjgsNyBAQCBpbmRleCAyODUxNjNkYWRhNC4uYjMzMDQwMmRiNGEg MTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIENvbXBhcmUgdHdvIHBvbHlub21pYWxzIGlu IGEgYExhdXJlbnRQb2x5bm9taWFsUmluZ2AgYmFzZWQgb24gdGhlIHRlcm0KICAgICAgICAgIG9y ZGVyIGZyb20gdGhlIHBhcmVudCByaW5nLiAgSWYgdGhlIHBhcmVudCByaW5nIGRvZXMgbm90IHNw ZWNpZnkgYSB0ZXJtCi1AQCAtMTY4MCw3ICsxNjgwLDcgQEAgY2RlZiBjbGFzcyBMYXVyZW50UG9s eW5vbWlhbF9tcGFpcihMYXVyZW50UG9seW5vbWlhbCk6CitAQCAtMTc0MSw3ICsxNzQxLDcgQEAg Y2RlZiBjbGFzcyBMYXVyZW50UG9seW5vbWlhbF9tcGFpcihMYXVyZW50UG9seW5vbWlhbCk6CiAg ICAgICAgICAgICAgYW5zLl9wb2x5ID0gcm9vdAogICAgICAgICAgICAgIHJldHVybiAoVHJ1ZSwg YW5zKQogIApAQCAtMzAzNDYsNyArMzAzMzcsNyBAQCBpbmRleCAyODUxNjNkYWRhNC4uYjMzMDQw MmRiNGEgMTAwNjQ0CiAgICAgICAgICByIiIiCiAgICAgICAgICBSZXNjYWxlIHZhcmlhYmxlcyBp biBhIExhdXJlbnQgcG9seW5vbWlhbC4KICAKLUBAIC0xNzQ3LDcgKzE3NDcsNyBAQCBjZGVmIGNs YXNzIExhdXJlbnRQb2x5bm9taWFsX21wYWlyKExhdXJlbnRQb2x5bm9taWFsKToKK0BAIC0xODA4 LDcgKzE4MDgsNyBAQCBjZGVmIGNsYXNzIExhdXJlbnRQb2x5bm9taWFsX21wYWlyKExhdXJlbnRQ b2x5bm9taWFsKToKICAgICAgICAgICAgICByZXR1cm4gbmV3X3JpbmcoYW5zKQogICAgICAgICAg cmV0dXJuIGFucwogIApAQCAtMzAzNTUsNyArMzAzNDYsNyBAQCBpbmRleCAyODUxNjNkYWRhNC4u YjMzMDQwMmRiNGEgMTAwNjQ0CiAgICAgICAgICByIiIiCiAgICAgICAgICBBcHBseSBhIG1hdHJp eCB0byB0aGUgZXhwb25lbnRzIGluIGEgTGF1cmVudCBwb2x5bm9taWFsLgogIAotQEAgLTE4MTYs NyArMTgxNiw3IEBAIGNkZWYgY2xhc3MgTGF1cmVudFBvbHlub21pYWxfbXBhaXIoTGF1cmVudFBv bHlub21pYWwpOgorQEAgLTE4NzcsNyArMTg3Nyw3IEBAIGNkZWYgY2xhc3MgTGF1cmVudFBvbHlu b21pYWxfbXBhaXIoTGF1cmVudFBvbHlub21pYWwpOgogICAgICAgICAgICAgIHJldHVybiBuZXdf cmluZyhhbnMpCiAgICAgICAgICByZXR1cm4gYW5zCiAgCkBAIC0zMDQ2NSw3ICszMDQ1Niw3IEBA IGluZGV4IDc0NDc3NGVhMjMxLi41Y2M1NDYxMTJjOSAxMDA2NDQKIC1jZGVmIE1Qb2x5bm9taWFs X2xpYnNpbmd1bGFyIG5ld19NUChNUG9seW5vbWlhbFJpbmdfbGlic2luZ3VsYXIgcGFyZW50LCBw b2x5ICpwKSBub2V4Y2VwdAogK2NkZWYgTVBvbHlub21pYWxfbGlic2luZ3VsYXIgbmV3X01QKE1Q b2x5bm9taWFsUmluZ19saWJzaW5ndWxhciBwYXJlbnQsIHBvbHkgKnApCiBkaWZmIC0tZ2l0IGEv c3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9tdWx0aV9wb2x5bm9taWFsX2xpYnNpbmd1bGFyLnB5 eCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvbXVsdGlfcG9seW5vbWlhbF9saWJzaW5ndWxh ci5weXgKLWluZGV4IGVjNGFjYTU3MzNjLi44ZWJmMTNjYzNjYSAxMDA2NDQKK2luZGV4IDMzZjQ1 ODEzMDI3Li40MGZiYzhjNjlhYSAxMDA2NDQKIC0tLSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21p YWwvbXVsdGlfcG9seW5vbWlhbF9saWJzaW5ndWxhci5weXgKICsrKyBiL3NyYy9zYWdlL3Jpbmdz L3BvbHlub21pYWwvbXVsdGlfcG9seW5vbWlhbF9saWJzaW5ndWxhci5weXgKIEBAIC00NjQsNyAr NDY0LDcgQEAgY2RlZiBjbGFzcyBNUG9seW5vbWlhbFJpbmdfbGlic2luZ3VsYXIoTVBvbHlub21p YWxSaW5nX2Jhc2UpOgpAQCAtMzA1NDksNyArMzA1NDAsNyBAQCBpbmRleCBlYzRhY2E1NzMzYy4u OGViZjEzY2MzY2EgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIFRoaXMgaXMgYSBmYXN0 ZXIgYnV0IGxlc3MgcHJldHR5IHdheSB0byBwcmludCBwb2x5bm9taWFscy4gSWYKICAgICAgICAg IGF2YWlsYWJsZSBpdCB1c2VzIHRoZSBzaG9ydCBTSU5HVUxBUiBub3RhdGlvbi4KLUBAIC0zMjgy LDcgKzMyODIsNyBAQCBjZGVmIGNsYXNzIE1Qb2x5bm9taWFsX2xpYnNpbmd1bGFyKE1Qb2x5bm9t aWFsX2xpYnNpbmd1bGFyX2Jhc2UpOgorQEAgLTMzMjUsNyArMzMyNSw3IEBAIGNkZWYgY2xhc3Mg TVBvbHlub21pYWxfbGlic2luZ3VsYXIoTVBvbHlub21pYWxfbGlic2luZ3VsYXJfYmFzZSk6CiAg ICAgICAgICAgICAgckNoYW5nZUN1cnJSaW5nKF9yaW5nKQogICAgICAgICAgcmV0dXJuIGJvb2wo cF9Jc0hvbW9nZW5lb3VzKHNlbGYuX3BvbHksX3JpbmcpKQogIApAQCAtMzA1NTgsNyArMzA1NDks NyBAQCBpbmRleCBlYzRhY2E1NzMzYy4uOGViZjEzY2MzY2EgMTAwNjQ0CiAgICAgICAgICAiIiIK ICAgICAgICAgIFJldHVybiBgYHNlbGZgYCBpZiBgYHNlbGZgYCBpcyBob21vZ2VuZW91cy4gIE90 aGVyd2lzZSByZXR1cm4KICAgICAgICAgIGEgaG9tb2dlbml6ZWQgcG9seW5vbWlhbCBjb25zdHJ1 Y3RlZCBieSBtb2RpZnlpbmcgdGhlIGRlZ3JlZQotQEAgLTM5MTQsNyArMzkxNCw3IEBAIGNkZWYg Y2xhc3MgTVBvbHlub21pYWxfbGlic2luZ3VsYXIoTVBvbHlub21pYWxfbGlic2luZ3VsYXJfYmFz ZSk6CitAQCAtMzk1Nyw3ICszOTU3LDcgQEAgY2RlZiBjbGFzcyBNUG9seW5vbWlhbF9saWJzaW5n dWxhcihNUG9seW5vbWlhbF9saWJzaW5ndWxhcl9iYXNlKToKICAgICAgICAgICIiIgogICAgICAg ICAgcmV0dXJuIGxlbihzZWxmLl92YXJpYWJsZV9pbmRpY2VzXyhzb3J0PUZhbHNlKSkKICAKQEAg LTMwNTY3LDcgKzMwNTU4LDcgQEAgaW5kZXggZWM0YWNhNTczM2MuLjhlYmYxM2NjM2NhIDEwMDY0 NAogICAgICAgICAgIiIiCiAgICAgICAgICBSZXR1cm4gYGBUcnVlYGAgaWYgdGhpcyBwb2x5bm9t aWFsIGlzIGNvbnN0YW50LgogIAotQEAgLTQwNTYsNyArNDA1Niw3IEBAIGNkZWYgY2xhc3MgTVBv bHlub21pYWxfbGlic2luZ3VsYXIoTVBvbHlub21pYWxfbGlic2luZ3VsYXJfYmFzZSk6CitAQCAt NDA5OSw3ICs0MDk5LDcgQEAgY2RlZiBjbGFzcyBNUG9seW5vbWlhbF9saWJzaW5ndWxhcihNUG9s eW5vbWlhbF9saWJzaW5ndWxhcl9iYXNlKToKICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAg cmV0dXJuIEZhbHNlCiAgCkBAIC0zMDU3Niw3ICszMDU2Nyw3IEBAIGluZGV4IGVjNGFjYTU3MzNj Li44ZWJmMTNjYzNjYSAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgUGVyZm9ybSBkaXZp c2lvbiB3aXRoIHJlbWFpbmRlciBhbmQgcmV0dXJuIHRoZSBxdW90aWVudC4KICAKLUBAIC01OTA5 LDcgKzU5MDksNyBAQCBjZGVmIGlubGluZSBwb2x5ICphZGR3aXRoY2FycnkocG9seSAqdGVtcHZl Y3RvciwgcG9seSAqbWF4dmVjdG9yLCBpbnQgcG9zLCByaW5nCitAQCAtNTk1Miw3ICs1OTUyLDcg QEAgY2RlZiBpbmxpbmUgcG9seSAqYWRkd2l0aGNhcnJ5KHBvbHkgKnRlbXB2ZWN0b3IsIHBvbHkg Km1heHZlY3RvciwgaW50IHBvcywgcmluZwogICAgICByZXR1cm4gdGVtcHZlY3RvcgogIAogIApA QCAtMzEzOTIsNyArMzEzODMsNyBAQCBpbmRleCAzMGU2YWE4OWRjMy4uMjNkZDJhMTExNzkgMTAw NjQ0CiAgICAgIENvbnN0cnVjdCBOQ1BvbHlub21pYWxSaW5nX3BsdXJhbCBmcm9tIHJpbmdXcmFw LCBhc3N1bWluZyB0aGUgZ3JvdW5kIGZpZWxkIHRvIGJlIGJhc2VfcmluZwogIAogZGlmZiAtLWdp dCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seWRpY3QucHhkIGIvc3JjL3NhZ2Uvcmlu Z3MvcG9seW5vbWlhbC9wb2x5ZGljdC5weGQKLWluZGV4IDQzMmFlN2Q4YzQ3Li40ZWM3NzY0ZWE2 OCAxMDA2NDQKK2luZGV4IGFmNTZjZDgwMzY0Li42OWRkYzg4ODM3OCAxMDA2NDQKIC0tLSBhL3Ny Yy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seWRpY3QucHhkCiArKysgYi9zcmMvc2FnZS9yaW5n cy9wb2x5bm9taWFsL3BvbHlkaWN0LnB4ZAogQEAgLTEsOCArMSw4IEBACkBAIC0zMTQxNCw4ICsz MTQwNSw4IEBAIGluZGV4IDQzMmFlN2Q4YzQ3Li40ZWM3NzY0ZWE2OCAxMDA2NDQKICsgICAgY2Rl ZiBFVHVwbGUgX25ldyhzZWxmKQogICAgICBjZGVmIGludCBnZXRfZXhwKHNlbGYsIHNpemVfdCBp KSBub2V4Y2VwdAogIAotICAgICBjcGRlZiBpbnQgdW53ZWlnaHRlZF9kZWdyZWUoc2VsZikgZXhj ZXB0ICoKLUBAIC0xOSwyNCArMTksMjQgQEAgY2RlZiBjbGFzcyBFVHVwbGU6CisgICAgICMgbmVl ZCBhIGNkZWYgdmVyc2lvbiBmb3IgZnVuY3Rpb24gcG9pbnRlcnMKK0BAIC0yMSwyNCArMjEsMjQg QEAgY2RlZiBjbGFzcyBFVHVwbGU6CiAgICAgIGNwZGVmIGludCB1bndlaWdodGVkX3F1b3RpZW50 X2RlZ3JlZShzZWxmLCBFVHVwbGUgb3RoZXIpIGV4Y2VwdCAqCiAgICAgIGNwZGVmIGludCB3ZWln aHRlZF9xdW90aWVudF9kZWdyZWUoc2VsZiwgRVR1cGxlIG90aGVyLCB0dXBsZSB3KSBleGNlcHQg KgogIApAQCAtMzE0NTYsNyArMzE0NDcsNyBAQCBpbmRleCA0MzJhZTdkOGM0Ny4uNGVjNzc2NGVh NjggMTAwNjQ0CiAtY3BkZWYgRVR1cGxlIG1vbm9taWFsX2V4cG9uZW50KFBvbHlEaWN0IHApIG5v ZXhjZXB0CiArY3BkZWYgRVR1cGxlIG1vbm9taWFsX2V4cG9uZW50KFBvbHlEaWN0IHApCiBkaWZm IC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5ZGljdC5weXggYi9zcmMvc2Fn ZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlkaWN0LnB5eAotaW5kZXggYWYyNGU3ZmYyNDUuLmJmNDJh NjU5YWVhIDEwMDY0NAoraW5kZXggMGVjZjM1ZTQ1MmYuLmU1NzkwNTJkZjk1IDEwMDY0NAogLS0t IGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5ZGljdC5weXgKICsrKyBiL3NyYy9zYWdl L3JpbmdzL3BvbHlub21pYWwvcG9seWRpY3QucHl4CiBAQCAtNjksNyArNjksNyBAQCBjcGRlZiBp bnQgZ2VuX2luZGV4KFBvbHlEaWN0IHgpIG5vZXhjZXB0OgpAQCAtMzE0OTIsNyArMzE0ODMsNyBA QCBpbmRleCBhZjI0ZTdmZjI0NS4uYmY0MmE2NTlhZWEgMTAwNjQ0CiAgICAgICAgICAiIiIKICAg ICAgICAgIFF1aWNrbHkgY3JlYXRlcyBhIG5ldyBpbml0aWFsaXplZCBFVHVwbGUgd2l0aCB0aGUK ICAgICAgICAgIHNhbWUgbGVuZ3RoIGFzIHNlbGYuCi1AQCAtMTk3NSw3ICsxOTc1LDcgQEAgY2Rl ZiBjbGFzcyBFVHVwbGU6CitAQCAtMTk4OSw3ICsxOTg5LDcgQEAgY2RlZiBjbGFzcyBFVHVwbGU6 CiAgICAgICAgICAgICAgaW5kMSArPSAyCiAgICAgICAgICByZXR1cm4gZGVnCiAgCkBAIC0zMTUw MSw3ICszMTQ5Miw3IEBAIGluZGV4IGFmMjRlN2ZmMjQ1Li5iZjQyYTY1OWFlYSAxMDA2NDQKICAg ICAgICAgICIiIgogICAgICAgICAgUmV0dXJuIHRoZSB2ZWN0b3IgYWRkaXRpb24gb2YgYGBzZWxm YGAgd2l0aCBgYG90aGVyYGAuCiAgCi1AQCAtMjAyNSw3ICsyMDI1LDcgQEAgY2RlZiBjbGFzcyBF VHVwbGU6CitAQCAtMjAzOSw3ICsyMDM5LDcgQEAgY2RlZiBjbGFzcyBFVHVwbGU6CiAgICAgICAg ICAgICAgICAgIHJlc3VsdC5fbm9uemVybyArPSAxCiAgICAgICAgICByZXR1cm4gcmVzdWx0CiAg CkBAIC0zMTUxMCw3ICszMTUwMSw3IEBAIGluZGV4IGFmMjRlN2ZmMjQ1Li5iZjQyYTY1OWFlYSAx MDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgQWRkIGBgb3RoZXJgYCB0byBgYHNlbGZgYCBh dCBwb3NpdGlvbiBgYHBvc2BgLgogIAotQEAgLTIxMTMsNyArMjExMyw3IEBAIGNkZWYgY2xhc3Mg RVR1cGxlOgorQEAgLTIxMjcsNyArMjEyNyw3IEBAIGNkZWYgY2xhc3MgRVR1cGxlOgogIAogICAg ICAgICAgcmV0dXJuIHJlc3VsdAogIApAQCAtMzE1MTksNyArMzE1MTAsNyBAQCBpbmRleCBhZjI0 ZTdmZjI0NS4uYmY0MmE2NTlhZWEgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIFZlY3Rv ciBhZGRpdGlvbiBvZiBgYHNlbGZgYCB3aXRoIGBgc2NhbGFyICogb3RoZXJgYC4KICAKLUBAIC0y MTUyLDcgKzIxNTIsNyBAQCBjZGVmIGNsYXNzIEVUdXBsZToKK0BAIC0yMTY2LDcgKzIxNjYsNyBA QCBjZGVmIGNsYXNzIEVUdXBsZToKICAgICAgICAgICAgICAgICAgcmVzdWx0Ll9ub256ZXJvICs9 IDEKICAgICAgICAgIHJldHVybiByZXN1bHQKICAKQEAgLTMxNTI4LDcgKzMxNTE5LDcgQEAgaW5k ZXggYWYyNGU3ZmYyNDUuLmJmNDJhNjU5YWVhIDEwMDY0NAogICAgICAgICAgIiIiCiAgICAgICAg ICBWZWN0b3Igc3VidHJhY3Rpb24gb2YgYGBzZWxmYGAgd2l0aCBgYG90aGVyYGAuCiAgCi1AQCAt MjE5MCw3ICsyMTkwLDcgQEAgY2RlZiBjbGFzcyBFVHVwbGU6CitAQCAtMjIwNCw3ICsyMjA0LDcg QEAgY2RlZiBjbGFzcyBFVHVwbGU6CiAgICAgICAgICAgICAgICAgIHJlc3VsdC5fbm9uemVybyAr PSAxCiAgICAgICAgICByZXR1cm4gcmVzdWx0CiAgCkBAIC0zMTUzNyw3ICszMTUyOCw3IEBAIGlu ZGV4IGFmMjRlN2ZmMjQ1Li5iZjQyYTY1OWFlYSAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAg ICAgU2NhbGFyIFZlY3RvciBtdWx0aXBsaWNhdGlvbiBvZiBgYHNlbGZgYC4KICAKLUBAIC0yMjE0 LDcgKzIyMTQsNyBAQCBjZGVmIGNsYXNzIEVUdXBsZToKK0BAIC0yMjI4LDcgKzIyMjgsNyBAQCBj ZGVmIGNsYXNzIEVUdXBsZToKICAgICAgICAgICAgICAgICAgcmVzdWx0Ll9kYXRhWzIgKiBpbmQg KyAxXSA9IHNlbGYuX2RhdGFbMiAqIGluZCArIDFdICogZmFjdG9yCiAgICAgICAgICByZXR1cm4g cmVzdWx0CiAgCkBAIC0zMTU0Niw3ICszMTUzNyw3IEBAIGluZGV4IGFmMjRlN2ZmMjQ1Li5iZjQy YTY1OWFlYSAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgVmVjdG9yIG9mIG1heGltdW0g b2YgY29tcG9uZW50cyBvZiBgYHNlbGZgYCBhbmQgYGBvdGhlcmBgLgogIAotQEAgLTIyNjEsNyAr MjI2MSw3IEBAIGNkZWYgY2xhc3MgRVR1cGxlOgorQEAgLTIyNzUsNyArMjI3NSw3IEBAIGNkZWYg Y2xhc3MgRVR1cGxlOgogICAgICAgICAgICAgICAgICByZXN1bHQuX25vbnplcm8gKz0gMQogICAg ICAgICAgcmV0dXJuIHJlc3VsdAogIApAQCAtMzE1NTUsNyArMzE1NDYsNyBAQCBpbmRleCBhZjI0 ZTdmZjI0NS4uYmY0MmE2NTlhZWEgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIFZlY3Rv ciBvZiBtaW5pbXVtIG9mIGNvbXBvbmVudHMgb2YgYGBzZWxmYGAgYW5kIGBgb3RoZXJgYC4KICAK LUBAIC0yMzMxLDcgKzIzMzEsNyBAQCBjZGVmIGNsYXNzIEVUdXBsZToKK0BAIC0yMzQ1LDcgKzIz NDUsNyBAQCBjZGVmIGNsYXNzIEVUdXBsZToKICAgICAgICAgICAgICByZXN1bHQgKz0gZXhwMSAq IGV4cDIKICAgICAgICAgIHJldHVybiByZXN1bHQKICAKQEAgLTMxNTY0LDcgKzMxNTU1LDcgQEAg aW5kZXggYWYyNGU3ZmYyNDUuLmJmNDJhNjU5YWVhIDEwMDY0NAogICAgICAgICAgciIiIgogICAg ICAgICAgRGl2aWRlIGVhY2ggZXhwb25lbnQgYnkgYGBuYGAuCiAgCi1AQCAtMjM3Miw3ICsyMzcy LDcgQEAgY2RlZiBjbGFzcyBFVHVwbGU6CitAQCAtMjM4Niw3ICsyMzg2LDcgQEAgY2RlZiBjbGFz cyBFVHVwbGU6CiAgICAgICAgICAgICAgICAgIHJlc3VsdC5fbm9uemVybyArPSAxCiAgICAgICAg ICByZXR1cm4gcmVzdWx0CiAgCkBAIC0zMTU3Myw3ICszMTU2NCw3IEBAIGluZGV4IGFmMjRlN2Zm MjQ1Li5iZjQyYTY1OWFlYSAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgUmV0dXJuIGBg c2VsZiAvIGdjZChzZWxmLCBvdGhlcilgYC4KICAKLUBAIC0yNDE1LDcgKzI0MTUsNyBAQCBjZGVm IGNsYXNzIEVUdXBsZToKK0BAIC0yNDI5LDcgKzI0MjksNyBAQCBjZGVmIGNsYXNzIEVUdXBsZToK ICAgICAgICAgICAgICBpbmQxICs9IDIKICAgICAgICAgIHJldHVybiByZXN1bHQKICAKQEAgLTMx NTgyLDcgKzMxNTczLDcgQEAgaW5kZXggYWYyNGU3ZmYyNDUuLmJmNDJhNjU5YWVhIDEwMDY0NAog ICAgICAgICAgIiIiCiAgICAgICAgICBSZXR1cm4gZGl2aXNpb24gb2YgYGBzZWxmYGAgYnkgdGhl IHZhcmlhYmxlIHdpdGggaW5kZXggYGBwb3NgYC4KICAKLUBAIC0yNTQyLDcgKzI1NDIsNyBAQCBj ZGVmIGNsYXNzIEVUdXBsZToKK0BAIC0yNTU2LDcgKzI1NTYsNyBAQCBjZGVmIGNsYXNzIEVUdXBs ZToKICAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAgICAgICByZXR1cm4gVHJ1ZQog IApAQCAtMzE1OTEsNyArMzE1ODIsNyBAQCBpbmRleCBhZjI0ZTdmZjI0NS4uYmY0MmE2NTlhZWEg MTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIFJldHVybiB0aGUgcG9zaXRpb25zIG9mIG5v bi16ZXJvIGV4cG9uZW50cyBpbiB0aGUgdHVwbGUuCiAgCi1AQCAtMjU2MSw3ICsyNTYxLDcgQEAg Y2RlZiBjbGFzcyBFVHVwbGU6CitAQCAtMjU3NSw3ICsyNTc1LDcgQEAgY2RlZiBjbGFzcyBFVHVw bGU6CiAgICAgICAgICBjZGVmIHNpemVfdCBpbmQKICAgICAgICAgIHJldHVybiBbc2VsZi5fZGF0 YVsyICogaW5kXSBmb3IgaW5kIGluIHJhbmdlKHNlbGYuX25vbnplcm8pXQogIApAQCAtMzE2MDAs NyArMzE1OTEsNyBAQCBpbmRleCBhZjI0ZTdmZjI0NS4uYmY0MmE2NTlhZWEgMTAwNjQ0CiAgICAg ICAgICAiIiIKICAgICAgICAgIFJldHVybnMgYW4gb3B0aW9uYWxseSBzb3J0ZWQgbGlzdCBvZiBu b24gemVybyBwb3NpdGlvbnMgZWl0aGVyCiAgICAgICAgICBpbiBzZWxmIG9yIG90aGVyLCBpLmUu IHRoZSBvbmx5IHBvc2l0aW9ucyB0aGF0IG5lZWQgdG8gYmUKLUBAIC0yNTg0LDcgKzI1ODQsNyBA QCBjZGVmIGNsYXNzIEVUdXBsZToKK0BAIC0yNTk4LDcgKzI1OTgsNyBAQCBjZGVmIGNsYXNzIEVU dXBsZToKICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgcmV0dXJuIHJlcwogIApAQCAtMzE2 MDksNyArMzE2MDAsNyBAQCBpbmRleCBhZjI0ZTdmZjI0NS4uYmY0MmE2NTlhZWEgMTAwNjQ0CiAg ICAgICAgICAiIiIKICAgICAgICAgIFJldHVybiB0aGUgbm9uLXplcm8gdmFsdWVzIG9mIHRoZSB0 dXBsZS4KICAKLUBAIC0yNjA2LDcgKzI2MDYsNyBAQCBjZGVmIGNsYXNzIEVUdXBsZToKK0BAIC0y NjIwLDcgKzI2MjAsNyBAQCBjZGVmIGNsYXNzIEVUdXBsZToKICAgICAgICAgIGNkZWYgc2l6ZV90 IGluZAogICAgICAgICAgcmV0dXJuIFtzZWxmLl9kYXRhWzIgKiBpbmQgKyAxXSBmb3IgaW5kIGlu IHJhbmdlKHNlbGYuX25vbnplcm8pXQogIApAQCAtMzE3MTIsNyArMzE3MDMsNyBAQCBpbmRleCAx MTQ1ZGZhZTdlYS4uMWExNDAwNjdhZDMgMTAwNjQ0CiAgICAgICAgICBzZWxmLnJpZ2h0ID0gc2Vs Zi5yaWdodC5ub2R1bW1pZXMoKQogICAgICAgICAgcmV0dXJuIHNlbGYKIGRpZmYgLS1naXQgYS9z cmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfY29tcGxleF9hcmIucHhkIGIvc3Jj L3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2NvbXBsZXhfYXJiLnB4ZAotaW5kZXgg MjllM2NjNGZkNjEuLmU1NGQ4NWU5NjFiIDEwMDY0NAoraW5kZXggY2ZmZTM1MmUyY2YuLmJkYTVj YzY2MDA4IDEwMDY0NAogLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFs X2NvbXBsZXhfYXJiLnB4ZAogKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9t aWFsX2NvbXBsZXhfYXJiLnB4ZAogQEAgLTMsNCArMyw0IEBAIGZyb20gc2FnZS5yaW5ncy5wb2x5 bm9taWFsLnBvbHlub21pYWxfZWxlbWVudCBjaW1wb3J0IFBvbHlub21pYWwKQEAgLTMxNzIyLDcg KzMxNzEzLDcgQEAgaW5kZXggMjllM2NjNGZkNjEuLmU1NGQ4NWU5NjFiIDEwMDY0NAogLSAgICBj ZGVmIFBvbHlub21pYWxfY29tcGxleF9hcmIgX25ldyhzZWxmKSBub2V4Y2VwdAogKyAgICBjZGVm IFBvbHlub21pYWxfY29tcGxleF9hcmIgX25ldyhzZWxmKQogZGlmZiAtLWdpdCBhL3NyYy9zYWdl L3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9jb21wbGV4X2FyYi5weXggYi9zcmMvc2FnZS9y aW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfY29tcGxleF9hcmIucHl4Ci1pbmRleCA4MWU3OTli N2E4ZC4uZWMyMmUzY2RjNDAgMTAwNjQ0CitpbmRleCBlZDUyYmIwMWI1Ni4uZGExYWRlMmVkY2Ig MTAwNjQ0CiAtLS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfY29tcGxl eF9hcmIucHl4CiArKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfY29t cGxleF9hcmIucHl4CiBAQCAtODcsNyArODcsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfY29t cGxleF9hcmIoUG9seW5vbWlhbCk6CkBAIC0zMTkzOSw3ICszMTkzMCw3IEBAIGluZGV4IDliOGJm NDFmYTA2Li5hOGYyY2YzMDU3YiAxMDA2NDQKICBjcGRlZiBiaW50IHBvbHlub21pYWxfaXNfdmFy aWFibGUoeCkgbm9leGNlcHQKICAKIGRpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9t aWFsL3BvbHlub21pYWxfZWxlbWVudC5weXggYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3Bv bHlub21pYWxfZWxlbWVudC5weXgKLWluZGV4IDk5ZjAwNjE4YmMxLi5mMDlkYzZhN2ZiZCAxMDA2 NDQKK2luZGV4IDhiNThlNDAzZDNkLi5lOWIwOWU4ZjJiNyAxMDA2NDQKIC0tLSBhL3NyYy9zYWdl L3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9lbGVtZW50LnB5eAogKysrIGIvc3JjL3NhZ2Uv cmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX2VsZW1lbnQucHl4CiBAQCAtMTM0LDcgKzEzNCw3 IEBAIGZyb20gc2FnZS5jYXRlZ29yaWVzLm1vcnBoaXNtIGNpbXBvcnQgTW9ycGhpc20KQEAgLTMy MzEwLDcgKzMyMzAxLDcgQEAgaW5kZXggOTlmMDA2MThiYzEuLmYwOWRjNmE3ZmJkIDEwMDY0NAog ICAgICAiIiIKICAgICAgQ29udmVydCBhIGRpY3QgdG8gYSBsaXN0LgogIAotQEAgLTEyODg0LDcg KzEyODg0LDcgQEAgY2RlZiBjbGFzcyBDb25zdGFudFBvbHlub21pYWxTZWN0aW9uKE1hcCk6CitA QCAtMTI4OTYsNyArMTI4OTYsNyBAQCBjZGVmIGNsYXNzIENvbnN0YW50UG9seW5vbWlhbFNlY3Rp b24oTWFwKToKICAgICAgICAgIC4uLgogICAgICAgICAgVHlwZUVycm9yOiBub3QgYSBjb25zdGFu dCBwb2x5bm9taWFsCiAgICAgICIiIgpAQCAtMzIzMTksNyArMzIzMTAsNyBAQCBpbmRleCA5OWYw MDYxOGJjMS4uZjA5ZGM2YTdmYmQgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIFRFU1RT OjoKICAKLUBAIC0xMjk5Niw3ICsxMjk5Niw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbEJhc2Vy aW5nSW5qZWN0aW9uKE1vcnBoaXNtKToKK0BAIC0xMzAwOCw3ICsxMzAwOCw3IEBAIGNkZWYgY2xh c3MgUG9seW5vbWlhbEJhc2VyaW5nSW5qZWN0aW9uKE1vcnBoaXNtKToKICAgICAgICAgIHNlbGYu X3JlcHJfdHlwZV9zdHIgPSAiUG9seW5vbWlhbCBiYXNlIGluamVjdGlvbiIKICAgICAgICAgIHNl bGYuX25ld19jb25zdGFudF9wb2x5XyA9IHNlbGYuX2FuX2VsZW1lbnQuX25ld19jb25zdGFudF9w b2x5CiAgCkBAIC0zMjMyOCw3ICszMjMxOSw3IEBAIGluZGV4IDk5ZjAwNjE4YmMxLi5mMDlkYzZh N2ZiZCAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgRVhBTVBMRVM6OgogIAotQEAgLTEz MDE0LDcgKzEzMDE0LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsQmFzZXJpbmdJbmplY3Rpb24o TW9ycGhpc20pOgorQEAgLTEzMDI2LDcgKzEzMDI2LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFs QmFzZXJpbmdJbmplY3Rpb24oTW9ycGhpc20pOgogICAgICAgICAgICAgICAgICBfbmV3X2NvbnN0 YW50X3BvbHlfPXNlbGYuX25ld19jb25zdGFudF9wb2x5XykKICAgICAgICAgIHJldHVybiBzbG90 cwogIApAQCAtMzIzMzcsNyArMzIzMjgsNyBAQCBpbmRleCA5OWYwMDYxOGJjMS4uZjA5ZGM2YTdm YmQgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIEVYQU1QTEVTOjoKICAKLUBAIC0xMzAz MCw3ICsxMzAzMCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbEJhc2VyaW5nSW5qZWN0aW9uKE1v cnBoaXNtKToKK0BAIC0xMzA0Miw3ICsxMzA0Miw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbEJh c2VyaW5nSW5qZWN0aW9uKE1vcnBoaXNtKToKICAgICAgICAgIHNlbGYuX2FuX2VsZW1lbnQgPSBf c2xvdHNbJ19hbl9lbGVtZW50J10KICAgICAgICAgIHNlbGYuX25ld19jb25zdGFudF9wb2x5XyA9 IF9zbG90c1snX25ld19jb25zdGFudF9wb2x5XyddCiAgCkBAIC0zMjM0Niw3ICszMjMzNyw3IEBA IGluZGV4IDk5ZjAwNjE4YmMxLi5mMDlkYzZhN2ZiZCAxMDA2NDQKICAgICAgICAgICIiIgogICAg ICAgICAgVEVTVFM6OgogIAotQEAgLTEzMDQ2LDcgKzEzMDQ2LDcgQEAgY2RlZiBjbGFzcyBQb2x5 bm9taWFsQmFzZXJpbmdJbmplY3Rpb24oTW9ycGhpc20pOgorQEAgLTEzMDU4LDcgKzEzMDU4LDcg QEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsQmFzZXJpbmdJbmplY3Rpb24oTW9ycGhpc20pOgogICAg ICAgICAgIiIiCiAgICAgICAgICByZXR1cm4gc2VsZi5fbmV3X2NvbnN0YW50X3BvbHlfKHgsIHNl bGYuX2NvZG9tYWluKQogIApAQCAtMzIzODMsNyArMzIzNzQsNyBAQCBpbmRleCBiODhjMmE2NmE3 Ni4uYjFiNTkzZDZhMjYgMTAwNjQ0CiArICAgIGNwZGVmIF91bnNhZmVfbXV0YXRlKHNlbGYsIGxv bmcgbiwgdmFsdWUpCiArICAgIGNwZGVmIEludGVnZXIgY29udGVudChzZWxmKQogZGlmZiAtLWdp dCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9pbnRlZ2VyX2RlbnNlX2Zs aW50LnB5eCBiL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9pbnRlZ2VyX2Rl bnNlX2ZsaW50LnB5eAotaW5kZXggMDRlNzk0MGFmNTUuLmFhMmE3NTA2OTk5IDEwMDY0NAoraW5k ZXggZThjMDE0OTcyZjYuLjNmMzhmMjNmZmRjIDEwMDY0NAogLS0tIGEvc3JjL3NhZ2UvcmluZ3Mv cG9seW5vbWlhbC9wb2x5bm9taWFsX2ludGVnZXJfZGVuc2VfZmxpbnQucHl4CiArKysgYi9zcmMv c2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfaW50ZWdlcl9kZW5zZV9mbGludC5weXgK IEBAIC0xMDksNyArMTA5LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2ludGVnZXJfZGVuc2Vf ZmxpbnQoUG9seW5vbWlhbCk6CkBAIC0zMjY0MCw3ICszMjYzMSw3IEBAIGluZGV4IGY0NzZkYzc4 MmNlLi42OTM0YWNmZWU4ZCAxMDA2NDQKICBjZGVmIGNsYXNzIFBvbHlub21pYWxfZGVuc2VfbW9k X3AoUG9seW5vbWlhbF9kZW5zZV9tb2Rfbik6CiAgICAgIHBhc3MKIGRpZmYgLS1naXQgYS9zcmMv c2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfbW9kbl9kZW5zZV9udGwucHl4IGIvc3Jj L3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX21vZG5fZGVuc2VfbnRsLnB5eAotaW5k ZXggYjVmNGM3ZmVkMDQuLjAyZWQyMTMzMWViIDEwMDY0NAoraW5kZXggYzlkOWNhMjQ4NjguLjMx ZGM4NTBlOTgyIDEwMDY0NAogLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9wb2x5bm9t aWFsX21vZG5fZGVuc2VfbnRsLnB5eAogKysrIGIvc3JjL3NhZ2UvcmluZ3MvcG9seW5vbWlhbC9w b2x5bm9taWFsX21vZG5fZGVuc2VfbnRsLnB5eAogQEAgLTE4OCw3ICsxODgsNyBAQCBjZGVmIGNs YXNzIFBvbHlub21pYWxfZGVuc2VfbW9kX24oUG9seW5vbWlhbCk6CkBAIC0zMjc2NCw3ICszMjc1 NSw3IEBAIGluZGV4IGI1ZjRjN2ZlZDA0Li4wMmVkMjEzMzFlYiAxMDA2NDQKICAgICAgICAgICIi IgogICAgICAgICAgVEVTVFM6OgogIAotQEAgLTkzOCw3ICs5MzgsNyBAQCBjZGVmIGNsYXNzIFBv bHlub21pYWxfZGVuc2VfbW9kbl9udGxfenooUG9seW5vbWlhbF9kZW5zZV9tb2Rfbik6CitAQCAt OTQ1LDcgKzk0NSw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9kZW5zZV9tb2RuX250bF96eihQ b2x5bm9taWFsX2RlbnNlX21vZF9uKToKICAgICAgICAgIHNpZ19vZmYoKQogICAgICAgICAgcmV0 dXJuIHEsIHIKICAKQEAgLTMyNzczLDcgKzMyNzY0LDcgQEAgaW5kZXggYjVmNGM3ZmVkMDQuLjAy ZWQyMTMzMWViIDEwMDY0NAogICAgICAgICAgIiIiCiAgICAgICAgICBSZXR1cm4gdGhlIHdob2xl IHBhcnQgb2YgYGBzZWxmYGAvYGByaWdodGBgLCB3aXRob3V0IHJlbWFpbmRlci4KICAKLUBAIC05 NjIsNyArOTYyLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2RlbnNlX21vZG5fbnRsX3p6KFBv bHlub21pYWxfZGVuc2VfbW9kX24pOgorQEAgLTk2OSw3ICs5NjksNyBAQCBjZGVmIGNsYXNzIFBv bHlub21pYWxfZGVuc2VfbW9kbl9udGxfenooUG9seW5vbWlhbF9kZW5zZV9tb2Rfbik6CiAgICAg ICAgICBzaWdfb2ZmKCkKICAgICAgICAgIHJldHVybiBxCiAgCkBAIC0zMjc4Miw3ICszMjc3Myw3 IEBAIGluZGV4IGI1ZjRjN2ZlZDA0Li4wMmVkMjEzMzFlYiAxMDA2NDQKICAgICAgICAgICIiIgog ICAgICAgICAgRVhBTVBMRVM6OgogIAotQEAgLTExNjksNyArMTE2OSw3IEBAIGNkZWYgY2xhc3Mg UG9seW5vbWlhbF9kZW5zZV9tb2RuX250bF96eihQb2x5bm9taWFsX2RlbnNlX21vZF9uKToKK0BA IC0xMTc2LDcgKzExNzYsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZGVuc2VfbW9kbl9udGxf enooUG9seW5vbWlhbF9kZW5zZV9tb2Rfbik6CiAgICAgICAgICAiIiIKICAgICAgICAgIHJldHVy biB6el9wWF9kZWcoc2VsZi54KQogIApAQCAtMzI3OTEsNyArMzI3ODIsNyBAQCBpbmRleCBiNWY0 YzdmZWQwNC4uMDJlZDIxMzMxZWIgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIFJldHVy biB0aGlzIHBvbHlub21pYWwgbW9kIGB4Xm5gLgogIAotQEAgLTEyNTAsMTcgKzEyNTAsMTcgQEAg Y2RlZiBjbGFzcyBQb2x5bm9taWFsX2RlbnNlX21vZG5fbnRsX1paKFBvbHlub21pYWxfZGVuc2Vf bW9kX24pOgorQEAgLTEyNTcsMTcgKzEyNTcsMTcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2Rl bnNlX21vZG5fbnRsX1paKFBvbHlub21pYWxfZGVuc2VfbW9kX24pOgogICAgICAgICAgaWYgPG9i amVjdD5zZWxmLmMgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgc2VsZi5jLnJlc3RvcmVfYygp CiAgCkBAIC0zMjgxMiw3ICszMjgwMyw3IEBAIGluZGV4IGI1ZjRjN2ZlZDA0Li4wMmVkMjEzMzFl YiAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgUmV0dXJuIHRoZSBgbmAtdGggY29lZmZp Y2llbnQgb2YgYGBzZWxmYGAuCiAgCi1AQCAtMTI5Miw3ICsxMjkyLDcgQEAgY2RlZiBjbGFzcyBQ b2x5bm9taWFsX2RlbnNlX21vZG5fbnRsX1paKFBvbHlub21pYWxfZGVuc2VfbW9kX24pOgorQEAg LTEyOTksNyArMTI5OSw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9kZW5zZV9tb2RuX250bF9a WihQb2x5bm9taWFsX2RlbnNlX21vZF9uKToKICAgICAgICAgIGNkZWYgbnRsX1paX3AgdmFsID0g bnRsX1paX3AoYSwgc2VsZi5jKQogICAgICAgICAgWlpfcFhfU2V0Q29lZmYoc2VsZi54LCBuLCB2 YWwueCkKICAKQEAgLTMyODIxLDcgKzMyODEyLDcgQEAgaW5kZXggYjVmNGM3ZmVkMDQuLjAyZWQy MTMzMWViIDEwMDY0NAogICAgICAgICAgIiIiCiAgICAgICAgICBURVNUUzo6CiAgCi1AQCAtMTMw OSw3ICsxMzA5LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2RlbnNlX21vZG5fbnRsX1paKFBv bHlub21pYWxfZGVuc2VfbW9kX24pOgorQEAgLTEzMTYsNyArMTMxNiw3IEBAIGNkZWYgY2xhc3Mg UG9seW5vbWlhbF9kZW5zZV9tb2RuX250bF9aWihQb2x5bm9taWFsX2RlbnNlX21vZF9uKToKICAg ICAgICAgIGlmIGRvX3NpZzogc2lnX29mZigpCiAgICAgICAgICByZXR1cm4gcgogIApAQCAtMzI4 MzAsNyArMzI4MjEsNyBAQCBpbmRleCBiNWY0YzdmZWQwNC4uMDJlZDIxMzMxZWIgMTAwNjQ0CiAg ICAgICAgICAiIiIKICAgICAgICAgIFRFU1RTOjoKICAKLUBAIC0xMzI2LDcgKzEzMjYsNyBAQCBj ZGVmIGNsYXNzIFBvbHlub21pYWxfZGVuc2VfbW9kbl9udGxfWlooUG9seW5vbWlhbF9kZW5zZV9t b2Rfbik6CitAQCAtMTMzMyw3ICsxMzMzLDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2RlbnNl X21vZG5fbnRsX1paKFBvbHlub21pYWxfZGVuc2VfbW9kX24pOgogICAgICAgICAgaWYgZG9fc2ln OiBzaWdfb2ZmKCkKICAgICAgICAgIHJldHVybiByCiAgCkBAIC0zMjgzOSw3ICszMjgzMCw3IEBA IGluZGV4IGI1ZjRjN2ZlZDA0Li4wMmVkMjEzMzFlYiAxMDA2NDQKICAgICAgICAgICIiIgogICAg ICAgICAgVEVTVFM6OgogIAotQEAgLTEzNDYsNyArMTM0Niw3IEBAIGNkZWYgY2xhc3MgUG9seW5v bWlhbF9kZW5zZV9tb2RuX250bF9aWihQb2x5bm9taWFsX2RlbnNlX21vZF9uKToKK0BAIC0xMzUz LDcgKzEzNTMsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZGVuc2VfbW9kbl9udGxfWlooUG9s eW5vbWlhbF9kZW5zZV9tb2Rfbik6CiAgICAgICAgICBpZiBkb19zaWc6IHNpZ19vZmYoKQogICAg ICAgICAgcmV0dXJuIHIKICAKQEAgLTMyODQ4LDcgKzMyODM5LDcgQEAgaW5kZXggYjVmNGM3ZmVk MDQuLjAyZWQyMTMzMWViIDEwMDY0NAogICAgICAgICAgIiIiCiAgICAgICAgICBSZXR1cm4gdGhl IHByb2R1Y3Qgb2YgYGBzZWxmYGAgYW5kIGBgcmlnaHRgYCB0cnVuY2F0ZWQgdG8gdGhlCiAgICAg ICAgICBnaXZlbiBsZW5ndGggYG5gLCBvbmx5IHJldHVybiB0ZXJtcyBvZiBkZWdyZWUgbGVzcyB0 aGFuIGBuYC4KLUBAIC0xMzg0LDcgKzEzODQsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZGVu c2VfbW9kbl9udGxfWlooUG9seW5vbWlhbF9kZW5zZV9tb2Rfbik6CitAQCAtMTM5MSw3ICsxMzkx LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX2RlbnNlX21vZG5fbnRsX1paKFBvbHlub21pYWxf ZGVuc2VfbW9kX24pOgogICAgICAgICAgaWYgZG9fc2lnOiBzaWdfb2ZmKCkKICAgICAgICAgIHJl dHVybiByCiAgCkBAIC0zMjg1Nyw3ICszMjg0OCw3IEBAIGluZGV4IGI1ZjRjN2ZlZDA0Li4wMmVk MjEzMzFlYiAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgVEVTVFM6OgogIAotQEAgLTE0 MDEsNyArMTQwMSw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9kZW5zZV9tb2RuX250bF9aWihQ b2x5bm9taWFsX2RlbnNlX21vZF9uKToKK0BAIC0xNDA4LDcgKzE0MDgsNyBAQCBjZGVmIGNsYXNz IFBvbHlub21pYWxfZGVuc2VfbW9kbl9udGxfWlooUG9seW5vbWlhbF9kZW5zZV9tb2Rfbik6CiAg ICAgICAgICBpZiBkb19zaWc6IHNpZ19vZmYoKQogICAgICAgICAgcmV0dXJuIHIKICAKQEAgLTMy ODY2LDcgKzMyODU3LDcgQEAgaW5kZXggYjVmNGM3ZmVkMDQuLjAyZWQyMTMzMWViIDEwMDY0NAog ICAgICAgICAgIiIiCiAgICAgICAgICBURVNUUzo6CiAgCi1AQCAtMTQ5NSw3ICsxNDk1LDcgQEAg Y2RlZiBjbGFzcyBQb2x5bm9taWFsX2RlbnNlX21vZG5fbnRsX1paKFBvbHlub21pYWxfZGVuc2Vf bW9kX24pOgorQEAgLTE1MDIsNyArMTUwMiw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9kZW5z ZV9tb2RuX250bF9aWihQb2x5bm9taWFsX2RlbnNlX21vZF9uKToKICAgICAgICAgIHNpZ19vZmYo KQogICAgICAgICAgcmV0dXJuIHEsIHIKICAKQEAgLTMyODc1LDcgKzMyODY2LDcgQEAgaW5kZXgg YjVmNGM3ZmVkMDQuLjAyZWQyMTMzMWViIDEwMDY0NAogICAgICAgICAgIiIiCiAgICAgICAgICBS ZXR1cm4gdGhlIHdob2xlIHBhcnQgb2YgYGBzZWxmYGAgLyBgYHJpZ2h0YGAsIHdpdGhvdXQgcmVt YWluZGVyLgogIAotQEAgLTE1MTksNyArMTUxOSw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9k ZW5zZV9tb2RuX250bF9aWihQb2x5bm9taWFsX2RlbnNlX21vZF9uKToKK0BAIC0xNTI2LDcgKzE1 MjYsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfZGVuc2VfbW9kbl9udGxfWlooUG9seW5vbWlh bF9kZW5zZV9tb2Rfbik6CiAgICAgICAgICBzaWdfb2ZmKCkKICAgICAgICAgIHJldHVybiBxCiAg CkBAIC0zMjg4NCw3ICszMjg3NSw3IEBAIGluZGV4IGI1ZjRjN2ZlZDA0Li4wMmVkMjEzMzFlYiAx MDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgRVhBTVBMRVM6OgogIAotQEAgLTE3MzAsNyAr MTczMCw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF9kZW5zZV9tb2RuX250bF9aWihQb2x5bm9t aWFsX2RlbnNlX21vZF9uKToKK0BAIC0xNzM3LDcgKzE3MzcsNyBAQCBjZGVmIGNsYXNzIFBvbHlu b21pYWxfZGVuc2VfbW9kbl9udGxfWlooUG9seW5vbWlhbF9kZW5zZV9tb2Rfbik6CiAgICAgICAg ICAiIiIKICAgICAgICAgIHJldHVybiBaWl9wWF9kZWcoc2VsZi54KQogIApAQCAtMzI5MTEsNyAr MzI5MDIsNyBAQCBpbmRleCBkYWNjYTk4NzgzMC4uZjQ2NDRmMTlkMDQgMTAwNjQ0CiArICAgIGNw ZGVmIFBvbHlub21pYWwgdHJ1bmNhdGUoc2VsZiwgbG9uZyBuKQogIAogZGlmZiAtLWdpdCBhL3Ny Yy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9yYXRpb25hbF9mbGludC5weXggYi9z cmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQucHl4Ci1p bmRleCBlYjUzNDQ3NGViNy4uM2VjMmViMDMzMDIgMTAwNjQ0CitpbmRleCAwMzgyMjM5Y2Y0OC4u YzY3ZGRmMWE0YzUgMTAwNjQ0CiAtLS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlu b21pYWxfcmF0aW9uYWxfZmxpbnQucHl4CiArKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFs L3BvbHlub21pYWxfcmF0aW9uYWxfZmxpbnQucHl4CiBAQCAtMTA5LDcgKzEwOSw3IEBAIGNkZWYg Y2xhc3MgUG9seW5vbWlhbF9yYXRpb25hbF9mbGludChQb2x5bm9taWFsKToKQEAgLTMzMDUwLDcg KzMzMDQxLDcgQEAgaW5kZXggZWI1MzQ0NzRlYjcuLjNlYzJlYjAzMzAyIDEwMDY0NAogICAgICAg ICAgUmV0dXJuIHRoZSByZW1haW5kZXIgb2YgYGBzZWxmYGAgYW5kIGBgcmlnaHRgYCBvYnRhaW4g YnkgRXVjbGlkZWFuIGRpdmlzaW9uLgogIAogZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3Bv bHlub21pYWwvcG9seW5vbWlhbF9yZWFsX21wZnJfZGVuc2UucHl4IGIvc3JjL3NhZ2UvcmluZ3Mv cG9seW5vbWlhbC9wb2x5bm9taWFsX3JlYWxfbXBmcl9kZW5zZS5weXgKLWluZGV4IDU3M2Y3ODhk NjhjLi4yYmYwMDU1NzdhYiAxMDA2NDQKK2luZGV4IDAwNjA4ZjczNDAzLi45YWFlODRhMzE0MyAx MDA2NDQKIC0tLSBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF9yZWFsX21w ZnJfZGVuc2UucHl4CiArKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxf cmVhbF9tcGZyX2RlbnNlLnB5eAogQEAgLTE4NCw3ICsxODQsNyBAQCBjZGVmIGNsYXNzIFBvbHlu b21pYWxSZWFsRGVuc2UoUG9seW5vbWlhbCk6CkBAIC0zMzE2Niw3ICszMzE1Nyw3IEBAIGluZGV4 IDNiZTI1ZjgyOWM0Li43ZTNlMjdkZDUyMCAxMDA2NDQKICAgICAgICAgIEV2YWx1YXRlIGBgc2Vs ZmBgIGF0IGBgeGBgIHdpdGggYWRkaXRpb25hbCAoa2V5d29yZCkgYXJndW1lbnRzLgogIAogZGlm ZiAtLWdpdCBhL3NyYy9zYWdlL3JpbmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF90ZW1wbGF0ZS5w eGkgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21pYWxfdGVtcGxhdGUucHhpCi1p bmRleCAyNjdiODc5ODY3Yi4uMzA1YTI0Mzg0YTAgMTAwNjQ0CitpbmRleCAwMmM0OTRjNzNhZC4u NmQ5NjIxZWFjNjcgMTAwNjQ0CiAtLS0gYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlu b21pYWxfdGVtcGxhdGUucHhpCiArKysgYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlu b21pYWxfdGVtcGxhdGUucHhpCiBAQCAtMjksNyArMjksNyBAQCBmcm9tIHNhZ2UuaW50ZXJmYWNl cy5zaW5ndWxhciBpbXBvcnQgc2luZ3VsYXIgYXMgc2luZ3VsYXJfZGVmYXVsdApAQCAtMzMyMjMs NyArMzMyMTQsNyBAQCBpbmRleCAyNjdiODc5ODY3Yi4uMzA1YTI0Mzg0YTAgMTAwNjQ0CiAgICAg ICAgICAiIiIKICAgICAgICAgIEVYQU1QTEVTOjoKICAKLUBAIC00MDksNyArNDA5LDcgQEAgY2Rl ZiBjbGFzcyBQb2x5bm9taWFsX3RlbXBsYXRlKFBvbHlub21pYWwpOgorQEAgLTQzMyw3ICs0MzMs NyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfdGVtcGxhdGUoUG9seW5vbWlhbCk6CiAgICAgICAg ICAjYXNzZXJ0KHQuX3BhcmVudCh0cCkgPT0gdCkKICAgICAgICAgIHJldHVybiByLHMsdAogIApA QCAtMzMyMzIsNyArMzMyMjMsNyBAQCBpbmRleCAyNjdiODc5ODY3Yi4uMzA1YTI0Mzg0YTAgMTAw NjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIEVYQU1QTEVTOjoKICAKLUBAIC00NDQsNyArNDQ0 LDcgQEAgY2RlZiBjbGFzcyBQb2x5bm9taWFsX3RlbXBsYXRlKFBvbHlub21pYWwpOgorQEAgLTQ2 OCw3ICs0NjgsNyBAQCBjZGVmIGNsYXNzIFBvbHlub21pYWxfdGVtcGxhdGUoUG9seW5vbWlhbCk6 CiAgICAgICAgICBjZWxlbWVudF9mbG9vcmRpdigmci54LCAmKDxQb2x5bm9taWFsX3RlbXBsYXRl PnNlbGYpLngsICYoPFBvbHlub21pYWxfdGVtcGxhdGU+cmlnaHQpLngsICg8UG9seW5vbWlhbF90 ZW1wbGF0ZT5zZWxmKS5fY3BhcmVudCkKICAgICAgICAgIHJldHVybiByCiAgCkBAIC0zMzI0MSw3 ICszMzIzMiw3IEBAIGluZGV4IDI2N2I4Nzk4NjdiLi4zMDVhMjQzODRhMCAxMDA2NDQKICAgICAg ICAgICIiIgogICAgICAgICAgRVhBTVBMRVM6OgogIAotQEAgLTUxMyw3ICs1MTMsNyBAQCBjZGVm IGNsYXNzIFBvbHlub21pYWxfdGVtcGxhdGUoUG9seW5vbWlhbCk6CitAQCAtNTM3LDcgKzUzNyw3 IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF90ZW1wbGF0ZShQb2x5bm9taWFsKToKICAgICAgICAg ICIiIgogICAgICAgICAgcmV0dXJuIG5vdCBjZWxlbWVudF9pc196ZXJvKCZzZWxmLngsICg8UG9s eW5vbWlhbF90ZW1wbGF0ZT5zZWxmKS5fY3BhcmVudCkKICAKQEAgLTMzMjUwLDcgKzMzMjQxLDcg QEAgaW5kZXggMjY3Yjg3OTg2N2IuLjMwNWEyNDM4NGEwIDEwMDY0NAogICAgICAgICAgIiIiCiAg ICAgICAgICBFWEFNUExFUzo6CiAgCi1AQCAtNzMxLDcgKzczMSw3IEBAIGNkZWYgY2xhc3MgUG9s eW5vbWlhbF90ZW1wbGF0ZShQb2x5bm9taWFsKToKK0BAIC03ODAsNyArNzgwLDcgQEAgY2RlZiBj bGFzcyBQb2x5bm9taWFsX3RlbXBsYXRlKFBvbHlub21pYWwpOgogICAgICAgICAgIiIiCiAgICAg ICAgICByZXR1cm4gSW50ZWdlcihjZWxlbWVudF9sZW4oJnNlbGYueCwgKDxQb2x5bm9taWFsX3Rl bXBsYXRlPnNlbGYpLl9jcGFyZW50KS0xKQogIApAQCAtMzMyODYsNyArMzMyNzcsNyBAQCBpbmRl eCA4ODdmNDZlYTZlYi4uYzZhOTJmM2RmNmMgMTAwNjQ0CiArICAgIGNwZGVmIFBvbHlub21pYWwg X211bF90cnVuY19vcHBvc2l0ZShzZWxmLCBQb2x5bm9taWFsX3ptb2RfZmxpbnQgb3RoZXIsIGxl bmd0aCkKICsgICAgY3BkZWYgcmF0aW9uYWxfcmVjb25zdHJ1Y3Rpb24oc2VsZiwgbSwgbl9kZWc9 PywgZF9kZWc9PykKIGRpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlu b21pYWxfem1vZF9mbGludC5weXggYi9zcmMvc2FnZS9yaW5ncy9wb2x5bm9taWFsL3BvbHlub21p YWxfem1vZF9mbGludC5weXgKLWluZGV4IDgzOTBmYWIxNGI0Li4yZGY1NTM3NTVmNyAxMDA2NDQK K2luZGV4IDM1MmQ3YzdlMzZmLi5kMDgzOTVkYzhlOCAxMDA2NDQKIC0tLSBhL3NyYy9zYWdlL3Jp bmdzL3BvbHlub21pYWwvcG9seW5vbWlhbF96bW9kX2ZsaW50LnB5eAogKysrIGIvc3JjL3NhZ2Uv cmluZ3MvcG9seW5vbWlhbC9wb2x5bm9taWFsX3ptb2RfZmxpbnQucHl4CiBAQCAtMTIyLDcgKzEy Miw3IEBAIGNkZWYgY2xhc3MgUG9seW5vbWlhbF96bW9kX2ZsaW50KFBvbHlub21pYWxfdGVtcGxh dGUpOgpAQCAtMzM4NDgsMTAgKzMzODM5LDEwIEBAIGluZGV4IGY2NmU3YjZlOTA0Li4xNTA1YTQ5 YTk5NSAxMDA2NDQKICAgICAgICAgIEVYQU1QTEVTOjoKICAKIGRpZmYgLS1naXQgYS9zcmMvc2Fn ZS9yaW5ncy9wdWlzZXV4X3Nlcmllc19yaW5nX2VsZW1lbnQucHl4IGIvc3JjL3NhZ2UvcmluZ3Mv cHVpc2V1eF9zZXJpZXNfcmluZ19lbGVtZW50LnB5eAotaW5kZXggM2Y1MGZiNDVlMmUuLjM0ZjRl OTY2YWFkIDEwMDY0NAoraW5kZXggMzNkMDMyNjkzMDIuLjIxYjFjYjViNzBmIDEwMDY0NAogLS0t IGEvc3JjL3NhZ2UvcmluZ3MvcHVpc2V1eF9zZXJpZXNfcmluZ19lbGVtZW50LnB5eAogKysrIGIv c3JjL3NhZ2UvcmluZ3MvcHVpc2V1eF9zZXJpZXNfcmluZ19lbGVtZW50LnB5eAotQEAgLTM1NCw3 ICszNTQsNyBAQCBjZGVmIGNsYXNzIFB1aXNldXhTZXJpZXMoQWxnZWJyYUVsZW1lbnQpOgorQEAg LTM1Niw3ICszNTYsNyBAQCBjZGVmIGNsYXNzIFB1aXNldXhTZXJpZXMoQWxnZWJyYUVsZW1lbnQp OgogICAgICAgICAgbiA9IGcgLyBuCiAgICAgICAgICByZXR1cm4gZywgbSwgbgogIApAQCAtMzM4 NjAsNyArMzM4NTEsNyBAQCBpbmRleCAzZjUwZmI0NWUyZS4uMzRmNGU5NjZhYWQgMTAwNjQ0CiAg ICAgICAgICAiIiIKICAgICAgICAgIFJldHVybiB0aGUgc3VtLgogIAotQEAgLTM3Niw3ICszNzYs NyBAQCBjZGVmIGNsYXNzIFB1aXNldXhTZXJpZXMoQWxnZWJyYUVsZW1lbnQpOgorQEAgLTM3OCw3 ICszNzgsNyBAQCBjZGVmIGNsYXNzIFB1aXNldXhTZXJpZXMoQWxnZWJyYUVsZW1lbnQpOgogICAg ICAgICAgbCA9IGwxICsgbDIKICAgICAgICAgIHJldHVybiB0eXBlKHNlbGYpKHNlbGYuX3BhcmVu dCwgbCwgZykKICAKQEAgLTMzODY5LDcgKzMzODYwLDcgQEAgaW5kZXggM2Y1MGZiNDVlMmUuLjM0 ZjRlOTY2YWFkIDEwMDY0NAogICAgICAgICAgIiIiCiAgICAgICAgICBSZXR1cm4gdGhlIGRpZmZl cmVuY2UuCiAgCi1AQCAtMzk4LDcgKzM5OCw3IEBAIGNkZWYgY2xhc3MgUHVpc2V1eFNlcmllcyhB bGdlYnJhRWxlbWVudCk6CitAQCAtNDAwLDcgKzQwMCw3IEBAIGNkZWYgY2xhc3MgUHVpc2V1eFNl cmllcyhBbGdlYnJhRWxlbWVudCk6CiAgICAgICAgICBsID0gbDEgLSBsMgogICAgICAgICAgcmV0 dXJuIHR5cGUoc2VsZikoc2VsZi5fcGFyZW50LCBsLCBnKQogIApAQCAtMzM4NzgsNyArMzM4Njks NyBAQCBpbmRleCAzZjUwZmI0NWUyZS4uMzRmNGU5NjZhYWQgMTAwNjQ0CiAgICAgICAgICAiIiIK ICAgICAgICAgIFJldHVybiB0aGUgcHJvZHVjdC4KICAKLUBAIC00MjAsNyArNDIwLDcgQEAgY2Rl ZiBjbGFzcyBQdWlzZXV4U2VyaWVzKEFsZ2VicmFFbGVtZW50KToKK0BAIC00MjIsNyArNDIyLDcg QEAgY2RlZiBjbGFzcyBQdWlzZXV4U2VyaWVzKEFsZ2VicmFFbGVtZW50KToKICAgICAgICAgIGwg PSBsMSAqIGwyCiAgICAgICAgICByZXR1cm4gdHlwZShzZWxmKShzZWxmLl9wYXJlbnQsIGwsIGcp CiAgCkBAIC0zMzg4Nyw3ICszMzg3OCw3IEBAIGluZGV4IDNmNTBmYjQ1ZTJlLi4zNGY0ZTk2NmFh ZCAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgUmV0dXJuIHRoZSByaWdodCBzY2FsYXIg bXVsdGlwbGljYXRpb24uCiAgCi1AQCAtNDMzLDcgKzQzMyw3IEBAIGNkZWYgY2xhc3MgUHVpc2V1 eFNlcmllcyhBbGdlYnJhRWxlbWVudCk6CitAQCAtNDM1LDcgKzQzNSw3IEBAIGNkZWYgY2xhc3Mg UHVpc2V1eFNlcmllcyhBbGdlYnJhRWxlbWVudCk6CiAgICAgICAgICAiIiIKICAgICAgICAgIHJl dHVybiB0eXBlKHNlbGYpKHNlbGYuX3BhcmVudCwgc2VsZi5fbC5fcm11bF8oYyksIHNlbGYuX2Up CiAgCkBAIC0zMzg5Niw3ICszMzg4Nyw3IEBAIGluZGV4IDNmNTBmYjQ1ZTJlLi4zNGY0ZTk2NmFh ZCAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgUmV0dXJuIHRoZSBsZWZ0IHNjYWxhciBt dWx0aXBsaWNhdGlvbi4KICAKLUBAIC00NDYsNyArNDQ2LDcgQEAgY2RlZiBjbGFzcyBQdWlzZXV4 U2VyaWVzKEFsZ2VicmFFbGVtZW50KToKK0BAIC00NDgsNyArNDQ4LDcgQEAgY2RlZiBjbGFzcyBQ dWlzZXV4U2VyaWVzKEFsZ2VicmFFbGVtZW50KToKICAgICAgICAgICIiIgogICAgICAgICAgcmV0 dXJuIHR5cGUoc2VsZikoc2VsZi5fcGFyZW50LCBzZWxmLl9sLl9sbXVsXyhjKSwgc2VsZi5fZSkK ICAKQEAgLTMzOTA1LDcgKzMzODk2LDcgQEAgaW5kZXggM2Y1MGZiNDVlMmUuLjM0ZjRlOTY2YWFk IDEwMDY0NAogICAgICAgICAgIiIiCiAgICAgICAgICBSZXR1cm4gdGhlIHF1b3RpZW50LgogIAot QEAgLTUwOCw3ICs1MDgsNyBAQCBjZGVmIGNsYXNzIFB1aXNldXhTZXJpZXMoQWxnZWJyYUVsZW1l bnQpOgorQEAgLTUxMCw3ICs1MTAsNyBAQCBjZGVmIGNsYXNzIFB1aXNldXhTZXJpZXMoQWxnZWJy YUVsZW1lbnQpOgogICAgICAgICAgICAgIGUgPSBzZWxmLl9lICogaW50KGRlbm9tKQogICAgICAg ICAgcmV0dXJuIHR5cGUoc2VsZikoc2VsZi5fcGFyZW50LCBsLCBlKQogIApAQCAtMzM5NDUsNyAr MzM5MzYsNyBAQCBpbmRleCBmODBlYzIyZTlhOS4uZjQyZjg2NTE1ZDMgMTAwNjQ0CiAtICAgIGNk ZWYgX3ZhbF91bml0KHNlbGYsIGludGVnZXIuSW50ZWdlciBwKSBub2V4Y2VwdAogKyAgICBjZGVm IF92YWxfdW5pdChzZWxmLCBpbnRlZ2VyLkludGVnZXIgcCkKIGRpZmYgLS1naXQgYS9zcmMvc2Fn ZS9yaW5ncy9yYXRpb25hbC5weXggYi9zcmMvc2FnZS9yaW5ncy9yYXRpb25hbC5weXgKLWluZGV4 IDYyMDkxMzg2ZTVkLi5lYmZiNzRjODlhNiAxMDA2NDQKK2luZGV4IGY3ZmQ5OTFiODE3Li45MmZh NmZkOGZjMyAxMDA2NDQKIC0tLSBhL3NyYy9zYWdlL3JpbmdzL3JhdGlvbmFsLnB5eAogKysrIGIv c3JjL3NhZ2UvcmluZ3MvcmF0aW9uYWwucHl4CiBAQCAtMTQzLDcgKzE0Myw3IEBAIGNkZWYgaW5s aW5lIHZvaWQgc2V0X2Zyb21fUmF0aW9uYWwoUmF0aW9uYWwgc2VsZiwgUmF0aW9uYWwgb3RoZXIp IG5vZXhjZXB0OgpAQCAtMzQxNTUsNyArMzQxNDYsNyBAQCBpbmRleCA2MjA5MTM4NmU1ZC4uZWJm Yjc0Yzg5YTYgMTAwNjQ0CiAgICAgICAgICBSZXR1cm4gdGhlIGltYWdlIG9mIHRoZSBtb3JwaGlz bSBvbiBgYGFgYC4KICAKIGRpZmYgLS1naXQgYS9zcmMvc2FnZS9yaW5ncy9yZWFsX2FyYi5weGQg Yi9zcmMvc2FnZS9yaW5ncy9yZWFsX2FyYi5weGQKLWluZGV4IDBhM2E2OGQxMDU3Li45Zjg1Njhl ZjZhZiAxMDA2NDQKK2luZGV4IDI2M2E0MTFlZTEwLi42NzQzZmExYzgwYiAxMDA2NDQKIC0tLSBh L3NyYy9zYWdlL3JpbmdzL3JlYWxfYXJiLnB4ZAogKysrIGIvc3JjL3NhZ2UvcmluZ3MvcmVhbF9h cmIucHhkCiBAQCAtOSwxMiArOSwxMiBAQCBjZGVmIGludCBhcmJfdG9fbXBmaShtcGZpX3QgdGFy Z2V0LCBhcmJfdCBzb3VyY2UsIGNvbnN0IGxvbmcgcHJlY2lzaW9uKSBleGNlcHQgLQpAQCAtMzQx NzcsMTAgKzM0MTY4LDEwIEBAIGluZGV4IDBhM2E2OGQxMDU3Li45Zjg1NjhlZjZhZiAxMDA2NDQK ICAgICAgICAgIHJlcy5fcGFyZW50ID0gc2VsZi5fcGFyZW50CiAgICAgICAgICByZXR1cm4gcmVz CiBkaWZmIC0tZ2l0IGEvc3JjL3NhZ2UvcmluZ3MvcmVhbF9hcmIucHl4IGIvc3JjL3NhZ2Uvcmlu Z3MvcmVhbF9hcmIucHl4Ci1pbmRleCBlMWJjMGMwOGYxNi4uYTE4MzMyYTVhYmEgMTAwNjQ0Citp bmRleCBiNmZkNjFiYTUwZS4uNjU4MTUwN2Y2NWYgMTAwNjQ0CiAtLS0gYS9zcmMvc2FnZS9yaW5n cy9yZWFsX2FyYi5weXgKICsrKyBiL3NyYy9zYWdlL3JpbmdzL3JlYWxfYXJiLnB5eAotQEAgLTE1 NDksNyArMTU0OSw3IEBAIGNkZWYgY2xhc3MgUmVhbEJhbGwoUmluZ0VsZW1lbnQpOgorQEAgLTE1 NDgsNyArMTU0OCw3IEBAIGNkZWYgY2xhc3MgUmVhbEJhbGwoUmluZ0VsZW1lbnQpOgogIAogICAg ICAjIENvbnZlcnNpb25zCiAgCkBAIC0zNDE4OSw3ICszNDE4MCw3IEBAIGluZGV4IGUxYmMwYzA4 ZjE2Li5hMTgzMzJhNWFiYSAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgUmV0dXJuIGEg Om1vZDpgcmVhbCBpbnRlcnZhbCA8c2FnZS5yaW5ncy5yZWFsX21wZmk+YCBjb250YWluaW5nIHRo aXMgYmFsbC4KICAKLUBAIC0yMjQ3LDcgKzIyNDcsNyBAQCBjZGVmIGNsYXNzIFJlYWxCYWxsKFJp bmdFbGVtZW50KToKK0BAIC0yMjQ2LDcgKzIyNDYsNyBAQCBjZGVmIGNsYXNzIFJlYWxCYWxsKFJp bmdFbGVtZW50KToKICAgICAgICAgICIiIgogICAgICAgICAgcmV0dXJuIGFyYl9pc19leGFjdChz ZWxmLnZhbHVlKQogIApAQCAtMzQxOTgsNyArMzQxODksNyBAQCBpbmRleCBlMWJjMGMwOGYxNi4u YTE4MzMyYTVhYmEgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIENvbXBhcmUgYGBsZWZ0 YGAgYW5kIGBgcmlnaHRgYC4KICAKLUBAIC0yNzg5LDcgKzI3ODksNyBAQCBjZGVmIGNsYXNzIFJl YWxCYWxsKFJpbmdFbGVtZW50KToKK0BAIC0yNzg4LDcgKzI3ODgsNyBAQCBjZGVmIGNsYXNzIFJl YWxCYWxsKFJpbmdFbGVtZW50KToKICAgICAgICAgIGlmIF9kb19zaWcocHJlYyhzZWxmKSk6IHNp Z19vZmYoKQogICAgICAgICAgcmV0dXJuIHJlcwogIApAQCAtMzQyMDcsNyArMzQxOTgsNyBAQCBp bmRleCBlMWJjMGMwOGYxNi4uYTE4MzMyYTVhYmEgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAg ICAgIFJldHVybiB0aGUgc3VtIG9mIHR3byBiYWxscywgcm91bmRlZCB0byB0aGUgYW1iaWVudCBm aWVsZCdzIHByZWNpc2lvbi4KICAKLUBAIC0yODA3LDcgKzI4MDcsNyBAQCBjZGVmIGNsYXNzIFJl YWxCYWxsKFJpbmdFbGVtZW50KToKK0BAIC0yODA2LDcgKzI4MDYsNyBAQCBjZGVmIGNsYXNzIFJl YWxCYWxsKFJpbmdFbGVtZW50KToKICAgICAgICAgIGlmIF9kb19zaWcocHJlYyhzZWxmKSk6IHNp Z19vZmYoKQogICAgICAgICAgcmV0dXJuIHJlcwogIApAQCAtMzQyMTYsNyArMzQyMDcsNyBAQCBp bmRleCBlMWJjMGMwOGYxNi4uYTE4MzMyYTVhYmEgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAg ICAgIFJldHVybiB0aGUgZGlmZmVyZW5jZSBvZiB0d28gYmFsbHMsIHJvdW5kZWQgdG8gdGhlIGFt YmllbnQgZmllbGQncwogICAgICAgICAgcHJlY2lzaW9uLgotQEAgLTI4MjYsNyArMjgyNiw3IEBA IGNkZWYgY2xhc3MgUmVhbEJhbGwoUmluZ0VsZW1lbnQpOgorQEAgLTI4MjUsNyArMjgyNSw3IEBA IGNkZWYgY2xhc3MgUmVhbEJhbGwoUmluZ0VsZW1lbnQpOgogICAgICAgICAgaWYgX2RvX3NpZyhw cmVjKHNlbGYpKTogc2lnX29mZigpCiAgICAgICAgICByZXR1cm4gcmVzCiAgCkBAIC0zNDIyNSw3 ICszNDIxNiw3IEBAIGluZGV4IGUxYmMwYzA4ZjE2Li5hMTgzMzJhNWFiYSAxMDA2NDQKICAgICAg ICAgICIiIgogICAgICAgICAgUmV0dXJuIHRoZSBwcm9kdWN0IG9mIHR3byBiYWxscywgcm91bmRl ZCB0byB0aGUgYW1iaWVudCBmaWVsZCdzCiAgICAgICAgICBwcmVjaXNpb24uCi1AQCAtMjg0NSw3 ICsyODQ1LDcgQEAgY2RlZiBjbGFzcyBSZWFsQmFsbChSaW5nRWxlbWVudCk6CitAQCAtMjg0NCw3 ICsyODQ0LDcgQEAgY2RlZiBjbGFzcyBSZWFsQmFsbChSaW5nRWxlbWVudCk6CiAgICAgICAgICBp ZiBfZG9fc2lnKHByZWMoc2VsZikpOiBzaWdfb2ZmKCkKICAgICAgICAgIHJldHVybiByZXMKICAK QEAgLTM0MjM0LDcgKzM0MjI1LDcgQEAgaW5kZXggZTFiYzBjMDhmMTYuLmExODMzMmE1YWJhIDEw MDY0NAogICAgICAgICAgIiIiCiAgICAgICAgICBSZXR1cm4gdGhlIHF1b3RpZW50IG9mIHR3byBi YWxscywgcm91bmRlZCB0byB0aGUgYW1iaWVudCBmaWVsZCdzCiAgICAgICAgICBwcmVjaXNpb24u Ci1AQCAtMzg0Miw3ICszODQyLDcgQEAgY2RlZiBjbGFzcyBSZWFsQmFsbChSaW5nRWxlbWVudCk6 CitAQCAtMzg0MSw3ICszODQxLDcgQEAgY2RlZiBjbGFzcyBSZWFsQmFsbChSaW5nRWxlbWVudCk6 CiAgICAgICAgICBpZiBfZG9fc2lnKHByZWMoc2VsZikpOiBzaWdfb2ZmKCkKICAgICAgICAgIHJl dHVybiByZXN1bHQKICAKQEAgLTM0ODE4LDcgKzM0ODA5LDcgQEAgaW5kZXggZjlmYzdhMTk2OWMu LmYxMDdkYmRkODlhIDEwMDY0NAogKyAgICBjZGVmIFJhdGlvbmFsIF9zaW1wbGVzdF9yYXRpb25h bF9oZWxwZXIoc2VsZikKICsgICAgY3BkZWYgX3N0cl9xdWVzdGlvbl9zdHlsZShzZWxmLCBpbnQg YmFzZSwgaW50IGVycm9yX2RpZ2l0cywgZSwgYmludCBwcmVmZXJfc2NpKQogZGlmZiAtLWdpdCBh L3NyYy9zYWdlL3JpbmdzL3JlYWxfbXBmaS5weXggYi9zcmMvc2FnZS9yaW5ncy9yZWFsX21wZmku cHl4Ci1pbmRleCA2OTE0M2MyNDNmMy4uYTEzOTkxYzgyZmUgMTAwNjQ0CitpbmRleCA0Y2MwMzYy NGVjOC4uMWQ1ZGNmZmQ1NjcgMTAwNjQ0CiAtLS0gYS9zcmMvc2FnZS9yaW5ncy9yZWFsX21wZmku cHl4CiArKysgYi9zcmMvc2FnZS9yaW5ncy9yZWFsX21wZmkucHl4CiBAQCAtMzA1LDcgKzMwNSw3 IEBAIHByaW50aW5nX2Vycm9yX2RpZ2l0cyA9IDAKQEAgLTM0OTAyLDcgKzM0ODkzLDcgQEAgaW5k ZXggNjkxNDNjMjQzZjMuLmExMzk5MWM4MmZlIDEwMDY0NAogICAgICAgICAgIiIiCiAgICAgICAg ICBSZXR1cm4gdGhlIGFic29sdXRlIHZhbHVlIG9mIGBgc2VsZmBgLgogIAotQEAgLTM2NTUsNyAr MzY1NSw3IEBAIGNkZWYgY2xhc3MgUmVhbEludGVydmFsRmllbGRFbGVtZW50KFJpbmdFbGVtZW50 KToKK0BAIC0zNjQ5LDcgKzM2NDksNyBAQCBjZGVmIGNsYXNzIFJlYWxJbnRlcnZhbEZpZWxkRWxl bWVudChSaW5nRWxlbWVudCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxvd19vcGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBo aWdoX29wZW4pCiAgCkBAIC0zNDkxMSw3ICszNDkwMiw3IEBAIGluZGV4IDY5MTQzYzI0M2YzLi5h MTM5OTFjODJmZSAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgUmV0dXJucyB0aGUgc2lt cGxlc3QgcmF0aW9uYWwgaW4gYW4gaW50ZXJ2YWwgd2hpY2ggaXMgZWl0aGVyIGVxdWFsCiAgICAg ICAgICB0byBvciBzbGlnaHRseSBsYXJnZXIgdGhhbiBgYHNlbGZgYC4gV2UgYXNzdW1lIHRoYXQg Ym90aCBlbmRwb2ludHMgb2YKLUBAIC0zNjk1LDcgKzM2OTUsNyBAQCBjZGVmIGNsYXNzIFJlYWxJ bnRlcnZhbEZpZWxkRWxlbWVudChSaW5nRWxlbWVudCk6CitAQCAtMzY4OSw3ICszNjg5LDcgQEAg Y2RlZiBjbGFzcyBSZWFsSW50ZXJ2YWxGaWVsZEVsZW1lbnQoUmluZ0VsZW1lbnQpOgogICAgICAg ICAgIiIiCiAgICAgICAgICByZXR1cm4gbXBmaV9uYW5fcChzZWxmLnZhbHVlKQogIApAQCAtMzQ5 MjAsNyArMzQ5MTEsNyBAQCBpbmRleCA2OTE0M2MyNDNmMy4uYTEzOTkxYzgyZmUgMTAwNjQ0CiAg ICAgICAgICAiIiIKICAgICAgICAgIEltcGxlbWVudCBjb21wYXJpc29ucyBiZXR3ZWVuIGludGVy dmFscy4KICAKLUBAIC01MTg4LDcgKzUxODgsNyBAQCBkZWYgX3NpbXBsZXN0X3JhdGlvbmFsX3Rl c3RfaGVscGVyKGxvdywgaGlnaCwgbG93X29wZW49RmFsc2UsIGhpZ2hfb3Blbj1GYWxzZSk6CitA QCAtNTE4Miw3ICs1MTgyLDcgQEAgZGVmIF9zaW1wbGVzdF9yYXRpb25hbF90ZXN0X2hlbHBlcihs b3csIGhpZ2gsIGxvd19vcGVuPUZhbHNlLCBoaWdoX29wZW49RmFsc2UpOgogICAgICAiIiIKICAg ICAgcmV0dXJuIF9zaW1wbGVzdF9yYXRpb25hbF9leGFjdChsb3csIGhpZ2gsIGxvd19vcGVuLCBo aWdoX29wZW4pCiAgCkBAIC0zNDk2Miw3ICszNDk1Myw3IEBAIGluZGV4IDZlMDZlNWM1ZWE0Li43 ODVkNDAyODM2YyAxMDA2NDQKIC1jcGRlZiBSZWFsRmllbGQobXBmcl9wcmVjX3QgcHJlYz0qLCBp bnQgc2NpX25vdD0qLCBybmQ9Kikgbm9leGNlcHQKICtjcGRlZiBSZWFsRmllbGQobXBmcl9wcmVj X3QgcHJlYz0qLCBpbnQgc2NpX25vdD0qLCBybmQ9KikKIGRpZmYgLS1naXQgYS9zcmMvc2FnZS9y aW5ncy9yZWFsX21wZnIucHl4IGIvc3JjL3NhZ2UvcmluZ3MvcmVhbF9tcGZyLnB5eAotaW5kZXgg MjBiYThkZmEyODQuLjUyZTc2MjU5ZDI1IDEwMDY0NAoraW5kZXggNDI0MWQ1MjM3ZTIuLmQ4MTQ0 MjZlZDFhIDEwMDY0NAogLS0tIGEvc3JjL3NhZ2UvcmluZ3MvcmVhbF9tcGZyLnB5eAogKysrIGIv c3JjL3NhZ2UvcmluZ3MvcmVhbF9tcGZyLnB5eAogQEAgLTM3MSw3ICszNzEsNyBAQCBjZGVmIGRv dWJsZSBMT0dfVEVOX1RXT19QTFVTX0VQU0lMT04gPSAzLjMyMTkyODA5NDg4NzM2MyAjIGEgc21h bGwgb3ZlcmVzdGltYXRlCkBAIC0zNTA2NCw3ICszNTA1NSw3IEBAIGluZGV4IDIwYmE4ZGZhMjg0 Li41MmU3NjI1OWQyNSAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgQ29tcGFyZSBgYHNl bGZgYCBhbmQgYGBvdGhlcmBgIGFjY29yZGluZyB0byB0aGUgcmljaAogICAgICAgICAgY29tcGFy aXNvbiBvcGVyYXRvciBgYG9wYGAuCi1AQCAtNTg2Nyw3ICs1ODY3LDcgQEAgZGVmIF9fY3JlYXRl X19SZWFsTnVtYmVyX3ZlcnNpb24wKHBhcmVudCwgeCwgYmFzZT0xMCk6CitAQCAtNTg2OSw3ICs1 ODY5LDcgQEAgZGVmIF9fY3JlYXRlX19SZWFsTnVtYmVyX3ZlcnNpb24wKHBhcmVudCwgeCwgYmFz ZT0xMCk6CiAgCiAgCiAgY2RlZiBjbGFzcyBSUnRvUlIoTWFwKToKQEAgLTM1MDczLDcgKzM1MDY0 LDcgQEAgaW5kZXggMjBiYThkZmEyODQuLjUyZTc2MjU5ZDI1IDEwMDY0NAogICAgICAgICAgIiIi CiAgICAgICAgICBFWEFNUExFUzo6CiAgCi1AQCAtNTkxNiw3ICs1OTE2LDcgQEAgY2RlZiBjbGFz cyBSUnRvUlIoTWFwKToKK0BAIC01OTE4LDcgKzU5MTgsNyBAQCBjZGVmIGNsYXNzIFJSdG9SUihN YXApOgogICAgICAgICAgcmV0dXJuIFJSdG9SUihzZWxmLl9jb2RvbWFpbiwgc2VsZi5kb21haW4o KSkKICAKICBjZGVmIGNsYXNzIFpadG9SUihNYXApOgpAQCAtMzUwODIsNyArMzUwNzMsNyBAQCBp bmRleCAyMGJhOGRmYTI4NC4uNTJlNzYyNTlkMjUgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAg ICAgIEVYQU1QTEVTOjoKICAKLUBAIC01OTMxLDcgKzU5MzEsNyBAQCBjZGVmIGNsYXNzIFpadG9S UihNYXApOgorQEAgLTU5MzMsNyArNTkzMyw3IEBAIGNkZWYgY2xhc3MgWlp0b1JSKE1hcCk6CiAg ICAgICAgICByZXR1cm4geQogIAogIGNkZWYgY2xhc3MgUVF0b1JSKE1hcCk6CkBAIC0zNTA5MSw3 ICszNTA4Miw3IEBAIGluZGV4IDIwYmE4ZGZhMjg0Li41MmU3NjI1OWQyNSAxMDA2NDQKICAgICAg ICAgICIiIgogICAgICAgICAgRVhBTVBMRVM6OgogIAotQEAgLTU5NDYsNyArNTk0Niw3IEBAIGNk ZWYgY2xhc3MgUVF0b1JSKE1hcCk6CitAQCAtNTk0OCw3ICs1OTQ4LDcgQEAgY2RlZiBjbGFzcyBR UXRvUlIoTWFwKToKICAgICAgICAgIHJldHVybiB5CiAgCiAgY2RlZiBjbGFzcyBkb3VibGVfdG9S UihNYXApOgpAQCAtMzUxMDAsNyArMzUwOTEsNyBAQCBpbmRleCAyMGJhOGRmYTI4NC4uNTJlNzYy NTlkMjUgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIFRha2VzIGFueXRoaW5nIHRoYXQg Y2FuIGJlIGNvbnZlcnRlZCB0byBhIGRvdWJsZS4KICAKLUBAIC01OTY2LDcgKzU5NjYsNyBAQCBj ZGVmIGNsYXNzIGRvdWJsZV90b1JSKE1hcCk6CitAQCAtNTk2OCw3ICs1OTY4LDcgQEAgY2RlZiBj bGFzcyBkb3VibGVfdG9SUihNYXApOgogICAgICAgICAgcmV0dXJuIHkKICAKICBjZGVmIGNsYXNz IGludF90b1JSKE1hcCk6CkBAIC0zNTcyMywxMCArMzU3MTQsMTAgQEAgaW5kZXggNWM1Mjk4MjVl NGMuLjNjYWZlMzMwZmIwIDEwMDY0NAogKyAgICBjZGVmIFRhdGVBbGdlYnJhRWxlbWVudCBfU3Bv bHlfYyhzZWxmLCBUYXRlQWxnZWJyYUVsZW1lbnQgb3RoZXIpCiAgCiBkaWZmIC0tZ2l0IGEvc3Jj L3NhZ2UvcmluZ3MvdGF0ZV9hbGdlYnJhX2VsZW1lbnQucHl4IGIvc3JjL3NhZ2UvcmluZ3MvdGF0 ZV9hbGdlYnJhX2VsZW1lbnQucHl4Ci1pbmRleCBlODEyYTBhN2Y1Zi4uMjQ5Mjc0ZTE0N2MgMTAw NjQ0CitpbmRleCBkZGI1OGZjZjJjOC4uZmZkNDAwZDUxNTkgMTAwNjQ0CiAtLS0gYS9zcmMvc2Fn ZS9yaW5ncy90YXRlX2FsZ2VicmFfZWxlbWVudC5weXgKICsrKyBiL3NyYy9zYWdlL3JpbmdzL3Rh dGVfYWxnZWJyYV9lbGVtZW50LnB5eAotQEAgLTE2Nyw3ICsxNjcsNyBAQCBjZGVmIGNsYXNzIFRh dGVBbGdlYnJhVGVybShNb25vaWRFbGVtZW50KToKK0BAIC0xNjksNyArMTY5LDcgQEAgY2RlZiBj bGFzcyBUYXRlQWxnZWJyYVRlcm0oTW9ub2lkRWxlbWVudCk6CiAgICAgICAgICAiIiIKICAgICAg ICAgIHJldHVybiBoYXNoKChzZWxmLl9jb2VmZiwgc2VsZi5fZXhwb25lbnQpKQogIApAQCAtMzU3 MzUsNyArMzU3MjYsNyBAQCBpbmRleCBlODEyYTBhN2Y1Zi4uMjQ5Mjc0ZTE0N2MgMTAwNjQ0CiAg ICAgICAgICByIiIiCiAgICAgICAgICBGYXN0IGNyZWF0aW9uIG9mIGEgVGF0ZSBhbGdlYnJhIHRl cm0uCiAgCi1AQCAtMzA5LDcgKzMwOSw3IEBAIGNkZWYgY2xhc3MgVGF0ZUFsZ2VicmFUZXJtKE1v bm9pZEVsZW1lbnQpOgorQEAgLTMxMiw3ICszMTIsNyBAQCBjZGVmIGNsYXNzIFRhdGVBbGdlYnJh VGVybShNb25vaWRFbGVtZW50KToKICAgICAgICAgICIiIgogICAgICAgICAgcmV0dXJuIHNlbGYu X2V4cG9uZW50CiAgCkBAIC0zNTc0NCw3ICszNTczNSw3IEBAIGluZGV4IGU4MTJhMGE3ZjVmLi4y NDkyNzRlMTQ3YyAxMDA2NDQKICAgICAgICAgIHIiIiIKICAgICAgICAgIFJldHVybiB0aGUgcHJv ZHVjdCBvZiB0aGlzIFRhdGUgYWxnZWJyYSB0ZXJtIHdpdGggYGBvdGhlcmBgLgogIAotQEAgLTM4 NSw3ICszODUsNyBAQCBjZGVmIGNsYXNzIFRhdGVBbGdlYnJhVGVybShNb25vaWRFbGVtZW50KToK K0BAIC0zODgsNyArMzg4LDcgQEAgY2RlZiBjbGFzcyBUYXRlQWxnZWJyYVRlcm0oTW9ub2lkRWxl bWVudCk6CiAgICAgICAgICAgICAgYyA9IChrcyA+IGtvKSAtIChrcyA8IGtvKQogICAgICAgICAg cmV0dXJuIGMKICAKQEAgLTM1NzUzLDcgKzM1NzQ0LDcgQEAgaW5kZXggZTgxMmEwYTdmNWYuLjI0 OTI3NGUxNDdjIDEwMDY0NAogICAgICAgICAgciIiIgogICAgICAgICAgQ29tcGFyZSB0aGUgVGF0 ZSBhbGdlYnJhIHRlcm0gd2l0aCBgYG90aGVyYGAgYWNjb3JkaW5nIHRvCiAgICAgICAgICB0aGUg cmljaCBjb21wYXJpc29uIG9wZXJhdG9yIGBgb3BgYC4KLUBAIC00NDYsNyArNDQ2LDcgQEAgY2Rl ZiBjbGFzcyBUYXRlQWxnZWJyYVRlcm0oTW9ub2lkRWxlbWVudCk6CitAQCAtNDQ5LDcgKzQ0OSw3 IEBAIGNkZWYgY2xhc3MgVGF0ZUFsZ2VicmFUZXJtKE1vbm9pZEVsZW1lbnQpOgogICAgICAgICAg YyA9ICg8VGF0ZUFsZ2VicmFUZXJtPnNlbGYpLl9jbXBfYyg8VGF0ZUFsZ2VicmFUZXJtPm90aGVy KQogICAgICAgICAgcmV0dXJuIHJpY2hfdG9fYm9vbF9zZ24ob3AsIGMpCiAgCkBAIC0zNTc2Miw3 ICszNTc1Myw3IEBAIGluZGV4IGU4MTJhMGE3ZjVmLi4yNDkyNzRlMTQ3YyAxMDA2NDQKICAgICAg ICAgIHIiIiIKICAgICAgICAgIFJldHVybiB0aGlzIHRlcm0gZGl2aWRlZCBieSBpdHMgY29lZmZp Y2llbnQuCiAgCi1AQCAtNDY2LDcgKzQ2Niw3IEBAIGNkZWYgY2xhc3MgVGF0ZUFsZ2VicmFUZXJt KE1vbm9pZEVsZW1lbnQpOgorQEAgLTQ2OSw3ICs0NjksNyBAQCBjZGVmIGNsYXNzIFRhdGVBbGdl YnJhVGVybShNb25vaWRFbGVtZW50KToKICAgICAgICAgIGFucy5fZXhwb25lbnQgPSBzZWxmLl9l eHBvbmVudAogICAgICAgICAgcmV0dXJuIGFucwogIApAQCAtMzU3NzEsNyArMzU3NjIsNyBAQCBp bmRleCBlODEyYTBhN2Y1Zi4uMjQ5Mjc0ZTE0N2MgMTAwNjQ0CiAgICAgICAgICByIiIiCiAgICAg ICAgICBSZXR1cm4gdGhpcyB0ZXJtIG5vcm1hbGl6ZWQgc28gdGhhdCBpdCBoYXMgdmFsdWF0aW9u IDAKICAgICAgICAgIGFuZCBpdHMgY29lZmZpY2llbnQgaXMgYSBwb3dlciBvZiB0aGUgdW5pZm9y bWl6ZXIuCi1AQCAtNTU3LDcgKzU1Nyw3IEBAIGNkZWYgY2xhc3MgVGF0ZUFsZ2VicmFUZXJtKE1v bm9pZEVsZW1lbnQpOgorQEAgLTU2MCw3ICs1NjAsNyBAQCBjZGVmIGNsYXNzIFRhdGVBbGdlYnJh VGVybShNb25vaWRFbGVtZW50KToKICAgICAgICAgICIiIgogICAgICAgICAgcmV0dXJuICg8cEFk aWNHZW5lcmljRWxlbWVudD5zZWxmLl9jb2VmZikudmFsdWF0aW9uX2MoKSAtIDxsb25nPnNlbGYu X2V4cG9uZW50LmRvdHByb2Qoc2VsZi5fcGFyZW50Ll9sb2dfcmFkaWkpCiAgCkBAIC0zNTc4MCw3 ICszNTc3MSw3IEBAIGluZGV4IGU4MTJhMGE3ZjVmLi4yNDkyNzRlMTQ3YyAxMDA2NDQKICAgICAg ICAgICIiIgogICAgICAgICAgUmV0dXJuIHRoaXMgdGVybSBldmFsdWF0ZWQgYXQgYGBhcmdzYGAu CiAgCi1AQCAtNzI1LDcgKzcyNSw3IEBAIGNkZWYgY2xhc3MgVGF0ZUFsZ2VicmFUZXJtKE1vbm9p ZEVsZW1lbnQpOgorQEAgLTcyOCw3ICs3MjgsNyBAQCBjZGVmIGNsYXNzIFRhdGVBbGdlYnJhVGVy bShNb25vaWRFbGVtZW50KToKICAgICAgICAgICIiIgogICAgICAgICAgcmV0dXJuIHNlbGYuX2dj ZF9jKG90aGVyKQogIApAQCAtMzU3ODksNyArMzU3ODAsNyBAQCBpbmRleCBlODEyYTBhN2Y1Zi4u MjQ5Mjc0ZTE0N2MgMTAwNjQ0CiAgICAgICAgICByIiIiCiAgICAgICAgICBSZXR1cm4gdGhlIGdy ZWF0ZXN0IGNvbW1vbiBkaXZpc29yIG9mIHRoaXMgdGVybSBhbmQgYGBvdGhlcmBgLgogIAotQEAg LTc5NSw3ICs3OTUsNyBAQCBjZGVmIGNsYXNzIFRhdGVBbGdlYnJhVGVybShNb25vaWRFbGVtZW50 KToKK0BAIC03OTgsNyArNzk4LDcgQEAgY2RlZiBjbGFzcyBUYXRlQWxnZWJyYVRlcm0oTW9ub2lk RWxlbWVudCk6CiAgICAgICAgICAiIiIKICAgICAgICAgIHJldHVybiBzZWxmLl9sY21fYyhvdGhl cikKICAKQEAgLTM1Nzk4LDcgKzM1Nzg5LDcgQEAgaW5kZXggZTgxMmEwYTdmNWYuLjI0OTI3NGUx NDdjIDEwMDY0NAogICAgICAgICAgciIiIgogICAgICAgICAgUmV0dXJuIHRoZSBsZWFzdCBjb21t b24gbXVsdGlwbGUgb2YgdHdvIFRhdGUgdGVybXMuCiAgCi1AQCAtOTgwLDcgKzk4MCw3IEBAIGNk ZWYgY2xhc3MgVGF0ZUFsZ2VicmFUZXJtKE1vbm9pZEVsZW1lbnQpOgorQEAgLTk4Myw3ICs5ODMs NyBAQCBjZGVmIGNsYXNzIFRhdGVBbGdlYnJhVGVybShNb25vaWRFbGVtZW50KToKICAgICAgICAg ICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAgICAgICByZXR1cm4gVHJ1ZQogIApAQCAtMzU4MDcs NyArMzU3OTgsNyBAQCBpbmRleCBlODEyYTBhN2Y1Zi4uMjQ5Mjc0ZTE0N2MgMTAwNjQ0CiAgICAg ICAgICByIiIiCiAgICAgICAgICBSZXR1cm4gdGhlIHJlc3VsdCBvZiB0aGUgZXhhY3QgZGl2aXNp b24gb2YgdGhpcyB0ZXJtIGJ5IGBgb3RoZXJgYC4KICAKLUBAIC0xMDEzLDcgKzEwMTMsNyBAQCBj ZGVmIGNsYXNzIFRhdGVBbGdlYnJhVGVybShNb25vaWRFbGVtZW50KToKK0BAIC0xMDE2LDcgKzEw MTYsNyBAQCBjZGVmIGNsYXNzIFRhdGVBbGdlYnJhVGVybShNb25vaWRFbGVtZW50KToKICAgICAg ICAgIHJldHVybiAoPFRhdGVBbGdlYnJhVGVybT5zZWxmKS5fZmxvb3JkaXZfYyg8VGF0ZUFsZ2Vi cmFUZXJtPm90aGVyKQogIAogIApAQCAtMzU4MTYsNyArMzU4MDcsNyBAQCBpbmRleCBlODEyYTBh N2Y1Zi4uMjQ5Mjc0ZTE0N2MgMTAwNjQ0CiAgICAgICAgICByIiIiCiAgICAgICAgICBSZXR1cm4g dGhlIHJlc3VsdCBvZiB0aGUgZXhhY3QgZGl2aXNpb24gb2YgdGhpcyB0ZXJtIGJ5IGBgb3RoZXJg YC4KICAKLUBAIC0xMTIwLDcgKzExMjAsNyBAQCBjZGVmIGNsYXNzIFRhdGVBbGdlYnJhRWxlbWVu dChDb21tdXRhdGl2ZUFsZ2VicmFFbGVtZW50KToKK0BAIC0xMTIzLDcgKzExMjMsNyBAQCBjZGVm IGNsYXNzIFRhdGVBbGdlYnJhRWxlbWVudChDb21tdXRhdGl2ZUFsZ2VicmFFbGVtZW50KToKICAg ICAgICAgIGlmIG5vdCBwYXJlbnQuYmFzZV9yaW5nKCkuaXNfZmllbGQoKSBhbmQgc2VsZi52YWx1 YXRpb24oKSA8IDA6CiAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigidGhpcyBzZXJpZXMg aXMgbm90IGluIHRoZSByaW5nIG9mIGludGVnZXJzIikKICAKQEAgLTM1ODI1LDcgKzM1ODE2LDcg QEAgaW5kZXggZTgxMmEwYTdmNWYuLjI0OTI3NGUxNDdjIDEwMDY0NAogICAgICAgICAgIiIiCiAg ICAgICAgICBGYXN0IGNyZWF0aW9uIG9mIGEgbmV3IFRhdGUgc2VyaWVzLgogIAotQEAgLTExMzgs NyArMTEzOCw3IEBAIGNkZWYgY2xhc3MgVGF0ZUFsZ2VicmFFbGVtZW50KENvbW11dGF0aXZlQWxn ZWJyYUVsZW1lbnQpOgorQEAgLTExNDEsNyArMTE0MSw3IEBAIGNkZWYgY2xhc3MgVGF0ZUFsZ2Vi cmFFbGVtZW50KENvbW11dGF0aXZlQWxnZWJyYUVsZW1lbnQpOgogICAgICAgICAgYW5zLl90ZXJt cyA9IGFucy5fdGVybXNfbm9uemVybyA9IE5vbmUKICAgICAgICAgIHJldHVybiBhbnMKICAKQEAg LTM1ODM0LDcgKzM1ODI1LDcgQEAgaW5kZXggZTgxMmEwYTdmNWYuLjI0OTI3NGUxNDdjIDEwMDY0 NAogICAgICAgICAgIiIiCiAgICAgICAgICBOb3JtYWxpemUgdGhpcyBzZXJpZXMuCiAgCi1AQCAt MTI3OSw3ICsxMjc5LDcgQEAgY2RlZiBjbGFzcyBUYXRlQWxnZWJyYUVsZW1lbnQoQ29tbXV0YXRp dmVBbGdlYnJhRWxlbWVudCk6CitAQCAtMTI4Miw3ICsxMjgyLDcgQEAgY2RlZiBjbGFzcyBUYXRl QWxnZWJyYUVsZW1lbnQoQ29tbXV0YXRpdmVBbGdlYnJhRWxlbWVudCk6CiAgICAgICAgICAgICAg ICAgIHMgKz0gIk9cXGxlZnQoJXNeeyVzfSAlc1xccmlnaHQpIiAlIChzZWxmLl9wYXJlbnQuX3Vu aWZvcm1pemVyX2xhdGV4LCBzZWxmLl9wcmVjLCBzZWxmLl9wYXJlbnQuaW50ZWdlcl9yaW5nKCku X2xhdGV4XygpKQogICAgICAgICAgcmV0dXJuIHMKICAKQEAgLTM1ODQzLDcgKzM1ODM0LDcgQEAg aW5kZXggZTgxMmEwYTdmNWYuLjI0OTI3NGUxNDdjIDEwMDY0NAogICAgICAgICAgciIiIgogICAg ICAgICAgUmV0dXJuIHRoZSBzdW0gb2YgdGhpcyBzZXJpZXMgYW5kIGBgb3RoZXJgYC4KICAKLUBA IC0xMzE0LDcgKzEzMTQsNyBAQCBjZGVmIGNsYXNzIFRhdGVBbGdlYnJhRWxlbWVudChDb21tdXRh dGl2ZUFsZ2VicmFFbGVtZW50KToKK0BAIC0xMzE3LDcgKzEzMTcsNyBAQCBjZGVmIGNsYXNzIFRh dGVBbGdlYnJhRWxlbWVudChDb21tdXRhdGl2ZUFsZ2VicmFFbGVtZW50KToKICAgICAgICAgIGFu cy5fbm9ybWFsaXplKCkKICAgICAgICAgIHJldHVybiBhbnMKICAKQEAgLTM1ODUyLDcgKzM1ODQz LDcgQEAgaW5kZXggZTgxMmEwYTdmNWYuLjI0OTI3NGUxNDdjIDEwMDY0NAogICAgICAgICAgciIi IgogICAgICAgICAgUmV0dXJuIHRoZSBvcHBvc2l0ZSBvZiB0aGlzIHNlcmllcy4KICAKLUBAIC0x MzM0LDcgKzEzMzQsNyBAQCBjZGVmIGNsYXNzIFRhdGVBbGdlYnJhRWxlbWVudChDb21tdXRhdGl2 ZUFsZ2VicmFFbGVtZW50KToKK0BAIC0xMzM3LDcgKzEzMzcsNyBAQCBjZGVmIGNsYXNzIFRhdGVB bGdlYnJhRWxlbWVudChDb21tdXRhdGl2ZUFsZ2VicmFFbGVtZW50KToKICAgICAgICAgIGFucy5f cHJlYyA9IHNlbGYuX3ByZWMKICAgICAgICAgIHJldHVybiBhbnMKICAKQEAgLTM1ODYxLDcgKzM1 ODUyLDcgQEAgaW5kZXggZTgxMmEwYTdmNWYuLjI0OTI3NGUxNDdjIDEwMDY0NAogICAgICAgICAg ciIiIgogICAgICAgICAgUmV0dXJuIHRoZSBkaWZmZXJlbmNlIG9mIHRoaXMgc2VyaWVzIGFuZCBg YG90aGVyYGAuCiAgCi1AQCAtMTM2Nyw3ICsxMzY3LDcgQEAgY2RlZiBjbGFzcyBUYXRlQWxnZWJy YUVsZW1lbnQoQ29tbXV0YXRpdmVBbGdlYnJhRWxlbWVudCk6CitAQCAtMTM3MCw3ICsxMzcwLDcg QEAgY2RlZiBjbGFzcyBUYXRlQWxnZWJyYUVsZW1lbnQoQ29tbXV0YXRpdmVBbGdlYnJhRWxlbWVu dCk6CiAgICAgICAgICBhbnMuX25vcm1hbGl6ZSgpCiAgICAgICAgICByZXR1cm4gYW5zCiAgCkBA IC0zNTg3MCw3ICszNTg2MSw3IEBAIGluZGV4IGU4MTJhMGE3ZjVmLi4yNDkyNzRlMTQ3YyAxMDA2 NDQKICAgICAgICAgIHIiIiIKICAgICAgICAgIFJldHVybiB0aGUgcHJvZHVjdCBvZiB0aGlzIHNl cmllcyB3aXRoIGBgb3RoZXJgYC4KICAKLUBAIC0xNDAyLDcgKzE0MDIsNyBAQCBjZGVmIGNsYXNz IFRhdGVBbGdlYnJhRWxlbWVudChDb21tdXRhdGl2ZUFsZ2VicmFFbGVtZW50KToKK0BAIC0xNDA1 LDcgKzE0MDUsNyBAQCBjZGVmIGNsYXNzIFRhdGVBbGdlYnJhRWxlbWVudChDb21tdXRhdGl2ZUFs Z2VicmFFbGVtZW50KToKICAgICAgICAgIGFucy5fbm9ybWFsaXplKCkKICAgICAgICAgIHJldHVy biBhbnMKICAKQEAgLTM1ODc5LDcgKzM1ODcwLDcgQEAgaW5kZXggZTgxMmEwYTdmNWYuLjI0OTI3 NGUxNDdjIDEwMDY0NAogICAgICAgICAgciIiIgogICAgICAgICAgUmV0dXJuIHRoZSBwcm9kdWN0 IG9mIHRoaXMgc2VyaWVzIGJ5IGBgcmlnaHRgYC4KICAKLUBAIC0xNzgzLDcgKzE3ODMsNyBAQCBj ZGVmIGNsYXNzIFRhdGVBbGdlYnJhRWxlbWVudChDb21tdXRhdGl2ZUFsZ2VicmFFbGVtZW50KToK K0BAIC0xNzk0LDcgKzE3OTQsNyBAQCBjZGVmIGNsYXNzIFRhdGVBbGdlYnJhRWxlbWVudChDb21t dXRhdGl2ZUFsZ2VicmFFbGVtZW50KToKICAgICAgICAgIHJldHVybiByb290CiAgCiAgCkBAIC0z NTg4OCw3ICszNTg3OSw3IEBAIGluZGV4IGU4MTJhMGE3ZjVmLi4yNDkyNzRlMTQ3YyAxMDA2NDQK ICAgICAgICAgIHIiIiIKICAgICAgICAgIENvbXBhcmUgdGhpcyBzZXJpZXMgd2l0aCBgYG90aGVy YGAgYWNjb3JkaW5nIHRvCiAgICAgICAgICB0aGUgcmljaCBjb21wYXJpc29uIG9wZXJhdG9yIGBg b3BgYC4KLUBAIC0xOTIyLDcgKzE5MjIsNyBAQCBjZGVmIGNsYXNzIFRhdGVBbGdlYnJhRWxlbWVu dChDb21tdXRhdGl2ZUFsZ2VicmFFbGVtZW50KToKK0BAIC0xOTMzLDcgKzE5MzMsNyBAQCBjZGVm IGNsYXNzIFRhdGVBbGdlYnJhRWxlbWVudChDb21tdXRhdGl2ZUFsZ2VicmFFbGVtZW50KToKICAg ICAgICAgICAgICAgICAgcGFzcwogICAgICAgICAgcmV0dXJuIHJlcwogIApAQCAtMzU4OTcsNyAr MzU4ODgsNyBAQCBpbmRleCBlODEyYTBhN2Y1Zi4uMjQ5Mjc0ZTE0N2MgMTAwNjQ0CiAgICAgICAg ICByIiIiCiAgICAgICAgICBSZXR1cm4gdGhlIHByb2R1Y3Qgb2YgdGhpcyBzZXJpZXMgYnkgdGhl IHRlcm0gYGB0ZXJtYGAuCiAgCi1AQCAtMTk0Myw3ICsxOTQzLDcgQEAgY2RlZiBjbGFzcyBUYXRl QWxnZWJyYUVsZW1lbnQoQ29tbXV0YXRpdmVBbGdlYnJhRWxlbWVudCk6CitAQCAtMTk1NCw3ICsx OTU0LDcgQEAgY2RlZiBjbGFzcyBUYXRlQWxnZWJyYUVsZW1lbnQoQ29tbXV0YXRpdmVBbGdlYnJh RWxlbWVudCk6CiAgICAgICAgICBhbnMuX3ByZWMgPSBzZWxmLl9wcmVjICsgdGVybS5fdmFsdWF0 aW9uX2MoKQogICAgICAgICAgcmV0dXJuIGFucwogIApAQCAtMzU5MDYsNyArMzU4OTcsNyBAQCBp bmRleCBlODEyYTBhN2Y1Zi4uMjQ5Mjc0ZTE0N2MgMTAwNjQ0CiAgICAgICAgICByIiIiCiAgICAg ICAgICBSZXR1cm4gdGhlIHByb2R1Y3Qgb2YgdGhpcyBzZXJpZXMgYnkgdGhlIGBgbmBgLXRoIHBv d2VyCiAgICAgICAgICBvZiB0aGUgdW5pZm9ybWl6ZXIuCi1AQCAtMTk3Miw3ICsxOTcyLDcgQEAg Y2RlZiBjbGFzcyBUYXRlQWxnZWJyYUVsZW1lbnQoQ29tbXV0YXRpdmVBbGdlYnJhRWxlbWVudCk6 CitAQCAtMTk4Myw3ICsxOTgzLDcgQEAgY2RlZiBjbGFzcyBUYXRlQWxnZWJyYUVsZW1lbnQoQ29t bXV0YXRpdmVBbGdlYnJhRWxlbWVudCk6CiAgICAgICAgICBhbnMuX3ByZWMgPSBzZWxmLl9wcmVj ICsgbgogICAgICAgICAgcmV0dXJuIGFucwogIApAQCAtMzU5MTUsNyArMzU5MDYsNyBAQCBpbmRl eCBlODEyYTBhN2Y1Zi4uMjQ5Mjc0ZTE0N2MgMTAwNjQ0CiAgICAgICAgICByIiIiCiAgICAgICAg ICBSZXR1cm4gdGhlIHByb2R1Y3Qgb2YgdGhpcyBzZXJpZXMgYnkgdGhlIGBgbmBgLXRoIHBvd2Vy CiAgICAgICAgICBvZiB0aGUgdW5pZm9ybWl6ZXIuCi1AQCAtMjE5MCw3ICsyMTkwLDcgQEAgY2Rl ZiBjbGFzcyBUYXRlQWxnZWJyYUVsZW1lbnQoQ29tbXV0YXRpdmVBbGdlYnJhRWxlbWVudCk6CitA QCAtMjIwMiw3ICsyMjAyLDcgQEAgY2RlZiBjbGFzcyBUYXRlQWxnZWJyYUVsZW1lbnQoQ29tbXV0 YXRpdmVBbGdlYnJhRWxlbWVudCk6CiAgICAgICAgICAgICAgc2VsZi5fdGVybXMgPSBOb25lCiAg ICAgICAgICByZXR1cm4gc2VsZi5fdGVybXNfYygpCiAgCkBAIC0zNTkyNCw3ICszNTkxNSw3IEBA IGluZGV4IGU4MTJhMGE3ZjVmLi4yNDkyNzRlMTQ3YyAxMDA2NDQKICAgICAgICAgIHIiIiIKICAg ICAgICAgIFJldHVybiBhIGxpc3Qgb2YgdGhlIHRlcm1zIG9mIHRoaXMgc2VyaWVzIHNvcnRlZCBp biBkZXNjZW5kaW5nIG9yZGVyLgogIAotQEAgLTI0NTMsNyArMjQ1Myw3IEBAIGNkZWYgY2xhc3Mg VGF0ZUFsZ2VicmFFbGVtZW50KENvbW11dGF0aXZlQWxnZWJyYUVsZW1lbnQpOgorQEAgLTI0NjUs NyArMjQ2NSw3IEBAIGNkZWYgY2xhc3MgVGF0ZUFsZ2VicmFFbGVtZW50KENvbW11dGF0aXZlQWxn ZWJyYUVsZW1lbnQpOgogICAgICAgICAgIiIiCiAgICAgICAgICByZXR1cm4gc2VsZi5fcHJlYwog IApAQCAtMzU5MzMsNyArMzU5MjQsNyBAQCBpbmRleCBlODEyYTBhN2Y1Zi4uMjQ5Mjc0ZTE0N2Mg MTAwNjQ0CiAgICAgICAgICByIiIiCiAgICAgICAgICBSZXR1cm4gdGhlIHZhbHVhdGlvbiBvZiB0 aGlzIHNlcmllcy4KICAKLUBAIC0yOTQxLDcgKzI5NDEsNyBAQCBjZGVmIGNsYXNzIFRhdGVBbGdl YnJhRWxlbWVudChDb21tdXRhdGl2ZUFsZ2VicmFFbGVtZW50KToKK0BAIC0yOTYwLDcgKzI5NjAs NyBAQCBjZGVmIGNsYXNzIFRhdGVBbGdlYnJhRWxlbWVudChDb21tdXRhdGl2ZUFsZ2VicmFFbGVt ZW50KToKICAgICAgICAgICIiIgogICAgICAgICAgcmV0dXJuIHNlbGYubGVhZGluZ190ZXJtKHNl Y3VyZT1zZWN1cmUpLm1vbm9taWFsKCkKICAKQEAgLTM1OTQyLDcgKzM1OTMzLDcgQEAgaW5kZXgg ZTgxMmEwYTdmNWYuLjI0OTI3NGUxNDdjIDEwMDY0NAogICAgICAgICAgciIiIgogICAgICAgICAg UmV0dXJuIHRoaXMgc2VyaWVzIG5vcm1hbGl6ZWQgc28gdGhhdCBpdCBoYXMgdmFsdWF0aW9uIDAK ICAgICAgICAgIGFuZCBpdHMgbGVhZGluZyBjb2VmZmljaWVudCBpcyBhIHBvd2VyIG9mIHRoZSB1 bmlmb3JtaXplci4KLUBAIC0zMTYyLDcgKzMxNjIsNyBAQCBjZGVmIGNsYXNzIFRhdGVBbGdlYnJh RWxlbWVudChDb21tdXRhdGl2ZUFsZ2VicmFFbGVtZW50KToKK0BAIC0zMTgxLDcgKzMxODEsNyBA QCBjZGVmIGNsYXNzIFRhdGVBbGdlYnJhRWxlbWVudChDb21tdXRhdGl2ZUFsZ2VicmFFbGVtZW50 KToKICAgICAgICAgIHBvbHkgPSBzZWxmLl9wYXJlbnQuX3BvbHlub21pYWxfcmluZyhzZWxmLl9w b2x5KQogICAgICAgICAgcmV0dXJuIHBvbHkuY2hhbmdlX3JpbmcoUm4pCiAgCkBAIC0zNTk1MSw3 ICszNTk0Miw3IEBAIGluZGV4IGU4MTJhMGE3ZjVmLi4yNDkyNzRlMTQ3YyAxMDA2NDQKICAgICAg ICAgIHIiIiIKICAgICAgICAgIFBlcmZvcm0gdGhlIGRpdmlzaW9uIG9mIHRoaXMgc2VyaWVzIGJ5 IGBgZGl2aXNvcnNgYC4KICAKLUBAIC0zMjM1LDcgKzMyMzUsNyBAQCBjZGVmIGNsYXNzIFRhdGVB bGdlYnJhRWxlbWVudChDb21tdXRhdGl2ZUFsZ2VicmFFbGVtZW50KToKK0BAIC0zMjU0LDcgKzMy NTQsNyBAQCBjZGVmIGNsYXNzIFRhdGVBbGdlYnJhRWxlbWVudChDb21tdXRhdGl2ZUFsZ2VicmFF bGVtZW50KToKICAgICAgICAgICAgICBmLl90ZXJtcyA9IE5vbmUKICAgICAgICAgIHJldHVybiBx dW9zLCBmCiAgCkBAIC0zNTk2MCw3ICszNTk1MSw3IEBAIGluZGV4IGU4MTJhMGE3ZjVmLi4yNDky NzRlMTQ3YyAxMDA2NDQKICAgICAgICAgICIiIgogICAgICAgICAgUGVyZm9ybSB0aGUgZGl2aXNp b24gb2YgdGhpcyBzZXJpZXMgYnkgYGBkaXZpc29yc2BgLgogIAotQEAgLTM0OTEsNyArMzQ5MSw3 IEBAIGNkZWYgY2xhc3MgVGF0ZUFsZ2VicmFFbGVtZW50KENvbW11dGF0aXZlQWxnZWJyYUVsZW1l bnQpOgorQEAgLTM1MTAsNyArMzUxMCw3IEBAIGNkZWYgY2xhc3MgVGF0ZUFsZ2VicmFFbGVtZW50 KENvbW11dGF0aXZlQWxnZWJyYUVsZW1lbnQpOgogICAgICAgICAgZXhjZXB0IEluZGV4RXJyb3I6 CiAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigidGhlIFMtcG9seW5vbWlhbCBvZiB6ZXJv IGlzIG5vdCBkZWZpbmVkIikKICAKQEAgLTM2MDI4LDcgKzM2MDE5LDcgQEAgaW5kZXggZGFjYTk2 YjlmOTcuLmExMzFkYzhhNDdjIDEwMDY0NAogICAgICAgICAgVGhpcyBpcyBqdXN0IGEgaGVscGVy IGZ1bmN0aW9uIGZvciBfZnJvbV9yX3RvX3JyX2FwcHJveC4gSW4gY2FzZQogICAgICAgICAgdGhl IGludGVncmFsIGlzIGV2YWx1YXRlZCBkaXJlY3RseSB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZC4K IGRpZmYgLS1naXQgYS9zcmMvc2FnZS9zY2hlbWVzL2VsbGlwdGljX2N1cnZlcy9wZXJpb2RfbGF0 dGljZV9yZWdpb24ucHl4IGIvc3JjL3NhZ2Uvc2NoZW1lcy9lbGxpcHRpY19jdXJ2ZXMvcGVyaW9k X2xhdHRpY2VfcmVnaW9uLnB5eAotaW5kZXggMDZlNjUyNWY1YzMuLmIwOTE0ZDYzNDdhIDEwMDY0 NAoraW5kZXggZWMxMTk4YjI5NmUuLjYwYzEzMmRiMmQxIDEwMDY0NAogLS0tIGEvc3JjL3NhZ2Uv c2NoZW1lcy9lbGxpcHRpY19jdXJ2ZXMvcGVyaW9kX2xhdHRpY2VfcmVnaW9uLnB5eAogKysrIGIv c3JjL3NhZ2Uvc2NoZW1lcy9lbGxpcHRpY19jdXJ2ZXMvcGVyaW9kX2xhdHRpY2VfcmVnaW9uLnB5 eAogQEAgLTY2NSw3ICs2NjUsNyBAQCBjZGVmIGNsYXNzIFBlcmlvZGljUmVnaW9uOgpAQCAtMzc4 MDgsNyArMzc3OTksNyBAQCBpbmRleCAxNTg1NDAxZTQ4Yy4uMGYwYzI1YmRkOGQgMTAwNjQ0CiAg ICAgICAgICBSZXR1cm4gYGBUcnVlYGAgaWYgYGBsZWZ0YGAgY29tcGFyZXMgd2l0aCBgYHJpZ2h0 YGAgYmFzZWQgb24gYGBvcGBgLgogIAogZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3N0cnVjdHVyZS9m YWN0b3J5LnB5eCBiL3NyYy9zYWdlL3N0cnVjdHVyZS9mYWN0b3J5LnB5eAotaW5kZXggYmE2OTJl MTg1MmIuLjIzZTNjM2UxNmM3IDEwMDY0NAoraW5kZXggOGJkNGJjZDc2OWUuLjc1YTA0MzI1MGMy IDEwMDY0NAogLS0tIGEvc3JjL3NhZ2Uvc3RydWN0dXJlL2ZhY3RvcnkucHl4CiArKysgYi9zcmMv c2FnZS9zdHJ1Y3R1cmUvZmFjdG9yeS5weXgKIEBAIC0zNzIsNyArMzcyLDcgQEAgY2RlZiBjbGFz cyBVbmlxdWVGYWN0b3J5KFNhZ2VPYmplY3QpOgpAQCAtMzgzMjQsNyArMzgzMTUsNyBAQCBpbmRl eCAyYTljNjM3YWY2Yy4uMTYzNWVmOGIzNmUgMTAwNjQ0CiAgICAgICMgTGlzdCBjb25zaXN0aW5n IG9mIE1vcnBoaXNtcyAoZnJvbSBhbnl0aGluZyB0byBzZWxmKQogICAgICAjIGFuZCBQYXJlbnRz IGZvciB3aGljaCB0aGUgX19jYWxsX18gbWV0aG9kIG9mIHNlbGYKIGRpZmYgLS1naXQgYS9zcmMv c2FnZS9zdHJ1Y3R1cmUvcGFyZW50LnB5eCBiL3NyYy9zYWdlL3N0cnVjdHVyZS9wYXJlbnQucHl4 Ci1pbmRleCBiNjNlOGFhOTM0MS4uMzExYzY3NWRlMjcgMTAwNjQ0CitpbmRleCAyZTI5NzE4YzY2 ZS4uMmI1NzljZGM2MGEgMTAwNjQ0CiAtLS0gYS9zcmMvc2FnZS9zdHJ1Y3R1cmUvcGFyZW50LnB5 eAogKysrIGIvc3JjL3NhZ2Uvc3RydWN0dXJlL3BhcmVudC5weXgKIEBAIC0xMjgsNyArMTI4LDcg QEAgZnJvbSBzYWdlLnN0cnVjdHVyZS5jb2VyY2VfbWFwcyBjaW1wb3J0IChOYW1lZENvbnZlcnRN YXAsIERlZmF1bHRDb252ZXJ0TWFwLApAQCAtMzg0OTgsNyArMzg0ODksNyBAQCBpbmRleCBiNjNl OGFhOTM0MS4uMzExYzY3NWRlMjcgMTAwNjQ0CiAgICAgICAgICAiIiIKICAgICAgICAgIFRFU1RT OjoKICAKLUBAIC0yNzA0LDcgKzI3MDQsNyBAQCBjZGVmIGNsYXNzIFBhcmVudChzYWdlLnN0cnVj dHVyZS5jYXRlZ29yeV9vYmplY3QuQ2F0ZWdvcnlPYmplY3QpOgorQEAgLTI3NTAsNyArMjc1MCw3 IEBAIGNkZWYgY2xhc3MgUGFyZW50KHNhZ2Uuc3RydWN0dXJlLmNhdGVnb3J5X29iamVjdC5DYXRl Z29yeU9iamVjdCk6CiAgICAgICAgICAgICAgICAgIGV4Y2VwdCBUeXBlRXJyb3I6CiAgICAgICAg ICAgICAgICAgICAgICBfcmVjb3JkX2V4Y2VwdGlvbigpCiAgCkBAIC0zODUwNyw3ICszODQ5OCw3 IEBAIGluZGV4IGI2M2U4YWE5MzQxLi4zMTFjNjc1ZGUyNyAxMDA2NDQKICAgICAgICAgICIiIgog ICAgICAgICAgT3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8gcHJvdmlkZSBhbiBhY3Rpb24gb2Ygc2Vs ZiBvbiBTIG9yIFMgb24gc2VsZgogICAgICAgICAgYmV5b25kIHdoYXQgd2FzIHNwZWNpZmllZCBp biBhY3Rpb25fbGlzdC4KLUBAIC0yNzE2LDcgKzI3MTYsNyBAQCBjZGVmIGNsYXNzIFBhcmVudChz YWdlLnN0cnVjdHVyZS5jYXRlZ29yeV9vYmplY3QuQ2F0ZWdvcnlPYmplY3QpOgorQEAgLTI3NjIs NyArMjc2Miw3IEBAIGNkZWYgY2xhc3MgUGFyZW50KHNhZ2Uuc3RydWN0dXJlLmNhdGVnb3J5X29i amVjdC5DYXRlZ29yeU9iamVjdCk6CiAgCiAgICAgICMgVE9ETzogcmVtb3ZlIG9uY2UgYWxsIHBh cmVudHMgaW4gU2FnZSB3aWxsIGluaGVyaXQgcHJvcGVybHkgZnJvbQogICAgICAjIFNldHMoKS5Q YXJlbnRNZXRob2RzLmFuX2VsZW1lbnQKQEAgLTM4NzQzLDcgKzM4NzM0LDcgQEAgaW5kZXggYTIx MmViNDE0YzAuLjMzZTM1MmI3ZjNkIDEwMDY0NAogK2NwZGVmIG5ld19FeHByZXNzaW9uX3dpbGQo cGFyZW50LCB1bnNpZ25lZCBpbnQgbj0/KQogK2NwZGVmIG5ld19FeHByZXNzaW9uX3N5bWJvbChw YXJlbnQsIG5hbWU9PywgbGF0ZXhfbmFtZT0/LCBkb21haW49PykKIGRpZmYgLS1naXQgYS9zcmMv c2FnZS9zeW1ib2xpYy9leHByZXNzaW9uLnB5eCBiL3NyYy9zYWdlL3N5bWJvbGljL2V4cHJlc3Np b24ucHl4Ci1pbmRleCA2YTcyNWEzNTEwMi4uZTVkY2YxMmQ2NDkgMTAwNjQ0CitpbmRleCA3OWIw M2U1OGQwNi4uZTE0Njc0Njc4YTAgMTAwNjQ0CiAtLS0gYS9zcmMvc2FnZS9zeW1ib2xpYy9leHBy ZXNzaW9uLnB5eAogKysrIGIvc3JjL3NhZ2Uvc3ltYm9saWMvZXhwcmVzc2lvbi5weXgKIEBAIC03 MDQsNyArNzA0LDcgQEAgY2RlZiBjbGFzcyBFeHByZXNzaW9uKEV4cHJlc3Npb25fYWJjKToKQEAg LTM4OTY4LDcgKzM4OTU5LDcgQEAgaW5kZXggMTk4N2EzOTNmODYuLmRiMWJhNmM1ZDU0IDEwMDY0 NAogLSAgICBjZGVmIF9pc19yZWdpc3RlcmVkKHNlbGYpIG5vZXhjZXB0CiArICAgIGNkZWYgX2lz X3JlZ2lzdGVyZWQoc2VsZikKIGRpZmYgLS1naXQgYS9zcmMvc2FnZS9zeW1ib2xpYy9mdW5jdGlv bi5weXggYi9zcmMvc2FnZS9zeW1ib2xpYy9mdW5jdGlvbi5weXgKLWluZGV4IDc4ZTJjZDdiNTFi Li5hN2NhNDA1MTg0YyAxMDA2NDQKK2luZGV4IDZmOThkZjE5OTY0Li5mMzNiOGViNDdlNiAxMDA2 NDQKIC0tLSBhL3NyYy9zYWdlL3N5bWJvbGljL2Z1bmN0aW9uLnB5eAogKysrIGIvc3JjL3NhZ2Uv c3ltYm9saWMvZnVuY3Rpb24ucHl4CiBAQCAtMjQ1LDE0ICsyNDUsMTQgQEAgY2RlZiBjbGFzcyBG dW5jdGlvbihTYWdlT2JqZWN0KToKQEAgLTM5MDU1LDcgKzM5MDQ2LDcgQEAgaW5kZXggY2NhMWJi NWQxOTYuLmYyMGM4ZmFmOTFhIDEwMDY0NAogICAgICBSZXR1cm4gYW4gYWxyZWFkeSBjcmVhdGVk IDpjbGFzczpgU3ltYm9saWNGdW5jdGlvbmAgZ2l2ZW4gdGhlIGhhc2guCiAgCiBkaWZmIC0tZ2l0 IGEvc3JjL3NhZ2Uvc3ltYm9saWMvcHluYWNfaW1wbC5weGkgYi9zcmMvc2FnZS9zeW1ib2xpYy9w eW5hY19pbXBsLnB4aQotaW5kZXggNDY1NmRlMDlkMjguLmE0M2U1M2Y0ZjNkIDEwMDY0NAoraW5k ZXggOWQ5ZjA1YzkxNDAuLmYzMWE1NDk4MjE4IDEwMDY0NAogLS0tIGEvc3JjL3NhZ2Uvc3ltYm9s aWMvcHluYWNfaW1wbC5weGkKICsrKyBiL3NyYy9zYWdlL3N5bWJvbGljL3B5bmFjX2ltcGwucHhp CiBAQCAtNjEsNyArNjEsNyBAQCBmcm9tIHNhZ2Uuc3ltYm9saWMuZnVuY3Rpb24gY2ltcG9ydCBG dW5jdGlvbgpAQCAtMzk1OTQsMTAgKzM5NTg1LDEwIEBAIGluZGV4IDQ2NTZkZTA5ZDI4Li5hNDNl NTNmNGYzZCAxMDA2NDQKICAgICAgbXBxX3NldChyYXQudmFsdWUsIGJpZ3JhdCkKICAgICAgbXBx X2Nhbm9uaWNhbGl6ZShyYXQudmFsdWUpCiBkaWZmIC0tZ2l0IGEvc3JjL3NhZ2Uvc3ltYm9saWMv cmluZy5weXggYi9zcmMvc2FnZS9zeW1ib2xpYy9yaW5nLnB5eAotaW5kZXggZWY4YTY5MDcxNGQu LjZlMTU0YTYwZmQ5IDEwMDY0NAoraW5kZXggZDBmNmQ5MzE4NmMuLjMyYTIyZTZmODYxIDEwMDY0 NAogLS0tIGEvc3JjL3NhZ2Uvc3ltYm9saWMvcmluZy5weXgKICsrKyBiL3NyYy9zYWdlL3N5bWJv bGljL3JpbmcucHl4Ci1AQCAtMTIyLDcgKzEyMiw3IEBAIGNkZWYgY2xhc3MgU3ltYm9saWNSaW5n KHNhZ2UucmluZ3MuYWJjLlN5bWJvbGljUmluZyk6CitAQCAtMTI1LDcgKzEyNSw3IEBAIGNkZWYg Y2xhc3MgU3ltYm9saWNSaW5nKHNhZ2UucmluZ3MuYWJjLlN5bWJvbGljUmluZyk6CiAgICAgICAg ICAiIiIKICAgICAgICAgIHJldHVybiByJ1x0ZXh0e1NSfScKICAKQEAgLTM5NjA2LDcgKzM5NTk3 LDcgQEAgaW5kZXggZWY4YTY5MDcxNGQuLjZlMTU0YTYwZmQ5IDEwMDY0NAogICAgICAgICAgIiIi CiAgICAgICAgICBFWEFNUExFUzo6CiAgCi1AQCAtMTIyMSw3ICsxMjIxLDcgQEAgY2RlZiBjbGFz cyBOdW1weVRvU1JNb3JwaGlzbShNb3JwaGlzbSk6CitAQCAtMTIyNCw3ICsxMjI0LDcgQEAgY2Rl ZiBjbGFzcyBOdW1weVRvU1JNb3JwaGlzbShNb3JwaGlzbSk6CiAgICAgICAgICBlbHNlOgogICAg ICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigie30gaXMgbm90IGEgbnVtcHkgbnVtYmVyIHR5cGUi LmZvcm1hdChudW1weV90eXBlKSkKICAKQEAgLTM5NjE1LDcgKzM5NjA2LDcgQEAgaW5kZXggZWY4 YTY5MDcxNGQuLjZlMTU0YTYwZmQ5IDEwMDY0NAogICAgICAgICAgIiIiCiAgICAgICAgICBFWEFN UExFUzoKICAKLUBAIC0xMjY4LDcgKzEyNjgsNyBAQCBjZGVmIGNsYXNzIFVuZGVyc2NvcmVTYWdl TW9ycGhpc20oTW9ycGhpc20pOgorQEAgLTEyNzEsNyArMTI3MSw3IEBAIGNkZWYgY2xhc3MgVW5k ZXJzY29yZVNhZ2VNb3JwaGlzbShNb3JwaGlzbSk6CiAgICAgICAgICBmcm9tIHNhZ2UuaW50ZXJm YWNlcy5zeW1weSBpbXBvcnQgc3ltcHlfaW5pdAogICAgICAgICAgc3ltcHlfaW5pdCgpCiAgCkBA IC0zOTYyNSw3ICszOTYxNiw3IEBAIGluZGV4IGVmOGE2OTA3MTRkLi42ZTE1NGE2MGZkOSAxMDA2 NDQKICAgICAgICAgIEVYQU1QTEVTOgogIAogZGlmZiAtLWdpdCBhL3NyYy9zYWdlL3N5bWJvbGlj L3N1YnN0aXR1dGlvbl9tYXBfaW1wbC5weGkgYi9zcmMvc2FnZS9zeW1ib2xpYy9zdWJzdGl0dXRp b25fbWFwX2ltcGwucHhpCi1pbmRleCBjMWRjM2JlNzQ4Yi4uZWE2MGU4OTlkMWEgMTAwNjQ0Citp bmRleCA3OWQ4ZDQ0OTFjZi4uN2Q5ZTM1Y2Y2MzAgMTAwNjQ0CiAtLS0gYS9zcmMvc2FnZS9zeW1i b2xpYy9zdWJzdGl0dXRpb25fbWFwX2ltcGwucHhpCiArKysgYi9zcmMvc2FnZS9zeW1ib2xpYy9z dWJzdGl0dXRpb25fbWFwX2ltcGwucHhpCiBAQCAtMjQsNyArMjQsNyBAQCBjZGVmIGNsYXNzIFN1 YnN0aXR1dGlvbk1hcChTYWdlT2JqZWN0KToKQEAgLTM5NjM1LDcgKzM5NjI2LDcgQEAgaW5kZXgg YzFkYzNiZTc0OGIuLmVhNjBlODk5ZDFhIDEwMDY0NAogLSAgICBjcGRlZiBFeHByZXNzaW9uIGFw cGx5X3RvKHNlbGYsIEV4cHJlc3Npb24gZXhwciwgdW5zaWduZWQgb3B0aW9ucykgbm9leGNlcHQ6 CiArICAgIGNwZGVmIEV4cHJlc3Npb24gYXBwbHlfdG8oc2VsZiwgRXhwcmVzc2lvbiBleHByLCB1 bnNpZ25lZCBvcHRpb25zKToKICAgICAgICAgICIiIgotICAgICAgICAgQXBwbHkgdGhlIHN1YnN0 aXR1dGlvbiB0byBhIHN5bWJvbGljIGV4cHJlc3Npb24KKyAgICAgICAgIEFwcGx5IHRoZSBzdWJz dGl0dXRpb24gdG8gYSBzeW1ib2xpYyBleHByZXNzaW9uLgogIAogQEAgLTUxLDcgKzUxLDcgQEAg Y2RlZiBjbGFzcyBTdWJzdGl0dXRpb25NYXAoU2FnZU9iamVjdCk6CiAgICAgICAgICByZXR1cm4g J1N1YnNNYXAnICAjIEdFeF90b19zdHIoJnguX2dvYmopCkBAIC0zOTY0NCw3ICszOTYzNSw3IEBA IGluZGV4IGMxZGMzYmU3NDhiLi5lYTYwZTg5OWQxYSAxMDA2NDQKIC1jZGVmIFN1YnN0aXR1dGlv bk1hcCBuZXdfU3Vic3RpdHV0aW9uTWFwX2Zyb21fR0V4TWFwKGNvbnN0IEdFeE1hcCYgc21hcCkg bm9leGNlcHQ6CiArY2RlZiBTdWJzdGl0dXRpb25NYXAgbmV3X1N1YnN0aXR1dGlvbk1hcF9mcm9t X0dFeE1hcChjb25zdCBHRXhNYXAmIHNtYXApOgogICAgICAiIiIKLSAgICAgV3JhcCBhIFB5bmFj IG9iamVjdCBpbnRvIGEgUHl0aG9uIG9iamVjdAorICAgICBXcmFwIGEgUHluYWMgb2JqZWN0IGlu dG8gYSBQeXRob24gb2JqZWN0LgogIAogQEAgLTc1LDcgKzc1LDcgQEAgY2RlZiBTdWJzdGl0dXRp b25NYXAgbmV3X1N1YnN0aXR1dGlvbk1hcF9mcm9tX0dFeE1hcChjb25zdCBHRXhNYXAmIHNtYXAp IG5vZXhjZXAKICAgICAgcmV0dXJuIHJlc3VsdApAQCAtMzk2NTMsNyArMzk2NDQsNyBAQCBpbmRl eCBjMWRjM2JlNzQ4Yi4uZWE2MGU4OTlkMWEgMTAwNjQ0CiAtY3BkZWYgU3Vic3RpdHV0aW9uTWFw IG1ha2VfbWFwKHN1YnNfZGljdCkgbm9leGNlcHQ6CiArY3BkZWYgU3Vic3RpdHV0aW9uTWFwIG1h a2VfbWFwKHN1YnNfZGljdCk6CiAgICAgICIiIgotICAgICBDb25zdHJ1Y3QgYSBuZXcgc3Vic3Rp dHV0aW9uIG1hcAorICAgICBDb25zdHJ1Y3QgYSBuZXcgc3Vic3RpdHV0aW9uIG1hcC4KICAKIGRp ZmYgLS1naXQgYS9zcmMvc2FnZS90ZXN0cy9zdGxfdmVjdG9yLnB5eCBiL3NyYy9zYWdlL3Rlc3Rz L3N0bF92ZWN0b3IucHl4CiBpbmRleCAyYTdjMWJmNWQwNS4uZjNiMjliMzBkZmUgMTAwNjQ0CmRp ZmYgLS1naXQgYS9zcmNwa2dzL3NhZ2VtYXRoL3BhdGNoZXMvMzc3MjAtc3BoaW54X25vX3JlcXVp cmVkLnBhdGNoIGIvc3JjcGtncy9zYWdlbWF0aC9wYXRjaGVzLzM3NzIwLXNwaGlueF9ub19yZXF1 aXJlZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMC4uMTMy NzI2MDBmOWFhMzIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3NhZ2VtYXRoL3BhdGNoZXMv Mzc3MjAtc3BoaW54X25vX3JlcXVpcmVkLnBhdGNoCkBAIC0wLDAgKzEsMzAgQEAKK2RpZmYgLS1n aXQgYS9wa2dzL3NhZ2VtYXRoLXJlcGwvcHlwcm9qZWN0LnRvbWwubTQgYi9wa2dzL3NhZ2VtYXRo LXJlcGwvcHlwcm9qZWN0LnRvbWwubTQKK2luZGV4IDJiYzI3NjE1OGE0Li4yZDJmMTMwMDhiZSAx MDA2NDQKKy0tLSBhL3BrZ3Mvc2FnZW1hdGgtcmVwbC9weXByb2plY3QudG9tbC5tNAorKysrIGIv cGtncy9zYWdlbWF0aC1yZXBsL3B5cHJvamVjdC50b21sLm00CitAQCAtMTksNiArMTksMTIgQEAg ZGVwZW5kZW5jaWVzID0gWworIGR5bmFtaWMgPSBbInZlcnNpb24iXQorIGluY2x1ZGUoYHB5cHJv amVjdF90b21sX21ldGFkYXRhLm00JylkbmwnCisgCisrW3Byb2plY3Qub3B0aW9uYWwtZGVwZW5k ZW5jaWVzXQorKyMgSW1wcm92ZWQgZm9ybWF0dGluZyBvZiBkb2NzdHJpbmdzIGluIHRoZSBoZWxw IHN5c3RlbQorK3NwaGlueCA9IFsKKysgICAgU1BLR19JTlNUQUxMX1JFUVVJUkVTX3NwaGlueAor K10KKysKKyBbcHJvamVjdC5yZWFkbWVdCisgZmlsZSA9ICJSRUFETUUucnN0IgorIGNvbnRlbnQt dHlwZSA9ICJ0ZXh0L3gtcnN0IgorZGlmZiAtLWdpdCBhL3NyYy9zYWdlL21pc2Mvc2FnZWluc3Bl Y3QucHkgYi9zcmMvc2FnZS9taXNjL3NhZ2VpbnNwZWN0LnB5CitpbmRleCAxMzg2MDVjMzVmMC4u OTM1YTkyMjI5NzAgMTAwNjQ0CistLS0gYS9zcmMvc2FnZS9taXNjL3NhZ2VpbnNwZWN0LnB5Cisr KysgYi9zcmMvc2FnZS9taXNjL3NhZ2VpbnNwZWN0LnB5CitAQCAtNDIsNyArNDIsNyBAQAorIAor ICAgICBzYWdlOiBzYWdlX2dldGZpbGUoQmxvY2tGaW5kZXIpCisgICAgICcuLi4vc2FnZS9taXNj L3NhZ2VpbnNwZWN0LnB5JworLSAgICBzYWdlOiBzYWdlX2dldGRvYyhCbG9ja0ZpbmRlcikubHN0 cmlwKClbOjUwXQorKyAgICBzYWdlOiBzYWdlX2dldGRvYyhCbG9ja0ZpbmRlcikubHN0cmlwKClb OjUwXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG5lZWRzIHNwaGlu eAorICAgICAnUHJvdmlkZSBhICJ0b2tlbmVhdGVyKCkiIG1ldGhvZCB0byBkZXRlY3QgdGhlIGVu ZCAnCisgICAgIHNhZ2U6IHNhZ2VfZ2V0c291cmNlKEJsb2NrRmluZGVyKQorICAgICAnY2xhc3Mg QmxvY2tGaW5kZXI6Li4uJwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9zYWdlbWF0aC9wYXRjaGVzL2Zp eC1lY20ucGF0Y2ggYi9zcmNwa2dzL3NhZ2VtYXRoL3BhdGNoZXMvZml4LWVjbS5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTk5ZTQ5YmQzZjBiNzQuLjAwMDAwMDAwMDAwMDAw Ci0tLSBhL3NyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hlcy9maXgtZWNtLnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsMTMgKzAsMCBAQAotU2VlOiBodHRwczovL2dpdGh1Yi5jb20vc2FnZW1hdGgvc2Fn ZS9wdWxsLzM3MDExI2lzc3VlY29tbWVudC0yMDIzMDg5NzQzCi0KLS0tLSBhL3NyYy9zYWdlL2Vu di5weQotKysrIGIvc3JjL3NhZ2UvZW52LnB5Ci1AQCAtMjEyLDcgKzIxMiw3IEBAIE1BWElNQSA9 IHZhcigiTUFYSU1BIiwgIm1heGltYSIpCi0gTUFYSU1BX0ZBUyA9IHZhcigiTUFYSU1BX0ZBUyIp Ci0gS0VOWk9fRkFTID0gdmFyKCJLRU5aT19GQVMiKQotIFNBR0VfTkFVVFlfQklOU19QUkVGSVgg PSB2YXIoIlNBR0VfTkFVVFlfQklOU19QUkVGSVgiLCAiIikKLS1TQUdFX0VDTUJJTiA9IHZhcigi U0FHRV9FQ01CSU4iKQotK1NBR0VfRUNNQklOID0gdmFyKCJTQUdFX0VDTUJJTiIsICJlY20iKQot IFJVQklLU19CSU5TX1BSRUZJWCA9IHZhcigiUlVCSUtTX0JJTlNfUFJFRklYIiwgIiIpCi0gRk9V UlRJVFdPX0hJTEJFUlQgPSB2YXIoIkZPVVJUSVRXT19ISUxCRVJUIikKLSBGT1VSVElUV09fTUFS S09WID0gdmFyKCJGT1VSVElUV09fTUFSS09WIikKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc2FnZW1h dGgvcGF0Y2hlcy9maXgtbG9jay5wYXRjaCBiL3NyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hlcy9maXgt bG9jay5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjRkYjQxMjQ0MTliNDcu LjAwMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hlcy9maXgtbG9jay5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLVNlZTogaHR0cHM6Ly9naXRodWIu Y29tL3NhZ2VtYXRoL3NhZ2UvcHVsbC8zNjc0MSNpc3N1ZWNvbW1lbnQtMjAyNzM1NzQxNAotCi1k aWZmIC0tZ2l0IGEvc3JjL3NhZ2UvZmVhdHVyZXMvX19pbml0X18ucHkgYi9zcmMvc2FnZS9mZWF0 dXJlcy9fX2luaXRfXy5weQotaW5kZXggNmFmOTQxM2U1NS4uYThiMTFlZjdkYiAxMDA2NDQKLS0t LSBhL3NyYy9zYWdlL2ZlYXR1cmVzL19faW5pdF9fLnB5Ci0rKysgYi9zcmMvc2FnZS9mZWF0dXJl cy9fX2luaXRfXy5weQotQEAgLTE2Miw3ICsxNjIsNyBAQCBjbGFzcyBGZWF0dXJlKFRyaXZpYWxV bmlxdWVSZXByZXNlbnRhdGlvbik6Ci0gICAgICAgICAjIHNoYXJlZCBhbW9uZyBzdWJwcm9jZXNz ZXMuIFRodXMgd2UgdXNlIHRoZSBWYWx1ZSBjbGFzcyBmcm9tIHRoZQotICAgICAgICAgIyBtdWx0 aXByb2Nlc3NpbmcgbW9kdWxlIChjZi4gc2VsZi5fc2VlbiBvZiBjbGFzcyBBdmFpbGFibGVTb2Z0 d2FyZSkKLSAgICAgICAgIGZyb20gbXVsdGlwcm9jZXNzaW5nIGltcG9ydCBWYWx1ZQotLSAgICAg ICAgc2VsZi5fbnVtX2hpZGluZ3MgPSBWYWx1ZSgnaScsIDApCi0rICAgICAgICBzZWxmLl9udW1f aGlkaW5ncyA9IFZhbHVlKCdpJywgMCwgbG9jaz1GYWxzZSkKLSAKLSAgICAgICAgIHRyeToKLSAg ICAgICAgICAgICBmcm9tIHNhZ2UubWlzYy5wYWNrYWdlIGltcG9ydCBzcGtnX3R5cGUKZGlmZiAt LWdpdCBhL3NyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hlcy9nZXRfcGF0Y2hlcyBiL3NyY3BrZ3Mvc2Fn ZW1hdGgvcGF0Y2hlcy9nZXRfcGF0Y2hlcwppbmRleCAxYzdmN2ZlMzE2OTdkOC4uNTMzMmUwMDMy NDM1ODAgMTAwNzU1Ci0tLSBhL3NyY3BrZ3Mvc2FnZW1hdGgvcGF0Y2hlcy9nZXRfcGF0Y2hlcwor KysgYi9zcmNwa2dzL3NhZ2VtYXRoL3BhdGNoZXMvZ2V0X3BhdGNoZXMKQEAgLTIzLDMgKzIzLDQg QEAgY2QgJChkaXJuYW1lICIkMCIpCiAjIG5lZWRzIHJldmlldwogZ2V0X3ByIDAzNzY2NyAiZml4 IG5vZXhjZXB0IgogZ2V0X3ByIDM3NDkyICJzaW5ndWxhciA0LjMuMnAxNiIKK2dldF9wciAzNzcy MCAic3BoaW54X25vX3JlcXVpcmVkIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9zYWdlbWF0aC90ZW1w bGF0ZSBiL3NyY3BrZ3Mvc2FnZW1hdGgvdGVtcGxhdGUKaW5kZXggZmMwMjQ0Y2FmNTUyMjYuLjZk Njc1MTIzOWUwMTZlIDEwMDY0NAotLS0gYS9zcmNwa2dzL3NhZ2VtYXRoL3RlbXBsYXRlCisrKyBi L3NyY3BrZ3Mvc2FnZW1hdGgvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICdzYWdlbWF0aCcKIHBrZ25hbWU9c2FnZW1hdGgKLXZlcnNpb249MTAuNC5iZXRhMAor dmVyc2lvbj0xMC40LmJldGExCiByZXZpc2lvbj0xCiBidWlsZF93cmtzcmM9cGtncy9zYWdlbWF0 aC1zdGFuZGFyZAogYnVpbGRfc3R5bGU9cHl0aG9uMy1wZXA1MTcKQEAgLTMyLDcgKzMyLDcgQEAg bGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3d3dy5zYWdlbWF0 aC5vcmcvIgogY2hhbmdlbG9nPSJodHRwczovL2dpdGh1Yi5jb20vc2FnZW1hdGgvc2FnZS9yZWxl YXNlcyIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL3NhZ2VtYXRoL3NhZ2UvYXJjaGl2 ZS9yZWZzL3RhZ3MvJHZlcnNpb24udGFyLmd6IgotY2hlY2tzdW09YjEyMzg0MjM0YTY3NGFiZmIw YjIzMDIzMTJmMTBmMjRhOTVmYzNmYjRhZTg0OTU2ZGQyYmUwNmRhMTE3MjM0OQorY2hlY2tzdW09 NjdhYWEyNDM2YjQxYjIyNTViODkzMDcxYmUxMGU0MDBmYzBhYzY3MDI2NDY2N2NhOGNhMzVkY2Y3 NjExZDFkMAogbm9jcm9zcz0iZHVlIHRvIG50bCAoZWNsaWIsIHNpbmd1bGFyKSwgZmZsYXMtZmZw YWNrLCBnaXZhcm8sIGxpbmJveCwgc3ltcG93LCBtYXhpbWEiCiAKICMgcGFyYWxsZWwgYnVpbGQK --===============0147347542232380650==--