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 13337 invoked from network); 15 Feb 2022 22:21:09 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 15 Feb 2022 22:21:09 -0000 Content-Type: multipart/mixed; boundary="===============8390025532848267876==" 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:21:09 +0100 List-Id: Message-ID: <20220215222109.L6Km5qywTsty6bdJjCfNsdazux6ZExj9ycT1q3Hi1YU@z> GitHub notification mails are now in MIME to allow UTF8. --===============8390025532848267876== 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== --===============8390025532848267876== 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 ZQogCQl2bW92ZSAidXNyL2xpYi8qLnNvIgogCX0KCkZyb20gYzU5NWVjNzRmMzU2ZTBmMzVkNTNl NTlhZTFiM2I2YmFlMjE1ZjZlMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQXJqYW4g TW9zc2VsIDxhcmphbm1vc3NlbEBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMTUgRmViIDIwMjIgMTQ6 NDQ6NTQgKzAxMDAKU3ViamVjdDogW1BBVENIIDAyLzE3XSBOZXcgcGFja2FnZTogbGlicnR0b3Bv LTEuMS4wCgpUaGUgUlQgVG9wb2xvZ3kgTGlicmFyeSBleHBvc2VzIGFuIEFQSSB0byBjcmVhdGUg YW5kIG1hbmFnZSBzdGFuZGFyZAooSVNPIDEzMjQ5IGFrYSBTUUwvTU0pIHRvcG9sb2dpZXMgdXNp bmcgdXNlci1wcm92aWRlZCBkYXRhIHN0b3Jlcy4KCkl0IGlzIG5lZWRlZCB0byBidWlsZCBsaWJz cGF0aWFsaXRlIChhcyBvZiB2NS4wLjEpIHdpdGggdGVzdHMgcGFzc2luZy4KLS0tCiBjb21tb24v c2hsaWJzICAgICAgICAgICAgICB8ICAxICsKIHNyY3BrZ3MvbGlicnR0b3BvLWRldmVsICAgIHwg IDEgKwogc3JjcGtncy9saWJydHRvcG8vdGVtcGxhdGUgfCAyOSArKysrKysrKysrKysrKysrKysr KysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAzMSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9k ZSAxMjAwMDAgc3JjcGtncy9saWJydHRvcG8tZGV2ZWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2xpYnJ0dG9wby90ZW1wbGF0ZQoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21t b24vc2hsaWJzCmluZGV4IGIwZmNmZDA0OTI2ZS4uNzM0YzE2MjgxZjBlIDEwMDY0NAotLS0gYS9j b21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTQxMTAsMyArNDExMCw0IEBAIGxp YmF3dF94YXd0LnNvIG9wZW5qZGsxNy1qcmUtMTcuMC4xKzEyXzEKIGxpYmphdmEuc28gb3Blbmpk azE3LWpyZS0xNy4wLjErMTJfMQogbGliamxpLnNvIG9wZW5qZGsxNy1qcmUtMTcuMC4xKzEyXzEK IGxpYmp2bS5zbyBvcGVuamRrMTctanJlLTE3LjAuMSsxMl8xCitsaWJydHRvcG8uc28uMSBsaWJy dHRvcG8tMS4xLjBfMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJydHRvcG8tZGV2ZWwgYi9zcmNw a2dzL2xpYnJ0dG9wby1kZXZlbApuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAwMDAwMDAw MDAuLmFjZjM2MDdmNWZlYwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGlicnR0b3BvLWRl dmVsCkBAIC0wLDAgKzEgQEAKK2xpYnJ0dG9wbwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGlicnR0b3BvL3RlbXBsYXRlIGIvc3JjcGtncy9saWJydHRv cG8vdGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5iN2Y2 YjJhNzAwZDYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpYnJ0dG9wby90ZW1wbGF0ZQpA QCAtMCwwICsxLDI5IEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICdsaWJydHRvcG8nCitwa2duYW1l PWxpYnJ0dG9wbwordmVyc2lvbj0xLjEuMAorcmV2aXNpb249MQord3Jrc3JjPSIke3BrZ25hbWV9 IgorYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQoraG9zdG1ha2VkZXBlbmRzPSJiYXNlLWRldmVs IGF1dG9jb25mLWFyY2hpdmUiCittYWtlZGVwZW5kcz0iYmFzZS1kZXZlbCBhdXRvY29uZi1hcmNo aXZlIGdlb3MtZGV2ZWwiCitzaG9ydF9kZXNjPSJSVCBUb3BvbG9neSBMaWJyYXJ5IGV4cG9zZXMg YW4gQVBJIGZvciBtYW5hZ2luZyBzdGFuZGFyZCB0b3BvbG9naWVzIgorbWFpbnRhaW5lcj0iQXJq YW4gTW9zc2VsIDxhcmphbm1vc3NlbEBnbWFpbC5jb20+IgorbGljZW5zZT0iR1BMLTIuMC1vci1s YXRlciIKK2hvbWVwYWdlPSJodHRwczovL2dpdC5vc2dlby5vcmcvZ2l0ZWEvcnR0b3BvL2xpYnJ0 dG9wbyIKK2Rpc3RmaWxlcz0iaHR0cHM6Ly9naXQub3NnZW8ub3JnL2dpdGVhL3J0dG9wby9saWJy dHRvcG8vYXJjaGl2ZS9saWJydHRvcG8tJHt2ZXJzaW9ufS50YXIuZ3oiCitjaGVja3N1bT0iMmUy ZmNhYmI0ODE5M2E3MTJhNmM3NmFjOWE5YmUyYTUzZjgyZTMyZjkxYTJiYzgzNGQ5ZjFiNGZhOWNk ODc5ZiIKKworcHJlX2NvbmZpZ3VyZSgpIHsKKwlhdXRvcmVjb25mIC1pZgorfQorCitsaWJydHRv cG8tZGV2ZWxfcGFja2FnZSgpIHsKKwlkZXBlbmRzPSIkcGtnbmFtZT49JHt2ZXJzaW9ufV8ke3Jl dmlzaW9ufSIKKwlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCisJcGtnX2luc3Rh bGwoKSB7CisJCXZtb3ZlIHVzci9pbmNsdWRlCisJCXZtb3ZlICJ1c3IvbGliLyouc28iCisJCXZt b3ZlICJ1c3IvbGliLyouYSIKKwkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcKKwl9Cit9CgpGcm9t IDM1ZjcyYzc4MGExMGFkNDllYTA5MDZlNTQyMmU4ZjM1YjU1N2E3YTEgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IE55eDcwIDxuLnkueEBibHVld2luLmNoPgpEYXRlOiBUaHUsIDI2IE5v diAyMDIwIDE4OjQ3OjI1ICswMTAwClN1YmplY3Q6IFtQQVRDSCAwMy8xN10gTmV3IHBhY2thZ2U6 IGxpYmttbC0xLjMuMAoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICA2ICsrKysrKwogc3JjcGtncy9saWJrbWwtZGV2ZWwgICAgICAgICAgICAgICAgICAgfCAg MSArCiBzcmNwa2dzL2xpYmttbC9wYXRjaGVzL05PVU5DUllQVC5wYXRjaCB8IDE3ICsrKysrKysr KysrKysrKysKIHNyY3BrZ3MvbGlia21sL3RlbXBsYXRlICAgICAgICAgICAgICAgIHwgMjcgKysr KysrKysrKysrKysrKysrKysrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgNTEgaW5zZXJ0aW9ucygr KQogY3JlYXRlIG1vZGUgMTIwMDAwIHNyY3BrZ3MvbGlia21sLWRldmVsCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9saWJrbWwvcGF0Y2hlcy9OT1VOQ1JZUFQucGF0Y2gKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL2xpYmttbC90ZW1wbGF0ZQoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxp YnMgYi9jb21tb24vc2hsaWJzCmluZGV4IDczNGMxNjI4MWYwZS4uN2NmODc2NjAwMDg5IDEwMDY0 NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTQxMTEsMyArNDEx MSw5IEBAIGxpYmphdmEuc28gb3BlbmpkazE3LWpyZS0xNy4wLjErMTJfMQogbGliamxpLnNvIG9w ZW5qZGsxNy1qcmUtMTcuMC4xKzEyXzEKIGxpYmp2bS5zbyBvcGVuamRrMTctanJlLTE3LjAuMSsx Ml8xCiBsaWJydHRvcG8uc28uMSBsaWJydHRvcG8tMS4xLjBfMQorbGlia21sYmFzZS5zby4xIGxp YmttbC0xLjMuMF8xCitsaWJrbWxkb20uc28uMSBsaWJrbWwtMS4zLjBfMQorbGlia21sZW5naW5l LnNvLjEgbGlia21sLTEuMy4wXzEKK2xpYmttbHJlZ2lvbmF0b3Iuc28uMSBsaWJrbWwtMS4zLjBf MQorbGlia21seHNkLnNvLjEgbGlia21sLTEuMy4wXzEKK2xpYmttbGNvbnZlbmllbmNlLnNvLjEg bGlia21sLTEuMy4wXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGlia21sLWRldmVsIGIvc3JjcGtn cy9saWJrbWwtZGV2ZWwKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMDAwLi5j ZjEyYmUxMDJmNDIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpYmttbC1kZXZlbApAQCAt MCwwICsxIEBACitsaWJrbWwKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg YS9zcmNwa2dzL2xpYmttbC9wYXRjaGVzL05PVU5DUllQVC5wYXRjaCBiL3NyY3BrZ3MvbGlia21s L3BhdGNoZXMvTk9VTkNSWVBULnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMC4uNWI3ZTAxNmMwZTAyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saWJrbWwv cGF0Y2hlcy9OT1VOQ1JZUFQucGF0Y2gKQEAgLTAsMCArMSwxNyBAQAorbWluaXppcC9jcnlwdC5o IHdhcyByZW1vdmVkIGZyb20gdGhlIHBhY2tldCBtaW5pemlwLTEuMi4xMV8yLiAKKword2l0aCAi I2RlZmluZSBOT1VOQ1JZUFQiIGxpYmttbCBjYW4gYmUgYnVpbHQgd2l0aG91dCAiY3J5cHQuaCIK K2h0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvY29tbWl0Lzk1MmFj OTEzY2YKK2h0dHBzOi8vZ2l0aHViLmNvbS9tYWRsZXIvemxpYi9wdWxsLzIyOQorCistLS0gYS9z cmMva21sL2Jhc2UvY29udHJpYi9taW5pemlwL3VuemlwLmMJMjAxNS0xMi0yMSAxODoyMzowNS4w MDAwMDAwMDAgKzAxMDAKKysrKyBiL3NyYy9rbWwvYmFzZS9jb250cmliL21pbml6aXAvdW56aXAu YwkyMDIwLTExLTI2IDE1OjQ1OjU1LjAzMzgzNTgxNiArMDEwMAorQEAgLTQyLDcgKzQyLDcgQEAK KyAjaW5jbHVkZSA8emxpYi5oPiAvL1JSCisgI2luY2x1ZGUgInVuemlwLmgiCisgI2luY2x1ZGUg ImlvbWVtX3NpbXBsZS5oIgorLSN1bmRlZiBOT1VOQ1JZUFQKKysjZGVmaW5lIE5PVU5DUllQVAor IAorICNpZmRlZiBTVERDCisgIyAgaW5jbHVkZSA8c3RkZGVmLmg+CmRpZmYgLS1naXQgYS9zcmNw a2dzL2xpYmttbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGlia21sL3RlbXBsYXRlCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYjY3ZWVjZTRkOGJhCi0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9saWJrbWwvdGVtcGxhdGUKQEAgLTAsMCArMSwyNyBAQAorIyBUZW1wbGF0 ZSBmaWxlIGZvciAnbGlia21sJworcGtnbmFtZT1saWJrbWwKK3ZlcnNpb249MS4zLjAKK3Jldmlz aW9uPTEKK2J1aWxkX3N0eWxlPWNtYWtlCittYWtlZGVwZW5kcz0iYm9vc3QtZGV2ZWwKKyBleHBh dC1kZXZlbAorIG1pbml6aXAtZGV2ZWwKKyB1cmlwYXJzZXItZGV2ZWwKKyB6bGliLWRldmVsIgor c2hvcnRfZGVzYz0iTGlicmFyeSB0byBtYW5pcHVsYXRlIEtNTCBPR0MgZmlsZXMiCittYWludGFp bmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgorbGljZW5zZT0iR1BMLTMuMC1v ci1sYXRlciIKK2hvbWVwYWdlPSJodHRwczovL2dpdGh1Yi5jb20vbGlia21sL2xpYmttbCIKK2Rp c3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL2xpYmttbC9saWJrbWwvYXJjaGl2ZS8ke3ZlcnNp b259LnRhci5neiIKK2NoZWNrc3VtPTg4OTI0MzllNTU3MDA5MTk2NWFhZmZlMzBiMDg2MzFmZGY3 Y2E3ZjgxZjY0OTViNDY0OGYwOTUwZDdlYTc5NjMKKworbGlia21sLWRldmVsX3BhY2thZ2UoKSB7 CisJZGVwZW5kcz0iJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgorCXNob3J0 X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlwa2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUg dXNyL2luY2x1ZGUKKwkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcKKwkJdm1vdmUgdXNyL2xpYi9j bWFrZQorCQl2bW92ZSAidXNyL2xpYi8qLnNvIgorCX0KK30KCkZyb20gYTI5ZGMwYjYxMmI0NjI1 N2M2MGY0YjA3YmNkMjlhYTFkYjA2YTRlYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog QXJqYW4gTW9zc2VsIDxhcmphbm1vc3NlbEBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMTUgRmViIDIw MjIgMjI6NDY6NDUgKzAxMDAKU3ViamVjdDogW1BBVENIIDA0LzE3XSBOZXcgcGFja2FnZTogbGli c3BhdGlhbGl0ZS01LjAuMQoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAxMSArKysrKwogc3JjcGtncy9saWJzcGF0aWFsaXRlLWRldmVsICAgICAg ICAgICAgICAgICAgIHwgIDEgKwogLi4uL3BhdGNoZXMvZGlzYWJsZV9jaGVja19kcm9wX3JlbmFt ZS5wYXRjaCAgIHwgMjggKysrKysrKysrKysrKwogLi4uL3BhdGNoZXMvZGlzYWJsZV9jaGVja19z cWxfc3RtdC5wYXRjaCAgICAgIHwgMjkgKysrKysrKysrKysrKwogc3JjcGtncy9saWJzcGF0aWFs aXRlL3RlbXBsYXRlICAgICAgICAgICAgICAgIHwgNDIgKysrKysrKysrKysrKysrKysrKwogNSBm aWxlcyBjaGFuZ2VkLCAxMTEgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTIwMDAwIHNyY3Br Z3MvbGlic3BhdGlhbGl0ZS1kZXZlbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGlic3Bh dGlhbGl0ZS9wYXRjaGVzL2Rpc2FibGVfY2hlY2tfZHJvcF9yZW5hbWUucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL2xpYnNwYXRpYWxpdGUvcGF0Y2hlcy9kaXNhYmxlX2NoZWNrX3Nx bF9zdG10LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saWJzcGF0aWFsaXRlL3Rl bXBsYXRlCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXgg N2NmODc2NjAwMDg5Li45OGEwNDA1ZDZhYmIgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysr IGIvY29tbW9uL3NobGlicwpAQCAtNDExNywzICs0MTE3LDE0IEBAIGxpYmttbGVuZ2luZS5zby4x IGxpYmttbC0xLjMuMF8xCiBsaWJrbWxyZWdpb25hdG9yLnNvLjEgbGlia21sLTEuMy4wXzEKIGxp YmttbHhzZC5zby4xIGxpYmttbC0xLjMuMF8xCiBsaWJrbWxjb252ZW5pZW5jZS5zby4xIGxpYmtt bC0xLjMuMF8xCitsaWJzcGF0aWFsaXRlLnNvLjcgbGlic3BhdGlhbGl0ZS01LjAuMV8xCittb2Rf c3BhdGlhbGl0ZS5zby43IGxpYnNwYXRpYWxpdGUtNS4wLjFfMQorbGliZ3Jhc3NfZGJtaWJhc2Uu Ny44LnNvIGdyYXNzLTcuOC43UkMxXzEKK2xpYmdyYXNzX2RibWljbGllbnQuNy44LnNvIGdyYXNz LTcuOC43UkMxXzEKK2xpYmdyYXNzX2dpcy43Ljguc28gZ3Jhc3MtNy44LjdSQzFfMQorbGliZ3Jh c3NfZ3Byb2ouNy44LnNvIGdyYXNzLTcuOC43UkMxXzEKK2xpYmdyYXNzX2ltYWdlcnkuNy44LnNv IGdyYXNzLTcuOC43UkMxXzEKK2xpYmdyYXNzX3Jhc3Rlci43Ljguc28gZ3Jhc3MtNy44LjdSQzFf MQorbGliZ3Jhc3NfdmVjdG9yLjcuOC5zbyBncmFzcy03LjguN1JDMV8xCitsaWJzdW1vY3BwLnNv IHN1bW8tMS45LjJfMQorbGlidHJhY2ljcHAuc28gc3Vtby0xLjkuMl8xCmRpZmYgLS1naXQgYS9z cmNwa2dzL2xpYnNwYXRpYWxpdGUtZGV2ZWwgYi9zcmNwa2dzL2xpYnNwYXRpYWxpdGUtZGV2ZWwK bmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMDAwLi41ODhiYTJhZDdjMDAKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xpYnNwYXRpYWxpdGUtZGV2ZWwKQEAgLTAsMCArMSBA QAorbGlic3BhdGlhbGl0ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvbGlic3BhdGlhbGl0ZS9wYXRjaGVzL2Rpc2FibGVfY2hlY2tfZHJvcF9yZW5hbWUu cGF0Y2ggYi9zcmNwa2dzL2xpYnNwYXRpYWxpdGUvcGF0Y2hlcy9kaXNhYmxlX2NoZWNrX2Ryb3Bf cmVuYW1lLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMzBi NjdmNWI4ZjYxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9saWJzcGF0aWFsaXRlL3BhdGNo ZXMvZGlzYWJsZV9jaGVja19kcm9wX3JlbmFtZS5wYXRjaApAQCAtMCwwICsxLDI4IEBACitEaXNh YmxlIGNoZWNrX2Ryb3BfcmVuYW1lIHRlc3QuIEl0IGZhaWxzIHdpdGg6CitSZW5hbWVUYWJsZSAi dGFibGVfMSIgZXJyb3I6IFJlbmFtZVRhYmxlIGV4Y2VwdGlvbiAtIGVycm9yIGluIHRyaWdnZXIg SVNPX21ldGFkYXRhX3JlZmVyZW5jZV9yb3dfaWRfdmFsdWVfaW5zZXJ0OiBubyBzdWNoIGNvbHVt bjogcm93aWQuCisKK2RpZmYgLS1naXQgYS90ZXN0L01ha2VmaWxlLmFtIGIvdGVzdC9NYWtlZmls ZS5hbQoraW5kZXggZmVjMjVkZC4uNTBiMTZhZSAxMDA2NDQKKy0tLSBhL3Rlc3QvTWFrZWZpbGUu YW0KKysrKyBiL3Rlc3QvTWFrZWZpbGUuYW0KK0BAIC03NCw3ICs3NCw2IEBAIGNoZWNrX1BST0dS QU1TID0gY2hlY2tfZW5kaWFuIFwKKyAJCWNoZWNrX3NlcXVlbmNlIFwKKyAJCWNoZWNrX3N0b3Jl ZF9wcm9jIFwKKyAJCWNoZWNrX3dtcyBcCistCQljaGVja19kcm9wX3JlbmFtZSBcCisgCQlyb3V0 aW5nX3Rlc3QgXAorIAkJZ2VvanNvbl90ZXN0IFwKKyAJCWNoZWNrX3ppcHNocAorZGlmZiAtLWdp dCBhL3Rlc3QvTWFrZWZpbGUuaW4gYi90ZXN0L01ha2VmaWxlLmluCitpbmRleCA4YTBiMTU0Li41 MmExMDY2IDEwMDY0NAorLS0tIGEvdGVzdC9NYWtlZmlsZS5pbgorKysrIGIvdGVzdC9NYWtlZmls ZS5pbgorQEAgLTEyNCw3ICsxMjQsNyBAQCBjaGVja19QUk9HUkFNUyA9IGNoZWNrX2VuZGlhbiQo RVhFRVhUKSBjaGVja192ZXJzaW9uJChFWEVFWFQpIFwKKyAJY2hlY2tfbmV0d29yazJkJChFWEVF WFQpIGNoZWNrX25ldHdvcmszZCQoRVhFRVhUKSBcCisgCWNoZWNrX25ldHdvcmtfbG9nJChFWEVF WFQpIGNoZWNrX3ZpcnR1YWxrbm4kKEVYRUVYVCkgXAorIAljaGVja19zZXF1ZW5jZSQoRVhFRVhU KSBjaGVja19zdG9yZWRfcHJvYyQoRVhFRVhUKSBcCistCWNoZWNrX3dtcyQoRVhFRVhUKSBjaGVj a19kcm9wX3JlbmFtZSQoRVhFRVhUKSBcCisrCWNoZWNrX3dtcyQoRVhFRVhUKSBcCisgCXJvdXRp bmdfdGVzdCQoRVhFRVhUKSBnZW9qc29uX3Rlc3QkKEVYRUVYVCkgXAorIAljaGVja196aXBzaHAk KEVYRUVYVCkgJChhbV9fRVhFRVhUXzEpCisgQEVOQUJMRV9HRU9QQUNLQUdFX1RSVUVAYW1fX2Fw cGVuZF8xID0gXApkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJzcGF0aWFsaXRlL3BhdGNoZXMvZGlz YWJsZV9jaGVja19zcWxfc3RtdC5wYXRjaCBiL3NyY3BrZ3MvbGlic3BhdGlhbGl0ZS9wYXRjaGVz L2Rpc2FibGVfY2hlY2tfc3FsX3N0bXQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwLi4xZGMzYjU3MDU5NTUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2xp YnNwYXRpYWxpdGUvcGF0Y2hlcy9kaXNhYmxlX2NoZWNrX3NxbF9zdG10LnBhdGNoCkBAIC0wLDAg KzEsMjkgQEAKK0Rpc2FibGUgY2hlY2tfc3FsX3N0bXQgdGVzdHMKKworaHR0cHM6Ly93d3cuZ2Fp YS1naXMuaXQvZm9zc2lsL2xpYnNwYXRpYWxpdGUvdGt0dmlldy8zZTQ2MzQ5YmYyYmZjNThiM2Uz MDUxZDFmZjdjYWI3M2VlZDE5YTg4P3BsYWludGV4dAorCistLS0gYS90ZXN0L01ha2VmaWxlLmFt CTIwMjAtMDgtMjMgMTg6NDY6MjMuMDAwMDAwMDAwICswMjAwCisrKysgYi90ZXN0L01ha2VmaWxl LmFtCTIwMjAtMTItMjIgMTQ6NDU6MTAuMjA2MDg1NTE1ICswMTAwCitAQCAtMzEsMTAgKzMxLDYg QEAKKyAJCWNoZWNrX2dhaWFfdXRmOCBcCisgCQljaGVja19leHRlbnNpb24gXAorIAkJY2hlY2tf cmVjb3Zlcl9nZW9tIFwKKy0JCWNoZWNrX3NxbF9zdG10IFwKKy0JCWNoZWNrX3NxbF9zdG10X3Rp bnkgXAorLQkJY2hlY2tfc3FsX3N0bXRfbGVnYWN5IFwKKy0JCWNoZWNrX3NxbF9zdG10X2V4dGVu c2lvbiBcCisgCQljaGVja19tdWx0aXRocmVhZCBcCisgCQljaGVja192aXJ0dWFsdGFibGUxIFwK KyAJCWNoZWNrX3ZpcnR1YWx0YWJsZTIgXAorLS0tIGEvdGVzdC9NYWtlZmlsZS5pbgkyMDIwLTA4 LTIzIDE4OjQ2OjIzLjAwMDAwMDAwMCArMDIwMAorKysrIGIvdGVzdC9NYWtlZmlsZS5pbgkyMDIw LTEyLTIyIDE0OjQxOjA2LjQxNjMzNTczNyArMDEwMAorQEAgLTEwMiw5ICsxMDIsNiBAQAorIAlj aGVja194bHNfbG9hZCQoRVhFRVhUKSBjaGVja19tYXRoX2Z1bmNzJChFWEVFWFQpIFwKKyAJY2hl Y2tfZ2FpYV91dGlsJChFWEVFWFQpIGNoZWNrX2dhaWFfdXRmOCQoRVhFRVhUKSBcCisgCWNoZWNr X2V4dGVuc2lvbiQoRVhFRVhUKSBjaGVja19yZWNvdmVyX2dlb20kKEVYRUVYVCkgXAorLQljaGVj a19zcWxfc3RtdCQoRVhFRVhUKSBjaGVja19zcWxfc3RtdF90aW55JChFWEVFWFQpIFwKKy0JY2hl Y2tfc3FsX3N0bXRfbGVnYWN5JChFWEVFWFQpIFwKKy0JY2hlY2tfc3FsX3N0bXRfZXh0ZW5zaW9u JChFWEVFWFQpIGNoZWNrX211bHRpdGhyZWFkJChFWEVFWFQpIFwKKyAJY2hlY2tfdmlydHVhbHRh YmxlMSQoRVhFRVhUKSBjaGVja192aXJ0dWFsdGFibGUyJChFWEVFWFQpIFwKKyAJY2hlY2tfdmly dHVhbHRhYmxlMyQoRVhFRVhUKSBjaGVja192aXJ0dWFsdGFibGU0JChFWEVFWFQpIFwKKyAJY2hl Y2tfdmlydHVhbHRhYmxlNSQoRVhFRVhUKSBjaGVja192aXJ0dWFsdGFibGU2JChFWEVFWFQpIFwK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGlic3BhdGlhbGl0ZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGli c3BhdGlhbGl0ZS90ZW1wbGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAuLjMxYzEwYTU1NzdlNwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGlic3BhdGlhbGl0 ZS90ZW1wbGF0ZQpAQCAtMCwwICsxLDQyIEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICdsaWJzcGF0 aWFsaXRlJworcGtnbmFtZT1saWJzcGF0aWFsaXRlCit2ZXJzaW9uPTUuMC4xCityZXZpc2lvbj0x CitidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCitob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcg bGlicnR0b3BvIGdlb3MtZGV2ZWwgbGlieG1sMiIKK21ha2VkZXBlbmRzPSJmcmVleGwtZGV2ZWwK KyBnZW9zLWRldmVsCisgbGlicnR0b3BvLWRldmVsCisgbGlieG1sMi1kZXZlbAorIG1pbml6aXAt ZGV2ZWwKKyBwcm9qLWRldmVsCisgc3FsaXRlLWRldmVsCisgemxpYi1kZXZlbCIKK2RlcGVuZHM9 InNxbGl0ZSIKK3Nob3J0X2Rlc2M9Ikdlb3NwYXRpYWwgZXh0ZW5zaW9uIGZvciBTUUxpdGUiCitt YWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgorbGljZW5zZT0iTVBM LTEuMCIKK2hvbWVwYWdlPSJodHRwczovL3d3dy5nYWlhLWdpcy5pdC9mb3NzaWwvbGlic3BhdGlh bGl0ZS9pbmRleCIKK2Rpc3RmaWxlcz0iaHR0cDovL3d3dy5nYWlhLWdpcy5pdC9nYWlhLXNpbnMv JHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci5neiIKK2NoZWNrc3VtPWVlY2JjOTQzMTFjNzgwMTJk MDU5ZWJjMGZhZTg2ZWE1ZWY2ZWVjYjEzMzAzZTZlODJiMzc1M2MxYjM0MDllOTgKKworQ0ZMQUdT PSItREFDQ0VQVF9VU0VfT0ZfREVQUkVDQVRFRF9QUk9KX0FQSV9IIgorCitpZiBbICIkQ1JPU1Nf QlVJTEQiIF07IHRoZW4KKwlob3N0bWFrZWRlcGVuZHMrPSIgbGlidG9vbCBnZW9zLWRldmVsIgor ZmkKKworcG9zdF9pbnN0YWxsKCkgeworCXZsaWNlbnNlIENPUFlJTkcKK30KKworbGlic3BhdGlh bGl0ZS1kZXZlbF9wYWNrYWdlKCkgeworCWRlcGVuZHM9IiRwa2duYW1lPj0ke3ZlcnNpb259XyR7 cmV2aXNpb259IgorCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlwa2dfaW5z dGFsbCgpIHsKKwkJdm1vdmUgdXNyL2luY2x1ZGUKKwkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcK KwkJdm1vdmUgInVzci9saWIvKi5zbyIKKwkJdm1vdmUgInVzci9saWIvKi5hIgorCX0KK30KCkZy b20gZGNlMzZhNTczY2M5OTNhNWM2NzZlZmYwNDYxZTFjNDFkMTk3NjE1OCBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogQXJqYW4gTW9zc2VsIDxhcmphbm1vc3NlbEBnbWFpbC5jb20+CkRh dGU6IE1vbiwgMTQgRmViIDIwMjIgMTM6MDc6NTEgKzAxMDAKU3ViamVjdDogW1BBVENIIDA1LzE3 XSBsaWJnZGFsOiB1cGRhdGUgdG8gMy40LjEgYW5kIHJlYnVpbGQgYWdhaW5zdCBwcm9qLTcuMi4x CgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg MiArLQogLi4uZTE2ZTI3YzVmYzRjNDkxZGViZTUwYmYyYjdmM2U5NGVkMzM0LnBhdGNoIHwgIDUz IC0tLS0tLS0tLQogLi4uYzQ4OTNlNmQxNGQ0ODhkZmVkMjU3NDVkNzlmMTFiZWU0NWI5LnBhdGNo IHwgIDMxIC0tLS0tLQogc3JjcGtncy9saWJnZGFsL3RlbXBsYXRlICAgICAgICAgICAgICAgICAg ICAgIHwgMTA1ICsrKysrKysrKysrKysrKystLQogc3JjcGtncy9weXRob24zLWdkYWwgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAxICsKIDUgZmlsZXMgY2hhbmdlZCwgOTUgaW5zZXJ0aW9u cygrKSwgOTcgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9saWJnZGFs L3BhdGNoZXMvOWVmOGUxNmUyN2M1ZmM0YzQ5MWRlYmU1MGJmMmI3ZjNlOTRlZDMzNC5wYXRjaAog ZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvbGliZ2RhbC9wYXRjaGVzL2FiNzJjNDg5M2U2ZDE0 ZDQ4OGRmZWQyNTc0NWQ3OWYxMWJlZTQ1YjkucGF0Y2gKIGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNw a2dzL3B5dGhvbjMtZ2RhbAoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hs aWJzCmluZGV4IDk4YTA0MDVkNmFiYi4uNWY3ZTdiYWM4OGQzIDEwMDY0NAotLS0gYS9jb21tb24v c2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTI1MTAsNyArMjUxMCw3IEBAIGxpYnUyZi1o b3N0LnNvLjAgbGlidTJmLWhvc3QtMS4xLjEwXzUKIGxpYnUyZi1zZXJ2ZXIuc28uMCBsaWJ1MmYt c2VydmVyLTEuMS4wXzkKIGxpYnNxbGNpcGhlci5zby4wIHNxbGNpcGhlci00LjMuMF8zCiBsaWJn dGEuc28uMSBsaWJndGEtMS4yLjBfMQotbGliZ2RhbC5zby4yNiBsaWJnZGFsLTMuMC40XzkKK2xp YmdkYWwuc28uMzAgbGliZ2RhbC0zLjQuMV8xCiBsaWJvc2dWaWV3ZXIuc28uMTMxIG9zZy0zLjQu MV8xCiBsaWJvc2dTaGFkb3cuc28uMTMxIG9zZy0zLjQuMV8xCiBsaWJvc2dQYXJ0aWNsZS5zby4x MzEgb3NnLTMuNC4xXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliZ2RhbC9wYXRjaGVzLzllZjhl MTZlMjdjNWZjNGM0OTFkZWJlNTBiZjJiN2YzZTk0ZWQzMzQucGF0Y2ggYi9zcmNwa2dzL2xpYmdk YWwvcGF0Y2hlcy85ZWY4ZTE2ZTI3YzVmYzRjNDkxZGViZTUwYmYyYjdmM2U5NGVkMzM0LnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NjhlZGViMzJjNzcuLjAwMDAwMDAwMDAw MAotLS0gYS9zcmNwa2dzL2xpYmdkYWwvcGF0Y2hlcy85ZWY4ZTE2ZTI3YzVmYzRjNDkxZGViZTUw YmYyYjdmM2U5NGVkMzM0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAsMCBAQAotRnJv bSA5ZWY4ZTE2ZTI3YzVmYzRjNDkxZGViZTUwYmYyYjdmM2U5NGVkMzM0IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQotRnJvbTogRXZlbiBSb3VhdWx0IDxldmVuLnJvdWF1bHRAc3BhdGlhbHlzLmNv bT4KLURhdGU6IE1vbiwgNSBPY3QgMjAyMCAxMjoxMTo1MiArMDIwMAotU3ViamVjdDogW1BBVENI XSBKUEVHMjAwMDogbWFrZSBpdCBidWlsZCB3aXRoIEphc3BlciAyLjAuMjEgKGZpeGVzICMzMDEy KQotCi0tLS0KLSBnZGFsL2ZybXRzL2pwZWcyMDAwL2pwZWcyMDAwX3ZzaWxfaW8uY3BwIHwgMTYg KysrKysrKysrLS0tLS0tLQotIGdkYWwvZnJtdHMvanBlZzIwMDAvanBlZzIwMDBkYXRhc2V0LmNw cCAgfCAgMiArLQotIDIgZmlsZXMgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlv bnMoLSkKLQotZGlmZiAtLWdpdCBhL2dkYWwvZnJtdHMvanBlZzIwMDAvanBlZzIwMDBfdnNpbF9p by5jcHAgYi9nZGFsL2ZybXRzL2pwZWcyMDAwL2pwZWcyMDAwX3ZzaWxfaW8uY3BwCi1pbmRleCAx MGE0Zjk2ZjBlZS4uZWJjYWM0MDEwY2UgMTAwNjQ0Ci0tLS0gYS9mcm10cy9qcGVnMjAwMC9qcGVn MjAwMF92c2lsX2lvLmNwcAotKysrIGIvZnJtdHMvanBlZzIwMDAvanBlZzIwMDBfdnNpbF9pby5j cHAKLUBAIC05NCwxMyArOTQsMjQgQEAKLSAqIEZpbGUgc3RyZWFtIG9iamVjdC4KLSBcKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqLwotCi0rI2lmIGRlZmluZWQoUFJJamFzX3NlcWVudCkKLStzdGF0aWMg aW50IEpQRUcyMDAwX1ZTSUxfcmVhZChqYXNfc3RyZWFtX29ial90ICpvYmosIGNoYXIgKmJ1Ziwg dW5zaWduZWQgY250KQotKyNlbHNlCi0gc3RhdGljIGludCBKUEVHMjAwMF9WU0lMX3JlYWQoamFz X3N0cmVhbV9vYmpfdCAqb2JqLCBjaGFyICpidWYsIGludCBjbnQpCi0rI2VuZGlmCi0gewotICAg ICBqYXNfc3RyZWFtX1ZTSUZMX3QgKmZpbGVvYmogPSBKQVNfQ0FTVChqYXNfc3RyZWFtX1ZTSUZM X3QgKiwgb2JqKTsKLSAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oVlNJRlJlYWRMKGJ1Ziwg MSwgY250LCBmaWxlb2JqLT5mcCkpOwotIH0KLQotKyNpZiBkZWZpbmVkKEpBU19JTkNMVURFX0pQ Ml9DT0RFQykKLSsvLyBKYXNwZXIgMi4wLjIxCi0rc3RhdGljIGludCBKUEVHMjAwMF9WU0lMX3dy aXRlKGphc19zdHJlYW1fb2JqX3QgKm9iaiwgY29uc3QgY2hhciAqYnVmLCB1bnNpZ25lZCBpbnQg Y250KQotKyNlbGlmIGRlZmluZWQoUFJJamFzX3NlcWVudCkKLStzdGF0aWMgaW50IEpQRUcyMDAw X1ZTSUxfd3JpdGUoamFzX3N0cmVhbV9vYmpfdCAqb2JqLCBjaGFyICpidWYsIHVuc2lnbmVkIGlu dCBjbnQpCi0rI2Vsc2UKLSBzdGF0aWMgaW50IEpQRUcyMDAwX1ZTSUxfd3JpdGUoamFzX3N0cmVh bV9vYmpfdCAqb2JqLCBjaGFyICpidWYsIGludCBjbnQpCi0rI2VuZGlmCi0gewotICAgICBqYXNf c3RyZWFtX1ZTSUZMX3QgKmZpbGVvYmogPSBKQVNfQ0FTVChqYXNfc3RyZWFtX1ZTSUZMX3QgKiwg b2JqKTsKLSAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oVlNJRldyaXRlTChidWYsIDEsIGNu dCwgZmlsZW9iai0+ZnApKTsKLQotZGlmZiAtLWdpdCBhL2dkYWwvZnJtdHMvanBlZzIwMDAvanBl ZzIwMDBkYXRhc2V0LmNwcCBiL2dkYWwvZnJtdHMvanBlZzIwMDAvanBlZzIwMDBkYXRhc2V0LmNw cAotaW5kZXggYTVhNmIyNThlZDkuLmJkMWU3NzYzMTg2IDEwMDY0NAotLS0tIGEvZnJtdHMvanBl ZzIwMDAvanBlZzIwMDBkYXRhc2V0LmNwcAotKysrIGIvZnJtdHMvanBlZzIwMDAvanBlZzIwMDBk YXRhc2V0LmNwcAotQEAgLTUxMyw3ICs1MTMsNyBAQCBpbnQgSlBFRzIwMDBEYXRhc2V0OjpEZWNv ZGVJbWFnZSgpCi0gICAgICAgICBmb3IgKCBpQmFuZCA9IDA7IGlCYW5kIDwgbkJhbmRzOyBpQmFu ZCsrICkKLSAgICAgICAgIHsKLSAgICAgICAgICAgICBKUEVHMjAwMFJhc3RlckJhbmQqIHBvQmFu ZCA9IChKUEVHMjAwMFJhc3RlckJhbmQqKSBHZXRSYXN0ZXJCYW5kKGlCYW5kKzEpOwotLSAgICAg ICAgICAgIGlmIChwb0JhbmQtPmlEZXB0aCAhPSBqYXNfaW1hZ2VfY21wdHByZWMoIHBzSW1hZ2Us IGlCYW5kICkgfHwKLSsgICAgICAgICAgICBpZiAocG9CYW5kLT5pRGVwdGggIT0gc3RhdGljX2Nh c3Q8aW50PihqYXNfaW1hZ2VfY21wdHByZWMoIHBzSW1hZ2UsIGlCYW5kICkpIHx8Ci0gICAgICAg ICAgICAgICAgIHBvQmFuZC0+YlNpZ25lZG5lc3MgIT0gamFzX2ltYWdlX2NtcHRzZ25kKCBwc0lt YWdlLCBpQmFuZCApKQotICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgQ1BMRXJyb3Io Q0VfRmFpbHVyZSwgQ1BMRV9BcHBEZWZpbmVkLApkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJnZGFs L3BhdGNoZXMvYWI3MmM0ODkzZTZkMTRkNDg4ZGZlZDI1NzQ1ZDc5ZjExYmVlNDViOS5wYXRjaCBi L3NyY3BrZ3MvbGliZ2RhbC9wYXRjaGVzL2FiNzJjNDg5M2U2ZDE0ZDQ4OGRmZWQyNTc0NWQ3OWYx MWJlZTQ1YjkucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY0M2VhYzg4MmY2 Zi4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbGliZ2RhbC9wYXRjaGVzL2FiNzJjNDg5M2U2 ZDE0ZDQ4OGRmZWQyNTc0NWQ3OWYxMWJlZTQ1YjkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwz MSArMCwwIEBACi1Gcm9tIGFiNzJjNDg5M2U2ZDE0ZDQ4OGRmZWQyNTc0NWQ3OWYxMWJlZTQ1Yjkg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBFdmVuIFJvdWF1bHQgPGV2ZW4ucm91YXVs dEBzcGF0aWFseXMuY29tPgotRGF0ZTogTW9uLCAxMCBBdWcgMjAyMCAxNzoyNjo1MyArMDIwMAot U3ViamVjdDogW1BBVENIXSBKUEVHMjAwMDogZml4IGJ1aWxkIHdpdGggSmFzcGVyIDIuMC4xNyAo Zml4ZXMgIzI4NDQpCi0KLS0tLQotIGdkYWwvZnJtdHMvanBlZzIwMDAvanBlZzIwMDBkYXRhc2V0 LmNwcCB8IDQgKystLQotIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCi0KLWRpZmYgLS1naXQgYS9nZGFsL2ZybXRzL2pwZWcyMDAwL2pwZWcyMDAwZGF0YXNl dC5jcHAgYi9nZGFsL2ZybXRzL2pwZWcyMDAwL2pwZWcyMDAwZGF0YXNldC5jcHAKLWluZGV4IDNl NjY4ZmZlNTAzLi4yZDNmNGU0Njg3NiAxMDA2NDQKLS0tLSBhL2ZybXRzL2pwZWcyMDAwL2pwZWcy MDAwZGF0YXNldC5jcHAKLSsrKyBiL2ZybXRzL2pwZWcyMDAwL2pwZWcyMDAwZGF0YXNldC5jcHAK LUBAIC00ODQsNyArNDg0LDcgQEAgaW50IEpQRUcyMDAwRGF0YXNldDo6RGVjb2RlSW1hZ2UoKQot ICAgICAvKiB0aGUgSlAyIGJveGVzIG1hdGNoIHRoZSBvbmVzIG9mIHRoZSBjb2RlIHN0cmVhbSAq LwotICAgICBpZiAobkJhbmRzICE9IDApCi0gICAgIHsKLS0gICAgICAgIGlmIChuQmFuZHMgIT0g amFzX2ltYWdlX251bWNtcHRzKCBwc0ltYWdlICkpCi0rICAgICAgICBpZiAobkJhbmRzICE9IHN0 YXRpY19jYXN0PGludD4oamFzX2ltYWdlX251bWNtcHRzKCBwc0ltYWdlICkpKQotICAgICAgICAg ewotICAgICAgICAgICAgIENQTEVycm9yKENFX0ZhaWx1cmUsIENQTEVfQXBwRGVmaW5lZCwKLSAg ICAgICAgICAgICAgICAgICAgICAiVGhlIG51bWJlciBvZiBjb21wb25lbnRzIGluZGljYXRlZCBp biB0aGUgSUhEUiBib3ggKCVkKSBtaXNtYXRjaCAiCi1AQCAtNTk1LDcgKzU5NSw3IEBAIEdEQUxE YXRhc2V0ICpKUEVHMjAwMERhdGFzZXQ6Ok9wZW4oIEdEQUxPcGVuSW5mbyAqIHBvT3BlbkluZm8g KQotIAotIHsKLSAgICAgaW50ICAgICAgICAgaUZvcm1hdDsKLS0gICAgY2hhciAgICAgICAgKnBz ekZvcm1hdE5hbWUgPSBudWxscHRyOwotKyAgICBjb25zdCBjaGFyICpwc3pGb3JtYXROYW1lID0g bnVsbHB0cjsKLSAKLSAgICAgaWYgKCFJZGVudGlmeShwb09wZW5JbmZvKSkKLSAgICAgICAgIHJl dHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJnZGFsL3RlbXBsYXRlIGIvc3Jj cGtncy9saWJnZGFsL3RlbXBsYXRlCmluZGV4IDg3MGFiMjJiNGNiYS4uNWZjYTU3OTk1NGZhIDEw MDY0NAotLS0gYS9zcmNwa2dzL2xpYmdkYWwvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9saWJnZGFs L3RlbXBsYXRlCkBAIC0xLDMwICsxLDEwMCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGliZ2Rh bCcKIHBrZ25hbWU9bGliZ2RhbAotdmVyc2lvbj0zLjAuNAotcmV2aXNpb249MTEKK3ZlcnNpb249 My40LjEKK3JldmlzaW9uPTEKIHdya3NyYz0iZ2RhbC0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9 Z251LWNvbmZpZ3VyZQotY29uZmlndXJlX2FyZ3M9Ii0td2l0aC1saWJsem1hIC0td2l0aC13ZWJw IC0td2l0aC16c3RkIC0td2l0aC1wb2RvZm8gLS13aXRoLW9wZW5jbD15ZXMiCi1ob3N0bWFrZWRl cGVuZHM9ImdldHRleHQtZGV2ZWwgcGtnLWNvbmZpZyBweXRob24tbnVtcHkganNvbi1jLWRldmVs IgotbWFrZWRlcGVuZHM9ImZyZWV4bC1kZXZlbCBnZW9zLWRldmVsIGphc3Blci1kZXZlbCBqc29u LWMtZGV2ZWwKLSBsaWJjdXJsLWRldmVsIGxpYm9wZW5leHItZGV2ZWwgbGlib3BlbmpwZWcyLWRl dmVsIGxpYnBvZG9mby1kZXZlbCBsaWJxaHVsbC1kZXZlbAotIGxpYndlYnAtZGV2ZWwgbGlieG1s Mi1kZXZlbCBsaWJ6c3RkLWRldmVsIG5ldGNkZi1kZXZlbCBvcGVuY2wyLWhlYWRlcnMgcGNyZTIt ZGV2ZWwKLSBwcm9qLWRldmVsIHNxbGl0ZS1kZXZlbCBvY2wtaWNkLWRldmVsIgorY29uZmlndXJl X2FyZ3M9IgorIC0td2l0aC1leHBhdD15ZXMKKyAtLXdpdGgtaGRmNT15ZXMKKyAtLXdpdGgta21s PXllcworIC0td2l0aC1saWJsem1hPXllcworIC0td2l0aC1vcGVuY2w9eWVzCisgLS13aXRoLXBn PXllcworIC0td2l0aC1wb2RvZm89eWVzCisgLS13aXRoLXB5dGhvbj15ZXMKKyAtLXdpdGgtc3Bh dGlhbGl0ZT15ZXMKKyAtLXdpdGgtc3FsaXRlMz15ZXMKKyAtLXdpdGgtd2VicD15ZXMKKyAtLXdp dGgtenN0ZD15ZXMiCitob3N0bWFrZWRlcGVuZHM9ImdldHRleHQtZGV2ZWwKKyBqc29uLWMtZGV2 ZWwKKyBwa2ctY29uZmlnCisgcHl0aG9uMy1udW1weQorIHN3aWciCittYWtlZGVwZW5kcz0iYm9v c3QtZGV2ZWwKKyBleHBhdC1kZXZlbAorIGZyZWV4bC1kZXZlbAorIGdlb3MtZGV2ZWwKKyBqYXNw ZXItZGV2ZWwKKyBqc29uLWMtZGV2ZWwKKyBsaWJjdXJsLWRldmVsCisgbGlib3BlbmV4ci1kZXZl bAorIGxpYm9wZW5qcGVnMi1kZXZlbAorIGxpYnBvZG9mby1kZXZlbAorIGxpYnFodWxsLWRldmVs CisgbGlic3BhdGlhbGl0ZS1kZXZlbAorIGxpYndlYnAtZGV2ZWwKKyBsaWJ4bWwyLWRldmVsCisg bGlienN0ZC1kZXZlbAorIG5ldGNkZi1kZXZlbAorIG9jbC1pY2QtZGV2ZWwKKyBvcGVuY2wyLWhl YWRlcnMKKyBwY3JlMi1kZXZlbAorIHByb2otZGV2ZWwKKyBweXRob24zLWRldmVsCisgc3FsaXRl LWRldmVsCisgbGlia21sLWRldmVsCisgcG9zdGdyZXNxbC1saWJzLWRldmVsIgogc2hvcnRfZGVz Yz0iR2Vvc3BhdGlhbCBEYXRhIEFic3RyYWN0aW9uIExpYnJhcnkiCiBtYWludGFpbmVyPSJPcnBo YW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTUlUIgotaG9tZXBhZ2U9Imh0 dHA6Ly93d3cuZ2RhbC5vcmcvIgotZGlzdGZpbGVzPSJodHRwOi8vZG93bmxvYWQub3NnZW8ub3Jn L2dkYWwvJHt2ZXJzaW9ufS9nZGFsLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NTU2OWE0 ZGFhMWFiY2JiYTQ3YTlkNTM1MTcyZmMzMzUxOTRkOTIxNGZkYjk2Y2QwZjEzOWJiNTczMjlhZTI3 Nwotc3VicGFja2FnZXM9ImxpYmdkYWwtZGV2ZWwgbGliZ2RhbC10b29scyIKK2hvbWVwYWdlPSJo dHRwczovL2dkYWwub3JnLyIKK2Rpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL09TR2VvL2dk YWwvcmVsZWFzZXMvZG93bmxvYWQvdiR7dmVyc2lvbn0vZ2RhbC0ke3ZlcnNpb259LnRhci5neiIK K2NoZWNrc3VtPWUzNjAzODdiYzI1ZWMyNDk0MGY0NmFmYmVhZGE0ODAwMmQ3MmM3NGFhZjllY2Nm MmE0MGU4ZDc0ZTcxMWEyZTQKK3N1YnBhY2thZ2VzPSJweXRob24zLWdkYWwgbGliZ2RhbC1kZXZl bCBsaWJnZGFsLXRvb2xzIgorCitidWlsZF9vcHRpb25zPSJrbWwgcG9zdGdyZXNxbCIKK2J1aWxk X29wdGlvbnNfZGVmYXVsdD0ia21sIgogCiBpZiBbIC16ICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4K IAltYWtlZGVwZW5kcys9IiBoZGY1LWRldmVsIgogZmkKK0NGTEFHUz0iLXB0aHJlYWQgLUkke1hC UFNfQ1JPU1NfQkFTRX0vJHtweTNfaW5jfSIKK0xERkxBR1M9Ii1MJHtYQlBTX0NST1NTX0JBU0V9 LyR7cHkzX2xpYn0iCisKK3Bvc3RfYnVpbGQoKSB7CisJaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0 aGVuCisJCWV4cG9ydCBQWVBSRUZJWD0iJFhCUFNfQ1JPU1NfQkFTRSIKKwkJZXhwb3J0IFBZVEhP TlBBVEg9JHtYQlBTX0NST1NTX0JBU0V9LyR7cHkzX2xpYn0KKwkJZm9yIGYgaW4gJHtYQlBTX0NS T1NTX0JBU0V9LyR7cHkzX2xpYn0vX3N5c2NvbmZpZ2RhdGFfKjsgZG8KKwkJCWY9JHtmIyMqL30K KwkJCWV4cG9ydCBfUFlUSE9OX1NZU0NPTkZJR0RBVEFfTkFNRT0ke2YlLnB5fQorCQlkb25lCisJ ZmkKKwlleHBvcnQgTERTSEFSRUQ9IiR7Q0N9ICRDRkxBR1MgLXNoYXJlZCAkTERGTEFHUyIKKwor CXJtIC1mIHN3aWcvcHl0aG9uLypfd3JhcC5jcHAKKwltYWtlIC1DIHN3aWcvcHl0aG9uIGdlbmVy YXRlCisJY2Qgc3dpZy9weXRob24KKwlweXRob24zIHNldHVwLnB5IGJ1aWxkCit9CiAKIHBvc3Rf aW5zdGFsbCgpIHsKIAl2aW5zdGFsbCBnZGFsLnBjIDY0NCB1c3IvbGliL3BrZ2NvbmZpZwogCXZs aWNlbnNlIExJQ0VOU0UuVFhUCisJaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCisJCWV4cG9y dCBQWVBSRUZJWD0iJFhCUFNfQ1JPU1NfQkFTRSIKKwkJZXhwb3J0IFBZVEhPTlBBVEg9JHtYQlBT X0NST1NTX0JBU0V9LyR7cHkzX2xpYn0KKwkJZm9yIGYgaW4gJHtYQlBTX0NST1NTX0JBU0V9LyR7 cHkzX2xpYn0vX3N5c2NvbmZpZ2RhdGFfKjsgZG8KKwkJCWY9JHtmIyMqL30KKwkJCWV4cG9ydCBf UFlUSE9OX1NZU0NPTkZJR0RBVEFfTkFNRT0ke2YlLnB5fQorCQlkb25lCisJZmkKKwlleHBvcnQg TERTSEFSRUQ9IiR7Q0N9ICRDRkxBR1MgLXNoYXJlZCAkTERGTEFHUyIKKworCWNkIHN3aWcvcHl0 aG9uCisJcHl0aG9uMyBzZXR1cC5weSBpbnN0YWxsIC0tcHJlZml4PS91c3IgLS1yb290PSRERVNU RElSCiB9CiAKIGxpYmdkYWwtdG9vbHNfcGFja2FnZSgpIHsKQEAgLTQ2LDMgKzExNiwxNCBAQCBs aWJnZGFsLWRldmVsX3BhY2thZ2UoKSB7CiAJCXZtb3ZlIHVzci9saWIvKi5zbwogCX0KIH0KKwor cHl0aG9uMy1nZGFsX3BhY2thZ2UoKSB7CisJZGVwZW5kcz0iJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNp b259XyR7cmV2aXNpb259IgorCXNob3J0X2Rlc2MrPSIgLSBQeXRob24zIGJpbmRpbmdzIgorCXBr Z19pbnN0YWxsKCkgeworCQl2bW92ZSAidXNyL2Jpbi8qLnB5IgorCQl2bW92ZSAidXNyL2xpYi9w eXRob24qIgorCQl2ZG9jIHN3aWcvcHl0aG9uL1JFQURNRS5yc3QKKwkJdm1rZGlyIHVzci9zaGFy ZS9weXRob24zLWdkYWwKKwl9Cit9CmRpZmYgLS1naXQgYS9zcmNwa2dzL3B5dGhvbjMtZ2RhbCBi L3NyY3BrZ3MvcHl0aG9uMy1nZGFsCm5ldyBmaWxlIG1vZGUgMTIwMDAwCmluZGV4IDAwMDAwMDAw MDAwMC4uMzc3ZDUwZGZjMmI4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9weXRob24zLWdk YWwKQEAgLTAsMCArMSBAQAorbGliZ2RhbApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKCkZy b20gMzQ0YTM1YzUzYzQ0OTc2YTk4MDEyMTgxY2Q1NjkzNDk4YWU5NDZiZSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogQXJqYW4gTW9zc2VsIDxhcmphbm1vc3NlbEBnbWFpbC5jb20+CkRh dGU6IFN1biwgMjcgSnVuIDIwMjEgMTk6MTY6MzQgKzAyMDAKU3ViamVjdDogW1BBVENIIDA2LzE3 XSBwb3N0Z2lzOiB1cGRhdGUgdG8gMy4xLjU7IHJlYnVpbGQgYWdhaW5zdCBsaWJnZGFsLTMuNC4x CiBhbmQgcHJvai03LjIuMQoKLS0tCiBzcmNwa2dzL3Bvc3RnaXMvdGVtcGxhdGUgfCA0ICsrLS0K IDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9wb3N0Z2lzL3RlbXBsYXRlIGIvc3JjcGtncy9wb3N0Z2lzL3RlbXBsYXRl CmluZGV4IGM4NzhkZTg5Y2ZjYi4uZjUyY2Q2NjU3OTg4IDEwMDY0NAotLS0gYS9zcmNwa2dzL3Bv c3RnaXMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9wb3N0Z2lzL3RlbXBsYXRlCkBAIC0xLDYgKzEs NiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncG9zdGdpcycKIHBrZ25hbWU9cG9zdGdpcwotdmVy c2lvbj0zLjEuNAordmVyc2lvbj0zLjEuNQogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Z251LWNv bmZpZ3VyZQogY29uZmlndXJlX2FyZ3M9Ii0td2l0aC1wcm9qZGlyPSR7WEJQU19DUk9TU19CQVNF fS91c3IKQEAgLTE5LDcgKzE5LDcgQEAgbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVw YWdlPSJodHRwczovL3Bvc3RnaXMubmV0LyIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9naXQub3NnZW8u b3JnL2dpdGVhL3Bvc3RnaXMvcG9zdGdpcy9yYXcvdGFnLyR7dmVyc2lvbn0vTkVXUyIKIGRpc3Rm aWxlcz0iaHR0cHM6Ly9kb3dubG9hZC5vc2dlby5vcmcvcG9zdGdpcy9zb3VyY2UvcG9zdGdpcy0k e3ZlcnNpb259LnRhci5neiIKLWNoZWNrc3VtPWRjOGUzZmU4YmM1MzJlNDIyZjVkNzI0YzVhN2M0 MzdmNjU1NTUxMTcxNmY2NDEwZDRkMmRiOTc2MmUxYTM3OTYKK2NoZWNrc3VtPWZjYjEwZDliNDk5 ZmQ3OTM5OWJkOGRiOTBmMGIzMTM4MzdkMDAyMjNkMzAwODBkYWM0MDM0MTllMDY3ZTRjMDYKIG5v Y3Jvc3M9IkZJWE1FOiBDYW5ub3QgcnVuIHRlc3QgcHJvZ3JhbSB0byBkZXRlcm1pbmUgUFJPSiB2 ZXJzaW9uIgogCiBwcmVfY29uZmlndXJlKCkgewoKRnJvbSAyMmMyNjU4MDg1OGUwNDFmYzZkMDk3 MjZlZjI1NGQyNzhiMTc2Y2FkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBcmphbiBN b3NzZWwgPGFyamFubW9zc2VsQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAxNCBGZWIgMjAyMiAxMzoy Mjo1OSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDcvMTddIHBvc3RnaXMtcG9zdGdyZXNxbDEzOiB1 cGRhdGUgdG8gMy4xLjU7IHJlYnVpbGQgYWdhaW5zdAogbGliZ2RhbCBhbmQgcHJvagoKbGliZ2Rh bC0zLjQuMQpwcm9qLTcuMi4xCi0tLQogc3JjcGtncy9wb3N0Z2lzLXBvc3RncmVzcWwxMy90ZW1w bGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcG9zdGdpcy1wb3N0Z3Jlc3FsMTMvdGVtcGxh dGUgYi9zcmNwa2dzL3Bvc3RnaXMtcG9zdGdyZXNxbDEzL3RlbXBsYXRlCmluZGV4IDcwNmM4ZmI5 NjgxMC4uYTBmNWM4OWVmNGRhIDEwMDY0NAotLS0gYS9zcmNwa2dzL3Bvc3RnaXMtcG9zdGdyZXNx bDEzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcG9zdGdpcy1wb3N0Z3Jlc3FsMTMvdGVtcGxhdGUK QEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdwb3N0Z2lzLXBvc3RncmVzcWwx MycKIHBrZ25hbWU9cG9zdGdpcy1wb3N0Z3Jlc3FsMTMKLXZlcnNpb249My4xLjQKLXJldmlzaW9u PTIKK3ZlcnNpb249My4xLjUKK3JldmlzaW9uPTEKIHdya3NyYz0icG9zdGdpcy0ke3ZlcnNpb259 IgogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogY29uZmlndXJlX2FyZ3M9IgpAQCAtMjAsNyAr MjAsNyBAQCBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vcG9z dGdpcy5uZXQvIgogY2hhbmdlbG9nPSJodHRwczovL2dpdC5vc2dlby5vcmcvZ2l0ZWEvcG9zdGdp cy9wb3N0Z2lzL3Jhdy90YWcvJHt2ZXJzaW9ufS9ORVdTIgogZGlzdGZpbGVzPSJodHRwczovL2Rv d25sb2FkLm9zZ2VvLm9yZy9wb3N0Z2lzL3NvdXJjZS9wb3N0Z2lzLSR7dmVyc2lvbn0udGFyLmd6 IgotY2hlY2tzdW09ZGM4ZTNmZThiYzUzMmU0MjJmNWQ3MjRjNWE3YzQzN2Y2NTU1NTExNzE2ZjY0 MTBkNGQyZGI5NzYyZTFhMzc5NgorY2hlY2tzdW09ZmNiMTBkOWI0OTlmZDc5Mzk5YmQ4ZGI5MGYw YjMxMzgzN2QwMDIyM2QzMDA4MGRhYzQwMzQxOWUwNjdlNGMwNgogbm9jcm9zcz0iRklYTUU6IENh bm5vdCBydW4gdGVzdCBwcm9ncmFtIHRvIGRldGVybWluZSBQUk9KIHZlcnNpb24iCiAKIHByZV9j b25maWd1cmUoKSB7CgpGcm9tIDY4OGE4NTIyMDYwOWY1N2IwZjNlYzI4NDc4MDRlNzM4ZWU4NmY2 NmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFyamFuIE1vc3NlbCA8YXJqYW5tb3Nz ZWxAZ21haWwuY29tPgpEYXRlOiBNb24sIDE0IEZlYiAyMDIyIDEzOjI2OjU5ICswMTAwClN1Ympl Y3Q6IFtQQVRDSCAwOC8xN10gcG9zdGdpcy1wb3N0Z3Jlc3FsMTQ6IHVwZGF0ZSB0byAzLjEuNTsg cmVidWlsZCBhZ2FpbnN0CiBsaWJnZGFsIGFuZCBwcm9qCgpsaWJnZGFsLTMuNC4xCnByb2otNy4y LjEKLS0tCiBzcmNwa2dzL3Bvc3RnaXMtcG9zdGdyZXNxbDE0L3RlbXBsYXRlIHwgNCArKy0tCiAx IGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvcG9zdGdpcy1wb3N0Z3Jlc3FsMTQvdGVtcGxhdGUgYi9zcmNwa2dzL3Bvc3Rn aXMtcG9zdGdyZXNxbDE0L3RlbXBsYXRlCmluZGV4IDZjZTQyMzFiMTcyNi4uYWQ4ZDBjNWM0MjUz IDEwMDY0NAotLS0gYS9zcmNwa2dzL3Bvc3RnaXMtcG9zdGdyZXNxbDE0L3RlbXBsYXRlCisrKyBi L3NyY3BrZ3MvcG9zdGdpcy1wb3N0Z3Jlc3FsMTQvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdwb3N0Z2lzLXBvc3RncmVzcWwxNCcKIHBrZ25hbWU9cG9zdGdp cy1wb3N0Z3Jlc3FsMTQKLXZlcnNpb249My4xLjQKK3ZlcnNpb249My4xLjUKIHJldmlzaW9uPTEK IHdya3NyYz0icG9zdGdpcy0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQpA QCAtMjAsNyArMjAsNyBAQCBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0 dHBzOi8vcG9zdGdpcy5uZXQvIgogY2hhbmdlbG9nPSJodHRwczovL2dpdC5vc2dlby5vcmcvZ2l0 ZWEvcG9zdGdpcy9wb3N0Z2lzL3Jhdy90YWcvJHt2ZXJzaW9ufS9ORVdTIgogZGlzdGZpbGVzPSJo dHRwczovL2Rvd25sb2FkLm9zZ2VvLm9yZy9wb3N0Z2lzL3NvdXJjZS9wb3N0Z2lzLSR7dmVyc2lv bn0udGFyLmd6IgotY2hlY2tzdW09ZGM4ZTNmZThiYzUzMmU0MjJmNWQ3MjRjNWE3YzQzN2Y2NTU1 NTExNzE2ZjY0MTBkNGQyZGI5NzYyZTFhMzc5NgorY2hlY2tzdW09ZmNiMTBkOWI0OTlmZDc5Mzk5 YmQ4ZGI5MGYwYjMxMzgzN2QwMDIyM2QzMDA4MGRhYzQwMzQxOWUwNjdlNGMwNgogbm9jcm9zcz0i RklYTUU6IENhbm5vdCBydW4gdGVzdCBwcm9ncmFtIHRvIGRldGVybWluZSBQUk9KIHZlcnNpb24i CiAKIHByZV9jb25maWd1cmUoKSB7CgpGcm9tIGIzOGVjY2E2M2FhOTgyZjczMTZlZDkzZjIzMjk1 MDE3NzFjMDRkZGYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFyamFuIE1vc3NlbCA8 YXJqYW5tb3NzZWxAZ21haWwuY29tPgpEYXRlOiBNb24sIDkgQXVnIDIwMjEgMTk6NTM6MTcgKzAy MDAKU3ViamVjdDogW1BBVENIIDA5LzE3XSB3eFB5dGhvbjQ6IGJhY2twb3J0IHBhdGNoZXMsIGFu ZCBmaXggdGVzdHMKCkJhY2twb3J0ZWQgcGF0Y2hlczoKLSB3eFBzZXVkb0RDIEdJTAotIFB5dGhv biAzLjEwIEFHVyBGbGF0Tm90ZWJvb2sgcGF0Y2gKLSBQeXRob24gMy4xMCBTY3JvbGxlZFdpbmRv dyBhcmd1bWVudCB0eXBlcwotIFB5dGhvbiAzLjEwIEludGVnZXIgZGl2aXNpb24KLSB3eC5XaW5k b3dJRCBhbmQgd3guUmVnaW9uIGFyZ3VtZW50cwotLS0KIC4uLi9wYXRjaGVzLzAwMDItUHl0aG9u LTMuMTAtaXNzdWVzLnBhdGNoICAgICB8IDMzMTcgKysrKysrKysrKysrKysrKysKIC4uLi8wMDAz LVB5dGhvbi0zLjEwLUFHVy1GbGF0Tm90ZWJvb2sucGF0Y2ggICB8ICAgNTcgKwogLi4uL3BhdGNo ZXMvcmVzdG9yZS1naWwtcHNldWRvZGMucGF0Y2ggICAgICAgIHwgICA1MiArCiBzcmNwa2dzL3d4 UHl0aG9uNC90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgfCAgICAzICstCiA0IGZpbGVzIGNo YW5nZWQsIDM0MjggaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3Mvd3hQeXRob240L3BhdGNoZXMvMDAwMi1QeXRob24tMy4xMC1pc3N1ZXMucGF0 Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3d4UHl0aG9uNC9wYXRjaGVzLzAwMDMtUHl0 aG9uLTMuMTAtQUdXLUZsYXROb3RlYm9vay5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3Mvd3hQeXRob240L3BhdGNoZXMvcmVzdG9yZS1naWwtcHNldWRvZGMucGF0Y2gKCmRpZmYgLS1n aXQgYS9zcmNwa2dzL3d4UHl0aG9uNC9wYXRjaGVzLzAwMDItUHl0aG9uLTMuMTAtaXNzdWVzLnBh dGNoIGIvc3JjcGtncy93eFB5dGhvbjQvcGF0Y2hlcy8wMDAyLVB5dGhvbi0zLjEwLWlzc3Vlcy5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjZjODdmZjk2N2Qw MQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvd3hQeXRob240L3BhdGNoZXMvMDAwMi1QeXRo b24tMy4xMC1pc3N1ZXMucGF0Y2gKQEAgLTAsMCArMSwzMzE3IEBACitGcm9tIGY1NWExN2MyZDNi MzM2YzgyZmI0NGY3ODE2ZWM2MzIxOTg0N2Y0Y2MgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitG cm9tOiBTY290dCBUYWxiZXJ0IDxzd3RAdGVjaGllLm5ldD4KK0RhdGU6IERlYyAyMiAyMDIxIDIw OjIzOjU0ICswMDAwCitTdWJqZWN0OiBGaXggYSBidW5jaCBvZiBQeXRob24gMy4xMCBpc3N1ZXMK KworCistLS0KKworZGlmZiAtLWdpdCBhLzBkNDQ5NjI2ZDZkMjk4YWQ5NmViZDFkNTE0ZDBlNDI4 MzNiY2U0NzAucGF0Y2ggYi8wZDQ0OTYyNmQ2ZDI5OGFkOTZlYmQxZDUxNGQwZTQyODMzYmNlNDcw LnBhdGNoCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uZDJjY2RkYworLS0t IC9kZXYvbnVsbAorKysrIGIvMGQ0NDk2MjZkNmQyOThhZDk2ZWJkMWQ1MTRkMGU0MjgzM2JjZTQ3 MC5wYXRjaAorQEAgLTAsMCArMSwyMiBAQAorK0Zyb20gMGQ0NDk2MjZkNmQyOThhZDk2ZWJkMWQ1 MTRkMGU0MjgzM2JjZTQ3MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKKytGcm9tOiBDYXJvbGlu YSBGZWhlciBkYSBTaWx2YSA8Y2Fyb2xmc3VAZ21haWwuY29tPgorK0RhdGU6IFR1ZSwgMTYgTm92 IDIwMjEgMDE6MjQ6MzEgKzAwMDAKKytTdWJqZWN0OiBbUEFUQ0hdIEZpeGVkIGludGVnZXIgZGl2 aXNpb24gaW4gUHl0aG9uIDMKKysKKystLS0KKysgd3gvbGliL3N0YXR0ZXh0LnB5IHwgMiArLQor KyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKKysKKytkaWZm IC0tZ2l0IGEvd3gvbGliL3N0YXR0ZXh0LnB5IGIvd3gvbGliL3N0YXR0ZXh0LnB5CisraW5kZXgg MmNmYjZlNjVhLi5lNjA2ZTVhODkgMTAwNjQ0CisrLS0tIGEvd3gvbGliL3N0YXR0ZXh0LnB5Cisr KysrIGIvd3gvbGliL3N0YXR0ZXh0LnB5CisrQEAgLTMwMiw3ICszMDIsNyBAQCBkZWYgT25QYWlu dChzZWxmLCBldmVudCk6CisrICAgICAgICAgICAgIGlmIHN0eWxlICYgd3guQUxJR05fUklHSFQ6 CisrICAgICAgICAgICAgICAgICB4ID0gd2lkdGggLSB3CisrICAgICAgICAgICAgIGlmIHN0eWxl ICYgd3guQUxJR05fQ0VOVEVSOgorKy0gICAgICAgICAgICAgICAgeCA9ICh3aWR0aCAtIHcpLzIK KysrICAgICAgICAgICAgICAgIHggPSAod2lkdGggLSB3KS8vMgorKyAgICAgICAgICAgICBkYy5E cmF3VGV4dChsaW5lLCB4LCB5KQorKyAgICAgICAgICAgICB5ICs9IGgKKysgCitkaWZmIC0tZ2l0 IGEvM2ViOWViMzJkYzMyODU0MzUwMzlmNmM0MjBjMzk4NjY1MzcyYTFhZC5wYXRjaCBiLzNlYjll YjMyZGMzMjg1NDM1MDM5ZjZjNDIwYzM5ODY2NTM3MmExYWQucGF0Y2gKK25ldyBmaWxlIG1vZGUg MTAwNjQ0CitpbmRleCAwMDAwMDAwLi4wOGU1OGEwCistLS0gL2Rldi9udWxsCisrKysgYi8zZWI5 ZWIzMmRjMzI4NTQzNTAzOWY2YzQyMGMzOTg2NjUzNzJhMWFkLnBhdGNoCitAQCAtMCwwICsxLDg0 IEBACisrRnJvbSAzZWI5ZWIzMmRjMzI4NTQzNTAzOWY2YzQyMGMzOTg2NjUzNzJhMWFkIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQorK0Zyb206IEdsZW4gV2hpdG5leSA8Z2xlbkBzdHVkaW9pbmZp bml0eS5vcmc+CisrRGF0ZTogVHVlLCAzMSBBdWcgMjAyMSAxMTowNjoyNyAtMDcwMAorK1N1Ympl Y3Q6IFtQQVRDSF0gZml4OiBDb3JyZWN0IHR5cGVzIG9mIGFyZ3VtZW50cyB0bworKyBTY3JvbGxl ZFdpbmRvdy5TZXRTY3JvbGxiYXJzCisrCisrLS0tCisrIGRlbW8vTWFzay5weSAgICAgICAgICAg ICAgICAgICB8ICAyICstCisrIGRlbW8vT0dMLnB5ICAgICAgICAgICAgICAgICAgICB8ICAyICst CisrIHd4L2xpYi9hZ3cvdWx0aW1hdGVsaXN0Y3RybC5weSB8IDE0ICsrKysrKystLS0tLS0tCisr IDMgZmlsZXMgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQorKworK2Rp ZmYgLS1naXQgYS9kZW1vL01hc2sucHkgYi9kZW1vL01hc2sucHkKKytpbmRleCA1ZjBjMmNkZGUu LjEwOWI4ZjMwYiAxMDA2NDQKKystLS0gYS9kZW1vL01hc2sucHkKKysrKysgYi9kZW1vL01hc2su cHkKKytAQCAtNTYsNyArNTYsNyBAQCBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50KToKKysgICAg ICAgICBtYXNrID0gd3guTWFzayhzZWxmLmJtcF93aXRoY29sb3VybWFzaywgd3guV0hJVEUpCisr ICAgICAgICAgc2VsZi5ibXBfd2l0aGNvbG91cm1hc2suU2V0TWFzayhtYXNrKQorKyAKKystICAg ICAgICBzZWxmLlNldFNjcm9sbGJhcnMoMjAsIDIwLCA3MDAvMjAsIDQ2MC8yMCkKKysrICAgICAg ICBzZWxmLlNldFNjcm9sbGJhcnMoMjAsIDIwLCA3MDAvLzIwLCA0NjAvLzIwKQorKyAKKysgICAg ICAgICBzZWxmLkJpbmQod3guRVZUX1BBSU5ULCBzZWxmLk9uUGFpbnQpCisrIAorK2RpZmYgLS1n aXQgYS9kZW1vL09HTC5weSBiL2RlbW8vT0dMLnB5CisraW5kZXggNzJjYTU0M2RkLi5kNDc1ZTUw MTEgMTAwNjQ0CisrLS0tIGEvZGVtby9PR0wucHkKKysrKysgYi9kZW1vL09HTC5weQorK0BAIC0y NzIsNyArMjcyLDcgQEAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCwgbG9nLCBmcmFtZSk6Cisr IAorKyAgICAgICAgIG1heFdpZHRoICA9IDEwMDAKKysgICAgICAgICBtYXhIZWlnaHQgPSAxMDAw CisrLSAgICAgICAgc2VsZi5TZXRTY3JvbGxiYXJzKDIwLCAyMCwgbWF4V2lkdGgvMjAsIG1heEhl aWdodC8yMCkKKysrICAgICAgICBzZWxmLlNldFNjcm9sbGJhcnMoMjAsIDIwLCBtYXhXaWR0aC8v MjAsIG1heEhlaWdodC8vMjApCisrIAorKyAgICAgICAgIHNlbGYubG9nID0gbG9nCisrICAgICAg ICAgc2VsZi5mcmFtZSA9IGZyYW1lCisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hZ3cvdWx0aW1hdGVs aXN0Y3RybC5weSBiL3d4L2xpYi9hZ3cvdWx0aW1hdGVsaXN0Y3RybC5weQorK2luZGV4IGM2MDg2 NzY4NC4uMTRmYzQxZjg2IDEwMDY0NAorKy0tLSBhL3d4L2xpYi9hZ3cvdWx0aW1hdGVsaXN0Y3Ry bC5weQorKysrKyBiL3d4L2xpYi9hZ3cvdWx0aW1hdGVsaXN0Y3RybC5weQorK0BAIC05NjU0LDgg Kzk2NTQsOCBAQCBkZWYgUmVjYWxjdWxhdGVQb3NpdGlvbnMoc2VsZiwgbm9SZWZyZXNoPUZhbHNl KToKKysgICAgICAgICAgICAgICAgIHNlbGYuX2xpbmVzUGVyUGFnZSA9IGNsaWVudEhlaWdodC8v bGluZUhlaWdodAorKyAKKysgICAgICAgICAgICAgICAgIHNlbGYuU2V0U2Nyb2xsYmFycyhTQ1JP TExfVU5JVF9YLCBsaW5lSGVpZ2h0LAorKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChzZWxmLkdldEhlYWRlcldpZHRoKCktZGVjcmVtZW50KS9TQ1JPTExfVU5JVF9YLAorKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbnRpcmVIZWlnaHQgKyBsaW5lSGVp Z2h0IC0gMSkvbGluZUhlaWdodCwKKysrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoc2VsZi5HZXRIZWFkZXJXaWR0aCgpLWRlY3JlbWVudCkvL1NDUk9MTF9VTklUX1gsCisrKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVudGlyZUhlaWdodCArIGxpbmVIZWln aHQgLSAxKS8vbGluZUhlaWdodCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLkdldFNjcm9sbFBvcyh3eC5IT1JJWk9OVEFMKSwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLkdldFNjcm9sbFBvcyh3eC5WRVJUSUNBTCksCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJ1ZSkKKytAQCAtOTY3Niw4ICs5Njc2LDgg QEAgZGVmIFJlY2FsY3VsYXRlUG9zaXRpb25zKHNlbGYsIG5vUmVmcmVzaD1GYWxzZSk6CisrICAg ICAgICAgICAgICAgICAgICAgZGVjcmVtZW50ID0gU0NST0xMX1VOSVRfWAorKyAKKysgICAgICAg ICAgICAgICAgIHNlbGYuU2V0U2Nyb2xsYmFycyhTQ1JPTExfVU5JVF9YLCBTQ1JPTExfVU5JVF9Z LAorKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxmLkdldEhlYWRlcldp ZHRoKCktZGVjcmVtZW50KS9TQ1JPTExfVU5JVF9YLAorKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChlbnRpcmVIZWlnaHQgKyBTQ1JPTExfVU5JVF9ZIC0gMSkvU0NST0xMX1VO SVRfWSwKKysrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5HZXRIZWFk ZXJXaWR0aCgpLWRlY3JlbWVudCkvL1NDUk9MTF9VTklUX1gsCisrKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGVudGlyZUhlaWdodCArIFNDUk9MTF9VTklUX1kgLSAxKS8vU0NS T0xMX1VOSVRfWSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLkdl dFNjcm9sbFBvcyh3eC5IT1JJWk9OVEFMKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLkdldFNjcm9sbFBvcyh3eC5WRVJUSUNBTCksCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgVHJ1ZSkKKytAQCAtOTcyOCw4ICs5NzI4LDggQEAgZGVmIFJl Y2FsY3VsYXRlUG9zaXRpb25zKHNlbGYsIG5vUmVmcmVzaD1GYWxzZSk6CisrICAgICAgICAgICAg ICAgICAgICAgICAgIGxpbmUuX2dpLkV4dGVuZFdpZHRoKHdpZHRoTWF4KQorKyAKKysgICAgICAg ICAgICAgICAgIHNlbGYuU2V0U2Nyb2xsYmFycyhTQ1JPTExfVU5JVF9YLCBsaW5lSGVpZ2h0LAor Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh4ICsgU0NST0xMX1VOSVRfWCkv U0NST0xMX1VOSVRfWCwKKystICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeSAr IGxpbmVIZWlnaHQpL2xpbmVIZWlnaHQsCisrKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKHggKyBTQ1JPTExfVU5JVF9YKS8vU0NST0xMX1VOSVRfWCwKKysrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoeSArIGxpbmVIZWlnaHQpLy9saW5lSGVpZ2h0LAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuR2V0U2Nyb2xsUG9zKHd4LkhP UklaT05UQUwpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuR2V0 U2Nyb2xsUG9zKHd4LlZFUlRJQ0FMKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBUcnVlKQorK0BAIC05Nzk3LDcgKzk3OTcsNyBAQCBkZWYgUmVjYWxjdWxhdGVQb3NpdGlv bnMoc2VsZiwgbm9SZWZyZXNoPUZhbHNlKToKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGJyZWFrICAjIEV2ZXJ5dGhpbmcgZml0cywgbm8gc2Vjb25kIHRyeSByZXF1aXJlZC4KKysgCisr ICAgICAgICAgICAgICAgICBzZWxmLlNldFNjcm9sbGJhcnMoU0NST0xMX1VOSVRfWCwgbGluZUhl aWdodCwKKystICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW50aXJlV2lkdGgg KyBTQ1JPTExfVU5JVF9YKS9TQ1JPTExfVU5JVF9YLAorKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChlbnRpcmVXaWR0aCArIFNDUk9MTF9VTklUX1gpLy9TQ1JPTExfVU5JVF9Y LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5HZXRTY3JvbGxQb3Mod3guSE9SSVpPTlRBTCks CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKK2RpZmYgLS1naXQgYS85 MDk2NDI2NjAzMjcyNjcyZDlhNjc2ZThiY2RjYWRmMGExY2ZhMWEyLnBhdGNoIGIvOTA5NjQyNjYw MzI3MjY3MmQ5YTY3NmU4YmNkY2FkZjBhMWNmYTFhMi5wYXRjaAorbmV3IGZpbGUgbW9kZSAxMDA2 NDQKK2luZGV4IDAwMDAwMDAuLmYwYjlmNWQKKy0tLSAvZGV2L251bGwKKysrKyBiLzkwOTY0MjY2 MDMyNzI2NzJkOWE2NzZlOGJjZGNhZGYwYTFjZmExYTIucGF0Y2gKK0BAIC0wLDAgKzEsMTQzIEBA CisrRnJvbSA5MDk2NDI2NjAzMjcyNjcyZDlhNjc2ZThiY2RjYWRmMGExY2ZhMWEyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQorK0Zyb206IFJvYmluIER1bm4gPHJvYmluQGFsbGR1bm4uY29tPgor K0RhdGU6IFdlZCwgMjYgRmViIDIwMjAgMTE6MTA6MjcgLTA4MDAKKytTdWJqZWN0OiBbUEFUQ0hd IEFkZCBfX2luZGV4X18gdG8gd3guV2luZG93SUQsIGFuZCBfX2Jvb2xfXyB0byB3eC5SZWdpb24K KysKKystLS0KKysgZXRnL3JlZ2lvbi5weSAgICAgICAgICAgICAgfCAgNSArKystLQorKyBldGcv d2luZG93aWQucHkgICAgICAgICAgICB8IDMyICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0t LS0tCisrIHVuaXR0ZXN0cy90ZXN0X3dpbmRvd2lkLnB5IHwgMjMgKysrKysrKysrKysrKysrKysr KysrLS0KKysgMyBmaWxlcyBjaGFuZ2VkLCA0MSBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMo LSkKKysKKytkaWZmIC0tZ2l0IGEvZXRnL3JlZ2lvbi5weSBiL2V0Zy9yZWdpb24ucHkKKytpbmRl eCAwOTgyYzFmZTUuLmQ1YmM0NTc1OSAxMDA2NDQKKystLS0gYS9ldGcvcmVnaW9uLnB5CisrKysr IGIvZXRnL3JlZ2lvbi5weQorK0BAIC04OCwxMSArODgsMTIgQEAgZGVmIG5leHQoc2VsZik6Cisr ICAgICBjLm11c3RIYXZlQXBwKCkKKysgICAgIGMuZmluZCgnb3BlcmF0b3IrKycpLmlnbm9yZSgp CisrIAorKy0gICAgIyBTSVAgbWFwcyBvcGVyYXRvciBib29sKCkgdG8gX19pbnRfXywgYnV0IENs YXNzaWMgdXNlZCBfX25vbnplcm9fXy4gRG9lcworKy0gICAgIyBpdCBtYWtlIGFueSBkaWZmZXJl bmNlIGVpdGhlciB3YXk/CisrICAgICBjLmZpbmQoJ29wZXJhdG9yIGJvb2wnKS5pZ25vcmUoKQor KyAgICAgYy5hZGRDcHBNZXRob2QoJ2ludCcsICdfX25vbnplcm9fXycsICcoKScsICdyZXR1cm4g KGludClzZWxmLT5vcGVyYXRvciBib29sKCk7JywKKysgICAgICAgICAgICAgICAgICAgICdSZXR1 cm5zIHRydWUgd2hpbGUgdGhlcmUgYXJlIHN0aWxsIHJlY3RhbmdsZXMgYXZhaWxhYmxlIGluIHRo ZSBpdGVyYXRpb24uJykKKysrICAgIGMuYWRkQ3BwTWV0aG9kKCdpbnQnLCAnX19ib29sX18nLCAn KCknLCAncmV0dXJuIChpbnQpc2VsZi0+b3BlcmF0b3IgYm9vbCgpOycsCisrKyAgICAgICAgICAg ICAgICAgICAnUmV0dXJucyB0cnVlIHdoaWxlIHRoZXJlIGFyZSBzdGlsbCByZWN0YW5nbGVzIGF2 YWlsYWJsZSBpbiB0aGUgaXRlcmF0aW9uLicpCisrKworKyAKKysgICAgIGMuYWRkQ3BwTWV0aG9k KCd2b2lkJywgJ05leHQnLCAnKCknLCAnc2VsZi0+b3BlcmF0b3IrKygpOycsCisrICAgICAgICAg ICAgICAgICAgICAnTW92ZSB0aGUgaXRlcmF0b3IgdG8gdGhlIG5leHQgcmVjdGFuZ2xlIGluIHRo ZSByZWdpb24uJykKKytkaWZmIC0tZ2l0IGEvZXRnL3dpbmRvd2lkLnB5IGIvZXRnL3dpbmRvd2lk LnB5CisraW5kZXggMjdiMDQxYjNkLi5kYTJlZDM5NWUgMTAwNjQ0CisrLS0tIGEvZXRnL3dpbmRv d2lkLnB5CisrKysrIGIvZXRnL3dpbmRvd2lkLnB5CisrQEAgLTUzLDEyICs1MywxMiBAQCBkZWYg cnVuKCk6CisrICAgICAgICAgICAgICAgICBNZXRob2REZWYobmFtZT0nd3hXaW5kb3dJRFJlZics IGNsYXNzTmFtZT0nd3hXaW5kb3dJRFJlZicsIGlzQ3Rvcj1UcnVlLAorKyAgICAgICAgICAgICAg ICAgICAgIGJyaWVmRG9jPSdDcmVhdGUgcmVmZXJlbmNlIGZyb20gYW4gSUQnLAorKyAgICAgICAg ICAgICAgICAgICAgIGl0ZW1zPVsgUGFyYW1EZWYodHlwZT0naW50JywgbmFtZT0naWQnKSBdKSwK KystICAgICAgICAgICAgICAgIAorKysKKysgICAgICAgICAgICAgICAgIE1ldGhvZERlZihuYW1l PSd3eFdpbmRvd0lEUmVmJywgY2xhc3NOYW1lPSd3eFdpbmRvd0lEUmVmJywgaXNDdG9yPVRydWUs CisrICAgICAgICAgICAgICAgICAgICAgYnJpZWZEb2M9J0NvcHkgYW4gSUQgcmVmZXJlbmNlJywK KysgICAgICAgICAgICAgICAgICAgICBpdGVtcz1bIFBhcmFtRGVmKHR5cGU9J2NvbnN0IHd4V2lu ZG93SURSZWYmJywgbmFtZT0naWRyZWYnKSBdKSwKKysgICAgICAgICAgICAgICAgIF0pLAorKy0g ICAgICAgICAgICAKKysrCisrICAgICAgICAgICAgIE1ldGhvZERlZihuYW1lPSd+d3hXaW5kb3dJ RFJlZicsIGNsYXNzTmFtZT0nd3hXaW5kb3dJRFJlZicsIGlzRHRvcj1UcnVlKSwKKysgCisrICAg ICAgICAgICAgIE1ldGhvZERlZih0eXBlPSdpbnQnLCBuYW1lPSdHZXRWYWx1ZScsCisrQEAgLTcz LDExICs3MywxMyBAQCBkZWYgcnVuKCk6CisrICAgICAgICAgICAgICIiIikKKysgCisrICAgICBr bGFzcy5hZGRDcHBNZXRob2QoJ2ludCcsICdfX2ludF9fJywgJygpJywKKystICAgICAgICBkb2M9 IkFsaWFzIGZvciBHZXRWYWx1ZSBhbGxvd2luZyB0aGUgSURSZWYgdG8gYmUgcGFzc2VkIGFzIHRo ZSBXaW5kb3dJRCBwYXJhbWV0ZXIgd2hlbiBjcmVhdGluZyB3aWRnZXRzIG9yIGV0Yy4iLAorKy0g ICAgICAgIGJvZHk9IiIiXAorKy0gICAgICAgICAgICByZXR1cm4gc2VsZi0+R2V0VmFsdWUoKTsK KystICAgICAgICAgICAgIiIiKQorKy0gICAgCisrKyAgICAgICAgZG9jPSJBbGlhcyBmb3IgR2V0 VmFsdWUgYWxsb3dpbmcgdGhlIElEUmVmIHRvIGJlIHBhc3NlZCBhcyB0aGUgV2luZG93SUQgcGFy YW1ldGVyIHdoZW4gY3JlYXRpbmcgd2lkZ2V0cyBvciBvdGhlciBwbGFjZXMgYW4gaW50ZWdlciB0 eXBlIGlzIG5lZWRlZC4iLAorKysgICAgICAgIGJvZHk9InJldHVybiBzZWxmLT5HZXRWYWx1ZSgp OyIpCisrKyAgICBrbGFzcy5hZGRDcHBNZXRob2QoJ2ludCcsICdfX2luZGV4X18nLCAnKCknLAor KysgICAgICAgIGRvYz0iU2VlIDptZXRoOmBfX2ludF9fYCIsCisrKyAgICAgICAgYm9keT0icmV0 dXJuIHNlbGYtPkdldFZhbHVlKCk7IikKKysrCisrKworKyAgICAga2xhc3MuYWRkQ3BwTWV0aG9k KCdib29sJywgJ19fZXFfXycsICcod3hXaW5kb3dJRCBpZCknLCAicmV0dXJuIHNlbGYtPkdldFZh bHVlKCkgPT0gaWQ7IikKKysgICAgIGtsYXNzLmFkZENwcE1ldGhvZCgnYm9vbCcsICdfX25lX18n LCAnKHd4V2luZG93SUQgaWQpJywgInJldHVybiBzZWxmLT5HZXRWYWx1ZSgpICE9IGlkOyIpCisr ICAgICBrbGFzcy5hZGRDcHBNZXRob2QoJ2Jvb2wnLCAnX19sdF9fJywgJyh3eFdpbmRvd0lEIGlk KScsICJyZXR1cm4gc2VsZi0+R2V0VmFsdWUoKSA8IGlkOyIpCisrQEAgLTkyLDE3ICs5NCwxNyBA QCBkZWYgcnVuKCk6CisrICAgICAjIGFuZCBmaW5pc2ggaXQgdXAgYnkgYWRkaW5nIGl0IHRvIHRo ZSBtb2R1bGUKKysgICAgIG1vZHVsZS5hZGRJdGVtKGtsYXNzKQorKyAKKystICAgICMgTm93LCBs ZXQncyBhZGQgYSBuZXcgUHl0aG9uIGZ1bmN0aW9uIHRvIHRoZSBnbG9iYWwgc2NvcGUgdGhhdCBy ZXNlcnZlcyBhbiAKKystICAgICMgSUQgKG9yIHJhbmdlKSBhbmQgcmV0dXJucyBhIHJlZiBvYmpl Y3QgZm9yIGl0LiAKKystICAgIG1vZHVsZS5hZGRQeUZ1bmN0aW9uKCdOZXdJZFJlZicsICcoY291 bnQ9MSknLCAKKysrICAgICMgTm93LCBsZXQncyBhZGQgYSBuZXcgUHl0aG9uIGZ1bmN0aW9uIHRv IHRoZSBnbG9iYWwgc2NvcGUgdGhhdCByZXNlcnZlcyBhbgorKysgICAgIyBJRCAob3IgcmFuZ2Up IGFuZCByZXR1cm5zIGEgcmVmIG9iamVjdCBmb3IgaXQuCisrKyAgICBtb2R1bGUuYWRkUHlGdW5j dGlvbignTmV3SWRSZWYnLCAnKGNvdW50PTEpJywKKysgICAgICAgICBkb2M9IiIiXAorKy0gICAg ICAgICAgICBSZXNlcnZlcyBhIG5ldyBXaW5kb3cgSUQgKG9yIHJhbmdlIG9mIFdpbmRvd0lEcykg YW5kIHJldHVybnMgYSAKKystICAgICAgICAgICAgOmNsYXNzOmB3eC5XaW5kb3dJRFJlZmAgb2Jq ZWN0IChvciBsaXN0IG9mIHRoZW0pIHRoYXQgd2lsbCBoZWxwIAorKysgICAgICAgICAgICBSZXNl cnZlcyBhIG5ldyBXaW5kb3cgSUQgKG9yIHJhbmdlIG9mIFdpbmRvd0lEcykgYW5kIHJldHVybnMg YQorKysgICAgICAgICAgICA6Y2xhc3M6YHd4LldpbmRvd0lEUmVmYCBvYmplY3QgKG9yIGxpc3Qg b2YgdGhlbSkgdGhhdCB3aWxsIGhlbHAKKysgICAgICAgICAgICAgbWFuYWdlIHRoZSByZXNlcnZh dGlvbiBvZiB0aGF0IElELgorKyAKKystICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBpcyBpbnRl bmRlZCB0byBiZSBhIGRyb3AtaW4gcmVwbGFjZW1lbnQgb2YgdGhlIG9sZCAKKystICAgICAgICAg ICAgYW5kIGRlcHJlY2F0ZWQgOmZ1bmM6YHd4Lk5ld0lkYCBmdW5jdGlvbiwgd2l0aCB0aGUgYWRk ZWQgYmVuZWZpdCAKKystICAgICAgICAgICAgdGhhdCB0aGUgSUQgc2hvdWxkIG5ldmVyIGNvbmZs aWN0IHdpdGggYW4gaW4tdXNlIElEIG9yIG90aGVyIElEcyAKKysrICAgICAgICAgICAgVGhpcyBm dW5jdGlvbiBpcyBpbnRlbmRlZCB0byBiZSBhIGRyb3AtaW4gcmVwbGFjZW1lbnQgb2YgdGhlIG9s ZAorKysgICAgICAgICAgICBhbmQgZGVwcmVjYXRlZCA6ZnVuYzpgd3guTmV3SWRgIGZ1bmN0aW9u LCB3aXRoIHRoZSBhZGRlZCBiZW5lZml0CisrKyAgICAgICAgICAgIHRoYXQgdGhlIElEIHNob3Vs ZCBuZXZlciBjb25mbGljdCB3aXRoIGFuIGluLXVzZSBJRCBvciBvdGhlciBJRHMKKysgICAgICAg ICAgICAgZ2VuZXJhdGVkIGJ5IHRoaXMgZnVuY3Rpb24uCisrICAgICAgICAgICAgICIiIiwKKysg ICAgICAgICBib2R5PSIiIlwKKytkaWZmIC0tZ2l0IGEvdW5pdHRlc3RzL3Rlc3Rfd2luZG93aWQu cHkgYi91bml0dGVzdHMvdGVzdF93aW5kb3dpZC5weQorK2luZGV4IDQ1OTNlNWE2OS4uZmMzNmM5 ZWI4IDEwMDY0NAorKy0tLSBhL3VuaXR0ZXN0cy90ZXN0X3dpbmRvd2lkLnB5CisrKysrIGIvdW5p dHRlc3RzL3Rlc3Rfd2luZG93aWQucHkKKytAQCAtMzEsOSArMzEsOSBAQCBkZWYgdGVzdF9uZXdJ ZFJlZjAyKHNlbGYpOgorKyAgICAgZGVmIHRlc3RfbmV3SWRSZWYwMyhzZWxmKToKKysgICAgICAg ICAiIiJDaGVjayB0aGF0IEF1dG8gSUQgTWFuYWdlbWVudCBpcyBlbmFibGVkICgtLWVuYWJsZS1h dXRvaWRtYW4pIiIiCisrICAgICAgICAgIyBUaGlzIHRlc3QgaXMgZXhwZWN0ZWQgdG8gZmFpbCBp ZiBhdXRvSUQgbWFuZ2FnZW1lbnQgaXMgdHVybmVkIG9uCisrLSAgICAgICAgIyBiZWNhdXNlIGEg cmVmZXJlbmNlIHRvIHRoZSBJRCBpcyBub3QgYmVpbmcgc2F2ZWQsIHNvIGl0IHdpbGwgYmUgCisr KyAgICAgICAgIyBiZWNhdXNlIGEgcmVmZXJlbmNlIHRvIHRoZSBJRCBpcyBub3QgYmVpbmcgc2F2 ZWQsIHNvIGl0IHdpbGwgYmUKKysgICAgICAgICAjIHVucmVzZXJ2ZWQgd2hlbiB0aGUgZmlyc3Qg d2lkZ2V0IGlzIGRlc3Ryb3llZC4KKystICAgICAgICAKKysrCisrICAgICAgICAgaWQgPSB3eC5X aW5kb3cuTmV3Q29udHJvbElkKCkKKysgICAgICAgICBiID0gd3guQnV0dG9uKHNlbGYuZnJhbWUs IGlkLCAnYnV0dG9uJykKKysgICAgICAgICBiLkRlc3Ryb3koKQorK0BAIC03NSw2ICs3NSw3IEBA IGRlZiB0ZXN0X1dpbmRvd0lEUmVmMDEoc2VsZik6CisrICAgICAgICAgdmFsID0gcmVmMSA8PSBy ZWYyCisrICAgICAgICAgYXNzZXJ0IHR5cGUodmFsKSA9PSBib29sCisrIAorKysKKysgICAgIGRl ZiB0ZXN0X1dpbmRvd0lEUmVmMDIoc2VsZik6CisrICAgICAgICAgZCA9IHt3eC5OZXdJZFJlZigp OiAnb25lJywKKysgICAgICAgICAgICAgIHd4Lk5ld0lkUmVmKCk6ICd0d28nfQorK0BAIC04Miw2 ICs4MywyNCBAQCBkZWYgdGVzdF9XaW5kb3dJRFJlZjAyKHNlbGYpOgorKyAgICAgICAgIGZvciBr IGluIGtleXM6CisrICAgICAgICAgICAgIHZhbCA9IGRba10KKysgCisrKworKysgICAgZGVmIHRl c3RfV2luZG93SURSZWYwMyhzZWxmKToKKysrICAgICAgICAjIEVuc3VyZSB3eC5XaW5kb3dJRFJl ZiBjYW4gYmUgY29udmVydGVkIHRvIGludCB3aXRob3V0IHdhcm5pbmcgd2hlbgorKysgICAgICAg ICMgbWFraW5nIGEgY2FsbCB0byB3YXJycGVkIG1ldGhvZC4gSW4gUHkzLjgrIHRoaXMgbWVhbnMg dGhlcmUgbmVlZHMgdG8KKysrICAgICAgICAjIGJlIGFuIF9faW5kZXhfXyBtZXRob2QuCisrKwor KysgICAgICAgICMgVHVybiB3YXJuaW5ncyBpbnRvIGV4Y2VwdGlvbnMgc28gdGhpcyB0ZXN0IHdp bGwgZmFpbCBpZiB0aGVyZSBpcworKysgICAgICAgICMgYSB3YXJuaW5nCisrKyAgICAgICAgaW1w b3J0IHdhcm5pbmdzCisrKyAgICAgICAgd2FybmluZ3Muc2ltcGxlZmlsdGVyKCdlcnJvcicpCisr KworKysgICAgICAgIHdpZCA9IHd4Lk5ld0lkUmVmKCkKKysrICAgICAgICBhc3NlcnQgaXNpbnN0 YW5jZSh3aWQsIHd4LldpbmRvd0lEUmVmKQorKysKKysrICAgICAgICBiID0gd3guQnV0dG9uKHNl bGYuZnJhbWUsIHdpZCwgJ2J1dHRvbicpCisrKyAgICAgICAgYXNzZXJ0IGIuR2V0SWQoKSA9PSB3 aWQuR2V0SWQoKQorKysKKysrCisrICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysgCisrIAorIAorZGlm ZiAtLWdpdCBhL3B5dGhvbjMuMTAtZml4ZXMucGF0Y2ggYi9weXRob24zLjEwLWZpeGVzLnBhdGNo CituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uMjllOGM2MQorLS0tIC9kZXYv bnVsbAorKysrIGIvcHl0aG9uMy4xMC1maXhlcy5wYXRjaAorQEAgLTAsMCArMSwzMDM0IEBACisr RnJvbSAxNzNkMDc5NjgxMGJiNjVkZTliZGZkYzY5NDFkMjRhMDQ2MjhmNmMyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQorK0Zyb206IFNjb3R0IFRhbGJlcnQgPHN3dEB0ZWNoaWUubmV0PgorK0Rh dGU6IFdlZCwgMSBEZWMgMjAyMSAxNDoxOTowMCAtMDUwMAorK1N1YmplY3Q6IFtQQVRDSF0gRml4 IGEgYnVuY2ggb2YgUHl0aG9uIDMuMTAgaXNzdWVzIHdpdGggcHVyZS1QeXRob24gY2xhc3Nlcwor KyBhbmQgZGVtb3MKKysKKytJbiBQeXRob24gMy4xMCwgYSBjaGFuZ2VbMV0gd2FzIGltcGxlbWVu dGVkIHdoZXJlIGV4dGVuc2lvbiBmdW5jdGlvbnMKKyt0aGF0IHRha2UgaW50ZWdlciBhcmd1bWVu dHMgd2lsbCBubyBsb25nZXIgc2lsZW50bHkgYWNjZXB0IG5vbi1pbnRlZ2VyCisrYXJndW1lbnRz IChlLmcuLCBmbG9hdHMpIHRoYXQgY2FuIG9ubHkgYmUgY29udmVydGVkIHRvIGludGVnZXJzIHdp dGggYQorK2xvc3Mgb2YgcHJlY2lzaW9uLiAgVGhpcyBQUiBmaXhlcyBtb3N0IG9mIHRoZXNlIGlz c3VlcyBpbiB0aGUgcHVyZS1QeXRob24KKytjbGFzc2VzIGFuZCBkZW1vcyBieSBleHBsaWNpdGx5 IGNvbnZlcnRpbmcgdGhlIHBhcmFtZXRlcnMgdG8gaW50IGJlZm9yZQorK3Bhc3NpbmcgdGhlbSB0 byB3eFdpZGdldHMuICBUaGVyZSBpcyBsb3NzIG9mIHByZWNpc2lvbiwgYnV0IHRoaXMgd2FzCisr aGFwcGVuaW5nIGJlZm9yZSAoYXV0b21hdGljYWxseSkgYW55d2F5IGFzIG1vc3Qgd3hXaWRnZXRz IERldmljZUNvbnRleHQKKytmdW5jdGlvbnMgb3BlcmF0ZSB1c2luZyBpbnRlZ2Vycy4KKysKKytB ZGRpdGlvbmFsbHksIHRoZSBQUiBmaXhlcyBhIGZldyBzaXppbmcgaXNzdWVzLCBtb3N0bHkgd2l0 aCBTcGluQ3RybHMgYmVpbmcKKyt0b28gc21hbGwgb24gR1RLMy4KKysKKytUaGlzIGlzIGFuIGV4 YW1wbGUgb2YgdGhlIHJlbGV2YW50IGV4Y2VwdGlvbjoKKytUcmFjZWJhY2sgKG1vc3QgcmVjZW50 IGNhbGwgbGFzdCk6CisrICBGaWxlICIvdXNyL2xpYjY0L3B5dGhvbjMuMTAvc2l0ZS1wYWNrYWdl cy93eC9saWIvYWd3L3B5Z2F1Z2UucHkiLCBsaW5lIDM1NSwgaW4gT25QYWludAorKyAgICByLndp ZHRoID0gdworK1R5cGVFcnJvcjogJ2Zsb2F0JyBvYmplY3QgY2Fubm90IGJlIGludGVycHJldGVk IGFzIGFuIGludGVnZXIKKysKKytGaXhlcyAjMjAzOC4KKysKKytbMV0gaHR0cHM6Ly9idWdzLnB5 dGhvbi5vcmcvaXNzdWUzNzk5OQorKy0tLQorKyBkZW1vL0dyaWRMYWJlbFJlbmRlcmVyLnB5ICAg ICAgICAgICAgICAgfCAgIDQgKy0KKysgZGVtby9NYXNrLnB5ICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICA0ICstCisrIGRlbW8vT3ZlcmxheS5weSAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgMSAtCisrIGRlbW8vUGVuQW5kQnJ1c2hTdHlsZXMucHkgICAgICAgICAgICAgICB8ICAg MiArLQorKyBkZW1vL1BvcHVwV2luZG93LnB5ICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0K KysgZGVtby9QcmludEZyYW1ld29yay5weSAgICAgICAgICAgICAgICAgIHwgICAyICstCisrIGRl bW8vUHJvcGVydHlHcmlkLnB5ICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQorKyBkZW1vL1Np emVycy5weSAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KKysgZGVtby9VSUFjdGlv blNpbXVsYXRvci5weSAgICAgICAgICAgICAgIHwgICAyICstCisrIGRlbW8vYWd3L0FVSS5weSAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAzMiArKystLS0tCisrIGRlbW8vYWd3L01hY0xhcmdl RGVtby5weSAgICAgICAgICAgICAgICB8ICAgNCArLQorKyBkZW1vL2Fndy9QZWFrTWV0ZXIucHkg ICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KKysgZGVtby9hZ3cvUGVyc2lzdGVudENvbnRyb2xz LnB5ICAgICAgICAgIHwgICAyICstCisrIGRlbW8vYWd3L1JpYmJvbkJhci5weSAgICAgICAgICAg ICAgICAgICB8ICAgMiArLQorKyBkZW1vL2Fndy9TcGVlZE1ldGVyLnB5ICAgICAgICAgICAgICAg ICAgfCAgIDIgKy0KKysgZGVtby9hZ3cvU3VwZXJUb29sVGlwLnB5ICAgICAgICAgICAgICAgIHwg ICAzICstCisrIGRlbW8vYWd3L1RodW1iRGVtb0NvbmZpZy5weSAgICAgICAgICAgICB8ICAgMSAr CisrIGRlbW8vYWd3L1VsdGltYXRlUmVwb3J0RGVtby5weSAgICAgICAgICB8ICAgOCArLQorKyBk ZW1vL2Fndy9XaW5kb3dzN0V4cGxvcmVyX0NvbnRlbnRzLnB5ICAgfCAgMTYgKystLQorKyBkZW1v L2Fndy9ab29tQmFyLnB5ICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KKysgd3gvbGliL2Fn dy9hZHZhbmNlZHNwbGFzaC5weSAgICAgICAgICAgIHwgICAyICstCisrIHd4L2xpYi9hZ3cvYXVp L2F1aV91dGlsaXRpZXMucHkgICAgICAgICB8ICAgNCArLQorKyB3eC9saWIvYWd3L2F1aS9hdWli b29rLnB5ICAgICAgICAgICAgICAgfCAgIDQgKy0KKysgd3gvbGliL2Fndy9iYWxsb29udGlwLnB5 ICAgICAgICAgICAgICAgIHwgICA0ICstCisrIHd4L2xpYi9hZ3cvZmxhdG1lbnUucHkgICAgICAg ICAgICAgICAgICB8ICA2MiArKysrKystLS0tLS0tCisrIHd4L2xpYi9hZ3cvZmxhdG5vdGVib29r LnB5ICAgICAgICAgICAgICB8ICAxMCArLS0KKysgd3gvbGliL2Fndy9mbG9hdHNwaW4ucHkgICAg ICAgICAgICAgICAgIHwgICAyICstCisrIHd4L2xpYi9hZ3cvZ3JhZGllbnRidXR0b24ucHkgICAg ICAgICAgICB8ICAgOCArLQorKyB3eC9saWIvYWd3L2h5cGVydHJlZWxpc3QucHkgICAgICAgICAg ICAgfCAgIDIgKy0KKysgd3gvbGliL2Fndy9rbm9iY3RybC5weSAgICAgICAgICAgICAgICAgIHwg IDEyICstLQorKyB3eC9saWIvYWd3L2xhYmVsYm9vay5weSAgICAgICAgICAgICAgICAgfCAgMzIg KysrLS0tLQorKyB3eC9saWIvYWd3L3BlYWttZXRlci5weSAgICAgICAgICAgICAgICAgfCAgIDIg Ky0KKysgd3gvbGliL2Fndy9weWdhdWdlLnB5ICAgICAgICAgICAgICAgICAgIHwgICA0ICstCisr IHd4L2xpYi9hZ3cvcmliYm9uL2FydF9hdWkucHkgICAgICAgICAgICB8ICAyMiArKy0tLQorKyB3 eC9saWIvYWd3L3JpYmJvbi9hcnRfaW50ZXJuYWwucHkgICAgICAgfCAgMTIgKy0tCisrIHd4L2xp Yi9hZ3cvcmliYm9uL2FydF9tc3cucHkgICAgICAgICAgICB8ICA4OCArKysrKysrKystLS0tLS0t LS0tCisrIHd4L2xpYi9hZ3cvcmliYm9uL2Jhci5weSAgICAgICAgICAgICAgICB8ICAgNCArLQor KyB3eC9saWIvYWd3L3JpYmJvbi9idXR0b25iYXIucHkgICAgICAgICAgfCAgIDYgKy0KKysgd3gv bGliL2Fndy9yaWJib24vZ2FsbGVyeS5weSAgICAgICAgICAgIHwgICA4ICstCisrIHd4L2xpYi9h Z3cvcmliYm9uL3BhbmVsLnB5ICAgICAgICAgICAgICB8ICAxNiArKy0tCisrIHd4L2xpYi9hZ3cv cmliYm9uL3Rvb2xiYXIucHkgICAgICAgICAgICB8ICAgMiArLQorKyB3eC9saWIvYWd3L3Njcm9s bGVkdGh1bWJuYWlsLnB5ICAgICAgICAgfCAgMjQgKysrLS0tCisrIHd4L2xpYi9hZ3cvc2hhcGVk YnV0dG9uLnB5ICAgICAgICAgICAgICB8ICAxMCArLS0KKysgd3gvbGliL2Fndy9zcGVlZG1ldGVy LnB5ICAgICAgICAgICAgICAgIHwgIDcyICsrKysrKysrKy0tLS0tLS0KKysgd3gvbGliL2Fndy9z dXBlcnRvb2x0aXAucHkgICAgICAgICAgICAgIHwgIDIwICsrLS0tCisrIHd4L2xpYi9hZ3cvdG9h c3RlcmJveC5weSAgICAgICAgICAgICAgICB8ICAgNCArLQorKyB3eC9saWIvYWd3L3VsdGltYXRl bGlzdGN0cmwucHkgICAgICAgICAgfCAgMjAgKystLS0KKysgd3gvbGliL2Fndy94bHNncmlkLnB5 ICAgICAgICAgICAgICAgICAgIHwgICA0ICstCisrIHd4L2xpYi9hZ3cvem9vbWJhci5weSAgICAg ICAgICAgICAgICAgICB8ICAxMCArLS0KKysgd3gvbGliL2FuYWxvZ2Nsb2NrL2FuYWxvZ2Nsb2Nr LnB5ICAgICAgIHwgICAyICstCisrIHd4L2xpYi9hbmFsb2djbG9jay9oZWxwZXJzLnB5ICAgICAg ICAgICB8ICAyMiArKy0tLQorKyB3eC9saWIvYW5hbG9nY2xvY2svc2V0dXAucHkgICAgICAgICAg ICAgfCAgIDYgKy0KKysgd3gvbGliL2J1dHRvbnMucHkgICAgICAgICAgICAgICAgICAgICAgIHwg IDEwICstLQorKyB3eC9saWIvY29sb3VyY2hvb3Nlci9weWNvbG91cmNob29zZXIucHkgfCAgIDQg Ky0KKysgd3gvbGliL2NvbG91cmNob29zZXIvcHlwYWxldHRlLnB5ICAgICAgIHwgICAyICstCisr IHd4L2xpYi9mbG9hdGNhbnZhcy9GQ09iamVjdHMucHkgICAgICAgICB8ICAgOCArLQorKyB3eC9s aWIvZ2l6bW9zL2xlZGN0cmwucHkgICAgICAgICAgICAgICAgfCAgIDggKy0KKysgd3gvbGliL2lt YWdlYnJvd3Nlci5weSAgICAgICAgICAgICAgICAgIHwgICA0ICstCisrIHd4L2xpYi9vZ2wvYmFz aWMucHkgICAgICAgICAgICAgICAgICAgICB8ICAxMCArLS0KKysgd3gvbGliL29nbC9ibXBzaGFw ZS5weSAgICAgICAgICAgICAgICAgIHwgICAyICstCisrIHd4L2xpYi9vZ2wvY29tcG9zaXQucHkg ICAgICAgICAgICAgICAgICB8ICAgNCArLQorKyB3eC9saWIvb2dsL2RpdmlkZWQucHkgICAgICAg ICAgICAgICAgICAgfCAgIDIgKy0KKysgd3gvbGliL29nbC9saW5lcy5weSAgICAgICAgICAgICAg ICAgICAgIHwgICAyICstCisrIHd4L2xpYi9vZ2wvb2dsbWlzYy5weSAgICAgICAgICAgICAgICAg ICB8ICAgNCArLQorKyB3eC9saWIvcGxvdC9leGFtcGxlcy9kZW1vLnB5ICAgICAgICAgICAgfCAg IDQgKy0KKysgd3gvbGliL3Bsb3QvcGxvdGNhbnZhcy5weSAgICAgICAgICAgICAgIHwgMTEwICsr KysrKysrKysrKy0tLS0tLS0tLS0tLQorKyB3eC9saWIvcGxvdC9wb2x5b2JqZWN0cy5weSAgICAg ICAgICAgICAgfCAgMjIgKysrLS0KKysgd3gvbGliL3BvcHVwY3RsLnB5ICAgICAgICAgICAgICAg ICAgICAgIHwgICAyICstCisrIHd4L2xpYi9zY3JvbGxlZHBhbmVsLnB5ICAgICAgICAgICAgICAg ICB8ICAgMiArLQorKyB3eC9saWIvdGhyb2JiZXIucHkgICAgICAgICAgICAgICAgICAgICAgfCAg IDYgKy0KKysgd3gvbGliL3RpY2tlci5weSAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICst CisrIDcxIGZpbGVzIGNoYW5nZWQsIDQxMSBpbnNlcnRpb25zKCspLCAzOTggZGVsZXRpb25zKC0p CisrCisrZGlmZiAtLWdpdCBhL2RlbW8vR3JpZExhYmVsUmVuZGVyZXIucHkgYi9kZW1vL0dyaWRM YWJlbFJlbmRlcmVyLnB5CisraW5kZXggNzk0ZGQ2NGU4Li4xNDQwZWY0MWIgMTAwNjQ0CisrLS0t IGEvZGVtby9HcmlkTGFiZWxSZW5kZXJlci5weQorKysrKyBiL2RlbW8vR3JpZExhYmVsUmVuZGVy ZXIucHkKKytAQCAtNDYsOCArNDYsOCBAQCBkZWYgX19pbml0X18oc2VsZik6CisrICAgICAgICAg c2VsZi5fYm1wID0gaW1hZ2VzLlNtaWxlcy5HZXRCaXRtYXAoKQorKyAKKysgICAgIGRlZiBEcmF3 KHNlbGYsIGdyaWQsIGRjLCByZWN0LCByYyk6CisrLSAgICAgICAgeCA9IHJlY3QubGVmdCArIChy ZWN0LndpZHRoIC0gc2VsZi5fYm1wLkdldFdpZHRoKCkpIC8gMgorKy0gICAgICAgIHkgPSByZWN0 LnRvcCArIChyZWN0LmhlaWdodCAtIHNlbGYuX2JtcC5HZXRIZWlnaHQoKSkgLyAyCisrKyAgICAg ICAgeCA9IHJlY3QubGVmdCArIChyZWN0LndpZHRoIC0gc2VsZi5fYm1wLkdldFdpZHRoKCkpIC8v IDIKKysrICAgICAgICB5ID0gcmVjdC50b3AgKyAocmVjdC5oZWlnaHQgLSBzZWxmLl9ibXAuR2V0 SGVpZ2h0KCkpIC8vIDIKKysgICAgICAgICBkYy5EcmF3Qml0bWFwKHNlbGYuX2JtcCwgeCwgeSwg VHJ1ZSkKKysgCisrIAorK2RpZmYgLS1naXQgYS9kZW1vL01hc2sucHkgYi9kZW1vL01hc2sucHkK KytpbmRleCAxMDliOGYzMGIuLmU5MjRmOTViOSAxMDA2NDQKKystLS0gYS9kZW1vL01hc2sucHkK KysrKysgYi9kZW1vL01hc2sucHkKKytAQCAtOTAsOSArOTAsOSBAQCBkZWYgT25QYWludCAoc2Vs ZiwgZSk6CisrIAorKyAgICAgICAgIGZvciB0ZXh0LCBjb2RlIGluIGxvZ2ljTGlzdDoKKysgICAg ICAgICAgICAgeCx5ID0gMTIwKzE1MCooaSU0KSwgMjArMTAwKihpLzQpCisrLSAgICAgICAgICAg IGRjLkRyYXdUZXh0KHRleHQsIHgsIHktMjApCisrKyAgICAgICAgICAgIGRjLkRyYXdUZXh0KHRl eHQsIHgsIGludCh5LTIwKSkKKysgICAgICAgICAgICAgbWRjLlNlbGVjdE9iamVjdChzZWxmLmJt cF93aXRoY29sb3VybWFzaykKKystICAgICAgICAgICAgZGMuQmxpdCh4LHksIGN4LGN5LCBtZGMs IDAsMCwgY29kZSwgVHJ1ZSkKKysrICAgICAgICAgICAgZGMuQmxpdCh4LGludCh5KSwgY3gsY3ks IG1kYywgMCwwLCBjb2RlLCBUcnVlKQorKyAgICAgICAgICAgICBpID0gaSArIDEKKysgCisrIAor K2RpZmYgLS1naXQgYS9kZW1vL092ZXJsYXkucHkgYi9kZW1vL092ZXJsYXkucHkKKytpbmRleCA2 NTE2NGNkODQuLmZhNjViZTAwMyAxMDA2NDQKKystLS0gYS9kZW1vL092ZXJsYXkucHkKKysrKysg Yi9kZW1vL092ZXJsYXkucHkKKytAQCAtNTYsNyArNTYsNiBAQCBkZWYgX19pbml0X18oc2VsZiwg cGFyZW50LCBsb2cpOgorKyAgICAgICAgIHNlbGYucGVuc3R5bGVzQ29tYm8uU2V0VG9vbFRpcCgn UGVuIFN0eWxlJykKKysgCisrICAgICAgICAgc2VsZi5vdmVybGF5UGVuV2lkdGggPSB3eC5TcGlu Q3RybChzZWxmLCAtMSwgdmFsdWU9JycsCisrLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzaXplPSg3NSwgLTEpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3R5bGU9d3guU1BfQVJST1dfS0VZUywKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbj0xLCBtYXg9MjQsIGluaXRpYWw9MSkK KysgICAgICAgICBzZWxmLm92ZXJsYXlQZW5XaWR0aC5TZXRUb29sVGlwKCdQZW4gV2lkdGgnKQor K2RpZmYgLS1naXQgYS9kZW1vL1BlbkFuZEJydXNoU3R5bGVzLnB5IGIvZGVtby9QZW5BbmRCcnVz aFN0eWxlcy5weQorK2luZGV4IDI0MDQwYjFmYy4uMTE4M2Y2ODRhIDEwMDY0NAorKy0tLSBhL2Rl bW8vUGVuQW5kQnJ1c2hTdHlsZXMucHkKKysrKysgYi9kZW1vL1BlbkFuZEJydXNoU3R5bGVzLnB5 CisrQEAgLTEwMCw3ICsxMDAsNyBAQCBkZWYgT25QYWludChzZWxmLCBldmVudCk6CisrIAorKyAg ICAgICAgIGRjLlNldFBlbihwZW4pCisrICAgICAgICAgeSA9IGxhYmVsSGVpZ2h0ICsgKGhlaWdo dCAtIGxhYmVsSGVpZ2h0KS8yCisrLSAgICAgICAgZGMuRHJhd0xpbmUoNSwgeSwgd2lkdGgtNSwg eSkKKysrICAgICAgICBkYy5EcmF3TGluZSg1LCBpbnQoeSksIHdpZHRoLTUsIGludCh5KSkKKysg CisrIAorKyBjbGFzcyBCcnVzaFBhbmVsKEJhc2VQYW5lbCk6CisrZGlmZiAtLWdpdCBhL2RlbW8v UG9wdXBXaW5kb3cucHkgYi9kZW1vL1BvcHVwV2luZG93LnB5CisraW5kZXggZDhlMTc1NTc2Li5i NTRiOTg3MGQgMTAwNjQ0CisrLS0tIGEvZGVtby9Qb3B1cFdpbmRvdy5weQorKysrKyBiL2RlbW8v UG9wdXBXaW5kb3cucHkKKytAQCAtODksNyArODksNyBAQCBkZWYgX19pbml0X18oc2VsZiwgcGFy ZW50LCBzdHlsZSwgbG9nKToKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAiKG9yIGl0cyBm aXJzdCBjaGlsZCkgbG9zZXMgZm9jdXMgaW4gXG4iCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgImFueSBvdGhlciB3YXkuIikKKysgICAgICAgICBidG4gPSB3eC5CdXR0b24ocGFuZWwsIC0x LCAiUHJlc3MgTWUiKQorKy0gICAgICAgIHNwaW4gPSB3eC5TcGluQ3RybChwYW5lbCwgLTEsICJI ZWxsbyIsIHNpemU9KDEwMCwtMSkpCisrKyAgICAgICAgc3BpbiA9IHd4LlNwaW5DdHJsKHBhbmVs LCAtMSwgIkhlbGxvIikKKysgICAgICAgICBidG4uQmluZCh3eC5FVlRfQlVUVE9OLCBzZWxmLk9u QnV0dG9uKQorKyAKKysgICAgICAgICBzaXplciA9IHd4LkJveFNpemVyKHd4LlZFUlRJQ0FMKQor K2RpZmYgLS1naXQgYS9kZW1vL1ByaW50RnJhbWV3b3JrLnB5IGIvZGVtby9QcmludEZyYW1ld29y ay5weQorK2luZGV4IGU3YTI5YTA3Ny4uZjA4NzNhZTk0IDEwMDY0NAorKy0tLSBhL2RlbW8vUHJp bnRGcmFtZXdvcmsucHkKKysrKysgYi9kZW1vL1ByaW50RnJhbWV3b3JrLnB5CisrQEAgLTgxLDcg KzgxLDcgQEAgZGVmIE9uUHJpbnRQYWdlKHNlbGYsIHBhZ2UpOgorKyAKKysgICAgICAgICAjLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyAgICAgICAgIHNlbGYu Y2FudmFzLkRvRHJhd2luZyhkYywgVHJ1ZSkKKystICAgICAgICBkYy5EcmF3VGV4dCgiUGFnZTog JWQiICUgcGFnZSwgbWFyZ2luWC8yLCBtYXhZLW1hcmdpblkpCisrKyAgICAgICAgZGMuRHJhd1Rl eHQoIlBhZ2U6ICVkIiAlIHBhZ2UsIG1hcmdpblgvLzIsIG1heFktbWFyZ2luWSkKKysgCisrICAg ICAgICAgcmV0dXJuIFRydWUKKysgCisrZGlmZiAtLWdpdCBhL2RlbW8vUHJvcGVydHlHcmlkLnB5 IGIvZGVtby9Qcm9wZXJ0eUdyaWQucHkKKytpbmRleCBjNTZlMDhiNjAuLmZiZWYyOWUzMSAxMDA2 NDQKKystLS0gYS9kZW1vL1Byb3BlcnR5R3JpZC5weQorKysrKyBiL2RlbW8vUHJvcGVydHlHcmlk LnB5CisrQEAgLTE1MCw3ICsxNTAsNyBAQCBkZWYgX0NvbnZlcnRWYWx1ZShzZWxmLCB2YWx1ZSk6 CisrICAgICAgICAgIiIiIFV0aWxpdHkgY29udmVydCBhcmJpdHJhcnkgdmFsdWUgdG8gYSByZWFs IHd4LlNpemUuCisrICAgICAgICAgIiIiCisrICAgICAgICAgaW1wb3J0IGNvbGxlY3Rpb25zCisr LSAgICAgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgY29sbGVjdGlvbnMuU2VxdWVuY2UpIG9yIGhh c2F0dHIodmFsdWUsICdfX2dldGl0ZW1fXycpOgorKysgICAgICAgIGlmIGlzaW5zdGFuY2UodmFs dWUsIGNvbGxlY3Rpb25zLmFiYy5TZXF1ZW5jZSkgb3IgaGFzYXR0cih2YWx1ZSwgJ19fZ2V0aXRl bV9fJyk6CisrICAgICAgICAgICAgIHZhbHVlID0gd3guU2l6ZSgqdmFsdWUpCisrICAgICAgICAg cmV0dXJuIHZhbHVlCisrIAorK2RpZmYgLS1naXQgYS9kZW1vL1NpemVycy5weSBiL2RlbW8vU2l6 ZXJzLnB5CisraW5kZXggNmFiYWJlZGU5Li5hMDI1MDUwZjEgMTAwNjQ0CisrLS0tIGEvZGVtby9T aXplcnMucHkKKysrKysgYi9kZW1vL1NpemVycy5weQorK0BAIC00NSw3ICs0NSw3IEBAIGRlZiBP blBhaW50KHNlbGYsIGV2dCk6CisrICAgICAgICAgZGMgPSB3eC5QYWludERDKHNlbGYpCisrICAg ICAgICAgdyxoID0gZGMuR2V0VGV4dEV4dGVudChzZWxmLnRleHQpCisrICAgICAgICAgZGMuQ2xl YXIoKQorKy0gICAgICAgIGRjLkRyYXdUZXh0KHNlbGYudGV4dCwgKHN6LndpZHRoLXcpLzIsIChz ei5oZWlnaHQtaCkvMikKKysrICAgICAgICBkYy5EcmF3VGV4dChzZWxmLnRleHQsIChzei53aWR0 aC13KS8vMiwgKHN6LmhlaWdodC1oKS8vMikKKysgCisrICAgICBkZWYgT25TaXplKHNlbGYsIGV2 dCk6CisrICAgICAgICAgc2VsZi5SZWZyZXNoKCkKKytkaWZmIC0tZ2l0IGEvZGVtby9VSUFjdGlv blNpbXVsYXRvci5weSBiL2RlbW8vVUlBY3Rpb25TaW11bGF0b3IucHkKKytpbmRleCBjYmJhMTRm NWMuLjBhNmZkMDIzNCAxMDA2NDQKKystLS0gYS9kZW1vL1VJQWN0aW9uU2ltdWxhdG9yLnB5Cisr KysrIGIvZGVtby9VSUFjdGlvblNpbXVsYXRvci5weQorK0BAIC04OCw3ICs4OCw3IEBAIGRlZiBf cGxheWJhY2tLZXkoc2VsZiwgZXZ0VHlwZSwga2V5LCBtb2RpZmllcnMpOgorKyAKKysgICAgIGRl ZiBfc2V0TmV4dEtleUV2ZW50KHNlbGYpOgorKyAgICAgICAgIGV2dFR5cGUsIGtleSwgbW9kaWZp ZXJzLCBtaWxsaSA9IHNlbGYuX3BsYXliYWNrRXZlbnRzLnBvcCgwKQorKy0gICAgICAgIG1pbGxp ID0gbWF4KG1pbGxpLzIsIDEpICMgcGxheSBiYWNrIGZhc3RlciB0aGFuIGl0IHdhcyByZWNvcmRl ZAorKysgICAgICAgIG1pbGxpID0gbWF4KG1pbGxpLy8yLCAxKSAjIHBsYXkgYmFjayBmYXN0ZXIg dGhhbiBpdCB3YXMgcmVjb3JkZWQKKysgICAgICAgICBwcmludChldnRUeXBlLCBrZXksIG1vZGlm aWVycywgbWlsbGkpCisrICAgICAgICAgd3guQ2FsbExhdGVyKG1pbGxpLCBzZWxmLl9wbGF5YmFj a0tleSwgZXZ0VHlwZSwga2V5LCBtb2RpZmllcnMpCisrIAorK2RpZmYgLS1naXQgYS9kZW1vL2Fn dy9BVUkucHkgYi9kZW1vL2Fndy9BVUkucHkKKytpbmRleCA3YzIxOTY4NjUuLmIzODMxM2M4NiAx MDA2NDQKKystLS0gYS9kZW1vL2Fndy9BVUkucHkKKysrKysgYi9kZW1vL2Fndy9BVUkucHkKKytA QCAtMzkzLDcgKzM5Myw3IEBAIGRlZiBPblBhaW50KHNlbGYsIGV2ZW50KToKKysgICAgICAgICBk Yy5TZXRQZW4od3guTElHSFRfR1JFWV9QRU4pCisrICAgICAgICAgZGMuRHJhd0xpbmUoMCwgMCwg c2l6ZS54LCBzaXplLnkpCisrICAgICAgICAgZGMuRHJhd0xpbmUoMCwgc2l6ZS55LCBzaXplLngs IDApCisrLSAgICAgICAgZGMuRHJhd1RleHQocywgKHNpemUueC13KS8yLCAoc2l6ZS55LWhlaWdo dCo1KS8yKQorKysgICAgICAgIGRjLkRyYXdUZXh0KHMsIChzaXplLngtdykvLzIsIChzaXplLnkt aGVpZ2h0KjUpLy8yKQorKyAKKysgICAgICAgICBpZiBzZWxmLl9tZ3I6CisrIAorK0BAIC00MDEs MTkgKzQwMSwxOSBAQCBkZWYgT25QYWludChzZWxmLCBldmVudCk6CisrIAorKyAgICAgICAgICAg ICBzID0gIkxheWVyOiAlZCIlcGkuZG9ja19sYXllcgorKyAgICAgICAgICAgICB3LCBoID0gZGMu R2V0VGV4dEV4dGVudChzKQorKy0gICAgICAgICAgICBkYy5EcmF3VGV4dChzLCAoc2l6ZS54LXcp LzIsICgoc2l6ZS55LShoZWlnaHQqNSkpLzIpKyhoZWlnaHQqMSkpCisrKyAgICAgICAgICAgIGRj LkRyYXdUZXh0KHMsIChzaXplLngtdykvLzIsICgoc2l6ZS55LShoZWlnaHQqNSkpLy8yKSsoaGVp Z2h0KjEpKQorKyAKKysgICAgICAgICAgICAgcyA9ICJEb2NrOiAlZCBSb3c6ICVkIiUocGkuZG9j a19kaXJlY3Rpb24sIHBpLmRvY2tfcm93KQorKyAgICAgICAgICAgICB3LCBoID0gZGMuR2V0VGV4 dEV4dGVudChzKQorKy0gICAgICAgICAgICBkYy5EcmF3VGV4dChzLCAoc2l6ZS54LXcpLzIsICgo c2l6ZS55LShoZWlnaHQqNSkpLzIpKyhoZWlnaHQqMikpCisrKyAgICAgICAgICAgIGRjLkRyYXdU ZXh0KHMsIChzaXplLngtdykvLzIsICgoc2l6ZS55LShoZWlnaHQqNSkpLy8yKSsoaGVpZ2h0KjIp KQorKyAKKysgICAgICAgICAgICAgcyA9ICJQb3NpdGlvbjogJWQiJXBpLmRvY2tfcG9zCisrICAg ICAgICAgICAgIHcsIGggPSBkYy5HZXRUZXh0RXh0ZW50KHMpCisrLSAgICAgICAgICAgIGRjLkRy YXdUZXh0KHMsIChzaXplLngtdykvMiwgKChzaXplLnktKGhlaWdodCo1KSkvMikrKGhlaWdodCoz KSkKKysrICAgICAgICAgICAgZGMuRHJhd1RleHQocywgKHNpemUueC13KS8vMiwgKChzaXplLnkt KGhlaWdodCo1KSkvLzIpKyhoZWlnaHQqMykpCisrIAorKyAgICAgICAgICAgICBzID0gIlByb3Bv cnRpb246ICVkIiVwaS5kb2NrX3Byb3BvcnRpb24KKysgICAgICAgICAgICAgdywgaCA9IGRjLkdl dFRleHRFeHRlbnQocykKKystICAgICAgICAgICAgZGMuRHJhd1RleHQocywgKHNpemUueC13KS8y LCAoKHNpemUueS0oaGVpZ2h0KjUpKS8yKSsoaGVpZ2h0KjQpKQorKysgICAgICAgICAgICBkYy5E cmF3VGV4dChzLCAoc2l6ZS54LXcpLy8yLCAoKHNpemUueS0oaGVpZ2h0KjUpKS8vMikrKGhlaWdo dCo0KSkKKysgCisrIAorKyAgICAgZGVmIE9uRXJhc2VCYWNrZ3JvdW5kKHNlbGYsIGV2ZW50KToK KytAQCAtNDM1LDcgKzQzNSw3IEBAIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJlbnQsIGZyYW1lKToK KysgCisrICAgICAgICAgczEgPSB3eC5Cb3hTaXplcih3eC5IT1JJWk9OVEFMKQorKyAgICAgICAg IHNlbGYuX2JvcmRlcl9zaXplID0gd3guU3BpbkN0cmwoc2VsZiwgSURfUGFuZUJvcmRlclNpemUs ICIlZCIlZnJhbWUuR2V0RG9ja0FydCgpLkdldE1ldHJpYyhhdWkuQVVJX0RPQ0tBUlRfUEFORV9C T1JERVJfU0laRSksCisrLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3 eC5EZWZhdWx0UG9zaXRpb24sIHd4LlNpemUoNTAsIDIwKSwgd3guU1BfQVJST1dfS0VZUywgMCwg MTAwLAorKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3guRGVmYXVs dFBvc2l0aW9uLCB3eC5EZWZhdWx0U2l6ZSwgd3guU1BfQVJST1dfS0VZUywgMCwgMTAwLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJhbWUuR2V0RG9ja0FydCgp LkdldE1ldHJpYyhhdWkuQVVJX0RPQ0tBUlRfUEFORV9CT1JERVJfU0laRSkpCisrICAgICAgICAg czEuQWRkKCgxLCAxKSwgMSwgd3guRVhQQU5EKQorKyAgICAgICAgIHMxLkFkZCh3eC5TdGF0aWNU ZXh0KHNlbGYsIC0xLCAiUGFuZSBCb3JkZXIgU2l6ZToiKSkKKytAQCAtNDQ1LDcgKzQ0NSw3IEBA IGRlZiBfX2luaXRfXyhzZWxmLCBwYXJlbnQsIGZyYW1lKToKKysgCisrICAgICAgICAgczIgPSB3 eC5Cb3hTaXplcih3eC5IT1JJWk9OVEFMKQorKyAgICAgICAgIHNlbGYuX3Nhc2hfc2l6ZSA9IHd4 LlNwaW5DdHJsKHNlbGYsIElEX1Nhc2hTaXplLCAiJWQiJWZyYW1lLkdldERvY2tBcnQoKS5HZXRN ZXRyaWMoYXVpLkFVSV9ET0NLQVJUX1NBU0hfU0laRSksIHd4LkRlZmF1bHRQb3NpdGlvbiwKKyst ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3eC5TaXplKDUwLCAyMCksIHd4 LlNQX0FSUk9XX0tFWVMsIDAsIDEwMCwgZnJhbWUuR2V0RG9ja0FydCgpLkdldE1ldHJpYyhhdWku QVVJX0RPQ0tBUlRfU0FTSF9TSVpFKSkKKysrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB3eC5EZWZhdWx0U2l6ZSwgd3guU1BfQVJST1dfS0VZUywgMCwgMTAwLCBmcmFtZS5H ZXREb2NrQXJ0KCkuR2V0TWV0cmljKGF1aS5BVUlfRE9DS0FSVF9TQVNIX1NJWkUpKQorKyAgICAg ICAgIHMyLkFkZCgoMSwgMSksIDEsIHd4LkVYUEFORCkKKysgICAgICAgICBzMi5BZGQod3guU3Rh dGljVGV4dChzZWxmLCAtMSwgIlNhc2ggU2l6ZToiKSkKKysgICAgICAgICBzMi5BZGQoc2VsZi5f c2FzaF9zaXplKQorK0BAIC00NTQsNyArNDU0LDcgQEAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVu dCwgZnJhbWUpOgorKyAKKysgICAgICAgICBzMyA9IHd4LkJveFNpemVyKHd4LkhPUklaT05UQUwp CisrICAgICAgICAgc2VsZi5fY2FwdGlvbl9zaXplID0gd3guU3BpbkN0cmwoc2VsZiwgSURfQ2Fw dGlvblNpemUsICIlZCIlZnJhbWUuR2V0RG9ja0FydCgpLkdldE1ldHJpYyhhdWkuQVVJX0RPQ0tB UlRfQ0FQVElPTl9TSVpFKSwKKystICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB3eC5EZWZhdWx0UG9zaXRpb24sIHd4LlNpemUoNTAsIDIwKSwgd3guU1BfQVJST1dfS0VZ UywgMCwgMTAwLCBmcmFtZS5HZXREb2NrQXJ0KCkuR2V0TWV0cmljKGF1aS5BVUlfRE9DS0FSVF9D QVBUSU9OX1NJWkUpKQorKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHd4LkRlZmF1bHRQb3NpdGlvbiwgd3guRGVmYXVsdFNpemUsIHd4LlNQX0FSUk9XX0tFWVMsIDAs IDEwMCwgZnJhbWUuR2V0RG9ja0FydCgpLkdldE1ldHJpYyhhdWkuQVVJX0RPQ0tBUlRfQ0FQVElP Tl9TSVpFKSkKKysgICAgICAgICBzMy5BZGQoKDEsIDEpLCAxLCB3eC5FWFBBTkQpCisrICAgICAg ICAgczMuQWRkKHd4LlN0YXRpY1RleHQoc2VsZiwgLTEsICJDYXB0aW9uIFNpemU6IikpCisrICAg ICAgICAgczMuQWRkKHNlbGYuX2NhcHRpb25fc2l6ZSkKKytAQCAtODA3LDkgKzgwNyw5IEBAIGRl ZiBMaWdodENvbG91cihzZWxmLCBjb2xvdXIsIHBlcmNlbnQpOgorKyAKKysgICAgICAgICAjIFdl IHRha2UgdGhlIHBlcmNlbnQgd2F5IG9mIHRoZSBjb2xvdXIgZnJvbSBjb2xvdXIgLT4gd2hpdGUK KysgICAgICAgICBpID0gcGVyY2VudAorKy0gICAgICAgIHIgPSBjb2xvdXIuUmVkKCkgKyAoKGkq cmQqMTAwKS9oaWdoKS8xMDAKKystICAgICAgICBnID0gY29sb3VyLkdyZWVuKCkgKyAoKGkqZ2Qq MTAwKS9oaWdoKS8xMDAKKystICAgICAgICBiID0gY29sb3VyLkJsdWUoKSArICgoaSpiZCoxMDAp L2hpZ2gpLzEwMAorKysgICAgICAgIHIgPSBjb2xvdXIuUmVkKCkgKyAoKGkqcmQqMTAwKS8vaGln aCkvLzEwMAorKysgICAgICAgIGcgPSBjb2xvdXIuR3JlZW4oKSArICgoaSpnZCoxMDApLy9oaWdo KS8vMTAwCisrKyAgICAgICAgYiA9IGNvbG91ci5CbHVlKCkgKyAoKGkqYmQqMTAwKS8vaGlnaCkv LzEwMAorKyAKKysgICAgICAgICByZXR1cm4gd3guQ29sb3VyKHIsIGcsIGIpCisrIAorK0BAIC04 MjYsMTAgKzgyNiwxMCBAQCBkZWYgRHJhd1Byb2dyZXNzKHNlbGYsIGRjLCB4c2l6ZSwgeXNpemUs IGluY3JlbWVudCk6CisrICAgICAgICAgeCwgeSwgd2lkdGgsIGhlaWdodCA9IGNsaWVudFJlY3QK KysgICAgICAgICB4LCB3aWR0aCA9IHNlbGYuX3BvcywgaW50ZXJ2YWwKKysgCisrLSAgICAgICAg Z3JhZGllbnRSZWN0LlNldEhlaWdodChncmFkaWVudFJlY3QuR2V0SGVpZ2h0KCkvMikKKysrICAg ICAgICBncmFkaWVudFJlY3QuU2V0SGVpZ2h0KGdyYWRpZW50UmVjdC5HZXRIZWlnaHQoKS8vMikK KysgICAgICAgICB0b3BTdGFydCwgdG9wRW5kID0gc2VsZi5fdG9wU3RhcnRDb2xvdXIsIHNlbGYu X3RvcEVuZENvbG91cgorKyAKKystICAgICAgICByYzEgPSB3eC5SZWN0KHgsIHksIHdpZHRoLCBo ZWlnaHQvMikKKysrICAgICAgICByYzEgPSB3eC5SZWN0KGludCh4KSwgeSwgaW50KHdpZHRoKSwg aGVpZ2h0Ly8yKQorKyAgICAgICAgIHBhdGgxID0gc2VsZi5HZXRQYXRoKGdjLCByYzEsIDgpCisr ICAgICAgICAgYnIxID0gZ2MuQ3JlYXRlTGluZWFyR3JhZGllbnRCcnVzaCh4LCB5LCB4LCB5K2hl aWdodC8yLCB0b3BTdGFydCwgdG9wRW5kKQorKyAgICAgICAgIGdjLlNldEJydXNoKGJyMSkKKytA QCAtODQ1LDE0ICs4NDUsMTQgQEAgZGVmIERyYXdQcm9ncmVzcyhzZWxmLCBkYywgeHNpemUsIHlz aXplLCBpbmNyZW1lbnQpOgorKyAKKysgICAgICAgICBib3R0b21TdGFydCwgYm90dG9tRW5kID0g c2VsZi5fYm90dG9tU3RhcnRDb2xvdXIsIHNlbGYuX2JvdHRvbUVuZENvbG91cgorKyAKKystICAg ICAgICByYzMgPSB3eC5SZWN0KHgsIHkraGVpZ2h0LzIsIHdpZHRoLCBoZWlnaHQvMikKKysrICAg ICAgICByYzMgPSB3eC5SZWN0KGludCh4KSwgeStoZWlnaHQvLzIsIGludCh3aWR0aCksIGhlaWdo dC8vMikKKysgICAgICAgICBwYXRoMyA9IHNlbGYuR2V0UGF0aChnYywgcmMzLCA4KQorKyAgICAg ICAgIGJyMyA9IGdjLkNyZWF0ZUxpbmVhckdyYWRpZW50QnJ1c2goeCwgeStoZWlnaHQvMiwgeCwg eStoZWlnaHQsIGJvdHRvbVN0YXJ0LCBib3R0b21FbmQpCisrICAgICAgICAgZ2MuU2V0QnJ1c2go YnIzKQorKyAgICAgICAgIGdjLkZpbGxQYXRoKHBhdGgzKSAjZHJhdyBtYWluCisrIAorKyAgICAg ICAgIHBhdGg0ID0gZ2MuQ3JlYXRlUGF0aCgpCisrLSAgICAgICAgcGF0aDQuQWRkUmVjdGFuZ2xl KHgsIHkraGVpZ2h0LzIsIHdpZHRoLCA4KQorKysgICAgICAgIHBhdGg0LkFkZFJlY3RhbmdsZSh4 LCB5K2hlaWdodC8vMiwgd2lkdGgsIDgpCisrICAgICAgICAgcGF0aDQuQ2xvc2VTdWJwYXRoKCkK KysgICAgICAgICBnYy5TZXRCcnVzaChicjMpCisrICAgICAgICAgZ2MuRmlsbFBhdGgocGF0aDQp CisrQEAgLTI2MTMsNyArMjYxMyw3IEBAIGRlZiBDcmVhdGVOb3RlYm9vayhzZWxmKToKKysgICAg ICAgICBmbGV4LkFkZCh3eC5UZXh0Q3RybChwYW5lbCwgLTEsICIiLCB3eC5EZWZhdWx0UG9zaXRp b24sIHd4LlNpemUoMTAwLCAtMSkpLAorKyAgICAgICAgICAgICAgICAgIDEsIHd4LkFMTHx3eC5B TElHTl9DRU5UUkUsIDUpCisrICAgICAgICAgZmxleC5BZGQod3guU3RhdGljVGV4dChwYW5lbCwg LTEsICJ3eFNwaW5DdHJsOiIpLCAwLCB3eC5BTEx8d3guQUxJR05fQ0VOVFJFLCA1KQorKy0gICAg ICAgIGZsZXguQWRkKHd4LlNwaW5DdHJsKHBhbmVsLCAtMSwgIjUiLCB3eC5EZWZhdWx0UG9zaXRp b24sIHd4LlNpemUoMTAwLCAtMSksCisrKyAgICAgICAgZmxleC5BZGQod3guU3BpbkN0cmwocGFu ZWwsIC0xLCAiNSIsIHd4LkRlZmF1bHRQb3NpdGlvbiwgd3guRGVmYXVsdFNpemUsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgd3guU1BfQVJST1dfS0VZUywgNSwgNTAsIDUpLCAwLCB3 eC5BTEx8d3guQUxJR05fQ0VOVFJFLCA1KQorKyAgICAgICAgIGZsZXguQWRkKCg1LCA1KSkKKysg ICAgICAgICBmbGV4LkFkZCgoNSwgNSkpCisrZGlmZiAtLWdpdCBhL2RlbW8vYWd3L01hY0xhcmdl RGVtby5weSBiL2RlbW8vYWd3L01hY0xhcmdlRGVtby5weQorK2luZGV4IDRkOTY3YTU0Ni4uYTVi OGEwZTI1IDEwMDY0NAorKy0tLSBhL2RlbW8vYWd3L01hY0xhcmdlRGVtby5weQorKysrKyBiL2Rl bW8vYWd3L01hY0xhcmdlRGVtby5weQorK0BAIC0yMjMsMTIgKzIyMywxMiBAQCBkZWYgRHJhd1By b2dyZXNzQmFyKHNlbGYsIGRjLCB4LCB5LCB3LCBoLCBwZXJjZW50KToKKysgICAgICAgICAgICAg bWRjLlNlbGVjdE9iamVjdCh3eC5OdWxsQml0bWFwKQorKyAKKysgICAgICAgICAjIENlbnRlciB0 aGUgcHJvZ3Jlc3MgYmFyIHZlcnRpY2FsbHkgaW4gdGhlIGJveCBzdXBwbGllZAorKy0gICAgICAg IHkgPSB5ICsgKGggLSBQSVBFX0hFSUdIVCkvMgorKysgICAgICAgIHkgPSB5ICsgKGggLSBQSVBF X0hFSUdIVCkvLzIKKysgCisrICAgICAgICAgaWYgcGVyY2VudCA9PSAwOgorKyAgICAgICAgICAg ICBtaWRkbGUgPSAwCisrICAgICAgICAgZWxzZToKKystICAgICAgICAgICAgbWlkZGxlID0gKHcg KiBwZXJjZW50KS8xMDAKKysrICAgICAgICAgICAgbWlkZGxlID0gaW50KCh3ICogcGVyY2VudCkv MTAwKQorKyAKKysgICAgICAgICBpZiB3IDwgMToKKysgICAgICAgICAgICAgcmV0dXJuCisrZGlm ZiAtLWdpdCBhL2RlbW8vYWd3L1BlYWtNZXRlci5weSBiL2RlbW8vYWd3L1BlYWtNZXRlci5weQor K2luZGV4IGE3YzlhNmY1MS4uZTlkYWI3MTE2IDEwMDY0NAorKy0tLSBhL2RlbW8vYWd3L1BlYWtN ZXRlci5weQorKysrKyBiL2RlbW8vYWd3L1BlYWtNZXRlci5weQorK0BAIC0xNDksMTAgKzE0OSwx MCBAQCBkZWYgT25GYWxsb2ZmKHNlbGYsIGV2ZW50KToKKysgCisrICAgICBkZWYgT25TdGFydChz ZWxmLCBldmVudCk6CisrIAorKy0gICAgICAgIHNlbGYudGltZXIuU3RhcnQoMTAwMC8yKSAgICAg ICAgIyAyIGZwcworKysgICAgICAgIHNlbGYudGltZXIuU3RhcnQoMTAwMC8vMikgICAgICAgICMg MiBmcHMKKysgCisrLSAgICAgICAgc2VsZi52ZXJ0UGVhay5TdGFydCgxMDAwLzE4KSAgICAgICAg IyAxOCBmcHMKKystICAgICAgICBzZWxmLmhvcnpQZWFrLlN0YXJ0KDEwMDAvMjApICAgICAgICAj IDIwIGZwcworKysgICAgICAgIHNlbGYudmVydFBlYWsuU3RhcnQoMTAwMC8vMTgpICAgICAgICAj IDE4IGZwcworKysgICAgICAgIHNlbGYuaG9yelBlYWsuU3RhcnQoMTAwMC8vMjApICAgICAgICAj IDIwIGZwcworKyAKKysgCisrICAgICBkZWYgT25TdG9wKHNlbGYsIGV2ZW50KToKKytkaWZmIC0t Z2l0IGEvZGVtby9hZ3cvUGVyc2lzdGVudENvbnRyb2xzLnB5IGIvZGVtby9hZ3cvUGVyc2lzdGVu dENvbnRyb2xzLnB5CisraW5kZXggZjE5Y2M0YTkxLi5jZjk3ZGQ5ZjAgMTAwNjQ0CisrLS0tIGEv ZGVtby9hZ3cvUGVyc2lzdGVudENvbnRyb2xzLnB5CisrKysrIGIvZGVtby9hZ3cvUGVyc2lzdGVu dENvbnRyb2xzLnB5CisrQEAgLTIzNCw3ICsyMzQsNyBAQCBkZWYgQnVpbGRQYW5lcyhzZWxmKToK KysgICAgICAgICBzaXplcl8xLkFkZChsYWJlbF8xLCAwLCB3eC5BTEwsIDUpCisrICAgICAgICAg c2l6ZXJfMS5BZGQoY29tYm8sIDAsIHd4LkxFRlR8d3guUklHSFQsIDUpCisrICAgICAgICAgc2l6 ZXJfMS5BZGQoKDIwLCAyMCksIDEpCisrLSAgICAgICAgYm94Mi5BZGQoc2l6ZXJfMSwgMSwgd3gu RVhQQU5EfHd4LkFMSUdOX0NFTlRFUiwgMCkKKysrICAgICAgICBib3gyLkFkZChzaXplcl8xLCAx LCB3eC5FWFBBTkQsIDApCisrICAgICAgICAgYm94Mi5BZGQoKDAsIDApLCAxLCAxKQorKyAKKysg ICAgICAgICBvdGhlclBhbmVsLlNldFNpemVyKGJveDIpCisrZGlmZiAtLWdpdCBhL2RlbW8vYWd3 L1JpYmJvbkJhci5weSBiL2RlbW8vYWd3L1JpYmJvbkJhci5weQorK2luZGV4IDcxMDNlOWQ4MS4u ZDI4YTJjNjZhIDEwMDY0NAorKy0tLSBhL2RlbW8vYWd3L1JpYmJvbkJhci5weQorKysrKyBiL2Rl bW8vYWd3L1JpYmJvbkJhci5weQorK0BAIC03OTksNyArNzk5LDcgQEAgZGVmIEFkZENvbG91clRv R2FsbGVyeShzZWxmLCBnYWxsZXJ5LCBjb2xvdXIsIGRjLCB2YWx1ZT1Ob25lKToKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGMuQmx1ZSgpICsgMTkyKSAlIDI1NikK KysgCisrICAgICAgICAgICAgIGRjLlNldFRleHRGb3JlZ3JvdW5kKGZvcmVncm91bmQpCisrLSAg ICAgICAgICAgIGRjLkRyYXdUZXh0KGNvbG91ciwgKGlXaWR0aCAtIHNpemUuR2V0V2lkdGgoKSAr IDEpIC8gMiwgKGlIZWlnaHQgLSBzaXplLkdldEhlaWdodCgpKSAvIDIpCisrKyAgICAgICAgICAg IGRjLkRyYXdUZXh0KGNvbG91ciwgKGlXaWR0aCAtIHNpemUuR2V0V2lkdGgoKSArIDEpIC8vIDIs IChpSGVpZ2h0IC0gc2l6ZS5HZXRIZWlnaHQoKSkgLy8gMikKKysgICAgICAgICAgICAgZGMuU2Vs ZWN0T2JqZWN0QXNTb3VyY2Uod3guTnVsbEJpdG1hcCkKKysgCisrICAgICAgICAgICAgIGl0ZW0g PSBnYWxsZXJ5LkFwcGVuZChiaXRtYXAsIHd4LklEX0FOWSkKKytkaWZmIC0tZ2l0IGEvZGVtby9h Z3cvU3BlZWRNZXRlci5weSBiL2RlbW8vYWd3L1NwZWVkTWV0ZXIucHkKKytpbmRleCA5ZjBmZGVi YjIuLjU3NWU4NGE4MCAxMDA2NDQKKystLS0gYS9kZW1vL2Fndy9TcGVlZE1ldGVyLnB5CisrKysr IGIvZGVtby9hZ3cvU3BlZWRNZXRlci5weQorK0BAIC00MTgsNyArNDE4LDcgQEAgZGVmIF9faW5p dF9fKHNlbGYsIHBhcmVudCwgbG9nKToKKysgICAgICAgICBic2l6ZXIzID0gd3guQm94U2l6ZXIo d3guVkVSVElDQUwpCisrIAorKyAgICAgICAgIGhzaXplcjMgPSB3eC5Cb3hTaXplcih3eC5IT1JJ Wk9OVEFMKQorKy0gICAgICAgIHNjID0gd3guU3BpbkN0cmwocGFuZWwzLCAtMSwgc2l6ZT0oNjAs MjApKQorKysgICAgICAgIHNjID0gd3guU3BpbkN0cmwocGFuZWwzLCAtMSkKKysgICAgICAgICBz Yy5TZXRSYW5nZSgxLCAyNTApCisrICAgICAgICAgc2MuU2V0VmFsdWUoNTApCisrIAorK2RpZmYg LS1naXQgYS9kZW1vL2Fndy9TdXBlclRvb2xUaXAucHkgYi9kZW1vL2Fndy9TdXBlclRvb2xUaXAu cHkKKytpbmRleCA1ZTY1ZjA2YjEuLjg4NzI4ZTU0ZSAxMDA2NDQKKystLS0gYS9kZW1vL2Fndy9T dXBlclRvb2xUaXAucHkKKysrKysgYi9kZW1vL2Fndy9TdXBlclRvb2xUaXAucHkKKytAQCAtNDMs NyArNDMsNyBAQCBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50KToKKysgICAgICAgICBzZWxmLnRv cENvbG91clBpY2tlciA9IHd4LkNvbG91clBpY2tlckN0cmwoc2VsZi5tYWluUGFuZWwsIGNvbG91 cj13eC5XSElURSkKKysgICAgICAgICBzeXN0ZW0gPSB3eC5TeXN0ZW1TZXR0aW5ncy5HZXRDb2xv dXIod3guU1lTX0NPTE9VUl9BQ1RJVkVDQVBUSU9OKQorKyAgICAgICAgIHIsIGcsIGIsIGEgPSBz eXN0ZW0KKystICAgICAgICBzZWxmLm1pZGRsZUNvbG91clBpY2tlciA9IHd4LkNvbG91clBpY2tl ckN0cmwoc2VsZi5tYWluUGFuZWwsIGNvbG91cj13eC5Db2xvdXIoKDI1NS1yKS8yLCAoMjU1LWcp LzIsICgyNTUtYikvMikpCisrKyAgICAgICAgc2VsZi5taWRkbGVDb2xvdXJQaWNrZXIgPSB3eC5D b2xvdXJQaWNrZXJDdHJsKHNlbGYubWFpblBhbmVsLCBjb2xvdXI9d3guQ29sb3VyKCgyNTUtcikv LzIsICgyNTUtZykvLzIsICgyNTUtYikvLzIpKQorKyAgICAgICAgIHNlbGYuYm90dG9tQ29sb3Vy UGlja2VyID0gd3guQ29sb3VyUGlja2VyQ3RybChzZWxmLm1haW5QYW5lbCwgY29sb3VyPXN5c3Rl bSkKKysgICAgICAgICBzZWxmLmhlYWRlckNoZWNrID0gd3guQ2hlY2tCb3goc2VsZi5tYWluUGFu ZWwsIC0xLCAiU2hvdyBIZWFkZXIiKQorKyAgICAgICAgIHNlbGYuaGVhZGVyVGV4dCA9IHd4LlRl eHRDdHJsKHNlbGYubWFpblBhbmVsLCAtMSwgIk1lcmdlIEFuZCBDZW50ZXIiKQorK0BAIC0yMzMs NyArMjMzLDYgQEAgZGVmIERvTGF5b3V0KHNlbGYpOgorKyAgICAgICAgIGZyYW1lU2l6ZXIuQWRk KHNlbGYubWFpblBhbmVsLCAxLCB3eC5FWFBBTkQsIDApCisrICAgICAgICAgc2VsZi5TZXRTaXpl cihmcmFtZVNpemVyKQorKyAgICAgICAgIGZyYW1lU2l6ZXIuTGF5b3V0KCkKKystICAgICAgICBm cmFtZVNpemVyLkZpdChzZWxmKQorKyAgICAgICAgIHNlbGYuTGF5b3V0KCkKKysgCisrICAgICAg ICAgd3guQ2FsbEFmdGVyKG1haW5TaXplci5MYXlvdXQpCisrZGlmZiAtLWdpdCBhL2RlbW8vYWd3 L1VsdGltYXRlUmVwb3J0RGVtby5weSBiL2RlbW8vYWd3L1VsdGltYXRlUmVwb3J0RGVtby5weQor K2luZGV4IDQwZjQ5Y2I4Zi4uYWQ0NTU4NDdiIDEwMDY0NAorKy0tLSBhL2RlbW8vYWd3L1VsdGlt YXRlUmVwb3J0RGVtby5weQorKysrKyBiL2RlbW8vYWd3L1VsdGltYXRlUmVwb3J0RGVtby5weQor K0BAIC0yMTYsNyArMjE2LDcgQEAgZGVmIERyYXdTdWJJdGVtKHNlbGYsIGRjLCByZWN0LCBsaW5l LCBoaWdobGlnaHRlZCwgZW5hYmxlZCk6CisrICAgICAgICAgbWRjLlNldEZvbnQod3guRm9udCg4 LCB3eC5GT05URkFNSUxZX1NXSVNTLCB3eC5GT05UU1RZTEVfTk9STUFMLCB3eC5GT05UV0VJR0hU X0JPTEQpKQorKyAgICAgICAgIHRleHQgPSAiJWQgTWIiJXNlbGYucHJvZ3Jlc3NWYWx1ZQorKyAg ICAgICAgIHRleHRXaWR0aCwgZHVtbXkgPSBtZGMuR2V0VGV4dEV4dGVudCh0ZXh0KQorKy0gICAg ICAgIG1kYy5EcmF3VGV4dCh0ZXh0LCByZWN0LndpZHRoLzIgLSB0ZXh0V2lkdGgvMiwgcmVjdC5o ZWlnaHQvMiAtIGR1bW15LzIpCisrKyAgICAgICAgbWRjLkRyYXdUZXh0KHRleHQsIHJlY3Qud2lk dGgvLzIgLSB0ZXh0V2lkdGgvLzIsIHJlY3QuaGVpZ2h0Ly8yIC0gZHVtbXkvLzIpCisrICAgICAg ICAgZGMuU2V0Q2xpcHBpbmdSZWdpb24ocmVjdC54LCByZWN0LnksIHJlY3Qud2lkdGgsIHJlY3Qu aGVpZ2h0KQorKyAgICAgICAgIGRjLkJsaXQocmVjdC54KzMsIHJlY3QueSwgcmVjdC53aWR0aC02 LCByZWN0LmhlaWdodCwgbWRjLCAwLCAwKQorKyAgICAgICAgIGRjLkRlc3Ryb3lDbGlwcGluZ1Jl Z2lvbigpCisrQEAgLTI3OSwxMiArMjc5LDEyIEBAIGRlZiBEcmF3UHJvZ3Jlc3NCYXIoc2VsZiwg ZGMsIHgsIHksIHcsIGgsIHBlcmNlbnQpOgorKyAgICAgICAgICAgICBtZGMuU2VsZWN0T2JqZWN0 KHd4Lk51bGxCaXRtYXApCisrIAorKyAgICAgICAgICMgQ2VudGVyIHRoZSBwcm9ncmVzcyBiYXIg dmVydGljYWxseSBpbiB0aGUgYm94IHN1cHBsaWVkCisrLSAgICAgICAgeSA9IHkgKyAoaCAtIFBJ UEVfSEVJR0hUKS8yCisrKyAgICAgICAgeSA9IHkgKyAoaCAtIFBJUEVfSEVJR0hUKS8vMgorKyAK KysgICAgICAgICBpZiBwZXJjZW50ID09IDA6CisrICAgICAgICAgICAgIG1pZGRsZSA9IDAKKysg ICAgICAgICBlbHNlOgorKy0gICAgICAgICAgICBtaWRkbGUgPSAodyAqIHBlcmNlbnQpLzEwMAor KysgICAgICAgICAgICBtaWRkbGUgPSAodyAqIHBlcmNlbnQpLy8xMDAKKysgCisrICAgICAgICAg aWYgbWlkZGxlID09IDA6ICMgbm90IHN0YXJ0ZWQKKysgICAgICAgICAgICAgYml0bWFwID0gc2Vs Zi5SRU1BSU5JTkdfQklUTUFQLkdldFN1YkJpdG1hcCgoMSwgMCwgdywgUElQRV9IRUlHSFQpKQor K0BAIC0zMzUsNyArMzM1LDcgQEAgZGVmIERyYXdTdWJJdGVtKHNlbGYsIGRjLCByZWN0LCBsaW5l LCBoaWdobGlnaHRlZCwgZW5hYmxlZCk6CisrICAgICAgICAgY29sb3VycyA9IFt3eC5SRUQsIHd4 LldISVRFLCB3eC5HUkVFTiwgd3guQ29sb3VyKCJTS1kgQkxVRSIpXQorKyAgICAgICAgIHcsIGgg PSBkYy5HZXRUZXh0RXh0ZW50KCJIZyIpCisrICAgICAgICAgeCA9IHJlY3QueCArIDEKKystICAg ICAgICB5ID0gcmVjdC55ICsgcmVjdC5oZWlnaHQvMiAtIGgvMgorKysgICAgICAgIHkgPSByZWN0 LnkgKyByZWN0LmhlaWdodC8vMiAtIGgvLzIKKysgCisrICAgICAgICAgZm9yIGNoIGluIHNlbGYu dGV4dDoKKysgICAgICAgICAgICAgZGMuU2V0VGV4dEZvcmVncm91bmQocmFuZG9tLmNob2ljZShj b2xvdXJzKSkKKytkaWZmIC0tZ2l0IGEvZGVtby9hZ3cvV2luZG93czdFeHBsb3Jlcl9Db250ZW50 cy5weSBiL2RlbW8vYWd3L1dpbmRvd3M3RXhwbG9yZXJfQ29udGVudHMucHkKKytpbmRleCBmNzU0 ZDc4NzkuLmIyM2RmMGUxYSAxMDA2NDQKKystLS0gYS9kZW1vL2Fndy9XaW5kb3dzN0V4cGxvcmVy X0NvbnRlbnRzLnB5CisrKysrIGIvZGVtby9hZ3cvV2luZG93czdFeHBsb3Jlcl9Db250ZW50cy5w eQorK0BAIC0xMjcsMTMgKzEyNywxMyBAQCBkZWYgRHJhd1N1Ykl0ZW0oc2VsZiwgZGMsIHJlY3Qs IGxpbmUsIGhpZ2hsaWdodGVkLCBlbmFibGVkKToKKysgICAgICAgICAiIiJEcmF3IGEgY3VzdG9t IHByb2dyZXNzIGJhciB1c2luZyBkb3VibGUgYnVmZmVyaW5nIHRvIHByZXZlbnQgZmxpY2tlciIi IgorKyAKKysgICAgICAgICBibXBXaWR0aCwgYm1wSGVpZ2h0ID0gc2VsZi5pY29uLkdldFdpZHRo KCksIHNlbGYuaWNvbi5HZXRIZWlnaHQoKQorKy0gICAgICAgIGRjLkRyYXdJY29uKHNlbGYuaWNv biwgcmVjdC54KzUsIHJlY3QueSsocmVjdC5oZWlnaHQtYm1wSGVpZ2h0KS8yKQorKysgICAgICAg IGRjLkRyYXdJY29uKHNlbGYuaWNvbiwgcmVjdC54KzUsIHJlY3QueSsocmVjdC5oZWlnaHQtYm1w SGVpZ2h0KS8vMikKKysgCisrICAgICAgICAgZGMuU2V0Rm9udChzZWxmLm5vcm1hbEZvbnQpCisr IAorKyAgICAgICAgIHRleHRXaWR0aCwgdGV4dEhlaWdodCA9IGRjLkdldFRleHRFeHRlbnQoc2Vs Zi50ZXh0KQorKyAgICAgICAgIGRjLlNldFRleHRGb3JlZ3JvdW5kKHd4LlN5c3RlbVNldHRpbmdz LkdldENvbG91cih3eC5TWVNfQ09MT1VSX0JUTlRFWFQpKQorKy0gICAgICAgIGRjLkRyYXdUZXh0 KHNlbGYudGV4dCwgcmVjdC54K2JtcFdpZHRoKzEwLCByZWN0LnkrKHJlY3QuaGVpZ2h0IC0gdGV4 dEhlaWdodCkvNCkKKysrICAgICAgICBkYy5EcmF3VGV4dChzZWxmLnRleHQsIHJlY3QueCtibXBX aWR0aCsxMCwgcmVjdC55KyhyZWN0LmhlaWdodCAtIHRleHRIZWlnaHQpLy80KQorKyAKKysgICAg ICAgICBpZiBub3Qgc2VsZi5kZXNjcmlwdGlvbjoKKysgICAgICAgICAgICAgcmV0dXJuCisrQEAg LTE0NCwxMCArMTQ0LDEwIEBAIGRlZiBEcmF3U3ViSXRlbShzZWxmLCBkYywgcmVjdCwgbGluZSwg aGlnaGxpZ2h0ZWQsIGVuYWJsZWQpOgorKyAgICAgICAgIHRleHRXaWR0aCwgdGV4dEhlaWdodCA9 IGRjLkdldFRleHRFeHRlbnQoIlR5cGU6ICIgKyBzZWxmLmRlc2NyaXB0aW9uKQorKyAKKysgICAg ICAgICBkYy5TZXRUZXh0Rm9yZWdyb3VuZChzZWxmLmdyZXlDb2xvdXIpCisrLSAgICAgICAgZGMu RHJhd1RleHQoIlR5cGU6ICIsIHJlY3QueCtibXBXaWR0aCsxMCwgcmVjdC55KzMqKHJlY3QuaGVp Z2h0IC0gdGV4dEhlaWdodCkvNCkKKysrICAgICAgICBkYy5EcmF3VGV4dCgiVHlwZTogIiwgcmVj dC54K2JtcFdpZHRoKzEwLCByZWN0LnkrMyoocmVjdC5oZWlnaHQgLSB0ZXh0SGVpZ2h0KS8vNCkK KysgCisrICAgICAgICAgZGMuU2V0VGV4dEZvcmVncm91bmQod3guQkxBQ0spCisrLSAgICAgICAg ZGMuRHJhd1RleHQoc2VsZi5kZXNjcmlwdGlvbiwgcmVjdC54K2JtcFdpZHRoK2R1bW15MSsxMCwg cmVjdC55KzMqKHJlY3QuaGVpZ2h0IC0gdGV4dEhlaWdodCkvNCkKKysrICAgICAgICBkYy5EcmF3 VGV4dChzZWxmLmRlc2NyaXB0aW9uLCByZWN0LngrYm1wV2lkdGgrZHVtbXkxKzEwLCByZWN0Lnkr MyoocmVjdC5oZWlnaHQgLSB0ZXh0SGVpZ2h0KS8vNCkKKysgCisrIAorKyAgICAgZGVmIEdldExp bmVIZWlnaHQoc2VsZik6CisrQEAgLTIwNywxMCArMjA3LDEwIEBAIGRlZiBEcmF3U3ViSXRlbShz ZWxmLCBkYywgcmVjdCwgbGluZSwgaGlnaGxpZ2h0ZWQsIGVuYWJsZWQpOgorKyAgICAgICAgIHRl eHRXaWR0aCwgdGV4dEhlaWdodCA9IGRjLkdldFRleHRFeHRlbnQoIkRhdGUgbW9kaWZpZWQ6ICIg KyBkYXRlKQorKyAKKysgICAgICAgICBkYy5TZXRUZXh0Rm9yZWdyb3VuZChzZWxmLmdyZXlDb2xv dXIpCisrLSAgICAgICAgZGMuRHJhd1RleHQoIkRhdGUgbW9kaWZpZWQ6ICIsIHJlY3QueCs1LCBy ZWN0LnkrKHJlY3QuaGVpZ2h0IC0gdGV4dEhlaWdodCkvNCkKKysrICAgICAgICBkYy5EcmF3VGV4 dCgiRGF0ZSBtb2RpZmllZDogIiwgcmVjdC54KzUsIHJlY3QueSsocmVjdC5oZWlnaHQgLSB0ZXh0 SGVpZ2h0KS8vNCkKKysgCisrICAgICAgICAgZGMuU2V0VGV4dEZvcmVncm91bmQod3guQkxBQ0sp CisrLSAgICAgICAgZGMuRHJhd1RleHQoZGF0ZSwgcmVjdC54K2R1bW15MSs1LCByZWN0LnkrKHJl Y3QuaGVpZ2h0IC0gdGV4dEhlaWdodCkvNCkKKysrICAgICAgICBkYy5EcmF3VGV4dChkYXRlLCBy ZWN0LngrZHVtbXkxKzUsIHJlY3QueSsocmVjdC5oZWlnaHQgLSB0ZXh0SGVpZ2h0KS8vNCkKKysg CisrICAgICAgICAgaWYgbm90IHNlbGYuc2l6ZToKKysgICAgICAgICAgICAgcmV0dXJuCisrQEAg LTIxOCwxMCArMjE4LDEwIEBAIGRlZiBEcmF3U3ViSXRlbShzZWxmLCBkYywgcmVjdCwgbGluZSwg aGlnaGxpZ2h0ZWQsIGVuYWJsZWQpOgorKyAgICAgICAgIGR1bW15MSwgZHVtbXkyPSBkYy5HZXRU ZXh0RXh0ZW50KCJTaXplOiAiKQorKyAKKysgICAgICAgICBkYy5TZXRUZXh0Rm9yZWdyb3VuZChz ZWxmLmdyZXlDb2xvdXIpCisrLSAgICAgICAgZGMuRHJhd1RleHQoIlNpemU6ICIsIHJlY3QueCs1 LCByZWN0LnkrMyoocmVjdC5oZWlnaHQgLSB0ZXh0SGVpZ2h0KS80KQorKysgICAgICAgIGRjLkRy YXdUZXh0KCJTaXplOiAiLCByZWN0LngrNSwgcmVjdC55KzMqKHJlY3QuaGVpZ2h0IC0gdGV4dEhl aWdodCkvLzQpCisrIAorKyAgICAgICAgIGRjLlNldFRleHRGb3JlZ3JvdW5kKHd4LkJMQUNLKQor Ky0gICAgICAgIGRjLkRyYXdUZXh0KHNlbGYuc2l6ZSwgcmVjdC54K2R1bW15MSs1LCByZWN0Lnkr MyoocmVjdC5oZWlnaHQgLSB0ZXh0SGVpZ2h0KS80KQorKysgICAgICAgIGRjLkRyYXdUZXh0KHNl bGYuc2l6ZSwgcmVjdC54K2R1bW15MSs1LCByZWN0LnkrMyoocmVjdC5oZWlnaHQgLSB0ZXh0SGVp Z2h0KS8vNCkKKysgCisrIAorKyAgICAgZGVmIEdldExpbmVIZWlnaHQoc2VsZik6CisrZGlmZiAt LWdpdCBhL2RlbW8vYWd3L1pvb21CYXIucHkgYi9kZW1vL2Fndy9ab29tQmFyLnB5CisraW5kZXgg Mzc2Y2UzNDliLi4xNGIwMjc4ZTcgMTAwNjQ0CisrLS0tIGEvZGVtby9hZ3cvWm9vbUJhci5weQor KysrKyBiL2RlbW8vYWd3L1pvb21CYXIucHkKKytAQCAtNTUsNyArNTUsNyBAQCBkZWYgX19pbml0 X18oc2VsZiwgcGFyZW50LCBsb2cpOgorKyAgICAgICAgIHJlZmxlY3Rpb25zID0gZ2xvYi5nbG9i KGJpdG1hcERpciArICIvKjk2RmxpcDQwLnBuZyIpCisrIAorKyAgICAgICAgIHNlcGFyYXRvcklt YWdlID0gYml0bWFwRGlyICsgIi9zZXBhcmF0b3IuZ2lmIgorKy0gICAgICAgIHNlcGFyYXRvclJl ZmxlY3Rpb24gPSBiaXRtYXBEaXIgKyAiL3NlcGFyYXRvckZsaXAucG5nIgorKysgICAgICAgIHNl cGFyYXRvclJlZmxlY3Rpb24gPSBiaXRtYXBEaXIgKyAiL3NlcGFyYXRvcmZsaXAucG5nIgorKyAg ICAgICAgIGNvdW50ID0gMAorKyAKKysgICAgICAgICBmb3Igc3RkLCByZWYgaW4gemlwKHN0YW5k YXJkLCByZWZsZWN0aW9ucyk6CisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hZ3cvYWR2YW5jZWRzcGxh c2gucHkgYi93eC9saWIvYWd3L2FkdmFuY2Vkc3BsYXNoLnB5CisraW5kZXggMWY4YzMyZGY1Li5k MzUxZWEwNmUgMTAwNjQ0CisrLS0tIGEvd3gvbGliL2Fndy9hZHZhbmNlZHNwbGFzaC5weQorKysr KyBiL3d4L2xpYi9hZ3cvYWR2YW5jZWRzcGxhc2gucHkKKytAQCAtNDM4LDcgKzQzOCw3IEBAIGRl ZiBTZXRUZXh0Rm9udChzZWxmLCBmb250PU5vbmUpOgorKyAKKysgICAgICAgICBpZiBmb250IGlz IE5vbmU6CisrICAgICAgICAgICAgIHNlbGYuX3RleHRmb250ID0gd3guRm9udCgxLCB3eC5GT05U RkFNSUxZX1NXSVNTLCB3eC5GT05UU1RZTEVfTk9STUFMLCB3eC5GT05UV0VJR0hUX0JPTEQsIEZh bHNlKQorKy0gICAgICAgICAgICBzZWxmLl90ZXh0c2l6ZSA9IDEwLjAKKysrICAgICAgICAgICAg c2VsZi5fdGV4dHNpemUgPSAxMAorKyAgICAgICAgICAgICBzZWxmLl90ZXh0Zm9udC5TZXRQb2lu dFNpemUoc2VsZi5fdGV4dHNpemUpCisrICAgICAgICAgZWxzZToKKysgICAgICAgICAgICAgc2Vs Zi5fdGV4dGZvbnQgPSBmb250CisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hZ3cvYXVpL2F1aWJvb2su cHkgYi93eC9saWIvYWd3L2F1aS9hdWlib29rLnB5CisraW5kZXggYmE3Y2Y0NzIxLi5mNWFkMmE1 NjggMTAwNjQ0CisrLS0tIGEvd3gvbGliL2Fndy9hdWkvYXVpYm9vay5weQorKysrKyBiL3d4L2xp Yi9hZ3cvYXVpL2F1aWJvb2sucHkKKytAQCAtMzQ1Miw4ICszNDUyLDggQEAgZGVmIENhbGN1bGF0 ZU5ld1NwbGl0U2l6ZShzZWxmKToKKysgICAgICAgICAjIHNob3VsZCBoYXBwZW4gYXJvdW5kIHRo ZSBtaWRkbGUKKysgICAgICAgICBpZiB0YWJfY3RybF9jb3VudCA8IDI6CisrICAgICAgICAgICAg IG5ld19zcGxpdF9zaXplID0gc2VsZi5HZXRDbGllbnRTaXplKCkKKystICAgICAgICAgICAgbmV3 X3NwbGl0X3NpemUueCAvPSAyCisrLSAgICAgICAgICAgIG5ld19zcGxpdF9zaXplLnkgLz0gMgor KysgICAgICAgICAgICBuZXdfc3BsaXRfc2l6ZS54IC8vPSAyCisrKyAgICAgICAgICAgIG5ld19z cGxpdF9zaXplLnkgLy89IDIKKysgCisrICAgICAgICAgZWxzZToKKysgCisrZGlmZiAtLWdpdCBh L3d4L2xpYi9hZ3cvYmFsbG9vbnRpcC5weSBiL3d4L2xpYi9hZ3cvYmFsbG9vbnRpcC5weQorK2lu ZGV4IGI0MTU1ZDc0YS4uNTdiYWNhNzI5IDEwMDY0NAorKy0tLSBhL3d4L2xpYi9hZ3cvYmFsbG9v bnRpcC5weQorKysrKyBiL3d4L2xpYi9hZ3cvYmFsbG9vbnRpcC5weQorK0BAIC02MTUsNyArNjE1 LDcgQEAgZGVmIFNldFN0YXJ0RGVsYXkoc2VsZiwgZGVsYXk9MSk6CisrICAgICAgICAgaWYgZGVs YXkgPCAxOgorKyAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIlxuRVJST1I6IERlbGF5IFRp bWUgRm9yIEJhbGxvb25UaXAgQ3JlYXRpb24gU2hvdWxkIEJlIEdyZWF0ZXIgVGhhbiAxIG1zIikK KysgCisrLSAgICAgICAgc2VsZi5fc3RhcnRkZWxheXRpbWUgPSBmbG9hdChkZWxheSkKKysrICAg ICAgICBzZWxmLl9zdGFydGRlbGF5dGltZSA9IGludChkZWxheSkKKysgCisrIAorKyAgICAgZGVm IEdldFN0YXJ0RGVsYXkoc2VsZik6CisrQEAgLTY0MCw3ICs2NDAsNyBAQCBkZWYgU2V0RW5kRGVs YXkoc2VsZiwgZGVsYXk9MWU2KToKKysgICAgICAgICBpZiBkZWxheSA8IDE6CisrICAgICAgICAg ICAgIHJhaXNlIEV4Y2VwdGlvbigiXG5FUlJPUjogRGVsYXkgVGltZSBGb3IgQmFsbG9vblRpcCBE ZXN0cnVjdGlvbiBTaG91bGQgQmUgR3JlYXRlciBUaGFuIDEgbXMiKQorKyAKKystICAgICAgICBz ZWxmLl9lbmRkZWxheXRpbWUgPSBmbG9hdChkZWxheSkKKysrICAgICAgICBzZWxmLl9lbmRkZWxh eXRpbWUgPSBpbnQoZGVsYXkpCisrIAorKyAKKysgICAgIGRlZiBHZXRFbmREZWxheShzZWxmKToK KytkaWZmIC0tZ2l0IGEvd3gvbGliL2Fndy9mbGF0bWVudS5weSBiL3d4L2xpYi9hZ3cvZmxhdG1l bnUucHkKKytpbmRleCA1YmEyOGU1ODQuLjg1ZjI5NWI4NiAxMDA2NDQKKystLS0gYS93eC9saWIv YWd3L2ZsYXRtZW51LnB5CisrKysrIGIvd3gvbGliL2Fndy9mbGF0bWVudS5weQorK0BAIC03MzYs OCArNzM2LDggQEAgZGVmIERyYXdTZXBhcmF0b3Ioc2VsZiwgZGMsIHhDb29yZCwgeUNvb3JkLCB0 ZXh0WCwgc2VwV2lkdGgpOgorKyAgICAgICAgICIiIgorKyAKKysgICAgICAgICBkY3NhdmVyID0g RENTYXZlcihkYykKKystICAgICAgICBzZXBSZWN0MSA9IHd4LlJlY3QoeENvb3JkICsgdGV4dFgs IHlDb29yZCArIDEsIHNlcFdpZHRoLzIsIDEpCisrLSAgICAgICAgc2VwUmVjdDIgPSB3eC5SZWN0 KHhDb29yZCArIHRleHRYICsgc2VwV2lkdGgvMiwgeUNvb3JkICsgMSwgc2VwV2lkdGgvMi0xLCAx KQorKysgICAgICAgIHNlcFJlY3QxID0gd3guUmVjdCh4Q29vcmQgKyB0ZXh0WCwgeUNvb3JkICsg MSwgc2VwV2lkdGgvLzIsIDEpCisrKyAgICAgICAgc2VwUmVjdDIgPSB3eC5SZWN0KHhDb29yZCAr IHRleHRYICsgc2VwV2lkdGgvLzIsIHlDb29yZCArIDEsIHNlcFdpZHRoLy8yLTEsIDEpCisrIAor KyAgICAgICAgIGFydE1nciA9IEFydE1hbmFnZXIuR2V0KCkKKysgICAgICAgICBiYWNrQ29sb3Vy ID0gYXJ0TWdyLkdldE1lbnVGYWNlQ29sb3VyKCkKKytAQCAtODE3LDExICs4MTcsMTEgQEAgZGVm IERyYXdNZW51SXRlbShzZWxmLCBpdGVtLCBkYywgeENvb3JkLCB5Q29vcmQsIGltYWdlTWFyZ2lu WCwgbWFya2VyTWFyZ2luWCwgdGUKKysgICAgICAgICAgICAgaW1nV2lkdGggID0gYm1wLkdldFdp ZHRoKCkKKysgCisrICAgICAgICAgICAgIGlmIGltYWdlTWFyZ2luWCA9PSAwOgorKy0gICAgICAg ICAgICAgICAgeHggPSByZWN0LnggKyAobGVmdE1hcmdpbldpZHRoIC0gaW1nV2lkdGgpLzIKKysr ICAgICAgICAgICAgICAgIHh4ID0gcmVjdC54ICsgKGxlZnRNYXJnaW5XaWR0aCAtIGltZ1dpZHRo KS8vMgorKyAgICAgICAgICAgICBlbHNlOgorKy0gICAgICAgICAgICAgICAgeHggPSByZWN0Lngg KyAoKGxlZnRNYXJnaW5XaWR0aCAtIHJlY3QuaGVpZ2h0KSAtIGltZ1dpZHRoKS8yICsgcmVjdC5o ZWlnaHQKKysrICAgICAgICAgICAgICAgIHh4ID0gcmVjdC54ICsgKChsZWZ0TWFyZ2luV2lkdGgg LSByZWN0LmhlaWdodCkgLSBpbWdXaWR0aCkvLzIgKyByZWN0LmhlaWdodAorKyAKKystICAgICAg ICAgICAgeXkgPSByZWN0LnkgKyAocmVjdC5oZWlnaHQgLSBpbWdIZWlnaHQpLzIKKysrICAgICAg ICAgICAgeXkgPSByZWN0LnkgKyAocmVjdC5oZWlnaHQgLSBpbWdIZWlnaHQpLy8yCisrICAgICAg ICAgICAgIGRjLkRyYXdCaXRtYXAoYm1wLCB4eCwgeXksIFRydWUpCisrIAorKyAgICAgICAgIGlm IGl0ZW0uR2V0S2luZCgpID09IHd4LklURU1fQ0hFQ0s6CisrQEAgLTgzNyw3ICs4MzcsNyBAQCBk ZWYgRHJhd01lbnVJdGVtKHNlbGYsIGl0ZW0sIGRjLCB4Q29vcmQsIHlDb29yZCwgaW1hZ2VNYXJn aW5YLCBtYXJrZXJNYXJnaW5YLCB0ZQorKyAgICAgICAgICAgICAgICAgaWYgbm90IHNlbGVjdGVk IGFuZCBzZWxmLmhpZ2hsaWdodENoZWNrQW5kUmFkaW86CisrICAgICAgICAgICAgICAgICAgICAg c2VsZi5EcmF3QnV0dG9uKGRjLCByciwgQ29udHJvbEZvY3VzKQorKyAKKystICAgICAgICAgICAg ICAgIGRjLkRyYXdCaXRtYXAoaXRlbS5fY2hlY2tNYXJrQm1wLCByci54ICsgKHJyLndpZHRoIC0g MTYpLzIsIHJyLnkgKyAocnIuaGVpZ2h0IC0gMTYpLzIsIFRydWUpCisrKyAgICAgICAgICAgICAg ICBkYy5EcmF3Qml0bWFwKGl0ZW0uX2NoZWNrTWFya0JtcCwgcnIueCArIChyci53aWR0aCAtIDE2 KS8vMiwgcnIueSArIChyci5oZWlnaHQgLSAxNikvLzIsIFRydWUpCisrIAorKyAgICAgICAgIGlm IGl0ZW0uR2V0S2luZCgpID09IHd4LklURU1fUkFESU86CisrIAorK0BAIC04NTIsNyArODUyLDcg QEAgZGVmIERyYXdNZW51SXRlbShzZWxmLCBpdGVtLCBkYywgeENvb3JkLCB5Q29vcmQsIGltYWdl TWFyZ2luWCwgbWFya2VyTWFyZ2luWCwgdGUKKysgICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxl Y3RlZCBhbmQgc2VsZi5oaWdobGlnaHRDaGVja0FuZFJhZGlvOgorKyAgICAgICAgICAgICAgICAg ICAgIHNlbGYuRHJhd0J1dHRvbihkYywgcnIsIENvbnRyb2xGb2N1cykKKysgCisrLSAgICAgICAg ICAgICAgICBkYy5EcmF3Qml0bWFwKGl0ZW0uX3JhZGlvTWFya0JtcCwgcnIueCArIChyci53aWR0 aCAtIDE2KS8yLCByci55ICsgKHJyLmhlaWdodCAtIDE2KS8yLCBUcnVlKQorKysgICAgICAgICAg ICAgICAgZGMuRHJhd0JpdG1hcChpdGVtLl9yYWRpb01hcmtCbXAsIHJyLnggKyAocnIud2lkdGgg LSAxNikvLzIsIHJyLnkgKyAocnIuaGVpZ2h0IC0gMTYpLy8yLCBUcnVlKQorKyAKKysgICAgICAg ICAjIERyYXcgdGV4dCAtIHdpdGhvdXQgYWNjZWxlcmF0b3JzCisrICAgICAgICAgdGV4dCA9IGl0 ZW0uR2V0TGFiZWwoKQorK0BAIC04OTAsNyArODkwLDcgQEAgZGVmIERyYXdNZW51SXRlbShzZWxm LCBpdGVtLCBkYywgeENvb3JkLCB5Q29vcmQsIGltYWdlTWFyZ2luWCwgbWFya2VyTWFyZ2luWCwg dGUKKysgICAgICAgICAgICAgICAgIHczLCBkdW1teSA9IGRjLkdldFRleHRFeHRlbnQodGV4dDMp CisrIAorKyAgICAgICAgICAgICAgICAgcG9zeCA9IHhDb29yZCArIHRleHRYICsgYm9yZGVyWFNp emUKKystICAgICAgICAgICAgICAgIHBvc3kgPSAoaXRlbUhlaWdodCAtIGgpLzIgKyB5Q29vcmQK KysrICAgICAgICAgICAgICAgIHBvc3kgPSAoaXRlbUhlaWdodCAtIGgpLy8yICsgeUNvb3JkCisr IAorKyAgICAgICAgICAgICAgICAgIyBEcmF3IGZpcnN0IHBhcnQKKysgICAgICAgICAgICAgICAg IGRjLkRyYXdUZXh0KHRleHQxLCBwb3N4LCBwb3N5KQorK0BAIC05MTIsNyArOTEyLDcgQEAgZGVm IERyYXdNZW51SXRlbShzZWxmLCBpdGVtLCBkYywgeENvb3JkLCB5Q29vcmQsIGltYWdlTWFyZ2lu WCwgbWFya2VyTWFyZ2luWCwgdGUKKysgICAgICAgICAgICAgZWxzZToKKysgCisrICAgICAgICAg ICAgICAgICB3LCBoID0gZGMuR2V0VGV4dEV4dGVudCh0ZXh0KQorKy0gICAgICAgICAgICAgICAg ZGMuRHJhd1RleHQodGV4dCwgeENvb3JkICsgdGV4dFggKyBib3JkZXJYU2l6ZSwgKGl0ZW1IZWln aHQgLSBoKS8yICsgeUNvb3JkKQorKysgICAgICAgICAgICAgICAgZGMuRHJhd1RleHQodGV4dCwg eENvb3JkICsgdGV4dFggKyBib3JkZXJYU2l6ZSwgKGl0ZW1IZWlnaHQgLSBoKS8vMiArIHlDb29y ZCkKKysgCisrIAorKyAgICAgICAgICMgTm93IGRyYXcgYWNjZWxlcmF0b3IKKytAQCAtOTIwLDcg KzkyMCw3IEBAIGRlZiBEcmF3TWVudUl0ZW0oc2VsZiwgaXRlbSwgZGMsIHhDb29yZCwgeUNvb3Jk LCBpbWFnZU1hcmdpblgsIG1hcmtlck1hcmdpblgsIHRlCisrICAgICAgICAgaWYgaXRlbS5HZXRB Y2NlbFN0cmluZygpOgorKyAKKysgICAgICAgICAgICAgYWNjZWxXaWR0aCwgYWNjZWxIZWlnaHQg PSBkYy5HZXRUZXh0RXh0ZW50KGl0ZW0uR2V0QWNjZWxTdHJpbmcoKSkKKystICAgICAgICAgICAg ZGMuRHJhd1RleHQoaXRlbS5HZXRBY2NlbFN0cmluZygpLCB4Q29vcmQgKyByaWdodE1hcmdpblgg LSBhY2NlbFdpZHRoLCAoaXRlbUhlaWdodCAtIGFjY2VsSGVpZ2h0KS8yICsgeUNvb3JkKQorKysg ICAgICAgICAgICBkYy5EcmF3VGV4dChpdGVtLkdldEFjY2VsU3RyaW5nKCksIHhDb29yZCArIHJp Z2h0TWFyZ2luWCAtIGFjY2VsV2lkdGgsIChpdGVtSGVpZ2h0IC0gYWNjZWxIZWlnaHQpLy8yICsg eUNvb3JkKQorKyAKKysgICAgICAgICAjIENoZWNrIGlmIHRoaXMgaXRlbSBoYXMgc3ViLW1lbnUg LSBpZiBpdCBkb2VzLCBkcmF3CisrICAgICAgICAgIyByaWdodCBhcnJvdyBvbiB0aGUgcmlnaHQg bWFyZ2luCisrQEAgLTkzMiw3ICs5MzIsNyBAQCBkZWYgRHJhd01lbnVJdGVtKHNlbGYsIGl0ZW0s IGRjLCB4Q29vcmQsIHlDb29yZCwgaW1hZ2VNYXJnaW5YLCBtYXJrZXJNYXJnaW5YLCB0ZQorKyAK KysgICAgICAgICAgICAgeHggPSB4Q29vcmQgKyByaWdodE1hcmdpblggKyBib3JkZXJYU2l6ZQor KyAgICAgICAgICAgICByciA9IHd4LlJlY3QoeHgsIHJlY3QueSArIDEsIHJlY3QuaGVpZ2h0LTIs IHJlY3QuaGVpZ2h0LTIpCisrLSAgICAgICAgICAgIGRjLkRyYXdCaXRtYXAocmlnaHRBcnJvd0Jt cCwgcnIueCArIDQsIHJyLnkgKyhyci5oZWlnaHQtMTYpLzIsIFRydWUpCisrKyAgICAgICAgICAg IGRjLkRyYXdCaXRtYXAocmlnaHRBcnJvd0JtcCwgcnIueCArIDQsIHJyLnkgKyhyci5oZWlnaHQt MTYpLy8yLCBUcnVlKQorKyAKKysgCisrICAgICBkZWYgRHJhd01lbnVCYXJCdXR0b24oc2VsZiwg ZGMsIHJlY3QsIHN0YXRlKToKKytAQCAtMTE0Miw3ICsxMTQyLDcgQEAgZGVmIERyYXdNZW51QmFy KHNlbGYsIG1lbnViYXIsIGRjKToKKysgICAgICAgICAgICAgIyBHZXQgdGhlIG1lbnUgaXRlbSBy ZWN0CisrICAgICAgICAgICAgIHRleHRXaWR0aCwgdGV4dEhlaWdodCA9IGRjLkdldFRleHRFeHRl bnQoZml4ZWRUZXh0KQorKyAgICAgICAgICAgICAjcmVjdCA9IHd4LlJlY3QocG9zeCttZW51YmFy Ll9zcGFjZXIvMiwgcG9zeSwgdGV4dFdpZHRoLCB0ZXh0SGVpZ2h0KQorKy0gICAgICAgICAgICBy ZWN0ID0gd3guUmVjdChwb3N4K3BhZGRpbmcvMiwgcG9zeSwgdGV4dFdpZHRoLCB0ZXh0SGVpZ2h0 KQorKysgICAgICAgICAgICByZWN0ID0gd3guUmVjdChwb3N4K3BhZGRpbmcvLzIsIHBvc3ksIHRl eHRXaWR0aCwgdGV4dEhlaWdodCkKKysgCisrICAgICAgICAgICAgICMgQ2FuIHdlIGRyYXcgbW9y ZT8/CisrICAgICAgICAgICAgICMgdGhlICtEUk9QX0RPV05fQVJST1dfV0lEVEggIGlzIHRoZSB3 aWR0aCBvZiB0aGUgZHJvcCBkb3duIGFycm93CisrQEAgLTExNzIsNyArMTE3Miw3IEBAIGRlZiBE cmF3TWVudUJhcihzZWxmLCBtZW51YmFyLCBkYyk6CisrICAgICAgICAgICAgICAgICBkYy5TZXRU ZXh0Rm9yZWdyb3VuZCh0ZXh0Q29sb3VyKQorKyAKKysgICAgICAgICAgICAgd3csIGhoID0gZGMu R2V0VGV4dEV4dGVudChsYWJlbE9ubHkpCisrLSAgICAgICAgICAgIHRleHRPZmZzZXQgPSAocmVj dC53aWR0aCAtIHd3KSAvIDIKKysrICAgICAgICAgICAgdGV4dE9mZnNldCA9IChyZWN0LndpZHRo IC0gd3cpIC8vIDIKKysgCisrICAgICAgICAgICAgIGlmIG5vdCBtZW51YmFyLl9pc0xDRCBhbmQg aXRlbS5HZXRUZXh0Qml0bWFwKCkuSXNPaygpIGFuZCBub3Qgc2VsZWN0ZWQ6CisrICAgICAgICAg ICAgICAgICBkYy5EcmF3Qml0bWFwKGl0ZW0uR2V0VGV4dEJpdG1hcCgpLCByZWN0LngsIHJlY3Qu eSwgVHJ1ZSkKKytAQCAtMTUwNSw4ICsxNTA1LDggQEAgZGVmIERyYXdCdXR0b25Db2xvdXIoc2Vs ZiwgZGMsIHJlY3QsIHN0YXRlLCBjb2xvdXIpOgorKyAgICAgICAgIGJhc2VDb2xvdXIgPSBjb2xv dXIKKysgCisrICAgICAgICAgIyBEZWZpbmUgdGhlIG1pZGRsZSBwb2ludHMKKystICAgICAgICBs ZWZ0UHQgPSB3eC5Qb2ludChyZWN0LngsIHJlY3QueSArIChyZWN0LmhlaWdodCAvIDIpKQorKy0g ICAgICAgIHJpZ2h0UHQgPSB3eC5Qb2ludChyZWN0LnggKyByZWN0LndpZHRoLTEsIHJlY3QueSAr IChyZWN0LmhlaWdodCAvIDIpKQorKysgICAgICAgIGxlZnRQdCA9IHd4LlBvaW50KHJlY3QueCwg cmVjdC55ICsgKHJlY3QuaGVpZ2h0IC8vIDIpKQorKysgICAgICAgIHJpZ2h0UHQgPSB3eC5Qb2lu dChyZWN0LnggKyByZWN0LndpZHRoLTEsIHJlY3QueSArIChyZWN0LmhlaWdodCAvLyAyKSkKKysg CisrICAgICAgICAgIyBEZWZpbmUgdGhlIHRvcCByZWdpb24KKysgICAgICAgICB0b3AgPSB3eC5S ZWN0KChyZWN0LkdldExlZnQoKSwgcmVjdC5HZXRUb3AoKSksIHJpZ2h0UHQpCisrQEAgLTE1NzIs MTEgKzE1NzIsMTEgQEAgZGVmIERyYXdNZW51QmFyQmFja2dyb3VuZChzZWxmLCBkYywgcmVjdCk6 CisrIAorKyAgICAgICAgIGZhY3RvciA9IGFydE1nci5HZXRNZW51QmdGYWN0b3IoKQorKyAKKyst ICAgICAgICBsZWZ0UHQxID0gd3guUG9pbnQocmVjdC54LCByZWN0LnkgKyAocmVjdC5oZWlnaHQg LyBmYWN0b3IpKQorKy0gICAgICAgIGxlZnRQdDIgPSB3eC5Qb2ludChyZWN0LngsIHJlY3QueSAr IChyZWN0LmhlaWdodCAvIGZhY3RvcikqKGZhY3Rvci0xKSkKKysrICAgICAgICBsZWZ0UHQxID0g d3guUG9pbnQocmVjdC54LCByZWN0LnkgKyAocmVjdC5oZWlnaHQgLy8gZmFjdG9yKSkKKysrICAg ICAgICBsZWZ0UHQyID0gd3guUG9pbnQocmVjdC54LCByZWN0LnkgKyAocmVjdC5oZWlnaHQgLy8g ZmFjdG9yKSooZmFjdG9yLTEpKQorKyAKKystICAgICAgICByaWdodFB0MSA9IHd4LlBvaW50KHJl Y3QueCArIHJlY3Qud2lkdGgsIHJlY3QueSArIChyZWN0LmhlaWdodCAvIGZhY3RvcikpCisrLSAg ICAgICAgcmlnaHRQdDIgPSB3eC5Qb2ludChyZWN0LnggKyByZWN0LndpZHRoLCByZWN0LnkgKyAo cmVjdC5oZWlnaHQgLyBmYWN0b3IpKihmYWN0b3ItMSkpCisrKyAgICAgICAgcmlnaHRQdDEgPSB3 eC5Qb2ludChyZWN0LnggKyByZWN0LndpZHRoLCByZWN0LnkgKyAocmVjdC5oZWlnaHQgLy8gZmFj dG9yKSkKKysrICAgICAgICByaWdodFB0MiA9IHd4LlBvaW50KHJlY3QueCArIHJlY3Qud2lkdGgs IHJlY3QueSArIChyZWN0LmhlaWdodCAvLyBmYWN0b3IpKihmYWN0b3ItMSkpCisrIAorKyAgICAg ICAgICMgRGVmaW5lIHRoZSB0b3AgcmVnaW9uCisrICAgICAgICAgdG9wUmVnID0gW3d4LlBvaW50 KCkgZm9yIGlpIGluIHJhbmdlKDcpXQorK0BAIC0yNzA3LDcgKzI3MDcsNyBAQCBkZWYgRHJhd1Rv b2xiYXIoc2VsZiwgZGMsIHJlY3QpOgorKyAgICAgICAgICAgICBlbGlmIHRiSXRlbS5Jc0N1c3Rv bUNvbnRyb2woKToKKysgICAgICAgICAgICAgICAgIGNvbnRyb2wgPSB0Ykl0ZW0uR2V0Q3VzdG9t Q29udHJvbCgpCisrICAgICAgICAgICAgICAgICBjdHJsU2l6ZSA9IGNvbnRyb2wuR2V0U2l6ZSgp CisrLSAgICAgICAgICAgICAgICBjdHJsUG9zID0gd3guUG9pbnQoeHgsIHJlY3QueSArIChyZWN0 LmhlaWdodCAtIGN0cmxTaXplLnkpLzIpCisrKyAgICAgICAgICAgICAgICBjdHJsUG9zID0gd3gu UG9pbnQoeHgsIHJlY3QueSArIChyZWN0LmhlaWdodCAtIGN0cmxTaXplLnkpLy8yKQorKyAgICAg ICAgICAgICAgICAgaWYgY29udHJvbC5HZXRQb3NpdGlvbigpICE9IGN0cmxQb3M6CisrICAgICAg ICAgICAgICAgICAgICAgY29udHJvbC5TZXRQb3NpdGlvbihjdHJsUG9zKQorKyAKKytAQCAtMjcy Nyw5ICsyNzI3LDkgQEAgZGVmIERyYXdUb29sYmFyKHNlbGYsIGRjLCByZWN0KToKKysgICAgICAg ICAgICAgIyBEcmF3IHRoZSB0b29sYmFyIGltYWdlCisrICAgICAgICAgICAgIGlmIGJtcC5Jc09r KCk6CisrIAorKy0gICAgICAgICAgICAgICAgeCA9IHh4IC0gc2VsZi5fdG9vbGJhclNwYWNlci8y CisrKyAgICAgICAgICAgICAgICB4ID0geHggLSBzZWxmLl90b29sYmFyU3BhY2VyLy8yCisrICAg ICAgICAgICAgICAgICAjeSA9IHJlY3QueSArIChyZWN0LmhlaWdodCAtIGJtcC5HZXRIZWlnaHQo KSkvMiAtIDEKKystICAgICAgICAgICAgICAgIHkgPSByZWN0LnkgKyBzZWxmLl90b29sYmFyTWFy Z2luLzIKKysrICAgICAgICAgICAgICAgIHkgPSByZWN0LnkgKyBzZWxmLl90b29sYmFyTWFyZ2lu Ly8yCisrIAorKyAgICAgICAgICAgICAgICAgYnV0dG9uUmVjdCA9IHd4LlJlY3QoeCwgeSwgaGln aGxpZ2h0X3dpZHRoLCBoaWdobGlnaHRfaGVpZ2h0KQorKyAKKytAQCAtMjc0NSw4ICsyNzQ1LDgg QEAgZGVmIERyYXdUb29sYmFyKHNlbGYsIGRjLCByZWN0KToKKysgICAgICAgICAgICAgICAgICAg ICBlbHNlOgorKyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl90YkJ1dHRvbnNbaV0uX3N0 YXRlID0gQ29udHJvbE5vcm1hbAorKyAKKystICAgICAgICAgICAgICAgIGltZ3ggPSBidXR0b25S ZWN0LnggKyAoYnV0dG9uUmVjdC53aWR0aCAtIGJtcC5HZXRXaWR0aCgpKS8yCisrLSAgICAgICAg ICAgICAgICBpbWd5ID0gYnV0dG9uUmVjdC55ICsgKGJ1dHRvblJlY3QuaGVpZ2h0IC0gYm1wLkdl dEhlaWdodCgpKS8yCisrKyAgICAgICAgICAgICAgICBpbWd4ID0gYnV0dG9uUmVjdC54ICsgKGJ1 dHRvblJlY3Qud2lkdGggLSBibXAuR2V0V2lkdGgoKSkvLzIKKysrICAgICAgICAgICAgICAgIGlt Z3kgPSBidXR0b25SZWN0LnkgKyAoYnV0dG9uUmVjdC5oZWlnaHQgLSBibXAuR2V0SGVpZ2h0KCkp Ly8yCisrIAorKyAgICAgICAgICAgICAgICAgaWYgc2VsZi5fdGJCdXR0b25zW2ldLl9zdGF0ZSA9 PSBDb250cm9sRm9jdXMgYW5kIG5vdCBzZWxmLl90YkJ1dHRvbnNbaV0uX3RiSXRlbS5Jc1NlbGVj dGVkKCk6CisrIAorK0BAIC0yODI3LDggKzI4MjcsOCBAQCBkZWYgRHJhd01vcmVCdXR0b24oc2Vs ZiwgZGMsIHN0YXRlKToKKysgICAgICAgICBkcm9wQXJyb3dCbXAgPSBzZWxmLkdldFJlbmRlcmVy KCkuX2JpdG1hcHNbImFycm93X2Rvd24iXQorKyAKKysgICAgICAgICAjIENhbGMgdGhlIGltYWdl IGNvb3JkaW5hdGVzCisrLSAgICAgICAgeHggPSByZWN0LnggKyAoRFJPUF9ET1dOX0FSUk9XX1dJ RFRIIC0gZHJvcEFycm93Qm1wLkdldFdpZHRoKCkpLzIKKystICAgICAgICB5eSA9IHJlY3QueSAr IChyZWN0LmhlaWdodCAtIGRyb3BBcnJvd0JtcC5HZXRIZWlnaHQoKSkvMgorKysgICAgICAgIHh4 ID0gcmVjdC54ICsgKERST1BfRE9XTl9BUlJPV19XSURUSCAtIGRyb3BBcnJvd0JtcC5HZXRXaWR0 aCgpKS8vMgorKysgICAgICAgIHl5ID0gcmVjdC55ICsgKHJlY3QuaGVpZ2h0IC0gZHJvcEFycm93 Qm1wLkdldEhlaWdodCgpKS8vMgorKyAKKysgICAgICAgICBkYy5EcmF3Qml0bWFwKGRyb3BBcnJv d0JtcCwgeHgsIHl5ICsgc2VsZi5fc3BhY2VyLCBUcnVlKQorKyAgICAgICAgIHNlbGYuX2Ryb3BE b3duQnV0dG9uU3RhdGUgPSBzdGF0ZQorK0BAIC0zMjY5LDggKzMyNjksOCBAQCBkZWYgRHJhd1Rv b2xiYXJJdGVtKHNlbGYsIGRjLCBpZHgsIHN0YXRlKToKKysgCisrICAgICAgICAgIyBkcmF3IHRo ZSBiaXRtYXAgb3ZlciB0aGUgaGlnaGxpZ2h0CisrICAgICAgICAgYnV0dG9uUmVjdCA9IHd4LlJl Y3QoKnJlY3QpCisrLSAgICAgICAgeCA9IHJlY3QueCArIChidXR0b25SZWN0LndpZHRoIC0gc2Vs Zi5fdGJCdXR0b25zW2lkeF0uX3RiSXRlbS5HZXRCaXRtYXAoKS5HZXRXaWR0aCgpKS8yCisrLSAg ICAgICAgeSA9IHJlY3QueSArIChidXR0b25SZWN0LmhlaWdodCAtIHNlbGYuX3RiQnV0dG9uc1tp ZHhdLl90Ykl0ZW0uR2V0Qml0bWFwKCkuR2V0SGVpZ2h0KCkpLzIKKysrICAgICAgICB4ID0gcmVj dC54ICsgKGJ1dHRvblJlY3Qud2lkdGggLSBzZWxmLl90YkJ1dHRvbnNbaWR4XS5fdGJJdGVtLkdl dEJpdG1hcCgpLkdldFdpZHRoKCkpLy8yCisrKyAgICAgICAgeSA9IHJlY3QueSArIChidXR0b25S ZWN0LmhlaWdodCAtIHNlbGYuX3RiQnV0dG9uc1tpZHhdLl90Ykl0ZW0uR2V0Qml0bWFwKCkuR2V0 SGVpZ2h0KCkpLy8yCisrIAorKyAgICAgICAgIGlmIHN0YXRlID09IENvbnRyb2xGb2N1czoKKysg CisrQEAgLTM3ODQsNyArMzc4NCw3IEBAIGRlZiBQb3NpdGlvbkFVSShzZWxmLCBtZ3IsIGZpeFRv b2xiYXI9VHJ1ZSk6CisrICAgICAgICAgcG4uTmFtZSgiZmxhdF9tZW51X2JhciIpCisrICAgICAg ICAgcG4uQ2FwdGlvbigiTWVudSBCYXIiKQorKyAgICAgICAgIHBuLlRvcCgpCisrLSAgICAgICAg cG4uTWluU2l6ZSh3eC5TaXplKHh4LzIsIHNlbGYuX2JhckhlaWdodCkpCisrKyAgICAgICAgcG4u TWluU2l6ZSh3eC5TaXplKHh4Ly8yLCBzZWxmLl9iYXJIZWlnaHQpKQorKyAgICAgICAgIHBuLkxl ZnREb2NrYWJsZShGYWxzZSkKKysgICAgICAgICBwbi5SaWdodERvY2thYmxlKEZhbHNlKQorKyAg ICAgICAgIHBuLlRvb2xiYXJQYW5lKCkKKytAQCAtMzk5Nyw4ICszOTk3LDggQEAgZGVmIERyYXco c2VsZiwgZGMpOgorKyAgICAgICAgICIiIgorKyAKKysgICAgICAgICByZWN0ID0gd3guUmVjdChz ZWxmLl9wb3MsIHNlbGYuX3NpemUpCisrLSAgICAgICAgeHggPSByZWN0LnggKyAocmVjdC53aWR0 aCAtIHNlbGYuX25vcm1hbEJtcC5HZXRXaWR0aCgpKS8yCisrLSAgICAgICAgeXkgPSByZWN0Lnkg KyAocmVjdC5oZWlnaHQgLSBzZWxmLl9ub3JtYWxCbXAuR2V0SGVpZ2h0KCkpLzIKKysrICAgICAg ICB4eCA9IHJlY3QueCArIChyZWN0LndpZHRoIC0gc2VsZi5fbm9ybWFsQm1wLkdldFdpZHRoKCkp Ly8yCisrKyAgICAgICAgeXkgPSByZWN0LnkgKyAocmVjdC5oZWlnaHQgLSBzZWxmLl9ub3JtYWxC bXAuR2V0SGVpZ2h0KCkpLy8yCisrIAorKyAgICAgICAgIHNlbGYuX3BhcmVudC5HZXRSZW5kZXJl cigpLkRyYXdTY3JvbGxCdXR0b24oZGMsIHJlY3QsIHNlbGYuX3N0YXRlKQorKyAgICAgICAgIGRj LkRyYXdCaXRtYXAoc2VsZi5fbm9ybWFsQm1wLCB4eCwgeXksIFRydWUpCisrZGlmZiAtLWdpdCBh L3d4L2xpYi9hZ3cvZmxhdG5vdGVib29rLnB5IGIvd3gvbGliL2Fndy9mbGF0bm90ZWJvb2sucHkK KytpbmRleCBmNWU1MjAwYjIuLjU2MTc0OWI4OSAxMDA2NDQKKystLS0gYS93eC9saWIvYWd3L2Zs YXRub3RlYm9vay5weQorKysrKyBiL3d4L2xpYi9hZ3cvZmxhdG5vdGVib29rLnB5CisrQEAgLTg1 OCw5ICs4NTgsOSBAQCBkZWYgUGFpbnRTdHJhaWdodEdyYWRpZW50Qm94KGRjLCByZWN0LCBzdGFy dENvbG91ciwgZW5kQ29sb3VyLCB2ZXJ0aWNhbD1UcnVlKToKKysgCisrICAgICBmb3IgaSBpbiBy YW5nZShoaWdoKzEpOgorKyAKKystICAgICAgICByID0gc3RhcnRDb2xvdXIuUmVkKCkgKyAoKGkq cmQqMTAwKS9oaWdoKS8xMDAKKystICAgICAgICBnID0gc3RhcnRDb2xvdXIuR3JlZW4oKSArICgo aSpnZCoxMDApL2hpZ2gpLzEwMAorKy0gICAgICAgIGIgPSBzdGFydENvbG91ci5CbHVlKCkgKyAo KGkqYmQqMTAwKS9oaWdoKS8xMDAKKysrICAgICAgICByID0gc3RhcnRDb2xvdXIuUmVkKCkgKyAo KGkqcmQqMTAwKS8vaGlnaCkvLzEwMAorKysgICAgICAgIGcgPSBzdGFydENvbG91ci5HcmVlbigp ICsgKChpKmdkKjEwMCkvL2hpZ2gpLy8xMDAKKysrICAgICAgICBiID0gc3RhcnRDb2xvdXIuQmx1 ZSgpICsgKChpKmJkKjEwMCkvL2hpZ2gpLy8xMDAKKysgCisrICAgICAgICAgcCA9IHd4LlBlbih3 eC5Db2xvdXIociwgZywgYikpCisrICAgICAgICAgZGMuU2V0UGVuKHApCisrQEAgLTI2MzEsOSAr MjYzMSw5IEBAIGRlZiBEcmF3VGFiKHNlbGYsIHBhZ2VDb250YWluZXIsIGRjLCBwb3N4LCB0YWJJ ZHgsIHRhYldpZHRoLCB0YWJIZWlnaHQsIGJ0blN0YXR1CisrICAgICAgICAgaW1hZ2VZQ29vcmQg PSAocGMuSGFzQUdXRmxhZyhGTkJfQk9UVE9NKSBhbmQgWzZdIG9yIFs4XSlbMF0KKysgCisrICAg ICAgICAgaWYgaGFzSW1hZ2U6CisrLSAgICAgICAgICAgIHRleHRPZmZzZXQgPSAyKnBjLl9wUGFy ZW50Ll9uUGFkZGluZyArIDE2ICsgc2hhcGVQb2ludHMvMgorKysgICAgICAgICAgICB0ZXh0T2Zm c2V0ID0gMipwYy5fcFBhcmVudC5fblBhZGRpbmcgKyAxNiArIHNoYXBlUG9pbnRzLy8yCisrICAg ICAgICAgZWxzZToKKystICAgICAgICAgICAgdGV4dE9mZnNldCA9IHBjLl9wUGFyZW50Ll9uUGFk ZGluZyArIHNoYXBlUG9pbnRzLzIKKysrICAgICAgICAgICAgdGV4dE9mZnNldCA9IHBjLl9wUGFy ZW50Ll9uUGFkZGluZyArIHNoYXBlUG9pbnRzLy8yCisrIAorKyAgICAgICAgIHRleHRPZmZzZXQg Kz0gMgorKyAKKytkaWZmIC0tZ2l0IGEvd3gvbGliL2Fndy9mbG9hdHNwaW4ucHkgYi93eC9saWIv YWd3L2Zsb2F0c3Bpbi5weQorK2luZGV4IGJkYmFmODVlYy4uNDU1OWViNWRlIDEwMDY0NAorKy0t LSBhL3d4L2xpYi9hZ3cvZmxvYXRzcGluLnB5CisrKysrIGIvd3gvbGliL2Fndy9mbG9hdHNwaW4u cHkKKytAQCAtMzM2LDcgKzMzNiw3IEBAIGNsYXNzIEZsb2F0U3Bpbih3eC5Db250cm9sKToKKysg ICAgICIiIgorKyAKKysgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJlbnQsIGlkPXd4LklEX0FO WSwgcG9zPXd4LkRlZmF1bHRQb3NpdGlvbiwKKystICAgICAgICAgICAgICAgICBzaXplPSg5NSwt MSksIHN0eWxlPTAsIHZhbHVlPTAuMCwgbWluX3ZhbD1Ob25lLCBtYXhfdmFsPU5vbmUsCisrKyAg ICAgICAgICAgICAgICAgc2l6ZT13eC5EZWZhdWx0U2l6ZSwgc3R5bGU9MCwgdmFsdWU9MC4wLCBt aW5fdmFsPU5vbmUsIG1heF92YWw9Tm9uZSwKKysgICAgICAgICAgICAgICAgICBpbmNyZW1lbnQ9 MS4wLCBkaWdpdHM9LTEsIGFnd1N0eWxlPUZTX0xFRlQsCisrICAgICAgICAgICAgICAgICAgbmFt ZT0iRmxvYXRTcGluIik6CisrICAgICAgICAgIiIiCisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hZ3cv Z3JhZGllbnRidXR0b24ucHkgYi93eC9saWIvYWd3L2dyYWRpZW50YnV0dG9uLnB5CisraW5kZXgg YzQ2MzNiMjk2Li41ODYyNWM1MDggMTAwNjQ0CisrLS0tIGEvd3gvbGliL2Fndy9ncmFkaWVudGJ1 dHRvbi5weQorKysrKyBiL3d4L2xpYi9hZ3cvZ3JhZGllbnRidXR0b24ucHkKKytAQCAtNDEyLDE0 ICs0MTIsMTQgQEAgZGVmIE9uUGFpbnQoc2VsZiwgZXZlbnQpOgorKyAKKysgICAgICAgICB4LCB5 LCB3aWR0aCwgaGVpZ2h0ID0gY2xpZW50UmVjdAorKyAKKystICAgICAgICBncmFkaWVudFJlY3Qu U2V0SGVpZ2h0KGdyYWRpZW50UmVjdC5HZXRIZWlnaHQoKS8yICsgKChjYXB0dXJlPT1zZWxmIGFu ZCBbMV0gb3IgWzBdKVswXSkpCisrKyAgICAgICAgZ3JhZGllbnRSZWN0LlNldEhlaWdodChncmFk aWVudFJlY3QuR2V0SGVpZ2h0KCkvLzIgKyAoKGNhcHR1cmU9PXNlbGYgYW5kIFsxXSBvciBbMF0p WzBdKSkKKysgICAgICAgICBpZiBjYXB0dXJlICE9IHNlbGY6CisrICAgICAgICAgICAgIGlmIHNl bGYuX21vdXNlQWN0aW9uID09IEhPVkVSOgorKyAgICAgICAgICAgICAgICAgdG9wU3RhcnQsIHRv cEVuZCA9IHNlbGYuTGlnaHRDb2xvdXIoc2VsZi5fdG9wU3RhcnRDb2xvdXIsIDEwKSwgc2VsZi5M aWdodENvbG91cihzZWxmLl90b3BFbmRDb2xvdXIsIDEwKQorKyAgICAgICAgICAgICBlbHNlOgor KyAgICAgICAgICAgICAgICAgdG9wU3RhcnQsIHRvcEVuZCA9IHNlbGYuX3RvcFN0YXJ0Q29sb3Vy LCBzZWxmLl90b3BFbmRDb2xvdXIKKysgCisrLSAgICAgICAgICAgIHJjMSA9IHd4LlJlY3QoeCwg eSwgd2lkdGgsIGhlaWdodC8yKQorKysgICAgICAgICAgICByYzEgPSB3eC5SZWN0KHgsIHksIHdp ZHRoLCBoZWlnaHQvLzIpCisrICAgICAgICAgICAgIHBhdGgxID0gc2VsZi5HZXRQYXRoKGdjLCBy YzEsIDgpCisrICAgICAgICAgICAgIGJyMSA9IGdjLkNyZWF0ZUxpbmVhckdyYWRpZW50QnJ1c2go eCwgeSwgeCwgeStoZWlnaHQvMiwgdG9wU3RhcnQsIHRvcEVuZCkKKysgICAgICAgICAgICAgZ2Mu U2V0QnJ1c2goYnIxKQorK0BAIC00NDgsNyArNDQ4LDcgQEAgZGVmIE9uUGFpbnQoc2VsZiwgZXZl bnQpOgorKyAgICAgICAgICAgICBlbHNlOgorKyAgICAgICAgICAgICAgICAgYm90dG9tU3RhcnQs IGJvdHRvbUVuZCA9IHNlbGYuX2JvdHRvbVN0YXJ0Q29sb3VyLCBzZWxmLl9ib3R0b21FbmRDb2xv dXIKKysgCisrLSAgICAgICAgICAgIHJjMyA9IHd4LlJlY3QoeCwgeStoZWlnaHQvMiwgd2lkdGgs IGhlaWdodC8yKQorKysgICAgICAgICAgICByYzMgPSB3eC5SZWN0KHgsIHkraGVpZ2h0Ly8yLCB3 aWR0aCwgaGVpZ2h0Ly8yKQorKyAgICAgICAgICAgICBwYXRoMyA9IHNlbGYuR2V0UGF0aChnYywg cmMzLCA4KQorKyAgICAgICAgICAgICBicjMgPSBnYy5DcmVhdGVMaW5lYXJHcmFkaWVudEJydXNo KHgsIHkraGVpZ2h0LzIsIHgsIHkraGVpZ2h0LCBib3R0b21TdGFydCwgYm90dG9tRW5kKQorKyAg ICAgICAgICAgICBnYy5TZXRCcnVzaChicjMpCisrQEAgLTQ2Myw3ICs0NjMsNyBAQCBkZWYgT25Q YWludChzZWxmLCBldmVudCk6CisrICAgICAgICAgICAgIHNoYWRvd09mZnNldCA9IDAKKysgICAg ICAgICBlbHNlOgorKyAKKystICAgICAgICAgICAgcmMyID0gd3guUmVjdCh4KzEsIGdyYWRpZW50 UmVjdC5oZWlnaHQvMiwgZ3JhZGllbnRSZWN0LndpZHRoLCBncmFkaWVudFJlY3QuaGVpZ2h0KQor KysgICAgICAgICAgICByYzIgPSB3eC5SZWN0KHgrMSwgZ3JhZGllbnRSZWN0LmhlaWdodC8vMiwg Z3JhZGllbnRSZWN0LndpZHRoLCBncmFkaWVudFJlY3QuaGVpZ2h0KQorKyAgICAgICAgICAgICBw YXRoMiA9IHNlbGYuR2V0UGF0aChnYywgcmMyLCA4KQorKyAgICAgICAgICAgICBnYy5TZXRQZW4o d3guUGVuKHNlbGYuX3ByZXNzZWRCb3R0b21Db2xvdXIpKQorKyAgICAgICAgICAgICBnYy5TZXRC cnVzaCh3eC5CcnVzaChzZWxmLl9wcmVzc2VkQm90dG9tQ29sb3VyKSkKKytkaWZmIC0tZ2l0IGEv d3gvbGliL2Fndy9oeXBlcnRyZWVsaXN0LnB5IGIvd3gvbGliL2Fndy9oeXBlcnRyZWVsaXN0LnB5 CisraW5kZXggMTIzMDJmM2IwLi4zNzdhYzAxMjEgMTAwNjQ0CisrLS0tIGEvd3gvbGliL2Fndy9o eXBlcnRyZWVsaXN0LnB5CisrKysrIGIvd3gvbGliL2Fndy9oeXBlcnRyZWVsaXN0LnB5CisrQEAg LTM0MzcsNyArMzQzNyw3IEBAIGRlZiBQYWludExldmVsKHNlbGYsIGl0ZW0sIGRjLCBsZXZlbCwg eSwgeF9tYWluY29sKToKKysgCisrICAgICAgICAgICAgIGlmIG5vdCBzZWxmLkhhc0FHV0ZsYWco d3guVFJfTk9fTElORVMpIGFuZCBjaGlsZHJlbjoKKysgICAgICAgICAgICAgICAgIGxhc3RfY2hp bGQgPSBjaGlsZHJlblstMV0KKystICAgICAgICAgICAgICAgIFkxID0gbGFzdF9jaGlsZC5HZXRZ KCkgKyBsYXN0X2NoaWxkLkdldEhlaWdodCgpIC8gMgorKysgICAgICAgICAgICAgICAgWTEgPSBs YXN0X2NoaWxkLkdldFkoKSArIGxhc3RfY2hpbGQuR2V0SGVpZ2h0KCkgLy8gMgorKyAgICAgICAg ICAgICAgICAgZGMuRHJhd0xpbmUoeCwgb2xkWSwgeCwgWTEpCisrIAorKyAgICAgICAgIHJldHVy biB5LCB4X21haW5jb2wKKytkaWZmIC0tZ2l0IGEvd3gvbGliL2Fndy9rbm9iY3RybC5weSBiL3d4 L2xpYi9hZ3cva25vYmN0cmwucHkKKytpbmRleCA3NDIwOTdiMDkuLjFlNTA0NWZmNiAxMDA2NDQK KystLS0gYS93eC9saWIvYWd3L2tub2JjdHJsLnB5CisrKysrIGIvd3gvbGliL2Fndy9rbm9iY3Ry bC5weQorK0BAIC0zMjUsNyArMzI1LDcgQEAgZGVmIE9uU2l6ZShzZWxmLGV2ZW50KToKKysgICAg ICAgICBtZW1vcnkuQ2xlYXIoKQorKyAKKysgICAgICAgICBtaW5yYWRpdXMgPSBtaW4oMC45KnNl bGYuV2lkdGgvMi4wLCAwLjkqc2VsZi5IZWlnaHQvMi4wKQorKy0gICAgICAgIG1lbW9yeS5EcmF3 Q2lyY2xlKHNlbGYuV2lkdGgvLzIsIHNlbGYuSGVpZ2h0Ly8yLCBtaW5yYWRpdXMpCisrKyAgICAg ICAgbWVtb3J5LkRyYXdDaXJjbGUoc2VsZi5XaWR0aC8vMiwgc2VsZi5IZWlnaHQvLzIsIGludCht aW5yYWRpdXMpKQorKyAgICAgICAgIG1lbW9yeS5TZWxlY3RPYmplY3Qod3guTnVsbEJpdG1hcCkK KysgICAgICAgICBzZWxmLl9yZWdpb24gPSB3eC5SZWdpb24oc2VsZi5fQnVmZmVyLCBzZWxmLkdl dEJhY2tncm91bmRDb2xvdXIoKSkKKysgICAgICAgICBzZWxmLl9taW5yYWRpdXMgPSBtaW5yYWRp dXMKKytAQCAtNjQ1LDggKzY0NSw4IEBAIGRlZiBEcmF3VGFncyhzZWxmLCBkYywgc2l6ZSk6Cisr ICAgICAgICAgICAgIGR4aSA9IG1hdGguY29zKGFuZ2xlKSooKHdpZHRoIC0geHNoaWZ0ICsgdGFn TGVuIC0gNikvMi4wIC0gdGFnTGVuKQorKyAgICAgICAgICAgICBkeWkgPSBtYXRoLnNpbihhbmds ZSkqKChoZWlnaHQgLSB5c2hpZnQgKyB0YWdMZW4gLSA2KS8yLjAgLSB0YWdMZW4pCisrIAorKy0g ICAgICAgICAgICBkYy5EcmF3TGluZSh3aWR0aC8vMiAtIHN4aSwgaGVpZ2h0Ly8yIC0gc3lpLAor Ky0gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aC8vMiAtIGR4aSwgaGVpZ2h0Ly8yIC0gZHlp KQorKysgICAgICAgICAgICBkYy5EcmF3TGluZShpbnQod2lkdGgvLzIgLSBzeGkpLCBpbnQoaGVp Z2h0Ly8yIC0gc3lpKSwKKysrICAgICAgICAgICAgICAgICAgICAgICAgaW50KHdpZHRoLy8yIC0g ZHhpKSwgaW50KGhlaWdodC8vMiAtIGR5aSkpCisrIAorKyAKKysgICAgIGRlZiBEcmF3RGlhZ29u YWxHcmFkaWVudChzZWxmLCBkYywgc2l6ZSk6CisrQEAgLTc1OSw4ICs3NTksOCBAQCBkZWYgRHJh d0luc2V0Q2lyY2xlKHNlbGYsIGRjLCBwZW5jb2xvdXIpOgorKyAgICAgICAgIHAxID0gd3guUGVu KHNlbGYuT2Zmc2V0Q29sb3VyKHBlbmNvbG91ciwgLTcwKSwgMikKKysgICAgICAgICBwMiA9IHd4 LlBlbihzZWxmLk9mZnNldENvbG91cihwZW5jb2xvdXIsIDEwKSwgMSkKKysgCisrLSAgICAgICAg cHQxID0gd3guUG9pbnQoY3gtciptYXRoLnNxcnQoMikvMi4wLCBjeStyKm1hdGguc3FydCgyKS8y LjApCisrLSAgICAgICAgcHQyID0gd3guUG9pbnQoY3grciptYXRoLnNxcnQoMikvMi4wLCBjeS1y Km1hdGguc3FydCgyKS8yLjApCisrKyAgICAgICAgcHQxID0gd3guUG9pbnQoaW50KGN4LXIqbWF0 aC5zcXJ0KDIpLzIuMCksIGludChjeStyKm1hdGguc3FydCgyKS8yLjApKQorKysgICAgICAgIHB0 MiA9IHd4LlBvaW50KGludChjeCtyKm1hdGguc3FydCgyKS8yLjApLCBpbnQoY3ktciptYXRoLnNx cnQoMikvMi4wKSkKKysgCisrICAgICAgICAgZGMuU2V0UGVuKHAyKQorKyAgICAgICAgIGRjLkRy YXdBcmMocHQxLCBwdDIsIChjeCwgY3kpKQorK0BAIC03NzksNyArNzc5LDcgQEAgZGVmIERyYXdC b3VuZGluZ0NpcmNsZShzZWxmLCBkYywgc2l6ZSk6CisrICAgICAgICAgcmFkaXVzID0gMC45Km1p bihzaXplLngsIHNpemUueSkvMi4wCisrICAgICAgICAgZGMuU2V0QnJ1c2god3guVFJBTlNQQVJF TlRfQlJVU0gpCisrICAgICAgICAgZGMuU2V0UGVuKHd4LlBlbihzZWxmLl9ib3VuZGluZ2NvbG91 cikpCisrLSAgICAgICAgZGMuRHJhd0NpcmNsZShzZWxmLldpZHRoLy8yLCBzZWxmLkhlaWdodC8v MiwgcmFkaXVzKQorKysgICAgICAgIGRjLkRyYXdDaXJjbGUoc2VsZi5XaWR0aC8vMiwgc2VsZi5I ZWlnaHQvLzIsIGludChyYWRpdXMpKQorKyAKKysgCisrICAgICBkZWYgQ2lyY2xlQ29vcmRzKHNl bGYsIHJhZGl1cywgYW5nbGUsIGNlbnRlclgsIGNlbnRlclkpOgorK2RpZmYgLS1naXQgYS93eC9s aWIvYWd3L2xhYmVsYm9vay5weSBiL3d4L2xpYi9hZ3cvbGFiZWxib29rLnB5CisraW5kZXggYjcx NmRmM2EyLi5mOGM5Y2Q1NGQgMTAwNjQ0CisrLS0tIGEvd3gvbGliL2Fndy9sYWJlbGJvb2sucHkK KysrKysgYi93eC9saWIvYWd3L2xhYmVsYm9vay5weQorK0BAIC0xMzc2LDEzICsxMzc2LDEzIEBA IGRlZiBPblBhaW50KHNlbGYsIGV2ZW50KToKKysgCisrICAgICAgICAgICAgICAgICBpZiBiVXNl WWNvb3JkOgorKyAKKystICAgICAgICAgICAgICAgICAgICBpbWdYY29vcmQgPSBzZWxmLl9uSW1n U2l6ZSAvIDIKKystICAgICAgICAgICAgICAgICAgICBpbWdZY29vcmQgPSAoc3R5bGUgJiBJTkJf U0hPV19PTkxZX0lNQUdFUyBhbmQgW3BvcyArIHNlbGYuX25JbWdTaXplIC8gMl0gb3IgW3BvcyAr IGltZ1RvcFBhZGRpbmddKVswXQorKysgICAgICAgICAgICAgICAgICAgIGltZ1hjb29yZCA9IHNl bGYuX25JbWdTaXplIC8vIDIKKysrICAgICAgICAgICAgICAgICAgICBpbWdZY29vcmQgPSAoc3R5 bGUgJiBJTkJfU0hPV19PTkxZX0lNQUdFUyBhbmQgW3BvcyArIHNlbGYuX25JbWdTaXplIC8vIDJd IG9yIFtwb3MgKyBpbWdUb3BQYWRkaW5nXSlbMF0KKysgCisrICAgICAgICAgICAgICAgICBlbHNl OgorKyAKKystICAgICAgICAgICAgICAgICAgICBpbWdYY29vcmQgPSBwb3MgKyAocmVjdFdpZHRo IC8gMikgLSAoc2VsZi5fbkltZ1NpemUgLyAyKQorKy0gICAgICAgICAgICAgICAgICAgIGltZ1lj b29yZCA9IChzdHlsZSAmIElOQl9TSE9XX09OTFlfSU1BR0VTIGFuZCBbc2VsZi5fbkltZ1NpemUg LyAyXSBvciBbaW1nVG9wUGFkZGluZ10pWzBdCisrKyAgICAgICAgICAgICAgICAgICAgaW1nWGNv b3JkID0gcG9zICsgKHJlY3RXaWR0aCAvLyAyKSAtIChzZWxmLl9uSW1nU2l6ZSAvLyAyKQorKysg ICAgICAgICAgICAgICAgICAgIGltZ1ljb29yZCA9IChzdHlsZSAmIElOQl9TSE9XX09OTFlfSU1B R0VTIGFuZCBbc2VsZi5fbkltZ1NpemUgLy8gMl0gb3IgW2ltZ1RvcFBhZGRpbmddKVswXQorKyAK KysgICAgICAgICAgICAgICAgIHNlbGYuX0ltYWdlTGlzdC5EcmF3KHNlbGYuX3BhZ2VzSW5mb1Zl Y1tpXS5HZXRJbWFnZUluZGV4KCksIGRjLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW1nWGNvb3JkLCBpbWdZY29vcmQsCisrQEAgLTE0MDgsMTUgKzE0MDgsMTUgQEAg ZGVmIE9uUGFpbnQoc2VsZiwgZXZlbnQpOgorKyAKKysgICAgICAgICAgICAgICAgIGlmIGJVc2VZ Y29vcmQ6CisrIAorKy0gICAgICAgICAgICAgICAgICAgIHRleHRPZmZzZXRYID0gKChyZWN0V2lk dGggLSB0ZXh0V2lkdGgpIC8gMiApCisrKyAgICAgICAgICAgICAgICAgICAgdGV4dE9mZnNldFgg PSAoKHJlY3RXaWR0aCAtIHRleHRXaWR0aCkgLy8gMiApCisrICAgICAgICAgICAgICAgICAgICAg dGV4dE9mZnNldFkgPSAobm90IHN0eWxlICYgSU5CX1NIT1dfT05MWV9URVhUICBhbmQgW3BvcyAr IHNlbGYuX25JbWdTaXplICArIGltZ1RvcFBhZGRpbmcgKyAzXSBvciBcCisrLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwb3MgKyAoKHNlbGYuX25JbWdTaXplICogMiAt IHRleHRIZWlnaHQpIC8gMiApXSlbMF0KKysrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgW3BvcyArICgoc2VsZi5fbkltZ1NpemUgKiAyIC0gdGV4dEhlaWdodCkgLy8gMiAp XSlbMF0KKysgCisrICAgICAgICAgICAgICAgICBlbHNlOgorKyAKKystICAgICAgICAgICAgICAg ICAgICB0ZXh0T2Zmc2V0WCA9IChyZWN0V2lkdGggLSB0ZXh0V2lkdGgpIC8gMiAgKyBwb3MgKyBu VGV4dFBhZGRpbmdMZWZ0CisrKyAgICAgICAgICAgICAgICAgICAgdGV4dE9mZnNldFggPSAocmVj dFdpZHRoIC0gdGV4dFdpZHRoKSAvLyAyICArIHBvcyArIG5UZXh0UGFkZGluZ0xlZnQKKysgICAg ICAgICAgICAgICAgICAgICB0ZXh0T2Zmc2V0WSA9IChub3Qgc3R5bGUgJiBJTkJfU0hPV19PTkxZ X1RFWFQgYW5kIFtzZWxmLl9uSW1nU2l6ZSArIGltZ1RvcFBhZGRpbmcgKyAzXSBvciBcCisrLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoKHNlbGYuX25JbWdTaXplICog MiAtIHRleHRIZWlnaHQpIC8gMiApXSlbMF0KKysrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgWygoc2VsZi5fbkltZ1NpemUgKiAyIC0gdGV4dEhlaWdodCkgLy8gMiApXSlb MF0KKysgCisrICAgICAgICAgICAgICAgICBkYy5TZXRUZXh0Rm9yZWdyb3VuZCh3eC5TeXN0ZW1T ZXR0aW5ncy5HZXRDb2xvdXIod3guU1lTX0NPTE9VUl9XSU5ET1dURVhUKSkKKysgICAgICAgICAg ICAgICAgIGRjLkRyYXdUZXh0KGZpeGVkVGV4dCwgdGV4dE9mZnNldFgsIHRleHRPZmZzZXRZKQor K0BAIC0xNTkxLDggKzE1OTEsOCBAQCBkZWYgT25QYWludChzZWxmLCBldmVudCk6CisrICAgICAg ICAgICAgICMgRHJhdyBncmFkaWVudCBpbiB0aGUgYmFja2dyb3VuZCBhcmVhCisrICAgICAgICAg ICAgIHN0YXJ0Q29sb3VyID0gc2VsZi5fY29sb3Vyc01hcFtJTkJfVEFCX0FSRUFfQkFDS0dST1VO RF9DT0xPVVJdCisrICAgICAgICAgICAgIGVuZENvbG91ciAgID0gQXJ0TWFuYWdlci5HZXQoKS5M aWdodENvbG91cihzZWxmLl9jb2xvdXJzTWFwW0lOQl9UQUJfQVJFQV9CQUNLR1JPVU5EX0NPTE9V Ul0sIDUwKQorKy0gICAgICAgICAgICBBcnRNYW5hZ2VyLkdldCgpLlBhaW50U3RyYWlnaHRHcmFk aWVudEJveChkYywgd3guUmVjdCgwLCAwLCBzaXplLnggLyAyLCBzaXplLnkpLCBzdGFydENvbG91 ciwgZW5kQ29sb3VyLCBGYWxzZSkKKystICAgICAgICAgICAgQXJ0TWFuYWdlci5HZXQoKS5QYWlu dFN0cmFpZ2h0R3JhZGllbnRCb3goZGMsIHd4LlJlY3Qoc2l6ZS54IC8gMiwgMCwgc2l6ZS54IC8g Miwgc2l6ZS55KSwgZW5kQ29sb3VyLCBzdGFydENvbG91ciwgRmFsc2UpCisrKyAgICAgICAgICAg IEFydE1hbmFnZXIuR2V0KCkuUGFpbnRTdHJhaWdodEdyYWRpZW50Qm94KGRjLCB3eC5SZWN0KDAs IDAsIHNpemUueCAvLyAyLCBzaXplLnkpLCBzdGFydENvbG91ciwgZW5kQ29sb3VyLCBGYWxzZSkK KysrICAgICAgICAgICAgQXJ0TWFuYWdlci5HZXQoKS5QYWludFN0cmFpZ2h0R3JhZGllbnRCb3go ZGMsIHd4LlJlY3Qoc2l6ZS54IC8vIDIsIDAsIHNpemUueCAvLyAyLCBzaXplLnkpLCBlbmRDb2xv dXIsIHN0YXJ0Q29sb3VyLCBGYWxzZSkKKysgCisrICAgICAgICAgZWxzZToKKysgCisrQEAgLTE2 MzgsNyArMTYzOCw3IEBAIGRlZiBPblBhaW50KHNlbGYsIGV2ZW50KToKKysgCisrICAgICAgICAg ICAgIGlmIHNlbGYuSGFzQUdXRmxhZyhJTkJfU0hPV19PTkxZX1RFWFQpOgorKyAgICAgICAgICAg ICAgICAgZm9udCA9IHd4LlN5c3RlbVNldHRpbmdzLkdldEZvbnQod3guU1lTX0RFRkFVTFRfR1VJ X0ZPTlQpCisrLSAgICAgICAgICAgICAgICBmb250LlNldFBvaW50U2l6ZShmb250LkdldFBvaW50 U2l6ZSgpICogc2VsZi5HZXRQYXJlbnQoKS5HZXRGb250U2l6ZU11bHRpcGxlKCkpCisrKyAgICAg ICAgICAgICAgICBmb250LlNldFBvaW50U2l6ZShpbnQoZm9udC5HZXRQb2ludFNpemUoKSAqIHNl bGYuR2V0UGFyZW50KCkuR2V0Rm9udFNpemVNdWx0aXBsZSgpKSkKKysgCisrICAgICAgICAgICAg ICAgICBpZiBzZWxmLkdldFBhcmVudCgpLkdldEZvbnRCb2xkKCk6CisrICAgICAgICAgICAgICAg ICAgICAgZm9udC5TZXRXZWlnaHQod3guRk9OVFdFSUdIVF9CT0xEKQorK0BAIC0xOTU0LDcgKzE5 NTQsNyBAQCBkZWYgRHJhd1dlYkhvdmVyKHNlbGYsIGRjLCBjYXB0aW9uLCB4Q29vcmQsIHlDb29y ZCwgc2VsZWN0ZWQpOgorKyAKKysgICAgICAgICAjIFJlZHJhdyB0aGUgdGV4dCB3aXRoIHVuZGVy bGluZWQgZm9udAorKyAgICAgICAgIHVuZGVyTGluZWRGb250ID0gd3guU3lzdGVtU2V0dGluZ3Mu R2V0Rm9udCh3eC5TWVNfREVGQVVMVF9HVUlfRk9OVCkKKystICAgICAgICB1bmRlckxpbmVkRm9u dC5TZXRQb2ludFNpemUodW5kZXJMaW5lZEZvbnQuR2V0UG9pbnRTaXplKCkgKiBzZWxmLkdldFBh cmVudCgpLkdldEZvbnRTaXplTXVsdGlwbGUoKSkKKysrICAgICAgICB1bmRlckxpbmVkRm9udC5T ZXRQb2ludFNpemUoaW50KHVuZGVyTGluZWRGb250LkdldFBvaW50U2l6ZSgpICogc2VsZi5HZXRQ YXJlbnQoKS5HZXRGb250U2l6ZU11bHRpcGxlKCkpKQorKyAgICAgICAgIGlmIHNlbGYuR2V0UGFy ZW50KCkuR2V0Rm9udEJvbGQoKToKKysgICAgICAgICAgICAgdW5kZXJMaW5lZEZvbnQuU2V0V2Vp Z2h0KHd4LkZPTlRXRUlHSFRfQk9MRCkKKysgICAgICAgICBlbGlmIHNlbGYuSGFzQUdXRmxhZyhJ TkJfQk9MRF9UQUJfU0VMRUNUSU9OKSBhbmQgc2VsZWN0ZWQ6CisrQEAgLTIwNTAsNyArMjA1MCw3 IEBAIGRlZiBEcmF3TGFiZWwoc2VsZiwgZGMsIHJlY3QsIHRleHQsIGJtcCwgaW1nSW5mbywgb3Jp ZW50YXRpb25MZWZ0LCBpbWdJZHgsIHNlbGVjCisrICAgICAgICAgaW1nUmVjdCA9IHd4LlJlY3Qo KnJlY3QpCisrIAorKyAgICAgICAgIGZvbnQgPSB3eC5TeXN0ZW1TZXR0aW5ncy5HZXRGb250KHd4 LlNZU19ERUZBVUxUX0dVSV9GT05UKQorKy0gICAgICAgIGZvbnQuU2V0UG9pbnRTaXplKGZvbnQu R2V0UG9pbnRTaXplKCkgKiBzZWxmLkdldFBhcmVudCgpLkdldEZvbnRTaXplTXVsdGlwbGUoKSkK KysrICAgICAgICBmb250LlNldFBvaW50U2l6ZShpbnQoZm9udC5HZXRQb2ludFNpemUoKSAqIHNl bGYuR2V0UGFyZW50KCkuR2V0Rm9udFNpemVNdWx0aXBsZSgpKSkKKysgCisrICAgICAgICAgaWYg c2VsZi5HZXRQYXJlbnQoKS5HZXRGb250Qm9sZCgpOgorKyAgICAgICAgICAgICBmb250LlNldFdl aWdodCh3eC5GT05UV0VJR0hUX0JPTEQpCisrQEAgLTIwNjksNyArMjA2OSw3IEBAIGRlZiBEcmF3 TGFiZWwoc2VsZiwgZGMsIHJlY3QsIHRleHQsIGJtcCwgaW1nSW5mbywgb3JpZW50YXRpb25MZWZ0 LCBpbWdJZHgsIHNlbGVjCisrIAorKyAgICAgICAgICMgVGV4dCBib3VuZGluZyByZWN0YW5nbGUK KysgICAgICAgICB0ZXh0UmVjdC54ICs9IG5QYWRkaW5nCisrLSAgICAgICAgdGV4dFJlY3QueSA9 IHJlY3QueSArIChyZWN0LmhlaWdodCAtIGgpLzIKKysrICAgICAgICB0ZXh0UmVjdC55ID0gcmVj dC55ICsgKHJlY3QuaGVpZ2h0IC0gaCkvLzIKKysgICAgICAgICB0ZXh0UmVjdC53aWR0aCA9IHJl Y3Qud2lkdGggLSAyICogblBhZGRpbmcKKysgCisrICAgICAgICAgaWYgYm1wLklzT2soKSBhbmQg bm90IHNlbGYuSGFzQUdXRmxhZyhJTkJfU0hPV19PTkxZX1RFWFQpOgorK0BAIC0yMDg2LDcgKzIw ODYsNyBAQCBkZWYgRHJhd0xhYmVsKHNlbGYsIGRjLCByZWN0LCB0ZXh0LCBibXAsIGltZ0luZm8s IG9yaWVudGF0aW9uTGVmdCwgaW1nSWR4LCBzZWxlYworKyAKKysgICAgICAgICAgICAgaW1nUmVj dC54ICs9IG5QYWRkaW5nCisrICAgICAgICAgICAgIGltZ1JlY3Qud2lkdGggPSBibXAuR2V0V2lk dGgoKQorKy0gICAgICAgICAgICBpbWdSZWN0LnkgPSByZWN0LnkgKyAocmVjdC5oZWlnaHQgLSBi bXAuR2V0SGVpZ2h0KCkpLzIKKysrICAgICAgICAgICAgaW1nUmVjdC55ID0gcmVjdC55ICsgKHJl Y3QuaGVpZ2h0IC0gYm1wLkdldEhlaWdodCgpKS8vMgorKyAgICAgICAgICAgICBpbWdSZWN0Lmhl aWdodCA9IGJtcC5HZXRIZWlnaHQoKQorKyAKKysgICAgICAgICAjIERyYXcgYm91bmRpbmcgcmVj dGFuZ2xlCisrQEAgLTI0OTYsNyArMjQ5Niw3IEBAIGRlZiBSZXNpemVUYWJBcmVhKHNlbGYpOgor KyAgICAgICAgICAgICBkYyA9IHd4Lk1lbW9yeURDKCkKKysgICAgICAgICAgICAgZGMuU2VsZWN0 T2JqZWN0KHd4LkJpdG1hcCgxLCAxKSkKKysgICAgICAgICAgICAgZm9udCA9IHd4LlN5c3RlbVNl dHRpbmdzLkdldEZvbnQod3guU1lTX0RFRkFVTFRfR1VJX0ZPTlQpCisrLSAgICAgICAgICAgIGZv bnQuU2V0UG9pbnRTaXplKGZvbnQuR2V0UG9pbnRTaXplKCkqc2VsZi5fZm9udFNpemVNdWx0aXBs ZSkKKysrICAgICAgICAgICAgZm9udC5TZXRQb2ludFNpemUoaW50KGZvbnQuR2V0UG9pbnRTaXpl KCkqc2VsZi5fZm9udFNpemVNdWx0aXBsZSkpCisrICAgICAgICAgICAgIGlmIHNlbGYuR2V0Rm9u dEJvbGQoKSBvciBhZ3dTdHlsZSAmIElOQl9CT0xEX1RBQl9TRUxFQ1RJT046CisrICAgICAgICAg ICAgICAgICBmb250LlNldFdlaWdodCh3eC5GT05UV0VJR0hUX0JPTEQpCisrICAgICAgICAgICAg IGRjLlNldEZvbnQoZm9udCkKKytkaWZmIC0tZ2l0IGEvd3gvbGliL2Fndy9wZWFrbWV0ZXIucHkg Yi93eC9saWIvYWd3L3BlYWttZXRlci5weQorK2luZGV4IDA1NWRiZWY4MS4uYTVmODhhOWQ1IDEw MDY0NAorKy0tLSBhL3d4L2xpYi9hZ3cvcGVha21ldGVyLnB5CisrKysrIGIvd3gvbGliL2Fndy9w ZWFrbWV0ZXIucHkKKytAQCAtNzg0LDcgKzc4NCw3IEBAIGRlZiBEcmF3SG9yekJhbmQoc2VsZiwg ZGMsIHJlY3QpOgorKyAgICAgICAgICAgICAgICAgbWF4V2lkdGggPSBzaXplLngqaG9yekJhbmRz CisrICAgICAgICAgICAgICAgICBwb2ludHMgPSBbd3guUG9pbnQoKSBmb3IgaSBpbiByYW5nZSgy KV0KKysgICAgICAgICAgICAgICAgIHBvaW50c1swXS55ID0gcmVjdFByZXYuR2V0VG9wUmlnaHQo KS55IC0geURlY2FsCisrLSAgICAgICAgICAgICAgICBwb2ludHNbMF0ueCA9IHJlY3RQcmV2Lkdl dEJvdHRvbUxlZnQoKS54ICsgc2VsZi5fbWV0ZXJEYXRhW3ZlcnRdLl9mYWxsb2ZmKm1heFdpZHRo L3NlbGYuX21heFZhbHVlCisrKyAgICAgICAgICAgICAgICBwb2ludHNbMF0ueCA9IHJlY3RQcmV2 LkdldEJvdHRvbUxlZnQoKS54ICsgc2VsZi5fbWV0ZXJEYXRhW3ZlcnRdLl9mYWxsb2ZmKm1heFdp ZHRoLy9zZWxmLl9tYXhWYWx1ZQorKyAgICAgICAgICAgICAgICAgcG9pbnRzWzFdLnkgPSByZWN0 UHJldi5HZXRCb3R0b21MZWZ0KCkueSArIHlEZWNhbAorKyAgICAgICAgICAgICAgICAgcG9pbnRz WzFdLnggPSBwb2ludHNbMF0ueAorKyAgICAgICAgICAgICAgICAgZGMuU2V0UGVuKHBlbikKKytk aWZmIC0tZ2l0IGEvd3gvbGliL2Fndy9weWdhdWdlLnB5IGIvd3gvbGliL2Fndy9weWdhdWdlLnB5 CisraW5kZXggYmFiNDU5YTNhLi5iODY1NDQzNmEgMTAwNjQ0CisrLS0tIGEvd3gvbGliL2Fndy9w eWdhdWdlLnB5CisrKysrIGIvd3gvbGliL2Fndy9weWdhdWdlLnB5CisrQEAgLTM0NCw3ICszNDQs NyBAQCBkZWYgT25QYWludChzZWxmLCBldmVudCk6CisrICAgICAgICAgICAgICAgICBjMSxjMiA9 IGdyYWRpZW50CisrICAgICAgICAgICAgICAgICB3ID0gcmVjdC53aWR0aCAqIChmbG9hdChzZWxm Ll92YWx1ZVNvcnRlZFtpXSkgLyBzZWxmLl9yYW5nZSkKKysgICAgICAgICAgICAgICAgIHIgPSBj b3B5LmNvcHkocmVjdCkKKystICAgICAgICAgICAgICAgIHIud2lkdGggPSB3CisrKyAgICAgICAg ICAgICAgICByLndpZHRoID0gaW50KHcpCisrICAgICAgICAgICAgICAgICBkYy5HcmFkaWVudEZp bGxMaW5lYXIociwgYzEsIGMyLCB3eC5FQVNUKQorKyAgICAgICAgIGVsc2U6CisrICAgICAgICAg ICAgIGZvciBpLCBjb2xvdXIgaW4gZW51bWVyYXRlKHNlbGYuX2JhckNvbG91clNvcnRlZCk6Cisr QEAgLTM1Miw3ICszNTIsNyBAQCBkZWYgT25QYWludChzZWxmLCBldmVudCk6CisrICAgICAgICAg ICAgICAgICBkYy5TZXRQZW4od3guUGVuKGNvbG91cikpCisrICAgICAgICAgICAgICAgICB3ID0g cmVjdC53aWR0aCAqIChmbG9hdChzZWxmLl92YWx1ZVNvcnRlZFtpXSkgLyBzZWxmLl9yYW5nZSkK KysgICAgICAgICAgICAgICAgIHIgPSBjb3B5LmNvcHkocmVjdCkKKystICAgICAgICAgICAgICAg IHIud2lkdGggPSB3CisrKyAgICAgICAgICAgICAgICByLndpZHRoID0gaW50KHcpCisrICAgICAg ICAgICAgICAgICBkYy5EcmF3UmVjdGFuZ2xlKHIpCisrIAorKyAKKytkaWZmIC0tZ2l0IGEvd3gv bGliL2Fndy9yaWJib24vYXJ0X2F1aS5weSBiL3d4L2xpYi9hZ3cvcmliYm9uL2FydF9hdWkucHkK KytpbmRleCBhMWQyNTU4NDMuLjMxZmVkZjQ4NyAxMDA2NDQKKystLS0gYS93eC9saWIvYWd3L3Jp YmJvbi9hcnRfYXVpLnB5CisrKysrIGIvd3gvbGliL2Fndy9yaWJib24vYXJ0X2F1aS5weQorK0BA IC0zOTAsNyArMzkwLDcgQEAgZGVmIERyYXdUYWIoc2VsZiwgZGMsIHduZCwgdGFiKToKKysgICAg ICAgICAgICAgZ3JhZF9yZWN0ID0gd3guUmVjdCgqdGFiLnJlY3QpCisrICAgICAgICAgICAgIGdy YWRfcmVjdC5oZWlnaHQgLT0gNAorKyAgICAgICAgICAgICBncmFkX3JlY3Qud2lkdGggLT0gMQor Ky0gICAgICAgICAgICBncmFkX3JlY3QuaGVpZ2h0IC89IDIKKysrICAgICAgICAgICAgZ3JhZF9y ZWN0LmhlaWdodCAvLz0gMgorKyAgICAgICAgICAgICBncmFkX3JlY3QueSA9IGdyYWRfcmVjdC55 ICsgdGFiLnJlY3QuaGVpZ2h0IC0gZ3JhZF9yZWN0LmhlaWdodCAtIDEKKysgICAgICAgICAgICAg ZGMuU2V0QnJ1c2goc2VsZi5fdGFiX2FjdGl2ZV90b3BfYmFja2dyb3VuZF9icnVzaCkKKysgICAg ICAgICAgICAgZGMuRHJhd1JlY3RhbmdsZSh0YWIucmVjdC54LCB0YWIucmVjdC55ICsgMywgdGFi LnJlY3Qud2lkdGggLSAxLCBncmFkX3JlY3QueSAtIHRhYi5yZWN0LnkgLSAzKQorK0BAIC00MDEs NyArNDAxLDcgQEAgZGVmIERyYXdUYWIoc2VsZiwgZGMsIHduZCwgdGFiKToKKysgICAgICAgICAg ICAgYnRtX3JlY3QgPSB3eC5SZWN0KCp0YWIucmVjdCkKKysgICAgICAgICAgICAgYnRtX3JlY3Qu aGVpZ2h0IC09IDQKKysgICAgICAgICAgICAgYnRtX3JlY3Qud2lkdGggLT0gMQorKy0gICAgICAg ICAgICBidG1fcmVjdC5oZWlnaHQgLz0gMgorKysgICAgICAgICAgICBidG1fcmVjdC5oZWlnaHQg Ly89IDIKKysgICAgICAgICAgICAgYnRtX3JlY3QueSA9IGJ0bV9yZWN0LnkgKyB0YWIucmVjdC5o ZWlnaHQgLSBidG1fcmVjdC5oZWlnaHQgLSAxCisrICAgICAgICAgICAgIGRjLlNldEJydXNoKHNl bGYuX3RhYl9ob3Zlcl9iYWNrZ3JvdW5kX2JydXNoKQorKyAgICAgICAgICAgICBkYy5EcmF3UmVj dGFuZ2xlKGJ0bV9yZWN0LngsIGJ0bV9yZWN0LnksIGJ0bV9yZWN0LndpZHRoLCBidG1fcmVjdC5o ZWlnaHQpCisrQEAgLTQzNCw4ICs0MzQsOCBAQCBkZWYgRHJhd1RhYihzZWxmLCBkYywgd25kLCB0 YWIpOgorKyAgICAgICAgICAgICBpY29uID0gdGFiLnBhZ2UuR2V0SWNvbigpCisrICAgICAgICAg ICAgIGlmIHNlbGYuX2ZsYWdzICYgUklCQk9OX0JBUl9TSE9XX1BBR0VfTEFCRUxTID09IDA6Cisr ICAgICAgICAgICAgICAgICBpZiBpY29uLklzT2soKToKKystICAgICAgICAgICAgICAgICAgICB4 ID0gdGFiLnJlY3QueCArICh0YWIucmVjdC53aWR0aCAtIGljb24uR2V0V2lkdGgoKSkgLyAyCisr LSAgICAgICAgICAgICAgICAgICAgZGMuRHJhd0JpdG1hcChpY29uLCB4LCB0YWIucmVjdC55ICsg MSArICh0YWIucmVjdC5oZWlnaHQgLSAxIC0gaWNvbi5HZXRIZWlnaHQoKSkgLyAyLCBUcnVlKQor KysgICAgICAgICAgICAgICAgICAgIHggPSB0YWIucmVjdC54ICsgKHRhYi5yZWN0LndpZHRoIC0g aWNvbi5HZXRXaWR0aCgpKSAvLyAyCisrKyAgICAgICAgICAgICAgICAgICAgZGMuRHJhd0JpdG1h cChpY29uLCB4LCB0YWIucmVjdC55ICsgMSArICh0YWIucmVjdC5oZWlnaHQgLSAxIC0gaWNvbi5H ZXRIZWlnaHQoKSkgLy8gMiwgVHJ1ZSkKKysgCisrICAgICAgICAgaWYgc2VsZi5fZmxhZ3MgJiBS SUJCT05fQkFSX1NIT1dfUEFHRV9MQUJFTFM6CisrICAgICAgICAgICAgIGxhYmVsID0gdGFiLnBh Z2UuR2V0TGFiZWwoKQorK0BAIC00NTAsNyArNDUwLDcgQEAgZGVmIERyYXdUYWIoc2VsZiwgZGMs IHduZCwgdGFiKToKKysgICAgICAgICAgICAgICAgICAgICBvZmZzZXQgKz0gaWNvbi5HZXRXaWR0 aCgpICsgMgorKyAKKysgICAgICAgICAgICAgICAgIHRleHRfd2lkdGgsIHRleHRfaGVpZ2h0ID0g ZGMuR2V0VGV4dEV4dGVudChsYWJlbCkKKystICAgICAgICAgICAgICAgIHggPSAodGFiLnJlY3Qu d2lkdGggLSAyIC0gdGV4dF93aWR0aCAtIG9mZnNldCkgLyAyCisrKyAgICAgICAgICAgICAgICB4 ID0gKHRhYi5yZWN0LndpZHRoIC0gMiAtIHRleHRfd2lkdGggLSBvZmZzZXQpIC8vIDIKKysgICAg ICAgICAgICAgICAgIGlmIHggPiA4OgorKyAgICAgICAgICAgICAgICAgICAgIHggPSA4CisrICAg ICAgICAgICAgICAgICBlbGlmIHggPCAxOgorK0BAIC00NTgsNyArNDU4LDcgQEAgZGVmIERyYXdU YWIoc2VsZiwgZGMsIHduZCwgdGFiKToKKysgCisrICAgICAgICAgICAgICAgICB3aWR0aCA9IHRh Yi5yZWN0LndpZHRoIC0geCAtIDIKKysgICAgICAgICAgICAgICAgIHggKz0gdGFiLnJlY3QueCAr IG9mZnNldAorKy0gICAgICAgICAgICAgICAgeSA9IHRhYi5yZWN0LnkgKyAodGFiLnJlY3QuaGVp Z2h0IC0gdGV4dF9oZWlnaHQpIC8gMgorKysgICAgICAgICAgICAgICAgeSA9IHRhYi5yZWN0Lnkg KyAodGFiLnJlY3QuaGVpZ2h0IC0gdGV4dF9oZWlnaHQpIC8vIDIKKysgCisrICAgICAgICAgICAg ICAgICBpZiBpY29uLklzT2soKToKKysgICAgICAgICAgICAgICAgICAgICBkYy5EcmF3Qml0bWFw KGljb24sIHggLSBvZmZzZXQsIHRhYi5yZWN0LnkgKyAodGFiLnJlY3QuaGVpZ2h0IC0gaWNvbi5H ZXRIZWlnaHQoKSkgLyAyLCBUcnVlKQorK0BAIC04OTIsOCArODkyLDggQEAgZGVmIERyYXdNaW5p bWlzZWRQYW5lbChzZWxmLCBkYywgd25kLCByZWN0LCBiaXRtYXApOgorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcGFnZV9ob3Zlcl9iYWNrZ3JvdW5kX2dyYWRpZW50 X2NvbG91ciwgd3guU09VVEgpCisrIAorKyAgICAgICAgIGlmIGJpdG1hcC5Jc09rKCk6CisrLSAg ICAgICAgICAgIGRjLkRyYXdCaXRtYXAoYml0bWFwLCBwcmV2aWV3LnggKyAocHJldmlldy53aWR0 aCAtIGJpdG1hcC5HZXRXaWR0aCgpKSAvIDIsCisrLSAgICAgICAgICAgICAgICAgICAgICAgICAg cHJldmlldy55ICsgKHByZXZpZXcuaGVpZ2h0IC0gYml0bWFwLkdldEhlaWdodCgpKSAvIDIsIFRy dWUpCisrKyAgICAgICAgICAgIGRjLkRyYXdCaXRtYXAoYml0bWFwLCBwcmV2aWV3LnggKyAocHJl dmlldy53aWR0aCAtIGJpdG1hcC5HZXRXaWR0aCgpKSAvLyAyLAorKysgICAgICAgICAgICAgICAg ICAgICAgICAgIHByZXZpZXcueSArIChwcmV2aWV3LmhlaWdodCAtIGJpdG1hcC5HZXRIZWlnaHQo KSkgLy8gMiwgVHJ1ZSkKKysgCisrIAorKyAgICAgZGVmIERyYXdQYXJ0aWFsUGFuZWxCYWNrZ3Jv dW5kKHNlbGYsIGRjLCB3bmQsIHJlY3QpOgorK0BAIC0xMDI0LDcgKzEwMjQsNyBAQCBkZWYgRHJh d0dhbGxlcnlCdXR0b24oc2VsZiwgZGMsIHJlY3QsIHN0YXRlLCBiaXRtYXBzKToKKysgICAgICAg ICAgICAgZGMuRHJhd1JlY3RhbmdsZShyZWR1Y2VkX3JlY3QueCwgcmVkdWNlZF9yZWN0LnksIHJl ZHVjZWRfcmVjdC53aWR0aCwgcmVkdWNlZF9yZWN0LmhlaWdodCkKKysgICAgICAgICAgICAgYnRu X2JpdG1hcCA9IGJpdG1hcHNbM10KKysgCisrLSAgICAgICAgZGMuRHJhd0JpdG1hcChidG5fYml0 bWFwLCByZWR1Y2VkX3JlY3QueCArIHJlZHVjZWRfcmVjdC53aWR0aCAvIDIgLSAyLCAocmVjdC55 ICsgcmVjdC5oZWlnaHQgLyAyKSAtIDIsIFRydWUpCisrKyAgICAgICAgZGMuRHJhd0JpdG1hcChi dG5fYml0bWFwLCByZWR1Y2VkX3JlY3QueCArIHJlZHVjZWRfcmVjdC53aWR0aCAvLyAyIC0gMiwg KHJlY3QueSArIHJlY3QuaGVpZ2h0IC8vIDIpIC0gMiwgVHJ1ZSkKKysgCisrIAorKyAgICAgZGVm IERyYXdHYWxsZXJ5SXRlbUJhY2tncm91bmQoc2VsZiwgZGMsIHduZCwgcmVjdCwgaXRlbSk6Cisr QEAgLTEyNzcsNyArMTI3Nyw3IEBAIGRlZiBEcmF3VG9vbChzZWxmLCBkYywgd25kLCByZWN0LCBi aXRtYXAsIGtpbmQsIHN0YXRlKToKKysgICAgICAgICAgICAgaWYgaXNfc3BsaXRfaHlicmlkOgor KyAgICAgICAgICAgICAgICAgZGMuRHJhd0xpbmUocmVjdC54ICsgYXZhaWxfd2lkdGggKyAxLCBy ZWN0LnksIHJlY3QueCArIGF2YWlsX3dpZHRoICsgMSwgcmVjdC55ICsgcmVjdC5oZWlnaHQpCisr IAorKy0gICAgICAgICAgICBkYy5EcmF3Qml0bWFwKHNlbGYuX3Rvb2xiYXJfZHJvcF9iaXRtYXAs IGJnX3JlY3QueCArIGF2YWlsX3dpZHRoICsgMiwgYmdfcmVjdC55ICsgKGJnX3JlY3QuaGVpZ2h0 IC8gMikgLSAyLCBUcnVlKQorKysgICAgICAgICAgICBkYy5EcmF3Qml0bWFwKHNlbGYuX3Rvb2xi YXJfZHJvcF9iaXRtYXAsIGJnX3JlY3QueCArIGF2YWlsX3dpZHRoICsgMiwgYmdfcmVjdC55ICsg KGJnX3JlY3QuaGVpZ2h0IC8vIDIpIC0gMiwgVHJ1ZSkKKysgCisrLSAgICAgICAgZGMuRHJhd0Jp dG1hcChiaXRtYXAsIGJnX3JlY3QueCArIChhdmFpbF93aWR0aCAtIGJpdG1hcC5HZXRXaWR0aCgp KSAvIDIsIGJnX3JlY3QueSArIChiZ19yZWN0LmhlaWdodCAtIGJpdG1hcC5HZXRIZWlnaHQoKSkg LyAyLCBUcnVlKQorKysgICAgICAgIGRjLkRyYXdCaXRtYXAoYml0bWFwLCBiZ19yZWN0LnggKyAo YXZhaWxfd2lkdGggLSBiaXRtYXAuR2V0V2lkdGgoKSkgLy8gMiwgYmdfcmVjdC55ICsgKGJnX3Jl Y3QuaGVpZ2h0IC0gYml0bWFwLkdldEhlaWdodCgpKSAvLyAyLCBUcnVlKQorKyAKKytkaWZmIC0t Z2l0IGEvd3gvbGliL2Fndy9yaWJib24vYXJ0X2ludGVybmFsLnB5IGIvd3gvbGliL2Fndy9yaWJi b24vYXJ0X2ludGVybmFsLnB5CisraW5kZXggNGE4ZGM3Y2UwLi43OGU4ZjNmZTQgMTAwNjQ0Cisr LS0tIGEvd3gvbGliL2Fndy9yaWJib24vYXJ0X2ludGVybmFsLnB5CisrKysrIGIvd3gvbGliL2Fn dy9yaWJib24vYXJ0X2ludGVybmFsLnB5CisrQEAgLTMyLDkgKzMyLDkgQEAgZGVmIFJpYmJvbklu dGVycG9sYXRlQ29sb3VyKHN0YXJ0X2NvbG91ciwgZW5kX2NvbG91ciwgcG9zaXRpb24sIHN0YXJ0 X3Bvc2l0aW9uLAorKyAgICAgciA9IGVuZF9jb2xvdXIuUmVkKCkgLSBzdGFydF9jb2xvdXIuUmVk KCkKKysgICAgIGcgPSBlbmRfY29sb3VyLkdyZWVuKCkgLSBzdGFydF9jb2xvdXIuR3JlZW4oKQor KyAgICAgYiA9IGVuZF9jb2xvdXIuQmx1ZSgpIC0gc3RhcnRfY29sb3VyLkJsdWUoKQorKy0gICAg ciA9IHN0YXJ0X2NvbG91ci5SZWQoKSAgICsgKCgociAqIHBvc2l0aW9uICogMTAwKSAvIGVuZF9w b3NpdGlvbikgLyAxMDApCisrLSAgICBnID0gc3RhcnRfY29sb3VyLkdyZWVuKCkgKyAoKChnICog cG9zaXRpb24gKiAxMDApIC8gZW5kX3Bvc2l0aW9uKSAvIDEwMCkKKystICAgIGIgPSBzdGFydF9j b2xvdXIuQmx1ZSgpICArICgoKGIgKiBwb3NpdGlvbiAqIDEwMCkgLyBlbmRfcG9zaXRpb24pIC8g MTAwKQorKysgICAgciA9IHN0YXJ0X2NvbG91ci5SZWQoKSAgICsgKCgociAqIHBvc2l0aW9uICog MTAwKSAvLyBlbmRfcG9zaXRpb24pIC8vIDEwMCkKKysrICAgIGcgPSBzdGFydF9jb2xvdXIuR3Jl ZW4oKSArICgoKGcgKiBwb3NpdGlvbiAqIDEwMCkgLy8gZW5kX3Bvc2l0aW9uKSAvLyAxMDApCisr KyAgICBiID0gc3RhcnRfY29sb3VyLkJsdWUoKSAgKyAoKChiICogcG9zaXRpb24gKiAxMDApIC8v IGVuZF9wb3NpdGlvbikgLy8gMTAwKQorKyAKKysgICAgIHJldHVybiB3eC5Db2xvdXIociwgZywg YikKKysgCisrQEAgLTYxLDkgKzYxLDkgQEAgZGVmIFJpYmJvbkRyYXdQYXJhbGxlbEdyYWRpZW50 TGluZXMoZGMsIG5saW5lcywgbGluZV9vcmlnaW5zLCBzdGVweCwgc3RlcHksIG51bXMKKysgICAg IGJkID0gZW5kX2NvbG91ci5CbHVlKCkgLSBzdGFydF9jb2xvdXIuQmx1ZSgpCisrIAorKyAgICAg Zm9yIHN0ZXAgaW4gcmFuZ2UobnVtc3RlcHMpOgorKy0gICAgICAgIHIgPSBzdGFydF9jb2xvdXIu UmVkKCkgKyAoKChzdGVwKnJkKjEwMCkvbnVtc3RlcHMpLzEwMCkKKystICAgICAgICBnID0gc3Rh cnRfY29sb3VyLkdyZWVuKCkgKyAoKChzdGVwKmdkKjEwMCkvbnVtc3RlcHMpLzEwMCkKKystICAg ICAgICBiID0gc3RhcnRfY29sb3VyLkJsdWUoKSArICgoKHN0ZXAqYmQqMTAwKS9udW1zdGVwcykv MTAwKQorKysgICAgICAgIHIgPSBzdGFydF9jb2xvdXIuUmVkKCkgKyAoKChzdGVwKnJkKjEwMCkv L251bXN0ZXBzKS8vMTAwKQorKysgICAgICAgIGcgPSBzdGFydF9jb2xvdXIuR3JlZW4oKSArICgo KHN0ZXAqZ2QqMTAwKS8vbnVtc3RlcHMpLy8xMDApCisrKyAgICAgICAgYiA9IHN0YXJ0X2NvbG91 ci5CbHVlKCkgKyAoKChzdGVwKmJkKjEwMCkvL251bXN0ZXBzKS8vMTAwKQorKyAKKysgICAgICAg ICBwID0gd3guUGVuKHd4LkNvbG91cihyLCBnLCBiKSkKKysgICAgICAgICBkYy5TZXRQZW4ocCkK KytkaWZmIC0tZ2l0IGEvd3gvbGliL2Fndy9yaWJib24vYXJ0X21zdy5weSBiL3d4L2xpYi9hZ3cv cmliYm9uL2FydF9tc3cucHkKKytpbmRleCBlNzMxN2Q1OWIuLjAwYzNkZmUyYiAxMDA2NDQKKyst LS0gYS93eC9saWIvYWd3L3JpYmJvbi9hcnRfbXN3LnB5CisrKysrIGIvd3gvbGliL2Fndy9yaWJi b24vYXJ0X21zdy5weQorK0BAIC05ODIsNyArOTgyLDcgQEAgZGVmIERyYXdUYWIoc2VsZiwgZGMs IHduZCwgdGFiKToKKysgICAgICAgICAgICAgICAgIGJhY2tncm91bmQud2lkdGggLT0gNAorKyAg ICAgICAgICAgICAgICAgYmFja2dyb3VuZC5oZWlnaHQgLT0gMworKyAgICAgICAgICAgICAgICAg aCA9IGJhY2tncm91bmQuaGVpZ2h0CisrLSAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLmhlaWdo dCAvPSAyCisrKyAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLmhlaWdodCAvLz0gMgorKyAgICAg ICAgICAgICAgICAgZGMuR3JhZGllbnRGaWxsTGluZWFyKGJhY2tncm91bmQsIHNlbGYuX3RhYl9o b3Zlcl9iYWNrZ3JvdW5kX3RvcF9jb2xvdXIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5fdGFiX2hvdmVyX2JhY2tncm91bmRfdG9wX2dyYWRpZW50X2NvbG91 ciwgd3guU09VVEgpCisrIAorK0BAIC0xMDI0LDkgKzEwMjQsOSBAQCBkZWYgRHJhd1RhYihzZWxm LCBkYywgd25kLCB0YWIpOgorKyAgICAgICAgICAgICBpZiBpY29uLklzT2soKToKKysgICAgICAg ICAgICAgICAgIHggPSB0YWIucmVjdC54ICsgNAorKyAgICAgICAgICAgICAgICAgaWYgc2VsZi5f ZmxhZ3MgJiBSSUJCT05fQkFSX1NIT1dfUEFHRV9MQUJFTFMgPT0gMDoKKystICAgICAgICAgICAg ICAgICAgICB4ID0gdGFiLnJlY3QueCArICh0YWIucmVjdC53aWR0aCAtIGljb24uR2V0V2lkdGgo KSkgLyAyCisrKyAgICAgICAgICAgICAgICAgICAgeCA9IHRhYi5yZWN0LnggKyAodGFiLnJlY3Qu d2lkdGggLSBpY29uLkdldFdpZHRoKCkpIC8vIDIKKysgCisrLSAgICAgICAgICAgICAgICBkYy5E cmF3Qml0bWFwKGljb24sIHgsIHRhYi5yZWN0LnkgKyAxICsgKHRhYi5yZWN0LmhlaWdodCAtIDEg LSBpY29uLkdldEhlaWdodCgpKSAvIDIsIFRydWUpCisrKyAgICAgICAgICAgICAgICBkYy5EcmF3 Qml0bWFwKGljb24sIHgsIHRhYi5yZWN0LnkgKyAxICsgKHRhYi5yZWN0LmhlaWdodCAtIDEgLSBp Y29uLkdldEhlaWdodCgpKSAvLyAyLCBUcnVlKQorKyAKKysgICAgICAgICBpZiBzZWxmLl9mbGFn cyAmIFJJQkJPTl9CQVJfU0hPV19QQUdFX0xBQkVMUzoKKysgICAgICAgICAgICAgbGFiZWwgPSB0 YWIucGFnZS5HZXRMYWJlbCgpCisrQEAgLTEwNDMsMTMgKzEwNDMsMTMgQEAgZGVmIERyYXdUYWIo c2VsZiwgZGMsIHduZCwgdGFiKToKKysgICAgICAgICAgICAgICAgICAgICB4ICs9IDMgKyB0YWIu cGFnZS5HZXRJY29uKCkuR2V0V2lkdGgoKQorKyAgICAgICAgICAgICAgICAgICAgIHdpZHRoIC09 IDMgKyB0YWIucGFnZS5HZXRJY29uKCkuR2V0V2lkdGgoKQorKyAKKystICAgICAgICAgICAgICAg IHkgPSB0YWIucmVjdC55ICsgKHRhYi5yZWN0LmhlaWdodCAtIHRleHRfaGVpZ2h0KSAvIDIKKysr ICAgICAgICAgICAgICAgIHkgPSB0YWIucmVjdC55ICsgKHRhYi5yZWN0LmhlaWdodCAtIHRleHRf aGVpZ2h0KSAvLyAyCisrIAorKyAgICAgICAgICAgICAgICAgaWYgd2lkdGggPD0gdGV4dF93aWR0 aDoKKysgICAgICAgICAgICAgICAgICAgICBkYy5TZXRDbGlwcGluZ1JlZ2lvbih4LCB0YWIucmVj dC55LCB3aWR0aCwgdGFiLnJlY3QuaGVpZ2h0KQorKyAgICAgICAgICAgICAgICAgICAgIGRjLkRy YXdUZXh0KGxhYmVsLCB4LCB5KQorKyAgICAgICAgICAgICAgICAgZWxzZToKKystICAgICAgICAg ICAgICAgICAgICBkYy5EcmF3VGV4dChsYWJlbCwgeCArICh3aWR0aCAtIHRleHRfd2lkdGgpIC8g MiArIDEsIHkpCisrKyAgICAgICAgICAgICAgICAgICAgZGMuRHJhd1RleHQobGFiZWwsIHggKyAo d2lkdGggLSB0ZXh0X3dpZHRoKSAvLyAyICsgMSwgeSkKKysgCisrIAorKyAgICAgZGVmIERyYXdU YWJTZXBhcmF0b3Ioc2VsZiwgZGMsIHduZCwgcmVjdCwgdmlzaWJpbGl0eSk6CisrQEAgLTEwOTMs NyArMTA5Myw3IEBAIGRlZiBSZWFsbHlEcmF3VGFiU2VwYXJhdG9yKHNlbGYsIHduZCwgcmVjdCwg dmlzaWJpbGl0eSk6CisrICAgICAgICAgZGMgPSB3eC5NZW1vcnlEQyhzZWxmLl9jYWNoZWRfdGFi X3NlcGFyYXRvcikKKysgICAgICAgICBzZWxmLkRyYXdUYWJDdHJsQmFja2dyb3VuZChkYywgd25k LCByZWN0KQorKyAKKystICAgICAgICB4ID0gcmVjdC54ICsgcmVjdC53aWR0aCAvIDIKKysrICAg ICAgICB4ID0gcmVjdC54ICsgcmVjdC53aWR0aCAvLyAyCisrICAgICAgICAgaCA9IGZsb2F0KHJl Y3QuaGVpZ2h0IC0gMSkKKysgCisrICAgICAgICAgcjEgPSBzZWxmLl90YWJfY3RybF9iYWNrZ3Jv dW5kX2JydXNoLkdldENvbG91cigpLlJlZCgpICogKDEuMCAtIHZpc2liaWxpdHkpICsgMC41Cisr QEAgLTExNDYsNyArMTE0Niw3IEBAIGRlZiBEcmF3UGFydGlhbFBhZ2VCYWNrZ3JvdW5kMShzZWxm LCBkYywgd25kLCByZWN0LCBwYWdlLCBvZmZzZXQsIGhvdmVyZWQ9RmFsc2UpCisrIAorKyAgICAg ICAgICMgdXBwZXJfcmVjdCwgbG93ZXJfcmVjdCwgcGFpbnRfcmVjdCBhcmUgYWxsIGluIHBhZ2Ug Y28tb3JkaW5hdGVzCisrICAgICAgICAgdXBwZXJfcmVjdCA9IHd4LlJlY3QoKmJhY2tncm91bmQp CisrLSAgICAgICAgdXBwZXJfcmVjdC5oZWlnaHQgLz0gNQorKysgICAgICAgIHVwcGVyX3JlY3Qu aGVpZ2h0IC8vPSA1CisrIAorKyAgICAgICAgIGxvd2VyX3JlY3QgPSB3eC5SZWN0KCpiYWNrZ3Jv dW5kKQorKyAgICAgICAgIGxvd2VyX3JlY3QueSArPSB1cHBlcl9yZWN0LmhlaWdodAorK0BAIC0x MjI5LDcgKzEyMjksNyBAQCBkZWYgRHJhd1BhZ2VCYWNrZ3JvdW5kKHNlbGYsIGRjLCB3bmQsIHJl Y3QpOgorKyAgICAgICAgIGJhY2tncm91bmQud2lkdGggLT0gNAorKyAgICAgICAgIGJhY2tncm91 bmQuaGVpZ2h0IC09IDIKKysgCisrLSAgICAgICAgYmFja2dyb3VuZC5oZWlnaHQgLz0gNQorKysg ICAgICAgIGJhY2tncm91bmQuaGVpZ2h0IC8vPSA1CisrICAgICAgICAgZGMuR3JhZGllbnRGaWxs TGluZWFyKGJhY2tncm91bmQsIHNlbGYuX3BhZ2VfYmFja2dyb3VuZF90b3BfY29sb3VyLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9wYWdlX2JhY2tncm91bmRfdG9wX2dy YWRpZW50X2NvbG91ciwgd3guU09VVEgpCisrIAorK0BAIC0xNDkzLDEwICsxNDkzLDEwIEBAIGRl ZiBEcmF3UGFuZWxCYWNrZ3JvdW5kKHNlbGYsIGRjLCB3bmQsIHJlY3QpOgorKyAKKysgICAgICAg ICBpZiBjbGlwX2xhYmVsOgorKyAgICAgICAgICAgICBjbGlwID0gd3guRENDbGlwcGVyKGRjLCBs YWJlbF9yZWN0KQorKy0gICAgICAgICAgICBkYy5EcmF3VGV4dChsYWJlbCwgbGFiZWxfcmVjdC54 LCBsYWJlbF9yZWN0LnkgKyAobGFiZWxfcmVjdC5HZXRIZWlnaHQoKSAtIGxhYmVsX3NpemUuR2V0 SGVpZ2h0KCkpIC8gMikKKysrICAgICAgICAgICAgZGMuRHJhd1RleHQobGFiZWwsIGxhYmVsX3Jl Y3QueCwgbGFiZWxfcmVjdC55ICsgKGxhYmVsX3JlY3QuR2V0SGVpZ2h0KCkgLSBsYWJlbF9zaXpl LkdldEhlaWdodCgpKSAvLyAyKQorKyAgICAgICAgIGVsc2U6CisrLSAgICAgICAgICAgIGRjLkRy YXdUZXh0KGxhYmVsLCBsYWJlbF9yZWN0LnggKyAobGFiZWxfcmVjdC5HZXRXaWR0aCgpIC0gbGFi ZWxfc2l6ZS5HZXRXaWR0aCgpKSAvIDIsCisrLSAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVs X3JlY3QueSArIChsYWJlbF9yZWN0LkdldEhlaWdodCgpIC0gbGFiZWxfc2l6ZS5HZXRIZWlnaHQo KSkgLyAyKQorKysgICAgICAgICAgICBkYy5EcmF3VGV4dChsYWJlbCwgbGFiZWxfcmVjdC54ICsg KGxhYmVsX3JlY3QuR2V0V2lkdGgoKSAtIGxhYmVsX3NpemUuR2V0V2lkdGgoKSkgLy8gMiwKKysr ICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxfcmVjdC55ICsgKGxhYmVsX3JlY3QuR2V0SGVp Z2h0KCkgLSBsYWJlbF9zaXplLkdldEhlaWdodCgpKSAvLyAyKQorKyAKKysgICAgICAgICBpZiBo YXNfZXh0X2J1dHRvbjoKKysgICAgICAgICAgICAgaWYgd25kLklzRXh0QnV0dG9uSG92ZXJlZCgp OgorK0BAIC0xNTc3LDcgKzE1NzcsNyBAQCBkZWYgRHJhd0dhbGxlcnlCYWNrZ3JvdW5kQ29tbW9u KHNlbGYsIGRjLCB3bmQsIHJlY3QpOgorKyAgICAgICAgICAgICAjIERpdmlkZXIgYmV0d2VlbiBp dGVtcyBhbmQgYnV0dG9ucworKyAgICAgICAgICAgICBkYy5EcmF3TGluZShyZWN0LngsIHJlY3Qu eSArIHJlY3QuaGVpZ2h0IC0gMTUsIHJlY3QueCArIHJlY3Qud2lkdGgsIHJlY3QueSArIHJlY3Qu aGVpZ2h0IC0gMTUpCisrIAorKy0gICAgICAgICAgICB1cF9idG4gPSB3eC5SZWN0KHJlY3QueCwg cmVjdC55ICsgcmVjdC5oZWlnaHQgLSAxNSwgcmVjdC53aWR0aCAvIDMsIDE1KQorKysgICAgICAg ICAgICB1cF9idG4gPSB3eC5SZWN0KHJlY3QueCwgcmVjdC55ICsgcmVjdC5oZWlnaHQgLSAxNSwg cmVjdC53aWR0aCAvLyAzLCAxNSkKKysgICAgICAgICAgICAgZG93bl9idG4gPSB3eC5SZWN0KHVw X2J0bi5HZXRSaWdodCgpICsgMSwgdXBfYnRuLkdldFRvcCgpLCB1cF9idG4uR2V0V2lkdGgoKSwg dXBfYnRuLkdldEhlaWdodCgpKQorKyAgICAgICAgICAgICBkYy5EcmF3TGluZShkb3duX2J0bi5H ZXRMZWZ0KCksIGRvd25fYnRuLkdldFRvcCgpLCBkb3duX2J0bi5HZXRMZWZ0KCksIGRvd25fYnRu LkdldEJvdHRvbSgpKQorKyAgICAgICAgICAgICBleHRfYnRuID0gd3guUmVjdChkb3duX2J0bi5H ZXRSaWdodCgpICsgMSwgdXBfYnRuLkdldFRvcCgpLCByZWN0LndpZHRoIC0gdXBfYnRuLkdldFdp ZHRoKCkgLSBkb3duX2J0bi5HZXRXaWR0aCgpIC0gMSwgdXBfYnRuLkdldEhlaWdodCgpKQorK0BA IC0xNTg3LDcgKzE1ODcsNyBAQCBkZWYgRHJhd0dhbGxlcnlCYWNrZ3JvdW5kQ29tbW9uKHNlbGYs IGRjLCB3bmQsIHJlY3QpOgorKyAgICAgICAgICAgICAjIERpdmlkZXIgYmV0d2VlbiBpdGVtcyBh bmQgYnV0dG9ucworKyAgICAgICAgICAgICBkYy5EcmF3TGluZShyZWN0LnggKyByZWN0LndpZHRo IC0gMTUsIHJlY3QueSwgcmVjdC54ICsgcmVjdC53aWR0aCAtIDE1LCByZWN0LnkgKyByZWN0Lmhl aWdodCkKKysgCisrLSAgICAgICAgICAgIHVwX2J0biA9IHd4LlJlY3QocmVjdC54ICsgcmVjdC53 aWR0aCAtIDE1LCByZWN0LnksIDE1LCByZWN0LmhlaWdodCAvIDMpCisrKyAgICAgICAgICAgIHVw X2J0biA9IHd4LlJlY3QocmVjdC54ICsgcmVjdC53aWR0aCAtIDE1LCByZWN0LnksIDE1LCByZWN0 LmhlaWdodCAvLyAzKQorKyAgICAgICAgICAgICBkb3duX2J0biA9IHd4LlJlY3QodXBfYnRuLkdl dExlZnQoKSwgdXBfYnRuLkdldEJvdHRvbSgpICsgMSwgdXBfYnRuLkdldFdpZHRoKCksIHVwX2J0 bi5HZXRIZWlnaHQoKSkKKysgICAgICAgICAgICAgZGMuRHJhd0xpbmUoZG93bl9idG4uR2V0TGVm dCgpLCBkb3duX2J0bi5HZXRUb3AoKSwgZG93bl9idG4uR2V0UmlnaHQoKSwgZG93bl9idG4uR2V0 VG9wKCkpCisrICAgICAgICAgICAgIGV4dF9idG4gPSB3eC5SZWN0KHVwX2J0bi5HZXRMZWZ0KCks IGRvd25fYnRuLkdldEJvdHRvbSgpICsgMSwgdXBfYnRuLkdldFdpZHRoKCksIHJlY3QuaGVpZ2h0 IC0gdXBfYnRuLkdldEhlaWdodCgpIC0gZG93bl9idG4uR2V0SGVpZ2h0KCkgLSAxKQorK0BAIC0x NjMzLDE0ICsxNjMzLDE0IEBAIGRlZiBEcmF3R2FsbGVyeUJ1dHRvbihzZWxmLCBkYywgcmVjdCwg c3RhdGUsIGJpdG1hcHMpOgorKyAKKysgICAgICAgICBkYy5TZXRQZW4od3guVFJBTlNQQVJFTlRf UEVOKQorKyAgICAgICAgIGRjLlNldEJydXNoKGJ0bl90b3BfYnJ1c2gpCisrLSAgICAgICAgZGMu RHJhd1JlY3RhbmdsZShyZWN0LngsIHJlY3QueSwgcmVjdC53aWR0aCwgcmVjdC5oZWlnaHQgLyAy KQorKysgICAgICAgIGRjLkRyYXdSZWN0YW5nbGUocmVjdC54LCByZWN0LnksIHJlY3Qud2lkdGgs IHJlY3QuaGVpZ2h0IC8vIDIpCisrIAorKyAgICAgICAgIGxvd2VyID0gd3guUmVjdCgqcmVjdCkK KystICAgICAgICBsb3dlci5oZWlnaHQgPSAobG93ZXIuaGVpZ2h0ICsgMSkgLyAyCisrKyAgICAg ICAgbG93ZXIuaGVpZ2h0ID0gKGxvd2VyLmhlaWdodCArIDEpIC8vIDIKKysgICAgICAgICBsb3dl ci55ICs9IHJlY3QuaGVpZ2h0IC0gbG93ZXIuaGVpZ2h0CisrICAgICAgICAgZGMuR3JhZGllbnRG aWxsTGluZWFyKGxvd2VyLCBidG5fY29sb3VyLCBidG5fZ3JhZF9jb2xvdXIsIHd4LlNPVVRIKQor KyAKKystICAgICAgICBkYy5EcmF3Qml0bWFwKGJ0bl9iaXRtYXAsIHJlY3QueCArIHJlY3Qud2lk dGggLyAyIC0gMiwgbG93ZXIueSAtIDIsIFRydWUpCisrKyAgICAgICAgZGMuRHJhd0JpdG1hcChi dG5fYml0bWFwLCByZWN0LnggKyByZWN0LndpZHRoIC8vIDIgLSAyLCBsb3dlci55IC0gMiwgVHJ1 ZSkKKysgCisrIAorKyAgICAgZGVmIERyYXdHYWxsZXJ5SXRlbUJhY2tncm91bmQoc2VsZiwgZGMs IHduZCwgcmVjdCwgaXRlbSk6CisrQEAgLTE2OTEsNyArMTY5MSw3IEBAIGRlZiBEcmF3R2FsbGVy eUl0ZW1CYWNrZ3JvdW5kKHNlbGYsIGRjLCB3bmQsIHJlY3QsIGl0ZW0pOgorKyAgICAgICAgIHVw cGVyLnggKz0gMQorKyAgICAgICAgIHVwcGVyLndpZHRoIC09IDIKKysgICAgICAgICB1cHBlci55 ICs9IDEKKystICAgICAgICB1cHBlci5oZWlnaHQgLz0gMworKysgICAgICAgIHVwcGVyLmhlaWdo dCAvLz0gMworKyAgICAgICAgIGRjLlNldFBlbih3eC5UUkFOU1BBUkVOVF9QRU4pCisrICAgICAg ICAgZGMuU2V0QnJ1c2godG9wX2JydXNoKQorKyAgICAgICAgIGRjLkRyYXdSZWN0YW5nbGUodXBw ZXIueCwgdXBwZXIueSwgdXBwZXIud2lkdGgsIHVwcGVyLmhlaWdodCkKKytAQCAtMTc2MCw3ICsx NzYwLDcgQEAgZGVmIERyYXdNaW5pbWlzZWRQYW5lbChzZWxmLCBkYywgd25kLCByZWN0LCBiaXRt YXApOgorKyAgICAgICAgICAgICBjbGllbnRfcmVjdC54ICs9IDEKKysgICAgICAgICAgICAgY2xp ZW50X3JlY3Qud2lkdGggLT0gMgorKyAgICAgICAgICAgICBjbGllbnRfcmVjdC55ICs9IDEKKyst ICAgICAgICAgICAgY2xpZW50X3JlY3QuaGVpZ2h0ID0gKHJlY3QueSArIHJlY3QuaGVpZ2h0IC8g NSkgLSBjbGllbnRfcmVjdC54CisrKyAgICAgICAgICAgIGNsaWVudF9yZWN0LmhlaWdodCA9IChy ZWN0LnkgKyByZWN0LmhlaWdodCAvLyA1KSAtIGNsaWVudF9yZWN0LngKKysgICAgICAgICAgICAg ZGMuR3JhZGllbnRGaWxsTGluZWFyKGNsaWVudF9yZWN0LAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5fcGFuZWxfYWN0aXZlX2JhY2tncm91bmRfdG9wX2NvbG91ciwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3BhbmVsX2FjdGl2ZV9i YWNrZ3JvdW5kX3RvcF9ncmFkaWVudF9jb2xvdXIsIHd4LlNPVVRIKQorK0BAIC0xNzg1LDcgKzE3 ODUsNyBAQCBkZWYgRHJhd01pbmltaXNlZFBhbmVsKHNlbGYsIGRjLCB3bmQsIHJlY3QsIGJpdG1h cCk6CisrICAgICAgICAgZGMuU2V0UGVuKHd4LlRSQU5TUEFSRU5UX1BFTikKKysgICAgICAgICBk Yy5EcmF3UmVjdGFuZ2xlKHByZXZpZXcueCArIDEsIHByZXZpZXcueSArIHByZXZpZXcuaGVpZ2h0 IC0gOCwgcHJldmlldy53aWR0aCAtIDIsIDcpCisrIAorKy0gICAgICAgIG1pZF9wb3MgPSByZWN0 LnkgKyByZWN0LmhlaWdodCAvIDUgLSBwcmV2aWV3LnkKKysrICAgICAgICBtaWRfcG9zID0gcmVj dC55ICsgcmVjdC5oZWlnaHQgLy8gNSAtIHByZXZpZXcueQorKyAKKysgICAgICAgICBpZiBtaWRf cG9zIDwgMCBvciBtaWRfcG9zID49IHByZXZpZXcuaGVpZ2h0OgorKyAgICAgICAgICAgICBmdWxs X3JlY3QgPSB3eC5SZWN0KCpwcmV2aWV3KQorK0BAIC0xODE2LDggKzE4MTYsOCBAQCBkZWYgRHJh d01pbmltaXNlZFBhbmVsKHNlbGYsIGRjLCB3bmQsIHJlY3QsIGJpdG1hcCk6CisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9wYWdlX2hvdmVyX2JhY2tncm91bmRfZ3Jh ZGllbnRfY29sb3VyLCB3eC5TT1VUSCkKKysgCisrICAgICAgICAgaWYgYml0bWFwLklzT2soKToK KystICAgICAgICAgICAgZGMuRHJhd0JpdG1hcChiaXRtYXAsIHByZXZpZXcueCArIChwcmV2aWV3 LndpZHRoIC0gYml0bWFwLkdldFdpZHRoKCkpIC8gMiwKKystICAgICAgICAgICAgICAgICAgICAg ICAgICBwcmV2aWV3LnkgKyAocHJldmlldy5oZWlnaHQgLSA3IC0gYml0bWFwLkdldEhlaWdodCgp KSAvIDIsIFRydWUpCisrKyAgICAgICAgICAgIGRjLkRyYXdCaXRtYXAoYml0bWFwLCBwcmV2aWV3 LnggKyAocHJldmlldy53aWR0aCAtIGJpdG1hcC5HZXRXaWR0aCgpKSAvLyAyLAorKysgICAgICAg ICAgICAgICAgICAgICAgICAgIHByZXZpZXcueSArIChwcmV2aWV3LmhlaWdodCAtIDcgLSBiaXRt YXAuR2V0SGVpZ2h0KCkpIC8vIDIsIFRydWUpCisrIAorKyAgICAgICAgIHNlbGYuRHJhd1BhbmVs Qm9yZGVyKGRjLCBwcmV2aWV3LCBzZWxmLl9wYW5lbF9ib3JkZXJfcGVuLCBzZWxmLl9wYW5lbF9i b3JkZXJfZ3JhZGllbnRfcGVuKQorKyAgICAgICAgIHNlbGYuRHJhd1BhbmVsQm9yZGVyKGRjLCB0 cnVlX3JlY3QsIHNlbGYuX3BhbmVsX21pbmltaXNlZF9ib3JkZXJfcGVuLCBzZWxmLl9wYW5lbF9t aW5pbWlzZWRfYm9yZGVyX2dyYWRpZW50X3BlbikKKytAQCAtMTgyOSwyMCArMTgyOSwyMCBAQCBk ZWYgRHJhd01pbmltaXNlZFBhbmVsQ29tbW9uKHNlbGYsIGRjLCB3bmQsIHRydWVfcmVjdCk6Cisr IAorKyAgICAgICAgIGlmIHNlbGYuX2ZsYWdzICYgUklCQk9OX0JBUl9GTE9XX1ZFUlRJQ0FMOgor KyAgICAgICAgICAgICBwcmV2aWV3LnggPSB0cnVlX3JlY3QueCArIDQKKystICAgICAgICAgICAg cHJldmlldy55ID0gdHJ1ZV9yZWN0LnkgKyAodHJ1ZV9yZWN0LmhlaWdodCAtIHByZXZpZXcuaGVp Z2h0KSAvIDIKKysrICAgICAgICAgICAgcHJldmlldy55ID0gdHJ1ZV9yZWN0LnkgKyAodHJ1ZV9y ZWN0LmhlaWdodCAtIHByZXZpZXcuaGVpZ2h0KSAvLyAyCisrICAgICAgICAgZWxzZToKKystICAg ICAgICAgICAgcHJldmlldy54ID0gdHJ1ZV9yZWN0LnggKyAodHJ1ZV9yZWN0LndpZHRoIC0gcHJl dmlldy53aWR0aCkgLyAyCisrKyAgICAgICAgICAgIHByZXZpZXcueCA9IHRydWVfcmVjdC54ICsg KHRydWVfcmVjdC53aWR0aCAtIHByZXZpZXcud2lkdGgpIC8vIDIKKysgICAgICAgICAgICAgcHJl dmlldy55ID0gdHJ1ZV9yZWN0LnkgKyA0CisrIAorKyAgICAgICAgIGRjLlNldEZvbnQoc2VsZi5f cGFuZWxfbGFiZWxfZm9udCkKKysgICAgICAgICBsYWJlbF93aWR0aCwgbGFiZWxfaGVpZ2h0ID0g ZGMuR2V0VGV4dEV4dGVudCh3bmQuR2V0TGFiZWwoKSkKKysgCisrLSAgICAgICAgeHBvcyA9IHRy dWVfcmVjdC54ICsgKHRydWVfcmVjdC53aWR0aCAtIGxhYmVsX3dpZHRoICsgMSkgLyAyCisrKyAg ICAgICAgeHBvcyA9IHRydWVfcmVjdC54ICsgKHRydWVfcmVjdC53aWR0aCAtIGxhYmVsX3dpZHRo ICsgMSkgLy8gMgorKyAgICAgICAgIHlwb3MgPSBwcmV2aWV3LnkgKyBwcmV2aWV3LmhlaWdodCAr IDUKKysgCisrICAgICAgICAgaWYgc2VsZi5fZmxhZ3MgJiBSSUJCT05fQkFSX0ZMT1dfVkVSVElD QUw6CisrICAgICAgICAgICAgIHhwb3MgPSBwcmV2aWV3LnggKyBwcmV2aWV3LndpZHRoICsgNQor Ky0gICAgICAgICAgICB5cG9zID0gdHJ1ZV9yZWN0LnkgKyAodHJ1ZV9yZWN0LmhlaWdodCAtIGxh YmVsX2hlaWdodCkgLyAyCisrKyAgICAgICAgICAgIHlwb3MgPSB0cnVlX3JlY3QueSArICh0cnVl X3JlY3QuaGVpZ2h0IC0gbGFiZWxfaGVpZ2h0KSAvLyAyCisrIAorKyAgICAgICAgIGRjLlNldFRl eHRGb3JlZ3JvdW5kKHNlbGYuX3BhbmVsX21pbmltaXNlZF9sYWJlbF9jb2xvdXIpCisrICAgICAg ICAgZGMuRHJhd1RleHQod25kLkdldExhYmVsKCksIHhwb3MsIHlwb3MpCisrQEAgLTE4NTEsMTIg KzE4NTEsMTIgQEAgZGVmIERyYXdNaW5pbWlzZWRQYW5lbENvbW1vbihzZWxmLCBkYywgd25kLCB0 cnVlX3JlY3QpOgorKyAKKysgICAgICAgICBpZiBzZWxmLl9mbGFncyAmIFJJQkJPTl9CQVJfRkxP V19WRVJUSUNBTDoKKysgICAgICAgICAgICAgeHBvcyArPSBsYWJlbF93aWR0aAorKy0gICAgICAg ICAgICBhcnJvd19wb2ludHNbMF0gPSB3eC5Qb2ludCh4cG9zICsgNSwgeXBvcyArIGxhYmVsX2hl aWdodCAvIDIpCisrKyAgICAgICAgICAgIGFycm93X3BvaW50c1swXSA9IHd4LlBvaW50KHhwb3Mg KyA1LCB5cG9zICsgbGFiZWxfaGVpZ2h0IC8vIDIpCisrICAgICAgICAgICAgIGFycm93X3BvaW50 c1sxXSA9IGFycm93X3BvaW50c1swXSArIHd4LlBvaW50KC0zLCAgMykKKysgICAgICAgICAgICAg YXJyb3dfcG9pbnRzWzJdID0gYXJyb3dfcG9pbnRzWzBdICsgd3guUG9pbnQoLTMsIC0zKQorKyAg ICAgICAgIGVsc2U6CisrICAgICAgICAgICAgIHlwb3MgKz0gbGFiZWxfaGVpZ2h0CisrLSAgICAg ICAgICAgIGFycm93X3BvaW50c1swXSA9IHd4LlBvaW50KHRydWVfcmVjdC53aWR0aCAvIDIsIHlw b3MgKyA1KQorKysgICAgICAgICAgICBhcnJvd19wb2ludHNbMF0gPSB3eC5Qb2ludCh0cnVlX3Jl Y3Qud2lkdGggLy8gMiwgeXBvcyArIDUpCisrICAgICAgICAgICAgIGFycm93X3BvaW50c1sxXSA9 IGFycm93X3BvaW50c1swXSArIHd4LlBvaW50KC0zLCAtMykKKysgICAgICAgICAgICAgYXJyb3df cG9pbnRzWzJdID0gYXJyb3dfcG9pbnRzWzBdICsgd3guUG9pbnQoIDMsIC0zKQorKyAKKytAQCAt MTk2Nyw3ICsxOTY3LDcgQEAgZGVmIERyYXdCdXR0b25CYXJCdXR0b24oc2VsZiwgZGMsIHduZCwg cmVjdCwga2luZCwgc3RhdGUsIGxhYmVsLCBiaXRtYXBfbGFyZ2UsIGIKKysgICAgICAgICAgICAg YmdfcmVjdC5oZWlnaHQgLT0gMgorKyAKKysgICAgICAgICAgICAgYmdfcmVjdF90b3AgPSB3eC5S ZWN0KCpiZ19yZWN0KQorKy0gICAgICAgICAgICBiZ19yZWN0X3RvcC5oZWlnaHQgLz0gMworKysg ICAgICAgICAgICBiZ19yZWN0X3RvcC5oZWlnaHQgLy89IDMKKysgICAgICAgICAgICAgYmdfcmVj dC55ICs9IGJnX3JlY3RfdG9wLmhlaWdodAorKyAgICAgICAgICAgICBiZ19yZWN0LmhlaWdodCAt PSBiZ19yZWN0X3RvcC5oZWlnaHQKKysgCisrQEAgLTIwNDMsNyArMjA0Myw3IEBAIGRlZiBEcmF3 QnV0dG9uQmFyQnV0dG9uRm9yZWdyb3VuZChzZWxmLCBkYywgcmVjdCwga2luZCwgc3RhdGUsIGxh YmVsLCBiaXRtYXBfbGFyCisrICAgICAgICAgaWYgcmVzdWx0ID09IFJJQkJPTl9CVVRUT05CQVJf QlVUVE9OX0xBUkdFOgorKyAKKysgICAgICAgICAgICAgcGFkZGluZyA9IDIKKystICAgICAgICAg ICAgZGMuRHJhd0JpdG1hcChiaXRtYXBfbGFyZ2UsIHJlY3QueCArIChyZWN0LndpZHRoIC0gYml0 bWFwX2xhcmdlLkdldFdpZHRoKCkpIC8gMiwKKysrICAgICAgICAgICAgZGMuRHJhd0JpdG1hcChi aXRtYXBfbGFyZ2UsIHJlY3QueCArIChyZWN0LndpZHRoIC0gYml0bWFwX2xhcmdlLkdldFdpZHRo KCkpIC8vIDIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjdC55ICsgcGFkZGluZywg VHJ1ZSkKKysgICAgICAgICAgICAgeXBvcyA9IHJlY3QueSArIHBhZGRpbmcgKyBiaXRtYXBfbGFy Z2UuR2V0SGVpZ2h0KCkgKyBwYWRkaW5nCisrICAgICAgICAgICAgIGFycm93X3dpZHRoID0gKGtp bmQgPT0gUklCQk9OX0JVVFRPTl9OT1JNQUwgYW5kIFswXSBvciBbOF0pWzBdCisrQEAgLTIwNTIs MTAgKzIwNTIsMTAgQEAgZGVmIERyYXdCdXR0b25CYXJCdXR0b25Gb3JlZ3JvdW5kKHNlbGYsIGRj LCByZWN0LCBraW5kLCBzdGF0ZSwgbGFiZWwsIGJpdG1hcF9sYXIKKysgCisrICAgICAgICAgICAg IGlmIGxhYmVsX3cgKyAyICogcGFkZGluZyA8PSByZWN0LndpZHRoOgorKyAKKystICAgICAgICAg ICAgICAgIGRjLkRyYXdUZXh0KGxhYmVsLCByZWN0LnggKyAocmVjdC53aWR0aCAtIGxhYmVsX3cp IC8gMiwgeXBvcykKKysrICAgICAgICAgICAgICAgIGRjLkRyYXdUZXh0KGxhYmVsLCByZWN0Lngg KyAocmVjdC53aWR0aCAtIGxhYmVsX3cpIC8vIDIsIHlwb3MpCisrICAgICAgICAgICAgICAgICBp ZiBhcnJvd193aWR0aCAhPSAwOgorKy0gICAgICAgICAgICAgICAgICAgIHNlbGYuRHJhd0Ryb3Bk b3duQXJyb3coZGMsIHJlY3QueCArIHJlY3Qud2lkdGggLyAyLAorKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgeXBvcyArIChsYWJlbF9oICogMykgLyAyLAorKysg ICAgICAgICAgICAgICAgICAgIHNlbGYuRHJhd0Ryb3Bkb3duQXJyb3coZGMsIHJlY3QueCArIHJl Y3Qud2lkdGggLy8gMiwKKysrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHlwb3MgKyAobGFiZWxfaCAqIDMpIC8vIDIsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLl9idXR0b25fYmFyX2xhYmVsX2NvbG91cikKKysgICAg ICAgICAgICAgZWxzZToKKysgICAgICAgICAgICAgICAgIGJyZWFraSA9IGxlbihsYWJlbCkKKytA QCAtMjA2NywxNyArMjA2NywxNyBAQCBkZWYgRHJhd0J1dHRvbkJhckJ1dHRvbkZvcmVncm91bmQo c2VsZiwgZGMsIHJlY3QsIGtpbmQsIHN0YXRlLCBsYWJlbCwgYml0bWFwX2xhcgorKyAgICAgICAg ICAgICAgICAgICAgICAgICBsYWJlbF93LCBsYWJlbF9oID0gZGMuR2V0VGV4dEV4dGVudChsYWJl bF90b3ApCisrIAorKyAgICAgICAgICAgICAgICAgICAgICAgICBpZiBsYWJlbF93ICsgMiAqIHBh ZGRpbmcgPD0gcmVjdC53aWR0aDoKKystICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRjLkRy YXdUZXh0KGxhYmVsX3RvcCwgcmVjdC54ICsgKHJlY3Qud2lkdGggLSBsYWJlbF93KSAvIDIsIHlw b3MpCisrKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYy5EcmF3VGV4dChsYWJlbF90b3As IHJlY3QueCArIChyZWN0LndpZHRoIC0gbGFiZWxfdykgLy8gMiwgeXBvcykKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHlwb3MgKz0gbGFiZWxfaAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGFiZWxfYm90dG9tID0gbGFiZWxbYnJlYWtpOl0KKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxhYmVsX3csIGxhYmVsX2ggPSBkYy5HZXRUZXh0RXh0ZW50KGxhYmVsX2Jv dHRvbSkKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsX3cgKz0gYXJyb3dfd2lk dGgKKystICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlYID0gcmVjdC54ICsgKHJlY3Qud2lk dGggLSBsYWJlbF93KSAvIDIKKysrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlYID0gcmVj dC54ICsgKHJlY3Qud2lkdGggLSBsYWJlbF93KSAvLyAyCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBkYy5EcmF3VGV4dChsYWJlbF9ib3R0b20sIGlYLCB5cG9zKQorKyAKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlmIGFycm93X3dpZHRoICE9IDA6CisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5EcmF3RHJvcGRvd25BcnJvdyhkYywgaVggKyAyICts YWJlbF93IC0gYXJyb3dfd2lkdGgsCisrLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB5cG9zICsgbGFiZWxfaCAvIDIgKyAxLAorKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeXBvcyArIGxh YmVsX2ggLy8gMiArIDEsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLl9idXR0b25fYmFyX2xhYmVsX2NvbG91cikKKysgCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworK0BAIC0yMDg1LDE0ICsyMDg1LDE0IEBA IGRlZiBEcmF3QnV0dG9uQmFyQnV0dG9uRm9yZWdyb3VuZChzZWxmLCBkYywgcmVjdCwga2luZCwg c3RhdGUsIGxhYmVsLCBiaXRtYXBfbGFyCisrICAgICAgICAgZWxpZiByZXN1bHQgPT0gUklCQk9O X0JVVFRPTkJBUl9CVVRUT05fTUVESVVNOgorKyAKKysgICAgICAgICAgICAgeF9jdXJzb3IgPSBy ZWN0LnggKyAyCisrLSAgICAgICAgICAgIGRjLkRyYXdCaXRtYXAoYml0bWFwX3NtYWxsLCB4X2N1 cnNvciwgcmVjdC55ICsgKHJlY3QuaGVpZ2h0IC0gYml0bWFwX3NtYWxsLkdldEhlaWdodCgpKS8y LCBUcnVlKQorKysgICAgICAgICAgICBkYy5EcmF3Qml0bWFwKGJpdG1hcF9zbWFsbCwgeF9jdXJz b3IsIHJlY3QueSArIChyZWN0LmhlaWdodCAtIGJpdG1hcF9zbWFsbC5HZXRIZWlnaHQoKSkvLzIs IFRydWUpCisrICAgICAgICAgICAgIHhfY3Vyc29yICs9IGJpdG1hcF9zbWFsbC5HZXRXaWR0aCgp ICsgMgorKyAgICAgICAgICAgICBsYWJlbF93LCBsYWJlbF9oID0gZGMuR2V0VGV4dEV4dGVudChs YWJlbCkKKystICAgICAgICAgICAgZGMuRHJhd1RleHQobGFiZWwsIHhfY3Vyc29yLCByZWN0Lnkg KyAocmVjdC5oZWlnaHQgLSBsYWJlbF9oKSAvIDIpCisrKyAgICAgICAgICAgIGRjLkRyYXdUZXh0 KGxhYmVsLCB4X2N1cnNvciwgcmVjdC55ICsgKHJlY3QuaGVpZ2h0IC0gbGFiZWxfaCkgLy8gMikK KysgICAgICAgICAgICAgeF9jdXJzb3IgKz0gbGFiZWxfdyArIDMKKysgCisrICAgICAgICAgICAg IGlmIGtpbmQgIT0gUklCQk9OX0JVVFRPTl9OT1JNQUw6CisrLSAgICAgICAgICAgICAgICBzZWxm LkRyYXdEcm9wZG93bkFycm93KGRjLCB4X2N1cnNvciwgcmVjdC55ICsgcmVjdC5oZWlnaHQgLyAy LAorKysgICAgICAgICAgICAgICAgc2VsZi5EcmF3RHJvcGRvd25BcnJvdyhkYywgeF9jdXJzb3Is IHJlY3QueSArIHJlY3QuaGVpZ2h0IC8vIDIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuX2J1dHRvbl9iYXJfbGFiZWxfY29sb3VyKQorKyAKKysgICAgICAg ICBlbHNlOgorK0BAIC0yMTg0LDcgKzIxODQsNyBAQCBkZWYgRHJhd1Rvb2woc2VsZiwgZGMsIHdu ZCwgcmVjdCwgYml0bWFwLCBraW5kLCBzdGF0ZSk6CisrIAorKyAgICAgICAgICMgQmFja2dyb3Vu ZAorKyAgICAgICAgIGJnX3JlY3RfdG9wID0gd3guUmVjdCgqYmdfcmVjdCkKKystICAgICAgICBi Z19yZWN0X3RvcC5oZWlnaHQgPSAoYmdfcmVjdF90b3AuaGVpZ2h0ICogMikgLyA1CisrKyAgICAg ICAgYmdfcmVjdF90b3AuaGVpZ2h0ID0gKGJnX3JlY3RfdG9wLmhlaWdodCAqIDIpIC8vIDUKKysg ICAgICAgICBiZ19yZWN0X2J0bSA9IHd4LlJlY3QoKmJnX3JlY3QpCisrICAgICAgICAgYmdfcmVj dF9idG0ueSArPSBiZ19yZWN0X3RvcC5oZWlnaHQKKysgICAgICAgICBiZ19yZWN0X2J0bS5oZWln aHQgLT0gYmdfcmVjdF90b3AuaGVpZ2h0CisrQEAgLTIyNDQsMTAgKzIyNDQsMTAgQEAgZGVmIERy YXdUb29sKHNlbGYsIGRjLCB3bmQsIHJlY3QsIGJpdG1hcCwga2luZCwgc3RhdGUpOgorKyAgICAg ICAgICAgICAgICAgZGMuRHJhd0xpbmUocmVjdC54ICsgYXZhaWxfd2lkdGggKyAxLCByZWN0Lnks IHJlY3QueCArIGF2YWlsX3dpZHRoICsgMSwgcmVjdC55ICsgcmVjdC5oZWlnaHQpCisrIAorKyAg ICAgICAgICAgICBkYy5EcmF3Qml0bWFwKHNlbGYuX3Rvb2xiYXJfZHJvcF9iaXRtYXAsIGJnX3Jl Y3QueCArIGF2YWlsX3dpZHRoICsgMiwKKystICAgICAgICAgICAgICAgICAgICAgICAgICBiZ19y ZWN0LnkgKyAoYmdfcmVjdC5oZWlnaHQgLyAyKSAtIDIsIFRydWUpCisrKyAgICAgICAgICAgICAg ICAgICAgICAgICAgYmdfcmVjdC55ICsgKGJnX3JlY3QuaGVpZ2h0IC8vIDIpIC0gMiwgVHJ1ZSkK KysgCisrLSAgICAgICAgZGMuRHJhd0JpdG1hcChiaXRtYXAsIGJnX3JlY3QueCArIChhdmFpbF93 aWR0aCAtIGJpdG1hcC5HZXRXaWR0aCgpKSAvIDIsCisrLSAgICAgICAgICAgICAgICAgICAgICBi Z19yZWN0LnkgKyAoYmdfcmVjdC5oZWlnaHQgLSBiaXRtYXAuR2V0SGVpZ2h0KCkpIC8gMiwgVHJ1 ZSkKKysrICAgICAgICBkYy5EcmF3Qml0bWFwKGJpdG1hcCwgYmdfcmVjdC54ICsgKGF2YWlsX3dp ZHRoIC0gYml0bWFwLkdldFdpZHRoKCkpIC8vIDIsCisrKyAgICAgICAgICAgICAgICAgICAgICBi Z19yZWN0LnkgKyAoYmdfcmVjdC5oZWlnaHQgLSBiaXRtYXAuR2V0SGVpZ2h0KCkpIC8vIDIsIFRy dWUpCisrIAorKyAKKysgICAgIGRlZiBHZXRCYXJUYWJXaWR0aChzZWxmLCBkYywgd25kLCBsYWJl bCwgYml0bWFwLCBpZGVhbD1Ob25lLCBzbWFsbF9iZWdpbl9uZWVkX3NlcGFyYXRvcj1Ob25lLAor K0BAIC0yNDc0LDcgKzI0NzQsNyBAQCBkZWYgR2V0R2FsbGVyeUNsaWVudFNpemUoc2VsZiwgZGMs IHduZCwgc2l6ZSwgY2xpZW50X29mZnNldD1Ob25lLCBzY3JvbGxfdXBfYnV0dAorKyAgICAgICAg ICAgICBzY3JvbGxfdXAueSA9IHNpemUuR2V0SGVpZ2h0KCkgLSAxNQorKyAgICAgICAgICAgICBz Y3JvbGxfdXAuaGVpZ2h0ID0gMTUKKysgICAgICAgICAgICAgc2Nyb2xsX3VwLnggPSAwCisrLSAg ICAgICAgICAgIHNjcm9sbF91cC53aWR0aCA9IChzaXplLkdldFdpZHRoKCkgKyAyKSAvIDMKKysr ICAgICAgICAgICAgc2Nyb2xsX3VwLndpZHRoID0gKHNpemUuR2V0V2lkdGgoKSArIDIpIC8vIDMK KysgICAgICAgICAgICAgc2Nyb2xsX2Rvd24ueSA9IHNjcm9sbF91cC55CisrICAgICAgICAgICAg IHNjcm9sbF9kb3duLmhlaWdodCA9IHNjcm9sbF91cC5oZWlnaHQKKysgICAgICAgICAgICAgc2Ny b2xsX2Rvd24ueCA9IHNjcm9sbF91cC54ICsgc2Nyb2xsX3VwLndpZHRoCisrQEAgLTI0OTEsNyAr MjQ5MSw3IEBAIGRlZiBHZXRHYWxsZXJ5Q2xpZW50U2l6ZShzZWxmLCBkYywgd25kLCBzaXplLCBj bGllbnRfb2Zmc2V0PU5vbmUsIHNjcm9sbF91cF9idXR0CisrICAgICAgICAgICAgIHNjcm9sbF91 cC54ID0gc2l6ZS5HZXRXaWR0aCgpIC0gMTUKKysgICAgICAgICAgICAgc2Nyb2xsX3VwLndpZHRo ID0gMTUKKysgICAgICAgICAgICAgc2Nyb2xsX3VwLnkgPSAwCisrLSAgICAgICAgICAgIHNjcm9s bF91cC5oZWlnaHQgPSAoc2l6ZS5HZXRIZWlnaHQoKSArIDIpIC8gMworKysgICAgICAgICAgICBz Y3JvbGxfdXAuaGVpZ2h0ID0gKHNpemUuR2V0SGVpZ2h0KCkgKyAyKSAvLyAzCisrICAgICAgICAg ICAgIHNjcm9sbF9kb3duLnggPSBzY3JvbGxfdXAueAorKyAgICAgICAgICAgICBzY3JvbGxfZG93 bi53aWR0aCA9IHNjcm9sbF91cC53aWR0aAorKyAgICAgICAgICAgICBzY3JvbGxfZG93bi55ID0g c2Nyb2xsX3VwLnkgKyBzY3JvbGxfdXAuaGVpZ2h0CisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hZ3cv cmliYm9uL2Jhci5weSBiL3d4L2xpYi9hZ3cvcmliYm9uL2Jhci5weQorK2luZGV4IGFlOGI2YTE5 Yy4uYjBkMjg3NzZkIDEwMDY0NAorKy0tLSBhL3d4L2xpYi9hZ3cvcmliYm9uL2Jhci5weQorKysr KyBiL3d4L2xpYi9hZ3cvcmliYm9uL2Jhci5weQorK0BAIC03NDMsNyArNzQzLDcgQEAgZGVmIFJl Y2FsY3VsYXRlVGFiU2l6ZXMoc2VsZik6CisrICAgICAgICAgICAgICAgICAgICAgZGVsdGEgPSBp bmZvLmlkZWFsX3dpZHRoIC0gaW5mby5zbWFsbF9tdXN0X2hhdmVfc2VwYXJhdG9yX3dpZHRoCisr ICAgICAgICAgICAgICAgICAgICAgaW5mby5yZWN0LnggPSB4CisrICAgICAgICAgICAgICAgICAg ICAgaW5mby5yZWN0LnkgPSB5CisrLSAgICAgICAgICAgICAgICAgICAgaW5mby5yZWN0LndpZHRo ID0gaW5mby5zbWFsbF9tdXN0X2hhdmVfc2VwYXJhdG9yX3dpZHRoICsgZGVsdGEqKHdpZHRoIC0g dG90YWxfc21hbGxfd2lkdGgpL3RvdGFsX2RlbHRhCisrKyAgICAgICAgICAgICAgICAgICAgaW5m by5yZWN0LndpZHRoID0gaW5mby5zbWFsbF9tdXN0X2hhdmVfc2VwYXJhdG9yX3dpZHRoICsgZGVs dGEqKHdpZHRoIC0gdG90YWxfc21hbGxfd2lkdGgpLy90b3RhbF9kZWx0YQorKyAgICAgICAgICAg ICAgICAgICAgIGluZm8ucmVjdC5oZWlnaHQgPSBzZWxmLl90YWJfaGVpZ2h0CisrIAorKyAgICAg ICAgICAgICAgICAgICAgIHggKz0gaW5mby5yZWN0LndpZHRoICsgdGFic2VwCisrQEAgLTc5Nyw3 ICs3OTcsNyBAQCBkZWYgUmVjYWxjdWxhdGVUYWJTaXplcyhzZWxmKToKKysgICAgICAgICAgICAg ICAgICAgICAgICAgZGVsdGEgPSBzbWFsbGVzdF90YWJfd2lkdGggLSBpbmZvLm1pbmltdW1fd2lk dGgKKysgICAgICAgICAgICAgICAgICAgICAgICAgaW5mby5yZWN0LnggPSB4CisrICAgICAgICAg ICAgICAgICAgICAgICAgIGluZm8ucmVjdC55ID0geQorKy0gICAgICAgICAgICAgICAgICAgICAg ICBpbmZvLnJlY3Qud2lkdGggPSBpbmZvLm1pbmltdW1fd2lkdGggKyBkZWx0YSood2lkdGggLSB0 b3RhbF9zbWFsbF93aWR0aCkvdG90YWxfZGVsdGEKKysrICAgICAgICAgICAgICAgICAgICAgICAg aW5mby5yZWN0LndpZHRoID0gaW5mby5taW5pbXVtX3dpZHRoICsgZGVsdGEqKHdpZHRoIC0gdG90 YWxfc21hbGxfd2lkdGgpLy90b3RhbF9kZWx0YQorKyAgICAgICAgICAgICAgICAgICAgICAgICBp bmZvLnJlY3QuaGVpZ2h0ID0gc2VsZi5fdGFiX2hlaWdodAorKyAKKysgICAgICAgICAgICAgICAg ICAgICAgICAgeCArPSBpbmZvLnJlY3Qud2lkdGggKyB0YWJzZXAKKytkaWZmIC0tZ2l0IGEvd3gv bGliL2Fndy9yaWJib24vYnV0dG9uYmFyLnB5IGIvd3gvbGliL2Fndy9yaWJib24vYnV0dG9uYmFy LnB5CisraW5kZXggMjVlZTQ5YTgyLi40NjkwZjQ4M2QgMTAwNjQ0CisrLS0tIGEvd3gvbGliL2Fn dy9yaWJib24vYnV0dG9uYmFyLnB5CisrKysrIGIvd3gvbGliL2Fndy9yaWJib24vYnV0dG9uYmFy LnB5CisrQEAgLTM1NCw3ICszNTQsNyBAQCBkZWYgSW5zZXJ0QnV0dG9uKHNlbGYsIHBvcywgYnV0 dG9uX2lkLCBsYWJlbCwgYml0bWFwLCBiaXRtYXBfc21hbGw9d3guTnVsbEJpdG1hcAorKyAgICAg ICAgICAgICAgICAgc2VsZi5fYml0bWFwX3NpemVfbGFyZ2UgPSBiaXRtYXAuR2V0U2l6ZSgpCisr ICAgICAgICAgICAgICAgICBpZiBub3QgYml0bWFwX3NtYWxsLklzT2soKToKKysgICAgICAgICAg ICAgICAgICAgICB3LCBoID0gc2VsZi5fYml0bWFwX3NpemVfbGFyZ2UKKystICAgICAgICAgICAg ICAgICAgICBzZWxmLl9iaXRtYXBfc2l6ZV9zbWFsbCA9IHd4LlNpemUoMC41KncsIDAuNSpoKQor KysgICAgICAgICAgICAgICAgICAgIHNlbGYuX2JpdG1hcF9zaXplX3NtYWxsID0gd3guU2l6ZSh3 Ly8yLCBoLy8yKQorKyAKKysgICAgICAgICAgICAgaWYgYml0bWFwX3NtYWxsLklzT2soKToKKysg CisrQEAgLTg2Nyw4ICs4NjcsOCBAQCBkZWYgT25TaXplKHNlbGYsIGV2ZW50KToKKysgCisrICAg ICAgICAgICAgIGxheW91dF9zaXplID0gc2VsZi5fbGF5b3V0c1tsYXlvdXRfaV0ub3ZlcmFsbF9z aXplCisrICAgICAgICAgICAgIGlmIGxheW91dF9zaXplLnggPD0gbmV3X3NpemUueCBhbmQgbGF5 b3V0X3NpemUueSA8PSBuZXdfc2l6ZS55OgorKy0gICAgICAgICAgICAgICAgc2VsZi5fbGF5b3V0 X29mZnNldC54ID0gKG5ld19zaXplLnggLSBsYXlvdXRfc2l6ZS54KS8yCisrLSAgICAgICAgICAg ICAgICBzZWxmLl9sYXlvdXRfb2Zmc2V0LnkgPSAobmV3X3NpemUueSAtIGxheW91dF9zaXplLnkp LzIKKysrICAgICAgICAgICAgICAgIHNlbGYuX2xheW91dF9vZmZzZXQueCA9IChuZXdfc2l6ZS54 IC0gbGF5b3V0X3NpemUueCkvLzIKKysrICAgICAgICAgICAgICAgIHNlbGYuX2xheW91dF9vZmZz ZXQueSA9IChuZXdfc2l6ZS55IC0gbGF5b3V0X3NpemUueSkvLzIKKysgICAgICAgICAgICAgICAg IHNlbGYuX2N1cnJlbnRfbGF5b3V0ID0gbGF5b3V0X2kKKysgICAgICAgICAgICAgICAgIGJyZWFr CisrIAorK2RpZmYgLS1naXQgYS93eC9saWIvYWd3L3JpYmJvbi9nYWxsZXJ5LnB5IGIvd3gvbGli L2Fndy9yaWJib24vZ2FsbGVyeS5weQorK2luZGV4IGI4MzBmYWI3ZC4uYjg2NTI4ODY1IDEwMDY0 NAorKy0tLSBhL3d4L2xpYi9hZ3cvcmliYm9uL2dhbGxlcnkucHkKKysrKysgYi93eC9saWIvYWd3 L3JpYmJvbi9nYWxsZXJ5LnB5CisrQEAgLTgwNSw4ICs4MDUsOCBAQCBkZWYgRG9HZXROZXh0U21h bGxlclNpemUoc2VsZiwgZGlyZWN0aW9uLCByZWxhdGl2ZV90byk6CisrICAgICAgICAgaWYgY2xp ZW50LkdldFdpZHRoKCkgPCAwIG9yIGNsaWVudC5HZXRIZWlnaHQoKSA8IDA6CisrICAgICAgICAg ICAgIHJldHVybiByZWxhdGl2ZV90bworKyAKKystICAgICAgICBjbGllbnQueCA9IChjbGllbnQu eCAvIHNlbGYuX2JpdG1hcF9wYWRkZWRfc2l6ZS54KSAqIHNlbGYuX2JpdG1hcF9wYWRkZWRfc2l6 ZS54CisrLSAgICAgICAgY2xpZW50LnkgPSAoY2xpZW50LnkgLyBzZWxmLl9iaXRtYXBfcGFkZGVk X3NpemUueSkgKiBzZWxmLl9iaXRtYXBfcGFkZGVkX3NpemUueQorKysgICAgICAgIGNsaWVudC54 ID0gKGNsaWVudC54IC8vIHNlbGYuX2JpdG1hcF9wYWRkZWRfc2l6ZS54KSAqIHNlbGYuX2JpdG1h cF9wYWRkZWRfc2l6ZS54CisrKyAgICAgICAgY2xpZW50LnkgPSAoY2xpZW50LnkgLy8gc2VsZi5f Yml0bWFwX3BhZGRlZF9zaXplLnkpICogc2VsZi5fYml0bWFwX3BhZGRlZF9zaXplLnkKKysgCisr ICAgICAgICAgc2l6ZSA9IHNlbGYuX2FydC5HZXRHYWxsZXJ5U2l6ZShkYywgc2VsZiwgd3guU2l6 ZSgqY2xpZW50KSkKKysgICAgICAgICBtaW5pbXVtID0gc2VsZi5HZXRNaW5TaXplKCkKKytAQCAt ODQ5LDggKzg0OSw4IEBAIGRlZiBEb0dldE5leHRMYXJnZXJTaXplKHNlbGYsIGRpcmVjdGlvbiwg cmVsYXRpdmVfdG8pOgorKyAgICAgICAgIGVsaWYgZGlyZWN0aW9uID09IHd4LkJPVEg6CisrICAg ICAgICAgICAgIGNsaWVudC5JbmNCeShzZWxmLl9iaXRtYXBfcGFkZGVkX3NpemUpCisrIAorKy0g ICAgICAgIGNsaWVudC54ID0gKGNsaWVudC54IC8gc2VsZi5fYml0bWFwX3BhZGRlZF9zaXplLngp ICogc2VsZi5fYml0bWFwX3BhZGRlZF9zaXplLngKKystICAgICAgICBjbGllbnQueSA9IChjbGll bnQueSAvIHNlbGYuX2JpdG1hcF9wYWRkZWRfc2l6ZS55KSAqIHNlbGYuX2JpdG1hcF9wYWRkZWRf c2l6ZS55CisrKyAgICAgICAgY2xpZW50LnggPSAoY2xpZW50LnggLy8gc2VsZi5fYml0bWFwX3Bh ZGRlZF9zaXplLngpICogc2VsZi5fYml0bWFwX3BhZGRlZF9zaXplLngKKysrICAgICAgICBjbGll bnQueSA9IChjbGllbnQueSAvLyBzZWxmLl9iaXRtYXBfcGFkZGVkX3NpemUueSkgKiBzZWxmLl9i aXRtYXBfcGFkZGVkX3NpemUueQorKyAKKysgICAgICAgICBzaXplID0gc2VsZi5fYXJ0LkdldEdh bGxlcnlTaXplKGRjLCBzZWxmLCB3eC5TaXplKCpjbGllbnQpKQorKyAgICAgICAgIG1pbmltdW0g PSBzZWxmLkdldE1pblNpemUoKQorK2RpZmYgLS1naXQgYS93eC9saWIvYWd3L3JpYmJvbi9wYW5l bC5weSBiL3d4L2xpYi9hZ3cvcmliYm9uL3BhbmVsLnB5CisraW5kZXggNzlmZDliYzU4Li45MDFj NzY1YjYgMTAwNjQ0CisrLS0tIGEvd3gvbGliL2Fndy9yaWJib24vcGFuZWwucHkKKysrKysgYi93 eC9saWIvYWd3L3JpYmJvbi9wYW5lbC5weQorK0BAIC01ODQsMTIgKzU4NCwxMiBAQCBkZWYgRG9H ZXROZXh0U21hbGxlclNpemUoc2VsZiwgZGlyZWN0aW9uLCByZWxhdGl2ZV90byk6CisrICAgICAg ICAgbWluaW11bSA9IHd4LlNpemUoKnNlbGYuR2V0TWluU2l6ZSgpKQorKyAKKysgICAgICAgICBp ZiBkaXJlY3Rpb24gJiB3eC5IT1JJWk9OVEFMOgorKy0gICAgICAgICAgICBjdXJyZW50LnggPSAo Y3VycmVudC54ICogNCkgLyA1CisrKyAgICAgICAgICAgIGN1cnJlbnQueCA9IChjdXJyZW50Lngg KiA0KSAvLyA1CisrICAgICAgICAgICAgIGlmIGN1cnJlbnQueCA8IG1pbmltdW0ueDoKKysgICAg ICAgICAgICAgICAgIGN1cnJlbnQueCA9IG1pbmltdW0ueAorKyAKKysgICAgICAgICBpZiBkaXJl Y3Rpb24gJiB3eC5WRVJUSUNBTDoKKystICAgICAgICAgICAgY3VycmVudC55ID0gKGN1cnJlbnQu eSAqIDQpIC8gNQorKysgICAgICAgICAgICBjdXJyZW50LnkgPSAoY3VycmVudC55ICogNCkgLy8g NQorKyAgICAgICAgICAgICBpZiBjdXJyZW50LnkgPCBtaW5pbXVtLnk6CisrICAgICAgICAgICAg ICAgICBjdXJyZW50LnkgPSBtaW5pbXVtLnkKKysgCisrQEAgLTY2OCwxMCArNjY4LDEwIEBAIGRl ZiBEb0dldE5leHRMYXJnZXJTaXplKHNlbGYsIGRpcmVjdGlvbiwgcmVsYXRpdmVfdG8pOgorKyAg ICAgICAgIGN1cnJlbnQgPSB3eC5TaXplKCpyZWxhdGl2ZV90bykKKysgCisrICAgICAgICAgaWYg ZGlyZWN0aW9uICYgd3guSE9SSVpPTlRBTDoKKystICAgICAgICAgICAgY3VycmVudC54ID0gKGN1 cnJlbnQueCAqIDUgKyAzKSAvIDQKKysrICAgICAgICAgICAgY3VycmVudC54ID0gKGN1cnJlbnQu eCAqIDUgKyAzKSAvLyA0CisrIAorKyAgICAgICAgIGlmIGRpcmVjdGlvbiAmIHd4LlZFUlRJQ0FM OgorKy0gICAgICAgICAgICBjdXJyZW50LnkgPSAoY3VycmVudC55ICogNSArIDMpIC8gNAorKysg ICAgICAgICAgICBjdXJyZW50LnkgPSAoY3VycmVudC55ICogNSArIDMpIC8vIDQKKysgCisrICAg ICAgICAgcmV0dXJuIGN1cnJlbnQKKysgCisrQEAgLTEwNzYsMjUgKzEwNzYsMjUgQEAgZGVmIEdl dEV4cGFuZGVkUG9zaXRpb24oc2VsZiwgcGFuZWwsIGV4cGFuZGVkX3NpemUsIGRpcmVjdGlvbik6 CisrICAgICAgICAgcG9zID0gd3guUG9pbnQoKQorKyAKKysgICAgICAgICBpZiBkaXJlY3Rpb24g PT0gd3guTk9SVEg6CisrLSAgICAgICAgICAgIHBvcy54ID0gcGFuZWwuR2V0WCgpICsgKHBhbmVs LkdldFdpZHRoKCkgLSBleHBhbmRlZF9zaXplLkdldFdpZHRoKCkpIC8gMgorKysgICAgICAgICAg ICBwb3MueCA9IHBhbmVsLkdldFgoKSArIChwYW5lbC5HZXRXaWR0aCgpIC0gZXhwYW5kZWRfc2l6 ZS5HZXRXaWR0aCgpKSAvLyAyCisrICAgICAgICAgICAgIHBvcy55ID0gcGFuZWwuR2V0WSgpIC0g ZXhwYW5kZWRfc2l6ZS5HZXRIZWlnaHQoKQorKyAgICAgICAgICAgICBwcmltYXJ5X3ggPSBUcnVl CisrICAgICAgICAgICAgIHNlY29uZGFyeV95ID0gMQorKyAKKysgICAgICAgICBlbGlmIGRpcmVj dGlvbiA9PSB3eC5FQVNUOgorKyAgICAgICAgICAgICBwb3MueCA9IHBhbmVsLkdldFJpZ2h0KCkK KystICAgICAgICAgICAgcG9zLnkgPSBwYW5lbC5HZXRZKCkgKyAocGFuZWwuR2V0SGVpZ2h0KCkg LSBleHBhbmRlZF9zaXplLkdldEhlaWdodCgpKSAvIDIKKysrICAgICAgICAgICAgcG9zLnkgPSBw YW5lbC5HZXRZKCkgKyAocGFuZWwuR2V0SGVpZ2h0KCkgLSBleHBhbmRlZF9zaXplLkdldEhlaWdo dCgpKSAvLyAyCisrICAgICAgICAgICAgIHNlY29uZGFyeV94ID0gLTEKKysgCisrICAgICAgICAg ZWxpZiBkaXJlY3Rpb24gPT0gd3guU09VVEg6CisrLSAgICAgICAgICAgIHBvcy54ID0gcGFuZWwu R2V0WCgpICsgKHBhbmVsLkdldFdpZHRoKCkgLSBleHBhbmRlZF9zaXplLkdldFdpZHRoKCkpIC8g MgorKysgICAgICAgICAgICBwb3MueCA9IHBhbmVsLkdldFgoKSArIChwYW5lbC5HZXRXaWR0aCgp IC0gZXhwYW5kZWRfc2l6ZS5HZXRXaWR0aCgpKSAvLyAyCisrICAgICAgICAgICAgIHBvcy55ID0g cGFuZWwuR2V0Qm90dG9tKCkKKysgICAgICAgICAgICAgcHJpbWFyeV94ID0gVHJ1ZQorKyAgICAg ICAgICAgICBzZWNvbmRhcnlfeSA9IC0xCisrIAorKyAgICAgICAgIGVsc2U6CisrICAgICAgICAg ICAgIHBvcy54ID0gcGFuZWwuR2V0WCgpIC0gZXhwYW5kZWRfc2l6ZS5HZXRXaWR0aCgpCisrLSAg ICAgICAgICAgIHBvcy55ID0gcGFuZWwuR2V0WSgpICsgKHBhbmVsLkdldEhlaWdodCgpIC0gZXhw YW5kZWRfc2l6ZS5HZXRIZWlnaHQoKSkgLyAyCisrKyAgICAgICAgICAgIHBvcy55ID0gcGFuZWwu R2V0WSgpICsgKHBhbmVsLkdldEhlaWdodCgpIC0gZXhwYW5kZWRfc2l6ZS5HZXRIZWlnaHQoKSkg Ly8gMgorKyAgICAgICAgICAgICBzZWNvbmRhcnlfeCA9IDEKKysgCisrICAgICAgICAgZXhwYW5k ZWQgPSB3eC5SZWN0KHBvcywgZXhwYW5kZWRfc2l6ZSkKKytkaWZmIC0tZ2l0IGEvd3gvbGliL2Fn dy9yaWJib24vdG9vbGJhci5weSBiL3d4L2xpYi9hZ3cvcmliYm9uL3Rvb2xiYXIucHkKKytpbmRl eCAxNzcxYzY1MDYuLjhjNmY4YjUyMiAxMDA2NDQKKystLS0gYS93eC9saWIvYWd3L3JpYmJvbi90 b29sYmFyLnB5CisrKysrIGIvd3gvbGliL2Fndy9yaWJib24vdG9vbGJhci5weQorK0BAIC0xMTU5 LDcgKzExNTksNyBAQCBkZWYgT25TaXplKHNlbGYsIGV2ZW50KToKKysgCisrICAgICAgICAgIyBT ZXQgZ3JvdXAgeSBwb3NpdGlvbnMKKysgICAgICAgICBmb3IgZ3JvdXAgaW4gc2VsZi5fZ3JvdXBz OgorKy0gICAgICAgICAgICBncm91cC5wb3NpdGlvbi55ID0gcm93eXBvc1tncm91cC5wb3NpdGlv bi55XQorKysgICAgICAgICAgICBncm91cC5wb3NpdGlvbi55ID0gaW50KHJvd3lwb3NbZ3JvdXAu cG9zaXRpb24ueV0pCisrIAorKyAKKysgICAgIGRlZiBHZXRCZXN0U2l6ZUZvclBhcmVudFNpemUo c2VsZiwgcGFyZW50U2l6ZSk6CisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hZ3cvc2hhcGVkYnV0dG9u LnB5IGIvd3gvbGliL2Fndy9zaGFwZWRidXR0b24ucHkKKytpbmRleCBmMDE1ZDRlMzkuLjQ5NTIz MzY2YSAxMDA2NDQKKystLS0gYS93eC9saWIvYWd3L3NoYXBlZGJ1dHRvbi5weQorKysrKyBiL3d4 L2xpYi9hZ3cvc2hhcGVkYnV0dG9uLnB5CisrQEAgLTU2OSw5ICs1NjksOSBAQCBkZWYgRHJhd01h aW5CdXR0b24oc2VsZiwgZGMsIHdpZHRoLCBoZWlnaHQpOgorKyAgICAgICAgICAgICAgICAgcmVj dDIgPSB3Km1haW4vL3NlY29uZGFyeQorKyAKKysgICAgICAgICAgICAgaWYgc2VsZi5faXN1cDoK KystICAgICAgICAgICAgICAgIGltZyA9IHNlbGYuX21haW5idXR0b251cC5TY2FsZShyZWN0Miwg cmVjdDMpCisrKyAgICAgICAgICAgICAgICBpbWcgPSBzZWxmLl9tYWluYnV0dG9udXAuU2NhbGUo aW50KHJlY3QyKSwgaW50KHJlY3QzKSkKKysgICAgICAgICAgICAgZWxzZToKKystICAgICAgICAg ICAgICAgIGltZyA9IHNlbGYuX21haW5idXR0b25kb3duLlNjYWxlKHJlY3QyLCByZWN0MykKKysr ICAgICAgICAgICAgICAgIGltZyA9IHNlbGYuX21haW5idXR0b25kb3duLlNjYWxlKGludChyZWN0 MiksIGludChyZWN0MykpCisrIAorKyAgICAgICAgIGJtcCA9IGltZy5Db252ZXJ0VG9CaXRtYXAo KQorKyAKKytAQCAtNTk5LDcgKzU5OSw3IEBAIGRlZiBEcmF3TWFpbkJ1dHRvbihzZWxmLCBkYywg d2lkdGgsIGhlaWdodCk6CisrICAgICAgICAgICAgICAgICAgICAgeXBvcyA9IDAKKysgCisrICAg ICAgICAgIyBEcmF3IEZpbmFsbHkgVGhlIEJpdG1hcAorKy0gICAgICAgIGRjLkRyYXdCaXRtYXAo Ym1wLCB4cG9zLCB5cG9zLCBUcnVlKQorKysgICAgICAgIGRjLkRyYXdCaXRtYXAoYm1wLCBpbnQo eHBvcyksIGludCh5cG9zKSwgVHJ1ZSkKKysgCisrICAgICAgICAgIyBTdG9yZSBCaXRtYXAgUG9z aXRpb24gQW5kIFNpemUgVG8gRHJhdyBBbiBFbGxpcHRpY2FsIEZvY3VzIEluZGljYXRvcgorKyAg ICAgICAgIHNlbGYuX3hwb3MgPSB4cG9zCisrQEAgLTY0Niw3ICs2NDYsNyBAQCBkZWYgRHJhd0xh YmVsKHNlbGYsIGRjLCB3aWR0aCwgaGVpZ2h0LCBkdz0wLCBkaD0wKToKKysgICAgICAgICAgICAg eHAgPSB4YyAtICh0dy8vMikqIGNvcyhhbmdsZSkgLSAodGgvLzIpKnNpbihhbmdsZSkKKysgICAg ICAgICAgICAgeXAgPSB5YyArICh0dy8vMikqc2luKGFuZ2xlKSAtICh0aC8vMikqY29zKGFuZ2xl KQorKyAKKystICAgICAgICAgICAgZGMuRHJhd1JvdGF0ZWRUZXh0KGxhYmVsLCB4cCArIGR3LCB5 cCArIGRoICwgYW5nbGUqMTgwL3BpKQorKysgICAgICAgICAgICBkYy5EcmF3Um90YXRlZFRleHQo bGFiZWwsIGludCh4cCArIGR3KSwgaW50KHlwICsgZGgpLCBhbmdsZSoxODAvcGkpCisrIAorKyAK KysgICAgIGRlZiBEcmF3Rm9jdXNJbmRpY2F0b3Ioc2VsZiwgZGMsIHdpZHRoLCBoZWlnaHQpOgor K0BAIC02NzYsNyArNjc2LDcgQEAgZGVmIERyYXdGb2N1c0luZGljYXRvcihzZWxmLCBkYywgd2lk dGgsIGhlaWdodCk6CisrICAgICAgICAgZWxzZToKKysgICAgICAgICAgICAgIyBUaGlzIElzIEFu IEVsbGlwc2UKKysgICAgICAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAiX3hwb3MiKToKKystICAg ICAgICAgICAgICAgIGRjLkRyYXdFbGxpcHNlKHNlbGYuX3hwb3MgKyAyLCBzZWxmLl95cG9zICsg Miwgc2VsZi5faW1neCAtIDQsIHNlbGYuX2ltZ3kgLSA0KQorKysgICAgICAgICAgICAgICAgZGMu RHJhd0VsbGlwc2UoaW50KHNlbGYuX3hwb3MgKyAyKSwgaW50KHNlbGYuX3lwb3MgKyAyKSwgc2Vs Zi5faW1neCAtIDQsIHNlbGYuX2ltZ3kgLSA0KQorKyAKKysgICAgICAgICBkYy5TZXRMb2dpY2Fs RnVuY3Rpb24od3guQ09QWSkKKysgCisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hZ3cvc3BlZWRtZXRl ci5weSBiL3d4L2xpYi9hZ3cvc3BlZWRtZXRlci5weQorK2luZGV4IGYxOTZiNTFmMi4uNjA2OTAx ZDI3IDEwMDY0NAorKy0tLSBhL3d4L2xpYi9hZ3cvc3BlZWRtZXRlci5weQorKysrKyBiL3d4L2xp Yi9hZ3cvc3BlZWRtZXRlci5weQorK0BAIC01ODAsOCArNTgwLDggQEAgZGVmIERyYXcoc2VsZiwg ZGMpOgorKyAgICAgICAgIGRjLlNldEJhY2tncm91bmQod3guQnJ1c2goc3BlZWRiYWNrZ3JvdW5k KSkKKysgICAgICAgICBkYy5DbGVhcigpCisrIAorKy0gICAgICAgIGNlbnRlclggPSBzZWxmLmZh Y2VCaXRtYXAuR2V0V2lkdGgoKS8yCisrLSAgICAgICAgY2VudGVyWSA9IHNlbGYuZmFjZUJpdG1h cC5HZXRIZWlnaHQoKS8yCisrKyAgICAgICAgY2VudGVyWCA9IHNlbGYuZmFjZUJpdG1hcC5HZXRX aWR0aCgpLy8yCisrKyAgICAgICAgY2VudGVyWSA9IHNlbGYuZmFjZUJpdG1hcC5HZXRIZWlnaHQo KS8vMgorKyAKKysgICAgICAgICBzZWxmLkNlbnRlclggPSBjZW50ZXJYCisrICAgICAgICAgc2Vs Zi5DZW50ZXJZID0gY2VudGVyWQorK0BAIC02ODEsNyArNjgxLDcgQEAgZGVmIERyYXcoc2VsZiwg ZGMpOgorKyAgICAgICAgICAgICAjIERyYXcgVGhlIEZpbGxlciAoQm90aCBJbiAiQWR2YW5jZSIg QW5kICJSZXZlcnNlIiBEaXJlY3Rpb25zKQorKyAKKysgICAgICAgICAgICAgZGMuU2V0QnJ1c2go d3guQnJ1c2goZmlsbGVyY29sb3VyKSkKKystICAgICAgICAgICAgZGMuRHJhd0FyYyh4czIsIHlz MiwgeGUyLCB5ZTIsIGNlbnRlclgsIGNlbnRlclkpCisrKyAgICAgICAgICAgIGRjLkRyYXdBcmMo eHMyLCB5czIsIHhlMiwgeWUyLCBpbnQoY2VudGVyWCksIGludChjZW50ZXJZKSkKKysgCisrICAg ICAgICAgICAgIGlmIHNlbGYuX2Fnd1N0eWxlICYgU01fRFJBV19TRUNUT1JTID09IDA6CisrICAg ICAgICAgICAgICAgICBkYy5TZXRCcnVzaCh3eC5CcnVzaChzcGVlZGJhY2tncm91bmQpKQorK0BA IC05NTIsNyArOTUyLDcgQEAgZGVmIERyYXcoc2VsZiwgZGMpOgorKyAgICAgICAgICAgICAgICAg ICAgIHkgPSB5IC0gaGVpZ2h0LzIuMCAtIGhlaWdodCpzaW4oYW5naXMpLzIuMAorKyAgICAgICAg ICAgICAgICAgICAgIGZhbmN5dGV4dC5SZW5kZXJUb0RDKGZhbmN5c3RyLCBkYywgeCwgeSkKKysg ICAgICAgICAgICAgICAgIGVsc2U6CisrLSAgICAgICAgICAgICAgICAgICAgZGMuRHJhd1RleHQo c3RyaW5ncywgeCwgeSkKKysrICAgICAgICAgICAgICAgICAgICBkYy5EcmF3VGV4dChzdHJpbmdz LCBpbnQoeCksIGludCh5KSkKKysgCisrICAgICAgICAgICAgICMgVGhpcyBJcyBUaGUgU21hbGwg UmVjdGFuZ2xlIC0tPiBUaWNrIE1hcmsKKysgICAgICAgICAgICAgcmVjdGFuZ2xlID0gY29sb3Vy YW5nbGVzW2lpXSArIHBpLzIuMAorK0BAIC05NjksNiArOTY5LDcgQEAgZGVmIERyYXcoc2VsZiwg ZGMpOgorKyAgICAgICAgICAgICB5NCA9IHkzICsgMypzZWxmLnNjYWxlKnNpbnJlY3QKKysgCisr ICAgICAgICAgICAgIHBvaW50cyA9IFsoeDEsIHkxKSwgKHgyLCB5MiksICh4NCwgeTQpLCAoeDMs IHkzKV0KKysrICAgICAgICAgICAgcG9pbnRzID0gWyhpbnQocFswXSksIGludChwWzFdKSkgZm9y IHAgaW4gcG9pbnRzXQorKyAKKysgICAgICAgICAgICAgZGMuRHJhd1BvbHlnb24ocG9pbnRzKQor KyAKKytAQCAtMTAwMyw2ICsxMDA0LDcgQEAgZGVmIERyYXcoc2VsZiwgZGMpOgorKyAgICAgICAg ICAgICAgICAgICAgICAgICB5NCA9IHkzICsgc2VsZi5zY2FsZSpzaW5yZWN0CisrIAorKyAgICAg ICAgICAgICAgICAgICAgICAgICBwb2ludHMgPSBbKHgxLCB5MSksICh4MiwgeTIpLCAoeDQsIHk0 KSwgKHgzLCB5MyldCisrKyAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50cyA9IFsoaW50KHBb MF0pLCBpbnQocFsxXSkpIGZvciBwIGluIHBvaW50c10KKysgCisrICAgICAgICAgICAgICAgICAg ICAgICAgIGRjLkRyYXdQb2x5Z29uKHBvaW50cykKKysgCisrQEAgLTEwMTcsNyArMTAxOSw3IEBA IGRlZiBEcmF3KHNlbGYsIGRjKToKKysgICAgICAgICBkYy5TZXRCcnVzaCh3eC5UUkFOU1BBUkVO VF9CUlVTSCkKKysgCisrICAgICAgICAgaWYgc2VsZi5fZHJhd2FyYzoKKystICAgICAgICAgICAg ZGMuU2V0UGVuKHd4LlBlbihzZWxmLkdldEFyY0NvbG91cigpLCAyLjApKQorKysgICAgICAgICAg ICBkYy5TZXRQZW4od3guUGVuKHNlbGYuR2V0QXJjQ29sb3VyKCksIDIpKQorKyAgICAgICAgICAg ICAjIElmIEl0J3MgTm90IEEgQ29tcGxldGUgQ2lyY2xlLCBEcmF3IFRoZSBDb25uZWN0aW5nIExp bmVzIEFuZCBUaGUgQXJjCisrICAgICAgICAgICAgIGlmIGFicyhhYnMoc3RhcnRhbmdsZSAtIGVu ZGFuZ2xlKSAtIDIqcGkpID4gMS4wLzE4MC4wOgorKyAgICAgICAgICAgICAgICAgZGMuRHJhd0Fy Yyh4c3RhcnQsIHlzdGFydCwgeGVuZCwgeWVuZCwgY2VudGVyWCwgY2VudGVyWSkKKytAQCAtMTA0 Niw3ICsxMDQ4LDcgQEAgZGVmIERyYXcoc2VsZiwgZGMpOgorKyAgICAgICAgICAgICBuZXd4ID0g Y2VudGVyWCArIDEuNSptdypjb3MobWlkZGxlYW5nbGUpIC0gbXcvMi4wCisrICAgICAgICAgICAg IG5ld3kgPSBjZW50ZXJZIC0gMS41Km1oKnNpbihtaWRkbGVhbmdsZSkgLSBtaC8yLjAKKysgICAg ICAgICAgICAgZGMuU2V0VGV4dEZvcmVncm91bmQobWlkZGxlY29sb3VyKQorKy0gICAgICAgICAg ICBkYy5EcmF3VGV4dChtaWRkbGV0ZXh0LCBuZXd4LCBuZXd5KQorKysgICAgICAgICAgICBkYy5E cmF3VGV4dChtaWRkbGV0ZXh0LCBpbnQobmV3eCksIGludChuZXd5KSkKKysgCisrICAgICAgICAg IyBIZXJlIFdlIERyYXcgVGhlIEljb24gSW4gVGhlIE1pZGRsZSwgTmVhciBUaGUgU3RhcnQgT2Yg VGhlIEFycm93IChJZiBQcmVzZW50KQorKyAgICAgICAgICMgVGhpcyBJcyBMaWtlIFRoZSAiRnVl bCIgSWNvbiBJbiBUaGUgQ2FycworK0BAIC0xMDU0LDggKzEwNTYsOCBAQCBkZWYgRHJhdyhzZWxm LCBkYyk6CisrIAorKyAgICAgICAgICAgICBtaWRkbGVpY29uID0gc2VsZi5HZXRNaWRkbGVJY29u KCkKKysgICAgICAgICAgICAgbWlkZGxld2lkdGgsIG1pZGRsZWhlaWdodCA9IHNlbGYuR2V0TWlk ZGxlSWNvbkRpbWVucygpCisrLSAgICAgICAgICAgIG1pZGRsZWljb24uU2V0V2lkdGgobWlkZGxl d2lkdGgqc2VsZi5zY2FsZSkKKystICAgICAgICAgICAgbWlkZGxlaWNvbi5TZXRIZWlnaHQobWlk ZGxlaGVpZ2h0KnNlbGYuc2NhbGUpCisrKyAgICAgICAgICAgIG1pZGRsZWljb24uU2V0V2lkdGgo aW50KG1pZGRsZXdpZHRoKnNlbGYuc2NhbGUpKQorKysgICAgICAgICAgICBtaWRkbGVpY29uLlNl dEhlaWdodChpbnQobWlkZGxlaGVpZ2h0KnNlbGYuc2NhbGUpKQorKyAgICAgICAgICAgICBtaWRk bGVhbmdsZSA9IChzdGFydGFuZ2xlICsgZW5kYW5nbGUpLzIuMAorKyAKKysgICAgICAgICAgICAg bXcgPSBtaWRkbGVpY29uLkdldFdpZHRoKCkKKytAQCAtMTA2NCw3ICsxMDY2LDcgQEAgZGVmIERy YXcoc2VsZiwgZGMpOgorKyAgICAgICAgICAgICBuZXd4ID0gY2VudGVyWCArIDEuNSptdypjb3Mo bWlkZGxlYW5nbGUpIC0gbXcvMi4wCisrICAgICAgICAgICAgIG5ld3kgPSBjZW50ZXJZIC0gMS41 Km1oKnNpbihtaWRkbGVhbmdsZSkgLSBtaC8yLjAKKysgCisrLSAgICAgICAgICAgIGRjLkRyYXdJ Y29uKG1pZGRsZWljb24sIG5ld3gsIG5ld3kpCisrKyAgICAgICAgICAgIGRjLkRyYXdJY29uKG1p ZGRsZWljb24sIGludChuZXd4KSwgaW50KG5ld3kpKQorKyAKKysgICAgICAgICAgICAgIyBSZXN0 b3JlIEljb24gRGltZW5zaW9uLCBJZiBOb3QgU29tZXRoaW5nIFN0cmFuZ2UgSGFwcGVucworKyAg ICAgICAgICAgICBtaWRkbGVpY29uLlNldFdpZHRoKG1pZGRsZXdpZHRoKQorK0BAIC0xMTA5LDUz ICsxMTExLDYxIEBAIGRlZiBEcmF3KHNlbGYsIGRjKToKKysgICAgICAgICAgICAgICAgIGlmIGhh bmRzdHlsZSA9PSAiQXJyb3ciOgorKyAgICAgICAgICAgICAgICAgICAgICMgRHJhdyBUaGUgU2hh ZG93CisrICAgICAgICAgICAgICAgICAgICAgc2hhZG93Y29sb3VyID0gc2VsZi5HZXRTaGFkb3dD b2xvdXIoKQorKy0gICAgICAgICAgICAgICAgICAgIGRjLlNldFBlbih3eC5QZW4oc2hhZG93Y29s b3VyLCA1KmxvZyhzZWxmLnNjYWxlKzEpKSkKKysrICAgICAgICAgICAgICAgICAgICBkYy5TZXRQ ZW4od3guUGVuKHNoYWRvd2NvbG91ciwgaW50KDUqbG9nKHNlbGYuc2NhbGUrMSkpKSkKKysgICAg ICAgICAgICAgICAgICAgICBkYy5TZXRCcnVzaCh3eC5CcnVzaChzaGFkb3djb2xvdXIpKQorKyAg ICAgICAgICAgICAgICAgICAgIHNoYWRvd2Rpc3RhbmNlID0gMi4wKnNlbGYuc2NhbGUKKystICAg ICAgICAgICAgICAgICAgICBkYy5EcmF3TGluZShuZXd4ICsgc2hhZG93ZGlzdGFuY2UsIG5ld3kg KyBzaGFkb3dkaXN0YW5jZSwKKystICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4YXJy ICsgc2hhZG93ZGlzdGFuY2UsIHlhcnIgKyBzaGFkb3dkaXN0YW5jZSkKKystCisrLSAgICAgICAg ICAgICAgICAgICAgZGMuRHJhd1BvbHlnb24oWyh4MStzaGFkb3dkaXN0YW5jZSwgeTErc2hhZG93 ZGlzdGFuY2UpLAorKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeDIrc2hh ZG93ZGlzdGFuY2UsIHkyK3NoYWRvd2Rpc3RhbmNlKSwKKystICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKHgzK3NoYWRvd2Rpc3RhbmNlLCB5MytzaGFkb3dkaXN0YW5jZSldKQor KysgICAgICAgICAgICAgICAgICAgIGRjLkRyYXdMaW5lKGludChuZXd4ICsgc2hhZG93ZGlzdGFu Y2UpLCBpbnQobmV3eSArIHNoYWRvd2Rpc3RhbmNlKSwKKysrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpbnQoeGFyciArIHNoYWRvd2Rpc3RhbmNlKSwgaW50KHlhcnIgKyBzaGFkb3dk aXN0YW5jZSkpCisrKworKysgICAgICAgICAgICAgICAgICAgIHBvaW50cyA9IFsoeDErc2hhZG93 ZGlzdGFuY2UsIHkxK3NoYWRvd2Rpc3RhbmNlKSwKKysrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKHgyK3NoYWRvd2Rpc3RhbmNlLCB5MitzaGFkb3dkaXN0YW5jZSksCisrKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICh4MytzaGFkb3dkaXN0YW5jZSwgeTMrc2hhZG93ZGlzdGFu Y2UpXQorKysgICAgICAgICAgICAgICAgICAgIHBvaW50cyA9IFsoaW50KHBbMF0pLCBpbnQocFsx XSkpIGZvciBwIGluIHBvaW50c10KKysrICAgICAgICAgICAgICAgICAgICBkYy5EcmF3UG9seWdv bihwb2ludHMpCisrICAgICAgICAgICAgICAgICBlbHNlOgorKyAgICAgICAgICAgICAgICAgICAg ICMgRHJhdyBUaGUgU2hhZG93CisrICAgICAgICAgICAgICAgICAgICAgc2hhZG93Y29sb3VyID0g c2VsZi5HZXRTaGFkb3dDb2xvdXIoKQorKyAgICAgICAgICAgICAgICAgICAgIGRjLlNldEJydXNo KHd4LkJydXNoKHNoYWRvd2NvbG91cikpCisrLSAgICAgICAgICAgICAgICAgICAgZGMuU2V0UGVu KHd4LlBlbihzaGFkb3djb2xvdXIsIDEuMCkpCisrKyAgICAgICAgICAgICAgICAgICAgZGMuU2V0 UGVuKHd4LlBlbihzaGFkb3djb2xvdXIsIDEpKQorKyAgICAgICAgICAgICAgICAgICAgIHNoYWRv d2Rpc3RhbmNlID0gMS41KnNlbGYuc2NhbGUKKysgCisrLSAgICAgICAgICAgICAgICAgICAgZGMu RHJhd1BvbHlnb24oWyh4MStzaGFkb3dkaXN0YW5jZSwgeTErc2hhZG93ZGlzdGFuY2UpLAorKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeDIrc2hhZG93ZGlzdGFuY2UsIHky K3NoYWRvd2Rpc3RhbmNlKSwKKystICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KHgzK3NoYWRvd2Rpc3RhbmNlLCB5MytzaGFkb3dkaXN0YW5jZSksCisrLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICh4NCtzaGFkb3dkaXN0YW5jZSwgeTQrc2hhZG93ZGlzdGFu Y2UpXSkKKysrICAgICAgICAgICAgICAgICAgICBwb2ludHMgPSBbKHgxK3NoYWRvd2Rpc3RhbmNl LCB5MStzaGFkb3dkaXN0YW5jZSksCisrKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh4 MitzaGFkb3dkaXN0YW5jZSwgeTIrc2hhZG93ZGlzdGFuY2UpLAorKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoeDMrc2hhZG93ZGlzdGFuY2UsIHkzK3NoYWRvd2Rpc3RhbmNlKSwKKysr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHg0K3NoYWRvd2Rpc3RhbmNlLCB5NCtzaGFk b3dkaXN0YW5jZSldCisrKyAgICAgICAgICAgICAgICAgICAgcG9pbnRzID0gWyhpbnQocFswXSks IGludChwWzFdKSkgZm9yIHAgaW4gcG9pbnRzXQorKysgICAgICAgICAgICAgICAgICAgIGRjLkRy YXdQb2x5Z29uKHBvaW50cykKKysgCisrICAgICAgICAgICAgIGlmIGhhbmRzdHlsZSA9PSAiQXJy b3ciOgorKyAKKystICAgICAgICAgICAgICAgIGRjLlNldFBlbih3eC5QZW4oaGFuZGNvbG91ciwg MS41KSkKKysrICAgICAgICAgICAgICAgIGRjLlNldFBlbih3eC5QZW4oaGFuZGNvbG91ciwgMSkp CisrIAorKyAgICAgICAgICAgICAgICAgIyBEcmF3IFRoZSBTbWFsbCBDaXJjbGUgSW4gVGhlIENl bnRlciAtLT4gVGhlIEhhbmQgIkhvbGRlciIKKysgICAgICAgICAgICAgICAgIGRjLlNldEJydXNo KHd4LkJydXNoKHNwZWVkYmFja2dyb3VuZCkpCisrLSAgICAgICAgICAgICAgICBkYy5EcmF3Q2ly Y2xlKGNlbnRlclgsIGNlbnRlclksIDQqc2VsZi5zY2FsZSkKKysrICAgICAgICAgICAgICAgIGRj LkRyYXdDaXJjbGUoY2VudGVyWCwgY2VudGVyWSwgaW50KDQqc2VsZi5zY2FsZSkpCisrIAorKy0g ICAgICAgICAgICAgICAgZGMuU2V0UGVuKHd4LlBlbihoYW5kY29sb3VyLCA1KmxvZyhzZWxmLnNj YWxlKzEpKSkKKysrICAgICAgICAgICAgICAgIGRjLlNldFBlbih3eC5QZW4oaGFuZGNvbG91ciwg aW50KDUqbG9nKHNlbGYuc2NhbGUrMSkpKSkKKysgICAgICAgICAgICAgICAgICMgRHJhdyBUaGUg IkhhbmQiLCBBbiBBcnJvdworKy0gICAgICAgICAgICAgICAgZGMuRHJhd0xpbmUobmV3eCwgbmV3 eSwgeGFyciwgeWFycikKKysrICAgICAgICAgICAgICAgIGRjLkRyYXdMaW5lKGludChuZXd4KSwg aW50KG5ld3kpLCBpbnQoeGFyciksIGludCh5YXJyKSkKKysgCisrICAgICAgICAgICAgICAgICAj IERyYXcgVGhlIEFycm93IFBvaW50ZXIKKysgICAgICAgICAgICAgICAgIGRjLlNldEJydXNoKHd4 LkJydXNoKGhhbmRjb2xvdXIpKQorKy0gICAgICAgICAgICAgICAgZGMuRHJhd1BvbHlnb24oWyh4 MSwgeTEpLCAoeDIsIHkyKSwgKHgzLCB5MyldKQorKysgICAgICAgICAgICAgICAgcG9pbnRzID0g Wyh4MSwgeTEpLCAoeDIsIHkyKSwgKHgzLCB5MyldCisrKyAgICAgICAgICAgICAgICBwb2ludHMg PSBbKGludChwWzBdKSwgaW50KHBbMV0pKSBmb3IgcCBpbiBwb2ludHNdCisrKyAgICAgICAgICAg ICAgICBkYy5EcmF3UG9seWdvbihwb2ludHMpCisrIAorKyAgICAgICAgICAgICBlbHNlOgorKyAK KysgICAgICAgICAgICAgICAgICMgRHJhdyBUaGUgSGFuZCBQb2ludGVyCisrLSAgICAgICAgICAg ICAgICBkYy5TZXRQZW4od3guUGVuKGhhbmRjb2xvdXIsIDEuNSkpCisrKyAgICAgICAgICAgICAg ICBkYy5TZXRQZW4od3guUGVuKGhhbmRjb2xvdXIsIDEpKQorKyAgICAgICAgICAgICAgICAgZGMu U2V0QnJ1c2god3guQnJ1c2goaGFuZGNvbG91cikpCisrLSAgICAgICAgICAgICAgICBkYy5EcmF3 UG9seWdvbihbKHgxLCB5MSksICh4MiwgeTIpLCAoeDMsIHkzKSwgKHg0LCB5NCldKQorKysgICAg ICAgICAgICAgICAgcG9pbnRzID0gWyh4MSwgeTEpLCAoeDIsIHkyKSwgKHgzLCB5MyksICh4NCwg eTQpXQorKysgICAgICAgICAgICAgICAgcG9pbnRzID0gWyhpbnQocFswXSksIGludChwWzFdKSkg Zm9yIHAgaW4gcG9pbnRzXQorKysgICAgICAgICAgICAgICAgZGMuRHJhd1BvbHlnb24ocG9pbnRz KQorKyAKKysgICAgICAgICAgICAgICAgICMgRHJhdyBUaGUgU21hbGwgQ2lyY2xlIEluIFRoZSBD ZW50ZXIgLS0+IFRoZSBIYW5kICJIb2xkZXIiCisrICAgICAgICAgICAgICAgICBkYy5TZXRCcnVz aCh3eC5CcnVzaChzcGVlZGJhY2tncm91bmQpKQorKy0gICAgICAgICAgICAgICAgZGMuRHJhd0Np cmNsZShjZW50ZXJYLCBjZW50ZXJZLCA0KnNlbGYuc2NhbGUpCisrKyAgICAgICAgICAgICAgICBk Yy5EcmF3Q2lyY2xlKGNlbnRlclgsIGNlbnRlclksIGludCg0KnNlbGYuc2NhbGUpKQorKyAKKysg CisrICAgICBkZWYgU2V0SW50ZXJ2YWxzKHNlbGYsIGludGVydmFscz1Ob25lKToKKytAQCAtMTUy Nyw3ICsxNTM3LDcgQEAgZGVmIFNldE1pZGRsZVRleHRGb250KHNlbGYsIGZvbnQ9Tm9uZSk6Cisr IAorKyAgICAgICAgIGlmIGZvbnQgaXMgTm9uZToKKysgICAgICAgICAgICAgc2VsZi5fbWlkZGxl dGV4dGZvbnQgPSB3eC5Gb250KDEsIHd4LkZPTlRGQU1JTFlfU1dJU1MsIHd4LkZPTlRTVFlMRV9O T1JNQUwsIHd4LkZPTlRXRUlHSFRfQk9MRCwgRmFsc2UpCisrLSAgICAgICAgICAgIHNlbGYuX21p ZGRsZXRleHRzaXplID0gMTAuMAorKysgICAgICAgICAgICBzZWxmLl9taWRkbGV0ZXh0c2l6ZSA9 IDEwCisrICAgICAgICAgICAgIHNlbGYuX21pZGRsZXRleHRmb250LlNldFBvaW50U2l6ZShzZWxm Ll9taWRkbGV0ZXh0c2l6ZSkKKysgICAgICAgICBlbHNlOgorKyAgICAgICAgICAgICBzZWxmLl9t aWRkbGV0ZXh0Zm9udCA9IGZvbnQKKytAQCAtMTU5OSw3ICsxNjA5LDcgQEAgZGVmIENpcmNsZUNv b3JkcyhzZWxmLCByYWRpdXMsIGFuZ2xlLCBjZW50ZXJYLCBjZW50ZXJZKToKKysgICAgICAgICB4 ID0gcmFkaXVzKmNvcyhhbmdsZSkgKyBjZW50ZXJYCisrICAgICAgICAgeSA9IHJhZGl1cypzaW4o YW5nbGUpICsgY2VudGVyWQorKyAKKystICAgICAgICByZXR1cm4geCwgeQorKysgICAgICAgIHJl dHVybiBpbnQoeCksIGludCh5KQorKyAKKysgCisrICAgICBkZWYgR2V0SW50ZXJzZWN0aW9uKHNl bGYsIGN1cnJlbnQsIGludGVydmFscyk6CisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hZ3cvc3VwZXJ0 b29sdGlwLnB5IGIvd3gvbGliL2Fndy9zdXBlcnRvb2x0aXAucHkKKytpbmRleCBhOTJjZTEwZDEu LmNkMGYwYzlmNyAxMDA2NDQKKystLS0gYS93eC9saWIvYWd3L3N1cGVydG9vbHRpcC5weQorKysr KyBiL3d4L2xpYi9hZ3cvc3VwZXJ0b29sdGlwLnB5CisrQEAgLTI5NSw4ICsyOTUsOCBAQCBkZWYg T25QYWludChzZWxmLCBldmVudCk6CisrIAorKyAgICAgICAgICMgR2V0IHRoZSB1c2VyIG9wdGlv bnMgZm9yIGhlYWRlciwgYml0bWFwcyBldGMuLi4KKysgICAgICAgICBkcmF3SGVhZGVyLCBkcmF3 Rm9vdGVyID0gY2xhc3NQYXJlbnQuR2V0RHJhd0hlYWRlckxpbmUoKSwgY2xhc3NQYXJlbnQuR2V0 RHJhd0Zvb3RlckxpbmUoKQorKy0gICAgICAgIHRvcFJlY3QgPSB3eC5SZWN0KGZyYW1lUmVjdC54 LCBmcmFtZVJlY3QueSwgZnJhbWVSZWN0LndpZHRoLCBmcmFtZVJlY3QuaGVpZ2h0LzIpCisrLSAg ICAgICAgYm90dG9tUmVjdCA9IHd4LlJlY3QoZnJhbWVSZWN0LngsIGZyYW1lUmVjdC55K2ZyYW1l UmVjdC5oZWlnaHQvMiwgZnJhbWVSZWN0LndpZHRoLCBmcmFtZVJlY3QuaGVpZ2h0LzIrMSkKKysr ICAgICAgICB0b3BSZWN0ID0gd3guUmVjdChmcmFtZVJlY3QueCwgZnJhbWVSZWN0LnksIGZyYW1l UmVjdC53aWR0aCwgZnJhbWVSZWN0LmhlaWdodC8vMikKKysrICAgICAgICBib3R0b21SZWN0ID0g d3guUmVjdChmcmFtZVJlY3QueCwgZnJhbWVSZWN0LnkrZnJhbWVSZWN0LmhlaWdodC8vMiwgZnJh bWVSZWN0LndpZHRoLCBmcmFtZVJlY3QuaGVpZ2h0Ly8yKzEpCisrICAgICAgICAgIyBGaWxsIHRo ZSB0cmlwbGUtZ3JhZGllbnQKKysgICAgICAgICBkYy5HcmFkaWVudEZpbGxMaW5lYXIodG9wUmVj dCwgdG9wQ29sb3VyLCBtaWRkbGVDb2xvdXIsIHd4LlNPVVRIKQorKyAgICAgICAgIGRjLkdyYWRp ZW50RmlsbExpbmVhcihib3R0b21SZWN0LCBtaWRkbGVDb2xvdXIsIGJvdHRvbUNvbG91ciwgd3gu U09VVEgpCisrQEAgLTMyNCw5ICszMjQsOSBAQCBkZWYgT25QYWludChzZWxmLCBldmVudCk6Cisr ICAgICAgICAgbm9ybWFsVGV4dCA9IGNsYXNzUGFyZW50LkdldFRleHRDb2xvdXIoKQorKyAgICAg ICAgIGlmIGhlYWRlcjoKKysgICAgICAgICAgICAgZGMuU2V0VGV4dEZvcmVncm91bmQobm9ybWFs VGV4dCkKKystICAgICAgICAgICAgZGMuRHJhd1RleHQoaGVhZGVyLCBibXBYUG9zK2JtcFdpZHRo K3NlbGYuX3NwYWNpbmcsIChoZWlnaHQtdGV4dEhlaWdodCtzZWxmLl9zcGFjaW5nKS8yKQorKysg ICAgICAgICAgICBkYy5EcmF3VGV4dChoZWFkZXIsIGJtcFhQb3MrYm1wV2lkdGgrc2VsZi5fc3Bh Y2luZywgKGhlaWdodC10ZXh0SGVpZ2h0K3NlbGYuX3NwYWNpbmcpLy8yKQorKyAgICAgICAgIGlm IGhlYWRlckJtcCBhbmQgaGVhZGVyQm1wLklzT2soKToKKystICAgICAgICAgICAgZGMuRHJhd0Jp dG1hcChoZWFkZXJCbXAsIGJtcFhQb3MsIChoZWlnaHQtYm1wSGVpZ2h0K3NlbGYuX3NwYWNpbmcp LzIsIFRydWUpCisrKyAgICAgICAgICAgIGRjLkRyYXdCaXRtYXAoaGVhZGVyQm1wLCBibXBYUG9z LCAoaGVpZ2h0LWJtcEhlaWdodCtzZWxmLl9zcGFjaW5nKS8vMiwgVHJ1ZSkKKysgCisrICAgICAg ICAgaWYgaGVhZGVyIG9yIChoZWFkZXJCbXAgYW5kIGhlYWRlckJtcC5Jc09rKCkpOgorKyAgICAg ICAgICAgICB5UG9zICs9IGhlaWdodAorK0BAIC0zNzYsNyArMzc2LDcgQEAgZGVmIE9uUGFpbnQo c2VsZiwgZXZlbnQpOgorKyAgICAgICAgICAgICAgICAgbWVzc2FnZUhlaWdodCArPSB0ZXh0SGVp Z2h0CisrIAorKyAgICAgICAgICAgICAgICAgeFRleHQgPSAoYm1wV2lkdGggKyAyICogc2VsZi5f c3BhY2luZykgaWYgYm1wV2lkdGggPiAwIGVsc2Ugc2VsZi5fc3BhY2luZworKy0gICAgICAgICAg ICAgICAgeVRleHQgKz0gdGV4dEhlaWdodC8yK3NlbGYuX3NwYWNpbmcKKysrICAgICAgICAgICAg ICAgIHlUZXh0ICs9IHRleHRIZWlnaHQvLzIrc2VsZi5fc3BhY2luZworKyAgICAgICAgICAgICAg ICAgbWF4V2lkdGggPSBtYXgoeFRleHQgKyB0ZXh0V2lkdGggKyBzZWxmLl9zcGFjaW5nLCBtYXhX aWR0aCkKKysgICAgICAgICAgICAgICAgIGRjLkRyYXdUZXh0KGxpbmUsIHhUZXh0LCB5VGV4dCkK KysgICAgICAgICAgICAgICAgIGlmIGlzTGluazoKKytAQCAtNDEyLDggKzQxMiw4IEBAIGRlZiBP blBhaW50KHNlbGYsIGV2ZW50KToKKysgICAgICAgICAgICAgaWYgZHJhd0Zvb3RlcjoKKysgICAg ICAgICAgICAgICAgICMgRHJhdyB0aGUgc2VwYXJhdG9yIGxpbmUgYmVmb3JlIHRoZSBmb290ZXIK KysgICAgICAgICAgICAgICAgIGRjLlNldFBlbih3eC5HUkVZX1BFTikKKystICAgICAgICAgICAg ICAgIGRjLkRyYXdMaW5lKHNlbGYuX3NwYWNpbmcsIHlQb3Mtc2VsZi5fc3BhY2luZy8yK3RvQWRk LAorKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgtc2VsZi5fc3BhY2luZywgeVBv cy1zZWxmLl9zcGFjaW5nLzIrdG9BZGQpCisrKyAgICAgICAgICAgICAgICBkYy5EcmF3TGluZShz ZWxmLl9zcGFjaW5nLCB5UG9zLXNlbGYuX3NwYWNpbmcvLzIrdG9BZGQsCisrKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICB3aWR0aC1zZWxmLl9zcGFjaW5nLCB5UG9zLXNlbGYuX3NwYWNpbmcv LzIrdG9BZGQpCisrICAgICAgICAgIyBEcmF3IHRoZSBmb290ZXIgYW5kIGZvb3RlciBiaXRtYXAg KGlmIGFueSkKKysgICAgICAgICBkYy5TZXRUZXh0Rm9yZWdyb3VuZChub3JtYWxUZXh0KQorKyAg ICAgICAgIGhlaWdodCA9IG1heCh0ZXh0SGVpZ2h0LCBibXBIZWlnaHQpCisrQEAgLTQyNCw3ICs0 MjQsNyBAQCBkZWYgT25QYWludChzZWxmLCBldmVudCk6CisrICAgICAgICAgICAgIG1heFdpZHRo ID0gbWF4KGJtcFhQb3MgKyBibXBXaWR0aCArIChzZWxmLl9zcGFjaW5nKjIpICsgdGV4dFdpZHRo LCBtYXhXaWR0aCkKKysgICAgICAgICBpZiBmb290ZXJCbXAgYW5kIGZvb3RlckJtcC5Jc09rKCk6 CisrICAgICAgICAgICAgIHRvQWRkID0gKGhlaWdodCAtIGJtcEhlaWdodCArIHNlbGYuX3NwYWNp bmcpIC8gMgorKy0gICAgICAgICAgICBkYy5EcmF3Qml0bWFwKGZvb3RlckJtcCwgYm1wWFBvcywg eVBvcyArIHRvQWRkLCBUcnVlKQorKysgICAgICAgICAgICBkYy5EcmF3Qml0bWFwKGZvb3RlckJt cCwgYm1wWFBvcywgaW50KHlQb3MgKyB0b0FkZCksIFRydWUpCisrICAgICAgICAgICAgIG1heFdp ZHRoID0gbWF4KGZvb3RlckJtcC5HZXRTaXplKCkuR2V0V2lkdGgoKSArIGJtcFhQb3MsIG1heFdp ZHRoKQorKyAKKysgICAgICAgICBtYXhIZWlnaHQgPSB5UG9zICsgaGVpZ2h0ICsgdG9BZGQKKytA QCAtODE1LDcgKzgxNSw3IEBAIGRlZiBTZXRTdGFydERlbGF5KHNlbGYsIGRlbGF5PTEpOgorKyAg ICAgICAgIDpwYXJhbSBgZGVsYXlgOiB0aGUgZGVsYXkgaW4gc2Vjb25kcy4KKysgICAgICAgICAi IiIKKysgCisrLSAgICAgICAgc2VsZi5fc3RhcnREZWxheVRpbWUgPSBmbG9hdChkZWxheSkKKysr ICAgICAgICBzZWxmLl9zdGFydERlbGF5VGltZSA9IGludChkZWxheSkKKysgCisrIAorKyAgICAg ZGVmIEdldFN0YXJ0RGVsYXkoc2VsZik6CisrQEAgLTgzMSw3ICs4MzEsNyBAQCBkZWYgU2V0RW5k RGVsYXkoc2VsZiwgZGVsYXk9MWU2KToKKysgICAgICAgICA6cGFyYW0gYGRlbGF5YDogdGhlIGRl bGF5IGluIHNlY29uZHMuCisrICAgICAgICAgIiIiCisrIAorKy0gICAgICAgIHNlbGYuX2VuZERl bGF5VGltZSA9IGZsb2F0KGRlbGF5KQorKysgICAgICAgIHNlbGYuX2VuZERlbGF5VGltZSA9IGlu dChkZWxheSkKKysgCisrIAorKyAgICAgZGVmIEdldEVuZERlbGF5KHNlbGYpOgorK2RpZmYgLS1n aXQgYS93eC9saWIvYWd3L3RvYXN0ZXJib3gucHkgYi93eC9saWIvYWd3L3RvYXN0ZXJib3gucHkK KytpbmRleCBiNzM0MjlkZDIuLjhlZmI1ODY5YiAxMDA2NDQKKystLS0gYS93eC9saWIvYWd3L3Rv YXN0ZXJib3gucHkKKysrKysgYi93eC9saWIvYWd3L3RvYXN0ZXJib3gucHkKKytAQCAtMTMxNiwx MSArMTMxNiwxMSBAQCBkZWYgX2dldFRleHRDb29yZHMoc2VsZiwgZGMpOgorKyAgICAgICAgIGZv ciBsaW5lIGluIGxpbmVzOgorKyAgICAgICAgICAgICB3LCBoID0gZGMuR2V0VGV4dEV4dGVudChs aW5lKQorKyAgICAgICAgICAgICBmaCArPSBoICsgdGV4dFBhZGRpbmcKKystICAgICAgICB5ID0g KHRoIC0gZmgpIC8gMjsgY29vcmRzID0gW10KKysrICAgICAgICB5ID0gKHRoIC0gZmgpIC8vIDI7 IGNvb3JkcyA9IFtdCisrIAorKyAgICAgICAgIGZvciBsaW5lIGluIGxpbmVzOgorKyAgICAgICAg ICAgICB3LCBoID0gZGMuR2V0VGV4dEV4dGVudChsaW5lKQorKy0gICAgICAgICAgICB4ID0gKHR3 IC0gdykgLyAyCisrKyAgICAgICAgICAgIHggPSAodHcgLSB3KSAvLyAyCisrICAgICAgICAgICAg IGNvb3Jkcy5hcHBlbmQoKHgsIHkpKQorKyAgICAgICAgICAgICB5ICs9IGggKyB0ZXh0UGFkZGlu ZworKyAKKytkaWZmIC0tZ2l0IGEvd3gvbGliL2Fndy91bHRpbWF0ZWxpc3RjdHJsLnB5IGIvd3gv bGliL2Fndy91bHRpbWF0ZWxpc3RjdHJsLnB5CisraW5kZXggMTRmYzQxZjg2Li5jYWE1ZTVjZjQg MTAwNjQ0CisrLS0tIGEvd3gvbGliL2Fndy91bHRpbWF0ZWxpc3RjdHJsLnB5CisrKysrIGIvd3gv bGliL2Fndy91bHRpbWF0ZWxpc3RjdHJsLnB5CisrQEAgLTkxNCw3ICs5MTQsNyBAQCBkZWYgRHJh dyhzZWxmLCBpbmRleCwgZGMsIHgsIHksIGZsYWdzLCBzb2xpZEJhY2tncm91bmQ9VHJ1ZSk6Cisr ICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiV3JvbmcgaW5kZXggaW4gaW1hZ2UgbGlzdCIp CisrIAorKyAgICAgICAgIGJtcCA9IHNlbGYuX2ltYWdlc1tpbmRleF0KKystICAgICAgICBkYy5E cmF3Qml0bWFwKGJtcCwgeCwgeSwgKGZsYWdzICYgd3guSU1BR0VMSVNUX0RSQVdfVFJBTlNQQVJF TlQpID4gMCkKKysrICAgICAgICBkYy5EcmF3Qml0bWFwKGJtcCwgeCwgaW50KHkpLCAoZmxhZ3Mg JiB3eC5JTUFHRUxJU1RfRFJBV19UUkFOU1BBUkVOVCkgPiAwKQorKyAKKysgICAgICAgICByZXR1 cm4gVHJ1ZQorKyAKKytAQCAtNDAyMiw3ICs0MDIyLDcgQEAgZGVmIFNldFBvc2l0aW9uKHNlbGYs IHgsIHksIHNwYWNpbmcpOgorKyAKKysgICAgICAgICAgICAgaWYgaXRlbS5IYXNJbWFnZSgpOgor KyAKKystICAgICAgICAgICAgICAgIHNlbGYuX2dpLl9yZWN0SWNvbi54ID0gc2VsZi5fZ2kuX3Jl Y3RBbGwueCArIDQgKyAoc2VsZi5fZ2kuX3JlY3RBbGwud2lkdGggLSBzZWxmLl9naS5fcmVjdElj b24ud2lkdGgpLzIKKysrICAgICAgICAgICAgICAgIHNlbGYuX2dpLl9yZWN0SWNvbi54ID0gc2Vs Zi5fZ2kuX3JlY3RBbGwueCArIDQgKyAoc2VsZi5fZ2kuX3JlY3RBbGwud2lkdGggLSBzZWxmLl9n aS5fcmVjdEljb24ud2lkdGgpLy8yCisrICAgICAgICAgICAgICAgICBzZWxmLl9naS5fcmVjdElj b24ueSA9IHNlbGYuX2dpLl9yZWN0QWxsLnkgKyA0CisrIAorKyAgICAgICAgICAgICBpZiBpdGVt Lkhhc1RleHQoKToKKytAQCAtNDAzMCw3ICs0MDMwLDcgQEAgZGVmIFNldFBvc2l0aW9uKHNlbGYs IHgsIHksIHNwYWNpbmcpOgorKyAgICAgICAgICAgICAgICAgaWYgc2VsZi5fZ2kuX3JlY3RMYWJl bC53aWR0aCA+IHNwYWNpbmc6CisrICAgICAgICAgICAgICAgICAgICAgc2VsZi5fZ2kuX3JlY3RM YWJlbC54ID0gc2VsZi5fZ2kuX3JlY3RBbGwueCArIDIKKysgICAgICAgICAgICAgICAgIGVsc2U6 CisrLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fZ2kuX3JlY3RMYWJlbC54ID0gc2VsZi5fZ2ku X3JlY3RBbGwueCArIDIgKyAoc3BhY2luZy8yKSAtIChzZWxmLl9naS5fcmVjdExhYmVsLndpZHRo LzIpCisrKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fZ2kuX3JlY3RMYWJlbC54ID0gc2VsZi5f Z2kuX3JlY3RBbGwueCArIDIgKyAoc3BhY2luZy8vMikgLSAoc2VsZi5fZ2kuX3JlY3RMYWJlbC53 aWR0aC8vMikKKysgCisrICAgICAgICAgICAgICAgICBzZWxmLl9naS5fcmVjdExhYmVsLnkgPSBz ZWxmLl9naS5fcmVjdEFsbC55ICsgc2VsZi5fZ2kuX3JlY3RBbGwuaGVpZ2h0ICsgMiAtIHNlbGYu X2dpLl9yZWN0TGFiZWwuaGVpZ2h0CisrICAgICAgICAgICAgICAgICBzZWxmLl9naS5fcmVjdEhp Z2hsaWdodC54ID0gc2VsZi5fZ2kuX3JlY3RMYWJlbC54IC0gMgorK0BAIC00NTQ2LDcgKzQ1NDYs NyBAQCBkZWYgRHJhd0luUmVwb3J0TW9kZShzZWxmLCBkYywgbGluZSwgcmVjdCwgcmVjdEhMLCBo aWdobGlnaHRlZCwgY3VycmVudCwgZW5hYmxlZAorKyAgICAgICAgICAgICAgICAgIyBXZSBnb3Qg YSBjaGVja2JveC10eXBlIGl0ZW0KKysgICAgICAgICAgICAgICAgIGl4LCBpeSA9IHNlbGYuX293 bmVyLkdldENoZWNrYm94SW1hZ2VTaXplKCkKKysgICAgICAgICAgICAgICAgIGNoZWNrZWQgPSBp dGVtLklzQ2hlY2tlZCgpCisrLSAgICAgICAgICAgICAgICBzZWxmLl9vd25lci5EcmF3Q2hlY2ti b3goZGMsIHhPbGQsIHkgKyAoaGVpZ2h0LWl5KzEpLzIsIGl0ZW0uR2V0S2luZCgpLCBjaGVja2Vk LCBlbmFibGVkKQorKysgICAgICAgICAgICAgICAgc2VsZi5fb3duZXIuRHJhd0NoZWNrYm94KGRj LCB4T2xkLCB5ICsgKGhlaWdodC1peSsxKS8vMiwgaXRlbS5HZXRLaW5kKCksIGNoZWNrZWQsIGVu YWJsZWQpCisrICAgICAgICAgICAgICAgICB4T2xkICs9IGl4CisrICAgICAgICAgICAgICAgICB3 aWR0aCAtPSBpeAorKyAKKytAQCAtNDU1Nyw3ICs0NTU3LDcgQEAgZGVmIERyYXdJblJlcG9ydE1v ZGUoc2VsZiwgZGMsIGxpbmUsIHJlY3QsIHJlY3RITCwgaGlnaGxpZ2h0ZWQsIGN1cnJlbnQsIGVu YWJsZWQKKysgICAgICAgICAgICAgICAgIGZvciBpbWcgaW4gaW1hZ2VzOgorKyAKKysgICAgICAg ICAgICAgICAgICAgICBpeCwgaXkgPSBzZWxmLl9vd25lci5HZXRJbWFnZVNpemUoW2ltZ10pCisr LSAgICAgICAgICAgICAgICAgICAgc2VsZi5fb3duZXIuRHJhd0ltYWdlKGltZywgZGMsIHhPbGQs IHkgKyAoaGVpZ2h0LWl5KS8yLCBlbmFibGVkKQorKysgICAgICAgICAgICAgICAgICAgIHNlbGYu X293bmVyLkRyYXdJbWFnZShpbWcsIGRjLCB4T2xkLCB5ICsgKGhlaWdodC1peSkvLzIsIGVuYWJs ZWQpCisrIAorKyAgICAgICAgICAgICAgICAgICAgIHhPbGQgKz0gaXgKKysgICAgICAgICAgICAg ICAgICAgICB3aWR0aCAtPSBpeAorK0BAIC01MjMwLDcgKzUyMzAsNyBAQCBkZWYgT25QYWludChz ZWxmLCBldmVudCk6CisrICAgICAgICAgICAgICAgICAjIFdlIGdvdCBhIGNoZWNrYm94LXR5cGUg aXRlbQorKyAgICAgICAgICAgICAgICAgaXgsIGl5ID0gc2VsZi5fb3duZXIuR2V0Q2hlY2tib3hJ bWFnZVNpemUoKQorKyAgICAgICAgICAgICAgICAgIyBXZSBkcmF3IGl0IG9uIHRoZSBsZWZ0LCBh bHdheXMKKystICAgICAgICAgICAgICAgIHNlbGYuX293bmVyLkRyYXdDaGVja2JveChkYywgeCAr IEhFQURFUl9PRkZTRVRfWCwgSEVBREVSX09GRlNFVF9ZICsgKGggLSA0IC0gaXkpLzIsIGtpbmQs IGNoZWNrZWQsIGVuYWJsZWQpCisrKyAgICAgICAgICAgICAgICBzZWxmLl9vd25lci5EcmF3Q2hl Y2tib3goZGMsIHggKyBIRUFERVJfT0ZGU0VUX1gsIEhFQURFUl9PRkZTRVRfWSArIChoIC0gNCAt IGl5KS8vMiwga2luZCwgY2hlY2tlZCwgZW5hYmxlZCkKKysgICAgICAgICAgICAgICAgIHdjaGVj ayArPSBpeCArIEhFQURFUl9JTUFHRV9NQVJHSU5fSU5fUkVQT1JUX01PREUKKysgICAgICAgICAg ICAgICAgIGN3IC09IGl4ICsgSEVBREVSX0lNQUdFX01BUkdJTl9JTl9SRVBPUlRfTU9ERQorKyAK KytAQCAtNjgxOSw3ICs2ODE5LDcgQEAgZGVmIEhpdFRlc3RMaW5lKHNlbGYsIGxpbmUsIHgsIHkp OgorKyAgICAgICAgICAgICAgICAgICAgICMgV2UgZ290IGEgY2hlY2tib3gtdHlwZSBpdGVtCisr ICAgICAgICAgICAgICAgICAgICAgaXgsIGl5ID0gc2VsZi5HZXRDaGVja2JveEltYWdlU2l6ZSgp CisrICAgICAgICAgICAgICAgICAgICAgTEggPSBzZWxmLkdldExpbmVIZWlnaHQobGluZSkKKyst ICAgICAgICAgICAgICAgICAgICByZWN0ID0gd3guUmVjdCh4T2xkLCBsaW5lWSArIExILzIgLSBp eS8yLCBpeCwgaXkpCisrKyAgICAgICAgICAgICAgICAgICAgcmVjdCA9IHd4LlJlY3QoeE9sZCwg bGluZVkgKyBMSC8vMiAtIGl5Ly8yLCBpeCwgaXkpCisrICAgICAgICAgICAgICAgICAgICAgaWYg cmVjdC5Db250YWlucygoeCwgeSkpOgorKyAgICAgICAgICAgICAgICAgICAgICAgICBuZXdJdGVt ID0gc2VsZi5HZXRQYXJlbnQoKS5HZXRJdGVtKGxpbmUsIGNvbCkKKysgICAgICAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIG5ld0l0ZW0sIFVMQ19ISVRURVNUX09OSVRFTUNIRUNLCisrQEAgLTc5 MzcsMTMgKzc5MzcsMTMgQEAgZGVmIE1vdmVUb0l0ZW0oc2VsZiwgaXRlbSk6CisrICAgICAgICAg ICAgICAgICAgICAgd2hpbGUgc3RhcnRfeSA+IHZpZXdfeToKKysgICAgICAgICAgICAgICAgICAg ICAgICAgc3RhcnRfeSAtPSBTQ1JPTExfVU5JVF9ZCisrIAorKy0gICAgICAgICAgICAgICAgICAg IHNlbGYuU2Nyb2xsKC0xLCBzdGFydF95L1NDUk9MTF9VTklUX1kpCisrKyAgICAgICAgICAgICAg ICAgICAgc2VsZi5TY3JvbGwoLTEsIHN0YXJ0X3kvL1NDUk9MTF9VTklUX1kpCisrIAorKyAgICAg ICAgICAgICAgICAgaWYgc3RhcnRfeSArIGhlaWdodCA+IHZpZXdfeSArIGNsaWVudF9oOgorKyAg ICAgICAgICAgICAgICAgICAgIHdoaWxlIHN0YXJ0X3kgKyBoZWlnaHQgPCB2aWV3X3kgKyBjbGll bnRfaDoKKysgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfeSArPSBTQ1JPTExfVU5JVF9Z CisrIAorKy0gICAgICAgICAgICAgICAgICAgIHNlbGYuU2Nyb2xsKC0xLCAoc3RhcnRfeStoZWln aHQtY2xpZW50X2grU0NST0xMX1VOSVRfWSkvU0NST0xMX1VOSVRfWSkKKysrICAgICAgICAgICAg ICAgICAgICBzZWxmLlNjcm9sbCgtMSwgKHN0YXJ0X3kraGVpZ2h0LWNsaWVudF9oK1NDUk9MTF9V TklUX1kpLy9TQ1JPTExfVU5JVF9ZKQorKyAKKysgICAgICAgICBlbHNlOiAjICFyZXBvcnQKKysg CisrQEAgLTc5NjAsNyArNzk2MCw3IEBAIGRlZiBNb3ZlVG9JdGVtKHNlbGYsIGl0ZW0pOgorKyAg ICAgICAgICAgICBpZiByZWN0LnkgKyByZWN0LmhlaWdodCAtIDUgPiB2aWV3X3kgKyBjbGllbnRf aDoKKysgICAgICAgICAgICAgICAgIHN5ID0gKHJlY3QueSArIHJlY3QuaGVpZ2h0IC0gY2xpZW50 X2ggKyBoTGluZSkvaExpbmUKKysgCisrLSAgICAgICAgICAgIHNlbGYuU2Nyb2xsKHN4LCBzeSkK KysrICAgICAgICAgICAgc2VsZi5TY3JvbGwoaW50KHN4KSwgaW50KHN5KSkKKysgCisrIAorKyAj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKytkaWZmIC0tZ2l0IGEvd3gvbGliL2Fndy94bHNncmlkLnB5 IGIvd3gvbGliL2Fndy94bHNncmlkLnB5CisraW5kZXggYjUwNWFlYmI0Li4xNzI2N2ZhYmMgMTAw NjQ0CisrLS0tIGEvd3gvbGliL2Fndy94bHNncmlkLnB5CisrKysrIGIvd3gvbGliL2Fndy94bHNn cmlkLnB5CisrQEAgLTk2NSw3ICs5NjUsNyBAQCBkZWYgRHJhdyhzZWxmLCBkYywgcmVjdCk6Cisr ICAgICAgICAgICAgIHhwID0geGMgLSAodGV4dF93aWR0aC8yKSp4c2hpZnQgLSAodGV4dF9oZWln aHQvMikqeXNoaWZ0CisrICAgICAgICAgICAgIHlwID0geWMgKyAodGV4dF93aWR0aC8yKSp5c2hp ZnQgLSAodGV4dF9oZWlnaHQvMikqeHNoaWZ0CisrIAorKy0gICAgICAgICAgICBkYy5EcmF3Um90 YXRlZFRleHQodmFsdWUsIHhwLCB5cCwgc2VsZi5yb3RhdGlvbikKKysrICAgICAgICAgICAgZGMu RHJhd1JvdGF0ZWRUZXh0KHZhbHVlLCBpbnQoeHApLCBpbnQoeXApLCBzZWxmLnJvdGF0aW9uKQor KyAKKysgICAgICAgICBlbHNlOgorKyAKKytAQCAtMTEyNSw3ICsxMTI1LDcgQEAgZGVmIERyYXco c2VsZiwgZGMsIHJlY3QpOgorKyAgICAgICAgICAgICBpZiBmb250LmVzY2FwZW1lbnQgPT0gMToK KysgICAgICAgICAgICAgICAgIHlwb3MgPSB5cG9zIC0gbWF4SCArIGhlaWdodAorKyAKKystICAg ICAgICAgICAgZGMuRHJhd1RleHQoY2h1bmssIHN0YXJ0LCB5cG9zKQorKysgICAgICAgICAgICBk Yy5EcmF3VGV4dChjaHVuaywgc3RhcnQsIGludCh5cG9zKSkKKysgICAgICAgICAgICAgc3RhcnQg Kz0gd2lkdGgKKysgCisrIAorK2RpZmYgLS1naXQgYS93eC9saWIvYWd3L3pvb21iYXIucHkgYi93 eC9saWIvYWd3L3pvb21iYXIucHkKKytpbmRleCAxZTZlYzVkYTMuLjhjMmFmZDA1OCAxMDA2NDQK KystLS0gYS93eC9saWIvYWd3L3pvb21iYXIucHkKKysrKysgYi93eC9saWIvYWd3L3pvb21iYXIu cHkKKytAQCAtNDYzLDcgKzQ2Myw3IEBAIGRlZiBTZXRTaXplKHNlbGYsIHdpZHRoLCBoZWlnaHQp OgorKyAgICAgZGVmIEdldFBvc2l0aW9uKHNlbGYpOgorKyAgICAgICAgICIiIiBSZXR1cm5zIHRo ZSBidXR0b24gcG9zaXRpb24uICIiIgorKyAKKystICAgICAgICByZXR1cm4gd3guUG9pbnQoc2Vs Zi5fbGVmdCwgc2VsZi5fdG9wKQorKysgICAgICAgIHJldHVybiB3eC5Qb2ludChpbnQoc2VsZi5f bGVmdCksIGludChzZWxmLl90b3ApKQorKyAKKysgCisrICAgICBkZWYgR2V0U2l6ZShzZWxmKToK KytAQCAtNjAxLDcgKzYwMSw3IEBAIGRlZiBfX2luaXRfXyhzZWxmLCBiaXRtYXA9Tm9uZSk6Cisr ICAgICBkZWYgR2V0UG9zaXRpb24oc2VsZik6CisrICAgICAgICAgIiIiIFJldHVybnMgdGhlIHBv c2l0aW9uIG9mIDpjbGFzczpgd3guSW1hZ2VCYXJgLCBhcyBhIDpjbGFzczpgd3guUG9pbnRgLiAi IiIKKysgCisrLSAgICAgICAgcmV0dXJuIHd4LlBvaW50KHNlbGYuX2xlZnQsIHNlbGYuX3RvcCkK KysrICAgICAgICByZXR1cm4gd3guUG9pbnQoaW50KHNlbGYuX2xlZnQpLCBpbnQoc2VsZi5fdG9w KSkKKysgCisrIAorKyAgICAgZGVmIEdldFNpemUoc2VsZik6CisrQEAgLTY2MCw3ICs2NjAsNyBA QCBkZWYgU2V0QmFyQ29sb3VyKHNlbGYsIGNvbG91ciwgeFNpemU9Tm9uZSwgeVNpemU9Tm9uZSk6 CisrICAgICAgICAgaWYgeFNpemUgaXMgbm90IE5vbmU6CisrICAgICAgICAgICAgIHNlbGYuX3Np emUgPSB3eC5TaXplKHhTaXplLCB5U2l6ZSkKKysgCisrLSAgICAgICAgYml0bWFwLlJlc2NhbGUo c2VsZi5fc2l6ZS53aWR0aCwgc2VsZi5fc2l6ZS5oZWlnaHQvMikKKysrICAgICAgICBiaXRtYXAu UmVzY2FsZShzZWxmLl9zaXplLndpZHRoLCBzZWxmLl9zaXplLmhlaWdodC8vMikKKysgCisrICAg ICAgICAgcjEsIGcxLCBiMSA9IHNlbGYuX3N0YXJ0Q29sb3VyLlJlZCgpLCBzZWxmLl9zdGFydENv bG91ci5HcmVlbigpLCBzZWxmLl9zdGFydENvbG91ci5CbHVlKCkKKysgICAgICAgICByMiwgZzIs IGIyID0gY29sb3VyLlJlZCgpLCBjb2xvdXIuR3JlZW4oKSwgY29sb3VyLkJsdWUoKQorK0BAIC0x MDY1LDcgKzEwNjUsNyBAQCBkZWYgUmVzZXRTaXplKHNlbGYpOgorKyAgICAgICAgICAgICB5U2l6 ZSArPSB5ZXh0ZW50CisrIAorKyAgICAgICAgIGlmIHNlbGYuX3Nob3dSZWZsZWN0aW9uczoKKyst ICAgICAgICAgICAgeVNpemUgKz0gc2VsZi5fYnV0dG9uU2l6ZS8yCisrKyAgICAgICAgICAgIHlT aXplICs9IHNlbGYuX2J1dHRvblNpemUvLzIKKysgICAgICAgICBpZiBzZWxmLl9jZW50ZXJab29t OgorKyAgICAgICAgICAgICB5U2l6ZSArPSBzZWxmLl9idXR0b25TaXplCisrIAorK0BAIC0xMjQw LDcgKzEyNDAsNyBAQCBkZWYgRHJhd0xhYmVscyhzZWxmLCBkYyk6CisrICAgICAgICAgICAgIHRl eHRXaWR0aCwgdGV4dEhlaWdodCA9IGRjLkdldFRleHRFeHRlbnQobGFiZWwpCisrICAgICAgICAg ICAgIGJ1dHRvblBvcyA9IGJ1dHRvbi5HZXRQb3NpdGlvbigpCisrICAgICAgICAgICAgIGJ1dHRv blNpemUgPSBidXR0b24uR2V0U2l6ZSgpCisrLSAgICAgICAgICAgIHhwb3MgPSBidXR0b25Qb3Mu eCArIChidXR0b25TaXplLndpZHRoIC0gdGV4dFdpZHRoKS8yCisrKyAgICAgICAgICAgIHhwb3Mg PSBidXR0b25Qb3MueCArIChidXR0b25TaXplLndpZHRoIC0gdGV4dFdpZHRoKS8vMgorKyAgICAg ICAgICAgICB5cG9zID0gYnV0dG9uUG9zLnkgLSB0ZXh0SGVpZ2h0IC0gMgorKyAKKysgICAgICAg ICAgICAgZGMuRHJhd1JlY3RhbmdsZSh4cG9zLTIsIHlwb3MtMSwgdGV4dFdpZHRoKzQsIHRleHRI ZWlnaHQrMikKKytkaWZmIC0tZ2l0IGEvd3gvbGliL2FuYWxvZ2Nsb2NrL2FuYWxvZ2Nsb2NrLnB5 IGIvd3gvbGliL2FuYWxvZ2Nsb2NrL2FuYWxvZ2Nsb2NrLnB5CisraW5kZXggN2M0YjE4OTc5Li4x ZWUxZDY3NDIgMTAwNjQ0CisrLS0tIGEvd3gvbGliL2FuYWxvZ2Nsb2NrL2FuYWxvZ2Nsb2NrLnB5 CisrKysrIGIvd3gvbGliL2FuYWxvZ2Nsb2NrL2FuYWxvZ2Nsb2NrLnB5CisrQEAgLTE3Myw3ICsx NzMsNyBAQCBkZWYgX3JlY2FsY0Nvb3JkcyhzZWxmLCBzaXplKToKKysgICAgICAgICBzY2FsZSA9 IG1pbihbZmxvYXQoc2l6ZS53aWR0aCkgLyBzZWxmLmJhc2VzaXplLndpZHRoLAorKyAgICAgICAg ICAgICAgICAgICAgICBmbG9hdChzaXplLmhlaWdodCkgLyBzZWxmLmJhc2VzaXplLmhlaWdodF0p CisrIAorKy0gICAgICAgIGNlbnRyZSA9IHd4LlBvaW50KHNpemUud2lkdGggLyAyLiwgc2l6ZS5o ZWlnaHQgLyAyLikKKysrICAgICAgICBjZW50cmUgPSB3eC5Qb2ludChzaXplLndpZHRoIC8vIDIs IHNpemUuaGVpZ2h0IC8vIDIpCisrIAorKyAgICAgICAgIHNlbGYuQm94LlJlY2FsY0Nvb3Jkcyhz aXplLCBjZW50cmUsIHNjYWxlKQorKyAgICAgICAgIHNlbGYuSGFuZHMuUmVjYWxjQ29vcmRzKHNp emUsIGNlbnRyZSwgc2NhbGUpCisrZGlmZiAtLWdpdCBhL3d4L2xpYi9hbmFsb2djbG9jay9oZWxw ZXJzLnB5IGIvd3gvbGliL2FuYWxvZ2Nsb2NrL2hlbHBlcnMucHkKKytpbmRleCA4OGQxOThiZWUu Ljk2NzRkZTkxMiAxMDA2NDQKKystLS0gYS93eC9saWIvYW5hbG9nY2xvY2svaGVscGVycy5weQor KysrKyBiL3d4L2xpYi9hbmFsb2djbG9jay9oZWxwZXJzLnB5CisrQEAgLTM3LDcgKzM3LDcgQEAg ZGVmIF9faW5pdF9fKHNlbGYsIGlkeD0wLCBwb3M9Tm9uZSwgc2l6ZT1Ob25lLCBvZmZzZXQ9MCwg Y2xvY2tzaXplPU5vbmUsCisrIAorKyAKKysgICAgIGRlZiBfcG9sMnJlY3Qoc2VsZiwgbSwgdCk6 CisrLSAgICAgICAgcmV0dXJuIG0gKiBtYXRoLmNvcyhtYXRoLnJhZGlhbnModCkpLCBtICogbWF0 aC5zaW4obWF0aC5yYWRpYW5zKHQpKQorKysgICAgICAgIHJldHVybiBpbnQobSAqIG1hdGguY29z KG1hdGgucmFkaWFucyh0KSkpLCBpbnQobSAqIG1hdGguc2luKG1hdGgucmFkaWFucyh0KSkpCisr IAorKyAKKysgICAgIGRlZiBfcmVjdDJwb2woc2VsZiwgeCwgeSk6CisrQEAgLTE3NCw3ICsxNzQs NyBAQCBkZWYgX19pbml0X18oc2VsZiwgKiprd2FyZ3MpOgorKyAKKysgICAgIGRlZiBEcmF3KHNl bGYsIGRjKToKKysgICAgICAgICBzZWxmLmR5ZXIuU2VsZWN0KGRjKQorKy0gICAgICAgIGRjLkRy YXdDaXJjbGUoc2VsZi5wb3MueCwgc2VsZi5wb3MueSwgc2VsZi5yYWRpdXMpCisrKyAgICAgICAg ZGMuRHJhd0NpcmNsZShzZWxmLnBvcy54LCBzZWxmLnBvcy55LCBpbnQoc2VsZi5yYWRpdXMpKQor KyAKKysgCisrICAgICBkZWYgUmVjYWxjQ29vcmRzKHNlbGYsIGNsb2Nrc2l6ZSwgY2VudHJlLCBz Y2FsZSk6CisrQEAgLTIwNSw3ICsyMDUsNyBAQCBkZWYgRHJhdyhzZWxmLCBkYywgZW5kLCBvZmZz ZXQ9MCk6CisrICAgICAgICAgICAgIG0sIHQgPSBzZWxmLl9yZWN0MnBvbCh4LCB5KQorKyAgICAg ICAgICAgICBwb2x5Z29uW2ldID0gc2VsZi5fcG9sMnJlY3QobSwgdCAtIGFuZ2xlKQorKyAKKyst ICAgICAgICBkYy5EcmF3UG9seWdvbihwb2x5Z29uLCBjZW50cmUueCArIG9mZnNldCwgY2VudHJl LnkgKyBvZmZzZXQpCisrKyAgICAgICAgZGMuRHJhd1BvbHlnb24ocG9seWdvbiwgaW50KGNlbnRy ZS54ICsgb2Zmc2V0KSwgaW50KGNlbnRyZS55ICsgb2Zmc2V0KSkKKysgCisrIAorKyAgICAgZGVm IFJlY2FsY0Nvb3JkcyhzZWxmLCBjbG9ja3NpemUsIGNlbnRyZSwgc2NhbGUpOgorK0BAIC0yMjYs NyArMjI2LDcgQEAgZGVmIERyYXcoc2VsZiwgZGMsIG9mZnNldD0wKToKKysgICAgICAgICB4ID0g c2VsZi5wb3MueCAtIHdpZHRoIC8gMi4KKysgICAgICAgICB5ID0gc2VsZi5wb3MueSAtIGhlaWdo dCAvIDIuCisrIAorKy0gICAgICAgIGRjLkRyYXdSZWN0YW5nbGUoeCArIG9mZnNldCwgeSArIG9m ZnNldCwgd2lkdGgsIGhlaWdodCkKKysrICAgICAgICBkYy5EcmF3UmVjdGFuZ2xlKGludCh4ICsg b2Zmc2V0KSwgaW50KHkgKyBvZmZzZXQpLCBpbnQod2lkdGgpLCBpbnQoaGVpZ2h0KSkKKysgCisr ICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisrIAorK0BAIC0yNDIsNyArMjQyLDcgQEAgZGVmIERyYXcoc2VsZiwg ZGMsIG9mZnNldD0wKToKKysgICAgICAgICB4ID0gc2VsZi5wb3MueAorKyAgICAgICAgIHkgPSBz ZWxmLnBvcy55CisrIAorKy0gICAgICAgIGRjLkRyYXdDaXJjbGUoeCArIG9mZnNldCwgeSArIG9m ZnNldCwgcmFkaXVzKQorKysgICAgICAgIGRjLkRyYXdDaXJjbGUoaW50KHggKyBvZmZzZXQpLCBp bnQoeSArIG9mZnNldCksIGludChyYWRpdXMpKQorKyAKKysgIy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysgCisr QEAgLTI3Myw3ICsyNzMsNyBAQCBkZWYgRHJhd1N0cmFpZ2h0KHNlbGYsIGRjLCBvZmZzZXQ9MCk6 CisrICAgICAgICAgeCA9IHNlbGYucG9zLnggLSB3aWR0aCAvIDIuCisrICAgICAgICAgeSA9IHNl bGYucG9zLnkgLSBoZWlnaHQgLyAyLgorKyAKKystICAgICAgICBkYy5EcmF3UG9seWdvbihwb2x5 Z29uLCB4ICsgb2Zmc2V0LCB5ICsgb2Zmc2V0KQorKysgICAgICAgIGRjLkRyYXdQb2x5Z29uKHBv bHlnb24sIGludCh4ICsgb2Zmc2V0KSwgaW50KHkgKyBvZmZzZXQpKQorKyAKKysgCisrICAgICBk ZWYgRHJhd1JvdGF0ZWQoc2VsZiwgZGMsIG9mZnNldD0wKToKKytAQCAtMjkwLDcgKzI5MCw3IEBA IGRlZiBEcmF3Um90YXRlZChzZWxmLCBkYywgb2Zmc2V0PTApOgorKyAgICAgICAgIHggPSBzZWxm LnBvcy54IC0gbWF0aC5jb3MocikgKiB3aWR0aCAvIDIuIC0gbWF0aC5zaW4ocikgKiBoZWlnaHQg LyAyLgorKyAgICAgICAgIHkgPSBzZWxmLnBvcy55IC0gbWF0aC5jb3MocikgKiBoZWlnaHQgLyAy LiArIG1hdGguc2luKHIpICogd2lkdGggLyAyLgorKyAKKystICAgICAgICBkYy5EcmF3UG9seWdv bihwb2x5Z29uLCB4ICsgb2Zmc2V0LCB5ICsgb2Zmc2V0KQorKysgICAgICAgIGRjLkRyYXdQb2x5 Z29uKHBvbHlnb24sIGludCh4ICsgb2Zmc2V0KSwgaW50KHkgKyBvZmZzZXQpKQorKyAKKysgIy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKysgCisrQEAgLTMwOSw3ICszMDksNyBAQCBkZWYgRHJhd1N0cmFpZ2h0KHNl bGYsIGRjLCBvZmZzZXQ9MCk6CisrICAgICAgICAgeCA9IHNlbGYucG9zLnggLSB3aWR0aCAvIDIu CisrICAgICAgICAgeSA9IHNlbGYucG9zLnkgLSBoZWlnaHQgLyAyLgorKyAKKystICAgICAgICBk Yy5EcmF3VGV4dChzZWxmLnRleHQsIHggKyBvZmZzZXQsIHkgKyBvZmZzZXQpCisrKyAgICAgICAg ZGMuRHJhd1RleHQoc2VsZi50ZXh0LCBpbnQoeCArIG9mZnNldCksIGludCh5ICsgb2Zmc2V0KSkK KysgCisrIAorKyAgICAgZGVmIERyYXdSb3RhdGVkKHNlbGYsIGRjLCBvZmZzZXQ9MCk6CisrQEAg LTMyMSw3ICszMjEsNyBAQCBkZWYgRHJhd1JvdGF0ZWQoc2VsZiwgZGMsIG9mZnNldD0wKToKKysg ICAgICAgICB4ID0gc2VsZi5wb3MueCAtIG1hdGguY29zKHIpICogd2lkdGggLyAyLiAtIG1hdGgu c2luKHIpICogaGVpZ2h0IC8gMi4KKysgICAgICAgICB5ID0gc2VsZi5wb3MueSAtIG1hdGguY29z KHIpICogaGVpZ2h0IC8gMi4gKyBtYXRoLnNpbihyKSAqIHdpZHRoIC8gMi4KKysgCisrLSAgICAg ICAgZGMuRHJhd1JvdGF0ZWRUZXh0KHNlbGYudGV4dCwgeCArIG9mZnNldCwgeSArIG9mZnNldCwg YW5nbGUpCisrKyAgICAgICAgZGMuRHJhd1JvdGF0ZWRUZXh0KHNlbGYudGV4dCwgaW50KHggKyBv ZmZzZXQpLCBpbnQoeSArIG9mZnNldCksIGludChhbmdsZSkpCisrIAorKyAKKysgIy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKytAQCAtNjU2LDcgKzY1Niw3IEBAIGRlZiBSZWNhbGNDb29yZHMoc2VsZiwgY2xvY2tz aXplLCBjZW50cmUsIHNjYWxlKToKKysgCisrICAgICAgICAgIyBUcnkgdG8gZmluZCBhICdnb29k JyBtYXggc2l6ZSBmb3IgdGV4dC1iYXNlZCB0aWNrcy4KKysgICAgICAgICBpZiBhX3RpY2sudGV4 dCBpcyBub3QgTm9uZToKKystICAgICAgICAgICAgc2VsZi5mb250LlNldFBvaW50U2l6ZShzaXpl KQorKysgICAgICAgICAgICBzZWxmLmZvbnQuU2V0UG9pbnRTaXplKGludChzaXplKSkKKysgICAg ICAgICAgICAgZGMgPSB3eC5NZW1vcnlEQygpCisrICAgICAgICAgICAgIGRjLlNlbGVjdE9iamVj dCh3eC5CaXRtYXAoKmNsb2Nrc2l6ZS5HZXQoKSkpCisrICAgICAgICAgICAgIGRjLlNldEZvbnQo c2VsZi5mb250KQorK0BAIC02ODYsNyArNjg2LDcgQEAgZGVmIFJlY2FsY0Nvb3JkcyhzZWxmLCBj bG9ja3NpemUsIGNlbnRyZSwgc2NhbGUpOgorKyAgICAgICAgICAgICB4ID0gY2VudHJlLnggKyBy YWRpdXMgKiBtYXRoLnNpbihhbmdsZSkKKysgICAgICAgICAgICAgeSA9IGNlbnRyZS55ICsgcmFk aXVzICogbWF0aC5jb3MoYW5nbGUpCisrIAorKy0gICAgICAgICAgICB0aWNrLlNldFBvc2l0aW9u KHd4LlBvaW50KHgsIHkpKQorKysgICAgICAgICAgICB0aWNrLlNldFBvc2l0aW9uKHd4LlBvaW50 KGludCh4KSwgaW50KHkpKSkKKysgCisrIAorKyAgICAgZGVmIEdldFNpemUoc2VsZik6CisrZGlm ZiAtLWdpdCBhL3d4L2xpYi9hbmFsb2djbG9jay9zZXR1cC5weSBiL3d4L2xpYi9hbmFsb2djbG9j ay9zZXR1cC5weQorK2luZGV4IGE4M2M4NjM5ZC4uYTdkZmZiOTAxIDEwMDY0NAorKy0tLSBhL3d4 L2xpYi9hbmFsb2djbG9jay9zZXR1cC5weQorKysrKyBiL3d4L2xpYi9hbmFsb2djbG9jay9zZXR1 cC5weQorK0BAIC0xNzksNyArMTc5LDcgQEAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCwgdGl0 bGUsIGdyb3VwPSJIYW5kcyIpOgorKyAgICAgICAgIHAuU2V0Q3VzdG9tQ29sb3VycyhzZWxmLmN1 c3RvbWNvbG91cnMpCisrICAgICAgICAgc2l6ZXIuQWRkKHAsIHBvcz0oMCwgMSksIGZsYWc9d3gu QUxJR05fQ0VOVFJFX1ZFUlRJQ0FMKQorKyAKKystICAgICAgICBwID0gc2VsZi5idyA9IHd4LlNw aW5DdHJsKHNlbGYsIHNpemU9KDc1LCAyMSksCisrKyAgICAgICAgcCA9IHNlbGYuYncgPSB3eC5T cGluQ3RybChzZWxmLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluPTAs IG1heD0xMDAsIHZhbHVlPSI3NSIpCisrICAgICAgICAgc2l6ZXIuQWRkKHAsIHBvcz0oMCwgMiks IHNwYW49KDEsIDIpLCBmbGFnPXd4LkFMSUdOX0NFTlRSRV9WRVJUSUNBTCkKKysgCisrQEAgLTE5 Myw3ICsxOTMsNyBAQCBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50LCB0aXRsZSwgZ3JvdXA9Ikhh bmRzIik6CisrICAgICAgICAgcCA9IHNlbGYubHMgPSB3eC5TdGF0aWNUZXh0KHNlbGYsIGxhYmVs PSJTaXplOiIpCisrICAgICAgICAgc2l6ZXIuQWRkKHAsIHBvcz0oMiwgMCksIGZsYWc9d3guQUxJ R05fQ0VOVFJFX1ZFUlRJQ0FMKQorKyAKKystICAgICAgICBwID0gc2VsZi5zeiA9IHd4LlNwaW5D dHJsKHNlbGYsIHNpemU9KDc1LCAyMSksCisrKyAgICAgICAgcCA9IHNlbGYuc3ogPSB3eC5TcGlu Q3RybChzZWxmLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluPTAsIG1h eD0xMDAsIHZhbHVlPSI3NSIpCisrICAgICAgICAgc2l6ZXIuQWRkKHAsIHBvcz0oMiwgMSksIHNw YW49KDEsIDMpLCBmbGFnPXd4LkFMSUdOX0NFTlRSRV9WRVJUSUNBTCkKKysgCisrQEAgLTIxMiw3 ICsyMTIsNyBAQCBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50LCB0aXRsZSwgZ3JvdXA9IlRpY2tz Iik6CisrICAgICAgICAgcCA9IHd4LlN0YXRpY1RleHQoc2VsZiwgbGFiZWw9Ik9mZnNldDoiKQor KyAgICAgICAgIHNpemVyLkFkZChwLCBwb3M9KDMsIDApLCBmbGFnPXd4LkFMSUdOX0NFTlRSRV9W RVJUSUNBTCkKKysgCisrLSAgICAgICAgcCA9IHNlbGYub2YgPSB3eC5TcGluQ3RybChzZWxmLCBz aXplPSg3NSwgMjEpLAorKysgICAgICAgIHAgPSBzZWxmLm9mID0gd3guU3BpbkN0cmwoc2VsZiwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbj0wLCBtYXg9MTAwLCB2YWx1 ZT0iNzUiKQorKyAgICAgICAgIHNpemVyLkFkZChwLCBwb3M9KDMsIDEpLCBzcGFuPSgxLCAzKSwg ZmxhZz13eC5BTElHTl9DRU5UUkVfVkVSVElDQUwpCisrIAorK2RpZmYgLS1naXQgYS93eC9saWIv YnV0dG9ucy5weSBiL3d4L2xpYi9idXR0b25zLnB5CisraW5kZXggNDZkMWI4NzQ3Li5mMDFhNTRk NDEgMTAwNjQ0CisrLS0tIGEvd3gvbGliL2J1dHRvbnMucHkKKysrKysgYi93eC9saWIvYnV0dG9u cy5weQorK0BAIC00NTMsNyArNDUzLDcgQEAgZGVmIERyYXdMYWJlbChzZWxmLCBkYywgd2lkdGgs IGhlaWdodCwgZHg9MCwgZHk9MCk6CisrICAgICAgICAgdHcsIHRoID0gZGMuR2V0VGV4dEV4dGVu dChsYWJlbCkKKysgICAgICAgICBpZiBub3Qgc2VsZi51cDoKKysgICAgICAgICAgICAgZHggPSBk eSA9IHNlbGYubGFiZWxEZWx0YQorKy0gICAgICAgIGRjLkRyYXdUZXh0KGxhYmVsLCAod2lkdGgt dHcpLzIrZHgsIChoZWlnaHQtdGgpLzIrZHkpCisrKyAgICAgICAgZGMuRHJhd1RleHQobGFiZWws ICh3aWR0aC10dykvLzIrZHgsIChoZWlnaHQtdGgpLy8yK2R5KQorKyAKKysgCisrICAgICBkZWYg RHJhd0ZvY3VzSW5kaWNhdG9yKHNlbGYsIGRjLCB3LCBoKToKKytAQCAtODQ0LDcgKzg0NCw3IEBA IGRlZiBEcmF3TGFiZWwoc2VsZiwgZGMsIHdpZHRoLCBoZWlnaHQsIGR4PTAsIGR5PTApOgorKyAg ICAgICAgIGlmIG5vdCBzZWxmLnVwOgorKyAgICAgICAgICAgICBkeCA9IGR5ID0gc2VsZi5sYWJl bERlbHRhCisrICAgICAgICAgaGFzTWFzayA9IGJtcC5HZXRNYXNrKCkgIT0gTm9uZQorKy0gICAg ICAgIGRjLkRyYXdCaXRtYXAoYm1wLCAod2lkdGgtYncpLzIrZHgsIChoZWlnaHQtYmgpLzIrZHks IGhhc01hc2spCisrKyAgICAgICAgZGMuRHJhd0JpdG1hcChibXAsICh3aWR0aC1idykvLzIrZHgs IChoZWlnaHQtYmgpLy8yK2R5LCBoYXNNYXNrKQorKyAKKysgCisrICMtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisr QEAgLTkyNiwxMiArOTI2LDEyIEBAIGRlZiBEcmF3TGFiZWwoc2VsZiwgZGMsIHdpZHRoLCBoZWln aHQsIGR4PTAsIGR5PTApOgorKyAgICAgICAgIGlmIG5vdCBzZWxmLnVwOgorKyAgICAgICAgICAg ICBkeCA9IGR5ID0gc2VsZi5sYWJlbERlbHRhCisrIAorKy0gICAgICAgIHBvc194ID0gKHdpZHRo LWJ3LXR3KS8yK2R4ICAgICAgIyBhZGp1c3QgZm9yIGJpdG1hcCBhbmQgdGV4dCB0byBjZW50cmUK KysrICAgICAgICBwb3NfeCA9ICh3aWR0aC1idy10dykvLzIrZHggICAgICAjIGFkanVzdCBmb3Ig Yml0bWFwIGFuZCB0ZXh0IHRvIGNlbnRyZQorKyAgICAgICAgIGlmIGJtcCBpcyBub3QgTm9uZToK KystICAgICAgICAgICAgZGMuRHJhd0JpdG1hcChibXAsIHBvc194LCAoaGVpZ2h0LWJoKS8yK2R5 LCBoYXNNYXNrKSAjIGRyYXcgYml0bWFwIGlmIGF2YWlsYWJsZQorKysgICAgICAgICAgICBkYy5E cmF3Qml0bWFwKGJtcCwgcG9zX3gsIChoZWlnaHQtYmgpLy8yK2R5LCBoYXNNYXNrKSAjIGRyYXcg Yml0bWFwIGlmIGF2YWlsYWJsZQorKyAgICAgICAgICAgICBwb3NfeCA9IHBvc194ICsgMiAgICMg ZXh0cmEgc3BhY2luZyBmcm9tIGJpdG1hcAorKyAKKystICAgICAgICBkYy5EcmF3VGV4dChsYWJl bCwgcG9zX3ggKyBkeCtidywgKGhlaWdodC10aCkvMitkeSkgICAgICAjIGRyYXcgdGhlIHRleHQK KysrICAgICAgICBkYy5EcmF3VGV4dChsYWJlbCwgcG9zX3ggKyBkeCtidywgKGhlaWdodC10aCkv LzIrZHkpICAgICAgIyBkcmF3IHRoZSB0ZXh0CisrIAorKyAKKysgIy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKytk aWZmIC0tZ2l0IGEvd3gvbGliL2NvbG91cmNob29zZXIvcHljb2xvdXJjaG9vc2VyLnB5IGIvd3gv bGliL2NvbG91cmNob29zZXIvcHljb2xvdXJjaG9vc2VyLnB5CisraW5kZXggNjFkYmMwMmQyLi4x MjQzNzY0ODMgMTAwNjQ0CisrLS0tIGEvd3gvbGliL2NvbG91cmNob29zZXIvcHljb2xvdXJjaG9v c2VyLnB5CisrKysrIGIvd3gvbGliL2NvbG91cmNob29zZXIvcHljb2xvdXJjaG9vc2VyLnB5Cisr QEAgLTE4OCw3ICsxODgsNyBAQCBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50LCBpZCk6CisrICAg ICAgICAgc2VsZi5jb2xvdXJfc2xpZGVyLkJpbmQod3guRVZUX01PVElPTiwgc2VsZi5vblNsaWRl ck1vdGlvbikKKysgICAgICAgICBzZWxmLnNsaWRlciA9IHd4LlNsaWRlcigKKysgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZiwgc2VsZi5pZFNDUk9MTCwgODYsIDAsIHNlbGYuY29sb3VyX3Ns aWRlci5IRUlHSFQgLSAxLAorKy0gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT13eC5TTF9W RVJUSUNBTCwgc2l6ZT0oMTUsIHNlbGYuY29sb3VyX3NsaWRlci5IRUlHSFQpCisrKyAgICAgICAg ICAgICAgICAgICAgICAgIHN0eWxlPXd4LlNMX1ZFUlRJQ0FMLCBzaXplPSgtMSwgc2VsZi5jb2xv dXJfc2xpZGVyLkhFSUdIVCkKKysgICAgICAgICAgICAgICAgICAgICAgICAgKQorKyAKKysgICAg ICAgICBzZWxmLkJpbmQod3guRVZUX0NPTU1BTkRfU0NST0xMLCBzZWxmLm9uU2Nyb2xsLCBzZWxm LnNsaWRlcikKKytAQCAtMzM4LDcgKzMzOCw3IEBAIGRlZiBzZXRTbGlkZXJUb1Yoc2VsZiwgdik6 CisrICAgICAgICAgbWluID0gc2VsZi5zbGlkZXIuR2V0TWluKCkKKysgICAgICAgICBtYXggPSBz ZWxmLnNsaWRlci5HZXRNYXgoKQorKyAgICAgICAgIHZhbCA9ICgxIC0gdikgKiBtYXgKKystICAg ICAgICBzZWxmLnNsaWRlci5TZXRWYWx1ZSh2YWwpCisrKyAgICAgICAgc2VsZi5zbGlkZXIuU2V0 VmFsdWUoaW50KHZhbCkpCisrIAorKyAgICAgZGVmIGdldFZGcm9tU2xpZGVyKHNlbGYpOgorKyAg ICAgICAgICIiIkdldCB0aGUgY3VycmVudCB2YWx1ZSBvZiAiViIgZnJvbSB0aGUgdiBzbGlkZXIu IiIiCisrZGlmZiAtLWdpdCBhL3d4L2xpYi9jb2xvdXJjaG9vc2VyL3B5cGFsZXR0ZS5weSBiL3d4 L2xpYi9jb2xvdXJjaG9vc2VyL3B5cGFsZXR0ZS5weQorK2luZGV4IGZmMWZiODQwYy4uNzFiOWZj MmRmIDEwMDY0NAorKy0tLSBhL3d4L2xpYi9jb2xvdXJjaG9vc2VyL3B5cGFsZXR0ZS5weQorKysr KyBiL3d4L2xpYi9jb2xvdXJjaG9vc2VyL3B5cGFsZXR0ZS5weQorK0BAIC0xNjUsNyArMTY1LDcg QEAgZGVmIERyYXdCdWZmZXIoc2VsZik6CisrICAgICAgICAgICAgIGNvbG91ciA9IHd4LkNvbG91 cigwLCAwLCAwKQorKyAgICAgICAgICAgICBzZWxmLmJ1ZmZlci5TZXRQZW4od3guUGVuKGNvbG91 ciwgMSwgd3guUEVOU1RZTEVfU09MSUQpKQorKyAgICAgICAgICAgICBzZWxmLmJ1ZmZlci5TZXRC cnVzaCh3eC5CcnVzaChjb2xvdXIsIHd4LkJSVVNIU1RZTEVfVFJBTlNQQVJFTlQpKQorKy0gICAg ICAgICAgICBzZWxmLmJ1ZmZlci5EcmF3Q2lyY2xlKHNlbGYucG9pbnRbMF0sIHNlbGYucG9pbnRb MV0sIDMpCisrKyAgICAgICAgICAgIHNlbGYuYnVmZmVyLkRyYXdDaXJjbGUoaW50KHNlbGYucG9p bnRbMF0pLCBpbnQoc2VsZi5wb2ludFsxXSksIDMpCisrIAorKyAgICAgZGVmIEhpZ2hsaWdodFBv aW50KHNlbGYsIHgsIHkpOgorKyAgICAgICAgICIiIkhpZ2hsaWdodHMgYW4gYXJlYSBvZiB0aGUg cGFsZXR0ZSB3aXRoIGEgbGl0dGxlIGNpcmNsZSBhcm91bmQKKytkaWZmIC0tZ2l0IGEvd3gvbGli L2Zsb2F0Y2FudmFzL0ZDT2JqZWN0cy5weSBiL3d4L2xpYi9mbG9hdGNhbnZhcy9GQ09iamVjdHMu cHkKKytpbmRleCA1OGJlY2QzOGMuLmNkZjhjYzUzZSAxMDA2NDQKKystLS0gYS93eC9saWIvZmxv YXRjYW52YXMvRkNPYmplY3RzLnB5CisrKysrIGIvd3gvbGliL2Zsb2F0Y2FudmFzL0ZDT2JqZWN0 cy5weQorK0BAIC0yOTYsNyArMjk2LDcgQEAgZGVmIFNldFBlbihzZWxmLCBMaW5lQ29sb3IsIExp bmVTdHlsZSwgTGluZVdpZHRoKToKKysgICAgICAgICBlbHNlOgorKyAgICAgICAgICAgICBzZWxm LlBlbiA9IHNlbGYuUGVuTGlzdC5zZXRkZWZhdWx0KAorKyAgICAgICAgICAgICAgICAgKExpbmVD b2xvciwgTGluZVN0eWxlLCBMaW5lV2lkdGgpLAorKy0gICAgICAgICAgICAgICAgd3guUGVuKExp bmVDb2xvciwgTGluZVdpZHRoLCBzZWxmLkxpbmVTdHlsZUxpc3RbTGluZVN0eWxlXSkpCisrKyAg ICAgICAgICAgICAgICB3eC5QZW4oTGluZUNvbG9yLCBpbnQoTGluZVdpZHRoKSwgc2VsZi5MaW5l U3R5bGVMaXN0W0xpbmVTdHlsZV0pKQorKyAKKysgICAgIGRlZiBTZXRIaXRCcnVzaChzZWxmLCBI aXRDb2xvcik6CisrICAgICAgICAgIiIiCisrQEAgLTEyMDIsMTQgKzEyMDIsMTQgQEAgZGVmIF9E cmF3KHNlbGYsIGRjICwgV29ybGRUb1BpeGVsLCBTY2FsZVdvcmxkVG9QaXhlbCwgSFRkYz1Ob25l KToKKysgICAgICAgICAgICAgeCA9IHhjIC0gU2l6ZS8yLjAKKysgICAgICAgICAgICAgeSA9IHlj IC0gU2l6ZS8yLjAKKysgICAgICAgICAgICAgZGMuU2V0QnJ1c2goc2VsZi5CcnVzaCkKKystICAg ICAgICAgICAgZGMuRHJhd1JlY3RhbmdsZSh4LCB5LCBTaXplLCBTaXplKQorKysgICAgICAgICAg ICBkYy5EcmF3UmVjdGFuZ2xlKGludCh4KSwgaW50KHkpLCBTaXplLCBTaXplKQorKyAgICAgICAg IGlmIEhUZGMgYW5kIHNlbGYuSGl0QWJsZToKKysgICAgICAgICAgICAgSFRkYy5TZXRQZW4oc2Vs Zi5IaXRQZW4pCisrICAgICAgICAgICAgIGlmIHNlbGYuU2l6ZSA8PSAxOgorKyAgICAgICAgICAg ICAgICAgSFRkYy5EcmF3UG9pbnQoeGMsIHhjKQorKyAgICAgICAgICAgICBlbHNlOgorKyAgICAg ICAgICAgICAgICAgSFRkYy5TZXRCcnVzaChzZWxmLkhpdEJydXNoKQorKy0gICAgICAgICAgICAg ICAgSFRkYy5EcmF3UmVjdGFuZ2xlKHgsIHksIFNpemUsIFNpemUpCisrKyAgICAgICAgICAgICAg ICBIVGRjLkRyYXdSZWN0YW5nbGUoaW50KHgpLCBpbnQoeSksIFNpemUsIFNpemUpCisrIAorKyBj bGFzcyBSZWN0RWxsaXBzZShYWU9iamVjdE1peGluLCBMaW5lQW5kRmlsbE1peGluLCBEcmF3T2Jq ZWN0KToKKysgICAgICIiIkEgUmVjdEVsbGlwc2UgZHJhdyBvYmplY3QuIiIiCisrQEAgLTIxNjEs NyArMjE2MSw3IEBAIGRlZiBfRHJhdyhzZWxmLCBkYyAsIFdvcmxkVG9QaXhlbCwgU2NhbGVXb3Js ZFRvUGl4ZWwsIEhUZGM9Tm9uZSk6CisrICAgICAgICAgVyA9IEggKiAoc2VsZi5ibXBXaWR0aCAv IHNlbGYuYm1wSGVpZ2h0KQorKyAgICAgICAgIGlmIChzZWxmLlNjYWxlZEJpdG1hcCBpcyBOb25l KSBvciAoSCAhPSBzZWxmLlNjYWxlZEhlaWdodCkgOgorKyAgICAgICAgICAgICBzZWxmLlNjYWxl ZEhlaWdodCA9IEgKKystICAgICAgICAgICAgSW1nID0gc2VsZi5JbWFnZS5TY2FsZShXLCBIKQor KysgICAgICAgICAgICBJbWcgPSBzZWxmLkltYWdlLlNjYWxlKGludChXKSwgaW50KEgpKQorKyAg ICAgICAgICAgICBzZWxmLlNjYWxlZEJpdG1hcCA9IHd4LkJpdG1hcChJbWcpCisrIAorKyAgICAg ICAgIFhZID0gc2VsZi5TaGlmdEZ1bihYWVswXSwgWFlbMV0sIFcsIEgpCisrZGlmZiAtLWdpdCBh L3d4L2xpYi9naXptb3MvbGVkY3RybC5weSBiL3d4L2xpYi9naXptb3MvbGVkY3RybC5weQorK2lu ZGV4IGYxODVkNTEwNS4uN2Y0ZDNmY2Y5IDEwMDY0NAorKy0tLSBhL3d4L2xpYi9naXptb3MvbGVk Y3RybC5weQorKysrKyBiL3d4L2xpYi9naXptb3MvbGVkY3RybC5weQorK0BAIC0yOTMsNyArMjkz LDcgQEAgZGVmIF9kcmF3RGlnaXQoc2VsZiwgZGMsIGRpZ2l0LCBjb2x1bW4pOgorKyAKKysgICAg ICAgICBpZiBkaWdpdCAmIGMuQ09MT046CisrICAgICAgICAgICAgIGRjLlNldEJydXNoKHd4LkJy dXNoKGxpbmVDb2xvcikpCisrLSAgICAgICAgICAgIGNlbnRlclggPSBYUG9zICsgKHNlbGYubV9s aW5lTGVuZ3RoICsgc2VsZi5tX2RpZ2l0TWFyZ2luKSAvIDIKKystICAgICAgICAgICAgcmFkaXVz ID0gc2VsZi5tX2xpbmVXaWR0aCAvIDIKKystICAgICAgICAgICAgZGMuRHJhd0NpcmNsZShjZW50 ZXJYLCAoc2VsZi5tX2xpbmVMZW5ndGggKyAoc2VsZi5tX2xpbmVNYXJnaW4gKiAzKSkgLyAyLCBy YWRpdXMpCisrLSAgICAgICAgICAgIGRjLkRyYXdDaXJjbGUoY2VudGVyWCwgKHNlbGYubV9saW5l TGVuZ3RoICogMiArIChzZWxmLm1fbGluZU1hcmdpbiAqIDUpKSAqIDMgLyA0LCByYWRpdXMpCisr KyAgICAgICAgICAgIGNlbnRlclggPSBYUG9zICsgKHNlbGYubV9saW5lTGVuZ3RoICsgc2VsZi5t X2RpZ2l0TWFyZ2luKSAvLyAyCisrKyAgICAgICAgICAgIHJhZGl1cyA9IHNlbGYubV9saW5lV2lk dGggLy8gMgorKysgICAgICAgICAgICBkYy5EcmF3Q2lyY2xlKGNlbnRlclgsIChzZWxmLm1fbGlu ZUxlbmd0aCArIChzZWxmLm1fbGluZU1hcmdpbiAqIDMpKSAvLyAyLCByYWRpdXMpCisrKyAgICAg ICAgICAgIGRjLkRyYXdDaXJjbGUoY2VudGVyWCwgKHNlbGYubV9saW5lTGVuZ3RoICogMiArIChz ZWxmLm1fbGluZU1hcmdpbiAqIDUpKSAqIDMgLy8gNCwgcmFkaXVzKQorK2RpZmYgLS1naXQgYS93 eC9saWIvaW1hZ2Vicm93c2VyLnB5IGIvd3gvbGliL2ltYWdlYnJvd3Nlci5weQorK2luZGV4IDc5 NWU5MGRjYS4uOGUxNDcyN2U3IDEwMDY0NAorKy0tLSBhL3d4L2xpYi9pbWFnZWJyb3dzZXIucHkK KysrKysgYi93eC9saWIvaW1hZ2Vicm93c2VyLnB5CisrQEAgLTM0Nyw4ICszNDcsOCBAQCBkZWYg RHJhd0ltYWdlKHNlbGYsIGRjKToKKysgICAgICAgICBvd2lkdGggPSBpbnQoc2NhbGUqaXdpZHRo KQorKyAgICAgICAgIG9oZWlnaHQgPSBpbnQoc2NhbGUqaWhlaWdodCkKKysgCisrLSAgICAgICAg ZGlmZnggPSAod3dpZHRoIC0gb3dpZHRoKS8yICAgIyBjZW50ZXIgY2FsYworKy0gICAgICAgIGRp ZmZ5ID0gKHdoZWlnaHQgLSBvaGVpZ2h0KS8yICAgIyBjZW50ZXIgY2FsYworKysgICAgICAgIGRp ZmZ4ID0gKHd3aWR0aCAtIG93aWR0aCkvLzIgICAjIGNlbnRlciBjYWxjCisrKyAgICAgICAgZGlm ZnkgPSAod2hlaWdodCAtIG9oZWlnaHQpLy8yICAgIyBjZW50ZXIgY2FsYworKyAKKysgICAgICAg ICBpZiBub3QgYm1wOgorKyAgICAgICAgICAgICBpZiBvd2lkdGghPWl3aWR0aCBvciBvaGVpZ2h0 IT1paGVpZ2h0OgorK2RpZmYgLS1naXQgYS93eC9saWIvb2dsL2Jhc2ljLnB5IGIvd3gvbGliL29n bC9iYXNpYy5weQorK2luZGV4IGIwODg1OWFiOS4uMDEwN2YyMWZjIDEwMDY0NAorKy0tLSBhL3d4 L2xpYi9vZ2wvYmFzaWMucHkKKysrKysgYi93eC9saWIvb2dsL2Jhc2ljLnB5CisrQEAgLTEwNTEs NyArMTA1MSw3IEBAIGRlZiBPbkVyYXNlQ29udGVudHMoc2VsZiwgZGMpOgorKyAgICAgICAgIGRj LlNldFBlbihzZWxmLkdldEJhY2tncm91bmRQZW4oKSkKKysgICAgICAgICBkYy5TZXRCcnVzaChz ZWxmLkdldEJhY2tncm91bmRCcnVzaCgpKQorKyAKKystICAgICAgICBkYy5EcmF3UmVjdGFuZ2xl KHRvcExlZnRYIC0gcGVuV2lkdGgsIHRvcExlZnRZIC0gcGVuV2lkdGgsIG1heFggKyBwZW5XaWR0 aCAqIDIgKyA0LCBtYXhZICsgcGVuV2lkdGggKiAyICsgNCkKKysrICAgICAgICBkYy5EcmF3UmVj dGFuZ2xlKGludCh0b3BMZWZ0WCAtIHBlbldpZHRoKSwgaW50KHRvcExlZnRZIC0gcGVuV2lkdGgp LCBpbnQobWF4WCArIHBlbldpZHRoICogMiArIDQpLCBpbnQobWF4WSArIHBlbldpZHRoICogMiAr IDQpKQorKyAKKysgICAgIGRlZiBFcmFzZUxpbmtzKHNlbGYsIGRjLCBhdHRhY2htZW50ID0gLTEs IHJlY3Vyc2UgPSBGYWxzZSk6CisrICAgICAgICAgIiIiCisrQEAgLTI3NjksOSArMjc2OSw5IEBA IGRlZiBPbkRyYXcoc2VsZiwgZGMpOgorKyAgICAgICAgICAgICBkYy5TZXRCcnVzaChzZWxmLl9i cnVzaCkKKysgCisrICAgICAgICAgaWYgc2VsZi5fY29ybmVyUmFkaXVzOgorKy0gICAgICAgICAg ICBkYy5EcmF3Um91bmRlZFJlY3RhbmdsZSh4MSwgeTEsIHNlbGYuX3dpZHRoLCBzZWxmLl9oZWln aHQsIHNlbGYuX2Nvcm5lclJhZGl1cykKKysrICAgICAgICAgICAgZGMuRHJhd1JvdW5kZWRSZWN0 YW5nbGUoaW50KHgxKSwgaW50KHkxKSwgc2VsZi5fd2lkdGgsIHNlbGYuX2hlaWdodCwgc2VsZi5f Y29ybmVyUmFkaXVzKQorKyAgICAgICAgIGVsc2U6CisrLSAgICAgICAgICAgIGRjLkRyYXdSZWN0 YW5nbGUoeDEsIHkxLCBzZWxmLl93aWR0aCwgc2VsZi5faGVpZ2h0KQorKysgICAgICAgICAgICBk Yy5EcmF3UmVjdGFuZ2xlKGludCh4MSksIGludCh5MSksIHNlbGYuX3dpZHRoLCBzZWxmLl9oZWln aHQpCisrIAorKyAgICAgZGVmIEdldEJvdW5kaW5nQm94TWluKHNlbGYpOgorKyAgICAgICAgICIi IkdldCB0aGUgYm91bmRpbmcgYm94IG1pbmltdW0uIiIiCisrQEAgLTI4ODIsNyArMjg4Miw3IEBA IGRlZiBDcmVhdGUoc2VsZiwgdGhlX3BvaW50cyA9IE5vbmUpOgorKyAgICAgICAgICAgICAjIER1 cGxpY2F0ZSB0aGUgbGlzdCBvZiBwb2ludHMKKysgICAgICAgICAgICAgc2VsZi5fcG9pbnRzID0g W10KKysgICAgICAgICAgICAgZm9yIHBvaW50IGluIHRoZV9wb2ludHM6CisrLSAgICAgICAgICAg ICAgICBuZXdfcG9pbnQgPSB3eC5Qb2ludChwb2ludFswXSwgcG9pbnRbMV0pCisrKyAgICAgICAg ICAgICAgICBuZXdfcG9pbnQgPSB3eC5Qb2ludChpbnQocG9pbnRbMF0pLCBpbnQocG9pbnRbMV0p KQorKyAgICAgICAgICAgICAgICAgc2VsZi5fcG9pbnRzLmFwcGVuZChuZXdfcG9pbnQpCisrICAg ICAgICAgICAgIHNlbGYuQ2FsY3VsYXRlQm91bmRpbmdCb3goKQorKyAgICAgICAgICAgICBzZWxm Ll9vcmlnaW5hbFdpZHRoID0gc2VsZi5fYm91bmRXaWR0aAorK0BAIC0zNDQ0LDcgKzM0NDQsNyBA QCBkZWYgT25EcmF3KHNlbGYsIGRjKToKKysgICAgICAgICAgICAgICAgIGRjLlNldFBlbihzZWxm Ll9wZW4pCisrICAgICAgICAgaWYgc2VsZi5fYnJ1c2g6CisrICAgICAgICAgICAgIGRjLlNldEJy dXNoKHNlbGYuX2JydXNoKQorKy0gICAgICAgIGRjLkRyYXdFbGxpcHNlKHNlbGYuX3hwb3MgLSBz ZWxmLkdldFdpZHRoKCkgLyAyLjAsIHNlbGYuX3lwb3MgLSBzZWxmLkdldEhlaWdodCgpIC8gMi4w LCBzZWxmLkdldFdpZHRoKCksIHNlbGYuR2V0SGVpZ2h0KCkpCisrKyAgICAgICAgZGMuRHJhd0Vs bGlwc2UoaW50KHNlbGYuX3hwb3MgLSBzZWxmLkdldFdpZHRoKCkgLyAyLjApLCBpbnQoc2VsZi5f eXBvcyAtIHNlbGYuR2V0SGVpZ2h0KCkgLyAyLjApLCBzZWxmLkdldFdpZHRoKCksIHNlbGYuR2V0 SGVpZ2h0KCkpCisrIAorKyAgICAgZGVmIFNldFNpemUoc2VsZiwgeCwgeSwgcmVjdXJzaXZlID0g VHJ1ZSk6CisrICAgICAgICAgIiIiCisrZGlmZiAtLWdpdCBhL3d4L2xpYi9vZ2wvYm1wc2hhcGUu cHkgYi93eC9saWIvb2dsL2JtcHNoYXBlLnB5CisraW5kZXggZWUyODU5NTI3Li5lNTNkZGIxMzYg MTAwNjQ0CisrLS0tIGEvd3gvbGliL29nbC9ibXBzaGFwZS5weQorKysrKyBiL3d4L2xpYi9vZ2wv Ym1wc2hhcGUucHkKKytAQCAtMzIsNyArMzIsNyBAQCBkZWYgT25EcmF3KHNlbGYsIGRjKToKKysg CisrICAgICAgICAgeCA9IHNlbGYuX3hwb3MgLSBzZWxmLl9iaXRtYXAuR2V0V2lkdGgoKSAvIDIu MAorKyAgICAgICAgIHkgPSBzZWxmLl95cG9zIC0gc2VsZi5fYml0bWFwLkdldEhlaWdodCgpIC8g Mi4wCisrLSAgICAgICAgZGMuRHJhd0JpdG1hcChzZWxmLl9iaXRtYXAsIHgsIHksIFRydWUpCisr KyAgICAgICAgZGMuRHJhd0JpdG1hcChzZWxmLl9iaXRtYXAsIGludCh4KSwgaW50KHkpLCBUcnVl KQorKyAKKysgICAgIGRlZiBTZXRTaXplKHNlbGYsIHcsIGgsIHJlY3Vyc2l2ZSA9IFRydWUpOgor KyAgICAgICAgICIiIgorK2RpZmYgLS1naXQgYS93eC9saWIvb2dsL2NvbXBvc2l0LnB5IGIvd3gv bGliL29nbC9jb21wb3NpdC5weQorK2luZGV4IGMzYjYyMzk1Mi4uZWVjYWFmYjNmIDEwMDY0NAor Ky0tLSBhL3d4L2xpYi9vZ2wvY29tcG9zaXQucHkKKysrKysgYi93eC9saWIvb2dsL2NvbXBvc2l0 LnB5CisrQEAgLTExMzEsMTEgKzExMzEsMTEgQEAgZGVmIE9uRHJhdyhzZWxmLCBkYyk6CisrIAor KyAgICAgICAgIGlmIHNlbGYuX2xlZnRTaWRlOgorKyAgICAgICAgICAgICBkYy5TZXRQZW4oc2Vs Zi5fbGVmdFNpZGVQZW4pCisrLSAgICAgICAgICAgIGRjLkRyYXdMaW5lKHgxLCB5MiwgeDEsIHkx KQorKysgICAgICAgICAgICBkYy5EcmF3TGluZShpbnQoeDEpLCBpbnQoeTIpLCBpbnQoeDEpLCBp bnQoeTEpKQorKyAKKysgICAgICAgICBpZiBzZWxmLl90b3BTaWRlOgorKyAgICAgICAgICAgICBk Yy5TZXRQZW4oc2VsZi5fdG9wU2lkZVBlbikKKystICAgICAgICAgICAgZGMuRHJhd0xpbmUoeDEs IHkxLCB4MiwgeTEpCisrKyAgICAgICAgICAgIGRjLkRyYXdMaW5lKGludCh4MSksIGludCh5MSks IGludCh4MiksIGludCh5MSkpCisrIAorKyAgICAgICAgICMgRm9yIHRlc3RpbmcgcHVycG9zZXMs IGRyYXcgYSByZWN0YW5nbGUgc28gd2Uga25vdworKyAgICAgICAgICMgaG93IGJpZyB0aGUgZGl2 aXNpb24gaXMuCisrZGlmZiAtLWdpdCBhL3d4L2xpYi9vZ2wvZGl2aWRlZC5weSBiL3d4L2xpYi9v Z2wvZGl2aWRlZC5weQorK2luZGV4IDBiZmIxOTE5Zi4uMDgwOWJlNThjIDEwMDY0NAorKy0tLSBh L3d4L2xpYi9vZ2wvZGl2aWRlZC5weQorKysrKyBiL3d4L2xpYi9vZ2wvZGl2aWRlZC5weQorK0BA IC0yMzEsNyArMjMxLDcgQEAgZGVmIE9uRHJhd0NvbnRlbnRzKHNlbGYsIGRjKToKKysgICAgICAg ICAgICAgICAgIHJlZ2lvblBlbiA9IHJlZ2lvbi5HZXRBY3R1YWxQZW4oKQorKyAgICAgICAgICAg ICAgICAgaWYgcmVnaW9uUGVuOgorKyAgICAgICAgICAgICAgICAgICAgIGRjLlNldFBlbihyZWdp b25QZW4pCisrLSAgICAgICAgICAgICAgICAgICAgZGMuRHJhd0xpbmUobGVmdFgsIHksIHJpZ2h0 WCwgeSkKKysrICAgICAgICAgICAgICAgICAgICBkYy5EcmF3TGluZShpbnQobGVmdFgpLCBpbnQo eSksIGludChyaWdodFgpLCBpbnQoeSkpCisrIAorKyAgICAgICAgICAgICBjdXJyZW50WSA9IGFj dHVhbFkKKysgCisrZGlmZiAtLWdpdCBhL3d4L2xpYi9vZ2wvbGluZXMucHkgYi93eC9saWIvb2ds L2xpbmVzLnB5CisraW5kZXggOTQ4Yjg1ZDgyLi41MGMwN2UwNDYgMTAwNjQ0CisrLS0tIGEvd3gv bGliL29nbC9saW5lcy5weQorKysrKyBiL3d4L2xpYi9vZ2wvbGluZXMucHkKKytAQCAtMTIwMCw3 ICsxMjAwLDcgQEAgZGVmIE9uRHJhdyhzZWxmLCBkYyk6CisrIAorKyAgICAgICAgIHBvaW50cyA9 IFtdCisrICAgICAgICAgZm9yIHBvaW50IGluIHNlbGYuX2xpbmVDb250cm9sUG9pbnRzOgorKy0g ICAgICAgICAgICBwb2ludHMuYXBwZW5kKHd4LlBvaW50KHBvaW50WzBdLCBwb2ludFsxXSkpCisr KyAgICAgICAgICAgIHBvaW50cy5hcHBlbmQod3guUG9pbnQoaW50KHBvaW50WzBdKSwgaW50KHBv aW50WzFdKSkpCisrIAorKyAgICAgICAgIGlmIHNlbGYuX2lzU3BsaW5lOgorKyAgICAgICAgICAg ICBkYy5EcmF3U3BsaW5lKHBvaW50cykKKytkaWZmIC0tZ2l0IGEvd3gvbGliL29nbC9vZ2xtaXNj LnB5IGIvd3gvbGliL29nbC9vZ2xtaXNjLnB5CisraW5kZXggODU4OGE3MmI3Li5hOGJlM2ZjNTMg MTAwNjQ0CisrLS0tIGEvd3gvbGliL29nbC9vZ2xtaXNjLnB5CisrKysrIGIvd3gvbGliL29nbC9v Z2xtaXNjLnB5CisrQEAgLTMwMCwxMCArMzAwLDEwIEBAIGRlZiBEcmF3Rm9ybWF0dGVkVGV4dChk YywgdGV4dF9saXN0LCB4cG9zLCB5cG9zLCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXRNb2RlKToKKysg ICAgICAgICB5b2Zmc2V0ID0geXBvcyAtIGhlaWdodCAvIDIuMAorKyAKKysgICAgICMgKzEgdG8g YWxsb3cgZm9yIHJvdW5kaW5nIGVycm9ycworKy0gICAgZGMuU2V0Q2xpcHBpbmdSZWdpb24oeHBv cyAtIHdpZHRoIC8gMi4wLCB5cG9zIC0gaGVpZ2h0IC8gMi4wLCB3aWR0aCArIDEsIGhlaWdodCAr IDEpCisrKyAgICBkYy5TZXRDbGlwcGluZ1JlZ2lvbihpbnQoeHBvcyAtIHdpZHRoIC8gMi4wKSwg aW50KHlwb3MgLSBoZWlnaHQgLyAyLjApLCBpbnQod2lkdGggKyAxKSwgaW50KGhlaWdodCArIDEp KQorKyAKKysgICAgIGZvciBsaW5lIGluIHRleHRfbGlzdDoKKystICAgICAgICBkYy5EcmF3VGV4 dChsaW5lLkdldFRleHQoKSwgeG9mZnNldCArIGxpbmUuR2V0WCgpLCB5b2Zmc2V0ICsgbGluZS5H ZXRZKCkpCisrKyAgICAgICAgZGMuRHJhd1RleHQobGluZS5HZXRUZXh0KCksIGludCh4b2Zmc2V0 ICsgbGluZS5HZXRYKCkpLCBpbnQoeW9mZnNldCArIGxpbmUuR2V0WSgpKSkKKysgCisrICAgICBk Yy5EZXN0cm95Q2xpcHBpbmdSZWdpb24oKQorKyAKKytkaWZmIC0tZ2l0IGEvd3gvbGliL3Bsb3Qv ZXhhbXBsZXMvZGVtby5weSBiL3d4L2xpYi9wbG90L2V4YW1wbGVzL2RlbW8ucHkKKytpbmRleCA5 OGZiYWFkM2EuLjAyYmVjMWQ5ZiAxMDA2NDQKKystLS0gYS93eC9saWIvcGxvdC9leGFtcGxlcy9k ZW1vLnB5CisrKysrIGIvd3gvbGliL3Bsb3QvZXhhbXBsZXMvZGVtby5weQorK0BAIC05ODQsNyAr OTg0LDcgQEAgZGVmIERyYXdQb2ludExhYmVsKHNlbGYsIGRjLCBtRGF0YURpY3QpOgorKyAKKysg ICAgICAgICBzeCwgc3kgPSBtRGF0YURpY3RbInNjYWxlZFhZIl0gICMgc2NhbGVkIHgseSBvZiBj bG9zZXN0IHBvaW50CisrICAgICAgICAgIyAxMGJ5MTAgc3F1YXJlIGNlbnRlcmVkIG9uIHBvaW50 CisrLSAgICAgICAgZGMuRHJhd1JlY3RhbmdsZShzeCAtIDUsIHN5IC0gNSwgMTAsIDEwKQorKysg ICAgICAgIGRjLkRyYXdSZWN0YW5nbGUoaW50KHN4IC0gNSksIGludChzeSAtIDUpLCAxMCwgMTAp CisrICAgICAgICAgcHgsIHB5ID0gbURhdGFEaWN0WyJwb2ludFhZIl0KKysgICAgICAgICBjTnVt ID0gbURhdGFEaWN0WyJjdXJ2ZU51bSJdCisrICAgICAgICAgcG50SW4gPSBtRGF0YURpY3RbInBJ bmRleCJdCisrQEAgLTk5Miw3ICs5OTIsNyBAQCBkZWYgRHJhd1BvaW50TGFiZWwoc2VsZiwgZGMs IG1EYXRhRGljdCk6CisrICAgICAgICAgIyBtYWtlIGEgc3RyaW5nIHRvIGRpc3BsYXkKKysgICAg ICAgICBzID0gIkNydiMgJWksICclcycsIFB0LiAoJS4yZiwlLjJmKSwgUHRJbmQgJWkiICUgKAor KyAgICAgICAgICAgICBjTnVtLCBsZWdlbmQsIHB4LCBweSwgcG50SW4pCisrLSAgICAgICAgZGMu RHJhd1RleHQocywgc3gsIHN5ICsgMSkKKysrICAgICAgICBkYy5EcmF3VGV4dChzLCBpbnQoc3gp LCBpbnQoc3kgKyAxKSkKKysgCisrIAorKyBkZWYgcnVuX2RlbW8oKToKKytkaWZmIC0tZ2l0IGEv d3gvbGliL3Bsb3QvcGxvdGNhbnZhcy5weSBiL3d4L2xpYi9wbG90L3Bsb3RjYW52YXMucHkKKytp bmRleCBkZDNmNzdkNTIuLmFiZWU0N2VmYiAxMDA2NDQKKystLS0gYS93eC9saWIvcGxvdC9wbG90 Y2FudmFzLnB5CisrKysrIGIvd3gvbGliL3Bsb3QvcGxvdGNhbnZhcy5weQorK0BAIC0xNzQsMjQg KzE3NCwyNCBAQCBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50LCBpZD13eC5JRF9BTlksIHBvcz13 eC5EZWZhdWx0UG9zaXRpb24sCisrIAorKyAgICAgICAgICMgRGVmYXVsdCBQZW5zCisrICAgICAg ICAgc2VsZi5fZ3JpZFBlbiA9IHd4LlBlbih3eC5Db2xvdXIoMTgwLCAxODAsIDE4MCwgMjU1KSwK KystICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3BvaW50U2l6ZVswXSwKKysr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludChzZWxmLl9wb2ludFNpemVbMF0pLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3guUEVOU1RZTEVfRE9UKQorKyAKKysg ICAgICAgICBzZWxmLl9jZW50ZXJMaW5lUGVuID0gd3guUGVuKHd4LlJFRCwKKystICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3BvaW50U2l6ZVswXSwKKysrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludChzZWxmLl9wb2ludFNpemVbMF0pLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3guUEVOU1RZTEVfU0hPUlRf REFTSCkKKysgCisrICAgICAgICAgc2VsZi5fYXhlc1BlbiA9IHd4LlBlbih3eC5CTEFDSywKKyst ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3BvaW50U2l6ZVswXSwKKysrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludChzZWxmLl9wb2ludFNpemVbMF0pLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3guUEVOU1RZTEVfU09MSUQpCisrIAorKyAg ICAgICAgIHNlbGYuX3RpY2tQZW4gPSB3eC5QZW4od3guQkxBQ0ssCisrLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLl9wb2ludFNpemVbMF0sCisrKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpbnQoc2VsZi5fcG9pbnRTaXplWzBdKSwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHd4LlBFTlNUWUxFX1NPTElEKQorKyAgICAgICAgIHNlbGYuX3RpY2tM ZW5ndGggPSB0dXBsZSgteCAqIDIgZm9yIHggaW4gc2VsZi5fcG9pbnRTaXplKQorKyAKKysgICAg ICAgICBzZWxmLl9kaWFnb25hbFBlbiA9IHd4LlBlbih3eC5CTFVFLAorKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3BvaW50U2l6ZVswXSwKKysrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpbnQoc2VsZi5fcG9pbnRTaXplWzBdKSwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3eC5QRU5TVFlMRV9ET1RfREFTSCkKKysgCisr ICAgICBkZWYgU2V0Q3Vyc29yKHNlbGYsIGN1cnNvcik6CisrQEAgLTE5MjUsMTAgKzE5MjUsMTAg QEAgZGVmIF9EcmF3KHNlbGYsIGdyYXBoaWNzLCB4QXhpcz1Ob25lLCB5QXhpcz1Ob25lLCBkYz1O b25lKToKKysgICAgICAgICAjIHNldCBjbGlwcGluZyBhcmVhIHNvIGRyYXdpbmcgZG9lcyBub3Qg b2NjdXIgb3V0c2lkZSBheGlzIGJveAorKyAgICAgICAgIHB0eCwgcHR5LCByZWN0V2lkdGgsIHJl Y3RIZWlnaHQgPSBzZWxmLl9wb2ludDJDbGllbnRDb29yZChwMSwgcDIpCisrICAgICAgICAgIyBh bGxvdyBncmFwaCB0byBvdmVybGFwIGF4aXMgbGluZXMgYnkgYWRkaW5nIHVuaXRzIHRvIHcgYW5k IGgKKystICAgICAgICBkYy5TZXRDbGlwcGluZ1JlZ2lvbihwdHggKiBzZWxmLl9wb2ludFNpemVb MF0sCisrLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHR5ICogc2VsZi5fcG9pbnRTaXpl WzFdLAorKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3RXaWR0aCAqIHNlbGYuX3Bv aW50U2l6ZVswXSArIDIsCisrLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjdEhlaWdo dCAqIHNlbGYuX3BvaW50U2l6ZVsxXSArIDEpCisrKyAgICAgICAgZGMuU2V0Q2xpcHBpbmdSZWdp b24oaW50KHB0eCAqIHNlbGYuX3BvaW50U2l6ZVswXSksCisrKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW50KHB0eSAqIHNlbGYuX3BvaW50U2l6ZVsxXSksCisrKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW50KHJlY3RXaWR0aCAqIHNlbGYuX3BvaW50U2l6ZVswXSArIDIpLAor KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludChyZWN0SGVpZ2h0ICogc2VsZi5fcG9p bnRTaXplWzFdICsgMSkpCisrICAgICAgICAgIyBEcmF3IHRoZSBsaW5lcyBhbmQgbWFya2Vycwor KyAjICAgICAgICBzdGFydCA9IF90aW1lLnBlcmZfY291bnRlcigpCisrICAgICAgICAgZ3JhcGhp Y3MuZHJhdyhkYykKKytAQCAtMjI4MCw3ICsyMjgwLDcgQEAgZGVmIF9kcmF3TGVnZW5kKHNlbGYs IGRjLCBncmFwaGljcywgcmhzVywgdG9wSCwgbGVnZW5kQm94V0gsCisrICAgICAgICAgICAgIHBu dCA9ICgodHJoY1swXSArIGxlZ2VuZExIUyArIGxlZ2VuZFN5bUV4dFswXQorKyAgICAgICAgICAg ICAgICAgICAgICsgNSAqIHNlbGYuX3BvaW50U2l6ZVswXSksCisrICAgICAgICAgICAgICAgICAg ICB0cmhjWzFdICsgcyArIGxpbmVIZWlnaHQgLyAyLiAtIGxlZ2VuZFRleHRFeHRbMV0gLyAyKQor Ky0gICAgICAgICAgICBkYy5EcmF3VGV4dChvLmdldExlZ2VuZCgpLCBwbnRbMF0sIHBudFsxXSkK KysrICAgICAgICAgICAgZGMuRHJhd1RleHQoby5nZXRMZWdlbmQoKSwgaW50KHBudFswXSksIGlu dChwbnRbMV0pKQorKyAgICAgICAgIGRjLlNldEZvbnQoc2VsZi5fZ2V0Rm9udChzZWxmLl9mb250 U2l6ZUF4aXMpKSAgIyByZXNldAorKyAKKysgICAgIGRlZiBfdGl0bGVMYWJsZXNXSChzZWxmLCBk YywgZ3JhcGhpY3MpOgorK0BAIC0yMzI5LDcgKzIzMjksNyBAQCBkZWYgX2RyYXdSdWJiZXJCYW5k KHNlbGYsIGNvcm5lcjEsIGNvcm5lcjIpOgorKyAgICAgICAgIGRjLlNldFBlbih3eC5QZW4od3gu QkxBQ0spKQorKyAgICAgICAgIGRjLlNldEJydXNoKHd4LkJydXNoKHd4LldISVRFLCB3eC5CUlVT SFNUWUxFX1RSQU5TUEFSRU5UKSkKKysgICAgICAgICBkYy5TZXRMb2dpY2FsRnVuY3Rpb24od3gu SU5WRVJUKQorKy0gICAgICAgIGRjLkRyYXdSZWN0YW5nbGUocHR4LCBwdHksIHJlY3RXaWR0aCwg cmVjdEhlaWdodCkKKysrICAgICAgICBkYy5EcmF3UmVjdGFuZ2xlKGludChwdHgpLCBpbnQocHR5 KSwgaW50KHJlY3RXaWR0aCksIGludChyZWN0SGVpZ2h0KSkKKysgICAgICAgICBkYy5TZXRMb2dp Y2FsRnVuY3Rpb24od3guQ09QWSkKKysgCisrICAgICBkZWYgX2dldEZvbnQoc2VsZiwgc2l6ZSk6 CisrQEAgLTI0MjMsNyArMjQyMyw3IEBAIGRlZiBfZHJhd0dyaWQoc2VsZiwgZGMsIHAxLCBwMiwg c2NhbGUsIHNoaWZ0LCB4dGlja3MsIHl0aWNrcyk6CisrICAgICAgICAgIyBpbmNyZWFzZXMgdGhp Y2tuZXNzIGZvciBwcmludGluZyBvbmx5CisrICAgICAgICAgcGVuID0gc2VsZi5ncmlkUGVuCisr ICAgICAgICAgcGVuV2lkdGggPSBzZWxmLnByaW50ZXJTY2FsZSAqIHBlbi5HZXRXaWR0aCgpCisr LSAgICAgICAgcGVuLlNldFdpZHRoKHBlbldpZHRoKQorKysgICAgICAgIHBlbi5TZXRXaWR0aChp bnQocGVuV2lkdGgpKQorKyAgICAgICAgIGRjLlNldFBlbihwZW4pCisrIAorKyAgICAgICAgIHgs IHksIHdpZHRoLCBoZWlnaHQgPSBzZWxmLl9wb2ludDJDbGllbnRDb29yZChwMSwgcDIpCisrQEAg LTI0MzIsMTMgKzI0MzIsMTMgQEAgZGVmIF9kcmF3R3JpZChzZWxmLCBkYywgcDEsIHAyLCBzY2Fs ZSwgc2hpZnQsIHh0aWNrcywgeXRpY2tzKToKKysgICAgICAgICAgICAgaWYgc2VsZi5lbmFibGVH cmlkWzBdOgorKyAgICAgICAgICAgICAgICAgZm9yIHgsIF8gaW4geHRpY2tzOgorKyAgICAgICAg ICAgICAgICAgICAgIHB0ID0gc2NhbGVfYW5kX3NoaWZ0X3BvaW50KHgsIHAxWzFdLCBzY2FsZSwg c2hpZnQpCisrLSAgICAgICAgICAgICAgICAgICAgZGMuRHJhd0xpbmUocHRbMF0sIHB0WzFdLCBw dFswXSwgcHRbMV0gLSBoZWlnaHQpCisrKyAgICAgICAgICAgICAgICAgICAgZGMuRHJhd0xpbmUo aW50KHB0WzBdKSwgaW50KHB0WzFdKSwgaW50KHB0WzBdKSwgaW50KHB0WzFdIC0gaGVpZ2h0KSkK KysgCisrICAgICAgICAgaWYgc2VsZi5feVNwZWMgIT0gJ25vbmUnOgorKyAgICAgICAgICAgICBp ZiBzZWxmLmVuYWJsZUdyaWRbMV06CisrICAgICAgICAgICAgICAgICBmb3IgeSwgbGFiZWwgaW4g eXRpY2tzOgorKyAgICAgICAgICAgICAgICAgICAgIHB0ID0gc2NhbGVfYW5kX3NoaWZ0X3BvaW50 KHAxWzBdLCB5LCBzY2FsZSwgc2hpZnQpCisrLSAgICAgICAgICAgICAgICAgICAgZGMuRHJhd0xp bmUocHRbMF0sIHB0WzFdLCBwdFswXSArIHdpZHRoLCBwdFsxXSkKKysrICAgICAgICAgICAgICAg ICAgICBkYy5EcmF3TGluZShpbnQocHRbMF0pLCBpbnQocHRbMV0pLCBpbnQocHRbMF0gKyB3aWR0 aCksIGludChwdFsxXSkpCisrIAorKyAgICAgQFRlbXBTdHlsZSgncGVuJykKKysgICAgIGRlZiBf ZHJhd1RpY2tzKHNlbGYsIGRjLCBwMSwgcDIsIHNjYWxlLCBzaGlmdCwgeHRpY2tzLCB5dGlja3Mp OgorK0BAIC0yNDcxLDcgKzI0NzEsNyBAQCBkZWYgX2RyYXdUaWNrcyhzZWxmLCBkYywgcDEsIHAy LCBzY2FsZSwgc2hpZnQsIHh0aWNrcywgeXRpY2tzKToKKysgICAgICAgICAjIGluY3JlYXNlcyB0 aGlja25lc3MgZm9yIHByaW50aW5nIG9ubHkKKysgICAgICAgICBwZW4gPSBzZWxmLnRpY2tQZW4K KysgICAgICAgICBwZW5XaWR0aCA9IHNlbGYucHJpbnRlclNjYWxlICogcGVuLkdldFdpZHRoKCkK KystICAgICAgICBwZW4uU2V0V2lkdGgocGVuV2lkdGgpCisrKyAgICAgICAgcGVuLlNldFdpZHRo KGludChwZW5XaWR0aCkpCisrICAgICAgICAgZGMuU2V0UGVuKHBlbikKKysgCisrICAgICAgICAg IyBsZW5ndGhlbiBsaW5lcyBmb3IgcHJpbnRpbmcKKytAQCAtMjQ4NCwxMyArMjQ4NCwxMyBAQCBk ZWYgX2RyYXdUaWNrcyhzZWxmLCBkYywgcDEsIHAyLCBzY2FsZSwgc2hpZnQsIHh0aWNrcywgeXRp Y2tzKToKKysgICAgICAgICAgICAgICAgIGxpbmVzID0gW10KKysgICAgICAgICAgICAgICAgIGZv ciB4LCBsYWJlbCBpbiB4dGlja3M6CisrICAgICAgICAgICAgICAgICAgICAgcHQgPSBzY2FsZV9h bmRfc2hpZnRfcG9pbnQoeCwgcDFbMV0sIHNjYWxlLCBzaGlmdCkKKystICAgICAgICAgICAgICAg ICAgICBsaW5lcy5hcHBlbmQoKHB0WzBdLCBwdFsxXSwgcHRbMF0sIHB0WzFdIC0geFRpY2tMZW5n dGgpKQorKysgICAgICAgICAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgoaW50KHB0WzBdKSwgaW50 KHB0WzFdKSwgaW50KHB0WzBdKSwgaW50KHB0WzFdIC0geFRpY2tMZW5ndGgpKSkKKysgICAgICAg ICAgICAgICAgIGRjLkRyYXdMaW5lTGlzdChsaW5lcykKKysgICAgICAgICAgICAgaWYgdGlja3Mu dG9wOgorKyAgICAgICAgICAgICAgICAgbGluZXMgPSBbXQorKyAgICAgICAgICAgICAgICAgZm9y IHgsIGxhYmVsIGluIHh0aWNrczoKKysgICAgICAgICAgICAgICAgICAgICBwdCA9IHNjYWxlX2Fu ZF9zaGlmdF9wb2ludCh4LCBwMlsxXSwgc2NhbGUsIHNoaWZ0KQorKy0gICAgICAgICAgICAgICAg ICAgIGxpbmVzLmFwcGVuZCgocHRbMF0sIHB0WzFdLCBwdFswXSwgcHRbMV0gKyB4VGlja0xlbmd0 aCkpCisrKyAgICAgICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKChpbnQocHRbMF0pLCBpbnQo cHRbMV0pLCBpbnQocHRbMF0pLCBpbnQocHRbMV0gKyB4VGlja0xlbmd0aCkpKQorKyAgICAgICAg ICAgICAgICAgZGMuRHJhd0xpbmVMaXN0KGxpbmVzKQorKyAKKysgICAgICAgICBpZiBzZWxmLnlT cGVjICE9ICdub25lJzoKKytAQCAtMjQ5OCwxMyArMjQ5OCwxMyBAQCBkZWYgX2RyYXdUaWNrcyhz ZWxmLCBkYywgcDEsIHAyLCBzY2FsZSwgc2hpZnQsIHh0aWNrcywgeXRpY2tzKToKKysgICAgICAg ICAgICAgICAgIGxpbmVzID0gW10KKysgICAgICAgICAgICAgICAgIGZvciB5LCBsYWJlbCBpbiB5 dGlja3M6CisrICAgICAgICAgICAgICAgICAgICAgcHQgPSBzY2FsZV9hbmRfc2hpZnRfcG9pbnQo cDFbMF0sIHksIHNjYWxlLCBzaGlmdCkKKystICAgICAgICAgICAgICAgICAgICBsaW5lcy5hcHBl bmQoKHB0WzBdLCBwdFsxXSwgcHRbMF0gKyB5VGlja0xlbmd0aCwgcHRbMV0pKQorKysgICAgICAg ICAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgoaW50KHB0WzBdKSwgaW50KHB0WzFdKSwgaW50KHB0 WzBdICsgeVRpY2tMZW5ndGgpLCBpbnQocHRbMV0pKSkKKysgICAgICAgICAgICAgICAgIGRjLkRy YXdMaW5lTGlzdChsaW5lcykKKysgICAgICAgICAgICAgaWYgdGlja3MucmlnaHQ6CisrICAgICAg ICAgICAgICAgICBsaW5lcyA9IFtdCisrICAgICAgICAgICAgICAgICBmb3IgeSwgbGFiZWwgaW4g eXRpY2tzOgorKyAgICAgICAgICAgICAgICAgICAgIHB0ID0gc2NhbGVfYW5kX3NoaWZ0X3BvaW50 KHAyWzBdLCB5LCBzY2FsZSwgc2hpZnQpCisrLSAgICAgICAgICAgICAgICAgICAgbGluZXMuYXBw ZW5kKChwdFswXSwgcHRbMV0sIHB0WzBdIC0geVRpY2tMZW5ndGgsIHB0WzFdKSkKKysrICAgICAg ICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoKGludChwdFswXSksIGludChwdFsxXSksIGludChw dFswXSAtIHlUaWNrTGVuZ3RoKSwgaW50KHB0WzFdKSkpCisrICAgICAgICAgICAgICAgICBkYy5E cmF3TGluZUxpc3QobGluZXMpCisrIAorKyAgICAgQFRlbXBTdHlsZSgncGVuJykKKytAQCAtMjUz MSwyNSArMjUzMSwyNSBAQCBkZWYgX2RyYXdDZW50ZXJMaW5lcyhzZWxmLCBkYywgcDEsIHAyLCBz Y2FsZSwgc2hpZnQpOgorKyAgICAgICAgICMgaW5jcmVhc2VzIHRoaWNrbmVzcyBmb3IgcHJpbnRp bmcgb25seQorKyAgICAgICAgIHBlbiA9IHNlbGYuY2VudGVyTGluZVBlbgorKyAgICAgICAgIHBl bldpZHRoID0gc2VsZi5wcmludGVyU2NhbGUgKiBwZW4uR2V0V2lkdGgoKQorKy0gICAgICAgIHBl bi5TZXRXaWR0aChwZW5XaWR0aCkKKysrICAgICAgICBwZW4uU2V0V2lkdGgoaW50KHBlbldpZHRo KSkKKysgICAgICAgICBkYy5TZXRQZW4ocGVuKQorKyAKKysgICAgICAgICBpZiBzZWxmLl9jZW50 ZXJMaW5lc0VuYWJsZWQgaW4gKCdIb3Jpem9udGFsJywgVHJ1ZSk6CisrICAgICAgICAgICAgIHkx ID0gc2NhbGVbMV0gKiBwMVsxXSArIHNoaWZ0WzFdCisrICAgICAgICAgICAgIHkyID0gc2NhbGVb MV0gKiBwMlsxXSArIHNoaWZ0WzFdCisrICAgICAgICAgICAgIHkgPSAoeTEgLSB5MikgLyAyLjAg KyB5MgorKy0gICAgICAgICAgICBkYy5EcmF3TGluZShzY2FsZVswXSAqIHAxWzBdICsgc2hpZnRb MF0sCisrLSAgICAgICAgICAgICAgICAgICAgICAgIHksCisrLSAgICAgICAgICAgICAgICAgICAg ICAgIHNjYWxlWzBdICogcDJbMF0gKyBzaGlmdFswXSwKKystICAgICAgICAgICAgICAgICAgICAg ICAgeSkKKysrICAgICAgICAgICAgZGMuRHJhd0xpbmUoaW50KHNjYWxlWzBdICogcDFbMF0gKyBz aGlmdFswXSksCisrKyAgICAgICAgICAgICAgICAgICAgICAgIGludCh5KSwKKysrICAgICAgICAg ICAgICAgICAgICAgICAgaW50KHNjYWxlWzBdICogcDJbMF0gKyBzaGlmdFswXSksCisrKyAgICAg ICAgICAgICAgICAgICAgICAgIGludCh5KSkKKysgICAgICAgICBpZiBzZWxmLl9jZW50ZXJMaW5l c0VuYWJsZWQgaW4gKCdWZXJ0aWNhbCcsIFRydWUpOgorKyAgICAgICAgICAgICB4MSA9IHNjYWxl WzBdICogcDFbMF0gKyBzaGlmdFswXQorKyAgICAgICAgICAgICB4MiA9IHNjYWxlWzBdICogcDJb MF0gKyBzaGlmdFswXQorKyAgICAgICAgICAgICB4ID0gKHgxIC0geDIpIC8gMi4wICsgeDIKKyst ICAgICAgICAgICAgZGMuRHJhd0xpbmUoeCwKKystICAgICAgICAgICAgICAgICAgICAgICAgc2Nh bGVbMV0gKiBwMVsxXSArIHNoaWZ0WzFdLAorKy0gICAgICAgICAgICAgICAgICAgICAgICB4LAor Ky0gICAgICAgICAgICAgICAgICAgICAgICBzY2FsZVsxXSAqIHAyWzFdICsgc2hpZnRbMV0pCisr KyAgICAgICAgICAgIGRjLkRyYXdMaW5lKGludCh4KSwKKysrICAgICAgICAgICAgICAgICAgICAg ICAgaW50KHNjYWxlWzFdICogcDFbMV0gKyBzaGlmdFsxXSksCisrKyAgICAgICAgICAgICAgICAg ICAgICAgIGludCh4KSwKKysrICAgICAgICAgICAgICAgICAgICAgICAgaW50KHNjYWxlWzFdICog cDJbMV0gKyBzaGlmdFsxXSkpCisrIAorKyAgICAgQFRlbXBTdHlsZSgncGVuJykKKysgICAgIGRl ZiBfZHJhd0RpYWdvbmFscyhzZWxmLCBkYywgcDEsIHAyLCBzY2FsZSwgc2hpZnQpOgorK0BAIC0y NTc1LDE5ICsyNTc1LDE5IEBAIGRlZiBfZHJhd0RpYWdvbmFscyhzZWxmLCBkYywgcDEsIHAyLCBz Y2FsZSwgc2hpZnQpOgorKyAgICAgICAgICIiIgorKyAgICAgICAgIHBlbiA9IHNlbGYuZGlhZ29u YWxQZW4KKysgICAgICAgICBwZW5XaWR0aCA9IHNlbGYucHJpbnRlclNjYWxlICogcGVuLkdldFdp ZHRoKCkKKystICAgICAgICBwZW4uU2V0V2lkdGgocGVuV2lkdGgpCisrKyAgICAgICAgcGVuLlNl dFdpZHRoKGludChwZW5XaWR0aCkpCisrICAgICAgICAgZGMuU2V0UGVuKHBlbikKKysgCisrICAg ICAgICAgaWYgc2VsZi5fZGlhZ29uYWxzRW5hYmxlZCBpbiAoJ0JvdHRvbWxlZnQtVG9wcmlnaHQn LCBUcnVlKToKKystICAgICAgICAgICAgZGMuRHJhd0xpbmUoc2NhbGVbMF0gKiBwMVswXSArIHNo aWZ0WzBdLAorKy0gICAgICAgICAgICAgICAgICAgICAgICBzY2FsZVsxXSAqIHAxWzFdICsgc2hp ZnRbMV0sCisrLSAgICAgICAgICAgICAgICAgICAgICAgIHNjYWxlWzBdICogcDJbMF0gKyBzaGlm dFswXSwKKystICAgICAgICAgICAgICAgICAgICAgICAgc2NhbGVbMV0gKiBwMlsxXSArIHNoaWZ0 WzFdKQorKysgICAgICAgICAgICBkYy5EcmF3TGluZShpbnQoc2NhbGVbMF0gKiBwMVswXSArIHNo aWZ0WzBdKSwKKysrICAgICAgICAgICAgICAgICAgICAgICAgaW50KHNjYWxlWzFdICogcDFbMV0g KyBzaGlmdFsxXSksCisrKyAgICAgICAgICAgICAgICAgICAgICAgIGludChzY2FsZVswXSAqIHAy WzBdICsgc2hpZnRbMF0pLAorKysgICAgICAgICAgICAgICAgICAgICAgICBpbnQoc2NhbGVbMV0g KiBwMlsxXSArIHNoaWZ0WzFdKSkKKysgICAgICAgICBpZiBzZWxmLl9kaWFnb25hbHNFbmFibGVk IGluICgnQm90dG9tcmlnaHQtVG9wbGVmdCcsIFRydWUpOgorKy0gICAgICAgICAgICBkYy5EcmF3 TGluZShzY2FsZVswXSAqIHAxWzBdICsgc2hpZnRbMF0sCisrLSAgICAgICAgICAgICAgICAgICAg ICAgIHNjYWxlWzFdICogcDJbMV0gKyBzaGlmdFsxXSwKKystICAgICAgICAgICAgICAgICAgICAg ICAgc2NhbGVbMF0gKiBwMlswXSArIHNoaWZ0WzBdLAorKy0gICAgICAgICAgICAgICAgICAgICAg ICBzY2FsZVsxXSAqIHAxWzFdICsgc2hpZnRbMV0pCisrKyAgICAgICAgICAgIGRjLkRyYXdMaW5l KGludChzY2FsZVswXSAqIHAxWzBdICsgc2hpZnRbMF0pLAorKysgICAgICAgICAgICAgICAgICAg ICAgICBpbnQoc2NhbGVbMV0gKiBwMlsxXSArIHNoaWZ0WzFdKSwKKysrICAgICAgICAgICAgICAg ICAgICAgICAgaW50KHNjYWxlWzBdICogcDJbMF0gKyBzaGlmdFswXSksCisrKyAgICAgICAgICAg ICAgICAgICAgICAgIGludChzY2FsZVsxXSAqIHAxWzFdICsgc2hpZnRbMV0pKQorKyAKKysgICAg IEBUZW1wU3R5bGUoJ3BlbicpCisrICAgICBkZWYgX2RyYXdBeGVzKHNlbGYsIGRjLCBwMSwgcDIs IHNjYWxlLCBzaGlmdCk6CisrQEAgLTI2MTQsNyArMjYxNCw3IEBAIGRlZiBfZHJhd0F4ZXMoc2Vs ZiwgZGMsIHAxLCBwMiwgc2NhbGUsIHNoaWZ0KToKKysgICAgICAgICAjIGluY3JlYXNlcyB0aGlj a25lc3MgZm9yIHByaW50aW5nIG9ubHkKKysgICAgICAgICBwZW4gPSBzZWxmLmF4ZXNQZW4KKysg ICAgICAgICBwZW5XaWR0aCA9IHNlbGYucHJpbnRlclNjYWxlICogcGVuLkdldFdpZHRoKCkKKyst ICAgICAgICBwZW4uU2V0V2lkdGgocGVuV2lkdGgpCisrKyAgICAgICAgcGVuLlNldFdpZHRoKGlu dChwZW5XaWR0aCkpCisrICAgICAgICAgZGMuU2V0UGVuKHBlbikKKysgCisrICAgICAgICAgYXhl cyA9IHNlbGYuZW5hYmxlQXhlcworK0BAIC0yNjIzLDI0ICsyNjIzLDI0IEBAIGRlZiBfZHJhd0F4 ZXMoc2VsZiwgZGMsIHAxLCBwMiwgc2NhbGUsIHNoaWZ0KToKKysgICAgICAgICAgICAgICAgIGxv d2VyLCB1cHBlciA9IHAxWzBdLCBwMlswXQorKyAgICAgICAgICAgICAgICAgYTEgPSBzY2FsZV9h bmRfc2hpZnRfcG9pbnQobG93ZXIsIHAxWzFdLCBzY2FsZSwgc2hpZnQpCisrICAgICAgICAgICAg ICAgICBhMiA9IHNjYWxlX2FuZF9zaGlmdF9wb2ludCh1cHBlciwgcDFbMV0sIHNjYWxlLCBzaGlm dCkKKystICAgICAgICAgICAgICAgIGRjLkRyYXdMaW5lKGExWzBdLCBhMVsxXSwgYTJbMF0sIGEy WzFdKQorKysgICAgICAgICAgICAgICAgZGMuRHJhd0xpbmUoaW50KGExWzBdKSwgaW50KGExWzFd KSwgaW50KGEyWzBdKSwgaW50KGEyWzFdKSkKKysgICAgICAgICAgICAgaWYgYXhlcy50b3A6Cisr ICAgICAgICAgICAgICAgICBsb3dlciwgdXBwZXIgPSBwMVswXSwgcDJbMF0KKysgICAgICAgICAg ICAgICAgIGExID0gc2NhbGVfYW5kX3NoaWZ0X3BvaW50KGxvd2VyLCBwMlsxXSwgc2NhbGUsIHNo aWZ0KQorKyAgICAgICAgICAgICAgICAgYTIgPSBzY2FsZV9hbmRfc2hpZnRfcG9pbnQodXBwZXIs IHAyWzFdLCBzY2FsZSwgc2hpZnQpCisrLSAgICAgICAgICAgICAgICBkYy5EcmF3TGluZShhMVsw XSwgYTFbMV0sIGEyWzBdLCBhMlsxXSkKKysrICAgICAgICAgICAgICAgIGRjLkRyYXdMaW5lKGlu dChhMVswXSksIGludChhMVsxXSksIGludChhMlswXSksIGludChhMlsxXSkpCisrIAorKyAgICAg ICAgIGlmIHNlbGYueVNwZWMgIT0gJ25vbmUnOgorKyAgICAgICAgICAgICBpZiBheGVzLmxlZnQ6 CisrICAgICAgICAgICAgICAgICBsb3dlciwgdXBwZXIgPSBwMVsxXSwgcDJbMV0KKysgICAgICAg ICAgICAgICAgIGExID0gc2NhbGVfYW5kX3NoaWZ0X3BvaW50KHAxWzBdLCBsb3dlciwgc2NhbGUs IHNoaWZ0KQorKyAgICAgICAgICAgICAgICAgYTIgPSBzY2FsZV9hbmRfc2hpZnRfcG9pbnQocDFb MF0sIHVwcGVyLCBzY2FsZSwgc2hpZnQpCisrLSAgICAgICAgICAgICAgICBkYy5EcmF3TGluZShh MVswXSwgYTFbMV0sIGEyWzBdLCBhMlsxXSkKKysrICAgICAgICAgICAgICAgIGRjLkRyYXdMaW5l KGludChhMVswXSksIGludChhMVsxXSksIGludChhMlswXSksIGludChhMlsxXSkpCisrICAgICAg ICAgICAgIGlmIGF4ZXMucmlnaHQ6CisrICAgICAgICAgICAgICAgICBsb3dlciwgdXBwZXIgPSBw MVsxXSwgcDJbMV0KKysgICAgICAgICAgICAgICAgIGExID0gc2NhbGVfYW5kX3NoaWZ0X3BvaW50 KHAyWzBdLCBsb3dlciwgc2NhbGUsIHNoaWZ0KQorKyAgICAgICAgICAgICAgICAgYTIgPSBzY2Fs ZV9hbmRfc2hpZnRfcG9pbnQocDJbMF0sIHVwcGVyLCBzY2FsZSwgc2hpZnQpCisrLSAgICAgICAg ICAgICAgICBkYy5EcmF3TGluZShhMVswXSwgYTFbMV0sIGEyWzBdLCBhMlsxXSkKKysrICAgICAg ICAgICAgICAgIGRjLkRyYXdMaW5lKGludChhMVswXSksIGludChhMVsxXSksIGludChhMlswXSks IGludChhMlsxXSkpCisrIAorKyAgICAgQFRlbXBTdHlsZSgncGVuJykKKysgICAgIGRlZiBfZHJh d0F4ZXNWYWx1ZXMoc2VsZiwgZGMsIHAxLCBwMiwgc2NhbGUsIHNoaWZ0LCB4dGlja3MsIHl0aWNr cyk6CisrQEAgLTI2ODYsOCArMjY4Niw4IEBAIGRlZiBfZHJhd0F4ZXNWYWx1ZXMoc2VsZiwgZGMs IHAxLCBwMiwgc2NhbGUsIHNoaWZ0LCB4dGlja3MsIHl0aWNrcyk6CisrICAgICAgICAgICAgICAg ICAgICAgdyA9IGRjLkdldFRleHRFeHRlbnQobGFiZWwpWzBdCisrICAgICAgICAgICAgICAgICAg ICAgcHQgPSBzY2FsZV9hbmRfc2hpZnRfcG9pbnQoeCwgcDFbMV0sIHNjYWxlLCBzaGlmdCkKKysg ICAgICAgICAgICAgICAgICAgICBjb29yZHMuYXBwZW5kKAorKy0gICAgICAgICAgICAgICAgICAg ICAgICAocHRbMF0gLSB3LzIsCisrLSAgICAgICAgICAgICAgICAgICAgICAgICBwdFsxXSArIDIg KiBzZWxmLl9wb2ludFNpemVbMV0gLSB4VGlja0xlbmd0aCkKKysrICAgICAgICAgICAgICAgICAg ICAgICAgKGludChwdFswXSAtIHcvMiksCisrKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQo cHRbMV0gKyAyICogc2VsZi5fcG9pbnRTaXplWzFdIC0geFRpY2tMZW5ndGgpKQorKyAgICAgICAg ICAgICAgICAgICAgICkKKysgICAgICAgICAgICAgICAgIGRjLkRyYXdUZXh0TGlzdChsYWJlbHMs IGNvb3JkcykKKysgCisrQEAgLTI2OTgsOCArMjY5OCw4IEBAIGRlZiBfZHJhd0F4ZXNWYWx1ZXMo c2VsZiwgZGMsIHAxLCBwMiwgc2NhbGUsIHNoaWZ0LCB4dGlja3MsIHl0aWNrcyk6CisrICAgICAg ICAgICAgICAgICAgICAgdywgaCA9IGRjLkdldFRleHRFeHRlbnQobGFiZWwpCisrICAgICAgICAg ICAgICAgICAgICAgcHQgPSBzY2FsZV9hbmRfc2hpZnRfcG9pbnQoeCwgcDJbMV0sIHNjYWxlLCBz aGlmdCkKKysgICAgICAgICAgICAgICAgICAgICBjb29yZHMuYXBwZW5kKAorKy0gICAgICAgICAg ICAgICAgICAgICAgICAocHRbMF0gLSB3LzIsCisrLSAgICAgICAgICAgICAgICAgICAgICAgICBw dFsxXSAtIDIgKiBzZWxmLl9wb2ludFNpemVbMV0gLSBoIC0geFRpY2tMZW5ndGgpCisrKyAgICAg ICAgICAgICAgICAgICAgICAgIChpbnQocHRbMF0gLSB3LzIpLAorKysgICAgICAgICAgICAgICAg ICAgICAgICAgaW50KHB0WzFdIC0gMiAqIHNlbGYuX3BvaW50U2l6ZVsxXSAtIGggLSB4VGlja0xl bmd0aCkpCisrICAgICAgICAgICAgICAgICAgICAgKQorKyAgICAgICAgICAgICAgICAgZGMuRHJh d1RleHRMaXN0KGxhYmVscywgY29vcmRzKQorKyAKKytAQCAtMjcxMiw4ICsyNzEyLDggQEAgZGVm IF9kcmF3QXhlc1ZhbHVlcyhzZWxmLCBkYywgcDEsIHAyLCBzY2FsZSwgc2hpZnQsIHh0aWNrcywg eXRpY2tzKToKKysgICAgICAgICAgICAgICAgICAgICB3ID0gZGMuR2V0VGV4dEV4dGVudChsYWJl bClbMF0KKysgICAgICAgICAgICAgICAgICAgICBwdCA9IHNjYWxlX2FuZF9zaGlmdF9wb2ludChw MVswXSwgeSwgc2NhbGUsIHNoaWZ0KQorKyAgICAgICAgICAgICAgICAgICAgIGNvb3Jkcy5hcHBl bmQoCisrLSAgICAgICAgICAgICAgICAgICAgICAgIChwdFswXSAtIHcgLSAzICogc2VsZi5fcG9p bnRTaXplWzBdICsgeVRpY2tMZW5ndGgsCisrLSAgICAgICAgICAgICAgICAgICAgICAgICBwdFsx XSAtIDAuNSAqIGgpCisrKyAgICAgICAgICAgICAgICAgICAgICAgIChpbnQocHRbMF0gLSB3IC0g MyAqIHNlbGYuX3BvaW50U2l6ZVswXSArIHlUaWNrTGVuZ3RoKSwKKysrICAgICAgICAgICAgICAg ICAgICAgICAgIGludChwdFsxXSAtIDAuNSAqIGgpKQorKyAgICAgICAgICAgICAgICAgICAgICkK KysgICAgICAgICAgICAgICAgIGRjLkRyYXdUZXh0TGlzdChsYWJlbHMsIGNvb3JkcykKKysgCisr QEAgLTI3MjUsOCArMjcyNSw4IEBAIGRlZiBfZHJhd0F4ZXNWYWx1ZXMoc2VsZiwgZGMsIHAxLCBw Miwgc2NhbGUsIHNoaWZ0LCB4dGlja3MsIHl0aWNrcyk6CisrICAgICAgICAgICAgICAgICAgICAg dyA9IGRjLkdldFRleHRFeHRlbnQobGFiZWwpWzBdCisrICAgICAgICAgICAgICAgICAgICAgcHQg PSBzY2FsZV9hbmRfc2hpZnRfcG9pbnQocDJbMF0sIHksIHNjYWxlLCBzaGlmdCkKKysgICAgICAg ICAgICAgICAgICAgICBjb29yZHMuYXBwZW5kKAorKy0gICAgICAgICAgICAgICAgICAgICAgICAo cHRbMF0gKyAzICogc2VsZi5fcG9pbnRTaXplWzBdICsgeVRpY2tMZW5ndGgsCisrLSAgICAgICAg ICAgICAgICAgICAgICAgICBwdFsxXSAtIDAuNSAqIGgpCisrKyAgICAgICAgICAgICAgICAgICAg ICAgIChpbnQocHRbMF0gKyAzICogc2VsZi5fcG9pbnRTaXplWzBdICsgeVRpY2tMZW5ndGgpLAor KysgICAgICAgICAgICAgICAgICAgICAgICAgaW50KHB0WzFdIC0gMC41ICogaCkpCisrICAgICAg ICAgICAgICAgICAgICAgKQorKyAgICAgICAgICAgICAgICAgZGMuRHJhd1RleHRMaXN0KGxhYmVs cywgY29vcmRzKQorKyAKKytAQCAtMjc4NSw3ICsyNzg1LDcgQEAgZGVmIF9kcmF3UGxvdFRpdGxl KHNlbGYsIGRjLCBncmFwaGljcywgbGhzVywgcmhzVywgdGl0bGVXSCk6CisrICAgICAgICAgICAg ICsgKHNlbGYucGxvdGJveF9zaXplWzBdIC0gbGhzVyAtIHJoc1cpIC8gMi4gLSB0aXRsZVdIWzBd IC8gMi4sCisrICAgICAgICAgICAgIHNlbGYucGxvdGJveF9vcmlnaW5bMV0gLSBzZWxmLnBsb3Ri b3hfc2l6ZVsxXQorKyAgICAgICAgICkKKystICAgICAgICBkYy5EcmF3VGV4dChncmFwaGljcy50 aXRsZSwgdGl0bGVQb3NbMF0sIHRpdGxlUG9zWzFdKQorKysgICAgICAgIGRjLkRyYXdUZXh0KGdy YXBoaWNzLnRpdGxlLCBpbnQodGl0bGVQb3NbMF0pLCBpbnQodGl0bGVQb3NbMV0pKQorKyAKKysg ICAgIGRlZiBfZHJhd0F4ZXNMYWJlbHMoc2VsZiwgZGMsIGdyYXBoaWNzLCBsaHNXLCByaHNXLCBi b3R0b21ILCB0b3BILAorKyAgICAgICAgICAgICAgICAgICAgICAgICB4TGFiZWxXSCwgeUxhYmVs V0gpOgorK0BAIC0yODA2LDcgKzI4MDYsNyBAQCBkZWYgX2RyYXdBeGVzTGFiZWxzKHNlbGYsIGRj LCBncmFwaGljcywgbGhzVywgcmhzVywgYm90dG9tSCwgdG9wSCwKKysgICAgICAgICAgICAgKyAo c2VsZi5wbG90Ym94X3NpemVbMF0gLSBsaHNXIC0gcmhzVykgLyAyLiAtIHhMYWJlbFdIWzBdIC8g Mi4sCisrICAgICAgICAgICAgIHNlbGYucGxvdGJveF9vcmlnaW5bMV0gLSB4TGFiZWxXSFsxXSAt IHlUaWNrTGVuZ3RoCisrICAgICAgICAgKQorKy0gICAgICAgIGRjLkRyYXdUZXh0KGdyYXBoaWNz LnhMYWJlbCwgeExhYmVsUG9zWzBdLCB4TGFiZWxQb3NbMV0pCisrKyAgICAgICAgZGMuRHJhd1Rl eHQoZ3JhcGhpY3MueExhYmVsLCBpbnQoeExhYmVsUG9zWzBdKSwgaW50KHhMYWJlbFBvc1sxXSkp CisrICAgICAgICAgeUxhYmVsUG9zID0gKAorKyAgICAgICAgICAgICBzZWxmLnBsb3Rib3hfb3Jp Z2luWzBdIC0gMyAqIHNlbGYuX3BvaW50U2l6ZVswXSArIHhUaWNrTGVuZ3RoLAorKyAgICAgICAg ICAgICBzZWxmLnBsb3Rib3hfb3JpZ2luWzFdIC0gYm90dG9tSAorK0BAIC0yODE0LDcgKzI4MTQs NyBAQCBkZWYgX2RyYXdBeGVzTGFiZWxzKHNlbGYsIGRjLCBncmFwaGljcywgbGhzVywgcmhzVywg Ym90dG9tSCwgdG9wSCwKKysgICAgICAgICApCisrICAgICAgICAgaWYgZ3JhcGhpY3MueUxhYmVs OiAgIyBidWcgZml4IGZvciBMaW51eAorKyAgICAgICAgICAgICBkYy5EcmF3Um90YXRlZFRleHQo CisrLSAgICAgICAgICAgICAgICBncmFwaGljcy55TGFiZWwsIHlMYWJlbFBvc1swXSwgeUxhYmVs UG9zWzFdLCA5MCkKKysrICAgICAgICAgICAgICAgIGdyYXBoaWNzLnlMYWJlbCwgaW50KHlMYWJl bFBvc1swXSksIGludCh5TGFiZWxQb3NbMV0pLCA5MCkKKysgCisrICAgICBAVGVtcFN0eWxlKCdw ZW4nKQorKyAgICAgZGVmIF9kcmF3UGxvdEFyZWFMYWJlbHMoc2VsZiwgZGMsIGdyYXBoaWNzLCBs aHNXLCByaHNXLCB0aXRsZVdILAorK0BAIC0yOTQyLDcgKzI5NDIsNyBAQCBkZWYgX2FkanVzdFNj cm9sbGJhcnMoc2VsZik6CisrICAgICAgICAgaWYgcG9zID49IDA6CisrICAgICAgICAgICAgIHBh Z2VzaXplID0gaW50KChyX2N1cnJlbnRbMV0gLSByX2N1cnJlbnRbMF0pIC8gdW5pdCkKKysgCisr LSAgICAgICAgICAgIHNlbGYuc2JfaG9yLlNldFNjcm9sbGJhcihwb3MsIHBhZ2VzaXplLCBzYmZ1 bGxyYW5nZSwgcGFnZXNpemUpCisrKyAgICAgICAgICAgIHNlbGYuc2JfaG9yLlNldFNjcm9sbGJh cihwb3MsIHBhZ2VzaXplLCBpbnQoc2JmdWxscmFuZ2UpLCBwYWdlc2l6ZSkKKysgICAgICAgICAg ICAgc2VsZi5fc2JfeHVuaXQgPSB1bml0CisrICAgICAgICAgICAgIG5lZWRTY3JvbGxiYXJzID0g bmVlZFNjcm9sbGJhcnMgb3IgKHBhZ2VzaXplICE9IHNiZnVsbHJhbmdlKQorKyAgICAgICAgIGVs c2U6CisrQEAgLTI5NjQsNyArMjk2NCw3IEBAIGRlZiBfYWRqdXN0U2Nyb2xsYmFycyhzZWxmKToK KysgICAgICAgICBpZiBwb3MgPj0gMDoKKysgICAgICAgICAgICAgcGFnZXNpemUgPSBpbnQoKHJf Y3VycmVudFsxXSAtIHJfY3VycmVudFswXSkgLyB1bml0KQorKyAgICAgICAgICAgICBwb3MgPSAo c2JmdWxscmFuZ2UgLSAxIC0gcG9zIC0gcGFnZXNpemUpCisrLSAgICAgICAgICAgIHNlbGYuc2Jf dmVydC5TZXRTY3JvbGxiYXIocG9zLCBwYWdlc2l6ZSwgc2JmdWxscmFuZ2UsIHBhZ2VzaXplKQor KysgICAgICAgICAgICBzZWxmLnNiX3ZlcnQuU2V0U2Nyb2xsYmFyKGludChwb3MpLCBwYWdlc2l6 ZSwgaW50KHNiZnVsbHJhbmdlKSwgcGFnZXNpemUpCisrICAgICAgICAgICAgIHNlbGYuX3NiX3l1 bml0ID0gdW5pdAorKyAgICAgICAgICAgICBuZWVkU2Nyb2xsYmFycyA9IG5lZWRTY3JvbGxiYXJz IG9yIChwYWdlc2l6ZSAhPSBzYmZ1bGxyYW5nZSkKKysgICAgICAgICBlbHNlOgorK2RpZmYgLS1n aXQgYS93eC9saWIvcGxvdC9wb2x5b2JqZWN0cy5weSBiL3d4L2xpYi9wbG90L3BvbHlvYmplY3Rz LnB5CisraW5kZXggMjZhNTRmOGY3Li43MjViMDE2NGUgMTAwNjQ0CisrLS0tIGEvd3gvbGliL3Bs b3QvcG9seW9iamVjdHMucHkKKysrKysgYi93eC9saWIvcGxvdC9wb2x5b2JqZWN0cy5weQorK0BA IC00MTcsNyArNDE3LDcgQEAgZGVmIGRyYXcoc2VsZiwgZGMsIHByaW50ZXJTY2FsZSwgY29vcmQ9 Tm9uZSk6CisrIAorKyAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGNvbG91ciwgd3guQ29sb3Vy KToKKysgICAgICAgICAgICAgY29sb3VyID0gd3guQ29sb3VyKGNvbG91cikKKystICAgICAgICBw ZW4gPSB3eC5QZW4oY29sb3VyLCB3aWR0aCwgc3R5bGUpCisrKyAgICAgICAgcGVuID0gd3guUGVu KGNvbG91ciwgaW50KHdpZHRoKSwgc3R5bGUpCisrICAgICAgICAgcGVuLlNldENhcCh3eC5DQVBf QlVUVCkKKysgICAgICAgICBkYy5TZXRQZW4ocGVuKQorKyAgICAgICAgIGlmIGNvb3JkIGlzIE5v bmU6CisrQEAgLTUxOCw3ICs1MTgsNyBAQCBkZWYgZHJhdyhzZWxmLCBkYywgcHJpbnRlclNjYWxl LCBjb29yZD1Ob25lKToKKysgICAgICAgICBzdHlsZSA9IHNlbGYuYXR0cmlidXRlc1snc3R5bGUn XQorKyAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGNvbG91ciwgd3guQ29sb3VyKToKKysgICAg ICAgICAgICAgY29sb3VyID0gd3guQ29sb3VyKGNvbG91cikKKystICAgICAgICBwZW4gPSB3eC5Q ZW4oY29sb3VyLCB3aWR0aCwgc3R5bGUpCisrKyAgICAgICAgcGVuID0gd3guUGVuKGNvbG91ciwg aW50KHdpZHRoKSwgc3R5bGUpCisrICAgICAgICAgcGVuLlNldENhcCh3eC5DQVBfUk9VTkQpCisr ICAgICAgICAgZGMuU2V0UGVuKHBlbikKKysgICAgICAgICBpZiBjb29yZCBpcyBOb25lOgorK0BA IC01OTAsNyArNTkwLDcgQEAgZGVmIGRyYXcoc2VsZiwgZGMsIHByaW50ZXJTY2FsZSwgY29vcmQ9 Tm9uZSk6CisrICAgICAgICAgaWYgZmlsbGNvbG91ciBhbmQgbm90IGlzaW5zdGFuY2UoZmlsbGNv bG91ciwgd3guQ29sb3VyKToKKysgICAgICAgICAgICAgZmlsbGNvbG91ciA9IHd4LkNvbG91cihm aWxsY29sb3VyKQorKyAKKystICAgICAgICBkYy5TZXRQZW4od3guUGVuKGNvbG91ciwgd2lkdGgp KQorKysgICAgICAgIGRjLlNldFBlbih3eC5QZW4oY29sb3VyLCBpbnQod2lkdGgpKSkKKysgICAg ICAgICBpZiBmaWxsY29sb3VyOgorKyAgICAgICAgICAgICBkYy5TZXRCcnVzaCh3eC5CcnVzaChm aWxsY29sb3VyLCBmaWxsc3R5bGUpKQorKyAgICAgICAgIGVsc2U6CisrQEAgLTYxOCw2ICs2MTgs NyBAQCBkZWYgX2NpcmNsZShzZWxmLCBkYywgY29vcmRzLCBzaXplPTEpOgorKyAgICAgICAgIGRj LkRyYXdFbGxpcHNlTGlzdChyZWN0LmFzdHlwZShucC5pbnQzMikpCisrIAorKyAgICAgZGVmIF9k b3Qoc2VsZiwgZGMsIGNvb3Jkcywgc2l6ZT0xKToKKysrICAgICAgICBjb29yZHMgPSBbKGludChj WzBdKSwgaW50KGNbMV0pKSBmb3IgYyBpbiBjb29yZHNdCisrICAgICAgICAgZGMuRHJhd1BvaW50 TGlzdChjb29yZHMpCisrIAorKyAgICAgZGVmIF9zcXVhcmUoc2VsZiwgZGMsIGNvb3Jkcywgc2l6 ZT0xKToKKytAQCAtNjk5LDcgKzcwMCw3IEBAIGRlZiBzZXRfcGVuX2FuZF9icnVzaChzZWxmLCBk YywgcHJpbnRlclNjYWxlKToKKysgCisrICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UocGVuY29s b3VyLCB3eC5Db2xvdXIpOgorKyAgICAgICAgICAgICBwZW5jb2xvdXIgPSB3eC5Db2xvdXIocGVu Y29sb3VyKQorKy0gICAgICAgIHBlbiA9IHd4LlBlbihwZW5jb2xvdXIsIHBlbndpZHRoLCBwZW5z dHlsZSkKKysrICAgICAgICBwZW4gPSB3eC5QZW4ocGVuY29sb3VyLCBpbnQocGVud2lkdGgpLCBw ZW5zdHlsZSkKKysgICAgICAgICBwZW4uU2V0Q2FwKHd4LkNBUF9CVVRUKQorKyAKKysgICAgICAg ICBpZiBub3QgaXNpbnN0YW5jZShmaWxsY29sb3VyLCB3eC5Db2xvdXIpOgorK0BAIC03OTAsNiAr NzkxLDcgQEAgZGVmIGRyYXcoc2VsZiwgZGMsIHByaW50ZXJTY2FsZSwgY29vcmQ9Tm9uZSk6Cisr ICAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoZXJyX3N0ci5mb3JtYXQodHlwZShiYXJ3 aWR0aCkpKQorKyAKKysgICAgICAgICAgICAgcmVjdHMgPSBbc2VsZi5jYWxjX3JlY3QoeCwgeSwg dykgZm9yIHgsIHksIHcgaW4gcHRzXQorKysgICAgICAgICAgICByZWN0cyA9IFsoaW50KHJbMF0p LCBpbnQoclsxXSksIGludChyWzJdKSwgaW50KHJbM10pKSBmb3IgciBpbiByZWN0c10KKysgICAg ICAgICAgICAgZGMuRHJhd1JlY3RhbmdsZUxpc3QocmVjdHMpCisrICAgICAgICAgZWxzZToKKysg ICAgICAgICAgICAgZGMuRHJhd0xpbmVzKGNvb3JkKSAgIyBkcmF3IGxlZ2VuZCBsaW5lCisrQEAg LTg1OCw2ICs4NjAsOCBAQCBkZWYgZHJhdyhzZWxmLCBkYywgcHJpbnRlclNjYWxlLCBjb29yZD1O b25lKToKKysgICAgICAgICAgICAgcmVjdHMgPSBbc2VsZi5jYWxjX3JlY3QoeSwgbG93LCBoaWdo KQorKyAgICAgICAgICAgICAgICAgICAgICBmb3IgeSwgKGxvdywgaGlnaCkKKysgICAgICAgICAg ICAgICAgICAgICAgaW4gemlwKHNlbGYuaGlzdCwgc2VsZi5iaW5zKV0KKysrICAgICAgICAgICAg cmVjdHMgPSBbKGludChyWzBdKSwgaW50KHJbMV0pLCBpbnQoclsyXSksIGludChyWzNdKSkKKysr ICAgICAgICAgICAgICAgICAgICAgZm9yIHIgaW4gcmVjdHNdCisrIAorKyAgICAgICAgICAgICBk Yy5EcmF3UmVjdGFuZ2xlTGlzdChyZWN0cykKKysgICAgICAgICBlbHNlOgorK0BAIC0xMTE0LDEw ICsxMTE4LDEwIEBAIGRlZiBfZHJhd19pcXJfYm94KHNlbGYsIGRjLCBwcmludGVyU2NhbGUpOgor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY3VycmVudFNoaWZ0 KQorKyAKKysgICAgICAgICAjIHJlY3RhbmdsZXMgYXJlIGRyYXduIChsZWZ0LCB0b3AsIHdpZHRo LCBoZWlnaHQpIHNvIGFkanVzdAorKy0gICAgICAgIGlxcl9ib3ggPSBbaXFyX2JveFswXVswXSwg ICAgICAgICAgICAgICAgICAgIyBYIChsZWZ0KQorKy0gICAgICAgICAgICAgICAgICAgaXFyX2Jv eFswXVsxXSwgICAgICAgICAgICAgICAgICAgIyBZICh0b3ApCisrLSAgICAgICAgICAgICAgICAg ICBpcXJfYm94WzFdWzBdIC0gaXFyX2JveFswXVswXSwgICAjIFdpZHRoCisrLSAgICAgICAgICAg ICAgICAgICBpcXJfYm94WzFdWzFdIC0gaXFyX2JveFswXVsxXV0gICAjIEhlaWdodAorKysgICAg ICAgIGlxcl9ib3ggPSBbaW50KGlxcl9ib3hbMF1bMF0pLCAgICAgICAgICAgICAgICAgICAjIFgg KGxlZnQpCisrKyAgICAgICAgICAgICAgICAgICBpbnQoaXFyX2JveFswXVsxXSksICAgICAgICAg ICAgICAgICAgICMgWSAodG9wKQorKysgICAgICAgICAgICAgICAgICAgaW50KGlxcl9ib3hbMV1b MF0gLSBpcXJfYm94WzBdWzBdKSwgICAjIFdpZHRoCisrKyAgICAgICAgICAgICAgICAgICBpbnQo aXFyX2JveFsxXVsxXSAtIGlxcl9ib3hbMF1bMV0pXSAgICMgSGVpZ2h0CisrIAorKyAgICAgICAg IGJveF9wZW4gPSB3eC5QZW4od3guQkxBQ0ssIDMsIHd4LlBFTlNUWUxFX1NPTElEKQorKyAgICAg ICAgIGJveF9icnVzaCA9IHd4LkJydXNoKHd4LkdSRUVOLCB3eC5CUlVTSFNUWUxFX1NPTElEKQor K0BAIC0xNTAzLDcgKzE1MDcsNyBAQCBkZWYgT25QcmludFBhZ2Uoc2VsZiwgcGFnZSk6CisrICAg ICAgICAgc2VsZi5ncmFwaC5fc2V0U2l6ZShwbG90QXJlYVcsIHBsb3RBcmVhSCkKKysgCisrICAg ICAgICAgIyBTZXQgb2Zmc2V0IGFuZCBzY2FsZQorKy0gICAgICAgIGRjLlNldERldmljZU9yaWdp bihwaXhMZWZ0LCBwaXhUb3ApCisrKyAgICAgICAgZGMuU2V0RGV2aWNlT3JpZ2luKGludChwaXhM ZWZ0KSwgaW50KHBpeFRvcCkpCisrIAorKyAgICAgICAgICMgVGhpY2tlbiB1cCBwZW5zIGFuZCBp bmNyZWFzZSBtYXJrZXIgc2l6ZSBmb3IgcHJpbnRpbmcKKysgICAgICAgICByYXRpb1cgPSBmbG9h dChwbG90QXJlYVcpIC8gY2xpZW50RGNTaXplWzBdCisrZGlmZiAtLWdpdCBhL3d4L2xpYi9wb3B1 cGN0bC5weSBiL3d4L2xpYi9wb3B1cGN0bC5weQorK2luZGV4IDg4M2JlNWFlNS4uMjM2NTAxZjZk IDEwMDY0NAorKy0tLSBhL3d4L2xpYi9wb3B1cGN0bC5weQorKysrKyBiL3d4L2xpYi9wb3B1cGN0 bC5weQorK0BAIC0xMjQsNyArMTI0LDcgQEAgZGVmIERpc3BsYXkoc2VsZik6CisrICAgICAgICAg c2VsZlNpemUgPSBzZWxmLkdldFNpemUoKQorKyAgICAgICAgIHRjU2l6ZSA9IHNlbGYuY3RybC5H ZXRTaXplKCkKKysgCisrLSAgICAgICAgcG9zLnggLT0gKHNlbGZTaXplLndpZHRoIC0gdGNTaXpl LndpZHRoKSAvIDIKKysrICAgICAgICBwb3MueCAtPSAoc2VsZlNpemUud2lkdGggLSB0Y1NpemUu d2lkdGgpIC8vIDIKKysgICAgICAgICBpZiBwb3MueCArIHNlbGZTaXplLndpZHRoID4gZFNpemUu d2lkdGg6CisrICAgICAgICAgICAgIHBvcy54ID0gZFNpemUud2lkdGggLSBzZWxmU2l6ZS53aWR0 aAorKyAgICAgICAgIGlmIHBvcy54IDwgMDoKKytkaWZmIC0tZ2l0IGEvd3gvbGliL3Njcm9sbGVk cGFuZWwucHkgYi93eC9saWIvc2Nyb2xsZWRwYW5lbC5weQorK2luZGV4IGU0YzQ4MmFmOS4uMWY3 ODNlYTk3IDEwMDY0NAorKy0tLSBhL3d4L2xpYi9zY3JvbGxlZHBhbmVsLnB5CisrKysrIGIvd3gv bGliL3Njcm9sbGVkcGFuZWwucHkKKytAQCAtMjIyLDQgKzIyMiw0IEBAIGRlZiBTY3JvbGxDaGls ZEludG9WaWV3KHNlbGYsIGNoaWxkKToKKysgICAgICAgICAjIGlmIHdlIG5lZWQgdG8gYWRqdXN0 CisrICAgICAgICAgaWYgbmV3X3ZzX3ggIT0gLTEgb3IgbmV3X3ZzX3kgIT0gLTE6CisrICAgICAg ICAgICAgICNwcmludCgiJXM6ICglcywgJXMpIiAlIChzZWxmLkdldE5hbWUoKSwgbmV3X3ZzX3gs IG5ld192c195KSkKKystICAgICAgICAgICAgc2VsZi5TY3JvbGwobmV3X3ZzX3gsIG5ld192c195 KQorKysgICAgICAgICAgICBzZWxmLlNjcm9sbChpbnQobmV3X3ZzX3gpLCBpbnQobmV3X3ZzX3kp KQorK2RpZmYgLS1naXQgYS93eC9saWIvdGhyb2JiZXIucHkgYi93eC9saWIvdGhyb2JiZXIucHkK KytpbmRleCA5OTU0ZDZiMjcuLmVlOGM1MTIwOSAxMDA2NDQKKystLS0gYS93eC9saWIvdGhyb2Ji ZXIucHkKKysrKysgYi93eC9saWIvdGhyb2JiZXIucHkKKytAQCAtMjAwLDExICsyMDAsMTEgQEAg ZGVmIERyYXcoc2VsZiwgZGMpOgorKyAgICAgICAgICIiIgorKyAgICAgICAgIGRjLkRyYXdCaXRt YXAoc2VsZi5zdWJtYXBzW3NlbGYuc2VxdWVuY2Vbc2VsZi5jdXJyZW50XV0sIDAsIDAsIFRydWUp CisrICAgICAgICAgaWYgc2VsZi5vdmVybGF5IGFuZCBzZWxmLnNob3dPdmVybGF5OgorKy0gICAg ICAgICAgICBkYy5EcmF3Qml0bWFwKHNlbGYub3ZlcmxheSwgc2VsZi5vdmVybGF5WCwgc2VsZi5v dmVybGF5WSwgVHJ1ZSkKKysrICAgICAgICAgICAgZGMuRHJhd0JpdG1hcChzZWxmLm92ZXJsYXks IGludChzZWxmLm92ZXJsYXlYKSwgaW50KHNlbGYub3ZlcmxheVkpLCBUcnVlKQorKyAgICAgICAg IGlmIHNlbGYubGFiZWwgYW5kIHNlbGYuc2hvd0xhYmVsOgorKy0gICAgICAgICAgICBkYy5EcmF3 VGV4dChzZWxmLmxhYmVsLCBzZWxmLmxhYmVsWCwgc2VsZi5sYWJlbFkpCisrKyAgICAgICAgICAg IGRjLkRyYXdUZXh0KHNlbGYubGFiZWwsIGludChzZWxmLmxhYmVsWCksIGludChzZWxmLmxhYmVs WSkpCisrICAgICAgICAgICAgIGRjLlNldFRleHRGb3JlZ3JvdW5kKHd4LldISVRFKQorKy0gICAg ICAgICAgICBkYy5EcmF3VGV4dChzZWxmLmxhYmVsLCBzZWxmLmxhYmVsWC0xLCBzZWxmLmxhYmVs WS0xKQorKysgICAgICAgICAgICBkYy5EcmF3VGV4dChzZWxmLmxhYmVsLCBpbnQoc2VsZi5sYWJl bFgtMSksIGludChzZWxmLmxhYmVsWS0xKSkKKysgCisrIAorKyAgICAgZGVmIE9uUGFpbnQoc2Vs ZiwgZXZlbnQpOgorK2RpZmYgLS1naXQgYS93eC9saWIvdGlja2VyLnB5IGIvd3gvbGliL3RpY2tl ci5weQorK2luZGV4IDA0YWJmMGQ0NC4uNGU2ODRiNGNkIDEwMDY0NAorKy0tLSBhL3d4L2xpYi90 aWNrZXIucHkKKysrKysgYi93eC9saWIvdGlja2VyLnB5CisrQEAgLTg2LDcgKzg2LDcgQEAgZGVm IFN0b3Aoc2VsZik6CisrICAgICBkZWYgU3RhcnQoc2VsZik6CisrICAgICAgICAgIiIiU3RhcnRz IHRoZSB0ZXh0IG1vdmluZyIiIgorKyAgICAgICAgIGlmIG5vdCBzZWxmLnRpbWVyLklzUnVubmlu ZygpOgorKy0gICAgICAgICAgICBzZWxmLnRpbWVyLlN0YXJ0KDEwMDAgLyBzZWxmLl9mcHMpCisr KyAgICAgICAgICAgIHNlbGYudGltZXIuU3RhcnQoMTAwMCAvLyBzZWxmLl9mcHMpCisrIAorKyAK KysgICAgIGRlZiBJc1RpY2tpbmcoc2VsZik6CisrQEAgLTIwOCw3ICsyMDgsNyBAQCBkZWYgRHJh d1RleHQoc2VsZiwgZGMpOgorKyAgICAgICAgICAgICBvZmZ4ID0gc2VsZi5fb2Zmc2V0IC0gc2Vs Zi5fZXh0ZW50WzBdCisrICAgICAgICAgZWxzZToKKysgICAgICAgICAgICAgb2ZmeCA9IHNlbGYu R2V0U2l6ZSgpWzBdIC0gc2VsZi5fb2Zmc2V0CisrLSAgICAgICAgb2ZmeSA9IChzZWxmLkdldFNp emUoKVsxXSAtIHNlbGYuX2V4dGVudFsxXSkgLyAyICNjZW50ZXJlZCB2ZXJ0aWNhbGx5CisrKyAg ICAgICAgb2ZmeSA9IChzZWxmLkdldFNpemUoKVsxXSAtIHNlbGYuX2V4dGVudFsxXSkgLy8gMiAj Y2VudGVyZWQgdmVydGljYWxseQorKyAgICAgICAgIGRjLkRyYXdUZXh0KHNlbGYuX3RleHQsIG9m ZngsIG9mZnkpCisrIAorKyAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy93eFB5dGhvbjQvcGF0Y2hl cy8wMDAzLVB5dGhvbi0zLjEwLUFHVy1GbGF0Tm90ZWJvb2sucGF0Y2ggYi9zcmNwa2dzL3d4UHl0 aG9uNC9wYXRjaGVzLzAwMDMtUHl0aG9uLTMuMTAtQUdXLUZsYXROb3RlYm9vay5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjg4YzNjYTE4OTY0NwotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3Mvd3hQeXRob240L3BhdGNoZXMvMDAwMy1QeXRob24tMy4xMC1B R1ctRmxhdE5vdGVib29rLnBhdGNoCkBAIC0wLDAgKzEsNTcgQEAKK0Zyb20gMWQ1ZmQ3MmRmZjYz ZDYyZGQxOWI3N2U0ODlkNDExNTI0NWQ0ZDQ1MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy b206IFNjb3R0IFRhbGJlcnQgPHN3dEB0ZWNoaWUubmV0PgorRGF0ZTogRGVjIDI4IDIwMjEgMDI6 NTg6MTIgKzAwMDAKK1N1YmplY3Q6IEZpeCBtb3JlIFB5dGhvbiAzLjEwIGlzc3VlcyB3aXRoIEFH VyBGbGF0Tm90ZWJvb2sgKCMyMDM1NzkwKQorCisKKy0tLQorCitkaWZmIC0tZ2l0IGEvYWEzZGNh MGU0MGJkMDcwMWU4MmNlNDAyOTdhOTgyYjViODQ4NDRkYy5wYXRjaCBiL2FhM2RjYTBlNDBiZDA3 MDFlODJjZTQwMjk3YTk4MmI1Yjg0ODQ0ZGMucGF0Y2gKK25ldyBmaWxlIG1vZGUgMTAwNjQ0Citp bmRleCAwMDAwMDAwLi5lOGI3NGFjCistLS0gL2Rldi9udWxsCisrKysgYi9hYTNkY2EwZTQwYmQw NzAxZTgyY2U0MDI5N2E5ODJiNWI4NDg0NGRjLnBhdGNoCitAQCAtMCwwICsxLDQzIEBACisrRnJv bSBhYTNkY2EwZTQwYmQwNzAxZTgyY2U0MDI5N2E5ODJiNWI4NDg0NGRjIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQorK0Zyb206IFNjb3R0IFRhbGJlcnQgPHN3dEB0ZWNoaWUubmV0PgorK0RhdGU6 IE1vbiwgMjcgRGVjIDIwMjEgMTk6NDg6NTUgLTA1MDAKKytTdWJqZWN0OiBbUEFUQ0hdIEZpeCBh ZGRpdGlvbmFsIFB5dGhvbiAzLjEwIGlzc3VlcyB3aXRoIEFHVyBGbGF0Tm90ZWJvb2sKKysKKyst LS0KKysgd3gvbGliL2Fndy9mbGF0bm90ZWJvb2sucHkgfCAxNCArKysrKysrLS0tLS0tLQorKyAx IGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQorKworK2RpZmYg LS1naXQgYS93eC9saWIvYWd3L2ZsYXRub3RlYm9vay5weSBiL3d4L2xpYi9hZ3cvZmxhdG5vdGVi b29rLnB5CisraW5kZXggZDMzZjcxZDUxLi42MWJjNGVmYjMgMTAwNjQ0CisrLS0tIGEvd3gvbGli L2Fndy9mbGF0bm90ZWJvb2sucHkKKysrKysgYi93eC9saWIvYWd3L2ZsYXRub3RlYm9vay5weQor K0BAIC05MjUsMTQgKzkyNSwxNCBAQCBkZWYgRHJhd0J1dHRvbihkYywgcmVjdCwgZm9jdXMsIHVw cGVyVGFicyk6CisrIAorKyAgICAgaWYgZm9jdXM6CisrICAgICAgICAgaWYgdXBwZXJUYWJzOgor Ky0gICAgICAgICAgICBsZWZ0UHQgPSB3eC5Qb2ludChyZWN0LngsIHJlY3QueSArIChyZWN0Lmhl aWdodCAvIDEwKSo4KQorKy0gICAgICAgICAgICByaWdodFB0ID0gd3guUG9pbnQocmVjdC54ICsg cmVjdC53aWR0aCAtIDIsIHJlY3QueSArIChyZWN0LmhlaWdodCAvIDEwKSo4KQorKysgICAgICAg ICAgICBsZWZ0UHQgPSB3eC5Qb2ludChyZWN0LngsIGludChyZWN0LnkgKyAocmVjdC5oZWlnaHQg LyAxMCkqOCkpCisrKyAgICAgICAgICAgIHJpZ2h0UHQgPSB3eC5Qb2ludChyZWN0LnggKyByZWN0 LndpZHRoIC0gMiwgaW50KHJlY3QueSArIChyZWN0LmhlaWdodCAvIDEwKSo4KSkKKysgICAgICAg ICBlbHNlOgorKy0gICAgICAgICAgICBsZWZ0UHQgPSB3eC5Qb2ludChyZWN0LngsIHJlY3QueSAr IChyZWN0LmhlaWdodCAvIDEwKSo1KQorKy0gICAgICAgICAgICByaWdodFB0ID0gd3guUG9pbnQo cmVjdC54ICsgcmVjdC53aWR0aCAtIDIsIHJlY3QueSArIChyZWN0LmhlaWdodCAvIDEwKSo1KQor KysgICAgICAgICAgICBsZWZ0UHQgPSB3eC5Qb2ludChyZWN0LngsIGludChyZWN0LnkgKyAocmVj dC5oZWlnaHQgLyAxMCkqNSkpCisrKyAgICAgICAgICAgIHJpZ2h0UHQgPSB3eC5Qb2ludChyZWN0 LnggKyByZWN0LndpZHRoIC0gMiwgaW50KHJlY3QueSArIChyZWN0LmhlaWdodCAvIDEwKSo1KSkK KysgICAgIGVsc2U6CisrLSAgICAgICAgbGVmdFB0ID0gd3guUG9pbnQocmVjdC54LCByZWN0Lnkg KyAocmVjdC5oZWlnaHQgLyAyKSkKKystICAgICAgICByaWdodFB0ID0gd3guUG9pbnQocmVjdC54 ICsgcmVjdC53aWR0aCAtIDIsIHJlY3QueSArIChyZWN0LmhlaWdodCAvIDIpKQorKysgICAgICAg IGxlZnRQdCA9IHd4LlBvaW50KHJlY3QueCwgaW50KHJlY3QueSArIChyZWN0LmhlaWdodCAvIDIp KSkKKysrICAgICAgICByaWdodFB0ID0gd3guUG9pbnQocmVjdC54ICsgcmVjdC53aWR0aCAtIDIs IGludChyZWN0LnkgKyAocmVjdC5oZWlnaHQgLyAyKSkpCisrIAorKyAgICAgIyBEZWZpbmUgdGhl IHRvcCByZWdpb24KKysgICAgIHRvcCA9IHd4LlJlY3QocmVjdC5HZXRUb3BMZWZ0KCksIHJpZ2h0 UHQpCisrQEAgLTI3NjYsNyArMjc2Niw3IEBAIGRlZiBEcmF3VGFiKHNlbGYsIHBhZ2VDb250YWlu ZXIsIGRjLCBwb3N4LCB0YWJJZHgsIHRhYldpZHRoLCB0YWJIZWlnaHQsIGJ0blN0YXR1CisrICAg ICAgICAgaWYgcGFnZVRleHRDb2xvdXIgaXMgbm90IE5vbmU6CisrICAgICAgICAgICAgIGRjLlNl dFRleHRGb3JlZ3JvdW5kKHBhZ2VUZXh0Q29sb3VyKQorKyAKKystICAgICAgICBkYy5EcmF3VGV4 dChwYy5HZXRQYWdlVGV4dCh0YWJJZHgpLCBwb3N4ICsgdGV4dE9mZnNldCwgaW1hZ2VZQ29vcmQp CisrKyAgICAgICAgZGMuRHJhd1RleHQocGMuR2V0UGFnZVRleHQodGFiSWR4KSwgaW50KHBvc3gg KyB0ZXh0T2Zmc2V0KSwgaW1hZ2VZQ29vcmQpCisrIAorKyAgICAgICAgICMgZHJhdyAneCcgb24g dGFiIChpZiBlbmFibGVkKQorKyAgICAgICAgIGlmIHBjLkhhc0FHV0ZsYWcoRk5CX1hfT05fVEFC KSBhbmQgdGFiSWR4ID09IHBjLkdldFNlbGVjdGlvbigpOgpkaWZmIC0tZ2l0IGEvc3JjcGtncy93 eFB5dGhvbjQvcGF0Y2hlcy9yZXN0b3JlLWdpbC1wc2V1ZG9kYy5wYXRjaCBiL3NyY3BrZ3Mvd3hQ eXRob240L3BhdGNoZXMvcmVzdG9yZS1naWwtcHNldWRvZGMucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi42ZjIxZWNiN2E3MTgKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL3d4UHl0aG9uNC9wYXRjaGVzL3Jlc3RvcmUtZ2lsLXBzZXVkb2RjLnBhdGNoCkBA IC0wLDAgKzEsNTIgQEAKK0JhY2twb3J0IGh0dHBzOi8vZ2l0aHViLmNvbS93eFdpZGdldHMvUGhv ZW5peC9wdWxsLzE4NDkKK1JlZ2FyZGluZyBzZWdmYXVsdCBhcyBpbiBodHRwczovL2dpdGh1Yi5j b20vT1NHZW8vZ3Jhc3MvaXNzdWVzLzExMjMKKworRnJvbSA1Y2FjZTQ3YWFlY2UzY2M0ZjJlNmVh OTdkN2ZkNWJiOGVkMzE2YWM5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogUm9iaW4g RHVubiA8cm9iaW5AYWxsZHVubi5jb20+CitEYXRlOiBXZWQsIDE4IE5vdiAyMDIwIDEwOjUyOjUz IC0wODAwCitTdWJqZWN0OiBbUEFUQ0hdIFJlc3RvcmUgR0lMIGFjcXVpc2l0aW9uIGluIHd4UHNl dWRvREM6OkZpbmRPYmplY3RzKgorCistLS0KKyBzcmMvcHNldWRvZGMuY3BwIHwgOCArKystLS0t LQorIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCisKK2Rp ZmYgLS1naXQgYS9zcmMvcHNldWRvZGMuY3BwIGIvc3JjL3BzZXVkb2RjLmNwcAoraW5kZXggNTg5 MGVkN2UyLi5lZDRiY2QwNmEgMTAwNjQ0CistLS0gYS9zcmMvcHNldWRvZGMuY3BwCisrKysgYi9z cmMvcHNldWRvZGMuY3BwCitAQCAtNDgzLDcgKzQ4Myw3IEBAIGJvb2wgd3hQc2V1ZG9EQzo6R2V0 SWRHcmV5ZWRPdXQoaW50IGlkKQorIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBQeU9iamVjdCAq d3hQc2V1ZG9EQzo6RmluZE9iamVjdHNCeUJCb3god3hDb29yZCB4LCB3eENvb3JkIHkpCisgewor LSAgICAvL3d4UHlCbG9ja190IGJsb2NrZWQgPSB3eFB5QmVnaW5CbG9ja1RocmVhZHMoKTsKKysg ICAgd3hQeVRocmVhZEJsb2NrZXIgYmxvY2tlcjsKKyAgICAgcGRjT2JqZWN0TGlzdDo6Y29tcGF0 aWJpbGl0eV9pdGVyYXRvciBwdCA9IG1fb2JqZWN0bGlzdC5HZXRGaXJzdCgpOworICAgICBwZGNP YmplY3QgKm9iajsKKyAgICAgUHlPYmplY3QqIHB5TGlzdCA9IE5VTEw7CitAQCAtNTAxLDcgKzUw MSw2IEBAIFB5T2JqZWN0ICp3eFBzZXVkb0RDOjpGaW5kT2JqZWN0c0J5QkJveCh3eENvb3JkIHgs IHd4Q29vcmQgeSkKKyAgICAgICAgIH0KKyAgICAgICAgIHB0ID0gcHQtPkdldE5leHQoKTsKKyAg ICAgfQorLSAgICAvL3d4UHlFbmRCbG9ja1RocmVhZHMoYmxvY2tlZCk7CisgICAgIHJldHVybiBw eUxpc3Q7CisgfQorIAorQEAgLTUxMSw3ICs1MTAsNyBAQCBQeU9iamVjdCAqd3hQc2V1ZG9EQzo6 RmluZE9iamVjdHNCeUJCb3god3hDb29yZCB4LCB3eENvb3JkIHkpCisgUHlPYmplY3QgKnd4UHNl dWRvREM6OkZpbmRPYmplY3RzKHd4Q29vcmQgeCwgd3hDb29yZCB5LAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB3eENvb3JkIHJhZGl1cywgY29uc3Qgd3hDb2xvciYgYmcpCisg eworLSAgICAvL3d4UHlCbG9ja190IGJsb2NrZWQgPSB3eFB5QmVnaW5CbG9ja1RocmVhZHMoKTsK KysgICAgd3hQeVRocmVhZEJsb2NrZXIgYmxvY2tlcjsKKyAgICAgcGRjT2JqZWN0TGlzdDo6Y29t cGF0aWJpbGl0eV9pdGVyYXRvciBwdCA9IG1fb2JqZWN0bGlzdC5HZXRGaXJzdCgpOworICAgICBw ZGNPYmplY3QgKm9iajsKKyAgICAgUHlPYmplY3QqIHB5TGlzdCA9IE5VTEw7CitAQCAtNjExLDgg KzYxMCw3IEBAIFB5T2JqZWN0ICp3eFBzZXVkb0RDOjpGaW5kT2JqZWN0cyh3eENvb3JkIHgsIHd4 Q29vcmQgeSwKKyAgICAgICAgIG1hc2tkYy5TZWxlY3RPYmplY3Qod3hOdWxsQml0bWFwKTsKKyAg ICAgICAgIG1lbWRjLlNlbGVjdE9iamVjdCh3eE51bGxCaXRtYXApOworICAgICB9CistICAgIC8v d3hQeUVuZEJsb2NrVGhyZWFkcyhibG9ja2VkKTsKKy0gICAgcmV0dXJuIHB5TGlzdDsKKysgICAg IHJldHVybiBweUxpc3Q7CisgfQorIAorIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdp dCBhL3NyY3BrZ3Mvd3hQeXRob240L3RlbXBsYXRlIGIvc3JjcGtncy93eFB5dGhvbjQvdGVtcGxh dGUKaW5kZXggNTU0MTc0MTA1YTM2Li5hZmVhMWI1NWJmOTAgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv d3hQeXRob240L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvd3hQeXRob240L3RlbXBsYXRlCkBAIC0x LDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnd3hQeXRob240JwogcGtnbmFtZT13eFB5 dGhvbjQKIHZlcnNpb249NC4wLjcKLXJldmlzaW9uPTQKK3JldmlzaW9uPTUKIHdya3NyYz0id3hQ eXRob24tJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPXB5dGhvbjMtbW9kdWxlCiBtYWtlX2J1aWxk X2FyZ3M9Ii0tc2tpcC1idWlsZCIKQEAgLTEwLDYgKzEwLDcgQEAgaG9zdG1ha2VkZXBlbmRzPSJw a2ctY29uZmlnIHB5dGhvbjMtc2V0dXB0b29scyBweXRob24zLXBhdGhsaWIyIgogbWFrZWRlcGVu ZHM9InB5dGhvbjMtZGV2ZWwgd3hXaWRnZXRzLWd0azMtZGV2ZWwgU0RMMi1kZXZlbCB3ZWJraXQy Z3RrLWRldmVsCiAgZ3N0LXBsdWdpbnMtYmFzZTEtZGV2ZWwiCiBkZXBlbmRzPSJweXRob24zIHB5 dGhvbjMtc2l4IHB5dGhvbjMtbnVtcHkgcHl0aG9uMy1QaWxsb3ciCitjaGVja2RlcGVuZHM9InB5 dGhvbjMtc2l4IHB5dGhvbjMtbnVtcHkgcHl0aG9uMy1QaWxsb3ciCiBzaG9ydF9kZXNjPSJXeFdp ZGdldHMgR1VJIHRvb2xraXQgbGlicmFyeSAoUHl0aG9uMyBCaW5kaW5ncykiCiBtYWludGFpbmVy PSJKYXNwZXIgQ2hhbiA8amFzcGVyY2hhbjUxNUBnbWFpbC5jb20+IgogbGljZW5zZT0iY3VzdG9t Ond4V2luZG93cyIKCkZyb20gNTVlMmI5NzBmNzExNjczNzQwYjhiYWIxMWExMTBiN2MxYmRiODIx OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQXJqYW4gTW9zc2VsIDxhcmphbm1vc3Nl bEBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMTQgRmViIDIwMjIgMjE6NTY6MDMgKzAxMDAKU3ViamVj dDogW1BBVENIIDEwLzE3XSBncmFzczogdXBkYXRlIHRvIDcuOC43UkMxOyByZWJ1aWxkIGFnYWlu c3QgbGliZ2RhbCBhbmQKIHByb2oKClZlcnNpb24gNy44LjdSQzEgaW5jbHVkZXMgYSB3b3JrYXJv dW5kIGZvciBhIHd4UHl0aG9uIGlzc3VlCmh0dHBzOi8vZ2l0aHViLmNvbS9PU0dlby9ncmFzcy9p c3N1ZXMvMTk3MSNpc3N1ZWNvbW1lbnQtOTkzNjIyNjEzCi0tLQogc3JjcGtncy9ncmFzcy9wYXRj aGVzL211c2wtYnVpbGQtZml4LnBhdGNoIHwgIDEzICsrKwogc3JjcGtncy9ncmFzcy90ZW1wbGF0 ZSAgICAgICAgICAgICAgICAgICAgIHwgMTI4ICsrKysrKysrKysrKysrKysrLS0tLQogMiBmaWxl cyBjaGFuZ2VkLCAxMjAgaW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9ncmFzcy9wYXRjaGVzL211c2wtYnVpbGQtZml4LnBhdGNoCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9ncmFzcy9wYXRjaGVzL211c2wtYnVpbGQtZml4LnBhdGNoIGIvc3Jj cGtncy9ncmFzcy9wYXRjaGVzL211c2wtYnVpbGQtZml4LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMzY0ZWUzMGJlNGQ5Ci0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9ncmFzcy9wYXRjaGVzL211c2wtYnVpbGQtZml4LnBhdGNoCkBAIC0wLDAgKzEsMTMg QEAKK2Vycm9yOiB1bmtub3duIHR5cGUgbmFtZSAnaW50NjRfdCcgcGF0Y2ggZm9yIG11c2wKKwor ZGlmZiAtLWdpdCBhL2luY2x1ZGUvZ2lzLmggYi9pbmNsdWRlL2dpcy5oCistLS0gYS9pbmNsdWRl L2dpcy5oCisrKysgYi9pbmNsdWRlL2dpcy5oCitAQCAtMjQsNiArMjQsNyBAQAorICNpbmNsdWRl IDxzdGRpby5oPgorICNpbmNsdWRlIDxzdGRhcmcuaD4KKyAjaW5jbHVkZSA8c3RkYm9vbC5oPgor KyNpbmNsdWRlIDxzdGRpbnQuaD4KKyAKKyAKKyAvKiBHcmFzcyBhbmQgbG9jYWwgaW5jbHVkZSBm aWxlcyAqLwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9ncmFzcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ3Jh c3MvdGVtcGxhdGUKaW5kZXggYmNjZDY5MWE4MTE2Li4xNjdmYWE0MDEzODUgMTAwNjQ0Ci0tLSBh L3NyY3BrZ3MvZ3Jhc3MvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9ncmFzcy90ZW1wbGF0ZQpAQCAt MSwzMCArMSwxMTYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dyYXNzJwogcGtnbmFtZT1ncmFz cwotdmVyc2lvbj03LjYuMQotcmV2aXNpb249NAotX2JpbnZlcj0ke3ZlcnNpb24vLy4vfQotX2Jp bnZlcj0ke19iaW52ZXI6MDoyfQordmVyc2lvbj03LjguN1JDMQorcmV2aXNpb249MQorX2JpbnZl cnNpb249JHt2ZXJzaW9uLy8uL30KK19iaW52ZXJzaW9uPSR7X2JpbnZlcnNpb246MDoyfQogYnVp bGRfc3R5bGU9Z251LWNvbmZpZ3VyZQotY29uZmlndXJlX2FyZ3M9Ii0tcHJlZml4PVwke0RFU1RE SVJ9L3Vzci9zaGFyZSAtLWJpbmRpcj1cJHtERVNURElSfS91c3IvYmluCi0gLS13aXRoLWZyZWV0 eXBlLWluY2x1ZGVzPSR7WEJQU19DUk9TU19CQVNFfS91c3IvaW5jbHVkZS9mcmVldHlwZTIiCi1o b3N0bWFrZWRlcGVuZHM9ImZsZXggbGliZ2RhbC10b29scyBwa2ctY29uZmlnIHB5dGhvbi1udW1w eSB0YXIiCi1tYWtlZGVwZW5kcz0icHJvai1kZXZlbCB0aWZmLWRldmVsIGxpYmdkYWwtZGV2ZWwg c3FsaXRlLWRldmVsCi0gZmZ0dy1kZXZlbCBjYWlyby1kZXZlbCBnbHUtZGV2ZWwgd3hQeXRob24t ZGV2ZWwiCi1kZXBlbmRzPSJweXRob24tbnVtcHkgd3hQeXRob24iCi1zaG9ydF9kZXNjPSJHZW9n cmFwaGljIFJlc291cmNlcyBBbmFseXNpcyBTdXBwb3J0IFN5c3RlbSAtIEdJUyIKLW1haW50YWlu ZXI9IkFsZXggSmFyb3NjaCA8cmVzZWFyY2hAYWxleGouYXQ+IgorY29uZmlndXJlX2FyZ3M9Ii0t cHJlZml4PS91c3IvbGliCisgLS1iaW5kaXI9L3Vzci9iaW4KKyAtLWxpYmRpcj0vdXNyL2xpYgor IC0tbGliZXhlYz0vdXNyL2xpYmV4ZWMKKyAtLWVuYWJsZS1sYXJnZWZpbGUKKyAtLXdpdGgtYmxh cworIC0td2l0aC1ibGFzLWluY2x1ZGVzPS91c3IvaW5jbHVkZQorIC0td2l0aC1iemlwMgorIC0t d2l0aC1iemxpYgorIC0td2l0aC1jYWlybworIC0td2l0aC1jeHgKKyAtLXdpdGgtZnJlZXR5cGUK KyAtLXdpdGgtZnJlZXR5cGUtaW5jbHVkZXM9L3Vzci9pbmNsdWRlL2ZyZWV0eXBlMgorIC0td2l0 aC1nZGFsCisgLS13aXRoLWdlb3MKKyAtLXdpdGgtZ2x3CisgLS13aXRoLWxhcGFjaworIC0td2l0 aC1sYXBhY2staW5jbHVkZXM9L3Vzci9pbmNsdWRlCisgLS13aXRoLW15c3FsCisgLS13aXRoLW15 c3FsLWluY2x1ZGVzPS91c3IvaW5jbHVkZS9teXNxbAorIC0td2l0aC1uZXRjZGY9L3Vzci9iaW4v bmMtY29uZmlnCisgLS13aXRoLW5scworIC0td2l0aC1vcGVubXAKKyAtLXdpdGgtcG9zdGdyZXMK KyAtLXdpdGgtcG9zdGdyZXMtaW5jbHVkZXM9L3Vzci9pbmNsdWRlL3Bvc3RncmVzcWwKKyAtLXdp dGgtcG9zdGdyZXMtbGlicz0vdXNyL2xpYi9wc3FsMTQvbGliL3Bvc3RncmVzcWwKKyAtLXdpdGgt cHJvagorIC0td2l0aC1wcm9qLXNoYXJlPS91c3Ivc2hhcmUKKyAtLXdpdGgtcHRocmVhZAorIC0t d2l0aC1weXRob249L3Vzci9iaW4vcHl0aG9uMy1jb25maWcKKyAtLXdpdGgtcmVhZGxpbmUKKyAt LXdpdGgtcmVnZXgKKyAtLXdpdGgtc3FsaXRlCisgLS13aXRoLXd4d2lkZ2V0cyIKK2hvc3RtYWtl ZGVwZW5kcz0iZmxleAorIGdldHRleHQKKyBsaWJnZGFsLXRvb2xzCisgcGtnLWNvbmZpZworIHB5 dGhvbjMtbnVtcHkKKyBweXRob24zLXNpeAorIHRhciIKK21ha2VkZXBlbmRzPSJiaXNvbgorIGJs YXMtZGV2ZWwKKyBiemlwMi1kZXZlbAorIGNhaXJvLWRldmVsCisgZmZ0dy1kZXZlbAorIGZyZWV0 eXBlLWRldmVsCisgZ2Vvcy1kZXZlbAorIGdldHRleHQtZGV2ZWwKKyBnbHUtZGV2ZWwKKyBsYXBh Y2stZGV2ZWwKKyBsaWJnZGFsLWRldmVsCisgbGliZ29tcC1kZXZlbAorIGxpYm15c3FsY2xpZW50 LWRldmVsCisgbGlicG5nLWRldmVsCisgbGlienN0ZC1kZXZlbAorIG5ldGNkZi1kZXZlbAorIHBv c3RncmVzcWwtbGlicy1kZXZlbAorIHByb2otZGV2ZWwKKyBweXRob24zLWRldmVsCisgcHl0aG9u My1QaWxsb3cKKyBweXRob24zLXNpeAorIHJlYWRsaW5lLWRldmVsCisgc3FsaXRlLWRldmVsCisg dGlmZi1kZXZlbAorIHpsaWItZGV2ZWwiCitkZXBlbmRzPSJsaWJnZGFsIHB5dGhvbjMtbnVtcHkg d3hQeXRob240Igorc2hvcnRfZGVzYz0iR2VvZ3JhcGhpYyBSZXNvdXJjZXMgQW5hbHlzaXMgU3Vw cG9ydCBTeXN0ZW0iCittYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+ IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL2dyYXNzLm9z Z2VvLm9yZy8iCi1kaXN0ZmlsZXM9Imh0dHBzOi8vZ3Jhc3Mub3NnZW8ub3JnL2dyYXNzJHtfYmlu dmVyfS9zb3VyY2UvJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci5neiIKLWNoZWNrc3VtPTllMjVj OTljYWZkMTZlZDhmNWUyZGNhNzViNWExMGRjMmFmMDU2OGRiZWRmM2ZjMzlmMWM1YTBhOWM4NDBi MGIKLXB5dGhvbl92ZXJzaW9uPTIgI3VudmVyaWZpZWQKK2Rpc3RmaWxlcz0iaHR0cHM6Ly9naXRo dWIuY29tL09TR2VvL2dyYXNzL2FyY2hpdmUvJHt2ZXJzaW9ufS50YXIuZ3oiCitjaGVja3N1bT1m YTFkNmNjYzFmZGU0Y2JlYTBiZTA5NTI1NjcyOTQyMWM0MWMxYTEyYmY2MjFmZTEyNGQwZDJjOGU4 MjZkZTZhCiBub2Nyb3NzPSJ0cmllcyB0byBleGVjdXRlIHRhcmdldCBiaW5hcmllcyIKIAorc2hs aWJfcHJvdmlkZXM9IgorIGxpYmdyYXNzX2RibWliYXNlLiR7dmVyc2lvbiUuKn0uc28KKyBsaWJn cmFzc19kYm1pY2xpZW50LiR7dmVyc2lvbiUuKn0uc28KKyBsaWJncmFzc19naXMuJHt2ZXJzaW9u JS4qfS5zbworIGxpYmdyYXNzX2dwcm9qLiR7dmVyc2lvbiUuKn0uc28KKyBsaWJncmFzc19pbWFn ZXJ5LiR7dmVyc2lvbiUuKn0uc28KKyBsaWJncmFzc19yYXN0ZXIuJHt2ZXJzaW9uJS4qfS5zbwor IGxpYmdyYXNzX3ZlY3Rvci4ke3ZlcnNpb24lLip9LnNvIgorCiBwb3N0X2luc3RhbGwoKSB7Ci0J IyBtb3ZlIGdyYXNzNzYgbGlicmFyaWVzIGZyb20gL3Vzci9zaGFyZSB0byAvdXNyL2xpYgotCXZt a2RpciB1c3IvbGliCi0JbXYgJHtERVNURElSfS91c3Ivc2hhcmUvZ3Jhc3MqICR7REVTVERJUn0v dXNyL2xpYgotCSMgZml4ZXMgYSB0b2RvIGluIEdJU0JBU0UKLQlzZWQgLWkgJHtERVNURElSfS91 c3IvYmluL2dyYXNzJHtfYmludmVyfSBcCi0JCS1lICIxMDVzO1woZ2lzYmFzZSA9XCkuKjtcMSBc Ii91c3IvbGliL2dyYXNzLSR7dmVyc2lvbn1cIjsiCisJIyByZW1vdmUgJERFU1RESVIgaW4gcGF0 aHMKKwl2c2VkIC1pIC1lICJzfCR7REVTVERJUn18fCIgXAorCQkke0RFU1RESVJ9L3Vzci9iaW4v Z3Jhc3M3OCBcCisJCSR7REVTVERJUn0vdXNyL2xpYi9ncmFzczc4L2V0Yy9mb250Y2FwIFwKKwkJ JHtERVNURElSfS91c3IvbGliL2dyYXNzNzgvZGVtb2xvY2F0aW9uLy5ncmFzc3JjNzggXAorCQkk e0RFU1RESVJ9L3Vzci9saWIvZ3Jhc3M3OC9pbmNsdWRlL01ha2UvUGxhdGZvcm0ubWFrZSBcCisJ CSR7REVTVERJUn0vdXNyL2xpYi9ncmFzczc4L2luY2x1ZGUvTWFrZS9HcmFzcy5tYWtlCisKKwkj IGxkLnNvLmNvbmYKKwlta2RpciAtcCAke0RFU1RESVJ9L2V0Yy9sZC5zby5jb25mLmQKKwllY2hv ICIvdXNyL2xpYi9ncmFzcyR7X2JpbnZlcnNpb259L2xpYiIgPiR7REVTVERJUn0vZXRjL2xkLnNv LmNvbmYuZC9ncmFzcyR7X2JpbnZlcnNpb259LmNvbmYKKwkjIHByb2ZpbGVzCisJbWtkaXIgLXAg JHtERVNURElSfS9ldGMvcHJvZmlsZS5kCisJZWNobyAnZXhwb3J0IFBBVEg9Ii91c3IvbGliL2dy YXNzJyR7X2JpbnZlcnNpb259Jy9iaW46JFBBVEgiJyA+JHtERVNURElSfS9ldGMvcHJvZmlsZS5k L2dyYXNzJHtfYmludmVyc2lvbn0uc2gKKworCXZpbnN0YWxsIGdyYXNzLnBjIDY0NCB1c3Ivc2hh cmUvcGtnY29uZmlnCisJdmluc3RhbGwgZ3VpL2ljb25zL2dyYXNzLmRlc2t0b3AgNjQ0IHVzci9z aGFyZS9hcHBsaWNhdGlvbnMKKworCWxvY2FsIGljb24gcmVzCisJZm9yIGljb24gaW4gZ3VpL2lj b25zL2dyYXNzLVswLTldKnhbMC05XSoucG5nOyBkbworCQlyZXM9JChlY2hvICRpY29uIHxzZWQg LUUgLWUgJ3N8LiotKFswLTldK3hbMC05XSspLnBuZ3xcMXwnKQorCQl2aW5zdGFsbCAkaWNvbiAw NjQ0IC91c3Ivc2hhcmUvaWNvbnMvaGljb2xvci8kcmVzL2FwcHMgZ3Jhc3MucG5nCisJZG9uZQog fQoKRnJvbSA1MTg4NTUzNDdiOGMzNDliZDc4NWQzYTA5ZjIxODdkZGJjYjYyZTE1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBcmphbiBNb3NzZWwgPGFyamFubW9zc2VsQGdtYWlsLmNv bT4KRGF0ZTogU3VuLCAyNyBKdW4gMjAyMSAyMjoxODo0NiArMDIwMApTdWJqZWN0OiBbUEFUQ0gg MTEvMTddIG1lcmthYXJ0b3I6IHJlYnVpbGQgYWdhaW5zdCBsaWJnZGFsLTMuNC4xIGFuZAogcHJv ai03LjIuMQoKLS0tCiBzcmNwa2dzL21lcmthYXJ0b3IvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUg Y2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNw a2dzL21lcmthYXJ0b3IvdGVtcGxhdGUgYi9zcmNwa2dzL21lcmthYXJ0b3IvdGVtcGxhdGUKaW5k ZXggY2ZmY2ZiYTFjZjAxLi42NjAzMzc2MTExZjIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbWVya2Fh cnRvci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL21lcmthYXJ0b3IvdGVtcGxhdGUKQEAgLTEsNyAr MSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdtZXJrYWFydG9yJwogcGtnbmFtZT1tZXJrYWFy dG9yCiB2ZXJzaW9uPTAuMTkuMAotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9 cW1ha2UKIGNvbmZpZ3VyZV9hcmdzPSJTWVNURU1fUVVBWklQPTEgU1lTVEVNX1FVQVpJUF9MREZM QUdTPS1scXVhemlwNSIKIGhvc3RtYWtlZGVwZW5kcz0icXQ1LXFtYWtlIGxpYmdkYWwtdG9vbHMg cXQ1LWhvc3QtdG9vbHMiCgpGcm9tIDQwYWFlNjYyYjBiNTAyMTBkNjBlOTVmNjUxYzUxYmIyOGNh OTQ1NjUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFyamFuIE1vc3NlbCA8YXJqYW5t b3NzZWxAZ21haWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1biAyMDIxIDAwOjIxOjI3ICswMjAwClN1 YmplY3Q6IFtQQVRDSCAxMi8xN10gT3Blbk9yaWVudGVlcmluZy1NYXBwZXI6IHJlYnVpbGQgYWdh aW5zdCBsaWJnZGFsLTMuNC4xCiBhbmQgcHJvai03LjIuMQoKLS0tCiBzcmNwa2dzL09wZW5Pcmll bnRlZXJpbmctTWFwcGVyL3RlbXBsYXRlIHwgMTEgKysrKysrKysrLS0KIDEgZmlsZSBjaGFuZ2Vk LCA5IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9P cGVuT3JpZW50ZWVyaW5nLU1hcHBlci90ZW1wbGF0ZSBiL3NyY3BrZ3MvT3Blbk9yaWVudGVlcmlu Zy1NYXBwZXIvdGVtcGxhdGUKaW5kZXggZmQyOWEwOGU3NWI2Li42YTY1MmE2YTdiOTcgMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3MvT3Blbk9yaWVudGVlcmluZy1NYXBwZXIvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9PcGVuT3JpZW50ZWVyaW5nLU1hcHBlci90ZW1wbGF0ZQpAQCAtMSwxNCArMSwxNSBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAnT3Blbk9yaWVudGVlcmluZy1NYXBwZXInCiBwa2duYW1lPU9w ZW5PcmllbnRlZXJpbmctTWFwcGVyCiB2ZXJzaW9uPTAuOS41Ci1yZXZpc2lvbj0xCityZXZpc2lv bj0yCiB3cmtzcmM9Im1hcHBlci0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9Y21ha2UKIGhvc3Rt YWtlZGVwZW5kcz0iZG94eWdlbiBxdDUtaG9zdC10b29scyBxdDUtcGx1Z2luLXNxbGl0ZSBxdDUt cW1ha2UgcXQ1LXRvb2xzIgogbWFrZWRlcGVuZHM9InF0NS1kZXZlbCBjbGlwcGVyLWRldmVsIHBy b2otZGV2ZWwgemxpYi1kZXZlbCBsaWJnZGFsLWRldmVsCiAgcXQ1LXRvb2xzLWRldmVsIHNxbGl0 ZS1kZXZlbCBjdXBzLWRldmVsICQodm9wdF9pZiBsb2NhdGlvbiBxdDUtbG9jYXRpb24tZGV2ZWwp CiAgJCh2b3B0X2lmIHNlbnNvcnMgcXQ1LXNlbnNvcnMtZGV2ZWwpCi0gcXQ1LXBsdWdpbi1teXNx bCBxdDUtcGx1Z2luLW9kYmMgcXQ1LXBsdWdpbi1wZ3NxbCBxdDUtcGx1Z2luLXNxbGl0ZSBxdDUt cGx1Z2luLXRkcyIKKyBxdDUtcGx1Z2luLW15c3FsIHF0NS1wbHVnaW4tb2RiYyBxdDUtcGx1Z2lu LXBnc3FsIHF0NS1wbHVnaW4tc3FsaXRlIHF0NS1wbHVnaW4tdGRzCisgdGlmZi1kZXZlbCBsaWJj dXJsLWRldmVsIgogc2hvcnRfZGVzYz0iT3JpZW50ZWVyaW5nIG1hcG1ha2luZyBwcm9ncmFtIgog bWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IkdQTC0zLjAt b3ItbGF0ZXIiCkBAIC0xOCwzICsxOSw5IEBAIGNoZWNrc3VtPTYxOTE1MmNhMDFhMzcwODc1YzE1 ZTE5MzA5MThjZTk2MTI4NGNjYmY1ZDIzNzFjMTQ3ZDUwY2FmNWU1YzJmMDAKIAogYnVpbGRfb3B0 aW9ucz0ibG9jYXRpb24gc2Vuc29ycyIKIGJ1aWxkX29wdGlvbnNfZGVmYXVsdD0ibG9jYXRpb24g c2Vuc29ycyIKKworZG9fY2hlY2soKSB7CisgICAgIyBzZW5zb3JzX3QgdGVzdCBmYWlscyBvbiB0 ZXN0IHJ1bm5lcgorCWNkIGJ1aWxkCisJY3Rlc3QgLUUgJ3NlbnNvcnNfdCcKK30KCkZyb20gOTg4 NmZjOTc2MmNjMDk1Njk2YjcxMGY0NjEzMWY4MmE4YzFiMmJjMCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogQXJqYW4gTW9zc2VsIDxhcmphbm1vc3NlbEBnbWFpbC5jb20+CkRhdGU6IFR1 ZSwgMjkgSnVuIDIwMjEgMDA6Mzg6MzUgKzAyMDAKU3ViamVjdDogW1BBVENIIDEzLzE3XSBvc2c6 IHJlYnVpbGQgYWdhaW5zdCBsaWJnZGFsLTMuNC4xLCBmaXggbGljZW5zZQoKLS0tCiBzcmNwa2dz L29zZy90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL29zZy90ZW1wbGF0ZSBiL3NyY3Br Z3Mvb3NnL3RlbXBsYXRlCmluZGV4IDA4YmY2ZDRiNjU5MS4uZjUxNTM1YzU3MTlkIDEwMDY0NAot LS0gYS9zcmNwa2dzL29zZy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL29zZy90ZW1wbGF0ZQpAQCAt Miw3ICsyLDcgQEAKIHBrZ25hbWU9b3NnCiByZXZlcnRzPTMuNi4wXzEKIHZlcnNpb249My40LjEK LXJldmlzaW9uPTEyCityZXZpc2lvbj0xMwogd3Jrc3JjPU9wZW5TY2VuZUdyYXBoLU9wZW5TY2Vu ZUdyYXBoLSR7dmVyc2lvbn0KIGJ1aWxkX3N0eWxlPWNtYWtlCiBidWlsZF9oZWxwZXI9InFlbXUi CkBAIC0xOSw3ICsxOSw3IEBAIG1ha2VkZXBlbmRzPSJNZXNhTGliLWRldmVsIGd0a2dsZXh0LWRl dmVsIGxpYmN1cmwtZGV2ZWwgZ2lmbGliLWRldmVsIGxpYnJzdmctZGV2CiBkZXBlbmRzPSJ4cmFu ZHIiCiBzaG9ydF9kZXNjPSJPcGVuU2NlbmVHcmFwaDogaGlnaCBwZXJmb3JtYW5jZSByZWFsLXRp bWUgZ3JhcGhpY3MgdG9vbGtpdCIKIG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxp bnV4Lm9yZz4iCi1saWNlbnNlPSJPU0dQTC0yLjAtb3ItbGF0ZXIiCitsaWNlbnNlPSJjdXN0b206 T3BlblNjZW5lR3JhcGgtUHVibGljLUxpY2Vuc2UtMC4wIgogaG9tZXBhZ2U9Imh0dHA6Ly93d3cu b3BlbnNjZW5lZ3JhcGgub3JnIgogZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vb3BlbnNj ZW5lZ3JhcGgvT3BlblNjZW5lR3JhcGgvYXJjaGl2ZS9PcGVuU2NlbmVHcmFwaC0ke3ZlcnNpb259 LnRhci5neiIKIGNoZWNrc3VtPTkzMGViNDZmMDU3ODFhNzY4ODNlYzE2YzVmNDljZmIyOWEwNTk0 MjFkYjEzMTAwNWQ3NWJlYzRkNzg0MDFmZDUKCkZyb20gZTUzMTM2Mzk4ZmJiMjQ5YmFiZGY5NTVl NzQwNjBhYzA5YWM2YzA2ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQXJqYW4gTW9z c2VsIDxhcmphbm1vc3NlbEBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMjkgSnVuIDIwMjEgMTc6MzU6 NDcgKzAyMDAKU3ViamVjdDogW1BBVENIIDE0LzE3XSBzdW1vOiB1cGRhdGUgdG8gMS45LjI7IHJl YnVpbGQgYWdhaW5zdCBsaWJnZGFsLTMuNC4xCiBhbmQgcHJvai03LjIuMQoKLSBCdWlsZCBUcmFh Uy5qYXIgdXNpbmcgTWF2ZW4gKGZpeGVzIHRlc3RzKQotIEFkZCBFaWdlbjMgZGVwZW5kZW5jeQot LS0KIHNyY3BrZ3Mvc3Vtby90ZW1wbGF0ZSB8IDIyICsrKysrKysrKysrKysrKystLS0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyY3BrZ3Mvc3Vtby90ZW1wbGF0ZSBiL3NyY3BrZ3Mvc3Vtby90ZW1wbGF0ZQppbmRleCBl NzYwZmRkNDVhZWUuLjNjMGVlYTk5MTZhYSAxMDA2NDQKLS0tIGEvc3JjcGtncy9zdW1vL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3Mvc3Vtby90ZW1wbGF0ZQpAQCAtMSwxOCArMSwyOCBAQAogIyBUZW1w bGF0ZSBmaWxlIGZvciAnc3VtbycKIHBrZ25hbWU9c3VtbwotdmVyc2lvbj0xLjUuMAotcmV2aXNp b249NAordmVyc2lvbj0xLjkuMgorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Y21ha2UKLXB5dGhv bl92ZXJzaW9uPTMKLWhvc3RtYWtlZGVwZW5kcz0ibGliZ2RhbC10b29scyBwa2ctY29uZmlnIHN3 aWcgcHl0aG9uMy1zZXR1cHRvb2xzIgotbWFrZWRlcGVuZHM9InB5dGhvbjMtZGV2ZWwgZmZtcGVn LWRldmVsIGZveC1kZXZlbCBnbDJwcy1kZXZlbCBsaWJnZGFsLWRldmVsIGxpYnhlcmNlcy1jLWRl dmVsIG9zZy1kZXZlbCBwcm9qLWRldmVsIgoraG9zdG1ha2VkZXBlbmRzPSJsaWJnZGFsLXRvb2xz IHBrZy1jb25maWcgc3dpZyBweXRob24zLXNldHVwdG9vbHMKKyBhcGFjaGUtbWF2ZW4gb3Blbmpk azExIGdpdCIKK21ha2VkZXBlbmRzPSJweXRob24zLWRldmVsIGZmbXBlZy1kZXZlbCBmb3gtZGV2 ZWwgZ2wycHMtZGV2ZWwgbGliZ2RhbC1kZXZlbAorIGxpYnhlcmNlcy1jLWRldmVsIG9zZy1kZXZl bCBwcm9qLWRldmVsIGVpZ2VuIgorY2hlY2tkZXBlbmRzPSJndGVzdCIKIHNob3J0X2Rlc2M9IlNV TU8gKFNpbXVsYXRpb24gb2YgVXJiYW4gTU9iaWxpdHkpIGFuZCBpbmNsdWRlZCBhcHBsaWNhdGlv bnMiCiBtYWludGFpbmVyPSJXYXJyaW9yIEdyYXBoIDxtYXJxdWVzQGxhcmNlcy51ZWNlLmJyPiIK IGxpY2Vuc2U9IkVQTC0yLjAiCiBob21lcGFnZT0iaHR0cHM6Ly9zdW1vLmRsci5kZSIKIGRpc3Rm aWxlcz0iaHR0cHM6Ly9zdW1vLmRsci5kZS9yZWxlYXNlcy8ke3ZlcnNpb259L3N1bW8tc3JjLSR7 dmVyc2lvbn0udGFyLmd6IgotY2hlY2tzdW09ZGNmNTMzOWZkZGEwNjU5ZmE0NGZjZmQ2OWZlM2Y0 ZTAzMDA5YWE5YTU5ODQ5NjI0ZjJhM2NmZTcyZWRhOWY4ZQorY2hlY2tzdW09MTkzYThhYjE0YmIz MDVkMzk2NzYyNWQ3NmNkMjkxZjVjNTViYjkwNjgxNzQ2NWYyYTEyYzJlNjlmNGI4MDgxMworcHl0 aG9uX3ZlcnNpb249MworCitwcmVfYnVpbGQoKSB7CisJY2QgdG9vbHMvY29udHJpYnV0ZWQvdHJh YXMKKwltdm4gcGFja2FnZQorCW12IHRhcmdldC90cmFhcyouamFyICR7d3Jrc3JjfS9iaW4vVHJh YVMuamFyCit9CiAKIHBvc3RfaW5zdGFsbCgpIHsKIAlybSAtZiAke0RFU1RESVJ9L3Vzci9zaGFy ZS9zdW1vL3Rvb2xzL2xpYnN1bW8vKi5zbworCXJtIC1mICR7REVTVERJUn0vdXNyL3NoYXJlL3N1 bW8vdG9vbHMvbGlidHJhY2kvX2xpYnRyYWNpLnNvCiB9CgpGcm9tIGNhNTZkZmE2ODE2NzI4MGE5 MmRiZDdhZGU5OGJlMDRhZmIyOTg3ZmUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFy amFuIE1vc3NlbCA8YXJqYW5tb3NzZWxAZ21haWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1biAyMDIx IDE4OjQzOjA1ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxNS8xN10gdnRrOiByZWJ1aWxkIGFnYWlu c3QgcHJvai03LjIuMQoKLS0tCiBzcmNwa2dzL3Z0ay90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBj aGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvdnRrL3RlbXBsYXRlIGIvc3JjcGtncy92dGsvdGVtcGxhdGUKaW5kZXggODU4YWEzMWI5YzAz Li41NTNjZjkxOTg0NjUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvdnRrL3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3MvdnRrL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAn dnRrJwogcGtnbmFtZT12dGsKIHZlcnNpb249OS4wLjEKLXJldmlzaW9uPTcKK3JldmlzaW9uPTgK IHdya3NyYz1WVEstJHt2ZXJzaW9ufQogYnVpbGRfc3R5bGU9Y21ha2UKICMgdnRrIGNhbiBiZSBo dWdlLCBlc3BlY2lhbGx5IHdpdGggLURWVEtfQlVJTERfQUxMX01PRFVMRVM9T04iCgpGcm9tIDU0 ZTAwODkxYWI0MWZhNjNjMDE3M2VlM2MyODcyMjUyOGJjZTIzNjggTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IEFyamFuIE1vc3NlbCA8YXJqYW5tb3NzZWxAZ21haWwuY29tPgpEYXRlOiBU dWUsIDI5IEp1biAyMDIxIDE5OjI0OjQzICswMjAwClN1YmplY3Q6IFtQQVRDSCAxNi8xN10gb3Nt MnBnc3FsOiByZWJ1aWxkIGFnYWluc3QgcHJvai03LjIuMQoKLS0tCiBzcmNwa2dzL29zbTJwZ3Nx bC90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxl dGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3NtMnBnc3FsL3RlbXBsYXRlIGIvc3JjcGtn cy9vc20ycGdzcWwvdGVtcGxhdGUKaW5kZXggMWM1M2M0NTA1MDQ3Li4xZDVmNzFiNzAxNDAgMTAw NjQ0Ci0tLSBhL3NyY3BrZ3Mvb3NtMnBnc3FsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvb3NtMnBn c3FsL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnb3NtMnBn c3FsJwogcGtnbmFtZT1vc20ycGdzcWwKIHZlcnNpb249MS42LjAKLXJldmlzaW9uPTEKK3Jldmlz aW9uPTIKIGJ1aWxkX3N0eWxlPWNtYWtlCiBob3N0bWFrZWRlcGVuZHM9ImJvb3N0IgogbWFrZWRl cGVuZHM9ImV4cGF0LWRldmVsIHByb2otZGV2ZWwgYnppcDItZGV2ZWwgemxpYi1kZXZlbCBib29z dC1kZXZlbAoKRnJvbSA2NGFhMjg1ZGJmZDIwZjZlYWJjY2MzYmY1NzNkNDQwZDk3Zjg1ZjAwIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBcmphbiBNb3NzZWwgPGFyamFubW9zc2VsQGdt YWlsLmNvbT4KRGF0ZTogVHVlLCAyOSBKdW4gMjAyMSAxOToyNjo1NyArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMTcvMTddIFh5R3JpYjogcmVidWlsZCBhZ2FpbnN0IHByb2otNy4yLjEKCkRvIG5vdCB1 c2UgbmluamEgKCJ1bmtub3duIHRhcmdldCIgZXJyb3IpCi0tLQogc3JjcGtncy9YeUdyaWIvdGVt cGxhdGUgfCA1ICsrKystCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAxIGRlbGV0 aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9YeUdyaWIvdGVtcGxhdGUgYi9zcmNwa2dzL1h5 R3JpYi90ZW1wbGF0ZQppbmRleCBlNGFhM2EyZTAyNjUuLjk5NWVjM2VlZWFiYiAxMDA2NDQKLS0t IGEvc3JjcGtncy9YeUdyaWIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9YeUdyaWIvdGVtcGxhdGUK QEAgLTEsOCArMSw5IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdYeUdyaWInCiBwa2duYW1lPVh5 R3JpYgogdmVyc2lvbj0xLjIuNi4xCi1yZXZpc2lvbj0zCityZXZpc2lvbj00CiBidWlsZF9zdHls ZT1jbWFrZQorbWFrZV9jbWQ9bWFrZQogaG9zdG1ha2VkZXBlbmRzPSJxdDUtZGV2ZWwgcGtnLWNv bmZpZyIKIG1ha2VkZXBlbmRzPSJqYXNwZXItZGV2ZWwgbGlibm92YS1kZXZlbCBuZXR0bGUtZGV2 ZWwgcHJvai1kZXZlbCBxdDUtZGV2ZWwKICBxd3QtZGV2ZWwgbGlib3BlbmpwZWcyLWRldmVsIgpA QCAtMTMsNiArMTQsOCBAQCBob21lcGFnZT0iaHR0cHM6Ly9vcGVuZ3JpYnMub3JnLyIKIGRpc3Rm aWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL29wZW5ncmlicy9YeUdyaWIvYXJjaGl2ZS92JHt2ZXJz aW9ufS50YXIuZ3oiCiBjaGVja3N1bT0yZGM2MDk5MjkzYWU2ZjdhNGJmYmZjMGNhYjU5MGNmN2Fk NDgyNDFkNjA4ZTZkN2E3NmUzNTk2MWI5ZmMyMTU3CiAKK2V4cG9ydCBDTUFLRV9HRU5FUkFUT1I9 IlVuaXggTWFrZWZpbGVzIgorCiBpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KIAltYWtlX2J1 aWxkX2FyZ3M9IkxJTks9JHtYQlBTX0NST1NTX1RSSVBMRVR9LWMrKyIKIGZpCg== --===============8390025532848267876==--