From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=ALL_TRUSTED,PDS_OTHER_BAD_TLD, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 16852 invoked from network); 15 Feb 2022 22:50:10 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 15 Feb 2022 22:50:10 -0000 Content-Type: multipart/mixed; boundary="===============4683402827638062133==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_Update_libgdal_and_proj_and_rebuild_against_them?= To: ml@inbox.vuxu.org From: ar-jan Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Tue, 15 Feb 2022 23:50:09 +0100 List-Id: Message-ID: <20220215225009.GT9UWhITHy14uWOmTWY0CR9KE9ttAdqQIAUK2r3wpkI@z> GitHub notification mails are now in MIME to allow UTF8. --===============4683402827638062133== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgYXItamFuIGFnYWluc3QgbWFzdGVy IG9uIHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS9hci1q YW4vdm9pZC1wYWNrYWdlcyBnZGFsLXByb2oKaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgv dm9pZC1wYWNrYWdlcy9wdWxsLzMxNjg3CgpVcGRhdGUgbGliZ2RhbCBhbmQgcHJvaiBhbmQgcmVi dWlsZCBhZ2FpbnN0IHRoZW0KPCEtLSBNYXJrIGl0ZW1zIHdpdGggW3hdIHdoZXJlIGFwcGxpY2Fi bGUgLS0+DQoNCiMjIyMgR2VuZXJhbA0KLSBbIF0gVGhpcyBpcyBhIG5ldyBwYWNrYWdlIGFuZCBp dCBjb25mb3JtcyB0byB0aGUgW3F1YWxpdHkgcmVxdWlyZW1lbnRzXShodHRwczovL2dpdGh1Yi5j b20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2Jsb2IvbWFzdGVyL01hbnVhbC5tZCNxdWFsaXR5 LXJlcXVpcmVtZW50cykNCg0KIyMjIyBIYXZlIHRoZSByZXN1bHRzIG9mIHRoZSBwcm9wb3NlZCBj aGFuZ2VzIGJlZW4gdGVzdGVkPw0KLSBbIF0gSSB1c2UgdGhlIHBhY2thZ2VzIGFmZmVjdGVkIGJ5 IHRoZSBwcm9wb3NlZCBjaGFuZ2VzIG9uIGEgcmVndWxhciBiYXNpcyBhbmQgY29uZmlybSB0aGlz IFBSIHdvcmtzIGZvciBtZQ0KLSBbIF0gSSBnZW5lcmFsbHkgZG9uJ3QgdXNlIHRoZSBhZmZlY3Rl ZCBwYWNrYWdlcyBidXQgYnJpZWZseSB0ZXN0ZWQgdGhpcyBQUg0KDQo8IS0tDQpJZiBHaXRIdWIg Q0kgY2Fubm90IGJlIHVzZWQgdG8gdmFsaWRhdGUgdGhlIGJ1aWxkIHJlc3VsdCAoZm9yIGV4YW1w bGUsIGlmIHRoZQ0KYnVpbGQgaXMgbGlrZWx5IHRvIHRha2Ugc2V2ZXJhbCBob3VycyksIG1ha2Ug c3VyZSB0bw0KW3NraXAgQ0ldKGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFj a2FnZXMvYmxvYi9tYXN0ZXIvQ09OVFJJQlVUSU5HLm1kI2NvbnRpbnVvdXMtaW50ZWdyYXRpb24p Lg0KV2hlbiBza2lwcGluZyBDSSwgdW5jb21tZW50IGFuZCBmaWxsIG91dCB0aGUgZm9sbG93aW5n IHNlY3Rpb24uDQpOb3RlOiBmb3IgYnVpbGRzIHRoYXQgYXJlIGxpa2VseSB0byBjb21wbGV0ZSBp biBsZXNzIHRoYW4gMiBob3VycywgaXQgaXMgbm90DQphY2NlcHRhYmxlIHRvIHNraXAgQ0kuDQot LT4NCjwhLS0gDQojIyMjIERvZXMgaXQgYnVpbGQgYW5kIHJ1biBzdWNjZXNzZnVsbHk/IA0KKFBs ZWFzZSBjaG9vc2UgYXQgbGVhc3Qgb25lIG5hdGl2ZSBidWlsZCBhbmQsIGlmIHN1cHBvcnRlZCwg YXQgbGVhc3Qgb25lIGNyb3NzIGJ1aWxkLiBNb3JlIGFyZSBiZXR0ZXIuKQ0KLSBbIF0gSSBidWls dCB0aGlzIFBSIGxvY2FsbHkgZm9yIG15IG5hdGl2ZSBhcmNoaXRlY3R1cmUsIChBUkNILUxJQkMp DQotIFsgXSBJIGJ1aWx0IHRoaXMgUFIgbG9jYWxseSBmb3IgdGhlc2UgYXJjaGl0ZWN0dXJlcyAo aWYgc3VwcG9ydGVkLiBtYXJrIGNyb3NzYnVpbGRzKToNCiAgLSBbIF0gYWFyY2g2NC1tdXNsDQog IC0gWyBdIGFybXY3bA0KICAtIFsgXSBhcm12NmwtbXVzbA0KLS0+DQoKCkEgcGF0Y2ggZmlsZSBm cm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8zMTY4 Ny5wYXRjaCBpcyBhdHRhY2hlZA== --===============4683402827638062133== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-gdal-proj-31687.patch" RnJvbSA4OTgxNmI2ZDhlNmViYzMxNzU2MTVkNDY0Y2E2NWI2YWY5MDVjYWMyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBcmphbiBNb3NzZWwgPGFyamFubW9zc2VsQGdtYWlsLmNvbT4K RGF0ZTogU3VuLCAxMyBGZWIgMjAyMiAyMzoxODo0MyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDEv MTddIHByb2o6IHVwZGF0ZSB0byA3LjIuMS4KCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgIHwg IDIgKy0KIHNyY3BrZ3MvcHJvai90ZW1wbGF0ZSB8IDEzICsrKysrKystLS0tLS0KIDIgZmlsZXMg Y2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Nv bW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IDBjNjAyNjBiNDY0Mi4uYjBmY2ZkMDQ5 MjZlIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTMw NjksNyArMzA2OSw3IEBAIGxpYndpdGhzY3RwLnNvLjEgbGtzY3RwLXRvb2xzLTEuMC4xN18xCiBs aWJuc3NfbGRhcC5zby4yIG5zcy1wYW0tbGRhcGQtMC45LjdfNAogbGlidW5zaGllbGQuc28uMCBs aWJ1bnNoaWVsZC0wLjZfMQogbGliTXlHVUlFbmdpbmUuc28uMy40LjEgbGlibXlndWktMy40LjFf MQotbGlicHJvai5zby4xOCBwcm9qLTYuMy4wXzEKK2xpYnByb2ouc28uMTkgcHJvai03LjIuMV8x CiBsaWJubG9wdC5zby4wIG5sb3B0LTIuNC4yXzEKIGxpYmViLnNvLjE2IGxpYmViLTQuMy4zXzEK IGxpYmNoaXBjYXJkLnNvLjYgbGliY2hpcGNhcmQtNS4wLjRfMQpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9wcm9qL3RlbXBsYXRlIGIvc3JjcGtncy9wcm9qL3RlbXBsYXRlCmluZGV4IDUxYzQ2MzgyMzRi ZC4uZTNmYmQ0MzkwM2M3IDEwMDY0NAotLS0gYS9zcmNwa2dzL3Byb2ovdGVtcGxhdGUKKysrIGIv c3JjcGtncy9wcm9qL3RlbXBsYXRlCkBAIC0xLDE3ICsxLDE5IEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICdwcm9qJwogcGtnbmFtZT1wcm9qCi12ZXJzaW9uPTYuMy4yCit2ZXJzaW9uPTcuMi4xCiBy ZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1jbWFrZQotY29uZmlndXJlX2FyZ3M9Ii1EUFJPSl9URVNU Uz1PRkYiCitjb25maWd1cmVfYXJncz0iLURCVUlMRF9URVNUSU5HPU9GRiIKIGhvc3RtYWtlZGVw ZW5kcz0icHl0aG9uMyIKLW1ha2VkZXBlbmRzPSJzcWxpdGUtZGV2ZWwiCittYWtlZGVwZW5kcz0i bGliY3VybC1kZXZlbAorIHNxbGl0ZS1kZXZlbAorIHRpZmYtZGV2ZWwiCiBzaG9ydF9kZXNjPSJD YXJ0b2dyYXBoaWMgUHJvamVjdGlvbnMgTGlicmFyeSIKIG1haW50YWluZXI9IkpvaG4gPG1lQGpv aG5ueW5hdG9yLmRldj4iCiBsaWNlbnNlPSJNSVQiCi1ob21lcGFnZT0iaHR0cHM6Ly9wcm9qNC5v cmciCitob21lcGFnZT0iaHR0cHM6Ly9wcm9qLm9yZyIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9kb3du bG9hZC5vc2dlby5vcmcvcHJvai9wcm9qLSR7dmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09Y2I3 NzZhNzBmNDBjMzU1NzlhZTRiYTA0ZmI0YTM4OGMxZDFjZTAyNWExZGY2MTcxMzUwZGMxOWYyNWI4 MDMxMQorY2hlY2tzdW09YjM4NGY0MmU1ZmI5YzZkMDFmZTVmYTRkMzFkYTJlOTEzMjk2Njg4NjNh Njg0Zjk3YmU1ZDQ3NjBkYmJmMGExNAogCiBwb3N0X2luc3RhbGwoKSB7CiAJdmxpY2Vuc2UgQ09Q WUlORwpAQCAtMjIsNyArMjQsNiBAQCBwcm9qLWRldmVsX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVz Yys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSB1c3Iv aW5jbHVkZQotCQl2bW92ZSB1c3Ivc2hhcmUvbWFuL21hbjMKIAkJdm1vdmUgdXNyL2xpYi9jbWFr ZQogCQl2bW92ZSAidXNyL2xpYi8qLnNvIgogCX0KCkZyb20gYzU4MGUxZDE4NWVjZjlhYzIwMGRl NTAyMjk3ODIwYzc2YmJhZDRiZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQXJqYW4g TW9zc2VsIDxhcmphbm1vc3NlbEBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMTUgRmViIDIwMjIgMTQ6 NDQ6NTQgKzAxMDAKU3ViamVjdDogW1BBVENIIDAyLzE3XSBOZXcgcGFja2FnZTogbGlicnR0b3Bv LTEuMS4wCgpUaGUgUlQgVG9wb2xvZ3kgTGlicmFyeSBleHBvc2VzIGFuIEFQSSB0byBjcmVhdGUg YW5kIG1hbmFnZSBzdGFuZGFyZAooSVNPIDEzMjQ5IGFrYSBTUUwvTU0pIHRvcG9sb2dpZXMgdXNp bmcgdXNlci1wcm92aWRlZCBkYXRhIHN0b3Jlcy4KCkl0IGlzIG5lZWRlZCB0byBidWlsZCBsaWJz cGF0aWFsaXRlIChhcyBvZiB2NS4wLjEpIHdpdGggdGVzdHMgcGFzc2luZy4KLS0tCiBjb21tb24v c2hsaWJzICAgICAgICAgICAgICB8ICAxICsKIHNyY3BrZ3MvbGlicnR0b3BvLWRldmVsICAgIHwg IDEgKwogc3JjcGtncy9saWJydHRvcG8vdGVtcGxhdGUgfCAzMyArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgMzUgaW5zZXJ0aW9ucygrKQogY3JlYXRl IG1vZGUgMTIwMDAwIHNyY3BrZ3MvbGlicnR0b3BvLWRldmVsCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjcGtncy9saWJydHRvcG8vdGVtcGxhdGUKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIv Y29tbW9uL3NobGlicwppbmRleCBiMGZjZmQwNDkyNmUuLjczNGMxNjI4MWYwZSAxMDA2NDQKLS0t IGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC00MTEwLDMgKzQxMTAsNCBA QCBsaWJhd3RfeGF3dC5zbyBvcGVuamRrMTctanJlLTE3LjAuMSsxMl8xCiBsaWJqYXZhLnNvIG9w ZW5qZGsxNy1qcmUtMTcuMC4xKzEyXzEKIGxpYmpsaS5zbyBvcGVuamRrMTctanJlLTE3LjAuMSsx Ml8xCiBsaWJqdm0uc28gb3BlbmpkazE3LWpyZS0xNy4wLjErMTJfMQorbGlicnR0b3BvLnNvLjEg bGlicnR0b3BvLTEuMS4wXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGlicnR0b3BvLWRldmVsIGIv c3JjcGtncy9saWJydHRvcG8tZGV2ZWwKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAw MDAwMDAwLi5hY2YzNjA3ZjVmZWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpYnJ0dG9w by1kZXZlbApAQCAtMCwwICsxIEBACitsaWJydHRvcG8KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm aWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYnJ0dG9wby90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGli cnR0b3BvL3RlbXBsYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u Y2ZjODcwNDFlMDgzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saWJydHRvcG8vdGVtcGxh dGUKQEAgLTAsMCArMSwzMyBAQAorIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGlicnR0b3BvJworcGtn bmFtZT1saWJydHRvcG8KK3ZlcnNpb249MS4xLjAKK3JldmlzaW9uPTEKK3dya3NyYz0iJHtwa2du YW1lfSIKK2J1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKK2hvc3RtYWtlZGVwZW5kcz0iYmFzZS1k ZXZlbCBhdXRvY29uZi1hcmNoaXZlIgorbWFrZWRlcGVuZHM9ImJhc2UtZGV2ZWwgYXV0b2NvbmYt YXJjaGl2ZSBnZW9zLWRldmVsIgorc2hvcnRfZGVzYz0iUlQgVG9wb2xvZ3kgTGlicmFyeSBleHBv c2VzIGFuIEFQSSBmb3IgbWFuYWdpbmcgc3RhbmRhcmQgdG9wb2xvZ2llcyIKK21haW50YWluZXI9 IkFyamFuIE1vc3NlbCA8YXJqYW5tb3NzZWxAZ21haWwuY29tPiIKK2xpY2Vuc2U9IkdQTC0yLjAt b3ItbGF0ZXIiCitob21lcGFnZT0iaHR0cHM6Ly9naXQub3NnZW8ub3JnL2dpdGVhL3J0dG9wby9s aWJydHRvcG8iCitkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0Lm9zZ2VvLm9yZy9naXRlYS9ydHRvcG8v bGlicnR0b3BvL2FyY2hpdmUvbGlicnR0b3BvLSR7dmVyc2lvbn0udGFyLmd6IgorY2hlY2tzdW09 IjJlMmZjYWJiNDgxOTNhNzEyYTZjNzZhYzlhOWJlMmE1M2Y4MmUzMmY5MWEyYmM4MzRkOWYxYjRm YTljZDg3OWYiCisKK2lmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgorCWhvc3RtYWtlZGVwZW5k cys9IiBnZW9zLWRldmVsIgorZmkKKworcHJlX2NvbmZpZ3VyZSgpIHsKKwlhdXRvcmVjb25mIC1p ZgorfQorCitsaWJydHRvcG8tZGV2ZWxfcGFja2FnZSgpIHsKKwlkZXBlbmRzPSIkcGtnbmFtZT49 JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKKwlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmls ZXMiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9pbmNsdWRlCisJCXZtb3ZlICJ1c3Iv bGliLyouc28iCisJCXZtb3ZlICJ1c3IvbGliLyouYSIKKwkJdm1vdmUgdXNyL2xpYi9wa2djb25m aWcKKwl9Cit9CgpGcm9tIDg1MjRkMmFmOWIyNDVjOTg5ZGU2Nzg2NjFjYWZkZGI0ZDk0ZTY2MmMg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE55eDcwIDxuLnkueEBibHVld2luLmNoPgpE YXRlOiBUaHUsIDI2IE5vdiAyMDIwIDE4OjQ3OjI1ICswMTAwClN1YmplY3Q6IFtQQVRDSCAwMy8x N10gTmV3IHBhY2thZ2U6IGxpYmttbC0xLjMuMAoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICA2ICsrKysrKwogc3JjcGtncy9saWJrbWwtZGV2ZWwgICAgICAg ICAgICAgICAgICAgfCAgMSArCiBzcmNwa2dzL2xpYmttbC9wYXRjaGVzL05PVU5DUllQVC5wYXRj aCB8IDE3ICsrKysrKysrKysrKysrKysKIHNyY3BrZ3MvbGlia21sL3RlbXBsYXRlICAgICAgICAg ICAgICAgIHwgMjcgKysrKysrKysrKysrKysrKysrKysrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwg NTEgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTIwMDAwIHNyY3BrZ3MvbGlia21sLWRldmVs CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saWJrbWwvcGF0Y2hlcy9OT1VOQ1JZUFQucGF0 Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpYmttbC90ZW1wbGF0ZQoKZGlmZiAtLWdp dCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IDczNGMxNjI4MWYwZS4uN2Nm ODc2NjAwMDg5IDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMK QEAgLTQxMTEsMyArNDExMSw5IEBAIGxpYmphdmEuc28gb3BlbmpkazE3LWpyZS0xNy4wLjErMTJf MQogbGliamxpLnNvIG9wZW5qZGsxNy1qcmUtMTcuMC4xKzEyXzEKIGxpYmp2bS5zbyBvcGVuamRr MTctanJlLTE3LjAuMSsxMl8xCiBsaWJydHRvcG8uc28uMSBsaWJydHRvcG8tMS4xLjBfMQorbGli a21sYmFzZS5zby4xIGxpYmttbC0xLjMuMF8xCitsaWJrbWxkb20uc28uMSBsaWJrbWwtMS4zLjBf MQorbGlia21sZW5naW5lLnNvLjEgbGlia21sLTEuMy4wXzEKK2xpYmttbHJlZ2lvbmF0b3Iuc28u MSBsaWJrbWwtMS4zLjBfMQorbGlia21seHNkLnNvLjEgbGlia21sLTEuMy4wXzEKK2xpYmttbGNv bnZlbmllbmNlLnNvLjEgbGlia21sLTEuMy4wXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGlia21s LWRldmVsIGIvc3JjcGtncy9saWJrbWwtZGV2ZWwKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXgg MDAwMDAwMDAwMDAwLi5jZjEyYmUxMDJmNDIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xp YmttbC1kZXZlbApAQCAtMCwwICsxIEBACitsaWJrbWwKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm aWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYmttbC9wYXRjaGVzL05PVU5DUllQVC5wYXRjaCBi L3NyY3BrZ3MvbGlia21sL3BhdGNoZXMvTk9VTkNSWVBULnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNWI3ZTAxNmMwZTAyCi0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9saWJrbWwvcGF0Y2hlcy9OT1VOQ1JZUFQucGF0Y2gKQEAgLTAsMCArMSwxNyBAQAor bWluaXppcC9jcnlwdC5oIHdhcyByZW1vdmVkIGZyb20gdGhlIHBhY2tldCBtaW5pemlwLTEuMi4x MV8yLiAKKword2l0aCAiI2RlZmluZSBOT1VOQ1JZUFQiIGxpYmttbCBjYW4gYmUgYnVpbHQgd2l0 aG91dCAiY3J5cHQuaCIKK2h0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2Fn ZXMvY29tbWl0Lzk1MmFjOTEzY2YKK2h0dHBzOi8vZ2l0aHViLmNvbS9tYWRsZXIvemxpYi9wdWxs LzIyOQorCistLS0gYS9zcmMva21sL2Jhc2UvY29udHJpYi9taW5pemlwL3VuemlwLmMJMjAxNS0x Mi0yMSAxODoyMzowNS4wMDAwMDAwMDAgKzAxMDAKKysrKyBiL3NyYy9rbWwvYmFzZS9jb250cmli L21pbml6aXAvdW56aXAuYwkyMDIwLTExLTI2IDE1OjQ1OjU1LjAzMzgzNTgxNiArMDEwMAorQEAg LTQyLDcgKzQyLDcgQEAKKyAjaW5jbHVkZSA8emxpYi5oPiAvL1JSCisgI2luY2x1ZGUgInVuemlw LmgiCisgI2luY2x1ZGUgImlvbWVtX3NpbXBsZS5oIgorLSN1bmRlZiBOT1VOQ1JZUFQKKysjZGVm aW5lIE5PVU5DUllQVAorIAorICNpZmRlZiBTVERDCisgIyAgaW5jbHVkZSA8c3RkZGVmLmg+CmRp ZmYgLS1naXQgYS9zcmNwa2dzL2xpYmttbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGlia21sL3RlbXBs YXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYjY3ZWVjZTRkOGJh Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saWJrbWwvdGVtcGxhdGUKQEAgLTAsMCArMSwy NyBAQAorIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGlia21sJworcGtnbmFtZT1saWJrbWwKK3ZlcnNp b249MS4zLjAKK3JldmlzaW9uPTEKK2J1aWxkX3N0eWxlPWNtYWtlCittYWtlZGVwZW5kcz0iYm9v c3QtZGV2ZWwKKyBleHBhdC1kZXZlbAorIG1pbml6aXAtZGV2ZWwKKyB1cmlwYXJzZXItZGV2ZWwK KyB6bGliLWRldmVsIgorc2hvcnRfZGVzYz0iTGlicmFyeSB0byBtYW5pcHVsYXRlIEtNTCBPR0Mg ZmlsZXMiCittYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgorbGlj ZW5zZT0iR1BMLTMuMC1vci1sYXRlciIKK2hvbWVwYWdlPSJodHRwczovL2dpdGh1Yi5jb20vbGli a21sL2xpYmttbCIKK2Rpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL2xpYmttbC9saWJrbWwv YXJjaGl2ZS8ke3ZlcnNpb259LnRhci5neiIKK2NoZWNrc3VtPTg4OTI0MzllNTU3MDA5MTk2NWFh ZmZlMzBiMDg2MzFmZGY3Y2E3ZjgxZjY0OTViNDY0OGYwOTUwZDdlYTc5NjMKKworbGlia21sLWRl dmVsX3BhY2thZ2UoKSB7CisJZGVwZW5kcz0iJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2 aXNpb259IgorCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlwa2dfaW5zdGFs bCgpIHsKKwkJdm1vdmUgdXNyL2luY2x1ZGUKKwkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcKKwkJ dm1vdmUgdXNyL2xpYi9jbWFrZQorCQl2bW92ZSAidXNyL2xpYi8qLnNvIgorCX0KK30KCkZyb20g NGVjMDUwZDRlMTdhNzMzZTUwZTg1OGU1OTM4ZTczZWM1Yzk0MWZlNyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogQXJqYW4gTW9zc2VsIDxhcmphbm1vc3NlbEBnbWFpbC5jb20+CkRhdGU6 IFR1ZSwgMTUgRmViIDIwMjIgMjI6NDY6NDUgKzAxMDAKU3ViamVjdDogW1BBVENIIDA0LzE3XSBO ZXcgcGFja2FnZTogbGlic3BhdGlhbGl0ZS01LjAuMQoKLS0tCiBjb21tb24vc2hsaWJzICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMSArKysrKwogc3JjcGtncy9saWJzcGF0aWFs aXRlLWRldmVsICAgICAgICAgICAgICAgICAgIHwgIDEgKwogLi4uL3BhdGNoZXMvZGlzYWJsZV9j aGVja19kcm9wX3JlbmFtZS5wYXRjaCAgIHwgMjggKysrKysrKysrKysrKwogLi4uL3BhdGNoZXMv ZGlzYWJsZV9jaGVja19zcWxfc3RtdC5wYXRjaCAgICAgIHwgMjkgKysrKysrKysrKysrKwogc3Jj cGtncy9saWJzcGF0aWFsaXRlL3RlbXBsYXRlICAgICAgICAgICAgICAgIHwgNDIgKysrKysrKysr KysrKysrKysrKwogNSBmaWxlcyBjaGFuZ2VkLCAxMTEgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1v ZGUgMTIwMDAwIHNyY3BrZ3MvbGlic3BhdGlhbGl0ZS1kZXZlbAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvbGlic3BhdGlhbGl0ZS9wYXRjaGVzL2Rpc2FibGVfY2hlY2tfZHJvcF9yZW5hbWUu cGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2xpYnNwYXRpYWxpdGUvcGF0Y2hlcy9k aXNhYmxlX2NoZWNrX3NxbF9zdG10LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9s aWJzcGF0aWFsaXRlL3RlbXBsYXRlCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1v bi9zaGxpYnMKaW5kZXggN2NmODc2NjAwMDg5Li45OGEwNDA1ZDZhYmIgMTAwNjQ0Ci0tLSBhL2Nv bW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtNDExNywzICs0MTE3LDE0IEBAIGxp YmttbGVuZ2luZS5zby4xIGxpYmttbC0xLjMuMF8xCiBsaWJrbWxyZWdpb25hdG9yLnNvLjEgbGli a21sLTEuMy4wXzEKIGxpYmttbHhzZC5zby4xIGxpYmttbC0xLjMuMF8xCiBsaWJrbWxjb252ZW5p ZW5jZS5zby4xIGxpYmttbC0xLjMuMF8xCitsaWJzcGF0aWFsaXRlLnNvLjcgbGlic3BhdGlhbGl0 ZS01LjAuMV8xCittb2Rfc3BhdGlhbGl0ZS5zby43IGxpYnNwYXRpYWxpdGUtNS4wLjFfMQorbGli Z3Jhc3NfZGJtaWJhc2UuNy44LnNvIGdyYXNzLTcuOC43UkMxXzEKK2xpYmdyYXNzX2RibWljbGll bnQuNy44LnNvIGdyYXNzLTcuOC43UkMxXzEKK2xpYmdyYXNzX2dpcy43Ljguc28gZ3Jhc3MtNy44 LjdSQzFfMQorbGliZ3Jhc3NfZ3Byb2ouNy44LnNvIGdyYXNzLTcuOC43UkMxXzEKK2xpYmdyYXNz X2ltYWdlcnkuNy44LnNvIGdyYXNzLTcuOC43UkMxXzEKK2xpYmdyYXNzX3Jhc3Rlci43Ljguc28g Z3Jhc3MtNy44LjdSQzFfMQorbGliZ3Jhc3NfdmVjdG9yLjcuOC5zbyBncmFzcy03LjguN1JDMV8x CitsaWJzdW1vY3BwLnNvIHN1bW8tMS45LjJfMQorbGlidHJhY2ljcHAuc28gc3Vtby0xLjkuMl8x CmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYnNwYXRpYWxpdGUtZGV2ZWwgYi9zcmNwa2dzL2xpYnNw YXRpYWxpdGUtZGV2ZWwKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMDAwLi41 ODhiYTJhZDdjMDAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpYnNwYXRpYWxpdGUtZGV2 ZWwKQEAgLTAsMCArMSBAQAorbGlic3BhdGlhbGl0ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp bGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGlic3BhdGlhbGl0ZS9wYXRjaGVzL2Rpc2FibGVfY2hl Y2tfZHJvcF9yZW5hbWUucGF0Y2ggYi9zcmNwa2dzL2xpYnNwYXRpYWxpdGUvcGF0Y2hlcy9kaXNh YmxlX2NoZWNrX2Ryb3BfcmVuYW1lLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uMzBiNjdmNWI4ZjYxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saWJz cGF0aWFsaXRlL3BhdGNoZXMvZGlzYWJsZV9jaGVja19kcm9wX3JlbmFtZS5wYXRjaApAQCAtMCww ICsxLDI4IEBACitEaXNhYmxlIGNoZWNrX2Ryb3BfcmVuYW1lIHRlc3QuIEl0IGZhaWxzIHdpdGg6 CitSZW5hbWVUYWJsZSAidGFibGVfMSIgZXJyb3I6IFJlbmFtZVRhYmxlIGV4Y2VwdGlvbiAtIGVy cm9yIGluIHRyaWdnZXIgSVNPX21ldGFkYXRhX3JlZmVyZW5jZV9yb3dfaWRfdmFsdWVfaW5zZXJ0 OiBubyBzdWNoIGNvbHVtbjogcm93aWQuCisKK2RpZmYgLS1naXQgYS90ZXN0L01ha2VmaWxlLmFt IGIvdGVzdC9NYWtlZmlsZS5hbQoraW5kZXggZmVjMjVkZC4uNTBiMTZhZSAxMDA2NDQKKy0tLSBh L3Rlc3QvTWFrZWZpbGUuYW0KKysrKyBiL3Rlc3QvTWFrZWZpbGUuYW0KK0BAIC03NCw3ICs3NCw2 IEBAIGNoZWNrX1BST0dSQU1TID0gY2hlY2tfZW5kaWFuIFwKKyAJCWNoZWNrX3NlcXVlbmNlIFwK KyAJCWNoZWNrX3N0b3JlZF9wcm9jIFwKKyAJCWNoZWNrX3dtcyBcCistCQljaGVja19kcm9wX3Jl bmFtZSBcCisgCQlyb3V0aW5nX3Rlc3QgXAorIAkJZ2VvanNvbl90ZXN0IFwKKyAJCWNoZWNrX3pp cHNocAorZGlmZiAtLWdpdCBhL3Rlc3QvTWFrZWZpbGUuaW4gYi90ZXN0L01ha2VmaWxlLmluCitp bmRleCA4YTBiMTU0Li41MmExMDY2IDEwMDY0NAorLS0tIGEvdGVzdC9NYWtlZmlsZS5pbgorKysr IGIvdGVzdC9NYWtlZmlsZS5pbgorQEAgLTEyNCw3ICsxMjQsNyBAQCBjaGVja19QUk9HUkFNUyA9 IGNoZWNrX2VuZGlhbiQoRVhFRVhUKSBjaGVja192ZXJzaW9uJChFWEVFWFQpIFwKKyAJY2hlY2tf bmV0d29yazJkJChFWEVFWFQpIGNoZWNrX25ldHdvcmszZCQoRVhFRVhUKSBcCisgCWNoZWNrX25l dHdvcmtfbG9nJChFWEVFWFQpIGNoZWNrX3ZpcnR1YWxrbm4kKEVYRUVYVCkgXAorIAljaGVja19z ZXF1ZW5jZSQoRVhFRVhUKSBjaGVja19zdG9yZWRfcHJvYyQoRVhFRVhUKSBcCistCWNoZWNrX3dt cyQoRVhFRVhUKSBjaGVja19kcm9wX3JlbmFtZSQoRVhFRVhUKSBcCisrCWNoZWNrX3dtcyQoRVhF RVhUKSBcCisgCXJvdXRpbmdfdGVzdCQoRVhFRVhUKSBnZW9qc29uX3Rlc3QkKEVYRUVYVCkgXAor IAljaGVja196aXBzaHAkKEVYRUVYVCkgJChhbV9fRVhFRVhUXzEpCisgQEVOQUJMRV9HRU9QQUNL QUdFX1RSVUVAYW1fX2FwcGVuZF8xID0gXApkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJzcGF0aWFs aXRlL3BhdGNoZXMvZGlzYWJsZV9jaGVja19zcWxfc3RtdC5wYXRjaCBiL3NyY3BrZ3MvbGlic3Bh dGlhbGl0ZS9wYXRjaGVzL2Rpc2FibGVfY2hlY2tfc3FsX3N0bXQucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4xZGMzYjU3MDU5NTUKLS0tIC9kZXYvbnVsbAor KysgYi9zcmNwa2dzL2xpYnNwYXRpYWxpdGUvcGF0Y2hlcy9kaXNhYmxlX2NoZWNrX3NxbF9zdG10 LnBhdGNoCkBAIC0wLDAgKzEsMjkgQEAKK0Rpc2FibGUgY2hlY2tfc3FsX3N0bXQgdGVzdHMKKwor aHR0cHM6Ly93d3cuZ2FpYS1naXMuaXQvZm9zc2lsL2xpYnNwYXRpYWxpdGUvdGt0dmlldy8zZTQ2 MzQ5YmYyYmZjNThiM2UzMDUxZDFmZjdjYWI3M2VlZDE5YTg4P3BsYWludGV4dAorCistLS0gYS90 ZXN0L01ha2VmaWxlLmFtCTIwMjAtMDgtMjMgMTg6NDY6MjMuMDAwMDAwMDAwICswMjAwCisrKysg Yi90ZXN0L01ha2VmaWxlLmFtCTIwMjAtMTItMjIgMTQ6NDU6MTAuMjA2MDg1NTE1ICswMTAwCitA QCAtMzEsMTAgKzMxLDYgQEAKKyAJCWNoZWNrX2dhaWFfdXRmOCBcCisgCQljaGVja19leHRlbnNp b24gXAorIAkJY2hlY2tfcmVjb3Zlcl9nZW9tIFwKKy0JCWNoZWNrX3NxbF9zdG10IFwKKy0JCWNo ZWNrX3NxbF9zdG10X3RpbnkgXAorLQkJY2hlY2tfc3FsX3N0bXRfbGVnYWN5IFwKKy0JCWNoZWNr X3NxbF9zdG10X2V4dGVuc2lvbiBcCisgCQljaGVja19tdWx0aXRocmVhZCBcCisgCQljaGVja192 aXJ0dWFsdGFibGUxIFwKKyAJCWNoZWNrX3ZpcnR1YWx0YWJsZTIgXAorLS0tIGEvdGVzdC9NYWtl ZmlsZS5pbgkyMDIwLTA4LTIzIDE4OjQ2OjIzLjAwMDAwMDAwMCArMDIwMAorKysrIGIvdGVzdC9N YWtlZmlsZS5pbgkyMDIwLTEyLTIyIDE0OjQxOjA2LjQxNjMzNTczNyArMDEwMAorQEAgLTEwMiw5 ICsxMDIsNiBAQAorIAljaGVja194bHNfbG9hZCQoRVhFRVhUKSBjaGVja19tYXRoX2Z1bmNzJChF WEVFWFQpIFwKKyAJY2hlY2tfZ2FpYV91dGlsJChFWEVFWFQpIGNoZWNrX2dhaWFfdXRmOCQoRVhF RVhUKSBcCisgCWNoZWNrX2V4dGVuc2lvbiQoRVhFRVhUKSBjaGVja19yZWNvdmVyX2dlb20kKEVY RUVYVCkgXAorLQljaGVja19zcWxfc3RtdCQoRVhFRVhUKSBjaGVja19zcWxfc3RtdF90aW55JChF WEVFWFQpIFwKKy0JY2hlY2tfc3FsX3N0bXRfbGVnYWN5JChFWEVFWFQpIFwKKy0JY2hlY2tfc3Fs X3N0bXRfZXh0ZW5zaW9uJChFWEVFWFQpIGNoZWNrX211bHRpdGhyZWFkJChFWEVFWFQpIFwKKyAJ Y2hlY2tfdmlydHVhbHRhYmxlMSQoRVhFRVhUKSBjaGVja192aXJ0dWFsdGFibGUyJChFWEVFWFQp IFwKKyAJY2hlY2tfdmlydHVhbHRhYmxlMyQoRVhFRVhUKSBjaGVja192aXJ0dWFsdGFibGU0JChF WEVFWFQpIFwKKyAJY2hlY2tfdmlydHVhbHRhYmxlNSQoRVhFRVhUKSBjaGVja192aXJ0dWFsdGFi bGU2JChFWEVFWFQpIFwKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGlic3BhdGlhbGl0ZS90ZW1wbGF0 ZSBiL3NyY3BrZ3MvbGlic3BhdGlhbGl0ZS90ZW1wbGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAuLjMxYzEwYTU1NzdlNwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3Br Z3MvbGlic3BhdGlhbGl0ZS90ZW1wbGF0ZQpAQCAtMCwwICsxLDQyIEBACisjIFRlbXBsYXRlIGZp bGUgZm9yICdsaWJzcGF0aWFsaXRlJworcGtnbmFtZT1saWJzcGF0aWFsaXRlCit2ZXJzaW9uPTUu MC4xCityZXZpc2lvbj0xCitidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCitob3N0bWFrZWRlcGVu ZHM9InBrZy1jb25maWcgbGlicnR0b3BvIGdlb3MtZGV2ZWwgbGlieG1sMiIKK21ha2VkZXBlbmRz PSJmcmVleGwtZGV2ZWwKKyBnZW9zLWRldmVsCisgbGlicnR0b3BvLWRldmVsCisgbGlieG1sMi1k ZXZlbAorIG1pbml6aXAtZGV2ZWwKKyBwcm9qLWRldmVsCisgc3FsaXRlLWRldmVsCisgemxpYi1k ZXZlbCIKK2RlcGVuZHM9InNxbGl0ZSIKK3Nob3J0X2Rlc2M9Ikdlb3NwYXRpYWwgZXh0ZW5zaW9u IGZvciBTUUxpdGUiCittYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+ IgorbGljZW5zZT0iTVBMLTEuMCIKK2hvbWVwYWdlPSJodHRwczovL3d3dy5nYWlhLWdpcy5pdC9m b3NzaWwvbGlic3BhdGlhbGl0ZS9pbmRleCIKK2Rpc3RmaWxlcz0iaHR0cDovL3d3dy5nYWlhLWdp cy5pdC9nYWlhLXNpbnMvJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci5neiIKK2NoZWNrc3VtPWVl Y2JjOTQzMTFjNzgwMTJkMDU5ZWJjMGZhZTg2ZWE1ZWY2ZWVjYjEzMzAzZTZlODJiMzc1M2MxYjM0 MDllOTgKKworQ0ZMQUdTPSItREFDQ0VQVF9VU0VfT0ZfREVQUkVDQVRFRF9QUk9KX0FQSV9IIgor CitpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KKwlob3N0bWFrZWRlcGVuZHMrPSIgbGlidG9v bCBnZW9zLWRldmVsIgorZmkKKworcG9zdF9pbnN0YWxsKCkgeworCXZsaWNlbnNlIENPUFlJTkcK K30KKworbGlic3BhdGlhbGl0ZS1kZXZlbF9wYWNrYWdlKCkgeworCWRlcGVuZHM9IiRwa2duYW1l Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgorCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBm aWxlcyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2luY2x1ZGUKKwkJdm1vdmUgdXNy L2xpYi9wa2djb25maWcKKwkJdm1vdmUgInVzci9saWIvKi5zbyIKKwkJdm1vdmUgInVzci9saWIv Ki5hIgorCX0KK30KCkZyb20gZWZhZDg0NjU0OTNkN2RlN2VjZjMxYjUwZDQzM2U5ZWMxNTRmMjdh MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQXJqYW4gTW9zc2VsIDxhcmphbm1vc3Nl bEBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMTQgRmViIDIwMjIgMTM6MDc6NTEgKzAxMDAKU3ViamVj dDogW1BBVENIIDA1LzE3XSBsaWJnZGFsOiB1cGRhdGUgdG8gMy40LjEgYW5kIHJlYnVpbGQgYWdh aW5zdCBwcm9qLTcuMi4xCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgMiArLQogLi4uZTE2ZTI3YzVmYzRjNDkxZGViZTUwYmYyYjdmM2U5NGVk MzM0LnBhdGNoIHwgIDUzIC0tLS0tLS0tLQogLi4uYzQ4OTNlNmQxNGQ0ODhkZmVkMjU3NDVkNzlm MTFiZWU0NWI5LnBhdGNoIHwgIDMxIC0tLS0tLQogc3JjcGtncy9saWJnZGFsL3RlbXBsYXRlICAg ICAgICAgICAgICAgICAgICAgIHwgMTA1ICsrKysrKysrKysrKysrKystLQogc3JjcGtncy9weXRo b24zLWdkYWwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIDUgZmlsZXMgY2hhbmdl ZCwgOTUgaW5zZXJ0aW9ucygrKSwgOTcgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQg c3JjcGtncy9saWJnZGFsL3BhdGNoZXMvOWVmOGUxNmUyN2M1ZmM0YzQ5MWRlYmU1MGJmMmI3ZjNl OTRlZDMzNC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGliZ2RhbC9wYXRjaGVz L2FiNzJjNDg5M2U2ZDE0ZDQ4OGRmZWQyNTc0NWQ3OWYxMWJlZTQ1YjkucGF0Y2gKIGNyZWF0ZSBt b2RlIDEyMDAwMCBzcmNwa2dzL3B5dGhvbjMtZ2RhbAoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxp YnMgYi9jb21tb24vc2hsaWJzCmluZGV4IDk4YTA0MDVkNmFiYi4uNWY3ZTdiYWM4OGQzIDEwMDY0 NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTI1MTAsNyArMjUx MCw3IEBAIGxpYnUyZi1ob3N0LnNvLjAgbGlidTJmLWhvc3QtMS4xLjEwXzUKIGxpYnUyZi1zZXJ2 ZXIuc28uMCBsaWJ1MmYtc2VydmVyLTEuMS4wXzkKIGxpYnNxbGNpcGhlci5zby4wIHNxbGNpcGhl ci00LjMuMF8zCiBsaWJndGEuc28uMSBsaWJndGEtMS4yLjBfMQotbGliZ2RhbC5zby4yNiBsaWJn ZGFsLTMuMC40XzkKK2xpYmdkYWwuc28uMzAgbGliZ2RhbC0zLjQuMV8xCiBsaWJvc2dWaWV3ZXIu c28uMTMxIG9zZy0zLjQuMV8xCiBsaWJvc2dTaGFkb3cuc28uMTMxIG9zZy0zLjQuMV8xCiBsaWJv c2dQYXJ0aWNsZS5zby4xMzEgb3NnLTMuNC4xXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliZ2Rh bC9wYXRjaGVzLzllZjhlMTZlMjdjNWZjNGM0OTFkZWJlNTBiZjJiN2YzZTk0ZWQzMzQucGF0Y2gg Yi9zcmNwa2dzL2xpYmdkYWwvcGF0Y2hlcy85ZWY4ZTE2ZTI3YzVmYzRjNDkxZGViZTUwYmYyYjdm M2U5NGVkMzM0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NjhlZGViMzJj NzcuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2xpYmdkYWwvcGF0Y2hlcy85ZWY4ZTE2ZTI3 YzVmYzRjNDkxZGViZTUwYmYyYjdmM2U5NGVkMzM0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEs NTMgKzAsMCBAQAotRnJvbSA5ZWY4ZTE2ZTI3YzVmYzRjNDkxZGViZTUwYmYyYjdmM2U5NGVkMzM0 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogRXZlbiBSb3VhdWx0IDxldmVuLnJvdWF1 bHRAc3BhdGlhbHlzLmNvbT4KLURhdGU6IE1vbiwgNSBPY3QgMjAyMCAxMjoxMTo1MiArMDIwMAot U3ViamVjdDogW1BBVENIXSBKUEVHMjAwMDogbWFrZSBpdCBidWlsZCB3aXRoIEphc3BlciAyLjAu MjEgKGZpeGVzICMzMDEyKQotCi0tLS0KLSBnZGFsL2ZybXRzL2pwZWcyMDAwL2pwZWcyMDAwX3Zz aWxfaW8uY3BwIHwgMTYgKysrKysrKysrLS0tLS0tLQotIGdkYWwvZnJtdHMvanBlZzIwMDAvanBl ZzIwMDBkYXRhc2V0LmNwcCAgfCAgMiArLQotIDIgZmlsZXMgY2hhbmdlZCwgMTAgaW5zZXJ0aW9u cygrKSwgOCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2dkYWwvZnJtdHMvanBlZzIwMDAv anBlZzIwMDBfdnNpbF9pby5jcHAgYi9nZGFsL2ZybXRzL2pwZWcyMDAwL2pwZWcyMDAwX3ZzaWxf aW8uY3BwCi1pbmRleCAxMGE0Zjk2ZjBlZS4uZWJjYWM0MDEwY2UgMTAwNjQ0Ci0tLS0gYS9mcm10 cy9qcGVnMjAwMC9qcGVnMjAwMF92c2lsX2lvLmNwcAotKysrIGIvZnJtdHMvanBlZzIwMDAvanBl ZzIwMDBfdnNpbF9pby5jcHAKLUBAIC05NCwxMyArOTQsMjQgQEAKLSAqIEZpbGUgc3RyZWFtIG9i amVjdC4KLSBcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0rI2lmIGRlZmluZWQoUFJJamFzX3Nl cWVudCkKLStzdGF0aWMgaW50IEpQRUcyMDAwX1ZTSUxfcmVhZChqYXNfc3RyZWFtX29ial90ICpv YmosIGNoYXIgKmJ1ZiwgdW5zaWduZWQgY250KQotKyNlbHNlCi0gc3RhdGljIGludCBKUEVHMjAw MF9WU0lMX3JlYWQoamFzX3N0cmVhbV9vYmpfdCAqb2JqLCBjaGFyICpidWYsIGludCBjbnQpCi0r I2VuZGlmCi0gewotICAgICBqYXNfc3RyZWFtX1ZTSUZMX3QgKmZpbGVvYmogPSBKQVNfQ0FTVChq YXNfc3RyZWFtX1ZTSUZMX3QgKiwgb2JqKTsKLSAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4o VlNJRlJlYWRMKGJ1ZiwgMSwgY250LCBmaWxlb2JqLT5mcCkpOwotIH0KLQotKyNpZiBkZWZpbmVk KEpBU19JTkNMVURFX0pQMl9DT0RFQykKLSsvLyBKYXNwZXIgMi4wLjIxCi0rc3RhdGljIGludCBK UEVHMjAwMF9WU0lMX3dyaXRlKGphc19zdHJlYW1fb2JqX3QgKm9iaiwgY29uc3QgY2hhciAqYnVm LCB1bnNpZ25lZCBpbnQgY250KQotKyNlbGlmIGRlZmluZWQoUFJJamFzX3NlcWVudCkKLStzdGF0 aWMgaW50IEpQRUcyMDAwX1ZTSUxfd3JpdGUoamFzX3N0cmVhbV9vYmpfdCAqb2JqLCBjaGFyICpi dWYsIHVuc2lnbmVkIGludCBjbnQpCi0rI2Vsc2UKLSBzdGF0aWMgaW50IEpQRUcyMDAwX1ZTSUxf d3JpdGUoamFzX3N0cmVhbV9vYmpfdCAqb2JqLCBjaGFyICpidWYsIGludCBjbnQpCi0rI2VuZGlm Ci0gewotICAgICBqYXNfc3RyZWFtX1ZTSUZMX3QgKmZpbGVvYmogPSBKQVNfQ0FTVChqYXNfc3Ry ZWFtX1ZTSUZMX3QgKiwgb2JqKTsKLSAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oVlNJRldy aXRlTChidWYsIDEsIGNudCwgZmlsZW9iai0+ZnApKTsKLQotZGlmZiAtLWdpdCBhL2dkYWwvZnJt dHMvanBlZzIwMDAvanBlZzIwMDBkYXRhc2V0LmNwcCBiL2dkYWwvZnJtdHMvanBlZzIwMDAvanBl ZzIwMDBkYXRhc2V0LmNwcAotaW5kZXggYTVhNmIyNThlZDkuLmJkMWU3NzYzMTg2IDEwMDY0NAot LS0tIGEvZnJtdHMvanBlZzIwMDAvanBlZzIwMDBkYXRhc2V0LmNwcAotKysrIGIvZnJtdHMvanBl ZzIwMDAvanBlZzIwMDBkYXRhc2V0LmNwcAotQEAgLTUxMyw3ICs1MTMsNyBAQCBpbnQgSlBFRzIw MDBEYXRhc2V0OjpEZWNvZGVJbWFnZSgpCi0gICAgICAgICBmb3IgKCBpQmFuZCA9IDA7IGlCYW5k IDwgbkJhbmRzOyBpQmFuZCsrICkKLSAgICAgICAgIHsKLSAgICAgICAgICAgICBKUEVHMjAwMFJh c3RlckJhbmQqIHBvQmFuZCA9IChKUEVHMjAwMFJhc3RlckJhbmQqKSBHZXRSYXN0ZXJCYW5kKGlC YW5kKzEpOwotLSAgICAgICAgICAgIGlmIChwb0JhbmQtPmlEZXB0aCAhPSBqYXNfaW1hZ2VfY21w dHByZWMoIHBzSW1hZ2UsIGlCYW5kICkgfHwKLSsgICAgICAgICAgICBpZiAocG9CYW5kLT5pRGVw dGggIT0gc3RhdGljX2Nhc3Q8aW50PihqYXNfaW1hZ2VfY21wdHByZWMoIHBzSW1hZ2UsIGlCYW5k ICkpIHx8Ci0gICAgICAgICAgICAgICAgIHBvQmFuZC0+YlNpZ25lZG5lc3MgIT0gamFzX2ltYWdl X2NtcHRzZ25kKCBwc0ltYWdlLCBpQmFuZCApKQotICAgICAgICAgICAgIHsKLSAgICAgICAgICAg ICAgICAgQ1BMRXJyb3IoQ0VfRmFpbHVyZSwgQ1BMRV9BcHBEZWZpbmVkLApkaWZmIC0tZ2l0IGEv c3JjcGtncy9saWJnZGFsL3BhdGNoZXMvYWI3MmM0ODkzZTZkMTRkNDg4ZGZlZDI1NzQ1ZDc5ZjEx YmVlNDViOS5wYXRjaCBiL3NyY3BrZ3MvbGliZ2RhbC9wYXRjaGVzL2FiNzJjNDg5M2U2ZDE0ZDQ4 OGRmZWQyNTc0NWQ3OWYxMWJlZTQ1YjkucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDY0M2VhYzg4MmY2Zi4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbGliZ2RhbC9wYXRj aGVzL2FiNzJjNDg5M2U2ZDE0ZDQ4OGRmZWQyNTc0NWQ3OWYxMWJlZTQ1YjkucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi1Gcm9tIGFiNzJjNDg5M2U2ZDE0ZDQ4OGRmZWQyNTc0 NWQ3OWYxMWJlZTQ1YjkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBFdmVuIFJvdWF1 bHQgPGV2ZW4ucm91YXVsdEBzcGF0aWFseXMuY29tPgotRGF0ZTogTW9uLCAxMCBBdWcgMjAyMCAx NzoyNjo1MyArMDIwMAotU3ViamVjdDogW1BBVENIXSBKUEVHMjAwMDogZml4IGJ1aWxkIHdpdGgg SmFzcGVyIDIuMC4xNyAoZml4ZXMgIzI4NDQpCi0KLS0tLQotIGdkYWwvZnJtdHMvanBlZzIwMDAv anBlZzIwMDBkYXRhc2V0LmNwcCB8IDQgKystLQotIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlv bnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9nZGFsL2ZybXRzL2pwZWcyMDAw L2pwZWcyMDAwZGF0YXNldC5jcHAgYi9nZGFsL2ZybXRzL2pwZWcyMDAwL2pwZWcyMDAwZGF0YXNl dC5jcHAKLWluZGV4IDNlNjY4ZmZlNTAzLi4yZDNmNGU0Njg3NiAxMDA2NDQKLS0tLSBhL2ZybXRz L2pwZWcyMDAwL2pwZWcyMDAwZGF0YXNldC5jcHAKLSsrKyBiL2ZybXRzL2pwZWcyMDAwL2pwZWcy MDAwZGF0YXNldC5jcHAKLUBAIC00ODQsNyArNDg0LDcgQEAgaW50IEpQRUcyMDAwRGF0YXNldDo6 RGVjb2RlSW1hZ2UoKQotICAgICAvKiB0aGUgSlAyIGJveGVzIG1hdGNoIHRoZSBvbmVzIG9mIHRo ZSBjb2RlIHN0cmVhbSAqLwotICAgICBpZiAobkJhbmRzICE9IDApCi0gICAgIHsKLS0gICAgICAg IGlmIChuQmFuZHMgIT0gamFzX2ltYWdlX251bWNtcHRzKCBwc0ltYWdlICkpCi0rICAgICAgICBp ZiAobkJhbmRzICE9IHN0YXRpY19jYXN0PGludD4oamFzX2ltYWdlX251bWNtcHRzKCBwc0ltYWdl ICkpKQotICAgICAgICAgewotICAgICAgICAgICAgIENQTEVycm9yKENFX0ZhaWx1cmUsIENQTEVf QXBwRGVmaW5lZCwKLSAgICAgICAgICAgICAgICAgICAgICAiVGhlIG51bWJlciBvZiBjb21wb25l bnRzIGluZGljYXRlZCBpbiB0aGUgSUhEUiBib3ggKCVkKSBtaXNtYXRjaCAiCi1AQCAtNTk1LDcg KzU5NSw3IEBAIEdEQUxEYXRhc2V0ICpKUEVHMjAwMERhdGFzZXQ6Ok9wZW4oIEdEQUxPcGVuSW5m byAqIHBvT3BlbkluZm8gKQotIAotIHsKLSAgICAgaW50ICAgICAgICAgaUZvcm1hdDsKLS0gICAg Y2hhciAgICAgICAgKnBzekZvcm1hdE5hbWUgPSBudWxscHRyOwotKyAgICBjb25zdCBjaGFyICpw c3pGb3JtYXROYW1lID0gbnVsbHB0cjsKLSAKLSAgICAgaWYgKCFJZGVudGlmeShwb09wZW5JbmZv KSkKLSAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJnZGFs L3RlbXBsYXRlIGIvc3JjcGtncy9saWJnZGFsL3RlbXBsYXRlCmluZGV4IDg3MGFiMjJiNGNiYS4u NWZjYTU3OTk1NGZhIDEwMDY0NAotLS0gYS9zcmNwa2dzL2xpYmdkYWwvdGVtcGxhdGUKKysrIGIv c3JjcGtncy9saWJnZGFsL3RlbXBsYXRlCkBAIC0xLDMwICsxLDEwMCBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAnbGliZ2RhbCcKIHBrZ25hbWU9bGliZ2RhbAotdmVyc2lvbj0zLjAuNAotcmV2aXNp b249MTEKK3ZlcnNpb249My40LjEKK3JldmlzaW9uPTEKIHdya3NyYz0iZ2RhbC0ke3ZlcnNpb259 IgogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQotY29uZmlndXJlX2FyZ3M9Ii0td2l0aC1saWJs em1hIC0td2l0aC13ZWJwIC0td2l0aC16c3RkIC0td2l0aC1wb2RvZm8gLS13aXRoLW9wZW5jbD15 ZXMiCi1ob3N0bWFrZWRlcGVuZHM9ImdldHRleHQtZGV2ZWwgcGtnLWNvbmZpZyBweXRob24tbnVt cHkganNvbi1jLWRldmVsIgotbWFrZWRlcGVuZHM9ImZyZWV4bC1kZXZlbCBnZW9zLWRldmVsIGph c3Blci1kZXZlbCBqc29uLWMtZGV2ZWwKLSBsaWJjdXJsLWRldmVsIGxpYm9wZW5leHItZGV2ZWwg bGlib3BlbmpwZWcyLWRldmVsIGxpYnBvZG9mby1kZXZlbCBsaWJxaHVsbC1kZXZlbAotIGxpYndl YnAtZGV2ZWwgbGlieG1sMi1kZXZlbCBsaWJ6c3RkLWRldmVsIG5ldGNkZi1kZXZlbCBvcGVuY2wy LWhlYWRlcnMgcGNyZTItZGV2ZWwKLSBwcm9qLWRldmVsIHNxbGl0ZS1kZXZlbCBvY2wtaWNkLWRl dmVsIgorY29uZmlndXJlX2FyZ3M9IgorIC0td2l0aC1leHBhdD15ZXMKKyAtLXdpdGgtaGRmNT15 ZXMKKyAtLXdpdGgta21sPXllcworIC0td2l0aC1saWJsem1hPXllcworIC0td2l0aC1vcGVuY2w9 eWVzCisgLS13aXRoLXBnPXllcworIC0td2l0aC1wb2RvZm89eWVzCisgLS13aXRoLXB5dGhvbj15 ZXMKKyAtLXdpdGgtc3BhdGlhbGl0ZT15ZXMKKyAtLXdpdGgtc3FsaXRlMz15ZXMKKyAtLXdpdGgt d2VicD15ZXMKKyAtLXdpdGgtenN0ZD15ZXMiCitob3N0bWFrZWRlcGVuZHM9ImdldHRleHQtZGV2 ZWwKKyBqc29uLWMtZGV2ZWwKKyBwa2ctY29uZmlnCisgcHl0aG9uMy1udW1weQorIHN3aWciCitt YWtlZGVwZW5kcz0iYm9vc3QtZGV2ZWwKKyBleHBhdC1kZXZlbAorIGZyZWV4bC1kZXZlbAorIGdl b3MtZGV2ZWwKKyBqYXNwZXItZGV2ZWwKKyBqc29uLWMtZGV2ZWwKKyBsaWJjdXJsLWRldmVsCisg bGlib3BlbmV4ci1kZXZlbAorIGxpYm9wZW5qcGVnMi1kZXZlbAorIGxpYnBvZG9mby1kZXZlbAor IGxpYnFodWxsLWRldmVsCisgbGlic3BhdGlhbGl0ZS1kZXZlbAorIGxpYndlYnAtZGV2ZWwKKyBs aWJ4bWwyLWRldmVsCisgbGlienN0ZC1kZXZlbAorIG5ldGNkZi1kZXZlbAorIG9jbC1pY2QtZGV2 ZWwKKyBvcGVuY2wyLWhlYWRlcnMKKyBwY3JlMi1kZXZlbAorIHByb2otZGV2ZWwKKyBweXRob24z LWRldmVsCisgc3FsaXRlLWRldmVsCisgbGlia21sLWRldmVsCisgcG9zdGdyZXNxbC1saWJzLWRl dmVsIgogc2hvcnRfZGVzYz0iR2Vvc3BhdGlhbCBEYXRhIEFic3RyYWN0aW9uIExpYnJhcnkiCiBt YWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTUlU IgotaG9tZXBhZ2U9Imh0dHA6Ly93d3cuZ2RhbC5vcmcvIgotZGlzdGZpbGVzPSJodHRwOi8vZG93 bmxvYWQub3NnZW8ub3JnL2dkYWwvJHt2ZXJzaW9ufS9nZGFsLSR7dmVyc2lvbn0udGFyLnh6Igot Y2hlY2tzdW09NTU2OWE0ZGFhMWFiY2JiYTQ3YTlkNTM1MTcyZmMzMzUxOTRkOTIxNGZkYjk2Y2Qw ZjEzOWJiNTczMjlhZTI3Nwotc3VicGFja2FnZXM9ImxpYmdkYWwtZGV2ZWwgbGliZ2RhbC10b29s cyIKK2hvbWVwYWdlPSJodHRwczovL2dkYWwub3JnLyIKK2Rpc3RmaWxlcz0iaHR0cHM6Ly9naXRo dWIuY29tL09TR2VvL2dkYWwvcmVsZWFzZXMvZG93bmxvYWQvdiR7dmVyc2lvbn0vZ2RhbC0ke3Zl cnNpb259LnRhci5neiIKK2NoZWNrc3VtPWUzNjAzODdiYzI1ZWMyNDk0MGY0NmFmYmVhZGE0ODAw MmQ3MmM3NGFhZjllY2NmMmE0MGU4ZDc0ZTcxMWEyZTQKK3N1YnBhY2thZ2VzPSJweXRob24zLWdk YWwgbGliZ2RhbC1kZXZlbCBsaWJnZGFsLXRvb2xzIgorCitidWlsZF9vcHRpb25zPSJrbWwgcG9z dGdyZXNxbCIKK2J1aWxkX29wdGlvbnNfZGVmYXVsdD0ia21sIgogCiBpZiBbIC16ICIkQ1JPU1Nf QlVJTEQiIF07IHRoZW4KIAltYWtlZGVwZW5kcys9IiBoZGY1LWRldmVsIgogZmkKK0NGTEFHUz0i LXB0aHJlYWQgLUkke1hCUFNfQ1JPU1NfQkFTRX0vJHtweTNfaW5jfSIKK0xERkxBR1M9Ii1MJHtY QlBTX0NST1NTX0JBU0V9LyR7cHkzX2xpYn0iCisKK3Bvc3RfYnVpbGQoKSB7CisJaWYgWyAiJENS T1NTX0JVSUxEIiBdOyB0aGVuCisJCWV4cG9ydCBQWVBSRUZJWD0iJFhCUFNfQ1JPU1NfQkFTRSIK KwkJZXhwb3J0IFBZVEhPTlBBVEg9JHtYQlBTX0NST1NTX0JBU0V9LyR7cHkzX2xpYn0KKwkJZm9y IGYgaW4gJHtYQlBTX0NST1NTX0JBU0V9LyR7cHkzX2xpYn0vX3N5c2NvbmZpZ2RhdGFfKjsgZG8K KwkJCWY9JHtmIyMqL30KKwkJCWV4cG9ydCBfUFlUSE9OX1NZU0NPTkZJR0RBVEFfTkFNRT0ke2Yl LnB5fQorCQlkb25lCisJZmkKKwlleHBvcnQgTERTSEFSRUQ9IiR7Q0N9ICRDRkxBR1MgLXNoYXJl ZCAkTERGTEFHUyIKKworCXJtIC1mIHN3aWcvcHl0aG9uLypfd3JhcC5jcHAKKwltYWtlIC1DIHN3 aWcvcHl0aG9uIGdlbmVyYXRlCisJY2Qgc3dpZy9weXRob24KKwlweXRob24zIHNldHVwLnB5IGJ1 aWxkCit9CiAKIHBvc3RfaW5zdGFsbCgpIHsKIAl2aW5zdGFsbCBnZGFsLnBjIDY0NCB1c3IvbGli L3BrZ2NvbmZpZwogCXZsaWNlbnNlIExJQ0VOU0UuVFhUCisJaWYgWyAiJENST1NTX0JVSUxEIiBd OyB0aGVuCisJCWV4cG9ydCBQWVBSRUZJWD0iJFhCUFNfQ1JPU1NfQkFTRSIKKwkJZXhwb3J0IFBZ VEhPTlBBVEg9JHtYQlBTX0NST1NTX0JBU0V9LyR7cHkzX2xpYn0KKwkJZm9yIGYgaW4gJHtYQlBT X0NST1NTX0JBU0V9LyR7cHkzX2xpYn0vX3N5c2NvbmZpZ2RhdGFfKjsgZG8KKwkJCWY9JHtmIyMq L30KKwkJCWV4cG9ydCBfUFlUSE9OX1NZU0NPTkZJR0RBVEFfTkFNRT0ke2YlLnB5fQorCQlkb25l CisJZmkKKwlleHBvcnQgTERTSEFSRUQ9IiR7Q0N9ICRDRkxBR1MgLXNoYXJlZCAkTERGTEFHUyIK KworCWNkIHN3aWcvcHl0aG9uCisJcHl0aG9uMyBzZXR1cC5weSBpbnN0YWxsIC0tcHJlZml4PS91 c3IgLS1yb290PSRERVNURElSCiB9CiAKIGxpYmdkYWwtdG9vbHNfcGFja2FnZSgpIHsKQEAgLTQ2 LDMgKzExNiwxNCBAQCBsaWJnZGFsLWRldmVsX3BhY2thZ2UoKSB7CiAJCXZtb3ZlIHVzci9saWIv Ki5zbwogCX0KIH0KKworcHl0aG9uMy1nZGFsX3BhY2thZ2UoKSB7CisJZGVwZW5kcz0iJHtzb3Vy Y2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgorCXNob3J0X2Rlc2MrPSIgLSBQeXRob24z IGJpbmRpbmdzIgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSAidXNyL2Jpbi8qLnB5IgorCQl2 bW92ZSAidXNyL2xpYi9weXRob24qIgorCQl2ZG9jIHN3aWcvcHl0aG9uL1JFQURNRS5yc3QKKwkJ dm1rZGlyIHVzci9zaGFyZS9weXRob24zLWdkYWwKKwl9Cit9CmRpZmYgLS1naXQgYS9zcmNwa2dz L3B5dGhvbjMtZ2RhbCBiL3NyY3BrZ3MvcHl0aG9uMy1nZGFsCm5ldyBmaWxlIG1vZGUgMTIwMDAw CmluZGV4IDAwMDAwMDAwMDAwMC4uMzc3ZDUwZGZjMmI4Ci0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9weXRob24zLWdkYWwKQEAgLTAsMCArMSBAQAorbGliZ2RhbApcIE5vIG5ld2xpbmUgYXQg ZW5kIG9mIGZpbGUKCkZyb20gZGY5ODgxNjY1OWRhZDE3YThjOGI1ZjIwMmRjMmFmMjA5ZTI4NjJj YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQXJqYW4gTW9zc2VsIDxhcmphbm1vc3Nl bEBnbWFpbC5jb20+CkRhdGU6IFN1biwgMjcgSnVuIDIwMjEgMTk6MTY6MzQgKzAyMDAKU3ViamVj dDogW1BBVENIIDA2LzE3XSBwb3N0Z2lzOiB1cGRhdGUgdG8gMy4xLjU7IHJlYnVpbGQgYWdhaW5z dCBsaWJnZGFsLTMuNC4xCiBhbmQgcHJvai03LjIuMQoKLS0tCiBzcmNwa2dzL3Bvc3RnaXMvdGVt cGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9wb3N0Z2lzL3RlbXBsYXRlIGIvc3JjcGtncy9w b3N0Z2lzL3RlbXBsYXRlCmluZGV4IGM4NzhkZTg5Y2ZjYi4uZjUyY2Q2NjU3OTg4IDEwMDY0NAot LS0gYS9zcmNwa2dzL3Bvc3RnaXMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9wb3N0Z2lzL3RlbXBs YXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncG9zdGdpcycKIHBrZ25h bWU9cG9zdGdpcwotdmVyc2lvbj0zLjEuNAordmVyc2lvbj0zLjEuNQogcmV2aXNpb249MQogYnVp bGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogY29uZmlndXJlX2FyZ3M9Ii0td2l0aC1wcm9qZGlyPSR7 WEJQU19DUk9TU19CQVNFfS91c3IKQEAgLTE5LDcgKzE5LDcgQEAgbGljZW5zZT0iR1BMLTIuMC1v ci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3Bvc3RnaXMubmV0LyIKIGNoYW5nZWxvZz0iaHR0 cHM6Ly9naXQub3NnZW8ub3JnL2dpdGVhL3Bvc3RnaXMvcG9zdGdpcy9yYXcvdGFnLyR7dmVyc2lv bn0vTkVXUyIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9kb3dubG9hZC5vc2dlby5vcmcvcG9zdGdpcy9z b3VyY2UvcG9zdGdpcy0ke3ZlcnNpb259LnRhci5neiIKLWNoZWNrc3VtPWRjOGUzZmU4YmM1MzJl NDIyZjVkNzI0YzVhN2M0MzdmNjU1NTUxMTcxNmY2NDEwZDRkMmRiOTc2MmUxYTM3OTYKK2NoZWNr c3VtPWZjYjEwZDliNDk5ZmQ3OTM5OWJkOGRiOTBmMGIzMTM4MzdkMDAyMjNkMzAwODBkYWM0MDM0 MTllMDY3ZTRjMDYKIG5vY3Jvc3M9IkZJWE1FOiBDYW5ub3QgcnVuIHRlc3QgcHJvZ3JhbSB0byBk ZXRlcm1pbmUgUFJPSiB2ZXJzaW9uIgogCiBwcmVfY29uZmlndXJlKCkgewoKRnJvbSBkYWI5OTM1 NzAxMDRjZDI1NTMwMzkwYzFjOGRkNjBlZWQzZjY5OWU0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBBcmphbiBNb3NzZWwgPGFyamFubW9zc2VsQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAx NCBGZWIgMjAyMiAxMzoyMjo1OSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDcvMTddIHBvc3RnaXMt cG9zdGdyZXNxbDEzOiB1cGRhdGUgdG8gMy4xLjU7IHJlYnVpbGQgYWdhaW5zdAogbGliZ2RhbCBh bmQgcHJvagoKbGliZ2RhbC0zLjQuMQpwcm9qLTcuMi4xCi0tLQogc3JjcGtncy9wb3N0Z2lzLXBv c3RncmVzcWwxMy90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRp b25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcG9zdGdpcy1wb3N0 Z3Jlc3FsMTMvdGVtcGxhdGUgYi9zcmNwa2dzL3Bvc3RnaXMtcG9zdGdyZXNxbDEzL3RlbXBsYXRl CmluZGV4IDcwNmM4ZmI5NjgxMC4uYTBmNWM4OWVmNGRhIDEwMDY0NAotLS0gYS9zcmNwa2dzL3Bv c3RnaXMtcG9zdGdyZXNxbDEzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcG9zdGdpcy1wb3N0Z3Jl c3FsMTMvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdwb3N0 Z2lzLXBvc3RncmVzcWwxMycKIHBrZ25hbWU9cG9zdGdpcy1wb3N0Z3Jlc3FsMTMKLXZlcnNpb249 My4xLjQKLXJldmlzaW9uPTIKK3ZlcnNpb249My4xLjUKK3JldmlzaW9uPTEKIHdya3NyYz0icG9z dGdpcy0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogY29uZmlndXJlX2Fy Z3M9IgpAQCAtMjAsNyArMjAsNyBAQCBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBh Z2U9Imh0dHBzOi8vcG9zdGdpcy5uZXQvIgogY2hhbmdlbG9nPSJodHRwczovL2dpdC5vc2dlby5v cmcvZ2l0ZWEvcG9zdGdpcy9wb3N0Z2lzL3Jhdy90YWcvJHt2ZXJzaW9ufS9ORVdTIgogZGlzdGZp bGVzPSJodHRwczovL2Rvd25sb2FkLm9zZ2VvLm9yZy9wb3N0Z2lzL3NvdXJjZS9wb3N0Z2lzLSR7 dmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09ZGM4ZTNmZThiYzUzMmU0MjJmNWQ3MjRjNWE3YzQz N2Y2NTU1NTExNzE2ZjY0MTBkNGQyZGI5NzYyZTFhMzc5NgorY2hlY2tzdW09ZmNiMTBkOWI0OTlm ZDc5Mzk5YmQ4ZGI5MGYwYjMxMzgzN2QwMDIyM2QzMDA4MGRhYzQwMzQxOWUwNjdlNGMwNgogbm9j cm9zcz0iRklYTUU6IENhbm5vdCBydW4gdGVzdCBwcm9ncmFtIHRvIGRldGVybWluZSBQUk9KIHZl cnNpb24iCiAKIHByZV9jb25maWd1cmUoKSB7CgpGcm9tIDRmOWQzMzgxOWY1MDlkZDNjNGI3ZmY5 YTI2MGQ1Mzk4MTEwNWZmMjEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFyamFuIE1v c3NlbCA8YXJqYW5tb3NzZWxAZ21haWwuY29tPgpEYXRlOiBNb24sIDE0IEZlYiAyMDIyIDEzOjI2 OjU5ICswMTAwClN1YmplY3Q6IFtQQVRDSCAwOC8xN10gcG9zdGdpcy1wb3N0Z3Jlc3FsMTQ6IHVw ZGF0ZSB0byAzLjEuNTsgcmVidWlsZCBhZ2FpbnN0CiBsaWJnZGFsIGFuZCBwcm9qCgpsaWJnZGFs LTMuNC4xCnByb2otNy4yLjEKLS0tCiBzcmNwa2dzL3Bvc3RnaXMtcG9zdGdyZXNxbDE0L3RlbXBs YXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcG9zdGdpcy1wb3N0Z3Jlc3FsMTQvdGVtcGxhdGUg Yi9zcmNwa2dzL3Bvc3RnaXMtcG9zdGdyZXNxbDE0L3RlbXBsYXRlCmluZGV4IDZjZTQyMzFiMTcy Ni4uYWQ4ZDBjNWM0MjUzIDEwMDY0NAotLS0gYS9zcmNwa2dzL3Bvc3RnaXMtcG9zdGdyZXNxbDE0 L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcG9zdGdpcy1wb3N0Z3Jlc3FsMTQvdGVtcGxhdGUKQEAg LTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdwb3N0Z2lzLXBvc3RncmVzcWwxNCcK IHBrZ25hbWU9cG9zdGdpcy1wb3N0Z3Jlc3FsMTQKLXZlcnNpb249My4xLjQKK3ZlcnNpb249My4x LjUKIHJldmlzaW9uPTEKIHdya3NyYz0icG9zdGdpcy0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9 Z251LWNvbmZpZ3VyZQpAQCAtMjAsNyArMjAsNyBAQCBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVy IgogaG9tZXBhZ2U9Imh0dHBzOi8vcG9zdGdpcy5uZXQvIgogY2hhbmdlbG9nPSJodHRwczovL2dp dC5vc2dlby5vcmcvZ2l0ZWEvcG9zdGdpcy9wb3N0Z2lzL3Jhdy90YWcvJHt2ZXJzaW9ufS9ORVdT IgogZGlzdGZpbGVzPSJodHRwczovL2Rvd25sb2FkLm9zZ2VvLm9yZy9wb3N0Z2lzL3NvdXJjZS9w b3N0Z2lzLSR7dmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09ZGM4ZTNmZThiYzUzMmU0MjJmNWQ3 MjRjNWE3YzQzN2Y2NTU1NTExNzE2ZjY0MTBkNGQyZGI5NzYyZTFhMzc5NgorY2hlY2tzdW09ZmNi MTBkOWI0OTlmZDc5Mzk5YmQ4ZGI5MGYwYjMxMzgzN2QwMDIyM2QzMDA4MGRhYzQwMzQxOWUwNjdl NGMwNgogbm9jcm9zcz0iRklYTUU6IENhbm5vdCBydW4gdGVzdCBwcm9ncmFtIHRvIGRldGVybWlu ZSBQUk9KIHZlcnNpb24iCiAKIHByZV9jb25maWd1cmUoKSB7CgpGcm9tIDU1MzA4NjZiYjJhOTM0 NzBmNjFlMDFjMTJhYzI5Njk1N2JmMTU3NTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IEFyamFuIE1vc3NlbCA8YXJqYW5tb3NzZWxAZ21haWwuY29tPgpEYXRlOiBNb24sIDkgQXVnIDIw MjEgMTk6NTM6MTcgKzAyMDAKU3ViamVjdDogW1BBVENIIDA5LzE3XSB3eFB5dGhvbjQ6IGJhY2tw b3J0IHBhdGNoZXMsIGFuZCBmaXggdGVzdHMKCkJhY2twb3J0ZWQgcGF0Y2hlczoKLSB3eFBzZXVk b0RDIEdJTAotIFB5dGhvbiAzLjEwIEFHVyBGbGF0Tm90ZWJvb2sgcGF0Y2gKLSBQeXRob24gMy4x MCBTY3JvbGxlZFdpbmRvdyBhcmd1bWVudCB0eXBlcwotIFB5dGhvbiAzLjEwIEludGVnZXIgZGl2 aXNpb24KLSB3eC5XaW5kb3dJRCBhbmQgd3guUmVnaW9uIGFyZ3VtZW50cwotLS0KIC4uLi9wYXRj aGVzLzAwMDItUHl0aG9uLTMuMTAtaXNzdWVzLnBhdGNoICAgICB8IDMzMTcgKysrKysrKysrKysr KysrKysKIC4uLi8wMDAzLVB5dGhvbi0zLjEwLUFHVy1GbGF0Tm90ZWJvb2sucGF0Y2ggICB8ICAg NTcgKwogLi4uL3BhdGNoZXMvcmVzdG9yZS1naWwtcHNldWRvZGMucGF0Y2ggICAgICAgIHwgICA1 MiArCiBzcmNwa2dzL3d4UHl0aG9uNC90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgfCAgICAz ICstCiA0IGZpbGVzIGNoYW5nZWQsIDM0MjggaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvd3hQeXRob240L3BhdGNoZXMvMDAwMi1QeXRob24t My4xMC1pc3N1ZXMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3d4UHl0aG9uNC9w YXRjaGVzLzAwMDMtUHl0aG9uLTMuMTAtQUdXLUZsYXROb3RlYm9vay5wYXRjaAogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3Mvd3hQeXRob240L3BhdGNoZXMvcmVzdG9yZS1naWwtcHNldWRvZGMu cGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3d4UHl0aG9uNC9wYXRjaGVzLzAwMDItUHl0aG9u LTMuMTAtaXNzdWVzLnBhdGNoIGIvc3JjcGtncy93eFB5dGhvbjQvcGF0Y2hlcy8wMDAyLVB5dGhv bi0zLjEwLWlzc3Vlcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAuLjZjODdmZjk2N2QwMQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvd3hQeXRob240L3Bh dGNoZXMvMDAwMi1QeXRob24tMy4xMC1pc3N1ZXMucGF0Y2gKQEAgLTAsMCArMSwzMzE3IEBACitG cm9tIGY1NWExN2MyZDNiMzM2YzgyZmI0NGY3ODE2ZWM2MzIxOTg0N2Y0Y2MgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCitGcm9tOiBTY290dCBUYWxiZXJ0IDxzd3RAdGVjaGllLm5ldD4KK0RhdGU6 IERlYyAyMiAyMDIxIDIwOjIzOjU0ICswMDAwCitTdWJqZWN0OiBGaXggYSBidW5jaCBvZiBQeXRo b24gMy4xMCBpc3N1ZXMKKworCistLS0KKworZGlmZiAtLWdpdCBhLzBkNDQ5NjI2ZDZkMjk4YWQ5 NmViZDFkNTE0ZDBlNDI4MzNiY2U0NzAucGF0Y2ggYi8wZDQ0OTYyNmQ2ZDI5OGFkOTZlYmQxZDUx NGQwZTQyODMzYmNlNDcwLnBhdGNoCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAw MC4uZDJjY2RkYworLS0tIC9kZXYvbnVsbAorKysrIGIvMGQ0NDk2MjZkNmQyOThhZDk2ZWJkMWQ1 MTRkMGU0MjgzM2JjZTQ3MC5wYXRjaAorQEAgLTAsMCArMSwyMiBAQAorK0Zyb20gMGQ0NDk2MjZk NmQyOThhZDk2ZWJkMWQ1MTRkMGU0MjgzM2JjZTQ3MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK KytGcm9tOiBDYXJvbGluYSBGZWhlciBkYSBTaWx2YSA8Y2Fyb2xmc3VAZ21haWwuY29tPgorK0Rh dGU6IFR1ZSwgMTYgTm92IDIwMjEgMDE6MjQ6MzEgKzAwMDAKKytTdWJqZWN0OiBbUEFUQ0hdIEZp eGVkIGludGVnZXIgZGl2aXNpb24gaW4gUHl0aG9uIDMKKysKKystLS0KKysgd3gvbGliL3N0YXR0 ZXh0LnB5IHwgMiArLQorKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRp b24oLSkKKysKKytkaWZmIC0tZ2l0IGEvd3gvbGliL3N0YXR0ZXh0LnB5IGIvd3gvbGliL3N0YXR0 ZXh0LnB5CisraW5kZXggMmNmYjZlNjVhLi5lNjA2ZTVhODkgMTAwNjQ0CisrLS0tIGEvd3gvbGli L3N0YXR0ZXh0LnB5CisrKysrIGIvd3gvbGliL3N0YXR0ZXh0LnB5CisrQEAgLTMwMiw3ICszMDIs NyBAQCBkZWYgT25QYWludChzZWxmLCBldmVudCk6CisrICAgICAgICAgICAgIGlmIHN0eWxlICYg d3guQUxJR05fUklHSFQ6CisrICAgICAgICAgICAgICAgICB4ID0gd2lkdGggLSB3CisrICAgICAg ICAgICAgIGlmIHN0eWxlICYgd3guQUxJR05fQ0VOVEVSOgorKy0gICAgICAgICAgICAgICAgeCA9 ICh3aWR0aCAtIHcpLzIKKysrICAgICAgICAgICAgICAgIHggPSAod2lkdGggLSB3KS8vMgorKyAg ICAgICAgICAgICBkYy5EcmF3VGV4dChsaW5lLCB4LCB5KQorKyAgICAgICAgICAgICB5ICs9IGgK KysgCitkaWZmIC0tZ2l0IGEvM2ViOWViMzJkYzMyODU0MzUwMzlmNmM0MjBjMzk4NjY1MzcyYTFh ZC5wYXRjaCBiLzNlYjllYjMyZGMzMjg1NDM1MDM5ZjZjNDIwYzM5ODY2NTM3MmExYWQucGF0Y2gK K25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi4wOGU1OGEwCistLS0gL2Rldi9u dWxsCisrKysgYi8zZWI5ZWIzMmRjMzI4NTQzNTAzOWY2YzQyMGMzOTg2NjUzNzJhMWFkLnBhdGNo CitAQCAtMCwwICsxLDg0IEBACisrRnJvbSAzZWI5ZWIzMmRjMzI4NTQzNTAzOWY2YzQyMGMzOTg2 NjUzNzJhMWFkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorK0Zyb206IEdsZW4gV2hpdG5leSA8 Z2xlbkBzdHVkaW9pbmZpbml0eS5vcmc+CisrRGF0ZTogVHVlLCAzMSBBdWcgMjAyMSAxMTowNjoy NyAtMDcwMAorK1N1YmplY3Q6IFtQQVRDSF0gZml4OiBDb3JyZWN0IHR5cGVzIG9mIGFyZ3VtZW50 cyB0bworKyBTY3JvbGxlZFdpbmRvdy5TZXRTY3JvbGxiYXJzCisrCisrLS0tCisrIGRlbW8vTWFz ay5weSAgICAgICAgICAgICAgICAgICB8ICAyICstCisrIGRlbW8vT0dMLnB5ICAgICAgICAgICAg ICAgICAgICB8ICAyICstCisrIHd4L2xpYi9hZ3cvdWx0aW1hdGVsaXN0Y3RybC5weSB8IDE0ICsr KysrKystLS0tLS0tCisrIDMgZmlsZXMgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCA5IGRlbGV0 aW9ucygtKQorKworK2RpZmYgLS1naXQgYS9kZW1vL01hc2sucHkgYi9kZW1vL01hc2sucHkKKytp bmRleCA1ZjBjMmNkZGUuLjEwOWI4ZjMwYiAxMDA2NDQKKystLS0gYS9kZW1vL01hc2sucHkKKysr KysgYi9kZW1vL01hc2sucHkKKytAQCAtNTYsNyArNTYsNyBAQCBkZWYgX19pbml0X18oc2VsZiwg cGFyZW50KToKKysgICAgICAgICBtYXNrID0gd3guTWFzayhzZWxmLmJtcF93aXRoY29sb3VybWFz aywgd3guV0hJVEUpCisrICAgICAgICAgc2VsZi5ibXBfd2l0aGNvbG91cm1hc2suU2V0TWFzayht YXNrKQorKyAKKystICAgICAgICBzZWxmLlNldFNjcm9sbGJhcnMoMjAsIDIwLCA3MDAvMjAsIDQ2 MC8yMCkKKysrICAgICAgICBzZWxmLlNldFNjcm9sbGJhcnMoMjAsIDIwLCA3MDAvLzIwLCA0NjAv LzIwKQorKyAKKysgICAgICAgICBzZWxmLkJpbmQod3guRVZUX1BBSU5ULCBzZWxmLk9uUGFpbnQp CisrIAorK2RpZmYgLS1naXQgYS9kZW1vL09HTC5weSBiL2RlbW8vT0dMLnB5CisraW5kZXggNzJj YTU0M2RkLi5kNDc1ZTUwMTEgMTAwNjQ0CisrLS0tIGEvZGVtby9PR0wucHkKKysrKysgYi9kZW1v L09HTC5weQorK0BAIC0yNzIsNyArMjcyLDcgQEAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCwg bG9nLCBmcmFtZSk6CisrIAorKyAgICAgICAgIG1heFdpZHRoICA9IDEwMDAKKysgICAgICAgICBt YXhIZWlnaHQgPSAxMDAwCisrLSAgICAgICAgc2VsZi5TZXRTY3JvbGxiYXJzKDIwLCAyMCwgbWF4 V2lkdGgvMjAsIG1heEhlaWdodC8yMCkKKysrICAgICAgICBzZWxmLlNldFNjcm9sbGJhcnMoMjAs IDIwLCBtYXhXaWR0aC8vMjAsIG1heEhlaWdodC8vMjApCisrIAorKyAgICAgICAgIHNlbGYubG9n ID0gbG9nCisrICAgICAgICAgc2VsZi5mcmFtZSA9IGZyYW1lCisrZGlmZiAtLWdpdCBhL3d4L2xp Yi9hZ3cvdWx0aW1hdGVsaXN0Y3RybC5weSBiL3d4L2xpYi9hZ3cvdWx0aW1hdGVsaXN0Y3RybC5w eQorK2luZGV4IGM2MDg2NzY4NC4uMTRmYzQxZjg2IDEwMDY0NAorKy0tLSBhL3d4L2xpYi9hZ3cv dWx0aW1hdGVsaXN0Y3RybC5weQorKysrKyBiL3d4L2xpYi9hZ3cvdWx0aW1hdGVsaXN0Y3RybC5w eQorK0BAIC05NjU0LDggKzk2NTQsOCBAQCBkZWYgUmVjYWxjdWxhdGVQb3NpdGlvbnMoc2VsZiwg bm9SZWZyZXNoPUZhbHNlKToKKysgICAgICAgICAgICAgICAgIHNlbGYuX2xpbmVzUGVyUGFnZSA9 IGNsaWVudEhlaWdodC8vbGluZUhlaWdodAorKyAKKysgICAgICAgICAgICAgICAgIHNlbGYuU2V0 U2Nyb2xsYmFycyhTQ1JPTExfVU5JVF9YLCBsaW5lSGVpZ2h0LAorKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChzZWxmLkdldEhlYWRlcldpZHRoKCktZGVjcmVtZW50KS9TQ1JP TExfVU5JVF9YLAorKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbnRpcmVI ZWlnaHQgKyBsaW5lSGVpZ2h0IC0gMSkvbGluZUhlaWdodCwKKysrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoc2VsZi5HZXRIZWFkZXJXaWR0aCgpLWRlY3JlbWVudCkvL1NDUk9M TF9VTklUX1gsCisrKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVudGlyZUhl aWdodCArIGxpbmVIZWlnaHQgLSAxKS8vbGluZUhlaWdodCwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLkdldFNjcm9sbFBvcyh3eC5IT1JJWk9OVEFMKSwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLkdldFNjcm9sbFBvcyh3eC5WRVJU SUNBTCksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJ1ZSkKKytAQCAt OTY3Niw4ICs5Njc2LDggQEAgZGVmIFJlY2FsY3VsYXRlUG9zaXRpb25zKHNlbGYsIG5vUmVmcmVz aD1GYWxzZSk6CisrICAgICAgICAgICAgICAgICAgICAgZGVjcmVtZW50ID0gU0NST0xMX1VOSVRf WAorKyAKKysgICAgICAgICAgICAgICAgIHNlbGYuU2V0U2Nyb2xsYmFycyhTQ1JPTExfVU5JVF9Y LCBTQ1JPTExfVU5JVF9ZLAorKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChz ZWxmLkdldEhlYWRlcldpZHRoKCktZGVjcmVtZW50KS9TQ1JPTExfVU5JVF9YLAorKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbnRpcmVIZWlnaHQgKyBTQ1JPTExfVU5JVF9Z IC0gMSkvU0NST0xMX1VOSVRfWSwKKysrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoc2VsZi5HZXRIZWFkZXJXaWR0aCgpLWRlY3JlbWVudCkvL1NDUk9MTF9VTklUX1gsCisrKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVudGlyZUhlaWdodCArIFNDUk9MTF9V TklUX1kgLSAxKS8vU0NST0xMX1VOSVRfWSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLkdldFNjcm9sbFBvcyh3eC5IT1JJWk9OVEFMKSwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLkdldFNjcm9sbFBvcyh3eC5WRVJUSUNBTCksCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJ1ZSkKKytAQCAtOTcyOCw4ICs5 NzI4LDggQEAgZGVmIFJlY2FsY3VsYXRlUG9zaXRpb25zKHNlbGYsIG5vUmVmcmVzaD1GYWxzZSk6 CisrICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUuX2dpLkV4dGVuZFdpZHRoKHdpZHRoTWF4 KQorKyAKKysgICAgICAgICAgICAgICAgIHNlbGYuU2V0U2Nyb2xsYmFycyhTQ1JPTExfVU5JVF9Y LCBsaW5lSGVpZ2h0LAorKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh4ICsg U0NST0xMX1VOSVRfWCkvU0NST0xMX1VOSVRfWCwKKystICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoeSArIGxpbmVIZWlnaHQpL2xpbmVIZWlnaHQsCisrKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKHggKyBTQ1JPTExfVU5JVF9YKS8vU0NST0xMX1VOSVRfWCwK KysrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeSArIGxpbmVIZWlnaHQpLy9s aW5lSGVpZ2h0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuR2V0 U2Nyb2xsUG9zKHd4LkhPUklaT05UQUwpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuR2V0U2Nyb2xsUG9zKHd4LlZFUlRJQ0FMKSwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBUcnVlKQorK0BAIC05Nzk3LDcgKzk3OTcsNyBAQCBkZWYgUmVj YWxjdWxhdGVQb3NpdGlvbnMoc2VsZiwgbm9SZWZyZXNoPUZhbHNlKToKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGJyZWFrICAjIEV2ZXJ5dGhpbmcgZml0cywgbm8gc2Vjb25kIHRyeSBy ZXF1aXJlZC4KKysgCisrICAgICAgICAgICAgICAgICBzZWxmLlNldFNjcm9sbGJhcnMoU0NST0xM X1VOSVRfWCwgbGluZUhlaWdodCwKKystICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoZW50aXJlV2lkdGggKyBTQ1JPTExfVU5JVF9YKS9TQ1JPTExfVU5JVF9YLAorKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbnRpcmVXaWR0aCArIFNDUk9MTF9VTklUX1gp Ly9TQ1JPTExfVU5JVF9YLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5HZXRTY3JvbGxQb3Mo d3guSE9SSVpPTlRBTCksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwK K2RpZmYgLS1naXQgYS85MDk2NDI2NjAzMjcyNjcyZDlhNjc2ZThiY2RjYWRmMGExY2ZhMWEyLnBh dGNoIGIvOTA5NjQyNjYwMzI3MjY3MmQ5YTY3NmU4YmNkY2FkZjBhMWNmYTFhMi5wYXRjaAorbmV3 IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLmYwYjlmNWQKKy0tLSAvZGV2L251bGwK KysrKyBiLzkwOTY0MjY2MDMyNzI2NzJkOWE2NzZlOGJjZGNhZGYwYTFjZmExYTIucGF0Y2gKK0BA IC0wLDAgKzEsMTQzIEBACisrRnJvbSA5MDk2NDI2NjAzMjcyNjcyZDlhNjc2ZThiY2RjYWRmMGEx Y2ZhMWEyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorK0Zyb206IFJvYmluIER1bm4gPHJvYmlu QGFsbGR1bm4uY29tPgorK0RhdGU6IFdlZCwgMjYgRmViIDIwMjAgMTE6MTA6MjcgLTA4MDAKKytT dWJqZWN0OiBbUEFUQ0hdIEFkZCBfX2luZGV4X18gdG8gd3guV2luZG93SUQsIGFuZCBfX2Jvb2xf XyB0byB3eC5SZWdpb24KKysKKystLS0KKysgZXRnL3JlZ2lvbi5weSAgICAgICAgICAgICAgfCAg NSArKystLQorKyBldGcvd2luZG93aWQucHkgICAgICAgICAgICB8IDMyICsrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tCisrIHVuaXR0ZXN0cy90ZXN0X3dpbmRvd2lkLnB5IHwgMjMgKysr KysrKysrKysrKysrKysrKysrLS0KKysgMyBmaWxlcyBjaGFuZ2VkLCA0MSBpbnNlcnRpb25zKCsp LCAxOSBkZWxldGlvbnMoLSkKKysKKytkaWZmIC0tZ2l0IGEvZXRnL3JlZ2lvbi5weSBiL2V0Zy9y ZWdpb24ucHkKKytpbmRleCAwOTgyYzFmZTUuLmQ1YmM0NTc1OSAxMDA2NDQKKystLS0gYS9ldGcv cmVnaW9uLnB5CisrKysrIGIvZXRnL3JlZ2lvbi5weQorK0BAIC04OCwxMSArODgsMTIgQEAgZGVm IG5leHQoc2VsZik6CisrICAgICBjLm11c3RIYXZlQXBwKCkKKysgICAgIGMuZmluZCgnb3BlcmF0 b3IrKycpLmlnbm9yZSgpCisrIAorKy0gICAgIyBTSVAgbWFwcyBvcGVyYXRvciBib29sKCkgdG8g X19pbnRfXywgYnV0IENsYXNzaWMgdXNlZCBfX25vbnplcm9fXy4gRG9lcworKy0gICAgIyBpdCBt YWtlIGFueSBkaWZmZXJlbmNlIGVpdGhlciB3YXk/CisrICAgICBjLmZpbmQoJ29wZXJhdG9yIGJv b2wnKS5pZ25vcmUoKQorKyAgICAgYy5hZGRDcHBNZXRob2QoJ2ludCcsICdfX25vbnplcm9fXycs ICcoKScsICdyZXR1cm4gKGludClzZWxmLT5vcGVyYXRvciBib29sKCk7JywKKysgICAgICAgICAg ICAgICAgICAgICdSZXR1cm5zIHRydWUgd2hpbGUgdGhlcmUgYXJlIHN0aWxsIHJlY3RhbmdsZXMg YXZhaWxhYmxlIGluIHRoZSBpdGVyYXRpb24uJykKKysrICAgIGMuYWRkQ3BwTWV0aG9kKCdpbnQn LCAnX19ib29sX18nLCAnKCknLCAncmV0dXJuIChpbnQpc2VsZi0+b3BlcmF0b3IgYm9vbCgpOycs CisrKyAgICAgICAgICAgICAgICAgICAnUmV0dXJucyB0cnVlIHdoaWxlIHRoZXJlIGFyZSBzdGls bCByZWN0YW5nbGVzIGF2YWlsYWJsZSBpbiB0aGUgaXRlcmF0aW9uLicpCisrKworKyAKKysgICAg IGMuYWRkQ3BwTWV0aG9kKCd2b2lkJywgJ05leHQnLCAnKCknLCAnc2VsZi0+b3BlcmF0b3IrKygp OycsCisrICAgICAgICAgICAgICAgICAgICAnTW92ZSB0aGUgaXRlcmF0b3IgdG8gdGhlIG5leHQg cmVjdGFuZ2xlIGluIHRoZSByZWdpb24uJykKKytkaWZmIC0tZ2l0IGEvZXRnL3dpbmRvd2lkLnB5 IGIvZXRnL3dpbmRvd2lkLnB5CisraW5kZXggMjdiMDQxYjNkLi5kYTJlZDM5NWUgMTAwNjQ0Cisr LS0tIGEvZXRnL3dpbmRvd2lkLnB5CisrKysrIGIvZXRnL3dpbmRvd2lkLnB5CisrQEAgLTUzLDEy ICs1MywxMiBAQCBkZWYgcnVuKCk6CisrICAgICAgICAgICAgICAgICBNZXRob2REZWYobmFtZT0n d3hXaW5kb3dJRFJlZicsIGNsYXNzTmFtZT0nd3hXaW5kb3dJRFJlZicsIGlzQ3Rvcj1UcnVlLAor KyAgICAgICAgICAgICAgICAgICAgIGJyaWVmRG9jPSdDcmVhdGUgcmVmZXJlbmNlIGZyb20gYW4g SUQnLAorKyAgICAgICAgICAgICAgICAgICAgIGl0ZW1zPVsgUGFyYW1EZWYodHlwZT0naW50Jywg bmFtZT0naWQnKSBdKSwKKystICAgICAgICAgICAgICAgIAorKysKKysgICAgICAgICAgICAgICAg IE1ldGhvZERlZihuYW1lPSd3eFdpbmRvd0lEUmVmJywgY2xhc3NOYW1lPSd3eFdpbmRvd0lEUmVm JywgaXNDdG9yPVRydWUsCisrICAgICAgICAgICAgICAgICAgICAgYnJpZWZEb2M9J0NvcHkgYW4g SUQgcmVmZXJlbmNlJywKKysgICAgICAgICAgICAgICAgICAgICBpdGVtcz1bIFBhcmFtRGVmKHR5 cGU9J2NvbnN0IHd4V2luZG93SURSZWYmJywgbmFtZT0naWRyZWYnKSBdKSwKKysgICAgICAgICAg ICAgICAgIF0pLAorKy0gICAgICAgICAgICAKKysrCisrICAgICAgICAgICAgIE1ldGhvZERlZihu YW1lPSd+d3hXaW5kb3dJRFJlZicsIGNsYXNzTmFtZT0nd3hXaW5kb3dJRFJlZicsIGlzRHRvcj1U cnVlKSwKKysgCisrICAgICAgICAgICAgIE1ldGhvZERlZih0eXBlPSdpbnQnLCBuYW1lPSdHZXRW YWx1ZScsCisrQEAgLTczLDExICs3MywxMyBAQCBkZWYgcnVuKCk6CisrICAgICAgICAgICAgICIi IikKKysgCisrICAgICBrbGFzcy5hZGRDcHBNZXRob2QoJ2ludCcsICdfX2ludF9fJywgJygpJywK KystICAgICAgICBkb2M9IkFsaWFzIGZvciBHZXRWYWx1ZSBhbGxvd2luZyB0aGUgSURSZWYgdG8g YmUgcGFzc2VkIGFzIHRoZSBXaW5kb3dJRCBwYXJhbWV0ZXIgd2hlbiBjcmVhdGluZyB3aWRnZXRz IG9yIGV0Yy4iLAorKy0gICAgICAgIGJvZHk9IiIiXAorKy0gICAgICAgICAgICByZXR1cm4gc2Vs Zi0+R2V0VmFsdWUoKTsKKystICAgICAgICAgICAgIiIiKQorKy0gICAgCisrKyAgICAgICAgZG9j PSJBbGlhcyBmb3IgR2V0VmFsdWUgYWxsb3dpbmcgdGhlIElEUmVmIHRvIGJlIHBhc3NlZCBhcyB0 aGUgV2luZG93SUQgcGFyYW1ldGVyIHdoZW4gY3JlYXRpbmcgd2lkZ2V0cyBvciBvdGhlciBwbGFj ZXMgYW4gaW50ZWdlciB0eXBlIGlzIG5lZWRlZC4iLAorKysgICAgICAgIGJvZHk9InJldHVybiBz ZWxmLT5HZXRWYWx1ZSgpOyIpCisrKyAgICBrbGFzcy5hZGRDcHBNZXRob2QoJ2ludCcsICdfX2lu ZGV4X18nLCAnKCknLAorKysgICAgICAgIGRvYz0iU2VlIDptZXRoOmBfX2ludF9fYCIsCisrKyAg ICAgICAgYm9keT0icmV0dXJuIHNlbGYtPkdldFZhbHVlKCk7IikKKysrCisrKworKyAgICAga2xh c3MuYWRkQ3BwTWV0aG9kKCdib29sJywgJ19fZXFfXycsICcod3hXaW5kb3dJRCBpZCknLCAicmV0 dXJuIHNlbGYtPkdldFZhbHVlKCkgPT0gaWQ7IikKKysgICAgIGtsYXNzLmFkZENwcE1ldGhvZCgn Ym9vbCcsICdfX25lX18nLCAnKHd4V2luZG93SUQgaWQpJywgInJldHVybiBzZWxmLT5HZXRWYWx1 ZSgpICE9IGlkOyIpCisrICAgICBrbGFzcy5hZGRDcHBNZXRob2QoJ2Jvb2wnLCAnX19sdF9fJywg Jyh3eFdpbmRvd0lEIGlkKScsICJyZXR1cm4gc2VsZi0+R2V0VmFsdWUoKSA8IGlkOyIpCisrQEAg LTkyLDE3ICs5NCwxNyBAQCBkZWYgcnVuKCk6CisrICAgICAjIGFuZCBmaW5pc2ggaXQgdXAgYnkg YWRkaW5nIGl0IHRvIHRoZSBtb2R1bGUKKysgICAgIG1vZHVsZS5hZGRJdGVtKGtsYXNzKQorKyAK KystICAgICMgTm93LCBsZXQncyBhZGQgYSBuZXcgUHl0aG9uIGZ1bmN0aW9uIHRvIHRoZSBnbG9i YWwgc2NvcGUgdGhhdCByZXNlcnZlcyBhbiAKKystICAgICMgSUQgKG9yIHJhbmdlKSBhbmQgcmV0 dXJucyBhIHJlZiBvYmplY3QgZm9yIGl0LiAKKystICAgIG1vZHVsZS5hZGRQeUZ1bmN0aW9uKCdO ZXdJZFJlZicsICcoY291bnQ9MSknLCAKKysrICAgICMgTm93LCBsZXQncyBhZGQgYSBuZXcgUHl0 aG9uIGZ1bmN0aW9uIHRvIHRoZSBnbG9iYWwgc2NvcGUgdGhhdCByZXNlcnZlcyBhbgorKysgICAg IyBJRCAob3IgcmFuZ2UpIGFuZCByZXR1cm5zIGEgcmVmIG9iamVjdCBmb3IgaXQuCisrKyAgICBt b2R1bGUuYWRkUHlGdW5jdGlvbignTmV3SWRSZWYnLCAnKGNvdW50PTEpJywKKysgICAgICAgICBk b2M9IiIiXAorKy0gICAgICAgICAgICBSZXNlcnZlcyBhIG5ldyBXaW5kb3cgSUQgKG9yIHJhbmdl IG9mIFdpbmRvd0lEcykgYW5kIHJldHVybnMgYSAKKystICAgICAgICAgICAgOmNsYXNzOmB3eC5X aW5kb3dJRFJlZmAgb2JqZWN0IChvciBsaXN0IG9mIHRoZW0pIHRoYXQgd2lsbCBoZWxwIAorKysg ICAgICAgICAgICBSZXNlcnZlcyBhIG5ldyBXaW5kb3cgSUQgKG9yIHJhbmdlIG9mIFdpbmRvd0lE cykgYW5kIHJldHVybnMgYQorKysgICAgICAgICAgICA6Y2xhc3M6YHd4LldpbmRvd0lEUmVmYCBv YmplY3QgKG9yIGxpc3Qgb2YgdGhlbSkgdGhhdCB3aWxsIGhlbHAKKysgICAgICAgICAgICAgbWFu YWdlIHRoZSByZXNlcnZhdGlvbiBvZiB0aGF0IElELgorKyAKKystICAgICAgICAgICAgVGhpcyBm dW5jdGlvbiBpcyBpbnRlbmRlZCB0byBiZSBhIGRyb3AtaW4gcmVwbGFjZW1lbnQgb2YgdGhlIG9s ZCAKKystICAgICAgICAgICAgYW5kIGRlcHJlY2F0ZWQgOmZ1bmM6YHd4Lk5ld0lkYCBmdW5jdGlv biwgd2l0aCB0aGUgYWRkZWQgYmVuZWZpdCAKKystICAgICAgICAgICAgdGhhdCB0aGUgSUQgc2hv dWxkIG5ldmVyIGNvbmZsaWN0IHdpdGggYW4gaW4tdXNlIElEIG9yIG90aGVyIElEcyAKKysrICAg ICAgICAgICAgVGhpcyBmdW5jdGlvbiBpcyBpbnRlbmRlZCB0byBiZSBhIGRyb3AtaW4gcmVwbGFj ZW1lbnQgb2YgdGhlIG9sZAorKysgICAgICAgICAgICBhbmQgZGVwcmVjYXRlZCA6ZnVuYzpgd3gu TmV3SWRgIGZ1bmN0aW9uLCB3aXRoIHRoZSBhZGRlZCBiZW5lZml0CisrKyAgICAgICAgICAgIHRo YXQgdGhlIElEIHNob3VsZCBuZXZlciBjb25mbGljdCB3aXRoIGFuIGluLXVzZSBJRCBvciBvdGhl ciBJRHMKKysgICAgICAgICAgICAgZ2VuZXJhdGVkIGJ5IHRoaXMgZnVuY3Rpb24uCisrICAgICAg ICAgICAgICIiIiwKKysgICAgICAgICBib2R5PSIiIlwKKytkaWZmIC0tZ2l0IGEvdW5pdHRlc3Rz L3Rlc3Rfd2luZG93aWQucHkgYi91bml0dGVzdHMvdGVzdF93aW5kb3dpZC5weQorK2luZGV4IDQ1 OTNlNWE2OS4uZmMzNmM5ZWI4IDEwMDY0NAorKy0tLSBhL3VuaXR0ZXN0cy90ZXN0X3dpbmRvd2lk LnB5CisrKysrIGIvdW5pdHRlc3RzL3Rlc3Rfd2luZG93aWQucHkKKytAQCAtMzEsOSArMzEsOSBA QCBkZWYgdGVzdF9uZXdJZFJlZjAyKHNlbGYpOgorKyAgICAgZGVmIHRlc3RfbmV3SWRSZWYwMyhz ZWxmKToKKysgICAgICAgICAiIiJDaGVjayB0aGF0IEF1dG8gSUQgTWFuYWdlbWVudCBpcyBlbmFi bGVkICgtLWVuYWJsZS1hdXRvaWRtYW4pIiIiCisrICAgICAgICAgIyBUaGlzIHRlc3QgaXMgZXhw ZWN0ZWQgdG8gZmFpbCBpZiBhdXRvSUQgbWFuZ2FnZW1lbnQgaXMgdHVybmVkIG9uCisrLSAgICAg ICAgIyBiZWNhdXNlIGEgcmVmZXJlbmNlIHRvIHRoZSBJRCBpcyBub3QgYmVpbmcgc2F2ZWQsIHNv IGl0IHdpbGwgYmUgCisrKyAgICAgICAgIyBiZWNhdXNlIGEgcmVmZXJlbmNlIHRvIHRoZSBJRCBp cyBub3QgYmVpbmcgc2F2ZWQsIHNvIGl0IHdpbGwgYmUKKysgICAgICAgICAjIHVucmVzZXJ2ZWQg d2hlbiB0aGUgZmlyc3Qgd2lkZ2V0IGlzIGRlc3Ryb3llZC4KKystICAgICAgICAKKysrCisrICAg ICAgICAgaWQgPSB3eC5XaW5kb3cuTmV3Q29udHJvbElkKCkKKysgICAgICAgICBiID0gd3guQnV0 dG9uKHNlbGYuZnJhbWUsIGlkLCAnYnV0dG9uJykKKysgICAgICAgICBiLkRlc3Ryb3koKQorK0BA IC03NSw2ICs3NSw3IEBAIGRlZiB0ZXN0X1dpbmRvd0lEUmVmMDEoc2VsZik6CisrICAgICAgICAg dmFsID0gcmVmMSA8PSByZWYyCisrICAgICAgICAgYXNzZXJ0IHR5cGUodmFsKSA9PSBib29sCisr IAorKysKKysgICAgIGRlZiB0ZXN0X1dpbmRvd0lEUmVmMDIoc2VsZik6CisrICAgICAgICAgZCA9 IHt3eC5OZXdJZFJlZigpOiAnb25lJywKKysgICAgICAgICAgICAgIHd4Lk5ld0lkUmVmKCk6ICd0 d28nfQorK0BAIC04Miw2ICs4MywyNCBAQCBkZWYgdGVzdF9XaW5kb3dJRFJlZjAyKHNlbGYpOgor KyAgICAgICAgIGZvciBrIGluIGtleXM6CisrICAgICAgICAgICAgIHZhbCA9IGRba10KKysgCisr KworKysgICAgZGVmIHRlc3RfV2luZG93SURSZWYwMyhzZWxmKToKKysrICAgICAgICAjIEVuc3Vy ZSB3eC5XaW5kb3dJRFJlZiBjYW4gYmUgY29udmVydGVkIHRvIGludCB3aXRob3V0IHdhcm5pbmcg d2hlbgorKysgICAgICAgICMgbWFraW5nIGEgY2FsbCB0byB3YXJycGVkIG1ldGhvZC4gSW4gUHkz LjgrIHRoaXMgbWVhbnMgdGhlcmUgbmVlZHMgdG8KKysrICAgICAgICAjIGJlIGFuIF9faW5kZXhf XyBtZXRob2QuCisrKworKysgICAgICAgICMgVHVybiB3YXJuaW5ncyBpbnRvIGV4Y2VwdGlvbnMg c28gdGhpcyB0ZXN0IHdpbGwgZmFpbCBpZiB0aGVyZSBpcworKysgICAgICAgICMgYSB3YXJuaW5n CisrKyAgICAgICAgaW1wb3J0IHdhcm5pbmdzCisrKyAgICAgICAgd2FybmluZ3Muc2ltcGxlZmls dGVyKCdlcnJvcicpCisrKworKysgICAgICAgIHdpZCA9IHd4Lk5ld0lkUmVmKCkKKysrICAgICAg ICBhc3NlcnQgaXNpbnN0YW5jZSh3aWQsIHd4LldpbmRvd0lEUmVmKQorKysKKysrICAgICAgICBi ID0gd3guQnV0dG9uKHNlbGYuZnJhbWUsIHdpZCwgJ2J1dHRvbicpCisrKyAgICAgICAgYXNzZXJ0 IGIuR2V0SWQoKSA9PSB3aWQuR2V0SWQoKQorKysKKysrCisrICMtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KysgCisrIAorIAorZGlmZiAtLWdpdCBhL3B5dGhvbjMuMTAtZml4ZXMucGF0Y2ggYi9weXRob24z LjEwLWZpeGVzLnBhdGNoCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uMjll OGM2MQorLS0tIC9kZXYvbnVsbAorKysrIGIvcHl0aG9uMy4xMC1maXhlcy5wYXRjaAorQEAgLTAs MCArMSwzMDM0IEBACisrRnJvbSAxNzNkMDc5NjgxMGJiNjVkZTliZGZkYzY5NDFkMjRhMDQ2Mjhm NmMyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorK0Zyb206IFNjb3R0IFRhbGJlcnQgPHN3dEB0 ZWNoaWUubmV0PgorK0RhdGU6IFdlZCwgMSBEZWMgMjAyMSAxNDoxOTowMCAtMDUwMAorK1N1Ympl Y3Q6IFtQQVRDSF0gRml4IGEgYnVuY2ggb2YgUHl0aG9uIDMuMTAgaXNzdWVzIHdpdGggcHVyZS1Q eXRob24gY2xhc3NlcworKyBhbmQgZGVtb3MKKysKKytJbiBQeXRob24gMy4xMCwgYSBjaGFuZ2Vb MV0gd2FzIGltcGxlbWVudGVkIHdoZXJlIGV4dGVuc2lvbiBmdW5jdGlvbnMKKyt0aGF0IHRha2Ug aW50ZWdlciBhcmd1bWVudHMgd2lsbCBubyBsb25nZXIgc2lsZW50bHkgYWNjZXB0IG5vbi1pbnRl Z2VyCisrYXJndW1lbnRzIChlLmcuLCBmbG9hdHMpIHRoYXQgY2FuIG9ubHkgYmUgY29udmVydGVk IHRvIGludGVnZXJzIHdpdGggYQorK2xvc3Mgb2YgcHJlY2lzaW9uLiAgVGhpcyBQUiBmaXhlcyBt b3N0IG9mIHRoZXNlIGlzc3VlcyBpbiB0aGUgcHVyZS1QeXRob24KKytjbGFzc2VzIGFuZCBkZW1v cyBieSBleHBsaWNpdGx5IGNvbnZlcnRpbmcgdGhlIHBhcmFtZXRlcnMgdG8gaW50IGJlZm9yZQor K3Bhc3NpbmcgdGhlbSB0byB3eFdpZGdldHMuICBUaGVyZSBpcyBsb3NzIG9mIHByZWNpc2lvbiwg YnV0IHRoaXMgd2FzCisraGFwcGVuaW5nIGJlZm9yZSAoYXV0b21hdGljYWxseSkgYW55d2F5IGFz IG1vc3Qgd3hXaWRnZXRzIERldmljZUNvbnRleHQKKytmdW5jdGlvbnMgb3BlcmF0ZSB1c2luZyBp bnRlZ2Vycy4KKysKKytBZGRpdGlvbmFsbHksIHRoZSBQUiBmaXhlcyBhIGZldyBzaXppbmcgaXNz dWVzLCBtb3N0bHkgd2l0aCBTcGluQ3RybHMgYmVpbmcKKyt0b28gc21hbGwgb24gR1RLMy4KKysK KytUaGlzIGlzIGFuIGV4YW1wbGUgb2YgdGhlIHJlbGV2YW50IGV4Y2VwdGlvbjoKKytUcmFjZWJh Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisrICBGaWxlICIvdXNyL2xpYjY0L3B5dGhvbjMu MTAvc2l0ZS1wYWNrYWdlcy93eC9saWIvYWd3L3B5Z2F1Z2UucHkiLCBsaW5lIDM1NSwgaW4gT25Q YWludAorKyAgICByLndpZHRoID0gdworK1R5cGVFcnJvcjogJ2Zsb2F0JyBvYmplY3QgY2Fubm90 IGJlIGludGVycHJldGVkIGFzIGFuIGludGVnZXIKKysKKytGaXhlcyAjMjAzOC4KKysKKytbMV0g aHR0cHM6Ly9idWdzLnB5dGhvbi5vcmcvaXNzdWUzNzk5OQorKy0tLQorKyBkZW1vL0dyaWRMYWJl bFJlbmRlcmVyLnB5ICAgICAgICAgICAgICAgfCAgIDQgKy0KKysgZGVtby9NYXNrLnB5ICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCisrIGRlbW8vT3ZlcmxheS5weSAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgMSAtCisrIGRlbW8vUGVuQW5kQnJ1c2hTdHlsZXMucHkgICAg ICAgICAgICAgICB8ICAgMiArLQorKyBkZW1vL1BvcHVwV2luZG93LnB5ICAgICAgICAgICAgICAg ICAgICAgfCAgIDIgKy0KKysgZGVtby9QcmludEZyYW1ld29yay5weSAgICAgICAgICAgICAgICAg IHwgICAyICstCisrIGRlbW8vUHJvcGVydHlHcmlkLnB5ICAgICAgICAgICAgICAgICAgICB8ICAg MiArLQorKyBkZW1vL1NpemVycy5weSAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0K KysgZGVtby9VSUFjdGlvblNpbXVsYXRvci5weSAgICAgICAgICAgICAgIHwgICAyICstCisrIGRl bW8vYWd3L0FVSS5weSAgICAgICAgICAgICAgICAgICAgICAgICB8ICAzMiArKystLS0tCisrIGRl bW8vYWd3L01hY0xhcmdlRGVtby5weSAgICAgICAgICAgICAgICB8ICAgNCArLQorKyBkZW1vL2Fn dy9QZWFrTWV0ZXIucHkgICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KKysgZGVtby9hZ3cvUGVy c2lzdGVudENvbnRyb2xzLnB5ICAgICAgICAgIHwgICAyICstCisrIGRlbW8vYWd3L1JpYmJvbkJh ci5weSAgICAgICAgICAgICAgICAgICB8ICAgMiArLQorKyBkZW1vL2Fndy9TcGVlZE1ldGVyLnB5 ICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KKysgZGVtby9hZ3cvU3VwZXJUb29sVGlwLnB5ICAg ICAgICAgICAgICAgIHwgICAzICstCisrIGRlbW8vYWd3L1RodW1iRGVtb0NvbmZpZy5weSAgICAg ICAgICAgICB8ICAgMSArCisrIGRlbW8vYWd3L1VsdGltYXRlUmVwb3J0RGVtby5weSAgICAgICAg ICB8ICAgOCArLQorKyBkZW1vL2Fndy9XaW5kb3dzN0V4cGxvcmVyX0NvbnRlbnRzLnB5ICAgfCAg MTYgKystLQorKyBkZW1vL2Fndy9ab29tQmFyLnB5ICAgICAgICAgICAgICAgICAgICAgfCAgIDIg Ky0KKysgd3gvbGliL2Fndy9hZHZhbmNlZHNwbGFzaC5weSAgICAgICAgICAgIHwgICAyICstCisr IHd4L2xpYi9hZ3cvYXVpL2F1aV91dGlsaXRpZXMucHkgICAgICAgICB8ICAgNCArLQorKyB3eC9s aWIvYWd3L2F1aS9hdWlib29rLnB5ICAgICAgICAgICAgICAgfCAgIDQgKy0KKysgd3gvbGliL2Fn dy9iYWxsb29udGlwLnB5ICAgICAgICAgICAgICAgIHwgICA0ICstCisrIHd4L2xpYi9hZ3cvZmxh dG1lbnUucHkgICAgICAgICAgICAgICAgICB8ICA2MiArKysrKystLS0tLS0tCisrIHd4L2xpYi9h Z3cvZmxhdG5vdGVib29rLnB5ICAgICAgICAgICAgICB8ICAxMCArLS0KKysgd3gvbGliL2Fndy9m bG9hdHNwaW4ucHkgICAgICAgICAgICAgICAgIHwgICAyICstCisrIHd4L2xpYi9hZ3cvZ3JhZGll bnRidXR0b24ucHkgICAgICAgICAgICB8ICAgOCArLQorKyB3eC9saWIvYWd3L2h5cGVydHJlZWxp c3QucHkgICAgICAgICAgICAgfCAgIDIgKy0KKysgd3gvbGliL2Fndy9rbm9iY3RybC5weSAgICAg ICAgICAgICAgICAgIHwgIDEyICstLQorKyB3eC9saWIvYWd3L2xhYmVsYm9vay5weSAgICAgICAg ICAgICAgICAgfCAgMzIgKysrLS0tLQorKyB3eC9saWIvYWd3L3BlYWttZXRlci5weSAgICAgICAg ICAgICAgICAgfCAgIDIgKy0KKysgd3gvbGliL2Fndy9weWdhdWdlLnB5ICAgICAgICAgICAgICAg ICAgIHwgICA0ICstCisrIHd4L2xpYi9hZ3cvcmliYm9uL2FydF9hdWkucHkgICAgICAgICAgICB8 ICAyMiArKy0tLQorKyB3eC9saWIvYWd3L3JpYmJvbi9hcnRfaW50ZXJuYWwucHkgICAgICAgfCAg MTIgKy0tCisrIHd4L2xpYi9hZ3cvcmliYm9uL2FydF9tc3cucHkgICAgICAgICAgICB8ICA4OCAr KysrKysrKystLS0tLS0tLS0tCisrIHd4L2xpYi9hZ3cvcmliYm9uL2Jhci5weSAgICAgICAgICAg ICAgICB8ICAgNCArLQorKyB3eC9saWIvYWd3L3JpYmJvbi9idXR0b25iYXIucHkgICAgICAgICAg fCAgIDYgKy0KKysgd3gvbGliL2Fndy9yaWJib24vZ2FsbGVyeS5weSAgICAgICAgICAgIHwgICA4 ICstCisrIHd4L2xpYi9hZ3cvcmliYm9uL3BhbmVsLnB5ICAgICAgICAgICAgICB8ICAxNiArKy0t CisrIHd4L2xpYi9hZ3cvcmliYm9uL3Rvb2xiYXIucHkgICAgICAgICAgICB8ICAgMiArLQorKyB3 eC9saWIvYWd3L3Njcm9sbGVkdGh1bWJuYWlsLnB5ICAgICAgICAgfCAgMjQgKysrLS0tCisrIHd4 L2xpYi9hZ3cvc2hhcGVkYnV0dG9uLnB5ICAgICAgICAgICAgICB8ICAxMCArLS0KKysgd3gvbGli L2Fndy9zcGVlZG1ldGVyLnB5ICAgICAgICAgICAgICAgIHwgIDcyICsrKysrKysrKy0tLS0tLS0K Kysgd3gvbGliL2Fndy9zdXBlcnRvb2x0aXAucHkgICAgICAgICAgICAgIHwgIDIwICsrLS0tCisr IHd4L2xpYi9hZ3cvdG9hc3RlcmJveC5weSAgICAgICAgICAgICAgICB8ICAgNCArLQorKyB3eC9s aWIvYWd3L3VsdGltYXRlbGlzdGN0cmwucHkgICAgICAgICAgfCAgMjAgKystLS0KKysgd3gvbGli L2Fndy94bHNncmlkLnB5ICAgICAgICAgICAgICAgICAgIHwgICA0ICstCisrIHd4L2xpYi9hZ3cv em9vbWJhci5weSAgICAgICAgICAgICAgICAgICB8ICAxMCArLS0KKysgd3gvbGliL2FuYWxvZ2Ns b2NrL2FuYWxvZ2Nsb2NrLnB5ICAgICAgIHwgICAyICstCisrIHd4L2xpYi9hbmFsb2djbG9jay9o ZWxwZXJzLnB5ICAgICAgICAgICB8ICAyMiArKy0tLQorKyB3eC9saWIvYW5hbG9nY2xvY2svc2V0 dXAucHkgICAgICAgICAgICAgfCAgIDYgKy0KKysgd3gvbGliL2J1dHRvbnMucHkgICAgICAgICAg ICAgICAgICAgICAgIHwgIDEwICstLQorKyB3eC9saWIvY29sb3VyY2hvb3Nlci9weWNvbG91cmNo b29zZXIucHkgfCAgIDQgKy0KKysgd3gvbGliL2NvbG91cmNob29zZXIvcHlwYWxldHRlLnB5ICAg ICAgIHwgICAyICstCisrIHd4L2xpYi9mbG9hdGNhbnZhcy9GQ09iamVjdHMucHkgICAgICAgICB8 ICAgOCArLQorKyB3eC9saWIvZ2l6bW9zL2xlZGN0cmwucHkgICAgICAgICAgICAgICAgfCAgIDgg Ky0KKysgd3gvbGliL2ltYWdlYnJvd3Nlci5weSAgICAgICAgICAgICAgICAgIHwgICA0ICstCisr IHd4L2xpYi9vZ2wvYmFzaWMucHkgICAgICAgICAgICAgICAgICAgICB8ICAxMCArLS0KKysgd3gv bGliL29nbC9ibXBzaGFwZS5weSAgICAgICAgICAgICAgICAgIHwgICAyICstCisrIHd4L2xpYi9v Z2wvY29tcG9zaXQucHkgICAgICAgICAgICAgICAgICB8ICAgNCArLQorKyB3eC9saWIvb2dsL2Rp dmlkZWQucHkgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KKysgd3gvbGliL29nbC9saW5lcy5w eSAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCisrIHd4L2xpYi9vZ2wvb2dsbWlzYy5weSAg ICAgICAgICAgICAgICAgICB8ICAgNCArLQorKyB3eC9saWIvcGxvdC9leGFtcGxlcy9kZW1vLnB5 ICAgICAgICAgICAgfCAgIDQgKy0KKysgd3gvbGliL3Bsb3QvcGxvdGNhbnZhcy5weSAgICAgICAg ICAgICAgIHwgMTEwICsrKysrKysrKysrKy0tLS0tLS0tLS0tLQorKyB3eC9saWIvcGxvdC9wb2x5 b2JqZWN0cy5weSAgICAgICAgICAgICAgfCAgMjIgKysrLS0KKysgd3gvbGliL3BvcHVwY3RsLnB5 ICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCisrIHd4L2xpYi9zY3JvbGxlZHBhbmVsLnB5 ICAgICAgICAgICAgICAgICB8ICAgMiArLQorKyB3eC9saWIvdGhyb2JiZXIucHkgICAgICAgICAg ICAgICAgICAgICAgfCAgIDYgKy0KKysgd3gvbGliL3RpY2tlci5weSAgICAgICAgICAgICAgICAg ICAgICAgIHwgICA0ICstCisrIDcxIGZpbGVzIGNoYW5nZWQsIDQxMSBpbnNlcnRpb25zKCspLCAz OTggZGVsZXRpb25zKC0pCisrCisrZGlmZiAtLWdpdCBhL2RlbW8vR3JpZExhYmVsUmVuZGVyZXIu cHkgYi9kZW1vL0dyaWRMYWJlbFJlbmRlcmVyLnB5CisraW5kZXggNzk0ZGQ2NGU4Li4xNDQwZWY0 MWIgMTAwNjQ0CisrLS0tIGEvZGVtby9HcmlkTGFiZWxSZW5kZXJlci5weQorKysrKyBiL2RlbW8v R3JpZExhYmVsUmVuZGVyZXIucHkKKytAQCAtNDYsOCArNDYsOCBAQCBkZWYgX19pbml0X18oc2Vs Zik6CisrICAgICAgICAgc2VsZi5fYm1wID0gaW1hZ2VzLlNtaWxlcy5HZXRCaXRtYXAoKQorKyAK KysgICAgIGRlZiBEcmF3KHNlbGYsIGdyaWQsIGRjLCByZWN0LCByYyk6CisrLSAgICAgICAgeCA9 IHJlY3QubGVmdCArIChyZWN0LndpZHRoIC0gc2VsZi5fYm1wLkdldFdpZHRoKCkpIC8gMgorKy0g ICAgICAgIHkgPSByZWN0LnRvcCArIChyZWN0LmhlaWdodCAtIHNlbGYuX2JtcC5HZXRIZWlnaHQo KSkgLyAyCisrKyAgICAgICAgeCA9IHJlY3QubGVmdCArIChyZWN0LndpZHRoIC0gc2VsZi5fYm1w LkdldFdpZHRoKCkpIC8vIDIKKysrICAgICAgICB5ID0gcmVjdC50b3AgKyAocmVjdC5oZWlnaHQg LSBzZWxmLl9ibXAuR2V0SGVpZ2h0KCkpIC8vIDIKKysgICAgICAgICBkYy5EcmF3Qml0bWFwKHNl bGYuX2JtcCwgeCwgeSwgVHJ1ZSkKKysgCisrIAorK2RpZmYgLS1naXQgYS9kZW1vL01hc2sucHkg Yi9kZW1vL01hc2sucHkKKytpbmRleCAxMDliOGYzMGIuLmU5MjRmOTViOSAxMDA2NDQKKystLS0g YS9kZW1vL01hc2sucHkKKysrKysgYi9kZW1vL01hc2sucHkKKytAQCAtOTAsOSArOTAsOSBAQCBk ZWYgT25QYWludCAoc2VsZiwgZSk6CisrIAorKyAgICAgICAgIGZvciB0ZXh0LCBjb2RlIGluIGxv Z2ljTGlzdDoKKysgICAgICAgICAgICAgeCx5ID0gMTIwKzE1MCooaSU0KSwgMjArMTAwKihpLzQp CisrLSAgICAgICAgICAgIGRjLkRyYXdUZXh0KHRleHQsIHgsIHktMjApCisrKyAgICAgICAgICAg IGRjLkRyYXdUZXh0KHRleHQsIHgsIGludCh5LTIwKSkKKysgICAgICAgICAgICAgbWRjLlNlbGVj dE9iamVjdChzZWxmLmJtcF93aXRoY29sb3VybWFzaykKKystICAgICAgICAgICAgZGMuQmxpdCh4 LHksIGN4LGN5LCBtZGMsIDAsMCwgY29kZSwgVHJ1ZSkKKysrICAgICAgICAgICAgZGMuQmxpdCh4 LGludCh5KSwgY3gsY3ksIG1kYywgMCwwLCBjb2RlLCBUcnVlKQorKyAgICAgICAgICAgICBpID0g aSArIDEKKysgCisrIAorK2RpZmYgLS1naXQgYS9kZW1vL092ZXJsYXkucHkgYi9kZW1vL092ZXJs YXkucHkKKytpbmRleCA2NTE2NGNkODQuLmZhNjViZTAwMyAxMDA2NDQKKystLS0gYS9kZW1vL092 ZXJsYXkucHkKKysrKysgYi9kZW1vL092ZXJsYXkucHkKKytAQCAtNTYsNyArNTYsNiBAQCBkZWYg X19pbml0X18oc2VsZiwgcGFyZW50LCBsb2cpOgorKyAgICAgICAgIHNlbGYucGVuc3R5bGVzQ29t Ym8uU2V0VG9vbFRpcCgnUGVuIFN0eWxlJykKKysgCisrICAgICAgICAgc2VsZi5vdmVybGF5UGVu V2lkdGggPSB3eC5TcGluQ3RybChzZWxmLCAtMSwgdmFsdWU9JycsCisrLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPSg3NSwgLTEpLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9d3guU1BfQVJST1dfS0VZUywK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbj0xLCBtYXg9 MjQsIGluaXRpYWw9MSkKKysgICAgICAgICBzZWxmLm92ZXJsYXlQZW5XaWR0aC5TZXRUb29sVGlw KCdQZW4gV2lkdGgnKQorK2RpZmYgLS1naXQgYS9kZW1vL1BlbkFuZEJydXNoU3R5bGVzLnB5IGIv ZGVtby9QZW5BbmRCcnVzaFN0eWxlcy5weQorK2luZGV4IDI0MDQwYjFmYy4uMTE4M2Y2ODRhIDEw MDY0NAorKy0tLSBhL2RlbW8vUGVuQW5kQnJ1c2hTdHlsZXMucHkKKysrKysgYi9kZW1vL1BlbkFu ZEJydXNoU3R5bGVzLnB5CisrQEAgLTEwMCw3ICsxMDAsNyBAQCBkZWYgT25QYWludChzZWxmLCBl dmVudCk6CisrIAorKyAgICAgICAgIGRjLlNldFBlbihwZW4pCisrICAgICAgICAgeSA9IGxhYmVs SGVpZ2h0ICsgKGhlaWdodCAtIGxhYmVsSGVpZ2h0KS8yCisrLSAgICAgICAgZGMuRHJhd0xpbmUo NSwgeSwgd2lkdGgtNSwgeSkKKysrICAgICAgICBkYy5EcmF3TGluZSg1LCBpbnQoeSksIHdpZHRo LTUsIGludCh5KSkKKysgCisrIAorKyBjbGFzcyBCcnVzaFBhbmVsKEJhc2VQYW5lbCk6CisrZGlm ZiAtLWdpdCBhL2RlbW8vUG9wdXBXaW5kb3cucHkgYi9kZW1vL1BvcHVwV2luZG93LnB5CisraW5k ZXggZDhlMTc1NTc2Li5iNTRiOTg3MGQgMTAwNjQ0CisrLS0tIGEvZGVtby9Qb3B1cFdpbmRvdy5w eQorKysrKyBiL2RlbW8vUG9wdXBXaW5kb3cucHkKKytAQCAtODksNyArODksNyBAQCBkZWYgX19p bml0X18oc2VsZiwgcGFyZW50LCBzdHlsZSwgbG9nKToKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAiKG9yIGl0cyBmaXJzdCBjaGlsZCkgbG9zZXMgZm9jdXMgaW4gXG4iCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgImFueSBvdGhlciB3YXkuIikKKysgICAgICAgICBidG4gPSB3eC5C dXR0b24ocGFuZWwsIC0xLCAiUHJlc3MgTWUiKQorKy0gICAgICAgIHNwaW4gPSB3eC5TcGluQ3Ry bChwYW5lbCwgLTEsICJIZWxsbyIsIHNpemU9KDEwMCwtMSkpCisrKyAgICAgICAgc3BpbiA9IHd4 LlNwaW5DdHJsKHBhbmVsLCAtMSwgIkhlbGxvIikKKysgICAgICAgICBidG4uQmluZCh3eC5FVlRf QlVUVE9OLCBzZWxmLk9uQnV0dG9uKQorKyAKKysgICAgICAgICBzaXplciA9IHd4LkJveFNpemVy KHd4LlZFUlRJQ0FMKQorK2RpZmYgLS1naXQgYS9kZW1vL1ByaW50RnJhbWV3b3JrLnB5IGIvZGVt by9QcmludEZyYW1ld29yay5weQorK2luZGV4IGU3YTI5YTA3Ny4uZjA4NzNhZTk0IDEwMDY0NAor Ky0tLSBhL2RlbW8vUHJpbnRGcmFtZXdvcmsucHkKKysrKysgYi9kZW1vL1ByaW50RnJhbWV3b3Jr LnB5CisrQEAgLTgxLDcgKzgxLDcgQEAgZGVmIE9uUHJpbnRQYWdlKHNlbGYsIHBhZ2UpOgorKyAK KysgICAgICAgICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor KyAgICAgICAgIHNlbGYuY2FudmFzLkRvRHJhd2luZyhkYywgVHJ1ZSkKKystICAgICAgICBkYy5E cmF3VGV4dCgiUGFnZTogJWQiICUgcGFnZSwgbWFyZ2luWC8yLCBtYXhZLW1hcmdpblkpCisrKyAg ICAgICAgZGMuRHJhd1RleHQoIlBhZ2U6ICVkIiAlIHBhZ2UsIG1hcmdpblgvLzIsIG1heFktbWFy Z2luWSkKKysgCisrICAgICAgICAgcmV0dXJuIFRydWUKKysgCisrZGlmZiAtLWdpdCBhL2RlbW8v UHJvcGVydHlHcmlkLnB5IGIvZGVtby9Qcm9wZXJ0eUdyaWQucHkKKytpbmRleCBjNTZlMDhiNjAu LmZiZWYyOWUzMSAxMDA2NDQKKystLS0gYS9kZW1vL1Byb3BlcnR5R3JpZC5weQorKysrKyBiL2Rl bW8vUHJvcGVydHlHcmlkLnB5CisrQEAgLTE1MCw3ICsxNTAsNyBAQCBkZWYgX0NvbnZlcnRWYWx1 ZShzZWxmLCB2YWx1ZSk6CisrICAgICAgICAgIiIiIFV0aWxpdHkgY29udmVydCBhcmJpdHJhcnkg dmFsdWUgdG8gYSByZWFsIHd4LlNpemUuCisrICAgICAgICAgIiIiCisrICAgICAgICAgaW1wb3J0 IGNvbGxlY3Rpb25zCisrLSAgICAgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgY29sbGVjdGlvbnMu U2VxdWVuY2UpIG9yIGhhc2F0dHIodmFsdWUsICdfX2dldGl0ZW1fXycpOgorKysgICAgICAgIGlm IGlzaW5zdGFuY2UodmFsdWUsIGNvbGxlY3Rpb25zLmFiYy5TZXF1ZW5jZSkgb3IgaGFzYXR0cih2 YWx1ZSwgJ19fZ2V0aXRlbV9fJyk6CisrICAgICAgICAgICAgIHZhbHVlID0gd3guU2l6ZSgqdmFs dWUpCisrICAgICAgICAgcmV0dXJuIHZhbHVlCisrIAorK2RpZmYgLS1naXQgYS9kZW1vL1NpemVy cy5weSBiL2RlbW8vU2l6ZXJzLnB5CisraW5kZXggNmFiYWJlZGU5Li5hMDI1MDUwZjEgMTAwNjQ0 CisrLS0tIGEvZGVtby9TaXplcnMucHkKKysrKysgYi9kZW1vL1NpemVycy5weQorK0BAIC00NSw3 ICs0NSw3IEBAIGRlZiBPblBhaW50KHNlbGYsIGV2dCk6CisrICAgICAgICAgZGMgPSB3eC5QYWlu dERDKHNlbGYpCisrICAgICAgICAgdyxoID0gZGMuR2V0VGV4dEV4dGVudChzZWxmLnRleHQpCisr ICAgICAgICAgZGMuQ2xlYXIoKQorKy0gICAgICAgIGRjLkRyYXdUZXh0KHNlbGYudGV4dCwgKHN6 LndpZHRoLXcpLzIsIChzei5oZWlnaHQtaCkvMikKKysrICAgICAgICBkYy5EcmF3VGV4dChzZWxm LnRleHQsIChzei53aWR0aC13KS8vMiwgKHN6LmhlaWdodC1oKS8vMikKKysgCisrICAgICBkZWYg T25TaXplKHNlbGYsIGV2dCk6CisrICAgICAgICAgc2VsZi5SZWZyZXNoKCkKKytkaWZmIC0tZ2l0 IGEvZGVtby9VSUFjdGlvblNpbXVsYXRvci5weSBiL2RlbW8vVUlBY3Rpb25TaW11bGF0b3IucHkK KytpbmRleCBjYmJhMTRmNWMuLjBhNmZkMDIzNCAxMDA2NDQKKystLS0gYS9kZW1vL1VJQWN0aW9u U2ltdWxhdG9yLnB5CisrKysrIGIvZGVtby9VSUFjdGlvblNpbXVsYXRvci5weQorK0BAIC04OCw3 ICs4OCw3IEBAIGRlZiBfcGxheWJhY2tLZXkoc2VsZiwgZXZ0VHlwZSwga2V5LCBtb2RpZmllcnMp OgorKyAKKysgICAgIGRlZiBfc2V0TmV4dEtleUV2ZW50KHNlbGYpOgorKyAgICAgICAgIGV2dFR5 cGUsIGtleSwgbW9kaWZpZXJzLCBtaWxsaSA9IHNlbGYuX3BsYXliYWNrRXZlbnRzLnBvcCgwKQor Ky0gICAgICAgIG1pbGxpID0gbWF4KG1pbGxpLzIsIDEpICMgcGxheSBiYWNrIGZhc3RlciB0aGFu IGl0IHdhcyByZWNvcmRlZAorKysgICAgICAgIG1pbGxpID0gbWF4KG1pbGxpLy8yLCAxKSAjIHBs YXkgYmFjayBmYXN0ZXIgdGhhbiBpdCB3YXMgcmVjb3JkZWQKKysgICAgICAgICBwcmludChldnRU eXBlLCBrZXksIG1vZGlmaWVycywgbWlsbGkpCisrICAgICAgICAgd3guQ2FsbExhdGVyKG1pbGxp LCBzZWxmLl9wbGF5YmFja0tleSwgZXZ0VHlwZSwga2V5LCBtb2RpZmllcnMpCisrIAorK2RpZmYg LS1naXQgYS9kZW1vL2Fndy9BVUkucHkgYi9kZW1vL2Fndy9BVUkucHkKKytpbmRleCA3YzIxOTY4 NjUuLmIzODMxM2M4NiAxMDA2NDQKKystLS0gYS9kZW1vL2Fndy9BVUkucHkKKysrKysgYi9kZW1v L2Fndy9BVUkucHkKKytAQCAtMzkzLDcgKzM5Myw3IEBAIGRlZiBPblBhaW50KHNlbGYsIGV2ZW50 KToKKysgICAgICAgICBkYy5TZXRQZW4od3guTElHSFRfR1JFWV9QRU4pCisrICAgICAgICAgZGMu RHJhd0xpbmUoMCwgMCwgc2l6ZS54LCBzaXplLnkpCisrICAgICAgICAgZGMuRHJhd0xpbmUoMCwg c2l6ZS55LCBzaXplLngsIDApCisrLSAgICAgICAgZGMuRHJhd1RleHQocywgKHNpemUueC13KS8y LCAoc2l6ZS55LWhlaWdodCo1KS8yKQorKysgICAgICAgIGRjLkRyYXdUZXh0KHMsIChzaXplLngt dykvLzIsIChzaXplLnktaGVpZ2h0KjUpLy8yKQorKyAKKysgICAgICAgICBpZiBzZWxmLl9tZ3I6 CisrIAorK0BAIC00MDEsMTkgKzQwMSwxOSBAQCBkZWYgT25QYWludChzZWxmLCBldmVudCk6Cisr IAorKyAgICAgICAgICAgICBzID0gIkxheWVyOiAlZCIlcGkuZG9ja19sYXllcgorKyAgICAgICAg ICAgICB3LCBoID0gZGMuR2V0VGV4dEV4dGVudChzKQorKy0gICAgICAgICAgICBkYy5EcmF3VGV4 dChzLCAoc2l6ZS54LXcpLzIsICgoc2l6ZS55LShoZWlnaHQqNSkpLzIpKyhoZWlnaHQqMSkpCisr KyAgICAgICAgICAgIGRjLkRyYXdUZXh0KHMsIChzaXplLngtdykvLzIsICgoc2l6ZS55LShoZWln aHQqNSkpLy8yKSsoaGVpZ2h0KjEpKQorKyAKKysgICAgICAgICAgICAgcyA9ICJEb2NrOiAlZCBS b3c6ICVkIiUocGkuZG9ja19kaXJlY3Rpb24sIHBpLmRvY2tfcm93KQorKyAgICAgICAgICAgICB3 LCBoID0gZGMuR2V0VGV4dEV4dGVudChzKQorKy0gICAgICAgICAgICBkYy5EcmF3VGV4dChzLCAo c2l6ZS54LXcpLzIsICgoc2l6ZS55LShoZWlnaHQqNSkpLzIpKyhoZWlnaHQqMikpCisrKyAgICAg ICAgICAgIGRjLkRyYXdUZXh0KHMsIChzaXplLngtdykvLzIsICgoc2l6ZS55LShoZWlnaHQqNSkp Ly8yKSsoaGVpZ2h0KjIpKQorKyAKKysgICAgICAgICAgICAgcyA9ICJQb3NpdGlvbjogJWQiJXBp LmRvY2tfcG9zCisrICAgICAgICAgICAgIHcsIGggPSBkYy5HZXRUZXh0RXh0ZW50KHMpCisrLSAg ICAgICAgICAgIGRjLkRyYXdUZXh0KHMsIChzaXplLngtdykvMiwgKChzaXplLnktKGhlaWdodCo1 KSkvMikrKGhlaWdodCozKSkKKysrICAgICAgICAgICAgZGMuRHJhd1RleHQocywgKHNpemUueC13 KS8vMiwgKChzaXplLnktKGhlaWdodCo1KSkvLzIpKyhoZWlnaHQqMykpCisrIAorKyAgICAgICAg ICAgICBzID0gIlByb3BvcnRpb246ICVkIiVwaS5kb2NrX3Byb3BvcnRpb24KKysgICAgICAgICAg ICAgdywgaCA9IGRjLkdldFRleHRFeHRlbnQocykKKystICAgICAgICAgICAgZGMuRHJhd1RleHQo cywgKHNpemUueC13KS8yLCAoKHNpemUueS0oaGVpZ2h0KjUpKS8yKSsoaGVpZ2h0KjQpKQorKysg ICAgICAgICAgICBkYy5EcmF3VGV4dChzLCAoc2l6ZS54LXcpLy8yLCAoKHNpemUueS0oaGVpZ2h0 KjUpKS8vMikrKGhlaWdodCo0KSkKKysgCisrIAorKyAgICAgZGVmIE9uRXJhc2VCYWNrZ3JvdW5k KHNlbGYsIGV2ZW50KToKKytAQCAtNDM1LDcgKzQzNSw3IEBAIGRlZiBfX2luaXRfXyhzZWxmLCBw YXJlbnQsIGZyYW1lKToKKysgCisrICAgICAgICAgczEgPSB3eC5Cb3hTaXplcih3eC5IT1JJWk9O VEFMKQorKyAgICAgICAgIHNlbGYuX2JvcmRlcl9zaXplID0gd3guU3BpbkN0cmwoc2VsZiwgSURf UGFuZUJvcmRlclNpemUsICIlZCIlZnJhbWUuR2V0RG9ja0FydCgpLkdldE1ldHJpYyhhdWkuQVVJ X0RPQ0tBUlRfUEFORV9CT1JERVJfU0laRSksCisrLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB3eC5EZWZhdWx0UG9zaXRpb24sIHd4LlNpemUoNTAsIDIwKSwgd3guU1Bf QVJST1dfS0VZUywgMCwgMTAwLAorKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgd3guRGVmYXVsdFBvc2l0aW9uLCB3eC5EZWZhdWx0U2l6ZSwgd3guU1BfQVJST1dfS0VZ UywgMCwgMTAwLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJh bWUuR2V0RG9ja0FydCgpLkdldE1ldHJpYyhhdWkuQVVJX0RPQ0tBUlRfUEFORV9CT1JERVJfU0la RSkpCisrICAgICAgICAgczEuQWRkKCgxLCAxKSwgMSwgd3guRVhQQU5EKQorKyAgICAgICAgIHMx LkFkZCh3eC5TdGF0aWNUZXh0KHNlbGYsIC0xLCAiUGFuZSBCb3JkZXIgU2l6ZToiKSkKKytAQCAt NDQ1LDcgKzQ0NSw3IEBAIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJlbnQsIGZyYW1lKToKKysgCisr ICAgICAgICAgczIgPSB3eC5Cb3hTaXplcih3eC5IT1JJWk9OVEFMKQorKyAgICAgICAgIHNlbGYu X3Nhc2hfc2l6ZSA9IHd4LlNwaW5DdHJsKHNlbGYsIElEX1Nhc2hTaXplLCAiJWQiJWZyYW1lLkdl dERvY2tBcnQoKS5HZXRNZXRyaWMoYXVpLkFVSV9ET0NLQVJUX1NBU0hfU0laRSksIHd4LkRlZmF1 bHRQb3NpdGlvbiwKKystICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3eC5T aXplKDUwLCAyMCksIHd4LlNQX0FSUk9XX0tFWVMsIDAsIDEwMCwgZnJhbWUuR2V0RG9ja0FydCgp LkdldE1ldHJpYyhhdWkuQVVJX0RPQ0tBUlRfU0FTSF9TSVpFKSkKKysrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB3eC5EZWZhdWx0U2l6ZSwgd3guU1BfQVJST1dfS0VZUywg MCwgMTAwLCBmcmFtZS5HZXREb2NrQXJ0KCkuR2V0TWV0cmljKGF1aS5BVUlfRE9DS0FSVF9TQVNI X1NJWkUpKQorKyAgICAgICAgIHMyLkFkZCgoMSwgMSksIDEsIHd4LkVYUEFORCkKKysgICAgICAg ICBzMi5BZGQod3guU3RhdGljVGV4dChzZWxmLCAtMSwgIlNhc2ggU2l6ZToiKSkKKysgICAgICAg ICBzMi5BZGQoc2VsZi5fc2FzaF9zaXplKQorK0BAIC00NTQsNyArNDU0LDcgQEAgZGVmIF9faW5p dF9fKHNlbGYsIHBhcmVudCwgZnJhbWUpOgorKyAKKysgICAgICAgICBzMyA9IHd4LkJveFNpemVy KHd4LkhPUklaT05UQUwpCisrICAgICAgICAgc2VsZi5fY2FwdGlvbl9zaXplID0gd3guU3BpbkN0 cmwoc2VsZiwgSURfQ2FwdGlvblNpemUsICIlZCIlZnJhbWUuR2V0RG9ja0FydCgpLkdldE1ldHJp YyhhdWkuQVVJX0RPQ0tBUlRfQ0FQVElPTl9TSVpFKSwKKystICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB3eC5EZWZhdWx0UG9zaXRpb24sIHd4LlNpemUoNTAsIDIwKSwg d3guU1BfQVJST1dfS0VZUywgMCwgMTAwLCBmcmFtZS5HZXREb2NrQXJ0KCkuR2V0TWV0cmljKGF1 aS5BVUlfRE9DS0FSVF9DQVBUSU9OX1NJWkUpKQorKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHd4LkRlZmF1bHRQb3NpdGlvbiwgd3guRGVmYXVsdFNpemUsIHd4LlNQ X0FSUk9XX0tFWVMsIDAsIDEwMCwgZnJhbWUuR2V0RG9ja0FydCgpLkdldE1ldHJpYyhhdWkuQVVJ X0RPQ0tBUlRfQ0FQVElPTl9TSVpFKSkKKysgICAgICAgICBzMy5BZGQoKDEsIDEpLCAxLCB3eC5F WFBBTkQpCisrICAgICAgICAgczMuQWRkKHd4LlN0YXRpY1RleHQoc2VsZiwgLTEsICJDYXB0aW9u IFNpemU6IikpCisrICAgICAgICAgczMuQWRkKHNlbGYuX2NhcHRpb25fc2l6ZSkKKytAQCAtODA3 LDkgKzgwNyw5IEBAIGRlZiBMaWdodENvbG91cihzZWxmLCBjb2xvdXIsIHBlcmNlbnQpOgorKyAK KysgICAgICAgICAjIFdlIHRha2UgdGhlIHBlcmNlbnQgd2F5IG9mIHRoZSBjb2xvdXIgZnJvbSBj b2xvdXIgLT4gd2hpdGUKKysgICAgICAgICBpID0gcGVyY2VudAorKy0gICAgICAgIHIgPSBjb2xv dXIuUmVkKCkgKyAoKGkqcmQqMTAwKS9oaWdoKS8xMDAKKystICAgICAgICBnID0gY29sb3VyLkdy ZWVuKCkgKyAoKGkqZ2QqMTAwKS9oaWdoKS8xMDAKKystICAgICAgICBiID0gY29sb3VyLkJsdWUo KSArICgoaSpiZCoxMDApL2hpZ2gpLzEwMAorKysgICAgICAgIHIgPSBjb2xvdXIuUmVkKCkgKyAo KGkqcmQqMTAwKS8vaGlnaCkvLzEwMAorKysgICAgICAgIGcgPSBjb2xvdXIuR3JlZW4oKSArICgo aSpnZCoxMDApLy9oaWdoKS8vMTAwCisrKyAgICAgICAgYiA9IGNvbG91ci5CbHVlKCkgKyAoKGkq YmQqMTAwKS8vaGlnaCkvLzEwMAorKyAKKysgICAgICAgICByZXR1cm4gd3guQ29sb3VyKHIsIGcs IGIpCisrIAorK0BAIC04MjYsMTAgKzgyNiwxMCBAQCBkZWYgRHJhd1Byb2dyZXNzKHNlbGYsIGRj LCB4c2l6ZSwgeXNpemUsIGluY3JlbWVudCk6CisrICAgICAgICAgeCwgeSwgd2lkdGgsIGhlaWdo dCA9IGNsaWVudFJlY3QKKysgICAgICAgICB4LCB3aWR0aCA9IHNlbGYuX3BvcywgaW50ZXJ2YWwK KysgCisrLSAgICAgICAgZ3JhZGllbnRSZWN0LlNldEhlaWdodChncmFkaWVudFJlY3QuR2V0SGVp Z2h0KCkvMikKKysrICAgICAgICBncmFkaWVudFJlY3QuU2V0SGVpZ2h0KGdyYWRpZW50UmVjdC5H ZXRIZWlnaHQoKS8vMikKKysgICAgICAgICB0b3BTdGFydCwgdG9wRW5kID0gc2VsZi5fdG9wU3Rh cnRDb2xvdXIsIHNlbGYuX3RvcEVuZENvbG91cgorKyAKKystICAgICAgICByYzEgPSB3eC5SZWN0 KHgsIHksIHdpZHRoLCBoZWlnaHQvMikKKysrICAgICAgICByYzEgPSB3eC5SZWN0KGludCh4KSwg eSwgaW50KHdpZHRoKSwgaGVpZ2h0Ly8yKQorKyAgICAgICAgIHBhdGgxID0gc2VsZi5HZXRQYXRo KGdjLCByYzEsIDgpCisrICAgICAgICAgYnIxID0gZ2MuQ3JlYXRlTGluZWFyR3JhZGllbnRCcnVz aCh4LCB5LCB4LCB5K2hlaWdodC8yLCB0b3BTdGFydCwgdG9wRW5kKQorKyAgICAgICAgIGdjLlNl dEJydXNoKGJyMSkKKytAQCAtODQ1LDE0ICs4NDUsMTQgQEAgZGVmIERyYXdQcm9ncmVzcyhzZWxm LCBkYywgeHNpemUsIHlzaXplLCBpbmNyZW1lbnQpOgorKyAKKysgICAgICAgICBib3R0b21TdGFy dCwgYm90dG9tRW5kID0gc2VsZi5fYm90dG9tU3RhcnRDb2xvdXIsIHNlbGYuX2JvdHRvbUVuZENv bG91cgorKyAKKystICAgICAgICByYzMgPSB3eC5SZWN0KHgsIHkraGVpZ2h0LzIsIHdpZHRoLCBo ZWlnaHQvMikKKysrICAgICAgICByYzMgPSB3eC5SZWN0KGludCh4KSwgeStoZWlnaHQvLzIsIGlu dCh3aWR0aCksIGhlaWdodC8vMikKKysgICAgICAgICBwYXRoMyA9IHNlbGYuR2V0UGF0aChnYywg cmMzLCA4KQorKyAgICAgICAgIGJyMyA9IGdjLkNyZWF0ZUxpbmVhckdyYWRpZW50QnJ1c2goeCwg eStoZWlnaHQvMiwgeCwgeStoZWlnaHQsIGJvdHRvbVN0YXJ0LCBib3R0b21FbmQpCisrICAgICAg ICAgZ2MuU2V0QnJ1c2goYnIzKQorKyAgICAgICAgIGdjLkZpbGxQYXRoKHBhdGgzKSAjZHJhdyBt YWluCisrIAorKyAgICAgICAgIHBhdGg0ID0gZ2MuQ3JlYXRlUGF0aCgpCisrLSAgICAgICAgcGF0 aDQuQWRkUmVjdGFuZ2xlKHgsIHkraGVpZ2h0LzIsIHdpZHRoLCA4KQorKysgICAgICAgIHBhdGg0 LkFkZFJlY3RhbmdsZSh4LCB5K2hlaWdodC8vMiwgd2lkdGgsIDgpCisrICAgICAgICAgcGF0aDQu Q2xvc2VTdWJwYXRoKCkKKysgICAgICAgICBnYy5TZXRCcnVzaChicjMpCisrICAgICAgICAgZ2Mu RmlsbFBhdGgocGF0aDQpCisrQEAgLTI2MTMsNyArMjYxMyw3IEBAIGRlZiBDcmVhdGVOb3RlYm9v ayhzZWxmKToKKysgICAgICAgICBmbGV4LkFkZCh3eC5UZXh0Q3RybChwYW5lbCwgLTEsICIiLCB3 eC5EZWZhdWx0UG9zaXRpb24sIHd4LlNpemUoMTAwLCAtMSkpLAorKyAgICAgICAgICAgICAgICAg IDEsIHd4LkFMTHx3eC5BTElHTl9DRU5UUkUsIDUpCisrICAgICAgICAgZmxleC5BZGQod3guU3Rh dGljVGV4dChwYW5lbCwgLTEsICJ3eFNwaW5DdHJsOiIpLCAwLCB3eC5BTEx8d3guQUxJR05fQ0VO VFJFLCA1KQorKy0gICAgICAgIGZsZXguQWRkKHd4LlNwaW5DdHJsKHBhbmVsLCAtMSwgIjUiLCB3 eC5EZWZhdWx0UG9zaXRpb24sIHd4LlNpemUoMTAwLCAtMSksCisrKyAgICAgICAgZmxleC5BZGQo d3guU3BpbkN0cmwocGFuZWwsIC0xLCAiNSIsIHd4LkRlZmF1bHRQb3NpdGlvbiwgd3guRGVmYXVs dFNpemUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3guU1BfQVJST1dfS0VZUywg NSwgNTAsIDUpLCAwLCB3eC5BTEx8d3guQUxJR05fQ0VOVFJFLCA1KQorKyAgICAgICAgIGZsZXgu QWRkKCg1LCA1KSkKKysgICAgICAgICBmbGV4LkFkZCgoNSwgNSkpCisrZGlmZiAtLWdpdCBhL2Rl bW8vYWd3L01hY0xhcmdlRGVtby5weSBiL2RlbW8vYWd3L01hY0xhcmdlRGVtby5weQorK2luZGV4 IDRkOTY3YTU0Ni4uYTViOGEwZTI1IDEwMDY0NAorKy0tLSBhL2RlbW8vYWd3L01hY0xhcmdlRGVt by5weQorKysrKyBiL2RlbW8vYWd3L01hY0xhcmdlRGVtby5weQorK0BAIC0yMjMsMTIgKzIyMywx MiBAQCBkZWYgRHJhd1Byb2dyZXNzQmFyKHNlbGYsIGRjLCB4LCB5LCB3LCBoLCBwZXJjZW50KToK KysgICAgICAgICAgICAgbWRjLlNlbGVjdE9iamVjdCh3eC5OdWxsQml0bWFwKQorKyAKKysgICAg ICAgICAjIENlbnRlciB0aGUgcHJvZ3Jlc3MgYmFyIHZlcnRpY2FsbHkgaW4gdGhlIGJveCBzdXBw bGllZAorKy0gICAgICAgIHkgPSB5ICsgKGggLSBQSVBFX0hFSUdIVCkvMgorKysgICAgICAgIHkg PSB5ICsgKGggLSBQSVBFX0hFSUdIVCkvLzIKKysgCisrICAgICAgICAgaWYgcGVyY2VudCA9PSAw OgorKyAgICAgICAgICAgICBtaWRkbGUgPSAwCisrICAgICAgICAgZWxzZToKKystICAgICAgICAg ICAgbWlkZGxlID0gKHcgKiBwZXJjZW50KS8xMDAKKysrICAgICAgICAgICAgbWlkZGxlID0gaW50 KCh3ICogcGVyY2VudCkvMTAwKQorKyAKKysgICAgICAgICBpZiB3IDwgMToKKysgICAgICAgICAg ICAgcmV0dXJuCisrZGlmZiAtLWdpdCBhL2RlbW8vYWd3L1BlYWtNZXRlci5weSBiL2RlbW8vYWd3 L1BlYWtNZXRlci5weQorK2luZGV4IGE3YzlhNmY1MS4uZTlkYWI3MTE2IDEwMDY0NAorKy0tLSBh L2RlbW8vYWd3L1BlYWtNZXRlci5weQorKysrKyBiL2RlbW8vYWd3L1BlYWtNZXRlci5weQorK0BA IC0xNDksMTAgKzE0OSwxMCBAQCBkZWYgT25GYWxsb2ZmKHNlbGYsIGV2ZW50KToKKysgCisrICAg ICBkZWYgT25TdGFydChzZWxmLCBldmVudCk6CisrIAorKy0gICAgICAgIHNlbGYudGltZXIuU3Rh cnQoMTAwMC8yKSAgICAgICAgIyAyIGZwcworKysgICAgICAgIHNlbGYudGltZXIuU3RhcnQoMTAw MC8vMikgICAgICAgICMgMiBmcHMKKysgCisrLSAgICAgICAgc2VsZi52ZXJ0UGVhay5TdGFydCgx MDAwLzE4KSAgICAgICAgIyAxOCBmcHMKKystICAgICAgICBzZWxmLmhvcnpQZWFrLlN0YXJ0KDEw MDAvMjApICAgICAgICAjIDIwIGZwcworKysgICAgICAgIHNlbGYudmVydFBlYWsuU3RhcnQoMTAw MC8vMTgpICAgICAgICAjIDE4IGZwcworKysgICAgICAgIHNlbGYuaG9yelBlYWsuU3RhcnQoMTAw MC8vMjApICAgICAgICAjIDIwIGZwcworKyAKKysgCisrICAgICBkZWYgT25TdG9wKHNlbGYsIGV2 ZW50KToKKytkaWZmIC0tZ2l0IGEvZGVtby9hZ3cvUGVyc2lzdGVudENvbnRyb2xzLnB5IGIvZGVt by9hZ3cvUGVyc2lzdGVudENvbnRyb2xzLnB5CisraW5kZXggZjE5Y2M0YTkxLi5jZjk3ZGQ5ZjAg MTAwNjQ0CisrLS0tIGEvZGVtby9hZ3cvUGVyc2lzdGVudENvbnRyb2xzLnB5CisrKysrIGIvZGVt by9hZ3cvUGVyc2lzdGVudENvbnRyb2xzLnB5CisrQEAgLTIzNCw3ICsyMzQsNyBAQCBkZWYgQnVp bGRQYW5lcyhzZWxmKToKKysgICAgICAgICBzaXplcl8xLkFkZChsYWJlbF8xLCAwLCB3eC5BTEws IDUpCisrICAgICAgICAgc2l6ZXJfMS5BZGQoY29tYm8sIDAsIHd4LkxFRlR8d3guUklHSFQsIDUp CisrICAgICAgICAgc2l6ZXJfMS5BZGQoKDIwLCAyMCksIDEpCisrLSAgICAgICAgYm94Mi5BZGQo c2l6ZXJfMSwgMSwgd3guRVhQQU5EfHd4LkFMSUdOX0NFTlRFUiwgMCkKKysrICAgICAgICBib3gy LkFkZChzaXplcl8xLCAxLCB3eC5FWFBBTkQsIDApCisrICAgICAgICAgYm94Mi5BZGQoKDAsIDAp LCAxLCAxKQorKyAKKysgICAgICAgICBvdGhlclBhbmVsLlNldFNpemVyKGJveDIpCisrZGlmZiAt LWdpdCBhL2RlbW8vYWd3L1JpYmJvbkJhci5weSBiL2RlbW8vYWd3L1JpYmJvbkJhci5weQorK2lu ZGV4IDcxMDNlOWQ4MS4uZDI4YTJjNjZhIDEwMDY0NAorKy0tLSBhL2RlbW8vYWd3L1JpYmJvbkJh ci5weQorKysrKyBiL2RlbW8vYWd3L1JpYmJvbkJhci5weQorK0BAIC03OTksNyArNzk5LDcgQEAg ZGVmIEFkZENvbG91clRvR2FsbGVyeShzZWxmLCBnYWxsZXJ5LCBjb2xvdXIsIGRjLCB2YWx1ZT1O b25lKToKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGMuQmx1ZSgp ICsgMTkyKSAlIDI1NikKKysgCisrICAgICAgICAgICAgIGRjLlNldFRleHRGb3JlZ3JvdW5kKGZv cmVncm91bmQpCisrLSAgICAgICAgICAgIGRjLkRyYXdUZXh0KGNvbG91ciwgKGlXaWR0aCAtIHNp emUuR2V0V2lkdGgoKSArIDEpIC8gMiwgKGlIZWlnaHQgLSBzaXplLkdldEhlaWdodCgpKSAvIDIp CisrKyAgICAgICAgICAgIGRjLkRyYXdUZXh0KGNvbG91ciwgKGlXaWR0aCAtIHNpemUuR2V0V2lk dGgoKSArIDEpIC8vIDIsIChpSGVpZ2h0IC0gc2l6ZS5HZXRIZWlnaHQoKSkgLy8gMikKKysgICAg ICAgICAgICAgZGMuU2VsZWN0T2JqZWN0QXNTb3VyY2Uod3guTnVsbEJpdG1hcCkKKysgCisrICAg ICAgICAgICAgIGl0ZW0gPSBnYWxsZXJ5LkFwcGVuZChiaXRtYXAsIHd4LklEX0FOWSkKKytkaWZm IC0tZ2l0IGEvZGVtby9hZ3cvU3BlZWRNZXRlci5weSBiL2RlbW8vYWd3L1NwZWVkTWV0ZXIucHkK KytpbmRleCA5ZjBmZGViYjIuLjU3NWU4NGE4MCAxMDA2NDQKKystLS0gYS9kZW1vL2Fndy9TcGVl ZE1ldGVyLnB5CisrKysrIGIvZGVtby9hZ3cvU3BlZWRNZXRlci5weQorK0BAIC00MTgsNyArNDE4 LDcgQEAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCwgbG9nKToKKysgICAgICAgICBic2l6ZXIz ID0gd3guQm94U2l6ZXIod3guVkVSVElDQUwpCisrIAorKyAgICAgICAgIGhzaXplcjMgPSB3eC5C b3hTaXplcih3eC5IT1JJWk9OVEFMKQorKy0gICAgICAgIHNjID0gd3guU3BpbkN0cmwocGFuZWwz LCAtMSwgc2l6ZT0oNjAsMjApKQorKysgICAgICAgIHNjID0gd3guU3BpbkN0cmwocGFuZWwzLCAt MSkKKysgICAgICAgICBzYy5TZXRSYW5nZSgxLCAyNTApCisrICAgICAgICAgc2MuU2V0VmFsdWUo NTApCisrIAorK2RpZmYgLS1naXQgYS9kZW1vL2Fndy9TdXBlclRvb2xUaXAucHkgYi9kZW1vL2Fn dy9TdXBlclRvb2xUaXAucHkKKytpbmRleCA1ZTY1ZjA2YjEuLjg4NzI4ZTU0ZSAxMDA2NDQKKyst LS0gYS9kZW1vL2Fndy9TdXBlclRvb2xUaXAucHkKKysrKysgYi9kZW1vL2Fndy9TdXBlclRvb2xU aXAucHkKKytAQCAtNDMsNyArNDMsNyBAQCBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50KToKKysg ICAgICAgICBzZWxmLnRvcENvbG91clBpY2tlciA9IHd4LkNvbG91clBpY2tlckN0cmwoc2VsZi5t YWluUGFuZWwsIGNvbG91cj13eC5XSElURSkKKysgICAgICAgICBzeXN0ZW0gPSB3eC5TeXN0ZW1T ZXR0aW5ncy5HZXRDb2xvdXIod3guU1lTX0NPTE9VUl9BQ1RJVkVDQVBUSU9OKQorKyAgICAgICAg IHIsIGcsIGIsIGEgPSBzeXN0ZW0KKystICAgICAgICBzZWxmLm1pZGRsZUNvbG91clBpY2tlciA9 IHd4LkNvbG91clBpY2tlckN0cmwoc2VsZi5tYWluUGFuZWwsIGNvbG91cj13eC5Db2xvdXIoKDI1 NS1yKS8yLCAoMjU1LWcpLzIsICgyNTUtYikvMikpCisrKyAgICAgICAgc2VsZi5taWRkbGVDb2xv dXJQaWNrZXIgPSB3eC5Db2xvdXJQaWNrZXJDdHJsKHNlbGYubWFpblBhbmVsLCBjb2xvdXI9d3gu Q29sb3VyKCgyNTUtcikvLzIsICgyNTUtZykvLzIsICgyNTUtYikvLzIpKQorKyAgICAgICAgIHNl bGYuYm90dG9tQ29sb3VyUGlja2VyID0gd3guQ29sb3VyUGlja2VyQ3RybChzZWxmLm1haW5QYW5l bCwgY29sb3VyPXN5c3RlbSkKKysgICAgICAgICBzZWxmLmhlYWRlckNoZWNrID0gd3guQ2hlY2tC b3goc2VsZi5tYWluUGFuZWwsIC0xLCAiU2hvdyBIZWFkZXIiKQorKyAgICAgICAgIHNlbGYuaGVh ZGVyVGV4dCA9IHd4LlRleHRDdHJsKHNlbGYubWFpblBhbmVsLCAtMSwgIk1lcmdlIEFuZCBDZW50 ZXIiKQorK0BAIC0yMzMsNyArMjMzLDYgQEAgZGVmIERvTGF5b3V0KHNlbGYpOgorKyAgICAgICAg IGZyYW1lU2l6ZXIuQWRkKHNlbGYubWFpblBhbmVsLCAxLCB3eC5FWFBBTkQsIDApCisrICAgICAg ICAgc2VsZi5TZXRTaXplcihmcmFtZVNpemVyKQorKyAgICAgICAgIGZyYW1lU2l6ZXIuTGF5b3V0 KCkKKystICAgICAgICBmcmFtZVNpemVyLkZpdChzZWxmKQorKyAgICAgICAgIHNlbGYuTGF5b3V0 KCkKKysgCisrICAgICAgICAgd3guQ2FsbEFmdGVyKG1haW5TaXplci5MYXlvdXQpCisrZGlmZiAt LWdpdCBhL2RlbW8vYWd3L1VsdGltYXRlUmVwb3J0RGVtby5weSBiL2RlbW8vYWd3L1VsdGltYXRl UmVwb3J0RGVtby5weQorK2luZGV4IDQwZjQ5Y2I4Zi4uYWQ0NTU4NDdiIDEwMDY0NAorKy0tLSBh L2RlbW8vYWd3L1VsdGltYXRlUmVwb3J0RGVtby5weQorKysrKyBiL2RlbW8vYWd3L1VsdGltYXRl UmVwb3J0RGVtby5weQorK0BAIC0yMTYsNyArMjE2LDcgQEAgZGVmIERyYXdTdWJJdGVtKHNlbGYs IGRjLCByZWN0LCBsaW5lLCBoaWdobGlnaHRlZCwgZW5hYmxlZCk6CisrICAgICAgICAgbWRjLlNl dEZvbnQod3guRm9udCg4LCB3eC5GT05URkFNSUxZX1NXSVNTLCB3eC5GT05UU1RZTEVfTk9STUFM LCB3eC5GT05UV0VJR0hUX0JPTEQpKQorKyAgICAgICAgIHRleHQgPSAiJWQgTWIiJXNlbGYucHJv Z3Jlc3NWYWx1ZQorKyAgICAgICAgIHRleHRXaWR0aCwgZHVtbXkgPSBtZGMuR2V0VGV4dEV4dGVu dCh0ZXh0KQorKy0gICAgICAgIG1kYy5EcmF3VGV4dCh0ZXh0LCByZWN0LndpZHRoLzIgLSB0ZXh0 V2lkdGgvMiwgcmVjdC5oZWlnaHQvMiAtIGR1bW15LzIpCisrKyAgICAgICAgbWRjLkRyYXdUZXh0 KHRleHQsIHJlY3Qud2lkdGgvLzIgLSB0ZXh0V2lkdGgvLzIsIHJlY3QuaGVpZ2h0Ly8yIC0gZHVt bXkvLzIpCisrICAgICAgICAgZGMuU2V0Q2xpcHBpbmdSZWdpb24ocmVjdC54LCByZWN0LnksIHJl Y3Qud2lkdGgsIHJlY3QuaGVpZ2h0KQorKyAgICAgICAgIGRjLkJsaXQocmVjdC54KzMsIHJlY3Qu eSwgcmVjdC53aWR0aC02LCByZWN0LmhlaWdodCwgbWRjLCAwLCAwKQorKyAgICAgICAgIGRjLkRl c3Ryb3lDbGlwcGluZ1JlZ2lvbigpCisrQEAgLTI3OSwxMiArMjc5LDEyIEBAIGRlZiBEcmF3UHJv Z3Jlc3NCYXIoc2VsZiwgZGMsIHgsIHksIHcsIGgsIHBlcmNlbnQpOgorKyAgICAgICAgICAgICBt ZGMuU2VsZWN0T2JqZWN0KHd4Lk51bGxCaXRtYXApCisrIAorKyAgICAgICAgICMgQ2VudGVyIHRo ZSBwcm9ncmVzcyBiYXIgdmVydGljYWxseSBpbiB0aGUgYm94IHN1cHBsaWVkCisrLSAgICAgICAg eSA9IHkgKyAoaCAtIFBJUEVfSEVJR0hUKS8yCisrKyAgICAgICAgeSA9IHkgKyAoaCAtIFBJUEVf SEVJR0hUKS8vMgorKyAKKysgICAgICAgICBpZiBwZXJjZW50ID09IDA6CisrICAgICAgICAgICAg IG1pZGRsZSA9IDAKKysgICAgICAgICBlbHNlOgorKy0gICAgICAgICAgICBtaWRkbGUgPSAodyAq IHBlcmNlbnQpLzEwMAorKysgICAgICAgICAgICBtaWRkbGUgPSAodyAqIHBlcmNlbnQpLy8xMDAK KysgCisrICAgICAgICAgaWYgbWlkZGxlID09IDA6ICMgbm90IHN0YXJ0ZWQKKysgICAgICAgICAg ICAgYml0bWFwID0gc2VsZi5SRU1BSU5JTkdfQklUTUFQLkdldFN1YkJpdG1hcCgoMSwgMCwgdywg UElQRV9IRUlHSFQpKQorK0BAIC0zMzUsNyArMzM1LDcgQEAgZGVmIERyYXdTdWJJdGVtKHNlbGYs IGRjLCByZWN0LCBsaW5lLCBoaWdobGlnaHRlZCwgZW5hYmxlZCk6CisrICAgICAgICAgY29sb3Vy cyA9IFt3eC5SRUQsIHd4LldISVRFLCB3eC5HUkVFTiwgd3guQ29sb3VyKCJTS1kgQkxVRSIpXQor KyAgICAgICAgIHcsIGggPSBkYy5HZXRUZXh0RXh0ZW50KCJIZyIpCisrICAgICAgICAgeCA9IHJl Y3QueCArIDEKKystICAgICAgICB5ID0gcmVjdC55ICsgcmVjdC5oZWlnaHQvMiAtIGgvMgorKysg ICAgICAgIHkgPSByZWN0LnkgKyByZWN0LmhlaWdodC8vMiAtIGgvLzIKKysgCisrICAgICAgICAg Zm9yIGNoIGluIHNlbGYudGV4dDoKKysgICAgICAgICAgICAgZGMuU2V0VGV4dEZvcmVncm91bmQo cmFuZG9tLmNob2ljZShjb2xvdXJzKSkKKytkaWZmIC0tZ2l0IGEvZGVtby9hZ3cvV2luZG93czdF eHBsb3Jlcl9Db250ZW50cy5weSBiL2RlbW8vYWd3L1dpbmRvd3M3RXhwbG9yZXJfQ29udGVudHMu cHkKKytpbmRleCBmNzU0ZDc4NzkuLmIyM2RmMGUxYSAxMDA2NDQKKystLS0gYS9kZW1vL2Fndy9X aW5kb3dzN0V4cGxvcmVyX0NvbnRlbnRzLnB5CisrKysrIGIvZGVtby9hZ3cvV2luZG93czdFeHBs b3Jlcl9Db250ZW50cy5weQorK0BAIC0xMjcsMTMgKzEyNywxMyBAQCBkZWYgRHJhd1N1Ykl0ZW0o c2VsZiwgZGMsIHJlY3QsIGxpbmUsIGhpZ2hsaWdodGVkLCBlbmFibGVkKToKKysgICAgICAgICAi IiJEcmF3IGEgY3VzdG9tIHByb2dyZXNzIGJhciB1c2luZyBkb3VibGUgYnVmZmVyaW5nIHRvIHBy ZXZlbnQgZmxpY2tlciIiIgorKyAKKysgICAgICAgICBibXBXaWR0aCwgYm1wSGVpZ2h0ID0gc2Vs Zi5pY29uLkdldFdpZHRoKCksIHNlbGYuaWNvbi5HZXRIZWlnaHQoKQorKy0gICAgICAgIGRjLkRy YXdJY29uKHNlbGYuaWNvbiwgcmVjdC54KzUsIHJlY3QueSsocmVjdC5oZWlnaHQtYm1wSGVpZ2h0 KS8yKQorKysgICAgICAgIGRjLkRyYXdJY29uKHNlbGYuaWNvbiwgcmVjdC54KzUsIHJlY3QueSso cmVjdC5oZWlnaHQtYm1wSGVpZ2h0KS8vMikKKysgCisrICAgICAgICAgZGMuU2V0Rm9udChzZWxm Lm5vcm1hbEZvbnQpCisrIAorKyAgICAgICAgIHRleHRXaWR0aCwgdGV4dEhlaWdodCA9IGRjLkdl dFRleHRFeHRlbnQoc2VsZi50ZXh0KQorKyAgICAgICAgIGRjLlNldFRleHRGb3JlZ3JvdW5kKHd4 LlN5c3RlbVNldHRpbmdzLkdldENvbG91cih3eC5TWVNfQ09MT1VSX0JUTlRFWFQpKQorKy0gICAg ICAgIGRjLkRyYXdUZXh0KHNlbGYudGV4dCwgcmVjdC54K2JtcFdpZHRoKzEwLCByZWN0LnkrKHJl Y3QuaGVpZ2h0IC0gdGV4dEhlaWdodCkvNCkKKysrICAgICAgICBkYy5EcmF3VGV4dChzZWxmLnRl eHQsIHJlY3QueCtibXBXaWR0aCsxMCwgcmVjdC55KyhyZWN0LmhlaWdodCAtIHRleHRIZWlnaHQp Ly80KQorKyAKKysgICAgICAgICBpZiBub3Qgc2VsZi5kZXNjcmlwdGlvbjoKKysgICAgICAgICAg ICAgcmV0dXJuCisrQEAgLTE0NCwxMCArMTQ0LDEwIEBAIGRlZiBEcmF3U3ViSXRlbShzZWxmLCBk YywgcmVjdCwgbGluZSwgaGlnaGxpZ2h0ZWQsIGVuYWJsZWQpOgorKyAgICAgICAgIHRleHRXaWR0 aCwgdGV4dEhlaWdodCA9IGRjLkdldFRleHRFeHRlbnQoIlR5cGU6ICIgKyBzZWxmLmRlc2NyaXB0 aW9uKQorKyAKKysgICAgICAgICBkYy5TZXRUZXh0Rm9yZWdyb3VuZChzZWxmLmdyZXlDb2xvdXIp CisrLSAgICAgICAgZGMuRHJhd1RleHQoIlR5cGU6ICIsIHJlY3QueCtibXBXaWR0aCsxMCwgcmVj dC55KzMqKHJlY3QuaGVpZ2h0IC0gdGV4dEhlaWdodCkvNCkKKysrICAgICAgICBkYy5EcmF3VGV4 dCgiVHlwZTogIiwgcmVjdC54K2JtcFdpZHRoKzEwLCByZWN0LnkrMyoocmVjdC5oZWlnaHQgLSB0 ZXh0SGVpZ2h0KS8vNCkKKysgCisrICAgICAgICAgZGMuU2V0VGV4dEZvcmVncm91bmQod3guQkxB Q0spCisrLSAgICAgICAgZGMuRHJhd1RleHQoc2VsZi5kZXNjcmlwdGlvbiwgcmVjdC54K2JtcFdp ZHRoK2R1bW15MSsxMCwgcmVjdC55KzMqKHJlY3QuaGVpZ2h0IC0gdGV4dEhlaWdodCkvNCkKKysr ICAgICAgICBkYy5EcmF3VGV4dChzZWxmLmRlc2NyaXB0aW9uLCByZWN0LngrYm1wV2lkdGgrZHVt bXkxKzEwLCByZWN0LnkrMyoocmVjdC5oZWlnaHQgLSB0ZXh0SGVpZ2h0KS8vNCkKKysgCisrIAor KyAgICAgZGVmIEdldExpbmVIZWlnaHQoc2VsZik6CisrQEAgLTIwNywxMCArMjA3LDEwIEBAIGRl ZiBEcmF3U3ViSXRlbShzZWxmLCBkYywgcmVjdCwgbGluZSwgaGlnaGxpZ2h0ZWQsIGVuYWJsZWQp OgorKyAgICAgICAgIHRleHRXaWR0aCwgdGV4dEhlaWdodCA9IGRjLkdldFRleHRFeHRlbnQoIkRh dGUgbW9kaWZpZWQ6ICIgKyBkYXRlKQorKyAKKysgICAgICAgICBkYy5TZXRUZXh0Rm9yZWdyb3Vu ZChzZWxmLmdyZXlDb2xvdXIpCisrLSAgICAgICAgZGMuRHJhd1RleHQoIkRhdGUgbW9kaWZpZWQ6 ICIsIHJlY3QueCs1LCByZWN0LnkrKHJlY3QuaGVpZ2h0IC0gdGV4dEhlaWdodCkvNCkKKysrICAg ICAgICBkYy5EcmF3VGV4dCgiRGF0ZSBtb2RpZmllZDogIiwgcmVjdC54KzUsIHJlY3QueSsocmVj dC5oZWlnaHQgLSB0ZXh0SGVpZ2h0KS8vNCkKKysgCisrICAgICAgICAgZGMuU2V0VGV4dEZvcmVn cm91bmQod3guQkxBQ0spCisrLSAgICAgICAgZGMuRHJhd1RleHQoZGF0ZSwgcmVjdC54K2R1bW15 MSs1LCByZWN0LnkrKHJlY3QuaGVpZ2h0IC0gdGV4dEhlaWdodCkvNCkKKysrICAgICAgICBkYy5E cmF3VGV4dChkYXRlLCByZWN0LngrZHVtbXkxKzUsIHJlY3QueSsocmVjdC5oZWlnaHQgLSB0ZXh0 SGVpZ2h0KS8vNCkKKysgCisrICAgICAgICAgaWYgbm90IHNlbGYuc2l6ZToKKysgICAgICAgICAg ICAgcmV0dXJuCisrQEAgLTIxOCwxMCArMjE4LDEwIEBAIGRlZiBEcmF3U3ViSXRlbShzZWxmLCBk YywgcmVjdCwgbGluZSwgaGlnaGxpZ2h0ZWQsIGVuYWJsZWQpOgorKyAgICAgICAgIGR1bW15MSwg ZHVtbXkyPSBkYy5HZXRUZXh0RXh0ZW50KCJTaXplOiAiKQorKyAKKysgICAgICAgICBkYy5TZXRU ZXh0Rm9yZWdyb3VuZChzZWxmLmdyZXlDb2xvdXIpCisrLSAgICAgICAgZGMuRHJhd1RleHQoIlNp emU6ICIsIHJlY3QueCs1LCByZWN0LnkrMyoocmVjdC5oZWlnaHQgLSB0ZXh0SGVpZ2h0KS80KQor KysgICAgICAgIGRjLkRyYXdUZXh0KCJTaXplOiAiLCByZWN0LngrNSwgcmVjdC55KzMqKHJlY3Qu aGVpZ2h0IC0gdGV4dEhlaWdodCkvLzQpCisrIAorKyAgICAgICAgIGRjLlNldFRleHRGb3JlZ3Jv dW5kKHd4LkJMQUNLKQorKy0gICAgICAgIGRjLkRyYXdUZXh0KHNlbGYuc2l6ZSwgcmVjdC54K2R1 bW15MSs1LCByZWN0LnkrMyoocmVjdC5oZWlnaHQgLSB0ZXh0SGVpZ2h0KS80KQorKysgICAgICAg IGRjLkRyYXdUZXh0KHNlbGYuc2l6ZSwgcmVjdC54K2R1bW15MSs1LCByZWN0LnkrMyoocmVjdC5o ZWlnaHQgLSB0ZXh0SGVpZ2h0KS8vNCkKKysgCisrIAorKyAgICAgZGVmIEdldExpbmVIZWlnaHQo c2VsZik6CisrZGlmZiAtLWdpdCBhL2RlbW8vYWd3L1pvb21CYXIucHkgYi9kZW1vL2Fndy9ab29t QmFyLnB5CisraW5kZXggMzc2Y2UzNDliLi4xNGIwMjc4ZTcgMTAwNjQ0CisrLS0tIGEvZGVtby9h Z3cvWm9vbUJhci5weQorKysrKyBiL2RlbW8vYWd3L1pvb21CYXIucHkKKytAQCAtNTUsNyArNTUs NyBAQCBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50LCBsb2cpOgorKyAgICAgICAgIHJlZmxlY3Rp b25zID0gZ2xvYi5nbG9iKGJpdG1hcERpciArICIvKjk2RmxpcDQwLnBuZyIpCisrIAorKyAgICAg ICAgIHNlcGFyYXRvckltYWdlID0gYml0bWFwRGlyICsgIi9zZXBhcmF0b3IuZ2lmIgorKy0gICAg ICAgIHNlcGFyYXRvclJlZmxlY3Rpb24gPSBiaXRtYXBEaXIgKyAiL3NlcGFyYXRvckZsaXAucG5n IgorKysgICAgICAgIHNlcGFyYXRvclJlZmxlY3Rpb24gPSBiaXRtYXBEaXIgKyAiL3NlcGFyYXRv cmZsaXAucG5nIgorKyAgICAgICAgIGNvdW50ID0gMAorKyAKKysgICAgICAgICBmb3Igc3RkLCBy ZWYgaW4gemlwKHN0YW5kYXJkLCByZWZsZWN0aW9ucyk6CisrZGlmZiAtLWdpdCBhL3d4L2xpYi9h Z3cvYWR2YW5jZWRzcGxhc2gucHkgYi93eC9saWIvYWd3L2FkdmFuY2Vkc3BsYXNoLnB5CisraW5k ZXggMWY4YzMyZGY1Li5kMzUxZWEwNmUgMTAwNjQ0CisrLS0tIGEvd3gvbGliL2Fndy9hZHZhbmNl ZHNwbGFzaC5weQorKysrKyBiL3d4L2xpYi9hZ3cvYWR2YW5jZWRzcGxhc2gucHkKKytAQCAtNDM4 LDcgKzQzOCw3IEBAIGRlZiBTZXRUZXh0Rm9udChzZWxmLCBmb250PU5vbmUpOgorKyAKKysgICAg ICAgICBpZiBmb250IGlzIE5vbmU6CisrICAgICAgICAgICAgIHNlbGYuX3RleHRmb250ID0gd3gu Rm9udCgxLCB3eC5GT05URkFNSUxZX1NXSVNTLCB3eC5GT05UU1RZTEVfTk9STUFMLCB3eC5GT05U V0VJR0hUX0JPTEQsIEZhbHNlKQorKy0gICAgICAgICAgICBzZWxmLl90ZXh0c2l6ZSA9IDEwLjAK KysrICAgICAgICAgICAgc2VsZi5fdGV4dHNpemUgPSAxMAorKyAgICAgICAgICAgICBzZWxmLl90 ZXh0Zm9udC5TZXRQb2ludFNpemUoc2VsZi5fdGV4dHNpemUpCisrICAgICAgICAgZWxzZToKKysg ICAgICAgICAgICAgc2VsZi5fdGV4dGZvbnQgPSBmb250CisrZGlmZiAtLWdpdCBhL3d4L2xpYi9h Z3cvYXVpL2F1aWJvb2sucHkgYi93eC9saWIvYWd3L2F1aS9hdWlib29rLnB5CisraW5kZXggYmE3 Y2Y0NzIxLi5mNWFkMmE1NjggMTAwNjQ0CisrLS0tIGEvd3gvbGliL2Fndy9hdWkvYXVpYm9vay5w eQorKysrKyBiL3d4L2xpYi9hZ3cvYXVpL2F1aWJvb2sucHkKKytAQCAtMzQ1Miw4ICszNDUyLDgg QEAgZGVmIENhbGN1bGF0ZU5ld1NwbGl0U2l6ZShzZWxmKToKKysgICAgICAgICAjIHNob3VsZCBo YXBwZW4gYXJvdW5kIHRoZSBtaWRkbGUKKysgICAgICAgICBpZiB0YWJfY3RybF9jb3VudCA8IDI6 CisrICAgICAgICAgICAgIG5ld19zcGxpdF9zaXplID0gc2VsZi5HZXRDbGllbnRTaXplKCkKKyst ICAgICAgICAgICAgbmV3X3NwbGl0X3NpemUueCAvPSAyCisrLSAgICAgICAgICAgIG5ld19zcGxp dF9zaXplLnkgLz0gMgorKysgICAgICAgICAgICBuZXdfc3BsaXRfc2l6ZS54IC8vPSAyCisrKyAg ICAgICAgICAgIG5ld19zcGxpdF9zaXplLnkgLy89IDIKKysgCisrICAgICAgICAgZWxzZToKKysg CisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hZ3cvYmFsbG9vbnRpcC5weSBiL3d4L2xpYi9hZ3cvYmFs bG9vbnRpcC5weQorK2luZGV4IGI0MTU1ZDc0YS4uNTdiYWNhNzI5IDEwMDY0NAorKy0tLSBhL3d4 L2xpYi9hZ3cvYmFsbG9vbnRpcC5weQorKysrKyBiL3d4L2xpYi9hZ3cvYmFsbG9vbnRpcC5weQor K0BAIC02MTUsNyArNjE1LDcgQEAgZGVmIFNldFN0YXJ0RGVsYXkoc2VsZiwgZGVsYXk9MSk6Cisr ICAgICAgICAgaWYgZGVsYXkgPCAxOgorKyAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIlxu RVJST1I6IERlbGF5IFRpbWUgRm9yIEJhbGxvb25UaXAgQ3JlYXRpb24gU2hvdWxkIEJlIEdyZWF0 ZXIgVGhhbiAxIG1zIikKKysgCisrLSAgICAgICAgc2VsZi5fc3RhcnRkZWxheXRpbWUgPSBmbG9h dChkZWxheSkKKysrICAgICAgICBzZWxmLl9zdGFydGRlbGF5dGltZSA9IGludChkZWxheSkKKysg CisrIAorKyAgICAgZGVmIEdldFN0YXJ0RGVsYXkoc2VsZik6CisrQEAgLTY0MCw3ICs2NDAsNyBA QCBkZWYgU2V0RW5kRGVsYXkoc2VsZiwgZGVsYXk9MWU2KToKKysgICAgICAgICBpZiBkZWxheSA8 IDE6CisrICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiXG5FUlJPUjogRGVsYXkgVGltZSBG b3IgQmFsbG9vblRpcCBEZXN0cnVjdGlvbiBTaG91bGQgQmUgR3JlYXRlciBUaGFuIDEgbXMiKQor KyAKKystICAgICAgICBzZWxmLl9lbmRkZWxheXRpbWUgPSBmbG9hdChkZWxheSkKKysrICAgICAg ICBzZWxmLl9lbmRkZWxheXRpbWUgPSBpbnQoZGVsYXkpCisrIAorKyAKKysgICAgIGRlZiBHZXRF bmREZWxheShzZWxmKToKKytkaWZmIC0tZ2l0IGEvd3gvbGliL2Fndy9mbGF0bWVudS5weSBiL3d4 L2xpYi9hZ3cvZmxhdG1lbnUucHkKKytpbmRleCA1YmEyOGU1ODQuLjg1ZjI5NWI4NiAxMDA2NDQK KystLS0gYS93eC9saWIvYWd3L2ZsYXRtZW51LnB5CisrKysrIGIvd3gvbGliL2Fndy9mbGF0bWVu dS5weQorK0BAIC03MzYsOCArNzM2LDggQEAgZGVmIERyYXdTZXBhcmF0b3Ioc2VsZiwgZGMsIHhD b29yZCwgeUNvb3JkLCB0ZXh0WCwgc2VwV2lkdGgpOgorKyAgICAgICAgICIiIgorKyAKKysgICAg ICAgICBkY3NhdmVyID0gRENTYXZlcihkYykKKystICAgICAgICBzZXBSZWN0MSA9IHd4LlJlY3Qo eENvb3JkICsgdGV4dFgsIHlDb29yZCArIDEsIHNlcFdpZHRoLzIsIDEpCisrLSAgICAgICAgc2Vw UmVjdDIgPSB3eC5SZWN0KHhDb29yZCArIHRleHRYICsgc2VwV2lkdGgvMiwgeUNvb3JkICsgMSwg c2VwV2lkdGgvMi0xLCAxKQorKysgICAgICAgIHNlcFJlY3QxID0gd3guUmVjdCh4Q29vcmQgKyB0 ZXh0WCwgeUNvb3JkICsgMSwgc2VwV2lkdGgvLzIsIDEpCisrKyAgICAgICAgc2VwUmVjdDIgPSB3 eC5SZWN0KHhDb29yZCArIHRleHRYICsgc2VwV2lkdGgvLzIsIHlDb29yZCArIDEsIHNlcFdpZHRo Ly8yLTEsIDEpCisrIAorKyAgICAgICAgIGFydE1nciA9IEFydE1hbmFnZXIuR2V0KCkKKysgICAg ICAgICBiYWNrQ29sb3VyID0gYXJ0TWdyLkdldE1lbnVGYWNlQ29sb3VyKCkKKytAQCAtODE3LDEx ICs4MTcsMTEgQEAgZGVmIERyYXdNZW51SXRlbShzZWxmLCBpdGVtLCBkYywgeENvb3JkLCB5Q29v cmQsIGltYWdlTWFyZ2luWCwgbWFya2VyTWFyZ2luWCwgdGUKKysgICAgICAgICAgICAgaW1nV2lk dGggID0gYm1wLkdldFdpZHRoKCkKKysgCisrICAgICAgICAgICAgIGlmIGltYWdlTWFyZ2luWCA9 PSAwOgorKy0gICAgICAgICAgICAgICAgeHggPSByZWN0LnggKyAobGVmdE1hcmdpbldpZHRoIC0g aW1nV2lkdGgpLzIKKysrICAgICAgICAgICAgICAgIHh4ID0gcmVjdC54ICsgKGxlZnRNYXJnaW5X aWR0aCAtIGltZ1dpZHRoKS8vMgorKyAgICAgICAgICAgICBlbHNlOgorKy0gICAgICAgICAgICAg ICAgeHggPSByZWN0LnggKyAoKGxlZnRNYXJnaW5XaWR0aCAtIHJlY3QuaGVpZ2h0KSAtIGltZ1dp ZHRoKS8yICsgcmVjdC5oZWlnaHQKKysrICAgICAgICAgICAgICAgIHh4ID0gcmVjdC54ICsgKChs ZWZ0TWFyZ2luV2lkdGggLSByZWN0LmhlaWdodCkgLSBpbWdXaWR0aCkvLzIgKyByZWN0LmhlaWdo dAorKyAKKystICAgICAgICAgICAgeXkgPSByZWN0LnkgKyAocmVjdC5oZWlnaHQgLSBpbWdIZWln aHQpLzIKKysrICAgICAgICAgICAgeXkgPSByZWN0LnkgKyAocmVjdC5oZWlnaHQgLSBpbWdIZWln aHQpLy8yCisrICAgICAgICAgICAgIGRjLkRyYXdCaXRtYXAoYm1wLCB4eCwgeXksIFRydWUpCisr IAorKyAgICAgICAgIGlmIGl0ZW0uR2V0S2luZCgpID09IHd4LklURU1fQ0hFQ0s6CisrQEAgLTgz Nyw3ICs4MzcsNyBAQCBkZWYgRHJhd01lbnVJdGVtKHNlbGYsIGl0ZW0sIGRjLCB4Q29vcmQsIHlD b29yZCwgaW1hZ2VNYXJnaW5YLCBtYXJrZXJNYXJnaW5YLCB0ZQorKyAgICAgICAgICAgICAgICAg aWYgbm90IHNlbGVjdGVkIGFuZCBzZWxmLmhpZ2hsaWdodENoZWNrQW5kUmFkaW86CisrICAgICAg ICAgICAgICAgICAgICAgc2VsZi5EcmF3QnV0dG9uKGRjLCByciwgQ29udHJvbEZvY3VzKQorKyAK KystICAgICAgICAgICAgICAgIGRjLkRyYXdCaXRtYXAoaXRlbS5fY2hlY2tNYXJrQm1wLCByci54 ICsgKHJyLndpZHRoIC0gMTYpLzIsIHJyLnkgKyAocnIuaGVpZ2h0IC0gMTYpLzIsIFRydWUpCisr KyAgICAgICAgICAgICAgICBkYy5EcmF3Qml0bWFwKGl0ZW0uX2NoZWNrTWFya0JtcCwgcnIueCAr IChyci53aWR0aCAtIDE2KS8vMiwgcnIueSArIChyci5oZWlnaHQgLSAxNikvLzIsIFRydWUpCisr IAorKyAgICAgICAgIGlmIGl0ZW0uR2V0S2luZCgpID09IHd4LklURU1fUkFESU86CisrIAorK0BA IC04NTIsNyArODUyLDcgQEAgZGVmIERyYXdNZW51SXRlbShzZWxmLCBpdGVtLCBkYywgeENvb3Jk LCB5Q29vcmQsIGltYWdlTWFyZ2luWCwgbWFya2VyTWFyZ2luWCwgdGUKKysgICAgICAgICAgICAg ICAgIGlmIG5vdCBzZWxlY3RlZCBhbmQgc2VsZi5oaWdobGlnaHRDaGVja0FuZFJhZGlvOgorKyAg ICAgICAgICAgICAgICAgICAgIHNlbGYuRHJhd0J1dHRvbihkYywgcnIsIENvbnRyb2xGb2N1cykK KysgCisrLSAgICAgICAgICAgICAgICBkYy5EcmF3Qml0bWFwKGl0ZW0uX3JhZGlvTWFya0JtcCwg cnIueCArIChyci53aWR0aCAtIDE2KS8yLCByci55ICsgKHJyLmhlaWdodCAtIDE2KS8yLCBUcnVl KQorKysgICAgICAgICAgICAgICAgZGMuRHJhd0JpdG1hcChpdGVtLl9yYWRpb01hcmtCbXAsIHJy LnggKyAocnIud2lkdGggLSAxNikvLzIsIHJyLnkgKyAocnIuaGVpZ2h0IC0gMTYpLy8yLCBUcnVl KQorKyAKKysgICAgICAgICAjIERyYXcgdGV4dCAtIHdpdGhvdXQgYWNjZWxlcmF0b3JzCisrICAg ICAgICAgdGV4dCA9IGl0ZW0uR2V0TGFiZWwoKQorK0BAIC04OTAsNyArODkwLDcgQEAgZGVmIERy YXdNZW51SXRlbShzZWxmLCBpdGVtLCBkYywgeENvb3JkLCB5Q29vcmQsIGltYWdlTWFyZ2luWCwg bWFya2VyTWFyZ2luWCwgdGUKKysgICAgICAgICAgICAgICAgIHczLCBkdW1teSA9IGRjLkdldFRl eHRFeHRlbnQodGV4dDMpCisrIAorKyAgICAgICAgICAgICAgICAgcG9zeCA9IHhDb29yZCArIHRl eHRYICsgYm9yZGVyWFNpemUKKystICAgICAgICAgICAgICAgIHBvc3kgPSAoaXRlbUhlaWdodCAt IGgpLzIgKyB5Q29vcmQKKysrICAgICAgICAgICAgICAgIHBvc3kgPSAoaXRlbUhlaWdodCAtIGgp Ly8yICsgeUNvb3JkCisrIAorKyAgICAgICAgICAgICAgICAgIyBEcmF3IGZpcnN0IHBhcnQKKysg ICAgICAgICAgICAgICAgIGRjLkRyYXdUZXh0KHRleHQxLCBwb3N4LCBwb3N5KQorK0BAIC05MTIs NyArOTEyLDcgQEAgZGVmIERyYXdNZW51SXRlbShzZWxmLCBpdGVtLCBkYywgeENvb3JkLCB5Q29v cmQsIGltYWdlTWFyZ2luWCwgbWFya2VyTWFyZ2luWCwgdGUKKysgICAgICAgICAgICAgZWxzZToK KysgCisrICAgICAgICAgICAgICAgICB3LCBoID0gZGMuR2V0VGV4dEV4dGVudCh0ZXh0KQorKy0g ICAgICAgICAgICAgICAgZGMuRHJhd1RleHQodGV4dCwgeENvb3JkICsgdGV4dFggKyBib3JkZXJY U2l6ZSwgKGl0ZW1IZWlnaHQgLSBoKS8yICsgeUNvb3JkKQorKysgICAgICAgICAgICAgICAgZGMu RHJhd1RleHQodGV4dCwgeENvb3JkICsgdGV4dFggKyBib3JkZXJYU2l6ZSwgKGl0ZW1IZWlnaHQg LSBoKS8vMiArIHlDb29yZCkKKysgCisrIAorKyAgICAgICAgICMgTm93IGRyYXcgYWNjZWxlcmF0 b3IKKytAQCAtOTIwLDcgKzkyMCw3IEBAIGRlZiBEcmF3TWVudUl0ZW0oc2VsZiwgaXRlbSwgZGMs IHhDb29yZCwgeUNvb3JkLCBpbWFnZU1hcmdpblgsIG1hcmtlck1hcmdpblgsIHRlCisrICAgICAg ICAgaWYgaXRlbS5HZXRBY2NlbFN0cmluZygpOgorKyAKKysgICAgICAgICAgICAgYWNjZWxXaWR0 aCwgYWNjZWxIZWlnaHQgPSBkYy5HZXRUZXh0RXh0ZW50KGl0ZW0uR2V0QWNjZWxTdHJpbmcoKSkK KystICAgICAgICAgICAgZGMuRHJhd1RleHQoaXRlbS5HZXRBY2NlbFN0cmluZygpLCB4Q29vcmQg KyByaWdodE1hcmdpblggLSBhY2NlbFdpZHRoLCAoaXRlbUhlaWdodCAtIGFjY2VsSGVpZ2h0KS8y ICsgeUNvb3JkKQorKysgICAgICAgICAgICBkYy5EcmF3VGV4dChpdGVtLkdldEFjY2VsU3RyaW5n KCksIHhDb29yZCArIHJpZ2h0TWFyZ2luWCAtIGFjY2VsV2lkdGgsIChpdGVtSGVpZ2h0IC0gYWNj ZWxIZWlnaHQpLy8yICsgeUNvb3JkKQorKyAKKysgICAgICAgICAjIENoZWNrIGlmIHRoaXMgaXRl bSBoYXMgc3ViLW1lbnUgLSBpZiBpdCBkb2VzLCBkcmF3CisrICAgICAgICAgIyByaWdodCBhcnJv dyBvbiB0aGUgcmlnaHQgbWFyZ2luCisrQEAgLTkzMiw3ICs5MzIsNyBAQCBkZWYgRHJhd01lbnVJ dGVtKHNlbGYsIGl0ZW0sIGRjLCB4Q29vcmQsIHlDb29yZCwgaW1hZ2VNYXJnaW5YLCBtYXJrZXJN YXJnaW5YLCB0ZQorKyAKKysgICAgICAgICAgICAgeHggPSB4Q29vcmQgKyByaWdodE1hcmdpblgg KyBib3JkZXJYU2l6ZQorKyAgICAgICAgICAgICByciA9IHd4LlJlY3QoeHgsIHJlY3QueSArIDEs IHJlY3QuaGVpZ2h0LTIsIHJlY3QuaGVpZ2h0LTIpCisrLSAgICAgICAgICAgIGRjLkRyYXdCaXRt YXAocmlnaHRBcnJvd0JtcCwgcnIueCArIDQsIHJyLnkgKyhyci5oZWlnaHQtMTYpLzIsIFRydWUp CisrKyAgICAgICAgICAgIGRjLkRyYXdCaXRtYXAocmlnaHRBcnJvd0JtcCwgcnIueCArIDQsIHJy LnkgKyhyci5oZWlnaHQtMTYpLy8yLCBUcnVlKQorKyAKKysgCisrICAgICBkZWYgRHJhd01lbnVC YXJCdXR0b24oc2VsZiwgZGMsIHJlY3QsIHN0YXRlKToKKytAQCAtMTE0Miw3ICsxMTQyLDcgQEAg ZGVmIERyYXdNZW51QmFyKHNlbGYsIG1lbnViYXIsIGRjKToKKysgICAgICAgICAgICAgIyBHZXQg dGhlIG1lbnUgaXRlbSByZWN0CisrICAgICAgICAgICAgIHRleHRXaWR0aCwgdGV4dEhlaWdodCA9 IGRjLkdldFRleHRFeHRlbnQoZml4ZWRUZXh0KQorKyAgICAgICAgICAgICAjcmVjdCA9IHd4LlJl Y3QocG9zeCttZW51YmFyLl9zcGFjZXIvMiwgcG9zeSwgdGV4dFdpZHRoLCB0ZXh0SGVpZ2h0KQor Ky0gICAgICAgICAgICByZWN0ID0gd3guUmVjdChwb3N4K3BhZGRpbmcvMiwgcG9zeSwgdGV4dFdp ZHRoLCB0ZXh0SGVpZ2h0KQorKysgICAgICAgICAgICByZWN0ID0gd3guUmVjdChwb3N4K3BhZGRp bmcvLzIsIHBvc3ksIHRleHRXaWR0aCwgdGV4dEhlaWdodCkKKysgCisrICAgICAgICAgICAgICMg Q2FuIHdlIGRyYXcgbW9yZT8/CisrICAgICAgICAgICAgICMgdGhlICtEUk9QX0RPV05fQVJST1df V0lEVEggIGlzIHRoZSB3aWR0aCBvZiB0aGUgZHJvcCBkb3duIGFycm93CisrQEAgLTExNzIsNyAr MTE3Miw3IEBAIGRlZiBEcmF3TWVudUJhcihzZWxmLCBtZW51YmFyLCBkYyk6CisrICAgICAgICAg ICAgICAgICBkYy5TZXRUZXh0Rm9yZWdyb3VuZCh0ZXh0Q29sb3VyKQorKyAKKysgICAgICAgICAg ICAgd3csIGhoID0gZGMuR2V0VGV4dEV4dGVudChsYWJlbE9ubHkpCisrLSAgICAgICAgICAgIHRl eHRPZmZzZXQgPSAocmVjdC53aWR0aCAtIHd3KSAvIDIKKysrICAgICAgICAgICAgdGV4dE9mZnNl dCA9IChyZWN0LndpZHRoIC0gd3cpIC8vIDIKKysgCisrICAgICAgICAgICAgIGlmIG5vdCBtZW51 YmFyLl9pc0xDRCBhbmQgaXRlbS5HZXRUZXh0Qml0bWFwKCkuSXNPaygpIGFuZCBub3Qgc2VsZWN0 ZWQ6CisrICAgICAgICAgICAgICAgICBkYy5EcmF3Qml0bWFwKGl0ZW0uR2V0VGV4dEJpdG1hcCgp LCByZWN0LngsIHJlY3QueSwgVHJ1ZSkKKytAQCAtMTUwNSw4ICsxNTA1LDggQEAgZGVmIERyYXdC dXR0b25Db2xvdXIoc2VsZiwgZGMsIHJlY3QsIHN0YXRlLCBjb2xvdXIpOgorKyAgICAgICAgIGJh c2VDb2xvdXIgPSBjb2xvdXIKKysgCisrICAgICAgICAgIyBEZWZpbmUgdGhlIG1pZGRsZSBwb2lu dHMKKystICAgICAgICBsZWZ0UHQgPSB3eC5Qb2ludChyZWN0LngsIHJlY3QueSArIChyZWN0Lmhl aWdodCAvIDIpKQorKy0gICAgICAgIHJpZ2h0UHQgPSB3eC5Qb2ludChyZWN0LnggKyByZWN0Lndp ZHRoLTEsIHJlY3QueSArIChyZWN0LmhlaWdodCAvIDIpKQorKysgICAgICAgIGxlZnRQdCA9IHd4 LlBvaW50KHJlY3QueCwgcmVjdC55ICsgKHJlY3QuaGVpZ2h0IC8vIDIpKQorKysgICAgICAgIHJp Z2h0UHQgPSB3eC5Qb2ludChyZWN0LnggKyByZWN0LndpZHRoLTEsIHJlY3QueSArIChyZWN0Lmhl aWdodCAvLyAyKSkKKysgCisrICAgICAgICAgIyBEZWZpbmUgdGhlIHRvcCByZWdpb24KKysgICAg ICAgICB0b3AgPSB3eC5SZWN0KChyZWN0LkdldExlZnQoKSwgcmVjdC5HZXRUb3AoKSksIHJpZ2h0 UHQpCisrQEAgLTE1NzIsMTEgKzE1NzIsMTEgQEAgZGVmIERyYXdNZW51QmFyQmFja2dyb3VuZChz ZWxmLCBkYywgcmVjdCk6CisrIAorKyAgICAgICAgIGZhY3RvciA9IGFydE1nci5HZXRNZW51QmdG YWN0b3IoKQorKyAKKystICAgICAgICBsZWZ0UHQxID0gd3guUG9pbnQocmVjdC54LCByZWN0Lnkg KyAocmVjdC5oZWlnaHQgLyBmYWN0b3IpKQorKy0gICAgICAgIGxlZnRQdDIgPSB3eC5Qb2ludChy ZWN0LngsIHJlY3QueSArIChyZWN0LmhlaWdodCAvIGZhY3RvcikqKGZhY3Rvci0xKSkKKysrICAg ICAgICBsZWZ0UHQxID0gd3guUG9pbnQocmVjdC54LCByZWN0LnkgKyAocmVjdC5oZWlnaHQgLy8g ZmFjdG9yKSkKKysrICAgICAgICBsZWZ0UHQyID0gd3guUG9pbnQocmVjdC54LCByZWN0LnkgKyAo cmVjdC5oZWlnaHQgLy8gZmFjdG9yKSooZmFjdG9yLTEpKQorKyAKKystICAgICAgICByaWdodFB0 MSA9IHd4LlBvaW50KHJlY3QueCArIHJlY3Qud2lkdGgsIHJlY3QueSArIChyZWN0LmhlaWdodCAv IGZhY3RvcikpCisrLSAgICAgICAgcmlnaHRQdDIgPSB3eC5Qb2ludChyZWN0LnggKyByZWN0Lndp ZHRoLCByZWN0LnkgKyAocmVjdC5oZWlnaHQgLyBmYWN0b3IpKihmYWN0b3ItMSkpCisrKyAgICAg ICAgcmlnaHRQdDEgPSB3eC5Qb2ludChyZWN0LnggKyByZWN0LndpZHRoLCByZWN0LnkgKyAocmVj dC5oZWlnaHQgLy8gZmFjdG9yKSkKKysrICAgICAgICByaWdodFB0MiA9IHd4LlBvaW50KHJlY3Qu eCArIHJlY3Qud2lkdGgsIHJlY3QueSArIChyZWN0LmhlaWdodCAvLyBmYWN0b3IpKihmYWN0b3It MSkpCisrIAorKyAgICAgICAgICMgRGVmaW5lIHRoZSB0b3AgcmVnaW9uCisrICAgICAgICAgdG9w UmVnID0gW3d4LlBvaW50KCkgZm9yIGlpIGluIHJhbmdlKDcpXQorK0BAIC0yNzA3LDcgKzI3MDcs NyBAQCBkZWYgRHJhd1Rvb2xiYXIoc2VsZiwgZGMsIHJlY3QpOgorKyAgICAgICAgICAgICBlbGlm IHRiSXRlbS5Jc0N1c3RvbUNvbnRyb2woKToKKysgICAgICAgICAgICAgICAgIGNvbnRyb2wgPSB0 Ykl0ZW0uR2V0Q3VzdG9tQ29udHJvbCgpCisrICAgICAgICAgICAgICAgICBjdHJsU2l6ZSA9IGNv bnRyb2wuR2V0U2l6ZSgpCisrLSAgICAgICAgICAgICAgICBjdHJsUG9zID0gd3guUG9pbnQoeHgs IHJlY3QueSArIChyZWN0LmhlaWdodCAtIGN0cmxTaXplLnkpLzIpCisrKyAgICAgICAgICAgICAg ICBjdHJsUG9zID0gd3guUG9pbnQoeHgsIHJlY3QueSArIChyZWN0LmhlaWdodCAtIGN0cmxTaXpl LnkpLy8yKQorKyAgICAgICAgICAgICAgICAgaWYgY29udHJvbC5HZXRQb3NpdGlvbigpICE9IGN0 cmxQb3M6CisrICAgICAgICAgICAgICAgICAgICAgY29udHJvbC5TZXRQb3NpdGlvbihjdHJsUG9z KQorKyAKKytAQCAtMjcyNyw5ICsyNzI3LDkgQEAgZGVmIERyYXdUb29sYmFyKHNlbGYsIGRjLCBy ZWN0KToKKysgICAgICAgICAgICAgIyBEcmF3IHRoZSB0b29sYmFyIGltYWdlCisrICAgICAgICAg ICAgIGlmIGJtcC5Jc09rKCk6CisrIAorKy0gICAgICAgICAgICAgICAgeCA9IHh4IC0gc2VsZi5f dG9vbGJhclNwYWNlci8yCisrKyAgICAgICAgICAgICAgICB4ID0geHggLSBzZWxmLl90b29sYmFy U3BhY2VyLy8yCisrICAgICAgICAgICAgICAgICAjeSA9IHJlY3QueSArIChyZWN0LmhlaWdodCAt IGJtcC5HZXRIZWlnaHQoKSkvMiAtIDEKKystICAgICAgICAgICAgICAgIHkgPSByZWN0LnkgKyBz ZWxmLl90b29sYmFyTWFyZ2luLzIKKysrICAgICAgICAgICAgICAgIHkgPSByZWN0LnkgKyBzZWxm Ll90b29sYmFyTWFyZ2luLy8yCisrIAorKyAgICAgICAgICAgICAgICAgYnV0dG9uUmVjdCA9IHd4 LlJlY3QoeCwgeSwgaGlnaGxpZ2h0X3dpZHRoLCBoaWdobGlnaHRfaGVpZ2h0KQorKyAKKytAQCAt Mjc0NSw4ICsyNzQ1LDggQEAgZGVmIERyYXdUb29sYmFyKHNlbGYsIGRjLCByZWN0KToKKysgICAg ICAgICAgICAgICAgICAgICBlbHNlOgorKyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl90 YkJ1dHRvbnNbaV0uX3N0YXRlID0gQ29udHJvbE5vcm1hbAorKyAKKystICAgICAgICAgICAgICAg IGltZ3ggPSBidXR0b25SZWN0LnggKyAoYnV0dG9uUmVjdC53aWR0aCAtIGJtcC5HZXRXaWR0aCgp KS8yCisrLSAgICAgICAgICAgICAgICBpbWd5ID0gYnV0dG9uUmVjdC55ICsgKGJ1dHRvblJlY3Qu aGVpZ2h0IC0gYm1wLkdldEhlaWdodCgpKS8yCisrKyAgICAgICAgICAgICAgICBpbWd4ID0gYnV0 dG9uUmVjdC54ICsgKGJ1dHRvblJlY3Qud2lkdGggLSBibXAuR2V0V2lkdGgoKSkvLzIKKysrICAg ICAgICAgICAgICAgIGltZ3kgPSBidXR0b25SZWN0LnkgKyAoYnV0dG9uUmVjdC5oZWlnaHQgLSBi bXAuR2V0SGVpZ2h0KCkpLy8yCisrIAorKyAgICAgICAgICAgICAgICAgaWYgc2VsZi5fdGJCdXR0 b25zW2ldLl9zdGF0ZSA9PSBDb250cm9sRm9jdXMgYW5kIG5vdCBzZWxmLl90YkJ1dHRvbnNbaV0u X3RiSXRlbS5Jc1NlbGVjdGVkKCk6CisrIAorK0BAIC0yODI3LDggKzI4MjcsOCBAQCBkZWYgRHJh d01vcmVCdXR0b24oc2VsZiwgZGMsIHN0YXRlKToKKysgICAgICAgICBkcm9wQXJyb3dCbXAgPSBz ZWxmLkdldFJlbmRlcmVyKCkuX2JpdG1hcHNbImFycm93X2Rvd24iXQorKyAKKysgICAgICAgICAj IENhbGMgdGhlIGltYWdlIGNvb3JkaW5hdGVzCisrLSAgICAgICAgeHggPSByZWN0LnggKyAoRFJP UF9ET1dOX0FSUk9XX1dJRFRIIC0gZHJvcEFycm93Qm1wLkdldFdpZHRoKCkpLzIKKystICAgICAg ICB5eSA9IHJlY3QueSArIChyZWN0LmhlaWdodCAtIGRyb3BBcnJvd0JtcC5HZXRIZWlnaHQoKSkv MgorKysgICAgICAgIHh4ID0gcmVjdC54ICsgKERST1BfRE9XTl9BUlJPV19XSURUSCAtIGRyb3BB cnJvd0JtcC5HZXRXaWR0aCgpKS8vMgorKysgICAgICAgIHl5ID0gcmVjdC55ICsgKHJlY3QuaGVp Z2h0IC0gZHJvcEFycm93Qm1wLkdldEhlaWdodCgpKS8vMgorKyAKKysgICAgICAgICBkYy5EcmF3 Qml0bWFwKGRyb3BBcnJvd0JtcCwgeHgsIHl5ICsgc2VsZi5fc3BhY2VyLCBUcnVlKQorKyAgICAg ICAgIHNlbGYuX2Ryb3BEb3duQnV0dG9uU3RhdGUgPSBzdGF0ZQorK0BAIC0zMjY5LDggKzMyNjks OCBAQCBkZWYgRHJhd1Rvb2xiYXJJdGVtKHNlbGYsIGRjLCBpZHgsIHN0YXRlKToKKysgCisrICAg ICAgICAgIyBkcmF3IHRoZSBiaXRtYXAgb3ZlciB0aGUgaGlnaGxpZ2h0CisrICAgICAgICAgYnV0 dG9uUmVjdCA9IHd4LlJlY3QoKnJlY3QpCisrLSAgICAgICAgeCA9IHJlY3QueCArIChidXR0b25S ZWN0LndpZHRoIC0gc2VsZi5fdGJCdXR0b25zW2lkeF0uX3RiSXRlbS5HZXRCaXRtYXAoKS5HZXRX aWR0aCgpKS8yCisrLSAgICAgICAgeSA9IHJlY3QueSArIChidXR0b25SZWN0LmhlaWdodCAtIHNl bGYuX3RiQnV0dG9uc1tpZHhdLl90Ykl0ZW0uR2V0Qml0bWFwKCkuR2V0SGVpZ2h0KCkpLzIKKysr ICAgICAgICB4ID0gcmVjdC54ICsgKGJ1dHRvblJlY3Qud2lkdGggLSBzZWxmLl90YkJ1dHRvbnNb aWR4XS5fdGJJdGVtLkdldEJpdG1hcCgpLkdldFdpZHRoKCkpLy8yCisrKyAgICAgICAgeSA9IHJl Y3QueSArIChidXR0b25SZWN0LmhlaWdodCAtIHNlbGYuX3RiQnV0dG9uc1tpZHhdLl90Ykl0ZW0u R2V0Qml0bWFwKCkuR2V0SGVpZ2h0KCkpLy8yCisrIAorKyAgICAgICAgIGlmIHN0YXRlID09IENv bnRyb2xGb2N1czoKKysgCisrQEAgLTM3ODQsNyArMzc4NCw3IEBAIGRlZiBQb3NpdGlvbkFVSShz ZWxmLCBtZ3IsIGZpeFRvb2xiYXI9VHJ1ZSk6CisrICAgICAgICAgcG4uTmFtZSgiZmxhdF9tZW51 X2JhciIpCisrICAgICAgICAgcG4uQ2FwdGlvbigiTWVudSBCYXIiKQorKyAgICAgICAgIHBuLlRv cCgpCisrLSAgICAgICAgcG4uTWluU2l6ZSh3eC5TaXplKHh4LzIsIHNlbGYuX2JhckhlaWdodCkp CisrKyAgICAgICAgcG4uTWluU2l6ZSh3eC5TaXplKHh4Ly8yLCBzZWxmLl9iYXJIZWlnaHQpKQor KyAgICAgICAgIHBuLkxlZnREb2NrYWJsZShGYWxzZSkKKysgICAgICAgICBwbi5SaWdodERvY2th YmxlKEZhbHNlKQorKyAgICAgICAgIHBuLlRvb2xiYXJQYW5lKCkKKytAQCAtMzk5Nyw4ICszOTk3 LDggQEAgZGVmIERyYXcoc2VsZiwgZGMpOgorKyAgICAgICAgICIiIgorKyAKKysgICAgICAgICBy ZWN0ID0gd3guUmVjdChzZWxmLl9wb3MsIHNlbGYuX3NpemUpCisrLSAgICAgICAgeHggPSByZWN0 LnggKyAocmVjdC53aWR0aCAtIHNlbGYuX25vcm1hbEJtcC5HZXRXaWR0aCgpKS8yCisrLSAgICAg ICAgeXkgPSByZWN0LnkgKyAocmVjdC5oZWlnaHQgLSBzZWxmLl9ub3JtYWxCbXAuR2V0SGVpZ2h0 KCkpLzIKKysrICAgICAgICB4eCA9IHJlY3QueCArIChyZWN0LndpZHRoIC0gc2VsZi5fbm9ybWFs Qm1wLkdldFdpZHRoKCkpLy8yCisrKyAgICAgICAgeXkgPSByZWN0LnkgKyAocmVjdC5oZWlnaHQg LSBzZWxmLl9ub3JtYWxCbXAuR2V0SGVpZ2h0KCkpLy8yCisrIAorKyAgICAgICAgIHNlbGYuX3Bh cmVudC5HZXRSZW5kZXJlcigpLkRyYXdTY3JvbGxCdXR0b24oZGMsIHJlY3QsIHNlbGYuX3N0YXRl KQorKyAgICAgICAgIGRjLkRyYXdCaXRtYXAoc2VsZi5fbm9ybWFsQm1wLCB4eCwgeXksIFRydWUp CisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hZ3cvZmxhdG5vdGVib29rLnB5IGIvd3gvbGliL2Fndy9m bGF0bm90ZWJvb2sucHkKKytpbmRleCBmNWU1MjAwYjIuLjU2MTc0OWI4OSAxMDA2NDQKKystLS0g YS93eC9saWIvYWd3L2ZsYXRub3RlYm9vay5weQorKysrKyBiL3d4L2xpYi9hZ3cvZmxhdG5vdGVi b29rLnB5CisrQEAgLTg1OCw5ICs4NTgsOSBAQCBkZWYgUGFpbnRTdHJhaWdodEdyYWRpZW50Qm94 KGRjLCByZWN0LCBzdGFydENvbG91ciwgZW5kQ29sb3VyLCB2ZXJ0aWNhbD1UcnVlKToKKysgCisr ICAgICBmb3IgaSBpbiByYW5nZShoaWdoKzEpOgorKyAKKystICAgICAgICByID0gc3RhcnRDb2xv dXIuUmVkKCkgKyAoKGkqcmQqMTAwKS9oaWdoKS8xMDAKKystICAgICAgICBnID0gc3RhcnRDb2xv dXIuR3JlZW4oKSArICgoaSpnZCoxMDApL2hpZ2gpLzEwMAorKy0gICAgICAgIGIgPSBzdGFydENv bG91ci5CbHVlKCkgKyAoKGkqYmQqMTAwKS9oaWdoKS8xMDAKKysrICAgICAgICByID0gc3RhcnRD b2xvdXIuUmVkKCkgKyAoKGkqcmQqMTAwKS8vaGlnaCkvLzEwMAorKysgICAgICAgIGcgPSBzdGFy dENvbG91ci5HcmVlbigpICsgKChpKmdkKjEwMCkvL2hpZ2gpLy8xMDAKKysrICAgICAgICBiID0g c3RhcnRDb2xvdXIuQmx1ZSgpICsgKChpKmJkKjEwMCkvL2hpZ2gpLy8xMDAKKysgCisrICAgICAg ICAgcCA9IHd4LlBlbih3eC5Db2xvdXIociwgZywgYikpCisrICAgICAgICAgZGMuU2V0UGVuKHAp CisrQEAgLTI2MzEsOSArMjYzMSw5IEBAIGRlZiBEcmF3VGFiKHNlbGYsIHBhZ2VDb250YWluZXIs IGRjLCBwb3N4LCB0YWJJZHgsIHRhYldpZHRoLCB0YWJIZWlnaHQsIGJ0blN0YXR1CisrICAgICAg ICAgaW1hZ2VZQ29vcmQgPSAocGMuSGFzQUdXRmxhZyhGTkJfQk9UVE9NKSBhbmQgWzZdIG9yIFs4 XSlbMF0KKysgCisrICAgICAgICAgaWYgaGFzSW1hZ2U6CisrLSAgICAgICAgICAgIHRleHRPZmZz ZXQgPSAyKnBjLl9wUGFyZW50Ll9uUGFkZGluZyArIDE2ICsgc2hhcGVQb2ludHMvMgorKysgICAg ICAgICAgICB0ZXh0T2Zmc2V0ID0gMipwYy5fcFBhcmVudC5fblBhZGRpbmcgKyAxNiArIHNoYXBl UG9pbnRzLy8yCisrICAgICAgICAgZWxzZToKKystICAgICAgICAgICAgdGV4dE9mZnNldCA9IHBj Ll9wUGFyZW50Ll9uUGFkZGluZyArIHNoYXBlUG9pbnRzLzIKKysrICAgICAgICAgICAgdGV4dE9m ZnNldCA9IHBjLl9wUGFyZW50Ll9uUGFkZGluZyArIHNoYXBlUG9pbnRzLy8yCisrIAorKyAgICAg ICAgIHRleHRPZmZzZXQgKz0gMgorKyAKKytkaWZmIC0tZ2l0IGEvd3gvbGliL2Fndy9mbG9hdHNw aW4ucHkgYi93eC9saWIvYWd3L2Zsb2F0c3Bpbi5weQorK2luZGV4IGJkYmFmODVlYy4uNDU1OWVi NWRlIDEwMDY0NAorKy0tLSBhL3d4L2xpYi9hZ3cvZmxvYXRzcGluLnB5CisrKysrIGIvd3gvbGli L2Fndy9mbG9hdHNwaW4ucHkKKytAQCAtMzM2LDcgKzMzNiw3IEBAIGNsYXNzIEZsb2F0U3Bpbih3 eC5Db250cm9sKToKKysgICAgICIiIgorKyAKKysgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJl bnQsIGlkPXd4LklEX0FOWSwgcG9zPXd4LkRlZmF1bHRQb3NpdGlvbiwKKystICAgICAgICAgICAg ICAgICBzaXplPSg5NSwtMSksIHN0eWxlPTAsIHZhbHVlPTAuMCwgbWluX3ZhbD1Ob25lLCBtYXhf dmFsPU5vbmUsCisrKyAgICAgICAgICAgICAgICAgc2l6ZT13eC5EZWZhdWx0U2l6ZSwgc3R5bGU9 MCwgdmFsdWU9MC4wLCBtaW5fdmFsPU5vbmUsIG1heF92YWw9Tm9uZSwKKysgICAgICAgICAgICAg ICAgICBpbmNyZW1lbnQ9MS4wLCBkaWdpdHM9LTEsIGFnd1N0eWxlPUZTX0xFRlQsCisrICAgICAg ICAgICAgICAgICAgbmFtZT0iRmxvYXRTcGluIik6CisrICAgICAgICAgIiIiCisrZGlmZiAtLWdp dCBhL3d4L2xpYi9hZ3cvZ3JhZGllbnRidXR0b24ucHkgYi93eC9saWIvYWd3L2dyYWRpZW50YnV0 dG9uLnB5CisraW5kZXggYzQ2MzNiMjk2Li41ODYyNWM1MDggMTAwNjQ0CisrLS0tIGEvd3gvbGli L2Fndy9ncmFkaWVudGJ1dHRvbi5weQorKysrKyBiL3d4L2xpYi9hZ3cvZ3JhZGllbnRidXR0b24u cHkKKytAQCAtNDEyLDE0ICs0MTIsMTQgQEAgZGVmIE9uUGFpbnQoc2VsZiwgZXZlbnQpOgorKyAK KysgICAgICAgICB4LCB5LCB3aWR0aCwgaGVpZ2h0ID0gY2xpZW50UmVjdAorKyAKKystICAgICAg ICBncmFkaWVudFJlY3QuU2V0SGVpZ2h0KGdyYWRpZW50UmVjdC5HZXRIZWlnaHQoKS8yICsgKChj YXB0dXJlPT1zZWxmIGFuZCBbMV0gb3IgWzBdKVswXSkpCisrKyAgICAgICAgZ3JhZGllbnRSZWN0 LlNldEhlaWdodChncmFkaWVudFJlY3QuR2V0SGVpZ2h0KCkvLzIgKyAoKGNhcHR1cmU9PXNlbGYg YW5kIFsxXSBvciBbMF0pWzBdKSkKKysgICAgICAgICBpZiBjYXB0dXJlICE9IHNlbGY6CisrICAg ICAgICAgICAgIGlmIHNlbGYuX21vdXNlQWN0aW9uID09IEhPVkVSOgorKyAgICAgICAgICAgICAg ICAgdG9wU3RhcnQsIHRvcEVuZCA9IHNlbGYuTGlnaHRDb2xvdXIoc2VsZi5fdG9wU3RhcnRDb2xv dXIsIDEwKSwgc2VsZi5MaWdodENvbG91cihzZWxmLl90b3BFbmRDb2xvdXIsIDEwKQorKyAgICAg ICAgICAgICBlbHNlOgorKyAgICAgICAgICAgICAgICAgdG9wU3RhcnQsIHRvcEVuZCA9IHNlbGYu X3RvcFN0YXJ0Q29sb3VyLCBzZWxmLl90b3BFbmRDb2xvdXIKKysgCisrLSAgICAgICAgICAgIHJj MSA9IHd4LlJlY3QoeCwgeSwgd2lkdGgsIGhlaWdodC8yKQorKysgICAgICAgICAgICByYzEgPSB3 eC5SZWN0KHgsIHksIHdpZHRoLCBoZWlnaHQvLzIpCisrICAgICAgICAgICAgIHBhdGgxID0gc2Vs Zi5HZXRQYXRoKGdjLCByYzEsIDgpCisrICAgICAgICAgICAgIGJyMSA9IGdjLkNyZWF0ZUxpbmVh ckdyYWRpZW50QnJ1c2goeCwgeSwgeCwgeStoZWlnaHQvMiwgdG9wU3RhcnQsIHRvcEVuZCkKKysg ICAgICAgICAgICAgZ2MuU2V0QnJ1c2goYnIxKQorK0BAIC00NDgsNyArNDQ4LDcgQEAgZGVmIE9u UGFpbnQoc2VsZiwgZXZlbnQpOgorKyAgICAgICAgICAgICBlbHNlOgorKyAgICAgICAgICAgICAg ICAgYm90dG9tU3RhcnQsIGJvdHRvbUVuZCA9IHNlbGYuX2JvdHRvbVN0YXJ0Q29sb3VyLCBzZWxm Ll9ib3R0b21FbmRDb2xvdXIKKysgCisrLSAgICAgICAgICAgIHJjMyA9IHd4LlJlY3QoeCwgeSto ZWlnaHQvMiwgd2lkdGgsIGhlaWdodC8yKQorKysgICAgICAgICAgICByYzMgPSB3eC5SZWN0KHgs IHkraGVpZ2h0Ly8yLCB3aWR0aCwgaGVpZ2h0Ly8yKQorKyAgICAgICAgICAgICBwYXRoMyA9IHNl bGYuR2V0UGF0aChnYywgcmMzLCA4KQorKyAgICAgICAgICAgICBicjMgPSBnYy5DcmVhdGVMaW5l YXJHcmFkaWVudEJydXNoKHgsIHkraGVpZ2h0LzIsIHgsIHkraGVpZ2h0LCBib3R0b21TdGFydCwg Ym90dG9tRW5kKQorKyAgICAgICAgICAgICBnYy5TZXRCcnVzaChicjMpCisrQEAgLTQ2Myw3ICs0 NjMsNyBAQCBkZWYgT25QYWludChzZWxmLCBldmVudCk6CisrICAgICAgICAgICAgIHNoYWRvd09m ZnNldCA9IDAKKysgICAgICAgICBlbHNlOgorKyAKKystICAgICAgICAgICAgcmMyID0gd3guUmVj dCh4KzEsIGdyYWRpZW50UmVjdC5oZWlnaHQvMiwgZ3JhZGllbnRSZWN0LndpZHRoLCBncmFkaWVu dFJlY3QuaGVpZ2h0KQorKysgICAgICAgICAgICByYzIgPSB3eC5SZWN0KHgrMSwgZ3JhZGllbnRS ZWN0LmhlaWdodC8vMiwgZ3JhZGllbnRSZWN0LndpZHRoLCBncmFkaWVudFJlY3QuaGVpZ2h0KQor KyAgICAgICAgICAgICBwYXRoMiA9IHNlbGYuR2V0UGF0aChnYywgcmMyLCA4KQorKyAgICAgICAg ICAgICBnYy5TZXRQZW4od3guUGVuKHNlbGYuX3ByZXNzZWRCb3R0b21Db2xvdXIpKQorKyAgICAg ICAgICAgICBnYy5TZXRCcnVzaCh3eC5CcnVzaChzZWxmLl9wcmVzc2VkQm90dG9tQ29sb3VyKSkK KytkaWZmIC0tZ2l0IGEvd3gvbGliL2Fndy9oeXBlcnRyZWVsaXN0LnB5IGIvd3gvbGliL2Fndy9o eXBlcnRyZWVsaXN0LnB5CisraW5kZXggMTIzMDJmM2IwLi4zNzdhYzAxMjEgMTAwNjQ0CisrLS0t IGEvd3gvbGliL2Fndy9oeXBlcnRyZWVsaXN0LnB5CisrKysrIGIvd3gvbGliL2Fndy9oeXBlcnRy ZWVsaXN0LnB5CisrQEAgLTM0MzcsNyArMzQzNyw3IEBAIGRlZiBQYWludExldmVsKHNlbGYsIGl0 ZW0sIGRjLCBsZXZlbCwgeSwgeF9tYWluY29sKToKKysgCisrICAgICAgICAgICAgIGlmIG5vdCBz ZWxmLkhhc0FHV0ZsYWcod3guVFJfTk9fTElORVMpIGFuZCBjaGlsZHJlbjoKKysgICAgICAgICAg ICAgICAgIGxhc3RfY2hpbGQgPSBjaGlsZHJlblstMV0KKystICAgICAgICAgICAgICAgIFkxID0g bGFzdF9jaGlsZC5HZXRZKCkgKyBsYXN0X2NoaWxkLkdldEhlaWdodCgpIC8gMgorKysgICAgICAg ICAgICAgICAgWTEgPSBsYXN0X2NoaWxkLkdldFkoKSArIGxhc3RfY2hpbGQuR2V0SGVpZ2h0KCkg Ly8gMgorKyAgICAgICAgICAgICAgICAgZGMuRHJhd0xpbmUoeCwgb2xkWSwgeCwgWTEpCisrIAor KyAgICAgICAgIHJldHVybiB5LCB4X21haW5jb2wKKytkaWZmIC0tZ2l0IGEvd3gvbGliL2Fndy9r bm9iY3RybC5weSBiL3d4L2xpYi9hZ3cva25vYmN0cmwucHkKKytpbmRleCA3NDIwOTdiMDkuLjFl NTA0NWZmNiAxMDA2NDQKKystLS0gYS93eC9saWIvYWd3L2tub2JjdHJsLnB5CisrKysrIGIvd3gv bGliL2Fndy9rbm9iY3RybC5weQorK0BAIC0zMjUsNyArMzI1LDcgQEAgZGVmIE9uU2l6ZShzZWxm LGV2ZW50KToKKysgICAgICAgICBtZW1vcnkuQ2xlYXIoKQorKyAKKysgICAgICAgICBtaW5yYWRp dXMgPSBtaW4oMC45KnNlbGYuV2lkdGgvMi4wLCAwLjkqc2VsZi5IZWlnaHQvMi4wKQorKy0gICAg ICAgIG1lbW9yeS5EcmF3Q2lyY2xlKHNlbGYuV2lkdGgvLzIsIHNlbGYuSGVpZ2h0Ly8yLCBtaW5y YWRpdXMpCisrKyAgICAgICAgbWVtb3J5LkRyYXdDaXJjbGUoc2VsZi5XaWR0aC8vMiwgc2VsZi5I ZWlnaHQvLzIsIGludChtaW5yYWRpdXMpKQorKyAgICAgICAgIG1lbW9yeS5TZWxlY3RPYmplY3Qo d3guTnVsbEJpdG1hcCkKKysgICAgICAgICBzZWxmLl9yZWdpb24gPSB3eC5SZWdpb24oc2VsZi5f QnVmZmVyLCBzZWxmLkdldEJhY2tncm91bmRDb2xvdXIoKSkKKysgICAgICAgICBzZWxmLl9taW5y YWRpdXMgPSBtaW5yYWRpdXMKKytAQCAtNjQ1LDggKzY0NSw4IEBAIGRlZiBEcmF3VGFncyhzZWxm LCBkYywgc2l6ZSk6CisrICAgICAgICAgICAgIGR4aSA9IG1hdGguY29zKGFuZ2xlKSooKHdpZHRo IC0geHNoaWZ0ICsgdGFnTGVuIC0gNikvMi4wIC0gdGFnTGVuKQorKyAgICAgICAgICAgICBkeWkg PSBtYXRoLnNpbihhbmdsZSkqKChoZWlnaHQgLSB5c2hpZnQgKyB0YWdMZW4gLSA2KS8yLjAgLSB0 YWdMZW4pCisrIAorKy0gICAgICAgICAgICBkYy5EcmF3TGluZSh3aWR0aC8vMiAtIHN4aSwgaGVp Z2h0Ly8yIC0gc3lpLAorKy0gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC8vMiAtIGR4aSwg aGVpZ2h0Ly8yIC0gZHlpKQorKysgICAgICAgICAgICBkYy5EcmF3TGluZShpbnQod2lkdGgvLzIg LSBzeGkpLCBpbnQoaGVpZ2h0Ly8yIC0gc3lpKSwKKysrICAgICAgICAgICAgICAgICAgICAgICAg aW50KHdpZHRoLy8yIC0gZHhpKSwgaW50KGhlaWdodC8vMiAtIGR5aSkpCisrIAorKyAKKysgICAg IGRlZiBEcmF3RGlhZ29uYWxHcmFkaWVudChzZWxmLCBkYywgc2l6ZSk6CisrQEAgLTc1OSw4ICs3 NTksOCBAQCBkZWYgRHJhd0luc2V0Q2lyY2xlKHNlbGYsIGRjLCBwZW5jb2xvdXIpOgorKyAgICAg ICAgIHAxID0gd3guUGVuKHNlbGYuT2Zmc2V0Q29sb3VyKHBlbmNvbG91ciwgLTcwKSwgMikKKysg ICAgICAgICBwMiA9IHd4LlBlbihzZWxmLk9mZnNldENvbG91cihwZW5jb2xvdXIsIDEwKSwgMSkK KysgCisrLSAgICAgICAgcHQxID0gd3guUG9pbnQoY3gtciptYXRoLnNxcnQoMikvMi4wLCBjeSty Km1hdGguc3FydCgyKS8yLjApCisrLSAgICAgICAgcHQyID0gd3guUG9pbnQoY3grciptYXRoLnNx cnQoMikvMi4wLCBjeS1yKm1hdGguc3FydCgyKS8yLjApCisrKyAgICAgICAgcHQxID0gd3guUG9p bnQoaW50KGN4LXIqbWF0aC5zcXJ0KDIpLzIuMCksIGludChjeStyKm1hdGguc3FydCgyKS8yLjAp KQorKysgICAgICAgIHB0MiA9IHd4LlBvaW50KGludChjeCtyKm1hdGguc3FydCgyKS8yLjApLCBp bnQoY3ktciptYXRoLnNxcnQoMikvMi4wKSkKKysgCisrICAgICAgICAgZGMuU2V0UGVuKHAyKQor KyAgICAgICAgIGRjLkRyYXdBcmMocHQxLCBwdDIsIChjeCwgY3kpKQorK0BAIC03NzksNyArNzc5 LDcgQEAgZGVmIERyYXdCb3VuZGluZ0NpcmNsZShzZWxmLCBkYywgc2l6ZSk6CisrICAgICAgICAg cmFkaXVzID0gMC45Km1pbihzaXplLngsIHNpemUueSkvMi4wCisrICAgICAgICAgZGMuU2V0QnJ1 c2god3guVFJBTlNQQVJFTlRfQlJVU0gpCisrICAgICAgICAgZGMuU2V0UGVuKHd4LlBlbihzZWxm Ll9ib3VuZGluZ2NvbG91cikpCisrLSAgICAgICAgZGMuRHJhd0NpcmNsZShzZWxmLldpZHRoLy8y LCBzZWxmLkhlaWdodC8vMiwgcmFkaXVzKQorKysgICAgICAgIGRjLkRyYXdDaXJjbGUoc2VsZi5X aWR0aC8vMiwgc2VsZi5IZWlnaHQvLzIsIGludChyYWRpdXMpKQorKyAKKysgCisrICAgICBkZWYg Q2lyY2xlQ29vcmRzKHNlbGYsIHJhZGl1cywgYW5nbGUsIGNlbnRlclgsIGNlbnRlclkpOgorK2Rp ZmYgLS1naXQgYS93eC9saWIvYWd3L2xhYmVsYm9vay5weSBiL3d4L2xpYi9hZ3cvbGFiZWxib29r LnB5CisraW5kZXggYjcxNmRmM2EyLi5mOGM5Y2Q1NGQgMTAwNjQ0CisrLS0tIGEvd3gvbGliL2Fn dy9sYWJlbGJvb2sucHkKKysrKysgYi93eC9saWIvYWd3L2xhYmVsYm9vay5weQorK0BAIC0xMzc2 LDEzICsxMzc2LDEzIEBAIGRlZiBPblBhaW50KHNlbGYsIGV2ZW50KToKKysgCisrICAgICAgICAg ICAgICAgICBpZiBiVXNlWWNvb3JkOgorKyAKKystICAgICAgICAgICAgICAgICAgICBpbWdYY29v cmQgPSBzZWxmLl9uSW1nU2l6ZSAvIDIKKystICAgICAgICAgICAgICAgICAgICBpbWdZY29vcmQg PSAoc3R5bGUgJiBJTkJfU0hPV19PTkxZX0lNQUdFUyBhbmQgW3BvcyArIHNlbGYuX25JbWdTaXpl IC8gMl0gb3IgW3BvcyArIGltZ1RvcFBhZGRpbmddKVswXQorKysgICAgICAgICAgICAgICAgICAg IGltZ1hjb29yZCA9IHNlbGYuX25JbWdTaXplIC8vIDIKKysrICAgICAgICAgICAgICAgICAgICBp bWdZY29vcmQgPSAoc3R5bGUgJiBJTkJfU0hPV19PTkxZX0lNQUdFUyBhbmQgW3BvcyArIHNlbGYu X25JbWdTaXplIC8vIDJdIG9yIFtwb3MgKyBpbWdUb3BQYWRkaW5nXSlbMF0KKysgCisrICAgICAg ICAgICAgICAgICBlbHNlOgorKyAKKystICAgICAgICAgICAgICAgICAgICBpbWdYY29vcmQgPSBw b3MgKyAocmVjdFdpZHRoIC8gMikgLSAoc2VsZi5fbkltZ1NpemUgLyAyKQorKy0gICAgICAgICAg ICAgICAgICAgIGltZ1ljb29yZCA9IChzdHlsZSAmIElOQl9TSE9XX09OTFlfSU1BR0VTIGFuZCBb c2VsZi5fbkltZ1NpemUgLyAyXSBvciBbaW1nVG9wUGFkZGluZ10pWzBdCisrKyAgICAgICAgICAg ICAgICAgICAgaW1nWGNvb3JkID0gcG9zICsgKHJlY3RXaWR0aCAvLyAyKSAtIChzZWxmLl9uSW1n U2l6ZSAvLyAyKQorKysgICAgICAgICAgICAgICAgICAgIGltZ1ljb29yZCA9IChzdHlsZSAmIElO Ql9TSE9XX09OTFlfSU1BR0VTIGFuZCBbc2VsZi5fbkltZ1NpemUgLy8gMl0gb3IgW2ltZ1RvcFBh ZGRpbmddKVswXQorKyAKKysgICAgICAgICAgICAgICAgIHNlbGYuX0ltYWdlTGlzdC5EcmF3KHNl bGYuX3BhZ2VzSW5mb1ZlY1tpXS5HZXRJbWFnZUluZGV4KCksIGRjLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW1nWGNvb3JkLCBpbWdZY29vcmQsCisrQEAgLTE0MDgs MTUgKzE0MDgsMTUgQEAgZGVmIE9uUGFpbnQoc2VsZiwgZXZlbnQpOgorKyAKKysgICAgICAgICAg ICAgICAgIGlmIGJVc2VZY29vcmQ6CisrIAorKy0gICAgICAgICAgICAgICAgICAgIHRleHRPZmZz ZXRYID0gKChyZWN0V2lkdGggLSB0ZXh0V2lkdGgpIC8gMiApCisrKyAgICAgICAgICAgICAgICAg ICAgdGV4dE9mZnNldFggPSAoKHJlY3RXaWR0aCAtIHRleHRXaWR0aCkgLy8gMiApCisrICAgICAg ICAgICAgICAgICAgICAgdGV4dE9mZnNldFkgPSAobm90IHN0eWxlICYgSU5CX1NIT1dfT05MWV9U RVhUICBhbmQgW3BvcyArIHNlbGYuX25JbWdTaXplICArIGltZ1RvcFBhZGRpbmcgKyAzXSBvciBc CisrLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwb3MgKyAoKHNlbGYu X25JbWdTaXplICogMiAtIHRleHRIZWlnaHQpIC8gMiApXSlbMF0KKysrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgW3BvcyArICgoc2VsZi5fbkltZ1NpemUgKiAyIC0gdGV4 dEhlaWdodCkgLy8gMiApXSlbMF0KKysgCisrICAgICAgICAgICAgICAgICBlbHNlOgorKyAKKyst ICAgICAgICAgICAgICAgICAgICB0ZXh0T2Zmc2V0WCA9IChyZWN0V2lkdGggLSB0ZXh0V2lkdGgp IC8gMiAgKyBwb3MgKyBuVGV4dFBhZGRpbmdMZWZ0CisrKyAgICAgICAgICAgICAgICAgICAgdGV4 dE9mZnNldFggPSAocmVjdFdpZHRoIC0gdGV4dFdpZHRoKSAvLyAyICArIHBvcyArIG5UZXh0UGFk ZGluZ0xlZnQKKysgICAgICAgICAgICAgICAgICAgICB0ZXh0T2Zmc2V0WSA9IChub3Qgc3R5bGUg JiBJTkJfU0hPV19PTkxZX1RFWFQgYW5kIFtzZWxmLl9uSW1nU2l6ZSArIGltZ1RvcFBhZGRpbmcg KyAzXSBvciBcCisrLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoKHNl bGYuX25JbWdTaXplICogMiAtIHRleHRIZWlnaHQpIC8gMiApXSlbMF0KKysrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgWygoc2VsZi5fbkltZ1NpemUgKiAyIC0gdGV4dEhl aWdodCkgLy8gMiApXSlbMF0KKysgCisrICAgICAgICAgICAgICAgICBkYy5TZXRUZXh0Rm9yZWdy b3VuZCh3eC5TeXN0ZW1TZXR0aW5ncy5HZXRDb2xvdXIod3guU1lTX0NPTE9VUl9XSU5ET1dURVhU KSkKKysgICAgICAgICAgICAgICAgIGRjLkRyYXdUZXh0KGZpeGVkVGV4dCwgdGV4dE9mZnNldFgs IHRleHRPZmZzZXRZKQorK0BAIC0xNTkxLDggKzE1OTEsOCBAQCBkZWYgT25QYWludChzZWxmLCBl dmVudCk6CisrICAgICAgICAgICAgICMgRHJhdyBncmFkaWVudCBpbiB0aGUgYmFja2dyb3VuZCBh cmVhCisrICAgICAgICAgICAgIHN0YXJ0Q29sb3VyID0gc2VsZi5fY29sb3Vyc01hcFtJTkJfVEFC X0FSRUFfQkFDS0dST1VORF9DT0xPVVJdCisrICAgICAgICAgICAgIGVuZENvbG91ciAgID0gQXJ0 TWFuYWdlci5HZXQoKS5MaWdodENvbG91cihzZWxmLl9jb2xvdXJzTWFwW0lOQl9UQUJfQVJFQV9C QUNLR1JPVU5EX0NPTE9VUl0sIDUwKQorKy0gICAgICAgICAgICBBcnRNYW5hZ2VyLkdldCgpLlBh aW50U3RyYWlnaHRHcmFkaWVudEJveChkYywgd3guUmVjdCgwLCAwLCBzaXplLnggLyAyLCBzaXpl LnkpLCBzdGFydENvbG91ciwgZW5kQ29sb3VyLCBGYWxzZSkKKystICAgICAgICAgICAgQXJ0TWFu YWdlci5HZXQoKS5QYWludFN0cmFpZ2h0R3JhZGllbnRCb3goZGMsIHd4LlJlY3Qoc2l6ZS54IC8g MiwgMCwgc2l6ZS54IC8gMiwgc2l6ZS55KSwgZW5kQ29sb3VyLCBzdGFydENvbG91ciwgRmFsc2Up CisrKyAgICAgICAgICAgIEFydE1hbmFnZXIuR2V0KCkuUGFpbnRTdHJhaWdodEdyYWRpZW50Qm94 KGRjLCB3eC5SZWN0KDAsIDAsIHNpemUueCAvLyAyLCBzaXplLnkpLCBzdGFydENvbG91ciwgZW5k Q29sb3VyLCBGYWxzZSkKKysrICAgICAgICAgICAgQXJ0TWFuYWdlci5HZXQoKS5QYWludFN0cmFp Z2h0R3JhZGllbnRCb3goZGMsIHd4LlJlY3Qoc2l6ZS54IC8vIDIsIDAsIHNpemUueCAvLyAyLCBz aXplLnkpLCBlbmRDb2xvdXIsIHN0YXJ0Q29sb3VyLCBGYWxzZSkKKysgCisrICAgICAgICAgZWxz ZToKKysgCisrQEAgLTE2MzgsNyArMTYzOCw3IEBAIGRlZiBPblBhaW50KHNlbGYsIGV2ZW50KToK KysgCisrICAgICAgICAgICAgIGlmIHNlbGYuSGFzQUdXRmxhZyhJTkJfU0hPV19PTkxZX1RFWFQp OgorKyAgICAgICAgICAgICAgICAgZm9udCA9IHd4LlN5c3RlbVNldHRpbmdzLkdldEZvbnQod3gu U1lTX0RFRkFVTFRfR1VJX0ZPTlQpCisrLSAgICAgICAgICAgICAgICBmb250LlNldFBvaW50U2l6 ZShmb250LkdldFBvaW50U2l6ZSgpICogc2VsZi5HZXRQYXJlbnQoKS5HZXRGb250U2l6ZU11bHRp cGxlKCkpCisrKyAgICAgICAgICAgICAgICBmb250LlNldFBvaW50U2l6ZShpbnQoZm9udC5HZXRQ b2ludFNpemUoKSAqIHNlbGYuR2V0UGFyZW50KCkuR2V0Rm9udFNpemVNdWx0aXBsZSgpKSkKKysg CisrICAgICAgICAgICAgICAgICBpZiBzZWxmLkdldFBhcmVudCgpLkdldEZvbnRCb2xkKCk6Cisr ICAgICAgICAgICAgICAgICAgICAgZm9udC5TZXRXZWlnaHQod3guRk9OVFdFSUdIVF9CT0xEKQor K0BAIC0xOTU0LDcgKzE5NTQsNyBAQCBkZWYgRHJhd1dlYkhvdmVyKHNlbGYsIGRjLCBjYXB0aW9u LCB4Q29vcmQsIHlDb29yZCwgc2VsZWN0ZWQpOgorKyAKKysgICAgICAgICAjIFJlZHJhdyB0aGUg dGV4dCB3aXRoIHVuZGVybGluZWQgZm9udAorKyAgICAgICAgIHVuZGVyTGluZWRGb250ID0gd3gu U3lzdGVtU2V0dGluZ3MuR2V0Rm9udCh3eC5TWVNfREVGQVVMVF9HVUlfRk9OVCkKKystICAgICAg ICB1bmRlckxpbmVkRm9udC5TZXRQb2ludFNpemUodW5kZXJMaW5lZEZvbnQuR2V0UG9pbnRTaXpl KCkgKiBzZWxmLkdldFBhcmVudCgpLkdldEZvbnRTaXplTXVsdGlwbGUoKSkKKysrICAgICAgICB1 bmRlckxpbmVkRm9udC5TZXRQb2ludFNpemUoaW50KHVuZGVyTGluZWRGb250LkdldFBvaW50U2l6 ZSgpICogc2VsZi5HZXRQYXJlbnQoKS5HZXRGb250U2l6ZU11bHRpcGxlKCkpKQorKyAgICAgICAg IGlmIHNlbGYuR2V0UGFyZW50KCkuR2V0Rm9udEJvbGQoKToKKysgICAgICAgICAgICAgdW5kZXJM aW5lZEZvbnQuU2V0V2VpZ2h0KHd4LkZPTlRXRUlHSFRfQk9MRCkKKysgICAgICAgICBlbGlmIHNl bGYuSGFzQUdXRmxhZyhJTkJfQk9MRF9UQUJfU0VMRUNUSU9OKSBhbmQgc2VsZWN0ZWQ6CisrQEAg LTIwNTAsNyArMjA1MCw3IEBAIGRlZiBEcmF3TGFiZWwoc2VsZiwgZGMsIHJlY3QsIHRleHQsIGJt cCwgaW1nSW5mbywgb3JpZW50YXRpb25MZWZ0LCBpbWdJZHgsIHNlbGVjCisrICAgICAgICAgaW1n UmVjdCA9IHd4LlJlY3QoKnJlY3QpCisrIAorKyAgICAgICAgIGZvbnQgPSB3eC5TeXN0ZW1TZXR0 aW5ncy5HZXRGb250KHd4LlNZU19ERUZBVUxUX0dVSV9GT05UKQorKy0gICAgICAgIGZvbnQuU2V0 UG9pbnRTaXplKGZvbnQuR2V0UG9pbnRTaXplKCkgKiBzZWxmLkdldFBhcmVudCgpLkdldEZvbnRT aXplTXVsdGlwbGUoKSkKKysrICAgICAgICBmb250LlNldFBvaW50U2l6ZShpbnQoZm9udC5HZXRQ b2ludFNpemUoKSAqIHNlbGYuR2V0UGFyZW50KCkuR2V0Rm9udFNpemVNdWx0aXBsZSgpKSkKKysg CisrICAgICAgICAgaWYgc2VsZi5HZXRQYXJlbnQoKS5HZXRGb250Qm9sZCgpOgorKyAgICAgICAg ICAgICBmb250LlNldFdlaWdodCh3eC5GT05UV0VJR0hUX0JPTEQpCisrQEAgLTIwNjksNyArMjA2 OSw3IEBAIGRlZiBEcmF3TGFiZWwoc2VsZiwgZGMsIHJlY3QsIHRleHQsIGJtcCwgaW1nSW5mbywg b3JpZW50YXRpb25MZWZ0LCBpbWdJZHgsIHNlbGVjCisrIAorKyAgICAgICAgICMgVGV4dCBib3Vu ZGluZyByZWN0YW5nbGUKKysgICAgICAgICB0ZXh0UmVjdC54ICs9IG5QYWRkaW5nCisrLSAgICAg ICAgdGV4dFJlY3QueSA9IHJlY3QueSArIChyZWN0LmhlaWdodCAtIGgpLzIKKysrICAgICAgICB0 ZXh0UmVjdC55ID0gcmVjdC55ICsgKHJlY3QuaGVpZ2h0IC0gaCkvLzIKKysgICAgICAgICB0ZXh0 UmVjdC53aWR0aCA9IHJlY3Qud2lkdGggLSAyICogblBhZGRpbmcKKysgCisrICAgICAgICAgaWYg Ym1wLklzT2soKSBhbmQgbm90IHNlbGYuSGFzQUdXRmxhZyhJTkJfU0hPV19PTkxZX1RFWFQpOgor K0BAIC0yMDg2LDcgKzIwODYsNyBAQCBkZWYgRHJhd0xhYmVsKHNlbGYsIGRjLCByZWN0LCB0ZXh0 LCBibXAsIGltZ0luZm8sIG9yaWVudGF0aW9uTGVmdCwgaW1nSWR4LCBzZWxlYworKyAKKysgICAg ICAgICAgICAgaW1nUmVjdC54ICs9IG5QYWRkaW5nCisrICAgICAgICAgICAgIGltZ1JlY3Qud2lk dGggPSBibXAuR2V0V2lkdGgoKQorKy0gICAgICAgICAgICBpbWdSZWN0LnkgPSByZWN0LnkgKyAo cmVjdC5oZWlnaHQgLSBibXAuR2V0SGVpZ2h0KCkpLzIKKysrICAgICAgICAgICAgaW1nUmVjdC55 ID0gcmVjdC55ICsgKHJlY3QuaGVpZ2h0IC0gYm1wLkdldEhlaWdodCgpKS8vMgorKyAgICAgICAg ICAgICBpbWdSZWN0LmhlaWdodCA9IGJtcC5HZXRIZWlnaHQoKQorKyAKKysgICAgICAgICAjIERy YXcgYm91bmRpbmcgcmVjdGFuZ2xlCisrQEAgLTI0OTYsNyArMjQ5Niw3IEBAIGRlZiBSZXNpemVU YWJBcmVhKHNlbGYpOgorKyAgICAgICAgICAgICBkYyA9IHd4Lk1lbW9yeURDKCkKKysgICAgICAg ICAgICAgZGMuU2VsZWN0T2JqZWN0KHd4LkJpdG1hcCgxLCAxKSkKKysgICAgICAgICAgICAgZm9u dCA9IHd4LlN5c3RlbVNldHRpbmdzLkdldEZvbnQod3guU1lTX0RFRkFVTFRfR1VJX0ZPTlQpCisr LSAgICAgICAgICAgIGZvbnQuU2V0UG9pbnRTaXplKGZvbnQuR2V0UG9pbnRTaXplKCkqc2VsZi5f Zm9udFNpemVNdWx0aXBsZSkKKysrICAgICAgICAgICAgZm9udC5TZXRQb2ludFNpemUoaW50KGZv bnQuR2V0UG9pbnRTaXplKCkqc2VsZi5fZm9udFNpemVNdWx0aXBsZSkpCisrICAgICAgICAgICAg IGlmIHNlbGYuR2V0Rm9udEJvbGQoKSBvciBhZ3dTdHlsZSAmIElOQl9CT0xEX1RBQl9TRUxFQ1RJ T046CisrICAgICAgICAgICAgICAgICBmb250LlNldFdlaWdodCh3eC5GT05UV0VJR0hUX0JPTEQp CisrICAgICAgICAgICAgIGRjLlNldEZvbnQoZm9udCkKKytkaWZmIC0tZ2l0IGEvd3gvbGliL2Fn dy9wZWFrbWV0ZXIucHkgYi93eC9saWIvYWd3L3BlYWttZXRlci5weQorK2luZGV4IDA1NWRiZWY4 MS4uYTVmODhhOWQ1IDEwMDY0NAorKy0tLSBhL3d4L2xpYi9hZ3cvcGVha21ldGVyLnB5CisrKysr IGIvd3gvbGliL2Fndy9wZWFrbWV0ZXIucHkKKytAQCAtNzg0LDcgKzc4NCw3IEBAIGRlZiBEcmF3 SG9yekJhbmQoc2VsZiwgZGMsIHJlY3QpOgorKyAgICAgICAgICAgICAgICAgbWF4V2lkdGggPSBz aXplLngqaG9yekJhbmRzCisrICAgICAgICAgICAgICAgICBwb2ludHMgPSBbd3guUG9pbnQoKSBm b3IgaSBpbiByYW5nZSgyKV0KKysgICAgICAgICAgICAgICAgIHBvaW50c1swXS55ID0gcmVjdFBy ZXYuR2V0VG9wUmlnaHQoKS55IC0geURlY2FsCisrLSAgICAgICAgICAgICAgICBwb2ludHNbMF0u eCA9IHJlY3RQcmV2LkdldEJvdHRvbUxlZnQoKS54ICsgc2VsZi5fbWV0ZXJEYXRhW3ZlcnRdLl9m YWxsb2ZmKm1heFdpZHRoL3NlbGYuX21heFZhbHVlCisrKyAgICAgICAgICAgICAgICBwb2ludHNb MF0ueCA9IHJlY3RQcmV2LkdldEJvdHRvbUxlZnQoKS54ICsgc2VsZi5fbWV0ZXJEYXRhW3ZlcnRd Ll9mYWxsb2ZmKm1heFdpZHRoLy9zZWxmLl9tYXhWYWx1ZQorKyAgICAgICAgICAgICAgICAgcG9p bnRzWzFdLnkgPSByZWN0UHJldi5HZXRCb3R0b21MZWZ0KCkueSArIHlEZWNhbAorKyAgICAgICAg ICAgICAgICAgcG9pbnRzWzFdLnggPSBwb2ludHNbMF0ueAorKyAgICAgICAgICAgICAgICAgZGMu U2V0UGVuKHBlbikKKytkaWZmIC0tZ2l0IGEvd3gvbGliL2Fndy9weWdhdWdlLnB5IGIvd3gvbGli L2Fndy9weWdhdWdlLnB5CisraW5kZXggYmFiNDU5YTNhLi5iODY1NDQzNmEgMTAwNjQ0CisrLS0t IGEvd3gvbGliL2Fndy9weWdhdWdlLnB5CisrKysrIGIvd3gvbGliL2Fndy9weWdhdWdlLnB5Cisr QEAgLTM0NCw3ICszNDQsNyBAQCBkZWYgT25QYWludChzZWxmLCBldmVudCk6CisrICAgICAgICAg ICAgICAgICBjMSxjMiA9IGdyYWRpZW50CisrICAgICAgICAgICAgICAgICB3ID0gcmVjdC53aWR0 aCAqIChmbG9hdChzZWxmLl92YWx1ZVNvcnRlZFtpXSkgLyBzZWxmLl9yYW5nZSkKKysgICAgICAg ICAgICAgICAgIHIgPSBjb3B5LmNvcHkocmVjdCkKKystICAgICAgICAgICAgICAgIHIud2lkdGgg PSB3CisrKyAgICAgICAgICAgICAgICByLndpZHRoID0gaW50KHcpCisrICAgICAgICAgICAgICAg ICBkYy5HcmFkaWVudEZpbGxMaW5lYXIociwgYzEsIGMyLCB3eC5FQVNUKQorKyAgICAgICAgIGVs c2U6CisrICAgICAgICAgICAgIGZvciBpLCBjb2xvdXIgaW4gZW51bWVyYXRlKHNlbGYuX2JhckNv bG91clNvcnRlZCk6CisrQEAgLTM1Miw3ICszNTIsNyBAQCBkZWYgT25QYWludChzZWxmLCBldmVu dCk6CisrICAgICAgICAgICAgICAgICBkYy5TZXRQZW4od3guUGVuKGNvbG91cikpCisrICAgICAg ICAgICAgICAgICB3ID0gcmVjdC53aWR0aCAqIChmbG9hdChzZWxmLl92YWx1ZVNvcnRlZFtpXSkg LyBzZWxmLl9yYW5nZSkKKysgICAgICAgICAgICAgICAgIHIgPSBjb3B5LmNvcHkocmVjdCkKKyst ICAgICAgICAgICAgICAgIHIud2lkdGggPSB3CisrKyAgICAgICAgICAgICAgICByLndpZHRoID0g aW50KHcpCisrICAgICAgICAgICAgICAgICBkYy5EcmF3UmVjdGFuZ2xlKHIpCisrIAorKyAKKytk aWZmIC0tZ2l0IGEvd3gvbGliL2Fndy9yaWJib24vYXJ0X2F1aS5weSBiL3d4L2xpYi9hZ3cvcmli Ym9uL2FydF9hdWkucHkKKytpbmRleCBhMWQyNTU4NDMuLjMxZmVkZjQ4NyAxMDA2NDQKKystLS0g YS93eC9saWIvYWd3L3JpYmJvbi9hcnRfYXVpLnB5CisrKysrIGIvd3gvbGliL2Fndy9yaWJib24v YXJ0X2F1aS5weQorK0BAIC0zOTAsNyArMzkwLDcgQEAgZGVmIERyYXdUYWIoc2VsZiwgZGMsIHdu ZCwgdGFiKToKKysgICAgICAgICAgICAgZ3JhZF9yZWN0ID0gd3guUmVjdCgqdGFiLnJlY3QpCisr ICAgICAgICAgICAgIGdyYWRfcmVjdC5oZWlnaHQgLT0gNAorKyAgICAgICAgICAgICBncmFkX3Jl Y3Qud2lkdGggLT0gMQorKy0gICAgICAgICAgICBncmFkX3JlY3QuaGVpZ2h0IC89IDIKKysrICAg ICAgICAgICAgZ3JhZF9yZWN0LmhlaWdodCAvLz0gMgorKyAgICAgICAgICAgICBncmFkX3JlY3Qu eSA9IGdyYWRfcmVjdC55ICsgdGFiLnJlY3QuaGVpZ2h0IC0gZ3JhZF9yZWN0LmhlaWdodCAtIDEK KysgICAgICAgICAgICAgZGMuU2V0QnJ1c2goc2VsZi5fdGFiX2FjdGl2ZV90b3BfYmFja2dyb3Vu ZF9icnVzaCkKKysgICAgICAgICAgICAgZGMuRHJhd1JlY3RhbmdsZSh0YWIucmVjdC54LCB0YWIu cmVjdC55ICsgMywgdGFiLnJlY3Qud2lkdGggLSAxLCBncmFkX3JlY3QueSAtIHRhYi5yZWN0Lnkg LSAzKQorK0BAIC00MDEsNyArNDAxLDcgQEAgZGVmIERyYXdUYWIoc2VsZiwgZGMsIHduZCwgdGFi KToKKysgICAgICAgICAgICAgYnRtX3JlY3QgPSB3eC5SZWN0KCp0YWIucmVjdCkKKysgICAgICAg ICAgICAgYnRtX3JlY3QuaGVpZ2h0IC09IDQKKysgICAgICAgICAgICAgYnRtX3JlY3Qud2lkdGgg LT0gMQorKy0gICAgICAgICAgICBidG1fcmVjdC5oZWlnaHQgLz0gMgorKysgICAgICAgICAgICBi dG1fcmVjdC5oZWlnaHQgLy89IDIKKysgICAgICAgICAgICAgYnRtX3JlY3QueSA9IGJ0bV9yZWN0 LnkgKyB0YWIucmVjdC5oZWlnaHQgLSBidG1fcmVjdC5oZWlnaHQgLSAxCisrICAgICAgICAgICAg IGRjLlNldEJydXNoKHNlbGYuX3RhYl9ob3Zlcl9iYWNrZ3JvdW5kX2JydXNoKQorKyAgICAgICAg ICAgICBkYy5EcmF3UmVjdGFuZ2xlKGJ0bV9yZWN0LngsIGJ0bV9yZWN0LnksIGJ0bV9yZWN0Lndp ZHRoLCBidG1fcmVjdC5oZWlnaHQpCisrQEAgLTQzNCw4ICs0MzQsOCBAQCBkZWYgRHJhd1RhYihz ZWxmLCBkYywgd25kLCB0YWIpOgorKyAgICAgICAgICAgICBpY29uID0gdGFiLnBhZ2UuR2V0SWNv bigpCisrICAgICAgICAgICAgIGlmIHNlbGYuX2ZsYWdzICYgUklCQk9OX0JBUl9TSE9XX1BBR0Vf TEFCRUxTID09IDA6CisrICAgICAgICAgICAgICAgICBpZiBpY29uLklzT2soKToKKystICAgICAg ICAgICAgICAgICAgICB4ID0gdGFiLnJlY3QueCArICh0YWIucmVjdC53aWR0aCAtIGljb24uR2V0 V2lkdGgoKSkgLyAyCisrLSAgICAgICAgICAgICAgICAgICAgZGMuRHJhd0JpdG1hcChpY29uLCB4 LCB0YWIucmVjdC55ICsgMSArICh0YWIucmVjdC5oZWlnaHQgLSAxIC0gaWNvbi5HZXRIZWlnaHQo KSkgLyAyLCBUcnVlKQorKysgICAgICAgICAgICAgICAgICAgIHggPSB0YWIucmVjdC54ICsgKHRh Yi5yZWN0LndpZHRoIC0gaWNvbi5HZXRXaWR0aCgpKSAvLyAyCisrKyAgICAgICAgICAgICAgICAg ICAgZGMuRHJhd0JpdG1hcChpY29uLCB4LCB0YWIucmVjdC55ICsgMSArICh0YWIucmVjdC5oZWln aHQgLSAxIC0gaWNvbi5HZXRIZWlnaHQoKSkgLy8gMiwgVHJ1ZSkKKysgCisrICAgICAgICAgaWYg c2VsZi5fZmxhZ3MgJiBSSUJCT05fQkFSX1NIT1dfUEFHRV9MQUJFTFM6CisrICAgICAgICAgICAg IGxhYmVsID0gdGFiLnBhZ2UuR2V0TGFiZWwoKQorK0BAIC00NTAsNyArNDUwLDcgQEAgZGVmIERy YXdUYWIoc2VsZiwgZGMsIHduZCwgdGFiKToKKysgICAgICAgICAgICAgICAgICAgICBvZmZzZXQg Kz0gaWNvbi5HZXRXaWR0aCgpICsgMgorKyAKKysgICAgICAgICAgICAgICAgIHRleHRfd2lkdGgs IHRleHRfaGVpZ2h0ID0gZGMuR2V0VGV4dEV4dGVudChsYWJlbCkKKystICAgICAgICAgICAgICAg IHggPSAodGFiLnJlY3Qud2lkdGggLSAyIC0gdGV4dF93aWR0aCAtIG9mZnNldCkgLyAyCisrKyAg ICAgICAgICAgICAgICB4ID0gKHRhYi5yZWN0LndpZHRoIC0gMiAtIHRleHRfd2lkdGggLSBvZmZz ZXQpIC8vIDIKKysgICAgICAgICAgICAgICAgIGlmIHggPiA4OgorKyAgICAgICAgICAgICAgICAg ICAgIHggPSA4CisrICAgICAgICAgICAgICAgICBlbGlmIHggPCAxOgorK0BAIC00NTgsNyArNDU4 LDcgQEAgZGVmIERyYXdUYWIoc2VsZiwgZGMsIHduZCwgdGFiKToKKysgCisrICAgICAgICAgICAg ICAgICB3aWR0aCA9IHRhYi5yZWN0LndpZHRoIC0geCAtIDIKKysgICAgICAgICAgICAgICAgIHgg Kz0gdGFiLnJlY3QueCArIG9mZnNldAorKy0gICAgICAgICAgICAgICAgeSA9IHRhYi5yZWN0Lnkg KyAodGFiLnJlY3QuaGVpZ2h0IC0gdGV4dF9oZWlnaHQpIC8gMgorKysgICAgICAgICAgICAgICAg eSA9IHRhYi5yZWN0LnkgKyAodGFiLnJlY3QuaGVpZ2h0IC0gdGV4dF9oZWlnaHQpIC8vIDIKKysg CisrICAgICAgICAgICAgICAgICBpZiBpY29uLklzT2soKToKKysgICAgICAgICAgICAgICAgICAg ICBkYy5EcmF3Qml0bWFwKGljb24sIHggLSBvZmZzZXQsIHRhYi5yZWN0LnkgKyAodGFiLnJlY3Qu aGVpZ2h0IC0gaWNvbi5HZXRIZWlnaHQoKSkgLyAyLCBUcnVlKQorK0BAIC04OTIsOCArODkyLDgg QEAgZGVmIERyYXdNaW5pbWlzZWRQYW5lbChzZWxmLCBkYywgd25kLCByZWN0LCBiaXRtYXApOgor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcGFnZV9ob3Zlcl9iYWNr Z3JvdW5kX2dyYWRpZW50X2NvbG91ciwgd3guU09VVEgpCisrIAorKyAgICAgICAgIGlmIGJpdG1h cC5Jc09rKCk6CisrLSAgICAgICAgICAgIGRjLkRyYXdCaXRtYXAoYml0bWFwLCBwcmV2aWV3Lngg KyAocHJldmlldy53aWR0aCAtIGJpdG1hcC5HZXRXaWR0aCgpKSAvIDIsCisrLSAgICAgICAgICAg ICAgICAgICAgICAgICAgcHJldmlldy55ICsgKHByZXZpZXcuaGVpZ2h0IC0gYml0bWFwLkdldEhl aWdodCgpKSAvIDIsIFRydWUpCisrKyAgICAgICAgICAgIGRjLkRyYXdCaXRtYXAoYml0bWFwLCBw cmV2aWV3LnggKyAocHJldmlldy53aWR0aCAtIGJpdG1hcC5HZXRXaWR0aCgpKSAvLyAyLAorKysg ICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpZXcueSArIChwcmV2aWV3LmhlaWdodCAtIGJp dG1hcC5HZXRIZWlnaHQoKSkgLy8gMiwgVHJ1ZSkKKysgCisrIAorKyAgICAgZGVmIERyYXdQYXJ0 aWFsUGFuZWxCYWNrZ3JvdW5kKHNlbGYsIGRjLCB3bmQsIHJlY3QpOgorK0BAIC0xMDI0LDcgKzEw MjQsNyBAQCBkZWYgRHJhd0dhbGxlcnlCdXR0b24oc2VsZiwgZGMsIHJlY3QsIHN0YXRlLCBiaXRt YXBzKToKKysgICAgICAgICAgICAgZGMuRHJhd1JlY3RhbmdsZShyZWR1Y2VkX3JlY3QueCwgcmVk dWNlZF9yZWN0LnksIHJlZHVjZWRfcmVjdC53aWR0aCwgcmVkdWNlZF9yZWN0LmhlaWdodCkKKysg ICAgICAgICAgICAgYnRuX2JpdG1hcCA9IGJpdG1hcHNbM10KKysgCisrLSAgICAgICAgZGMuRHJh d0JpdG1hcChidG5fYml0bWFwLCByZWR1Y2VkX3JlY3QueCArIHJlZHVjZWRfcmVjdC53aWR0aCAv IDIgLSAyLCAocmVjdC55ICsgcmVjdC5oZWlnaHQgLyAyKSAtIDIsIFRydWUpCisrKyAgICAgICAg ZGMuRHJhd0JpdG1hcChidG5fYml0bWFwLCByZWR1Y2VkX3JlY3QueCArIHJlZHVjZWRfcmVjdC53 aWR0aCAvLyAyIC0gMiwgKHJlY3QueSArIHJlY3QuaGVpZ2h0IC8vIDIpIC0gMiwgVHJ1ZSkKKysg CisrIAorKyAgICAgZGVmIERyYXdHYWxsZXJ5SXRlbUJhY2tncm91bmQoc2VsZiwgZGMsIHduZCwg cmVjdCwgaXRlbSk6CisrQEAgLTEyNzcsNyArMTI3Nyw3IEBAIGRlZiBEcmF3VG9vbChzZWxmLCBk Yywgd25kLCByZWN0LCBiaXRtYXAsIGtpbmQsIHN0YXRlKToKKysgICAgICAgICAgICAgaWYgaXNf c3BsaXRfaHlicmlkOgorKyAgICAgICAgICAgICAgICAgZGMuRHJhd0xpbmUocmVjdC54ICsgYXZh aWxfd2lkdGggKyAxLCByZWN0LnksIHJlY3QueCArIGF2YWlsX3dpZHRoICsgMSwgcmVjdC55ICsg cmVjdC5oZWlnaHQpCisrIAorKy0gICAgICAgICAgICBkYy5EcmF3Qml0bWFwKHNlbGYuX3Rvb2xi YXJfZHJvcF9iaXRtYXAsIGJnX3JlY3QueCArIGF2YWlsX3dpZHRoICsgMiwgYmdfcmVjdC55ICsg KGJnX3JlY3QuaGVpZ2h0IC8gMikgLSAyLCBUcnVlKQorKysgICAgICAgICAgICBkYy5EcmF3Qml0 bWFwKHNlbGYuX3Rvb2xiYXJfZHJvcF9iaXRtYXAsIGJnX3JlY3QueCArIGF2YWlsX3dpZHRoICsg MiwgYmdfcmVjdC55ICsgKGJnX3JlY3QuaGVpZ2h0IC8vIDIpIC0gMiwgVHJ1ZSkKKysgCisrLSAg ICAgICAgZGMuRHJhd0JpdG1hcChiaXRtYXAsIGJnX3JlY3QueCArIChhdmFpbF93aWR0aCAtIGJp dG1hcC5HZXRXaWR0aCgpKSAvIDIsIGJnX3JlY3QueSArIChiZ19yZWN0LmhlaWdodCAtIGJpdG1h cC5HZXRIZWlnaHQoKSkgLyAyLCBUcnVlKQorKysgICAgICAgIGRjLkRyYXdCaXRtYXAoYml0bWFw LCBiZ19yZWN0LnggKyAoYXZhaWxfd2lkdGggLSBiaXRtYXAuR2V0V2lkdGgoKSkgLy8gMiwgYmdf cmVjdC55ICsgKGJnX3JlY3QuaGVpZ2h0IC0gYml0bWFwLkdldEhlaWdodCgpKSAvLyAyLCBUcnVl KQorKyAKKytkaWZmIC0tZ2l0IGEvd3gvbGliL2Fndy9yaWJib24vYXJ0X2ludGVybmFsLnB5IGIv d3gvbGliL2Fndy9yaWJib24vYXJ0X2ludGVybmFsLnB5CisraW5kZXggNGE4ZGM3Y2UwLi43OGU4 ZjNmZTQgMTAwNjQ0CisrLS0tIGEvd3gvbGliL2Fndy9yaWJib24vYXJ0X2ludGVybmFsLnB5Cisr KysrIGIvd3gvbGliL2Fndy9yaWJib24vYXJ0X2ludGVybmFsLnB5CisrQEAgLTMyLDkgKzMyLDkg QEAgZGVmIFJpYmJvbkludGVycG9sYXRlQ29sb3VyKHN0YXJ0X2NvbG91ciwgZW5kX2NvbG91ciwg cG9zaXRpb24sIHN0YXJ0X3Bvc2l0aW9uLAorKyAgICAgciA9IGVuZF9jb2xvdXIuUmVkKCkgLSBz dGFydF9jb2xvdXIuUmVkKCkKKysgICAgIGcgPSBlbmRfY29sb3VyLkdyZWVuKCkgLSBzdGFydF9j b2xvdXIuR3JlZW4oKQorKyAgICAgYiA9IGVuZF9jb2xvdXIuQmx1ZSgpIC0gc3RhcnRfY29sb3Vy LkJsdWUoKQorKy0gICAgciA9IHN0YXJ0X2NvbG91ci5SZWQoKSAgICsgKCgociAqIHBvc2l0aW9u ICogMTAwKSAvIGVuZF9wb3NpdGlvbikgLyAxMDApCisrLSAgICBnID0gc3RhcnRfY29sb3VyLkdy ZWVuKCkgKyAoKChnICogcG9zaXRpb24gKiAxMDApIC8gZW5kX3Bvc2l0aW9uKSAvIDEwMCkKKyst ICAgIGIgPSBzdGFydF9jb2xvdXIuQmx1ZSgpICArICgoKGIgKiBwb3NpdGlvbiAqIDEwMCkgLyBl bmRfcG9zaXRpb24pIC8gMTAwKQorKysgICAgciA9IHN0YXJ0X2NvbG91ci5SZWQoKSAgICsgKCgo ciAqIHBvc2l0aW9uICogMTAwKSAvLyBlbmRfcG9zaXRpb24pIC8vIDEwMCkKKysrICAgIGcgPSBz dGFydF9jb2xvdXIuR3JlZW4oKSArICgoKGcgKiBwb3NpdGlvbiAqIDEwMCkgLy8gZW5kX3Bvc2l0 aW9uKSAvLyAxMDApCisrKyAgICBiID0gc3RhcnRfY29sb3VyLkJsdWUoKSAgKyAoKChiICogcG9z aXRpb24gKiAxMDApIC8vIGVuZF9wb3NpdGlvbikgLy8gMTAwKQorKyAKKysgICAgIHJldHVybiB3 eC5Db2xvdXIociwgZywgYikKKysgCisrQEAgLTYxLDkgKzYxLDkgQEAgZGVmIFJpYmJvbkRyYXdQ YXJhbGxlbEdyYWRpZW50TGluZXMoZGMsIG5saW5lcywgbGluZV9vcmlnaW5zLCBzdGVweCwgc3Rl cHksIG51bXMKKysgICAgIGJkID0gZW5kX2NvbG91ci5CbHVlKCkgLSBzdGFydF9jb2xvdXIuQmx1 ZSgpCisrIAorKyAgICAgZm9yIHN0ZXAgaW4gcmFuZ2UobnVtc3RlcHMpOgorKy0gICAgICAgIHIg PSBzdGFydF9jb2xvdXIuUmVkKCkgKyAoKChzdGVwKnJkKjEwMCkvbnVtc3RlcHMpLzEwMCkKKyst ICAgICAgICBnID0gc3RhcnRfY29sb3VyLkdyZWVuKCkgKyAoKChzdGVwKmdkKjEwMCkvbnVtc3Rl cHMpLzEwMCkKKystICAgICAgICBiID0gc3RhcnRfY29sb3VyLkJsdWUoKSArICgoKHN0ZXAqYmQq MTAwKS9udW1zdGVwcykvMTAwKQorKysgICAgICAgIHIgPSBzdGFydF9jb2xvdXIuUmVkKCkgKyAo KChzdGVwKnJkKjEwMCkvL251bXN0ZXBzKS8vMTAwKQorKysgICAgICAgIGcgPSBzdGFydF9jb2xv dXIuR3JlZW4oKSArICgoKHN0ZXAqZ2QqMTAwKS8vbnVtc3RlcHMpLy8xMDApCisrKyAgICAgICAg YiA9IHN0YXJ0X2NvbG91ci5CbHVlKCkgKyAoKChzdGVwKmJkKjEwMCkvL251bXN0ZXBzKS8vMTAw KQorKyAKKysgICAgICAgICBwID0gd3guUGVuKHd4LkNvbG91cihyLCBnLCBiKSkKKysgICAgICAg ICBkYy5TZXRQZW4ocCkKKytkaWZmIC0tZ2l0IGEvd3gvbGliL2Fndy9yaWJib24vYXJ0X21zdy5w eSBiL3d4L2xpYi9hZ3cvcmliYm9uL2FydF9tc3cucHkKKytpbmRleCBlNzMxN2Q1OWIuLjAwYzNk ZmUyYiAxMDA2NDQKKystLS0gYS93eC9saWIvYWd3L3JpYmJvbi9hcnRfbXN3LnB5CisrKysrIGIv d3gvbGliL2Fndy9yaWJib24vYXJ0X21zdy5weQorK0BAIC05ODIsNyArOTgyLDcgQEAgZGVmIERy YXdUYWIoc2VsZiwgZGMsIHduZCwgdGFiKToKKysgICAgICAgICAgICAgICAgIGJhY2tncm91bmQu d2lkdGggLT0gNAorKyAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC5oZWlnaHQgLT0gMworKyAg ICAgICAgICAgICAgICAgaCA9IGJhY2tncm91bmQuaGVpZ2h0CisrLSAgICAgICAgICAgICAgICBi YWNrZ3JvdW5kLmhlaWdodCAvPSAyCisrKyAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLmhlaWdo dCAvLz0gMgorKyAgICAgICAgICAgICAgICAgZGMuR3JhZGllbnRGaWxsTGluZWFyKGJhY2tncm91 bmQsIHNlbGYuX3RhYl9ob3Zlcl9iYWNrZ3JvdW5kX3RvcF9jb2xvdXIsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fdGFiX2hvdmVyX2JhY2tncm91bmRfdG9w X2dyYWRpZW50X2NvbG91ciwgd3guU09VVEgpCisrIAorK0BAIC0xMDI0LDkgKzEwMjQsOSBAQCBk ZWYgRHJhd1RhYihzZWxmLCBkYywgd25kLCB0YWIpOgorKyAgICAgICAgICAgICBpZiBpY29uLklz T2soKToKKysgICAgICAgICAgICAgICAgIHggPSB0YWIucmVjdC54ICsgNAorKyAgICAgICAgICAg ICAgICAgaWYgc2VsZi5fZmxhZ3MgJiBSSUJCT05fQkFSX1NIT1dfUEFHRV9MQUJFTFMgPT0gMDoK KystICAgICAgICAgICAgICAgICAgICB4ID0gdGFiLnJlY3QueCArICh0YWIucmVjdC53aWR0aCAt IGljb24uR2V0V2lkdGgoKSkgLyAyCisrKyAgICAgICAgICAgICAgICAgICAgeCA9IHRhYi5yZWN0 LnggKyAodGFiLnJlY3Qud2lkdGggLSBpY29uLkdldFdpZHRoKCkpIC8vIDIKKysgCisrLSAgICAg ICAgICAgICAgICBkYy5EcmF3Qml0bWFwKGljb24sIHgsIHRhYi5yZWN0LnkgKyAxICsgKHRhYi5y ZWN0LmhlaWdodCAtIDEgLSBpY29uLkdldEhlaWdodCgpKSAvIDIsIFRydWUpCisrKyAgICAgICAg ICAgICAgICBkYy5EcmF3Qml0bWFwKGljb24sIHgsIHRhYi5yZWN0LnkgKyAxICsgKHRhYi5yZWN0 LmhlaWdodCAtIDEgLSBpY29uLkdldEhlaWdodCgpKSAvLyAyLCBUcnVlKQorKyAKKysgICAgICAg ICBpZiBzZWxmLl9mbGFncyAmIFJJQkJPTl9CQVJfU0hPV19QQUdFX0xBQkVMUzoKKysgICAgICAg ICAgICAgbGFiZWwgPSB0YWIucGFnZS5HZXRMYWJlbCgpCisrQEAgLTEwNDMsMTMgKzEwNDMsMTMg QEAgZGVmIERyYXdUYWIoc2VsZiwgZGMsIHduZCwgdGFiKToKKysgICAgICAgICAgICAgICAgICAg ICB4ICs9IDMgKyB0YWIucGFnZS5HZXRJY29uKCkuR2V0V2lkdGgoKQorKyAgICAgICAgICAgICAg ICAgICAgIHdpZHRoIC09IDMgKyB0YWIucGFnZS5HZXRJY29uKCkuR2V0V2lkdGgoKQorKyAKKyst ICAgICAgICAgICAgICAgIHkgPSB0YWIucmVjdC55ICsgKHRhYi5yZWN0LmhlaWdodCAtIHRleHRf aGVpZ2h0KSAvIDIKKysrICAgICAgICAgICAgICAgIHkgPSB0YWIucmVjdC55ICsgKHRhYi5yZWN0 LmhlaWdodCAtIHRleHRfaGVpZ2h0KSAvLyAyCisrIAorKyAgICAgICAgICAgICAgICAgaWYgd2lk dGggPD0gdGV4dF93aWR0aDoKKysgICAgICAgICAgICAgICAgICAgICBkYy5TZXRDbGlwcGluZ1Jl Z2lvbih4LCB0YWIucmVjdC55LCB3aWR0aCwgdGFiLnJlY3QuaGVpZ2h0KQorKyAgICAgICAgICAg ICAgICAgICAgIGRjLkRyYXdUZXh0KGxhYmVsLCB4LCB5KQorKyAgICAgICAgICAgICAgICAgZWxz ZToKKystICAgICAgICAgICAgICAgICAgICBkYy5EcmF3VGV4dChsYWJlbCwgeCArICh3aWR0aCAt IHRleHRfd2lkdGgpIC8gMiArIDEsIHkpCisrKyAgICAgICAgICAgICAgICAgICAgZGMuRHJhd1Rl eHQobGFiZWwsIHggKyAod2lkdGggLSB0ZXh0X3dpZHRoKSAvLyAyICsgMSwgeSkKKysgCisrIAor KyAgICAgZGVmIERyYXdUYWJTZXBhcmF0b3Ioc2VsZiwgZGMsIHduZCwgcmVjdCwgdmlzaWJpbGl0 eSk6CisrQEAgLTEwOTMsNyArMTA5Myw3IEBAIGRlZiBSZWFsbHlEcmF3VGFiU2VwYXJhdG9yKHNl bGYsIHduZCwgcmVjdCwgdmlzaWJpbGl0eSk6CisrICAgICAgICAgZGMgPSB3eC5NZW1vcnlEQyhz ZWxmLl9jYWNoZWRfdGFiX3NlcGFyYXRvcikKKysgICAgICAgICBzZWxmLkRyYXdUYWJDdHJsQmFj a2dyb3VuZChkYywgd25kLCByZWN0KQorKyAKKystICAgICAgICB4ID0gcmVjdC54ICsgcmVjdC53 aWR0aCAvIDIKKysrICAgICAgICB4ID0gcmVjdC54ICsgcmVjdC53aWR0aCAvLyAyCisrICAgICAg ICAgaCA9IGZsb2F0KHJlY3QuaGVpZ2h0IC0gMSkKKysgCisrICAgICAgICAgcjEgPSBzZWxmLl90 YWJfY3RybF9iYWNrZ3JvdW5kX2JydXNoLkdldENvbG91cigpLlJlZCgpICogKDEuMCAtIHZpc2li aWxpdHkpICsgMC41CisrQEAgLTExNDYsNyArMTE0Niw3IEBAIGRlZiBEcmF3UGFydGlhbFBhZ2VC YWNrZ3JvdW5kMShzZWxmLCBkYywgd25kLCByZWN0LCBwYWdlLCBvZmZzZXQsIGhvdmVyZWQ9RmFs c2UpCisrIAorKyAgICAgICAgICMgdXBwZXJfcmVjdCwgbG93ZXJfcmVjdCwgcGFpbnRfcmVjdCBh cmUgYWxsIGluIHBhZ2UgY28tb3JkaW5hdGVzCisrICAgICAgICAgdXBwZXJfcmVjdCA9IHd4LlJl Y3QoKmJhY2tncm91bmQpCisrLSAgICAgICAgdXBwZXJfcmVjdC5oZWlnaHQgLz0gNQorKysgICAg ICAgIHVwcGVyX3JlY3QuaGVpZ2h0IC8vPSA1CisrIAorKyAgICAgICAgIGxvd2VyX3JlY3QgPSB3 eC5SZWN0KCpiYWNrZ3JvdW5kKQorKyAgICAgICAgIGxvd2VyX3JlY3QueSArPSB1cHBlcl9yZWN0 LmhlaWdodAorK0BAIC0xMjI5LDcgKzEyMjksNyBAQCBkZWYgRHJhd1BhZ2VCYWNrZ3JvdW5kKHNl bGYsIGRjLCB3bmQsIHJlY3QpOgorKyAgICAgICAgIGJhY2tncm91bmQud2lkdGggLT0gNAorKyAg ICAgICAgIGJhY2tncm91bmQuaGVpZ2h0IC09IDIKKysgCisrLSAgICAgICAgYmFja2dyb3VuZC5o ZWlnaHQgLz0gNQorKysgICAgICAgIGJhY2tncm91bmQuaGVpZ2h0IC8vPSA1CisrICAgICAgICAg ZGMuR3JhZGllbnRGaWxsTGluZWFyKGJhY2tncm91bmQsIHNlbGYuX3BhZ2VfYmFja2dyb3VuZF90 b3BfY29sb3VyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9wYWdlX2Jh Y2tncm91bmRfdG9wX2dyYWRpZW50X2NvbG91ciwgd3guU09VVEgpCisrIAorK0BAIC0xNDkzLDEw ICsxNDkzLDEwIEBAIGRlZiBEcmF3UGFuZWxCYWNrZ3JvdW5kKHNlbGYsIGRjLCB3bmQsIHJlY3Qp OgorKyAKKysgICAgICAgICBpZiBjbGlwX2xhYmVsOgorKyAgICAgICAgICAgICBjbGlwID0gd3gu RENDbGlwcGVyKGRjLCBsYWJlbF9yZWN0KQorKy0gICAgICAgICAgICBkYy5EcmF3VGV4dChsYWJl bCwgbGFiZWxfcmVjdC54LCBsYWJlbF9yZWN0LnkgKyAobGFiZWxfcmVjdC5HZXRIZWlnaHQoKSAt IGxhYmVsX3NpemUuR2V0SGVpZ2h0KCkpIC8gMikKKysrICAgICAgICAgICAgZGMuRHJhd1RleHQo bGFiZWwsIGxhYmVsX3JlY3QueCwgbGFiZWxfcmVjdC55ICsgKGxhYmVsX3JlY3QuR2V0SGVpZ2h0 KCkgLSBsYWJlbF9zaXplLkdldEhlaWdodCgpKSAvLyAyKQorKyAgICAgICAgIGVsc2U6CisrLSAg ICAgICAgICAgIGRjLkRyYXdUZXh0KGxhYmVsLCBsYWJlbF9yZWN0LnggKyAobGFiZWxfcmVjdC5H ZXRXaWR0aCgpIC0gbGFiZWxfc2l6ZS5HZXRXaWR0aCgpKSAvIDIsCisrLSAgICAgICAgICAgICAg ICAgICAgICAgIGxhYmVsX3JlY3QueSArIChsYWJlbF9yZWN0LkdldEhlaWdodCgpIC0gbGFiZWxf c2l6ZS5HZXRIZWlnaHQoKSkgLyAyKQorKysgICAgICAgICAgICBkYy5EcmF3VGV4dChsYWJlbCwg bGFiZWxfcmVjdC54ICsgKGxhYmVsX3JlY3QuR2V0V2lkdGgoKSAtIGxhYmVsX3NpemUuR2V0V2lk dGgoKSkgLy8gMiwKKysrICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxfcmVjdC55ICsgKGxh YmVsX3JlY3QuR2V0SGVpZ2h0KCkgLSBsYWJlbF9zaXplLkdldEhlaWdodCgpKSAvLyAyKQorKyAK KysgICAgICAgICBpZiBoYXNfZXh0X2J1dHRvbjoKKysgICAgICAgICAgICAgaWYgd25kLklzRXh0 QnV0dG9uSG92ZXJlZCgpOgorK0BAIC0xNTc3LDcgKzE1NzcsNyBAQCBkZWYgRHJhd0dhbGxlcnlC YWNrZ3JvdW5kQ29tbW9uKHNlbGYsIGRjLCB3bmQsIHJlY3QpOgorKyAgICAgICAgICAgICAjIERp dmlkZXIgYmV0d2VlbiBpdGVtcyBhbmQgYnV0dG9ucworKyAgICAgICAgICAgICBkYy5EcmF3TGlu ZShyZWN0LngsIHJlY3QueSArIHJlY3QuaGVpZ2h0IC0gMTUsIHJlY3QueCArIHJlY3Qud2lkdGgs IHJlY3QueSArIHJlY3QuaGVpZ2h0IC0gMTUpCisrIAorKy0gICAgICAgICAgICB1cF9idG4gPSB3 eC5SZWN0KHJlY3QueCwgcmVjdC55ICsgcmVjdC5oZWlnaHQgLSAxNSwgcmVjdC53aWR0aCAvIDMs IDE1KQorKysgICAgICAgICAgICB1cF9idG4gPSB3eC5SZWN0KHJlY3QueCwgcmVjdC55ICsgcmVj dC5oZWlnaHQgLSAxNSwgcmVjdC53aWR0aCAvLyAzLCAxNSkKKysgICAgICAgICAgICAgZG93bl9i dG4gPSB3eC5SZWN0KHVwX2J0bi5HZXRSaWdodCgpICsgMSwgdXBfYnRuLkdldFRvcCgpLCB1cF9i dG4uR2V0V2lkdGgoKSwgdXBfYnRuLkdldEhlaWdodCgpKQorKyAgICAgICAgICAgICBkYy5EcmF3 TGluZShkb3duX2J0bi5HZXRMZWZ0KCksIGRvd25fYnRuLkdldFRvcCgpLCBkb3duX2J0bi5HZXRM ZWZ0KCksIGRvd25fYnRuLkdldEJvdHRvbSgpKQorKyAgICAgICAgICAgICBleHRfYnRuID0gd3gu UmVjdChkb3duX2J0bi5HZXRSaWdodCgpICsgMSwgdXBfYnRuLkdldFRvcCgpLCByZWN0LndpZHRo IC0gdXBfYnRuLkdldFdpZHRoKCkgLSBkb3duX2J0bi5HZXRXaWR0aCgpIC0gMSwgdXBfYnRuLkdl dEhlaWdodCgpKQorK0BAIC0xNTg3LDcgKzE1ODcsNyBAQCBkZWYgRHJhd0dhbGxlcnlCYWNrZ3Jv dW5kQ29tbW9uKHNlbGYsIGRjLCB3bmQsIHJlY3QpOgorKyAgICAgICAgICAgICAjIERpdmlkZXIg YmV0d2VlbiBpdGVtcyBhbmQgYnV0dG9ucworKyAgICAgICAgICAgICBkYy5EcmF3TGluZShyZWN0 LnggKyByZWN0LndpZHRoIC0gMTUsIHJlY3QueSwgcmVjdC54ICsgcmVjdC53aWR0aCAtIDE1LCBy ZWN0LnkgKyByZWN0LmhlaWdodCkKKysgCisrLSAgICAgICAgICAgIHVwX2J0biA9IHd4LlJlY3Qo cmVjdC54ICsgcmVjdC53aWR0aCAtIDE1LCByZWN0LnksIDE1LCByZWN0LmhlaWdodCAvIDMpCisr KyAgICAgICAgICAgIHVwX2J0biA9IHd4LlJlY3QocmVjdC54ICsgcmVjdC53aWR0aCAtIDE1LCBy ZWN0LnksIDE1LCByZWN0LmhlaWdodCAvLyAzKQorKyAgICAgICAgICAgICBkb3duX2J0biA9IHd4 LlJlY3QodXBfYnRuLkdldExlZnQoKSwgdXBfYnRuLkdldEJvdHRvbSgpICsgMSwgdXBfYnRuLkdl dFdpZHRoKCksIHVwX2J0bi5HZXRIZWlnaHQoKSkKKysgICAgICAgICAgICAgZGMuRHJhd0xpbmUo ZG93bl9idG4uR2V0TGVmdCgpLCBkb3duX2J0bi5HZXRUb3AoKSwgZG93bl9idG4uR2V0UmlnaHQo KSwgZG93bl9idG4uR2V0VG9wKCkpCisrICAgICAgICAgICAgIGV4dF9idG4gPSB3eC5SZWN0KHVw X2J0bi5HZXRMZWZ0KCksIGRvd25fYnRuLkdldEJvdHRvbSgpICsgMSwgdXBfYnRuLkdldFdpZHRo KCksIHJlY3QuaGVpZ2h0IC0gdXBfYnRuLkdldEhlaWdodCgpIC0gZG93bl9idG4uR2V0SGVpZ2h0 KCkgLSAxKQorK0BAIC0xNjMzLDE0ICsxNjMzLDE0IEBAIGRlZiBEcmF3R2FsbGVyeUJ1dHRvbihz ZWxmLCBkYywgcmVjdCwgc3RhdGUsIGJpdG1hcHMpOgorKyAKKysgICAgICAgICBkYy5TZXRQZW4o d3guVFJBTlNQQVJFTlRfUEVOKQorKyAgICAgICAgIGRjLlNldEJydXNoKGJ0bl90b3BfYnJ1c2gp CisrLSAgICAgICAgZGMuRHJhd1JlY3RhbmdsZShyZWN0LngsIHJlY3QueSwgcmVjdC53aWR0aCwg cmVjdC5oZWlnaHQgLyAyKQorKysgICAgICAgIGRjLkRyYXdSZWN0YW5nbGUocmVjdC54LCByZWN0 LnksIHJlY3Qud2lkdGgsIHJlY3QuaGVpZ2h0IC8vIDIpCisrIAorKyAgICAgICAgIGxvd2VyID0g d3guUmVjdCgqcmVjdCkKKystICAgICAgICBsb3dlci5oZWlnaHQgPSAobG93ZXIuaGVpZ2h0ICsg MSkgLyAyCisrKyAgICAgICAgbG93ZXIuaGVpZ2h0ID0gKGxvd2VyLmhlaWdodCArIDEpIC8vIDIK KysgICAgICAgICBsb3dlci55ICs9IHJlY3QuaGVpZ2h0IC0gbG93ZXIuaGVpZ2h0CisrICAgICAg ICAgZGMuR3JhZGllbnRGaWxsTGluZWFyKGxvd2VyLCBidG5fY29sb3VyLCBidG5fZ3JhZF9jb2xv dXIsIHd4LlNPVVRIKQorKyAKKystICAgICAgICBkYy5EcmF3Qml0bWFwKGJ0bl9iaXRtYXAsIHJl Y3QueCArIHJlY3Qud2lkdGggLyAyIC0gMiwgbG93ZXIueSAtIDIsIFRydWUpCisrKyAgICAgICAg ZGMuRHJhd0JpdG1hcChidG5fYml0bWFwLCByZWN0LnggKyByZWN0LndpZHRoIC8vIDIgLSAyLCBs b3dlci55IC0gMiwgVHJ1ZSkKKysgCisrIAorKyAgICAgZGVmIERyYXdHYWxsZXJ5SXRlbUJhY2tn cm91bmQoc2VsZiwgZGMsIHduZCwgcmVjdCwgaXRlbSk6CisrQEAgLTE2OTEsNyArMTY5MSw3IEBA IGRlZiBEcmF3R2FsbGVyeUl0ZW1CYWNrZ3JvdW5kKHNlbGYsIGRjLCB3bmQsIHJlY3QsIGl0ZW0p OgorKyAgICAgICAgIHVwcGVyLnggKz0gMQorKyAgICAgICAgIHVwcGVyLndpZHRoIC09IDIKKysg ICAgICAgICB1cHBlci55ICs9IDEKKystICAgICAgICB1cHBlci5oZWlnaHQgLz0gMworKysgICAg ICAgIHVwcGVyLmhlaWdodCAvLz0gMworKyAgICAgICAgIGRjLlNldFBlbih3eC5UUkFOU1BBUkVO VF9QRU4pCisrICAgICAgICAgZGMuU2V0QnJ1c2godG9wX2JydXNoKQorKyAgICAgICAgIGRjLkRy YXdSZWN0YW5nbGUodXBwZXIueCwgdXBwZXIueSwgdXBwZXIud2lkdGgsIHVwcGVyLmhlaWdodCkK KytAQCAtMTc2MCw3ICsxNzYwLDcgQEAgZGVmIERyYXdNaW5pbWlzZWRQYW5lbChzZWxmLCBkYywg d25kLCByZWN0LCBiaXRtYXApOgorKyAgICAgICAgICAgICBjbGllbnRfcmVjdC54ICs9IDEKKysg ICAgICAgICAgICAgY2xpZW50X3JlY3Qud2lkdGggLT0gMgorKyAgICAgICAgICAgICBjbGllbnRf cmVjdC55ICs9IDEKKystICAgICAgICAgICAgY2xpZW50X3JlY3QuaGVpZ2h0ID0gKHJlY3QueSAr IHJlY3QuaGVpZ2h0IC8gNSkgLSBjbGllbnRfcmVjdC54CisrKyAgICAgICAgICAgIGNsaWVudF9y ZWN0LmhlaWdodCA9IChyZWN0LnkgKyByZWN0LmhlaWdodCAvLyA1KSAtIGNsaWVudF9yZWN0LngK KysgICAgICAgICAgICAgZGMuR3JhZGllbnRGaWxsTGluZWFyKGNsaWVudF9yZWN0LAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcGFuZWxfYWN0aXZlX2JhY2tncm91 bmRfdG9wX2NvbG91ciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu X3BhbmVsX2FjdGl2ZV9iYWNrZ3JvdW5kX3RvcF9ncmFkaWVudF9jb2xvdXIsIHd4LlNPVVRIKQor K0BAIC0xNzg1LDcgKzE3ODUsNyBAQCBkZWYgRHJhd01pbmltaXNlZFBhbmVsKHNlbGYsIGRjLCB3 bmQsIHJlY3QsIGJpdG1hcCk6CisrICAgICAgICAgZGMuU2V0UGVuKHd4LlRSQU5TUEFSRU5UX1BF TikKKysgICAgICAgICBkYy5EcmF3UmVjdGFuZ2xlKHByZXZpZXcueCArIDEsIHByZXZpZXcueSAr IHByZXZpZXcuaGVpZ2h0IC0gOCwgcHJldmlldy53aWR0aCAtIDIsIDcpCisrIAorKy0gICAgICAg IG1pZF9wb3MgPSByZWN0LnkgKyByZWN0LmhlaWdodCAvIDUgLSBwcmV2aWV3LnkKKysrICAgICAg ICBtaWRfcG9zID0gcmVjdC55ICsgcmVjdC5oZWlnaHQgLy8gNSAtIHByZXZpZXcueQorKyAKKysg ICAgICAgICBpZiBtaWRfcG9zIDwgMCBvciBtaWRfcG9zID49IHByZXZpZXcuaGVpZ2h0OgorKyAg ICAgICAgICAgICBmdWxsX3JlY3QgPSB3eC5SZWN0KCpwcmV2aWV3KQorK0BAIC0xODE2LDggKzE4 MTYsOCBAQCBkZWYgRHJhd01pbmltaXNlZFBhbmVsKHNlbGYsIGRjLCB3bmQsIHJlY3QsIGJpdG1h cCk6CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9wYWdlX2hvdmVy X2JhY2tncm91bmRfZ3JhZGllbnRfY29sb3VyLCB3eC5TT1VUSCkKKysgCisrICAgICAgICAgaWYg Yml0bWFwLklzT2soKToKKystICAgICAgICAgICAgZGMuRHJhd0JpdG1hcChiaXRtYXAsIHByZXZp ZXcueCArIChwcmV2aWV3LndpZHRoIC0gYml0bWFwLkdldFdpZHRoKCkpIC8gMiwKKystICAgICAg ICAgICAgICAgICAgICAgICAgICBwcmV2aWV3LnkgKyAocHJldmlldy5oZWlnaHQgLSA3IC0gYml0 bWFwLkdldEhlaWdodCgpKSAvIDIsIFRydWUpCisrKyAgICAgICAgICAgIGRjLkRyYXdCaXRtYXAo Yml0bWFwLCBwcmV2aWV3LnggKyAocHJldmlldy53aWR0aCAtIGJpdG1hcC5HZXRXaWR0aCgpKSAv LyAyLAorKysgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpZXcueSArIChwcmV2aWV3Lmhl aWdodCAtIDcgLSBiaXRtYXAuR2V0SGVpZ2h0KCkpIC8vIDIsIFRydWUpCisrIAorKyAgICAgICAg IHNlbGYuRHJhd1BhbmVsQm9yZGVyKGRjLCBwcmV2aWV3LCBzZWxmLl9wYW5lbF9ib3JkZXJfcGVu LCBzZWxmLl9wYW5lbF9ib3JkZXJfZ3JhZGllbnRfcGVuKQorKyAgICAgICAgIHNlbGYuRHJhd1Bh bmVsQm9yZGVyKGRjLCB0cnVlX3JlY3QsIHNlbGYuX3BhbmVsX21pbmltaXNlZF9ib3JkZXJfcGVu LCBzZWxmLl9wYW5lbF9taW5pbWlzZWRfYm9yZGVyX2dyYWRpZW50X3BlbikKKytAQCAtMTgyOSwy MCArMTgyOSwyMCBAQCBkZWYgRHJhd01pbmltaXNlZFBhbmVsQ29tbW9uKHNlbGYsIGRjLCB3bmQs IHRydWVfcmVjdCk6CisrIAorKyAgICAgICAgIGlmIHNlbGYuX2ZsYWdzICYgUklCQk9OX0JBUl9G TE9XX1ZFUlRJQ0FMOgorKyAgICAgICAgICAgICBwcmV2aWV3LnggPSB0cnVlX3JlY3QueCArIDQK KystICAgICAgICAgICAgcHJldmlldy55ID0gdHJ1ZV9yZWN0LnkgKyAodHJ1ZV9yZWN0LmhlaWdo dCAtIHByZXZpZXcuaGVpZ2h0KSAvIDIKKysrICAgICAgICAgICAgcHJldmlldy55ID0gdHJ1ZV9y ZWN0LnkgKyAodHJ1ZV9yZWN0LmhlaWdodCAtIHByZXZpZXcuaGVpZ2h0KSAvLyAyCisrICAgICAg ICAgZWxzZToKKystICAgICAgICAgICAgcHJldmlldy54ID0gdHJ1ZV9yZWN0LnggKyAodHJ1ZV9y ZWN0LndpZHRoIC0gcHJldmlldy53aWR0aCkgLyAyCisrKyAgICAgICAgICAgIHByZXZpZXcueCA9 IHRydWVfcmVjdC54ICsgKHRydWVfcmVjdC53aWR0aCAtIHByZXZpZXcud2lkdGgpIC8vIDIKKysg ICAgICAgICAgICAgcHJldmlldy55ID0gdHJ1ZV9yZWN0LnkgKyA0CisrIAorKyAgICAgICAgIGRj LlNldEZvbnQoc2VsZi5fcGFuZWxfbGFiZWxfZm9udCkKKysgICAgICAgICBsYWJlbF93aWR0aCwg bGFiZWxfaGVpZ2h0ID0gZGMuR2V0VGV4dEV4dGVudCh3bmQuR2V0TGFiZWwoKSkKKysgCisrLSAg ICAgICAgeHBvcyA9IHRydWVfcmVjdC54ICsgKHRydWVfcmVjdC53aWR0aCAtIGxhYmVsX3dpZHRo ICsgMSkgLyAyCisrKyAgICAgICAgeHBvcyA9IHRydWVfcmVjdC54ICsgKHRydWVfcmVjdC53aWR0 aCAtIGxhYmVsX3dpZHRoICsgMSkgLy8gMgorKyAgICAgICAgIHlwb3MgPSBwcmV2aWV3LnkgKyBw cmV2aWV3LmhlaWdodCArIDUKKysgCisrICAgICAgICAgaWYgc2VsZi5fZmxhZ3MgJiBSSUJCT05f QkFSX0ZMT1dfVkVSVElDQUw6CisrICAgICAgICAgICAgIHhwb3MgPSBwcmV2aWV3LnggKyBwcmV2 aWV3LndpZHRoICsgNQorKy0gICAgICAgICAgICB5cG9zID0gdHJ1ZV9yZWN0LnkgKyAodHJ1ZV9y ZWN0LmhlaWdodCAtIGxhYmVsX2hlaWdodCkgLyAyCisrKyAgICAgICAgICAgIHlwb3MgPSB0cnVl X3JlY3QueSArICh0cnVlX3JlY3QuaGVpZ2h0IC0gbGFiZWxfaGVpZ2h0KSAvLyAyCisrIAorKyAg ICAgICAgIGRjLlNldFRleHRGb3JlZ3JvdW5kKHNlbGYuX3BhbmVsX21pbmltaXNlZF9sYWJlbF9j b2xvdXIpCisrICAgICAgICAgZGMuRHJhd1RleHQod25kLkdldExhYmVsKCksIHhwb3MsIHlwb3Mp CisrQEAgLTE4NTEsMTIgKzE4NTEsMTIgQEAgZGVmIERyYXdNaW5pbWlzZWRQYW5lbENvbW1vbihz ZWxmLCBkYywgd25kLCB0cnVlX3JlY3QpOgorKyAKKysgICAgICAgICBpZiBzZWxmLl9mbGFncyAm IFJJQkJPTl9CQVJfRkxPV19WRVJUSUNBTDoKKysgICAgICAgICAgICAgeHBvcyArPSBsYWJlbF93 aWR0aAorKy0gICAgICAgICAgICBhcnJvd19wb2ludHNbMF0gPSB3eC5Qb2ludCh4cG9zICsgNSwg eXBvcyArIGxhYmVsX2hlaWdodCAvIDIpCisrKyAgICAgICAgICAgIGFycm93X3BvaW50c1swXSA9 IHd4LlBvaW50KHhwb3MgKyA1LCB5cG9zICsgbGFiZWxfaGVpZ2h0IC8vIDIpCisrICAgICAgICAg ICAgIGFycm93X3BvaW50c1sxXSA9IGFycm93X3BvaW50c1swXSArIHd4LlBvaW50KC0zLCAgMykK KysgICAgICAgICAgICAgYXJyb3dfcG9pbnRzWzJdID0gYXJyb3dfcG9pbnRzWzBdICsgd3guUG9p bnQoLTMsIC0zKQorKyAgICAgICAgIGVsc2U6CisrICAgICAgICAgICAgIHlwb3MgKz0gbGFiZWxf aGVpZ2h0CisrLSAgICAgICAgICAgIGFycm93X3BvaW50c1swXSA9IHd4LlBvaW50KHRydWVfcmVj dC53aWR0aCAvIDIsIHlwb3MgKyA1KQorKysgICAgICAgICAgICBhcnJvd19wb2ludHNbMF0gPSB3 eC5Qb2ludCh0cnVlX3JlY3Qud2lkdGggLy8gMiwgeXBvcyArIDUpCisrICAgICAgICAgICAgIGFy cm93X3BvaW50c1sxXSA9IGFycm93X3BvaW50c1swXSArIHd4LlBvaW50KC0zLCAtMykKKysgICAg ICAgICAgICAgYXJyb3dfcG9pbnRzWzJdID0gYXJyb3dfcG9pbnRzWzBdICsgd3guUG9pbnQoIDMs IC0zKQorKyAKKytAQCAtMTk2Nyw3ICsxOTY3LDcgQEAgZGVmIERyYXdCdXR0b25CYXJCdXR0b24o c2VsZiwgZGMsIHduZCwgcmVjdCwga2luZCwgc3RhdGUsIGxhYmVsLCBiaXRtYXBfbGFyZ2UsIGIK KysgICAgICAgICAgICAgYmdfcmVjdC5oZWlnaHQgLT0gMgorKyAKKysgICAgICAgICAgICAgYmdf cmVjdF90b3AgPSB3eC5SZWN0KCpiZ19yZWN0KQorKy0gICAgICAgICAgICBiZ19yZWN0X3RvcC5o ZWlnaHQgLz0gMworKysgICAgICAgICAgICBiZ19yZWN0X3RvcC5oZWlnaHQgLy89IDMKKysgICAg ICAgICAgICAgYmdfcmVjdC55ICs9IGJnX3JlY3RfdG9wLmhlaWdodAorKyAgICAgICAgICAgICBi Z19yZWN0LmhlaWdodCAtPSBiZ19yZWN0X3RvcC5oZWlnaHQKKysgCisrQEAgLTIwNDMsNyArMjA0 Myw3IEBAIGRlZiBEcmF3QnV0dG9uQmFyQnV0dG9uRm9yZWdyb3VuZChzZWxmLCBkYywgcmVjdCwg a2luZCwgc3RhdGUsIGxhYmVsLCBiaXRtYXBfbGFyCisrICAgICAgICAgaWYgcmVzdWx0ID09IFJJ QkJPTl9CVVRUT05CQVJfQlVUVE9OX0xBUkdFOgorKyAKKysgICAgICAgICAgICAgcGFkZGluZyA9 IDIKKystICAgICAgICAgICAgZGMuRHJhd0JpdG1hcChiaXRtYXBfbGFyZ2UsIHJlY3QueCArIChy ZWN0LndpZHRoIC0gYml0bWFwX2xhcmdlLkdldFdpZHRoKCkpIC8gMiwKKysrICAgICAgICAgICAg ZGMuRHJhd0JpdG1hcChiaXRtYXBfbGFyZ2UsIHJlY3QueCArIChyZWN0LndpZHRoIC0gYml0bWFw X2xhcmdlLkdldFdpZHRoKCkpIC8vIDIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVj dC55ICsgcGFkZGluZywgVHJ1ZSkKKysgICAgICAgICAgICAgeXBvcyA9IHJlY3QueSArIHBhZGRp bmcgKyBiaXRtYXBfbGFyZ2UuR2V0SGVpZ2h0KCkgKyBwYWRkaW5nCisrICAgICAgICAgICAgIGFy cm93X3dpZHRoID0gKGtpbmQgPT0gUklCQk9OX0JVVFRPTl9OT1JNQUwgYW5kIFswXSBvciBbOF0p WzBdCisrQEAgLTIwNTIsMTAgKzIwNTIsMTAgQEAgZGVmIERyYXdCdXR0b25CYXJCdXR0b25Gb3Jl Z3JvdW5kKHNlbGYsIGRjLCByZWN0LCBraW5kLCBzdGF0ZSwgbGFiZWwsIGJpdG1hcF9sYXIKKysg CisrICAgICAgICAgICAgIGlmIGxhYmVsX3cgKyAyICogcGFkZGluZyA8PSByZWN0LndpZHRoOgor KyAKKystICAgICAgICAgICAgICAgIGRjLkRyYXdUZXh0KGxhYmVsLCByZWN0LnggKyAocmVjdC53 aWR0aCAtIGxhYmVsX3cpIC8gMiwgeXBvcykKKysrICAgICAgICAgICAgICAgIGRjLkRyYXdUZXh0 KGxhYmVsLCByZWN0LnggKyAocmVjdC53aWR0aCAtIGxhYmVsX3cpIC8vIDIsIHlwb3MpCisrICAg ICAgICAgICAgICAgICBpZiBhcnJvd193aWR0aCAhPSAwOgorKy0gICAgICAgICAgICAgICAgICAg IHNlbGYuRHJhd0Ryb3Bkb3duQXJyb3coZGMsIHJlY3QueCArIHJlY3Qud2lkdGggLyAyLAorKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeXBvcyArIChsYWJlbF9o ICogMykgLyAyLAorKysgICAgICAgICAgICAgICAgICAgIHNlbGYuRHJhd0Ryb3Bkb3duQXJyb3co ZGMsIHJlY3QueCArIHJlY3Qud2lkdGggLy8gMiwKKysrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHlwb3MgKyAobGFiZWxfaCAqIDMpIC8vIDIsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9idXR0b25fYmFyX2xhYmVs X2NvbG91cikKKysgICAgICAgICAgICAgZWxzZToKKysgICAgICAgICAgICAgICAgIGJyZWFraSA9 IGxlbihsYWJlbCkKKytAQCAtMjA2NywxNyArMjA2NywxNyBAQCBkZWYgRHJhd0J1dHRvbkJhckJ1 dHRvbkZvcmVncm91bmQoc2VsZiwgZGMsIHJlY3QsIGtpbmQsIHN0YXRlLCBsYWJlbCwgYml0bWFw X2xhcgorKyAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbF93LCBsYWJlbF9oID0gZGMuR2V0 VGV4dEV4dGVudChsYWJlbF90b3ApCisrIAorKyAgICAgICAgICAgICAgICAgICAgICAgICBpZiBs YWJlbF93ICsgMiAqIHBhZGRpbmcgPD0gcmVjdC53aWR0aDoKKystICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRjLkRyYXdUZXh0KGxhYmVsX3RvcCwgcmVjdC54ICsgKHJlY3Qud2lkdGggLSBs YWJlbF93KSAvIDIsIHlwb3MpCisrKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYy5EcmF3 VGV4dChsYWJlbF90b3AsIHJlY3QueCArIChyZWN0LndpZHRoIC0gbGFiZWxfdykgLy8gMiwgeXBv cykKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlwb3MgKz0gbGFiZWxfaAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxfYm90dG9tID0gbGFiZWxbYnJlYWtpOl0KKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsX3csIGxhYmVsX2ggPSBkYy5HZXRUZXh0 RXh0ZW50KGxhYmVsX2JvdHRvbSkKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVs X3cgKz0gYXJyb3dfd2lkdGgKKystICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlYID0gcmVj dC54ICsgKHJlY3Qud2lkdGggLSBsYWJlbF93KSAvIDIKKysrICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlYID0gcmVjdC54ICsgKHJlY3Qud2lkdGggLSBsYWJlbF93KSAvLyAyCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkYy5EcmF3VGV4dChsYWJlbF9ib3R0b20sIGlYLCB5cG9z KQorKyAKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGFycm93X3dpZHRoICE9IDA6 CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5EcmF3RHJvcGRvd25BcnJv dyhkYywgaVggKyAyICtsYWJlbF93IC0gYXJyb3dfd2lkdGgsCisrLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5cG9zICsgbGFiZWxfaCAvIDIg KyAxLAorKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgeXBvcyArIGxhYmVsX2ggLy8gMiArIDEsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9idXR0b25fYmFyX2xhYmVsX2Nv bG91cikKKysgCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworK0BAIC0yMDg1 LDE0ICsyMDg1LDE0IEBAIGRlZiBEcmF3QnV0dG9uQmFyQnV0dG9uRm9yZWdyb3VuZChzZWxmLCBk YywgcmVjdCwga2luZCwgc3RhdGUsIGxhYmVsLCBiaXRtYXBfbGFyCisrICAgICAgICAgZWxpZiBy ZXN1bHQgPT0gUklCQk9OX0JVVFRPTkJBUl9CVVRUT05fTUVESVVNOgorKyAKKysgICAgICAgICAg ICAgeF9jdXJzb3IgPSByZWN0LnggKyAyCisrLSAgICAgICAgICAgIGRjLkRyYXdCaXRtYXAoYml0 bWFwX3NtYWxsLCB4X2N1cnNvciwgcmVjdC55ICsgKHJlY3QuaGVpZ2h0IC0gYml0bWFwX3NtYWxs LkdldEhlaWdodCgpKS8yLCBUcnVlKQorKysgICAgICAgICAgICBkYy5EcmF3Qml0bWFwKGJpdG1h cF9zbWFsbCwgeF9jdXJzb3IsIHJlY3QueSArIChyZWN0LmhlaWdodCAtIGJpdG1hcF9zbWFsbC5H ZXRIZWlnaHQoKSkvLzIsIFRydWUpCisrICAgICAgICAgICAgIHhfY3Vyc29yICs9IGJpdG1hcF9z bWFsbC5HZXRXaWR0aCgpICsgMgorKyAgICAgICAgICAgICBsYWJlbF93LCBsYWJlbF9oID0gZGMu R2V0VGV4dEV4dGVudChsYWJlbCkKKystICAgICAgICAgICAgZGMuRHJhd1RleHQobGFiZWwsIHhf Y3Vyc29yLCByZWN0LnkgKyAocmVjdC5oZWlnaHQgLSBsYWJlbF9oKSAvIDIpCisrKyAgICAgICAg ICAgIGRjLkRyYXdUZXh0KGxhYmVsLCB4X2N1cnNvciwgcmVjdC55ICsgKHJlY3QuaGVpZ2h0IC0g bGFiZWxfaCkgLy8gMikKKysgICAgICAgICAgICAgeF9jdXJzb3IgKz0gbGFiZWxfdyArIDMKKysg CisrICAgICAgICAgICAgIGlmIGtpbmQgIT0gUklCQk9OX0JVVFRPTl9OT1JNQUw6CisrLSAgICAg ICAgICAgICAgICBzZWxmLkRyYXdEcm9wZG93bkFycm93KGRjLCB4X2N1cnNvciwgcmVjdC55ICsg cmVjdC5oZWlnaHQgLyAyLAorKysgICAgICAgICAgICAgICAgc2VsZi5EcmF3RHJvcGRvd25BcnJv dyhkYywgeF9jdXJzb3IsIHJlY3QueSArIHJlY3QuaGVpZ2h0IC8vIDIsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2J1dHRvbl9iYXJfbGFiZWxfY29sb3Vy KQorKyAKKysgICAgICAgICBlbHNlOgorK0BAIC0yMTg0LDcgKzIxODQsNyBAQCBkZWYgRHJhd1Rv b2woc2VsZiwgZGMsIHduZCwgcmVjdCwgYml0bWFwLCBraW5kLCBzdGF0ZSk6CisrIAorKyAgICAg ICAgICMgQmFja2dyb3VuZAorKyAgICAgICAgIGJnX3JlY3RfdG9wID0gd3guUmVjdCgqYmdfcmVj dCkKKystICAgICAgICBiZ19yZWN0X3RvcC5oZWlnaHQgPSAoYmdfcmVjdF90b3AuaGVpZ2h0ICog MikgLyA1CisrKyAgICAgICAgYmdfcmVjdF90b3AuaGVpZ2h0ID0gKGJnX3JlY3RfdG9wLmhlaWdo dCAqIDIpIC8vIDUKKysgICAgICAgICBiZ19yZWN0X2J0bSA9IHd4LlJlY3QoKmJnX3JlY3QpCisr ICAgICAgICAgYmdfcmVjdF9idG0ueSArPSBiZ19yZWN0X3RvcC5oZWlnaHQKKysgICAgICAgICBi Z19yZWN0X2J0bS5oZWlnaHQgLT0gYmdfcmVjdF90b3AuaGVpZ2h0CisrQEAgLTIyNDQsMTAgKzIy NDQsMTAgQEAgZGVmIERyYXdUb29sKHNlbGYsIGRjLCB3bmQsIHJlY3QsIGJpdG1hcCwga2luZCwg c3RhdGUpOgorKyAgICAgICAgICAgICAgICAgZGMuRHJhd0xpbmUocmVjdC54ICsgYXZhaWxfd2lk dGggKyAxLCByZWN0LnksIHJlY3QueCArIGF2YWlsX3dpZHRoICsgMSwgcmVjdC55ICsgcmVjdC5o ZWlnaHQpCisrIAorKyAgICAgICAgICAgICBkYy5EcmF3Qml0bWFwKHNlbGYuX3Rvb2xiYXJfZHJv cF9iaXRtYXAsIGJnX3JlY3QueCArIGF2YWlsX3dpZHRoICsgMiwKKystICAgICAgICAgICAgICAg ICAgICAgICAgICBiZ19yZWN0LnkgKyAoYmdfcmVjdC5oZWlnaHQgLyAyKSAtIDIsIFRydWUpCisr KyAgICAgICAgICAgICAgICAgICAgICAgICAgYmdfcmVjdC55ICsgKGJnX3JlY3QuaGVpZ2h0IC8v IDIpIC0gMiwgVHJ1ZSkKKysgCisrLSAgICAgICAgZGMuRHJhd0JpdG1hcChiaXRtYXAsIGJnX3Jl Y3QueCArIChhdmFpbF93aWR0aCAtIGJpdG1hcC5HZXRXaWR0aCgpKSAvIDIsCisrLSAgICAgICAg ICAgICAgICAgICAgICBiZ19yZWN0LnkgKyAoYmdfcmVjdC5oZWlnaHQgLSBiaXRtYXAuR2V0SGVp Z2h0KCkpIC8gMiwgVHJ1ZSkKKysrICAgICAgICBkYy5EcmF3Qml0bWFwKGJpdG1hcCwgYmdfcmVj dC54ICsgKGF2YWlsX3dpZHRoIC0gYml0bWFwLkdldFdpZHRoKCkpIC8vIDIsCisrKyAgICAgICAg ICAgICAgICAgICAgICBiZ19yZWN0LnkgKyAoYmdfcmVjdC5oZWlnaHQgLSBiaXRtYXAuR2V0SGVp Z2h0KCkpIC8vIDIsIFRydWUpCisrIAorKyAKKysgICAgIGRlZiBHZXRCYXJUYWJXaWR0aChzZWxm LCBkYywgd25kLCBsYWJlbCwgYml0bWFwLCBpZGVhbD1Ob25lLCBzbWFsbF9iZWdpbl9uZWVkX3Nl cGFyYXRvcj1Ob25lLAorK0BAIC0yNDc0LDcgKzI0NzQsNyBAQCBkZWYgR2V0R2FsbGVyeUNsaWVu dFNpemUoc2VsZiwgZGMsIHduZCwgc2l6ZSwgY2xpZW50X29mZnNldD1Ob25lLCBzY3JvbGxfdXBf YnV0dAorKyAgICAgICAgICAgICBzY3JvbGxfdXAueSA9IHNpemUuR2V0SGVpZ2h0KCkgLSAxNQor KyAgICAgICAgICAgICBzY3JvbGxfdXAuaGVpZ2h0ID0gMTUKKysgICAgICAgICAgICAgc2Nyb2xs X3VwLnggPSAwCisrLSAgICAgICAgICAgIHNjcm9sbF91cC53aWR0aCA9IChzaXplLkdldFdpZHRo KCkgKyAyKSAvIDMKKysrICAgICAgICAgICAgc2Nyb2xsX3VwLndpZHRoID0gKHNpemUuR2V0V2lk dGgoKSArIDIpIC8vIDMKKysgICAgICAgICAgICAgc2Nyb2xsX2Rvd24ueSA9IHNjcm9sbF91cC55 CisrICAgICAgICAgICAgIHNjcm9sbF9kb3duLmhlaWdodCA9IHNjcm9sbF91cC5oZWlnaHQKKysg ICAgICAgICAgICAgc2Nyb2xsX2Rvd24ueCA9IHNjcm9sbF91cC54ICsgc2Nyb2xsX3VwLndpZHRo CisrQEAgLTI0OTEsNyArMjQ5MSw3IEBAIGRlZiBHZXRHYWxsZXJ5Q2xpZW50U2l6ZShzZWxmLCBk Yywgd25kLCBzaXplLCBjbGllbnRfb2Zmc2V0PU5vbmUsIHNjcm9sbF91cF9idXR0CisrICAgICAg ICAgICAgIHNjcm9sbF91cC54ID0gc2l6ZS5HZXRXaWR0aCgpIC0gMTUKKysgICAgICAgICAgICAg c2Nyb2xsX3VwLndpZHRoID0gMTUKKysgICAgICAgICAgICAgc2Nyb2xsX3VwLnkgPSAwCisrLSAg ICAgICAgICAgIHNjcm9sbF91cC5oZWlnaHQgPSAoc2l6ZS5HZXRIZWlnaHQoKSArIDIpIC8gMwor KysgICAgICAgICAgICBzY3JvbGxfdXAuaGVpZ2h0ID0gKHNpemUuR2V0SGVpZ2h0KCkgKyAyKSAv LyAzCisrICAgICAgICAgICAgIHNjcm9sbF9kb3duLnggPSBzY3JvbGxfdXAueAorKyAgICAgICAg ICAgICBzY3JvbGxfZG93bi53aWR0aCA9IHNjcm9sbF91cC53aWR0aAorKyAgICAgICAgICAgICBz Y3JvbGxfZG93bi55ID0gc2Nyb2xsX3VwLnkgKyBzY3JvbGxfdXAuaGVpZ2h0CisrZGlmZiAtLWdp dCBhL3d4L2xpYi9hZ3cvcmliYm9uL2Jhci5weSBiL3d4L2xpYi9hZ3cvcmliYm9uL2Jhci5weQor K2luZGV4IGFlOGI2YTE5Yy4uYjBkMjg3NzZkIDEwMDY0NAorKy0tLSBhL3d4L2xpYi9hZ3cvcmli Ym9uL2Jhci5weQorKysrKyBiL3d4L2xpYi9hZ3cvcmliYm9uL2Jhci5weQorK0BAIC03NDMsNyAr NzQzLDcgQEAgZGVmIFJlY2FsY3VsYXRlVGFiU2l6ZXMoc2VsZik6CisrICAgICAgICAgICAgICAg ICAgICAgZGVsdGEgPSBpbmZvLmlkZWFsX3dpZHRoIC0gaW5mby5zbWFsbF9tdXN0X2hhdmVfc2Vw YXJhdG9yX3dpZHRoCisrICAgICAgICAgICAgICAgICAgICAgaW5mby5yZWN0LnggPSB4CisrICAg ICAgICAgICAgICAgICAgICAgaW5mby5yZWN0LnkgPSB5CisrLSAgICAgICAgICAgICAgICAgICAg aW5mby5yZWN0LndpZHRoID0gaW5mby5zbWFsbF9tdXN0X2hhdmVfc2VwYXJhdG9yX3dpZHRoICsg ZGVsdGEqKHdpZHRoIC0gdG90YWxfc21hbGxfd2lkdGgpL3RvdGFsX2RlbHRhCisrKyAgICAgICAg ICAgICAgICAgICAgaW5mby5yZWN0LndpZHRoID0gaW5mby5zbWFsbF9tdXN0X2hhdmVfc2VwYXJh dG9yX3dpZHRoICsgZGVsdGEqKHdpZHRoIC0gdG90YWxfc21hbGxfd2lkdGgpLy90b3RhbF9kZWx0 YQorKyAgICAgICAgICAgICAgICAgICAgIGluZm8ucmVjdC5oZWlnaHQgPSBzZWxmLl90YWJfaGVp Z2h0CisrIAorKyAgICAgICAgICAgICAgICAgICAgIHggKz0gaW5mby5yZWN0LndpZHRoICsgdGFi c2VwCisrQEAgLTc5Nyw3ICs3OTcsNyBAQCBkZWYgUmVjYWxjdWxhdGVUYWJTaXplcyhzZWxmKToK KysgICAgICAgICAgICAgICAgICAgICAgICAgZGVsdGEgPSBzbWFsbGVzdF90YWJfd2lkdGggLSBp bmZvLm1pbmltdW1fd2lkdGgKKysgICAgICAgICAgICAgICAgICAgICAgICAgaW5mby5yZWN0Lngg PSB4CisrICAgICAgICAgICAgICAgICAgICAgICAgIGluZm8ucmVjdC55ID0geQorKy0gICAgICAg ICAgICAgICAgICAgICAgICBpbmZvLnJlY3Qud2lkdGggPSBpbmZvLm1pbmltdW1fd2lkdGggKyBk ZWx0YSood2lkdGggLSB0b3RhbF9zbWFsbF93aWR0aCkvdG90YWxfZGVsdGEKKysrICAgICAgICAg ICAgICAgICAgICAgICAgaW5mby5yZWN0LndpZHRoID0gaW5mby5taW5pbXVtX3dpZHRoICsgZGVs dGEqKHdpZHRoIC0gdG90YWxfc21hbGxfd2lkdGgpLy90b3RhbF9kZWx0YQorKyAgICAgICAgICAg ICAgICAgICAgICAgICBpbmZvLnJlY3QuaGVpZ2h0ID0gc2VsZi5fdGFiX2hlaWdodAorKyAKKysg ICAgICAgICAgICAgICAgICAgICAgICAgeCArPSBpbmZvLnJlY3Qud2lkdGggKyB0YWJzZXAKKytk aWZmIC0tZ2l0IGEvd3gvbGliL2Fndy9yaWJib24vYnV0dG9uYmFyLnB5IGIvd3gvbGliL2Fndy9y aWJib24vYnV0dG9uYmFyLnB5CisraW5kZXggMjVlZTQ5YTgyLi40NjkwZjQ4M2QgMTAwNjQ0Cisr LS0tIGEvd3gvbGliL2Fndy9yaWJib24vYnV0dG9uYmFyLnB5CisrKysrIGIvd3gvbGliL2Fndy9y aWJib24vYnV0dG9uYmFyLnB5CisrQEAgLTM1NCw3ICszNTQsNyBAQCBkZWYgSW5zZXJ0QnV0dG9u KHNlbGYsIHBvcywgYnV0dG9uX2lkLCBsYWJlbCwgYml0bWFwLCBiaXRtYXBfc21hbGw9d3guTnVs bEJpdG1hcAorKyAgICAgICAgICAgICAgICAgc2VsZi5fYml0bWFwX3NpemVfbGFyZ2UgPSBiaXRt YXAuR2V0U2l6ZSgpCisrICAgICAgICAgICAgICAgICBpZiBub3QgYml0bWFwX3NtYWxsLklzT2so KToKKysgICAgICAgICAgICAgICAgICAgICB3LCBoID0gc2VsZi5fYml0bWFwX3NpemVfbGFyZ2UK KystICAgICAgICAgICAgICAgICAgICBzZWxmLl9iaXRtYXBfc2l6ZV9zbWFsbCA9IHd4LlNpemUo MC41KncsIDAuNSpoKQorKysgICAgICAgICAgICAgICAgICAgIHNlbGYuX2JpdG1hcF9zaXplX3Nt YWxsID0gd3guU2l6ZSh3Ly8yLCBoLy8yKQorKyAKKysgICAgICAgICAgICAgaWYgYml0bWFwX3Nt YWxsLklzT2soKToKKysgCisrQEAgLTg2Nyw4ICs4NjcsOCBAQCBkZWYgT25TaXplKHNlbGYsIGV2 ZW50KToKKysgCisrICAgICAgICAgICAgIGxheW91dF9zaXplID0gc2VsZi5fbGF5b3V0c1tsYXlv dXRfaV0ub3ZlcmFsbF9zaXplCisrICAgICAgICAgICAgIGlmIGxheW91dF9zaXplLnggPD0gbmV3 X3NpemUueCBhbmQgbGF5b3V0X3NpemUueSA8PSBuZXdfc2l6ZS55OgorKy0gICAgICAgICAgICAg ICAgc2VsZi5fbGF5b3V0X29mZnNldC54ID0gKG5ld19zaXplLnggLSBsYXlvdXRfc2l6ZS54KS8y CisrLSAgICAgICAgICAgICAgICBzZWxmLl9sYXlvdXRfb2Zmc2V0LnkgPSAobmV3X3NpemUueSAt IGxheW91dF9zaXplLnkpLzIKKysrICAgICAgICAgICAgICAgIHNlbGYuX2xheW91dF9vZmZzZXQu eCA9IChuZXdfc2l6ZS54IC0gbGF5b3V0X3NpemUueCkvLzIKKysrICAgICAgICAgICAgICAgIHNl bGYuX2xheW91dF9vZmZzZXQueSA9IChuZXdfc2l6ZS55IC0gbGF5b3V0X3NpemUueSkvLzIKKysg ICAgICAgICAgICAgICAgIHNlbGYuX2N1cnJlbnRfbGF5b3V0ID0gbGF5b3V0X2kKKysgICAgICAg ICAgICAgICAgIGJyZWFrCisrIAorK2RpZmYgLS1naXQgYS93eC9saWIvYWd3L3JpYmJvbi9nYWxs ZXJ5LnB5IGIvd3gvbGliL2Fndy9yaWJib24vZ2FsbGVyeS5weQorK2luZGV4IGI4MzBmYWI3ZC4u Yjg2NTI4ODY1IDEwMDY0NAorKy0tLSBhL3d4L2xpYi9hZ3cvcmliYm9uL2dhbGxlcnkucHkKKysr KysgYi93eC9saWIvYWd3L3JpYmJvbi9nYWxsZXJ5LnB5CisrQEAgLTgwNSw4ICs4MDUsOCBAQCBk ZWYgRG9HZXROZXh0U21hbGxlclNpemUoc2VsZiwgZGlyZWN0aW9uLCByZWxhdGl2ZV90byk6Cisr ICAgICAgICAgaWYgY2xpZW50LkdldFdpZHRoKCkgPCAwIG9yIGNsaWVudC5HZXRIZWlnaHQoKSA8 IDA6CisrICAgICAgICAgICAgIHJldHVybiByZWxhdGl2ZV90bworKyAKKystICAgICAgICBjbGll bnQueCA9IChjbGllbnQueCAvIHNlbGYuX2JpdG1hcF9wYWRkZWRfc2l6ZS54KSAqIHNlbGYuX2Jp dG1hcF9wYWRkZWRfc2l6ZS54CisrLSAgICAgICAgY2xpZW50LnkgPSAoY2xpZW50LnkgLyBzZWxm Ll9iaXRtYXBfcGFkZGVkX3NpemUueSkgKiBzZWxmLl9iaXRtYXBfcGFkZGVkX3NpemUueQorKysg ICAgICAgIGNsaWVudC54ID0gKGNsaWVudC54IC8vIHNlbGYuX2JpdG1hcF9wYWRkZWRfc2l6ZS54 KSAqIHNlbGYuX2JpdG1hcF9wYWRkZWRfc2l6ZS54CisrKyAgICAgICAgY2xpZW50LnkgPSAoY2xp ZW50LnkgLy8gc2VsZi5fYml0bWFwX3BhZGRlZF9zaXplLnkpICogc2VsZi5fYml0bWFwX3BhZGRl ZF9zaXplLnkKKysgCisrICAgICAgICAgc2l6ZSA9IHNlbGYuX2FydC5HZXRHYWxsZXJ5U2l6ZShk Yywgc2VsZiwgd3guU2l6ZSgqY2xpZW50KSkKKysgICAgICAgICBtaW5pbXVtID0gc2VsZi5HZXRN aW5TaXplKCkKKytAQCAtODQ5LDggKzg0OSw4IEBAIGRlZiBEb0dldE5leHRMYXJnZXJTaXplKHNl bGYsIGRpcmVjdGlvbiwgcmVsYXRpdmVfdG8pOgorKyAgICAgICAgIGVsaWYgZGlyZWN0aW9uID09 IHd4LkJPVEg6CisrICAgICAgICAgICAgIGNsaWVudC5JbmNCeShzZWxmLl9iaXRtYXBfcGFkZGVk X3NpemUpCisrIAorKy0gICAgICAgIGNsaWVudC54ID0gKGNsaWVudC54IC8gc2VsZi5fYml0bWFw X3BhZGRlZF9zaXplLngpICogc2VsZi5fYml0bWFwX3BhZGRlZF9zaXplLngKKystICAgICAgICBj bGllbnQueSA9IChjbGllbnQueSAvIHNlbGYuX2JpdG1hcF9wYWRkZWRfc2l6ZS55KSAqIHNlbGYu X2JpdG1hcF9wYWRkZWRfc2l6ZS55CisrKyAgICAgICAgY2xpZW50LnggPSAoY2xpZW50LnggLy8g c2VsZi5fYml0bWFwX3BhZGRlZF9zaXplLngpICogc2VsZi5fYml0bWFwX3BhZGRlZF9zaXplLngK KysrICAgICAgICBjbGllbnQueSA9IChjbGllbnQueSAvLyBzZWxmLl9iaXRtYXBfcGFkZGVkX3Np emUueSkgKiBzZWxmLl9iaXRtYXBfcGFkZGVkX3NpemUueQorKyAKKysgICAgICAgICBzaXplID0g c2VsZi5fYXJ0LkdldEdhbGxlcnlTaXplKGRjLCBzZWxmLCB3eC5TaXplKCpjbGllbnQpKQorKyAg ICAgICAgIG1pbmltdW0gPSBzZWxmLkdldE1pblNpemUoKQorK2RpZmYgLS1naXQgYS93eC9saWIv YWd3L3JpYmJvbi9wYW5lbC5weSBiL3d4L2xpYi9hZ3cvcmliYm9uL3BhbmVsLnB5CisraW5kZXgg NzlmZDliYzU4Li45MDFjNzY1YjYgMTAwNjQ0CisrLS0tIGEvd3gvbGliL2Fndy9yaWJib24vcGFu ZWwucHkKKysrKysgYi93eC9saWIvYWd3L3JpYmJvbi9wYW5lbC5weQorK0BAIC01ODQsMTIgKzU4 NCwxMiBAQCBkZWYgRG9HZXROZXh0U21hbGxlclNpemUoc2VsZiwgZGlyZWN0aW9uLCByZWxhdGl2 ZV90byk6CisrICAgICAgICAgbWluaW11bSA9IHd4LlNpemUoKnNlbGYuR2V0TWluU2l6ZSgpKQor KyAKKysgICAgICAgICBpZiBkaXJlY3Rpb24gJiB3eC5IT1JJWk9OVEFMOgorKy0gICAgICAgICAg ICBjdXJyZW50LnggPSAoY3VycmVudC54ICogNCkgLyA1CisrKyAgICAgICAgICAgIGN1cnJlbnQu eCA9IChjdXJyZW50LnggKiA0KSAvLyA1CisrICAgICAgICAgICAgIGlmIGN1cnJlbnQueCA8IG1p bmltdW0ueDoKKysgICAgICAgICAgICAgICAgIGN1cnJlbnQueCA9IG1pbmltdW0ueAorKyAKKysg ICAgICAgICBpZiBkaXJlY3Rpb24gJiB3eC5WRVJUSUNBTDoKKystICAgICAgICAgICAgY3VycmVu dC55ID0gKGN1cnJlbnQueSAqIDQpIC8gNQorKysgICAgICAgICAgICBjdXJyZW50LnkgPSAoY3Vy cmVudC55ICogNCkgLy8gNQorKyAgICAgICAgICAgICBpZiBjdXJyZW50LnkgPCBtaW5pbXVtLnk6 CisrICAgICAgICAgICAgICAgICBjdXJyZW50LnkgPSBtaW5pbXVtLnkKKysgCisrQEAgLTY2OCwx MCArNjY4LDEwIEBAIGRlZiBEb0dldE5leHRMYXJnZXJTaXplKHNlbGYsIGRpcmVjdGlvbiwgcmVs YXRpdmVfdG8pOgorKyAgICAgICAgIGN1cnJlbnQgPSB3eC5TaXplKCpyZWxhdGl2ZV90bykKKysg CisrICAgICAgICAgaWYgZGlyZWN0aW9uICYgd3guSE9SSVpPTlRBTDoKKystICAgICAgICAgICAg Y3VycmVudC54ID0gKGN1cnJlbnQueCAqIDUgKyAzKSAvIDQKKysrICAgICAgICAgICAgY3VycmVu dC54ID0gKGN1cnJlbnQueCAqIDUgKyAzKSAvLyA0CisrIAorKyAgICAgICAgIGlmIGRpcmVjdGlv biAmIHd4LlZFUlRJQ0FMOgorKy0gICAgICAgICAgICBjdXJyZW50LnkgPSAoY3VycmVudC55ICog NSArIDMpIC8gNAorKysgICAgICAgICAgICBjdXJyZW50LnkgPSAoY3VycmVudC55ICogNSArIDMp IC8vIDQKKysgCisrICAgICAgICAgcmV0dXJuIGN1cnJlbnQKKysgCisrQEAgLTEwNzYsMjUgKzEw NzYsMjUgQEAgZGVmIEdldEV4cGFuZGVkUG9zaXRpb24oc2VsZiwgcGFuZWwsIGV4cGFuZGVkX3Np emUsIGRpcmVjdGlvbik6CisrICAgICAgICAgcG9zID0gd3guUG9pbnQoKQorKyAKKysgICAgICAg ICBpZiBkaXJlY3Rpb24gPT0gd3guTk9SVEg6CisrLSAgICAgICAgICAgIHBvcy54ID0gcGFuZWwu R2V0WCgpICsgKHBhbmVsLkdldFdpZHRoKCkgLSBleHBhbmRlZF9zaXplLkdldFdpZHRoKCkpIC8g MgorKysgICAgICAgICAgICBwb3MueCA9IHBhbmVsLkdldFgoKSArIChwYW5lbC5HZXRXaWR0aCgp IC0gZXhwYW5kZWRfc2l6ZS5HZXRXaWR0aCgpKSAvLyAyCisrICAgICAgICAgICAgIHBvcy55ID0g cGFuZWwuR2V0WSgpIC0gZXhwYW5kZWRfc2l6ZS5HZXRIZWlnaHQoKQorKyAgICAgICAgICAgICBw cmltYXJ5X3ggPSBUcnVlCisrICAgICAgICAgICAgIHNlY29uZGFyeV95ID0gMQorKyAKKysgICAg ICAgICBlbGlmIGRpcmVjdGlvbiA9PSB3eC5FQVNUOgorKyAgICAgICAgICAgICBwb3MueCA9IHBh bmVsLkdldFJpZ2h0KCkKKystICAgICAgICAgICAgcG9zLnkgPSBwYW5lbC5HZXRZKCkgKyAocGFu ZWwuR2V0SGVpZ2h0KCkgLSBleHBhbmRlZF9zaXplLkdldEhlaWdodCgpKSAvIDIKKysrICAgICAg ICAgICAgcG9zLnkgPSBwYW5lbC5HZXRZKCkgKyAocGFuZWwuR2V0SGVpZ2h0KCkgLSBleHBhbmRl ZF9zaXplLkdldEhlaWdodCgpKSAvLyAyCisrICAgICAgICAgICAgIHNlY29uZGFyeV94ID0gLTEK KysgCisrICAgICAgICAgZWxpZiBkaXJlY3Rpb24gPT0gd3guU09VVEg6CisrLSAgICAgICAgICAg IHBvcy54ID0gcGFuZWwuR2V0WCgpICsgKHBhbmVsLkdldFdpZHRoKCkgLSBleHBhbmRlZF9zaXpl LkdldFdpZHRoKCkpIC8gMgorKysgICAgICAgICAgICBwb3MueCA9IHBhbmVsLkdldFgoKSArIChw YW5lbC5HZXRXaWR0aCgpIC0gZXhwYW5kZWRfc2l6ZS5HZXRXaWR0aCgpKSAvLyAyCisrICAgICAg ICAgICAgIHBvcy55ID0gcGFuZWwuR2V0Qm90dG9tKCkKKysgICAgICAgICAgICAgcHJpbWFyeV94 ID0gVHJ1ZQorKyAgICAgICAgICAgICBzZWNvbmRhcnlfeSA9IC0xCisrIAorKyAgICAgICAgIGVs c2U6CisrICAgICAgICAgICAgIHBvcy54ID0gcGFuZWwuR2V0WCgpIC0gZXhwYW5kZWRfc2l6ZS5H ZXRXaWR0aCgpCisrLSAgICAgICAgICAgIHBvcy55ID0gcGFuZWwuR2V0WSgpICsgKHBhbmVsLkdl dEhlaWdodCgpIC0gZXhwYW5kZWRfc2l6ZS5HZXRIZWlnaHQoKSkgLyAyCisrKyAgICAgICAgICAg IHBvcy55ID0gcGFuZWwuR2V0WSgpICsgKHBhbmVsLkdldEhlaWdodCgpIC0gZXhwYW5kZWRfc2l6 ZS5HZXRIZWlnaHQoKSkgLy8gMgorKyAgICAgICAgICAgICBzZWNvbmRhcnlfeCA9IDEKKysgCisr ICAgICAgICAgZXhwYW5kZWQgPSB3eC5SZWN0KHBvcywgZXhwYW5kZWRfc2l6ZSkKKytkaWZmIC0t Z2l0IGEvd3gvbGliL2Fndy9yaWJib24vdG9vbGJhci5weSBiL3d4L2xpYi9hZ3cvcmliYm9uL3Rv b2xiYXIucHkKKytpbmRleCAxNzcxYzY1MDYuLjhjNmY4YjUyMiAxMDA2NDQKKystLS0gYS93eC9s aWIvYWd3L3JpYmJvbi90b29sYmFyLnB5CisrKysrIGIvd3gvbGliL2Fndy9yaWJib24vdG9vbGJh ci5weQorK0BAIC0xMTU5LDcgKzExNTksNyBAQCBkZWYgT25TaXplKHNlbGYsIGV2ZW50KToKKysg CisrICAgICAgICAgIyBTZXQgZ3JvdXAgeSBwb3NpdGlvbnMKKysgICAgICAgICBmb3IgZ3JvdXAg aW4gc2VsZi5fZ3JvdXBzOgorKy0gICAgICAgICAgICBncm91cC5wb3NpdGlvbi55ID0gcm93eXBv c1tncm91cC5wb3NpdGlvbi55XQorKysgICAgICAgICAgICBncm91cC5wb3NpdGlvbi55ID0gaW50 KHJvd3lwb3NbZ3JvdXAucG9zaXRpb24ueV0pCisrIAorKyAKKysgICAgIGRlZiBHZXRCZXN0U2l6 ZUZvclBhcmVudFNpemUoc2VsZiwgcGFyZW50U2l6ZSk6CisrZGlmZiAtLWdpdCBhL3d4L2xpYi9h Z3cvc2hhcGVkYnV0dG9uLnB5IGIvd3gvbGliL2Fndy9zaGFwZWRidXR0b24ucHkKKytpbmRleCBm MDE1ZDRlMzkuLjQ5NTIzMzY2YSAxMDA2NDQKKystLS0gYS93eC9saWIvYWd3L3NoYXBlZGJ1dHRv bi5weQorKysrKyBiL3d4L2xpYi9hZ3cvc2hhcGVkYnV0dG9uLnB5CisrQEAgLTU2OSw5ICs1Njks OSBAQCBkZWYgRHJhd01haW5CdXR0b24oc2VsZiwgZGMsIHdpZHRoLCBoZWlnaHQpOgorKyAgICAg ICAgICAgICAgICAgcmVjdDIgPSB3Km1haW4vL3NlY29uZGFyeQorKyAKKysgICAgICAgICAgICAg aWYgc2VsZi5faXN1cDoKKystICAgICAgICAgICAgICAgIGltZyA9IHNlbGYuX21haW5idXR0b251 cC5TY2FsZShyZWN0MiwgcmVjdDMpCisrKyAgICAgICAgICAgICAgICBpbWcgPSBzZWxmLl9tYWlu YnV0dG9udXAuU2NhbGUoaW50KHJlY3QyKSwgaW50KHJlY3QzKSkKKysgICAgICAgICAgICAgZWxz ZToKKystICAgICAgICAgICAgICAgIGltZyA9IHNlbGYuX21haW5idXR0b25kb3duLlNjYWxlKHJl Y3QyLCByZWN0MykKKysrICAgICAgICAgICAgICAgIGltZyA9IHNlbGYuX21haW5idXR0b25kb3du LlNjYWxlKGludChyZWN0MiksIGludChyZWN0MykpCisrIAorKyAgICAgICAgIGJtcCA9IGltZy5D b252ZXJ0VG9CaXRtYXAoKQorKyAKKytAQCAtNTk5LDcgKzU5OSw3IEBAIGRlZiBEcmF3TWFpbkJ1 dHRvbihzZWxmLCBkYywgd2lkdGgsIGhlaWdodCk6CisrICAgICAgICAgICAgICAgICAgICAgeXBv cyA9IDAKKysgCisrICAgICAgICAgIyBEcmF3IEZpbmFsbHkgVGhlIEJpdG1hcAorKy0gICAgICAg IGRjLkRyYXdCaXRtYXAoYm1wLCB4cG9zLCB5cG9zLCBUcnVlKQorKysgICAgICAgIGRjLkRyYXdC aXRtYXAoYm1wLCBpbnQoeHBvcyksIGludCh5cG9zKSwgVHJ1ZSkKKysgCisrICAgICAgICAgIyBT dG9yZSBCaXRtYXAgUG9zaXRpb24gQW5kIFNpemUgVG8gRHJhdyBBbiBFbGxpcHRpY2FsIEZvY3Vz IEluZGljYXRvcgorKyAgICAgICAgIHNlbGYuX3hwb3MgPSB4cG9zCisrQEAgLTY0Niw3ICs2NDYs NyBAQCBkZWYgRHJhd0xhYmVsKHNlbGYsIGRjLCB3aWR0aCwgaGVpZ2h0LCBkdz0wLCBkaD0wKToK KysgICAgICAgICAgICAgeHAgPSB4YyAtICh0dy8vMikqIGNvcyhhbmdsZSkgLSAodGgvLzIpKnNp bihhbmdsZSkKKysgICAgICAgICAgICAgeXAgPSB5YyArICh0dy8vMikqc2luKGFuZ2xlKSAtICh0 aC8vMikqY29zKGFuZ2xlKQorKyAKKystICAgICAgICAgICAgZGMuRHJhd1JvdGF0ZWRUZXh0KGxh YmVsLCB4cCArIGR3LCB5cCArIGRoICwgYW5nbGUqMTgwL3BpKQorKysgICAgICAgICAgICBkYy5E cmF3Um90YXRlZFRleHQobGFiZWwsIGludCh4cCArIGR3KSwgaW50KHlwICsgZGgpLCBhbmdsZSox ODAvcGkpCisrIAorKyAKKysgICAgIGRlZiBEcmF3Rm9jdXNJbmRpY2F0b3Ioc2VsZiwgZGMsIHdp ZHRoLCBoZWlnaHQpOgorK0BAIC02NzYsNyArNjc2LDcgQEAgZGVmIERyYXdGb2N1c0luZGljYXRv cihzZWxmLCBkYywgd2lkdGgsIGhlaWdodCk6CisrICAgICAgICAgZWxzZToKKysgICAgICAgICAg ICAgIyBUaGlzIElzIEFuIEVsbGlwc2UKKysgICAgICAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAi X3hwb3MiKToKKystICAgICAgICAgICAgICAgIGRjLkRyYXdFbGxpcHNlKHNlbGYuX3hwb3MgKyAy LCBzZWxmLl95cG9zICsgMiwgc2VsZi5faW1neCAtIDQsIHNlbGYuX2ltZ3kgLSA0KQorKysgICAg ICAgICAgICAgICAgZGMuRHJhd0VsbGlwc2UoaW50KHNlbGYuX3hwb3MgKyAyKSwgaW50KHNlbGYu X3lwb3MgKyAyKSwgc2VsZi5faW1neCAtIDQsIHNlbGYuX2ltZ3kgLSA0KQorKyAKKysgICAgICAg ICBkYy5TZXRMb2dpY2FsRnVuY3Rpb24od3guQ09QWSkKKysgCisrZGlmZiAtLWdpdCBhL3d4L2xp Yi9hZ3cvc3BlZWRtZXRlci5weSBiL3d4L2xpYi9hZ3cvc3BlZWRtZXRlci5weQorK2luZGV4IGYx OTZiNTFmMi4uNjA2OTAxZDI3IDEwMDY0NAorKy0tLSBhL3d4L2xpYi9hZ3cvc3BlZWRtZXRlci5w eQorKysrKyBiL3d4L2xpYi9hZ3cvc3BlZWRtZXRlci5weQorK0BAIC01ODAsOCArNTgwLDggQEAg ZGVmIERyYXcoc2VsZiwgZGMpOgorKyAgICAgICAgIGRjLlNldEJhY2tncm91bmQod3guQnJ1c2go c3BlZWRiYWNrZ3JvdW5kKSkKKysgICAgICAgICBkYy5DbGVhcigpCisrIAorKy0gICAgICAgIGNl bnRlclggPSBzZWxmLmZhY2VCaXRtYXAuR2V0V2lkdGgoKS8yCisrLSAgICAgICAgY2VudGVyWSA9 IHNlbGYuZmFjZUJpdG1hcC5HZXRIZWlnaHQoKS8yCisrKyAgICAgICAgY2VudGVyWCA9IHNlbGYu ZmFjZUJpdG1hcC5HZXRXaWR0aCgpLy8yCisrKyAgICAgICAgY2VudGVyWSA9IHNlbGYuZmFjZUJp dG1hcC5HZXRIZWlnaHQoKS8vMgorKyAKKysgICAgICAgICBzZWxmLkNlbnRlclggPSBjZW50ZXJY CisrICAgICAgICAgc2VsZi5DZW50ZXJZID0gY2VudGVyWQorK0BAIC02ODEsNyArNjgxLDcgQEAg ZGVmIERyYXcoc2VsZiwgZGMpOgorKyAgICAgICAgICAgICAjIERyYXcgVGhlIEZpbGxlciAoQm90 aCBJbiAiQWR2YW5jZSIgQW5kICJSZXZlcnNlIiBEaXJlY3Rpb25zKQorKyAKKysgICAgICAgICAg ICAgZGMuU2V0QnJ1c2god3guQnJ1c2goZmlsbGVyY29sb3VyKSkKKystICAgICAgICAgICAgZGMu RHJhd0FyYyh4czIsIHlzMiwgeGUyLCB5ZTIsIGNlbnRlclgsIGNlbnRlclkpCisrKyAgICAgICAg ICAgIGRjLkRyYXdBcmMoeHMyLCB5czIsIHhlMiwgeWUyLCBpbnQoY2VudGVyWCksIGludChjZW50 ZXJZKSkKKysgCisrICAgICAgICAgICAgIGlmIHNlbGYuX2Fnd1N0eWxlICYgU01fRFJBV19TRUNU T1JTID09IDA6CisrICAgICAgICAgICAgICAgICBkYy5TZXRCcnVzaCh3eC5CcnVzaChzcGVlZGJh Y2tncm91bmQpKQorK0BAIC05NTIsNyArOTUyLDcgQEAgZGVmIERyYXcoc2VsZiwgZGMpOgorKyAg ICAgICAgICAgICAgICAgICAgIHkgPSB5IC0gaGVpZ2h0LzIuMCAtIGhlaWdodCpzaW4oYW5naXMp LzIuMAorKyAgICAgICAgICAgICAgICAgICAgIGZhbmN5dGV4dC5SZW5kZXJUb0RDKGZhbmN5c3Ry LCBkYywgeCwgeSkKKysgICAgICAgICAgICAgICAgIGVsc2U6CisrLSAgICAgICAgICAgICAgICAg ICAgZGMuRHJhd1RleHQoc3RyaW5ncywgeCwgeSkKKysrICAgICAgICAgICAgICAgICAgICBkYy5E cmF3VGV4dChzdHJpbmdzLCBpbnQoeCksIGludCh5KSkKKysgCisrICAgICAgICAgICAgICMgVGhp cyBJcyBUaGUgU21hbGwgUmVjdGFuZ2xlIC0tPiBUaWNrIE1hcmsKKysgICAgICAgICAgICAgcmVj dGFuZ2xlID0gY29sb3VyYW5nbGVzW2lpXSArIHBpLzIuMAorK0BAIC05NjksNiArOTY5LDcgQEAg ZGVmIERyYXcoc2VsZiwgZGMpOgorKyAgICAgICAgICAgICB5NCA9IHkzICsgMypzZWxmLnNjYWxl KnNpbnJlY3QKKysgCisrICAgICAgICAgICAgIHBvaW50cyA9IFsoeDEsIHkxKSwgKHgyLCB5Miks ICh4NCwgeTQpLCAoeDMsIHkzKV0KKysrICAgICAgICAgICAgcG9pbnRzID0gWyhpbnQocFswXSks IGludChwWzFdKSkgZm9yIHAgaW4gcG9pbnRzXQorKyAKKysgICAgICAgICAgICAgZGMuRHJhd1Bv bHlnb24ocG9pbnRzKQorKyAKKytAQCAtMTAwMyw2ICsxMDA0LDcgQEAgZGVmIERyYXcoc2VsZiwg ZGMpOgorKyAgICAgICAgICAgICAgICAgICAgICAgICB5NCA9IHkzICsgc2VsZi5zY2FsZSpzaW5y ZWN0CisrIAorKyAgICAgICAgICAgICAgICAgICAgICAgICBwb2ludHMgPSBbKHgxLCB5MSksICh4 MiwgeTIpLCAoeDQsIHk0KSwgKHgzLCB5MyldCisrKyAgICAgICAgICAgICAgICAgICAgICAgIHBv aW50cyA9IFsoaW50KHBbMF0pLCBpbnQocFsxXSkpIGZvciBwIGluIHBvaW50c10KKysgCisrICAg ICAgICAgICAgICAgICAgICAgICAgIGRjLkRyYXdQb2x5Z29uKHBvaW50cykKKysgCisrQEAgLTEw MTcsNyArMTAxOSw3IEBAIGRlZiBEcmF3KHNlbGYsIGRjKToKKysgICAgICAgICBkYy5TZXRCcnVz aCh3eC5UUkFOU1BBUkVOVF9CUlVTSCkKKysgCisrICAgICAgICAgaWYgc2VsZi5fZHJhd2FyYzoK KystICAgICAgICAgICAgZGMuU2V0UGVuKHd4LlBlbihzZWxmLkdldEFyY0NvbG91cigpLCAyLjAp KQorKysgICAgICAgICAgICBkYy5TZXRQZW4od3guUGVuKHNlbGYuR2V0QXJjQ29sb3VyKCksIDIp KQorKyAgICAgICAgICAgICAjIElmIEl0J3MgTm90IEEgQ29tcGxldGUgQ2lyY2xlLCBEcmF3IFRo ZSBDb25uZWN0aW5nIExpbmVzIEFuZCBUaGUgQXJjCisrICAgICAgICAgICAgIGlmIGFicyhhYnMo c3RhcnRhbmdsZSAtIGVuZGFuZ2xlKSAtIDIqcGkpID4gMS4wLzE4MC4wOgorKyAgICAgICAgICAg ICAgICAgZGMuRHJhd0FyYyh4c3RhcnQsIHlzdGFydCwgeGVuZCwgeWVuZCwgY2VudGVyWCwgY2Vu dGVyWSkKKytAQCAtMTA0Niw3ICsxMDQ4LDcgQEAgZGVmIERyYXcoc2VsZiwgZGMpOgorKyAgICAg ICAgICAgICBuZXd4ID0gY2VudGVyWCArIDEuNSptdypjb3MobWlkZGxlYW5nbGUpIC0gbXcvMi4w CisrICAgICAgICAgICAgIG5ld3kgPSBjZW50ZXJZIC0gMS41Km1oKnNpbihtaWRkbGVhbmdsZSkg LSBtaC8yLjAKKysgICAgICAgICAgICAgZGMuU2V0VGV4dEZvcmVncm91bmQobWlkZGxlY29sb3Vy KQorKy0gICAgICAgICAgICBkYy5EcmF3VGV4dChtaWRkbGV0ZXh0LCBuZXd4LCBuZXd5KQorKysg ICAgICAgICAgICBkYy5EcmF3VGV4dChtaWRkbGV0ZXh0LCBpbnQobmV3eCksIGludChuZXd5KSkK KysgCisrICAgICAgICAgIyBIZXJlIFdlIERyYXcgVGhlIEljb24gSW4gVGhlIE1pZGRsZSwgTmVh ciBUaGUgU3RhcnQgT2YgVGhlIEFycm93IChJZiBQcmVzZW50KQorKyAgICAgICAgICMgVGhpcyBJ cyBMaWtlIFRoZSAiRnVlbCIgSWNvbiBJbiBUaGUgQ2FycworK0BAIC0xMDU0LDggKzEwNTYsOCBA QCBkZWYgRHJhdyhzZWxmLCBkYyk6CisrIAorKyAgICAgICAgICAgICBtaWRkbGVpY29uID0gc2Vs Zi5HZXRNaWRkbGVJY29uKCkKKysgICAgICAgICAgICAgbWlkZGxld2lkdGgsIG1pZGRsZWhlaWdo dCA9IHNlbGYuR2V0TWlkZGxlSWNvbkRpbWVucygpCisrLSAgICAgICAgICAgIG1pZGRsZWljb24u U2V0V2lkdGgobWlkZGxld2lkdGgqc2VsZi5zY2FsZSkKKystICAgICAgICAgICAgbWlkZGxlaWNv bi5TZXRIZWlnaHQobWlkZGxlaGVpZ2h0KnNlbGYuc2NhbGUpCisrKyAgICAgICAgICAgIG1pZGRs ZWljb24uU2V0V2lkdGgoaW50KG1pZGRsZXdpZHRoKnNlbGYuc2NhbGUpKQorKysgICAgICAgICAg ICBtaWRkbGVpY29uLlNldEhlaWdodChpbnQobWlkZGxlaGVpZ2h0KnNlbGYuc2NhbGUpKQorKyAg ICAgICAgICAgICBtaWRkbGVhbmdsZSA9IChzdGFydGFuZ2xlICsgZW5kYW5nbGUpLzIuMAorKyAK KysgICAgICAgICAgICAgbXcgPSBtaWRkbGVpY29uLkdldFdpZHRoKCkKKytAQCAtMTA2NCw3ICsx MDY2LDcgQEAgZGVmIERyYXcoc2VsZiwgZGMpOgorKyAgICAgICAgICAgICBuZXd4ID0gY2VudGVy WCArIDEuNSptdypjb3MobWlkZGxlYW5nbGUpIC0gbXcvMi4wCisrICAgICAgICAgICAgIG5ld3kg PSBjZW50ZXJZIC0gMS41Km1oKnNpbihtaWRkbGVhbmdsZSkgLSBtaC8yLjAKKysgCisrLSAgICAg ICAgICAgIGRjLkRyYXdJY29uKG1pZGRsZWljb24sIG5ld3gsIG5ld3kpCisrKyAgICAgICAgICAg IGRjLkRyYXdJY29uKG1pZGRsZWljb24sIGludChuZXd4KSwgaW50KG5ld3kpKQorKyAKKysgICAg ICAgICAgICAgIyBSZXN0b3JlIEljb24gRGltZW5zaW9uLCBJZiBOb3QgU29tZXRoaW5nIFN0cmFu Z2UgSGFwcGVucworKyAgICAgICAgICAgICBtaWRkbGVpY29uLlNldFdpZHRoKG1pZGRsZXdpZHRo KQorK0BAIC0xMTA5LDUzICsxMTExLDYxIEBAIGRlZiBEcmF3KHNlbGYsIGRjKToKKysgICAgICAg ICAgICAgICAgIGlmIGhhbmRzdHlsZSA9PSAiQXJyb3ciOgorKyAgICAgICAgICAgICAgICAgICAg ICMgRHJhdyBUaGUgU2hhZG93CisrICAgICAgICAgICAgICAgICAgICAgc2hhZG93Y29sb3VyID0g c2VsZi5HZXRTaGFkb3dDb2xvdXIoKQorKy0gICAgICAgICAgICAgICAgICAgIGRjLlNldFBlbih3 eC5QZW4oc2hhZG93Y29sb3VyLCA1KmxvZyhzZWxmLnNjYWxlKzEpKSkKKysrICAgICAgICAgICAg ICAgICAgICBkYy5TZXRQZW4od3guUGVuKHNoYWRvd2NvbG91ciwgaW50KDUqbG9nKHNlbGYuc2Nh bGUrMSkpKSkKKysgICAgICAgICAgICAgICAgICAgICBkYy5TZXRCcnVzaCh3eC5CcnVzaChzaGFk b3djb2xvdXIpKQorKyAgICAgICAgICAgICAgICAgICAgIHNoYWRvd2Rpc3RhbmNlID0gMi4wKnNl bGYuc2NhbGUKKystICAgICAgICAgICAgICAgICAgICBkYy5EcmF3TGluZShuZXd4ICsgc2hhZG93 ZGlzdGFuY2UsIG5ld3kgKyBzaGFkb3dkaXN0YW5jZSwKKystICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB4YXJyICsgc2hhZG93ZGlzdGFuY2UsIHlhcnIgKyBzaGFkb3dkaXN0YW5jZSkK KystCisrLSAgICAgICAgICAgICAgICAgICAgZGMuRHJhd1BvbHlnb24oWyh4MStzaGFkb3dkaXN0 YW5jZSwgeTErc2hhZG93ZGlzdGFuY2UpLAorKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoeDIrc2hhZG93ZGlzdGFuY2UsIHkyK3NoYWRvd2Rpc3RhbmNlKSwKKystICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHgzK3NoYWRvd2Rpc3RhbmNlLCB5MytzaGFk b3dkaXN0YW5jZSldKQorKysgICAgICAgICAgICAgICAgICAgIGRjLkRyYXdMaW5lKGludChuZXd4 ICsgc2hhZG93ZGlzdGFuY2UpLCBpbnQobmV3eSArIHNoYWRvd2Rpc3RhbmNlKSwKKysrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQoeGFyciArIHNoYWRvd2Rpc3RhbmNlKSwgaW50 KHlhcnIgKyBzaGFkb3dkaXN0YW5jZSkpCisrKworKysgICAgICAgICAgICAgICAgICAgIHBvaW50 cyA9IFsoeDErc2hhZG93ZGlzdGFuY2UsIHkxK3NoYWRvd2Rpc3RhbmNlKSwKKysrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKHgyK3NoYWRvd2Rpc3RhbmNlLCB5MitzaGFkb3dkaXN0YW5j ZSksCisrKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh4MytzaGFkb3dkaXN0YW5jZSwg eTMrc2hhZG93ZGlzdGFuY2UpXQorKysgICAgICAgICAgICAgICAgICAgIHBvaW50cyA9IFsoaW50 KHBbMF0pLCBpbnQocFsxXSkpIGZvciBwIGluIHBvaW50c10KKysrICAgICAgICAgICAgICAgICAg ICBkYy5EcmF3UG9seWdvbihwb2ludHMpCisrICAgICAgICAgICAgICAgICBlbHNlOgorKyAgICAg ICAgICAgICAgICAgICAgICMgRHJhdyBUaGUgU2hhZG93CisrICAgICAgICAgICAgICAgICAgICAg c2hhZG93Y29sb3VyID0gc2VsZi5HZXRTaGFkb3dDb2xvdXIoKQorKyAgICAgICAgICAgICAgICAg ICAgIGRjLlNldEJydXNoKHd4LkJydXNoKHNoYWRvd2NvbG91cikpCisrLSAgICAgICAgICAgICAg ICAgICAgZGMuU2V0UGVuKHd4LlBlbihzaGFkb3djb2xvdXIsIDEuMCkpCisrKyAgICAgICAgICAg ICAgICAgICAgZGMuU2V0UGVuKHd4LlBlbihzaGFkb3djb2xvdXIsIDEpKQorKyAgICAgICAgICAg ICAgICAgICAgIHNoYWRvd2Rpc3RhbmNlID0gMS41KnNlbGYuc2NhbGUKKysgCisrLSAgICAgICAg ICAgICAgICAgICAgZGMuRHJhd1BvbHlnb24oWyh4MStzaGFkb3dkaXN0YW5jZSwgeTErc2hhZG93 ZGlzdGFuY2UpLAorKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeDIrc2hh ZG93ZGlzdGFuY2UsIHkyK3NoYWRvd2Rpc3RhbmNlKSwKKystICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKHgzK3NoYWRvd2Rpc3RhbmNlLCB5MytzaGFkb3dkaXN0YW5jZSksCisr LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh4NCtzaGFkb3dkaXN0YW5jZSwg eTQrc2hhZG93ZGlzdGFuY2UpXSkKKysrICAgICAgICAgICAgICAgICAgICBwb2ludHMgPSBbKHgx K3NoYWRvd2Rpc3RhbmNlLCB5MStzaGFkb3dkaXN0YW5jZSksCisrKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICh4MitzaGFkb3dkaXN0YW5jZSwgeTIrc2hhZG93ZGlzdGFuY2UpLAorKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeDMrc2hhZG93ZGlzdGFuY2UsIHkzK3NoYWRv d2Rpc3RhbmNlKSwKKysrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHg0K3NoYWRvd2Rp c3RhbmNlLCB5NCtzaGFkb3dkaXN0YW5jZSldCisrKyAgICAgICAgICAgICAgICAgICAgcG9pbnRz ID0gWyhpbnQocFswXSksIGludChwWzFdKSkgZm9yIHAgaW4gcG9pbnRzXQorKysgICAgICAgICAg ICAgICAgICAgIGRjLkRyYXdQb2x5Z29uKHBvaW50cykKKysgCisrICAgICAgICAgICAgIGlmIGhh bmRzdHlsZSA9PSAiQXJyb3ciOgorKyAKKystICAgICAgICAgICAgICAgIGRjLlNldFBlbih3eC5Q ZW4oaGFuZGNvbG91ciwgMS41KSkKKysrICAgICAgICAgICAgICAgIGRjLlNldFBlbih3eC5QZW4o aGFuZGNvbG91ciwgMSkpCisrIAorKyAgICAgICAgICAgICAgICAgIyBEcmF3IFRoZSBTbWFsbCBD aXJjbGUgSW4gVGhlIENlbnRlciAtLT4gVGhlIEhhbmQgIkhvbGRlciIKKysgICAgICAgICAgICAg ICAgIGRjLlNldEJydXNoKHd4LkJydXNoKHNwZWVkYmFja2dyb3VuZCkpCisrLSAgICAgICAgICAg ICAgICBkYy5EcmF3Q2lyY2xlKGNlbnRlclgsIGNlbnRlclksIDQqc2VsZi5zY2FsZSkKKysrICAg ICAgICAgICAgICAgIGRjLkRyYXdDaXJjbGUoY2VudGVyWCwgY2VudGVyWSwgaW50KDQqc2VsZi5z Y2FsZSkpCisrIAorKy0gICAgICAgICAgICAgICAgZGMuU2V0UGVuKHd4LlBlbihoYW5kY29sb3Vy LCA1KmxvZyhzZWxmLnNjYWxlKzEpKSkKKysrICAgICAgICAgICAgICAgIGRjLlNldFBlbih3eC5Q ZW4oaGFuZGNvbG91ciwgaW50KDUqbG9nKHNlbGYuc2NhbGUrMSkpKSkKKysgICAgICAgICAgICAg ICAgICMgRHJhdyBUaGUgIkhhbmQiLCBBbiBBcnJvdworKy0gICAgICAgICAgICAgICAgZGMuRHJh d0xpbmUobmV3eCwgbmV3eSwgeGFyciwgeWFycikKKysrICAgICAgICAgICAgICAgIGRjLkRyYXdM aW5lKGludChuZXd4KSwgaW50KG5ld3kpLCBpbnQoeGFyciksIGludCh5YXJyKSkKKysgCisrICAg ICAgICAgICAgICAgICAjIERyYXcgVGhlIEFycm93IFBvaW50ZXIKKysgICAgICAgICAgICAgICAg IGRjLlNldEJydXNoKHd4LkJydXNoKGhhbmRjb2xvdXIpKQorKy0gICAgICAgICAgICAgICAgZGMu RHJhd1BvbHlnb24oWyh4MSwgeTEpLCAoeDIsIHkyKSwgKHgzLCB5MyldKQorKysgICAgICAgICAg ICAgICAgcG9pbnRzID0gWyh4MSwgeTEpLCAoeDIsIHkyKSwgKHgzLCB5MyldCisrKyAgICAgICAg ICAgICAgICBwb2ludHMgPSBbKGludChwWzBdKSwgaW50KHBbMV0pKSBmb3IgcCBpbiBwb2ludHNd CisrKyAgICAgICAgICAgICAgICBkYy5EcmF3UG9seWdvbihwb2ludHMpCisrIAorKyAgICAgICAg ICAgICBlbHNlOgorKyAKKysgICAgICAgICAgICAgICAgICMgRHJhdyBUaGUgSGFuZCBQb2ludGVy CisrLSAgICAgICAgICAgICAgICBkYy5TZXRQZW4od3guUGVuKGhhbmRjb2xvdXIsIDEuNSkpCisr KyAgICAgICAgICAgICAgICBkYy5TZXRQZW4od3guUGVuKGhhbmRjb2xvdXIsIDEpKQorKyAgICAg ICAgICAgICAgICAgZGMuU2V0QnJ1c2god3guQnJ1c2goaGFuZGNvbG91cikpCisrLSAgICAgICAg ICAgICAgICBkYy5EcmF3UG9seWdvbihbKHgxLCB5MSksICh4MiwgeTIpLCAoeDMsIHkzKSwgKHg0 LCB5NCldKQorKysgICAgICAgICAgICAgICAgcG9pbnRzID0gWyh4MSwgeTEpLCAoeDIsIHkyKSwg KHgzLCB5MyksICh4NCwgeTQpXQorKysgICAgICAgICAgICAgICAgcG9pbnRzID0gWyhpbnQocFsw XSksIGludChwWzFdKSkgZm9yIHAgaW4gcG9pbnRzXQorKysgICAgICAgICAgICAgICAgZGMuRHJh d1BvbHlnb24ocG9pbnRzKQorKyAKKysgICAgICAgICAgICAgICAgICMgRHJhdyBUaGUgU21hbGwg Q2lyY2xlIEluIFRoZSBDZW50ZXIgLS0+IFRoZSBIYW5kICJIb2xkZXIiCisrICAgICAgICAgICAg ICAgICBkYy5TZXRCcnVzaCh3eC5CcnVzaChzcGVlZGJhY2tncm91bmQpKQorKy0gICAgICAgICAg ICAgICAgZGMuRHJhd0NpcmNsZShjZW50ZXJYLCBjZW50ZXJZLCA0KnNlbGYuc2NhbGUpCisrKyAg ICAgICAgICAgICAgICBkYy5EcmF3Q2lyY2xlKGNlbnRlclgsIGNlbnRlclksIGludCg0KnNlbGYu c2NhbGUpKQorKyAKKysgCisrICAgICBkZWYgU2V0SW50ZXJ2YWxzKHNlbGYsIGludGVydmFscz1O b25lKToKKytAQCAtMTUyNyw3ICsxNTM3LDcgQEAgZGVmIFNldE1pZGRsZVRleHRGb250KHNlbGYs IGZvbnQ9Tm9uZSk6CisrIAorKyAgICAgICAgIGlmIGZvbnQgaXMgTm9uZToKKysgICAgICAgICAg ICAgc2VsZi5fbWlkZGxldGV4dGZvbnQgPSB3eC5Gb250KDEsIHd4LkZPTlRGQU1JTFlfU1dJU1Ms IHd4LkZPTlRTVFlMRV9OT1JNQUwsIHd4LkZPTlRXRUlHSFRfQk9MRCwgRmFsc2UpCisrLSAgICAg ICAgICAgIHNlbGYuX21pZGRsZXRleHRzaXplID0gMTAuMAorKysgICAgICAgICAgICBzZWxmLl9t aWRkbGV0ZXh0c2l6ZSA9IDEwCisrICAgICAgICAgICAgIHNlbGYuX21pZGRsZXRleHRmb250LlNl dFBvaW50U2l6ZShzZWxmLl9taWRkbGV0ZXh0c2l6ZSkKKysgICAgICAgICBlbHNlOgorKyAgICAg ICAgICAgICBzZWxmLl9taWRkbGV0ZXh0Zm9udCA9IGZvbnQKKytAQCAtMTU5OSw3ICsxNjA5LDcg QEAgZGVmIENpcmNsZUNvb3JkcyhzZWxmLCByYWRpdXMsIGFuZ2xlLCBjZW50ZXJYLCBjZW50ZXJZ KToKKysgICAgICAgICB4ID0gcmFkaXVzKmNvcyhhbmdsZSkgKyBjZW50ZXJYCisrICAgICAgICAg eSA9IHJhZGl1cypzaW4oYW5nbGUpICsgY2VudGVyWQorKyAKKystICAgICAgICByZXR1cm4geCwg eQorKysgICAgICAgIHJldHVybiBpbnQoeCksIGludCh5KQorKyAKKysgCisrICAgICBkZWYgR2V0 SW50ZXJzZWN0aW9uKHNlbGYsIGN1cnJlbnQsIGludGVydmFscyk6CisrZGlmZiAtLWdpdCBhL3d4 L2xpYi9hZ3cvc3VwZXJ0b29sdGlwLnB5IGIvd3gvbGliL2Fndy9zdXBlcnRvb2x0aXAucHkKKytp bmRleCBhOTJjZTEwZDEuLmNkMGYwYzlmNyAxMDA2NDQKKystLS0gYS93eC9saWIvYWd3L3N1cGVy dG9vbHRpcC5weQorKysrKyBiL3d4L2xpYi9hZ3cvc3VwZXJ0b29sdGlwLnB5CisrQEAgLTI5NSw4 ICsyOTUsOCBAQCBkZWYgT25QYWludChzZWxmLCBldmVudCk6CisrIAorKyAgICAgICAgICMgR2V0 IHRoZSB1c2VyIG9wdGlvbnMgZm9yIGhlYWRlciwgYml0bWFwcyBldGMuLi4KKysgICAgICAgICBk cmF3SGVhZGVyLCBkcmF3Rm9vdGVyID0gY2xhc3NQYXJlbnQuR2V0RHJhd0hlYWRlckxpbmUoKSwg Y2xhc3NQYXJlbnQuR2V0RHJhd0Zvb3RlckxpbmUoKQorKy0gICAgICAgIHRvcFJlY3QgPSB3eC5S ZWN0KGZyYW1lUmVjdC54LCBmcmFtZVJlY3QueSwgZnJhbWVSZWN0LndpZHRoLCBmcmFtZVJlY3Qu aGVpZ2h0LzIpCisrLSAgICAgICAgYm90dG9tUmVjdCA9IHd4LlJlY3QoZnJhbWVSZWN0LngsIGZy YW1lUmVjdC55K2ZyYW1lUmVjdC5oZWlnaHQvMiwgZnJhbWVSZWN0LndpZHRoLCBmcmFtZVJlY3Qu aGVpZ2h0LzIrMSkKKysrICAgICAgICB0b3BSZWN0ID0gd3guUmVjdChmcmFtZVJlY3QueCwgZnJh bWVSZWN0LnksIGZyYW1lUmVjdC53aWR0aCwgZnJhbWVSZWN0LmhlaWdodC8vMikKKysrICAgICAg ICBib3R0b21SZWN0ID0gd3guUmVjdChmcmFtZVJlY3QueCwgZnJhbWVSZWN0LnkrZnJhbWVSZWN0 LmhlaWdodC8vMiwgZnJhbWVSZWN0LndpZHRoLCBmcmFtZVJlY3QuaGVpZ2h0Ly8yKzEpCisrICAg ICAgICAgIyBGaWxsIHRoZSB0cmlwbGUtZ3JhZGllbnQKKysgICAgICAgICBkYy5HcmFkaWVudEZp bGxMaW5lYXIodG9wUmVjdCwgdG9wQ29sb3VyLCBtaWRkbGVDb2xvdXIsIHd4LlNPVVRIKQorKyAg ICAgICAgIGRjLkdyYWRpZW50RmlsbExpbmVhcihib3R0b21SZWN0LCBtaWRkbGVDb2xvdXIsIGJv dHRvbUNvbG91ciwgd3guU09VVEgpCisrQEAgLTMyNCw5ICszMjQsOSBAQCBkZWYgT25QYWludChz ZWxmLCBldmVudCk6CisrICAgICAgICAgbm9ybWFsVGV4dCA9IGNsYXNzUGFyZW50LkdldFRleHRD b2xvdXIoKQorKyAgICAgICAgIGlmIGhlYWRlcjoKKysgICAgICAgICAgICAgZGMuU2V0VGV4dEZv cmVncm91bmQobm9ybWFsVGV4dCkKKystICAgICAgICAgICAgZGMuRHJhd1RleHQoaGVhZGVyLCBi bXBYUG9zK2JtcFdpZHRoK3NlbGYuX3NwYWNpbmcsIChoZWlnaHQtdGV4dEhlaWdodCtzZWxmLl9z cGFjaW5nKS8yKQorKysgICAgICAgICAgICBkYy5EcmF3VGV4dChoZWFkZXIsIGJtcFhQb3MrYm1w V2lkdGgrc2VsZi5fc3BhY2luZywgKGhlaWdodC10ZXh0SGVpZ2h0K3NlbGYuX3NwYWNpbmcpLy8y KQorKyAgICAgICAgIGlmIGhlYWRlckJtcCBhbmQgaGVhZGVyQm1wLklzT2soKToKKystICAgICAg ICAgICAgZGMuRHJhd0JpdG1hcChoZWFkZXJCbXAsIGJtcFhQb3MsIChoZWlnaHQtYm1wSGVpZ2h0 K3NlbGYuX3NwYWNpbmcpLzIsIFRydWUpCisrKyAgICAgICAgICAgIGRjLkRyYXdCaXRtYXAoaGVh ZGVyQm1wLCBibXBYUG9zLCAoaGVpZ2h0LWJtcEhlaWdodCtzZWxmLl9zcGFjaW5nKS8vMiwgVHJ1 ZSkKKysgCisrICAgICAgICAgaWYgaGVhZGVyIG9yIChoZWFkZXJCbXAgYW5kIGhlYWRlckJtcC5J c09rKCkpOgorKyAgICAgICAgICAgICB5UG9zICs9IGhlaWdodAorK0BAIC0zNzYsNyArMzc2LDcg QEAgZGVmIE9uUGFpbnQoc2VsZiwgZXZlbnQpOgorKyAgICAgICAgICAgICAgICAgbWVzc2FnZUhl aWdodCArPSB0ZXh0SGVpZ2h0CisrIAorKyAgICAgICAgICAgICAgICAgeFRleHQgPSAoYm1wV2lk dGggKyAyICogc2VsZi5fc3BhY2luZykgaWYgYm1wV2lkdGggPiAwIGVsc2Ugc2VsZi5fc3BhY2lu ZworKy0gICAgICAgICAgICAgICAgeVRleHQgKz0gdGV4dEhlaWdodC8yK3NlbGYuX3NwYWNpbmcK KysrICAgICAgICAgICAgICAgIHlUZXh0ICs9IHRleHRIZWlnaHQvLzIrc2VsZi5fc3BhY2luZwor KyAgICAgICAgICAgICAgICAgbWF4V2lkdGggPSBtYXgoeFRleHQgKyB0ZXh0V2lkdGggKyBzZWxm Ll9zcGFjaW5nLCBtYXhXaWR0aCkKKysgICAgICAgICAgICAgICAgIGRjLkRyYXdUZXh0KGxpbmUs IHhUZXh0LCB5VGV4dCkKKysgICAgICAgICAgICAgICAgIGlmIGlzTGluazoKKytAQCAtNDEyLDgg KzQxMiw4IEBAIGRlZiBPblBhaW50KHNlbGYsIGV2ZW50KToKKysgICAgICAgICAgICAgaWYgZHJh d0Zvb3RlcjoKKysgICAgICAgICAgICAgICAgICMgRHJhdyB0aGUgc2VwYXJhdG9yIGxpbmUgYmVm b3JlIHRoZSBmb290ZXIKKysgICAgICAgICAgICAgICAgIGRjLlNldFBlbih3eC5HUkVZX1BFTikK KystICAgICAgICAgICAgICAgIGRjLkRyYXdMaW5lKHNlbGYuX3NwYWNpbmcsIHlQb3Mtc2VsZi5f c3BhY2luZy8yK3RvQWRkLAorKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgtc2Vs Zi5fc3BhY2luZywgeVBvcy1zZWxmLl9zcGFjaW5nLzIrdG9BZGQpCisrKyAgICAgICAgICAgICAg ICBkYy5EcmF3TGluZShzZWxmLl9zcGFjaW5nLCB5UG9zLXNlbGYuX3NwYWNpbmcvLzIrdG9BZGQs CisrKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC1zZWxmLl9zcGFjaW5nLCB5UG9z LXNlbGYuX3NwYWNpbmcvLzIrdG9BZGQpCisrICAgICAgICAgIyBEcmF3IHRoZSBmb290ZXIgYW5k IGZvb3RlciBiaXRtYXAgKGlmIGFueSkKKysgICAgICAgICBkYy5TZXRUZXh0Rm9yZWdyb3VuZChu b3JtYWxUZXh0KQorKyAgICAgICAgIGhlaWdodCA9IG1heCh0ZXh0SGVpZ2h0LCBibXBIZWlnaHQp CisrQEAgLTQyNCw3ICs0MjQsNyBAQCBkZWYgT25QYWludChzZWxmLCBldmVudCk6CisrICAgICAg ICAgICAgIG1heFdpZHRoID0gbWF4KGJtcFhQb3MgKyBibXBXaWR0aCArIChzZWxmLl9zcGFjaW5n KjIpICsgdGV4dFdpZHRoLCBtYXhXaWR0aCkKKysgICAgICAgICBpZiBmb290ZXJCbXAgYW5kIGZv b3RlckJtcC5Jc09rKCk6CisrICAgICAgICAgICAgIHRvQWRkID0gKGhlaWdodCAtIGJtcEhlaWdo dCArIHNlbGYuX3NwYWNpbmcpIC8gMgorKy0gICAgICAgICAgICBkYy5EcmF3Qml0bWFwKGZvb3Rl ckJtcCwgYm1wWFBvcywgeVBvcyArIHRvQWRkLCBUcnVlKQorKysgICAgICAgICAgICBkYy5EcmF3 Qml0bWFwKGZvb3RlckJtcCwgYm1wWFBvcywgaW50KHlQb3MgKyB0b0FkZCksIFRydWUpCisrICAg ICAgICAgICAgIG1heFdpZHRoID0gbWF4KGZvb3RlckJtcC5HZXRTaXplKCkuR2V0V2lkdGgoKSAr IGJtcFhQb3MsIG1heFdpZHRoKQorKyAKKysgICAgICAgICBtYXhIZWlnaHQgPSB5UG9zICsgaGVp Z2h0ICsgdG9BZGQKKytAQCAtODE1LDcgKzgxNSw3IEBAIGRlZiBTZXRTdGFydERlbGF5KHNlbGYs IGRlbGF5PTEpOgorKyAgICAgICAgIDpwYXJhbSBgZGVsYXlgOiB0aGUgZGVsYXkgaW4gc2Vjb25k cy4KKysgICAgICAgICAiIiIKKysgCisrLSAgICAgICAgc2VsZi5fc3RhcnREZWxheVRpbWUgPSBm bG9hdChkZWxheSkKKysrICAgICAgICBzZWxmLl9zdGFydERlbGF5VGltZSA9IGludChkZWxheSkK KysgCisrIAorKyAgICAgZGVmIEdldFN0YXJ0RGVsYXkoc2VsZik6CisrQEAgLTgzMSw3ICs4MzEs NyBAQCBkZWYgU2V0RW5kRGVsYXkoc2VsZiwgZGVsYXk9MWU2KToKKysgICAgICAgICA6cGFyYW0g YGRlbGF5YDogdGhlIGRlbGF5IGluIHNlY29uZHMuCisrICAgICAgICAgIiIiCisrIAorKy0gICAg ICAgIHNlbGYuX2VuZERlbGF5VGltZSA9IGZsb2F0KGRlbGF5KQorKysgICAgICAgIHNlbGYuX2Vu ZERlbGF5VGltZSA9IGludChkZWxheSkKKysgCisrIAorKyAgICAgZGVmIEdldEVuZERlbGF5KHNl bGYpOgorK2RpZmYgLS1naXQgYS93eC9saWIvYWd3L3RvYXN0ZXJib3gucHkgYi93eC9saWIvYWd3 L3RvYXN0ZXJib3gucHkKKytpbmRleCBiNzM0MjlkZDIuLjhlZmI1ODY5YiAxMDA2NDQKKystLS0g YS93eC9saWIvYWd3L3RvYXN0ZXJib3gucHkKKysrKysgYi93eC9saWIvYWd3L3RvYXN0ZXJib3gu cHkKKytAQCAtMTMxNiwxMSArMTMxNiwxMSBAQCBkZWYgX2dldFRleHRDb29yZHMoc2VsZiwgZGMp OgorKyAgICAgICAgIGZvciBsaW5lIGluIGxpbmVzOgorKyAgICAgICAgICAgICB3LCBoID0gZGMu R2V0VGV4dEV4dGVudChsaW5lKQorKyAgICAgICAgICAgICBmaCArPSBoICsgdGV4dFBhZGRpbmcK KystICAgICAgICB5ID0gKHRoIC0gZmgpIC8gMjsgY29vcmRzID0gW10KKysrICAgICAgICB5ID0g KHRoIC0gZmgpIC8vIDI7IGNvb3JkcyA9IFtdCisrIAorKyAgICAgICAgIGZvciBsaW5lIGluIGxp bmVzOgorKyAgICAgICAgICAgICB3LCBoID0gZGMuR2V0VGV4dEV4dGVudChsaW5lKQorKy0gICAg ICAgICAgICB4ID0gKHR3IC0gdykgLyAyCisrKyAgICAgICAgICAgIHggPSAodHcgLSB3KSAvLyAy CisrICAgICAgICAgICAgIGNvb3Jkcy5hcHBlbmQoKHgsIHkpKQorKyAgICAgICAgICAgICB5ICs9 IGggKyB0ZXh0UGFkZGluZworKyAKKytkaWZmIC0tZ2l0IGEvd3gvbGliL2Fndy91bHRpbWF0ZWxp c3RjdHJsLnB5IGIvd3gvbGliL2Fndy91bHRpbWF0ZWxpc3RjdHJsLnB5CisraW5kZXggMTRmYzQx Zjg2Li5jYWE1ZTVjZjQgMTAwNjQ0CisrLS0tIGEvd3gvbGliL2Fndy91bHRpbWF0ZWxpc3RjdHJs LnB5CisrKysrIGIvd3gvbGliL2Fndy91bHRpbWF0ZWxpc3RjdHJsLnB5CisrQEAgLTkxNCw3ICs5 MTQsNyBAQCBkZWYgRHJhdyhzZWxmLCBpbmRleCwgZGMsIHgsIHksIGZsYWdzLCBzb2xpZEJhY2tn cm91bmQ9VHJ1ZSk6CisrICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiV3JvbmcgaW5kZXgg aW4gaW1hZ2UgbGlzdCIpCisrIAorKyAgICAgICAgIGJtcCA9IHNlbGYuX2ltYWdlc1tpbmRleF0K KystICAgICAgICBkYy5EcmF3Qml0bWFwKGJtcCwgeCwgeSwgKGZsYWdzICYgd3guSU1BR0VMSVNU X0RSQVdfVFJBTlNQQVJFTlQpID4gMCkKKysrICAgICAgICBkYy5EcmF3Qml0bWFwKGJtcCwgeCwg aW50KHkpLCAoZmxhZ3MgJiB3eC5JTUFHRUxJU1RfRFJBV19UUkFOU1BBUkVOVCkgPiAwKQorKyAK KysgICAgICAgICByZXR1cm4gVHJ1ZQorKyAKKytAQCAtNDAyMiw3ICs0MDIyLDcgQEAgZGVmIFNl dFBvc2l0aW9uKHNlbGYsIHgsIHksIHNwYWNpbmcpOgorKyAKKysgICAgICAgICAgICAgaWYgaXRl bS5IYXNJbWFnZSgpOgorKyAKKystICAgICAgICAgICAgICAgIHNlbGYuX2dpLl9yZWN0SWNvbi54 ID0gc2VsZi5fZ2kuX3JlY3RBbGwueCArIDQgKyAoc2VsZi5fZ2kuX3JlY3RBbGwud2lkdGggLSBz ZWxmLl9naS5fcmVjdEljb24ud2lkdGgpLzIKKysrICAgICAgICAgICAgICAgIHNlbGYuX2dpLl9y ZWN0SWNvbi54ID0gc2VsZi5fZ2kuX3JlY3RBbGwueCArIDQgKyAoc2VsZi5fZ2kuX3JlY3RBbGwu d2lkdGggLSBzZWxmLl9naS5fcmVjdEljb24ud2lkdGgpLy8yCisrICAgICAgICAgICAgICAgICBz ZWxmLl9naS5fcmVjdEljb24ueSA9IHNlbGYuX2dpLl9yZWN0QWxsLnkgKyA0CisrIAorKyAgICAg ICAgICAgICBpZiBpdGVtLkhhc1RleHQoKToKKytAQCAtNDAzMCw3ICs0MDMwLDcgQEAgZGVmIFNl dFBvc2l0aW9uKHNlbGYsIHgsIHksIHNwYWNpbmcpOgorKyAgICAgICAgICAgICAgICAgaWYgc2Vs Zi5fZ2kuX3JlY3RMYWJlbC53aWR0aCA+IHNwYWNpbmc6CisrICAgICAgICAgICAgICAgICAgICAg c2VsZi5fZ2kuX3JlY3RMYWJlbC54ID0gc2VsZi5fZ2kuX3JlY3RBbGwueCArIDIKKysgICAgICAg ICAgICAgICAgIGVsc2U6CisrLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fZ2kuX3JlY3RMYWJl bC54ID0gc2VsZi5fZ2kuX3JlY3RBbGwueCArIDIgKyAoc3BhY2luZy8yKSAtIChzZWxmLl9naS5f cmVjdExhYmVsLndpZHRoLzIpCisrKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fZ2kuX3JlY3RM YWJlbC54ID0gc2VsZi5fZ2kuX3JlY3RBbGwueCArIDIgKyAoc3BhY2luZy8vMikgLSAoc2VsZi5f Z2kuX3JlY3RMYWJlbC53aWR0aC8vMikKKysgCisrICAgICAgICAgICAgICAgICBzZWxmLl9naS5f cmVjdExhYmVsLnkgPSBzZWxmLl9naS5fcmVjdEFsbC55ICsgc2VsZi5fZ2kuX3JlY3RBbGwuaGVp Z2h0ICsgMiAtIHNlbGYuX2dpLl9yZWN0TGFiZWwuaGVpZ2h0CisrICAgICAgICAgICAgICAgICBz ZWxmLl9naS5fcmVjdEhpZ2hsaWdodC54ID0gc2VsZi5fZ2kuX3JlY3RMYWJlbC54IC0gMgorK0BA IC00NTQ2LDcgKzQ1NDYsNyBAQCBkZWYgRHJhd0luUmVwb3J0TW9kZShzZWxmLCBkYywgbGluZSwg cmVjdCwgcmVjdEhMLCBoaWdobGlnaHRlZCwgY3VycmVudCwgZW5hYmxlZAorKyAgICAgICAgICAg ICAgICAgIyBXZSBnb3QgYSBjaGVja2JveC10eXBlIGl0ZW0KKysgICAgICAgICAgICAgICAgIGl4 LCBpeSA9IHNlbGYuX293bmVyLkdldENoZWNrYm94SW1hZ2VTaXplKCkKKysgICAgICAgICAgICAg ICAgIGNoZWNrZWQgPSBpdGVtLklzQ2hlY2tlZCgpCisrLSAgICAgICAgICAgICAgICBzZWxmLl9v d25lci5EcmF3Q2hlY2tib3goZGMsIHhPbGQsIHkgKyAoaGVpZ2h0LWl5KzEpLzIsIGl0ZW0uR2V0 S2luZCgpLCBjaGVja2VkLCBlbmFibGVkKQorKysgICAgICAgICAgICAgICAgc2VsZi5fb3duZXIu RHJhd0NoZWNrYm94KGRjLCB4T2xkLCB5ICsgKGhlaWdodC1peSsxKS8vMiwgaXRlbS5HZXRLaW5k KCksIGNoZWNrZWQsIGVuYWJsZWQpCisrICAgICAgICAgICAgICAgICB4T2xkICs9IGl4CisrICAg ICAgICAgICAgICAgICB3aWR0aCAtPSBpeAorKyAKKytAQCAtNDU1Nyw3ICs0NTU3LDcgQEAgZGVm IERyYXdJblJlcG9ydE1vZGUoc2VsZiwgZGMsIGxpbmUsIHJlY3QsIHJlY3RITCwgaGlnaGxpZ2h0 ZWQsIGN1cnJlbnQsIGVuYWJsZWQKKysgICAgICAgICAgICAgICAgIGZvciBpbWcgaW4gaW1hZ2Vz OgorKyAKKysgICAgICAgICAgICAgICAgICAgICBpeCwgaXkgPSBzZWxmLl9vd25lci5HZXRJbWFn ZVNpemUoW2ltZ10pCisrLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fb3duZXIuRHJhd0ltYWdl KGltZywgZGMsIHhPbGQsIHkgKyAoaGVpZ2h0LWl5KS8yLCBlbmFibGVkKQorKysgICAgICAgICAg ICAgICAgICAgIHNlbGYuX293bmVyLkRyYXdJbWFnZShpbWcsIGRjLCB4T2xkLCB5ICsgKGhlaWdo dC1peSkvLzIsIGVuYWJsZWQpCisrIAorKyAgICAgICAgICAgICAgICAgICAgIHhPbGQgKz0gaXgK KysgICAgICAgICAgICAgICAgICAgICB3aWR0aCAtPSBpeAorK0BAIC01MjMwLDcgKzUyMzAsNyBA QCBkZWYgT25QYWludChzZWxmLCBldmVudCk6CisrICAgICAgICAgICAgICAgICAjIFdlIGdvdCBh IGNoZWNrYm94LXR5cGUgaXRlbQorKyAgICAgICAgICAgICAgICAgaXgsIGl5ID0gc2VsZi5fb3du ZXIuR2V0Q2hlY2tib3hJbWFnZVNpemUoKQorKyAgICAgICAgICAgICAgICAgIyBXZSBkcmF3IGl0 IG9uIHRoZSBsZWZ0LCBhbHdheXMKKystICAgICAgICAgICAgICAgIHNlbGYuX293bmVyLkRyYXdD aGVja2JveChkYywgeCArIEhFQURFUl9PRkZTRVRfWCwgSEVBREVSX09GRlNFVF9ZICsgKGggLSA0 IC0gaXkpLzIsIGtpbmQsIGNoZWNrZWQsIGVuYWJsZWQpCisrKyAgICAgICAgICAgICAgICBzZWxm Ll9vd25lci5EcmF3Q2hlY2tib3goZGMsIHggKyBIRUFERVJfT0ZGU0VUX1gsIEhFQURFUl9PRkZT RVRfWSArIChoIC0gNCAtIGl5KS8vMiwga2luZCwgY2hlY2tlZCwgZW5hYmxlZCkKKysgICAgICAg ICAgICAgICAgIHdjaGVjayArPSBpeCArIEhFQURFUl9JTUFHRV9NQVJHSU5fSU5fUkVQT1JUX01P REUKKysgICAgICAgICAgICAgICAgIGN3IC09IGl4ICsgSEVBREVSX0lNQUdFX01BUkdJTl9JTl9S RVBPUlRfTU9ERQorKyAKKytAQCAtNjgxOSw3ICs2ODE5LDcgQEAgZGVmIEhpdFRlc3RMaW5lKHNl bGYsIGxpbmUsIHgsIHkpOgorKyAgICAgICAgICAgICAgICAgICAgICMgV2UgZ290IGEgY2hlY2ti b3gtdHlwZSBpdGVtCisrICAgICAgICAgICAgICAgICAgICAgaXgsIGl5ID0gc2VsZi5HZXRDaGVj a2JveEltYWdlU2l6ZSgpCisrICAgICAgICAgICAgICAgICAgICAgTEggPSBzZWxmLkdldExpbmVI ZWlnaHQobGluZSkKKystICAgICAgICAgICAgICAgICAgICByZWN0ID0gd3guUmVjdCh4T2xkLCBs aW5lWSArIExILzIgLSBpeS8yLCBpeCwgaXkpCisrKyAgICAgICAgICAgICAgICAgICAgcmVjdCA9 IHd4LlJlY3QoeE9sZCwgbGluZVkgKyBMSC8vMiAtIGl5Ly8yLCBpeCwgaXkpCisrICAgICAgICAg ICAgICAgICAgICAgaWYgcmVjdC5Db250YWlucygoeCwgeSkpOgorKyAgICAgICAgICAgICAgICAg ICAgICAgICBuZXdJdGVtID0gc2VsZi5HZXRQYXJlbnQoKS5HZXRJdGVtKGxpbmUsIGNvbCkKKysg ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ld0l0ZW0sIFVMQ19ISVRURVNUX09OSVRF TUNIRUNLCisrQEAgLTc5MzcsMTMgKzc5MzcsMTMgQEAgZGVmIE1vdmVUb0l0ZW0oc2VsZiwgaXRl bSk6CisrICAgICAgICAgICAgICAgICAgICAgd2hpbGUgc3RhcnRfeSA+IHZpZXdfeToKKysgICAg ICAgICAgICAgICAgICAgICAgICAgc3RhcnRfeSAtPSBTQ1JPTExfVU5JVF9ZCisrIAorKy0gICAg ICAgICAgICAgICAgICAgIHNlbGYuU2Nyb2xsKC0xLCBzdGFydF95L1NDUk9MTF9VTklUX1kpCisr KyAgICAgICAgICAgICAgICAgICAgc2VsZi5TY3JvbGwoLTEsIHN0YXJ0X3kvL1NDUk9MTF9VTklU X1kpCisrIAorKyAgICAgICAgICAgICAgICAgaWYgc3RhcnRfeSArIGhlaWdodCA+IHZpZXdfeSAr IGNsaWVudF9oOgorKyAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHN0YXJ0X3kgKyBoZWlnaHQg PCB2aWV3X3kgKyBjbGllbnRfaDoKKysgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfeSAr PSBTQ1JPTExfVU5JVF9ZCisrIAorKy0gICAgICAgICAgICAgICAgICAgIHNlbGYuU2Nyb2xsKC0x LCAoc3RhcnRfeStoZWlnaHQtY2xpZW50X2grU0NST0xMX1VOSVRfWSkvU0NST0xMX1VOSVRfWSkK KysrICAgICAgICAgICAgICAgICAgICBzZWxmLlNjcm9sbCgtMSwgKHN0YXJ0X3kraGVpZ2h0LWNs aWVudF9oK1NDUk9MTF9VTklUX1kpLy9TQ1JPTExfVU5JVF9ZKQorKyAKKysgICAgICAgICBlbHNl OiAjICFyZXBvcnQKKysgCisrQEAgLTc5NjAsNyArNzk2MCw3IEBAIGRlZiBNb3ZlVG9JdGVtKHNl bGYsIGl0ZW0pOgorKyAgICAgICAgICAgICBpZiByZWN0LnkgKyByZWN0LmhlaWdodCAtIDUgPiB2 aWV3X3kgKyBjbGllbnRfaDoKKysgICAgICAgICAgICAgICAgIHN5ID0gKHJlY3QueSArIHJlY3Qu aGVpZ2h0IC0gY2xpZW50X2ggKyBoTGluZSkvaExpbmUKKysgCisrLSAgICAgICAgICAgIHNlbGYu U2Nyb2xsKHN4LCBzeSkKKysrICAgICAgICAgICAgc2VsZi5TY3JvbGwoaW50KHN4KSwgaW50KHN5 KSkKKysgCisrIAorKyAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKytkaWZmIC0tZ2l0IGEvd3gvbGli L2Fndy94bHNncmlkLnB5IGIvd3gvbGliL2Fndy94bHNncmlkLnB5CisraW5kZXggYjUwNWFlYmI0 Li4xNzI2N2ZhYmMgMTAwNjQ0CisrLS0tIGEvd3gvbGliL2Fndy94bHNncmlkLnB5CisrKysrIGIv d3gvbGliL2Fndy94bHNncmlkLnB5CisrQEAgLTk2NSw3ICs5NjUsNyBAQCBkZWYgRHJhdyhzZWxm LCBkYywgcmVjdCk6CisrICAgICAgICAgICAgIHhwID0geGMgLSAodGV4dF93aWR0aC8yKSp4c2hp ZnQgLSAodGV4dF9oZWlnaHQvMikqeXNoaWZ0CisrICAgICAgICAgICAgIHlwID0geWMgKyAodGV4 dF93aWR0aC8yKSp5c2hpZnQgLSAodGV4dF9oZWlnaHQvMikqeHNoaWZ0CisrIAorKy0gICAgICAg ICAgICBkYy5EcmF3Um90YXRlZFRleHQodmFsdWUsIHhwLCB5cCwgc2VsZi5yb3RhdGlvbikKKysr ICAgICAgICAgICAgZGMuRHJhd1JvdGF0ZWRUZXh0KHZhbHVlLCBpbnQoeHApLCBpbnQoeXApLCBz ZWxmLnJvdGF0aW9uKQorKyAKKysgICAgICAgICBlbHNlOgorKyAKKytAQCAtMTEyNSw3ICsxMTI1 LDcgQEAgZGVmIERyYXcoc2VsZiwgZGMsIHJlY3QpOgorKyAgICAgICAgICAgICBpZiBmb250LmVz Y2FwZW1lbnQgPT0gMToKKysgICAgICAgICAgICAgICAgIHlwb3MgPSB5cG9zIC0gbWF4SCArIGhl aWdodAorKyAKKystICAgICAgICAgICAgZGMuRHJhd1RleHQoY2h1bmssIHN0YXJ0LCB5cG9zKQor KysgICAgICAgICAgICBkYy5EcmF3VGV4dChjaHVuaywgc3RhcnQsIGludCh5cG9zKSkKKysgICAg ICAgICAgICAgc3RhcnQgKz0gd2lkdGgKKysgCisrIAorK2RpZmYgLS1naXQgYS93eC9saWIvYWd3 L3pvb21iYXIucHkgYi93eC9saWIvYWd3L3pvb21iYXIucHkKKytpbmRleCAxZTZlYzVkYTMuLjhj MmFmZDA1OCAxMDA2NDQKKystLS0gYS93eC9saWIvYWd3L3pvb21iYXIucHkKKysrKysgYi93eC9s aWIvYWd3L3pvb21iYXIucHkKKytAQCAtNDYzLDcgKzQ2Myw3IEBAIGRlZiBTZXRTaXplKHNlbGYs IHdpZHRoLCBoZWlnaHQpOgorKyAgICAgZGVmIEdldFBvc2l0aW9uKHNlbGYpOgorKyAgICAgICAg ICIiIiBSZXR1cm5zIHRoZSBidXR0b24gcG9zaXRpb24uICIiIgorKyAKKystICAgICAgICByZXR1 cm4gd3guUG9pbnQoc2VsZi5fbGVmdCwgc2VsZi5fdG9wKQorKysgICAgICAgIHJldHVybiB3eC5Q b2ludChpbnQoc2VsZi5fbGVmdCksIGludChzZWxmLl90b3ApKQorKyAKKysgCisrICAgICBkZWYg R2V0U2l6ZShzZWxmKToKKytAQCAtNjAxLDcgKzYwMSw3IEBAIGRlZiBfX2luaXRfXyhzZWxmLCBi aXRtYXA9Tm9uZSk6CisrICAgICBkZWYgR2V0UG9zaXRpb24oc2VsZik6CisrICAgICAgICAgIiIi IFJldHVybnMgdGhlIHBvc2l0aW9uIG9mIDpjbGFzczpgd3guSW1hZ2VCYXJgLCBhcyBhIDpjbGFz czpgd3guUG9pbnRgLiAiIiIKKysgCisrLSAgICAgICAgcmV0dXJuIHd4LlBvaW50KHNlbGYuX2xl ZnQsIHNlbGYuX3RvcCkKKysrICAgICAgICByZXR1cm4gd3guUG9pbnQoaW50KHNlbGYuX2xlZnQp LCBpbnQoc2VsZi5fdG9wKSkKKysgCisrIAorKyAgICAgZGVmIEdldFNpemUoc2VsZik6CisrQEAg LTY2MCw3ICs2NjAsNyBAQCBkZWYgU2V0QmFyQ29sb3VyKHNlbGYsIGNvbG91ciwgeFNpemU9Tm9u ZSwgeVNpemU9Tm9uZSk6CisrICAgICAgICAgaWYgeFNpemUgaXMgbm90IE5vbmU6CisrICAgICAg ICAgICAgIHNlbGYuX3NpemUgPSB3eC5TaXplKHhTaXplLCB5U2l6ZSkKKysgCisrLSAgICAgICAg Yml0bWFwLlJlc2NhbGUoc2VsZi5fc2l6ZS53aWR0aCwgc2VsZi5fc2l6ZS5oZWlnaHQvMikKKysr ICAgICAgICBiaXRtYXAuUmVzY2FsZShzZWxmLl9zaXplLndpZHRoLCBzZWxmLl9zaXplLmhlaWdo dC8vMikKKysgCisrICAgICAgICAgcjEsIGcxLCBiMSA9IHNlbGYuX3N0YXJ0Q29sb3VyLlJlZCgp LCBzZWxmLl9zdGFydENvbG91ci5HcmVlbigpLCBzZWxmLl9zdGFydENvbG91ci5CbHVlKCkKKysg ICAgICAgICByMiwgZzIsIGIyID0gY29sb3VyLlJlZCgpLCBjb2xvdXIuR3JlZW4oKSwgY29sb3Vy LkJsdWUoKQorK0BAIC0xMDY1LDcgKzEwNjUsNyBAQCBkZWYgUmVzZXRTaXplKHNlbGYpOgorKyAg ICAgICAgICAgICB5U2l6ZSArPSB5ZXh0ZW50CisrIAorKyAgICAgICAgIGlmIHNlbGYuX3Nob3dS ZWZsZWN0aW9uczoKKystICAgICAgICAgICAgeVNpemUgKz0gc2VsZi5fYnV0dG9uU2l6ZS8yCisr KyAgICAgICAgICAgIHlTaXplICs9IHNlbGYuX2J1dHRvblNpemUvLzIKKysgICAgICAgICBpZiBz ZWxmLl9jZW50ZXJab29tOgorKyAgICAgICAgICAgICB5U2l6ZSArPSBzZWxmLl9idXR0b25TaXpl CisrIAorK0BAIC0xMjQwLDcgKzEyNDAsNyBAQCBkZWYgRHJhd0xhYmVscyhzZWxmLCBkYyk6Cisr ICAgICAgICAgICAgIHRleHRXaWR0aCwgdGV4dEhlaWdodCA9IGRjLkdldFRleHRFeHRlbnQobGFi ZWwpCisrICAgICAgICAgICAgIGJ1dHRvblBvcyA9IGJ1dHRvbi5HZXRQb3NpdGlvbigpCisrICAg ICAgICAgICAgIGJ1dHRvblNpemUgPSBidXR0b24uR2V0U2l6ZSgpCisrLSAgICAgICAgICAgIHhw b3MgPSBidXR0b25Qb3MueCArIChidXR0b25TaXplLndpZHRoIC0gdGV4dFdpZHRoKS8yCisrKyAg ICAgICAgICAgIHhwb3MgPSBidXR0b25Qb3MueCArIChidXR0b25TaXplLndpZHRoIC0gdGV4dFdp ZHRoKS8vMgorKyAgICAgICAgICAgICB5cG9zID0gYnV0dG9uUG9zLnkgLSB0ZXh0SGVpZ2h0IC0g MgorKyAKKysgICAgICAgICAgICAgZGMuRHJhd1JlY3RhbmdsZSh4cG9zLTIsIHlwb3MtMSwgdGV4 dFdpZHRoKzQsIHRleHRIZWlnaHQrMikKKytkaWZmIC0tZ2l0IGEvd3gvbGliL2FuYWxvZ2Nsb2Nr L2FuYWxvZ2Nsb2NrLnB5IGIvd3gvbGliL2FuYWxvZ2Nsb2NrL2FuYWxvZ2Nsb2NrLnB5CisraW5k ZXggN2M0YjE4OTc5Li4xZWUxZDY3NDIgMTAwNjQ0CisrLS0tIGEvd3gvbGliL2FuYWxvZ2Nsb2Nr L2FuYWxvZ2Nsb2NrLnB5CisrKysrIGIvd3gvbGliL2FuYWxvZ2Nsb2NrL2FuYWxvZ2Nsb2NrLnB5 CisrQEAgLTE3Myw3ICsxNzMsNyBAQCBkZWYgX3JlY2FsY0Nvb3JkcyhzZWxmLCBzaXplKToKKysg ICAgICAgICBzY2FsZSA9IG1pbihbZmxvYXQoc2l6ZS53aWR0aCkgLyBzZWxmLmJhc2VzaXplLndp ZHRoLAorKyAgICAgICAgICAgICAgICAgICAgICBmbG9hdChzaXplLmhlaWdodCkgLyBzZWxmLmJh c2VzaXplLmhlaWdodF0pCisrIAorKy0gICAgICAgIGNlbnRyZSA9IHd4LlBvaW50KHNpemUud2lk dGggLyAyLiwgc2l6ZS5oZWlnaHQgLyAyLikKKysrICAgICAgICBjZW50cmUgPSB3eC5Qb2ludChz aXplLndpZHRoIC8vIDIsIHNpemUuaGVpZ2h0IC8vIDIpCisrIAorKyAgICAgICAgIHNlbGYuQm94 LlJlY2FsY0Nvb3JkcyhzaXplLCBjZW50cmUsIHNjYWxlKQorKyAgICAgICAgIHNlbGYuSGFuZHMu UmVjYWxjQ29vcmRzKHNpemUsIGNlbnRyZSwgc2NhbGUpCisrZGlmZiAtLWdpdCBhL3d4L2xpYi9h bmFsb2djbG9jay9oZWxwZXJzLnB5IGIvd3gvbGliL2FuYWxvZ2Nsb2NrL2hlbHBlcnMucHkKKytp bmRleCA4OGQxOThiZWUuLjk2NzRkZTkxMiAxMDA2NDQKKystLS0gYS93eC9saWIvYW5hbG9nY2xv Y2svaGVscGVycy5weQorKysrKyBiL3d4L2xpYi9hbmFsb2djbG9jay9oZWxwZXJzLnB5CisrQEAg LTM3LDcgKzM3LDcgQEAgZGVmIF9faW5pdF9fKHNlbGYsIGlkeD0wLCBwb3M9Tm9uZSwgc2l6ZT1O b25lLCBvZmZzZXQ9MCwgY2xvY2tzaXplPU5vbmUsCisrIAorKyAKKysgICAgIGRlZiBfcG9sMnJl Y3Qoc2VsZiwgbSwgdCk6CisrLSAgICAgICAgcmV0dXJuIG0gKiBtYXRoLmNvcyhtYXRoLnJhZGlh bnModCkpLCBtICogbWF0aC5zaW4obWF0aC5yYWRpYW5zKHQpKQorKysgICAgICAgIHJldHVybiBp bnQobSAqIG1hdGguY29zKG1hdGgucmFkaWFucyh0KSkpLCBpbnQobSAqIG1hdGguc2luKG1hdGgu cmFkaWFucyh0KSkpCisrIAorKyAKKysgICAgIGRlZiBfcmVjdDJwb2woc2VsZiwgeCwgeSk6Cisr QEAgLTE3NCw3ICsxNzQsNyBAQCBkZWYgX19pbml0X18oc2VsZiwgKiprd2FyZ3MpOgorKyAKKysg ICAgIGRlZiBEcmF3KHNlbGYsIGRjKToKKysgICAgICAgICBzZWxmLmR5ZXIuU2VsZWN0KGRjKQor Ky0gICAgICAgIGRjLkRyYXdDaXJjbGUoc2VsZi5wb3MueCwgc2VsZi5wb3MueSwgc2VsZi5yYWRp dXMpCisrKyAgICAgICAgZGMuRHJhd0NpcmNsZShzZWxmLnBvcy54LCBzZWxmLnBvcy55LCBpbnQo c2VsZi5yYWRpdXMpKQorKyAKKysgCisrICAgICBkZWYgUmVjYWxjQ29vcmRzKHNlbGYsIGNsb2Nr c2l6ZSwgY2VudHJlLCBzY2FsZSk6CisrQEAgLTIwNSw3ICsyMDUsNyBAQCBkZWYgRHJhdyhzZWxm LCBkYywgZW5kLCBvZmZzZXQ9MCk6CisrICAgICAgICAgICAgIG0sIHQgPSBzZWxmLl9yZWN0MnBv bCh4LCB5KQorKyAgICAgICAgICAgICBwb2x5Z29uW2ldID0gc2VsZi5fcG9sMnJlY3QobSwgdCAt IGFuZ2xlKQorKyAKKystICAgICAgICBkYy5EcmF3UG9seWdvbihwb2x5Z29uLCBjZW50cmUueCAr IG9mZnNldCwgY2VudHJlLnkgKyBvZmZzZXQpCisrKyAgICAgICAgZGMuRHJhd1BvbHlnb24ocG9s eWdvbiwgaW50KGNlbnRyZS54ICsgb2Zmc2V0KSwgaW50KGNlbnRyZS55ICsgb2Zmc2V0KSkKKysg CisrIAorKyAgICAgZGVmIFJlY2FsY0Nvb3JkcyhzZWxmLCBjbG9ja3NpemUsIGNlbnRyZSwgc2Nh bGUpOgorK0BAIC0yMjYsNyArMjI2LDcgQEAgZGVmIERyYXcoc2VsZiwgZGMsIG9mZnNldD0wKToK KysgICAgICAgICB4ID0gc2VsZi5wb3MueCAtIHdpZHRoIC8gMi4KKysgICAgICAgICB5ID0gc2Vs Zi5wb3MueSAtIGhlaWdodCAvIDIuCisrIAorKy0gICAgICAgIGRjLkRyYXdSZWN0YW5nbGUoeCAr IG9mZnNldCwgeSArIG9mZnNldCwgd2lkdGgsIGhlaWdodCkKKysrICAgICAgICBkYy5EcmF3UmVj dGFuZ2xlKGludCh4ICsgb2Zmc2V0KSwgaW50KHkgKyBvZmZzZXQpLCBpbnQod2lkdGgpLCBpbnQo aGVpZ2h0KSkKKysgCisrICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrIAorK0BAIC0yNDIsNyArMjQyLDcgQEAg ZGVmIERyYXcoc2VsZiwgZGMsIG9mZnNldD0wKToKKysgICAgICAgICB4ID0gc2VsZi5wb3MueAor KyAgICAgICAgIHkgPSBzZWxmLnBvcy55CisrIAorKy0gICAgICAgIGRjLkRyYXdDaXJjbGUoeCAr IG9mZnNldCwgeSArIG9mZnNldCwgcmFkaXVzKQorKysgICAgICAgIGRjLkRyYXdDaXJjbGUoaW50 KHggKyBvZmZzZXQpLCBpbnQoeSArIG9mZnNldCksIGludChyYWRpdXMpKQorKyAKKysgIy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKysgCisrQEAgLTI3Myw3ICsyNzMsNyBAQCBkZWYgRHJhd1N0cmFpZ2h0KHNlbGYs IGRjLCBvZmZzZXQ9MCk6CisrICAgICAgICAgeCA9IHNlbGYucG9zLnggLSB3aWR0aCAvIDIuCisr ICAgICAgICAgeSA9IHNlbGYucG9zLnkgLSBoZWlnaHQgLyAyLgorKyAKKystICAgICAgICBkYy5E cmF3UG9seWdvbihwb2x5Z29uLCB4ICsgb2Zmc2V0LCB5ICsgb2Zmc2V0KQorKysgICAgICAgIGRj LkRyYXdQb2x5Z29uKHBvbHlnb24sIGludCh4ICsgb2Zmc2V0KSwgaW50KHkgKyBvZmZzZXQpKQor KyAKKysgCisrICAgICBkZWYgRHJhd1JvdGF0ZWQoc2VsZiwgZGMsIG9mZnNldD0wKToKKytAQCAt MjkwLDcgKzI5MCw3IEBAIGRlZiBEcmF3Um90YXRlZChzZWxmLCBkYywgb2Zmc2V0PTApOgorKyAg ICAgICAgIHggPSBzZWxmLnBvcy54IC0gbWF0aC5jb3MocikgKiB3aWR0aCAvIDIuIC0gbWF0aC5z aW4ocikgKiBoZWlnaHQgLyAyLgorKyAgICAgICAgIHkgPSBzZWxmLnBvcy55IC0gbWF0aC5jb3Mo cikgKiBoZWlnaHQgLyAyLiArIG1hdGguc2luKHIpICogd2lkdGggLyAyLgorKyAKKystICAgICAg ICBkYy5EcmF3UG9seWdvbihwb2x5Z29uLCB4ICsgb2Zmc2V0LCB5ICsgb2Zmc2V0KQorKysgICAg ICAgIGRjLkRyYXdQb2x5Z29uKHBvbHlnb24sIGludCh4ICsgb2Zmc2V0KSwgaW50KHkgKyBvZmZz ZXQpKQorKyAKKysgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysgCisrQEAgLTMwOSw3ICszMDksNyBAQCBkZWYg RHJhd1N0cmFpZ2h0KHNlbGYsIGRjLCBvZmZzZXQ9MCk6CisrICAgICAgICAgeCA9IHNlbGYucG9z LnggLSB3aWR0aCAvIDIuCisrICAgICAgICAgeSA9IHNlbGYucG9zLnkgLSBoZWlnaHQgLyAyLgor KyAKKystICAgICAgICBkYy5EcmF3VGV4dChzZWxmLnRleHQsIHggKyBvZmZzZXQsIHkgKyBvZmZz ZXQpCisrKyAgICAgICAgZGMuRHJhd1RleHQoc2VsZi50ZXh0LCBpbnQoeCArIG9mZnNldCksIGlu dCh5ICsgb2Zmc2V0KSkKKysgCisrIAorKyAgICAgZGVmIERyYXdSb3RhdGVkKHNlbGYsIGRjLCBv ZmZzZXQ9MCk6CisrQEAgLTMyMSw3ICszMjEsNyBAQCBkZWYgRHJhd1JvdGF0ZWQoc2VsZiwgZGMs IG9mZnNldD0wKToKKysgICAgICAgICB4ID0gc2VsZi5wb3MueCAtIG1hdGguY29zKHIpICogd2lk dGggLyAyLiAtIG1hdGguc2luKHIpICogaGVpZ2h0IC8gMi4KKysgICAgICAgICB5ID0gc2VsZi5w b3MueSAtIG1hdGguY29zKHIpICogaGVpZ2h0IC8gMi4gKyBtYXRoLnNpbihyKSAqIHdpZHRoIC8g Mi4KKysgCisrLSAgICAgICAgZGMuRHJhd1JvdGF0ZWRUZXh0KHNlbGYudGV4dCwgeCArIG9mZnNl dCwgeSArIG9mZnNldCwgYW5nbGUpCisrKyAgICAgICAgZGMuRHJhd1JvdGF0ZWRUZXh0KHNlbGYu dGV4dCwgaW50KHggKyBvZmZzZXQpLCBpbnQoeSArIG9mZnNldCksIGludChhbmdsZSkpCisrIAor KyAKKysgIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKytAQCAtNjU2LDcgKzY1Niw3IEBAIGRlZiBSZWNhbGNDb29y ZHMoc2VsZiwgY2xvY2tzaXplLCBjZW50cmUsIHNjYWxlKToKKysgCisrICAgICAgICAgIyBUcnkg dG8gZmluZCBhICdnb29kJyBtYXggc2l6ZSBmb3IgdGV4dC1iYXNlZCB0aWNrcy4KKysgICAgICAg ICBpZiBhX3RpY2sudGV4dCBpcyBub3QgTm9uZToKKystICAgICAgICAgICAgc2VsZi5mb250LlNl dFBvaW50U2l6ZShzaXplKQorKysgICAgICAgICAgICBzZWxmLmZvbnQuU2V0UG9pbnRTaXplKGlu dChzaXplKSkKKysgICAgICAgICAgICAgZGMgPSB3eC5NZW1vcnlEQygpCisrICAgICAgICAgICAg IGRjLlNlbGVjdE9iamVjdCh3eC5CaXRtYXAoKmNsb2Nrc2l6ZS5HZXQoKSkpCisrICAgICAgICAg ICAgIGRjLlNldEZvbnQoc2VsZi5mb250KQorK0BAIC02ODYsNyArNjg2LDcgQEAgZGVmIFJlY2Fs Y0Nvb3JkcyhzZWxmLCBjbG9ja3NpemUsIGNlbnRyZSwgc2NhbGUpOgorKyAgICAgICAgICAgICB4 ID0gY2VudHJlLnggKyByYWRpdXMgKiBtYXRoLnNpbihhbmdsZSkKKysgICAgICAgICAgICAgeSA9 IGNlbnRyZS55ICsgcmFkaXVzICogbWF0aC5jb3MoYW5nbGUpCisrIAorKy0gICAgICAgICAgICB0 aWNrLlNldFBvc2l0aW9uKHd4LlBvaW50KHgsIHkpKQorKysgICAgICAgICAgICB0aWNrLlNldFBv c2l0aW9uKHd4LlBvaW50KGludCh4KSwgaW50KHkpKSkKKysgCisrIAorKyAgICAgZGVmIEdldFNp emUoc2VsZik6CisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hbmFsb2djbG9jay9zZXR1cC5weSBiL3d4 L2xpYi9hbmFsb2djbG9jay9zZXR1cC5weQorK2luZGV4IGE4M2M4NjM5ZC4uYTdkZmZiOTAxIDEw MDY0NAorKy0tLSBhL3d4L2xpYi9hbmFsb2djbG9jay9zZXR1cC5weQorKysrKyBiL3d4L2xpYi9h bmFsb2djbG9jay9zZXR1cC5weQorK0BAIC0xNzksNyArMTc5LDcgQEAgZGVmIF9faW5pdF9fKHNl bGYsIHBhcmVudCwgdGl0bGUsIGdyb3VwPSJIYW5kcyIpOgorKyAgICAgICAgIHAuU2V0Q3VzdG9t Q29sb3VycyhzZWxmLmN1c3RvbWNvbG91cnMpCisrICAgICAgICAgc2l6ZXIuQWRkKHAsIHBvcz0o MCwgMSksIGZsYWc9d3guQUxJR05fQ0VOVFJFX1ZFUlRJQ0FMKQorKyAKKystICAgICAgICBwID0g c2VsZi5idyA9IHd4LlNwaW5DdHJsKHNlbGYsIHNpemU9KDc1LCAyMSksCisrKyAgICAgICAgcCA9 IHNlbGYuYncgPSB3eC5TcGluQ3RybChzZWxmLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbWluPTAsIG1heD0xMDAsIHZhbHVlPSI3NSIpCisrICAgICAgICAgc2l6ZXIuQWRk KHAsIHBvcz0oMCwgMiksIHNwYW49KDEsIDIpLCBmbGFnPXd4LkFMSUdOX0NFTlRSRV9WRVJUSUNB TCkKKysgCisrQEAgLTE5Myw3ICsxOTMsNyBAQCBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50LCB0 aXRsZSwgZ3JvdXA9IkhhbmRzIik6CisrICAgICAgICAgcCA9IHNlbGYubHMgPSB3eC5TdGF0aWNU ZXh0KHNlbGYsIGxhYmVsPSJTaXplOiIpCisrICAgICAgICAgc2l6ZXIuQWRkKHAsIHBvcz0oMiwg MCksIGZsYWc9d3guQUxJR05fQ0VOVFJFX1ZFUlRJQ0FMKQorKyAKKystICAgICAgICBwID0gc2Vs Zi5zeiA9IHd4LlNwaW5DdHJsKHNlbGYsIHNpemU9KDc1LCAyMSksCisrKyAgICAgICAgcCA9IHNl bGYuc3ogPSB3eC5TcGluQ3RybChzZWxmLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbWluPTAsIG1heD0xMDAsIHZhbHVlPSI3NSIpCisrICAgICAgICAgc2l6ZXIuQWRkKHAs IHBvcz0oMiwgMSksIHNwYW49KDEsIDMpLCBmbGFnPXd4LkFMSUdOX0NFTlRSRV9WRVJUSUNBTCkK KysgCisrQEAgLTIxMiw3ICsyMTIsNyBAQCBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50LCB0aXRs ZSwgZ3JvdXA9IlRpY2tzIik6CisrICAgICAgICAgcCA9IHd4LlN0YXRpY1RleHQoc2VsZiwgbGFi ZWw9Ik9mZnNldDoiKQorKyAgICAgICAgIHNpemVyLkFkZChwLCBwb3M9KDMsIDApLCBmbGFnPXd4 LkFMSUdOX0NFTlRSRV9WRVJUSUNBTCkKKysgCisrLSAgICAgICAgcCA9IHNlbGYub2YgPSB3eC5T cGluQ3RybChzZWxmLCBzaXplPSg3NSwgMjEpLAorKysgICAgICAgIHAgPSBzZWxmLm9mID0gd3gu U3BpbkN0cmwoc2VsZiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbj0w LCBtYXg9MTAwLCB2YWx1ZT0iNzUiKQorKyAgICAgICAgIHNpemVyLkFkZChwLCBwb3M9KDMsIDEp LCBzcGFuPSgxLCAzKSwgZmxhZz13eC5BTElHTl9DRU5UUkVfVkVSVElDQUwpCisrIAorK2RpZmYg LS1naXQgYS93eC9saWIvYnV0dG9ucy5weSBiL3d4L2xpYi9idXR0b25zLnB5CisraW5kZXggNDZk MWI4NzQ3Li5mMDFhNTRkNDEgMTAwNjQ0CisrLS0tIGEvd3gvbGliL2J1dHRvbnMucHkKKysrKysg Yi93eC9saWIvYnV0dG9ucy5weQorK0BAIC00NTMsNyArNDUzLDcgQEAgZGVmIERyYXdMYWJlbChz ZWxmLCBkYywgd2lkdGgsIGhlaWdodCwgZHg9MCwgZHk9MCk6CisrICAgICAgICAgdHcsIHRoID0g ZGMuR2V0VGV4dEV4dGVudChsYWJlbCkKKysgICAgICAgICBpZiBub3Qgc2VsZi51cDoKKysgICAg ICAgICAgICAgZHggPSBkeSA9IHNlbGYubGFiZWxEZWx0YQorKy0gICAgICAgIGRjLkRyYXdUZXh0 KGxhYmVsLCAod2lkdGgtdHcpLzIrZHgsIChoZWlnaHQtdGgpLzIrZHkpCisrKyAgICAgICAgZGMu RHJhd1RleHQobGFiZWwsICh3aWR0aC10dykvLzIrZHgsIChoZWlnaHQtdGgpLy8yK2R5KQorKyAK KysgCisrICAgICBkZWYgRHJhd0ZvY3VzSW5kaWNhdG9yKHNlbGYsIGRjLCB3LCBoKToKKytAQCAt ODQ0LDcgKzg0NCw3IEBAIGRlZiBEcmF3TGFiZWwoc2VsZiwgZGMsIHdpZHRoLCBoZWlnaHQsIGR4 PTAsIGR5PTApOgorKyAgICAgICAgIGlmIG5vdCBzZWxmLnVwOgorKyAgICAgICAgICAgICBkeCA9 IGR5ID0gc2VsZi5sYWJlbERlbHRhCisrICAgICAgICAgaGFzTWFzayA9IGJtcC5HZXRNYXNrKCkg IT0gTm9uZQorKy0gICAgICAgIGRjLkRyYXdCaXRtYXAoYm1wLCAod2lkdGgtYncpLzIrZHgsICho ZWlnaHQtYmgpLzIrZHksIGhhc01hc2spCisrKyAgICAgICAgZGMuRHJhd0JpdG1hcChibXAsICh3 aWR0aC1idykvLzIrZHgsIChoZWlnaHQtYmgpLy8yK2R5LCBoYXNNYXNrKQorKyAKKysgCisrICMt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisrQEAgLTkyNiwxMiArOTI2LDEyIEBAIGRlZiBEcmF3TGFiZWwoc2VsZiwg ZGMsIHdpZHRoLCBoZWlnaHQsIGR4PTAsIGR5PTApOgorKyAgICAgICAgIGlmIG5vdCBzZWxmLnVw OgorKyAgICAgICAgICAgICBkeCA9IGR5ID0gc2VsZi5sYWJlbERlbHRhCisrIAorKy0gICAgICAg IHBvc194ID0gKHdpZHRoLWJ3LXR3KS8yK2R4ICAgICAgIyBhZGp1c3QgZm9yIGJpdG1hcCBhbmQg dGV4dCB0byBjZW50cmUKKysrICAgICAgICBwb3NfeCA9ICh3aWR0aC1idy10dykvLzIrZHggICAg ICAjIGFkanVzdCBmb3IgYml0bWFwIGFuZCB0ZXh0IHRvIGNlbnRyZQorKyAgICAgICAgIGlmIGJt cCBpcyBub3QgTm9uZToKKystICAgICAgICAgICAgZGMuRHJhd0JpdG1hcChibXAsIHBvc194LCAo aGVpZ2h0LWJoKS8yK2R5LCBoYXNNYXNrKSAjIGRyYXcgYml0bWFwIGlmIGF2YWlsYWJsZQorKysg ICAgICAgICAgICBkYy5EcmF3Qml0bWFwKGJtcCwgcG9zX3gsIChoZWlnaHQtYmgpLy8yK2R5LCBo YXNNYXNrKSAjIGRyYXcgYml0bWFwIGlmIGF2YWlsYWJsZQorKyAgICAgICAgICAgICBwb3NfeCA9 IHBvc194ICsgMiAgICMgZXh0cmEgc3BhY2luZyBmcm9tIGJpdG1hcAorKyAKKystICAgICAgICBk Yy5EcmF3VGV4dChsYWJlbCwgcG9zX3ggKyBkeCtidywgKGhlaWdodC10aCkvMitkeSkgICAgICAj IGRyYXcgdGhlIHRleHQKKysrICAgICAgICBkYy5EcmF3VGV4dChsYWJlbCwgcG9zX3ggKyBkeCti dywgKGhlaWdodC10aCkvLzIrZHkpICAgICAgIyBkcmF3IHRoZSB0ZXh0CisrIAorKyAKKysgIy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKytkaWZmIC0tZ2l0IGEvd3gvbGliL2NvbG91cmNob29zZXIvcHljb2xvdXJj aG9vc2VyLnB5IGIvd3gvbGliL2NvbG91cmNob29zZXIvcHljb2xvdXJjaG9vc2VyLnB5CisraW5k ZXggNjFkYmMwMmQyLi4xMjQzNzY0ODMgMTAwNjQ0CisrLS0tIGEvd3gvbGliL2NvbG91cmNob29z ZXIvcHljb2xvdXJjaG9vc2VyLnB5CisrKysrIGIvd3gvbGliL2NvbG91cmNob29zZXIvcHljb2xv dXJjaG9vc2VyLnB5CisrQEAgLTE4OCw3ICsxODgsNyBAQCBkZWYgX19pbml0X18oc2VsZiwgcGFy ZW50LCBpZCk6CisrICAgICAgICAgc2VsZi5jb2xvdXJfc2xpZGVyLkJpbmQod3guRVZUX01PVElP Tiwgc2VsZi5vblNsaWRlck1vdGlvbikKKysgICAgICAgICBzZWxmLnNsaWRlciA9IHd4LlNsaWRl cigKKysgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZiwgc2VsZi5pZFNDUk9MTCwgODYsIDAs IHNlbGYuY29sb3VyX3NsaWRlci5IRUlHSFQgLSAxLAorKy0gICAgICAgICAgICAgICAgICAgICAg ICBzdHlsZT13eC5TTF9WRVJUSUNBTCwgc2l6ZT0oMTUsIHNlbGYuY29sb3VyX3NsaWRlci5IRUlH SFQpCisrKyAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXd4LlNMX1ZFUlRJQ0FMLCBzaXpl PSgtMSwgc2VsZi5jb2xvdXJfc2xpZGVyLkhFSUdIVCkKKysgICAgICAgICAgICAgICAgICAgICAg ICAgKQorKyAKKysgICAgICAgICBzZWxmLkJpbmQod3guRVZUX0NPTU1BTkRfU0NST0xMLCBzZWxm Lm9uU2Nyb2xsLCBzZWxmLnNsaWRlcikKKytAQCAtMzM4LDcgKzMzOCw3IEBAIGRlZiBzZXRTbGlk ZXJUb1Yoc2VsZiwgdik6CisrICAgICAgICAgbWluID0gc2VsZi5zbGlkZXIuR2V0TWluKCkKKysg ICAgICAgICBtYXggPSBzZWxmLnNsaWRlci5HZXRNYXgoKQorKyAgICAgICAgIHZhbCA9ICgxIC0g dikgKiBtYXgKKystICAgICAgICBzZWxmLnNsaWRlci5TZXRWYWx1ZSh2YWwpCisrKyAgICAgICAg c2VsZi5zbGlkZXIuU2V0VmFsdWUoaW50KHZhbCkpCisrIAorKyAgICAgZGVmIGdldFZGcm9tU2xp ZGVyKHNlbGYpOgorKyAgICAgICAgICIiIkdldCB0aGUgY3VycmVudCB2YWx1ZSBvZiAiViIgZnJv bSB0aGUgdiBzbGlkZXIuIiIiCisrZGlmZiAtLWdpdCBhL3d4L2xpYi9jb2xvdXJjaG9vc2VyL3B5 cGFsZXR0ZS5weSBiL3d4L2xpYi9jb2xvdXJjaG9vc2VyL3B5cGFsZXR0ZS5weQorK2luZGV4IGZm MWZiODQwYy4uNzFiOWZjMmRmIDEwMDY0NAorKy0tLSBhL3d4L2xpYi9jb2xvdXJjaG9vc2VyL3B5 cGFsZXR0ZS5weQorKysrKyBiL3d4L2xpYi9jb2xvdXJjaG9vc2VyL3B5cGFsZXR0ZS5weQorK0BA IC0xNjUsNyArMTY1LDcgQEAgZGVmIERyYXdCdWZmZXIoc2VsZik6CisrICAgICAgICAgICAgIGNv bG91ciA9IHd4LkNvbG91cigwLCAwLCAwKQorKyAgICAgICAgICAgICBzZWxmLmJ1ZmZlci5TZXRQ ZW4od3guUGVuKGNvbG91ciwgMSwgd3guUEVOU1RZTEVfU09MSUQpKQorKyAgICAgICAgICAgICBz ZWxmLmJ1ZmZlci5TZXRCcnVzaCh3eC5CcnVzaChjb2xvdXIsIHd4LkJSVVNIU1RZTEVfVFJBTlNQ QVJFTlQpKQorKy0gICAgICAgICAgICBzZWxmLmJ1ZmZlci5EcmF3Q2lyY2xlKHNlbGYucG9pbnRb MF0sIHNlbGYucG9pbnRbMV0sIDMpCisrKyAgICAgICAgICAgIHNlbGYuYnVmZmVyLkRyYXdDaXJj bGUoaW50KHNlbGYucG9pbnRbMF0pLCBpbnQoc2VsZi5wb2ludFsxXSksIDMpCisrIAorKyAgICAg ZGVmIEhpZ2hsaWdodFBvaW50KHNlbGYsIHgsIHkpOgorKyAgICAgICAgICIiIkhpZ2hsaWdodHMg YW4gYXJlYSBvZiB0aGUgcGFsZXR0ZSB3aXRoIGEgbGl0dGxlIGNpcmNsZSBhcm91bmQKKytkaWZm IC0tZ2l0IGEvd3gvbGliL2Zsb2F0Y2FudmFzL0ZDT2JqZWN0cy5weSBiL3d4L2xpYi9mbG9hdGNh bnZhcy9GQ09iamVjdHMucHkKKytpbmRleCA1OGJlY2QzOGMuLmNkZjhjYzUzZSAxMDA2NDQKKyst LS0gYS93eC9saWIvZmxvYXRjYW52YXMvRkNPYmplY3RzLnB5CisrKysrIGIvd3gvbGliL2Zsb2F0 Y2FudmFzL0ZDT2JqZWN0cy5weQorK0BAIC0yOTYsNyArMjk2LDcgQEAgZGVmIFNldFBlbihzZWxm LCBMaW5lQ29sb3IsIExpbmVTdHlsZSwgTGluZVdpZHRoKToKKysgICAgICAgICBlbHNlOgorKyAg ICAgICAgICAgICBzZWxmLlBlbiA9IHNlbGYuUGVuTGlzdC5zZXRkZWZhdWx0KAorKyAgICAgICAg ICAgICAgICAgKExpbmVDb2xvciwgTGluZVN0eWxlLCBMaW5lV2lkdGgpLAorKy0gICAgICAgICAg ICAgICAgd3guUGVuKExpbmVDb2xvciwgTGluZVdpZHRoLCBzZWxmLkxpbmVTdHlsZUxpc3RbTGlu ZVN0eWxlXSkpCisrKyAgICAgICAgICAgICAgICB3eC5QZW4oTGluZUNvbG9yLCBpbnQoTGluZVdp ZHRoKSwgc2VsZi5MaW5lU3R5bGVMaXN0W0xpbmVTdHlsZV0pKQorKyAKKysgICAgIGRlZiBTZXRI aXRCcnVzaChzZWxmLCBIaXRDb2xvcik6CisrICAgICAgICAgIiIiCisrQEAgLTEyMDIsMTQgKzEy MDIsMTQgQEAgZGVmIF9EcmF3KHNlbGYsIGRjICwgV29ybGRUb1BpeGVsLCBTY2FsZVdvcmxkVG9Q aXhlbCwgSFRkYz1Ob25lKToKKysgICAgICAgICAgICAgeCA9IHhjIC0gU2l6ZS8yLjAKKysgICAg ICAgICAgICAgeSA9IHljIC0gU2l6ZS8yLjAKKysgICAgICAgICAgICAgZGMuU2V0QnJ1c2goc2Vs Zi5CcnVzaCkKKystICAgICAgICAgICAgZGMuRHJhd1JlY3RhbmdsZSh4LCB5LCBTaXplLCBTaXpl KQorKysgICAgICAgICAgICBkYy5EcmF3UmVjdGFuZ2xlKGludCh4KSwgaW50KHkpLCBTaXplLCBT aXplKQorKyAgICAgICAgIGlmIEhUZGMgYW5kIHNlbGYuSGl0QWJsZToKKysgICAgICAgICAgICAg SFRkYy5TZXRQZW4oc2VsZi5IaXRQZW4pCisrICAgICAgICAgICAgIGlmIHNlbGYuU2l6ZSA8PSAx OgorKyAgICAgICAgICAgICAgICAgSFRkYy5EcmF3UG9pbnQoeGMsIHhjKQorKyAgICAgICAgICAg ICBlbHNlOgorKyAgICAgICAgICAgICAgICAgSFRkYy5TZXRCcnVzaChzZWxmLkhpdEJydXNoKQor Ky0gICAgICAgICAgICAgICAgSFRkYy5EcmF3UmVjdGFuZ2xlKHgsIHksIFNpemUsIFNpemUpCisr KyAgICAgICAgICAgICAgICBIVGRjLkRyYXdSZWN0YW5nbGUoaW50KHgpLCBpbnQoeSksIFNpemUs IFNpemUpCisrIAorKyBjbGFzcyBSZWN0RWxsaXBzZShYWU9iamVjdE1peGluLCBMaW5lQW5kRmls bE1peGluLCBEcmF3T2JqZWN0KToKKysgICAgICIiIkEgUmVjdEVsbGlwc2UgZHJhdyBvYmplY3Qu IiIiCisrQEAgLTIxNjEsNyArMjE2MSw3IEBAIGRlZiBfRHJhdyhzZWxmLCBkYyAsIFdvcmxkVG9Q aXhlbCwgU2NhbGVXb3JsZFRvUGl4ZWwsIEhUZGM9Tm9uZSk6CisrICAgICAgICAgVyA9IEggKiAo c2VsZi5ibXBXaWR0aCAvIHNlbGYuYm1wSGVpZ2h0KQorKyAgICAgICAgIGlmIChzZWxmLlNjYWxl ZEJpdG1hcCBpcyBOb25lKSBvciAoSCAhPSBzZWxmLlNjYWxlZEhlaWdodCkgOgorKyAgICAgICAg ICAgICBzZWxmLlNjYWxlZEhlaWdodCA9IEgKKystICAgICAgICAgICAgSW1nID0gc2VsZi5JbWFn ZS5TY2FsZShXLCBIKQorKysgICAgICAgICAgICBJbWcgPSBzZWxmLkltYWdlLlNjYWxlKGludChX KSwgaW50KEgpKQorKyAgICAgICAgICAgICBzZWxmLlNjYWxlZEJpdG1hcCA9IHd4LkJpdG1hcChJ bWcpCisrIAorKyAgICAgICAgIFhZID0gc2VsZi5TaGlmdEZ1bihYWVswXSwgWFlbMV0sIFcsIEgp CisrZGlmZiAtLWdpdCBhL3d4L2xpYi9naXptb3MvbGVkY3RybC5weSBiL3d4L2xpYi9naXptb3Mv bGVkY3RybC5weQorK2luZGV4IGYxODVkNTEwNS4uN2Y0ZDNmY2Y5IDEwMDY0NAorKy0tLSBhL3d4 L2xpYi9naXptb3MvbGVkY3RybC5weQorKysrKyBiL3d4L2xpYi9naXptb3MvbGVkY3RybC5weQor K0BAIC0yOTMsNyArMjkzLDcgQEAgZGVmIF9kcmF3RGlnaXQoc2VsZiwgZGMsIGRpZ2l0LCBjb2x1 bW4pOgorKyAKKysgICAgICAgICBpZiBkaWdpdCAmIGMuQ09MT046CisrICAgICAgICAgICAgIGRj LlNldEJydXNoKHd4LkJydXNoKGxpbmVDb2xvcikpCisrLSAgICAgICAgICAgIGNlbnRlclggPSBY UG9zICsgKHNlbGYubV9saW5lTGVuZ3RoICsgc2VsZi5tX2RpZ2l0TWFyZ2luKSAvIDIKKystICAg ICAgICAgICAgcmFkaXVzID0gc2VsZi5tX2xpbmVXaWR0aCAvIDIKKystICAgICAgICAgICAgZGMu RHJhd0NpcmNsZShjZW50ZXJYLCAoc2VsZi5tX2xpbmVMZW5ndGggKyAoc2VsZi5tX2xpbmVNYXJn aW4gKiAzKSkgLyAyLCByYWRpdXMpCisrLSAgICAgICAgICAgIGRjLkRyYXdDaXJjbGUoY2VudGVy WCwgKHNlbGYubV9saW5lTGVuZ3RoICogMiArIChzZWxmLm1fbGluZU1hcmdpbiAqIDUpKSAqIDMg LyA0LCByYWRpdXMpCisrKyAgICAgICAgICAgIGNlbnRlclggPSBYUG9zICsgKHNlbGYubV9saW5l TGVuZ3RoICsgc2VsZi5tX2RpZ2l0TWFyZ2luKSAvLyAyCisrKyAgICAgICAgICAgIHJhZGl1cyA9 IHNlbGYubV9saW5lV2lkdGggLy8gMgorKysgICAgICAgICAgICBkYy5EcmF3Q2lyY2xlKGNlbnRl clgsIChzZWxmLm1fbGluZUxlbmd0aCArIChzZWxmLm1fbGluZU1hcmdpbiAqIDMpKSAvLyAyLCBy YWRpdXMpCisrKyAgICAgICAgICAgIGRjLkRyYXdDaXJjbGUoY2VudGVyWCwgKHNlbGYubV9saW5l TGVuZ3RoICogMiArIChzZWxmLm1fbGluZU1hcmdpbiAqIDUpKSAqIDMgLy8gNCwgcmFkaXVzKQor K2RpZmYgLS1naXQgYS93eC9saWIvaW1hZ2Vicm93c2VyLnB5IGIvd3gvbGliL2ltYWdlYnJvd3Nl ci5weQorK2luZGV4IDc5NWU5MGRjYS4uOGUxNDcyN2U3IDEwMDY0NAorKy0tLSBhL3d4L2xpYi9p bWFnZWJyb3dzZXIucHkKKysrKysgYi93eC9saWIvaW1hZ2Vicm93c2VyLnB5CisrQEAgLTM0Nyw4 ICszNDcsOCBAQCBkZWYgRHJhd0ltYWdlKHNlbGYsIGRjKToKKysgICAgICAgICBvd2lkdGggPSBp bnQoc2NhbGUqaXdpZHRoKQorKyAgICAgICAgIG9oZWlnaHQgPSBpbnQoc2NhbGUqaWhlaWdodCkK KysgCisrLSAgICAgICAgZGlmZnggPSAod3dpZHRoIC0gb3dpZHRoKS8yICAgIyBjZW50ZXIgY2Fs YworKy0gICAgICAgIGRpZmZ5ID0gKHdoZWlnaHQgLSBvaGVpZ2h0KS8yICAgIyBjZW50ZXIgY2Fs YworKysgICAgICAgIGRpZmZ4ID0gKHd3aWR0aCAtIG93aWR0aCkvLzIgICAjIGNlbnRlciBjYWxj CisrKyAgICAgICAgZGlmZnkgPSAod2hlaWdodCAtIG9oZWlnaHQpLy8yICAgIyBjZW50ZXIgY2Fs YworKyAKKysgICAgICAgICBpZiBub3QgYm1wOgorKyAgICAgICAgICAgICBpZiBvd2lkdGghPWl3 aWR0aCBvciBvaGVpZ2h0IT1paGVpZ2h0OgorK2RpZmYgLS1naXQgYS93eC9saWIvb2dsL2Jhc2lj LnB5IGIvd3gvbGliL29nbC9iYXNpYy5weQorK2luZGV4IGIwODg1OWFiOS4uMDEwN2YyMWZjIDEw MDY0NAorKy0tLSBhL3d4L2xpYi9vZ2wvYmFzaWMucHkKKysrKysgYi93eC9saWIvb2dsL2Jhc2lj LnB5CisrQEAgLTEwNTEsNyArMTA1MSw3IEBAIGRlZiBPbkVyYXNlQ29udGVudHMoc2VsZiwgZGMp OgorKyAgICAgICAgIGRjLlNldFBlbihzZWxmLkdldEJhY2tncm91bmRQZW4oKSkKKysgICAgICAg ICBkYy5TZXRCcnVzaChzZWxmLkdldEJhY2tncm91bmRCcnVzaCgpKQorKyAKKystICAgICAgICBk Yy5EcmF3UmVjdGFuZ2xlKHRvcExlZnRYIC0gcGVuV2lkdGgsIHRvcExlZnRZIC0gcGVuV2lkdGgs IG1heFggKyBwZW5XaWR0aCAqIDIgKyA0LCBtYXhZICsgcGVuV2lkdGggKiAyICsgNCkKKysrICAg ICAgICBkYy5EcmF3UmVjdGFuZ2xlKGludCh0b3BMZWZ0WCAtIHBlbldpZHRoKSwgaW50KHRvcExl ZnRZIC0gcGVuV2lkdGgpLCBpbnQobWF4WCArIHBlbldpZHRoICogMiArIDQpLCBpbnQobWF4WSAr IHBlbldpZHRoICogMiArIDQpKQorKyAKKysgICAgIGRlZiBFcmFzZUxpbmtzKHNlbGYsIGRjLCBh dHRhY2htZW50ID0gLTEsIHJlY3Vyc2UgPSBGYWxzZSk6CisrICAgICAgICAgIiIiCisrQEAgLTI3 NjksOSArMjc2OSw5IEBAIGRlZiBPbkRyYXcoc2VsZiwgZGMpOgorKyAgICAgICAgICAgICBkYy5T ZXRCcnVzaChzZWxmLl9icnVzaCkKKysgCisrICAgICAgICAgaWYgc2VsZi5fY29ybmVyUmFkaXVz OgorKy0gICAgICAgICAgICBkYy5EcmF3Um91bmRlZFJlY3RhbmdsZSh4MSwgeTEsIHNlbGYuX3dp ZHRoLCBzZWxmLl9oZWlnaHQsIHNlbGYuX2Nvcm5lclJhZGl1cykKKysrICAgICAgICAgICAgZGMu RHJhd1JvdW5kZWRSZWN0YW5nbGUoaW50KHgxKSwgaW50KHkxKSwgc2VsZi5fd2lkdGgsIHNlbGYu X2hlaWdodCwgc2VsZi5fY29ybmVyUmFkaXVzKQorKyAgICAgICAgIGVsc2U6CisrLSAgICAgICAg ICAgIGRjLkRyYXdSZWN0YW5nbGUoeDEsIHkxLCBzZWxmLl93aWR0aCwgc2VsZi5faGVpZ2h0KQor KysgICAgICAgICAgICBkYy5EcmF3UmVjdGFuZ2xlKGludCh4MSksIGludCh5MSksIHNlbGYuX3dp ZHRoLCBzZWxmLl9oZWlnaHQpCisrIAorKyAgICAgZGVmIEdldEJvdW5kaW5nQm94TWluKHNlbGYp OgorKyAgICAgICAgICIiIkdldCB0aGUgYm91bmRpbmcgYm94IG1pbmltdW0uIiIiCisrQEAgLTI4 ODIsNyArMjg4Miw3IEBAIGRlZiBDcmVhdGUoc2VsZiwgdGhlX3BvaW50cyA9IE5vbmUpOgorKyAg ICAgICAgICAgICAjIER1cGxpY2F0ZSB0aGUgbGlzdCBvZiBwb2ludHMKKysgICAgICAgICAgICAg c2VsZi5fcG9pbnRzID0gW10KKysgICAgICAgICAgICAgZm9yIHBvaW50IGluIHRoZV9wb2ludHM6 CisrLSAgICAgICAgICAgICAgICBuZXdfcG9pbnQgPSB3eC5Qb2ludChwb2ludFswXSwgcG9pbnRb MV0pCisrKyAgICAgICAgICAgICAgICBuZXdfcG9pbnQgPSB3eC5Qb2ludChpbnQocG9pbnRbMF0p LCBpbnQocG9pbnRbMV0pKQorKyAgICAgICAgICAgICAgICAgc2VsZi5fcG9pbnRzLmFwcGVuZChu ZXdfcG9pbnQpCisrICAgICAgICAgICAgIHNlbGYuQ2FsY3VsYXRlQm91bmRpbmdCb3goKQorKyAg ICAgICAgICAgICBzZWxmLl9vcmlnaW5hbFdpZHRoID0gc2VsZi5fYm91bmRXaWR0aAorK0BAIC0z NDQ0LDcgKzM0NDQsNyBAQCBkZWYgT25EcmF3KHNlbGYsIGRjKToKKysgICAgICAgICAgICAgICAg IGRjLlNldFBlbihzZWxmLl9wZW4pCisrICAgICAgICAgaWYgc2VsZi5fYnJ1c2g6CisrICAgICAg ICAgICAgIGRjLlNldEJydXNoKHNlbGYuX2JydXNoKQorKy0gICAgICAgIGRjLkRyYXdFbGxpcHNl KHNlbGYuX3hwb3MgLSBzZWxmLkdldFdpZHRoKCkgLyAyLjAsIHNlbGYuX3lwb3MgLSBzZWxmLkdl dEhlaWdodCgpIC8gMi4wLCBzZWxmLkdldFdpZHRoKCksIHNlbGYuR2V0SGVpZ2h0KCkpCisrKyAg ICAgICAgZGMuRHJhd0VsbGlwc2UoaW50KHNlbGYuX3hwb3MgLSBzZWxmLkdldFdpZHRoKCkgLyAy LjApLCBpbnQoc2VsZi5feXBvcyAtIHNlbGYuR2V0SGVpZ2h0KCkgLyAyLjApLCBzZWxmLkdldFdp ZHRoKCksIHNlbGYuR2V0SGVpZ2h0KCkpCisrIAorKyAgICAgZGVmIFNldFNpemUoc2VsZiwgeCwg eSwgcmVjdXJzaXZlID0gVHJ1ZSk6CisrICAgICAgICAgIiIiCisrZGlmZiAtLWdpdCBhL3d4L2xp Yi9vZ2wvYm1wc2hhcGUucHkgYi93eC9saWIvb2dsL2JtcHNoYXBlLnB5CisraW5kZXggZWUyODU5 NTI3Li5lNTNkZGIxMzYgMTAwNjQ0CisrLS0tIGEvd3gvbGliL29nbC9ibXBzaGFwZS5weQorKysr KyBiL3d4L2xpYi9vZ2wvYm1wc2hhcGUucHkKKytAQCAtMzIsNyArMzIsNyBAQCBkZWYgT25EcmF3 KHNlbGYsIGRjKToKKysgCisrICAgICAgICAgeCA9IHNlbGYuX3hwb3MgLSBzZWxmLl9iaXRtYXAu R2V0V2lkdGgoKSAvIDIuMAorKyAgICAgICAgIHkgPSBzZWxmLl95cG9zIC0gc2VsZi5fYml0bWFw LkdldEhlaWdodCgpIC8gMi4wCisrLSAgICAgICAgZGMuRHJhd0JpdG1hcChzZWxmLl9iaXRtYXAs IHgsIHksIFRydWUpCisrKyAgICAgICAgZGMuRHJhd0JpdG1hcChzZWxmLl9iaXRtYXAsIGludCh4 KSwgaW50KHkpLCBUcnVlKQorKyAKKysgICAgIGRlZiBTZXRTaXplKHNlbGYsIHcsIGgsIHJlY3Vy c2l2ZSA9IFRydWUpOgorKyAgICAgICAgICIiIgorK2RpZmYgLS1naXQgYS93eC9saWIvb2dsL2Nv bXBvc2l0LnB5IGIvd3gvbGliL29nbC9jb21wb3NpdC5weQorK2luZGV4IGMzYjYyMzk1Mi4uZWVj YWFmYjNmIDEwMDY0NAorKy0tLSBhL3d4L2xpYi9vZ2wvY29tcG9zaXQucHkKKysrKysgYi93eC9s aWIvb2dsL2NvbXBvc2l0LnB5CisrQEAgLTExMzEsMTEgKzExMzEsMTEgQEAgZGVmIE9uRHJhdyhz ZWxmLCBkYyk6CisrIAorKyAgICAgICAgIGlmIHNlbGYuX2xlZnRTaWRlOgorKyAgICAgICAgICAg ICBkYy5TZXRQZW4oc2VsZi5fbGVmdFNpZGVQZW4pCisrLSAgICAgICAgICAgIGRjLkRyYXdMaW5l KHgxLCB5MiwgeDEsIHkxKQorKysgICAgICAgICAgICBkYy5EcmF3TGluZShpbnQoeDEpLCBpbnQo eTIpLCBpbnQoeDEpLCBpbnQoeTEpKQorKyAKKysgICAgICAgICBpZiBzZWxmLl90b3BTaWRlOgor KyAgICAgICAgICAgICBkYy5TZXRQZW4oc2VsZi5fdG9wU2lkZVBlbikKKystICAgICAgICAgICAg ZGMuRHJhd0xpbmUoeDEsIHkxLCB4MiwgeTEpCisrKyAgICAgICAgICAgIGRjLkRyYXdMaW5lKGlu dCh4MSksIGludCh5MSksIGludCh4MiksIGludCh5MSkpCisrIAorKyAgICAgICAgICMgRm9yIHRl c3RpbmcgcHVycG9zZXMsIGRyYXcgYSByZWN0YW5nbGUgc28gd2Uga25vdworKyAgICAgICAgICMg aG93IGJpZyB0aGUgZGl2aXNpb24gaXMuCisrZGlmZiAtLWdpdCBhL3d4L2xpYi9vZ2wvZGl2aWRl ZC5weSBiL3d4L2xpYi9vZ2wvZGl2aWRlZC5weQorK2luZGV4IDBiZmIxOTE5Zi4uMDgwOWJlNThj IDEwMDY0NAorKy0tLSBhL3d4L2xpYi9vZ2wvZGl2aWRlZC5weQorKysrKyBiL3d4L2xpYi9vZ2wv ZGl2aWRlZC5weQorK0BAIC0yMzEsNyArMjMxLDcgQEAgZGVmIE9uRHJhd0NvbnRlbnRzKHNlbGYs IGRjKToKKysgICAgICAgICAgICAgICAgIHJlZ2lvblBlbiA9IHJlZ2lvbi5HZXRBY3R1YWxQZW4o KQorKyAgICAgICAgICAgICAgICAgaWYgcmVnaW9uUGVuOgorKyAgICAgICAgICAgICAgICAgICAg IGRjLlNldFBlbihyZWdpb25QZW4pCisrLSAgICAgICAgICAgICAgICAgICAgZGMuRHJhd0xpbmUo bGVmdFgsIHksIHJpZ2h0WCwgeSkKKysrICAgICAgICAgICAgICAgICAgICBkYy5EcmF3TGluZShp bnQobGVmdFgpLCBpbnQoeSksIGludChyaWdodFgpLCBpbnQoeSkpCisrIAorKyAgICAgICAgICAg ICBjdXJyZW50WSA9IGFjdHVhbFkKKysgCisrZGlmZiAtLWdpdCBhL3d4L2xpYi9vZ2wvbGluZXMu cHkgYi93eC9saWIvb2dsL2xpbmVzLnB5CisraW5kZXggOTQ4Yjg1ZDgyLi41MGMwN2UwNDYgMTAw NjQ0CisrLS0tIGEvd3gvbGliL29nbC9saW5lcy5weQorKysrKyBiL3d4L2xpYi9vZ2wvbGluZXMu cHkKKytAQCAtMTIwMCw3ICsxMjAwLDcgQEAgZGVmIE9uRHJhdyhzZWxmLCBkYyk6CisrIAorKyAg ICAgICAgIHBvaW50cyA9IFtdCisrICAgICAgICAgZm9yIHBvaW50IGluIHNlbGYuX2xpbmVDb250 cm9sUG9pbnRzOgorKy0gICAgICAgICAgICBwb2ludHMuYXBwZW5kKHd4LlBvaW50KHBvaW50WzBd LCBwb2ludFsxXSkpCisrKyAgICAgICAgICAgIHBvaW50cy5hcHBlbmQod3guUG9pbnQoaW50KHBv aW50WzBdKSwgaW50KHBvaW50WzFdKSkpCisrIAorKyAgICAgICAgIGlmIHNlbGYuX2lzU3BsaW5l OgorKyAgICAgICAgICAgICBkYy5EcmF3U3BsaW5lKHBvaW50cykKKytkaWZmIC0tZ2l0IGEvd3gv bGliL29nbC9vZ2xtaXNjLnB5IGIvd3gvbGliL29nbC9vZ2xtaXNjLnB5CisraW5kZXggODU4OGE3 MmI3Li5hOGJlM2ZjNTMgMTAwNjQ0CisrLS0tIGEvd3gvbGliL29nbC9vZ2xtaXNjLnB5CisrKysr IGIvd3gvbGliL29nbC9vZ2xtaXNjLnB5CisrQEAgLTMwMCwxMCArMzAwLDEwIEBAIGRlZiBEcmF3 Rm9ybWF0dGVkVGV4dChkYywgdGV4dF9saXN0LCB4cG9zLCB5cG9zLCB3aWR0aCwgaGVpZ2h0LCBm b3JtYXRNb2RlKToKKysgICAgICAgICB5b2Zmc2V0ID0geXBvcyAtIGhlaWdodCAvIDIuMAorKyAK KysgICAgICMgKzEgdG8gYWxsb3cgZm9yIHJvdW5kaW5nIGVycm9ycworKy0gICAgZGMuU2V0Q2xp cHBpbmdSZWdpb24oeHBvcyAtIHdpZHRoIC8gMi4wLCB5cG9zIC0gaGVpZ2h0IC8gMi4wLCB3aWR0 aCArIDEsIGhlaWdodCArIDEpCisrKyAgICBkYy5TZXRDbGlwcGluZ1JlZ2lvbihpbnQoeHBvcyAt IHdpZHRoIC8gMi4wKSwgaW50KHlwb3MgLSBoZWlnaHQgLyAyLjApLCBpbnQod2lkdGggKyAxKSwg aW50KGhlaWdodCArIDEpKQorKyAKKysgICAgIGZvciBsaW5lIGluIHRleHRfbGlzdDoKKystICAg ICAgICBkYy5EcmF3VGV4dChsaW5lLkdldFRleHQoKSwgeG9mZnNldCArIGxpbmUuR2V0WCgpLCB5 b2Zmc2V0ICsgbGluZS5HZXRZKCkpCisrKyAgICAgICAgZGMuRHJhd1RleHQobGluZS5HZXRUZXh0 KCksIGludCh4b2Zmc2V0ICsgbGluZS5HZXRYKCkpLCBpbnQoeW9mZnNldCArIGxpbmUuR2V0WSgp KSkKKysgCisrICAgICBkYy5EZXN0cm95Q2xpcHBpbmdSZWdpb24oKQorKyAKKytkaWZmIC0tZ2l0 IGEvd3gvbGliL3Bsb3QvZXhhbXBsZXMvZGVtby5weSBiL3d4L2xpYi9wbG90L2V4YW1wbGVzL2Rl bW8ucHkKKytpbmRleCA5OGZiYWFkM2EuLjAyYmVjMWQ5ZiAxMDA2NDQKKystLS0gYS93eC9saWIv cGxvdC9leGFtcGxlcy9kZW1vLnB5CisrKysrIGIvd3gvbGliL3Bsb3QvZXhhbXBsZXMvZGVtby5w eQorK0BAIC05ODQsNyArOTg0LDcgQEAgZGVmIERyYXdQb2ludExhYmVsKHNlbGYsIGRjLCBtRGF0 YURpY3QpOgorKyAKKysgICAgICAgICBzeCwgc3kgPSBtRGF0YURpY3RbInNjYWxlZFhZIl0gICMg c2NhbGVkIHgseSBvZiBjbG9zZXN0IHBvaW50CisrICAgICAgICAgIyAxMGJ5MTAgc3F1YXJlIGNl bnRlcmVkIG9uIHBvaW50CisrLSAgICAgICAgZGMuRHJhd1JlY3RhbmdsZShzeCAtIDUsIHN5IC0g NSwgMTAsIDEwKQorKysgICAgICAgIGRjLkRyYXdSZWN0YW5nbGUoaW50KHN4IC0gNSksIGludChz eSAtIDUpLCAxMCwgMTApCisrICAgICAgICAgcHgsIHB5ID0gbURhdGFEaWN0WyJwb2ludFhZIl0K KysgICAgICAgICBjTnVtID0gbURhdGFEaWN0WyJjdXJ2ZU51bSJdCisrICAgICAgICAgcG50SW4g PSBtRGF0YURpY3RbInBJbmRleCJdCisrQEAgLTk5Miw3ICs5OTIsNyBAQCBkZWYgRHJhd1BvaW50 TGFiZWwoc2VsZiwgZGMsIG1EYXRhRGljdCk6CisrICAgICAgICAgIyBtYWtlIGEgc3RyaW5nIHRv IGRpc3BsYXkKKysgICAgICAgICBzID0gIkNydiMgJWksICclcycsIFB0LiAoJS4yZiwlLjJmKSwg UHRJbmQgJWkiICUgKAorKyAgICAgICAgICAgICBjTnVtLCBsZWdlbmQsIHB4LCBweSwgcG50SW4p CisrLSAgICAgICAgZGMuRHJhd1RleHQocywgc3gsIHN5ICsgMSkKKysrICAgICAgICBkYy5EcmF3 VGV4dChzLCBpbnQoc3gpLCBpbnQoc3kgKyAxKSkKKysgCisrIAorKyBkZWYgcnVuX2RlbW8oKToK KytkaWZmIC0tZ2l0IGEvd3gvbGliL3Bsb3QvcGxvdGNhbnZhcy5weSBiL3d4L2xpYi9wbG90L3Bs b3RjYW52YXMucHkKKytpbmRleCBkZDNmNzdkNTIuLmFiZWU0N2VmYiAxMDA2NDQKKystLS0gYS93 eC9saWIvcGxvdC9wbG90Y2FudmFzLnB5CisrKysrIGIvd3gvbGliL3Bsb3QvcGxvdGNhbnZhcy5w eQorK0BAIC0xNzQsMjQgKzE3NCwyNCBAQCBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50LCBpZD13 eC5JRF9BTlksIHBvcz13eC5EZWZhdWx0UG9zaXRpb24sCisrIAorKyAgICAgICAgICMgRGVmYXVs dCBQZW5zCisrICAgICAgICAgc2VsZi5fZ3JpZFBlbiA9IHd4LlBlbih3eC5Db2xvdXIoMTgwLCAx ODAsIDE4MCwgMjU1KSwKKystICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3Bv aW50U2l6ZVswXSwKKysrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludChzZWxmLl9w b2ludFNpemVbMF0pLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3guUEVOU1RZ TEVfRE9UKQorKyAKKysgICAgICAgICBzZWxmLl9jZW50ZXJMaW5lUGVuID0gd3guUGVuKHd4LlJF RCwKKystICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3BvaW50U2l6 ZVswXSwKKysrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludChzZWxmLl9w b2ludFNpemVbMF0pLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3gu UEVOU1RZTEVfU0hPUlRfREFTSCkKKysgCisrICAgICAgICAgc2VsZi5fYXhlc1BlbiA9IHd4LlBl bih3eC5CTEFDSywKKystICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3BvaW50 U2l6ZVswXSwKKysrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludChzZWxmLl9wb2lu dFNpemVbMF0pLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3guUEVOU1RZTEVf U09MSUQpCisrIAorKyAgICAgICAgIHNlbGYuX3RpY2tQZW4gPSB3eC5QZW4od3guQkxBQ0ssCisr LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9wb2ludFNpemVbMF0sCisrKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQoc2VsZi5fcG9pbnRTaXplWzBdKSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHd4LlBFTlNUWUxFX1NPTElEKQorKyAgICAg ICAgIHNlbGYuX3RpY2tMZW5ndGggPSB0dXBsZSgteCAqIDIgZm9yIHggaW4gc2VsZi5fcG9pbnRT aXplKQorKyAKKysgICAgICAgICBzZWxmLl9kaWFnb25hbFBlbiA9IHd4LlBlbih3eC5CTFVFLAor Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3BvaW50U2l6ZVswXSwK KysrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQoc2VsZi5fcG9pbnRTaXpl WzBdKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3eC5QRU5TVFlMRV9E T1RfREFTSCkKKysgCisrICAgICBkZWYgU2V0Q3Vyc29yKHNlbGYsIGN1cnNvcik6CisrQEAgLTE5 MjUsMTAgKzE5MjUsMTAgQEAgZGVmIF9EcmF3KHNlbGYsIGdyYXBoaWNzLCB4QXhpcz1Ob25lLCB5 QXhpcz1Ob25lLCBkYz1Ob25lKToKKysgICAgICAgICAjIHNldCBjbGlwcGluZyBhcmVhIHNvIGRy YXdpbmcgZG9lcyBub3Qgb2NjdXIgb3V0c2lkZSBheGlzIGJveAorKyAgICAgICAgIHB0eCwgcHR5 LCByZWN0V2lkdGgsIHJlY3RIZWlnaHQgPSBzZWxmLl9wb2ludDJDbGllbnRDb29yZChwMSwgcDIp CisrICAgICAgICAgIyBhbGxvdyBncmFwaCB0byBvdmVybGFwIGF4aXMgbGluZXMgYnkgYWRkaW5n IHVuaXRzIHRvIHcgYW5kIGgKKystICAgICAgICBkYy5TZXRDbGlwcGluZ1JlZ2lvbihwdHggKiBz ZWxmLl9wb2ludFNpemVbMF0sCisrLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHR5ICog c2VsZi5fcG9pbnRTaXplWzFdLAorKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3RX aWR0aCAqIHNlbGYuX3BvaW50U2l6ZVswXSArIDIsCisrLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcmVjdEhlaWdodCAqIHNlbGYuX3BvaW50U2l6ZVsxXSArIDEpCisrKyAgICAgICAgZGMu U2V0Q2xpcHBpbmdSZWdpb24oaW50KHB0eCAqIHNlbGYuX3BvaW50U2l6ZVswXSksCisrKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW50KHB0eSAqIHNlbGYuX3BvaW50U2l6ZVsxXSksCisr KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50KHJlY3RXaWR0aCAqIHNlbGYuX3BvaW50 U2l6ZVswXSArIDIpLAorKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludChyZWN0SGVp Z2h0ICogc2VsZi5fcG9pbnRTaXplWzFdICsgMSkpCisrICAgICAgICAgIyBEcmF3IHRoZSBsaW5l cyBhbmQgbWFya2VycworKyAjICAgICAgICBzdGFydCA9IF90aW1lLnBlcmZfY291bnRlcigpCisr ICAgICAgICAgZ3JhcGhpY3MuZHJhdyhkYykKKytAQCAtMjI4MCw3ICsyMjgwLDcgQEAgZGVmIF9k cmF3TGVnZW5kKHNlbGYsIGRjLCBncmFwaGljcywgcmhzVywgdG9wSCwgbGVnZW5kQm94V0gsCisr ICAgICAgICAgICAgIHBudCA9ICgodHJoY1swXSArIGxlZ2VuZExIUyArIGxlZ2VuZFN5bUV4dFsw XQorKyAgICAgICAgICAgICAgICAgICAgICsgNSAqIHNlbGYuX3BvaW50U2l6ZVswXSksCisrICAg ICAgICAgICAgICAgICAgICB0cmhjWzFdICsgcyArIGxpbmVIZWlnaHQgLyAyLiAtIGxlZ2VuZFRl eHRFeHRbMV0gLyAyKQorKy0gICAgICAgICAgICBkYy5EcmF3VGV4dChvLmdldExlZ2VuZCgpLCBw bnRbMF0sIHBudFsxXSkKKysrICAgICAgICAgICAgZGMuRHJhd1RleHQoby5nZXRMZWdlbmQoKSwg aW50KHBudFswXSksIGludChwbnRbMV0pKQorKyAgICAgICAgIGRjLlNldEZvbnQoc2VsZi5fZ2V0 Rm9udChzZWxmLl9mb250U2l6ZUF4aXMpKSAgIyByZXNldAorKyAKKysgICAgIGRlZiBfdGl0bGVM YWJsZXNXSChzZWxmLCBkYywgZ3JhcGhpY3MpOgorK0BAIC0yMzI5LDcgKzIzMjksNyBAQCBkZWYg X2RyYXdSdWJiZXJCYW5kKHNlbGYsIGNvcm5lcjEsIGNvcm5lcjIpOgorKyAgICAgICAgIGRjLlNl dFBlbih3eC5QZW4od3guQkxBQ0spKQorKyAgICAgICAgIGRjLlNldEJydXNoKHd4LkJydXNoKHd4 LldISVRFLCB3eC5CUlVTSFNUWUxFX1RSQU5TUEFSRU5UKSkKKysgICAgICAgICBkYy5TZXRMb2dp Y2FsRnVuY3Rpb24od3guSU5WRVJUKQorKy0gICAgICAgIGRjLkRyYXdSZWN0YW5nbGUocHR4LCBw dHksIHJlY3RXaWR0aCwgcmVjdEhlaWdodCkKKysrICAgICAgICBkYy5EcmF3UmVjdGFuZ2xlKGlu dChwdHgpLCBpbnQocHR5KSwgaW50KHJlY3RXaWR0aCksIGludChyZWN0SGVpZ2h0KSkKKysgICAg ICAgICBkYy5TZXRMb2dpY2FsRnVuY3Rpb24od3guQ09QWSkKKysgCisrICAgICBkZWYgX2dldEZv bnQoc2VsZiwgc2l6ZSk6CisrQEAgLTI0MjMsNyArMjQyMyw3IEBAIGRlZiBfZHJhd0dyaWQoc2Vs ZiwgZGMsIHAxLCBwMiwgc2NhbGUsIHNoaWZ0LCB4dGlja3MsIHl0aWNrcyk6CisrICAgICAgICAg IyBpbmNyZWFzZXMgdGhpY2tuZXNzIGZvciBwcmludGluZyBvbmx5CisrICAgICAgICAgcGVuID0g c2VsZi5ncmlkUGVuCisrICAgICAgICAgcGVuV2lkdGggPSBzZWxmLnByaW50ZXJTY2FsZSAqIHBl bi5HZXRXaWR0aCgpCisrLSAgICAgICAgcGVuLlNldFdpZHRoKHBlbldpZHRoKQorKysgICAgICAg IHBlbi5TZXRXaWR0aChpbnQocGVuV2lkdGgpKQorKyAgICAgICAgIGRjLlNldFBlbihwZW4pCisr IAorKyAgICAgICAgIHgsIHksIHdpZHRoLCBoZWlnaHQgPSBzZWxmLl9wb2ludDJDbGllbnRDb29y ZChwMSwgcDIpCisrQEAgLTI0MzIsMTMgKzI0MzIsMTMgQEAgZGVmIF9kcmF3R3JpZChzZWxmLCBk YywgcDEsIHAyLCBzY2FsZSwgc2hpZnQsIHh0aWNrcywgeXRpY2tzKToKKysgICAgICAgICAgICAg aWYgc2VsZi5lbmFibGVHcmlkWzBdOgorKyAgICAgICAgICAgICAgICAgZm9yIHgsIF8gaW4geHRp Y2tzOgorKyAgICAgICAgICAgICAgICAgICAgIHB0ID0gc2NhbGVfYW5kX3NoaWZ0X3BvaW50KHgs IHAxWzFdLCBzY2FsZSwgc2hpZnQpCisrLSAgICAgICAgICAgICAgICAgICAgZGMuRHJhd0xpbmUo cHRbMF0sIHB0WzFdLCBwdFswXSwgcHRbMV0gLSBoZWlnaHQpCisrKyAgICAgICAgICAgICAgICAg ICAgZGMuRHJhd0xpbmUoaW50KHB0WzBdKSwgaW50KHB0WzFdKSwgaW50KHB0WzBdKSwgaW50KHB0 WzFdIC0gaGVpZ2h0KSkKKysgCisrICAgICAgICAgaWYgc2VsZi5feVNwZWMgIT0gJ25vbmUnOgor KyAgICAgICAgICAgICBpZiBzZWxmLmVuYWJsZUdyaWRbMV06CisrICAgICAgICAgICAgICAgICBm b3IgeSwgbGFiZWwgaW4geXRpY2tzOgorKyAgICAgICAgICAgICAgICAgICAgIHB0ID0gc2NhbGVf YW5kX3NoaWZ0X3BvaW50KHAxWzBdLCB5LCBzY2FsZSwgc2hpZnQpCisrLSAgICAgICAgICAgICAg ICAgICAgZGMuRHJhd0xpbmUocHRbMF0sIHB0WzFdLCBwdFswXSArIHdpZHRoLCBwdFsxXSkKKysr ICAgICAgICAgICAgICAgICAgICBkYy5EcmF3TGluZShpbnQocHRbMF0pLCBpbnQocHRbMV0pLCBp bnQocHRbMF0gKyB3aWR0aCksIGludChwdFsxXSkpCisrIAorKyAgICAgQFRlbXBTdHlsZSgncGVu JykKKysgICAgIGRlZiBfZHJhd1RpY2tzKHNlbGYsIGRjLCBwMSwgcDIsIHNjYWxlLCBzaGlmdCwg eHRpY2tzLCB5dGlja3MpOgorK0BAIC0yNDcxLDcgKzI0NzEsNyBAQCBkZWYgX2RyYXdUaWNrcyhz ZWxmLCBkYywgcDEsIHAyLCBzY2FsZSwgc2hpZnQsIHh0aWNrcywgeXRpY2tzKToKKysgICAgICAg ICAjIGluY3JlYXNlcyB0aGlja25lc3MgZm9yIHByaW50aW5nIG9ubHkKKysgICAgICAgICBwZW4g PSBzZWxmLnRpY2tQZW4KKysgICAgICAgICBwZW5XaWR0aCA9IHNlbGYucHJpbnRlclNjYWxlICog cGVuLkdldFdpZHRoKCkKKystICAgICAgICBwZW4uU2V0V2lkdGgocGVuV2lkdGgpCisrKyAgICAg ICAgcGVuLlNldFdpZHRoKGludChwZW5XaWR0aCkpCisrICAgICAgICAgZGMuU2V0UGVuKHBlbikK KysgCisrICAgICAgICAgIyBsZW5ndGhlbiBsaW5lcyBmb3IgcHJpbnRpbmcKKytAQCAtMjQ4NCwx MyArMjQ4NCwxMyBAQCBkZWYgX2RyYXdUaWNrcyhzZWxmLCBkYywgcDEsIHAyLCBzY2FsZSwgc2hp ZnQsIHh0aWNrcywgeXRpY2tzKToKKysgICAgICAgICAgICAgICAgIGxpbmVzID0gW10KKysgICAg ICAgICAgICAgICAgIGZvciB4LCBsYWJlbCBpbiB4dGlja3M6CisrICAgICAgICAgICAgICAgICAg ICAgcHQgPSBzY2FsZV9hbmRfc2hpZnRfcG9pbnQoeCwgcDFbMV0sIHNjYWxlLCBzaGlmdCkKKyst ICAgICAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoKHB0WzBdLCBwdFsxXSwgcHRbMF0sIHB0 WzFdIC0geFRpY2tMZW5ndGgpKQorKysgICAgICAgICAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgo aW50KHB0WzBdKSwgaW50KHB0WzFdKSwgaW50KHB0WzBdKSwgaW50KHB0WzFdIC0geFRpY2tMZW5n dGgpKSkKKysgICAgICAgICAgICAgICAgIGRjLkRyYXdMaW5lTGlzdChsaW5lcykKKysgICAgICAg ICAgICAgaWYgdGlja3MudG9wOgorKyAgICAgICAgICAgICAgICAgbGluZXMgPSBbXQorKyAgICAg ICAgICAgICAgICAgZm9yIHgsIGxhYmVsIGluIHh0aWNrczoKKysgICAgICAgICAgICAgICAgICAg ICBwdCA9IHNjYWxlX2FuZF9zaGlmdF9wb2ludCh4LCBwMlsxXSwgc2NhbGUsIHNoaWZ0KQorKy0g ICAgICAgICAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgocHRbMF0sIHB0WzFdLCBwdFswXSwgcHRb MV0gKyB4VGlja0xlbmd0aCkpCisrKyAgICAgICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKChp bnQocHRbMF0pLCBpbnQocHRbMV0pLCBpbnQocHRbMF0pLCBpbnQocHRbMV0gKyB4VGlja0xlbmd0 aCkpKQorKyAgICAgICAgICAgICAgICAgZGMuRHJhd0xpbmVMaXN0KGxpbmVzKQorKyAKKysgICAg ICAgICBpZiBzZWxmLnlTcGVjICE9ICdub25lJzoKKytAQCAtMjQ5OCwxMyArMjQ5OCwxMyBAQCBk ZWYgX2RyYXdUaWNrcyhzZWxmLCBkYywgcDEsIHAyLCBzY2FsZSwgc2hpZnQsIHh0aWNrcywgeXRp Y2tzKToKKysgICAgICAgICAgICAgICAgIGxpbmVzID0gW10KKysgICAgICAgICAgICAgICAgIGZv ciB5LCBsYWJlbCBpbiB5dGlja3M6CisrICAgICAgICAgICAgICAgICAgICAgcHQgPSBzY2FsZV9h bmRfc2hpZnRfcG9pbnQocDFbMF0sIHksIHNjYWxlLCBzaGlmdCkKKystICAgICAgICAgICAgICAg ICAgICBsaW5lcy5hcHBlbmQoKHB0WzBdLCBwdFsxXSwgcHRbMF0gKyB5VGlja0xlbmd0aCwgcHRb MV0pKQorKysgICAgICAgICAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgoaW50KHB0WzBdKSwgaW50 KHB0WzFdKSwgaW50KHB0WzBdICsgeVRpY2tMZW5ndGgpLCBpbnQocHRbMV0pKSkKKysgICAgICAg ICAgICAgICAgIGRjLkRyYXdMaW5lTGlzdChsaW5lcykKKysgICAgICAgICAgICAgaWYgdGlja3Mu cmlnaHQ6CisrICAgICAgICAgICAgICAgICBsaW5lcyA9IFtdCisrICAgICAgICAgICAgICAgICBm b3IgeSwgbGFiZWwgaW4geXRpY2tzOgorKyAgICAgICAgICAgICAgICAgICAgIHB0ID0gc2NhbGVf YW5kX3NoaWZ0X3BvaW50KHAyWzBdLCB5LCBzY2FsZSwgc2hpZnQpCisrLSAgICAgICAgICAgICAg ICAgICAgbGluZXMuYXBwZW5kKChwdFswXSwgcHRbMV0sIHB0WzBdIC0geVRpY2tMZW5ndGgsIHB0 WzFdKSkKKysrICAgICAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoKGludChwdFswXSksIGlu dChwdFsxXSksIGludChwdFswXSAtIHlUaWNrTGVuZ3RoKSwgaW50KHB0WzFdKSkpCisrICAgICAg ICAgICAgICAgICBkYy5EcmF3TGluZUxpc3QobGluZXMpCisrIAorKyAgICAgQFRlbXBTdHlsZSgn cGVuJykKKytAQCAtMjUzMSwyNSArMjUzMSwyNSBAQCBkZWYgX2RyYXdDZW50ZXJMaW5lcyhzZWxm LCBkYywgcDEsIHAyLCBzY2FsZSwgc2hpZnQpOgorKyAgICAgICAgICMgaW5jcmVhc2VzIHRoaWNr bmVzcyBmb3IgcHJpbnRpbmcgb25seQorKyAgICAgICAgIHBlbiA9IHNlbGYuY2VudGVyTGluZVBl bgorKyAgICAgICAgIHBlbldpZHRoID0gc2VsZi5wcmludGVyU2NhbGUgKiBwZW4uR2V0V2lkdGgo KQorKy0gICAgICAgIHBlbi5TZXRXaWR0aChwZW5XaWR0aCkKKysrICAgICAgICBwZW4uU2V0V2lk dGgoaW50KHBlbldpZHRoKSkKKysgICAgICAgICBkYy5TZXRQZW4ocGVuKQorKyAKKysgICAgICAg ICBpZiBzZWxmLl9jZW50ZXJMaW5lc0VuYWJsZWQgaW4gKCdIb3Jpem9udGFsJywgVHJ1ZSk6Cisr ICAgICAgICAgICAgIHkxID0gc2NhbGVbMV0gKiBwMVsxXSArIHNoaWZ0WzFdCisrICAgICAgICAg ICAgIHkyID0gc2NhbGVbMV0gKiBwMlsxXSArIHNoaWZ0WzFdCisrICAgICAgICAgICAgIHkgPSAo eTEgLSB5MikgLyAyLjAgKyB5MgorKy0gICAgICAgICAgICBkYy5EcmF3TGluZShzY2FsZVswXSAq IHAxWzBdICsgc2hpZnRbMF0sCisrLSAgICAgICAgICAgICAgICAgICAgICAgIHksCisrLSAgICAg ICAgICAgICAgICAgICAgICAgIHNjYWxlWzBdICogcDJbMF0gKyBzaGlmdFswXSwKKystICAgICAg ICAgICAgICAgICAgICAgICAgeSkKKysrICAgICAgICAgICAgZGMuRHJhd0xpbmUoaW50KHNjYWxl WzBdICogcDFbMF0gKyBzaGlmdFswXSksCisrKyAgICAgICAgICAgICAgICAgICAgICAgIGludCh5 KSwKKysrICAgICAgICAgICAgICAgICAgICAgICAgaW50KHNjYWxlWzBdICogcDJbMF0gKyBzaGlm dFswXSksCisrKyAgICAgICAgICAgICAgICAgICAgICAgIGludCh5KSkKKysgICAgICAgICBpZiBz ZWxmLl9jZW50ZXJMaW5lc0VuYWJsZWQgaW4gKCdWZXJ0aWNhbCcsIFRydWUpOgorKyAgICAgICAg ICAgICB4MSA9IHNjYWxlWzBdICogcDFbMF0gKyBzaGlmdFswXQorKyAgICAgICAgICAgICB4MiA9 IHNjYWxlWzBdICogcDJbMF0gKyBzaGlmdFswXQorKyAgICAgICAgICAgICB4ID0gKHgxIC0geDIp IC8gMi4wICsgeDIKKystICAgICAgICAgICAgZGMuRHJhd0xpbmUoeCwKKystICAgICAgICAgICAg ICAgICAgICAgICAgc2NhbGVbMV0gKiBwMVsxXSArIHNoaWZ0WzFdLAorKy0gICAgICAgICAgICAg ICAgICAgICAgICB4LAorKy0gICAgICAgICAgICAgICAgICAgICAgICBzY2FsZVsxXSAqIHAyWzFd ICsgc2hpZnRbMV0pCisrKyAgICAgICAgICAgIGRjLkRyYXdMaW5lKGludCh4KSwKKysrICAgICAg ICAgICAgICAgICAgICAgICAgaW50KHNjYWxlWzFdICogcDFbMV0gKyBzaGlmdFsxXSksCisrKyAg ICAgICAgICAgICAgICAgICAgICAgIGludCh4KSwKKysrICAgICAgICAgICAgICAgICAgICAgICAg aW50KHNjYWxlWzFdICogcDJbMV0gKyBzaGlmdFsxXSkpCisrIAorKyAgICAgQFRlbXBTdHlsZSgn cGVuJykKKysgICAgIGRlZiBfZHJhd0RpYWdvbmFscyhzZWxmLCBkYywgcDEsIHAyLCBzY2FsZSwg c2hpZnQpOgorK0BAIC0yNTc1LDE5ICsyNTc1LDE5IEBAIGRlZiBfZHJhd0RpYWdvbmFscyhzZWxm LCBkYywgcDEsIHAyLCBzY2FsZSwgc2hpZnQpOgorKyAgICAgICAgICIiIgorKyAgICAgICAgIHBl biA9IHNlbGYuZGlhZ29uYWxQZW4KKysgICAgICAgICBwZW5XaWR0aCA9IHNlbGYucHJpbnRlclNj YWxlICogcGVuLkdldFdpZHRoKCkKKystICAgICAgICBwZW4uU2V0V2lkdGgocGVuV2lkdGgpCisr KyAgICAgICAgcGVuLlNldFdpZHRoKGludChwZW5XaWR0aCkpCisrICAgICAgICAgZGMuU2V0UGVu KHBlbikKKysgCisrICAgICAgICAgaWYgc2VsZi5fZGlhZ29uYWxzRW5hYmxlZCBpbiAoJ0JvdHRv bWxlZnQtVG9wcmlnaHQnLCBUcnVlKToKKystICAgICAgICAgICAgZGMuRHJhd0xpbmUoc2NhbGVb MF0gKiBwMVswXSArIHNoaWZ0WzBdLAorKy0gICAgICAgICAgICAgICAgICAgICAgICBzY2FsZVsx XSAqIHAxWzFdICsgc2hpZnRbMV0sCisrLSAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlWzBd ICogcDJbMF0gKyBzaGlmdFswXSwKKystICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVbMV0g KiBwMlsxXSArIHNoaWZ0WzFdKQorKysgICAgICAgICAgICBkYy5EcmF3TGluZShpbnQoc2NhbGVb MF0gKiBwMVswXSArIHNoaWZ0WzBdKSwKKysrICAgICAgICAgICAgICAgICAgICAgICAgaW50KHNj YWxlWzFdICogcDFbMV0gKyBzaGlmdFsxXSksCisrKyAgICAgICAgICAgICAgICAgICAgICAgIGlu dChzY2FsZVswXSAqIHAyWzBdICsgc2hpZnRbMF0pLAorKysgICAgICAgICAgICAgICAgICAgICAg ICBpbnQoc2NhbGVbMV0gKiBwMlsxXSArIHNoaWZ0WzFdKSkKKysgICAgICAgICBpZiBzZWxmLl9k aWFnb25hbHNFbmFibGVkIGluICgnQm90dG9tcmlnaHQtVG9wbGVmdCcsIFRydWUpOgorKy0gICAg ICAgICAgICBkYy5EcmF3TGluZShzY2FsZVswXSAqIHAxWzBdICsgc2hpZnRbMF0sCisrLSAgICAg ICAgICAgICAgICAgICAgICAgIHNjYWxlWzFdICogcDJbMV0gKyBzaGlmdFsxXSwKKystICAgICAg ICAgICAgICAgICAgICAgICAgc2NhbGVbMF0gKiBwMlswXSArIHNoaWZ0WzBdLAorKy0gICAgICAg ICAgICAgICAgICAgICAgICBzY2FsZVsxXSAqIHAxWzFdICsgc2hpZnRbMV0pCisrKyAgICAgICAg ICAgIGRjLkRyYXdMaW5lKGludChzY2FsZVswXSAqIHAxWzBdICsgc2hpZnRbMF0pLAorKysgICAg ICAgICAgICAgICAgICAgICAgICBpbnQoc2NhbGVbMV0gKiBwMlsxXSArIHNoaWZ0WzFdKSwKKysr ICAgICAgICAgICAgICAgICAgICAgICAgaW50KHNjYWxlWzBdICogcDJbMF0gKyBzaGlmdFswXSks CisrKyAgICAgICAgICAgICAgICAgICAgICAgIGludChzY2FsZVsxXSAqIHAxWzFdICsgc2hpZnRb MV0pKQorKyAKKysgICAgIEBUZW1wU3R5bGUoJ3BlbicpCisrICAgICBkZWYgX2RyYXdBeGVzKHNl bGYsIGRjLCBwMSwgcDIsIHNjYWxlLCBzaGlmdCk6CisrQEAgLTI2MTQsNyArMjYxNCw3IEBAIGRl ZiBfZHJhd0F4ZXMoc2VsZiwgZGMsIHAxLCBwMiwgc2NhbGUsIHNoaWZ0KToKKysgICAgICAgICAj IGluY3JlYXNlcyB0aGlja25lc3MgZm9yIHByaW50aW5nIG9ubHkKKysgICAgICAgICBwZW4gPSBz ZWxmLmF4ZXNQZW4KKysgICAgICAgICBwZW5XaWR0aCA9IHNlbGYucHJpbnRlclNjYWxlICogcGVu LkdldFdpZHRoKCkKKystICAgICAgICBwZW4uU2V0V2lkdGgocGVuV2lkdGgpCisrKyAgICAgICAg cGVuLlNldFdpZHRoKGludChwZW5XaWR0aCkpCisrICAgICAgICAgZGMuU2V0UGVuKHBlbikKKysg CisrICAgICAgICAgYXhlcyA9IHNlbGYuZW5hYmxlQXhlcworK0BAIC0yNjIzLDI0ICsyNjIzLDI0 IEBAIGRlZiBfZHJhd0F4ZXMoc2VsZiwgZGMsIHAxLCBwMiwgc2NhbGUsIHNoaWZ0KToKKysgICAg ICAgICAgICAgICAgIGxvd2VyLCB1cHBlciA9IHAxWzBdLCBwMlswXQorKyAgICAgICAgICAgICAg ICAgYTEgPSBzY2FsZV9hbmRfc2hpZnRfcG9pbnQobG93ZXIsIHAxWzFdLCBzY2FsZSwgc2hpZnQp CisrICAgICAgICAgICAgICAgICBhMiA9IHNjYWxlX2FuZF9zaGlmdF9wb2ludCh1cHBlciwgcDFb MV0sIHNjYWxlLCBzaGlmdCkKKystICAgICAgICAgICAgICAgIGRjLkRyYXdMaW5lKGExWzBdLCBh MVsxXSwgYTJbMF0sIGEyWzFdKQorKysgICAgICAgICAgICAgICAgZGMuRHJhd0xpbmUoaW50KGEx WzBdKSwgaW50KGExWzFdKSwgaW50KGEyWzBdKSwgaW50KGEyWzFdKSkKKysgICAgICAgICAgICAg aWYgYXhlcy50b3A6CisrICAgICAgICAgICAgICAgICBsb3dlciwgdXBwZXIgPSBwMVswXSwgcDJb MF0KKysgICAgICAgICAgICAgICAgIGExID0gc2NhbGVfYW5kX3NoaWZ0X3BvaW50KGxvd2VyLCBw MlsxXSwgc2NhbGUsIHNoaWZ0KQorKyAgICAgICAgICAgICAgICAgYTIgPSBzY2FsZV9hbmRfc2hp ZnRfcG9pbnQodXBwZXIsIHAyWzFdLCBzY2FsZSwgc2hpZnQpCisrLSAgICAgICAgICAgICAgICBk Yy5EcmF3TGluZShhMVswXSwgYTFbMV0sIGEyWzBdLCBhMlsxXSkKKysrICAgICAgICAgICAgICAg IGRjLkRyYXdMaW5lKGludChhMVswXSksIGludChhMVsxXSksIGludChhMlswXSksIGludChhMlsx XSkpCisrIAorKyAgICAgICAgIGlmIHNlbGYueVNwZWMgIT0gJ25vbmUnOgorKyAgICAgICAgICAg ICBpZiBheGVzLmxlZnQ6CisrICAgICAgICAgICAgICAgICBsb3dlciwgdXBwZXIgPSBwMVsxXSwg cDJbMV0KKysgICAgICAgICAgICAgICAgIGExID0gc2NhbGVfYW5kX3NoaWZ0X3BvaW50KHAxWzBd LCBsb3dlciwgc2NhbGUsIHNoaWZ0KQorKyAgICAgICAgICAgICAgICAgYTIgPSBzY2FsZV9hbmRf c2hpZnRfcG9pbnQocDFbMF0sIHVwcGVyLCBzY2FsZSwgc2hpZnQpCisrLSAgICAgICAgICAgICAg ICBkYy5EcmF3TGluZShhMVswXSwgYTFbMV0sIGEyWzBdLCBhMlsxXSkKKysrICAgICAgICAgICAg ICAgIGRjLkRyYXdMaW5lKGludChhMVswXSksIGludChhMVsxXSksIGludChhMlswXSksIGludChh MlsxXSkpCisrICAgICAgICAgICAgIGlmIGF4ZXMucmlnaHQ6CisrICAgICAgICAgICAgICAgICBs b3dlciwgdXBwZXIgPSBwMVsxXSwgcDJbMV0KKysgICAgICAgICAgICAgICAgIGExID0gc2NhbGVf YW5kX3NoaWZ0X3BvaW50KHAyWzBdLCBsb3dlciwgc2NhbGUsIHNoaWZ0KQorKyAgICAgICAgICAg ICAgICAgYTIgPSBzY2FsZV9hbmRfc2hpZnRfcG9pbnQocDJbMF0sIHVwcGVyLCBzY2FsZSwgc2hp ZnQpCisrLSAgICAgICAgICAgICAgICBkYy5EcmF3TGluZShhMVswXSwgYTFbMV0sIGEyWzBdLCBh MlsxXSkKKysrICAgICAgICAgICAgICAgIGRjLkRyYXdMaW5lKGludChhMVswXSksIGludChhMVsx XSksIGludChhMlswXSksIGludChhMlsxXSkpCisrIAorKyAgICAgQFRlbXBTdHlsZSgncGVuJykK KysgICAgIGRlZiBfZHJhd0F4ZXNWYWx1ZXMoc2VsZiwgZGMsIHAxLCBwMiwgc2NhbGUsIHNoaWZ0 LCB4dGlja3MsIHl0aWNrcyk6CisrQEAgLTI2ODYsOCArMjY4Niw4IEBAIGRlZiBfZHJhd0F4ZXNW YWx1ZXMoc2VsZiwgZGMsIHAxLCBwMiwgc2NhbGUsIHNoaWZ0LCB4dGlja3MsIHl0aWNrcyk6Cisr ICAgICAgICAgICAgICAgICAgICAgdyA9IGRjLkdldFRleHRFeHRlbnQobGFiZWwpWzBdCisrICAg ICAgICAgICAgICAgICAgICAgcHQgPSBzY2FsZV9hbmRfc2hpZnRfcG9pbnQoeCwgcDFbMV0sIHNj YWxlLCBzaGlmdCkKKysgICAgICAgICAgICAgICAgICAgICBjb29yZHMuYXBwZW5kKAorKy0gICAg ICAgICAgICAgICAgICAgICAgICAocHRbMF0gLSB3LzIsCisrLSAgICAgICAgICAgICAgICAgICAg ICAgICBwdFsxXSArIDIgKiBzZWxmLl9wb2ludFNpemVbMV0gLSB4VGlja0xlbmd0aCkKKysrICAg ICAgICAgICAgICAgICAgICAgICAgKGludChwdFswXSAtIHcvMiksCisrKyAgICAgICAgICAgICAg ICAgICAgICAgICBpbnQocHRbMV0gKyAyICogc2VsZi5fcG9pbnRTaXplWzFdIC0geFRpY2tMZW5n dGgpKQorKyAgICAgICAgICAgICAgICAgICAgICkKKysgICAgICAgICAgICAgICAgIGRjLkRyYXdU ZXh0TGlzdChsYWJlbHMsIGNvb3JkcykKKysgCisrQEAgLTI2OTgsOCArMjY5OCw4IEBAIGRlZiBf ZHJhd0F4ZXNWYWx1ZXMoc2VsZiwgZGMsIHAxLCBwMiwgc2NhbGUsIHNoaWZ0LCB4dGlja3MsIHl0 aWNrcyk6CisrICAgICAgICAgICAgICAgICAgICAgdywgaCA9IGRjLkdldFRleHRFeHRlbnQobGFi ZWwpCisrICAgICAgICAgICAgICAgICAgICAgcHQgPSBzY2FsZV9hbmRfc2hpZnRfcG9pbnQoeCwg cDJbMV0sIHNjYWxlLCBzaGlmdCkKKysgICAgICAgICAgICAgICAgICAgICBjb29yZHMuYXBwZW5k KAorKy0gICAgICAgICAgICAgICAgICAgICAgICAocHRbMF0gLSB3LzIsCisrLSAgICAgICAgICAg ICAgICAgICAgICAgICBwdFsxXSAtIDIgKiBzZWxmLl9wb2ludFNpemVbMV0gLSBoIC0geFRpY2tM ZW5ndGgpCisrKyAgICAgICAgICAgICAgICAgICAgICAgIChpbnQocHRbMF0gLSB3LzIpLAorKysg ICAgICAgICAgICAgICAgICAgICAgICAgaW50KHB0WzFdIC0gMiAqIHNlbGYuX3BvaW50U2l6ZVsx XSAtIGggLSB4VGlja0xlbmd0aCkpCisrICAgICAgICAgICAgICAgICAgICAgKQorKyAgICAgICAg ICAgICAgICAgZGMuRHJhd1RleHRMaXN0KGxhYmVscywgY29vcmRzKQorKyAKKytAQCAtMjcxMiw4 ICsyNzEyLDggQEAgZGVmIF9kcmF3QXhlc1ZhbHVlcyhzZWxmLCBkYywgcDEsIHAyLCBzY2FsZSwg c2hpZnQsIHh0aWNrcywgeXRpY2tzKToKKysgICAgICAgICAgICAgICAgICAgICB3ID0gZGMuR2V0 VGV4dEV4dGVudChsYWJlbClbMF0KKysgICAgICAgICAgICAgICAgICAgICBwdCA9IHNjYWxlX2Fu ZF9zaGlmdF9wb2ludChwMVswXSwgeSwgc2NhbGUsIHNoaWZ0KQorKyAgICAgICAgICAgICAgICAg ICAgIGNvb3Jkcy5hcHBlbmQoCisrLSAgICAgICAgICAgICAgICAgICAgICAgIChwdFswXSAtIHcg LSAzICogc2VsZi5fcG9pbnRTaXplWzBdICsgeVRpY2tMZW5ndGgsCisrLSAgICAgICAgICAgICAg ICAgICAgICAgICBwdFsxXSAtIDAuNSAqIGgpCisrKyAgICAgICAgICAgICAgICAgICAgICAgIChp bnQocHRbMF0gLSB3IC0gMyAqIHNlbGYuX3BvaW50U2l6ZVswXSArIHlUaWNrTGVuZ3RoKSwKKysr ICAgICAgICAgICAgICAgICAgICAgICAgIGludChwdFsxXSAtIDAuNSAqIGgpKQorKyAgICAgICAg ICAgICAgICAgICAgICkKKysgICAgICAgICAgICAgICAgIGRjLkRyYXdUZXh0TGlzdChsYWJlbHMs IGNvb3JkcykKKysgCisrQEAgLTI3MjUsOCArMjcyNSw4IEBAIGRlZiBfZHJhd0F4ZXNWYWx1ZXMo c2VsZiwgZGMsIHAxLCBwMiwgc2NhbGUsIHNoaWZ0LCB4dGlja3MsIHl0aWNrcyk6CisrICAgICAg ICAgICAgICAgICAgICAgdyA9IGRjLkdldFRleHRFeHRlbnQobGFiZWwpWzBdCisrICAgICAgICAg ICAgICAgICAgICAgcHQgPSBzY2FsZV9hbmRfc2hpZnRfcG9pbnQocDJbMF0sIHksIHNjYWxlLCBz aGlmdCkKKysgICAgICAgICAgICAgICAgICAgICBjb29yZHMuYXBwZW5kKAorKy0gICAgICAgICAg ICAgICAgICAgICAgICAocHRbMF0gKyAzICogc2VsZi5fcG9pbnRTaXplWzBdICsgeVRpY2tMZW5n dGgsCisrLSAgICAgICAgICAgICAgICAgICAgICAgICBwdFsxXSAtIDAuNSAqIGgpCisrKyAgICAg ICAgICAgICAgICAgICAgICAgIChpbnQocHRbMF0gKyAzICogc2VsZi5fcG9pbnRTaXplWzBdICsg eVRpY2tMZW5ndGgpLAorKysgICAgICAgICAgICAgICAgICAgICAgICAgaW50KHB0WzFdIC0gMC41 ICogaCkpCisrICAgICAgICAgICAgICAgICAgICAgKQorKyAgICAgICAgICAgICAgICAgZGMuRHJh d1RleHRMaXN0KGxhYmVscywgY29vcmRzKQorKyAKKytAQCAtMjc4NSw3ICsyNzg1LDcgQEAgZGVm IF9kcmF3UGxvdFRpdGxlKHNlbGYsIGRjLCBncmFwaGljcywgbGhzVywgcmhzVywgdGl0bGVXSCk6 CisrICAgICAgICAgICAgICsgKHNlbGYucGxvdGJveF9zaXplWzBdIC0gbGhzVyAtIHJoc1cpIC8g Mi4gLSB0aXRsZVdIWzBdIC8gMi4sCisrICAgICAgICAgICAgIHNlbGYucGxvdGJveF9vcmlnaW5b MV0gLSBzZWxmLnBsb3Rib3hfc2l6ZVsxXQorKyAgICAgICAgICkKKystICAgICAgICBkYy5EcmF3 VGV4dChncmFwaGljcy50aXRsZSwgdGl0bGVQb3NbMF0sIHRpdGxlUG9zWzFdKQorKysgICAgICAg IGRjLkRyYXdUZXh0KGdyYXBoaWNzLnRpdGxlLCBpbnQodGl0bGVQb3NbMF0pLCBpbnQodGl0bGVQ b3NbMV0pKQorKyAKKysgICAgIGRlZiBfZHJhd0F4ZXNMYWJlbHMoc2VsZiwgZGMsIGdyYXBoaWNz LCBsaHNXLCByaHNXLCBib3R0b21ILCB0b3BILAorKyAgICAgICAgICAgICAgICAgICAgICAgICB4 TGFiZWxXSCwgeUxhYmVsV0gpOgorK0BAIC0yODA2LDcgKzI4MDYsNyBAQCBkZWYgX2RyYXdBeGVz TGFiZWxzKHNlbGYsIGRjLCBncmFwaGljcywgbGhzVywgcmhzVywgYm90dG9tSCwgdG9wSCwKKysg ICAgICAgICAgICAgKyAoc2VsZi5wbG90Ym94X3NpemVbMF0gLSBsaHNXIC0gcmhzVykgLyAyLiAt IHhMYWJlbFdIWzBdIC8gMi4sCisrICAgICAgICAgICAgIHNlbGYucGxvdGJveF9vcmlnaW5bMV0g LSB4TGFiZWxXSFsxXSAtIHlUaWNrTGVuZ3RoCisrICAgICAgICAgKQorKy0gICAgICAgIGRjLkRy YXdUZXh0KGdyYXBoaWNzLnhMYWJlbCwgeExhYmVsUG9zWzBdLCB4TGFiZWxQb3NbMV0pCisrKyAg ICAgICAgZGMuRHJhd1RleHQoZ3JhcGhpY3MueExhYmVsLCBpbnQoeExhYmVsUG9zWzBdKSwgaW50 KHhMYWJlbFBvc1sxXSkpCisrICAgICAgICAgeUxhYmVsUG9zID0gKAorKyAgICAgICAgICAgICBz ZWxmLnBsb3Rib3hfb3JpZ2luWzBdIC0gMyAqIHNlbGYuX3BvaW50U2l6ZVswXSArIHhUaWNrTGVu Z3RoLAorKyAgICAgICAgICAgICBzZWxmLnBsb3Rib3hfb3JpZ2luWzFdIC0gYm90dG9tSAorK0BA IC0yODE0LDcgKzI4MTQsNyBAQCBkZWYgX2RyYXdBeGVzTGFiZWxzKHNlbGYsIGRjLCBncmFwaGlj cywgbGhzVywgcmhzVywgYm90dG9tSCwgdG9wSCwKKysgICAgICAgICApCisrICAgICAgICAgaWYg Z3JhcGhpY3MueUxhYmVsOiAgIyBidWcgZml4IGZvciBMaW51eAorKyAgICAgICAgICAgICBkYy5E cmF3Um90YXRlZFRleHQoCisrLSAgICAgICAgICAgICAgICBncmFwaGljcy55TGFiZWwsIHlMYWJl bFBvc1swXSwgeUxhYmVsUG9zWzFdLCA5MCkKKysrICAgICAgICAgICAgICAgIGdyYXBoaWNzLnlM YWJlbCwgaW50KHlMYWJlbFBvc1swXSksIGludCh5TGFiZWxQb3NbMV0pLCA5MCkKKysgCisrICAg ICBAVGVtcFN0eWxlKCdwZW4nKQorKyAgICAgZGVmIF9kcmF3UGxvdEFyZWFMYWJlbHMoc2VsZiwg ZGMsIGdyYXBoaWNzLCBsaHNXLCByaHNXLCB0aXRsZVdILAorK0BAIC0yOTQyLDcgKzI5NDIsNyBA QCBkZWYgX2FkanVzdFNjcm9sbGJhcnMoc2VsZik6CisrICAgICAgICAgaWYgcG9zID49IDA6Cisr ICAgICAgICAgICAgIHBhZ2VzaXplID0gaW50KChyX2N1cnJlbnRbMV0gLSByX2N1cnJlbnRbMF0p IC8gdW5pdCkKKysgCisrLSAgICAgICAgICAgIHNlbGYuc2JfaG9yLlNldFNjcm9sbGJhcihwb3Ms IHBhZ2VzaXplLCBzYmZ1bGxyYW5nZSwgcGFnZXNpemUpCisrKyAgICAgICAgICAgIHNlbGYuc2Jf aG9yLlNldFNjcm9sbGJhcihwb3MsIHBhZ2VzaXplLCBpbnQoc2JmdWxscmFuZ2UpLCBwYWdlc2l6 ZSkKKysgICAgICAgICAgICAgc2VsZi5fc2JfeHVuaXQgPSB1bml0CisrICAgICAgICAgICAgIG5l ZWRTY3JvbGxiYXJzID0gbmVlZFNjcm9sbGJhcnMgb3IgKHBhZ2VzaXplICE9IHNiZnVsbHJhbmdl KQorKyAgICAgICAgIGVsc2U6CisrQEAgLTI5NjQsNyArMjk2NCw3IEBAIGRlZiBfYWRqdXN0U2Ny b2xsYmFycyhzZWxmKToKKysgICAgICAgICBpZiBwb3MgPj0gMDoKKysgICAgICAgICAgICAgcGFn ZXNpemUgPSBpbnQoKHJfY3VycmVudFsxXSAtIHJfY3VycmVudFswXSkgLyB1bml0KQorKyAgICAg ICAgICAgICBwb3MgPSAoc2JmdWxscmFuZ2UgLSAxIC0gcG9zIC0gcGFnZXNpemUpCisrLSAgICAg ICAgICAgIHNlbGYuc2JfdmVydC5TZXRTY3JvbGxiYXIocG9zLCBwYWdlc2l6ZSwgc2JmdWxscmFu Z2UsIHBhZ2VzaXplKQorKysgICAgICAgICAgICBzZWxmLnNiX3ZlcnQuU2V0U2Nyb2xsYmFyKGlu dChwb3MpLCBwYWdlc2l6ZSwgaW50KHNiZnVsbHJhbmdlKSwgcGFnZXNpemUpCisrICAgICAgICAg ICAgIHNlbGYuX3NiX3l1bml0ID0gdW5pdAorKyAgICAgICAgICAgICBuZWVkU2Nyb2xsYmFycyA9 IG5lZWRTY3JvbGxiYXJzIG9yIChwYWdlc2l6ZSAhPSBzYmZ1bGxyYW5nZSkKKysgICAgICAgICBl bHNlOgorK2RpZmYgLS1naXQgYS93eC9saWIvcGxvdC9wb2x5b2JqZWN0cy5weSBiL3d4L2xpYi9w bG90L3BvbHlvYmplY3RzLnB5CisraW5kZXggMjZhNTRmOGY3Li43MjViMDE2NGUgMTAwNjQ0Cisr LS0tIGEvd3gvbGliL3Bsb3QvcG9seW9iamVjdHMucHkKKysrKysgYi93eC9saWIvcGxvdC9wb2x5 b2JqZWN0cy5weQorK0BAIC00MTcsNyArNDE3LDcgQEAgZGVmIGRyYXcoc2VsZiwgZGMsIHByaW50 ZXJTY2FsZSwgY29vcmQ9Tm9uZSk6CisrIAorKyAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGNv bG91ciwgd3guQ29sb3VyKToKKysgICAgICAgICAgICAgY29sb3VyID0gd3guQ29sb3VyKGNvbG91 cikKKystICAgICAgICBwZW4gPSB3eC5QZW4oY29sb3VyLCB3aWR0aCwgc3R5bGUpCisrKyAgICAg ICAgcGVuID0gd3guUGVuKGNvbG91ciwgaW50KHdpZHRoKSwgc3R5bGUpCisrICAgICAgICAgcGVu LlNldENhcCh3eC5DQVBfQlVUVCkKKysgICAgICAgICBkYy5TZXRQZW4ocGVuKQorKyAgICAgICAg IGlmIGNvb3JkIGlzIE5vbmU6CisrQEAgLTUxOCw3ICs1MTgsNyBAQCBkZWYgZHJhdyhzZWxmLCBk YywgcHJpbnRlclNjYWxlLCBjb29yZD1Ob25lKToKKysgICAgICAgICBzdHlsZSA9IHNlbGYuYXR0 cmlidXRlc1snc3R5bGUnXQorKyAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGNvbG91ciwgd3gu Q29sb3VyKToKKysgICAgICAgICAgICAgY29sb3VyID0gd3guQ29sb3VyKGNvbG91cikKKystICAg ICAgICBwZW4gPSB3eC5QZW4oY29sb3VyLCB3aWR0aCwgc3R5bGUpCisrKyAgICAgICAgcGVuID0g d3guUGVuKGNvbG91ciwgaW50KHdpZHRoKSwgc3R5bGUpCisrICAgICAgICAgcGVuLlNldENhcCh3 eC5DQVBfUk9VTkQpCisrICAgICAgICAgZGMuU2V0UGVuKHBlbikKKysgICAgICAgICBpZiBjb29y ZCBpcyBOb25lOgorK0BAIC01OTAsNyArNTkwLDcgQEAgZGVmIGRyYXcoc2VsZiwgZGMsIHByaW50 ZXJTY2FsZSwgY29vcmQ9Tm9uZSk6CisrICAgICAgICAgaWYgZmlsbGNvbG91ciBhbmQgbm90IGlz aW5zdGFuY2UoZmlsbGNvbG91ciwgd3guQ29sb3VyKToKKysgICAgICAgICAgICAgZmlsbGNvbG91 ciA9IHd4LkNvbG91cihmaWxsY29sb3VyKQorKyAKKystICAgICAgICBkYy5TZXRQZW4od3guUGVu KGNvbG91ciwgd2lkdGgpKQorKysgICAgICAgIGRjLlNldFBlbih3eC5QZW4oY29sb3VyLCBpbnQo d2lkdGgpKSkKKysgICAgICAgICBpZiBmaWxsY29sb3VyOgorKyAgICAgICAgICAgICBkYy5TZXRC cnVzaCh3eC5CcnVzaChmaWxsY29sb3VyLCBmaWxsc3R5bGUpKQorKyAgICAgICAgIGVsc2U6Cisr QEAgLTYxOCw2ICs2MTgsNyBAQCBkZWYgX2NpcmNsZShzZWxmLCBkYywgY29vcmRzLCBzaXplPTEp OgorKyAgICAgICAgIGRjLkRyYXdFbGxpcHNlTGlzdChyZWN0LmFzdHlwZShucC5pbnQzMikpCisr IAorKyAgICAgZGVmIF9kb3Qoc2VsZiwgZGMsIGNvb3Jkcywgc2l6ZT0xKToKKysrICAgICAgICBj b29yZHMgPSBbKGludChjWzBdKSwgaW50KGNbMV0pKSBmb3IgYyBpbiBjb29yZHNdCisrICAgICAg ICAgZGMuRHJhd1BvaW50TGlzdChjb29yZHMpCisrIAorKyAgICAgZGVmIF9zcXVhcmUoc2VsZiwg ZGMsIGNvb3Jkcywgc2l6ZT0xKToKKytAQCAtNjk5LDcgKzcwMCw3IEBAIGRlZiBzZXRfcGVuX2Fu ZF9icnVzaChzZWxmLCBkYywgcHJpbnRlclNjYWxlKToKKysgCisrICAgICAgICAgaWYgbm90IGlz aW5zdGFuY2UocGVuY29sb3VyLCB3eC5Db2xvdXIpOgorKyAgICAgICAgICAgICBwZW5jb2xvdXIg PSB3eC5Db2xvdXIocGVuY29sb3VyKQorKy0gICAgICAgIHBlbiA9IHd4LlBlbihwZW5jb2xvdXIs IHBlbndpZHRoLCBwZW5zdHlsZSkKKysrICAgICAgICBwZW4gPSB3eC5QZW4ocGVuY29sb3VyLCBp bnQocGVud2lkdGgpLCBwZW5zdHlsZSkKKysgICAgICAgICBwZW4uU2V0Q2FwKHd4LkNBUF9CVVRU KQorKyAKKysgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShmaWxsY29sb3VyLCB3eC5Db2xvdXIp OgorK0BAIC03OTAsNiArNzkxLDcgQEAgZGVmIGRyYXcoc2VsZiwgZGMsIHByaW50ZXJTY2FsZSwg Y29vcmQ9Tm9uZSk6CisrICAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoZXJyX3N0ci5m b3JtYXQodHlwZShiYXJ3aWR0aCkpKQorKyAKKysgICAgICAgICAgICAgcmVjdHMgPSBbc2VsZi5j YWxjX3JlY3QoeCwgeSwgdykgZm9yIHgsIHksIHcgaW4gcHRzXQorKysgICAgICAgICAgICByZWN0 cyA9IFsoaW50KHJbMF0pLCBpbnQoclsxXSksIGludChyWzJdKSwgaW50KHJbM10pKSBmb3IgciBp biByZWN0c10KKysgICAgICAgICAgICAgZGMuRHJhd1JlY3RhbmdsZUxpc3QocmVjdHMpCisrICAg ICAgICAgZWxzZToKKysgICAgICAgICAgICAgZGMuRHJhd0xpbmVzKGNvb3JkKSAgIyBkcmF3IGxl Z2VuZCBsaW5lCisrQEAgLTg1OCw2ICs4NjAsOCBAQCBkZWYgZHJhdyhzZWxmLCBkYywgcHJpbnRl clNjYWxlLCBjb29yZD1Ob25lKToKKysgICAgICAgICAgICAgcmVjdHMgPSBbc2VsZi5jYWxjX3Jl Y3QoeSwgbG93LCBoaWdoKQorKyAgICAgICAgICAgICAgICAgICAgICBmb3IgeSwgKGxvdywgaGln aCkKKysgICAgICAgICAgICAgICAgICAgICAgaW4gemlwKHNlbGYuaGlzdCwgc2VsZi5iaW5zKV0K KysrICAgICAgICAgICAgcmVjdHMgPSBbKGludChyWzBdKSwgaW50KHJbMV0pLCBpbnQoclsyXSks IGludChyWzNdKSkKKysrICAgICAgICAgICAgICAgICAgICAgZm9yIHIgaW4gcmVjdHNdCisrIAor KyAgICAgICAgICAgICBkYy5EcmF3UmVjdGFuZ2xlTGlzdChyZWN0cykKKysgICAgICAgICBlbHNl OgorK0BAIC0xMTE0LDEwICsxMTE4LDEwIEBAIGRlZiBfZHJhd19pcXJfYm94KHNlbGYsIGRjLCBw cmludGVyU2NhbGUpOgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuY3VycmVudFNoaWZ0KQorKyAKKysgICAgICAgICAjIHJlY3RhbmdsZXMgYXJlIGRyYXduIChs ZWZ0LCB0b3AsIHdpZHRoLCBoZWlnaHQpIHNvIGFkanVzdAorKy0gICAgICAgIGlxcl9ib3ggPSBb aXFyX2JveFswXVswXSwgICAgICAgICAgICAgICAgICAgIyBYIChsZWZ0KQorKy0gICAgICAgICAg ICAgICAgICAgaXFyX2JveFswXVsxXSwgICAgICAgICAgICAgICAgICAgIyBZICh0b3ApCisrLSAg ICAgICAgICAgICAgICAgICBpcXJfYm94WzFdWzBdIC0gaXFyX2JveFswXVswXSwgICAjIFdpZHRo CisrLSAgICAgICAgICAgICAgICAgICBpcXJfYm94WzFdWzFdIC0gaXFyX2JveFswXVsxXV0gICAj IEhlaWdodAorKysgICAgICAgIGlxcl9ib3ggPSBbaW50KGlxcl9ib3hbMF1bMF0pLCAgICAgICAg ICAgICAgICAgICAjIFggKGxlZnQpCisrKyAgICAgICAgICAgICAgICAgICBpbnQoaXFyX2JveFsw XVsxXSksICAgICAgICAgICAgICAgICAgICMgWSAodG9wKQorKysgICAgICAgICAgICAgICAgICAg aW50KGlxcl9ib3hbMV1bMF0gLSBpcXJfYm94WzBdWzBdKSwgICAjIFdpZHRoCisrKyAgICAgICAg ICAgICAgICAgICBpbnQoaXFyX2JveFsxXVsxXSAtIGlxcl9ib3hbMF1bMV0pXSAgICMgSGVpZ2h0 CisrIAorKyAgICAgICAgIGJveF9wZW4gPSB3eC5QZW4od3guQkxBQ0ssIDMsIHd4LlBFTlNUWUxF X1NPTElEKQorKyAgICAgICAgIGJveF9icnVzaCA9IHd4LkJydXNoKHd4LkdSRUVOLCB3eC5CUlVT SFNUWUxFX1NPTElEKQorK0BAIC0xNTAzLDcgKzE1MDcsNyBAQCBkZWYgT25QcmludFBhZ2Uoc2Vs ZiwgcGFnZSk6CisrICAgICAgICAgc2VsZi5ncmFwaC5fc2V0U2l6ZShwbG90QXJlYVcsIHBsb3RB cmVhSCkKKysgCisrICAgICAgICAgIyBTZXQgb2Zmc2V0IGFuZCBzY2FsZQorKy0gICAgICAgIGRj LlNldERldmljZU9yaWdpbihwaXhMZWZ0LCBwaXhUb3ApCisrKyAgICAgICAgZGMuU2V0RGV2aWNl T3JpZ2luKGludChwaXhMZWZ0KSwgaW50KHBpeFRvcCkpCisrIAorKyAgICAgICAgICMgVGhpY2tl biB1cCBwZW5zIGFuZCBpbmNyZWFzZSBtYXJrZXIgc2l6ZSBmb3IgcHJpbnRpbmcKKysgICAgICAg ICByYXRpb1cgPSBmbG9hdChwbG90QXJlYVcpIC8gY2xpZW50RGNTaXplWzBdCisrZGlmZiAtLWdp dCBhL3d4L2xpYi9wb3B1cGN0bC5weSBiL3d4L2xpYi9wb3B1cGN0bC5weQorK2luZGV4IDg4M2Jl NWFlNS4uMjM2NTAxZjZkIDEwMDY0NAorKy0tLSBhL3d4L2xpYi9wb3B1cGN0bC5weQorKysrKyBi L3d4L2xpYi9wb3B1cGN0bC5weQorK0BAIC0xMjQsNyArMTI0LDcgQEAgZGVmIERpc3BsYXkoc2Vs Zik6CisrICAgICAgICAgc2VsZlNpemUgPSBzZWxmLkdldFNpemUoKQorKyAgICAgICAgIHRjU2l6 ZSA9IHNlbGYuY3RybC5HZXRTaXplKCkKKysgCisrLSAgICAgICAgcG9zLnggLT0gKHNlbGZTaXpl LndpZHRoIC0gdGNTaXplLndpZHRoKSAvIDIKKysrICAgICAgICBwb3MueCAtPSAoc2VsZlNpemUu d2lkdGggLSB0Y1NpemUud2lkdGgpIC8vIDIKKysgICAgICAgICBpZiBwb3MueCArIHNlbGZTaXpl LndpZHRoID4gZFNpemUud2lkdGg6CisrICAgICAgICAgICAgIHBvcy54ID0gZFNpemUud2lkdGgg LSBzZWxmU2l6ZS53aWR0aAorKyAgICAgICAgIGlmIHBvcy54IDwgMDoKKytkaWZmIC0tZ2l0IGEv d3gvbGliL3Njcm9sbGVkcGFuZWwucHkgYi93eC9saWIvc2Nyb2xsZWRwYW5lbC5weQorK2luZGV4 IGU0YzQ4MmFmOS4uMWY3ODNlYTk3IDEwMDY0NAorKy0tLSBhL3d4L2xpYi9zY3JvbGxlZHBhbmVs LnB5CisrKysrIGIvd3gvbGliL3Njcm9sbGVkcGFuZWwucHkKKytAQCAtMjIyLDQgKzIyMiw0IEBA IGRlZiBTY3JvbGxDaGlsZEludG9WaWV3KHNlbGYsIGNoaWxkKToKKysgICAgICAgICAjIGlmIHdl IG5lZWQgdG8gYWRqdXN0CisrICAgICAgICAgaWYgbmV3X3ZzX3ggIT0gLTEgb3IgbmV3X3ZzX3kg IT0gLTE6CisrICAgICAgICAgICAgICNwcmludCgiJXM6ICglcywgJXMpIiAlIChzZWxmLkdldE5h bWUoKSwgbmV3X3ZzX3gsIG5ld192c195KSkKKystICAgICAgICAgICAgc2VsZi5TY3JvbGwobmV3 X3ZzX3gsIG5ld192c195KQorKysgICAgICAgICAgICBzZWxmLlNjcm9sbChpbnQobmV3X3ZzX3gp LCBpbnQobmV3X3ZzX3kpKQorK2RpZmYgLS1naXQgYS93eC9saWIvdGhyb2JiZXIucHkgYi93eC9s aWIvdGhyb2JiZXIucHkKKytpbmRleCA5OTU0ZDZiMjcuLmVlOGM1MTIwOSAxMDA2NDQKKystLS0g YS93eC9saWIvdGhyb2JiZXIucHkKKysrKysgYi93eC9saWIvdGhyb2JiZXIucHkKKytAQCAtMjAw LDExICsyMDAsMTEgQEAgZGVmIERyYXcoc2VsZiwgZGMpOgorKyAgICAgICAgICIiIgorKyAgICAg ICAgIGRjLkRyYXdCaXRtYXAoc2VsZi5zdWJtYXBzW3NlbGYuc2VxdWVuY2Vbc2VsZi5jdXJyZW50 XV0sIDAsIDAsIFRydWUpCisrICAgICAgICAgaWYgc2VsZi5vdmVybGF5IGFuZCBzZWxmLnNob3dP dmVybGF5OgorKy0gICAgICAgICAgICBkYy5EcmF3Qml0bWFwKHNlbGYub3ZlcmxheSwgc2VsZi5v dmVybGF5WCwgc2VsZi5vdmVybGF5WSwgVHJ1ZSkKKysrICAgICAgICAgICAgZGMuRHJhd0JpdG1h cChzZWxmLm92ZXJsYXksIGludChzZWxmLm92ZXJsYXlYKSwgaW50KHNlbGYub3ZlcmxheVkpLCBU cnVlKQorKyAgICAgICAgIGlmIHNlbGYubGFiZWwgYW5kIHNlbGYuc2hvd0xhYmVsOgorKy0gICAg ICAgICAgICBkYy5EcmF3VGV4dChzZWxmLmxhYmVsLCBzZWxmLmxhYmVsWCwgc2VsZi5sYWJlbFkp CisrKyAgICAgICAgICAgIGRjLkRyYXdUZXh0KHNlbGYubGFiZWwsIGludChzZWxmLmxhYmVsWCks IGludChzZWxmLmxhYmVsWSkpCisrICAgICAgICAgICAgIGRjLlNldFRleHRGb3JlZ3JvdW5kKHd4 LldISVRFKQorKy0gICAgICAgICAgICBkYy5EcmF3VGV4dChzZWxmLmxhYmVsLCBzZWxmLmxhYmVs WC0xLCBzZWxmLmxhYmVsWS0xKQorKysgICAgICAgICAgICBkYy5EcmF3VGV4dChzZWxmLmxhYmVs LCBpbnQoc2VsZi5sYWJlbFgtMSksIGludChzZWxmLmxhYmVsWS0xKSkKKysgCisrIAorKyAgICAg ZGVmIE9uUGFpbnQoc2VsZiwgZXZlbnQpOgorK2RpZmYgLS1naXQgYS93eC9saWIvdGlja2VyLnB5 IGIvd3gvbGliL3RpY2tlci5weQorK2luZGV4IDA0YWJmMGQ0NC4uNGU2ODRiNGNkIDEwMDY0NAor Ky0tLSBhL3d4L2xpYi90aWNrZXIucHkKKysrKysgYi93eC9saWIvdGlja2VyLnB5CisrQEAgLTg2 LDcgKzg2LDcgQEAgZGVmIFN0b3Aoc2VsZik6CisrICAgICBkZWYgU3RhcnQoc2VsZik6CisrICAg ICAgICAgIiIiU3RhcnRzIHRoZSB0ZXh0IG1vdmluZyIiIgorKyAgICAgICAgIGlmIG5vdCBzZWxm LnRpbWVyLklzUnVubmluZygpOgorKy0gICAgICAgICAgICBzZWxmLnRpbWVyLlN0YXJ0KDEwMDAg LyBzZWxmLl9mcHMpCisrKyAgICAgICAgICAgIHNlbGYudGltZXIuU3RhcnQoMTAwMCAvLyBzZWxm Ll9mcHMpCisrIAorKyAKKysgICAgIGRlZiBJc1RpY2tpbmcoc2VsZik6CisrQEAgLTIwOCw3ICsy MDgsNyBAQCBkZWYgRHJhd1RleHQoc2VsZiwgZGMpOgorKyAgICAgICAgICAgICBvZmZ4ID0gc2Vs Zi5fb2Zmc2V0IC0gc2VsZi5fZXh0ZW50WzBdCisrICAgICAgICAgZWxzZToKKysgICAgICAgICAg ICAgb2ZmeCA9IHNlbGYuR2V0U2l6ZSgpWzBdIC0gc2VsZi5fb2Zmc2V0CisrLSAgICAgICAgb2Zm eSA9IChzZWxmLkdldFNpemUoKVsxXSAtIHNlbGYuX2V4dGVudFsxXSkgLyAyICNjZW50ZXJlZCB2 ZXJ0aWNhbGx5CisrKyAgICAgICAgb2ZmeSA9IChzZWxmLkdldFNpemUoKVsxXSAtIHNlbGYuX2V4 dGVudFsxXSkgLy8gMiAjY2VudGVyZWQgdmVydGljYWxseQorKyAgICAgICAgIGRjLkRyYXdUZXh0 KHNlbGYuX3RleHQsIG9mZngsIG9mZnkpCisrIAorKyAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy93 eFB5dGhvbjQvcGF0Y2hlcy8wMDAzLVB5dGhvbi0zLjEwLUFHVy1GbGF0Tm90ZWJvb2sucGF0Y2gg Yi9zcmNwa2dzL3d4UHl0aG9uNC9wYXRjaGVzLzAwMDMtUHl0aG9uLTMuMTAtQUdXLUZsYXROb3Rl Ym9vay5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjg4YzNj YTE4OTY0NwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvd3hQeXRob240L3BhdGNoZXMvMDAw My1QeXRob24tMy4xMC1BR1ctRmxhdE5vdGVib29rLnBhdGNoCkBAIC0wLDAgKzEsNTcgQEAKK0Zy b20gMWQ1ZmQ3MmRmZjYzZDYyZGQxOWI3N2U0ODlkNDExNTI0NWQ0ZDQ1MyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKK0Zyb206IFNjb3R0IFRhbGJlcnQgPHN3dEB0ZWNoaWUubmV0PgorRGF0ZTog RGVjIDI4IDIwMjEgMDI6NTg6MTIgKzAwMDAKK1N1YmplY3Q6IEZpeCBtb3JlIFB5dGhvbiAzLjEw IGlzc3VlcyB3aXRoIEFHVyBGbGF0Tm90ZWJvb2sgKCMyMDM1NzkwKQorCisKKy0tLQorCitkaWZm IC0tZ2l0IGEvYWEzZGNhMGU0MGJkMDcwMWU4MmNlNDAyOTdhOTgyYjViODQ4NDRkYy5wYXRjaCBi L2FhM2RjYTBlNDBiZDA3MDFlODJjZTQwMjk3YTk4MmI1Yjg0ODQ0ZGMucGF0Y2gKK25ldyBmaWxl IG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi5lOGI3NGFjCistLS0gL2Rldi9udWxsCisrKysg Yi9hYTNkY2EwZTQwYmQwNzAxZTgyY2U0MDI5N2E5ODJiNWI4NDg0NGRjLnBhdGNoCitAQCAtMCww ICsxLDQzIEBACisrRnJvbSBhYTNkY2EwZTQwYmQwNzAxZTgyY2U0MDI5N2E5ODJiNWI4NDg0NGRj IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorK0Zyb206IFNjb3R0IFRhbGJlcnQgPHN3dEB0ZWNo aWUubmV0PgorK0RhdGU6IE1vbiwgMjcgRGVjIDIwMjEgMTk6NDg6NTUgLTA1MDAKKytTdWJqZWN0 OiBbUEFUQ0hdIEZpeCBhZGRpdGlvbmFsIFB5dGhvbiAzLjEwIGlzc3VlcyB3aXRoIEFHVyBGbGF0 Tm90ZWJvb2sKKysKKystLS0KKysgd3gvbGliL2Fndy9mbGF0bm90ZWJvb2sucHkgfCAxNCArKysr KysrLS0tLS0tLQorKyAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9u cygtKQorKworK2RpZmYgLS1naXQgYS93eC9saWIvYWd3L2ZsYXRub3RlYm9vay5weSBiL3d4L2xp Yi9hZ3cvZmxhdG5vdGVib29rLnB5CisraW5kZXggZDMzZjcxZDUxLi42MWJjNGVmYjMgMTAwNjQ0 CisrLS0tIGEvd3gvbGliL2Fndy9mbGF0bm90ZWJvb2sucHkKKysrKysgYi93eC9saWIvYWd3L2Zs YXRub3RlYm9vay5weQorK0BAIC05MjUsMTQgKzkyNSwxNCBAQCBkZWYgRHJhd0J1dHRvbihkYywg cmVjdCwgZm9jdXMsIHVwcGVyVGFicyk6CisrIAorKyAgICAgaWYgZm9jdXM6CisrICAgICAgICAg aWYgdXBwZXJUYWJzOgorKy0gICAgICAgICAgICBsZWZ0UHQgPSB3eC5Qb2ludChyZWN0LngsIHJl Y3QueSArIChyZWN0LmhlaWdodCAvIDEwKSo4KQorKy0gICAgICAgICAgICByaWdodFB0ID0gd3gu UG9pbnQocmVjdC54ICsgcmVjdC53aWR0aCAtIDIsIHJlY3QueSArIChyZWN0LmhlaWdodCAvIDEw KSo4KQorKysgICAgICAgICAgICBsZWZ0UHQgPSB3eC5Qb2ludChyZWN0LngsIGludChyZWN0Lnkg KyAocmVjdC5oZWlnaHQgLyAxMCkqOCkpCisrKyAgICAgICAgICAgIHJpZ2h0UHQgPSB3eC5Qb2lu dChyZWN0LnggKyByZWN0LndpZHRoIC0gMiwgaW50KHJlY3QueSArIChyZWN0LmhlaWdodCAvIDEw KSo4KSkKKysgICAgICAgICBlbHNlOgorKy0gICAgICAgICAgICBsZWZ0UHQgPSB3eC5Qb2ludChy ZWN0LngsIHJlY3QueSArIChyZWN0LmhlaWdodCAvIDEwKSo1KQorKy0gICAgICAgICAgICByaWdo dFB0ID0gd3guUG9pbnQocmVjdC54ICsgcmVjdC53aWR0aCAtIDIsIHJlY3QueSArIChyZWN0Lmhl aWdodCAvIDEwKSo1KQorKysgICAgICAgICAgICBsZWZ0UHQgPSB3eC5Qb2ludChyZWN0LngsIGlu dChyZWN0LnkgKyAocmVjdC5oZWlnaHQgLyAxMCkqNSkpCisrKyAgICAgICAgICAgIHJpZ2h0UHQg PSB3eC5Qb2ludChyZWN0LnggKyByZWN0LndpZHRoIC0gMiwgaW50KHJlY3QueSArIChyZWN0Lmhl aWdodCAvIDEwKSo1KSkKKysgICAgIGVsc2U6CisrLSAgICAgICAgbGVmdFB0ID0gd3guUG9pbnQo cmVjdC54LCByZWN0LnkgKyAocmVjdC5oZWlnaHQgLyAyKSkKKystICAgICAgICByaWdodFB0ID0g d3guUG9pbnQocmVjdC54ICsgcmVjdC53aWR0aCAtIDIsIHJlY3QueSArIChyZWN0LmhlaWdodCAv IDIpKQorKysgICAgICAgIGxlZnRQdCA9IHd4LlBvaW50KHJlY3QueCwgaW50KHJlY3QueSArIChy ZWN0LmhlaWdodCAvIDIpKSkKKysrICAgICAgICByaWdodFB0ID0gd3guUG9pbnQocmVjdC54ICsg cmVjdC53aWR0aCAtIDIsIGludChyZWN0LnkgKyAocmVjdC5oZWlnaHQgLyAyKSkpCisrIAorKyAg ICAgIyBEZWZpbmUgdGhlIHRvcCByZWdpb24KKysgICAgIHRvcCA9IHd4LlJlY3QocmVjdC5HZXRU b3BMZWZ0KCksIHJpZ2h0UHQpCisrQEAgLTI3NjYsNyArMjc2Niw3IEBAIGRlZiBEcmF3VGFiKHNl bGYsIHBhZ2VDb250YWluZXIsIGRjLCBwb3N4LCB0YWJJZHgsIHRhYldpZHRoLCB0YWJIZWlnaHQs IGJ0blN0YXR1CisrICAgICAgICAgaWYgcGFnZVRleHRDb2xvdXIgaXMgbm90IE5vbmU6CisrICAg ICAgICAgICAgIGRjLlNldFRleHRGb3JlZ3JvdW5kKHBhZ2VUZXh0Q29sb3VyKQorKyAKKystICAg ICAgICBkYy5EcmF3VGV4dChwYy5HZXRQYWdlVGV4dCh0YWJJZHgpLCBwb3N4ICsgdGV4dE9mZnNl dCwgaW1hZ2VZQ29vcmQpCisrKyAgICAgICAgZGMuRHJhd1RleHQocGMuR2V0UGFnZVRleHQodGFi SWR4KSwgaW50KHBvc3ggKyB0ZXh0T2Zmc2V0KSwgaW1hZ2VZQ29vcmQpCisrIAorKyAgICAgICAg ICMgZHJhdyAneCcgb24gdGFiIChpZiBlbmFibGVkKQorKyAgICAgICAgIGlmIHBjLkhhc0FHV0Zs YWcoRk5CX1hfT05fVEFCKSBhbmQgdGFiSWR4ID09IHBjLkdldFNlbGVjdGlvbigpOgpkaWZmIC0t Z2l0IGEvc3JjcGtncy93eFB5dGhvbjQvcGF0Y2hlcy9yZXN0b3JlLWdpbC1wc2V1ZG9kYy5wYXRj aCBiL3NyY3BrZ3Mvd3hQeXRob240L3BhdGNoZXMvcmVzdG9yZS1naWwtcHNldWRvZGMucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi42ZjIxZWNiN2E3MTgKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3d4UHl0aG9uNC9wYXRjaGVzL3Jlc3RvcmUtZ2lsLXBz ZXVkb2RjLnBhdGNoCkBAIC0wLDAgKzEsNTIgQEAKK0JhY2twb3J0IGh0dHBzOi8vZ2l0aHViLmNv bS93eFdpZGdldHMvUGhvZW5peC9wdWxsLzE4NDkKK1JlZ2FyZGluZyBzZWdmYXVsdCBhcyBpbiBo dHRwczovL2dpdGh1Yi5jb20vT1NHZW8vZ3Jhc3MvaXNzdWVzLzExMjMKKworRnJvbSA1Y2FjZTQ3 YWFlY2UzY2M0ZjJlNmVhOTdkN2ZkNWJiOGVkMzE2YWM5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQorRnJvbTogUm9iaW4gRHVubiA8cm9iaW5AYWxsZHVubi5jb20+CitEYXRlOiBXZWQsIDE4IE5v diAyMDIwIDEwOjUyOjUzIC0wODAwCitTdWJqZWN0OiBbUEFUQ0hdIFJlc3RvcmUgR0lMIGFjcXVp c2l0aW9uIGluIHd4UHNldWRvREM6OkZpbmRPYmplY3RzKgorCistLS0KKyBzcmMvcHNldWRvZGMu Y3BwIHwgOCArKystLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDUgZGVs ZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvcHNldWRvZGMuY3BwIGIvc3JjL3BzZXVkb2Rj LmNwcAoraW5kZXggNTg5MGVkN2UyLi5lZDRiY2QwNmEgMTAwNjQ0CistLS0gYS9zcmMvcHNldWRv ZGMuY3BwCisrKysgYi9zcmMvcHNldWRvZGMuY3BwCitAQCAtNDgzLDcgKzQ4Myw3IEBAIGJvb2wg d3hQc2V1ZG9EQzo6R2V0SWRHcmV5ZWRPdXQoaW50IGlkKQorIC8vIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBQeU9iamVjdCAqd3hQc2V1ZG9EQzo6RmluZE9iamVjdHNCeUJCb3god3hDb29yZCB4LCB3 eENvb3JkIHkpCisgeworLSAgICAvL3d4UHlCbG9ja190IGJsb2NrZWQgPSB3eFB5QmVnaW5CbG9j a1RocmVhZHMoKTsKKysgICAgd3hQeVRocmVhZEJsb2NrZXIgYmxvY2tlcjsKKyAgICAgcGRjT2Jq ZWN0TGlzdDo6Y29tcGF0aWJpbGl0eV9pdGVyYXRvciBwdCA9IG1fb2JqZWN0bGlzdC5HZXRGaXJz dCgpOworICAgICBwZGNPYmplY3QgKm9iajsKKyAgICAgUHlPYmplY3QqIHB5TGlzdCA9IE5VTEw7 CitAQCAtNTAxLDcgKzUwMSw2IEBAIFB5T2JqZWN0ICp3eFBzZXVkb0RDOjpGaW5kT2JqZWN0c0J5 QkJveCh3eENvb3JkIHgsIHd4Q29vcmQgeSkKKyAgICAgICAgIH0KKyAgICAgICAgIHB0ID0gcHQt PkdldE5leHQoKTsKKyAgICAgfQorLSAgICAvL3d4UHlFbmRCbG9ja1RocmVhZHMoYmxvY2tlZCk7 CisgICAgIHJldHVybiBweUxpc3Q7CisgfQorIAorQEAgLTUxMSw3ICs1MTAsNyBAQCBQeU9iamVj dCAqd3hQc2V1ZG9EQzo6RmluZE9iamVjdHNCeUJCb3god3hDb29yZCB4LCB3eENvb3JkIHkpCisg UHlPYmplY3QgKnd4UHNldWRvREM6OkZpbmRPYmplY3RzKHd4Q29vcmQgeCwgd3hDb29yZCB5LAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3eENvb3JkIHJhZGl1cywgY29uc3Qg d3hDb2xvciYgYmcpCisgeworLSAgICAvL3d4UHlCbG9ja190IGJsb2NrZWQgPSB3eFB5QmVnaW5C bG9ja1RocmVhZHMoKTsKKysgICAgd3hQeVRocmVhZEJsb2NrZXIgYmxvY2tlcjsKKyAgICAgcGRj T2JqZWN0TGlzdDo6Y29tcGF0aWJpbGl0eV9pdGVyYXRvciBwdCA9IG1fb2JqZWN0bGlzdC5HZXRG aXJzdCgpOworICAgICBwZGNPYmplY3QgKm9iajsKKyAgICAgUHlPYmplY3QqIHB5TGlzdCA9IE5V TEw7CitAQCAtNjExLDggKzYxMCw3IEBAIFB5T2JqZWN0ICp3eFBzZXVkb0RDOjpGaW5kT2JqZWN0 cyh3eENvb3JkIHgsIHd4Q29vcmQgeSwKKyAgICAgICAgIG1hc2tkYy5TZWxlY3RPYmplY3Qod3hO dWxsQml0bWFwKTsKKyAgICAgICAgIG1lbWRjLlNlbGVjdE9iamVjdCh3eE51bGxCaXRtYXApOwor ICAgICB9CistICAgIC8vd3hQeUVuZEJsb2NrVGhyZWFkcyhibG9ja2VkKTsKKy0gICAgcmV0dXJu IHB5TGlzdDsKKysgICAgIHJldHVybiBweUxpc3Q7CisgfQorIAorIC8vIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvd3hQeXRob240L3RlbXBsYXRlIGIvc3JjcGtncy93 eFB5dGhvbjQvdGVtcGxhdGUKaW5kZXggNTU0MTc0MTA1YTM2Li5hZmVhMWI1NWJmOTAgMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3Mvd3hQeXRob240L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvd3hQeXRob240 L3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnd3hQeXRob240 JwogcGtnbmFtZT13eFB5dGhvbjQKIHZlcnNpb249NC4wLjcKLXJldmlzaW9uPTQKK3JldmlzaW9u PTUKIHdya3NyYz0id3hQeXRob24tJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPXB5dGhvbjMtbW9k dWxlCiBtYWtlX2J1aWxkX2FyZ3M9Ii0tc2tpcC1idWlsZCIKQEAgLTEwLDYgKzEwLDcgQEAgaG9z dG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIHB5dGhvbjMtc2V0dXB0b29scyBweXRob24zLXBhdGhs aWIyIgogbWFrZWRlcGVuZHM9InB5dGhvbjMtZGV2ZWwgd3hXaWRnZXRzLWd0azMtZGV2ZWwgU0RM Mi1kZXZlbCB3ZWJraXQyZ3RrLWRldmVsCiAgZ3N0LXBsdWdpbnMtYmFzZTEtZGV2ZWwiCiBkZXBl bmRzPSJweXRob24zIHB5dGhvbjMtc2l4IHB5dGhvbjMtbnVtcHkgcHl0aG9uMy1QaWxsb3ciCitj aGVja2RlcGVuZHM9InB5dGhvbjMtc2l4IHB5dGhvbjMtbnVtcHkgcHl0aG9uMy1QaWxsb3ciCiBz aG9ydF9kZXNjPSJXeFdpZGdldHMgR1VJIHRvb2xraXQgbGlicmFyeSAoUHl0aG9uMyBCaW5kaW5n cykiCiBtYWludGFpbmVyPSJKYXNwZXIgQ2hhbiA8amFzcGVyY2hhbjUxNUBnbWFpbC5jb20+Igog bGljZW5zZT0iY3VzdG9tOnd4V2luZG93cyIKCkZyb20gNGE5NDgxM2VjNTA0NzMxY2EyNDNlZjMz ZWNiNDYzODI2NDc2ZDZmNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQXJqYW4gTW9z c2VsIDxhcmphbm1vc3NlbEBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMTQgRmViIDIwMjIgMjE6NTY6 MDMgKzAxMDAKU3ViamVjdDogW1BBVENIIDEwLzE3XSBncmFzczogdXBkYXRlIHRvIDcuOC43UkMx OyByZWJ1aWxkIGFnYWluc3QgbGliZ2RhbCBhbmQKIHByb2oKClZlcnNpb24gNy44LjdSQzEgaW5j bHVkZXMgYSB3b3JrYXJvdW5kIGZvciBhIHd4UHl0aG9uIGlzc3VlCmh0dHBzOi8vZ2l0aHViLmNv bS9PU0dlby9ncmFzcy9pc3N1ZXMvMTk3MSNpc3N1ZWNvbW1lbnQtOTkzNjIyNjEzCi0tLQogc3Jj cGtncy9ncmFzcy9wYXRjaGVzL211c2wtYnVpbGQtZml4LnBhdGNoIHwgIDEzICsrKwogc3JjcGtn cy9ncmFzcy90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgIHwgMTI4ICsrKysrKysrKysrKysr KysrLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAxMjAgaW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRpb25z KC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9ncmFzcy9wYXRjaGVzL211c2wtYnVpbGQt Zml4LnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9ncmFzcy9wYXRjaGVzL211c2wtYnVpbGQt Zml4LnBhdGNoIGIvc3JjcGtncy9ncmFzcy9wYXRjaGVzL211c2wtYnVpbGQtZml4LnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMzY0ZWUzMGJlNGQ5Ci0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy9ncmFzcy9wYXRjaGVzL211c2wtYnVpbGQtZml4LnBhdGNo CkBAIC0wLDAgKzEsMTMgQEAKK2Vycm9yOiB1bmtub3duIHR5cGUgbmFtZSAnaW50NjRfdCcgcGF0 Y2ggZm9yIG11c2wKKworZGlmZiAtLWdpdCBhL2luY2x1ZGUvZ2lzLmggYi9pbmNsdWRlL2dpcy5o CistLS0gYS9pbmNsdWRlL2dpcy5oCisrKysgYi9pbmNsdWRlL2dpcy5oCitAQCAtMjQsNiArMjQs NyBAQAorICNpbmNsdWRlIDxzdGRpby5oPgorICNpbmNsdWRlIDxzdGRhcmcuaD4KKyAjaW5jbHVk ZSA8c3RkYm9vbC5oPgorKyNpbmNsdWRlIDxzdGRpbnQuaD4KKyAKKyAKKyAvKiBHcmFzcyBhbmQg bG9jYWwgaW5jbHVkZSBmaWxlcyAqLwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9ncmFzcy90ZW1wbGF0 ZSBiL3NyY3BrZ3MvZ3Jhc3MvdGVtcGxhdGUKaW5kZXggYmNjZDY5MWE4MTE2Li4xNjdmYWE0MDEz ODUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ3Jhc3MvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9ncmFz cy90ZW1wbGF0ZQpAQCAtMSwzMCArMSwxMTYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dyYXNz JwogcGtnbmFtZT1ncmFzcwotdmVyc2lvbj03LjYuMQotcmV2aXNpb249NAotX2JpbnZlcj0ke3Zl cnNpb24vLy4vfQotX2JpbnZlcj0ke19iaW52ZXI6MDoyfQordmVyc2lvbj03LjguN1JDMQorcmV2 aXNpb249MQorX2JpbnZlcnNpb249JHt2ZXJzaW9uLy8uL30KK19iaW52ZXJzaW9uPSR7X2JpbnZl cnNpb246MDoyfQogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQotY29uZmlndXJlX2FyZ3M9Ii0t cHJlZml4PVwke0RFU1RESVJ9L3Vzci9zaGFyZSAtLWJpbmRpcj1cJHtERVNURElSfS91c3IvYmlu Ci0gLS13aXRoLWZyZWV0eXBlLWluY2x1ZGVzPSR7WEJQU19DUk9TU19CQVNFfS91c3IvaW5jbHVk ZS9mcmVldHlwZTIiCi1ob3N0bWFrZWRlcGVuZHM9ImZsZXggbGliZ2RhbC10b29scyBwa2ctY29u ZmlnIHB5dGhvbi1udW1weSB0YXIiCi1tYWtlZGVwZW5kcz0icHJvai1kZXZlbCB0aWZmLWRldmVs IGxpYmdkYWwtZGV2ZWwgc3FsaXRlLWRldmVsCi0gZmZ0dy1kZXZlbCBjYWlyby1kZXZlbCBnbHUt ZGV2ZWwgd3hQeXRob24tZGV2ZWwiCi1kZXBlbmRzPSJweXRob24tbnVtcHkgd3hQeXRob24iCi1z aG9ydF9kZXNjPSJHZW9ncmFwaGljIFJlc291cmNlcyBBbmFseXNpcyBTdXBwb3J0IFN5c3RlbSAt IEdJUyIKLW1haW50YWluZXI9IkFsZXggSmFyb3NjaCA8cmVzZWFyY2hAYWxleGouYXQ+IgorY29u ZmlndXJlX2FyZ3M9Ii0tcHJlZml4PS91c3IvbGliCisgLS1iaW5kaXI9L3Vzci9iaW4KKyAtLWxp YmRpcj0vdXNyL2xpYgorIC0tbGliZXhlYz0vdXNyL2xpYmV4ZWMKKyAtLWVuYWJsZS1sYXJnZWZp bGUKKyAtLXdpdGgtYmxhcworIC0td2l0aC1ibGFzLWluY2x1ZGVzPS91c3IvaW5jbHVkZQorIC0t d2l0aC1iemlwMgorIC0td2l0aC1iemxpYgorIC0td2l0aC1jYWlybworIC0td2l0aC1jeHgKKyAt LXdpdGgtZnJlZXR5cGUKKyAtLXdpdGgtZnJlZXR5cGUtaW5jbHVkZXM9L3Vzci9pbmNsdWRlL2Zy ZWV0eXBlMgorIC0td2l0aC1nZGFsCisgLS13aXRoLWdlb3MKKyAtLXdpdGgtZ2x3CisgLS13aXRo LWxhcGFjaworIC0td2l0aC1sYXBhY2staW5jbHVkZXM9L3Vzci9pbmNsdWRlCisgLS13aXRoLW15 c3FsCisgLS13aXRoLW15c3FsLWluY2x1ZGVzPS91c3IvaW5jbHVkZS9teXNxbAorIC0td2l0aC1u ZXRjZGY9L3Vzci9iaW4vbmMtY29uZmlnCisgLS13aXRoLW5scworIC0td2l0aC1vcGVubXAKKyAt LXdpdGgtcG9zdGdyZXMKKyAtLXdpdGgtcG9zdGdyZXMtaW5jbHVkZXM9L3Vzci9pbmNsdWRlL3Bv c3RncmVzcWwKKyAtLXdpdGgtcG9zdGdyZXMtbGlicz0vdXNyL2xpYi9wc3FsMTQvbGliL3Bvc3Rn cmVzcWwKKyAtLXdpdGgtcHJvagorIC0td2l0aC1wcm9qLXNoYXJlPS91c3Ivc2hhcmUKKyAtLXdp dGgtcHRocmVhZAorIC0td2l0aC1weXRob249L3Vzci9iaW4vcHl0aG9uMy1jb25maWcKKyAtLXdp dGgtcmVhZGxpbmUKKyAtLXdpdGgtcmVnZXgKKyAtLXdpdGgtc3FsaXRlCisgLS13aXRoLXd4d2lk Z2V0cyIKK2hvc3RtYWtlZGVwZW5kcz0iZmxleAorIGdldHRleHQKKyBsaWJnZGFsLXRvb2xzCisg cGtnLWNvbmZpZworIHB5dGhvbjMtbnVtcHkKKyBweXRob24zLXNpeAorIHRhciIKK21ha2VkZXBl bmRzPSJiaXNvbgorIGJsYXMtZGV2ZWwKKyBiemlwMi1kZXZlbAorIGNhaXJvLWRldmVsCisgZmZ0 dy1kZXZlbAorIGZyZWV0eXBlLWRldmVsCisgZ2Vvcy1kZXZlbAorIGdldHRleHQtZGV2ZWwKKyBn bHUtZGV2ZWwKKyBsYXBhY2stZGV2ZWwKKyBsaWJnZGFsLWRldmVsCisgbGliZ29tcC1kZXZlbAor IGxpYm15c3FsY2xpZW50LWRldmVsCisgbGlicG5nLWRldmVsCisgbGlienN0ZC1kZXZlbAorIG5l dGNkZi1kZXZlbAorIHBvc3RncmVzcWwtbGlicy1kZXZlbAorIHByb2otZGV2ZWwKKyBweXRob24z LWRldmVsCisgcHl0aG9uMy1QaWxsb3cKKyBweXRob24zLXNpeAorIHJlYWRsaW5lLWRldmVsCisg c3FsaXRlLWRldmVsCisgdGlmZi1kZXZlbAorIHpsaWItZGV2ZWwiCitkZXBlbmRzPSJsaWJnZGFs IHB5dGhvbjMtbnVtcHkgd3hQeXRob240Igorc2hvcnRfZGVzYz0iR2VvZ3JhcGhpYyBSZXNvdXJj ZXMgQW5hbHlzaXMgU3VwcG9ydCBTeXN0ZW0iCittYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFu QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJo dHRwczovL2dyYXNzLm9zZ2VvLm9yZy8iCi1kaXN0ZmlsZXM9Imh0dHBzOi8vZ3Jhc3Mub3NnZW8u b3JnL2dyYXNzJHtfYmludmVyfS9zb3VyY2UvJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci5neiIK LWNoZWNrc3VtPTllMjVjOTljYWZkMTZlZDhmNWUyZGNhNzViNWExMGRjMmFmMDU2OGRiZWRmM2Zj MzlmMWM1YTBhOWM4NDBiMGIKLXB5dGhvbl92ZXJzaW9uPTIgI3VudmVyaWZpZWQKK2Rpc3RmaWxl cz0iaHR0cHM6Ly9naXRodWIuY29tL09TR2VvL2dyYXNzL2FyY2hpdmUvJHt2ZXJzaW9ufS50YXIu Z3oiCitjaGVja3N1bT1mYTFkNmNjYzFmZGU0Y2JlYTBiZTA5NTI1NjcyOTQyMWM0MWMxYTEyYmY2 MjFmZTEyNGQwZDJjOGU4MjZkZTZhCiBub2Nyb3NzPSJ0cmllcyB0byBleGVjdXRlIHRhcmdldCBi aW5hcmllcyIKIAorc2hsaWJfcHJvdmlkZXM9IgorIGxpYmdyYXNzX2RibWliYXNlLiR7dmVyc2lv biUuKn0uc28KKyBsaWJncmFzc19kYm1pY2xpZW50LiR7dmVyc2lvbiUuKn0uc28KKyBsaWJncmFz c19naXMuJHt2ZXJzaW9uJS4qfS5zbworIGxpYmdyYXNzX2dwcm9qLiR7dmVyc2lvbiUuKn0uc28K KyBsaWJncmFzc19pbWFnZXJ5LiR7dmVyc2lvbiUuKn0uc28KKyBsaWJncmFzc19yYXN0ZXIuJHt2 ZXJzaW9uJS4qfS5zbworIGxpYmdyYXNzX3ZlY3Rvci4ke3ZlcnNpb24lLip9LnNvIgorCiBwb3N0 X2luc3RhbGwoKSB7Ci0JIyBtb3ZlIGdyYXNzNzYgbGlicmFyaWVzIGZyb20gL3Vzci9zaGFyZSB0 byAvdXNyL2xpYgotCXZta2RpciB1c3IvbGliCi0JbXYgJHtERVNURElSfS91c3Ivc2hhcmUvZ3Jh c3MqICR7REVTVERJUn0vdXNyL2xpYgotCSMgZml4ZXMgYSB0b2RvIGluIEdJU0JBU0UKLQlzZWQg LWkgJHtERVNURElSfS91c3IvYmluL2dyYXNzJHtfYmludmVyfSBcCi0JCS1lICIxMDVzO1woZ2lz YmFzZSA9XCkuKjtcMSBcIi91c3IvbGliL2dyYXNzLSR7dmVyc2lvbn1cIjsiCisJIyByZW1vdmUg JERFU1RESVIgaW4gcGF0aHMKKwl2c2VkIC1pIC1lICJzfCR7REVTVERJUn18fCIgXAorCQkke0RF U1RESVJ9L3Vzci9iaW4vZ3Jhc3M3OCBcCisJCSR7REVTVERJUn0vdXNyL2xpYi9ncmFzczc4L2V0 Yy9mb250Y2FwIFwKKwkJJHtERVNURElSfS91c3IvbGliL2dyYXNzNzgvZGVtb2xvY2F0aW9uLy5n cmFzc3JjNzggXAorCQkke0RFU1RESVJ9L3Vzci9saWIvZ3Jhc3M3OC9pbmNsdWRlL01ha2UvUGxh dGZvcm0ubWFrZSBcCisJCSR7REVTVERJUn0vdXNyL2xpYi9ncmFzczc4L2luY2x1ZGUvTWFrZS9H cmFzcy5tYWtlCisKKwkjIGxkLnNvLmNvbmYKKwlta2RpciAtcCAke0RFU1RESVJ9L2V0Yy9sZC5z by5jb25mLmQKKwllY2hvICIvdXNyL2xpYi9ncmFzcyR7X2JpbnZlcnNpb259L2xpYiIgPiR7REVT VERJUn0vZXRjL2xkLnNvLmNvbmYuZC9ncmFzcyR7X2JpbnZlcnNpb259LmNvbmYKKwkjIHByb2Zp bGVzCisJbWtkaXIgLXAgJHtERVNURElSfS9ldGMvcHJvZmlsZS5kCisJZWNobyAnZXhwb3J0IFBB VEg9Ii91c3IvbGliL2dyYXNzJyR7X2JpbnZlcnNpb259Jy9iaW46JFBBVEgiJyA+JHtERVNURElS fS9ldGMvcHJvZmlsZS5kL2dyYXNzJHtfYmludmVyc2lvbn0uc2gKKworCXZpbnN0YWxsIGdyYXNz LnBjIDY0NCB1c3Ivc2hhcmUvcGtnY29uZmlnCisJdmluc3RhbGwgZ3VpL2ljb25zL2dyYXNzLmRl c2t0b3AgNjQ0IHVzci9zaGFyZS9hcHBsaWNhdGlvbnMKKworCWxvY2FsIGljb24gcmVzCisJZm9y IGljb24gaW4gZ3VpL2ljb25zL2dyYXNzLVswLTldKnhbMC05XSoucG5nOyBkbworCQlyZXM9JChl Y2hvICRpY29uIHxzZWQgLUUgLWUgJ3N8LiotKFswLTldK3hbMC05XSspLnBuZ3xcMXwnKQorCQl2 aW5zdGFsbCAkaWNvbiAwNjQ0IC91c3Ivc2hhcmUvaWNvbnMvaGljb2xvci8kcmVzL2FwcHMgZ3Jh c3MucG5nCisJZG9uZQogfQoKRnJvbSA4NWZhYzk3ZDI1NzMyZWMxMThiYzVlOTE5YTUwNzJjMDEy NTIwYTQ1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBcmphbiBNb3NzZWwgPGFyamFu bW9zc2VsQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCAyNyBKdW4gMjAyMSAyMjoxODo0NiArMDIwMApT dWJqZWN0OiBbUEFUQ0ggMTEvMTddIG1lcmthYXJ0b3I6IHJlYnVpbGQgYWdhaW5zdCBsaWJnZGFs LTMuNC4xIGFuZAogcHJvai03LjIuMQoKLS0tCiBzcmNwa2dzL21lcmthYXJ0b3IvdGVtcGxhdGUg fCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRp ZmYgLS1naXQgYS9zcmNwa2dzL21lcmthYXJ0b3IvdGVtcGxhdGUgYi9zcmNwa2dzL21lcmthYXJ0 b3IvdGVtcGxhdGUKaW5kZXggY2ZmY2ZiYTFjZjAxLi42NjAzMzc2MTExZjIgMTAwNjQ0Ci0tLSBh L3NyY3BrZ3MvbWVya2FhcnRvci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL21lcmthYXJ0b3IvdGVt cGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdtZXJrYWFydG9yJwog cGtnbmFtZT1tZXJrYWFydG9yCiB2ZXJzaW9uPTAuMTkuMAotcmV2aXNpb249MQorcmV2aXNpb249 MgogYnVpbGRfc3R5bGU9cW1ha2UKIGNvbmZpZ3VyZV9hcmdzPSJTWVNURU1fUVVBWklQPTEgU1lT VEVNX1FVQVpJUF9MREZMQUdTPS1scXVhemlwNSIKIGhvc3RtYWtlZGVwZW5kcz0icXQ1LXFtYWtl IGxpYmdkYWwtdG9vbHMgcXQ1LWhvc3QtdG9vbHMiCgpGcm9tIDViMGNiNTE0YWRhOTkwMDkyMjU5 MDIwOTlmY2I4MWRkOGI3NWIwYWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFyamFu IE1vc3NlbCA8YXJqYW5tb3NzZWxAZ21haWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1biAyMDIxIDAw OjIxOjI3ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMi8xN10gT3Blbk9yaWVudGVlcmluZy1NYXBw ZXI6IHJlYnVpbGQgYWdhaW5zdCBsaWJnZGFsLTMuNC4xCiBhbmQgcHJvai03LjIuMQoKLS0tCiBz cmNwa2dzL09wZW5PcmllbnRlZXJpbmctTWFwcGVyL3RlbXBsYXRlIHwgMTEgKysrKysrKysrLS0K IDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9PcGVuT3JpZW50ZWVyaW5nLU1hcHBlci90ZW1wbGF0ZSBiL3NyY3BrZ3Mv T3Blbk9yaWVudGVlcmluZy1NYXBwZXIvdGVtcGxhdGUKaW5kZXggZmQyOWEwOGU3NWI2Li42YTY1 MmE2YTdiOTcgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvT3Blbk9yaWVudGVlcmluZy1NYXBwZXIvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9PcGVuT3JpZW50ZWVyaW5nLU1hcHBlci90ZW1wbGF0ZQpAQCAt MSwxNCArMSwxNSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnT3Blbk9yaWVudGVlcmluZy1NYXBw ZXInCiBwa2duYW1lPU9wZW5PcmllbnRlZXJpbmctTWFwcGVyCiB2ZXJzaW9uPTAuOS41Ci1yZXZp c2lvbj0xCityZXZpc2lvbj0yCiB3cmtzcmM9Im1hcHBlci0ke3ZlcnNpb259IgogYnVpbGRfc3R5 bGU9Y21ha2UKIGhvc3RtYWtlZGVwZW5kcz0iZG94eWdlbiBxdDUtaG9zdC10b29scyBxdDUtcGx1 Z2luLXNxbGl0ZSBxdDUtcW1ha2UgcXQ1LXRvb2xzIgogbWFrZWRlcGVuZHM9InF0NS1kZXZlbCBj bGlwcGVyLWRldmVsIHByb2otZGV2ZWwgemxpYi1kZXZlbCBsaWJnZGFsLWRldmVsCiAgcXQ1LXRv b2xzLWRldmVsIHNxbGl0ZS1kZXZlbCBjdXBzLWRldmVsICQodm9wdF9pZiBsb2NhdGlvbiBxdDUt bG9jYXRpb24tZGV2ZWwpCiAgJCh2b3B0X2lmIHNlbnNvcnMgcXQ1LXNlbnNvcnMtZGV2ZWwpCi0g cXQ1LXBsdWdpbi1teXNxbCBxdDUtcGx1Z2luLW9kYmMgcXQ1LXBsdWdpbi1wZ3NxbCBxdDUtcGx1 Z2luLXNxbGl0ZSBxdDUtcGx1Z2luLXRkcyIKKyBxdDUtcGx1Z2luLW15c3FsIHF0NS1wbHVnaW4t b2RiYyBxdDUtcGx1Z2luLXBnc3FsIHF0NS1wbHVnaW4tc3FsaXRlIHF0NS1wbHVnaW4tdGRzCisg dGlmZi1kZXZlbCBsaWJjdXJsLWRldmVsIgogc2hvcnRfZGVzYz0iT3JpZW50ZWVyaW5nIG1hcG1h a2luZyBwcm9ncmFtIgogbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxp Y2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCkBAIC0xOCwzICsxOSw5IEBAIGNoZWNrc3VtPTYxOTE1 MmNhMDFhMzcwODc1YzE1ZTE5MzA5MThjZTk2MTI4NGNjYmY1ZDIzNzFjMTQ3ZDUwY2FmNWU1YzJm MDAKIAogYnVpbGRfb3B0aW9ucz0ibG9jYXRpb24gc2Vuc29ycyIKIGJ1aWxkX29wdGlvbnNfZGVm YXVsdD0ibG9jYXRpb24gc2Vuc29ycyIKKworZG9fY2hlY2soKSB7CisgICAgIyBzZW5zb3JzX3Qg dGVzdCBmYWlscyBvbiB0ZXN0IHJ1bm5lcgorCWNkIGJ1aWxkCisJY3Rlc3QgLUUgJ3NlbnNvcnNf dCcKK30KCkZyb20gMzg4YzhiOTMyZTAyNjgzNzQzZmNhOWIwYjFjMWM3ZDU1NDRmNjdmMCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQXJqYW4gTW9zc2VsIDxhcmphbm1vc3NlbEBnbWFp bC5jb20+CkRhdGU6IFR1ZSwgMjkgSnVuIDIwMjEgMDA6Mzg6MzUgKzAyMDAKU3ViamVjdDogW1BB VENIIDEzLzE3XSBvc2c6IHJlYnVpbGQgYWdhaW5zdCBsaWJnZGFsLTMuNC4xLCBmaXggbGljZW5z ZQoKLS0tCiBzcmNwa2dzL29zZy90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL29zZy90 ZW1wbGF0ZSBiL3NyY3BrZ3Mvb3NnL3RlbXBsYXRlCmluZGV4IDA4YmY2ZDRiNjU5MS4uZjUxNTM1 YzU3MTlkIDEwMDY0NAotLS0gYS9zcmNwa2dzL29zZy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL29z Zy90ZW1wbGF0ZQpAQCAtMiw3ICsyLDcgQEAKIHBrZ25hbWU9b3NnCiByZXZlcnRzPTMuNi4wXzEK IHZlcnNpb249My40LjEKLXJldmlzaW9uPTEyCityZXZpc2lvbj0xMwogd3Jrc3JjPU9wZW5TY2Vu ZUdyYXBoLU9wZW5TY2VuZUdyYXBoLSR7dmVyc2lvbn0KIGJ1aWxkX3N0eWxlPWNtYWtlCiBidWls ZF9oZWxwZXI9InFlbXUiCkBAIC0xOSw3ICsxOSw3IEBAIG1ha2VkZXBlbmRzPSJNZXNhTGliLWRl dmVsIGd0a2dsZXh0LWRldmVsIGxpYmN1cmwtZGV2ZWwgZ2lmbGliLWRldmVsIGxpYnJzdmctZGV2 CiBkZXBlbmRzPSJ4cmFuZHIiCiBzaG9ydF9kZXNjPSJPcGVuU2NlbmVHcmFwaDogaGlnaCBwZXJm b3JtYW5jZSByZWFsLXRpbWUgZ3JhcGhpY3MgdG9vbGtpdCIKIG1haW50YWluZXI9Ik9ycGhhbmVk IDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCi1saWNlbnNlPSJPU0dQTC0yLjAtb3ItbGF0ZXIiCits aWNlbnNlPSJjdXN0b206T3BlblNjZW5lR3JhcGgtUHVibGljLUxpY2Vuc2UtMC4wIgogaG9tZXBh Z2U9Imh0dHA6Ly93d3cub3BlbnNjZW5lZ3JhcGgub3JnIgogZGlzdGZpbGVzPSJodHRwczovL2dp dGh1Yi5jb20vb3BlbnNjZW5lZ3JhcGgvT3BlblNjZW5lR3JhcGgvYXJjaGl2ZS9PcGVuU2NlbmVH cmFwaC0ke3ZlcnNpb259LnRhci5neiIKIGNoZWNrc3VtPTkzMGViNDZmMDU3ODFhNzY4ODNlYzE2 YzVmNDljZmIyOWEwNTk0MjFkYjEzMTAwNWQ3NWJlYzRkNzg0MDFmZDUKCkZyb20gODYyNzEwMjY3 MjRiMmYwZTUzZDNiZjdkNWJmZGU2MjJmMzhhZWMyYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogQXJqYW4gTW9zc2VsIDxhcmphbm1vc3NlbEBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMjkg SnVuIDIwMjEgMTc6MzU6NDcgKzAyMDAKU3ViamVjdDogW1BBVENIIDE0LzE3XSBzdW1vOiB1cGRh dGUgdG8gMS45LjI7IHJlYnVpbGQgYWdhaW5zdCBsaWJnZGFsLTMuNC4xCiBhbmQgcHJvai03LjIu MQoKLSBCdWlsZCBUcmFhUy5qYXIgdXNpbmcgTWF2ZW4gKGZpeGVzIHRlc3RzKQotIEFkZCBFaWdl bjMgZGVwZW5kZW5jeQotLS0KIHNyY3BrZ3Mvc3Vtby90ZW1wbGF0ZSB8IDIyICsrKysrKysrKysr KysrKystLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc3Vtby90ZW1wbGF0ZSBiL3NyY3BrZ3Mvc3Vtby90 ZW1wbGF0ZQppbmRleCBlNzYwZmRkNDVhZWUuLjNjMGVlYTk5MTZhYSAxMDA2NDQKLS0tIGEvc3Jj cGtncy9zdW1vL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvc3Vtby90ZW1wbGF0ZQpAQCAtMSwxOCAr MSwyOCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnc3VtbycKIHBrZ25hbWU9c3VtbwotdmVyc2lv bj0xLjUuMAotcmV2aXNpb249NAordmVyc2lvbj0xLjkuMgorcmV2aXNpb249MQogYnVpbGRfc3R5 bGU9Y21ha2UKLXB5dGhvbl92ZXJzaW9uPTMKLWhvc3RtYWtlZGVwZW5kcz0ibGliZ2RhbC10b29s cyBwa2ctY29uZmlnIHN3aWcgcHl0aG9uMy1zZXR1cHRvb2xzIgotbWFrZWRlcGVuZHM9InB5dGhv bjMtZGV2ZWwgZmZtcGVnLWRldmVsIGZveC1kZXZlbCBnbDJwcy1kZXZlbCBsaWJnZGFsLWRldmVs IGxpYnhlcmNlcy1jLWRldmVsIG9zZy1kZXZlbCBwcm9qLWRldmVsIgoraG9zdG1ha2VkZXBlbmRz PSJsaWJnZGFsLXRvb2xzIHBrZy1jb25maWcgc3dpZyBweXRob24zLXNldHVwdG9vbHMKKyBhcGFj aGUtbWF2ZW4gb3BlbmpkazExIGdpdCIKK21ha2VkZXBlbmRzPSJweXRob24zLWRldmVsIGZmbXBl Zy1kZXZlbCBmb3gtZGV2ZWwgZ2wycHMtZGV2ZWwgbGliZ2RhbC1kZXZlbAorIGxpYnhlcmNlcy1j LWRldmVsIG9zZy1kZXZlbCBwcm9qLWRldmVsIGVpZ2VuIgorY2hlY2tkZXBlbmRzPSJndGVzdCIK IHNob3J0X2Rlc2M9IlNVTU8gKFNpbXVsYXRpb24gb2YgVXJiYW4gTU9iaWxpdHkpIGFuZCBpbmNs dWRlZCBhcHBsaWNhdGlvbnMiCiBtYWludGFpbmVyPSJXYXJyaW9yIEdyYXBoIDxtYXJxdWVzQGxh cmNlcy51ZWNlLmJyPiIKIGxpY2Vuc2U9IkVQTC0yLjAiCiBob21lcGFnZT0iaHR0cHM6Ly9zdW1v LmRsci5kZSIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9zdW1vLmRsci5kZS9yZWxlYXNlcy8ke3ZlcnNp b259L3N1bW8tc3JjLSR7dmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09ZGNmNTMzOWZkZGEwNjU5 ZmE0NGZjZmQ2OWZlM2Y0ZTAzMDA5YWE5YTU5ODQ5NjI0ZjJhM2NmZTcyZWRhOWY4ZQorY2hlY2tz dW09MTkzYThhYjE0YmIzMDVkMzk2NzYyNWQ3NmNkMjkxZjVjNTViYjkwNjgxNzQ2NWYyYTEyYzJl NjlmNGI4MDgxMworcHl0aG9uX3ZlcnNpb249MworCitwcmVfYnVpbGQoKSB7CisJY2QgdG9vbHMv Y29udHJpYnV0ZWQvdHJhYXMKKwltdm4gcGFja2FnZQorCW12IHRhcmdldC90cmFhcyouamFyICR7 d3Jrc3JjfS9iaW4vVHJhYVMuamFyCit9CiAKIHBvc3RfaW5zdGFsbCgpIHsKIAlybSAtZiAke0RF U1RESVJ9L3Vzci9zaGFyZS9zdW1vL3Rvb2xzL2xpYnN1bW8vKi5zbworCXJtIC1mICR7REVTVERJ Un0vdXNyL3NoYXJlL3N1bW8vdG9vbHMvbGlidHJhY2kvX2xpYnRyYWNpLnNvCiB9CgpGcm9tIDA1 NzQ0Yjc3YjRjODFhMGZhODVmYzVmMDk3NTExNjhjYjFhNDFlYWYgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IEFyamFuIE1vc3NlbCA8YXJqYW5tb3NzZWxAZ21haWwuY29tPgpEYXRlOiBU dWUsIDI5IEp1biAyMDIxIDE4OjQzOjA1ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxNS8xN10gdnRr OiByZWJ1aWxkIGFnYWluc3QgcHJvai03LjIuMQoKLS0tCiBzcmNwa2dzL3Z0ay90ZW1wbGF0ZSB8 IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvdnRrL3RlbXBsYXRlIGIvc3JjcGtncy92dGsvdGVtcGxhdGUKaW5k ZXggODU4YWEzMWI5YzAzLi41NTNjZjkxOTg0NjUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvdnRrL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvdnRrL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1w bGF0ZSBmaWxlIGZvciAndnRrJwogcGtnbmFtZT12dGsKIHZlcnNpb249OS4wLjEKLXJldmlzaW9u PTcKK3JldmlzaW9uPTgKIHdya3NyYz1WVEstJHt2ZXJzaW9ufQogYnVpbGRfc3R5bGU9Y21ha2UK ICMgdnRrIGNhbiBiZSBodWdlLCBlc3BlY2lhbGx5IHdpdGggLURWVEtfQlVJTERfQUxMX01PRFVM RVM9T04iCgpGcm9tIGI0ZTNjZjcyZGFkNTAzZjRhOTg5ODRhODg5ZGM5YzJkYzUwYzkyMDQgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFyamFuIE1vc3NlbCA8YXJqYW5tb3NzZWxAZ21h aWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1biAyMDIxIDE5OjI0OjQzICswMjAwClN1YmplY3Q6IFtQ QVRDSCAxNi8xN10gb3NtMnBnc3FsOiByZWJ1aWxkIGFnYWluc3QgcHJvai03LjIuMQoKLS0tCiBz cmNwa2dzL29zbTJwZ3NxbC90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2Vy dGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3NtMnBnc3FsL3Rl bXBsYXRlIGIvc3JjcGtncy9vc20ycGdzcWwvdGVtcGxhdGUKaW5kZXggMWM1M2M0NTA1MDQ3Li4x ZDVmNzFiNzAxNDAgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvb3NtMnBnc3FsL3RlbXBsYXRlCisrKyBi L3NyY3BrZ3Mvb3NtMnBnc3FsL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAnb3NtMnBnc3FsJwogcGtnbmFtZT1vc20ycGdzcWwKIHZlcnNpb249MS42LjAKLXJl dmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPWNtYWtlCiBob3N0bWFrZWRlcGVuZHM9 ImJvb3N0IgogbWFrZWRlcGVuZHM9ImV4cGF0LWRldmVsIHByb2otZGV2ZWwgYnppcDItZGV2ZWwg emxpYi1kZXZlbCBib29zdC1kZXZlbAoKRnJvbSBiZjI2MTkzMDlmNWM3YWU1Zjc5NGJmMTljOGQ4 MGU0NmQzMjMxZTdiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBcmphbiBNb3NzZWwg PGFyamFubW9zc2VsQGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAyOSBKdW4gMjAyMSAxOToyNjo1NyAr MDIwMApTdWJqZWN0OiBbUEFUQ0ggMTcvMTddIFh5R3JpYjogcmVidWlsZCBhZ2FpbnN0IHByb2ot Ny4yLjEKCkRvIG5vdCB1c2UgbmluamEgKCJ1bmtub3duIHRhcmdldCIgZXJyb3IpCi0tLQogc3Jj cGtncy9YeUdyaWIvdGVtcGxhdGUgfCA1ICsrKystCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRp b25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9YeUdyaWIvdGVtcGxh dGUgYi9zcmNwa2dzL1h5R3JpYi90ZW1wbGF0ZQppbmRleCBlNGFhM2EyZTAyNjUuLjk5NWVjM2Vl ZWFiYiAxMDA2NDQKLS0tIGEvc3JjcGtncy9YeUdyaWIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9Y eUdyaWIvdGVtcGxhdGUKQEAgLTEsOCArMSw5IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdYeUdy aWInCiBwa2duYW1lPVh5R3JpYgogdmVyc2lvbj0xLjIuNi4xCi1yZXZpc2lvbj0zCityZXZpc2lv bj00CiBidWlsZF9zdHlsZT1jbWFrZQorbWFrZV9jbWQ9bWFrZQogaG9zdG1ha2VkZXBlbmRzPSJx dDUtZGV2ZWwgcGtnLWNvbmZpZyIKIG1ha2VkZXBlbmRzPSJqYXNwZXItZGV2ZWwgbGlibm92YS1k ZXZlbCBuZXR0bGUtZGV2ZWwgcHJvai1kZXZlbCBxdDUtZGV2ZWwKICBxd3QtZGV2ZWwgbGlib3Bl bmpwZWcyLWRldmVsIgpAQCAtMTMsNiArMTQsOCBAQCBob21lcGFnZT0iaHR0cHM6Ly9vcGVuZ3Jp YnMub3JnLyIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL29wZW5ncmlicy9YeUdyaWIv YXJjaGl2ZS92JHt2ZXJzaW9ufS50YXIuZ3oiCiBjaGVja3N1bT0yZGM2MDk5MjkzYWU2ZjdhNGJm YmZjMGNhYjU5MGNmN2FkNDgyNDFkNjA4ZTZkN2E3NmUzNTk2MWI5ZmMyMTU3CiAKK2V4cG9ydCBD TUFLRV9HRU5FUkFUT1I9IlVuaXggTWFrZWZpbGVzIgorCiBpZiBbICIkQ1JPU1NfQlVJTEQiIF07 IHRoZW4KIAltYWtlX2J1aWxkX2FyZ3M9IkxJTks9JHtYQlBTX0NST1NTX1RSSVBMRVR9LWMrKyIK IGZpCg== --===============4683402827638062133==--